Unity PAT 프로젝트 #2 캐릭터 애니메이션

SourStar15·2025년 10월 14일

PAT-Project

목록 보기
2/10

애니메이션

이번에는 캐릭터 애니메이션을 적용하는 방법에 대해 알아보겠습니다.
우선 애니메이션을 적용하기 위해서는 Animator 컴포넌트가 필요합니다.

보이는 사진 처럼 Animator 안에 들어갈 컨트롤러와 아바타를 추가로 지정해줘야 합니다.

애니메이터 컨트롤러를 이용해 각각의 애니메이션을 동작하게 만듭니다.
여기서 각각 애니메이션이 필요한데, 저는 정지상태의 애니메이션(Idle), 걷는 애니메이션(walk), 뛰는 애니메이션(run)을 추가해 주겠습니다.

제가 사용할 애니메이션은 https://www.mixamo.com/#/ 이곳에서 다운받아줬습니다.

Mixamo 애니메이션

원하는 애니메이션을 선택한 뒤 다운로드를 받으면 됩니다.

여기서 주의사항이 이동하는 애니메이션 같은 경우
In place 체크박스를 체크한뒤 다운로드 받아야 적용하기 편합니다.

Unity Animator

Unity에 다운로드 받은 애니메이션을 복사 한 뒤 파일을 살펴보면 애니메이션 클립 이 있습니다. 저희가 사용할 건 애니메이션 클립만 있으면 되기 때문에 편집을 해주겠습니다.

Animation Clip

애니메이션 클립을 편집해 Rig를 Humanoid로 적용해 주면 됩니다. 기본으로 Generic으로 체크됩니다.

적용된 애니메이션을 에니메이터에 넣어두면 해당 애니메이션클립의 이름을 딴 박스가 나타나게 됩니다.

저는 총 3가지 정지상태, 걷는상태, 뛰는 상태의 애니메이션으로 간단하게 구현했습니다. 상자들끼리 화살표들로 연결이 되어 있는데 이를 트렌지션이라고 합니다. 간단히 애니메이션의 방향이라고 생각하면 됩니다.

Animator Transition

애니메이터에서 트랜지션을 추가해 주기 위해 먼저 파라미터를 추가해야 됩니다.

파라미터 아래에 있는 + 버튼을 눌러 추가하면 됩니다. Float, Int, Bool, Trigger 형이 있으며 트리거 같은 경우는 한번 누르면 시작되는 일회성 신호라고 생각하시면 됩니다.

해당 부분은 정지상태에서 걷는상태로 넘어가는 트랜지션입니다. 컨디션을 추가한뒤 위에 보이는 Has Exit Time 체크박스를 해제 해줬습니다.

애니메이션 적용 시간 문제

만약 Has Exit Time 체크 박스를 해제 하지 않는다면 위에 사진처럼 Idle 에서 Walk로 넘어가기 까지 약 6초 정도 소요가 됩니다.

  • Has Exit Time은 다음 애니메이션으로 넘어가는 시간

걷거나 이동하는 애니메이션 같은 경우 바로바로 나와야 하기 때문에 체크를 해제해주었습니다. 하지만 바로바로 나오는 애니메이션이 아닌 디테일을 챙겨야 되는 상황이라면 Setthings 값에서 Transition Duration을 조정하면 됩니다.

코드 구현

먼저 Unity의 Animator 타입의 변수를 만들어 줍니다.

Animator animator;

void Start()
{
	animator = GetComponent<Animator>();
}

현재 게임 오브젝트에 붙은 컴포넌트를 가져와줍니다.

여기서 중요한 부분은 SetBool 다음 파라미터 이름을 적어줘야 합니다. 대문자 한토시도 틀리면 작동하지 않기 때문에 isRun, isWalk 등 파라미터의 이름을 정확히 써주는게 중요합니다.

profile
말하는 감자

0개의 댓글