把家乡变成 Minecraft 世界:Arnis 地理数据世界生成完整指南
【免费下载链接】arnisGenerate any location from the real world in Minecraft with a high level of detail.项目地址: https://gitcode.com/GitHub_Trending/ar/arnis
Arnis 是一个开源的Minecraft 世界生成工具,它能读取 OpenStreetMap 地理数据和真实高程信息,把任意现实地点一比一还原成高度还原的 Minecraft 世界。适合想生成家乡、大城市或自然风光地图的 Minecraft 玩家和开发者。
一句话认识它,以及它能帮你做什么
Arnis 做的事情很简单:你框住现实中一片区域,它把那里变成可进入的 Minecraft 世界。街道走向、建筑轮廓、桥梁河流、山丘坡地,都会按真实数据生成,而不是随机摆放的方块堆。
它支持Java 版(1.17+)、基岩版,以及 Luanti(Minetest)三种目标平台,并且地形基于真实高程数据而非平坦地面。这意味着你生成的城市会坐落在真实的山坡和河谷里。
对玩家来说,最直接的价值是:周末下午就能在 Minecraft 里"重走"一遍你的上学路。对开发者来说,它是一套完整的地理数据转游戏世界参考实现。
从框选到生成:上手只需要 4 步
你不需要读文档,主界面本身就是全部操作入口:
- 下载并运行:从官方发布页下载对应平台的安装包;如果你是 Rust 用户,也可以
git clone https://gitcode.com/GitHub_Trending/ar/arnis后用 cargo 自行编译。 - 框选区域:在内置地图上画一个矩形,圈出你想生成的地方。
- 选择世界与设置:挑一个 Minecraft 存档,按需调整世界比例、出生点、是否生成建筑内部等参数。
- 点 Start Generation:等进度条走完,进入游戏就能看到那片区域。
背后是怎么运转的:一条数据流走完
整个过程可以看成一条流水线,现实数据进,方块世界出。
第一步,拉数据。Arnis 向 Overpass API 请求该区域的 OSM 要素(建筑、道路、水系等),同时从多个高程源(Mapterhorn、AWS Terrain、USGS 3DEP 等)按覆盖范围自动挑选最合适的地形数据源,失败会自动降级到下一个源。
第二步,换算坐标。经纬度不能直接进游戏,Arnis 在 src/coordinate_system/ 下维护了地理坐标(经纬度点、边界框)和笛卡尔坐标(XZ 点、向量、边界框)两套结构,通过 Web Mercator 投影把经纬度转成方块坐标。一个关键设计是投影自带局部原点偏移和方块/米比例因子,所以"1 格等于 1 米"只是默认值,你可以整体缩放生成结果。
第三步,翻译成方块。数据解析后按要素类型分派给不同的处理模块,都集中在 src/element_processing/:建筑按轮廓挤出高度并生成屋顶和立面,道路按等级决定宽度,桥梁从预制模块拼装,植被则按气候分区从内置的 assets/tree-packs/ 树模型库里挑选。
第四步,写入世界文件。所有方块变更先缓存在内存中,再由 src/world_editor/ 按目标格式落盘:Java 版、基岩版各有独立的写入实现,共享同一套中间数据结构和方块映射表,所以同一份地理数据能生成视觉一致的跨版本世界。
值得一提的工程细节
- 位图加速的洪泛填充:用每坐标 1 比特的位图记录已访问格子,5000×5000 区域只占约 3MB 内存,替代了动辄上 GB 的哈希集合。
- 确定性随机数:每个 OSM 要素用自己的 ID 作为 ChaCha8 种子,同一条街道无论被处理多少遍,结果都完全一致。
- 分块流式写入:世界按区域分块生成并写盘,大型地图不会撑爆内存。
- 进度反馈:GUI 全程推送细粒度进度条,命令行模式也有对应输出。
适合谁,以及可以期待什么
如果你在找"把真实地图搬进 Minecraft"的工具,Arnis 目前是最完整的开源选择:界面友好、跨平台、支持三种游戏版本。合理预期是:生成质量依赖 OSM 数据完整度,欧洲和北美城市细节最好,偏远地区会更稀疏。
往后看,项目已经支持了行星级高程数据和 3D 模型导入,世界生成的"现实还原度"上限还在继续抬高。
【免费下载链接】arnisGenerate any location from the real world in Minecraft with a high level of detail.项目地址: https://gitcode.com/GitHub_Trending/ar/arnis
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考