After Effects│カメラとの距離によってエフェクトの値を調整するエクスプレッション

カメラとの距離でエフェクトを調整したい

ニコニコ動画で見つけたチュートリアル。エクスプレッション基礎編ということで、さほど期待してなかったものの、凄く役に立つものだったので、すぐに試してみました。

元ネタはVIDEO COPILOTのチュートリアルらしいのですが、エクスプレッションはほんと仕事が捗るので、どんどん吸収していきたいです。

目次

エクスプレッションによるカメラ制御(基礎編)

  1. ヌル『camControl』とテキストA・B・Cを作成し3Dレイヤーにする
  2. カメラを作成して、ヌルと関連付けをする
  3. テキストを回転も数値を入れて適当に配置
  4. ヌルにエフェクト>エクスプレッション制御>レイヤー制御を4点『Target-0』『Target-1』『Target-2』『Target-3』、スライダー制御『targetControl』、チェックボックス制御『ease』を追加する
  5. 前項で作成したエフェクトをそれぞれ関連付ける(Target-1=A、Target-2=B、Target-3=C、Target-4=ヌル1)
  6. ヌルにエクスプレッションを入力する

位置のエクスプレッション:

cc=effect("targetControl")("スライダ");
num=Math.floor(cc);
nxtNum=num+1;
start=effect("Target-"+num)("レイヤー").position;
end=effect("Target-"+nxtNum)("レイヤー").position;
if(effect("ease")("チェックボックス")==0){
linear(cc,num,nxtNum,start,end)}
else{
ease(cc,num,nxtNum,start,end);}

X回転のエクスプレッション:

cc=effect("targetControl")("スライダ");
num=Math.floor(cc);
nxtNum=num+1;
start=effect("Target-"+num)("レイヤー").transform.xRotation;
end=effect("Target-"+nxtNum)("レイヤー").transform.xRotation;
if(effect("ease")("チェックボックス")==0){
linear(cc,num,nxtNum,start,end)}
else{
ease(cc,num,nxtNum,start,end);}

Y回転のエクスプレッション:

cc=effect("targetControl")("スライダ");
num=Math.floor(cc);
nxtNum=num+1;
start=effect("Target-"+num)("レイヤー").transform.yRotation;
end=effect("Target-"+nxtNum)("レイヤー").transform.yRotation;
if(effect("ease")("チェックボックス")==0){
linear(cc,num,nxtNum,start,end)}
else{
ease(cc,num,nxtNum,start,end);}

Z回転のエクスプレッション:

cc=effect("targetControl")("スライダ");
num=Math.floor(cc);
nxtNum=num+1;
start=effect("Target-"+num)("レイヤー").transform.zRotation;
end=effect("Target-"+nxtNum)("レイヤー").transform.zRotation;
if(effect("ease")("チェックボックス")==0){
linear(cc,num,nxtNum,start,end)}
else{
ease(cc,num,nxtNum,start,end);}
  1. スライダー制御のキーを打つ(0~2)

動かすとそれぞれの文字の位置の正面までカメラが移動します。

ずれていたらアンカーポイントでオフセットします。これでエクスプレッションによって簡単にカメラ制御ができます。

2点間の距離の値によるエフェクト調整(応用編)

STEP1:準備

画像の差し替えと背景にグラデを敷きます。床画像を接地してモーションタイルでのテクスチャを足します。床画像の境目をぼかすために黒平面を作成し、境界にマスクをかけぼかして、最後にトラックマットにします。

STEP2:エフェクトの追加

奥のテキスト調整用にヌル『fadeControl』を作成し、スライダー制御のエフェクトを2つ追加します(『fadeAmount』『lumAmount』)。テキストに輝度&コントラストのエフェクトを追加します。

STEP3:エクスプレッションを追加

輝度のエクスプレッション:

x=transform.position[0];
y=transform.position[1];
z=transform.position[2];
Cx=thisComp.layer("camControl").transform.position[0];
Cy=thisComp.layer("camControl").transform.position[1];
Cz=thisComp.layer("camControl").transform.position[2];
howFar=Math.sqrt(Math.pow(x-Cx,2)+Math.pow(y-Cy,2)+Math.pow(z-Cz,2));
-.001*thisComp.layer("fadeControl").effect("lumAmount")("スライダ")*howFar;

コントラストのエクスプレッション:

x=transform.position[0];
y=transform.position[1];
z=transform.position[2];
Cx=thisComp.layer("camControl").transform.position[0];
Cy=thisComp.layer("camControl").transform.position[1];
Cz=thisComp.layer("camControl").transform.position[2];
howFar=Math.sqrt(Math.pow(x-Cx,2)+Math.pow(y-Cy,2)+Math.pow(z-Cz,2));
-.001*thisComp.layer("fadeControl").effect("lumAmount")("スライダ")*howFar;

不透明度のエクスプレッション:

x=transform.position[0];
y=transform.position[1];
z=transform.position[2];
Cx=thisComp.layer("camControl").transform.position[0];
Cy=thisComp.layer("camControl").transform.position[1];
Cz=thisComp.layer("camControl").transform.position[2];
howFar=Math.sqrt(Math.pow(x-Cx,2)+Math.pow(y-Cy,2)+Math.pow(z-Cz,2));
opacity-1*(thisComp.layer("fadeControl").effect("fadeAmount")("スライダ")
*.001*howFar)

STEP4:仕上げ

スライダーを調整して、奥が薄くなるように調整します。

さらにカメラの被写体深度をONにし、フォーカス距離を調整します(カメラとフォーカスを当てたいレイヤーを選択して、レイヤー>カメラ>フォーカス距離をレイヤーに設定)。

テキストにモーションブラーもONにします。調整レイヤー『vignette』を作成し、楕円形マスク+トーンカーブで暗くして四隅を暗くします。

パーティクルを設置すると、より空間感が増します。

参考:http://toa-cinematograph.blogspot.jp/2009/12/after-effects_29.html

参考:http://toa-cinematograph.blogspot.jp/2010/01/after-effects.html

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次