This document is about: FUSION 1
SWITCH TO

このページは編集中です。更新が保留になっている可能性があります。

ロコモーション検証


Available in the Industries Circle
Circle
Fusion Industriesプロトタイピングアドオン

このモジュールは、VRShared に用意されているロコモーションシステムを拡張し、適用する前にいくつかのロコモーションの試行を検証します(移動が制限された場所、収容人数が限られた場所、制限区域、個人の安全ゾーンなど)。

ロコモーション検証システム

ユーザーが禁じられたゾーンに移動しようとしていないかを判断するために、すべてのロコモーションシステムは最初に HardwareRig に配置された HardwareLocomotionValidation コンポーネントに対して、CanMoveHeadset() メソッドを使ってその位置に移動できるかどうかを確認します。これに対する返答として、HardwareLocomotionValidation はまず、その移動がすべての ILocomotionValidator 子オブジェクト、およびネットワーク上のローカルユーザーを表す NetworkedRig インスタンスに配置された NetworkLocomotionValidation コンポーネントのすべての ILocomotionValidator 子オブジェクトによって検証されます。

Locomotion validation system

これにより、以下の2種類の制限を設けることができます。

  • オフラインデータに関連する制限(ハードウェア情報、静的シーンなど)
  • ユーザーのネットワーク状態に関連する制限

その他の制限

さらに、ロコモーションは使用されるロコモーションシステムに応じて、以下の他の要因によって制限されます。

  • RigLocomotion:ユーザーは、RigLocomotion のロコモーションレイヤーマスクに含まれるレイヤーを持つコライダー上にのみテレポートできます(例えば、TeleportTarget レイヤー)。

  • LocomotionValidatedDesktopController デスクトップロコモーション:デスクトップビルドの場合、キーボードによって開始された移動は RigLocomotion のテレポート制限を無視することができるため、このコントローラーは移動後の頭の位置が正しいかどうかを確認します。チェック項目は以下です。

    • 移動後にコライダーの内部に入らないこと
    • 移動後に下に正しい歩行可能なナビゲーションメッシュポイントがあること

デモ

デモシーンはAssets\Photon\FusionAddons\LocomotionValidation\Demo\Scenes\LocomotionValidation.unityにあります。

Fusion Industries Addon Locomotion Validation

シーンには、橋でつながれた複数のエリアがあります。
これらのオブジェクトは、レイヤーとナビメッシュのパラメーターに関して異なる設定がされています。

  • 緑のオブジェクト:ナビゲーションで Walkable に設定されており、レイヤーは Locomotion に設定されています(これはリグの RigLocomotionLocomotionLayerMask パラメーターと同じです)。したがって、プレイヤーはこれらの上を移動したりテレポートしたりできます。
  • 赤のオブジェクト:ナビゲーションで Not Walkable に設定されており、レイヤーは ForbiddenLocomotion に設定されています。したがって、プレイヤーはこれらの上を移動したりテレポートしたりすることはできません。
  • オレンジのオブジェクト:ナビゲーションで Not Walkable に設定されており、レイヤーは Locomotion に設定されています(これはリグの RigLocomotionLocomotionLayerMask パラメーターと同じです)。したがって、プレイヤーはこれらの上を歩くことはできませんが、テレポートすることはできます。
  • グレーのシリンダー:これらは ForbiddenZones コンポーネント(HardwareRigDesktopRig)で参照されています。ForbiddenZone スクリプトは、ILocomotionValidator インターフェースを実装する方法を示しています。この例では、プレイヤーの頭がゾーン内に入っているときに ForbiddenZoneCanMoveHeadset() 関数が 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
Back to top