用 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、Bedrock与Luanti(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
- --mode:
geo-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),仅供参考