現実空間と正確に位置合わせされた3Dコンテンツの作成
このドキュメントでは、AR体験において、仮想物体を現実空間の特定の位置に正確に配置し、現実空間と正確に位置合わせする方法について説明します。
始める前に
- 参考文書 私の位置決めライブラリは使用可能ですか? を参照して、位置決めライブラリが正しく作成され、Mega Block が追加されていることを確認してください。
- シーン内で Mega 追跡ターゲットを追加 してください。
- Unity プロジェクトで使用する 3D アセットを準備してください。
注記
以下の内容とツールは、EasyAR Mega を使用して Unity アプリを開発する際にのみ適用されます。
小程序を開発している場合は、Unity エディタを使用して注釈を作成してアップロードする(小程序開発) を参照してください。
Unity アプリを開発していないが、Mega のマッピング結果を確認したい場合は、Mega 使用ガイドの 3D 実景メッシュをプレビューする を参照してください。
Unity アプリを開発していないが、位置決め効果をシミュレートして確認する必要がある場合は、Mega 使用ガイドの シミュレーション実行効果のプレビュー を参照してください。
この記事の内容では、プロジェクトに以下の Unity パッケージがインポートされている必要があります。
com.easyar.sensecom.easyar.mega
Block 実景データ
Mega 開発では、3D コンテンツの配置を支援するために、さまざまな実景データを使用できます。
Block メッシュモデル

パノラマ画像(空間モデルの遮蔽を含む)

注記
一部のデータではパノラマ画像がサポートされていません。
LCC 3D ガウシアンスプラッシュ

注記
LCC 3D ガウシアンスプラッシュデータは、そのドメインデバイスを使用してデータを収集し、マッピングを完了した後の使用シーンでのみ利用可能です。
エディターツールの有効化
まず、エディターで Mega トラッキングターゲットを追加 し、トラッキングターゲットを選択して Create Editor Tool ボタンをクリックします。

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

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

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

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

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

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

注意
EasyAR.Mega.EditorTool ノードの内容を直接変更することはできません。特に、このノードの Transform を変更すると、エディターツールが正常に動作しないか、トラッキング時に内容の表示位置が間違ってしまう可能性があります。
Blockモデルの読み込み
Blockデータの下にある最初の選択ボックスをクリックすると、Blockエディターのデータ読み込みプロセスが開始されます。読み込み後、Sceneウィンドウに現在のBlockのメッシュが表示されます。

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

注意
- 3D オブジェクトは
EasyAR.Mega.EditorToolノードの下に配置しないでください。このノードはエディターツール用であり、一部の状況で自動的に削除または再構築されることがあります。
重要
- 3D オブジェクトは必ず block ノードの下に配置する必要があります。これにより、実行時に仮想コンテンツのレンダリング位置が正しくなります。
3Dコンテンツを正確に配置する
以下の手順を完了することで、仮想コンテンツを現実空間に正確に配置できます。
Block グリッドモデルに基づいて配置する
シーン内で block mesh に対して 3D コンテンツの位置と回転を調整し、希望の位置と向きに設定します。
ヒント
- エディタが play モードに入った後も、block mesh は引き続き使用可能ですが、カメラの位置に応じた LOD 切り替えは行われません。
- block mesh はツールノードの下に保存され、エディタモードでのみ存在し、最終的なアプリにはパッケージ化されません。
[任意] パノラマに基づいて配置を行う
Panorama Preview Marker のチェックボックスをクリックすると、パノラママーカーを表示できます。

注記
- 一部のデータではパノラマに対応していません。
任意のパノラママーカーをクリックすると、その位置でパノラマ下の配置を行うことができます。異なるパノラママーカーをクリックしてパノラマを切り替えることで、3Dコンテンツが異なる視点でも位置が正確であることを確認できます。

ヒント
- パノラママーカーを使用してコンテンツを配置する際も、meshベースの空間モデルによる遮蔽は引き続き有効です。
- エディターがplayモードに入った後もこの機能は利用可能ですが、meshベースの空間モデルの遮蔽精度はLOD切り替え無効の影響を受けます。
- パノラママーカーおよびパノラマデータはツールノード配下に保存され、エディターモードにのみ存在し、最終的なアプリケーションにパッケージングされることはありません。
読み込んだ Block モデルに破損や欠損部分がある場合はどうすればいいですか
三次元再構築の過程で、収集視野のカバレッジが不十分な影響を受けると、生成された密モデルに破損や欠損部分が現れる可能性があります。

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

破損/欠損部分の 3D コンテンツの位置合わせ精度が非常に高い場合、補充更新または無損全量更新を通じてマップを補充または更新する必要があります。一般的に、このような領域は画像収集の過程でカバーされていないことを意味し、このような領域内では Mega の位置決め精度に影響が出ます。エディターでのみ 3D コンテンツを位置合わせするだけでは不十分です。
後続の手順
- セッション検証ツールを使用してシミュレート実行することで、配置の正確性をさらに検証します。
- シーンに正確な環境オクルージョンを追加して、ARのリアリティを高めます。





