本日は MRTK の調査枠です。
MRTK 2.5を使ってHoloLens2上でObjects3Dフォルダのglbファイルを読み込む手順を記事にします。
MRTKのglTF読み込み
MRTK を使って glTF 形式の3Dデータを読み込む場合は以下の名前空間のクラスを利用します。
microsoft.github.io
microsoft.github.io
GltfUtility クラスが gltf または glb 拡張子のモデル読み込み機能を提供します。
microsoft.github.io
HoloLens2のObject3Dフォルダ
HoloLens2 内の Objects3D フォルダは KnownFolders クラスを使って、スクリプトからアクセス可能です。
docs.microsoft.com
詳細は以下の記事を参照ください。
bluebirdofoz.hatenablog.com
読み込みサンプル
MRTK 2.5をインポートして基本設定を行ったサンプルプロジェクトを作成しました。
MRTK を使ったプロジェクトの基本設定の手順は以下の記事を参考にしてください。
bluebirdofoz.hatenablog.com
Objects3Dフォルダ直下にある指定ファイル名の glb ファイルを動的読み込みする以下のスクリプトを作成しました。
・GLBLoadTest.cs
以下の部分が glb ファイルの読み込み処理になります。
// 読み込みファイルのバイト配列を取得する byte[] modelByteData = GetFileAsByteArray(filepath); // バイト配列を指定して読み込み GltfObject gltfObject = GltfUtility.GetGltfObjectFromGlb(modelByteData); try { // 非同期の読み込み処理を完了まで待機する await gltfObject.ConstructAsync(); } catch (Exception e) { Debug.LogError($"GlbLoad failed - {e.Message}\n{e.StackTrace}"); return; }
作成したサンプルスクリプトを任意のオブジェクトにアタッチし、フィールドに読み込み対象のファイル名を指定します。
HoloLens2 上でObjects3Dフォルダにアクセスするには Capability の設定を行う必要があります。
メニューから Edit -> Project Settings.. を開き、[Capabilities]の[Objects3D]のチェックを有効にしておきます。
シーンを再生して動作を確認します。
サンプルスクリプトは UnityEditor での実行時には Assets/StreamingAssets フォルダ直下を読み込むように設定しています。
HoloLens2へのアプリインストール
作成したプロジェクトをビルドして HoloLens2 へインストールします。
アプリケーションのビルドとインストール手順は以下の記事を参考にしてください。
bluebirdofoz.hatenablog.com
HoloLens2への3Dモデルのアップロード
Type-C のUSB接続で HoloLens2 を PC に接続すると、HoloLens2 上のストレージを確認できます。
ここから 3DObjects フォルダに直接ファイルをアップロードします。
HoloLens2での動作確認
アプリを起動した後、読み込みを待って目の前に3Dモデルが表示されれば成功です。