小Lin说解説パッケージ は何をしますか?
出演口撮りクリップ(A-roll)と台本を、小Lin说スタイルの解説動画にパッケージ化します。出演映像は別のツールで生成または撮影します。このスキルは、パッケージに必要な資料の調査、解説映像、字幕、トランジション、音声を担当します。
環境に design-aesthetic-standard がある場合、ビジュアルと音声の創作判断はそれにも従います。video-generation がある場合、出演クリップの生成と編集はそちらを参照してください。
参考ドキュメント(必要に応じて読み込み)
references/style-bible.md:彼女のグラフィック言語、6つのハードルール、カラーパレット、フォント、ピクチャーインピクチャー、トランジション統計、音声レベル。シーンを計画する前に必ず読むこと。references/research.md:各テンプレートに調査すべき資料、ソース評価、調査先、画像権利。シーン計画時に読む。references/layouts.md:各テンプレートコンポーネントのパラメータ、呼び出し例、落とし穴。ストーリーボード作成時に読む。references/storyboard-api.md:timeline.jsonとproject.jsonの形式、ストーリーボードAPI、キーワードタイミング、レビューとレンダリングコマンド。初めてプロジェクトをセットアップする時に読む。
環境
- Node ≥ 18、ffmpeg、python3(numpy と Pillow)。
npm installと初回レンダリングにはインターネット接続が必要(Remotion が Chrome をダウンロード)。 - macOS(Apple Silicon)でのみテスト済み。その他のOSではデフォルトでソフトウェアレンダリング
swangleを使用。環境変数REMOTION_GLで変更可能。 - フォント:テンプレートには6つのSIL OFLフォントが含まれています。ライセンスは
templates/engine/public/fonts/LICENSES.txtを参照。優設タイトル黒(YouShe.ttf)はパッケージに含まれていない場合があります。new_project.shは$YOUSHE_TTFと一般的なフォントディレクトリを検索します。見つからない場合は、ユーザーに https://www.uisdc.com/uisdc-first-free-font からダウンロードし、public/fonts/YouShe.ttfとして保存するよう促します。このフォントがない場合、タイトルと字幕は 思源黑体 の最も太いウェイト(900)にフォールバックし、斜め切りもなくなり、スタイルが著しく弱まります。 - Remotion ライセンス:個人、3人以下の企業、非営利団体は商用利用を含め無料。4人以上の企業は企業ライセンスを購入する必要があります(https://www.remotion.pro/license)。
ワークフロー
1. 入力準備
- 出演クリップ:各セリフにつき1920×1080のmp4ファイル。
public/clips/<id>.mp4に配置。 - 台本:各セリフに読み上げテキスト
say(漢字表記)と字幕テキストsub。 - ファクトファイル:
templates/facts_template.mdからコピー。既存の事実とソースを先に記入し、不足分はステップ4で調査。 - オプション:実写またはAI画像(
public/broll/)、写真(public/photos/)、音楽(public/music/)、新しいアイコン(public/icons/)。
2. プロジェクト作成
<skill>/scripts/new_project.sh <プロジェクトディレクトリ> # --demo を付けると、4つのダミークリップとサンプルストーリーボードが生成され、スモークテストに使用可能
次に timeline.json を記述。各出演動画をトランスクライブし、tin/tout を決定して、先頭と末尾の無音をカット。途中の言い間違いは cuts に記入。project.json の brand と music を編集。
3. シーン計画(まず表を作成し、次にコードを記述)
style-bible.md と research.md を読んだ後、次の表を作成:シーン名 | カバーするセリフ範囲 | テンプレート | ダークモードかホワイトペーパーか | PIP方式 | 必要な資料。次の5点を確認:
- 1シーンは2~8セリフをカバーし、1セリフ1ページにしない。
- 各シーンで「被写体が切り取られている」または「被写体が画面の60%以上を占める」(R1)ことを確認。
- ダークシーン2~3つごとに1つのホワイトペーパーシーンを挟む(R2)。
- 原文を引用する箇所は
docpageを使用し、原文は一字一句そのままの引用であること。 - 冒頭フック、主張文、転換文、結びはフル画面の出演に割り当て、解説画面で覆い隠さない。
4. 資料調査
シーン表の「必要な資料」列に従い、research.md の方法で項目ごとに調査。各結果をファクトファイルに記録(番号、原文、ソースリンク、日付を含む)。写真は scripts/commons_photo.py で検索およびダウンロード。
調査後にシーン表を修正:一字一句の原文が見つからない場合は docpage を使用しない;同じ口径のデータが揃わない場合は paper を使用しない。台本の数字がファクトファイルと一致しない場合は、先に台本を修正し、その後出演クリップを生成または再編集。
5. ストーリーボード作成
templates/scenes_example.py の書き方をコピー。各シーンで以下を実施:
- 要素の登場をキーワードに合わせる:
S.k('キーワード', -0.15)。 - 現在の項目をハイライトし、その他を暗くする(
focus/hl/lit)。カメラを現在の項目に追従(sc.cam/look)。 KF.append((ラベル, 時刻))を使って、レビュー用のフレームを最低1つ登録。
python3 story_core.py timeline.json scenes.py を実行し、gaps/overlaps [] を確認。
6. キーフレームレビュー(最低2ラウンド)
python3 -c "import json;print(' '.join(str(f) for _,f in json.load(open('keyframes.json'))))" | xargs node render.mjs stills stills/k1
python3 <skill>/scripts/sheet.py stills/k1 keyframes.json 6
生成されたコラージュを1枚ずつ確認し、以下のレビューチェックリストに従って修正。修正後、該当フレームを再レンダリング。彼女の元動画がある場合は、同じテンプレートの元フレームをキャプチャして並べて比較。
7. フル動画、ミキシング、合成、品質チェック
<skill>/scripts/render_chunks.sh video.mp4
python3 <skill>/scripts/mix_audio.py timeline.json mix_raw.wav
<skill>/scripts/finalize.sh video.mp4 mix_raw.wav final.mp4
python3 <skill>/scripts/audit.py video.mp4 72 # 動画フレームと静止フレームをフレームごとに比較。flaggedは0でなければならない
モバイル版:ffmpeg -i final.mp4 -c:v libx264 -crf 23 -preset medium -pix_fmt yuv420p -c:a aac -b:a 128k -movflags +faststart final_phone.mp4。
レビューチェックリスト
各キーフレームで以下を確認:
- 被写体が十分大きいか、または端で切り取られているか。周囲に大きな空白がないこと。
- 現在説明している項目が最も明るく、カメラがその近くにあること。
- 1フレームにラベルは最大2つ。
- 字幕(画面y 905–960)、ピクチャーインピクチャー、局ロゴ、AI生成マークに隠れているものがないこと。
- 文字化け(グリフ欠落)、縦書きになった単語、カードからはみ出た文字がないこと。
- 数字、単位、原文がファクトファイルと一致し、ソース行が存在し、CC BY写真にクレジットがあること。
- ホワイトペーパーシーンとダークシーンが交互に配置されていること。
既知の落とし穴
- キーワードがセリフの先頭にある場合、
S.k(単語, -0.3)がクリップの開始点より早くなる可能性がある。max(S.t0, …)で制限すること。 formula6のトークン列幅はiwと等しい。iwは字数 ×fs以上でなければならない。- 画面x = (ワールドx − カメラx) × s + 960。
piprectは画面x 110–560を占めるため、被写体は ≥ 600 に配置。カメラ位置を変更すると、画面上の被写体位置も変わる。 uiの結果単位はデフォルトで「元/月」。u=で変更。paperカードの下端の画面yは ≤ 900 でなければならない。ent6の国旗はclcndefrjpusのみ。- 画像パスが存在しない場合、該当フレームのレンダリングは失敗する(
FAIL ... Error loading image)。事前にls public/<パス>で確認。 - 静止フレームが正常でも動画が正常とは限らない。フル動画の後は必ず
audit.pyを実行。 - グラデーション立体文字が600pxを超えるとChromeがフリーズする可能性がある。
GTextのレイヤー数とぼかし上限を削除しないこと。
使用制限
- これはスタイル再現ツールです。完成動画には
brand.labelの「AI生成・非本人」表記を残し、削除しないこと。 brand.logoはデフォルトで空。ユーザー自身の局ロゴを設定。「小Lin说」や他の実際のクリエイターの局ロゴを設定して公開しないこと。- 実際のクリエイターの肖像や声を使用して出演映像を生成し、公開しないこと。
- 完成動画を本人の作品として公開したり、視聴者を誤解させないこと。
- 表示するデータ、原文、政策条文はすべてソースまで遡れること。