VPSを使ってアプリのビルドとテストを行う

RemoteAuthoringのサンプルを使ってビルドを作成する

ビルドを効率的に作成するには、 ARDK使用例 パッケージのVPSリモートオーサリングのサンプルシーンを使用します。このシーンを使用することで、複数のロケーションマニフェストを使用して、実行時に簡単に組み込むことができます。

リモートオーサリングの階層

RemoteAuthoring のサンプルシーンは、LocationManifestManager コンポーネントに含まれます。LocationManifestManager は、エンドユーザーがあるロケーションでローカライズに成功すると、VPS Authoring Assistantを使用して生成されたマニフェストを受け取り、実際の場所に表示されるアンカーコンテンツに変換します。このサンプルシーンには、シンプルなUIが用意されており、エンドユーザーが自分のいるロケーションを選択することで、ローカライズに成功したときに適切なコンテンツが表示されるように設定することができます。

プロパティの同期を維持する

LocationManifestManagerKeep Synced(同期の維持) を選択すると、アンカーされたコンテンツはそのマニフェストリスト内のロケーションの変更をサブスクライブし、VPS Authoring Assistantで変更を行うたびにアンカーコンテンツが更新されます。このオプションの選択を解除すると、アンカーコンテンツは、Populate Anchors(アンカーの追加) ボタンを押してマニフェストをシーンに手動で同期するまで、シーンにそのまま保持されます。

関連付けられたプレハブプロパティを使用する

LocationManifestManagerUse Associated Prefabs(関連付けられたプレハブを使用) を選択すると、ユーザーがVPS Authoring assistantでAuthored Anchorsに適用したプレハブも、アンカーされたコンテンツに取り込まれます。このチェックボックスをオフにすると、VPS Authoring Assistantで追加したプレハブは無視され、シーン内の任意のものをそのコンテンツに配置できるようになります。

ロケーションマニフェストのサンプルを置き換える

サンプルシーンは、マニフェストリストに3つのマニフェストが追加された状態で開始されます。周辺の場所で試す場合は、Clear Manifests and Anchored Content(マニフェストとアンカーされたコンテンツをクリア) して、独自のマニフェストに置き換える必要があります。VPS Authoring Assistantで生成したマニフェスト(マニフェストが保存された場所を確認するには、VPS Authoring Editorウィンドウの Inspect Manifest(マニフェストの検査) を使用)を LocationManfiestManagerManifests(マニフェスト) リストにドラッグアンドドロップします。次に、マネージャーの下部にある Populate Anchors(アンカーの追加) ボタンを押します。これで、アンカーコンテンツを配置し、デバイスやプレイモードで表示できるようになります。

Location Manifest Manager

VIrtual Studioを使ってシーンをテストする

アプリケーションの開発中、事前にスマートフォンにビルドせずに、アプリケーションでコードが実行される様子を確認することができます。これを行うには、ARDKのバーチャルスタジオを使用します。 Lightship > ARDK > Virtual Studio に移動して、バーチャルスタジオのメニューをご確認ください。

VPS Authoring Assistantは、プロジェクトに追加された新しいロケーションに対して、自動的にモック環境を作成します。これは「モックアセット」と呼ばれ、ロケーションマニフェストに含まれます。VPS Authoring Assistantのドロップダウンメニューからロケーションを選択すると、関連付けられたモック環境がVirtual Studioで自動的に使用されるようになります。一方で、Virtual Studioメニューを使用してモック環境から移動した場合は、VPS Authoring Assistantメニューでロケーションを再度選択するか、Virtual Studioのドロップダウンを使用して正しいモック環境に焦点を戻す必要があります。正しいロケーションが選択されていることを確認したら、そのモック環境を使用して、プレイモードをテストできます。

モック環境を選択する

注釈

VPS RemoteAuthoringのサンプルには、さまざまなロケーションを選択し、アンカーコンテンツを読み込むための基本的なUIが付属しています。ドロップダウンリストからロケーションを選択するよう求めるUIが表示されたら、現在オーサリングしているロケーションを選択します。サンプルシーンのUIで Load(読み込み) ボタンを押すと、正しいアンカーコンテンツがシーンに追加されます。

モックの選択

JSON形式でビルドを作成してマニフェストデータを保存する

VPSロケーションをプロジェクトに保存する最適な方法(JSONを作成する、データベースを使用するなど)は本ガイドの対象外ですが、アンカーのような実データをビルド外に保存することで、常にビルドを新しく作成しなくてもコンテンツを更新できるようにしました。

マニフェストのスクリプト可能なオブジェクトには、Export to JSONオプション(JSON形式でエクスポートできる機能)が用意されており、リモートコンテンツアンカーの軽量バージョンを保存することができます。次の2行のコードを使用して、そのJSONコンテンツを変換し、サンプルコードで使用されている RuntimeVPSLocationManifest データ構造に戻すことができます。

var jsonString = (obj as TextAsset).text;
var manifest = JsonUtility.FromJson<RuntimeVPSLocationManifest>(jsonString);

HTTP サーバーからテキストやバイナリデータを取得 (GET) と組み合わせると、プロジェクトのリモートマニフェストを簡単に作成することができます。

注釈

JSON形式で RuntimeVPSLocationManifest を作成しても、VPSオーサリングプロセスで使用した関連プレハブは考慮されません。このソリューションは、開発ユーザーがゲームオブジェクトのプレハブをアンカーコンテンツに関連付けるために別の戦略を使用する高度なユースケースを想定しています。たとえば、ビルドにプレハブを手動で追加したり、アドレステーブルやアセットバンドルから読み取む場合などが挙げられます。JSONファイルを意図的に軽量化することで、プロジェクトの規模を管理するために使用しているどのビルド戦略も機能し続けるようにするためです。このような状況に該当しない場合は、JSONファイルを組み込まずに、リモートオーサリングのサンプルシーンを使用してください。

トラブルシューティング

LocationManifestManager が正常に同期できないケースがいくつかあります。コンテンツが正常に更新されない場合は、コンポーネントの関連ボタンを押して、Populate Anchored Content(アンカーコンテンツの追加) を手動で行ってください。

次のような場合は、同期が失敗する可能性があります。

  • VPSマニフェストの名前を変更している。マニフェストの名前を変更すると、ManifestManager内のアンカーの関係が壊れます。

  • エディターで開かれていないシーンで作業している。アクティブなシーンのみが同期する仕組みになっています。