안녕하세요!


오늘은 옛날에 만든 레벨 디자인 툴에 대해 소개해볼까 합니다.




게임의 레벨 형태 소개


저희 게임은 높낮이가 있는 탑뷰 게임으로, 일종의 3D 지형을 갖고 있습니다.



3ebed528e0c431a379ecd2f804d437348292097ae7413127967314cf5b0fb8f0b15b61



지형은 타일로 이루어져 있는데, 각 타일은 3D 지형을 표현하기 위해 다양한 메타정보들을 가져야 합니다.



2cec9e31e0d0288650bbd58b3686746955



2cef9e31e0d0288650bbd58b36807c697505



지형의 높이가 올바르게 표현되기 위해, 모든 타일들에는 높이 정보가 입력되어야 하며 모서리에는 지형의 충돌 처리를 어떻게 할 것인지에 대한 정보가 입력되어야 합니다.





구 방식(툴 개발 이전)


초기엔 타일을 구성하고, 메타 데이터를 입력하는 과정을 수작업으로 진행했었습니다.


이때의 워크플로우를 나열하자면,


1. 타일의 ‘보이는 부분’을 만듭니다. Unity의 RuleTile로 이루어져 있습니다.



2fec9e31e0d0288650bbd58b3682746a0b



2. 타일의 벽과 땅에 높이를 입력하고, 땅인지 벽인지를 알려 3D 형태로 만듭니다.



2fef9e31e0d0288650bbd58b3688756c00



1. 벽이나 절벽 정보를 타일 모양과 방향에 맞춰 입력합니다.



2fee9e31e0d0288650bbd58b36827164d3



게임의 초기엔 지형이 비교적 단순했고, 지형을 만들기 위해 입력해야 하는 메타 데이터들이 자주 변경되지 않았기에 이러한 방식이 유지되었습니다.


하지만 게임의 형태가 어느 정도 굳어지고, 본격적으로 레벨을 제작하게 되면서 워크플로우를 간소화할 필요성이 생겼습니다.


지형이 복잡해지면서 수작업 난이도가 급격하게 상승했고, 레벨 수정이 너무 어려웠기 때문입니다.





새 방식



2eec9e31e0d0288650bbd58b36807d6992


새 방식은 사용자가 높이값만 입력하면, 메타정보와 타일이 함께 자동으로 입력되는 형태입니다.

타일 브러쉬로 한 번 드래그 하여 사각형만 입력하면 위와 같은 지형이 생성됩니다.


이러한 자동화를 위해, 미리 규격화된 지형 세트를 작성할 필요가 있습니다. (ScriptableObject)




3eb28268e2db3e8650bbd58b3686746da8bcf6


지형 세트를 입력하는 에디터는 위처럼 생겼습니다.






툴 사용 모습



지형 툴의 개발 초기에 찍었던 gif입니다.

여러가지로 좀 지저분하고 지형을 드래그 하는 모습을 보면 렉도 좀 있습니다.



22b1d432eadd34e869b6d09528d52703935941bd01e87bae



사용하면서 불편한 요소들을 조금씩 개선하였고, 현재는 더 깔끔하고 속도도 빨라졌습니다.



23b8c732eadd34e869b6d09528d52703981553c4d74393



실내 지형의 경우 테두리를 Wall로 설정하고 그리게 됩니다.

이 경우 자동으로 천장(검은 부분)이 생성됩니다.





3abcdc2ae1c039b123add3a61fcb21392da62a5ed78f5fd7fdaf9a4d8a8b4e5cb2


타일 세트는 레이어별로 다르게 설정할 수 있기 때문에 여러 타일 세트를 동시에 사용할 수도 있습니다.


 


20a8dc32ecde39bf6bad85f804d437340b60e44ed3b81bbc25bad536d2f29f991bd644




읽어주셔서 감사합니다!




[개발 일지 링크 모음]


[스팀 페이지]