Table of Contents

実景と正確に位置合わせされた 3D コンテンツを作成する

このドキュメントでは、仮想物体を現実空間の特定位置に正確に配置し、AR 体験の中で現実空間と精密に位置合わせする方法を紹介します。

始める前に

注記

以下の内容およびツールは、EasyAR Mega を使用して Unity アプリを開発する過程にのみ適用されます。

ミニプログラムを開発している場合は、Unity エディターでアノテーションを作成してアップロードする(ミニプログラム開発) を参照してください。

Unity アプリを開発していないが Mega のマッピング結果を確認したい場合は、Mega 使用ガイドの 3D 実景メッシュをプレビューする を参照してください。

Unity アプリを開発していないが、シミュレーション実行でローカライズ結果を確認する必要がある場合は、Mega 使用ガイドの シミュレーション実行結果プレビュー を参照してください。

この内容では、プロジェクトに次の Unity パッケージがすでにインポートされている必要があります。

  • com.easyar.sense
  • com.easyar.mega

block 実景データ

Mega 開発では、3D コンテンツの配置を補助するために複数種類の実景データを使用できます。

  • block メッシュモデル

    alt text

  • パノラマ(空間モデルのオクルージョンを含む)

    alt text

    注記

    一部のデータはパノラマをサポートしていません。

  • LCC 3D ガウシアンスプラッティング

    alt text

    注記

    LCC 3D ガウシアンスプラッティングデータは、その領域のデバイスで収集してマッピングを完了した後の使用シーンでのみ利用できます。

block モデルを読み込む

block データ下の最初の選択ボックスをクリックすると、block エディターデータの読み込み処理が開始されます。読み込み後、Scene ウィンドウで現在の block の mesh を確認できます。

ヒント
  • block mesh は block トラッキングターゲット空間に位置合わせされており、モデル上に直接 3D コンテンツを配置できます。
  • block mesh はカメラ位置に応じて LOD を切り替えます。使用時は LOD 切り替え失敗を避けるため、ネットワーク接続を維持する必要があります。
  • block mesh はツールノード下に保存され、エディターモードにのみ存在し、最終アプリにはパッケージされません。

3D コンテンツを block ノード下にマウントする

block モデルを読み込んだ後、3D コンテンツをシーン内の Block ノード下に子ノードとしてマウントします。

alt text

注意
  • 3D 物体を EasyAR.Mega.EditorTool ノード下に配置してはいけません。このノードはエディターツール専用であり、一部の場合に自動削除または再作成されます。
重要
  • 実行時に仮想コンテンツのレンダリング位置を正しくするため、3D 物体は必ず block ノード下に配置する必要があります。

3D コンテンツを正確に配置する

次の手順を完了することで、仮想コンテンツを現実空間に正確に配置できます。

block メッシュモデルに基づいて配置する

シーン内で block mesh に合わせて 3D コンテンツの位置と回転を調整し、期待する位置と向きに合わせます。

ヒント
  • エディターが play モードに入った後も block mesh は利用できますが、カメラ位置に応じた LOD 切り替えは行われません。
  • block mesh はツールノード下に保存され、エディターモードにのみ存在し、最終アプリにはパッケージされません。

[任意] パノラマに基づいて配置する

Panorama Preview Marker 選択ボックスをクリックすると、パノラママーカーを表示できます。

注記
  • 一部のデータはパノラマをサポートしていません。

任意のパノラママーカーをクリックすると、その位置でパノラマ上の配置を行えます。異なるパノラママーカーをクリックしてパノラマを切り替えることで、3D コンテンツが異なる視点でも正確な位置にあることを確認できます。

alt text

ヒント
  • パノラママーカーを使ってコンテンツを配置する場合も、mesh に基づく空間モデルのオクルージョンは引き続き有効です。
  • エディターが play モードに入った後もこの機能は利用できますが、mesh に基づく空間モデルのオクルージョン精度は LOD 切り替え無効化の影響を受けます。
  • パノラママーカーおよびパノラマデータはツールノード下に保存され、エディターモードにのみ存在し、最終アプリにはパッケージされません。

[任意] LCC 3D ガウシアンスプラッティングに基づいて配置する

注記

この段落の内容は、その領域のデバイスで収集してマッピングを完了した後の使用シーンに適用されます。他のデバイスによるマッピング結果には LCC 3DGS データは含まれません。

LCC 3D ガウシアンスプラッティング(その領域の LCC)機能を使用している場合、3DGS と照らし合わせてモデル位置を調整できます。LCC データの使用方法については、LCC データを読み込んで Mesh と位置合わせする を参照してください。

実景データの欠陥がコンテンツ配置に与える影響

読み込んだ Block モデルが水平でない場合

Hierarchy パネルで調整したい block ノードを選択し、Inspector パネルで Rotation を変更して、Unity エディター内でモデルの向きが正しく見えるまで調整します。

block ノードのワールド座標系での Transform は、block のローカル座標系に影響しません。そのため、block の子ノードである 3D コンテンツのレンダリング結果にも影響しません。その Transform は最終的な表示結果とは無関係です。

注意

block ノード下の EasyAR.Mega.EditorToolTransform を変更してはいけません。変更すると、エディターツールが正常に動作しない、またはトラッキング時にコンテンツの表示位置が誤る可能性があります。

読み込んだ Block モデルに破損や欠損部分がある場合

三次元再構築の過程で、収集視点のカバー不足の影響により、生成された稠密モデルに破損または欠損部分が現れることがあります。

破損と欠損

不完全なモデルに対して、破損/欠損部分の 3D コンテンツ位置合わせ精度への要求が高くない場合は、パノラママーカーをクリックしてパノラマと照らし合わせる方法で 3D コンテンツを配置できます。その後、付近の異なるパノラママーカー位置をクリックして結果を検証できます。

パノラマで配置

破損/欠損部分の 3D コンテンツ位置合わせ精度への要求が非常に高い場合は、差分更新 または ロスレス全量更新 によりマップを補足または更新する必要があります。一般に、このような領域は画像収集過程でカバーされていないことを意味し、その領域内部では Mega のローカライズ結果が影響を受けます。エディター内で 3D コンテンツを位置合わせするだけでは不十分です。

次のステップ

関連トピック