1仕組みと動作原理
カラーパレットは主観的な議論を数量的規律で代替する:主色1 + 強調色1 + ニュートラル2〜3。コントラストと階層は色相の乱立ではなく明度/彩度で構成する。
Limit hues. A strong motion palette is **1 primary + 1 accent + 2-3 neutrals**.
補間は必ず知覚的均等色空間(OKLCH/OKLab/Lab)で行う——sRGBの線形補間は中間点がグレー/濁りに沈む。
Linearly interpolating two colors in sRGB passes through a desaturated, often gray or muddy midpoint (blue->yellow goes through gray; blue->red through muddy purple).
「高級感」のあるグラデーションはインスピレーションではなく配合式:複数放射グラデーションの重ね合わせ + ノイズ粒子 + 8〜20秒の低速ドリフト。
- **Animate slowly**: drift gradient positions over 8-20s with `ease-in-out alternate`. Slow is premium; fast gradient motion looks like a screensaver.
色が瞬間的に変化せず滑らかにトゥイーンするには、@property による登録が必須(未登録のCSSカスタムプロパティは離散的な急激変化となる)。
`@property` registration is what makes the color actually interpolate (unregistered custom properties jump instantly).
カラーグレーディングは順序が重要:露出/ホワイトバランス → コントラスト → 中間調/彩度 → スプリットトーニング → 全体統一。順序が変われば結果も変わる。
Apply grading operations in this order; reordering changes the result:
レンダーのカラーマネジメントは「プレビューは正常だが書き出しが薄い/白茶ける」原因を、映像素材ではなく4段階のガンマ不整合(作業スペース、埋め込みタグ、プレイヤーの解釈、システムディスプレイ)に帰属させる。
the cause is a gamma/transfer mismatch across four stages — AE working space, the render's embedded tag, the player's interpretation, and the display/OS gamma — not the artwork.
検収環境としてQuickTimeを避ける:Chrome/Premiere/Resolveを正とする。
**Never grade or approve to QuickTime** — Chrome, Premiere, or Resolve is the correct reference for web delivery.
納品ループは「単一HTMLファイル + 静止フレームスクリーンショット」:?t=N の負の遅延でアニメーションを指定秒に固定し、フレーム単位でバンディングや中間点の濁りを検証して反復修正する。
**Verify loop — render → freeze → screenshot → check:**
2コア機能
3外部依存関係
| Kind | Dependency / Endpoint |
|---|---|
| cli | npx playwright screenshot(冻结帧截图,验收回路唯一命令) |
| cli | 打包助手 scripts/seek-shot.sh 与 scripts/contact-sheet.sh(仓库根,不在本 skill 目录;内部同样走 playwright 截帧 + ffmpeg 拼图) |
| package | culori(感知插值示例与色相路径控制) |
| package | d3-interpolate / d3-scale-chromatic(Lab/HCL 插值与色阶量化) |
| network | 交付 HTML 的可选 CDN 引用(仅当需要 JS 插值库时才引;属产物期由浏览器加载) |
| cli | ffprobe / ffmpeg(校验内嵌色彩标签 color_primaries / color_transfer / color_space) |
4推奨統制措置と判定根拠
- scripts/: ローカルスクリプトまたはコマンドの実行: npx playwright screenshot --wait-for-timeout=500 "file://$PWD/color.html?t=
- 网络端点: 外部ネットワークアクセスの宣言: npx パッケージ解決:playwright が未インストールの場合は npm registry から playwright パッケージを取得(初回は Chromium バイナリもダウンロード)
- 本地工作目录: ファイル読み書きおよび成果物出力: frame-mid.png / frame-0.png などのスクリーンショットファイルがカレント作業ディレクトリに書き込まれる(playwright による出力であり、skill コードによるものではない)。
5二重目の独立検証
- [ok] npx playwright 是否真的写在 SKILL.md(橙档关键证据) — SKILL.md 的 Verify loop 步骤 4 之后给出该命令原文(含 --wait-for-timeout=500 与 file://$PWD/color.html?t=8);同段第 3 步要求检查 banding 与浑浊中点。命令是验收回路的组成部分,不是可选项。
- [discrepancy] 正文引用的 scripts/ 助手是否随本 skill 目录分发 — SKILL.md 写「**Packaged helper** (`scripts/`)」,但 pin 目录下 skills/color-motion/ 只有 SKILL.md、references/、0 字节 README —— `scripts/` 实际在**仓库根**(scripts/README.md 自述为 verify-loop toolkit)。因此只装单个 skill 目录的镜像包里该引用悬空;同名写法也出现在 logo-animation、motion-background、remotion-video。对 pin commit 有效,属真实出入。
- [ok] 是否有其他隐藏的执行路径(下载/接口调用) — 全目录搜 curl/wget/fetch/XMLHttpRequest/api/child_process/process.env:零命中;唯一网络相关字符串是 npx 与交付 HTML 的 CDN 说明。
- [ok] culori / d3-interpolate 是否只是代码示例而非被执行的依赖 — 两处 import 均在 references/palettes-and-interpolation.md 的 Perceptual interpolation in code 小节内,作为给实现者抄的片段;skill 无 package.json、无安装步骤、不解析这些模块。
- [unlocatable] 颜色管理结论(QuickTime gamma、四段链路)是否可在源码内验证 — 这些是有明确立场的技术断言,但 pin 仓库内没有引用来源、没有测量脚本或样本文件;本次只读侦查也不运行渲染。文中给出的自证方法(50% 灰补丁回读、ffprobe 查 tag)用户可自行复现,故不视为空口断言,但数值本身未在本次核对。
- [ok] iart.ai 链接的性质 — reference 页脚为署名/营销链接(utm_source=github&utm_content=skill_footer),无跟踪脚本、不参与执行。
6結論
cb1e39e4a0e5b855…