차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

다음 판
이전 판
unity:mechanim [2015/09/02 07:28] – 만듦 V_Lunity:mechanim [2018/02/22 03:04] (현재) – 바깥 편집 127.0.0.1
줄 1: 줄 1:
-====== Mechanim ======+{{tag>mechanim}} 
 +====== 메카님(Mecanim)====== 
 + 
 +애니메이션 시스템 '메카님' 은 게임 속 휴머노이드 캐릭터에 자연스러운 움직임을 주는 기능으로, 캐릭터 구조를 일반화하여 하나의 애니메이션을 다른 유형의 캐릭터에 적용하는 기술이다. 이를 통해 개발자가 하나의 모션을 만들고 나면 신체 구성이 서로 다른 캐릭터라고 할 지라도 자동으로 캐릭터 구조를 파악 후 같은 움직임을 적용할 수 있어 편리하고 빠른 개발이 가능하다. 유니티 4.XX 대부터 등장한 애니메이션 시스템이다. 
 + 
 +모든 인간형 애니메이션을 공유할 수 있음. 
 + 
 +{{youtube>BStXjU-mJvk}} 
 + 
 +http://files.unity3d.com/will/MecanimTute.zip 
 + 
 +위 링크로 들어가면 프로젝트를 받을 수 있습니다. 
 + 
 +[[http://dolphin.ivyro.net/file/mobile/unity/tutorial14.html|튜토리얼1]] 
 +[[http://dolphin.ivyro.net/file/mobile/unity/tutorial15.html|튜토리얼2]] 
 + 
 + 
 + Unity 5의 새롭게 개선된 메카님에 대해 [[http://jinhomang.tistory.com/post/89|유니티5: 새로운 메카님(Mecanim) 요약]]의 흑기사 님이 쓴 글이다.
  
- Unity 5의 새롭게 개선된 메카님에 대해 [[http://jinhomang.tistory.com/post/89|유니티5: 새로운 메카님(Mecanim) 요약]]의 흑기사 님이 쓴 글입니다.+http://unityindepth.tistory.com/60 것도 참조 한다.
  
 State Machine Behaviours State Machine Behaviours
- 예전에는 메카님 사용 시, 아래와 같이 불편한 모양새로 코드를 작성할 수 밖에 없었습니다.+ 예전에는 메카님 사용 시, 아래와 같이 불편한 모양새로 코드를 작성할 수 밖에 없었다.
  
   if (animator.GetCurrentAnimatorStateInfo(0).isName("Idle"))   if (animator.GetCurrentAnimatorStateInfo(0).isName("Idle"))
         DoStuff();         DoStuff();
  
-하지만 이제는 메카님의 스테이트에 Behavior 스크립트(StateMachineBehaviour)를 붙일 수 있게 되었습니다!+하지만 이제는 메카님의 스테이트에 Behavior 스크립트(StateMachineBehaviour)를 붙일 수 있게 되었다!
  
 {{image>http://i1.daumcdn.net/thumb/R750x0/?fname=http%3A%2F%2Fcfile10.uf.tistory.com%2Fimage%2F2472423754B4CDEB31642A}} {{image>http://i1.daumcdn.net/thumb/R750x0/?fname=http%3A%2F%2Fcfile10.uf.tistory.com%2Fimage%2F2472423754B4CDEB31642A}}
  
-어떤 스테이트에 StateMachineBehaviour 스크립트를 추가하면, 해당 스테이트의 상황에 따라 아래에 나열된 콜백 함수들이 호출됩니다.+어떤 스테이트에 StateMachineBehaviour 스크립트를 추가하면, 해당 스테이트의 상황에 따라 아래에 나열된 콜백 함수들이 호출다.
  
      - OnStateEnter                                                                                - OnStateEnter                                                                          
줄 19: 줄 36:
      - OnStateExit                                                                                   - OnStateExit                                                                             
      - OnStateMove                                                                                 - OnStateMove                                                                           
-     - OnStateIK +     - OnStateIK
  
-따라서 이제 유저들은 아주 간결한 코드를 작성할 수 있습니다.  +따라서 이제 유저들은 아주 간결한 코드를 작성할 수 있다.  
-아울러 하나의 스테이트에는 복수의 StateMachineBehaviour 스크립트를 어태치하는 것이 가능합니다.+아울러 하나의 스테이트에는 복수의 StateMachineBehaviour 스크립트를 어태치하는 것이 가능.
  
 {{image>http://i1.daumcdn.net/thumb/R750x0/?fname=http%3A%2F%2Fcfile26.uf.tistory.com%2Fimage%2F250B0F3754B4CDEB0862BC}} {{image>http://i1.daumcdn.net/thumb/R750x0/?fname=http%3A%2F%2Fcfile26.uf.tistory.com%2Fimage%2F250B0F3754B4CDEB0862BC}}
  
-State Machine Transitions +{{:unity:mechanim_mapping.jpg|}}
-스테이트 머신의 복잡도를 줄이기 위해서 Entry노드와 Exit노드를 추가했습니다.+
  
  
-{{image>http://i1.daumcdn.net/thumb/R750x0/?fname=http%3A%2F%2Fcfile21.uf.tistory.com%2Fimage%2F2102274154B4D0DE1C5B71}}+===== State Machine Transitions =====
  
-Entry 노드: 만약 어떤 스테이트 머신을 향해 트랜지션이 일어나게 되면, 애니메이션 시스템에서는 먼저 해당 스테이트 머신의  Entry노드를 기점으로 하여 판단하게 됩니다. 따라서 Entry 노드에서부터 각 조건을 판단하여 각각 목적지(스테이트 또는 스테이트 머신)로 향해 분기가 일어납니다.+스테이트 머신의 복잡도를 줄이기 위해서 Entry노드와 Exit노드를 추다.
  
-Exit 노드이 노드에 도달하게 되면, 해당 스테이트 머신을 벗어나게 됩니다이 역시 각각 조건에 따라서 외부 목적지(스테이트 또는 스테이트 머신)를 향해 트랜지션 분기가 일어납니다(물론 조건에 따라 현재 자신의 스테이트 머신으로 트랜지션이 될 수도 있습니다.)  +{{image>http://i1.daumcdn.net/thumb/R750x0/?fname=http%3A%2F%2Fcfile21.uf.tistory.com%2Fimage%2F2102274154B4D0DE1C5B71}}
  
- 로써 5 버전에서는 Entry 노드, Exit 노드를 이용하여 스테이트 머신의 복잡도를 대폭 줄일 수 있을 것입니다. +Entry 노드: 만약 어떤 스테트 머신을 향해 트랜지션이 일어나게 되면, 애니메이션 시스템에서는 먼저 해당 스테이트 머신의  Entry노드를 기점으로 하여 판단하게 된다. 따라서 Entry 노드에서부터 각 조건을 판단하여 각각 목적지(스테이트 또는 스테이트 머신)로 향해 분기가 어난다.
  
 +Exit 노드: 이 노드에 도달하게 되면, 해당 스테이트 머신을 벗어나게 된다. 이 역시 각각 조건에 따라서 외부 목적지(스테이트 또는 스테이트 머신)를 향해 트랜지션 분기가 일어난다. (물론 조건에 따라 현재 자신의 스테이트 머신으로 트랜지션이 될 수도 있다.)
  
 + 이로써 5 버전에서는 Entry 노드, Exit 노드를 이용하여 스테이트 머신의 복잡도를 대폭 줄일 수 있을 것이다.
  
  
  
-Asset Creation API +===== Asset Creation API =====
- 이제 에디터 스트립트를 이용하여 StateMachine, State, Controller, Layer, Blendtree와 같은 애니메이션 에셋을 생성할 수 있는 API를 제공합니다.  +
- (NOTE:샘플 코드는 상단에 게재된 첫번째 링크의 블로그에 들어가셔서 확인하실 수 있습니다.)+
  
 + 이제 에디터 스트립트를 이용하여 StateMachine, State, Controller, Layer, Blendtree와 같은 애니메이션 에셋을 생성할 수 있는 API를 제공함. 
 + (NOTE:샘플 코드는 상단에 게재된 첫번째 링크의 블로그에 들어가셔서 확인할 수 있다.)
  
  
  
-Direct Blend Trees +===== Direct Blend Trees ===== 
- Unity5에서는 Direct Blend Tree라는 새로운 타입의 BlendTree를 제공합니다. 이것을 통해서 Animator의 파라미터를 BlendTree의 각 차일드(애니메이션)의 weight값들로 직접 매핑할 수 있게 되었습니다. (아래 그림 참조)+ 
 + Unity5에서는 Direct Blend Tree라는 새로운 타입의 BlendTree를 제공. 이것을 통해서 Animator의 파라미터를 BlendTree의 각 차일드(애니메이션)의 weight값들로 직접 매핑할 수 있게 되었다. (아래 그림 참조)
  
 {{image>http://i1.daumcdn.net/thumb/R750x0/?fname=http%3A%2F%2Fcfile9.uf.tistory.com%2Fimage%2F2562F23854B4D25F02F8B6}} {{image>http://i1.daumcdn.net/thumb/R750x0/?fname=http%3A%2F%2Fcfile9.uf.tistory.com%2Fimage%2F2562F23854B4D25F02F8B6}}
  
-이 기능은 유저가 BlendShape 애니메이션 또는 additive 애니메이션 작업을 할 경우에 매우 유용할 것입니다.+이 기능은 유저가 BlendShape 애니메이션 또는 additive 애니메이션 작업을 할 경우에 매우 유용할 것다.
  
  
  
 +===== Root Motion Authoring (in generic mode) =====
  
- + 이제 메카님 제너릭 모드에서 루트 모션 커브(root motion curve)를 사용자가 직접 직접 제작할 수 있다. 방법은 매우 간단.       
-Root Motion Authoring (in generic mode) +  - animation 하나를 생성.
- 이제 메카님 제너릭 모드에서 루트 모션 커브(root motion curve)를 사용자가 직접 직접 제작할 수 있습니다. 방법은 매우 간단합니다.       +
-  - animation 하나를 생성합니다.+
   - 오브젝트를 이동/회전을 하여 원하는 애니메이션 커브를 만듭니다.    - 오브젝트를 이동/회전을 하여 원하는 애니메이션 커브를 만듭니다. 
-  - 오브젝트의 최상위 트랜스폼에 포커스를 둔 상태로, AnimationClip 인스펙터 안에 있는 [Generate Root Motion] 버튼을 클릭합니다.+  - 오브젝트의 최상위 트랜스폼에 포커스를 둔 상태로, AnimationClip 인스펙터 안에 있는 [Generate Root Motion] 버튼을 클릭.
  
 {{image>http://i1.daumcdn.net/thumb/R750x0/?fname=http%3A%2F%2Fcfile29.uf.tistory.com%2Fimage%2F23035A3754B4CDEB16B97D}} {{image>http://i1.daumcdn.net/thumb/R750x0/?fname=http%3A%2F%2Fcfile29.uf.tistory.com%2Fimage%2F23035A3754B4CDEB16B97D}}
- 
- 
  
  
줄 80: 줄 96:
   - 수많은 버그픽스 등등   - 수많은 버그픽스 등등
  
-{{tag>mechanim}}+