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 キャラクター モデルの単純なアニメーション バインディングにのみ適しています。