[유나이트] UI-셰이더-VFX를 연달아 쉽게, 유니티6의 셰이더/VFX 그래프

게임뉴스 | 윤서호 기자 |



통상 게임 개발을 할 때마다 '툴'이라는 단어가 언급되고는 한다. 엔진을 그대로 사용하는 것이 아니라, 개발자들의 요구에 맞춰서 여러 기능을 더하거나 좀 더 작업하기 편하게 일부 변경한 '툴'을 만들기 때문이다.

구조가 단순하거나 소규모인 게임에서는 이러한 과정이 크게 필요 없지만, 규모가 크고 복잡한 게임일수록 이러한 과정은 필수로 자리잡았다. 외부에서 애셋을 불러오는 것이나 프로그래밍만으로는 실시간으로 이를 체크하면서 작업하기엔 한계가 있기 때문이다. 이러한 현장의 니즈를 확인한 게임 엔진 개발사에서도 점차 VFX 그래프, 셰이더 그래프 등 아티스트들이 직접 그래프를 조작하면서 좀 더 편하게 작업할 수 있는 툴을 기본적으로 갖추기 시작했다.

그렇다면 오는 10월에 정식 출시될 유니티6에서는 이러한 툴이 어떻게 진화할까? 프레드 모로 선임 테크니컬 PM과 오슨 파브렐 선임 VFX TA가 유니티6 업데이트 후의 변화에 대해서 소개해나갔다.


실시간으로 빛이 변화하는 환경을 URP로 원활히 구현하기 위한 테크 데모이자 템플릿인 '오아시스'지만, 여기에 두 기술자는 유니티6에서 한층 개선된 셰이더 그래프와 VFX 그래프 등 툴을 활용해 다양한 효과를 연출했다. 비가 내리고 빗방울이 물웅덩이에 떨어지면서 파문이 번지거나, 카메라 렌즈에 빗방울이 맺히는 건 물론 상호작용 가능한 오브젝트에 불을 붙일 때 불꽃이 일고 연기가 피어오르는 특수 효과 등등. 이러한 효과를 외부 툴을 사용하지 않고 바로 엔진 안에서 쉽게 처리할 수 있다는 것이 유니티6의 개선점이었다.

물론 물밑의 굴절광이 맺히는 현상 같은 디테일은 사전에 데모를 통해 공개된 것을 활용했지만, 그것을 불러오기 위한 작업은 그래프로 간단히 적용할 수 있게 됐다. 셰이더 그래프에서 여러 서브 블록들을 샘플링, 믹싱하기 편해진 만큼 비가 오는 상황, 혹은 비가 온다는 키워드와 무드에 맞춰서 따로 분류해놓고 그에 맞춰 적용하게끔 노드를 연결하면 되기 때문이다.



▲ URP 샘플 템플릿 중 하나, '오아시스'에 여러 특수 효과를 빠르게 적용하는 시연을 통해 기술을 설명했다

또 카메라에 물방울이 맺히는 것도 풀 스크린 패스 렌더러 기능을 활용, 후처리를 카메라에 적용한 것과 같은 효과를 볼 수 있다. 여기에 유니티6에서는 표면과 후처리뿐만 아니라 UI 셰이더를 만드는 기능도 제공한다. 또한 여기에 셰이더 그래프도 지원, 여러 UI를 제작할 때 좀 더 일률적으로 작업할 수 있게 된다.












▲ UI도 셰이더 그래프를 활용해 여러 가지 효과를 내는 건 물론, 더 일률적으로 작업할 수 있게 됐다

데모로 선보인 실사적인 불꽃이나 연기 표현을 VFX 그래프로 어떻게 제작했을까? 유니티6의 기본 VFX를 살펴보면 가장 기본적인, 그러면서도 많이 활용되는 파티클 효과들이 여럿 있다. 그 중에서 심플 루프를 선택하면 아래에서 위로 솟아오르는 간단한 애셋을 생성, 그 뒤에 VFX 그래프를 조절해서 파티클 속성이나 포지션, 스폰 모드 등을 블렌딩할 수 있다.

유니티6의 VFX 그래프는 컨텍스트 노드와 블록을 활용, 파티클의 움직임과 크기, 색상, 물리적 속성까지 제어할 수 있다. 또한 셰이더 그래프와 더 매끄럽게 통합, 셰이더 그래프로 작업해두었던 것을 불와서 혼합하거나 하는 식으로 커스텀 셰이더를 만들 수 있게 된다.

이러한 과정으로 만든 모닥불 특수 효과는 시간대에 따라 빛이 바뀌는 정도에 영향을 받지는 않는 상황이다. 그래서 유니티에서는 VFX 그래프를 라이팅 시스템과 통합, VFX 그래프에서 라이팅 관련 내용을 인식하고 조명에 맞게 반영이 되도록 했다. 특히 낮에서 밤으로 바뀔 때, 6방향 스무스 조명을 활용해 불과 연기의 효과가 조명에 맞게끔 반영했다.




또한 VFX 그래프 내 셰이더 속성을 파티클 레벨에서 제어할 수 있도록 했다. 그래서 기존에 제작했던 모닥불의 빛을 푸르게, 혹은 녹색으로 바꾸거나 왜곡해서 기존 VFX를 다양하게 응용, VFX 제작에 드는 시간을 줄였다. 그렇게 재사용하기 쉽도록 맞춤형 VFX 프리팹과 템플릿을 만들 수 있으며, 여기에 VFX 그래프에 노출된 속성은 모노비헤이비어 스크립트를 통해 조율, 게임 내 상호작용에 따라 여러 매개 변수를 더 세부적이고 동적으로 조정할 수 있게끔 했다. 아울러 셰이더 프로퍼티를 추가, 인스펙터 창에서 기본적인 것을 빠르게 조절할 수 있도록 개선했다.

셰이더와 VFX를 빠르게 구현하는 것도 좋지만, 결국 이 두 가지는 최적화에서 가장 큰 비중을 차지하는 분야이기도 하다. 그래서 유니티6에서는 실시간 성능 프로파일링 및 최적화 도구를 구축, 아티스트들이 엔지니어의 도움 없이도 최적화를 진행할 수 있도록 했다. 실시간 성능 프로파일링에서는 GPU 메모리와 CPU 메모리 할당을 실시간으로 체크하거나, 어느 한 VFX만 멈추거나, 어웨이크 단계 혹은 업데이트 단계만 불러와서 체크하는 등 다양한 방식으로 디버깅과 체크가 가능해진다.

또한 오클루전을 적용, 카메라에 안 비치는 파티클은 렌더링되지 않게 해서 부하를 줄였다. 이 부분에서 경계값을 조절, 자신이 원하는 정도로 최적화를 할 수 있다. 또한 히트맵 시각화 도구로 그 씬에서 리소스를 잡아먹고 있는 노드를 확인, 최적화를 더욱 쉽게 진행하도록 돕는다. 아울러 셰이더 그래프와 VFX 그래프에 단축키까지 지원하고 속성 블랙보드는 물론, 노드 탐색 기능까지 강화해서 편의성도 한층 더 높였다.




모로 PM과 파브렐 TA는유니티6의 VFX 그래프는 마치 샌드박스처럼 무엇이든 쉽게 노드나 시각화된 자료로 이리저리 만져서 구현할 수 있게 됐다고 설명했다. 물론 커스텀 HLSL를 활용, 자신에게 맞춰서 커스터마이징하는 것도 가능해진다. 이를 위한 HLSL 패키지는 물론, 유니티에서는 앞으로 유니티6의 셰이더 그래프 및 VFX 그래프를 활용하기 위한 다양한 참고 자료를 출시할 예정이라고 전했다.















▲ VFX 그래프 이해를 위한 자료는 물론, 최적화에 파티클 충돌, 커스터마이징까지 폭넓은 기능을 추가했다

댓글

새로고침
새로고침

기사 목록

1 2 3 4 5