ai21.net
言語

<inputs>

<inputs> — 1

プロンプト

<inputs>
Give me:

* canvas color
* shape color
* accent color
* shape radius
* fonts
* the states the shape should morph through

Use hex codes, seconds, damping ratios and pixel sizes instead of adjectives.
</inputs>

<direction>
Make a 14 second, 1440x1440, 60fps seamless UI motion loop.

One shape, zero cuts.

The shape morphs from state to state and is never replaced.

Each state fills 50% of the frame.

The camera starts on the beat and settles slower than the shape.

Use closed-form springs.

Shape damping 0.72, settle time 0.35s.
Camera damping 1.0, settle time 0.6s.

Content swaps use 12px blur and fade over 0.15s.

The cursor tip stays locked to whatever it drags.
</direction>

<structure>
Use a 0.5s beat grid.

0.0 - pixel mascot idles
1.0 - mascot squashes into play button
1.5 - loader
2.0 - check draws
2.5 - timeline scrub
4.0 - keyframe stretches past the end and snaps back
5.0 - bezier editor
7.0 - counter rolls F 000 to F 840
8.5 - render bar fills
10.0 - command palette types "export mp4"
11.0 - toast says "840 frames rendered"
12.0 - toast shrinks back into the mascot

The last frame must be the first frame.
</structure>

<build>
Write one HTML file with Canvas 2D.

window.renderAt(t) must be a pure function of time.

No Math.random.
No clock.
No carried state.

?t= must freeze the exact moment.

Render every frame from renderAt(frame / 60).

Use 4 subframes for motion blur.

Encode to H.264 at 60fps.
</build>

<gotchas>
Fix the cursor jump at the loop wrap with:

t - 14*floor(t/14)

Do not cross-fade orange into ink.

Use a ripple from the center at 1.5s and from the click point at 12.0s.

Roll word swaps vertically.

Start draw-on after blur-in.

Aim the cursor at where the target will be when it lands.

Keep cursor speed under 65 px/frame.
</gotchas>

<start>
First show me the storyboard.

Then write the code.

After the first render, check 5 frames around every beat and fix the issues before the final render.
</start>

日本語訳

<inputs>
次を教えてください:

* キャンバスの色
* シェイプの色
* アクセントカラー
* シェイプの半径
* フォント
* シェイプがモーフィングしていく状態

形容詞ではなく、16進コード、秒、減衰比、ピクセルサイズを使ってください。
</inputs>

<direction>
14秒、1440x1440、60fps のシームレスな UI モーションループを作成してください。

シェイプは1つ、カットはゼロ。

シェイプは状態から状態へとモーフィングし、決して置き換えられません。

各状態はフレームの50%を占めます。

カメラは拍に合わせて始まり、シェイプより緩やかに落ち着きます。

閉形式のスプリングを使用してください。

シェイプの減衰 0.72、整定時間 0.35秒。
カメラの減衰 1.0、整定時間 0.6秒。

コンテンツの切り替えは 12px のブラーと 0.15秒のフェードを使用します。

カーソルの先端は、ドラッグしている対象に固定されたままです。
</direction>

<structure>
0.5秒のビートグリッドを使用してください。

0.0 - ピクセルマスコットが待機
1.0 - マスコットが再生ボタンへ押しつぶされる
1.5 - ローダー
2.0 - チェックマークが描かれる
2.5 - タイムラインのスクラブ
4.0 - キーフレームが終端を越えて伸び、跳ね戻る
5.0 - ベジェエディタ
7.0 - カウンターが F 000 から F 840 まで回る
8.5 - レンダーバーが満ちる
10.0 - コマンドパレットが "export mp4" と入力する
11.0 - トーストが "840 frames rendered" と表示する
12.0 - トーストがマスコットの中へ縮んで戻る

最後のフレームは最初のフレームでなければなりません。
</structure>

<build>
Canvas 2D を使った HTML ファイルを1つ書いてください。

window.renderAt(t) は時間の純粋関数でなければなりません。

Math.random を使わないでください。
時計を使わないでください。
状態を持ち越さないでください。

?t= はその瞬間を正確に凍結しなければなりません。

すべてのフレームを renderAt(frame / 60) からレンダリングしてください。

モーションブラーには4サブフレームを使用してください。

60fps の H.264 にエンコードしてください。
</build>

<gotchas>
ループの折り返しでのカーソルのジャンプは次で修正してください:

t - 14*floor(t/14)

オレンジをインクにクロスフェードさせないでください。

1.5秒には中心から、12.0秒にはクリック地点からのリップルを使用してください。

単語の入れ替えは垂直にロールさせてください。

ブラーインの後にドローオンを開始してください。

カーソルは、ターゲットが着地するときの位置を狙ってください。

カーソルの速度は 65 px/フレーム未満に保ってください。
</gotchas>

<start>
まずストーリーボードを見せてください。

次にコードを書いてください。

最初のレンダリングの後、各ビートの周辺の5フレームを確認し、最終レンダリングの前に問題を修正してください。
</start>

出典

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