31. 게임 심화: 명조(Wuthering Waves)
[B] 이 문서는 명조의 “특정 구현”을 복제하는 글이 아니라, 공개된 단서(OFF)와 반복되는 역분석 패턴(B)을 URP에서 재현 가능한 설계 규칙으로 바꿔 적는 문서입니다.
- [A/B] 읽는 목적: “명조처럼 보이게”가 아니라, “필드 + 캐릭터가 같이 있는 게임에서 NPR 룩을 무너뜨리지 않는 계약”을 확보
- [B] 핵심 키워드: 하이브리드(배경 효율 vs 캐릭터 제어), face/hair/outline의 강한 제약, temporal(velocity) 안정화
목적
- [A] 공식 발표(UFSH/인터뷰) 기반 단서를 URP 설계로 변환한다.
- [B] 커뮤니티 역분석의 반복 기술을 분해한다.
증거 등급 요약(A/B/C)
- [A] one-pass defer 계열, TAAU, velocity, hybrid 경로 단서
- [B] Face SDF, LUT 분할, hair highlight, outline 패턴
- [C] 내부 버퍼/정확한 패스 순서
핵심 개념
서론: “오픈 월드 + 근접 캐릭터”는 렌더링 목표가 충돌한다
- [A/B] 월드는 광원 수/면적/원거리 가시성이 중요하고, 캐릭터는 얼굴/헤어/실루엣 일관성이 중요하다.
- [B] 그래서 단일 경로(완전 PBR 또는 완전 toon)로는 둘 중 하나가 무너지는 경우가 많고, 하이브리드로 수렴한다.
개론: 공개 단서로 고정되는 ‘맥락’만 먼저 잠근다
- [A] OFF(공식)로 고정 가능한 건 보통 “플랫폼/엔진/기능 방향성”이다. 수식/버퍼 포맷까지 확정되지 않는다.
- [A/B] 따라서 이 문서는 아래 2단계로 기록한다.
- [A/B] 1) OFF로 “방향성”을 잠근다(예: temporal/리프로젝션 중요, 하이브리드 필요성).
- [B] 2) B로 “반복 패턴”을 잠근다(예: face SDF + head space, dual-lobe hair, LUT 패킹, 다색 outline).
분석 관점
- [A/B] 명조 계열 관찰의 핵심은 월드와 캐릭터의 목적 함수가 다르다는 점이다. 월드는 광량/스케일 효율이 우선이고, 캐릭터는 얼굴/헤어의 일관성이 우선이다.
- [A/B] deferred 성향 단서가 존재해도 캐릭터 구간은 forward 성격의 선택 제어가 필요해 하이브리드 구조로 수렴한다.
- [B] Face SDF, Hair Flow, LUT 분할은 독립 효과가 아니라 근접 카메라에서 표정과 실루엣을 보존하기 위한 연동 전략으로 해석해야 한다.
구현 해석 포인트
- [A] temporal 계층(
T012)을 후순위로 두면 라인/하이라이트가 먼저 무너져 전체 스타일이 붕괴한다. - [C] 패스 순서가 비공개인 구간은 확정 대신 후보 순서를 병기하고, 회귀 테스트로 범위를 좁히는 접근이 안전하다.
심화: URP 전이 로드맵(추천 순서)
- [B] 0단계(기본 계약): 20장의 pass 계약을 만족하는 Lit 호환 셰이더(18장)부터 확보한다.
- [B] 1단계(룩의 뼈대):
T001(램프+ID) +T005(LUT 패킹)으로 “부위별 반응”을 고정한다. - [B] 2단계(얼굴/헤어):
T002(Face SDF) +T003(Hair lobe/flow)로 근접 카메라 안정성을 만든다. - [B] 3단계(실루엣):
T006/T007(다색 outline/선폭) +T008(rim/edge)로 가독성을 고정한다. - [A/B] 4단계(시간축):
T012(velocity 기반 temporal)로 잔상/플리커를 최종 정리한다. - [A/B] 5단계(파이프라인): 프로젝트 규모/플랫폼에 따라
T013/T014로 월드 효율을 분리한다.
기술 포인트 매핑
| 번호 | 기술 포인트 | 등급 |
|---|---|---|
| 1 | Hybrid PBR+NPR | A |
| 2 | One-pass defer 최적화 방향 | A |
| 3 | 캐릭터 velocity 강조 | A/B |
| 4 | Face SDF 좌우 flip | B |
| 5 | LUT 기반 재질 분할 | B |
| 6 | Hair flow spec | B |
| 7 | Depth/ID rim/outline | B |
| 8 | AA/톤 순서 민감성 | A/B |
| 9 | 식생 imposter/billboard | A/B |
결론: 이 문서에서 ‘확정’해야 하는 문장
- [A/B] 명조를 따라갈 때 가장 먼저 고정할 것은 “특정 수식”이 아니라, 캐릭터 룩을 고정하기 위한 데이터/패스/temporal 계약이다.
- [B] 구현은 35~46의 기술 문서로 분해해 적용하고, 47 매트릭스에서 우선순위를 확정한다.
URP 매핑 포인트
설계 해석
-
[A/B]
T013적용 기준은 순수 성능이 아니라 캐릭터 룩 고정 가능성이다. -
[B]
T002/T003/T006는 캐릭터 머티리얼 계약과 함께 배치하고T012는 포스트 마지막 단계에서 안정화한다. -
[A/B] T013: 불투명과 캐릭터 특수 경로 분리
-
[B] T002/T001/T003/T006 적용
-
[A/B] T012: MotionVectors pass 보장
실패 패턴/오해
- [B] 얼굴 SDF를 월드축 기준으로 계산
- [B] LUT 축/행 정의 혼동
- [A/B] velocity 누락으로 ghost 증가