프로젝트에 관해 이야기하기 전에, 작업물을 공유할 기회를 마련해 준 에픽게임즈에 감사의 말씀을 전하고 싶습니다. 이 블로그 글이 몇 가지 요령을 익히는 데 도움이 되길 바랍니다!
프로젝트 시작 단계
발리 사원(Balinese Temple)은 인바이런먼트 스토리텔링으로 리얼타임 시네마틱 경험을 만드는 데 중점을 두고 있습니다. 이 프로젝트는 2017년 노먼 토크(Gnomon talk)(여기에서도 확인 가능)에서 많은 영감을 받았습니다. 캐릭터가 존재하지 않아도 인바이런먼트 아트가 이야기를 전개하는 강력한 툴로 쓰일 수 있다는 발상이었습니다. 더 그럴듯하게 보이기 위해서 종종 스토리에 신화와 전설 같은 실제 문화를 반영합니다.반지의 제왕(Lord of the Rings), 해리 포터(Harry Potter), 젤다의 전설(Legend of Zelda), 갓 오브 워(God of War), 어쌔신 크리드(Assassin’s Creed)와 같은 프랜차이즈는 신화가 대중문화에 직접적으로 미치는 영향을 보여줍니다. 일본, 그리스, 페르시아, 스칸디나비아 신화 등 일부 문화가 다른 문화보다 더 알려졌다 하더라도, 인바이런먼트 아티스트가 참고할 수 있는 유일한 레퍼런스는 아닙니다.
폴리네시아를 배경으로 한 모아나(Moana)와 멕시코를 배경으로 한 코코(Coco) 같은 최근 영화를 보면, 주류 신화 이야기를 반영하는 것에서 트렌드가 바뀌고 있다는 걸 보여줍니다. 제3세계 국가 출신 사람으로서, 이런 트렌드를 기회 삼아 널리 알려지지 않은 발리 문화를 인바이런먼트 아트워크에 활용할 방법을 연구해볼 수 있습니다.
아트 디렉션
프로젝트를 시작하기 전에, 제 고향의 이야기를 들려주는 인바이런먼트를 만들고 싶었습니다. 그래서 내러티브 설정에 어울릴 스타일 관련 레퍼런스를 모으는 데 시간을 조금씩 투자하기 시작했습니다. 언차티드 4(Uncharted 4), 호라이즌 제로 던(Horizon Zero Dawn), 섀도 오브 더 툼 레이더(Shadow of Tomb Raider)와 같은 게임은 제 아이디어와 많은 유사점이 있습니다.작품 퀄리티에서 영감을 받아서 브레인스토밍하고 아이디어에 살을 붙이기 시작했습니다. 이 시점에서, 저는 작업을 하면서 콘셉트가 발전할 거란 사실을 알고 있었습니다. 그래서 제 프로젝트를 발전시킬 차후의 아이디어를 위한 자리도 비워뒀습니다.
일단 기본 아이디어를 정립한 후, 저는 색, 조명, 구성에 중점을 둔 무드 보드를 여러 개 제작했습니다.
블록아웃
첫 블록아웃은 다소 간단했지만, 인바이런먼트의 전체적인 느낌을 잡는 데 많은 도움을 주었습니다. 보통 언리얼에 레이아웃을 잡기 전에 Maya로 만든 개략적인 블록아웃으로 기본 모양을 정의합니다. 핵심은 더 디테일한 버전으로 교체할 모듈식 프록시 애셋을 만드는 겁니다.한 가지 발견한 점은 인바이런먼트 빌드에 사용한 프록시 지오가 제가 다듬은 버전을 완벽하게 나타내지 못한다는 점입니다. 그래서 블록아웃 애셋을 베이스 프록시로 삼아 언리얼에서 내보낸 다음, 전체 인바이런먼트를 Zbrush에서 다듬기로 했습니다.
데시메이트한 블록아웃이 콘셉트를 잘 보여줬지만, 바로 활용할 수 있는 애셋을 제작하는 데에는 상당히 많은 시간이 필요했습니다. 결국 저는 블록아웃은 가이드로 활용하고, 애셋은 사진 측량을 이용해 제작했습니다.
애셋 제작
발리 문화에서 영감을 받은 애셋 제작에 필요한 디테일이 너무 많았기 때문에, 사진 측량이 워크플로에서 큰 비중을 차지했습니다. 저는 이 기법을 턴 10 스튜디오(Turn 10 Studios) 인턴 과정에서 처음 배웠습니다. 이 프로젝트에는 리얼리티캡처(RealityCapture)를 활용하였습니다.스캔한 애셋이 생성되면, 제가 할 일은 메시를 깔끔하게 정리하고 텍스처를 굽기 위해 UV 언래핑 된 로우폴리 버전을 생성하는 것뿐이었습니다. 로우폴리 애셋에서 전경 오브젝트는 Maya를 활용하고, 배경 오브젝트는 인스턴트 메시(Instant Meshes)를 활용하여 제작했습니다.
직접 스캔한 애셋뿐 아니라 인바이런먼트를 빠르게 덧붙이기 위해 퀵셀 메가스캔(Quixel Megascans)도 많이 활용하였습니다. 결과적으로 이전에 데시메이트한 블록아웃을 기반으로 스캔한 애셋으로 구성된 새로운 인바이런먼트가 제작되었습니다.
프로젝트의 다음 단계는 머티리얼을 배경에 적용하는 것이었습니다. 제가 활용한 머티리얼 셋업은 단순합니다. 레이어드 머티리얼 함수에 이끼나 먼지와 같은 프로시저럴 서피스 디테일 추가 옵션을 가미하는 겁니다. 또한, 텍스처 마스크 파일을 입력하는 옵션도 있습니다.
라이팅
전통적인 방식을 따르는 CG 경력이 있는 저는 3점 조명의 일반 규칙을 따르는 편입니다. 용어가 암시하듯, 이 규칙은 키 라이트, 필 라이트, 림 라이트의 세 가지 광원 배치를 기본으로 합니다. 초기 셋업 단계에서는 디렉셔널 라이트를 키 라이트로, 스카이 라이트를 필 라이트, 또는 어떤 라이트로도 림 라이트로써 활용합니다. 팁: 회색 머티리얼 셋업으로 시작하세요. 언리얼에서는 라이팅만(Lighting Only) 혹은 디테일 라이팅(Detailed Lighting) 모드를 활성화하면 쉽게 셋업할 수 있습니다.이미지 기반 라이팅(Image Based Lighting, IBL)도 제가 자주 활용하는 기법입니다. 여기서, 저는 스카이 라이트 소스 타입 을 SLS 지정 큐브맵 으로 전환하고 HDRI Haven에서 얻은 HDRi를 적용했습니다.
팁: 최소와 최대 세팅에서 포스트 프로세스 볼륨(언바운드) 노출 수준을 1.0으로 설정하세요. 이렇게 하면, 엔진이 노출을 자동 조정하려고 하지 않습니다. 일차 라이팅 세트 설정할 때 자동 조정은 조금 거슬릴 수 있습니다. 프로젝트 세팅에서도 자동 노출을 끌 수 있습니다.
또한, 익스포넨셜 하이트 포그와 볼류메트릭 포그를 함께 활용했습니다. 이건 언리얼 엔진 4.16 버전에 도입된 기능입니다. 하지만 결과적으로 단순한 실린더에 적용된 사용자 정의 반투명 머티리얼을 활용하여 라이트 섀프트 몇 개를 제작하게 되었습니다. 이렇게 하면 인바이런먼트 룩을 정의할 때 컨트롤이 용이해졌습니다. 특히, 각 레이의 일반 모양, 강도와 배치 측면에서 용이했습니다.
팁: 라이트 섀프트 머티리얼을 여러 개 제작하되, 노이즈와 깊이 불투명도 값을 다르게 적용하세요. 또한 Panner 노드를 추가하여 머티리얼에 움직임을 추가할 수 있습니다. 이렇게 하면 신(scene)에 배치한 라이트 섀프트 레이어마다 깊이감을 줄 수 있습니다.
라이팅 프로세스의 예시를 몇 가지 보여드리겠습니다. 저는 주로 디렉셔널 라이트를 활용해 일차 라이트 정의를 시작하고, 필 라이트에는 스카이 라이트를 활용합니다. 기존 렌더링 엔진과는 달리, 언리얼에서는 자체 제작한 반사광을 배치합니다. 팁: 라이팅 시나리오를 생성할 때 색온도를 활용하세요. 이렇게 하면 더 자연스럽고 정확한 결과를 볼 수 있습니다.
인바이런먼트 애니메이션과 FX
인바이런먼트를 생성할 때 아티스트가 종종 간과하는 것은 미묘한 배경 애니메이션입니다. 화려할 필요는 없지만 활력있는 채도는 스토리와 인바이런먼트 전체 분위기에 많은 느낌을 더해줍니다.팁: 에픽은 불, 물, 눈과 같은 다양한 파티클 시스템을 자랑하는 파티클 관련 좋은 프로젝트 예시를 보여줍니다.
애니메이션 자체는 인바이런먼트에서 차지하는 비중지 적지만, 인바이런먼트 디자인에 중대한 영향을 끼칩니다. 추가된 날씨 효과는 조용하고 잡초가 무성하게 자란 생활 인바이런먼트라는 발상에 힘을 실어줍니다. 애니메이션 FX는 배치 장소뿐만 아니라 지나치게 시선을 끌지 않으면서도 흥미로운 라이팅 상태를 만들 수 있습니다.
포스트 프로세싱
파이프라인의 최종 단계는 합성 또는 포스트 프로세싱입니다. 언리얼 엔진은 포스트 프로세스 볼륨을 제공하며, 아티스트는 이를 이용하여 블룸, 색수차 효과, 컬러 그레이딩을 추가하는 등 신의 전체적인 룩을 수정할 수 있습니다. 가장 눈에 띄는 효과는 더욱 더 시네마틱한 룩으로 렌더링하는 역량입니다. 팁: 저는 컬러 그레이딩을 위해 Nuke에서 룩업 테이블(LUT)을 생성했지만, 포토샵(Photoshop) 또는 다른 이미지 편집 소프트웨어를 활용해도 됩니다.도전 과제
제작 과정에서 가장 큰 도전은 인바이런먼트에 맞는 색의 조화를 만드는 것이었습니다. 댄 콕스(Dan Cox) 님이 GDC 토크에서 60-30-10 규칙을 설명한 것이 프로젝트에 많은 도움이 되었습니다.팁: 색채 심리학은 구체적인 내러티브 테마를 전달하는 데 좋은 방법입니다. 저는 주로 녹색을 중점으로 인바이런먼트 색을 활용합니다. 발리 예술에는 생명과 자연이 녹아 있어야 한다는 생각을 강조할 수 있기 때문입니다.
또 뎁스 오브 필드(DoF)의 올바른 값을 찾는 것이 어려웠습니다. 초기 버전에서는 이 기능을 과하게 쓰는 편이어서 렌더에서 아주 깊이가 얕은 DoF를 생성했습니다. 다른 사람들이 제 프로젝트를 새로운 관점에서 바라보는 것이 필수라는 걸 깨달았습니다. 특히 제 프로젝트처럼 야심 찬 프로젝트일 경우일 때 말입니다.
팁: 실생활에서 만난 멘토의 직접적인 피드백 외에도 평가에 도움을 주는 온라인 커뮤니티들이 많습니다. 저는 r/vfx, r/unrealengine, 언리얼 엔진 데브 커뮤니티, 10K, 레벨 업(Level Up), 80 레벨(80 Level)에 포스팅을 많이 올렸습니다.
맺음말
읽어 주셔서 감사합니다. 즐거우셨기를 바랍니다. 질문이나 피드백이 있으신 경우, 언제나 아트스테이션과 링크드인에서 저를 찾으실 수 있습니다.도움을 주신 분들
콘셉트 아티스트 - 메그나 레디스토리보드 아티스트 - 카일리 게이
프리비즈 아티스트 - 서니 웨이 얀 찬(Sunny Wai Yan Chan)
사운드 디자이너 - H. 앨버트 홀귄(H. Albert Holguin)
논문 지도교수 - 브레트 루틀랜드(Brett Rutland) | 브리짓 게이너(Bridget Gaynor) | 찰스 셰미(Charles Shami)