Mega トラッキングターゲットを追加する
この記事では、Mega のトラッキングターゲットを追加して設定する方法を紹介します。
始める前に
- 自分のローカライズ機能は使用できますか? を確認し、ローカライズライブラリが正しく作成され、マップが追加されていることを確認します。
- 最新バージョンの EasyAR プラグインをインポートして Mega 機能を有効にする
- Unity AR のトラッキングターゲット の基本概念と使用方法を理解します
注記
以下の内容およびツールは、EasyAR Mega を使用して Unity アプリを開発する過程にのみ適用されます。
ミニプログラムを開発している場合は、Unity エディターでアノテーションを作成してアップロードする(ミニプログラム開発) を参照してください。
Unity アプリを開発していないが Mega のマッピング結果を確認したい場合は、Mega 使用ガイドの 3D 実景メッシュをプレビューする を参照してください。
Unity アプリを開発していないが、シミュレーション実行でローカライズ結果を確認する必要がある場合は、Mega 使用ガイドの シミュレーション実行結果プレビュー を参照してください。
この内容では、プロジェクトに次の Unity パッケージがすでにインポートされている必要があります。
com.easyar.sense
Mega のトラッキングターゲット
Mega のトラッキングターゲットは、MegaBlockController コンポーネントを含む空のオブジェクトであり、Unity では 1 つの block を表します。

注記
com.easyar.mega パッケージをインポートしていない場合、block のエディター機能は使用できませんが、実行時のトラッキング結果と機能には影響しません。
設定で Mega 機能を有効にする ことが正しく行われていない場合、使用できません。

トラッキングターゲットを作成する
Hierarchy ビューの空白部分を右クリックし、メニュー EasyAR Sense > Mega > Target : Mega Block から Mega のトラッキングターゲットを作成できます。

スクリプトでは、ARSessionFactory.CreateController を使用して作成できます。
ARSessionFactory.CreateController<MegaBlockController>();
トラッキングターゲットを設定する
target データソースを設定する
トラッキングターゲットは、そのソースが正しく設定された後にのみ認識およびトラッキングできます。
Hierarchy ビューで block ノードを選択し、block の ID と Name を入力できます。

スクリプトでは、コンポーネント MonoBehaviour.Start() の前に Source を変更して、block のソースを設定できます。
block.Source = new MegaBlockController.BlockInfoSourceData(id, name);
ここで
- block id は block の一意識別子であり、必ず入力する必要があります。
- block name は block の名称であり、必要に応じて任意に入力できます。識別しやすいように、通常は block の実際の名称を入力することを推奨します。
ヒント
block id と name は EasyAR 開発センターの対応するローカライズライブラリから取得できます。

ローカライズライブラリ内に block データがない場合は、ローカライズライブラリに必要な Block を追加 し、再度 クラウドローカライズライブラリが有効 であることを確認してください。
target が使用するトラッカーを設定する
トラッキングターゲットは、設定されたトラッカーによって読み込まれ、正しくローカライズされた後にトラッキングされます。
Hierarchy ビューで block ノードを選択し、session 内の Mega Tracker を選択できます。
![]()
スクリプトでは、Tracker を変更して block のトラッカーを設定できます。
block.Tracker = megaTracker;
Tracker は実行時にいつでも変更できます。読み込み/アンロードは session 実行中に発生します。Tracker を null に設定すると、その target は以前設定されていたトラッカーからアンロードされます。block の読み込みは仮想的な処理であり、失敗しません。
注記
target がトラッキングされるには、いくつかの重要な条件があります。
- MegaBlockController.Source の id は、MonoBehaviour.Start() の前に正しく設定されている必要があります。
- その Source の id に対応する block がローカライズライブラリ内に存在している必要があります。
- MegaBlockController.Tracker は、正しいローカライズライブラリを使用するよう設定されている必要があります。
トラッキングターゲットのライフサイクル
一般的なトラッキングターゲットのライフサイクルは次のとおりです。
flowchart LR
sstart((session 開始))
sstop([session 停止])
start("Target.Start")
load("ロード")
tracking[["継続トラッキング"]]
sstart --> load --> tracking --> sstop
start -. "Target.Tracker = tracker" .-> load
フローは大まかにいくつかの段階に分かれます。
- 読み込み:トラッキングターゲットは設定されたトラッカーによって読み込まれます。これは target 自身の Start() および session 起動後に発生します。
- トラッキング過程:トラッキングターゲットがローカライズされた後、別のターゲットがローカライズされるまで、トラッカーはターゲットの位置と状態を継続的にトラッキングします。
- アンロード:トラッキングターゲットはトラッカーからアンロードされ、トラッカーはそのターゲットをトラッキングしなくなります。これは session 停止後、または target がトラッカーを使用しないよう設定された後に発生します。







