懶人包
- Motion Prompt 是日本創作者 Shohei Ohtaki 開源的動畫名稱庫(MIT),每個動作有編號、名稱、會動的示範、規格和參考程式碼。2026-10-29 查是 7 包共 168 個,IG 上流傳的「144 個」是 10-19 到 10-23 之間的數字。
- 繁體中文名稱只做了 120 個(motion、camera、ui、lp、photo 五包),10-19 之後加的 motion2、lp2 兩包還沒有。
- 我用 Claude Haiku 對同一個標題做三組對照,各生成 4 次。說「做得有質感」:4 次都是逐字模糊淡入,1.57~2.01 秒才停。
- 說「用 #005 Mask reveal,0.6 秒」:4 次都是遮罩上滑,實測 0.61~0.72 秒停住。
- 再把 CLI 給的完整規格貼進去:最像原作,但 4 次裡有 3 次連示範的退場也照做,標題播完就消失。附規格要多講一句「只要進場」。
- 沒裝 skill 時,關鍵是「Mask reveal」這個業界通用詞加秒數,
#005編號只有裝了 skill 或附上規格才有意義。
這篇的起點是一支 IG Reel:「跟 AI 說『把標題做得有質感一點』,結果每次生成的動畫都不一樣?」影片介紹的是 Motion Prompt,主張只要告訴 AI「使用 #005 Mask reveal,0.6 秒」就能更精準。
我把 repo clone 下來跑了它的 CLI,再用同一個標題做了 12 次生成對照。結論是影片說對了一半:講名稱和秒數確實穩,但「有質感」組的問題不是每次不一樣,而是每次都一樣、只是不是你要的那種。
Motion Prompt 是什麼?
Motion Prompt 是一份「給 AI 用的名稱表」。作者在 README 裡寫,他之前發了幾支替動態設計動作命名的短片,有留言說卡住自己的不是想像力,而是不知道那種動作叫什麼。這個 repo 就是把那批名稱整理成可以查、可以直接貼給 AI 的形式。
| 項目 | 內容(2026-10-29 查 GitHub API 與 repo) |
|---|---|
| 作者 | Shohei Ohtaki(X @showheyohtaki) |
| 授權 | MIT |
| 建立 | 2026-10-14;最後一次 push 是 10-23 |
| 規模 | 7 包、每包 24 個,共 168 個 |
| 熱度 | 739 星、92 fork |
| 線上 gallery | https://showheyohtaki.github.io/motion-prompt/ |
| 使用方式 | 查名稱自己貼、gallery 勾選後複製、或裝成 Claude Code/Codex skill |
| 編號 | 包 | 內容 | 繁中名稱 |
|---|---|---|---|
| 001–024 | motion | 動態設計動作 | 有 |
| 025–048 | camera | 鏡頭運動與轉場 | 有 |
| 049–072 | ui | UI 元件名稱 | 有 |
| 073–096 | lp | 網頁與 landing page 效果 | 有 |
| 097–120 | photo | 照片風格、光線 | 有 |
| 121–144 | motion2 | 動態設計動作 第二包 | 無 |
| 145–168 | lp2 | 網頁效果 第二包 | 無 |
motion2 之後、10-23 加入 lp2 之前的數字。繁中名稱是外部貢獻者在 10-20 用 PR #3 補上的,只涵蓋前五包,repo 裡 packs/*/README.zh-Hant.md 實際只有 5 份。英文 README 開頭那段「名稱一覽目前只有英文和日文」也還沒跟著更新。
每個名稱打開來長這樣:
左邊是一句可以直接講給 AI 聽的範例「Bring the title in with a mask reveal from below, 0.6 s, each line slightly after the one before.」,右邊的 Copy prompt 會帶出整段規格:分隔線何時長出、上下兩行各從哪裡滑進來、用哪條緩動曲線、何時退場。底下還連到 Canvas 參考實作和共用的 kit/motion.js。
怎麼裝、怎麼查?
官方給的安裝方式是:
npx skills add showheyohtaki/motion-prompt
裝好之後跟 Claude Code 說「Open the motion-prompt library」,它會打開 gallery,勾選想要的動作再按「Send to AI」送回 agent。這次我沒有把 skill 裝到全域,而是 clone 下來直接跑它附的 Node CLI(commit bd6bf08):
git clone https://github.com/showheyohtaki/motion-prompt
cd motion-prompt
node skills/motion-prompt/scripts/motion-prompt.mjs info
node skills/motion-prompt/scripts/motion-prompt.mjs search mask reveal title
node skills/motion-prompt/scripts/motion-prompt.mjs prompt 5
info 回報「Catalog: version 1.495bd9fdec · 168 elements」。search 的前三筆:
#005 Mask reveal [motion / Entrances & text] Headline text slides out from behind an invisible edge marked by a single line.
#133 Text mask [motion2 / Text & shapes] Heavy letters are cut out so that a moving seascape shows only inside them; ...
#017 Mask transition [motion / Transitions & highlights] A circle- or star-shaped window grows, showing the next scene inside it.
prompt 5 輸出的就是 gallery 上 Copy prompt 那一整段規格,後面實驗的 C 組用的就是它。
不想裝任何東西也可以:打開 gallery 或 繁中名稱表,找到名稱直接寫進 prompt。#005 的繁中範例句是「標題請用 Mask Reveal 從下方升起,0.6 秒,每一行稍微錯開。」
講名稱真的比講「有質感」準嗎?我做了三組對照
實驗設定:
- 模型:Claude Haiku,用 Claude Code 2.1.312 的
claude -p --model haiku跑。 - 隔離:在空的暫存目錄、
--tools ""、不載入任何 MCP,確保模型讀不到本機的 Motion Prompt 檔案。 - 共同需求:540×220、深藍底,兩行標題「Hello!」與「Nice to meet you」,輸出單一 HTML,載入後播一次。
- 三種說法各生成 4 次:
prompt 5 輸出的完整規格。
- 量測:用 Playwright 每約 30ms 截一張,和最終畫面比對,量出動畫實際停在哪一秒。
| 組別 | 偵測到的手法 | 動畫停止時間(4 次) | 最終畫面 |
|---|---|---|---|
| A「有質感」 | 淡入+模糊+縮放,逐字出現 | 1.90/1.73/2.01/1.57 秒 | 標題完整 |
| B 名稱+秒數 | 遮罩裁切,從下方滑入,無淡入 | 0.72/0.70/0.71/0.61 秒 | 標題完整 |
| C 名稱+完整規格 | 遮罩裁切+珊瑚色分隔線,Canvas 繪製 | 2.25/2.24/2.24/0.47 秒 | 3 次空白,1 次標題完整 |
A 組:不是每次不同,是每次都用它的預設
IG 影片說「每次生成的動畫都不一樣」。在 Haiku 上我看到的是另一回事:4 次都做成逐字模糊淡入,連字母出現的節奏都很接近。模型對「質感」有一套固定答案,只是那套答案不是你腦中那一種,而且 1.6~2.0 秒的長度也沒有人決定過。
想要的如果剛好是模糊淡入,A 組也能用。問題在於你沒辦法用「更有質感」把它推往別的方向。
B 組:一句話就鎖住手法和長度
4 次都是文字從看不見的邊界後方滑上來,沒有任何淡入,停在 0.61~0.72 秒。4 支的 CSS 都宣告 0.6s,多出來的是「每一行稍微錯開」:以 B-1 為例,第二行延遲 0.12 秒,所以停在 0.72 秒。
這組我沒有給規格,模型也讀不到 repo。它能做對,靠的是「mask reveal」本來就是動態設計的通用說法;#005 這個編號對沒裝 skill 的模型沒有意義,拿掉應該也一樣。這是推論,這次沒有另外跑「只講 Mask reveal 不帶編號」的組別。
C 組:最像原作,但連退場一起抄
附上完整規格之後,4 次都出現原作的珊瑚色分隔線、上下兩行反向滑入,是三組裡最接近 gallery 示範的。
但規格寫的是示範的一整個循環:「One pass per 2.35 s」,包含 1.7 秒之後上排往上飛走、下排往下退出。4 次裡有 3 次照做,結果標題播完就消失,最後畫面是一片深藍。只有 C-4 停在完成畫面。
所以把規格貼給 AI 時,要另外講一句「只要進場,結束後停在最終畫面」。這是 Motion Prompt 規格的寫法造成的,它描述的是會循環播放的示範,不是一個可以直接放進專案的進場動畫。
什麼時候該用 Motion Prompt?
| 情境 | 建議 |
|---|---|
| 腦中有畫面但叫不出名字 | 開 gallery 看,找到名稱再寫 prompt。這是它最強的用途 |
| 已經知道名稱 | 直接寫「名稱+秒數+哪個元素怎麼動」,不用裝 skill |
| 要跟原作幾乎一樣 | 附完整規格或裝 skill,並講明只要進場或要循環 |
| 要中文名稱 | 前五包有繁中表,motion2、lp2 目前只有英文、日文 |
| 要整支影片的節奏與編排 | 它只處理單一動作,鏡頭順序和節奏還是要自己設計 |
這次實驗踩到的坑與限制
- 每組只有 4 個樣本,模型只測了 Haiku。Sonnet、GPT 在「有質感」組會不會更發散,這次沒測。
- 第一輪實驗作廢過一次:B-2 寫出了原作 kit 的函式名,推斷是
claude -p讀到了工作目錄裡的規格檔。後來改在空目錄加--tools ""全部重跑,上面的數字都是重跑的結果。 - 停止時間是比對截圖量出來的,取樣間隔約 30ms,數字有幾十毫秒的誤差。
延伸資源
- Motion Prompt GitHub repo:名稱表、CLI、skill 原始碼與 CONTRIBUTING。
- Motion Prompt gallery:168 個會動的示範,可勾選後複製或送回 AI。
- motion 包繁中名稱表:#001–024 的繁中名稱與範例句。
- 我的 A/B/C 對照頁:12 次生成的動畫可以直接在瀏覽器重播。
常見問題
Motion Prompt 要付費嗎?可以商用嗎?
不用付費。repo 是 MIT 授權,名稱、規格、參考程式碼都可以用在商業專案,保留授權聲明即可。
沒有 Claude Code,Motion Prompt 還有用嗎?
有。名稱表和 gallery 本身不需要安裝,把名稱和秒數寫進任何 AI 的 prompt 都行;gallery 的「Copy picks」會把規格和示範網址一起複製,可以貼進 ChatGPT 之類沒有 skill 的對話。
Motion Prompt 和 animation-vocabulary skill 差在哪?
方向相反。Motion Prompt 是先看示範、再拿名稱和規格去要,附有參考程式碼;animation-vocabulary 是把你的模糊描述反查成標準術語,只負責命名、不產生程式碼。兩個都是免費的 skill,可以一起裝。
為什麼我的 AI 照著規格做,動畫播完標題就不見了?
Motion Prompt 的規格描述的是示範的一整個循環,包含退場。我的實驗裡貼完整規格的 4 次有 3 次照做了退場。prompt 裡加一句「只要進場,結束後停在最終畫面」就能避開。