After Effectsのエクスプレッション:Math.sin編

オブジェクトを特定の周期でループさせたいときは、エクスプレッションのMath.sinを使用するのがおすすめです。
この記事では、After EffectsでMath.sinを使う方法について紹介します。

Math.sinで何ができる?

まずは、Math.sinを使ってできることや記述方法について紹介します。

Math.sinでできること

Math.sinはサイン波の周期でパラメータをループさせるエクスプレッションです。
似たものにMath.cosがありますが、使い方は同じです。
規則性のある動きをオブジェクトをにさせられます。

Math.sinの記述例

Math.sinの記述例ですが、基本的に以下のような風に記述します。

Math.sin(time)*数値

数値の所にはオブジェクトが動く幅を記入してください。
例えば、横に100px動いてほしい時は100と記入します。

また、Math.sinの周期は6秒で一回です。
オブジェクトが動くスピードを上げたいときは、(time*2)などのように数値をかけましょう。

ただ、上記の記述だけをコピペしてもオブジェクトが上手く動くとは限りません。
Math.sinを使ってオブジェクトを上手く動かしたいときは数式のようなものを記述する必要があります。
次のステップでその例を紹介します。


Math.sinの使い方

ここでは、実際にMath.sinを使ってできる動きを紹介します。

その前に:オブジェクトの作成からエクスプレッションの追加方法まで

まずは、初めてエクスプレッションを使用する人のためにオブジェクトを作成してからエクスプレッションを追加する方法について紹介します。

オブジェクトを作成

まずは、楕円形ツールや長方形ツールを使ってオブジェクトを作成します。
作成するオブジェクトは何でもいいです。


エクスプレッションを追加

作成したオブジェクトのトランスフォーム>位置を選択した状態で、画面上部のメニューからアニメーション>エクスプレッションを追加を選択します。
これで、エクスプレッションを追加する準備は完了です。

直線を行ったり来たりする動き

まずは、こちらの直線を行ったり来たりする動きを紹介します。
エクスプレッションの中に以下の記述をしてください。

x=Math.sin(time*6)*800;
[x+960,540]

x=Math.sin~~となっていますが、これはx(横軸)にMath.sinを使った動きをさせるという意味です。
上記の場合、(time*6)としているので、通常の6倍の速さでオブジェクトが動きます。
(通常何もしないと6秒で一回なので、time*6だと1秒に一回の周期となります)
そして800をかけているので、左右に800ピクセル動きます。
また、二行目の[x+960,540]ですが、オブジェクトの最初の位置を設定しています。

段々加速していく動き

次は段々動きが加速していく方法を紹介します。

x=Math.sin(time*2*Math.PI*time)*800;
[x+960,540]

直線を行ったり来たりする動きにMath.PI*timeを追加しただけです。

円を描くような動き

ここからは、縦の動きも加えていきます。
動画のように、円を描く動きをさせるには以下のように記述します。

x=Math.sin(time*6)*300;
y=Math.cos(time*6)*300;
[x+960,y+500]

y軸の動きはMath.sinではなく、Math.cosを使用しているので注意してください。

波打つような動き

次は動画のように波打つような動きを紹介します。

x=Math.sin(time*2)*800;
y=Math.cos(time*6)*400;
[x+960,y+540]

瞬きのような動き

最後に瞬きをするような動きを紹介します。
こちらは位置ではなくスケールにエクスプレッションを追加してください。

y=Math.sin(time*2)*500;
[960,y]


まとめ:難しく考えず一つ一つを理解しよう

Math.sinは、記述することが多いので難しく感じるかもしれませんが一つ一つを理解すれば簡単です。
難しく考えず一つ一つ理解していきましょう。
また、この他にもAfter Effectsの使い方について紹介しておりますのでぜひご覧ください。