# 排站位：一场戏开场时谁在哪

给每一场排开场站位：这一场一开始，每个出场的人在这个地点的哪件东西旁、坐还是站、面朝哪。分镜这一场第一段的开场走位就照抄它，之后各段的走位从这一句接着往下写——它定下来以后，同一场里谁坐在哪就不会每段变一次。

为什么要先排：短剧的每一段视频是一次独立生成，各段自己决定谁坐哪。群戏里六个人围一张长桌，第一段桌边多出五个没名字的宾客，第三段端酒坐着的人穿着主角的衣服——走位句一字不差地交接也没用，因为每一场第一段的那一句是分镜自己编的。

每场拿到：这一场的剧本（场次的 `flow`）、出场人物（`cast`）、这个地点认出来的东西（`locations[].items`）。

## 规则

1. **先读这一场的剧本，分清谁开场就在、谁是后来才进来的。** 后来才进来的人开场不在（`present: false`）。剧本没写某人进场，就当他开场就在。
2. **坐还是站跟着剧本走**：一开场大家在吃饭、开会、喝茶、乘船，就坐着；站着的人要有理由——刚进门、在伺候、在撑船、被罚站、正要发难。不要为了画面好看让坐着的戏站起来。
3. **按身份和关系排位置**，让观众一眼看懂权力关系：
   - 长辈、掌权的人坐主位（正对入口、地势最高或最中间的那个位置）。
   - 对立的两方隔着桌子相对，或者一坐一站；主角和站在他那边的人在同一侧。
   - 被孤立、被看不起的人坐在最末的位置（离主位最远、靠门的一端），或者干脆站着。
4. **给镜头留路**：这场戏里对话最多的两个人之间不要隔着第三个人；不要把所有重要的人都排在同一侧背对入口。
5. **朝向**：坐着的人一般面朝桌子（东侧的人面朝西）；坐主位的人面朝全场；站着的人面朝他开场时在看、在说话的那个人或方向。
6. **群演**：剧本没写还有别人，就是没有别人，其余座位空着（`extras: 0`）——不要为了「热闹」加人，视频模型会把多出来的位置画成一个个有脸的人。剧本写了满座宾客、旁观的人群，才给群演人数和他们在哪。
7. **只使用认出来的那些东西站位**——认图结果里没有的家具不要发明，剧本里提到、图上没有的也不要使用。同一侧的几个人沿这一侧排开（`along` 至少拉开 0.12），不叠在同一个点上。只有 `on: true` 的东西才能写 `on`。围着桌子坐的人落在桌子那一件的哪一侧（「坐在长餐桌东侧」），不要落在「椅子」上。
8. **前后几场连着在同一个地点**（一路坐船、一顿饭分几场）：没有剧情让人换位置，就照上一场的位置排，只改朝向和坐站。观众记得谁坐在哪。
9. **写一句 `why`**：为什么这么排（谁开场不在、谁坐主位、为什么站着）。报告里显示给人看，人改的时候知道原来的考虑。

## 按一句话调整

有人说「把胡二爷挪到船头」「萧老太太改成站着」时，是在**现在的站位上按要求改**，不是重新排：要求说到的人和东西才动，其余每个人的 `item`、`side`、`along`、`posture`、`facing` 和群演一律照抄现在的。要求是人定的，跟剧本或上面几条冲突时按要求来；要求里说的东西认图结果里没有，就落在最接近的那件上，并在 `why` 里说一句。改完照样跑 `validate`。

更快的做法是直接在报告页面上拖：见 SKILL.md 的 Step 5。

## 写法

```json
{
  "ep": 1, "scene": 2, "sceneId": "S01",
  "cast": [{"id":"C01","name":"沈知微"}, {"id":"C04","name":"胡二爷"}],
  "places": [
    {"id":"C01","name":"沈知微","present":false,"item":null,"side":null,"along":null,"posture":null,"facing":null},
    {"id":"C04","name":"胡二爷","present":true,"item":"第三排坐板","side":"on","along":0.5,"posture":"sit","facing":"north"}
  ],
  "extras": 0,
  "extrasWhere": null,
  "why": "沈知微随后进舱，开场不在；胡二爷带着货担坐第三排。"
}
```

`cast` 是 `seed` 搬来的，不改；`places` 里每个出场人物正好一条。字段的完整说明见 `schema.md`。
