プレミアムビデオスキル — v3.3 (アンカーグリッド+サウンド) は何をしますか?
音声スクリプトを高品質なHyperFramesショート動画に変換するシニアエージェントオーケストレーションスキル。以下の機能を備えています。
- アンカーグリッド (キッカー → ヒーロー → ボディ → チップ → プレゼンター、下部固定)
- キネティックタイポグラフィ (単語ごとの段階的アニメーション)
- SVGアニメーション (可動要素を含む技術図)
- ガラスモーフィズム証拠カード + ローワーサード + エンドスクリーン
- モーションブラー ワイプ トランジション
- 完全なサウンドシステム (SFX合成、キューテーブル、オーディオミキシング)
- デザイン契約検証 (prepare.py ゲート)
- 再現可能なパイプライン (scenes.sh → prepare.py → build_index.py)
パイプライン (順序は変更不可)
音声スクリプト
│
▼
generate.py → new_scene.py → prepare.py → build_index.py
(パース) (シーンファイル) (検証) (ルートHTML + ワイプ)
│ │
▼ ▼
npx hyperframes lint → npx hyperframes render
(エラー0ゲート) (MP4出力)
│
▼
python3 scripts/gen_sfx.py # SFX合成 (1回のみ)
python3 scripts/mix_audio.py # VO + キュー + ベッド → master.wav
ffmpeg マルチプレクス → final.mp4
ステップごと
# 1. 音声スクリプトからシーン構成 + ルートHTMLを生成
python3 generate.py --script my_script.txt --topic Tor --output index.html
# 2. 検証ゲート (コントラスト、タイプ、セーフゾーン、フィールドリズム)
python3 scripts/prepare.py
# 3. リント (エラー0必須)
npx hyperframes lint
# 4. プレビューとレンダリング
npx hyperframes preview
npx hyperframes render
# 5. オーディオパイプライン
python3 scripts/gen_sfx.py # 14個のSFXをスクラッチ合成
python3 scripts/mix_audio.py # VO + キュー + ベッド → master.wav
ffmpeg -i rendered.mp4 -i renders/master.wav \
-c:v copy -c:a aac -shortest final.mp4
アンカーグリッド (下部固定、不変)
すべてのシーンで同じ下半分を使用 — 上半分のみが再構成されます。
| アンカー | 要素 | 位置 | アニメーション |
|---|---|---|---|
| 1 | キッカー | 左上 | y:-26からスライドアップ、フェードイン0.32秒 |
| 2 | ヒーロー | 上部帯 (1〜3語) | スケール1.3→1、ドリフト44px→0、ゆっくり上方ドリフト |
| 3 | ボディ | カード/オドメーター/行 | 56px→0にスライドアップ、スケール.95→1 |
| 4 | チップ | 下部領域 (3〜6語) | 30px→0にスライドアップ、フェードイン0.26秒 |
| 5 | プレゼンター | 右下、フレームで切り抜き | スケール.92→1、y:46→0、フェードイン0.34秒 |
フレーム0はポスター — シーン1 (data-cover="1") が完全に構成された状態で開きます。
6色フィールドサイクル
隣接する2つのシーンが同じ背景フィールドになることはありません。
アクセント → グラウンド → インク → セカンダリ → ターシャリ → クォータナリ
prepare.py は連続する2つのシーンが同じフィールドを共有するとビルドを失敗させます。
すべてのテキスト/背景ペアはWCAG ≥ 4.5:1のコントラストを満たします。
サウンドシステム
SFX合成 (ダウンロード不要、ライセンス不要)
python3 scripts/gen_sfx.py で14個の効果音を作成:
| SFX | 用途 |
|---|---|
pop.wav | すべてのシーンカット |
click.wav / key.wav | UI要素、リストの点滅 |
chime.wav | 表示/スコア |
ping.wav | 通知 |
notify.wav | CTA |
riser.wav | カット前の大きな展開 |
impact.wav | 強い視覚的インパクト |
whoosh.wav | 素早い動き |
error.wav | 誤り/拒否 |
キューテーブル — assets/sfx/cues.json
セクション相対オフセット (VOの再録音にも耐える):
{ "at": "scenes", "file": "pop.wav", "gain": 0.5 }
{ "at": "vo2-0.30", "file": "riser.wav", "gain": 0.3 }
{ "at": "vo9+0.55", "file": "notify.wav", "gain": 0.4 }
オーディオミキシング — scripts/mix_audio.py
- VO + SFXキュー + ミュージックベッド →
renders/master.wav ebur128でラウドネス測定、−14 LUFSに補正- トゥルーピーク ≤ −1 dBTP
alimiterをlevel=falseで使用 (自動レベル補正の落とし穴回避)- ベッド音量0.15 → −29 LUFS (−16 LUFSのVOに対して約13 LU低い)
- サイドチェインダッキングなし — レベル差がダッキングの代わり
技術トピック (自動アニメーション + 証拠)
スクリプトに認識されたキーワードが含まれると、オーケストレータが以下を挿入します:
| コンポーネント | 処理 |
|---|---|
| SVG図 | animateMotion付き可動要素 + ノードリンクフロー |
| 証拠オーバーレイ | ソースバッジ付きガラスモーフィズムカード |
| トランジション | アニメーション前のモーションブラーワイプ |
| オーディオキュー | アニメーション開始時に「whoosh」SFX |
認識されるキーワード: tor, onion, vpn, proxy, isp, relay, network, packet, encryption, cybersecurity, dns, cdn, blockchain, ai, machine learning, その他。
入力スクリプト形式
プレーンテキスト (自動タイミング ~145 wpm)
Same resume everywhere? That's why you're rejected.
Tailor it per company.
Read the **job description**.
One resume does not fit every company. Customize and get shortlisted.
タイムスタンプ付きセグメント
[0-4s] Same resume everywhere? That's why you're rejected.
[4-10s] Tailor it per company.
[10-14s] Read the **job description**.
強調: **単語** → 右揃え、ブランドカラー、ウェイト950、ポップアニメーション。
ファイル
| ファイル | 目的 |
|---|---|
generate.py | CLIエントリポイント |
orchestrator.py | パイプライン: パース → 検出 → 分解 → シーン生成 → ルート構築 |
design_system.py | デザイントークン、整列ルール、検証 |
PARAMS.json | 編集する唯一のデザインファイル |
scripts/prepare.py | 検証ゲート + トークン注入 |
scripts/new_scene.py | アンカーグリッドシーン構成ジェネレータ |
scripts/build_index.py | 連続タイミング + アダプティブワイプ付きルートHTML |
scripts/gen_sfx.py | スクラッチからのSFX合成 |
scripts/mix_audio.py | VO + キュー + ベッド → master.wav |
assets/sfx/cues.json | セクション相対キューテーブル |
scenes.sh | 再現可能なシーンリストテンプレート |
compositions/_scene-base.html.tmpl | アンカーグリッドスケルトン |
compositions/wipe.html | モーションブラートランジション |
skill.md · skill.json | ドキュメント + スキーマ |
要件
- Python 3 (標準ライブラリ)
- HyperFrames CLI:
npx hyperframes init / preview / render / lint - Node.js ≥ 22、FFmpeg
- ffprobe (オーディオ測定用)
ライセンス
MIT — 自由にビルド、共有、動画販売が可能。