07/20 플레이어, 적 캐릭터, Animator Controller

심지태
∙∙조회 6
07/20 플레이어, 적 캐릭터, Animator Controller

소리에 세 부품(음원, 스피커, 귀)이 있었듯 애니메이션에도 부품이 있습니다.

구분역할쉽게 말하면예시
애니메이션 클립 (Animation Clip)오브젝트의 움직임·회전·크기 등의 시간에 따른 변화를 저장합니다.개별 동작 파일대기, 걷기, 달리기, 공격, 점프
애니메이터 컨트롤러 (Animator Controller)여러 애니메이션 클립을 상태로 구성하고, 상태 전환 조건을 관리합니다.동작 전환 설계도Speed > 0이면 대기 → 걷기
애니메이터 (Animator)게임 오브젝트에 붙는 컴포넌트로, 컨트롤러를 실행해 실제 애니메이션을 재생합니다.설계도대로 동작시키는 실행기플레이어 캐릭터에 컨트롤러 적용
탭설정 대상주요 기능쉽게 말하면
Model메시와 모델 구조크기(Scale), 좌표축, 메시 압축, 읽기/쓰기, 노멀·탄젠트 등의 가져오기 방식 설정모델의 형태를 가져오는 방법
Rig뼈대와 리깅Animation Type 설정, 뼈대 구조 인식, 루트 본 지정, Avatar 생성모델의 뼈대를 어떻게 사용할지 설정
Animation모델 파일에 포함된 애니메이션애니메이션 클립 가져오기, 구간 분리, 반복(Loop), Root Motion 등의 설정포함된 동작을 클립으로 설정
Materials재질과 텍스처모델에 포함된 머티리얼을 가져오거나 기존 Unity 머티리얼과 연결모델의 색상과 표면을 연결

Avatar란?

Avatar는 모델의 실제 뼈대를 Unity가 이해하는 표준 뼈대 구조와 연결해 놓은 매핑 정보입니다.

예를 들어 모델마다 팔 뼈의 이름이 다를 수 있습니다.

모델의 뼈 이름Avatar가 해석한 의미
mixamorig_LeftArm왼쪽 위팔
Bip001_L_Hand왼손
Pelvis골반
Head머리

즉, Avatar는 캐릭터의 외형이나 애니메이션 파일이 아니라 “어떤 뼈가 어느 신체 부위인지 알려주는 번역표”에 가깝습니다.

Avatar가 필요한 이유

Humanoid 캐릭터에 Avatar를 설정하면 한 캐릭터용 애니메이션을 다른 인간형 캐릭터에도 적용할 수 있습니다. 이를 리타게팅(Retargeting)이라고 합니다.

Rig의 Animation Type

타입용도Avatar
None애니메이션을 사용하지 않는 정적 모델사용하지 않음
Humanoid사람과 비슷한 뼈대를 가진 캐릭터신체 뼈 매핑 및 리타기팅에 사용
Generic동물, 몬스터, 기계 등 자유로운 뼈대계층 구조와 Root Bone 중심으로 사용
LegacyUnity의 과거 애니메이션 시스템일반적인 신규 프로젝트에서는 거의 사용하지 않음

핵심적으로 구분하면 다음과 같습니다.

  • Rig: 캐릭터의 실제 뼈대 구조
  • Avatar: 그 뼈대의 각 뼈가 어떤 신체 부위인지 나타내는 매핑 정보
  • Animation Clip: 뼈가 시간에 따라 움직이는 동작 데이터
  • Animator Controller: 어떤 조건에서 어떤 동작을 재생할지 관리하는 규칙
  • Animator: 캐릭터에서 Controller와 Avatar를 사용해 애니메이션을 실행하는 컴포넌트

FSM (유한 상태 머신)

FSM(Finite State Machine)은 객체가 가질 수 있는 상태를 미리 정하고, 조건에 따라 상태를 변경하는 구조이다.

캐릭터는 한 번에 하나의 상태만 가진다.

예시: Idle → Jump → Fall → Idle

  • Idle: 대기 상태
  • Jump: 상승 상태
  • Fall: 낙하 상태

FSM의 구성 요소

State(상태)

현재 객체가 무엇을 하고 있는지 나타낸다.

plain text
Idle, Run, Jump, Fall

Transition(상태 전환)

어떤 조건에서 다른 상태로 변경되는지를 의미한다.

yaml
Idle → Jump: 점프 키 입력
Jump → Fall: Y축 속도가 0 이하
Fall → Idle: 바닥에 착지

Action(동작)

현재 상태에서 실행할 로직이다.

plain text
Jump 상태: 위쪽으로 이동
Fall 상태: 낙하 애니메이션 실행

Blend Tree

*파라미터 값에 따라 여러 애니메이션을 부드럽게 섞어주는 기능 (Blend : 섞다, 혼합하다)

ini
1D Blend Tree
= 하나의 값으로 애니메이션 혼합
예: Idle, Walk, Run
ini
2D Blend Tree
= 두 개의 값으로 애니메이션 혼합
예: 앞, 뒤, 좌우 이동
ini
FSM = 캐릭터의 큰 상태 관리

Blend Tree = 상태 내부의 세부 애니메이션 관리

Cinemachine

Cinemachine이란?

Cinemachine은 카메라 추적, 회전, 흔들림, 전환 등을 쉽게 구현할 수 있게 해주는 Unity 공식 카메라 패키지이다.

직접 Main Camera의 위치를 계속 계산하는 대신, Cinemachine Camera에 규칙을 설정하면 실제 카메라가 그 규칙을 따라 움직인다.

기본 구조

구성 요소역할
Main Camera실제 화면을 출력하는 카메라
Cinemachine Brain어떤 Cinemachine Camera를 사용할지 결정
Cinemachine Camera카메라의 위치, 회전, 추적 규칙 설정
Tracking Target카메라가 따라가거나 바라볼 대상
Priority여러 카메라 중 사용할 카메라 결정
Blend카메라가 변경될 때 전환되는 방식