このページでは

Qt Quick 3D Xr

VRヘッドセットのレンダリング

はじめに

拡張現実(XR)とは、仮想現実(VR)、拡張現実(AR)、複合現実(MR)を含む用語です。これらの技術は、周囲の世界に対するユーザーの知覚を変えることができる没入体験を作り出します。Qt Quick 3D Xrモジュールは、さまざまなデバイスやプラットフォームでQt Quick 3D 、XRアプリケーションを開発するためのAPIを提供します。

Qt Quick 3DQt Quick 3D Xr アプリケーションの違い

エントリー・ポイント

開発者の視点から見たQt Quick 3DQt Quick 3D Xr アプリケーションの主な違いは、シーンのエントリーポイントであり、実世界の単位とトラッキングデータを意識することが不可欠です。

Qt Quick 3D では、最小限のアプリケーションはカメラ、ライト、3D モデルで構成されます。これらの要素の位置とサイズは、シーンの座標系で定義されます。この座標系は任意であり、アプリケーションのニーズに合わせて開発者が定義できます。

View3D {
    width: 1280
    height: 720

    PerspectiveCamera {
        position: Qt.vector3d(0, 200, 300)
    }

    DirectionalLight {
    }

    Node {
        id: sceneRoot
        Model {
            id: model
            position: Qt.vector3d(0, -200, 0)
            source: "#Cylinder"
            materials: [ PrincipledMaterial {
                    baseColor: "red"
            }]
        }
    }
}

XRアプリケーションでは、シーンを定義する際に実世界の単位とトラッキングデータを考慮します。カメラの位置と向きは、デバイスの、またはヘッドマウントディスプレイ(HMD)の場合はユーザーの頭の位置と向きによって定義されます。シーンの単位は実世界の単位に合わせる。例えば、ドアや机は、現実世界でも仮想世界と同じ大きさにしたいものです。

注: Qt Quick 3D Xr アプリケーションのエントリーポイントは、View3D ではなく、XrView です。さらに、XrOrigin はシーンの原点を定義し、トラッキングされたアイテムが相対的に配置されます。

XrView {
    DirectionalLight {
    }

    xrOrigin: XrOrigin {
        XrController {
            id: rightController
            controller: XrController.ControllerRight
        }
        XrController {
            id: leftController
            controller: XrController.ControllerLeft
        }
    }

    Node {
        id: sceneRoot
        Model {
            id: floor
            source: ":meshes/floor.mesh"
            materials: [ PrincipledMaterial {
                    baseColor: "green"
                }]
        }

        Model {
            id: table
            property real height: 0.7
            position: Qt.vector3d(0, height - 2.5, 0)
            source: ":meshes/table.mesh"
            materials: PrincipledMaterial {
                baseColor: "white"
            }
        }

        Model {
            id: monitor
            source: ":meshes/monitor.mesh"
            y: table.height
            XrItem {
                id: theScreen
                y: monitor.yOffset + height
                x: -width / 2
                width: monitor.width
                height: monitor.height
                contentItem: ScreenContent {}
            }
        }
    }
}

追加のCMake関数

すべてのQt Quick 3D Xr Example の CmakeLists.txt ファイルにあるように、プロジェクトのトップレベル CMakeLists ファイルにいくつかの関数を追加する必要があります。

カスタムAndroidManifest.xml を指定し、それが使用されるようにするには、プロジェクトのCMakeListsファイルにこの行を追加します:

if(ANDROID)
    set_property(TARGET xr_simple APPEND PROPERTY QT_ANDROID_PACKAGE_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/android)
endif()

AndroidManifest.xml の設定の詳細については、Getting Started With Meta Quest 3ページの関連セクションを参照してください。

CMakeLists.txtの変更はvisionOSにも適用され、MacOSXBundleInfo.plist.in

if (APPLE AND CMAKE_SYSTEM_NAME STREQUAL "visionOS")
    set_target_properties(xr_simple PROPERTIES
        MACOSX_BUNDLE_GUI_IDENTIFIER io.qt.xr_simple
        MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/visionos/MacOSXBundleInfo.plist.in
    )
endif()

ここから先は?

Meta Quest 3を始める、またはApple Vision Proを始めるをご覧ください。サポートされるプラットフォームとデバイスの詳細については、サポートされるプラットフォームのページを参照してください。

特定のQt Quick 3D Xr API をお探しの場合は、API Reference をご覧ください。また、Qt Quick 3D Xr Examples では、Qt Quick 3D Xr API の使用方法をご紹介しています。

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