/minimal-graphics: 図形と動くドットでアイデアを説明する
ユーザーがアイデア(「アイデアがバイラルになる仕組み」「法案が法律になるまで」「水の循環」「注意力の行方」など)を入力します。あなたはそれを表現するモーションパターンを選び、小さな仕様を書き、フレームをチェックし、動画をレンダリングして、無音のMP4(5〜7秒)を返します。
${CLAUDE_SKILL_DIR} はこのスキルのフォルダ(この SKILL.md があるフォルダ)です。環境が自動で埋め込まない場合は、そのフォルダのパスを使用してください。すべてのファイルはユーザーのカレントフォルダ、またはユーザーが指定したフォルダに保存します。
0. セットアップ確認
python3 "${CLAUDE_SKILL_DIR}/scripts/render.py" --check
数秒かかります。このコンピュータがセットアップ済みかどうかわからない場合に実行します。"ready": true なら問題ありません。そうでない場合は、リストされている "fix" のコマンドを実行し、一度だけのインストールであることをユーザーに伝えてください:python3 -m pip install playwright(ブラウザドライバ)、python3 -m playwright install chromium(Google Chrome または Edge がインストールされていない場合のみ、約150 MB)、python3 -m pip install imageio-ffmpeg(ffmpeg がない場合のみ)。pip が「外部管理環境です」と拒否した場合は、プライベート環境を一度作成し、すべてのコマンドにその Python を使用します:python3 -m venv ~/.animate-skills && ~/.animate-skills/bin/pip install playwright imageio-ffmpeg、その後必要に応じて ~/.animate-skills/bin/python -m playwright install chromium を実行します。Windows では python3 の代わりに py を使用します。ここでブラウザが使用できない場合(Claude アプリのサンドボックスなど)は、このファイルの末尾を参照してください。
1. パターンを選ぶ
| パターン | 表示するもの | 適しているもの | フィールド |
|---|---|---|---|
spread | 1つのドットが2〜4個の他のドットに到達し、それぞれがさらに多くのドットに到達し、リングごとに広がる | バイラルアイデア、口コミ、連鎖反応、紹介、倍々になるもの | branches (2-4、デフォルト3)、depth (2-5、デフォルト4)、sequence (リングごとの短いラベル(オプション)、例: ["1","3","9","27","81"] や ["$1k","$2k","$4k"]、各リングが光るたびにタイトルの下の行に表示されます。数文字程度) |
flow | 番号順の図形、ドットが次から次へと移動し、その後安定した流れになる | 何かの仕組み、プロセス、パイプライン、レシピ | steps: 2〜6の短いラベル。shapes (図形は装飾です: ["circle"] で全部円になります) |
cycle | ループ上のステップと、周回し続けるドット | 水の循環、習慣ループ、フィードバックループ、季節、睡眠サイクル | steps: 3〜6の短いラベル。center: 中央の単語 |
converge | 多くのドットが1つの円に流れ込み、円が成長する(または "direction": "out":1つの円から複数の方向にドットを送り出す) | 注意力、時間、お金の行方;複数の入力が1つの結果に | sources: 2〜6のラベル(オプション)。weights: 各ソースが受け取るドット数。center: 円の中の単語。count: ドット数(デフォルト約40) |
compare | 2つまたは3つの量を横に並べ、ドット(1単位1ドット)または量に応じたサイズの円で表示 | 「X vs Y」の量:砂糖、コスト、時間、カロリー | groups: [{"label": "...", "value": n, "unit": "..."}]。highlight: 色を付けるグループのインデックス |
どれも適さない場合は、最も近いパターンを使用し、その旨を1行で伝えてください。誤解を招くような図を無理に作らないでください。パターンはアイデアの形状を示します。takeaway 行はポイントを言葉で説明します。2つの力のバランス(需要と供給、ワークライフバランス)に関するアイデアには独自のパターンはありません。それらを解決するループを cycle として示すか、その旨を伝えてください。
2. 仕様を書く
minimal-<トピック>.json を保存します:
{
"title": "アイデアがバイラルになる仕組み",
"pattern": "spread",
"branches": 3,
"depth": 4,
"takeaway": "各人がさらに3人に伝える",
"theme": "coral"
}
共通フィールド:title(短い見出しや質問としてのアイデア、最大約40文字)、subtitle(タイトルの下にある小さな行、オプション)、takeaway(1行のポイント。アニメーション終了時にタイトルの下に表示され、長いものは縮小されます)、theme(coral デフォルト、ink 黒、paper オフホワイト、blue、mint)、size("1080x1920" デフォルト、"1080x1080"、"1920x1080")、duration(秒数。デフォルト5〜6、takeaway がある場合は長くなります。長く設定しても最後の表示が長くなるだけです)、speed(0.7 = すべて30%遅く、1.3 = 速く)、fps(デフォルト30)。
記述ルール:
- ラベルは非常に小さく:最大4単語まで(シーケンスラベルは数文字)。専門用語は使わない。
- 数値は正確でなければなりません。確信が持てない数値が必要なアイデアの場合は、数値を省略するか、参考値であることを明記してください。
- 1動画につき1アイデア。ユーザーのアイデアに2つの部分がある場合は、2つの動画(2つの仕様)を作成します。
examples/ 内の例:idea-goes-viral.json、bill-becomes-law.json(flow)、water-cycle.json(cycle)、where-attention-goes.json(converge)、soda-vs-apple.json(compare)。
3. 2つのフレームを確認する
python3 "${CLAUDE_SKILL_DIR}/scripts/render.py" minimal-<トピック>.json --still 2 --out minimal-<トピック>-check1.png
python3 "${CLAUDE_SKILL_DIR}/scripts/render.py" minimal-<トピック>.json --still end --out minimal-<トピック>-check2.png
--still には秒数、または end を指定します。それらを見てください:ラベルが読めてクリップされていないか、図がアイデアを表しているか?そうでない場合は調整して再度確認します。
4. 動画をレンダリングする
python3 "${CLAUDE_SKILL_DIR}/scripts/render.py" minimal-<トピック>.json --out minimal-<トピック>.mp4
約10〜25秒かかります。確認用画像は削除します。
5. 納品する
MP4のパスをユーザーに伝えます(環境がファイルを表示できる場合は表示します)。音声はなく、音楽やナレーションを追加する準備ができています。1つのバリエーション(別のパターンやテーマ)を提案します。
ブラウザがない場合?(Claude アプリのサンドボックスなど)
セットアップ確認でブラウザを起動できない場合は、代わりにアニメーションをページとして書き出します:
python3 "${CLAUDE_SKILL_DIR}/scripts/render.py" minimal-<トピック>.json --html minimal-<トピック>.html。このページは任意のブラウザで再生できます(可能であればアーティファクトとして表示します)。MP4を取得するには、コンピュータ上のClaude Codeを使用するか、ページをスクリーン録画する必要があることをユーザーに伝えます。