Table of Contents

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

この記事では、Mega のトラッキングターゲットを追加する方法と、開発を支援するために Unity エディタで環境モデルをロードする方法について説明します。

開始前に

注記

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

ミニアプリを開発している場合は、Unity エディタを使用した注釈の作成とアップロード(ミニアプリ開発) を参照してください。

Mega マッピング結果を表示したいだけの場合は、Mega 使用ガイドの 3D 実景メッシュのプレビュー を参照してください。

ローカライゼーション効果をシミュレート実行して確認する必要があるが、使用可能な Unity アプリケーションプロジェクトがない場合は、Mega 使用ガイドの シミュレーション効果プレビュー を参照してください。

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

Mega のトラッキングターゲットは、BlockController コンポーネントを含む空のオブジェクトで、block と呼ばれます。シーン内では、block は BlockRootController コンポーネントを含む空のオブジェクトの下に編成されます。このオブジェクトのデフォルト名は MegaBlocks です。MegaBlocks 下のすべての block オブジェクトは、現在のローカライゼーションライブラリ内のすべてのトラッキングターゲットを表します。

alt text

開発では、3D コンテンツの表示や配置を支援するために block モデルを使用することがよくあります。このモデルは、ツールを使用してシーンにロードでき、表示や参照に便利です。

alt text

モデル位置は block トラッキングターゲットと整列しているため、モデル上に直接 3D コンテンツを配置できます。

ヒント

モデルはツールノード下に保存され、エディタモードでのみ存在し、最終アプリケーションにバンドルされません。

エディタでのトラッキングターゲットの追加

この方法を使用するには、BlockHolder.BlockRootSourceExternal(デフォルト)または Mixed に設定する必要があります。

alt text

Block viewer for unity developer ツールの追加

Hierarchy ビューの 空白部分 を右クリックし、メニュー EasyAR Mega > Tool > Block Viewer for Unity Developer (Edit Mode) から Unity 開発用の Block Viewer ツールを追加できます。

alt text

重要

Unity で Mega アプリを開発する場合、Block Viewer for Unity Developer ツールを使用する必要があります。EasyAR Mega > Tool メニューの他のツールは Unity アプリ開発には適していません。

Annotation Tool にも同様の機能がありますが、このツールの一部機能は将来のバージョンで削除されるため、使用は推奨されません。

Annotation Tool の注釈機能(注釈自体)はまもなく EasyAR 開発センター Web に移行されますが、block mesh のロードとモデル配置には影響ありません。

ツールが正常に追加されると、シーンレイヤーに EasyAR.Mega.BlockViewer (Dev) ノードと MegaBlocks ノードが追加されます。

alt text

トラッキングターゲットの生成 —— block

EasyAR.Mega.BlockViewer (Dev) ノードを選択し、Inspector パネルで EasyAR アカウント情報を入力してログインします。

alt text

Mega Cloud Service の右側のボタンをクリックします。

alt text

使用する Megaローカライゼーションサービス を選択し、OK をクリックします。

alt text

サービスを選択すると、現在のライブラリ内の block リストが MegaBlocks ノード下に表示され、ツールパネルにも表示されます。

alt text

ヒント

なぜ私の MegaBlocks 下は空ですか?

自分のローカライゼーションライブラリは使用可能ですか? を確認することをお勧めします

ここまででトラッキングターゲット block が生成されました。MegaBlocks ノード下の各 Block_ で始まる子ノードが block トラッキングターゲットを表します。

Block モデルのロード

選択したBlockをロード をクリックします。

alt text

ロードが完了すると、Block が Scene ウィンドウに表示されます。

alt text

ローカライゼーション成功時の自動トラッキングターゲット追加

この方法を使用するには、BlockHolder.BlockRootSourceInternal または Mixed に設定する必要があります。

これらのモードでは、新しい block がローカライズされ、かつ BlockHolder.BlockRoot ノード下にその block がない場合、新しい block が自動的に BlockHolder.BlockRoot ノード下に追加されます。BlockHolder.BlockRoot が存在しない場合は自動的に作成されます。

ヒント

ローカライゼーション成功時にトラッキングターゲットを自動追加する場合、block モデルをロードすることはできず、block トラッキングターゲットのみを追加できます。

スクリプトでのトラッキングターゲットの追加

この方法を使用するには、BlockHolder.BlockRootSourceInternal または Mixed に設定します。この場合、BlockHolder.BlockRoot が存在しない場合は自動的に作成されます。または、BlockHolder.BlockRootSourceExternal の場合、エディタで事前に BlockHolder.BlockRoot オブジェクトを指定することもできます。

注記

block がローカライゼーションライブラリにない場合、スクリプトを使用してシーンに追加しても、block はローカライズできません。

BlockHolder.Hold メソッドを使用して、新しい block を BlockHolder.BlockRoot ノード下に追加できます。このメソッドは通常、ema 注釈ファイルを使用する場合、スクリプトが注釈情報を読み取った後に block を追加するために使用されます。

たとえば、次のコードスニペットは、注釈ファイル内の情報を使用して block を追加する方法を示しています:

foreach (var item in ema.blocks)
{
    var info = new BlockController.BlockInfo { ID = item.id.ToString(), Timestamp = item.timestamp };
    if (!item.keepTransform && item.location.OnSome)
    {
        blockHolder.Hold(info, item.location.Value);
    }
    else
    {
        blockHolder.Hold(info, item.transform.ToUnity());
    }
}
ヒント

スクリプトを使用して実行時にトラッキングターゲットを追加する場合、block モデルをロードすることはできず、block トラッキングターゲットのみを追加できます。

次のステップ

関連トピック