App 3D 视频
概述
一段 20 秒的垂直视频,完全在此 Mac 上渲染:一个真实的 SceneKit iPhone 在明亮的象牙色世界中,应用的吉祥物角色会跳跃并按压真实 UI,展示价值优先的标题,以及一段原创摇摆配乐,每个跳跃都落在马林巴琴的音符上。template/ 是一个完整的示例项目(一个名为“MyApp”的用药提醒应用),可直接运行。更改故事、UI、数据、品牌和音乐;除非用户另有要求,否则保留外观。
必需的子技能: motion-video(引擎、节拍网格规划、静帧审查)。所有设计值(调色板、尺寸、灯光、音乐、陷阱、第二设备、真实与示意性)都在与此文件同目录的 reference.md 中。
当两项技能存在差异时,以此为准:复制 template/,运行 bash mv3d.sh(不是 mv.sh),吉祥物的跳跃、闪光和五彩纸屑是外观的一部分,即使 motion-video 的健康预设会避免它们。携带数据的 UI 仍然只轻微弹出;吉祥物负责跳跃。
从模板开始
cp -R ~/.claude/skills/app-3d-video/template ~/Movies/MotionVideo/<slug>
cd ~/Movies/MotionVideo/<slug>
bash mv3d.sh audio # score.swift -> music.wav,打印电平;在静帧之前运行
bash mv3d.sh stills 0.5,4.6,10.1 # 节拍 -> stills/ + sheet.png
bash mv3d.sh video # out.mp4,20 秒视频单部手机约需 5 分钟;后台运行
bash mv3d.sh frames out.mp4 2.5,6.3 # 秒 -> check/ + check_sheet.png
品牌信息位于 scenes.swift 顶部的 BRAND 块中:APP_NAME(结束卡上的文字标志)、APP_VERSION(3D 数字;长度变化时重新检查其大小和位置)、LABEL(第一个标题上方的小标签)、END_PILL(结束卡上的渐变药丸形)以及吉祥物颜色。然后替换 render() 中的每个 headline(...) 调用、头部注释和 plan.md。“COMING IN …”和“COMING SOON”是预告片用语;对于发布视频,请向用户询问标签和结束卡文字。
示例场景(实时活动卡片、锁屏小组件、一周药丸盒壁纸)属于示例应用。将其替换为用户自己的 UI,保留技术:映射到手机屏幕上的逐帧 2D 画布、吉祥物站在元素上并按压它们、由一个时钟驱动的延时动画。
工作流程
- 事实。 读取用户仓库中的每个功能:真实字符串、布局、调色板、状态、付费层限制、应用图标颜色(它们成为吉祥物的颜色)。询问代码无法回答的问题(哪些功能、确切名称、免费还是付费、预告片还是发布、时长;默认为 20 秒垂直视频)。仓库中尚无 UI 的功能:要求提供设计稿或截图。如果没有,则根据应用的设计系统绘制,将其列为示意性内容,并在第一版静帧表上显示。
- 吉祥物。 默认是应用品牌颜色中的双色调胶囊形状。如果应用有自己的吉祥物或简单的图标形状,则在
buildCapsule()中使用 SceneKit 基本几何体构建(保留CAP_HALF、单位大小和材质列表,以便阴影和两个渲染通道仍能工作)。 - 规划
plan.md在节拍网格上(96 BPM 摇摆,8 小节 = 20 秒)。一个功能 = 一个吉祥物与其实 UI 的交互。一个早晨、一个数据集、一个时钟。手机是舞台;第二个设备(手表、iPad)仅当功能存在于那里时才出现(reference.md,“第二设备”)。列出真实与示意性内容。 - 文案。 标题 = 用户获得的好处,而不是功能名称。付费内容在副标题上加 PRO 芯片。如果安装了人性化技能,对每一行运行它,然后重新检查事实。
- 配乐。 保留声音(尤克里里、马林巴、口哨、响指、E 大调、结束卡重拍上的合成音钟声),但为新的编排编写新的和弦、旋律和重音:每次着陆都在其视觉节拍上对应一个马林巴音符。如果应用有自己的通知声音,它可以替换合成音钟声(参见
score.swift末尾);使配乐的调与之匹配(motion-video 的references/score-guide.md)。如果用户要求不同的音乐,也更改乐器。目标 −13…−15 dBFS,0 % 削波。 - 静帧,至少两轮,包括跳跃中途的节拍。检查:吉祥物绝不遮挡信息,它在按压的元素上稍作停留,阴影可见,手机顶部位于标题下方,没有任何内容透过文案显示,真实 UI 颜色不与橙色标题冲突。
- 渲染 在后台进行,然后对 MP4 运行
frames并查看结果。 - 交付 到
~/Downloads/<App>_<Topic>_3D_<N>s[_vN].mp4,并向用户发送或展示文件。逐拍报告秒数、真实与示意性内容,以及音频已通过测量评估。将早期版本保留在v1/中。视频在用户批准前保持一种语言;每增加一个语言区域需要完整重新渲染,因此询问用户需要哪些语言区域。
视觉契约
- 象牙色/燕麦色世界,柔和的太阳。无深色工作室背景,无过饱和粉色。
- 中性钛金属手机,照片风格米色壁纸,深色墨水时钟,屏幕卡片使用浅色调色板。
- SF Pro Rounded 粗体标题;第二行是橙色渐变。
- 吉祥物互动(着陆、踩踏、头撞、在元素间跳跃)。它从不只是环绕或摆姿势。
- 真实的柔和阴影。无景深,无光晕。
常见错误
| 错误 | 修复 |
|---|---|
将节拍传递给 frames 或将秒数传递给 stills | frames = 秒,stills = 节拍(20 秒 = 32 节拍) |
| 吉祥物一着陆就离开按钮 | 停留约 0.2 节拍,使按压动作可被感知 |
| 吉祥物站在时间或标签上 | 将其放置在它可能遮挡的信息旁边 |
使用 opacity 淡出网格 | 移动、缩放或隐藏它 |
| 品牌颜色与橙色标题渐变冲突 | 将品牌颜色保留在吉祥物和版本号上;仅当用户要求时才更改标题渐变 |