AfterEffectsエクスプレッション講座 その11(ゆらゆらした動きを与える)
ラベル:
AfterEffects
平面にゆらゆらした動きを与える。(三角関数を使う)
三角関数を用いたコードの第2弾です。今度は位置に使って見ましょう。
次のコードを位置のエクスプレションフィールドに入力してください。
(コンポとレイヤーは自由に設定してください。)
h = 10 ;
yh = this_comp.height/2 ;
t = 3 ;
r = 360/t;
d = degrees_to_radians(time*r-90);
[position[0],Math.sin(d)*h+yh]
いかがでしょうか?ここまで読み進めてくるとなんとなくコードの意味
も分かるようになってくると思います。まず、
h = 10 ;
はゆれ幅をピクセル数で指定しています。
yh = this_comp.height/2 ;
見た目は違いますが、これも変数yhに値を保存しています。
this_comp.heightは現在のコンポの高さを取得してくれます。
このようにある値を取得してくることをプログラムの世界で
「返す」といいます。(今の場合「this_comp.heightは現在の
コンポの高さを返す」のように使われます。)
さらに高さを2で割ることでゆれの中心を求めています。
t = 3 ;
は前回同様、ゆれのループする時間指定です。
r = 360/t;
d = degrees_to_radians(time*r-90);
の部分は前回と全く同じです。
[position[0],Math.sin(d)*h+yh]
コードの本体です。position[0]はx座標、Math.sin(d)*h+yhは
y座標でy座標のみ三角関数を用いてるので縦にゆらゆらする
という仕組みです。
0 件のコメント:
コメントを投稿