1仕組みと動作原理
2つのハードルールは「美的センスではなくプラットフォームの制約」として明確に定義されている:イントロは厳密に3〜5秒、ロゴ視認可能タイミングは1〜2秒とし、これを超えると実測で維持率が低下する。
1. **Keep the intro 3-5s, the logo hit 1-2s.** Anything longer than 5s causes measurable viewer drop-off, which hurts the video in the algorithm.
2つ目のハードルールもプラットフォームの仕様に起因する:終了画面要素は末尾5〜20秒の間のみ配置可能であり、動画の総尺は25秒以上でなければならない。
YouTube only allows end-screen elements in the final 5-20s, and the video must be at least 25 seconds long.
ロゴジングルは windup → impact → settle の3拍に分解され、ブランドロゴが音声の最も強いトランジェントのフレームと正確に一致することが求められる。
The brand mark must land exactly on the sound's impact frame, not near it.
スナップ演出は、spring が 1.18 から 1 へオーバーシュートする動きと、6フレームの白フラッシュ減衰を組み合わせて作成される。
`spring` overshooting from 1.18→1 *is* the snap; the white `flash` decaying over 6 frames sells the impact.
アウトロのレイアウトは二分割法を核心とする:YouTubeのクリック要素が右側3分の2を占有し、自社ブランドは左側3分の1のみに配置可能。
YouTube's clickable elements live on the **right two thirds**; keep your own branding, channel name, and any face-cam in the **left third**.
要素のネイティブサイズは固定値(登録サークル 294×294、次のおすすめ動画カード 615×345)とし、レイアウト内に点線のプレースホルダー枠を描画する。
| Next-video card (thumbnail) | 615×345 | upper-right or center-right |
ガイド枠はプレビュービルドのみに表示し、最終出力では必ず削除して右側を意図的な空白とする。
Ship the dashed guides only in a preview build; the final render drops them, leaving a clean plate whose right side is intentionally quiet.
2つのコンポジションは共通の brand prop(name/logo/sting/bg/fg/accent)を使用し、ブランド固有の情報を一切ハードコードしない。
Both compositions read a single `brand` prop — no hardcoded names, colors, logos, or audio.
検証では impact フレーム(ロゴがフルサイズ表示+白フラッシュ減衰中)を個別に検査し、最終成果物から点線ガイド枠が削除されていることを確認する必要がある。
Verify the **impact frame** explicitly (logo snapped to full, white flash decaying) — the sting must land *on* it, not near it.
2コア機能
3外部依存関係
| Kind | Dependency / Endpoint |
|---|---|
| cli | npx remotion still / render / compositions |
| cli | scripts/contact-sheet.sh + scripts/probe-mp4.sh(仓库根共享验证工具箱,SKILL.md 明列) |
| cli | 批量循环:`for f in brands/*.json` + basename 派生输出名(reference §7) |
| package | ffmpeg / ffprobe(系统依赖) |
4推奨統制措置と判定根拠
- scripts/: ローカルスクリプトまたはコマンドの実行: (SKILL.md に明記された検証ループ)`npx remotion still Intro out/i-{windup,impact,settle}.pn
- 网络端点: 外部ネットワークアクセスの宣言: `npx remotion …`: 初回実行時に公式npmレジストリ経由でパッケージおよびCLIを取得(registry.npmjs.org、ドメインはnpmに依存、ソースコード内へのハードコードなし)
- 本地工作目录: ファイルの読み書きと成果物の出力: 本スキルに基づいてエージェントが構築するRemotionプロジェクトおよび out/intro.mp4、out/outro.mp4(一括処理時は out/<brand>
5二重目の独立検証
- [ok] 平台时间常数在 SKILL.md 与 reference 是否一致(防一手数据两处不同) — SKILL.md:intro 3-5s、logo hit 1-2s、end-screen 只允许最后 5-20s、视频 ≥25s、outro plate 保持 ~20s;reference 表:"logo hit 1-2s"、"Whole intro | 3-5s max"、"End-screen window | last 5-20s"、"Outro plate hold | ~20s"、"Minimum total video length | 25s"。两处逐值对应,无矛盾。
- [ok] 元素尺寸与数量上限是否两处一致 — SKILL.md 给 Subscribe/channel circle 294×294、Next-video card 615×345、Playlist/link card 294×294,并在输出清单写「Up to 4 end-screen elements planned (1 video + 1 subscribe is the highest-CTR layout)」;reference 元素表同值(615×345 / 294×294 / 294×294)并写 "| Max elements | 4 | highest CTR layout = **1 video card + subscribe**, nothing else |"。一致。
- [discrepancy] Shorts(9:16)场景的覆盖是否存在缺口(第一遍只读 SKILL.md 会漏) — SKILL.md 的硬规则 2 是无条件表述:「The outro must be ≥20s of held, quiet layout, and the video ≥25s total.」并未提 Shorts 例外;而 reference §1 明确写 "for Shorts use a 2-3s end card and a verbal CTA instead of native end-screen elements (Shorts do not support them)",§5 另设「9:16 (Shorts) note」。结论:只读 SKILL.md 的 agent 可能给一条 45 秒的 Short 设计 20 秒 outro,直接吃掉整片——这是对 pin commit 有效的真实覆盖缺口(信息存在于 reference,未上提到 SKILL.md 的硬规则)。
- [unlocatable] 「Anything longer than 5s causes measurable viewer drop-off」是否有据 — SKILL.md 与 reference 都以肯定语气给出留存影响("retention drops measurably"),但仓库内无引用来源、无数据集、无链接;本次为只读侦查,不验证该断言,仅记为文档声明。平台机制部分(5-20s 窗口、≥25s 门槛)属 YouTube 公开规则,可信度高但仍未附官方链接。
- [ok] brand prop 是否真的无任何硬编码(防「模板化」空口宣称) — SKILL.md 的 LogoSting 与 EndScreen 组件里,颜色/字体/logo/sting 全部取自 `brand.bg` / `brand.fg` / `brand.accent` / `brand.logo` / `brand.sting`(仅字体族在示例里写 "700 56px Inter" 这类样式串);reference §7 定义 Brand 类型与 brands/pixelforge.json 示例,并强调 "Keep fonts, sizes, timing, and layout fixed in the components — only `brand.json` changes." 与 SKILL.md 的宣称一致。
- [ok] impact 帧对齐方法是否可操作(而非只喊「要对齐」) — reference §4 给出四步:「Open the sting in any waveform view… The impact is the tallest transient」「Read its time in seconds, e.g. 0.78s」「Set `IMPACT = Math.round(0.78 * fps)` and make the logo's `opacity`/`scale` snap key fall on that frame.」「If you can't move code, instead trim the audio so its transient sits at your fixed `IMPACT` (e.g. 0.8s)」。方法具体、可执行,且给了代码侧与音频侧两种收敛方向。
- [ok] 验收与交付是否覆盖「guides 不得进成片」 — SKILL.md 写 "Ship the dashed guides only in a preview build; the final render drops them",verify 段亦要求 "Drop the dashed end-screen guides for the final render; verify the right two-thirds is intentionally quiet.";reference §6 用 prop 开关实现同一组件的两种输出。纪律 + 机制 + 验收三处齐备(但仍是纪律而非强制渲染开关)。
6結論
9f3a594d22ab4694…