読者です 読者をやめる 読者になる 読者になる

CGメソッド

CG制作に関してのヒント

MENU

【After Effects】エクスプレッションでの破壊アニメーションとマスクごとにレイヤーを分けるスクリプト

ニコニコのチュートリアルやってみました。

エクスプレッションでバラバラにするとは再生が軽くてトライアンドエラーしやすいです。

チュートリアル

1

調整レイヤー(TRANSFORM)を作成して、LogoTransform(control)NameTRANSFORM.ffxのアニメーションプリセットを適用

2

バラバラにしたいロゴを作成して、3DレイヤーをONにしてマスク分けをする

3

ロゴにLogoTransform(Logo).ffx アニメーションプリセットを適用。エクスプレッションが3箇所に入る

アンカーポイント

thisComp.layer("TRANSFORM").effect("AnchorPoint")("ポイント")

位置

seedRandom(thisComp.layer("TRANSFORM").effect("seedRandom")("スライダー")+index);
X=transform.anchorPoint[0]-width/2;
Y=transform.anchorPoint[1]-height/2;
Z=0;
if(thisComp.layer("TRANSFORM").effect("3D")("チェックボックス")==0){
temp1=+[X,Y]+[wiggle(thisComp.layer("TRANSFORM").effect("PositionFreq")("スライダー"),thisComp.layer("TRANSFORM").effect("Position")("スライダー"))[0],wiggle(thisComp.layer("TRANSFORM").effect("PositionFreq")("スライダー"),thisComp.layer("TRANSFORM").effect("Position")("スライダー"))[1]];
temp2=value+[X,Y];
trans=thisComp.layer("TRANSFORM").effect("Transform")("スライダー");
spd=thisComp.layer("TRANSFORM").effect("speed")("スライダー");
end=100-(index*spd/100);
if(thisComp.layer("TRANSFORM").effect("ease")("チェックボックス")==0){
linear(trans,0,end,temp1,temp2);}
else{ease(trans,0,end,temp1,temp2);}}
else{
temp1=+[X,Y,Z]+wiggle(thisComp.layer("TRANSFORM").effect("PositionFreq")("スライダー"),thisComp.layer("TRANSFORM").effect("Position")("スライダー"));
temp2=value+[X,Y,Z];
trans=thisComp.layer("TRANSFORM").effect("Transform")("スライダー");
spd=thisComp.layer("TRANSFORM").effect("speed")("スライダー");
end=100-(index*spd/100);
if(thisComp.layer("TRANSFORM").effect("ease")("チェックボックス")==0){
linear(trans,0,end,temp1,temp2);}
else{ease(trans,0,end,temp1,temp2);}}

スケール

temp=thisComp.layer("TRANSFORM").effect("Spread")("スライダー");
if(temp<0){
value+[temp,-temp,0];}
else{
value+[temp,0,0];}

Z回転

seedRandom(thisComp.layer("TRANSFORM").effect("seedRandom")("スライダー")+index);
temp=wiggle(thisComp.layer("TRANSFORM").effect("RotationFreq")("スライダー"),thisComp.layer("TRANSFORM").effect("Rotation")("スライダー"));
trans=thisComp.layer("TRANSFORM").effect("Transform")("スライダー");
spd=thisComp.layer("TRANSFORM").effect("speed")("スライダー");
end=100-(index*spd/100);
if(thisComp.layer("TRANSFORM").effect("ease")("チェックボックス")==0){
linear(trans,0,end,temp,0);}
else{ease(trans,0,end,temp,0);}

4

適用したらロゴが変な場所に行くので、アンカーポイントを全て0にして、無理やり中央に移動させる

調整レイヤーのスライダーを調整

  • 3D Z方向にもアニメーションする

  • ease イーズがかかる

  • AnchorPoint アンカーポイントの

  • Transform 0からスタートして100になるとロゴが元通りになる

  • spread 時間差で元に戻るように。イマイチなときはダミーのレイヤーを増やして番号を増やす

  • Spread 拡縮

  • PositionFreq 位置のウィグル

  • Position 位置

  • Rotation 回転

  • RotationFreq 回転のウィグル

  • seedRandom ランダム下限

f:id:min0124:20160723185239g:plain

マスクごとにレイヤーを分けるスクリプト

丁寧にフォトショで素材分けせず、ぱぱっとマスク分けした後にそれぞれをレイヤー分けするときに便利なスクリプト

MasksToLayers.jsx

www.videocopilot.net

アニメーションプリセット

アニメーションメニューから、アニメーション、エクスプレッション、エフェクトの状態を保存できる機能。

C:\Users\ユーザー名\Documents\Adobe\After Effects CC 2015\ などに置く

参考

cinema+graph: エフェクト「LogoTransform」の使い方