120 lines
2.0 KiB
TypeScript
120 lines
2.0 KiB
TypeScript
|
|
/**
|
|||
|
|
* 鏡頭語言系統類型定義
|
|||
|
|
*
|
|||
|
|
* 此結構為 AI 知識層,前端不硬編、不限制
|
|||
|
|
* 僅結構化呈現 AI 的選擇結果
|
|||
|
|
*
|
|||
|
|
* 設計為可擴充:透過 Record<string, unknown> 允許動態欄位
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 基礎鏡頭語言結構
|
|||
|
|
* 包含核心欄位與可擴充的額外欄位
|
|||
|
|
*/
|
|||
|
|
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
|
|||
|
|
}
|
|||
|
|
|