NyARToolkit for Unityで3Dモデルのアニメーション

https://gyazo.com/1a1f0c692c93350bcbf3157ff85ff93a

3Dモデルのアニメーション

前回に引き続き,Unityのオリジナルキャラクターである「ユニティちゃん」を利用して, 3Dモデルにアニメーションを設定してみましょう(詳細はNyARToolkit for 3Dモデルの表示を参照).

Unityで3Dモデルにアニメーションを設定するときは,Animator ControllerというAssetを利用します. 「ユニティちゃん」のパッケージには,UnityChanLocomotionsUnityChanActionCheckUnityChanARPoseの 3種類のAnimator Controller **が含まれています.

今回は,UnityChanLocomotionsを「ユニティちゃん」に設定して,キーボードの入力に対応してアニメーションするように改良します.

Animation Controller

[UnityChan]-[Animators]にAnimation ControllerUnityChanLocomotionsがあります. これをドラッグし,unitychanのInspectorにあるControllerに設定します. これで,「ユニティちゃん」はUnityChanLocomotionsで定義されたアニメーションを行うことが可能となります.

https://gyazo.com/579941d2517ea73413bf6d16569cbc4c

ここで,UnityChanLocomotionsの内容を確認してみましょう. Animation Controllerは下図のようにグラフで定義されます. まずは,Entryから始まり,Idle状態に遷移することが分かります.

https://gyazo.com/b70b92520da89c88aee8315c081b9e27

Idle状態のInspectorを確認すると, MotionWAIT00が設定されていることが分かります. このWAIT00が3Dモデルの動きに対応します. また,Idle状態から,Locomotion状態WalkBack状態Rest状態の 3つの状態に遷移可能なことが分かります.

https://gyazo.com/13294a9337af0868d2ff1e993d7a9489

では,Idle状態から他の状態に遷移するための条件は何でしょうか. TransitionsのIdle -> Restをクリックすると,状態遷移のための条件(Conditions)が表示されます. ここでは,Restという変数(パラメータ)がtrueであるときにRest状態に遷移することが分かります. 同様に,Locomotions状態に遷移する条件は,Speedが0.1より大きいとき, また,WalkBack状態に遷移する条件は,Speedが-0.1より小さいときということが分かります. このように変数(パラメータ)に基づき,3Dモデルの状態が確定します.

https://gyazo.com/21726acde178155403a0571609c2e418

スクリプトによる状態遷移の制御

次に,C#スクリプトを作成し,キーボードからの入力に応じて状態遷移を制御してみます. まずは,[Create]-[C# Script]をクリックして,新規にC#のスクリプトを作成します. ファイル名はARAnimationsとしておきます.

まずは,キーボードの1を押すとRest状態に遷移するようにしてみます. キーの入力判定はInput.GetKey()メソッドを利用します. 引数にはstring型で対象となるキーを指定します. また,状態遷移のトリガーとなる変数Restの値を設定するには, SetBool()メソッドを利用します. 引数には,String型で対象となる変数と,その値を指定します. 再生ボタンをクリックして,「ユニティちゃん」を表示した状態で,キーボードの1を押してみましょう. ユニティちゃんが背伸びをするアニメーションが表示されるはずです.

次に,キーボードの2を押すとLocomotions状態3を押すとWalkBack状態4を押すとIdle状態に遷移するようにしてみます. トリガーとなる変数Speedはfloat型のため,SetFloat()メソッドを利用して値を変更しています. 再生ボタンをクリックして,「ユニティちゃん」を表示した状態で,キーボードの234を押してみましょう. ユニティちゃんが走ったり,後ずさりするアニメーションが表示されるはずです.

https://gyazo.com/19de693257ca6e584186bdcab63eba19

https://gyazo.com/ba1673e91a97d623e711ddc106edf82f

これまでに紹介した機能を利用して,拡張現実を利用した作品を制作してみてください.

愛知県名古屋市にある椙山女学園大学 文化情報学部 向研究室の公式サイトです. 専門は情報科学であり,人工知能やデータベースなどの技術要素を指導しています. この公式サイトでは,授業で使用している教材を公開すると共に, ベールに包まれた女子大教員のミステリアスな日常を4コマ漫画でお伝えしていきます. サイトに関するご意見やご質問はFacebookまたはTwitterでお問い合わせください.