#MagicaVoxelで作ったモデルでTPSの動きを作る
##準備
###前回の記事
https://qiita.com/mikuhaku0914/items/8e9943796f1eb4443c72
前記事でMagicaVoxelでモデルを作り、それにBlenderでBoneを入れて、UnityにImportまで行いました。今回はこれにアニメーションをつけ、さらにアレンジしてTPSで銃を構えられるように整えていきたいと思います!
###Lighting設定
windowからRendering>LightingでEnvironmentの中の
・EnvironmentLightingのSourceをColor
・EnvironmentReflectionsのSourceをCustom
###確認
Unityで作業の設定をもう一度確認しておこう!Humanoidになってるかな?
###必要なもの
Unityちゃんのアニメーション
Unityちゃんのアニメーションをインポートしましょう。
ここにある、Animatorを使います
####UnityChanの中にあるAnimatorsをProjectビューでで選択してみましょう!
そうするとAnimatorの画面が切り替わります。
例えばこんな感じで、四角と矢印で構成されたアニメーターが存在しています。
今回はこれをオリジナルで作っていきます。
####①ProjectViewでCreate→Animator Controllerで新規アニメーターコントローラーを作ります。
ここから「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に戻してあげます
そうするとまた走り始めます
これはプレイヤースクリプトなど走る、曲がるなどの制御をしているスクリプトに入れてあげましょう。ではでは。
##完成