Prompt Motion
@AiMotionSiteS
Prompt library

Films

16-bit style pixel-art wizard spell short film with synced chip music

16-bit style pixel-art wizard spell short film with synced chip music by @gkxspace. 你是一位像素动画师兼游戏手感(game feel)设计师,也会写芯片音乐。你用代码做出的东西,要像 16-bit… motion film…

@gkxspaceView post

Prompt

你是一位像素动画师兼游戏手感(game feel)设计师,也会写芯片音乐。你用代码做出的东西,要像 16-bit 时代一流工作室手绘的角色动画,而不是缩小的矢量图。 </role> <inputs> 以下是默认值,直接开工,不用问我: - 片名:《第 99 次施法》 - 画幅:1920×1080,60fps,时长正好 16 小节(140 BPM,约 27.43 秒),结尾无缝衔接开头 - 逻辑分辨率:192×108,整数 10 倍放大(竖屏版改为 108×192 → 1080×1920) - 声音:代码合成的芯片音乐和音效 </inputs> <story> 一个老巫师在夜里的山崖上练一个总是失败的法术。三次尝试,一次比一次认真,最后一次成功点亮了山下整座沉睡的村庄。 140 BPM,一拍约 0.429 秒,一小节约 1.714 秒。 - 第 1–2 小节 待机:巫师轻晃,胡子摆动,星星闪烁。镜头极慢地推近。 - 第 3–5 小节 第一次:蓄力 → 宝石亮了一下 → "噗"地冒出一缕灰烟,帽子被吹歪。音乐停半拍,留出喜剧停顿。 - 第 6–8 小节 第二次:更用力 → 飞弹射出 → 在空中掉头飞回来 → 打掉自己的帽子。停 1 拍,巫师眨两次眼。 - 第 9–10 小节 准备第三次:捡起帽子戴正,深呼吸(身体 1 像素起伏两次),音乐收得只剩三角波低音。 - 第 11–13 小节 第三次:长蓄力,火花螺旋聚拢,越转越快;第 13 小节最后一拍前全场静音 0.3 秒。 - 第 14 小节正拍 施法:hit-stop 冻结 5 帧,全屏白闪 1 帧,飞弹划过夜空落向山下。 - 第 15–16 小节 村庄的窗户从近到远依次亮起(错相,每扇窗间隔 2–4 帧),音乐全奏。巫师满意地捋胡子,帽子又滑下来挡住眼睛,然后回到待机姿势。 - 循环:render(16 小节的时长) 与 render(0) 逐像素一致,成片只包含 [0, 总时长) 内的帧。 </story> <direction> 像素纪律 - 所有内容画在 192×108 的离屏画布上,再按整数倍放大;imageSmoothingEnabled = false,CSS image-rendering: pixelated。 - 所有坐标对齐整数格。禁止亚像素、抗锯齿、shadowBlur、线性渐变;需要过渡时用 4×4 Bayer 抖动。 - 固定调色板不超过 24 色,先输出色板:夜空深蓝紫 4 阶、长袍暖色 4 阶、肤色 3 阶、魔法色 3–4 个,石头和村庄若干。画面上每个像素都必须来自色板。 - 角色约 22×30 个逻辑像素,用选择性描边(sel-out,受光一侧的描边用较浅的颜色)。光照靠切换色板色阶表现,不叠半透明。 动作语言 姿势参数化(法杖角度、手臂高度、头部倾斜、长袍摆动、胡子摆动),但姿势按 12fps"一拍二"的节奏量化更新;火花、飞弹、烟这些特效每一帧都动。 每个动作都走完:预备 → 动作 → 冲击 → 余震 → 回稳。法杖快速挥动时插 1–2 帧拖影帧(smear frame),不用运动模糊。 冲击感:命中瞬间 hit-stop 冻结 3–5 帧;屏幕按整数像素震动,幅度 3 → 2 → 1 → 0 衰减;宝石白闪 1 帧。 挤压拉伸控制在 1–2 像素以内:在像素动画里,1 像素已经是很大的变化。 错相:身体先动,胡子和帽尖晚 2–3 帧跟上,长袍下摆再晚 2 帧。 喜剧靠停顿:失败后的静止和眨眼要给够时间,不要用特效把停顿填满。 场景与光 三层视差:星空(几乎不动)、远山、近处的石崖和巫师。镜头漂移时各层速度不同,位移都取整。 宝石是动态光源:蓄力时,巫师面向宝石的一侧加 1 像素轮廓光,越亮色阶越高。成功那一刻,整个画面的色板短暂整体提亮一阶,再回落。 村庄平时是暗色剪影;窗户亮起时用 2 阶暖黄,每扇窗下方的地面亮起 1 像素反光。 禁止 角色以外的大字、UI、边框、logo;铺满屏幕的粒子爆炸;任何先画高清再降采样的"伪像素"。 </direction> <sound> - 只用四个通道,模仿 8-bit 主机:方波 1 弹旋律;方波 2 弹和声或琶音(占空比在 12.5%、25%、50% 之间切换);三角波弹低音;噪声通道打鼓。方波用带限合成(PolyBLEP 或加法合成),避免刺耳的混叠。 - 音效用同一套芯片音色:蓄力是上升琶音;失败的"噗"是向下扫频的噪声;飞弹掉头是一声变调的"啵咿";命中是噪声爆破加低音下潜;窗户亮起是一串高音"叮",每扇窗一声,音高沿五声音阶上行。 - 喜剧停顿时,音乐真的停下来;hit-stop 的 5 帧里,只留一条拉长的噪声尾巴。 - BPM 已知,节拍网格直接用公式算。所有关键动作落在拍上,预备动作可以提前 2–3 帧。 </sound> <engineering> 确定性渲染(违反任何一条都算失败) - 页面暴露 window.render(t),t 单位为秒,画面只由 t 计算。不用 requestAnimationFrame、setTimeout、https://t.co/Lwkwc6MyZu()、https://t.co/FDvnvYDWAb()、CSS transition/animation 驱动画面。 - 随机数一律用带固定种子的 PRNG(如 mulberry32);帧与帧之间不保存状态。 - 粒子(火花、烟、飞弹拖尾)用种子预先生成每个粒子的出生时间、初速度和寿命,位置由 t 解析计算后取整。 - 角色和场景全部程序化生成,不用任何图片;渲染时不联网。 拍摄与编码 Playwright 无头 Chromium,viewport 1920×1080,deviceScaleFactor=1。 逐帧调用 render(t) → 截图 → 通过管道直接喂给 ffmpeg,不在磁盘上堆几千张 PNG。 视频 H.264、-pix_fmt yuv420p、-crf 17、-preset slow、-movflags +faststart;音频 AAC 48kHz 192k,响度归一到 -14 LUFS,真峰值 ≤ -1 dBTP。 </engineering> <qc> - 像素网格检查:随机抽 10 帧,先最近邻缩小 10 倍再放大 10 倍,必须与原帧逐像素相同(证明没有亚像素和抗锯齿)。 - 色板检查:随机抽 10 帧统计用到的颜色,必须全部属于色板。 - 循环检查:render(总时长) 与 render(0) 逐像素一致;音频首尾做 10ms 交叉淡化,循环播放时不爆音。 - 抽帧拼图:每 0.5 秒一张。按这几项各打 1–10 分:剪影可读性、喜剧节奏(停顿够不够)、打击感、动作完整度(有没有直接滑过去的动作)、声画同步、像素纯度。把最严重的 3 个问题修掉再重渲,直到每项 ≥ 8。 </qc> <start> 自主模式,中途不要停下来问我。先输出色板图和 3 张关键帧