インバースキネマティクス(IK)の勉強をしてみる

Flash CS4から新しく「インバースキネマティック(IK)」という機能が搭載されましたが、この機能を使わずにActionScriptで実装してみました。

今回作成したのはこれ(要FlashPlayer10)。ちなみにキャラクターも今回の為に準備しました。

説明

勘だけで実装したので一般的な手法でないかも知れませんが、軽く説明してみます。
大まかに以下の1から5の流れになっていて、1から4まではすべて座標計算、5では算出した座標を使用してdrawTrianglesメソッドにて描画しています。

  • 1.mouseDownした位置から関節までの距離を求める(下図参照)。

f:id:y_d:20090601161453p:image

  • 2.ドラッグ後座標と関節との直線上に新しい関節の位置を算出する(下図参照)。

f:id:y_d:20090601161454p:image

  • 3.ドラッグ後座標と、2で算出した座標へ移動する(下図参照)。

f:id:y_d:20090601161455p:image

  • 4.付随するその他のパーツを移動。
  • 5.描画。


以上です。


※なお、swfの埋め込みはこちらを使用させていただきました。
http://d.hatena.ne.jp/nitoyon/20070829/embed_flash_on_hatena_diary