
モーショントウイーンをステージ上で作成するときは、ペンツールなどで曲線を描き、それをモーションガイドとして曲線移動をさせたが、アクションスクリプトを使うと定義した式に沿って移動させることが出来る。 ここでは、2次関数、3角関数を使った曲線移動を勉強する。 ボールの初期設置 前節参照。 ボールの曲線移動 (1)2次曲線 y = a*(x-b)*(x-c) + d と言う2次関数で表される曲線に沿ってオブジェクトを移動させる。 2次関数をこの形にしているには、b,cでx軸に交わり、dでy軸に交わる曲線ということで、曲線のイメージがわきやすいと思っただけである。 a,b,c,d に適当な数値を割り当てて作成したスクリプトとその動きを以下に示す。 xの値は50から200の間で繰り返すようにしてある。 変極点に近いところでは時間当たりの変化が少ないので、減速して見える。 |
|
| onClipEvent (load) { this._x = 50; this._y = 50; } onClipEvent (enterFrame) { this._x += 2; if (this._x > 200) { this._x = 50; } this._y = -0.04*(this._x-200) *(this._x-50) + 50; } |
|
| (2)サインカーブ y = a*sin(bx)+c と言う三角関数で表される曲線に沿って移動する場合のスクリプトも同様に作成できる。 |
|
| onClipEvent (load) { this._x = 50; this._y = 100; } onClipEvent (enterFrame) { if (this._x >350) {this._x = 50; } this._x=this._x+5; this._y=40*Math.sin(this._x/18)+100; } |
|
| (3)円運動 円を描かせるのは、x、yの関係を使った上の例とちょっと違って、次式の角度(θ)を増加させてx、yの変化を描かせる手法をとる。 x=x0 + r*cos(πθ/180)、 y=y0 + r*cos(πθ/180) ここで、x0,y0は中心座標、rは半径、θは角度(0-360)を表す。 以下に、スクリプトと動きを示す。 |
|
| onClipEvent (load) { this._x = 50; this._y = 100; kaku = 0; } onClipEvent (enterFrame) { this._x = 100 + 50*Math.cos(kaku/60); this._y = 100 + 50*Math.sin(kaku/60); kaku += 3; } (注) kakur=0; 変数kakuの初期値:0 |
|
|
|
|
| HOME お勉強総リスト | |