App 3D 影片製作 是做什麼的?
概述
一段 20 秒的垂直影片,完全在此 Mac 上渲染:一個在明亮象牙白世界中的真實 SceneKit iPhone、App 的吉祥物化身為一個會跳動並按下真實 UI 的角色、價值導向的標題,以及一段原創搖擺配樂,讓每一次跳躍都對應到馬林巴琴的音符。template/ 是一個完整的範例專案(一個名為「MyApp」的用藥提醒 App),可直接執行。可以更改故事、UI、資料、品牌與音樂;除非使用者另有要求,否則請保留外觀。
必要子技能: motion-video(引擎、節拍網格規劃、靜態畫面審核)。所有關於調色盤、尺寸、光線、音樂、常見陷阱、第二裝置、真實與示意畫面的細節,都在此檔案旁的 reference.md 中。
當兩項技能有所衝突時,以此技能為準:複製 template/,執行 bash mv3d.sh(而非 mv.sh),並且吉祥物的跳躍、閃光與彩紙效果是外觀的一部分,即使 motion-video 的健康預設會避免這些元素。攜帶資料的 UI 仍然只有輕微的彈跳與出現動畫;吉祥物則負責跳躍動作。
從範本開始
cp -R ~/.claude/skills/app-3d-video/template ~/Movies/MotionVideo/<slug>
cd ~/Movies/MotionVideo/<slug>
bash mv3d.sh audio # score.swift -> music.wav, 輸出音量等級;請在靜態畫面之前執行
bash mv3d.sh stills 0.5,4.6,10.1 # 節拍(Beats) -> stills/ + sheet.png
bash mv3d.sh video # out.mp4,20 秒單一 iPhone 約需 5 分鐘;請在背景執行
bash mv3d.sh frames out.mp4 2.5,6.3 # 秒數(Seconds) -> check/ + check_sheet.png
品牌設定位於 scenes.swift 頂端的 BRAND 區塊中:APP_NAME(結尾卡片文字商標)、APP_VERSION(3D 數字;長度變更時請在靜態畫面上重新檢查其大小與位置)、LABEL(第一個標題上方的小標籤)、END_PILL(結尾卡片上的漸層膠囊)以及吉祥物顏色。然後取代 render() 中所有的 headline(...) 呼叫、標頭註解以及 plan.md。「COMING IN …」和「COMING SOON」是預告用詞;若為發表會,請向使用者詢問標籤與結尾卡片文字。
範例場景(即時動態卡片、鎖定畫面小工具、一週藥丸盒桌布)屬於範例 App。請將其替換為使用者自己的 UI,但保留相同的技術:逐幀的 2D 畫布映射到手機螢幕上、吉祥物站在並按壓元素上、由單一時鐘驅動的時間流逝效果。
工作流程
- 事實蒐集。 閱讀使用者存放庫中每個功能的資訊:實際字串、佈局、調色盤、狀態、付費功能限制、App 圖示的顏色(這些會成為吉祥物的顏色)。詢問程式碼無法回答的事項(哪些功能、確切名稱、免費或付費、預告或發表、長度;預設為 20 秒垂直影片)。若功能在存放庫中尚無 UI:請求設計稿或螢幕截圖。如果沒有,則根據 App 的設計系統繪製,將其列為示意圖,並在首次靜態畫面表中顯示。
- 吉祥物。 預設為使用 App 企業色的雙色膠囊形狀。如果 App 有自己的吉祥物或簡單的圖示形狀,請在
buildCapsule()中使用 SceneKit 基本幾何體建構(保留CAP_HALF、單位大小與材質清單,以便陰影與兩次渲染仍能運作)。 - 計畫 在節拍網格上撰寫
plan.md(96 BPM 搖擺節奏,8 小節 = 20 秒)。一個功能 = 一次吉祥物與其真實 UI 的互動。同一個早晨、同一組資料、同一個時鐘。手機是舞台;第二裝置(Watch、iPad)僅在功能存在於該裝置上時才出現(參考 reference.md 的「第二裝置」)。列出真實與示意畫面。 - 複製。 標題 = 使用者獲得的價值,而非功能名稱。付費項目在副標題行加上 PRO 標章。如果已安裝 humanizer 技能,請對每一行執行此技能,然後重新檢查事實。
- 配樂。 保留聲音(ukulele、馬林巴琴、口哨、拍手聲、E 大調、結尾卡片強拍上的合成鐘聲),但為新的編舞重新編寫和弦、旋律與重音:每一次著陸都是一個馬林巴琴音符,對應其視覺節拍。如果 App 有自己的通知聲音,可以取代合成鐘聲(請參閱
score.swift結尾);讓配樂的調性與之相符(參考 motion-video 的references/score-guide.md)。如果使用者要求不同的音樂,也請更換樂器。目標音量 −13…−15 dBFS,0 % 削波。 - 靜態畫面審查,至少兩輪,包括跳躍中途的節拍點。檢查:吉祥物從不遮蓋資訊、在按壓的元素上稍作停留、陰影可見、手機頂部位於標題下方、沒有任何內容穿透文字層顯示、且沒有任何真實 UI 的顏色與橙色標題衝突。
- 在背景渲染,然後對 MP4 執行
frames並查看結果。 - 交付 到
~/Downloads/<App>_<主題>_3D_<N>秒[_vN].mp4,並將檔案發送或展示給使用者。逐拍報告秒數、真實與示意畫面,以及音訊已透過測量評估。將早期版本保留在v1/目錄中。先將影片保留為單一語言,直到使用者批准;每增加一個語言環境都需要完整重新渲染,因此請詢問使用者想要哪些語言環境。
外觀規範
- 象牙白/燕麥色世界,搭配柔和的陽光。無深色工作室背景,無飽和粉紅色。
- 中性鈦金屬手機、照片風格的米色桌布、深色墨水時鐘、螢幕卡片採用淺色調色盤。
- SF Pro Rounded 粗體標題;第二行使用橙色漸層。
- 吉祥物會互動(著陸、重踩、用頭撞、在元素間跳躍)。它絕不會只是繞圈或擺姿勢。
- 真實的柔和陰影。無景深,無泛光效果。
常見錯誤
| 錯誤 | 修正方式 |
|---|---|
將節拍傳遞給 frames,或將秒數傳遞給 stills | frames = 秒數,stills = 節拍(20 秒 = 32 拍) |
| 吉祥物在落地瞬間就離開按鈕 | 停留約 0.2 拍,讓按壓動作可以被感知 |
| 吉祥物站在時間或標籤上 | 將它放在會遮蓋的資訊旁邊 |
使用 opacity 讓網格淡出 | 改為移動、縮放或隱藏它 |
| 品牌顏色與橙色標題漸層衝突 | 將品牌顏色保留在吉祥物與版本號上;僅在使用者要求時才更改標題漸層 |