• 欢迎加入MineBBS QQ讨论群:点击查看所有的官方讨论群
  • 我们将于近期对服务器进行迁移,服务可能中断至多2日。请各位安排好自己的访问计划,造成不便敬请谅解!
  • MineBBS入站考试已经上线!想要成为【正式会员】解锁更多功能吗?快来参与吧!【点我去看】
资源图标

原创 AtlasMap -- 将你的存档转为静态页面 v1.0.0-fix

完成注册/登录后下载
版权类型
原创
版权链接
#
语言支持
中文(简体)
[MD] # Petra >把 Minecraft 基岩版的世界存档,渲染成一张能在浏览器里缩放浏览的俯视地图——类似 Java 版的 BlueMap,但是给基岩版用的。 单个原生程序,不依赖 Java、Node 或任何运行时。渲染一次,产出一堆瓦片图和一个纯静态的网页,双击打开就能看。 --- ## 为什么是它 - **不用装官方 LevelDB**——存档读取是自己实现的只读解析器(SST 表、WAL 日志、MANIFEST),不链接 Google 的 C++ LevelDB 库,不用为了编译它去折腾额外的工具链 - **纯原生二进制**——Rust 编译,跑起来不需要 JVM、不需要 Node、不需要任何解释器 - **多线程渲染**——区块渲染按线程数并行,核心越多渲得越快 - **产出的网页零依赖**——纯 HTML/CSS/JS,双击打开就能看,不需要联网、不需要起服务器、不用装任何东西 --- ## 能做什么 - 支持新旧两种子区块格式:1.18+ 的调色板格式和更早的旧版格式,老存档也能渲 - 主世界 / 下界 / 末地三个维度都能渲,自己选渲哪几个 - 方块颜色支持内置颜色表,也可以指向官方资源包(目录、`.zip`、`.mcpack` 都行)取更准的颜色 - 出生点标记(可选,默认关闭) - 渲染出的地图带缩放金字塔、坐标网格、比例尺,水体有深浅渐变、地形有阴影起伏 - **可扩展**:网页里留了一个事件钩子,不改这个项目一行代码,就能往地图上叠加你自己的标记(玩家位置、自定义地点之类) --- ## 用法 ```bash bedrock-map-renderer --world "存档/Bedrock level" --out ./my-map ``` `--world` 指向存档文件夹(里面能看到 `db/`、`level.dat` 的那一层),`--out` 是输出目录。跑完打开 `my-map/index.html` 就能看地图。 **常用参数** ``` --dimension <列表> 要渲染的维度,逗号分隔,默认只渲主世界 可用值: overworld / nether / end(或 0 / 1 / 2) --resource-pack <路径> 官方资源包(目录、.zip 或 .mcpack),用于取色 --spawn 从存档读取世界出生点并显示在地图上(默认不读) --threads <N> 渲染线程数,默认用满 CPU 核心数 --template <目录> 自定义查看器页面(见下面"自定义/扩展") -h, --help 查看全部参数 --web 启动内置的web服务用于预览渲染后的html --port 修改预览服务的端口(默认8080) ``` **示例** ```bash # 三个维度全渲,用官方资源包取色,开启预览服务 bedrock-map-renderer --world "存档/Bedrock level" --out ./my-map \ --dimension overworld,nether,end \ --resource-pack ./bedrock-samples/resource_pack \ --spawn \ --web ``` --- ## 自定义 / 扩展 输出的网页由两部分组成:`map-viewer.js`(引擎,负责画瓦片、网格、缩放、维度切换)和 `index.html`(外壳,负责页面布局和按钮)。想要自己的样式,用 `--template` 指向一个你自己写的、带 `<canvas id="map">` 并引入 `map-viewer.js` 的 HTML 文件即可,其余控件(维度按钮、网格开关等)引擎会自动识别、接线。 想在地图上叠加自己的标记(比如玩家实时位置),不需要碰这个项目的代码——引擎每次重绘时会派发一个事件,监听它就能拿到坐标换算工具,往 canvas 上画任何东西: ```js window.bedrockMap.onRedraw(function (d) { var p = d.worldToScreen(100, 200); // 世界坐标 (x=100, z=200) → 屏幕像素 d.ctx.fillStyle = "red"; d.ctx.fillRect(p[0] - 4, p[1] - 4, 8, 8); }); ``` 这套机制原本是给 [LumaPanel](https://www.minebbs.com/resources/lumapanel.17076/) 用的——它在这上面叠了在线玩家和死亡地点两个图层,渲染器本身完全不知道"玩家""死亡"这些概念的存在。 --- ## 常见问题 **渲出来一片空白?** 确认 `--world` 指向的是存档文件夹本身(能看到 `db/` 子目录的那一层),不是它的上一级或者 `db/` 里面。 **指定了多个维度,但是渲染的维度对不上?** 对于未被存档保存的区块都不会渲染,维度也一样,需要玩家进入对应维度进行加载,才能被程序读取到。 **颜色跟游戏里看到的不太一样?** 默认用的是内置颜色表,不是从材质取的。加 `--resource-pack` 指向官方资源包(在 Mojang/bedrock-samples 能下到),配色会准很多。 **很大的存档渲染很慢?** 调大 `--threads`(默认已经是 CPU 核心数,但可以手动设更高试试),或者用 `--dimension` 只渲你需要的维度。 --- ## 反馈 用着有问题,或者想扩展点什么,欢迎通过以下方式联系: - 邮箱:**maskviva@qq.com** - 或在**讨论区**留言反馈 [/MD]
  • 4b902058-b3ec-47b5-b191-d8527e058b40.webp
    4b902058-b3ec-47b5-b191-d8527e058b40.webp
    112.9 KB · 查看: 54
作者
Maskviva
下载
17
查看
314
首次发布
最后更新

评分

0.00 星 0 次评分

Maskviva 的其他资源

后退
顶部 底部