
개요
시프트업 서장협 님의 언리얼 페스트 2024 발표 영상을 소개한다.
영상
내용 (AI 요약)
결론: 나이아가라를 활용한 스텔라 블레이드 VFX 제작 노하우
나이아가라 시스템을 어떻게 활용하고 최적화했는지에 대한 깊이 있는 기술 발표입니다.
자체적으로 제작한 커스텀 모듈과 규격화된 워크플로우를 통해 개발 효율을 극대화한 과정을 공유합니다.
반복적인 커브 작업을 머티리얼단으로 옮긴 '아틀라스 커브' 개념
절차적 변수를 활용한 자연스러운 파티클 표현
그리고 전기, 액체, 렌즈 플레어 등 구체적인 이펙트 제작 사례
타임라인별 상세 요약
[04:45] 효율적인 VFX 제작을 위한 프로세스 최적화
적은 인원으로 방대한 작업을 효율적으로 처리하기 위해, 첫 결과물을 빠르게 확인하는 '1차 작업' 프로세스를 단축하는 데 집중했습니다. 이를 위해 두 가지 핵심 전략을 사용했습니다.
- 이미터 인스턴스 규격화 [07:53]: 파티클의 종류를 렌더러 방식(스프라이트, 메시, 리본 등)과 표현 방식(스파크, 플레어, 쇼크웨이브 등)에 따라 분류했습니다. 각 분류에 맞는 마스터 이미터를 제작하고, 아티스트들은 이를 인스턴스화하여 필요한 파라미터만 수정하는 방식으로 작업 시간을 크게 단축했습니다. 각 표현 방식에 맞는 커스텀 모듈을 미리 세팅해두어 작업자가 복잡한 내부 구조를 몰라도 쉽게 원하는 효과를 낼 수 있도록 했습니다.
- 아틀라스 커브 도입 [09:42]: 파티클 제작 시 색상, 크기, 알파 값 등을 시간에 따라 변화시키는 커브 작업은 매우 반복적이고 시간이 많이 소요됩니다. 이 문제를 해결하기 위해, 자주 사용하는 커브 조합을 하나의 텍스처에 저장하는 '아틀라스 커브' 개념을 도입했습니다. 파티클 시스템에서는 이 텍스처의 특정 행(Row)을 지정하기만 하면, 머티리얼 단에서 해당 커브 데이터를 읽어와 애니메이션을 처리합니다. 이 방식을 통해 커브 수정이 필요할 때 일일이 파티클 에셋을 열 필요 없이 머티리얼 인스턴스만 수정하면 되어 재활용성과 유지보수성이 획기적으로 향상되었습니다.
[15:27] 나이아가라 절차적 변수 활용
나이아가라의 강력한 기능 중 하나인 '절차적 변수(Procedural Variables)'를 활용하여 파티클에 생동감을 더한 사례를 소개합니다. 예를 들어, 스파크 파티클을 만들 때 모든 파티클이 동일한 패턴으로 움직이는 것을 방지하기 위해 '온도'라는 가상의 변수를 도입했습니다. 파티클 생성 시 80%는 낮은 온도로, 20%는 높은 온도로 설정되도록 분포를 조절합니다. 그리고 이 '온도' 값에 따라 파티클의 수명(Lifetime), 색상, 질량, 크기, 바운스 값 등이 유기적으로 연동되도록 설정하여 훨씬 더 물리적이고 자연스러운 결과를 얻을 수 있었습니다.
[22:35] 구체적인 이펙트 제작 사례
- 전기 이펙트: 주인공 이브의 전기 스킬은 단순히 보여주는 것을 넘어 주변 환경과 상호작용하도록 설계되었습니다. 레이트레이스(Raytrace)를 사용해 바닥이나 벽의 위치를 실시간으로 감지하고 [23:19], 전기가 시작 지점과 지면을 자연스럽게 연결하도록 했습니다. 또한 지면과의 각도를 계산하여 전기가 수직으로 떨어지지 않고 비스듬하게 휘어지도록 표현했습니다 [24:58]. 특정 오브젝트 타입에만 전기가 닿도록 설정할 수 있으며, 전기가 닿은 지점에는 파티클 라이트와 스파크가 자동으로 생성되어 상호작용의 디테일을 높였습니다.
- 액체(유혈) 효과 [26:09]: 잔혹한 연출을 위해 GPU 파티클 기반의 액체 효과를 제작했습니다. 씬 뎁스(Scene Depth)를 활용하여 파티클이 지면이나 벽에 충돌하는 것을 감지하고 [26:46], 충돌한 시점부터 파티클의 크기나 색상이 변하도록 별도의 시간을 계산하는 '노멀라이즈 에이지'를 생성했습니다. 이를 통해 액체가 벽에 부딪혀 흘러내리거나 바닥에 퍼지는 듯한 연출을 구현했습니다. 여기에 스태틱 메시 프로젝션 데칼을 추가하여 혈흔의 모양에 다양성을 더했습니다.
- 렌즈 플레어 효과 [31:25]: 언리얼 엔진의 기본 렌즈 플레어 기능의 한계를 극복하기 위해 나이아가라 커스텀 모듈을 직접 개발했습니다. 이 모듈을 통해 광원이 카메라와의 거리에 상관없이 일정한 크기를 유지하고 [31:55], 광원이 화면 밖으로 나가거나 장애물에 가려질 때 부드럽게 사라지는 효과를 구현했습니다 [34:55]. 또한, 광원의 화면상 위치에 따라 플레어의 모양과 회전이 변하고, 깊이감을 표현하여 입체적인 움직임을 만들어냈습니다.
[37:47] 기타 최적화 및 디테일
발표 말미에는 4K 해상도 환경에서의 최적화 노하우도 공유합니다. 오버드로우(Overdraw) 문제를 방지하기 위해 연기(Smoke) 파티클은 카메라와 가까워지면 오히려 사이즈를 줄이고 [38:51], 멀리 있는 작은 스파크 파티클은 잘 보이도록 버텍스 쉐이더를 통해 화면상 크기를 키우는 등의 최적화 기법을 사용했습니다 [39:43]. 이 외에도 렌더 타겟 시뮬레이션을 활용한 환경 반응 요소, 캐릭터 데칼 자동화, 독특한 림라이트(Rim Light) 방식 등 다양한 기술적 시도를 간략하게 소개하며 발표를 마무리합니다.
댓글