
早稲田大学第一文学部文芸専修卒。株式会社クスール所属。
http://www.cshool.jp/
http://aretokore.jp/blog/
昨年末にリリースされたAdobe® Flash® CS4 Professional(以下Flash CS4)より「ボーンツール」機能が追加されました。
今までは、人間や動物の関節の動きや、歯車やピストンといった複雑な動きなど、複数のオブジェクトが連携するアニメーションを作成するには、ひとつひとつのオブジェクトに対して、個別にアニメーションをつける必要がありました。しかし、この「ボーンツール」を使えば、人間の関節のような、複数のオブジェクトが連動したアニメーションを容易に作成することが可能です。
この記事では、ボーンツールによるボーン(インバースキネマティック)の作成と、IKArmatureクラスを用いたインバースキネマティックの制御の方法について、解説していきます。なお、サンプルにはActionScript 3.0を使用します。
ボーンとは複数オブジェクト同士の連携を設定するために、骨と関節を設定することにより、一意のオブジェクトの位置や角度などの情報をもとに、関連するオブジェクトの位置や角度なども自動的に計算し、位置調整を行う機能です。この機能を使うと、例えば手の動きに連動させて、腕や肩の関節を動かすアニメーションを簡単に作成することが可能です。

図00.ボーンを使ったアニメーション
3Dソフトなどで、モデリングされたキャラクターなどにアニメーションをつける際などに、使われることが多く、インバースキネマティック(逆運動学)とも呼ばれます。
今までは、末端の関節の角度や位置を定める方法は、根元の関節から順に計算する必要があり、アニメーションを作成する際には、とても非効率なものでした。その問題を解決する方法として考案されたものが、各関節の位置を末端から逆順に計算していくインバースキネマティックという手法です。
Flashでは、つながったボーン全体を「アーマチュア」、ボーン間を連結する点を「ジョイント」と呼んでいます。

図01.アーマチュアとボーンとジョイント
Flash CS4では、主に以下の3つ機能が使えます。

図02.シェイプをつなげたボーン
単一のシェイプ内にアーマチュアを作成し、ボーンや各ジョイントの位置に合わせて、シェイプを変形させることができます。(bone_01_01.fla参照)
※ツールバー[選択ツール]を利用してボーンアニメーションを確認いただけます。

図03.シンボルをつなげたボーン
シンボルを別のシンボルに接続し、複数のシンボルを繋ぐアーマチュアを作成することができます。ボーンや各ジョイントの位置に応じて、各シンボル同士が連動し、位置の変更や回転を行うことが出来ます。(bone_01_02.fla参照)
作成したボーン、ジョイント、一連のアーマチュアをIKAramatureクラスを用いて、制御することが可能です。
早稲田大学第一文学部文芸専修卒。株式会社クスール所属。
主にFlashを用いての広告サイト制作やアプリケーションの開発などをする傍ら、ActionScript講座「ほんきでクスール」にて講師を務める。