Unity3D

상체 애니메이션 덧붙이기(AddMixingTransform)

blueasa 2012. 11. 16. 15:47

유니티에서 3D 캐릭터가 달리는 중에 상체만 공격애니메이션을 하게 만드려고 이리저리 삽질한 결과 정리..


[중요사항]

1. 우선 AnimationState.Layer가 같은 애니메이션은 Play(or CrossFade)하려는 애니메이션 외 모두를 정지시키면서 실행된다.

    같이 실행되려면 레이어를 달리해야된다.


2. 그리고, Layer 디폴트는 0이고 Layer 숫자가 높을수록 애니메이션 우선순위가 높다.

    애니메이션 두 개가 동시에 Play 될 때, Layer가 높은 애니메이션이 우선시 된다.


3. AddMixingTransform에 해당 애니메이션이 적용되는 부위(상체라던지..)의 Bone을 찾아서 넣어준다.

예) Transform mixTransform = transform.Find("Bip00 Spine");

      animation["Attack"].AddMixingTransform(mixTransform);


[정리]

animation["RUN"].layer = 0;

animation["ATTACK"].layer = 1;

animation["ATTACK"].blendMode = AnimationBlendMode.Blend;

animation["ATTACK"].AddMixingTransform(trBone); // trBone은 알아서 받기..


- 이렇게 하고 RUN 중에 ATTACK 애니를 CrossFade 해주면 하체는 달리면서 상체는 공격하는 애니가 실행된다.


참조 : http://www.devkorea.co.kr/reference/Documentation/ScriptReference/AnimationState.AddMixingTransform.html

반응형