이 페이지에서는 메타휴먼을 언리얼 엔진 프로젝트에 로드하여 효과적으로 사용하기 위해 필요한 모든 요구 사항에 대한 레퍼런스 정보를 제공합니다. 여기에는 필요한 모든 프로젝트 세팅, 플러그인, 콘솔 변수가 포함됩니다. 또한, 이 페이지에서는 메타휴먼 작업에 유용한 관련 세팅 및 명령들도 다룹니다.
메타휴먼을 위한 언리얼 엔진 요구 사항
처음 언리얼 엔진으로 메타휴먼을 가져오면 누락된 프로젝트 세팅, 플러그인, 콘솔 명령을 활성화하라는 팝업 메시지가 표시됩니다. 이러한 항목이 설정되어 있지 않으면 메타휴먼이 작동하지 않거나 제대로 로드되지 않을 수 있습니다.
세팅, 플러그인, 콘솔 명령을 활성화해야 한다는 팝업 메시지. 이미지를 클릭하면 최대 크기로 볼 수 있습니다.
이 메시지가 나타나면 누락된 세팅을 활성화(Enable Missing) 를 눌러 해당 프로젝트 세팅 및 플러그인을 프로젝트에 추가합니다. 재시작하라는 메시지가 표시되면 재시작(Restart) 을 눌러 프로젝트를 다시 로드해야 이 세팅 및 플러그인이 활성화됩니다.
다음 섹션에서는 메타휴먼 에셋에서 활성화 및 요구되는 플러그인, 프로젝트 세팅, 콘솔 변수의 전체 목록을 자세히 설명합니다.
프로젝트 세팅 및 콘솔 변수
다음 프로젝트 세팅 및 콘솔 변수는 퀵셀 브리지에서 메타휴먼을 처음으로 임포트할 때 활성화하도록 요구됩니다. 이러한 프로젝트 세팅 및 콘솔 변수는 프로젝트 루트 디렉터리에 위치한 Config 폴더의 DefaultEngine.ini 환경설정 파일에 추가됩니다. 예를 들면 [MyProject]/Config
와 같습니다.
환경설정 파일에서 이러한 명령은 [ConsoleVariables]
및 [/Script/Engine.RendererSettings]
섹션 아래에 추가됩니다.
콘솔 변수 | 설명 | 필수 값 |
---|---|---|
r.GPUSkin.Support16BitBoneIndex |
스켈레탈 메시의 개별 섹션 렌더링에서 256개를 초과하는 본 인덱스 지원을 활성화합니다. | True |
r.GPUSkin.UnlimitedBoneInfluences |
GPU 스키닝에 기본 4/8 대신 무제한 본 인플루언스를 사용할지 여부입니다. 이는 런타임에서 변경할 수 없습니다. | True |
r.SkinCache.BlendUsingVertexColorForRecomputeTangents |
노멀이 다른 스켈레톤 메시와 일치하도록 탄젠트가 스켈레탈 메시의 일부 버텍스에서 재계산됩니다. 옵션 2는 이 연산을 위해 녹색 버텍스 컬러를 사용합니다. 예를 들어 메타휴먼에서 별도의 스켈레탈 메시가 머리와 목, 몸에 사용됩니다. 이 명령은 목 버텍스가 몸 버텍스와 올바르게 일치되도록 합니다. | 2 |
r.SkinCache.CompileShaders |
GPU 연산 스키닝 캐시 셰이더를 컴파일할지 여부입니다. 계산 작업에서 스키닝에 대한 셰이더를 컴파일하며 버텍스 셰이더에서는 컴파일하지 않습니다. | True |
r.SkinCache.DefaultBehavior |
스킨 캐시 계산 지원(Support Compute Skin Cache) (r.SkinCache.CompileShaders )이 활성화되어 있는 경우, 이는 모든 스켈레탈 메시가 기본으로 스킨 캐시를 사용하는 것은 아님을 의미합니다. 스킨 캐시를 사용하려면 이 콘솔 변수를 사용 설정해야 합니다. 모든 메타휴먼 메시는 사용하도록 설정되어 있습니다. |
0 |
SkeletalMesh.UseExperimentalChunking |
MAX_GPUSKIN_BONES 가 설정되면 이 프로퍼티는 생성되는 스킨을 입힌 '청크'의 수를 줄입니다. 이는 목이나 상반신 주변 등 버텍스가 일치해야 하는 부분에 이음새 선 등 아티팩트가 발생할 수 있다는 뜻입니다. |
1 |
fx.Niagara.ForceLastTickGroup |
나이아가라 순서/종속성이 다른 모든 헤어 그룹 이후 마지막 틱 그룹에서 평가되도록 강제합니다. 비활성화되면 나이아가라가 피직스 에셋 업데이트 전에 평가되어, 콜리전이 한 프레임 늦게 발생하는 경우가 있을 수 있습니다. | |
1 |
이러한 변경사항을 적용하려면 에디터를 재시작해야 합니다.
플러그인
다음 플러그인은 퀵셀 브리지에서 메타휴먼을 처음으로 임포트할 때 활성화하도록 요구됩니다. 모두 언리얼 엔진에 포함되어 있으며, 창(Windows) > 플러그인(Plugins) 브라우저에 위치합니다.
플러그인 | 설명 |
---|---|
그룸(Groom) | 언리얼 엔진에서 헤어 그룸 시뮬레이션 및 렌더링을 지원합니다. |
릭 로직 플러그인 v6.2.0(Rig Logic Plugin v6.2.0) | 3래터럴의 페이셜 애니메이션 릭을 지원합니다. |
라이브 링크(Live Link) | 일반 인터페이스를 사용하여 Maya나 Motionbuilder 같은 DCC 툴을 통해 외부 소스에서 언리얼 엔진으로 애니메이션 데이터를 스트리밍하도록 지원합니다. 라이브 링크를 사용하면 언리얼 엔진 내에서 실시간으로 작업을 미리 보면서 애니메이션을 외부에서 편집할 수 있습니다. 모션 캡처 시스템 역시 라이브 링크를 사용하여 엔진에 데이터를 스트리밍하고 실시간으로 미리 볼 수 있습니다. 자세한 내용은 라이브 링크 플러그인을 참조하세요. |
라이브 링크 컨트롤 릭(Live Link Control Rig) | 컨트롤 릭을 통해 라이브 링크 데이터를 지원합니다. |
컨트롤 릭(Control Rig) | 리거에게 아티스트 친화적 인터페이스를 통해 유연하고 다이내믹한 프로시저럴 캐릭터를 생성할 수 있는 툴을 제공하도록 설계된 노드 기반 리깅 시스템을 지원합니다. 자세한 내용은 컨트롤 릭을 참조하세요. |
메가스캔(Megascans) | 콘텐츠를 퀵셀 브리지에서 언리얼 엔진으로 원활하게 익스포트하도록 지원합니다. |
이러한 변경사항을 적용하려면 에디터를 재시작해야 합니다.
메타휴먼용 추가 콘솔 명령
다음 섹션에서는 특정 환경설정(*.ini) 파일에 추가하여 사용할 수 있는 몇 가지 부가적 콘솔 명령을 다룹니다.
모바일 메타휴먼
모바일 플랫폼에서 스키닝한 캐릭터의 본은 최대 75개로 제한됩니다. 이 제한은 모바일 GPU에서 단일 드로 콜로 스킨에 사용될 수 있는 본의 최대 수를 나타냅니다. 메타휴먼이 디플로이되는 모바일 디바이스에서 로드 및 실행 가능하게 하려면 프로젝트의 DefaultEngine.ini 환경설정 파일에 다음 명령을 추가합니다. [ConsoleVariables]
섹션 아래에 배치합니다.
Compat.MAX_GPUSKIN_BONES=75
DefaultDeviceProfiles.ini
디바이스 프로파일에서는 디바이스 및 플랫폼별 환경설정에 사용할 수 있는 옵션을 제공합니다. 이 옵션을 통해 디바이스 프로파일에서 엔진 퀄리티, 렌더링, 텍스처 등 해당 디바이스 또는 플랫폼에만 영향을 미치는 여러 프로퍼티를 설정할 수 있습니다.
툴(Tools) > 플랫폼(Platforms) 메뉴에서 액세스 가능한 디바이스 프로파일(Device Profiles) 창에서 디바이스 프로파일 옵션을 관리 및 설정할 수 있습니다. 또는 자신의 DefaultDeviceProfiles.ini 환경설정 파일을 프로젝트의 Config 폴더에 수동으로 추가할 수도 있습니다.
이미지를 클릭하면 최대 크기로 볼 수 있습니다.
텍스처 LOD 그룹
메타휴먼이 사용하는 대형 8K 텍스처는 일부 디바이스와 플랫폼에는 적합하지 않습니다. TextureLODGroups를 사용하여 TextureGroups 전용 최소 및 최대 LOD(밉)를 관리하세요. 이는 텍스처 에디터의 밉 생성 세팅(Mip Gen Settings) 에서 설정 가능합니다.
모바일 디바이스에서는 최대 텍스처 크기에 따라 환경설정 파일의 최대 LOD 크기(MaxLODSize) 와 관련된 값이 변경되어야 합니다.
또는 에디터 내의 디바이스 프로파일(Device Profiles) 창을 사용하여 편집할 디바이스 또는 플랫폼을 선택할 수도 있습니다. 텍스처 LOD 그룹(Texture LODGroups) 열 아래에서 연필 아이콘을 클릭합니다.
이미지를 클릭하면 최대 크기로 볼 수 있습니다.
편집할 텍스처 그룹(World, WorldNormalMap 등)을 선택합니다. 카테고리를 펼치고 최대 LOD 크기(Max LOD Size) 를 변경합니다.
이미지를 클릭하면 최대 크기로 볼 수 있습니다.
지원되는 플랫폼 및 최적의 텍스처 크기에 대한 자세한 내용은 플랫폼 및 LOD 사양 페이지를 참조하세요.
얼리 Z 패스 컬링
얼리 Z 패스(Early Z Pass) 는 베이스 패스에서 뎁스 온리 컬링을 초기화하는 데 사용됩니다. 모바일 및 기타 유형의 플랫폼에서는 이를 통해 헤어를 더 빠르게 렌더링할 수 있습니다.
Android, iOS와 같은 모바일 디바이스에서는 콘솔 명령 항목 앞에 +CVars= 를 추가하여 원하는 플랫폼의 환경설정 파일에 콘솔 변수를 추가할 수 있습니다. 예시는 다음과 같습니다.
+CVars=r.EarlyZPass=3
또는 에디터 내의 디바이스 프로파일(Device Profiles) 창을 사용하여 편집할 디바이스 또는 플랫폼을 선택할 수도 있습니다. CVar 열 아래에서 연필 아이콘을 클릭합니다.
이미지를 클릭하면 최대 크기로 볼 수 있습니다.
콘솔 변수(Console Variables) 카테고리에서 더하기(+) 아이콘을 눌러 추가할 콘솔 변수와 관련된 서브 카테고리를 펼칩니다. 카테고리의 관련 콘솔 변수 안에서 검색하여 해당 서브 카테고리에 해당되는 것만 표시한 후 적절한 위치에 넣을 수도 있습니다.
이미지를 클릭하면 최대 크기로 볼 수 있습니다.
Android 및 iOS의 경우 다음을 사용하는 것을 권장합니다.
r.EarlyZPass=3
r.Mobile.EarlyZPassOnlyMaterialMasking=1
일반 플랫폼 명령
이 섹션의 콘솔 변수는 플랫폼별 고유한 환경설정 파일에 저장됩니다.
예를 들면 프로젝트에 플랫폼 이름이 iOS나 Android인 [MyProject]/Config/
헤어 스트랜드 퀄리티 세팅
다음 헤어 명령은 메타휴먼의 헤어 퀄리티를 높이는 데 도움이 됩니다. 또한 비활성화해도 되는 세팅을 파악하여 퍼포먼스를 개선합니다.
미세한 디테일의 헤어 섀도잉
다음 명령은 헤어에 의해 캐릭터에 드리우는 섀도의 미세한 디테일을 활성화합니다. 또한 라이트가 헤어 그룸을 투과할 때의 미세한 디테일도 구현합니다. 디폴트값과 비교하여 이 명령은 GPU 시간 및 GPU 메모리를 더 많이 소모하는 대신 더 나은 퀄리티를 제공합니다.
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 퍼포먼스를 향상할 수 있습니다.
콘솔 변수 | 설명 | 변경된 값 |
---|---|---|
r.HairStrands.SkyAO |
환경 라이팅이 캐릭터의 페이스에 그룸으로 드리워진 오클루전을 구현하지 않아도 되는 경우, 스카이 라이트로 드리워지는 앰비언트 오클루전을 비활성화할 수 있습니다. 비활성화하면 GPU 시간이 어느 정도 절약됩니다. | 0 |
r.HairStrands.Visibility.MSAA.SamplePerPixel |
픽셀당 헤어 샘플의 수를 제어합니다. 샘플 수를 늘리면 퀄리티가 높아지지만 프레임당 비용도 증가합니다. | 2 |
r.HairStrands.MinLOD |
쿠킹 프로세스에서 헤어 LOD 일부를 완전히 제거하여 LOD가 타깃 디바이스의 메모리를 차지하지 않게 합니다. 메타휴먼의 LOD 0 및 1이 제공되는 스트랜드 기반 그룸의 경우 메모리를 많이 사용하므로 모바일과 같은 플랫폼에는 적합하지 않습니다. | 3 |
언리얼 엔진 5.0부터 헤어 스트랜드는 패스 트레이싱을 사용하여 레이 트레이스됩니다. 그에 따라 퍼포먼스 측면에서 비용이 많이 듭니다.
플랫폼 엔진 퀄리티 오버라이드
언리얼 엔진은 다수의 프리셋 엔진 퀄리티 옵션을 제공합니다. 이 프리셋은 레벨 에디터 툴바에서 세팅(Settings) > 엔진 퀄리티 세팅(Engine Scalability Settings) 을 통해 액세스할 수 있습니다. 이러한 엔진 퀄리티 세팅에서는 개별 프리셋을 낮은 퀄리티부터 시네마틱 퀄리티까지 토글할 수 있으며, 각 항목은 [UE 엔진 경로]/Engine/Config
폴더에 있는 BaseScalability.ini 환경설정 파일의 콘솔 명령을 토글합니다.
이미지를 클릭하면 최대 크기로 볼 수 있습니다.
이 기본 엔진 퀄리티 프리셋을 자신의 프로젝트에 사용하고 플랫폼별로 오버라이드할 수도 있습니다. 프로젝트에서 플랫폼별 프리셋을 오버라이드하려면
환경설정 파일 내에서 엔진 퀄리티 섹션과 동일한 명명 규칙을 사용하고 자체 콘솔 변수 및 값 세트를 추가하여 대체하는 방법으로 엔진 퀄리티를 오버라이드할 수 있습니다.
예를 들어 BaseScalability.ini에서 [EffectsQuality@3]의 세팅을 대체하려면 Windows 등의
[EffectsQuality@3]
r.TranslucencyLightingVolumeDim=64
r.RefractionQuality=2
r.SSR.Quality=3
모바일 플랫폼을 위한 구성 예시를 보려면 메타휴먼 샘플 프로젝트를 다운로드하고 Configs 폴더로 이동하세요. iOS 및 Android용 구성 예시를 확인할 수 있습니다.
유용한 플랫폼 엔진 퀄리티 세팅
다음은 엔진 퀄리티 옵션에 추가하여 퀄리티와 퍼포먼스를 제어하는 데 유용한 몇 가지 세팅입니다.
콘솔 변수 | 설명 | 변경된 값 |
---|---|---|
r.SSS.Burley.Quality |
Burley 서브서피스 스캐터링을 토글하여 분리 가능한 투과로 스캐터링을 실행하도록 예비 전환함으로써 퍼포먼스를 개선합니다. | 0 |
r.SSS.HalfRes |
서브서피스 스캐터링 알고리즘의 일부를 절반의 해상도로 실행되게 합니다. 그 결과, 해상도가 낮아지지만 렌더링이 빨라집니다. | 1 |
r.HairStrands.UseCardsInsteadOfStrands |
프로젝트의 모든 그룸 엘리먼트가 스트랜드 대신 카드 및 메시 지오메트리를 사용하게 합니다. 사용 가능한 카드 지오메트리가 없는 경우 아무것도 표시되지 않습니다. | 1 |
나나이트 및 루멘
메타휴먼은 루멘 글로벌 일루미네이션에서 작동합니다. 하지만 나나이트 가상화 지오메트리는 스켈레탈 메시를 지원하지 않으므로 메타휴먼이 작동하지 않습니다.