https://www.youtube.com/watch?v=e5suKk-Ofyw

안녕하십니까. 금일 세션에 오신 여러분을 진심으로 환영합니다. 이곳에 함께하게 되어 매우 기쁩니다.

언리얼 페스트는 처음이라, '더 위쳐 4 (The Witcher 4)' 시네마틱 리빌 트레일러에서 'Art of Anamorphic Lenses'를 발표하게 되어 매우 기쁩니다. 제 소개부터 시작하겠습니다. 안녕하세요, 제 이름은 Sarah입니다. 저는 포르투갈 출신 소프트웨어 엔지니어이자 자랑스러운 반려견 엄마입니다.

이는 제가 애정을 담아 만든 ‘Alpha’입니다. 저의 커리어는 게임 산업에서 시작되었으며, 당시 저는 다양한 콘솔을 위한 프로토타입 개발 및 게임 포팅 작업을 수행하였습니다.

그동안 Unreal Engine 5 강의를 포함한 테크 강의를 진행하는 교수직도 겸임하였습니다.

이전 몇 년 동안 저는 animation 및 VFX 산업으로 전환하였고, Platige에 R&D developer로 합류했습니다. 주로 새로운 Unreal Engine 기능을 연구하며 프로젝트와 아티스트들을 지원하는 업무를 수행했습니다. 최근에는 team 및 project manager 역할을 맡게 되었습니다.

저는 R&D 및 파이프라인 팀과 같이 우리 팀들을 다양한 관점에서 계속 지원하고 있습니다. 이는 저와 제가 소중하게 여기는 작은 프로젝트에 대한 이야기입니다.

이번 세션에서는 다음과 같은 주제들을 다룰 예정입니다. 먼저 Platige에서 진행하는 작업들을 소개하며 간단한 소개를 이어가겠습니다. 이어서 프로젝트에 대해 자세히 설명하고, 저희가 겪었던 주요 성과와 도전 과제들을 공유해 드리겠습니다.

우리는 커스텀 카메라 구현 과정을 살펴보겠습니다. 이 카메라는 PI Cine Camera라고 불리며, PI는 Platige Image를 의미합니다. 마지막으로는 몇 가지 결론을 제시하고, 질의응답 시간을 갖겠습니다. 질문이 있으시면 답변해 드리도록 노력하겠습니다. 이제 자기소개를 마치고 Tij에 대해 이야기 나누겠습니다.

저희는 30년 가까이 필름, 광고, 게임 분야의 production 및 post-production 프로젝트 경험을 가진 크리에이티브 스튜디오입니다. 로스앤젤레스, 도쿄, 몬트리올 등 전 세계에 지사를 두고 글로벌 네트워크를 운영하고 있습니다.

저희의 열정과 심장은 폴란드 바르샤바에 있습니다. 하지만 이미지가 말보다 더 많은 것을 보여준다는 것을 모두 알고 계시기에, 저희의 쇼릴을 함께 살펴보겠습니다.

보십시오, 우리가 무엇을 할 수 있는지. Ciao.

이 훌륭한 성과에 만족합니다. 결국 이는 좋은 인상을 남길 것입니다. 2023년부터 Epic Games와 공식 서비스 파트너가 되었습니다. 이는 언리얼 엔진에 대한 저희의 전문성과 경험을 명확히 보여주는 자랑스러운 업적입니다.

이 타이틀을 달성하게 되어 매우 자랑스럽게 생각합니다. 이제 'The Witcher Project'로 관심을 옮기도록 하겠습니다.

CD Projekt Red에서 저희에게 기념비적인 시네마틱 리빌 트레일러 제작 임무를 맡겼다는 점을 말씀드립니다.

다가오는 'Witcher 4' 게임을 위하여.

당시의 목표는 매우 야심찼기에, 이는 저희로 하여금 당시에 사용 가능했던 기술의 한계를 넘어서 새로운 기술을 탐구하도록 이끌었습니다.

이러한 고품질 결과는 훌륭한 팀들의 헌신과 전문성 없이는 불가능했습니다. 이에 본 프로젝트에 참여한 모든 분들께 감사드립니다. 특히, 놀라운 성과를 보여준 R&D 부서에 깊은 감사를 표합니다.
또한, 카메라 구현의 진정한 'Jedi master'라 할 수 있는 Kuban Makitsky에게 매우 특별한 감사를 전합니다. 모두에게 다시 한번 큰 감사를 드립니다. 자, 이제 더 자세한 내용을 말씀드리기 전에, 트레일러의 짧은 영상을 잠시 살펴보겠습니다.

본 프로젝트의 주요 하이라이트로 넘어가겠습니다. 이 작품은 언리얼 엔진으로 제작된 6분 길이의 애니메이션입니다. 네이티브 4K 해상도로 엔진 내에서 전체 렌더링이 완료되었습니다. 이후 별도의 포스트 프로덕션이나 컴포지팅, 이펙트 추가 작업은 일절 없었습니다. 최종 렌더 결과물만을 사용하였으며, 그 결과물은 다음과 같습니다.

게임 내에 사용된 에셋을 활용하였습니다. 물론, 좀 더 시네마틱한 연출을 위해 일부 개선을 진행했지만, 기존 에셋을 사용하여 실제 게임에서 저희 프로덕션으로 모든 것을 옮기는 과정이 훨씬 수월했습니다. 다소 진부하게 들릴 수 있으나, 저희의 주요 성과 중 하나는 바로 이러한 점입니다.

이번 결과물은 Platige, CD Projekt, Epic Games 간의 환상적인 협업이었습니다. 이 부분에 대해서는 발표 시, 특히 결론 부분에서 더 자세히 설명드리겠습니다. 이 협업이 얼마나 놀랍고, 이를 통해 어떻게 가능했는지 믿으셔도 좋습니다.

특히 여러 가지 도전 과제들을 마주했기 때문입니다.

첫 번째로, 초반부터 클라이언트의 엔진에서 작업해야 한다는 것을 인지하고 있었습니다. 이를 위해 저희의 모든 툴, 자동화, 프로세스가 클라이언트의 커스텀 엔진에서 컴파일되고 정상적으로 작동하도록 보장해야 했습니다. 이를 위해 CD Projekt 엔지니어들과 저희 간에 상당한 협업이 이루어졌으며, 프로젝트 시작 전에 모든 것이 제대로 작동하는지 확인하기 위해 초기 설정 단계에서 시간을 투자해야 했습니다.
두 번째로는 퍼포먼스였습니다. 언리얼 엔진 내에서 최적화된 방식으로 작업하고 있는지 지속적으로 검토해야 했습니다.

아티스트들이 문제없이 씬을 열 수 있어야 한다는 점이 매우 중요했습니다. 이는 언리얼 엔진을 시네마틱 제작에 활용하기 시작한 아티스트들에게 제공해야 했던 일상적인 지원으로 이어집니다. 이 두 가지 주제는 저희 발표를 더 이끌어갈 것입니다. 초기부터 저희는 특정 시네마틱 룩을 구현해야 한다는 것을 알고 있었습니다. 이를 위해 아나모픽 렌즈의 독특한 느낌을 실시간으로 재현해야 했습니다. 이것이 주요 요구사항 중 하나였습니다. 어떤 솔루션을 찾든 실시간으로 작동해야 했습니다.

정말 외로웠고, 이것만으로도 이미 큰 도전이었습니다.

그렇다면 다음에 이어지는 질문은 어디서부터 시작해야 하는가였습니다. 저희는 마감일이 정해져 있었고, 개발해야 할 기능과 수많은 아이디어가 있다는 것을 알고 있었습니다. 하지만 실제로 어떻게 시작해야 할까요? 우리의 시작점은 어디일까요?

이제 레퍼런스로 시작합니다.

CD Projekt는 처음부터 명확한 목표를 설정했습니다.anamorphic lenses 기능의 구체적인 적용 범위와 개발이 필요한 effect의 scope를 정확히 파악하고 있었습니다.

또한, 많은 테스트, 시험, 그리고 시각적 레퍼런스를 제공해 주셨습니다. 아트 디렉터 Lucien Vioncek 및 시네마토그래퍼 Karol Stutnik과 협력하여 이 모든 것을 가능하게 할 수 있었습니다.

이 분들께 진심으로 감사드립니다. 초기 레퍼런스를 살펴보기 시작하면서 다음과 같은 점들에 주목할 수 있었습니다.

보케(bokeh)의 형태가 어떻게 보이는지, 배경의 스월(swirl) 효과를 무엇이 만들어내는지, 림(rim)은 어떻게 나타나는지, 그리고 효과가 얼마나 강화되는지를 이해하기 시작했습니다.

최종 목표가 무엇이었는지 그리고 이를 분석함으로써 우리가 달성해야 할 할 일 목록을 작성할 수 있었습니다.

CD Projekt는 다양한 초점 거리에 대한 영상과 테스트를 준비했습니다. 렌즈를 테스트하며 초점이 이미지에 미치는 영향을 파악했으며, 이 모든 자료를 제공했습니다. 또한, 물리적 테스트 환경을 스캔하여 Unreal Engine 씬으로 마이그레이션하는 훌륭한 작업도 수행했습니다.

이는 디지털 포맷으로 렌즈를 테스트할 수 있게 하였고, 이를 통해 실제 물리적인 결과와 비교할 수 있었습니다. 이 과정은 매우 흥미로웠으며, 이러한 참고 자료들은 저희에게 핵심적인 역할을 하였습니다.

좋은 방향으로 나아가고 있는지 확인하기 위하여.

우리가 무엇을 달성하고 싶은지에 대해 좀 더 명확하게 알게 되었으므로, 이제 언리얼 엔진에서 이를 실제로 어떻게 구현할 수 있을지 이해해야 했습니다. 이를 위해서는 이미 제공되고 있는 기능들이 무엇인지 파악하는 것이 필요했습니다.

그래서 저희는 그렇게 작업을 진행했습니다. Siri 프레임을 예시로 들어 살펴보겠습니다. 이 프레임은 저희가 촬영본에서 선택한 단순한 화면입니다. 이 화면을 조금 더 향상시켰습니다. 라이팅을 약간 조정하여 이펙트가 좀 더 잘 보이도록 만들었습니다. 따라서 이 화면은 최종 이미지가 아닙니다.

예고편에서 발췌한 내용으로, 현재는 별도 효과 없이 액터 배치만 확인 가능합니다. 네이티브 Dove를 활성화하면 보케(bokeh) 형태가 형성되고 배경에 블러(blur)가 나타나는 것을 볼 수 있습니다. 이를 레퍼런스와 비교한 결과, 네이티브 구현을 넘어서 확장할 필요가 있음을 알게 되었습니다.

레퍼런스와 일치하도록 보케(bokeh)의 형태, 회전 등 세부적인 부분을 제어할 수 있는 기능이 더 필요했습니다. 목표를 명확히 파악했기에 이제 리서치 단계에 집중할 수 있었습니다. 이 과정은 상당한 시간이 소요되었습니다.
먼저 받은 모든 레퍼런스와 시각 자료를 분석했습니다. 이전 프로젝트에서 유사한 결과물을 얻은 경험이 있어, Nuke에서 해당 효과를 모방하는 솔루션을 개발한 바 있습니다. 그러나 실시간(real-time)으로 작동하는 솔루션이 필수적이었습니다.
Nuke 솔루션은 직접 사용하기는 어려웠지만, 로직과 수학적 원리를 이해하고 엔진에서 이를 재현하는 데 활용했습니다. 즉, 기존 솔루션을 연구하면서 동시에 문서 학습, 수학적 개념 이해 등 관련 개념들을 익혔습니다.
이러한 과정은 프레젠테이션을 위해 단계별로 구분했지만, 실제로는 동시에 진행되었습니다. 솔루션을 탐색하고 개념을 깊이 파고드는 동시에 모든 작업을 병행했습니다.
특히, 개별 효과를 철저히 분석하여 어떤 요소를 파라미터(parameter)로 노출해야 할지 정확히 파악하는 것이 중요했습니다. 제어하고자 하는 부분을 명확히 이해하는 것이 핵심이었습니다.

간단한 실습을 진행해 보겠습니다. 효과가 적용되지 않은 Bayes reference image를 사용하여, 우리가 목표했던 디테일 수준을 명확히 이해하실 수 있도록 몇 가지 요소를 추가해 나가겠습니다.

Dove 기능을 활성화하겠습니다. 이미 bokeh shapes가 준비되어 있습니다. 여기에 radial blur를 추가하면 초점이 단계적으로 적용되는 것을 확인할 수 있습니다. 따라서 다른 모든 요소에는 보기 좋은 blur가 적용됩니다.

Squeeze factor를 조정하면, 보시는 것처럼 보케(bokeh) 형상이 찌그러지는 것을 확인할 수 있습니다.

이제 bokeh의 형태를 제어할 수 있게 되었습니다. 값을 높이면 훨씬 더 명확하게 보이는 것을 확인할 수 있습니다. rotation을 조절하면 이제 swirl effect를 흉내낼 수 있습니다.

제시된 레퍼런스의 목표는 이미지 중앙을 향하도록 하는 것입니다. 모델링 시 형태의 크기를 양쪽으로 제어할 수 있습니다. 내부 및 외부 림(rims)에 대한 제어도 필요했습니다. 현재는 훨씬 더 강화되었으며, 각각 별도로 미세 조정이 가능합니다. 조금 더 강화하면 더욱 눈에 띄게 됩니다.

이 작은 중앙 도형에서 크로매틱 쉬프트(chromatic shift)를 추가하면 더욱 분명하게 확인할 수 있습니다.

보케(bokeh) 형태에서 미세하게 빨간색과 파란색 빛이 새어 나오는 것을 확인할 수 있습니다. 마지막으로, 이것은 조금 더 알아보기 어렵지만, Bandwagon effect를 추가하면 하단의 보케 형태가 실제로 잘려나가는 것을 발견할 수 있습니다. 이곳에는 거친 절단면이 존재하며, 이것이 Bandwagon effect입니다. 보시는 바와 같이, 이 모든 작은 디테일들은 네이티브 Depth of Field(doff)를 개선하기 위해 작업해야 했던 부분이며, 방금 설명드린 모든 것에 대해 더 나은 제어력을 확보할 수 있었습니다.

구현해야 할 내용을 파악했으므로 이제 프로토타입이 필요합니다. Proof of Concept 개발을 시작할 수 있습니다. 언리얼 엔진에서는 이를 수행할 수 있는 몇 가지 방법이 있었습니다. 이를 '빠른 방법'과 '정식 방법'으로 나누어 보겠습니다.

처음 프로토타입은 post-process materials를 활용하여 신속하게 개발되었습니다.

커스텀 노드를 사용하여 재질 편집기(material editor) 내에서 매우 복잡한 셰이더(shader)를 구현하였습니다. 이를 통해 다양한 기능들을 효과적으로 모방할 수 있었습니다. 모든 로직과 수학적 계산을 신속하게 테스트하는 데 매우 유용한 방법이었습니다.

솔직히 말씀드리면, 처음 나온 결과물은 상당히 만족스러웠습니다.

이는 훌륭했습니다. 아나모픽 렌즈의 모든 클래식한 특징, 예를 들어 타원형 보케(bokeh) 모양까지 완벽하게 재현할 수 있었으며, 매우 빠른 피드백을 얻을 수 있었습니다. 이를 통해 아티스트에게 어떤 파라미터(parameter)를 노출해야 할지 신속하게 파악할 수 있었고, 그들의 작업 방식을 이미 고려하고 있었습니다.

본 기능은 재질(material)에서 직접 조절할 수 있는 밝기(brightness), 반경(radius), 초점 거리(focus distance), squeeze와 같은 단순 파라미터들을 포함합니다. 이를 통해 실시간으로 세밀한 조정을 할 수 있습니다.

하지만 예상하셨겠지만, 이 접근 방식에는 몇 가지 도전 과제와 문제가 있었습니다. 여기서 주요 문제가 무엇이었는지 묻거나 생각하신다면, 그것은 바로 타이밍이었습니다.

렌더링 과정에서 doff pass가 언제 실행될지 제어해야 했습니다. post-process materials은 항상 메인 렌더 이후에 실행됩니다.

본 사례에서는 DoF effect가 렌더링된 모든 요소 뒤에 실행되도록 구현할 필요가 있었습니다.

vignette와 같은 추가적인 효과가 적용되기 전에, 해당 효과가 언제 실행될지 제어해야 했습니다. 하지만 materials로는 이를 제대로 제어할 수 없었습니다.

성능 이슈도 늘 문제였습니다. 이 재질 솔루션은 여전히 상당히 리소스가 많이 소모되는 방식이었습니다. 리소스 사용량이 많았지요. 더 고사양의 머신에서도 프레임 드랍이 발생하여 결국 좋은 해결책이 되지 못했습니다.

성능에 대한 부분은 좀 더 고려가 필요했습니다. 샷에 추가적인 effects가 남아 있었기 때문입니다.

이전에는 Temporal Anti-Aliasing(TAA)으로 인해 발생하는 문제를 겪었습니다. 특히 아웃 오브 포커스(out of focus) 영역과 흐릿한(blur) 장면에서 깜빡임(flickering)이 발생했습니다. 이 문제를 해결하기 위해 해상도를 높이거나 Temporal Time Samples를 추가하는 방식을 적용하였습니다.

하지만 그것이 장기적인 해결책이 아니라는 것을 알고 있었습니다.

이것은 결국 실현 가능한 해결책이 되지 못했습니다. 하지만 저희는 이 문제를 해결할 수 있었고, 여전히 아름다운 반짝이는 효과를 얻을 수 있었습니다.

이것은 또 다른 특이한 현상입니다. 내부적으로는 'touch of pink'라고 명명하였는데, 이는 샘플링 알고리즘이 버퍼 외부를 읽어 이미지 가장자리에 기묘한 분홍색 변화를 일으켰기 때문입니다.

이슈에 대한 해결책을 찾지 못했으나, materials 측면에서 지원이 어려울 것이라는 점을 인지하게 되었습니다. 결과적으로 몇 가지 이상한 artifact들과 함께 해당 문제에 직면하게 되었습니다.

또 한 가지 파악하고자 했던 것은 circle of confusion (COC)을 위한 계산이었습니다.

In-focus와 out-of-focus 레이어를 효과적으로 분리하는 데 어려움을 겪었습니다. PPM approach에서 목표로 했던 결과와 실제 결과 사이의 비교를 보여드리겠습니다.
더 가까운 큰 바위에 초점을 맞추려 했으나, 이 approach로는 레이어 간의 명확한 구분선을 찾기 어려웠습니다.
원래는 이러한 crisp한 분리가 가능했어야 했습니다. 예를 들어, 일부 blur가 더 선명한 오브젝트로 번지는 문제가 있었습니다.
이 짚에 초점을 맞추려 했으나, 이상하게 보이는 결과가 나왔습니다.
미어캣에 초점을 맞추더라도 in-focus와 out-of-focus 영역 간의 명확한 구분이 없었습니다. PPM approach로는 레이어의 동작을 제대로 분리할 수 없다는 결론에 도달했습니다.
이 문제는 두 번째 approach에서 해결되었습니다.

곧 자세히 다룰 내용입니다.

이에 대한 완벽한 해결책은 존재하지 않았습니다.

하지만 이 계산을 근사하기 위한 좋은 workarounds를 찾아냈으며, Guillaume Abadi의 'A Life of a Boca'라는 talk를 꼭 시청해 보시기를 강력히 권해 드립니다.

이 내용은 SIGGRAPH 2018에서 발표된 것으로, 언리얼 엔진이 Depth of Field(DOF)를 어떻게 처리하는지 매우 명확하게 설명하고 있습니다.

작동 방식에 대해 충분히 이해했으며, 더할 나위 없이 추천해 드립니다.

이 시점에서 우리는 새로운 프로토타입과 극복하기 어려웠던 문제들에 대한 새로운 접근 방식이 필요하다는 것을 분명히 알게 되었습니다. 이에 저희는 Epic Games에 연락하게 되었습니다.

SceneView extensions 활용에 대한 좋은 팁을 얻었기에 이를 적용하였습니다. 먼저, doff 코드를 별도의 plugin으로 분리하는 작업을 진행했습니다. 시스템을 decouple하고 단순화하여 자유롭게 활용하는 것이 목표였습니다.

첫째, 시스템을 최대한 isolate하여 연구 및 확장을 시작할 수 있도록 하였습니다. 둘째, 동일한 목표를 가지고 매우 단순한 parameter들을 추가하기 시작했습니다. 이는 시스템을 간소화하고 구축 방식을 이해하고자 함이었습니다.

Squeeze factor와 같은 기능을 구현합니다. 작업 중인 내용에 대한 이해도를 높인 후, 미리 노출시킨 파라미터를 사용하여 실제 카메라를 구현하고 SVE를 등록하는 기능을 추가할 수 있습니다.

다음으로는 저희 구현에서 가장 긴 부분을 차지했던, DOF (Depth of Field)의 확장 부분에 대해 알아보겠습니다.

보케(bokeh) 기능에 집중하여, 앞서 보여드린 모든 디테일을 구현하는 데 많은 시간을 투자했으며, 모든 것이 정확하게 구현되었는지 확인했습니다. 이를 통해 네이티브 구현 방식과 저희의 커스텀 구현 방식 간을 전환할 수 있는 매우 빠른 핫픽스를 개발할 수 있었습니다.

이것은 콘솔 변수를 사용하여 구현되었습니다. Depth of Field quality 설정과 유사한 방식으로, 값이 0으로 설정되었을 때 저희만의 커스텀 구현을 사용했습니다.

'One'으로 설정했을 때 Native를 사용하였습니다. 소스 코드 변경 없이 두 구현 간 전환이 가능했기에 매우 빠르고 유용한 핫픽스였습니다.

이후 저희의 주요 우선순위가 모두 완료되어 X-ray effect를 구현할 준비가 되었습니다. Vignettes와 같은 효과를 말씀드리는 것입니다.

이러한 부드러움(softness), radial blur, chromatic aberration과 같은 이펙트들을 각각 별도의 shader pass로 구현하였으며, 이는 반드시 특정 순서로 처리되어야 했습니다.

효과 렌더링 순서를 특정하여 작업 진행 여부를 확인했습니다. 예를 들어, `time echo`는 반드시 마지막에 렌더링되도록 설정했습니다. 이제 `custom Dov`가 활성화된 상태에서 효과들을 살펴보겠습니다.
가장 먼저 `chromatic aberration` 효과를 확인합니다. 특히 상단 큰 형태에서 빨간색과 파란색 시프트(shift)가 발생하는 것을 볼 수 있습니다. 이것은 `custom Dov`에 해당 효과를 적용한 결과입니다.
이전 상태로 돌아가 `softness` 효과를 살펴보겠습니다. 이 효과는 시각적으로 인지하기 다소 까다로울 수 있습니다. `Sirius Hair`에서 부드럽고 자연스러운 블러(blur) 효과를 확인할 수 있습니다.
다시 기본 상태로 돌아와 `vignette` 효과를 추가합니다. 이 효과는 전체 이미지 주변에 어두운 프레임이 생성되는 것을 쉽게 확인할 수 있습니다.
마지막으로 `radial blur` 효과를 적용합니다. `Sirius Face`가 이미지의 주요 초점이기 때문에, 그 외의 영역에 방사형의 부드러운 블러 효과가 적용되는 것을 명확하게 볼 수 있습니다.

모든 이펙트 구현이 완료됨에 따라, 이제 카메라 제어 시스템 구현을 마무리할 수 있습니다. 저희는 일부 자동화 기능에 특히 주의를 기울였습니다.

정돈 작업도 이루어졌습니다. 저희 팀의 주요 목표 중 하나는 가능한 한 군더더기를 없애는 것이었습니다. 이 비교 화면에서 보시다시피, 기본 Cine Camera에는 저희가 실제로 필요로 하지 않는 많은 프로퍼티들이 있었습니다. 필요한 것은 Lens Component, Camera Settings, 그리고 Post-Process뿐이었습니다. 따라서 저희는 필요 없는 모든 것을 숨겼습니다.

PI Cine 카메라에서는 렌즈 컴포넌트를 사용하며, 메인 카메라 액터의 파라미터를 제어합니다. 이는 더욱 깔끔한 솔루션입니다. 포스트 프로세싱과 카메라 설정을 모든 추가 효과와 함께 제공하지만, 다른 것은 필요하지 않습니다.

아티스트가 수정해야 할 부분을 더 쉽게 찾을 수 있도록 깔끔한 솔루션을 만들고자 하였습니다. 이를 염두에 두고 몇 가지 팁을 공유하겠습니다. 첫째, Details 패널을 커스터마이징하는 것을 강력히 추천합니다. Details 커스터마이징 인터페이스를 통해 이를 수행할 수 있습니다. 둘째, 각 카테고리별 우선순위를 정의하십시오. 이는 더 중요한 기능이 상단에 표시되어야 한다는 것을 의미합니다.

‘important flag’로 표시하시면 됩니다. 그러면 상단에 나타나므로 스크롤을 많이 하지 않고도 쉽게 찾으실 수 있습니다. 또한, 깔끔한 디자인을 유지하는 것을 잊지 마십시오.

세 번째로는 불필요한 프로퍼티를 숨기는 것입니다. 다시 말씀드리지만, 아티스트들이 툴을 올바르게 사용할 수 있도록 하는 것이 저희의 목표입니다.

이 부분을 위해 필요한 것을 건너뛰고 나머지는 모두 숨깁니다.

몇 가지 자동화 기능을 염두에 두고 렌즈에 대해 이야기해 보겠습니다. 렌즈 파일 생성 과정을 좀 더 쉽게 만들기 위해 멋진 위젯을 만들었습니다. 아티스트는 단순히 모든 렌즈 정보를 입력하면 됩니다.

그다음, 해당 기능을 다양한 ST maps와 연동할 수 있었습니다. ST maps는 CDPR의 shoots 또는 shots를 기반으로 제작되었으며, widget이 모든 작업을 처리하여 업로드된 정보를 바탕으로 실제 lens file을 생성하게 됩니다.

렌즈 왜곡(lens distortion)에 대하여 아티스트들이 수동으로 커스터마이징할 수 있는 방법을 제공하고자 하였습니다. 이를 위해 자동화된 방식을 제공하여 다양한 렌즈 파일(lens files)을 선택할 수 있게 하였으며, 또한 파라메트릭 왜곡 모델(parametric distortion models)을 사용하여 더욱 창의적인 제어가 가능하도록 하였습니다.

왜곡(distortion)을 조절할 수 있는 두 가지 방식을 모두 유지했습니다. 렌즈 브리딩(lens breathing)은 간단히 다른 ST 맵(ST maps) 간을 블렌딩(blending)하여 구현하였습니다.

여러 초점 거리에 따른 결과입니다. 네, 이를 상당히 정확하게 시뮬레이션할 수 있었습니다. 최종 결과가 어떻게 보이는지 살펴보겠습니다. 다시 말해, 커스텀 DAF가 활성화된 기본 이미지가 있습니다. 여기에 왜곡(distortion)을 추가하면 이미지에 이러한 변화가 발생합니다.

모든 구현 과정을 거쳐 최종적으로 어떻게 보이는지 궁금하시다면,

이러한 자잘한 효과들과 세부적인 부분들을 보여드리겠습니다.

기본 상태에서 효과가 적용되지 않은 원본과 네이티브 doff가 활성화된 상태, 그리고 현재 커스텀 doff가 적용된 상태를 비교할 수 있습니다. 보시다시피, 보케(bokeh)의 시각적 품질을 향상시켰으며, 이미지 내 모든 픽셀에 대한 영향과 전반적인 룩에 대해 훨씬 더 많은 제어권을 갖게 되었습니다.

실제 트레일러에서 발췌한 몇 가지 장면을 보여드리겠습니다.

Ciri가 칼을 갈 때 또는 Mione 캐릭터 뒤에 배경에 나타나는 swirl effect에서 bokeh shape를 확인할 수 있습니다. 최종 결과물에 매우 만족하고 있습니다.

Epic Games에 감사 인사를 전합니다. Unreal Engine 5.6에서는,

Petzval 렌즈에 새로운 기능이 추가되었습니다. 이 기능은 출시 당시에 매우 유용했을 것입니다. 그럼에도 불구하고, 이는 정말 놀라운 기능입니다. 따라서 이 기능을 사용해보고 싶으시다면 꼭 시도해보시기 바랍니다.

5.6 버전에서 이제 사용 가능하며, 거의 마무리에 접어들었습니다. 몇 가지 간결한 결론을 공유해 드리겠습니다.

이후 질문이 있으시면 Q&A 세션으로 넘어가도록 하겠습니다.

본 프로젝트에서 가장 큰 도전 과제는 렌더링 파이프라인을 완전히 재작성할 필요 없이 게임 엔진 내에서 시네마틱 퀄리티를 구현하는 것이었습니다. 초기에는 포스트 프로세스 머티리얼을 사용하여 시도하였으나, 만족스러운 결과를 얻었음에도 불구하고 해결하지 못한 부분이 많아 해당 접근 방식을 포기하였습니다. Epic과의 논의를 통해 훌륭한 팁을 얻었습니다.

Rod Bogarts에게 깊은 감사를 표합니다. Scene View Extensions를 활용한 팁은 매우 유용했으며, 덕분에 목표를 달성할 수 있었습니다. CD Projekt의 Cinematic Director인 Kayatan Kapuscinski와 Cinematographer인 Karol Stadnik과 같은 훌륭하고 재능 있는 사람들과 함께 작업한 경험은 퍼즐의 또 다른 중요한 조각이었습니다.
처음에 언급했듯이, 세 개의 서로 다른 회사와 각기 다른 작업 방식 간의 협업은 정말 놀라웠습니다. 이러한 협력이 있었기에 현재의 높은 퀄리티를 달성할 수 있었습니다.

결론적으로 도전적인 경험이었지만, 결국에는 매우 보람 있었습니다. 저희 발표에 참석해주셔서 진심으로 감사드립니다. 감사합니다.

감사합니다.