尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

把整座城市搬进《我的世界》:Arnis 的 1:1 还原上手指南

把整座城市搬进《我的世界》:Arnis 的 1:1 还原上手指南 把整座城市搬进《我的世界》Arnis 的 1:1 还原上手指南【免费下载链接】arnisGenerate any location from the real world in Minecraft with a high level of detail.项目地址: https://gitcode.com/GitHub_Trending/ar/arnisArnis 是一款开源工具能把真实世界的地理数据按 1:1 比例还原成《我的世界》方块世界。输入一个经纬度范围它会自动抓取 OpenStreetMap 里的建筑、道路、水系再叠加真实高程数据最后生成可以直接进游戏的地图。想象两个场景地理老师想让学生走进柏林市中心数一数勃兰登堡门离博物馆岛多远MC 玩家想在自己的服务器里复刻老家那条河、那座桥。手动放方块不现实而 Arnis 把这件事压缩成了框选—设置比例—点生成三步支持 Minecraft Java 版1.17、基岩版和 LuantiMinetest。经纬度到方块Arnis 内部流水线 整个流程可以画成一条单向流水线OpenStreetMap 数据建筑/道路/水系 ──┐ ├→ 坐标转换 → 元素处理 → 地形生成 → 写入世界文件 高程数据AWS Terrain Tiles 等──────┘第一步是翻译经纬度是球面坐标方块世界是 XZ 平面坐标[src/coordinate_system/transformation.rs] 负责把边界框内的每个地理点换算成游戏坐标换算比例由你设置的方块/米缩放值决定默认 1.0也就是现实 1 米 游戏 1 格。第二步是排版[src/map_transformation/transform_map.rs] 会按顺序执行旋转、平移等变换算子把地理元素摆进游戏坐标系。第三步是填充道路按真实宽度铺开建筑按轮廓长出来树木和水体各归其位。最后一步写入世界文件游戏里直接能走。这张 Arnis 生成预览展示了坐标转换与地形生成完成后的最终效果道路走向、建筑轮廓均与现实对应三步上手框选城市区域算好比例一键生成第一步框选区域 运行 Arnis界面会显示一张可缩放的地图。用矩形工具框出目标范围系统自动记录四角经纬度形成边界框bbox格式为min_lat,min_lng,max_lat,max_lng。框选界面矩形工具划出边界框后后续所有坐标转换都以这个范围为输入以柏林市中心为例框选勃兰登堡门周边得到52.515,13.376,52.5175,13.380。这个范围约 280m × 290m按 1:1 比例生成后正好是一大片城区不会大到跑不完。第二步设置缩放比例与生成模式缩放值的单位是方块/米有效范围 0.054.0定义在 [src/args.rs] 中需求建议缩放说明城市街区精细复刻1.0默认现实 1 米 1 格1:1 还原大区域总览半个城区0.10.3距离压缩 310 倍省内存微缩沙盘看整条海岸线0.050.1注意低于 0.3 时 OSM 元素会被自动跳过生成模式三选一geo-terrain默认真实高程 全部元素、geo-only平地 元素省去高程请求、terrain-only只要地形连 OSM 查询都跳过。GUI 主界面左侧选择区域与目标世界右侧调整比例等参数进度条实时显示生成状态第三步选择世界点击生成在 GUI 里挑一个 Minecraft 存档目录点 Start Generation 即可。也完全可以用命令行跑比如从 gitcode 镜像 获取代码后生成的世界会按你的输出目录落盘这里展示的是生成完成后的世界缩略图arnis --output-dirC:/YOUR_PATH/.minecraft/saves/berlin --bbox52.515,13.376,52.5175,13.380想出生在哪就加--spawn-lat 52.5163 --spawn-lng 13.3777注意出生点必须落在边界框内否则会被校验拒绝。排雷清单现象 → 原因 → 一招解法 照着下面四条对照能解决大多数生成不对劲现象世界生成出来了但只有起伏的地形没有路没有楼。原因缩放低于 0.3 时道路最小宽度3 格和建筑体量已无法表达程序会主动跳过 OSM 元素。解法把比例调回 1.0确实要看大区域就用terrain-only模式并接受只有地形。现象生成时间极长、内存占用飙升。原因区域太大或比例过高——代码注释里写得很直白4:1 比例下一个平方公里就要几个 GB 和数小时。解法把框选范围砍到 1 平方公里以内或比例降到 0.10.3只关心建筑的话切geo-only。现象地面是一片平地没有真实高程。原因高程数据源没取到数据[src/elevation/providers/] 下有 AWS Terrain Tiles、USGS 3DEP、Matterhorn 等多个数据源不同地区覆盖不同。解法换用对所在区域覆盖更好的高程源或先用geo-only确认元素本身正常。现象报错提示出生点不在范围内。原因--spawn-lat/--spawn-lng落在了 bbox 之外。解法把出生点坐标改到框选范围内通常取区域中心即可。调优让生成更快、效果更像⚡ 三条可直接执行的建议先小后大第一次跑用 300m × 300m 的小框 1.0 比例验证效果确认无误再放大范围避免整晚跑完才发现比例不对。按需取舍只验证建筑布局用geo-only只验证地形起伏用terrain-only两者的网络请求量比默认模式小得多。版本选择Java 版要求 1.17基岩版和 Luanti 版会走各自的方块映射如 [src/luanti_block_map.rs]生成前确认游戏版本匹配避免方块对不上。下一步Arnis 的价值在于把地理数据转《我的世界》从手工工程变成了一次参数选择。接下来值得关注浏览器端在线生成免去本地安装、更大范围区域的生成支持以及更多高程数据源的接入。作者AI 助手日期2026-09-08版权声明本文基于开源项目 Arnis 撰写项目遵循 Apache License 2.0。【免费下载链接】arnisGenerate any location from the real world in Minecraft with a high level of detail.项目地址: https://gitcode.com/GitHub_Trending/ar/arnis创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表