Qt Quick 3D - XR の簡単な例

Qt Quick の3D XRを使用して、簡単なVRシーンを設定する方法を紹介します。

「Qt 6」というテキストと3つの色付きキューブが登場するVRシーン

この例では、Qt Quick 3D XRの基本的な機能について概説します。

XRアプリケーションを作成する際の主な違いは、main.qmlのルートアイテムが、View3D を持つWindowではなく、XrView であるという点です:

import QtQuick3D
import QtQuick3D.Xr

XrView {
    id: xrView
    XrErrorDialog { id: err }
    onInitializeFailed: (errorString) => err.run("XRView", errorString)
    referenceSpace: XrView.ReferenceSpaceLocalFloor

XrView は、View3D と同様に、3Dシーンを格納します。この例では、デスクトップPCからストリーミングする際にVRヘッドセットの初期化でエラーが発生した場合、エラーダイアログを表示するXrErrorDialog を追加します。また、このアプリケーションの参照フレームは、ユーザーが位置する部屋の床を基準として測定されるように指定します。つまり、床の位置はy = 0 となります。

参照座標系の原点は、XrOrigin によって定義されます:

    xrOrigin: theOrigin
    XrOrigin {
        id: theOrigin

        XrController {
            controller: XrController.LeftController
            poseSpace: XrController.AimPose
            CubeModel { color: "blue" }
        }

        XrController {
            controller: XrController.RightController
            poseSpace: XrController.AimPose
            CubeModel { color: "red" }
        }
    }

この例では、両手用にそれぞれ1つずつ、計2つのXrController アイテムを追加します。これらはユーザーの手の位置と向きを追跡します。XrController はNode であるため、子要素は自動的に手の動きに追従します。この場合、コントローラーの位置を可視化するために、単純な立方体のモデルを使用します。

main.qmlの残りの部分は、通常のQt Quick の3Dシーンです。

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

© 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.