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

카테고리

분류 전체보기 (2323)N
Unity3D (568)N
Programming (472)
Unreal (4)
Gamebryo (56)
Tip & Tech (184)
협업 (34)
3DS Max (3)
Game (12)
Utility (116)
Etc (92)
Link (31)
Portfolio (19)
Subject (90)
iOS,OSX (38)
Android (13)
Linux (5)
잉여 프로젝트 (2)
게임이야기 (1)
Memories (19)
Interest (37)
Thinking (36)
한글 (26)
PaperCraft (5)
Animation (408)
Wallpaper (2)
재테크 (19)
Exercise (3)
나만의 맛집 (2)
냥이 (9)
육아 (9)
Total1,343,986
Today24
Yesterday297
Statistics Graph

달력

« » 2019.12
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        

공지사항

태그목록

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

Posted by blueasa

댓글을 달아 주세요

  1. 2016.04.28 18:46 라큐어스  댓글주소  수정/삭제  댓글쓰기

    정리가 잘되어 있네요.
    많이 도움되요.
    감사합니다.