넥슨 민트로켓 변순항 개발자는 22일 열린 유니티 ‘U Day 서울’ 행사에서 ‘데이브, 2D 다이버를 3D 세상으로’를 주제로 ‘데이브 더 다이버’의 포스트모템을 진행했다.
그는 ‘데이브 더 다이버’의 핵심 콘셉트는 바로 2D와 3D라는 두 차원의 연결이며, 이것은 두 차원이 서로 상호작용한다는 것을 의미한다고 한다. 실제로 주인공인 데이브를 비롯한 캐릭터는 2D디지만, 그 외에 다른 물체들은 3D이기 때문이다.
2D는 이미지를 평면으로 구현해 깊이를 표현할 수 없다. 물리엔진도 마찬가지로 공간의 상호작용이 어렵다. 공간적 특성도 다른 만큼, 원래는 각각의 물리엔진이 서로 상호작용할 수 없는 구조로 되어 있다고 한다. 즉, 아무 일도 벌어지지 않는다는 것이다. 이 부분을 극복한 것이 ‘데이브’라고 한다.
첫번째로 3D 모델에 딱 맞는 2D 콜라이더(물리 충돌 처리를 위한 오브젝트의 형태) 입히기다. ‘데이브 더 다이버’의 바다 지형은 게임의 밸런스 조절과 입체감 및 공간감을 주어, 2D와 3D의 조화를 만드는 역할을 한다. 이를 위해 3단계의 콜라이더를 거친다고 한다.
먼저 배경 콜라이더의 더미(뼈대)를 제작하고, 이를 바탕으로 아트 팀에서 지형 모델 리소스를 제작한다. 자연스러운 환경 표현을 위해 원경을 추가하고, 여기에 콜라이더를 입히게 된다는 것이다. 이를 통해 데이브가 벽을 뚫지 않고 바다를 탐험할 수 있게 됐다.
처음에는 사람(특정 기획자)이 일일이 눈으로 보고 그 작업을 했지만, 그만큼 많은 시간이 들어간다는 문제가 있었다. 그러나 프로젝트 규모가 커질수록 부담이 커졌고, 결국 개발팀에서 콜라이더 자동 생성 툴 개발에 나섰다고 한다.
3D 모델을 캡쳐해 2D로 만들고, 여기에 셰이더를 입혀 지형을 완성해 나갔다. 또 검증을 편하게 하기 위해 모든 지형에 일정 간격으로 데이브의 스프라이트를 넣었다. 그 덕에 작업 시간이 90% 짧아졌고, 결과물이 실제 손으로 했을 때와 동일했다.
두 번째로 2D 콜라이더의 회전 적용하기다. 원래 2D는 Z축으로만 도는 만큼 3D 배경과의 조화가 필요했다. 특히 상어 같은 큰 물고기가 회전할 때의 표현과 충돌 처리가 어려운데, 그래서 같은 크기의 콜라이더를 십자 형태로 배치해 어떠한 상황에서도 2D인 데이브와 충돌할 수 있도록 했다.
마지막으로 카메라에 따른 2D와 3D 처리다. 두 차원은 각각 평면과 원근감의 특징을 갖고 있기에, 물리와 렌더링의 구현에서 문제가 발생한다는 것이다. 예를 들어 보스는 3D 물체인데, 공격 판정을 위한 콜라이더를 적용할 때 움직임과 깊이로 인해 보는 것과 다르게 충돌의 발생 여부에 차이가 난다는 것이다.
그래서 뒤에 있는 보스의 콜라이더를 명시적으로 데이브가 있는 평면으로 당기는 방법을 썼다. 깊이값을 카메라와 주먹까지의 거리가 아니라 카메라와 데이브까지의 거리로 바꾸고, 이를 월드포지션으로 바꿨다. 또 원근의 차이를 해결하기 위해 화면에 보이는 절단면의 비율을 구해 반영하는 것을 적용했다고 한다.
이러한 처리로 ‘데이브 더 다이버’는 두 차원의 연결이라는 핵심 콘셉트를 구현할 수 있었다고 한다. 그 덕에 게임 내에서 많은 일이 벌어지게 되며 제대로 작동하게 됐다. 그리고 다른 분들도 차원을 넘는 자신만의 게임을 만들기를 기대한다는 말로 발표는 마무리됐다.
저작권자 © 게임뷰 무단전재 및 재배포 금지
