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。

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

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

小夜