3D解説動画
完全納品(ユーザーからの追加指示不要): out/<slug>.mp4(ブランドのエンディングで終了)+ thumbs/<slug>-1.png および -2.png + out/<slug>-legenda.txt(出典・ハッシュタグ付き投稿キャプション)。
ユーザーのPC上で npm run explicar を実行すると、すべての成果物がGoogle Driveにコピーされます(G:\My Drive\Scientia\Posts\<日付> · <slug> · <タイトル>\: video.mp4, thumb-1/2.png, legenda.txt, fontes.txt)。
「ドライブが見つかりません」と表示された場合は、スクリプトが出力するマウントコマンドをユーザーに提示してください。
ユーザーはテーマを入力するだけです。自分で判断できることは途中で質問して止まらないでください。
品質リファレンス(ユーザー決定、2026年10月16日):非接触決済カードの動画。
videos/aproximacao/roteiro.json + src/explicativo/videos/Aproximacao.tsx。開始前に両方を読み、references/referencia.md のレシピをコピーしてください。「ルディフィカンド標準」(灰色の背景・棚・ぼかし・多数のフィギュア・80~90秒)で作成された動画は不採用です。それに戻らないでください。
次に、references/ganchos.md(台本の前に)、references/estilo.md + references/biblioteca.md(シーンの前に)を読んでください。references/ludificando.md はアイデアのソースとしてのみ使用し、ルールではありません。
1. 調査(必須)
- 現在の情報(法律、数字、役職、期限)はすべて、今現在Web検索で入手した2つ以上の信頼できるソース(Agência Brasil、Senado/Câmara、IBGE、g1、Folhaなど)に基づきます。記憶から数字を出さないでください。
- 台本の
fontesに出典を記録してください。ソース間で矛盾がある場合は、最も公式なものを使用し、その旨を明記してください。 - 事実と予測/意見(「DIEESEは…と試算」「CNIは…と述べている」)を区別してください。
2. 台本 → videos/<slug>/roteiro.json
「近接」レシピ: 約60秒、7シーン、シーンあたり18~30語(合計約170~190語)、シーンごとに1つのアイデア、論理的な順序で説明(各シーンが次へつながる:「だから…」「そこで…」「もし誰かが…」)。chip = 章の短い名前を大文字で(「エネルギー」「すぐ近く」「もしコピーされたら?」)。
- フック = 強い数字+質問(「4回の買い物のうち3回は…では、電池のないカードがどうやって支払いできるのでしょう?」)。最終シーン = 視聴者が持ち帰る実用的な情報(例:暗証番号なしの限度額)。
- 「両方の側面」と「注意/詐欺」は、テーマがそれを必要とする場合(実際の論争、実際の詐欺)にのみ入れてください。必須ではありません。
- 最初の文 = フック。常に質問(ユーザーのルール)で、視聴者が答えを知りたくなるもので、その中または直後に強い事実を入れます。例:「電池のないカードがどうやって支払いできるのでしょう?」。「こんにちは」は禁止。
- 友達に話すように短い文で。数字は数字で書く(「75票」)。
- 音声が読み間違える可能性があるもの(略語、「6x1」、小数「26,8」)には
pronunciaを使用。 - 最終シーン:クロージング — フックの質問に対する最終的な実用的な情報/答え。 禁止(ユーザーのルール): コメント、いいね、「保存」「フォロー」「〇〇とコメントして送ります…」の呼びかけ — 音声でも画面でも禁止。出典は投稿の説明のみに記載します。最後の台詞の後は、ブランドのエンディング(自動)のみです。
- 6~14語の文。落ち着いて話す(ナレーションは一文ごとで、カンマとピリオドごとにポーズを置く)。
- 台本に
ctaはありません:エンディングではブランドのみ表示されます。 sons:デフォルトで、最初のフレームにインパクト、シーン切り替え時にスウッシュ/ウーッシュ、数字カードに「ポップ」、注釈/ピルに「チック」、エンディングに入るところで上昇音が自動設定されます。背景音楽なし(リファレンスにはありません。「ユーザーがリクエストした場合のみ"musica": "sfx/bed-scientia.mp3"でオンにします)。 キーワードに2~3個のacentosを控えめに記述します:"sons": {"acentos": [{"palavra": "75", "cena": "aprovado", "som": "sfx/ding.wav", "volume": 0.5}、 {"palavra": "desliga", "cena": "liga", "som": "sfx/boom.wav", "volume": 0.5}、 {"palavra": "relógio", "cena": "agora", "som": "sfx/riser.wav", "pico": 1.49, "volume": 0.35}]}。 すぐに使えるサウンドはpublic/sfx/にあります:boom(衝撃)、ding(数字/暴露)、pop(パチッ)、riser(サスペンス、picoを使用)、whoosh/swoosh。palavraはfalaに書かれている単語です(pronunciaではありません)。 任意のサウンドをユーザーのライブラリ(public/soundeffects/catalog.md)のものに交換できます —musica、transicao(リストを交互に)、aparecer、dado、abertura、final;nullでオフ。composicao= コンポーネント名(例:Escala6x1)。marca="SCIENTIA · <短いテーマ>"(チャンネル名はScientia)。voz={ "principal": "masculina", "alternar": "nao" }— 台本にvelocidadeを入れないでください(voz.jsonから来ます。現在は1.08)。post= Instagram/TikTokのキャプション(out/<slug>-legenda.txtになります):{ "gancho": "<強い事実+質問> 📌", "pontos": [3つの短い文、ピリオドなし、数字を含む]、 "fontes": ["Agência Senado", "IBGE", …名前のみ]、 "hashtags": ["tema", "assunto", …最大5つ、#なし] }(#scientiaは自動追加)。動画と同じトーン:視聴者にとって何が変わるか、意見はなし。絵文字は最大1つ。thumb= 動画のサムネイル(ステップ6を参照):{ "titulos": [2つのオプション], "cena": "<背景シーンのID>", "quadro": <シーンのフレーム>, "descer": 330, "zoom": 1.45 }。
3. ナレーション
npm run narrar -- <slug> → public/explicativo/<slug>/narracao.wav + tempos.json(各単語のタイミング、音声そのものから取得)。edge-tts(インターネット接続が必要)によるニューラル音声。インターネットがない場合はローカルのKokoro音声にフォールバック。
チャンネルの音声は voz.json(エンジン、ユーザーが選択した音声、速度)にあります。自分で音声、エンジン、IDを選択または変更しないでください — それはユーザーの好みです。台本の voz フィールドでは以下のみを定義します:
"principal": "masculina"— 常に。承認済みのチャンネル音声はAntonio(Microsoft)で、6x1と非接触決済の動画で使用されています。女性のThalita Multilingualはポルトガルのポルトガル語のように聞こえたため(投票箱の動画)、除外されました。「Multilingual」音声は絶対に使用しないでください。女性音声はユーザーがリクエストした場合のみ使用します。"alternar": "cenas"— シーンが2つの音声を交互に使用します(二重音声)。デフォルト:"nao"。- ユーザーが音声について不満を言った場合:
npm run vozes(Microsoft)/npm run vozes -- elevenとnpm run vozes -- usar <id> feminina|masculinaを表示します。 - 聞き手に合わせて台詞を書きましょう — これが合成音声の抑揚を最も変えます:
- 短い文(6~14語)、息継ぎのためのカンマ、括弧や
pronunciaなしの略語は避ける。 - 2~3シーンごとに修辞疑問(「もう支払った人は?」)— 音声が「?」で上がり、生き生きとする。
- 対比と転換:「ところが…」「しかし注意:」「さらに:」
- 重要な数字は文末に単独で(「75対1で可決。」)または繰り返して(「11日間!」)。
- カンマが多く4つ以上の項目がある長い文は避ける(音声が単調になる)。
- 短い文(6~14語)、息継ぎのためのカンマ、括弧や
- デフォルトのナレーションはリファレンスと同じです:一文ごと、カンマで0.12秒、ピリオドで0.32秒、シーン間で0.45秒のポーズ、Antonio 1.08。ユーザーがリクエストしない限り、
"estilo": "continuo"に変更しないでください。 - より表現力豊かなローカル音声(ユーザーのGPU上のChatterbox)をテストするには:
npm run vozes -- comparar <slug>。
4. シーン → src/explicativo/videos/<Nome>.tsx
Escala6x1.tsxの構造をコピーします:シーンごとに1つのコンポーネント、CENAS_<NOME>、ファイルの最後にexport const VIDEO = { id: "<Nome>", roteiro: roteiro as Roteiro, cenas: CENAS_<NOME> };(import roteiro from "../../../videos/<slug>/roteiro.json"を含む)。ビデオは自動的に登録されます:Composicoes.tsxを編集しないでください(編集するとgit pullで競合が発生します)。- 動画が完了したら、GitHubに保存します:
git add videos/<slug> src/explicativo/videos/<Nome>.tsx+ commit + push(これにより、次回ユーザーがgit pullを実行しても止まりません)。 - ヒーローオブジェクト(端末+カードなど): テーマに沿った1つまたは2つのオブジェクトを、精巧に作り、大きく表示し、ほぼすべてのシーンに登場させます。各シーンでは、その一部/状態(ランプが点灯、画面にコード、キーが出てくるなど)を表示します。フィギュアは脇役としてのみ(シーンあたり0~1体、決して中心になりません)。
- キット(
three/Kit.tsx、ui/Kit.tsx)はオプションです:シーンが必要とする場合にのみ1つのパーツを使用します(例:投票での「Hemiciclo」)。画面をピル/定規で埋め尽くさないでください。 - 各シーンについて、データの視覚的なメタファーを1つ選択します(
references/estilo.mdを参照): 投票 → 座席が点灯;時間 → 消えていくキューブ;人 → フィギュア(1体=X);お金 → コイン/給与明細;期限 → タイムライン上のプレート;ルール/法律 → 紙+チェックリスト。 - 台詞と同期:
w("palavra")はその単語が発声されるフレームを返します。視覚効果はその単語のタイミングで変化します(例:音声が数字を言うときにカードの数字が変わる)。 - カメラ:
cam(pos, look)でシーン中に初期位置から最終位置へ補間(ease(f, 0, dur))。 - 背景:
Stageはすでにダークモード(黒背景、埃)で提供されています — リファレンスと同じです。ユーザーがリクエストしない限り、cenario="estudio"やacabamento(ぼかし/ブルーム)を使用しないでください。 - カメラ:オブジェクトから6~8の距離、y≈1を見る;シーン内で10~15%スローにズームイン(Aproximacao.tsxのように)。
- フレーミング:メインオブジェクトは幅の40~70%を占めます。絶対に空のフレーム、微小なオブジェクト(細い線)、または参照なしで画面全体を占めるブロックは避けてください。常に人間の参照(隣のフィギュア)または既知のオブジェクトでスケーリングします。
- テーマのオブジェクトは単純な形状で構築します(本=薄い箱、金庫=箱+円柱、スマホ=丸みを帯びた箱+暗い画面、天秤=円柱)— 具体的なコンテキストは抽象的なブロックよりも魅力的です。
- コンテンツは画面の中央ゾーン(y≈450~1250 px)に配置します。上部=ブランド/チップ/カード;1300以上=キャプションとTikTokボタン。右端(アプリアイコン)には重要なものを置かないでください。
- 数字の出典は
Calloutに記述します(sub="出典:…")。
5. フレームの確認
npm run quadros -- <slug> → out/quadros/<slug>/grade.jpg(各シーンの最後のフレームを1つ)。
グリッドを確認します。確認事項:キャプションの後ろで何も切れたり隠れたりしていないか;テキストが読めるか;メインオブジェクトが十分に大きいか;カード/チップに何も重なっていないか;ビジュアルが台詞と一致しているか。カメラ/スケールを調整して繰り返します。
6. サムネイル(表紙)
thumb.titulos に2つのタイトルを書きます(行は \n で区切り、強調は *アスタリスク* で囲みます):
- 3行、各行最大約16文字;最後の行は強調表示された質問/好奇心。
- 1つは事実/強い数字(「75対1。」)、もう1つは視聴者が抱く質問(「いつ変わる?」)。
- 真実であること:動画が示さないことを約束しないでください。
- 背景:最も美しく/読みやすいシーン(すでに構築されている
cena+quadro)。npm run thumb -- <slug>→thumbs/<slug>-1.png、-2.png。納品前に両方を確認します。
7. レンダリングと納品
npm run explicar -- <slug> → out/<slug>.mp4 + サムネイル(3DレンダリングはGPUなし:Codespaceでは動画1分あたり約6~10分)。最終的なmp4の3~4フレームを確認し、音声の終わりをチェックし、出典と共に納品します。
ユーザーに以下を提示します:動画、2つのサムネイル(どちらを投稿するかとその理由を伝える)、および out/<slug>-legenda.txt のキャプションをコピー可能な状態で貼り付けます。意見を求め、それを notas-do-editor.md(「解説動画」セクション)に記録します。