前言¶
DSH 的插件生态强调「一切皆插件」,社区目录是独立站点,与 DeepSeek / 幻方没有官方从属关系。
对智能体开发者来说,一个比较具体的需求是:工作区里已经有一份 Markdown 剧本文档,还有一些角色立绘、背景图、音乐或动画素材,想把它变成一个可以直接在浏览器打开的视觉小说页面。手动实现通常要处理剧本解析、选项分支、变量条件、立绘切换、BGM 播放、存档读档和前端播放器。
dsh-galgame-generator 把这个流程接到 DSH Web GUI 里:按约定目录放好素材,让助手调用模型工具,即可生成一个自包含的 .galgame.html 网页。
这是什么¶
- 插件名:
dsh-galgame-generator - 维护者:
baisama-cloud - 许可证:MIT
- GitHub 仓库:https://github.com/baisama-cloud/dsh-galgame-generator
一句话定位:提供一份剧本文档 + 立绘/背景/音乐素材,即可生成一个可玩的视觉小说(Galgame)网页。
它是 DSH 的 Web 端插件。资料中列出它面向 web client platform,并注入:
@deepseek-ai/dsh-client-runtime@deepseek-ai/dsh-client-ui-slots
同时配置 bundle patch:
./cordis.patch.yml
运行环境要求:
Node.js >= 18.18
核心功能¶
生成物¶
插件生成的主要产物是一个自包含独立网页:
<标题>.galgame.html
该网页可以在浏览器中直接打开游玩,立绘、背景、音乐全部内嵌。生成后也可以把它发给别人,不依赖原工作区。
安装后刷新 DSH Web GUI 页面,侧边栏底部会出现:
🎮 Galgame
可以在 DSH Web GUI 界面内直接游玩。
剧本解析¶
插件支持解析剧本中的:
- 角色
- 背景
- 台词
- 旁白
- 选项分支
- 跳转
- 结局
- 变量
if条件线
也就是说,剧本文档不需要只是纯对话,也可以包含分支、变量判断和多个结局。
立绘与表情¶
立绘会跟随当前说话人显示。旁白出现时,立绘会淡出。
支持显式控制立绘:
[show 名字]
[hide 名字]
切换过程使用 0.35s 淡入淡出。
如果同一个角色有多张立绘或表情变体,可以在剧本中切换:
[表情 名字 表情名]
表情状态会随存档保存。
背景音乐¶
支持背景音乐控制:
[bgm 音乐.mp3]
[bgm off]
[bgm stop]
[bgm 音乐.mp3 0.5]
其中最后一种写法用于控制音量。
动画与 CG¶
支持开局动画、结束动画和 CG 插图动画:
[op]
[ed]
[cg]
CG 素材放在 img_cg/ 目录。已核实资料中列出的 img_cg/ 支持格式包括:
gif
svg
mp4
webm
avi
存档与播放器¶
生成后的播放器支持:
- 打字机效果
- 自动播放
- 快进
- 历史记录
- 结局画面
存档使用浏览器 localStorage。默认提供 9 个存档槽位,也可以通过剧本中的配置项调整:
[存档 N]
槽位数范围为 1 到 20,默认值是 9。
模型工具¶
插件提供两个模型工具:
galgame_scan
galgame_build
galgame_scan:扫描工作区中的剧本文档与素材。galgame_build:解析剧本文档并生成 Galgame 网页。
安装与启用¶
安装方式按 DSH web profile 插件的方式处理。README 安装示例使用 pnpm pack 生成 tarball,再添加到 web profile。
下面是安装步骤:
1、在插件仓库目录执行打包命令:
pnpm pack
2、将生成的 .tgz 文件复制到你的 DSH web profile。例如可以放在:
~/.dsh/profiles/web
3、在 web profile 下添加依赖。将下面的路径和文件名替换为你实际生成的文件:
cd ~/.dsh/profiles/web
pnpm add /path/to/dsh-galgame-generator-<实际生成的tgz文件名>
4、重启正在运行的 dsh web 服务,然后刷新浏览器页面。
刷新后,侧边栏底部应出现:
🎮 Galgame
安装后,插件还会自动写入一个名为:
Galgame 生成模式
的 agent preset。你可以在新建会话时的 preset chip 中选择它,也可以在设置里的 Agent Presets 中把它设为默认。
该 preset 基于随附的 standard 全量副本,并追加了生成引导 persona。如果需要定制,可以编辑:
~/.dsh/.agent-presets/galgame/
如果不选择这个 preset,仍然可以在任意会话中手动调用:
galgame_scan
galgame_build
手动调用时需要传入剧本文档的绝对路径。
典型用法¶
准备素材¶
素材放在工作区根目录的约定位置。
| 素材类型 | 目录或位置 | 示例 |
|---|---|---|
| 剧本文档 | 工作区根目录任意 .md / .txt |
夏日回忆.md |
| 人物立绘 | img_human/ |
img_human/mei.png |
| 背景图片 | img_bg/ |
img_bg/classroom.png |
| 背景音乐 | audio/ |
audio/bgm.mp3 |
| 开局/结束动画、CG 插图 | img_cg/ |
img_cg/opening.gif、img_cg/cg1.gif、img_cg/ending.mp4 |
支持的素材格式:
图片:png / jpg / jpeg / webp / gif / svg
音乐:mp3 / ogg / wav / m4a / mp4 / flac
使用生成模式¶
1、把剧本文档和素材按上面的目录约定放好。
2、新建会话时,在 preset chip 中选择:
Galgame 生成模式
3、对助手说:
生成
4、助手会先执行:
galgame_scan
扫描工作区,定位剧本文档和立绘、背景、音乐、CG 素材。
5、然后执行:
galgame_build
依据剧本生成游戏。产物写回工作区,并同步到内存,供 🎮 Galgame 播放器加载。
6、生成完成后,打开生成的:
<标题>.galgame.html
即可游玩。
手动调用工具¶
如果不在特定 preset 会话中,也可以在任意会话里让助手手动调用工具。例如提供剧本文档的绝对路径:
请调用 galgame_scan 和 galgame_build,剧本文档绝对路径是 /path/to/夏日回忆.md
工具会基于该剧本和工作区素材生成网页。
自检¶
仓库提供自检命令:
node scripts/check.mjs
这个命令用于做语法、manifest 和 bundle 契约自检。
剧本语法速查¶
下面是已核实资料中出现的剧本写法。
| 写法 | 含义 |
|---|---|
名字: 台词 |
角色台词,自动显示该角色立绘 |
(旁白) 或纯文本行 |
旁白,立绘淡出 |
[bg 背景名] |
切换背景 |
[show 名字] |
显式显示并锁定立绘 |
[hide 名字] |
显式隐藏立绘 |
[表情 名字 表情名] |
切换角色表情或立绘变体 |
[bgm 音乐.mp3] |
播放背景音乐 |
[bgm off] |
停止背景音乐 |
[bgm stop] |
停止背景音乐 |
[bgm 音乐.mp3 0.5] |
播放并控制音量 |
[变量 名字 = 值] |
变量赋值 |
[变量 名字 + 1] |
变量增减 |
[if 变量 >= 2] … [else] … [endif] |
条件分支 |
[选项] + - 文本 → 标签 |
分支选项 |
### 标签名 |
跳转点 |
[跳转 标签] |
跳转 |
[op] |
开局动画 |
[ed] |
结束动画 |
[cg] |
CG 插图动画 |
[结束 结局名] |
结束游戏 |
[存档 N] |
设置存档槽位数,范围 1 到 20 |
适用场景与注意¶
适合以下场景:
- 你已经在 DSH Web GUI 中使用智能体会话。
- 你已经有一份
.md或.txt剧本文档。 - 你有角色立绘、背景图、音乐或 CG 素材。
- 你希望生成一个自包含网页,便于本地打开或分发。
- 你希望让模型直接扫描工作区并调用工具生成,而不是手动搭一套视觉小说前端。
使用注意:
- 插件会随当前
dsh进程权限运行,可以访问该进程能读到的工作区素材。安装前应检查源码、依赖、许可证和实际生成的网页产物。 - 素材目录需要按约定放置,否则
galgame_scan可能无法正确定位剧本和素材。 - 存档保存在浏览器
localStorage,不同浏览器或不同设备之间不一定共享。 - 生成后的
.galgame.html是自包含网页,但其中的素材来自你提供的工作区文件,分发前需确认素材授权。 - README 安装示例中的 tarball 文件名可能不是当前版本,实际安装时以
pnpm pack生成的文件名为准。 - 资料中同时出现
pnpm pack与package.json里scripts.pack为npm pack的情况,两者可能存在打包方式差异。建议以仓库实际执行结果和生成的.tgz文件为准。 - 已核实资料未出现星标数、分类和目录页 URL,因此本文不把这些信息写成确定事实。
结尾¶
dsh-galgame-generator 的价值比较集中:把剧本文档、立绘、背景、音乐和 CG 素材,转换成一份可以在浏览器直接打开的 .galgame.html。它提供 galgame_scan 和 galgame_build 两个模型工具,并能在 DSH Web GUI 中通过 🎮 Galgame 侧边栏按钮游玩。
GitHub 仓库:
https://github.com/baisama-cloud/dsh-galgame-generator
已核实资料中未提供社区目录页 URL。