2007年9月10日月曜日

AfterEffectsエクスプレッション講座 その10(無限に明滅させる)

平面を無限に明滅させる三角関数を使う

三角関数を使うと言うと面倒くさそうですよね。ですが、非常に便利です。例えば…

1 平面を無限に明滅させる。
2 平面にゆらゆらした動きを与える。
3 平面をサークル運動させる。

といったことができるのですが、
何はともあれ実践してみるのが手っ取り早いです。

1 平面を無限に明滅させる為には…

t = 3 ;
r = 360/t;
d = degrees_to_radians(time*r-90);
Math.sin(d)*50+50

以上のコードを透明度のエクスプレッションフィールドに入力してください。
透明度が0%から100%そして0%と3秒間のサイクルでループします。
細かく説明すると長くなるので大雑把に説明すると、

t = 3 ;

はプログラム用語で変数とよばれる記述で、ここでは「t」という記号に「3」を
保存しています。ここでの「3」はループする時間になので「3」を「5」に
書き換えると5秒でループするようになります。

r = 360/t;

は「r」という変数に360÷t(今の場合「3」)の結果「120」を保存しています。
何をしているのかというと角度を求めています。詳しくは割愛します。

d = degrees_to_radians(time*r-90);

は「time*r-90」でフレームごとの角度を計算し、「degrees_to_radians()」
というプログラム用語でメソッドと呼ばれるもの
(あらかじめ用意してある簡単なプログラムみたいなものだと思ってください)
で「角度」から「ラジアン」に変換してから変数「d」に保存しています。
ちなみに「-90」は0~360の間で変えるとスタートの値が変化します。

Math.sin(d)*50+50

ですが、Math.sin(d)の部分がこのコードの本体で「Math.sin()」
というメソッドは()のなかに入れたラジアンのsine値を計算してくれます。
ここでは上の部分で計算したラジアン「d」を入れることでsine値を
計算しています。sineは「-1~1」までの答えしか出してくれません。
したがって「0~100」に変換する為に「50」を掛けたあと「50」を
足しています。ちなみに掛ける「50」と足す「50」は値を変えると
消え残しの効果などを作ることができます。

※例「40」を掛けて「60」を足すと「20~100」透明度で変化する。








  

0 件のコメント: