728x90
일단 자연스럽게 동작을 전환하고 싶은 2개의 애님시퀀스를 AnimNodeBlend 로 해서 Child1,2 로 연결을 합니다
이렇게 해놓고 이제 스크립트 상에서 제어를 해야되는데..
예제
// class uc 내부 var AnimNodeBlend AnimNodeBlend; function SetAnimTreeBattle() { GotoState('ChangeMode', 'Battle'); } state ChangeMode { simulated event PostInitAnimTree(SkeletalMeshComponent SkelComp) { Super.PostInitAnimTree(SkelComp); AnimNodeBlend = AnimNodeBlend(SkelComp.FindAnimNode('WeaponSwitch')); AnimNodeBlend.SetBlendTarget(0.0f, 0.5f); } Normal: // 생략 AnimNodeBlend.SetBlendTarget(0.0f, 0.5f); GotoState(''); Battle: BodySkeletalMesh.AnimSets = BattleAnim; BodySkeletalMesh.SetAnimTreeTemplate(BattleAnimTemplate); Sleep(1.1f); AnimNodeBlend.SetBlendTarget(1.0f, 0.5f); GotoState(''); }
state 를 이용한 한정적 범위 내에서의 수정을 가해 봅시다. SetAnimTreeTemplate 을 사용하면
위에서 작업한 AnimTree 로 바꿔주고 그와 동시에 PostInitAnimTree 로 자동으로 들어오게 되고~
여기서 아까 추가한 AnimNodeBlend 를 찾아서 AnimNodeBlend 에 연결을 시켜놓고,
SetBlendTarget 을 이용해서 0 에 가까울 수록 아까 설정한 child 1 에 가깝게, 1 에 가까울 수록 child 2
에 가깝게 애니메이션이 동작하게 됩니다. 그것을 이용해서 Normal 과 Battle 을 번갈아 호출하면
idle 과 무기를 발도 하는 동작이 자연스럽게 스위칭 되게 됩니다. 그리고 임시로 만든 state 벗어나고..
728x90
'프로그래밍 > Unreal Engine 3' 카테고리의 다른 글
UDK > 내 게임 만들기 (0) | 2011.12.23 |
---|---|
AnimNodeBlendBase (0) | 2011.12.21 |
FootPlacement (0) | 2011.12.14 |
언리얼 스크립트 > state (0) | 2011.12.08 |
Camera & Input (0) | 2011.12.03 |
댓글