来場者 — 8 つの状態と反応
このゲームの面白さは、来場者がどう反応するかに集約されています。ビルドを解析すると、来場者の AI は 8 つの状態を持つ機械として作られていました。状態が分かると、なぜ逃げたのか、なぜ笑っているのかが説明できます。
018 つの状態
来場者の頭脳は VisitorAi という 1 つのクラスが持ち、状況に応じて 8 つの状態を切り替えます。状態は「その場に立つ」「檻へ向かう」「逃げる」「蜂から逃げる」「真似をする」「倒れる」「物を投げる」「ラグドールになる」です。
重要なのは、笑う/逃げるが別の状態として分かれている点です。プレイヤーが何をしたかによって、来場者は「その場で真似して笑う」か「檻から離れて逃げる」かに分岐します。
| 状態 | クラス名 | 何をしているか | きっかけ |
|---|---|---|---|
| 待機 | VisitorIdleState | その場で立つ・きょろきょろする | 初期状態 |
| 檻へ移動 | VisitorGoToCageState | 檻の前まで歩いてくる | 興味を持ったとき |
| 逃避 | VisitorFleeState | 檻から離れて走り去る | 怖い行動を見たとき |
| 蜂から逃避 | VisitorBeesFleeState | 蜂を避けて逃げる | 蜂に刺されたとき |
| 模倣 | VisitorMockState | プレイヤーの動きを真似して笑う | 面白い行動を見たとき |
| 転倒 | VisitorFallState | バナナの皮などで転ぶ | 足元のトラップ |
| 物を投げる | VisitorThrowItemState | 拾った物を投げ返す | 攻撃されたとき |
| ラグドール | VisitorRagdoll | 力なく倒れ込む | 強い衝撃を受けたとき |
02実際のセリフ
来場者のセリフは英語のまま表示されます。ビルド内から確認できた実例を、ニュアンスごと日本語にしました。
| 英語 | 日本語 | 出る場面 |
|---|---|---|
| Quick, take a picture! | 早く、写真撮って! | サルが何か面白いことをしたとき |
| Imagine being in there all day. | 一日中あの中にいるなんて、想像もできないね。 | 檻を眺めているとき |
| He just copied my movement! | こいつ、今わたしの動きを真似した! | 模倣(Mock)状態 |
| Stay away from the monster. | あの怪物に近づかないで。 | 危険な行動を見たとき |
| Security! … NOW | 警備員!…今すぐ! | 警備員を呼ぶとき |
03何をすると反応するか
来場者の反応は、プレイヤーの行動そのものではなく「来場者が何を見たか」で決まります。檻の外にいる来場者は、プレイヤーが檻の近くで何か派手なことをすると見に来ます。逆に、檻の奥で静かにしていると、来場者は来てもすぐ離れます。
バナナの皮は捨てられ、踏んだ来場者が滑ります(BananaPeelDetector)。放尿(X)と排泄(Z)も反応の対象です。これらはタスクの対象ではなく、来場者を動かすための手段として使います。
- 物を壊す・投げる → 驚く/逃げる/物を投げ返す。
- バナナの皮を捨てる → 踏んだ来場者が転ぶ。
- 放尿・排泄 → 近くの来場者が反応する。
- 蜂をけしかける → 蜂から逃避(FleeBees)で逃げる。
- 静かにしている → 来場者は来てもすぐ離れる。
04掴む・投げる
来場者は掴める対象として実装されています(VisitorPickable)。掴んで運び、R で投げると、来場者はラグドール状態になって倒れます。タスクには「来場者を連れて行く(BringVisitor)」型があり、サイの檻などへ運ぶのが目的とみられます。
ただし、掴んだまま走ると来場者が暴れて落とすことがあります。落ちた来場者は立ち上がって逃げるため、目的地まで一気に運ぶのが安全です。