Hadi Got Motion は何をしますか?
スキルとしてのモーションスタジオ:12種類のモーションスタイル、それぞれが独自の動き方を持ち、1つのテイストバーを備えています。 すべてのフレームは、アーカイブのプリントや写真、本物のタイプフェイス、実際のデータ、実際の録音といったリアルな素材から構築されます。コードがカット、ヒンジ、タイミング、ライティングを行いますが、コードがアートを描くことは決してありません。テイストバーの参考作は『Mr Pemberton's Mistake』(ビクトリア朝の版画を使った、語る切り抜き活劇。参照:references/case-pemberton.md)。
すべての操作は1つのコマンドhgm(scripts/hgmにあり。hgm install後はPATH上に配置されます)で行います。すべてのhgmコマンドは短いサマリーを出力し、詳細はファイルに書き込まれるため、トークンは配管ではなくテイストに使われます。開始前に以下の「トークン予算」セクションを読んでください。それは後付けではなく、クラフトの一部です。
作業順序:ツールチェック → ブリーフ選択 → 見積もり → セットアップ → ディレクション → 音声 → アセット → アニメート → レビュー → 納品。 ブリーフとセットアップが完了するまでは、決して構築を開始しないでください。
フィルムの制作を再開する場合? プロジェクトのHANDOFF.mdを読み、プロジェクト内でhgm stateを実行してください。スキルの参照、過去のフィルム、またはフィルムファイル全体を再読する必要はありません。
0–1 · ツールチェックとブリーフ選択(1往復)
- 質問せず、説明もせずに、
bash <this skill's folder>/scripts/hgm pickerを実行し、既に述べられた内容に対して--title "…" --duration 45 --concept "…"を追加してください。read_meを["elicitation"]で一度ビジュアライズし、次にshow_widgetを、表示されたローダーをそのまま使って呼び出します。 - 回答行は次の形式で返ってきます:
Motion graphic details — Tools: … · Title: … · Duration seconds: … · Pacing: 1–5 · Concept: … · Motion style: … · …。必須なのはコンセプトだけです。タイトルがなければ名前を付け、時間がなければ30秒、ペーシングがなければ3、マップルックやマップがなければ不要です。 - もし何かが欠けていて、ユーザーが「後で」を選ばなかった場合、バックグラウンドで
hgm installを開始します。 - 空のウィジェット、ウィジェットツールなし、アップロードされたスクリプト、スキップされたフォーム:
references/setup.mdを参照してください。
2 · 時間見積もり(回答の直後)
hgm estimate --answers "<the answer line, verbatim>" を実行します。最初の2行を1~2文で伝え、その後すぐに開始してください。承認を待つ必要はありません。
「Claudeに任せる」:エンドツーエンド、質問なし
スタイルが「Claudeに任せる」(または「君に決めて」「驚かせて」「フォームをスキップ」)の場合:
- これ以上質問してはいけません。ディレクターとしてすべてを決定します:コンセプトに最も適したスタイル、ペース(特にコンセプトが静かまたは熱狂を求めていない限り3)、ストーリーが実際の場所を移動する場合のみマップ、切り抜き活劇または紙芝居の場合のみウォーク、キャストと声、スクリプト、アーカイブからの画像(ChatGPTは既に接続されている場合のみ)。
hgm estimate --style <id> --duration <s> --pace <1-5> --script write|have|noneを再実行し、何を選んだか、その理由、そしてどれくらい時間がかかるかを2行で伝えてください。- 唯一スキップできない停止点は、音声が必要でまだ何も接続されていない場合のElevenLabsへのサインインです。それができない場合、タイプ&ミュージックのフィルムにします。
3 · セットアップ(構築前に必ず完了)
必要ならhgm installを実行し、次にhgm new <slug> --style <id> --pace <1-5>(ID:cutout-farce, kinetic-editorial, kinetic-swiss, editorial-collage, period-print, paper-theatre, real-maps, stat-hits, footage-led, silent-film, title-sequence, object-diorama)を実行し、その後hgm doctorを実行します。ElevenLabsサインイン(hgm connect-voice)とChatGPT画像(hgm connect-images)の正確な文言はreferences/setup.mdにあります。それを一字一句守り、決してキーを扱わないでください。すべて緑 → 「セットアップ完了」 と1行で伝えます。
4 · ディレクション
hgm ref <style-id>は、このスタイルが必要とするすべてを一度に出力します:styles.mdの該当セクション、モーションランゲージ、全スタイルに共通のルール、taste.md(テイストバーとAIらしさ排除チェックリスト)。参照ファイル全体を開かないでください。- 事実は調査が必要であり、推測は禁止です。 フィルムが事実(歴史、科学、人物、数字、「もし~ならどうなるか」)を述べる場合、スクリプト作成前にサブエージェントが
FACTS.mdに調査結果を書き込みます:hgm ref research。確認された事実のみからスクリプトを作成し、ドラマは具体的な事実から生まれます。 - スクリプト未指定の場合: 1メッセージ内で3つのコンセプト(状況におけるキャラクター、1.5秒のフック、頂点へのエスカレーション)を提案し、最も無難なものを自分で却下します。「Claudeに任せる」モードでは、提案せずに最も強いものを選んで進めてください。30秒あたりの単語数はペースから決まります(
pacing.jsonのwords30:ペース1で50語、3で66語、5で82語)。決めのラインで終わります。 - シーンを計画します。
BRIEF.mdにシーンプランを書きます:各シーン1行で、時間範囲、場所、その変化の仕方を記述します。ストーリーが1つの場所を必要としない限り、世界はペースのscenery秒ごとに変化します。同じ背景に新しい小道具が追加されるだけでは変化とはみなしません(taste.mdの「Scenery」参照)。 - 世界を固定 するため、
BRIEF.mdに5つのルールを記述します:パレット(2~3色と各ビートの1アクセント)、印刷か線画か、テクスチャ(1つのグレイン)、ライト、レタリング(1ファミリー)。
5 · 音声:音声がタイムキーパーとなる(「ナレーションなし」の場合はスキップ)
hgm voices --list→audio/cast.jsonにキャスティング →audio/script.json(textは[audio tags]で演技を伝え、captionは画面表示用のクリーンなテキスト、gap_afterはアクションのための余白)。hgm voice-allは1行のサマリーと、✗マークの行(あれば)を出力します(完全なログはreview/voice.log)。✗行は、skip_start、caption、またはhgm voices <id>で修正します。詳細:hgm ref elevenlabs。
6 · アセット:オンライン優先、次にChatGPT
- 機械的な部分はサブエージェントに委任します(Agentツール、
model: "sonnet"):ビジュアルのリスト、BRIEFの世界ルール、コマンドhgm assets <key> "query" …(画像)とhgm assets --audio <key> "query"(サウンド)を与えます。サブエージェントは、キーごとに上位3候補を1枚の複合シートと短いテキストリストで返します。あなたはその1枚のシートを小さく表示して選択します。その後hgm pick <key>:<n>:<name>(あなたまたはサブエージェントが実行)でダウンロードし、クレジットを記録します。ソース:hgm ref sources。 - アーカイブで入手できないものだけをChatGPTに送ります(
hgm img inbox/<name>.png "<prompt>"、またはプロンプトパック):hgm ref imagegen。 - マップ:
hgm map-data …その後hgm map-reel:hgm ref maps。決して地理を描いたり推測したりしないでください。 - カットとリギング は
assets/build_assets.pyで行います(hgm grid、hgm zoom、hgm cut、hgm explode。レシピ:hgm ref cutout-farce-recipe)。サブエージェントが座標読み取りとカットを行い、あなたが1枚のexplodeシートを確認します。
7 · アニメート
<slug>.mjs(スキャフォールド)内で構築します。hgm apiはすべてのヘルパーをシグネチャ付きでリストします:スキャフォールドや過去のフィルムを読む代わりにこれを使用します。タイムラインヘルパーは維持し、DEMOブロックは置き換えます。- 1つの状態オブジェクトで、
at(sec, {key: [from, to]}, dur, ease)を使用します。すべてのアクションにSFXキューを付け、キャプションは単語に合わせます。at()はすべての継続時間をペース(PC.k)でスケーリングします。カットとシーンチェンジはPC.shotとPC.sceneryで行います。hgm voice-allはペースのナレーターテンポとギャップを適用します。 - スタイルの動き方を守ります(フレームレート、2コマまたは3コマで動く部分、イージング、カメラ、トランジション)。スキャフォールドは既にプロファイルを適用しています。すべてのスタイルに同じスムーズなイーズインイーズアウトを与えてはいけません。その画一性こそがAIらしさの証です。
- ウォークは切り抜き活劇(および紙芝居のホップ&グライド)に属します:
walk(style, t, {facing})、hgm ref walks、hgm walksでリールを確認。 - フィルムファイルは 一度だけ 書き、その後は小さな編集で変更します。シーンを変更するためにファイル全体を書き直してはいけません。
- 避けるべき罠:最初のビルドの前に
hgm ref trapsを実行。
8 · レビュー:デザイナーのように見る(ここにトークンを費やす価値がある)
hgm stills 0,1,3,6,10,...(12~18枚、アクションの途中も含む)でreview/contact.jpgを生成します。それを一度表示し、テイストチェックリストに照らして評価します:0、1、3、10秒にフックがあるか? 各ビートに1つの主役がいるか? 顔を隠しているものはないか? ただ「存在しているだけ」のものはないか? シーンは計画通りに変化しているか、それとも連続するフレームが同じ背景を共有しているか? 誰かがAIが作ったと推測するだろうか?- 見つけたすべての問題を1回のパスで修正し、その後
hgm stillsを変更した瞬間だけ実行します。ズーム(hgm zoom)は、評価している1つの箇所だけに行います。
9 · ビルドと納品
hgm build(レンダリング、ミックス、マックス。バックグラウンドで実行)、その後hgm frames 0.2,<mid>,<end>を実行し、最終 MP4からフレームを確認します。hgm cover <t>で、タイプのないシンプルなカバー画像を作成します。- MP4とカバー画像を送信します(SendUserFile)。長さ、ブリーフからの変更点、そして確認できなかったこと(Claudeは聴取できません。ミックスはレベルとタイミングでチェック済み)を伝えます。
CREDITS.mdを完全な状態に保ちます。修正指示は外科的に来ます:それらを正確に適用し、該当フレームを再確認し、再ビルドします。
トークン予算
最初の3本のフィルム(Pemberton 338ターン、Hyderabad 116、Wright兄弟 72)で測定:すべてのターンは会話全体を再読するため、コストはターン数×コンテキストサイズです。チャットは何かが起こる前から約90Kトークンで始まります。スクリーンショット、シート、catはコンテキストに残り、その後のすべてのターンで再び支払われます。したがって:
- ターン数を減らします。 独立したコマンドを1つのツールコールにバッチ処理します(
hgm stills … && hgm frames …)。修正リストを計画し、1回のパスで適用します。 - 出力を小さくします。 参照、過去のフィルム、ログに対しては
hgmコマンドを使用し、cat、ls、sedは使用しません。hgm ref、hgm api、hgm stateは必要なものだけを出力します。JSON、音声リスト全体の2回目の表示、フィルムファイルを出力してはいけません。長いツール出力はファイルにリダイレクトし、tail -3で確認します。 - 画像は小さく、少なく。 レビューラウンドごとに1枚のコンタクトシート。220pxのフレームで判断に十分です。生のスチル、生のダウンロード、フルサイズのフレームをReadしてはいけません。代わりにクロップにズームします。
- 機械的な作業にはサブエージェント(
model: "sonnet"):アセット検索とダウンロード、カットとリギングのチェック、レンダリング、クレジット。短いリストと1枚のシートを返します。コンセプト、スクリプト、スタイル、選択、デザイナーのレビューはメインモデルに任せます。 - コンテキストが重くなる前にハンドオフします。 コンテキストが約200Kトークン(またはウィンドウの40%、先に達した方。おおよそ50回のツールコール)になった時点で、現在のステップを完了し、
hgm handoffを実行し、