FRMSKI開発ブログ

AWS、iOS、AR/VRなど開発メモ

【HIG】System Capabilities / Augmented Reality② 和訳

HIG、Augmented Realityの2回目です。主にユーザーインタラクションについての項目です。

Placing Virtual Objects

f:id:frmski:20181102120833p:plain:w400

  • サーフェスを配置してオブジェクトを配置するタイミングを理解するのを助けてください
     ビジュアルインジケータは、サーフェスターゲティングモードがアクティブであることを伝えるうえで最適な方法です。例えば、スクリーンの中央にある台形のレチクルは、人が水平または垂直の平坦な面を見つけるべきであると推測するのに役立ちます。サーフェスがターゲットに設定されると、インジケータの外観が変更され、オブジェクトの配置が可能になることが示唆されます。インジケータの向きが検出されたサーフェスのアラインメントに従うと、配置されたオブジェクトがどのように整列するかを人々が予測するのに役立ちます。あなたのアプリの経験の一部のように感じるビジュアルインジケータをデザインしてください。

  • ユーザーがオブジェクトを配置したときに適切に応答してください
     表面の検出中、精度は(非常に短時間で)徐々に改善されます。ユーザーが画面をタップしてオブジェクトを配置する場合は、現在利用可能な情報を使用してすぐに配置します。次に、表面の検出が完了したら、オブジェクトの位置を微妙に絞り込みます。オブジェクトが検出されたサーフェスの範囲を超えて配置されている場合は、オブジェクトをサーフェス上に静かに軽く押し込みます。

  • 検出されたサーフェスのエッジにオブジェクトを正確に揃えようとしないでください
      ARでは、サーフェイス境界は、ユーザーの周囲をさらに分析すると変化する可能性のある近似値です。

Use Interaction with Virtual Objects

  • 別々の画面上のコントロールを直接操作することをお勧めします
     ユーザーが画面上のオブジェクトに触れることができ、画面の別の部分にある別のコントロールと対話するのではなく、直接触れることができれば、より没入感があり直感的です。しかし、ユーザーが移動しているときは、直接操作が混乱したり、困難になることがあります。

  • 標準的で使い慣れたジェスチャーを使用して、仮想オブジェクトと直接対話できます
     たとえば、オブジェクトを移動するための単一指のドラッグジェスチャと、オブジェクトを回転させるための2本指の回転ジェスチャをサポートすることを検討してください。回転は、通常、オブジェクトが置かれているサーフェスに対して発生する必要があります。たとえば、水平面に置かれたオブジェクトは、通常、オブジェクトの垂直軸を中心に回転します。

  • 一般的に、インタラクションを簡単に保つ
     タッチジェスチャは本質的に2次元であるが、AR体験は現実世界の3次元を含む。仮想オブジェクトとのユーザーのやりとりを簡素化するために、以下のアプローチを検討してください。

f:id:frmski:20181102130427p:plain:w400

  • インタラクティブな仮想オブジェクトの合理的な範囲内でジェスチャーに応答する
     小さな、薄い、または離れた場所に置かれたオブジェクト上の特定のポイントにユーザーが正確に触れることは難しいかもしれません。あなたのアプリがインタラクティブなオブジェクトの近くでジェスチャーを検出すると、通常、オブジェクトに影響を与えたいと思うのが最善です。

  • ユーザーが開始するオブジェクトのスケーリングが必要かどうかを検討します
     スケーリングは、おもちゃやゲームキャラクターのようなオブジェクトが本質的なサイズを持たず、ユーザーがそれをもっと大きくしたり小さくしたりしたいときに、一般に適切です。家具のように現実世界に対して有限のサイズを持つオブジェクトの場合、アイテムが正確なサイズに置かれていれば、スケーリングは無関係です。スケーリングは、オブジェクトの距離を調整してオブジェクトをより近づけるように調整する救済策ではありません。たとえば、遠くにあるより大きなオブジェクトが得られるだけです。

  • 潜在的に競合するジェスチャーに注意してください
     例えば、2本指のピンチジェスチャーは、2本指の回転ジェスチャーと非常によく似ています。このような2つの同様のジェスチャーを実装する場合は、アプリをテストして、正しく解釈されていることを確認してください。

  • 仮想オブジェクトの動きが滑らかであることを確認します
     オブジェクトのサイズを変更したり、オブジェクトを回転したり、新しい場所に移動したりするときに、オブジェクトがジャンプして表示されるべきではありません。

  • より魅力的な相互作用の方法を探求する
     ジェスチャーは、人々がAR内の仮想オブジェクトと対話する唯一の方法ではありません。あなたのアプリは、モーションや近接性などの他の要素を使用してコンテンツを生き生きとさせることができます。例えば、ゲームキャラクタは、ユーザがそれに向かって歩くときに、ユーザを見るために頭を回転させることができる。

Reacting to Imagery in the User's Environment

 ユーザーの環境で既知の画像を使用して仮想コンテンツの外観をトリガーすることで、ARエクスペリエンスを強化できます。あなたのアプリは2D参照画像のセットを提供し、ARKitはユーザの環境内の画像をいつ、どこで検出するかを示します。たとえば、SF映画の舞台用ポスターをアプリが認識してから、ポスターから仮想宇宙船が飛び出し、周囲を飛行することがあります。また、小売店向けのアプリでは、ドアの両側に置かれたポスターを認識することで、店舗の正面玄関からバーチャルキャラクターが現れるようにすることができます。

  • 検出を最適化するための参照画像の設計と表示
     参照イメージを提供するときは、ユーザーの環境でそれらのイメージを検索すると予想される物理的なサイズを指定します。より正確なサイズ測定を提供することで、ARKitはイメージをより迅速に検出し、現実の位置をより正確に見積もることができます。検出性能と精度は、コントラストが高く、細部の細部が平坦な長方形の画像に最適です。反射しているか曲がっている現実の表面に現れる画像を検出しようとしないでください。

  • 検出された画像は、仮想コンテンツを表示するための参照フレームとしてのみ使用してください
     ARKitは、検出された画像の位置や向きの変化を追跡しません。したがって、絵の中の顔に口ひげを配置するなど、仮想コンテンツを正確に配置しようとすると、そのコンテンツが所定の位置に収まらないように見えることがあります。

  • 一度に使用する参照画像の数を制限する  画像検出のパフォーマンスは、ARKitがユーザーの環境で25個以下の異なる画像を探すときに最も効果的ですユースケースで25以上の参照イメージが必要な場合は、コンテキストに基づいてアクティブな参照イメージのセットを変更できます。たとえば、博物館ガイドアプリでは、コアロケーションを使用して、ユーザーが現在美術館のどの部分にいるのかを判断し、そのエリアに表示されているイメージのみを見ることができます。開発者ガイダンスについては、「ARエクスペリエンスでのイメージの認識(Recognizing Images in an AR Experience | Apple Developer Documentation)」を参照してください。