Custom Map 생성 기능
본 페이지는 MORAI SIM: Drive에서 제공하는 맵 외에 User가 자체적으로 맵을 생성하는 방법에 대해 설명한다.
환경구성
UNITY HUB 다운로드 : UNITY HUB DOWNLOAD
UNITY 2020.3.6 다운로드 : unityhub://2020.3.6f1/338bb68529b2
Extra Asset Bundle 제작을 위해 UNITY HUB를 이용해서 설치한다.
UNITY HUB 설치가 완료되면 2020.3.6다운로드 링크를 복사해 주소창에 입력해서 설치를 진행 한다.
DLL 다운로드 : Extra AssetBundle DLL
빈 Unity Project를 생성한다.
Unity Package Manager를 통하여 Probuilder Package를 Install 한다.
Probuilder Package에 대해서 MORAI에서 별도로 지원하지 않음. ( Custom Map 사용을 위한 안내용)
File > Build_settings 에서 ‘Target platform = windows’, ‘Architecture = x86_64’ 설정 여부 확인 필요.
Unity Editor Linux용 설치 시, Target platform은 Linux로 설정한다.
Project Asset 폴더 내에 plugin 폴더를 생성하고 다운로드 받은 AssetbudleEditor.dll을 넣어 준다.
Unity 상단 메뉴의 Build → AssetBundles → AssetBundle Editor 를 누르면 AssetBundle Editor가 표시되고 Extra Asset Bundle을 만드는데 필요한 폴더들이 자동으로 생성 된다.
Initialize : 초기화 Editor를 킬 때 자동으로 초기화 하지만 Editor를 켠 상태에서 데이터가 추가 되었을 때 누르면 한 번 더 초기화 진행.
Build Bundle : 번들 빌드 진행
Scene : Scene을 구성할 오브젝트들을 생성하기 위한 Tap
Obstacle : Obstacle로 생성할 오브젝트들을 생성하기 위한 Tap
UNITY 2020.3.6
UNITY 2020.3.6
Custom Map생성 방법
98_Scene폴더 내에 구성하고 싶은 맵 이름(e.g. extra_map)으로 폴더를 생성하고(소문자) Obj or Fbx 파일을 넣어준다.
맵 이름으로 생성한 폴더 하위 폴더로 MgeoData라는 폴더를 만들어서 Mgeo 데이터들을 넣어준다.
Material 설정
차선(흰색, 노란색, 파란색)에 대해 Material이 설정 가능하다.
맵 Obj파일을 넣은 경로(e.g 98_Scenes/extra_scene)에 차선 Mesh(.obj 또는 .fbx포맷)을 넣어준다.
MgeoData 폴더 안에 mat_config.json파일을 작성하여, 어떤 파일이 어떤 차선인지 명시한다.
e.g) mat_config.json --------------------- { "Lane_White": [ "lm_white.obj" ], "Lane_Blue": [ "lm_blue.obj" ], "Asphalt": [ "road.obj" ] }
CODEMaterial 종류
지원하는 material 종류는 계속 추가 될 수 있으며, 파일명은 개발에따라 변경 될 수 있음.
Unity 상단 메뉴 Build → AssetBundles → AssetBundle Editor에서 Initialize를 눌러주고 Scene 탭 드랍다운 리스트에서 생성하고자 하는 맵을 선택한 후 Create Bundle을 눌러준다.
맵 이름 좌측의 화살표를 클릭하여 드랍다운 메뉴를 연다.
AssetBundle Editor window의 GameObject(grp1)을 선택하여 해당 GameObject가 Scene에 생성된 것을 확인한 후 “Tag 0“ 이라고 쓰여있는 드랍다운 리스트를 클릭한다.
태그 드랍다운 리스트에서 각 GameObject에 맞는 Tag(Yellow_lane, Asphalt 등)를 지정한다.
이전 과정을 정상적으로 수행했다면 도로 Mesh에 Asphalt Tag를 지정 후 도로 Mesh 위 임의의 점 클릭 시Ego Vehicle Gizmo(아래 사진 직육면체 축)가 생성된다. 이를 통해 MORAI SIM에서 Custom Map 진입 직후의 Ego Vehicle의 초기 생성 위치/회전 정보를 지정할 수 있다. (
Ego Vehicle의 초기 생성 위치 미지정 시, MORAI SIM에서 Custom Map 진입 시 Ego 차량 도로 아래로 계속해서 추락한다.)
Extra Asset Map Option을 입력하고 Save Asset을 누른다.
Save Asset
생성한 맵을 어셋으로 저장한다.
Option을 지정 해주고 제일 마지막에 저장한다.
정상 경로에 있다면 생성 및 AssetBundle/extrasceneprefab폴더에 정상 생성된다
StartPoint
맵 진입시에 Load 될 차량의 초기 Position
StartPoint 미지정 시, 시뮬레이터에서 Custom Map 진입 시 Ego 차량 도로 아래로 계속해서 추락함.
Road 클릭 시, 좌표 확인 가능함.
시작 지점은 Scene 상의 메쉬를 클릭하면 클릭한 위치가 저장된다.
StartRotation
시작 지점에서 로드할 차량의 초기 Rotation
Master GameObject
최상단 게임 오브젝트
GameObject
하위 오브젝트들로 개별적으로 동작 할 수 있음
Object Type : 해당 Mesh의 Tag 설정
도로가 될 Object : Asphalt
차선이 될 Object : Road_Sign
Build Bundle 버튼을 눌러서 Bundle을 생성한다.
생성된 Bundle을 C:/ExtraAssetBundle/win_extra/ 에서 확인할 수 있다. Linux 환경에서 생성 시 'Lin_extra'로 확인할 수 있다.생성된 Bundle 파일을 Launcher가 설치된 폴더\MoraiLauncher_Win_data\Bundle\(Version)\Extra 경로에 옮겨준다.
시뮬레이터 실행 후 Map List에서 V_Extra_Scene, Vehicle을 선택하고 Start를 누르면 Extra Scene Selecter가 나온다, 여기서 생성한 맵을 선택하고 Load Scene을 클릭한다.
Extra Asset Scene(Custom Map) 실행 모습