論文解釋影片(儀表板風格)
當使用者要求為一篇論文、某個章節(系統模型、定理、結果圖表)或教學概念製作解釋影片、動畫或「像FAS那樣的影片」時,使用此技能。
輸出結果樣貌
一個16:9幀(1920x1080,30 fps,白色背景,色彩豐富):
- 頂部:一條小的灰色版權行、一個粗體標題、以及一行紫色的設定摘要。
- 左側(約40%寬度):一個動態物理場景(波、天線、節點、使用者、電路)。每一幀都會移動,並帶有顯示決策或結果的標記。
- 右側:一個2x2的即時面板網格。靜態曲線只繪製一次;一條虛線垂直線和點會沿著曲線移動。其中一個面板每幀會完全重繪(例如某次實現的長條圖)。
- 底部:一個黃色圓角字幕框。當掃描參數跨越閾值時,它會改變4-6次,然後在最後的停留階段顯示總結及關鍵數字。
- 場景中可選一個嵌入圖(例如複數平面箭頭)來顯示關鍵量。
程序
- 閱讀論文章節。選擇一個能講述故事的掃描參數(水平範圍、訊號雜訊比、速度、傾斜度、區塊數等)。寫下影片必須傳達的一句話訊息。
- 使用numpy/scipy重新實現模型,採用論文本身的方程式和參數值。在繪製任何圖形之前,驗證關鍵數字(閉合形式 vs. 數值積分、表格值、極限值)。如果發現不一致,告知使用者。
- 預先計算耗時的部分:在細網格上(約21個點,約2萬次抽樣)進行蒙地卡羅曲線計算,並快取結果。
- 對於實現面板,使用一個固定的隨機抽樣,使其隨參數平滑變化(例如有限平面波疊加,路徑固定,雜訊一次抽樣完成)。掃描種子並選擇一個能清楚講述故事的種子;在旁白註記中說明這一點。
- 時間線:開頭停留(約2秒)、一個緩和掃描(0.5 - 0.5 cos(pi x))、以及最終停留(約3秒)。預設17秒;若有旁白則延長至約60秒(例如8 / 42 / 10秒)。
- 使用argparse撰寫腳本:
--out、--preview(寫出3個PNG幀)、--dpi。將參數放在頂部(CREDIT、模型值、SEED、時間設定)。使用matplotlib的FFMpegWriter(libx264、yuv420p、位元率6000)進行渲染,採用grab_frame循環。 - 總是先渲染預覽並檢查它們。修正重疊問題,然後渲染完整影片。之後,使用ffmpeg提取4個幀並檢查。
- 交付.mp4、.py以及一個旁白.md檔案(時間 | 字幕 | 用簡單英文說明的內容 | 面板指南 | 設定 | 易於編輯)。版本編號為v1、v2、...。
佈局經驗(避免這些錯誤)
- 對於場景軸,使用
set_aspect('equal', adjustable='datalim')並將xlim置中於內容,否則場景會縮小並被裁剪。 - 將長的場景標籤放在物體不會移動的地方;檢查嵌入軸是否遮蓋了標籤。
- 圖例:放在空白區域(通常對於中斷型曲線是
lower right)。對於長條圖面板使用ncol=2,並在ylim中為標記預留空間。 - 保持gridspec頂部約在0.86,使副標題不會碰到面板標題;底部約在0.155,使兩行字幕不會碰到x軸標籤。
- 公式文字放在軸內的空白區域,而不是曲線上方。
- 完全重繪(cla)僅用於場景和一個實現面板;其他面板使用set_data。在1080p下,510幀約需4分鐘是正常的。
樣式常數
藍色 #1c7ed6、橙色 #e8590c、綠色 #2f9e44、紅色 #e03131、青色 #0c8599、紫色 #7048e8、灰色 #868e96、墨色 #212529、金色 #f59f00。粗體標題11.5 pt,基本字體10 pt,頂部和右側脊椎線關閉。
語言
字幕和旁白使用簡單英文(B2或以下),句子簡短,並使用編號字幕步驟(「1 ·」、「2 ·」...)。