Communitygithub.com

edit-skill

XBEAR MEDIAのクリームキャンバス+エディトリアルカードスタイル(Seçkin Ayazlar Reels/YouTube)におけるRemotionを使用したアニメーションビデオ編集スキル。トーキングヘッド動画にモーショングラフィックス、字幕、カウンター、カード、トランジション、効果音を追加し、シーンを計画し、デザインページを作成する際に使用します。

edit-skill とは?

このスキルは、トーキングヘッド動画を、ダークなA-roll(顔+字幕)とクリームキャンバス(説明、証拠、数字)の2つの世界を行き来するエディトリアルモーショングラフィックスに変換します。Remotionベースで構築されており、ビデオ編集における計画、設計、レンダリングの体系的なワークフローを提供します。主にSeçkin AyazlarのReelsやYouTubeコンテンツ向けに設計されており、キャンバスとA-roll間のハードカット、特定のカラーパレット(クリーム#F5F2EF、アクセントブルー#2782F5など)、タイポグラフィルール(ネオグロテスクサンセリフ体とイタリックセリフ体の強調)、および厳格なモーションガイドライン(5~14フレームのアニメーション、イージングアウト、スプリング効果)を重視しています。また、リズムガイドライン(6~8秒ごとに新しいビジュアルアイデア)、特定の文タイプのアニメーションマッピング、禁止事項(ネオン、グリッチ、2行を超えるテキストなど)も定義されています。ワークフローは、文字起こしからシーン計画、デザインページの生成、ユーザー承認、最終レンダリングへと進み、クライアント承認前にPNGデザインページを表示するという厳格なルールがあります。このスキルは、Remotion Studioプロジェクト(`remotion-studio/`)内で動作し、一連の再利用可能なReactコンポーネント(`KremZemin`、`VurguMetni`、`SayiSayaci`、`UIKart`、`AltYaziBandi`など)を使用して、適切な効果音(スウッシュ、ブーム、ポップなど)とともにアニメーションを調整します。

対応✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/bgaranli2-afk/edit-skill/tree/main

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

xbear-motion-kurgu

トーキングヘッド動画を、2つの世界を行き来するエディトリアルモーション編集に変換します: ダークな A-roll(顔+字幕) ↔ クリーム キャンバス(説明、証拠、数字)。編集はRemotionで行われます。

黄金律: どのシーンも、承認なしにビデオとしてレンダリングされません。最初にデザインページ(PNG)が表示されます。

0. ファイル(ルート: ~/Desktop/seckin_ayazlar/)

項目場所
このスキル+インデックス06_skill/xbear-motion-kurgu/SKILL.md, REFERANS_INDEKSI.md
スタイル概要(寸法)05_stil_calismasi/STIL_OZETI.md(ルールが不明確な場合のみ読む)
アニメーションカード05_stil_calismasi/animasyonlar/<tür>/<id>/kart.md + in/peak/out.png
ブランド(すべてに優先)02_marka/marka_notu.md, fontlar/, logolar/
Remotionプロジェクトremotion-studio/ → コンポーネント src/xbear/
文字起こしツールremotion-studio/scripts/transcribe.sh <video> <çıktı> tr → <ad>.words.json
プロジェクト出力07_projeler/<proje>/(デザインページ、最終MP4、シーンリスト)
コンポーネントテスト05_stil_calismasi/bilesen_testleri/
効果音03_sfx/<tür>/(ソース) → scripts/sfx_esitle.py → public/sfx/ + src/xbear/ses/kutuphane.ts。測定: 05_stil_calismasi/SES_ANALIZI.md

競合時の優先順位:marka_notu.md > このファイル > STIL_OZETI.md。

1. スタイルルール

世界

  • A-roll(約30%):ダークスタジオ、顔、字幕。ほぼ常に字幕付き。
  • キャンバス(約70%):#F5F2EF 背景、薄いグリッド、柔らかい斜め窓光(<KremZemin>)。
  • A-roll ↔ キャンバスの切り替えは常にハードカットです。スライド、ワイプ、クロスフェードは禁止です。

色(tema.ts → RENK)

役割HEX
キャンバス / グリッド#F5F2EF / #ECE9E6
カード#FFFFFF
メインテキスト / セカンダリ#111111 / #8A8A8A
アクセントブルー(UI / イタリックテキスト)#2782F5 / #1E90E8
マネーグリーン#16A06B
警告レッド(手描き、期限、ネガティブ)#E35B63
プロダクトグロー#864EC6 → #3C296B
A-rollブラック / 字幕#030303 / #FFFFFF

一文につきアクセントカラーは最大1つ: 青=メインアイデア、緑=お金、赤=期限または損失。

タイポグラフィ(tema.ts → FONT, BOYUT; 1080×1920用)

  • 文 / 字幕: ネオグロテスクサンセリフ(Instrument Sans 500)。キャンバスでは84px、A-roll字幕では64px。
  • 強調フレーズ: 青イタリックセリフ(Instrument Serif Italic)、サンセリフサイズの1.3倍。文中に1フレーズ、2~4単語; 決して太字や下線なし。
  • 数字: 太字イタリックグロテスク(Inter Black Italic)、表形式数字。セリフは絶対に使いません。お金の場合は緑色。
  • ラベル: グレー、大文字間隔(letter-spacing .16em)。
  • 最大2行まで。テキストは中央揃え、または空白の三分割に揃えられ、全幅は使いません。トルコ語の文字は正しく書きます(ğ, ş, ı, İ)。
  • ブランドフォントが届いた場合、src/xbear/fontlar.tsのみ変更されます。

モーション(tema.ts → KARE, EASE)

要素動作持続時間
単語不透明度0→1 + ぼかし8→0、その場で(行は移動しない)5フレーム、単語が発話された瞬間
カード / オブジェクト出現約60px上昇 + フェード + ぼかし10→0 + スケール.95→1、イーズアウト14フレーム
アイコン / バッジスケール.6→1、弱いオーバーシュート(スプリング)8フレーム
テキスト終了40px上にスライド + ぼかし、イーズイン10フレーム
キャンバスセクション変更フォーカスロス9フレーム
カード横終了水平方向モーションブラー8フレーム
カメラキャンバス上で常時ゆっくりドリフト; A-rollでは即時リフレーム(1.15~1.3倍)
カウンターイーズアウトカウント; お金は最終値で緑色に変わる20~90フレーム

すべてのモーションは15フレーム以内に収まります。唯一許容されるオーバーシュートは弱いスプリングです。

リズム

  • 平均約6~8秒ごとに新しいビジュアルアイデア(v01の中央値6.4秒)。
  • シーン内では1~2秒ごとに何かが変わります:単語、カード、またはカウンターのティック。
  • 1分間に約5回のハードカット。A-rollセクションの中央値は約8~9秒。
  • フック(最初の3~5秒):A-roll + 字幕 + マーク付きの重要な数字 + アイコン1つ。

文 → アニメーション

文のタイプ表示内容
日付 / 期限カレンダーアイコン + 赤い日付
リスト(「X、Y、Z」)各項目が自身の単語にカード + 増加するカウンターピル
お金 / 収益緑の太字イタリック数字、多くの場合カウントアップ
結果 / 「人々が言ったこと」証拠カード(約1秒ごと)
価格計算行ごとに構築、次に棒グラフ比較
隠された情報モザイク + 「後で明かされる」ピル
製品 / ツール名製品カードまたはアプリアイコン
選択質問A-roll上の2つのボタン
感情的な / 個人的な文A-roll + 字幕のみ
行動喚起(CTA)「リンクをクリック」+ 下からの青いグロー + ボタンクリック

禁止事項

  • ネオン、グリッチ、RGBずれ、フィルムバーン、ライトリーク、絵文字、ステッカー
  • テキストの影、輪郭線、グラデーション、大文字字幕、ボックス/プレート付き字幕
  • 回転、3Dフリップ、ゴムのようなイージング
  • 全画面カラー背景:背景はクリームキャンバスまたはダークA-rollのみ
  • 2行を超えるテキスト、文中の複数の強調
  • A-roll ↔ キャンバス間のスライドまたはクロスフェード
  • セーフエリア外へのオーバーフロー:上部8%、下部15%、右側12%は空けておく。字幕は顔を覆わない。

効果音(測定: SES_ANALIZI.md)

イベント効果音注意
A-roll ↔ キャンバスカットwhooshSahne.dunyaが変わるとSahneDizisiが自動で配置(カットの約60%)
カード、数字、ピルの出現swishKartGiris, UIKart, SayiSayaciが自動再生
カードの横終了、フォーカスロスwhoosh次のカットのwhooshが0.5秒未満ならオフ(cikisSesi={false})
フックのリフレーム、ペイオフ/説明、CTAboom1分間に約1回。ZoomIn ses="boom" または <SesEfekti tur="boom">
バッジ / 手描き / ボタンpop / kalem / klik
隠し情報が明かされる前riserピークは説明の瞬間に合わせる
カウンター—ティックなし(tikSesiデフォルトオフ)
マネーカウンターが緑に変わる瞬間para(カチン)SayiSayaci paraが自動再生(paraSesi={false}でオフ)。参考資料にはない、XBEARの好み
  • 効果音のピークはビジュアルイベントから2~3フレーム後に来ます(TEPE_GECIKME_KARE)。コンポーネントはこれを自動調整します。
  • SFXピークは会話の約10 dB下に留まります(SEVIYE_DB: swish -17, whoosh -14, boom -12 dBFS)。全体調整には<SesAyari kaydirmaDb={-3}>を使用します。
  • 禁止: whoosh連発、すべての単語にポップ、カウンターティック、同じファイルの連続再生。
  • 生のEpidemicファイルは直接03_sfx/<tür>/フォルダに配置します。sfx_esitle.pyがバリアントを分け(_v1, _v2…)、無音とテールをトリミングし、正規化します。

Seçkinチャンネルルール(02_marka/marka_notu.md)

  • 罵り言葉はカットされます。無音の待機や台本を見て暗記する瞬間はカットされます。編集は撮影順に従います。
  • 音楽はEpidemic Soundからのみ選択され、-15 dB(大きい場合は-20 dB)、イントロと無音部分の下でのみ使用されます。
  • カラーコレクションは行いません。

2. ワークフロー

ステップ 1 — 計画

  1. 文字起こしを取得: remotion-studio/scripts/transcribe.sh <ham.mp4> 07_projeler/<proje>/ tr。
  2. カットする場所をマーク: 無音、暗記、罵り言葉。
  3. シーンリストを表として書き、ユーザーに表示: S01 | 00:00.0–00:04.8 | A-roll / キャンバス | 発話内容 | 表示内容(文のタイプ) | コンポーネント | 効果音。
  4. リズムチェック: 約6~8秒ごとに新しいアイデアが必要、連続3つのA-rollシーンは不可。

ステップ 2 — 参照選択

  • REFERANS_INDEKSI.mdのみを読みます。 各シーンについて「いつ」とキーワードを見て、2~3行を選択します。
  • その行のkart.mdと必要に応じてpeak.pngのみを開きます。clip.mp4は開かず、フォルダ全体はロードしません。
  • シーンリストにref v01-17のようなメモを追加します。

ステップ 3 — デザインページ

  1. プロジェクトフォルダを作成: remotion-studio/src/projeler/<proje>/。
    • sahneler.tsx → Sahne[]リスト(id, ad, sure, kareler, not, dunya, Bilesen)。
    • 各シーンのkareler配列に、2~3のキーフレームを入力: 出現完了、ピーク、終了直前。
    • Kayit.tsxは2つのコンポジションを登録: <Proje>-Video(SahneDizisi)と <Proje>-Tasarim(TasarimSayfasi)。両方ともRoot.tsxに追加。
    • デザインコンポジションは**<Composition>**である必要があります(<Still>ではありません)、{...tasarimSayfasiBoyutu(sahneler)}を使用。そうしないとフレームが0に圧縮されます。
  2. 03_sfxが変更された場合、最初に効果音を同期: python3 -I remotion-studio/scripts/sfx_esitle.py。スクリプトは合成プレースホルダーを使用するタイプをリストアップします; これをユーザーに伝えます。
  3. 生ビデオをremotion-studio/public/ham/<proje>/に配置し、<ARoll kaynak="ham/<proje>/x.mp4" baslangicSn={…} />で呼び出します。
  4. レンダリング: npx remotion still <Proje>-Tasarim ../07_projeler/<proje>/tasarim_v1.png --frame=0
  5. PNGを自分で確認します。セーフエリア、オーバーフロー、2行制限、トルコ語の文字をチェックします。その後、ユーザーに表示します。

ステップ 4 — 承認(必須)

  • ユーザーが明示的に承認するまで、remotion renderは実行されません。単一シーンのテストレンダリングも行いません。
  • 修正が要求された場合、デザインページの新しいバージョン(tasarim_v2.png)を作成します。

ステップ 5 — レンダリング

  • npx remotion render <Proje>-Video ../07_projeler/<proje>/final_v1.mp4 --port=3199
  • 出力をffprobeで検証: 1080×1920, 30 fps, 期待通りの長さ, オーディオストリームあり。
  • ffmpeg -i final.mp4 -af volumedetect -f null - → max_volume ≤ -1 dB であること(クリッピングなし)。
  • 最終ビデオとともにシーンリストを納品: 時間 | タイプ | 画面上のテキスト | トランジション | 参照。

ステップ 6 — 修正

  • 要求されたシーンのみ変更します。最初にそのシーンのデザインページ(変更されたシーンのみ)を表示し、承認後、ビデオを再度レンダリングします。
  • ファイルはバージョン番号で管理します(final_v2.mp4)。古いバージョンは削除しません。

3. Remotionの構造とコンポーネント

remotion-studio/
  public/fonts/            Instrument Sans/Serif, Inter (OFL) → brandフォントが来たら public/fonts/marka/
  public/ornek/            aroll_yer_tutucu.mp4(テストのみ)
  public/sfx/<tür>/        sfx_esitle.pyで正規化された効果音(手動で触らない)
  public/ham/<proje>/      生A-roll(プロジェクトごと)
  src/Root.tsx             fontlariYukle() + すべてのコンポジション
  src/xbear/               ← 再利用可能なライブラリ、"./xbear"からインポート
    tema.ts zamanlama.ts fontlar.ts TasarimSayfasi.tsx index.ts
    bilesenler/*.tsx
    ses/                   sesler.ts(レベル/アライメントルール)、SesEfekti.tsx、kutuphane.ts(自動)
    ornekler/              各コンポーネントの使用例(XB-*コンポジション)
  src/projeler/<proje>/    sahneler.tsx, Kayit.tsx, kelimeler.json
コンポーネント用途使用例
KremZeminキャンバス背景 + ドリフト<KremZemin>…</KremZemin>
VurguMetniキャンバス文、単語ごと; [ ] = 強調, \n = 改行<VurguMetni metin={"充電はたったの30分、\n[競合他社より高速]"} isaret={{ifade:"30分", tip:"altcizgi"}} cikisKaresi={108}/>
ElCizimi赤い手描きの楕円/下線(単一の重要なフレーズ)VurguMetni.isaret と一緒に、または <ElCizimi tip="elips" baslangic={20}/>
SayiSayaci大きな数字のカウント; para → 緑色<SayiSayaci etiket="開始価格" bas={39999} son={42999} sonEk=" ₺" para baslangic={12}/>
UIKart白い浮遊カード または varyant="urun" ヒーローカード; バッジ、ラベル、アイコン<UIKart varyant="urun" baslik="Nova X1 Pro" altBaslik="レビュー · 2026" rozet="+ 新製品"/>
Hapラベル、カウンター(+3)、期限、CTA<Hap metin="箱の中身" sayi="+3"/>
KartGirisすべてのオブジェクトの共通エントリー/終了(yukari / yana)<KartGiris baslangic={14} cikisKaresi={128} cikisTipi="yana">…</KartGiris>
AltYaziBandiA-roll字幕、words.jsonから、最大2行<AltYaziBandi kelimeler={sahneKelimeleri(words, 12.4, 18)} vurgular={["30","日"]}/>
ZoomInatlama(即時リフレーム) · punch · itme · suruklenme<ZoomIn mod="atlama" kare={66} olcek={1.25} odak={{x:.5,y:.3}} ses="boom">…</ZoomIn>
ARoll生ビデオを9:16にクロップ、baslangicSnでカット<ARoll kaynak="ham/p/x.mp4" baslangicSn={12.4}/>
Geciskesme · bulanikYukari · odakKaybi · yanaKayma · karartma; コンテンツをラップ(背景は除く)<KremZemin><Gecis tip="odakKaybi" sure={120} giris={false}>…</Gecis></KremZemin>
SesEfekti / SesAyari単一SFX(タイプ+フレーム; ピーク調整、ファイルローテーション)/ 全体オン/オフ、dBシフト<SesEfekti tur="boom" kare={66}/>
TasarimSayfasi / SahneDizisi承認PNG / 最終シーケンス+カット効果音ステップ3参照

タイミングヘルパー(zamanlama.ts): kare(sn), sahneKelimeleri(words, bas, son), kelimeKaresi(kelimeler, "otuz")。 アニメーションを単語にバインド: 開始フレームはwords.jsonから取得し、手動で推定しない。

コンポーネントはuseVideoConfig()からfpsのみを読み取り、寸法は1080×1920に固定されています。これにより、デザインページでも正しく表示されます。 シーンにはsureとcikisKaresiを明示的に指定します。

16:9 / ハイブリッド(Hibrit.tsx): KoyuCamZemin, CamKart, TakipEtiketi(追跡付きドット+線+ピル), BolumEtiketi, UygulamaKarosu(gorsel = 実際のロゴ), TelefonCerceve, KilitKatmani, RotoKatmani。リストカード: projeler/duo/Parti2.tsx → ListeKarti + OzellikSatiri(var/yok/bilgi)。 未作成: TarayiciCerceve, Stepper, Mozaik。 インデックスに対応する参照: v01-10/14/47(電話), v01-08/13/43(ブラウザ), v01-26/55(アイコン), v01-51(ステッパー), v01-04/58(モザイク), v01-46(ボタン), v01-56(リスト)。

4. 環境とコマンド

  • Mac(Apple M1 Pro): Node 24, ffmpeg 9, whisper.cpp + large-v3-turbo。インストールとバージョンはKURULUM.mdに、検証用にkurulum_dogrula.command。
  • セッションのシェルがMacではなくLinux VMの場合:
    • remotion-studio/node_modulesはMac固有のため、VMでnpm iは実行しない。
    • レンダリングのためにプロジェクトをクラウドワークスペースにコピーし、同じバージョンでnpm iを実行([email protected])、Chromiumでレンダリング(--browser-executable=…/chrome-headless-shell)。結果をフォルダに書き戻す。
    • WhisperはユーザーがMacで実行するか、.commandスクリプトを準備する。
    • sfx_esitle.pyはVMでも動作(python3 + ffmpeg)。

…

[翻訳のため切り詰められました]

関連スキル