스켈레톤(Skeleton) 은 스켈레탈 메시에서 조인트(joints) 라고도 부르는 본(Bones) 을 정의하는 데 사용되는 계층구조입니다. 어떤 면에서 이러한 본은 그 위치와 캐릭터가 변형되는 방식을 제어하는 기능 때문에 실제 생물학적 골격을 모방합니다.
언리얼 엔진에서 스켈레톤은 애니메이션 데이터와 전반적인 스켈레탈 계층구조 및 애니메이션 시퀀스를 저장하고 연결하는 데 사용됩니다. 스켈레톤 에셋도 다양한 방법을 통해 공유하여 여러 스켈레톤 간에 추가 애니메이션과 데이터를 공유할 수 있습니다.
이 문서에서는 폴더 스켈레톤을 생성하고 사용하는 방법을 간략히 살펴봅니다.
전제조건
- 프로젝트에 스켈레탈 메시 액터가 포함되어 있거나 언리얼 엔진에 임포트할 스킨을 입힌 FBX 캐릭터가 있어야 합니다.
스켈레톤 생성하기
스켈레톤을 생성하는 기본적인 방법은 스킨을 입힌 캐릭터 FBX를 임포트한 다음 언리얼 엔진에서 스켈레탈 메시 로 변환하는 것입니다. 스켈레탈 메시를 임포트할 때, FBX 임포트 옵션(FBX Import Options) 창에서 스켈레톤(Skeleton) 필드를 비워두면 임포트되는 스킨을 입힌 캐릭터를 기반으로 스켈레톤 에셋이 자동으로 생성됩니다.

캐릭터를 임포트하고 나면, 다른 스켈레탈 메시 에셋과 함께 스켈레톤 에셋 이 생성됩니다.

콘텐츠 브라우저(Content Browser) 에서 원하는 스켈레탈 메시를 우클릭하고 스켈레톤(Skeleton) > 스켈레톤 생성(Create Skeleton) 을 선택하여 스켈레탈 메시에서 스켈레톤의 사본을 생성할 수도 있습니다. 이렇게 하면 기존 메시와 연결된 새 스켈레톤이 생성됩니다. 해당 메시에 연결된 또 다른 스켈레톤이 있으면 역시 새 스켈레톤과 다시 연결되고 애니메이션도 새 스켈레톤과 연결됩니다.

스켈레톤 에셋을 더블클릭하여 스켈레톤 에디터를 엽니다.

스켈레톤 트리 정보
스켈레톤 트리에 표시되는 본과 기타 항목은 여러 가지 요인에 따라 다르게 표시될 수 있습니다.
아이콘 | 설명 |
---|---|
![]() |
스켈레탈 메시의 버텍스에 영향을 주는 노멀 본입니다. |
![]() |
현재 스켈레톤의 본으로, 스켈레탈 메시의 버텍스에 영향을 주지 않는 본입니다. 이러한 본은 일반적으로 무기나 소품 연결 등, 보조적인 방식으로 사용되며, 여전히 본으로 애니메이팅할 수 있습니다. |
![]() |
소켓입니다. 본의 오프셋 어태치먼트 포인트 역할을 하는 스태틱 포인트입니다. |
![]() |
가상 본입니다. 다른 본의 트랜스폼을 따르지만 다른 본 스페이스에 있는 본입니다. 이러한 본은 원하지 않는 조인트 무브먼트를 고정할 때 유용하며 IK와 함께 사용됩니다. |
![]() |
스켈레톤에 있지만 현재 스켈레탈 메시가 사용하지 않는 본입니다. 스켈레톤을 병합했거나, 특정 본을 사용하지 않는 이 스켈레톤의 다른 LOD를 프리뷰하는 경우에 이런 본이 있을 수 있습니다. |
애니메이션 데이터 스토리지
애니메이션을 제어하는 것 외에도, 언리얼 엔진에서 스켈레톤은 애니메이션별 데이터를 저장하기도 합니다. 애니메이션 시퀀스에서 애니메이션 노티파이를 생성하는 것처럼, 이러한 소스에서 데이터가 생성되면 공유 데이터로 스켈레톤에 추가됩니다.
스켈레톤은 다음과 같은 타입의 애니메이션 데이터를 저장합니다.
이 데이터는 전용 툴 패널에서 볼 수 있는데, 스켈레톤 에디터(Skeleton Edito) 메뉴에서 창(Window) 을 클릭한 다음 해당 패널 중 하나 이상을 활성화하면 됩니다.

스켈레톤 공유하기
스켈레톤 에셋의 중요한 기능은 여러 스켈레탈 메시가 같은 일반 릭 계층구조를 사용하는 한 여러 스켈레탈 메시에서 하나의 스켈레톤 에셋을 사용할 수 있다는 것입니다. 즉, 공유가 제대로 작동하려면 본의 이름과 계층구조 순서가 일관되어야 한다는 뜻입니다.
예를 들어, 스켈레탈 메시에 세 개의 본이 있는 사지가 있습니다. 본의 이름은 1, 2, 3 입니다.

다른 스켈레탈 메시와 이 스켈레톤을 공유하고 싶다면, 이러한 본을 같은 순서와 같은 이름으로 유지해야 합니다. 하지만, 두 번째 스켈레탈 메시는 계층구조에 추가되거나 계층구조 주변에 있는 본을 포함할 수 있습니다. 스켈레탈 메시에 포함되지 않은 본에 대한 애니메이션 데이터가 수신될 때마다 해당 애니메이션 데이터가 무시됩니다.
이런 경우, 새 계층구조는 아래 이미지와 비슷한 모습일 것입니다. 여기서 두 번째 스켈레탈 메시에 추가 본이 있지만, 첫 번째 스켈레탈 메시의 원래 계층구조를 계속 유지하며 간섭하지 않습니다.

하지만, 두 스켈레탈 메시가 같은 스켈레톤 에셋을 사용하려면 계층구조 순서를 변경하거나 본의 이름을 변경하면 안 됩니다. 두 번째 스켈레탈 메시가 다른 본 계층구조와 명명 구조를 사용하는 경우, 새 스켈레톤 에셋을 생성해야 합니다.

순서를 변경하지 않고 계층구조에 본을 삽입한다면, 성공적으로 공유할 수 있을 것입니다. 그렇지만 대부분의 경우, 추가 본은 스켈레톤에서 의도하지 않은 트랜스폼 오프셋을 유발할 수 있습니다. 가능하다면 이런 상황은 피하는 것이 좋습니다.

언리얼 엔진에서는 이러한 공유 규칙을 고려하여 몇 가지 방법으로 스켈레탈 메시 간에 스켈레톤을 공유할 수 있습니다. 아래에 자세한 방법이 설명되어 있습니다.
임포트 중 병합
스켈레톤을 공유하는 첫 번째 방법은 FBX 임포트 프로세스 중에 수행하는 것입니다. 위의 규칙을 준수하는 추가 및 주변 본과 함께 새 스켈레탈 메시를 임포트하는 경우, 프로젝트에 이미 있는 스켈레탈 메시에서 스켈레톤을 선택할 수 있습니다. 그러면 언리얼 엔진이 스켈레톤을 병합하고 새로운 본이 있으면 계층구조에 추가합니다. 또한, 스켈레톤의 비율은 그 스켈레톤이 생성된 원본 스켈레탈 메시에 의해 정의됩니다.

병합하려는 스켈레톤과 크게 다른 스켈레톤을 임포트하는 경우, 그리고 공유 규칙을 위반하는 경우에는 아래와 같은 오류 메시지가 표시됩니다.

이러한 경우 기존 스켈레탈 메시에 병합하지 말고 임포트하는 스켈레탈 메시에 대한 새 스켈레톤 에셋을 생성해야 합니다.
병합된 스켈레톤을 볼 때 계층구조에 이러한 추가 본이 나열된 것을 볼 수 있습니다. 하지만, 이러한 본은 해당 스켈레탈 메시에만 표시되고 활성화됩니다.
![]() |
![]() |
---|---|
스켈레탈 메시 베리언트 1 | 스켈레탈 메시 베리언트 2 |
호환 스켈레톤
또한, 스켈레톤은 다른 스켈레톤을 호환 스켈레톤으로 정의하여 애니메이션 에셋을 그대로 공유할 수 있습니다. 호환 스켈레톤은 애니메이션 시퀀스, 몽타주, 애니메이션 블루프린트(Animation Blueprints) 등을 공유할 수 있습니다.
캐릭터에 대한 다른 스켈레톤을 호환 스켈레톤으로 정의하려면, 스켈레톤 에디터에서 해당 캐릭터의 스켈레톤 에셋을 연 다음, 툴바 에서 리타깃 매니저(Retarget Manager) 버튼을 클릭하여 엽니다.

리타깃 매니저 에서 리타깃 소스(Retarget Sources) 패널의 호환 스켈레톤 관리(Manage Compatible Skeletons) 섹션을 찾은 다음 스켈레톤 추가(Add Skeleton) 를 클릭하면 나오는 컨텍스트 메뉴를 사용하여 프로젝트에서 다른 스켈레톤 에셋을 선택합니다.

이제 호환 소스 관리(Manage Compatible Sources) 목록에 추가된 스켈레톤에서 애니메이션을 공유할 수 있습니다.

스켈레톤 호환성은 양방향입니다. 스켈레톤 1이 스켈레톤 2와 호환되도록 설정한 경우, 스켈레톤 2도 스켈레톤 1과 호환됩니다.
호환 스켈레톤의 시스템을 생성하고 관리하는 것은 여러 캐릭터를 애니메이팅하기 위해 프로젝트에 필요한 다수의 애니메이션 에셋을 최적화하는 데 효과적인 방법일 수 있습니다. 하지만, 호환 스켈레톤 시스템을 활용하려면 모든 캐릭터의 스켈레톤 계층구조와 명명 규칙이 거의 동일해야 합니다. 또한, 모든 캐릭터의 메시 비율이 비슷해야 이상적인 결과를 얻을 수 있습니다.
스켈레톤 구조가 같지만, 비율은 다른 캐릭터 간에 애니메이션을 공유하는 방법은 애니메이션 리타기팅 문서를 참조하세요.
스켈레톤 구조가 완전히 다른 캐릭터 간에 작동하도록 애니메이션 시퀀스를 리빌드하는 방법은 IK 릭 리타기팅 문서를 참조하세요.
스켈레톤 기능
언리얼 엔진의 스켈레톤은 어태치, 블렌딩 및 기타 세팅을 위한 다양한 기능을 지원합니다. 이러한 기능에 대한 자세한 정보는 아래의 페이지를 참조하세요.