유니티 애니메이션 기초

dain·2022년 11월 9일
0

유니티 애니메이션 기초

  • 메카님 시스템
    ? 유니티에서 지원하는 애니메이션 시스템
    • 기본적인 애니메이션 기능 + 레이어/블렌드/리타겟팅 지원
  • 구조

    • 애니메이션 클립
      • 특정 오브젝트가 어떻게 움직여야 하는지에 대한 정보 포함
      • Window > Animation > Animation
    • 애니메이션 컨트롤러
      • 애니메이션 클립들을 구조화해 추적 및 결정하는 상태머신
      • Window > Animation > Animator
  • 제작 방법

    1. 유니티에서 직접 애니메이션 키를 잡아 제작
    2. 외부 프로그램(3ds MAX, Maya, Blender)으로 애니메이션 제작 후 유니티에 임포트


1. 외부 애니메이션 임포트

  • 주로 3D 모델의 애니메이션 제작에 이용됨
  • 일반적으로 FBX 파일 형태로 임포트


2. 유니티에서 애니메이션 제작

  • UI/ 2D 스프라이트 등 비교적 간단한 애니메이션 제작에 이용됨
  • 예시) 큐브 애니메이션
    • 애니메이션 클립: 1초에 360도씩 회전
    • 애니메이션 컨트롤러
      • 애니메이터의 기본 구성 요소
        : 스테이트, 트랜지션, 파라미터


애니메이터의 기본 구성 요소

https://www.youtube.com/watch?v=hOrH3aUSn64

  • 스테이트
    ? 애니메이터에서 애니메이션 클립을 담고 있는 하나의 상태로, 해당 상태에 도달했을 때 어떤 애니메이션 클립이 재생되어야 하는지 표현

    • 생성 방법
      : 우클릭 > Create State > Empty
    • 이름, 모션, 속도 결정 가능
    • 노드
      • 일반적인 스테이트: 회색 사각형
      • 디폴트 스테이트
        ? Entry 노드와 연결된 state로 애니메이션이 처음 재생될 때의 시작점
        - 주황색 사각형
        - 생성: 노드 우클릭 > Set As Layer Default State
      • Any State 노드
        ? 현재 재생되고 있는 애니메이션과 관계 없이 트랜지션의 조건이 만족될 경우 무조건 해당 노드와 연결된 스테이트 재생
      • Exit 노드
        ? 애니메이터의 흐름이 한 번 끝났음을 의미하는 노드
        - Exit 노드를 통과할 경우 Entry 노드부터 애니메이터의 흐름이 다시 재생됨

  • 파라미터
    ? 애니메이터의 한 스테이트에서 다른 스테이트로 전환되는 조건이 되는 변수
    • 생성
    • 타입
      • Float, Int, Bool
      • Trigger: 신호가 들어오면 트랜지션을 통과시킨 후 자동으로 꺼지는 타입
        (Set > True/ 해당 트리거가 걸린 트랜지션 통과 > False)

  • 트랜지션
    ? 스테이트와 스테이트 사이를 연결해 애니메이션의 상태가 어느 방향으로 흘러갈지 결정
    • 생성: 스테이트 우클릭 > Make Transition
    • 해당 트랜지션이 수행될 조건, 스테이트 간의 블렌딩 설정 가능
    • 트랜지션이 동작될 조건: Condition
    • Has Exit Time: true인 경우 현재 실행되는 애니메이션이 끝나기 전까지는 트랜지션을 만족하더라도 다음 스테이트로 넘어가지 않음



Mixamo

  1. 원하는 애니메이션에 타겟 캐릭터의 에셋(fbx 파일) 적용
    • 결과
  1. 애니메이션을 적용한 캐릭터 fbx 파일 다운로드
    • with skin: 애니메이션 데이터 + 모델링과 리깅 데이터 포함
    • without skin: 모델링과 리깅 데이터 제외한 애니메이션 데이터만 포함

      나는 이미 리깅된 캐릭터 에셋이 있으므로 without skin으로 다운로드 했다

  1. 유니티에 임포트 및 설정 변경
    • 임포트
    • 설정
      • Model
      • Rig
      • Animation
      • Material: None
  1. 애니메이션 컨트롤러 생성
  2. 애니메이션 컨트롤러 설정
    • 드래그 & 드롭
  1. 오브젝트에 Animator 컨트롤러 적용
  1. 결과


profile
자라나는 감자

0개의 댓글