(この記事の使用環境: Unity5.4.2f2 Personal、Windows10


さて、前回インポートしたAsset 「Space Robot Kyle」(アニメーションのついていないモデル)に、別のモデルのアニメーションを付けて動かしてみます。

動かしたいモデルはこの人。Space Robot Kyleくん。前回の記事で紹介したものです。アニメーションの類は一切ついていません。つまりこのままではアニメーションで動かせません。
全画面キャプチャ 20170105 210028

で、このAssetのアニメーションを使わせてもらいます。何回か使わせてもらっている 「Melee Axe Pack」。 たくさんAnimationClipが付属しています。(こちらのAssetもあとで紹介記事を作っておきたいと思います)
全画面キャプチャ 20170105 220139

ではさっそく。動かしたいKyleくんにAnimatorContollerと、操作するためのスクリプトを付けてやります。
全画面キャプチャ 20170105 220804

AnimatorContollerの設定はこんな感じ。今回はシンプルに。
「Melee Axe Pack」からIdle、Walk、JumpのAnimationClipをドラッグアンドドロップで追加し、Transitionで接続しています。
全画面キャプチャ 20170105 220755

で、操作するためのスクリプトはこんな感じ。シンプルに。

using UnityEngine;
using System.Collections;

public class MainCharController : MonoBehaviour
{
    Animator anim;


    // --- 初期化 -----------------------------------------------------------------------------
    void Start ()
    {
        anim = GetComponentInChildren<Animator> ();
    }


    // --- 更新処理 ---------------------------------------------------------------------------
    void Update ()
    {
        float moveX = Input.GetAxis ("Horizontal");
        float moveZ = Input.GetAxis ("Vertical");

        if (moveX != 0 || moveZ != 0)       // 水平方向または垂直方向の操作があれば「歩き」モーションへ
        {
            anim.SetBool ("Walk", true);
        }
        else                                // なければ「待機」モーションへ
        {
            anim.SetBool ("Walk", false);
        }

        if (Input.GetMouseButtonDown (0))   // マウスの左クリックで「ジャンプ」モーション
        {
            anim.SetTrigger ("Jump");
        }
    }
}

そうすると、こんな感じにアニメーションが動いてくれました。


どうやらモデルのAnimationTypeが「Humanoid」どうしだと、こんな感じでAnimationClipを流用できたりするようなのです。今回使ったモデルはどちらもHumanoidです。
全画面キャプチャ 20170105 222635
全画面キャプチャ 20170105 222614

おまけ。Melee Axe Packに付属しているモデルのAlphaさんと共演してみました。


今回は以上です。