ai21.net
言語

<inputs>

<inputs> — 1

プロンプト

<inputs>
Ask me for: my featured Pokémon or starter trio, 8–12 Pokémon-themed UI states, and a royalty-free song around 120 BPM with a playful adventure or electronic feel. Confirm that the song’s license permits the intended use.Default palette: warm off-white, black, and Poké Ball red. Pokémon artwork keeps its original colors.
</inputs>

<direction>
A Pokémon-inspired UI motion film with Dribbble-level polish. Imagine a beautifully designed modern Pokédex: playful, precise, and instantly http://recognizable.One shape, never cut: a Poké Ball continuously morphs into every interface component by changing its size, radius, and color. Its central button, dividing line, and outer shell become the controls and structure of each new state. Content swaps with a short blur and carefully separated enter/exit timing.

A visible cursor drives every interaction with clicks, drags, and hover gestures. Use a light warm-gray canvas, clean Geist typography, consistent icon strokes, and crisp Pokémon artwork.

Use tightly damped springs with only a tiny overshoot. The camera smoothly reframes each state so the interface stays large and readable. The ending returns exactly to the opening Poké Ball for a seamless loop.

Banned: excessive bouncing, particle bursts, glows, gradients on UI chrome, mismatched icon strokes, dead time, generic dashboard layouts, abrupt scene changes, and unrelated floating elements.
</direction>

<structure>
120 BPM, 4/4 time, 7 bars: 28 beats, approximately 14 seconds. Something intentional happens on every http://beat.Bar 1 — Poké Ball activation

1. A closed Poké Ball sits centered; the cursor approaches.
2. The cursor clicks its central button.
3. The button becomes a circular scanning loader.
4. The scan resolves into a check, and the shell stretches into a compact Pokédex.

Bar 2 — Pokémon discovery
5. The Pokédex expands to reveal the featured Pokémon.
6. Its name, number, and type appear in a quick stagger.
7. The cursor clicks the cry/play control.
8. The control morphs into pause while a compact waveform animates.

Bar 3 — Trainer controls
9. The waveform flattens into a volume slider.
10. The cursor drags its Poké Ball-shaped knob to maximum.
11. Dragging beyond maximum elastically stretches the slider.
12. On release, it settles and compresses into a shiny-mode toggle.

Bar 4 — Pokémon details
13. The cursor flips shiny mode; the artwork changes to the correct shiny variant.
14. The toggle knob stretches into a liquid tab indicator.
15. The cursor selects “Stats.”
16. The card opens into a clean Pokémon stat chart.

Bar 5 — Stats to search
17. Stat bars draw themselves in sync with the beat.
18. The cursor hovers over a bar; a readable tooltip appears.
19. The chart retracts into the same container.
20. The container compresses into a Pokédex search field.

Bar 6 — Find and select
21. The search field expands into a command palette.
22. A short Pokémon name is typed; matching results filter.
23. The cursor selects a result, revealing its miniature artwork and type.
24. Enter confirms; the palette folds into an “Added to team” toast.

Bar 7 — Return to the Poké Ball
25. The toast’s confirmation mark becomes the Poké Ball’s central button.
26. The toast contracts; its edges become the circular shell.
27. The red upper half, white lower half, and black dividing line settle into place.
28. The cursor returns along a smooth path, matching the opening position and velocity as the loop wraps.

Use the chosen Pokémon consistently throughout. Keep visible text brief enough to read at this pace.
</structure>

<build>
1. Build one self-contained HTML file with a square 1440×1440 composition. Compute every animated style from time inside seek(t): no CSS transitions, timers, or state carried between frames.
2. Keep one persistent outer element throughout the sequence. Its internal artwork, labels, and controls may change, but the main silhouette must visibly connect every state.
3. Use closed-form spring step responses. For repeated target changes, sum one spring response per change so animation remains a pure function of time.
4. Give the tab indicator’s two edges different springs so the leading edge stretches ahead of the trailing edge. Apply the same technique to the toggle knob.
5. Make drags direct manipulation: while held, values follow cursor position. On release, use a closed-form spring matching the release position and velocity.
6. Analyze the supplied song with numpy to estimate the beat grid, verify the downbeat, and align the sequence. If the tempo differs from 120 BPM, adapt the timing to the actual music.
7. Use licensed UI sounds and align their measured transient peaks with clicks, confirmations, and morph accents.
8. Render with Playwright at four subframes per output frame. Blend each group of four with ffmpeg into a 60fps video for motion blur.
9. Render one preview frame per beat before the full video. Fix anything cramped, unreadable, visually disconnected, or off the beat grid.
10. Package artwork and fonts inside the HTML so rendering does not depend on network requests.
</build><gotchas>
Never put will-change on anything the camera scales; text can become blurry.Give outgoing and incoming content separate timing so labels never overlap during a morph.

Use accurate Pokémon artwork, names, types, shiny colors, and stats. Do not invent variants or stretch character artwork when the container changes shape.

Keep the main container recognizable through every transition. Pokémon artwork is content inside the morphing interface, not a replacement for the persistent shape.

Match the loop boundary exactly: geometry, content, camera, cursor position, and cursor velocity. Export the interval [0, duration) without duplicating the endpoint frame. Make the audio loop cleanly too.
</gotchas>

<start>
Ask me for the inputs, then show me the proposed Pokémon state list on the 28-beat grid before writing any code.
</start>

日本語訳

<inputs>
私に以下を尋ねてください:私の推しポケモンまたは御三家、8–12個のポケモンをテーマにしたUI状態、そして遊び心のある冒険ものかエレクトロニックな雰囲気を持つ、120 BPM前後のロイヤリティフリー楽曲。その楽曲のライセンスが意図する用途を許可していることを確認してください。デフォルトのパレット:温かみのあるオフホワイト、黒、モンスターボールの赤。ポケモンのアートワークは元の色を保ちます。
</inputs>

<direction>
Dribbbleレベルの洗練を備えた、ポケモンにインスパイアされたUIモーション映画。美しくデザインされた現代的なポケデックスを想像してください:遊び心があり、精密で、すぐに認識できるもの。ひとつのシェイプ、カットは一切なし:モンスターボールがサイズ、角丸、色を変えながら、あらゆるインターフェースコンポーネントへと絶えずモーフィングします。その中央のボタン、分割線、外殻が、新しい各状態のコントロールと構造になります。コンテンツは短いブラーと、丁寧に分離されたイン/アウトのタイミングで入れ替わります。

可視カーソルがクリック、ドラッグ、ホバージェスチャーですべてのインタラクションを駆動します。明るいウォームグレーのキャンバス、クリーンなGeistのタイポグラフィ、一貫したアイコンの線幅、鮮明なポケモンのアートワークを使ってください。

きつく減衰させたスプリングを使い、オーバーシュートはごくわずかに抑えます。カメラが各状態を滑らかにリフレーミングし、インターフェースが大きく読みやすいままになるようにします。エンディングは冒頭のモンスターボールへ正確に戻り、シームレスにループします。

禁止:過度なバウンド、パーティクルの噴出、グロー、UIクローム上のグラデーション、アイコンの線幅の不一致、無駄な時間、汎用的なダッシュボードレイアウト、唐突なシーン転換、無関係な浮遊要素。
</direction>

<structure>
120 BPM、4/4拍子、7小節:28拍、約14秒。すべての拍で意図的なことが起こります。第1小節 — モンスターボールの起動

1. 閉じたモンスターボールが中央に置かれ、カーソルが近づきます。
2. カーソルが中央のボタンをクリックします。
3. ボタンが円形のスキャニングローダーになります。
4. スキャンがチェックに解決し、外殻がコンパクトなポケデックスへと伸びます。

第2小節 — ポケモンの発見
5. ポケデックスが広がり、推しポケモンが現れます。
6. その名前、番号、タイプが素早いスタッガーで現れます。
7. カーソルが鳴き声/再生コントロールをクリックします。
8. コントロールが一時停止へとモーフィングし、その間コンパクトな波形がアニメーションします。

第3小節 — トレーナーコントロール
9. 波形が音量スライダーへと平坦になります。
10. カーソルがモンスターボール型のノブを最大までドラッグします。
11. 最大を超えてドラッグすると、スライダーが弾性的に伸びます。
12. 離すと、収まってシャイニーモードのトグルへと圧縮されます。

第4小節 — ポケモンの詳細
13. カーソルがシャイニーモードを切り替え、アートワークが正しいシャイニー個体のものに変わります。
14. トグルノブがリキッドなタブインジケーターへと伸びます。
15. カーソルが「Stats」を選択します。
16. カードがクリーンなポケモンのステータスチャートへと開きます。

第5小節 — ステータスから検索へ
17. ステータスバーがビートに同期して自ら描画されます。
18. カーソルがバーにホバーすると、読みやすいツールチップが現れます。
19. チャートが同じコンテナへと引っ込みます。
20. コンテナがポケデックスの検索フィールドへと圧縮されます。

第6小節 — 検索と選択
21. 検索フィールドがコマンドパレットへと展開します。
22. 短いポケモン名が入力され、一致する結果が絞り込まれます。
23. カーソルが結果を選択し、そのミニチュアのアートワークとタイプが現れます。
24. Enterで確定し、パレットが「Added to team」トーストへと折り畳まれます。

第7小節 — モンスターボールへの帰還
25. トーストの確認マークがモンスターボールの中央ボタンになります。
26. トーストが収縮し、そのエッジが円形の外殻になります。
27. 赤い上半分、白い下半分、黒い分割線が所定の位置に収まります。
28. カーソルが滑らかなパスに沿って戻り、ループが一周するときの冒頭の位置と速度に一致します。

選んだポケモンを全体を通して一貫して使用してください。表示されるテキストは、このテンポで読める程度に簡潔にしてください。
</structure>

<build>
1. 正方形の1440×1440のコンポジションを持つ、自己完結型のHTMLファイルを1つ構築します。すべてのアニメーションスタイルはseek(t)の内部で時間から計算してください:CSSトランジション、タイマー、フレーム間で持ち越される状態はなし。
2. シーケンス全体を通じて、1つの永続的な外側の要素を保ちます。その内部のアートワーク、ラベル、コントロールは変わってもかまいませんが、メインのシルエットがすべての状態を目に見えてつなぐ必要があります。
3. 閉形式のスプリングステップ応答を使用します。ターゲットが繰り返し変わる場合は、変更ごとに1つのスプリング応答を合計し、アニメーションが時間の純粋な関数であり続けるようにします。
4. タブインジケーターの2つのエッジに異なるスプリングを与え、先端側のエッジが後端側より先に伸びるようにします。トグルノブにも同じ手法を適用します。
5. ドラッグを直接操作にします:保持している間、値はカーソル位置に追従します。離すときは、離した位置と速度に一致する閉形式のスプリングを使います。
6. 提供された楽曲をnumpyで分析してビートグリッドを推定し、ダウンビートを検証し、シーケンスを整列させます。テンポが120 BPMと異なる場合は、実際の音楽にタイミングを合わせます。
7. ライセンス済みのUIサウンドを使用し、計測したトランジェントのピークをクリック、確認、モーフのアクセントに合わせます。
8. Playwrightで出力フレームごとに4つのサブフレームでレンダリングします。4枚ずつのグループをffmpegでブレンドし、モーションブラーのある60fps動画にします。
9. 本編動画の前に、1ビートにつき1つのプレビューフレームをレンダリングします。窮屈なもの、読めないもの、視覚的につながっていないもの、ビートグリッドから外れたものを修正します。
10. アートワークとフォントをHTML内にパッケージし、レンダリングがネットワークリクエストに依存しないようにします。
</build><gotchas>
カメラがスケールするものには絶対にwill-changeを付けないでください;テキストがぼやけることがあります。出入りするコンテンツには別々のタイミングを与え、モーフ中にラベルが重ならないようにしてください。

正確なポケモンのアートワーク、名前、タイプ、シャイニーカラー、ステータスを使用してください。コンテナの形が変わるときに、変種をでっち上げたり、キャラクターのアートワークを引き伸ばしたりしないでください。

すべてのトランジションを通じて、メインコンテナを認識できる状態に保ってください。ポケモンのアートワークはモーフィングするインターフェースの内部コンテンツであり、永続的なシェイプの代替ではありません。

ループ境界を正確に一致させてください:ジオメトリ、コンテンツ、カメラ、カーソル位置、カーソルの速度。エンドポイントフレームを重複させずに、区間[0, duration)をエクスポートします。オーディオもクリーンにループさせてください。
</gotchas>

<start>
私に入力を尋ね、コードを書く前に、提案するポケモンの状態リストを28拍のグリッド上で見せてください。
</start>

出典

原作者
TheGrootDev
公開日
2026-09-25(由推文 ID 反解)
原典
元の投稿を見る ↗
収録元
yihui-dev/awesome-opus5-5-videos · thegrootdev-966114 · MIT