将图片、视频、网页绘制到 Minecraft 地图上的 ToolDelta 插件
地图画是一款基于 ToolDelta 框架的 Minecraft 插件,能够将图片、视频或网页内容绘制到游戏内的地图画上。支持三种渲染模式:静态图片、动态视频、以及可交互的网页画面。
- 支持多种图片格式(PNG、JPG、JPEG)
- 多种地图尺寸自定义设置
- 图片缩放或中心裁剪处理
- 实时预览功能
- 多种 mapid 获取方式(掉落物、潜影盒、展示框、ClientBoundMapItemData)
- 支持 MP4、AVI 等常见视频格式
- 帧率优化处理
- 视频画面中心裁剪适配
- 与底图机制配合,节省传输带宽
- 基于 Playwright 的无头浏览器渲染
- Minecraft 视角数学3D射线追踪
- 玩家视角与画面交点精确计算
- 自定义光标实时追踪
- 羊毛掉落物交互触发(单击、长按、拖动)
- 支持键盘输入、网页导航(前进/后退)
- 历史栈管理
- Numba JIT 加速的图像处理核心函数
- 增量更新算法,仅传输变化像素
- 预渲染底图机制,Alpha=254 标识未覆盖区域
- 颜色量化压缩(可配置色彩级别)
- 严格遵循 Minecraft 坐标系(X+东、Z+南、Y+上)
- 玩家眼睛高度 1.62 格
- 展示框厚度 13/128 格
- 最大交互距离 20 格
ClientPixels = List[{
"Colour": {"R": int, "G": int, "B": int, "A": int},
"Index": int
}]
地图画/
├── __init__.py # 插件主入口,MapBuilder 类
├── maptool.py # 图像处理核心,MapTool 类
├── screen.py # 网页交互模块,ScreenTool 与 WebMapRaycast 类
├── index.html # 网页地图画前端页面
├── datas.json # 配置数据
└── prompt.md # 开发提示文档
- Python 3.11+
- Minecraft Bedrock Edition
- ToolDelta 插件框架
| 库名 | 用途 |
|---|---|
| playwright | 网页渲染与自动化控制 |
| numpy | 数值计算与图像处理 |
| numba | JIT 编译加速(可选,无则回退) |
| orjson | 高性能 JSON 序列化(可选) |
| opencv-python | 图像与视频处理 |
- 确保已安装 ToolDelta 框架
- 将本插件目录放入
插件文件/ToolDelta类式插件/目录 - 安装依赖:
pip install playwright numpy numba orjson opencv-python - 运行
playwright install chromium安装浏览器
| 命令 | 功能 |
|---|---|
img_map / 地图 |
打开图片模式菜单 |
video_map / 视频地图 |
打开视频模式菜单 |
web_map / 网页地图 |
打开网页模式菜单 |
| 指令 | 功能 |
|---|---|
.web get |
获取玩家 runtime_id |
.web type <文字> |
向网页输入文字 |
.web back |
返回上一页 |
.web forward |
前进下一页 |
.web url <网址> |
打开指定网址 |
.web q / .web quit |
退出网页交互模式 |
| 羊毛颜色 | 动作 |
|---|---|
| 白色羊毛 | 单击 |
| 黑色羊毛 | 长按开始/结束 |
| 橙色羊毛 | 拖动开始/结束 |
| 淡灰色羊毛 | 滚动(预留) |
- 图片经
cv2读取并转换为 RGB MapTool进行尺寸适配与颜色量化optimized_split_map将图像分割为 128×128 块- 通过
send_packet发送增量数据到客户端
- 玩家位置与视角通过
PlayerAuthInput/MovePlayer包获取 WebMapRaycast.cast()计算射线与画面平面交点- 交点转换为网页像素坐标 (0
width, 0height) - 坐标通过
ScreenTool同步到浏览器光标
- 作者: Mono
- 开发工具: Codex (GPT-5.4)、Trae CN、Kimi 2.5
私有仓库 | 禁止泄露源码 | 禁止商用
更多信息请访问 ToolDelta 文档
让每一张地图都成为艺术的画布