/** * 鏡頭語言系統類型定義 * * 此結構為 AI 知識層,前端不硬編、不限制 * 僅結構化呈現 AI 的選擇結果 * * 設計為可擴充:透過 Record 允許動態欄位 */ /** * 基礎鏡頭語言結構 * 包含核心欄位與可擴充的額外欄位 */ export interface CameraLanguage { /** * 鏡頭與景別(Shot Size & Lens) * 例如:Extreme Long Shot (XLS), Long Shot (LS), Medium Shot (MS), * Close-Up (CU), Extreme Close-Up (ECU), Over-the-Shoulder (OTS), POV */ shot: string /** * 運鏡(Camera Movement) * 例如:Pan, Tilt, Dolly In/Out, Truck, Crane, Handheld, Dolly Zoom */ movement: string /** * 構圖(Composition) * 例如:Rule of Thirds, Leading Lines, Depth of Field, Dutch Angle, * Headroom, 180-degree Rule */ composition: string /** * 光線(Lighting) * 例如:Three-Point Lighting, High Key, Low Key, Hard Light, Soft Light */ lighting: string /** * 描述(Description) * 鏡頭的詳細描述或說明 */ description: string /** * 可擴充欄位 * 允許 AI 或使用者動態添加額外的鏡頭語言資訊 * 例如:lens, focalLength, aperture, iso, colorGrading 等 */ [key: string]: unknown } /** * 分鏡表單一鏡頭結構 */ export interface StoryboardShot { /** * 鏡頭編號 */ shotNumber: number /** * 鏡頭語言 */ camera: CameraLanguage /** * 場景描述 */ scene: string /** * 對話或旁白 */ dialogue?: string /** * 時長(秒) */ duration?: number /** * 可擴充欄位 */ [key: string]: unknown } /** * 完整分鏡表結構 */ export interface Storyboard { /** * 標題 */ title: string /** * 風格描述 */ style?: string /** * 節奏描述 */ pace?: string /** * 鏡頭列表 */ shots: StoryboardShot[] /** * 可擴充欄位 */ [key: string]: unknown }