## The Ascent: 월드 빌딩을 위한 효율적인 파이프라인 구축
### 1. 게임 소개
* **The Ascent**: 디스토피아적 사이버펑크 미래를 배경으로 하는 솔로 및 협동 액션 RPG.
* **개발**: Neon Giant (스웨덴 인디 스튜디오, 11명 규모).
* **플랫폼**: PC, Xbox One, Xbox Series, PS4, PS5.
* **엔진**: Unreal Engine 4.
### 2. 핵심 도전 과제
* **신규 소규모 개발사**:
* 방대하고 복잡한 오픈 월드, 밀집된 SF 도시 경관 구현.
* 핸드크래프트되고 풍부한 스토리텔링.
* 적은 아티스트 인력 (최대 4명).
* 거의 모든 에셋을 직접 디자인하고 제작해야 하는 상황.
* 콘셉트 아티스트 부재.
* **빠르고 유연한 콘텐츠 파이프라인**:
* 월드를 채울 방대한 양의 오브젝트 제작 필요.
* 더럽고 낡고 삶의 흔적이 느껴지는 도시의 아트 스타일 구현.
* 향상된 셰이더 및 콘텐츠 처리 능력 요구.
* **월드 조립 및 디테일**:
* 대규모 게임 월드와 높은 에셋 밀도.
* 생동감 있고 핸드크래프트된 느낌, 풍부한 스토리텔링을 갖춘 월드 구현.
### 3. 해결 전략: 단순성 & 제약
* **핵심 원칙**:
* **단순성 (Simplicity)**: 복잡성을 줄여 핵심에 집중.
* **제약 (Limitations)**: 스스로 제약을 설정하여 효율성 증대.
* **테크 아트 중심 접근**: "Tech Art All the Things"
#### 3.1. 3D 모델링
* **핵심**: 빠른 속도와 일관성 유지.
* **배제된 방식**:
* **고폴리/저폴리 모델링**: 과정이 너무 복잡하고 시간이 많이 소요됨.
* **콘셉트 아트 기반 워크플로우**: 콘셉트 아티스트 부재로 불가능.
* **타일링 머티리얼 & 데칼**: 추상적인 형태에는 좋으나, 복잡하고 디테일한 아트 스타일에 부적합.
* **트림 시트 (Trim Sheets) 단독 사용**: 세밀한 디테일 구현에 한계, UV 언래핑 부담, 폴리곤 과다 사용 가능성.
* **채택된 방식**:
* **트림 시트 + 베이크드 에셋 통합**:
* 트림 시트 공간 내에 베이크드 에셋 포함.
* 하나의 머티리얼로 디테일과 베이크드 에셋 표현.
* *단점*: 텍스처 유연성 제한 (4K 텍스처), 큰 에셋 제작 어려움, 텍스처 제작 시간 증가.
* **단일 텍스처 및 셰이더 강제**:
* 거의 모든 하드 서페이스 오브젝트 (메크, 차량, 벽, 컴퓨터, 의자, 상자 등)가 동일한 텍스처 및 셰이더 사용.
* *장점*:
* **속도 향상**: 시각적 품질 타협, 빠른 개발 가능.
* **일관성 유지**: 카메라 거리 고려하여 디테일 수준 제한.
* **창작 집중**: 복잡한 워크플로우 제거, 반복 작업 감소.
* **공유 디자인 언어**: 텍스처 및 키트bash 라이브러리를 통해 디자인 언어 통합.
* **로 폴리/미드 폴리 지오메트리**: 고폴리 모델링 지양.
* **웨이티드 노멀 (Weighted Normals)**: 2022년 표준 기술 활용.
* **메시 데칼**: 유연성 증대, 단일 텍스처의 한계 보완.
#### 3.2. 텍스처링
* **핵심**: 더럽고 거친 아트 스타일 구현, 최소한의 작업량, 다양한 색상 및 효과.
* **도전 과제**:
* **컨텍스트 기반의 오염/먼지 효과**: 무작위 배치 불가, 적절한 위치 중요.
* **다양한 색상 구현**: 에셋당 단일 색상 지양, 여러 재질 사용 불가 (시간/리소스 소모).
* **해결 방식**:
* **UV 셋을 활용한 마스크 (UDIM 방식 응용)**:
* UV 좌표를 오프셋하여 다른 텍스처 또는 색상 마스크로 활용.
* 텍스처 없이 색상 변화 구현.
* **기본 재질**: 금속, 페인트 금속, 플라스틱 (하드 서페이스 중심).
* **텍스처 레이어링**:
* **트림 시트 텍스처 마스크**: 볼트 주변 디테일, 먼지, 마모 효과.
* **버텍스 컬러**:
* 앰비언트 오클루전 (AO) 및 컨벡시티 (Convexity) 베이크.
* 먼지, 마모, 녹 효과 제너럴하게 제어.
* **라이트 베이킹 AO 마스크**:
* 인접한 오브젝트 간의 먼지, 틈새 디테일 구현.
* 장면의 총체적인 오염 효과 증대.
* **2차 UV 셋 + UDIM**: 데칼 및 발광 표면 마스크.
#### 3.3. 월드 조립 및 배치
* **핵심**: 빠른 제작, 풍부한 디테일, 생동감 부여.
* **도구 활용**:
* **파이프 생성 툴 (Houdini)**:
* 단순 프로파일에서 모듈식 파이프 세트 자동 생성.
* 아트 스타일에 맞는 디테일 (구부러짐, 추가 요소) 통합.
* 타일링 가능 (메시 및 텍스처).
* **스플라인 기반 파이프 배치 툴**:
* 모듈식 파이프 세트 자동 배치.
* 쉬운 시각적 변화 및 텍스처 변경.
* 단조로운 작업 감소, 창의적인 배치 촉진.
* **룸 메이커 (Room Maker)**:
* 정의된 에셋 세트를 기반으로 방 또는 건물 자동 생성.
* 불리언 연산 활용.
* 하수도 등 세트 드레싱에 활용.
* **파괴 (Destruction)**:
* **저렴하고 빠른 제작**: 실제 시뮬레이션 대신 애니메이션 기반.
* **방향별 파괴 애니메이션**: 샷 방향에 따라 애니메이션 재생.
* *장점*: 플레이어 액션에 반응하는 것처럼 보이는 파괴 효과 구현.
* **케이블 툴**: 다양한 유형의 케이블 (바닥, 벽 간) 제작.
* **데칼 툴**: 텍스트 입력으로 메시 데칼 생성.
* **사인 툴**:
* 모델 레터 네온 사인, 플라스틱 사인, 수제 사인 등.
* 애니메이션 사인 (버텍스 셰이더 사용) 지원.
* 편집기 내에서 직접 텍스트 입력 및 지오메트리 출력.
#### 3.4. 생동감 부여 (Adding Life)
* **핵심**: 정적인 월드를 동적으로 변화시키기.
* **반복적인 개선**: 각 요소에 대해 여러 솔루션 개발 및 개선.
* **NPC 활용**:
* **초기**: 발코니 NPC, 스플라인 이동 NPC (배경).
* **개선**: 플레이 가능한 공간에 AI 기반 NPC 배치.
* **세트 드레싱 통합**: NPC를 세트 드레싱의 일부로 활용 (예: 특정 구역의 호보, 카페 손님).
* *장점*: 월드를 더 살아있는 것처럼 보이게 하고, 아티스트가 직접 장면 구성 시 NPC를 고려하도록 유도.
* **광고/애니메이션**:
* **실제 영상 활용**: 셰이더 제작보다 효율적.
* **비디오 텍스처 통합**: CPU 부하 관리 위해 여러 비디오를 하나의 텍스처로 통합, 균등 길이 설정.
* **광원 효과**:
* 픽셀당 평균 색상 추출 (Houdini) → CSV 파일 출력 → 라이트 애니메이션 제어.
* UV 공간 이동 및 채널 스와핑을 통한 광고 애니메이션 재생.
* *추가 활용*: 창문 셰이더에 블링키 컬러 커브 적용 (TV 시청 효과).
* **교통 및 움직이는 부품**:
* 다양한 유형의 교통 (3가지), 스핀/움직이는 부품 (5가지) 등.
* **다층적인 접근**: 단순한 요소들을 여러 겹 쌓아 다양성 확보.
#### 3.5. 최적화
* **핵심**: 높은 에셋 밀도를 유지하면서 성능 확보.
* **주요 문제**: 드로우 콜 (Draw Calls), 스트리밍.
* **전략**:
* **라이팅 최적화**:
* **하이브리드 라이팅**: 대규모 정적 라이트 + 다이나믹 스포트라이트 (카메라 거리 고려).
* **정적 라이팅 활용**: 텍스처 사용량이 적어 라이트맵 공간 확보 용이.
* **리플렉션 프로브 (Reflection Probes) 적극 활용**:
* "손으로 그린" 라이팅 효과, 동적인 것처럼 보이도록 의도적으로 배치.
* 낮은 해상도 (64x64 큐브맵) 사용하여 메모리 부담 감소.
* **라이트맵 해상도 증가 (2K)**:
* 텍스처 압축 효율 증대, 오토 인스턴싱 확률 증가 → 드로우 콜 10% 감소.
* 콘솔에서 약 50MB 메모리 사용.
* **볼류메트릭 라이트 (Volumetric Light) 최적화**:
* 베이크드 라이트 활용.
* 볼류메트릭 라이트맵 밀도 볼륨 사용.
* 볼류메트릭 라이트 그리드 MIP 추가 → 비용 150MB에서 40MB로 감소.
* **거리 기반 라이트 페이딩**:
* 가장 큰 최적화 효과.
* 화면 가장자리에서 라이트 자연스럽게 사라지게 함.
* **라이트 스태틱화**: 기본 최적화.
* **플랫폼별 그림자 제어**:
* 각 라이트에 대해 그림자 켜기/끄기 옵션 도구화.
* 일부 문제 영역에서 그림자 비활성화.
* **결과**:
* **에셋 제작 효율**: 아티스트당 하루 평균 3개 (대형 세트 피스 3일, 메크 1.5일).
* **텍스처 사용량 최소화**: 콘솔에서 1GB 기본값 대비 400MB (실제 텍스처는 100MB 미만).
* **재사용 가능한 머티리얼**: 소재 공유 용이, 반복 작업 효율 증대.
* **아트 디렉션 강화**: 일관된 시각 언어 유지.
* **반복 작업 간소화**: 베이킹 프로세스 없음, 빠른 수정 및 추가 가능.
* **기술적 놀라움 최소화**: 일관된 폴리곤 밀도, 셰이더 복잡성.
* **시각적 품질 향상**: 예상치 못한 디테일 수준 달성 (키트배싱, 스케일 조정).
### 4. 결론 및 교훈
* **강제된 제약의 성공**:
* 개발 모멘텀 유지.
* 주요 작업에 집중.
* 시각적/기술적 노이즈 제거.
* 색상 제약을 통한 아트 디렉션 강화.
* 머티리얼 공유를 통한 반복 작업 및 시간 절약.
* **단점**:
* **초기 두려움**: 장기적인 재사용성에 대한 불확실성.
* **규칙 준수의 지루함**: 엄격한 파이프라인 따르는 데 따른 어려움.
* **향후 개선점**:
* **품질 vs. 양**: 더 많은 시간을 들여 전체적인 시각 품질 개선 고려.
* **파이프라인 일관성**: 에셋 파이프라인 외 다른 파이프라인에도 동일한 수준의 계획 및 제약 적용.