1つ以上のハンドヘルドコントローラから受信された入力に基づいて、ディスプレイ上に提示された仮想物体を保持および解放するための技術およびデバイスが、本明細書で説明される。いくつかの例では、ハンドヘルドコントローラは、近接センサ、力センサ(例えば、力抵抗センサなど)、加速度計、および/またはハンドヘルドコントローラをグリップするおよび/または動かすユーザの手から入力を受信するように構成された他のタイプのセンサなどの、1つ以上のセンサを含む。コントローラ上および/またはコントローラに連結されたデバイス(例えば、ゲームコンソール、サーバなど)上のハードウェア、ソフトウェア、および/またはファームウェアが、これらのセンサからデータを受信し、モニタ、仮想現実(VR)ヘッドセットなどのディスプレイ上に、対応するジェスチャの表現を生成し得る。
一例では、センサデータは、ユーザがディスプレイ上に提示された仮想物体をいつ拾い上げようとしているかを判定するために使用される。例えば、システム(例えば、コンソール、サーバなど)は、ゲームまたは他のタイプのアプリケーションの一部としてディスプレイ上に1つ以上の仮想物体を提示し得る。ユーザは、自分の手の中のコントローラを利用して、仮想物体を保持しようとする、すなわち、システムに、仮想物体を拾い上げているユーザの仮想手の表現を提示させ得る。仮想物体を保持する仮想手を提示した後、ユーザが仮想物体をいつ解放することを意図しているかを判定するために追加のセンサデータが使用され得る。物体の解放を示すセンサデータを識別すると、システムは、解放されている(例えば、落とされている、投げ出されているなど)物体の提示を引き起こし得る。
一例では、ハンドヘルドコントローラは、ユーザによって選択的にグリップされ得るコントローラ本体を含む。コントローラ本体は、静電容量値または他のセンサ読み取り値に基づいてユーザの指の近接度を検出するように構成された近接センサのアレイを含み得る。加えて、コントローラは、コントローラ本体の様々な場所における力の量を判定するように構成された1つ以上の力センサ(例えば、力抵抗センサ)を含み得る。コントローラはまた、ユーザが自分の手を動かすときにハンドヘルドコントローラの様々な速さを示す速度データを生成するように構成された加速度計または他のセンサも含み得る。
コントローラ上の、またはコントローラに有線もしくは無線で連結されたデバイス上のハードウェアおよび/またはソフトウェアは、異なるユーザジェスチャを識別するために、これらの静電容量値、力値、および/または速度値を受信し得る。例えば、ユーザが仮想物体を現在「保持」していない場合、これらの様々なタイプのセンサデータを受信すると、ハードウェアおよび/またはソフトウェアは、ユーザが仮想物体を保持するように意図することをセンサデータがいつ示すかを判定しようとし得る。いくつかの事例では、ハードウェアおよび/またはソフトウェアは、センサデータが、「力-つまみ状態」、「力-グリップ状態」、「静電容量-つまみ(cap-つまみ)状態」、および/または「静電容量-グリップ状態」などの1つ以上の異なるタイプの保持状態の基準をいつ満たすかを判定し得る。いくつかの事例では、ハードウェアおよび/またはソフトウェアは、1つ以上の力センサが力閾値を超える力の値を生成し、かつ1つ以上のボタンが押下されていることに応答して、力-つまみ状態を識別し得る。例えば、ユーザの親指が置かれる場所の下のハンドヘルドコントローラの上側に位置する力センサが、特定の閾値(例えば、センサの最大力読み取り値の1%、最大力読み取り値の25%など)を超える力の値を返す場合、およびポインタまたはユーザの他の指によって選択可能なトリガボタンが押された場合、説明される技術は、力-つまみ状態を識別し得る。すなわち、これらのセンサ読み取り値に応答して、ハードウェアおよび/またはソフトウェアは、ユーザが「つまみ」を介して仮想物体を保持しようとしていると判定し得る。一方、ソフトウェアおよび/またはハードウェアは、ハンドヘルドコントローラのコントローラ本体上の1つ以上の力センサが、力閾値(例えば、センサの最大力読み取り値の10%、センサの最大力読み取り値の25%など)を超える1つ以上の力の値を測定することに応答して、力-グリップ状態を識別し得る。
さらに他の例では、ハードウェアおよび/またはソフトウェアは、ユーザの親指が置かれる、コントローラの上部分上の近接センサによって、およびユーザの人差し指または他の指が置かれる、コントローラのコントローラ本体上の近接センサによって測定された値などの、近接センサのうちの1つ以上によって測定された1つ以上の近接値(例えば、静電容量値)に基づいて、静電容量-つまみ状態を識別し得る。いくつかの事例では、ソフトウェアおよび/またはハードウェアは、これらの2つの読み取り値を平均化し、平均を閾値と比較し得る。平均値が閾値(例えば、最大センサ読み取り値の30%、最大センサ読み取り値の60%など)を超える場合、静電容量-つまみ状態が識別され得る。他の事例では、ソフトウェアおよび/またはハードウェアは、これらの2つの値の最大または最小の読み取り値を比較し、その数値を閾値と比較し得る。さらに別の例では、静電容量-グリップ保持は、コントローラのコントローラ本体上に存在する1つ以上の近接センサによって記録された近接値に基づいて識別され得る。例えば、ユーザの中指、薬指、および小指に対応する近接センサによって測定された近接値が、平均化され、閾値と比較され得る。この平均が閾値(例えば、最大センサ読み取り値の50%、最大センサ読み取り値の70%など)を超える場合、静電容量-グリップ状態が識別され得る。他の事例では、ソフトウェアおよび/またはハードウェアは、これらの2つの値の最大または最小の読み取り値を比較し、その数値を閾値と比較し得る。当然ながら、数個の例示的な保持状態が説明されているが、他のタイプの保持状態が用いられてもよい。
受信されたセンサデータが保持状態を示すと判定すると、ハードウェアおよび/またはソフトウェアは、特定の仮想物体が現在保持されているという指標を記憶し得る。例えば、ハードウェアおよび/またはソフトウェアは、実行されているアプリケーション内のユーザの仮想手の位置を判定すると共に、仮想手の場所に最も近い仮想物体を判定し得、この仮想物体が現在ユーザによって保持されているという指標を記憶し得る。次いで、ハードウェアおよび/またはソフトウェアは、判定された保持タイプ(例えば、つまみ、グリップなど)に従って、ディスプレイ上にユーザの仮想手によって保持されている仮想物体の提示を引き起こすように進行され得る。提示された仮想手は、人間の手の表現を含み得るが、「仮想手」は、アイテム(例えば、動物の足または爪、工具など)を保持するように表示されることが可能な任意の他の機構の形態をとってもよいことを理解されたい。さらに、仮想物体を「保持する」ことは、「仮想手」が、物体を直接保持するか、または物体を、仮想空間内で物体自体によるが、ハンドヘルドコントローラを介したユーザの制御下で動かすなどのような、物体を別様に制御することを含み得る。
保持タイプが「力-つまみ」または「静電容量-つまみ」である事例では、表現は、仮想物体をユーザの親指および人差し指(例えば)でつまんでいる仮想手に対応し得る。保持タイプが力-グリップまたは静電容量-グリップである事例では、表現は、仮想物体をグリップする(例えば、仮想指が物体の周囲を包んだ状態のユーザの仮想手の手のひらの中で)仮想手に対応し得る。
仮想物体が保持されているとハードウェアおよび/またはソフトウェアが判定した後、ハードウェアおよび/またはソフトウェアは、仮想物体がいつ解放されるかを判定するためにセンサデータを監視し続け得る。例えば、ハードウェアおよび/またはソフトウェアは、力データ、近接度データ、および/または速度データを分析して、ユーザがアイテムの解放をいつ開始するように意図するかを判定し得る。解放の開始を識別すると、次いで、ハードウェアおよび/またはソフトウェアは、センサデータを分析して、解放をいつ実行するか、例えば、仮想物体をいつ落とされている、投げ出されているなどとして表現するかを判定し得る。いくつかの事例では、速度データ、静電容量データ、力データなどが分析されて、この判定を行い得る。さらに、ハードウェアおよび/またはソフトウェアが物体の解放を示すセンサデータを識別しない場合、仮想物体は、解放の開始後の所定の時間量(例えば、秒単位、フレーム数単位などで測定される)で解放され得る。各事例では、仮想物体は、ユーザの仮想手から解放されるものとしてディスプレイ上に提示され得る。
当然ながら、上記の例は、投げ出されるかまたは落とされる物体を説明しているが、他の事例では、本明細書に説明される技術は、センサデータを利用して他の仮想ジェスチャを生成してもよい。例えば、力データは、ユーザが閾値の力の量でコントローラ本体をグリップすることに応答して、粉砕されている仮想物体の表現を生成するために使用され得る。
上記に加えて、本明細書に説明される技術は、受信されたセンサデータに少なくとも部分的に基づいて、仮想物体の解放をどのように提示するかを判定し得る。例えば、仮想物体が解放されることになるとハードウェアおよび/またはソフトウェアが判定するとき、ハードウェアおよび/またはソフトウェアは、物体の速度(例えば、速さおよび方向)、仮想物体が解放されることになる位置、仮想物体の解放の位置から着地または他の停止点までの仮想物体の軌道、仮想物体の着地場所などのうちの1つ以上を計算し得る。
いくつかの事例では、ハードウェアおよび/またはソフトウェアは、例えば、ユーザによって意図された実際の時間のわずかに後の時点で物体を解放することをユーザが意図したと判定し得る。すなわち、このセンサデータが生成された後にハードウェアおよび/またはソフトウェアがハンドヘルドコントローラからのセンサデータを分析することを考慮すると、ハンドヘルドコントローラを保持しているユーザによって表現される物体を解放する意図と、その意図の判定との間にラグが存在し得る。したがって、本技術は、このラグの影響を軽減することを試み得る。
そうするために、仮想物体が解放されることになることをセンサデータが示すと判定すると、本明細書に説明されるハードウェアおよび/またはソフトウェアは、「ルックバック」を実施して、ユーザが物体を解放することを意図する可能性が高い時点の時間(例えば、フレーム)を判定し得る。例えば、第1の時間で、物体の解放の開始を認識すると、ハードウェアおよび/またはソフトウェアは、第1の時間の前の所定の時間量からのセンサデータを分析し得る。この所定の時間量は、フレーム(例えば、先行する5フレーム、15フレーム、50フレームなど)、生の時間(例えば、先行する5ミリ秒、5秒など)に関して、または任意の他の様態で定義され得る。
1つの特定の例では、ハードウェアおよび/またはソフトウェアは、前の15フレームと関連付けられたセンサデータを分析して、ユーザがいつ解放を開始することを意図する可能性が高いかを判定し得る。いくつかの事例では、ハードウェアおよび/またはソフトウェアは、先行する15フレームの各々におけるハンドヘルドコントローラの速度の大きさを分析して、この時間範囲中のピーク速度を識別し得る。ピーク速度と関連付けられたフレームは、ユーザが物体を解放することを意図した時間に対応して指定され得る。このフレームを識別すると、ハードウェアおよび/またはソフトウェアは、ディスプレイ上に、このフレームと関連付けられた情報および/またはこのフレームと関連付けられたセンサデータに少なくとも部分的に基づいて、仮想物体の解放を提示し得る。
一例では、ピーク速度に関連付けられたフレームを識別した後、ハードウェアおよび/またはソフトウェアは、このフレーム、このフレームの前のフレーム、およびこのフレームの後のフレームの平均速度を計算し得る。平均速度は、3つのフレーム間の平均速さ、および平均方向の両方を含み得る。次いで、ハードウェアおよび/またはソフトウェアは、この平均速度に少なくとも部分的に基づいて、仮想物体の解放をディスプレイ上に提示し得る。例えば、ハードウェアおよび/またはソフトウェアは、計算された平均速度の平均速さおよび平均方向で仮想手を離れる仮想物体を提示し得る。
追加的または代替的に、ハードウェアおよび/またはソフトウェアは、ピーク速度と関連付けられた時点における仮想物体の位置で解放されている仮想物体を提示し得る。すなわち、仮想物体は、ユーザが解放を開始することを意図したとハードウェアおよび/またはソフトウェアが判定した時点で第1の位置にあり得るが、仮想物体は、ピーク速度が発生した時点で(第1の時間の所定の時間範囲内で)第2の異なる位置に位置していてもよい。したがって、仮想物体は、この第2の前の位置で解放されているように提示され得る。
さらに他の事例では、ハードウェアおよび/またはソフトウェアは、仮想物体が意図される時点で解放された仮想物体の着地場所を計算し得、この場所に仮想物体の着地を表示し得る。すなわち、ピーク速度と関連付けられたフレームを識別すると、ハードウェアおよび/またはソフトウェアは、ピーク速度およびこのフレームにおける仮想物体の位置を使用して、仮想物体がその瞬間に解放された仮想物体の軌道を計算し得る。この軌道は、着地場所(例えば、地上の点、標的上の点など)で終了し得る。次いで、ハードウェアおよび/またはソフトウェアは、現在の時点における仮想物体の現在の位置と着地場所との間の軌道を計算し得、ディスプレイ上に、この計算された軌道で移動する仮想物体を表示させ得る。さらに他の例では、一方で、ハードウェアおよび/またはソフトウェアは、軌道が現在の時点における仮想物体の現在の位置から始まるが、物体がピーク速度の点で解放された場合に発生したことになる軌道に沿って移動する仮想物体をディスプレイ上に提示し得る。
当然ながら、仮想物体の速度、軌道、着地場所、または発射位置を判定する数個の例が上記で説明され、図36~39を参照して以下で考察されるが、説明されるハードウェアおよび/またはソフトウェアは、多数の他の様態で解放されている仮想物体を提示し得ることを理解されたい。
上記に加えて、これらの力の値を生成するための力検知抵抗器(FSR)もまた、本明細書で説明される。本明細書に説明されるFSRは、抵抗性かつ可撓性である第2の基板の下に配設されたポリイミドで作製された第1の基板を用いて構築され得る。第1の基板は、その前面上に配設された導電性材料(例えば、複数の櫛形金属フィンガ)を有する。1つ以上のスペーサ層はまた、第2の基板の中心部分が第1の基板上に懸架されるように、第1の基板と第2の基板との間に介在する。アクチュエータは、加えられた力を第2の基板の前面に伝達するために、第2の基板上に配設される。これが発生すると、第2の基板の中心部分は、第1の基板に向かって内向きに屈曲し、第2の基板の裏面上の抵抗性材料のいくつかは、第1の基板の前面上の導電性材料のいくつかと接触する。加えられる力が増加するにつれて、抵抗性材料によって接触される導電性材料の表面積が増加する。同様に、加えられる力が減少するにつれて、抵抗性材料によって接触される導電性材料の表面積が減少する。可変の加えられる力の下における表面積接触のこの変化は、FSRを、加えられる力によって値が制御される可変抵抗器として作用させる。
第1の基板に使用されるポリイミド材料に少なくとも部分的に起因して、開示されるFSRは、他の可能な最終用途の中でも、VRシステムのコントローラにおける使用に望ましい特性を呈する。例えば、ポリイミド基板は、嵩高のヘッダコネクタの使用なしで、FSRの出力端子(またはリード)を基板(例えば、PCB)上に直接、選択的にはんだ付けすることを可能にし、これは、大きい、嵩高のヘッダコネクタを必要とするマイラベースのFSRと比較して、より小さい設置面積を有するFSRを可能にする。ポリイミドが、一般的に、可撓性回路のための選択材料として使用されるため、FSRのポリイミド基板は、FSRを他の可撓性回路に簡便に接続することを可能にし、このことは、従来のFSRを製造するコストと比較して、開示されたFSRを製造するコストを低減し得る。ポリイミドはまた、リフロー炉の温度などの高温にも耐えることができ、コスト削減製造プロセスへの扉を開く。加えて、ポリイミドは、開示されるFSRの第1の基板として使用されるとき、従来のFSRと比較して、より低いヒステリシスおよびより高い再現性などの望ましい特性を呈する。全体的に、ポリイミドで作製された第1の基板を有する開示されたFSRは、真のアナログ入力をモデル化する力対抵抗応答曲線を呈し、FSRをVRシステムのコントローラにおける使用に望ましいものにする。
本明細書では、ポリイミドで作製された第1の基板を有する開示されたFSRを含む電子システム(例えば、VRシステム)用のコントローラも開示される。コントローラは、ユーザの手によって保持されるように構成され得、コントローラ本体を含み得る。開示されるFSRは、コントローラ本体のハンドル内に装着される構造、またはコントローラ本体のヘッド上に含まれる少なくとも1つの親指操作制御部の下に装着される構造などの、コントローラ本体内の構造の平坦表面上に装着され得る。FSRは、電子システム用のコントローラに実装されたとき、コントローラの関連付けられた部分に加えられた力(例えば、ハンドルの外面、少なくとも1つの親指操作制御部に加えられた力など)に対応する抵抗値を測定するように構成される。
FSRをVRシステム用のコントローラに実装することは、従来のコントローラを使用してその現在の状態を越えて自然な相互作用の範囲を拡大することを可能にする。例えば、電子システムおよび/またはコントローラは、FSRを介して、ユーザがコントローラのハンドルを握る力、および/またはユーザが親指操作制御部を押す力を判定し得る。開示されるFSRが望ましい応答曲線を呈するため、そのようなコントローラは、様々な力の押圧または握りを、ゲームの仕掛けを制御するために(例えば、岩を粉砕するために、バルーンを握るために、ゲームキャラクターによって使用可能な利用可能な武器を切り替えるために、など)ビデオゲームに使用され得る様々なデジタル化された数値に変換し得る。望ましい応答特性を有するFSRは、ユーザの疲労を軽減するため、および/または制御部の偶発的な作動を軽減するために、従来の機械スイッチを置換し得る。例えば、FSRは、加えられた力が、いつ閾値を超えるかを検出することによって、スイッチとして作用し得る。この閾値は動的に調節される。例えば、閾値は、ゲームプレイ中の手の疲労(例えば、ユーザが、ゲームプレイ中に頻繁に武器を撃つために、FSRと関連付けられた制御部を押圧しているとき)を軽減するために、より低い値に調節されてもよい。反対に、閾値は、ユーザがビデオゲーム内の刺激に反応し得るスリリングまたはエキサイティングなゲームにおいて有用であり得る、偶発的な制御操作の事例を低減するために、より高い値に調節されてもよい。
本明細書では、それぞれ、タッチセンサまたは近接センサのアレイによって提供されたタッチデータまたは近接データと組み合わせて、コントローラのFSRによって提供された力データに基づいてセンサ融合アルゴリズムを実装するための論理を含む、ハンドヘルドコントローラも開示される。例示的なセンサ融合アルゴリズムは、タッチセンサによって検出されるように、物体がFSRと関連付けられた制御部に接触するときに、FSRを再較正するために使用され得る。例えば、論理は、タッチセンサによって提供されたタッチデータに基づいて、物体が、押されるように構成されたコントローラ本体上の制御部と接触したと判定し得る。論理はまた、物体が制御部と接触した時点でFSRによって提供された力データに基づいて、FSRによって測定された抵抗値を判定し得、制御部におけるタッチを検出する際にFSRを「再較正」するために、抵抗値を、ゼロのデジタル化されたFSR入力値と相関させ得る。
別の例示的なセンサ融合アルゴリズムは、物体が隣接する制御部と接触しているときにFSRによって検出された偽入力を無視するために使用され得る。例えば、論理は、FSRによって提供された力データに基づいて、ハンドヘルドコントローラの第1の制御のためにFSR入力イベントを登録するために満たされるべき閾値を満たすかまたはそれを超える、デジタル化されたFSR入力値に対応する、FSRによって測定された抵抗値を判定し得る。論理はまた、FSRによってFSR抵抗値が測定される時点でタッチセンサによって提供されたタッチデータに基づいて、物体が第1の制御部に隣接するハンドヘルドコントローラの第2の制御部と接触していると判定し得、物体が第2の制御部と接触している間、FSR入力イベントの登録を控え得る。
別の例示的なセンサ融合アルゴリズムは、近接センサのアレイによって検出されるように、コントローラのハンドルを掴む手のサイズを検出するために、および手のサイズに従ってFSRでFSR入力イベントを登録するように閾値力を調節するために使用され得る。これは、より小さい手を有するユーザにとって力ベースの入力をより容易にするために有用であり得る(より大きい手を有するユーザにとっては、より難しくなるが、困難ではない)。例えば、ハンドヘルドコントローラのハンドル上に空間的に分散される近接センサのアレイは、ハンドルを握っている手のサイズを判定するために使用され得、論理は、手のサイズに基づいて、ハンドルについてのFSR入力イベントを登録するために満たされるべき、調節された閾値に閾値を調節し得る。
図1~4は、本開示の例示的な実施形態による、電子システム用のコントローラ100を図示する。コントローラ100は、VRビデオゲームシステム、ロボット、武器、または医療デバイスなどの電子システムによって利用され得る。コントローラ100は、ハンドル112を有するコントローラ本体110と、コントローラ100をユーザの手(例えば、ユーザの左手)の中に保持するための手保持具120と、を含み得る。ハンドル112は、任意選択的に実質的に円筒形であり得る、管状ハウジングを備える。この文脈において、実質的に円筒形の形状は、一定の直径、または完全に円形の断面を有する必要はない。
図1~4の実施形態では、コントローラ本体110は、1つ以上の親指操作制御部114、115、116を任意選択的に含み得る、ヘッド(ハンドル112と遠位端111との間)を含み得る。例えば、チルトボタン、または任意の他のボタン、ノブ、ホイール、ジョイスティック、もしくはトラックボールは、コントローラ100がユーザの手の中に保持されている間に、通常動作中にユーザの親指によって簡便に操作され得る場合、親指操作制御部とみなされ得る。
コントローラ100は、好ましくは、コントローラ本体110に固定され、かつ2つのノーズ132、134を任意選択的に含む、追跡部材130を含み、ノーズ132、134の各々が、追跡部材130の2つの対向する遠位端の対応する1つから突出している。図1~4の実施形態では、追跡部材130は、円弧形状を有する追跡弧であることが好ましいが、必須ではない。追跡部材130は、その中に配設された複数の追跡変換器を含み、好ましくは、少なくとも1つの追跡変換器が、各突出ノーズ132、134内に配設されている。追加の追跡変換器がコントローラ本体110内にも配設され得、好ましくは、少なくとも1つの遠位追跡変換器が遠位端111に隣接して配設されている。
上記の追跡変換器は、電子システムによって放射される電磁放射線(例えば、赤外線)に応答する追跡センサであってもよく、またはそれらは、代替的に、電子システムによって受信される電磁放射線(例えば、赤外線)を放射する追跡ビーコンであってもよい。例えば、電子システムは、コントローラ100に向かってパルス化された赤外線を広くブロードキャスト、すなわち、描写する、VRゲームシステムであり得、追跡部材130の複数の追跡変換器が、ブロードキャストのパルス化された赤外線を受信するかまたはそれらから遮られ得る、赤外線センサである。各ノーズ132、134内の追跡変換器(例えば、各ノーズ内の3つのセンサ)は、好ましくは、追跡部材130の各遠位端上でユーザの手よりも突き出し、したがって、許容できない量のシャドーイングなしに、より広い角度で、電子システムによって放射される電磁放射線を受信するか、または電子システムに電磁放射線を送信するように、より良好に露出される(ユーザの手の周囲で)。
いくつかの事例では、追跡部材130およびコントローラ本体110は、硬質プラスチックなどの実質的に剛性の材料で作製され、それらが互いに対して感知できるほどに並進または回転しないように、しっかりと一緒に固定される。このようにして、空間内における追跡変換器の配置の並進および回転の追跡は、互いに対する追跡変換器の動きによって複雑にならないことが好ましい。例えば、図1~4に示されるように、追跡部材130は、2つの場所でコントローラ本体110に結合されることによってコントローラ本体110に固定され得る。手保持具120は、それらの2つの場所に隣接してコントローラ100(コントローラ本体110または追跡部材130のいずれか)に取り付けられて、2つの位置の間でハンドル112の外面に対してユーザの手のひらを付勢し得る。
特定の実施形態では、追跡部材130およびコントローラ本体110は、一緒に組み立てられるのではなく、材料の連続性を有する一体的なモノリシック構成要素を含み得る。例えば、追跡部材130およびコントローラ本体110は、単一の射出成形プロセス工程によって一緒に成形され得、追跡部材130およびコントローラ本体110の両方を含む1つの一体的な硬質プラスチック構成要素を結果的にもたらし得る。あるいは、追跡部材130およびコントローラ本体110は、最初に別々に製作され、次いで、一緒に組み立てられてもよい。いずれにせよ、追跡部材130は、コントローラ本体110に固定されているとみなされ得る。
手保持具120は、図1に開位置で示される。手保持具120は、湾曲した弾性部材122によって開位置で任意選択的に付勢されて、ユーザがVRゴーグルによって閉塞された視界でコントローラを掴むときに、手保持具120とコントローラ本体110との間へのユーザの左手の挿入を容易にし得る。例えば、湾曲した弾性部材122は、任意選択的に、弾性的に曲がる可撓性金属片であってもよく、または実質的に弾性的に曲がり得るナイロンなどの代替的なプラスチック材料を含んでもよい。湾曲した弾性部材122は、ユーザの快適さのために、任意選択的に、部分的または完全に、クッションまたは布材料124(例えば、ネオプレンシース)に対して内部にあるか、またはそれらによって被覆され得る。あるいは、クッションまたは布材料124は、ユーザの手に面する湾曲した弾性部材122の側部のみに配設(例えば、接着)され得る。
手保持具120は、任意選択的に、例えば、ばね付勢された輪止め128によって締められる引きひも126を含むことによって長さを調節可能であり得る。引きひも126は、ランヤードとして使用され得る余分な長さを任意選択的に有し得る。シース124は、任意選択的に、引きひもに取り付けられ得る。特定の実施形態では、湾曲した弾性部材122は、締められた引きひも126の張力によって予荷重を与えられ得る。そのような実施形態では、湾曲した弾性部材122が手保持具120に与える張力(開位置で手保持具120をバイアスするための)は、引きひも126が締められていないときに手保持具を自動的に開かせる。本開示はまた、止め具、弾性バンド(手の甲に対して押し当てるように弾性張力を加えるように、手が挿入されると一時的に伸びる)、長さ調整を可能にするフック&ループストラップアタッチメントなどの、手保持具120の長さを調節するための代替的な従来の手法も企図する。
手保持具120は、ハンドル112と追跡部材130との間に配設され、ユーザの手の甲に接触するように構成され得る。図2は、ユーザの左手がコントローラ100の中に挿入されているが、コントローラ本体110を掴んでいない、操作中のコントローラ100を示す。図2では、手保持具120は、ハンドル112の外面に対してユーザの手のひらを物理的に付勢するように、閉じられ、手を覆って締め付けられている。そのようにして、手保持具120は、閉じられたとき、手がコントローラ本体110を掴んでいないときでも、コントローラ100を手に保持し得る。図3および4は、手保持具120が閉じられ、手がコントローラ本体110を掴み、親指が親指操作制御部(例えば、トラックパッド116)のうちの1つ以上を操作しているときの操作中のコントローラ100を図示する。
コントローラ本体110のハンドル112は、好ましくは、その外面の周囲に部分的または完全に空間的に分散されている近接センサのアレイを含む。アレイの近接センサは、必ずしも等しいサイズではなく、必ずしもそれらの間に等しい間隔を有していないが、アレイは、グリッドを含み得る。近接センサのアレイは、好ましくは、ハンドル112の外面へのユーザの指の近接度に応答する。例えば、近接センサのアレイは、ハンドル112の外面の下に埋め込まれた複数の静電容量センサであり得、その外面は、電気絶縁材料を含む。そのような静電容量センサのアレイとユーザの手の一部分との間の静電容量は、それらの間の距離と逆相関する。静電容量は、RC発振器回路を静電容量センサアレイの素子に接続し、かつ回路の時定数(したがって、発振の周期および周波数)が静電容量によって変化することになる点に留意することによって検知され得る。このようにして、回路は、ハンドル112の外面からのユーザの指の解放を検出し得る。
手保持具120(例えば、手保持ストラップ)がしっかりと閉じられているとき、それは、コントローラ100が手から落ちることを防止するのみならず、ハンドル112の近接センサアレイに対して指が過度に並進することを避けて、指の動きをより確実に検知するように機能し得る。電子システムは、制御されたキャラクタの手を開くこと、指の向き、またはコントローラに対するもしくは互いに対する指の他の動きをレンダリングするために、近接センサアレイからの検知をより良好に使用するために、解剖学的に可能な指の動きを具現化するアルゴリズムを含み得る。このようにして、ユーザのコントローラ100および/または指の運動は、VRゲームシステム、防衛システム、医療システム、産業用ロボットもしくは機械、または別のデバイスを制御することを助け得る。VRシステムアプリケーション(例えば、ゲーム、訓練など)では、システムは、追跡変換器の運動に基づいて投げ出す動きをレンダリングし得、コントローラのハンドルの外面からのユーザの指の検知された解放に基づいて、投げ出された物体の解放をレンダリングし得る。
したがって、手保持具120の機能(コントローラ100が実際に手から分離されることなく、または床に投げ出されるかもしくは落とされることなく、ユーザがコントローラ100を「手放す」ことを可能にするための)は、制御された電子システムの追加の機能を可能にし得る。例えば、コントローラ本体110のハンドル112のユーザの掴むことの解放および復帰が検知される場合、そのような解放または掴むことは、投げ出すかまたは掴む物体を表示する(例えば、VR内で)ようにゲーム内に組み込まれ得る。手保持具120は、そのような機能が繰り返しかつ安全に達成されることを可能にし得る。例えば、図1~4の実施形態の手保持具120の場所は、例えば、ユーザがVR環境内で検知されたプロンプトに応答して動くとき(例えば、VRゴーグルによって実質的に盲目化されながら)、追跡部材130が現実世界における衝撃からユーザの手の甲を保護することを助け得る。
特定の実施形態では、コントローラ100は、コントローラ本体110内に配設された充電式電池を含み得、手保持具120(例えば、手保持ストラップ)は、充電式電池に電気的に連結された導電性充電配線を含み得る。コントローラ100はまた、好ましくは、電子システムの残部と通信するための高周波(RF)送信機も含む。そのようなRF送信機は、充電式電池によって給電され得、親指操作制御部114、115、116、コントローラ本体110のハンドル112内の近接センサ、および/または追跡部材130内の追跡センサに応答し得る。
図5に示されるように、特定の実施形態では、コントローラ100は、類似の右コントローラ200を含む一対のコントローラのうちの左コントローラであり得る。特定の実施形態では、コントローラ100および200は、例えば、VR経験を増強するために、ユーザの両手の動きおよび握りを同時に(一緒に)追跡し得る。
図6Aは、本開示の別の例示的な実施形態による右手コントローラ600の正面図を図示する。図6Bは、右手コントローラ600の背面図を図示する。コントローラ600は、ヘッド610およびハンドル612を含むコントローラ本体を有する。図6A~6Bの実施形態では、ヘッド610は、少なくとも1つの親指操作制御部A、B、608を含み、人差し指によって操作されるように構成された制御部(例えば、トリガ609)も含み得る。ハンドル612は、外側シェル640によって部分的に包まれた管状ハウジングを備える。
図6A~6Bの実施形態では、追跡部材630は、ヘッド610で、かつハンドル612の一端でコントローラ本体に固定される。手保持具620は、ヘッド610とハンドル612の一端との間の外側シェル640に対してユーザの手のひらを物理的に付勢するように構成される。手保持具620は、好ましくは、ハンドル612と追跡部材630との間に配設され、長さが調節可能であり、かつユーザの手の甲に接触するように構成される、手保持ストラップを備え得る。図6A~6Bの実施形態では、手保持具620は、引きひも628を任意選択的に含み、任意選択的に、ひも係止部626(ハンドル612の遠位端に隣接する)によって長さが調節可能であり得、ひも係止部626は、ひも係止部626の場所で引きひも628によって摺動する動きを選択的に防止する。
図6A~6Bの実施形態では、追跡変換器632、633は、追跡部材630上に配設され、追跡変換器633は、追跡部材630の対向する遠位端の突出するノーズ上に配設される。追加の追跡変換器634は、ヘッド610の遠位領域上に任意選択的に配設される。追跡変換器632、633、および634は、電子システム(例えば、仮想現実ゲームシステム)によって放射される電磁放射線(例えば、赤外線)に応答する追跡センサであってもよく、または電子システムによって受信される電磁放射線(例えば、赤外線)を放射する追跡ビーコンであってもよい。例えば、電子システムは、コントローラ600に向かってパルス化された赤外線を広くブロードキャスト、すなわち、描写する、VRゲームシステムであり得、追跡変換器632、633、および634は、ブロードキャストのパルス化された赤外線を受信し得る赤外線センサである。そのような追跡センサの応答は、電子システムに返信され得、システムは、そのような応答を解釈して、コントローラ600の場所および配向を効果的に追跡し得る。
追跡変換器632、633、634のうちの1つ以上は、任意選択的に、図7Aの実施形態に示されるように、または図7Bの実施形態に代替的に示されるように、または代替的に、示されない従来の手法で構造化され得る。図7Aの下側部分は、赤外線不透過性プラスチックを含む、上に設けられている窓付きハウジング壁755の長方形部分の下に示される、可撓性回路751に電気的に接続されている赤外線センサ750の分解斜視図を図示する。窓付きハウジング壁755は、窓756を含む。窓756は、好ましくは、赤外線透過性ポリカーボネートプラスチックを含み、赤外線センサ750の厚さを収容するための下側凹部を含み得る。
図7Aの実施形態によると、窓付きハウジング壁(例えば、追跡部材630の外側構造、または図6Aのヘッド610)は、ハウジング壁の大部分が、赤外線不透過性プラスチックから製作されるが、赤外線透過性プラスチックが、赤外線センサ750の上の窓756内に配設されるように、いわゆる「二連式」射出成形プロセスで製作され得る。
図7Aの上側部分は、組み立てられた、赤外線センサ750、可撓性回路751、および窓付きハウジング壁755の断面図を図示する。上から窓756に入射する3つの下向き矢印として図7Aに示される赤外線は、下にある赤外線センサ750によって受光されるように窓756を通過する。ハウジング壁755は、赤外線不透過性プラスチックを含むため、それに当たる赤外線は、通過せず、一部分は、反射されて窓に戻り、赤外線センサ750によって受光される。このようにして、窓756は、ハウジング壁755の大部分が赤外線不透過性プラスチックを含むことにもかかわらず、赤外線が赤外線センサ750に影響を与えることを可能にし、そのため、赤外線センサ750は、好ましい角度範囲のみから赤外線を受光する。
あるいは、追跡変換器632、633、634のうちの1つ以上は、任意選択的に、図7Bの実施形態に示されるように構造化され得る。図7Bの下側部分は、IR透過性プラスチックを含む、上に設けられているハウジング壁758の長方形部分の下に示される、可撓性回路751に電気的に接続されている赤外線センサ750の分解斜視図を図示する。ハウジング壁758は、窓759(赤外線不透過性フィルム757が存在しない)を含むようにパターン化されている赤外線不透過性フィルム757で被覆される。
図7Bの上側部分は、組み立てられた、赤外線センサ750、可撓性回路751、ハウジング壁758、およびIR不透過性フィルム757の断面図を図示する。上からハウジング壁758に入射する3つの下向き矢印として図7Bに示される赤外線は、ハウジング壁758を通過して、そこで、下にある赤外線センサ750によって受光される。ハウジング壁758が赤外線透過性プラスチックを含むため、それに当たる赤外線は、その中を通過して失われ得、おそらく、内部反射を介して意図せず、かつ望ましくなく、近くのセンサにも到達する場合がある。このようにして、赤外線不透過性フィルム757内の窓759は、赤外線が、赤外線センサ750に主に影響を与えることを可能にする。
図8は、右手コントローラ600の側面図を示し、ハンドル612の管状ハウジングを部分的に包む外側シェル640が分解されて、その内面上の器具類を明らかにしている。図8の実施形態では、器具は、外側シェル640の内面に空間的に分散される近接センサのアレイ800を含み得、近接センサのアレイ800は、ユーザの指の外側シェル640の近接度に応答する。アレイの近接センサ800は、必ずしも等しいサイズではなく、互いに規則的または均等に間隔を有する必要もない。特定の実施形態では、近接センサのアレイ800は、好ましくは、外側シェル640の内面に結合されている可撓性回路に接続され得る複数の静電容量センサであり得る。図8の実施形態では、外側シェル640は、ハンドル612の嵌合する第2の電気コネクタ部分に接続され得る(図9A~9Bにより詳細に示されるように)第1の電気コネクタ部分805を含む。
図9A~Bは、コントローラのハンドルが、任意選択的に、継目613によって長手方向に分割されている管状ハウジング部分612a、612bを含み、管状ハウジング部分612aおよび612bが隣接することを示す、図6Aの右手コントローラ600の断面を図示する。図9Aでは、外側シェル640は、ハンドルの残部から分解されて示される。図9Bは、外側シェル640がその通常動作位置に取り付けられている点で異なる、図9Aの断面を図示する。図9A~9Bの実施形態では、外側シェル640の第1の電気コネクタ部分805は、コントローラハンドルの第2の電気コネクタ部分905に嵌合し、接続可能であるように示される。
図9A~9Bの実施形態では、外側シェル640は、好ましくは、長手方向の継目613と重なるように管状ハウジング612a、612bを部分的に包み、その結果、長手方向の継目613は、近接センサアレイ800の所望の円周方向の場所に適応するのではなく、製造プロセスを最適化するように位置付けられ得る。特定の実施形態では、外側シェル640は、ハンドルの管状ハウジング612a、612bの円周部分Cと重なり、円周部分Cは、ハンドルの管状ハウジング612a、612bの全円周の少なくとも100度、ただし170度以下で角度的に広がる。そのような円周方向の重なりは、特定の実施形態では、近接センサアレイ800が、ユーザの指または手のひらの所望の部分、例えば、掴むことを最良に示す手の領域の近接度を検知することを可能にし得る。
ハンドルの管状ハウジング612a、612bは、円形断面を有する必要はなく、単語「円周」は、本明細書では、ハンドルの管状ハウジング612a、612bが円形断面を有するか否かにかかわらず、使用される。本明細書では、「円周」という用語は、ハンドルの管状ハウジング612a、612bを中心とした全周を意味し、全周は、管状ハウジング612a、612bが直円筒である場合、円形であり得るが、全周は、管状ハウジングが非円柱または中空プリズムとして成形される場合、円以外の閉じた形状であり得る。
図9A~9Bの実施形態では、プリント基板(PCB)920は、ハンドルの管状ハウジング612a、612b内に装着され得、第2の電気コネクタ部分905は、PCB920に電気的に連結される。PCB920は、任意選択的に、力検知抵抗器(FSR)922を含み、コントローラは、外側シェル640を介して加えられた圧縮力を、ハンドルの管状ハウジング612a、612bの外側に向かってFSR922に内向きに伝達するプランジャ924をさらに備え得る。特定の実施形態では、FSR922は、近接センサアレイ800と併せて、ユーザによる掴むことの開始、およびユーザによるそのような掴むことの相対的強度の両方の検知を容易にし得、このことは、特定のゲームプレイ特徴を容易にし得る。
特定の実施形態では、外側シェル640は、ハンドルの管状ハウジング部分612aまたは612bのハウジング壁厚さの3分の1未満であるシェル厚さ(図9A~9Bで半径方向に測定される)を有する。これらの実施形態では、そのような厚さの不等性は、近接センサアレイ800がハンドルの管状ハウジング612a、612bの上または中に配設される代替的な実施形態と比較して、近接センサアレイ800の感度を改善し得る。
図10Aは、部分的に閉じられた手保持具220(例えば、手保持ストラップ)を伴う、本開示の別の例示的な実施形態による右手コントローラ200の正面図を図示する。図10Bは、手保持具220が全開である点で異なる、コントローラ200の正面図を図示する。図10A~10Bの実施形態では、コントローラ200は、ヘッド210およびハンドル212を有するコントローラ本体を含む。ヘッド210は、コントローラ200のネック領域211でハンドル212に隣接する。ハンドル212は、好ましくは、その外面のすぐ下に空間的に分散され、好ましくは、ハンドル212の外面へのユーザの指の近接度に応答する近接センサのアレイを含む。
図10A~10Bの実施形態では、ヘッド210は、親指操作制御部A、B、および208を含む。コントローラ200はまた、ヘッド210で、かつハンドル212の一端でコントローラ本体に好ましくは固定される、追跡部材230を含む。追跡部材230は、好ましくは、電子システムによって放射される電磁放射線(例えば、仮想現実ゲームシステムによって放射されるパルス化された赤外線)に応答するセンサ、または電子システムによって受信される電磁放射線を放射する追跡ビーコンであり得る、複数の追跡変換器を含む。図10A~10Bの実施形態では、追跡部材230は、円弧形状を有する追跡弧であることが好ましいが、必須ではない。手保持具220は、好ましくは、ハンドル212と追跡弧230との間に配設される。
図10A~10Bの実施形態では、コントローラ200は、引きひも228、およびハンドル212の遠位端に隣接するひも係止部226を含む。ひも係止部226は、ひも係止部226における引きひも228による摺動する動きを選択的に防止し得る。図10Aの実施形態では、引きひも228がひも係止部226をさらに越えて漸進的に引っ張られると、手保持具220は、閉位置により強く引き込まれる(図10Aに図示される動きの矢印によって示されるように)。閉位置は、ハンドル212の外面に対してユーザの手のひらを物理的に付勢する。
図10A~10Bの実施形態では、手保持具220は、好ましくは、図10Bに示される開位置に向かって手保持具220を付勢する弾性部材(例えば、金属片などの内部または外部の弾性変形可能な片)を含む。図10Bの実施形態では、ユーザがひも係止部226に引きひも228の相対的な摺動を選択的に解放および許容させるとき、弾性変形された弾性部材の直線化に向かう予荷重の付勢は、手保持具220を自然に開かせる(図10Bに図示される動きの矢印によって示されるように)。開位置は、特にユーザの視界が仮想現実ゴーグルの装着によって妨げられ得るときに、ユーザの手をコントローラ200に挿入するかまたはそこから引き出すことを容易にし得る。
図11Aは、ヘッド210を中心としてその周囲を動くように調節され得る手保持具アンカー302を含む、コントローラ200のヘッド210およびハンドル212の構成要素の正面図を図示する。図11Bは、ヘッド210を中心としたその周囲の手保持具アンカー302の選択的調節を容易にし得る係止可能なカラー部分311を露出するように面板がヘッド210から取り外された点で異なる、ヘッド210およびハンドル212の構成要素を図示する。
図11Bの実施形態では、係止可能なカラー部分311は、内部円弧ガイド315によって画定される円弧経路に沿って並進し得る。係止可能なカラー部分311は、ユーザによって選択的に係止されて、ヘッド210の周囲を中心としたアンカー302のさらなる運動を防止し得る。ここで、図4および10A~11Bを参照すると、手保持具220の弾性部材は、ヘッド210の手保持具アンカー302に取り付けられ、これは、手保持具220が、ユーザの第1指間腔(purlicue)(ユーザの親指と人差し指との間)に向かってまたはそこから離れて調節されることを可能にする。特定の実施形態では、手保持具220の弾性部材は、好ましくは、枢動するかまたは回転可能なアタッチメントによってヘッド210の手保持具アンカー302に取り付けられ、それにより、手保持具220は、アタッチメントの場所で手保持具アンカー302に対して枢動し得る。そのような自由度は、ヘッド210の周囲を中心として手保持具アンカー302の位置の調節可能性に付加的である。
図12A、12B、および12Cは、ネック領域411内のヘッドに接合されたヘッド410およびハンドル412を含むコントローラ本体を有する部分的に組み立てられたコントローラ400の代替的な実施形態を図示する。図12A~12Cの代替的な実施形態では、コントローラ本体は、ネック領域411に隣接して配設されたチャネル414を含む。チャネル414が部分的に不明瞭にならないように図12Aに示されていない手保持具は、チャネル414内に延在する突起425内で終端する弾性部材420を含む。
図12Bおよび12Cの実施形態では、突起425は、手保持具が閉位置にあるとき、チャネル414内の突起の長手方向運動を防止するキャッチ427を含む。例えば、図12Cの実施形態では、キャッチ427は、手保持具突起425の相対角度が手保持具の閉位置に対応するとき、すなわち、手保持具の閉位置が弾性部材420に張力を結果的にもたらすとき(例えば、図12Cの断面に示される下向き方向で)、チャネル414の内面との摩擦を増加させるカムである。
対照的に、手保持具突起425が、手保持具の開位置に対応する相対角度に回転されるとき(例えば、図12Cの断面に示される上向き方向で)、キャッチ427とチャネル414との間の摩擦が低減され、手保持具突起425は、チャネル414内で並進され得る(図12Bに示される動きの矢印によって示されるように)。チャネル414は、好ましくは、チャネル414に沿った手保持具突起の並進が、好ましくは、ユーザの手の第1指間腔に向かってまたはそこから離れて手保持具突起425の相対位置を調節するように配向され、例えば、それにより、コントローラ400が異なる手のサイズまたは指の長さに適応し得る。代替的な実施形態では、手保持具突起425は、従来の枢動接合によって手保持具の残部に枢動可能に取り付けられ得る。そのような回転自由度は、チャネル414に沿った手保持具突起425の調節可能な並進に付加的である。
図13A~Cは、本開示の例示的な実施形態による力検知抵抗器(FSR)1300の異なる図を図示する。図13CのFSR1300の断面に示されるように、FSR1300は、ポリイミドで作製された第1の基板1302を含み得る。FSR1300は、第1の基板1302上(またはその上方)に配設された第2の基板1304をさらに含み得る。第1の基板1302および第2の基板1304は、2層FSR1300とみなされ得る、FSR1300の2つの主基板(または層)であるとみなされ得るが、本明細書により詳細に説明されるように、FSR1300が追加の層を含むことを理解されたい。この文脈では、第1の基板1302は、FSR1300の2つの主基板に対して「底部」または「ベース」基板とみなされ得るが、第1の基板1302の裏(または下)(すなわち、図13Cに図示される、負のZ方向に)に材料の層が存在し得ることを理解されたい。
第1の基板1302は、第1の基板1302の前面(すなわち、正のZ方向に面する表面)上に配置された導電性材料を有する。図14を参照してより詳細に説明されるように、この導電性材料は、複数の櫛形金属フィンガを含み得る。一方、第2の基板1304(場合によっては、抵抗性「膜」と呼ばれる)は、第2の基板1304の裏面(すなわち、負のZ方向に面する表面)上に配設された抵抗性材料を有する。この抵抗性材料は、ある程度の電気抵抗(例えば、300キロオーム(kOhm)/スクエア(kOhm/sq)~400kOhm/sq)の範囲内の比較的高いシート抵抗)呈する、インク組成物(例えば、銀インク、炭素インク、それらの混合物など)などの半導体材料であり得る。好ましくは、第2の基板1304のシート抵抗は、350kOhm/sqであるが、FSR1300が非コントローラベースの用途などの他の用途で使用されるときなど、本明細書に指定されるシート抵抗範囲外のものを含む他のシート抵抗値が使用されてもよいことを理解されたい。したがって、本明細書に指定されるシート抵抗範囲(複数可)は、非限定的であると理解されるべきである。いくつかの実施形態では、第2の基板1304は、抵抗性材料が第2の基板1304の裏面に配設されたマイラで作製され得る。いくつかの実施形態では、第2の基板1304は、裏面上に抵抗性材料(例えば、導電性インク組成物)を有するポリイミドで作製される。第2の基板1304にポリイミドを使用する例示的な利点は、リフロー炉を使用して量産され得るFSR1300を作成することであり、一方、マイラは、そのような高温に耐えることができなかった。
FSR1300は、第2の基板1304の中心部分が第1の基板1302の上に懸架され、そこから一定の距離だけ間隔を有するように、第1の基板1302と第2の基板1304との間に介在する1つ以上のスペーサ層を含み得る。図13Cは、非限定的に、第1の基板1302の周囲に第1の基板1302上に配設されたカバーレイ1306と、カバーレイ1306上に配設された接着剤の層1308と、を含む、2つのスペーサ層を示す。カバーレイ1306は、ポリイミドで作製され得、したがって、第1の基板1302と同じ材料であり得る。カバーレイ1306の厚さ(Z方向で測定される)は、10ミクロン~15ミクロンの範囲内であり得る。接着剤1308の層の厚さ(Z方向で測定される)は、50ミクロン~130ミクロンの範囲内であり得る。それゆえに、第2の基板1304が第1の基板1302から離間する総距離は、1つ以上のスペーサ層の厚さの合計(例えば、カバーレイ1306の厚さに接着剤の層1308の厚さを加えたもの)であり得る。これらの層は、FSR1300が非コントローラベースの用途などの他の用途で使用されるときなどでは、本明細書に指定される厚さ範囲外にある厚さで提供されてもよい。したがって、これらの厚さ範囲は、非限定的であると理解されるべきである。
アクチュエータ1310(ディスク形状の順応性プランジャなど)は、第2の基板1304上に配設され得、力Fを第2の基板1304の前面上に伝達するように構成される。アクチュエータ1310は、アクチュエータ1310の上に力を加えると、ある程度変形する順応性材料であるポロンで作製され得る。アクチュエータ1310は、加えられた力Fを中心に置くために、FSR1300の活性エリアの中心と同心であり得る。アクチュエータ1310はまた、FSR1300の活性エリアのその部分にわたって、加えられた力Fを均等に分散させるために、FSR1300の活性エリアの一部分に広がる。
第2の基板1304の厚さ(Z方向で測定される)は、50ミクロン~130ミクロンの範囲内であり得る。この例の厚さでは、第2の基板1304は、可撓性である。例えば、第2の基板1304は、上記の範囲内の厚さで可撓性である、マイラで作製され得る。FSR1300の機能的動作は、アクチュエータ1310に加えられた圧縮力Fの下で、第2の基板1304の裏面上の抵抗性材料が、第1の基板1302の前面上の導電性材料と接触するために、第2の基板1304の可撓性に依存する。第1の基板1302の厚さ(Z方向で測定される)は、20ミクロン~30ミクロンの範囲内であり得る。この厚さでは、ポリイミドもまた、可撓性である。したがって、第1の基板1302もまた、可撓性である。一方、アクチュエータ1310の厚さ(Z方向で測定される)は、780ミクロン~810ミクロンの範囲内であり得る。これらの層は、FSR1300が非コントローラベースの用途などの他の用途で使用されるときなどでは、本明細書に指定される厚さ範囲外にある厚さで提供されてもよい。したがって、これらの厚さ範囲は、非限定的であると理解されるべきである。
FSR1300は、アクチュエータ1310に加えられた可変力Fに応答して、様々な抵抗を呈し得る。例えば、アクチュエータ1310上の力Fが増加すると、抵抗は減少する。このようにして、FSR1300は、値が加えられた力Fによって制御される可変抵抗として扱われ得る。FSR1300は、「シャントモード」FSR1300または「スルーモード」FSR1300であり得るが、好ましくは、シャントモードFSR1300である。シャントモードFSR1300によると、第1の基板1302の前面上に配設された導電性材料は、複数の櫛形金属フィンガの形態であり得る。力Fがアクチュエータ1310の前面(または上面)に加えられると、第2の基板1304の裏面上の抵抗性材料は、金属フィンガをシャントする櫛形金属フィンガのいくつかと接触し、それによって、FSR1300の出力端子にわたって抵抗を変化させる。スルーモード実装形態では、第1の基板1302上の導電性材料は、導電性材料上に配設された半導体(または抵抗性)材料を有する導電性材料の固体エリアであり得、第2の基板1304は、同様の構造(例えば、導電性材料の固体エリアが、その上に配設された半導体(または抵抗性)材料を有する)を有し得る。各基板(1302および1304)上の導電性材料の固体エリアは、個々の出力端子に連結され、励磁電流は、2つの基板(1302および1304)が、加えられた力Fの下で接触するときに、1つの層を通って他方の層まで通過し得る。
少なくとも好ましいシャントモード実装形態では、FSR1300抵抗が加えられた力Fの関数としてプロットされる、力対抵抗応答曲線は、VRシステムのコントローラ100/600で使用するための望ましい特性を呈する。例えば、FSR1300の応答曲線は、底部基板の材料としてマイラを使用するものなどの従来のFSRと比較して、より低いヒステリシスおよびより高い再現性(1つのFSR1300から別のFSR1300まで)を呈し得る。負荷ヒステリシスは、現在のFSR1300抵抗に対する以前に加えられた力の影響を説明する。応答曲線はまた、単調であり、仮想岩を粉砕する、仮想バルーンを握るなどの、VRゲームシステム内のいくつかのゲームの仕掛けのために利用され得る、真のアナログ入力をモデル化する。本明細書の例は、加えられた力Fを説明するが、FSR1300は、実際には、小さい点対第2の基板1304の前面上のより大きい面積で加えられた等量の力が、FSR1300の異なる抵抗応答を結果的にもたらすことになるため、加えられた圧力(力×面積)に敏感であることを理解されたい。したがって、アクチュエータ1310は、加えられた力Fの下の応答曲線の観点から、FSR1300にわたって再現性を維持する役割を果たす。
図14は、FSR1300を構築する例示的なプロセスの進行段階におけるFSR1300の様々な正面図を図示する。図14の段階1では、複数の櫛形金属フィンガ1400が、ポリイミドの第1の基板1302の前面上に形成され得る。金属フィンガ1400は、導電性である。金属フィンガ1400に使用される例示的な導電性金属は、1/3オンスのHA銅などの銅である。この銅はまた、金めっき処理され得る。複数の櫛形金属フィンガ1400は、減法的製造プロセスを使用して形成され得る。例えば、段階1の前に、ポリイミドの第1の基板1302は、その前面に配設された銅箔層と共に形成され得、銅箔層は、図14の段階1に示される櫛形金属フィンガ1400のパターンを作成するために、エッチングされ得る(例えば、銅材料片を除去することによって)。エッチングされたパターンのサイズおよび間隔は、0.2ミリメートル(mm)である、隣接する金属フィンガ1400の対の間の距離(Y方向で測定される)、および0.2mmである、複数の櫛形金属フィンガ1400の各金属フィンガの幅(Y方向で測定される)を作成するように選択され得る。このフィンガ幅およびフィンが間の間隔は、FSR1300の最大感度と最小製造エッチング公差との間の最適なバランスを提供し得る。金属フィンガ1400の均一なパターンが図14に示されるが、他の不均一なパターン(例えば、中心に向かってより密度の高いフィンが、および外側に向かってより密度の低いフィンが)が用いられてもよいことを理解されたい。図14は、2組の櫛形金属フィンガ1400を示し、各々が、第1の出力端子1402(1)および第2の出力端子1402(2)を有する2端子FSR1300の出力端子1402(またはリード)につながる。
上述されたように、金属フィンガ1400を構成する銅は、金めっき処理され得る。したがって、櫛形金属フィンガ1400のパターンをエッチングした後、金めっきの層が、金めっき処理されたフィンガを作成するために銅フィンガ上に堆積され得る。したがって、図14の段階1に示される複数の櫛形金属フィンガ1400は、金めっき処理されたフィンガを表し得る。金めっきは、無電解ニッケル浸漬金(ENIG)であり得る。特に、金めっきの前に、ベース層の銅の上に追加の銅めっきは存在しなくてもよい。追加の銅めっきは、一般に、多層可撓性基板にビアを追加するときに、ベース層の銅の上に適用される。しかしながら、金めっきの前にベース層の銅の上に追加の銅めっきを追加することは、実際には、金めっきの前にベース層の銅の上にいかなる追加の銅めっきを含まない開示されたFSR1300と比較して、検出される抵抗の望ましくない増加を引き起こし得る。したがって、金めっきの前の金属フィンガ1400上におけるあらゆる追加の銅めっきを省略することは、FSR1300で最適な感度を達成する。したがって、金属フィンガ1400を構成する銅箔層は、金属フィンガ1400が金材料でめっき処理される時点で露出されたままである。このようにして、金材料は、ベース層の銅と金めっきとの間に介在するいかなる追加の銅めっきもなしで、金属フィンガ1400のベース銅材料と直接接触する。
図14の段階2では、カバーレイ1306が、第1の基板1302の周囲で第1の基板1302の上に堆積され得る。例えば、カバーレイ1306は、金属フィンガ1400の周囲部分を被覆するために環状の形状であり得、金属フィンガ1400の残部分は、堆積後にカバーレイ1306によって被覆されていないままである。カバーレイ1306は、ポリイミドで作製され得る。
図14の段階3では、接着剤の層1308は、金属フィンガ1400の残部分(カバーレイ1306によって被覆されていないままの金属フィンガ1400の部分)が、接着剤1308の層によっても被覆されていないままになるように、カバーレイ1306の上に堆積され得る。例えば、接着剤の層1308は、接着剤の層1308がカバーレイ1306の実質的な部分を覆い、かつ接着剤の層1308がFSR1300の活性エリアを被覆しないように、C字形であり得る。FSR1300の「活性エリア」は、直径Bを有するように図14の段階3に示される。さらに、C字形である接着剤の層1308は、接着剤の層1308によって被覆されていないカバーレイ1306の区分を残し得る。カバーレイ1306のこの被覆されていない区分は、幅wを有するように図14の段階3に示される。第2の基板1304が第1の基板1302の上面に配置された後、カバーレイ1306のこの被覆されていない区分は、空気が第1の基板1302と第2の基板1304との間の空間から入るおよび/または出ることを可能にする空隙を作成し、この空隙は、大気圧の変化に起因するセンサ間応答変動を防止し得る。空隙(すなわち、カバーレイ1306の被覆されていない区分)の幅wは、1mmであり得、これは、加えられた力の下で接触した表面積の対称性を保存するのに十分に小さく、かつ空気が空隙を通って入る/出ることを可能にするのに十分に大きい。いくつかの実施形態では、接着剤の層1308は、3M(登録商標)Company of Maplewood、Minnesota製の467接着剤(すなわち、3M467接着剤)であり得る。カバーレイ1306および接着剤の層1308は、第2の基板1304を、懸架された様式で第1の基板1304から一定の距離だけ間隔を置くために、第1の基板1302の上に提供され得るスペーサ層の例を表す。上述のように、カバーレイ1306の厚さ(Z方向で測定される)は、10ミクロン~15ミクロンの範囲内であり得、接着剤の層1308の厚さ(Z方向で測定される)は、50ミクロン~130ミクロンの範囲内であり得る。好ましくは、接着剤の層1308の厚さは、非常に軽く加えられた力Fの下における初期応答(例えば、FSR1300が入力の検出を開始する)を可能にするために、可能な限り薄く作製される。しかしながら、これらの層は、FSR1300が非コントローラベースの用途などの他の用途で使用される場合などでは、本明細書に指定される厚さ範囲外である厚さで提供されてもよい。したがって、これらの厚さ範囲は、非限定的であると理解されるべきである。
段階4では、第2の基板1304が、第1の基板1302の上に提供され得る。段階4では、第2の基板1304の中心部分が、第1の基板1302と第2の基板1304との間に介在する1つ以上のスペーサ層(例えば、カバーレイ1306および接着剤の層1308)によって第1の基板1302の上に懸架される(図13C参照)。図14に示されていないが、図13A~Cに示されるように、アクチュエータ1310は、FSR1300の構築を完了するために、第2の基板1304の前面に取り付けられ得る。アクチュエータのサイズ(X-Y平面で測定される)は、FSR1300の活性エリアの80%(すなわち、図14の段階3に示される直径Bの80%)に広がり得る。例えば、ディスク形状のアクチュエータ1310は、0.8×Bに等しい直径を有し得る。いくつかの実施形態では、FSR1300の全体の直径は、14.5mmであり得る。この寸法では、活性エリアは、10.5mmの直径Bを有し得、これは、カバーレイ1306および接着剤の層1308が、第1の基板1302と第2の基板1304との間の2mmのリングとして堆積され得ることを意味する。この実施形態では、アクチュエータ1310は、8.4mm(すなわち、0.8×10.5mm)の直径を有し得る。
FSR1300は、外力(または負荷)不在下で開回路であり得る。いくつかの実施形態では、ゼロまたは無視できる加えられた力の下における第1の基板1302および第2の基板1304の任意の接触を考慮するために、閾値回路は、第1の基板1302および第2の基板1304が「接触している」とみなされる閾値抵抗値を設定するために使用され得、このことは、2つの主基板(すなわち、1302および1304)が実際に接触している場合でも、閾値抵抗値が満たされるまでFSR1300が開回路であり得ることを意味する。
図15は、本開示の別の実施形態による、FSR1300の例示的な層を図示する。図15は、正確な縮尺ではない。むしろ、図15は、材料の例示的な層を例示するために提示され、FSR1300の実際の断面図を表すことを意図しない。既出の図を参照して上記で説明されたように、FSR1300は、図15に示されるように、ポリイミドで作製された第1の基板1302、第1の基板1302の前面上に配設された金属フィンガ1400(すなわち、導電性材料)、および第1の基板1302上に配設された第2の基板1304を含み、1つ以上のスペーサ層が、第1の基板1302と第2の基板1304との間に介在し、この場合、上述のカバーレイ1306および接着剤の層1308を含む、2つの主基板の間に配設された多数のスペーサ層が存在する。アクチュエータ1310はまた、第2の基板1304上に配設される。
図15の実施形態では、アクチュエータ1310は、ポロンから作製され得、794ミクロンの厚さ(Z方向で測定される)を有し得る。アクチュエータ接着剤1500の層は、アクチュエータ1310を第2の基板1304に取り付けるために使用され得る。このアクチュエータ接着剤1500は、厚さ(Z方向で測定される)が70ミクロンであり得る。アクチュエータ接着剤1500に好適な接着剤は、Avery Dennison of Glendale、California製のFT8397接着剤である。図15の実施形態では、第2の基板1304の厚さ(Z方向で測定される)は、125ミクロンであり得る。第2の基板1304の裏面上の抵抗性材料のシート抵抗は、350kOhm/sqであり得る。接着剤の層1308は、3M MP467接着剤などの剥離接着剤であり得る。接着剤の層1308の厚さ(Z方向で測定される)は、50ミクロンであり得る。カバーレイ1306は、ポリイミドで作製され得、12.5ミクロンの厚さ(Z方向で測定される)を有し得る。カバーレイ接着剤1502(例えば、両側に接着剤を有するポリエチレン)が、金属フィンガ1400の上の第1の基板1302の前面上にカバーレイ1306を取り付けるために使用され得る。カバーレイ接着剤1502は、25ミクロンの厚さ(Z方向で測定される)を有し得る。金属フィンガ1400は、銅(例えば、金めっきされた銅)で作製され得、12.5ミクロンの厚さ(Z方向で測定される)を有し得る。第1の基板1302は、25ミクロンの厚さ(Z方向で測定される)を有し得る。
感圧接着剤(PSA)1504が、第1の基板1302の裏面に取り付けられ得る。PSA1504は、3M 467MPであり得、50ミクロンの厚さを有し得る。PSAライナ1506が、PSA1504の上に配設され得、FSR1300を平坦表面に(例えば、コントローラ本体110の内側に装着された構造の平坦表面に)取り付ける前に剥離され得る。
FSR1300のコネクタ部分では、補強ポリイミド1508が、補強接着剤1510を使用して第1の基板1302の裏面に取り付けられ得る。補強ポリイミド1508は、137.5ミクロンの厚さ(Z方向で測定される)を有し得、コネクタ部分のさらなる耐久性のためにFSR1300のより硬いコネクタ部分を作成し得る。補強接着剤の厚さ(Z方向で測定される)は、25ミクロンであり得る。
図15の実施形態は、本明細書に開示されるように、電子システム(例えば、VRシステム)用のコントローラ100/600のハンドル112/612内に装着される構造の平坦表面上に装着するために好適であるFSR1300を表し得る。FSR1300が非コントローラベースの用途などの他の用途で使用されるときなど、図15を参照して指定されるもの以外の他の厚さ値、シート抵抗値、および/または材料が利用され得ることを理解されたい。したがって、これらの値および材料は、非限定的であると理解されることになる。
図16は、本開示の別の実施形態による、FSR1300の例示的な層を図示する。図16は、正確な縮尺ではない。むしろ、図16は、材料の例示的な層を例示するために提示され、FSR1300の実際の断面図を表すことを意図しない。第1の基板1302に対して図16に示されるFSR1300および第1の基板1302の上の層(すなわち、正のZ方向)は、図15に示されるFSR1300と同様の構造を有し得る。図16は、第1の基板1302の下の層(すなわち、負のZ方向)で図15とは異なる。したがって、簡潔化の目的のために、図16の第1の基板1302および上の層(すなわち、正のZ方向)は、図16のこれらの層についての図15の説明を参照することができるため、図16の第1の基板1302は、再び説明されない。
図16の実施形態では、補強剤1600は、補強接着剤1510を使用して、FSR1300の主本体部分の下の第1の基板1302の裏面に取り付けられ得る。補強接着剤の厚さ(Z方向で測定される)は、図15の実施形態の場合のように、25ミクロンであり得るが、補強剤1600は、FSR1300の主本体部分の下に位置し、一方、補強剤ポリイミド1508は、FSR1300のコネクタ部分の下に位置する。さらに、補強剤1600は、図15の実施形態の補強剤ポリイミド1508よりも厚い、530ミクロンの厚さ(Z方向で測定される)を有するFR4補強剤であり得る。プルタブ1602は、接着剤1604の層を使用して、補強剤1600の裏面に取り付けられ得る。接着剤の層1604は、3M MP467接着剤などのプルタブ接着剤であり得る。接着剤の層1604の厚さ(Z方向で測定される)は、50ミクロンであり得る。
図16の実施形態は、本明細書に開示されるように、電子システム(例えば、VRシステム)用のコントローラ100/600の親指操作制御部116の下に装着される構造の平坦表面上に装着するために好適であるFSR1300を表し得る。FSR1300が非コントローラベースの用途などの他の用途で使用されるときなど、図16を参照して指定されるもの以外の他の厚さ値、シート抵抗値、および/または材料が利用され得ることを理解されたい。したがって、これらの値および材料は、非限定的であると理解されることになる。
図17は、本開示の別の実施形態による、FSR1300の例示的な層を図示する。図17は、正確な縮尺ではない。むしろ、図17は、材料の例示的な層を例示するために提示され、FSR1300の実際の断面図を表すことを意図しない。図17に示されるFSR1300の層のいくつかは、図15に示されるFSR1300と同様の構造を有し得る。しかしながら、図17は、図15とは、いくつかの態様で異なる。
図17の実施形態では、第2の基板1304の厚さ(Z方向で測定される)は、127ミクロンであり得る。接着剤の層1308は、3M 468MP接着剤などの剥離接着剤であり得る。リフロー炉の高温に耐え得るFSR1300について、接着剤の層1308は、3M 9085または3M 9082などの剥離接着剤であり得る。接着剤の層1308の厚さ(Z方向で測定される)は、125ミクロンであり得る。いくつかの場合、接着剤1308の層の厚さは、50ミクロンであり得る。加えて、金属フィンガ1400は、RA銅で作製され得る。加えて、導電性材料1700は、第1の基板1302の裏面上に配設され得る。導電性材料1700は、12.5ミクロンの厚さ(Z方向で測定される)を有するHA銅またはRA銅であり得る。追加のカバーレイ1702は、導電性材料1700上に堆積され得る。この追加のカバーレイ1702は、ポリイミドで作製され得、カバーレイ接着剤1704を使用して導電性材料1700に取り付けられ得る。追加のカバーレイ1702の厚さ(Z方向で測定される)は、12.5ミクロンであり得、カバーレイ接着剤1704の厚さ(Z方向で測定される)は、25ミクロンであり得る。接着剤の層1706は、カバーレイ1702上に配設され得る。接着剤の層1706は、60ミクロンの厚さ(Z方向で測定される)で、3M 467MP接着剤などの剥離接着剤であり得る。リフロー炉の高温に耐え得るFSR1300について、接着剤の層1706は、3M 9085または3M 9082などの剥離接着剤であり得る。
図17の実施形態は、非VRコントローラのコントローラ本体110内に装着される構造の平坦表面上に装着するために好適なFSR1300を表し得る。FSR1300が非コントローラベースの用途などの他の用途で使用されるときなど、図17を参照して指定されるもの以外の他の厚さ値、シート抵抗値、および/または材料が利用され得ることを理解されたい。したがって、これらの値および材料は、非限定的であると理解されることになる。
図18A~Dは、本開示の別の実施形態による、FSR1800を図示する。FSR1800は、ポリイミドで作製された第1の基板1802、および可撓性であり、その裏面に抵抗性材料を有する第2の基板1804などの、FSR1300に関して説明されたものと同様である構成要素層を有し得る。1つ以上のスペーサ層(例えば、カバーレイ1806および接着剤の層1808)が、第1の基板1802と第2の基板1804との間に介在し得る。
図18Bおよび18CのFSR1800の第1基板1802の一部分は、第2基板1804の周囲に巻かれ、第2の基板1804の前面上にも配設される。図18Aは、「折り畳む前」とラベル付けされ、第1の基板1802の一部分が第2の基板1804の周囲に巻かれる前のFSR1800を図示する。図18Aでは、FSR1800は、第1の本体部分1812(1)(「下側バルーン」1812(1)と称されることもある)および第2の本体部分1812(2)(「上側バルーン」1812(2)と称されることもある)を含む。下側バルーン1812(1)は、下側バルーン1812(1)の第1の端にある折り畳みネック1814によって上側バルーン1812(2)に接続される。はんだ付けピグテール1816は、下側バルーン1812(1)の第2の端から延在し、はんだ付けパッド1818は、はんだ付けピグテール1816の端末端上にある。図18Bおよび図18Cに示されるように、タクトスイッチの形態のアクチュエータ1810は、アクチュエータ1810が折り畳み操作後にFSR1800の前面または上層になるように、上側バルーン1812(2)上に配設される。したがって、FSR1800の第1の基板1802のうち、第2の基板1804の周囲に巻かれている部分は、上側バルーン1812(2)である。
折り畳み操作後のFSR1800の断面が、FSR1800の例示的な層を図示するために図18Cに示される。図18Cに示される層のいくつかは、図18Dを参照してより詳細に説明される。図18Cのこの実施形態では、力Fは、アクチュエータ1810(例えば、タクトスイッチ)に加えられ得、可変のデジタル化された値に変換されるFSR1800の可変抵抗を引き起こす。アクチュエータ1810用のタクトスイッチ(例えば、所定の力の量Fの適用下で異なるバイナリ状態に切り替えられるスイッチ)の使用は、タクトスイッチ1810が作動されると最初に「クリック」する二段階FSR1800を作成し、次いで、FSR1800は、増加した力Fが加えられると可変抵抗を出力し得る。これは、タクトスイッチ1810が押下されるたびに、タクトスイッチ1810が同じ力の量Fで作動すると仮定することによって、FSR1800の個々の作動に対してFSR1800を較正するように機能し得る。すなわち、FSR1800は、タクトスイッチ1810の作動の検出に応答して、タクトスイッチ1810の作動と関連付けられた既知の力の量Fにリセットされ得る。これは、FSR1800の固有の不正確さを軽減し得る。
図18Cおよび18Dに示すように、FSR1800は、25ミクロンの厚さ(Z方向で測定される)を有するポリイミドで作製された第1の基板1802を含む。12.5ミクロンの厚さ(Z方向に測定される)を有する導電性材料(例えば、図18Dに示されるHA銅(例えば、金めっきされた銅)で作製された金属フィンガ1820)は、導電性材料が第2の基板1804上の抵抗性材料の下にあるように、下側バルーン1812(1)の第1の基板1802の前面上に配設され得る。カバーレイ接着剤1822が、金属フィンガ1820の上の第1の基板1802の前面上にカバーレイ1806を取り付けるために使用され得る。カバーレイ接着剤1822は、25ミクロンの厚さ(Z方向で測定される)を有し得る。カバーレイ1806は、ポリイミドで作製され得、12.5ミクロンの厚さ(Z方向で測定される)を有し得る。カバーレイ1806上に配設された接着剤の層1808は、3M MP467接着剤などの剥離接着剤であり得る。接着剤の層1808の厚さ(Z方向で測定される)は、60ミクロンであり得る。第2の基板1804の厚さ(Z方向で測定される)は、127ミクロンであり得る。第2の基板1804の裏面上の抵抗性材料のシート抵抗はまた、350kOhm/sqであり得る。接着剤の層1824は、上側バルーン1812(2)が折り畳みネック1814で下側バルーン1812(1)の上に折り畳まれるときに、上側バルーン1812(2)を下側バルーン1812(1)に取り付けるために使用され得る。接着剤の層1824は、厚さ(Z方向で測定される)が125ミクロンであり得る。接着剤の層1824に好適な接着剤は、3M 468MPである。接着剤の層1824はまた、C字形であり得る。
FSR1800の上側バルーン1812(2)上では、第1の補強ポリイミド1834は、補強接着剤1836を使用して第1の基板1802の前面に取り付けられ得る(折り畳む前に)。第1の補強ポリイミド1834は、75ミクロンの厚さ(Z方向で測定される)を有し得る。補強接着剤の厚さ(Z方向で測定される)は、25ミクロンであり得る。加えて、FSR1800の上側バルーン1812(2)上では、第2の補強ポリイミド1838が、接着剤の層1840を使用して、第1の補強ポリイミド1834の前面に取り付けられ得る(折り畳む前)。第2の補強ポリイミド1838は、75ミクロンの厚さ(Z方向で測定される)を有し得る。接着剤の層の厚さ(Z方向で測定される)は、125ミクロンであり得る。上側バルーン1812(2)が、折り畳みネック1814で下側バルーン1812(1)の上に折り畳まれるとき、第2の補強ポリイミド1838は、図18Cに示されるように、第2の基板1804と接触し、接着剤の層1824は、折り畳み操作後、FSR1800の2つの主本体部分1812(1)および1812(2)を積層された関係で接着する。FSR1800が非コントローラベースの用途などの他の用途で使用されるときなど、図18Dを参照して指定されるもの以外の他の厚さ値、シート抵抗値、および/または材料が利用され得ることを理解されたい。したがって、これらの値および材料は、非限定的であると理解されることになる。
加えて、図18Dに示されるように、導電性材料1826は、第1の基板1802の裏面に配設され得る。導電性材料1826は、12.5ミクロンの厚さ(Z方向で測定される)を有するHA銅であり得る。追加のカバーレイ1828は、導電性材料1826上に堆積され得る。この追加のカバーレイ1828は、ポリイミドで作製され得、カバーレイ接着剤1830を使用して導電性材料1826に取り付けられ得る。追加のカバーレイ1828の厚さ(Z方向で測定される)は、12.5ミクロンであり得、カバーレイ接着剤1830の厚さ(Z方向で測定される)は、25ミクロンであり得る。追加のカバーレイ1828およびカバーレイ接着剤1830は、はんだ付けピグテール1816、下側バルーン1812(1)、折り畳みネック1814、および上側バルーン1812(2)の一部分に広がり得、アクチュエータ1810のための設置面積(または空間)(図18Dの「ボタン設置面積」)を残し得る。接着剤の層1832は、追加のカバーレイ1828上に配設され得る。接着剤の層1832は、125ミクロンの厚さ(Z方向で測定される)で、3M 468MP接着剤などの剥離接着剤であり得る。接着剤の層1832は、はんだ付けピグテール1816および下側バルーン1812(1)に広がり得る。
例示的なFSR1300/1800は、略円形形状を有するように示されるが、FSR1300/1800は、正方形、長方形などの異なる断面形状の層で構築され得ることを理解されたい。FSR1300/1800は、特定の用途に応じて、本明細書に説明される例よりも全体的なサイズが大きくてもよく、または小さくてもよい。さらに、多数のFSR1300/1800を一緒に接続することによって、FSRのアレイが実装され得ることを理解されたい。そのようなアレイでは、FSR材料の層は、長い材料片内に構築され得る。
図19は、本明細書に開示されるFSR1300またはFSR1800などのFSRを製造するための例示的なプロセス1900のフロー図である。本明細書に説明されるプロセスは、一連の操作を表す論理フローグラフ内のブロックの集合として例示される。操作が説明される順序は、限定として解釈されることを意図するものではなく、任意の数の説明されたブロックは、プロセスを実装するために任意の順序でおよび/または並行して組み合わされ得る。
1902では、ポリイミドで作製された第1の基板1302が、第1の基板1302の前面に配設された銅箔層で形成され得る。
1904では、銅箔層は、第1の基板1302の前面上に複数の櫛形銅フィンガ(すなわち、金属フィンガ1400の例)を形成するためにエッチングされ得る。ブロック1904のエッチングは、複数の櫛形銅フィンガの中の隣接する銅フィンガの対の間に0.2mmの距離をもたらすように、0.2mmの幅を有する銅材料片を除去することを含む。除去された銅材料の連続片間の間隔はまた、0.2mmに保持されて、0.2mmの幅を有する銅フィンガを提供し得る。
1906では、金めっきの層は、複数の櫛形銅フィンガ上に堆積されて、金めっきされたフィンガを作製し得る。この金めっきは、ENIGであり得る。
1908では、1つ以上のスペーサ層は、第1の基板1302の周囲で第1の基板1302の上に提供され得、それによって、1つ以上のスペーサ層によって被覆されていない金めっきされたフィンガの一部分を残し得る。サブブロック1910および1912によって示されるように、多数のスペーサ層は、2つの操作で提供され得る。
1910では、カバーレイ1306(例えば、ポリイミド製)が、第1の基板の周囲で第1の基板1302上に堆積され得る。カバーレイ1306は、金めっきされたフィンガの周囲部分を被覆し得、金めっきされたフィンガの残部分は、カバーレイ1306によって被覆されないままである。
1912では、金めっきされたフィンガの残部分が接着剤の層1308によって被覆されていないままになるように、接着剤の層1308がカバーレイ1306上に堆積され得る。さらに、ブロック1912における操作は、接着剤1308の層によって被覆されていないカバーレイ1306の区分を残して、空気が第1の基板1302と第2の基板1304との間の空間から入るかまたは出ることを可能にする空隙を作成することを含み得る。
1914では、第2の基板1304は、第2の基板1304の中心部分が、第1の基板1302と第2の基板1304との間に介在する1つ以上のスペーサ層によって第1の基板1302の上に懸架されるように、第1の基板1302の上に提供され得る。この第2の基板1304は、可撓性であり、第2の基板1304の裏面上に配設された抵抗性材料を有する。
1916では、FSR1800を構築するために、第1の基板1802の延長部分は、第2の基板1804の周囲に巻かれ、第2の基板1804の前面に取り付けられ得、第1の基板1802の延長部分は、取り付けられることになるアクチュエータ1810と第2の基板1804との間に介在することになる。ブロック1916の点線の枠によって示されるように、この操作は、FSR1800を構築するために実施されるが、FSR1300を構築するときに省略されてもよい。
1918では、アクチュエータ1310は、例えば、アクチュエータ1310を第2の基板1304の前面に取り付けてFSR1300を構築することによって、またはアクチュエータ1810(例えば、タクトスイッチ)を、第1の基板第2の基板1804とアクチュエータ1810との間に介在する第1の基板1802に取り付けることによって、第2の基板1304の上に提供され得る。
本明細書に開示されるFSR1300/1800は、本明細書に開示されるコントローラ100/600などのハンドヘルドコントローラ内の構造の平坦表面上に装着され得、この構造は、コントローラ本体110の外面に加えられた力(例えば、制御部を押す指によって加えられた力、ハンドル112/612を手で握ることによって加えられた力)の量に対応する抵抗値を測定するために、コントローラ本体110内の任意の好適な場所に位置付けられ得る。図9Aおよび9Bを具体的に参照すると、FSR1300/1800は、PCB920の平坦表面上に装着され得、PCB920自体は、ハンドル612の管状ハウジング612a、612b内に装着され得る。この構成では、プランジャ924は、FSR1300/1800のアクチュエータ1310/1810とインターフェースし得、このことは、プランジャ924からアクチュエータ1310/1810に圧縮力を伝達することを可能にし得る。しかしながら、プランジャ924が省略され、アクチュエータ1310/1810が、ハンドル612の管状ハウジング612a、612bの一部分とインターフェースする、他の構成が可能である。図1を具体的に参照すると、FSR1300/1800は、ヘッド内(ハンドル112と遠位端111との間)の構造の平坦表面上に装着され得る。ヘッド内に装着された構造は、親指操作制御部114、115、116のうちの1つ以上の下に装着され得る。例えば、FSR1300/1800は、親指操作制御部116(例えば、トラックパッド)の下に位置付けられ得る。したがって、コントローラ100の操作中にユーザの親指が親指制御部116を押すと、親指操作制御部116の下に位置付けられたFSR1300/1800は、ユーザの親指によって親指操作制御部116に加えられた力の量に対応する抵抗値を測定するように構成され得る。多数のFSR1300/1800は、ハンドル112/612内に装着された1つ以上のFSR1300/1800、およびコントローラ本体110のヘッド上の1つ以上の対応するコントローラ114、115、116の下に装着された1つ以上のFSR1300/1800などの、コントローラのコントローラ本体110内に配設され得ることを理解されたい。
本明細書に開示されるFSR1300/1800は、コントローラ100/600に実装されたときに可変アナログ入力を可能にし得る。例えば、ハンドル112/612を握ること、または様々な力の量で親指操作制御部(複数可)(例えば、116)を押すことは、FSR1300/1800の抵抗を、加えられた力と共に変化させ得、抵抗は、ゲームの仕掛けを制御するためのFSR入力を表す、様々なデジタル化された値に変換され得る。
図20は、異なるモードで動作するように、コントローラ100/600などの、電子システム用のハンドヘルドコントローラのFSRベースの入力機構を構成するために使用され得る、例示的なユーザインターフェース(UI)2000を例示する。UI2000は、ヘッドマウントディスプレイ(HMD)などの電子システムのディスプレイ、またはパーソナルコンピュータ(PC)もしくはゲームコンソールと共に使用される任意の他のタイプのディスプレイ上に出力され得る。UI2000は、「アクティブ化タイプ」ドロップダウンメニュー2002を含む。「アクティブ化タイプ」ドロップダウンメニュー2002は、FSRベースの入力機構(例えば、親指操作制御部116、ハンドル112/612など)のアクティブ化の「ソフトプレス」タイプを選択するために使用され得る。ここで、「ソフトプレス」は、コントローラ100/600および/またはコントローラ100/600が関連付けられている電子システムが、FSR1300/1800のアナログ入力(例えば、FSR1300/1800に加えられた力に対応し、デジタル化されたFSR入力値に変換される、FSR抵抗)に基づいて、および簡単に考察されることになる追加の構成設定にも基づいて、FSRベースの入力イベントをいつ登録するかを、論理を使用して判定することを可能にする「ソフトウェアプレス」を意味する。言い換えると、抵抗値は、デジタル化されたFSR入力値に変換され得るFSR1300/1800によって測定され得る。このデジタル化されたFSR入力値が、「ソフトプレス」の構成設定によって指定された基準を満たす場合、FSRベースの入力イベントが登録され得る。
UI2000は、コントローラ100/600上の対応するFSRベースの入力機構に結合するようにPCベースの入力制御部を選択するために使用され得る、「結合」ドロップダウンメニュー2004をさらに含み得る。ここで、結合は、左マウスボタンとして選択されるが、結合は、他のPCベースの入力制御部として選択され得ることを理解されたい。結合はまた、アナログであってもよい。例えば、レーシングゲームの場合、FSR1300/1800は、ガスペダルに使用され得る(例えば、ユーザがFSRベースの制御機構を強く押すほど、レーシング車両は、ゲーム内で速く進む)。
UI2000は、ソフトプレスの様々な様式のうちの1つを選択するために使用され得る、「ソフトプレス様式」ドロップダウンメニュー2006をさらに含み得る。「単純閾」様式は、デジタル化されたFSR入力値が閾値を満たすかまたは超えると、FSR入力イベントが発生することを意味する。デジタル化されたFSR入力値は、FSRによって測定された特定の抵抗値に対応し、結果的に、FSR1300/1800に加えられた特定の力の量に対応するため、FSRによって測定された抵抗値が閾値抵抗値を満たすとき、および/または加えられた力の量が閾値の力の量を満たすとき、この様式のソフトプレスが、FSR入力イベントを登録すると考えることもできる。例えば、コントローラ100/600のハンドル112/612がFSR1300/1800を含む場合、ハンドル112/612は、閾値の力の量に達するまで握られ得、それに応答して、FSR入力イベントが「ソフトプレス」として登録される。「非押圧」に必要な力は、デバウンス目的の閾値の一部であり得る、および/または物理的なスナップ比を有するタクトスイッチを模倣するためのものであり得る。「単純閾」様式は、そのため、従来の機械スイッチに置換され得る。UI200は、構成可能なソフトプレス閾値2008(1)が、FSR入力イベントを登録するか否かを判定するために、デジタル化されたFSR入力値と比較される閾値を増加または減少させるように、ユーザによって調節され得ることを示す。ユーザは、FSRベースの入力機構のアクティブ化に関連する手の疲労を軽減するために、ソフトプレス閾値2008(1)をより低く(例えば、スライダを左に動かすことによって)調節することができる。ユーザは、偶発的な入力がFSRベースの入力機構によって登録される事例を低減するために、ソフトプレス閾値2008(1)をより高く(例えば、スライダを右に動かすことによって)調節することができる。いくつかの場合、ソフトプレス閾値2008(1)は、特定のゲーム用のデフォルト閾値(例えば、シューティングゲーム用のより低いデフォルト閾値、探索ゲーム用のより高いデフォルト閾値など)に設定され得る。
「触発性」様式は、ベースライン閾値を設定し得、FSR1300/1800と関連付けられたデジタル化されたFSR入力値がベースライン閾値を満たすかまたは超えると、結合がアクティブ化される(すなわち、FSR入力イベントが登録され、長押しボタン作動に似ている)。その後、任意の後続の力の減少は、結合を非アクティブ化し(すなわち、FSR入力イベントが「登録解除」され、ユーザがボタンを放すことに似ている)、結合を非アクティブ化した後のあらゆる力の増加は、結合を再びアクティブ化するように操作する。ソフトプレスの「触発性」様式には、いくつかのデバウンスが存在し得る。簡単に図21を参照すると、「触発性」論理の例が、力対時間グラフ2100上に示される。力軸は、ゼロから任意の好適な最大値までの範囲のデジタル化されたFSR入力値を表し得、これは、FSR1300/1800によって測定可能である抵抗値の範囲に対応する。図21に示されるように、デジタル化されたFSR入力値が増加するにつれて(例えば、ユーザがFSRベースの入力機構を徐々に強く押す)、デジタル化されたFSR入力値は、最終的にベースライン閾値2102を超え、それに応答して、結合がアクティブ化され(すなわち、FSR入力イベントは、ユーザ入力の長押しタイプと同様に登録される)、その後、結合は、デジタル化されたFSR入力値の減少(例えば、ユーザがFSRベースの入力機構をわずかに「放す」)に応答して非アクティブ化される。ユーザがFSRベースの入力機構をより強く押す場合、結合は、力がベースライン閾値2102を超える値にとどまる限り、再びアクティブ化され得、またその他諸々であり得る。
図20を再び参照すると、ソフトプレスの「ヒップファイア」様式が、3つの異なるサブ様式(例えば、アグレッシブ、ノーマル、およびリラックス)で選択され得る。「ヒップファイア」様式は、「ヒップファイア」様式が時間遅延を利用し、それにより、多数のレベルの結合を有する構成で、時間遅延が、より高い閾値に十分に速く到達する場合に、より低いFSR入力値を無視するために使用され得る点を除いて、ソフトプレスの「単純閾」様式と同様であり得る。時間遅延量は、異なるサブ様式(例えば、アグレッシブ、ノーマル、およびリラックス)間で変化する。簡単に図22を参照すると、「ヒップファイア」論理の例が、力対時間グラフ2200上に示される。繰り返しになるが、力軸は、ゼロから任意の好適な最大値までデジタル化されたFSR入力値の範囲を表し得、これは、FSR1300/1800によって測定可能である抵抗値の範囲に対応する。図22に示されるように、A1 2202は、第1のアクションに対応する第1の閾値に対応し、A2 2204は、第2のアクションに対応する第2の閾値に対応すると仮定する。時間遅延tは、ヒップファイア様式がアグレッシブタイプ、ノーマルタイプ、リラックスタイプのうちのいずれかであることに基づいて設定され得る。図22に示される「高速」曲線では、FSR入力値は、A1 2202に迅速に到達し、このことは、実行を開始するための時間遅延をトリガする。次いで、FSR入力値は、時間遅延が経過する前にA2 2204に到達し、このことは、論理に、A1 2202を無視させ、A2 2204に対応する第2のアクションについて、排他的にFSR入力イベントを登録させる。図22に示される「低速」曲線では、FSR入力値がA1 2202に到達し、時間遅延が開始される。しかしながら、FSR入力値は、時間遅延が経過する前にA2 2204に到達するのに十分速く増加しないため、論理は、A1 2202に対応する第1のアクションについてのFSR入力イベントを登録し、その後、FSR入力値は、最終的にA2 2204に到達し、論理は、A2 2204に対応する第2のアクションについての追加のFSR入力イベントを登録する。時間遅延tは、ミリ秒単位で指定され得、構成可能である。
図20を再び参照すると、追加のソフトプレス閾値2008(2)は、例えば、ソフトプレスの「ヒップファイア」様式のための閾値などの複数のレベルの閾値を設定するために使用可能であり得る。FSRベースの入力のための異なる様式のソフトプレスは、ユーザが様々な力でFSRベースの入力機構を握るかまたは押すことによって、いくつかの異なるゲーム関連のアナログ入力を可能にするために使用され得る。例えば、VRゲームは、コントローラ本体110のハンドル112/612を増加する力で握ることによって、ユーザが岩を粉砕するか、または風船を握ることを可能にし得る。別の例として、シューティングベースのゲームは、ユーザが、加えられる力の異なるレベルで親指操作制御部116を押すことによって、異なるタイプの武器間を切り替えることを可能にし得る。
図23は、コントローラ本体110内に配設された様々なセンサを有する、図1のコントローラ100を図示する。例えば、第1のFSR1300(1)は、コントローラ本体110のヘッド113上に含まれる親指操作制御部116などの、押されるように構成される制御部の下に装着され得る。第2のFSR1300(2)は、近接センサのアレイ800と共に、コントローラ本体110のハンドル112内に装着され得る。1つまたは他のFSR1300(1)または1300(2)がコントローラ100内に提供され得るか、またはFSR1300(1)および1300(2)の両方がコントローラ100内に提供され得ることを理解されたい。近接センサのアレイ800に加えて、またはその代わりに、1つ以上のタッチセンサ2300(例えば、タッチセンサ2300(1)~(3))は、親指操作制御部114、親指操作制御部115、および/もしくは親指操作制御部116、ならびに/または指操作制御部(例えば、トリガ609)などの、押されるように構成される1つ以上の制御部と関連付けられ得る。タッチセンサ(複数可)2300は、関連付けられた制御部(例えば、親指操作制御部114~116のうちの1つ以上)に接触する物体(例えば、指、親指など)を示すタッチデータを提供するように構成され得る。一例では、タッチセンサ(複数可)2300は、コントローラ本体110のヘッド113内に装着される静電容量センサ(または静電容量センサのアレイ)を備える(例えば、外側ハウジングの裏面およびコントローラ114~116の下に接着されるかまたは別様に取り付けられ、ヘッド113内のPCBなどの構造に取り付けられるなど)。他の事例では、タッチセンサ(複数可)2300は、赤外線または音響タッチセンサなどの他のタッチ検知技術に基づき得る。一方、ハンドル112上に空間的に分散される近接センサのアレイ800は、ハンドル112を掴む手を示す近接データを提供するように構成され得る。近接センサ800はまた、本明細書に開示されるように、ハンドル112上/ハンドル112への手の接触および/または近接度を検知するための任意の好適な技術を使用し得る。FSR1300は、制御部の押圧(例えば、制御部116の押圧)、またはハンドル112を握ることの力の量を示す力データを提供するように構成されている。図23に示される様々なセンサの組は、可撓性回路によって接続され得る。例えば、ヘッド113内のタッチセンサ2300およびFSR1300(1)は、共通の可撓性回路によって接続され得る。本明細書に開示されるFSR1300のポリイミド基板は、FSR出力端子の可撓性回路へのこのタイプの直接はんだ付けを可能にする。
本明細書に説明されるプロセスは、ハードウェア、ソフトウェア、またはそれらの組み合わせで実装され得る一連の操作を表す論理フローグラフ内のブロックの集合として例示される。ソフトウェアの文脈では、ブロックは、コンピュータ実行可能命令を表し、コンピュータ実行可能命令は、1つ以上のプロセッサによって実行されるとき、列挙された操作を実施する。一般に、コンピュータ実行可能命令は、特定の機能を実施するか、または特定の抽象データタイプを実装する、ルーチン、プログラム、オブジェクト、構成要素、データ構造などを含む。操作が説明される順序は、限定として解釈されることを意図するものではなく、任意の数の説明されたブロックは、プロセスを実装するために任意の順序でおよび/または並行して組み合わされ得る。
図24は、タッチセンサによって提供されたタッチデータに基づいて、ハンドヘルドコントローラ100/600のFSR1300/1800を再較正するための例示的なプロセス2400のフロー図である。
2402において、ハンドヘルドコントローラ100/600の論理は、タッチセンサによって提供されたタッチデータに少なくとも部分的に基づいて、物体(例えば、指、親指など)がハンドヘルドコントローラの少なくとも1つの制御部と接触したと判定し得る。少なくとも1つの制御部は、コントローラ100/600のコントローラ本体110に含まれ得、押されるように構成され得る。例えば、制御部は、コントローラ本体110のヘッド113に含まれる親指操作制御部116であり得る。この実施形態では、タッチセンサは、タッチセンサ2300のうちの1つであり得る。あるいは、制御部は、コントローラ本体110のハンドル112であってもよい。この実施形態では、タッチセンサは、近接センサのアレイ800であり得る。
2404では、論理は、物体が少なくとも1つの制御部と接触した時点でFSR1300/1800によって提供された力データに少なくとも部分的に基づいて、FSR1300/1800によって測定された抵抗値を判定し得る。
2406では、論理は、抵抗値を、ゼロのデジタル化されたFSR入力値と相関させ得る。言い換えると、物体が少なくとも1つの制御部と接触したときの検知された抵抗は、ゼロの力入力とみなされ得、このことは、その点の後にFSR1300/1800に加えられた力のあらゆる増加が、正のFSR入力値と相関されることを意味する。したがって、プロセス2400は、物体が制御部を押していないときでも幾らかの抵抗を測定し得る、FSR1300/1800のあらゆる固有の不正確さを、制御部のタッチの検出に対する再較正を介して軽減することを助け得るセンサ融合アルゴリズムを表す。
図25は、隣接する制御部のためのタッチセンサによって提供されたタッチデータに基づいて、ハンドヘルドコントローラ100/600のFSR1300/1800における偽入力を無視するための例示的なプロセス2500のフロー図である。
2502では、ハンドヘルドコントローラ100/600の論理は、ハンドヘルドコントローラの第1の制御部(例えば、親指操作制御部116)と関連付けられたFSR1300/1800によって提供された力データに少なくとも部分的に基づいて、FSR1300/1800によって測定された抵抗値を判定し得る。
2504では、論理は、抵抗値をデジタル化されたFSR入力値に変換し得る。
2506では、論理は、デジタル化されたFSR入力値が、第1の制御部のFSR入力イベントを登録するために満たされるべき閾値を満たすかまたはそれを超えるかを判定し得る。2506で閾値が満たされない場合、プロセス2500は、ブロック2506からブロック2502への「いいえ」経路に従い、追加の力データを待ち受ける。2506で閾値が満たされた場合、プロセス2500は、ブロック2506からブロック2508への「はい」経路に従う。
2508では、論理は、第1の制御部に隣接する第2の制御部(例えば、親指操作制御部114または115)と関連付けられたタッチセンサ2300によって提供されたタッチデータに少なくとも部分的に基づいて、物体(例えば、指、親指など)が、隣接する第2の制御部と接触しているか否かを判定し得、タッチデータは、FSR抵抗値がFSR1300/1800によって測定される時点で提供される。物体が、隣接する第2の制御と接触していない場合、プロセス2500は、ブロック2508から論理が第1の制御部のFSR入力イベントを登録する(例えば、第1の制御部の結合をアクティブ化することによって)ブロック2510への「いいえ」経路に従う。物体が、隣接する第2の制御部と接触している場合、プロセス2500は、ブロック2508からブロック2512への「はい」経路に従う。
2512では、論理は、物体が第2の制御部と接触していると判定することに少なくとも部分的に基づいて、第1の制御部のFSR入力イベントを登録することを控え得る。したがって、プロセス2500は、ハンドヘルドコントローラ上の隣接する制御部の押圧に基づくFSR1300/1800における偽入力を無視するために使用され得るセンサ融合アルゴリズムを表す。
図26は、ハンドヘルドコントローラ100/600のハンドル112/612内の近接センサのアレイ800によって検出された手のサイズに基づいて、FSR1300/1800についてFSR入力閾値を調節するための例示的なプロセス2600のフロー図である。
2602では、ハンドヘルドコントローラ100/600の論理は、コントローラ100/600のハンドル上に空間的に分散される近接センサのアレイ800によって提供された近接データに少なくとも部分的に基づいて、ハンドル112/612を掴んでいる手のサイズを判定し得る。手のサイズは、複数の所定の手のサイズ(例えば、小および大、または小、中、および大など)の中から判定され得る。
2604では、論理は、閾値を、ブロック2602で判定された手のサイズに少なくとも部分的に基づいて、ハンドル112/612に対するFSR入力イベントを登録するために満たされるべき調節された閾値に調整し得る。この調節された閾値は、ハンドル112/612が握られる特定の力の量に対応する。例えば、力の量は、ハンドル112/612内のFSR1300/1800の測定された抵抗に対応し、その抵抗は、デジタル化されたFSR入力値に対応し得る。ユーザがハンドルを握ると、デジタル化されたFSR入力値が、調節された閾値を満たすかまたはそれを超える場合、FSR入力イベントが登録され得る。したがって、ブロック2602で近接センサのアレイ800によって検出されるように、閾値は、より小さい手のユーザに対してより低い値に調節され得るが、一方、閾値は、より大きい手のユーザに対してより大きい値に調節され得る。いくつかの場合、デフォルト閾値が、ブロック2602における手のサイズの検出前にコントローラ100/600に対して構成され得、ブロック2604における調節は、デフォルト値に対して閾値を増加または減少させることであり得る。
図26のサブブロックによって示されるように、プロセス2600は、より詳細な操作を伴い得る。例えば、ブロック2602における手のサイズの判定は、サブブロック2606および2608を含み得る。
2606では、論理は、近接データを提供した、近接センサのアレイ800のうちの近接センサの数を判定し得る。例えば、小さい手は、近接センサのアレイ800内の近接センサの小さいサブセットのみに広がり、小さいサイズの手を検出しない残りの近接センサは、上述の近接データを提供しない場合がある。対照的に、大きい手は、近接センサのアレイ800の全体に広がり、この場合、近接センサ800の全て(または少なくとも閾値数を上回る数)が近接データを提供し得る。
2608では、論理は、近接データを提供した近接センサ(アレイ800の)の数に少なくとも部分的に基づいて、手のサイズを判定し得る。
加えて、サブブロック2610および2612によって示されるように、ブロック2604における閾値の調節は、コントローラ100/600の1つ以上のFSRの閾値を調節することを含み得る。
例えば、2610では、論理は、制御部116に対するFSR入力イベントを登録するために満たされるべきである第1の閾値(第1のFSR1300(1)と関連付けられた)を調節し得る。2612では、論理は、ハンドル112/612のFSR入力イベントを登録するために満たされるべきである第2の閾値(第2のFSR1300(2)と関連付けられた)を追加的にまたは代替的に調節し得る。
図27は、FSR入力値に基づいてハンドヘルドコントローラの制御のための結合をアクティブ化および非アクティブ化するための例示的なプロセス2700のフロー図である。図27のページ外参照「A」によって示されるように、プロセス2700は、プロセス2400、2500、または2600のいずれかから継続し得るが、必須ではない。
2702では、ハンドヘルドコントローラ100/600の論理は、コントローラ100/600のFSR1300/1800によって提供された力データに少なくとも部分的に基づいて、第1の時間における、第1のデジタル化されたFSR入力値を判定し得る。この第1のデジタル化されたFSR入力値は、第1の時間におけるFSR1300/1800によって測定された第1の抵抗値から変換され得る。
2704では、論理は、第1のデジタル化されたFSR入力値が、FSR入力イベントを登録するために(例えば、FSR1300/1800と関連付けられた制御部を結合するために)満たされるべきである閾値を満たすかまたはそれを超えるかを判定し得る。2704で閾値が満たされない場合、プロセス2700は、ブロック2704から論理が追加の力データを待ち受けるブロック2702への「いいえ」経路に従う。2704で閾値が満たされた場合、プロセス2700は、ブロック2704からブロック2706への「はい」経路に従う。
2706では、論理は、第1のデジタル化されたFSR入力値を満たすかまたはそれを超えることに少なくとも部分的に基づいて、FSR入力イベントを登録し得る(例えば、FSR1300/1800と関連付けられた制御部と関連付けられた結合をアクティブ化するために)。
2708では、論理は、FSR1300/1800によって提供された力データに少なくとも部分的に基づいて、第1の時間の後の第2の時間における、第2のデジタル化されたFSR入力値を判定し得る。この第2のデジタル化されたFSR入力値は、第2の時間におけるFSR1300/1800によって測定された第2の抵抗値から変換され得る。
2710では、論理は、第2のデジタル化されたFSR入力値が第1のデジタル化されたFSR入力値未満であるか否か(すなわち、FSR入力がFSR1300/1800による以前の測定から減少したか否か)を判定し得る。第2のデジタル化されたFSR入力値が第1のデジタル化されたFSR入力値未満である場合、プロセス2700は、ブロック2710から論理がFSR1300/1800と関連付けられた制御部の結合を非アクティブ化し得る(これは、長押し入力に相当する、既に登録されたFSR入力イベントの登録解除として考えられ得る)ブロック2712への「はい」経路に従う。ブロック2710で、第2のデジタル化されたFSR入力値が第1のデジタル化されたFSR入力値以上である場合、プロセス2700は、ブロック2710から論理がFSR1300/1800からの追加の力データを待ち受けるブロック2708への「いいえ」経路に従う。プロセス2700は、図21に例示され、かつ上記で説明された、FSR検出モードを反映し得る。したがって、ブロック2704で評価された閾値は、図21を参照して説明されるベースライン閾値2102に対応し得る。
図28は、多数の閾値のうちの第1の閾値についてFSR入力を無視するか否かを判定するために時間遅延を使用するための例示的なプロセス2800のフロー図である。図28のページ外参照「A」によって示されるように、プロセス2800は、プロセス2400、2500、または2600のいずれかから継続し得るが、必須ではない。
2802では、ハンドヘルドコントローラ100/600の論理は、コントローラ100/600のFSR1300/1800によって提供された力データに少なくとも部分的に基づいて、第1の時間における、第1のデジタル化されたFSR入力値を判定し得る。この第1のデジタル化されたFSR入力値は、第1の時間におけるFSR1300/1800によって測定された第1の抵抗値から変換され得る。
2804では、論理は、第1のデジタル化されたFSR入力値が、第1のFSR入力イベントを登録するために(例えば、FSR1300/1800と関連付けられた制御部を結合するために)満たされるべきである第1の閾値(例えば、図22のA1 2202)を満たすかまたはそれを超えるかを判定し得る。第1のFSR入力イベントは、第1のアクション(例えば、第1のゲームの仕掛け)と関連付けられ得る。2804で第1の閾値が満たされない場合、プロセス2800は、ブロック2804から論理が追加の力データを待ち受けるブロック2802への「いいえ」経路に従う。2804で閾値が満たされた場合、プロセス2800は、ブロック2804からブロック2806への「はい」経路に従う。
2806では、論理は、所定の期間(例えば、図22の時間遅延t)の監視を開始し得る。
2808では、論理は、FSR1300/1800によって提供された力データに少なくとも部分的に基づいて、第1の時間の後の第2の時間における、第2のデジタル化されたFSR入力値を判定し得る。この第2のデジタル化されたFSR入力値は、第2の時間におけるFSR1300/1800によって測定された第2の抵抗値から変換され得る。
2810では、論理は、第2のデジタル化されたFSR入力値が、第2のFSR入力イベントを登録するために(例えば、FSR1300/1800と関連付けられた制御部を結合するために)満たされるべきである第2の閾値(例えば、図22のA2 2204)を満たすかまたはそれを超えるかを判定し得る。第2のFSR入力イベントは、第1のアクションとは異なる第2のアクション(例えば、第2のゲームの仕掛け)と関連付けられ得、第2の閾値は、第1の閾値よりも大きい。2810で第2の閾値が満たされない場合、プロセス2800は、ブロック2810から論理が所定の期間が経過したか否か(例えば、第2の時間と第1の時間との間の差が所定の期間未満であるか否か)の判定を待ち受けるブロック2812への「いいえ」経路に従う。ブロック2812で期間がまだ経過していない場合、プロセス2800は、ブロック2812からブロック2810に戻る「いいえ」経路に従うことによって反復する。ブロック2812で期間が経過し、かつ第2の閾値が満たされていない場合、プロセス2800は、ブロック2812から論理が第1の閾値(例えば、第1のアクションまたはゲームの仕掛けと関連付けられ得る)についての第1のFSR入力イベントを登録し得るブロック2814への「はい」経路に従う。
2810で第2の閾値が満たされる場合、プロセス2800は、ブロック2810から論理が所定の期間を評価するブロック2816への「はい」経路に従う。)。ブロック2816で期間がまだ経過していない場合、プロセス2800は、ブロック2816から論理が第1のFSR入力イベントの登録を控え、第2の閾値と関連付けられた第2のFSR入力イベント(例えば、第2のアクションまたはゲームの仕掛けと関連付けられ得る)を登録するブロック2818に戻る「いいえ」経路に従う。ブロック2816で期間が経過し、かつ第2の閾値が満たされた場合、プロセス2800は、ブロック2816から論理が第1の閾値についての第1のFSR入力イベントおよび第2の閾値についての第2のFSR入力イベントの両方を登録し得るブロック2820への「はい」経路に従う。プロセス2800は、図22に例示され、かつ上記で説明された、FSR検出モードを反映し得る。
図29は、図1のコントローラ100などのハンドヘルドコントローラの例示的な構成要素を例示するが、図29に示される構成要素は、コントローラ600によっても同様に実装され得る。例示されるように、ハンドヘルドコントローラは、上記の制御部(例えば、ジョイスティック、トラックパッド、トリガなど)、潜在的に任意の他のタイプの入力または出力デバイスなどの、1つ以上の入力/出力(I/O)デバイス2902を含む。例えば、I/Oデバイス2902は、ユーザの音声入力などの音声入力を受信するための1つ以上のマイクを含み得る。いくつかの実装形態では、1つ以上のカメラまたは他のタイプのセンサ(例えば、慣性測定ユニット(IMU))が、ハンドヘルドコントローラ100の動きなどのジェスチャ入力を受信するための入力デバイスとして機能し得る。いくつかの実施形態では、追加の入力デバイスが、キーボード、キーパッド、マウス、タッチスクリーン、ジョイスティック、制御ボタンなどの形態で提供され得る。入力デバイス(複数可)は、音量を増加/減少させるための基本音量制御ボタン(複数可)、ならびに電源およびリセットボタンなどの制御機構をさらに含み得る。
一方、出力デバイスは、ディスプレイ、光素子(例えば、LED)、触覚をもたらすバイブレータ、スピーカ(複数可)(例えば、ヘッドフォン)などを含み得る。例えば、電源がオンであるときなどの状態を示すための単純な光素子(例えば、LED)も存在し得る。数例が提供されているが、ハンドヘルドコントローラは、追加的または代替的に、任意の他のタイプの出力デバイスを含み得る。
加えて、ハンドヘルドコントローラ100は、ネットワークおよび/または1つ以上の遠隔システム(例えば、アプリケーション、ゲームコンソールなどを実行するホストコンピューティングデバイス)への無線接続を容易にするための1つ以上の通信インターフェース2904を含み得る。通信インターフェース2904は、Wi-Fi、Bluetooth、無線周波数(RF)などの様々な無線技術のうちの1つ以上を実装し得る。ハンドヘルドコントローラ100は、ネットワーク、接続された周辺デバイス、または他の無線ネットワークと通信するプラグインネットワークデバイスへの有線接続を容易にする物理ポートをさらに含み得ることを理解されたい。
例示された実装形態では、ハンドヘルドコントローラは、1つ以上のプロセッサ2906およびコンピュータ可読媒体2908をさらに含む。いくつかの実装形態では、プロセッサ(複数可)2906は、中央処理ユニット(CPU)、グラフィックス処理ユニット(GPU)、CPUおよびGPUの両方、マイクロプロセッサ、デジタル信号プロセッサ、または当該技術分野で既知の他の処理ユニットもしくは構成要素を含み得る。代替的に、または追加的に、本明細書に説明される機能は、少なくとも部分的に、1つ以上のハードウェア論理構成要素によって実施され得る。例えば、非限定的に、使用され得るハードウェア論理構成要素の例示的なタイプとしては、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、特定用途向け標準製品(ASSP)、システムオンチップシステム(SOC)、複合プログラマブル論理デバイス(CPLD)などが挙げられる。加えて、プロセッサ(複数可)2906の各々は、プログラムモジュール、プログラムデータ、および/または1つ以上のオペレーティングシステムも記憶し得る、その独自のローカルメモリを保有し得る。
一般に、コントローラは、本明細書で説明される技術、機能、および/または動作を実装するように構成されている論理(例えば、ソフトウェア、ハードウェア、および/またはファームウェアなど)を含み得る。コンピュータ可読媒体2908は、揮発性および不揮発性メモリ、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報を記憶するための任意の方法または技術で実装された、取り外し可能および取り外し不可能な媒体を含み得る。そのようなメモリとしては、限定されるものではないが、RAM、ROM、EEPROM、フラッシュメモリもしくは他のメモリ技術、CD-ROM、デジタル多目的ディスク(DVD)もしくは他の光学ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージもしくは他の磁気ストレージデバイス、RAIDストレージシステム、または所望の情報を記憶するために使用され得、コンピューティングデバイスによってアクセスされ得る、任意の他の媒体が挙げられる。コンピュータ可読媒体2908は、コンピュータ可読媒体2908に記憶された命令を実行するためにプロセッサ(複数可)2906によってアクセス可能な任意の利用可能な物理媒体であり得る、コンピュータ可読ストレージ媒体(「CRSM」)として実装され得る。1つの基本的な実装形態では、CRSMは、ランダムアクセスメモリ(「RAM」)およびフラッシュメモリを含み得る。他の実装形態では、CRSMは、限定されるものではないが、読み出し専用メモリ(「ROM」)、電気的に消去可能なプログラマブル読み出し専用メモリ(「EEPROM」)、または所望の情報を記憶するために使用され得、プロセッサ(複数可)2906によってアクセスされ得る、任意の他の有形媒体を含み得る。
命令、データストアなどの数個のモジュールが、コンピュータ可読媒体2908内に記憶され、プロセッサ(複数可)2906上で実行するように構成され得る。数例の機能モジュールは、コンピュータ可読媒体2908に記憶され、プロセッサ(複数可)2906上で実行されるように示されるが、同じ機能が、代替的に、ハードウェア、ファームウェアで、またはシステムオンチップ(SOC)として実装されてもよい。
オペレーティングシステムモジュール2910は、他のモジュールの有益性のために、ハンドヘルドコントローラ100内でハードウェアを管理し、ハンドヘルドコントローラ100に連結されるように構成され得る。加えて、コンピュータ可読媒体2908は、ハンドヘルドコントローラ100が、通信インターフェース2904を介して、アプリケーション(例えば、ゲームアプリケーション)、ゲームコンソール、HMD、遠隔サーバなどを実行するパーソナルコンピューティングデバイスなどの1つ以上の他のデバイスと通信することを可能にするネットワーク通信モジュール2912を記憶し得る。コンピュータ可読媒体2908は、ハンドヘルドコントローラ上で、またはハンドヘルドコントローラ100が連結するコンピューティングデバイス上で実行するゲーム(または他のアプリケーション)と関連付けられたデータを記憶するためのゲームセッションデータベース2914をさらに含み得る。コンピュータ可読媒体2908はまた、パーソナルコンピューティングデバイス、ゲームコンソール、HMD、遠隔サーバなどの、ハンドヘルドコントローラ100が連結するデバイスと関連付けられたデータを記憶するデバイス記録データベース2916を含み得る。コンピュータ可読媒体2908は、ハンドヘルドコントローラ100をゲームコントローラとして機能するように構成するゲーム制御命令2918、およびハンドヘルドコントローラ100を他の非ゲームデバイスのコントローラとして機能するように構成する汎用制御命令2920をさらに記憶し得る。
図30は、本明細書に説明されるハンドヘルドコントローラ100を使用して実施され得る例示的な一連のジェスチャを例示する。例示されるように、ハンドヘルドコントローラは、1つ以上のディスプレイデバイス3000に連結(有線または無線で)し得る。ディスプレイデバイス3000は、仮想物体などの画像をディスプレイ上に提示するように構成された任意のタイプのデバイスを表し得る。例示されるように、ディスプレイデバイス3000は、サーバ、ゲームコンソール、クライアントコンピューティングデバイス、仮想現実ヘッドセット、またはディスプレイ上の画像の提示を引き起こすように構成された任意の他のタイプのデバイスを含み得る。いくつかの事例では、ディスプレイデバイスは、ディスプレイ(例えば、VRヘッドセットの場合)を含み得るが、一方、他の事例では、ディスプレイデバイスは、ローカルディスプレイ(例えば、ローカルゲームコンソールの場合)または遠隔ディスプレイ(例えば、サーバコンピューティングデバイスの場合)上に提示するためにデータを通信し得る。
この例では、ハンドヘルドコントローラ100は、近接センサ、力センサ、加速度計などの上記のセンサの一部または全部を含み得る。コントローラ100および/またはコントローラ100に連結されたディスプレイデバイス3000は、これらのセンサによって収集されたデータを利用して、ディスプレイ上に提示されている仮想物体を拾い上げるおよび/または解放することを意図するユーザを識別し得る。例示される例では、ディスプレイデバイス3000は、仮想手3004および仮想物体3006を含む第1のフレーム3002(1)を提示する。第1のフレーム3002(1)またはその後のいつかにおいて、コントローラ100および/または接続されたディスプレイデバイスは、センサデータを分析して、ユーザが仮想物体を掴むことを意図することを判定し得る。したがって、第2のフレーム3002(2)は、仮想物体3006を保持する仮想手3004を例示する。
繰り返しになるが、第2のフレーム3002(2)またはその後のいつかにおいて、コントローラおよび/またはディスプレイデバイス3000は、コントローラによって収集されたセンサデータを分析して、ユーザがアイテムを解放することを意図していることを判定し得る。解放が開始されたという指標を記憶した後、その後に収集されたセンサデータは、解放をいつ実行するか、例えば、仮想物体3006を解放する仮想手3004のディスプレイ上の表現をいつ生成するかを判定するために分析され得る。この例では、第3のフレーム3002(3)は、センサデータの分析に基づいて仮想物体3006を解放する仮想手3004を例示する。
図31は、仮想物体がいつ拾い上げられるおよび/または解放されるかを識別するために使用され得る、例示的なディスプレイデバイス3000の例示的な構成要素および例示的なハンドヘルドコントローラ100の例示的な構成要素を例示する。例示されるように、ハンドヘルドコントローラ100は、1つ以上のプロセッサ3100、1つ以上のセンサ3102、および1つ以上のコンピュータ可読媒体3104を含む。センサは、コントローラ100の現在の速度に対応する速度データを生成するように構成された加速度計3106、コントローラ100への物体(例えば、ユーザの手の指または他の部分)の近接度を判定するように構成された近接センサ3108、コントローラ100に加えられた力を判定するように構成された力検知抵抗器3110、および/または1つ以上の他のセンサ3112を含み得る。
一方、コンピュータ可読媒体は、これらのセンサ3102によって収集されたセンサデータ3114を記憶するか、または別様にセンサデータ3114へのアクセスを有し得る。例示されるように、センサデータ3114は、力検知抵抗器3110によって測定された力の値、近接センサ3108によって測定された静電容量値、加速度計3106によって測定された速度データ、異なる時間における読み取り値の差(例えば、経時的な速度差)に基づく差分値などを含み得る。加えて、コンピュータ可読媒体は、閾値データ3116を記憶するか、または別様に閾値データ3116へのアクセスを有し得る。閾値データ3116は、対応するアクションがとられることになる閾値を表し得る。例えば、閾値データ3116は、力閾値、静電容量閾値、差分閾値、時間閾値などを含み得る。これらの閾値は、図32~35を参照してさらに説明される。
コンピュータ可読媒体3104は、閾値データ3116を参照して、センサデータ3114を分析し、ディスプレイ上に提示されている仮想物体を参照して特定のアクションをいつとるかを判定するように構成される物体相互作用モジュール3118をさらに記憶し得る。例えば、物体相互作用モジュール3118は、物体がいつ拾い上げられる、解放される、粉砕されることになるかなどを判定するように構成され得る。例示されるように、物体相互作用モジュール3118は、センサデータ3114を分析し、保持される仮想物体の基準をセンサデータがいつ満たすかを判定するように構成された物体グリップモジュール3120を含み得る。物体グリップモジュール3120は、力-つまみ計算器3122、力-把持計算器3124、静電容量-つまみ計算器3126、および静電容量-把持計算器3128を含み得る。いくつかの事例では、力-つまみ計算器3122は、1つ以上の力センサが力閾値を超える力の値を生成し、かつ1つ以上のボタンが押されていることに応答して、力-つまみ状態を識別し得る。例えば、ユーザの親指が置かれる場所の下のハンドヘルドコントローラの上側に位置する力センサが、特定の閾値(例えば、センサの最大力読み取り値の1%、最大力読み取り値の25%など)を超える力の値を返す場合、およびポインタまたはユーザの他の指によって選択可能なトリガボタンが押された場合、説明される技術は、力-つまみ状態を識別し得る。すなわち、これらのセンサ読み取り値に応答して、力-つまみ計算器3122は、ユーザが「つまみ」を介して仮想物体を保持しようとしていると判定し得る。一方、力-把持計算器3124は、ハンドヘルドコントローラのコントローラ本体上の1つ以上の力センサが、力閾値(例えば、センサの最大力読み取り値の10%、センサの最大力読み取り値の25%など)を超える1つ以上の力の値を測定することに応答して、力-グリップ状態を識別し得る。
一方、静電容量-つまみ計算器3126は、ユーザの親指が置かれる、コントローラの上部分上の近接センサによって、およびユーザの人差し指または他の指が置かれる、コントローラのコントローラ本体上の近接センサによって測定された値などの、近接センサのうちの1つ以上によって測定された1つ以上の近接値(例えば、静電容量値)に基づいて、静電容量-つまみ状態を識別し得る。いくつかの事例では、ソフトウェアおよび/またはハードウェアは、これらの2つの読み取り値を平均化し、平均を閾値と比較し得る。平均値が閾値(例えば、最大センサ読み取り値の30%、最大センサ読み取り値の60%など)を超える場合、静電容量-つまみ状態が識別され得る。一方、静電容量-把持計算器3128は、コントローラのコントローラ本体上に存在する1つ以上の近接センサによって記録された近接値に基づいて静電容量-グリップ状態を識別し得る。例えば、ユーザの中指、薬指、および小指に対応する近接センサによって測定された近接値が、平均化され、閾値と比較され得る。この平均が閾値(例えば、最大センサ読み取り値の50%、最大センサ読み取り値の70%など)を超える場合、静電容量-グリップ状態が識別され得る。当然ながら、数個の例示的な保持状態が説明されているが、他のタイプの保持状態が利用されてもよい。加えて、図33は、以下に、物体グリップモジュール3120の操作をより詳細に説明する。
物体相互作用モジュール3118は、落下開始モジュール3130および落下物体モジュール3132をさらに含み得る。仮想物体が保持されている(したがって、保持されている仮想物体の提示を引き起こす)と物体グリップモジュール3120が判定した後、落下開始モジュール3130は、センサデータ3114を分析して、仮想物体の解放をいつ開始するかを判定し得る。いくつかの事例では、仮想物体の解放は、コントローラ100上における力の著しい低下に基づいて、コントローラ100の速度の増加に基づいて、ユーザの手または手の一部分の存在の欠如を示す近接度読み取り値などに基づいて、開始され得る。図34は、以下に、落下開始モジュール3122の操作をより詳細に説明する。
一方、落下物体モジュール3132は、解放が開始されたことを落下開始モジュール3130が示した後にアイテムの解放を実行するように構成され得る。例えば、落下物体モジュール3132は、センサデータを分析して、投げ出されている、落とされている、粉砕されているなどの物体などの、物体の解放をいつ表現し始めるかを判定し得る。いくつかの事例では、落下物体モジュール3132は、コントローラが動くことを効果的終了したこと、または別様に速度が低下したことを示す速度データに基づいて、所定の時間量の満了などに基づいて、仮想物体を解放することを判定し得る。図35~39は、以下に、物体落下モジュール3132の操作をより詳細に説明する。
図31は、物体相互作用モジュール3118の構成要素を含むようにハンドヘルドコントローラ100を例示するが、いくつかの例では、これらの構成要素の一部または全部は、追加的または代替的に、ディスプレイデバイス3000のうちの1つ以上に存在し得ることに留意されたい。したがって、図31は、物体相互作用モジュール3118、センサデータ3114、および閾値データ3116を破線で例示する。
図32~35は、ディスプレイデバイスに、仮想物体を掴むことおよび解放することを提示させるために、物体相互作用モジュールが実装し得る、例示的なプロセス3200を集合的に例示する。いくつかの事例では、物体相互作用モジュール3118は、ディスプレイドライバ、センサなどの1つ以上の他のコンピューティングデバイス構成要素と潜在的に組み合わせて、プロセス3200の一部または全部を実施し得る。さらに、いくつかの事例では、物体相互作用モジュールの機能は、多数のデバイスにわたって存在し得るため、操作は、デバイスの組み合わせによって実施され得る。
操作3202は、コントローラフレームが更新されたか否かを判定することを表す。例えば、操作は、例えば、ハンドヘルドコントローラとのユーザの相互作用に基づいて、および/またはゲームアプリケーションなどの現在実行しているアプリケーションの他の入力に基づいて、ディスプレイが更新されることになるか否かを判定することを表す。コントローラフレームが更新されていない場合、プロセス3200は、単純にループバックして、コントローラフレームの更新を待ち受ける。そのような更新の際に、物体相互作用モジュール3118は、操作3204で、仮想物体が現在保持されているか、解放されているか、または保持も解放もされていないかを判定し得る。後者の事例では、プロセス3200は、図33を参照して以下に説明される操作に進む。仮想物体が現在保持されていると物体相互作用モジュール3118が判定する場合、プロセス3200は、図34を参照して以下に説明される操作に進み得る。最後に、仮想物体が解放されていると物体対話モジュール3118が判定する場合、プロセス3200は、図35を参照して説明される操作に進み得る。
図33は、操作3302で、近接センサ、力抵抗センサ、加速度計などの上記のセンサのうちの1つ以上からセンサデータを受信することを含む。動作3304では、物体グリップモジュール3120は、上で考察されたように、受信されたセンサデータが、力-つまみタイプの把持の基準をいつ満たすかを判定し得る。例えば、物体グリップモジュール3120は、1つ以上の力センサが、力閾値を超えている力の値を生成し、1つ以上のボタンが押下されていることに応答して、力-つまみ状態を識別し得る。例えば、ユーザの親指が置かれる場所の下のハンドヘルドコントローラの上側に位置する力センサが、特定の閾値(例えば、センサの最大力読み取り値の1%、最大力読み取り値の25%など)を超える力の値を返す場合、およびポインタまたはユーザの他の指によって選択可能なトリガボタンが押された場合、物体グリップモジュール3120は、力-つまみ状態を識別し得る。すなわち、これらのセンサ読み取り値に応答して、物体グリップモジュール3120は、ユーザが「つまみ」を介して仮想物体を保持しようとしていると判定し得る。力-つまみ把持の基準が満たされた場合、次いで、操作3306では、物体グリップモジュール3120は、仮想手の場所に最も近い物体の力-つまみ保持の指標を記憶し得る。すなわち、物体グリップモジュール3120は、受信されたセンサデータに基づいて、最も近い仮想物体がユーザの仮想手によって保持されることになると判定し得る。操作3308では、物体グリップモジュール3120は、次いで、力-つまみグリップを介して(例えば、ユーザの人差し指および親指を介して)最も近い仮想物体を保持するユーザの仮想手の提示を引き起こし得る。その後、プロセス3300は、動作3202に戻ることを含む操作3310に進む。
しかしながら、受信されたセンサデータが力-つまみ把持タイプの基準を満たしていないと物体グリップモジュール3120が判定する場合、次いで、3312では、物体グリップモジュール3120は、上で考察されたように、受信されたセンサデータが力-グリップタイプの把持の基準をいつ満たすかを判定し得る。例えば、物体グリップモジュール3120は、ハンドヘルドコントローラのコントローラ本体上の1つ以上の力センサが、力閾値(例えば、センサの最大力読み取り値の10%、センサの最大力読み取り値の25%など)を超える1つ以上の力の値を測定することに応答して、力-グリップ状態を識別し得る。これらの基準が満たされた場合、次いで、操作3314では、物体グリップモジュール3120は、仮想手の場所に最も近い物体の力-グリップ保持の指標を記憶し得る。すなわち、物体グリップモジュール3120は、受信されたセンサデータに基づいて、最も近い仮想物体がユーザの仮想手によって保持されることになると判定し得る。操作3316では、物体グリップモジュール3120は、次いで、力-グリップ把持を介して(例えば、ユーザの多数の指を介して)最も近い仮想物体を保持するユーザの仮想手の提示を引き起こし得る。その後、プロセス3300は、動作3202に戻ることを含む操作3310に進む。
しかしながら、受信されたセンサデータが力-掴み把持タイプの基準を満たしていないと物体グリップモジュール3120が判定する場合、次いで、3318では、物体グリップモジュール3120は、上で考察されたように、受信されたセンサデータが静電容量-つまみ把持の基準をいつ満たすかを判定し得る。例えば、物体グリップモジュール3120は、ユーザの親指が置かれる、コントローラの上部分上の近接センサによって、およびユーザの人差し指または他の指が置かれる、コントローラのコントローラ本体上の近接センサによって測定された値などの、近接センサのうちの1つ以上によって測定された1つ以上の近接値(例えば、静電容量値)に基づいて、静電容量-つまみ状態を識別し得る。いくつかの事例では、物体グリップモジュール3120は、これらの2つの読み取り値を平均化し、平均を閾値と比較し得る。平均値が閾値(例えば、最大センサ読み取り値の30%、最大センサ読み取り値の60%など)を超える場合、静電容量-つまみ状態が識別され得る。そうである場合、次いで、操作3320では、物体グリップモジュール3120は、仮想手の場所に最も近い物体の静電容量-つまみ保持の指標を記憶し得る。すなわち、物体グリップモジュール3120は、受信されたセンサデータに基づいて、最も近い仮想物体がユーザの仮想手によって保持されることになると判定し得る。操作3322では、物体グリップモジュール3120は、次いで、静電容量-つまみ把持を介して(例えば、ユーザの人差し指および親指の間で)最も近い仮想物体を保持するユーザの仮想手の提示を引き起こし得る。その後、プロセス3300は、動作3202に戻ることを含む操作3310に進む。
しかしながら、受信されたセンサデータが静電容量-つまみ把持タイプの基準を満たしていないと物体グリップモジュール3120が判定する場合、次いで、3324では、物体グリップモジュール3120は、上で考察されたように、受信されたセンサデータが静電容量-グリップタイプの把持の基準をいつ満たすかを判定し得る。例えば、物体グリップモジュール3120は、コントローラのコントローラ本体上に存在する1つ以上の近接センサによって記録された近接値に基づいて静電容量-グリップ保持を識別し得る。例えば、ユーザの中指、薬指、および小指に対応する近接センサによって測定された近接値が、平均化され、閾値と比較され得る。この平均が閾値(例えば、最大センサ読み取り値の50%、最大センサ読み取り値の70%など)を超える場合、静電容量-グリップ状態が識別され得る。そうである場合、次いで、操作3326では、物体グリップモジュール3120は、仮想手の場所に最も近い物体の静電容量-グリップ保持の指標を記憶し得る。すなわち、物体グリップモジュール3120は、受信されたセンサデータに基づいて、最も近い仮想物体がユーザの仮想手によって保持されることになると判定し得る。操作3328では、物体グリップモジュール3120は、次いで、静電容量-グリップ把持を介して(例えば、ユーザの多数の指を介して)最も近い仮想物体を保持するユーザの仮想手の提示を引き起こし得る。その後、プロセス3300は、動作3202に戻ることを含む操作3310に進む。
図33は、物体が保持されているか否かを判定するための一例のプロセス3200(1)を説明するが、他のプロセスが使用されてもよいことを理解されたい。例えば、プロセス3200(1)は、力ベースの把持が静電容量ベースの把持の前に分析され識別される優先順位を実装するが、他の例では、これは、逆であってもよい。すなわち、他の実装形態では、静電容量ベースの把持は、力ベースの把持よりも優先されてもよく、優先度の観点から力ベースの把持などと混合されてもよい。いくつかの事例では、把持タイプの優先順位は、把持されている物体、最後に把持された物体などに依存し得る。例えば、第1のタイプの物体は、静電容量把持ではなく、力把持について最初にチェックする優先順位と関連付けられ得るが、第2のタイプの物体については反対が真であってもよい。追加的、または代替的に、第1のタイプの物体は、グリップ把持をチェックする前につまみ把持(力または静電容量)を最初にチェックする優先順位と関連付けられ得、一方、第2のタイプの物体については反対が真であってもよい。例えば、ユーザが、閾値未満である第1のサイズの物体(例えば、卓球ボール)を把持しようとする場合、本技術は、まず、つまみ把持を識別しようとし得るが、一方、ユーザが、閾値以上である第2のサイズの物体(例えば、グレネード)を把持しようとする場合、本技術は、グリップ把持を識別しようとし得る。
加えて、ユーザの手に「最も近い」物体の判定は、いくつかの手法で判定され得る。いくつかの事例では、仮想環境内の各物体とユーザの仮想手(または他の実施態様)との間の距離は、物体の第1の点(例えば、重心、物体の表面上の最も近い点など)と仮想手の特定の点との間で測定され得る。この後者の点は、ユーザが実施しようとしている把持のタイプ、ユーザが実施した最も直近の把持、ユーザが把持しようとしている物体のタイプ、ユーザが最も直近に保持した物体などに基づき得る。例えば、ユーザがつまみタイプの把持を実施しようとしている場合(またはユーザの最も直近の把持がつまみタイプの把持であった場合)、環境内の各物体までの距離を判定するための仮想手の基準点は、ユーザの仮想手の親指と人差し指との間の点であり得る。しかしながら、ユーザがグリップタイプの把持を実施しようとしている場合(またはユーザの最も直近の把持がグリップタイプの把持であった場合)、環境内の各物体までの距離を判定するための仮想手の基準点は、ユーザの仮想手または拳の重心に対応する点であり得る。当然ながら、数例が説明されているが、「最も近い物体」は、多数の他の手法で判定され得ることを理解されたい。
操作3202に戻ると、プロセスは、仮想物体がユーザの仮想手によって現在保持されていることを考慮して、判定ブロック3204の「保持」分岐を下に進む。したがって、プロセス3200は、図34に進み、図34は、3402で、コントローラ100に内蔵のセンサから追加のセンサデータ3402を再び受信することを含む。3404では、落下開始モジュール3130が、現在の把持タイプが静電容量性であるか否かを判定し得る。そうである場合、次いで、3406では、落下開始モジュール3130は、静電容量把持タイプが、対応する力把持の基準を現在満たすことをセンサデータが示すか否かを判定し得る。そうである場合、次いで、3408では、物体グリップモジュール3120は、ユーザによって保持されている仮想物体(これはまた、仮想手に最も近い仮想物体も表す)が、力タイプの把持(例えば、力-つまみ、力-グリップなど)を介して保持されているという指標を記憶する。3410では、仮想物体は、ユーザの仮想手によって保持されているように提示され続ける。さらに、3406は、静電容量把持タイプが、対応する力把持の基準を現在満たすことをセンサデータが示すか否かを判定することを説明しているが、いくつかの事例では、プロセス3200(2)は、センサデータが、異なるタイプの把持の基準を満たすか否かも判定し得る。例えば、現在の把持がつまみタイプの把持である場合、落下開始モジュール3130または別の構成要素は、センサデータがグリップタイプの把持の基準を満たすか否かを判定し得る。または、現在の把持がグリップタイプの把持である場合、落下開始モジュール3130または別の構成要素は、センサデータがつまみタイプの把持の基準を満たすか否かを判定し得る。
図に戻ると、操作3404で現在の把持タイプが静電容量性ではないと落下開始モジュール3130が判定する場合、またはセンサデータが、対応する力把持タイプの基準を満たすことを示すと落下開始モジュール3130が判定することに応答して、次いで、操作3414では、落下開始モジュール3130は、センサデータが現在の把持タイプの基準が満たされることを示すか否かを判定する。そうである場合、次いで、3416では、落下開始モジュール3130は、現在の力読み取り値と以前の力読み取り値との間の力の差が、どこで力閾値を超えるかを判定する。すなわち、落下開始モジュール3130は、力の著しい低下がコントローラで発生したことをセンサデータが示すか否かを判定する。そうである場合、次いで、3418では、落下開始モジュール3130は、仮想物体の解放を開始し、操作3412で操作3202に戻る。しかしながら、力の差が力閾値を超えない場合、プロセスは、操作3202に戻る。
しかしながら、操作3414で、現在の把持タイプの基準が満たされていないことをセンサデータが示すと落下開始モジュール3130が判定する場合、次いで、操作3420では、落下開始モジュール3130は、ハンドヘルドコントローラの現在の速度が、速度閾値(例えば、1m/秒など)を超えるか否かを判定する。そうである場合、次いで、操作3418では、落下開始モジュール3130は、物体の解放(例えば、投げ出す、落下させる、粉砕するなど)を開始する。しかしながら、そうでない場合、次いで、操作3422では、落下開始モジュール3130は、現在の把持タイプが力-把持タイプであるか否かを判定する。そうでない場合、次いで、把持タイプは、格下げされることができず、したがって、プロセス3200は、操作3418で物体の解放を開始するように進む。
しかしながら、操作3422で、現在の把持タイプが力-把持タイプであると落下開始モジュール3130が判定する場合、次いで、操作3424では、落下開始モジュール3130は、対応する静電容量ベースの把持(例えば、つまみ、グリップなど)が存在するか否かを判定する。そうである場合、次いで、操作3426では、静電容量タイプの把持の指標が記憶される。操作3424で、対応する静電容量ベースの把持が存在しないと落下開始モジュール3130が判定する場合、次いで、落下開始モジュール3130は、操作3418で解放を開始し、その後、操作3202に戻る。
図34は、物体の解放をいつ開始するかを判定するための一例のプロセス3200(2)を説明するが、他のプロセスがあってもよいことを理解されたい。例えば、現在の把持タイプの基準がもはや満たされていないと判定することに直接応答して、解放が開始されてもよいことに留意されたい。すなわち、操作3414で、現在の把持タイプの基準がもはや満たされていないと本技術が判定する場合、次いで、プロセスは、操作3418で保持された物体の解放を開始することに直接進んでもよい。したがって、操作3416、3420、3422、および3424の一部または全部(潜在的に他の操作の中でも)は、いくつかの状況では任意選択であり得る。
図35は、仮想物体が保持された後、および仮想物体が解放されたとき(例えば、解放の開始直後)の前のプロセス3200(3)を例示する。操作3502では、落下物体モジュール3132は、追加のセンサデータを受信する。操作3504では、落下物体モジュール3132は、これが物体の解放の開始後の第1のフレームであるか否かを判定する。そうである場合、次いで、操作3506では、落下物体モジュール3132は、ハンドヘルドコントローラ100の現在の速度が以前の速度を超えるか否かを判定する。そうでない場合、次いで、操作3508では、落下物体モジュール3132は、例えば、物体が解放されたことの指標を記憶すること、および/または物体の解放の提示を引き起こすことによって、物体の解放に進む。例えば、物体は、落下されている、投げ出されている、粉砕されているなどとして例示され得る。
しかしながら、現在の速度が以前の速度を超えると落下物体モジュール3132が判定する場合、次いで、操作3512では、落下物体モジュール3132は、新たなピーク値(例えば、解放の開始からの最高速度)の指標およびフロア値(例えば、解放の開始からの最低速度)の指標を記憶する。落下物体モジュール3132はまた、フロア値とピーク値との間の値を含む新たな終了値を計算し得る。いくつかの事例では、終了値は、ピーク値およびフロア値の平均に対応する。その後、プロセス3200(3)は、操作3202に戻る。
いくつかの事例では、上記のように、フロア値は、物体の解放の開始からのハンドヘルドコントローラの最低速度に対応し得る。他の事例では、一方で、フロア速度は、その幾らかのパーセンテージ(例えば、50%、75%など)、物体の解放の開始前の先行する時間量(例えば、5フレーム)についての最低速度、定数値、または任意の他の値を含み得る。さらに、終了値は、ピーク速度およびフロア速度の値に基づいてもよいが(例えば、これら2つの値の平均など)、他の事例では、終了値は、ピーク速度単独(例えば、ピーク速度の半分)、フロア速度(例えば、フロア速度の2倍)などに基づいてもよい。
しかしながら、現在のフレームが仮想物体の解放の開始からの第1のフレームではないと落下物体モジュール3132が判定する場合、操作3514では、落下物体モジュール3132は、解放の開始から所定の時間量が経過したか否かを判定する。いくつかの事例では、この時間は、秒、分などの単位で測定されるが、他の事例では、フレーム数(例えば、5フレーム)などで測定され得る。物体を解放せずに所定の時間量が経過したと落下物体モジュール3132が判定する場合、次いで、落下物体モジュール3132は、操作3508で物体を解放し得る。しかしながら、所定の時間量が経過していない場合、落下物体モジュール3132は、操作3516で、現在の速度が以前の速度(例えば、直後のフレームで測定された)を超えるか否かの判定に進み得る。そうである場合、次いで、操作3518では、落下物体モジュール3132は、現在の速度が現在のピーク速度を超えるか否かを判定し得る。そうである場合、次いで、プロセスは、操作3512に進み得、新たなピーク値が記憶され得、新たな終了値が計算され得る。しかしながら、現在の速度がピーク値を超えない場合、プロセスは、操作3202に戻り得る。
しかしながら、操作3516で、現在の速度が以前の速度を超えないと落下物体モジュール3132が判定する場合、次いで、操作3520では、落下物体モジュール3132は、現在の速度が、フロア速度未満であるか否かを判定し得る。そうである場合、次いで、落下物体モジュール3132は、操作3508で物体を解放し得る。そうでない場合、次いで、落下物体モジュール3132は、終了速度が現在の終了速度未満であるか否か、および終了速度が所定の時間量の間、終了速度を下回ったままであったか否かを判定し得る。そうである場合、次いで、落下物体モジュール3132は、操作3508で、物体を解放するように進み得る。しかしながら、そうでない場合、落下物体モジュール3132は、操作3510に進み得、これは、操作3202に戻ることを表す。
図36は、落下物体モジュールが行い得る異なる計算3602を例示し、これらの計算は、仮想物体の速さ、軌道、着地場所、および/または発射位置などの、仮想物体3006の解放をどのように提示するかを判定するために使用される。
上記から例示されている例を続けると、仮想手3004は、仮想物体3006を保持し、その後、仮想物体3006を解放し得る。この例示は、仮想物体が、各ディスプレイフレーム(F)の速度(V)および位置(P)と関連付けられ得ることをさらに示す。これらの速度および位置は、説明されるように、1つ以上のハンドヘルドコントローラから受信されたセンサデータに基づき得る。
図36の例示された例では、落下開始モジュール3130、落下物体モジュール3132、ならびに/または他のソフトウェアおよび/もしくはハードウェアは、第1のフレーム(F1)で、物体が解放されることになると判定している。いくつかの例では、落下物体モジュール3132は、プロセス3500または同様のプロセスを使用してこの判定を行い得る。仮想物体3006の解放のトリガにかかわらず、物体を解放する判定を行うと、落下物体モジュールは、仮想物体3006を解放する位置、仮想物体3006を解放する速度、仮想物体3006が進む軌道、仮想物体3006の着地場所などを判定し得る。
これらの判定を行うために、落下物体モジュール3132は、解放が発生することになると落下物体モジュール3132が判定する時間(この事例では、F1)の前の所定の時間範囲の間に受信されたハンドヘルドコントローラからのセンサデータを分析し得る。例えば、落下物体モジュール3132は、物体の解放前の15フレームなどの、以前のフレーム数についてのセンサデータを分析し得る。次いで、落下物体モジュール3132は、この期間中の最高速度(すなわち、ピーク速度)と関連付けられたフレームを識別し得、いくつかの事例では、ユーザが仮想物体3006を解放することを意図するフレームに、この最高速度と関連付けられたフレームが対応するという指標を記憶し得る。次いで、落下物体モジュール3132は、このフレームと関連付けられた情報を使用して、ディスプレイ上に仮想物体の解放をどのように提示するか(例えば、速度、方向、軌道など)を判定し得る。
一事例では、落下物体モジュール3132は、ピーク速度で仮想物体3006を解放している仮想手3004を提示し、他の事例では、落下物体モジュール3132は、ピーク速度の平均、ピーク速度フレームの以前の第1のフレーム数における仮想物体3006の速度、およびピーク速度の後の第2のフレーム数における仮想物体3006の速度に基づいて、平均速度を算出し得る。例えば、落下物体モジュール3132は、ピーク速度の平均速度、ピーク速度フレームの直前のフレームにおける仮想物体3006の速度、およびピーク速度フレームの直後のフレームにおける仮想物体3006の速度を計算し得る。
例えば、図36は、落下物体モジュール3132が、ピーク速度VNを有するF1に先行する所定の時間量内のフレームとしてフレームFNを識別したことを例示する。それゆえに、この例では、落下物体モジュール3132は、FNの直前のフレームFN-1における仮想物体3006の速度VN-1、およびFNの直後のフレームFN+1における仮想物体3006の速度VN+1を識別し得る。次いで、落下物体モジュール3132は、これらの3つのフレームの平均速度を計算し得、この平均速度に従って仮想手3004から解放されている仮想物体3006を提示し得る。
いくつかの事例では、落下物体モジュール3132は、仮想物体3006の現在の位置における平均速度に従って解放されている仮想物体3006を提示し得る。以下に説明される図37Aは、そのような例を例示する。一方、他の事例では、落下物体モジュール3132は、以前の位置における平均速度で解放されている仮想物体3006を提示し得る。例えば、落下物体モジュール3132は、物体を解放されることになると落下物体モジュール3132が判定した時間と関連付けられた位置P1から、仮想物体3006を平均速度または別の速度で解放している仮想手3004を提示し得る。以下にも説明される図37Bは、そのような例を例示する。他の事例では、落下物体モジュール3132は、FNにおける仮想物体3006の位置PNから、または任意の他の位置(例えば、FN-1、FN+1など)からなどの、P1と関連付けられたフレームの前または後の任意のフレームで開放されている仮想物体3006を提示し得る。
さらに他の事例では、落下物体モジュール3132は、移動する仮想物体および/または仮想物体の着地場所を提示するための軌道を計算し得る。例えば、落下物体モジュール3132は、仮想物体3006がピーク速度およびピーク速度の位置PNで解放された場合、仮想物体3006の軌道を計算し得る。落下物体モジュール3132は、次いで、ピーク速度(PN)と関連付けられた点で開始するか、または仮想物体3006の現在の位置(例えば、P1)で開始するかのいずれかで、この計算された軌道に沿って移動する仮想物体3006をディスプレイ上に提示し得る。後者の事例では、落下物体モジュール3132は、計算された軌道を位置PNから物体P1の現在の位置に効果的に変換し得る。以下に説明される図37Cは、そのような例を例示する。
さらに他の事例では、落下物体モジュール3132は、仮想物体3006がFNで解放された場合、仮想物体3006の着地場所(LL)を計算し得る。次いで、落下物体モジュール3132は、仮想物体の現在の位置(例えば、P1)からこの着地場所までの仮想物体の軌道を計算し得る。落下物体モジュール3132は、次いで、この軌道に沿って移動する仮想物体3006を提示し得る。これらの事例では、仮想物体3006は、したがって、物体解放がFNで正確に識別された場合に着地するであろう場所に着地することになるが、一方、P1などの物体の現在の位置から、物体が解放される直前のPNなどの以前の位置に移動する物体の提示を依然として回避する。以下に説明される図37Dは、そのような例を例示する。
さらに、上記の異なるタイプの是正アクションが即座に導入されてもよく、または選択されたアクションを講じる判定の後に導入されてもよいことを理解されたい。例えば、落下物体モジュール3132が、上で考察された平均速度で物体を解放すると判定する場合、落下物体モジュール3132は、物体に、現在の速度から平均速度に即座にジャンプさせるのではなく、経時的に、物体の現在の速度から平均速度に加速または減速(必要に応じて)させ得る。同様に、落下物体モジュール3132が、物体の現在の軌道とは異なる軌道を実装すると判定する場合、モジュール3132は、ディスプレイ上のある場所から別の場所に即座にジャンプする物体の外観を回避するために、経時的に異なる軌道を実装し得る。
図37Aは、落下物体モジュール3132が、解放時の仮想物体3006の速度を計算する例を例示し、計算される速度は、ユーザが仮想物体3006を解放することを意図すると判定する前の所定の時間範囲内で発生するピーク速度に少なくとも部分的に基づく。例えば、落下物体モジュール3132は、ピーク速度VNと、ピーク速度フレームVN-1およびVN+1のいずれかの側のフレームと関連付けられた速度との間の平均に基づいて、この平均速度(Vavg)を計算し得る。これらの速度が、速さの大きさおよび方向の両方を表し得ることを理解されたい。さらに、どの速度がVavgを計算するために使用されるかにかかわらず、落下物体モジュール3132は、P1などの仮想物体の現在の位置からVavgに少なくとも部分的に基づいて解放されている仮想物体3006をディスプレイ上に提示し得る。上記のように、これは、現在の速度がVavgに到達するまで、Vavgに向かって現在の速度を加速または減速させること(必要に応じて)を含み得る。
図37Bは、ユーザが物体3006を解放することを意図する時点における仮想物体3006の位置を落下物体モジュールが判定すると共に、落下物体モジュール3132が、その位置から解放されている仮想物体3006を提示する例を例示する。例えば、上記で説明されたように、落下物体モジュール3132は、仮想物体の意図された解放点が、現在の時間から所定の時間量(例えば、F1の前の15フレーム)内に、ピーク速度VNを有するフレームFNと関連付けられた位置PNで発生したという指標を記憶し得る。次いで、落下物体モジュール3132は、ディスプレイに、ピーク速度、図37Aを参照して上で考察された平均速度、または任意の他の速度などの、特定の速度で、または別様にその特定の速度に基づいて、この位置(PN)からの物体の解放を提示させ得る。上記のように、これは、潜在的に現在の速度が、選択された速度に到達するまで、選択された速度に向かって現在の速度を加速または減速させること(必要に応じて)を含み得る。
図37Cは、ユーザが仮想物体3006を解放することを意図した時点で仮想物体3006が解放されていた場合に、落下物体モジュール3132が仮想物体3006の軌道を計算し、ディスプレイ上の仮想物体3006の現在の位置で始まるが、この軌道に沿って移動する仮想物体3006を提示する例を例示する。別の表現では、この例では、落下物体モジュール3132は、ピーク速度VNを使用して、仮想物体3006がその位置PNで解放されているように提示されていた場合に発生したであろう軌道TNを判定し得る。次いで、落下物体モジュール3132は、位置P1などのディスプレイ上の仮想物体3006の現在の位置で始まるが、軌道TNに向かって移行する軌道などの、この軌道に基づいて軌道を移動する仮想物体3006を提示し得る。この例では、表示された軌道は、実際の軌道であったであろうものに対して真であり得るが、着地場所は、物体解放の開始位置がPNではなくP1で始まったことを考慮して異なる場合がある。
図37Dは、ユーザが仮想物体3006を解放することを意図した時点で物体が解放されていた場合に、落下物体モジュール3132が仮想物体3006の軌道に基づいて仮想物体の着地場所を計算する例を例示する。この例では、落下物体モジュール3132は、ピーク速度VN、およびピーク速度PNの時間における仮想物体3006の位置を使用して、軌道TNを計算する。次いで、この軌道は、着地場所LLNを判定するために、仮想物体3006の環境に関する情報と共に使用される。この着地場所は、仮想物体3006がFNで解放されているように提示されていた場合に仮想物体3006が着地したであろう環境内の位置を表す。
この情報を用いて、落下物体モジュール3132は、次いで、仮想物体(例えば、P1)の現在の位置と着地場所LLNとの間の新たな軌道を計算し得る。この解決策は、仮想物体の計算された軌道を変更するが、解決策は、仮想物体3006を、以前のフレーム(例えば、PN)と関連付けられた位置でその解放を開始するように提示せずに、FNで解放された場合に着地したであろう場所に着地する仮想物体3006の表示を可能にする。
図38は、第1の時間で、仮想手が仮想物体を解放することになると判定し、ディスプレイ上に、第1の時間の前の所定の時間範囲内における仮想物体のピーク速度、またはピーク速度と関連付けられた仮想物体の位置に少なくとも部分的に基づいて、仮想物体を解放している仮想手を提示する、例示的なプロセス3800を例示する。いくつかの事例では、落下物体モジュール3132は、プロセス3800の一部または全部を実施し得る。
操作3802では、落下物体モジュール3132は、ディスプレイが仮想物体を保持している仮想手を提示している間、ハンドヘルドコントローラの1つ以上のセンサからセンサデータを受信し得る。上記のように、このセンサデータは、力データ、静電容量データ、速度データなどを含み得る。操作3804では、落下物体モジュール3132は、第1の時間に、かつセンサデータに少なくとも部分的に基づいて、仮想手が仮想物体を解放することになると判定し得る。いくつかの事例では、落下物体モジュール3132は、プロセス3200(3)を使用してこの判定を行い得るが、他の事例では、落下物体モジュール3132は、異なるプロセスを使用してもよい。
操作3806では、落下物体モジュール3132は、仮想手が仮想物体を解放することになると判定することに少なくとも部分的に応答して、第1の時間の前の所定の時間範囲内でハンドヘルドコントローラのピーク速度を判定し得る。いくつかの事例では、第1の時間は、第1のフレームと関連付けられ得、この判定は、その前の15フレームなどの第1のフレームの直前の所定のフレーム数内のハンドヘルドコントローラのピーク速度を判定することを含み得る。
操作3808では、落下物体モジュール3132は、所定の時間範囲内のピーク速度が、第1の時間の前の第2の時間、例えば、第1の時間の前の特定のフレームで発生したと判定し得る。操作3810では、落下物体モジュールは、ディスプレイ上に、第2の時間におけるハンドヘルドコントローラの速度、第2の時間におけるハンドヘルドコントローラの方向、もしくは第2の時間におけるハンドヘルドコントローラの位置のうちの少なくとも1つに少なくとも部分的に基づいて、および/または第2の時間における仮想物体の回転速度に基づいて、仮想物体を解放している仮想手を提示し得る。
いくつかの事例では、例えば、落下物体モジュール3132は、第2の時間の前の第3の時間におけるハンドヘルドコントローラの速度、または第2の時間の後の第4の時間におけるハンドヘルドコントローラの速度のうちの少なくとも1つを判定し得、これらの速度を使用して平均速度(例えば、速さおよび方向)を計算し得る。次いで、落下物体モジュール3132は、この平均速度に従って、またはこの平均速度に別様に基づいて、仮想物体を解放する仮想手を提示し得る。他の事例では、落下物体モジュール3132は、追加的に、または代替的に、第2の時間における仮想物体の位置を判定し得、第2の位置から、または第2の位置に別様に基づいて、仮想物体を解放している仮想手を提示し得る。
さらに他の事例では、落下物体モジュール3132は、ピーク速度から、第2の時間におけるハンドヘルドコントローラの方向を判定し得る。これらの事例では、仮想物体は、第2の時間におけるハンドヘルドコントローラのこの方向に従って、またはこの方向に別様に基づいて、解放されているように提示され得る。いくつかの事例では、落下物体モジュール3132は、追加的に、または代替的に、第2の時間における仮想物体のピーク速度および/または位置を使用して、仮想物体の軌道および/または着地場所を計算し得る。次いで、落下物体モジュールは、この軌道に従って、または着地場所で終了する軌道に従って、仮想物体を解放している仮想手を提示し得る。
さらに他の事例では、落下物体モジュールは、仮想物体の回転速度に少なくとも部分的に基づいて、解放されている仮想物体を提示し得る。回転速度を判定するために、落下物体モジュールは、ハンドヘルドコントローラのピーク速度に対応するか、またはそれに近い時点におけるハンドヘルドコントローラの回転速度変化を最初に判定し得る。加えて、落下物体モジュールまたは別のモジュールは、ハンドヘルドコントローラ(例えば、ハンドヘルドコントローラの質量中心)と仮想物体の質量中心との間の長さを判定し得る。ハンドヘルドコントローラの回転速度変化と連結された、この長さは、ハンドヘルドコントローラのピーク速度またはその近くの時点の仮想物体の回転速度を計算するために使用され得る。次いで、落下物体モジュールは、この回転速度に少なくとも部分的に基づいて、解放されている仮想物体を提示し得る。例えば、物体のスピン量は、この値に基づき得る。一例を提供するために、ユーザが仮想ハンマーを保持している場合、落下物体モジュールは、物体の解放の時点における仮想ハンマーの回転速度を判定し得、この情報を使用して、仮想ハンマーの解放をどのように提示するかを判定し得る。
図39は、第1の時間で、仮想物体が解放されることになると判定し、ディスプレイ上に、第1の時間の前の所定の時間範囲内における仮想物体のピーク速度、またはピーク速度と関連付けられた仮想物体の位置に少なくとも部分的に基づいて、解放されている仮想物体を提示する、例示的なプロセス3900を例示する。いくつかの事例では、落下物体モジュール3132は、プロセス3900の一部または全部を実施し得る。
操作3902では、落下物体モジュール3132は、第1の時間で、ディスプレイ上に提示された仮想物体が解放されることになると判定し得る。操作3904では、落下物体モジュール3132は、仮想物体が解放されることになると判定することに少なくとも部分的に応答して、第1の時間の前の所定の時間範囲内でハンドヘルドコントローラのピーク速度を判定し得る。操作3906では、落下物体モジュール3132は、所定の時間範囲内のピーク速度が、第1の時間の前の第2の時間で発生したと判定し得る。操作3908では、落下物体モジュール3132は、ディスプレイ上に、第2の時間におけるハンドヘルドコントローラの速度、第2の時間におけるハンドヘルドコントローラの方向、もしくは第2の時間におけるハンドヘルドコントローラの位置のうちの少なくとも1つに少なくとも部分的に基づいて、および/または第2の時間における仮想物体の回転速度に基づいて、解放されている仮想物体を提示し得る。
例えば、落下物体モジュールは、仮想物体の回転速度に少なくとも部分的に基づいて、解放されている仮想物体を提示し得る。回転速度を判定するために、落下物体モジュールは、ハンドヘルドコントローラのピーク速度に対応するか、またはそれに近い時点におけるハンドヘルドコントローラの回転速度変化を最初に判定し得る。加えて、落下物体モジュールまたは別のモジュールは、ハンドヘルドコントローラ(例えば、ハンドヘルドコントローラの質量中心)と仮想物体の質量中心との間の長さを判定し得る。ハンドヘルドコントローラの回転速度変化と連結された、この長さは、ハンドヘルドコントローラのピーク速度またはその近くの時点の仮想物体の回転速度を計算するために使用され得る。次いで、落下物体モジュールは、この回転速度に少なくとも部分的に基づいて、解放されている仮想物体を提示し得る。例えば、物体のスピン量は、この値に基づき得る。一例を提供するために、ユーザが仮想ハンマーを保持している場合、落下物体モジュールは、物体の解放の時点における仮想ハンマーの回転速度を判定し得、この情報を使用して、仮想ハンマーの解放をどのように提示するかを判定し得る。
主題は、構造的特徴に固有の言語で説明されているが、添付の特許請求の範囲で定義された主題が必ずしも説明された特定の特徴に限定されないことを理解されたい。むしろ、特定の特徴は、特許請求の範囲を実装する例示的な形態として開示される。
本開示は、本明細書の特定の例示的な実施形態を参照して説明されるが、当業者は、本開示がそれらに限定されないことを認識するであろう。本開示の様々な特徴および態様は、個別に、または共同して、場合によっては、異なる環境または用途で使用され得ることが想定される。例えば、右手コントローラに関して示される特徴は、左手コントローラにも実装され得、その逆も同様である。したがって、本明細書および図面は、限定的ではなく、例示的かつ代表的なものとしてみなされるべきである。例えば、「好ましくは」という単語および「好ましいが必須ではない」という語句は、本明細書では、「必須ではない」または任意選択の意味を一貫して含むように同義語として使用される。「備える」、「含む」、および「有する」は、非限定的用語(open-ended terms)であることが意図される。
以下に、本願の当初の特許請求の範囲に記載された発明を付記する。
[1]
方法であって、
ハンドヘルドコントローラの1つ以上のセンサから第1のデータを受信することであって、前記第1のデータが、第1の時間における前記ハンドヘルドコントローラを保持するユーザの手の少なくとも一部分の力または近接度のうちの少なくとも1つを示す、受信することと、
前記第1のデータに少なくとも部分的に基づいて、ディスプレイ上にレンダリングされた仮想物体が前記ユーザによって拾い上げられたという第1の指標を記憶することと、
前記ディスプレイ上に、かつ前記第1の指標に少なくとも部分的に基づいて、前記仮想物体を保持している前記ユーザの仮想手を提示することと、
前記1つ以上のセンサから第2のデータを受信することであって、前記第2のデータが、第2の時間における前記手の少なくとも一部分の力または近接度のうちの少なくとも1つを示す、受信することと、
前記第2のデータに少なくとも部分的に基づいて、前記仮想手が前記第2の時間から所定の時間量内に前記仮想物体を解放することになるという第2の指標を記憶することと、
前記1つ以上のセンサから第3のデータを受信することであって、前記第3のデータが、第3の時間における前記ハンドヘルドコントローラの速度を示す、受信することと、
前記ディスプレイ上に、前記所定の時間量の満了前または満了時に、前記仮想物体を解放している前記仮想手を提示することと、を含む、方法。
[2]
前記第1のデータが、前記第1の時間における前記手の少なくとも一部分の力を示し、
前記第1の時間における前記力が、力閾値を超えると判定することをさらに含み、
前記第1の指標を前記記憶することは、前記第1の時間における前記力が前記力閾値を超えると判定することに少なくとも部分的に基づいて、前記ディスプレイ上にレンダリングされた前記仮想物体が前記ユーザによって拾い上げられたという前記第1の指標を記憶することを含む、[1]に記載の方法。
[3]
前記第1のデータが、前記1つ以上のセンサによって測定された第1の静電容量値を含み、
前記第1の静電容量値、または前記第1の静電容量値に少なくとも部分的に基づく第2の静電容量値のうちの少なくとも1つが、静電容量閾値を超えると判定することをさらに含み、
前記第1の指標を前記記憶することは、前記第1の静電容量値または前記第2の静電容量値のうちの少なくとも1つが前記静電容量閾値を超えると判定することに少なくとも部分的に基づいて、前記ディスプレイ上にレンダリングされた前記仮想物体が前記ユーザによって拾い上げられたという前記第1の指標を記憶することを含む、[1]に記載の方法。
[4]
前記第1のデータが、前記第1の時間における前記手の少なくとも一部分の力を示し、
前記第2のデータが、前記第2の時間における前記手の少なくとも一部分の力を示し、
前記方法は、
前記第1の時間における前記力と前記第2の時間における前記力との間の差を判定することと、
前記差が差の閾値を超えると判定することと、をさらに含み、
前記第2の指標を記憶することは、前記差が前記差の閾値を超えると判定することに少なくとも部分的に基づいて、前記手が前記仮想物体を解放することになるという前記第2の指標を記憶することを含む、[1]に記載の方法。
[5]
前記第2のデータが、前記第2の時間における前記ハンドヘルドコントローラの速度をさらに示し、
前記第2の時間における前記ハンドヘルドコントローラの前記速度が速度閾値を超えると判定することをさらに含み、
前記第2の指標を記憶することは、前記第2の時間における前記ハンドヘルドコントローラの前記速度が前記速度閾値を超えると判定することに少なくとも部分的に基づいて、前記手が前記仮想物体を解放することになるという前記第2の指標を記憶することを含む、[1]に記載の方法。
[6]
前記第2のデータが、前記1つ以上のセンサによって測定された第1の静電容量値を含み、
前記第1の静電容量値、または前記第1の静電容量値に少なくとも部分的に基づく第2の静電容量値のうちの少なくとも1つが、静電容量閾値を超えないと判定することをさらに含み、
前記第2の指標を記憶することは、前記第1の静電容量値が前記静電容量閾値を超えないと判定することに少なくとも部分的に基づいて、前記手が前記仮想物体を解放することになるという前記第2の指標を記憶することを含む、[1]に記載の方法。
[7]
前記第2のデータが、前記第2の時間における前記ハンドヘルドコントローラの速度を含み、
前記第3の時間における前記ハンドヘルドコントローラの前記速度が、前記第2の時間における前記ハンドヘルドコントローラの前記速度を超えないと判定することをさらに含み、
前記物体を解放している前記仮想手を前記提示することは、前記ディスプレイ上に、前記第3の時間における前記ハンドヘルドコントローラの前記速度が前記第2の時間における前記ハンドヘルドコントローラの前記速度を超えないと判定することに少なくとも部分的に基づいて、前記物体を解放している前記仮想手を提示することを含む、[1]に記載の方法。
[8]
前記所定の時間量が、前記仮想物体を解放している前記仮想手を提示せずに満了したと判定することをさらに含み、
前記物体を解放している前記仮想手を前記提示することは、前記ディスプレイ上に、前記所定の時間量が、前記仮想物体を解放している前記仮想手を提示せずに満了したと判定することに少なくとも部分的に基づいて、前記物体を解放している前記仮想手を提示することを含む、[1]に記載の方法。
[9]
前記第2のデータが、前記第2の時間における前記ハンドヘルドコントローラの速度を含み、
前記第3の時間における前記ハンドヘルドコントローラの前記速度が、前記第2の時間における前記ハンドヘルドコントローラの前記速度を超えると判定することと、
前記第3の時間における前記ハンドヘルドコントローラの前記速度がピーク速度に対応するという指標を記憶することと、
前記第2の時間における前記ハンドヘルドコントローラの前記速度がフロア速度に対応するという指標を記憶することと、
前記ピーク速度および前記フロア速度に少なくとも部分的に基づいて、終了速度を計算することと、
前記終了速度の指標を記憶することと、をさらに含む、[1]に記載の方法。
[10]
前記1つ以上のセンサから第4のデータを受信することであって、前記第4のデータが、第4の時間における前記ハンドヘルドコントローラの速度を示す、受信することと、
前記第4の時間における前記ハンドヘルドコントローラの前記速度が、前記フロア速度未満であると判定することと、をさらに含み、
前記仮想物体を解放している前記仮想手を前記提示することは、前記第4の時間における前記ハンドヘルドコントローラの前記速度が前記フロア速度未満であると判定することに少なくとも部分的に基づいて、前記仮想物体を解放している前記仮想手を提示することを含む、[9]に記載の方法。
[11]
前記1つ以上のセンサから第4のデータを受信することであって、前記第4のデータが、第4の時間における前記ハンドヘルドコントローラの速度を示す、受信することと、
前記第4の時間における前記ハンドヘルドコントローラの前記速度が、前記フロア速度未満ではないと判定することと、
前記第4の時間における前記ハンドヘルドコントローラの前記速度が、前記終了速度未満であると判定することと、
前記ハンドヘルドコントローラの速度が、閾値時間量を超えて、前記終了速度未満のままであったと判定することと、をさらに含み、
前記仮想物体を解放している前記仮想手を前記提示することは、前記ハンドヘルドコントローラの前記速度が、前記閾値時間量を超えて、前記終了速度未満のままであったと判定することに少なくとも部分的に基づいて、前記仮想物体を解放している前記仮想手を提示することを含む、[9]に記載の方法。
[12]
システムであって、
1つ以上のプロセッサと、
コンピュータ実行可能命令を記憶する、1つ以上のコンピュータ可読媒体と、を備え、前記コンピュータ実行可能命令は、実行されるとき、前記1つ以上のプロセッサに、
ハンドヘルドコントローラの1つ以上のセンサから第1のデータを受信することであって、前記第1のデータが、前記ハンドヘルドコントローラを保持するユーザの手の少なくとも一部分の力または近接度を示す、受信することと、
前記第1のデータに少なくとも部分的に基づいて、仮想物体が保持されることになるという指標を記憶することと、
前記1つ以上のセンサから第2のデータを受信することであって、前記第2のデータが、前記ハンドヘルドコントローラの速度を含む、受信することと、
前記第2のデータに少なくとも部分的に基づいて、前記仮想物体が解放されることになるという指標を記憶することと、を含む、行為を実施させる、システム。
[13]
前記1つ以上のコンピュータ可読媒体が、コンピュータ実行可能命令をさらに記憶し、前記コンピュータ実行可能命令は、実行されるとき、前記1つ以上のプロセッサに、
前記ハンドヘルドコントローラの前記速度が、前記ハンドヘルドコントローラの以前に測定された速度未満であると判定することを含む、行為を実施させ、
前記仮想物体が解放されることになるという前記指標を前記記憶することは、前記ハンドヘルドコントローラの前記速度が前記ハンドヘルドコントローラの前記以前に測定された速度未満であると判定することに少なくとも部分的に基づいて、前記仮想物体が解放されることになるという前記指標を記憶することを含む、[12]に記載のシステム。
[14]
前記1つ以上のコンピュータ可読媒体が、コンピュータ実行可能命令をさらに記憶し、前記コンピュータ実行可能命令は、実行されるとき、前記1つ以上のプロセッサに、
前記仮想物体が解放されることになるという前記指標を記憶してから所定の時間量が経過したと判定することと、
前記所定の時間量が経過したと判定することに少なくとも部分的に基づいて、前記仮想物体の解放をディスプレイに表示させることと、を含む、行為を実施させる、[12]に記載のシステム。
[15]
前記ハンドヘルドコントローラの前記速度が、第1の時間における前記ハンドヘルドコントローラの速度を含み、前記1つ以上のコンピュータ可読媒体が、コンピュータ実行可能命令をさらに記憶し、前記コンピュータ実行可能命令は、実行されるとき、前記1つ以上のプロセッサに、
前記1つ以上のセンサから第3のデータを受信することであって、前記第3のデータが、前記第1の時間の後である第2の時間における前記ハンドヘルドコントローラの速度を含む、受信することと、
前記第2の時間における前記ハンドヘルドコントローラの前記速度が、前記第1の時間における前記ハンドヘルドコントローラの前記速度を超えないと判定することと、
前記第2の時間における前記ハンドヘルドコントローラの前記速度が前記第1の時間における前記ハンドヘルドコントローラの前記速度を超えないと判定することに少なくとも部分的に基づいて、前記仮想物体の解放をディスプレイに提示させることと、を含む、行為を実施させる、[12]に記載のシステム。
[16]
前記ハンドヘルドコントローラの前記速度が、第1の時間における前記ハンドヘルドコントローラの速度を含み、前記1つ以上のコンピュータ可読媒体が、コンピュータ実行可能命令をさらに記憶し、前記コンピュータ実行可能命令は、実行されるとき、前記1つ以上のプロセッサに、
前記1つ以上のセンサから第3のデータを受信することであって、前記第3のデータが、前記第1の時間の後である第2の時間における前記ハンドヘルドコントローラの速度を含む、受信することと、
前記第2の時間における前記ハンドヘルドコントローラの前記速度が、前記第1の時間における前記ハンドヘルドコントローラの前記速度を超えると判定することと、
前記第2の時間における前記ハンドヘルドコントローラの前記速度がピーク速度に対応するという指標を記憶することと、
前記第1の時間における前記ハンドヘルドコントローラの前記速度がフロア速度に対応するという指標を記憶することと、
少なくとも1つの前記ピーク速度および前記フロア速度に少なくとも部分的に基づいて終了速度を計算することと、
前記終了速度の指標を記憶することと、を含む、行為を実施させる、[12]に記載のシステム。
[17]
前記1つ以上のコンピュータ可読媒体が、コンピュータ実行可能命令をさらに記憶し、前記コンピュータ実行可能命令は、実行されるとき、前記1つ以上のプロセッサに、
前記1つ以上のセンサから第4のデータを受信することであって、前記第4のデータが、第3の時間における前記ハンドヘルドコントローラの速度を示す、受信することと、
前記第3の時間における前記ハンドヘルドコントローラの前記速度が、前記フロア速度未満であると判定することと、
前記第3の時間における前記ハンドヘルドコントローラの前記速度が前記フロア速度未満であると判定することに少なくとも部分的に基づいて、前記仮想物体の解放をディスプレイに提示させることと、を含む、行為を実施させる、[16]に記載のシステム。
[18]
前記1つ以上のコンピュータ可読媒体が、コンピュータ実行可能命令をさらに記憶し、前記コンピュータ実行可能命令は、実行されるとき、前記1つ以上のプロセッサに、
前記1つ以上のセンサから第4のデータを受信することであって、前記第4のデータが、第3の時間における前記ハンドヘルドコントローラの速度を示す、受信することと、
前記第3の時間における前記ハンドヘルドコントローラの前記速度が、前記フロア速度未満ではないと判定することと、
前記第3の時間における前記ハンドヘルドコントローラの前記速度が、前記終了速度未満であると判定することと、
前記ハンドヘルドコントローラの速度が、閾値時間量を超えて、前記終了速度未満のままであったと判定することと、
前記ハンドヘルドコントローラの前記速度が、前記閾値時間量を超えて、前記終了速度未満のままであったと判定することに少なくとも部分的に基づいて、前記仮想物体の解放をディスプレイに提示させることと、を含む、行為を実施させる、[16]に記載のシステム。
[19]
ハンドヘルドコントローラであって、
コントローラ本体と、
前記コントローラ本体に連結された1つ以上のセンサと、
1つ以上のプロセッサと、
コンピュータ実行可能命令を記憶する、1つ以上のコンピュータ可読媒体と、を備え、前記コンピュータ実行可能命令は、実行されるとき、前記1つ以上のプロセッサに、
前記1つ以上のセンサから第1のデータを受信することであって、前記第1のデータが、前記ハンドヘルドコントローラを保持するユーザの手の少なくとも一部分の力または近接度を示す、受信することと、
前記第1のデータに少なくとも部分的に基づいて、仮想物体が保持されることになるという指標を記憶することと、
前記1つ以上のセンサから第2のデータを受信することであって、前記第2のデータが、前記ハンドヘルドコントローラの速度を含む、受信することと、
前記第2のデータに少なくとも部分的に基づいて、前記仮想物体が解放されることになるという指標を記憶することと、を含む、行為を実施させる、ハンドヘルドコントローラ。
[20]
前記1つ以上のコンピュータ可読媒体が、コンピュータ実行可能命令をさらに記憶し、前記コンピュータ実行可能命令は、実行されるとき、前記1つ以上のプロセッサに、
前記ハンドヘルドコントローラの前記速度が、前記ハンドヘルドコントローラの以前に測定された速度未満であると判定することを含む、行為を実施させ、
前記仮想物体が解放されることになるという前記指標を前記記憶することは、前記ハンドヘルドコントローラの前記速度が前記ハンドヘルドコントローラの前記以前に測定された速度未満であると判定することに少なくとも部分的に基づいて、前記仮想物体が解放されることになるという前記指標を記憶することを含む、[19]に記載のハンドヘルドコントローラ。
[21]
前記1つ以上のコンピュータ可読媒体が、コンピュータ実行可能命令をさらに記憶し、前記コンピュータ実行可能命令は、実行されるとき、前記1つ以上のプロセッサに、
前記仮想物体が解放されることになるという前記指標を記憶してから所定の時間量が経過したと判定することと、
前記所定の時間量が経過したと判定することに少なくとも部分的に基づいて、前記仮想物体の解放をディスプレイに表示させることと、を含む、行為を実施させる、[19]に記載のハンドヘルドコントローラ。
[22]
前記ハンドヘルドコントローラの前記速度が、第1の時間における前記ハンドヘルドコントローラの速度を含み、前記1つ以上のコンピュータ可読媒体が、コンピュータ実行可能命令をさらに記憶し、前記コンピュータ実行可能命令は、実行されるとき、前記1つ以上のプロセッサに、
前記1つ以上のセンサから第3のデータを受信することであって、前記第3のデータが、前記第1の時間の後である第2の時間における前記ハンドヘルドコントローラの速度を含む、受信することと、
前記第2の時間における前記ハンドヘルドコントローラの前記速度が、前記第1の時間における前記ハンドヘルドコントローラの前記速度を超えないと判定することと、
前記第2の時間における前記ハンドヘルドコントローラの前記速度が前記第1の時間における前記ハンドヘルドコントローラの前記速度を超えないと判定することに少なくとも部分的に基づいて、前記仮想物体の解放をディスプレイに提示させることと、を含む、行為を実施させる、[19]に記載のハンドヘルドコントローラ。
[23]
前記ハンドヘルドコントローラの前記速度が、第1の時間における前記ハンドヘルドコントローラの速度を含み、前記1つ以上のコンピュータ可読媒体が、コンピュータ実行可能命令をさらに記憶し、前記コンピュータ実行可能命令は、実行されるとき、前記1つ以上のプロセッサに、
前記1つ以上のセンサから第3のデータを受信することであって、前記第3のデータが、前記第1の時間の後である第2の時間における前記ハンドヘルドコントローラの速度を含む、受信することと、
前記第2の時間における前記ハンドヘルドコントローラの前記速度が、前記第1の時間における前記ハンドヘルドコントローラの前記速度を超えると判定することと、
前記第2の時間における前記ハンドヘルドコントローラの前記速度がピーク速度に対応するという指標を記憶することと、
前記第1の時間における前記ハンドヘルドコントローラの前記速度がフロア速度に対応するという指標を記憶することと、
前記ピーク速度および前記フロア速度に少なくとも部分的に基づいて終了速度を計算することと、
前記終了速度の指標を記憶することと、を含む、行為を実施させる、[19]に記載のハンドヘルドコントローラ。
[24]
前記1つ以上のコンピュータ可読媒体が、コンピュータ実行可能命令をさらに記憶し、前記コンピュータ実行可能命令は、実行されるとき、前記1つ以上のプロセッサに、
前記1つ以上のセンサから第4のデータを受信することであって、前記第4のデータが、第3の時間における前記ハンドヘルドコントローラの速度を示す、受信することと、
前記第3の時間における前記ハンドヘルドコントローラの前記速度が、前記フロア速度未満であると判定することと、
前記第3の時間における前記ハンドヘルドコントローラの前記速度が前記フロア速度未満であると判定することに少なくとも部分的に基づいて、前記仮想物体の解放をディスプレイに提示させることと、を含む、行為を実施させる、[23]に記載のハンドヘルドコントローラ。
[25]
前記1つ以上のコンピュータ可読媒体が、コンピュータ実行可能命令をさらに記憶し、前記コンピュータ実行可能命令は、実行されるとき、前記1つ以上のプロセッサに、
前記1つ以上のセンサから第4のデータを受信することであって、前記第4のデータが、第3の時間における前記ハンドヘルドコントローラの速度を示す、受信することと、
前記第3の時間における前記ハンドヘルドコントローラの前記速度が、前記第2の時間における前記ハンドヘルドコントローラの前記速度を超えないと判定することと、
前記第3の時間における前記ハンドヘルドコントローラの前記速度が、前記フロア速度未満ではないと判定することと、
前記第3の時間における前記ハンドヘルドコントローラの前記速度が、前記終了速度未満であると判定することと、
前記ハンドヘルドコントローラの速度が、閾値時間量を超えて、前記終了速度未満のままであったと判定することと、
前記ハンドヘルドコントローラの前記速度が、前記閾値時間量を超えて、前記終了速度未満のままであったと判定することに少なくとも部分的に基づいて、前記仮想物体の解放をディスプレイに提示させることと、を含む、行為を実施させる、[23]に記載のハンドヘルドコントローラ。
[26]
前記1つ以上のセンサが、
前記ハンドヘルドコントローラの前記速度を判定するように構成された加速度計と、
前記ハンドヘルドコントローラ上の前記ユーザの前記手の少なくとも一部分の力を示すデータを生成するように構成された力検知抵抗器(FSR)と、
前記ハンドヘルドコントローラ上の前記ユーザの前記手の少なくとも一部分の近接度を示すデータを生成するように構成された近接センサと、を備える、[19]に記載のハンドヘルドコントローラ。