☰
Arnis的Minecraft城市生成:复刻你的家乡
2026/10/18 12:57:42 网站建设 项目流程

Arnis的Minecraft城市生成:复刻你的家乡

【免费下载链接】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 地理数据和海拔数据,一个方块一个方块地摆进 Minecraft。

🖼️ 先看效果

生成结果离真实世界有多近?看这张图。

德国慕尼黑城区的生成结果

图里是真实的慕尼黑城区:建筑地块、主干路网、河道走向和周边绿地,都按真实地图摆了出来。一句话讲清 Minecraft 城市生成的输入输出关系:输入只是你框选的矩形区域的 OpenStreetMap 数据片段加一组高程数据,输出是可直接进游戏的世界文件,不用手动摆一个方块。

⌨️ 动手跑起来

Arnis 用 Rust 写,需要 cargo 编译;它也打包成图形界面应用,可以直接下载 release 里的预编译包运行。Nix 用户则能省掉编译,用nix run直接跑。自己编译的话:

git clone https://gitcode.com/GitHub_Trending/ar/arnis cd arnis cargo build --release
  1. 运行cargo run --release启动图形界面,窗口中间是可交互地图,右侧是生成设置面板。
  2. 用矩形工具在地图上框选区域,选中区域会高亮,面板提示 “Selection confirmed!”。
  3. 选择 Java 版或 Bedrock 版,点 Start Generation,底部进度条跑到 100%。
  4. 在对应游戏里打开生成的世界目录,建筑、道路和地形都在位。

在地图上框选生成区域

不想开界面的话也可以走命令行,核心就是两个参数:

cargo run --release --no-default-features -- \ --output-dir="./saves/my_world" --bbox="48.136,11.566,48.146,11.576"

协调数据拉取、OSM 解析和世界写入的主流程在 主流程入口。

🧱 它能做什么

把海拔数据变成起伏地形

生成世界里的地面不是平面:山丘、河谷、城市边缘的高差都来自真实高程数据。Arnis 按地区自动挑选 USGS 3DEP 等不同的高程数据源,对数据做融合和平滑,再量化成方块高度。数据源选择与融合逻辑在 高程数据处理模块,好奇某片区域用了哪套海拔数据可以翻翻。

识别建筑轮廓并分配材质

建筑不是随机堆的方块。Arnis 从 OpenStreetMap 里识别出建筑轮廓多边形,再根据高度、用途等标签决定楼层数、墙面材质和窗户分布;生成时加上--interior,一层商铺和室内空间也会一并出来。这部分逻辑在 建筑识别与生成代码。

按真实路网铺设道路与水系

道路按真实路网铺设,主干道宽度、车道数、斑马线和人行道都会考虑进去;河岸和水深也按实际水域生成,深水区会形成真正能走进去的水坑。相关代码在 道路与高架处理,旁边还有水面深度和水体处理逻辑。

给植被挑对气候带的树种

植物也不是随机绿球。Arnis 自带欧洲、北美、非洲、亚洲等 10 个气候区域的树木包,每个区域收录几十到几百个雕刻好的树模型,文件名就是树种学名;生成时按当地气候带挑选合适的树种。模型文件在 区域树木包目录。

上面这些能力的输入其实都来自同一个东西:一个矩形坐标。用命令行模式时,官方的 bbox 工具可以直接读选出区域的四个角坐标:

读出选中区域的四角坐标

🔧 踩坑与调参

如果你遇到生成大区域时内存吃紧、耗时以小时计,多半是世界尺寸太大。两个直接的旋钮:一是--scale(每米对应方块数,默认 1.0,调成 0.5 世界面积直接减到四分之一);二是把区域拆成多个小矩形分别生成,并加上--projection web_mercator,让所有分块对齐到同一套全局坐标,生成后在同一片世界里拼起来。投影实现见 Web Mercator 投影。

如果某些区域建筑缺失,尤其是测绘稀疏的地方,不必怪 OpenStreetMap 数据不全。Arnis 默认开启--overture,会用 Overture Maps 的数据补上 OSM 遗漏的建筑轮廓;如果你觉得补出来的楼是误检,加--overture=false关掉即可。

如果只想拿地形、或者想快速验证参数,把--mode切到geo-only(物体落在平地上,跳过地形计算)或terrain-only(纯地形,连地理数据查询都省了),生成时间能差出一个量级。

试一试 + 参与

跑通之后可以接着玩:把 bbox 换成你学校或公司周边,看看和自己住的地方有什么差别;或者把--scale提到 2.0,让同一个世界的建筑翻倍变高。项目欢迎任何形式的参与——报 bug、改文档、加功能,fork 之后提 PR 就行。

生成结果不隶属 Mojang 或 Microsoft,也不是 Minecraft 官方产品,源码请以官方仓库为准。

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

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

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

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

立即咨询