FRMSKI開発ブログ

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

【HIG】System Capabilities / Rating and Reviews 和訳

Rating and Reviewsの和訳です。

Rating and Reviews

 評価やレビューは、アプリを試してみるかどうかを検討する際に、情報に基づいた判断を下すのに役立ちます。プラスの評価とレビューはアプリのダウンロード数を増やすことができ、お客様からのフィードバックにより、今後の開発作業の指針となる実際の使用状況を把握することができます。

 全体的な経験を積むことが肯定的な評価とレビューを促進する最良の方法ですが、適切な時期にフィードバックを求めることも重要です。人々にあなたのアプリを評価するように依頼するときは、これらの考慮事項を念頭に置いてください。

  • ユーザーがアプリのエンゲージメントを実演した後にのみ、評価を求めます
     例えば、ゲームレベルまたは生産性タスクの完了時にユーザに促す。最初の打ち上げ時またはオンボード中に決してレーティングを要求しないでください。意見を形成するのに十分な時間を許してください。

  • 特に時間に敏感な作業やストレスの多い作業を行っている場合は、ユーザーを中断しないでください
     論理的な休止や停止点を探します。ここでの評価要求が最も合理的です。

  • 害虫にならないでください
     反復レーティングのプロンプトは刺激的なものになり、ユーザーのアプリに対する意見に悪影響を及ぼすことさえあります。評価リクエストの間に少なくとも1〜2週間は要し、ユーザーがアプリの追加利用を確認した後に再度プロンプトを表示するだけです。

System Rating and Review

 このシステムは、一貫した非侵害的な方法で、評価やレビューをリクエストすることができます。この機能を使用するには、アプリのユーザーエクスペリエンス内でフィードバックを求めるのが適切な場所を特定するだけです。ユーザーがまだフィードバックを与えていない場合は、レーティングとオプションの書面によるレビューを求めるアプリ内プロンプトが表示されます。ユーザーはフィードバックを提供したり、プロンプトを1回タップして閉じることができます。 (設定では、インストールされているすべてのアプリケーションの評価プロンプトを受け取らないように設定することもできます)。プロンプトの表示は、365日以内に自動的に3アプリケーションに制限されます。

f:id:frmski:20181107171200p:plain:w400

  • システム提供のプロンプトを推奨します
     システムの評価プロンプトは、最小限の影響でユーザを魅了するように設計された、使い慣れた効率的なエクスペリエンスを提供します。

  • フィードバックを要求するためにボタンやその他のコントロールを使用しないでください
     システムは、レーティング・プロンプトが発生する頻度を制限するので、コントロールに応答してフィードバックを要求しようとすると、レーティング・プロンプトが表示されなくなる可能性があります。

 デベロッパー向けのガイダンスについては、「StoreKit(StoreKit | Apple Developer Documentation)」のSKStoreReviewController(SKStoreReviewController - StoreKit | Apple Developer Documentation)を参照してください。

NOTE
 レビューへの対応は、ユーザーとのコミュニケーション、懸念事項への対処、およびアプリの評価を向上させるための素晴らしい方法です。ベストプラクティスについては、App Storeのレビューへの対応(Ratings, Reviews, and Responses - App Store - Apple Developer)を参照してください。

【HIG】System Capabilities / Quick Look 和訳

Quick Lookについての和訳です。

Quick Look

 クイックルックでは、お使いのアプリがこれらのファイル形式をサポートしていなくても、Keynote、Numbers、Pages、PDFドキュメント、画像、その他の種類のファイルをプレビューすることができます。 Mailはクイックルックを使用して添付ファイルを表示します。添付ファイルをダウンロードした後、Mailはメッセージ内に添付ファイルのアイコンとファイル名を表示します。アイコンをタップすると添付ファイルのプレビューが表示されます。

  • 現在のコンテキストに対してプレビューを適切に提示する
     iPhone上で、アプリケーションにナビゲーションバーがある場合は、プレビューをアプリの階層内の他のビューと同じように配置します。 iPadで、または独自のナビゲーションバーがない場合は、ナビゲーションバーを含む全画面モーダルビューでプレビューを開きます。どちらの方法でも、ナビゲーションバーにはクイックルックを終了するためのボタンと、共有やマークアップなどのアクションを実行するためのプレビュー固有のボタンがあります。アプリにツールバーが含まれている場合、ナビゲーションバーではなくプレビュー固有のボタンがここに表示されます。

デベロッパー向けのガイダンスについては、「iOSのドキュメントインタラクションプログラミングトピック(About Document Interaction)」と「クイックルック(QuickLook | Apple Developer Documentation)」を参照してください。

【HIG】System Capabilities / Printing 和訳

Printingについての和訳です。

Printing

 お使いのアプリは、システムに内蔵されているAirPrintテクノロジーを利用して、画像、PDFなどのコンテンツを互換性のあるプリンタにワイヤレスで印刷することができます。 AirPrint対応のアプリケーションで印刷可能なコンテンツを表示しているときには、通常、ナビゲーションバーやツールバーのアクションボタンをタップし、印刷アクションをタップしてプリンタビューを表示します。このビューには、利用可能なプリンタと、コピー数やページ範囲などのカスタマイズ可能なオプションの一覧が表示され、印刷を開始するためのボタンが用意されています。

  • 印刷を発見可能にする
     アプリケーションにツールバーまたはナビゲーションバーがある場合は、システム提供のアクションボタンを使用して印刷を有効にします。ユーザーはこのボタンに精通しており、他のアプリで印刷するために使用します。アプリにツールバーやナビゲーションバーがない場合は、代わりにカスタム印刷ボタンをデザインします。

  • 印刷が可能な場合にのみ印刷を有効にします
     印刷する画面がない場合、またはプリンタが使用できない場合は、誰かが操作ボタンをタップしても印刷アクションを表示しないでください。あなたのアプリがカスタム印刷ボタンを実装している場合、印刷が不可能な時は無効にするか非表示にします。

  • 価値を付加する印刷オプションを提供します
     人々があなたのコンテンツを印刷する際に指定したいオプションについて考えてみてください。ページ範囲を選択し、複数のコピーを要求するオプションを検討してください。フロントとバック印刷などの追加オプションを有効にして、プリンタがサポートする場合は有効にします。

デベロッパー向けのガイダンスについては、「iOSの描画と印刷ガイド(About Drawing and Printing in iOS)」と「UIPrintInteractionController(UIPrintInteractionController - UIKit | Apple Developer Documentation)」を参照してください。

HIG - System Capabilities / Notifications 和訳

HIG , Notificationsについての和訳です。

Notifications

 アプリは、デバイスがロックされているか、もしくは使用中であろうと、通知を使用して、いつでも重要な情報をタイムリーに提供できます。たとえば、メッセージが到着したとき、イベントが発生しそうなとき、新しいデータが利用可能なとき、または何かのステータスが変更されたときに、通知が発生することがあります。ユーザーは、ロック画面、デバイス使用中の画面の上部、および画面の上端から下にスワイプして開く通知センターに通知を表示します。各通知には、アプリ名、小さなアプリアイコン、メッセージが含まれます。通知には音が付いている場合があり、対応するアプリのアイコンにバッジが表示されたり更新されることがあります。

Tip
 通知は、ローカルまたはリモートにすることができます。ローカル通知は、同じデバイス上で発信され、配信されます。予定リストアプリは、ローカル通知を使用して、次回の会議や期日について誰かに警告することができます。プッシュ通知とも呼ばれるリモート通知は、サーバーから行われます。マルチプレイヤーゲームでは、リモート通知を使用して、プレイヤーがいつ移動したかを知ることができます。

Notification Behavior

 通知の動作は、アプリごとの設定で管理されます。通知をサポートするすべてのアプリで、機能を完全に有効または無効にすることができます。また、通知センターとロック画面での表示を有効にしたり、アプリアイコンのバッジを有効にしたり、次のいずれかの通知スタイルを選択することもできます。

  • バナー
     デバイスの使用中に数秒間画面の上部に表示され、消えます。

  • 警報
     デバイスが使用されている最中に画面の上部に表示され、手動で終了するまでそこに残ります。

 デバイスがロックされているときに通知をタップするか、デバイスがロックされているときにサイドにスワイプし、通知を閉じ、通知センターから削除し、対応するアプリを開き、関連情報を表示します。
 たとえば、ロックされていないデバイスで新しい電子メール通知をタップすると、Mailが開き、新しいメッセージが表示されます。ロックされていないデバイスでは、通知をスワイプするか消えるようにすると通知が破棄され、通知センターから削除される可能性があります。

 3D Touchを使用して通知に圧力をかける、またはアンロックされたデバイスで通知をスワイプすると、詳細な詳細ビューが開きます。このビューはカスタマイズ可能で、アクションを実行するための最大4つのボタンを含めることができます。たとえば、予定表アプリでは、タスクを延期し、完了としてマークするためのアクションを含む詳細ビューでタスク通知を配信する場合があります。カレンダーイベント通知は、イベントのアラームを一時的に遅らせるスヌーズアクションを提供します。

NOTE
 人々は、サポートしているすべてのアプリから通知を受け取るよう明示的に選択する必要があります。アプリを初めて使用するときに通知するように求められます。誰かがオプトアウトすると、いつでも[設定]にアクセスしてオプトインできます。

Designing Great Notification Experience

  • 有用で有益な通知を提供する
     人々は通知が迅速な更新を得ることを可能にするので、価値のある情報を提供することに集中します。完全な文章、文例、適切な句読点を使用し、メッセージを切り捨てないでください。必要に応じて、システムはこれを自動的に行います。アプリを開いたり、特定の画面に移動したり、特定のボタンをタップしたり、通知が却下されても覚えがたい他のタスクを実行したりするように、人に指示するのは避けてください。

  • ユーザーが応答しなくても、同じものに対して複数の通知を送信しないでください
     人々は都合のいいときに通知に出席します。同じことについて複数の通知を送信すると、通知センターがいっぱいになり、ユーザーはアプリからの通知をオフにすることができます。

  • アプリ名やアイコンは含めないでください
     システムは、各通知の先頭にこの情報を自動的に表示します。

  • 通知プレビューが表示されていない場合に表示するための説明テキストを提供します
     ユーザーの設定に基づいて、通知のプレビューがプライバシーのために非表示になることがあります。この場合、アプリアイコンと一般的な説明(通知はデフォルトの説明)のみが表示されます。ユーザーに十分なコンテキストを提供するには、Friend Request、New Comment、Reminder、Shipmentなどの通知コンテンツを簡潔に記述するカスタムテキストを提供する必要があります。

  • あなたの通知を補うためのサウンドを提供してください
     サウンドは、スクリーンを見ていないときに誰かの注意を引く良い方法です。予定リストアプリケーションは、重要なタスクを実行するときなど、警告音を鳴らすことがあります。あなたのアプリはこれにカスタムサウンドまたはビルトインアラートサウンドを使用できます。カスタムサウンドを使用する場合は、それが短く、独特で、専門的に制作されていることを確認してください。 「ローカルおよびリモート通知プログラミングガイド」の「カスタムアラート音の準備」を参照してください。必要に応じて通知警告音を無効にすることができます。サウンドに付随する振動を有効にすることもできます。これは手動で有効にする必要があり、アプリケーションによってプログラムで有効にすることはできません。

  • 詳細ビューを提供することを検討してください
     通知の詳細ビューには、通知に関する詳細情報と、アプリを開くための現在のコンテキストを残すことなく即座に対応する機能があります。このビューには、有用な情報が含まれていて、認識可能で、アプリの自然な拡張機能のように感じる必要があります。写真、ビデオ、その他のコンテンツを含むことができ、表示中に動的に更新することができます。たとえば、乗り物のアプリで現在の場所に近づいていることを示す地図をここに表示することができます。

Badging

  • 重要な情報を示すのではなく、通知を補うためにバッジを使用します
     アプリのバッジをオフにすることができます。あなたのアプリが重要な情報を伝達するためにバッジに頼っている場合、あなたはそれを逃してしまう危険性があります。

  • 通知目的でのみバッジを使用します
     バッジを使用して、大気の質、日付、株価、天気などの他の種類の数値情報を表示することはできません。

  • バッジを最新の状態に保つ
     対応する情報が読み込まれるとすぐにアプリのバッジを更新します。あなたは、人々が新しい情報が利用可能だと思うことを望んでいません。すでに見たことがあるだけです。バッジの数を0に減らすと、通知センターから関連するすべての通知が削除されます。

HIG - System Capabilities / Multitasking 和訳

今回はiPadで可能なマルチタスクについての和訳です。

Multitasking

 マルチタスク機能を使用すると、iOSバイスマルチタスクインターフェイスを使用して、またはiPad上でマルチフィンガージェスチャを使用して、いつでも簡単にあるアプリケーションから別のアプリケーションに切り替えることができます。 iPadでは、マルチタスキングを使用すると、スライドオーバー、スプリットビュー、ピクチャインピクチャモードで同時に2つのアプリを使用できます。スライドオーバーは、画面の右側からスワイプしてアクセスすると、現在のアプリのコンテキストを離れずに一時的に2番目のアプリを使用します。たとえば、Safariを使用している間にメール受信トレイをすばやく表示できます。分割ビューでは、同時に2つのサイドバイサイドアプリを使用できます。また、ピクチャインピクチャでは、別のアプリで作業中にビデオを視聴できます。

 マルチタスク環境で活躍するアプリケーションを設計することは、デバイス上の他のアプリケーションと調和的に共存するアプリケーションに依存します。これは、あなたのアプリがあまりに多くのCPU、メモリ、画面スペース、または他のシステムリソースを使用すべきでないことを意味します。突然の中断や他のアプリからの音声、素早くスムーズにバックグラウンドへのトランジション、バックグラウンドでの操作に責任を持って対応する必要があります。

  • スプリットビューで実行しているときに適した、適応可能なインターフェイスを設計します
     適応インターフェースは、ユーザーがマルチタスキングモードを切り替えたり、画面を回転したり、テキストサイズやロケールを変更したりすると、そのUI要素とレイアウトを自動的に調整します。適応可能なエクスペリエンスの設計の詳細については、「適応性とレイアウト(Adaptivity and Layout - Visual Design - iOS - Human Interface Guidelines - Apple Developer)」を参照してください。

  • 中断の準備をして、再開の準備をしてください
     あなたのアプリはいつでも中断することができます。中断が発生すると、アプリは現在の状態をすばやく正確に保存して、人々が戻ってきたときに途絶えていた部分をシームレスに続けることができます。

  • インターフェイスが二重のハイステータスバーで動作することを確認してください
     進行中の電話、音声録音、テザリングなどの特定の機能では、画面上部に追加のステータスバーが表示されます。準備されていないアプリでは、この高さが追加されると、他のインターフェイス要素を覆うか押し下げることによってレイアウトの問題が発生する可能性があります。これらの機能を有効にしてアプリをテストすると、インターフェースが適切に応答していても見栄えがよくなります。

  • 注意や積極的な参加が必要な動作を一時停止してください
     たとえば、アプリがゲームやメディア視聴アプリの場合、他のアプリに切り替えるときに何も見逃さないようにしてください。彼らが元に戻ったとき、彼らは何もやり残していないかのように彼らを続けさせてください。

  • 外部オーディオに適切に対応します
     アプリのオーディオが他のアプリやシステム自体のオーディオによって中断されることがあります。たとえば、着信電話やSiriによって開始された音楽プレイリストは、アプリの音声を中断することがあります。このような状況が発生した場合、アプリのレスポンスはユーザーの期待に応える必要があります。音楽、ポッドキャスト、またはオーディオブックの再生などの主要なオーディオの中断の場合、アプリはオーディオを無期限に一時停止する必要があります。 GPSの方向通知などの割り込みが短くなるようにするには、一時的にオーディオの音量を下げたり、オーディオを一時停止したり、中断が終わるとレジュームしたりする必要があります。

  • バックグラウンドでユーザーが開始したタスクを完了します
     誰かがタスクを開始すると、彼らはあなたのアプリから離れても終了すると予想します。あなたのアプリケーションが追加の入力を必要としないタスクを実行中である場合は、中断する前にバックグラウンドで完了させてください。

  • 通知は控えめに使用してください
     あなたのアプリは、あなたのアプリが中断されているか、バックグラウンドで実行中であっても、まったく実行されていなくても、特定の時刻に通知が送られるように手配することができます。重要な情報を伝えるための通知は大丈夫ですが、多くなりすぎて邪魔するのを避けてください。たとえば、アプリがバックグラウンドでタスクを完了するたびに通知を表示しないでください。代わりに、あなたのアプリに戻って人々がタスクをチェックできるようにします。

HIG - System Capabilities / Augmented Reality③ 和訳

HIGのAugmented Realityの翻訳最後のパートです。主にARアプリ実行中に発生する問題への対処策についてです。

Handling Interruptions

  • 不必要にARエクスペリエンスを中断しないでください
     ARがアクティブでない場合、ARKitはデバイスの位置と向きを追跡できません。中断を避ける1つの方法は、人々が経験の中でオブジェクトと設定を調整できるようにすることです。たとえば、ユーザーが自分のリビングルームに購入しようとしている椅子を置いて、その椅子をさまざまなファブリックで利用できる場合は、ARを終了せずにファブリックを変更できるようにします。

  • relocalizationを使用して、他の中断から回復してください
     ARKitは、ユーザーが一時的に別のアプリに切り替えたり、電話を受けたりするなど、中断中にデバイスの位置や向きを追跡することはできません。中断後、以前に配置された仮想オブジェクトは、間違った現実の位置に現れる可能性が高い。再ローカライズを有効にすると、ARKitは仮想オブジェクトを元の現実の位置に復元するために必要な情報を回復しようとします。このプロセスでは、ユーザーは中断前の場所の近くで自分のデバイスを配置し方向を合わせる必要があります。開発者ガイダンスについては、「ARSessionObserver(ARSessionObserver - ARKit | Apple Developer Documentation)」を参照してください。

  • 再ローカライゼーションが完了するまで、以前に配置された仮想オブジェクトを隠すことを検討してください
     再定位中に、ARKitは以前の状態をユーザー環境の新しい観察と調整しようとします。このプロセスが完了するまで、仮想オブジェクトの位置は間違っている可能性があります。

  • ユーザーが再ローカライズをキャンセルできるようにする
     ユーザが中断前の場所の近くで自分のデバイスの位置を決めたり向きを変えたりできない場合、再ローカリゼーションは無期限に続行され、成功することはありません。ユーザーがセッションを正常に再開するようにガイドするか、再ローカライズが成功しない場合にユーザーがARエクスペリエンスを再開できるようにリセットボタンまたはその他の方法を提供します。

Handling Problems

  • ユーザーが期待を満たしていない場合、ユーザーに体験を再設定させる
     オブジェクトの配置を改善したり苦労したりする条件を人々が待つよう強制しないでください。彼らにもう一度やり直してより良い結果が得られるかどうかを確認する方法を教えてください。

  • 問題が発生した場合は、可能な修正を提案する
     ユーザの環境および表面検出の分析は、不十分な光、不十分な反射表面、十分な詳細のない表面、またはあまりにも多くのカメラの動きなど、さまざまな理由で失敗するか、または長すぎることがあります。アプリにこれらの問題が通知された場合は、解決のための提案をしてください。

問題 可能性のある提案
不十分なフィーチャが検出されました。 より多くのライトをオンにして移動してみてください。
過度の動きが検出されました。 バイスをゆっくり動かしてください。
表面の検出に時間がかかりすぎています。 移動して、より多くのライトをオンにして、十分にテクスチャのついた表面を指していることを確認してください。
  • 可能なデバイスでのみAR機能を提供する
     アプリの主な目的がARの場合は、ARKitをサポートする端末でのみアプリを使用できます。あなたのアプリが製品写真を含む家具カタログのようなARを第2の機能として提供し、ARで表示される製品を許可する場合、サポートされていないデバイスにARを入力しようとするとエラーが表示されません。デバイスがARKitをサポートしていない場合、最初にオプションのAR機能を提示しないでください。開発者向けのガイダンスについては、「Information Property List Key Reference(About Info.plist Keys and Values)」のUIRequiredDeviceCapabilities(iOS Keys)セクションのarkitキーと、ARConfiguration(ARConfiguration - ARKit | Apple Developer Documentation)のisSupported(isSupported - ARConfiguration | Apple Developer Documentation)プロパティを参照してください。

AR Glyph

 アプリケーションは、ARKitベースのエクスペリエンスを起動するコントロールにARグリフを表示できます。このグリフは、「Resources(Apple Design Resources - Apple Developer)」でダウンロードできます。

f:id:frmski:20181102134438p:plain:w400

  • 意図したとおりにARグリフを使用してください
     グリフは、ARKitベースのエクスペリエンスを開始するために厳密に使用する必要があります。グリフを変更したり(サイズや色を変更する以外)、他の用途に使用したり、ARKitを使用して作成されていないARエクスペリエンスと組み合わせて使用​​したりしないでください。

  • 最小クリアスペースを維持する
     ARグリフの周りに必要なクリアスペースの最小量は、グリフの高さの10%です。他の要素がこの領域を侵害したり、グリフを閉塞させたりしないでください。

AR Badges

 製品やその他のオブジェクトのコレクションを含むアプリは、バッジを使用して、ARKitを使用してARで表示できる特定のアイテムを識別できます。たとえば、デパートのアプリでは、バッジを使用して、購入前に家でプレビューできる家具にマークを付けることがあります。

f:id:frmski:20181102134750p:plain:w400

  • ARバッジは意図したとおりに使用し、変更しないでください
     リソースでは、折りたたまれたフォームと拡張されたフォームで利用可能なARバッジをダウンロードできます。 ARKitを使用してARで見ることができる製品または他のオブジェクトを識別するために、これらの画像を排他的に使用してください。バッジを変更したり、色を変更したり、他の用途に使用したり、ARKitで作成されていないARエクスペリエンスと組み合わせて使用​​したりしないでください。

  • グリフのみのバッジよりも、ARバッジが優先されます
     一般に、スペースが制約されていて、ARバッジに対応していない場合、グリフのみのバッジを使用します。どちらのバッジもデフォルトサイズでうまく動作します。

  • バッジは、アプリでARで表示できるオブジェクトと表示できないオブジェクトが混在している場合にのみ使用します
     アプリ内のすべてのオブジェクトをARで表示できる場合、バッジは冗長で不要です。

  • バッジの配置を一貫して明瞭に保ちます
     バッジは、オブジェクトの写真の一角に表示されたときに最もよく見えます。必ず同じ角に置いて、はっきりと見える大きさであることを確認してください(ただし、写真の重要な部分を隠すほど大きくはありません)。

  • 最小クリアスペースを維持する
      ARバッジの周りに必要なクリアスペースの最小量は、バッジの高さの10%です。他の要素は、このスペースを侵害してはいけません。

Learn More

 開発者向けのガイダンスについては、ARKit(ARKit | Apple Developer Documentation)を参照してください。

【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)」を参照してください。