본문 바로가기

유니티 새소식

[유니티 5.0] 새로운 애니메이션 기능들


작년 유니티 5.0 베타가 발표되면서, 유니티 5.0 에 관한 기사들이 하나 둘씩 유니티 공식 블로그에 올라오고 있습니다. 이번에 소개 해드릴 내용도 유니티 공식 블로그에 올라온 글이며, 지금 글을 작성한 시점에서 조금 시간이 지난 내용이지만, 다음의 올릴 글을 보시는 분들의 이해를 돕기 위해 12월 말에 올라온 글부터 소개해 드리도록 하겠습니다.


■ State Machine Behaviours


유니티 5.0에서, 각 상태마다 StateMachineBehaviours 스크립트 컴포넌트를 추가할 수 있게 되었습니다. 이 스크립트들은 실제 플레이가 되었을 때 다음과 같은 콜백함수를 받게 됩니다.

  • OnStateEnter
  • OnStateUpdate
  • OnStateExit
  • OnStateMove
  • OnStateIK

각 상태에는 자신이 원하는 만큼 StateMachineBehaviours 스크립트 컴포넌트를 추가 할 수 있습니다. 이런 스크립트들에 IK(Inverse Kinematics)정보라든지, 상태 로직등의 정보를 담아서 원하는 상태에 드래그하면 됩니다.


기본적으로, 애니메이션이 없어도 게임내에서 약간의 상태머신 로직이 필요한 곳이라면 어디든 사용이 가능합니다.



위에 소개된 기능을 통해서, 소스코드에 많이 나타나는 다음과 같은 코드들이 더 이상 불필요하게 될 것으로 예상됩니다.


1
2
if(animator.GetCurrentAnimatorStateInfo(0).isName("Idle") )
    DoStuff()
cs


■ State Machine Transitions

State Machines이 점점 복잡해지면서, 유니티 5.0에서는 State Machine Logic을 구현하는데 있어 좀 더 높은 추상화 개념을 제공합니다.

이를 위해 유니티 5.0에서는 State Machines에 Enter 노드와 Exit 노드를 추가하였는데, 둘다 상태 전이에 쓰일 수 있습니다.

새로 추가된 노드들의 기능을 잠깐 살펴 보면
Enter : 다른 상태 머신으로 전이 될때, 애니메이션 시스템은 Entry 노드를 기점으로 먼저 검사하고, 해당 조건에 맞는 다음 목적지로 전이시키게 됩니다.
Exit : Exit 노드로 전이될 때, 애니메이션 시스템은 Exit로 전이되는 상태 머신을 조건에 따라 적절한 다음 상태전이로 연결시켜줍니다.


추가적으로, UI가 Animation Layer와 Parameter의 순서를 변경할 수 있게 개선되었습니다.

■ Asset Create API

유니티 5.0에서는 스크립트를 사용하여, StateMachines, State, Controllers, Layers, BlendTrees등을 에디터안에서도 만들 수 있게 하였는데요. 
API를 높은 수준과 낮은 수준의 API로 나누어서 볼 수 있는데, 높은 수준의 API는 유니티에서 에셋을 관리 해주지만, 낮은 수준의 API는 직접 에셋을 관리해야하지만 외부 레퍼런스를 실행할 수 있게 해주었습니다.

두 API모두 문서화 되어있으니, 사용하는데 참고하시기 바랍니다.


■ Direct Blend Trees

이번에 새롭게 'Direct'라는 새로운 BlendTree의 타입이 추가되었는데, 애니메이터 파라미터와 BlendTree의 자식(애니메이션) 무게(Weight)를 연결시켜줍니다.


이를 통해, BlendShape 애니메이션 또는 Additive 애니메이션을 제작하는데 보다 쉽게 도와 줄 것입니다.


■ Root Motion Authoring(in Generic Mode)

유니티 5.0에서는 메카님 Generic Mode에서 Root Motion Curve를 사용자가 직접 제작할 수 있게 되었습니다.
객체의 최상위 Transform에서 이동/회전 같은 간단한 애니메이션을 만들고 AnimationClip의 인스펙터창에 있는 'Generate Root Motion Curve'를 누르시면 됩니다.


그 밖에 많은 버그들 수정이 되었는데 간단하게 적어보면
  • 애니메이션 미리보기 기능 강화
  • 런타임 매개변수 접근
  • 애니메이션 관련 기즈모 추가(ex Root Position ,IK Position)
  • 리타겟팅 엔진 개선
  • 런타임 최적화
  • 많은 버그들 개선


이 밖에 유니티 5.0에 대한 좀 더 자세한 내용들은 밑에 참조를 통해서 확인해보시기 바랍니다.






참조

유니티 5.0 소개 페이지 

유니티 5.0 베타 다운로드 페이지(다운로드는 모두 가능, 단 5.0 라이센스 구매자, 유니티 Pro 사용자만 실행가능)