K-digital traning/Final Project

Gazzlers 개발일지 - Map 수정(with CurvedWorld)

내꺼블로그 2023. 12. 19. 18:00

현재 map의 분위기가 단조롭고 평화로워 게임컨셉과는 다소 이질적이다는 피드백을 받아 이를 수정해보고자 한다.

 

 

우선 분위기를 저해하는 트리를 제거하였다.

StructureManager 스크립트에서도 트리를 설치하는 메서드는 제거하였다.

 

 

 

 

 

 

 

대애애애충 건물이 따닥따닥 붙어있는 느낌을 내면 괜찮지 않을까 싶어 대충 만들어본 움짤.

다른 모양의 건물을 몇 개 더 새워서 요런식으로 설치되도록 구현하면 어떨까 싶댜.

 

놀랍게도 prefab이 이 순서대로 small, medium, large임,,,

 

건물은 대애충 크기별로 해놓고 구현해보려는즁...

 

 

1. 중간따리(?) 건물 따닥따닥 붙여 설치하기

 

 

 

 

 

 

나오기는 하다만

 

 

나무로만 박아놔서 미쳐 못느꼈었던 요 끄트머리 부분이 눈에 자꾸  거슬림,,,,,(특히 VR기기를 착용했을 때 더더욱,,,)

 

 

 

 

그래서 쓰게 된 CurvedWorld

 

먼저 CurvedWorld Package 임포트 ㄱㄱ

https://assetstore.unity.com/packages/vfx/shaders/curved-world-173251

 

Curved World | 시각 효과 셰이더 | Unity Asset Store

Add depth to your next project with Curved World from Amazing Аssets. Find this & more 시각 효과 셰이더 on the Unity Asset Store.

assetstore.unity.com

 

 

 

 

menu->window->amazing assets->curved world 클릭

 

 

 

 

Curved world는 Shader의 vertex를 조작해서 bending 효과를 주는 아이이므로 Curved World에서 제공하는 Shader를 사용해야함.

기존 Material을 보존하기 위해 Renderers Overview 탭에 들어가서 Refresh옆에 버튼 클릭해서 Replace Materials With Duplicates 클릭(Material 복제됨)

Renderers Overview는 Scene에 있는 모든 Material, Shader를 목록에 보여주며, 목록에 있는 애들만 수정 가능.

 

 

 

참고로 Selected Ojects를 선택하면 내가 선택한 object의 shader 및 material만 목록에 나타남.

이런 식으로 선별해서 원하는 부분만 수정하는 것도 가능.

 

 

(참고로 나는 현재 map을 동적으로 생성하고 있는 중인지라 run 상태에서 하는즁,,,,,)

+) 프리팹 만들 오브젝트를 씬에다가 놓고 수정한 다음 그 오브젝트를 프리팹으로 돌리면 되는 거였는데 헛지거리한 1인

 

 

 

폴더 이름, 파일 이름(prefix, suffix 둘 중 하나만 써도 ok) 설정하고 CreateDuplicate 클릭

 

그러면 이렇게 material이 복제되어 생성됨.(현재 Scene에 저장되어 있는 material들의 저장위치가 통일되어 있지 않아서 이렇게 떠있는 상황,,,ㅠ  material을 복제하실거면 위치를 통일시키는 것이 더 편할겁니댜,,)

 

 

 

대충 요렇게 생성이 됩니댜

 

 

 

 

그 다음 Change -> Amazing Assets -> Curved World에서 사용할 Shader 선택.

필자는 무난하게 Standard 선택

 

 

 

 

다음으로 Change Curved World Bend Settings 클릭

 

 

 

 

z축(world 좌표 기준)을 구부릴 것이므로  Bend Type을 Classic Runner->Z positive로 변경

참고로 Classic Runner 타입은

 

요런 아이할때 쓰면 됩니댜,,,

 

BendType 변경은 Material 내에서도 가능

 

 

 

 

이제는 Scene부분 세팅할 차례

오탈자 ㄹㅈㄷ

 

 

Scene으로 넘어와서 Hierarchy에 빈 게임오브젝트로 CurvedWorld Controller 부착

 

 

Curved World Controller 오브젝트에 CurvedWorldController 컴포넌트 부착

Bend Type => Classic Runner(Z positive)

Bend Settings로 Horizontal, Vertical 값을 조절하면 끝!

 

 

참고로

X Positive -> x축 +방향

X Negative -> x축 -방향

Z Positive -> z축 +방향

Z Negative -> z축 -방향

 

Horizontal -> 축 기준으로 수평

Vertical -> 축 기준으로 수직

 

 

 

 

 

 

짜잔! 그러나 문제 발생,,,,

 

 

 

 

커브가 그냥 끊겨버린댜,,,,,,

 

 

 

 

 

그 이유를 보아하니

 

 

특정 위치 기준에서 map이 curved 되는 상황.

 

 

 

 

Curved World Controller 컴포넌트에서 Pivot Point의 Transform에 PlayerCar를 할당하여 해결.

(참고로 저 상황에서 Manual Update를 체크하면 아까같은 상황이 발생할 수 있으므로 체크하지 않도록 주의)

 

 

 

 

 

 

 

 

완서어어어어엉

 

 

 

 

+ 간혹 이런 오류도 발생

 

Bend ID를 1에서 4로 바꾸더니 missing keywords라는 에러가 발생.

이럴때는

 

 

Actions->Update Shader누르면 대부분 해결 가능