さてはて、三角関数を使った
アニメーションはいったいどんな動きになるのか?
ということで、
アトリビュートとサイン波を利用した簡単なものを作ってみたぞ
これが意外と面白かったぞ
材料はこちら
三角関数が作るカーブ
http://www.sakaiden.com/?p=4275
アトリビュートに追加
http://www.sakaiden.com/?p=4401
何をやるかっていうと
まず、スクリプトコントローラーを使って
サイン波で動くようなものをつくっておく
↓
このサイン波の内容をパラメトリックに
コントロールするようアトリビュートと関連した設定をする
と、こんだけなので
特に難しいことをするわけではないんだけど
まず、スクリプトコントローラーは
XとYに限って設定する
こんな感じで
位置コントローラーにスクリプトを適応する
ソースはコレ
[as3]
–これはアトリビュートのX用の値を代入している
wx = CNT.modifiers[#Control].sinWaveSet.WaveX02
cx = CNT.modifiers[#Control].sinWaveSet.CycleX02
fx = CNT.modifiers[#Control].sinWaveSet.ForceX02
–これはアトリビュートのY用の値を代入している
wy = CNT.modifiers[#Control].sinWaveSet.WaveY02
cy = CNT.modifiers[#Control].sinWaveSet.CycleY02
fy = CNT.modifiers[#Control].sinWaveSet.ForceY02
–肝心のサイン波の計算
x = (sin(((Z+wx)*10)/cx))*fx
y = (sin(((Z+wy)*10)/cy))*fy
–ここで実際に値を適応して終了
[ x, y, 0 ]
[/as3]
まず、CNTは、変数としてオブジェクトのコントローラーを指定している
Zも同じく、変数としてオブジェクトのZ回転を指定している
これは、変数の欄を見てもらえばわかると思う
そして、そこから単に値を取得している
値自体はアトリビュートから取得しているので
アトリビュートを変更すると計算結果が変わるって仕組みだ
肝心の計算はこんな感じ
{ <sin(主な回転+位相) * 適当な係数> / 周期 } * 波の大きさ
まぁ、式は何だってかまわないんだけど
今回はこんな感じなのサ
こうやって、設定したオブジェクトを10個重ねてみる
ただ重ねるだけ
別に不思議なことはしていない
たったこれだけの内容なんだけど
これが意外なほど面白い
ちょっとキモチ悪い動きをするのだ
こちらをごらんあれ
サイン波を組み合わせただけなんだけどね
うねうねキモチワルイのよ
アトリビュートは、ツールによって切り替えている
切り替えた瞬間に動きが変わるのがわかる
パラメトリックにコントロールできてきるので
一応目的どおりのものができた
ちょっとした、”揺れモノ”があればこれでもいいかもしれないな
ということで、つくったものをどうぞ
バージョンはMax2010だよ

ダウンロード:サイン波ウェーブ
切り替えツールは当ページよりダウンロードしてくださいね
http://www.sakaiden.com/?page_id=1031
Pingback: アニメーション 揺れ物に愛を その1 « sakaiden