Devlog 與高留存率 Shorts 編輯技能(81 部影片逐幀取證版)
一套完整的生產手冊與 Python/OpenCV/PIL 60fps 逐幀合成系統,用於製作病毒式傳播的 YouTube Shorts、TikTok 開發日誌與遊戲宣傳影片。衍生自對 Vedinad(全部 28 部 Shorts + 2 部長片)、Danidev(15 部開發日誌、Dani2 影片與 DaniClips shorts)、Wishbone Games(10 部 Shorts 與開發日誌)、c dev(14 部 Shorts 與開發日誌)、SSundee(5 部開場鉤子)以及 7 部參考 Shorts(tt_wynge, ref5, story_video, speed_main, speed_rivals, speed_toh, speed_flop)等共 81 部影片 的逐幀取證分析。
1. 七條不可妥協的法則(源自逐幀證據)
-
禁止使用持久頂部標題橫幅:
- 絕對不要在影片頂部固定一個寬廣的靜態矩形標題橫幅。在所有 15 部 Danidev 影片、10 部 Wishbone 影片、14 部 c dev 影片、5 部 SSundee 影片以及 7 部參考 Shorts(
tt_wynge,ref5,story_video,speed_*)中,沒有任何一部使用持久頂部標題橫幅。 - 即使在 Vedinad 的 Shorts 中,許多(如
PvmyoTRTKho,qEOSXthsSUU等)完全沒有頂部文字,或是使用一個緊湊、暫時性的原生 TikTok 文字貼紙,該貼紙會隨著幕次消失或變化(0–4s鉤子 -> 在 B-roll 期間消失 -> 暫時性的"Wait for it..."-> 消失)。絕對不要用永久橫幅遮蓋頂部的遊戲 HUD。
- 絕對不要在影片頂部固定一個寬廣的靜態矩形標題橫幅。在所有 15 部 Danidev 影片、10 部 Wishbone 影片、14 部 c dev 影片、5 部 SSundee 影片以及 7 部參考 Shorts(
-
真正的逐幀鉤子架構(0.00 秒 – 2.50 秒):
- 原型 A — 在乾淨網格或模糊背景上的逐字動畫評論/Discord 卡片(Vedinad / Dani / c dev):
- 開場於一個乾淨的對角線滾動藍色瓷磚網格(
#1A66CC至#2B82F6)、深色石板網格(#12131A)或高度模糊的遊戲畫面(GaussianBlur(25))。 - 一張 3D 傾斜的 YouTube 評論卡片或深色 Discord 訊息(
#313338)以1.0x比例(-3.5°至-5°傾斜)開始。當評論文字逐字打字出現,並與配音同步時(0.00 秒–1.60 秒),虛擬攝影機放大(1.0x -> 2.0x)並水平從左向右平移,追蹤每個單詞。 - 在
1.60 秒–2.10 秒,攝影機快速縮回至1.0x(傾斜翻轉至+3.5°),同時出現 1–2 個單詞的解說者反應("UH OH","OKAY..","BRO...","CHALLENGE ACCEPTED"),並在2.00 秒–2.50 秒透過硬切完全消失。
- 開場於一個乾淨的對角線滾動藍色瓷磚網格(
- 原型 B — 高衝擊動態圖形 / 計數器重擊鉤子(
tt_wynge/c devrcS9EkA_pco/Wishbone):- 立即以全螢幕 3D 傾斜 UI 卡片、逐漸減少的狀態條(
$8,356 -> $0或0 -> 278,824)、或一個字的螢幕中央霓虹光重擊("This" -> "Roblox" -> "Game")開場,並伴隨 RGB 色差與螢幕震動。
- 立即以全螢幕 3D 傾斜 UI 卡片、逐漸減少的狀態條(
- 原型 A — 在乾淨網格或模糊背景上的逐字動畫評論/Discord 卡片(Vedinad / Dani / c dev):
-
媒體切換與 B-Roll 插頁(每 1.0 秒 – 1.7 秒,每分鐘 35–55 次切換):
- 即使有縮放剪輯,純遊戲畫面如果沒有被全螢幕圖形模式中斷,會導致觀眾疲勞。每 4–6 秒的緊湊遊戲畫面之後,必須穿插以下 5 種標誌性開發日誌插頁之一(持續
0.6 秒–1.8 秒):- 黑幕面無表情文字重擊(
#000000): 純黑背景,中央文字重擊出現("but it gets WORSE","IT GETS EVEN CRAZIER","SO YEAH","WAIT FOR IT...",或小寫面無表情的"rip bean")。 - 黑幕編號開發檢查清單: 在純黑背景上逐項打出 3–4 項清單(
"1. build emotion factory","2. hire grumpy workers","3. 10x lightning storm","4. profit??")。 - 3D 透視傾斜程式碼 / Studio Inspector 卡片: 一張以 3D 透視(
cv2.warpPerspective)傾斜的深色 IDE(#0D1117)或 Inspector 卡片,顯示帶有語法高亮的搞笑程式碼(cube.Value *= 10; // balanced lol)或加速打字(400%–800%)。 - 動畫數字計數器 / 倍數卡片: 一張深色模糊卡片,一個巨大計數器快速向上跳動(
1x -> 10x -> 1,000x或$0 -> $1,000,000,000),並帶有發光的進度條。 - 堆疊稀有度 / 階梯卡片: 垂直堆疊的顏色編碼水平藥丸欄位(
HAPPY $5->GRUMPY $75->RAGE $400->SHOCKED 10x->ASCENDED $10,000),依序彈出。
- 黑幕面無表情文字重擊(
- 即使有縮放剪輯,純遊戲畫面如果沒有被全螢幕圖形模式中斷,會導致觀眾疲勞。每 4–6 秒的緊湊遊戲畫面之後,必須穿插以下 5 種標誌性開發日誌插頁之一(持續
-
乾淨、緊湊的遊戲畫面裁切(零雜亂選單):
- 將 16:9 遊戲畫面裁切為 9:16(
1080x1920)時,絕對不要包含意外的設定彈出視窗、存檔對話框或難以閱讀的小側邊欄。 - 緊密裁切(
縮放 1.35 倍–1.85 倍)到活動焦點上:角色、輸送帶物品、物理碰撞、Boss 雷射或漂浮的傷害/金錢數字。使用微妙的頂部/底部暗色漸層暈影(透明度 0.0 -> 0.55),以使動態文字獲得 100% 的對比度。
- 將 16:9 遊戲畫面裁切為 9:16(
-
巨大高對比動態文字(
95pt – 160pt):- 絕對不要使用埋藏在螢幕底部的小字體
50pt–60pt字幕。 - 標準遊戲畫面位置: 下方中間安全區域(
Y = 1280 至 1380,距頂部67%–72%)— 乾淨地位於中央角色動作下方,且遠高於底部 UI 欄位(Y > 1550)。 - 全螢幕卡片 / 重擊位置: 正中央(
Y = 860 至 980,距頂部45%–51%)。 - 樣式: 厚重幾何無襯線字體(
Segoe UI Black,Montserrat Black,Arial Black),全大寫,最多 1 到 3 個單詞(或 2 行堆疊複合重擊,如"EMOTION\nTYCOON","10X SHOCK\nVALUE"),12px–16px實心#000000描邊 + 深色投影 + 可選彩色霓虹外光暈(紅色,金色,霓虹綠,青色)。 - 彈簧與模糊進入: 每個單詞片段以 4 幀的彈簧超調(
70% -> 116% -> 100%)彈入,並在快速過渡時可選 1 幀的水平方向動態模糊。
- 絕對不要使用埋藏在螢幕底部的小字體
-
清脆、自然的瀏覽器配音(零機器人 Edge-TTS):
- 絕對不要使用平淡、金屬感的 CLI 合成器(
edge-tts或 OS SAPI)。 - 透過整合的 Chromium 瀏覽器(使用 Playwright) 生成配音,利用富有表現力的神經語音引擎(例如,當無阻礙時,使用自訂語音表演提示的
https://www.openai.fm或瀏覽器 ElevenLabs),然後執行purge_silence.py以移除所有> 80ms的停頓,並使用 Whisper(words.py)提取精確的逐字時間戳。
- 絕對不要使用平淡、金屬感的 CLI 合成器(
-
無縫無限循環(口語 + 視覺):
- 影片的最後
1.0 秒絕對不能淡出或說 "Thanks for watching, subscribe!"。相反地,應以一個突兀的喜劇式剪接或不完整的語法子句("...which is why people keep saying...")結束,該子句直接銜接回第 0 幀("...you CAN'T make a factory that farms literal emotions!")。
- 影片的最後
2. 端到端生產流程
步驟 1:瀏覽器配音生成與逐字時間戳記
- 撰寫一個緊湊的 30–38 秒腳本(95 到 125 個單詞,每分鐘 185–210 個單詞),結構化為 5 個快速幕次,並以無限循環結尾。
- 透過 Playwright Chrome(
scripts/generate_browser_tts.py)生成清脆、富有表現力的音訊,移除> 80ms的空白音訊(scripts/purge_silence.py),並使用words.py提取精確的逐字時間戳。
步驟 2:逐幀 60fps OpenCV + PIL 合成器
不要依賴靜態的 FFmpeg 疊加濾鏡,而是使用逐幀 Python 合成器(cv2 + PIL + numpy)以 1080x1920 @ 60fps 渲染影片,該合成器計算精確的逐幀動畫數學(ease_out_back, ease_in_out_cubic、3D 透視扭曲、攝影機震動、RGB 故障分裂與粒子疊加):
- 0.00 秒 – 2.20 秒(第一幕 — 評論縮放鉤子): 動畫藍色/深色網格背景 + 3D 傾斜評論卡片逐字打字,同時縮放
1.0x -> 1.85x並在文字間平移,在解說者反應時快速縮回。 - 2.20 秒 – 8.50 秒(第二幕 — 前提與核心循環): 緊湊的平移與掃視遊戲畫面剪輯(每個
1.1 秒–1.5 秒),交錯插入3D 傾斜的 Luau/C# 腳本卡片與黑幕編號開發檢查清單。 - 8.50 秒 – 21.0 秒(第三幕 — 機制升級與協同效應): 快速展示升級/工人/協同效應的遊戲畫面,穿插黑幕面無表情重擊(
"BUT IT GETS WORSE")與5 層堆疊稀有度/情緒階梯卡片。 - 21.0 秒 – 31.0 秒(第四幕 — 天氣/Boss 高潮與動畫計數器): 高強度事件遊戲畫面(例如,雷暴 10x 閃電打擊、血月深紅方塊、液壓壓縮機),搭配跳動的倍數/金錢計數器卡片(
$1 -> $1,000,000,000)與全螢幕衝擊閃光。 - 31.0 秒 – 34.5 秒(第五幕 — 行動呼籲與無縫循環結尾): 清晰的遊戲標題/遊玩行動呼籲卡片,在句子中間轉換回第 0 幀。
步驟 3:超壓縮音訊混音(-14 LUFS, LRA 3.1 LU)
將經過靜音移除的配音(0 dB)與經過閃避處理的歡快背景音樂(配音下方 -20 dB)以及真實的免版稅音效(Pixabay / MyInstants / Kenney — 絕不使用 AI 生成的噪音)混合:
- 鍵盤打字點擊聲,與鉤子評論卡片和檢查清單卡片上出現的每個單詞同步。
- 清脆的颼颼聲,每次攝影機推近和 3D 卡片翻轉時使用。
- 爆裂聲 / 木頭點擊聲,關鍵字字幕出現時使用。
- 低音轟鳴 / Vine 轟鳴,黑幕面無表情重擊與高潮揭露時使用。
- 金錢叮噹聲 / 雷聲,計數器完成與倍數命中時使用。
3. 詳細取證參考手冊
- 創作者分析與 81 部影片取證檔案: 從所有 30 部 Vedinad 影片、15 部 Danidev 影片、10 部 Wishbone Games 影片、14 部 c dev 影片、5 部 SSundee 影片和 7 部參考 Shorts 中提煉出的每位創作者專屬規則。
- 鉤子架構與留存循環: Vedinad/Dani 評論縮放鉤子、
tt_wynge/c dev動態圖形鉤子以及無限循環腳本的精確逐幀數學。 - 動態字幕與排版規範: 字體大小(
95pt–160pt)、1–2 行堆疊、彈簧超調曲線、方向性模糊拖尾以及語義光暈/顏色調色盤。 - 節奏、插頁與 B-Roll 工程: 所有 81 部影片的平均鏡頭長度指標、黑幕文字重擊、3D 傾斜程式碼卡片、稀有度階梯以及 9:16 平移與掃視取景規則。
- 音效設計、瀏覽器 TTS 與音訊母帶處理: Playwright 瀏覽器 TTS 生成、靜音移除、音效同步圖譜以及
-14 LUFS母帶處理鏈。
4. 品質關卡與視覺驗證檢查清單
在交付任何已渲染的 Short 之前,生成一份 60 幀的連環圖 + 24 幀 4fps 的鉤子圖,並使用 view_file 檢查以下項目:
- 無持久頂部標題橫幅: 確認影片頂部沒有永久固定的白色/黑色橫幅。
- 第 0–60 幀鉤子運動: 開場的評論卡片或動態圖形鉤子是否在
0.0 秒–2.2 秒內逐字打字並縮放/平移,然後完全消失? - 乾淨的遊戲畫面裁切: 100% 的遊戲畫面鏡頭是否都沒有意外的
SETTINGS、SAVES或雜亂的選單彈出視窗? - 視覺媒體多樣性: 影片是否至少每 4–6 秒在緊湊遊戲畫面與全螢幕圖形插頁(黑幕重擊、3D 程式碼卡片、動畫計數器、階梯卡片)之間切換?
- 超大易讀文字: 字幕是否為
95pt–150pt,帶有粗黑色輪廓/光暈,乾淨地定位在安全區域(Y = 1280–1380或圖形卡片中央的Y = 880–960),且不與底部 UI 按鈕重疊? - 配音清脆度: 配音是否透過瀏覽器神經 TTS(而非機械式的 CLI
edge-tts)生成,並且所有> 80ms的停頓都已移除?