[エクスプレッション]wiggleの動きをループさせるには?

wiggleはよく使うエクスプレッションですが動きのコントロールは式自体が行います。wiggleをループアニメーションなどを使う場合に重宝する方法を共有します。

freq = 1
amp = 500
loop = 5
t = time % loop;
wiggle1 = wiggle(freq, amp, octaves=1, amp_mult=.5, t=time);
wiggle2 = wiggle(freq, amp, octaves=1, amp_mult=.5, t=time - loop);
linear(time , 0 , loop , wiggle1 , wiggle2)

wiggle(freq, amp, octaves=1, amp_mult=.5, t=time)

wiggleの元の指揮を使います。普段はfreqとampしか使わないことも多いと思いますが今回はtimeの部分をコントロールしたいので全部記入します

式の手順

指揮をそのまま使える様に変数を2つ作ります

//動く速度
freq = 1;
//動く強さ
amp = 500;

周波数と強さですね。そしてループするためにcompのデュレーションに合わせてloopという変数を作りましょう。

//ループする秒数
loop = 5; //(今回はcompのデュレーションは5秒にしています)

上で作った秒数で繰り返したいのでtimeのループをつくりtの変数に戻します。

//loopに入れた時間を繰り返す
 t = time % loop;

始まりと終わりのwiggleを作る

あとはlinear or easeを使ってwiggleをループする様に設定するため2つのwiggleをつくります。

//始まりのwiggleの動き
wiggle1 = wiggle(freq, amp, octaves=1, amp_mult=.5, t=time);
//compのデュレーションの終わりでwiggleのパラメーターを元に戻す
wiggle2 = wiggle(freq, amp, octaves=1, amp_mult=.5, t=time - loop);

ループをlinearでコントロールする

さっき作成した2つのwiggleをlinearかeaseに入れてループさせます

//0秒からloopの秒数まででwiggleが動き出して元の位置にもどる
linear(time , 0 , loop , wiggle1 , wiggle2)

これで完成です。ちょっとこれは難しいですね。。。。実際の勉強会とかで詳しく話せればいいかなと思います。意味を理解して使う事がエクスプレッションを理解する近道だと思います。

エクスプレッションを使って快適なAE生活を^^

https://everydayskillshare.jp/

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です