애니메이션 툴의 목표

1. 다용도성 확보

2. 레이어화된 애니메이션 플로우

- 다양한 애니메이션 레이어에서 벌어지는 일들을 쉽게 분리해서 레이어 별로 반복 처리하고 다듬을 수 있다.

- 재사용성도 있어서 애니메이션 속의 다양한 요소를 다른 캐릭터들과 애니메이션과 공유할 수 있다.

- 애니메이션 작업자들이 엔진 내에서 진행하는 전체 애니메이션 작업에 걸쳐서 외부의 도움이 전혀 필요 없게 만든다. 

 

Skeleton and Skeletal Mesh

- FBX 파일에는 애니메이션 여러 개, 리깅 스켈레톤, 메시가 포함되어 있다.

임포트하여 스켈레톤이 생성되면 피직스 애셋도 생성할 수 있다. 피직스 애셋은 스켈레톤이 피직스 환경에 반응하는 방식(콜리전)을 정의한다.

 

- 스켈레톤은 에디터에서 가상 본이나 소켓을 추가할 수 있다.

다른 스켈레톤에 애니메이션을 적용하고 싶으면 리타게팅을 하면 된다.

 

- 스켈레탈 메시는 폴리곤 정보만 저장하는게 아니라 머터리얼 정보도 저장한다.

스켈레탈 메시 에디터에서 머터리얼의 LOD 시스템을 통해 LOD를 생성할 수 있다.

스켈레탈 메시는 피직스 애셋과 Clothing을 프로퍼티로 가지고 있다.

 

Sequence

Live Link 플러그인과 다양한 DCC를 사용할 수 있다. Live Link 플러그인은 DCC에서의 애셋 변경을 즉시 런타임 에디터에서 보여주는 플러그인이다.

 

애니메이션의 메타 데이터 (이벤트 그래프에서 읽을 수 있음)

1. Anim Curves : 예시) 애니메이션에서 루트 모션을 제거하고 걷는 거리를 애니메이션에 맞춰 직접 계산하여 커브로 저장하고, 그 정보를 게임 플레이에 사용할 수 있다.

2. Anim Notifies : 애니메이션 특정 순간에 게임플레이 블루프린트에 노티파이를 보내서 정확한 순간에서 판정을 내리도록 할 수 있다.

3. Sync Markers : 서로 다른 애니메이션의 싱크를 맞추기 위해 사용 애님 블 루프린트 에디터에서 그룹 이름, 리더 등을 설정할 수 있다.

 

시퀀스로 사용될 수 있는 것들

1. blend space : 변수 값에 따라 에니메이션을 자연스럽게 합칠 수 있다.

2. montage : 다양한 애니메이션 시퀀스를 그룹화하거나 합친다.

3. Pose Asset : 애니메이션을 정지한 뒤에 쉽게 만들 수도 있다. 포즈들을 블렌딩하여 새로운 애니메이션을 만들 수 있다. :

 

Anim Graph

Flow Control 노드

Flow editing nodes

Slots : 플로우에 레이어링 기능을 추가한다.

Pose caching : 애님 그래프를 깔끔하게 유지하거나 포즈를 재사용하기 위해 사용한다.

Animation Operations : 애니메이션에 BlendAdditive 연산을 적용할 수 있다.

 

Procedural Animations

Physics behaviour nodes

1. Rigid Body Node : 피지컬 비헤이비어를 현재 실행중인 애니메이션과 블렌딩할 수 있다.

포니테일이나 체인 등 달려있는 본에 쓰면 좋다.

2. Anim Dynamics : 리지드 바디 구성을 사용하지 않고 본 별로 그 작업을 할 수 있다.

3. IK Nodes : 캐릭터의 두 발을 땅 밑으로 꺼지지 않도록 하는 데 사용할 수 있다.

 

Control Rig Possibilities

Control Rig : 엔진에서 rig 애니메이션 작업을 할 수 있다.

 

Final Pose

- Animation Sharing Manager를 통해 다양한 스켈레톤 간에 포즈를 공유할 수 있다. 동일한 스켈레톤을 사용하는 서로 다른 캐릭터들이 있다면 포즈를 공유할 수 있다.

군대, 군집을 표현하는데 사용할 수 있다.

- Sequence Recorder : 애니메이션을 녹화하여 확인할 수 있다. 인게임에서 시뮬레이션 장면을 녹화할 수도 있다.

 

Performance                          

- LODs capabilities            

스켈레탈 메시 에디터 > LOD 설정하여 멀리 있는 캐릭터가 갖춘 본의 양을 줄여준다.

 

- Optimizations

되도록 Fast Path Nodes 사용하기 : C++ 직접 컴파일 된 함수 노드는 빠르다.

 

Project Settings > General Settings > Anim BluePrint > Allow Multi Threaded Animation Update 체크 : 보다 많은 애니메이션 작업을 워커 스레드에서 돌릴 수 있도록 해줌 (기본 활성화)

애니메이션 블루프린트 클래스 세팅에도 동일한 옵션이 켜져 있는 지 확인

 

Animation Budget Allocator : 각 애니메이션에 사용할 시간의 예산을 설정할 수 있다.

 

Advice

AnimBP Retargeting

- 애니메이션 시퀀스뿐만 아니라 애니메이션 블루프린트도 리타게팅이 가능하다.

- 모든 캐릭터가 공유하는 글로벌 비헤이비어를 가지는 베이스 AnimBP를 만들자

Layering

- 스테이트 머신을 최대한 단순하게 유지하자. 스테이트 머신 속에 스테이트 머신을 넣는 방법도 있다.

 

Flow Control

- 최대한 게임플레이에 기반한 애니메이션만 슬롯에 넣자. ) 공격

 

Ticking and Performance

- 애니메이션 블루프린트 티킹은 줄일 수 있다. 캐릭터나 특정 액터에서 업데이트 비율 최적화 옵션을   활성화할 수 있다. 애니메이션 캐릭터로부터 멀리 떨어질수록 애니메이션 블루프린트의 티킹도 점점 적어지게 한다.

 

Physics Behavior

피직스 애셋에서 설정

여성형 캐릭터의 경우 머리카락을 Simulated로 설정하면 물리 법칙을 따른다.

 

Animation Sharing Manager

군중 몇몇에 무작위 애니메이션을 끼워 넣을 수 있다.

공유되는 애니메이션 위에는 반응 애니메이션을 추가할 수도 있다.

피직스를 추가할 수도 있다.

 

https://dev.epicgames.com/community/learning/courses/QLa/unreal-engine-550606/7xan/unreal-engine-5427f2

 

애니메이션 시작하기 | Course

언리얼 엔진의 애니메이션 파이프라인을 에픽게임즈의 Sjoerd de Jong과 Mario Palmero와 함께 역사, 발전 과정, 그리고 현재의 프로세스까지 살펴봅니다. 언리얼 엔진에서의 애니메이션 작업에 도움이

dev.epicgames.com

 

+ Recent posts