안녕하세요!
오늘은 옛날에 만든 레벨 디자인 툴에 대해 소개해볼까 합니다.
게임의 레벨 형태 소개
저희 게임은 높낮이가 있는 탑뷰 게임으로, 일종의 3D 지형을 갖고 있습니다.
지형은 타일로 이루어져 있는데, 각 타일은 3D 지형을 표현하기 위해 다양한 메타정보들을 가져야 합니다.
지형의 높이가 올바르게 표현되기 위해, 모든 타일들에는 높이 정보가 입력되어야 하며 모서리에는 지형의 충돌 처리를 어떻게 할 것인지에 대한 정보가 입력되어야 합니다.
구 방식(툴 개발 이전)
초기엔 타일을 구성하고, 메타 데이터를 입력하는 과정을 수작업으로 진행했었습니다.
이때의 워크플로우를 나열하자면,
1. 타일의 ‘보이는 부분’을 만듭니다. Unity의 RuleTile로 이루어져 있습니다.
2. 타일의 벽과 땅에 높이를 입력하고, 땅인지 벽인지를 알려 3D 형태로 만듭니다.
1. 벽이나 절벽 정보를 타일 모양과 방향에 맞춰 입력합니다.
게임의 초기엔 지형이 비교적 단순했고, 지형을 만들기 위해 입력해야 하는 메타 데이터들이 자주 변경되지 않았기에 이러한 방식이 유지되었습니다.
하지만 게임의 형태가 어느 정도 굳어지고, 본격적으로 레벨을 제작하게 되면서 워크플로우를 간소화할 필요성이 생겼습니다.
지형이 복잡해지면서 수작업 난이도가 급격하게 상승했고, 레벨 수정이 너무 어려웠기 때문입니다.
새 방식
새 방식은 사용자가 높이값만 입력하면, 메타정보와 타일이 함께 자동으로 입력되는 형태입니다.
타일 브러쉬로 한 번 드래그 하여 사각형만 입력하면 위와 같은 지형이 생성됩니다.
이러한 자동화를 위해, 미리 규격화된 지형 세트를 작성할 필요가 있습니다. (ScriptableObject)
지형 세트를 입력하는 에디터는 위처럼 생겼습니다.
툴 사용 모습
지형 툴의 개발 초기에 찍었던 gif입니다.
여러가지로 좀 지저분하고 지형을 드래그 하는 모습을 보면 렉도 좀 있습니다.
사용하면서 불편한 요소들을 조금씩 개선하였고, 현재는 더 깔끔하고 속도도 빨라졌습니다.
실내 지형의 경우 테두리를 Wall로 설정하고 그리게 됩니다.
이 경우 자동으로 천장(검은 부분)이 생성됩니다.
타일 세트는 레이어별로 다르게 설정할 수 있기 때문에 여러 타일 세트를 동시에 사용할 수도 있습니다.
읽어주셔서 감사합니다!
와 툴 퀄리티가 ㅎㄷㄷ하네요
개쩌노. ㅅㅂ
왕고수ㄷㄷ
본인쟝은 낭만을 버리고 풀 3D로 도망처부럿는대
와 맵만들기에디터 짱이다
이게 대체... 일지 여지껏 올리신 거 봤는데 개고수 ㄷㄷ
분명 같은 유니티인데 완전 다른세계네..