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>
请给我:

* 画布颜色
* 图形颜色
* 强调色
* 图形圆角半径
* 字体
* 图形应当形变经过的各个状态

使用十六进制色值、秒、阻尼比和像素尺寸,而不是形容词。
</inputs>

<direction>
制作一个 14 秒、1440x1440、60fps 的无缝 UI 动效循环。

一个图形,零剪辑。

图形从一个状态形变到下一个状态,永远不会被替换。

每个状态占据画面的 50%。

相机在节拍点启动,并比图形更慢地稳定下来。

使用闭式解弹簧。

图形阻尼 0.72,稳定时间 0.35s。
相机阻尼 1.0,稳定时间 0.6s。

内容切换使用 12px 模糊,并在 0.15s 内淡出。

光标尖端始终锁定在它所拖拽的对象上。
</direction>

<structure>
使用 0.5s 的节拍网格。

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 - toast 显示“840 frames rendered”
12.0 - toast 缩回吉祥物中

最后一帧必须与第一帧相同。
</structure>

<build>
用一个 HTML 文件,使用 Canvas 2D。

window.renderAt(t) 必须是关于时间的纯函数。

不得使用 Math.random。
不得使用时钟。
不得携带状态。

?t= 必须冻结到精确的瞬间。

用 renderAt(frame / 60) 渲染每一帧。

使用 4 个子帧实现运动模糊。

以 60fps 编码为 H.264。
</build>

<gotchas>
用以下方式修复循环衔接处的光标跳变:

t - 14*floor(t/14)

不要让橙色交叉淡化为墨色。

在 1.5s 使用从中心扩散的涟漪,在 12.0s 使用从点击点扩散的涟漪。

单词切换采用垂直滚动。

在模糊进入之后再开始绘制。

让光标瞄准目标落位时所在的点。

保持光标速度低于 65 px/帧。
</gotchas>

<start>
先给我看分镜脚本。

然后再写代码。

第一次渲染后,检查每个节拍点前后的 5 帧,并在最终渲染前修正这些问题。
</start>

溯源

原作者
flxrnc
发布日期
2026-10-08(由推文 ID 反解)
原始出处
查看原帖 ↗
收录来源
yihui-dev/awesome-opus5-5-videos · flxrnc-251921 · MIT