这个项目能做什么

## 概述 Godot Road Generator 是一款面向 Godot 游戏引擎的插件,让开发者能够直接在编辑器中创建灵活的 3D 公路、街道以及沿车道行驶的交通系统。它旨在解决常见的道路创建问题,例如网格缝隙、车道过渡、交叉口以及交通 AI 集成。 ## 主要特性 - **基于横截面的几何结构**:RoadPoint 设置会在各点之间平滑插值,并提供车道控制小工具,可按点或按容器调整车道数量。 - **RoadContainer 组织方式**:将同级 RoadPoint 分组,并把多个容器吸附拼接在一起。可将容器保存为场景以便复用。 - **RoadPoint 检查器面板**:定义车道宽度、路肩及其他属性。按住 Shift 可将更改应用于容器中的所有点。 - **点击绘制与碰撞吸附**:在 3D 视口中点击即可绘制道路,并可吸附到几何结构。 - **程序化交叉口**:动态连接 RoadPoint 以创建交叉口,支持非平面布局。 - **预制交叉口容器**:内置四向、三向以及高速公路驶入/驶出匝道,可轻松吸附拼接。 - **Terrain3D 集成**:将地形压平以匹配道路高度,并支持可配置的边距和衰减。也可扩展以支持其他地形生成器。 - **多材质支持**:每个容器可分别设置表面材质和底面材质,并提供用于自定义材质的源 trim-sheet。 - **自动生成 AI 路径**:启用自动 RoadLane 放置,或手动放置车道。使用 RoadLaneAgent 帮助代理沿道路行驶并处理路段过渡。 - **装饰边缘曲线**:添加 CSG 路径几何或自定义脚本,沿左、右和中心曲线实例化资产。 - **运行时程序化功能**:操作可作用于单个 RoadSegment 以提升性能,从而支持游戏内程序化生成。 - **导出为 gLTF/glb**:导出道路网络的各个部分,以便在 3D 软件中进一步编辑。 - **自定义网格支持**:关闭几何生成并放入自己的网格和碰撞体,同时保持 AI 路径连接。 - **仅使用 GDScript**:无需编译,也不需要外部依赖。 ## 安装与使用 1. 从[发布页面](https://github.com/TheDuckCow/godot-road-generator/releases)下载最新版本,或从 [Godot 资产商店](https://store.godotengine.org/asset/theduckcow/road-generator/)获取。 2. 将 `addons/road-generator` 文件夹复制到项目中。也可以选择复制 `demo_roads` 文件夹以查看示例。 3. 跟随[入门教程](https://github.com/TheDuckCow/godot-road-generator/wiki/A-getting-started-tutorial)操作,或打开 `road_demos/demo_menu.tscn` 场景浏览演示。 4. 详细文档请参阅 [wiki](https://github.com/TheDuckCow/godot-road-generator/wiki)。 ## 版本支持 | 分支 | 插件版本 | Godot 支持 | | ------ | -------------- | ------------- | | main | 0.9.1 | 4.4+ | | dev | 下一个版本 | 4.4+ | | godot4.3 | 0.9.0 | 4.3+ | | godot3 | 0.6.0 | 3.5-3.6 | ## 致谢 由 Moo-Ack! Productions 作为“Wheel Steal”游戏项目的一部分开发。基于 MIT 许可证分发。欢迎社区贡献。 ## 使用 Road Generator 制作的游戏 - Wheel Steal Game——程序化用例 - Wheelie Big and Small——程序化用例 - Makin'Paper / Racin'Paper——在编辑器中创建的赛道 ## 未来计划 开发构想在 GitHub 上作为增强 issue 进行跟踪。优先处理的 issue 已纳入里程碑。 ## 贡献 欢迎贡献。详情请参阅[贡献指南](https://github.com/TheDuckCow/godot-road-generator/blob/main/CONTRIBUTING.md)。在深入编写代码之前,请加入 Discord 或发起 issue 讨论。