언리얼에서의 시퀀서와 시퀀스의 개념 정리
시퀀스는 애니메이션을 리타게팅할 때 발생하는 애니메이션의 부자연스러움을 수정할 때 키값을 추가하여 본의 트랜스폼을 수정하는 것이라고 이해하면 될 것 같다.
언리얼 엔진의 멀티 트랙 에디터로, 시네마틱 시퀀스를 실시간으로 제작하고 미리보는데 사용된다.
먼저 시퀀서를 추가하기 위해 상단에서 영화버튼 -> Add Level Sequence 를 선택하거나
적당한 위치에 우클릭 -> Cinematics -> Level Sequence 를 통해 추가한 후
레벨에 적당히 배치시킨다.
한번 배치시켜둔 시퀀서는, 생성할 때 상단의 영화버튼에 나타나므로 필요하다면 적당히 안보이는 곳에 숨겨둬도 괜찮다.
우선 시퀀서를 선택한 상태에서 Details 패널의 Open Level Sequence 를 선택하면 시퀀서의 기본 에디터 창이 열리게 된다.
시퀀서에 캐릭터를 추가하기 위해 캐릭터 블루프린트를 레벨에 배치시키고
액터가 선택된 상태에서 시퀀서 에디터창의 Add -> Actor to Sequencer -> Add BP_BLUEPRINTNAME 을 선택한다.
시퀀서에 캐릭터를 추가하면 뭔가 이것저것 많이 추가된 것을 확인할 수 있다.
언리얼에서는 Control Rig 라는 것을 지원한다.
Control Rig 란 캐릭터에 Riging 및 애니메이션 작업을 언리얼 엔진에서 할 수 있는 애니메이션 세트이다.
해당 강의 프로젝트에서는 Control Rig 를 이용한 키 에니메이션이 아닌 모션 캡쳐를 통한 데이터 또는 외부에서 얻은 애니메이션 데이터를 사용할 예정이므로 Control Rig 를 사용하지 않기에 CR_Mannequin_Body 를 지워준다.이제 캐릭터에 애니메이션을 추가해줄 차례이다.
시퀀서 에디터창에 추가된 캐릭터의 SkeletalMesh -> + 아이콘 클릭하여 필요한 애니메이션 선택한다( Manny_01 ).
단축키를 이용하여 좀더 편안하게 타임라인을 이용할 수 있다.
Shift + 휠스크롤
타임라인 영역 좌우 이동Ctrl + 휠스크롤
타임라인 범위조절
애니메이션 길이의 수정이 필요한 경우에도 단축키를 이용하여 시작지점과 종료지점을 정해줄 수 있다.
[
지정된 타임라인에재생 시작 바배치]
지정된 타임라인에재생 종료 바배치
전체 애니메이션이 재생되도록 수정한다.
이외에도 유용한 단축키 모음
Space Bar
시쿼넛 재생 및 일시정지S
선택된 오브젝트의 트랜스폼 키를 생성Enter
선택된 트랙에 키를 생성,
선택된 트랙에서 이전 키 값의 위치로 점프.
선택된 트랙에서 다음 키 값의 위치로 점프
재생된 애니메이션은 누워있는 상태 -> 앉은 상태 -> 일어난 상태 이므로 소파에 배치하는 것이 괜찮아 보이니, 위치를 소파로 옮긴다.
이때 블루프린트 액터 자체의 트랜스폼 변경과 블루프린트에서 사용하는 스켈레탈 메시의 트랜스폼 변경 두가지를 선택할 수 있는데 여기서는 스켈레탈 메시의 트랜스폼을 변경할 것이다. TODO
스켈레탈 메시를 옮길 때 애니메이션의 시작 부분 기준으로 옮기는 것이 아니라, 애니메이션의 주요 포인트지점을 기준으로 옮기는 것이 더 효율적일 수 있다.

Manny_01 애니메이션의 경우 누워 있다가 옆으로 몸을 돌린 후 일어나는 애니메이션이다.
옆으로 몸을 돌린 부분을 기준으로 스켈레탈 메시의 트랜스폼을 변경할 경우 기존에 누워있는 상태에서 트랜스폼 변경보다 더 효율적일 수도 있다.
(누워있는 상태 기준으로 트랜스폼 변경 시, 옆으로 몸을 돌릴 때 소파 위에 떠있는 상황이 발생할 수도 있음.)
트랜스폼 변경 상태에서 S 키를 통한 키 추가 또는 SkeletalMesh -> + 클릭 -> Transform 을 통해 키를 추가한다.
다음 포인트는 앉으면서 발바닥이 땅에 닿는 시점에 키를 추가한다.
해당 애니메이션은 모션 캡쳐 폴리싱 이 진행되지 않은 애니메이션이기에 앉은 상태에서 발이 땅에 닿는다 하더라도 일어날 때 발의 위치가 달라진다.
그러므로 다음 포인트는 앉은 상태에서 일어설 때 발바닥이 땅에 닿도록 키를 추가한다.
- 모션 캡쳐 폴리싱
스캔 받은 애니메이션 데이터에서 노이즈나 불필요한 키를 제거하고 미흡한 구간에 키를 수정하거나 추가하여 애니메이션 데이터를 다듬는 작업
모션 캡쳐 폴리싱이 진행되지 않은 애니메이션이라 일어날 때 발의 위치가 달라지는 것을 확인할 수 있다.
여기까지 작업하였다면 캐릭터의 z축을 확인하도록 한다.

시퀀서 에디터창에서 fps 옆의 그래프 모양을 클릭하면 Sequencer Curves 창이 뜬다.
여기서 Transform -> Location -> Z 를 클릭하면 z축의 변화를 확인할 수 있는데, 캐릭터의 움직임이 위와 같을 경우 문제가 있다.
(단순히 소파에 누워있는 경우 캐릭터의 z축 움직임은 필요가 없음)


선택한 키 타이밍을 변경하기 위해서 키를 선택하고 드래그하여 옮겨준다.
앉아 있는 상태에서의 키를 복사하여 그대로 일어나기 직전으로 붙여넣으면 z축 위치가 앉아있는 z축 기준으로 고정되므로 뷰포트와 동일한 단축키인 Alt + 드래그 를 이용해 복사하여 붙여넣어준다.
수정된 z축 트랜스폼은 위와 같다.
- 첫번째 키에서 옆으로 누워있는 z축 기준 위치 시작
- 두번째 키에서 앉을 때 z축 트랜스폼 변경
- 세번째 키에서 일어날 때 z축 트랜스폼을 앉아 있을 때의 z축 트랜스폼으로 고정
- 네번째 키에서 일어날 때 z축 트랜스폼이 변경되므로 키를 추가하여 변경
마커를 추가하여 두 캐릭터가 검을 맞대며 격돌하는 것과 같이 캐릭터들 애니메이션 같에 싱크를 맞출 수 있다.
마커를 추가할 위치에서 우클릭 -> Add Mark 를 통해 마크를 추가할 수 있다.

우클릭을 통해 마크의 이름을 지정해 줄 수도 있다.
동일하게 가위바위보가 끝나는 지점에도 마크를 추가해 주고
작업 도중 마크의 이동을 방지하기 위해 타임라인 우클릭 -> Locked 활성화를 시켜준다.
저장하기 전에 블루프린트 우클릭 -> Convert to Spawnable 를 선택한다.
작업이 끝나면 아이콘 옆에 번개 모양이 추가된다.
해당 작업을 하는 이유는 캐릭터를 레벨에 배치하고, 레벨에 있는 캐릭터의 타임라인을 수정한 것이므로 시퀀서가 단순히 키값만 가지게 되기 때문이다.
이런 포제서블 방식(레벨이 이미 배치된 오브젝트에 시퀀서가 애니메이션만 적용하는 모드)으로 진행할 경우 다른 레벨에서는 수정된 값들이 적용되지 않는다.
즉 원본의 수정이 아닌 레벨에 배치된 액터의 수정이므로 원본에는 적용되지 않는다는 의미이다.
마지막으로 저장을 누르면 시퀀서가 저장된다.
어도비의 Mixamo 라는 사이트에서 여러 애니메이션을 무료로 제공한다.
해당 사이트에서 layinig 을 검색하고 Laying Idle 애니메이션을 다운로드 한다.
Skin 옵션에 두가지 선택지가 있다.
첫 애니메이션 다운로드일 경우 반드시 With Skin 을 선택해야 한다.
다운로드한 FBX 파일을 import할 경우 옵션창이 뜨게 된다.

With Skin 옵션을 포함하도록 설정하였으므로 Skeletal Mesh 체크표시가 활성화 되어있는 것을 확인할 수 있다.
이 상태 그대로 import를 진행하면 Material , SkeletalMesh , Physics , Skeleton 파일이 import된다.
이제 다른 애니메이션을 다운로드할때는 Without Skin 옵션을 선택하고 다운로드 가능하다.
동일한 스켈레톤 에셋을 비율이 크게 다를 수 있는 캐릭터 간에 애니메이션을 재사용할 수 있는 기능이다.
해당 기능을 사용하면 FullBody IK 기능을 통해 다른 캐릭터에게 현재 사용중인 애니메이션을 그대로 재활용가능하게 해준다.
리타게팅할 애니메이션을 우클릭한 후 Retarget Animation 을 선택한다.

Target Skeletal Mesh 에서 사용할 캐릭터인 SKM_Manny 를 선택하고, 리타게팅할 애니메이션인 DancingRunningMan , HipHopdancing , Laying_Idle 을 선택해준 다음 우측 하단의 Export Animation 을 진행한다. 언리얼 5.3에서 일일히 체인을 생성해서 진행하던 방식과 다르게 매우 간편해졌다.
또한 자동으로 진행되기 때문에 루트본이 없는 Mixamo 의 애니메이션이라도 높은 퀄리티로 애니메이션 리타게팅이 가능하다.
이제 리타게팅한 애니메이션을 시퀀서에 적용시킬 차례이다.
다시 시퀀서 에디터창으로 돌아와서 Animation 옆의 + 아이콘을 클릭후, Laying Idle 애니메이션을 선택한다.
두 애니메이션이 적용되면 위와 같이 캐릭터의 위치가 이상하게 변경된다.
이는 언리얼 엔진에서 두 애니메이션의 root를 정렬시킨 상태에서 pelvis 방향을 합쳐버리기 때문이다.
Laying Idle 애니메이션의 경우 머리방향이 소파에 수직이기 때문에 합쳐진 45도로 캐릭터가 기울게 되는 것이다.
실제로 기존의 Animation을 좌측의 표시금지 아이콘을 활성화시킨 상태로 확인해보면 Laying Idle 애니메이션이 소파에 수직인 상태로 재생되는 것을 확인할 수 있다.
기존의 Animation을 수정하기 위해 선택후 우클릭 -> Edit -> Trim Section Left 를 선택해 왼쪽 부분은 지워버린다.
빈 공간은 카메라 컷신으로 표현할 것이므로 크게 신경쓰지 않아도 된다.
이제 Laying_Idle 애니메이션에 키를 추가하여 회전시킬 차례이다.
반드시 뷰포트의 캐릭터 선택이 아닌 시퀀서 에디터창의 SkeletalMesh 를 선택하고 S 키를 통한 키를 추가하여야 한다.
애니메이션에 수정이 있었으므로 키값을 다시 잘린 애니메이션의 가장 앞부분으로 옮겨준다.

Laying_Idle 애니메이션의 끝부분에도 동일하게 키를 복사해서 넣어준다.
또는 Sequencer Curves 탭에서 앞의 키들을 모두 선택후 Constant Interpolation 을 선택하면 다음 키에서 값이 변하기 전까지 현재의 키값이 고정된 채로 유지시킬 수 있다.
번외1: 애니메이션 블렌딩
필요에 따라 다른 애니메이션 두개를 자연스럽게 연결시켜서 재생시킬 필요가 있을 수 있다. 애니메이션 블렌딩은 서로 다른 애니메이션을 가진 애니메이션 클립을 겹치고 가중치를 조절해서 자연스럽게 모션이 연결되도록 할 수 있게 한다.
1. 두 애니메이션을 겹치게 한 상태에서Weight값을 조절하는 방법
2. 두 애니메이션을 같은 트랙에 겹쳐 트랜잭션 타임을 생성
해당 구간을 우클릭한 후
Option을 선택하면 다양한 방식으로 애니메이션 변환을 선택할 수 있다.
- 트랜잭션
애니메이션과 애니메이션 사이에 전환이 일어나는 구간번외2: 발 기준 블렌딩
보통은
root bone기준으로 블렌딩을 진행하지만, 착치하는 애니메이션과 착지후 달려나가는 애니메이션을 블렌딩한다고 가정할 경우 발을 기준으로 블렌딩을 진행해야 할 필요가 생긴다.
뒤쪽의 애니메이션을 우클릭하고
Math With This Bone in Previous Clip에서foot_l을 선택하면
애니메이션이 블렌딩될 때 왼발 기준으로 블렌딩이 진행되는 것을 확인할 수 있다.
(Skeleton 표시는 트랙의 애니메이션 노드 우클릭후Show Skeleton활성화)
참고로 특정 본과 매치시키는 기능은 기본적인 root와 pelvis의 방향과 위치가 동일해야 최대한의 효과를 볼 수 있으니 주의해야 한다.
지금까지의 방법을 토대로 애니메이션을 더 추가한다.

Manny_02 를 추가하고
애니메이션의 앞부분에 Transform -> + 를 통한 키를 추가한 후
앞의 키를 우클릭하고 상수 보간을 진행한다.
마지막으로 캐릭터의 위치를 SkeletalMesh 클릭 후 적당한 위치에 옮겨준다.
해당 애니메이션은 발을 테이블 위로 올리는 애니메이션인데 테이블의 위치와 발의 위치가 맞지 않는다.
시네마틱 애니메이션이므로 중간중간 화면전환이 발생하기 때문에 테이블을 앞으로 당겨와도 문제가 없다.
동일하게 테이블 선택후 시퀀서를 추가한다.
테이블은 스포너블이 아닌 포제서블 방식을 채택한다. 왜냐하면 시퀀서가 종료되는 순간 테이블도 사라지기 때문이다.
먼저 적당한 앞부분에 Transform 키를 주어 테이블의 원래 위치를 기억하도록 한다. 동일하게 상수 보간을 하여 컷이 바뀔 때 테이블이 위치가 딱 바뀌도록 한다.

애니메이션에 맞춰 테이블의 트랜스폼을 변경시킨 후 키를 추가하고 키를 애니메이션 가장 앞으로 당겨 애니메이션 시작시 테이블의 위치가 변경되도록 한다.
컨트롤리그란 캐릭터에 리깅 및 애니메이션 작업을 언리얼 엔진에서 할 수 있는 애니메이션 툴 세트이다.
기존의 IK와 FK 방식보다 매우 간편하다.
자세히 보면 발이 테이블과 겹쳐져 있는 것을 확인할수 있다.
이부분을 수정하기 위해 시퀀서 에디터창의 SkeletalMesh -> + -> Control Rig -> Layered 활성화 -> 하단의 Control Rig Class 에서 CR_Mannequin_Body 선택한다.CR_Mannequin_Body 는 언리얼 엔진5에서 사전 제공되는 인간형 컨트롤리그인데, 마네킹과 동일한 구조의 캐릭터에 바로 적용 가능하다.
먼저 오른발을 선택하고 변경전 키를 추가한다.
발을 때기 전까지는 기존의 키값을 유지시켜야 하므로 때기 직전에도 동일하게 키를 추가한다.
발을 올리다가 발뒤꿈치가 테이블에 닿는 타이밍에 발의 위치를 살짝 조정하고 키값을 추가한다.
Absolute 를 선택할 경우 IK를 이용할 수 있다.
컨스트레인트에서 고정할 옵션을 선택하고 고정시킬 대상을 지정하면 된다.4842 FK로 허벅지 옮기기