ちなみにMath.PI

ちなみに、前回のテスト映像で左右に往復する球の動きは、sin関数を使っております。sin()なんてほとんど使わないから、すぐ忘れるんですけど、アニメ的に言えば、要は円運動に活用する関数です。

ただ、そのままですとタイミングが扱いにくいので、時間に円周率「Math.PI」をかけてやって、1周期1秒へと標準化して使うのが良いです。

以下のようなプログラム文をエクスプレッションに適用するだけで、レイヤーを左右に往復させる動きを作れます。

val=Math.sin(time*Math.PI)*(thisComp.width/2);
value+[val,0];


もし、球を画面中央からスタートさせず、右端か左端からスタートさせたい場合は、timeに0.5をオフセットしてやるだけです。例えば、timeを(time+0.5)のように。‥‥またはsin(サイン)をcos(コサイン)に変えても同じ結果が得られます。

「thisComp.width/2」は、画面全体を往復するために、画面の横幅を取得して2で割っているのです。ここを自分の好きな数字に置き換えれば、そのように動きが変更されます。

理屈は簡単。でも、プログラム自体を避け続けていると、妙に難しく感じてしまうものです。

私は手ぶれや画面ブレなどの生っぽい動きにはエクスプレッションの関数(randomやwiggleなど)は使わず、自分の動きの感性を反映させるためにあえてキーフレームを手打ちして、尺が長い場合はloopOut()などで延長しますが、コンピュータの得意な機械的な動き=算術が活きる動きの場合は、sin()などのJavaScript Mathを用います。

使い勝手は人それぞれだとは思いますが、私の場合は、周期的な円運動や振り子の往復の場合は、エクスプレッションで対応することが多いです。


calendar

S M T W T F S
  12345
6789101112
13141516171819
20212223242526
2728293031  
<< August 2017 >>

selected entries

categories

archives

profile

search this site.

others

mobile

qrcode

powered

無料ブログ作成サービス JUGEM