blank-page について
blank-pageは、短い草稿を生成系の制作ブリーフに整えるスキルです。主にStewdioのモーション、3D、シェーダー、映像を対象とし、ビジュアルと動きの参考、番号付きのビート、明確な転換点でプロンプトを構成します。
主な機能
- 01ブリーフや一括制作、修正など草稿の分類
- 02ビジュアルとモーションの参考探し
- 03番号付きビートと転換点による構成
- 04テンプレートを使ったプロンプトと確認事項の作成
- 05スクリプトによる参考検索とコンタクトシート作成
活用シーン
- 01短いアイデアから制作ブリーフを作成
- 02複数のビジュアル案に共通する制約の整理
- 03スクリーンショットの指摘を項目別の修正案に変換
- 04時間指定のあるモーションシーケンスの構成
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ playful-design/ router --skill blank-pageインストール後、Claude Code で/blank-pageを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
LICENSEagents/openai.yamlreferences/examples.mdfinding-references.mdpatterns.mdvocabulary.mdscripts/find_refs.py詳細
空白ページ
短い下書きを、作者自身が書いたようなブリーフに仕上げます。下書きの多くはStewdioのコンポジション制作(モーション、3D、シェーダー、映像素材)ですが、この方法はあらゆる生成ブリーフに応用できます。
優れたブリーフは、参考資料とビートでできています。 アイデアは指し示すもの(<mp4>を再現する、刺繍の質感の中で<img>)に宿り、ビートは何が何に変わるのかを伝えます。確かなルック、模倣する動き、実在するもの、そして転換です。言葉を増やすのでも、数値を増やすのでもありません。文体はすべて小文字で、命令形、番号付き、余計な言葉なしです。新規ブリーフはrefs:より上の部分を数えて約150語以内、編集メモは約50語以内にします。上限を超えたら、簡潔にする前に任意の行(リアリズム、パラメーター、デフォルトを言い換えたフレーム行)を削ります。ビートや転換は決して削りません。
references/内のファイル:
finding-references.md:役割、フェンス、are.naのシードとループ、Pinterest、Sketchfab、選定方法。ステップ2の前に読んでください。vocabulary.md:スロットごとにまとめた、作者自身の言葉。執筆時に取り入れてください。examples.md:実際のセッションからの修正前/修正後のペア。形式に迷ったら読んでください。patterns.md:ルールの根拠となるコーパスの証拠と過去の失敗例。任意です。
手順
-
下書きを分類します。
モード 判断の目安 出力形式 ブリーフ 「create」「recreate」、新しいコンポジションやシーン 美的な行+番号付きビート+フレーム行+refs+アセット バッチ 「create N comps」「variations」「fill the gaps」 ブリーフ+アイテムごとの一行説明+重複排除ルール+共通制約 差分 「make X more/less Y」「get rid of」「fix」「move to」 対象+変更+程度+方向+維持する要素 画像へのフィードバック スクリーンショット/コンタクトシートが添付されている 観察事項ごとに一行。そのフレームまたは時刻を明記 シーケンス 「at Ns」「after the X exits」、時間経過に沿ったビート すべてのビートに時間の基準点を付けたブリーフ、尺の上限 整理作業 名前変更、プッシュ、エクスポート、「check the render」 そのままにし、正確な形式または対象を追加 ブリーフ、バッチ、シーケンスはステップ2〜8に進みます。差分と画像へのフィードバックはステップ6に進みます。変更によって新しいルックや動きが加わる場合に限り、検索します。
-
ルックの基準を定めます。ビートより先に、画像を5点選びます。 美的な方向性をひとつに絞ってシートにまとめ、そこからそれぞれ役割を持つ静止画を5点選びます。全体のルック、パレット、素材または表面、構図、ディテールまたはモチーフです。異なる美的方向性を混ぜてはいけません。別の方向性がタイル選びで繰り返し優勢になるなら、そちらに全面的に切り替えます。その名前をプロンプトの1行目に入れます。
- フェンスがない場合(下書きにルックの指定がない):彼のアンブレラとCARIの美的な方向性の名称を調べ、下書きの言葉に合わせるのではなく、印象に残るものを選びます。
- フェンスがある場合(下書きでスタイル、ブランド、メディアが指定されている、または参考資料が添付されている):その言葉をare.naで検索し、その範囲内で最適な例を選びます。別の美的な方向性にしたり、そのスクリーンショットを使ったりしてはいけません。フェンスで制約するのはパレット、素材、書体、構成要素であり、レイアウト、スケール、カメラ、動きではありません。1行目には、ユーザーの言葉の下位分類を指定します(
in stripe-gradient dark)。読み解き方と検索方法、検索結果が使いものにならない場合の対処法については、finding-references.mdの「The fence」を参照してください。
-
モーションの基準を定めます。動きのある参考資料を3点選びます。 モーションのチャンネルからgif/mp4を選び、それぞれ模倣する価値のある動き(「彼ならこれをmo-graphに入れるだろうか?」)を含めます。主な仕掛け、転換、退出またはカメラの3つの役割をカバーします。3つのチャンネルを見ても退出やカメラの動きで基準を満たすものがなければ、m3に別のビートを割り当て、カメラについては言葉で記述します。フェンスはモーションには適用されません。 続いて、ビートに応じて、認識できるもの(実際のUI、製品、アートワーク、Sketchfabモデル)には模倣用の参考資料またはアセットを、インターフェースにはUIの参考資料を用意します。ユーザーからの添付資料があれば、そのスロットに使います。候補はすべて、役割を割り当てる前に確認してください。
-
各リファレンスの用途を決めてから、ビートを書きます。 8つすべてについて、どのビートに使い、具体的に何を取り入れるのかを明記します(
a3's wet-stone texture is the canvas surface、m1 0.0-1.6s is beat 1 at 1.5x slower, subject swapped for cards)。どのビートにも使わないリファレンスは外します。モーションのリファレンスでビートの順序とタイミングを決め、各画像は、その特徴が最初に現れるビートに配置します。転換点も含めます。何かが明らかになる、媒体が変わる、ズームアウトしてより大きな全体が見える、または別のものに変わるビートです(the painting unravels into a single thread which becomes a running silhouette)。登場して、動かして、止めるだけでは完成ではありません。下書きにすでに変化が含まれている場合(snaps into、comes back as)、その動詞が転換点です。それを最大のビートにし、比喩をもうひとつ加えないでください。5秒以下のクリップでは、ひとつのアイデアを扱います(追加のアイデアは物語ではなく、素材やカメラワークに取り入れます)。動きで時間を満たし、最後の静止は1秒未満にします。転換が1.6秒までに終わる場合は、ビートを圧縮するか、後半が欠けています。 -
アイデアを加えます。 素っ気ない下書きなら、被写体を具体的にする小道具、実際のアセット、明かす内容に結び付いたカメラ移動、最初のビートに応える2つ目のビートを加えるのが基本です。アイデアはビートとして書き、実際に選択が分かれる箇所には
[? ...]を付けます。 -
スロットを埋めます(以下のチェックリストを参照)。ファイル、前のコンポジション、添付ファイル、または会話から推測できる情報は、何も書き加えません。不足していて創造的な判断が必要なものは、プロンプト内に
[? best default]のプレースホルダーを入れます。不足していて定型的なもの(長さ、アスペクト比、ファイル)は、マーカーを付けずにデフォルトをインラインで指定します。ファイル名が指定されていない場合は、in stewdio, new file <topic>,とします。 -
所定の形式(以下のテンプレートを参照)に書き直し、作者の表現がある箇所はそのまま残します。
-
次の3点だけを出力します。 フェンス付きブロックに入れたプロンプト、「fill-ins」リスト(創造的な選択肢は最大3つ。それぞれ、採用した案と検討に値する代替案をひとつ記載します。長さ、ループ、アスペクト比は含めません)、および連絡用シートがある
.context/refs/<topic>/を示す1行です。<topic>は被写体を表す2~3語のケバブケースのスラッグです(coffee-menu)。実物が必要なのに用意されていない場合(ユーザー自身のアプリ、製品、ロゴなど)は、プロンプトの上の1行でその旨を伝え、代わりに使うものを明記します。手法やアドバイスは書きません。
スロットのチェックリスト
最初にオープナーのスロットを指定します。結果を左右するためです。その後に編集ループのスロットを指定します。
| スロット | 質問 | 定型表現 |
|---|---|---|
| 場所 | ツール、ファイル、コンポーネント。シーケンスの場合は、それが適用される時間またはビート | in stewdio, <file>, <comp>, at 3.5s: / after the sticker exits: |
| 見た目 | a1から指定する1つの美的スタイル。ユーザーが使った言葉がある場合は、その子カテゴリ | in frutiger aero style / everything in riso |
| メディア/手法 | 写真または映像、3Dでの再構築、ベクター、シェーダー、実際のモデル | using threejs or 3d framework / real 3d texture and train models |
| 動き | モーション参照の仕組みを、被写体だけ差し替えて指定 | recreate this animation, but make it nyc subway |
| 被写体 | 実在するものを名前で指定し、出典を添える | the famous ukiyo-e painting <img> |
| ビート | 番号を付けます。それぞれ「被写体+動作+明らかになるもの、または変化後の姿」で構成します | 2. then at around 2s, a big wave splats across the screen, turning the entire screen into a new texture |
| 転換 | 明かされるもの/変形/ズームアウト/メディアの切り替え | the camera zooms out to reveal that ... |
| リアリティ | 重要な場合に忠実度を指定 | it should be very realistic / loyal to the og |
| カメラ | 動き+イージング+最終的に映す対象 | camera zooms fast into the pupil, steep quadratic ease-in / camera stays still |
| ペース | どのような感触かをユーザーの言葉で指定し、秒数は目印となる箇所にのみ指定 | very snappy, ease-in-out / one continuous motion from the start |
| フレーム | 背景、アスペクト比、長さ、ループ。デフォルトと異なる場合のみ指定 | white bg, 1:1, ~5s loop |
| パラメーター | コンポーネントの調整に使う値を公開 | expose params for plumpness, sheen, glow |
| 維持 | 編集時に変更してはいけないもの | keep the old entrance speed / keep the rest the same |
| 変化量+方向 | 編集時の倍率、位相、軸、向き | 2x faster at top speed / 30 degree clockwise |
| 対象範囲 | 変更が適用されるコンポーネント | only for 23 / unrelated: also ... |
常に適用されるデフォルト。明記しません。背景は白(数学グラフ系では黒)です。 フェード、ドロップシャドウ、角丸、注釈テキスト、UI のクローム、ガイド線は使いません。SNS 投稿は 1:1、グラフ系とカルーセル系は 16:9 です。ループは約 5 秒、挿入するビートは 3〜4 秒、シーケンスは 15〜20 秒未満です。見分けのつく物体には実際のアセットを使い、その上にスタイルを加えます。見た目の指定はこれらに優先します。独自の背景(紙の質感、カウンター、ダークモードのネイビーなど)を持つ美的スタイルは、フレーム行の白い背景に置き換わります。また、そのスタイルに合った光(紙をかすめるような光)はドロップシャドウではありません。
テンプレート
Brief
in stewdio, <file>, [<comp>,] [at <N>s / after <beat>,] create the following, in <aesthetic from a1>[, using <technique>]:
1. <subject (c1 / asset), its state at 0s> <enters like m1: mechanic>
2. <main action from m1, subject swapped> [at ~<N>s]
3. <the turn: reveals / turns into / zooms out to show ...>
4. <exit or end state>
<realism demand if it matters>; <camera if it moves>; <pace in his words>
<frame only where it differs from the defaults>; the whole thing ~<N>s
[expose params for <list>]
refs:
- a1 <path>: look, <what it sets: overall look, framing of beat 1> (<url>, channel <slug>)
- a2 <path>: palette, <used where> (<url>, channel <slug>)
- a3 <path>: material, <which surface in which beat> (<url>, channel <slug>)
- a4 <path>: composition, <which beat's frame> (<url>, channel <slug>)
- a5 <path>: detail, <which element, which beat> (<url>, channel <slug>)
- m1 <path>: motion, beat <n>: <mechanic, time range taken, scale factor>, subject swapped, not the look (<url>, channel <slug>)
- m2 <path>: motion, beat <n>[ (the turn)]: <what is taken> (<url>, channel <slug>)
- m3 <path>: motion, beat <n>[ (the turn)]: <what is taken> (<url>, channel <slug>)
- u1 <path>: ui, <ui type> layout + components, brand-neutral (<url>, channel <slug>)
- c1 <path>: copy, <subject>, one-to-one (<url>)
assets:
- <path or url>: use as-is for <what>
- <sketchfab page> (<author>, <licence>, <faces>): <object>, one-to-one, <parts that must move> [? download]
ビート内にハンドルを記載します(2. the sticker peels from the lower-left corner like m1, on a3's wet stone)。refs:に記載したハンドルはすべて、ビート内に登場させます。モーションハンドルにはビートの順に番号を付け、転換につながるものには(the turn)を付けます。ブロックに出典がある場合は、チャンネルの後にorig <url>を追加します。ユーザーの添付ファイルも同じリストに入れます。
Batch
in <file>, create <N> <things>, <one-line shared description>, using <channel> as reference:
1. <item: mechanic + orientation + layout>
2. ...
for all of them: <shared constraints>; keep each ~<N>s
no overlap with <existing set>; a valid variation changes the mechanic, orientation, layout or treatment, not just direction or mirror
name them "<Prefix>: [<k> word description]"
Delta:1行につき変更を1つ指定します。複数ある場合は番号を付け、それぞれ対象を明記します。別のコンポーネントを示す場合は「unrelated:」を付けます。
[for <comp>,] make <element> <change> <magnitude> [<direction with axis>] [at <N>s]
[get rid of <element>]
keep <what must stay>
画像へのフィードバック:<対象となるフレームまたは時刻>: <数値で示した所見1つ>の形式で、1行ずつ記載します。
ルール
- 一致度ではなく品質で選びます。 主題を引き立てる、ひときわ目を引く動きや見た目は、適切なオブジェクトが写っているだけのキーワード検索結果より優先します。
- ウェブページではなく、映画のワンシーンにします。 重要なビートでは、主役となる要素がフレームの高さの40%以上を占めるようにします。最小の文字サイズは1080pで24 px以上とし、ブラウザーの表示倍率1:1で作り直したものは使いません。コンタクトシートはサムネイルサイズで判断します。
- リファレンス1つにつき役割は1つです。 動きには動画素材、見た目には静止画を使います。モーションリファレンスを使う場合は、主題の差し替えを意味します。1つのファイルを2つの役割に使う場合は、それぞれの用途を指定して2回記載します。
- アセットは使い、リファレンスは読み取ります。 実写映像、本物のGLB、実際のUI、本物の絵画を使い、その上にスタイルを加えます。忠実度は最初に明示し、アップロードされたアセットを独自に解釈し直すことはありません。プロシージャル生成を使うのは、プリミティブ、球体、ブロブ、押し出し、ノイズフィールド、および成長や変形が必要なものに限ります。
- それぞれのものを仕掛けとして扱います。 既定の描画アニメーションではなく、そのもの特有の機構を動かします(蓋が閉じる、封筒が封をされる、チェックボックスにチェックが入るなど)。変形は、いったん分解して作り直すのではなく、処理中にモーフィングさせます。
- 形容詞ではなく、仕組みを説明します。 「エディトリアルなページめくり風」はスライドインとして実装されました。「現在の画像の角をめくると、下にすでに表示されている新しい画像が現れる」は、最初から正しく実装されました。
- 使う箇所には数値を入れます。 アンカーや長さは秒、編集では倍率や角度を指定します。16進数は色が重要な場合に限ります(klein blue #002FA7)。オープニングにミリ秒単位の間隔やpx単位のオフセットは指定しません。
- 編集では軸、方向、フェーズを指定します。 「逆方向」では方向が明確ではありません。「入口を5倍速く」では不十分で、「これまでで最速の入口とし、その後は一定速度にする」と指定します。
- 口調はそのまま保ちます。 「get rid of」「tho」「~5s」「plz」は問題ありません。プロンプト内に挨拶、理由、見出しは入れません。
スクリプト
scripts/find_refs.py:are.na のチャンネル/アンブレラ/コンタクトシート、Pinterest のピン、Sketchfab の検索とダウンロード、ファイルのダウンロード、動画のコンタクトシートに対応しています。コマンド一覧を見るには、引数なしで実行してください。