インバースキネマティクス(IK)の勉強をしてみる
Flash CS4から新しく「インバースキネマティック(IK)」という機能が搭載されましたが、この機能を使わずにActionScriptで実装してみました。
今回作成したのはこれ(要FlashPlayer10)。ちなみにキャラクターも今回の為に準備しました。
説明
勘だけで実装したので一般的な手法でないかも知れませんが、軽く説明してみます。
大まかに以下の1から5の流れになっていて、1から4まではすべて座標計算、5では算出した座標を使用してdrawTrianglesメソッドにて描画しています。
- 1.mouseDownした位置から関節までの距離を求める(下図参照)。
- 2.ドラッグ後座標と関節との直線上に新しい関節の位置を算出する(下図参照)。
- 3.ドラッグ後座標と、2で算出した座標へ移動する(下図参照)。
- 4.付随するその他のパーツを移動。
- 5.描画。
以上です。
※なお、swfの埋め込みはこちらを使用させていただきました。
http://d.hatena.ne.jp/nitoyon/20070829/embed_flash_on_hatena_diary