Arnis 上手指南:30 分钟生成一张真实地点的 Minecraft 城市
【免费下载链接】arnisGenerate any location from the real world in Minecraft with a high level of detail.项目地址: https://gitcode.com/GitHub_Trending/ar/arnis
Arnis 是一款用 Rust 编写的真实地点 Minecraft 世界生成工具。它读取 OpenStreetMap 地图数据和数字高程数据,把真实世界中的建筑、道路、河流、山谷转换成可以直接打开的 Minecraft Java、Bedrock 或 Luanti(Minetest)世界。你给它一段区域的坐标,它给你一张地理布局与真实世界一致、地形有真实海拔起伏的地图。
Arnis 根据 OpenStreetMap 数据生成的 Minecraft 城市,建筑分布与真实地图对应
🧭 30 秒了解 Arnis
- 技术栈:Rust 编写核心,图形界面基于 Tauri,同一个程序既能开窗运行,也能纯命令行批处理,支持 Windows、macOS、Linux。
- 输入:目标区域的边界框坐标(最小纬度、最小经度、最大纬度、最大经度),数据由程序自动从 OSM 和高程服务下载。
- 输出:一个开箱即用的 Minecraft 世界——Java 版存档目录、Bedrock 的 .mcworld 文件,或 Luanti 的 map.sqlite。
- 当前版本:v3.1.0,Apache-2.0 协议开源。
用一句话概括:你交出两个角点的经纬度,它还你一个世界。
⚡ 5 分钟跑通第一个真实城市
先克隆仓库并构建:
git clone https://gitcode.com/GitHub_Trending/ar/arnis cd arnis cargo build --release然后二选一,走图形界面或命令行:
- 图形界面:运行
cargo run --release,用左侧地图的矩形工具框选区域,右侧可以调整世界比例、出生点、建筑室内生成,最后点击开始生成。 - 命令行:适合脚本化、批量生成,一条命令直接产出世界:
cargo run --release --no-default-features -- --output-dir="路径/.minecraft/saves/worldname" --bbox="min_lat,min_lng,max_lat,max_lng"Arnis 图形界面:缩放、搜索并框选生成区域,右侧配置比例与细节选项
边界框选择工具帮你精确划定生成范围,建议从几个街区起步
最后给个稳妥的建议:第一次生成选一个两三个街区的范围,进游戏对比真实地图,熟悉效果后再扩大区域。Nix 用户可以跳过编译,直接nix run github:louis-e/arnis运行。
🔍 三个最有辨识度的功能
⛰️ 地形来自真实高程,不是程序化噪声
默认模式 geo-terrain 会把 OSM 要素铺在真实地形上。高程数据源目录 内置多套数据服务:USGS 3DEP 提供 1m 到 30m 四种每像素分辨率(美国本土以 1m 激光雷达数据为主),另有 AWS 地形、Mapterhorn 等,按所在区域自动选用对应源和分辨率。你得到的是山真的陡、盆地真的洼。更进一步,--body moon/mars参数可以改用 NASA 行星高程数据,生成没有 OSM 要素的月球或火星地表。
🌲 植被按地理区域自动换种
项目自带按区域划分的树木 schematic 包,存放在 assets/tree-packs/,覆盖非洲、南美、北美、欧洲、亚洲、澳洲、印度等 9 个地理区,外加一个 vanilla-plus 兜底包。程序根据你框选的坐标自动判断该用哪个区的树种,比如欧洲区以落叶阔叶和针叶林为主,萨区(南美)以雨林树种为主;所有区合计 400 多种树木模型,按 small 到 giant 分五档高度,用--max-tree-size控制上限。配合 Meta/WRI 的全球树冠高度图(--canopy-height,默认开启),它能判断某片林地是低矮灌木还是参天大树,而不是把所有树都种成一样高。
🏘️ 用 Overture 数据补 OSM 的空白
OpenStreetMap 在偏远地区覆盖率不足,生成的村庄可能缺房子。Arnis 默认开启--overture,从 Overture Maps 补充 OSM 里缺失的建筑轮廓。代价是偶尔会引入卫星检测出的误报建筑,对数据稀疏的地区这是值得的交换。
🎚️ 生成更快更好:值得调的参数
完整参数定义见 src/args.rs,其中影响结果最大的几个:
--scale:每米对应多少方块,1.0 即 1:1 真实比例;调小可以让同一区域更紧凑。--mode:geo-terrain(默认,真实地形加物体)、geo-only(平地加物体,省掉高程下载)、terrain-only(纯地形,跳过 OSM 和 Overture 请求,三种模式里最快)。--interior:生成建筑室内,好看但明显拖长生成时间,首次使用建议先不开。--fillground:用快速路径批量填充地表以下方块,大面积平坦地形提速明显。--ground-level:世界地表基准高度,默认 -62,配合多层建筑布局可以调整。--projection web_mercator:全局投影模式,多次生成的区域共享坐标,适合把大城拆成几块分别生成后拼起来。
质量与速度的平衡点很清楚:几个街区的小区域通常几分钟就能出结果;几十平方公里的大城市建议拆分区域、远景区域改用 geo-only 或 terrain-only 减少数据请求。
🛠️ 遇到问题时查这里
- 如果报错提示 Rate limited 或服务器不可用:说明 Overpass 请求被限流(429)或暂时过载,等几分钟重试即可;高频重试只会更糟。
- 如果大区域生成卡住或内存吃紧:优先用
--fillground提速,并考虑拆分区域分次生成,用 web_mercator 投影保证坐标对得上;超大区域建议 16GB 以上内存的机器。 - 如果建筑缺失或位置不对:多半是该区域 OSM 数据质量的问题而非程序缺陷。先到 OpenStreetMap 上确认该地标注是否完整,再开启
--overture看能否补齐;实在不行就在游戏里手动补建。
🎯 谁适合用 Arnis
- Minecraft 玩家:重建童年街道或旅游城市,生成后直接放入存档目录游玩。
- 教师:用它做地理教学的可视化教具——真实海拔、气候带、城市布局都对应真实世界,该项目已被用于中小学防灾教学等学术场景。
- 地图作者:把 Arnis 当作底图引擎,先铺出地形与建筑骨架,再叠加游戏专属内容,省掉手工摆建筑的时间。
🚀 从你身边的街区开始
项目按数据获取、处理、世界生成拆成独立模块,欢迎提 issue 报问题,或 fork 后提交性能优化与新功能的 PR。现在就能做的一件事:用 1:1 比例生成你家附近的两个街区,进游戏和手机地图并排对比,再决定要不要调 scale 和细节参数。
【免费下载链接】arnisGenerate any location from the real world in Minecraft with a high level of detail.项目地址: https://gitcode.com/GitHub_Trending/ar/arnis
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考