뮤터블은 프로젝트를 패키징할 때 다른 에셋과 마찬가지로 데이터도 패키징합니다.
뮤터블은 런타임 때 커스터마이징 가능 오브젝트의 소스 그래프를 사용하지 않습니다. 대신 블루프린트나 머티리얼처럼 이 소스 그래프를 더 효율적인 표현으로 변환하고 에셋에서 제거합니다.
소스 그래프의 메시와 텍스처 대부분은 뮤터블의 내부 포맷으로 처리되고 저장됩니다. 이렇게 처리된 리소스는 .pak/.ucas 컨테이너에 패킹됩니다. 뮤터블로 변환된 소스 에셋은 외부에서 참조하지 않는 한 빌드에 포함되지 않습니다.
처리되지 않은 에셋은 패키지에 표준 언리얼 에셋으로 포함됩니다. 다음은 빌드에 포함할 수 있는 에셋의 목록입니다.
패스스루 메시 및 텍스처(뮤터블이 건드리지 않음)
- 머티리얼
- 스켈레톤
- 레퍼런스의 스켈레탈 메시
- 구워진 인스턴스(더 이상 뮤터블 에셋이 아님)
패키징 옵션
- 베이스 커스터마이징 가능 오브젝트는 쿠킹 단계에서 컴파일됩니다. 뮤터블은 런타임 퍼포먼스와 텍스처 퀄리티를 향상하기 위해 베이스 오브젝트에 지정된 일부 컴파일 옵션을 오버라이드합니다. 최적화 레벨은 최대(Maximum) 로 설정되고 텍스처 압축은 고퀄리티(High Quality) 로 설정됩니다.
벌크 데이터 파일
처리된 리소스는 벌크 데이터 파일에 저장되고, 인스턴스를 생성할 때 필요에 따라 스트리밍됩니다. 이러한 파일은 두 가지 포맷으로 저장할 수 있습니다.
- 벌크 데이터 포맷(
.ubulk및.uptnl) - 뮤터블 포맷(
.mut및.mut.high)
벌크 데이터 포맷
벌크 데이터(.ubulk)는 바이너리 블롭의 표준 파일 포맷입니다. 권장되는 디폴트 포맷입니다. 벌크 데이터의 장점으로는 온디맨드 콘텐츠와의 호환, 옵션 데이터 사용 가능, 대규모 프로젝트에서 특히 돋보이는 약간 더 빠른 로드 시간, 다른 표준 UE 기능과의 더욱 원활한 통합 등이 있습니다.
반면, 제한된 수의 .ubulk 파일만 생성할 수 있으므로 경우에 따라 더 나쁜 패치 결과를 생성할 수 있습니다.
뮤터블 포맷
뮤터블 포맷(.mut 및 .mut.high)의 주요 장점은 출력을 더 제어할 수 있다는 점입니다. 생성 가능한 파일 수에 제한이 없어 환경설정만 적절하면 더 낳은 패치 결과를 낼 수 있습니다. 생성된 파일의 최대 크기를 줄이면 파일 개수가 더 많아지고 세분화됩니다.
뮤터블 파일의 최대 크기는 컴파일 옵션에서 패키징된 데이터 파일 최대 제한(Packaged Data File Max Limit) 값을 수정하여 오브젝트별로 설정할 수 있습니다. 이 세팅은 프로젝트를 패키징할 때만 적용됩니다.
단점은 일부 UE 기능과 잘 연동되지 않는다는 점입니다. 온디맨드 콘텐츠와 선택적인 벌크 데이터 파일은 지원되지 않습니다.
뮤터블 패키징 옵션입니다.
임베드된 벌크 데이터
일부 벌크 데이터 블롭은 너무 작아 스트리밍하기에는 효율적이지 않을 수 있습니다. 크기 제한을 두면 스트리밍할 벌크 데이터 파일과 오브젝트에 임베드할 벌크 데이터 파일을 가를 수 있습니다. 임베드된 리소스는 메모리를 추가로 사용하지만, 퍼포먼스는 향상될 수 있습니다.
컴파일 옵션의 임베드된 데이터 제한(Embedded Data Limit) 세팅은 임베드되는 데이터의 한계치를 설정합니다. 256 바이트 값이 보통 가성비 측면에서 합리적입니다.
커스터마이징 가능 오브젝트 인스턴스 에셋
인스턴스도 빌드에 패킹되지만, 파라미터 값만 포함하므로 크기는 무시해도 될 정도입니다. 이들 값은 커스터마이징 가능 오브젝트의 소스 그래프에서 파라미터를 추가하거나 제거하거나 변경할 수 있도록 이동하기 쉬운 방식으로 저장됩니다. 런타임 때 파라미터와 값이 검사되고 업데이트됩니다.
자세한 내용은 스토리지 및 리플리케이션의 해당 섹션을 참조하세요.