(57)【特許請求の範囲】
【請求項１】
ユーザの手で保持されるコントローラデバイスから、前記ユーザの手の少なくとも２つの指の姿勢を識別するコントローラ入力を受信することと、
前記コントローラデバイスを保持する前記ユーザの手の前記少なくとも２つの指による前記コントローラ入力の所定の目標入力に対する類似性を特定することと、
仮想空間において、前記コントローラデバイスに対応する仮想手をレンダリングすることであって、
前記類似性が所定閾値を超える場合には、それに応じて前記仮想手のポーズが所定の手ポーズに遷移するように前記仮想手は動画化され、前記仮想手の指の姿勢が所定の手のポーズの所定の指の姿勢に遷移するようになり、
前記類似性が前記所定閾値を超えない場合には、前記コントローラ入力の変化に応答して前記仮想手のポーズが動的に変化するように前記仮想手はレンダリングされる、
前記仮想手をレンダリングすることと、
を含む方法。
【請求項２】
前記仮想手の指の前記姿勢は、前記仮想空間内の前記仮想手の位置及び配向とは無関係である、請求項１に記載の方法。
【請求項３】
仮想指の前記姿勢は、前記仮想指の屈曲、伸展、外転、内転、及び／または回旋のうちの１つ以上の動作の量により、定義される、請求項２に記載の方法。
【請求項４】
前記コントローラ入力の変化に応答して前記仮想手のポーズが動的に変化するように前記仮想手をレンダリングすることは、複数の指の少なくとも１つの姿勢の変化を検出する前記コントローラ入力の変化に応答して前記仮想手の少なくとも１つの仮想指の前記姿勢を変えることを含む、請求項１に記載の方法。
【請求項５】
前記類似性が前記所定閾値を超える前記コントローラ入力の変化では、前記仮想手のポーズに変化が生じないように、前記類似性が前記所定閾値を超え続ける時間にわたり、前記所定の手ポーズの前記レンダリングが維持される、請求項１に記載の方法。
【請求項６】
前記ユーザの手の前記少なくとも２つの指の前記姿勢は、ローカル環境内の前記ユーザの手の位置及び配向とは無関係である、請求項１に記載の方法。
【請求項７】
前記ユーザの手の前記少なくとも２つの指の前記姿勢は、前記ユーザの手の前記少なくとも２つの指の屈曲、伸展、外転、内転、及び／または回旋のうちの１つ以上の動作の量により、定義される、請求項６に記載の方法。
【請求項８】
前記類似性を特定することは、前記所定の目標入力の対応する値からの前記コントローラ入力の値を特定することを含む、請求項１に記載の方法。
【請求項９】
プログラム命令が組み込まれた非一時的コンピュータ可読媒体であって、前記プログラム命令は、少なくとも１つのコンピューティングデバイスにより実行されると、前記少なくとも１つのコンピューティングデバイスに方法を実行させ、前記方法は、以下の動作、
ユーザの手で保持されるコントローラデバイスから、前記ユーザの手の少なくとも２つの指の姿勢を識別するコントローラ入力を受信することと、
前記コントローラデバイスを保持する前記ユーザの手の前記少なくとも２つの指による前記コントローラ入力の所定の目標入力に対する類似性を特定することと、
仮想空間において、前記コントローラデバイスに対応する仮想手をレンダリングすることであって、
前記類似性が所定閾値を超える場合には、それに応じて前記仮想手のポーズが所定の手ポーズに遷移するように前記仮想手は動画化され、前記仮想手の指の姿勢が前記所定の手ポーズの所定の指の姿勢に遷移するようになり、
前記類似性が前記所定閾値を超えない場合には、前記コントローラ入力の変化に応答して前記仮想手のポーズが動的に変化するように前記仮想手はレンダリングされる、
前記仮想手をレンダリングすることと、
を含む、
非一時的コンピュータ可読媒体。
【請求項１０】
前記仮想手の指の前記姿勢は、前記仮想空間内の前記仮想手の位置及び配向とは無関係である、請求項９に記載の非一時的コンピュータ可読媒体。
【請求項１１】
仮想指の前記姿勢は、前記仮想指の屈曲、伸展、外転、内転、及び／または回旋のうちの１つ以上の動作の量により、定義される、請求項１０に記載の非一時的コンピュータ可読媒体。
【請求項１２】
前記コントローラ入力の変化に応答して前記仮想手のポーズが動的に変化するように前記仮想手をレンダリングすることは、複数の指の少なくとも１つの姿勢の変化を検出する前記コントローラ入力の変化に応答して前記仮想手の少なくとも１つの仮想指の前記姿勢を変えることを含む、請求項９に記載の非一時的コンピュータ可読媒体。
【請求項１３】
前記類似性が前記所定閾値を超える前記コントローラ入力の変化では、前記仮想手のポーズに変化が生じないように、前記類似性が前記所定閾値を超え続ける時間にわたり、前記所定の手ポーズの前記レンダリングが維持される、請求項９に記載の非一時的コンピュータ可読媒体。
【請求項１４】
前記ユーザの手の前記少なくとも２つの指の前記姿勢は、ローカル環境内の前記ユーザの手の位置及び配向とは無関係である、請求項９に記載の非一時的コンピュータ可読媒体。
【請求項１５】
前記ユーザの手の前記少なくとも２つの指の前記姿勢は、前記ユーザの手の前記少なくとも２つの指の屈曲、伸展、外転、内転、及び／または回旋のうちの１つ以上の動作の量により、定義される、請求項１４に記載の非一時的コンピュータ可読媒体。
【請求項１６】
前記類似性を特定することは、前記所定の目標入力の対応する値からの前記コントローラ入力の値の偏差を特定することを含む、請求項９に記載の非一時的コンピュータ可読媒体。
【請求項１７】
ユーザの手の少なくとも２つの指の姿勢を識別するコントローラ入力を生成する、前記ユーザの手で保持されるコントローラデバイスと、
前記コントローラデバイスを保持する前記ユーザの手の前記少なくとも２つの指による前記コントローラ入力の所定の目標入力に対する類似性を特定するコンピューティングデバイスと、を備え、
前記コンピューティングデバイスは、仮想空間において、前記コントローラデバイスに対応する仮想手をレンダリングし、
前記類似性が所定閾値を超える場合には、それに応じて前記仮想手のポーズが所定の手ポーズに遷移するように前記仮想手は動画化され、前記仮想手の指の姿勢が前記所定の手ポーズの所定の指の姿勢に遷移するようになり、
前記類似性が前記所定閾値を超えない場合には、前記コントローラ入力の変化に応答して前記仮想手のポーズが動的に変化するように前記仮想手はレンダリングされる、
前記コンピューティングデバイスと、
を備える、システム。
【請求項１８】
前記仮想手の指の前記姿勢は、前記仮想空間内の前記仮想手の位置及び配向とは無関係である、請求項１７に記載のシステム。
【請求項１９】
仮想指の前記姿勢は、前記仮想指の屈曲、伸展、外転、内転、及び／または回旋のうちの１つ以上の動作の量により、定義される、請求項１８に記載のシステム。
【請求項２０】
前記コントローラ入力の変化に応答して前記仮想手のポーズが動的に変化するように前記仮想手をレンダリングすることは、複数の指の少なくとも１つの姿勢の変化を検出する前記コントローラ入力の変化に応答して前記仮想手の少なくとも１つの仮想指の前記姿勢を変えることを含む、請求項１７に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、検出された手入力に基づく仮想手ポーズのレンダリングに関する。
【背景技術】
【０００２】
ビデオゲーム産業は、長年にわたり数多くの変化を経験している。コンピューティング能力が拡張したことにより、ビデオゲームの開発者も同様に、このコンピューティング能力の向上を活用したゲームソフトウェアを製作している。この目標に向かって、ビデオゲーム開発者は、高度な演算及び数学を組み込んだゲームをコーディングして、非常に詳細で魅力的なゲーム体験を生み出している。
【０００３】
例示的なゲームプラットフォームには、Ｓｏｎｙ  ＰｌａｙＳｔａｔｉｏｎ（登録商標）、Ｓｏｎｙ  ＰｌａｙＳｔａｔｉｏｎ２（登録商標）（ＰＳ２）、Ｓｏｎｙ  ＰｌａｙＳｔａｔｉｏｎ３（登録商標）（ＰＳ３）、及びＳｏｎｙ  ＰｌａｙＳｔａｔｉｏｎ４（登録商標）（ＰＳ４）が挙げられ、それぞれがゲーム機の形態で販売されている。周知のように、ゲーム機は、ディスプレイ（通常はテレビ）に接続して、ハンドヘルドコントローラを介してユーザインタラクションを可能にするように設計されている。ゲーム機は、ＣＰＵを含む特別処理ハードウェア、集中的なグラフィック動作を処理するグラフィックシンセサイザ、ジオメトリ変換を行うベクトルユニット、並びに他のグルーハードウェア、ファームウェア及びソフトウェアを備えるように、設計されている。ゲーム機はさらに、ゲーム機を介したローカルプレイ用のゲームディスクを受け取る光ディスクリーダを備えるように設計され得る。ユーザがインターネットを介して、他のユーザに対して、または他のユーザと共に、インタラクティブにプレイすることができるオンラインゲームも可能である。ゲームの複雑さがプレーヤを魅了し続けていることから、ゲーム及びハードウェアの製造業者は、さらなるインタラクティビティ及びコンピュータプログラムを可能にするために革新し続けている。
【０００４】
コンピュータゲーム産業において成長傾向にあるのが、ユーザとゲームシステムとの間のインタラクションを増やすゲームの開発である。より豊かなインタラクティブ体験を達成する１つの方法として、ワイヤレスゲームコントローラの使用があり、プレーヤの動きを追跡して、その動きをゲームへの入力として使用するために、ゲームシステムによりワイヤレスゲームコントローラの動きが追跡される。一般に、ジェスチャ入力は、コンピューティングシステム、ビデオゲーム機、スマート家電などの電子デバイスを用いて、電子デバイスが取り込んだプレーヤによるあるジェスチャに反応することを指す。
【０００５】
さらに没入感のあるインタラクティブ体験を達成する別の方法として、ヘッドマウントディスプレイ（ＨＭＤ）の使用がある。ヘッドマウントディスプレイは、ユーザにより装着され、仮想空間のビューなど、様々なグラフィックを提示するように構成され得る。ヘッドマウントディスプレイ上で提示されるグラフィックは、ユーザの視野の大部分または全体にまで及び得る。よって、ヘッドマウントディスプレイ（ＨＭＤ）は、ユーザの動きに応答する方法で仮想環境の三次元リアルタイムビューをレンダリングするため、ＨＭＤは、ユーザに視覚的に没入感のある仮想現実体験を提供することができる。ＨＭＤを装着しているユーザは、全方向に自由に移動することができ、これに応じてＨＭＤを介して全方向の仮想環境のビューが提供され得る。
【０００６】
このような背景において、本開示の実施態様が生じる。
【発明の概要】
【０００７】
本開示の実施態様は、検出された手入力に基づく仮想手ポーズのレンダリングに関するデバイス、方法、及びシステムを含む。
【０００８】
いくつかの実施態様では、方法が提供され、方法は、コントローラデバイスから、ユーザの手ポーズを識別するコントローラ入力を受信することと、所定の目標入力に対するコントローラ入力の類似度を特定することと、仮想空間において、コントローラデバイスに対応する仮想手をレンダリングすることであって、類似度が所定閾値を超える場合には、仮想手ポーズが所定の手ポーズに一致するように仮想手はレンダリングされ、類似度が所定閾値を超えない場合には、コントローラ入力の変化に応答して仮想手ポーズが動的に変化するように仮想手はレンダリングされる、仮想手をレンダリングすることと、を含む。
【０００９】
いくつかの実施態様では、仮想手ポーズは、仮想手の仮想指の姿勢により定義され、仮想空間内の仮想手の位置及び配向とは無関係であり、所定の手ポーズは、仮想手の仮想指の所定の姿勢を定義する。
【００１０】
いくつかの実施態様では、仮想指の姿勢は、仮想指の屈曲、伸展、外転、内転、及び／または回旋のうちの１つ以上の動作の量により、定義される。
【００１１】
いくつかの実施態様では、コントローラ入力の変化に応答して仮想手ポーズが動的に変化するように仮想手をレンダリングすることは、コントローラ入力の変化に応答して仮想手の少なくとも１つの仮想指の姿勢を変えることを含む。
【００１２】
いくつかの実施態様では、類似度が所定閾値を超えるコントローラ入力の変化では、仮想手ポーズに変化が生じないように、類似度が所定閾値を超え続ける時間にわたり、所定の手ポーズのレンダリングが維持される。
【００１３】
いくつかの実施態様では、ユーザの手ポーズは、ユーザの手の指の姿勢により定義され、ローカル環境内のユーザの手の位置及び配向とは無関係であり、コントローラ入力は、ユーザの手の指の姿勢を識別する。
【００１４】
いくつかの実施態様では、ユーザの手の指の姿勢は、ユーザの手の指の屈曲、伸展、外転、内転、及び／または回旋のうちの１つ以上の動作の量により、定義される。
【００１５】
いくつかの実施態様では、非一時的コンピュータ可読媒体には、プログラム命令が組み込まれており、プログラム命令は、少なくとも１つのコンピューティングデバイスにより実行されると、少なくとも１つのコンピューティングデバイスに方法を実行させ、方法は、以下の動作、コントローラデバイスから、ユーザの手ポーズを識別するコントローラ入力を受信することと、所定の目標入力に対するコントローラ入力の類似度を特定することと、仮想空間において、コントローラデバイスに対応する仮想手をレンダリングすることであって、類似度が所定閾値を超える場合には、仮想手ポーズが所定の手ポーズに一致するように仮想手はレンダリングされ、類似度が所定閾値を超えない場合には、コントローラ入力の変化に応答して仮想手ポーズが動的に変化するように仮想手はレンダリングされる、仮想手をレンダリングすることの、以上の動作を含む。
【００１６】
いくつかの実施態様では、システムが提供され、システムは、ユーザの手ポーズを識別するコントローラ入力を生成するコントローラデバイスと、所定の目標入力に対するコントローラ入力の類似度を特定し、仮想空間において、コントローラデバイスに対応する仮想手をレンダリングするコンピューティングデバイスであって、類似度が所定閾値を超える場合には、仮想手ポーズが所定の手ポーズに一致するように仮想手はレンダリングされ、類似度が所定閾値を超えない場合には、コントローラ入力の変化に応答して仮想手ポーズが動的に変化するように仮想手はレンダリングされる、コンピューティングデバイスと、を備える。
【００１７】
本開示の他の態様及び利点は、本開示の原理を例として示す添付図面と併せて、下記の発明を実施するための形態から明らかになる。
【図面の簡単な説明】
【００１８】
本開示は、添付図面と併せて、下記の説明を参照することにより、よりよく理解され得る。
【００１９】
【図１】本開示の一実施態様による、ヘッドマウントディスプレイ（ＨＭＤ）を介して仮想環境とインタラクションを行うためのシステムを示す。
【００２０】
【図２Ａ】本開示の実施態様による、仮想空間とインタラクションを行うためのコントローラデバイス１０４を示す。
【図２Ｂ】本開示の実施態様による、仮想空間とインタラクションを行うためのコントローラデバイス１０４を示す。
【図２Ｃ】本開示の実施態様による、仮想空間とインタラクションを行うためのコントローラデバイス１０４を示す。
【図２Ｄ】本開示の実施態様による、仮想空間とインタラクションを行うためのコントローラデバイス１０４を示す。
【００２１】
【図３Ａ】本開示の実施態様による、指ごとに２つの近接センサを使用して、ユーザの人差し指、中指、薬指、及び小指の屈曲／伸展を検出するように構成されたコントローラデバイスを示す。
【図３Ｂ】本開示の実施態様による、指ごとに２つの近接センサを使用して、ユーザの人差し指、中指、薬指、及び小指の屈曲／伸展を検出するように構成されたコントローラデバイスを示す。
【００２２】
【図４Ａ】本開示の一実施態様による、複数の屈曲センサを組み込んだグローブインタフェースオブジェクトのフォームファクタのコントローラデバイスを示す。
【００２３】
【図４Ｂ】本開示の一実施態様による、屈曲センサが画定されたグローブインタフェースオブジェクトの側面図を示す。
【００２４】
【図４Ｃ】本開示の一実施態様による、複数の屈曲センサがグローブインタフェースオブジェクトの関節領域に位置付けられたグローブインタフェースオブジェクトを示す。
【００２５】
【図５Ａ】本開示の実施態様による、コントローラデバイスの底面図を示す。
【図５Ｂ】本開示の実施態様による、コントローラデバイスの上面図を示す。
【００２６】
【図５Ｃ】本開示の実施態様による、コントローラデバイスの例を示す。
【００２７】
【図６Ａ】本開示の実施態様による、ユーザの手ポーズを検出するコントローラの操作を通して仮想空間とインタラクションするユーザ、及びこのような操作に基づいた仮想手の図を示す。
【図６Ｂ】本開示の実施態様による、ユーザの手ポーズを検出するコントローラの操作を通して仮想空間とインタラクションするユーザ、及びこのような操作に基づいた仮想手の図を示す。
【図６Ｃ】本開示の実施態様による、ユーザの手ポーズを検出するコントローラの操作を通して仮想空間とインタラクションするユーザ、及びこのような操作に基づいた仮想手の図を示す。
【００２８】
【図７Ａ】本開示の実施態様による、ユーザの手ポーズを検出するコントローラの操作を通して仮想空間とインタラクションするユーザ、及びこのような操作に基づいた仮想手の図を示す。
【図７Ｂ】本開示の実施態様による、ユーザの手ポーズを検出するコントローラの操作を通して仮想空間とインタラクションするユーザ、及びこのような操作に基づいた仮想手の図を示す。
【図７Ｃ】本開示の実施態様による、ユーザの手ポーズを検出するコントローラの操作を通して仮想空間とインタラクションするユーザ、及びこのような操作に基づいた仮想手の図を示す。
【００２９】
【図８】本開示の実施態様による、様々な可能な手ポーズを示す。
【００３０】
【図９Ａ】本開示の実施態様による、ＨＭＤを通して見える仮想空間でインタラクションするユーザを示す。
【図９Ｂ】本開示の実施態様による、ＨＭＤを通して見える仮想空間でインタラクションするユーザを示す。
【００３１】
【図１０Ａ】本開示の実施態様による、仮想空間内のアバターを示す。
【図１０Ｂ】本開示の実施態様による、仮想空間内のアバターを示す。
【図１０Ｃ】本開示の実施態様による、仮想空間内のアバターを示す。
【図１０Ｄ】本開示の実施態様による、仮想空間内のアバターを示す。
【００３２】
【図１１Ａ】本開示の実施態様による、ユーザの手の異なる指の伸展量を経時的に示すグラフである。
【図１１Ｂ】本開示の実施態様による、ユーザの手の異なる指の伸展量を経時的に示すグラフである。
【図１１Ｃ】本開示の実施態様による、ユーザの手の異なる指の伸展量を経時的に示すグラフである。
【図１１Ｄ】本開示の実施態様による、ユーザの手の異なる指の伸展量を経時的に示すグラフである。
【図１１Ｅ】本開示の実施態様による、ユーザの手の異なる指の伸展量を経時的に示すグラフである。
【００３３】
【図１２】本開示の実施態様による、目標手ポーズに対するユーザの手ポーズの類似度を経時的に示すグラフである。
【００３４】
【図１３Ａ−１】本開示の実施態様による、ヘッドマウントディスプレイ（ＨＭＤ）を示す。
【図１３Ａ−２】本開示の実施態様による、ヘッドマウントディスプレイ（ＨＭＤ）を示す。
【００３５】
【図１３Ｂ】一実施態様による、ＨＭＤユーザがクライアントシステムとインタフェースし、クライアントシステムが第２の画面と称される第２の画面ディスプレイにコンテンツを提供する一例を示す。
【００３６】
【図１４】本開示の一実施態様による、実行中のビデオゲームと連動するＨＭＤの機能を概念的に示す。
【００３７】
【図１５】本開示の一実施態様による、ヘッドマウントディスプレイの構成要素を示す。
【００３８】
【図１６】本開示の様々な実施態様による、ゲームシステム１６００のブロック図である。
【発明を実施するための形態】
【００３９】
本開示の下記の実施態様は、検出された手入力に基づく仮想手ポーズのレンダリングに関するデバイス、方法、及びシステムを提供する。しかしながら、目下説明される具体的な詳細の一部または全てがなくとも本開示を実施できることは、当業者には明らかである。他の例では、本開示を不必要に不明瞭にしないために、周知のプロセス動作は詳細に説明されていない。
【００４０】
仮想手であるかユーザの実際の現実手であるかにかかわらず、本明細書で使用される手の「ポーズ」という用語は、手自体の構成を指し、これは、空間（仮想または現実）における手の全体的な位置（例えば空間座標位置）または全体的な配向（例えばロール、ピッチ、またはヨーの量）とは無関係である。手とは、手のひらと、親指、人差し指、中指、薬指、及び小指（それぞれ指１〜指５と番号付けることもできる）を含む指とを含むと、定義される。手のポーズは、指の姿勢により定義される（所与の指の姿勢も空間における指の全体的な位置または全体的配向とは無関係である）。指の姿勢は、屈曲、伸展、外転、内転、及び／または回旋の量により、定義され得る。
【００４１】
限定ではなく例として、拳は、指が概して高度の屈曲及び内転を示す一種の手ポーズである。拳の手ポーズは、指の姿勢により定義され、さらに、空間環境における手の全体の位置及び配向とは無関係であることが、理解される。
【００４２】
概して、本開示の実施態様では、ユーザの実際の手からの入力が、目標入力集合との一致レベルの閾値に達すると、ユーザの実際の手からの入力を介して動作が制御される仮想手は、ある所定の仮想手ポーズを有するようにレンダリングされ得るシステム及び方法が提供される。例えば、ユーザは、ユーザの手の指の姿勢を検出するセンサを含むコントローラデバイス（例えばハンドヘルドコントローラ、グローブインタフェースオブジェクトなど）を、操作し得る。このようなセンサからの感知入力値は、ユーザの手の指の姿勢を示す。
【００４３】
しかしながら、コントローラデバイスの感知能力は、ユーザの指の姿勢を検出するコントローラデバイスの能力に制限され得る。例えば、センサは、屈曲または伸展など特定の種類の指の動きのみを検出し、ユーザの指のこのような動作の全範囲を捉えない限られた範囲内でのみ、このような動きを検出し得る。さらに、コントローラデバイス自体のフォームファクタ、及びコントローラデバイス上のセンサの位置付けは、実際には、ユーザの手で操作して、同時にコントローラデバイスを介して検出可能な入力を提供することができる方法を、制限し得る。例えば、センサは特別に位置付けられ得、よって、ユーザは、センサに動きを検出されるために、特定の場所に指を配置する必要がある。
【００４４】
コントローラデバイスのこれらの特有の制限を考えると、手の動きの検出に高度に特化したコントローラデバイスでも、潜在的な手ポーズの範囲は、コントローラデバイスの能力を容易に超え得ることが、明らかとなる。さらに、コントローラデバイスがユーザの手の所望の手ポーズを検出することができる場合でも、ユーザがＨＭＤを装着している場合、ユーザは自身の手を見ることができず、よって、仮想環境で所与の状況に対し所望の手ポーズを作れない場合がある。仮想現実で高品質のユーザ体験を提供する上で重要な部分は、レンダリングされた仮想手が自分自身の手であるかのようにユーザが感じるように、ユーザの実際の手に対応する仮想手をレンダリングすることである。これは、ユーザの実際の手の動きにより生成される入力に仮想手の仮想指が応答することを可能にすることにより、部分的に達成される。しかしながら、このようにしても、上記のように、特定の所望の手ポーズがユーザにより形成されない場合がある（実に、コントローラのハードウェア制限により、形成され同時に正確に検出されることもできない場合がある）。
【００４５】
従って、本開示の実施態様に従って、本開示の方法及びシステムは、ユーザの手ポーズを示す感知入力に基づいて、並びに、環境状況、実行する特定のタスク、ユーザの手の位置と配向、及びその変化（動き）などの他の状況要因にも基づいて、所定の仮想手ポーズをレンダリングすることを提供する。概して、目標入力集合に近い入力、あるいは所与の所定手ポーズを形成したいというユーザの所望を示す入力が受信された場合に、所定の仮想手ポーズがレンダリングされ、一方、入力が目標入力集合に近くない、あるいは入力が所与の所定手ポーズを形成したいというユーザの所望を示さない場合には、入力変化が仮想指の姿勢の変化としてリアルタイムでレンダリングされるように、仮想指の姿勢は入力により動的に制御される。
【００４６】
様々な実施態様において、方法、システム、画像取り込みオブジェクト、センサ、及び関連インタフェースオブジェクト（例えばグローブ、コントローラ、周辺デバイスなど）は、表示画面上で実質的リアルタイムにレンダリングされるように構成されたデータを処理するように構成される。概して、実施態様は、ヘッドマウントディスプレイ（ＨＭＤ）であるディスプレイを参照して説明される。しかし、他の実施態様では、ディスプレイは、第２の画面、ポータブルデバイスのディスプレイ、コンピュータディスプレイ、ディスプレイパネル、または１人以上のリモート接続ユーザ（例えばコンテンツを閲覧中、またはインタラクティブ体験を共有中であり得るユーザ）のディスプレイなどであり得る。
【００４７】
図１は、本開示の実施態様による、ヘッドマウントディスプレイ（ＨＭＤ）を介して仮想環境とインタラクションを行うためのシステムを示す。ＨＭＤは、仮想現実（ＶＲ）ヘッドセットとも称され得る。本明細書で使用される「仮想現実」（ＶＲ）という用語は、一般に、ＨＭＤの動き（ユーザにより制御される）にリアルタイムで応答して仮想空間内にいる感覚をユーザに提供する方法により、ＨＭＤ（またはＶＲヘッドセット）を介して仮想空間を見ることを伴う、仮想空間／環境とのユーザインタラクションを指す。例えば、ユーザは、所与の方向を向くと仮想空間の３次元（３Ｄ）ビューを見ることができ、ユーザが横側を向いて同様にＨＭＤの向きを変えると、仮想空間におけるその横側へのビューが、ＨＭＤ上でレンダリングされる。例示される実施態様では、ヘッドマウントディスプレイ（ＨＭＤ）１０２を装着しているユーザ１００が示される。ＨＭＤ１０２は、眼鏡、ゴーグル、またはヘルメットと同様の方法で装着され、ユーザ１００にビデオゲームまたは他のコンテンツを表示するように構成される。ＨＭＤ１０２の表示機構は、ユーザの目の極めて近くに設置されるため、ＨＭＤ１０２はユーザに、非常に没入感のある体験を提供する。従って、ＨＭＤ１０２は、ユーザの視野の大部分または全体さえも占める表示領域を、ユーザの目のそれぞれに提供することができ、また三次元の奥行き及び遠近感を有する視界を提供し得る。
【００４８】
例示される実施態様では、ＨＭＤ１０２は、コンピュータ１０６に無線で接続される。別の実施態様では、ＨＭＤ１０２は、有線接続を介してコンピュータ１０６に接続される。コンピュータ１０６は、当技術分野で既知の任意の汎用または専用コンピュータであり得、これには、ゲーム機、パーソナルコンピュータ、ラップトップ、タブレットコンピュータ、モバイルデバイス、セルラー電話、タブレット、シンクライアント、セットトップボックス、メディアストリーミングデバイスなどが含まれるが、これらに限定されない。いくつかの実施態様では、コンピュータ１０６は、ビデオゲームを実行し、ＨＭＤ１０２によるレンダリングのためにビデオゲームからの映像及び音声を出力するように構成され得る。いくつかの実施態様では、コンピュータ１０６は、ＨＭＤを通して見ることができる仮想空間／環境を提供する任意の他の種類のインタラクティブアプリケーションを実行するように構成される。送受信機１１０は、ビデオゲームからの映像及び音声を、ＨＭＤ１０２上でレンダリングするために、ＨＭＤ１０２に送信するように（有線接続または無線接続により）構成される。送受信機１１０は、ＨＭＤ１０２へデータを送信する送信機、並びにＨＭＤ１０２により送信されたデータを受信する受信機を含む。
【００４９】
いくつかの実施態様では、ＨＭＤ１０２はまた、ＨＭＤ１０２及びコンピュータ１０６の両方が接続されたネットワーク１１２を介するなど、代替的な機構またはチャネルを通して、コンピュータと通信し得る。
【００５０】
ユーザ１００は、インタフェースオブジェクト１０４を操作して、ビデオゲームへの入力を行い得る。さらに、カメラ１０８は、ユーザ１００が位置するインタラクティブ環境の画像を取り込むように構成され得る。これらの取り込み画像を分析して、ユーザ１００、ＨＭＤ１０２、及びインタフェースオブジェクト１０４の位置及び動きが特定され得る。様々な実施態様では、インタフェースオブジェクト１０４は、追跡可能な光源、及び／または慣性センサ（複数可）を含み、これにより、インタフェースオブジェクトの位置及び配向の特定、並びに動きの追跡が可能となる。
【００５１】
いくつかの実施態様では、磁場を放出する磁気源１１６が設置され、これにより、ＨＭＤ１０２及びインタフェースオブジェクト１０４の磁気追跡が可能となる。ＨＭＤ１０２及びインタフェースオブジェクト１０４内の磁気センサは、磁場（例えば強度、配向）を検出するように構成され得、この情報を使用して、ＨＭＤ１０２及びインタフェースオブジェクト１０４の位置及び／または配向が、特定及び追跡され得る。
【００５２】
いくつかの実施態様では、インタフェースオブジェクト１０４は、ＨＭＤ１０２と相対的に追跡される。例えば、ＨＭＤ１０２は、インタフェースオブジェクト１０４を含む画像を取り込む外向きカメラを有し得る。取り込み画像を分析して、ＨＭＤ１０２に対するインタフェースオブジェクト１０４の位置／配向が特定され、ＨＭＤの既知の位置／配向を使用して、ローカル環境におけるインタフェースオブジェクト１０４の位置／配向が特定され得る。
【００５３】
ＨＭＤ１０２に表示される仮想現実シーンとユーザがインタフェースする方法は、様々であり得、インタフェースオブジェクト１０４に加えて他のインタフェースデバイスも使用することができる。例えば、様々な種類の片手用コントローラだけでなく、両手用コントローラも使用することができる。いくつかの実施態様では、コントローラに含まれる光源を追跡することにより、またはコントローラに関連する形状、センサ、及び慣性データを追跡することにより、コントローラ自体の追跡を行うことができる。これらの様々な種類のコントローラを使用することで、または１つ以上のカメラにより取り込まれたユーザによる手のジェスチャを使用するだけでも、ＨＭＤ１０２に提示される仮想現実環境に対しインタフェース、制御、操作、インタラクション、及び参加を行うことが可能である。
【００５４】
さらに、ＨＭＤ１０２は、ＨＭＤ１０２の位置及び配向を特定するために追跡可能な１つ以上の光源を含み得る。カメラ１０８は、インタラクティブ環境から音を取り込むための１つ以上のマイクロホンを含み得る。マイクロホンアレイにより取り込まれた音は、音源の位置を特定するように処理され得る。特定された位置からの音は、選択的に利用され得る、または特定された位置以外からの他の音を排除するように処理され得る。さらに、カメラ１０８は、複数の画像取り込みデバイス（例えば立体カメラ対）、ＩＲカメラ、深度カメラ、及びこれらの組み合わせを含むように定義され得る。
【００５５】
いくつかの実施態様では、コンピュータ１０６は、ネットワーク１１２を介してクラウドゲームプロバイダ１１４と通信するシンクライアントとして機能する。このような実施態様では、一般的に、クラウドゲームプロバイダ１１４は、ユーザ１０２によりプレイされているビデオゲームを維持し実行する。コンピュータ１０６は、ＨＭＤ１０２、インタフェースオブジェクト１０４、及びカメラ１０８からの入力をクラウドゲームプロバイダへ送信し、クラウドゲームプロバイダは、入力を処理して、実行中のテレビゲームのゲーム状態に作用する。映像データ、音声データ、及び触覚フィードバックデータなどの実行中のビデオゲームからの出力は、コンピュータ１０６へ送信される。コンピュータ１０６はさらに、データを送信前に処理し得る、またはデータを関連デバイスに直接送信し得る。例えば、映像及び音声ストリームはＨＭＤ１０２に提供されるが、触覚／振動フィードバック命令はインタフェースオブジェクト１０４に提供される。
【００５６】
いくつかの実施態様では、ＨＭＤ１０２、インタフェースオブジェクト１０４、及びカメラ１０８は、それ自体がネットワーク１１２と接続して、例えばクラウドゲームプロバイダ１１４と通信するネットワーク化デバイスであり得る。いくつかの実施態様では、コンピュータ１０６は、ビデオゲーム処理を行わないがネットワークトラフィックの流れを促進するルータなどのローカルネットワークデバイスであり得る。ＨＭＤ１０２、インタフェースオブジェクト１０４、及びカメラ１０８によるネットワークへの接続は、有線または無線であり得る。
【００５７】
さらに、本開示の実施態様はヘッドマウントディスプレイに関連して説明され得るが、別の実施態様では、ポータブルデバイス画面（例えばタブレット、スマートフォン、ラップトップなど）、あるいは本実施態様に従って映像をレンダリングし及び／またはインタラクティブシーンもしくは仮想環境の表示を提供するように構成され得る任意の他の種類のディスプレイを、非限定的に含む非ヘッドマウント式ディスプレイが代用され得ることが理解される。
【００５８】
図２Ａ、図２Ｂ、図２Ｃ、及び図２Ｄは、本開示の実施態様による、仮想空間とインタラクションを行うためのコントローラデバイス１０４を示す。概して、コントローラデバイス１０４は、手で保持され、及び／またはユーザの手２００に固定されるように構成される。いくつかの実施態様では、コントローラデバイス１０４をユーザの手２００に固定するためのストラップ（またはバンド、または他の取り付け機構）が提供される（図示せず）。いくつかの実施態様では、このようなストラップは、ユーザの手２００の手のひら部分に巻き付いて、コントローラデバイス１０４をユーザの手のひらに対し固定するように構成される。いくつかの実施態様では、このような手のひらストラップは、使用時にユーザの手のひらを実質的に取り巻くように構成され、ストラップの一部／全長は、コントローラデバイス１０４の側面に固定され／取り付けられ、これにより、コントローラデバイスがユーザの手に固定される。いくつかの実施態様では、ストラップ機構は、ロック機構を含み、これにより、ストラップは、コントローラをユーザの手のひらに対し固定するロック構成と、ストラップを緩め及び／またはストラップの一部をコントローラ本体から離す解放構成とで、切り替えられることが可能となる。従って、ロック機構により、コントローラデバイスは、ユーザの手にしっかりと保持され得る、またはユーザの手から部分的に離れ得る。
【００５９】
いくつかの実施態様では、コントローラデバイス１０４は、コントローラデバイス１０４をユーザの手首に固定するリストストラップ２５０を含む。
【００６０】
コントローラデバイス１０４は、コントローラデバイス１０４が配備されるローカル環境の３次元現実空間内で追跡可能であるように構成される。そのために、コントローラデバイス１０４は、限定ではなく例として１つ以上の加速度計、磁力計、及びジャイロスコープを含む様々な動作／配向／慣性センサのうちのいずれかを有し得る。さらに、コントローラデバイス１０４は、磁気源２１６により放出される磁場の強度及び／または配向を検出するように構成された１つ以上の磁気センサ２１４を含み得る。いくつかの実施態様では、磁気源２１６は、コンピューティングデバイス１０６に接続され得る及び／またはコンピューティングデバイス１０６により制御され得る周辺デバイスのフォームファクタで、配備される。いくつかの実施態様では、磁気源２１６は、画像取り込みデバイス１０８などの既存の周辺デバイス内に配置され得る。いくつかの実施態様では、磁気源２１６は、コンピューティングデバイス１０６内に配置され得る。動作／配向／慣性センサ及び磁気センサからのデータまたは情報は、コントローラデバイス１０４の位置及び配向を特定し追跡するように、処理され得る。このようなデータ処理は、コントローラデバイス１０４及び／またはコンピューティングデバイス１０６により実行され得る。
【００６１】
例示される実施態様では、コントローラデバイス１０４は、ユーザの手２００により保持または把持されるように構成された本筐体２１２を含む。コントローラデバイス１０４はさらに、親指パッド２１８を含み、これは、コントローラデバイス１０４を保持する時にユーザの手２００の親指２０２が自然と下がる場所に、位置付けられる。いくつかの実施態様では、親指パッドは、タッチベース入力を提供することができるタッチ感知表面またはタッチパッドである。いくつかの実施態様では、親指パッドは、方向指示入力を容易にする方向指示パッドである。いくつかの実施態様では、親指パッドは、クリック可能である、またはボタンと同様に押下することができる。
【００６２】
親指パッド２１８はさらに、親指パッド２１８への親指２０２の近接度を検出するように構成された近接センサ２３４を含む。こうすることで、近接センサ２３４は、ユーザの親指２０２の屈曲または伸展の量を示し得る。
【００６３】
コントローラデバイス１０４を操作する時に、トリガ２２０は、ユーザの手２００の人差し指２０４により操作されるように構成され、一方トリガ２２２は、ユーザの手２００の中指２０６により操作されるように構成される。トリガ２２０及び２２２はさらに、近接センサ２３６及び２３８（図２Ｂに図示）をそれぞれ含み、これらは、トリガ２２０及び２２２へのユーザの人差し指２０４及び中指２０６の近接度をそれぞれ検出するように構成される。従って、近接センサ２３６及び２３８は、人差し指及び中指の屈曲または伸展の量を、それぞれ示す。すなわち、ユーザの人差し指２０４の屈曲量が増加すると（伸展量が減少すると）、近接センサ２３６への人差し指２０４の近接度は増加し、ユーザの人差し指２０４の屈曲量が減少すると（伸展量が増加すると）、近接センサ２３６への人差し指２０４の近接度は減少する。同様に、ユーザの中指２０６の屈曲量が増加すると（伸展量が減少すると）、近接センサ２３８への中指２０６の近接度は増加し、ユーザの中指２０６の屈曲量が減少すると（伸展量が増加すると）、近接センサ２３８への中指２０６の近接度は減少する。
【００６４】
さらに、コントローラデバイス１０４は、近接センサ２４０及び２４２（図２Ｃに図示）を含み、これらは、ユーザの薬指２０８及び小指２１０の近接度をそれぞれ検出するように、筐体２１２の下部に沿った位置に配置される。従って、近接センサ２４０及び２４２は、薬指及び小指の屈曲または伸展の量を、それぞれ示す。すなわち、ユーザの薬指２０８の屈曲量が増加すると（伸展量が減少すると）、近接センサ２４０への薬指２０８の近接度は増加し、ユーザの薬指２０８の屈曲量が減少すると（伸展量が増加すると）、近接センサ２４０への薬指２０８の近接度は減少する。同様に、ユーザの小指２１０の屈曲量が増加すると（伸展量が減少すると）、近接センサ２４２への小指２１０の近接度は増加し、ユーザの小指２１０の屈曲量が減少すると（伸展量が増加すると）、近接センサ２４２への小指２１０の近接度は減少する。
【００６５】
コントローラデバイス１０４はさらに、近接センサ２２６、２２８、２３０、及び２３２を有するバンド２２４を含む。バンド２２４の構造により、これらの近接センサは、人差し指、中指、薬指、及び小指が伸展した時に、これらの指の指先にそれぞれ近接するように位置付けられる。言い換えると、ユーザの人差し指２０４の伸展量が増加すると（屈曲量が減少すると）、近接センサ２２６への人差し指２０４の近接度は増加し、ユーザの人差し指２０４の伸展量が減少すると（屈曲量が増加すると）、近接センサ２２６への人差し指２０４の近接度は減少する。ユーザの中指２０６の伸展量が増加すると（屈曲量が減少すると）、近接センサ２２８への中指２０６の近接度は増加し、ユーザの中指２０６の伸展量が減少すると（屈曲量が増加すると）、近接センサ２２８への中指２０６の近接度は減少する。ユーザの薬指２０８の伸展量が増加すると（屈曲量が減少すると）、近接センサ２３０への薬指２０８の近接度は増加し、ユーザの薬指２０８の伸展量が減少すると（屈曲量が増加すると）、近接センサ２３０への薬指２０８の近接度は減少する。ユーザの小指２１０の伸展量が増加すると（屈曲量が減少すると）、近接センサ２３２への小指２１０の近接度は増加し、ユーザの小指２１０の伸展量が減少すると（屈曲量が増加すると）、近接センサ２３２への小指２１０の近接度は減少する。
【００６６】
前述を考慮して、図３Ａ及び図３Ｂを参照すると、コントローラデバイス１０４は、指ごとに２つの近接センサを使用して、ユーザの人差し指、中指、薬指、及び小指の屈曲／伸展を検出するように構成される。従って、各指は、対応する１対の近接センサを有し、センサは、センサが割り当てられた所与の指の屈曲／伸展の平面に実質的に沿った指の可動域の両端に、整列される。例えば、ユーザの人差し指２０４を検出するように構成されたセンサ２２６及び２３６は、ユーザの人差し指２０４の屈曲／伸展の平面に実質的に沿って、整列される。さらに、センサ２２６は、人差し指２０４が伸展した時に、人差し指２０４の遠位端部に近くなるように（ことによると接触するように）位置付けられ、一方センサ２３６は、人差し指２０４が伸展した時に、人差し指２０４の近位端部により近くなるように位置付けられる。他の指に関しても、同様のセンサ対の配置及び位置付けが適用されることが、理解される。
【００６７】
従って、いくつかの実施態様では、ユーザの指が伸展した時のユーザの指の遠位端部及び近位端部に対するセンサそれぞれの位置付けに基づいて、センサ２２６、２２８、２３０、及び２３２は遠位センサとみなされ、一方センサ２３６、２３８、２４０、及び２４２は近位センサとみなされる。所与の指の近位センサ及び遠位センサの対は、所与の指の姿勢を特定するために、一緒に利用される。所与の指の遠位センサ及び近位センサの近接感知範囲は、互いに重複し得ることが理解される。従って、いくつかの実施態様では、指の姿勢が最大限に屈曲した姿勢から最大限に伸展した姿勢に変化すると（例えばコントローラデバイス１０４の構造／形態により許容されるように）、指は、最初に、近位センサでのみ検出可能であり得（遠位センサの検出範囲内ではないため）、次に、指が近位センサの検出範囲内にまだ存在しながら遠位センサの検出範囲に入ると、近位センサ及び遠位センサの両方で検出可能となり得、最終的に、指が近位センサの検出範囲から離れると、遠位センサでのみ検出可能となり得る。
【００６８】
図３Ｂは、本開示の実施態様による、４つのボタン／トリガを有するコントローラデバイス１０４を示す。コントローラデバイス１０４は、前述の実施態様に類似するが、ユーザの薬指及び小指によりそれぞれ押下されるように構成されたトリガ／ボタン３００及び３０２をさらに含む。例示される実施態様では、近接センサ２４０及び２４２は、トリガ／ボタン３００及び３０２にそれぞれ含まれる。トリガ／ボタン２２０、２２２、３３０、及び３０２のそれぞれは、力フィードバック、振動フィードバックなどの触覚フィードバックを提供するように構成され得る。さらに、いくつかの実施態様では、コントローラデバイス１０４の本体２１２は、振動フィードバックを提供するように構成され得る。
【００６９】
具体的に示されていないが、いくつかの実施態様では、コントローラデバイス１０４は、１つ以上の光源または被照明体を含み得、これは、ローカル環境の取り込み画像内で認識され、コントローラデバイス１０４の位置及び配向の追跡を可能にするために追跡され得る。限定ではなく例として、１つ以上の光源は、コントローラデバイス１０４のバンド２２４に沿って及び／または筐体２１２に沿って、位置付けられ得る。
【００７０】
図４Ａは、本開示の一実施態様による、複数の屈曲センサを組み込んだグローブインタフェースオブジェクト４００のフォームファクタのコントローラデバイス１０４を示す。図４Ａはさらに、本開示の実施態様による、屈曲センサの回路を概略的に示す。示されるように、グローブインタフェースオブジェクト４００は、グローブインタフェースオブジェクト４００のそれぞれの指の上面に沿って画定された屈曲センサを含む。例えば、人差し指４０２は、人差し指の付け根関節が存在する人差し指４０２の付け根から、人差し指４０２の先端まで延びる屈曲センサ４０４を含む。例示される実施態様では、屈曲センサは、グローブインタフェースオブジェクトのそれぞれの指の上面に沿って位置付けられ、これは、ユーザの指の上側、すなわちユーザの手の甲（ユーザの手のひら側とは反対側）に関連する。しかしながら、別の実施態様では、屈曲センサは、指の側面に沿って、または指の底面（すなわち指の手のひら対向側）に沿ってなど、グローブインタフェースオブジェクトの指部分の周りの他の場所に位置付けできることが、理解される。
【００７１】
各屈曲センサは、ユーザの指など、ユーザの手の一部の屈曲を検出するように構成される。いくつかの実施態様では、屈曲センサは、屈曲感知抵抗器を含むように定義され、抵抗器の屈曲量に基づいて、抵抗が変化する。屈曲センサの例は、当技術分野では知られており、製造されたもの及び／またはＳｐｅｃｔｒａ  Ｓｙｍｂｏｌなどにより販売されているものを含む。いくつかの実施態様では、屈曲感知抵抗器の屈曲が増加すると、抵抗器の抵抗が増加する。図４Ａを引き続き参照すると、各屈曲センサは、単一アナログ入力（Ａ０〜Ａ５）に接続され、合計５つのアナログ入力を生成する。グローブインタフェースオブジェクトの屈曲を検出するために、屈曲を検出及び／または定量化することができる任意の種類の屈曲センサが利用され得ることが、理解される。
【００７２】
図４Ｂは、本開示の一実施態様による、屈曲センサが画定されたグローブインタフェースオブジェクトの側面図を示す。例示される実施態様では、グローブインタフェースオブジェクト４００の人差し指４０２は、人差し指４０２の側面に沿って画定された屈曲センサ４１０を有する。所与の指の側面に沿った距離は、指が屈曲した時に、指の上面または底面の距離ほど著しく変化しないため、屈曲センサをグローブインタフェースオブジェクトの指の側面に沿って位置付けることは、有利であり得る。一般的には、指が屈曲すると（すなわち閉じられると）、指の上面に沿った長さは増大し、指の底面に沿った長さは減少する。従って、屈曲センサが指の上面に沿って位置付けられた時、屈曲センサに実質的に弾性がない場合には、屈曲センサは、指を引き戻して指の屈曲に抵抗する傾向があり得る。
【００７３】
図４Ｂはさらに、グローブインタフェースオブジェクト４００の親指部分に沿って位置付けられた屈曲センサ４１６を示す。また、人差し指と親指との間の外転／内転を検出するために、グローブインタフェースオブジェクトの人差し指と親指との間の部分に沿って、屈曲センサ４１２が位置付けられる。
【００７４】
図４Ｃは、本開示の一実施態様による、複数の屈曲センサがグローブインタフェースオブジェクトの関節領域に位置付けられたグローブインタフェースオブジェクトを示す。例示される実施態様では、例えば、グローブインタフェースオブジェクトの人差し指部分４０２は、ユーザの人差し指の遠位指節間関節の屈曲を検出するように位置付けられた屈曲センサ４２０と、ユーザの人差し指の近位指節間関節の屈曲を検出するように位置付けられた屈曲センサ４２２と、ユーザの人差し指の付け根関節（中手指節関節）の屈曲を検出するように位置付けられた屈曲センサ４２４と、を含む。グローブインタフェースオブジェクト４００の他の指の部分も、ユーザの手の指の様々な関節の屈曲を検出するために同様に位置付けられた屈曲センサを含む。
【００７５】
さらに、グローブインタフェースオブジェクト４００の指部分の間に、屈曲センサ４２６などの屈曲センサが配置され、屈曲センサ４２６は、人差し指と中指との間の屈曲または広がりを検出するように位置付けられる。例示される実施態様では、他の屈曲センサも、隣接する指の間の広がりを検出するために、隣接する指の間に同様に位置付けられる。
【００７６】
さらに、ユーザの手首の屈曲を検出するように、屈曲センサ４２８が、グローブインタフェースオブジェクト４００の上手首部分に沿って位置付けられる。いくつかの実施態様では、屈曲センサは、グローブインタフェースオブジェクトの下手首部分に沿って位置付けられる。いくつかの実施態様では、手首の横方向の屈曲を検出するために、手首の側面に沿って追加の屈曲センサが位置付けられ得る。
【００７７】
いくつかの実施態様では、グローブインタフェースオブジェクトの屈曲センサを較正するための較正手順が提供される。例えば、較正手順では、屈曲センサがその最小屈曲位置及び／またはその最大屈曲位置に配置されるように、ユーザがグローブインタフェースオブジェクトを操作する必要があり得る。これらの位置で屈曲センサデータを読み取って、各屈曲センサの屈曲センサデータの上限／下限及び／または範囲が定義され得る。
【００７８】
図５Ａは、本開示の実施態様による、コントローラデバイスの底面図を示す。例示される実施態様では、コントローラデバイス１０４は、ハンドヘルド動作コントローラの形態である。示されるように、コントローラデバイス１０４は、ユーザの手により把持／保持されるように構成された筐体５００を含む。コントローラデバイス１０４はさらに、コントローラデバイス１０４の画像ベース追跡を促進するために、使用中に照明される被照明体５０２を含む。すなわち、例えばカメラ１０８により取り込まれたローカルインタラクティブ環境の取り込み画像を分析して、被照明体の位置が特定及び追跡され、これにより、コントローラデバイス１０４の追跡は促進される。
【００７９】
コントローラデバイス１０４をユーザの手に固定してコントローラデバイス１０４の偶発的な落下を防止するために、コントローラデバイス１０４はさらに、ユーザの手のひらに巻き付くように構成されたハンドストラップ５０４を含み、これにより、ユーザの手が完全に開いている（指が伸展した）時でも、コントローラデバイス１０４はユーザの手のひらと接触した状態が保持される。コントローラデバイス１０４はまた、コントローラデバイス１０４をユーザの手首に固定するように構成されたリストストラップ５０６を含む。コントローラデバイス１０４はさらに、ユーザの手がコントローラデバイス１０４を保持している時に、ユーザの手の人差し指により操作されるように構成されたトリガ５０８を含む。
【００８０】
ユーザの手の指の姿勢を検出するために、コントローラデバイス１０４は、複数の近接センサを含み、これは、ユーザがコントローラデバイス１０４を保持／操作／使用している時、近接センサに近接するユーザの指部分の存在の有無、及び／またはユーザの指部分までの距離を、検出するように構成される。これらには、近接センサ５１０ａ、５１０ｂ、５１２、５１４ａ〜ｃ、５１６ａ〜ｃ、及び５１８ａ〜ｃが含まれる。
【００８１】
様々な近接センサは、どちらの手がコントローラデバイス１０４を保持しているか、及びユーザの手のサイズに応じて、ユーザの指の異なる部分の存在／不在／距離を検出し得る。概して平均サイズの手に関しては、示されるコントローラデバイス１０４がユーザの右手で保持されている場合では、近接センサ５１０ａは、右親指の近接度を検出するように構成され、一方近接センサ５１０ｂ及び５１２は、右人差し指の部分の近接度を検出するように構成される。近接センサ５１２は、トリガ５０８と一体化され、これにより、トリガ機能及び近接感知の両方が同時に提供されることが理解される。ユーザの右手で保持されるコントローラデバイス１０４の参照を続けると、近接センサ５１４ａ、５１４ｂ、及び５１４ｃは、ユーザの右中指の様々な部分の近接度を検出するように構成され、近接センサ５１６ａ、５１６ｂ、及び５１６ｃは、ユーザの右薬指の様々な部分の近接度を検出するように構成され、近接センサ５１８ａ、５１８ｂ、及び５１８ｃは、ユーザの右小指の様々な部分の近接度を検出するように構成される。
【００８２】
ユーザの手の指の姿勢は、近接センサからの感知入力に基づいて特定または推測され得ることが、理解される。例えば、近接センサからの感知入力は、ユーザの手の様々な指の屈曲または伸展の量を特定するように処理され得る。
【００８３】
さらに、ユーザの右手で保持されるコントローラデバイス１０４を参照して前述は説明されたが、コントローラデバイス１０４は、ユーザの左手でも操作されてもよく、この場合、様々な近接センサからの感知入力は、ユーザの左手の指の姿勢を示すことが、理解される。例えば、例示される実施態様では、近接センサ５１０ｂによりユーザの左親指の姿勢が感知され、一方、近接センサ５１０ａ及び５１２によりユーザの左人差し指の姿勢が感知される。近接センサ５１４ａ、５１４ｂ、及び５１４ｃによりユーザの左中指の姿勢が感知され、近接センサ５１６ａ、５１６ｂ、及び５１６ｃによりユーザの左薬指の姿勢が感知され、近接センサ５１８ａ、５１８ｂ、及び５１８ｃによりユーザの左小指の姿勢が感知される。
【００８４】
図５Ｂは、本開示の実施態様による、コントローラデバイス１０４の上面図を示す。示されるように、コントローラデバイス１０４は、様々なボタン５２０ａ、５２０ｂ、５２０ｃ、５２０ｄ、５２２、及び５２４を含む。別の実施態様では、コントローラデバイス１０４は、ジョイスティック、タッチパッド、方向指示パッドなどの様々な他の種類の入力デバイスのうちのいずれかを含み得ることを、理解されたい。
【００８５】
例示の実施態様に示されるように、追加の近接センサ５１０ｃ及び５１０ｄが存在する。ユーザが自身の右手でコントローラデバイス１０４を保持／操作している時、近接センサ５１０ｃは、ユーザの右親指の存在を検出し得、従って、ユーザの右親指の屈曲または伸展を示し得る。同様に、近接センサ５１０ｄは、ユーザの右人差し指の存在を示し得る。コントローラデバイス１０４がユーザの左手で操作されている時は、反対のシナリオが適用される。
【００８６】
図５Ｃは、本開示の実施態様による、コントローラデバイス１０４の例を示す。例示される実施態様では、コントローラデバイス１０４は、ユーザの手で保持される本体５３０と、エミッタ５３４ａ、５３４ｂ、及び５３４ｃなどの様々なエミッタを含むバンド５３２とを含む。いくつかの実施態様では、エミッタは、可視光を放射する光源であり得、一方、別の実施態様では、エミッタは、赤外線などの非可視波長を放射し得る。エミッタは、コントローラデバイス１０４を含むローカル環境の取り込み画像内で、認識されるように構成される。さらに、エミッタの位置及び配向を含む、取り込み画像内のエミッタの構成は、ローカルインタラクティブ環境におけるコントローラデバイス１０４の位置及び配向を特定し追跡するように、処理され得る。
【００８７】
特に示されていないが、コントローラデバイス１０４はまた、コントローラデバイス１０４をユーザの手及び／または手首に固定するための１つ以上のストラップまたは他の機構を、含んでもよい。
【００８８】
例示される実施態様では、コントローラデバイス１０４は、ユーザの手の姿勢を検出するように構成されたいくつかのトリガを含む。トリガには、ユーザの親指の姿勢を検出するトリガ５３６と、ユーザの人差し指の姿勢を検出するトリガ５３８と、ユーザの中指の姿勢を検出するトリガ５４０と、ユーザの薬指の姿勢を検出するトリガ５４２と、ユーザの小指の姿勢を検出するトリガ５４４とが含まれる。
【００８９】
概して、所与のトリガの押下は、対応する指の屈曲を示し、一方、所与のトリガの解放は、対応する指の伸展を示す。例えば、トリガ５３６の押下は、親指の屈曲を示し、一方トリガ５３６の解放は、親指の伸展を示す。トリガ５３８の押下は、ユーザの人差し指の屈曲を示し、トリガ５３８の解放は、ユーザの人差し指の伸展を示す。同様の動作が、中指、薬指、及び小指にそれぞれ関連するトリガ５４０、５４２、及び５４４に適用される。
【００９０】
トリガは、トリガの押下量または解放量の範囲を感知するように構成されることを、理解されたい。すなわち、トリガは、押下された状態または解放された状態の２値状態だけでなく、トリガが押下された量または解放された量も、検出することができる。所与のトリガからの感知入力は、トリガの移動可能範囲内のトリガの位置を示すことができ、これにより、所与のトリガが押下された量、または所与のトリガが解放された量が示される。従って、感知入力は、所与のトリガにより感知された指の屈曲量または伸展量を示し得る。
【００９１】
さらに、いくつかの実施態様では、トリガは、ユーザに触覚フィードバックを提供するように構成され得る。例えば、トリガは、コントローラデバイス１０４により制御される仮想手で仮想オブジェクトに触れるなど、仮想空間内でのインタラクションに応答して、抵抗、振動、または他の触覚感覚を提供するように構成され得る。
【００９２】
コントローラデバイス１０４は、１つ以上の加速度計、磁力計、またはジャイロスコープなどの様々な動作センサ及び／または慣性センサのうちのいずれかを含み得る。
【００９３】
さらに、コントローラデバイス１０４は、１つ以上の磁気センサを含み得、これは、コントローラデバイス１０４が配置されるローカル環境内に位置する磁気エミッタにより放出される磁場を、検出するように構成される。例えば、磁気エミッタは、周辺デバイス（画像取り込みデバイス１０８など）、コンピューティングデバイス（コンピューティングデバイス１０６など）、またはローカル環境内の他のデバイスに、含まれ得る。磁気センサは、磁場を感知し、磁気センサが感知した磁場の強度（磁気エミッタからの距離を示す）、また磁場に対する磁気センサの配向を示すデータを出力し得る。このデータを利用して、ローカル環境内のコントローラデバイス１０４の位置及び配向が特定され得る。
【００９４】
図６Ａは、本開示の実施態様による、ユーザの手ポーズを検出するコントローラの操作を通して仮想空間とインタラクションするユーザを示す。示されるように、ユーザ１００は、ＨＭＤ１０２を通して仮想空間を見て、ユーザの左手及び右手でコントローラデバイス１０４ａ及び１０４ｂをそれぞれ操作する。コントローラデバイス１０４ａ及び１０４ｂは、ユーザの手の指の姿勢を、少なくとも部分的に検出することができる。コントローラデバイス１０４ａ及び１０４ｂは、近接センサ、トリガ、屈曲センサ、または他の機構を使用して、ユーザの手の指の姿勢の検出を可能にし得る。
【００９５】
例示される実施態様では、拡大図６００により、コントローラデバイス１０４ａを保持するユーザの左手６０２が示される。示されるように、ユーザの左手６０２は、コントローラデバイス１０４ａの周りを握り、指は、屈曲を示し、個々の指の姿勢を検出するように構成されたコントローラデバイス１０４ａのそれぞれの場所、例えばトリガまたは近接センサが配置された場所で、コントローラデバイス１０４ａに接触している。いくつかの実施態様では、コントローラデバイス１０４ａは、ユーザの左手の指の屈曲量または伸展量を示すセンサ入力を提供する。
【００９６】
ユーザ１００に現実味のある体験を提供するために、ユーザの手に対応する仮想手（例えばユーザ１００に対応する仮想空間内のアバターの手）の指は、コントローラデバイス１０４からの感知入力の変化に動的に応答する方法で、仮想空間内でリアルタイムにレンダリングされ得る。すなわち、限定ではなく例として、コントローラデバイス１０４ａからの感知入力を通して検出される屈曲量／伸展量は、ユーザの左手の指の屈曲／伸展から生じ、これは、仮想空間内の対応する仮想左手の屈曲量／伸展量を制御し得る。このような応答性の高い仮想手の動的制御を提供することは、ユーザ１００に臨場感を与え、ユーザの実際の手の指の動きはリアルタイムに、対応する仮想手の動きとして即座にマッピング及びレンダリングされ、よってユーザは、仮想手が自分の手であるかのように感じる。いくつかの実施態様では、これは、システムの第１の動作モードを定義する。
【００９７】
前述の仮想手のリアルタイム応答レンダリングの提供により、現実味のある仮想現実体験が提供される。しかし、コントローラデバイス１０４ａの構成により、ユーザ１００は、握り拳などの特定の所望の手ポーズを作ることが不可能であり得る。このような手ポーズは、ユーザの左手６０２の中にコントローラデバイス１０４ａが存在するため、不可能であり得る。従って、コントローラデバイス１０４ａにより前述のような現実味のある方法で仮想手の動的応答レンダリングを提供する場合、これは、恐らくコントローラデバイス１０４ａのハードウェア構成の制限が原因で、特定の手ポーズはこのレンダリング構成を通して達成できないことも意味し得る。
【００９８】
よって、いくつかの実施態様では、第２の動作モードが提供され、第２の動作モードでは、コントローラデバイス１０４ａからの感知入力を基に判定されるように、ユーザの手ポーズが所望の拳の手ポーズに十分近いと判定されると、対応する仮想手のポーズは、所定の手ポーズとして所望の拳の手ポーズを形成するように構成される。このようにして、ユーザの手ポーズが所定の手ポーズに所定の程度近づくと、仮想手のレンダリングされたポーズは、所定の手ポーズ（この場合では拳）に「切り替わる」。いくつかの実施態様では、これは、ユーザの手ポーズが、所定の手ポーズとの類似レベルの閾値に達したことに基づいて、定義される。いくつかの実施態様では、これは、目標入力集合に一致する、または目標入力集合との類似レベルの閾値に達した感知入力集合（例えば目標入力集合の特定の範囲に入る感知入力集合）により、定義される。
【００９９】
特定の感知入力集合が握り拳のレンダリングにマッピングされている場合でも、全ての望ましい状況で、ユーザ１００は尚も、特定の感知入力集合を生じるのに必要なやり方で自分の手をコントローラ１０４ａの周りに合わせられない場合があり、これは、ＨＭＤ１０２を装着しているユーザ１００は自分の手が見えないことに部分的に起因し得ることに、留意されたい。よって、いくつかの実施態様では、仮想手を所望の手ポーズにレンダリングすることを達成するために、ユーザは自分の手を非常に特殊なポーズにする必要がないように、所望の手ポーズまたは目標入力集合に十分類似する可能なポーズまたは入力の範囲を有効にすることが望ましい。
【０１００】
例示される実施態様を引き続き参照すると、図６Ｂは、本開示の実施態様による、ユーザの左手６０２に対応する仮想手６０４の図を示す。示されるように、仮想手６０４は、前述の第１の動作モードに従ってレンダリングされ、ユーザの左手６０２の指の動きは、仮想手６０４の指の動きとしてリアルタイムにレンダリングされる。いくつかの実施態様によれば、例示される仮想手６０４は、コントローラデバイス１０４ａからの感知入力により定義され、かつ感知入力に基づいてユーザの左手６０２の実際の姿勢を正確に模倣するように構成された構造で示され、これは、感知入力に基づいたユーザの左手６０２の個々の指の姿勢のレンダリングを含む。例えば、感知入力は、ユーザの左手６０２指の屈曲量／伸展量を示し得、これは、仮想手６０４の指の屈曲量／伸展量に正確に相関され、レンダリングされ得る。従って、感知入力から特定されたユーザの左手６０２指の屈曲／伸展の変化は、仮想手６０４の対応する指の屈曲／伸展の変化として、反映される。
【０１０１】
しかし、上記のように、コントローラデバイス１０４ａの存在（及び／またはユーザ自身の動作可能な手の操作）が原因で、ユーザが握り拳の手ポーズを作ることがない、または実際にそうすることができないことがある。従って、いくつかの実施態様では、ユーザの手ポーズが握り拳に十分似ていることを、コントローラデバイス１０４ａからの感知入力が示す場合には、図６Ｃの参照に示されるように、仮想手６０４は、握り拳の手ポーズを有するようにレンダリングされる。すなわち、コントローラデバイス１０４ａからの感知入力が、目標入力との類似度の閾値を越えると判定された場合には、仮想手６０４は、握り拳の手ポーズを有するように仮想空間内でレンダリングされる。このようにして、目標入力に対する感知入力の類似度が閾値レベルを超えない限り、仮想手６０４は、コントローラデバイス１０４ａにより感知されたユーザの指の動きに応答して、自由な指の動きを示す。一方、感知入力が目標入力との類似度の閾値を超える限り、仮想手６０４は、感知入力の変化に関係なく、握り拳としてレンダリングされる。すなわち、感知入力が目標入力との類似度の閾値を超え続ける限り、感知入力の変化（例えばユーザの指の姿勢の変化から生じる）により仮想手６０４のポーズが変わることはなく、仮想手６０４のポーズは、引き続き握り拳の手ポーズでレンダリングされる。
【０１０２】
本実施態様では、仮想手６０４は、感知入力が目標入力との類似度の閾値を超える時、所定の握り拳の手ポーズに「切り替わる」と説明されたが、仮想手６０４の握り拳の手ポーズへの遷移は、滑らかな遷移として動画化され得ることを理解されたい。これは、仮想手６０４の個々の指の現在の姿勢（例えば図６Ｂで示される姿勢）から、所定の拳の手ポーズにより定義される仮想手６０４の個々の指の姿勢（図６Ｃで示される姿勢）へ、仮想手６０４の個々の指の遷移を動画化することを含み得る。実際には、仮想手６０４が徐々に閉じて拳となる動画遷移を示すように、仮想手６０４はレンダリングされる。これにより、拳の手ポーズへの見栄えがより自然な遷移を提供することができる。実際には、遷移の動画化は、各指のセンサ値に基づいて、現在の手ポーズと目標となる所定の拳の手ポーズとの混合により、遷移ポーズを生成することを必要とする。いくつかの実施態様では、混合量は、使用されている所定の手ポーズの正規化されたスコアの残余として、概念化され得る。例えば、遷移の動画化は、１．０から所定のポーズスコアの合計を差し引いたものに等しい。
【０１０３】
動画化された遷移は、目標入力に対する感知入力の類似度が、閾値を超えるものから閾値を超えないものに変化する逆の状況で提供されてもよいことが、理解される。例えば、ここで説明される実施態様を引き続き参照すると、仮想手６０４は、図６Ｃに示される閉じた拳の手ポーズから、図６Ｂに示される手ポーズ（コントローラデバイス１０４ａからの感知入力により定義され、感知入力に応答して変化する手ポーズ）へ、滑らかに遷移するように動画化され得る。その結果、仮想手６０４は徐々に開き、次いで仮想手６０４の指は、ユーザ入力に基づいて応答的に関節運動するようになる。
【０１０４】
前述の実施態様は、特に拳の手ポーズを参照して説明されたが、説明される概念は、任意の手ポーズ、並びにユーザの指の姿勢の感知を含むユーザの手ポーズを感知する任意の種類のコントローラデバイスに適用できることが理解される。
【０１０５】
図７Ａは、本開示の実施態様による、ＨＭＤを通して見える仮想空間とインタラクションするユーザを示す。自分の左手及び右手でコントローラデバイス１０４ａ及び１０４ｂをそれぞれ操作するユーザ１００が示される。コントローラデバイスは、ユーザの手のポーズを検出するように構成され、仮想空間内の対応する仮想手は、ユーザの手のポーズに基づいて（例えばユーザの手のポーズを模倣する方法で）レンダリングされ得る。前述のように、コントローラデバイス１０４ａ／ｂは、ユーザ１００の手の個々の指の姿勢を検出し得、対応する仮想手の対応する指の姿勢は、同様または同一にレンダリングされ得る。これは、仮想手の指の姿勢のリアルタイム制御に部分的に起因して、仮想現実体験に臨場感を与える。
【０１０６】
コントローラデバイス１０４ｂを操作しているユーザの右手７０２を示す拡大図７００では、ユーザの右手７０２の親指及び人差し指がコントローラデバイス１０４ｂの周りで屈曲されて／丸められており、一方中指、薬指、及び小指は伸展されていることが分かる。対応するアバターの仮想手７０４がユーザの右手７０２のポーズを正確に模倣するように、この手のポーズは、図７Ｂに示されるようにレンダリングされ得る。
【０１０７】
しかし、いくつかの実施態様では、仮想手７０４のポーズを異なるようにレンダリングすることが望ましい。例えば、図７Ａに示されるユーザの手のポーズは、仮想空間内の仮想オブジェクトをつまむというユーザの意図を示す場合がある。従って、仮想手７０４は代わりに、見た目の美しいつまむ手ポーズをレンダリングするように、図７Ｃに示される所定の手ポーズに従ってレンダリングされ得る。ユーザの右手７０２の実際の親指と人差し指は指先で触れていないが、図７Ｃに示されるレンダリングされたつまむ手ポーズでは、仮想手７０４の親指と人差し指の指先は、触れている、またはほぼ触れていることが理解される。さらに、ユーザの右手７０２の実際の中指、薬指、及び小指は、真っ直ぐに伸展しているが、図７Ｃで示されるレンダリングされたつまみ手ポーズでは、これらの指は、示されるように美しく少し丸められ徐々に伸ばされる／広げられる。
【０１０８】
いくつかの実施態様では、コントローラデバイス１０４ｂからの感知入力が目標入力に十分類似していると判定された時、例えば感知入力と目標入力との類似度が所定の閾値を超えた時に、図７Ｃに示される所定のつまむ手ポーズが形成されるように、仮想手７０４のレンダリングは構成され得る。限定ではなく例として、感知入力は、近接センサ、トリガ、屈曲センサなど、またはユーザの右手７０２の指の姿勢の態様を感知し定量化し得る任意の他のセンサといった、コントローラデバイス１０４ｂのセンサからの感知データ値により、定義され得る。いくつかの実施態様では、センサは、ユーザの右手７０２の指の屈曲／伸展を検出する。いくつかの実施態様では、感知入力は、ユーザの右手７０２の指のそれぞれに対応するセンサからの感知データ値の集合を含む。目標入力は、感知データ値のそれぞれに対応する目標値の集合により定義される。
【０１０９】
例えば、例として人差し指などの指のうちの１つを検討すると、コントローラデバイス１０４ｂは、人差し指の屈曲を検出する人差し指センサを含み得、よって、感知入力は、ユーザの右手の人差し指の屈曲量を示す人差し指センサからの感知データ値を含む。同様に、コントローラデバイス１０４ｂは、他の指の屈曲量を示す、他の指のそれぞれに対応するセンサを含み得る。従って、感知入力は、これらのセンサのそれぞれからの感知データ値を含み、これにより、ユーザの右手７０２のそれぞれの指の屈曲量が示される。
【０１１０】
目標入力は、それぞれのセンサの目標データから成り、よって、ユーザの右手７０２の目標手ポーズを定義する。センサからの感知データ値が類似レベルの閾値を超えるほど目標データ値と類似していると集合的に判定されると、仮想手７０４は、例示される実施態様で示されたように、所定のつまむ手ポーズを有するようにレンダリングされ得る。感知データ値と目標データ値との類似レベルが閾値を超え続ける限り、感知データ値の変化（例えば少なくとも１本の指の姿勢の変化により生じる）は、仮想手７０４のレンダリングされる手ポーズに反映されないことを、理解されたい。類似度が閾値レベルを超えなくなるまで、所定のつまむ手ポーズが維持される。
【０１１１】
上記は所定のつまむ手ポーズを参照して説明されたが、本原理は、限定なしに任意の他の手ポーズに適用され得ることが理解される。さらに、指ごとに１つのセンサを有するコントローラデバイス１０４ｂを参照したが、指ごとに複数のセンサがあってもよい、従って指ごとに複数の感知データ値及び対応する目標データ値があってもよいことが、理解される。上記のように、複数のセンサを利用して、所与の指の姿勢が検出され得る。
【０１１２】
いくつかの実施態様では、目標入力集合に対する感知入力集合の類似度は、以下のように特定され得る。
【数１】
0006982215.tif 000002
【０１１３】
Ｅは、目標入力集合からのコントローラ感知入力集合の全体的な偏差である。Ｅの値は、偏差と正の相関関係にあり、Ｅの値の増加は、目標入力集合からのコントローラ感知入力の偏差の増大を示す。
【０１１４】
コントローラ感知入力集合は、ユーザの手の指のそれぞれに対応するコントローラセンサからの感知入力値から成り、Ｓｘは、指ｘの感知入力値である。
【０１１５】
目標入力集合は、ユーザの手の指のそれぞれに対応する目標入力値から成り、Ｔｘは、指ｘの目標入力値である。
【０１１６】
Ｒｘは、所与の感知入力値とその対応する目標入力値との未加工の差（Ｓｘ−Ｔｘ）をスケーリングするために使用される任意のスケーリング係数である。例えば、いくつかの実施態様では、Ｒｘは、ＴｘからのＳｘの最大可能偏差に等しく、差を１にスケーリングする。
【０１１７】
Ｗｘは、所与の感知入力値とその対応する目標入力値との平方差に適用される重み付け係数である。感知入力値のうちの特定のものが、感知入力値の他のものと比較して、より大きいまたはより小さい影響を及ぼすことができるように、重み付け係数を構成／調整することができる。
【０１１８】
いくつかの実施態様では、偏差関数を正規化／スケーリングするために、重み付け係数は合計すると所定値Ｐとなる。例えば、前述のようにＲｘが、ＴｘからのＳｘの最大可能偏差に等しい場合、いくつかの実施態様では、Ｐ＝１であり、これはＥの値を１にスケーリングする。
【０１１９】
Ｍは、目標入力集合に対するコントローラ感知入力の類似度または類似量を示す類似性インジケータであり、これはＥの関数として特定され、ＭはＥと逆相関関係にある。言い換えると、偏差Ｅが減少すると、類似度Ｍは増加する。例えば、いくつかの実施態様では、Ｍは以下のように表される。
【０１２０】
【数２】
0006982215.tif 000003
【０１２１】
ここでＥｍａｘは、Ｅの最大可能値である。Ｅｍａｘが１に正規化されている実施態様では、Ｍ＝１−Ｅである。
【０１２２】
前述のように、類似度Ｍが閾値レベルを超えると、仮想手は、所定の手ポーズを有するようにレンダリングされる。
【０１２３】
いくつかの実施態様では、目標入力に対するコントローラ感知入力の類似度は、閾値レベル未満の偏差に関して定義されることを、理解されたい。言い換えると、目標入力からのコントローラ感知入力の偏差が閾値量未満である時に、仮想手は、所定の手ポーズを有するようにレンダリングされる。
【０１２４】
上記は、目標入力値に対するコントローラ入力値の類似度を特定する方法の一例であり、限定ではなく例として提供される。他の実施態様では、値の集合の類似度を特定する様々な他の方法のうちのいずれかが適用され得る。さらに、手の各指に関して単一のコントローラ感知入力値が説明されたが、手の各指に関して任意の数のコントローラ感知入力値が存在してもよく、しかも、これらに対応する目標値が存在してもよいことを、理解されたい。
【０１２５】
上記は概して、仮想手が「切り替わる」ことができる単一の所定の手ポーズを参照して説明されたが、様々な実施態様では、ユーザの手ポーズが十分に所定の手ポーズに近い時（例えば閾値レベルを超える目標入力に対する感知入力の類似度により定義される）、仮想手がレンダリングされ得る所定の手ポーズは、任意の数存在してもよいことを、理解されたい。
【０１２６】
図８は、本開示の実施態様による、様々な可能な手ポーズを示す。手ポーズ８００では、親指が伸展し、一方残りの指は屈曲している／閉じている。いくつかの実施態様では、手ポーズ８００は、親指を立てるまたはヒッチハイクのポーズとして、使用または解釈され得る。手ポーズ８０２は、全ての指が伸展した開いた手であるが、人差し指、中指、薬指、小指は、互いに隣接して内転している。限定ではなく例として、手ポーズ８０２は、拍手するために使用され得る。手ポーズ８０４は、別の開いた手ポーズであるが、指は、離れて広がるように外転している。限定ではなく例として、手ポーズ８０４は、物体をつかむ、物体を捕らえる、またはじゃんけんで遊ぶために、使用され得る。
【０１２７】
手ポーズ８０６は、閉じた拳であり、限定ではなく例として、仮想空間内でパンチをするために使用され得る。手ポーズ８０８は、人差し指が伸展し、残りの指は概して屈曲している／閉じているポーズを提供する。手ポーズ８０８は、指を指す、数字の１を示す、仮想空間内の仮想オブジェクトを触るなどのために、使用され得る。
【０１２８】
手ポーズ８１０は、２本の指が伸展したポーズであり、数字の２、ピースサイン、幸せなどを示し得る。手ポーズ８１２は、３本の指が伸展したポーズである。手ポーズ８１４は、４本の指が伸展し、親指が折りたたまれたポーズである。
【０１２９】
手ポーズ８１６は、親指と小指が伸展し、残りの指が丸まっているポーズである。手ポーズ８１８は、人差し指と小指が伸展し、他の指が丸まっているポーズである。
【０１３０】
手ポーズ８２０は、親指と人差し指がつまむ形を成しているポーズである。手ポーズ８２２は、部分的に閉じた手であり、全ての指が丸まっているが、拳のようにしっかりと閉じていない。
【０１３１】
これらのポーズは、限定ではなく例として示され、説明されている。さらなる可能な所定手ポーズは任意の数存在し得、これに従って仮想手がレンダリングされ得ることを、理解されたい。
【０１３２】
いくつかの実施態様では、手ポーズは、手話の手ポーズを含み、仮想現実環境で手話を促進するために使用され得る。
【０１３３】
様々な実施態様では、本明細書で説明される所定の手ポーズを採用するシステムは、インタラクション（ビデオゲーム内など）のレベルまたはステージまたは環境状況、仮想空間で行うタスク、ユーザの手の位置、ユーザの手の配向、ユーザの手の動作（速度、軌道、配向変化などを含む）、認識されたユーザの手のジェスチャなどの状況要因を含む、仮想空間内のユーザのインタラクションの状況に応じて、所定の手ポーズのうちの異なる手ポーズを有効にするように構成され得る。任意のこのような要因を互いに組み合わせて適用して、レンダリングのために所与の所定手ポーズを有効にする場合が判定され得ることが、理解される。
【０１３４】
図９Ａは、本開示の実施態様による、ＨＭＤを通して見える仮想空間でインタラクションするユーザを示す。ユーザ１００は、例示の実施態様に示されるように、自分の右手７０２でコントローラデバイス１０４を操作し、対応する仮想手９０２は、ＨＭＤ１０２を通してレンダリングされる仮想空間の例示された図９００に示されるように、仮想空間でレンダリングされる。例示される実施態様では、ユーザ１００のアバターの前にドア９０４があるというインタラクション状況が示される。従って、この状況に基づいて、ドア９０４のドアノブをつかむための所定の手ポーズが有効化され得、よって、コントローラデバイス１０４から受信したユーザ定義のコントローラ入力が目標入力に十分な程度一致する場合、仮想手９０２は、所定のつかむ手ポーズを有するようにレンダリングされる。
【０１３５】
別の実施態様では、所定のつかむ手ポーズは、コントローラデバイス１０４から受信したコントローラ入力から特定されるユーザの右手７０２の動作に基づいて、有効化される。例えば、ユーザの手７０２の動きが特定の速度未満である場合に、つかむ手ポーズを有効化するように、システムは構成され得る。
【０１３６】
例示される実施態様の上記の要因に基づいて所定のつかむ手ポーズが有効化される代わりに、別の実施態様では、所定の手ポーズは有効化されない。すなわち、例えば、位置状況（ドアの前のユーザ（アバター）の位置）、またはユーザの手の動作（例えば閾値速度未満の動作）に基づいて、所定の手ポーズは有効化されない。
【０１３７】
図９Ｂは、コントローラデバイス１０４を操作し、ＨＭＤ１０２を通して仮想空間を見ているが、異なる状況にあるユーザ１００を示す。ＨＭＤ１０２上でレンダリングされる仮想空間のビュー９１０により示されるように、パンチングバッグ９１４を含むようなインタラクション状況である。従って、このインタラクション状況に基づいて、拳の手ポーズが使用に有効化され得、よって、コントローラデバイス１０４からのコントローラ感知入力が目標入力と十分一致すると、例示の実施態様に示されるように、対応する仮想手９１２は拳としてレンダリングされる。
【０１３８】
いくつかの実施態様では、ユーザの手７０２の動作に基づいて、拳の手ポーズは有効化される。例えば、ユーザがパンチを繰り出す準備をしているように、自分の手を上げて引いている状態が検出され得る。この動きの認識により、拳の手ポーズを有効化する根拠が提供され得、よって、仮想手９１２は、前述のようにコントローラ入力に基づいて拳としてレンダリングされる。所定の拳ポーズはまた、例えば、恐らく所定閾値を超える速度でユーザの手が前に進む動作で認識されたように、パンチを繰り出す際に認識されたユーザの手の動きに応答して、有効化され得ることが、理解される。
【０１３９】
ビデオゲームを含むインタラクティブアプリケーションは、異なる所定の手ポーズを実施するように、及び異なる所定の手ポーズを異なるステージまたは他のインタラクティビティ状況で実施するように、構成できることが、理解される。従って、有効化される特定の手ポーズは、状況の変化に応じて、及びユーザの手、腕、及びアバターの動きといったユーザが開始したアクティビティに応じて、時間と共に変化し得る。
【０１４０】
例えば、ユーザがじゃんけんのゲームに参加する場合には、図８を参照して前述された開いた手ポーズ８０４、拳の手ポーズ８０６、及び２本指の手ポーズ８１０が選択され、使用のために有効化され得る。
【０１４１】
いくつかの実施態様では、ユーザが仮想空間内で仮想オブジェクトをつかもうとする場合には、開いた手ポーズ８０４が有効化され、一方、ユーザが平手でたたく動作または拍手の動作を行うなど、別の種類のアクティビティを試みていることが検出された場合には、開いた手ポーズ８０２が有効化される。この例では、ユーザによりコントローラデバイスを通して同じ感知入力が提供されるが、インタラクティビティ状況に応じて、異なる仮想手のレンダリングが生成される。
【０１４２】
図１０Ａは、本開示の実施態様による、仮想空間内のアバターを示す。例示される実施態様では、アバター１０００は、コントローラからの感知入力により制御される仮想手を有する。アバター１０００は、ボード１００２の前に立っており、ボード１００２上には、仮想手の指で絵を描くまたは色を塗ることができる。いくつかの実施態様では、描画／彩色に利用可能な色を制御するために、前腕１００４は回外し、手１００６は手のひら側が上を向き、そしてカラーインジケータボール１００８は、手１００６の手のひらの中にレンダリングされる。いくつかの実施態様では、手１００６の指でボール１００８に触れることにより、描画に利用できる色を調整／変更／制御することが可能である。例えば、人差し指、中指、薬指、または小指でカラーインジケータボール１００８に触れると、赤、緑、または青などの色の相対量が増加し得、一方親指でカラーインジケータボール１００８に触れると、色の強度が減少し得る。
【０１４３】
図１０Ｂでは、前腕１００４は、図１０Ａに示される位置に対して若干回内し、仮想手１００６の手のひらは垂直方向に回転している。図１０Ｃでは、前腕１００４は、仮想手１００６の手のひらが垂直を超えて、かつ２つのイベントが起こる閾値を超えて回転するように、回内し続けている。まず、カラーインジケータボールがレンダリングされなくなる。次に、仮想手１００６の親指を仮想手１００６の手のひらに向けて内側に押し込む／折り畳む／屈曲させる仮想手１００６の所定の手ポーズが実施される。この所定の手ポーズは、仮想手１００６の親指は関与せずに、人差し指、中指、薬指、及び小指で色を塗れるように構成される。これは図１０Ｄでより明確に示され、前腕１００４はさらに回外し、手１００６の人差し指、中指、薬指、及び小指は、外向きに配置され、ボード１００２上に指で色を塗る準備ができている。
【０１４４】
図１１Ａ〜Ｅは、本開示の実施態様による、ユーザの手の異なる指の伸展量を経時的に示すグラフである。例示される伸展量は、前述のように、コントローラデバイス１０４上のセンサから特定され得る。各指の伸展は、０〜１０のスケールで示され、これは、本開示の原理を説明する目的で任意に選択された。概して、値０は所与の指の最小伸展を示し、一方、値１０は最大伸展を示す。
【０１４５】
図１１Ａに示されるように、親指の伸展は、時間Ｔ０における値６から、時間Ｔ１における値０に変化する。図１１Ｂに示されるように、人差し指の伸展は、時間Ｔ０における値３から、時間Ｔ１における値９に変化する。図１１Ｃに示されるように、中指の伸展は、時間Ｔ０における値６から、時間Ｔ１における値１．５に変化する。図１１Ｄに示されるように、薬指の伸展は、時間Ｔ０における値５から、時間Ｔ１における値１．７５に変化する。図１１Ｅに示されるように、小指の伸展は、時間Ｔ０における値４から、時間Ｔ１における値１に変化する。
【０１４６】
時間Ｔ１の前に、対応する仮想手の指は、ユーザの指の伸展の変化（例えばコントローラデバイス１０４のセンサにより検出された変化）に応答して、自由に操作可能であり得る。しかし、時間Ｔ１にて、仮想手のレンダリングは、所定の手ポーズに「切り替わり」得る、すなわち同化し得る。限定ではなく例として、例示される実施態様では、所定の手ポーズは、図８で示される手ポーズ８０８であり得、恐らく指を指す、数字の１を示す、仮想空間内の仮想オブジェクトまたは他のレンダリングされたアイテムに触れるなどの目的で、人差し指が完全に伸展し、残りの指が屈曲している。
【０１４７】
時間Ｔ１での所定の手ポーズへの変形は、ユーザの手のポーズが、所定の手のポーズへの特定レベルの同化に達することから、起こり得る。いくつかの実施態様では、これは、それぞれの指の伸展値が同時にそれぞれの所定範囲に入ることを、必要とし得る。いくつかの実施態様では、これは、指の伸展値が目標伸展値集合との類似レベルの閾値に達することを、必要とし得る。本実施態様における伸展値の使用は、ユーザの指の姿勢の測定の一例であることを、理解されたい。概念を一般化すると、本開示の実施態様では、所定の手ポーズへの変形は、ユーザの指の測定された姿勢により引き起こされ得、例えば、所定範囲に入るまたは所定目標値との類似レベルの閾値に達するセンサデータ値、またはセンサデータから処理された値により定義され得る。
【０１４８】
図１２は、本開示の実施態様による、目標手ポーズに対するユーザの手ポーズの類似度を経時的に示すグラフである。例示される実施態様では、ポーズ類似度は、時間と共に変化する。ポーズ類似度が閾値レベルに達すると、仮想空間内の対応する仮想手のポーズは、所定の手ポーズを有するようにレンダリングされ、実質的には所定の手ポーズに「切り替わる」。これらの期間は、期間Ｐ１、Ｐ２、及びＰ３として示される。一方、期間Ｆ１、Ｆ２、及びＦ３と示されるポーズ類似度が閾値を超えない期間中は、仮想手のレンダリングは、所定の手ポーズに同化せず、代わりに、ユーザの手の指の姿勢に従ってリアルタイムに応答的にレンダリングされる。期間Ｐ１、Ｐ２、及びＰ３の間は、類似レベルが閾値を上回ったままであるため、ユーザの指の姿勢に変化があっても、仮想手のポーズに変化は生じない。しかし、期間Ｆ１、Ｆ２、及びＦ３の間は、ユーザの指の姿勢のいかなる変化も即座に、仮想空間内の仮想手の対応する指の姿勢の変化として、リアルタイムにレンダリングされる。
【０１４９】
図１３Ａ−１及び図１３Ａ−２は、本開示の実施態様による、ヘッドマウントディスプレイ（ＨＭＤ）を示す。図１３Ａ−１は特に、本開示の実施態様による、ＨＭＤの一例であるＰｌａｙＳｔａｔｉｏｎ（登録商標）ＶＲヘッドセットを示す。示されるように、ＨＭＤ１０２は、複数の光源１３００Ａ〜Ｈを含む。これらの光源のそれぞれは、特定の形状を有するように構成されてもよく、同一または異なる色を有するように構成することができる。光源１３００Ａ、１３００Ｂ、１３００Ｃ、及び１３００Ｄは、ＨＭＤ１０２の前面に配置される。光源１３００Ｅ及び１３００Ｆは、ＨＭＤ１０２の側面に配置される。そして光源１３００Ｇ及び１３００Ｈは、ＨＭＤ１０２の前面及び側面にまたがるように、ＨＭＤ１０２の角に配置される。ユーザがＨＭＤ１０２を使用するインタラクティブ環境の取り込み画像において、光源は特定され得ることが理解される。光源の特定及び追跡に基づいて、インタラクティブ環境内のＨＭＤ１０２の位置及び配向が特定され得る。光源のうちのいくつかは、画像取り込みデバイスに対するＨＭＤ１０２の特定の配向によっては、視覚的に取り込み可能または不可能であることが、さらに理解される。また、画像取り込みデバイスに対するＨＭＤ１０２の配向によっては、光源の別の部分（例えば光源１３００Ｇ及び１３００Ｈ）が、画像取り込みにさらされ得る。
【０１５０】
一実施態様では、光源は、周りにいる他の人に対し、ＨＭＤの現行状態を示すように構成され得る。例えば、光源の一部または全ては、特定の配色、強度案配を有するように構成され、点滅し、特定のオン／オフ構成またはＨＭＤ１０２の現行状態を示す他の配置を有するように構成され得る。例として、光源は、ビデオゲームの活動的ゲームプレイ（一般に活動的タイムライン中にまたはゲームシーン内で起こるゲームプレイ）中には、メニューインタフェースの閲覧またはゲーム設定の実施（その間ゲームタイムラインまたはゲームシーンは停止または一時停止され得る）などのビデオゲームの他の非活動的ゲームプレイ態様とは、異なる設定を表すように構成され得る。光源はまた、ゲームプレイの相対激度レベルを示すように構成され得る。例えば、ゲームプレイの激しさが高まると、光源の強度、または点滅速度が高まり得る。このようにして、ユーザの周りにいる人は、ＨＭＤ１０２上の光源を見て、ユーザが激しいゲームプレイに活発に参加していて、今は邪魔されたくないであろうと、理解し得る。
【０１５１】
ＨＭＤ１０２はさらに、１つ以上のマイクロホンを含み得る。例示される実施態様では、ＨＭＤ１０２は、ＨＭＤ１０２の前面に画定されたマイクロホン１３０４Ａ及び１３０４Ｂと、ＨＭＤ１０２の側面に画定されたマイクロホン１３０４Ｃとを含む。マイクロホンアレイを利用して、マイクロホンのそれぞれからの音が、音源の位置を特定するように処理され得る。この情報は、不要な音源の除外、音源と視覚的識別との関連付けなどを含む様々な方法で利用され得る。
【０１５２】
ＨＭＤ１０２はまた、１つ以上の画像取り込みデバイスを含み得る。例示される実施態様では、画像取り込みデバイス１３０２Ａ及び１３０２Ｂを含むＨＭＤ１０２が示される。立体視用画像取り込みデバイスペアを利用して、ＨＭＤ１０２の観点から、環境の三次元（３Ｄ）画像及び映像が取り込まれ得る。このような映像はユーザに提示され、ＨＭＤ１０２を装着している間、「ビデオシースルー」能力がユーザに提供され得る。すなわち、厳密に言うとユーザはＨＭＤ１０２を通して外部を見ることはできないが、それにもかかわらず、画像取り込みデバイス１３０２Ａ及び１３０２Ｂ（または例えば、ＨＭＤ１０２の外側本体上に配置された１つ以上の外向き（例えば正面向き）カメラ）により取り込まれる映像により、ＨＭＤ１０２を通して見ているかのようにＨＭＤ１０２の外部の環境を見ることができるに等しい機能が提供され得る。このような映像は、拡張現実体験を提供するために仮想要素で拡張することができる、あるいは別の方法で仮想要素と組み合わされ得る、または融合され得る。例示される実施態様では、２つのカメラがＨＭＤ１０２の前面に示されるが、ＨＭＤ１０２上に設置され任意の方向に配向された外向きカメラは、任意の数存在してもよいことが、理解される。例えば、別の実施態様では、環境のさらなるパノラマ画像取り込みを提供するために、ＨＭＤ１０２の側面に搭載されたカメラが存在し得る。さらに、いくつかの実施態様では、このような外向きカメラを使用して、他の周辺デバイス（例えばコントローラなど）が追跡され得る。すなわち、ＨＭＤ上のこのような外向きカメラからの取り込み画像において、ＨＭＤに対する周辺デバイスの位置／配向が特定され追跡され得、次いで、ローカル環境内のＨＭＤの既知の位置／配向を使用して、周辺デバイスの実際の位置／配向が特定され得る。
【０１５３】
図１３Ｂは、ＨＭＤ１０２のユーザ１００が、クライアントシステム１０６とインタフェースし、クライアントシステム１０６が、第２の画面１３０７と称される第２の画面ディスプレイにコンテンツを提供する一例を示す。クライアントシステム１０６は、ＨＭＤ１０２から第２の画面１３０７へのコンテンツ共有を処理するための集積電子装置を含み得る。別の実施態様は、クライアントシステムと、ＨＭＤ１０２及び第２の画面１３０７のそれぞれとの間をインタフェースする別個のデバイス、モジュール、コネクタを含み得る。この一般的な例では、ユーザ１００は、ＨＭＤ１０２を装着し、インタフェースオブジェクト１０４でもあり得るコントローラを使用してビデオゲームをプレイしている。ユーザ１００によるインタラクティブなプレイにより、ビデオゲームコンテンツ（ＶＧＣ）が生成され、ＨＭＤ１０２にインタラクティブに表示される。
【０１５４】
一実施態様では、ＨＭＤ１０２に表示されているコンテンツは、第２の画面１３０７に共有される。一例では、第２の画面１３０７を見ている人は、ユーザ１００がＨＭＤ１０２でインタラクティブにプレイしているコンテンツを見ることができる。別の実施態様では、別のユーザ（例えばプレーヤ２）がクライアントシステム１０６とインタラクションを行い、第２の画面コンテンツ（ＳＳＣ）が生成され得る。コントローラ１０４と同様にインタラクションを行うプレーヤ（または任意の種類のユーザインタフェース、ジェスチャ、発声、または入力）により生成される第２の画面コンテンツは、クライアントシステム１０６へのＳＳＣとして生成され得、これは、ＨＭＤ１０２から受信されるＶＧＣと共に、第２の画面１３０７上に表示され得る。
【０１５５】
従って、ＨＭＤユーザと同じ場所または離れた場所に存在し得る他のユーザによるインタラクティビティは、ＨＭＤユーザ、及び第２の画面１３０７上でＨＭＤユーザがプレイするコンテンツを見ることができるユーザの両者にとって、ソーシャルで、インタラクティブで、さらに没入感があり得る。例示されるように、クライアントシステム１０６は、インターネット１３１０に接続され得る。インターネットは、様々なコンテンツソース１３２０からのコンテンツへのアクセスも、クライアントシステム１０６に提供し得る。コンテンツソース１３２０は、インターネットを介してアクセス可能な任意の種類のコンテンツを含み得る。
【０１５６】
このようなコンテンツは、映像コンテンツ、動画コンテンツ、ストリーミングコンテンツ、ソーシャルメディアコンテンツ、ニュースコンテンツ、友人コンテンツ、広告コンテンツなどを含み得るが、これらに限定されない。一実施態様では、ゲームプレイ中にインタラクティビティに対応付けられたマルチメディアコンテンツをＨＭＤに提供するように、クライアントシステム１０６を使用して、ＨＭＤユーザ用のコンテンツを同時に処理することができる。次いで、クライアントシステム１０６は、ビデオゲームコンテンツとは無関係であり得る他のコンテンツも、第２の画面に提供することができる。クライアントシステム１０６は、一実施態様では、コンテンツソース１３２０のうちの１つから、またはローカルユーザもしくはリモートユーザから、第２の画面のコンテンツを受信し得る。
【０１５７】
図１４は、本開示の一実施態様による、実行中のビデオゲームまたは他のアプリケーションと連動するＨＭＤ１０２の機能を概念的に示す。実行中のビデオゲーム／アプリケーションは、入力を受信してビデオゲーム／アプリケーションのゲーム／アプリケーション状態を更新するゲーム／アプリケーションエンジン１４２０により定義される。ビデオゲームのゲーム状態は、オブジェクトの存在及び位置、仮想環境の状況、イベントのトリガ、ユーザプロファイル、ビューの観点など、現行のゲームプレイの様々な態様を定義するビデオゲームの様々なパラメータの値により、少なくとも部分的に定義され得る。
【０１５８】
例示される実施態様では、ゲームエンジンは、例として、コントローラ入力１４１４、音声入力１４１６、及び動作入力１４１８を受信する。コントローラ入力１４１４は、ハンドヘルドゲームコントローラ（例えばＳｏｎｙ  ＤＵＡＬＳＨＯＣＫ（登録商標）４ワイヤレスコントローラ、Ｓｏｎｙ  ＰｌａｙＳｔａｔｉｏｎ（登録商標）Ｍｏｖｅモーションコントローラ）、または方向指示インタフェースオブジェクト１０４など、ＨＭＤ１０２とは別個のゲームコントローラの操作から定義され得る。例として、コントローラ入力１４１４には、方向指示入力、ボタン押下、トリガ起動、動き、ジェスチャ、またはゲームコントローラの操作から処理される他の種類の入力が、含まれ得る。いくつかの実施態様では、ゲームコントローラの動きは、ＨＭＤ１０２に対するゲームコントローラの位置／配向を提供するＨＭＤ１０２の外向きカメラ１４１１を通して、追跡される。音声入力１４１６は、ＨＭＤ１０２のマイクロホン１４０２から、または画像取り込みデバイス１４１３もしくはローカル環境内の他の場所に含まれるマイクロホンから、処理され得る。動作入力１４１８は、ＨＭＤ１０２に含まれる動作センサ１４００から、及び／またはＨＭＤ１０２の画像を取り込む画像取り込みデバイス１４１３から、及び／またはＨＭＤ１０２の外向きカメラ１４１１から、処理され得る。ゲームエンジン１４２０は、ゲームエンジンの構成に従って処理された入力を受信し、ビデオゲームのゲーム状態を更新する。ゲームエンジン１４２０は、様々なレンダリングモジュールにゲーム状態データを出力し、様々なレンダリングモジュールは、ゲーム状態データを処理して、ユーザに提示するコンテンツを定義する。
【０１５９】
例示される実施態様では、映像レンダリングモジュール１４２２は、ＨＭＤ１０２上で提示する映像ストリームをレンダリングするように定義される。映像ストリームは、ディスプレイ／プロジェクタ機構１４１０により提示され、光学素子１４０８を通してユーザの目１４０６により見られ得る。音声レンダリングモジュール１４２４は、ユーザが聴く音声ストリームをレンダリングするように構成される。一実施態様では、音声ストリームは、ＨＭＤ１０２に対応付けられたスピーカ１４０４を通して出力される。スピーカ１４０４は、オープンエア型スピーカ、ヘッドホン、または音声提供可能な任意の他の種類のスピーカの形態を取り得ることを、理解されたい。
【０１６０】
一実施態様では、ユーザの視線の追跡を可能にするために、視線追跡カメラ１４１２がＨＭＤ１０２に含まれる。視線追跡カメラは、ユーザの目の画像を取り込み、取り込まれた画像は、ユーザの視線方向を特定するために分析される。一実施態様では、ユーザの視線方向に関する情報を利用して、映像レンダリングに影響が与えられ得る。例えば、ユーザの目が特定の方向を見ていると判定されると、ユーザが見ている領域にさらなる詳細またはより早い更新を提供することなどにより、その方向の映像レンダリングが優先され得る、または強調され得る。ユーザの視線方向は、ヘッドマウントディスプレイに相対して、ユーザが存在する現実環境に相対して、及び／またはヘッドマウントディスプレイ上でレンダリングされている仮想環境に相対して、定義され得ることを理解されたい。
【０１６１】
概して、視線追跡カメラ１４１２により取り込まれた画像の分析は、単独で検討する場合、ＨＭＤ１０２に対するユーザの視線方向を提供する。しかし、ＨＭＤ１０２の追跡された位置及び配向と組み合わせて検討する場合、ＨＭＤ１０２の位置及び配向は、ユーザの頭部の位置及び配向と同義であることから、ユーザの現実世界の視線方向が特定され得る。すなわち、ユーザの現実世界の視線方向は、ユーザの目の位置移動の追跡、並びにＨＭＤ１０２の位置及び配向の追跡から、特定され得る。仮想環境のビューがＨＭＤ１０２上にレンダリングされると、仮想環境におけるユーザの仮想世界の視線方向を特定するために、ユーザの現実世界の視線方向が適用され得る。
【０１６２】
さらに、触覚フィードバックモジュール１４２６は、ＨＭＤ１０２、またはインタフェースオブジェクト１０４などのユーザが操作する別のデバイスのいずれかに含まれる触覚フィードバックハードウェアに対し、信号を提供するように構成される。触覚フィードバックは、振動フィードバック、温度フィードバック、圧力フィードバックなど、様々な種類の触感覚の形態を取り得る。インタフェースオブジェクト１０４は、このような形態の触覚フィードバックをレンダリングする対応ハードウェアを含み得る。
【０１６３】
図１５を参照すると、本開示の一実施態様による、ヘッドマウントディスプレイ１０２の構成要素を例示する図が示される。ヘッドマウントディスプレイ１０２は、プログラム命令を実行するプロセッサ１５００を含む。メモリ１５０２は、記憶目的で提供され、揮発性及び不揮発性メモリの両方を含み得る。ユーザが見得る視覚インタフェースを提供するディスプレイ１５０４が含まれる。バッテリ１５０６は、ヘッドマウントディスプレイ１０２の電源として提供される。動作検出モジュール１５０８は、磁力計１５１０、加速度計１５１２、及びジャイロスコープ１５１４などの様々な種類の動作感知ハードウェアのうちのいずれかを含み得る。
【０１６４】
加速度計は、加速及び重力誘起反力を測定するデバイスである。様々な方向の加速の大きさ及び方向を検出するために、単一軸モデル及び複数軸モデルが利用可能である。加速度計を使用して、傾き、振動、及び衝撃が感知される。一実施態様では、３つの加速度計１５１２を使用して重力の方向が提供され、これは２つの角（世界空間ピッチ及び世界空間ロール）の絶対基準を与える。
【０１６５】
磁力計は、ヘッドマウントディスプレイ付近の磁場の強度及び方向を測定する。一実施態様では、３つの磁力計１５１０がヘッドマウントディスプレイ内で使用され、世界空間ヨー角の絶対基準を確保する。一実施態様では、磁力計は、±８０マイクロステラの地磁場範囲を有するように設計される。磁力計は、金属の影響を受けるが、実際のヨーによる単調なヨー測定を提供する。磁場は環境内の金属により歪むことがあり、これによりヨー測定に歪みが生じる。必要に応じて、この歪みは、ジャイロスコープまたはカメラなどの他のセンサからの情報を用いて、較正することができる。一実施態様では、加速度計１５１２を磁力計１５１０と共に使用して、ヘッドマウントディスプレイ１０２の傾き及び方位が取得される。
【０１６６】
いくつかの実施態様では、ヘッドマウントディスプレイの磁力計は、他の近くのデバイス内の電磁石が作動していない時に読み出されるように構成される。
【０１６７】
ジャイロスコープは、角運動量の原理に基づいて、配向を測定または維持するためのデバイスである。一実施態様では、３つのジャイロスコープ１５１４が、慣性感知に基づいて、それぞれの軸（ｘ、ｙ、及びｚ）にわたる動きに関する情報を提供する。ジャイロスコープは、高速回転の検出に役立つ。しかし、ジャイロスコープは、絶対基準が存在しないと、時間と共に浮動し得る。このため、定期的にジャイロスコープを再設定する必要があり、再設定は、オブジェクトの視覚追跡、加速度計、磁力計などに基づく位置／配向特定といった、他の利用可能な情報を用いて行われ得る。
【０１６８】
実環境の画像及び画像ストリームを取り込むために、カメラ１５１６が提供される。後面カメラ（ユーザがヘッドマウントディスプレイ１０２のディスプレイを見ている時にユーザから離れる方向を向くカメラ）と、前面カメラ（ユーザがヘッドマウントディスプレイ１０２のディスプレイを見ている時にユーザ側を向くカメラ）とを含む複数のカメラが、ヘッドマウントディスプレイ１０２に含まれ得る。さらに、実環境内のオブジェクトの深度情報を感知するために、深度カメラ１５１８がヘッドマウントディスプレイ１０２に含まれ得る。
【０１６９】
ヘッドマウントディスプレイ１０２は、音声出力を提供するスピーカ１５２０を含む。また、周辺環境からの音、ユーザによる発言などを含む実環境からの音声を取り込むために、マイクロホン１５２２が含まれ得る。ヘッドマウントディスプレイ１０２は、ユーザに触覚フィードバックを提供する触覚フィードバックモジュール１５２４を含む。一実施態様では、触覚フィードバックモジュール１５２４は、ユーザに触覚フィードバックを提供するために、ヘッドマウントディスプレイ１０２の動き及び／または振動を引き起こすことが可能である。
【０１７０】
ＬＥＤ１５２６は、ヘッドマウントディスプレイ１０２の状態の視覚的インジケータとして提供される。例えば、ＬＥＤは、バッテリレベル、電源オン状態などを示し得る。ヘッドマウントディスプレイ１０２がメモリカードからの情報を読み出し、メモリカードに情報を書き込むことを可能にするために、カードリーダ１５２８が提供される。周辺デバイスの接続、または他のポータブルデバイス、コンピュータなどの他のデバイスへの接続を可能にするインタフェースの一例として、ＵＳＢインタフェース１５３０が含まれる。ヘッドマウントディスプレイ１０２の様々な実施態様では、ヘッドマウントディスプレイ１０２のより良い接続性を可能にするために、様々な種類のインタフェースのうちのいずれかが含まれ得る。
【０１７１】
無線ネットワーク技術を介してインターネットまたはローカルエリアネットワークへの接続を可能にするために、ＷｉＦｉ（登録商標）モジュール１５３２が含まれる。また、他のデバイスへの無線接続を可能にするために、ヘッドマウントディスプレイ１０２は、ブルートゥース（登録商標）モジュール１５３４を含む。他のデバイスへの接続のために、通信リンク１５３６も含まれ得る。一実施態様では、通信リンク１５３６は、無線通信に赤外線伝送を利用する。別の実施態様では、通信リンク１５３６は、他のデバイスと通信するために、様々な無線または有線伝送プロトコルのうちのいずれかを利用し得る。
【０１７２】
ユーザに入力インタフェースを提供するために、入力ボタン／センサ１５３８が含まれる。ボタン、タッチパッド、ジョイスティック、トラックボールなどの様々な種類の入力インタフェースのうちのいずれかが含まれ得る。超音波技術を介した他のデバイスとの通信を促進するために、超音波通信モジュール１５４０が、ヘッドマウントディスプレイ１０２に含まれ得る。
【０１７３】
ユーザからの生理学的データの検出を可能にするために、生体センサ１５４２が含まれる。一実施態様では、生体センサ１５４２は、ユーザの皮膚を通してユーザの生体電気信号を検出する１つ以上の乾電極を含む。
【０１７４】
映像入力１５４４は、ＨＭＤ上のレンダリングのために、１次処理コンピュータ（例えば主要ゲーム機）からの映像信号を受信するように構成される。いくつかの実施態様では、映像入力はＨＤＭＩ（登録商標）入力である。
【０１７５】
ヘッドマウントディスプレイ１０２の前述の構成要素は、ヘッドマウントディスプレイ１０２に含まれ得る単なる例示的な構成要素として説明されている。本開示の様々な実施態様では、ヘッドマウントディスプレイ１０２は、前述の様々な構成要素のうちのいくつかを含んでもよく、含まなくてもよい。本明細書において説明される本開示の態様を簡易にするために、ここでは記述されていないが当技術分野では既知の他の構成要素が、ヘッドマウントディスプレイ１０２の実施態様に、さらに含まれ得る。
【０１７６】
図１６は、本開示の様々な実施態様による、ゲームシステム１６００のブロック図である。ゲームシステム１６００は、１つ以上のクライアント１６１０に対し、ネットワーク１６１５を介して映像ストリームを提供するように構成される。ゲームシステム１６００は通常、映像サーバシステム１６２０と、任意のゲームサーバ１６２５とを含む。映像サーバシステム１６２０は、１つ以上のクライアント１６１０に対し、最低限のサービス品質の映像ストリームを提供するように構成される。例えば、映像サーバシステム１６２０は、ビデオゲームの状態またはビデオゲーム内の視点を変更するゲームコマンドを受信し、この状態変更を反映した更新済映像ストリームを、最小の遅延時間でクライアント１６１０に提供し得る。映像サーバシステム１６２０は、映像ストリームを、まだ定義されていないフォーマットを含む多種多様な代替的映像フォーマットで提供するように構成され得る。さらに、映像ストリームは、多種多様なフレームレートでユーザに提示されるように構成された映像フレームを含み得る。通常のフレームレートは、毎秒３０フレーム、毎秒６０フレーム、及び毎秒１２０フレームである。しかし、本開示の代替的な実施態様には、より高いまたはより低いフレームレートが含まれる。
【０１７７】
本明細書で個別に１６１０Ａ、１６１０Ｂなどと称されるクライアント１６１０には、ヘッドマウントディスプレイ、端末、パーソナルコンピュータ、ゲーム機、タブレットコンピュータ、電話、セットトップボックス、キオスク、無線デバイス、デジタルパッド、スタンドアロンデバイス、及び／またはハンドヘルドゲームプレイデバイスなどが含まれ得る。通常、クライアント１６１０は、符号化された映像ストリームを受信し、映像ストリームを復号化し、結果得られる映像をユーザ、例えばゲームのプレーヤに提示するように構成される。符号化された映像ストリームを受信する及び／または映像ストリームを復号化するプロセスは通常、クライアントの受信バッファに個々の映像フレームを記憶することを含む。映像ストリームは、クライアント１６１０に統合されたディスプレイ上、またはモニタもしくはテレビなどの別個のデバイス上で、ユーザに提示され得る。クライアント１６１０は任意で、複数のゲームプレーヤを支援するように構成される。例えば、ゲーム機は、２人、３人、４人以上の同時プレーヤを支援するように構成され得る。これらのプレーヤのそれぞれは、別個の映像ストリームを受信し得る、または単一の映像ストリームは、各プレーヤのために特別に生成された、例えば各プレーヤの視点に基づいて生成されたフレームの領域を含み得る。クライアント１６１０は、任意で地理的に分散される。ゲームシステム１６００に含まれるクライアントの数は、１つまたは２つから、数千、数万以上まで、大幅に異なり得る。本明細書で使用される用語「ゲームプレーヤ」は、ゲームをプレイする人を指すために用いられ、用語「ゲームプレイデバイス」は、ゲームをプレイするために使用するデバイスを指すために用いられる。いくつかの実施態様では、ゲームプレイデバイスは、ユーザにゲーム体験を届けるために協働する複数のコンピューティングデバイスを指し得る。例えば、ゲーム機及びＨＭＤは、映像サーバシステム１６２０と協働して、ＨＭＤを通して見るゲームを配信し得る。一実施態様では、ゲーム機は、映像サーバシステム１６２０から映像ストリームを受信し、ゲーム機は、映像ストリームまたは映像ストリームへの更新を、レンダリングのためにＨＭＤへ転送する。
【０１７８】
クライアント１６１０は、ネットワーク１６１５を介して映像ストリームを受信するように構成される。ネットワーク１６１５は、電話ネットワーク、インターネット、無線ネットワーク、電力線ネットワーク、ローカルエリアネットワーク、広域ネットワーク、及び／またはプライベートネットワークなどを含む任意の種類の通信ネットワークであり得る。典型的な実施態様では、映像ストリームは、ＴＣＰ／ＩＰまたはＵＤＰ／ＩＰなどの標準プロトコルを介して通信される。あるいは、映像ストリームは、独自の規格を介して通信される。
【０１７９】
クライアント１６１０の典型的な例には、プロセッサと、不揮発性メモリと、ディスプレイと、復号化ロジックと、ネットワーク通信能力と、入力デバイスとを備えるパーソナルコンピュータが挙げられる。復号化ロジックには、コンピュータ可読媒体に格納されたハードウェア、ファームウェア、及び／またはソフトウェアが含まれ得る。映像ストリームを復号化（及び符号化）するシステムは、当技術分野で周知のものであり、使用される特定の符号化スキームに応じて異なる。
【０１８０】
クライアント１６１０は、必須ではないが、受信した映像を修正するように構成されたシステムを、さらに含み得る。例えば、クライアントは、１つの映像の別の映像へのオーバーレイ、及び／または映像の切り取りなどを行うため、さらなるレンダリングを実行するように構成され得る。例えば、クライアント１６１０は、Ｉフレーム、Ｐフレーム、及びＢフレームなどの様々な種類の映像フレームを受信し、これらのフレームを処理して、ユーザに表示するための画像にするように構成され得る。いくつかの実施態様では、クライアント１６１０の構成員は、映像ストリームに対し、さらなるレンダリング、シェーディング、または３Ｄ変換などの動作を行うように構成される。クライアント１６１０の構成員は任意で、複数の音声ストリームまたは映像ストリームを受信するように構成される。クライアント１６１０の入力デバイスには、例えば、片手用ゲームコントローラ、両手用ゲームコントローラ、ジェスチャ認識システム、視線認識システム、音声認識システム、キーボード、ジョイスティック、ポインティングデバイス、力フィードバックデバイス、動作及び／または位置感知デバイス、マウス、タッチスクリーン、神経インタフェース、カメラ、並びに／あるいは開発中の入力デバイスなどが、含まれ得る。
【０１８１】
クライアント１６１０が受信する映像ストリーム（及び任意で音声ストリーム）は、映像サーバシステム１６２０により生成及び提供される。本明細書の別の箇所でさらに説明されるように、この映像ストリームは、映像フレームを含む（及び音声ストリームは音声フレームを含む）。映像フレームは、ユーザに表示する画像に有意義に寄与するように構成される（例えば映像フレームは、好適なデータ構造の画素情報を含む）。本明細書において使用される用語「映像フレーム」は、ユーザに示される画像に寄与する、例えば作用するように構成された情報を主に含むフレームを指すために使用される。「映像フレーム」に関する本明細書の教示のほとんどは、「音声フレーム」にも適用することができる。
【０１８２】
クライアント１６１０は通常、ユーザからの入力を受信するように構成される。これらの入力は、ビデオゲームの状態を変更する、あるいはゲームプレイに作用するように構成されたゲームコマンドを含み得る。ゲームコマンドは、入力デバイスを用いて受信することができ、及び／またはクライアント１６１０上で実行されるコンピューティング命令により自動的に生成され得る。受信されたゲームコマンドは、ネットワーク１６１５を介してクライアント１６１０から、映像サーバシステム１６２０及び／またはゲームサーバ１６２５へ通信される。例えば、いくつかの実施態様では、ゲームコマンドは、映像サーバシステム１６２０を介してゲームサーバ１６２５へ通信される。いくつかの実施態様では、クライアント１６１０から、ゲームコマンドの別個の複製が、ゲームサーバ１６２５及び映像サーバシステム１６２０へ通信される。ゲームコマンドの通信は、任意でコマンドの識別に依存する。ゲームコマンドは任意で、クライアント１６１０Ａに音声ストリームまたは映像ストリームを提供するために使用される経路または通信チャネルとは異なる経路または通信チャネルを通して、クライアント１６１０Ａから通信される。
【０１８３】
ゲームサーバ１６２５は任意で、映像サーバシステム１６２０とは異なるエンティティにより運用される。例えば、ゲームサーバ１６２５は、マルチプレーヤゲームのパブリッシャーにより運用され得る。この例では、映像サーバシステム１６２０は、任意でゲームサーバ１６２５によりクライアントとして見られ、任意でゲームサーバ１６２５の観点から、従来技術のゲームエンジンを実行する従来技術のクライアントに見えるように構成される。映像サーバシステム１６２０とゲームサーバ１６２５との間の通信は、任意でネットワーク１６１５を介して行われる。よって、ゲームサーバ１６２５は、映像サーバシステム１６２０を含む複数のクライアントにゲーム状態情報を送信する従来技術のマルチプレーヤゲームサーバであり得る。映像サーバシステム１６２０は、ゲームサーバ１６２５の複数のインスタンスと同時に通信するように構成され得る。例えば、映像サーバシステム１６２０は、異なるユーザに複数の異なるビデオゲームを提供するように構成され得る。これらの異なるビデオゲームのそれぞれは、異なるゲームサーバ１６２５により支援され得る、及び／または異なるエンティティにより発行され得る。いくつかの実施態様では、映像サーバシステム１６２０のいくつかの地理的に分散されたインスタンスは、複数の異なるユーザにゲーム映像を提供するように構成される。映像サーバシステム１６２０のこれらのインスタンスのそれぞれは、ゲームサーバ１６２５の同じインスタンスと通信し得る。映像サーバシステム１６２０と１つ以上のゲームサーバ１６２５との間の通信は、任意で専用通信チャネルを介して行われる。例えば、映像サーバシステム１６２０は、ゲームサーバ１６２５に対し、これらの２つのシステム間の通信専用である高帯域幅チャネルを介して接続され得る。
【０１８４】
映像サーバシステム１６２０は少なくとも、映像源１６３０と、Ｉ／Ｏデバイス１６４５と、プロセッサ１６５０と、非一時的ストレージ１６５５とを備える。映像サーバシステム１６２０は、１つのコンピューティングデバイスを含み得る、または複数のコンピューティングデバイスに分散され得る。これらのコンピューティングデバイスは任意で、ローカルエリアネットワークなどの通信システムを介して接続される。
【０１８５】
映像源１６３０は、例えば動画を形成するストリーミング映像または一連の映像フレームといった映像ストリームを提供するように構成される。いくつかの実施態様では、映像源１６３０は、ビデオゲームエンジン及びレンダリングロジックを含む。ビデオゲームエンジンは、プレーヤからゲームコマンドを受信し、受信したコマンドに基づいてビデオゲームの状態の複製を保持するように構成される。このゲーム状態は、ゲーム環境内のオブジェクトの位置、並びに通常では視点を含む。ゲーム状態はまた、プロパティ、画像、色、及び／またはオブジェクトの質感も含み得る。ゲーム状態は通常、ゲーム規則、並びに移動、方向転換、攻撃、焦点の設定、インタラクション、及び／または使用などのゲームコマンドに基づいて、維持される。ゲームエンジンの一部は任意で、ゲームサーバ１６２５内に配置される。ゲームサーバ１６２５は、地理的分散クライアントを用いて複数のプレーヤから受信したゲームコマンドに基づいて、ゲームの状態の複製を保持し得る。これらの事例では、ゲーム状態はゲームサーバ１６２５により映像源１６３０に提供され、ゲーム状態の複製が記憶され、レンダリングが行われる。ゲームサーバ１６２５は、ネットワーク１６１５を介して直接クライアント１６１０からゲームコマンドを受信してもよく、及び／または映像サーバシステム１６２０を介してゲームコマンドを受信してもよい。
【０１８６】
映像源１６３０は通常、例えばストレージ１６５５などのコンピュータ可読媒体に格納されたハードウェア、ファームウェア、及び／またはソフトウェアといったレンダリングロジックを含む。このレンダリングロジックは、ゲーム状態に基づいて、映像ストリームの映像フレームを作成するように構成される。レンダリングロジックの全てまたは一部は任意で、グラフィック処理ユニット（ＧＰＵ）内に配置される。レンダリングロジックは通常、ゲーム状態及び視点に基づいて、オブジェクト間の３次元空間関係を特定するように、及び／または好適な質感などを適用するように構成された処理段階を含む。レンダリングロジックは、未加工映像を生成し、未加工映像は通常、クライアント１６１０へ通信する前に符号化される。例えば、未加工映像は、Ａｄｏｂｅ  Ｆｌａｓｈ（登録商標）規格、．ｗａｖ、Ｈ．２６４、Ｈ．２６３、Ｏｎ２、ＶＰ６、ＶＣ−１、ＷＭＡ、Ｈｕｆｆｙｕｖ、Ｌａｇａｒｉｔｈ、ＭＰＧ−ｘ．Ｘｖｉｄ．ＦＦｍｐｅｇ、ｘ２６４、ＶＰ６−８、ｒｅａｌｖｉｄｅｏ、またはｍｐ３などに従って、符号化され得る。符号化プロセスは、リモートデバイス上のデコーダに配信するために任意でパッケージ化された映像ストリームを生成する。映像ストリームは、フレームサイズ及びフレームレートにより特徴付けられる。典型的なフレームサイズには、８００×６００、１２８０×７２０（例えば７２０ｐ）、１０２４×７６８が含まれるが、任意の他のフレームサイズも使用されてもよい。フレームレートは、１秒あたりの映像フレームの数である。映像ストリームは、様々な種類の映像フレームを含み得る。例えば、Ｈ．２６４規格は、「Ｐ」フレーム及び「Ｉ」フレームを含む。Ｉフレームは、ディスプレイデバイス上の全てのマクロブロック／画素を更新する情報を含み、一方、Ｐフレームは、その部分集合を更新する情報を含む。Ｐフレームは通常、Ｉフレームよりデータサイズが小さい。本明細書において使用される用語「フレームサイズ」は、フレーム内の画素数を指すことを意味する。用語「フレームデータサイズ」は、フレームを記憶するのに必要なバイト数を指すために使用される。
【０１８７】
代替的な実施態様では、映像源１６３０は、カメラなどの映像記録デバイスを含む。このカメラを使用して、コンピュータゲームの映像ストリームに含めることができる遅延映像またはライブ映像が生成され得る。結果得られる映像ストリームには、レンダリングされた画像と、静止画カメラまたは動画カメラを使用して記録された画像との両方が任意で含まれる。映像源１６３０はまた、映像ストリームに含めるため事前に記録した映像を記憶するように構成されたストレージデバイスも含み得る。映像源１６３０はまた、例えば人といったオブジェクトの動作または位置を検出するように構成された動作または位置感知デバイスと、検出された動作及び／または位置に基づいてゲーム状態の特定または映像の生成を行うように構成されたロジックとを含み得る。
【０１８８】
映像源１６３０は任意で、他の映像上に配置されるように構成されたオーバーレイを提供するように構成される。例えば、これらのオーバーレイには、コマンドインタフェース、ログイン指示、ゲームプレーヤへのメッセージ、他のゲームプレーヤの画像、他のゲームプレーヤの映像配信（例えばウェブカメラ映像）が含まれ得る。タッチスクリーンインタフェースまたは視線検出インタフェースを含むクライアント１６１０Ａの実施態様では、オーバーレイには、仮想キーボード、ジョイスティック、及び／またはタッチパッドなどが含まれ得る。オーバーレイの一例では、プレーヤの声が音声ストリームにオーバーレイされる。映像源１６３０は任意で、１つ以上の音声源をさらに含む。
【０１８９】
映像サーバシステム１６２０が複数のプレーヤからの入力に基づいてゲーム状態を維持するように構成された実施態様では、ビューの位置及び方向を含む視点は、各プレーヤで異なり得る。映像源１６３０は任意で、各プレーヤの視点に基づいて、別個の映像ストリームを各プレーヤに提供するように構成される。さらに、映像源１６３０は、クライアント１６１０のそれぞれに、異なるフレームサイズ、フレームデータサイズ、及び／または符号化を提供するように構成され得る。映像源１６３０は任意で、３Ｄ映像を提供するように構成される。
【０１９０】
Ｉ／Ｏデバイス１６４５は、映像サーバシステム１６２０のために、映像、コマンド、情報要求、ゲーム状態、視線情報、デバイス動作、デバイス位置、ユーザ動作、クライアント識別、プレーヤ識別、ゲームコマンド、セキュリティ情報、及び／または音声などの情報を、送信及び／または受信するように構成される。Ｉ／Ｏデバイス１６４５は通常、ネットワークカードまたはモデムなどの通信ハードウェアを含む。Ｉ／Ｏデバイス１６４５は、ゲームサーバ１６２５、ネットワーク１６１５、及び／またはクライアント１６１０と通信するように構成される。
【０１９１】
プロセッサ１６５０は、本明細書で論述される映像サーバシステム１６２０の様々な構成要素内に含まれるロジック、例えばソフトウェアを実行するように構成される。例えば、プロセッサ１６５０は、映像源１６３０、ゲームサーバ１６２５、及び／またはクライアントクオリファイア１６６０の機能を実行するように、ソフトウェア命令でプログラムされ得る。映像サーバシステム１６２０は任意で、プロセッサ１６５０の複数のインスタンスを含む。プロセッサ１６５０はまた、映像サーバシステム１６２０が受信したコマンドを実行するように、または本明細書において論述されるゲームシステム１６００の様々な要素の動作を調整するように、ソフトウェア命令でプログラムされ得る。プロセッサ１６５０は、１つ以上のハードウェアデバイスを含み得る。プロセッサ１６５０は、電子プロセッサである。
【０１９２】
ストレージ１６５５は、非一時的アナログ及び／またはデジタルストレージデバイスを含む。例えば、ストレージ１６５５は、映像フレームを記憶するように構成されたアナログストレージデバイスを含み得る。ストレージ１６５５は、例えばハードドライブ、光学ドライブ、またはソリッドステートストレージといったコンピュータ可読デジタルストレージを含み得る。ストレージ１６５５は、映像フレーム、人工フレーム、映像フレームと人工フレームの両方を含む映像ストリーム、音声フレーム、及び／または音声ストリームなどを記憶するように構成される（例えば好適なデータ構造またはファイルシステムにより）。ストレージ１６５５は任意で、複数のデバイスに分散される。いくつかの実施態様では、ストレージ１６５５は、本明細書の別の箇所で論述される映像源１６３０のソフトウェア構成要素を格納するように構成される。これらの構成要素は、必要時にすぐに提供できる形式で格納され得る。
【０１９３】
映像サーバシステム１６２０は任意で、クライアントクオリファイア１６６０をさらに備える。クライアントクオリファイア１６６０は、クライアント１６１０Ａまたは１６１０Ｂなどのクライアントの能力をリモートで特定するように構成される。これらの能力には、クライアント１６１０Ａ自体の能力、並びにクライアント１６１０Ａと映像サーバシステム１６２０との間の１つ以上の通信チャネルの能力の両方が含まれ得る。例えば、クライアントクオリファイア１６６０は、ネットワーク１６１５を通して、通信チャネルをテストするように構成され得る。
【０１９４】
クライアントクオリファイア１６６０は、手動または自動で、クライアント１６１０Ａの能力を特定（例えば発見）し得る。手動特定は、クライアント１６１０Ａのユーザと通信して、ユーザに能力を提供するように依頼することを含む。例えば、いくつかの実施態様では、クライアントクオリファイア１６６０は、クライアント１６１０Ａのブラウザ内に画像及び／またはテキストなどを表示するように構成される。一実施態様では、クライアント１６１０Ａは、ブラウザを含むＨＭＤである。別の実施態様では、クライアント１６１０Ａは、ＨＭＤ上に表示され得るブラウザを有するゲーム機である。表示されるオブジェクトは、ユーザに、クライアント１６１０Ａのオペレーティングシステム、プロセッサ、映像デコーダの種類、ネットワーク接続の種類、ディスプレイの解像度などの情報を入力するように要求する。ユーザにより入力された情報は、クライアントクオリファイア１６６０へ返信される。
【０１９５】
自動特定は、例えば、クライアント１６１０Ａ上でエージェントを実行することにより、及び／またはクライアント１６１０Ａにテスト映像を送信することにより、行われ得る。エージェントは、ウェブページに埋め込まれた、またはアドオンとしてインストールされたジャバスクリプトなどのコンピューティング命令を備え得る。エージェントは任意で、クライアントクオリファイア１６６０により提供される。様々な実施態様では、エージェントは、クライアント１６１０Ａの処理能力、クライアント１６１０Ａの復号化及び表示能力、クライアント１６１０Ａと映像サーバシステム１６２０との間の通信チャネルの遅延時間信頼性及び帯域幅、クライアント１６１０Ａのディスプレイの種類、クライアント１６１０Ａ上に存在するファイアウォール、クライアント１６１０Ａのハードウェア、クライアント１６１０Ａ上で実行されるソフトウェア、及び／またはクライアント１６１０Ａ内のレジストリエントリなどを、見つけ出すことができる。
【０１９６】
クライアントクオリファイア１６６０は、コンピュータ可読媒体に格納されたハードウェア、ファームウェア、及び／またはソフトウェアを含む。クライアントクオリファイア１６６０は任意で、映像サーバシステム１６２０の他の１つ以上の要素とは別個のコンピューティングデバイス上に配置される。例えば、いくつかの実施態様では、クライアントクオリファイア１６６０は、クライアント１６１０と映像サーバシステム１６２０の複数のインスタンスとの間の通信チャネルの特性を特定するように構成される。これらの実施態様では、クライアントクオリファイアが発見した情報を使用して、クライアント１６１０のうちの１つにストリーミング映像を配信するのに最も好適な映像サーバシステム１６２０のインスタンスが特定され得る。
【０１９７】
本開示の実施態様は、ハンドヘルドデバイス、マイクロプロセッサシステム、マイクロプロセッサベースのもしくはプログラム可能な一般消費者向け電化製品、小型コンピュータ、及びメインフレームコンピュータなどを含む様々なコンピュータシステム構成により実施され得る。本開示はまた、有線ベースネットワークまたは無線ネットワークを通してリンクされるリモート処理デバイスによりタスクが行われる分散コンピューティング環境においても、実施することができる。
【０１９８】
前述の実施態様を念頭に、本開示は、コンピュータシステムに記憶されるデータを伴う様々なコンピュータ実施動作を使用し得ることを理解されたい。これらの動作は、物理量の物理的操作を要する動作である。本開示の一部を形成する、本明細書で説明される動作のいずれも、有用な機械動作である。本開示はまた、これらの動作を実行するためのデバイスまたは装置に関する。装置は、必要な目的のために特別に構築され得る、あるいは装置は、コンピュータに記憶されたコンピュータプログラムにより選択的に有効化または構成される汎用コンピュータであり得る。具体的には、様々な汎用機械を、本明細書の教示に従って書かれたコンピュータプログラムと共に使用することができる、あるいは、必要な動作を実行するためにさらに特化した装置を構築するほうがより便利であり得る。
【０１９９】
本開示はまた、コンピュータ可読媒体上のコンピュータ可読コードとしても具現化することができる。コンピュータ可読媒体は、後でコンピュータシステムにより読み出され得るデータを記憶可能な任意のデータストレージデバイスである。コンピュータ可読媒体の例には、ハードドライブ、ネットワーク接続ストレージ（ＮＡＳ）、読み出し専用メモリ、ランダムアクセスメモリ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、並びに他の光学及び非光学データストレージデバイスが挙げられる。コンピュータ可読媒体には、コンピュータ可読コードが分散方式で記憶及び実行されるように、ネットワーク接続されたコンピュータシステムにわたり分散されたコンピュータ可読有形媒体が含まれ得る。
【０２００】
方法動作は特定の順序で説明されたが、オーバーレイ動作の処理が所望のやり方で実行される限り、動作の合間に他の維持管理動作が実行されてもよく、または動作がわずかに異なる時間に起こるように調整されてもよく、またはシステム内に動作を分散することで、様々な処理関連間隔で処理動作が起こることを可能にしてもよいことを、理解されたい。
【０２０１】
前述の開示は、理解を明確にするためにある程度詳細に説明されたが、添付の特許請求の範囲内で特定の変更及び修正を実施できることは明らかである。従って、本実施態様は、限定ではなく例示としてみなされるべきであり、本開示は、本明細書において提供される詳細に限定されるべきではなく、本開示の範囲内及び均等物内で変更されてもよい。
【図１】
0006982215.tif 000004
【図２Ａ】
0006982215.tif 000005
【図２Ｂ】
0006982215.tif 000006
【図２Ｃ】
0006982215.tif 000007
【図２Ｄ】
0006982215.tif 000008
【図３Ａ】
0006982215.tif 000009
【図３Ｂ】
0006982215.tif 000010
【図４Ａ】
0006982215.tif 000011
【図４Ｂ】
0006982215.tif 000012
【図４Ｃ】
0006982215.tif 000013
【図５Ａ】
0006982215.tif 000014
【図５Ｂ】
0006982215.tif 000015
【図５Ｃ】
0006982215.tif 000016
【図６Ａ】
0006982215.tif 000017
【図６Ｂ】
0006982215.tif 000018
【図６Ｃ】
0006982215.tif 000019
【図７Ａ】
0006982215.tif 000020
【図７Ｂ】
0006982215.tif 000021
【図７Ｃ】
0006982215.tif 000022
【図８】
0006982215.tif 000023
【図９Ａ】
0006982215.tif 000024
【図９Ｂ】
0006982215.tif 000025
【図１０Ａ】
0006982215.tif 000026
【図１０Ｂ】
0006982215.tif 000027
【図１０Ｃ】
0006982215.tif 000028
【図１０Ｄ】
0006982215.tif 000029
【図１１Ａ】
0006982215.tif 000030
【図１１Ｂ】
0006982215.tif 000031
【図１１Ｃ】
0006982215.tif 000032
【図１１Ｄ】
0006982215.tif 000033
【図１１Ｅ】
0006982215.tif 000034
【図１２】
0006982215.tif 000035
【図１３Ａ−１】
0006982215.tif 000036
【図１３Ａ−２】
0006982215.tif 000037
【図１３Ｂ】
0006982215.tif 000038
【図１４】
0006982215.tif 000039
【図１５】
0006982215.tif 000040
【図１６】
0006982215.tif 000041