Ch2-4. 지형과 식물 : 랜드스케이프 - 하이트맵

Date:     Updated:

카테고리:

태그:

인프런에 있는 배틀로얄 게임을 만들어보며 배우는 언리얼 게임 개발 강의를 듣고 정리한 필기입니다. 😀 강의 들으러 가기


Chapter 2. 지형과 식물

랜드스케이프 - 하이트맵

🚀 하이트맵이란?

Vertex는 X, Y 이동은 불가능하고 Z 축 위 아래로만 이동이 가능하다. 전체 랜드스케이프의 Vertex 의 Z 축 정보를 Vertex마다 0~255 (알파) 범위의 값으로 저장하여 하나의 그림에 담아 표현한 것을 하이트맵이라고 한다. 즉 하나의 랜드스케이프의 전체적인 높낮이 정보를 담고 있는 2D 그림이다. 하늘에서 수직으로 바라보는듯한 지형의 지도라고 생각하면 된다.

  • 하이트맵의 크기는 적용할 랜드스케이프의 전체 해상도와 일치하게 만들어야 한다.


🚀 하이트맵 생성 프로그램

사람이 일일이 조각하며 지형의 높낮이(Vertex의 Z 값 변화시키기)를 만들지 않아도, 자동으로 어떤 알고리즘에 의해 절차적으로 지형의 높낮이를 생성시켜 주는, 그래서 원하는 지형을 만들 수 있는 그런 프로그램들이 있다.

  • World Machine
  • Instant Terra
  • World Creator

즉, 하이트맵을 만들어주는 프로그램들들이다. 전부 유료다. Instant Terra 써보고 싶었는데.. 유료가 되버려서 못 썼다. 내겐 너무 비쌋다.. World Machine 같은 경우는 유데미에 강의들도 많던데 나중에 수강해서 배워봐야겠다.

image

이렇게 외부 프로그램으로 생성한 하이트맵은 이렇게 랜드스케이프 생성시 “파일에서 임포트” 하여 하이트맵을 가져와 그 하이트맵의 높낮이를 가진 랜드스케이프를 생성할 수 있다.


🚀 포토샵으로 하이트맵 수동으로 만드는 방법

예를 들어 8161 x 8161 해상도의 랜드스케이프를 만들 것이라면 8161 x 8161 사이즈의 그림 파일을 만들어야 한다. 그림 파일 내의 픽셀들(랜드스케이프의 Vertex에 대응)은 0 ~ 255 값을 가진다. 색깔은 사용하지 않고 밝고 어두움의 정도를 0 ~ 255 값으로 표현하는 정도다.

  • 포토샵으로 만든다면
    • 이미지 - 모드 - 회색 음영
      • 하이트맵은 색깔은 필요 없고 밝고 어두움을 나타내는 0 ~ 255 값만 사용하면 되기 때문에
    • 하얀색일 수록 높은 지형, 검은색일 수록 낮은 지형이다.
      • 예를 들어 아래와 같은 모양의 하이트맵을 만들었다면 이를 언리얼의 랜드스케이프에 적용하면 가운데에 최대 높이의 원기둥이 우뚝 서있는 형태가 될 것이다.

        image

    • 저장은 .PNG 파일로 한다.
  • 언리얼의 랜드스케이프 모드에서 “파일에서 임포트”를 통하여 앞서 만든 하이트맵을 적용하고 랜드스케이프를 생성하면 된다. 하이트맵에 의하여 아래와 같은 지형이 만들어졌다. 가운데에 우뚝 솟아 있는 원기둥..

    image

  • 하이트맵의 높낮이 값 0 ~ 255
  • 언리얼에서의 -256 X 100 ~ 256 X 100 에 대응하게 된다.
    • 랜드스케이프의 Scale Z 값이 100이라면, Z 축으로 Vertex 간의 간격이 100 = 1m 라는 것이다.
    • 하이트맵의 픽셀 마다 가지는 0 ~ 255 값은 따라서 언리얼로 가지고 오면 -256 X 100 ~ 256 X 100 값을 가지게 된다.
      • 최소 높이는 -25600 이 되고 (하이트맵에서의 하얀색)
      • 최대 높이는 25600 이 되는 것이다. (하이트맵에서의 검정색)


✈ 내가 사용한 하이트맵 출처

duke54님이 언리얼 포럼에 공유하신 하이트맵. https://forums.unrealengine.com/development-discussion/modding/ark-survival-evolved/92497-duke-s-free-heightmaps

강의에선 Instant Terra 로 하이트맵을 만드셨는데.. 유료가 되버려서 ㅠ ㅜ World Machine 을 배우기엔 시간이 부족하고.. 아무튼 구글링을 통해 하이트맵을 구했다. 내가 사용한 하이트맵은 이 곳에서 가져왔다. 넘 고마운 분..

  • 강의와는 다르게
    • Scale Z 값을 180 사용하였음
    • 8129 x 8129 해상도를 사용하였음


🌜 개인 공부 기록용 블로그입니다. 오류나 틀린 부분이 있을 경우 
언제든지 댓글 혹은 메일로 지적해주시면 감사하겠습니다! 😄

맨 위로 이동하기

UE4 Lesson 3 카테고리 내 다른 글 보러가기

댓글 남기기