如何3步把真实城市搬进《我的世界》: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(OSM)拉取道路、建筑等地理信息,再结合真实高程数据,把选定的区域 1:1(或自定义比例)转换成一个可直接进游戏的 Minecraft 世界,省去了手动放方块还原城市的巨大工作量。
它是干什么的
Arnis 的定位一句话就能说清:OSM 数据 → Minecraft 世界的生成器,支持 Java 版(1.17+)、基岩版和 Luanti(Minetest)。它比较适合这几类场景:
- 🏙️ 复刻家乡或知名城市,做联机玩法的地图
- 🎓 地理教学演示,比如用真实地形讲解城市与地貌
- 🗺️ 城市规划、方案展示,把地块和建筑分布放进 3D 场景里看
- 🚗 给载具类、地图类 Mod 提供一套真实路网当测试场地
- 🌍 想在游戏里"踩"上月亮或火星的地形(它支持
--body moon/mars,使用 NASA 的高程数据)
快速上手
获取程序并启动图形界面
- 下载官方最新 release 安装包直接运行;想自己编译也可以,先克隆仓库
git clone https://gitcode.com/GitHub_Trending/ar/arnis,再执行cargo run --release构建 GUI 版本。 - 打开程序,在地图上用矩形工具框选目标区域,并选好世界保存位置。
- 点击 "Start Generation"(开始生成),完成后世界会出现在你选定的游戏里。
Arnis 的图形界面:左侧地图用于框选区域,右侧可调整比例、生成模式等参数
核心流程拆解
经纬度怎么变成方块:坐标转换
把现实搬进游戏,第一步是"投影"。可以把它想象成把一张平面地图投到一张巨大的方格纸上:现实中 1 米,对应纸上 1 格。
Arnis 内部先把经纬度包围盒(LLBBox)换算成 Minecraft 的方块坐标盒(XZBBox),其中scale参数表示"每米多少格",默认 1.0 就是一米一格、1:1 还原。整个换算基于 WGS84 球面近似,还支持 Web Mercator 全局投影,方便多次生成同一片区域时坐标不漂移。核心实现:src/coordinate_system/transformation.rs
选框、平移、旋转:地图变换引擎
框选区域只是起点。坐标转换之后,整张地图还能整体平移、旋转,Arnis 用一套统一的 Operator(操作符)接口管理这两类变换,CLI 里的--rotation(-90 到 90 度)就走这里。核心实现:src/map_transformation/operator.rs
数据管线则是:抓取 OSM 数据和高程数据 → 元素处理(建筑、道路、水系、树木各有独立模块)→ 写出世界文件。生成模式有三档:
geo-terrain(默认):真实地形 + 建筑道路geo-only:平地 + 建筑道路terrain-only:只要真实地形,完全跳过 OSM 查询
边界框(bbox)决定生成范围:框得越准,坐标转换和最终世界的边界就越贴合你的意图
实战演示
用图形界面生成一个欧洲城市中心,全程 5 步:
- 打开 GUI,缩放并定位到目标区域(比如某个欧洲市中心),用矩形工具画出选区。第一次建议区域小一点——源码注释提到比例放大到 4.0 时,仅 1 平方公里就可能消耗数 GB 内存和数小时,小区域试错成本低。
- 确认参数:模式保持默认
geo-terrain,比例保持 1.0(1:1),其余按需微调。 - 选择保存位置(一般是
.minecraft/saves下的目录),点击 Start Generation。 - 等进度条走完:程序会先拉取 OSM 与高程数据,再并行生成地形和建筑。
- 打开 Minecraft 进入这个世界,出生点就在区域中心;想要精确落点,可以用
--spawn-lat/--spawn-lng指定(两者必须成对出现,且落在选区内)。
习惯命令行的话,等价的一行命令是:
cargo run --release --no-default-features -- --output-dir="C:/YOUR_PATH/.minecraft/saves/worldname" --bbox="min_lat,min_lng,max_lat,max_lng"参数格式是"最小纬度,最小经度,最大纬度,最大经度",完整参数清单见 src/args.rs。
生成完成后的效果:街道走向、建筑轮廓与真实世界一致,可直接进入游玩
避坑指南
问题 1:比例调小后,建筑、道路全消失了解决方案:scale允许的范围是 0.05~4.0,但低于 0.3 时道路宽度不足 3 格、建筑会塌成 1×1 的柱子,工具会主动跳过所有 OSM 对象。做城市还原请用 0.3 以上;0.05~0.3 只适合看大体地形。
问题 2:指定出生点时报错解决方案:--spawn-lat和--spawn-lng必须成对提供,而且坐标必须落在--bbox范围内,否则直接拒绝生成。
问题 3:Java 版提示缺少参数解决方案:Java 版必须提供--output-dir指定世界目录(目录不存在会自动创建);基岩版加--bedrock、Luanti 加--luanti则不强制,默认输出到桌面或系统目录。
进阶技巧
--interior:默认只生成建筑外壳,加上这个参数会生成室内结构,适合做室内场景--signage full:默认的 basic 只有路牌、交通标志这类公共标识,full会额外加上店铺招牌、门牌号--map-preview:生成完直接输出一张俯视 PNG 预览图,不进游戏也能快速检查效果
第一次生成的时候,不妨就选自己的家乡——框个两三平方公里,1:1 跑一遍,走进游戏的那一刻,你会认出自己家楼下的那条街。仓库里的 Wiki 和源码注释都写得很细,想折腾内部机制可以继续往 src/ 里翻。
【免费下载链接】arnisGenerate any location from the real world in Minecraft with a high level of detail.项目地址: https://gitcode.com/GitHub_Trending/ar/arnis
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考