AfterEffectsで追従するアニメーションを作ってみた!!
今回制作したものはこちら!!
左の赤い正方形に追従するようExpressionを組みました。
AfterEffects Expression - YouTube
今回使用したものは
ValueAtTime
if else
slider
check box
valueAtTimeは追従させるために
if elseは条件分けさせるため
slider , check boxはExpression内の数値を制御するために使用しました。
では早速解説を始めます!!
①正方形のアンカーポイントを上辺に移動させます。
(アンカーポイントを移動させる際に便利なScriptを見つけたのでリンクをはっておきます
Move Anchor Point | BatchFrame.com)
②3Dレイヤーにし、X軸に90度回転させます。。。
が、3Dの為90度回転させても隠れずに見えてしまいます。
そこで不透明度にExpressionを書きます。
記述内容は
もしx軸回転が90度のときは不透明度0でその他は不透明度100にしてとう内容
もし○○のときは△△して、××のときは□□
そう条件分けしないといけないのでif elseを使用します。
if(thisLayer.transform.xRotation == 90){
0
}else{
100
};
-90度のときも不透明度を0にしたい場合『||』で条件を増やしてください
if(thisLayer.transform.xRotation == 90)||(thisLayer.transform.xRotation == -90){
0;
}else{
100
};
※条件を追加する場合は二重括弧でif {の間を囲んでください。
ブログ上では二重括弧で囲むと表示されなくなってしまいましたので一つの括弧で閉じてます。
③コンポジション内にコントローラー用レイヤーを作成し、エフェクト > エクスプレッション制御 >スライダー制御、チェックボックス制御を適用する。
④追加したエフェクト名を任意の名前に書き換える。
自分はエラーを避ける為に日本語ではなく英語で書き換えます
チェックボックス制御の名前を『apply』
スライダー制御の名前を『Time_Lag』
⑤赤い正方形レイヤーにキーフレームを打ちます。
今回は、X軸回転と位置にキーを打ってます。
⑥左から二番目の正方形レイヤーを選択
赤い正方形レイヤーに追従するようにExpressionを書きます。
内容は
もしパラメーターレイヤーのapplyがオンであった場合Time_Lagの数値分時間差で追従する。その他はapplyがオフだったらタイムラグなしで追従。(X軸回転)
A = thisComp.layer("Parameter").effect("apply")(1);
T = thisComp.layer("Parameter").effect("Time_Lag")(1);
if(A > 0)
{
thisComp.layer(index+1).transform.xRotation.value_at_time(time-T);
} else {
thisComp.layer(index+1).transform.xRotation;
};
⑦
左から二番目の正方形レイヤーを選択
赤い正方形レイヤーに追従するようにExpressionを書きます。(位置)
T = thisComp.layer("Parameter").effect("Time_Lag")(1);
pY = thisComp.layer("1").transform.position.valueAtTime(time - T)[1];
[position[0], pY, position[2]]
エクスプレッション制御って動作が軽いと思っていたけど、
レイヤー数が多くなるとメッチャ重くなる( ꈨຶ ˙̫̮ ꈨຶ )
30,40レイヤーを越えたあたりからバカアフターさん並に重くなった。
自分のエクスプレッションの組み方に問題があるのかな!?