Communitygithub.com

SyedBahjat/stickman-shorts

棒人間アニメーションの短尺動画やYouTube動画をRemotionと2Dアニメーションで作成・クローンします。内蔵フォーマットは「あなたが決める」ストーリー形式(9:16 YouTube Shorts、TikTok、Instagram Reels)で、視聴者がA/Bを投票し、次のパートは勝った方のルートを辿ります。また、ユーザーが入力したあらゆる参考動画(解説、トップNリスト、ストーリーナレーション、歴史/豆知識動画、クイズ、Would You Rather、スキット、チャットストーリー、キネティックテキスト、ホワイトボード、横型長尺)のカット、テンポ、パレット、字幕、音声を分析し、オリジナルコンテンツで同じフォーマットを再構築します。

stickman-shorts とは?

このスキルは、RemotionとCSS/SVGアニメーションを活用して、短尺動画(特にYouTube Shorts、TikTok、Instagram Reels向け)を効率的に制作するためのAIエージェント(Claude Codeなど)向けスキルです。内蔵の「You Decide」形式は、A/B選択で分岐する棒人間ストーリーで、視聴者の投票結果に応じて次のエピソードを自動生成します。特筆すべきは「任意の動画をクローンする」機能で、与えられた参考動画の編集パターン(カット割り、テンポ、配色、字幕スタイル、音声デザイン)を分析し、まったく新しいオリジナルコンテンツで同じフォーマットを再現します。これにより、企画から台本作成、音声合成(ローカルTTS)、アニメーション構築、書き出しまですべての工程をコードベースで自動化。棒人間だけでなく、ホワイトボード動画やチャットストーリーなど多種多様な形式にも対応し、「顔出しなしチャンネル」や「この動画みたいなものを作って」という要望に応えます。

対応✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/SyedBahjat/claude-stickman-shorts/tree/HEAD/skills/stickman-shorts

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

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

ドキュメント

Stickman Shorts

フラット2Dアニメーションビデオ。SVG React コンポーネントとして Remotion で作成し、任意のアスペクト比に対応します。

  • 内蔵フォーマット: 縦型(1080×1920、30 fps)棒人間「You Decide」ストーリーショート。各パートは約75~90秒で、二人称(「あなたは…」)で語られ、視聴者がA/Bを投票する選択肢で終了。次のパートは「ほとんどの人は…と言いました」で始まり、勝ったルートを辿ります。
  • その他あらゆるフォーマット: 参考動画を渡せば、そのレイアウト、テンポ、字幕、音声をオリジナルコンテンツで再構築します。詳細は references/CLONE-ANY-VIDEO.md と references/FORMATS.md を参照。

0. エンジンを見つける/セットアップする

エンジンは https://github.com/SyedBahjat/claude-stickman-shorts から入手する Remotion プロジェクトです。

  • ワーキングディレクトリに src/kit/Stick.tsx があれば、そのエンジン内にいるのでそのまま使います。
  • そうでなければプロジェクトを作成する場所を尋ねてから、次のコマンドを実行します: git clone https://github.com/SyedBahjat/claude-stickman-shorts <フォルダ名> && cd <フォルダ名> && npm install
  • 必要なもの:Node 18 以上、ffmpeg(PATH が通っていること)、Python 3 と pip install -r requirements.txt(numpy, scipy)―これらは SFX とリファレンスアナライザーに必要です。また TTS も必要です(references/AUDIO.md 参照;VoiceStudio は無料でローカル動作)。
  • スモークテスト:npx remotion still src/index.ts FreshCo-P2B out/test.png --frame=300 を実行し、出力された PNG を確認します。

1. ジョブを選ぶ

ユーザーが望むものやること
アイデアからの新シリーズ3つのログラインを提案 → 分岐する全シーズンを stories/<ストーリー名>/script.md に書く(references/STORY.md) → Part 1 を構築
次のパート(「人々はBを選んだ」)stories/<ストーリー名>/script.md + continuity.md を読み、そのパスでPart Nを構築し、「MostOfYouSaid」で開始
参考動画のコピー(任意のタイプ)references/CLONE-ANY-VIDEO.md:分析、分類、見た目と音声のマッチ、オリジナルコンテンツの作成
別の種類の動画(解説、top5、クイズ、チャットストーリー、横型…)references/FORMATS.md → src/templates/Starter.tsx から開始(--props='{"format":"horizontal"}')
声・音声の変更references/AUDIO.md

2. 構築(詳細は references/WORKFLOW.md)

  1. ショットシート+ラインTSV → ユーザーが台本とA/B選択肢を承認。
  2. 音声:node scripts/voiceover.mjs <名前> "<台詞>" --voice <ID> --trim --loud -16(または --from <wav>)。すべてのラインを文字起こしして単語を確認。
  3. src/stories/ 内の最も近いエピソードをコピー(src/stories/freshco/FreshCoP2B.tsx から開始)、タイムライン(LEN, SHOTS, CAPS, SFX)を差し替え、src/Root.tsx に登録し、npm run typecheck。
  4. すべてのキービートでスチルを、すべての動きのあるショットでフレームストリップをレンダリング。レンダリング前にそれらを見る。
  5. npx remotion render src/index.ts <Id> out/raw.mp4 --concurrency=6、次に loudnorm で -17 LUFS に調整。
  6. MP4とともに、タイトル、説明文(A/Bの質問と「コメントでAかBを選んでね」を含む)、YouTube Shorts / TikTok / Reels用のハッシュタグを手渡す。

3. 最も重要なルール(ハウススタイル用;クローンフォーマットはリファレンスに従う)

  • 見た目: references/STYLE.md を完全に守る:落ち着いたダークパレット、インクの輪郭、ドットの目、口なし、個性=体色+アクセサリー1つ、視聴者キャラ YOU は常に赤い腕章を身に着ける。
  • ストーリー: 二人称、短い文、番号付きルール、伏せられた真相、本当に迷うA/Bの選択。
  • 動き: 距離で駆動される穏やかな直立歩行(足の滑りなし)、手は目標に向かってスライドする reach で物に触れる、小道具は holdF/holdB で持つ、ハードカット+ゆっくりとした押し込み。
  • 音声: ラインをタイムストレッチしたり無音圧縮したりしない(音が壊れる)、「放送」エフェクトは使わない、キャラクターはナレーターと明確に異なる声。
  • ミックス: 音声 -16 LUFS、BGMは makeDuck で被せる、最終 -17 LUFS。すべてのSFX/音楽は scripts/audio/ で合成されるため、著作権クレームが発生しない。
  • 報告前: スチルとストリップを確認する;ユーザーのマシンで音声を自動再生しない。
  • 「いいねとチャンネル登録」のお願いは動画内に入れず、説明文に書くこと。

リファレンス

  • references/STYLE.md:パレット、キャラクター、セット、HUD、字幕、カード、カメラ
  • references/STORY.md:パートの構造、執筆ルール、ショットシート、分岐
  • references/AUDIO.md:TTSオプション、人間らしい声、SFXリスト、ミックスレベル
  • references/WORKFLOW.md:コードレイアウト、Rig API、モーションルール、レンダリング+最終チェックリスト
  • references/CLONE-ANY-VIDEO.md:任意の参考動画のフォーマットを再現
  • references/FORMATS.md:12の一般的な動画フォーマットのビート構造と構築メモ

関連スキル