2010年8月15日日曜日

モーション あれこれ その1

アクションスクリプトで物体に動きをつけるとき、単純に座標を増やしたり減らしたりでは、味気ないものになりがちである。イージングと呼ばれるゆっくり動き出したり、ゆっくりと止まったりする効果をつけたりする。また、止まるときに、跳ね返るような効果をつける事がある。ここでは、それらに使えそうな数式を考えてみたい。

まずは、記号の説明から。ここでは、物体の初期座標をp0t秒後の座標をp(t)とする。そして、物体は、t1秒後にp1の位置で停止するものとする。ここでは、tを秒数(=時間)としたが、アクションスクリプトでのフレーム数に置き換えてもよい。

最初に、単純に座標を増やす例から。つまり、先に味気ないと言ったものである。これは、等速運動と呼ばれる。先の記号を使って書けば
となる。これを時間と移動距離のグラフにすると、のようになる。線の傾きが速さに示しているグラフである。

さて、イージングの効果が着いた場合、グラフはどうなるのか?始点、終点での線の傾きが水平に近くなるような曲線になると思われる。そのような形のグラフが描ける数式として、真っ先に思い浮かぶのは三角関数である。先の、記号を使って、式を書けば、となる。単振動と呼ばれる運動だ。これを時間と移動距離のグラフにすると、のようになる。両端で線はほぼ水平になっている。つまり、ゆっくりと動き始め、ゆっくりと止まる。しかし、これを実際に使ってイージング効果を付加してみるとわかるが、意外と効果が小さいのである。次回は、他の方法を考察してみる。

0 件のコメント: