【Unity入門】歩くアニメーションのタイミングを制御する方法

こんにちは、カバゴトです!今回は、歩くアニメーションのタイミングを制御する方法について超初心者向けに解説していきたいと思います。

今回の記事は前回の続きとなっていますので、もし前回の内容がわからない方は下のほうに記事がありますので、参考にしてください!

アニメーションを設定しただけでは、再生ボタンが押され時すぐにアニメーションが発生します。

今回はそのタイミングを制御していきたいと思います!

目次

新しいアニメーションの設定

初期状態

初期状態はこのようになっています。

この初期状態がどのようなものかを簡単に下にまとめます。
・「plane」とキャラクターオブジェクトを配置
・Mixamoからダウンロードしたアニメーションをキャラクターにいれる
・アニメーションコントローラーを設定する

この状態から進めていきます!

止まるアニメーションの作成

再生ボタンの下にある「Animator」をクリックすると、この画面になるので、「Create State」→「Empty」をクリックします。

次に「右クリック」→「Set as Layer Default State」をクリックします。

これによって、再生ボタンが押されたとき最初に「New State」のアニメーションが適用されるようになります。

次に「右クリック」→「Make Transition」をクリックすると、矢印みたいなのが出てくるのでそれを交互になるようにつなぎます。

次にAnimatorの「Parameters」の「」→「Bool」をクリックします。

私は名前を「boolwalk」にしました。(下の画面ではblRotになっていますが、後boolwalkに変更しています)

ステイトを2つともクリックし、右側の「Conditions」の「」クリックします。

下から上の矢印は「true」、上から下の矢印は「false」にします。

スクリプト作成

「Assets」→「Create」→「C#Script」でスクリプトを作成し、名前を付け、ダブルクリックでvisualstudioを開きます。(私は名前を「human」にしています)

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class human : MonoBehaviour
{
    // Start is called before the first frame update
    private Animator animation;

    void Start()
    {
        animation = gameObject.GetComponent<Animator>();    
    }

    // Update is called once per frame
    void Update()
    {
        // Enterキーが押されたかどうかをチェックします
        if (Input.GetKeyDown(KeyCode.Return))
        {
            // Animator内の"boolwalk"パラメータをtrueに設定し、歩行アニメーションを再生する
            animation.SetBool("boolwalk", true);
        }
    }
}

このコードで、もしEnterキーが押されたとき、trueつまり先ほどの歩くアニメーションに切り替わることを意味します。これをコピー&ペーストしましょう。

これで完成です!

実際に動かしてみる!

では、実際に動くか確認してみましょう!

Enterを押すと動きました!

終わりに

最後まで読んでくださりありがとうございます!今回は、歩くアニメーションのタイミングを制御する方法について解説しました。もし、うまくいない場合や意見等あればコメントの方をよろしくお願いします!

この記事が参考になれば幸いです。また、次回のブログでお会いしましょう!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次