导入/打包大地图

RoadRunner 中生成的大地图可以导入到 Carla 的源代码编译版本中,并打包在 Carla 独立包中分发和使用。该过程与标准地图的过程非常相似,只是添加了图块和批量导入的特定术语。


文件和文件夹

所有要导入的文件应放置在 Carla 根目录的Import文件夹中。这些文件应包括:

  • 多个.fbx文件中的地图网格代表地图的不同图块。
  • OpenDRIVE 定义位于单个.xodr文件中。

笔记

您不能同时导入大地图和标准地图。

地图图块的命名约定非常重要。每个地图图块应根据以下约定命名:

<mapName>_Tile_<x-coordinate>_<y-coordinate>.fbx

请注意,更正的 y 坐 标是指 y 轴上较低的图块。例如,Map01_Tile_0_1会坐在 Map01_Tile_0_0 的下面。

map_tiles

生成的Import文件夹中包含一个包含由四个图块组成的大地图的包,其结构应类似于以下结构:

Import
│
└── Package01
  ├── Package01.json
  ├── Map01_Tile_0_0.fbx
  ├── Map01_Tile_0_1.fbx
  ├── Map01_Tile_1_0.fbx
  ├── Map01_Tile_1_1.fbx
  └── Map01.xodr

笔记

package.json文件并不是绝对必要的。如果未创建package.json文件,自动导入过程将创建一个。在下一节中了解有关构建自己package.json的结构的更多信息。


创建 JSON 描述(可选)

.json描述是在导入过程中自动创建的,但也可以选择手动创建描述。现有.json描述将覆盖导入过程中作为参数传递的任何值。

.json文件应创建在包的根文件夹中。文件名将是包分发名称。文件的内容描述了 MapsProps 的 JSON 数组,其中包含每个地图和道具的基本信息。

Maps 需要以下参数:

  • name: 地图的名称。这必须与.fbx.xodr文件相同。
  • xodr: .xodr 文件的路径。
  • use_carla_materials: 如果为 True,地图将使用 Carla 材质。否则,它将使用 RoadRunner 材质。
  • tile_size: 图块的大小。默认值为 2000 (2kmx2km)。
  • tiles: 组成整个地图的.fbx图块文件的列表。

Props 不属于教程的一部分。请参阅本教程了解如何添加新道具。

生成的.json文件应类似于以下内容:

{
  "maps": [
      {
        "name": "Map01",
        "xodr": "./Map01.xodr",
        "use_carla_materials": true,
        "tile_size": 2000,
        "tiles": [ 
        "./Map01_Tile_0_0.fbx",
        "./Map01_Tile_0_1.fbx",
        "./Map01_Tile_1_0.fbx",
        "./Map01_Tile_1_1.fbx"
        ]
      }
  ],
  "props": []
}

进行导入

将所有文件放入Import文件夹后,在根 Carla 文件夹中运行以下命令:

make import

根据您的系统,虚幻引擎可能会消耗太多内存而无法一次导入所有文件。您可以通过运行以下命令选择批量导入文件:

make import ARGS="--batch-size=200"

make import命令还存在两个标志:

  • --package=<package_name> 指定包的名称。默认情况下,此项设置为map_package。两个包不能具有相同的名称,因此使用默认值将导致后续导入时出错。强烈建议更改包的名称。通过运行以下命令来使用此标志:
make import  ARGS="--package=<package_name>"
  • --no-carla-materials 指定您不想使用默认的 Carla 材质(道路纹理等)。您将改用 RoadRunner 材料。仅当您 不提供 自己的.json 文件时才需要此标志。.json文件中的任何值都将覆盖此标志。通过运行以下命令来使用此标志:
make import  ARGS="--no-carla-materials"

所有文件都将被导入并准备在虚幻编辑器中使用。地图包将在Unreal/CarlaUE4/Content 中创建。将创建一个底图图块<mapName>,作为所有图块的流级别。基础图块将包含天空、天气和大地图参与者,可供参与者使用。

笔记

目前不建议使用虚幻编辑器中为标准地图提供的自定义工具,例如道路画家、程序化建筑等。


打包一张大地图

要打包大地图以便可以在 Carla 独立包中使用,请运行以下命令:

make package ARGS="--packages=<mapPackage>"

这将创建一个压缩在.tar.gz文件中的独立包。在 Linux 中文件将保存在Dist目录下,在 Windows 中文件保存在/Build/UE4Carla/。然后可以将它们分发和打包以在独立的 Carla 包中使用。


如果您对大地图导入打包过程有任何疑问,那么您可以在 论坛 中提问。