READMESource: main@cf8eb220
dsh-anime25d-pets 🐾
Anime2.5DRig × DSH 桌宠:用 Anime2.5DRig 的 WebGL PSD 自动装配渲染引擎,为 DeepSeek Harness 提供 2.5D 桌宠。
只需准备一张分图层 PSD,即可获得带自动装配、发丝物理、表情动画和状态镜像的桌宠。
⚠️ 本仓库只包含源代码,不包含预编译产物。 请自行构建后使用,详见下方 构建 章节。
✨ 特性
🎨 渲染引擎(Anime2.5DRig)
- PSD 自动装配:拖入分图层 PSD 自动识别图层、锚点、发丝
- 2.5D 拟真动画:发丝弹簧物理、呼吸、胸部摆动、眨眼、口型
- 34 个参数滑块:角度 / 眼睛 / 眉毛 / 嘴巴 / 前发 / 身体物理,实时调整
- WebGL 渲染:无 Live2D SDK 依赖,纯浏览器本地渲染
🐾 桌宠功能
- 状态镜像:实时反映 agent 思考 / 空闲 / 出错 / 完成 / 等待审批
- 人设台词:内置六种人设(傲娇 / 元气 / 天然呆 / 三无 / 温柔治愈 / 病娇)
- 互动陪伴:分部位触摸反应 / 鼠标跟随 / 拖动停靠 / 任务完成庆祝
- 浮动画板:画布旁的 ⚙ 按钮直接调整参数,支持 localStorage 持久化
- 随机动画:随机计算(头/眼/身体摇摆)、随机对嘴
🛠 集成
- 完全替代原 Live2D 渲染,保留 dsh-live2d-pets 桌宠交互框架
- 支持任意
.psd模型:HTTP URL 或本地绝对路径 - 无外部 CDN 依赖,全部资源随包分发
📦 仓库结构
dsh-anime25d-pets/
├── src/
│ ├── index.ts # Host 半区(插件入口 / Config schema)
│ ├── service.ts # 宠物状态机 / SSE 推送
│ ├── routes.ts # HTTP 路由 / 静态资源服务
│ ├── models.ts # 模型类型定义
│ ├── models-host.ts # 模型 URL 解析(Host 侧)
│ ├── local-models.ts # 本地 PSD 路径映射
│ ├── presets/
│ │ └── presets.jsonc # 内置 PSD 模型清单
│ └── client/
│ ├── index.ts # 客户端桌宠(生命周期 / 交互 / SSE)
│ ├── anime25d.ts # ★ Anime2.5D 渲染引擎适配层
│ ├── settings.ts # DSH 设置面板
│ └── personas.ts # 人设台词系统
├── assets/
│ ├── vendor/
│ │ └── ag-psd.min.js # PSD 解析器 (MIT)
│ ├── lib/
│ │ ├── rigger.js # 自动装配 (MIT)
│ │ ├── genericparts.js # 闭眼闭口差分 (MIT)
│ │ ├── eye_close.psd # 闭眼差分源
│ │ └── mouth_close.psd # 闭口差分源
│ └── models/
│ └── sample.psd # 内置示例模型
├── shared/ # DSH 构建配置
├── cordis.patch.yml # DSH 插件注册
├── package.json
├── tsconfig.json
└── tsdown.config.ts
lib/目录(构建产物)不在仓库中,运行npm run build后自动生成。
🚀 快速开始
前置要求
构建
# 1. 克隆仓库
git clone https://github.com/coldfish486/dsh-anime25d-pets.git
cd dsh-anime25d-pets
# 2. 安装依赖
pnpm install
# 3. 构建
pnpm build
# 或 npm run build / pnpm build
# 构建产物生成在 lib/
安装到 DSH
# 方式一:从本地目录安装
dsh plugin --profile web add /path/to/dsh-anime25d-pets
# 方式二:手动复制
# 将整个项目(含 lib/)复制到
# /root/.dsh/profiles/web/node_modules/dsh-anime25d-pets/
使用
- 启动 DSH,右下角出现默认宠物(内置示例 PSD 模型)
- 打开 DSH 设置 →「桌宠配置」→「我的模型」,添加自己的 PSD 模型
- 点击桌宠右下角的 ⚙ 调整 Anime2.5D 参数
- 拖动桌宠到任意位置,位置自动保存
🎮 Anime2.5D 参数面板
点击桌宠右下角的 ⚙ 按钮打开参数面板:
| 分组 | 参数 |
|---|---|
| 脸部角度 | X / Y / Z 旋转 |
| 眼睛 | 左右开合 / 视线 / 瞳孔缩放 / 闭眼缩放 / 闭眼容易度 |
| 眉毛 | 上下 / 角度(对称+左右) |
| 嘴巴 | 开合 / 笑形 / 闭口调整 / 缩放 |
| 前发 | 摇摆 / 柔软度 / 三个区块操作 |
| 身体物理 | 倾斜 / 手臂 / 胸部 / 物理振幅 / 柔软度 |
自动模式开关:
- 🔄 随机计算:随机头部/眼睛/身体动作
- 💬 随机对嘴:随机口型开合
参数通过 localStorage 自动保存,重启后恢复。
📚 PSD 图层命名规范
参考 Anime2.5DRig:
| 图层名 | 内容 | 必须 |
|---|---|---|
face |
脸基础 | ◎ |
eyewhite |
白目(左右) | ○ |
irides |
虹彩(左右) | ○ |
eyelash |
睫毛 | ○ |
eye_close |
闭眼差分 | ○ |
eyebrow |
眉毛(左右) | ○ |
mouth_open |
开口 | ○ |
mouth_close |
闭口差分 | ○ |
nose |
鼻子 | |
ears |
耳朵 | |
neck |
脖子 | |
topwear |
上身衣服 | |
bottomwear |
下身衣服 | |
handwear |
手/手臂 | |
headwear |
帽子/头饰 | |
front hair |
前发 | |
back hair |
后发 |
注意:
- 支持多层命名
front hair_1、back hair_2等 - 图层不支持分组(需扁平结构)
- see-through 输出可直接使用
- 画布建议正方形 768×768 ~ 2048×2048
🔨 开发
# 安装依赖
pnpm install
# 类型检查
npm run typecheck
# 测试
npm run test
# 构建
npm run build
🛡 开源协议
本项目采用 MIT License(见 LICENSE)。
第三方组件许可
| 组件 | 用途 | 许可证 |
|---|---|---|
| Anime2.5DRig | WebGL 渲染引擎 / 自动装配 / 差分库 | MIT |
| ag-psd | PSD 解析器 | MIT |
| dsh-live2d-pets | 桌宠插件框架 | MIT |
| DeepSeek Harness 插件框架 | DSH 插件 API | 遵循 DSH 开源协议 |
注意
- see-through:Anime2.5DRig 推荐使用 see-through(Apache-2.0)进行图层分解,本项目不包含其代码。
- Live2D 官方模型:原 dsh-live2d-pets 内置的 Hiyori/Haru 等 Live2D 模型不再随本项目分发。
No comments yet. Be the first to write one.