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

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

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

スクリプトでは、ARSessionFactory.CreateController を使用して作成できます。
ARSessionFactory.CreateController<MegaBlockController>();
トラッキングターゲットの設定
ターゲットデータソースの設定
追跡対象は、そのソースを正しく設定した後でのみ識別および追跡できます。
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 を追加 し、再度 クラウド位置決めライブラリが有効であることを確認 してください。
ターゲット使用のトラッカーを設定する
トラッキング対象は、設定されたトラッカーによってロードされ、正しく位置特定された後にトラッキングされます。
Hierarchy ビューで block ノードを選択した後、セッション内の Mega Tracker を選択できます。
![]()
スクリプトでは、Tracker を変更して block のトラッカーを設定できます。
block.Tracker = megaTracker;
Tracker は実行時にいつでも変更でき、ロード/アンロードはセッションの実行中に行われます。Tracker を null に設定すると、該当のターゲットは以前に設定されたトラッカーからアンロードされます。block のロードは仮想的なプロセスであり、失敗することはありません。
注記
ターゲットがトラッキングされるにはいくつかの重要な条件があります。
- 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 がトラッカーを使用しないように設定された後に発生します。







