用 Arnis 实现现实到 Minecraft 世界生成:从首次运行到调参的4个关键点
2026/9/14 1:57:37 网站建设 项目流程

用 Arnis 实现现实到 Minecraft 世界生成:从首次运行到调参的4个关键点

【免费下载链接】arnisGenerate any location from the real world in Minecraft with a high level of detail.项目地址: https://gitcode.com/GitHub_Trending/ar/arnis

Arnis 是一款能把OpenStreetMap地理数据与高程数据转换成高细节Minecraft世界的开源工具。运行一次即可拿到可直接导入游戏客户端的世界文件,道路、建筑与地形按真实区域逐块对应。

项目全景:Arnis 的定位与能力

Arnis 是一个真实地理到 Minecraft 世界生成器:输入一个地理包围盒,输出可玩的世界文件。核心能力:

  • 读取 OpenStreetMap 矢量数据,生成建筑、道路、水体、绿地与公共交通等要素
  • 采样多源高程数据,还原真实起伏地形
  • 同时输出 Java、BedrockLuanti(Minetest)三种世界格式
  • 提供图形界面与命令行两种入口,图形界面支持在地图上矩形圈选区域
  • 可选接入Overture Maps补充建筑轮廓、Mapillary街景立面纹理

技术栈为Rust编写,GUI 基于Tauri,支持 Windows、macOS 与 Linux;从源码运行需要安装 Rust 工具链,也可直接使用官方预编译包。

从零到跑通:Arnis 生成 Minecraft 世界的最短路径

环境准备:克隆仓库并安装 Rust

先安装 Rust 工具链,然后克隆仓库进入目录;若不想编译,也可直接使用官方发布的预编译二进制。

git clone https://gitcode.com/GitHub_Trending/ar/arnis cd arnis

克隆完成后执行cargo --version应能输出版本号;仓库内已内置建筑立面、树木模型等全部资源,无需另行下载。

首次运行:生成第一个世界

图形界面执行cargo run --release,打开主界面后用矩形工具圈选目标区域,点击 Start Generation 即可。命令行方式则使用无 GUI 的 release 构建,指定输出目录与包围盒(格式为 最小纬度,最小经度,最大纬度,最大经度):

cargo run --release --no-default-features -- \ --output-dir="arnis-world" \ --bbox="48.140,11.575,48.160,11.600"

执行过程中会实时显示数据下载与方块生成进度,完成后arnis-world目录下即是一个标准世界目录。

查看结果:导入世界文件

把生成的目录放入客户端 saves 文件夹后,用对应版本客户端打开即可。Java 版直接使用世界目录,Bedrock 会打包为 .mcworld 文件,Luanti 生成 map.sqlite。出生点默认在包围盒中心,可用--spawn-lat--spawn-lng调整。进入世界后,出生点周边的建筑与道路应与真实区域一一对应。

Arnis 生成的真实城市 Minecraft 世界预览,含地标建筑与山地地形

调参进阶:让输出更贴近你的需求

命令行参数较多,真正影响成图效果的有几个:

  • --scale:以“每米对应方块数”定义世界比例,1.0 即 1:1,可接受范围 0.05–4.0,低于 0.3 时建筑与道路会被自动跳过。建议首次生成保持 1.0;想在一屏内容纳更大城区可降到 0.5
  • --modegeo-terrain(默认,真实地形加对象)、geo-only(对象放在平地上)、terrain-only(仅地形,不请求 OSM 数据)。只想快速核对要素密度时建议用geo-only
  • --ground-level:世界基准地面高度,默认 -62,与原版海平面齐平。使用--disable-height-limit抬高建筑上限时必须同步调整,超出允许范围会直接报错
  • --rotation:整图顺时针旋转角度,单位度,范围 -90 到 90。建议用它把主干道对齐东西或南北方向

新手默认值:geo-terrain+scale 1.0+ 2–5 平方公里的包围盒即可。进阶调整方向:保持--overture开启(默认开,为地图稀疏区域补充建筑轮廓),并组合--bake-lighting--voxy-lod支持远景渲染。

Arnis 主界面:左侧地图圈选区域,右侧选择 Java/Bedrock 并启动生成

它是怎么做到的:核心管线一图看懂

整体数据流向:拉取 OSM 矢量数据与高程数据 → 地理坐标转方块坐标 → 逐要素生成并放置 → 按目标格式写入世界文件。

  • src/retrieve_data.rs:下载并解析包围盒内的 OpenStreetMap 数据
  • src/coordinate_system/:经纬度与方块坐标的双向换算,含 geographic 与 cartesian 两个子模块
  • src/elevation/:多源高程数据的拉取、后处理与地形高度缩放
  • src/element_processing/:建筑、道路、水系、树木等要素的逐一处理

踩坑笔记:4个高频问题及解法

生成耗时过长、内存占用爆炸

原因:scale 偏高叠加包围盒过大,生成成本随两者同时增长。解法:把--scale压回 1.0 并将 bbox 控制在 2–5 平方公里;大区域只要地形时用--mode terrain-only,跳过 OSM 查询与对象生成。

建筑数量明显少于真实区域

原因:该区域在 OpenStreetMap 中本身绘制不全。解法:保持--overture开启(默认值即为开),用 Overture Maps 的卫星检测建筑轮廓补全缺失楼块;注意偶有误检,重要区域建议人工核对。

高耸地形或建筑被削顶

原因:默认世界顶界(Java 版 Y=319)限制了--ground-level与地形高度,超出部分会被钳制。解法:加--disable-height-limit启用内置高建筑上限数据包(Java 1.21.4+/Bedrock 1.21.40+),并同步把--ground-level调回允许区间。

远景地块一片漆黑

原因:远处的 chunk 未烘焙光照,在 Voxy 等 LOD 模组下渲染为黑块。解法:加--bake-lighting预烘焙每块光照;使用 Voxy 的 Java 用户可直接上--voxy-lod,首次进入即可渲染到地平线。

跑通之后还能做什么

  • 教学场景:用洪水地形构建面向 K-12 的洪水模拟与防灾教学环境
  • 规划可视化:导出城区现状,作为发展方案讨论的对照底图
  • 服务器自定义地图:生成含地标建筑的区域,作为 Minecraft 服务器的公共活动区
  • 地外地形:--body moon--body mars基于 NASA 高程数据生成对应天体地形
  • 资产复用:assets/内的树木模型包与立面纹理集可单独取用,供其他项目参考

完整文档以项目官方 wiki 为准,问题反馈与功能讨论可加入官方 Discord 社区。


版权声明:Arnis 版权归 Louis Erbkamm 所有(2022–2026),按 Apache License 2.0 协议分发,本文为基于该开源项目的衍生说明文章。 免责声明:Arnis 并非 Minecraft 官方产品,未获得 Mojang 或 Microsoft 的批准或关联。

【免费下载链接】arnisGenerate any location from the real world in Minecraft with a high level of detail.项目地址: https://gitcode.com/GitHub_Trending/ar/arnis

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询