【Unity】BlenderでエクスポートしたfbxモデルをAnimator Controllerで動かす (Unity実験室その5)

投稿日:2021年4月17日
最終更新日:2021年4月24日

BlenderでExportしたfbxファイルをAnimator Controllerで動かす

この前の記事で、fbxファイルにテクスチャを貼りつけた。今回はfbxのモデルをAnimator Controllerで動かしてみたいと思う。なお、今回の内容はこちらの記事こちらの記事を参考にさせて頂いたm(_ _)m

 

開発環境

Windows 10
Blender 2.83
Unity 2020.3.1.f1(LTS)

 

Animator Controllerの設定

今回はUnity-Chan Modelのモーションを使わせてもらう。まずAsset storeからダウンロードしてimportするのだが、そのあたりの手順はこの前の日記で書いているので割愛する。

まずは適当なディレクトリで右クリックしてcreate → Animator Controllerを選択して作成。私はモデルと同じディレクトリに作成した。

今回は停止しているモーション、歩いているモーションの2種類を切り替えてシロクマのモデルを動かしてみる。まずAnimatorのタブを開いて右クリックし、Emptyを選択して空のStateをつくり、名前を「BearStop」にして、これを停止モーションにする。名前を変えたらMotionからUnity-chan Modelのモーションを適当に設定する(以下の画像だとPOSE01になってるけど最終的にWAIT00にした)。また、同じ要領で歩くモーションもEmptyで選択して名前をBearWalkにして、モーションを「WALK00_F」に設定した。

これが出来たらStateの遷移を設定する。ParametesrからBool変数を新規に作成し、以下の画像のように適当に変数名をつける。今回はisWalkという変数名にした(けど、文法的にはisWalkingが正しいなと後から気づく。まぁいっか)。次に、BearStopを右クリックしてMake Transitionを選択すると矢印が出てくるので、BearWalkに矢印をつけてStateの遷移を定義する。

同じように、BearWalkも右クリックしてMake Transitionを選択し、BearStopに矢印をつけて双方向にStateの遷移を定義する。あとはBearStop → BearWalkの矢印をクリックして、ConditionsからisWalkをtrueに設定する。BearWalk→BearStopの矢印もクリックして、こちらは先ほどと反対にisWalkをfalseに設定する。

これで、スクリプトからisWalkをtrueにすればシロクマが歩き、isWalkをfalseにすればシロクマが止まるように動作をコントロールする準備が整った。

 

モデルのRigを設定してScriptでコントロールする

次に、以前テクスチャを設定したBlenderからインポートしたモデルを選択して、InspectorからRigを選んでHumanoidを選択したうえでApplyを押す。

Blenderで入れたボーンとUnityのHumanoidのRigが問題なく関連付けされれば、Configureと表示される。実は最初はうまくいかずにBlenderでボーンを調整したのだが、それはまた別の記事で書きたいと思う。

あとはゲーム上に設置したモデルのオブジェクトにAnimatorのComponentを追加し、Controllerに先ほど作成したAnimator Contollerをドラッグ&ドロップして設定する。

また、シロクマを歩かせるためにAnimator ContollerのState遷移を制御するScriptをComponentに追加する。今回は以下のScriptを付加した。

これで無事にシロクマを歩かせることが出来た。

左右に旋回するときがちょっと不自然だし、他にも色々とモーションは試してみたいが、今回はひとまずここまで。


投稿者: wakky

映画と旅行が大好きなエンジニア。お酒、ゲーム、読書も好き。

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください