ロコモーション検証
このモジュールは、VRShared に用意されているロコモーションシステムを拡張し、適用する前にいくつかのロコモーションの試行を検証します(移動が制限された場所、収容人数が限られた場所、制限区域、個人の安全ゾーンなど)。
ロコモーション検証システム
ユーザーが禁じられたゾーンに移動しようとしていないかを判断するために、すべてのロコモーションシステムは最初に HardwareRig に配置された HardwareLocomotionValidation コンポーネントに対して、CanMoveHeadset() メソッドを使ってその位置に移動できるかどうかを確認します。これに対する返答として、HardwareLocomotionValidation はまず、その移動がすべての ILocomotionValidator 子オブジェクト、およびネットワーク上のローカルユーザーを表す NetworkedRig インスタンスに配置された NetworkLocomotionValidation コンポーネントのすべての ILocomotionValidator 子オブジェクトによって検証されます。
これにより、以下の2種類の制限を設けることができます。
- オフラインデータに関連する制限(ハードウェア情報、静的シーンなど)
- ユーザーのネットワーク状態に関連する制限
その他の制限
さらに、ロコモーションは使用されるロコモーションシステムに応じて、以下の他の要因によって制限されます。
RigLocomotion:ユーザーは、RigLocomotion のロコモーションレイヤーマスクに含まれるレイヤーを持つコライダー上にのみテレポートできます(例えば、TeleportTargetレイヤー)。LocomotionValidatedDesktopControllerデスクトップロコモーション:デスクトップビルドの場合、キーボードによって開始された移動はRigLocomotionのテレポート制限を無視することができるため、このコントローラーは移動後の頭の位置が正しいかどうかを確認します。チェック項目は以下です。- 移動後にコライダーの内部に入らないこと
- 移動後に下に正しい歩行可能なナビゲーションメッシュポイントがあること
デモ
デモシーンはAssets\Photon\FusionAddons\LocomotionValidation\Demo\Scenes\LocomotionValidation.unityにあります。
シーンには、橋でつながれた複数のエリアがあります。
これらのオブジェクトは、レイヤーとナビメッシュのパラメーターに関して異なる設定がされています。
- 緑のオブジェクト:ナビゲーションで
Walkableに設定されており、レイヤーはLocomotionに設定されています(これはリグのRigLocomotionのLocomotionLayerMaskパラメーターと同じです)。したがって、プレイヤーはこれらの上を移動したりテレポートしたりできます。 - 赤のオブジェクト:ナビゲーションで
Not Walkableに設定されており、レイヤーはForbiddenLocomotionに設定されています。したがって、プレイヤーはこれらの上を移動したりテレポートしたりすることはできません。 - オレンジのオブジェクト:ナビゲーションで
Not Walkableに設定されており、レイヤーはLocomotionに設定されています(これはリグのRigLocomotionのLocomotionLayerMaskパラメーターと同じです)。したがって、プレイヤーはこれらの上を歩くことはできませんが、テレポートすることはできます。 - グレーのシリンダー:これらは
ForbiddenZonesコンポーネント(HardwareRigやDesktopRig)で参照されています。ForbiddenZoneスクリプトは、ILocomotionValidatorインターフェースを実装する方法を示しています。この例では、プレイヤーの頭がゾーン内に入っているときにForbiddenZoneのCanMoveHeadset()関数が false を返し、フェーダーをトリガーします(これはInvalidMoveCameraFaderおよびHardwareLocomotionValidationスクリプトによるものです)。
プレイヤーがオレンジのオブジェクトにテレポートすると、その上を歩くことができるため、このエリアに閉じ込められることを避けることができます。その後、ユーザーが緑のオブジェクトに戻るとロコモーション検証が再度有効化されます。この動作を避けたい場合は、Not WalkableオブジェクトがForbiddenLocomotionレイヤーに配置されていることを確認してください。
ダウンロード
このアドオン最新バージョンはaddon projectに含まれています。
サポートされているトポロジ
- shared mode
Changelog
- Version 1.0.2: Improve demo scene with ForbiddenZones
- Version 1.0.1: Add demo scene + add namespace
- Version 1.0.0: First release