中文 | English
- Install Blender 4.2 LTS from Blender 4.2 LTS Download.
- Install JOSM from JOSM Quick Start.
- Install
blosmv2.7.25 (GitHub) andmitsuba-blenderv0.4.0 (GitHub).
Use JOSM to download the target OpenStreetMap area and save it as an .osm file.
- Open the
blosmplugin panel in Blender. SetImporttoFile. - Select the
.osmfile. Enable onlyImport buildings. DisableImport as a single object. ClickImportto load the OSM map into Blender. - Click
Add->Mesh->Plane. This creates a small plane at the world origin, then adjust its scale factor. - Rename the imported building material names to follow the Sionna RT material naming convention.
Export the Blender scene as a Mitsuba file.
- Enable
Export IDs. - Set the axis orientation to
Y ForwardandZ Up.
- Install Unreal Engine
4.27.2from EpicGames/UnrealEngine. - Install OSM2World
0.4.0from OSM2World Download.
In the downloaded OSM2World source directory, run:
./osm2world.sh -i /path/to/input_map.osm -o /path/to/output_map.glb- In Unreal Engine, search for the plugin
Datasmith glTF Importerand enable it. - In the top toolbar, click
Datasmith, then select the exported.glbfile. - Set
Import Uniform Scaleto100.
- Before building, select
SkyLightandLight Source, then setMobilitytoMovablein theDetailspanel. - Save the current map as a UE4 level.
- Set this level as the default level: open
Edit->Project Settings->Maps & Modes, then set bothEditor Startup MapandGame Default Mapto the saved map. This makes the UE4 project open and run this map by default.
- Copy the AirSim plugin into the UE4 project:
mkdir -p /path/to/YourUEProject/Plugins
cp -r /path/to/AirSim/Unreal/Plugins/AirSim /path/to/YourUEProject/Plugins/- Close Unreal Engine, then build the UE4 project so the AirSim modules are compiled:
/path/to/UnrealEngine/Engine/Build/BatchFiles/Linux/Build.sh \
YourProjectEditor Linux Development \
-Project="/path/to/YourUEProject/YourProject.uproject" \
-WaitMutex- Reopen the UE4 project and set
GameMode OverridetoAirSimGameModeinWindow->World Settings. - Add a
Player Startactor to the scene and place it slightly above the map surface. - In the
Content Browser, open theGeometriesfolder. Select all static meshes, right-click, and chooseAsset Actions->Bulk Edit via Property Matrix. Search forcollision, setCollision ComplexitytoUse Complex Collision As Simple, then save. This gives all selected static meshes collision. - Click
Playto launch the map with AirSim.
- Create the map in RoadRunner. For details, refer to the RoadRunner documentation.
- Export the map as an
.fbxfile.
- In the UE4
Content Browser, clickImportorAdd/Import, then select the exported.fbxfile. - For the detailed workflow, refer to section
1.2. The only difference is that.fbxfiles can be imported directly without enabling an additional plugin.
- In Blender, click
File->Import->FBX, then select the exported.fbxfile.
Open the required script in Blender's Scripting workspace and run it as needed.
- simplify_map_to_boxes.py: replace selected map objects, typically buildings, with box proxies.
- replace_selected_material.py: replace all material slots of selected objects with
itu_concrete. - mesh_statistics_report.py: generate a mesh statistics report for the scene.
- clean_invalid_normals.py: clean invalid normals and degenerate mesh data where possible.