ARDK - 使用例

このUnityパッケージには、ARDKの数多くの機能におけるいくつかの使用例が含まれています。パッケージは ARDKダウンロード でダウンロードできます。このパッケージを自分のUnityプロジェクトに追加すれば、以下のシーンのビルドおよび実行が可能です。

注釈

ARDK使用例パッケージは、Unity Input System パッケージをサポートするよう更新されていません。Unity Input Systemが有効になっているARDK使用例パッケージをプロジェクトにインポートすると、ビルドの問題を引き起こす恐れがあります。

AnchorsWithoutPlanes

この使用例では、プレーン生成を行わずにアンカーを設定できる ARFrame.HitTest() の機能を学べます。

ARNetworking

この使用例は、非常にシンプルなネットワークARセッションです。クライアントとホストで環境の再現を行い、お互いの位置を同期・把握することができます。結果はグレーの「アンテナ」が付いた赤い長方形の電話マークで示されます。同期が完了したら、デバイスを同一セッション内で同期されている双方のデバイスで、このマークを見ることができます。

ARNetworkingのFAQ/ヒント:

  • 同期中は各デバイスを構えている必要がありますか?

    • はい。各デバイスが同じオブジェクトを見ている必要があります。この機能はカメラフレームを使って世界のマッピングを行い、各デバイスの位置関係を認識します。

  • ネットワークに含まれるデバイスが多いほど待機時間は長くなりますか?

    • いいえ。マッピング/同期は各デバイスが独立して行っています。ただしセッション内の最初のデバイスは「ホスト」となり、権限付きのマップを他のデバイスすべてに送信するため、その分の負荷はかかります。

  • デバイスの種類によって問題が発生することはありますか?

    • デバイスの性能が高いほど同期の速度は上がります。一般的にiPhone 11シリーズで5~10秒、iPhone SE(第1世代)で40秒~数分かかる場合があります。

  • どのように動くと同期が上手く行えますか?

    • 複数の視点によって三角法を用いることで処理が上手く行えるため、じっとしているよりも何らかのオブジェクトを中心に左右へ動かしたほうが上手くいきます。

深度

ContextAwarenessフォルダにあるこの使用例では、没入感のあるAR体験を生み出す深度データの作成について知ることができます。詳しい使用法のガイドはARDKの 深度に関する資料 をご参照ください。

ゲームボード

ContextAwarenessフォルダにあるこの使用例では、「Gameboard(ゲームボード)」と呼ばれる中間システムを通じて、オブジェクトの配置やプロシージャルなゲームプレイ、キャラクターのナビゲーションの環境についてクエリを実行する方法を確認できます。Gameboardは、環境内のプレイ可能な領域を見つけ出し、ゲームプレイに適した開発者に優しいインターフェイスを提供する上位コンポーネントです。詳しい使用法のガイドはARDKの ゲームボードに関する資料 をご参照ください。

ImageDetection

この使用例では、指定された画像を現実世界から見つけ出すことができます、それをアンカー画像にする方法を知ることができます。このアンカーを利用して、様々な形でARコンテンツを生成できます(現実世界の壁画上にARエフェクトを表示させるなど)。詳しい使用法のガイドはARDKの 画像探知に関する資料 をご参照ください。

LowLevelNetworking

この使用例では、同一ネットワークセッション内の複数デバイス間でメッセージを送信する方法を知ることができます。同一セッションに(ユーザーがセッションIDの入力を介して)参加中のデバイスは、新たなピアがセッションに参加すると通知を受け取り、「メッセージを送信」ボタンを押すことでお互いにメッセージを送ることができます。

注釈

このサンプルにARビジュアルアセットは含まれません。

MarkerSync

この使用例では、QRコードを用いてマルチプレイヤーARセッションに素早く参加し、複数のプレイヤーを同期させます。

Meshing

ContextAwareness/Meshingフォルダにあるこの使用例は、メッシングのセットアップおよび構成方法を学ぶ良い導入になります。詳しい使用法のガイドはARDKの メッシングに関する資料 をご参照ください。

MeshSaver

ContextAwareness/Meshingフォルダにあるこの使用例では、メッシュセーバークラスを使い、現在生成されているARメッシュのバイナリファイルクローンを作成する方法について知ることができます。保存されたメッシュは、モックメッシュ・システムを使ってUnityエディターにロード可能です。

MeshingSemantics

ContextAwarenessフォルダにあるこの使用例では、セマンティック セグメンテーション、オクルージョン、メッシングを同時に実行し、全システムを同時に使用した際のパフォーマンスを見ることができます。

Occlusion

ContextAwarenessフォルダにあるこの使用例では、生成した深度データを使い、コンテンツを現実世界のオブジェクトの背後に配置したり動かしたりして、没入感を維持する方法について知ることができます。詳しい使用法のガイドはARDKの Depth Occlusion に関する資料 をご参照ください。

OcclusionStabilization

この使用例は、ContextAwareness/Meshingフォルダにあり、オクルージョン技術の1つである experimental depth blending を使用して、現実世界のオブジェクトの背後に仮想オブジェクトを遮蔽する方法を示します。このサンプルを実行する前に、 MeshDepthChunk プレハブがARDK_FusedDepthレイヤーに設定されていることを確認してください(必要に応じてレイヤーを追加)。

PersistentKeyValue

この使用例では、各ネットワークセッションに関連付けられたサーバー側の永続性キー値ストアへのデータ保存について知ることができます。画面をタップすると、上のサークルの色(ロカール設定)を表す値が、デバイスによってサーバー側に保存されます。更新された値(同一セッション内のいずれかのデバイスが保存したもの)を受け取ると、下のサークル(サーバーメッセージによってのみ変化)が新しい色になります。

PlaneAnchors

最小限のARシーンのセットアップ方法がわかる基本的な使用例です。プレーンの検知および表示、特徴点の表示、プレーンに対するヒットテストが含まれます。

Pong

ARDKの機能を使用して作った、ARマルチプレイヤー版「Pong」のUnityプロジェクト例です。 「Pong」には詳細なチュートリアル資料が付属 しており、プロジェクトを正しく機能させるためのUnity上での各ステップやC#スクリプトの使用法をご確認いただけます。この使用例では低レベルメッセージを使ってプレイヤー間のデータ送信を行っています。このプロジェクトの別バージョンである『PongHLAPI』では、プレイヤー同期用のメッセージ送受信プロセスを能率化する高レベルAPIオブジェクト(HLAPI)のセットアップおよび使用例が示されています。

PongHLAPI

こちらのPongバージョンでは、基本的なベーシック版のPong ARマルチプレイヤーデモ(低レベルバージョン)と同じベースを使用していますが、ARDKの高レベルネットワークAPI(HLAPI)を活かすための変更が施されています。最初の違いはメッセージマネージャーがないことです。 『PongHLAPI』には文書化されたチュートリアル が付属しており、プロジェクトを正しく機能させるためのUnity上での各ステップやC#スクリプトの使用法をご確認いただけます。

Preloading

この使用例では、フィーチャープリロードマネージャーを使ってARアセットを事前ダウンロードする方法を知ることができます。進行中のダウンロードを停止してダウンロードキャッシュを削除する方法も含まれます。

SceneSelector

この使用例では、ARDKの機能については触れていませんが、SceneSelectorシーンがUnityのビルド設定の最初のシーンとして示されている場合は、使用例を切り替えるための基本UIを使用できます。SceneSelectorシーンをビルドに追加すると、デバイス上を5本指でタップすることで、実行中の使用例を終了し、SceneSelectorメニューに戻ることができます。

セグメンテーション

ContextAwarenessフォルダにあるこの使用例では、シーン内のセマンティックデータにアクセスし、地面や空といった現実世界の要素を判別する方法を知ることができます。詳しい使用法のガイドはARDKの セマンティック セグメンテーションに関する資料 をご参照ください。また、 実験的セマンティック信頼度 機能でセマンティック信頼度マスクを使用する方法も実演します。

VirtualStudio - ARDK Remote Feed App

携帯デバイス上に作成・インストールされたこのシーンは、デバイスからの現実世界ARデータをUnityエディターに移せます。ガイドについてはARDKの Virtual Studio(Remote)に関する資料 をご参照ください。

Virtual Studio - ExampleMockPlaythrough

モックARアセットを使って、環境ARデータの受信をシミュレートできます。使用法に関する詳しいガイドはARDKの Virtual Studio (Mock) に関する資料 をご参照ください。

VPS Coverage

VpsCoverageフォルダにあるVpsCoverageExampleでは、VPS Coverage APIを使用してカバレッジエリアやローカライゼーションターゲットの情報を取得する方法を確認できます。

また、VpsCoverageフォルダにあるVpsCoverageListExampleの例では、VPS Coverage APIを使用してカバレッジエリアやローカライゼーションターゲットの情報を取得する方法や、この情報をローカライゼーションターゲット名や「ヒント画像」などの詳細とともにリストビューでユーザーに表示する方法を確認できます。

VPSやVPS Coverage APIの詳細については、 Lightship VPSVPS Coverage APIの使用 をご参照ください。

Wayspot Anchors

WayspotAnchorsフォルダにあるWayspotAnchorsの例では、VPS Wayspot Anchors APIとWayspotAnchorsServiceインターフェイスを使用して、VPSが有効なWayspotをローカライズし、Wayspot Anchorsの配置や復元を行う方法を確認できます。

VPSやVPS Wayspot Anchors APIの詳細については、 Lightship VPSWayspot Anchor APIを使用する をご参照ください。