Communitygithub.com

stickman(棒人間)

コードだけでシネマティックな棒人間のストーリー動画をMP4として生成します。さらに、ElevenLabs用のナレーションスクリプト、YouTubeタイトル、サムネイルプロンプトも作成します。

stickman(棒人間) とは?

このスキルは、Claudeのコード実行機能を活用して、完全なスティックマン(棒人間)のアニメーション動画をコードベースで生成するためのツールです。2Dフラットキャラクター、夕暮れパレット、映画的なカメラワークと本物のサウンドを作り出します。動画だけでなく、ナレーションスクリプト(ElevenLabs対応)、YouTubeタイトル、サムネイルプロンプトの4つの出力をカバーしています。Claudeの無料プランを含む、コードが実行できる環境であればどこでも動作し、有料ツールやAI画像・動画ツールは一切不要です。このスキルは、スティックマンアニメーションに関するあらゆるリクエスト(/stickman)に対応し、ストーリーアイデアの提案、動画制作、スクリプト作成、タイトル・サムネイル生成といった工程をステップバイステップで進めます。ユーザーの要望に応じて、各パートを個別に提供することも、フルパッケージで提供することも可能です。

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

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

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

ドキュメント

/stickman

トピックを、全てコードでレンダリングされた完成済みスティックマン映像に変換します:フラットな2Dキャラクター、夕暮れのパレット、映画風のカメラワーク、リアルなサウンド。このスキルは4つの出力をカバーします:動画、ナレーションスクリプト、YouTubeタイトル、サムネイルプロンプト。

Claudeがコードを実行できる環境(Claude無料プラン含む)であればどこでも動作します。有料ツールは不要で、AI画像・動画ツールも使用しません。ElevenLabsはオプションで、ナレーションのみに使用します。

以下はすべて、このスキルのフォルダ(このファイルがあるフォルダ)を基準としています。絶対パスを一度特定し、すべてのスクリプトでそれを使用してください。Claude Codeでは${CLAUDE_SKILL_DIR}です。以下のコマンドではSKILLと呼びます。python3を使用してください(Windowsの場合はpython)。

ステップ1:リクエスト内容を把握する

ユーザーは全体を求める場合もあれば、一部だけを求める場合もあります。依頼されたことだけを行ってください:

リクエスト行うこと
ストーリーアイデア以下の「ストーリーアイデア」を実行し、終了
動画制作ステップ2~6
ナレーションスクリプトの作成references/script-playbook.md を読み、スクリプトを提供して終了
タイトルまたはサムネイルreferences/packaging-playbook.md を読み、ペアを提供して終了
フルパッケージスクリプト → 動画 → タイトルとサムネイルプロンプト

ストーリーアイデア

長さが指定されていない場合は、まず動画の長さを尋ねてください。その後、番号付きで5つのアイデアを提案し、ユーザーが番号で選べるようにします。各アイデアには短い名前、何が起こるかを一言で説明する平文、そして結末が含まれます。各アイデアを指定された長さに合わせてください:20秒未満の場合は、1人のキャラクターと1つの単純な展開のみにします。アイデアは references/engine.md にあるものでアニメーション化しやすいものでなければならず、それぞれ独創的である必要があります。後で「アイデア3を制作」と言われた場合、そのアイデアを指します。

ステップ2:制作前に質問する

リクエストで既に明確になっていない限り、以下の質問はすべて1つのメッセージにまとめて行い、質問ツールがあればそれを使用してください。既に回答済みの項目はスキップします。誰も答えられない場合は、デフォルト値を使用し、その旨を伝えてください。

  1. スタイル: 2D または 3D?デフォルトは2D。どちらも同じ外観を使用。3Dではシーン周辺のリアルなカメラ移動が追加されます。
  2. 長さ: どのくらいの長さ?デフォルトは30秒。MP3が添付されている場合、ナレーションが長さを決定します。
  3. ナレーション: あり・なし?MP3が添付されている場合はこれをスキップ。ありの場合、ユーザーはMP3とそのスクリプトテキストを提供するか、またはElevenLabs用のスクリプト作成を依頼し、後でMP3を持って戻ってきます。SRTは不要です。
  4. 効果音: あり・なし?デフォルトはあり。
  5. BGM: あり・なし?デフォルトはなし。ありの場合、アップロードされたトラックがあればそれを使用し、なければコード生成の音楽ベッドを使用します。
  6. ストーリーボード: 最初にストーリーボードを見たいですか?リクエストで既に指定されていない限り、常にこれを尋ねてください。誰も答えられない場合はスキップします。

音楽、効果音、ナレーションを想定しないでください。静かな部屋の雰囲気は音楽ではありません。

ステップ3:セットアップ

python3 SKILL/scripts/doctor.py
python3 SKILL/scripts/new_film.py film        # 3Dの場合は --3d を追加

doctor.py は不足しているものをインストールします。Chromiumが全く実行できない場合は、「レンダリングが不可能な場合」に進んでください。

次に、以下の順序で読みます:

  1. references/style-bible.md:外観と絶対に曲げられないルール。
  2. references/production.md:迅速なパスと既知の落とし穴。
  3. references/engine.md:ツールキット。再描画する代わりにこれを再利用します。
  4. references/film-craft.md:無言または短い映画のためのストーリーとショット。

関連する場合に読むもの:references/script-playbook.md(スクリプト作成用)、references/voiceover.md(MP3用)、references/sound.md(ミックス用)、references/symbolic-beats.md(約1分以上の映画用)、references/3d.md(3D用)。

ステップ4:映画を計画する

描画コードの前にこれらを記述します。コード内で計画すると、映画ではなくスライドショーが生成されるからです:

  1. 注意散漫な視聴者でも理解できる一文。
  2. 各ビートにアクション、感情、カメラ、サウンドが含まれたビートシート。
  3. 一つの世界: すべてのキャラクターと小道具の固定位置のリスト。すべてのショットは、その世界に対するカメラの位置だけです。
  4. 秒数ではなく、カットフレームで表したショットリスト。30秒あたり8~11ショットを目標とし、地理を把握できるワイドショットを含めます。
  5. パッケージがリクエストされた場合のサムネイルモーメント。実際のシーンとして存在するようにします。

ストーリーボードがリクエストされた場合は、レンダリングの前にステップ5の「ストーリーボード」に従ってください。

ステップ5:構築

  1. film/film.js を置き換え、エンジンファイルは保持します。スターター映画のパターンから始めてください。
  2. 最も込み入った瞬間の静止画を確認し、画像を表示します:python3 SKILL/scripts/stills.py film sheet.jpg 1 4.5 9 ... 。通常は2ラウンドで十分です。
  3. ストーリーボード(リクエストされた場合)。 python3 SKILL/scripts/storyboard.py film を実行します。film/storyboard.jpg が作成され、最終的な映画と同じコードで描画された、ショットごとの番号付きプレビューが1枚になります。ユーザーに、ショットごとに1行(ショット、時間、内容、カメラ、サウンド)のテーブルと画像を表示、または送信します。画像を表示できない場合は、ファイルを送信するか、テーブルのみをその旨を伝えて提供します。その後、停止して待ちます。ユーザーの要求に応じて映画を変更し、大幅に変更された場合はストーリーボードを再実行し、承認を得てからレンダリングします。
  4. film/audio_mix.py のマークされたブロックをサウンド概要に合わせて編集します。
  5. レンダリング、ミキシング、結合、監査を1つのコマンドで実行します:
python3 SKILL/scripts/build.py film --out my-film.mp4

環境がコマンド時間を制限する場合は、バックグラウンドで実行し、ポーリングします。同じコマンドを再度実行すると再開されます(各ショットが独自のファイルであるため)。修正後は、--shots 3 7 を使用してそれらのショットのみを再実行するか、--audio-only でサウンドをリミックスします。

ステップ6:確認して納品

build.py は監査で終了します。すべての「ISSUE」を修正するか、フラグが立てられた瞬間が意図的である理由を述べてください。次に、film/contact_sheet.jpg を表示します(エンコードされたファイルから生成されます)。監査では検出できないため、目視で以下を確認してください:

  • 顔は意図された感情として読め、眉毛が誤って怒っているように見えないこと。
  • 手は持っているものに触れており、何も顔を横切っていないこと。
  • すべての歩行で腕が正しい方向に曲がっていること。
  • ドアは最初に開き、その後キャラクターが入ること。
  • ショット間でキャラクターと物の距離が一定であること。
  • 装飾的な円がどこにもないこと。

MP4を短いメモとともに納品します。ミックスは聞こえないことをはっきり伝えます:測定はしたが、ユーザーが自分で聴く必要があります。実行していないチェックを主張しないでください。ユーザーがタイトルとサムネイルをリクエストした場合は、パッケージングプレイブックからペアを追加します。

レンダリングが不可能な場合

コード実行やブラウザが利用できない場合は、可能であれば python3 SKILL/scripts/bundle_player.py film を実行します。これにより、映画を再生しリアルタイムでWebMを録画する1つのHTMLファイルが書き出されます。何も実行できない場合は、不足しているものを伝え、レンダリング不要のスクリプト、タイトル、サムネイルプロンプトを提供してください。WebMをMP4にリネームしないでください。

オリジナリティに関するルール

ユーザーが共有する参考動画、タイトル、サムネイル、トランスクリプトは、一般的なパターン(長さ、言い回し、構成、ペース)のみに使用します。他者の作品の具体的な内容をコピーしたり保存したりしてはならず、前提、キャラクター、プロット、セリフ、外観を再利用してはなりません。すべての映画は独自のストーリーを持ちます。

関連スキル