Communitygithub.com

Ultra-Smashed/fable-studio

從單一句子自動生成一個可直接運行的驚豔 3D 體驗,輸出為單一 HTML 檔案,包含光影、鏡頭運鏡、動態與音效。支援三種模式:世界(互動 3D 場景)、影片(動畫短片)及時光旅行(動態時間軸)。

fable-studio 是什麼?

Fable Studio 是一個 AI 代理技能,旨在將使用者的單一句子(例如「東京 Cyberpunk 街道」)轉化為一個完整的 3D 體驗,並包裝成單一 HTML 檔案。它適用於 Claude Code、Claude App(Artifact)及 Cursor 等平台。技能的核心是提供一個已驗證的基礎框架 `assets/starter.html`,其中包含燈光、相機、音訊、啟動畫面及錄製模式,讓使用者只需專注於場景內容的撰寫。該技能支援三種模式:**世界**(互動式 3D 場景)、**影片**(帶字幕和音樂的動畫短片)以及**時光旅行**(從過去到未來的動態時間軸)。開發流程包括:選擇模式、閱讀參考文件、構思場景設計、使用提供的模板和建構腳本產生最終檔案,最後通過嚴格的品質檢查(如景深、多層動畫、音效、高畫質佈局)。所有資源(圖片、字型、模型、音效)皆由程式碼生成,無外部依賴,確保可在任何現代瀏覽器(包括行動裝置)中順暢執行。

相容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Ultra-Smashed/fable-studio/tree/HEAD/skills/fable-studio

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

Fable Studio

從一句話變成一部完整的作品:一個單一的 HTML 檔案,立即執行、外觀精美、有聲音,且適合直立螢幕錄影。

此技能為您處理容易出錯的部分。assets/starter.html 包含一個經過測試的基礎框架(具備發光效果、相機、音訊、啟動畫面、錄製模式、影片及時間旅行控制)。您只需編寫場景,也就是內容。如此一來,您便能完全專注於設計與故事。

流程

1. 選擇模式

模式時機說明模板範例
世界一個地點、一個物體、一種氛圍,供人環顧四周。例如:「建造……」、「場景」、「世界」、「街道」、「景觀」modes/welt.mdassets/szene-welt.jsbeispiele/welt-tokio.js
影片一個有開頭與結尾的故事。例如:「短片」、「關於……的動畫」、「講述」、「自畫像」modes/film.mdassets/szene-film.jsbeispiele/film-punkt.js
時間旅行隨時間發展的演變。例如:「……的歷史」、「演化」、「從 X 到現在」、「未來 30 年」modes/zeitreise.mdassets/szene-zeitreise.jsbeispiele/zeitreise-menschheit.js

如果不確定,請選擇世界。不要詢問。此技能的價值在於一句話就已足夠。

2. 閱讀

請依序閱讀以下內容,且僅閱讀這些:

  1. references/engine.md(基礎框架的所有建構元件及函式庫的陷阱)
  2. 所選模式的說明
  3. 所選模式的範例。它展示了密度與細心程度的標準。學習其工作方式,而非主題。

如有需要:references/visuals.md(光線、霧氣、霓虹燈、水、粒子等配方)、references/audio.md(音樂與音效)、references/styles.md(現成視覺風格)、references/performance.md(在手機上保持流暢)。

3. 將一句話擴展為草稿

使用者寫一句話。品質來自於您在撰寫程式碼之前,自行將其發展成完整的草稿。在心中確定:

  • 核心畫面: 哪一個畫面會讓人印象深刻?所有其他元素都為此服務。
  • 氛圍與色調: 兩到三種主色,加上一種深色基底。顏色越少,質感越高。
  • 光線: 光從何處來?哪些部分自發光?
  • 景深: 前景、中景、背景。使用霧氣與大小層次。
  • 動態: 至少三個獨立移動的層次(例如雨水、車流、招牌)。
  • 相機: 有目的的運鏡,而非隨意環繞。
  • 音效: 符合氛圍的背景音效與音樂。
  • 互動或戲劇性: 在世界模式中點擊會發生什麼?影片的情節弧線如何?時間旅行有哪些站點?

此草稿無需事先展示。您將直接建構它。

4. 建構

根據所選模式的模板,僅將場景寫入 szene.js 檔案。然後執行:

python3 scripts/bauen.py szene.js <name>.html

此腳本會將場景嵌入基礎框架,檢查語法,並針對不存在於框架中的內容發出警告。請勿修改基礎框架本身。如果缺少某些功能,請在場景中自行實作。

若無法執行指令:請完整且不變地輸出 assets/starter.html,並僅將佔位符 /*__SCENE__*/ 替換為您的場景。

固定規則(因為結果必須在任何地方執行,包括 Claude 應用程式的 Artifact):

  • 單一檔案。無外部圖片、字型、模型或音效。所有內容皆由程式碼產生。
  • 唯一的函式庫是 three.js r128,它已在基礎框架中載入。不提供 OrbitControls、EffectComposer 或 Loader 等附加模組。相機與發光效果由基礎框架提供。
  • 不使用 localStorage、import 或第二個 <script>。
  • 螢幕上的文字使用使用者的語言。

5. 品質標準

在交付之前,請逐一檢查此清單。每一項都有其原因:缺少它,結果就會像技術展示而非完整的作品。

  • 立即呈現畫面: 啟動畫面之後,場景立即可見。沒有任何黑色或空白。
  • 景深: 已設定霧氣,存在近處與遠處的物體。
  • 適度發光: 少數區域強烈發光(亮度 2 到 4),其餘保持暗淡。如果全部發光,等於沒有發光。
  • 三個動態層次 加上相機移動。
  • 密度: 場景由數百個部件組成(透過 FS.inst),不是只有五個方塊的空蕩空間。
  • 音效: 背景音效與音樂在按下啟動按鈕時開始,音量足夠低以保持舒適。
  • 直立格式: 核心畫面位於畫面中央,且在 9:16 比例下也能正常顯示。
  • 標題、副標題與操作提示 已透過 FS.setup 設定。
  • 事實正確性(僅限時間旅行與教育影片):每個數字與日期都正確。預測需標註為預測。

6. 測試

若可執行指令,請確實測試:

node scripts/pruefen.js <name>.html

這會在無頭瀏覽器中以橫向與直立格式開啟頁面,回報錯誤,並儲存兩張截圖。檢視截圖並修正,直到無錯誤且畫面符合品質標準。若無瀏覽器可用,請逐行對照 references/engine.md 中的「陷阱」章節檢查您的場景。最常見的錯誤是變數名稱拼寫錯誤,以及使用了 three.js r128 中不存在的函式。

7. 交付

  • 在 Claude 應用程式中:作為 HTML Artifact 交付,使其可立即執行並分享。
  • 在 Claude Code 中:作為專案資料夾中的檔案交付,並附上在瀏覽器中開啟的指示。

回覆應簡短:一句話描述產出的內容、操作方式(拖曳、滾動、點擊、按 R 鍵或點擊「9:16」按鈕進入錄製模式),以及三個變體建議,每個建議一句話,使用者可直接回傳。

如果頁面後來顯示紅色錯誤訊息,使用者會將它傳送給您。請在場景中修正原因並重新建構。

錄製模式

「9:16」按鈕或 R 鍵會切換至無控制項的直立格式。世界模式會自動運轉,影片與時間旅行則從頭開始播放。這樣就能透過螢幕錄影,直接產生適合 Reels、TikTok 或 Shorts 的影片。請在回覆中提及此功能,因為對許多人來說這才是真正的用途。

相關技能