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を付加した。
これで無事にシロクマを歩かせることが出来た。
BlenderでモデリングしたシロクマがやっとUnityで歩いた。すぐできるかと思ったけどエクスポートのお作法とかテクスチャの貼り方とかAnimatorの設定とか思ったより色々あって時間かかった…。さて寝るか pic.twitter.com/Ep7ILOS5dw
— Wakky (@wakky_free) April 7, 2021
左右に旋回するときがちょっと不自然だし、他にも色々とモーションは試してみたいが、今回はひとまずここまで。