SuperAPI AI 工具集

code-mv-render

设计与创作

查看项目

更新于 10-21 06:53

技能介绍

用途

代码渲染 MV 工程库的定位是“整片 MV 渲染工程”参考库,而非生成单页演示。它收录两支开源音乐视频工程,供制作同步音乐视频时选取相近项目进行 fork 或改编。两支工程共用一条底层原理:每一帧只是歌曲时间的函数(frame = renderFrame(t)),因此浏览器实时预览与离线导出成片逐帧一致,便于反复复现和精确质检。

两支参考工程

  • world-execute-me-lyric-mv:歌词 MV(对话叙事)。画面技术为 Canvas 2D + WebGL2;画面语言有三种:聊天界面、暗暖纸底三墨版画、代码(EXECUTION 段)。状态系统是“颜色 = 状态”(off/on/warm/error/errWarm/ash/dead)。音画同步采用 data/lyric_timing.json 行级时间加 cues.js 拍点,并支持 LRC 自动填词。导出方式为无头 Chrome 逐帧 → ffmpeg(1080p60 / 4K60)。运行环境为 Node.js 20+、Windows 11(Chrome/Edge)。许可:代码/文档 MIT,角色剪影 CC BY-NC-SA 4.0,歌曲歌词不在仓库。
  • pdoom-video:生成式 MV(逐字卡拉 OK 排版)。画面技术为 three.js + TypeScript(GPU 场景),每片一个场景模块(线性线画、纸表单、霓虹屏、燃烧引线等)。音画同步采用 Demucs 分轨 + CTC 强制对齐 × Whisper 交叉校验,得到词级时间。导出方式为无头 Chrome → WebSocket 原始帧 → ffmpeg(1080p60 / 4K60,子帧运动模糊)。运行环境为 bun + Vite、Chrome + ffmpeg(libx264),分析需 uv/Python。许可:代码 MIT,字体 OFL,歌曲歌词不属 MIT。

共同原理(资料列出的“六条铁律”)

  1. 确定性优先:renderFrame(t) 只依赖时间,不读系统时钟、不留跨帧状态,随机数走种子化 PRNG。
  2. 时间基准唯一:全片用“歌曲时间”(音轨起点 = 0),片头警告页等前置内容放在负时间或整体 preroll 偏移。
  3. 一切卡在拍上:歌词行、鼓点、单字/音节时间集中一张表;零散时间集中在单个 cues 文件里手工修正。
  4. 视觉状态由事件驱动:颜色/材质只在“发生了什么”时改变,不做装饰性渐变。
  5. 字体与图形按角色分工:等宽体=系统、衬线体=叙事声、无衬线体=界面;图形先具象成一个世界观再谈排版。
  6. 安全与质检内建:任意一秒大面积亮度往返 ≤3 次(WCAG 2.3.1)、红色闪烁独立统计、导出后跑音画同步与单帧突跳自检。

使用方式(核心工作流)

  • 第 0 步 · 选型:对话/叙事/强概念、想用程式画出世界观,选 world-execute-me-lyric-mv 路线;抽象文本/反直觉句、需要 3D 空间与光、以歌词排版为主角,选 pdoom-video 路线。两套方法论可混用。
  • 第 1 步 · 素材与许可清障:两支工程都不含歌曲与歌词,必须自备。world-execute-me-lyric-mv 需把原曲 WAV 与任意时间轴的 LRC/纯文本放进“音頻&歌詞/”,tools/fill_lyrics.mjs 要求同样的词、同样的顺序,会按片内时间表自动重排/重分行;pdoom-video 自带示例音轨与词级时间数据,换歌需重跑 analysis/(Demucs + 对齐)。发布前须确认许可:用上游源码渲染的成片含角色剪影,须署明 CC BY-NC-SA 4.0 且不得商用;只用提示词、画面自绘则无法定要求但应注明出处;歌曲一律遵循原作者版权指引。
  • 第 2 步 · 复现与对齐:git clone 目标工程,按其 README 装依赖(npm / bun),用 npm run preview 或 bunx vite 起实时预览。改歌词/节拍时只动时间表与 cues 文件,画面代码交给 renderFrame(t)。
  • 第 3 步 · 预览 → 导出 → 质检:浏览器预览逐段确认(两工程都支持按秒 seek、逐帧步进、场景跳转);导出使用 npm run export:preview / export:4k(world-execute)或 bun scripts/render.ts video --samples auto --shutter 0.2(pdoom);质检跑闪光安全自检(npm run check / tools/check_flash.py)、音画同步偏移、单帧突跳,world-execute 另有改共用文件前后的缩图表逐格回归比对。

可复用要点

  • 块级自适应采样做运动模糊:画面切 32×32 块,静止块 12 采样、常规运镜 36、快速甩镜/爆闪 108–324,某块收敛后跳过后续子帧(pdoom 的 --samples auto)。
  • 预览与导出同源:预览器直接复用导出帧函数。
  • 颜色 = 状态的调色板设计:角色色(bg/panel/raised/line/text/sub/mute/me/meHot/meDim/err/errDim)随剧情事件切换。
  • 成品级闪光预算:config 写入 maxFlash / flashRange / preroll,导出脚本自动生成警告页与警示文案。
  • 缩图表回归:改动共用引擎前先出基准缩图表,改后逐格比对。

限制与红线

歌曲与歌词不在仓库、也不在代码许可内,不得把原曲/原词一并打包分发;角色剪影及其所在画面为 CC BY-NC-SA 4.0,须署名、禁商用、同许可再分享;两支工程的成片均须标注“含 AI 生成内容”;上游均为非官方同人作品,与权利人无关,不得暗示背书;平台特定实现(Windows 路径、ffmpeg-static)不构成可移植承诺,跨平台需自行适配。资料另设 Token 纪律:禁止通读参考工程源码,方法论优先取 references/ 两份浓缩规范,需看实现时先 grep 定位再按行号窗口读 ≤80 行。目录结构包含 SKILL.md/README.md、references/(world-execute-spec.md、pdoom-spec.md)与 assets/preview/。

上游来源

world-execute-me-lyric-mv — github.com/Nyankomintsu/world-execute-me-lyric-mv(Mili《world.execute(me);》歌词 MV,v4);pdoom-video — github.com/mexicat/pdoom-video("I'm Upping My P(doom)" 生成式 MV)。