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
|
||
}
|
||
|