こんにちは、Qt Japanでソリューションエンジニアを務めている平井です。
本日は、今年10月にリリースされたQt 6.8.0でテクノロジープレビューとして追加されたQtのXR機能を実際に使ってみたい方向けに、セットアップ方法をご紹介します!
まず、Qt 6.8.0を入手しましょう。
Qtのインストールフォルダにある、MaintenanceToolを開きます。
※Qtのインストールがすんでいない方は、こちらからインストールください。
今回必要になるのは、Qt 6.8.0の下にあるMSVC 2022 64-bitもしくはMinGW 13.1.0 64-bitと、Android、それと、Additional Librariesの下にあるQt Quick 3DとQt Quick 3D Physicsです。それらを選択して、インストールしましょう。
ここまでのインストールが完了したら、Qt Creatorを開きます。
Qt Creatorは、<Qtインストールフォルダ>/Tools/QtCreator/bin/qtcreator.exeを実行することで起動できます。
Qt Creatorが開いたら、①ようこそを開き、②サンプルを選択します。③QtのバージョンとしてQt 6.8.0を選択し、④右側の検索バーにxrと入力して検索してみましょう。すると、⑤6つのXRのソースコードつきサンプルアプリが表示されます。
ヘッドセットでサンプルを実行する前に、まずは、パソコンで実行する方法を紹介します。
パソコンでサンプルを実行するには、Meta XR Simulatorを使用します。※ちなみに、Meta XR SimulatorはWindowsのみサポートとなっておりますので、ご注意ください!
ダウンロードページでDownloadを選択し、規約に同意してシミュレータをダウンロードします。
すると、以下のようにmeta_xr_simulator_v69.zipがダウンロードされます。
ダウンロードされたzipを適当な場所に移動して解凍します。
私は、Qtのインストールフォルダの直下にしてみました。
解凍すると、com.meta.xr.simulator.tgzというフォルダが出てくるので、これをまた解凍します。
私は、com.meta.xr.simulator.tgzを右クリックして、7zipのすべて展開を使用しました。
解凍されたフォルダの中にあるmeta_openxr_simulator.jsonまでのパスを、下記のようにXR_RUNTIME_JSON環境変数として登録しましょう。(この時点で開いている場合は、Qt Creatorの再起動が必要です)
次に、Windows PowerShellを開き、meta_xr_simulator_v69/com.meta.xr.simulator/package/ MetaXRSimulator/activate_simulator.ps1を実行してシミュレータを有効化します。
普通に実行すると、以下の赤文字のエラーが出るかもしれません。その場合は、
以下を実行したうえで、
もう一度、meta_xr_simulator_v69/com.meta.xr.simulator/package/ MetaXRSimulator/activate_simulator.ps1を実行します。
最終的に、以下を実行して実行ポリシーをもとに戻します。
全体像は以下のようになります。
ここまで完了したら、いよいよQt CreatorからXRのサンプルを実行してみましょう!
どのサンプルでもいいのですが、今回はQt Quick 3D - XR Simple Input Exampleを使用します。こちらをダブルクリックしましょう。
次に表示されるプロジェクトの設定画面では、Android Qt 6.8.0 Clang arm64-v8aと、Desktop Qt 6.8.0 MinGW 64-bitかDesktop Qt 6.8.0 MSVC2022 64bitのいずれかを選択します。Androidのキットは、Debugのみを選択します。(Androidのキット設定ができてない方は、後述するセットアップ手順に従ってセットアップしてください)
選択が出来たら、スクロールした右下にあるConfigure Projectを押下します。
すると、CMakeの設定が自動的に実行されます。以下のように、左下の緑色のビルド/実行ボタンのグレーアウトが解除された状態になればCMakeの設定は成功です。
※もし失敗した場合は、Qt Creatorの下部分にある全体メッセージからエラーメッセージを確認できます。
Androidキットのセットアップ手順
Qt Quick 3D - XR Simple Input Exampleを開いたときに、スクリーンショットに表示されているAndroid用のキットが表示されなかった方がいらっしゃると思います。
そんな方は、まず①編集から②Preferences...を選択しましょう。
そして、①デバイスの②Androidタブを選択すると、おそらくAndroidのセットアップができていないことから、③のようなエラーが出ていることと思います。
この場合は、JDKパスの右側にある地球儀アイコンをクリックします。
すると、以下のようなページがWebブラウザで開きます。
Versionのドロップダウンメニューで18を選択します。(2024年12月現在)
テーブルを下にスクロールし、Windows x64の.msiを選択してインストーラをダウンロードします。
すると、以下のようにインストーラがダウンロードされるので、ダブルクリックで実行します。
インストーラが起動したら、次へを押下して次に進みます。
次の画面でも、次へを押下して次に進みます。
インストールを押下してインストールを開始します。
インストールが完了したら、完了を押下してウィンドウを閉じましょう。
インストールがされたフォルダをJDKパスに指定します。
JDKのセットアップが完了したので、次にSDKのセットアップを進めます。
SDKのセットアップを押下し、表示されるダイアログではいを押下します。
以下のようなダイアログが表示されたら、OKを押下します。
すると、以下のように必要なインストールが開始します。途中でライセンス規約への合意を求められたら、回答しつつ先に進みます。
最終的には、以下のようになればOKです。
この状態で①キットの②キットタブを選択すると、③Qt 6.8.0のAndroidキットが作成完了しているはずです。
では、早速このアプリをMeta XR Simulatorで実行してみましょう。方法は簡単で、単純に緑色のビルド/実行ボタンをクリックするだけです。そうすることでソースコードがビルドされ、Meta XR Simulatorで自動的に実行されます。
以下の画像のように、①緑色のビルド/実行ボタンの上にあるボタンを選択して、②DesktopのKitが選択されていること(MinGWもしくはMSVC)を確認したうえで、③緑色のビルド/実行ボタンを押下してアプリのビルド、実行を行います。
すると、以下のようにMeta XR Simulatorが自動的に立ち上がり、アプリが実行されていることを確認することができます。
アプリが起動したので、実際に操作してみましょう。
マウスホイールを使ってズームイン/ズームアウト、またマウスホイールを押下した状態でマウスを動かすと、視点の移動ができます。右クリックをした状態でマウスを動かすと、見ている方向を動かすことができます。
また右側のコントローラーから出ている光線の照準がUIにあっている状態で左クリックをすることで、VR空間にあるアイテムの操作ができます。
他のキーの操作についての詳細は、Meta XR SimulatorでInputsからView Binding Detailsを選択し、
①Keyboard + Mouse Bindingsを選択することで、②確認できます。
ここまで、Meta XR Simulatorを使用したQtのXRのPCでの実行方法を紹介してきました。是非他のサンプルも動かしてみて下さい。
Qt 6.8.0では、Meta Quest 3や、Apple Vision Proを既にサポートしています。
今回は、Meta Quest 3でQtのアプリを実行する方法をご紹介します。
実は、XRのアプリだけではなく、Qtの通常のアプリもヘッドセットで実行可能なので、まずその方法を見ていきます。
ヘッドセットでQtアプリを実行するには、Android SDKで必要なパッケージをダウンロードする必要があります。
まず①編集から②Preferences...を選択しましょう。
①デバイスの②Androidを選択し、③SDKマネージャーを選択します。
以下のチェックされている項目を選択して、適用を押下してインストールしましょう。
ここまで完了したら、①ようこそに戻り、②QtのバージョンをQt 6.8.0にしたうえで、③検索バーを空欄にして検索をかけます。するとデフォルトですべてのサンプルが表示されるので、ここで(どれでもいいのですが)④Coffee Machineサンプルを選択します。
プロジェクトの設定画面ではAndroid Qt 6.8.0 Clang arm64-v8aを選択し、Configure Projectを選択します。
すると先ほどのようにCMakeの設定が自動的に実行され、緑色のビルド/実行ボタンが有効化されます。
今、私の手元にはMeta Quest 3があります。
ヘッドセットに付属しているUSB-Cケーブルで、ヘッドセットとPCを接続します。
※その前にMetaのスマホアプリでアカウントを作成し、開発者モードを有効化する必要があります。Meta Questのアプリで、メニュー > デバイス > ヘッドセットの設定 > 開発者モードにある開発者モードのトグルスイッチをONに変更してください。
(我々が試したところ、Adminアカウントしかアプリのデプロイができないことが確認できています。すでに誰かの持ち物であるヘッドセットに新規で自分のアカウントを作った場合、デプロイが失敗する可能性があるので、ご注意ください)
※ヘッドセットとPCを接続後、以下のようなダイアログがヘッドセットのUIに表示されるので、OKを押下してください。
Qt Creatorで、編集 >Preferencesを開きます。
この時点で、①デバイスの②デバイスタブの③ドロップダウンメニューを開くと、④Quest3が自動的に検知されているはずです。
次に、①キットの②キットタブを開き、③Android Qt 6.8.0 Clang arm64-v8aを選択し、④Run deviceをQuest 3としたうえで、Quest 3の左のアイコンが緑色になっていることを確認します。ここまで完了したら、⑤右下のOKボタンを押下します。
ここまで完了したら、Meta Quest 3がPCに接続されている状態で、①Kitが②Android Qt 6.8.0 Clang arm64-v8aであることを確認し、③ビルド/実行ボタンを押下します。こうすると、Meta Quest 3に対してアプリケーションがビルドされ、デプロイされます。
※Meta Quest 3の電源が入っていることを確認した上で実行しましょう。
すると、以下のように通常のCoffee Machineアプリがヘッドセットで実行されます。
では、つぎにXRアプリをヘッドセットで実行してみましょう。ここまでのセットアップが済んでいれば、手順は全く同じです。
まず、Qt Creatorで①xr_inputプロジェクトを右クリックして②アクティブプロジェクトに設定します。
①Kitを②Android Qt 6.8.0 Clang arm64-v8aに変更し、CMakeの設定が完了したら、電源の入ったMeta Quest 3がPCと接続されている状態で③ビルド/実行ボタンを押下します。
すると、以下のようにxr_inputアプリがヘッドセットで実行できます。右のコントローラーのトリガーボタンでUIを操作できます。
ここまでで、QtのXRアプリ実行方法について説明しました。いかがでしたでしょうか?
もし途中で手順に詰まったところがあれば、どういったところで詰まったのかや、エラーメッセージなどをこの記事にコメントください!
また、Qt Quick 3D.Xrについてさらに理解を深めるために、ドキュメントや、Qt Creatorサンプルのソースコードを確認してみて下さい。
Qt Quick 3D.Xrはまだテクノロジープレビューです。見つかったバグや機能の提案はJIRAを通して行っていただけますと、皆様も一緒にQtの機能をより魅力的なものにして行けます!