[내일배움캠프 Unreal] 사전캠프 - 레벨 생성 및 기본 오브젝트 배치
1. 오늘 배운 개념 요약
Unreal에서 animation을 사용하기 위해서는 애니메이션 파일 각각을 의미하는 애니메이션 시퀸스와 그런 애니메이션 시퀸스를 통합하여 관리하는 애니메이션 블루프린트가 필요합니다.
Unity의 경우 캐릭터 FBX 파일을 임포트 하였을 경우 Generic, Humanoic 등 Unity 내에서 사용되는 구조로 리깅을 변환하여 아바타를 생성하기 때문에 각각의 애니메이션 클립에 별도의 아바타를 지정하지 않고 여러 캐릭터가 공유하여 사용할 수 있는 것에 반해 Unreal의 애니메이션 시퀸스는 임포트 시에 해당 애니메이션을 사용하게 될 스켈레톤을 지정해 주어야만 합니다.
애니메이션 블루프린트의 경우 Unity에서 비슷한 역할을 수행하는 애니메이션 컨트롤러와는 다르게
기본적으로 State 기반의 애니메이션을 사용하지 않으며, State 기반 애니메이션의 경우 스테이트 머신 이라는 별도의 노드를 사용하여 적용하게 됩니다.
블렌드 스페이스의 경우 복수의 애니메이션 시퀸스를 하나로 묶어둔 집합이라고 할 수 있습니다.
하나의 블렌드 스페이스 내에 있는 애니메이션 시퀸스의 경우 x축, y축 2가지의 변수를 통해 변화될 수 있습니다.(speed 값이 0 -> 중간 -> 높음 순에 따라 idle -> walk -> running 등)
단, x, y 축 변수는 애니메이션 블루프린트의 이벤트 그래프에서 생성한 변수와 연결하는 별도의 과정을 거쳐야 합니다.
2. 구현 과정 요약 (스크린샷 + 간단 설명)

가장 먼저 Basic Level을 생성하고 저장합니다.

바닥 역할을 할 Cube를 추가합니다.

4개의 cube를 추가하여 벽을 만듭니다.

cube와 Cylinder로 간단한 바 테이블과 의자를 만들어 추가합니다.
3. 느낀 점 & 개선하고 싶은 점
Blender -> Mixamo -> Unreal 로 모델을 보낼 경우
Blender와 Unreal의 경우 xyz 좌표계를 사용하는 반면 Mixamo는 xzy 좌표계를 사용하기 때문에
임포트 시 90도 회전하여 바닥에 누워있는 형태로 보입니다.
따라서 Blender에서 리깅이 완료된 fbx 파일을 임포트 하여 아마추어의 회전값을 apply 한 다음 Unreal에서 사용해야 이상이 없습니다.
또한 Mixamo에서 해당 애니메이션이 적용될 캐릭터가 아닌, 다른 캐릭터나 Mixamo 기본 캐릭터에 애니메이션을 지정한 후 without skin으로 다운받아 Unreal에서 임포트 할 경우 스켈레톤을 다시 지정해도 목이 길어지거나, 팔다리가 얇아지는 등 오류가 발생할 수 있으므로 반드시 Mixamo에서부터 제대로 원하는 캐릭터에 애니메이션을 지정하고 다운받아야 합니다.