(57)【特許請求の範囲】
【請求項１】
仮想現実に基づく相互作用のための方法であって、前記方法は、
仮想現実クライアント端末によって出力された、予め設定された仮想要素を含む仮想現実シナリオにおいて動作フォーカスの移動を、前記仮想現実クライアント端末によって追跡するステップと、
前記移動に基づいて移動トラックを生成するステップと、
前記予め設定された仮想要素が位置する領域を前記移動トラックが通過するとき、選択イベントをトリガするステップと、
前記選択イベントが検出されるかどうかを決定するステップと、
前記選択イベントが検出される場合、前記予め設定された仮想要素を選択するステップと、
前記予め設定された仮想要素に対応する動作をトリガするステップと
を含み、
前記領域が、前記予め設定された仮想要素の選択が意図しないものである可能性を下げるために定められ、
前記予め設定された仮想要素が位置する前記領域が、予め設定されたターゲットゾーンを含み、
前記選択イベントが検出されるかどうかを決定するステップは、
前記移動トラックが前記予め設定された仮想要素が位置する前記領域内の前記予め設定されたターゲットゾーンを第1の方向に通過するとともに、第2の方向に再度通過したかどうかを判定するステップであって、前記予め設定されたターゲットゾーンを前記第1の方向に通過することが、前記予め設定されたターゲットゾーンの上側境界および下側境界の両方を前記第1の方向に横切ることであり、前記予め設定されたターゲットゾーンを前記第2の方向に再度通過することが、前記予め設定されたターゲットゾーンの上側境界および下側境界の両方を前記第2の方向に横切ることであり、前記第1の方向と前記第2の方向とが異なる、ステップと、
前記移動トラックが前記予め設定されたターゲットゾーンを前記第1の方向に通過するとともに、前記第2の方向に再度通過したと判定した場合、前記選択イベントが検出されると決定するステップと
を含む、方法。
【請求項２】
予め設定されたセンシングハードウェアを使用することによってユーザの頭または手の移動を追跡するステップと、
前記予め設定されたセンシングハードウェアによって収集された前記ユーザの前記頭または前記手の移動データを取得するステップと、
前記頭または前記手の前記移動データに基づいて、前記仮想現実シナリオにおいて同期した移動を有するように前記動作フォーカスを制御するステップと、
をさらに含む、請求項1に記載の方法。
【請求項３】
前記移動トラックが前記第1の方向に前記予め設定されたターゲットゾーンを通過するとともに、予め設定された期間内に前記第2の方向に前記予め設定されたターゲットゾーンを再度通過する場合、前記選択イベントが検出されると決定するステップ
をさらに含む、請求項1に記載の方法。
【請求項４】
前記選択イベントが検出されるかどうかを決定するステップは、
前記領域のサブ領域のエリアのターゲット割合を計算するステップであって、前記サブ領域が、前記領域の内部に前記移動トラックにより形成された囲いである、ステップと、
前記ターゲット割合が予め設定されたしきい値に到達するかどうかを判定するステップと、
前記ターゲット割合が前記しきい値に到達する場合に、前記予め設定された仮想要素が位置する前記領域を前記移動トラックが通過するときにトリガされる前記選択イベントが検出されると決定するステップと
を含む、請求項1に記載の方法。
【請求項５】
前記ターゲット割合を計算するステップは、
前記予め設定された仮想要素が位置する前記領域の全エリアに対する前記サブ領域の前記エリアの前記ターゲット割合を計算するステップを含み、
前記サブ領域が、前記予め設定された仮想要素が位置する領域を前記移動トラックが通過するときに形成される、請求項4に記載の方法。
【請求項６】
前記ターゲット割合を計算するステップは、
前記予め設定されたターゲットゾーンのエリアに対する前記サブ領域のエリアのターゲット割合を計算するステップを含み、
前記予め設定された仮想要素が位置する前記領域が前記予め設定されたターゲットゾーンを含み、前記サブ領域が、前記移動トラックが前記予め設定されたターゲットゾーンを通過するときに形成される、請求項4に記載の方法。
【請求項７】
請求項1乃至6のいずれか一項に記載の方法を実行するように構成された複数のモジュールを具備する、仮想現実に基づく相互作用のための装置。
【発明の詳細な説明】
【技術分野】
【０００１】
優先権主張
本出願は、2016年10月26日に出願された、中国特許出願201610951000.9と、2017年10月24日に出願された米国特許出願15/792,628の優先権を主張するものであり、その全体が参照により組み込まれる。
【０００２】
本開示は、仮想現実の入力方法に関する。
【背景技術】
【０００３】
仮想現実（VR）は、ヘッドセットなどのVRデバイスを使用して、ときには物理的な空間またはマルチ投影環境と組み合わせて、3次元（3D）の仮想環境にユーザの物理的な存在をシミュレートする現実味のある画像、音声、および他の感覚を生成するとともに、VRユーザが仮想環境と相互作用できるようにするコンピュータ技術である。ゲームなどの多くのアプリケーション、コンテンツの消費、および製品が、ユーザにより没入型の体験を提供するためにVR技術を使用して開発されている。
【０００４】
場合によっては、ユーザが、VRシナリオと相互作用するためにVRユーザインターフェース（UI）内の仮想要素（例えば、仮想キー）を選択する必要があるとき、ユーザは、VRデバイスに接続された外部デバイスを使用することによってVR UI内の仮想要素を選択できる。VRデバイスに接続された外部デバイスは、スマートフォン、ジョイスティック、あるいは他のハンドヘルド入力デバイスであってよい。VRアプリケーションを使用するとき、ユーザは、外部デバイスを使用して、VR UI内の動作フォーカス（例えば、カーソル）を制御でき、仮想要素に動作フォーカスを移動し、外部デバイス上のボタンまたはタッチスクリーンをクリックすることによってUI内の仮想要素を選択できる。
【０００５】
場合によっては、クリックアクションは、VR UI内の仮想要素を選択するために「hover timeout」イベントを使用してシミュレートされ得る。すなわち、仮想要素は、所定の期間（例えば、3秒間）、仮想要素上に動作フォーカスをホバリングすることによって選択され得る。動作フォーカスがその期間仮想要素上に留まっているとき、仮想要素が選択される。ユーザは要素を選択するために一定期間待つ必要があるので、この方法はリアルタイム応答を必要とするVRアプリケーションに適切でないことがある。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本開示は、仮想現実アプリケーションにおいて入力を実行するための、コンピュータ実施方法、コンピュータプログラム製品、およびコンピュータシステムを含む、方法およびシステムを説明する。
【０００７】
ある実施形態では、仮想現実(VR)デバイスは、VRアプリケーションのVRシナリオに仮想要素を提示する。仮想要素が有効に相互作用できる仮想要素の有効インタラクション領域(EIR)が決定される。VRアプリケーションの動作フォーカスの軌跡は、VRデバイスによって感知された動きに基づいて決定される。動作フォーカスの軌跡とEIRの間の相互作用が仮想ボタンの選択イベントをトリガするための1つまたは複数の条件を満たす場合に、仮想要素が選択される。
【０００８】
説明される主題の実施形態は、以前に説明された実施形態を含めて、コンピュータ実施方法、コンピュータ実施方法を実行するコンピュータ可読命令を記憶する非一時的なコンピュータ可読媒体、および、1つまたは複数のコンピュータに相互運用可能に結合された1つまたは複数のコンピュータメモリと、1つまたは複数のコンピュータによって実行されたとき、非一時的なコンピュータ可読媒体に記憶されたコンピュータ実施方法/コンピュータ可読命令を実行する、有形の、非一時的な、機械可読媒体とを有するコンピュータ実施システム、を使用して実装され得る。
【０００９】
本明細書の主題は、VRアプリケーションを使用するときのユーザ体験を向上するように仮想現実シナリオにおける仮想要素のリアルタイムの選択を実現するために、特定の実施形態において実装され得る。
【００１０】
本明細書に説明される主題の一つまたは複数の実施形態の詳細は、発明の詳細な説明、特許請求の範囲、および添付の図面に記載される。主題の他の特徴、態様、および利点は、発明の詳細な説明、特許請求の範囲、および添付の図面から当業者に明らかになるであろう。
【図面の簡単な説明】
【００１１】
【図１】本開示の実施形態による、VRシナリオに基づく入力方法の一例を示すフローチャートである。
【００１２】
【図２】本開示の実施形態による、仮想ボタンの有効インタラクション領域を通過することによって、仮想ボタンの選択イベントをトリガする軌跡の一例を示す概略図である。
【００１３】
【図３】本開示の実施形態による、仮想要素の選択イベントをトリガする一例を示す概略図である。
【００１４】
【図４】本開示の実施形態による、VRアプリケーションを使用してオンラインショッピングを実行するための仮想要素を選択する一例を示す概略図である。
【００１５】
【図５】本開示の実施形態による、オンラインショッピングのVRシナリオにおいて入力を実行するための仮想キーを選択する一例を示す概略図である。
【００１６】
【図６】本開示の実施形態による、仮想要素の選択イベントをトリガする別の例を示す概略図である。
【００１７】
【図７】本開示の実施形態による、仮想要素の選択イベントをトリガするさらに別の例を示す概略図である。
【００１８】
【図８】本開示の実施形態による、仮想要素の選択イベントをトリガするさらに別の例を示す概略図である。
【００１９】
【図９】本開示の実施形態による、説明されるアルゴリズム、方法、機能、プロセス、フロー、およびプロシージャに関連付けられたコンピュータ機能を提供するために使用されるコンピュータ実施システムの一例を示すブロック図である。
【００２０】
様々な図面における同じの参照番号および参照符号は、同じ要素を示す。
【発明を実施するための形態】
【００２１】
以下の詳細な説明は、仮想現実の入力方法を説明し、任意の当業者が1つまたは複数の特定の実施形態の文脈において開示された主題を作成および使用できるようにするために提示される。本開示の範囲から逸脱することなく、開示された実施形態の様々な修正、変更、および置換を行うことができ、それらは当業者には容易に明らかであり、本明細書に定義された一般原理は他の実施形態および用途に適用できる。いくつかの事例では、説明される主題の理解を得るのに不必要な詳細は、不必要な詳細により1つまたは複数の説明される実装形態を曖昧にしないように、およびそのような詳細が当業者の技術の範囲内である限り、省略され得る。本開示は、説明または図示された実施態様に限定されることを意図しないが、説明される原理および特徴と矛盾しない最も広い範囲を与えるように意図されている。
【００２２】
仮想現実（VR）は、ヘッドセットなどのVRデバイスを使用して、ときには物理的な空間またはマルチ投影環境と組み合わせて、3次元（3D）の仮想環境にユーザの物理的な存在をシミュレートする現実味のある画像、音声、および他の感覚を生成するとともに、VRユーザが仮想環境と相互作用できるようにするコンピュータ技術である。ゲームなどの多くのアプリケーション、コンテンツの消費、および製品が、ユーザにより没入型の体験を提供するためにVR技術を使用して開発されている。
【００２３】
場合によっては、ユーザが、VRシナリオと相互作用するためにVRユーザインターフェース（UI）内の仮想要素（例えば、仮想キー）を選択する必要があるとき、ユーザは、VRデバイスに接続された外部デバイスを使用することによってVR UI内の仮想要素を選択できる。VRデバイスに接続された外部デバイスは、スマートフォン、ジョイスティック、あるいは他のハンドヘルド入力デバイスであってよい。VRアプリケーションを使用するとき、ユーザは、外部デバイスを使用して、VR UI内の動作フォーカス（例えば、カーソル）を制御でき、仮想要素に動作フォーカスを移動し、外部デバイス上のボタンまたはタッチスクリーンをクリックすることによってUI内の仮想要素を選択できる。
【００２４】
場合によっては、クリックアクションは、VR UI内の仮想要素を選択するために「hover timeout」イベントを使用してシミュレートされ得る。すなわち、仮想要素は、所定の期間（例えば、3秒間）、仮想要素上に動作フォーカスをホバリングすることによって選択され得る。動作フォーカスがその期間仮想要素上に留まっているとき、仮想要素が選択される。ユーザは要素を選択するために一定期間待つ必要があるので、この方法はリアルタイム応答を必要とするVRアプリケーションに適切でないことがある。
【００２５】
本開示は、VRシナリオにおいて仮想要素を選択する方法を開示する。動作フォーカス（例えば、仮想カーソル）がVRシナリオにおいて追跡されて、動作フォーカスの軌跡が生成される。動作フォーカスの軌跡が仮想要素の位置する領域を通過したときに、仮想要素は、選択イベントをトリガするために選択される。そうして、ユーザがVRデバイスを装着して、没入型VR体験を楽しんでいるとき、仮想要素が位置する仮想環境の空間的な領域を通過するように動作フォーカスの軌跡を制御することによって、ユーザは仮想要素を選択できる。VRアプリケーション使用時のユーザ体験を向上させるために、仮想要素がリアルタイムに選択され得る。
【００２６】
図1は、本開示の実施形態による、VRシナリオに基づく例示的な入力方法100を示すフローチャートである。提示を明快にするために、以下の説明は、本明細書における他の形態の文脈において方法100を概略的に説明する。しかしながら、方法100は、必要に応じて、例えば、任意のシステム、環境、ソフトウェア、およびハードウェアによって、またはシステム、環境、ソフトウェア、およびハードウェアの組み合わせによって実行されることができることが理解されるであろう。いくつかの実施形態では、方法100の様々なステップが、並列に、組み合わせて、ループで、または任意の順序で実行され得る。
【００２７】
110では、VRアプリケーションのVRシナリオにおける仮想要素が提示される。方法100は、VRデバイスによって実行され得る。VRアプリケーションは、VR技術に基づいて開発されたソフトウェアまたはアプリケーションであり、3D没入型ユーザ体験をVRデバイスのユーザに提供できる。VRアプリケーションは、VRデバイスによって生成されたVRシナリオをユーザに提示できる。VRシナリオは、VRアプリケーションを実行または制御するために選択され得る1つまたは複数の仮想要素を含むことができる。例えば、仮想要素は、VRアプリケーションと相互作用するためにユーザによって使用されるべき（情報の入力またはサービスの開始など）VRシナリオ上に生成された、仮想ボタン、仮想キー、またはパターンであってよい。
【００２８】
サービスはVRアプリケーションによってサポートされるタスクまたは機能であり得る。例えば、サービスは、VRショッピング、VRゲーム、VRベースのビデオオンデマンド、またはVRライブキャストへの寄付の支払いなど、支払いサービスであってよい。いくつかの実施形態では、支払いサービスのための仮想要素は、支払いサービスを開始または実行するために選択され得る仮想支払いボタンであってよい。支払いサービスが開始された後、VRデバイスは、ユーザIDおよびパスワードなどの支払い情報をユーザが入力するための入力UIをVRシナリオに提示できる。仮想要素は、入力UI上に提示された仮想キーであってよい。方法100は、110に続いて120に進む。
【００２９】
120において、仮想要素の有効インタラクション領域（EIR）が決定される。ユーザが仮想要素を選択するために相互作用できる領域は、仮想要素のEIRと呼ばれ得る。いくつかの実施形態では、仮想要素のEIRは、VRシナリオにおいて示される仮想要素の領域の少なくとも一部に重なるエリアであってよい。例えば、仮想要素が長方形の仮想ボタンであるとき、長方形の少なくとも一部を覆うエリアが、EIRであってよい。
【００３０】
VRシナリオおよびそこに含まれる仮想要素は、VRモデリング動作によって（UNITY、3DSMAX、またはPHOTOSHOP(登録商標)などのモデリングツールを使用してなど）、生成されることができる。場合によっては、VRモデリングおよびVRシナリオテクスチャマッピングは、実生活のシナリオに基づくことができる。例えば、マテリアルのテクスチャマップおよび実生活のシナリオモデルは、最初に実生活のオブジェクトまたはシナリオを写真撮影することによって収集され得る。PHOTOSHOP(登録商標)または3DMAXなどのモデリングツールは、テクスチャ処理および実生活の3Dモデル生成のために使用され得る。3Dモデルは、UNITY3D(U3D)プラットフォームにインポートされ、サウンドエフェクト、グラフィカルインターフェース、プラグイン、およびライティング(lighting)を介して、多次元的にレンダリングされる。インタラクションコードが実行されて、3DモデルをVRシナリオモデルに変換できる。VRシナリオモデリングの後、VRデバイスはVRシナリオおよびそこに含まれる仮想要素をユーザに出力できる。方法100は、120に続いて130に進む。
【００３１】
130において、VRデバイスによって感知された動きに基づいてVRアプリケーションの動作フォーカスの軌跡が決定される。仮想要素が、選択イベントをトリガすることによって選択され得る。選択イベントは、EIRを通過するように動作フォーカスの軌跡を制御することによって、トリガされ得る。そうして、ユーザはVRシナリオにおいて仮想要素をリアルタイムに選択できる。いくつかの実施形態では、動作フォーカスまたは仮想フォーカスは、VRアプリケーションのVRシナリオにおいて表示され得る。例えば、動作フォーカスはVRシナリオ内のカーソルとして表示され得る。ユーザは、VRシナリオと相互作用するために、ヘッドポスチャ(head posture)またはハンドジェスチャを介してVRシナリオにおいて動作フォーカスの軌跡を制御できる。
【００３２】
VRアプリケーションは、VRデバイス上に設けられたセンサまたはVRデバイスに通信可能に結合されたセンサを使用して、ユーザの頭または手の動きを追跡できる。VRデバイスは、VRセンサによって感知されたユーザの手または頭の動きに対応するデータを収集および処理することができる。センサは、ジャイロスコープ、加速度計、重力センサ、または磁力計を含むことができる。
【００３３】
ユーザの頭または手の動きデータを収集した後、VRアプリケーションは、そのデータを使用して、手または頭の動きに対応するVRシナリオに表示された動作フォーカスの軌跡を制御することができる。例えば、VRデバイスは、収集した動きデータに基づいて、VRシナリオのXY基準フレームに対してユーザの頭または手のオフセットを計算し、計算したオフセットに基づいて動作フォーカスを移すことができる。
【００３４】
VRデバイスはまた、XY基準フレームにおいて動作フォーカスの座標を記録し、記録された座標に基づいて動作フォーカスの軌跡を生成できる。VRシナリオにおいて動作フォーカスの軌跡を生成した後、VRアプリケーションは、軌跡が仮想要素のEIRを通過したかどうかを検出できる。軌跡がEIRを通過する場合、VRデバイスは、選択イベントをトリガして、仮想要素を選択できる。軌跡がEIRの境界と少なくとも2回交差するとき、軌跡が仮想要素のEIRを通過するとする。方法100は、130に続いて140に進む。
【００３５】
140において、動作フォーカスの軌跡とEIRの間の相互作用が、仮想ボタンの選択イベントをトリガするための1つまたは条件を満たす場合、仮想要素が選択される。選択イベントをトリガするための様々な実施形態が、図2から図8についての説明において説明される。方法100は、140において終了する。
【００３６】
図2は、本願の実施形態による、仮想ボタンのEIRを通過することによって、仮想ボタンの選択イベントをトリガする軌跡の例200を示す概略図である。この例では、仮想ボタン210は、長方形の形とする。EIR220は、仮想ボタン210のエリアの内部の上側境界線240および下側境界線250を有する長方形のエリアである。動作フォーカスの軌跡230は、選択イベントをトリガできる上側境界線240および下側境界線250の両方と交差する。
【００３７】
いくつかの実施形態では、仮想ボタン210によって覆われたエリアの一部としてEIR220を選択することは、選択動作が意図せずにトリガされる可能性を減らすことができる。いくつかの実施形態では、動作フォーカスの軌跡が仮想ボタンの意図しない選択をさらに減らすように、EIR220の境界と2回より多く交差するときに、選択イベントがトリガされ得る。
【００３８】
図3は、本願の実施形態による、仮想要素の選択イベントをトリガする例300を示す概略図である。この例300では、仮想要素は、VRシナリオにおける、仮想キー「A」360a、「B」360b、「C」360c、および「D」360dである。EIRは、上側境界340の点線および下側境界350の点線の間の領域である。仮想キー「A」360aの選択を例として使用すると、動作フォーカスの軌跡330は、仮想キーを選択するために「V」型のヘッドポスチャ310またはハンドジェスチャ320の動きを使用することによって制御され得る。より具体的には、ユーザは、上側境界340の上方から開始し、上側境界340と下側境界350の両方を横切って下方に行き、上側境界340の上方に行くように、動作フォーカスの軌跡330を制御する。その結果、動作フォーカスの軌跡330は、EIRと4回交差する。
【００３９】
別の例として、VRデバイスのユーザは、仮想要素の選択方法を使用して、オンラインショッピングを実行できる。図4を参照すると、図4は、本開示の実施形態による、VRアプリケーションを使用してオンラインショッピングを実行するための仮想要素を選択する例400を示す概略図である。この例400では、VRデバイスはVRヘッドセットである。アイテムの購入または支払いのための仮想ボタン420が、オンラインショッピングのVRシナリオのユーザのビュー430に示される。VRヘッドセットを装着したユーザ410は、「V」型の頭の動きを行って、仮想ボタン420のエリアの内部の上側境界440と下側境界450の間のEIRを横切って動作フォーカスを移動させ、アイテムの購入または支払いの選択をトリガできる。
【００４０】
図5は、オンラインショッピングVRシナリオにおける入力を実行するために仮想キーを選択する例500を示す概略図である。同様に、仮想キーボードを介してパスワードまたは支払いを入力するために、VRヘッドセットを装着したユーザは、「V」型の頭の動きを行って、仮想キー520のEIRを横切って動作フォーカスを移動させ、仮想キー520の選択をトリガできる。
【００４１】
図6は、本開示の実施形態による、仮想要素の選択イベントをトリガする別の例600を示す概略図である。この例では、仮想要素は、再び、VRシナリオにおける仮想キー「A」660a、「B」660b、「C」660c、および「D」660dである。EIRは、上側境界640の点線および下側境界650の点線の間の領域である。仮想キー「A」660aの選択を再び例として使用すると、ユーザは、上側境界640の上方から開始し、上側境界640と下側境界650の両方を横切って下方に移動し、上側境界640の上方に移動し、再び下側境界650の下方に下移動するように、動作フォーカスの軌跡630を制御できる。仮想キー「A」660aの選択イベントは、動作フォーカスの軌跡630が上側境界640と下側境界650と5回交差するときトリガされ得る。
【００４２】
図7は、本開示の実施形態による、仮想要素の選択イベントをトリガするさらに別の例700を示す概略図である。この例では、仮想要素は、再び、VRシナリオにおける仮想キー「A」760a、「B」760b、「C」760c、および「D」760dである。仮想キー「A」760aの選択を再び例として使用すると、EIR740は、仮想キー「A」760aのエリアの内部の円である。ユーザは、動作フォーカスの軌跡を制御して、EIR740の内部で囲い730（例えば、円）を形成して、仮想キー「A」760aを選択する選択イベントをトリガする。
【００４３】
いくつかの実施形態では、囲い730によって覆われたエリアがEIRのエリアの所定の割合よりも大きい場合、選択イベントがトリガされ得る。囲い730のエリアと割合の算出は、バックグラウンドでVRデバイスによって実行され得る。いくつかの実施形態では、VRデバイスは、ヘッドポスチャ710またはハンドジェスチャ720を使用して、任意の形の囲いを形成するように動作フォーカスの軌跡を制御できる。囲いのエリアがEIRのエリアの所定の割合を越えている限り、選択イベントはトリガされ得る。
【００４４】
代替または追加で、動作フォーカスの軌跡が仮想要素のエリアの内部に囲いを形成するか、または囲いが仮想要素のエリアの所定の割合を超える場合、選択イベントはトリガされ得る。図8を参照すると、図8は、本開示の実施形態による、仮想要素の選択イベントをトリガするさらに別の例800を示す概略図である。この例800では、VRデバイスのユーザは、仮想ボタンのエリアの内部に囲い810を形成するように動作フォーカスを制御することによって、仮想要素820を選択するための選択イベントをトリガできる。いくつかの実施形態では、囲い810によって覆われたエリアが仮想要素820のエリアの所定の割合より大きい場合、選択イベントはトリガされ得る。
【００４５】
いくつかの実施形態では、仮想要素の意図的ではない選択の可能性をさらに下げるために、選択イベントが所定のタイムリミット以内に実行されるときに、仮想要素が選択され得る。言い換えると、動作フォーカスがEIRに入る時間から、選択イベントの完了までの時間が所定のタイムリミット以内であるときのみ、選択イベントはトリガされ得る。例えば、図3の説明で議論したように例300では、「V」型のヘッドポスチャ310またはハンドジェスチャ320は、仮想要素の選択イベントをトリガするために、所定の期間（例えば1秒間）以内に3回上側境界340および下側境界350を横切るように動作フォーカスを動かさなければならない。
【００４６】
VRアプリケーションは、選択イベントがトリガされるかどうかを判定するために、バックグラウンドでタイマを有効にできる。タイマは、動作フォーカスがEIRに入るときに開始し、動作フォーカスの軌跡が選択イベントの条件を満たす時に終了する。期間は、選択イベントをトリガするための所定のタイムリミット以下である場合、選択イベントはトリガされて、対応する仮想要素が選択され得る。そうでない場合、選択イベントはトリガされることができない。
【００４７】
図9は、本開示の実施形態による、説明されたアルゴリズム、方法、機能、プロセス、フロー、およびプロシージャに関連付けられたコンピュータ機能を提供するために使用されるコンピュータ実施システム900の例を示すブロック図である。
【００４８】
図示されたコンピュータ902は、コンピューティングデバイスの物理的インスタンスまたは仮想インスタンス、またはコンピューティングデバイスの物理インスタンスまたは仮想インスタンスの組み合わせを含むサーバ、デスクトップコンピュータ、ラップトップ/ノートブックコンピュータ、ワイヤレスデータポート、スマートフォン、携帯情報端末(PDA)、タブレットコンピューティングデバイス、これらのデバイス内の一つまたは複数のプロセッサ、別のコンピューティングデバイス、あるいはコンピューティングデバイスの組み合わせなどの、任意のコンピューティングデバイスを包含することを意図している。加えて、コンピュータ902は、キーパッド、キーボード、タッチスクリーン、別の入力デバイス、またはユーザ情報を受け入れることのできる入力デバイスの組み合わせなどの、入力デバイスと、デジタルデータ、視覚情報、聴覚情報、別のタイプの情報、あるいはいくつかのタイプの情報の組み合わせを含む、コンピュータ902の動作に関連付けられた情報をグラフィカルタイプユーザインターフェース(UI)(またはGUI)または他のUIに伝達する出力デバイスとを含むコンピュータことができる。
【００４９】
コンピュータ902は、クライアント、ネットワークコンポーネント、サーバ、データベース、または別の永続的機能、別の役割、または本開示に説明された主題を実行するための役割の組み合わせとして、コンピューティングシステムにおいて役割を機能できる。図示されたコンピュータ902は、ネットワーク930に通信可能に結合される。いくつかの実施形態では、コンピュータ902の一つまたは複数の構成要素が、クラウドコンピューティングベースの環境、ローカル環境、グローバル環境、別の環境、または環境の組み合わせを含む、環境の中で動作するように構成され得る。
【００５０】
高いレベルでは、コンピュータ902は、説明された主題に関連付けられたデータおよび情報を、受信、送信、処理、記憶、または管理するように動作可能な電子コンピューティングデバイスである。いくつかの実施形態によれば、コンピュータ902はまた、アプリケーションサーバ、電子メールサーバ、Webサーバ、キャッシュサーバ、データストリーミングサーバ、別のサーバ、またはサーバの組み合わせを含むサーバを含むことができ、あるいはサーバに通信可能に結合され得る。
【００５１】
コンピュータ902は、ネットワーク930を介して(例えば、別のコンピュータ902上で実行されているクライアントソフトウェアアプリケーションから)要求を受信することができ、ソフトウェアアプリケーションまたはソフトウェアアプリケーションの組み合わせを使用して受信した要求を処理することによって受信した要求に応答できる。加えて、要求はまた、内部ユーザ(例えば、コマンドコンソールから、または別の内部アクセス方法によって)、外部またはサードパーティ、あるいは他のエンティティ、個人、システム、またはコンピュータから、コンピュータ902に送られ得る。
【００５２】
コンピュータ902の各構成要素は、システムバス903を使用して通信できる。いくつかの実施形態では、ハードウェア、ソフトウェア、またはハードウェアとソフトウェアの組み合わせを含むコンピュータ902の構成要素のいくつかまたはすべては、アプリケーションプログラミングインターフェース(API)912、サービスレイヤ913、またはAPI912とサービスレイヤ913の組み合わせを使用して、システムバス903を介して相互作用できる。API912は、ルーチン、データ構造、およびオブジェクトクラスのための仕様を含むことができる。API912は、コンピュータ言語に依存しないものでも依存するものでもよく、完全なインターフェース、単一の機能、またはAPIのセットさえも指すものであってよい。サービスレイヤ913は、コンピュータ902またはコンピュータ902に通信可能に結合される他の構成要素(図示されているかどうかにかかわらず)に、ソフトウェアサービスを提供する。コンピュータ902の機能は、このサービスレイヤを使用するすべてのサービス消費者にとってアクセス可能であり得る。サービスレイヤ913によって提供されるものなどのソフトウェアサービスは、規定のインターフェースを通じて、再使用可能な、定義された機能を提供する。例えば、インターフェースは、JAVA(登録商標)、C++、別のコンピューティング言語、または拡張マークアップ言語(XML)フォーマット、別のフォーマット、またはフォーマットの組み合わせでデータを提供するいくつかのコンピューティング言語の組み合わせで書かれたソフトウェアであり得る。コンピュータ902の統合された構成要素として示されているが、代替の実施形態では、API912またはサービスレイヤ913は、コンピュータ902の他の構成要素またはコンピュータ902に通信可能に結合される他の構成要素(図示されているかどうかにかかわらず)に対してスタンドアロン構成要素として示されてよい。さらに、API912またはサービスレイヤ913の一部または全部は、本開示の範囲から逸脱することなく、別のソフトウェアモジュール、企業アプリケーション、またはハードウェアモジュールの子モジュールまたはサブモジュールとして実装され得る。
【００５３】
コンピュータ902は、インターフェース904を含む。図9に単一のインターフェース904として示されているが、コンピュータ902の特定のニーズ、要望、または特定の実装に従って、2つ以上のインターフェース904が使用され得る。インターフェース904は、分散環境におけるネットワーク930に通信可能にリンクされている別のコンピューティングシステム(図示されているかどうかにかかわらず)と通信するためにコンピュータ902によって使用される。一般に、インターフェース904は、ネットワーク930と通信するように動作可能であり、ソフトウェア、ハードウェア、またはソフトウェアとハードウェアの組み合わせで符号化されたロジックを含む。より具体的には、インターフェース904は、ネットワーク930またはインターフェースのハードウェアが図示されたコンピュータ902の内外で物理的信号を通信するように動作可能であるように、通信に関連付けられた1つまたは複数の通信プロトコルをサポートするソフトウェアを含み得る。
【００５４】
コンピュータ902は、プロセッサ905を含む。図9に単一のプロセッサ905として示されているが、特定のニーズ、要望、またはコンピュータ902の特定の実装に従って、2つ以上のプロセッサが使用され得る。一般に、プロセッサ905は命令を実行し、データを操作するとともに、コンピュータ902の動作、および本開示に説明されているような任意のアルゴリズム、方法、機能、プロセス、フロー、およびプロシージャを実行する。
【００５５】
コンピュータ902はまた、コンピュータ902、ネットワーク930に通信可能にリンクされた別の構成要素(図示されているかどうかにかかわらず)、またはコンピュータ902と別の構成要素との組み合わせのために、データを保持できるデータベース906を含む。例えば、データベース906は、本開示に矛盾しないデータを記憶するインメモリの、従来の、または別のタイプのデータベースであってよい。いくつかの実装形態では、データベース906は、特定のニーズ、要望、またはコンピュータ902の特定の実装、および説明された機能に従って、2つ以上の異なるデータベースのタイプ(例えば、ハイブリッドインメモリデータベースおよび従来のデータベース)の組み合わせであり得る。図9に単一のデータベース906として示されているが、特定のニーズ、要望、またはコンピュータ902の特定の実装、および説明された機能に従って、類似するタイプまたは異なるタイプの2つ以上のデータベースが使用され得る。データベース906はコンピュータ902の統合された構成要素として示されているが、代替の実施形態では、データベース906はコンピュータ902の外部にあってよい。
【００５６】
コンピュータ902はまた、コンピュータ902、ネットワーク930に通信可能にリンクされた別の構成要素(図示されているかどうかにかかわらず)、またはコンピュータ902と別の構成要素との組み合わせのために、データを保持できるメモリ907を含む。メモリ907は、本開示に矛盾しない任意のデータを記憶できる。いくつかの実装形態では、メモリ907は、特定のニーズ、要望、またはコンピュータ902の特定の実装、および説明された機能に従って、2つ以上の異なるタイプのメモリの組合せ(例えば、半導体ストレージと磁気ストレージの組合せ)であり得る。図9に単一のメモリ907として示されているが、特定のニーズ、要望、またはコンピュータ902の特定の実装、および説明された機能に従って、2つ以上のメモリ907あるいは類似または異なるタイプが使用され得る。メモリ907はコンピュータ902の統合された構成要素として示されているが、代替の実装形態では、メモリ907はコンピュータ902の外部にあってよい。
【００５７】
アプリケーション908は、特に本開示で説明されている機能に関して、特定のニーズ、要望、またはコンピュータ902の特定の実装に従って、機能を提供するアルゴリズムソフトウェアエンジンである。例えば、アプリケーション908は、1つまたは複数の構成要素、モジュール、またはアプリケーションとして機能することができる。さらに、単一のアプリケーション908として図示されているが、アプリケーション908は、コンピュータ902上で複数のアプリケーション908として実装できる。加えて、コンピュータ902に統合されるように図示されているが、代替の実装において、アプリケーション908はコンピュータ902の外部にあってよい。
【００５８】
コンピュータ902はまた、電源914を含むことができる。電源914は、ユーザ交換可能にあるいはユーザが交換できないように構成され得る充電式または非充電式のバッテリを含むことができる。いくつかの実施形態では、電源914は、電力変換または管理回路(再充電、スタンバイ、または別の電力管理機能を含む)を含むことができる。いくつかの実装形態では、電源914は、例えばコンピュータ902に電力を供給するため、または充電式バッテリを充電するために、コンピュータ902を壁のコンセントまたは別の電力源に差し込むことを可能にするための電源プラグを含むことができる。
【００５９】
コンピュータ902を含むコンピュータシステムに付随して、またはコンピュータシステムの外部に、任意の数のコンピュータ902が存在することができ、各コンピュータ902はネットワーク930を介して通信する。さらに、「クライアント」、「ユーザ」という用語、または他の適切な用語は、本開示の範囲から逸脱することなく、必要に応じて交換可能に使用され得る。さらに、本開示は、多数のユーザが1つのコンピュータ902を使用できること、または1人のユーザが複数のコンピュータ902を使用できることを意図する。
【００６０】
主題の詳細な実施形態は、単独でまたは組み合わせて、1つまたは複数の特徴を含むことができる。
【００６１】
例えば、第1の実施形態では、コンピュータ実施方法は、VRデバイスによって、VRアプリケーションのVRシナリオに仮想要素を提示するステップと、仮想要素が有効に相互作用できる仮想要素の有効インタラクション領域（EIR）を決定するステップと、VRデバイスによって感知された動きに基づいて、VRアプリケーションの動作フォーカスの軌跡を決定するステップと、動作フォーカスの軌跡とEIRとの間の相互作用が仮想ボタンの選択イベントをトリガするための1つまたは複数の条件を満たす場合に、仮想要素を選択するステップとを含む。
【００６２】
前述のおよび他の説明された実装形態はそれぞれ、随意に以下の特徴のうちの1つまたは複数を含むことができる。
【００６３】
第1の特徴は、後述の特徴のいずれかと組み合わせることができ、EIRが仮想要素のエリアの少なくとも一部と重なる。
【００６４】
第2の特徴は、前述または後述の特徴のいずれかと組み合わせることができ、VRデバイスによって感知された動きが、頭の動きまたは手の動きの少なくとも1つを含む。
【００６５】
第3の特徴は、前述または後述の特徴のいずれかと組み合わせることができ、仮想要素が、ユーザ入力を実行するために提示された仮想ボタンまたは仮想キーである。
【００６６】
第4の特徴は、前述または後述の特徴のいずれかと組み合わせることができ、動作フォーカスが、仮想シナリオに提示されたカーソルであるとともに、VRデバイスのユーザの視覚的なフォーカス、頭の位置、または手の位置に基づいて決定される。
【００６７】
第5の特徴は、前述または後述の特徴のいずれかと組み合わせることができ、相互作用の1つまたは複数の条件が、軌跡がEIRの1つまたは複数の境界と少なくとも2回交差することを含む。
【００６８】
第6の特徴は、前述または後述の特徴のいずれかと組み合わせることができ、相互作用の1つまたは複数の条件が、動作フォーカスの軌跡がEIRに囲いを形成することを含む。
【００６９】
第7の特徴は、前述または後述の特徴のいずれかと組み合わせることができ、囲いのエリアが、EIRのエリアの所定の割合より大きい。
【００７０】
第8の特徴は、前述または後述の特徴のいずれかと組み合わせることができ、相互作用の1つまたは複数の条件が、相互作用が所定のタイムリミット以下の期間で実行されることを含む。
【００７１】
第2の実施形態では、動作を実行するためのコンピュータシステムによって実行可能な1つまたは複数の命令を記憶した非一時的コンピュータ可読記憶媒体であり、動作が、VRデバイスによって、VRアプリケーションのVRシナリオに仮想要素を提示するステップと、仮想要素が有効に相互作用できる仮想要素のEIRを決定するステップと、VRデバイスによって感知された動きに基づいて、VRアプリケーションの動作フォーカスの軌跡を決定するステップと、動作フォーカスの軌跡とEIRとの間の相互作用が仮想ボタンの選択イベントをトリガするための1つまたは複数の条件を満たす場合に、仮想要素を選択するステップとを含む。
【００７２】
前述のおよび他の説明された実装形態はそれぞれ、随意に以下の特徴のうちの1つまたは複数を含むことができる。
【００７３】
第1の特徴は、後述の特徴のいずれかと組み合わせることができ、EIRが仮想要素のエリアの少なくとも一部と重なる。
【００７４】
第2の特徴は、前述または後述の特徴のいずれかと組み合わせることができ、VRデバイスによって感知された動きが、頭の動きまたは手の動きの少なくとも1つを含む。
【００７５】
第3の特徴は、前述または後述の特徴のいずれかと組み合わせることができ、仮想要素が、ユーザ入力を実行するために提示された仮想ボタンまたは仮想キーである。
【００７６】
第4の特徴は、前述または後述の特徴のいずれかと組み合わせることができ、動作フォーカスが、仮想シナリオに提示されたカーソルであるとともに、VRデバイスのユーザの視覚的なフォーカス、頭の位置、または手の位置に基づいて決定される。
【００７７】
第5の特徴は、前述または後述の特徴のいずれかと組み合わせることができ、相互作用の1つまたは複数の条件が、軌跡がEIRの1つまたは複数の境界と少なくとも2回交差することを含む。
【００７８】
第6の特徴は、前述または後述の特徴のいずれかと組み合わせることができ、相互作用の1つまたは複数の条件が、動作フォーカスの軌跡がEIRに囲いを形成することを含む。
【００７９】
第7の特徴は、前述または後述の特徴のいずれかと組み合わせることができ、囲いのエリアが、EIRのエリアの所定の割合より大きい。
【００８０】
第8の特徴は、前述または後述の特徴のいずれかと組み合わせることができ、相互作用の1つまたは複数の条件が、相互作用が所定のタイムリミット以下の期間で実行されることを含む。
【００８１】
第3の実施形態では、1つまたは複数のコンピュータと、1つまたは複数のコンピュータに相互運用可能に結合されるとともに、1つまたは複数の命令を記憶した有形の、非一時的機械記憶媒体を有する1つまたは複数のコンピュータメモリデバイスとを具備するコンピュータ実施システムであって、1つまたは複数の命令が、1つまたは複数のコンピュータによって実行されるとき動作を実行し、動作は、VRデバイスによって、VRアプリケーションのVRシナリオに仮想要素を提示するステップと、仮想要素が有効に相互作用できる仮想要素のEIRを決定するステップと、VRデバイスによって感知された動きに基づいて、VRアプリケーションの動作フォーカスの軌跡を決定するステップと、動作フォーカスの軌跡とEIRとの間の相互作用が、仮想ボタンの選択イベントをトリガするための1つまたは複数の条件を満たす場合に仮想要素を選択するステップとを含む。
【００８２】
前述のおよび他の説明された実装形態はそれぞれ、随意に以下の特徴のうちの1つまたは複数を含むことができる。
【００８３】
第1の特徴は、後述の特徴のいずれかと組み合わせることができ、EIRが仮想要素のエリアの少なくとも一部と重なる。
【００８４】
第2の特徴は、前述または後述の特徴のいずれかと組み合わせることができ、VRデバイスによって感知された動きが、頭の動きまたは手の動きの少なくとも1つを含む。
【００８５】
第3の特徴は、前述または後述の特徴のいずれかと組み合わせることができ、仮想要素が、ユーザ入力を実行するために提示された仮想ボタンまたは仮想キーである。
【００８６】
第4の特徴は、前述または後述の特徴のいずれかと組み合わせることができ、動作フォーカスが、仮想シナリオに提示されたカーソルであるとともに、VRデバイスのユーザの視覚的なフォーカス、頭の位置、または手の位置に基づいて決定される。
【００８７】
第5の特徴は、前述または後述の特徴のいずれかと組み合わせることができ、相互作用の1つまたは複数の条件が、軌跡がEIRの1つまたは複数の境界と少なくとも2回交差することを含む。
【００８８】
第6の特徴は、前述または後述の特徴のいずれかと組み合わせることができ、相互作用の1つまたは複数の条件が、動作フォーカスの軌跡がEIRに囲いを形成することを含む。
【００８９】
第7の特徴は、前述または後述の特徴のいずれかと組み合わせることができ、囲いのエリアが、EIRのエリアの所定の割合より大きい。
【００９０】
第8の特徴は、前述または後述の特徴のいずれかと組み合わせることができ、相互作用の1つまたは複数の条件が、相互作用が所定のタイムリミット以下の期間で実行されることを含む。
【００９１】
本明細書に説明された主題の実施形態および機能的動作は、本明細書に開示された構造およびそれらの構造上の均等物を含む、デジタル電子回路、有形の具現化されたコンピュータソフトウェアまたはファームウェア、コンピュータハードウェア、またはそれらの1つまたは複数の組み合わせで実装され得る。説明された主題のソフトウェア実施形態は、1つまたは複数のコンピュータプログラムとして、すなわち、データ処理装置によって実行されるための、あるいはデータ処理装置の動作を制御するための、有形の非一時的コンピュータ可読なコンピュータ記憶媒体上に符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして実装され得る。代替または追加で、プログラム命令は、人工的に生成された伝搬信号、例えば、データ処理装置による実行のために受信装置に送信するための情報を符号化するように生成された、機械生成された電気信号、光信号、または電磁信号の中に/上に符号化され得る。コンピュータ記憶媒体は、機械可読記憶デバイス、機械可読記憶基板、ランダムまたはシリアルアクセスメモリデバイス、またはコンピュータ記憶媒体の組み合わせであってよい。1つまたは複数のコンピュータを構成することは、ソフトウェアが1つまたは複数のコンピュータによって実行されるときに特定の計算動作が実行されるように、1つまたは複数のコンピュータがハードウェア、ファームウェア、またはソフトウェア(またはハードウェア、ファームウェア、およびソフトウェアの組合せ)をインストールしていることを意味する。
【００９２】
「リアルタイム(real-time)」、「リアルタイム(real time)」、「リアルタイム(realtime)」、「リアル(ファスト)タイム(real (fast) time (RFT))」、「ほぼリアルタイム(near(ly) real-time (NRT))」、「準リアルタイム（quasi real-time）」という用語、または(当業者には理解されるような)同様の用語は、アクションおよび応答が実質的に同時に起こることを個人が知覚するように、アクションおよび応答が時間的に近いことを意味する。例えば、データへのアクセスに対する個人のアクションに続いてデータを表示するための応答(または表示の開始)にかかる時間差は、1ミリ秒(ms)未満、1秒(s)未満、または5秒未満であり得る。要求されたデータは瞬時に表示される（または表示を開始される）必要はないが、説明されたコンピューティングシステムの処理限界と、例えばデータを収集、正確に測定、分析、処理、保存、または送信するのに必要な時間とを考慮して、意図的な遅延なしに表示（または表示のために開始）される。
【００９３】
用語「データ処理装置」、「コンピュータ」、または「電子コンピュータデバイス」(または当業者によって理解されるような同等のもの)は、データ処理ハードウェアを指すとともに、例として、プログラム可能なプロセッサ、コンピュータ、または複数のプロセッサもしくはコンピュータを含め、データを処理するためのあらゆる種類の装置、デバイス、および機械を包含する。装置は、例えば、中央処理装置(CPU)、FPGA(フィールドプログラマブルゲートアレイ)、またはASIC(特定用途向け集積回路)などの特殊用途論理回路でもよく、またはさらに特殊用途論理回路を含んでもよい。いくつかの実装形態では、データ処理装置または専用論理回路(またはデータ処理装置または専用論理回路の組み合わせ)は、ハードウェアベースまたはソフトウェアベース(またはハードウェアベースとソフトウェアベースの両方の組み合わせ)とすることができる。装置は、コンピュータプログラムの実行環境を作成するコード、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、または実行環境の組み合わせを構成するコードを任意に含むことができる。本開示は、あるタイプのオペレーティングシステム、例えば、LINUX、UNIX(登録商標)、WINDOWS(登録商標)、MAC OS、ANDROID(登録商標)、IOS、別のオペレーティングシステム、またはオペレーティングシステムの組み合わせによってデータ処理装置を使用することを企図する。
【００９４】
プログラム、ソフトウェア、ソフトウェアアプリケーション、ユニット、モジュール、ソフトウェアモジュール、スクリプト、コード、または他の構成要素などと呼ばれるまたは説明され得るコンピュータプログラムは、プログラム言語の任意の形式で書くことができ、プログラム言語は、コンパイル言語またはインタプリタ言語、あるいは宣言型言語または手続き型言語を含み、コンピュータプログラムは、例えば、コンピューティング環境で使用するためのスタンドアロンプログラム、モジュール、コンポーネント、またはサブルーチンとしてなど、任意の形式で展開され得る。コンピュータプログラムは、必ずしもそうである必要はないが、ファイルシステム内のファイルに対応できる。プログラムは、他のプログラムまたはデータを保持するファイルの一部、例えば、マークアップ言語文書に記憶された1つまたは複数のスクリプトは、対象のプログラム専用の単一ファイル、または複数の協調ファイル、例えば、1つまたは複数のモジュール、サブプログラム、またはコードの一部を保持するファイルなどに記憶できる。コンピュータプログラムは、1つのサイトに配置されているかまたは複数のサイトにわたって分散され、通信ネットワークによって相互接続されている1つのコンピュータまたは複数のコンピュータ上で実行されるように展開され得る。
【００９５】
様々な図に示されたプログラムの部分は、様々なオブジェクト、方法、または他のプロセスを使用して説明された特徴および機能を実装する、ユニットまたはモジュールなどの個々の構成要素として示すことができ、プログラムは代わりに、必要に応じて、サブユニット、サブモジュール、サードパーティのサービス、コンポーネント、ライブラリ、およびその他の構成要素を含むことができる。対照的に、様々な構成要素の特徴および機能を組み合わせて、必要に応じて単一の構成要素にすることができる。コンピュータでの判定を行うために使用されるしきい値は、静的に、動的に、または静的かつ動的に決定できる。
【００９６】
説明された方法、プロセス、または論理フローは、本開示に矛盾しない機能の1つまたは複数の例を表しており、説明されたまたは図示された実装形態に開示内容を限定することを意図しておらず、説明された原理や特徴に矛盾しない最も広い範囲が与えられることを意図していると認められるべきである。説明された方法、プロセス、または論理フローは、入力データに基づき動作して出力データを生成することによって機能を実行するために1つまたは複数のコンピュータプログラムを実行する1つまたは複数のプログラム可能コンピュータによって実行され得る。方法、プロセス、または論理フローは、特殊用途論理回路、例えば、CPU、FPGA、またはASICによって実行することができ、特殊用途論理回路として装置が実装されてよい。
【００９７】
コンピュータプログラムを実行するためのコンピュータは、汎用または特殊用途のマイクロプロセッサ、その両方、または別のタイプのCPUに基づくことができる。一般に、CPUはメモリから命令およびデータを受信し、メモリに書き込む。コンピュータの必須要素は、命令を行うまたは実行するためのCPU、ならびに命令およびデータを記憶するための1つまたは複数のメモリデバイスである。一般に、コンピュータはまた、例えば磁気ディスク、光磁気ディスク、または光ディスクなど、データを記憶するための1つまたは複数の大容量記憶デバイスを含む、または1つまたは複数の大容量記憶デバイスに動作可能に結合され、1つまたは複数の大容量記憶デバイスからデータを受信するか、または1つまたは複数の大容量記憶デバイスにデータを転送するか、またはその両方を行う。しかしながら、コンピュータはそのようなデバイスを有する必要はない。さらに、コンピュータは、別のデバイス、例えば携帯電話、携帯情報端末(PDA)、モバイルオーディオまたはビデオプレーヤ、ゲームコンソール、全地球測位システム(GPS)受信機、またはポータブルメモリストレージデバイスに組み込まれ得る。
【００９８】
コンピュータプログラム命令およびデータを記憶するための非一時的コンピュータ可読媒体は、例として半導体メモリデバイス、磁気デバイス、光磁気ディスクおよび光メモリデバイスを含む、あらゆる形態の永久的/非永久的または揮発性/不揮発性メモリ、媒体、およびメモリデバイスを含むことができ、半導体メモリデバイスは、例えば、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、相変化メモリ(PRAM)、スタティックランダムアクセスメモリ(SRAM)、ダイナミックランダムアクセスメモリ(DRAM)、消去可能プログラマブル読み出し専用メモリ(EPROM)、電気的消去可能プログラマブル読み出し専用メモリ(EEPROM)、およびフラッシュメモリデバイスであり、磁気デバイスは、例えば、テープ、カートリッジ、カセット、内蔵/取り外し可能ディスクであり、光メモリデバイスは、例えば、デジタルビデオディスク(DVD)、CD ROM、DVD+/-R、DVD-RAM、DVD-ROM、HD-DVD、およびBLURAY、ならびに他の光メモリ技術である。メモリは、キャッシュ、クラス、フレームワーク、アプリケーション、モジュール、バックアップデータ、ジョブ、ウェブページ、ウェブページテンプレート、データ構造、データベーステーブル、動的情報を記憶するリポジトリ、または任意のパラメータ、変数、アルゴリズム、命令、規則、制約、または参照を含む他の適切な情報を含む様々なオブジェクトまたはデータを記憶できる。さらに、メモリは、ログ、ポリシー、セキュリティデータまたはアクセスデータ、あるいは報告ファイルなどの他の適切なデータを含むことができる。プロセッサおよびメモリは、特殊用途論理回路によって補完されるか、またはその中に組み込まれることができる。
【００９９】
ユーザとの相互作用を提供にするために、本明細書に記載の主題の実施形態は、ユーザに情報を表示するための、例えば、CRT(陰極線管)、LCD(液晶ディスプレイ)、LED(発光ダイオード)、またはプラズマモニタなどの表示デバイスと、ユーザがそれによってコンピュータに入力を提供できるマウス、トラックボール、またはトラックパッドなどのキーボードおよびポインティングデバイスとを具備するコンピュータ上に実装され得る。圧力感知のタブレットコンピュータ表面、静電容量式または電気式感知を使用したマルチタッチスクリーン、または別のタイプのタッチスクリーンなどのタッチスクリーンを使用してコンピュータに入力を提供してもよい。他の種類のデバイスがユーザと相互作用するために使用され得る。例えば、ユーザに提供されるフィードバックは、任意の形式の感覚フィードバック(視覚的フィードバック、聴覚的フィードバック、触覚的フィードバック、またはいくつかのフィードバックタイプの組み合わせなど)であり得る。ユーザからの入力は、音響入力、音声入力、または触覚入力を含む任意の形式で受け取ることができる。さらに、コンピュータは、ユーザによって使用されるクライアントコンピューティングデバイスとドキュメントを送受信することによって(例えば、ウェブブラウザから受信した要求に応答してユーザのモバイルコンピューティングデバイス上のウェブブラウザにウェブページを送信することによって)、ユーザと相互作用できる。
【０１００】
「グラフィカルユーザインターフェース」または「GUI」という用語は、単数形または複数形で使用され、1つまたは複数のグラフィカルユーザインターフェースおよび特定のグラフィカルユーザインターフェースの各ディスプレイを記述する。従って、GUIは、限定ではないが、情報を処理するとともに情報結果を効率的にユーザに提示するウェブブラウザ、タッチスクリーン、またはコマンドラインインターフェース(CLI)を含む任意のグラフィカルユーザインターフェースを表すことができる。一般に、GUIは、インタラクティブフィールド、プルダウンリスト、およびボタンなど、ウェブブラウザのいくつかまたはすべてに関連付けられた複数のユーザインターフェース(UI)要素を含むことができる。これらのUI要素および他のUI要素は、ウェブブラウザの機能に関連するかまたはそれを表すことができる。
【０１０１】
本明細書に記載の主題の実施形態は、例えばデータサーバとしてのバックエンド構成要素を含む、または例えばアプリケーションサーバなどのミドルウェア構成要素を含む、または例えばグラフィカルユーザインターフェースを有するクライアントコンピュータ、またはユーザがそれを介して本明細書に記載の主題の実施形態と相互作用できるウェブブラウザなどのフロントエンド構成要素を含む、またはそのようなバックエンド構成要素、ミドルウェア構成要素、またはフロントエンド構成要素の1つまたは複数の組み合わせを含むコンピューティングシステムで実装され得る。システムの構成要素は、例えば通信ネットワークなどの有線または無線デジタルデータ通信(またはデータ通信の組み合わせ)の任意の形態または媒体によって相互接続され得る。通信ネットワークの例は、ローカルエリアネットワーク(LAN)、無線アクセスネットワーク(RAN)、メトロポリタンエリアネットワーク(MAN)、ワイドエリアネットワーク(WAN)、WIMAX(Worldwide Interoperability for Microwave Access)、例えば、802．11a/b/g/nまたは802．20(または802.11xと802.20の組み合わせ、または本開示に矛盾しない他のプロトコル)を使用する無線ローカルエリアネットワーク(WLAN)、インターネットの全部または一部、別の通信ネットワーク、または通信ネットワークの組み合わせを含む。通信ネットワークは、例えば、インターネットプロトコル(IP)パケット、フレームリレーフレーム、非同期転送モード(ATM)セル、音声、ビデオ、データ、またはネットワークノード間の他の情報と通信できる。
【０１０２】
コンピューティングシステムは、クライアントおよびサーバを含むことができる。クライアントとサーバは一般に互いに離れており、通常は通信ネットワークを介して相互作用する。クライアントとサーバの関係は、それぞれのコンピュータ上で実行され、互いにクライアント-サーバ関係を有するコンピュータプログラムによって生じる。
【０１０３】
本明細書は多くの具体的な実施形態の詳細を含むが、これらはいかなる発明の範囲または特許請求され得るものの範囲に対する限定として解釈されるべきではなく、むしろ特定の発明の特定の実施形態に特有であり得る特徴の説明として解釈されるべきである。別々の実施形態の文脈で本明細書に説明されているいくつかの特徴は、組み合わせて、単一の実施形態で実装されてよい。対照的に、単一の実施形態の文脈で説明されている様々な特徴は、複数の実施形態で別々に、または任意のサブコンビネーションで実装されてよい。さらに、前述の特徴は特定の組み合わせで作用するものとして説明され、最初はそのように請求することさえされ得るが、場合によっては、請求する組み合わせからの1つまたは複数の特徴をその組み合わせから切り取ることができ、請求する組み合わせは、サブコンビネーションまたはサブコンビネーションの変形に向けられてよい。
【０１０４】
主題の特定の実施形態が説明された。説明された実施形態の他の実施形態、変形、および置換は、添付の特許請求の範囲の範囲内であり、このことは、当業者には明らかであろう。動作は図面または特許請求の範囲に特定の順序で描かれているが、これは、望ましい結果を達成するために、そのような動作が示された特定の順序またはシーケンシャルな順序に実行されること、または図示されたすべての動作（いくつかの動作は任意とされ得る）が実行されることを必要とすると理解されるべきではない。特定の状況では、マルチタスク処理または並列処理(またはマルチタスク処理と並列処理の組み合わせ)が有利であり、必要に応じて実行され得る。
【０１０５】
さらに、前述の実装形態における様々なシステムモジュールおよび構成要素の分離または統合は、すべての実装形態においてそのような分離または統合を必要とすると理解されるべきではなく、説明されるプログラムコンポーネントおよびシステムは、概して単一のソフトウェア製品に統合され得る、または複数のソフトウェア製品にパッケージ化され得ると理解すべきである。
【０１０６】
従って、前述の例示的な実装形態は、本開示を定義または制限するものではない。本開示の精神および範囲から逸脱することなく、他の変更、置換、および変形もまた可能である。
【０１０７】
さらに、特許請求の範囲に記載された実施形態は、少なくともコンピュータ実施方法、コンピュータ実施方法を実行するためのコンピュータ可読命令を記憶する非一時的コンピュータ可読媒体、およびコンピュータ実施方法または非一時的コンピュータ可読媒体に記憶された命令を実行するように構成されたハードウェアプロセッサと相互運用可能に結合されたコンピュータメモリを備えるコンピュータシステムに適用可能であると考えられる。
【符号の説明】
【０１０８】
210  仮想ボタン
220  有効インタラクション領域
230  動作フォーカスの軌跡
330  動作フォーカスの軌跡
420  支払い/購入
430  ユーザビュー
500  ユーザビュー
904  インターフェース
905  プロセッサ
906  データベース
907  メモリ
908  アプリケーション
909  コンピュータ
913  サービスレイヤ
914  電源
930  ネットワーク
【図１】
0006980012.tif 000002
【図２】
0006980012.tif 000003
【図３】
0006980012.tif 000004
【図４】
0006980012.tif 000005
【図５】
0006980012.tif 000006
【図６】
0006980012.tif 000007
【図７】
0006980012.tif 000008
【図８】
0006980012.tif 000009
【図９】
0006980012.tif 000010