2007年5月20日日曜日

AfterEffects エクスプレッション講座 その5(ピックウィップを使ってみる)


ピックウィップを使ってみる。


これまではエクスプレッションフィールドに直接数値を入力して
きた訳ですが、ピックウィップを使うとオートでスクリプトを入力
できます。とりあえずやってみましょう。

レイヤーを2つ用意し、両方のプロパティ「位置」を表示し、「平面1」の
エクスプレッションを有効にしましょう。

次に上図で赤丸がしてある辺りに「渦巻き」みたいなマークがありますが、
これが「ピックウィック」です。ドラッグしてみましょう。ドラッグした後を
糸みたいなのがついてきます。
糸を「平面2」の「位置」まで持って行くと位置が四角で囲まれるので、
マウスボタンを離して見ましょう。エクスプレッションフィールドに…

this_comp.layer("平面 2").position

と文字列が入力されています。試しに「平面2」をグリグリ動かして
見てください。「平面1」が後を着いてきて、プロパティの数値も遅れて修正
されます。

this_comp.layer("平面 2").position は
「このコンポのレイヤー(平面2)の位置を参照しなさい。」

と言った意味なんだろうと想像できると思います。(~を参照しなさい。を
付け足すと理解しやすいと思います。)

続けて今度は、ピックウィップを「平面2」の「位置の左側の数値」
に持って行きましょう。



エクスプレッションフィールドに…

[this_comp.layer("平面 2").position[0], this_comp.layer("平面 2").position[0]]

とスクリプトが変更されました。急に長い文字列になっちゃいました。
意味はおいといて、また「平面2」を動かして見ましょう。


ちょっと不思議な動きをすると思います。ですが良く見ると縦に動かした場合
「平面2」だけが移動し、横に動かすと「平面1」は斜めにズレながら
ついてくると思います。

「平面1」のプロパティは両方とも、「平面2」の「位置の左側の数値」つまり
「平面2のX」の値を参照していることがわかります。前回までの講座で

[X,Y]

の基本的な入力の仕方を理解していれば、このスクリプトが

[このコンポのレイヤー(平面2)のposition[0]を参照しなさい。,
このコンポのレイヤー(平面2)のposition[0]を参照しなさい。]

である事が想像できると思います。positionの後の[0]は配列を
表します。「位置」は2次元ですから、

position[0] = Xのプロパティ
position[1] = Yのプロパティ

に対応しています。さらに訳すと

[このコンポのレイヤー(平面2)のXを参照しなさい。,
このコンポのレイヤー(平面2)のXを参照しなさい。]

という意味だと分かります。次回はさらにこのスクリプトを
使って様々に応用していきたいと思います。