0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

MagicaVoxelで作ったモデルでTPSを作る

Last updated at Posted at 2021-07-24

#MagicaVoxelで作ったモデルでTPSの動きを作る

##準備
###前回の記事
https://qiita.com/mikuhaku0914/items/8e9943796f1eb4443c72

前記事でMagicaVoxelでモデルを作り、それにBlenderでBoneを入れて、UnityにImportまで行いました。今回はこれにアニメーションをつけ、さらにアレンジしてTPSで銃を構えられるように整えていきたいと思います!
###Lighting設定
image.png

windowからRendering>LightingでEnvironmentの中の

・EnvironmentLightingのSourceをColor
・EnvironmentReflectionsのSourceをCustom

に変えると明るくなるのでやってみよう
image.png
こんな感じ

###確認

Unityで作業の設定をもう一度確認しておこう!Humanoidになってるかな?

###必要なもの
Unityちゃんのアニメーション

Unityちゃんのアニメーションをインポートしましょう。

##①Animatorを使いこなそう!
image.png

ここにある、Animatorを使います

image.png

####UnityChanの中にあるAnimatorsをProjectビューでで選択してみましょう!

そうするとAnimatorの画面が切り替わります。

image.png

例えばこんな感じで、四角と矢印で構成されたアニメーターが存在しています。
今回はこれをオリジナルで作っていきます。

image.png

####①ProjectViewでCreate→Animator Controllerで新規アニメーターコントローラーを作ります。

image.png
こんな感じ。名前はなんでも良いですが、、。

この画面が開いているはずです。
image.png

####②Paramatersを追加。
image.png

ここから「RUN」と「JUMP」という二つのBoolを作ってください。
これらはアニメーションをするために
今「RUN」「JUMP」しているか?という判定を取るために使います。
RUNがtrueのときにRUNのアニメーションを、JUMPがtrueのときにJUMPのアニメーションをするように設定していきます
image.png

Layers>BaseLayerを編集していきます!

UnityChanTPSを選択した状態でAnimatorに目を移すと、初期状態になっています。
image.png

####③これを編集していきます。
image.png
何もないところを押して、CreateStateからEmptyを選択

image.png
RUNとしましょう。走る動作は、TPSにおいて全ての動作の前に入ってくるので
Entryから矢印でつながっている最初の動作として設定します。(一番最初に作れば、オレンジの線で勝手に繋がります。)

RUNを選択して、inspector欄のMotionにRUN00_Fを追加してください。

この記事ではJUMPという動作のみ足して書いていくので、一通りやり方を試してみた後に、HIT、BACKなど必要な要素は自分で後々足してください。

image.png

さっきと同じやり方でJUMPを追加します。MotionにはJUMP00をつけましょう。

####④矢印で繋げます
image.png

RUNを右クリックしてMakeTransitionをします

image.png

そのままJUMPをクリックするとこうなります。

同じようにJUMPからRUNへも矢印を伸ばしましょう。
次にAnyStateからRUNへも矢印を伸ばしましょう。

image.png
こうなっていればOKです!
 

####⑥Transitionの設定

image.png
矢印をクリックしてみよう。青くなります。

image.png
インスペクターにConditionsが出るので、このListを追加していきます
image.png
こんな感じ。

AnyState(どんな状態)からでも、RUNがTrueの時はRunのAnimationが再生されるようになります。

同じように
RUN→JUMPの矢印にJUMPがTrueの時という条件設定をしてください。

####⑦ 関連付け

image.png
CharaChanのinspectorをいじります。
Animatorの中の
ControllerをUnityChanTPSに
AvatarをCharaChan1Avatarに設定しましょう

####⑧ コードを書く

まず宣言

c#
private Animator animator;

    void Start()
    {
        animator = GetComponent<Animator>();
    }

ジャンプする動作のところで
animator.SetBool("JUMP", true);を入れてあげましょう

そうすると最初に設定したパラメーターのJUMPの場所にチェックマークがつき、アニメーションの動作が矢印を通ってRUNからJUMPに変わります

ジャンプが終わったら
animator.SetBool("JUMP", false);でfalseに戻してあげます
そうするとまた走り始めます

これはプレイヤースクリプトなど走る、曲がるなどの制御をしているスクリプトに入れてあげましょう。ではでは。

##完成

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?