Table of Contents

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

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

開始する前に

注記

以下の内容および tools は、EasyAR Mega Go を使用して Unity アプリケーションを開発する場合にのみ適用されます。plugin バージョン >= 4003.1 が必要です。

Mega Go は mini program 開発をサポートしていません。

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

  • com.easyar.sense

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

Mega Go のトラッキングターゲットは、MegaGoBlockController コンポーネントを含む empty object です。Unity では 1 つの block を表します。

alt text

注記

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

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

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

alt text

script では、ARSessionFactory.CreateController を使用して作成できます。

ARSessionFactory.CreateController<MegaGoBlockController>();

トラッキングターゲットを設定する

target を使用する前に、そのデータソースと tracker を設定する必要があります。

target データソースを設定する

トラッキングターゲットは、ソースが正しく設定された後でのみ認識およびトラッキングできます。

Hierarchy ビューで block ノードを選択し、block の Path Type と Path を入力します。

script では、コンポーネントの MonoBehaviour.Start() の前に Source を変更して、block のソースを設定できます。

block.Source = new MegaGoBlockController.FileSourceData(PathType.Absolute, path);

ここで:

  • PathType は emg ファイルパスの種類で、絶対パス (Absolute) またはプロジェクトの StreamingAssets パス (StreamingAssets) にできます。
  • Path は emg ファイルのパスです。PathType が Absolute の場合はファイルシステム内の絶対パス、PathType が StreamingAssets の場合はプロジェクト内の StreamingAssets フォルダー以下の相対パスです。
ヒント

emg ファイルは EasyAR Developer Center の Mega Go ページからダウンロードしてください。

ヒント

emg ファイルは大きい場合があるため、アプリケーションパッケージサイズが大きくなりすぎる場合は、テスト段階でのみ StreamingAssets パスを使用することをお勧めします。正式リリース時は絶対パスを使用し、resource package などの方法でアプリケーションがアクセス可能なファイルシステムパスに emg ファイルを配置してください。

target が使用する tracker を設定する

トラッキングターゲットは、設定された tracker によってロードされ、トラッキングされます。

重要

Mega Go の tracker は同時に 1 つの block しかトラッキングできません。同じ tracker に複数の block が同時に設定されている場合、最後にロードされた block だけが使用されます。

Hierarchy ビューで block ノードを選択し、session 内の Mega Go Tracker を選択します。

script では、Tracker を変更して block の tracker を設定できます。

block.Tracker = megaGoTracker;

Tracker は runtime 中いつでも変更でき、session の実行中にロード/アンロードが発生します。Tracker を null に設定すると、この target は以前設定されていた tracker からアンロードされます。

注記

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

  1. Source に対応する block が使用可能な状態である必要があります(正式データは常に offline で使用可能で、テストデータは service にそのデータが存在する場合にのみ使用可能です)。
  2. MegaGoBlockController.Source のファイルが正しくロードされている必要があります。
  3. ファイルのロード後、他の block に対応するファイルがロードされていない必要があります。

トラッキングターゲットのライフサイクル

一般的なトラッキングターゲットのライフサイクルは次のとおりです。

flowchart LR
  sstart((session 開始))
  sstop([session 停止])
  
  start("Target.Start")
  load("ロード")
  tracking[["継続トラッキング"]]

  sstart --> load --> tracking --> sstop
  start -. "Target.Tracker = tracker" .-> load 

プロセスはおおよそ次の段階に分けられます:

  • ロード: トラッキングターゲットは設定された tracker によってロードされます。これは target 自身の Start() および session の開始後に発生します。
  • トラッキング処理: トラッキングターゲットが localization された後、tracker は target がアンロードされるか別の target がロードされるまで、target の位置と状態を継続的にトラッキングします。
  • アンロード: トラッキングターゲットが tracker からアンロードされ、tracker は target をトラッキングしなくなります。これは session の停止時、または target が tracker を使用しないように設定された後に発生します。

次のステップ

関連トピック