언어:
페이지 정보
수준별:
엔진 버전:
언리얼 엔진

애니메이션 몽타주 개요

언리얼 엔진

Animation Montage (애니메이션 몽타주, 또는 줄여서 몽타주) 를 사용하면 블루프린트 또는 C++ 코드를 통해 애니메이션 애셋을 바로 제어할 수 있습니다. 애니메이션 몽타주로 여러 애니메이션 시퀀스 를 하나의 애셋으로 합칠 수 있으며, 이를 섹션 으로 나누어 그 일부 또는 조합 재생이 가능합니다. 몽타주 안에서 이벤트 를 발동시켜 다양한 로컬 또는 리플리케이트 작업을 할 수 있는데, 예를 들면 사운드 큐나 파티클 이펙트 재생, 탄환 수와 같은 플레이어 값 변경, 심지어 네트워크 게임에서 루트 모션 리플리케이션도, 애니메이션에 루트 모션이 켜진 경우 가능합니다.

예제 몽타주

다음 샷건을 재장전하는 캐릭터의 애니메이션 시퀀스에서 몽타주의 실제 사용 예를 확인할 수 있습니다.

위 비디오에서는 캐릭터가 클립을 집어, 재장전한 뒤, 대기 포즈로 돌아가는 세 부분으로 나뉘어 있 재장전 애니메이션으로 사용하기에 손색이 없긴 합니다만, 몽타주를 통해 훨씬 더 세밀한 제어가 가능합니다. 예를 들어, 캐릭터가 항상 같은 양이 아닌 매번 다른 양의 탄환을 재장전하고 싶다 칩시다. 이 애니메이션을 탄창을 집어서, 재장전하고, 대기 상태로 돌아가는 세 부분으로 나눈 뒤 하나의 몽타주 안에서 합치는 방식으로, 섹션을 떼어 그 전체 또는 일부를 선택적으로 재생할 수 있는 것입니다.

아래는 샷건 재장전 처리에 사용된 예제 몽타주로, 세 부분으로 나뉘어 있습니다:Start, Loop, End.

MontageExample.png

블루프린트 또는 C++ 로 플레이어가 버튼을 누르면, 애니메이션을 재생하여 Start 섹션에서 시작하도록 정의할 수 있습니다. 가운데 Loop 라는 반복 섹션이 Start 섹션 뒤를 바로 따르고, 몽타주에서 무한 반복하도록 설정되어 있습니다. 플레이어가 재장전 버튼을 놓거나 샷건에 탄환을 채웠으면, 아래 비디오처럼 애니메이션 반복을 중지하고 End 섹션으로 점프하여 애니메이션을 빠져나옵니다.

재장전 모션은 구은 시퀀스보다 아주 약간 빠르지만, 루핑 애니메이션의 재생 속도는 원하는 대로 조정할 수 있어 재장전 모션을 빠져나와 대기 포즈로 돌아가는 시기는 언제든 맞출 수 있습니다. 비슷한 사용 예라면 캐릭터가 공중에서 점프할 때, 공중에서 허우적대거나 낙하하는 애니메이션을 반복 재생하다가, 착지 시퀀스를 재생합니다. 공중에 있는 시간은 변수로 두고 언제든 빠져나올 수 있도록 몽타주로 작업하면 되는 것입니다.

몽타주의 추가적인 사용 예는 다음과 같습니다:

  • 애니메이션 블루프린트이벤트 그래프 에서 애니메이션 재생 가능

  • 복잡한 애니메이션 시퀀스를 체인으로 묶어 하나의 애니메이션으로 간주

  • 특정 애니메이션(들) 일부분만 코드나 블루프린트 스크립트로 반복

  • 코드나 블루프린트 스크립트에 따라 여러 애니메이션을 이벤트 기반 전환 처리

  • 복잡한 애니메이션 시퀀스를 네임드 슬롯에 할당하여 코드나 블루프린트로 전환

  • 코드나 블루프린트 스크립트에 따라 여러가지 애님 시퀀스를 전환

몽타주 UI

몽타주 생성NEW!애니메이션 에디터 에서 연 이후, 애셋 에디터 섹션을 사용하여 몽타주 작동 방식을 정의할 수 있습니다.

MontageWindow.png

몽타주의 애셋 에디터 패널은 크게 다음과 같은 영역으로 나뉘어 있습니다:

  1. 몽타주

  2. 섹션

  3. 엘리먼트 타이밍

  4. 노티파이

  5. 커브

몽타주

몽타주 영역은 다음과 같이 나뉩니다:

MontageArea.png

  1. 섹션 - 몽타주 내 생성되어 있는 섹션을 표시합니다.

  2. 슬롯 - 현재 슬롯에 추가되어 있는 애니메이션을 표시합니다.

  3. 그룹/슬롯 - 현재 선택된 애님 그룹 및 슬롯을 표시합니다.

섹션

섹션 을 만들면 슬롯을 애니메이션 여러 부분으로 나눌 수 있습니다. 각 섹션에는 슬롯의 타임라인 안에 이름과 위치가 있습니다. 이름을 사용해서 특정 섹션에 바로 점프하거나 현재 섹션이 끝나면 다음에 재생하도록 대기열에 등록하거나 할 수 있습니다. 블루프린트 에서 현재 섹션을 질의하거나, 한 섹션으로 점프하거나, 다음 재생할 섹션을 설정할 수 있습니다.

섹션은 음악 재생목록의 노래같은 것으로, 슬롯은 앨범으로 생각해 볼 수 있습니다. 현재 한 섹션(노래)를 재생하다가 현재 섹션이 끝나면 혹은 바로 슬롯(앨범) 내 다른 섹션으로 점프하도록 대기열에 등록시킬 수 있습니다.

슬롯

몽타주 안에서 슬롯 은 애니메이션을 몇이든 담을 수 있는 트랙입니다. 슬롯 이름은 아무렇게나 지은 뒤 그 이름을 사용하여 그 안의 다른 애니메이션에 블렌딩할 수 있습니다. 재장전 몽타주 예제로 돌아가서, 플레이어가 서있거나 엎드려있을 때 다양한 재장전 버전을 만들어둘 수 있습니다. 이 경우, 몽타주 내 별도의 슬롯 안에 각각에 대한 애니메이션을 넣어두고 애니메이션 블루프린트애님 그래프 에서 Slot 노드를 사용하여 캐릭터가 서있는지 엎드려 있는지에 따라 어떤 애니메이션 세트를 사용할지 결정할 수 있습니다.

MultipleSlots.png

위에서는 캐릭터가 서서 재장전할 때는 DefaultProne 슬롯을, 엎드려서 재장전할 때는 Prone 슬롯을 사용합니다.

다수의 슬롯이 할당되면, 에디터에서 미리보고자 하는 슬롯에 PreviewButton.png 프리뷰 버튼을 클릭하여 미리볼 수 있습니다.

다수의 슬롯을 사용할 때 최적의 결과를 얻기 위해서는, 애니메이션 끝에서 끝까지의 길이가 같도록 맞춰 보시기 바랍니다.

그룹 / 슬롯

그룹슬롯 모음으로, 그룹 당 하나의 몽타주만 재생 가능합니다. 동시에 다른 몽타주를 재생하려는 경우, 그에 맞는 새 그룹을 만들어주면 됩니다. 애님 그룹 및 슬롯은 애님 슬롯 매니저 탭 안에 모여 있어 AnimSlotManagerButton.png 아이콘을 클릭하고 드롭다운 메뉴로 유효한 슬롯 중에서 선택할 수 있습니다. 새 몽타주를 생성하면 바로 정상 작동이 가능호도록 Slot 노드에 기본적으로 하나의 디폴트 슬롯 이 갖추어져 있습니다.

섹션

섹션 영역에서는 몽타주 영역에서 정의한 섹션 사이의 관계를 수립할 수 있습니다.

SectionsUI.png

  1. 디폴트 생성 / 비우기 - 디폴트 생성은 모든 섹션 사이 기본 연결을 생성하여 서로간에 엮어주고, 비우기는 모든 연결을 지웁니다.

  2. 섹션 버튼 - 이 영역에서는 몽타주 영역에서 정의한 각 섹션에 대한 버튼을 볼 수 있으며, 이를 통해 섹션 연결에 할당할 수 있습니다.

  3. 섹션 연결 트랙 - 여기서는 모든 섹션 미리보기 또는 개별 트랙을 미리보기 클릭하여 애니메이션 섹션 사이 관계를 시각화시켜 볼 수 있습니다.

루핑

섹션은 무한 루프 설정할 수 있으며, 그렇게 하면 무한 반복하고다 하는 동작이 있을 경우에 매우 유용합니다. 섹션 연결 트랙에 같은 섹션을 한 번 이상 연결하면, 루프로 실행되게 만들 수 있습니다. 그렇게 되면 섹션은 파랑으로 변합니다. 예를 들어 캐릭터가 샷건 탄환을 한 번에 하나씩 재장전하는 애니메이션을 생각해 봅시다. 캐릭터가 탄환을 삽입하는 부분만 섹션으로 떼어 루프 설정할 수 있습니다. 그리고서 노티파이 를 사용하여 블루프린트에서 노티파이 이벤트를 만들어 애니메이션 재생이 완료될 때마다 탄환 수를 하나씩 증가시킵니다. (탄창이 가득찰 때까지) 일정 수에 달하면 캐릭터가 리시버를 닫고 대기 동작으로 돌아가는 애니메이션으로 전환하면 됩니다.

엘리먼트 타이밍

Element Timing (엘리먼트 타이밍) 트랙은 몽타주와 노티파이 영역에서 정보를 받아 각기 다른 섹션의 타이밍 정보를 보조합니다.

ElementTimingTrack.png

트랙의 각 노드에는 몽타주 내 오브젝트 발동 순서를 나타내는 번호가 주어져 있으며, 각 색에 따라 다음과 같은 것을 나타냅니다:

  • 빨강 - 노티파이, 노티파이 스테이트, 노티파이 스테이트 엔딩 마커를 나타냅니다.

  • 연한 파랑 - 브랜칭 포인트를 나타냅니다.

  • 초록 - 몽타주 섹션을 나타냅니다.

엘리먼트 타이밍 트랙의 ElementOptions.png 버튼을 클릭하면 부가 정보 표시/숨김 옵션이 제공됩니다.

노티파이

NotifiesSection.png

애니메이션 노티파이 (또는 줄여서 노티파이) 를 통해 애니메이션 특정 지점에 이벤트를 발생시킬 수 있습니다. 예를 들어 위 그림에서, 재장전 몽타주에서 클립을 잡아 재장전 애니메이션이 재생될 때마다 사운드를 재생하도록 노티파이를 배치해 두었습니다. 그리고 월드에 탄환 클립을 나타내는 메시 스폰에 사용할 수 있는 SpawnClip 이라는 커스텀 이벤트를 호출하기도 합니다. 마지막으로, 루핑 부분에서 Branch 이벤트를 사용하여 루프를 빠져나가 캐릭터가 대기 상태로 돌아가는 End 섹션으로 이동하도록 합니다.

커브

CurvesArea.png

애니메이션 커브 를 통해 애니메이션 재생 도중 머티리얼 파라미터 또는 모프 타깃 값을 변경할 수 있습니다. 그 작업방식은 변경하고자 하는 애셋(머티리얼 또는 모프 타깃)을 지정하고, 그에 맞게 커브 이름을 지은 뒤, 애니메이션 기간에 걸쳐 키프레임 값을 조정합니다.

몽타주 재생

몽타주 애셋은 필요에 따라 여러가지 다양한 방식으로 재생할 수 있습니다. 스켈레탈 메시가 몽타주를 자동 재생하도록 설정하려는 경우, 스켈레탈 메시에 대해 Anim to Play (재생할 애님)으로 설정해 주면 됩니다. 하지만 몽타주가 어떤 조건을 만족했을 때에만 재생되도록 하려면, Play Montage 노드를 사용하여 재생할 몽타주 내 몽타주 또는 섹션을 호출하는 블루프린트 스크립트를 만들면 될 것입니다. 몽타주더러 지정된 조건에 따라 C++ 코드를 통해 재생하도록 할 수도 있습니다.

자세한 정보는 애니메이션 몽타주 사용법NEW! 문서를 참고하세요.

자손 몽타주

자손 몽타주 를 통해 게임플레이에 영향을 주지 않고, 다수의 애셋에 노티파이(나 기타 디테일)을 다시 만들어 유지할 필요 없이 애니메이션을 편리하게 다변화시킬 수 있습니다. 예를 들어 실시간 전략(RTS) 게임에서 유닛들의 자동 공격 애니메이션을 다양하게 만든다든가, 롤플레잉(RPG) 또는 액션 게임에서 캐릭터가 장착 또는 착용중인 무기 또는 갑옷에 따라 대기 애니메이션에 변화를 준다던가 할 수 있습니다. 자손 애니메이션 몽타주는 콘텐츠 브라우저 에서 기존 애니메이션 몽타주에 우클릭하여 뜨는 컨텍스트 메뉴에서 Create Child Montage (자손 몽타주 생성)을 통해 생성할 수 있습니다.

ChildMontageOption.png

새 몽타주는 원본과 이름이 같지만 끝에 "_Child" 가 붙습니다.

NewChildMontage.png

자손 몽타주를 열 때, 몽타주 안의 모든 엘리먼트는 회색으로 탈색되며 그 위에 자손이라는 텍스트가 표시됩니다.

GrayedOut.png

슬롯 트랙애님 세그먼트 를 우클릭하여 새 애니메이션으로 덮어쓸 수 있습니다.

RightClickChange.png

슬롯 트랙 에서 어느 애니메이션이든, 심지어 길이가 달라도, 다른 애니메이션으로 대체할 수 있습니다. 엔진에서는 대체 애니메이션이 원본과 같은 시간에 비례해서 맞는 부분을 사용하도록 재생 속도, 시작 시간, 끝 시간을 자동 조정해 줍니다. 부모에서 변경되지 않은 애니메이션은 초록으로, 덮어쓴 부분이 있는 애니메이션은 노랑으로 표시됩니다.

ReplacedMontage.png

위에서 공격 애니메이션을 다양한 공격 애니메이션으로 대체했습니다.

자손 몽타주는 다른 자손 몽타주의 부모로 사용할 수 없습니다.