moon-partner/dsh-anime25d-pets-v2 ↗★ 1
dsh-anime25d-pets
Anime2.5DRig × DSH pet: PSD auto-rig 2.5D desktop pet using Anime2.5DRig rendering instead of Live2D 适合想要在DSH界面中添加可拖动、可调节参数的2.5D互动桌宠的用户。
같은 패키지 이름의 다른 저장소
설치
$
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:moon-partner/dsh-anime25d-pets-v2最小配置示例
- 安装插件(见上文)
- 启动 DSH,右下角出现默认宠物(内置 Anim2.5DRig 示例 PSD 模型)
- 添加自己的 PSD 模型:
- 打开 DSH 设置 →「桌宠配置」→「我的模型」
- 填写名称和
.psd地址(支持 HTTP URL 或本地绝对路径) - 点击保存
- 使用:
- 将鼠标移到桌宠上,右下角会浮出 ⚙ 设置按钮,点击打开角色调节面板
- 拖动滑块实时调整头部/眼睛/眉毛/嘴巴/发型/身体参数
- 切换"随机开口说话""随机小动作"和"左右翻转桌宠"开关
- 在 DSH「桌宠配置」设置页可调整帧率限制(30/60/无限制)和透明度(含气泡)
- 拖动桌宠到任意位置(自动保存)
settings.yaml 中 anime25d-pet 部分的参考配置
anime25d-pet: enabled: true size: 200 model: sample # 使用内置示例模型 animeParams: angleX: 0.2 # 左右转头 mouthOpen: 0.3 # 嘴巴张开 talk: true # 随机开口说话 rand: false # 随机小动作 flip: false # 左右镜像翻转 fpsLimit: 30 # 帧率限制(30 / 60 / 0=无限制) opacity: 1.0 # 宠物透明度(0~1,含气泡) persona: tsundere
---
## 配置说明
### settings.yaml 配置项
| 配置项 | 类型 | 默认值 | 说明 |
|--------|------|--------|------|
| `enabled` | boolean | `true` | 插件总开关 |
| `size` | number | `160` | 宠物尺寸(40~400 px) |
| `model` | string | `sample` | 模型 ID(内置 preset 或自定义模型 ID) |
| `animeParams` | object | `{}` | Anime2.5D 参数滑块(34 个参数) |
| `talk` | boolean | `false` | 随机开口说话 |
| `rand` | boolean | `false` | 随机小动作 |
| `flip` | boolean | `false` | 左右镜像翻转桌宠(浮动面板同步管理) |
| `fpsLimit` | number | `30` | 帧率限制(30 / 60 / 0=无限制) |
| `opacity` | number | `1` | 宠物透明度(0~1,含气泡,DSH 设置页可调) |
| `persona` | string | `tsundere` | 人设 ID |
| `developerMode` | boolean | `false` | 开发者模式 |
| `debug` | boolean | `false` | 调试面板 |
| `showTapZones` | boolean | `false` | 显示点击分区 |
### Anime2.5D 参数(34 个)
| 分组 | 参数 | 范围 | 默认 |
|------|------|------|------|
| 头部姿态 | `angleX` / `angleY` / `angleZ` | -1 ~ 1 | 0 |
| 眼睛 | `eyeOpenL` / `eyeOpenR` | 0 ~ 1 | 1 |
| 眼睛 | `eyeX` / `eyeY` | -1 ~ 1 | 0 |
| 眼睛 | `irisScale` | 0.5 ~ 1.3 | 1 |
| 眼睛 | `eyeScaleL` / `eyeScaleR` | 0.5 ~ 1.5 | 1 |
| 眼睛 | `eyeEase` | 0 ~ 1 | 0.3 |
| 眼睛 | `eyeCY` / `eyeCAng` | -1 ~ 1 | 0 |
| 眉毛 | `brow` | -1 ~ 1 | 0 |
| 眉毛 | `browAngSym` / `browAngL` / `browAngR` | -1 ~ 1 | 0 |
| 嘴巴 | `mouthOpen` | 0 ~ 1 | 0 |
| 嘴巴 | `mouthForm` | -1 ~ 1 | 0 |
| 嘴巴 | `mouthCY` / `mouthCAng` | -1 ~ 1 | 0 |
| 嘴巴 | `mouthEase` | 0 ~ 1 | 0.45 |
| 嘴巴 | `mouthScale` | 0.5 ~ 1.5 | 1 |
| 发型 | `fhAmp` | 0 ~ 3 | 2 |
| 发型 | `fhSoft` | 0 ~ 2 | 0.4 |
| 发型 | `bangL` / `bangC` / `bangR` | -1 ~ 1 | 0 |
| 身体物理 | `body` | -1 ~ 1 | 0 |
| 身体物理 | `armY` / `armPos` | -1 ~ 1 | 0 |
| 身体物理 | `bust` | 0 ~ 5 | 2.5 |
| 身体物理 | `bustY` | -1 ~ 3 | 1 |
| 身体物理 | `physAmp` | 0 ~ 3 | 2 |
| 身体物理 | `soft` | 0 ~ 2 | 2 |
### 环境变量
| 变量 | 说明 |
|------|------|
| `DSH_HOME` | DSH 配置目录(默认 `~/.dsh`) |
### 敏感项
无。本插件不存储凭据、不访问用户敏感数据。
---
## 权限与数据
| 数据/资源 | 访问方式 | 说明 |
|-----------|---------|------|
| 本地 PSD 文件 | `node:fs` 读取 | 仅在用户配置了本地模型路径时读取 |
| 设置配置 | DSH settings API | 读写 `settings.yaml` |
| 自定义模型配置 | `~/.dsh/anime25d-pet/custom-models.jsonc` | JSONC 格式 |
| 静态资源 | HTTP 同源路由 | `/pet-assets/*`、`/pet-local-models/*` |
| 网络访问 | 无 | 不发起外部网络请求(除非用户配置了远程 PSD URL) |
| 摄像头 | 无 | **不访问摄像头** |
---
## 常见问题排查
### 常见错误
| 现象 | 原因 | 解决 |
|------|------|------|
| 紫色 🐾 方块 | 模型加载失败 | 检查模型路径是否正确;检查 `assets/lib/` 是否存在 |
| 空白画面 | WebGL 渲染问题 | 检查浏览器是否支持 WebGL;检查 canvas 尺寸 |
| 参数不生效 | 自动动画覆盖 | 手动设置参数后自动动画会跳过;开启自动动画会释放手动锁定 |
| 重启后参数丢失 | 持久化失败 | 检查 `settings.yaml` 中 `anime25d-pet` 配置是否存在 |
| 点击分区不准确 | 坐标系不匹配 | 确认 `getBounds()` 使用 CSS 坐标系 |
### 日志位置
DSH Host 日志:`/var/log/dsh/dsh-web.log`
### 回滚
```bash
## 配置说明
### settings.yaml 配置项
| 配置项 | 类型 | 默认值 | 说明 |
|--------|------|--------|------|
| `enabled` | boolean | `true` | 插件总开关 |
| `size` | number | `160` | 宠物尺寸(40~400 px) |
| `model` | string | `sample` | 模型 ID(内置 preset 或自定义模型 ID) |
| `animeParams` | object | `{}` | Anime2.5D 参数滑块(34 个参数) |
| `talk` | boolean | `false` | 随机开口说话 |
| `rand` | boolean | `false` | 随机小动作 |
| `flip` | boolean | `false` | 左右镜像翻转桌宠(浮动面板同步管理) |
| `fpsLimit` | number | `30` | 帧率限制(30 / 60 / 0=无限制) |
| `opacity` | number | `1` | 宠物透明度(0~1,含气泡,DSH 设置页可调) |
| `persona` | string | `tsundere` | 人设 ID |
| `developerMode` | boolean | `false` | 开发者模式 |
| `debug` | boolean | `false` | 调试面板 |
| `showTapZones` | boolean | `false` | 显示点击分区 |
### Anime2.5D 参数(34 个)
| 分组 | 参数 | 范围 | 默认 |
|------|------|------|------|
| 头部姿态 | `angleX` / `angleY` / `angleZ` | -1 ~ 1 | 0 |
| 眼睛 | `eyeOpenL` / `eyeOpenR` | 0 ~ 1 | 1 |
| 眼睛 | `eyeX` / `eyeY` | -1 ~ 1 | 0 |
| 眼睛 | `irisScale` | 0.5 ~ 1.3 | 1 |
| 眼睛 | `eyeScaleL` / `eyeScaleR` | 0.5 ~ 1.5 | 1 |
| 眼睛 | `eyeEase` | 0 ~ 1 | 0.3 |
| 眼睛 | `eyeCY` / `eyeCAng` | -1 ~ 1 | 0 |
| 眉毛 | `brow` | -1 ~ 1 | 0 |
| 眉毛 | `browAngSym` / `browAngL` / `browAngR` | -1 ~ 1 | 0 |
| 嘴巴 | `mouthOpen` | 0 ~ 1 | 0 |
| 嘴巴 | `mouthForm` | -1 ~ 1 | 0 |
| 嘴巴 | `mouthCY` / `mouthCAng` | -1 ~ 1 | 0 |
| 嘴巴 | `mouthEase` | 0 ~ 1 | 0.45 |
| 嘴巴 | `mouthScale` | 0.5 ~ 1.5 | 1 |
| 发型 | `fhAmp` | 0 ~ 3 | 2 |
| 发型 | `fhSoft` | 0 ~ 2 | 0.4 |
| 发型 | `bangL` / `bangC` / `bangR` | -1 ~ 1 | 0 |
| 身体物理 | `body` | -1 ~ 1 | 0 |
| 身体物理 | `armY` / `armPos` | -1 ~ 1 | 0 |
| 身体物理 | `bust` | 0 ~ 5 | 2.5 |
| 身体物理 | `bustY` | -1 ~ 3 | 1 |
| 身体物理 | `physAmp` | 0 ~ 3 | 2 |
| 身体物理 | `soft` | 0 ~ 2 | 2 |
### 环境变量
| 变量 | 说明 |
|------|------|
| `DSH_HOME` | DSH 配置目录(默认 `~/.dsh`) |
### 敏感项
无。本插件不存储凭据、不访问用户敏感数据。
---
### settings.yaml 配置项
| 配置项 | 类型 | 默认值 | 说明 |
|--------|------|--------|------|
| `enabled` | boolean | `true` | 插件总开关 |
| `size` | number | `160` | 宠物尺寸(40~400 px) |
| `model` | string | `sample` | 模型 ID(内置 preset 或自定义模型 ID) |
| `animeParams` | object | `{}` | Anime2.5D 参数滑块(34 个参数) |
| `talk` | boolean | `false` | 随机开口说话 |
| `rand` | boolean | `false` | 随机小动作 |
| `flip` | boolean | `false` | 左右镜像翻转桌宠(浮动面板同步管理) |
| `fpsLimit` | number | `30` | 帧率限制(30 / 60 / 0=无限制) |
| `opacity` | number | `1` | 宠物透明度(0~1,含气泡,DSH 设置页可调) |
| `persona` | string | `tsundere` | 人设 ID |
| `developerMode` | boolean | `false` | 开发者模式 |
| `debug` | boolean | `false` | 调试面板 |
| `showTapZones` | boolean | `false` | 显示点击分区 |