すうがく

どこぞの政治家が「大人になったら、三角関数なんて役に立たない」なんて言ってましたが、それはその政治家さんが三角関数に縁遠いだけです。映像制作で、しかもアニメーションの動きやコンポジットを仕事にしている場合、三角関数はとても有用です。

 

例えば、何らかのレイヤーを、62度の角度で1秒で836px移動させたい場合、三角関数なしでどうやって移動後の座標を割り出すのか。

 

まあ、ぶっちゃけ、アニメのコンポジットは「現物合わせ」(タイムシートの指示で「62.23度」の角度でスライド‥‥なんて見たことないし、レイアウトを描く時だって製図のように厳密に角度を割り出してはいませんよね)ではあるのですが、手探りで直しながら座標を得るより、計算方法を知っていたほうが速いですし、融通や応用も効きます。

 

エクスプレッション制御の中に「角度制御」という便利なコントローラーがありますが、角度を直に指定するだけでなく、座標を導き出すことも可能です。

 

角度制御の角度の値から、任意の底辺と高さを割り出すのって、どんぶり勘定じゃできないですよネ。ちゃんと計算式が必要です。

 

各三角関数のMath.sin()、Mas.cos()、Math.atan(), ラジアンや角度を求めるdegreesToRadians()とradiansToDegrees()を、エクスプレッションでプチプログラムすれば、角度から容易に座標を求めることができます。もちろんその逆の、座標から角度を求めることも可能です。

 

 

エクスプレッションの文はこちら。長いですが1行です。

 

transform.position+[Math.sin(degreesToRadians(effect("方向は?")("角度")))*effect("1秒あたり何ピクセル?")("スライダー")*time,Math.cos(degreesToRadians(effect("方向は?")("角度")))*-effect("1秒あたり何ピクセル?")("スライダー")*time];

*簡単に書きたいときは「transform.position」は「value」でも構いません。

*After EffectsのZ座標は位置が上になるほど数値が下がるので(グラフの座標とは逆)、Z座標の値にマイナスを付与します。

 

*ちゃんと動きました。どんなピクセル数値も角度もどんとこいです。

 

 

 

ちなみに、このエクスプレッションは、角度固定のスライド指示には使えますが、角度変更(=キーフレームで角度を変更)を伴うと期待する動作になりません。

 

あくまで、始点から現在時間での直線到達距離であり、途中でカーブするような動きには積算式、もしくは差分式のエクスプレッションが必要になり、もう少し複雑になります。‥‥以前、載せたような記憶もありますが、角度制御を自動車のハンドルのようにして「運転」するようなエクスプレッションも可能です。

 

とは言え、角度から座標が導き出せるだけでも、「三角関数は大いに役立ち」ます。

 

 

 

三角関数って、中学か高校か、すっかり忘れましたが、中高の数学は意外に映像制作に応用できますから、覚えなおすのも良いですヨ。

 

私は覚え直したクチです。

 

 


関連する記事

calendar

S M T W T F S
1234567
891011121314
15161718192021
22232425262728
293031    
<< December 2019 >>

selected entries

categories

archives

profile

search this site.

others

mobile

qrcode

powered

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