게임 제작 Base/◈ Animation 17

Animation Sequence

언리얼 엔진에서 단일 애니메이션 클립을 의미함하나의 독립적인 애니메이션 동작이 담겨 있는 에셋하나의 동작을 하나의 애니메이션 시퀀스로 관리하는 것 애니메이션 시퀀스의 특징Skeletal Mesh에 종속되어 있음 : 특정 스켈레톤을 기반으로 만들어짐루프 설정 가능 : 애니메이션을 반복하도록 Looping 설정이 가능Play Rate : 애니메이션 재생 속도(기본 1.0)Looping : 애니메이션을 반복할지 설정Root Motion : Root Bone을 기반으로 이동 및 회전을 애니메이션에서 직접 제어Root Motion을 False로 설정하면 애니메이션 자체에서 캐릭터를 이동시키는 기능을 제거함 애니메이션 몽타주나 시퀀스의 남은 시간 비율을 계산하는 함수들Get Relevant Anim Time Re..

Animation Retargeting

서로 다른 스켈레톤을 가진 캐릭터들이 같은 애니메이션을 공유할 수 있도록 설정하는 과정 조건뼈 이름과 계층구조가 동일해야 원활하게 리타게팅 가능저 2가지가 다른 경우, Retarget Manager에서 Bone Mapping을 수동으로 설정해야 함 문제 발생 시팔이나 다리가 이상하게 꺾임Retarget Manager에서 Bone Mapping을 통해 뼈 위치를 수동으로 조정특히 IK Bone 부분을 꼼꼼히 확인애니메이션 속도가 다르게 보임Anim Sequence의 Play Rate를 확인Target 캐릭터의 Scale에 따라 애니메이션 속도가 다르게 보일 수 있음루트 모션 작동 안함Root Motion 옵션이 제대로 설정되었는지 확인Animation Sequence에서 Enable Root Motion 체크

다양한 직업의 캐릭터 애니메이션 구성

만약에 플레이어가 선택할 수 있는 캐릭터가 1개가 아닌 2개 이상이라면, 각각의 캐릭터는 그에 해당하는 공격 애니메이션부터 시작해서 이동 애니메이션까지도 서로 다를 수 있다. 이런 경우에는 ABP를 따로 만드는 것이 좋을까 아니면 하나의 ABP안에서 조건에 따른 분기점을 만들어서 구성하는 것이 좋을까? 사용 무기 별 공격 모션만 다른 경우단순히 WeaponType 에 따라 분기하여 애니메이션을 구성하면 됨 사용하는 무기 및 직업에 따른 맨손 공격 등도 다른 경우이 때 부터는 PlayerClassType 에 따라 분기하여 애니메이션을 구성하는 것이 복잡도가 줄어듦먼저 저걸로 직업 별로 분기를 한 다음, 그 안에서 WeaponType으로 분기하는게 구성이 깔끔하다구르기나 대쉬 애니메이션이 다른 것도 이렇게 ..

Animation Notify

애니메이션 도중에 특정한 이벤트를 실행하는 기능무기가 적을 때릴 때 데미지를 계산하는 순간을 지정발소리를 내는 타이밍 조절공격 애니메이션 중, 특정 프레임에서 이펙트 실행무기 전환 애니메이션에서 무기를 손에서 등으로 옮기는 순간을 지정ABP와 독립적으로 실행 가능StateMachine을 거치지 않고 즉시 애니메이션 실행 가능특정 Slot에 애니메이션을 적용하여 원하는 부위(상체/하체 등)만 변경 가능애니메이션을 중간에 취소하거나, 특정 이벤트(노티파이) 실행 가능 AnimNotify는 범용적으로 사용할 수 있는게 좋음특정 캐릭터에 연결되지 않고 플레이어도, 보스도, 일반 몬스터도, 동료 캐릭터도 모두 쓸 수 있게 만들자이를 위해서는 각 캐릭터의 헤더를 다 include하는 것이 아니라, Interface..

Animation Montage

여러 개의 애니메이션을 조합하여 특정 상황에서 실행할 수 있도록 만든 애니메이션 시퀀스보통 공격 / 회피 / 스킬 / 무기 전환 / 특정 액션(ex. 문 열기) 같은 것들은 단순한 Idle, Run같은 StateMachine 애니메이션으로 처리하기 어려움이럴 때 애니메이션 몽타주를 사용하면 개별적인 애니메이션을 독립적으로 실행 가능애니메이션 클립을 모아둔 다수의 섹션으로 구성되어 있으며, 섹션끼리 연동할 수 있고 스크립트를 통해 원하는 섹션으로 건너뛸 수 있음ABP와 독립적으로 실행 가능StateMachine을 거치지 않고 즉시 애니메이션 실행 가능특정 Slot에 애니메이션을 적용하여 원하는 부위(상체/하체 등)만 변경 가능애니메이션을 중간에 취소하거나, 특정 이벤트(노티파이) 실행 가능 즉, 무기 공격..

캐릭터에 특정 무기 및 애니메이션 적용

가능하지만 Bone 구조가 맞아야 함애니메이션은 캐릭터의 Bone(Rigging, Skeletal Mesh의 Bone Hierarchy)을 기반으로 동작함캐릭터의 본 구조가 애니메이션의 본 구조와 다르면 적용이 안되거나 어색할 수 있음그러므로 애니메이션을 적용할 캐릭터의 본 구조를 확인하고, 본 구조가 다르다면 Bone Retargeting을 해야 함보통 UE4 / UE5 Manny Skeleton을 기준으로 만들어진 애니메이션들은 호환 가능하다Manny Skeleton언리얼엔진4나 5에서 사용된 기본 마네킹 캐릭터기본적으로 언리얼 엔진에서 제공하는 모든 애니메이션은 이 스켈레톤을 기반으로 만들어짐이 스켈레톤을 기준으로 만들어진 애니메이션들은 서로 호환됨가능하지만 Socket을 설정해야 함캐릭터가 무기를..

Animation Tips

AnimGraph는 AnimInstance에 정의된 변수만 인식해서 노드로 사용할 수 있음서로 다른 Skeleton을 가진 캐릭터들은 같은 애니메이션 블루프린트를 공유할 수 없음Skeleton이 다르면 애니메이션 블루프린트는 무조건 따로 만들어야 함애니메이션 블루프린트는 특정 Skeleton과 연결되어 있기 때문에, 서로 다른 Bone구조를 가진 메쉬들 간에는 공유가 불가능함애니메이션 데이터도 기본적으로 Skeleton 구조에 맞춰 저장되므로, Bone Hierarchy가 다르면 애니메이션이 재생조차 되지 않음애니메이션은 Bone Transform 데이터(회전, 위치, 크기)를 Skeleton에 맞춰 저장하기 때문에, Skeleton이 다르면 다른 애니메이션으로 인식됨 AnimInstance를 따로 만들..