文章 / AI 工具

用 Claude 做一套動態貼圖:Anthropic 官方 Slack GIF Creator skill,4 步做出 8 張會動的 GIF

不用會 AE。裝上 Anthropic 官方的 Slack GIF Creator skill,先定角色、再把擠壓伸展寫進動作,Claude 會用 Python 一格一格畫,匯出 GIF 並用內建工具檢查。

你叫 AI 做貼圖,是不是只拿到一張不會動的圖?大家以為做動態貼圖要會 After Effects。其實只要把「角色」和「動作」寫清楚,Claude 就能用 Anthropic 官方的 Slack GIF Creator skill,一格一格把它畫出來。這篇用一隻原創的麻糬小怪獸「糬糬」,做了 8 張台灣日常用語的動態貼圖。下面每一張圖和每一段動畫,都是 Claude 在 Claude Code 裡用這個 skill 實際做出來的。

01先看成果:8 張貼圖、8 種動作

一隻角色、8 句台灣人每天會打的話:收到、謝謝、晚安、好喔、加油、哈哈哈、等我一下、讚啦。每張都是 1.2 到 2 秒的無縫循環 GIF。

糬糬動態貼圖 4×2 總覽:收到、謝謝、晚安、好喔、加油、哈哈哈、等我一下、讚啦
4×2 總覽圖也是 Claude 排的:同一隻糬糬,每張換一個底色、一個表情、一個動作。

02先裝 Slack GIF Creator skill(2 分鐘)

  1. 打開 Claude Code。
  2. 輸入:/plugin marketplace add anthropics/skills
  3. 再輸入:/plugin install example-skills@anthropic-agent-skills
  4. slack-gif-creator 就在 example-skills 這一組裡,會一起裝好。跟 Claude 說「用 slack-gif-creator 這個 skill 幫我做…」就會用到它。

用 claude.ai 的話,先到 Settings → Capabilities 確認「程式碼執行和檔案建立」有打開,再到 Customize → Skills 把範例 skill 打開。官方說明頁寫 Free、Pro、Max 方案都能在這裡開範例 skill;GitHub 的 README 則寫付費方案已經內建。Team 和 Enterprise 要看管理員的設定。

GitHub 上 slack-gif-creator 的 SKILL.md:名稱、說明和 Slack 規格
SKILL.md 開頭就寫好規格:表情符號 GIF 128×128、訊息 GIF 480×480、每秒 10 到 30 格、48 到 128 色。

03第 1 步:定角色,一句話寫清楚長相

第一步不是動畫,是角色。描述越具體,8 張畫出來越像同一隻。我們寫了 5 件事:

  1. 身體:圓圓的饅頭形,短短的小手小腳。
  2. 五官:黑豆豆眼加一點白色反光,粉紅腮紅。
  3. 顏色:平塗粉彩,不要漸層。
  4. 外框:深可可色的粗圓角外框,最外面再加一圈白色貼紙邊。
  5. 記憶點:頭頂一片小嫩芽,動的時候慢半拍跟著晃。
原創角色糬糬站立的樣子:粉紅麻糬身體、頭頂嫩芽、豆豆眼、腮紅、粗外框
糬糬的定裝照:麻糬身體、嫩芽、豆豆眼、腮紅、粗外框,外面一圈白色貼紙邊。

下面是整套的提示詞。角色、8 句話和動作、動畫規則、輸出格式一次寫完,後面 3 步會解釋每一段為什麼要這樣寫。

整套動態貼圖提示詞(把[]換成你的)
用 slack-gif-creator 這個 skill,幫我做一套[8]張的動態貼圖。
角色:一隻原創的[粉彩麻糬小怪獸],[圓圓的身體、豆豆眼、粉紅腮紅、短短的小手小腳],深色粗外框,平塗粉彩,不要像任何現有的角色。
每張的字和動作:[收到(跳起來敬禮)、謝謝(鞠躬冒愛心)、晚安(打瞌睡冒 Zzz)……],大大的手寫感字,每個字有點歪,外面加一圈白邊。
動畫:每張 1–2 秒無縫循環,要有擠壓伸展和彈跳的 easing,不要線性移動,腳下影子跟著跳的高度縮放。
輸出 480×480 GIF,用 skill 的 validator 檢查,另外每張存一份 PNG 逐格圖。

04第 2 步:寫動作,把擠壓伸展寫進去

貼圖會不會 Q 彈,差在動作怎麼寫。只寫「讓它跳」,它會平平地往上移。要把動畫的基本功寫進去:

  1. 擠壓伸展(squash & stretch):起跳前先蹲、身體壓扁;往上衝時拉長;落地再壓扁一下。
  2. easing(緩動):不要等速移動。往上越來越慢、往下越來越快,落地加一點回彈。
  3. 跟隨動作:頭上的嫩芽慢半拍才跟上身體。
  4. 影子:腳下的影子跟著跳的高度縮放,跳越高、影子越小。
動畫:糬糬先蹲下、跳起來敬禮、落地壓扁再回彈,上方是「收到」
「收到」1.4 秒循環:先蹲(壓扁)→ 起跳(拉長)→ 敬禮 → 落地壓扁再回彈。
「收到」的 12 格逐格圖,看得到壓扁、拉長和落地
把「收到」攤開來看:第 5 格蹲到最扁,第 7 格拉到最長,第 23 格落地又壓扁。

8 張的動作我們是這樣寫的,每個動作都要看得出情緒:

  1. 收到:跳起來敬禮。
  2. 謝謝:鞠躬,旁邊冒愛心。
  3. 晚安:戴睡帽打瞌睡,冒 Zzz。
  4. 好喔:雙手在頭上比一個圈。
  5. 加油:綁頭巾,握拳往上衝。
  6. 哈哈哈:笑到左右搖,噴眼淚。
  7. 等我一下:原地狂跑,滴汗。
  8. 讚啦:壓扁、彈起來,眨眼比讚。

05第 3 步:逐格生成(這步最神奇)

接著 Claude 寫一支 Python 程式,用 PIL 一格一格把糬糬畫出來。每個動作的快慢,都用 skill 內建的 easing 函式來算(ease_in、ease_out、back_out、elastic_out),壓扁和拉長則用 skill 裡的 apply_squash_stretch。

每張 24 到 40 格、每秒 20 格,所以是 1.2 到 2 秒的循環。它先用 4 倍大(1920×1920)畫,再縮成 480×480,線條邊緣才會乾淨。

動畫:戴睡帽的糬糬打瞌睡、鼻涕泡泡破掉驚醒,再睡回去,上方是「晚安」
「晚安」40 格、2 秒:點頭打瞌睡,泡泡一破驚醒,再睡回去。

第一輪不會完美。我們用設計檢查跑了 3 輪(7 分 → 8.5 分 → 9 分才通過),抓到的問題都很具體:

  1. 「讚啦」原本要轉一圈,轉到側面時臉整個不見,看起來像程式壞掉 → 改成不轉圈:壓扁、彈起、眨眼比讚,每一格都看得到臉。
  2. 「加油」舉起的手穿過字 → 上面約 28% 留給字,角色縮小、往下放。
  3. 8 張裡有 5 張是同一個笑臉 → 每張換自己的表情,動作也加大。
  4. 「好喔」兩隻手在頭上合起來時,滑進字的下面 → 限制手臂畫圈的高度。
只改一張的提示詞(把[]換成你的)
只改[讚啦]這一張:[不要轉圈,改成先壓扁、彈起來,眨一隻眼睛比讚,每一格都要看得到臉]。其他[7]張和角色設定都不要動,改完重新匯出 GIF,再用 validator 檢查一次。
動畫:糬糬壓扁、彈起來,眨眼比讚,上方是「讚啦」
改好的「讚啦」:不轉圈了,壓扁、彈起、眨眼比讚,臉一直都在。

06第 4 步:匯出 GIF,再用 skill 的工具檢查

最後它用 skill 的 GIFBuilder 把每一格組成 GIF。同一套圖,我們輸出兩種:

  1. 訊息用 GIF:480×480、128 色、每秒 20 格。8 張每張約 0.7 到 1.3 MB。
  2. 表情符號 GIF:128×128、48 色,用 skill 的表情符號模式,它會自動把格數減到大約一半。每張約 50 到 70 KB。

每個檔案再跑一次 skill 的 validate_gif。「晚安」的實際結果是:480x480、40 格、每秒 20 格、2.0 秒。16 個檔案全部 PASS。

要知道它檢查什麼:這個工具判斷 PASS 主要看尺寸和長寬比,另外列出格數、秒數和檔案大小。檔案太大它不會擋下來,要自己看一眼。

8 張貼圖的 128×128 表情符號版並排
128×128 的表情符號版:縮到這麼小,字和表情還是看得懂。

07要注意

  1. 糬糬是我們的原創示範角色,8 張貼圖由 Claude 用 Slack GIF Creator skill 生成。
  2. Slack GIF Creator 是 Apache 2.0 授權的範例 skill。角色要原創,不要叫它畫現有的卡通人物或品牌角色。
  3. 想上架 LINE Creators Market 的話:LINE 動態貼圖的規格是 APNG(副檔名 .png),不是 GIF。可以請 Claude 用同一套逐格圖另外匯出 APNG,其他規格以 LINE 官方說明為準。
  4. 字體要能商用:我們的貼圖字用 Noto Sans TC(SIL OFL 授權);用其他字體前,先確認各自的授權。
  5. 範例 skill 的開法和適用方案可能會改,以 Claude 官方說明頁為準。

資料來源

延伸閱讀