MagicaVoxelで作ったモデルでTPSの動きを作る
準備
前回の記事
前記事でMagicaVoxelでモデルを作り、それにBlenderでBoneを入れて、UnityにImportまで行いました。今回はこれにアニメーションをつけ、さらにアレンジしてTPSで銃を構えられるように整えていきたいと思います!
Lighting設定
windowからRendering>LightingでEnvironmentの中の
・EnvironmentLightingのSourceをColor
・EnvironmentReflectionsのSourceをCustom
確認
Unityで作業の設定をもう一度確認しておこう!Humanoidになってるかな?
必要なもの
Unityちゃんのアニメーション
Unityちゃんのアニメーションをインポートしましょう。
①Animatorを使いこなそう!
ここにある、Animatorを使います
UnityChanの中にあるAnimatorsをProjectビューでで選択してみましょう!
そうするとAnimatorの画面が切り替わります。
例えばこんな感じで、四角と矢印で構成されたアニメーターが存在しています。
今回はこれをオリジナルで作っていきます。
①ProjectViewでCreate→Animator Controllerで新規アニメーターコントローラーを作ります。
②Paramatersを追加。
ここから「RUN」と「JUMP」という二つのBoolを作ってください。
これらはアニメーションをするために
今「RUN」「JUMP」しているか?という判定を取るために使います。
RUNがtrueのときにRUNのアニメーションを、JUMPがtrueのときにJUMPのアニメーションをするように設定していきます
Layers>BaseLayerを編集していきます!
UnityChanTPSを選択した状態でAnimatorに目を移すと、初期状態になっています。
③これを編集していきます。
何もないところを押して、CreateStateからEmptyを選択
RUNとしましょう。走る動作は、TPSにおいて全ての動作の前に入ってくるので
Entryから矢印でつながっている最初の動作として設定します。(一番最初に作れば、オレンジの線で勝手に繋がります。)
RUNを選択して、inspector欄のMotionにRUN00_Fを追加してください。
この記事ではJUMPという動作のみ足して書いていくので、一通りやり方を試してみた後に、HIT、BACKなど必要な要素は自分で後々足してください。
さっきと同じやり方でJUMPを追加します。MotionにはJUMP00をつけましょう。
④矢印で繋げます
RUNを右クリックしてMakeTransitionをします
そのままJUMPをクリックするとこうなります。
同じようにJUMPからRUNへも矢印を伸ばしましょう。
次にAnyStateからRUNへも矢印を伸ばしましょう。
⑥Transitionの設定
インスペクターにConditionsが出るので、このListを追加していきます
こんな感じ。
AnyState(どんな状態)からでも、RUNがTrueの時はRunのAnimationが再生されるようになります。
同じように
RUN→JUMPの矢印にJUMPがTrueの時という条件設定をしてください。
⑦ 関連付け
CharaChanのinspectorをいじります。
Animatorの中の
ControllerをUnityChanTPSに
AvatarをCharaChan1Avatarに設定しましょう
⑧ コードを書く
まず宣言
private Animator animator;
void Start()
{
animator = GetComponent<Animator>();
}
ジャンプする動作のところで
animator.SetBool("JUMP", true);
を入れてあげましょう
そうすると最初に設定したパラメーターのJUMPの場所にチェックマークがつき、アニメーションの動作が矢印を通ってRUNからJUMPに変わります
ジャンプが終わったら
animator.SetBool("JUMP", false);
でfalseに戻してあげます
そうするとまた走り始めます
これはプレイヤースクリプトなど走る、曲がるなどの制御をしているスクリプトに入れてあげましょう。ではでは。