このページでは

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

Qt Quick 3D XR において、簡単な移動機能を実装する方法を解説します。

緑色のテレポートアークとターゲットマーカーが表示されたグリッドルーム

概要

このサンプルでは、非連続的な移動形式であるシンプルなフリーフォーム・テレポートシステムを使用して、仮想環境内の各地点へ移動する方法を示します。

操作方法

移動には、右コントローラーのサムスティックを使用します:

  • スティックを前方に倒して照準を合わせ、離すとテレポートします。
  • スティックを横に動かすと回転します。

実装

テレポートのロジックは、FreeformTeleporter コンポーネントに実装されています。

FreeformTeleporter {
    id: teleporter

    view: xrView
    originNode: xrOrigin
    cameraNode: xrOrigin.camera
    beamHandle: xrRightController

    rotationTriggerValue: xrRightController.xValue
    teleportTriggerValue: xrRightController.yValue

    onDoTeleportation: (cameraOriginPosition)=> {
                           xrOrigin.position = cameraOriginPosition
                       }
    onDoRotation: (cameraOriginRotation, cameraOriginPosition)=> {
                      xrOrigin.rotation = cameraOriginRotation
                      xrOrigin.position = cameraOriginPosition
                  }
}

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

QtObject xrView

xrView プロパティを使用すると、XrView の組み込みレイピッキング機能を利用できます。rayPick メソッドを実装しているオブジェクトであれば、どれでも使用できます。たとえば、プロトタイピングにはView3D が役立つでしょう。

Node originNode

originNode プロパティは、フリーフォームテレポートが操作するノードを指定します。XRでは、XrOrigin を移動させることで人工的な移動が行われます。したがって、XrView のxrOriginをoriginNode として使用します。

Node cameraNode

cameraNode プロパティは、カメラの位置を指定します。回転時には回転の中心を定義し、テレポート時には選択された位置に配置される位置を定義します。この例では、先ほど作成したトラッキング済みのXrCamera を使用します。

注:XRにおいて 、XrOrigin はシーンとユーザーの参照空間との関係を定義します。この参照空間は通常、ユーザーを取り巻く物理空間にアンカーされます。XrOrigin の位置を変更すると、物理的な位置がシーン座標にマッピングされる方法が変化します。XrCamera は、ユーザーの頭の位置を追跡します。ユーザーが物理的に移動すると、XrCamera の位置と向きは、XrOrigin を基準として変化します。

Node beamHandle

beamHandle プロパティは、テレポートビームの起点として使用されるNodeです。この例では、右側のコントローラーをbeamHandleとして使用します。

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

「 Qt Quick 3D Xr」の移動方法も参照してください 。

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.