21
유유유 4 유유유유유 유유유 유유

유니티4 애니메이션 시스템

Embed Size (px)

DESCRIPTION

KGC2012를 통해 발표한 유니티4에서 새로 선보이는 애니메이션 시스템에 대한 전반적인 소개자료입니다.

Citation preview

Page 1: 유니티4 애니메이션 시스템

유니티 4 애니메이션시스템 소개

Page 2: 유니티4 애니메이션 시스템

세션 소개

애니메이션 시스템 소개

아바타 설정

애니메이션 컨트롤

기타 기능 소개

스크립팅

다른 시스템과의 연동

Page 3: 유니티4 애니메이션 시스템

유니티 4 애니메이션의 장점들작업 양의 감소

캐릭터별 애니메이션의 재활용리깅 작업을 자동으로 수행

편리한 인터페이스미리보기를 통해 클립의 세부적인 조절이 가능 .FSM 을 이해하면 누구나 애니메이션 시스템을 설계

성능모바일에서도 뛰어난 애니메이션 성능

향후 개발될 기능들애니메이션 이벤트 추가다양한 종류의 캐릭터 ( 4 족 ) 지원

Page 4: 유니티4 애니메이션 시스템

유니티 4 애니메이션동영상 데모

Page 5: 유니티4 애니메이션 시스템

애니메이션 시스템 플로우

아바타 설정 컨트롤러 설정 스크립트제어

3 단계 설정을 통해 진행

클립 설정리깅 설정테스트애니메이터 설정

스테이트 지정트랜지션 설정블렌드 트리레이어마스킹

상태 변경 IK 설정컴포넌트 연동

Page 6: 유니티4 애니메이션 시스템

유니티 4 모델링 임포트 시스템아바타 설정 기능이 추가됨 .

체크를 안할 시 기존의 애니메이션 시스템을 사용 .

애니메이션 설정을 위한 탭을 별도로 제공 .

Page 7: 유니티4 애니메이션 시스템

애니메이션 클립 프리뷰애니메이션 클립 미리보기 기능

속도조절 , 방향 기즈모 제공 다른 캐릭터로 테스트 가능 !

Page 8: 유니티4 애니메이션 시스템

애니메이션 클립 설정애니메이션 클립의 상태를 쉽게 체크할 수 있도록

여러가지 기능을 제공 클립의 시작과 끝 프레임 지정 Loop Pose : 부드러운 반복동작을 체크 Lock Root Rotation : 이동 방향을 고정 Lock Root Height : 높이를 고정 Lock Root Position : 위치를 고정 불빛을 통해 자연스럽게 구현 가능한지를 알려줌 기타 다양한 설정들 제공

Page 9: 유니티4 애니메이션 시스템

자동 리깅을 통한 아바타 설정

본 매핑자동으로 본 매핑을 수행함이름을 이해할 수 있도록 작명하는 것이 유리 !저장 / 로드 기능을 통해 효율적인 배치가 가능 .본 매핑에 실패할 경우 , 자동 재배치 기능을 제공 .모두 실패할 경우 수동으로 본의 구조 조작 .

지원하는 본의 수반드시 필요한 본의 수 : 15 개옵션으로 추가 가능한 본의 수 : 39 개 ( 손당 15

개 )

Page 10: 유니티4 애니메이션 시스템

머슬 바인딩된 아바타의 테스트

본이 올바르게 설정된 아바타는 머슬이라고 불리는 각 부위별 설정에 따라 움직이게 되며 , 자연스러운 움직임을 가져야한다 .

이를 위해 설정된 아바타가 자연스럽게 움직이는지 확인하는 별도의 설정 화면을 제공한다 . 머슬 그룹별 움직임 테스트 각 머슬별 움직임 테스트

Page 11: 유니티4 애니메이션 시스템

애니메이터 (Animator) 컴포넌트

새로운 애니메이션 시스템을 위해 애니메이터(Animator) 라는 새로운 컴포넌트를 제공 .애니메이터 컴포넌트의 구성 요소

애니메이션 컨트롤러의 설정 스크립트로 움직임을 제어할 것인지의 선택 물리 엔진을 고려할 것인지의 선택

아바타

컨트롤러

Animator

Page 12: 유니티4 애니메이션 시스템

애니메이션 컨트롤러아바타의 움직임을 상태 (State) 로 정의하고 외부

조건에 따른 상태의 전이 (Transition) 를 통해 캐릭터의 전체적인 움직임을 구성함 .

FSM 에 대한 개념만 익히면 누구나 쉽게 제작이 가능함 .

Page 13: 유니티4 애니메이션 시스템

블렌드 트리외부 입력에 따라 다양한 모션들을 혼합하여

보여줄 때 사용함 . 예 ) 왼쪽으로 뛰기 , 오른쪽으로 뛰기 , 바로 뛰기를

수평 입력값 ( -1 ~ 1 ) 을 참고하여 혼합 .

Page 14: 유니티4 애니메이션 시스템

상태 (State) 설정캐릭터의 움직임을 관리하는 상태는 하나의 애니메이션 클립

혹은 블렌드트리로 정의된다 . 처음에 시작시 캐릭터의 움직임을 관리하는 기본 상태

(Default State) 가 정의되어야 함 어떤 상태에 있든지 , 다른 상태로 빠져나오고 싶을 때에는

Any State 를 활용하면 편리함 . 2 차 상태 (Sub-State) 를 정의하여 복잡한 상태 머신을

구현할 수 있음 .

Page 15: 유니티4 애니메이션 시스템

상태 전이 (Transition) 설정

캐릭터의 움직임이 다른 상태로 변화되도록 특정한 조건을 설정할 수 있는데 , 이를 전이라고 함 .

인스펙터뷰를 통해 전이가 일어나는 경우 두 상태의 모션을 어떻게 결합하는지를 설정 .

전이를 위해 다양한 조건이 제공됨 If ( If Not ) : 지정한 변수가 True (False)

인지 . Less, Greater, Equal, Not Equal : 지정한

변수가 지정한 값과 비교 . Exit Time : 애니메이션 클립의 재생 위치가

지정된 수치를 넘긴 경우 .

Page 16: 유니티4 애니메이션 시스템

상태 값 (Parameter) 설정

상태 머신을 스크립트로 제어하기 위해 설정한 데이터 상태가 변화되는 전이의 조건으로 많이 활용됨 . Vector, Float, Int, Bool 의 4 가지가 제공 . 커브라는 특수한 데이터가 제공

커브를 통해 시간에 따라 다양하게 변하는 값을 지정할 수 있음 .

스크립트에 커브를 활용하여 다른 컴포넌트의 환경을 변화시키도록 하는 것이 가능 .

Page 17: 유니티4 애니메이션 시스템

레이어 및 마스킹레이어를 통해 여러 개의 상태 머신을 구현하고 , 상위

레이어의 애니메이션은 마스킹을 통해 하위 레이어의 애니메이션과 결합 . 마스킹 설정 ( 녹색이 사용할 머슬 그룹 ) 레이어 간 중복되는 머슬 그룹에 대해 애니메이션을

대체할 것인지 (Override) , 가산 (Additive) 하여 효과를 낼 것인지에 대한 설정

싱크 (Sync) 기능 이미 만들어진 다른 레이어의 상태머신 구조를

애니메이션만 대체하여 재활용 .

Page 18: 유니티4 애니메이션 시스템

스크립팅크게 두 가지 용도로 활용

입력 값을 받아 상태 머신의 파라미터로 전달하여 전이를 일으킬 수 있도록 활용

OnAvatarMove 콜백 함수를 통해 애니메이션의 값을 스크립트에 전달하여 애니메이션 동작의 값을 다른 컴포넌트들과 연동할 수 있도록 활용

이벤트 기능 이벤트는 추후 지원 예정 . 현재로서는 주기적인 폴링을 통해 현재 상태 정보 및

커브 값을 읽어와서 비교하고 이에 대에 대응해야 함 .

Page 19: 유니티4 애니메이션 시스템

역기구학 (IK) 구현

아바타가 된 캐릭터는 물체와 상호동작을 위한 역기구학(IK) 기능이 자동으로 구현된다 . 예 ) 손으로 컵을 잡기 , 발로 공을 차기 등등 ..

OnAvatarIK 콜백함수로 호출됨 . 아래의 함수를 사용하여 IK 를 설정 .

SetIKPosition SetIKRotation SetLookAtPosition bodyPosition

Page 20: 유니티4 애니메이션 시스템

성능캐릭터별로 아바타 시스템을 재활용하는 방식으로

사용하기 때문에 기존의 시스템보다 더 큰 성능 향상이 있음 .

데스크탑 , 웹 및 모바일에서 모두 동작 가능 .

Page 21: 유니티4 애니메이션 시스템

감사합니다 !