[UE5] Control Rig, Level Sequence로 애니메이션 수정하기
액션 게임은 많은 애니메이션을 필요로 한다. 걷기, 달리기부터 공격, 가드, 회피, 각종 스킬까지 현재 진행 중인 프로젝트에서도 50개가 넘는 애니메이션 시퀀스를 사용하고 있다. 애니메이션 애셋을 구매하더라도 자신이 원하는 모션이나 움직임을 구현하려면 애니메이션 시스템의 설정을 세밀하게 조정하거나 애니메이션 자체를 수정하거나 또는 만들 줄 알아야 한다.
언리얼 엔진은 에디터 내에서 간단하게 애니메이션을 수정하거나 만들 수 있는 많은 기능을 제공하고 있으며 UE5 Manny를 예시로 간단한 애니메이션을 수정하는 방법을 소개하려 한다.
(가드, 패리 등 아래 방식으로 만든 애니메이션을 추가하고 나서 업로드한 Devlog 영상)
Level Sequence, Control Rig
에디터 상단에서 Level Sequence를 추가할 수 있다.
이후 Skeletal Mesh를 레벨에 배치하고 나서
Sequencer의 Add 버튼을 누르고 추가한 Mesh를 Sequencer에 추가한다.
이후 Animation에 있는 + 버튼을 누르고 수정할 애니메이션을 클릭한다.
애니메이션을 추가한 뒤 재생하기 편하도록 드래그하여 0초에 애니메이션을 위치시킨다. 초록색 바는 시작, 빨간색 바는 끝 지점으로 마찬가지로 드래그해서 애니메이션 구간을 지정해 준다.
Sequencer에서 재생 버튼을 누르거나 스페이스바를 누르면 애니메이션이 재생된다.
재생되지 않는다면 Skeletal Mesh를 Add 할 때 추가된 Control Rig이 원인일 확률이 높은데, 애니메이션을 Skeletal mesh Add 이후에 추가하였기 때문에 모든 값이 0으로 설정된 Control Rig을 제거하면 된다.
기존에 만들었던 Control Rig을 클릭하고 확인 버튼을 누르면 아래와 같이 현재 애니메이션의 키 프레임에 맞게 모든 컨트롤 포인트가 설정된 Control Rig이 추가된다. (Manny와 골격이 비슷한 간단한 애니메이션을 수정할 때는 3인칭 템플릿의 Control Rig을 사용하여도 충분하나 아예 다른 Bone 계층 구조를 가진 Skeleton에서는 Control Rig을 직접 만들어야 한다)
애니메이션 수정
적의 공격을 가드 했을 때 사용하는 애니메이션이다. 피격 방향에 관계없이 같은 애니메이션을 사용하다 보니 사운드와 이펙트를 추가하여도 만족스럽지 않았다.
방향에 따른 가드 애니메이션을 만들어보자.
Control Rig의 + 버튼을 누르고 Additive Section을 만들고 이름을 변경하여 구분해 주었다.
여러 방향의 애니메이션을 만들어야 하기 때문에 모든 애니메이션에 수정이 필요한 부분은 Base 섹션에서 각 방향에 따른 수정은 Additive 섹션에서 작업하려고 한다.
캐릭터 기준 우측에서 공격을 받았을 때를 기준으로 가드 애니메이션을 수정하려 한다.
Sequencer에서 클릭하거나, 뷰포트에 보이는 포인트들을 클릭해서 이동하거나 회전하거나 스케일을 변경할 수도 있다.
body_ctrl을 회전시켜 공격을 가드 했을 때 상체가 회전하는 애니메이션으로 만들어보려 한다.
위 이미지를 보면 Sequencer의 굵은 빨간색이 가리키는 지점이 현재 애니메이션의 실행 프레임이다.
공격을 당한 직후 애니메이션이 재생되고 3 프레임 동안 몸이 회전하도록 만들려면 3 프레임에 몸의 회전이 끝나는 지점을 지정해 주면 된다.
컨트롤마다 key를 지정할 수 있다. 애니메이션 시퀀스에 있는 key와 동일하게 해당 시점에 값들을 저장할 수 있다. 0 프레임에서 기존 위치에 key를 추가하고, 3 프레임에서 위처럼 몸을 회전시킨 상태에서 key를 추가하자.
다시 Sequencer에서 재생시켜 보면 위처럼 부드럽게 지정한 key에 맞춰 애니메이션이 재생된다.
Sequencer의 Curves를 직접 수정할 수도 있다.
애니메이션의 수정이 끝나면 Bake Animation Sequence를 클릭하여 애니메이션 시퀀스로 추출할 수 있다.
가드 애니메이션을 8방향으로 수정하여 추가하였다. 이전보다 더 역동적인 전투를 연출할 수 있었다.