dA-tools.com

HOME > AfterFx > expression > 実践 > スピード

スピード : speed

プロパティの速度

speedGraph.jpg[speed]はプロパティの変化速度を返します。
これはプロパティの速度グラフに表示される値のことです。
特に難しいことは無いと思います。

speed

戻り値はNumber

  • 単位時間はです。
  • 例えば「位置」のspeedが[100]ならば、1秒間で100ピクセルの移動を表しています。[ pix/sec ]

特定の時刻の値を求める場合は

speedAtTime(t)

戻り値はNumber

※マニュアルには「空間プロパティでのみ使用できます。」とありますが、それ以外のプロパティでも使うことは出来ます。また「1D の正の速度値を返します。」ともありますが、プロパティによっては負の値も返します。

例:魔法の杖から光の粒

 下のムービーは魔法の杖をくるくる回して光の粒が飛び散るようにしたもので、杖の先に”CC Particle Systems II”を適用しています。

  • とりあえずパーティクルを発生させて杖を回してみました。
  • このムービーでは杖をビュンビュン振り回してもパーティクルが規則的に螺旋を描いてしまいパーッと四方八方に飛び散る感じが出ていません。また止まっている時に粒子が発生したままになっています。(=粒子がコンスタントに発生しています)簡単に言うと動きのエネルギー感と見た目があっていないのです。そこで、速くまわしたらそれだけ沢山粒子が飛び出すようにしてみます。
  • それには杖の回転スピードでparticleの[velocity]と[Birth Rate]値をコントロールします。
  • まず、”Particle”の[velocity]に下のエクスプレッションを記述。なお杖のレイヤー名を"stick"としています。

k=0.001;
sp=thisComp.layer("stick").transform.rotation.speed;
Math.abs(sp)*k

  • スピードの絶対値をとっているのは負の値があるからです。下のムービーの数字を見てください。これは杖の回転スピードの値です。逆回転の時にの値になっています。それでMath.abs( )で絶対値を取るようにしています。
  • スピードの値そのままでは値が大きすぎるので係数[k]を掛けて調整しています。
  • もう1つ、”Particle”の[Birth Rate]に下のエクスプレッションを記述。

sp=thisComp.layer("stick").transform.rotation.speed;
ease(Math.abs(sp), 0,1750 , 0,7)

  • 補間ease( )でスピードの変化を粒子の発生量の変化に変換しています。
  • ついでに回転が速くなると杖の色が赤から黄色に変化するようにしてみます。
  • layer("stick")に”カラーバランス”を適用して色相を回転スピードでシフトさせます。

col=rotation.speed;
linear(Math.abs(col), 0, 1750,0,80)

  • 補間linear()でスピードの変化を色相の角度変化に変換しています。


ポイント

  • [speed]自体は難しいことはないのですが、スピードの変化幅を目的のプロパティにどう変換するかがポイントでしょう。
  • 上の例では「係数」「ease( )」「linear( )」の3つの方法を使ってみました。
  • 変換については次の項目を参照してください。