Table of Contents

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

本文では、Mega Go のトラッキングターゲットを追加および構成する方法について説明します。

開始する前に

注記

以下の内容とツールは、EasyAR Mega Go を使用して Unity アプリケーションを開発するプロセスにのみ適用されます。プラグインのバージョンは >= 4003.1 が必要です。

Mega Go は小程序開発をサポートしていません。

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

  • com.easyar.sense

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

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

alt text

注記

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

トラッキングターゲットの作成

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

alt text

スクリプトでは、ARSessionFactory.CreateController を使用して作成できます。

ARSessionFactory.CreateController<MegaGoBlockController>();

トラッキングターゲットの構成

target を使用する前に、そのデータソースとトラッカーを構成する必要があります。

target のデータソースを構成する

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

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

スクリプトでは、コンポーネント 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 開発センター の Mega Go ページからダウンロードする必要があります。

ヒント

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

target が使用するトラッカーを構成する

トラッキングターゲットは、構成されたトラッカーによってロードされ、トラッキングされます。

重要

Mega Go のトラッカーは同時に 1 つの block のみをトラッキングできます。複数の block が同じトラッカーに構成されている場合、最後にロードされた block のみが使用されます。

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

スクリプトでは、Tracker を変更して、block のトラッカーを設定できます。

block.Tracker = megaGoTracker;

Tracker は実行時にいつでも変更でき、ロード/アンロードは session の実行中に行われます。Trackernull に設定すると、該当の target は前に設定されたトラッカーからアンロードされます。

注記

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

  1. 該当の Source に対応する block は使用可能な状態である必要があります(正式データは常にオフラインで使用可能ですが、テストデータはサービスにそのデータが存在する場合にのみ使用可能です)。
  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 

このプロセスは大まかに次の段階に分けられます。

  • ロード:トラッキングターゲットは、構成されたトラッカーによってロードされます。これは、target 自身の Start() および session の起動後に行われます。
  • トラッキングプロセス:トラッキングターゲットが特定された後、トラッカーはターゲットの位置と状態を継続的にトラッキングします。この状態は、ターゲットがアンロードされるか、別のターゲットがロードされるまで続きます。
  • アンロード:トラッキングターゲットはトラッカーからアンロードされ、トラッカーはターゲットのトラッキングを停止します。これは、session が停止するか、target がトラッカーを使用しないように設定された後に行われます。

次のステップ

関連トピック