如何将真实地点转换为 Minecraft 地图:Arnis 三步上手完整指南
【免费下载链接】arnisGenerate any location from the real world in Minecraft with a high level of detail.项目地址: https://gitcode.com/GitHub_Trending/ar/arnis
想在 Minecraft 里建出家乡的城市?逐格手摆根本不现实。Arnis 是一个免费开源的地图生成工具,它读取 OpenStreetMap 地理数据与真实高程数据,按真实比例还原地形、道路与建筑,直接生成可玩的 Minecraft 世界。
一分钟速览:Arnis 是什么
| 项目 | 说明 |
|---|---|
| 定位 | 将真实世界地理数据转换为 Minecraft 地图的开源生成器(Rust + Tauri,Apache-2.0 协议) |
| 解决什么问题 | 免手工建模,用 OpenStreetMap + 高程数据自动生成带真实地形、道路、建筑的 1:1 世界 |
| 输出格式 | Minecraft Java 版(1.21.4+,Anvil 格式)、基岩版(.mcworld)、Luanti/Minetest(map.sqlite) |
| 适用人群 | Minecraft 玩家、地理/城市规划教学、游戏地图作者 |
| 获取方式 | 下载 Release 安装包,或git clone后用 cargo 自行编译,无需任何付费授权 |
当前版本为 3.3.0,支持 Windows、macOS、Linux 三平台,默认带图形界面(Tauri),也提供完整的命令行模式。
它能做到什么:从真实地形到游戏城市
- 真实高程地形:拉取卫星级高程数据,把丘陵、峡谷、海岸线原样搬进游戏,可用
--height-multiplier放大或压缩起伏 - 1:1 比例还原:默认 1 格 = 1 米,街道宽度、建筑轮廓按 OSM 真实数据生成;
--scale支持 0.05~4.0 缩放 - 完整城市要素:建筑(含可选室内生成)、道路与立交桥梁、铁路与轨道、水系与岸线、行道树(内置 3000+ 棵 Schematic 树木,按全球植被分布选择树种)
- 真实立面:接入 Mapillary 街景照片重建建筑外墙,或使用内置立面贴图包(见
assets/building-facades/) - 多种生成模式:
geo-terrain(默认)、geo-only(平地)、terrain-only(纯地形)、blueprint(建筑只画轮廓线) - 主题与玩法:深冬雪景、废土废墟、Minecraft 原生洞穴+矿物+8 种洞穴生物群系、可行驶车辆与轨道列车、地标探索成就系统
- 超出地球:
--body moon/mars可用 NASA PDS 数据生成月球/火星地形
上手三步:从安装到第一张地图
第一步:获取代码并编译
先安装 Rust 工具链(rustup),然后克隆仓库并编译:
git clone https://gitcode.com/GitHub_Trending/ar/arnis cd arnis cargo build --release编译产物在target/release/arnis。如果只是想跑命令行版,可用cargo build --release --no-default-features跳过 GUI 依赖。
第二步:运行图形界面
./target/release/arnis界面左侧是地图区域,右侧是生成参数面板(生成模式、世界比例、地面高度、雪景开关等)。
第三步:框选区域并生成世界
- 用矩形选择工具在地图上框出目标区域,下方会实时显示 bbox 经纬度坐标(
min_lat,min_lng,max_lat,max_lng); - 设置输出目录为你的存档文件夹,例如
.minecraft/saves; - 点击 Start Generation,等待进度条走完,世界文件夹即出现在存档目录中,打开 Minecraft 就能进入。
不想用 GUI 也可以一条命令完成(Linux/macOS 示例):
./target/release/arnis \ --output-dir="$HOME/.minecraft/saves" \ --bbox="min_lat,min_lng,max_lat,max_lng"Windows 上把输出目录换成C:/YOUR_PATH/.minecraft/saves即可。加--bedrock则输出基岩版.mcworld。
参数与选项:关键配置速查表
命令行参数与 GUI 设置一一对应,完整清单见 src/args.rs。
| 参数 | 推荐值 | 作用 |
|---|---|---|
--bbox | 必填* | 生成范围,格式min_lat,min_lng,max_lat,max_lng |
--scale | 1.0 | 每米对应格数,1.0 为真实大小;合法范围 0.05~4.0 |
--output-dir | 存档目录 | 世界输出位置;Java 版必填,基岩版默认桌面 |
--ground-level | -62 | 世界地面所在 Y 坐标 |
--mode | geo-terrain | 生成模式:geo-only(平地)/terrain-only(纯地形)/blueprint(建筑轮廓) |
--height-multiplier | 1.0 | 地形高度倍率(0.1~10),山丘过高时建议 0.5 压缩 |
--bedrock/--luanti | 关 | 输出基岩版.mcworld或 Luantimap.sqlite |
--winter/--post-apocalyptic | 关 | 深冬雪景 / 末日废墟风格 |
--overture | 开 | 用 Overture Maps 补齐 OSM 缺失的建筑轮廓 |
--caves | 关 | 在填充地面下雕刻原生洞穴、矿脉与主题洞穴群系 |
--signage | basic | 可读标牌:none/basic(路牌、公交站)/full(含店招、门牌) |
--moving-vehicles | 关 | 车辆按限速行驶、列车按线路停靠(仅 Java) |
--map-preview | 关 | 额外导出一张俯视 PNG 地图预览 |
--mapillary-token | — | Mapillary API 密钥,启用街景照片重建建筑立面 |
* 若用--file提供本地 OSM 文件,bbox 可从文件中自动推导。
原理拆解:地理数据如何变成方块
Arnis 的生成管线在 src/data_processing.rs 中编排,核心数据流为:
1. 数据获取— src/retrieve_data.rs 并行拉取三类数据:OSM 路网与建筑(优先走 OSM tile 归档,src/osm_tiles.rs)、Overture Maps 建筑轮廓(src/overture/)、高程栅格(src/elevation/的 provider 体系,Mapterhorn/AWS Terrain Tiles 可选)。
2. 坐标转换— src/coordinate_system/transformation.rs 的CoordTransformer把经纬度 bbox 换算为局部切平面笛卡尔坐标,再按--scale映射为方块坐标;--projection web_mercator可改用 Web Mercator 投影,使真实经纬度与游戏坐标对齐。
3. 高程整形— src/elevation/mod.rs 将原始海拔转换为 Minecraft Y 值,postprocess阶段做离群点滤波、异常修复,并按scale_to_minecraft_reserving把高差压缩进可用建高范围内。
4. 要素处理— src/element_processing/ 按 OSM 标签分派:buildings.rs处理建筑与室内、bridges.rs处理立交、railways.rs/waterways.rs处理轨道与水系、tree.rs配合src/trees/的树种库放置树木。
5. 世界写入— src/world_editor/ 把方块分区(section)写入 Java Anvil、基岩版.mcworld或 Luanti 格式,src/datapack/再注入成就、信号灯等功能数据包。
进阶玩法:从一张地图到持久世界
- One World 持续扩建:
--one-world让多次运行追加写入同一个 Java 世界,配合--projection web_mercator可让各地块的坐标与真实经纬度保持一致,逐步"盖"出一整座城市 - 街景立面:配置
--mapillary-token后,--mapillary-probe可先探测某区域街景覆盖率,再生成照片级建筑外墙;无密钥时可用--building-facades挂内置立面贴图 - 本地数据复用:
--file读本地 OSM/Overpass JSON,--save-json-file把本次拉取的数据存档,离线重复生成 - 洞穴调试:
--caves --cave-zone-map out.png先渲染洞穴生物群系分布图,确认布局再正式生成;--cave-biomes lush=150,deepdark=0可自定义主题占比 - 远视渲染:
--voxy-lod预生成 Voxy mod 的 LOD 缓存,进图即可见地平线;--map-preview输出俯视图做快速验收
避坑指南:最常见的 3 个问题
问题 1:生成的地图里没有建筑,只有地形
- 表现:世界只有路面和空地,或建筑缩成 1 格小柱子
- 解法:检查
--scale,低于 0.3 时 OSM 对象会被整体跳过(道路最小宽度限制);同时确认该区域 OSM 数据本身是否完善,必要时保持--overture开启补齐建筑
问题 2:参数组合报错,生成直接退出
- 表现:如 "Cannot use --bedrock and --luanti together"
- 解法:
--bedrock与--luanti互斥;--discoveries、--traffic-lights、--moving-vehicles、--zombie-outbreak依赖 Java 版数据包,仅对 Java 世界生效;--one-world要求--rotation 0且仅限地球 + Java
问题 3:大区域生成极慢或内存吃紧
- 表现:数小时不出结果,或进程被系统杀掉
- 解法:先从小 bbox 验证参数;高程网格按 f32 存储,城市级区域轻松上千万格,内存预留要充足;用
--no-tile-archive直连 Overpass 会显著变慢,默认归档通道更快,除非数据有更新需求否则保持默认
落地场景:谁在用 Arnis
- 地理教学:已有多项研究用 Arnis 生成的洪水地形世界做 K-12 防洪教育实验(Floodcraft),学生在游戏里直观理解水位与城市的关系
- 城市规划可视化:把规划区 OSM 数据直接生成 3D 场景,向公众展示道路、建筑密度与地形关系的真实尺度效果
- 个人与游戏创作:复刻家乡街区作为生存基地,或用
--post-apocalyptic+--caves一键生成末日探险地图
结语
Arnis 把"用真实地理数据生成 Minecraft 地图"这条链路完整打通:开源、免费、命令行与图形界面双通道,从一个小街区到整座城市都可按真实比例还原。下一步:
git clone仓库并cargo build --release- 运行 GUI,框选一个 1~5 平方公里的熟悉区域
- 输出到
.minecraft/saves,进游戏核对街道与地标 - 用
--scale、--height-multiplier微调比例与起伏 - 尝试
--one-world持续扩建你的城市
【免费下载链接】arnisGenerate any location from the real world in Minecraft with a high level of detail.项目地址: https://gitcode.com/GitHub_Trending/ar/arnis
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考