アニメーション サイン波ウェーブ 1


さてはて、三角関数を使った
アニメーションはいったいどんな動きになるのか?

ということで、
アトリビュートとサイン波を利用した簡単なものを作ってみたぞ

これが意外と面白かったぞ

材料はこちら

三角関数が作るカーブ
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個重ねてみる
ただ重ねるだけ
別に不思議なことはしていない

たったこれだけの内容なんだけど
これが意外なほど面白い

ちょっとキモチ悪い動きをするのだ

こちらをごらんあれ

※FLVプレーヤーが必要だよ

サイン波を組み合わせただけなんだけどね
うねうねキモチワルイのよ

アトリビュートは、ツールによって切り替えている
切り替えた瞬間に動きが変わるのがわかる
パラメトリックにコントロールできてきるので
一応目的どおりのものができた

ちょっとした、”揺れモノ”があればこれでもいいかもしれないな

ということで、つくったものをどうぞ
バージョンはMax2010だよ


ダウンロード:サイン波ウェーブ

切り替えツールは当ページよりダウンロードしてくださいね
http://www.sakaiden.com/?page_id=1031


Leave a comment

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

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

One thought on “アニメーション サイン波ウェーブ