LiveCanvas · 實況畫布 是做什麼的?
把使用者的一句話變成有證據、靜態可讀、動態能講清內容的實況動效卡。原名 LiveChart,現名 LiveCanvas(實況畫布),覆蓋圖表、圖片與場景敘事;預設主動設計與主題相關的圖片/圖示和場景動作,圖表只是可選表達。預設中文、Remotion、1080×1440、30 fps、約 3 秒、無聲。這些是起點,允許按內容調整;3 秒不是聲稱的蘋果格式限制。
先定內容,再定動效
- 從請求提取主體、指標、時間範圍、比較關係、用途;給定文章或報告時先讀完整材料,再提取關鍵事件、變化、能力、對比與場景。按內容重要性分配篇幅,不只挑價格或易展示的數字。具體需求優先,不把使用者給的例子當成固定模板。
- 搜尋並核實數據,讀 數據與口徑。先保存原始證據、事實或結構化數據,再寫標題、數字與註釋。無時間序列的主題可以用事實卡、過程或場景解釋;不能為了畫圖虛構數據。
- 寫簡短製作說明:整套內容主線、每張的主體與結論、事實/數據口徑、封面資訊層級、分鏡時間表及素材計畫。張數依使用者要求和內容決定,不固定為某個數量或主題組合。選出適合該主題的表達,不預設折線圖加數字。直接做設計判斷;僅當缺失資訊會實質改變答案時提問。
- 按 封面與動效 製作。吸收 Emil Kowalski animate 的有目的、克制、連續、節奏清晰原則;使用者已指定 Remotion,不執行上游的工具替換步驟,也不把互動元件時長限制機械套用到解釋性影片。
文案:直接寫事實與數據
- 標題優先寫「主體 + 數字/變化/明確結論」,例如「輸出上限 1M tokens」「首發任務成本低 39%」「Text Arena 暫列第一」。沒有必要的數字時,直接寫產品名、版本或具體事件,不硬湊數據。
- 用簡短、直觀的陳述,刪掉空泛宣傳、設問、比喻、對仗和裝飾性英文標籤。不要用「重新定義」「讀懂三個變化」「讓收益落到真實場景」等句子代替事實。正文與配圖描述也遵循同一標準;來源寫清機構名,如 Artificial Analysis,不只寫 AA。寫法示例與限定條件見 封面與動效。
- 使用者說「AI 味太濃」「直接上數據」「不要花裡胡哨」時,優先精簡文案與無關裝飾;保留原有主題、資訊、必要素材和已選設計方向,不擅自刪除主體封面、合併主題或把整套改成同一數據模板。
- 修改時保留已確認的主題、資訊與視覺要求。使用者改變張數或重點時重新分配內容,並說明合併、替換與復用關係;不靠機械拆頁或重複主題湊數。按圖編號核對改版前後內容,總包按不同內容去重。
視覺表達
-
封面以產品名、版本號或核心物件建立視覺主次。「登場感」「衝擊力」等是效果描述,不直接當成畫面文字;具體做法見 封面與動效。
-
整套統一配色、字型和圖形語言,按內容選擇構圖。用圖形解釋事實與關係,避免堆文字、大數字、裝飾卡片或機械復用同一模板。
-
預設讓主題中的物件出現在畫面中:產品 PNG、咖啡杯、汽車、列車、獎牌、城市照片、天氣 emoji 等;挑選與內容有關的一組統一風格素材,不是給圖表角落貼裝飾。
-
設計物件的入場、運動、排列、替換或狀態變化來解釋內容。例如列車駛過年份節點、咖啡杯帶出門店卡片、城市畫面隨季節切換。
-
按主題組合場景、圖片對比、圖示陣列、時間線、過程演示、重點文字和必要圖表。純圖表只在確實最清楚或使用者指定時採用。
-
使用圖片或 emoji 時讀 圖片與圖示,負責找素材、檢查可用性並加入工程;無需讓使用者先提供素材才開始。
搜尋預設值
- 「最近 3 年」:截至最新可靠已完成觀測日的滾動三年,註明首尾實際日期,不預設成三個年末值。月度量圖用已完成月末觀測;最新未完成月只能單獨註明。
- 「全年溫度」未給年份:採用最近一個完整自然年,預設月平均氣溫;在結果開頭說明選擇。若意圖明顯是常年氣候,使用有明確基準期的氣候平均值。
- 跨公司比較對齊觀測日期、指標、幣種,或明確使用同基期指數,保留原始絕對值。
- 允許漲、跌、持平、季節循環。不要因使用者說「增長曲線」而把下降畫成增長。
- 日期按使用者時區解析,不用機器日期硬編碼「今年」。
製作與封裝
讀 運行與交付 和 直接交付。資源路徑相對於本 skill 目錄;稱該絕對路徑為 SKILL_DIR。
- 把
assets/remotion/作為渲染工程起點複製到本次目錄,使用隨附鎖檔案npm ci。其中折線圖只是示範,應按分鏡重寫 composition,不是預設成品版式。不要在已安裝 skill 內生成輸出或安裝依賴。 - 示範
data.json為合成數據,只用於測試。正式製作需替換數據和文案,去掉示範標記前完成事實核查。 - 時間序列使用
scripts/validate_data.py檢查日期、來源引用、覆蓋和範圍;其他內容按 數據與口徑 使用匹配的事實/比較結構,不硬套日期序列。校驗通過不代表來源事實已核實。 - 所有動畫由
useCurrentFrame()驅動;禁止 CSS animation、牆鐘、未固定亂數、網頁圖庫自帶動畫。 - 將圖片、emoji、文字、場景與圖表納入同一分鏡,保留可追溯事實、靜態封面、確定性渲染與驗證流程。
- 從同一 composition 的完整停留幀導出
cover.jpg,記錄coverFrame / fps。封面畫面必須出現在動畫內,still-image-time 指向同一時間。 - 按生成環境選擇配對器:macOS 可用
scripts/pair_live_photo.swift;Linux / Windows 使用scripts/pair_live_photo.py,讀 跨平台 Apple Live Photo。兩條路徑都將無聲 H.264 與 JPEG 寫成包含共享標識和 timed metadata 的 Apple 配對資源。這是中間步驟,不算交付完成;其他輸入先轉碼,不默默丟棄使用者音軌。 - 封裝完成後禁止再次普通轉碼 paired MOV,否則可能丟失元數據軌道。
- 用
scripts/package_live_photo.py生成命名明確的單個.pvt包;將其標為實況資源包,不承諾 iPhone「檔案」App 可直接預覽;不自動打開或導入「照片」App,不修改照片庫。不得停在 JPG + MOV 配對資源。
驗證與完成標準
先檢查事實和素材,再預覽封面和影片:抽查開始、主要動作中段、轉場、數據極值(如有)和封面停留幀;檢查圖片載入、emoji 字形、透明邊緣、中文字型、標籤遮擋、數值同步、單位日期與裁切。確認動作在解釋主題,而非只有數字和條形變化。真實曲線不使用引入虛假峰谷的平滑;缺測處斷線。成套核對重要內容和比較關係是否保留、封面主體是否明確、風格是否統一;數字滾動檢查中間幀與最終值,靜態封面必須完整可讀。
分別記錄狀態,不把前一項當作後一項成功:
- 數據與來源核實;機器校驗只是其中一部分。
- 封面和 MP4 渲染完成,素材與主要動作可見,元數據及畫面檢查通過。
- Live Photo 標識匹配、timed metadata 時間位置正確。
- 有 Apple 環境時記錄
PHLivePhoto.request本機載入成功或具體失敗;純 Python 生成環境記為not_available,不要偽造通過。 .pvt包完整、配對資源哈希一致。- 相簿導入、設備播放、第三方平台上傳及鎖屏相容性均為可選事項,只有使用者另外明確請求時才操作並記錄,不作為檔案交付的前置條件。
沒有 macOS 時執行跨平台 Python 配對與打包,不能僅因作業系統退回 MP4 + 封面。元數據讀回、影片解碼和包完整性通過即可交付資源;Apple 本機載入、iPhone 導入/播放分別記錄。缺少實際依賴且無法安裝時才交付預覽並明確阻塞項,不聲稱平台無法生成。生成檔案不證明手機預覽、保存或播放成功。
交付
每個主題獨立目錄,同時提供可直接觀看的預覽和 主題名稱.pvt 實況資源包,保存 delivery.json。另保留 data.json、原始證據、sources.md、含本地素材的可編輯 Remotion 工程、素材清單 assets.json(使用素材時)、cover.jpg、motion.mp4、內部 live/ 配對資源及 manifest、qa.json。壓縮包只用於傳輸,不是可直接識別的 Live Photo。
優先展示可觀看的封面/動態預覽,另附 .pvt 資源包連結、數據截止日及驗證狀態。使用者要求手機直接預覽時,核實其接收路徑;不能僅憑檔案包生成或本機載入成功宣稱已滿足。傳輸界面不支援目錄包時附 .pvt.zip,註明解壓後得到資源包,仍需支援 Live Photo 的應用讀取。網頁 LivePhotosKit 預覽與保存為原生實況照片是兩項能力,未實現的能力不承諾。封面和 MP4 只能標作預覽;聊天界面不能原生展示 Apple 實況時簡短說明。不要把「直接交付 Live Photo」解釋成導入相簿,不索取照片庫權限,也不自動打開可能觸發導入的 .pvt。未經請求不發布到社交平台。
範例觸發
-
「用 LiveCanvas 做小米最近三年的市值變化。」
-
「蘋果和小米近三年市值做成兩張實況圖,風格統一。」
-
「把北京去年的全年氣溫做成 Live 圖,封面也設計好。」
-
「把這份數據做成會動的資訊圖,導出蘋果實況照片。」
-
「用咖啡杯 PNG 和門店卡片,做瑞幸與星巴克的擴張故事。」
-
「用列車、年份節點和里程數字,做中國高鐵的實況動效。」