Arnis 完整教程:把真实城市变成 Minecraft 方块世界的 3 步操作指南
【免费下载链接】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 世界——街道、建筑、河流、山丘都会按真实比例还原,同时支持 Java 版、基岩版和 Luanti 输出。
快速上手:先跑起来再说
Arnis 提供图形界面和命令行两种方式。最快的体验路径是下载最新 release 直接运行;如果你装了 Rust 工具链,也可以自己编译。
图形界面启动只需一条命令:
cargo run --release启动后在地图上用矩形工具框一小块区域(第一次别贪心,1~2 平方公里就够),选择要写入的 Minecraft 存档,点击 Start Generation。第一次生成建议在"生成模式"里选 Objects only(平地面),能明显省时间。
如果你偏爱命令行,一条命令搞定,--bbox按"最小纬度,最小经度,最大纬度,最大经度"填写:
cargo run --release --no-default-features -- --output-dir="<你的存档目录>" --bbox="min_lat,min_lng,max_lat,max_lng"生成完成后打开 Minecraft,加载这个世界,你就站在自家城市里了。
原理极简版:三层坐标转换
Arnis 的核心机制,是把"经纬度"翻译成"方块坐标",中间隔着一层平面坐标:
经纬度(地理坐标) → 投影(平面坐标) → 缩放/偏移(方块坐标)
整个过程可以浓缩成一个公式:
方块坐标 = (现实坐标 − 基准坐标) × 缩放因子 + 偏移量--scale参数就是那个缩放因子,单位是"每米多少方块",默认 1.0 表示 1:1 真实大小。具体数学在src/coordinate_system/里,分 geographic(经纬度)、cartesian(平面)和 transformation(变换)三层实现,原理部分到这里就够了。
参数怎么选:按场景照抄速查表
界面上真正影响效果的旋钮没几个:世界缩放(World Scale)、生成模式(对象+地形 / 仅对象 / 仅地形)、室内生成、最大树木尺寸、路牌细节。下面这张表可以直接照抄,缩放值单位是方块/米(1.0 = 真实大小):
| 场景 | 世界缩放 | 生成模式 | 室内生成 | 树木尺寸 | 预期耗时 |
|---|---|---|---|---|---|
| 城市中心(街景细节) | 1.0 ~ 2.0 | 对象 + 地形 | 开启 | 中 | 数十分钟 |
| 郊区 / 住宅区 | 0.5 ~ 1.0 | 对象 + 地形 | 关闭 | 大 | 10~30 分钟 |
| 自然景观 / 山丘 | 0.3 ~ 0.5 | 仅地形 | 关闭 | 最大 | 数分钟 |
| 大范围全景(省空间) | 0.05 ~ 0.3 | 对象 + 地形 | 关闭 | 小 | 数分钟 |
几个硬约束记一下:
- 缩放低于 0.30 时,建筑和道路太小画不出来,Arnis 会自动跳过对象只生成地形,界面里也会提示你。
- 缩放上限是 4.0,再高的值会直接报错;4.0 下哪怕一平方公里也会产生几个 GB 的数据。
- 路牌(Signage)选 full 会额外生成商铺门牌、门牌号,只支持 Java 版。
踩坑指南:五个高频问题
1. 生成的世界只有地形,没有房子
- 症状:世界里有山有水,但建筑道路全没了。
- 原因:缩放低于 0.30,街道半宽取整后不到 1 格,建筑也塌成 1 格宽,引擎判断"画不出来就不画了"。
- 解法:把 World Scale 拉回 0.3 以上;如果你确实想要大视野,就改用 0.05~0.3 接受纯地形模式。
2. 输入参数直接报错
- 症状:
--bbox或缩放填了之后启动失败,提示 "must be between 0.05 and 4.0"。 - 原因:缩放被限定在 0.05~4.0 区间,bbox 的经纬度顺序写反了。
- 解法:严格按"最小纬度,最小经度,最大纬度,最大经度"填写,纬度在前。
3. 生成卡住、半天不出结果
- 症状:进度条走得极慢,内存占用飙升。
- 原因:框选区域太大,或缩放偏高导致方块数量爆炸。
- 解法:大城市分块生成,再用 web_mercator 投影模式(
--projection web_mercator)把多个区域对齐到同一坐标;先跑仅地形模式验证范围,再上对象。
4. 出生点报错 "must be within the bounding box"
- 症状:命令行指定
--spawn-lat/--spawn-lng后校验失败。 - 原因:出生点坐标落在了 bbox 之外,或只给了纬度没给经度(两个参数必须成对出现)。
- 解法:把出生点选在框内,两个参数一起传。
5. 基岩版存档打不开
- 症状:用 Java 版去打开 Arnis 生成的基岩版文件,报错。
- 原因:
--bedrock生成的是 .mcworld 格式,和 Java 版不通用,两者也不能同时指定。 - 解法:用哪个端就按对应参数生成,Java 版走
--output-dir指向存档目录。
进阶:定制与扩展
想动源码之前,先知道代码是怎么分工的(都在src/下):
coordinate_system/:经纬度、平面坐标、缩放变换三层转换;map_transformation/:对生成区域做旋转、平移等后处理;element_processing/:把 OSM 数据逐类翻译成方块,建筑、道路、水体、桥梁各占一个文件;world_editor/:负责写世界文件,java.rs、bedrock.rs、luanti.rs 对应三种输出。
两个最顺手的扩展点:
- 加新地理要素:比如你想把 OSM 里的某种标签渲染成新东西,在
element_processing/里照着natural.rs、waterways.rs的写法加一个处理模块即可,输入输出都是既定的坐标结构。 - 换输出格式:
world_editor/的三个文件结构高度一致,想给别的沙盒游戏输出世界文件,照着加一个实现就行。
写在最后
Arnis 就是一句话:读 OSM + 高程,按缩放因子铺方块,输出你能直接玩的存档。它适合想在自己城市里飞一圈的玩家、用 Minecraft 做地理教学的老师和需要快速 3D 原型验证的规划从业者。
仓库地址:https://gitcode.com/GitHub_Trending/ar/arnis
第一步:git clone https://gitcode.com/GitHub_Trending/ar/arnis,编译后框选你家附近 1 平方公里,跑一次仅地形模式,10 分钟内你会站在自己小区旁边的山丘上。
【免费下载链接】arnisGenerate any location from the real world in Minecraft with a high level of detail.项目地址: https://gitcode.com/GitHub_Trending/ar/arnis
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考