높이값을 가진 이미지를 이용해서 Terrain를 제작하게 되면 기획자가 의도한 컨셉 지역의 면적과 지역간을 연결하는 동선을 빠르고 손 쉬우며 비교적 정확하게 구현할 수 있습니다- 이를 구현하는 방법을 간략하게 설명하면-
1 – 포토샵에서 257*257 Pixel size 크기의 새로운 창을 만듭니다-
이는 맵의 크기를 256UU*256UU의 크기로 하기 위함입니다-
실제로 프로그램 상으로 보이지 않는 1Pixel이라는 것이 있습니다-
그것 때문에 우리는 한 변이 256UU*256UU로 이루어진 맵을 만들기 위해서 이미지 크기를 257*257 Pixel로 만들어야 합니다-
2- 하나의 그리드 크기를 16으로 맞춥니다-
그러면 우리가 만든 맵은 각 변이 16개이고, 전체는 256개의 정사각형 그리드로 보여질 것입니다- 하나의 작은 정사각형은 1310m^2의 전체 맵에서 약 80m^2면적을 차지합니다- 이는 하나의 그리드가 전체 맵의 약 0.4%의 면적을 차지하고 있는 것입니다- 이러한 그리드의 표시는 자신이 계획하는 구획의 면적을 대략적으로 알아보는데 무척 편리합니다-
3 - 기획서의 의도에 맞춰서 그레이값으로 0-255의 높이값을 가지는 16Bit의 BMP 이미지를 만들어 저장합니다-
주의할 점은 자신이 만든 터레인의 이미지를 언리얼 에디터에서 가져오면 지형이 돌아가있는 것을 발견하게 될 것입니다- 이는 언리얼 에디터에서 X,Y축이 설정이 우리가 흔히 쓰는 축과는 다르기 때문에 발생하는 것입니다- 하지만, 실제로 우리가 쓰는 축과 언리얼 에디터의 축을 제대로 맞추려면 Filp Vertical이나 Filp Horizontal을 해준 후 시계방향으로 90도의 회전을 해줘야 하지만 실제로는 그렇지 않습니다- 이는 언리얼 툴에서 외부의 이미지 파일을 가져올 때 어떤 알고리즘을 갖고 있다는 가정을 할 수 있습니다-
현재의 가장 간단한 해결책은 자신이 원하는 지형을 이미지 파일로 제작한 후 시계방향으로 90도 회전을 한 후에 언리얼 에디터에서 가져오는 것입니다-
BMP파일을 저장할 때는 시계방향으로 90도 회전 후 16Bit용으로 저장해야만 합니다-
4 – 언리얼 터레인 에디터를 불러와서 새로운 터레인을 만듭니다-
그리고 새로 만든 터레인을 선택한 뒤 저장한 BMP파일을 가져옵니다-
가져오기에서 2개의 항목을 꼭 체크해줘야 합니다-
5 – 터레인의 높이값은 보통은 64정도가 적당합니다-
z축의 3ddraw값을 64로 한다면, 64*256*0.02 = 327.68m의 최대 높이값을 가진다는 뜻입니다.
맵의 컨셉상 고저차가 커야한다면 좀 더 높은값을 가져도 상관없습니다-
하지만, 이왕이면 32 - 64 - 128 - 256의 단계를 가지는 것이 이후 단위를 계산함에 있어서도 편할 것입니다.
4 – 현재는 피벗이 가장 높은 곳을 기준으로 지형이 설정되어 있을 것입니다-
작업의 편의를 위해서 현재의 피벗을 터레인의 가장 낮은 Z축 값을 기준으로 바꿔줘야 합니다-
터레인의 피벗을 이동 시킨 후 저장 합니다- Z축 값도 0으로 다시 맞춰줘야 합니다-
5 – 이렇게 이미지 파일을 이용해서 간단하고 대략적인 지형을 생성할 수 있습니다-
이를 응용한다면 테라젠(http://www.planetside.co.uk/)을 이용해서 높이값을 가지는 Tga파일을 가지고 포토샵에서 자신이 원하는 지형으로 수정을 한다면 비교적 짧은 시간에 빠르게 대략의 지형을 만들 수 있습니다- 이는 레벨기획자가 자신이 원하는 지형을 레벨아트팀에게 정확하게 얘기할 수 있습니다- 또한, 레벨 기획시 원하는 장소의 면적과 동선의 길이의 수정도 비교적 쉽고 간단하며 용이하게 할 수 있음을 의미합니다-
단점은 8Bit의 높이 값을 가지는 이미지 파일을 사용하므로, 지형의 단계가 크지 않아 지형을 만들고 나서도 Smooth작업을 해주어야 합니다- 해결책은 더 높은 단계 값을 가지는 이미지파일을 ‘HMCS - HeightMap Conversion Software’란 소프트웨어로 변환하여서 다시 UDK에 물리는 방법이 있을꺼라 생각됩니다- 아직 테스트를 해보지는 못했습니다-
퍼가시는 것은 상관없으나 출처를 바꾸거나 자신이 작성한 것 처럼 꾸미지 않으셨으면 합니다-
그럼 좋은 하루 보내세요-