Unity | Animation, Animator

Clean·2025년 5월 13일

Unity

목록 보기
16/24

Finite State Machine (유한 상태 기계)

애니메이션은 FSM (유한 상태 기계)로 관리 및 변경한다.

  • Idel ↔ Walk
  • Walk ↔ Run

  • Parameters를 통해 상태를 변경한다.

  • ex)

타입예시
floatMoveSpeed 이동속도
boolIsDead 죽어있는지 체크
intEnumint로 변환하여 사용가능
TriggerAttack 공격
(트리거는 주로 일회성 애니메이션에 사용)

Animator (애니메이터)


Apply Root Motion

⭕ : 애니메이션에 포함된 위치 값으로 위치가 지정됨

❌ : 스크립트에 의해 위치가 지정됨 | Rigidbody, Transform


Update Mode

Normal : 게임시간 영향 받음

Unscaled Time : 게임시간 무시
ex) 시간이 멈춰도 움직이는 UI에서 사용


Avatar

  • 모델의 Animation TypeHumanoid or Generic으로 변경시 Avatar 파일이 생성된다.

  • 실선은 필수 뼈대, 점선은 추가 뼈대

  • 모델의 뼈대Animator가 인식하고 제어할 수 있게 하는 데이터다.

  • 애니메이션 = 움직일 행동
    아바타 = 그 행동을 할 뼈대를 유니티가 인식하게 하는 정보

  • 모델과 애니메이션이 같아야 동작한다.

    • Humanoid 모델 + Humanoid 애니메이션은 동작
      ex) 인간 캐릭터, SD 캐릭터같이 모델의 크기가 달라도 애니메이션이 호환된다.

    • Generic 모델 + Generic 애니메이션도 동작하지만,
      모델의 전용 애니메이션이 필요하다.


Avatar Mask

아바타의 특정 부위만 움직이게할 때 사용한다.

예를 들어

칼을 휘두를 때 상체는 팔이 움직이지만,

하체는 앉아있거나 서있거나 걷거나 점프 중일 수도 있다.

이럴 때 상체만 팔을 움직여 공격하는 애니메이션을 재생하고,

하체는 다른 애니메이션을 유지할 수 있다.


Layers

Base Layer 에서 걷거나 뛰는 움직이는 애니메이션을 재생하고

Upper Layer 에서 상체만 다른 애니메이션을 실행하는 방식이다.


Weight

Weight 는 가중치로 최종 애니메이션에 얼마나 적용될지 정한다.

0이면 해당 레이어의 애니메이션이 적용되지 않고

0.5면 50%만 섞여서 재생된다.

1이면 해당 레이어의 애니메이션이 재생된다.


2D 애니메이션만 다뤄보다가 3D는 처음 해봤는데

복잡하고 옵션들이 많아서 어려워 보이는데

확실히 시각적인 만족감이 제일 커서 재밌는 것 같다.

0개의 댓글