Files
Yihao c05d48492d feat: motion-lab 48 个定稿动效模板(八轮评审收敛) (#27)
* 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>
2026-08-09 17:00:39 +08:00

5.4 KiB
Raw Permalink Blame History

镜头卡来源与授权说明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-wavescramblesvg-shape-morphvalue-stagger-gradient
remotion-bits.dev basic-3d-sceneblur-slidecard-stackcarousel-3dcounter-confetticube-navigationcursor-flyoverflying-wordsfractureglitch-cyclegradient-transitionlist-revealmosaic-reframeterminal-3dtyping-code-block
x.com/1amanly avatar-bracket-carouselcountdown-arc-scatterfloating-glossy-label-pillspill-chip-slot-cycle-handledradial-ripple-phone-chips
x.com/Jerrythe2d avatar-grid-radial-build-colorizebezier-source-converge-mergechip-grid-single-select-blackoutchip-lift-to-user-pilldoc-park-left-pill-dealpicker-carousel-feature-cyclescan-bracket-sweepvertical-word-roll-blur-cycle
x.com/aizal_mp4Willow Voice aurora-bloom-bg-flipglass-pill-dictation-typing
x.com/amirdzm作品 a brace-expandgrain-dissolve
x.com/amirdzm作品 b hatch-depth
x.com/bohdanmotion outline-word-fillword-relay-geometry
x.com/shapelayer dashboard-glow-highlight-pill
x.com/thiswillblossom quad-split-parallel-scenes
x.com/tvnxtyFirecrawl 宣传片) product-card-progressive-assembleresearch-card-stack-scroll
抖音 观机社 logo-shrink-wordmark-lockupwhite-flash-logo-simplify-cut
用户参考图定制brand-scan assemble-then-type-flyinscanline-annotate-focusscanline-assemble-flyin