(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-23
(45)【発行日】2024-09-02
(54)【発明の名称】指の存在を使用したハンドヘルドコントローラのモーション制御機能のアクティブ化
(51)【国際特許分類】
G06F 3/0338 20130101AFI20240826BHJP
A63F 13/24 20140101ALI20240826BHJP
A63F 13/211 20140101ALI20240826BHJP
A63F 13/218 20140101ALI20240826BHJP
A63F 13/525 20140101ALI20240826BHJP
A63F 13/52 20140101ALI20240826BHJP
A63F 13/214 20140101ALI20240826BHJP
G06F 3/038 20130101ALI20240826BHJP
G06F 3/02 20060101ALI20240826BHJP
【FI】
G06F3/0338 412
A63F13/24
A63F13/211
A63F13/218
A63F13/525
A63F13/52
A63F13/214
G06F3/038 330
G06F3/02 E
G06F3/02 F
G06F3/02 430
(21)【出願番号】P 2021565873
(86)(22)【出願日】2020-05-07
(86)【国際出願番号】 US2020031779
(87)【国際公開番号】W WO2020227473
(87)【国際公開日】2020-11-12
【審査請求日】2023-04-28
(32)【優先日】2019-05-07
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】517160525
【氏名又は名称】バルブ コーポレーション
(74)【代理人】
【識別番号】110001737
【氏名又は名称】弁理士法人スズエ国際特許事務所
(72)【発明者】
【氏名】パルマー、オースティン
(72)【発明者】
【氏名】キャンベル、イアン
(72)【発明者】
【氏名】ダルトン、スコット
【審査官】槙 俊秋
(56)【参考文献】
【文献】米国特許出願公開第2017/0123516(US,A1)
【文献】米国特許出願公開第2013/0100021(US,A1)
【文献】米国特許出願公開第2015/0105152(US,A1)
【文献】米国特許出願公開第2017/0189802(US,A1)
【文献】米国特許出願公開第2019/0018513(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/0338
A63F 13/24
A63F 13/211
A63F 13/218
A63F 13/525
A63F 13/52
A63F 13/214
G06F 3/038
G06F 3/02
(57)【特許請求の範囲】
【請求項1】
ハンドヘルドコントローラであって、
1つ以上のプロセッサと、
前記1つ以上のプロセッサに、前記ハンドヘルドコントローラの移動を示すモーションセンサデータを提供するように構成されたモーションセンサと、
前面を有するハウジングと、
前記ハウジングの前記前面上に配設されたジョイスティックであって、前記ジョイスティックを第1の位置から第2の位置に移動させる親指によって作動させるように構成されたジョイスティックと、
前記ジョイスティックに関連付けられ、前記1つ以上のプロセッサに、前記ジョイスティックの遠位面に対する前記親指の近接度を示すタッチセンサデータを提供するように構成されたタッチセンサと、
論理であって、
前記タッチセンサデータを受信し、
前記タッチセンサデータに少なくとも部分的に基づいて、第1のデジタル化された近接値を判定し、
前記第1のデジタル化された近接値が、前記親指が前記ジョイスティックの前記遠位面に接触していることを示す閾値を超えると判定し、
前記モーションセンサデータを受信し、
前記モーションセンサデータに少なくとも部分的に基づいて、前記ハンドヘルドコントローラが移動したことを判定し、
前記第1のデジタル化された近接値が前記閾値を超えると判定することに少なくとも部分的に基づいて、アプリケーション入力としてアプリケーションに前記モーションセンサデータを送信して、前記アプリケーションの態様を制御し、
ここにおいて、前記アプリケーションの前記態様の制御の感度レベルは、前記ハンドヘルドコントローラの移動量に対応する第1の感度レベルに設定され、
前記親指が前記ジョイスティックの前記遠位面と接触していることから、前記親指が前記ジョイスティックの前記遠位面から離間していることへの変化、および前記ジョイスティックの前記遠位面から閾値距離未満の第1の距離だけ離間したままであることに応じて、前記アプリケーションの前記態様の制御の前記感度レベルを、前記第1の感度レベルから当該第1の感度レベルよりも小さい第2の感度レベルに調整し、
前記タッチセンサデータに少なくとも部分的に基づいて、第2のデジタル化された近接値を判定し、
前記第2のデジタル化された近接値が、前記親指が前記ジョイスティックの前記遠位面との接触を停止したことを示す前記閾値を超え
ず、および前記ジョイスティックの前記遠位面から前記閾値距離を超える第2の距離に移動していると判定し、および
前記第2のデジタル化された近接値が前記閾値を超えないと判定することに少なくとも部分的に基づいて、前記アプリケーション入力として前記アプリケーションに前記モーションセンサデータを送信することを停止するように構成された論理と、を備える、ハンドヘルドコントローラ。
【請求項2】
前記アプリケーションの前記態様は、
前記アプリケーションのカーソルの移動、
前記アプリケーションの仮想カメラの移動であって、前記仮想カメラの移動は、ディスプレイ上に提示されるシーンを変化させる、移動、または
前記アプリケーションの仮想物体の移動のうちの少なくとも1つを含む、請求項1に記載のハンドヘルドコントローラ。
【請求項3】
前記ジョイスティックに関連付けられ、前記1つ以上のプロセッサに、前記ジョイスティックの押圧力の量を示す力データを提供するように構成された押圧センサをさらに含み、
前記論理は、
前記ジョイスティックの前記押圧力の前記量に対応する値を判定し、
前記値に少なくとも部分的に基づいて、前記仮想カメラの前記移動または前記仮想物体の前記移動のうちの少なくとも1つの量を調整するようにさらに構成されている、請求項2に記載のハンドヘルドコントローラ。
【請求項4】
前記タッチセンサは、前記ジョイスティックの前記遠位面に対する前記親指の前記近接度に基づいて静電容量値を測定するように構成された静電容量センサを備える、請求項1に記載のハンドヘルドコントローラ。
【請求項5】
前記ハウジングの前記前面は、前記ハンドヘルドコントローラの中心の左側の第1の領域と、前記ハンドヘルドコントローラの中心の右側の第2の領域とを含み、
前記ジョイスティックは、前記第2の領域内の前記ハウジングの前記前面上に配設されている、請求項1に記載のハンドヘルドコントローラ。
【請求項6】
ハンドヘルドコントローラであって、
1つ以上のプロセッサと、
前記1つ以上のプロセッサに、前記ハンドヘルドコントローラの移動を示すモーションセンサデータを提供するように構成されたモーションセンサと、
可動制御部を第1の位置から第2の位置に移動させる指によって作動されるように構成された前記可動制御部を含むハウジングと、
前記可動制御部に関連付けられ、前記1つ以上のプロセッサに、前記可動制御部に対する前記指の近接度を示すタッチセンサデータを提供するように構成されたタッチセンサと、
論理であって、
タッチセンサデータを受信し、
前記タッチセンサデータに少なくとも部分的に基づいて、第1のデジタル化された近接値を判定し、
前記第1のデジタル化された近接値が、前記指が前記可動制御部の表面に接触していることを示す閾値を超えると判定し、
前記モーションセンサデータを受信し、
前記モーションセンサデータに少なくとも部分的に基づいて、前記ハンドヘルドコントローラが移動したことを判定し、
前記第1のデジタル化された近接値が前記閾値を超えると判定することに少なくとも部分的に基づいて、アプリケーションの態様を制御するために、アプリケーション入力として前記モーションセンサデータを前記アプリケーションに送信し、
ここにおいて、前記アプリケーションの前記態様の制御の感度レベルは、前記ハンドヘルドコントローラの移動量に対応する第1の感度レベルに設定され、
前記指が前記可動制御部の前記表面と接触していることから、前記指が前記可動制御部の前記表面から離間していることへの変化、および前記可動制御部の前記表面から閾値距離未満の第1の距離だけ離間したままであることに応じて、前記アプリケーションの前記態様の制御の前記感度レベルを前記第1の感度レベルから当該第1の感度レベルよりも小さい第2の感度レベルに調整し、
前記タッチセンサデータに少なくとも部分的に基づいて、第2のデジタル化された近接値を判定し、
前記第2のデジタル化された近接値が、前記指が前記可動制御部の表面との接触を停止したことを示す前記閾値を超えず、
および前記可動制御部の前記表面から前記閾値距離を超える第2の距離に移動していると判定し、および
前記第2のデジタル化された近接値が前記閾値を超えないと判定することに少なくとも部分的に基づいて、前記アプリケーション入力として前記アプリケーションに前記モーションセンサデータを送信することを停止するように構成された論理と、を備える、ハンドヘルドコントローラ。
【請求項7】
前記アプリケーションの前記態様は、
前記アプリケーションのカーソルの移動、
前記アプリケーションの仮想カメラの移動、または
前記アプリケーションの仮想物体の移動のうちの少なくとも1つを含む、請求項6に記載のハンドヘルドコントローラ。
【請求項8】
前記論理は、
前記タッチセンサデータに少なくとも部分的に基づいて、前記指が前記可動制御部の前記表面との接触を停止し、閾値距離未満である前記可動制御部の前記表面からある距離だけ離間されていることを判定し、
前記指が前記可動制御部の前記表面から離間されている前記距離に少なくとも部分的に基づいて、前記仮想カメラの前記移動または前記仮想物体の前記移動のうちの少なくとも1つの量を調整するようにさらに構成されている、請求項7に記載のハンドヘルドコントローラ。
【請求項9】
前記可動制御部に関連付けられ、前記1つ以上のプロセッサに、前記可動制御部の押圧力の量を示す力データを提供するように構成された押圧センサをさらに備え、
前記論理は、
前記可動制御部の前記押圧力の前記量に対応する値を判定し、
前記値に少なくとも部分的に基づいて、前記仮想カメラの前記移動または前記仮想物体の前記移動のうちの少なくとも1つの量を調整するようにさらに構成されている、請求項7に記載のハンドヘルドコントローラ。
【請求項10】
前記可動制御部は、前記ハウジングの前面に配設されたジョイスティックを備える、請求項6に記載のハンドヘルドコントローラ。
【請求項11】
前記タッチセンサは、前記可動制御部に対する前記指の前記近接度に基づいて静電容量値を測定するように構成された静電容量センサを備える、請求項6に記載のハンドヘルドコントローラ。
【請求項12】
前記アプリケーション入力は、第1のアプリケーション入力であり、前記論理は、
前記指が前記可動制御部を前記第1の位置から前記第2の位置に移動させることによって前記可動制御部を作動させたと判定し、
前記アプリケーションの前記態様、または異なる態様を制御するための第2のアプリケーション入力として前記アプリケーションに作動データを送信するようにさらに構成されており、前記作動データは、前記可動制御部を作動させた前記指に基づいて生成されている、請求項6に記載のハンドヘルドコントローラ。
【請求項13】
コンピュータ実装方法であって、
ハンドヘルドコントローラの1つ以上のプロセッサによって、前記ハンドヘルドコントローラのハウジングに含まれる可動制御部と関連付けられたタッチセンサによって提供されたタッチセンサデータを受信することであって、前記可動制御部は、前記可動制御部を第1の位置から第2の位置に移動させる指によって作動されるように構成されている、受信することと、
前記タッチセンサデータに少なくとも部分的に基づいて、第1のデジタル化された近接値を判定することと、
前記第1のデジタル化された近接値が、前記可動制御部の表面に接触する前記指を示す閾値を超えると判定することと、
前記1つ以上のプロセッサによって、前記ハンドヘルドコントローラのモーションセンサによって提供されたモーションセンサデータを受信することと、
前記モーションセンサデータに少なくとも部分的に基づいて、
前記ハンドヘルドコントローラが移動したと判定することと、
前記第1のデジタル化された近接値が前記閾値を超えると判定することに少なくとも部分的に基づいて、アプリケーションの態様を制御するために、アプリケーション入力として前記モーションセンサデータを前記アプリケーションに送信することと、
ここにおいて、前記アプリケーションの前記態様の制御の感度レベルは、前記ハンドヘルドコントローラの移動量に対応する第1の感度レベルに設定され、
前記指が前記可動制御部の前記表面と接触していることから、前記指が前記可動制御部の前記表面から離間していることへの変化、および前記可動制御部の前記表面から閾値距離未満の第1の距離だけ離間したままであることに応じて、前記アプリケーションの前記態様の制御の前記感度レベルを前記第1の感度レベルから当該第1の感度レベルよりも小さい第2の感度レベルに調整することと、
前記タッチセンサデータに少なくとも部分的に基づいて、第2のデジタル化された近接値を判定することと、
前記第2のデジタル化された近接値が、前記指が前記可動制御部の表面との接触を停止したことを示す前記閾値を超えず、
および前記可動制御部の前記表面から前記閾値距離を超える第2の距離に移動していると判定することと、および
前記第2のデジタル化された近接値が前記閾値を超えないと判定することに少なくとも部分的に基づいて、前記アプリケーション入力として前記アプリケーションに前記モーションセンサデータを送信することを停止することと、を含む、コンピュータ実装方法。
【請求項14】
前記アプリケーションの前記態様は、
前記アプリケーションのカーソルの移動、
前記アプリケーションの仮想カメラの移動、または
前記アプリケーションの仮想物体の移動のうちの少なくとも1つを含む、請求項13に記載のコンピュータ実装方法。
【請求項15】
前記タッチセンサによって提供される前記タッチセンサデータに少なくとも部分的に基づいて、前記指が前記可動制御部の前記表面との接触を停止し、および前記可動制御部の前記表面から閾値距離未満である距離だけ離間していることを判定することと、
前記指が前記可動制御部の前記表面から前記閾値距離未満である前記距離だけ離間していることに少なくとも部分的に基づいて、前記仮想カメラの前記移動または前記仮想物体の前記移動のうちの少なくとも1つの量を調整することと、をさらに含む、請求項14に記載のコンピュータ実装方法。
【請求項16】
前記可動制御部に関連付けられた圧力センサによって提供された力データに少なくとも部分的に基づいて、前記可動制御部の押圧力の量に対応する値を判定することと、
前記値に少なくとも部分的に基づいて、前記仮想カメラの前記移動または前記仮想物体の前記移動のうちの少なくとも1つの量を調整することと、をさらに含む、請求項14に記載のコンピュータ実装方法。
【請求項17】
前記可動制御部は、前記ハウジングの前面に配設されたジョイスティックを備える、請求項13に記載のコンピュータ実装方法。
【請求項18】
前記ハウジングの前面は、前記ハンドヘルドコントローラの中心の左側の第1の領域と、前記ハンドヘルドコントローラの中心の右側の第2の領域とを含み、
前記可動制御部は、前記第2の領域内の前記ハウジングの前記前面に配置される、請求項13に記載のコンピュータ実装方法。
【請求項19】
前記タッチセンサは、前記可動制御部に対する前記指の近接度に基づいて静電容量値を測定するように構成された静電容量センサを具備する、請求項13に記載のコンピュータ実装方法。
【請求項20】
前記ハウジングの前面は、前記ハンドヘルドコントローラの中心の左側の第1の領域と、前記ハンドヘルドコントローラの中心の右側の第2の領域とを含み、
前記可動制御部は、前記第1の領域内の前記ハウジングの前記前面上に配設される、請求項6に記載のハンドヘルドコントローラ。
【請求項21】
コンピュータ実装方法であって、
ハンドヘルドコントローラの1つ以上のプロセッサによって、前記ハンドヘルドコントローラのハウジングに含まれる可動制御部と関連付けられたタッチセンサによって提供されたタッチセンサデータを受信することであって、前記可動制御部は、前記可動制御部を第1の位置から第2の位置に移動させる指によって作動されるように構成されている、受信することと、
前記タッチセンサデータに少なくとも部分的に基づいて、第1のデジタル化された近接値を判定することと、
前記第1のデジタル化された近接値が、前記可動制御部の表面に接触する前記指を示す閾値を超えると判定することと、
前記1つ以上のプロセッサによって、前記ハンドヘルドコントローラのモーションセンサによって提供されたモーションセンサデータを受信することと、
前記ハンドヘルドコントローラが移動したという前記モーションセンサデータに少なくとも部分的に基づいて、判定することと、
前記第1のデジタル化された近接値が前記閾値を超えると判定することに少なくとも部分的に基づいて、アプリケーションの態様を制御するために、アプリケーション入力として前記モーションセンサデータを前記アプリケーションに送信することと、ここにおいて、前記アプリケーションの前記態様は、前記アプリケーションのカーソルの移動、前記アプリケーションの仮想カメラの移動、または前記アプリケーションの仮想物体の移動のうちの少なくとも1つを含み、
前記タッチセンサによって提供される前記タッチセンサデータに少なくとも部分的に基づいて、前記指が前記可動制御部の前記表面との接触を停止し、および前記可動制御部の前記表面から閾値距離未満である第1の距離だけ離間していることを判定することと、
前記指が前記可動制御部の前記表面から前記閾値距離未満である前記第1の距離だけ離間しているとの前記判定に少なくとも部分的に基づいて、前記カーソルの前記移動、前記仮想カメラの前記移動または前記仮想物体の前記移動のうちの少なくとも1つの量を調整することと、
前記タッチセンサデータに少なくとも部分的に基づいて、第2のデジタル化された近接値を判定することと、
前記第2のデジタル化された近接値が、前記指が前記可動制御部の表面との接触を停止したことを示す前記閾値を超えず、
および前記可動制御部の前記表面から前記閾値距離を超える第2の距離に移動していると判定することと、および
前記第2のデジタル化された近接値が前記閾値を超えないと判定することに少なくとも部分的に基づいて、前記アプリケーション入力として前記アプリケーションに前記モーションセンサデータを送信することを停止することと、を含む、コンピュータ実装方法。
【発明の詳細な説明】
【関連出願の相互参照】
【0001】
本願は、2019年5月7日に出願された「USING FINGER PRESENCE TO ACTIVATE A MOTION CONTROL FEATURE FOR A HANDHELD CONTROLLER」と題する米国特許出願第16/405,802号に対する優先権を主張するPCT出願であり、これは、その全体が参照により本明細書によって組み込まれる。
【背景技術】
【0002】
ハンドヘルドコントローラは、例えば、コンピューティングデバイスに入力を提供するための一連のアーキテクチャで使用される。例えば、ハンドヘルドコントローラは、ゲームアプリケーション、ゲームコンソール、ゲームサーバなどを実行するパーソナルコンピューティングデバイスとプレーヤが相互作用することを可能にするように、ゲーム業界において利用される。ゲームコントローラハウジングに設けられた従来の制御部を作動させるために指を使用することに加えて、いくつかのゲームコントローラ設計は、ゲームコントローラ全体を異なる方向に移動させる(例えば、回転、傾斜などによって、ゲームコントローラを左、右、上、または下に移動させる)ことによってビデオゲーム入力をユーザに提供することを可能にするモーション制御機能を可能にするために、モーションセンサ(例えば、ジャイロスコープおよび加速度計)を追加している。
【0003】
モーション制御機能の追加が多くのビデオゲームの再生性を向上させるという初期の期待にもかかわらず、ユーザコミュニティは、ゲームコントローラにそのようなモーション制御機能を実装する過去の試みにほとんど満足していない。例えば、過去の試みは、ユーザがゲームコントローラをいわゆる「デッドゾーン」または中央位置から移動させる量に基づいて、仮想カメラ(例えば、一人称シューティングゲーム内のシーン)が回転する速度を制御するなど、ビデオゲーム内の回転速度にジャイロスコープ入力をマッピングすることを選択している。この特定の実装では、ユーザは、カメラの回転が停止するデッドゾーンを見つける試みにおいて、小さな空間の周りにゲームコントローラを絶えず動かさなければならないため、ユーザにとって、ゲームプレイ中に仮想カメラが回転することを防ぐことは非常に困難である。加えて、ジャイロスコープおよび加速度計などのモーションセンサは、時間の経過とともにドリフトする傾向があり、これは、デッドゾーンがゲームプレイ中にドリフトし得ることを意味し、これは、仮想カメラを中央位置に配向するために、ユーザがゲームコントローラを自分の体に対して拙い角度で保持する必要がある状況を作り出す可能性がある。この問題に対処するために、いくつかの過去のゲームコントローラ設計は、ユーザが仮想カメラを中央位置にリセットするために押すことができる専用の「カメラリセット」ボタンを提供しており、ユーザがモーションセンサを効果的に再較正し、ゲームコントローラを自身の体の前の自然な位置に戻すことを可能にする。しかしながら、一次ビデオゲーム入力を提供するために頻繁に使用される一次制御部からユーザが指を離し、その指を使用して専用のカメラリセットボタンを押下することの要求は、シームレスなゲームプレイを阻害する不要な注意散漫となる。
【0004】
これらおよび他の考慮事項を鑑みると、今日のビデオゲーム開発者の多くは、モーション制御のためのゲームコントローラで使用され得るモーションセンサの可用性にかかわらず、モーション制御機能のサポートを欠くビデオゲームを開発することを選択する。本明細書で行われる開示は、これらおよび他の考慮事項に関連して提示される。
【図面の簡単な説明】
【0005】
詳細な説明を、添付の図面を参照して説明する。図において、参照番号の左端の数字は、参照番号が最初に現れる図を識別する。異なる図における同じ参照番号の使用は、類似または同一の構成要素または特徴を示す。
【0006】
【
図1】例示的なハンドヘルドコントローラの斜視図、ならびに例示的なハンドヘルドコントローラを2つの異なる状態、すなわち、可動制御部上の指の不在に基づいてモーション制御機能が非アクティブ化される第1の状態、および可動制御部上の指の存在に基づいてモーション制御機能がアクティブ化される第2の状態で保持しているユーザの正面図を示す。
【0007】
【
図2A】モーション制御機能が可動制御部の表面上の指の存在に基づいてアクティブ化されている間に、ユーザが
図1の例示的なハンドヘルドコントローラを第1のポーズから第2のポーズに移動させることと、モーション制御機能が、ビデオゲームなどのアプリケーションの態様を制御するためにどのように使用され得るかを示すためにハンドヘルドコントローラの2つのポーズの間のそれぞれのスクリーンレンダリングとを示す。
【0008】
【
図2B】モーション制御機能が可動制御部の表面上の指の不在に基づいて非アクティブ化される間に、ユーザが
図1の例示的なハンドヘルドコントローラを第2のポーズから第1のポーズに戻して移動させることと、ハンドヘルドコントローラの移動がビデオゲームなどのアプリケーションの態様を制御しないように、どのようにモーション制御機能が非アクティブ化され得るかを示すためにハンドヘルドコントローラの2つのポーズの間のそれぞれのスクリーンレンダリングと、を示す。
【0009】
【
図3】
図1の例示的なハンドヘルドコントローラの正面図、ならびに第1の位置と第2の位置との間で移動される可動制御部の例と、また、可動制御部に関連付けられたタッチセンサおよび/または可動制御部に関連付けられた圧力センサを使用してモーション制御機能の感度を調整するための例示的な技術とを示す。
【0010】
【
図4】ハンドヘルドコントローラの可動(または非可動)制御部の表面上の指の存在または非存在に基づいて、モーション制御機能をアクティブ化および非アクティブ化するための例示的なプロセスのフロー図である。
【0011】
【
図5】可動(または非可動)制御部に関連付けられたタッチセンサを使用して、指が可動(または非可動)制御部の表面と接触しているかどうかを検出するための例示的なプロセスのフロー図である。
【0012】
【
図6】ハンドヘルドコントローラの可動(または非可動)制御部に関連付けられた圧力センサの出力に基づいて、モーション制御機能の感度を調整するための例示的なプロセスのフロー図である。
【0013】
【
図7】ハンドヘルドコントローラの可動(または非可動)制御部に関連付けられたタッチセンサの出力に基づいて、モーション制御機能の感度を調整するための例示的なプロセスのフロー図である。
【0014】
【
図8】
図1のコントローラなどのハンドヘルドコントローラの例示的な構成要素、ならびにハンドヘルドコントローラが通信するように構成されるコンピューティングデバイスを例示する。
【発明を実施するための形態】
【0015】
本明細書に記載されるのは、とりわけ、ハンドヘルドコントローラのハウジングに含まれる可動制御部の表面に接触する指の検出、または検出の失敗に基づいて、ハンドヘルドコントローラのモーション制御機能をアクティブ化および非アクティブ化するための、ハンドヘルドコントローラを含む、技術およびシステムである。いくつかの事例では、本明細書に記載されるハンドヘルドコントローラは、コンピューティングデバイス(例えば、テレビ、オーディオシステム、パーソナルコンピューティングデバイス、ゲームコンソールなど)を制御するために使用して、(例えば、ビデオゲームプレイ、および/またはそれに類するものに参加するために)アプリケーションと相互作用することを可能にする。いくつかの実施形態では、これは、コンピューティングデバイス上で実行するビデオゲームアプリケーションなどのアプリケーションにデータを送信することを伴う。いくつかの実施形態では、ハンドヘルドコントローラは、埋め込みディスプレイを含むポータブルゲームデバイスの一部であり得、その場合、ポータブルデバイス(例えば、ポータブルゲームデバイス)は、ポータブルデバイスに統合されたハンドヘルドコントローラから入力を受信するアプリケーション(例えば、ビデオゲーム)を実行し得る。
【0016】
本明細書に記載のハンドヘルドコントローラは、1つ以上の制御部を含み得る。これらの制御部は、ハンドヘルドコントローラのハウジング上に少なくとも1つの可動制御部を含み得る。いくつかの実施形態では、可動制御部は、ハウジングの前面に設けられるが、ハウジングの任意の場所に配設することができる。可動制御部は、これらに限定されないが、ジョイスティック、方向パッド(Dパッド)、トラックボール、ボタン、または可動制御部を第1の位置から第2の位置に移動させる指によって作動されるように構成された任意の他のタイプの可動制御部を含み得る。
【0017】
ハンドヘルドコントローラは、前述の可動制御部に関連付けられたタッチセンサをさらに含み得る。タッチセンサは、ハンドヘルドコントローラの1つ以上のプロセッサに、可動制御部に対する指の近接度を示すタッチセンサデータを提供するように構成され得る。タッチセンサは、静電容量性タッチセンサ、抵抗性タッチセンサ、赤外線タッチセンサ、音響音波を利用してタッチセンサに対する指の近接度を検出するタッチセンサ、または任意の他のタイプのタッチセンサを含み得る。ハンドヘルドコントローラは、ハンドヘルドコントローラの移動を示すモーションセンサデータをプロセッサに提供するように構成されたモーションセンサをさらに含み得る。例えば、ユーザは、ハンドヘルドコントローラを空間内で(例えば、第1のポーズから第2のポーズに)移動させることができ、モーションセンサは、この移動を示すモーションセンサデータを生成することができる。
【0018】
モーション制御機能は、使用中(例えば、ゲームプレイ中)、指で可動制御部に触れ、その可動制御部から指を離すことによって、またはその逆によって、ハンドヘルドコントローラのユーザによってオンデマンドでアクティブ化(有効化)および非アクティブ化(無効化)することができる。モーション制御機能がアクティブ化されると、ハンドヘルドコントローラの論理は、モーションセンサデータ(モーションセンサによって提供される)をアプリケーション(例えば、ビデオゲーム)入力としてビデオゲームなどのアプリケーションに送信して、アプリケーションの態様を制御し得る。例えば、ユーザは、アプリケーションのカーソルの移動を制御し得る。別の例として、ユーザは、物理的環境内でハンドヘルドコントローラを移動させることによって(例えば、レーシングビデオゲームで仮想レースカーを操縦するためにハンドヘルドコントローラを左または右に傾斜させることによって)、アプリケーションの仮想物体の移動を制御してもよい。さらに別の例として、ユーザは、(例えば、一人称シューティングゲームにおいて)プレーヤ制御キャラクタの移動を制御してもよく、それによって、プレーヤ制御キャラクタによって見られるように、仮想世界のビューを表す仮想カメラが移動され得、ハンドヘルドコントローラの移動に基づいて、使用中(例えば、ゲームプレイ中)にディスプレイ上に提示されるシーンを変化させる。これらは、モーション制御機能を介して(例えば、ハンドヘルドコントローラの移動を介して)制御され得る、ビデオゲームを含むアプリケーションの単なる例示的な態様であり、本開示は、これらの特定の例に限定されない。
【0019】
使用中(例えば、ゲームプレイ中)にモーション制御機能をオンおよびオフに(例えば、アクティブ化状態から非アクティブ化状態へ)切り替えるために、ユーザは、指で可動制御部の表面に接触してもよい。例えば、ユーザは、指で可動制御部の表面に触れることができ、可動制御部に関連付けられたタッチセンサは、ユーザが可動制御部を作動(例えば、撓ませること、押下など)させていないときであっても、可動制御部上のユーザの指の存在を検出することができる。次いで、ハンドヘルド制御の論理は、タッチセンサによって提供されたタッチセンサデータに少なくとも部分的に基づいて、指が可動制御部の表面に接触しているかどうかを判定し得、この判定に基づいて、モーション制御機能をアクティブ化させることができる。モーション制御機能がアクティブ化されるとき、モーションセンサによって提供されるモーションセンサデータは、アプリケーションの態様を制御するためにアプリケーション入力(例えば、ビデオゲーム入力)としてアプリケーション(例えば、ビデオゲーム)に送信されてもよい。対照的に、モーション制御機能が非アクティブ化されるとき、モーションセンサデータは、アプリケーション入力としてアプリケーションに送信されない場合があり、モーションセンサデータは、まったく生成されない場合があり、またはモーションセンサデータは送信され得るが、モーションセンサデータを受信する構成要素によって無視され得る。モーション制御機能がアクティブ化されているにもかかわらず、モーションセンサデータがアプリケーションに送信されない場合があり得ることも理解されたい。
【0020】
可動制御部の表面上の指の存在/非存在に基づいてハンドヘルドコントローラのモーション制御機能をアクティブ化/非アクティブ化することによって、ユーザは、アプリケーション入力(例えば、ビデオゲーム入力)制御として倍増する可動制御部を使用して、使用中(例えば、ゲームプレイ中)にモーション制御入力をシームレスに提供することができる。すなわち、可動制御部は、使用中(例えば、ゲームプレイ中)に一次制御部として作動し得、可動制御部はまた、可動制御部の表面上の指の存在に基づいて、モーション制御機能をアクティブ化および非アクティブ化させるためのトグル制御部として機能し得る。マウスおよびキーボードを用いてパーソナルコンピュータ(PC)上でビデオゲームをプレイする経験と非常に類似しており、ユーザは、可動制御部の表面を指と接触させ、可動制御部の表面に接触する指で第1の方向にハンドヘルドコントローラを移動させることによって、仮想カメラまたはビデオゲームの仮想物体の移動を「ラチェット」することができ、次いで、可動制御部の表面から指を離し、指を離した状態で第2の反対方向にハンドヘルドコントローラを移動させ、必要に応じてこのコントローラの操作/移動を繰り返し、ラチェット方式で仮想カメラまたは仮想物体の移動を制御することができる。これは、ユーザがマウスをマウスパッドの表面を横切って第1の方向に移動させ、次にマウスを持ち上げて第2の反対方向にマウスを移動させ、次にマウスをマウスパッドに戻して置き、特定の(第1の)方向に移動を繰り返す方法に類似している。このよく知られたタイプのビデオゲーム入力は、ハンドヘルドコントローラにおけるモーション制御機能のユーザフレンドリーな実装を可能にする。
【0021】
本明細書ではまた、可動制御部に関連付けられたタッチセンサおよび/または可動制御部に関連付けられた圧力センサのいずれかまたは両方を使用して、モーション制御機能の感度を臨機応変に調整するための技術およびシステムも説明される。例えば、タッチセンサおよび/または圧力センサは、ユーザが可動制御部の表面から自身の指を少し持ち上げる(例えば、まだ閾値距離内にある可動制御部からある距離で指を空中停止することによって)、および/または可動制御部に様々な量の力を印加することによって(例えば、可動制御部を押下することによって)、アプリケーション(例えば、ビデオゲーム)のカーソル、仮想カメラ、または仮想物体の移動の量(または程度)を制御することを可能にし得る。これらのリアルタイムな制御機能は、ユーザがより正確なアプリケーション入力(例えば、ビデオゲーム入力)を提供すること、および/またはユーザのゲームプレイパフォーマンスを改善することを可能にし得る。
【0022】
図1は、例示的なハンドヘルドコントローラ100の斜視図、ならびに例示的なハンドヘルドコントローラ100を2つの異なる状態、すなわち、可動制御部の表面104上の指102の不在に基づいてモーション制御機能が非アクティブ化される第1の状態、および可動制御部の表面104上の指102の存在に基づいてモーション制御機能がアクティブ化される第2の状態で保持しているユーザの正面図を示す。
【0023】
図示されるように、ハンドヘルドコントローラ100は、ハウジング106を含む。ハウジング106は、前面108(1)、上面108(2)、前面108(1)の反対側の背面、および上面108(2)の反対側の底面を有する。前面108(1)は、場合によっては、ハンドヘルドコントローラ100を操作するユーザの1人または親指によって制御可能である1つ以上の前面制御部を含み得る。本明細書で使用される場合、「指」は、ユーザの手の任意の指(親指を含む)を意味することができる。したがって、本明細書で使用される際、「指」は、ユーザの人差し指、中指、薬指、小指、または親指のいずれかを含み得る。ユーザは、前面制御部の個々のものを操作するために任意の指を使用することができるが、
図1に示される例示的なコントローラに入力を提供する一般的な方法は、左親指または右親指を使用して前面制御部の個々のものを操作することによる。
【0024】
前面制御部は、1つ以上のトラックパッド、トラックボール、ジョイスティック、ボタン、方向パッド(Dパッド)などを含み得るが、これらに限定されない。
図1の例では、ハウジング106の前面108(1)は、Dパッドの輪郭を含むトラックパッド110を含む。このようにして、トラックパッド110は、全方向Dパッドとして使用され得、ユーザの左親指によって制御可能である。トラックパッド110は、Dパッドの輪郭の上、下、左、および右に対応する位置での作動ボタン/スイッチを含んでもよく、または含まなくてもよい。前面108(1)はまた、第1の(例えば、左)ジョイスティック112(1)および第2の(例えば、右)ジョイスティック112(2)を含んでもよい。第1のジョイスティック112(1)は、ユーザの左親指によって制御可能であってもよく、一方、第2のジョイスティック112(2)は、ユーザの右親指によって制御可能であってもよい。加えて、前面108(1)は、ユーザの右親指によって制御可能な押し下げ可能なボタン114(例えば、X、Y、A、およびB)を含む。この例では、ハンドヘルドコントローラ100はまた、ユーザが、ユーザの右手および左手をそれぞれ介してコントローラ100を保持することができる左グリップ116(1)および右グリップ116(2)も含む。
【0025】
一方、上面108(2)は、1つ以上の上面制御部を含んでもよい。図示された例において、コントローラ100は、左上面制御部118(1)と、右上面制御部118(2)とを含む。左上面制御部118(1)は、ユーザの左指(例えば、人差し指)によって操作可能であってもよく、一方、右上面制御部118(2)は、ユーザの右指(例えば、人差し指)によって操作可能であってもよい。上面制御部118(1)および118(2)は、「バンパ」と呼ばれることがある。上面制御部は、ユーザの指(例えば、中指)によって操作可能であり得る1つ以上のトリガ120をさらに含んでもよい。場合によっては、上面制御部118および/または120に類似する制御部が、ハンドヘルドコントローラ100の背面に設けられてもよい。追加の制御部は、1つ以上のパドル、1つ以上の追加のトラックパッド、または任意の他のタイプの入力制御部など、ハンドヘルドコントローラ100の背面にも提供され得る。コントローラの形状は例示的であり、異なる形状(例えば、矩形、従来のテレビリモコンと非常に類似、円形など)を有するコントローラを、例示的なハンドヘルドコントローラ100に関して説明されるものと少なくともいくつかの類似した表面を有するハンドヘルドコントローラ100に使用することができることを理解されたい。加えて、例示的な前面制御部および上面制御部は、異なるタイプの制御部で置き換えられ得ることを理解されたい。例えば、第2の(例えば、右)ジョイスティック112(2)は、Dパッド、ボタン、トラックボールなどで置き換えられ得、押し下げ可能なボタン114は、Dパッド、ジョイスティック、トラックボールなどで置き換えられ得る。
【0026】
第2の(例えば、右)ジョイスティック112(2)は、本明細書に記載されるような「可動制御部」の例であり、これは、使用中(例えば、ゲームプレイ中)にモーション制御機能をオンおよびオフに切り替えるために利用することができる。ジョイスティック以外の他のタイプの制御部は、モーション制御機能のオン/オフを切り替えるために使用可能なそのような可動制御部のために企図されているが、様々な実施形態は、そのような可動制御部の例として、ジョイスティック112(2)を参照して本明細書に記載されている。したがって、本明細書における「ジョイスティック112(2)」への任意の参照は、Dパッド、トラックボール、押し下げ可能なボタンなどの他のタイプの可動制御部と互換的に使用され得ることを理解されたい。第2の(例えば、右)ジョイスティック112(2)をモーション制御作動機構として使用することは、第2の(例えば、右)ジョイスティック112(2)が、しばしば1人称シューティングビデオゲームの照準制御(「ルック」制御と呼ばれることがある)に使用され、ユーザの指102が、ユーザの側で(精神的および物理的に)最小限の努力で、ジョイスティック112(2)上に容易に配置され得、またはジョイスティック112(2)から離され得るという意味で、ユーザにとって好都合である。必要に応じて、ジョイスティック112(2)を操作するために、および/またはモーション制御機能のオンおよびオフを切り替えるために、ジョイスティック112(2)上にすばやく配置することができるように、ユーザが右親指を右ジョイスティック112(2)の近くに維持することは、多かれ少なかれ第2の性質である。ジョイスティック112(2)は前面108(1)上に設けられているが、ハウジング106上の任意の場所に配設される可動制御部は、指が便利に位置付けられる上面108(2)または背面に設けられた可動制御部などのモーション制御機能のオン/オフを切り替えるために使用され得ることも理解されたい。非可動制御部を利用して、使用中(例えば、ゲームプレイ中)にモーション制御機能のオンおよびオフを切り替えることができることも理解されたい。例えば、第2の(例えば、右)ジョイスティック112(2)は、複数の位置の間を移動しないタッチ検知面(例えば、トラックパッド)で置き換えることができる。この非可動静止制御部は、使用中(例えば、ゲームプレイ中)にモーション制御機能のオンまたはオフを切り替えるかどうかを決定するために、非可動制御部の表面上の指の存在または不存在を検出するためのタッチセンサと関連付けられ得る。
【0027】
図1に示されるように、ユーザは、指102(例えば、右親指)でジョイスティック112(2)の表面104(例えば、遠位面)に触れることによって、モーション制御機能をアクティブ化(または有効化)させることができ、ユーザは、指102をジョイスティック112(2)の表面104から離すことによって、またはその逆によって、モーション制御機能を非アクティブ化(または無効化)させることができる。すなわち、モーション制御機能は、ジョイスティック112(2)の「タッチで」アクティブ化され得るか、またはジョイスティック112(2)の「タッチで」非アクティブ化され得る。本明細書に記載される例の多くは、
図1の例に示されるように、モーション制御機能がジョイスティック112(2)のタッチでアクティブ化される構成を対象としており、それによって、
図1の第2の状態に示されるように、ジョイスティック112(2)の表面104に触れる指がモーション制御機能をアクティブ化させる。
【0028】
ジョイスティック112(2)は、それと関連付けられた(例えば、表面104の下のジョイスティック112(2)の内面に取り付けられた)タッチセンサを有してもよい。タッチセンサは、ジョイスティック112(2)に対する指102の近接度を検出するように構成される。例えば、タッチセンサは、ハンドヘルドコントローラ100の1つ以上のプロセッサに、ジョイスティック112(2)に対する指102の近接度を示すタッチセンサデータを提供してもよい。いくつかの実施形態では、ジョイスティック112(2)に関連付けられたタッチセンサは、ジョイスティック112(2)に対する指102の近接度に基づいて静電容量値を測定するように構成された静電容量センサを備えてもよい。したがって、指102がジョイスティック112(2)に近づいて移動するとき、タッチセンサは、出力として、比較的高い静電容量値を提供し得る。指102がジョイスティック112(2)から遠くに移動すると、タッチセンサは、出力として、比較的低い静電容量値を提供し得る。このようにして、タッチセンサによって提供されたタッチセンサデータに基づいて、ハンドヘルドコントローラ100の論理は、指102がジョイスティック112(2)の表面104に接触しているかどうか、およびいつ接触しているかを、合理的に高い信頼性で判定することができる。閾値は、(タッチセンサデータに基づいて)デジタル化された近接値が閾値を超える場合、指102が表面104に接触していると判定することなどによって、指の接触イベントを判定するために利用され得る。いくつかの事例では、ジョイスティック112(2)に関連付けられたタッチセンサは、表面104(例えば、表面積)の一部または実質的に全てにわたる1つ以上の容量性パッドを備える。
【0029】
第1の状態(
図1に示す)では、指102は、ジョイスティック112(2)の横にあるが、指102は、ジョイスティック112(2)の表面104の上に空中停止していないか、またはその表面に接触していない。したがって、第1の状態では、タッチセンサによって提供されるタッチセンサデータは、指102がジョイスティック112(2)の表面104に接触していないことを示し得る。一般に、ハンドヘルドコントローラ100のモーションセンサ(以下により詳細に説明する)は、ハンドヘルドコントローラ100の移動に基づいてモーションセンサデータを提供し得るが、第1の状態では、指102がジョイスティック112(2)の表面104に接触していないことを示すタッチセンサデータに基づいて、ハンドヘルドコントローラ100のモーション制御機能は、非アクティブ化(または無効化)され得、これは、モーションセンサデータがアプリケーション入力(例えば、ビデオゲーム入力)としてアプリケーション(例えば、ビデオゲーム)に送信され得ないことを意味する。このようにして、モーション制御機能が非アクティブ化されると、ハンドヘルドコントローラ100の移動は、アプリケーションに何ら影響を及ぼさない(例えば、モーションセンサデータは、アプリケーションの態様を制御するためのアプリケーション入力として使用されない)。いくつかの実施形態では、モーション制御機能が非アクティブ化されると、モーションセンサは、指102がジョイスティック112(2)の表面104に接触しない限り、および接触するまで、モーションセンサに電力を供給することに失敗することなどによって、ハンドヘルドコントローラ100の移動にかかわらず、モーションセンサデータを生成さえしない場合がある。他の実施形態では、モーションセンサデータは、モーション制御機能が非アクティブ化されるときに依然として生成される(場合によっては受信構成要素に送信される)が、モーションセンサデータは、ビデオゲームなどの実行アプリケーションの態様の制御のためにそれを使用するという点で無視され得る。後者のシナリオでは、モーションセンサデータは、ハンドヘルドコントローラ100を呼び起こすためにモーションを使用する電力管理論理、または他の非アプリケーション入力(例えば、非ビデオゲーム入力)目的などの他の目的のために依然として使用され得る。
【0030】
第2の状態(
図1に示される)では、ユーザは、指102がジョイスティック112(2)の表面104と接触するように、指102(例えば、右親指)を位置付けている。タッチセンサによって提供されるタッチセンサデータは、第2の状態でジョイスティック112(2)の表面104に接触する指102を示してもよく、その結果、ハンドヘルドコントローラ100のモーション制御機能をアクティブ化(または有効化)してもよい。モーション制御機能が第2の状態でアクティブ化されると、ハンドヘルドコントローラ100のモーションセンサは、モーションセンサデータをアプリケーション(例えば、ビデオゲーム)にアプリケーション入力(例えば、ビデオゲーム入力)として送信して、アプリケーションの態様を制御してもよい。ビデオゲームの形態でのアプリケーションの態様の制御の例を
図2Aおよび
図2Bに示す。
【0031】
図2Aは、ジョイスティック112(2)の表面104を指102と接触させながら、
図1の例示的なハンドヘルドコントローラ100を第1のポーズ200(1)から第2のポーズ200(2)に移動させているユーザを示す。このようにして、ハンドヘルドコントローラ100の移動中にモーション制御機能がアクティブ化される。
図2Aはまた、2つのポーズ200(1)および200(2)の間のディスプレイ上に提示され得るそれぞれのスクリーンレンダリング202(1)および202(2)を示す。これは、モーション制御機能を使用してビデオゲームの態様を制御することができる方法を示す。
図2Aの例では、ハンドヘルドコントローラ100のモーション制御機能は、ビデオゲーム(例えば、一人称シューティングゲーム)の仮想カメラの移動を制御するために使用可能である。このシナリオでは、仮想カメラの移動は、ビデオゲームのプレーヤ制御キャラクタに見られるように、仮想カメラが仮想世界のビューを表すため、ディスプレイ上に提示されるシーンを変化させる。第1のスクリーンレンダリング202(1)では、ビデオゲームの仮想カメラは、仮想建物204がシーン内でスクリーンレンダリング202(1)の右側に向かって見えるように配向される。ユーザは、第1のスクリーンレンダリング202(1)がディスプレイ上に提示されるときに、第1のポーズ200(1)でハンドヘルドコントローラ100を保持している。
【0032】
指102がジョイスティック112(2)の表面104に触れると、ユーザがハンドヘルドコントローラ100を第1のポーズ200(1)から第2のポーズ200(2)に移動させるとすぐに(例えば、コントローラ100を右方向モーションに移動することによって)、コントローラ100のモーションセンサは、この移動を示すモーションセンサデータを生成する。ユーザの指102が、対応するタッチセンサによって検出されるように、ジョイスティック112(2)の表面104に接触しているため、モーション制御機能がアクティブ化され、この例では、このモーションセンサデータが、ビデオゲーム入力としてビデオゲームに送信され、仮想カメラの移動を制御する。
図2Aの例示的な例では、ハンドヘルドコントローラ100の右方向の移動は、仮想カメラの右方向の移動にマッピングされる。コントローラ100の第1のポーズ200(1)から第2のポーズ200(2)への移動が主に30度の回転移動であるシナリオを検討すると、ビデオゲームの仮想カメラは、比例した量で移動されてもよい(例えば、仮想カメラは、約30度の量で、またはハンドヘルドコントローラ100の移動量に比例する別の量で、右方向に回転されてもよい(例えば、コントローラ100のモーションセンサによって検出された移動量にスケールファクターを適用することによって)。第2のスクリーンレンダリング202(2)は、仮想建物204が、仮想カメラの右方向の移動により、第2のスクリーンレンダリング202(2)の視野の中心にあるため、シーンがハンドヘルドコントローラ100の検出された移動に基づいてどのように変化するかを示す。本明細書に記載されるように、ビデオゲームの他の態様は、例えば、仮想物体の移動を制御することなどによって(例えば、仮想レースカーを操舵することによって)、ハンドヘルドコントローラ100の移動に基づいて制御することができる。
【0033】
図2Bを
図2Aと対比すると、ユーザの指102がジョイスティック112(2)の表面104に接触していない間にユーザがハンドヘルドコントローラ100を移動させる場合、モーション制御機能は、コントローラ100の移動中に非アクティブ化され、結果として、第3のスクリーンレンダリング202(3)および第4のスクリーンレンダリング202(4)は、ハンドヘルドコントローラ100の2つのポーズ200(2)および200(1)の間の同じシーンを提示する場合がある。これは、
図2Bの例では、モーション制御機能は、アクティブ化されると、ビデオゲームの仮想カメラの移動を制御するからであり、
図2Bでは、モーション制御機能は非アクティブ化されているため、ハンドヘルドコントローラ100の移動にかかわらず、ビデオゲームの仮想カメラは移動しない。具体的には、
図2Bに示されるように、ユーザは、指でジョイスティック112(2)に触れることなく、ハンドヘルドコントローラ100を第2のポーズ200(2)から第1のポーズ200(1)に(例えば、コントローラ100を左方向のモーションに移動することによって)戻してもよい。コントローラ100のモーションセンサは、ハンドヘルドコントローラ100のこの移動を示すモーションセンサデータを生成し得るが、ユーザの指102は、対応するタッチセンサによって検出されるように、ジョイスティック112(2)の表面104に接触していないため、モーション制御機能は非アクティブ化され、これは、モーションセンサによって提供されるモーションセンサデータが無視され得ることを意味する(例えば、モーションセンサデータは、ビデオゲーム入力としてビデオゲームに送信されない、全く生成されない、または送信されるが無視される)。
【0034】
したがって、
図2Aと
図2Bとの間で、「ラチェット」機構が図示され、それによって、ユーザは、例えば、
図2Aに示されるように、ジョイスティック112(2)の表面104に触れながら、ビデオゲームの仮想カメラを回転させ得、次いで、指102をジョイスティック112(2)から離し得、
図2Bに示されるように、ハンドヘルドコントローラ100を仮想カメラに影響を与えることなく移動させ得、次いで、ユーザは、特定の方向における仮想カメラの移動を繰り返すために、ハンドヘルドコントローラ100を移動させながら、再びジョイスティック112(2)の表面104に触れてもよい。この技術を使用して、ユーザは、例えば、(
図2Aおよび
図2Bに示されるように)ジョイスティック112(2)の表面104から指102を反復的に持ち上げながら、ハンドヘルドコントローラ100を左右方向に「ラチェット」することによって、360度回転させることができる。このようにして、ユーザは、本明細書に記載されるラチェットコントローラ100の移動を使用して、ビデオゲームの仮想世界内の任意のおよびすべての方向を見ることができる。このスタイルのユーザ入力は、1人称シューティングゲームなどのビデオゲームをプレイするためにマウスやキーボードを使用することに慣れているPCゲーマーによく知られている。
【0035】
図3は、
図1の例示的なハンドヘルドコントローラ100の正面図を部分的に示す。
図3のハンドヘルドコントローラ100の正面図では、ハウジング106の前面108(1)は、ハンドヘルドコントローラ100の中心の左側の第1の(例えば、左の)領域300(1)およびハンドヘルドコントローラ100の中心の右側の第2の(例えば、右の)領域300(2)を参照して示される。
図3の例では、ジョイスティック112(2)は、第2の領域300(2)内のハウジング106の前面108(1)上(例えば、ハンドヘルドコントローラ100の右半分上)に配設される。これは、モーション制御機能のオン/オフを切り替えるための可動制御が配置され得る位置の単なる例であり、本明細書に記載のモーション制御機能をアクティブ化/非アクティブ化させるために、ジョイスティック112(2)の代わりに任意の他のタイプの可動制御部を実装することができ、そのような可動制御部は、第1の領域300(1)内の前面108(1)上(例えば、ハンドヘルドコントローラ100の左半分上)、または前面108(1)以外のハンドヘルドコントローラ100の異なる表面上など、ハウジング106上の任意の場所に配置され得ることを理解されたい。
【0036】
図3はまた、断面A-Aに沿って取られたジョイスティック112(2)の断面
図302(1)~(4)を示す。断面
図302(1)および302(2)は、ジョイスティック112(2)が第1の位置と第2の位置との間でどのように移動可能であるかを示す。
図3の断面
図302(1)では、ジョイスティック112(2)は、第1の位置304(1)(例えば、直立位置)と第2の位置304(2)(例えば、偏向位置)との間で偏向可能であるように示されている。これは、ユーザが指102を使用して、ジョイスティック112(2)を中央から任意の方向(例えば、上、下、左、右、またはその間の任意の方向)に偏向させることによって達成され得る。このようにしてジョイスティック112(2)を作動させることに応答して、ハンドヘルドコントローラ100の論理は、作動データをアプリケーション入力(例えば、ビデオゲーム入力)として実行中のアプリケーション(例えば、ビデオゲーム)に送信し得る。この作動データは、モーション制御機能がアクティブ化するときにモーションセンサデータによって制御されるビデオゲームの同じ態様を制御し得る。あるいは、作動データは、モーション制御機能がアクティブ化されたときにモーションセンサデータによって制御されるアプリケーション(例えば、ビデオゲーム)の態様とは異なる態様のアプリケーション(例えば、ビデオゲーム)を制御してもよい。ジョイスティック112(2)の作動およびハンドヘルドコントローラ100の移動がアプリケーション(例えば、ビデオゲーム)の共通の態様を制御する前者の例では、ジョイスティック112(2)は全体の移動を制御してもよく、一方で、ハンドヘルドコントローラ100の移動は微細な移動を制御してもよく、逆もまた同様である。例えば、ユーザは、ジョイスティック112(2)を異なる方向に偏向させて、一人称シューティングゲームの仮想カメラを制御してもよい(例えば、プレーヤ制御キャラクタを所望の方向に向ける)。このシナリオでは、ジョイスティックの偏向は、ビデオゲームの仮想カメラの移動を引き起こす(例えば、プレーヤ制御キャラクタが仮想世界内のどこを見ているかを変更する)。続いて、ユーザは、(それがまだアクティブ化されていない場合に)モーション制御機能をアクティブ化し得、(例えば、武器を照準するために)仮想カメラの向きに微調整を行うために、モーション制御機能がアクティブ化された状態でハンドヘルドコントローラ100を移動し得る。この例示的なシナリオでは、ビデオゲームの同じ態様は、2つの異なる入力機構で制御可能であり、第1の入力機構は、ジョイスティック112(2)の偏向であり、第2の入力機構は、モーション制御機能がアクティブ化された状態で、コントローラ100のモーションセンサによって検出されるように、ハンドヘルドコントローラ100の移動である。他の例では、ジョイスティック112(2)の作動は、異なる武器、またはビデオゲームのいくつかの他の態様を選択することなど、ビデオゲームの異なる態様を制御し得る。
【0037】
図3の断面
図302(2)は、ジョイスティック112(2)が示す可能性のある別のタイプの移動を示す。この場合、ジョイスティック112は、第1の位置306(1)(例えば、伸長位置)と第2の位置306(2)(例えば、押下位置)との間で押し下げ可能であるように示される。これは、ユーザがハウジング106の前面108(1)に直交する方向にジョイスティック112(2)を押すことによって達成され得る。断面
図302(1)と302(2)との間のいずれかの作動シナリオでは、ジョイスティック112(2)の移動は、スイッチ、ポテンショメータ、またはジョイスティック112(2)の作動を検出することができる任意の類似の機構によって検出され得る。ジョイスティック112(2)のこの移動は、アプリケーション(例えば、ビデオゲーム)のいくつかの態様を制御するために使用可能な作動データに転換または変換することができる。
【0038】
断面
図302(3)および302(4)を参照して、モーション制御機能の感度を調整するための例示的な技術を示す。断面
図302(3)および302(4)の両方において、タッチセンサ308は、指102がジョイスティック112(2)に接触することができるジョイスティック112(2)の表面104(例えば、遠位面)の下にタッチセンサ308が取り付けられ得るという点で、ジョイスティック112(2)に関連付けられる。いくつかの実施形態では、タッチセンサ308は、遠位面(例えば、表面104)の下にあるジョイスティック112(2)の内面に接着または別様に取り付けられた静電容量センサ(例えば、静電容量パッド)である。いくつかの実施形態では、静電容量パッドは、ジョイスティック112(2)の外面104に接着されてもよく、またはジョイスティック112(2)の遠位部分内のどこかに埋め込まれてもよい。タッチセンサ308(例えば、静電容量センサ)は、フレックス回路310を介してハンドヘルドコントローラ100内のプリント回路基板(PCB)上の適切な電子機器(例えば、1つ以上のプロセッサ)に電気的に結合されてもよい。いくつかの実施形態では、物理的なフレックス回路310の代わりに、無線電子結合を利用してもよい。フレックス回路310は、ハンドヘルドコントローラ100の電子機器への堅牢な電子接続を提供し、概して干渉を受けない。静電容量型のタッチセンサ308は、本明細書では一例として説明されるが、他の事例では、タッチセンサ308は、抵抗性タッチセンサ、赤外線タッチセンサ、指102の近接度を検出するために音響音波を利用するタッチセンサ、または任意の他のタイプのタッチセンサなどの他のタッチ検知技術に基づくことができる。
【0039】
断面
図302(3)に示されるように、ユーザの指102(例えば、親指)は、ジョイスティック112(2)の表面104から距離Dで離間され得、タッチセンサ308は、この近接した指102を示すタッチセンサデータを生成し得る。例えば、静電容量ベースの検知を利用する実施態様では、タッチセンサ308は、電極(例えば、トランスキャパシタ型センサの送信機電極および受信機電極)を含み得、電極が、タッチセンサデータに転換され得る電極における静電容量変化を測定するように構成されるように、電圧を電極に印加することができる。タッチセンサ308の電極における静電容量変化は、電極に近接している物体(指102など)によって影響され得る。タッチセンサ308自体の感度は、指102がジョイスティック112(2)に近接しているが接触していない状態で、タッチセンサ308によって検出可能であるように(例えば、製造時に)調整することができる。この場合、タッチセンサ308によって提供されるタッチセンサデータは、ジョイスティック112(2)の表面104に対する指102の近接度を示し得るデジタル化された近接値(例えば、デジタル化された静電容量値)に変換することができる。例えば、指102がジョイスティック112(2)の表面104に触れている場合、これは、閾値を超えるデジタル化された近接値によって示され得る。指102が、断面
図302(3)に示されるように、表面104に近いが触れていない場合、これは、指102が表面104に接触することを示す閾値を下回る値の範囲内にあるデジタル化された近接値によって示され得る。
【0040】
第1の感度調整技術を例示するために、ユーザは、自身の指102でジョイスティック112(2)の表面104に触れてもよく、本明細書に記載されるように、モーション制御機能は、タッチセンサ308を介してジョイスティック112(2)とのこの接触を検出した結果としてアクティブ化されてもよい。この状態(例えば、指102がジョイスティック112(2)の表面104に接触しているとき)では、モーション制御機能は、カーソルの第1の移動量、仮想カメラの第1の移動量、またはアプリケーション(例えば、ビデオゲーム)の仮想物体の第1の移動量に対応する第1の感度レベルに設定され得る。例えば、ユーザが自身の指102でジョイスティック112(2)の表面104に触れている間、右方向へのハンドヘルドコントローラ100の30度の回転は、カーソル、仮想カメラ、またはアプリケーション(例えば、ビデオゲーム)の仮想物体の30度の回転に対応し得る。
【0041】
続いて、タッチセンサ308によって提供されたタッチセンサデータは、指102がジョイスティック112(2)の表面104との接触を停止し、ジョイスティック112(2)の表面104から距離Dだけ離間したままであることを示し得、ここで、Dは閾値距離未満である。このようにして指102をジョイスティック112(2)から持ち上げることに応答して、モーション制御機能の感度レベルは、カーソルの第2の移動量、仮想カメラの第2の移動量、またはアプリケーション(例えば、ビデオゲーム)の仮想物体の第2の移動量に対応する第2の感度レベルに調整することができる。例えば、指102が表面104と接触している状態からジョイスティック112(2)の表面104から距離Dだけ離間している状態に変化することに基づいて、ハンドヘルドコントローラ100の右方向への30度の回転は、カーソル、仮想カメラ、またはアプリケーション(例えば、ビデオゲーム)の仮想物体の15度の回転の減少に対応し得る。言い換えれば、ユーザは、ジョイスティック112(2)に触れて、モーション制御機能をアクティブ化することができ、次いで、ユーザは、閾値距離未満の量だけ、ジョイスティック112(2)から指を持ち上げることによって、モーション制御機能の感度を調整することができる。指102を、この閾値距離を超える表面104からの距離まで移動させることは、モーション制御機能を非アクティブ化し得、一方で、指102を、この閾値距離未満である表面104からの距離に維持することは、モーション制御機能を、低減された感度レベルでアクティブ化したままにし得る。したがって、ユーザは、指102をジョイスティック112(2)に近づけて、またはジョイスティックから遠ざけて移動することで、リアルタイムで感度を(上または下に)調整することができる。言及されるように、この実施形態では、指102が閾値距離を超えて移動する場合、閾値距離を監視して、モーション制御機能を非アクティブ化してもよい。閾値距離を超えて移動した後、指102が再びジョイスティック112(2)から閾値距離内で移動するが、表面104に接触していない場合、モーション制御機能のアクティブ化は、タッチセンサ308によって検出されるように、指102がジョイスティックの表面104に接触することに基づき得るので、モーション制御機能はアクティブ化されない場合がある。
【0042】
モーション制御機能の感度を調整する別の方法を断面
図302(4)に示す。この例では、圧力センサ312は、圧力センサ312がジョイスティック112(2)の下に位置付けられるハウジング106内の構造の平坦面上に取り付けられるとの理由で、ジョイスティック112(2)に関連付けられ得る。圧力センサ312の例は、力検知抵抗器(FSR)であるが、圧力センサ312のために、圧電センサ、ひずみゲージなどの他のタイプの圧力検知機構を利用することができる。したがって、圧力センサ312は、例えば、ジョイスティック112(2)が提供されるハウジング106の前面108(1)(または別の表面)に直交する方向で表面104上で指102を押し下げることなどによって、ジョイスティック112(2)に印加された力の量に対応する抵抗値の形態の力データなどの力データを測定するように構成される。FSRの形態の圧力センサ312は、空間によって分離された複数の基板(例えば、伝導性材料の基板および抵抗膜)を含み得る。FSRは、ジョイスティック112(2)上のプレス(測定された抵抗値)を、モーション制御機能の感度を調整するために使用可能なデジタル化されたFSR値に転換することができる。例えば、ユーザが自身の指102でジョイスティック112(2)の表面104に触れている間、ユーザは、ジョイスティック112(2)にほとんどまたはまったく圧力を印加していなくてもよく、モーション制御機能の感度レベルは、右方向へのハンドヘルドコントローラ100の30度の回転が、カーソル、仮想カメラ、またはアプリケーション(例えば、ビデオゲーム)の仮想物体の30度の回転に対応し得るようにしてもよい。
【0043】
その後、圧力センサ312によって提供される力データは、指102が、ジョイスティック112(2)を押すことなくジョイスティック112(2)の表面104に接触する状態から、ジョイスティック112(2)に識別可能な量の力を印加する状態に変化したことを示し得る。FSRは、少量のノイズを示す傾向がある(例えば、FSRに何も押されていない場合でも、それらは正の抵抗値を出力する傾向がある)ため、ハンドヘルドコントローラ100の論理は、FSRの形態で圧力センサ312の「ノイズフロア」の上の閾値を監視し、ユーザがジョイスティック112(2)を押圧したときを判定するように構成され得る。したがって、閾値FSR値を超えるFSR値の場合、論理は、FSR応答曲線上に示されるように、ユーザがFSR出力とともに変化する力の量でジョイスティック112(2)を押圧していると判定し得る。したがって、ユーザがジョイスティック112(2)を押圧することに応答して、モーション制御機能の感度レベルは、カーソルの第2の移動量、仮想カメラの第2の移動量、またはアプリケーション(例えば、ビデオゲーム)の仮想物体の第2の移動量に対応する第2の感度レベルに調整することができる。例えば、指102が、ジョイスティック112(2)を押圧することなく表面104と接触している状態から、識別可能な量の力でジョイスティック112(2)を押圧する状態に変化していることに基づいて、右方向へのハンドヘルドコントローラ100の30度の回転は、カーソル、仮想カメラ、またはアプリケーション(例えば、ビデオゲーム)の仮想物体の15度の回転の減少に対応し得る。言い換えれば、ユーザは、ジョイスティック112(2)に触れて、モーション制御機能をアクティブ化させることができ、次いで、ジョイスティック112(2)をより強く押圧することによって、モーション制御機能の感度を調整することができる。
【0044】
タッチセンサ308と同様に、圧力センサ312は、別のフレックス回路を介してなど、ハンドヘルドコントローラ100のハウジング106内のPCB上の電子機器に電気的に結合され得る。このようにして、圧力センサ312は、力データ(例えば、抵抗値)をハンドヘルドコントローラ100のプロセッサに提供することができ、これは、本明細書に記載される技術に従って、ハンドヘルドコントローラ100の論理によってデジタル化および解釈され得る。
【0045】
本明細書に記載されているプロセスは、論理的なフロー図の集合として例示されており、ハードウェア、ソフトウェア、ファームウェア、またはそれらの組み合わせ(本明細書では、「ロジック」と呼ばれる)で実装され得る一連の動作を表す。ソフトウェアの文脈では、ブロックは、コンピュータ実行可能命令を表し、コンピュータ実行可能命令は、1つ以上のプロセッサによって実行されるとき、列挙された操作を実施する。一般に、コンピュータ実行可能命令は、特定の機能を実行するか、または特定の抽象データ型を実装するルーチン、プログラム、物体、構成要素、データ構造などを含む。操作が記載される順序は、限定として解釈されることを意図するものではなく、任意のいくつかの記載されたブロックは、プロセスを実装するために任意の順序でおよび/または並行して組み合わされ得る。
【0046】
図4は、ハンドヘルドコントローラ100の可動(または非可動)制御部の表面上の指の存在または不在に基づいて、モーション制御機能をアクティブ化および非アクティブ化するための例示的なプロセス400のフロー図である。考察を目的として、プロセス400は、以前の図を参照して説明される。
【0047】
402において、ハンドヘルドコントローラ100のモーション制御機能は、非アクティブ化されてもよい。これは、ハンドヘルドコントローラ100が初めて電源を入れるときなど、ハンドヘルドコントローラ100の初期状態を表し得る。例示的なプロセス400では、これはまた、ハンドヘルドコントローラ100のハウジング106に設けられた可動制御部(例えば、ジョイスティック112(2))の表面104上に指102が存在しないことに基づいてもよい。すなわち、モーション制御機能は、ユーザが可動制御部の表面104に触れていないときに非アクティブ化(または無効化)されてもよい。いくつかの実施形態では、モーション制御機能は、ハンドヘルドコントローラ100のハウジング106上に設けられた非可動制御部(例えば、トラックパッド)の表面上の指102の不存在に基づいて非アクティブ化され得る。サブブロック404および406によって示されるように、追加の操作は、モーション制御機能が非アクティブ化された(または無効化された)状態でブロック402で実行され得る。
【0048】
404では、ハンドヘルドコントローラ100の1つ以上のプロセッサは、ハンドヘルドコントローラ100の移動に応答してハンドヘルドコントローラ100のモーションセンサからのモーションセンサデータを受信し得る。例えば、モーションセンサ(例えば、ジャイロスコープ、加速度計、それらの組み合わせなど)は、ハンドヘルドコントローラ100の移動を示すモーションセンサデータをプロセッサに提供するように構成され得る。これは、
図8を参照して以下でより詳細に説明される。
【0049】
サブブロック406では、ハンドヘルドコントローラ100の論理は、モーションセンサデータをアプリケーション(例えば、ビデオゲーム)にアプリケーション入力(例えば、ビデオゲーム入力)として送信することを控え得る。すなわち、ブロック402でモーション制御機能が非アクティブ化されるとき、ハンドヘルドコントローラ100のモーションセンサによって生成されたモーションセンサデータは無視され得る。いくつかの実施形態では、モーションセンサは、モーション制御機能を無効化するまたは非アクティブ化する手段としてモーションセンサへの電源を切ることなどによって、ブロック402において完全に無効化されてもよい。いくつかの実施形態では、モーションセンサデータは送信され得るが、受信端では無視され得る。
【0050】
408では、ハンドヘルドコントローラ100の論理は、可動(または非可動)制御部と関連付けられたタッチセンサによって提供されたタッチセンサデータに少なくとも部分的に基づいて、指が可動(または非可動)制御部の表面(例えば、遠位面)に接触しているかどうかを判定し得る。例えば、ジョイスティック112(2)に実装されたタッチセンサ308は、ブロック408において、ジョイスティック112(2)の表面104に接触する指102を示すタッチセンサデータを生成し得る。ブロック408で指が可動(または非可動)制御部の表面に接触していないと判定された場合、プロセス400は、ブロック408からブロック402に戻る「いいえ」ルートに従い得、モーション制御機能は非アクティブ化(無効化)されたままである。ブロック408では、指102が可動(または非可動)制御部の表面に接触していると判定された場合、プロセス400は、ブロック408からブロック410への「はい」ルートに従い得る。
【0051】
410では、ハンドヘルドコントローラ100の論理は、モーション制御機能をアクティブ化し得、それによって、モーションセンサデータは、アプリケーション入力(例えば、ビデオゲーム入力)としてアプリケーション(例えば、ビデオゲーム)に送信される。これは、サブブロック412~418で示されている。
【0052】
サブブロック412では、ハンドヘルドコントローラ100の1つ以上のプロセッサは、ハンドヘルドコントローラ100の移動に応答してハンドヘルドコントローラ100のモーションセンサからのモーションセンサデータを受信し得る。例えば、ユーザは、ブロック408で判定されるように、指102が可動(または非可動)制御部の表面104に接触している間に、
図2Aに示されるように、ハンドヘルドコントローラ100を右方向のモーションに移動させ得る。
【0053】
サブブロック414では、ハンドヘルドコントローラ100の論理は、アプリケーションの態様を制御するためのアプリケーション入力(例えば、ビデオゲーム入力)として、モーションセンサデータをビデオゲームなどのアプリケーションに送信し得る。再び、モーションセンサデータをアプリケーションに送信することは、ブロック408において、指が可動(または非可動)制御部の表面(例えば、ジョイスティック112(2)の表面104)に接触していると判定することに少なくとも部分的に基づく。さもなければ、指の接触が停止されると、モーション制御機能は非アクティブ化される。
【0054】
サブブロック415では、モーションセンサデータを、アプリケーション(例えば、ビデオゲーム)のカーソル(例えば、ポインタ)の移動を制御するために使用してもよい。例えば、ユーザは、ハンドヘルドコントローラ100を移動させて、コントローラ100が物理空間の周りに移動されるときにスクリーンの周りを移動するスクリーン上のポインタの移動を制御することができる。
【0055】
サブブロック416では、モーションセンサデータを使用して、アプリケーション(例えば、ビデオゲーム)の仮想カメラの移動を制御してもよい。例えば、ユーザは、ハンドヘルドコントローラ100を移動させて、仮想ゲーム世界内でプレーヤ制御キャラクタが見るものを表す1人称シューティングゲームのシーンなどの仮想カメラの移動を制御することができる。
【0056】
サブブロック418では、モーションセンサデータは、アプリケーション(例えば、ビデオゲーム)の仮想物体の移動を制御するために使用されてもよい。例えば、ユーザは、ハンドヘルドコントローラ100を移動させて、仮想レースカー、仮想キャラクタ、または仮想ゲーム世界内で可動(または非可動)であり得る任意の他の物体の移動を制御することができる。
【0057】
420では、ハンドヘルドコントローラ100の論理は、可動(または非可動)制御部と関連付けられたタッチセンサによって提供されたタッチセンサデータに少なくとも部分的に基づいて、指102が可動(または非可動)制御部の表面との接触を停止したかどうかを判定してもよい。例えば、ジョイスティック112(2)に実装されたタッチセンサ308は、ブロック420において、指102がジョイスティック112(2)の表面104に接触しなくなることを示すタッチセンサデータを生成し得る。ブロック420において、指がまだ可動(または非可動)制御部の表面に接触していると判定された場合、プロセス400は、ブロック420からブロック410へ戻る「いいえ」ルートに従い得、そこで、モーション制御機能はアクティブ化(有効化)したままである。ブロック420において、指102が可動(または非可動)制御部の表面との接触を停止したと判定された場合、プロセス400は、ブロック420からブロック402へ戻る「はい」ルートに従い得、そこでハンドヘルドコントローラ100の論理は、アプリケーション入力(例えば、ビデオゲーム入力)としてモーションセンサデータをアプリケーション(例えば、ビデオゲーム)に送信することを停止する。
【0058】
したがって、プロセス400は、可動(または非可動)制御部の表面との指の接触を介してハンドヘルドコントローラ100のモーション制御機能のオンおよびオフを切り替える技術を示す。本明細書の他の場所で言及されるように、
図4に示される構成は、指が可動(または非可動)制御部の表面に接触していないときにモーション制御機能がアクティブ化され、指が可動(または非可動)制御部の表面に接触しているときに非アクティブ化されるように、逆転することができる。
【0059】
図5は、可動(または非可動)制御部に関連付けられたタッチセンサを使用して、指が可動(または非可動)制御部の表面と接触しているかどうかを検出するための例示的なプロセス500のフロー図である。
図5に示されるように、プロセス500は、プロセス400のブロック408のサブプロセスを表し得る。考察を目的として、プロセス500は、以前の図を参照して説明される。
【0060】
502では、ハンドヘルドコントローラ100の1つ以上のプロセッサは、可動制御部と関連付けられたタッチセンサによって提供されたタッチセンサデータを受信してもよい。可動制御部は、ハンドヘルドコントローラ100のハウジング106に含まれてもよく、可動制御部を第1の位置から第2の位置に移動させる指によって作動されるように構成されてもよい。例えば、可動制御部は、
図3に示されるように、第1の位置304(1)と第2の位置304(2)との間、または第1の位置306(1)と第2の位置306(2)との間で可動であるジョイスティック112(2)であってもよく、タッチセンサ308は、遠位外面304の下(例えば、ジョイスティック112(2)のキャップの下)など、ジョイスティック112(2)の表面(例えば、内面)に取り付けられてもよい。プロセス500はまた、複数の位置の間を移動しない非可動制御部(例えば、トラックパッド)を用いて実装されてもよいことを理解されたい。この非可動制御部は、タッチセンサと関連付けられて、非可動制御部の表面上の指の存在または非存在を検出してもよい。
【0061】
504では、ハンドヘルドコントローラ100の論理は、タッチセンサデータに少なくとも部分的に基づいて、デジタル化された近接値を判定してもよい。例えば、静電容量ベースのタッチセンサ308では、デジタル化された近接値は、デジタル化された静電容量値であり得、これは、任意の単位であり得、かつ可動(または非可動)制御部の表面に対する指の近接度を示し得る。
【0062】
506では、ハンドヘルドコントローラ100の論理は、デジタル化された近接値が、可動(または非可動)制御部の表面に接触する指102を示す閾値を満たす(例えば、超える)かどうかを判定し得る。例えば、静電容量ベースのタッチセンサ308では、デジタル化された静電容量値は、指が可動(または非可動)制御部から閾値距離を超えている(またはタッチセンサ308の検出範囲の外側にある)場合の0から、指が可動(または非可動)制御部の表面に接触している場合の約1000までの範囲にあり得る。したがって、閾値は、指が可動(または非可動)制御部の表面に接触する可能性が高いときを判定するために、この1000の値をわずかに下回る値に設定され得る。
【0063】
ブロック506で閾値が満たされる場合(例えば、ブロック504で判定されたデジタル化された近接値が閾値を超える場合)、プロセス500は、ブロック506からブロック508への「はい」ルートに従い得、そこで論理は、指が可動(または非可動)制御部の表面に接触していることを判定する。さもなければ、ブロック506で閾値が満たされない場合(例えば、ブロック504で判定されたデジタル化された近接値が閾値を超えない(例えば、閾値以下である)場合)、プロセス500は、ブロック506からブロック510への「いいえ」ルートに従い得、そこで論理は、指が可動(または非可動)制御部の表面に接触していないと判定する。
【0064】
図6は、ハンドヘルドコントローラ100の可動(または非可動)制御部に関連付けられた圧力センサの出力に基づいて、モーション制御機能の感度を調整するための例示的なプロセス600のフロー図である。考察を目的として、プロセス600は、以前の図を参照して説明される。
【0065】
602では、ハンドヘルドコントローラ100の論理は、可動(または非可動)制御部の表面と接触する指を検出することに少なくとも部分的に基づいて、ハンドヘルドコントローラ100のモーション制御機能をアクティブ化させ得る。例えば、ブロック602は、ハンドヘルドコントローラ100のモーション制御機能を作動させるために、プロセス400のブロック408および410を参照して説明された操作を含み得る。
【0066】
604では、モーション制御機能の感度レベルは、第1の感度レベルに設定されてもよい。この第1の感度レベルは、指102が可動(または非可動)制御部を押さずに可動(または非可動)制御部の表面に接触している状態に対応するデフォルトの感度レベルであってもよい。例えば、ブロック604では、可動(または非可動)制御部に関連付けられた圧力センサ312(例えば、FSR)は、可動(または非可動)制御部を押す指を示す閾値を超えない値までデジタル化された力データを提供し得る。
【0067】
サブブロック606では、ハンドヘルドコントローラ100の論理は、第1の感度レベルに基づいて、カーソル、仮想カメラ、またはアプリケーション(例えば、ビデオゲーム)の仮想物体の移動量を調整(または制御)し得る。いくつかの実施形態では、第1の感度レベルは、可動(または非可動)制御部上の押圧力の量に対応する値に基づいているため、カーソル、仮想カメラ、またはアプリケーション(例えば、ビデオゲーム)の仮想物体の移動量は、圧力センサ312からの値(例えば、FSRからのFSR値)に少なくとも部分的に基づいて調整(または制御)され得る。第1の感度レベルは、例えば、ハンドヘルドコントローラ100の移動量に比例する特定の量だけ仮想カメラ/物体を移動させ得る(例えば、ハンドヘルドコントローラ100の30度の回転は、カーソルまたはビデオゲームなどのアプリケーションの仮想カメラ/物体の30度の回転にマッピングされ得る)。
【0068】
608では、ハンドヘルドコントローラ100の論理は、圧力センサ出力に変化があったかどうかを判定し得る。例えば、可動(または非可動)制御部に関連付けられた圧力センサ312は、ユーザが可動(または非可動)制御部をより強く押圧するときに、可動(または非可動)制御部の押圧力の量を示す力データを提供し得る。このシナリオでは、ユーザが可動(または非可動)制御部を押圧すると、圧力センサ出力の変化が検出され、プロセス600は、ブロック608からブロック610への「はい」ルートに従い、そこでモーション制御機能の感度レベルは、圧力センサ出力に基づいて調整される。例えば、ハンドヘルドコントローラ100の論理は、可動(または非可動)制御部の押圧力の量に対応する値(例えば、FSR値)を決定し得、ブロック610では、モーション制御機能の感度レベルを第2の感度レベルに設定し得、それによって、第1の感度レベルから第2の感度レベルへの変化に基づいて、仮想カメラまたは仮想物体の移動量が調整される(増加または減少される)。例えば、ハンドヘルドコントローラ100の同じ移動量(例えば、30度の回転)は、仮想カメラ/物体の15度の回転、または仮想カメラ/物体の45度の回転にマッピングされ得る。
【0069】
608では、ハンドヘルドコントローラ100の論理が圧力センサ出力が変化していないと判定する場合、プロセス600は、ブロック608からブロック612への「いいえ」ルートに従い得、そこでモーション制御機能の感度レベルは調整されない。すなわち、ユーザが最初に可動(または非可動)制御部を押圧せずに可動(または非可動)制御部に接触した場合、圧力センサ出力は一定のままであり、モーション制御機能の感度レベルは変化しないままである。このようにして、ユーザは、可変力で可動(または非可動)制御部を押圧することによって、カーソル、仮想カメラ、またはビデオゲームなどのアプリケーションの仮想物体の移動量を制御することができる。
【0070】
図7は、ハンドヘルドコントローラ100の可動(または非可動)制御部に関連付けられたタッチセンサの出力に基づいて、モーション制御機能の感度を調整するための例示的なプロセス700のフロー図である。考察を目的として、プロセス700は、以前の図を参照して説明される。
【0071】
702では、ハンドヘルドコントローラ100の論理は、可動(または非可動)制御部の表面と接触する指を検出することに少なくとも部分的に基づいて、ハンドヘルドコントローラ100のモーション制御機能をアクティブ化させ得る。例えば、ブロック702は、ハンドヘルドコントローラ100のモーション制御機能を作動させるために、プロセス400のブロック408および410を参照して説明された操作を含み得る。
【0072】
704では、モーション制御機能の感度レベルは、第1の感度レベルに設定されてもよい。この第1の感度レベルは、指102が可動(または非可動)制御部の表面に接触している状態に対応するデフォルトの感度レベルであり得る。例えば、ブロック704では、可動(または非可動)制御部と関連付けられたタッチセンサ308は、可動(または非可動)制御部の表面に接触する指を示す閾値を超える値までデジタル化されたタッチセンサデータを提供し得る。
【0073】
サブブロック706では、ハンドヘルドコントローラ100の論理は、第1の感度レベルに基づいて、カーソル、仮想カメラ、またはビデオゲームなどのアプリケーションの仮想物体の移動量を調整(または制御)し得る。いくつかの実施形態では、第1の感度レベルは、可動(または非可動)制御部の表面に接触する指に対応する近接値に基づいているため、カーソル、仮想カメラ、またはアプリケーション(例えばビデオゲーム)の仮想物体の移動量は、タッチセンサ308からの近接値に少なくとも部分的に基づいて調整(または制御)され得る。第1の感度レベルは、例えば、ハンドヘルドコントローラ100の移動量に比例する特定の量だけ仮想カメラ/物体を移動させ得る(例えば、ハンドヘルドコントローラ100の30度の回転は、カーソルまたはビデオゲームなどのアプリケーションの仮想カメラ/物体の30度の回転にマッピングされ得る)。
【0074】
708では、ハンドヘルドコントローラ100の論理は、指102が可動(または非可動)制御部の表面との接触を停止したかどうかを判定し得る。例えば、可動(または非可動)制御部に関連付けられたタッチセンサ308は、ユーザが可動(または非可動)制御部から指102を持ち上げるときに、指102が可動(または非可動)制御部の表面と接触しなくなったことを示すタッチセンサデータを提供し得る。このシナリオでは、ユーザが可動(または非可動)制御部の表面から指102を持ち上げる場合、タッチセンサ出力の変化が検出され、プロセス700はブロック708からブロック710への「はい」ルートに従い、そこで論理は、タッチセンサデータに基づいて、指が依然として閾値距離未満の可動(または非可動)制御部の表面からある距離だけ離間されているかどうかを判定する。例えば、可動(または非可動)制御からのこの指の間隔は、タッチセンサ308によって測定可能な近接値の範囲にマッピングされ得、タッチセンサデータがこの範囲内の近接値に変換される限り、論理は、指102が、例えば、タッチセンサ308の検出範囲の外側にある閾値距離を超えて移動していないと推定し得る。指102が依然として可動(または非可動)制御部の表面から閾値距離内にある場合、プロセス700は、ブロック710からブロック712への「はい」ルートに従い得る。
【0075】
712では、モーション制御機能の感度レベルは、指102が可動(または非可動)制御部の表面と接触することから、依然として閾値距離内にある表面からの距離まで移動したことを示すタッチセンサ308出力に基づいて調整される。例えば、ハンドヘルドコントローラ100の論理は、指102が閾値距離未満である可動(または非可動)制御部の表面からある距離だけ離間されていることに対応する値(例えば、近接値)を判定し得、ブロック712では、モーション制御機能の感度レベルを第2の感度レベルに設定し得、それによって、仮想カメラまたは仮想物体の移動量は、第1の感度レベルから第2の感度レベルへの変化に基づいて調整される(増加または減少される)。例えば、ハンドヘルドコントローラ100の同じ移動量(例えば、30度の回転)は、仮想カメラ/物体の15度の回転、または仮想カメラ/物体の45度の回転にマッピングされ得る。
【0076】
708で、ハンドヘルドコントローラ100の論理が、指102が依然として可動(または非可動)制御部の表面に接触していると判定する場合、プロセス700は、ブロック708からブロック714への「いいえ」ルートに従い得、そこでモーション制御機能の感度レベルは調整されない。すなわち、ユーザが最初に可動(または非可動)制御部に接触し、可動(または非可動)制御部から指102を持ち上げない場合、タッチセンサ308の出力は一定のままであり、モーション制御機能の感度レベルは変化しない。このようにして、ユーザは、カーソル、仮想カメラ、またはビデオゲームなどのアプリケーションの仮想物体の移動量を、自身の指を可動(または非可動)制御部からわずかに持ち上げ、指をタッチセンサ308の検出範囲内に維持しながら、可動(または非可動)制御部の表面から指102の距離を変化させることによって制御することができる。しかしながら、ブロック710で、タッチセンサデータが、指が閾値距離を超えて移動したことを示す(例えば、ブロック710におけるデジタル化された近接値が閾値未満である)場合、プロセス700は、ブロック710からブロック716への「いいえ」ルートに従い得、そこでモーション制御機能は非アクティブ化され得る。
【0077】
本明細書で説明されるプロセスが例示的な動作を説明するが、他の実施態様は追加的および/または代替的な動作を含み得ることを理解されたい。さらに、これらの動作が説明される順序は、限定的ではなく、構成要素は、任意の他の同様または異なる方法で配列され得、および/または組み立てられ得る。加えて、プロセスは、ハンドヘルドコントローラのいくつかの構成要素を説明しているが、ハンドヘルドコントローラは、追加的および/または代替的な構成要素を含み得ることを理解されたい。
【0078】
図8は、
図1のコントローラ100などのハンドヘルドコントローラの例示的な構成要素、ならびにハンドヘルドコントローラ100が通信するように構成されるコンピューティングデバイス800を示す。例示されるように、ハンドヘルドコントローラ100は、上記の制御部(例えば、ジョイスティック、トラックパッド、トリガ、押し下げ可能なボタンなど)、潜在的に任意の他のタイプの入力または出力デバイスなどの、1つ以上の入力/出力(I/O)デバイス802を含む。例えば、I/Oデバイス802は、ユーザ音声入力などのオーディオ入力を受信するための1つ以上のマイクロフォンを含んでもよい。いくつかの実施態様では、1つ以上のカメラまたは他のタイプのセンサ(例えば、モーションセンサ804)が、ハンドヘルドコントローラ100のモーションなどのジェスチャ入力を受信するための入力デバイスとして機能し得る。いくつかの実施形態では、追加の入力デバイスは、キーボード、キーパッド、マウス、タッチスクリーン、ジョイスティック、調節ボタン等の形式で提供可能である。入力デバイスは、電源およびリセットボタンに加えて、音量を上げ下げするための基本的な音量調節ボタン等の制御機構をさらに具備し得る。
【0079】
一方、出力デバイスは、ディスプレイ、光素子(例えば、LED)、触覚の知覚を作り出すバイブレーター、スピーカー(例えば、ヘッドホン)などを含み得る。例えば、電源がオンであるときなどの状態を示すための単純な光素子(例えば、LED)も存在し得る。数例が提供されているが、ハンドヘルドコントローラは、追加的または代替的に、任意の他のタイプの出力デバイスを含み得る。
【0080】
場合によっては、1つ以上の出力デバイスによる出力は、入力デバイスのうちの1つ以上によって受信された入力に基づいてもよい。例えば、制御部の作動により、制御部に隣接した(例えば、真下に)、または任意の他の場所に設置されたバイブレーターによる触覚応答の出力を得ることができる。いくつかの事例では、出力は、本明細書において説明したような、可動制御部に関連付けられたタッチセンサ308などのタッチセンサ308上のタッチ入力の特性に少なくとも部分的に基づいて、変化可能である。例えば、タッチセンサ308上の第1の位置でのタッチ入力が、第1の触覚出力を生じ得る一方、タッチセンサ308上の第2の位置でのタッチ入力は、第2の触覚出力を生じ得る。さらに、タッチセンサ308上の特定のジェスチャは、特定の触覚出力(または他のタイプの出力)を生じ得る。例えば、制御部上のスワイプジェスチャーは、第1のタイプの触覚出力を生じ得る一方、(タッチセンサ308により検出される)制御部上のタップは、第2のタイプの触覚出力を生じ得、一方で、制御部を強く押圧することは、第3のタイプの触覚出力を生じ得る。
【0081】
加えて、ハンドヘルドコントローラ100は、ネットワークおよび/または1つ以上の遠隔システム(例えば、アプリケーション、ゲームコンソールなどを実行するホストコンピューティングデバイス800)への無線接続を容易にするための1つ以上の通信インターフェース706を含み得る。通信インターフェース706は、Wi-Fi、Bluetooth、無線周波数(RF)などの1つ以上の様々な無線技術を実装し得る。ハンドヘルドコントローラ100は、ネットワーク、接続された周辺デバイス、または他の無線ネットワークと通信するプラグインネットワークデバイスへの有線接続を容易にする物理ポートをさらに含み得ることを理解されたい。
【0082】
例示された実装形態では、ハンドヘルドコントローラは、1つ以上のプロセッサ808およびコンピュータ可読媒体810をさらに含む。いくつかの実装形態では、プロセッサ808は、中央処理ユニット(CPU)、グラフィックス処理ユニット(GPU)、CPUおよびGPUの両方、マイクロプロセッサ、デジタル信号プロセッサ、または当該技術分野で既知の他の処理ユニットもしくは構成要素を含み得る。代替的に、または追加的に、本明細書に説明される機能は、少なくとも部分的に、1つ以上のハードウェア論理構成要素によって実施され得る。例えば、非限定的に、使用され得るハードウェア論理構成要素の例示的なタイプとしては、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、特定用途向け標準製品(ASSP)、システムオンチップシステム(SOC)、複合プログラマブル論理デバイス(CPLD)などが挙げられる。加えて、プロセッサ808の各々は、プログラムモジュール、プログラムデータ、および/または1つ以上のオペレーティングシステムも記憶し得る、その独自のローカルメモリを保有し得る。
【0083】
コンピュータ可読媒体810は、揮発性および不揮発性メモリ、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報を記憶するための任意の方法または技術で実装された、取り外し可能および取り外し不可能な媒体を含み得る。そのようなメモリとしては、限定されるものではないが、RAM、ROM、EEPROM、フラッシュメモリもしくは他のメモリ技術、CD-ROM、デジタル多目的ディスク(DVD)もしくは他の光学ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージもしくは他の磁気ストレージデバイス、RAIDストレージシステム、または所望の情報を記憶するために使用され得、コンピューティングデバイスによってアクセスされ得る、任意の他の媒体が挙げられる。コンピュータ可読媒体810は、コンピュータ可読媒体810に記憶された命令を実行するためにプロセッサ808によってアクセス可能な任意の利用可能な物理媒体であり得る、コンピュータ可読ストレージ媒体(「CRSM」)として実装され得る。1つの基本的な実装形態では、CRSMは、ランダムアクセスメモリ(「RAM」)およびフラッシュメモリを含み得る。他の実施態様では、CRSMには、読み出し専用メモリ(「ROM」)、電気的に消去可能なプログラマブル読み出し専用メモリ(「EEPROM」)、または所望の情報を記憶するために使用され得、プロセッサ808によってアクセスされ得る、任意の他の有形媒体が含まれ得るが、これらに限定されない。
【0084】
命令、データ記憶等のいくつかのモジュールは、コンピュータ可読媒体810内に記憶され、プロセッサ808上で実行するように構成可能である。いくつかの典型的な機能モジュールは、同一の機能が、ハードウェア、ファームウェア内、またはチップ(SOC)上のシステムとして、その代わりとして、実装可能であるが、コンピュータ可読媒体810に記憶され、プロセッサ808上で実行されるように図示される。
【0085】
オペレーティングシステムモジュール812は、他のモジュールの有益性のために、ハンドヘルドコントローラ100内でハードウェアを管理し、そのハンドヘルドコントローラに連結されるように構成され得る。加えて、コンピュータ可読媒体810は、ハンドヘルドコントローラ100が、通信インターフェース706を介して、アプリケーション(例えば、ゲームアプリケーション)を実行するコンピューティングデバイス800(例えば、PC)、ゲームコンソール、遠隔サーバ、またはそれに類するものなどの1つ以上の他のデバイスと通信することを可能にするネットワーク通信モジュール814を記憶し得る。コンピュータ可読媒体810は、ハンドヘルドコントローラ上で、またはハンドヘルドコントローラ100が連結するコンピューティングデバイス上で実行するゲーム(または他のアプリケーション)と関連付けられたデータを記憶するためのゲームセッションデータベース816をさらに含み得る。コンピュータ可読媒体810はまた、コンピューティングデバイス800(例えば、PC、ゲームコンソール、遠隔サーバ、またはそれに類するもの)などの、ハンドヘルドコントローラ100が連結するデバイスと関連付けられたデータを記憶するデバイス記録データベース818を含み得る。コンピュータ可読媒体810は、ハンドヘルドコントローラ100をゲームコントローラとして機能するように構成するゲーム制御命令820、およびハンドヘルドコントローラ100を他の非ゲームデバイスのコントローラとして機能するように構成する汎用制御命令822をさらに記憶し得る。
【0086】
他の箇所で言及されるように、タッチセンサ308は、静電容量性タッチセンサ、抵抗性タッチセンサ、赤外線タッチセンサ、指102の近接度を検出するために音響音波を利用するタッチセンサ、または任意の他のタイプのタッチセンサ308などの任意の適切なタッチ検知技術に基づき得る。タッチセンサ308は、本明細書に記載のジョイスティック112(2)などの可動制御部に関連付けられたタッチセンサを表し得る。しかしながら、ハンドヘルドコントローラ100は、トラックパッド用のタッチセンサなどを含む、追加の制御部に関連付けられた追加のタッチセンサなどの複数のタッチセンサを含み得る。容量ベースの検知を利用する実施態様では、タッチセンサ308は、電極(例えば、トランスキャパシタ型センサの送信機電極および受信機電極)を含み得、電極が、タッチセンサデータに変換され得る電極での静電容量変化を測定するように構成されるように、電極に電圧を印加することができる。タッチセンサ308の電極における静電容量変化は、電極に近接している物体(指102など)によって影響され得る。生の静電容量は、ハンドヘルドコントローラ100の論理によって処理可能な近接値にデジタル化され得る。
【0087】
圧力センサ312は、抵抗膜(例えば、インク組成物などの半導体材料)から離間された伝導性材料を有するFSR、ならびに抵抗材料がアクチュエータに印加される圧縮力の印加下で伝導性材料に接触するように抵抗膜に力を伝達するように構成されるアクチュエータを含み得る。FSRは、可変力に応答して様々な抵抗を示してもよい。FSRは、「Shuntモード」FSRまたは「Thruモード」FSRであり得る。ShuntモードFSRでは、抵抗膜から離間された伝導性材料は、複数の噛み合った金属フィンガであってもよい。力がFSRのアクチュエータに印加されると、抵抗膜は、噛み合った金属フィンガのいくつかと接触し、これは金属フィンガをシャントし、それによって、FSRの出力端子にわたって抵抗を変化させ、これは、ハンドヘルドコントローラ100の論理によって処理可能なFSR値にデジタル化され得る。圧力センサ312は、追加的に、または代替的に、圧電センサ、ひずみゲージなどの他のタイプの圧力検知機構を含んでもよい。
【0088】
モーションセンサ804は、1つ以上のジャイロスコープ、および/または加速度計、および/または磁力計、および/またはコンパス、または任意の他の適切なモーションセンサを含む慣性測定ユニット(IMU)として実装されてもよい。いくつかの実施形態では、モーションセンサ804は、機能追跡に使用されるように構成されたカメラまたは3Dセンサなどとして、少なくとも部分的に実装されてもよい。いくつかの実施形態では、モーションセンサ804は、ハンドヘルドコントローラ100のハウジング106の外部にある複数のマーカ、例えば、外部カメラによって見られたときまたは照らされたときに反射器または光(例えば、赤外光または可視光)などを使用して実装することができ、この光(例えば、赤外線または可視光)は、モーション、位置、および方向データを生成するために、ソフトウェアによる解釈のための1つ以上の基準点を提供し得る。例えば、ハンドヘルドコントローラ100は、ハンドヘルドコントローラ100の環境内の基地局によって投影または散布される光(例えば、赤外光または可視光)に対して感応性である光センサを含み得る。いくつかの実施形態では、モーションセンサ804は、6成分のモーション検知を提供することによってモーションセンサデータを取得するために利用されてもよい。すなわち、モーションセンサ804は、3D空間の周りの並進運動および/または回転運動の形態でモーションセンサデータを検知および生成するように構成されてもよい。モーションセンサ804は、3D空間(X、Y、およびZの移動)における並進運動の程度、速度、および/または加速度、ならびに3D空間(ロール、ピッチ、およびヨー)における回転の程度、速度、および/または加速度に関連するデータを測定および生成するように構成されてもよい。測定値は、デカルト座標系(X、Y、およびZ)または球面座標系などの3D座標系の観点から生成され得る。モーションセンサデータは、(変数:d、v、aによって表される)並進運動および(変数:θ、ω、αによって表される)角運動の変位(例えば、前の時間ログからの変位)、速度、および/または加速度の観点からの測定値を含み得る。モーションセンサデータは、モーションセンサデータの履歴が収集され、一時的または永続的に記憶されるように、モーションセンサデータが任意の適切な時間間隔で収集される時間をさらに含んでもよい。
【0089】
本主題は、構造的特徴に特有の言語で説明されているが、添付の特許請求の範囲に定義された主題は、必ずしも説明された特定の特徴に限定されるものではないことを理解されたい。むしろ、具体的な特徴は、請求項を実施する例示的な形態として開示されている。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
[付記1]
ハンドヘルドコントローラであって、
1つ以上のプロセッサと、
前記1つ以上のプロセッサに、前記ハンドヘルドコントローラの移動を示すモーションセンサデータを提供するように構成されたモーションセンサと、
前面を有するハウジングと、
前記ハウジングの前記前面上に配設されたジョイスティックであって、前記ジョイスティックを第1の位置から第2の位置に移動させる親指によって作動させるように構成されたジョイスティックと、
前記ジョイスティックに関連付けられ、前記1つ以上のプロセッサに、前記ジョイスティックの遠位面に対する前記親指の近接度を示すタッチセンサデータを提供するように構成されたタッチセンサと、
論理であって、
前記タッチセンサデータに少なくとも部分的に基づいて、前記親指が前記ジョイスティックの前記遠位面に接触していることを判定し、
アプリケーション入力としてアプリケーションに前記モーションセンサデータを送信して、前記アプリケーションの態様を制御するように構成された論理と、を備える、ハンドヘルドコントローラ。
[付記2]
前記論理は、
前記タッチセンサデータに少なくとも部分的に基づいて、前記親指が前記ジョイスティックの前記遠位面との接触を停止したことを判定し、
前記アプリケーション入力として前記アプリケーションに前記モーションセンサデータを送信することを停止させるようにさらに構成されている、付記1に記載のハンドヘルドコントローラ。
[付記3]
前記アプリケーションの前記態様は、
前記アプリケーションのカーソルの移動、
前記アプリケーションの仮想カメラの移動であって、前記仮想カメラの移動は、ディスプレイ上に提示されるシーンを変化させる、移動、または
前記アプリケーションの仮想物体の移動のうちの少なくとも1つを含む、付記1に記載のハンドヘルドコントローラ。
[付記4]
前記ジョイスティックに関連付けられ、前記1つ以上のプロセッサに、前記ジョイスティックの押圧力の量を示す力データを提供するように構成された押圧センサをさらに含み、
前記論理は、
前記ジョイスティックの前記押圧力の前記量に対応する値を判定し、
前記値に少なくとも部分的に基づいて、前記仮想カメラの前記移動または前記仮想物体の前記移動のうちの少なくとも1つの量を調整するようにさらに構成されている、付記3に記載のハンドヘルドコントローラ。
[付記5]
前記タッチセンサは、前記ジョイスティックの前記遠位面に対する前記親指の前記近接度に基づいて静電容量値を測定するように構成された静電容量センサを備える、付記1に記載のハンドヘルドコントローラ。
[付記6]
前記ハウジングの前記前面は、前記ハンドヘルドコントローラの中心の左側の第1の領域と、前記ハンドヘルドコントローラの中心の右側の第2の領域とを含み、
前記ジョイスティックは、前記第2の領域内の前記ハウジングの前記前面上に配設されている、付記1に記載のハンドヘルドコントローラ。
[付記7]
ハンドヘルドコントローラであって、
1つ以上のプロセッサと、
前記1つ以上のプロセッサに、前記ハンドヘルドコントローラの移動を示すモーションセンサデータを提供するように構成されたモーションセンサと、
可動制御部を第1の位置から第2の位置に移動させる指によって作動されるように構成された前記可動制御部を含むハウジングと、
前記可動制御部に関連付けられ、前記1つ以上のプロセッサに、前記可動制御部に対する前記指の近接度を示すタッチセンサデータを提供するように構成されたタッチセンサと、
論理であって、
前記タッチセンサデータに少なくとも部分的に基づいて、前記指が前記可動制御部の表面に接触しているかどうかを判定し、
前記指が前記可動制御部の前記表面に接触しているかどうかを判定することに少なくとも部分的に基づいて、前記アプリケーションの態様を制御するために、アプリケーション入力として前記モーションセンサデータをアプリケーションに送信するように構成された論理と、を備える、ハンドヘルドコントローラ。
[付記8]
前記論理は、前記指が前記可動制御部の前記表面に接触しているという判定に少なくとも部分的に基づいて、前記アプリケーション入力として前記モーションセンサデータを前記アプリケーションに送信するように構成されており、前記論理は、
前記タッチセンサデータに少なくとも部分的に基づいて、前記指が前記可動制御部の前記表面との接触を停止したことを判定し、
前記アプリケーション入力として前記アプリケーションに前記モーションセンサデータを送信することを停止させるようにさらに構成されている、付記7に記載のハンドヘルドコントローラ。
[付記9]
前記アプリケーションの前記態様は、
前記アプリケーションのカーソルの移動、
前記アプリケーションの仮想カメラの移動、または
前記アプリケーションの仮想物体の移動のうちの少なくとも1つを含む、付記7に記載のハンドヘルドコントローラ。
[付記10]
前記論理は、前記指が前記可動制御部の前記表面に接触しているという判定に少なくとも部分的に基づいて、前記アプリケーション入力として前記モーションセンサデータを前記アプリケーションに送信するように構成されており、前記論理は、
前記タッチセンサデータに少なくとも部分的に基づいて、前記指が前記可動制御部の前記表面との接触を停止し、閾値距離未満である前記可動制御部の前記表面からある距離だけ離間されていることを判定し、
前記指が前記可動制御部から離間されている前記距離に少なくとも部分的に基づいて、前記仮想カメラの前記移動または前記仮想物体の前記移動のうちの少なくとも1つの量を調整するようにさらに構成されている、付記9に記載のハンドヘルドコントローラ。
[付記11]
前記論理は、前記指が前記可動制御部の前記表面に接触しているという判定に少なくとも部分的に基づいて、前記アプリケーション入力として前記モーションセンサデータを前記アプリケーションに送信するように構成されており、前記ハンドヘルドコントローラは、
前記可動制御部に関連付けられ、前記1つ以上のプロセッサに、前記可動制御部の押圧力の量を示す力データを提供するように構成された押圧センサをさらに備え、
前記論理は、
前記可動制御部の前記押圧力の前記量に対応する値を判定し、
前記値に少なくとも部分的に基づいて、前記仮想カメラの前記移動または前記仮想物体の前記移動のうちの少なくとも1つの量を調整するようにさらに構成されている、付記9に記載のハンドヘルドコントローラ。
[付記12]
前記可動制御部は、前記ハウジングの前面に配設されたジョイスティックを備える、付記7に記載のハンドヘルドコントローラ。
[付記13]
前記タッチセンサは、前記可動制御部に対する前記指の前記近接度に基づいて静電容量値を測定するように構成された静電容量センサを備える、付記7に記載のハンドヘルドコントローラ。
[付記14]
前記アプリケーション入力は、第1のアプリケーション入力であり、前記論理は、
前記指が前記可動制御部を前記第1の位置から前記第2の位置に移動させることによって前記可動制御部を作動させたと判定し、
前記アプリケーションの前記態様、または異なる態様を制御するための第2のアプリケーション入力として前記アプリケーションに作動データを送信するようにさらに構成されており、前記作動データは、前記可動制御部を作動させた前記指に基づいて生成されている、付記7に記載のハンドヘルドコントローラ。
[付記15]
コンピュータ実装方法であって、
ハンドヘルドコントローラの1つ以上のプロセッサによって、前記ハンドヘルドコントローラのハウジングに含まれる可動制御部と関連付けられたタッチセンサによって提供されたタッチセンサデータを受信することであって、前記可動制御部は、前記可動制御部を第1の位置から第2の位置に移動させる指によって作動されるように構成されている、受信することと、
前記タッチセンサデータに少なくとも部分的に基づいて、デジタル化された近接値を判定することと、
前記デジタル化された近接値が、前記可動制御部の表面に接触する前記指を示す閾値を超えるかどうかを判定することと、
前記1つ以上のプロセッサによって、前記ハンドヘルドコントローラのモーションセンサによって提供されたモーションセンサデータを受信することと、
前記ハンドヘルドコントローラが移動したという前記モーションデータに少なくとも部分的に基づいて、判定することと、
前記デジタル化された近接値が前記閾値を超えるかどうかを判定することに少なくとも部分的に基づいて、前記アプリケーションの態様を制御するために、アプリケーション入力として前記モーションセンサデータをアプリケーションに送信することと、を含む、コンピュータ実装方法。
[付記16]
前記アプリケーション入力として前記モーションセンサデータを前記アプリケーションに前記送信することは、前記デジタル化された近接値が前記閾値を超えると判定することに少なくとも部分的に基づき、前記方法は、
前記タッチセンサデータに少なくとも部分的に基づいて、第2のデジタル化された近接値を判定することと、
前記第2のデジタル化された近接値は、前記指が前記可動制御部の前記表面との接触を停止したことを示す前記閾値未満であると判定することと、
前記アプリケーション入力として前記アプリケーションに前記モーションセンサデータを送信することを停止させることと、をさらに含む、付記15に記載のコンピュータ実装方法。
[付記17]
前記アプリケーションの前記態様は、
前記アプリケーションのカーソルの移動、
前記アプリケーションの仮想カメラの移動、または
前記アプリケーションの仮想物体の移動のうちの少なくとも1つを含む、付記15に記載のコンピュータ実装方法。
[付記18]
前記アプリケーション入力として前記モーションセンサデータを前記アプリケーションに前記送信することは、前記デジタル化された近接値が前記閾値を超えると判定することに少なくとも部分的に基づき、前記方法は、
前記タッチセンサデータに少なくとも部分的に基づいて、第2のデジタル化された近接値を判定することと、
前記第2のデジタル化された近接値は、前記閾値未満であり、前記指が前記可動制御部の前記表面との接触を停止し、前記可動制御部の前記表面から閾値距離未満である距離だけ離間していることを示す第2の閾値よりも大きいと判定することと、
前記第2のデジタル化された近接値に少なくとも部分的に基づいて、前記仮想カメラの前記移動または前記仮想物体の前記移動のうちの少なくとも1つの量を調整することと、をさらに含む、付記17に記載のコンピュータ実装方法。
[付記19]
前記アプリケーション入力として前記モーションセンサデータを前記アプリケーションに前記送信することは、前記デジタル化された近接値が前記閾値を超えると判定することに少なくとも部分的に基づき、前記方法は、
前記可動制御部に関連付けられた圧力センサによって提供された力データに少なくとも部分的に基づいて、前記可動制御部の押圧力の量に対応する値を判定することと、
前記値に少なくとも部分的に基づいて、前記仮想カメラの前記移動または前記仮想物体の前記移動のうちの少なくとも1つの量を調整することと、をさらに含む、付記17に記載のコンピュータ実装方法。
[付記20]
前記可動制御部は、前記ハウジングの前面に配設されたジョイスティックを備える、付記15に記載のコンピュータ実装方法。