比賽說做 3 到 5 分鐘的視覺小說,我交了 60 分鐘
Larch 七日創作者挑戰,8 月 23 日早上交件。七章、一萬兩千字、六百多句配音。結果 8 月 30 日公布:拿到最佳人氣,最佳作品那座是別人的。

先講規格。Larch 七日創作者挑戰 的題目是「奇幻、魔法、日常」,遊戲長度約 3 到 5 分鐘,投稿 8 月 16 日到 23 日,8 月 30 日公布結果。
我交出去的東西是七章、一萬兩千字、六百多句配音,程式自動玩一次錄下來的完整遊玩影片是 60 分鐘。
超過要求 12 到 20 倍。這件事是好是壞,8 月 30 日給了答案:我拿到最佳人氣,評審的最佳作品那座給了別人。
交的是什麼
《格莉奇與黑洞先生》。一個老是自嘲只有 4KB 記憶體的虛擬主播,開台第一天來了七個人,她說她要記住每一個來的人。兩年後她記得六個。第七行一直空著。
這篇是寫給想在一週內做完一個作品的人看的。下面全是可以查證的東西:時間、數字、還有我在按下送出前幾分鐘抓到的兩個假數字。
三天
repo 的第一筆 commit 是 8 月 21 日凌晨 2 點 00 分。8 月 23 日早上交件。中間的 commit 數是這樣:
| 日期 | commit |
|---|---|
| 8/21 | 51 |
| 8/22 | 74 |
| 8/23(交件日) | 41 |
小說第一章的檔案進 repo 是 8 月 22 日凌晨 3 點 22 分,commit 訊息寫「第一章寫完(第一千零四版)」。交件當天的密集作業結束在早上 10 點 36 分,之後那天只剩兩筆零星的。
八天的投稿窗我用了三天,前面五天沒動。這不值得學,只是事實。
交件前七分鐘,人工複核擋下兩個假數字
8 月 23 日早上 10 點 29 分,離那天早上收工只剩七分鐘,這個 commit 的標題是:
殺青頁的字數是捏造的,改成實際數字
diff 長這樣:
- 林亞澤 七章,二十二萬字的第一千零四版
+ 林亞澤 七章,一萬兩千字的第一千零四版
二十二萬字。實際上是一萬兩千字。差了將近二十倍,而且它已經印在殺青名單上,準備跟著作品一起交出去。
那個數字是 AI 填的。殺青頁是它生的,字數那一格它自己編了一個,沒有去數。我是逐項對回實際檔案的時候才發現的。
隔一分鐘還有一個:
配樂致謝改成十一首,不是四首
兩個都一樣,AI 沒有去數就先填了一個看起來合理的數字,跟筆誤無關。
這種東西在趕死線的時候最容易溜過去,因為它看起來像已經完成的部分:版面排好了、格式對了、數字也在那裡,只有值是假的。會生成的東西不會告訴你哪一格是它編的,所以「已完成」的區塊反而要逐項對回原始檔案。這兩筆就是這樣抓出來的。
教 AI 唸「飲水機」
全程配音是這個作品最花時間的部分,而最花時間的一個詞是飲水機。
模型會把它唸成蒙水機、冷水機、永水機、門水機、開泳機。換寫法沒用,加逗號沒用,調語速也沒用。
解法是同音字替身:送進語音引擎之前偷偷把文字換掉,畫面上顯示的字一個都不動。飲水機在合成那一份裡寫成別的三個字,唸出來就對了。
小說正文一個字都沒有改,novel/*.md 裡的、小說站上的、畫面上的,全部都是原文。替身只活在送進 TTS 的那一份文字裡。
替身表本身也是這篇的一個小教訓。我要寫這篇的時候去數程式裡 larch/voice.py 的那張表,66 條。而設計文件上寫「目前 38 條」,我自己先前的社群貼文寫「五十六個字」。三個數字沒有一個對得上程式碼,因為表一直在長,文件沒有跟著長。
所以這篇裡出現的數字我都重數過:七章是 novel/ch*.md 數出來的、一萬兩千字是把標記剝掉之後數漢字得到 12,556、配音是發佈出去的 docs/voice 底下 693 個檔案(殺青頁上寫的是 700)、背景音樂 11 首。
為什麼跑在 Larch 上
卡片、分歧、變數、立繪站位、表情差分、背景樂,這些都是現成的,不用自己寫播放器。
真正決定的是它有 agent API。整部作品是用程式建出來的,一章一支 build 腳本,每一張卡都在版本控制裡。所以「改一句台詞」的動作是改檔案然後重跑,不用進編輯器點來點去。這也是三天做得完的原因。
那支 60 分鐘的完整遊玩影片同理,是程式自動玩一次錄的,沒有人在旁邊按滑鼠。
結果:最佳人氣
8 月 30 日公布。這一屆報名 58 人、投稿 18 件,四個獎加三件優秀作品:
| 獎項 | 作品 | 作者 |
|---|---|---|
| 最佳作品 | 山海線(一):無名月台 | JuiHung Hsu |
| 最佳人氣 | 格莉奇與黑洞先生 | 我 |
| 最佳原創 | 鴨子日常:懷舊篇 | 陳怡珊 |
| 最佳工具回饋 | 雞肋超能力 | Lee Yueh |
優秀作品三件:〈社畜的日常〉(憂律)、地球人請保持靜音、無名信(許希璃)。
我拿的是 US$10 加 Larch Pro 一個月。最佳作品是 US$50 加 Pro 六個月,給了《山海線(一):無名月台》。
評審 Yapi 給這件作品的評語是這樣:
居然寫了1萬兩千字!
我蠻喜歡這個作品在製作中使用到了大量的系統外的技術進行輔助,包含使用 AI Skills 編排劇情,使用自己的語音生成技術等,覺得很酷!
去逛了作者的網站發現格莉奇有完整豐富的設定和很多酷酷的IP設定,很酷。
「系統外的技術」那句講到重點了。這件作品在 Larch 上的部分只是最後的組裝,前面那些工都在平台外面:配音是自架的引擎跑的、立繪與場景是另一條產線生的,連 60 分鐘的完整遊玩影片都是程式自動玩一次錄的。平台負責它擅長的(卡片、分支、立繪站位、播放器),其餘的自己接。
不過評語裡「使用 AI Skills 編排劇情」這句要更正,那是從外面看的推測。劇情沒有用到任何 skill。故事是我跟 AI 一句一句聊出來的,每一段定稿由我決定。repo 裡真正用到 skill 的地方全在產線那半:生圖、去背、PWA 檢查,還有 Larch 平台格式那份。
這個區別對我來說比獎重要。「AI 幫你把故事編出來」跟「你跟 AI 一起想、你拍板」是兩回事,寫錯了就等於把作者身分讓出去。
這個結果剛好回答了開頭那個問題。把 3 到 5 分鐘的題目做成 60 分鐘,沒有換到評審那一座,換到的是玩的人那一座。人氣是用愛心 5 分、留言 3 分、遊玩 2 分、瀏覽 1 分算出來的,也就是有人真的把它打開、玩下去、留了話。對一個講「記住每一個來的人」的故事來說,這個獎拿得剛好。
交件的時候我知道有最佳人氣這一座(它是活動開跑之後加開的,原本海報上沒有)。但我當時真正擔心的是這樣會不會直接算資格不符,得獎那些還排在後面。規格白紙黑字寫「約 3 到 5 分鐘」,我交了一個 60 分鐘的東西,被判出局也不能說沒道理。
結果沒有被判出局,而且一直有人進來玩。
交出去的版本從截止那刻就凍結了,我後來修的那些配音錯字都上不去。現在結果公布了,可以重新上架。
分工線
點子、七個人的設定、每一句定稿、什麼時候算完成、每一個對外的數字要不要信,是我定的,也是我逐項核的。文字是我跟 AI 一起寫的;立繪、場景、配樂是 AI 生成之後我挑選跟修版;配音走自架的 CosyVoice3 加平台提供的 MiniMax,每一句都聽過。build 腳本、去背工具、錄影腳本是 AI 寫的。
作品在這裡:在 Larch 上玩。不想玩的話,小說站可以直接讀,每一句都能點來聽。60 分鐘完整遊玩在 YouTube。整個專案開源,配音工具、去背工具、錄影腳本都在 https://github.com/yazelin/glitch-vn。
得獎作品頁只公開七天,想看那 18 件別人做了七天的東西要趁早。過期之後,Larch 首頁的社群玩家作品區還找得到,這部目前排在那裡的第一個。下一場挑戰 9 月 6 日公布主題。