SteamVR Chaperone システムの起動を探知する

ユーザーが SteamVR Chaperone システムを起動したかどうかを探知する

前提トピック

このページは以下のトピックへの知識があることを前提にしています。まず以下のトピックの内容についてご確認をお願いします。

SteamVRChapActivation_Hero_Image.png

SteamVR Chaperone システムは、VR インタラクション エリアの境界をユーザーに表示します。トラックされたデバイスが境界に近づくと、SteamVR Runtime が自動的に視覚的なヒントを出してユーザーに知らせます。この操作ガイドでは、デバイスの 1 つがインタラクション エリアに接近またはエリア外に出たことをユーザーに知らせる視覚的ヒントとインタラクションの表示方法を説明します。

Chaperone システムを使うためには、SteamVR ツールを使って Room Scale VR が正しく設定されていなければなりません。設定方法の詳細は、HTC Vive をご覧ください。

UE から Chaperone システムを無効に できません。また、推奨もしません。ただし、ユーザーの境界への接近に対する UE4 の反応はいろいろ変えることができます。

ステップ

  1. SteamVR Chaperone Boundary を表示するには、まずユーザーのデバイスが範囲に近づくタイミングを知る必要があります。UE4 では、Bind Event to OnRetunToBoundsBind Event to OnLeaveBounds ノードを使うことで探知できます。プレイヤー Pawn Blueprint で以下のノードを イベントグラフ に追加します。

    クリックしてフルサイズで表示

    ノード名

    Bind Event to OnReturnToBounds

    N/A

    Bind Event to OnLeaveBounds

    N/A

    SteamVRChaperone

    N/A

  1. [Variables] パネル上で、inBounds という名前の Boolean 変数を新規に作成し、ユーザーが Chaperone 境界に出入りするタイミングをトラックできるようにします。

    SteamVRChapActivation_01.png

  2. 次に、レベル開始後すぐにユーザーが境界の近くにいるかどうかチェックできるようにしておきます。そのためには、Bind Event to OnRetunToBounds ノードと Bind Event to OnLeaveBounds ノードを一緒に接続し、SteamVRChaperone Object Reference を両方の Bind Event ノードの Target 入力に接続します。最後に、Bind Event to OnLeaveBounds ノードを Set Tracking Origin ノードの出力の Bind Event to OnLeaveBounds ノードに接続します。これがすべて終わると、Pawn ブループリントは以下のようになります。

    クリックしてフルサイズで表示

  3. 次に、適切なメッセージを表示できるようにユーザーの範囲への出入りをトラックしやすくするブループリント ロジックを作る必要があります。まず、ReturnToBoundsLeaveBounds という名前の Custom Event ノードを作ります。次に 範囲に戻った時は In Bounds 変数を True に設定し、範囲を出た時は False に設定します。これがすべて終わると、Pawn ブループリントは以下のようになります。

    クリックしてフルサイズで表示

  4. 次に、 ReturnToBounds 出力と LeaveBounds Event 出力を Bind Event 上のそれぞれの入力に接続して、ユーザーが Chaperone 領域への出入りをトラックします。これがすべて終わると、Pawn ブループリントは以下のようになります。

    クリックしてフルサイズで表示

  5. 次は、トラッキング エリアへの出入りをユーザーに知らせる方法が必要になります。Print String ノードを使って、トラッキング エリア内にいるかどうかをティックごとにユーザーに知らせるメッセージを画面に出力します。これを Pawn ブループリントで行うには、以下のノードをイベントグラフに追加する必要があります。

    ノード名

    Event Tick

    N/A

    Branch

    N/A

    Print String x 2

    N/A

    InBounds

    N/A

  6. Event Tick 出力を Branch ノードの入力に接続して、InBoundsCondition 入力に接続し、Print String ノードを Branch ノードの True 出力と False 出力に接続します。Print String ノードに事象を説明するテキストを必ず入力します。この例では、[You have returned to the tracking bounds (トラック領域に戻りました)][You have left the tracking bounds (トラック領域から出ました)] を好きなところに自由に使うことができます。

    完了すると、Pawn ブループリントは以下のようになります。

    画像をクリックしてブループリント コードをコピー

最終結果

ここで HTC Vive HMD を装着してモーション コントローラーを持って、VR Review でプロジェクトを起動します。プロジェクトが起動したら、モーション コントローラーの片方を Chaperone 範囲に向けてゆっくり動かします。範囲に近づくと、画面に出力されるメッセージが以下の動画にように変わります。

UE プロジェクトのダウンロード

以下のリンクから、このサンプルの作成に使われた UE4 プロジェクトをダウンロードすることができます。

タグ
Unreal Engine のドキュメントを改善するために協力をお願いします!どのような改善を望んでいるかご意見をお聞かせください。
調査に参加する
キャンセル