Erko AI 動畫影片製作引擎 (erko-ai-video-engine)
此技能提供完整且經過實戰考驗的管線、素材、字型、角色骨架、富表情的 AI 助手 (Clawd),以及基於 Headless Chrome + FFmpeg 的渲染器,用於以 ekomen77 解說風格製作 1080p 30fps 的 YouTube 解說影片。
1. 黃金法則 (關鍵 — 絕不違反)
- 零角色臉部/嘴巴修改 (
%100 Saf Karakter):- 絕不在角色圖層上進行裁切、貼上、修補或繪製合成嘴巴/橢圓。
- 始終使用位於
./resources/pure_poses/pose_01.png到pose_13.png的標準化、未修改的透明 PNG。
- 穩定、平靜的角色姿勢 (說話時不快速切換):
- 絕不基於逐幀音訊振幅 (
amp < 0.12) 切換角色姿勢,因為字詞間的停頓會導致 3–5 Hz 的瘋狂身體閃爍。 - 絕不對角色身體施加連續的正弦波果凍抖動。
- 每個場景保持 1 個穩定姿勢(或最多在重大敲章/定論出現時進行一次有意的姿勢轉換)。
- 絕不基於逐幀音訊振幅 (
- 在工作室白板與全螢幕動態圖形之間交替:
- 工作室場景 (
drawStudioBase): 用於敘述性介紹、過場,以及牆壁白板內 1–2 張簡潔卡片 (WB = { x: 1044, y: 274, w: 462, h: 294 })。將角色放置於開放木質地板上 (footX = 870, footY = 942, scale = 0.85)。 - 全螢幕奶油色紙張圖表 (
drawFullScreenPaperBg): 當顯示 3 張以上大卡片、架構支柱或講台圖表時 (x = 680..1800),完全隱藏工作室背景 (#EDE5D8紙張畫布)。 - 全螢幕暗黑網路/反編譯器網格 (
drawFullScreenCyberBg): 當顯示十六進制轉儲、反編譯器終端或鎖定的黑箱卡片時,隱藏工作室背景,並渲染帶有 3D 紅色透視地板網格 (horizonY = 560) 的深色#0E1218畫布。 pose_08.png(「計畫」畫架板) 規則: 由於pose_08.png自帶畫架白板,僅在 全螢幕紙張圖表場景 (footX = 285, footY = 885, scale = 0.82) 中使用pose_08.png,切勿將其置於工作室牆壁白板前。
- 工作室場景 (
- 土耳其文排版與主字型系統:
- 白板場景 (調查證明板): 使用
./resources/fonts/Kalam-Bold.ttf作為標題和主要標註;使用./resources/fonts/PatrickHand-Regular.ttf作為主體項目符號、問題和筆記。兩種字型均已驗證 100% 原生支援土耳其文字形 (İ, ı, Ş, ş, Ğ, ğ, Ç, ç, Ö, ö, Ü, ü)。 - 全螢幕動態圖形與終端場景: 使用
./resources/fonts/Montserrat-Black.ttf、./resources/fonts/SpaceMono-Bold.ttf、./resources/Fredoka-Bold.ttf和./resources/JetBrainsMono-Bold.ttf。 - 絕不在呼叫
drawChunkyText之前使用ctx.globalAlpha < 1,因為黑色描邊會透過半透明填色滲出,使文字變得模糊灰暗。若要在圖章後方淡化背景卡片,請以globalAlpha = 1.0繪製卡片,然後在卡片上方繪製半透明遮罩矩形 (rgba(237, 229, 216, 0.42)),之後再繪製圖章。
- 白板場景 (調查證明板): 使用
- 始終交付可播放的 MP4:
- 渲染器將最終的
.mp4寫入專案檔案旁的./out/<prefix>_1080p.mp4。 - 如果需要將額外副本放置於方便的位置(桌面、共享磁碟機),請在執行渲染前設定
ERKO_DELIVER_DIR=<資料夾>— 腳本會自動將完成的 MP4 複製到該目錄。
- 渲染器將最終的
- 間歇性 AI 夥伴 (Clawd) 規則:
- Clawd (來自
./resources/clawd_assistant.js的程序化手繪方塊吉祥物) 是我們的即時 R.E.A. AI 代理 / 助手。 - 絕不讓 Clawd 永久顯示在畫面上 — 這會造成視覺混亂並分散觀眾對旁白的注意力。
- 僅在關鍵台詞、靈光乍現時刻或互動協助時出現(每章 1–2 次關鍵出場,持續 3–8 秒)。
- 出場範例:
- 在突破性進展時,帶著耳機或創意燈泡彈跳到工作室桌子/白板邊緣。
- 戴著偵探軟呢帽或工程安全帽,在全螢幕卡片上出現,以破解鎖定的程式碼區塊 (
furious/determined),然後戴著太陽眼鏡慶祝 (cool)。
- Clawd (來自
- 動態工作室與反平淡規則 (讓場景有衝擊力):
- 動態相機快照縮放: 工作室場景不得保持在固定的廣角縮放。在關鍵台詞期間,使用
easeOutBack將相機快照縮放到 1.15x–1.25x,然後再輕鬆縮回。 - 主題式工作室燈光變化: 根據敘事氛圍調整環境:
- 深夜深度工作 (第 2 章): 調暗室內燈光,強化發光的青/綠色螢幕,並讓壁爐餘燼脈動。
- 突破性靈光乍現時刻: 角色背後爆發出溫暖的金色光芒。
- 程序化表情: 使用
drawEmote('!', ...)/drawEmote('?', ...)/drawEmote('bulb', ...)/drawEmote('sweat', ...)放置在角色旁邊,以視覺化強調對話中的關鍵台詞。 - 圖章衝擊螢幕震動: 當沉重的圖章 (
✔、❌、BOMBA!) 或錯誤蜂鳴聲響起時,應用 3–5 幀的微妙相機震動 (x += sin(t*40)*4, y += cos(t*40)*4)。 - 手繪過場: 在主要場景邊界之間使用
drawBrushWipe(ctx, progress)或drawIris(ctx, progress),以實現無縫的故事流暢過渡。
- 動態相機快照縮放: 工作室場景不得保持在固定的廣角縮放。在關鍵台詞期間,使用
- 自訂 AI 插圖 (稀疏使用 + 精確角色參考 + 預先公告):
- 核心主幹仍是工作室 + 畫布圖表: 不要將影片變成 AI 圖片的幻燈片。讓每個章節的 85–90% 保持我們經典的工作室白板 + 全螢幕動態圖形卡片/終端機。
- 僅在真正需要時才生成自訂插圖: 每個章節最多 1 張自訂插圖,用於具體的視覺隱喻(例如,沙盒室、RPG 寶箱、歷史法庭)。
- 嚴格參考匹配: 每當透過
image-generator生成圖像時,始終傳遞 Pickle(柔和的橄欖綠紋理、超大黑色連帽衫、細棍腿)和 Clawd(赤陶色 10x6 矩形盒、4 根短釘腿、2 個短臂、粗墨水輪廓)的精確參考圖像。 - 在渲染前宣布視覺計畫: 在渲染新章節之前,簡要告訴使用者場景逐個場景的視覺計畫,以及是否會使用任何自訂插圖。
- 嚴格的腳部到陰影對齊與無重疊側面道具:
- 所有 13 個角色姿勢 (
pose_01..13.png) 都標準化為700x780,具有CHAR_CENTER_X = 350和FOOT_BASELINE_Y = 741(39px底部透明邊距)。 - 切勿使用未裁切的側面道具精靈(例如舊的
1050x780pose_08畫架),因為內建道具會被困在圖表卡片後面,或將角色移離地面陰影。pose_08.png已移除畫架,且 Pickle 居中於x = 350。 - 在
drawCharacter中,始終在y = footY - ih + 29 * scale + breathY處繪製精靈,使角色的腳底直接位於接觸陰影橢圓 (footY - 10) 內。
- 所有 13 個角色姿勢 (
- Clawd 助手必須始終站在堅實的表面上(絕不漂浮):
- 絕不將 Clawd 放置在半空中或在家具/螢幕前懸浮。
- 在工作室場景中,將 Clawd 穩穩地放在 Pickle 旁邊的開放木質地板上 (
x = 685, y = 938),其清晰的接觸陰影直接位於他的 4 條腿下方。 - 在全螢幕圖表場景中,向
drawClawd(...)傳遞podium: true(或將他放在堅實的地板/講台表面上),使其站在一個匹配的木質小講台上,並帶有清晰的接觸陰影。
- 原生工作室白板多邊形裁剪(無浮動
#FAF6EE補丁):- 絕不繪製不透明的
ctx.fillRect(WB.x, WB.y, WB.w, WB.h)覆蓋在studio_background_1080p.jpg上,因為背景白板的頂部金屬框架具有微妙的透視斜率,不透明矩形會在框架上產生明顯的貼紙/補丁接縫。 - 始終裁剪到精確的 4 角內部白板多邊形 (
(1034, 294) -> (1510, 279) -> (1510, 580) -> (1034, 580)),直接在工作室背景的自然白板表面上繪製,並將白板內容繞(WB.cx, WB.cy)旋轉-0.024 rad(-1.4°),使標題和卡片與實體板的角度自然對齊。
- 絕不繪製不透明的
- 全螢幕真實 YouTube 訂閱 UI 疊加層,用於呼籲行動:
- 絕不將重要的觀眾呼籲行動 (
Abone Ol、Bildirimleri Aç、Beğen) 隱藏在小型背景工作室白板內。 - 渲染一個顯眼、居中舞臺的真實 YouTube 觀看頁面與訂閱播放器 UI 疊加層 (
drawYouTubeSubscribeOverlay),包含即時影片視窗預覽、紅色 YouTube 進度條、頻道頭像,以及一個動畫滑鼠游標點擊▶ ABONE OL➔✔ ABONE OLUNDU和🔔 TÜMÜ AÇIK!,並伴有波紋/五彩紙屑爆發。
- 絕不將重要的觀眾呼籲行動 (
- 強制性前 15 秒挑釁鉤子 / 主張規則 (Uzun Videolar ve Shorts İçin Ortak Zorunluluk):
- 格式獨立性: 此規則在**全長 YouTube 影片(第 1 章 / 介紹)**和 YouTube Shorts / Reels 影片中一律強制執行。長時間影片不得以緩慢、無聊或理論性的介紹開始。
- 絕不以被動的紀錄片/學術闡述開場(例如,"Bugün sizlere X mimarisini anlatacağım..." 或 "Yazılım dünyasında yeni bir gelişme var..." 嚴格禁止)。
- 每個影片的前 15 秒(長影片中第 1 章的開頭秒數,Shorts 中的開場) 由一個打破觀眾認知、反駁謊言或提出大膽主張的 3 步驟結構組成:
- 0.0s – 5.0s (衝擊主張 / The Shock Claim): 將一個根深蒂固的誤解攤在觀眾面前("Yazılım şirketlerinin 'kırılamaz' dediği kapalı kutu programlar koca bir yalan!" / "ChatGPT'nin seni anladığını sanıyorsan fena halde kandırılıyorsun!")。
- 5.0s – 10.0s (提升主張與挑戰 / High Stakes): 用一個大膽的類比將主張推到頂峰("İddia ediyorum: Bir ekibin 5 yılda gizlediği sistemi, tek bir yapay zeka ajanı 10 dakikada deşifre edebilir!" / "Karşındaki bir zeka değil, tarihin en büyük şans çarkı!")。
- 10.0s – 15.0s (證明之門 / The Proof Gate): 強迫觀眾觀看影片的其餘部分("İnanmıyor musun? Arkadaki sihri ve büyük illüzyonu adım adım ispatlıyorum, iyi izleyin!")。
- 官方工作室白板公式:調查證明板 (Dedektif Panosu + Clawd):
- 無廉價卡通卡片或俗氣圓圈: 絕不繪製粗陋的圓角網頁框或任意紅色圓圈環繞文字(它們會使版面雜亂,看起來業餘,感覺像通用的 AI 模板)。
- 鑿尖霓虹螢光筆刷: 關鍵重點詞彙在文字背後繪製一條半透明螢光筆帶(
rgba(253, 224, 71, 0.65)霓虹黃、rgba(74, 222, 128, 0.5)薄荷綠、rgba(251, 146, 60, 0.45)橙色)。 - 貼上的拍立得 / 文件證據卡片 (
drawPolaroid): 附上一張看起來像實體的拍立得卡片,上面有半透明的膠帶 (rgba(180, 175, 165, 0.85)),展示具體的視覺隱喻(輪盤、3D 骰子、晶片架構、反編譯片段)。 - 傾斜橡膠墨水圖章 (
drawRubberStamp): 為了解構迷思或確認事實,以-8°到-12°的角度,用破舊的雙邊框紅色墨水 ([ ÇÜRÜTÜLDÜ ]、[ KANITLANDI ]、[ İLLÜZYON ]、[ HACKLENDİ ]) 直接蓋在主張上。 - 貼上的黃色便利貼 (
drawPostIt): 用透明膠帶釘住或貼在側面,用於公式、百分比和規則。 - 白板邊緣上的 Clawd: Clawd 穩穩地坐在白板下方的木質飾條/托盤上 (
x = 1045, y = 642, scale = 6),戴著他的棕色偵探軟呢帽,頭上有個創意燈泡💡或做出反應表情,將雙人組無縫整合到教學時刻中。
- 嚴格的反模式與故障預防 (Önceki Hataları Asla Tekrarlamama Kuralları):
- 零「貼紙症候群」/ 脫離角色的合成 (YASAK: Havada Asılı / Yapıştırma Karakterler): 角色必須與其互動的物體有物理接觸,融入房間照明(昏暗、溫暖壁爐、網路),不應看起來像是無接觸的貼紙。
- 零廉價 HTML/CSS 模型 (YASAK: Web Div'leri ve Emojilerle Sahte İllüstrasyon Yapmak): 絕不產生帶有假表情符號
🍎 🍒 777的網頁框。需要繪製逼真的傾斜 GitHub/終端機卡片或有機粉筆圖表。 - 零視覺混亂 / 呼吸規則 (Görsel Dağınıklık Yasağı): 一個場景不要塞入 4–5 個不同的複雜元素。場景應圍繞一個強大的類比保持寬敞和專注。
- 有機材質紋理優於生硬向量 (Dijital Jilet Çizgi Yasağı): 禁止使用完全筆直、生硬的尺規線條。線條應帶有粉筆顆粒感、略微波浪狀,且角落略微溢出 (overshoot)。
- 官方全螢幕場景原型:深色石板黑板 + 傾斜證據卡片:
- 背景: 深色石板黑板紋理(
#20201F/#282725有機顆粒狀消光紋理,帶有輕微的板擦粉塵痕跡和邊緣暗角)。 - 左側 (證據卡片 / Polaroid Artifact): 向左傾斜 $-5.5^ullet$(
transform: rotate(-5.5deg)),帶有厚實象牙白相框(#f2eee5)、深層柔和陰影、真實程式碼或終端機內容。 - 右側 (有機粉筆架構樹): 頂部輸入框 $ ightarrow$ 中間處理框 $ ightarrow$ 底部分發框。
- 背景: 深色石板黑板紋理(
- 官方視覺與排版方向:「天然粉筆與溫暖琥珀」(Stil 2 - Kullanıcı Onaylı Ana Standart):
- 排版層級:
- 標題、重大主張、印章:
./resources/fonts/Kalam-Bold.ttf
- 標題、重大主張、印章:
- 排版層級: