← All Projects

눈물을 마시는 새 — Character Shading & Pipeline

4종족 캐릭터 셰이딩 시스템 설계, 종족별 고유 셰이더 R&D, DCC-to-UE5 파이프라인 툴 개발

The Bird That Drinks TearsRenderingShaderUE5
눈물을 마시는 새 — Character Shading & Pipeline

Overview

주요 업무: 캐릭터 셰이더 시스템 설계 및 종족별 고유 표현 R&D, 아티스트 워크플로우 자동화 툴 개발

사용 기술: Unreal Engine 5, C++, Blueprint, Python, HLSL, Substance Painter


캐릭터 머티리얼 시스템

4종족(인간, 도깨비, 레콘, 나가) 캐릭터를 체형 기준으로 휴먼형/레콘형/나가형 3가지로 분류하고, 공통 요소는 통합 · 종족 고유 특성만 분리하여 캐릭터 머티리얼 시스템을 설계.

Nhaga Skin Specular RnD

나가(Nhaga) 종족 비늘 표현 작업

  • 나가의 비늘이 뱀처럼 무지개빛 스펙큘러로 보이도록 표현하는 작업을 진행.
  • The Nhaga Eater 프로젝트 당시 셰이딩 모델을 추가할 수 없었기 때문에, 머티리얼에서 Fake Iridescence 효과를 구현.
    [The Nhaga Eater] Fake Iridescence
    [The Nhaga Eater] Fake Iridescence

이후 나가 전용 피부 셰이딩 모델을 추가하기 위해 RnD를 진행.

  • Subsurface Profile 셰이더 코드의 Specular 관련 부분에 Iridescence 구현 코드를 추가.
    [Unused, RnD] Add Shading Model, Modify Specular Calculation
    [Unused, RnD] Add Shading Model, Modify Specular Calculation
  • 이를 아트 결정권자들과 몬트리올 팀원들이 확인할 수 있도록 exe 파일로 패키징하여 공유.

Nhaga Eyes RnD

나가(Nhaga) 종족 동공 확장 R&D

  • 나가 종족은 뱀이나 고양이처럼 세로 동공을 가지고 있어, 동공 확장 연출을 위한 R&D를 진행.
  • 초기에는 Metahuman에서 제공하는 eyes material을 수정하려 했으나, pupil 표현을 위한 연산을 수정하는 데 제작 시간이 부족하다고 판단하여, 텍스처를 사용하여 동공 움직임을 제어.
    [The Nhaga Eater] Pupil Dilation Animation, Shader
    [The Nhaga Eater] Pupil Dilation Animation, Shader
  • 뱀이나 고양이처럼 정석적인 세로 동공이 아닌, 파충류들의 다양한 형태의 동공 움직임을 구현할 수 있는 방법에 대한 R&D를 진행하였고 이 과정에서 flowmap을 사용하여 동공의 형태 변화와 움직임을 표현하는 방법을 연구하였음.
    [The Nhaga Eater] Pupil Test, Shader
    [The Nhaga Eater] Pupil Test, Shader
  • 이후, 고양이 눈처럼 빛에 반응하여 자동으로 동공이 움직이는 기능을 구현하기 위해 추가 R&D를 진행.
    [Unused, RnD] Vertical Pupil Delation, with directional light, Shader
    [Unused, RnD] Vertical Pupil Delation, with directional light, Shader
  • 현재는 Metahuman eyes material처럼 텍스처를 사용하지 않고, 수학적 연산을 통해 최대한 자연스럽게 동공 움직임을 표현하는 R&D를 진행 중.

Scale Animation (Prototype)

Content image
Content image

나가(Nhaga) 비늘 움직임 R&D

  • 나가(Nhaga)는 소설 속에서 비늘을 움직일 수 있는 종족으로 묘사되었기 때문에, 실제로 비늘에 움직임을 구현할 수 있는지에 대해 R&D를 진행.
  • 처음에는 비늘들을 셰이더에서 회전시키는 방법을 시도했으나, 각 비늘마다 pivot이 필요해 개별 회전을 적용할 수 없었음.
  • 대신, 버텍스 노멀을 수정하여 버텍스를 이동시키는 방식으로 비늘이 회전하는 것처럼 보이도록 구현.

아티스트 워크플로우 자동화

DCC에서 Unreal까지 이어지는 워크플로우 구축과, 아티스트 휴먼 에러를 줄이기 위한 파이프라인 툴 개발.

C++ 툴 개발 R&D

  • 개인 시간을 활용하여 C++ 툴 개발 방법을 익히기 위한 R&D를 진행.
  • 스켈레탈 메쉬Material ID 이름을 기반으로 자동으로 머티리얼 인스턴스(MI)를 생성하고, 알맞은 마스터 머티리얼을 Parent Material로 설정하는 툴을 제작.
  • 캐릭터 애셋은 많은 Material ID를 가지는 경우가 많아, 아티스트가 MI를 수동으로 설정할 때 잘못된 마스터 머티리얼을 적용하거나 MI 이름을 잘못 설정하는 휴먼 에러를 줄이기 위해 이 툴을 개발하게 됨.

텍스쳐 병합 툴 개발

  • 처음에는 블루프린트로 텍스쳐 병합 툴을 제작했으나, Virtual Texture 병합 시 해상도 문제가 발생함. 스트리밍이 되지 않은 상태에서는 가장 낮은 해상도의 텍스쳐만 불러오는 문제가 확인됨.
  • 블루프린트 툴에서 delay를 적용해 충분한 시간을 확보하려 했으나, 여전히 문제 해결이 되지 않아 C++로 툴을 재개발하여 문제를 확인하기로 결정.
  • C++ 작업 중 아티스트가 더 편리하게 사용할 수 있도록 단축키 기능을 추가하고, 텍스쳐에 필요한 값들을 프리셋으로 설정하여, 단축키 한 번으로 자동 병합이 가능하도록 기능을 구현.

렌더링 품질 관리

  • 시네마틱 영상 제작 시 카메라 효과로 인해 발생하는 아티팩트에 대한 트러블슈팅 진행 — 원인 분석 및 최대한의 해결 방안 제시.
  • 특정 씬의 셰이더 아티팩트 원인 파악 및 수정, 시네마틱 품질 개선에 기여.
  • 그 외 제작 과정에서 발생하는 렌더링 이슈를 분석·해결하며 시각적 품질 안정화.