MENU

【After Effects】エクスプレッションによるカメラ制御と2点間の距離の値によるエフェクト調整

ニコニコ動画で見つけたチュートリアル

エクスプレッション基礎編ということで、さほど期待してなかったものの。

凄く役に立つものだったので、すぐに試してみました。

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

f:id:min0124:20160719230846g:plain

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

  • ヌル『camControl』とテキストA・B・Cを作成し3Dレイヤーにする。

  • カメラを作成して、ヌルと関連付けをする

  • テキストを回転も数値を入れて適当に配置

  • ヌルにエフェクト>エクスプレッション制御>レイヤー制御を4点『Target-0』『Target-1』『Target-2』『Target-3』スライダー制御『targetControl』、チェックボックス制御『ease』を追加する

  • 前項で作成したエフェクトをそれぞれ関連付ける

・Target-1 =A

・Target-2 =B

・Target-3 =C

・Target-4 =ヌル1

  • ヌルにエクスプレッションを入力する

位置

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);}
  • スライダー制御のキーを打つ(0~2)

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

ずれていたらアンカーポイントでオフセットする

これでエクスプレッションによって簡単にカメラ制御ができます。

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

PART1

  • 画像の差し替えと背景にグラデを敷く

  • 床画像を接地してモーションタイルでのテクスチャを足す

  • 床画像の境目をぼかすために黒平面を作成。境界にマスクをかけぼかす。最後にトラックマットにする

PART2

  • 奥のテキスト調整用にヌル『fadeControl』を作成。スライダー制御のエフェクトを2つ追加する『fadeAmount』『lumAmount』

  • テキストに輝度&コントラストのエフェクトを追加

  • テキストにエクスプレッションを追加

輝度

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)
  • スライダーを調整して、奥が薄くなるように調整

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

  • テキストにモーションブラーもONにしてやる

  • 調整レイヤー『vignette』を作成。楕円形マスク+トーンカーブで暗くして四隅を暗くする

  • パーティクルを設置、より空間感が増す

引用先

cinema+graph: After Effects チュートリアル「カメラの楽な動かし方」

cinema+graph: After Effects チュートリアル「カメラの楽な動かし方」応用編