이 페이지에서는 언리얼 엔진 프로젝트에서 메타휴먼을 이해하고 사용하는 데 필요한 모든 정보를 살펴봅니다. 여기에는 메타휴먼을 효과적으로 로드하고 작업하는 데 필요한 모든 프로젝트 세팅, 플러그인, 콘솔 변수가 포함됩니다. 여기에서는 유용한 추가 세팅 및 명령도 찾을 수 있습니다.
프로젝트 세팅 및 콘솔 변수
다음 프로젝트 세팅과 콘솔 변수는 퀵셀 브리지에서 메타휴먼을 처음 임포트할 때 프로젝트의 Config > DefaultEngine.ini 환경설정 파일에 추가됩니다.
이 명령은 [ConsoleVariables] 및 [/Script/Engine.RendererSettings] 섹션 아래에 추가됩니다.
| 콘솔 변수 | 설명 | 필수 값 |
|---|---|---|
| 스켈레탈 메시의 개별 섹션을 렌더링하는 데 256개 이상의 본 인덱스 지원을 활성화합니다. | True |
| GPU 스키닝에 디폴트 4/8 대신 무제한 본 인플루언스를 사용할지 여부입니다. 런타임에서는 변경할 수 없습니다. | True |
| GPU 연산 스키닝 캐시 셰이더를 컴파일할지 여부입니다. 버텍스 셰이더의 스킨이 아닌 연산 작업의 스킨에 셰이더를 컴파일합니다. | True |
| 스킨 캐시 연산 지원 | 0 |
|
| 1 |
| 나이아가라 순서/의존성이 다른 모든 헤어 그룹 후의 마지막 틱 그룹에서 평가되도록 강제합니다. 이 기능을 비활성화하면 나이아가라가 피직스 에셋 업데이트 전에 평가되기 때문에 콜리전이 한 프레임 늦는 경우가 발생할 수 있습니다. | 1 |
이러한 변경사항은 에디터를 재시작해야 합니다.
플러그인
메타휴먼 크리에이터 플러그인을 활성화하지 않은 프로젝트에서 어셈블된 캐릭터를 사용하는 경우, 다음 플러그인 중 하나 이상을 활성화해야 할 수 있습니다.
| 플러그인 | 설명 |
|---|---|
그룸(Groom) | 언리얼 엔진 내 헤어 그룸의 렌더링 및 시뮬레이션 지원을 활성화합니다. |
릭 로직 플러그인 | 3레터럴의 페이셜 애니메이션 릭 지원을 활성화합니다. |
라이브 링크 | 공용 인터페이스를 사용하여 Maya나 Motionbuilder 등의 DCC 툴로 외부 소스에서 언리얼 엔진으로 애니메이션 데이터를 스트리밍할 수 있도록 지원합니다. 라이브 링크는 애니메이션을 외부에서 편집하면서 작업의 프리뷰를 언리얼 엔진에서 실시간으로 확인할 수 있게 해줍니다. 모션 캡처 시스템 또한 이를 사용하여 실시간으로 프리뷰할 수 있도록 데이터를 엔진으로 스트리밍합니다. 자세한 내용은 라이브 링크 플러그인 문서를 참고하세요. |
라이브 링크 컨트롤 릭 | 컨트롤 릭을 통한 라이브 링크 데이터 지원을 활성화합니다. |
컨트롤 릭 | 아티스트 친화적인 인터페이스로 리깅 아티스트에게 유연하고 동적이며 프로시저럴한 캐릭터를 생성할 수 있는 툴을 제공하는 노드 기반 리깅 시스템을 활성화합니다. 자세한 내용은 컨트롤 릭 문서를 참고하세요. |
메가스캔 | 퀵셀 브리지를 사용하여 메타휴먼 크리에이터 웹 애플리케이션에서 생성된 기존 메타휴먼 캐릭터를 현재 프로젝트에 임포트 또는 이주할 수 있게 해줍니다. |
이러한 변경사항은 에디터를 재시작해야 합니다.
메타휴먼을 위한 추가 콘솔 명령어
다음 섹션에서는 특정 환경설정(*.ini) 파일에 사용 및 추가할 수 있는 몇 가지 추가 콘솔 명령을 중점적으로 살펴봅니다.
모바일에서의 메타휴먼
모바일 플랫폼에서 스키닝된 캐릭터는 최대 75개 본으로 제한됩니다. 이것은 모바일 GPU에서 단일 드로 콜에서 스키닝할 수 있는 최대 본 수입니다. 메타휴먼을 디플로이하는 모든 모바일 디바이스에서 메타휴먼을 로드 및 실행할 수 있도록 하려면 프로젝트의 DefaultEngine.ini 환경설정 파일에 다음 명령을 추가합니다. 다음을 [ConsoleVariables] 섹션 아래에 배치합니다.
Compat.MAX_GPUSKIN_BONES=75
DefaultDeviceProfiles.ini
디바이스 프로파일은 디바이스 및 플랫폼별 환경설정을 구성하는 데 사용할 수 있는 옵션을 제공합니다. 이를 통해 엔진 퀄리티, 렌더링, 텍스처 등 해당 디바이스나 플랫폼에만 영향을 미치는 다양한 프로퍼티를 디바이스 프로파일에서 설정할 수 있습니다.
툴(Tools) > 플랫폼(Platforms) 메뉴에서 액세스할 수 있는 디바이스 프로파일(Device Profiles) 창에서 디바이스 프로파일 옵션을 관리 및 설정할 수 있습니다. 또는 프로젝트의 Config 폴더에 DefaultDeviceProfiles.ini 환경설정 파일을 직접 수동으로 추가할 수 있습니다.
텍스처 LOD 그룹
메타휴먼이 사용하는 대규모 8K 텍스처가 모든 디바이스와 플랫폼에 적합한 것은 아닙니다. TextureLODGroups를 사용하여 텍스처 에디터의 밉 생성 세팅(Mip Gen Settings)을 통해 특정 텍스처 그룹에서 지원되는 최소 및 최대 LOD(밉)를 관리할 수 있습니다.
모바일 디바이스에서 최대 텍스처 크기는 환경설정 파일에서 MaxLODSize와 관련된 값을 변경해야 합니다.
또는 에디터의 내 디바이스 프로파일 창에서 편집하려는 디바이스 또는 플랫폼을 선택할 수 있습니다. 텍스처 LOD 그룹Texture LODGroups) 열 아래의 연필 모양 아이콘을 클릭합니다.
World, WorldNormalMap 등의 편집할 텍스처 그룹을 선택합니다. 해당 카테고리를 펼쳐 최대 LOD 크기(Max LOD Size)를 변경합니다.
지원되는 플랫폼 및 권장되는 최적의 텍스처 크기에 대한 자세한 내용은 플랫폼 및 LOD 사양 페이지를 참고하세요.
얼리 Z 패스 컬링
얼리 Z 패스는 베이스 패스에 대한 뎁스 전용 컬링을 초기화하는 데 사용됩니다. 모바일 및 기타 플랫폼의 경우, 헤어 렌더링 속도를 높일 수 있습니다.
Android 및 iOS와 같은 모바일 디바이스에서는 콘솔 명령 입력 앞에 +CVars=를 추가하여 원하는 플랫폼의 환경설정 파일에 콘솔 변수를 추가할 수 있습니다. 예를 들어 다음과 같습니다.
+CVars=r.EarlyZPass=3
또는 에디터의 내 디바이스 프로파일 창에서 편집하려는 디바이스 또는 플랫폼을 선택할 수 있습니다. CVar 열 아래의 연필 모양 아이콘을 클릭합니다.
콘솔 변수(Console Variables) 카테고리에서 추가할 콘솔 변수에 관련된 서브 카테고리의 더하기 (+) 아이콘을 눌러 펼칩니다. 카테고리의 관련 콘솔 변수 내에서 검색할 수 있으며, 해당 서브 카테고리와 관련된 변수만 표시되어 적절한 위치에 배치됩니다.
Android 및 iOS의 경우 다음을 사용하는 것이 좋습니다.
r.EarlyZPass=3
r.Mobile.EarlyZPassOnlyMaterialMasking=1
일반 플랫폼 명령
이 섹션의 콘솔 변수는 자체 플랫폼별 환경설정 파일에 저장됩니다.
예를 들어 iOS나 Android 등의 경우 프로젝트에 [MyProject]/Config/<PlatformName> 폴더가 있을 수 있습니다. 이 폴더에는 <Platform>Engine.ini라는 이름의 환경설정 파일을 둘 수 있습니다.
헤어 스트랜드 퀄리티 세팅
다음 헤어 명령은 메타휴먼의 헤어 퀄리티를 향상하고, 끌 수 있는 세팅을 파악하여 퍼포먼스를 높이는 데 도움이 됩니다.
다음 명령을 사용하면 헤어가 캐릭터에 드리우는 섀도를 한층 세밀하게 표현할 수 있습니다. 또한 헤어 그룸을 통해 라이트가 투과될 때 보다 세밀한 디테일을 제공합니다. 이러한 명령은 디폴트 값과 비교하여 GPU 시간과 GPU 메모리를 더 많이 사용하는 대신, 더 나은 퀄리티를 제공합니다.
<Platform>Engine.ini 파일에 다음을 추가합니다.
r.HairStrands.Voxelization.Raymarching.SteppingScale=1
r.HairStrands.Voxelization.Raymarching.SteppingScale.Shadow=1
r.HairStrands.Voxelization.Raymarching.SteppingScale.RayTracing=1
r.HairStrands.Voxelization.Virtual.VoxelWorldSize=0.1
r.HairStrands.Voxelization.Virtual.VoxelPageCountPerDim=4
치수별 복셀 페이지 수는 퍼포먼스를 향상하지만 대신 퀄리티가 저하됩니다.
다음 세팅을 통해 메타휴먼의 퀄리티와 룩은 물론이고 GPU 퍼포먼스도 향상할 수 있습니다.
| 콘솔 변수 | 설명 | 변경된 값 |
|---|---|---|
| 인바이런먼트 라이팅에서 그룸이 캐릭터의 페이스에 오클루전을 드리울 필요가 없는 경우, 스카이 라이트에서 앰비언트 오클루전을 비활성화할 수 있습니다. 이를 비활성화하면 GPU 시간을 다소 절약할 수 있습니다. | 0 |
| 픽셀당 헤어 샘플 수를 제어합니다. 샘플 수를 늘리면 퀄리티는 향상되지만 프레임당 비용이 더 많이 듭니다. | 2 |
| 이렇게 하면 쿠킹 프로세스에서 일부 헤어 LOD가 완전히 제거되어 타깃 디바이스에서 메모리를 차지하지 않습니다. 스트랜드 기반 그룸(메타휴먼 LOD 0 및 1과 함께 제공됨)은 메모리를 많이 사용하므로 모바일과 같은 플랫폼에는 적합하지 않습니다. | 3 |
언리얼 엔진 5.0부터 헤어 스트랜드는 패스 트레이싱을 사용하여 레이 트레이싱됩니다. 따라서 퍼포먼스 비용이 더 많이 듭니다.
플랫폼 엔진 퀄리티 오버라이드
언리얼 엔진은 다양한 프리셋 엔진 퀄리티 옵션을 제공합니다. 이러한 프리셋은 레벨 에디터 툴바의 세팅(Settings) > 엔진 퀄리티 세팅(Engine Scalability Settings)에서 액세스할 수 있습니다. 이 엔진 퀄리티 세팅은 개별적인 낮은 퀄리티를 시네마틱 퀄리티로 토글할 수 있으며, 각각 [UE Engine Path]/Engine/Config 폴더의 BaseScalability.ini 환경설정 파일에서 콘솔 명령 간에 토글할 수 있습니다.
이러한 디폴트 엔진 퀄리티 프리셋은 자체 프로젝트에 사용할 수 있으며, 플랫폼별로 오버라이드할 수도 있습니다. 프로젝트의 플랫폼별 프리셋을 오버라이드하려면 <Platform> 폴더를 생성한 다음 해당 폴더에 <Platform>Scalability.ini 파일을 넣어야 합니다(예: 폴더 이름은 Android, 환경설정 파일은 AndroidScalability.ini).
환경설정 파일 내에서 엔진 퀄리티 섹션의 명명 규칙을 동일하게 사용하고 자신만의 콘솔 변수 및 값 집합을 추가하여, 엔진 퀄리티를 오버라이드할 수 있습니다.
예를 들어 BaseScalability.ini에서 EffectsQuality@3]의 세팅을 바꾸려면 <Platform>Scalability.ini에 추가하면 됩니다:
[EffectsQuality@3]
r.TranslucencyLightingVolumeDim=64
r.RefractionQuality=2
r.SSR.Quality=3
모바일 플랫폼용으로 구성된 몇 가지 예제를 보려면 메타휴먼 샘플 프로젝트를 다운로드하고 Config 폴더로 이동합니다. iOS 및 Android용으로 구성된 예제를 찾을 수 있습니다.
유용한 플랫폼 엔진 퀄리티 세팅
다음 세팅은 퀄리티와 퍼포먼스를 제어하는 데 유용합니다.
| 콘솔 변수 | 설명 | 변경된 값 |
|---|---|---|
| 벌리 서브서피스 스캐터링을 토글하여 더 나은 퍼포먼스를 위해 스캐터링을 별개의 트랜스미션으로 실행하도록 예비 전환합니다. | 0 |
| 서브서피스 스캐터링 알고리즘의 일부를 절반의 해상도로 실행합니다. 해상도는 낮아지지만 렌더링 속도는 빨라집니다. | 1 |
| 프로젝트의 모든 그룸 엘리먼트 스트랜드 대신 카드 및 메시 지오메트리를 사용하도록 강제합니다. 사용할 수 있는 카드 지오메트리가 없는 경우에는 아무것도 표시되지 않습니다. | 1 |
나나이트와 루멘
메타휴먼은 루멘 글로벌 일루미네이션과 함께 작동합니다. 하지만 나나이트 가상화 지오메트리는 스켈레탈 메시를 지원하지 않으므로 메타휴먼과 함께 작동하지 않습니다.