Communitygithub.com

huypham85/app-3d-video

当用户要求为其 iOS 应用制作 3D 宣传片、预告片、发布视频、“即将推出”、“新功能”视频时使用,视频中包含真实的 3D iPhone 和一只跳跃并点击应用界面的吉祥物角色,也可用于修订或本地化此类视频。

app-3d-video 是什么?

这是一个用于在 Mac 上直接生成 20 秒垂直 3D 视频的技能,专为 iOS 应用宣传场景设计。它使用真实的 SceneKit iPhone 模型和明亮的象牙色世界,结合应用吉祥物角色在真实 UI 上跳跃、按压的动画,配以原创的摇摆配乐(每次着陆对应马林巴琴的一个音符)。技能基于 `template/` 完整示例项目,支持替换故事、UI、数据、品牌和音乐,但保留核心视觉风格。它依赖于子技能 `motion-video`(提供引擎、节拍网格规划、静帧审查),并在 `reference.md` 中记录了所有设计细节。工作流程包括从用户仓库中提取功能事实、规划节拍网格、生成配乐、制作静帧预览、最终渲染并交付 MP4 文件。视频遵循严格的视觉契约:象牙色世界、中性钛金属手机、SF Pro Rounded 粗体标题、吉祥物必须与 UI 互动(跳跃、按压、头撞等),不使用深色背景或过度后期效果。该技能特别强调吉祥物与真实 UI 的精确交互,以及通过节拍网格和配乐同步实现每帧动画的精细控制。

兼容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/huypham85/app-3d-video-skill/tree/HEAD/app-3d-video

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

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 画布、吉祥物站在元素上并按压它们、由一个时钟驱动的延时动画。

工作流程

  1. 事实。 读取用户仓库中的每个功能:真实字符串、布局、调色板、状态、付费层限制、应用图标颜色(它们成为吉祥物的颜色)。询问代码无法回答的问题(哪些功能、确切名称、免费还是付费、预告片还是发布、时长;默认为 20 秒垂直视频)。仓库中尚无 UI 的功能:要求提供设计稿或截图。如果没有,则根据应用的设计系统绘制,将其列为示意性内容,并在第一版静帧表上显示。
  2. 吉祥物。 默认是应用品牌颜色中的双色调胶囊形状。如果应用有自己的吉祥物或简单的图标形状,则在 buildCapsule() 中使用 SceneKit 基本几何体构建(保留 CAP_HALF、单位大小和材质列表,以便阴影和两个渲染通道仍能工作)。
  3. 规划 plan.md 在节拍网格上(96 BPM 摇摆,8 小节 = 20 秒)。一个功能 = 一个吉祥物与其实 UI 的交互。一个早晨、一个数据集、一个时钟。手机是舞台;第二个设备(手表、iPad)仅当功能存在于那里时才出现(reference.md,“第二设备”)。列出真实与示意性内容。
  4. 文案。 标题 = 用户获得的好处,而不是功能名称。付费内容在副标题上加 PRO 芯片。如果安装了人性化技能,对每一行运行它,然后重新检查事实。
  5. 配乐。 保留声音(尤克里里、马林巴、口哨、响指、E 大调、结束卡重拍上的合成音钟声),但为新的编排编写新的和弦、旋律和重音:每次着陆都在其视觉节拍上对应一个马林巴音符。如果应用有自己的通知声音,它可以替换合成音钟声(参见 score.swift 末尾);使配乐的调与之匹配(motion-video 的 references/score-guide.md)。如果用户要求不同的音乐,也更改乐器。目标 −13…−15 dBFS,0 % 削波。
  6. 静帧,至少两轮,包括跳跃中途的节拍。检查:吉祥物绝不遮挡信息,它在按压的元素上稍作停留,阴影可见,手机顶部位于标题下方,没有任何内容透过文案显示,真实 UI 颜色不与橙色标题冲突。
  7. 渲染 在后台进行,然后对 MP4 运行 frames 并查看结果。
  8. 交付 到 ~/Downloads/<App>_<Topic>_3D_<N>s[_vN].mp4,并向用户发送或展示文件。逐拍报告秒数、真实与示意性内容,以及音频已通过测量评估。将早期版本保留在 v1/ 中。视频在用户批准前保持一种语言;每增加一个语言区域需要完整重新渲染,因此询问用户需要哪些语言区域。

视觉契约

  • 象牙色/燕麦色世界,柔和的太阳。无深色工作室背景,无过饱和粉色。
  • 中性钛金属手机,照片风格米色壁纸,深色墨水时钟,屏幕卡片使用浅色调色板。
  • SF Pro Rounded 粗体标题;第二行是橙色渐变。
  • 吉祥物互动(着陆、踩踏、头撞、在元素间跳跃)。它从不只是环绕或摆姿势。
  • 真实的柔和阴影。无景深,无光晕。

常见错误

错误修复
将节拍传递给 frames 或将秒数传递给 stillsframes = 秒,stills = 节拍(20 秒 = 32 节拍)
吉祥物一着陆就离开按钮停留约 0.2 节拍,使按压动作可被感知
吉祥物站在时间或标签上将其放置在它可能遮挡的信息旁边
使用 opacity 淡出网格移动、缩放或隐藏它
品牌颜色与橙色标题渐变冲突将品牌颜色保留在吉祥物和版本号上;仅当用户要求时才更改标题渐变

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

相关技能