ai-cut/app/types/camera.ts

120 lines
2.0 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* 鏡頭語言系統類型定義
*
* 此結構為 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
}