AnimDynamics 를 사용하여 물리 기반 이차 애니메이션을 내는 법을 설명합니다.
Choose your operating system:
Windows
macOS
Linux
SkeletalControl (스켈레탈 컨트롤) (또는 SkelControl (스켈 컨트롤))을 통해 스켈레톤 에 있는 본을 직접 제어할 수 있습니다. 애니메이션 블루프린트 안에서 사용되며, 개별 본 제어, IK 체인 생성 등의 작업에 쓰입니다.내재된 스켈레톤에 대한 직접 제어할 수 있다는 것은, 절차적이고 동적으로 구동되는 애니메이션을 만들 수 있다는 것입니다. 하나의 본에 대한 Transform(트랜스폼) 작업이 다른 본을 움직일 수도 있고, 캐릭터에 걷기 애니메이션을 재생할 때 땅에 발을 일치시킬 수도 있습니다. 애니메이션 시퀀스 에 의해 적용된 본 트랜스폼을 조정하거나 완전 덮어쓰는 데 있어 어떠한 종류의 변경도 가능합니다.
공통 핀 및 프로퍼티
가능한 프로퍼티는 대부분 노드 자체에 기반하고 있지만, 모든 스켈레탈 컨트롤 에 공통인 핀과 프로퍼티가 몇 가지 있습니다. 그에 대한 설명은 다음과 같습니다.
핀 |
설명 |
|
---|---|---|
입력 핀 |
||
Component Pose |
컴포넌트 포즈 - 변환시킬 인풋 포즈입니다. |
|
Alpha |
알파 -
스켈레탈 컨트롤
로 적용할
|
|
출력 핀 |
||
Pose (Blank) |
포즈 -
|
프로퍼티 |
설명 |
---|---|
LOD Threshold |
LOD 한계치 - 이 노드의 실행 대상이 될 수 있는 최대 레벨 오브 디테일 (LOD) 입니다. 예: LOD 한계치가 2 로 설정된 경우, LOD 2 까지만 실행되고, 컴포넌트의 LOD 가 3 이 되면 스스로 꺼집니다. |
컴포넌트 스페이스
포즈는 로컬 스페이스나 컴포넌트 스페이스에 있을 수 있습니다. Animation Blueprint(애니메이션 블루프린트)의 AnimGraph (애님그래프)에서 쓸 수 있는 Convert Spaces (스페이스 변환) 노드로 로컬/컴포넌트 스페이스 사이 변환이 가능합니다. 로컬 스페이스는 본의 트랜스폼이 부모 본에 상대적인 것으로 가정하며, 컴포넌트 스페이스는 본의 트랜스폼이 SkeletalMeshComponent 에 상대적인 것으로 가정합니다.
일반적으로 애니메이션 블루프린트에서 포즈 작업을 할 때, 포즈는 로컬 스페이스에 있게 됩니다. 그러나 특정 블렌드 노드와 모든 SkeletalControl(스켈레탈 컨트롤)은 컴포넌트 스페이스에서 작동합니다. 즉 이러한 유형의 노드에 전달하기 전 인풋 포즈를 변환해 줘야 한다는 뜻입니다. 인풋 포즈가 로컬 스페이스 포즈를 출력하는 노드에서 오는 경우, 그 포즈를 올바른 스페이스로 변환해 줘야 스켈레탈 컨트롤이 그에 맞는 작업을 할 수가 있습니다. 그 후 스켈레탈 컨트롤이 작업을 하고 난 결과 포즈를 다시 로컬 스페이스로 변환해 줘야 추가적인 블렌드나 Result 핀에 쓸 수 있습니다.
각각의 컴포넌트 스페이스 변환 작업에는 그에 따르는 비용이 들게 마련이므로, 스켈레탈 컨트롤처럼 컴포넌트 스페이스에서 작업을 하는 노드는 그룹을 지어서 한 번에 처리될 수 있도록 하여, 필요한 변환 횟수를 줄이는 것이 좋습니다.
스페이스 변환 노드 관련 상세 정보는 Convert Spaces 노드 문서를 참고하세요.
스켈레탈 컨트롤 노드
아래는 애님 그래프 내 스켈레탈 컨트롤 노드 각각에 대한 추가 정보가 들어있는 링크입니다.