跳到主要内容
项目档案应用项目

Arnis 开源工具:将真实地理数据转为高细节 Minecraft 世界(支持 Java/基岩版)| 下载与编译指南

Arnis 是一款免费开源工具,可将 OpenStreetMap 和真实高程数据自动转换为高细节的 Minecraft Java 版与基岩版世界。通过直观的 GUI 或命令行,轻松生成家乡、城市或自然地形的复刻地图。本文提供项目介绍、安装步骤、使用教程及技术架构说明。

17,991RustStar 于 2026年3月17日2026年9月19日 更新

AI 总结

Arnis 是一款开源 Rust 工具,可将真实世界地理数据(OpenStreetMap 与高程数据)自动转换为高细节的 Minecraft Java/基岩版世界,支持 GUI 与命令行操作,让用户轻松复刻家乡或地标景观。

中文项目介绍

Arnis 是一个基于 Rust 开发的开源项目,专注于将真实世界的地理信息转化为高细节的 Minecraft 游戏世界。它通过处理 OpenStreetMap 的道路、建筑、水系等矢量数据以及数字高程模型(DEM)的地形数据,自动生成既符合真实地理特征又具备游戏可玩性的存档文件。 项目核心解决了地理数据到游戏世界的自动化转换难题,包括坐标系统转换、地形高程映射、建筑结构还原、道路网络生成等复杂流程,确保生成的世界在视觉和空间上与真实地点高度一致。 该工具适用于多种场景:Minecraft 玩家可重建自己的家乡或旅行过的城市;地图创作者能基于真实地形设计冒险或生存地图;教育工作者可用于地理信息可视化演示。无论是小范围街区还是大都市,都能生成细节丰富的可探索世界。 从技术实现看,项目采用模块化架构,通过 Tauri 框架构建跨平台桌面应用(支持 Windows/macOS/Linux),提供直观的 GUI 界面和灵活的 CLI 操作。代码注重性能优化(如 rayon 并行处理)与可维护性,并支持 Java 版与基岩版双格式输出,同时包含地图变换、建筑内部生成等高级功能。

详细信息与使用说明

1. 项目定位与用途

Arnis 是一款专为 Minecraft 玩家和创作者设计的开源地理世界生成工具。它利用 OpenStreetMap 的真实矢量数据与公开的高程数据集,通过算法处理将这些地理信息转换为 Minecraft 游戏中的方块世界。项目支持 Java 版(1.17+)和基岩版双格式输出,既提供图形界面让用户通过地图可视化选择区域,也支持命令行参数实现自动化生成。其核心价值在于降低真实世界复刻的门槛,让无需专业 GIS 知识的用户也能快速创建高精度的城市、自然景观等地理主题存档,用于探索、建造或教学。

2. 解决的问题

Arnis 解决了真实地理数据到 Minecraft 世界转换中的多重技术挑战。首先,它处理不同坐标系统(经纬度 vs 游戏方块坐标)的精确映射与投影转换;其次,将连续的高程数据离散化为 Minecraft 的阶梯状地形,同时保持地形特征;第三,解析 OpenStreetMap 的复杂标签体系,将道路、建筑、水体等要素合理转化为游戏中的方块结构;第四,优化大规模数据处理性能,避免因数据量过大导致生成缓慢或内存溢出。此外,项目还解决了建筑内部布局生成、植被分布模拟等细节还原问题,确保生成世界既真实又具备游戏可玩性。

3. 适用场景

该工具适用于多种使用场景:个人玩家可生成自己的家乡、学校或旅行目的地,在游戏中重温熟悉的地方;地图创作者能基于真实地形设计冒险地图、生存挑战或建筑复刻项目;教育工作者可用于地理教学,直观展示地形、城市规划等概念;社区服务器管理员可创建基于真实世界的多人探索世界。支持小范围精确街区到数百平方公里的区域生成,既能保留建筑细节,也能呈现自然地貌。对于需要高真实感背景的 Minecraft 内容创作者,Arnis 提供了高效的基础世界生成方案。

4. 安装方式

用户可通过两种主要方式获取 Arnis:一是从 GitHub Releases 页面下载预编译的可执行文件,直接运行无需安装开发环境;二是使用 Rust 工具链从源码编译,需先安装 Rust 后执行 `cargo run`(GUI 版)或 `cargo run --no-default-features -- --terrain --path="路径" --bbox="经纬度边界"`(命令行版)。Nix 包管理器用户可通过 `nix run github:louis-e/arnis -- ...` 一键运行。项目采用 Tauri 框架打包,生成的桌面应用在 Windows、macOS 和 Linux 上均可运行。注意官方仅通过 GitHub 和 arismc.com 分发,请勿从其他来源下载以确保安全。

5. 使用方式

使用 GUI 模式时,启动应用后会出现交互式地图,用户使用矩形工具拖选目标区域,系统会自动填充边界坐标。接着指定 Minecraft 存档保存路径,可调整世界缩放比例、出生点位置、是否生成建筑内部等参数,点击 "Start Generation" 即可开始处理。命令行模式则通过参数控制,如 `--terrain` 指定仅生成地形,`--bbox` 提供经纬度范围,`--path` 设置输出目录。生成过程中可实时查看进度与日志。项目还支持地图变换配置(JSON 格式),用于平移或旋转生成区域,方便对齐特定坐标或调整布局方向。

6. 补充说明与实现特点

Arnis 在实现上注重模块化与性能:核心逻辑分为坐标转换、数据获取、要素处理、地形生成、方块放置等独立模块,便于维护与扩展。使用 rayon 并行处理地理数据,显著提升大规模区域的生成速度。配置系统支持 JSON 格式的地图变换,允许用户微调生成结果的位置与方向。代码库包含详尽的文档与测试用例,如 map_transformation 测试验证了配置的合法性。项目遵循 Apache 2.0 开源协议,欢迎社区贡献。未来计划包括更大地图支持、移动端生成(通过 MapSmith 服务)以及更多地理要素的精细还原。

思维导图

Arnis
坐标系统 (coordinate_system)
地理坐标 (geographic)
笛卡尔坐标 (cartesian)
转换算法 (transformation)
数据获取与处理 (data_processing)
OSM 数据解析
高程数据读取
要素处理 (element_processing)
建筑 (buildings)
道路 (highways)
水系 (water_areas, waterways)
植被 (tree)
其他要素 (amenities, barriers 等)
地面生成 (ground_generation)
地形渲染
方块映射
地图变换 (map_transformation)
平移 (translate)
配置验证
用户界面 (gui)
前端界面 (HTML/CSS/JS)
后端逻辑 (Rust)
基岩版支持 (bedrock)
存档格式处理
NBT/LevelDB

常见问题

Arnis 支持哪些 Minecraft 版本?

支持 Java 版 1.17 及以上版本,以及基岩版(需启用 bedrock 特性编译或使用特定发行版)。

生成地图需要什么地理数据?

项目自动从 OpenStreetMap 获取矢量数据(道路、建筑等),并使用公开的数字高程模型(如 SRTM)处理地形起伏,无需用户手动准备数据。

如何调整生成世界的尺寸和细节?

在 GUI 中可通过“世界缩放”参数控制比例;命令行可通过 `--scale` 等选项调整。注意更大区域会显著增加生成时间和文件大小。

能否生成建筑内部?

可以,在设置中启用“生成建筑内部”选项,Arnis 会尝试根据 OSM 数据为建筑物添加房间、门等内部结构(细节取决于源数据完整性)。

为什么生成速度较慢?

大规模区域涉及大量数据下载与处理,项目已通过并行计算优化,但性能仍受网络、CPU 和区域复杂度影响。建议先小范围测试,或使用 MapSmith 服务进行浏览器端生成。