SuperAPI AI 工具集

lab-explainer

设计与创作

查看项目

更新于 11-03 16:14

技能介绍

Lab explainer 是一个制作短 3D 讲解影片的技能,影片场景类似摄影棚布景:暗色房间、带有陡峭控制面板的操控台,面板上放置一台供观众学习的装置。左上角标题卡显示实时数据,以及一句根据每帧数字重写的一句话;右上角控制面板展示按钮被按下、滑块被拖动;模型上漂浮着部件标签。影片在四到五个机位之间切换,控制件变化时,场景按真实公式给出相应响应。

用途与核心思路:公式决定观众看到的一切。用户只需编写一个 film.js 文件,其中包含参数、把参数转换为所有派生数字的 derive() 函数、控制变化时间线、UI,以及每帧根据这些数字搭建并摆位布景的 build(kit) 函数。derive() 是纯 JavaScript,因此脚本可在渲染任何一帧之前,在 Node 中打印整部影片的数字与文案。

使用方式:所有命令需在该技能目录下运行。先执行 node scripts/setup.mjs 完成环境准备,它会安装 three 与 playwright-core、查找或下载 Chromium、检查 ffmpeg,并检查与渲染一个示例帧;渲染使用 GPU(macOS 上为 --use-angle=metal)。工作流程如下:

  1. 确定模型与关键瞬间。写下观众可控制的参数、影片展示的数字,以及公式中出人意料的行为(如全反射阈值、交叉点、极限、非线性)。若有带屏显数字的参考视频,先让模型拟合这些数字。
  2. 在仓库外的项目文件夹中编写 film.js,可参考 examples/plane-of-focus/(含仪器、被观测场景、第二机位与景深模糊)或 examples/refraction/(单一机制与光束、无第二视图)。references/film.md 说明文件格式,references/kit.md 列出 build(kit) 可用的构件。
  3. 用 node scripts/check.mjs <project>/film.js --every 0.5 检查数字,逐项阅读参数、统计数据与文案;字幕应与故事一同编写。
  4. 查看静帧与模糊:capture.mjs 可输出分镜静帧表、单帧截图,以及 --coc 模糊尺寸通道(白色表示更模糊),渲染前按 references/look.md 检查每个镜头。
  5. 渲染:caffeinate -dimsu node scripts/capture.mjs <project>/film.js <project>/film.mp4 --video --fps 60。影片无音轨,如需音乐可自行用 ffmpeg 混流;分享用的小体积副本可执行 ffmpeg -i film.mp4 -c:v libx264 -crf 23 -preset slow film_share.mp4。
  6. 交付 MP4、静帧表和通过 node scripts/serve.mjs <project>/film.js 打开的实时页面,影片可实时播放,按空格暂停。

规则与限制:所有数字必须来自 derive(),不得在故事、标签或文案中手写数值;叠加层与数字来自同一模型,以保证一致性;影片中的每次变化都必须是控制件被移动,参数只通过 story.tracks 改变;随时间累积的量(如齿轮角度)须使用 kit.integrate,因为帧是乱序渲染的;移动过快而无法读取的对象可放慢绘制并在屏幕上注明,数字保持真实速度;重制时取结构与外观而非作者身份,使用自己的标题与文案,去掉其账号、标志、水印和关注按钮。参考文件包括 references/film.md(film.js 格式:params、derive、story、shots、cursor、ui、blur、look、build 与 state 对象)、references/kit.md(build(kit) 可用的材质、轴向圆件、实验台与面板部件、房间与灯光、低多边形布景、切片辉光、叠加层、次级视图)和 references/look.md(外观、构图、模糊与泛光调校及渲染前静帧检查)。性能参考:在 M1 Pro 上,简单的 20 秒影片以 30 fps 渲染约需一分钟,带次级视图的 30 秒影片以 60 fps 渲染约需七分钟。若参考视频中的数字无法用模型复现,应明确说明而非伪造。