mirror of
https://github.com/Vincentwei1021/video-shotcraft.git
synced 2026-09-14 20:16:35 +08:00
c05d48492d
* feat: 48 张新镜头卡并入 Gallery(152 卡 / 209 样片) 动效研究实验的最终产出:209 个候选动效经八轮与参考片逐帧比对的人工 评审收敛为 48 个,以正式镜头卡形态并入 Gallery 既有 10 类体系。 内容: - references/shots/<类别>/<卡名>.md — 48 张配方卡,与既有 104 张同构 (一句话/适用/时长/能量 + 意图/动效核心/参数表/已知坑/参考实现), 参数表逐项取自实现源码 - demos/<类别>/<卡名>/effect.js — 自包含 MotionLab 动效模板(内置最小 运行时,浏览器直接可跑;接 Remotion 时 t = frame/durationInFrames) - gallery/media/poster/*.jpg — 48 张 poster;样片 mp4 已传 gallery-media release(1920×1080@30fps) - gallery 全链路同步:library.json(152 cards / 209 styles)、 translations.js(cardsZh/cardsEn 48 组中英标签)、source/、 library.html 预渲染、sitemap、llms.txt 模板化:全部动效去品牌化(中性占位文案 + 单一可替换 ACCENT 强调色 变量);占位人名/IP 均为明显虚构(Casey Doe / TEST-NET 段)。 文档:README×3 What's new 重写(数字 104→152、161→209,徽章行去 forks、AtomGit Star 上移);SKILL.md 数字同步;demos/README.md 补 MotionLab demo 对接说明。 安全自查:无 eval/new Function/网络请求/storage 访问;innerHTML 均为 静态模板字面量;确定性渲染(无 Date.now/Math.random)。 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * feat: 48 张新卡 demo 全部转为原生 Remotion .tsx(对齐老卡形式) - demos/<类别>/<卡名>/effect.js(MotionLab 浏览器脚本)→ 同目录 PascalCase .tsx 组件,与既有 104 卡 demo 同形式:copy 进项目注册 Composition 即用 - 新增共享件 demos/_fixtures/Motion.tsx:E 缓动表 / seg / lerp / 确定性 rand / useT / DesignStage(480×270 设计坐标,scale 与 zoom 两种光栅化) - 每个组件 export <卡名>_DURATION(30fps 帧数);纯 t 驱动、无真随机, 满足确定性渲染 - 验收:逐个与原样片 mp4 做全帧 SSIM 比对(mean≥0.97/min≥0.93)+ 5 帧 对照条肉眼复核;46/48 达标,2 个 BORDERLINE(flying-words、 dashboard-glow-highlight-pill)经 x264 往返实验证明余差全部来自样片 编码噪声,组件内有注释说明 - 48 张卡「参考实现」改指 .tsx(与老卡同格式);gallery source 副本与 library.json 同步;demos/README 的 MotionLab 段改写为原生组件用法 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * fix: 落实外部评审六项(文档漂移/SVG ID/ATTRIBUTION/PR 校验 CI) - README×3:effect.js 引用改 .tsx 组件;CN 首屏与包含表 161→209 样式、 JA 首屏与包含表 104→152 卡 - demos/README:修正「无内部状态」表述——注明 3 个文字密集组件挂载时 useLayoutEffect 实测字宽的例外及跨平台字体漂移风险 - GrainDissolve:filter/clipPath 固定 ID(gd0)改 useId() 派生,同 Composition 多实例不再串引;SSIM 复验 mean=0.9944/min=0.9938 PASS - ATTRIBUTION:区分动效手法与受保护的具体表达;明确「公开发布≠复刻 许可」;来源表补作品时长/内容描述与精确度限制说明 - 新增 .github/workflows/pr-checks.yml:PR 阶段校验生成物与卡片同步 (sync + build-seo 后 git diff --exit-code)+ library.json 每条 preview 在 gallery-media release 有对应资产(比对资产名单,不下载媒体) - sitemap lastmod 跟上 library.json stats.newest(build-seo 重新生成) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * fix: 补 PR 审查发现的两个 CI 门禁漏洞 + ATTRIBUTION 溯源表述 - pr-checks.yml:漂移门禁 git diff --exit-code 改 git status --porcelain ——前者看不见未跟踪的新文件,「加了卡但忘 commit 生成的 source 副本」 会绿灯通过(已实验复现),恰是此门禁要防的场景 - sync-from-cards.py:library.json 有条目但卡 md 已删(孤儿条目)时从 仅 print 改为硬失败 SystemExit——否则删卡 PR 过 CI 后 Gallery 渲出 source 链接指向虚空的卡(已实验复现,修后 exit=1) - ATTRIBUTION.md:「src 标注」列头改为「研究批次」并说明卡片文件不携带 来源标注、无法逐卡反查——原列头暗示存在逐卡 src 字段,实际没有 - README×3 致谢段补指向 references/shots/ATTRIBUTION.md 的链接 ——此前全仓库没有任何入口指向这份卡片来源说明 三处门禁行为均在临时 worktree 实验验证:正常同步通过、未跟踪副本报警、 孤儿条目 exit=1。 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * fix: 二轮评审五项加固(URL 转义 / CI 白名单 / 逐卡溯源 / gitignore / demos 编译门禁) - gallery/app.js:media URL 插入 innerHTML 前过 escapeHtml(img/video 两处 data-src)——library.json 是仓库内生成物,属纵深防御而非活漏洞 - pr-checks.yml:media URL 加白名单校验(必须 ./media/<name>.mp4?v=N 相对路径,绝对/协议相对 URL、引号尖括号直接 CI 失败),与 app.js 的 innerHTML 插值互为两道防线 - pr-checks.yml:paths 加 demos/**,新增 demo 编译步骤(202 个 .tsx 全量 tsc strict,本地验证 exit 0)——此前 TSX 主产物无任何 CI 覆盖 - ATTRIBUTION:来源表补 x.com/tvnxty(Firecrawl 宣传片,2 张卡); 新增「逐卡来源映射」附表,48/48 全部可反查(数据来自研究期原片 时段映射记录),撤销"无法逐卡反查"的旧限制声明 - .gitignore:motion-lab/ 锚定为 /motion-lab/,不再匹配任意层级同名目录 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * fix: demo 编译门禁补装 @remotion/motion-blur(钉模板 remotion 同版本) 8 个 demo import @remotion/motion-blur,模板 package.json 有意不带它 (npm ci 后即缺失,CI 上 TS2307)。临时 --no-save 安装并钉到与模板 remotion 完全一致的版本——裸装 latest 会嵌套第二份 remotion 触发 checkMultipleRemotionVersions(与 PR #28 评审复现一致)。 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * fix: stylesZh 补齐 48 张新卡的 style 中文标签 新卡均为单式卡(style key = 卡名),中文标签沿用 cardsZh 的既有译名。 此前缺失时中文界面经 styleName() 回退显示英文 label,无可见回归, 但违反"新 style key 要在 stylesZh 加中文标签"的库规。补齐后 stylesZh 209 条与 library.json 的 style 全集一一对应。 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * docs: What's new 条目带日期,最新一批用引用块+🆕 突出 三个 README 同步:2026-08 的 48 张新卡升为引用块小节标题(🆕 前缀), 7 月的两条沿用列表形式、条目前缀补日期,保留 Changelog 的时间线信息。 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * docs: What's new 最新条目改用 GitHub Alert(IMPORTANT)语法 普通引用块在 GitHub 上把文字渲染成灰色,反而比列表更淡;换成 > [!IMPORTANT] 得到紫色竖线 + Important 标签,正文保持正常亮度。 经 gh api markdown 渲染验证 alert/标题/正文结构正确。 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
5.4 KiB
5.4 KiB
镜头卡来源与授权说明(2026-08 新增 48 张)
本批 48 张镜头卡的动效手法研究自公开发布的产品宣传片与开源项目主页。 所有实现均为从零重写(re-implemented from scratch):仓库不包含任何 原片片段、截图、美术资产或品牌元素;实现中的文案、配色、UI 内容均为 中性占位模板。原作者未参与本项目,卡片标注来源仅为致敬与研究溯源 ("仅参考、重新实现")。
法律边界(重要)
- 抽象的动效手法/技法(时序结构、缓动思路、编排逻辑)一般属于 方法与创意范畴;但具体表达(原片的画面、美术、文案、品牌元素、 可辨识的整体视听呈现)受版权与商标等权利保护。本项目只研究前者, 并通过全部重写、去品牌化、占位化来避免复制后者。
- 来源作品"公开发布"不等于授予复刻或衍生的许可。本表记录的是研究 溯源,不是授权凭证;对未获明确许可的来源,我们依赖的是"手法参考 + 独立重写、无原素材"这一实践,而非任何来自权利人的授权。
- 若任何权利人认为某张卡的实现仍构成对其具体表达的复制,请提 issue, 我们将及时调整或移除相应内容与标注。
来源清单
注:下表按研究批次记录来源(一个批次对应一支参考片或一个参考站点, 覆盖该批次衍生的若干张卡);卡片文件本身不携带来源标注,逐卡归属见文末 「逐卡来源映射」附表。
| 研究批次 | 来源 | 类型 | 状态 |
|---|---|---|---|
| anime.js | https://animejs.com/ 官网演示(GitHub: juliangarnier/anime) | 开源项目主页(MIT 项目;官网演示的美术呈现版权归作者) | 手法参考,重新实现;未使用其代码或美术 |
| remotion-bits.dev | https://remotion-bits.dev/ | 开源示例集 | 手法参考,重新实现;未使用其代码 |
| x.com/amirdzm | X 公开发布的 motion 作品两支(约 13s "Storyboard → Result" 等) | 个人作品(公开发布,未获复刻许可) | 手法参考,重新实现;无原素材 |
| x.com/1amanly | X 公开发布的 motion 作品 | 同上 | 同上 |
| x.com/Jerrythe2d | X 公开发布的 motion 作品(约 84s) | 同上 | 同上 |
| x.com/bohdanmotion | X 公开发布的 motion 作品(约 26s) | 同上 | 同上 |
| x.com/thiswillblossom | X 公开发布的 SaaS 概念广告(约 2.1s 四宫格) | 同上 | 同上 |
| x.com/tvnxty | Firecrawl 品牌/产品宣传片(约 66s,公开发布) | 商业宣传片(公开发布,未获复刻许可) | 手法参考,重新实现;无原素材 |
| x.com/shapelayer | X 公开发布的 motion 作品(约 11.6s) | 同上 | 同上 |
| x.com/aizal_mp4(个别卡) | Willow Voice 产品宣传片(动效设计师 aizal 作品,约 41s) | 商业宣传片(公开发布,未获复刻许可) | 手法参考,重新实现;无原素材 |
| 抖音 观机社(dy09) | 抖音账号"观机社"发布的荣耀 AI 概念片剪辑(约 22.6s) | 转载剪辑;底层为品牌向概念内容(涉及荣耀/Honor 品牌元素) | 手法参考,重新实现;品牌字标已替换为中性占位词 |
| 抖音 江经怜(dy08,个别卡) | 抖音账号"江经怜"公开发布的作品(约 19.4s 竖屏) | 个人作品(公开发布,未获复刻许可) | 手法参考,重新实现;无原素材 |
| reference/brand-scan | 用户提供的参考图定制 | 内部需求 | 原创实现 |
已知精确度限制:X / 抖音来源当时以账号主页为单位记录,未逐条留存 具体帖子 URL(原片仅在研究期间本地留存,未入库)。表中已尽量补充 可辨识作品的时长与内容描述;如需逐条溯源可据此在对应账号检索。
逐卡来源映射
48 张卡与研究批次的对应关系(来自研究期的原片时段映射记录):
| 来源 | 卡片 |
|---|---|
| anime.js 官网演示 | radial-wave、scramble、svg-shape-morph、value-stagger-gradient |
| remotion-bits.dev | basic-3d-scene、blur-slide、card-stack、carousel-3d、counter-confetti、cube-navigation、cursor-flyover、flying-words、fracture、glitch-cycle、gradient-transition、list-reveal、mosaic-reframe、terminal-3d、typing-code-block |
| x.com/1amanly | avatar-bracket-carousel、countdown-arc-scatter、floating-glossy-label-pills、pill-chip-slot-cycle-handled、radial-ripple-phone-chips |
| x.com/Jerrythe2d | avatar-grid-radial-build-colorize、bezier-source-converge-merge、chip-grid-single-select-blackout、chip-lift-to-user-pill、doc-park-left-pill-deal、picker-carousel-feature-cycle、scan-bracket-sweep、vertical-word-roll-blur-cycle |
| x.com/aizal_mp4(Willow Voice) | aurora-bloom-bg-flip、glass-pill-dictation-typing |
| x.com/amirdzm(作品 a) | brace-expand、grain-dissolve |
| x.com/amirdzm(作品 b) | hatch-depth |
| x.com/bohdanmotion | outline-word-fill、word-relay-geometry |
| x.com/shapelayer | dashboard-glow-highlight-pill |
| x.com/thiswillblossom | quad-split-parallel-scenes |
| x.com/tvnxty(Firecrawl 宣传片) | product-card-progressive-assemble、research-card-stack-scroll |
| 抖音 观机社 | logo-shrink-wordmark-lockup、white-flash-logo-simplify-cut |
| 用户参考图定制(brand-scan) | assemble-then-type-flyin、scanline-annotate-focus、scanline-assemble-flyin |