FilmCraft 專家
從 Claude Code 或任何相容 SKILL.md 的代理(已連接 FilmCraft MCP 伺服器)中,編輯 FilmCraft(ArtCraft 的 Premiere Pro 等級編輯器)影片的操作知識。SoundCraft 和 EffectCraft 是選擇性的交接目標。每課的重點摘要放在 references/ 中。底下的每個對照均已在 2026-11-03 時與 command_list(716 個指令)和 effects.list(304 種效果)核對過。
來源。 工作流程參考了 Adobe 的 Premiere Classroom in a Book 2026 Release(Adobe Press),並已與 FilmCraft 2026-11-03 的即時指令目錄驗證。此技能為獨立撰寫,並未重現書中任何文字。
關於 該剪什麼 以及 為什麼(鉤子、節奏、留存率、結構),請搭配 video-editor 技能使用;若需在 FilmCraft 外部進行命令列轉碼、探測或批次轉檔,請參閱 ffmpeg。
驗證圖例。「(verified)」/「Verified:」表示該指令已在實際的 FilmCraft 會話中執行,並觀察到所述行為。未標記的對照表示該指令/效果 ID 存在於 2026-11-03 的即時目錄中,且參數相符,但未進行端到端測試。「Not available」表示在該日期於目錄中搜尋未找到匹配(此為快照,請參閱§0)。
0. 應用程式每日更新 — 在說「缺少」之前請重新檢查
ArtCraft 應用程式幾乎每天都會更新。本技能和 references/ 中的每一項「不支援」或「缺少」的項目皆為 2026-11-03 的快照,並非永久限制。
- 在告訴使用者某功能缺失,或使用替代方案之前,請先使用篩選條件(
command_list/list_effects/effects.list)搜尋即時目錄。如果指令現在存在,請直接使用。 - 此處描述的 Adobe 方法是 目標。一旦應用程式支援,應立即完整套用。
- 如果你找到一個本技能列為缺失的指令,或發現對照已變更,請更新此技能(或在此儲存庫開 issue),以便快照保持準確。
代理的基本規則
- 時間: 254016000000 刻 = 1 秒。大多數指令也接受
seconds、frame或timecode;轉場持續時間以frames為單位。 - 關鍵影格時間:
effects.setParam {time, keyframe:true}使用 時間軸 時間。effects.setInterpolation、setKeyframe、moveKeyframe和deleteKeyframe使用mediaTime= 來源 時間 =sourceIn + (t_timeline − start)(驗證過)。 - ID: 時間軸片段和專案項目的 ID 不同。
timeline.place返回連結的[video, audio]對。sequence_inspect非常冗長(3 個片段約 15k tokens);針對特定問題請使用state.inspect、graphics.list、essentialSound.inspect、mixer.inspect、captions.list。 - 批次處理:
command_batch {stop_on_error:false}會執行所有指令並報告每個步驟的ok/error;每個步驟各自是一個復原動作(edit.undo)。 - 匯出: 務必 傳入明確的
path(否則檔案會以<序列名稱>.mp4存入使用者家目錄),並加上wait:true以取得結果;先用export.resolve檢查。 - 使用者檔案: 除非被要求,否則不要開啟或儲存使用者專案。實驗用途請使用
file.newProject+file.importDemoFootage(OceanSunset, Aurora, CityNight, Dunes, Plasma, Forest)。 - 視覺檢查: 在多個時間點使用
render_frame {seconds, max_side:480};色彩部分請用scopes.read(數值,非圖片)。
關鍵概念(簡短)
- 專案: 包含資料夾、片段、序列和設定,但僅是媒體檔案的參照。刪除/重新命名片段絕不會觸及原始檔案。
- 資料夾: 專案中的資料夾(
file.newBin、project.moveToBin);智慧搜尋資料夾(file.newSearchBin)是動態的中繼資料集合。 - 序列: 時間軸。其設定(影格大小、fps、音訊)決定工作格式;應與主要素材相符,或當來源混合時與輸出格式相符。
- 軌道: 較高的 V 軌會覆蓋較低的軌道;A 軌則會疊加。目標軌道(
timeline.setTargeting)決定插入/覆蓋的目的地;來源修補 決定哪些來源通道會被帶入。同步鎖定 和 鎖定:timeline.setTrack。 - 入/出點: 在來源上選擇要使用的部分;在時間軸上標記要移除、渲染或匯出的範圍。
- 插入 vs 覆蓋: 插入會將後方所有內容推遲(序列變長);覆蓋則取代下方的內容。
- 3/4 點剪輯: 給定三個點,第四點會自動計算;四個點不一致時,必須在修剪和改變速度之間做選擇。
- 提取 vs 抽取: 提取會留下空隙,抽取則會關閉空隙。刪除與漣漪刪除同理。
- 修剪: 一般 修剪只移動一個邊緣並留下空隙;漣漪 修剪會移動邊緣並拖動其餘內容;滾動 修剪會移動兩個片段之間的剪輯點,但不改變總長度;滑移 修剪會在不改變片段位置的情況下更改顯示的來源部分;滑動 修剪會移動片段並縮短/延長其相鄰片段。
- 預留長度: 入/出點以外的額外媒體;沒有預留長度,轉場會重複影格。
- 標記: 序列或片段標記,可包含名稱、註解、顏色和持續時間;也支援章節和 Flash Cue 標記。
- 巢狀序列:
clip.nest將多個片段變成一個子序列,像單一片段一樣運作(群組效果、重新構圖、局部匯出)。 - 固定效果: 移動、不透明度、時間重映射、音量、聲道音量、聲像調整器已經存在於每個片段上。
建議工作流程
- 專案 + 資料夾(素材、音訊、圖形、序列)→ 匯入 → 檢查格式(
file.mediaProperties、media.colorInfo)。 - 設定正確的序列(或在第一個
timeline.place時使用matchSequence:true)。 - 使用入/出點或子片段進行選取 → 粗剪。
- 精剪:修剪、節奏、J/L 剪接、轉場只在必要時使用。
- 音訊:分類、音量、清理、音樂、閃避、混音。
- 效果、動態、穩定、合成。
- 色彩:先校正(平衡、段落匹配),再調色(營造風格)。
- 標題、圖形、字幕。
- 品質檢查 → 匯出 → 歸檔(專案管理員)。
Premiere → FilmCraft 對照表
| Premiere 功能 | FilmCraft |
|---|---|
| 新增專案 / 序列 / 資料夾 | file.newProject、file.newSequence {width,height,fps}、file.newBin |
| 序列設定 | sequence.settings、sequence.colorSettings |
| 匯入 / 媒體瀏覽器 | media_import(工具)、file.import、mediaBrowser.list/import |
| 圖層式 PSD/AI | 無圖層對話框:請從 PhotoCraft/VectorCraft 將圖層匯出為 PNG |
| 旁白錄製 | audio.voiceover.start/stop(需要應用程式有音訊輸入) |
| 合成旁白 | tts.create(Premiere 沒有) |
| 中繼資料與欄位 | metadata.set、project.columns.set、edit.find |
| 子片段 | clip.makeSubclip |
| 音訊聲道 / 解譯素材 | clip.audioChannels、clip.interpretFootage |
| 合併片段(雙系統音訊)/ 同步 | clip.mergeClips、clip.synchronize {method:"audio"} |
| 來源監視器、入/出點 | source.open、markers.markIn/markOut {target:"source"}、project.setMarks |
| 插入 / 覆蓋 | source.insert、source.overwrite、timeline.place {insert} |
| 故事板 → 序列 | clip.automateToSequence |
| 剃刀 / 加入編輯 | timeline.razor、sequence.addEdit(AllTracks) |
| 提取 / 抽取 / 漣漪刪除 | sequence.lift、sequence.extract、edit.rippleDelete、timeline.delete {ripple} |
| 關閉空隙 | sequence.closeGap、timeline.selectGap |
| 修剪、漣漪、滾動、滑移、滑動 | timeline.trim {mode}、timeline.roll、timeline.slip、timeline.slide |
| 鍵盤修剪 Q/W、E | trim.ripplePrevious/rippleNext、trim.extendToPlayhead |
| 動態修剪 | trim.shuttle、trim.playAround |
| 速率拉伸 / 速度 / 倒轉 | timeline.rateStretch、clip.speedDuration {speed,reverse,ripple} |
| 影格凍結 / 光流法 | clip.frameHold、clip.setTimeInterpolation |
| 取代片段 / 素材 | clip.replaceFromBin、media.replaceFootage |
| 標記 | markers.add/addRange/addChapter/edit/exportCsv |
| 連結、群組、啟用 | clip.link、clip.group、clip.enable |
| 巢狀序列 | clip.nest、sequence.makeSubsequence |
| 視訊/音訊轉場 | sequence.applyVideoTransition、sequence.applyAudioTransition、trim.applyDefaultTransition |
| 動態覆蓋 | 轉場效果 morph_cut |
| 文字型編輯 | transcript.generate → transcript.extract/lift、removePauses、removeFillers |
| 效果 / 參數 / 關鍵影格 | effects.apply、effects.setParam、effects.addKeyframe、effects.setInterpolation |
| 效果預設 / 調整圖層 | presets.save/apply、file.newAdjustmentLayer |
| 貼上/移除屬性 | edit.pasteAttributes、edit.removeAttributes |
| 遮罩與追蹤 | masks.add、masks.set、masks.track |
| 變形穩定器 / 自動重新構圖 | 效果 warp_stabilizer、auto_reframe;clip.fillFrame/fitToFrame |
| 場景編輯偵測 | clip.sceneEditDetection |
| Lumetri(面板、預設、LUT、匹配) | 效果 lumetri + effects.setParam、lumetri.applyPreset、lumetri.setInputLut/setLook、lumetri.applyMatch、lut.import |
| Lumetri 示波器 | scopes.read(波形、分量、直方圖、向量示波器,以數值呈現) |
| 視訊限制器 | 效果 video_limiter 或匯出設定中的限制器 |
| 不透明度、混合模式 | effects.setParam {effect:"opacity", param:"blend", value:"Screen"} |
| 去背合成 / 軌道遮罩 / 亮度遮罩 | 效果 ultra_key、track_matte、luma_key、color_key |
| Essential Graphics 文字/形狀 | graphics.newText、graphics.newShape/newRectangle、graphics.set、graphics.setCharStyle、graphics.align |
| 標題捲動/爬行 | graphics.setRoll |
| 動態圖形範本 | graphics.template.list/apply/export(.fcgt;不接受 .mogrt) |
| 字幕 | captions.newTrack/add/setStyle/import/export、transcript.createCaptions、graphics.upgradeCaption |
| 音訊增益 / 標準化 | `clip.audioGain {mode:"set |
| 片段音量與關鍵影格 | clipMixer.set、effects.setParam {effect:"volume", param:"level"} |
| 軌道混音器、子混音、傳送、自動化 | mixer.setStrip/addSubmix/addSend/addInsert/writeAutomation |
| Essential Sound(類型、修復、清晰度、閃避、自動匹配) | essentialSound.setType/set/applyPreset/autoMatch/generateDucking |
| Remix(重新調整音樂長度) | clip.remix {seconds} |
| 音訊效果(EQ、Notch、DeNoise、DeHum、Enhance Speech…) | effects.apply(參閱 references/11-improving-audio.md) |
| 多機剪輯 | clip.createMulticam、multicam.cut、clip.multicamFlatten |
| 代理 / 擷取 | media.createProxies、media.toggleProxies、project.ingestSettings |
| 快速匯出 / 匯出媒體 / Media Encoder | export.quick、file.exportMedia、export.queue.add/start |
| 匯出單一影格 | file.exportFrame |
| EDL/XML/AAF/OMF/OTIO | file.exportInterchange、file.exportAaf、file.exportOmf |
| 專案管理員 / 移除未使用 / 連結媒體 | file.projectManager {mode, handles, dryRun}、edit.removeUnused、media.findMissing/relink/autoRelink |
| 快取清理 | mediaCache.clean、sequence.deleteRenderFiles |
截至 2026-11-03 尚未提供 — 快照,請重新檢查(§0)(在 command_list/effects.list 中搜尋無匹配):Generative Extend(AI)、Object Mask 工具(AI)、Media Intelligence 搜尋 /「搜尋相似影格」、Adobe Stock(視訊與音訊)、Lumetri Basic Correction 的 Auto 按鈕(僅 applyMatch 存在)、Render and Replace、與 After Effects/Audition 的 Dynamic Link、Team Projects/Productions/Frame.io、直接上傳至社群平台、圖層式 PSD/AI 匯入。工作區和比較檢視僅限 UI(請在橋接模式下使用 ui_* 工具)。替代方案:使用影格凍結/滑移手動延長、手動遮罩 + masks.track、動態效果交給 EffectCraft、音訊交給 SoundCraft。
配方
粗剪 → 精剪
- 匯入,整理到資料夾,命名片段;若素材很多請使用子片段。
- 建立序列,然後依序
timeline.place {items:[...]}(或使用clip.automateToSequence);使用sourceIn/duration選擇範圍。 - 刪除冗贅:
timeline.razor+edit.rippleDelete,或入/出點 +sequence.extract。 - 節奏調整:在剪輯點使用
timeline.roll,使用timeline.slip選擇正確的瞬間。 - 長段說話鏡頭:
transcript.generate(需要 Whisper 模型,若未安裝:transcript.downloadModel,約 290 MB,請先詢問使用者)→removeFillers、removePauses。
從 16:9 素材製作 9:16 Reel
file.newSequence {width:1080, height:1920, fps:<素材 fps>}。timeline.place片段 →clip.fillFrame(填滿影格;來自 1080p 為 177.8%),並視需要使用auto_reframe效果或手動motion.position關鍵影格。替代方案:將 16:9 序列做成巢狀序列,然後重新構圖這個巢狀序列。- 文字保持在安全區內:上方約保留 15%、下方約保留 25% 給平台 UI。
- 大字幕和粗體圖形是常態;鉤子要簡短(前 1–2 秒)。
- 使用預設「Social Vertical 1080×1920」匯出 +
loudnessLufs:-14。
轉場:直接剪接是預設;溶解(cross_dissolve、dip_to_black)表示時間或地點的轉變。effects.setDefaultTransition → 對選取的片段套用 trim.applyDefaultTransition。音訊:在剪輯點使用 6–12 影格的 constant_power。先檢查預留長度。
動態與關鍵影格:在兩個時間點使用 effects.setParam {effect:"motion", param:"scale|position|rotation", value, time, keyframe:true} → effects.setInterpolation {mediaTime, interpolation:"easeIn|easeOut|bezier"}。若要製作隨物體旋轉的陰影,請使用 transform 或 basic_3d 並在其下方加上 drop_shadow,而不是 Motion(Motion 是最後套用的)。
音訊:essentialSound.setType(對白/音樂/音效/環境音)→ autoMatch(預設:對白 −23、音樂 −25、音效 −21、環境音 −30 LUFS)→ 人聲 set {key:"repair.noise.on"} 等 → 音樂 type:"music" + generateDucking → 透過匯出 loudnessLufs 進行主控(社群 −14、廣播 −23)。峰值約為 −6/−3 dBFS。交接給 SoundCraft 進行波形/頻譜編輯、進階修復、母帶製作或自動化閃避。
色彩:lumetri.setInputLut(Log 轉換)→ effects.setParam {effect:"lumetri" ...}(曝光、對比、白平衡)→ lumetri.applyMatch 進行鏡頭比對 → lumetri.setLook(創意風格)→ scopes.read(檢視波形圖確認膚色正確、檢視向量示波器確認膚色線)→ video_limiter(剪輯/柔和裁剪)。交接給 EffectCraft 進行動態圖形、動畫、合成。
字幕與標題:使用 graphics.newText(來源無縫支援)。使用 captions.newTrack + captions.add 建立字幕,或使用 captions.import 匯入 SRT。在最後階段使用 upgradeCaption 圖形化字幕以獲得更好的外觀。社交媒體請遵循平台規範(CEA-608 只能大寫且限制字數)。
匯出:
- 品質檢查步驟(見 §QC):格率/幀大小、格長度(
sequence.settings)、沒有不需要的幀或重複的音訊、scopes.read(沒有裁剪或爆音)、markers.list(沒有未完成的註解)。 file.exportMedia {path, settings}或export.quick {path, preset}。檢查可用的預設或格式(export.resolve+export.presets.list)。- 社交媒體:
loudnessLufs:-14、H.264、位元率調整。 - 用於母版:ProRes 或 DNxHR。
- 封裝(如果有封裝要求):
export.package。
品質檢查
每個匯出都應經過 8 點檢查。
- ✅ 尺寸、fps、格長度與簡報相符
- ✅ 沒有不想要的灰框或不需要的幀(在入點之前和出點之後使用
render_frame檢查) - ✅ 音訊在匯出 LUFS 範圍內(
loudnessLufs),沒有失真(scopes.read峰值 < −1 dBFS) - ✅ 第一幀和最後一幀的關鍵影格與遮罩正確
- ✅ 色彩:膚色自然、無色偏、無裁剪
- ✅ 字幕:時間正確、無拼寫錯誤、格式正確
- ✅ 檔案大小合理 / 位元率符合平台建議
- ✅ 專案已歸檔(
file.projectManager {handles:24, dryRun:false}),快取已用mediaCache.clean清除
準備好的代理應自動檢查前 7 點並在匯出前報告結果。
與其他代理協作
video-editor:告訴你該剪什麼和為什麼(鉤子、節奏)。此技能則告訴你如何在工具中完成。ffmpeg:用於不在 FilmCraft 中的命令列轉碼、探測或批次處理。- 交接 — 給
sources/中每個技能區段的代理:- SoundCraft:用於波形編輯、頻譜修復、自動化母帶製作、進階閃避。使用標準專案交換格式(AAF 或 OTIO)。
- EffectCraft:用於動態圖形、鍵控合成、進階遮罩、粒子效果。使用 OTIO(
.otio)
所有對照均已在 2026-11-03 驗證。參數名稱是根據 Adobe 術語推斷的,但每個效果編目都包含 param.name 和 param_type 以進行精確比較。