SteamVR Chaperone システムとのインタラクション

SteamVR Chaperone システムの各種コンポーネントとインタラクトする方法を説明します。

前提トピック

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

SVRChapInteraction_Hero_Image.png

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

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

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

ステップ

以下のガイドでは、VR インタラクション エリアの四隅でスタティックメッシュをスポーンする方法、および VR インタラクションのサイズと形状を正確なラインで描画する方法を説明します。

Lighthouse Basestation Static Mesh & Texture から Lighthouse Basestation スタティックメッシュとテクスチャをダウンロードすることができます。

  1. まず Player Pawn ブループリントを開いて baseStationArray という名前の Static Mesh Component 変数を追加します。この変数は VR インタラクションの四隅でスポーンしたいスタティックメッシュを格納するために使うので、 baseStationArray 変数を作成する時は Variable Type を必ず Array に設定してください。

    SVRChapInteraction_00.png

  2. 次に、以下のノードに次の値を付けて イベントグラフ に追加します。

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

    ノード名

    Motion Controller (R) Trigger

    N/A

    SteamVRChaperone

    N/A

    baseStationArray

    N/A

    Get Bounds

    N/A

    ForEachLoop

    N/A

    Add Static Mesh Component

    Static Mesh: lh_basestation_vive

    Destroy Component

    N/A

    Array Add

    N/A

    IsValid

    N/A

  3. 次に、ユーザーが設定する SteamVR インタラクション エリアの情報の取得方法を設定する必要があります。SteamVR Chaperone 範囲を作るポイントとインタラクトできるように、Pawn ブループリント内の SteamVRChaperone 変数出力を Get Bounds ノードの入力に接続します。

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

  4. VR インタラクション エリアを作るポイントを取得したので、次は SteamVRChaperone のそれぞれの角を通り、Motion Controller(R) Trigger が押されるとスタティックメッシュを追加する ForEachLoop を設定します。この操作を Pawn ブループリントで行うために、イベントグラフを下図とまったく同じように設定してください。

    Copy Node Graph
  5. VR インタラクション エリアの四隅でスタティックメッシュを表示する機能を使って、削除すべき有効なスタティックメッシュがあるか確認し、ある場合は削除するようにブループリント ロジックを設定します。この操作を Pawn ブループリントで行うために、イベントグラフを下図とまったく同じように設定してください。

    Copy Node Graph
  6. まず、[Variables] セクションで SampleSurface という名前の Vector 変数を新規作成します。これを使って VR インタラクション エリアのサーフェス法線を格納します。

    SVRChapInteraction_05.png

  7. 次に、以下のノードに次の値を付けて イベントグラフ に追加します。

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

    ノード名

    Motion Controller (R) Trigger

    N/A

    SteamVRChaperone

    N/A

    GetBounds

    N/A

    Float / Float x 2

    0,2

    SampleSurface

    N/A

    MinimumAreaRectangle

    N/A

    DrawDebugBox

    N/A

  8. 必要なノードをイベントグラフに追加したので、次はそれらを接続して、Motion Controller(R) Trigger が押されると VR インタラクション エリアを構成し、その周りにボックスを描く頂点の位置をサンプリングすることができます。下図と同じになるようにノードを設定すると、ブループリントでこの操作を実行することができます。

    Copy Node Graph

最終結果

すべて接続したら、[VR Preview] ボタンでレベルを起動し、HTC Vive HMD を装着してモーション コントローラーを持ちます。右手のモーション コントローラーでトリガーを握ると、Steam VR インタラクション エリアの範囲が以下の動画のように表示されます。

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

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

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