# 场景空镜与地理保持

## 地理测试 (`IMG-04`)

场景空镜保持已接受的布局、方向、固定锚点、材质与光向。
默认不带角色，以保持作为地理参考的复用性；只在创作者明确需要尺度参照
或已接受的场景占用状态时加人。

## 目录

1. 目的与输入
2. Location 与 View
3. 地理优先的编写法
4. 光线、气氛与空场
5. 输出与审查
6. 制作形态投影

## 1. 目的与输入

地点板让后续镜头共享同一方位清楚的空间。输入包括已接受的地点、一个准确观察视角及时间天气状态、固定锚点、材质与视觉风格、空场政策、光向及来源指针。

**`reviewed_invariant`**：提示词必须保持场景的地理、方向、固定锚点及其相对关系。装饰丰富不能补救门窗移位或尺度不明。

## 2. Location 与 View

- **Location** 拥有不会随镜头轻易变化的边界、入口、功能区、固定结构和关键材质。
- **View** 选择观察方向、可见区块、局部陈设、时间/天气/灯光状态；它不是随意重建 Location。
- 镜头焦段、机位高低或画幅通常属于构图选择，不足以单独成为新 Location。若一个角度显示不同侧，需要 View 而非新场景。

先画“文字地图”：从哪个入口看向哪个方向，必要的前中后景分别是什么，关键锚点在彼此哪一侧，演员可能从哪里进出。只有与识别、调度或连续性有关的结构进入 prompt。

## 3. 地理优先的编写法

### 必要层次

1. **身份与功能**：这是什么空间，服务什么活动，整体尺度。
2. **View 与方向**：观察位置、朝向、可见边界；必要时给左右以画面/场内参照，避免“左边”含义漂移。
3. **入口与路线**：门、走廊、楼梯、通道在哪里，彼此如何连接。
4. **固定锚点**：柜台、柱、窗、机器、壁炉等不可移动物及相对关系。
5. **材料与色彩**：对辨认结构有用的墙地顶、磨损和主次色。
6. **当前 state**：摆设、天气、时间与光线变化，不把临时 dressing 写成永久地理。

### 空间语言

- **`craft_default`**：用“两两关系 + 视线终点”而非无序物件清单。例如“从卷帘门向内看，检修台沿右墙延伸，尽头唯一安全门正对通道”。
- **`craft_default`**：优先保持一至三个强锚点，次要装饰可概括，防止提示词在细节噪声中失去布局。
- **`reviewed_invariant`**：同一 View 中的前后左右、入口和光向必须能共存；不能在一句中把同一门同时置于左右墙。
- **`taste_option`**：广角或标准视角、对称或偏心构图、写实或插画由视觉方向决定。

## 4. 光线、气氛与空场

### 光线连续性

说明主光来源与方向、时间/天气关系、实际灯具及需要保留的暗区。不要只说“电影光”。若视觉风格要求冷色但场景有暖色实际灯，写清主次关系而非删掉其一。

### 跨 View 的光线一致性 (`IMG-10`)

上一条管的是**一个 View 内部**光向自洽。同一 Location 通常按观察方向拆成多个 View
（例如同一条走廊分别做朝北与朝东两块板），这些板会被同一场戏的正反打互相剪接，
所以它们之间也要能对上。

**`reviewed_invariant`**：同一 Location 在同一时间/天气 state 下的各个 View，必须共享
同一套主光来源、色温关系与光比方向；差异只能来自已记录的成因，并写进对应的 delta。

同一地点、同一状态的各观察面要并排比较。色温和主光不一致时，单板可能各自成立，
剪接后却像不同时间或房间，逐板审查不足以发现这类问题。

对齐清单（同一 Location + 同一 time/weather state 内）：

- **主光来源**：是同一个窗、同一组灯具、同一片天空吗？换 View 只应改变我们从哪一侧看它，
  不改变它是什么。
- **色温关系**：冷暖主次是否一致。某块板把暖色实际灯升为主光而别的板压成次要，就是一次
  未记录的变化。
- **光比与暗区方向**：亮暗落差的量级，以及暗区落在空间的哪一侧。
- **实际灯具开关状态**：同一 state 下不能一块板亮着吊灯、另一块板熄着。

允许且应当记录的差异：View 朝向决定的逆光/顺光关系、遮挡造成的局部落影、以及朝窗与
背窗的自然亮度差。这些是同一光源在不同观察方向下的正常表现，写清来源即可，不需要拉平。

需要改光时（时段推进、停电、开灯、天气转变），走 delta：它是一个新的 time/weather state，
同一 Location 的**所有**已存在 View 都要一起交代如何变化，不能只改被用到的那一块。

### `empty_stage` 政策

- `required`：不出现剧情角色、临时群众或叙事动作；固定家具/功能设备保留。
- `preferred`：以空场为主，允许不具身份的尺度提示，但必须不妨碍地理读取。
- `not_required`：可有人群或工作痕迹，但不能编造具体角色事件。

**`structural_invariant`**：`empty_stage: required` 与“主角站在入口”等演员要求显式冲突。若确需人物尺度参照，先改政策或使用无身份中性参照，经创作者接受。

### 气氛

把“压抑、危险、温暖”翻译为已经有依据的空间选择：通道狭窄感、光比、材质反射、空气状态、色温关系。不得为气氛新增剧情事故、封锁出口或移动固定结构。

## 5. 输出与审查

### 失败征兆

- 场景像装饰清单，没有入口、方向或相对位置；
- 为不同 View 搬动固定门窗，或把临时箱子写成永久锚点；
- `empty_stage` 要求空场却出现演员、冲突人群或剧情动作；
- 夜雨状态被混入晴天基准 plate，没有 variant；
- 光线来源互相矛盾；所谓“宽阔”没有任何尺度关系；
- 同一 Location 同一 state 的各 View 各自选了不同主光或冷暖主次，单看都成立、剪在一起
  却像两个时间。

### 检查

| 检查 | 分类 | 处理 |
|---|---|---|
| Location/View ID 与版本可解析 | `structural_invariant` | 未解析阻断 |
| empty-stage 与人物要求显式冲突 | `structural_invariant` | 先解决政策 |
| 地理、方向、固定锚点被保留 | `reviewed_invariant` | 审查者引用资产事实与提示词 |
| 装饰是否压过布局 | `craft_default` | 精简无功能物件清单 |
| 光线是否可解释且连续 | `reviewed_invariant` | 指出光源/方向冲突 |
| 同一 Location 同一 state 各 View 的主光、色温与光比是否对齐 | `reviewed_invariant` | 并排比同组 View，差异需成因与 delta |
| 镜头审美与构图 | `taste_option` | 保留创作者选择 |

输出一个 `IMG-...` 地点板条目和可复制正文；ID 留在标题，正文用清楚自然语言。不得生成地点板图片。

## 6. 制作形态投影

`视觉设定.md` 的项目视觉方向与已明确制作形态决定这张场景板用什么词汇表达空间，不决定空间
长什么样。

### 从形态取什么

- **背景密度与信息层级**：绘制形态常靠密度差和留白建立主次，实拍形态常靠光比、景深和
  空气层次；同一份地理在两种形态里选择不同的详略分配。
- **层拆**：固定地理层、可动层（帘、水、灯）、效果层各自画什么；哪些层在参考板上必须
  处于静止的已接受状态。
- **边缘处理**：封闭轮廓、散边、洇化或摄影式虚实——决定入口与锚点的边界怎样被读出来。
- **材质对光的响应**：墙地顶的反射、粗糙与透明关系在该形态里由什么承担（笔触、平涂关系、
  真实光源）。
- **留白是否是合法的空间语言**：某些形态用留白表达纵深与压力，这是可执行词汇，不是省略。

### 形态不得改写什么

- 入口、路径、固定锚点及其相对关系与观察方向；
- `empty_stage` 政策与允许出现的人物类别；
- 标牌与界面的文字政策及承载面；
- 已接受的时间、天气、光态版本与光源的可解释来源。

**`reviewed_invariant`**：简化掉的只能是装饰，不能是本 View 必须可核对的地理证据。若形态
要求大面积留白或两层平涂，先确定“从卷帘门向内看，检修台沿右墙延伸，尽头唯一安全门正对
通道”这类关系仍然可读；不能因为并进墙面更整齐就让安全门消失。做不到时缩小留白范围或
改选观察面，并把冲突记为 `creator_decision_needed`，不静默丢锚点。

同理，形态可以决定“气氛靠什么承担”，但不得为了形态好看新增剧情事故、封锁出口、移动固定
结构，或把临时 dressing 提升为永久地理。
