블로그 이미지
Every unexpected event is a path to learning for you. blueasa

카테고리

분류 전체보기 (2797)
Unity3D (853)
Programming (479)
Server (33)
Unreal (4)
Gamebryo (56)
Tip & Tech (185)
협업 (61)
3DS Max (3)
Game (12)
Utility (68)
Etc (98)
Link (32)
Portfolio (19)
Subject (90)
iOS,OSX (55)
Android (14)
Linux (5)
잉여 프로젝트 (2)
게임이야기 (3)
Memories (20)
Interest (38)
Thinking (38)
한글 (30)
PaperCraft (5)
Animation (408)
Wallpaper (2)
재테크 (18)
Exercise (3)
나만의 맛집 (3)
냥이 (10)
육아 (16)
Total
Today
Yesterday

유니티에서 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

반응형

'Unity3D' 카테고리의 다른 글

간단한 Nav Mesh 예제  (0) 2012.11.21
런타임 중 텍스쳐 교체  (0) 2012.11.20
Unity3d Android 해상도 설정하기 ( Screen.SetResolution )  (0) 2012.11.14
Unity remote 사용방법 (iPhone, Android)  (0) 2012.11.08
Smooth Follow Camera  (0) 2012.11.06
Posted by blueasa
, |