스킨 웨이트 프로파일

스킨 웨이트 프로파일을 사용하여 로우엔드 플랫폼에서 시각적 충실도를 높이는 방법을 설명합니다.

Choose your operating system:

Windows

macOS

Linux

스킨 웨이트 프로파일(Skin Weight Profile, SWP) 시스템은 스켈레탈 메시 의 일부로 저장된 원본 스킨 웨이트(SW)의 서브셋을 대체하도록 지원합니다. 이 시스템의 사용 사례는 다양하지만, 그중 하나는 특정 상황이나 플랫폼에서 동적인 캐릭터 부분을 비활성화하여 시각적 충실도를 높이는 것입니다.

아래 예시 영상에서 코트를 입은 캐릭터는 저사양 플랫폼에서 퍼포먼스를 높이기 위해 동적인 부분을 비활성화할 수 있습니다. 발을 들면 원치 않는 클리핑이 발생합니다. 스킨 웨이트 프로파일을 사용하면 보다 비용이 더 많이 드는 다이내믹을 사용하고 클리핑 정도를 완화하여 적절한 대안을 달성할 수 있습니다.

아래에서는 다이내믹 클로스 사용, 스킨 웨이트 프로파일 없이 포즈 복사, 스킨 웨이트 프로파일과 함께 실행하는 방법 사이의 차이도 살펴봅니다.

Cloth.gif

CopyPose.gif

Profile.gif

클로스

포즈 복사

프로파일

구성

스킨 웨이트 프로파일로 작업을 하려면 에디터 에서 이를 임포트 및 구성해야 런타임에서 사용할 수 있습니다.

프로파일 임포트하기

스켈레탈 메시 에디터(Skeletal Mesh Editor) 에서 프로파일을 임포트할 수 있으며 여러 스킨 웨이트를 포함하는 FBX 파일, 프로파일의 이름, LOD 인덱스도 제공해야 합니다.

  1. 스켈레탈 메시에셋 디테일(Asset Details) 패널에서 스킨 웨이트(Skin Weights) 아래의 추가(Add) (+) 버튼을 클릭하고 스킨 웨이트 프로파일 임포트(Import Skin Weight Profile) 를 선택합니다.

    ImportSkinWeight_01.png

  2. 임포트할 스킨 웨이트 데이터가 들어 있는 FBX 파일을 선택하고 열기(Open) 를 클릭합니다.

    ImportSkinWeight_02.png

  3. 프로파일 이름(Profile Name) (선택 사항으로 LOD 인덱스) 임포트(Import) 를 클릭합니다.

    ImportSkinWeight_03.png

    새 스킨 웨이트 프로파일이 에셋 디테일 패널 내에 배열 엘리먼트로 추가됩니다.

    ImportSkinWeight_05.png

특정 LOD 데이터 임포트하기

커스텀 LOD를 사용하는 스켈레탈 메시 LOD가 있는 경우, 즉 스켈레탈 메시가 별도로 임포트되고 엔진 내에서 생성되지 않은 경우 다른 스킨 웨이트를 포함하는 일치하는 파일을 임포트해야 합니다. 이 파일은 아래와 같이 기존에 있는 SWP의 일부로서 임포트될 수도 있습니다.

기존 SWP의 경우 웨이트를 임포트할 LOD를 선택합니다.

SkinWeightLOD_01.png

스킨 웨이트 데이터를 포함하는 FBX 파일을 선택하면 해당 프로파일의 소스 파일(Source Files) 섹션 아래에 표시됩니다.

SkinWeightLOD_02.png

특정 LOD에 프로파일 임포트하기

원본 스킨 웨이트를 특정 LOD 레벨에서 오버라이드하고 싶거나 해야 하는 경우 임포트 프로세스 중에 임포트되는 파일에 포함된 데이터가 어떤 LOD 인덱스에 대한 것인지 지정합니다.

ImportLODIndex.png

프로파일 리임포트하기

스킨 웨이트 프로파일의 소스 데이터를 업데이트하는 경우 파일을 리임포트할 수 있습니다. 저장된 파일 경로가 더는 존재하지 않는다면 새 파일 위치를 묻는 창이 표시될 것입니다.

그렇게 하려면 리임포트할 SWP에서 리임포트(Reimport) 아이콘을 클릭합니다.

ReimportSWP.png

다수의 LOD가 있는 경우 SWP를 리임포트할 LOD를 리임포트 메뉴에서 선택할 수 있습니다.

다른 파일로 리임포트하기

스켈레탈 메시 에디터 에서 점 세 개(...) 아이콘을 클릭하고 새 파일을 선택하여 다른 파일에서 스킨 웨이트를 리임포트할 수 있습니다.

ReimportDifferentSWP.png

프로파일 제거하기

스켈레탈 메시 에디터 내에서 프로파일 제거(Remove Profile) 버튼을 클릭하여 프로파일이나 프로파일 내의 LOD를 제거할 수 있습니다.

RemoveProfile.png

제거 옵션을 사용하면 프로파일 내에서 전체 SWP 또는 LOD를 제거할 수 있습니다.

프로파일 프리뷰하기

뷰포트의 애니메이션 에디터 또는 에디터에서 플레이(Play in Editor) 세션 도중에 특정 SWP에 대한 여러 스킨 웨이트의 모습을 프리뷰할 수 있습니다.

뷰포트에서 스킨 적용 메시 컴포넌트 또는 자손 클래스에 대한 특정 SWP를 선택하고 프리뷰할 프로파일을 선택하여 해당 항목을 설정할 수 있습니다.

  1. 캐릭터(Character) 버튼을 클릭한 다음 애니메이션(Animation)스킨 웨이트 프로파일(Skin Weight Profile) 섹션에서 원하는 SWP를 선택합니다.

    PreviewSkinWeight_01.png

    프리뷰할 SWP를 선택하면 뷰포트에 디버그 정보가 표시됩니다.

    PreviewSkinWeight_02.png

    디테일 패널 및 스킨 웨이트 프로파일 세팅을 통해 메인 레벨 에디터 뷰포트에서 스킨 웨이트를 프리뷰할 수도 있습니다.

    PreviewSkinWeight_04.png

런타임 블루프린트 노출 API

제공된 (블루프린트 노출) API를 사용하여 런타임에서 스킨 적용 메시 컴포넌트(또는 자손 클래스)에 대한 SWP를 구성할 수 있습니다.

이름

블루프린트 노드

설명

스킨 웨이트 프로파일 설정(Set Skin Weight Profile)

SetSkinWeightProfile.png

이름이 있는 경우 제공된 이름에 따라 특정 SWP를 설정합니다.

스킨 웨이트 프로파일 지우기(Clear Skin Weight Profile)

ClearSkinWeightProfile.png

이전에 설정된 SWP를 지웁니다.

스킨 웨이트 프로파일 언로드(Unload Skin Weight Profile)

UnloadSkinWeightProfile.png

제공된 이름의 스킨 웨이트 버퍼를 강제로 언로드하고 삭제합니다.

현재 스킨 웨이트 프로파일 구하기(Get Current Skin Weight Profile)

GetCurrentSkinWeight.png

현재 설정된 SWP의 이름을 반환합니다. 없으면 ‘없음(None)'을 반환합니다.

스킨 웨이트 프로파일을 사용하는지 여부(Is Using Skin Weight Profile)

IsUsingSkinWeightProfile.png

프로파일 설정 여부를 반환합니다.

확장성

이 시스템은 디폴트 세트 SWP를 런타임에서 로드할 수 있으며, 이는 스태틱 패스 또는 다이내믹 패스를 통해 수행될 수 있습니다.

스태틱 패스

스태틱(Static) 패스를 사용하면 스켈레탈 메시 데이터 시리얼라이제이션 중에 시스템이 디폴트 프로파일의 설정 여부를 확인하고 설정된 경우 이를 로드합니다. 원본 스킨 웨이트 버퍼를 가져와서 그 데이터를 디폴트 프로파일로 덮어씁니다. 즉 스태틱 패스를 사용하여 디폴트 SWP를 로드할 때마다 그 뒤에는 더 이상의 변경이 적용되지 않으며, 원본 데이터는 스켈레탈 메시가 리로드될 때까지 손실됩니다.

사용자가 다이내믹 패스로 변경하거나 SWP를 수동으로 설정하려고 하면 시스템이 오류를 일으킵니다.

다이내믹 패스

다이내믹(Dynamic) 패스에서는 스태틱 패스와 마찬가지로 시리얼라이제이션 중에 디폴트 프로파일을 로드합니다. 그러나 원본 스킨 웨이트 버퍼를 오버라이드하는 대신 새 버퍼를 생성합니다. 서브시스템이 버퍼를 요청할 때마다 원본이 아닌 오버라이드 버전을 반환합니다. 이 시스템의 장점은 런타임에서 토글이 가능하다는 점이며, 이 점이 스태틱 패스와의 차이입니다.

디폴트 프로파일

스켈레탈 메시 에디터디테일 패널 내에서 디폴트 SWP 프로파일을 할당할 수 있으며, 플랫폼별 또는 LODIndex 기반으로 원본 스킨 웨이트를 오버라이드할 수도 있습니다.

DefaultProfiles_02.png

위 이미지에서 SWP 하나는 데스크톱(Desktop) 에 대한 오버라이드로 할당되었으며, 다른 SWP는 모바일(Mobile) 로 설정됐습니다.

SWP를 디폴트 프로파일로 할당하면 추가 프로파일을 디폴트로 할당할 수 없습니다.

DefaultProfiles_01.png

디폴트 프로파일이 할당되면 LODIndex의 디폴트 프로파일 하에 설정된 LOD 인덱스 세트 아래의 LOD가 스켈레탈 메시의 스킨 웨이트를 프로파일의 스킨 웨이트로 오버라이드합니다.

DefaultProfiles_03.png

런타임의 콘솔 명령

다음 콘솔 명령은 SWP 시스템 프리뷰 도중 런타임에서 사용할 수 있습니다.

이름

설명

a.SkinWeightProfile.LoadByDefaultMode

런타임 최적화를 활성화/비활성화하여 원본 스킨 웨이트를 디폴트로 지정된 프로파일로 오버라이드합니다. 특정 플랫폼 또는 디바이스의 메모리 최적화에 사용될 수 있습니다.

설명

0

스태틱 비활성화됨.

1

스태틱 활성화됨.

2

다이내믹 비활성화됨.

3

다이내믹 활성화됨.

a.SkinWeightProfile.DefaultLODOverride

스켈레탈 메시의 디폴트 스킨 웨이트를 오버라이드해야 하는 디폴트 스킨 웨이트 프로파일에서 LOD 인덱스를 오버라이드합니다.

설명

-1

비활성화됨.

0

LOD 인덱스 0.

N

LOD 인덱스 N(N은 로드할 LOD).

a.SkinWeightProfile.AllowedFromLOD

스킨 웨이트의 프로파일이 적용될 수 있는 LOD 인덱스를 오버라이드합니다. .

설명

-1

비활성화됨.

0

LOD 인덱스 0.

N

LOD 인덱스 N(N은 로드할 LOD).

언리얼 엔진의 이전 버전을 위해 작성된 페이지입니다. 현재 언리얼 엔진 5 버전을 위해 업데이트되지 않았습니다.