前言¶
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。