Frame at 0.00s
# MetaHuman 여정: Mafia the Old Country 제작 비하인드 Ivan Cerevko (Principal Character Artist, Hangar 13)가 **Mafia the Old Country** 프로젝트에서 MetaHuman 기술을 활용한 헤어 및 헤드 제작 파이프라인에 대해 발표합니다. ## 1. MetaHuman 도입 이유 및 프로젝트 비전과의 부합 * **고품질 리얼리즘:** * 스토리 중심의 사실적인 아트 디렉션을 가진 게임이므로, 스토리 캐릭터의 품질 향상이 중요했습니다. * MetaHuman Rig는 미묘한 감정 표현까지 가능한 고품질 애니메이션을 달성하는 데 도움을 주었습니다. * **워크플로우 효율성:** * 시간 및 예산 제약으로 NPC 에셋 스캔은 불가능했습니다. * MetaHuman을 통해 약 3개월 만에 메인 캐릭터와 유사한 품질의 100개 이상의 NPC 에셋을 제작했습니다. * DNA Calibrator와 커스텀 툴을 사용하여 몇 분 안에 전체 리그 설정을 업데이트하거나 재생성하는 유연성을 확보했습니다. * **유연성 및 Unreal 5 통합:** * 생산 후반 단계에서도 리그나 애니메이션 손상 위험 없이 에셋을 반복 수정할 수 있었습니다. * 기본 헤드에서 애니메이션을 생성한 후, 준비된 에셋에 적용하는 것이 일반적이었습니다. * Unreal 5.1 기반 개발 시작 후, DNA Calibrator 릴리스로 에셋 확장성 유연성이 크게 향상되었습니다. * 메인 캐릭터의 디테일과 NPC 캐릭터의 최적화가 중요했습니다. ## 2. 워크플로우 개요 | 캐릭터 유형 | 제작 방식 | Unreal Engine 구현 | | :---------- | :------------------------------------------------------------------------------------------------------ | :---------------------------------------------------------------------------- | | **메인 캐릭터** | 스캔 + Mesh2MetaHuman 플러그인 (스캔 전, MetaHuman 측정값에 맞게 1차 클린업 수행)
- 중립적인 표정만 처리 (공통 MetaHuman 표정 풀 공유) | - | | **NPC 캐릭터** | MetaHuman Creator에서 스토리/컨셉 기반 직접 생성 | 군중 장면에서 성능 친화적인 최적화 추가 | ### 2.1. 메인 캐릭터 워크플로우 예시 * **스캔 전 문제 해결:** 배우의 기울어짐이나 옆으로 치우침을 스캔 전에 수정하는 것이 중요합니다. * **얼굴 특징 블렌딩:** * 입 안쪽: 100% 블렌딩으로 입술 변형 시 깔끔한 슬라이딩 변형 유지. * 눈꺼풀: 메쉬 관통 문제 시 약 40% 블렌딩 사용. * **MetaHuman 측정값에 맞추기:** * 베이스 헤드를 정렬 포인트로 사용 (남성, 여성, 브루드, 아동 4가지 유형). * 베이스 헤드의 얼굴 영역은 MetaHuman Creator 그대로 유지, 나머지 특징은 프로젝트 요구사항에 맞게 조정. * 베이스 헤드 토폴로지를 스캔에 래핑하고, 두개골 및 목 부분을 블렌딩. * **Mesh2MetaHuman:** * Unreal 5.1 ~ 5.4.4 버전 사용. * Legacy 버전 Mesh2MetaHuman 플러그인 및 MetaHuman Creator 사용. * **추적:** 2~3개의 카메라 위치 사용, 눈꺼풀 가장자리 등 정밀도가 필요한 부분에 추가 트래커 적용. * **랜드마크:** 젊은 얼굴의 부드러운 특징으로 인해 트래커 조정 위치를 파악하기 어렵기 때문에 얼굴 특징 위에 추가 랜드마크 페인팅. * **MetaHuman Creator 조정:** * **입:** 기본 위치가 과도한 주걱턱을 유발하거나 너무 깊게 위치하는 문제 발생, 애니메이션 결과 예측 어려움. * **영웅 에셋:** 배우 참조 사진과 최대한 일치하도록 치아 모양 일치 작업 (입술-치아 접점 이동 고려). * **비영웅 에셋:** MetaHuman 결과물을 그대로 사용 가능한 경우 많음. * **메인 캐릭터:** MetaHuman 결과를 스캔 위에 래핑하는 추가 단계 수행 (메쉬 루프가 해당 특징에 올바르게 래핑되어야 왜곡 방지). * **ZBrush 패스:** * 래핑 후, 최종 토폴로지에 스캔 디테일 재투영 및 예술적 조정 추가. * 사용자 정의 표정 보상: 중립 표정에서 발생하는 날카로운 보조개를 피하기 위해 입꼬리 부분에 추가적인 퍼프 효과 적용. * 아트 디렉터 또는 애니메이션 팀 피드백 기반으로 헤드 특징에 작은 수정 적용 (특징 강조, 모공/주름 강도 증가 등). * **추가 3차 디테일:** * Texture XYZ 고품질 데이터와 디퓨즈 텍스처에서 추출한 디스플레이스먼트 맵 사용. * **커스텀 툴:** * DNA Calibrator 기반 인하우스 툴 개발 (조인트 및 정점 재배치). * **LOD 재구성:** * 원본 7개 LOD 대신 4개 LOD 사용. * **LOD0 (시네마틱):** MetaHuman LOD1 (시네마틱용). * **LOD1 (인게임 근접):** 메쉬 요소 수 감소. * **LOD2 (원거리):** 공격적인 최적화 (성능 중점). * **Eyeblur:** MetaHuman에 기본으로 없는 추가 메쉬. * **바디 메쉬:** * 4개 MetaHuman LOD 모두 사용. * **LOD0:** 발 부분에서 LOD0과 LOD1 블렌딩. * **보정 블렌드 셰이프:** LOD0 생략으로 보정 블렌드 셰이프도 생략. * **품질 저하 보상:** LOD0과 LOD1 간 메쉬 차이를 커스텀 주름 맵에 리베이킹. * **품질 우선:** 하이 폴리 메쉬에서 베이킹 (시간 소요). * **속도 우선:** Substance Designer에서 LOD 0과 1 차이 분리 후 기존 주름 맵과 결합. * **Substance Designer 활용:** * 베이킹 및 MetaHuman 소스 처리. * **WrinkleMap1:** 3개의 분리된 세트 베이킹 후 자동 결합. * **WrinkleMap2, 3:** 직접적인 프로세스. * **활용 이유:** * **자동화:** 수동 작업 최소화, 버그 방지. * **유연성:** 배치 업데이트, 새로운 파라미터 추가 용이. * **대용량 텍스처 관리:** 8K 해상도 MetaHuman 소스 관리 용이. * **툴 개선:** 초기 복잡한 노드 구조를 단일 노드로 통합하여 아티스트 친화적으로 변경. * **주요 텍스처 출력:** * **AO 맵:** 비방향성 AO와 월드 공간 노멀 맵의 녹색 채널 블렌딩. * **Cavity 맵:** 노멀 맵 최종 출력에서 추출 (스페큘러 분리 효과에 중요). * **처리된 컬러 맵.** * **노멀 맵.** * **컬러 맵 커스텀:** * 기본 MetaHuman 컬러 맵과 베이킹된 주름 맵에서 추출한 정보 결합. * **NPC 캐릭터 셰이더:** * 개별 텍스처 대신 저렴한 블렌딩 방식 사용. * 공유된 일반적인 주름 및 컬러 맵 풀 생성. * 3개의 컬러 맵을 단일 RGB 텍스처에 패킹. * 시네마틱 LOD가 필요한 경우에만 해당. * **셰이더 최적화 및 추가 기능:** * **시네마틱 마스크:** 먼지, 땀, 혈흔 효과 (지속적이고 중첩되는 효과). * **치아 변형:** 색상, 스케일, 손상 프리셋 (랜덤 스케일/손상은 월드 포지션 오프셋과 마스크 조합). * **눈 스페큘러 개선:** 게임 내 조명 한계로 인한 눈 표현의 사실성 부족 문제 해결 (카메라 정렬 반사 벡터 + 텍스처). * **눈 안개 및 폐색 메쉬:** * 초기: 단일 셰이더, 투명 블렌딩, 안개 적용. (예측 불가능한 음영, 안개 씬에서의 눈 광택 현상 발생). * 개선: 눈꺼풀 전환 및 눈꺼풀-안구 폐색 효과를 두 개의 분리된 셰이더와 메쉬로 분리. * **눈꺼풀 전환 (Eye Blur):** 투명 블렌딩, 안개 적용. * **눈꺼풀 폐색 셰이더:** Modulate 블렌딩, 안개 적용. * **캐릭터 진화 비교:** 수정 전후 비교 이미지. * **스토리 캐릭터 vs NPC 비교:** 커스텀 텍스처 vs 일반 텍스처 비교. NPC도 컷신에서 잘 유지됨. * **NPC 로우 폴리 메쉬 최적화:** * LOD 간 품질 저하 (표정, 노멀 맵) 발생. * LOD0 정보와 MetaHuman 소스 노멀 맵 결합. * 장거리 얼굴 음영 개선을 위해 LOD0 정보 최종 LOD에 베이킹 (256x256 텍스처 사용). * **MetaHuman 최적화:** * **LOD:** 총 4개 사용 (MetaHuman LOD1 -> 게임 LOD0, LOD6 -> 최하단 LOD). * **동적 LOD 시스템:** 화면 내 캐릭터 수에 따라 LOD 거리 동적 조절. * **후처리 토글 및 LOD 로우 레벨 전환.** * **커스텀 틱 배치 (게임 스레드).** * **Half-Res Subsurface Scattering (게임 내).** ## 3. 헤어: 미세한 컷을 만들 것인가, 말 것인가? (To groom or not to groom?) ### 3.1. 스트랜드 기반 시스템 (Strand-based System) * **장점:** * **유연한 수정:** 반복 작업 및 예술적 작업에 용이. 기술적 수정보다 창의적 작업에 집중 가능. * **높은 시각적 충실도:** 사실적인 헤어 스페큘러, 두께, 그림자, 투과성 등. * **쉬운 전송 및 런타임 바인딩 (Unreal Engine):** 여러 에셋에 쉽게 적용 가능. * **단점:** * **성능 및 메모리 비용:** 렌더링 비용 높음, 프레임 속도 저하 가능성. 복잡한 헤어컷의 메모리 소비 증가. * **유지보수 어려움:** 게임 내 시나리오, 특히 콘솔 및 저사양 PC에서는 카드 기반 버전이 필요. 스트랜드와 카드 간의 품질 저하 방지가 어려움 (헤어컷을 두 번 만드는 것과 같음). ### 3.2. 카드 기반 시스템 (Card-based System) * **장점:** * **일관된 확장성:** 아티스트가 거리별로 유지할 클램프를 정확히 선택 가능. * **강력한 최적화:** 헤어컷 내부 레이어 등에 개별 최적화 적용 가능. * **모듈성:** 리지드 메쉬로 모자 또는 의상 스와핑이 더 원활. 클립, 리본, 땋기 등에도 유리. * **예측 가능한 메모리 사용량.** * **단점:** * **긴 반복 시간:** 많은 수동 작업 필요. (영웅 헤어의 경우 10만 트라이앵글까지 증가). * **렌더링 문제:** 사실적인 셰이딩 달성 어려움, 알파 딜링 및 예측 불가능한 헤어 그림자 문제. ### 3.3. 프로젝트 결정 및 워크플로우 * **높은 폴리곤 수 유지:** 하이 폴리 헤어 생성의 장점 일부 활용. * **Groom Assets (Unreal Engine):** 자동 바인딩 이점 활용, 다양한 캐릭터 생성. * **워크플로우:** 1. **ZBrush 블록 아웃:** 예술적 문제 조기 해결. 2. **헤어 가이드 배치 (Ornatrix):** * 메인 캐릭터: 전체 헤어컷 Ornatrix에서 작업. * NPC: 초기 카드 배치를 위한 중간 단계. 3. **카드 지오메트리:** * **프록시 카드 (Hero):** 높은 폴리곤 수, 절차적 모디파이어 활용. * **바운드 카드 (NPC):** 더 세밀한 제어 (GS curve 플러그인 활용). 4. **Unreal Engine 구현:** * NPC 및 영웅 에셋 구현 동일 (물리만 다름). * 물리가 필요한 경우 스켈레탈 메쉬 사용 (Groom Assets 물리 비용 높음). * **실용적인 부분:** * **ZBrush 블록 아웃:** 헤어 레이어링, 볼륨, 실루엣 확립. * **가이드 배치:** Ornatrix 활용 (수동 일반 모양 추적 + Ornatrix 스트랜드 멀티플라이어). * **영웅 헤어컷:** 프록시 메쉬 옵션 사용 (하이 폴리 헤어처럼 절차적 모디파이어 활용). * **NPC 헤어컷:** Ornatrix에서 추출한 커브에 바인딩된 카드 (Maya의 JS curve 플러그인 활용). * **짧은 머리, 페이셜 헤어, 퍼:** 절차적 생성 (전체적인 모양 제어 중점). * **프록시 메쉬 적용:** 하이 폴리 줌 위에 프록시 메쉬 적용 (수정자 활용). * **Unreal Engine 구현:** * **Groom Export:** Ornatrix Alembic, 카드 지오메트리 정적 메쉬로 내보내기. * **스트랜드 사용 안 함:** LOD 0부터 카드로 표시 가능하게 엔진 수정. * **LOD:** 4개 사용 (각 LOD 50% 이상 감소). 최하단 LOD는 솔리드 쉘 메쉬와 최적화된 셰이더 사용. * **눈썹:** LOD 0에만 카드 사용, 나머지 LOD는 눈썹 쉘 텍스처 의존. * **페이셜 헤어:** 표준화된 설정 사용 (90% 시나리오). * **헤어컷:** 각 변형마다 고유 Alembic 설정 필요. * **텍스처:** 텍스처 입력 대신 셰이더 조정, 헤어 속성 노드로 재질에 정보 전달. * **헤어-스킨 전환:** 헤어 쉘 텍스처 사용. * 헤어컷 변경 없는 경우: 헤드 텍스처에 직접 페인팅. * 헤어컷 변경 시: 헤드 메쉬 위에 추가 쉘 토폴로지 추가 (메타휴먼 LOD1에서도 폴리곤 수 2배 증가, 추가 드로우 콜 발생). * **대안:** 헤드 메쉬의 두 번째 UV 세트 사용 (헤어 쉘이 헤드와 단일 드로우 콜 공유, 스킨 텍스처와 직접 블렌딩). * **Groom 최적화:** * 카드 사용, 스트랜드 미사용. * 로우 LOD: 스킨드 대신 리지드 모드, 인스턴스 버퍼 정리. * **부모 바운드 사용, 가능한 경우 틱 비활성화.** * 최하단 LOD: 단순 정적 메쉬 쉘 (폴백). * **가장 중요한 최적화:** **모자 착용!** ## 4. 최종 결과 및 감사 * **다양한 렌더링 예시:** NPC 및 영웅 헤어컷, 짧은 헤어컷. * **이스터 에그:** 마피아 1의 강아지 모자 (Baskerville Outfit) 전통 계승. * **강아지 컷신:** MetaHuman 활용. * **감사:** 팀원들의 노고와 지원에 대한 감사 인사.