2012年1月12日木曜日

AE 値の参照

エクスプレッション
他レイヤーの値を参照。

同じ動きをさせたり、タイミングをずらして追従せたり、色々なことが出来ます。



例)

レイヤーを2つ用意します 





 緑のレイヤーに上下移動のキーフレームをつけます




青レイヤーの位置にエクスプレッションを追加し、縄のアイコンから緑レイヤーの位置にドラッグします。これで青が緑の位置を参照したことになり、同じ位置に移動し追従します。

式は
thisComp.layer("グリーン 平面 1").transform.position

「thisCopm.layer」「グリーン 平面1」の部分を書き換えれば、別のコンポジションのレイヤーからも参照できます。


式を下の通りに書き変えてみます

A=hisComp.layer("グリーン 平面 1").position;
[position[0].A[1]]

青は緑のy位置だけを参照する事になり、x移動は自由になります。

1行目で変数Aにグリーン平面の位置を代入しています。
2行目で、xにposition[0]と書く事で自身のx値をそのまま、yにはA[0]と書く事で緑のy値を指定しています。



式を下の通りに書き変えてみます

offset=3;
offTime=(time-offset/30);
A=thisComp.layer("グリーン 平面 1").position.valueAtTime(offTime);
[position[0],A[1]]

これで、青が緑のyの動きを3コマ遅れで 追従します!遅れるコマ数は1行目のoffset=の後の数値で指定できます。


3行目の値の参照の後に「.valueAtTime(offTime);」という文が足されていますが、
この「.valueAtTime(数値)」は、指定した数値の時間の値を参照できるという優れものです。
数値に1と入れれば、コンポジションの1秒目(フレームなら30)の値を持ってきてくれます。
この例では()の中に offTime つまり、現時間+1行目で指定したコマ数を入れているので、常に3コマ時間をさかのぼって値を参照しています。


青レイヤーをいっぱいコピーして、エクスプレッションの
offset = ○
だけを少しずつ書き換える事で、波打つように追従させるアニメーションが出来ます。
実際にキーフレームを持っているのは緑だけなので、編集も楽チンです。


0 件のコメント:

コメントを投稿