dsh-character-emote-plugin:对话右侧角色表情立绘浮层

DeepSeek Harness (DSH) 的插件生态允许在对话流程中加入视觉反馈。dsh-character-emote-plugin 插件在对话右侧提供一个固定浮层,用于实时显示当前角色的表情立绘。它通过模型调用工具或流式文本判定来触发立绘切换,解决智能体对话缺乏视觉表现的问题。

安装与启用

安装插件需要指定 DSH 的执行方式。安装完成后应重启 DSH 进程以使配置生效。

# 安装
<dsh> plugin --profile <profile> add <本插件目录>

# 卸载
<dsh> plugin --profile <profile> remove dsh-character-emote-plugin

注意:插件代码采用 MIT 许可证,文档采用 CC BY 4.0 许可证。

目录结构与素材准备

插件通过目录结构识别角色和情绪。立绘素材需自行准备,仓库不包含图片文件。

目录结构

支持多角色管理,每个角色对应一个目录,目录名即角色名。

dsh-character-emote/
  characters/
    高奈利亚/                 ← 角色名(目录名 = 角色 id)
      joy.png                 ← 基础档(intensity 0)
      anger.png               ← 基础档
      anger-1.png anger-2.png anger-3.png  ← 强度递进档(intensity 1/2/3)
    角色B/
      ...

命名规范

情绪命名与角色无关,每个角色目录内部遵循同一规范:
* joy.png:基础情绪图(intensity 0)。
* anger-1.png / anger-2.png / anger-3.png:情绪强度递进档(intensity 1/2/3)。
* 支持格式:png、jpg、jpeg、webp、gif。

放置好素材后,在设置页点击“刷新角色”按钮即可识别,无需重启。

核心功能

情绪模式

插件提供三种情绪模式,可在设置页切换:

  1. 自动(默认):模型调用 set_expression 工具或流式判定直接触发切图。
  2. 手动:模型只记录“待定情绪”,设置页显示待定卡片,需手动选择情绪并点击“应用”才切图。
  3. 暂停:完全冻结,任何情绪变化不生效。

视觉交互

  • 动画:立绘切换时支持淡入淡出和缩放过渡动画,可在设置页控制开关。
  • 操作:浮层仅图片本体支持拖拽和滚轮缩放,浮层本身不阻挡 UI 交互。
  • 样式:立绘大小、位置、透明度可调,配置持久化到 localStorage。
  • 预加载:切换角色时会预加载该角色全部立绘,避免弱网环境下的闪屏。

复合情绪与心情

  • 复合情绪:支持主情绪与副情绪组合(如 surprise + embarrassment),标签显示“主 + 副”。
  • 心情基线:内置 28 种情绪的 valence(正负)和 arousal(唤醒度)轴。每次情绪调用会按比例混入当前心情,随时间指数衰减(半衰期 2 分钟)。心情为内存态,重启归零。
  • 动态强度映射:情绪强度受心情影响,方向相反或差距过大时自动降档,避免表情硬切。

触发条件

除了模型调用工具,插件还支持基于文本的扩展触发条件:

  • 标点符号:! → 兴奋,? → 困惑,... → 悲伤。
  • 表情符号:😊 → 开心,😠 → 生气,😢 → 难过,😲 → 惊讶。
  • 语气词:哇/啊 → 惊讶,哎/唉 → 失望,嘿/嘻嘻 → 好笑。

API 与设置

API 路由

插件提供以下 HTTP 接口:

  • POST /character-emote/mode:切换情绪模式。Body: {mode: "auto"|"manual"|"paused"}。
  • POST /character-emote/apply:手动应用情绪。Body: {emotion, intensity?, secondary?}。

设置项

  • 刷新角色:重新扫描 characters/ 目录并重注册工具枚举。
  • 情绪强度可视化:在立绘下方显示强度指示条(最大支持 3 档)。
  • 无档位强度缩放:当情绪只有基础图(无变体档)时,通过 scale 放大模拟视觉强度;有变体图时走档位图(向后兼容)。

注意事项

  • 素材自备:仓库不包含任何立绘图片,需按规范自行准备。
  • 内存状态:心情数据为内存态,重启 DSH 后归零。
  • 全局共享:多会话共用同一份当前角色和情绪状态。
  • 工具枚举刷新:角色或情绪切换后,set_expression 工具的枚举是刷新时的快照,需重注册(即刷新角色)后生效。
  • 姊妹仓库:作者维护了多个同族插件,如 dsh-liya-skin(皮肤)、dsh-liya-ui(UI 润色)等。

作者:feverZHONG

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜