見出し画像

ロケーションベースのAR体験開発にまつわるチャレンジ

執筆:Matt Stentiford

プレティアのシニアUnityデベロッパー。業界歴15年以上で、ARアプリケーション、展示物の開発に10年以上の経験を持つ。最近はXRで新しい没入型の体験を作る方法を模索している。

概要

ここ数年、AR技術は急速に向上しています。基本的なイメージトラッキングから、マーカーレスAR、平面検出、そして最近ではPretia独自のSDKのようなVPSソリューションによる現実世界の正確なマッピングまで、様々な技術が開発されています。

ロケーションベースのARアプリケーションを作成する際、特に従来のアプリ開発ワークフローと比較すると、開発者が直面する多くの独特な課題があります。今回は、その中でも特に以下の3つのプロセスに焦点を当て、その違いを紹介します。

マッピング
マッピングは、しっかりと事前準備をした上で徹底的に行う必要があります。

ロケーションベースのARアプリを作成する場合、開発の初期段階で取り組むべき重要な最初のステップの1つは、リローカライズに使用できるマップを確実に作成することです。

コンテンツのオーサリング
ロケーションベースのARシーンでは、コンテンツが現実の環境と一致することが必要です。

適切なツールがなければ、ARコンテンツが正しく配置され、環境に適合していることを確認するのは困難で時間がかかる場合があります。

テスト
ロケーションベースのARアプリは、テストが難しい場合があります。

最終的なアプリには、特定の場所に関連するアクティベーションがあります。そのため、新しいビルドを作成し、現地に向かうことなく、テストやデバッグを行うのは困難な場合があります。現在、多くのARフレームワークでは、Unityエディタ内でのシミュレーションやリモートテストのサポートが非常に限られています。


マッピング

良いマップを撮影することは、満足のいくロケーションベースのAR体験を作るために最も重要なステップの一つです。マッピングに影響を与える重要な要素には、以下のようなものがあります。

  • 天候

    • 雨、雪、強い日差し、影などは、再定位が非常に難しくなります。

  • 時間帯、照明、影

  • 季節

  • 移動する/変化する環境

    • 草木、人、家具(椅子など)が頻繁に移動するような場所では、問題が発生する可能性があります。

照明や樹木の影など、マップの撮影時と違う条件下でリローカライズする際に問題が発生することがあります。

屋内や屋外の場所を選ぶ際に注意すれば、これらの潜在的な問題の影響を大きく軽減することができます。可能であればできるだけユーザーの体験に近い照明条件でマップを作成し、テストしてください。

展示会などでデモをする際は、リローカライズのスピードと精度に大きく影響するため、マッピングとテストの前に照明の最終調整を完了するのがベストです。

場所が変わったりマップを作り直したりすると、新しいマップにコンテンツを合わせるのが難しくなります。時間の経過とともに変化する可能性の低い場所を選ぶようにしましょう。

Pretia SDKを使用する場合、3Dスキャナアプリを使用することで簡単にリローカライゼーションをテストすることができます。マップ作成後、何度かテストを行い、簡単にリローカライゼーションできることを確認してください。
また、マップが信頼できるリローカライズのターゲットとして機能することを確認するために、異なる時間帯や、ユーザーが経験する可能性のある異なる照明条件でのテストも行ってください。

良いマップを作成するための詳細は、こちらのドキュメントをご参照ください。


ゲームデザインに関する考察

ロケーションとマッピングの選定は、常にゲームやアプリケーションの設計と密接に関係しています。AR体験の中には、より正確なオブジェクトの配置が必要なものもあります。また、ユーザーが特定の時間帯や照明条件下でのみAR体験を起動するように制限する方法もあります。

正確さ
Pretia SDKを使用したリローカライズは、現在、起動時に約0.1〜0.2mのポーズのばらつきがあります。したがって、コンテンツの配置においてセンチメートルの精度に依存しないような体験を設計するよう心がける必要があります。

コンテンツは、オープンスペースや平面上に配置する必要があります。薄くて平らでない表面にARコンテンツを合わせようとするのは避けてください。

プレイセッションの制限
ユーザーが迅速かつ正確にリローカライズできるように、可能であれば、屋外でのAR体験は、その場所がマッピングのときと同様の時間帯に限定するのがよいでしょう。

ユーザーが異なる時間帯にプレイする可能性がある場合、最高のリローカライゼーション体験を保証するために、異なる時間帯に複数のマップをスキャンしてください。

また、ARは非常に多くのデバイスリソースを必要とするため、1~2分のプレイセッションで楽しめるように設計すると、ユーザーのバッテリー寿命が延び、デバイスが過熱するのを防ぐことができます。

コンテンツオーサリング
コンテンツオーサリングは、マップやスキャンプロセスの一部として配置されたアンカーに対して、コンテンツを配置するプロセスです。 
このプロセスは、コンテンツが配置されるサーフェスに正しく位置合わせされ、環境内の他のオブジェクトによるオクルージョンが最小限になるようにする困難な作業となることがよくあります。

Pretiaでは、スキャナアプリにシンプルかつ柔軟なコンテンツオーサリングシステムを搭載しています。マッピング後、スキャナアプリからコンテンツをAR内に配置し、Unityエディタにインポートすることができます。プリセットのプレハブを参照しながら最終的なコンテンツを配置することもできますし、モデルをアップロードしてコンテンツオーサリングツール内に最終的なゲームアセットを直接配置することも可能です。

コンテンツオーサリングツールをうまく利用することで、開発者はコンテンツを環境に正しく配置するための時間を大幅に節約することができます。

スキャナアプリの一部として提供されているコンテンツオーサリングツールの詳細については、以下のドキュメントを参照してください。

プレティアSDKは、新しいAR体験を迅速に作成するための強力なコンテンツオーサリングシステムを提供します。


コンテンツオーサリングのヒント

  • コンテンツのプレースホルダーをできるだけ早く作成しておくと、マッピングの過程で追加でき、最終的なアセットがどのようにスペースに配置できるかのガイドラインになります。

    • 前もってアセットがない場合でも、コンテンツオーサリングツールでデフォルトのシンプルなプリミティブを配置すれば、後で配置するオブジェクトの境界線という意味で良いリファレンスになります。このバウンディングボックスを利用してプレファブを作成し、最終的なアセットが用意できた時点で置き換えることができます。

  • 手元にある中で一番良いデバイスでコンテンツをオーサリングする

    • デバイスごとの性能は異なります。基本的なAR機能を持つほぼすべてのデバイスでコンテンツを作成することができますが、コンテンツを配置し始める前に、できるだけ正確な再ローカライゼーションと、深度オクルージョン用のDepth APIへのアクセス、できれば正確な深度データのためのToFまたはライダーセンサーを持つデバイスを用意するとよいでしょう。

  • オブジェクトが正しく配置されるように、深度、メッシュ、または検出された平面を使用する

    • オブジェクトが床下や壁の裏側ではなく、表面上に正しく配置されていることを確認することは、コンテンツが環境にマッチしているように感じられ、ユーザーがARオブジェクトで見たときに浮いたり流れたりしないことを保証する上で最も重要なことの1つです。

  • 必要に応じて、オクルージョンメッシュとシャドウプレーンを追加する

    • Pretiaのコンテンツオーサリングシステムは、簡単なオクルーダーと影面を配置する方法を提供しています。現実世界の壁など、ARコンテンツをオクルージョンする可能性のあるオブジェクトに対してこれらを配置します。

    • 最新のデバイスはリアルタイム深度オクルージョンが可能で、検出された平面を影面として使用できますが、これらの面を手動で配置することで、より信頼性と説得力のある体験を提供することができます。

    • オクルーダーの詳細と、AR体験のリアリズムを向上させるための使用方法については、今後作成する予定のガイドをお待ちください。


テスト

従来のアプリケーションのデバッグやテストを行う場合、利用できるツールが豊富にあります。Unityのようなエンジンは、Editorでのテストに素晴らしいワークフローを提供し、シーンやスクリプトの変更、プレイモードでのテスト、実行中のコードのデバッグやステップスルーなど、ほぼ瞬時に反復作業を行うことができます。

残念ながら、今日のARフレームワークは、この点で役立つツールをあまり提供していません。リモートテスト用のサードパーティ製プラグイン(AR Foundation Remoteなど)や、いくつかのシミュレータ(Unity MARSデバイスシミュレータなど)はありますが。これらのツールは、標準的なモバイルアプリ開発で利用できるいくつかのオプションと比べると、まだ信頼性や使いやすさに欠けます。

さらに、ロケーションベースのARアプリは現実の場所とリンクしているため、その場所をスキャンしないと体験ができない、という課題もあります。 
また、コンテンツは環境に合わせて正確に配置されなければならず、アプリのリリース前にアクセスすることが困難な場合もあります。

Pretia SDKは、これらの問題に対処するための多くのソリューションとガイドラインを提供しています。

  • マッピングアプリは、先に説明したコンテンツオーサリングシステムを内蔵しており、場所にアクセスしスキャンすることができれば、すぐにシーンのプロトタイプを作成することができます。マッピングアプリ内でリローカライズのテストができ、アセットをアップロードしてアプリ内で使用し、環境との適合性を迅速に確認することも可能です。

  • オンライン・リローカライゼーション・サービスでは、異なるマップ間で素早く簡単にスワップすることができます。

  • ARレコーディング&プレイバックは、カメラやセンサーのデータを録画し、エディター上でテストできるツールです。これにより、開発者はアプリ内の体験を再現しながら、PCで可能な従来の編集・デバッグツールや迅速なイテレーションを利用することができるようになります。

この3つの要素を組み合わせることで、状況に応じてさまざまなワークフローを実現できます。

たとえば、ある場所でアプリを開発・テストした後、最終地点にいるチームが数分のうちにマッピングや調整を行うことが可能です。
実際には、イベントの前にテストと反復のための十分な時間を確保することが常にベストですが、時にはそれが不可能な場合もあります。そのために、ワークフローを可能な限り柔軟にするためのツールを提供しています。

上記の機能に加えて、Pretiaは開発中のテストとイテレーションを改善する方法を常に評価しており、エディタ内シミュレーション、レコーディング&プレイバックのさらなる改善など、多くの新機能を計画しています。

Unity EditorでのARシミュレーションは、コンテンツの作成・編集時に開発を大幅にスピードアップさせ、迅速なイテレーションを可能にします。
まとめ
ロケーションベースARはまだ初期段階にあり、Pretiaはこの種のアプリケーションを開発するためのツール、ワークフロー、ガイドラインを改善するために常に取り組んでいます。また、世界中の開発者が将来開発する素晴らしいLocation based AR体験を見ることを楽しみにしています。

Unity EditorでのARシミュレーションは、コンテンツを作成・編集しながら、開発を大幅にスピードアップさせ、迅速なイテレーションを可能にします。

まとめ

ロケーションベースARはまだ初期段階にあり、Pretiaはこの種のアプリケーションを開発するためのツール、ワークフロー、ガイドラインを改善する取り組みを続けています。

このコンテンツでは、ロケーションベースのARアプリケーションの開発において、何を考慮すべきか、私たちが今までの開発から得てきた知見をお伝えしてきました。

AR開発の際はぜひ参考にしてください。世界中の開発者が将来開発する素晴らしいAR体験を見ることを楽しみにしています!


いいなと思ったら応援しよう!