(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-08-25
(45)【発行日】2023-09-04
(54)【発明の名称】仮想現実の手のジェスチャ生成
(51)【国際特許分類】
G06F 3/01 20060101AFI20230828BHJP
G06F 3/0346 20130101ALI20230828BHJP
G06F 3/041 20060101ALI20230828BHJP
A63F 13/22 20140101ALI20230828BHJP
A63F 13/428 20140101ALI20230828BHJP
A63F 13/214 20140101ALI20230828BHJP
【FI】
G06F3/01 570
G06F3/0346 422
G06F3/041 600
A63F13/22
A63F13/428
A63F13/214
(21)【出願番号】P 2020570736
(86)(22)【出願日】2019-05-17
(86)【国際出願番号】 US2019032928
(87)【国際公開番号】W WO2019245681
(87)【国際公開日】2019-12-26
【審査請求日】2022-04-25
(32)【優先日】2018-06-20
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2018-11-19
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】517160525
【氏名又は名称】バルブ コーポレーション
(74)【代理人】
【識別番号】110001737
【氏名又は名称】弁理士法人スズエ国際特許事務所
(72)【発明者】
【氏名】ニートフェルド、スコット・ダグラス
(72)【発明者】
【氏名】ヴァン・デン・ホイヴェル、ジョー
【審査官】円子 英紀
(56)【参考文献】
【文献】国際公開第2019/142329(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/01
G06F 3/0346
G06F 3/041
A63F 13/22
A63F 13/428
A63F 13/214
(57)【特許請求の範囲】
【請求項1】
システムであって、
1つまたは複数のプロセッサと、
コンピュータ実行可能命令を格納する1つまたは複数の非一時的なコンピュータ可読媒体であって、前記1つまたは複数のプロセッサによって実行されたとき、前記1つまたは複数のプロセッサに、
コントローラを操作する手に結合されたマーカによって反射または放出された光を図示する画像であり、1つまたは複数のカメラによってキャプチャされた前記画像を受信することと、
前記コントローラを操作する前記手の動きに対応する追跡された位置であり、前記マーカの前記追跡された位置を示すモーションデータを生成するために前記画像を分析することと、
前記コントローラを操作する前記手のタッチ入力に対応するタッチデータを受信することと、
前記モーションデータと前記タッチデータとを関連付けることと、
前記モーションデータと前記タッチデータとに少なくとも部分的に基づいて、後続するタッチデータに少なくとも部分的に基づいて前記手のジェスチャを決定するように構成された訓練されたモデルを生成するように、モデルを訓練することと、
前記訓練されたモデルを使用して、前記手の表現に対応する画像データを生成することと、
前記手の前記表現に対応する前記画像データを送信することと、を含む行為を実施させる、1つまたは複数の非一時的なコンピュータ可読媒体と、を備える、
システム。
【請求項2】
前記モーションデータが、第1のモーションデータを含み、前記タッチデータが、第1のタッチデータを含み、前記手の前記動きが、第1の動きを含み、前記手の前記タッチ入力が、第1のタッチ入力を含み、前記1つまたは複数の非一時的なコンピュータ可読媒体が、前記1つまたは複数のプロセッサによって実行されたとき、前記1つまたは複数のプロセッサに、
前記コントローラを操作する前記手に結合されたマーカによって反射または放出された光を図示する第2の画像であり、前記1つまたは複数のカメラによってキャプチャされた前記第2の画像を受信することと、
前記コントローラを操作する前記手の第2の動きに対応する第2の追跡された位置であり、前記マーカの前記第2の追跡された位置を示す第2のモーションデータを生成するために前記第2の画像を分析することと、
前記コントローラを操作する前記手の第2のタッチ入力に対応する第2のタッチデータを受信することと、
前記第2のモーションデータと前記第2のタッチデータとを関連付けることと、
前記第2のモーションデータおよび前記第2のタッチデータに少なくとも部分的に基づいて、前記手の前記ジェスチャを決定するように構成されており、更新され訓練されたモデルを生成することと、を含む行為をさらに実施させるコンピュータ実行可能命令を格納する、請求項1に記載のシステム。
【請求項3】
前記画像データを送信することが、遠隔装置に前記手の表現を表示させる、請求項
1に記載のシステム。
【請求項4】
前記1つまたは複数の非一時的なコンピュータ可読媒体が、前記1つまたは複数のプロセッサによって実行されたとき、前記1つまたは複数のプロセッサに、前記タッチ入力に関連付けられた力の量に対応する力データを受信することを含む行為をさらに実施させるコンピュータ実行可能命令を格納し、
前記モデルを前記訓練することが、前記力データに少なくとも部分的にさらに基づいている、請求項1に記載のシステム。
【請求項5】
前記タッチデータが、前記タッチ入力を受信する前記コントローラ上の1つまたは複数の場所を示す、請求項1に記載のシステム。
【請求項6】
前記モーションデータと前記タッチデータとを関連付けることが、前記モーションデータのタイムスタンプを前記タッチデータのタイムスタンプと関連付けることを含む、請求項1に記載のシステム。
【請求項7】
前記タッチデータを受信することが、前記システムに通信可能に結合された前記コントローラから前記タッチデータを受信することを含む、請求項1に記載のシステム。
【請求項8】
システムであって、
1つまたは複数のプロセッサと、
コンピュータ実行可能命令を格納する1つまたは複数の非一時的なコンピュータ可読媒体であって、前記1つまたは複数のプロセッサによって実行されたとき、前記1つまたは複数のプロセッサに、
手持型コントローラから、
前記手持型コントローラに対する手の少なくとも一部分の近接性を示すタッチデータ、または
前記手持型コントローラを押す力の量を示す力データのうちの少なくとも1つを受信することと、
前記タッチデータまたは前記力データのうちの少なくとも1つの特性に少なくとも部分的に基づいて、複数の訓練されたモデルのうちから訓練されたモデルを選択することと、
前記訓練されたモデルに前記タッチデータまたは前記力データの少なくとも1つを入力することと、
前記訓練されたモデルを使用して、前記タッチデータまたは前記力データのうちの前記少なくとも1つが手のジェスチャに対応していることを判定することと、
前記手のジェスチャを表す画像データを生成することと、
前記画像データに少なくとも部分的に基づいて、前記手のジェスチャの画像をディスプレイに表示させることと、を含む行為を実施させる、1つまたは複数の非一時的なコンピュータ可読媒体と、を備える、システム。
【請求項9】
前記特性は、
前記手の少なくとも前記一部分が前記手持型コントローラに触れている前記手持型コントローラ上の場所、または
前記押す力の量、の少なくとも1つを含む、請求項
8に記載のシステム。
【請求項10】
前記タッチデータが、第1のタッチデータを含み、前記力データが、第1の力データを含み、前記訓練されたモデルが、第1の訓練されたモデルを含み、前記画像データが、第1の画像データを含み、前記手のジェスチャが、第1の手のジェスチャを含み、前記1つまたは複数の非一時的なコンピュータ可読媒体が、前記1つまたは複数のプロセッサによって実行されたとき、前記1つまたは複数のプロセッサに、
前記手持型コントローラから、
前記手持型コントローラに対する前記手の少なくとも一部分の第2の近接性を示す第2のタッチデータ、または
前記手持型コントローラへの第2の押しの第2の力の量を示す第2の力データのうちの少なくとも1つを受信することと、
前記第2のタッチデータまたは前記第2の力データのうちの少なくとも1つの前記特性に少なくとも部分的に基づいて、前記複数の訓練されたモデルのうちから第2の訓練されたモデルを選択することと、
前記第2のタッチデータまたは前記第2の力データの少なくとも1つを前記第2の訓練されたモデルに入力することと、
前記第2の訓練されたモデルを使用して、前記第2のタッチデータまたは前記第2の力データのうちの前記少なくとも1つが、第2の手のジェスチャに対応していることを判定することと、
前記第2の手のジェスチャを表す第2の画像データを生成することと、
前記第2の画像データに少なくとも部分的に基づいて、前記第2の手のジェスチャの第2の画像を前記ディスプレイに表示させることと、を含む行為をさらに実施させるコンピュータ実行可能命令を格納する、請求項
8に記載のシステム。
【請求項11】
前記手のジェスチャが、第1の手のジェスチャを含み、前記1つまたは複数の非一時的なコンピュータ可読媒体が、前記1つまたは複数のプロセッサによって実行されたとき、前記1つまたは複数のプロセッサに、
前記第1の手のジェスチャに少なくとも部分的に基づいて、第2の手のジェスチャを予測することと、
前記第2の手のジェスチャを表す第2の画像データを生成することと、
前記予測することの後、前記手持型コントローラから、
前記手持型コントローラに対する前記手の少なくとも一部分の第2の近接性を示す第2のタッチデータ、または
前記手持型コントローラへの第2の押しの第2の力の量を示す第2の力データのうちの少なくとも1つを受信することと、
前記第2の画像データに少なくとも部分的に基づいて、前記第2の手のジェスチャの第2の画像を前記ディスプレイに表示させることと、を含む行為をさらに実施させるコンピュータ実行可能命令を格納する、請求項
8に記載のシステム。
【請求項12】
前記訓練されたモデルが、
第1の期間中に1つまたは複数のコントローラから受信された以前のタッチデータ、
前記第1の期間中に前記1つまたは複数のコントローラから受信された以前の力データ、または
前記第1の期間中に1つまたは複数のカメラから受信された以前の画像データのうちの少なくとも1つを使用して前もって訓練されたモデルを含む、請求項
8に記載のシステム。
【請求項13】
前記複数の訓練されたモデルのうちから前記訓練されたモデルを選択することは、
前記タッチデータと、前記複数の訓練されたモデルに関連付けられて格納されたタッチデータとを比較すること、または
前記力データと、前記複数の訓練されたモデルに関連付けられて格納された力データとを比較すること、の少なくとも1つにさらに基づいている、請求項
8に記載のシステム。
【請求項14】
前記複数の訓練されたモデルのうちから前記訓練されたモデルを選択することは、前記手持型コントローラを保持しているユーザの追加の特性にさらに基づいている、請求項
8に記載のシステム。
【請求項15】
1つまたは複数のプロセッサによって、コントローラを操作する手に結合されたマーカによって反射または放出された光を図示する画像であり、1つまたは複数のカメラによってキャプチャされた前記画像を受信することと、
前記1つまたは複数のプロセッサによって、前記コントローラを操作する前記手の動きに対応する追跡された位置であり、前記マーカの前記追跡された位置を示すモーションデータを生成するために前記画像を分析することと、
前記1つまたは複数のプロセッサによって、前記コントローラを操作する前記手のタッチ入力に対応するタッチデータを受信することと、
前記1つまたは複数のプロセッサによって、前記モーションデータと前記タッチデータとを関連付けることと、
前記1つまたは複数のプロセッサによって、前記モーションデータと前記タッチデータとに少なくとも部分的に基づいて、後続するタッチデータに少なくとも部分的に基づいて前記手のジェスチャを決定するように構成された訓練されたモデルを生成するように、モデルを訓練することと、
前記訓練されたモデルを使用して、前記手の表現に対応する画像データを生成することと、
前記1つまたは複数のプロセッサによって、前記手の前記表現に対応する前記画像データを送信することと、を具備する
方法。
【請求項16】
前記モーションデータが、第1のモーションデータを含み、前記タッチデータが、第1のタッチデータを含み、前記手の前記動きが、第1の動きを含み、前記手の前記タッチ入力が、第1のタッチ入力を含み、前記方法は、
前記1つまたは複数のプロセッサによって、前記コントローラを操作する前記手に結合された前記マーカによって反射または放出された光を図示する第2の画像であり、前記1つまたは複数のカメラによってキャプチャされた前記第2の画像を受信することと、
前記1つまたは複数のプロセッサによって、前記コントローラを操作する前記手の第2の動きに対応する第2の追跡された位置であり、前記マーカの前記第2の追跡された位置を示す第2のモーションデータを生成するために前記第2の画像を分析することと、
前記1つまたは複数のプロセッサによって、前記コントローラを操作する前記手の第2のタッチ入力に対応する第2のタッチデータを受信することと、
前記1つまたは複数のプロセッサによって、前記第2のモーションデータと前記第2のタッチデータとを関連付けることと、
前記1つまたは複数のプロセッサによって、前記第2のモーションデータおよび前記第2のタッチデータに少なくとも部分的に基づいて、前記手の前記ジェスチャを決定するように構成されており、更新され訓練されたモデルを生成することと、をさらに具備する、請求項
15に記載の方法。
【請求項17】
前記画像データを送信することが、遠隔装置に前記手の前記表現を表示させる、請求項
15に記載の方法。
【請求項18】
前記1つまたは複数のプロセッサによって、前記タッチ入力に関連付けられた力の量に対応する力データを受信することをさらに具備し、
前記モデルを前記訓練することが、前記力データに少なくとも部分的にさらに基づいている、請求項
15に記載の方法。
【請求項19】
前記タッチデータが、前記タッチ入力を受信する前記コントローラ上の1つまたは複数の場所を示す、請求項
15に記載の方法。
【請求項20】
前記モーションデータと前記タッチデータとを関連付けることが、前記モーションデータのタイムスタンプを前記タッチデータのタイムスタンプと関連付けることを含む、請求項
15に記載の方法。
【請求項21】
前記タッチデータを受信することが、前記コントローラから前記タッチデータを受信することを含む、請求項
15に記載の方法。
【請求項22】
1つまたは複数のプロセッサによって、手持型コントローラから、
前記手持型コントローラの1つまたは複数の第1のセンサによって生成されたタッチデータであって、前記手持型コントローラに対する手の少なくとも一部分の近接性を示す前記タッチデータ、または
前記手持型コントローラの1つまたは複数の第2のセンサによって生成された力データであって、前記手持型コントローラを押す力の量を示す力データの少なくとも1つを受信することと、
前記タッチデータまたは前記力データのうちの少なくとも1つの特性に少なくとも部分的に基づいて、複数の訓練されたモデルのうちから訓練されたモデルを選択することと、
前記1つまたは複数のプロセッサによって、前記訓練されたモデルに前記タッチデータまたは前記力データの少なくとも1つを入力することと、
前記訓練されたモデルを使用して、前記タッチデータまたは前記力データのうちの前記少なくとも1つが手のジェスチャに対応していることを判定することと、
前記1つまたは複数のプロセッサによって、前記手のジェスチャを表す画像データを生成することと、
前記画像データに少なくとも部分的に基づいて、前記手のジェスチャの画像をディスプレイに表示させることと、を具備する、方法。
【請求項23】
前記手のジェスチャの前記画像を前記ディスプレイに前記表示させることは、前記ディスプレイを有する仮想現実(VR)ヘッドセットに前記画像データを送信することを含む、請求項
22に記載の方法。
【請求項24】
前記特性は、
前記手の少なくとも一部分が前記手持型コントローラに触れている前記手持型コントローラ上の場所、または
前記押す力の量、の少なくとも1つを含む、請求項
22に記載の方法。
【請求項25】
前記複数の訓練されたモデルのうちから前記訓練されたモデルを選択することは、前記手持型コントローラを保持しているユーザの追加の特性にさらに基づいている、請求項
22に記載の方法。
【請求項26】
前記複数の訓練されたモデルのうちから前記訓練されたモデルの前記選択することは、
前記複数の訓練されたモデルに関連付けられて格納されたタッチデータと、前記タッチデータとを比較すること、または
前記複数の訓練されたモデルに関連付けられて格納された力データと、前記力データとを比較すること、の少なくとも1つにさらに基づいている、請求項
22に記載の方法。
【請求項27】
前記手のジェスチャが、第1の手のジェスチャであり、前記方法は、
前記第1の手のジェスチャに少なくとも部分的に基づいて、第2の手のジェスチャを予測することと、
前記第2の手のジェスチャを表す第2の画像データを生成することと、
前記予測することの後、前記手持型コントローラから、
前記手持型コントローラの前記1つまたは複数の第1のセンサによって生成された第2のタッチデータであって、前記手持型コントローラに対する前記手の少なくとも一部分の第2の近接性を示す前記第2のタッチデータ、または
前記手持型コントローラの前記1つまたは複数の第2のセンサによって生成された第2の力データであって、前記手持型コントローラへの第2の押しの第2の力の量を示す前記第2の力データのうちの少なくとも1つを受信することと、
前記第2の画像データに少なくとも部分的に基づいて、前記第2の手のジェスチャの第2の画像を前記ディスプレイに表示させることと、をさらに具備する、請求項
22に記載の方法。
【請求項28】
前記受信することは、前記力データを受信することを含み、
前記1つまたは複数の第2のセンサは、1つまたは複数の力感知抵抗器(FSRs)を含み、
前記特性は、前記力データの特性を含み、
前記入力することは、前記力データを前記訓練されたモデルに入力することを含む、請求項
22に記載の方法。
【発明の詳細な説明】
【関連出願の相互参照】
【0001】
本出願は、「VIRTUAL REALITY HAND GESTURE GENERATION」と題する2018年11月19日に出願された米国特許出願第16/195,718号のPCT出願であり、これに基づく優先権を主張し、本出願は、米国特許法第120条の下で、「VIRTUAL REALITY HAND GESTURE GENERATION」と題する2018年6月20日に出願された米国仮特許出願第62/687,780号に基づく優先権を主張する。
【0002】
さらに、2018年11月19日出願された出願第16/195,718号は、「ELECTRONIC CONTROLLER WITH FINGER SENSING AND AN ADJUSTABLE HAND RETAINER」と題された2017年12月7日に出願された係属中の米国特許出願第15/834,372号の継続部分として、米国特許法第120条の下で優先権を主張し、本出願自体は、「ELECTRONIC CONTROLLER WITH HAND RETAINER AND FINGER MOTION SENSING」と題された2017年8月17日に出願された米国特許出願第15/679,521号の継続部分として優先権を主張し、本出願自体は、2016年10月11日に出願された米国特許出願第29/580,635号の継続部分として優先権を主張し、2017年6月16日に出願された米国仮特許出願第62/520,958号に基づく優先権を主張する。
【背景技術】
【0003】
ビデオゲーム業界は、ハードウェアとソフトウェアの両方で多くの革新を生み出してきた。例えば、様々なゲームアプリケーション向けに、様々な手持型ビデオゲームコントローラが設計、製造、および販売されている。革新的な技術の中には、産業用機械、防衛システム、ロボット工学などのコントローラなど、ビデオゲーム業界以外にも応用可能なものがある。
【0004】
加えて、仮想現実(virtual reality、VR)システムは、ビデオゲーム業界の内外を問わず、現代の関心が高く、技術的にも急速に進歩しているアプリケーションである。VRシステムのコントローラは、いくつかの異なる機能を実施し、多くの場合、特定の望ましい特性を最適化しながら、厳しい(場合によっては競合する)設計上の制約を満たす必要がある。場合によっては、これらのコントローラには、ユーザの把持力を測定するためのセンサが含まれており、このセンサは、予め定義されたゲームプレイ機能を実施するために使用される。これらの目的を達成する努力において、とりわけ、可変抵抗を使用してFSRに掛かる力の量を測定する力感知抵抗器(force sensing resistor、FSR)を含む、様々なタイプのセンサが利用されてきた。しかしながら、FSRを備えた既存のコントローラは、かなり大雑把な応答時間を示す傾向がある。追加的に、コントローラは、ゲームプレイ経験全体を通じて、手の位置、ジェスチャ、および/または動きを正確に図示および感知できない場合がある。
【図面の簡単な説明】
【0005】
【
図1】本開示の例示的な実施形態による、仮想現実(VR)システムと対話するユーザの環境を示す。
【
図2】本開示の例示的な実施形態による、ユーザの手にある例示的なコントローラを示す。
【
図3】本開示の例示的な実施形態による、例示的なコントローラを示す。
【
図4】本開示の例示的な実施形態による、ユーザの手にある
図3の例示的なコントローラを示す。
【
図5】本開示の例示的な実施形態による、ユーザの手にある
図3の例示的なコントローラを示す。
【
図6】本開示の例示的な実施形態による、ユーザの手にある
図3の例示的なコントローラを示す。
【
図7】本開示の例示的な実施形態による、一対の例示的なコントローラを示す。
【
図8A】本開示の別の例示的な実施形態による、例示的な右手用コントローラの正面図を示す。
【
図8B】
図8Aの例示的な右手用コントローラの背面図を示す。
【
図9A】本開示の例示的な実施形態による、例示的な力感知抵抗器(FSR)を示す。
【
図9C】
図9BのセクションA-Aに沿って切り取られた、
図9Bの例示的なFSRの断面を示す。
【
図10A】本開示の例示的な実施形態による、例示的なコントローラを保持しているユーザの第1の手のジェスチャを示す。
【
図10B】は、本開示の例示的な実施形態による、例示的なコントローラを保持しているユーザの第2の手のジェスチャを示す。
【
図10C】本開示の例示的な実施形態による、例示的なコントローラを保持しているユーザの第3の手のジェスチャを示す。
【
図10D】本開示の例示的な実施形態による、例示的なコントローラを保持しているユーザの第4の手のジェスチャを示す。
【
図10E】本開示の例示的な実施形態による、例示的なコントローラを保持しているユーザの第5の手のジェスチャを示す。
【
図10F】本開示の例示的な実施形態による、例示的なコントローラを保持しているユーザの第6の手のジェスチャを示す。
【
図11】本開示の例示的な実施形態による、例示的なプロセスを示す。
【
図12】本開示の例示的な実施形態による、モデル(複数可)を訓練するための例示的なプロセスを示す。
【
図13】本開示の例示的な実施形態による、タッチ入力を使用してジェスチャを生成するための例示的なプロセスを示す。
【発明を実施するための形態】
【0006】
本明細書で開示されるのは、仮想現実(VR)環境で使用するためのモーションキャプチャシステム(複数可)およびコントローラである。例示的なモーションキャプチャシステムは、コントローラの動き、ならびにコントローラを操作するユーザの動きを追跡するために、環境の周りに位置付けられたカメラ、プロジェクタ、および/または他のセンサを含んでもよい。例えば、複数のカメラが環境内に取り付けられ、コントローラおよびユーザの画像をキャプチャしてもよい。場合によっては、複数のカメラが、環境内のいくつかまたはすべての角度および位置をキャプチャしてもよい。あるいは、複数のカメラは、予め定義された環境の範囲または領域内の画像に焦点を合わせるか、または画像をキャプチャしてもよい。コントローラが環境の周りで動作するとき、およびユーザが自身の手を操作するとき、カメラは、ユーザおよび/またはコントローラ(複数可)の位置および向きをそれぞれ検出してもよい。
【0007】
場合によっては、コントローラ(またはその一部分)およびユーザの位置を検出するために、コントローラ(複数可)および/またはユーザは、それぞれ、マーカを含んでもよい。例えば、マーカは、コントローラおよび/またはユーザに結合されてもよい。マーカは、電子透かし、赤外線反射板などを含んでもよい。モーションキャプチャシステム(複数可)は、光を環境に投影し、次に、それがマーカによって反射され得る。カメラは、マーカによって反射された入射光をキャプチャし、モーションキャプチャシステム(複数可)は、コントローラおよび/またはユーザの動き、位置、および/または向きを決定するために、環境内のマーカの場所を追跡およびプロットしてもよい。
【0008】
例示的なコントローラは、ユーザによって保持され、ユーザからのタッチ入力を検出する1つまたは複数の力感知抵抗器(FSR)または他のタイプのセンサを含んでもよい。場合によっては、FSRは、コントローラのハンドル内に取り付けられた構造物、および/またはコントローラの少なくとも1つの親指操作式の制御部の下に取り付けられた構造物など、コントローラの表面に結合してもよい。場合によっては、FSRは、ユーザが加えた力の量に対応する抵抗値を測定してもよい。FSRはまた、力(複数可)を特定の場所、領域、および/またはコントローラの一部分に関連付けてもよい。例えば、FSRは、ハンドルの外面に加えられた力の量を決定してもよく、かつ/またはユーザからのタッチ入力に対応する、コントローラ上の場所(複数可)を決定してもよい。いくつかの実施形態では、コントローラは、FSRによって生成された力データを介して、ユーザがコントローラのハンドルを強く握る力の量、および/またはユーザがコントローラのボタンを押す力の量を決定してもよい。コントローラは、様々な力の押しまたは圧搾を、ビデオゲームの制御および/またはゲームの仕組みに使用されるデジタル化された数値に変換してもよい。
【0009】
場合によっては、FSRは、加えられた力がしきい値を超えたときを検出するスイッチとして機能してもよく、場合によっては、しきい値を動的に更新および/または調整してもよい。例えば、ゲームプレイ中の手の疲労を低減するために、しきい値を低い値に調整してもよい(例えば、ユーザがゲームプレイ中に頻繁に武器を発射するためにFSRに関連付けられた制御部を押すとき)。逆に、しきい値は、偶発的な制御操作の事例を低減するために、より高い値に調整されてもよい。
【0010】
コントローラはまた、ハンドルの長さに沿って空間的に分散され、ユーザの指の近接性に応答する近接センサのアレイを含み得る。近接センサは、タッチ入力および/またはコントローラに対するユーザの手の近接性を感知するための、静電容量センサなどの任意の適切な技術を含み得る。近接センサのアレイは、コントローラを握持している指(複数可)の場所、またはユーザがコントローラを握持していないとき、(例えば、静電容量の測定を介して)ハンドルとユーザの指との間に配置された距離を示すタッチデータを生成してもよい。場合によっては、近接センサは、コントローラを握持しているユーザの手の大きさを検出することもあり、これにより、異なる設定に従ってコントローラを構成することができる。例えば、コントローラは、手の大きさに応じて、手の小さいユーザが力ベースの入力を簡単に行えるように調整してもよい。
【0011】
VR環境で使用するモーションキャプチャシステムおよびコントローラを実装することにより、従来のコントローラを使用して、現在の状態を超えて自然な対話のスペクトルを拡大できる可能性がある。例えば、モーションキャプチャシステム(複数可)は、互いに連携して、手および/またはコントローラのモーションデータをキャプチャしてもよく、一方、コントローラは、コントローラでのタッチ入力に対応するタッチデータおよびユーザのタッチ入力に関連付けられた力データをキャプチャしてもよい。モーションデータ、タッチデータ、および/または力データを互いに関連付けて、ユーザの手のジェスチャを示すモデルを生成してもよい。
【0012】
説明のために、ユーザは、自身の指関節、指先、手首、関節などに配設されたマーカを含んでもよい。コントローラはまた、マーカ(例えば、上部、底部、側面など)を含んでもよい。上記のように、マーカ(複数可)は、入射光を反射する場合がある。モーションキャプチャシステムは、マーカの位置を検出するカメラを介して、ユーザの手(複数可)の動きおよびコントローラ(複数可)の位置を検出および記録してもよい。例えば、モーションキャプチャシステム(複数可)のプロジェクタは、赤外線を投影してもよく、それは、次に、手および/またはコントローラ上のマーカによって反射される。モーションキャプチャシステム(複数可)のカメラは、環境の画像をキャプチャしてもよい。画像は、環境内のマーカの位置を示すために利用される。マーカの位置は、時間の経過とともに追跡され、3次元(3D)仮想空間内でアニメーション化される。この追跡により、アニメーション化された3D骨格データ(またはモデル)の生成が可能になり得る。例えば、ユーザは、握りこぶしまたは2本の指(例えば、小指および薬指)でコントローラを把持してもよい。カメラは、マーカを介して、ユーザの指先、指関節、および/または手、手首、および/または腕の他の部分の位置をキャプチャしてもよい。場合によっては、位置は、コントローラに対するものである。
【0013】
同時に、または異なる時間に、近接センサのアレイは、コントローラでのタッチ入力またはタッチ入力の欠如を検出してもよい。タッチデータは、例えば、静電容量を測定することによって、コントローラに対するユーザの指の場所を示してもよい。静電容量は、指とコントローラとの間に配置された距離によって変化してもよい。そうすることで、コントローラは、ユーザがコントローラを1本の指、2本の指、3本の指などで把持したときを検出することができる。静電容量により、コントローラはまた、ユーザの指がコントローラに触れていないときなど、コントローラに対する指の相対的な配設を検出することもできる。
【0014】
追加的に、FSRは、コントローラ(複数可)によって受信された力の値を表す力データ(例えば、ユーザがコントローラを把持する力)をキャプチャしてもよい。例えば、ユーザが握りこぶしまたは2本の指でコントローラ本体を把持すると、FSRは、これらのそれぞれの把持に対応する力の値をキャプチャしてもよい。一例として、FSRは、ユーザが2本の指でコントローラを把持するときと比較して、ユーザが握りこぶしでコントローラを把持するときの力の値の増加を検出してもよい。
【0015】
タッチデータと力データとは、互いに関連付けられてもよい。例えば、ユーザが4本の指でコントローラを把持するとき、コントローラで検出された力の値は、コントローラの特定の場所に関連付けられ得る。そうすることで、ユーザのどの指がコントローラを握持するか、ならびにユーザがコントローラを握持する各指の相対的な力を決定するために、タッチデータと力データとを互いに関連付けることができる。ユーザが2本の指でコントローラを把持したときにも同じことが言え、この場合、力の値が検出され、コントローラ本体の特定の部分に関連付けられる。FSRによって検出されたとき、タッチ入力が近接センサのアレイからどこで受信されたか、ならびにユーザがコントローラを把持する力の量を知ることにより、コントローラおよび/または別の通信可能に結合されたリモートシステムは、タッチ入力をユーザの特定の指に関連付けることができる。場合によっては、タッチデータに関連付けられたタイムスタンプを力データのタイムスタンプと相関させることによって、コントローラ(または別の通信可能に結合されたリモートシステム)は、タッチデータと力データとを関連付けることができる。
【0016】
ユーザがコントローラを把持する力の量(すなわち、力データ)、コントローラ上のタッチ入力またはその欠如の場所(すなわち、タッチデータ)、ならびにモーションキャプチャシステムのカメラによってキャプチャされたモーション(すなわち、モーションデータ)は、ユーザの手のジェスチャを示すモデルを訓練してもよい。一例として、モーションキャプチャシステムは、(例えば、モーションデータを使用して)握りこぶしをコントローラで受信されたタッチデータおよび/または力データと関連付けてもよい。別の例として、ユーザが2本の指でコントローラを把持する場合、モーションデータは、手のジェスチャ(例えば、2本の指の把持)を示し得、タッチデータは、コントローラへの手(または指)の近接性を示し、力データは、ユーザがコントローラをどれだけしっかりと把持しているかを示してもよい。これらの関連付けを使用して、モデルを生成し、ユーザのジェスチャを示すように訓練してもよい。モデルは、時間の経過とともにより正確になるように連続的に訓練されてもよい。
【0017】
モデルは、ディスプレイ上で手のジェスチャのアニメーションを生成するために、コントローラでのタッチ入力および/またはタッチ入力に関連付けられた力の値を特徴付けてもよく、VR環境は、ゲームプレイで使用するためにモデルを利用してもよい。より具体的には、モデルは、VR環境内で手のジェスチャを生成するために、タッチデータおよび/または力データを入力してもよい。例として、ジェスチャとしては、岩を破砕するか、または風船を圧搾する(例えば、握りこぶしジェスチャ)、ゲームキャラクタが使用できる利用可能な武器を切り替える(例えば、コントローラに沿って指をスクロールまたはスライドさせる)、物体を落とす(例えば、開いた手のジェスチャ)、武器を発射する(例えば、小指、薬指、中指はコントローラに触れているが、人差し指および親指は外側に向けている)などの様々なビデオゲームの制御を挙げることができる。すなわち、コントローラのタッチ入力の場所、ならびにユーザがコントローラを把持する力を知ることである。この情報により、前もって訓練されたモデルと連携して使用し、VR環境内および/またはVRディスプレイ上に手のジェスチャ(例えば、握りこぶし)を生成することができる。さらに、モデル(複数可)は、表示用に手のジェスチャをレンダリングおよび/または生成して表示するときに、前もって生成されたアニメーションおよび/または画像データを利用してもよい。
【0018】
実例となる仮想現実(VR)環境
図1は、モーションキャプチャシステム(複数可)102およびユーザ104が存在する例示的な環境100を示す。モーションキャプチャシステム(複数可)102は、環境100の壁に取り付けられた状態で示されているが、場合によっては、モーションキャプチャシステム(複数可)102は、環境100内の他の場所(例えば、天井、床など)に取り付けてもよい。さらに、
図1は4つのモーションキャプチャシステム(複数可)102を示しているが、環境100は、4つよりも多い、または少ないモーションキャプチャシステム(複数可)102を含んでもよい。
【0019】
モーションキャプチャシステム(複数可)102は、環境100内/中に光および/または画像106を生成および投影するように構成されたプロジェクタ(複数可)を含んでもよい。画像106は、ユーザ104に知覚可能な可視光画像、ユーザ104に知覚不可能な可視光画像、非可視光を有する画像、および/またはそれらの組み合わせを含んでもよい。プロジェクタ(複数可)は、画像106を生成し、画像106を環境100内の表面または物体に投影することができる任意の数の技術を含んでもよい。いくつかの例では、適切な技術としては、デジタルマイクロミラー装置(digital micromirror device、DMD)、シリコンディスプレイ上の液晶(liquid crystal on silicon display、LCOS)、液晶ディスプレイ、3LCDなどを挙げることができる。プロジェクタ(複数可)は、特定の立体角を表す視野を有してもよく、この視野は、プロジェクタ(複数可)の構成の変化に従って変化してもよい。例えば、ズームを適用すると視野が狭くなる場合がある。
【0020】
モーションキャプチャシステム(複数可)102は、高解像度カメラ、赤外線(IR)検出器、センサなどを含んでもよい。カメラ(複数可)は、可視光波長、非可視光波長、またはその両方で環境100を画像化してもよい。カメラ(複数可)はまた、特定の立体角を表す視野を有し、カメラの視野は、カメラ(複数可)の構成の変化に従って変化してもよい。例えば、カメラ(複数可)の光学ズームは、カメラの視野を狭める場合がある。
【0021】
場合によっては、環境100は、複数のカメラおよび/または様々なタイプのカメラを含んでもよい。例えば、カメラには、3次元(3D)カメラ、赤外線(IR)カメラ、および/または赤、緑、青(RGB)カメラを含んでもよい。場合によっては、3DカメラおよびIRカメラは、環境内の物体(例えば、マーカ)の深さを検出するための情報をキャプチャしてもよく、一方、RGBカメラは、環境100内の色の変化を識別することによって物体のエッジを検出してもよい。場合によっては、モーションキャプチャシステム(複数可)102は、前述の機能のすべてを実施するように構成された単一のカメラを含んでもよい。
【0022】
モーションキャプチャシステム(複数可)102の1つまたは複数の構成要素は、固定された向きでシャーシに取り付けられてもよく、またはアクチュエータを介してシャーシに取り付けられてもよく、その結果、シャーシおよび/または1つまたは複数の構成要素が移動することができる。例として、アクチュエータには、圧電アクチュエータ、モータ、線形アクチュエータ、およびシャーシおよび/またはプロジェクタ(複数可)および/またはカメラ(複数可)など、それに取り付けられた1つまたは複数の構成要素を変位または移動するように構成された他の装置を含んでもよい。例えば、アクチュエータは、パンモータ、チルトモータなどを含んでもよい。パンモータは、シャーシをヨーモーションで回転させ、チルトモータは、シャーシのピッチを変更することができる。場合によっては、シャーシは、追加的または代替的に、シャーシが回転モーションで移動することを可能にするロールモータを含んでもよい。シャーシをパンニング、傾斜、および/または回転させることによって、モーションキャプチャシステム(複数可)102は、環境100の異なる視界をキャプチャすることができる。
【0023】
モーションキャプチャシステム(複数可)102はまた、測距システムを含んでもよい。測距システムは、モーションキャプチャシステム(複数可)102から、スキャンされた実体、物体(例えば、ユーザ104および/またはコントローラ110)、および/または一組の物体までの距離情報を提供してもよい。測距システムは、レーダ、光検出および測距(light detection and ranging、LIDAR)、超音波測距、立体測距、構造化光分析、飛行時間観測(例えば、カメラで感知された画素の飛行時間の往復測定)などを備え、かつ/またはそれらを使用してもよい。構造化光分析では、上記のように、プロジェクタ(複数可)は、環境100内に構造化光パターンを投影してもよく、カメラ(複数可)は、反射光パターンの画像をキャプチャしてもよい。モーションキャプチャシステム(複数可)102は、環境100内の異なる点、領域、または画素に対応する深度または距離を決定するために、プロジェクタとカメラとの間の横方向の変位に起因する反射パターンの変形を分析してもよい。
【0024】
モーションキャプチャシステム(複数可)102は、モーションキャプチャシステム(複数可)102のそれぞれの構成要素間の距離(複数可)を決定または知ることができ、これは、環境100からの構造化光パターンおよび/または他の光データの回復を支援することができる。モーションキャプチャシステム(複数可)102はまた、距離を使用して、他の距離、寸法を計算し、かつ/またはその他の方法で、環境100内の実体または物体の特徴付けを支援してもよい。プロジェクタの視野およびカメラの視野の相対的な角度および大きさが変化し得る実装では、モーションキャプチャシステム(複数可)102は、そのような寸法を決定および/または知ることができる。
【0025】
環境100内で、ユーザ104は、VRヘッドセット108およびコントローラ110を保持する。VRヘッドセット108は、仮想環境、ゲームプレイのシミュレートされた視界を提示するか、または仮想空間内の物体を示す内部ディスプレイ(図示せず)を含んでもよい。VRヘッドセット108は、追加のセンサとともにヘッドバンドを含んでもよい。いくつかの実施形態では、VRヘッドセット108は、ヘルメットまたはキャップを備え、光信号を受信するためにヘルメットまたはキャップの上部の様々な位置に位置されたセンサを備えてもよい。
【0026】
本明細書で詳細に論じられるように、ユーザ104および/またはコントローラ110は、マーカを備えてもよい。モーションキャプチャシステム(複数可)102は、光を投影するプロジェクタ(複数可)およびマーカの反射画像をキャプチャするカメラ(複数可)を介して、環境100内のユーザ104および/またはコントローラ110の位置を検出してもよい。マーカは、環境100内のユーザ104、またはユーザ104の一部分(例えば、手または指)の向きおよび/または位置、ならびに環境100内のコントローラ110の向きおよび/または位置を決定するために利用されてもよい。測距システムはまた、モーションキャプチャシステム(複数可)102とマーカとの間の距離を決定することによって、ユーザ104(またはその一部分)およびコントローラ110の場所の決定を支援してもよい。
【0027】
モーションキャプチャシステム(複数可)102、VRヘッドセット108、および/またはコントローラ110は、1つまたは複数のリモートコンピューティングリソース(複数可)112に通信可能に結合されてもよい。リモートコンピューティングリソース(複数可)112は、環境100およびモーションキャプチャシステム(複数可)102、VRヘッドセット108、および/またはコントローラ110から離れていてもよい。例えば、モーションキャプチャシステム(複数可)102、VRヘッドセット108、および/またはコントローラ110は、ネットワーク114を介してリモートコンピューティングリソース(複数可)112に通信可能に結合されてもよい。場合によっては、モーションキャプチャシステム(複数可)102、VRヘッドセット108、および/またはコントローラ110は、有線技術(例えば、ワイヤ、USB、光ファイバケーブルなど)、無線技術(例えば、RF、セルラ、衛星、Bluetoothなど)、および/または他の接続技術を介して、ネットワーク114に通信可能に結合されてもよい。ネットワーク114は、データおよび/または音声ネットワークを含む任意のタイプの通信ネットワークの代表であり、有線インフラストラクチャ(例えば、ケーブル、CAT5、光ファイバケーブルなど)、無線インフラストラクチャ(例えば、RF、セルラ、マイクロ波、衛星、Bluetoothなど)、および/または他の接続技術を使用して実装されてもよい。
【0028】
リモートコンピューティングリソース(複数可)112は、1つまたは複数のサーバとして実装されてもよく、場合によっては、プロセッサ、記憶装置、ソフトウェア、データアクセスなどのコンピューティングインフラストラクチャとして実装されたネットワークアクセス型コンピューティングプラットフォームの一部分を形成してもよく、これは、インターネットなどのネットワークを介して維持され、アクセス可能である。リモートコンピューティングリソース(複数可)112は、サービスを配信するシステムの物理的な場所および構成についてエンドユーザの知識を必要としない。これらのリモートコンピューティングリソース(複数可)112に関連する一般的な表現としては、「オンデマンドコンピューティング」、「software as a service(SaaS)」、「プラットフォームコンピューティング」、「ネットワークアクセス型プラットフォーム」、「クラウドサービス」、「データセンタ」などが挙げられてもよい。
【0029】
モーションキャプチャシステム(複数可)102、VRヘッドセット108、および/またはコントローラ110は、ネットワーク114および/または1つまたは複数のリモートコンピューティングリソース(複数可)112への無線接続を容易にするための1つまたは複数の通信インターフェースを含んでもよい。加えて、1つまたは複数の通信インターフェースはまた、モーションキャプチャシステム(複数可)102、VRヘッドセット108、および/またはコントローラ110との間のデータの送信(例えば、互いの間の通信)を可能にしてもよい。しかしながら、場合によっては、1つまたは複数の通信インターフェースは、有線接続も含み得る。
【0030】
リモートコンピューティングリソース(複数可)112は、プロセッサ(複数可)116およびメモリ118を備え、これらは、1つまたは複数のモデル(複数可)120を格納するか、またはそうでなければアクセスしてもよい。リモートコンピューティングリソース(複数可)112は、モーションキャプチャシステム(複数可)102からモーションデータ122を受信し、コントローラ110からタッチデータ124および/または力データ126を受信してもよい。タッチデータ124は、ユーザのタッチ入力に対応するコントローラ(複数可)110上の場所(または複数の場所)を示すタッチプロファイルを含んでもよい。タッチデータ124はまた、コントローラ(複数可)110へのタッチ入力の欠如を示してもよい。そうすることで、タッチデータ124は、どの指(複数可)がコントローラに触れているか、かつ/または指(複数可)のどの部分がコントローラ110に触れているかを示してもよい。場合によっては、コントローラ110のハンドルに沿って空間的に分散された近接センサ(例えば、静電容量センサ)のアレイは、タッチ入力を検出し、タッチデータを生成および/またはリモートコンピューティングリソース(複数可)112に送信してもよい。追加的に、FSRは、コントローラ110上のタッチ入力の力の値を示す力データ126を生成してもよい。本明細書で説明するように、タッチデータ124および/または力データ126は、VR環境内での手の位置、把持、または手のジェスチャを示してもよい。次に、リモートコンピューティングリソース(複数可)112は、アニメーション(複数可)128または他の画像データを表示のためにVRヘッドセット108に送信してもよい。
【0031】
本明細書で詳細に論じるように、リモートコンピューティングリソース(複数可)112は、モデル(複数可)120を利用して、VRヘッドセット108上に表示されるアニメーション128を生成してもよい。場合によっては、リモートコンピューティングリソース(複数可)112は、モーションデータ122、タッチデータ124、および/または力データ126を使用して、モデル(複数可)120を生成および/または訓練してもよい。リモートコンピューティングリソース(複数可)112は、ユーザとの対話を通じてモデル(複数可)120を生成および/または訓練し、モーションデータ122、タッチデータ124、および/または力データ126を受信してもよい。プロセッサ(複数可)116は、モーションデータ122を分析し、モーションデータ122をタッチデータ124および/または力データ126と相関させてもよい。追加的に、プロセッサ(複数可)116は、タッチデータ124を分析し、タッチデータ124を力データ126に関連付けてもよい。
【0032】
プロセッサ(複数可)116は、ユーザの特性を学習するために、モーションデータ122のキャプチャに関連付けられた時間を相関させてもよい。例えば、プロセッサ(複数可)116は、タッチデータ124(例えば、コントローラ110上の場所)および/または力データ126の特性を学習し、これらの特性を手の特定のジェスチャに関連付けてもよい。データ分析を実施した後、プロセッサ(複数可)116は、モーションデータ122、タッチデータ124、および/または力データ126を相関させるために、モデル120(複数可)を生成してもよい。言い換えれば、プロセッサ(複数可)116は、タッチデータ124および/または力データ126を分析して、モーションデータ122が表すように、タッチデータ124および/または力データ126を手のジェスチャと相関させるか、またはそうでなければ関連付けてもよい。モーションデータ122、タッチデータ124、および/または力データ126に基づいてモデル(複数可)120を訓練することにより、モデル(複数可)120は、ユーザによるその後の対話で(すなわち、ゲームプレイ中に)受信されたタッチデータ124および/または力データ126を使用して手のジェスチャを決定することができる。すなわち、モデル(複数可)120は、タッチデータ124および/または力データ126を入力として受信し、タッチデータ124および/または力データ126を利用して、ユーザ104の手のジェスチャを決定してもよい。例えば、ユーザがコントローラ110を保持しているとき、コントローラ110は、近接センサのアレイによって生成されたタッチデータ124を受信してもよく、タッチデータ124は、コントローラ110でのタッチ入力の場所を示す。タッチデータ124はまた、ユーザの指とコントローラ110との間の静電容量値を測定することによって、コントローラ110に対するユーザの手の近接性を示してもよい。例えば、ユーザは、コントローラ110の上に自身の指をホバリングさせてもよい。コントローラ110は、タッチデータ124をリモートコンピューティングリソース(複数可)112に送信してもよく、ここで、タッチデータ124は、モデル(複数可)120に入力される。追加的に、コントローラ110のFSRは、タッチ入力に関連付けられた力の量を示す力データ126を生成してもよい。コントローラ110は、力データ126をリモートコンピューティングリソース(複数可)112に送信してもよい。
【0033】
コントローラ(複数可)110からタッチデータ124および/または力データ126を受信すると、プロセッサ(複数可)116は、タッチデータ124および/または力データ126の特性に基づいてモデル(複数可)120のうちの1つまたは複数を選択してもよい。例えば、プロセッサ(複数可)116は、ユーザ104が(力データ126を使用して)コントローラ110を把持する力の量および/または(タッチデータ124を使用して)コントローラ110上のユーザ104の把持場所に基づいて、手のジェスチャを生成するための特定のモデル(複数可)120を選択してもよい。
【0034】
追加的に、場合によっては、プロセッサ(複数可)116は、ユーザの興味、性別、年齢など他のユーザ特性に部分的に基づいて、モデル(複数可)120を選択してもよい。例えば、ユーザ104がコントローラ110をどのように保持するか、かつ/または、コントローラ110がどこからタッチ入力を受信するか、に応じて、プロセッサ(複数可)116は、ユーザ104の年齢および/または手の大きさを識別してもよい。そのような情報を利用して、異なるモデル(複数可)120を選択し、かつ/またはユーザ104の手を表すアニメーション(複数可)128を生成してもよい。
【0035】
例えば、プロセッサ(複数可)116は、タッチデータ124をモデル(複数可)120に入力してもよい。プロセッサ(複数可)116は、モデル(複数可)120を使用して、タッチデータ124および/または力データ126に対応するアニメーション(複数可)128を生成してもよい。一例として、タッチデータ124および/または力データ126を使用し、かつ、タッチデータ124および/または力データ126をモデル(複数可)120に入力することにより、プロセッサ(複数可)116は、ユーザが握りこぶしでコントローラ110を保持していると判定してもよい。プロセッサ(複数可)116は、ユーザ104の握りこぶしを図示するアニメーション128を生成し、表示のためにアニメーション128をVRヘッドセット108に送信してもよい。
【0036】
場合によっては、プロセッサ(複数可)116は、ランキングを利用して、モデル(複数可)120と関連して格納されたプロファイルを利用して、タッチデータ124および/または力データ126によって表される最も確率的な手のジェスチャを決定してもよい。例えば、プロセッサ(複数可)116は、タッチデータ124および/または力データ126をモデル(複数可)120の一部分またはモデル(複数可)120のすべてと比較して、特定の手のジェスチャがユーザのタッチ入力に対応する確率を決定してもよい。そのような場合、モデル(複数可)120は、コントローラ110で受信されたタッチ入力の場所を示すタッチデータ124および/またはコントローラ110でのタッチ入力の相対的な力を示す力データ126と関連して格納されてもよい。そのような場合、タッチデータ124および/または力データ126は、モデル(複数可)120を特徴付けてもよい。したがって、ゲームプレイ中に、リモートコンピューティングリソース(複数可)112がタッチデータ124および/または力データ126を受信したとき、リモートコンピューティングリソース(複数可)112は、1つまたは複数のモデル(複数可)120を選択して、受信されたタッチデータ124および/または力データ126を、モデル(複数可)120と関連して格納されたタッチデータおよび/または力データとそれぞれ比較することによってアニメーション128を生成してもよい。
【0037】
場合によっては、リモートコンピューティングリソース(複数可)112はまた、将来のイベントの予測モデリングを実施してもよい。予測モデリングは、結果が生じるか、または生じないかの確率を決定してもよい。例えば、プロセッサ(複数可)116は、メモリ118から利用可能なモーションデータ122、タッチデータ124、および/または力データ126を利用して、将来の手のジェスチャの確率を決定してもよい。一例として、第1のタッチデータ124および/または第1の力データ126を受信し、タッチデータ124および/または力データ126をモデル(複数可)120に入力して第1の手のジェスチャを決定した後、プロセッサ(複数可)116は、次に来る第2の手のジェスチャを予測し、VRヘッドセット108上に表示するための第2の手のジェスチャを生成してもよい。すなわち、プロセッサ(複数可)116は、以前のモーションデータ122、タッチデータ124、および/または力データ126を利用して、ユーザ104の将来の手のジェスチャを予測し、対応するアニメーション(複数可)128を生成してもよい。場合によっては、予測は、VRヘッドセット108上に表示されている、リモートコンピューティングリソース(複数可)112によって生成されたジェスチャ間の呼出時間を短縮してもよい。
【0038】
追加的に、プロセッサ(複数可)116は、予測されたジェスチャに関連する特定の確率および/または信頼度を決定してもよい。例えば、予測された第2の手のジェスチャが特定の信頼水準またはしきい値内にある場合、プロセッサ(複数可)116は、第2の手のジェスチャに対応するアニメーション(複数可)128を生成し、表示のためにそのジェスチャをVRヘッドセット108に提供してもよい。
【0039】
場合によっては、統計分析技術などの検証演算により、モデル(複数可)120の精度を検証してもよい。すなわち、上記のように、モーションデータ122、タッチデータ124、および/または力データ126を反復的にキャプチャすることによって、プロセッサ(複数可)116は、モデル(複数可)120を訓練して、タッチデータ124および/または力データ126を、モーションデータ122(例えば、機械学習アルゴリズムまたは技術)内に表される手のジェスチャとより良好に相関させてもよい。モデル(複数可)120を訓練することにより、表示されたアニメーション(複数可)128が、コントローラ110で受信されたタッチデータ124および/または力データ126を表す精度を高めてもよい。
【0040】
プロセッサ(複数可)116はまた、異なるタイプのユーザとの対話に基づいて、モデル(複数可)120を学習する構成要素を含んでもよい。例えば、プロセッサ(複数可)116は、モデル(複数可)120を構築および/または改良してもよく、または既存のモデル(複数可)120の組み合わせおよび/または混合を学習してもよい。本明細書に記載のモデル生成技術はまた、モデル(複数可)120を訓練するための勾配押上技術および/またはハイパーパラメータ調整のうちの少なくとも1つを含んでもよい。勾配押上は、例えば、決定木であってもよい弱い予測モデルの連携の形で予測モデルを生成することを含んでもよい。予測モデルは、段階的に構築されてもよく、任意の微分損失関数の最適化を可能にしてもよい。ハイパーパラメータ調整には、訓練プロセス中のハイパーパラメータの最適化を含んでもよい。例えば、モデル120は、訓練データセットを受信してもよい。モデル120の総精度を評価する際に、ハイパーパラメータを調整してもよい。
【0041】
追加的に、または代替的に、モデル(複数可)120を訓練することには、モデル(複数可)120の精度を高める入力特徴および/またはモデル(複数可)120の精度を低下させるか、あるいはモデル(複数可)120にまったくまたはほとんど影響を及ぼさない他の入力特徴を識別することを含んでもよい。モデル(複数可)120は、精度を低下させるか、または精度にまったくまたはほとんど影響を及ぼさない特徴を利用することを控えながら、精度を高める特徴を利用するように再適合されてもよい。
【0042】
本明細書で使用される場合、プロセッサ(複数可)116などのプロセッサは、複数のプロセッサおよび/複数のコアを有するプロセッサを含んでもよい。さらに、プロセッサは、異なるタイプの1つまたは複数のコアを含んでもよい。例えば、プロセッサは、アプリケーションプロセッサユニット、グラフィック処理ユニットなどを含んでもよい。一実装形態では、プロセッサは、マイクロコントローラおよび/またはマイクロプロセッサを含んでもよい。プロセッサ(複数可)116は、グラフィック処理ユニット(graphics processing unit、GPU)、マイクロプロセッサ、デジタル信号プロセッサ、または当該技術分野で知られている他の処理ユニットもしくは構成要素を含んでもよい。代替的に、または追加的に、本明細書で機能的に説明される機能は、少なくとも部分的に、1つまたは複数のハードウェアロジック構成要素によって実施され得る。例えば、限定されるものではないが、使用できるハードウェア論理構成要素の実例となるタイプとしては、フィールドプログラマブルゲートアレイ(field-programmable gate array、FPGA)、特定用途向け集積回路(application-specific integrated circuit、ASIC)、特定用途用標準品(application-specific standard product、ASSP)、システム・オン・チップシステム(system-on-a-chip system、SOC)、複合プログラマブル論理装置(complex programmable logic device、CPLD)などが挙げられてもよい。追加的に、各プロセッサ(複数可)116は、プログラム構成要素、プログラムデータ、および/または1つまたは複数のオペレーティングシステムを記憶することもできる独自のローカルメモリを所持してもよい。
【0043】
メモリ118は、コンピュータ可読命令、データ構造、プログラム構成要素、または他のデータなどの情報の記憶のための任意の方法または技術で実装される、揮発性および不揮発性メモリ、取り外し可能媒体および取り外し不可能媒体を含んでもよい。そのようなメモリ118としては、これらに限定されるものではないが、RAM、ROM、EEPROM、フラッシュメモリまたはその他のメモリ技術、CD-ROM、デジタル多用途ディスク(digital versatile disk、DVD)またはその他の光メモリ、磁気カセット、磁気テープ、磁気ディスクメモリまたはその他の磁気記憶装置、RAID記憶システム、あるいは所望の情報を記憶するために使用され得、かつ、コンピューティング装置によってアクセスされ得る任意の他の媒体が挙げられてもよい。メモリ118は、コンピュータ可読記憶媒体(computer-readable storage media、「CRSM」)として実装されてもよく、これは、メモリ118に記憶された命令を実行するためにプロセッサ(複数可)116によってアクセス可能な任意の利用可能な物理媒体であってもよい。1つの基本的な実装では、CRSMには、ランダムアクセスメモリ(「RAM」)およびフラッシュメモリを含んでもよい。他の実装では、CRSMには、これらに限定されるものではないが、読み取り専用メモリ(「ROM」)、電気的消去再書込み可能な読出し専用メモリ(「EEPROM」)、または所望の情報を記憶するために使用され得、かつ、プロセッサ(複数可)によってアクセスされ得る任意の他の有形媒体を含んでもよい。
【0044】
実例となるコントローラ
図2は、コントローラ110を保持しているユーザ104を示す(これは、
図1のコントローラ110を表し、かつ/またはそれと同様であってもよい)。コントローラ110は、ハンドル、ストラップ、把持部など、コントローラ110の任意の部分に結合および/または装着してもよいマーカ200を備えてもよい。同様に、ユーザ104の一部分には、指先、指関節、指関節、手首など、ユーザ104の手におよび/またはそれに沿って装着するマーカ202を含んでもよい。場合によっては、マーカ200、202は、粘着剤を使用して、それぞれ、ユーザ104および/またはコントローラ110に装着してもよい。
【0045】
マーカ200、202は、モーションキャプチャシステム(複数可)102のプロジェクタ(複数可)によって放出された電磁放射(例えば、赤外線)に応答する赤外線要素、反射器、および/または画像を含んでもよい。追加的に、または代替的に、マーカ200、202は、モーションキャプチャシステム(複数可)102のカメラによってキャプチャされた電磁放射(例えば、赤外線)を放出する追跡ビーコンを含んでもよい。
【0046】
上記のように、モーションキャプチャシステム(複数可)102は、環境100などの環境の少なくとも一部分、および環境内部に含まれる物体をスキャンして、マーカ200、202を検出してもよい。例えば、プロジェクタ(複数可)は、赤外線をユーザ104およびコントローラ(複数可)110に向けて投影し、マーカ200、202は、光を反射し、モーションキャプチャシステム(複数可)102のカメラ(複数可)および/またはセンサは、反射光をキャプチャしてもよい。その中で、画像を分析することにより、コントローラ(複数可)110および/またはユーザ104の手の位置および/または向きを決定してもよい。例えば、リモートコンピューティングリソース(複数可)112(または他のコンピューティング装置)は、カメラによってキャプチャされた画像を分析および解析し、環境100内のマーカ200、202の位置を識別してもよい。リモートコンピューティングリソース(複数可)112は、マーカ200、202の位置を使用して、ユーザ104が行ったジェスチャ、手の位置、指の位置など(すなわち、どの指が伸張され、どの指が丸くなっているかなど)を決定してもよい。追加的に、モーションキャプチャシステム(複数可)102(または他のコンピューティングシステム)は、マーカ200、202の場所/パターンに関する情報を利用して、手、または手のジェスチャ(例えば、握りこぶし)を表す骨格モデル(例えば、アニメーション化された3D骨格モデル)を生成してもよい。
【0047】
図3~
図7は、本開示の例示的な実施形態による、例示的なコントローラ300(
図1および
図2のコントローラ110を表し、かつ/またはそれと同様であってもよい)を示す。場合によっては、VRビデオゲームシステム、ロボット、武器、または医療装置などの電子システムは、コントローラ300を利用してもよい。コントローラ300は、ハンドル312を有するコントローラ本体310、およびユーザの手(例えば、ユーザの左手)にコントローラ300を保持するための手の保持部320を含んでもよい。場合によっては、ハンドル312は、実質的に円筒形の管状ハウジングを備えてもよい。この文脈において、実質的に円筒形の形状は、一定の直径、または完全に円形の断面を有する必要はない。
【0048】
コントローラ本体310は、(ハンドル312と遠位端311との間に)ヘッドを備えてもよく、このヘッドは、任意に、1つまたは複数の親指操作式の制御部314、315、316を備えてもよい。例えば、ヘッドは、通常の操作中、およびコントローラ300がユーザの手に保持されている間、ユーザの親指によって便利に操作される親指操作式の制御部と見なされる、傾斜ボタン、または任意の他のボタン、ノブ、ホイール、ジョイスティック、あるいはトラックボールを備えてもよい。
【0049】
場合によっては、コントローラ300は、コントローラ本体310に固定された追跡部材330を備え、2つの鼻部332、334を備えてもよく、各鼻部は、追跡部材330の2つの対向する遠位端のうちの対応する1つから突出している。場合によっては、追跡部材330は、弓形を有する追跡弧形を含んでもよい。場合によっては、追跡部材330は、内部に/その上に配置された複数の追跡変換器(
図2のマーカ200、202を表し、かつ/またはそれらと同様であってもよい)を含んでもよい。場合によっては、各突出する鼻部332、334は、少なくとも1つの追跡変換器を含んでもよい。追加的に、または代替的に、コントローラ本体310は、追跡変換器を含んでもよく、少なくとも1つの遠位追跡変換器が遠位端311に隣接して配置される。追跡センサを含んでもよい追跡変換器は、モーションキャプチャシステム(複数可)102によって放出された電磁放射(例えば、赤外線)に応答してもよい。追加的に、または代替的に、追跡変換器は、モーションキャプチャシステム(複数可)102のカメラによって受信された電磁放射(例えば、赤外線)を放出する追跡ビーコンを含んでもよい。例えば、モーションキャプチャシステム(複数可)102のプロジェクタは、パルス状の赤外線をコントローラ300に向けて広く散布してもよい。ここで、追跡部材330の複数の追跡変換器は、散布されたパルス状の赤外線を受信または追尾する赤外線センサを備えてもよい。場合によっては、各鼻部332、334の追跡変換器(例えば、各鼻部の3つのセンサ)は、露出(すなわち、ユーザの手の周りに)を増加させるために、プロジェクタによって放出された電磁放射を受信するために、または電磁放射をカメラに送信するために、許容できない量の追尾なしで、より多くの角度で追跡部材330の各遠位端でユーザの手に張り出してもよい。
【0050】
追跡部材330および/またはコントローラ本体310の材料は、互いに対して感知できるほどに並進または回転しないように互いに強固に固定されている、硬質プラスチックなどの実質的に剛性の材料を含んでもよい。例えば、
図3~
図7に示すように、追跡部材330は、2つの場所でコントローラ本体310に結合されてもよい。手の保持部320は、2つの場所間でハンドル312の外面に対してユーザの手のひらを付勢するために、これらの2つの場所に隣接するコントローラ300(例えば、コントローラ本体310および/または追跡部材330)に装着されてもよい。
【0051】
特定の実施形態では、追跡部材330およびコントローラ本体310は、一緒に組み立てられるのではなく、材料の連続性を有する一体型のモノリシック構成要素を備えてもよい。例えば、単一の射出成形プロセスにより、追跡部材330とコントローラ本体310とを一緒に成形してもよく、その結果、追跡部材330およびコントローラ本体310の両方を備える1つの一体型の硬質プラスチック構成要素が得られる。代替的に、追跡部材330およびコントローラ本体310は、後で一緒に組み立てられる、別々に製作された部品を備えてもよい。いずれの場合においても、追跡部材330は、コントローラ本体310に固定されてもよい。
【0052】
手の保持部320は、
図3の開位置に示されている。手の保持部320は、ユーザがVRヘッドセット(例えば、VRヘッドセット108)によって視野を遮られた状態でコントローラ300を握持したときに、手の保持部320とコントローラ本体310との間にユーザの左手の挿入を容易にするために、任意に、湾曲した弾性部材322によって開位置に付勢されてもよい。例えば、湾曲した弾性部材322は、弾性的に撓む可撓性金属ストリップを備えるか、または実質的に弾性的に撓み得るナイロンなどの代替プラスチック材料を備えてもよい。クッションまたは布材料324(例えば、ネオプレンシース)は、ユーザに快適さを提供するために、湾曲した弾性部材322を部分的に、または完全に覆ってもよい。代替的は、布材料324は、ユーザの手に面する側など、湾曲した弾性部材322の側にのみ付着してもよい。
【0053】
手の保持部320は、例えば、ばね付勢チョック328によって締め付けられるドローコード326を備えることによって長さを調整してもよい。ドローコード326は、首ひもとして使用される余分な長さを有してもよい。クッションまたは布材料324は、ドローコード326に結合されてもよい。特定の実施形態では、締め付けられたドローコード326の張力によって湾曲した弾性部材322に予荷重をかけてもよい。そのような実施形態では、湾曲した弾性部材322が(開位置に付勢するために)手の保持部320に付与する張力は、ドローコード326が締め付けられていないときに手の保持部320を自動的に開放させてもよい。追加的に、または代替的に、手の保持部320の長さは、クリート、(手を挿入したときに一時的に伸び、その結果、弾性張力を加えて手の甲を押す)弾性バンド、長さ調節が可能なフック&ループストラップ取付など、他の方法で調整してもよい。
【0054】
手の保持部320は、ハンドル312と追跡部材330との間に配置され、ユーザの手の甲に接触してもよい。例えば、
図4は、ユーザの左手が中に挿入されているが、コントローラ本体310を握持していない、操作中のコントローラ300を示す。
図4では、手の保持部320が閉じられ、手の上で締められて、ハンドル312の外面に対してユーザの手のひらを物理的に付勢する。手の保持部320が閉じられたとき、ユーザがコントローラ本体310を握持していない場合でさえ、ユーザの手内にコントローラ300を保持してもよい。
【0055】
コントローラ本体310のハンドル312は、その外面の周りに部分的に、または完全に空間的に分散された近接センサのアレイを備える。場合によっては、近接センサのアレイの近接センサは、必ずしも等しい大きさである必要はなく、それらの間の間隔が必ずしも等しい必要はない。場合によっては、近接センサのアレイは、コントローラ本体310の周りに空間的に分散されたグリッドを含んでもよい。近接センサのアレイは、ハンドル312の外面に対するユーザの指(複数可)の近接性に応答する。例えば、近接センサのアレイは、ハンドル312の外面の下に埋め込まれた静電容量センサのアレイを含んでもよく、ここで、外面は、ユーザからのタッチを感知するための電気絶縁性材料を備える。静電容量センサのアレイとユーザの手の一部分との間の静電容量は、それらの間の距離に反比例するように関連してもよい。静電容量を感知するために、RC発振回路は、静電容量センサのアレイの素子に接続してもよく、RC発振回路の時定数、したがって、発振の周期および周波数は、静電容量に応じて変化することに注意されたい。このようにして、回路は、ハンドル312の外面からの指(複数可)の解放を検出してもよい。上記のように、近接センサのアレイは、ユーザからのタッチ入力に応答してタッチデータ(例えば、タッチデータ124)を生成してもよく、タッチデータは、ハンドル312の外面に対するユーザの指(複数可)の近接性を示す。
【0056】
手の保持部320は、ユーザの手の周りでしっかりと閉じているとき、コントローラ300が手から落ちて、指がハンドル312上の近接センサのアレイに対して過度に平行移動するのを防止してもよく、それにより、指のモーションおよび位置を確実に感知する。追加的に、モーションキャプチャシステム(複数可)102および/またはリモートコンピューティングリソース(複数可)112は、近接センサの配列からのタッチデータ124をより良好に使用して、制御されたキャラクタの手の開き、指差し、またはコントローラ300に対する、または互いに対する指の他の動き(例えば、手のジェスチャ)をレンダリングするために、解剖学的に可能な指の動きを具現化したアルゴリズムを含んでもよい。このように、コントローラ300のユーザの動きおよび/または指は、VRゲームシステム、防衛システム、医療システム、産業用ロボットまたは機械、あるいは別の装置を制御するのに役立ち得る。(例えば、ゲーム、訓練などのための)VRシステムアプリケーションでは、システムは、追跡変換器の動きに基づいてスローイングモーションをレンダリングし、コントローラ300のハンドル312の外面から(例えば、タッチデータ124を使用して)ユーザの指の解放の感知に基づいて、投げられた物体の解放をレンダリングしてもよい。
【0057】
したがって、手の保持部320は、ユーザが、コントローラ300を実際に手から離すか、または床に投げる、かつ/または落とすことなく、コントローラ300を「手放す」ことを可能にし、これにより、制御された電子システムの追加機能を有効にしてもよい。例えば、コントローラ本体310のハンドル312のユーザの握持の解放および/または回復を感知することは、ゲームプレイ内の物体の対応する投げおよび/または握持を示してもよい。したがって、手の保持部320は、そのようなアニメーションの間、ユーザの手を安全に固定および保持してもよい。場合によっては、
図3~
図7の実施形態における手の保持部320の場所は、例えば、ユーザがVR環境で感知されたプロンプトに応答して移動するとき(例えば、VRヘッドセット108によって実質的に目が見えない状態にある間)、追跡部材330が実世界での衝撃からユーザの手の甲を保護するのに役立ち得る。
【0058】
本明細書で論じられるように、コントローラ300は、ユーザからのタッチに関連付けられた力の値(例えば、力データ126)を検出するためのFSRを備えてもよい。力データ126は、VR環境でのユーザの動きおよび/または把持を示すために、タッチデータ124と連携して利用されてもよい。
【0059】
特定の実施形態では、コントローラ300は、コントローラ本体310内に配置された再充電式電池を含んでもよく、かつ/または手の保持部320(例えば、手の保持ストラップ)は、再充電式電池に電気的に結合された導電性充電ワイヤを含んでもよい。コントローラ300はまた、好ましくは、モーションキャプチャシステム(複数可)102の残りの部分と通信するための無線周波数(RF)送信機も備えてもよい。再充電式電池は、RF送信機に電力を供給してもよく、親指操作式の制御部314、315、316、コントローラ本体310のハンドル312内の近接センサのアレイ、および/または追跡部材330内の追跡センサに応答してもよい。
【0060】
図5および
図6は、手の保持部320が閉じているとき、および手がコントローラ本体310を握持しているときの操作中のコントローラ300を示す。
図5および
図6はまた、親指が親指操作式の制御部のうちの1つまたは複数(例えば、トラックパッド316)を操作し得ることを示す。
【0061】
図7は、特定の実施形態では、コントローラ300が、一対のコントローラ内の左側コントローラを備え、同様に右側コントローラ700を備えてもよいことを示す。特定の実施形態では、コントローラ300、700は、それぞれ近接センサのアレイおよびFSRから、同時にユーザの両手から、タッチデータ124および/または力データ126を個々に生成してもよい。集合的に、リモートコンピューティングリソース(複数可)112は、(モーションキャプチャシステム(複数可)102のカメラ(複数可)からの)モーションデータ122、ならびに(コントローラ300、700からの)タッチデータ124および/または力データ126を受信して、VR体験を強化してもよい。
【0062】
図8Aおよび
図8Bは、本開示の別の例示的な実施形態による、右側コントローラ800の正面図、右側コントローラ800の背面図をそれぞれ示す。場合によっては、右側コントローラ800は、
図1のコントローラ(複数可)110および/または
図3~
図7のコントローラ300に関して上で論じられた構成要素を含んでもよい。
【0063】
コントローラ800は、ヘッド810およびハンドル812を備えるコントローラ本体を備えてもよい。
図8Aおよび
図8Bの実施形態では、ヘッド810は、少なくとも1つの親指操作式の制御部A、B、808を備え、また人差し指によって操作可能な制御部(例えば、トリガ809)を備えてもよい。場合によっては、ハンドル812は、外殻840によって部分的に覆われた管状ハウジングを備えてもよい。
【0064】
外殻840の内面は、空間的に分散された近接センサのアレイを含んでもよい。近接センサのアレイは、外殻840に対するユーザの指の近接性に応答してもよい。近接センサのアレイの近接センサは、必ずしも等しい大きさである必要はなく、また、それらは、必ずしも互いに規則的または等しく間隔をあける必要もない。特定の実施形態では、近接センサのアレイは、外殻840の内面に結合されたフレックス回路に接続され得る複数の静電容量センサであってもよい。
【0065】
追跡部材830は、ヘッド810およびハンドル812の端部でコントローラ本体に固定されてもよい。手の保持部820は、ヘッド810とハンドル812の端部との間の外殻840に対してユーザの手のひらを物理的に付勢するように構成されている。手の保持部820は、好ましくは、ハンドル812と追跡部材830との間に配置され、長さが調整され、ユーザの手の甲に接触する手の保持ストラップを備えてもよい。
図8Aおよび
図8Bの実施形態では、手の保持部820は、(ハンドル812の遠位端に隣接する)コードロック826によって長さが調整され得るドローコード828を備えてもよく、コードロック826の場所でドローコード828によって滑りモーションを選択的に防止する。
【0066】
図8Aおよび
図8Bの実施形態では、追跡変換器832、833は、追跡部材830上に配置されている。場合によっては、追跡部材830の対向する遠位端に突出する鼻部は、追跡変換器822、833を備えてもよい。場合によっては、ヘッド810の遠位領域は、追加の追跡変換器834を備えてもよい。追跡変換器832、833、および834は、モーションキャプチャシステム(複数可)102によって放出された電磁放射(例えば、赤外線)に応答する追跡センサを備えてもよいか、またはモーションキャプチャシステム(複数可)102によって受信された電磁放射(例えば、赤外線)を放出する追跡ビーコンを備えてもよい。例えば、モーションキャプチャシステム(複数可)102は、パルス状の赤外線をコントローラ800に向けて広く散布するプロジェクタ(複数可)を備えてもよい。ここで、複数の追跡変換器832、833、および834は、散布されたパルス状の赤外線を受信する赤外線センサを備えてもよい。モーションキャプチャシステム(複数可)102は、追跡センサの応答を受信し、モーションキャプチャシステム(複数可)102および/またはリモートコンピューティングリソース(複数可)112は、そのような応答を解釈して、コントローラ800の場所および向きを効果的に追跡してもよい。
【0067】
プリント回路基板(printed circuit board、PCB)は、ハンドル812内に取り付けられ、コントローラ800内の構成要素(例えば、ボタン、電池など)を電気的に接続してもよい。PCBは、力感知抵抗器(FSR)を備え、コントローラ800は、外殻840を介して加えられた圧縮力を、FSRに対して内向きにハンドルの管状ハウジングの外側に向かって伝達するプランジャを備えてもよい。特定の実施形態では、FSRは、近接センサのアレイと連携して、ユーザによる握持の開始、およびユーザによるそのような握持の相対強度の両方の感知を容易にしてもよく、これは、特定のゲームプレイ特徴を容易にしてもよい。
【0068】
実例となる力感知抵抗器(FSR)
図9A~
図9Cは、本開示の例示的な実施形態による、力感知抵抗器(FSR)900の異なる図を示す。
図9CのFSR900の断面に示すように、FSR900は、場合によってはポリイミドを含み得る第1の基板902を含んでもよい。FSR900は、第1の基板902上(または上方)に配置された第2の基板904をさらに含んでもよい。第1の基板902および第2の基板904は、FSR900の2つの一次基板(または層)(すなわち、2層のFSR900)を含んでもよい。ただし、FSR900には、追加の層が含まれ得ることを理解されたい。場合によっては、第1の基板902は、FSR900の2つの一次基板に対して「底部」または「ベース」基板を表してもよいが、場合によっては、第1の基板902の後ろ(または下)に(すなわち、
図9Cに示すように、負のZ方向に)材料の層があってもよい。
【0069】
第1の基板902は、第1の基板902の前面(すなわち、正のZ方向に面する表面)に配置された導電材料を含む。導電材料は、複数の互いに噛み合った金属指を含んでもよい。一方、第2の基板904(抵抗「膜」と呼ばれることもある)は、第2の基板904の裏面(すなわち、負のZ方向に面する表面)上に抵抗材料を備えてもよい。この抵抗材料としては、ある程度の電気抵抗(例えば、平方あたり300キロオーム(kオーム)(kオーム/平方)~400kオーム/平方の範囲内の比較的高いシート抵抗)を示すインク組成物(例えば、銀インク、カーボンインク、それらの混合物など)などの半導体材料が挙げられてもよい。場合によっては、第2の基板904のシート抵抗は、350kオーム/平方である。しかしながら、第2の基板904は、FSR900が他のアプリケーション(例えば、非コントローラベースのアプリケーション)で使用されるときなどでは、本明細書で指定されるシート抵抗範囲外の値を含む他のシート抵抗値を含んでもよい。いくつかの実施形態では、第2の基板904の材料は、抵抗材料が第2の基板904の裏面上に配置されたマイラを含んでもよい。いくつかの実施形態では、第2の基板904は、裏面上に抵抗材料(例えば、導電インク組成物)を有するポリイミドで作られたものを含んでもよい。第2の基板904にポリイミドを使用することにより、リフロー炉を使用してFSR900の大量製造が可能になり得るが、マイラは、そのような高温に耐えられない場合がある。
【0070】
FSR900は、第1の基板902と第2の基板904との間に挿入された1つまたは複数のスペーサ層を含んでもよく、その結果、第2の基板904の中心部分は、第1の基板902の上方に懸架され、そこから一定の距離を空けてもよい。
図9Cは、これに限定されるものではないが、第1の基板902の周辺に第1の基板902上に配置されたカバーレイ906、およびカバーレイ906上に配置された粘着剤層908を含む2つのスペーサ層を示す。カバーレイ906の材料は、ポリイミドを含んでもよく、したがって、第1の基板902と同じ材料を含んでもよい。(Z方向で測定される)カバーレイ906の厚さは、10ミクロン~15ミクロンの範囲にあってもよい。(Z方向で測定される)粘着剤層908の厚さは、50ミクロン~130ミクロンの範囲にあってもよい。したがって、第2の基板904が第1の基板902から離間している総距離は、1つまたは複数のスペーサ層の厚さの合計(例えば、カバーレイ906の厚さと粘着剤層908厚さとの和)であってもよい。これらの層は、FSR900が非コントローラベースのアプリケーションなどの他のアプリケーションで使用されるときなど、本明細書で指定された厚さの範囲外の厚さを含んでもよい。したがって、これらの厚さの範囲は、非限定的であると理解されるべきである。追加的に、場合によっては、粘着剤層908の厚さは、非常に軽く加えられた力Fの下で初期応答(例えば、FSR900が入力を検出し始める)を可能にするために、(例えば、指定された厚さの範囲の下端で)可能な限り薄くされる。粘着剤は、材料およびその厚さの両方が、FSR900の剛性を増加または減少させるように変化してもよい。
【0071】
基板904は、力Fを第2の基板904の前面上に伝達するように構成されたアクチュエータ910(ディスク形状のコンプライアントプランジャなど)を含んでもよい。アクチュエータ910の材料としては、アクチュエータ910に力を加えるとある程度変形するコンプライアント材料であるポロンが挙げられてもよい。アクチュエータ910は、加えられた力Fを中心に置くために、FSR900の活性領域の中心と同心であってもよい。アクチュエータ910はまた、FSR900の活性領域のその部分にわたって、加えられた力Fを均等に分配するために、FSR900の活性領域の一部分にまたがってもよい。
【0072】
(Z方向で測定される)第2の基板904の厚さは、50ミクロン~130ミクロンの範囲を含んでもよい。この例示的な厚さにおいて、第2の基板904は、可撓性である。例えば、第2の基板904の材料は、上記で指定された範囲内の厚さで可撓性であるマイラを含んでもよい。FSR900の機能的動作は、第2の基板904の裏面上の抵抗材料が、アクチュエータ910に加えられた圧縮力Fの下で第1の基板902の前面上の導電材料と接触するために、第2の基板904の可撓性に依存する。(Z方向で測定される)第1の基板902の厚さは、20ミクロン~30ミクロンの範囲を含んでもよい。この厚さのポリイミドも可撓性がある。したがって、第1の基板902もまた可撓性である。一方、(Z方向で測定される)アクチュエータ910の厚さは、780ミクロン~810ミクロンの範囲にあってもよい。これらの層は、FSR900が他のアプリケーション(例えば、非コントローラベースのアプリケーション)で使用されるときなど、本明細書で指定された厚さの範囲外の厚さを含んでもよい。したがって、これらの厚さの範囲は、非限定的であると理解されるべきである。
【0073】
FSR900は、アクチュエータ910に加えられた可変力Fに応答して様々な抵抗を示してもよい。例えば、アクチュエータ910に加えられた力Fが増加するにつれて、抵抗は減少し得る。このように、FSR900は、加えられた力Fによって値が制御される可変抵抗器として表してもよい。FSR900は、「シャントモード」FSR900または「スルーモード」FSR900を含んでもよい。シャントモードFSR900では、第1の基板902の前面上に配置された導電材料は、複数の互いに噛み合った金属指を含んでもよい。加えられた力Fがアクチュエータ910の前面(または上部)に加えられたとき、第2の基板904の裏面上の抵抗材料は、互いに噛み合った金属指と接触してもよく、互いに噛み合った金属指を入れ替え、これにより、FSR900の出力端子間の抵抗を変化させる。互いに噛み合った金属指の例示的な導電性には、HA銅またはRA銅などの銅を含んでもよい。互いに噛み合った金属指はまた、金メッキを含んでもよい。
【0074】
サブトラクティブ製造プロセスでは、複数の互いに噛み合った金属指を形成してもよい。互いに噛み合った金属指間の指幅および間隔は、FSR900の最大感度と製造エッチング公差の最小化との間の最適なバランスを提供してもよい。場合によっては、互いに噛み合った金属指は、均一なパターンまたは不均一なパターン(例えば、中心に向かう、より密度の高い指および外側に向かう、より密度の低い指)を含んでもよい。追加的に、場合によっては、金メッキの前にベース層の銅の上に追加の銅メッキを追加すると、検出された抵抗の望ましくない増加が生じる場合があるため、金メッキの前にベース層の銅の上に追加の銅メッキはなくてもよい。したがって、場合によっては、金メッキの前に互いに噛み合った金属指上に任意の追加の銅メッキを省略しても、FSR900で最適な感度が得られ得る。
【0075】
スルーモードの実装では、第1の基板902上の導電材料は、導電材料上に配置された半導電(または抵抗)材料を備えた導電材料の固体領域を含んでもよい。第2の基板904は、同様の構造物(例えば、半導電(または抵抗)材料が配置された導電材料の固体領域)を有してもよい。各基板(902および904)上の導電材料の固体領域は、個々の出力端子に結合され、2つの基板(902および904)が、加えられた力Fの下で接触するとき、励磁電流が1つの層から他の層に流れてもよい。
【0076】
これらの実装形態では、FSR900は、底部基板の材料としてマイラを使用するような従来のFSRと比較して、より少ないヒステリシス、および(1つのFSR900から別のFSR900への)より高い同時再現性を示してもよい。負荷ヒステリシスは、現在のFSR900抵抗に対する、予め加えられた力の影響を表す。また、応答曲線は単調であり、真のアナログ入力をモデル化しており、仮想岩を破砕する、仮想風船を圧搾するなど、VRゲームシステムの複数のゲームの仕組みに活用されてもよい。しかしながら、本明細書の例では、加えられた力Fを記述しているが、実際には、第2の基板904の前面上のより大きな領域に対して小さな点に加えられる等しい量の力は、FSR900の異なる抵抗応答をもたらし得るため、FSR900は、加えられた圧力(力×領域)に敏感である。したがって、アクチュエータ910は、加えられた力Fの下での応答曲線に関して、FSR900全体の同時再現性を維持する役割を果たしてもよい。
【0077】
FSR900は、外力(または負荷)がない状態での開回路を含んでもよい。いくつかの実施形態では、ゼロまたは無視できる程度に加えられた力の下で、第1の基板902および第2の基板904の任意の接触を説明するために、しきい値回路は、第1の基板902および第2の基板904が「接触している」と見なされるしきい値抵抗値を設定してもよく、これは、2つの一次基板(すなわち、902および904)が実際に接触している場合であっても、FSR900がしきい値抵抗値が満たされるまで、開回路を表してもよいことを意味する。
【0078】
FSR900は、本明細書に開示されるコントローラ110、300、および800などの手持型コントローラ内の構造物の平面上に取り付けてもよい。FSR900は、コントローラ本体の外面に加えられるユーザのタッチ入力に関連付けられた力(例えば、指で制御部を押すことによって加えられる力、コントローラのハンドルを手で強く握ることによって加えられる力)の量に対応する抵抗値を測定するために、コントローラ本体内の任意の適切な場所に取り付けられてもよい。FSR900は、PCBの平面上に取り付けられてもよく、PCB自体は、ハンドルの管状ハウジング内に取り付けてもよい。この構成では、プランジャは、FSR900のアクチュエータ910とインターフェースで接続してもよく、これにより、プランジャからアクチュエータ910に圧縮力を伝達することを可能にしてもよい。しかしながら、プランジャが省略され、アクチュエータ910がハンドルの管状ハウジングの一部分とインターフェースで接続され得る他の構成も可能である。
【0079】
追加的に、または代替的に、FSR900は、(ハンドルと遠位端との間の)ヘッド内の構造物の平面上に取り付けてもよい。構造物は、親指操作式の制御部のうちの1つまたは複数の下にあるヘッド内に取り付けてもよい。例えば、FSR900は、親指操作式の制御部(例えば、トラックパッド)の下に取り付けてもよい。したがって、コントローラの操作中に、ユーザの親指が親指操作式の制御部を押したとき、親指操作式の制御部の下に位置付けられたFSR900は、ユーザの親指によって親指操作式の制御部に加えられる力の量に対応する抵抗値を測定してもよい。場合によっては、コントローラは、ハンドル内に取り付けられた1つまたは複数のFSR900、および/またはコントローラ本体のヘッド上の1つまたは複数の対応する制御部の下に取り付けられた1つまたは複数のFSR900など、コントローラ本体内に配置された複数のFSR900を備えてもよい。
【0080】
FSR900は、コントローラに実装されたとき、可変アナログ入力を可能にしてもよい。例えば、様々な量の力でハンドルを強く握るか、または親指操作式の制御部に押すことにより、FSR900の抵抗は、加えられた力Fに応じて変化してもよい。抵抗は、ゲームの仕組み(例えば、物体を拾うおよび投げること)を制御するためのFSR入力を表す様々なデジタル化された値に変換されてもよい。
【0081】
FSR900は、異なるタッチまたはタッチスタイルを利用してもよい。例えば、「単純しきい値」スタイルは、デジタル化されたFSR入力値がしきい値を満たしたとき、またはしきい値を超えたとき、FSR入力イベントが発生することを意味してもよい。デジタル化されたFSR入力値は、FSR900によって測定された特定の抵抗値に対応し、FSR900に加えられた特定の力の量に対応しているので、FSR900によって測定された抵抗値がしきい値の抵抗値を満たしたとき、かつ/または加えられた力Fが力のしきい値を満たしたとき、FSR入力イベントを登録するというこのスタイルの「ソフトプレス」を考えることもできる。例えば、コントローラ(例えば、コントローラ110、300、および/または800)のハンドルがFSR900を含む場合、ハンドルは、力のしきい値量に達するまで強く握られてもよく、それに応答して、FSR900の入力イベントが「ソフトプレス」として登録される。「押さない」ために必要な力は、デバウンス目的のために、および/または物理的なスナップ比を有するタクトスイッチを模倣するために、しきい値の一部分であってもよい。「ヘアトリガ」スタイルは、ベースラインしきい値を設定してもよく、FSR900に関連付けられている、デジタル化されたFSR入力値がベースラインしきい値を満たすか、またはそれを超えると、ビンディングがアクティブになる(すなわち、長押ししたままのボタン作動に類似したFSR入力イベントが登録される)。その後、力が減少すると、ビンディングが非アクティブになり(すなわち、ユーザがボタンを離したのと同じように、FSR入力イベントが「登録解除」される)、ビンディングを非アクティブにした後の力が増加すると、ビンディングが再びアクティブになる。「ヒップファイヤ」スタイルは、「ヒップファイヤ」スタイルが時間遅延を利用していることを除けば、ソフトプレスの「単純しきい値」スタイルと同様であってもよく、その結果、複数のレベルのビンディングを有する構成では、より高いしきい値に素早く到達した場合に、時間遅延を使用してより低いFSR入力値を無視することができる。時間遅延量は、サブスタイル(例えば、アグレッシブ、標準、およびリラックス)によって異なる。
【0082】
場合によっては、追加のソフトプレスしきい値としては、「ヒップファイヤ」スタイルのソフトプレスのしきい値など、マルチレベルのしきい値が挙げられてもよい。FSRベースの入力のための異なるスタイルのソフトプレスは、ユーザが様々な力でFSRベースの入力機構を圧搾するか、または押すことによって、複数の異なるゲーム関連のアナログ入力を可能にしてもよい。例えば、VRゲームは、ユーザが、コントローラ本体のハンドルを増大した力で強く握ることによって、岩を破砕するか、または風船を圧搾することを可能にしてもよい。別の例として、シューティングベースのゲームは、ユーザが、親指操作式の制御部を異なるレベルの加えられた力で押すことによって、異なるタイプの武器間を切り替えることを可能にしてもよい。
【0083】
場合によっては、ユーザは、FSRベースの入力機構の作動に関連する手の疲労を低減するためにしきい値を調整してもよい。場合によっては、しきい値としては、特定のゲームのデフォルトしきい値(例えば、シューティングゲームのより低いデフォルトしきい値、探索ゲームのより高いデフォルトしきい値)が挙げられてもよい。
【0084】
実例となる手のジェスチャ
図10A~
図10Fは、(
図1および
図2のコントローラ110、
図3~
図7のコントローラ300、および/または
図8のコントローラ800を表す、かつ/またはそれらと同様であってもよい)コントローラ1002を保持しているユーザ1000の異なる変形例を示す。一般に、上記の開示に沿って、コントローラ1002上のユーザ1000のタッチ入力の場所および力を感知することにより(例えば、近接センサおよび/またはFSR900のアレイを使用して)、リモートコンピューティングリソース(複数可)112は、VRヘッドセット108上に表示するためのアニメーション(例えば、アニメーション128)を生成してもよい。アニメーションは、
図10A~
図10Fに示す手のジェスチャにそれぞれ似ていてもよい。すなわち、予め訓練されたモデル(複数可)120を使用して、リモートコンピューティングリソース(複数可)112は、コントローラ(複数可)1002から受信されたタッチデータ124および/または力データ126に基づいて、手の画像を生成してもよい。
【0085】
図10Aから始めると、ユーザ1000は、把持を開いた状態でコントローラ1002を保持していることが示されている。ユーザ1000の指および親指は、コントローラ1002に接触していないが、代わりに、コントローラ1002は、ユーザ1000の手のひらに接触してもよい。コントローラ1002は、この接触を検出し、タッチデータ124および/または力データ126を生成し、タッチデータ124および/または力データ126をリモートコンピューティングリソース(複数可)112に送信してもよい。ここで、タッチデータ124は、ユーザ1000の手のひらがコントローラ1002に触れていることを表すか、または示してもよい。ユーザ1000は、
図10Aでコントローラ1002を自身の指で把持しないので、力データ126は、ユーザ1000の手のひらがコントローラ1002に対して付勢されている力のレベルを示してもよい。場合によっては、ユーザ1000は、コントローラ1002を把持していないので、コントローラ1002は、ハンドル312の外面に対するユーザの指(複数可)の近接性を示すタッチデータ124のみを生成してもよい。
【0086】
リモートコンピューティングリソース(複数可)は、タッチデータ124および/または力データ126をモデル(複数可)120に入力し、モデル(複数可)120は、開いた手のジェスチャに対応する手の画像データ(例えば、アニメーション128)を生成してもよい。場合によっては、リモートコンピューティングリソース(複数可)112は、タッチデータ124および/または力データ126を入力するために、指定されたモデル(複数可)120を選択してもよい。場合によっては、ゲームプレイでは、開いた手のジェスチャは、物体を拾う、物体を落とすなどを表してもよい。
【0087】
図10Bは、4本の指すべておよび親指でコントローラ1002を保持しているユーザ1000を示す。ここで、コントローラ1002の近接センサのアレイによって生成されたタッチデータ124は、ユーザ1000の握持を示してもよい。FSR(例えば、FSR900)によって生成された力データ126は、ユーザ1000がコントローラ1002を握持する力を示してもよい。コントローラ1002は、タッチデータ124および/または力データ126をリモートコンピューティングリソース(複数可)112に送信してもよく、リモートコンピューティングリソース(複数可)112は、タッチデータ124および/または力データ126に対応するモデル(複数可)120を選択してもよい。モデル(複数可)120に対応するアニメーション128は、閉じた握りこぶしジェスチャ、掴みジェスチャなどを表す手のジェスチャを生成してもよい。
【0088】
図10Cは、親指以外の4本の指すべてでコントローラ1002を保持しているユーザ1000を示す。この例では、リモートコンピューティングリソース(複数可)112は、タッチデータ124および/または力データ126を利用して、関連するモデル(複数可)120を決定してもよく、このモデル(複数可)120は、ユーザ1000が親指以外の4本の指すべてで物体を保持していることを示す。モデル(複数可)120は、コントローラ1002上のタッチのこの構成(例えば、親指を立てる、トリガアクチュエータなど)を表す、VRヘッドセット108上に表示するためのアニメーション128を生成してもよい。
【0089】
図10Dは、中指および薬指でコントローラ1002を保持しているユーザ1000を示す。ここで、タッチデータ124は、中指および薬指のタッチを示してもよい。タッチデータ124はまた、コントローラ1002のハンドルの外面に対する、(コントローラ1002に接触していない)人差し指および小指の近接性を示してもよい。力データ126は、ユーザ1000の中指および/または薬指の把持に関連付けられた力の値を示してもよい。モデル(複数可)120は、中指および薬指のタッチ、ならびにそれらに関連する力の値に従って、関連するアニメーション128を生成してもよい。
【0090】
図10Eは、薬指および小指でコントローラ1002を保持しているユーザ1000を示す。リモートコンピューティングリソース(複数可)112は、薬指および小指のタッチおよび/または人差し指および/または中指のタッチの欠如に関連付けられたタッチデータ124を利用して、関連するモデル(複数可)120、対応するアニメーション128を選択し、VRヘッドセット108上に表示するための手のジェスチャを生成してもよい。リモートコンピューティングリソース(複数可)112はまた、モデル(複数可)120を選択し、手のジェスチャを生成する際に、FSRから生成された力データ126を利用してもよい。
【0091】
図10Fは、人差し指、中指、および小指でコントローラ1002を保持しているユーザを示している。リモートコンピューティングリソース(複数可)112は、タッチデータ124および/または力データ126を利用して、武器を発射するユーザ1000などの、VRヘッドセット108上で関連する手のジェスチャを生成する。
【0092】
図10A~
図10Fは、関連する手のジェスチャを生成するためにコントローラ1002に触れているユーザ1000の指と親指の特定の組み合わせを示しているが、他の組み合わせも可能である。そのような状況では、コントローラ1002は、近接センサのアレイを使用してタッチ入力に関連付けられた場所、ならびにFSR900を使用してユーザ1000のタッチ入力に関連付けられた力を検出してもよい。コントローラ1002は、タッチデータ124および/または力データ126をリモートコンピューティングリソース(複数可)112に送信してもよく、リモートコンピューティングリソース(複数可)112は、タッチデータ124および/または力データ126に対応するモデル(複数可)120を選択してもよい。上記のように、モデル(複数可)120は、以前のモーションデータ122、タッチデータ124、および/または力データ126を利用して、予め訓練および/または生成されている。したがって、後の事例において、タッチデータ124および/または力データ126を受信することにより、リモートコンピューティングリソース(複数可)112は、タッチデータ124および/または力データ126を1つまたは複数のモデル(複数可)120に関連付けてもよい。モデル(複数可)120はアニメーション128に関連付けられているので、リモートコンピューティングリソース(複数可)112は、1つまたは複数のモデル(複数可)120を選択し、対応するアニメーション128を生成し、表示のためにアニメーション128をVRヘッドセット108に送信してもよい。
【0093】
実例となるプロセス
図11~
図13は、本出願の実施形態による、様々なプロセスを示す。本明細書で説明されるプロセスは、一連の動作を表す論理フロー図内のブロックの集合として示され、それらのいくつかまたはすべては、ハードウェア、ソフトウェア、またはそれらの組み合わせの中で実施されてもよい。ソフトウェアの文脈では、ブロックは、1つまたは複数のプロセッサによって実行されたとき、列挙された動作を実施するようにプロセッサをプログラムする、1つまたは複数のコンピュータ可読媒体に格納されたコンピュータ実行可能命令を表してもよい。一般に、コンピュータ実行可能命令は、特定の機能を実施するかまたは特定のデータタイプを実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。ブロックが記載されている順序は、特に記載されていない限り、限定として解釈されるべきではない。記載されたブロックのうちの任意の数は、プロセス、または代替プロセスを実施するために、任意の順序および/または並列に組み合わせてもよく、すべてのブロックが実行される必要はない。説明のために、プロセスは、本明細書の例で説明されている、例えば、
図1~
図10に関して説明されている環境、アーキテクチャ、およびシステムを参照して説明されているが、プロセスは、多種多様な他の環境、アーキテクチャ、およびシステムで実施されてもよい。
【0094】
図11から始まり、ブロック1102において、プロセス1100は、コントローラでのタッチ入力に対応するタッチデータを受信してもよい。タッチデータは、タッチ入力が受信されたコントローラ上の場所(複数可)、および/またはコントローラに対するユーザの指(複数可)の近接性(例えば、近接センサまたは静電容量センサのアレイからの静電容量値)を表してもよい。
【0095】
ブロック1104において、プロセス1100は、コントローラでのタッチ入力に対応する力データを受信してもよい。力データは、コントローラでのタッチ入力に関連付けられた力の量を表してもよい。場合によっては、力の値が特定の力のしきい値を超えたときに、力データを受信してもよい。
【0096】
ブロック1106において、プロセス1100は、コントローラを操作するユーザの動きに対応するモーションデータを受信してもよい。モーションデータは、ユーザの指(複数可)および手首(複数可)の動きなど、ユーザの動きを表してもよい。モーションデータはまた、コントローラのモーションを表してもよい。
【0097】
ブロック1108において、プロセス1100は、タッチデータ、力データ、および/またはモーションデータを使用してモデル(複数可)を訓練してもよい。例えば、モデル(複数可)を訓練するために、プロセス1100は、タッチデータ、力データ、および/またはモーションデータを、モーションデータによって表されるように、ユーザの動きに対応するように関連付けてもよい。すなわち、プロセス1100は、タッチデータ、力データ、および/またはモーションデータを使用して、モーションデータから決定されるように、ユーザのタッチの特性を学習し、これらの特性を特定の手のジェスチャに関連付けるために、モデル(複数可)を訓練してもよい。場合によっては、特性には、コントローラ上のタッチ入力(複数可)の場所および力を含んでもよい。場合によっては、タッチデータ、力データ、および/またはモーションデータは、タッチデータ、力データ、および/またはモーションデータがそれぞれキャプチャされたときに対応するタイムスタンプを利用して関連付けられてもよい。プロセス1100は、タッチデータ、力データ、および/またはモーションデータを時間スケールに重ね合わせることにより、タッチデータおよび/または力データをモーションデータと相関させ、ユーザの手のジェスチャ(複数可)を識別してもよい。モデル(複数可)を訓練する際に、後の事例では、プロセス1100は、タッチデータおよび/または力データを受信し、(モーションデータを受信せずに)関連するジェスチャを決定してもよい。
【0098】
プロセス1100は、ブロック1108から、追加のタッチデータ、追加の力データ(例えば、ブロック1104)、および/または追加のモーションデータ(例えば、ブロック1106)を受信するために、ブロック1102にループしてもよい。この追加のデータを利用して、モデル(複数可)をさらに訓練し、これにより、後の事例(例えば、ゲームプレイ中)で受信したタッチデータおよび/または力データに基づいて、より正確な手のジェスチャの決定が可能になる。すなわち、プロセス1100は、タッチデータ、力データ、および/またはモーションデータを相関させ続け、その結果、プロセス1100が後続のタッチデータおよび/または力データを受信したとき、プロセス1100は、(モデル(複数可)を介して)タッチデータおよび/または力データに対応する、関連する手のジェスチャを正確に決定してもよい。ここで、上記のように、タッチデータ、力データ、および/またはモーションデータを相関させることは、タッチデータのタイムスタンプ、力データのタイムスタンプ、および/またはモーションデータのタイムスタンプを照合することを含んでもよい。
【0099】
ブロック1110において、プロセス1100は、タッチデータを受信してもよい。場合によっては、ブロック1110で受信されたタッチデータは、ゲームプレイ中に受信されたタッチデータに対応してもよい。
【0100】
ブロック1112において、プロセス1100は、力データを受信してもよい。場合によっては、ブロック1112で受信された力データは、ゲームプレイ中に受信されたタッチデータに対応してもよい。
【0101】
ブロック1114において、プロセス1100は、モデル(複数可)を選択してもよい。場合によっては、モデル(複数可)を選択するために、ブロック1110で受信されたタッチデータは、以前に生成されたモデル(複数可)に対応するタッチデータまたはタッチプロファイルと比較されてもよい。追加的に、または代替的に、モデル(複数可)を選択することは、ブロック1112で受信された力データを、以前に生成されたモデル(複数可)に対応する力データまたはタッチプロファイルと比較することを含んでもよい。モデル(複数可)のタッチプロファイルは、モデル(複数可)の手のジェスチャを表す力データに関連付けられた力の値、および/またはモデル(複数可)の手のジェスチャを表すタッチデータに関連付けられた場所を含んでもよい。例として、タッチデータは、中指および/または人差し指がコントローラに接触するなど、コントローラの中心でのタッチ入力を示してもよい(例えば、
図10D)。場合によっては、タッチデータは、タッチ入力をユーザの特定の指に関連付け、かつ/またはそれらの指がコントローラに触れていないことを示してもよい。タッチデータおよび/または力データを使用して、対応するモデルを選択してもよい。
【0102】
ブロック1116において、プロセス1100は、タッチデータおよび/または力データをモデル(複数可)に入力してもよい。より具体的には、モデル(複数可)は、タッチデータおよび/または力データをモーションデータおよび対応する手のジェスチャに関連付けるように予め訓練されているので、訓練されると、モデル(複数可)は、タッチデータおよび/または力を受信し、手のジェスチャを決定してもよい。言い換えれば、タッチデータは、どの指がコントローラを握持するか、またはどの指がコントローラを握持しないか、ならびにタッチに対応するコントローラ上の場所、またはその欠如を示してもよい。したがって、モデル(複数可)が訓練された後、モデル(複数可)は、ゲームプレイ中に受信されたユーザからのタッチを表すタッチデータおよび/または力データを受け入れてもよい。
【0103】
ブロック1118において、プロセス1100は、タッチデータおよび/または力データに対応する画像データを生成してもよい。例えば、タッチデータおよび/または力データをモデル(複数可)に入力した後、プロセス1100は、タッチデータおよび/または力を使用して、手のジェスチャを生成してもよい。
【0104】
ブロック1120において、プロセス1100は、画像データをディスプレイ上に提示してもよい。プロセス1100では、ディスプレイ上への手のジェスチャの表現は、コントローラと対話するユーザの手のジェスチャに対応してもよい。さらに、タッチデータの受信と画像データの提示との間の呼出時間を短縮するために、プロセスは、ブロック1110~1120をリアルタイムで、かつ/または互いに実質的に同時に実施してもよい。
【0105】
ブロック1120から、プロセス1100はブロック1110にループしてもよい。その中で、プロセス1100は、ブロック1110と1120との間で繰り返されて、タッチデータおよび/または力データを連続的に受信し、ユーザからのタッチ入力に対応するアニメーションを生成してもよい。そうすることで、ユーザがゲームをプレイするときに、コントローラから受信したタッチデータおよび/または力データは、ゲームのレベル、シーン、フレームなどに応じて変化してもよい。タッチデータおよび/または力データをモデル(複数可)に連続的に入力することにより、プロセス1100は、対応するモデル(複数可)を選択し、表示するために手のジェスチャを連続的に生成してもよい。
【0106】
前述したように、場合によっては、ブロック1102とブロック1108との間のプロセス1100は、ユーザがゲームプレイモードでプレイしておらず、モデル(複数可)が訓練されている時間の第1の事例中に生じてもよい。例えば、モデル(複数可)の訓練(または生成)は、(モーションキャプチャシステム(複数可)102からキャプチャされた)モーションデータ、タッチデータ、および/または力データがキャプチャされ、タッチデータおよび/または力データを特定の手のジェスチャに関連付けるために互いに相関させる施設で生じてもよい。そして後の事例では、モデル(複数可)が訓練された後、ブロック1110とブロック1120との間のプロセス1100は、ユーザがゲームプレイモードにある間に生じてもよい。
【0107】
図12に示すように、ブロック1202において、プロセス1200は、コントローラでのタッチ入力に対応するタッチデータを受信してもよい。例えば、リモートコンピューティングリソース(複数可)112は、コントローラ(例えば、コントローラ110、300、および/または800)から、タッチデータ124を受信してもよい。タッチデータ124は、ユーザのタッチ入力(複数可)に対応するコントローラ上の場所(複数可)を表してもよい。一例として、タッチデータ124は、ユーザの4本の指すべてがコントローラに触れていること、触れている場所(複数可)、または場合によっては、どの指がコントローラに触れていないか、かつ/またはコントローラのどの領域がタッチ入力を受信していないかを示してもよい。
【0108】
ブロック1204において、プロセス1200は、コントローラでのタッチ入力に対応する力データを受信してもよい。例えば、リモートコンピューティングリソース(複数可)112は、コントローラ(例えば、コントローラ110、300、および/または800)から力データ126を受信してもよい。力データ126は、コントローラでのタッチ入力に関連付けられた力の量、またはコントローラ上のユーザの把持に関連付けられた相対的な強さを表してもよい。事例では、ユーザがコントローラを把持していない場合(例えば、
図10Aに示すように)、リモートコンピューティングリソース(複数可)112は、コントローラから力データ126を受信しない可能性がある。
【0109】
ブロック1206において、プロセス1200は、コントローラを操作するユーザの動きに対応するモーションデータを受信してもよい。例えば、リモートコンピューティングリソース(複数可)112は、モーションキャプチャシステム(複数可)102からモーションデータ122を受信してもよい。モーションデータ122は、マーカ200、202を使用して、ユーザの動きおよび/またはコントローラの動きを表してもよい。上記のように、モーションキャプチャシステム(複数可)102のプロジェクタ(複数可)は、ユーザおよび/またはコントローラ上に配置されたマーカ200、202上に光を投影してもよい。マーカ200、202は、この光を反射してもよく、次いで、この光は、モーションキャプチャシステム(複数可)102のカメラによってキャプチャされる。
【0110】
ブロック1208において、プロセス1200は、タッチデータ、力データ、および/またはモーションデータを使用してモデル(複数可)を訓練してもよい。例えば、リモートコンピューティングリソース(複数可)112は、モーションデータ122、タッチデータ124、および/または力データ126を使用して、モデル(複数可)120を訓練(または生成)してもよい。場合によっては、モデル(複数可)120を訓練することは、ユーザの動きに対応するタッチデータ124および/または力データ126の特性を決定するために、タッチデータ124、力データ126、および/またはモーションデータ122を関連付けることを含んでもよい。そうすることで、リモートコンピューティングリソース(複数可)112は、コントローラから受信したタッチデータ124に対応する画像データまたはアニメーション(複数可)を生成してもよい。すなわち、タッチデータ124、力データ126、および/またはモーションデータ122を関連付けることにより、後の事例では、タッチデータ124および/または力データ126を受信すると、リモートコンピューティングリソース(複数可)112は、以前のモーションデータ122を使用して、タッチデータ124および/または力データ126をユーザのジェスチャと相関させてもよい。場合によっては、タッチデータ124、力データ126、および/またはモーションデータ122を関連付けることは、タッチデータ124のタイムスタンプ、力データ126のタイムスタンプ、およびモーションデータ122のタイムスタンプを照合することを含んでもよい。そうすることで、リモートコンピューティングリソース(複数可)112は、タッチデータ124および/または力データ126がユーザの手のジェスチャにどのように関連しているかを(例えば、機械学習アルゴリズムを使用して)学習してもよい。
【0111】
プロセス1200は、ブロック1208から、追加のタッチデータ124、追加の力データ126、および/または追加のモーションデータ122を受信するために、ブロック1202にループしてもよい。例えば、リモートコンピューティングリソース(複数可)112は、モデル(複数可)120訓練するために、追加のタッチデータ124(例えば、ブロック1202)、追加の力データ126(例えば、ブロック1204)、および/または追加のモーションデータ122(例えば、ブロック1206)を受信してもよい。モデル(複数可)120を訓練することにより、ユーザによって実施された手のジェスチャのより正確な決定が可能になり得る。
【0112】
図13に示すように、ブロック1302において、プロセス1300は、タッチデータを受信してもよい。例えば、リモートコンピューティングリソース(複数可)112は、コントローラ(例えば、コントローラ110、300、および/または800)から、タッチデータ124を受信してもよい。場合によっては、コントローラの近接センサのアレイが、タッチデータ124を生成してもよい。タッチデータ124は、コントローラ110上のユーザの指または手の配設を示してもよい。
【0113】
ブロック1304において、プロセス1300は、力データを受信してもよい。例えば、リモートコンピューティングリソース(複数可)112は、コントローラ(例えば、コントローラ110、300、および/または800)から、力データ126を受信してもよい。場合によっては、コントローラのFSR(例えば、FSR900)は、力データ126を生成してもよく、これは、コントローラ上のユーザのタッチに関連付けられた力の量を示してもよい。
【0114】
ブロック1306において、プロセス1300は、タッチデータおよび/または力データをモデル(複数可)に入力してもよい。例えば、リモートコンピューティングリソース(複数可)112のプロセッサ(複数可)116は、タッチデータ124および/または力データ126をモデル(複数可)120に入力してもよい。より具体的には、モデル(複数可)120は、タッチデータ124および/または力データ126をモーションデータ122および手のジェスチャに関連付けるように予め訓練されているので、訓練されると、モデル(複数可)120は、タッチデータ124および/または力データ126を受信し、手のジェスチャを決定してもよい。場合によっては、リモートコンピューティングリソース(複数可)112は、タッチデータ124および/または力データ126を、タッチデータ124および/または力データ126と厳密に一致するか、またはそれらに関連付けられるモデル(複数可)120に選択的に入力してもよい。例えば、タッチデータ124が、ユーザが4本の指でコントローラ110を把持することを示している場合、プロセッサ(複数可)116は、4本の指の把持に対応するモデル120を選択してもよい。
【0115】
ブロック1308において、プロセス1300は、タッチデータおよび/または力データに対応する画像データを生成してもよい。例えば、リモートコンピューティングリソース(複数可)112のプロセッサ(複数可)116は、モデル(複数可)120を使用して、タッチデータ124および/または力データ126に対応する手のジェスチャを決定してもよい。リモートコンピューティングリソース(複数可)112は、手のジェスチャに対応するアニメーション128などの画像データを生成してもよい。例えば、モデル(複数可)120は、タッチデータ124および/または力データ126を利用して、手のアニメーション128を生成してもよい(例えば、岩を破砕するか、または物体を落とすこと)。
【0116】
ブロック1310において、プロセス1300は、画像データをディスプレイ上に提示してもよい。例えば、リモートコンピューティングリソース(複数可)112は、画像データをVRヘッドセット108(または別のコンピューティング装置)に送信してもよく、それにより、VRヘッドセット108は、画像データを表示してもよい。VRヘッドセット108は、コントローラ(複数可)110で受信されたタッチデータ124および/または力データ126に従って、ディスプレイ上に手のジェスチャを表示してもよい。したがって、VRヘッドセット108のディスプレイ上への手のジェスチャの表現は、ユーザがコントローラ(複数可)110と対話する手のジェスチャと相関させてもよい。さらに、タッチデータ124の受信とVRヘッドセット108上への画像データの提示との間の呼出時間を短縮するために、プロセス1300は、ブロック1302~1310をリアルタイムで、かつ/または互いに実質的に同時に実施してもよい。追加的に、モデル(複数可)120の事前生成は、関連する手のジェスチャを生成するためにタッチデータ124および/または力データ126を受信するときのより高速な計算を可能にしてもよい。
【0117】
プロセス1300は、ブロック1310から、ブロック1302にループしてもよく、プロセス1300は、ブロック1302と1310の間で繰り返されて、画像データを連続的に生成してもよい。その結果として、ユーザがコントローラ110を保持および把持する方法に対応するタッチデータ124および/または力データ126は、タッチデータ124および/または力データ126をモデル(複数可)120に入力することによって更新されてもよく、プロセス1300は、VRヘッドセット108上に表示するために手のジェスチャを連続的に生成してもよい。
【0118】
結論
前述の本発明は、特定の例に関して説明されているが、本発明の範囲は、これらの特定の例に限定されないことを理解されたい。特定の動作要件および環境に適合するように変化する他の修正および変更は、当業者には明らかであるため、本発明は、開示の目的のために選択された例に限定されるものとは見なされず、本発明の真の精神および範囲から逸脱しないすべての変更および修正を対象にする。
【0119】
本出願は、特定の構造的特徴および/または方法論的行為を有する実施形態を記載しているが、特許請求の範囲は、記載された特定の特徴または行為に必ずしも限定されないことを理解されたい。むしろ、特定の特徴および行為は、本出願の特許請求の範囲内にあるいくつかの実施形態を単に例示するものである。
【例示の節】
【0120】
本開示の実施形態は、以下の節を考慮して説明することができる。
1.1つまたは複数のプロセッサと、
コンピュータ実行可能命令を格納する1つまたは複数の非一時的なコンピュータ可読媒体であって、前記1つまたは複数のプロセッサによって実行されたとき、前記1つまたは複数のプロセッサに、
1つまたは複数のセンサを介して、1つまたは複数のコントローラを操作するユーザの手の第1の動きに対応する第1のモーションデータを受信することと、
前記1つまたは複数のコントローラを介して、前記1つまたは複数のコントローラを操作する前記ユーザの前記手の第1のタッチに対応する第1のタッチデータを受信することと、
前記1つまたは複数のコントローラを介して、前記1つまたは複数のコントローラを操作する前記ユーザの前記手の前記第1のタッチに対応する第1の力データを受信することと、
前記第1のモーションデータを前記第1のタッチデータおよび前記第1の力データに関連付けることと、
前記第1のモーションデータ、前記第1のタッチデータ、および前記第1の力データに少なくとも部分的に基づいて、前記手のジェスチャに対応するモデルを生成することと、
前記1つまたは複数のセンサを介して、前記1つまたは複数のコントローラを操作する前記ユーザの前記手の第2の動きに対応する第2のモーションデータを受信することと、
前記1つまたは複数のコントローラを介して、前記1つまたは複数のコントローラを操作する前記ユーザの前記手の第2のタッチに対応する第2のタッチデータを受信することと、
前記1つまたは複数のコントローラを介して、前記1つまたは複数のコントローラを操作する前記ユーザの前記手の前記第2のタッチに対応する第2の力データを受信することと、
前記第2のモーションデータを前記第2のタッチデータおよび前記第2の力データに関連付けることと、
前記第2のモーションデータ、前記第2のタッチデータ、および前記第2の力データに少なくとも部分的に基づいて、前記手の前記ジェスチャに対応する前記モデルを訓練することと、
前記1つまたは複数のコントローラを介して、前記1つまたは複数のコントローラを操作する前記ユーザの前記手の第3のタッチに対応する第3のタッチデータを受信することと、
前記1つまたは複数のコントローラを介して、前記1つまたは複数のコントローラを操作する前記ユーザの前記手の前記第3のタッチに対応する第3の力データを受信することと、
前記ジェスチャおよび前記第3の力データに対応する前記モデルに少なくとも部分的に基づいて、前記手の表現に対応する画像データを生成することと、を含む行為を実施させる、1つまたは複数の非一時的なコンピュータ可読媒体と、を備える、システム。
2.前記1つまたは複数の非一時的なコンピュータ可読媒体が、前記1つまたは複数のプロセッサによって実行されたとき、前記1つまたは複数のプロセッサに、前記手の前記表現に対応する前記画像データを仮想現実ディスプレイに送信することを含む行為をさらに実施させるコンピュータ実行可能命令を格納する、請求項1に記載のシステム。
3.前記1つまたは複数のセンサが、深度センサを含む、請求項1に記載のシステム。
4.前記第1のモーションデータを前記第1のタッチデータおよび前記第1の力データに関連付けることが、前記第1のモーションデータの第1のタイムスタンプを前記第1のタッチデータの第1のタイムスタンプおよび前記第1の力データの第1のタイムスタンプと照合することを含み、
前記第2のモーションデータを前記第2のタッチデータおよび第2の力データに関連付けることが、前記第2のモーションデータの第2のタイムスタンプを前記第2のタッチデータの第2のタイムスタンプおよび前記第2の力データの第2のタイムスタンプと照合することを含む、請求項1に記載のシステム。
5.システムであって、
1つまたは複数のプロセッサと、
コンピュータ実行可能命令を格納する1つまたは複数の非一時的なコンピュータ可読媒体であって、1つまたは複数のプロセッサによって実施されたとき、1つまたは複数のプロセッサに、
コントローラを操作する手の動きに対応するモーションデータを受信することと、
前記コントローラを操作する前記手のタッチ入力に対応するタッチデータを受信することと、
前記モーションデータと前記タッチデータとを関連付けることと、
前記モーションデータと前記タッチデータとを前記関連付けることに少なくとも部分的に基づいて、前記手のジェスチャに対応する訓練モデルを生成することと、を含む行為を実施させる、1つまたは複数の非一時的なコンピュータ可読媒体と、を備える、システム。
6.前記モーションデータが、第1のモーションデータを含み、前記タッチデータが、第1のタッチデータを含み、前記手の前記動きが、第1の動きを含み、前記手の前記タッチ入力が、第1のタッチ入力を含み、前記1つまたは複数の非一時的なコンピュータ可読媒体が、前記1つまたは複数のプロセッサによって実行されたとき、前記1つまたは複数のプロセッサに、
前記コントローラを操作する前記ユーザの前記手の第2の動きに対応する第2のモーションデータを受信することと、
前記コントローラを操作する前記手の第2のタッチ入力に対応する第2のタッチデータを受信することと、
前記第2のモーションデータおよび前記第2のタッチデータに少なくとも部分的に基づいて、前記手の前記ジェスチャに対応する更新された訓練モデルを生成することと、を含む行為をさらに実施させるコンピュータ実行可能命令を格納する、請求項5に記載のシステム。
7.前記1つまたは複数の非一時的なコンピュータ可読媒体が、前記1つまたは複数のプロセッサによって実行されたとき、前記1つまたは複数のプロセッサに、
前記更新された訓練モデルを使用して、前記手の表現に対応する画像データを生成することと、
前記手の前記表現に対応する前記画像データを送信することと、を含む行為をさらに実施させるコンピュータ実行可能命令を格納する、請求項6に記載のシステム。
8.前記画像データを送信することが、遠隔装置に前記手の表現を表示させる、請求項7に記載のシステム。
9.前記1つまたは複数の非一時的なコンピュータ可読媒体が、前記1つまたは複数のプロセッサによって実行されたとき、前記1つまたは複数のプロセッサに、前記タッチ入力に関連付けられた力の量に対応する力データを受信することを含む行為をさらに実施させるコンピュータ実行可能命令を格納し、
前記手の前記ジェスチャに対応する前記訓練モデルを前記生成することが、前記力データに少なくとも部分的にさらに基づいている、請求項5に記載のシステム。
10.前記タッチデータが、前記タッチ入力を受信する前記コントローラ上の1つまたは複数の場所を示す、請求項5に記載のシステム。
11.前記モーションデータと前記タッチデータとを関連付けることが、前記モーションデータのタイムスタンプを前記タッチデータのタイムスタンプと関連付けることを含む、請求項5に記載のシステム。
12.前記モーションデータを受信することが、前記システムに通信可能に結合されたカメラから前記モーションデータを受信することを含み、
前記タッチデータを受信することが、前記システムに通信可能に結合されたコントローラから前記タッチデータを受信することを含む、請求項5に記載のシステム。
13.システムであって、
1つまたは複数のプロセッサと、
コンピュータ実行可能命令を格納する1つまたは複数の非一時的なコンピュータ可読媒体であって、前記1つまたは複数のプロセッサによって実行されたとき、前記1つまたは複数のプロセッサに、
コントローラから、
前記コントローラで受信されたタッチ入力を示すタッチデータ、または
前記タッチ入力に関連付けられた力の量を示す力データのうちの少なくとも1つを受信することと、
手のジェスチャに関連付けられている訓練されたモデルに対して、前記タッチデータまたは前記力のうちの少なくとも1つを分析することと、
前記分析に少なくとも部分的に基づいて、前記タッチデータまたは前記力データのうちの少なくとも1つが前記手のジェスチャに対応していることを判定することと、
前記手のジェスチャを表す画像データを生成することと、
表示のために前記画像データを送信することと、を含む行為を実施させる、1つまたは複数の非一時的なコンピュータ可読媒体と、を備える、システム。
14.前記タッチデータは、前記タッチ入力に対応する前記コントローラ上の場所を示す、請求項13に記載のシステム。
15.前記タッチデータが、第1のタッチデータを含み、前記力データが、第1の力データを含み、前記訓練されたモデルが、第1の訓練されたモデルを含み、前記タッチ入力が、第1のタッチ入力を含み、前記画像データが、第1の画像データを含み、前記手のジェスチャが、第1の手のジェスチャを含み、前記1つまたは複数の非一時的なコンピュータ可読媒体が、前記1つまたは複数のプロセッサによって実行されたとき、前記1つまたは複数のプロセッサに、
前記コントローラから、
前記コントローラで受信された第2のタッチ入力を表す第2のタッチデータ、または
前記第2のタッチ入力に関連付けられた力の量を示す第2の力データのうちの少なくとも1つを受信することと、
第2の手のジェスチャに関連付けられている第2の訓練されたモデルに対して、前記第2のタッチデータまたは前記第2の力データのうちの少なくとも1つを分析することと、
前記第2のタッチデータまたは前記第2の力データのうちの少なくとも1つが、第2の手のジェスチャに対応していることを判定することと、
前記第2の手のジェスチャを表す第2の画像データを生成することと、
表示のために前記第2の画像データを送信することと、を含む行為をさらに実施させるコンピュータ実行可能命令を格納する、請求項13に記載のシステム。
16.前記画像データが、第1の画像データを含み、前記手のジェスチャが、第1の手のジェスチャを含み、前記1つまたは複数の非一時的なコンピュータ可読媒体が、前記1つまたは複数のプロセッサによって実行されたとき、前記1つまたは複数のプロセッサに、
少なくとも1つまたは複数の予測モデリング技術を使用し、かつ、前記第1の手のジェスチャに少なくとも部分的に基づいて、第2の手のジェスチャを決定することと、
前記第2の手のジェスチャを表す第2の画像データを生成することと、
表示のために前記第2の画像データを送信することと、を含む行為をさらに実施させるコンピュータ実行可能命令を格納する、請求項13に記載のシステム。
17.前記訓練されたモデルが、
第1の期間中に1つまたは複数のコントローラから受信された以前のタッチデータ、
前記第1の期間中に前記1つまたは複数のコントローラから受信された以前の力データ、または
前記第1の期間中に1つまたは複数のカメラから受信された以前の画像データのうちの少なくとも1つを使用して前もって訓練されたモデルを含む、請求項13に記載のシステム。
18.前記コントローラが、第1のコントローラを含み、前記タッチデータが、第1のタッチデータを含み、前記力データが、第1の力データを含み、前記画像データが、第1の画像データを含み、前記1つまたは複数の非一時的なコンピュータ可読媒体が、前記1つまたは複数のプロセッサによって実行されたとき、前記1つまたは複数のプロセッサに、
第2のコントローラから、
前記第2のコントローラで受信されたタッチ入力を示す第2のタッチデータ、または
前記第2のコントローラで受信された前記タッチ入力に関連付けられた力の量を示す第2の力データのうちの少なくとも1つを受信することと、
1つまたは複数の手のジェスチャに関連付けられている1つまたは複数の訓練されたモデルに対して、前記第2のタッチデータまたは前記第2の力データのうちの少なくとも1つを分析することと、
前記第2のコントローラで受信された手のジェスチャを表す第2の画像データを生成することと、
表示のために前記第2の画像データを送信することと、を含む行為をさらに実施させるコンピュータ実行可能命令を格納する、請求項13に記載のシステム。
19.前記画像データが、前記手のジェスチャの3次元(3D)表現を含む、請求項13に記載のシステム。
20.前記1つまたは複数の非一時的なコンピュータ可読媒体が、前記1つまたは複数のプロセッサによって実行されたとき、前記1つまたは複数のプロセッサに、
前記タッチデータまたは前記力データのうちの少なくとも1つを1つまたは複数の訓練されたモデルと比較することであって、前記1つまたは複数の訓練されたモデルが、前記訓練されたモデルを含み、前記1つまたは複数の訓練されたモデルの個々の訓練されたモデルが、1つまたは複数の手のジェスチャに関連付けられる、比較することを含む行為をさらに実施させるコンピュータ実行可能命令を格納し、
前記訓練されたモデルに対して、前記タッチデータまたは前記力データのうちの少なくとも1つを分析することが、前記比較に少なくとも部分的に基づいている、請求項13に記載のシステム。