キャラクターにモーションをつけるにはどうしたら良いか、学びの第一歩として実装してみました。
今回は第一歩ということで”ありもの”を組み合わせて作成していきます。
(モデルはUnityちゃん、モーションはMixamoというサービスから落としてきたものを利用)
Unityバージョンは「2022.3.23f1」となっています。
それでは早速始めていきます。
Unityちゃんの配置
ダウンロード
Unityちゃんを公式ページからダウンロードしましょう。
自分は以下のモデルをダウンロードしました。(「形式」は「unitypackage」版をインストール)
ダウンロードしたらUnitynにインポートします。
自分は「Assets」フォルダ直下にインポートしました。
ピンク表示の解消
「UnityChan」-「Prefabs」フォルダの中にあるプレファブをシーンにセットします。
が、配置するとピンクの状態になってます。
これは、正しくシェダーが適用されてないからです。
修正の仕方として、
体のパーツで、マテリアルがアタッチされてるシェダーの指定を変更していきます。
例えば、帽子の箇所。
Shaderの選択状態が「Hidden/InternalErrorShader」となってます。
これを「Standard」にすると正しテクスチャが反映されます。
少し大変ですが、これを全パーツ箇所同じ対応をすれば解消されるはずです。
※環境によっては解消されない可能性があるので、その場合はググってください。
不要な機能を削除
この状態でシーンの「再生」をするとCanvasに操作ボタンが表示されます。
今回、これらの操作UIは不要なので無効化しておきます。
以下、ピンク枠のスクリプトのチェックを外しておきましょう。
ダンスモーションを設置
Mixamoからモーションをダウンロード
今回「Mixamo」というサービスから利用したいモーションをダウンロードします。
会員登録が必要なので、会員登録をまず実施します。
会員登録後、ログインすると以下の画面が表示されますので、ここから好きなモーションをダウンロードしていきましょう。
自分は「Samba Dancing」というモーションを選択しました。
気に入ったモーションが見つかったらオレンジのボタン「DOWNLOAD」を選択します。
すると、以下のモーダルが表示されますが、
今回の場合、特に指定しなくても問題はないのでオレンジのボタン「DOWNLOAD」を選択します。
ダウンロードを実施すると、拡張子「fbx」ファイルがダウンロードされているはずです。
fbxをUnityにインポート
ダウンロードしたfbxファイルをUnityにインポートします。
インポート箇所は任意ですが、今回、Assets直下にインポートしました。
更に利用する状態に設定するため、
インポートしたfbxのファイルを選択して、Inspectorビューから「Rig」タグを選択 => 「Animation Type」を「Humanoid」に指定し、「Apply」 ボタンで適用を確定しておきます。
※ここまですると、fbxの中に「Samba DancingAvator」というファイルができているはずです。
Unityちゃんにモーションを適用する
アニメーションコントローラーの作成
インポートしたダンスモーションをUnityちゃんに適用するために、新しくアニメーションコントローラーを作成します。
このアニメーションコントローラーにダンスモーションをセットし、アニメーションコントローラーをUnityちゃんにアタッチするという手順です。
と、いうことでまず新しくアニメーションコントローラーを作成していきましょう。
「UnityChan」-「Animators」の中に「Animator Controller」を作成し、ファイル名を「UnityChanSamba」としました
「UnityChanSamba」を開いてAnimatorビューより、以下のように実装をしました。
やったこととして、、
1) 新しく「SambaDance」ステートを作成
2) 「Entry」ステートを「SambaDance」ステートに繋ぐ
3) インポートしたfbxの中にあるアニメーションファイル(mixsamo.comというファイル名)を「SambaDance」ステートの「Motion」にアタッチする。
アニメーションコントローラーをUnityちゃんにアタッチ
最後に、作成したアニメーションコントローラーをUnityちゃんにアタッチします。
Hierarchyビューより、Unityちゃんオブジェクトを選択して、Inspectorビューを表示します。
「Animator」の「Controller」要素を、作成した「UnityChanSamba」に差し替えます。
実装としては以上になります。
確認
それでは再生して確認して見ましょう。
以下のようにUnityちゃんがダンスしていれば成功です!