본 페이지는 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

  1. 빈 Unity Project를 생성한다.

  2. 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로 설정한다.

  3. Project Asset 폴더 내에 plugin 폴더를 생성하고 다운로드 받은 AssetbudleEditor.dll을 넣어 준다.

  4. 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생성 방법

  1. 98_Scene폴더 내에 구성하고 싶은 맵 이름(e.g. extra_map)으로 폴더를 생성하고(소문자) Obj or Fbx 파일을 넣어준다.

  2. 맵 이름으로 생성한 폴더 하위 폴더로 MgeoData라는 폴더를 만들어서 Mgeo 데이터들을 넣어준다.

  3. 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"
        ]
      }
      CODE
    • Material 종류

    • 지원하는 material 종류는 계속 추가 될 수 있으며, 파일명은 개발에따라 변경 될 수 있음.

  4. Unity 상단 메뉴 Build → AssetBundles → AssetBundle Editor에서 Initialize를 눌러주고 Scene 탭 드랍다운 리스트에서 생성하고자 하는 맵을 선택한 후 Create Bundle을 눌러준다.


  5. 맵 이름 좌측의 화살표를 클릭하여 드랍다운 메뉴를 연다.


  6. AssetBundle Editor window의 GameObject(grp1)을 선택하여 해당 GameObject가 Scene에 생성된 것을 확인한 후 “Tag 0“ 이라고 쓰여있는 드랍다운 리스트를 클릭한다.


  7. 태그 드랍다운 리스트에서 각 GameObject에 맞는 Tag(Yellow_lane, Asphalt 등)를 지정한다.


  8. 이전 과정을 정상적으로 수행했다면 도로 Mesh에 Asphalt Tag를 지정 후 도로 Mesh 위 임의의 점 클릭 시Ego Vehicle Gizmo(아래 사진 직육면체 축)가 생성된다. 이를 통해 MORAI SIM에서 Custom Map 진입 직후의 Ego Vehicle의 초기 생성 위치/회전 정보를 지정할 수 있다. ( (warning) Ego Vehicle의 초기 생성 위치 미지정 시, MORAI SIM에서 Custom Map 진입 시 Ego 차량 도로 아래로 계속해서 추락한다.)


  9. 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

  10. Build Bundle 버튼을 눌러서 Bundle을 생성한다.
    생성된 Bundle을 C:/ExtraAssetBundle/win_extra/ 에서 확인할 수 있다. Linux 환경에서 생성 시 'Lin_extra'로 확인할 수 있다.



  11. 생성된 Bundle 파일을 Launcher가 설치된 폴더\MoraiLauncher_Win_data\Bundle\(Version)\Extra 경로에 옮겨준다.


  12. 시뮬레이터 실행 후 Map List에서 V_Extra_Scene, Vehicle을 선택하고 Start를 누르면 Extra Scene Selecter가 나온다, 여기서 생성한 맵을 선택하고 Load Scene을 클릭한다.


  13. Extra Asset Scene(Custom Map) 실행 모습