Mixamo를 사용하여 Unity에서 3D 모델에 애니메이션 추가(유모 수준 튜토리얼)
최근에는 유니티의 3D 캐릭터에 애니메이션을 추가하고 있는데, 조작방법을 간략하게 기록해보겠습니다.
1단계: Unity Hub에서 새 프로젝트를 만듭니다.
Unity Hub를 열고 새 프로젝트를 클릭한 후 아래 단계를 따르세요.
2단계: 캐릭터 배치용 패널 만들기
프로젝트——>GameObject——>3D Object——>Plane을 엽니다.이 단계는 필요하지 않습니다.이미 3D 장면이 있는 경우 이 단계를 무시할 수 있습니다.
3단계: Mixamo에 기존 캐릭터 모델 업로드
Mixamo를 열려면 여기를 클릭하세요.
Mixamo를 열면 다음 인터페이스로 들어가게 됩니다. 일부 3D 캐릭터와 애니메이션을 무료로 사용할 수 있습니다.
자신만의 3D 캐릭터를 업로드하고 업로드 형식에 주의한 후
아래 그림에 표시된 단계를 따르세요.
4단계: 역할 가져오기
다운로드한 fbx 파일을 유니티 씬의 Assets 디렉터리로 드래그하여 씬에 드래그하면 해당 씬에서 캐릭터 T-pose 모델을 볼 수 있습니다.
불러온 캐릭터 소재가 분실된 경우 아래 단계를 따라 진행해 주셔야 하며, 건너뛸 수 있는 사항은 없습니다.
5단계: 캐릭터 골격 설정
6단계: 캐릭터 애니메이션 다운로드
Mixamo로 돌아가서 다운로드할 애니메이션을 선택하고 자산으로 드래그하세요.
7단계: 애니메이션 뼈대 설정
모든 애니메이션을 설정해야 합니다.
8단계: 애니메이션 상태 머신 설정
애니메이션 상태 머신 추가, Assets——>Create——>Animation Controller, 그림과 같이 성공적으로 생성되었습니다.
애니메이션을 제어하기 위한 bool 유형 매개변수를 추가하려면 매개변수 아래의 + 기호를 클릭합니다
. 다른 애니메이션에 연결하기 위한 전환 만들기 및 바인딩 다양한 애니메이션 간의 전환 논리를 설정하고
컨트롤러에 바인딩 해야 합니다 .
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단계: 제어 스크립트 바인딩
제어 스크립트를 저장하고 계층 패널의 캐릭터로 드래그합니다.
알아채다:
나의 예는 키보드의 위, 아래, 왼쪽, 오른쪽 키를 사용하여 애니메이션 실행을 제어하는 것인데, 이는 실제 상황에 따라 수정될 수 있습니다. 이 예제는 기존 3D 캐릭터 모델의 간단한 애니메이션 바인딩에만 적합합니다.