Unity を検索

取り上げているトピック
シェア

Starter Templates は、AR 開発者が Unity MARS での作業時間を短縮し、プロジェクトを迅速に世に出せる助けとなるように作られた、事前デザイン済みかつカスタマイズ可能なビルディングブロックです。この記事では、Unity が作成したテンプレートの各々の詳細をご紹介します。Unity MARS プロジェクトで Starter Templates にアクセスするには、こちらの手順に従ってください。

アーリーアダプターたちとやりとりする中で、彼ら・彼女らが拡張現実(AR)体験を開発するための製品である Unity MARS に慣れてきたことで、驚くべき変化が起きていることに気づきました。アーリーアダプターたちは、特定のデバイスに関する問題を解決する方法について話すのをやめ、現実世界のデータと、コンテンツをそれらのデータとどのように接続し、どのように適応させるかについて議論するようになっていたのです。話題は低レベルの問題から、空間コンピューティングによって実現されるより高度なシナリオへと移行しています。

Unity MARS は、デジタルの文脈において現実世界を記述し、参照するための新しいデザイン言語を導入しています。これにより、開発者は、他の方法では実現不可能なはるかに大きなアプリケーションを記述し、その開発に取り組むことができます。しかし、他の言語と同じように、このデザイン言語にも学習する必要はあります。

Starter Templates は、AR で使用される一般的なワークフローを強化し、お客様から学んだことの中から最高のものを紹介するために Unity が取った方法です。Unity MARS Starter Templates には、現在 7 つのテンプレートが含まれています。

  1. Blank
  2. Tabletop(1:1 スケール)
  3. Tabletop(10:1 スケール)
  4. Face mask
  5. Game(基本)
  6. Game(高度)
  7. Training

ここからは、各テンプレートを詳しく見ていきましょう。

Blank テンプレート

ゼロから始めてみたいという意欲のある方向けに、何もないキャンバスからプロジェクトを開始するオプションをご用意しています。これには、環境をスキャンするときに視覚的な手がかりを得るための点群と平面のビジュアライザーとともに、あらかじめ設定済みの MARS セッション、ユーザー、カメラが含まれています。Unity MARS でシーンを開くと、プロキシが 1 つ配置されています。

Unity MARS は、実世界の環境における位置とのマッチングに基づき、実世界のオブジェクトのプロキシ、つまり実世界のオブジェクトの代役を作成します。Unity MARS では通常、位置のマッチングを取る最初の相手として、ユーザーを最初に追加します。これは、ユーザーの位置がシミュレーションのカメラに対応しているためです。

Tabletop テンプレート

これはユーザーに「テーブルの上にオブジェクトが表示される」という定型的なシーンの例を学んでもらうためのテンプレートです。この種のセットアップを作成するには、Unity MARS のドラッグアンドドロップによるワークフローや Unity MARS パネルでプロキシのショートカットを使用するなど、いくつかの方法があります。このテンプレートではすべての条件値が調整済みとなっているという利点があります。また、配置されているオブジェクトはシンプルな Unity キューブ 1 つだけです。ユーザーの皆さんがこのキューブをご自分のデジタルコンテンツに置き換えるという使い方を想定しています。

AR で等身大のオブジェクトと対話することを想定した 1:1 スケールのテンプレートと、それ以外の用途を想定した 10:1 スケールのテンプレートをご用意しています。「miniature」テンプレートは、都市のような大きなコンテンツの卓上ビジュアライゼーションを作成するためのベストプラクティスを示しています。一般的には、原寸大でコンテンツを作成し、Unity MARS セッションの「World Scale」パラメーターを使い、現実よりもはるかに小さい縮尺でレンダリングすることをお勧めします。コンテンツは、原寸大で作成した後にスケールダウンした場合に最高のパフォーマンスを発揮する性質があります。小さなオブジェクトを作成しようとすると、精度の問題を起こす傾向があります。

Face mask テンプレート

Face mask テンプレートは、ユーザーの顔に固定されたコンテンツを作成したいと考えている開発者が開発の足がかりとして使えるよう設計されました。モデルをマネキンのように装飾することができます。このテンプレートで生成するコンテンツは、面白メガネのようなソリッドメッシュにすることもできますし、パーティクルシステムやその他の視覚効果のターゲットなど、かっちりした形をもたないものにすることもできます。このテンプレートには、デフォルトで顔のランドマークビジュアライザーが含まれており、ユーザーは Unity MARS が把握した顔の各特徴点の位置を確認することができます。

Game テンプレート

3D ゲームといえば、古典的なプラットフォーマーを忘れてはいけないでしょう。Unity MARS の Game テンプレートは、この人気の高いゲーム体験(キャラクターが環境を動き回ってオブジェクトを収集する)を AR に移植したものです。

このテンプレートでは、ゲームが各プレイヤーに固有の物理的環境を理解することで、より魅力的なゲームプレイ体験を生み出す方法を示しています。これは、古典的なプラットフォーマーを AR で表現したものですが、仮想世界を探索するのではなく、現実世界を豊かな環境として利用するのが新しい点です。

ゲームでは、ロボットはクリスタルを集めるために旅をします。クリスタルは自動的に配置され、現実世界とシームレスに相互作用します。このテンプレートはプラットフォーマーの基礎となるものですが、ユーザーがロボットとクリスタルを自分のキャラクターやオブジェクトに置き換えて、ゲームに命を吹き込んでいくことを想定しています。このユースケースの実際のデモを見ることができます。

Unity MARS の Game テンプレートには、基本的なものと高度なものの 2 種類があります。

2 つのテンプレートの比較

基本的なテンプレートは Unity MARS のドラッグアンドドロップワークフローを利用して開発されたものです。コンテンツは予想される AR 平面に直接配置されています。このため、結果的に最も分かりやすいシーンになりました。

より高度なテンプレートは、複雑なゲームメカニクスを持つ AR アプリケーションに使用されるのと同じ原理と方法を使用して作成されました。コンテンツは、セマンティックタグとフォースでオーサリングされます。セマンティックタグを使うことで、キャラクターと収集対象のオブジェクトを含むすべてのプロキシがマッチする「スポーン点」の位置でシーンを装飾することが可能になります。フォースを使用することで、デバイスからのデータにノイズが多く、非常に近い 2 つの平面が重なっても、コンテンツは重ならないことが保証されます。これらの結果として得られる Unity シーンは、より技術的に複雑になります(Unity MARS のコンセプトに慣れていないユーザーは、ドキュメントを参照することをお勧めします)。

制御スキーム

Unity では、ワールドの中でユーザーがデバイスにタッチした位置にロボットが移動(経路が途切れた場合はジャンプ)するようなダイレクトタッチ制御を開発しました。これにより、ユーザーが移動してほしい場所にロボットが常に移動するという大きなメリットが得られます。ユーザーの視界の中心にキャラクターを再配置することはこの制御の本質的な部分であり、また、没入型のアプリケーションではオブジェクトを見失いがちであることを考えると、非常に価値あることです。

クリスタルは回転するアニメーションがついており、ロボットが衝突すると回収されます。クリスタルとロボットは、Unity MARS とは独立して動作します。つまり、クリスタルとロボットは純粋なデジタル環境内に配置されているということです。

レプリケーター

Game テンプレートは、Unity MARS の「レプリケーター」と呼ばれるプリミティブなオブジェクトタイプを利用しています。データに複数のマッチがある場合、レプリケーターはプロキシまたはプロキシグループを複製します。どちらのテンプレートもこれを使用して、コリジョンプロキシ用の適切なサイズのプレーンをすべてマッチさせます。基本バージョンのテンプレートは、クリスタルが置かれた平面全体を作成するための同様のレプリケーター設定を持っています。より高度なバージョンのテンプレートでは、クリスタルを直接配置する代わりに、スポーン点の位置をワールドに書き込みます。そして、スポーン点のプロキシが複製され、マッチングされます。これにより、Scene ビューで必要とされるコンテンツの微調整の量を減らし、同時に複数のタイプのオブジェクトとのマッチングをサポートします。

Training テンプレート

Training テンプレートは、開発者がガイド付き体験を作れるようにすることを目的として作られたテンプレートです。ガイド付き体験とは、カスタマイズ可能なトリガーに基づいて一連のステップを自動的に進行し、エンドユーザーに案内を提示するものです。これをトレーニングのユースケースとして、ユーザーに特定の機能を実行する方法を示すことを想定して作ったのがこのテンプレートです。

開発者は、シーンに含まれているプレハブを複製したり、修正したりしてテンプレートを拡張することができます。ユーザーデバイスがスマートフォンや PC などのモバイル機器でもヘッドマウントディスプレイ(HMD)でも、シーンを分けたりや別途ビルドを必要とせずとも最適に動作するように、体験はレスポンシブになるよう配慮しています。また、基本的なインタラクションが組み込まれています。

Training テンプレートは、実際の機器を使って現場で動作するように設計されています。これは、テンプレートが外部システムに簡単にフックできるようにする必要があるということです。また、既知の場所や機器の一部に対してリローカライズする必要もありました。これらを実現するために、非平面プロキシを使用します。

Training テンプレートは 3 つのパートで構成されています。すなわち、ウォークスルーシステム、メニュー(後述のユーザーインターフェースパネル)、レスポンシブな Unity MARS アクションの 3 つです。

ウォークスルーシステム

ウォークスルーシステムは、一連のステップで構成されています。常に 1 つのステップだけがアクティブになっています。各ステップは順番にビジュアルや他のスクリプトを起動します。

1 つのステップには、それを進行させるトリガーをいくつでも持たせることができます。テンプレートでは、最も一般的に使用されているステップをいくらか集めたものを提供しています。これらには、近接、プロキシの状態、および視線が含まれます。トリガーは、ステップを進行していいタイミングをステップに伝えるだけの単機能スクリプトです。これを Unity MARS と組み合わせることで、現実世界に反応するステップバイステップの体験を提供することができます。

UI 構築

Training テンプレートのために、ユーザーインターフェース(UI)コンポーネントのコレクションを構築しました。主なコンポーネントは、ユーザーの進捗状況を表示する UI パネルです。パネルには、ウォークスルーの各ステップが説明とともに表示され、これはトレーニングのプロセスのステップを通じてユーザーを誘導する役割を果たします。ユーザーはナビゲーションバーからドロップダウンリストにアクセスして、ステップをスキップしたり、どのステップが完了したかを表示したりすることができます。

メインパネルに加えて、開発者は追加の空間 UI コンポーネントを使用して、ユーザーが空間を行き来し、さまざまな POI に注意を向けてもらうための支援を行うことができます。これには、ユーザーの動きに反応するために Unity MARS のフォースを使用する矢印やオフスクリーンインジケーターが含まれます。矢印のプレハブには、常にユーザーの方を向くように回転するようにフォースを配置し、オフスクリーンインジケーターは、視野(FOV)内にある POI のスクリーン空間での位置に基づいて、2 つのフォースの配置をブレンドします。POI が視界から外れている場合、オフスクリーンインジケーターの位置は、頭部のポーズによって制御されます。そうでない場合は、インジケーターは、ユーザーの注意を引きつけるためにオブジェクトに向かって移動します。

レスポンシブ性

AR は多くのフォームファクターで動作しますが、Unity は Training テンプレートをそれらすべてに対応させたいと考えています。AR を体験するための主なデバイスは、スマートフォンと HMD の 2 つです。Unity では、これらをそれぞれ「平面的」と「空間的」という、2 つの没入感のレベルに分類しています。

レスポンシブ性の実現には、UI キャンバスの親子関係の変更や再配置を含む、キャンバス操作が可能である必要があります。平面型のデバイスでは、キャンバスの要素は画面に固定されますが、没入型のデバイスでは、これらの要素は空間内に存在している場合があります。キャンバスを操作できるようにするために、没入感のレベルごとに Unity MARS の条件とアクションを作成し、エディターで各シナリオをシミュレーションしました。

平面的な UI と空間的な UI の間にはいくつかの重要な違いがあります。ナビゲーションバーと同様に、「前」ボタンと「次」ボタンの位置は、ユーザーがスクリーンとヘッドマウントディスプレイのどちらで操作しているかによって異なります。また、各ステップの UI パネルは、空間的な UI の場合は 3D で空間内に浮かんでいるのに、平面的な UI の場合は、画面全体を埋めるようになっています。これらの調整は、基本的にはそれぞれの媒体に固有のアフォーダンスに基づいて行うことになります。

新しいテンプレートの情報をお待ちください

現在は、Unity MARS を使った開発にとって、とてもエキサイティングな時期です。開拓すべきユースケースは無限にあります。今回ご紹介した 7 つの Starter Templates はすでにご利用いただくことができる状態です。また、Unity では定期的に新しいテンプレートをリリースしていく予定です。フォーラムで、皆さんが学んだこと、そして皆さんご自身の「テンプレート」を共有していただけることを楽しみにしています。

 

無料トライアルを開始する

2020年7月2日 カテゴリ: テクノロジー | 9 分 で読めます
取り上げているトピック