Communitygithub.com

動態字體設計(Kinetic Type)

每當影片中出現文字時(標題、字幕、下三分之一、公式、關鍵詞、引用或歌詞影片),提供約80種文字動畫技術,讓你可以根據字詞意義選擇合適的動畫效果,而非僅用預設的淡入、滑入或彈出。

動態字體設計(Kinetic Type) 是什麼?

這是一個專注於動態字體設計(Kinetic Typography)的AI技能,適用於Remotion等影片製作工具。當使用者的影片需要顯示文字時(例如標題、字幕、標籤、公式或歌詞),此技能會提供約80種文字動畫技術,分為18個家族,涵蓋「切片」、「打亂」、「重踏」、「書寫」、「標記高亮」、「里程錶」等效果,讓使用者根據文字意義而非預設效果進行選擇。技能支援兩種模式:教學模式(預設)使用平靜風格的統一設計,並為關鍵詞保留少量強調效果;自由模式則允許任意組合。此外,技能強調創意自由——所有建議皆非強制規則,當需要偏離時只需說明原因。針對阿拉伯語等連寫文字,技能會提醒避免逐字動畫以保持字形完整。此技能包含現成Remotion組件,用戶可直接複製`remotion/`資料夾,透過`KT_COMPONENTS`字典引用組件。若需從腳本製作完整影片或逐行規劃字體,則應使用更高階的`kinetic-type-director`技能。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/dricosnyman/kinetic-type-skills/tree/HEAD/skills/kinetic-type

在你喜歡的 AI 中提問

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

說明文件

動態字體設計(Kinetic Type) 是做什麼的?

當影片中出現文字時,腦中浮現的常見動畫是淡入、滑入與彈出。這些效果本身沒問題,但只是預設而非真正選擇。本技能將約80種技術(分屬18個家族)擺在面前,讓選擇成為真正的決定。

它負責提醒,而非主導。它不會為你原本的工作增加任何步驟、頁面或審核程序。

創意自由優先

此處所有內容皆為預設或建議,絕非規則。當某個時刻需要其他效果時,請打破預設,並用一句話說明原因(在計畫、程式碼註解或回覆中說明)。不在選單中的技術同樣歡迎使用。選單的存在是為了拓寬選擇,而非限制創意。

根據當下情境與意義選擇

在決定文字如何移動之前,先閱讀文字本身。問問這行文字在「做什麼」,然後選擇意義相符的技術:

文字行為...選擇
分割、打斷或分離某物slice, shatter
找出答案或揭露祕密scramble
重擊落地或倒數stomp
首次定義或書寫某個詞語stroke-write-on, marker-highlight
顯示數字變化odometer
描述某物消失disintegrate, smoke-dissolve
追隨圖表或方程式text-on-a-path, sine-wave-type

選單中的「適用情境」欄位正是為此問題而設。

變化程度

  • 教學模式(課程與解說影片的預設模式,以及使用者在請求中未明確指定時):為每一行普通文字使用一套統一風格,從標記為平靜的技術中挑選;再為關鍵時刻(關鍵詞、答案、警告)保留少數強調效果。標記為教學的技術適合做強調效果。少數強調效果比大量使用更有效。
  • 自由發揮(當使用者要求「要有創意」、「盡情發揮」、「給我驚喜」時):選單內的所有技術皆可使用,但仍需根據意義選擇。自由不代表要用很多種。一個大膽且精心挑選的效果勝過十種平庸的效果。
  • 如果影片明顯不是教學類型(如音樂錄影帶、預告片),且未指定模式,請選擇適合的風格並說明你的選擇。

收尾與檢查

  • 快速移動時加上動態模糊。 電腦動畫過於銳利,因此快速移動的文字可能顯得跳動。在移動方向上加一點模糊,可營造實景拍攝的效果。Remotion 提供動態模糊工具(@remotion/motion-blur),請以與專案 Remotion 完全相同的版本安裝,方式與「在 Remotion 中建構」部分的套件相同(npm i -E @remotion/motion-blur@<版本>)。作為收尾步驟使用於快速移動;慢速飄移時使用只會顯得失焦。
  • 連寫文字會破壞逐字效果。 在阿拉伯語、波斯語等字母形狀會隨鄰近字母改變的語言中,將單字拆解為字母(如 cascade、scramble、anagram、random-order pop-on、3D flip-in)會破壞字形。請改為對整個單字或整行進行動畫。
  • 確認字型包含所需的音調符號。 對於南非荷蘭語等帶有音調符號的拉丁文字,請在動畫前確認字型包含所需字母(ê、ë、ô、ï...)。

使用選單

在選擇之前,請先開啟 references/menu.md(位於本技能資料夾內)。選單列出所有技術,按家族分組,包含:

  • 名稱與 id(KT_COMPONENTS 中的鍵)
  • 一行外觀描述與適用情境提示
  • 標籤:平靜(適合統一風格)、教學(適合教學強調效果)、退出(結尾時文字消失,適合行尾或場景結束)、✚ 新增
  • 建構方式:component(現成組件)或 example(附註解的可調整場景,路徑已標示)

瀏覽家族標題,然後閱讀符合當下情境的家族中的行項目。

references/catalogue.md 為背景資料:選單背後的研究、來源、歷史及各技術的實作難度。僅在需要深入了解時開啟。

在 Remotion 中建構

  1. 將此技能資料夾中的 remotion/ 目錄複製到專案中,命名為 src/kinetic-type/。
  2. 確保專案中已安裝 remotion、@remotion/google-fonts 和 @remotion/layout-utils,且版本與專案的 Remotion 版本完全一致(Remotion 要求所有套件使用同一版本)。例如,若版本為 4.0.536:npm i -E @remotion/[email protected](-E 會儲存確切版本,而非 ^4.0.536)。
  3. 根據選單中的 id 查詢組件,並在 <Sequence> 中渲染:
import { Sequence } from "remotion";
import { KT_COMPONENTS } from "./kinetic-type";

const House = KT_COMPONENTS["tracking-in"];
const Accent = KT_COMPONENTS["slice"];

export const Intro: React.FC = () => (
  <>
    <Sequence durationInFrames={75}>
      <House text="Every whole can be shared" />
    </Sequence>
    <Sequence from={75} durationInFrames={60}>
      <Accent text="Split it in half" keyWord="half" />
    </Sequence>
  </>
);
  • 屬性(KTProps):text(必要)、keyWord(獲得強調效果)、fontFamily(預設 Poppins)、color、accent、fontSize(預設為符合畫面寬度)。
  • 每個組件在其 <Sequence> 的第 0 影格開始,並在大約一秒內完成動畫,因此 Sequence 的長度決定了文字停留的時間。有兩種情況行為不同:退出技巧在 Sequence 的最後一影格時文字會消失;而聲音節奏類(家族 15)則將文字分散在整個 Sequence 中,因此其長度決定了文字出現的節奏。
  • 對於 example 類型的技術,請開啟選單中指定的檔案並調整場景。
  • 其他影片工具:選單與選擇方式仍然適用,但現成組件僅限於 Remotion。

觀看效果,或導演整部影片

  • **畫廊:**所有技術的即時預覽,網址為 https://dricosnyman.github.io/kinetic-type-skills/
  • **整部影片或逐行導演:**當任務是根據腳本製作一整部動態字體影片,或使用者希望在動工之前規劃、審查與核准每行的字體設計時,請使用 kinetic-type-director 技能。該技能會執行完整流程,並以此技能為基礎:它會草擬字體腳本、顯示在可編輯的頁面上,然後使用這些組件建構核准的版本。

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

相關技能