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 ガウシアンスプラッシュデータは、そのドメインデバイスを使用してデータを収集し、マッピングを完了した後の使用シーンでのみ利用可能です。

エディターツールの有効化

まず、エディターで Mega トラッキングターゲットを追加 し、トラッキングターゲットを選択して Create Editor Tool ボタンをクリックします。

ヒント

アプリがエディター内ではなくスクリプトでトラッキングターゲットを作成する必要がある場合は、エディター内で配置を完了した後、トラッキングターゲットとその子オブジェクトを記録し、実行時にスクリプトでトラッキングターゲットを構成し、子オブジェクトをトラッキングターゲットにマウントします。

サービス情報を確認し、サービスに接続します。

重要

接続する前に、API Key の権限を確認する必要があります。

  • サービスの Type が Block の場合、使用する API Key が Mega Block サービスと SpatialMap サービスにアクセスする権限を持っていることを確認する必要があります。
  • サービスの Type が Landmark の場合、API Key が Mega Landmark サービスにアクセスする権限を持っていることを確認する必要があります。

alt text

権限が不足している場合、サービス接続の検証に失敗したというエラーメッセージが表示されます。

alt text

ターゲットデータソースが正しく 構成 されている場合、サービスに正常に接続した後、データ更新時間とブロックエディターデータの制御画面が表示されます。

ヒント

ターゲットデータソースを空白にした場合、サービスに正常に接続した後、サービス内のブロックデータリストが表示されます。使用するブロックを選択すると、同様にブロックエディターデータの制御画面に入ることができ、ターゲットデータソースが自動的に入力されます。

エディターツールのデータは EasyAR.Mega.EditorTool ノードの下に保存されます。このノードを削除すると、エディターツールのデータが削除されます。

注意

EasyAR.Mega.EditorTool ノードの内容を直接変更することはできません。特に、このノードの Transform を変更すると、エディターツールが正常に動作しないか、トラッキング時に内容の表示位置が間違ってしまう可能性があります。

Blockモデルの読み込み

Blockデータの下にある最初の選択ボックスをクリックすると、Blockエディターのデータ読み込みプロセスが開始されます。読み込み後、Sceneウィンドウに現在のBlockのメッシュが表示されます。

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

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切り替え無効の影響を受けます。
  • パノラママーカーおよびパノラマデータはツールノード配下に保存され、エディターモードにのみ存在し、最終的なアプリケーションにパッケージングされることはありません。

読み込んだ Block モデルに破損や欠損部分がある場合はどうすればいいですか

三次元再構築の過程で、収集視野のカバレッジが不十分な影響を受けると、生成された密モデルに破損や欠損部分が現れる可能性があります。

破損欠損

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

パノラマ画像を使った配置

破損/欠損部分の 3D コンテンツの位置合わせ精度が非常に高い場合、補充更新または無損全量更新を通じてマップを補充または更新する必要があります。一般的に、このような領域は画像収集の過程でカバーされていないことを意味し、このような領域内では Mega の位置決め精度に影響が出ます。エディターでのみ 3D コンテンツを位置合わせするだけでは不十分です。

後続の手順

関連トピック