-
SkeletalMeshComponent에서 Skeleton 얻기Unreal Engine 2024. 7. 1. 20:46
구매한 스켈레탈 메시 에셋이 언리얼 기본 마네킹 스켈레톤을 기반으로 만들어졌다. 소켓을 추가했더니, 마네킹 스켈레톤도 함께 수정되길래 원본 유지를 위해 C++로 동적으로 소켓을 붙여 주기로 했다!
if (USkeletalMeshComponent* SkeletalMeshComponent = GetMesh()) { // USkeletalMesh를 통해 Skeleton을 얻음 if (USkeletalMesh* SkeletalMesh = SkeletalMeshComponent->SkeletalMesh) { if (USkeleton* Skeleton = SkeletalMesh->GetSkeleton()) { UE_LOG(LogTemp, Log, TEXT("Skeleton Name: %s"), *Skeleton->GetName()); } else { UE_LOG(LogTemp, Warning, TEXT("No Skeleton found on SkeletalMesh")); } } }
Skeletal Mesh와 Skeleton의 차이
Unreal Engine에서 SkeletalMesh와 Skeleton은 서로 밀접하게 관련되어 있지만, 각각 다른 역할을 수행하는 두 개의 중요한 개념입니다. 이 두 가지는 3D 캐릭터 애니메이션 시스템의 핵심 구성 요소입니다.
1. SkeletalMesh
SkeletalMesh는 3D 캐릭터의 실제 기하학적 구조를 나타냅니다. 이는 캐릭터의 외형을 정의하는 폴리곤 메쉬와 관련 텍스처, 머티리얼을 포함합니다. SkeletalMesh는 애니메이션을 통해 변형되는 3D 모델입니다. 주요 특징은 다음과 같습니다:
- 기하학적 구조: 캐릭터의 폴리곤 메쉬로 구성됩니다.
- 머티리얼과 텍스처: 캐릭터의 외형을 꾸미는 데 사용됩니다.
- 애니메이션 적용: Skeleton에 연결되어 애니메이션을 적용받습니다.
- 소켓: 무기나 다른 장비를 붙일 수 있는 지점들이 포함될 수 있습니다.
2. Skeleton
Skeleton은 SkeletalMesh의 뼈 구조를 정의하는 데이터입니다. 이는 애니메이션 시스템의 중심으로, 캐릭터의 뼈대와 각 뼈의 위치, 회전, 계층 구조 등을 포함합니다. 주요 특징은 다음과 같습니다:
- 뼈대 구조: 뼈와 뼈의 계층 관계를 정의합니다.
- 애니메이션 데이터: 각 뼈의 변형 정보를 포함하는 애니메이션 데이터를 관리합니다.
- 리깅: SkeletalMesh의 각 부분이 Skeleton의 특정 뼈에 연결되어 어떻게 움직일지 정의합니다.
- 공유 가능: 여러 SkeletalMesh가 동일한 Skeleton을 사용할 수 있습니다. 이렇게 하면 동일한 애니메이션을 여러 캐릭터 모델에 적용할 수 있습니다.
요약
- SkeletalMesh: 3D 캐릭터의 외형을 정의하는 폴리곤 메쉬, 텍스처, 머티리얼을 포함하는 데이터.
- Skeleton: SkeletalMesh의 뼈대 구조를 정의하는 데이터로, 애니메이션의 중심이 됩니다.
예제
예를 들어, 게임에서 인간형 캐릭터를 만든다고 가정해 봅시다:
- SkeletalMesh: 캐릭터의 3D 모델을 만들고, 여기에 텍스처와 머티리얼을 적용하여 캐릭터의 외형을 정의합니다. 이 모델은 팔, 다리, 몸통, 머리 등의 폴리곤 메쉬로 구성됩니다.
- Skeleton: 캐릭터의 뼈 구조를 정의합니다. 예를 들어, 캐릭터의 팔은 상완골, 요골 등의 뼈로 구성되고, 이 뼈들은 계층적으로 연결되어 있습니다. 이 Skeleton은 SkeletalMesh의 각 부분을 어떻게 움직일지 정의합니다.
애니메이션을 적용할 때, Skeleton의 각 뼈가 변형되고, 이 변형이 연결된 SkeletalMesh에 적용되어 캐릭터가 움직이게 됩니다. 따라서 SkeletalMesh는 외형을 담당하고, Skeleton은 그 외형이 어떻게 움직일지를 담당합니다.
'Unreal Engine' 카테고리의 다른 글
Unreal Engine Firebase 사용기 (1) 2024.12.16 Unreal Engine5 AI가 NavMeshVolume을 벗어나는 문제 (0) 2024.05.15 Unreal Engine5 LNK 외부 참조 에러 대부분 이걸로 해결 (0) 2024.05.09 Gameplay Ability System (0) 2024.04.30 온라인 서브시스템과 세션 생성, 찾기 (0) 2024.04.29