前回の記事で書いた、エレベータのシーケンスに合わせて、いくつか作り込んだ機能がある。
一つ目は、エレベータのゲートのランプやカーゴ内の照明の制御。オペレーションエリアにプレイヤーが入ると照明が点灯し、エリアからでると消灯する。これはステートマシンの遷移の中で簡単に実装できた。
二つ目は、ドアの開閉エリアへプレイヤーが入った場合、ドアを閉める途中の場合はこれを停止して開き直す制御。これはエリアに入った/出たというイベントによるステート遷移で比較的簡単であったが、ドアの開閉のロジックで中断ともとに戻す動作の作り込みが必要であった。
三つ目が、エレベータに乗っている場合のカーゴの壁面(ガラス)の反射に関する制御。これまで窓などの反射では固定のリフレクションプローブで違和感なかったが、エレベータに乗って上下する場合、反射すべき映像も移動しないといけない。このため初めてリフレクションプローブのリアルタイム更新を使用した。これにより反射の違和感が無くなるが、負荷的には重いものなのでエレベータシーケンスの中のカーゴの移動中にのみ更新制御を入れ込んだ。
上記いずれも、ステートマシンの遷移にうまく組み込むことができ、スムースに開発できた。