dsh-galgame-generator:把剧本文档与素材生成可玩 Galgame 网页

前言

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]

槽位数范围为 120,默认值是 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.gifimg_cg/cg1.gifimg_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] 设置存档槽位数,范围 120

适用场景与注意

适合以下场景:

  • 你已经在 DSH Web GUI 中使用智能体会话。
  • 你已经有一份 .md.txt 剧本文档。
  • 你有角色立绘、背景图、音乐或 CG 素材。
  • 你希望生成一个自包含网页,便于本地打开或分发。
  • 你希望让模型直接扫描工作区并调用工具生成,而不是手动搭一套视觉小说前端。

使用注意:

  • 插件会随当前 dsh 进程权限运行,可以访问该进程能读到的工作区素材。安装前应检查源码、依赖、许可证和实际生成的网页产物。
  • 素材目录需要按约定放置,否则 galgame_scan 可能无法正确定位剧本和素材。
  • 存档保存在浏览器 localStorage,不同浏览器或不同设备之间不一定共享。
  • 生成后的 .galgame.html 是自包含网页,但其中的素材来自你提供的工作区文件,分发前需确认素材授权。
  • README 安装示例中的 tarball 文件名可能不是当前版本,实际安装时以 pnpm pack 生成的文件名为准。
  • 资料中同时出现 pnpm packpackage.jsonscripts.packnpm pack 的情况,两者可能存在打包方式差异。建议以仓库实际执行结果和生成的 .tgz 文件为准。
  • 已核实资料未出现星标数、分类和目录页 URL,因此本文不把这些信息写成确定事实。

结尾

dsh-galgame-generator 的价值比较集中:把剧本文档、立绘、背景、音乐和 CG 素材,转换成一份可以在浏览器直接打开的 .galgame.html。它提供 galgame_scangalgame_build 两个模型工具,并能在 DSH Web GUI 中通过 🎮 Galgame 侧边栏按钮游玩。

GitHub 仓库:

https://github.com/baisama-cloud/dsh-galgame-generator

已核实资料中未提供社区目录页 URL。

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

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

小夜