Mixamo を使用して Unity の 3D モデルにアニメーションを追加する (乳母レベルのチュートリアル)

Mixamo を使用して Unity の 3D モデルにアニメーションを追加する (乳母レベルのチュートリアル)

最近Unityの3Dキャラクターにアニメーションを追加しているのですが、その操作方法を簡単に記録します。

ステップ 1: Unity Hub で新しいプロジェクトを作成します。

Unity Hub を開き、[新しいプロジェクト] をクリックして、以下の手順に従います。
ここに画像の説明を挿入します

ステップ2:キャラクターを配置するパネルを作成する

プロジェクトを開きます—>GameObject—>3D Object—>Plane. このステップは必要ありません. すでに 3D シーンがある場合は、このステップを無視できます。
ここに画像の説明を挿入します

ステップ 3: 既存のキャラクター モデルを Mixamo にアップロードする

ここをクリックして Mixamo を開きます。Mixamo を
開くと、次の画面が表示されます。無料で使用できる 3D キャラクターやアニメーションがいくつかあります。
ここに画像の説明を挿入します
独自の 3D キャラクターをアップロードします。アップロード形式に注意し、
ここに画像の説明を挿入します
下図に示す手順に従ってください。
ここに画像の説明を挿入します
ここに画像の説明を挿入します
ここに画像の説明を挿入します
ここに画像の説明を挿入します
ここに画像の説明を挿入します

ステップ 4: 役割のインポート

ダウンロードした fbx ファイルを Unity シーンの Assets ディレクトリにドラッグしてシーンにドラッグすると、シーン内にキャラクターの T ポーズ モデルが表示されます。
ここに画像の説明を挿入します
インポートしたキャラクター素材が紛失した場合は、以下の手順に従ってください。
ここに画像の説明を挿入します

ステップ 5: キャラクターのスケルトンを設定する

ここに画像の説明を挿入します

ステップ6: キャラクターアニメーションをダウンロードする

Mixamo に戻り、ダウンロードしたいアニメーションを選択し、Assets にドラッグします。
ここに画像の説明を挿入します
ここに画像の説明を挿入します
ここに画像の説明を挿入します

ステップ 7: アニメーション スケルトンを設定する

すべてのアニメーションを設定する必要があります
ここに画像の説明を挿入します

ステップ 8: アニメーション ステート マシンをセットアップする

アニメーション ステート マシンを追加し、[アセット] -> [作成] -> [アニメーション コントローラー] を選択すると、図に示すように作成が成功します。 [
ここに画像の説明を挿入します
ここに画像の説明を挿入します
パラメーター] の下の + 記号をクリックして、アニメーションを制御するブール型パラメーターを追加します。
ここに画像の説明を挿入します
各アニメーションを右クリックし、他のアニメーションに接続するためのトランジションを作成し、バインドする さまざまなアニメーション間の切り替えロジックを設定し、
ここに画像の説明を挿入します
コントローラーにバインドする必要があります。
ここに画像の説明を挿入します

ステップ 9: アニメーションを制御するスクリプトを作成する

アセット——>作成——>C#スクリプト。スクリプトを開いてコードを記述します。

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

public class boycontrol : MonoBehaviour
{
    
    
    //动画组件
    private Animator m_Anim;
    //动画现在状态
    private AnimatorStateInfo m_CurrentBaseState;
    // Use this for initialization
    void Start()
    {
    
    
        m_Anim = GetComponent<Animator>();
    }

    // Update is called once per frame
    void Update()
    {
    
    
        if (Input.GetKeyDown(KeyCode.UpArrow))
        {
    
    
            sit();
        }
        else if (Input.GetKeyDown(KeyCode.DownArrow))
        {
    
    
            stand();
        }
        else if (Input.GetKeyDown(KeyCode.LeftArrow))
        {
    
    
            point();
        }
        else if (Input.GetKeyDown(KeyCode.RightArrow))
        {
    
    
            ask();
        }

    }
    void sit()
    {
    
    
        m_Anim.SetBool("sit", true);
        m_Anim.SetBool("stand", false);
        m_Anim.SetBool("ask", false);
        m_Anim.SetBool("point", false);
    }

    void stand()
    {
    
    
        m_Anim.SetBool("stand", true);
        m_Anim.SetBool("sit", false);
        m_Anim.SetBool("ask", false);
        m_Anim.SetBool("point", false);
    }
    void ask()
    {
    
    

        m_Anim.SetBool("ask", true);
        m_Anim.SetBool("sit", false);
        m_Anim.SetBool("stand", false);
        m_Anim.SetBool("point", false);
    }
    void point()
    {
    
    
        m_Anim.SetBool("point", true);
        m_Anim.SetBool("sit", false);
        m_Anim.SetBool("ask", false);
        m_Anim.SetBool("stand", false);
    }
}

ステップ 10: 制御スクリプトをバインドする

制御スクリプトを保存し、それを Hierarchy パネル上のキャラクタにドラッグします。

知らせ:

私の例では、キーボードの上下左右のキーを使用してアニメーションの実行を制御します。アニメーションの実行は、実際の状況に応じて変更できます。この例は、既存の 3D キャラクター モデルの単純なアニメーション バインディングにのみ適しています。

おすすめ

転載: blog.csdn.net/qq_49149394/article/details/131349235