Qt Quick 3D - XR フリーフォームテレポートの例

Qt Quick 3D XR で簡単なロコモーションを作成する方法を説明します。

概要

この例では、単純なフリーフォーム・テレポート・システム(非連続的な移動形態)を使用して、仮想環境内の場所に移動する方法を示します。

コントロール

このサンプルを実行するときは、以下のコントロールをナビゲーションに使用します。

アクションコントロール
回転右コントローラーの左右スティック
照準とテレポート右コントローラーの前方スティック

実装

すべてのロジックがこの型に含まれているため、他のプロジェクトでFreeformTeleporter を簡単に再利用できます。

FreeformTeleporter {
    id: teleporter

    rayPicker: xrView
    cameraOrigin: xrOrigin
    camera: xrOrigin.camera
    beamHandle: xrRightController
    onDoTeleportation: (cameraOriginPosition)=> {
                           xrOrigin.position = cameraOriginPosition
                       }
    onDoRotation: (cameraOriginRotation, cameraOriginPosition)=> {
                      xrOrigin.rotation = cameraOriginRotation
                      xrOrigin.position = cameraOriginPosition
                  }
}

FreeformTeleporter コンポーネントには、次のプロパティを設定する必要があります:

var rayPicker

rayPicker プロパティには、rayPick メソッドを実装する任意のオブジェクトを指定できます。この例では、XrView の組み込みレイ ピック メソッドを使用しています。

Node cameraOrigin

cameraOrigin プロパティは、カメラのローカル参照空間の中心です。Xr では、カメラのようなトラッキングされたアイテムが相対的に配置される場所になります。したがって、XrOrigin ノードを cameraOrigin として使用します。

Node camera

camera プロパティには、シーンのレンダリングに使用するカメラが含まれます。この例では、先ほど作成したトラッキングされたXrCamera を使用します。

Node beamHandle

beamHandle プロパティは、テレポーテーション ビームの始点として使用されるノードです。この例では、beamHandle として右コントローラxrRightController を使用します。

サンプルプロジェクト @ code.qt.io

Qt Quick 3D Xr の Locomotionも参照してください

©2024 The Qt Company Ltd. 本書に含まれるドキュメントの著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。