탑건: 매버릭 미션 개발하기 #6 : 맵 꾸미기

Lunetis·2022년 8월 5일
11

탑건: 매버릭

목록 보기
7/14
post-thumbnail

텍스처 칠하기

지금 만들어진 지형은 그냥 눈 덮인 섬입니다.

하지만 영화에서 볼 수 있는 지형은 이 정도로 하얗지는 않습니다. 숲도 보이고, 강도 있고, 암석 부분도 있는 등 여러 디테일을 만들어줘야 합니다.

Paint Texture로 모드를 변경하고,

지형 레이어를 몇 가지 추가합니다.

바다와 맞닿아있는 부분은 아마 눈이 바닷물에 녹아서 쓸려 내려가겠죠. 흙으로 칠해주겠습니다.


그런데 모든 외곽선 부분을 칠하기에는 너무 손이 많이 가겠는데요.
게다가 손으로 드래그하면서 그리는 건 불규칙적이기도 하고요.

이럴 때 유용하게 사용할 수 있는 기능이 있습니다.



브러시 마스크: Height

앞서 말씀드렸듯이 해안선 부분은 눈 대신 흙으로 칠하려고 합니다.
바다 평면의 Y좌표는 0이니까, 대략 10정도까지는 확정적으로 칠해도 되겠죠?

Brush Mask에서 + 버튼을 누르고 Height를 선택합니다.

Height Range는 0부터 1 사이의 값을 가져야 합니다.

지금 만든 지형의 높이 범위는 0부터 5000까지입니다.
그런데 가장 낮은 지형을 물에 잠기게 하기 위해 높이를 60정도 낮춰놓았기 때문에, 지형 좌표계로 따지면 70까지 칠해져야 하는 것이 맞겠죠. 70/5000 = 0.014를 오른쪽 칸에 써넣겠습니다.

Remap Curve는 그 범위에 어떻게 칠해질지 나타내는 그래프입니다. 0과 70에 가까운 부분은 칠해지지 않고, 그 사이에 있는 부분이 제대로 칠해지겠네요.

어차피 0 부분은 물에 잠겨서 보이지 않을테니, 그냥 이 상태로 마우스를 갈겨보겠습니다.

단 10초만에 가장자리 부분을 흙으로 덮을 수 있습니다!



브러시 마스크: Slope

눈 덮인 산을 생각해보면, 경사가 급한 곳에서는 눈이 쌓이지 않고 흘러내리기 마련입니다.

급경사 부분은 눈 대신 돌로 덮어보죠.


이번에는 Slope를 선택해봅니다. Remap Curve 부분은 왼쪽은 수평, 오른쪽은 수직입니다.
(0도 ~ 90도)

수직에 가까울수록 돌로 덮여야 하니까, 90도에 가까울수록 돌 텍스처가 더 많이 칠해질 수 있도록 커브를 이렇게 바꿔놓고 칠해봅시다.

협곡 부분과 분지 부분이 까맣게 칠해진 모습입니다.

그런데 가까이서 보니까 굉장히 극혐이네요.

다른 텍스처도 칠해서 좀 덮어둡시다.


브러시 마스크: Concavity

지형은 오목한 부분과 볼록한 부분이 있습니다.

이런 부분들만 따로 칠할 수 있게 해주는 브러시 마스크입니다.

  • Recessed : 오목한 부분
  • Exposed : 볼록한 부분

Recessed를 선택해서 오목한 부분을 한 번 칠해봅시다.

뭔가 생크림 케이크에 초콜릿 칩을 뿌리는 것 같은 느낌입니다.


나무 심기

이 민둥산에 나무를 심어봅시다.

우선 맵에 배치할 나무 오브젝트가 필요하니다.

https://assetstore.unity.com/packages/3d/vegetation/trees/conifers-botd-142076

유니티의 Book of the dead 데모에서 추출한 침엽수를 누가 에셋 스토어에서 배포하고 있습니다.
이걸 가져다 쓰겠습니다.


4개의 침엽수가 있고,

LOD*도 설정되어 있어서 지형에 깔기 정말 좋아보입니다.

LOD(Level of Detail): 오브젝트와 카메라 사이의 거리에 따라 오브젝트의 디테일 차이를 다르게 합니다. 멀리 떨어진 오브젝트일수록 자세히 보여줄 필요가 없으므로 간단한 오브젝트로 바꿔서 표현해주면 오버헤드를 줄일 수 있습니다.


Terrain에 있는 5개 버튼 중 3번째, Paint Trees를 선택합니다.

Edit Trees - Add Tree로 나무 프리팹을 등록합니다.


나무를 하나 선택하면 밑에 있는 Mass Place Trees라는 버튼이 활성화됩니다.

이 버튼은 지형을 전체적으로 덮도록 나무를 심는데 유용합니다. ...

Brush Size는 5000밖에 커지지 않지만 저희의 맵은 심각하게 큽니다. 그러니 이 버튼을 눌러봅시다.

Place Trees라는 창이 뜨고, 배치할 나무 숫자를 입력할 수 있습니다.

한 번 눌러봅시다.

글쎄요, 하나도 안 바뀐 것 같은데요.

하지만 확대를 해보면 이렇게 나무들이 보입니다.

LOD때문에 안 보였던 것 같네요.


이거로는 부족합니다. 더 많은 나무가 필요합니다.

나쁘지 않긴 한데, 뭔가 맵이랑 어울리지 않는다는 느낌이 듭니다.

그리고 선택한 타일에만 배치되기 때문에 16개 타일에 대해 모두 눌러줘야 합니다.

게다가 물속에도 배치되고요.

저는 그냥 수동으로 배치해야겠습니다.

나무가 잘 심었는지 시찰도 하고요.


지금까지 만들어진 지형들입니다.


다리 만들기

마지막으로, 이렇게 생긴 다리를 추가해봅시다.

그냥 지나가면 다리에 부딪히기 때문에, 비행기는 수직으로 세워서 지나가야 합니다.
그 위로 넘어가면 고도 제한에 걸리고요.


당연하지만 이 다리는 유니티 지형 툴로는 만들 수 없습니다.

하지만 유니티는 간단한 3D 모델링을 할 수 있는 패키지가 있습니다.

ProBuilder라는 것이죠.

Tools - ProBuilder - ProBuilder Window를 선택해서 창을 열어봅니다.

New Shape를 선택합니다.

맨 앞에 있는 버튼이 Arch네요.

지금 아치형 다리가 필요한 걸 어떻게 알았을까요.

아무렇게 아치를 하나 만들고,

밑바닥 면을 선택해서,

Extrude Faces로 확장하고 밑으로 당기면 아치가 완성됩니다.

잠시 비행기를 가져와서 수직으로 세워야만 지나갈 수 있는 길이가 되도록 아치를 조정하고,

신나게 복붙을 합니다.


윗부분도 대충 만들어주고,

재질을 콘크리트로 바꿔주면 간단한 다리 완성입니다.


레이어를 Ground로 설정하고, 다리 모델링에 Rigidbody를 추가한 다음 충돌 체크를 해봅시다.

그냥 들어가려고 하면 입구컷을 당하고,

......






이렇게 세워야만 지나갈 수 있습니다.

만약 다리 위로 지나가려고 하면, 제한고도(600, 실제 실패 커트라인은 700)를 넘기게 됩니다.


영화에서는 다리가 2개 있었죠.

적당한 위치에 다리를 하나 더 얹어줍니다.

이제 다시 협곡을 비행하면서 테스트해봅시다.

근데 제가 만들어도 빡세네요 참.



지형 만들기도 끝났으니, 이제 미션 내용을 제대로 구현하면 되겠습니다.

맵 곳곳에 지대공 미사일도 배치하고, 적 전투기도 놓고, 고도 제한도 설정하고, 기타등등 하여튼 지형이 준비되면 해야 할 일들을 차례차례 해결해 나갈 때가 되었습니다.

이 프로젝트의 작업 결과물은 Github에 업로드되고 있습니다.
https://github.com/lunetis/OperationMaverick

1개의 댓글

comment-user-thumbnail
2022년 8월 10일

너무 멋지십니다!

답글 달기