Communitygithub.com

austin17022/creator-toy-intro

X(旧Twitter)向けクリエイターの自己紹介動画を作成します(デフォルト30秒、内容に応じて延長)。クリエイター本人をモチーフにした滑らかな3Dビニールトイがプロフィールページから飛び出し、Blender Cyclesでレンダリングされます。自己紹介ビデオ、3Dフィギュアを使ったクリエイター紹介、Threadsプロフィール向け(繁体字中国語)にも対応。

creator-toy-intro とは?

このスキルは、X(旧Twitter)やThreads向けにクリエイターの自己紹介動画を自動生成するためのものです。クリエイターのプロフィール画像や投稿内容、実績などの情報を基に、本人をモチーフにした3Dビニールトイがプロフィールページから飛び出し、ストーリーを語るアニメーションをBlender Cyclesでレンダリングします。スキルはコードベースで動作し、トイの3Dモデル、ページのHTML、BGMのシンセサイザー、Blenderでのレンダリングまでを自動化。各動画はクリエイター固有の素材からデザインされ、テンプレートに頼らず、アワード受賞レベルのクオリティを目指します。ユーザーはストーリーの方向性を選択し、ストーリーボードを確認・承認した後にレンダリングが開始されます。このスキルはClaude CodeやCodexなどのAIエージェント上で動作し、各ステップでユーザーと対話しながら進むワークフローを提供します。

対応✓Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/austin17022/creator-toy-intro-skill/tree/HEAD/skills/creator-toy-intro

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

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

ドキュメント

creator-toy-intro は何をしますか?

Austinのフォーク版、最初に読むこと: references/austin-lessons.md には、Austinがこれまでに与えたすべての訂正と、新しい訂正がそこに記録されGitHubにプッシュされるというルールが記載されています。そのルールが以下よりも優先されます。

Codexでの実行: 最初に references/codex.md を読んで、スキルのパス、ツール、プレビュー、長時間実行コマンドを確認してください。以下のフィルムワークフローはClaude Codeと共有されます。エンジンはClaudeを必要としません。

クリエイター自身の素材(プロフィールページ、彼らが知られている投稿や数字、彼ら自身の言葉)から作られる自己紹介フィルム。クリエイターは、その写真が持つボディ(人物、動物、または物体:レモンはレモンのまま)を持ち、プロフィール写真から飛び出し、自分のストーリーを演じる滑らかな3Dビニールトイとして出演します。そして、人々に何を求めに来てほしいかを示す小道具に乗りながら、彼らのキャッチフレーズが破れた紙の上にバンと表示されます。すべてがコードです。トイはパーツリストから構築されるか彫刻され、ページはHTML、スコアは合成され、Blenderでレンダリングされます。

このスキルは下限であり、上限ではありません。 以前のフィルムから学んだこと(ツール、動作例、チェック)を保持しています。フィルムに必要なもので、このスキルに不足しているもの(このクリエイターの素材のためのアニメーション、このトイの動き、別の方法で書かれた数字、小道具)は、フィルム自身のコード内(ビート、小道具、レシピ:references/beats.md、props.md)で構築し、その旨をユーザーに1行で伝え、スキルに戻せるようにメモしてください。スキルに合わせてフィルムを劣化させないでください。素材に合わないテンプレート部分は、無理に使用せず、除外してください。何が固定されているか、何が構築されるかにかかわらず:

  • 数値は出典が明示されます(どこでいつ読まれたか):現在のカウントは最新、過去のマイルストーンはそのイベント日と元の値を保持します。
  • プロフィール画像はクリエイター自身のものであり、決して描き直されません。
  • ユーザーはトイの画像、ストーリー、エンディングを選択し、ストーリーボードを承認します。プレビューを見る前に何時間もレンダリングすることはありません。

基準:審査員がショートリストに入れるフィルム。 すべてのフィルムを、誰かのために作られた30秒の作品が競う賞に出品されるかのように作りなさい:Annie's Best Sponsored Production、Annecy's Commissioned Films、D&ADのアニメーションとフィルムクラフト(アニメーション短編部門のオスカーも同じことをストーリーに求めます)。それらの審査員が問い、そしてここでのすべてのステップも問います:

  • 一つのアイデアが一文で語られていること。
  • 見知らぬ人が何かを感じること:その中心には人物(彼らが誰か、なぜそれをするのか、誰のためにするのか)がいて、数字ではないこと。
  • アイデアがこのクリエイターの素材から成長していること:フィルムを別のクリエイターに渡すと、ストーリーとして(誰が、なぜ、誰のために)壊れること、単なる事実としてではないこと。
  • 人々が覚える一つのイメージ(各方向性はそれを image と名付けます)。
  • クラフトがアイデアに奉仕していること:その文字、色、動き、音は素材から来ていること。
  • テンプレートのように見えたり、前のフィルムのようには見えないこと。

フィルムの役割は固定されています。見知らぬ人がこれが誰で、何を作り、どこで見つけられるかを知り、すべての事実が出典付きであること。賞はアイデアとクラフトの基準であり、曖昧さ、長さ、芸術性のための理由には決してなりません。

時計はありません。 時間制限はありません。クリエイターの素材から各アニメーションをデザインすることが作業であり、通過すべきステップではありません。時間や労力は、既成品を使う理由には決してなりません。既成品を無理に使う必要がある場合(カバーの周りに手でボックスを配置するスペースがない、要点ではないカウント)、止めてください。素材が望むものをデザインし、ユーザーに提示してください。たとえユーザーが既成品を選んだとしても。

フィルムは断片で構成され、それぞれが独自のアニメーションを持ちます(film.json story.segments):最初のポイントに引き継ぐオープニング(ページが浮かび、画像がステッカーのように剥がれ、ピンされた投稿で終わる;ページが平らに横たわり、右または左に回転して立ち上がる)、ユーザーが選んだストーリーポイント(それぞれが独自の素材からデザインされたアニメーション)、そしてエンドカード。スキルのアニメーション(ページ上の場所から立ち上がる数字、トイが登る壁として立つカバー、カウント、フリップカレンダー、一文字ずつ立ち上がるライン)は構築するための部品です。一つが全体として再生されるのは、それがそのポイントを示す最良の方法である場合のみです。コンテンツに応じた長さで再生されます:2ポイントで約22秒、3ポイントで30秒以上。

フィルムのサウンド(film.json "sound": "score"、これは new-film が書き込みます)は、このフィルムのために書かれたスコアの上にエフェクトを重ねたものです:ステップ4でカットが設定されたら、エージェントはクリエイターの本質から、カット自身のパーツとヒットに基づいて音楽を作曲し(<film>/music/score.py、references/sound.md)、エンジンは2つを-13 LUFSでマスタリングします。選択できるサウンドメニューはありません。アニマティックはフィルム自身のサウンドを再生し、エフェクトのみがフィニッシュ時に独自のカットとして出力されます。代わりにユーザーが自分の曲を持ち込む場合:"sound": "own"(film.json "music")。

このリリースはXに公開します(16:9または9:16)。抖音、小红书、视频号、Instagram用のスマートフォンテーマはこちらにあり、動作します。今後のリリースで1プラットフォームずつ公開されます。

ステータス:新しいクリエイターでテスト中。 3本のフィルムが外部テスターによってこのスキルで作成されました(OpusとSonnet、高負荷、無人;OpusとHaiku)。その教訓がこのバージョンに含まれています。run.mjs next はフィルムの進行状況と次に何をすべきかを示します。run.mjs check は、Blenderの前に何が壊れるかを示します。

フィルムの作成

Effort xhigh が最適です。high でも動作します(OpusとSonnetは両方ともhighでフィルムを完成させました)。各ステップはユーザーが見るもので終わります。ユーザーが見るすべての行は、ユーザーの言語で記述されます:返信、ツール呼び出し間の短い進捗行、タスクリスト、質問、そして彼らのために作られたページ。パス、コマンド、コードのみがそのまま残ります。そして平易な言葉で:画面上で何が起こるかを伝え、スキル自身の名前(以前のフィルムにちなんだオープニング名、「第2幕」、ビートのID)や、ツールのコスト(Grok検索の価格や時間)を決して伝えません。任意の時点で、FILM=<film> node <skill>/engine/run.mjs next は、フィルムのステップにまだ何が不足しているかと、実行すべきコマンドを示します。

ステップ内容ユーザーのために停止する場所方法
0コンピューター:チェックし、不足があれば一つだけ「はい」でインストールインストールリスト(不足があれば)references/onboarding.md
1オンボーディング:クリエイターのリンク、ワークスペース;全体の所要時間を一度だけ伝える16:9 または 9:16references/onboarding.md
2リサーチ、最初にストーリー:最初に人物(彼らが誰か、なぜそれをするのか、誰のためにするのか、そしてそれを示す個人的な瞬間。使用するかどうかに関わらず書き留める)、次にクリエイターが何で知られ、誇りに思っているか、そして作品自体(すべて、今日のまま)、各事実に出典と数値(現在のカウントは最新、マイルストーンは日付付き)を付ける。各ポイントについて、その素材の特別な点と、そこからデザインされたアイデア(少なくとも一つはフィルム独自のもの。それぞれに一行のピッチと素材から作られたスケッチ)。最大3つの完全なストーリー方向性(中心となる人物とそれが示す瞬間、フック、関連する事実、トイの動作と視聴者が学ぶこと、ペイオフ、最初のポイントに引き継ぐオープニング)。一つを推奨。重要なギャップに対して、必要に応じて1回のターゲット検索。次に、選択した方向性の安価なテキストストーリーテストと、審査員の質問(アドバイスであり、ゲートではない)。apply-research は選択をフィルムの断片に変換するトイの画像;ストーリーページ(studio によって提供、ストーリーボードのように、カード上のノート;チャット用の materials.png):ストーリー方向性(A/B/C)とそのアイデア、そしてエンディングreferences/research.md、story-directions.md、story-test.md
3トイ、その画像が持つボディ(人物、動物、物体)で、3つのキットのいずれかを使用。色は暗いステージで確認。一体であること(浮いている部分、埋まっている部分、他のパーツの上にある部分がないこと)画像の横のターンアラウンドreferences/toy.md
4フィルム自身のコード(その断片に必要なもの:カバーカット、独自のビート、小道具)、check、次にストーリーボードページ:ストーリー、ビートグリッド、実際のプレビューレンダリング、フィルム自身のスコア付きアニマティック、チェック(ペース、トイのサイズ、読み取り時間、色、トイが何かを通過しないこと、前のフィルムの繰り返しでないこと、セカンドオピニオン)、承認されたフィルムの横に保持されたフレーム(compare)ストーリーボードページ:フレームに関するノート、サウンド、サインオフreferences/storyboard.md、quality.md、beats.md、cover-wall.md、clearance.md、props.md、avatar.md、exits.md
5サンプル(最終品質での最もリスクの高い部分、そのサウンド付きで、承認されたフィルムと比較)、所要時間(望めば最初に素早い半サイズ版)、レンダリング、仕上げ:フィルム、エフェクトのみのカット、各プラットフォームのカバー、最終確認完成したフィルムreferences/render.md

完全なレンダリングは、check が合格し、ストーリーボードページのチェックがクリーンでサインオフされた場合にのみ開始されます(run.mjs render が実行;ユーザーが何かを承知の上で保持する場合は -- --force を、その旨を一行で伝える)。

レイアウト

パス内容
example/isnail/フィルム全体の独自コード、動作済み:film.json、toy.json、カバーレシピ
characters/これまでに作られたすべてのトイ(isnail、三毛猫、Tim、Steve Jobs、Chris)、ステップ3のフォーマットで、新しいものを作成するための出発点として
references/各ステップをユーザーと共に実行する方法:onboarding.md(ステップ0と1)、research.md、story-directions.md、story-test.md(ステップ2:出典、ギャップ検索、完全なナラティブオプション、早期ストーリーレビューと目的のあるアクション)、toy.md(ステップ3)、cover-wall.md、clearance.md、avatar.md、exits.md、props.md、beats.md、sound.md(フィルム独自のスコア)、storyboard.md(ステップ4)、review.md(独立したレビュー、ステップ4と5)、quality.md(基準:references/look/ 内の承認されたフィルムのフレーム、比較とサンプル、ステップ4と5)、render.md(ステップ5)
beats/スキルのビート。ストーリーの断片間で再生する(references/beats.md):catalog.json(すべてのアニメーション、適合するもの、previews/ 内のプレビューストrip、そのfilm.jsonエントリ:ストーリーページのメニュー)、page-stand.js(オープニング:ページが画面のように平らに横たわり、右または左に回転して立ち上がり、トイが画像から飛び出す)、count.js(プラットフォームが書き込むように数字がカウントアップする)、calendar.js(日数の範囲をフリップカレンダーとして表示)、phrase.js(大きなタイプの行が一文字ずつ立ち上がる)
engine/run.mjs1つのフィルムワークスペースに対してパイプラインステップを実行
engine/lib/共有モジュール:フィルムワークスペース、フィルムのセグメントとビートのクロック(segments.js)、ビートのキット(beatkit.js)、トイのリグ、カメラ、ステッカーピール、カウンター、破れた紙のラベル、パーティクル、イージング、クォータニオン;cutlib.py(カバーパーツ)、fonts.py(このコンピュータ上のフォントと、フィルムが選んだフォントを名前で)、reading.py(視聴者がフレームを読むとき:フィニッシュのブルーム、電話のサイズ、コンピュータ自身のテキスト認識)、synth.py(楽器とエフェクト);compose.py(フィルム独自のスコアが書き込まれる先、および動作済みのスコア);pictures.js(画像をビート用のカードとして);sketchkit.py(ストーリーページ上のアイデアのスケッチのパーツ:画像のカード、トイのディスク、キャプション、矢印;engine/scripts/sketch.py はそれらを使って多くの画像をレイアウト);catalog.js(スキルのアニメーションとそれぞれが取るオプション);platforms.json(フィルムが公開される場所:カバー、各アプリのコントロール、セーフボックス)、publish.py を介して読み取り;tools.js(Blender、Python、Chromeの場所);link.js(クリエイターのリンクを読む);numbers.js(304万、1.1萬、46K を読む);toyblend.py(ペットキットとスカルプトキットのBlender内でのシェイプとペイント);look.py(ライト、フィルムとトイのルックデブで共有);device.py(CyclesがレンダリングするGPU:OptiX、CUDA、HIP、oneAPI、またはMetal。コンピュータが持っている方。ドクターが報告);music.py(フィルムのビートに合わせたユーザーの曲);real.py と instruments.json(実際の楽器:lemo-opuscarのサンプラー、engine/vendor/lemo/ にMITライセンスでベンダリング、およびそれが再生するサンプルライブラリ);clearance.js(トイが固体に入る場所、および静止時のサイズ);pacing.py、colors.py、ledger.py(ページのチェック:ペースと画面上のトイのサイズ、色、納品されたフィルムの台帳:スキル自身のものは ledger-base.json、このマシンのものは ~/.chrishkai-video/ledger.json);sdf.py(スカルプトキットの符号付き距離場)
engine/scripts/next(フィルムの進行状況)、check(Blenderの前に何が壊れるか)、clearance(トイが何かを通過する場所をフレームごとに、Blenderの前)、doctor(ステップ0)、new-film(ステップ1)、materials(ストーリーページ)、shot(公開ページのシャープなスクリーンショット)、grok-search(X検索、Grok Buildを使用)、apply-research(ステップ2)、instruments(実際の楽器のサンプル)、import-sculpt、toysheet(ステップ3:トイの色をステージ上で)、storyboard(storyboard-notes.js 付き)、animatic、diff-anim、studio、comments、pace、palette、ledger、review、compare(ステップ4;engine/lib/pacing.py、engine/lib/colors.py)、regions(カバーのブロックと番号付きの文字行)、finish(真のピークを-1 dBTP未満に保持)、covers、qa(ステップ5)、build-ui、export-anim、typesheet(選択するフォント:各フォントでのフィルムの行、電話サイズで、読み返す)、glyphs、avatar、sticker2d、shape、lookdev(トイが一体であるかどうか:engine/lib/toyparts.py)、scene(Blender)、safezone、sheet
templates/isnail-30/ストーリー:story.json(調整されたビート時間、壁幅、レンズ、シェイク)、storyboard.json(その...

...

[翻訳のため省略]

関連スキル