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

애니메이션 몽타주 편집

언리얼 엔진

애니메이션 몽타주 가 생소하신 분들은 애니메이션 몽타주NEW! 문서를 먼저 참고해 주실 것을 권장합니다.

여기서는 몽타주 에디터에서 애니메이션 몽타주 와 옵션 셋업 방법을 다루겠습니다.

몽타주에 애니메이션 추가

우선 가장 먼저 해 줘야 하는 작업은 몽타주 영역에서 몽타주를 이루는 애니메이션 시퀀스 를 추가해 주는 작업입니다.

그러기 위해서는 애셋 브라우저 창 안에서 애니메이션 시퀀스를 끌어 몽타주 슬롯 트랙에 놓습니다.

DragAndDropAnim.png

애니메이션을 슬롯 트랙에 놓으면 애니메이션이 추가됩니다.

AnimationAdded.png

몽타주에 애니메이션을 추가하려는 경우 슬롯 트랙에 끌어 놓으면 순서대로 추가됩니다.

MontageAnimationsSet.png

애니메이션은 자동으로 첫째 둘째 트랙이 번갈아가며 바뀌어 각 애니메에션 재생 시작 중지 상태를 파악하는 데 도움이 됩니다.

슬롯 트랙에 있는 애니메이션들을 좌클릭 드래그 앤 드롭으로 순서를 변경할 수도 있습니다.

ReOrderAnimations.png

몽타주 영역에 있는 애니메이션에 우클릭하면 다음과 같은 컨텍스트 메뉴가 뜹니다:

MontageAreaContextMenu.png

메뉴 옵션

설명

Delete Segment

세그먼트 삭제 - 선택된 애니메이션을 삭제합니다.

Open Asset

애셋 열기 - 선택된 애니메이션을 엽니다.

New Montage Section

새 몽타주 섹션 - 새 몽타주 섹션을 추가합니다.

New Slot

새 슬롯 - 새 슬롯을 추가합니다.

Delete Slot

슬롯 삭제 - 선택된 슬롯을 삭제합니다.

Duplicate Slot

슬롯 복제 - 슬롯을 복제하여 새 슬롯을 생성합니다.

Set Elements to...

엘리먼트 설정... - 모든 몽타주 엘리먼트(섹션, 노티파이)를 Absolute (절대), Relative (상대), Proportional (비율) 값으로 설정합니다.

몽타주 섹션 생성

섹션 영역의 여러 섹션간의 관계 정의룰 위해서는, 먼저 몽타주 영역 안에 작업하고자 하는 섹션을 생성해 줘야 합니다.

섹션을 생성하기 위해서는, 슬롯 트랙 또는 섹션 트랙에 우클릭하고 New Montage Section (새 몽타주 섹션)을 선택하면 됩니다.

SelectNewMontageSection.png

확인 창이 뜨면, 원하는 섹션 이름을 입력합니다.

EnterSectionName.png

새 섹션을 추가하면, 섹션 트랙은 물론 섹션 영역 안에도 추가됩니다.

SectionAdded.png

기본적으로 모든 애니메이션 몽타주에는 Default 섹션이 포함되어 있으며, 전체 몽타주를 재생할 때 자동으로 사용됩니다.

섹션에 좌클릭 드래그하여 원하는 위치로 이동시킬 수 있습니다.

ExampleSectionMovement.png

위에서 Start 섹션을 몽타주 시작 위치로 옮기고, Default 섹션에 커서를 올려 지울 수도 있습니다.

아래에서 재장전 몽타주에 대한 몽타주에 섹션을 둘 추가하여, Start, Loop, End 를 애니메이션에 맞게 설정해 줬습니다.

MontageSectionComplete.png

몽타주 슬롯 생성

슬롯에서 관련 애니메이션 그룹(, 예를 들면 선 상태에서 재장전하기, 웅크린 상태에서 재장전하기, 엎드린 상태에서 재장전하기 등)을 몽타주 내 여러 슬롯에 할당할 수 있습니다. 블루프린트나 C++ 를 통해, 슬롯 중 하나에 캐릭터가 서있는지 웅크렸는지 엎드렸는지에 따라 그에 맞는 애니메이션을 재생하도록 할 수 있습니다. 모두 같은 Reload 몽타주에 존재하기 때문입니다.

몽타주 영역에 슬롯을 추가하기 위해서는, 우클릭 컨텍스트 메뉴에서 새 슬롯 을 선택하면 됩니다.

NewSlot.png

그러면 빈 슬롯 트랙이 생성되어 새 애니메이션을 추가할 수 있습니다.

EmptySlot.png

슬롯 복제 를 선택하면 모든 애니메이션 세그먼트를 새 슬롯 트랙에 복사할 수 있습니다.

DuplicatedSlot.png

슬롯을 추가하거나 복제할 때, 몽타주 상단에 현재 슬롯 이름이 이미 사용중이며 모든 슬롯 이름은 고유해야 한다는 경고가 보일 것입니다. 그 이유는 새 슬롯 트랙 이름은 기본적으로 몽타주 생성 시 만들어지는 Default GroupDefault Slot 을 사용하도록 설정되기 때문입니다. 슬롯 트랙 오른쪽의 드롭다운 메뉴로 애님 그룹슬롯 을 변경할 수 있습니다.

ChangeSlotButton.png

새 슬롯을 생성해 줄 필요가 있을텐데, 돋보기 버튼을 클릭하면 열리는 애님 슬롯 매니저 패널에서 가능합니다.

AnimSlotManager.png

슬롯 추가 (또는 필요에 따라 그룹 추가) 버튼을 클릭하고 고유한 이름을 지어 줍니다.

ProneSlotAdded.png

위에서 Prone 이라는 슬롯을 새로 만들었고, 여기에 엎드리기 관련 애니메이션을 추가할 수 있습니다.

애님 슬롯 매니저의 슬롯 또는 그룹에 우클릭하면 나오는 컨텍스트 메뉴에서 부가 옵션을 접할 수 있습니다.

SlotManagerContextMenu.png

메뉴 옵션

설명

Set Slot

슬롯 설정 - 선택된 슬롯을 다른 애님 그룹으로 옮길 수 있습니다.

Rename Slot

슬롯 이름변경 - 현재 선택된 슬롯 이름을 변경할 수 있습니다.

Delete Slot

슬롯 삭제 - 현재 선택된 슬롯을 삭제합니다.

Add Slot

슬롯 추가 - 새 슬롯을 추가합니다.

Add Group

그룹 추가 - 새 애님 그룹을 추가합니다.

아래에서 이름을 Default Slot 에서 Standing 으로 바꾸고 몽타주 영역에서 Standing 및 Prone 슬롯 둘 다 할당합니다.

AssignedNewSlots.png

다중 슬롯 사용

다중 슬롯을 사용할 때 최적의 결과를 얻기 위해서는 각 애니메이션 타이밍을 똑같이 해주는 것이 좋습니다. 아래 그림에서 화살표는 Prone Reload 애니메이션 타이밍이 Standing Reload 애니메이션과 똑같지 않아 몽타주의 Prone 슬롯을 재생할 때 문제가 야기될 것입니다.

BadTiming.png

이 몽타주의 Loop 섹션을 호출한다면, Standing Reload 에 있을 때는 괜찮겠지만, Prone Reload 에서는 애니메이션 중간에 시작될 것이며, 실제 Loop 섹션에 도달하기 전 재장전 반복을 시작할 것입니다. 이상적으로는, 재장전 애니메이션을 만들 때 Standing 이나 Prone 슬롯의 Loop 섹션을 호출할 때 타이밍과 프레임 범위를 똑같이 해줘야 문제 없이 애니메이션 시작 지점에서 같이 시작될 것입니다.

BetterTiming.png

위에서 Standing 및 Prone Reload 애니메이션 타이밍이 같아 어느 슬롯 재생을 호출해도 더 나은 결과를 얻을 수 있습니다.

섹션 관계

몽타주 영역에 몽타주의 섹션을 만든 후, 섹션 영역에서 서로간의 관계를 정의할 수 있습니다.

SectionsDefault.png

기본적으로 모든 섹션은 각 섹션이 들어있는 섹션 트랙 하나를 통해 순차 재생되도록 설정되어 있습니다.

SingleSectionTrack.png

Clear (비우기) 버튼을 클릭하면 생성한 각 섹션에 대해 하나의 트랙이 할당됩니다.

IndividualTracks.png

Create Default (기본 생성)은 모든 섹션을 하나의 섹션 트랙으로 되돌립니다.

우리 예제에서 Start, Loop, End 가 있으며 몽타주가 Start 섹션을 재생한 뒤 바로 Loop 섹션이 따르도록 하고 싶습니다. Loop 섹션에 도달한 이후, 해당 섹션을 계속 반복하다가 블루프린트나 C++ 를 통해 End 섹션을 재생합니다.

그러기 위해서는 먼저 섹션 트랙에서 Start Section (시작 섹션)을 클릭합니다.

StartClicked.png

이제 Start 섹션에 어느 섹션이 뒤따를지 정의할 수 있으므로, 섹션 영역 상단의 Loop 버튼을 클릭합니다.

LoopClicked.png

그렇게 하면, Loop 가 첫 트랙의 Start 에 추가되어 잇따르게 됩니다. 트랙의 Loop 를 클릭한 뒤, 상단의 Loop 버튼을 클릭하면 Loop 가 파랗게 변합니다.

LoopNowLoops.png

Loop 에 자신을 연결했으므로, 시스템에서는 이 섹션을 반복하라고 하는구나 인식합니다.

미리보고자 하는 트랙의 Preview (미리보기) 버튼을 클릭하고 하단 툴바에서 Play (재생) 버튼을 클릭하면 미리볼 수 있습니다.

이 예제에서 Standing 이나 Prone 슬롯 중 하나에서 Start 섹션 재생을 호출할 때마다 할당된 Start 애니메이션을 재생한 뒤 할당된 Loop 애니메이션으로 이동하여 반복 재생합니다. 이렇게 하면 플레이어가 재장전을 최대로 하는지 아니면 일부만 하는지와 같은 게임플레이 변수에 따라 필요한 만큼만 재장전 애니메이션을 재생할 수 있습니다. 그 후 재장전을 마쳤다고 판단되면 End 섹션 재생을 호출하고 대기 포즈로 돌아가면 됩니다.

섹션의 관계를 제거하려는 경우, 그 항목 옆 X 버튼을 클릭하면 됩니다.

DeleteSection.png

Loop 섹션의 관계를 제거하면 더이상 반복되지 않습니다.

NoLoops.png

부가 옵션

엘리먼트 타이밍 영역은 정보성 목적에 사용되는 곳으로 애니메이션 몽타주NEW! 문서에서 자세히 다루고 있지만, 요약하자면 섹션, 노티파이, 기타 이벤트의 순차 재생 순서를 한 눈에 파악할 수 있도록 해줍니다. 애니메이션 노티파이 로는 애니메이션의 특정 지점에 이벤트가 발생하도록 구성할 수 있으며, 애니메이션 커브 로는 애니메이션 재생 도중 머티리얼 파라미터 또는 모프 타깃 값을 변경할 수 있습니다.

몽타주 에디터 하단에 있는 타임라인 으로 몽타주 재생, 몽타주 한 단계씩 진행 또는 역행, 미리보기 반복 재생 또는 뷰포트에서 본 조작을 녹화하여 새로운 애니메이션 오브젝트를 만들 수도 있습니다.

몽타주 프로퍼티

애셋 디테일 창에서 사용할 수 있는 몽타주 애셋 프로퍼티 분석은 다음과 같습니다:

MontageProperties_AssetDetails.png

몽타주 프로퍼티

Animation 애니메이션

Preview Pose Asset

프리뷰 포즈 애셋 - 모프 타깃 또는 커브 미리보기에 사용할 수 있는 포즈 애셋 을 가리킵니다.

Rate Scale

속도 스케일 - 몽타주의 재생 속도에 대한 배수입니다. 기본값은 1.0 입니다.

Skeleton

스켈레톤 - 이 몽타주에 관련된 스켈레톤이 들어있습니다. 에디터에서는 바꿀 수 없습니다.

Parent Asset

부모 애셋 - 쿠킹 도중, 이 데이터를 사용하여 Normal 애셋에 구워냅니다. 에디터에서 변경할 수 없습니다.

Asset Mapping Table

애셋 매핑 테이블 - 부모 애셋을 설정하고 애셋 유저 데이터 매핑 테이블 작업을 할 때 사용됩니다. 에디터에서 변경할 수 없습니다.

Asset User Data

애셋 유저 데이터 - 애셋에 저장되는 사용자 정의 데이터 배열입니다.

Blend Option 블렌드 옵션

Blend In

블렌드 인 - 몽타주 재생 시작시 캐릭터가 현재 포즈에서 대상 포즈로 블렌드 인 해 들어가는 동안의 기간입니다. 블렌드 옵션 을 설정하거나 커스텀 커브 를 추가할 수도 있습니다.

Blend Out

블렌드 아웃 - 몽타주 재생 종료시 캐릭터가 원래 포즈로 블렌드 아웃해 돌아가는 동안의 기간입니다. 블렌드 옵션 을 설정하거나 커스텀 커브 를 추가할 수도 있습니다.

Blend Out Trigger Time

블렌드 아웃 트리거 시간 - Sequence End 에서 블렌드 아웃을 발동시킬 시간입니다. 지정된 값이 0 보다 큰 경우, Blend Out 은 몽타주와 같이 종료됩니다. 지정된 값이 0 이하인 경우, 시퀀스 끝에서 지정된 값을 뺀 곳에서 Blend Out 이 발동됩니다.

Enable Auto Blend Out

자동 블렌드 아웃 활성화 - 이 옵션을 활성화하면 (기본 옵션) 몽타주를 자동 블렌드 아웃하는 반면 비활성화하면 마지막 포즈를 유지합니다.

Sync Group 싱크 그룹

Sync Group

싱크 그룹 - 몽타주의 싱크 그룹 을 정의할 수 있습니다.

Sync Slot Index

싱크 슬롯 인덱스 - 싱크 그룹에 사용할 인덱스를 정의합니다.

Additive Settings 애디티브 세팅

Preview Base Pose

프리뷰 베이스 포즈 - 애디티브 블렌드 스페이스에 사용할 베이스 프리뷰 포즈를 설정합니다.

Time Stretch Curve 타임 스트레치 커브

Sampling Rate

샘플링 속도 - 아래 커브의 원하는 샘플링 속도입니다. 전체 커브 샘플링을 고정 시간 단위로 할 수 있도록 반올림합니다.

Curve Value Min Precision

커브 값 최소 정밀도 - 델타가 최소 이만큼은 되어야 세그먼트를 연속 샘플링합니다. 이 값 미만인 세그먼트는 합쳐서 마커 수를 최적화합니다.

Markers

마커 - 추가되는 마커 최적화 목록입니다.

Sum D T I by C I

CI 로 DTI 합 - 캐시에 저장한 합계를 표시합니다.

Time Stretch Curve Name

타임 스트레치 커브 이름 - 몽타주에서 찾아볼 옵션 TimeStretchCurveName 이름입니다.

Meta Data 메타 데이터

Meta Data

메타 데이터 - 애셋과 함께 저장할 수 있는 메타 데이터입니다. MetaData 는 Anim MetaData 클래스에서 파생된 Blueprintable 클래스입니다. 이를 통해 애니메이션 애셋 (애님 시퀀스, 애님 몽타주, 애님 컴포짓, 블렌드 스페이스 모두 지원) 에 커스텀 메타 데이터를 추가시킬 수 있습니다. 애니메이션 애셋에 있는 데이터 쿼리는 C++ 에서 GetMetaData() 메서드를 호출하거나, 애님 몽타주에서 GetSectionMetaData() 를 사용하면 됩니다.

Thumbnail 썸네일

Orbit Pitch

궤도 피치 - 애셋 주변을 도는 카메라의 피치(상하) 값입니다.

Orbit Yaw

궤도 요 - 애셋 주변을 도는 카메라의 요(좌우) 값입니다.

Orbit Zoom

궤도 줌 - 애셋과의 바운드 구체 거리에 적용할 오프셋입니다.