こんばんは、HIDです。
前にエクスプレッションを使った螺旋運動の紹介をしようとして円運動で終わってしまったのでその続きです。
前回、ヌルオブジェクトのポジションに対して
cy = effect("cycle")("スライダ");
sw = effect("swing")("スライダ");
x = Math.sin(time*cy)*sw+value[0];
z = Math.cos(time*cy)*sw+value[2];
[x,position[1],z]
このエクスプレッションを使えば円運動が作れる所まで紹介しましたのでそれについては前々回の私のブログを参照して下さい。
この円運動に対してあとは振幅を増やしたり減らしたりすれば円の半径が大きくなったり小さくなったりする訳です
上記エクスプレッションで2行目にあたる部分ですね
エフェクト、スライダ制御のswingの部分にキーフレームを使って制御して行けばそれが可能になります。
試しに0秒で300 10秒で-300とキーフレームを作ります
[
広告]
VPSスライダの数値が小さくなる程、運動半径が小さくなるのが分かりますね
さてここで、コレを何に使うの?
ってとこですが、この運動自体をエフェクト等に放り投げてあげる訳です。
このヌルオブジェクトの座標自体を今回はtrapcodeのparticularに渡してあげます
制作やってる人にしか分からないと思いますが、番組やCM、映画、アニメ様々な所でしょっちゅう使われている大変使い勝手の良い優秀なフィルタです。
舞い上がる火の粉や煙、キラキラした背景を始め、結構何でも作れちゃいます。
本来そういう使い方はしないのですがスゴイ人はお寿司を作ったりしてました。ちょっと理解の範疇を超えている感じです。
新たに黒い平面を作り、particularを適用、自分の思う感じに色々調節します。
(今回は螺旋運動の作り方なのでparticularの使い方については触れません)
particularのposition XYに
x = thisComp.layer("ヌル 1").transform.position[0];
y = thisComp.layer("ヌル 1").transform.position[1];
[x, y]
Position Zに
thisComp.layer("ヌル 1").transform.position[2]

を放り込んでやります。
このコンポジションのヌル1のポジションの数値を拾ってねって感じです。
ただ回ってるだけでは面白くないので適当に3Dカメラに動きを付けて立体感持たせます
[
広告]
VPSこのようにスライダ制御とMath.sin cosメソッドを使って制御してやると思い通りに螺旋運動の制御が出来ます。
イラストレーターやAE上で一生懸命螺旋パスを作ってキーフレームで制御してウダウダやってるよりも遥かに楽に短時間で作成できます。
物理演算とか使えるようになると出来る事の幅がもっと広がるんだろうと思うのですが、なかなか頭がついて行かないもので。。。
もっと勉強しよ。HIDでした。