☰
三步把家乡搬进我的世界:Arnis 真实地图生成实战指南
2026/10/19 15:37:44 网站建设 项目流程

三步把家乡搬进我的世界: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 的建筑、道路、水域数据,叠加多源高程数据,输出可直接游玩的 Java、Bedrock 或 Luanti 世界文件,解决"想把现实城市搬进游戏,却得手动逐块搭建几个月"的痛点。

一、为什么需要 Arnis 这类工具

想在公司楼下搭个 1:1 的方块副本跟朋友跑图,手动照地图建一平方公里城区要几个月,建完路网和地形还和现实对不上。现有做法各有短板:纯手工搭建成本太高;现成的地形生成插件只铺地貌,建筑全是通用体块,离"像真的"还差很远。

Arnis 走的是另一条路:自动拉取 OpenStreetMap 的真实要素数据和高精度高程数据,做完坐标换算后逐块落地。建筑带立面和门窗,道路按真实路网走线,城市地标甚至有专属 3D 模型;数据稀疏的区域还有备用数据源自动补位。

二、四步拿到第一个世界

  1. 准备环境:Arnis 用 Rust 编写,装好 Rust 工具链(rustup)即可自行编译;官方发布页也有 Windows、macOS、Linux 的现成安装包,不用编译。
  2. 获取源码:git clone https://gitcode.com/GitHub_Trending/ar/arnis
  3. 跑起图形界面:cargo run --release。首次编译耗时较长,之后启动是秒开;界面左侧是地图,右侧是生成设置。
  4. 框选并生成:用矩形工具圈一个 1–2 平方公里的区域,选世界版本(Java/Bedrock),点 Start Generation,进度条走完后世界文件就在你的存档目录里。

最易踩的坑:第一次就选市中心大片区域,内存和时间都容易顶不住。建议先跑一个小街区试水。

喜欢命令行的话,跳过 GUI 一条命令也能生成:

cargo run --release --no-default-features -- --output-dir="~/.minecraft/saves/hometown" --bbox="48.12,11.55,48.16,11.60"

--bbox四个数依次是最小纬度、最小经度、最大纬度、最大经度。

三、按使用场景选功能

重建整座城市:框选即所得

能做什么:矩形内的建筑、道路、水体、绿地、桥梁一次性生成,建筑带立面和门窗。怎么操作:GUI 框选后点开始,或 CLI 传--bbox。得到什么:一个能直接进的城市,加--interior还能生成可走进的建筑内部;项目内置了慕尼黑奥林匹克场馆等专属地标模型,对应城市的地标会自动摆好。

选对生成模式:平地城市还是纯地形

三种模式各有分工:

模式生成内容适用场景
geo-terrain(默认)OSM 要素 + 真实高程地形完整城市重建
geo-only平地上的 OSM 要素快速预览、纯城市测试
terrain-only只有高程地形地貌模拟,不查 OSM 数据,速度最快

GUI 在下拉菜单里选,CLI 用--mode传参。

生成地球之外:月球与火星 🌙

--body moon或--body mars会改用 NASA 的行星数据源、以固定低比例生成地表(月球火星没有 OSM 数据,建筑类参数全部忽略)。再配合--disable-height-limit把可建高度撑到新版上限,适合做夸张地貌图。

四、原理速览:数据从哪来、怎么变、产出什么

数据从哪来。三路数据并行:OpenStreetMap(经 Overpass API 拉取建筑、道路、水域)、Overture Maps(补 OSM 缺失的建筑轮廓)、多源地形数据。后者按区域自动选源——Mapterhorn、AWS Terrain Tiles、USGS 3DEP、NASA 行星数据,实现位于 src/elevation/providers/。

怎么处理。先做坐标变换:经纬度投影到平面,再按--scale换算成方块坐标(1.0 即 1 米对应 1 格),核心代码在 src/coordinate_system/ 与 src/projection/。随后进入要素处理阶段:src/element_processing/ 按要素类型拆成 30 多个模块——建筑做立面和门,桥梁有专门模块,水体算深度;树木则用按气候区分类的 schematic 树包,每个树种都是真实三维模型,素材在 assets/tree-packs/。

产出什么。src/world_editor/ 负责把结果写成 Java、Bedrock、Luanti 三种目标格式的世界文件。底层还藏着两个经典算法:Bresenham 画道路这类直线要素,flood fill 做区域填充,都在 src/ 根目录。

五、避坑与 FAQ

Q:--bbox的格式拿不准,顺序怎么记?纬度在前、经度在后:min_lat, min_lng, max_lat, max_lng。建议先在地图工具里框一下确认四个值,min/max 弄反是最常见错误。

Q:生成太慢或内存不够怎么办?拆成几个小区域分批生成;或调小--scale(1.0 是真实比例,调小即现实 1 米对应不到 1 格)。--interior这类可选功能先关掉,速度会快一截。

Q:生成了两块区域,拼不到一起?默认local投影每次生成都把起点重置到 (0,0)。改用--projection web_mercator,多次生成会落在同一套全局坐标上,可以无缝拼接。

Q:数据下载失败或本地数据缺失?用--downloader curl(或 wget)换下载方式;也可以自己下载 .osm 文件后用--file传入。数据稀疏的区域,Overture 的卫星检测补位默认开启。

Q:树没了或树种不对?默认走 schematic 树包,物种按气候区匹配;想要旧版程序化生成加--legacy_trees。

开始你的第一次生成

两步就能动手:克隆仓库后执行cargo run --release,先选家附近一个小区块,把第一个世界跑进游戏。想深入看实现,从 src/coordinate_system/ 和 src/element_processing/ 两个目录读起即可。

【免费下载链接】arnisGenerate any location from the real world in Minecraft with a high level of detail.项目地址: https://gitcode.com/GitHub_Trending/ar/arnis

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询