remotion-animation-rules について
Remotion のネイティブなフレームベース手法でアニメーションを作成する Claude スキルです。字幕、トランジション、モーショングラフィックスを扱い、決定論的な描画とレイアウトの安定性を重視します。
主な機能
- 01useCurrentFrame() による時間制御
- 02spring() と interpolate() によるアニメーション
- 03CSS トランジションとブラウザータイミングの回避
- 04字幕同期とフレーム安定性の検証
活用シーン
- 01フレームに同期したアニメーション字幕の作成
- 02再利用可能なシーンアニメーションとトランジションの構築
- 03Remotion の描画結果が一致しない問題の調査
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ composio-community/ opencode-skills --skill remotion-animation-rulesインストール後、Claude Code で/remotion-animation-rulesを入力して読み込まれたか確認します。
詳細
Remotion アニメーションのルール
概要
このスキルを使うと、Remotion にネイティブなレンダリングとアニメーションの原則に従って、Claude が技術的に正しいアニメーションを作成できます。
従来のフロントエンドアニメーションのワークフローとは異なり、Remotion はブラウザー主導のアニメーションシステムではなく、完全に決定論的なフレームベースのレンダリングに依存します。
このワークフローでは、次の点に重点を置きます。
useCurrentFrame()の適切な使用- スプリング駆動のモーションシステム
- 決定論的なレンダリング
- レイアウトの安定性
- フレームベースのタイミング
- サポートされていないアニメーションパターンの回避
アニメーションをすべてのフレームで滑らかかつ安定させ、安全にレンダリングでき、一貫性を保つことが目標です。
セットアップ
開始する前に、次の手順を行います。
-
Node.js をインストールします。 https://nodejs.org
-
インストールを確認します。
node -v
npm -v
- Remotion プロジェクトを作成します。
npm init video
- 開発サーバーを起動します。
npm run dev
- VS Code でプロジェクトを開きます。
推奨ツール:
- VS Code
- Remotion Preview
- React の知識
- Prettier 拡張機能
必要な入力
- アニメーションのコンセプト
- 動画の長さ
- シーン構成
- アセット:
- テキスト
- 字幕
- 画像
- 音声
任意:
- ブランディングガイドライン
- 既存のモーション参考資料
- ストーリーボード
このスキルを使用する場面
次のような場合に、このスキルを使用します。
- Remotion アニメーションの作成
- 字幕システムの構築
- トランジションの実装
- モーショングラフィックスのデザイン
- 再利用可能なアニメーションロジックの作成
- 不安定なアニメーションのデバッグ
- レンダリングの一貫性の最適化
使用しない場面
次の用途には、このスキルを使用しないでください。
- CSS ベースのアニメーションシステム
- ブラウザー主導のトランジションワークフロー
- 静的なデザイン作業
- React ワークフローを使わない従来の動画編集ツール
使用例
スタートアップのローンチ動画向けに、アニメーション付き字幕を作成します。
Claude は次の手順を行います。
- すべてのアニメーションのタイミングに
useCurrentFrame()を使用する - 字幕の動きにスプリング物理を適用する
- CSS トランジションを完全に避ける
- フレーム単位で字幕の表示を同期する
- レイアウトの寸法を安定させる
- 書き出し時にもレンダリングが決定論的であることを確認する
最終的な出力では、次の点を満たす必要があります。
- 一貫してレンダリングされる
- タイミングの不具合がない
- 滑らかな動きを保つ
- レイアウトの不安定さを防ぐ
- 安全に書き出せる
Remotion の基本原則
1. すべてをフレームベースにする
Remotion では、アニメーションのタイミングは常に現在のフレームから導き出します。
推奨 API:
useCurrentFrame()interpolate()spring()
例:
const frame = useCurrentFrame();
これにより、次のことが実現します。
- 決定論的なレンダリング
- 正確な同期
- 書き出し時の一貫性
次の使用は避けます。
setTimeout- ブラウザーのタイミングシステム
- 制御されていないアニメーション
2. 動きにはスプリング物理を使用する
可能な限り、スプリング駆動のシステムを使って動きを表現します。
推奨する方法:
spring({
frame,
fps,
config: {
damping: 200,
},
});
スプリングシステムには、次の利点があります。
- より滑らかなイージング
- 予測可能な動き
- 自然なモーション
特に適した用途:
- 拡大縮小
- フェードイン
- 字幕の表示
- スライドアニメーション
- トランジション
次の使用は避けます。
- CSS のイージングトランジション
- 制御されていない補間
- ブラウザー主導のアニメーションタイミング
3. CSS トランジションを完全に避ける
CSS トランジションは、Remotion のワークフローでは信頼性がありません。
不適切な方法:
transition: all 0.3s ease;
CSS トランジションによって発生する問題:
- レンダリングの不一致
- 書き出し結果の不一致
- タイミングの不安定さ
- ブラウザーに依存する動作
推奨する方法:
- フレームの値から直接モーションを計算する
- 補間またはスプリングを使用する
4. レイアウトの安定性を保つ
Remotion でよくある問題のひとつは、アニメーション中のレイアウトのずれです。
問題の例:
- タイピングアニメーション中にテキストが跳ねる
推奨する解決策:
- 背景に透明な全文を描画する
- アニメーション付きテキストを別途重ねる
- レイアウトの寸法を安定させる
Claude は次の問題を事前に防ぐ必要があります。
- テキストの再配置
- アニメーション中のサイズ変更
- 不安定な位置決め
- 動的なレイアウトのずれ
安定したレイアウトは、次の改善につながります。
- レンダリングの一貫性
- 字幕の読みやすさ
- アニメーションの滑らかさ
5. アニメーションの決定性を保つ
アニメーションは、どのレンダリングでも同じように動作する必要があります。
モーションシステムでは、次の点を守ってください。
- 予測可能なタイミングを使用する
- ランダム性を避ける
- フレームで制御する
- 音声と正確に同期する
決定論的なレンダリングにより、次の点が向上します。
- 書き出しの信頼性
- デバッグ
- 同期
- 制作の安定性
ワークフロー
1. アニメーションの構成を定義する
まず、次の項目を特定します。
- 動画の長さ
- シーンの構成
- 字幕のタイミング
- トランジションの要件
アニメーションを再利用可能なシーンコンポーネントに整理します。
構成例:
scenes/
Intro.tsx
Features.tsx
CTA.tsx
2. フレームロジックを実装する
シーン内で useCurrentFrame() を使用します。
例:
const frame = useCurrentFrame();
すべてのアニメーション状態は、フレームの進行に基づいて決定する必要があります。
3. モーションシステムを追加する
次を使用します。
spring()interpolate()
推奨されるアニメーションの動作:
- 滑らかな動き
- 制御されたスケーリング
- タイミングを制御したトランジション
- 同期された字幕
次の使用は避けてください。
- CSS アニメーションシステム
- ブラウザーが制御するタイミング
- 制御されていないイージング
4. レイアウトの安定性を検証する
次の点を確認します。
- テキストの跳ね
- サイズ変更
- 字幕のずれ
- 不安定な配置
レンダリングする前に、不安定な箇所を修正してください。
5. 最終動画をレンダリングする
書き出す前に、次の点を検証します。
- タイミングの一貫性
- モーションの滑らかさ
- 字幕の同期
- レイアウトの安定性
出力をレンダリングします。
npm run build
または:
npx remotion render
推奨される書き出し形式:
- MP4
- プラットフォームに最適化された設定
出力の要件
最終出力には、次の内容を含める必要があります。
- フレームベースの滑らかなアニメーション
- 決定論的なレンダリング
- 安定したレイアウト
- 同期された字幕
- 制作に使える動画の書き出し
ワークフロー自体は、次の特性を維持する必要があります。
- 再利用可能
- モジュール化されている
- 保守しやすい
- レンダリング時に安全
実行戦略(AI エージェント向け)
エージェントは次のことを行う必要があります。
- Remotion ネイティブのアニメーションシステムのみを使用する
- すべてのモーションをフレーム単位で制御する
- サポート対象外のブラウザーアニメーションパターンを避ける
- 決定論的なレンダリング動作を維持する
- レイアウトの不安定さを事前に検出し、防止する
- 書き出す前にアニメーションの一貫性を検証する
ワークフローでは、次の点を最適化します。
- レンダリングの一貫性
- タイミングの精度
- レイアウトの安定性
- 滑らかな動き
- 書き出しの信頼性
ベストプラクティス
- すべてのタイミングに
useCurrentFrame()を使用する - 手動のイージングよりスプリングアニメーションを優先する
- シーンをモジュール化する
- アニメーションをフレーム単位で検証する
- レイアウトに依存するモーションを避ける
- 字幕システムを安定させる
- シーン間でモーションパターンを再利用する
注意事項
useCurrentFrame()は Remotion ワークフローの中核です- CSS トランジションに依存してはいけません
- スプリングシステムは、より自然な動きを生み出します
- レイアウトの安定性は、レンダリング品質を大幅に向上させます
- 決定論的なレンダリングは、プロフェッショナルな動画制作ワークフローに欠かせません