24fps-motion について
24fps-motionは、動画制作者向けにモーショングラフィックスのプリセットやクリップを検索し、編集するスキルです。素材の検索に加え、HyperFramesやRemotionで使うスターターファイルと手順を提供します。
主な機能
- 01モーションクリップと編集素材の検索
- 02プリセットとスターターファイルの取得
- 03映像に合わせたプリセットの調整
- 04ライセンスの確認と作者のクレジット
活用シーン
- 01ロゴ表示やタイトル演出の検索
- 02動画への字幕やトランジションの追加
- 03HyperFramesまたはRemotionでのモーショングラフィックス制作
MCP 対応
https://24fps.dev/mcp のMCPサーバーは、クリップや編集素材の検索、クリップ情報やソースの取得、JSON・HyperFrames・Remotion形式でのプリセット取得に使うツールを公開します。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ misbahsy/ 24fps-skills --skill 24fps-motionインストール後、Claude Code で/24fps-motionを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/engine.mdexplainer-styles.mdrights.md詳細
24fps モーションライブラリ
プリセットや公開済みのプロンプトを再利用すれば、生成し直すより低コストです。また、プロンプトを使うと実行のたびに異なる動画が生成されます。まず検索し、それから作成しましょう。
ワークフロー
- 検索する。 キャプション、テキストシーン、フック、トランジション、エフェクト/グレード、レイアウト、フォントペアを探すには、
search_editor_assetsを呼び出します。モーショングラフィック全体(ロゴの登場、キネティックタイポグラフィ、ローンチ動画、解説動画、データビジュアライゼーション)を探すには、search_clipsを呼び出します。解説動画の場合は、references/explainer-styles.mdからスタイルも選びます。40種類のルック(数学の黒板、フラットベクターのサイエンス、地図エッセイ、ペーパークラフト、SaaSのローンチなど)があり、それぞれ最適なツールとスタータープロンプトが記載されています。 - 取得する。
get_editor_assetは、プリセットの JSON、agent_prompt、エンジンの URL を返します。完全なスターターファイルを取得するには、format: "hyperframes"または"remotion"を渡します。get_clipはクリップのプロンプト、モデル、フレームワーク、作成者を返します。get_sourceは、クリップがオープンライセンスの場合にのみリポジトリを返します。 - 調整する。 プリセットの構造は維持し、色、コピー、タイミングを変更します。ユーザーの映像で確認し、テキストが被写体に隠れていたり、映像の色と重なって読みづらかったりする場合は、レイヤーを移動するか色を変えます。
- クレジットを表示する。 クリップでは作成者の名前を記載し、24fps のページにリンクします。プリセットの場合は「24fps.dev/video-editor」と記載します。
MCP
エンドポイント:https://24fps.dev/mcp(ストリーミング可能な HTTP、キー不要)。Claude Code:claude mcp add --transport http 24fps https://24fps.dev/mcp。
| ツール | 引数 |
|---|---|
search_clips | query、framework、aspect(16:9、9:16、1:1、4:5)、max_seconds、has_prompt、limit |
get_clip | slug |
get_source | slug |
search_editor_assets | query、kind(captions、text、hook、transition、effect、layout、font-pair)、vertical、needs_cutout、has_sfx、limit。空のクエリまたは * を指定すると、種類ごとの件数を一覧表示します。 |
get_editor_asset | kind、id、format(json、hyperframes、remotion) |
list_tools | なし。対応するモーションフレームワークとライセンスを一覧表示します。 |
MCP クライアントを使わない場合は、同じエンドポイントを HTTP 経由で呼び出すか、JSON API を使用します。
curl -s https://24fps.dev/mcp -H 'content-type: application/json' -H 'accept: application/json, text/event-stream' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"search_editor_assets","arguments":{"query":"yellow karaoke","kind":"captions","limit":5}}}'
curl -s 'https://24fps.dev/api/clips?q=logo+reveal&framework=Remotion&has_prompt=true&per_page=5' # ?slug= for one clip
curl -s https://24fps.dev/video-editor/captions/pop-anton-yellow-karaoke/preset.json # any {kind}/{id}
閲覧用のインデックス:https://24fps.dev/video-editor/llms.txt と https://24fps.dev/llms.txt。
プリセットの適用
エンジン:https://24fps.dev/editor/engine.js。MIT ライセンス、ES モジュール、依存関係なし、時間の純粋関数です。コンポジションと同じ場所に engine.js として保存します。
import { mount } from "./engine.js";
const fx = mount(overlayEl, { kind, preset, script, media });
fx.render(seconds); // every frame
kindはcaptions | text | transition | effect | layoutです。フックとフォントペアにはtextを使います。mediaは、ほとんどの種類では{ main }、トランジションでは{ a, b }、レイアウトでは{ second, fg }です。fgは被写体を透明に切り抜いた画像で、z: "behind-subject"のテキストとsubjectおよびechoのエフェクトに必要です。- キャプションの
scriptには、秒単位の単語タイムスタンプを[{ w, s, e, emph }]の形式で指定します(Whisper の単語タイムスタンプを使用できます)。または、*強調*を含む文字列を指定します。 - サイズはフレームの高さに対する割合、位置は幅と高さに対する割合です。フォントには Google Fonts を使用します。
- フィールドのリファレンス:
references/engine.md、またはリファレンスフォルダーなしでスキルをインストールした場合は https://24fps.dev/skills/24fps-motion/references/engine.md を参照してください。
HyperFrames
オーバーレイを独立したトラック上の class="clip" の div に入れ、そこにマウントします。停止中の GSAP タイムラインから render を呼び出し、シークしても安全な状態を保ちます。プリセット JSON と単語タイミングはページ内にインラインで記述するか、ローカルスクリプトに置きます。レンダラーはレンダリング中にデータを取得しないようにしてください。
const fx = mount(document.getElementById("fx"), { kind, preset, media: { main: document.getElementById("a") } });
let now = 0;
const clock = { t: (v) => (v === undefined ? now : ((now = v), fx.render(v))) };
const tl = gsap.timeline({ paused: true });
tl.to(clock, { t: 6, duration: 6, ease: "none" }, 0);
(fx.ready ?? Promise.resolve()).then(() => { window.__timelines["main"] = tl; });
被写体を切り抜くには、npx hyperframes remove-background clip.mp4 -o clip.fg.webm を実行します。
Remotion
useLayoutEffect で一度マウントし、クリーンアップ時に破棄して、フレームごとにレンダリングします。エフェクトからレンダリング結果を返さないでください。
useLayoutEffect(() => {
fx.current = mount(root.current!, { kind, preset, media: { main: a.current! } });
return () => fx.current?.destroy();
}, []);
useLayoutEffect(() => { fx.current?.render(frame / fps); }, [frame, fps]);
キャプチャの前にフォントの読み込みを待ちます:await (fx.ready ?? document.fonts.ready)。
プロジェクトのセットアップ、レンダリング、フレームワークのルールについては、/hyperframes または /remotion-best-practices と併用してください。このスキルはアセットを見つけるもので、プロジェクトの構築とレンダリングはそれらのスキルが行います。
権利
- アレンジしたクリップには、すべて作成者のクレジットを記載してください。
https://24fps.dev/c/{slug}にリンクしてください。 - サードパーティのクリップを再ホストしないでください。リンクを掲載してください。
get_sourceの戻り値がavailable: trueのクリップのみ、記載されているライセンスに従ってリポジトリを利用できます。 - エディタープリセットは独自に再現したもので、MIT ライセンスです。
- オープンソースカタログの項目(
/video-editor/open-source)には、それぞれ独自のライセンスが適用されます。MIT、Apache-2.0、BSD、OFL のコードのみコピーし、ライセンス表示を残してください。Remotion ライセンスの項目とライセンスのない項目はリンクのみとし、ソースを貼り付けず、アイデアを再現してください。 - 詳細は
references/rights.md(https://24fps.dev/skills/24fps-motion/references/rights.md にもあります)を参照してください。