プレイヤーを通常の移動操作から一次的に切り離しオブジェクトに関連付ける仕組み。 Station は「プレイヤーがとどまる場所」ぐらいの意味と思われる。 椅子や乗り物(Vehicle)の搭乗席などが実現できる。
Prefab
椅子: VRCChair を配置する。
任意の GameObject を椅子にする最小の手順
- VRC_Station コンポーネントを追加
- VRC_Trigger コンポーネントを追加
- VRC_Trigger の設定項目 OnInteract を選び Add
- Actions の追加操作して、 "Events from Scene" > このオブジェクト > "UseStation" を選択
Low level
- VRC_Station が中心となるコンポーネント。
Station Enter Player Location (Transform)
- station を使用開始する(station が椅子ならば、つまり座る)には SendRPC action で VRC_Station の
UseStation
メソッドを呼ぶ Disable Station Exit
が無効な場合、通常の移動操作で station の使用を終了し抜け出すことができる。- これが有効に働くにはその VRC_Station が属している GameObject が VRC_Trigger を備えている必要がある
- その VRC_Trigger に Action の定義は必要無い。
- (暗黙の action 定義があるということなのだろう)
- これが有効に働くにはその VRC_Station が属している GameObject が VRC_Trigger を備えている必要がある
Disable Station Exit
を有効にすると通常操作では使用終了できなくなる(椅子から立てない)- この場合には SendRPC で VRC_Station の
ExitStation
を呼ぶと終了できる
- この場合には SendRPC で VRC_Station の
- トリガー
- VRC_Station を追加したオブジェクトでは、VRC_Trigger でのトリガー選択肢に
OnStationEntered
とOnStationExited
が増える。 OnStationEntered
はプレイヤーが station を使用開始した時に発生するOnStationExited
はプレイヤーが station を使用終了した時に発生する
- VRC_Station を追加したオブジェクトでは、VRC_Trigger でのトリガー選択肢に
不明、不具合点
Can Use Station From Station
は 「station から station へと直接移動ができるか」を指定する- ようなのだが、現在(version w_0.12.0p3)機能していないように見える。
- 移動元、移動先の両方で有効にしていると操作 UI が表示されるが実際操作すると単に Exit する。
Seated
は station 使用中にアバターが座る場合に有効にする- 無効にすると立ったままになるのだが、現在(version w_0.12.0p3)exit した時にそこから動けない不具合があるようだ。
- さらに別の station があると抜け出せる。
- 実用的に使うには、
Disable Station Exit
を有効にして(移動操作でなく)何らかのトリガーを使ってExitStation
するようにし、そのトリガーの続きのアクションで別途のSeated
が有効な VRC_Station にUseStation
させるとよいだろう。ただし二番目の station からのExitStation
までを連続して行うと視点移動が正しく行われないとのこと。
Controls Object
は station に居る間に移動操作などの影響の先がそれになるという形で乗り物を作るためのものらしい、が使用用法は分からなかった。- (筆者に Unity の常識的な知識が足りないため?)
- VRC_Station が属している GameObject が VRC_Trigger を備えて いない 場合、なぜか "Sit" の表示が出て、実際 use できる。
- だが、これだけでは抜け出せなくなる station になってしまう
- そこに VRC_Trigger を追加して通常移動での exit 操作できるようにすると、今度は "Sit" が消えてしまう。 (こうしている意味が不明。)