【Unity】キャラクターにUnityちゃんのモーションをさせる
マッチョのmachokoさんにかわいらしいモーションをつけるため、Unityちゃんのモーションデータをお借りすることにしました。今回は、その手順をご紹介します。
※UnityちゃんのAsset利用規約に「キャラクターのイメージを著しく損なわないこと」とあって、これに抵触しないか非常に不安ですが(汗
- machokoさんのデータをインポートする
- Unityちゃんアセットをインポートする
- Animator Controllerを作る
- Animator ControllerのStateにモーションを割り当てる
- Stateを遷移させる
- 結論
machokoさんのデータをインポートする
まずはメインキャラクターであるmachokoさんのデータをAssetストアよりダウンロード&インポートし、prefabフォルダからDimples.prefabをシーンビューにD&Dします。
TTポーズ・・・いや、Tポーズのmachokoさんがシーンビューに現れました。
これだけじゃ全くかわいくないですね。
machokoさんのかわいらしさが全く出ていません。(2回言った)
Unityちゃんアセットをインポートする
お次に、みんなのアイドルUnityちゃんアセットをダウンロード&インポートします。
もし過去にダウンロードしたことがある場合、Assets->Import Package->Custom Package...から直接インポートすることもできます。
なお、アセットストアからダウンロードしたパッケージファイルはAppData\Roaming\Unity\Asset Store-5.xに保存されています。
このパスを変えたい場合、下記サイト様にて紹介されている方法で実現することができるようです。
Animator Controllerを作る
プロジェクトビュー->Create->Animator Controllerを選択し、Animator Controllerを作成します。作成したControllerは、machokoさんのインスペクタのAnimatorにD&Dします。これで、machokoさんのモーションを制御できるようになりました。
作成したAnimator Controllerを選択した状態で、Windowメニュー->Animation->Animatorを選択し、Animatorウィンドウを表示します。
上のステートマシンが、実際に作成したmachokoさんモーション用です。
machokoさんのかわいらしさを全面的にアピールするため、idleモーションを多数用意しましたw
Animator Controllerの使い方は、いずれ別途記事にしたいと思っています。
Animator ControllerのStateにモーションを割り当てる
machokoさんのモーションは、
- アイドル
- 走る
- ゴール
上記3パターンとなっています。アイドルに関しては、かわいらしさをアピールするため(3回目)4パターンのモーションを入れています。
それぞれのステートをAnimatorウィンドウで選択し、インスペクタのMotionの横のボタンを押下すると、選択できるモーションが一覧表示されます。
Unityちゃんアセットをインポートしていれば、Unityちゃんのモーションがここに表示されるので、お好きなモーションを選ぶことができます。
Stateを遷移させる
Stateを遷移させるため、Animatorウィンドウ上でパラメータを作成します。
- idlePattern (アイドル用):int型(0~4)
- isRunning(走る用):bool型
- isGoal(ゴール用):bool型
アイドル状態は4パターンですので、スクリプトから1~4の値をランダムにセットしています。0になったら、アイドル状態を終了します。
machokoさんはWASDキー操作で移動するので、これらのキーが操作された際にidlePattern=0,isRunning=trueにセットします。
お題を達成できたらisGoal=trueにすれば、ゴールアクションしてくれます。
結論
- Animator Controllerを使用し、キャラクタの状態に沿ってモーションを定義できる。
- Unityちゃんアセットをインポートすると、モーションが選択できるようになる。