Math.sin(time);
サインカーブとかいうとわかりにくいですが、早い話0~1~0の1周期をおおよそ6秒で繰りかえす命令です。なぜおおよそ6秒なのかは、まったくの謎です。math.sin(time);ではなくMath.sin(time);と最初のMは大文字にしないとエラーになります。最後の;(セミコロン)は日本語でいうところの”。”みたいな感じで命令文の最後というしるしです。
0>1>0>を繰り返されても、なんの得もないように思えますが、実はいろいろなことに応用が利きます。要は数字が変化して元に戻って繰り返すことができるわけで、
例えば透明度 100~0
例えば座標 Xの位置を左右に揺らす
などなど
たとえば透明度を変化させて明滅
100*Math.sin(time*6);
対象になるレイヤーは何でもよいんですが、例えばテキストレイヤーで”BLINK”と入力しましょう。
レイヤープロパティの不透明度を開いて、ストップウォッチのアイコンをOptionキーもしくはaltキーを押しながらクリックします。スクリプトを記述するエリアが表示されるので、そこへ上のスクリプトをペーストします。
これだけでもかなり便利ですが、After Effectsのウイップレットというやつがここで真価を発揮します。幸か不幸かループのタイミングが約6秒ということで、上の例文ではその約6秒をつかさどっているtimeをtime*6とやって6倍の速さにしました。しかしプロジェクトを作っている過程でこのループを2秒にしたくなったり、15フレームにしたくなったり、さらには点滅スピードを変えたくなったり。
1. 新規調節レイヤーを追加して、エフェクトメニューからエクスプレッション制御>スライダー制御と選択します。
2. 先ほど入力したスクリプトをハイライトして、time*6の6の部分だけを選択します。不透明度にあるウイップレットをぎゅーんと1で作った調節レイヤーのスライダー制御でドロップします。ひもでつなげる感じです。
ただしく接続されるとスクリプトが以下のように書き換わります
100*Math.sin(time*thisComp.layer("調整レイヤー 1").effect("スライダー制御")("スライダー"));
なんだか、さっぱりわからない見た目になりましたが、
thisComp.layer(“調整レイヤー 1”).effect(“スライダー制御”)(“スライダー”)
これでひとかたまりになっています、和訳すると
このコンポジションの調整レイヤーのエフェクトのスライダー制御のスライダー
ということになります。.(ピリオド)を”の”に置き換えると結構意味が見えてきます。
つまり、スライダーで設定した値がtime*の後に代入されるわけです。仮に値を変えたいレイヤーが複数あった場合でも、スライダーで一括して制御することができるし、さらには点滅のスピードを速くしたり、遅くしたりアニメーションすることもできるようになります。