Table of Contents

Mega トラッキングターゲットを追加する

この記事では、Mega のトラッキングターゲットを追加して設定する方法を紹介します。

始める前に

注記

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

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

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

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

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

  • com.easyar.sense

Mega のトラッキングターゲット

Mega のトラッキングターゲットは、MegaBlockController コンポーネントを含む空のオブジェクトであり、Unity では 1 つの block を表します。

alt text

注記

com.easyar.mega パッケージをインポートしていない場合、block のエディター機能は使用できませんが、実行時のトラッキング結果と機能には影響しません。

設定で Mega 機能を有効にする ことが正しく行われていない場合、使用できません。

alt text

トラッキングターゲットを作成する

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

alt text

スクリプトでは、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 実行中に発生します。Trackernull に設定すると、その target は以前設定されていたトラッカーからアンロードされます。block の読み込みは仮想的な処理であり、失敗しません。

注記

target がトラッキングされるには、いくつかの重要な条件があります。

  1. MegaBlockController.Source の id は、MonoBehaviour.Start() の前に正しく設定されている必要があります。
  2. その Source の id に対応する block がローカライズライブラリ内に存在している必要があります。
  3. 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 がトラッカーを使用しないよう設定された後に発生します。

次のステップ

関連トピック