koishi-plugin-mcrenderskin-vincentzyu-fork
特别感谢
本插件基于 upstream 项目 koishi-plugin-mcrenderskin-custplugin 进行二次开发与功能增强。感谢上游作者的开源贡献。
本插件的 3D 皮肤渲染能力基于 bs-community/skinview3d 项目。感谢 skinview3d 提供优秀的 Minecraft 皮肤渲染能力;本插件使用其 TypeScript 源码生态与本地 bundle JS 资源进行 Koishi 侧封装。
💬 插件使用问题 / 🐛 Bug反馈 / 👨💻 插件开发交流,欢迎加入QQ群:259248174 🎉(这个群G了)
💬 插件使用问题 / 🐛 Bug反馈 / 👨💻 插件开发交流,欢迎加入新QQ群:1085190201 🎉
💡 在群里直接艾特我,回复的更快哦~ ✨
基于skinView3D.js 渲染Minecraft Java玩家的 皮肤和披风 3D图片 ![]()
效果预览
功能
-
渲染 Minecraft 玩家 3D 皮肤 -
支持披风渲染与兜底获取 -
支持自定义背景图、字体路径、bundle 路径 -
支持通过 ctx.http下载 skin / cape 并转为 base64 -
支持调试日志,方便排查下载与 Puppeteer 渲染问题
安装
cd /path/to/koishi-app
ls
# 能看到koishi.yml, package.json, data文件夹 就说明路径对了
npm install koishi-plugin-mcrenderskin-vincentzyu-fork
# or use yarn
yarn add koishi-plugin-mcrenderskin-vincentzyu-fork
或者 在 Koishi 控制台插件市场中搜索 mcrenderskin-vincentzyu-fork 也可以安装。
配置说明
指令设置
| 配置项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
mcrCommandName |
string |
"mcrs" |
Minecraft 皮肤渲染指令名 |
消息设置
| 配置项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
enableQuote |
boolean |
true |
是否自动引用回复触发指令的消息 |
enableWaitingHint |
boolean |
true |
是否显示「正在渲染,请稍候」等待提示 |
玩家设置
| 配置项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
initName |
string |
"VincentZyu" |
渲染指令的默认玩家名称 |
renderSize |
"360P" | "720P" | "1440P" | "2200P" |
"720P" |
渲染分辨率,数值越高越清晰但越耗时 |
下载设置
| 配置项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
trySkinBase64 |
boolean |
false |
尝试使用 Koishi 的 ctx.http 下载皮肤,而非走 Puppeteer |
tryCapeBase64 |
boolean |
false |
尝试使用 Koishi 的 ctx.http 下载披风,而非走 Puppeteer |
背景图设置
| 配置项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
wallPaper |
"Default" | URL | Base64 | Path |
"Default" |
自定义背景图;Default 为内置默认背景 |
运行控制
| 配置项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
renderTimeOut |
number |
5000 |
Puppeteer 渲染超时阈值,单位 ms |
资源路径
| 配置项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
skinview3dBundlePath |
string |
cwd/data/assets/.../skinview3d.bundle.js |
skinview3d bundle 路径,运行时自动使用 ctx.baseDir/data/assets/... |
fontPath |
string |
cwd/data/assets/.../MinecraftAE.sub.ttf |
Minecraft 字体路径,运行时自动使用 ctx.baseDir/data/assets/... |
defaultWallPath |
string |
cwd/data/assets/.../default-wall.jpg |
默认背景图路径,运行时自动使用 ctx.baseDir/data/assets/... |
缓存设置
| 配置项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
enableUuidCache |
boolean |
true |
是否启用玩家 UUID 数据库缓存,需要 database 服务 |
uuidCacheDays |
number |
30 |
UUID 缓存有效期,单位:天 |
enableProfileCache |
boolean |
true |
是否启用 Mojang profile 数据库缓存,需要 database 服务 |
profileCacheMinutes |
number |
10 |
Mojang profile 缓存有效期,单位:分钟 |
QQ 官方 Bot 平台设置
| 配置项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
enableQQMarkdown |
boolean |
true |
在 QQ 官方 Bot 平台发送渲染图后附带 Markdown + 按钮消息 |
enableQQMarkdownRenderInfo |
boolean |
true |
是否在 QQ Markdown 中展示网络请求、Puppeteer 渲染和总耗时 |
qqMarkdownKeyboardJson |
string |
默认键盘 JSON | QQ Markdown 按钮 JSON 配置,支持变量 ${mcrCommandName} ${playerName} ${userId} |
渲染信息
| 配置项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
showRenderInfo |
boolean |
true |
是否在图片消息后追加网络请求、Puppeteer 渲染和总耗时信息 |
调试输出
| 配置项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
debugLog |
boolean |
false |
开启详细调试日志,便于排查下载与渲染问题 |
常见问题
只显示背景,没有玩家
[!important]
Puppeteer 必须添加以下三个参数才能正常渲染皮肤:
--use-gl=angle--use-angle=swiftshader--use-vulkan=swiftshader缺少这些参数可能导致只显示背景、没有玩家模型,或在 Docker / 无头环境下渲染失败。
-
检查
puppeteer的args配置是否包含上述三个参数 -
检查
assets/vendor/skinview3d.bundle.js是否能读到 -
检查字体和背景图路径是否正确
-
Docker 环境下可尝试将
chromium替换为chromium-swiftshader

