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 服务)以及更多地理要素的精细还原。