(57)【特許請求の範囲】
【請求項１】
ユーザの指の接触を検出するように構成されるタッチセンサを含むタッチセンサ式ディスプレイを有するコンピュータ装置での使用のための入力方法であって、
前記タッチセンサ式ディスプレイ上で最初に指を下ろす位置を、前記タッチセンサを介して検出するステップと、
前記最初に指を下ろす位置において仮想コントローラのニュートラルポジションを確立するステップと、
前記仮想コントローラから離れた位置にある補助コントロールゾーンを確立するステップと、
前記最初に指を下ろす位置に対する後続の指の動きを検出するステップと、
前記最初に指を下ろす位置に対する後続の指の動きに基づいてコントローラ入力パラメータを判定するステップと、
前記判定されたコントローラ入力パラメータを示すコントローラ入力メッセージを生成するステップと、
指を上げるイベントを検出するステップと、
前記補助コントロールゾーン内における次に指を下ろす位置を検出するステップと、
前記補助コントロールゾーン内における次に指を下ろす位置を検出すると、前記ニュートラルポジションの再配置を抑制するステップと、
前記補助コントロールゾーン内における前記次に指を下ろす位置に基づいて補助コントロール入力パラメータを判定するステップと、
を備える、方法。
【請求項２】
前記生成されるコントローラ入力メッセージが、前記補助コントロール入力パラメータのインジケーションを含み、かつ、前記補助コントロールゾーンが仮想ボタン又は方向パッドとして構成される、請求項１に記載の方法。
【請求項３】
指を上げる第２のイベントを検出するステップと、
前記補助コントロールゾーン以外で次に指を下ろす第２の位置を検出するステップと、
前記補助コントロールゾーン以外で次に指を下ろす第２の位置において前記仮想コントローラの前記ニュートラルポジションを再配置するステップと、
前記指を下ろす位置及び／又は前記次に指を下ろす位置が、前記タッチセンサ式ディスプレイの境界の近傍の領域で発生して、前記仮想コントローラの作動可能なエリアが前記境界で妨害される可能性がある場合に、最も近い許容仮想コントローラ位置を判定するステップと
を更に備え、前記指を上げるイベントは、所定の閾値期間、指と前記タッチセンサ式ディスプレイの接触がないことである、請求項１に記載の方法。
【請求項４】
前記コントローラ入力パラメータを判定するステップが、前記最初に指を下ろす位置に対する前記後続の指の動きの方向、速度及び／又は相対的な大きさを判定するステップを含み、
前記最初に指を下ろす位置を検出するステップ、前記ニュートラルポジションを確立するステップ、前記後続の指の動きを検出するステップ、前記コントローラ入力パラメータを判定するステップ及び前記コントローラ入力メッセージを生成するステップが、前記コンピュータ装置上で実行されるアプリケーションプログラミングインターフェースにより行われ、当該方法は、
前記アプリケーションプログラミングインターフェースからの前記コントローラ入力メッセージを、前記コンピュータ装置上で実行されるプログラムに出力するステップを更に備える、請求項１に記載の方法。
【請求項５】
前記後続の指の動きの間に前記タッチセンサ式ディスプレイに対する前記指の圧力を検出するステップを更に備え、
前記コントローラ入力メッセージを生成するステップが、前記検出された圧力のインジケーションを含み、
前記圧力を検出するステップが、前記指に関連する接触のエリア内における経時的な変化から圧力を判定するステップ及び／又は前記タッチセンサ式ディスプレイに結合される圧力センサから圧力を検出するステップを含む、請求項１に記載の方法。
【請求項６】
ユーザの指の接触を検出するように構成されるタッチセンサを含むタッチセンサ式ディスプレイと、
コンピュータ装置のプロセッサにより実行される仮想コントローラ入力モジュールと
を備えるコンピュータ装置であって、
前記仮想コントローラ入力モジュールが、
前記タッチセンサ式ディスプレイ上で最初に指を下ろす位置を、前記タッチセンサを介して検出し、
前記最初に指を下ろす位置において仮想コントローラのニュートラルポジションを確立し、
前記仮想コントローラから離れた位置にある補助コントロールゾーンを確立し、
前記最初に指を下ろす位置に対する後続の指の動きを検出し、
前記最初に指を下ろす位置に対する前記後続の指の動きに基づいてコントローラ入力パラメータを判定し、
前記判定されたコントローラ入力パラメータを示すコントローラ入力メッセージを生成し、
指を上げるイベントを検出し、
前記補助コントロールゾーン内における次に指を下ろす位置を検出し、
前記補助コントロールゾーン内における次に指を下ろす位置を検出すると、前記ニュートラルポジションの再配置を抑制し、
前記補助コントロールゾーン内における前記次に指を下ろす位置に基づいて補助コントロール入力パラメータを判定する、
ように構成される、コンピュータ装置。
【請求項７】
前記仮想コントローラ入力モジュールが、
指を上げる第２のイベントを検出し、
前記補助コントロールゾーン以外で次に指を下ろす第２の位置を検出し、
前記補助コントロールゾーン以外で次に指を下ろす第２の位置において前記仮想コントローラの前記ニュートラルポジションを再配置する
ように構成され、
前記指は親指であり、前記仮想コントローラは仮想ジョイスティックコントローラであり、
前記仮想コントローラ入力モジュールが、前記ニュートラルポジションに固定されるコントロールアイコンを表示するように構成され、該コントロールアイコンが、コントロールの位置決めをするユーザに視覚的インジケーションを提供する、請求項６に記載のコンピュータ装置。
【請求項８】
前記コントローラ入力メッセージが、前記後続の指の動きの間に前記タッチセンサ式ディスプレイに対する前記指の圧力のインジケーションを含み、前記圧力が、前記タッチセンサ式ディスプレイに結合される圧力センサから受信される信号に基づいて又は前記指に関連する接触のエリア内における経時的な変化に基づいて検出される、請求項６に記載のコンピュータ装置。
【請求項９】
前記補助コントロールゾーンが仮想ボタン又は方向パッドとして構成され、前記仮想コントローラ入力モジュールが、前記タッチセンサ式ディスプレイ上で補助コントロールゾーン内に補助コントロールアイコンを表示するように構成されて、前記補助コントロールゾーンの位置のインジケーションを提供する、請求項６に記載のコンピュータ装置。
【請求項１０】
ユーザの指の接触を検出するように構成されるタッチセンサを含むタッチセンサ式ディスプレイを有するコンピュータ装置での使用のための入力方法であって、
前記タッチセンサ式ディスプレイ上で検出される最初に指を下ろす位置において、仮想コントローラのニュートラルポジションを確立するステップと、
前記仮想コントローラから離れた位置にある補助コントロールゾーンを確立するステップと、
前記ニュートラルポジションを確立した後に第１の指を上げるイベントを検出するステップと、
前記補助コントロールゾーン内における次に指を下ろす位置を検出するステップと、
前記補助コントロールゾーン内における次に指を下ろす位置を検出すると、前記ニュートラルポジションの再配置を抑制するステップと、
前記補助コントロールゾーン内における前記次に指を下ろす位置に基づいて補助コントロール入力パラメータを判定するステップと、
第２の指を上げるイベントを検出するステップと、
前記補助コントロールゾーン以外で次に指を下ろす第２の位置と、前記ニューラルポジションにおける前記最初に指を下ろす位置との間にクリープが確立されたことを検出するステップと、
前記クリープを検出すると、前記補助コントロールゾーン以外で前記次に指を下ろす第２の位置において前記仮想コントローラの前記ニュートラルポジションを再配置するステップと、
を備える、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、タッチディスプレイ用仮想コントローラに関する。
【背景技術】
【０００２】
携帯用ゲーム装置は、世界中の多くのユーザによって楽しまれている。そのようなゲーム装置の１つのタイプには、ユーザに触覚フィードバックを与えてコントロールに関する正しい指の位置決めを補強する双方のハードボタンコントロールと、例えば、スタイラスペンを使用してユーザがゲームで対話することを可能にするタッチスクリーンとが含まれる。そのような装置の１つの欠点は、ハードボタンが装置内の貴重なスペースを占有し、ディスプレイの大きさが制限され、筺体の大きさが増大してしまうことである。ハードボタンの大きさを縮小することは難しい。なぜなら、小さなボタンでは、特にペースの速いゲームプレー中は、ユーザが作動させるのが困難であるからである。さらに、多機能タブレットコンピュータ装置または携帯電話としても機能するゲーム装置の文脈では、装置の前面にあるゲームプレー用に特に充てられる専用ボタンは、ゲームをしない消費者にとっては装置の有用性または外観を損ねるものとなり得る。
【発明の概要】
【０００３】
ユーザの指の接触を検出するように構成されるタッチセンサを含むタッチセンサ式ディスプレイを有するコンピュータ装置での使用のためのシステムおよび方法が提供される。当該方法は、ディスプレイ上に最初に指を下ろす位置を、タッチセンサを介して検出するステップと、指を下ろす位置において仮想コントローラのニュートラルポジションを確立するステップとを含む。当該方法は、最初に指を下ろす位置に対する後続の指の動きを検出するステップと、最初に指を下ろす位置に対する後続の指の動きに基づくコントローラ入力パラメータを判定するステップとをさらに含むことができる。当該方法は、判定されたコントローラ入力パラメータを示すコントローラ入力メッセージを生成するステップをさらに含むことができる。
【０００４】
この「発明の概要」は、以下の「発明を実施するための形態」でさらに述べる概念を簡略化した形式で紹介するために提供される。この「発明の概要」は、請求の主題の重要な特徴または主要な特徴を確認することを意図しておらず、請求される主題の範囲を制限するために使用されることも意図していない。さらに、請求される主題は、本開示の任意の部分に示される、任意または全ての不利を解決する実装に制限されない。
【図面の簡単な説明】
【０００５】
【図１】タッチディスプレイ用仮想コントローラを示す一実施形態のコンピュータ装置の斜視図である。
【図２】図１のコンピュータ装置の概略図である。
【図３】図１の仮想コントローラについて相対的な動きを例示する、ニュートラルポジションの図式的図である。
【図４】図１の仮想コントローラについてのニュートラルポジションの再配置の図式的図である。
【図５】図１のコントロールアイコンを作動させるサムアップイベントの図式的図である。
【図６】タッチセンサ式ディスプレイ用の仮想コントローラを出力するように構成されるコンピュータ装置のための方法を例示するフロー図である。
【発明を実施するための形態】
【０００６】
図１は、タッチセンサ式ディスプレイ用の仮想コントローラ１４を示すコンピュータ装置１０の一実施形態の斜視図である。コンピュータ装置１０は、例えば、携帯電話、タブレットコンピュータ、または他のハンドヘルドコンピュータ装置として構成されうる。コンピュータ装置１０は、図２に関して詳述される、ユーザの指の複数の接触を検出するように構成されるタッチセンサを含むマルチタッチディスプレイ１２などのタッチセンサ式ディスプレイを備えることができる。さらに、コンピュータ装置１０は、複数の接触を介してユーザからの入力を受信するように構成され、および仮想コントローラ１４を制御するための入力方法を実行することができる。そのような方法については、図６に関して詳細に説明する。
【０００７】
まず、図１を見ると、コンピュータ装置１０は、ビデオゲームなどのプログラムの制御をユーザが行うことを可能にする構成において、マルチタッチディスプレイ１２上に仮想コントローラ１４を表示することができる。図示される実施形態において、仮想コントローラ１４は、ビデオゲームの態様を制御するために使用されうる仮想ジョイスティックコントローラを含むゲームコントローラであり、それにより、ゲーム表示領域１６においてゲームプレーが可能となる。典型的には、仮想コントローラは、ゲーム表示領域のディスプレイを過度に視覚的に妨げることのないように提示される。別の実施形態において、仮想コントローラ入力モジュールは、仮想コントローラの入力に対応する聴覚フィードバックをスピーカ／マイクユニット２６を通して提供することができる。
【０００８】
仮想コントローラ１４は、ユーザの指の複数の接触に反応することができる。例えば、指は親指１８であってよく、指は任意のさまざまな方向に移動してよく、この動きを仮想コントローラ１４により１つまたは複数のコントローラ入力パラメータに変換することができる。コントローラ入力パラメータは、親指１８の動きに対応する方向、速度、および／または相対的な大きさを含むことができる。その結果、ある実施形態において、１つまたは複数のコントロールアイコン２０が、ユーザに制御の位置決めの視覚的インジケーションを提供することができ、これはユーザが指を動かすと更新される。
【０００９】
１つまたは複数のコントロールアイコン２０は、１つまたは複数の仮想コントローラ１４および／またはユーザに異なる態様のゲームの制御を行わせることができる１つまたは複数の補助コントローラを表すことができる。コントロールアイコン２０はそれぞれ、仮想ジョイスティック、ボタン、Ｄパッドボタン、スライダ、および、作動させてゲームの一態様を制御することができる任意の他の特徴の内の１つまたは複数であってよい。図１に例示される実施形態において、仮想コントローラがマイクロソフト（登録商標）社のＸＢＯＸ（登録商標）コントローラを実装することは理解されるであろう。他のコントローラ実装が同様に利用されてよい。
【００１０】
典型的には、仮想コントローラは、ゲーム表示領域のディスプレイを過度に視覚的に妨げることのないように提示される。従って、ある実施形態において、ディスプレイ上にコントローラアイコンが提供されず、ディスプレイ上のゲームプレー領域の可視エリアが最大化される。他の実施形態において、アイコンを部分的に透明にしてその下のゲームプレーを見えるようにすることができ、または、アイコンを短時間提示した後、徐々に消えるようにすることができる。
【００１１】
図２は、図１のコンピュータ装置１０のソフトウェアコンポーネントおよびハードウェアコンポーネントを例示する概略図である。コンピュータ装置１０は、マルチタッチディスプレイ１２、プロセッサ２２、メモリユニット２４、スピーカ／マイクユニット２６、および大容量記憶装置ユニット２８を含むが、それら全てが、１つまたは複数のデータバスを介してお互いに通信するように構成される。
【００１２】
マルチタッチディスプレイ１２は、可視画像を作成するための様々なディスプレイ技術を採用し、例えば、グラフィカルユーザインターフェース（ＧＵＩ）３２を含むことができる。マルチタッチディスプレイ１２は、液晶ディスプレイ（ＬＣＤ）、または、例えば、複数の発光画素から成る有機発光ダイオード（ＯＬＥＤ）ディスプレイとして構成されうる。マルチタッチディスプレイ１２は、タッチセンサ３０および圧力センサ３４をさらに含むことができる。
【００１３】
タッチセンサ３０はマルチタッチディスプレイ１２に連結されており、接触３６などのユーザの指の複数の接触を検出することができる。圧力センサ３４はマルチタッチディスプレイ１２に結合されており、指に関連する接触３６のエリア内における経時的な変化から、または圧力の増加に関連する電気特性における変化から、圧力を検出することができ、それによって歪みゲージとして機能する。マルチタッチディスプレイ１２は、本開示の範囲から逸脱することなく、追加または代替のセンサを含むことができる。
【００１４】
大容量記憶装置ユニット２８は、仮想コントローラ入力モジュール４２およびプログラム３８を含む種々のプログラムおよびモジュールを含むことができ、これらは、メモリユニット２４およびディスプレイ１２を使用してプロセッサ２２によって実行されて、本明細書に記載される種々の機能を達成することができる。さらに大容量記憶装置ユニット２８は、例えば、マルチタッチディスプレイ１２上でのＧＵＩ３２の表示を制御することが可能な表示出力４０を送信するように構成されうる、１つまたは複数のプログラム３８を記憶することができる。
【００１５】
種々のプログラムがオペレーティングシステムリソースと通信し、および当該リソースを利用するアプリケーションプログラミングインターフェース（ＡＰＩ）を含むオペレーティングシステムをコンピュータ装置１０が含みうることは理解されるであろう。ある実施形態において、仮想コントローラ入力モジュール４２は、コンピュータ装置上にＡＰＩ４８として実装されることができる。あるいは、仮想コントローラ入力モジュール４２は、プログラム、ライブラリ、サービス、または、コンピュータ装置１０上で実行される他のソフトウェアコンポーネントとして実装されることができる。
【００１６】
仮想コントローラ入力モジュール４２は、コンピュータ装置１０のプロセッサ２２により実行されうる。仮想コントローラ入力モジュール４２は、マルチタッチディスプレイ１２上において、タッチセンサ３０、圧力センサ３４、および／または追加のセンサを介して、ユーザの複数の指を接触として検出するように、および、それらの接触に対応する動きを検出するように構成されうる。このように、仮想コントローラ入力モジュール４２は、１つまたは複数のセンサにより受信したデータを変換し、このデータに基づいてコントローラ入力メッセージ４６を生成し、当該メッセージをプログラム３８に送信することができる。
【００１７】
例えば、仮想コントローラ入力モジュール４２は、マルチタッチディスプレイ１２上に最初に指を下ろす位置をタッチセンサ３０を介して検出することができる。また、仮想コントローラ入力モジュール４２は、仮想コントローラ１４のニュートラルポジションを最初に指を下ろす位置において確立することができる。換言すると、仮想コントローラ入力モジュール４２は、指がマルチタッチディスプレイ１２に触れた時に最初の接触を検出することができる。さらに、仮想コントローラ入力モジュール４２は、ニュートラルポジションに固定される、または制御可能にニュートラルポジションの中心に置かれる、コントロールアイコンを表示するように構成されうる。ニュートラルポジションを確立した後、仮想コントローラ入力モジュール４２は、例えば、最初に指を下ろす位置に対する後続の指の動きを検出するように構成されうる。とりわけ、そのような接触および動きについて、図３から図６に関してさらに詳細に検討する。
【００１８】
仮想コントローラ入力モジュール４２は、例えば、最初に指を下ろす位置に対する後続の指の動きに基づくコントローラ入力パラメータ４４を判定するように構成されうる。コントローラ入力パラメータ４４の判定には、例えば、最初に指を下ろす位置に対する後続の指の動きの方向、速度、および／または、相対的な大きさの判定が含まれてよい。さらに、判定されたコントローラ入力パラメータ４４を示すコントローラ入力メッセージ４６は、仮想コントローラ入力モジュール４２により生成され、および、プログラム３８に送信されることができる。コントローラ入力メッセージ４６は、上述したようにビデオゲームまたは他のプログラムとすることができる、仮想コントローラ入力モジュールとプログラム３８との間の通信経路として機能する。このメッセージには、検出された後続の動きに基づくコントローラ入力パラメータ４４、および／または、以下で検討する種々の他のコントローラ入力パラメータ、が含まれてよい。
【００１９】
別のコントローラ入力パラメータ４４の一例として、コントローラ入力メッセージ４６は、後続の動きの最中にマルチタッチディスプレイ１２に掛かる指の圧力のインジケーションを含んでもよく、圧力は圧力センサ３４から受信される信号に基づいて検出される。検出される圧力は、例えば、指に関連する接触のエリア内における経時的な変化、または、歪みゲージにより検出される電気特性における変化に基づくものとすることができる。
【００２０】
また、仮想コントローラ入力モジュール４２は、他のコントローラ、例えば、仮想コントローラ１４とは異なるゲームの態様を制御することができる補助コントローラに対するユーザの指の複数の接触を検出することができる。そのような補助コントローラは、補助コントロールゾーンと関連付けられてよく、これについては図５に関してさらに詳細に検討する。これらの補助コントローラからの出力に基づくコントローラ入力パラメータも、コントローラ入力メッセージ４６に含まれうる。
【００２１】
上述のように、仮想コントローラ入力モジュール４２は、アプリケーションプログラミングインターフェース（ＡＰＩ）４８として実装されうる。従って、例えば、最初に指を下ろす位置の検出、ニュートラルポジションの確立、後続の動きの検出、コントローラ入力パラメータ４４の判定、およびコントローラ入力メッセージ４６の生成は、コンピュータ装置１０上で実行されるアプリケーションプログラミングインターフェース４８によって行われうる。さらに、アプリケーションプログラミングインターフェース４８は、コンピュータ装置１０上で実行されるプログラム３８にコントローラ入力メッセージ４６を出力することができる。他の実施形態において、仮想コントローラ入力モジュール４２は、ドライバスタンドアロン実行可能プログラム、ライブラリ、サービス、または他のタイプのソフトウェアコンポーネントとして実装されうる。
【００２２】
図３は、図１の仮想コントローラ１４について相対的な動きを例示する、ニュートラルポジション５０の図式的図である。図示されるように、ユーザの指は、上述のように、最初に指を下ろす位置に対応する接触を行い、最初に指を下ろす位置にニュートラルポジション５０を確立することができる。ユーザは、ニュートラルポジション５０に対して動くことにより仮想コントローラ１４を制御することができる。例えば、ユーザは、後続の動きを行って、指を位置５２に移動させることができ、または、ユーザは、後続の動きを行って、指を位置５４に移動させることができる。各動きは、指がマルチタッチディスプレイ１２に触れた状態を継続したまま発生し、プログラム３６により別の方法で解釈される異なる制御入力として変換することができる。例えば、位置５２への後続の動きでは、仮想の車両を前方および左に進ませることになり、一方、位置５４への後続の動きでは、仮想の車両をバックさせることになってよい。後続の動きが、記載した以外の位置で検出されてよいことは理解されるであろう。
【００２３】
図４は、図１の仮想コントローラ１４についてのニュートラルポジション５０の再配置の図式的図である。時折、ユーザはマルチタッチディスプレイ１２の表面から指を上げ、続いて、次に指を下ろす位置で仮想コントローラ１４の制御を継続することができる。仮想コントローラの再配置を行わないと、コンピュータ装置に対するユーザのグリップが次に指を下ろす位置におけるクリープを引き起こすことが、ユーザには分かる。その結果、ユーザは不注意に仮想コントローラを誤打し、満足のいかないユーザ経験、ビデオゲームでの悲劇的な結末などにつながることになる。
【００２４】
この問題に対処するために、仮想コントローラ入力モジュール４２は、そのようなクリープが検出されると、ニュートラルポジションを再配置するように構成される。この再配置は次のように実装されうる。図４に示すように、ユーザの指は、上述のように、最初に指を下ろす位置に対応する接触を行い、最初に指を下ろす位置に仮想コントローラ１４のニュートラルポジション５０を確立することができる。仮想コントローラ入力モジュール４２は、指を上げるイベント５８を検出するように構成されることができ、指を上げるイベント５８は、例えば、所定の閾値期間、指とマルチタッチディスプレイ１２の接触がないこととすることができる。
【００２５】
仮想コントローラ入力モジュール４２は、第１および第２の次に指を下ろす位置を検出し、ニュートラルポジションを、５０Ｂ、５０Ｃにおける対応する重心の位置に再配置、または、次に指を下ろす位置に対する他の位置に再配置するように構成されることができ、それにより、仮想コントローラが１４Ｂ、１４Ｃにて図示されるように再配置される。
【００２６】
あるシナリオにおいて、ユーザは、ニュートラルポジションが、マルチタッチディスプレイ１２の境界に実質的に近くなるように、かつ、それにより、結果として不完全な仮想コントローラとなってしまうように、指を位置決めするかもしれない。この問題を解決するために、ニュートラルポジションについて最も近い許容位置を判定することができ、また、コントロールアイコンを最も近い許容位置に表示することができる。従って、仮想コントローラ入力モジュール４２は、指を下ろす位置および／または次に指を下ろす位置が、タッチセンサ式ディスプレイの境界近傍の領域で発生して、仮想コントローラの作動可能なエリアが境界で妨害されるような場合に、最も近い許容仮想コントローラ位置を判定するように構成されることができる。ある実施形態において、最も近い許容位置は、仮想コントローラの作動可能なエリア全体をディスプレイ上に配置させることが可能な、ユーザの指を下ろす位置に最も近い位置と見なすことができる。この特性は選択的に、例えば、初心者モードに含まれてよく、ユーザが仮想コントローラを容易に使いこなせるようにする。
【００２７】
別の例において、検出されたニュートラルポジションは、最も近い許容位置の判定を行わずに却下されてよく、従って、コントロールアイコンは最も近い許容位置に表示されなくともよい。別の例において、不完全な仮想コントローラを有効とすることができる。例えば、ユーザが上級モードを選択する場合、不完全な仮想コントローラを有効とし、ゲームは制御できるが、境界が仮想コントローラの作動可能なエリアの一部を妨害するために、機能が縮小されてしまう場合がある。この場合、仮想コントローラには、仮想コントローラの作動可能なエリアにおいてコントロールアイコンの部分表示が含まれてよい。従って、不完全な仮想コントローラでは、ユーザにとって可視である仮想コントローラの一部分のみからの制御を有効とすることができる。同様に、ディスプレイの境界により遮られる仮想コントローラの一部分は、視界が遮られかつ作動不可能であるため、機能が縮小されてしまう。
【００２８】
図５は、ユーザが、上述の仮想ジョイスティックなどの主コントロールアイコンの使用の後に補助コントロールアイコンを作動させようとすると検出されうるサムアップイベントの図式的図である。図５に示すように、ニュートラルポジション５０は、仮想コントローラ１４を制御するように確立されうる。一度確立されると、仮想コントローラ入力モジュール４２が、指を上げるイベント５８を検出することができ、かつ、さらに、例えば、補助コントロールゾーン５６内の指接触６０にて、次に指を下ろす位置を検出することができる。
【００２９】
補助コントロールゾーン５６は、仮想ボタンもしくは方向パッド（Ｄパッド）コントローラ６２、または他のユーザ入力機構として構成されうる。従って、補助コントロールアイコンは、仮想ボタン、Ｄパッド等の形状に対応する補助コントロールゾーン５６内に表示されうる。そのような補助コントロールアイコンを表示することにより、仮想コントローラ入力モジュール４２は、ユーザに、補助コントロールゾーン５６の位置のインジケーションを提供することができる。さらに、仮想コントローラ入力モジュール４２は、補助コントロールゾーン内におけるユーザの指の後続の位置または相対的な動きに基づく、補助コントロール入力パラメータを判定するように構成されうる。従って、仮想コントローラ入力モジュール４２は、補助コントロール入力パラメータのインジケーションをさらに含むようにコントローラ入力メッセージ４６を生成することができる。あるいは、補助コントロールゾーン５６が他のプログラムに関するユーザ入力を有効にするように種々の他の構成で構成されうることは理解されるであろう。
【００３０】
ある実施形態において、補助コントロールゾーン内における次に指を下ろす位置を検出した時に、仮想コントローラ入力モジュール４２はニュートラルポジションの再配置を阻止するように構成されうる。この状況では、仮想コントローラ入力モジュール４２は、ユーザの手が不慮のクリープによって動いたのではなく、主コントロールとして機能する仮想コントロールからの所定の距離および方向にある補助コントロールを制御するというユーザの意図によって動いたものと判定する。そのような場合、仮想コントローラ入力モジュール４２は、仮想コントローラの再配置を抑制して、代わりに、補助コントロールゾーン内に位置決めされる補助コントロールとユーザが対話することを可能にする。このように、ユーザは、例えば、主ジョイスティックコントローラと補助Ｄパッドコントローラとの間を、自分の親指を前後に切り替えることができる。
【００３１】
図６は、マルチタッチディスプレイ用の仮想コントローラ１４を介して入力を受信するように構成されるコンピュータ装置のための方法６００を例示するフロー図である。方法６００は、ユーザの指の複数の接触を検出するように構成されるタッチセンサを含むマルチタッチディスプレイなどの、タッチセンサ式ディスプレイを有するコンピュータ装置での使用のための入力方法とすることができる。上述のコンピュータ装置１０のソフトウェアコンポーネントおよびハードウェアコンポーネントを使用して、または、他の適切なコンポーネントを使用して、方法６００が実行されうることは理解されるであろう。
【００３２】
方法６００は、ステップ６０２にて開始され、タッチセンサ式ディスプレイ上で最初に指を下ろす位置をタッチセンサを介して検出することを含む。方法６００は、ステップ６０４に進み、上述のように、指を下ろす位置において仮想コントローラのニュートラルポジションを確立することを含む。
【００３３】
方法６００はステップ６０６に進み、最初に指を下ろす位置に対する後続の指の動きを検出することを含む。方法６００はステップ６０８に進み、最初に指を下ろす位置に対する後続の指の動きに基づくコントローラ入力パラメータを判定することを含む。例えば、コントローラ入力パラメータは、マルチタッチディスプレイ上に表示される仮想ジョイスティックなどのコントロールアイコンへの後続の動きに関連する、方向、速度および／または大きさを含みうる。上述のように、他のコントローラ入力パラメータも検出されうる。
【００３４】
方法６００はステップ６１０に進み、後続の動きの最中にマルチタッチディスプレイに掛かる指の圧力を検出することを含む。そして、方法６００はステップ６１２に進み、判定されたコントローラ入力パラメータを示すコントローラ入力メッセージを生成することを含み、かつ、検出された圧力のインジケーションをさらに含むことができる。
【００３５】
ステップ６１２から、方法６００はステップ６１４およびステップ６２２に非同期的に進む。ステップ６２２にて、方法６００は、コントローラパラメータを含むコントローラ入力メッセージをコンピュータ装置上で実行されるプログラムに送信することを含む。ある実施形態において、ステップ６０２から６２２はＡＰＩにより実行されることができ、一方、ステップ６２４は、コンピュータ装置上で実行されるプログラムにより実行されうる。従って、ステップ６２２から６２４への処理フローは、オペレーティングシステム／ＡＰＩ空間を出て、プログラム空間に入るものとしてよい。ステップ６２４にて、方法は、プログラムにおいて、受信したコントローラ入力メッセージに基づき、ＧＵＩ要素を調整することを含むことができる。ステップ６２４から、方法６００は終了、あるいは、ステップ６０６へループして入力を検出することを継続することができる。
【００３６】
ステップ６１２での決定に戻り、方法はステップ６１４に分岐してもよく、そこでは、方法は、例えば、所定の期間、ディスプレイに接触が無いことを検出したことに基づき、指を上げるイベントが発生したかどうかを判断することを含む。ステップ６１４に対する応答が「いいえ」である場合、方法６００はステップ６０６に進み、入力を検出することを再開する。ステップ６１４に対する応答が「はい」である場合、方法６００はステップ６１６に進み、次に指を下ろす位置を検出することを含む。
【００３７】
方法６００はステップ６１８へ続き、補助コントロールゾーン内で次に指を下ろす位置が検出されているかどうかを判定することを含む。ステップ６１８に対する応答が「いいえ」である場合、方法６００はステップ６０４に進んで、ニュートラルなコントローラの位置を再確立する。換言すれば、ステップ６０４には、上述のように、次に指を下ろす位置において仮想コントローラのニュートラルポジションを再配置することが含まれうる。
【００３８】
ステップ６１８に対する応答が「はい」である場合、ニュートラルポジションは再配置されない。正確には、方法６００はステップ６２０に進み、補助コントロールゾーン内における次に指を下ろす位置に基づく補助コントロール入力パラメータを判定することを含む。例えば、補助コントロールアイコンは、補助コントロールゾーン内に表示されてよく、Ｄパッドコントローラとして構成されてよいものであり、一例の補助コントロール入力パラメータは、Ｄパッドコントローラを下ろすイベントであってよい。他の例についても上述された。ステップ６２０から、方法６００はステップ６１２に戻り、そこでは、コントローラ入力メッセージを生成することは、補助コントロール入力パラメータのインジケーションを含むことができる。
【００３９】
ある実施形態において、上述されたように、方法６００の一部は、コンピュータ装置上で実行されるＡＰＩによって実行されうる。例えば、ＡＰＩは、最初に指を下ろす位置の検出、ニュートラルポジションの確立、後続の動きの検出、コントローラ入力パラメータの判定、および／または、コントローラ入力メッセージの生成を行うことができる。
【００４０】
ある実施形態において、上述されたように、方法６００の一部は、指を下ろす位置および／または次に指を下ろす位置などの指接触が、タッチセンサ式ディスプレイの境界近傍の領域において発生して、結果的に仮想コントローラの作動可能なエリアが境界により妨害されることになる場合に、最も近い許容仮想コントローラ位置を判定することをさらに含みうる。最も近い許容仮想コントローラ位置は、上述のように判定されうる。仮想コントローラが位置決めされることができ、およびコントロールアイコンは、指接触により検出されるニュートラルポジションではなく、最も近い許容仮想コントローラ位置において表示されることができる。他の例において、検出されたニュートラルポジションは、最も近い許容仮想コントローラ位置の表示を行わずに却下されてよく、または、仮想コントローラは、上述されたように、部分的に可視かつ作動可能とすることができる。
【００４１】
上述のシステムおよび方法を実装することにより、相対的な入力を受信するように構成され、かつ、関連する補助コントロールを有することもできるタッチセンサ式ディスプレイ上に表示される仮想コントローラを使用して、ユーザがプログラムと対話することを可能にすることは理解されるであろう。さらに、仮想コントローラでは、そのニュートラルポジションを都合よく再配置して、ユーザの手の位置の任意の変更を追跡することができ、一方で、ユーザは、装置をグリップすることとコントロールの作動とを同時に行うことができる。その結果、コントローラの誤打が回避され、ユーザエクスペリエンスを向上させることができる。
【００４２】
用語「モジュール」、「プログラム」および「エンジン」は、本明細書で使用されて、コンピュータ装置のプロセッサにより実行される時に１つまたは複数の特定の機能を実行するソフトウェアを指す。これらの用語は、例えば、個々またはグループの実行可能ファイル、データファイル、ライブラリ、ドライバ、スクリプト、データベースレコードが包含されることを意味する。本明細書に記載される実施形態は、これらのモジュール、プログラム、およびエンジンを組織化した一例を示すが、本明細書に記載される機能を、異なって組織化されるソフトウェアコンポーネントにより達成することができることは理解すべきである。さらに、マルチタッチディスプレイが、ディスプレイ上の複数の接触を同時に感知するディスプレイであることは理解されるであろう。
【００４３】
理解すべきは、本明細書に記載される構成および／またはアプローチは例であり、かつ、これらの特定の実施形態または実施例は制限する意味を持つものとみなれるべきではない。なぜなら、多数の変形が可能であるからである。本明細書に記載される特定のルーチンまたは方法は、任意の数の処理戦略の内の１つまたは複数を表すことができる。故に、例示される種々の動作は、例示される順序で、他の順序で、並行して、または、何らかの事例を省略して、行われうる。同様に、上述の処理の順番は変更されうる。
【００４４】
本開示の主題には、種々のプロセス、システム、および構成の、全ての新規で非自明的なコンビネーションおよびサブコンビネーション、ならびに、本明細書において開示される他の特徴、機能、動作および／またはプロパティ、のみならず、任意のおよび全てのその等価物が含まれる。
【図１】
0005951638.tif 000002
【図２】
0005951638.tif 000003
【図３】
0005951638.tif 000004
【図４】
0005951638.tif 000005
【図５】
0005951638.tif 000006
【図６】
0005951638.tif 000007