언어:

애니메이션 블루프린트

언리얼 엔진

Animation Blueprint (애니메이션 블루프린트)는 스켈레탈 메시 의 애니메이션을 제어하는 특수 블루프린트 입니다. 그래프는 애니메이션 블루프린트 에디터 에서 편집하며, 여기서 애니메이션 블렌딩, 스켈레톤의 본 직접 제어, 로직을 구성하여 각 프레임에 사용할 스켈레탈 메시의 최종 애니메이션을 최종 결정하게 됩니다.

애니메이션 블루프린트 의 예제는 애니메이션 콘텐츠 예제 문서의 1.2 섹션에서 찾아보실 수 있습니다.

애니메이션 블루프린트 생성 및 탐색

애니메이션 블루프린트 작업에 뛰어들기 전, 그 생성법과 애니메이션 블루프린트 인터페이스를 알아둬야 합니다.

애니메이션 블루프린트 작업하기

각 프레임의 최종 애니메이션 제작을 위해 함께 사용되는 애니메이션 블루프린트의 주요 컴포넌트는 두 가지입니다. 특히 이벤트 그래프 는 값을 업데이트한 다음 그 값을 애님 그래프 에 사용하여 스테이트 머신, 블렌드 스페이스, 또는 기타 노드를 돌릴 수 있으며, 이로 인해 여러 애니메이션 시퀀스나 포즈와의 블렌딩으로 다른 시스템에 Notify (노티파이)를 발동시켜 동적인 애니메이션 주도형 이펙트가 일어나도록 할 수 있습니다.

서브 애니메이션 블루프린트 인스턴스 작업하기

다양한 캐릭터용 애니메이션 블루프린트를 만들 때, 그 캐릭터 사이에 자동화 로직을 공유하지 않는다는 것은 드문 일입니다. 예를 들어, 하나의 캐릭터에 적용된 물리 애니메이션 또는 애님 다이내믹스 가 있는데 다른 캐릭터에도 적용하고 싶다 칩시다. Sub Anim Instance (서브 애님 인스턴스) 노드로 접근하려는 별도의 애니메이션 블루프린트에 대한 레퍼런스를 생성하고 다른 애니메이션 블루프린트 내 로직 전부를 포함시킬 수 있습니다.

이렇게 하면 커다란 애니메이션 블루프린트를 작은 개별 블루프린트로 나눈 뒤, 그것을 다른 애니메이션 블루프린트 안에 포함시킬 수 있습니다. 예를 들어 엄격히 "Locomotion"(이동)에 쓰이는 애니메이션 블루프린트가 하나 있고, 물리 기반 애니메이션을 처리하는 서브 애님 인스턴스가 있을 수 있습니다. 서브 애니메이션 블루프린트의 멤버 변수 역시 부모 애니메이션 블루프린트 내의 입력 핀으로 노출시키면, Sub-Graph Input 노드가 Sub Anim Instance 에 In Poses 를 노출시킬 수 있습니다 (아래 예 참고).

SubAnimInstance.png

서브 애님 인스턴스 작업을 할 때는, 반드시 동일한 스켈레톤을 그 스켈레톤이 들어있는 아우터 애니메이션 블루프린트로 사용해야 합니다.

서브 애님 인스턴스 사용 문서에서 서브 애니메이션 블루프린트 인스턴스가 캐릭터의 이동에 영향을 끼치도록 하는 예제를 찾아보실 수 있습니다.

자손 애니메이션 블루프린트 작업

캐릭터와 애니메이션 블루프린트를 만들어 구성할 때, 캐릭터가 여럿 있는데 기본은 비슷하지만 각기 다른 상태마다 각기 다른 애니메이션이 필요한 경우가 있습니다. 그럴 때 각 캐릭터마다 애니메이션 블루프린트를 만들기 보다는, 기존 애니메이션 블루프린트의 자손 애니메이션 블루프린트 를 사용하여 대체하고자 하는 애니메이션을 덮어쓸 수 있으면 좋을 것입니다. 자손 애니메이션 블루프린트는 부모에서 모든 것을 상속받으므로, 애셋 오버라이드 에디터 를 통해 덮어쓸 애니메이션을 지정할 수 있습니다.

예를 들어, 인간형 캐릭터가 둘 있는 데, 하나는 인간이고 하나는 늑대인간이라 칩시다. 둘 다 걷기, 달리기, 점프, 웅크리기 등이 가능합니다. 하지만 그 동작은 완전히 다를 것입니다. 그러한 동작 사이의 이동 로직은 동일하지만, 동작 자체는 다릅니다. 물론 별개의 애니메이션 블루프린트를 두 개 만들어도 괜찮습니다만, 시간 절약을 위해 자손 애니메이션 블루프린트를 만들고 덮어쓸 애니메이션을 선택하면 됩니다.

자손이 있는 애니메이션 블루프린트 생성 및 덮어쓰기 관련 예제 안내는 애니메이션 블루프린트 오버라이드 문서를 참고하세요.

포스트 프로세스 애니메이션 블루프린트 할당

애니메이션 블루프린트는 스켈레탈 메시 애셋 디테일 패널을 통해 포스트 프로세스 애님 블루프린트 로 스켈레탈 메시에 직접 할당할 수 있습니다. 이렇게 하면 애니메이션 블루프린트가 스켈레탈 메시 컴포넌트의 메인 애님 인스턴스로 할당된 이후 항상 실행되는 애니메이션 블루프린트를 스켈레탈 메시에 할당할 수 있습니다. 스켈레탈 메시에 포스트 프로세스 애님 블루프린트를 할당하면, 로직을 다른 애니메이션 블루프린트로 복사할 필요 없이 애님 다이내믹스, 스켈레탈 컨트롤, 기타 애님 블루프린트 로직을 만들 수 있습니다.

ExamplePostProcess.png

보다 자세한 정보는 스켈레탈 메시 애셋 디테일 문서의 포스트 프로세스 애님 블루프린트 부분을 참고하세요.

애니메이션 블루프린트 라이브 편집

이 기능은 현재 실험단계이므로 예상대로 작동하지 않는 부분이 있을 수 있습니다.

애니메이션 블루프린트는 에디터에서 플레이하는 도중 실시간으로 편집하고 다시 컴파일할 수 있어 더이상 멈추고 변경사항을 적용하는 데 드는 반복처리 시간을 단축시킬 수 있습니다.

위 비디오에서는, 에디터에서 플레이 세션 도중 캐릭터의 스테이트 머신을 변경하고 있습니다.

라이브 편집 기능은 일반 - 실험단계 섹션의 Tools (툴) 아래 Enable Live Recompilation Of Animation Blueprints (애니메이션 블루프린트 라이브 리컴파일 활성화) 옵션으로 켜고 끌 수 있습니다.

LiveEditing.png

디버깅할 애니메이션 블루프린트 인스턴스의 정의는 애니메이션 블루프린트 안에서 디버그 필터 를 사용하여 할 수 있습니다.

DebugOption.png

디버깅할 애니메이션 블루프린트 인스턴스를 선택하면, 레벨에서 현재 캐릭터가 처한 애니메이션 상태가 애니메이션 블루프린트 에디터에 반영됩니다.