尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Arnis:给一个经纬度框,就能生成 1:1 地形的 Minecraft 城市

Arnis:给一个经纬度框,就能生成 1:1 地形的 Minecraft 城市 Arnis给一个经纬度框就能生成 1:1 地形的 Minecraft 城市【免费下载链接】arnisGenerate any location from the real world in Minecraft with a high level of detail.项目地址: https://gitcode.com/GitHub_Trending/ar/arnisArnis 是一个开源的 Minecraft 世界生成工具输入真实地点的经纬度范围它拉取 OpenStreetMap 数据和高程数据生成带建筑、道路、地形的可游玩世界让你不用手工摆一块方块就能在 Minecraft 里复刻家乡。Arnis 生成的 Minecraft 城市预览建筑、道路与地形均来自真实地理数据没有 Arnis 之前手工复刻一座城市是什么体验想在 Minecraft 里建一座我长大的地方流程大概是打开地图软件对着摆方块先把路网在纸上画一遍再照图纸铺路盖楼。一条百米长街错一个方块就会越错越远多数人坚持不过一半。Arnis 把看地图摆方块这件体力活整个交给程序人只在地图上画一个矩形矩形变成一个包围盒bbox后面全是自动的。Arnis 图形界面用矩形工具框选区域选择世界格式后点开始生成 从一个包围盒到 Minecraft 世界完整数据流流程从输入开始。无论 GUI 里画的矩形还是命令行里的--bbox参数最终都是四个数min_lat,min_lng,max_lat,max_lng由 src/args.rs 解析并做合法性校验。第二步是取数据。Arnis 把 bbox 发给 Overpass 服务拿到该区域的 OSM 建筑、道路等要素同时补充地块覆盖和建筑轮廓地形部分则向高程服务请求对应区域的数字高程模型。下载逻辑集中在 src/retrieve_data.rs失败时会得到被限流请稍后再试这类可读提示而不是一串堆栈。第三步是坐标换算。这是地理数据变成Minecraft 方块的分水岭src/coordinate_system/transformation.rs 里的CoordTransformer把经纬度包围盒换算成方块空间的等轴包围盒之后所有坐标都先经过它。需要把多个区域拼在一起时可切到 Web Mercator 投影模式保证相对位置一致。第四步是元素处理。OSM 要素按类型分发给 src/element_processing/ 下的各子模块建筑算出轮廓与层数道路铺成路面树木按仓库自带的树木库摆放还有铁路、水体、广告牌等各有归属。第五步是写出世界。src/world_editor/ 负责最终落盘Java 版输出标准 Anvil 世界目录直接放进 saves 即可基岩版打成 .mcworldLuanti 版写 map.sqlite。生成的世界打开就能玩还能附带一张显示全图的锁定地图道具。生成流程里藏着的三个设计点地形精度不是一家数据源打天下。不同地区的高程模型精度差别很大Arnis 没有写死单一服务而是在 src/elevation/selector.rs 里按覆盖范围优先、全局兜底做选择bbox 依次与各高分源做覆盖匹配都不命中就回落到全球瓦片源。类比一下就像点外卖先找能送到的最近的店实在没有再叫跑腿。全流水线只有一种方块坐标。坐标换算在数据入口一次性完成下游的建筑、道路、树木模块从此不再关心经纬度各自只处理自己的 OSM 标签。新元素类型只要写一个子模块接进分发逻辑就能参与生成。地形先修复再使用。原始高程数据有孔洞和尖刺值src/elevation/postprocess.rs 里的填洞、过滤异常值步骤会先处理再缩放成 Minecraft 的 Y 轴高度避免生成出悬空方块或莫名深坑。️ 上手的最短路径有 GUI 版的话直接下载 release在地图上画矩形即可。喜欢命令行git clone https://gitcode.com/GitHub_Trending/ar/arnis后执行cargo run --release --no-default-features -- --output-dir你的 .minecraft/saves 路径 --bboxmin_lat,min_lng,max_lat,max_lng。两个实用技巧先选一两平方公里的小区域验证效果再考虑扩大因为面积直接决定生成时长和内存只想看地形时加--mode terrain-only会跳过 OSM 查询速度明显更快。把 Arnis 放进工具链家乡的那几平方公里就从地图截图变成了可以走进去的地方。下一步值得试的是用 Web Mercator 投影把多个 bbox 的生成结果拼成一张连通的大世界。【免费下载链接】arnisGenerate any location from the real world in Minecraft with a high level of detail.项目地址: https://gitcode.com/GitHub_Trending/ar/arnis创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表