特許第6676213号(P6676213)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ グーグル インコーポレイテッドの特許一覧

特許6676213仮想現実ユーザインターフェイスのためのユーザの動きの範囲の検出
<>
  • 特許6676213-仮想現実ユーザインターフェイスのためのユーザの動きの範囲の検出 図000002
  • 特許6676213-仮想現実ユーザインターフェイスのためのユーザの動きの範囲の検出 図000003
  • 特許6676213-仮想現実ユーザインターフェイスのためのユーザの動きの範囲の検出 図000004
  • 特許6676213-仮想現実ユーザインターフェイスのためのユーザの動きの範囲の検出 図000005
  • 特許6676213-仮想現実ユーザインターフェイスのためのユーザの動きの範囲の検出 図000006
  • 特許6676213-仮想現実ユーザインターフェイスのためのユーザの動きの範囲の検出 図000007
  • 特許6676213-仮想現実ユーザインターフェイスのためのユーザの動きの範囲の検出 図000008
  • 特許6676213-仮想現実ユーザインターフェイスのためのユーザの動きの範囲の検出 図000009
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6676213
(24)【登録日】2020年3月13日
(45)【発行日】2020年4月8日
(54)【発明の名称】仮想現実ユーザインターフェイスのためのユーザの動きの範囲の検出
(51)【国際特許分類】
   G06F 3/01 20060101AFI20200330BHJP
【FI】
   G06F3/01 510
   G06F3/01 570
【請求項の数】17
【全頁数】27
(21)【出願番号】特願2019-503293(P2019-503293)
(86)(22)【出願日】2017年7月21日
(65)【公表番号】特表2019-521452(P2019-521452A)
(43)【公表日】2019年7月25日
(86)【国際出願番号】US2017043351
(87)【国際公開番号】WO2018017993
(87)【国際公開日】20180125
【審査請求日】2019年4月12日
(31)【優先権主張番号】62/365,526
(32)【優先日】2016年7月22日
(33)【優先権主張国】US
【早期審査対象出願】
(73)【特許権者】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
(74)【代理人】
【識別番号】110001195
【氏名又は名称】特許業務法人深見特許事務所
(72)【発明者】
【氏名】ファーボーグ,アレクサンダー・ジェイムズ
(72)【発明者】
【氏名】ドリム,スコット
(72)【発明者】
【氏名】クレメント,マニュエル・クリスチャン
【審査官】 菅原 浩二
(56)【参考文献】
【文献】 特表2013−533999(JP,A)
【文献】 国際公開第2014/188797(WO,A1)
【文献】 特開2011−039844(JP,A)
【文献】 特開平07−005978(JP,A)
【文献】 米国特許出願公開第2015/0254793(US,A1)
【文献】 特開2008−168133(JP,A)
【文献】 特開2004−258766(JP,A)
【文献】 特開2011−175623(JP,A)
【文献】 特開2016−048541(JP,A)
【文献】 特開2006−127158(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/01
(57)【特許請求の範囲】
【請求項1】
コンピュータによって実現される方法であって、
第2の電子デバイスに通信可能に結合される第1の電子デバイスで仮想環境を生成することと、
周囲環境において前記第2の電子デバイスの移動を追跡することと、
1つまたは複数のセンサを用いて、前記周囲環境において前記第2の電子デバイスの移動に関連付けられる動きの範囲を判断することと、
前記第2の電子デバイスの繰り返される動きが前記仮想環境との対話に失敗していると判断したことに応じて、前記周囲環境に関連付けられる前記動きの範囲を前記仮想環境に関連付けられる動きの範囲に相関させ、複数の仮想オブジェクトについて、前記周囲環境に関連付けられる前記動きの範囲に適合される仮想構成を生成することと、
前記第1の電子デバイスにおける前記仮想環境において、前記仮想構成に従って前記複数の仮想オブジェクトをレンダリングすることをトリガすることとを備える、方法。
【請求項2】
前記複数の仮想オブジェクトのうちの少なくとも1つは、前記仮想環境および前記仮想環境に関連付けられるオプションを示すユーザインターフェイスの一部であり、前記仮想構成を判断することは、前記仮想環境に関連付けられる前記動きの範囲に一致するように前記ユーザインターフェイスを適合することを含む、請求項1に記載の方法。
【請求項3】
前記周囲環境に関連付けられる前記動きの範囲を前記仮想環境に関連付けられる前記動きの範囲と相関させることは、
前記第1の電子デバイスまたは前記第2の電子デバイスのうちの少なくとも一方にアクセスするユーザの身体的側面を判断することと、
前記身体的側面に関連付けられる少なくとも1つの能力を前記周囲環境から前記仮想環境に変換することと、
前記少なくとも1つの変換された能力に従って前記仮想環境で仮想コンテンツを提供することとを含む、請求項1または2に記載の方法。
【請求項4】
前記第1の電子デバイスにアクセスするユーザの身体的側面は、前記ユーザに関連付けられる、前記仮想環境内の検出位置、姿勢、物理的空間内の検出位置、または検出された高さおよび腕の長さに関連する到達距離のうちの少なくとも1つを含む、請求項3に記載
の方法。
【請求項5】
前記周囲環境に関連付けられる前記動きの範囲を前記仮想環境に関連付けられる前記動きの範囲に相関させることは、
前記第1の電子デバイスにアクセスしているユーザが前記第1の電子デバイスにアクセスしながら着座位置にあると判断したことに応答して、前記仮想環境における前記少なくとも1つの能力が前記ユーザの前記着座位置に対処することを可能にすることを含む、請求項3または4に記載の方法。
【請求項6】
前記複数の仮想オブジェクトについて、前記仮想環境に関連付けられる前記動きの範囲に適合される仮想構成を判断することは、前記第1の電子デバイスに関連付けられる前記ユーザの身体的側面を判断することと、前記ユーザの前記身体的側面および前記周囲環境に関連付けられる前記動きの範囲を用いて到達ゾーンを推定することとを含み、前記到達ゾーンは、前記第1の電子デバイスにアクセスする前記ユーザの到達範囲内にあって、前記仮想環境内に複数の仮想オブジェクトを配置する領域として、用いられる、請求項3から5のいずれか1項に記載の方法。
【請求項7】
前記仮想環境に関連付けられる前記動きの範囲は、前記第2の電子デバイス上で実行される加速度計を用いて判断される、請求項1から6のいずれか1項に記載の方法。
【請求項8】
前記周囲環境において前記第2の電子デバイスの移動を追跡することは、前記周囲環境において前記第1の電子デバイスおよび前記第2の電子デバイスにアクセスするユーザの画像をキャプチャすることによって前記第2の電子デバイスの横方向の移動を追跡することを含む、請求項1から7のいずれか1項に記載の方法。
【請求項9】
前記第1の電子デバイスはHMDデバイスであり、前記第2の電子デバイスはポータブル電子デバイスである、請求項1から8のいずれか1項に記載の方法。
【請求項10】
前記複数の仮想オブジェクトについて、前記仮想環境に関連付けられる前記動きの範囲に適合される仮想構成を判断することは、前記第1の電子デバイスにアクセスするユーザの身長を判断することと、前記ユーザの前記身長および前記周囲環境に関連付けられる前記動きの範囲を用いて到達ゾーンを推定することとを含み、前記到達ゾーンは、前記第1の電子デバイスにアクセスする前記ユーザの到達範囲内にあって、前記仮想環境内に複数の仮想オブジェクトを配置する領域として、用いられる、請求項9に記載の方法。
【請求項11】
複数の仮想オブジェクトについて、前記仮想環境に関連付けられる動きの範囲に適合される仮想構成を判断することは、前記第1の電子デバイスの垂直オフセットを検出することと、前記垂直オフセットを用いて複数のオブジェクトを前記第1の電子デバイスにアクセスするユーザの到達範囲内に配置することとを含む、請求項1から9のいずれか1項に記載の方法。
【請求項12】
請求項1から11のいずれか1項に記載の方法を少なくとも1つのプロセッサに実行させるためのプログラム。
【請求項13】
システムであって、
メモリと、
前記メモリに結合される少なくとも1つのプロセッサとを備え、前記少なくとも1つのプロセッサは、
第2の電子デバイスに通信可能に結合される第1の電子デバイスで仮想環境を生成し、
周囲環境において前記第2の電子デバイスの移動を追跡し、
1つまたは複数のセンサを用いて、前記周囲環境における前記移動に関連付けられる動きの範囲を判断し、
前記第2の電子デバイスの繰り返される動きが前記仮想環境との対話に失敗していると判断したことに応じて、前記周囲環境に関連付けられる前記動きの範囲を前記仮想環境に関連付けられる動きの範囲に相関させ、複数の仮想オブジェクトについて、前記周囲環境に関連付けられる前記動きの範囲に適合される仮想構成を生成し、
前記第1の電子デバイスにおける前記仮想環境において、前記仮想構成に従って前記複数の仮想オブジェクトをレンダリングすることをトリガするよう構成される、システム。
【請求項14】
前記周囲環境に関連付けられる前記動きの範囲を前記仮想環境に関連付けられる前記動きの範囲と相関させることは、
前記第1の電子デバイスまたは前記第2の電子デバイスのうちの少なくとも一方にアクセスするユーザの身体的側面を判断することと、
前記身体的側面に関連付けられる少なくとも1つの能力を前記周囲環境から前記仮想環境に変換することと、
前記少なくとも1つの変換された能力に従って前記仮想環境で仮想コンテンツを提供することとを含む、請求項13に記載のシステム。
【請求項15】
前記周囲環境に関連付けられる前記動きの範囲を前記仮想環境に関連付けられる動きの範囲と相関させることは、ユーザが前記第1の電子デバイスにアクセスしている間着座位置にある、と判断したことに応答して、前記仮想環境内の前記少なくとも1つの能力が、前記第1の電子デバイスにアクセスしている前記ユーザの着座位置に対処することを可能にすることを含む、請求項14に記載のシステム。
【請求項16】
前記周囲環境において前記第2の電子デバイスの移動を追跡することは、前記第2の電子デバイスに格納される加速度計データを解析することを含む、請求項13から15のいずれか1項に記載のシステム。
【請求項17】
前記第1の電子デバイスはHMDデバイスであり、前記第2の電子デバイスはポータブル電子デバイスである、請求項13から16のいずれか1項に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願への相互参照
この出願は2016年7月22日に出願された、「仮想現実ユーザインターフェイスのためのユーザの動きの範囲の検出(DETECTING USER RANGE OF MOTION FOR VIRTUAL REALITY USER INTERFACES)」と題される米国仮出願第62/365,526号の継続であり、その優先権を主張し、その開示はここに引用により援用される。
【0002】
この記載は、一般に、仮想現実(VR)コンテンツにアクセスするユーザのための動きの範囲の能力を検出するための方法およびデバイスに関する。
【背景技術】
【0003】
背景
多くの仮想現実環境は、広範囲の入力デバイスからユーザ入力を受け入れる。例えば、モバイルデバイス、キーボード、コントローラ、および追跡された手の動きの任意の組み合わせを用いて、仮想現実(VR)空間への入力を与えることができる。VR空間に入力を与えることはまた、動きとデバイス操作との組み合わせを必要とし得る。各動きおよびデバイス操作は、VR空間にアクセスするユーザによって実行され得る。
【発明の概要】
【課題を解決するための手段】
【0004】
概要
1つまたは複数のコンピューティングデバイスのシステムは、システムにインストールされ、動作でシステムに特定のアクションを実行させるソフトウェア、ファームウェア、ハードウェアまたはそれらの組合せを有することによって、特定の動作またはアクションを実行するよう構成することができる。1つまたは複数のコンピュータプログラムは、データ処理装置によって実行されるとデータ処理装置にアクションを実行させる命令を含むことによって、特定の動作またはアクションを実行するよう構成することができる。
【0005】
1つの一般的な局面において、コンピュータにより実現される方法は、第2の電子デバイスに通信可能に結合される第1の電子デバイスで仮想環境を生成することと、周囲環境において第2の電子デバイスの移動を追跡することと、1つまたは複数のセンサを用いて、周囲環境において第2の電子デバイスの移動に関連付けられる動きの範囲を判断することとを備える。方法はさらに、周囲環境に関連付けられる動きの範囲を仮想環境に関連付けられる動きの範囲に相関させることと、複数の仮想オブジェクトについて、仮想環境に関連付けられる動きの範囲に適合される仮想構成を判断することと、第1の電子デバイスにおける仮想環境において、仮想構成に従って複数の仮想オブジェクトをレンダリングすることをトリガすることとを備えてもよい。
【0006】
実現例は、以下の特徴の1つ以上を含んでもよい。複数の仮想オブジェクトのうちの少なくとも1つは、仮想環境および仮想環境に関連付けられるオプションを示すユーザインターフェイスの一部であり、仮想構成を判断することは、仮想環境に関連付けられる動きの範囲に一致するようにユーザインターフェイスを適合することを含む、方法。周囲環境に関連付けられる動きの範囲を仮想環境に関連付けられる動きの範囲に相関させることは、第1の電子デバイスまたは第2の電子デバイスの少なくとも1つにアクセスするユーザの身体的側面を判断することと、身体的側面に関連付けられる少なくとも1つの能力を周囲環境から仮想環境に変換することと、少なくとも1つの変換された能力に従って仮想環境で仮想コンテンツを提供することとを含む、方法。いくつかの実装形態では、第1の電子デバイスにアクセスするユーザの身体的側面は、ユーザに関連付けられる、仮想環境内の検出位置、姿勢、物理的空間内の検出位置、または検出された高さおよび腕の長さに関連する到達距離のうちの少なくとも1つを含む。いくつかの実装形態では、周囲環境に関連付けられる動きの範囲を仮想環境に関連付けられる動きの範囲に相関させることは、さらに、ユーザが、第1の電子デバイスにアクセスしている間、着座位置にある、と判断したことに応答して、仮想環境内の少なくとも1つの能力がユーザの着座位置に対処することを可能にすることを含む。
【0007】
いくつかの実装形態では、この方法は、複数の仮想オブジェクトについて、仮想環境に関連付けられる動きの範囲に適合される仮想構成を判断することは、第1の電子デバイスに関連付けられるユーザの身体的側面を判断することと、ユーザの身体的側面および周囲環境に関連付けられる動きの範囲を用いて到達ゾーンを推定することとを含むことを備えてもよい。到達ゾーンは、第1の電子デバイスにアクセスするユーザの到達範囲内にあって、仮想環境内に複数の仮想オブジェクトを配置する領域として、用いることができる。いくつかの実装形態では、仮想環境に関連付けられる動きの範囲は、第2の電子デバイス上で実行される加速度計を用いて判断される。いくつかの実装形態では、周囲環境において第2の電子デバイスの移動を追跡することは、周囲環境において第1の電子デバイスおよび第2の電子デバイスにアクセスするユーザの画像をキャプチャすることによって第2の電子デバイスの横方向の移動を追跡することを含む。いくつかの実装形態では、第1の電子デバイスはHMDデバイスであり、第2の電子デバイスはポータブル電子デバイスである。
【0008】
いくつかの実装形態では、複数の仮想オブジェクトについて、仮想環境に関連付けられる動きの範囲に適合される仮想構成を判断することは、第1の電子デバイスにアクセスするユーザの身長を判断することと、ユーザの身長および周囲環境に関連付けられる動きの範囲を用いて到達ゾーンを推定することとを含む。到達ゾーンは、第1の電子デバイスにアクセスするユーザの到達範囲内にあって、仮想環境内に複数の仮想オブジェクトを配置する領域として、用いることができる。
【0009】
いくつかの実装形態では、この方法は、複数の仮想オブジェクトについて、仮想環境に関連付けられる動きの範囲に適合される仮想構成を判断することは、第1の電子デバイスの垂直オフセットを検出することと、垂直オフセットを用いて複数のオブジェクトを第1の電子デバイスにアクセスするユーザの到達範囲内に配置することとを含むことを備えてもよい。
【0010】
記載されたシステムの実装形態は、ハードウェア、方法もしくはプロセス、またはコンピュータアクセス可能媒体上のコンピュータソフトウェアを含み得る。
【0011】
1つ以上の実現例の詳細が、添付の図面および以下の記載において述べられる。他の特徴は記載および図面、ならびに特許請求の範囲から明らかになる。
【図面の簡単な説明】
【0012】
図1A】ユーザが仮想現実(VR)空間と対話する例を示す図である。
図1B】ユーザが仮想現実(VR)空間と対話する例を示す図である。
図2A】ユーザがVR空間と対話する例を示すブロック図である。
図2B】ユーザがVR空間と対話する例を示すブロック図である。
図3】VR空間においてHMDデバイスに通信可能に結合されるVR機器を示すブロック図である。
図4】本明細書で説明される実現例および技術による、頭部装着型ディスプレイおよびコントローラを含む仮想現実システムの実現例である。
図5】動きの範囲を検出し、動きの範囲に従って仮想コンテンツを提示するためのプロセスの一実装形態を示すフローチャートである。
図6】本明細書に記載の技術を実施するために用いることができるコンピュータデバイスおよびモバイルコンピュータデバイスの例を示す。
【発明を実施するための形態】
【0013】
様々な図面における同様の参照符号は同様の要素を示す。
詳細な説明
仮想現実(VR)アプリケーションでは、ユーザは、ユーザの身体的サイズおよび/または利用可能な動きの範囲に合うように物理的または人間工学的に適合されていない環境に置かれることがある。これは、ユーザがVR空間内で仮想オブジェクトおよびアプリケーションと快適に対話することを不可能にする可能性がある。環境評価およびそのような環境に対する自動調整の提供は、ユーザがVR空間内で仮想オブジェクトおよびアプリケーションと快適に対話することを可能にし得る。前述の自動調整がなければ、ユーザは、アプリケーションと対話することができるようにするために、位置を変える(例えば、着座から起立するかもしくはその逆、および/または体をひねるもしくは回す)必要があるかもしれない。本明細書に記載のシステムおよび方法は、特定のユーザの現在の物理的位置に基づいて、特定のアプリケーションが特定のユーザに使用可能かどうかについての判断を与えることができる。このシステムおよび方法は、ユーザの快適さを補助するために小さな位置調整を実行する能力を提供することができ、さらにユーザの現在の物理的位置(たとえば立っている、座っているなど)からユーザがアプリケーションを用いることができるようにするのを補助するために大きな位置調整を提供することができる。
【0014】
着座した、水平な、または立った位置でユーザに利用可能な動きの範囲を評価することによって、本開示に記載のシステムおよび方法は、VR空間およびVR空間に関連付けられるオプションを示すユーザインターフェイスを、ユーザに関連付けられる利用可能な動きの範囲に一致させるように適合することができる。例えば、本明細書に記載のシステムおよび方法は、ユーザが360度の範囲の回転運動および/またはユーザの身体からの特定の到達半径を有する椅子に座っていることを検出した場合、特定のユーザインターフェイスをレンダリングし、着座しているユーザと検出されたユーザの範囲および到達範囲とに基づいて、VR空間内でユーザに対してHMDデバイスにおいて提供することができる。代替的に、ユーザが立っていると判断された場合、異なるユーザインターフェイスがレンダリングのためにトリガされ、HMDデバイス内における表示のために提供されてもよい。同様に、ユーザが横になっていると判断された場合、別の異なるユーザインターフェイスがレンダリングのためにトリガされ、HMDデバイス内における表示のために提供されてもよい。
【0015】
いくつかの実装形態では、ユーザの動きの範囲は、VR空間を生成している要素に通信可能に結合される1つまたは複数のデバイスに関連付けられる加速度計によって検出することができる。そのような加速度計は、VR空間を表示するHMDデバイスに通信可能に結合されるモバイルデバイスの一部であり得る。いくつかの実装形態では、カメラ、追跡システム、追跡センサなどを用いて、ユーザに関連付けられる動きの範囲についての近似値を求めることができる。
【0016】
本開示に記載のシステムおよび方法は、ユーザおよびVR機器を自動的に評価し、VR空間、VR機器、VRオブジェクト、および/または関連付けられるVRアプリケーションコンテンツを、VR空間にアクセスするユーザに関連付けられる特定の物理的プロパティまたは特徴に適合させることができる。VRアプリケーションの自動的評価および/または調整、ならびにVRアプリケーションで対話するために用いられるハードウェアの関連構成は、仮にシステムがユーザに対して構成されていないと仮定した場合よりも、日中において人間工学的、構成、および物流の中断を少なくして、日々の計算活動を達成することを可能にする。そのような自動化を仮想現実環境(例えば、VR空間)および関連付けられる機器に追加することは、VR空間で用いられる仮想コンテンツおよびインターフェイス、制御、および機器の比較的迅速な構成ならびに表示を提供することができる。例えば、制御、ユーザインターフェイス、モニタ、椅子、仮想コンテンツなどの自動化された解析および配置は、コンピューティング環境にアクセスするユーザに個別に合わせたコンピューティング環境(物理的および仮想的)を提供することができる。
【0017】
いくつかの実装形態では、VR空間および関連付けられる機器の適合は、経時的なユーザの動作および/またはユーザが時間の経過とともに利用する動きの範囲を検出することに応答して実行され得る。たとえば、(たとえば、動作および位置追跡、視線追跡、デバイス追跡、および/またはセンサ測定などを介した)ユーザの動作の検出に応答して、本開示に記載のシステムおよび方法は、VRアプリケーションにアクセスするユーザの身体的側面に従って、VRアプリケーションにおいてコンテンツをレンダリングする(かまたはコンテンツのレンダリングをトリガする)ことができる。ユーザの身体的側面は、VR空間内において検出された位置、物理的空間において検出された位置(例えば、立っている、座っている、動いているなど)、検出またはユーザにより入力された高さ、ユーザの身長、腕の長さ、頭の回転角度、視線、モビリティ能力などのうちのいずれかまたはすべてに関連する検出または計算された到達距離などを含むことができるが、それらに限定はされない。
【0018】
本明細書に記載のシステムおよび方法は、加えて、VR空間、関連機器、およびVRアプリケーションと対話するユーザの特定の姿勢を検出することができ、検出された姿勢に基づいて特定の対話、VRコンテンツ、およびオプションを提供することができる。例えば、システムおよび方法は、ユーザが座っているのかまたは立っているのかを検出することができる。この検出は、特定のモビリティオプションを提供または禁止するために用いることができる。例えば、仮想ゲームでの対話中にユーザが着座している場合、(関連付けられるコントローラまたは他のハードウェアもしくはソフトウェアベースのセンサを用いる)VRアプリケーションは、ユーザが着座していると判断し、着座位置について追加の動作オプションを提供するかまたは動作オプションを修正できる。(関連付けられるコントローラまたは他のハードウェアもしくはソフトウェアベースのセンサを用いる)VRアプリケーションが、ユーザが同じ仮想ゲーム中に立っている、と判断した場合、VRアプリケーションは異なる動作オプションを提供することができる。したがって、仮想ゲームによって、ユーザが物理的に歩き、向きを変えて、VR空間で提供されるアプリケーションコンテンツと対話することができるようになると、VRアプリケーションはそのような機能を用い、追加の起立のみのタイプの対話型オプションを可能にする。それよりも、ユーザが(例えば、飛行機の中、机になど)着座していることが検出された場合、VRアプリケーションは、歩くことや向きを変えることを伴う機能を解除し、着座しているユーザにとって便利な、異なる、より適切なオプションを提供することができる。
【0019】
いくつかの実装形態では、本開示に記載されるシステムおよび方法は、経時的なユーザの動作のパターンを検出し、検出されたパターンを用いてユーザの利用可能な動きの範囲および/またはユーザの制限された動きの範囲を判断することができる。例えば、パターンを検出することは、ユーザが着座していること、立っていること、動いていること、手を伸ばしていること、向きを変えること、および/または周りを見つめていることを検出することを含むことができる。いくつかの実装形態では、パターンを用いることにより、側方から側方への移動機能を用いて、ユーザが椅子において着座位置にいることを確認することができる。例えば、パターンは、ユーザが、円(または円の一部)内で側方から側方に回転する機能を有する回転椅子にいることを示すことができる。
【0020】
いくつかの実装形態では、検出されたパターンを用いて、ユーザが立っているのかまたは歩いているのかを判断することができる。他の実装形態では、パターンを用いて、ユーザが着座位置にあるかまたは立った位置にあるかを判断することができる。パターン検出および異なるパターンの判断は、1つまたは複数の機械学習アルゴリズムを用いて実施することができる。いくつかの実装形態では、パターン検出およびパターン区別は、たとえば、ルックアップテーブルを用い、ユーザの動きの範囲を測定して、そのような動きを既知の動作および既知の動作に関連付けられる範囲(たとえば制限)と比較することにより、実行され得る。
【0021】
いくつかの実装形態では、本明細書に記載されるシステムおよび方法は、特定のVRハードウェアに関連付けられるセンサにアクセスして、VR空間にアクセスしているユーザに関する身体的側面を検出することができる。例えば、VR空間に通信可能に結合されるユーザのモバイルデバイス上の加速度計を解析して、ユーザが静止状態の椅子に着座しているのかまたは回転椅子に着座しているのかを検出することができる。特に、本明細書に記載のシステムは、モバイルデバイスの加速度計が安定した側方から側方への動きを示す測定値を捕捉していることを検出した場合、システムはユーザが回転椅子に座っていると判断することができる。そのような検出を用いて、VR空間内の仮想コンテンツおよびオブジェクトを、ユーザの把握(たとえば到達)または視野の範囲内になるように、物理的に配置することができる。いくつかの実装形態では、本明細書で説明されているシステムおよび方法は、ユーザが座っているかまたは立っているかを判断することができる。ユーザが着座していると判断された場合、VRソフトウェアは、着座しているユーザにとって都合のよいVR空間への到達および/またはVR空間との対話に対応するために、VR空間において特定の高さ(例えば3フィート)未満にオブジェクトを配置するように構成されてもよい。いくつかの実装形態では、特定のコンテンツ(たとえば仮想オブジェクト)が着座したユーザの到達範囲内になるように仮想オブジェクトを縮小し、積み重ね、および/または他の態様で編成することによって、仮想オブジェクトをユーザアクセス可能領域にスナップすることができる。
【0022】
図1A図1Bは、ユーザがVR空間100A〜100Bと対話する例を示す。ユーザの視野がHMDデバイスによって生成されるVR空間に限定される状態で、HMDデバイスが仮想環境/VR空間を生成するように、周囲環境を遮断する(例えば、実質的に遮断する)HMDデバイスを装着している1人または複数のユーザに関して、図1A図1Bに示される例示的実現例を説明する。しかしながら、本明細書に記載の概念および特徴は、他の種類のHMDデバイス、ならびに他の種類の仮想現実環境および拡張現実環境にも適用することができる。さらに、本明細書で説明される図に示される例は、HMDデバイスを装着し、コントローラ、コンピューティングデバイスなどを保持するユーザの三人称視点として示されるユーザを含み得る。
【0023】
示される例では、対話型コンテンツを有するいくつかのアプリケーションウィンドウが示されている。各VR空間100A〜100Bは、静的コンテンツおよび/または対話型コンテンツを伴うアプリケーションを含む。図1Aおよび図1Bに示すVR空間100A〜100Bは、ユーザ(例えば、ユーザ102Aまたは102B)が、任意の数の仮想アプリケーションウィンドウおよび/または他のVRコンテンツの仮想視覚化の周りを移動することを可能にする環境を表す。仮想アプリケーションウィンドウおよびVRコンテンツの適切な物理的配置は、そのようなコンテンツとのユーザ対話を容易にし得、そしてVR空間におけるユーザ体験を向上させ得る。
【0024】
一般に、VR空間100A〜100Bは、例えば、図1Aおよび図1Bに示すように、ユーザが装着するHMDデバイス104を含むシステムによって生成されてもよい。HMDデバイス104は様々な異なる種類のユーザ入力によって制御されてもよく、ユーザは、例えば手/腕のジェスチャ、頭のジェスチャ、HMDデバイス104の操作、HMDデバイス104に動作可能に結合されるポータブルコントローラの操作などを含む様々な異なる種類のユーザ入力を通じて、HMDデバイス104によって生成されるVR空間と対話してもよい。ユーザは、HMDデバイス104に通信可能に結合されることができるポータブル電子デバイス105を携帯してもよい(またはその近くにいてもよい)。
【0025】
ユーザの視野がHMDデバイスによって生成される仮想環境(例:VR空間)に限定される状態で、HMDデバイスが仮想環境を生成するように、周囲環境を実質的に遮断するHMDデバイスを装着しているユーザに関して、図1A図1Bに示される例示的実現例を説明する。しかしながら、図1A図1Bに関して以下に記載される概念および特徴は、以下に記載されるように、他の種類のHMDデバイス、ならびに他の種類の仮想現実環境および拡張現実環境にも適用することができる。
【0026】
図1Aに示すように、ユーザ102Aは、HMDデバイス104を装着しており、VR空間106Aを規定する部屋に面している。HMDデバイス104は、VR空間106A内で仮想コンテンツを描写するために、ユーザの周囲環境において画像をキャプチャしてもよいし、および/または特徴を定義する情報を収集してもよい。HMDデバイス104によって収集された画像および情報は、その後、VR空間106AにおいてHMDデバイス105によって処理されてもよい。さらに、センサ(図示せず)から情報を取得して、VR空間106Aにおけるユーザの対話に基づいて、仮想コンテンツを更新することができる。センサは、ユーザに属する手、足、または他の身体部分の位置、ならびにそのような要素の6つの回転自由度での回転を追跡してもよい。
【0027】
センサは、VR空間106Aにおいてユーザの位置、動作、および対話を検出し追跡することができる。いくつかの実装形態では、センサはデバイス105または他のデバイスの一部であり得る。追跡は、例えば、ユーザ102Aの特定の物理的プロパティに合うようにVRアプリケーションの人間工学を動的に適合させるために、用いることができる。示されるように、ユーザ102Aは、VR空間106Aにおいて、開いておりかつユーザ選択および対話に利用可能なある数のアプリケーションと、対話してもよい。本明細書に記載のシステムは、ユーザ102Aが立っていると判断することができ、したがって、ユーザが自分の立っている位置に基づいて到達することができるコンテンツ、メニュー、制御などの特定の配置を提供することができる。例えば、アプリケーション108、110、112、および114は、ユーザから到達可能な距離内に提供することができる。到達可能距離は、身長、腕の長さ、頭の回転、視線、モビリティ能力などを含むがこれらに限定されない、立っているユーザ102Aの身体的プロパティに関係してもよい。
【0028】
ユーザ102AはVR空間106Aにおいてアプリケーション108、110、112にアクセスする仮想体験を楽しんでいてもよいし、さらには、アプリケーション114に示される映画を楽しんでいてもよい。本明細書に記載のシステムは、VR空間内のユーザ102Aから仮想オブジェクト(例えば、図示の例ではアプリケーション108〜114)までの距離を判断することができる。この距離は、オブジェクト、制御、メニュー、および他のVRオブジェクトをVR空間106A内に配置するために用いることができる。配置は各特定のユーザに合わせて調整することができる。
【0029】
いくつかの実装形態では、本明細書で説明されているシステムは、ユーザの到達ゾーンを判断することができる。到達ゾーンは、物理的空間内におけるユーザの最大の腕の長さまたは到達可能領域に関係し得る。そのような到達領域は、物理的空間と仮想空間との間で相関し得、物理的空間から仮想空間へと変換され得る。例えば、システムは、ユーザの身長を計算することができ、身長を約半分に分割して、推定される到達ゾーンを得ることができる。これはユーザごとに構成することができ、VR空間においてユーザに提供されるアプリケーションおよびオブジェクトに対する距離配置規則に対するトリガを与えることができる。同様に、システムは、ユーザが物理的またはVR空間内で対話することができる特定の3次元(3D)面の高さを用いて、他の物理的またはVRオブジェクトの快適かつ人間工学的な配置を判断することができる。たとえば、ユーザがドラムやピアノなどの楽器を演奏している場合、手の配置および楽器との対話は、他の対話またはユーザインターフェイス構成要素を提供するために用いられ得る。例えば、システムは、キーボードの配置およびそれとの対話、メニューの配置、頭部の配置、目線、ボタンまたはコントローラの配置、リストの配置などを判断する方法として、楽器との対話およびその配置を用いることができる。
【0030】
いくつかの実装形態では、ユーザの身体的側面は、本明細書で説明されているシステムによって確認することができる。例えば、システム300を用いて、電子デバイス(例えば、HMD104)にアクセスするユーザについての仮想環境内での検出された位置、ユーザの姿勢、ユーザについての物理的空間内での検出された位置、検出されたユーザの身長、および/またはユーザに関連付けられる腕の長さに関する到達距離を含むがそれらに限定はされない、ユーザの1つまたは複数の身体的側面を検出または判断することができる。仮想環境にアクセスするユーザの他の身体的側面は、本明細書に記載のシステム、センサ、およびデバイスによって検出することができる。
【0031】
ユーザの1つまたは複数の身体的側面を検出すると、システム300は、周囲環境に関連付けられる動きの範囲を、仮想環境に関連付けられる動きの範囲と相関させることができる。この相関付けは、ユーザが周囲(例えば、物理的)環境において立っているかまたは着座していると判断すること、およびそのような情報を用いて仮想環境においてユーザにとって有用な動きの範囲を確認することを含むことができる。例えば、第1の電子デバイス(例えば、HMDデバイス)にアクセスしているユーザがHMDデバイスにアクセスしながら着座していると判断したことに応答して、システム300は、仮想環境における少なくとも1つの能力がユーザの着座位置に対処することを可能にする。例示的な能力は、ユーザの腕についての到達空間(または制限)を含み得る。システム300は、ユーザが利用可能な物理的到達範囲の制限または能力を考慮に入れることができ、ユーザに利用可能な到達範囲の制限内にコンテンツおよび/または制御を配置することができる。
【0032】
図1Aの示された例では、システムは、ユーザ102Aが立っていると判断(例えば、センサを用いて検出)し、したがって(例えば、アプリケーション108、110、112、114)からユーザの手までの距離を計算することができる。この計算を利用して、ユーザがアプリケーション108〜114のうちの1つに到達するために過度に体を伸ばすことなく、快適な態様でアプリケーション108〜114に向かって歩き、対話することができるように、ユーザにとって人間工学的で有用なVR空間を提供することができる。いくつかの実装形態では、VR空間106Aに示される対話中に、アプリケーション112をアプリケーション110の前に提供して、電子メールをユーザに通知することができる。ユーザ102Aに基づく距離の判断は、アプリケーション112によって生成される「A. Faaborg」からの電子メールの通知の都合のよい配置を判断するために行うことができる。この判断は、ユーザ102Aが立っている位置にある間、ユーザにとって到達可能でありかつ快適でもある領域にアプリケーション112を提供することができる。
【0033】
図1Bを参照して、ユーザ102Bは椅子116に着座し、図1Aと同様にVR空間106Bにおいてアプリケーション108〜114にアクセスしている。この例では、アプリケーション108〜114は、着座しているユーザ(例えば、ユーザ102B)の快適な到達範囲に対して構成されている。例えば、アプリケーション108〜114は、あたかもユーザが机のところで着座しているかのように左から右へと配置されている。着座しているユーザ102Bが追加のアプリケーション118、120、および122にアクセスしたい場合には、ユーザが到達しやすくするために、追加のアプリケーション118〜122はアプリケーション110およびアプリケーション112の背後に積み重ねられる。VR空間106Bはさらにキーボード124および仮想メニュー126を含む。キーボード124は仮想的であってもよく、キーボードを調整する必要なしにユーザが手を伸ばしてタイプする位置に示されることができる。仮想メニュー126は、ユーザがVR空間106B内で対話するために、ある数のメニュー項目を選択するために手を伸ばすことができるように、仮想机上に提供される。アプリケーション108〜122、キーボード124、および仮想メニュー126の配置は、動作および/または制限に関連するユーザ能力に基づいて判断することができる。例えば、本明細書に記載のシステムは、ユーザが着座しており、着座位置において側方から側方に動くことができる、と判断することができる。この判断に応答して、VR空間106Bは、着座しているユーザにとって快適な態様で提供され得る。いくつかの実装形態では、システムは、特定のユーザの距離、長さ、および能力を検出することができ、そのような情報を用いて特定のユーザに対して適合および構成されたVR空間を提供することができる。いくつかの実装形態では、情報はユーザに関連付けられる測定値を含み得る。情報は、VR空間106Bにおいて特定の要素の長さおよび/または幅を推定するために用いられ得る。例えば、着座したユーザは、仮想机の長さ128および幅130ならびにユーザの前に配置されるアプリケーションレイアウトを規定し得る最大到達ゾーンを有し得る。
【0034】
1つの非限定的な例では、映画アプリケーション114は、図1Aに示されるように、立っているユーザに表示され得る。映画アプリケーション114は、ユーザから、ある距離に、VR空間106Aの遠い壁上にある。ユーザは立っており、VR空間106A内を歩き回ることができると判断されるので、ユーザは、向きを変えるかまたは映画アプリケーション114に向かって歩くことによって、映画アプリケーション114内のコンテンツに容易にアクセスすることができる。対照的に、着座しているユーザ102Bは、図1Aにおいてアプリケーション114に示されるコンテンツを見ることは困難であり得る。着座しているユーザ102Bは、着座位置が低く、アプリケーション114にアクセスして対話するには遠すぎる可能性がある。これに応じて、本明細書に記載のシステムは、ユーザ102Bが着座していることを検出し、VR空間のレイアウトをVR空間106Aに示されるコンテンツからVR空間106Bに変更することができる。これは、着座しているユーザ102Bにとって都合がよく、ユーザが目の緊張および/または首の緊張を避けることを可能にすることができ、なぜならば、図1Bに示されるアプリケーション114は、着座しているユーザ102Bの作業空間(例えば、個人的な周囲環境)に合うように、より近く、および適合されるからである。移動可能および非移動可能なユーザの場合のためにVR空間を修正するべく、同様の適合がなされ得る。
【0035】
いくつかの実装形態では、VR空間106Bは、動いているユーザまたは静止しているユーザのために仮想コンテンツへのアクセスを与えるように機能する、移動可能な仮想コンテンツを提供するように構成され得る。例えば、移動可能な仮想コンテンツは、VR空間に表示可能な仮想オブジェクト、アプリケーション、制御、および/または他のグラフィック要素を含むことができる。いくつかの実装形態では、移動可能な仮想コンテンツは、側方から側方への回転動作を可能にする回転椅子に座っているユーザとの対話のために構成され得る。いくつかの実装形態では、移動可能な仮想コンテンツは、着座しているユーザに関連付けられる到達範囲に資する方向に移動するように構成され得る。いくつかの実装形態では、移動可能な仮想コンテンツは、立っているユーザおよび/または移動可能なユーザとの対話のために構成され得る。
【0036】
いくつかの実装形態では、移動可能な仮想コンテンツは、動いているユーザに資する適切な距離および時間閾値で提供されるように構成され得る。いくつかの実装形態では、本開示全体にわたって説明されるシステムは、ユーザの位置の変化(たとえば、着座している、立っている、移動している)を検出し、検出された変化を用いて仮想コンテンツがVR空間106B内においてどのように移動および構成されるかに関連付けられる更新された規則および構成を提供することができる。
【0037】
図2Aに示すように、ユーザ202Aは、HMDデバイス204を装着しており、VR空間206Aを規定する部屋に面している。ユーザ202Aは椅子208に着座しており、追跡システム210はユーザ202Aが着座していることを検出することができる。1つの非限定的な例では、追跡システムは、表示情報、安全情報、ユーザデータ、またはその他の取得可能なデータなどのデータを相関させる基礎として、VRデバイス(たとえば、コントローラ、HMDデバイス、モバイルデバイスなど)に関連付けられる位置データを用いることができる。このデータは、VR空間206Aにアクセスするユーザ202Aのために、人間工学的に位置決めされた仮想コンテンツを提供するために、用いることができる。
【0038】
いくつかの実装形態では、追跡システム210を用いて、VR空間206Aにアクセスするために用いられる1つまたは複数のデバイスを追跡することができる。これらのデバイスは、VR空間において表される特定のコンピューティングデバイス、コントローラ、および/または基地局デバイスから取得可能な位置、速度、および/または加速度データに基づいて追跡されてもよい。たとえば、データは1つまたは複数のデバイスに関連付けられる慣性測定装置(IMU)から取得され得、一方、位置データはVR空間206Aに関連付けられる1つまたは複数の追跡されるオブジェクト(たとえばコントローラ、HMDデバイス)および/または基地局から取得され得る。
【0039】
追加のデータもまた、VR空間206Aにアクセスするデバイスに関連付けられるいくつかの搭載センサから取得され得る。そのようなデータは、加速度計およびジャイロスコープのデータ、方位データ、補正データ、および/または一般的もしくは特定の位置情報を示す他のセンサデータに関するものであり得る。本明細書に記載のシステムは、そのようなデータを用いて、予め規定される範囲内の追跡されるオブジェクトに関する6つの自由度の位置情報を、その予め規定される範囲内の1つまたは複数の他のデバイスと相関させることができる。予め規定される範囲は、VR空間全体、VR空間のサブセット、またはVR空間にアクセスするユーザに関する他の測定可能な範囲であり得る。
【0040】
いくつかの実装形態では、本明細書に記載のシステムおよび方法は、特定のVRハードウェアに関連付けられるセンサにアクセスして、VR空間206Aにアクセスするユーザに関する特定の身体的側面を検出することができる。例えば、VR空間に通信可能に結合されるユーザのモバイルデバイス上の加速度計を解析して、ユーザが静止状態の椅子に着座しているのかまたは回転椅子に着座しているのかを検出することができる。システムは、ユーザ202Aが椅子208に着座していると判断した場合、着座ユーザ202Aの視聴に対応するために、システムは仮想コンテンツ212Aを、角度をつけた位置に描くことができる。特に、本明細書に記載のシステムは、ユーザ202Aに属するモバイルデバイスの加速度計が垂直方向に変化しない側方から側方への動きを示す測定値を捕捉していることを検出した場合、システムはユーザ202Aが回転椅子に着座していると判断することができる。そのような検出を用いて、VR空間206A内の仮想コンテンツ212Aを、ユーザ202Aに関連付けられる把握および/または可視領域の範囲内になるように、物理的に配置することができる。
【0041】
システムは、代わりに、図2Bに示すように、ユーザ(例えば、図2Bのユーザ202B)が立っていると判断することができる。この例では、VR空間206Bは、ユーザに対して、HMDデバイス204において、制御および仮想コンテンツ212Bが手の届かないVR空間206Bの領域にある状態で、与えられることができ、なぜならば、ユーザ202Bはコンテンツ212Bと対話するかまたはそれを修正するためにコンテンツ212Bに歩いて行くことができるからである。さらに、ユーザ202Bは立っていると判断されるので、仮想コンテンツ212Bは着座しているユーザに対して角度を成すように構成されなくてもよい。
【0042】
いくつかの実装形態では、アプリケーション開発者は、VRアプリケーションにおいて仮想コンテンツ(たとえば、3D仮想オブジェクトまたはアプリケーション)のプロパティについての変数および規則を実装することができる。例えば、アプリケーション開発者は、検出されたユーザプロパティに基づいて、任意の数の仮想オブジェクトに対して1つまたは複数の構成可能な態様を構成することができる。そのようなユーザプロパティは、身長、体重、姿勢、腕の長さ、身体能力または身体障害、歩行速度または移動速度、ユーザ位置(例えば、座っている、立っている、横になっている)などを含み得る。任意のまたはすべてのユーザプロパティを用いて、VR空間内の仮想オブジェクトについて特定のモードまたはオプションをトリガできる。
【0043】
1つの非限定的な例では、ユーザ202Bは彼女のポケット(図示せず)に携帯電話を持っていてもよい。携帯電話は、ユーザが周囲環境で立って歩き回っていることを検出するよう、加速度計または他のセンサを含むことができる。図2Bに示されるように、システムは、周囲環境で歩き回る移動の検出に基づいてユーザ202Bが立っていることを検出するために、1つまたは複数のセンサ(例えば、位置検出システム210)を同様に用いることができる。動きの能力は、ユーザ102Bの環境において仮想対話および仮想オブジェクト配置を構成する際に用いるために、推定または直接測定することができる。
【0044】
いくつかの実装形態では、本明細書で説明されているシステムおよび方法を用いて、特定のビデオ(たとえば、球面ビデオ)がVR空間においてユーザにどのように示されるかを方向付けることができる。例えば、ディレクタは球面ビデオを作成し、ユーザの動きの範囲(または動きの範囲のないこと)に基づいてHMDデバイスに表示されるシーンの垂直方向および水平方向の配置を判断することができる。特に、本明細書に記載のシステムが、ユーザが静止椅子に着座していることを検出した場合、システムは、球面ビデオのために特定の次のシーンビューをリセットするように構成することができる。したがって、ビデオは、新たなシーンごとにユーザの真正面に視点を与えることができる。すなわち、ビデオは、検出された各ユーザの質および動きの範囲に基づいて、各ユーザに対して異なるように再生され得る。
【0045】
いくつかの実装形態では、VRコンテンツはユーザの身長に従って配置することができる。HMDデバイス、追跡システム、および/またはカメラは、HMDデバイスの垂直位置を検出するために用いることができ、検出された垂直位置に沿ってVRコンテンツを提供することができる。例えば、ビーンバッグに座っているユーザは地面から約2フィートの距離でHMDデバイスを用いているかもしれず、一方、立っているユーザは約3フィートから約6フィートのどこかでHMDデバイスを用いているかもしれず、本明細書に記載のシステムは、このような距離を自動的に検出して、VRコンテンツをHMDデバイスにおいて特定のユーザベースの高さで表示することができる。
【0046】
図3は、VR空間においてHMDデバイス(例えば、HMDデバイス303)に通信可能に結合されるコントローラを示すブロック図である。動作中、システム300は、VR空間と対話するように構成されるVRアプリケーションソフトウェア、コンピュータ、およびコントローラデバイスで操作することができる任意の数の仮想オブジェクトを収容するVR空間を提供するように構成することができる。例えば、コントローラ301および302は、没入型仮想環境を生成するためにHMDデバイス303とインターフェイスし得る。コントローラ301およびコントローラ302は、例えば、デバイス間の通信を確立し、VR空間とのユーザ対話を容易にするために、HMDデバイス303とペアにされ得る。いくつかの実装形態では、コントローラ301および302はどちらもHMDデバイス303とペアにされず、代わりに、各々、VRアプリケーション内の追跡システム(たとえば追跡システム110)または別の外部追跡デバイスによって追跡される。
【0047】
図3に示すように、コントローラ301は、検知システム360と制御システム370とを含む。検知システム360は、例えば、光センサ、音声センサ、画像センサ、距離/近接センサ、位置センサ(例えば、ジャイロスコープおよび加速度計を含む慣性測定ユニット(IMU))および/または他のセンサならびに/またはセンサの組み合わせ、たとえばユーザに関連付けられる視線を検出および追跡するように位置決めされた画像センサを含む、1つまたは複数の異なる種類のセンサを含むことができる。制御システム370は、例えば、電力/休止制御装置、音声および映像制御装置、光学制御装置、遷移制御装置、および/もしくは他のこのような装置ならびに/または異なる装置の組み合わせを含んでもよい。特定の実現例に応じて、検知システム360および/または制御システム370は、より多くの、またはより少ない装置を含んでもよい。
【0048】
コントローラ301はまた、検知システム360および制御システム370と通信する少なくとも1つのプロセッサ390と、メモリ380と、コントローラ301と他の外部デバイス、例えばコントローラ302および/またはHMDデバイス303との間の通信を与える通信モジュール350とを含み得る。
【0049】
コントローラ302は、コントローラ301と、例えばHMDデバイス303などの他の外部デバイスとの間の通信を与える通信モジュール306を含むことができる。コントローラ301およびコントローラ302とHMDデバイス303との間のデータ交換を提供することに加えて、通信モジュール306はまた、VR空間およびシステム300にアクセス可能な多数の他の電子デバイス、コンピュータ、および/もしくはコントローラを接続ならびに/またはそれらと通信するように構成され得る。
【0050】
コントローラ302は、例えばカメラおよびマイクロフォンに含まれるような画像センサおよび音声センサ、IMU、コントローラのタッチ感知面もしくはスマートフォンに含まれるようなタッチセンサ、および他のそのようなセンサならびに/または異なるセンサの組み合わせを含む検知システム304を含み得る。少なくとも1つのプロセッサ309は、検知システム304および制御システム305と通信状態であってもよい。制御システム305はメモリ308にアクセスすることができ、コントローラ302の全体的な動作を制御することができる。
【0051】
コントローラ301と同様に、コントローラ302の制御システム305は、例えば、電力/休止制御装置、音声および映像制御装置、光学制御装置、遷移制御装置、および/もしくは他のこのような装置ならびに/または異なる装置の組み合わせを含んでもよい。一般に、本開示に記載されるシステムおよび方法は、ユーザの手またはコントローラ301および302を追跡し、VR空間においてそのような手および/またはコントローラ301および302に関連付けられるユーザ対話パターンおよびジェスチャを解析して、そのような対話パターンおよびジェスチャの意図を判断することができる。
【0052】
いくつかの実装形態では、本明細書で説明されているシステムおよび方法を用いて、動作におけるユーザ制限を検出することができる。そのような制限は、仮想コンテンツをユーザに特定の態様で提供するための規則またはトリガとして構成することができる。いくつかの実装形態では、システムは、ユーザが自分の周囲環境内においてユーザの正面中央位置の左右に約10度移動したことを検出した場合、システムは、範囲が制限であると推測することができ、制御、オブジェクト、および他の仮想コンテンツが、利用可能な移動の20度空間に利用可能なビューおよび周辺ビュー内に配置されることを確実にすることができる。
【0053】
図4は、本明細書で説明される実現例および技術による、頭部装着型ディスプレイおよびコントローラを含む仮想現実システムの実現例である。図4に示す例示的実現例において、HMDデバイス402を装着しているユーザはポータブル電子デバイス404を保持している。ポータブル電子デバイス404は、例えば、HMDデバイス402(ならびに/または他の仮想現実ハードウェアおよびソフトウェア)によって生成されるVR空間における対話のためにHMDデバイス402とペアにされ通信することができるコントローラ、スマートフォン、ジョイスティック、または別のポータブルコントローラとすることができる。ポータブル電子デバイス404は、例えば、有線接続、または例えばWiFiもしくはBluetooth(登録商標)接続などの無線接続を介して、HMD402と動作可能に結合されるか、またはペアリングされることができる。ポータブル電子デバイス404とHMDデバイス402とのこのペアリングまたは動作可能な結合は、コントローラ404とHMDデバイス402との間の通信、およびポータブル電子デバイス404とHMDデバイス402との間のデータの交換を提供することができ、これにより、ポータブル電子デバイス404は、HMDデバイス402によって生成されたVR空間内で対話するためにHMDデバイス402と通信するコントローラとして機能することが可能になる。すなわち、ポータブル電子デバイス404は、複数の異なる態様で操作することができる。ポータブル電子デバイス404の操作は、HMDデバイス402によって生成される没入型仮想環境において、対応する選択、移動、または他の種類の対話に変換することができる。これは、例えば、仮想オブジェクトとの対話、仮想オブジェクトの操作、または仮想オブジェクトの調整、仮想環境に関するスケールもしくはパースペクティブの変化、仮想環境内の現在位置から仮想環境内の選択された目的地もしくは特徴までのユーザの移動(例えば、ナビゲーション、テレポーテーション、移送)、および他のそのような対話を含むことができる。
【0054】
図5は、動きの範囲を検出し、その動きの範囲に従って仮想コンテンツを提示するためのプロセス500の一実施形態を示すフローチャートである。ブロック502において、プロセス500は、第2の電子デバイスに通信可能に結合される第1の電子デバイスを用いて仮想環境を生成することを含み得る。例えば、HMDデバイス402は、そのような仮想環境を生成していてもよく、ポータブル電子デバイス402に通信可能および/または動作可能に結合されてもよい。ポータブル電子デバイス402は、ユーザに属してもよく、ユーザの動作に基づいて動作を追跡してもよい。例えば、ブロック504において、プロセス500は、周囲環境において第2の電子デバイス(例えば、ポータブル電子デバイス404)の移動を追跡することを含み得る。いくつかの実装形態では、移動は、ユーザが回転椅子に着座していることを示すよう、横方向(例えば、側方から側方)の移動であり得る。
【0055】
いくつかの実装形態では、周囲環境における第2の電子デバイスの移動を追跡することは、ユーザが周囲環境にいる間に第1の電子デバイス(たとえばHMDデバイス402)および第2の電子デバイス(たとえばポータブル電子デバイス404)にアクセスするユーザの画像をキャプチャすることによって横方向の移動を追跡することを含み得る。
【0056】
いくつかの実装形態では、周囲環境において第2の電子デバイスの移動を追跡することは、第2の電子デバイスに格納されている加速度計データを解析することを含む。例えば、加速度計データを検出して、デバイス402および404にアクセスするユーザが回転椅子に着座しているかどうかを判断するために用いることができる。
【0057】
ブロック506で、プロセス500は、1つまたは複数のセンサを用いて、周囲環境内の移動に関連付けられる動きの範囲を判断することを含む。例えば、デバイス402またはデバイス404と通信可能に結合される任意の数のセンサが移動を追跡することができ、そのような移動は経時的に特定の動きの範囲を含むことができる。いくつかの実装形態では、センサは第1の電子デバイスと関連付けられてもよい。いくつかの実装形態では、センサは第2の電子デバイスと関連付けられてもよい。本明細書に記載のシステムは、動きの範囲を確認するために移動を経時的に追跡することができる。動きの範囲は、ユーザの到達範囲を判断し、仮想オブジェクトを配置するために、用いられ得る。いくつかの実装形態では、動きの範囲は、第2の電子デバイス(たとえば、ポータブル電子デバイス404)上で実行されている加速度計を用いて判断することができる。
【0058】
ブロック508において、プロセス500は、周囲環境に関連付けられる動きの範囲を仮想環境に関連付けられる動きの範囲に相関させることおよび/または変換することを含む。例えば、本明細書に記載のシステムは、第1の電子デバイスおよび第2の電子デバイスに関連付けられるユーザが第1の電子デバイスにアクセスしている間座っているかまたは立っているかを判断することができる。ユーザが着座している場合、プロセス500は、ユーザが着座位置から仮想コンテンツに到達することができるように、ユーザが物理的世界(すなわち周囲環境)において有する利用可能な動きの範囲を仮想環境における動きの範囲と相関させることができる。相関付けは、周囲環境から仮想環境に動きの範囲を変換することを含むことができる。変換は、ユーザが周囲環境内を移動する(または周囲環境内で到達する)ことができる距離を計算すること、およびそのような距離を仮想環境に変換することを含むことができる。本明細書に記載のシステムは、環境間の動きの範囲を相関付け、そのような範囲内で仮想コンテンツおよび/または制御を生成し提供することによって、仮想環境内の検出(または判断される)場所内にそのようなコンテンツおよび/または制御を提供できる。いくつかの実装形態では、システムは、デバイス402および404にアクセスするユーザが回転椅子(たとえば、または他の静止状態でない椅子もしくは装置)に着座しているかどうかを判断でき、回転椅子(またはその他の静止状態でない椅子もしくは装置)における着座位置で利用できるコンテンツおよび/または制御を提供できる。
【0059】
ブロック510において、プロセス500は、複数の仮想オブジェクトについて、仮想環境に関連付けられる動きの範囲に適合される仮想構成を判断することを含む。例えば、システムは、ユーザが回転椅子に着座していると判断した場合、特定の仮想コンテンツ配置を提供することができる。具体的には、ユーザが回転椅子に着座していると判断された場合、ユーザが、判断された利用可能な動きの範囲内ですべての仮想コンテンツ(および/またはユーザインターフェイス選択)に到達できるように、仮想オブジェクトを仮想構成に入れることができる。
【0060】
いくつかの実装形態では、動きの範囲に適合される仮想構成を判断することは、第1の電子デバイスおよび第2の電子デバイスに関連付けられるユーザの身長を判断することと、ユーザの身長および動きの範囲に基づいて到達ゾーンを推定することとを含む。到達ゾーンは、仮想オブジェクトを仮想環境内に配置する領域として用いることができる。
【0061】
そのような到達ゾーンは、ユーザが複数の仮想オブジェクトに衝突し、到達し、選択し、またはそうでなければアクセスすることができる仮想環境内の位置によって定義することができる。いくつかの実装形態では、複数の仮想オブジェクトについて、動きの範囲に適合される仮想構成を判断することは、第1の電子デバイスの垂直オフセットを検出することと、垂直オフセットを用いて複数のオブジェクトを第1の電子デバイスにアクセスするユーザに隣接させることとを含む。例えば、ユーザの身長、HMDデバイスの高さ、コントローラの高さ、手の位置、またはユーザおよび/もしくは仮想環境に関連付けられる他の垂直距離を用いて、仮想環境内(例えば、VR空間)に仮想オブジェクトを配置することができる。
【0062】
いくつかの実装形態では、VR空間にアクセスするユーザに関連付けられるモバイルデバイス(たとえばデバイス404)は、ユーザおよびモバイルデバイスに関連付けられる加速度計の移動の検出に基づいて、ユーザの動きの範囲を判断することができる。検出および解析は、ユーザのためにユーザインターフェイスを適合させるよう、モバイルデバイス404によって実行され得る。いくつかの実装形態では、VR空間に関連付けられる別の追跡デバイスが、ユーザの動きの範囲の制限または制限のないことを検出することができ、ユーザのために特定のユーザインターフェイスコンテンツを修正するよう通信することができる。
【0063】
HMDデバイスにおけるユーザへの表示のために修正されるユーザインターフェイスの一例の適合は、判断されたユーザの動きの範囲に基づいて特定の視野角で提供されるよう仮想コンテンツおよび/またはオブジェクトを適合させることを含み得る。いくつかの実装形態では、シーン内のすべての利用可能なコンテンツを視聴するためにユーザが移動可能である必要がないことを確実にするようにユーザインターフェイスを提供することができる。例えば、VR空間内のモバイルデバイス、追跡デバイス、または他のデバイスが、ユーザが回転椅子に着座していること、または回転椅子がユーザの範囲内にあることを自動的に検出する場合、本明細書に記載のシステムは、回転椅子に着座したときに、ユーザによって、視聴用に調整されるユーザインターフェイスコンテンツを提供するよう、自動的に構成され得る。
【0064】
ブロック512において、プロセス500は、第1の電子デバイス内の仮想環境において、仮想構成に従って任意の数の仮想オブジェクトのレンダリングをトリガすること(例えば、表示をトリガすること)を含む。例えば、HMDデバイス402は、仮想構成に従って仮想オブジェクトのうちのいずれかをレンダリングしてユーザに表示することをトリガすることができる。
【0065】
いくつかの実装形態では、本明細書で説明されるシステムは、ユーザが歩行中または特定の仮想オブジェクトに接近したときに快適な距離で仮想オブジェクトまたはコンテンツに到達またはそれを表示できるように、ユーザから正確な距離で仮想オブジェクトまたはコンテンツを提供するために、歩いているユーザの歩幅および/または速度を判断することができる。いくつかの実装形態では、本明細書で説明されるシステムは、ユーザによってアクセスされているHMDデバイスの垂直位置を判断し、HMDデバイスの垂直位置を用いておおよその高さを判断し、判断されたおおよその高さに基づいて仮想オブジェクトまたはコンテンツを提供および/またはトリガし得る。特に、HMDデバイスの垂直位置が約4フィートである場合、システムは、ユーザが子供または非常に背の低い個人である可能性が高いと判断し、その垂直位置に従ってコンテンツ、オブジェクト、および制御を調整することができる。
【0066】
いくつかの実装形態では、本明細書で説明されているシステムは、特定の仮想コンテンツまたはオブジェクトをユーザに適合させるべきであると判断することができる。例えば、システムは、ユーザが同じ動きを繰り返しているが、制御、メニュー、またはオブジェクトとの対話に失敗していると判断した場合、システムは、繰り返される到達または対話の試みが失敗しているようだと判断することができる。それに応答して、制御、メニュー、またはオブジェクトは、たとえば、ユーザの到達範囲によりよく合うように適合されることができる。
【0067】
いくつかの実装形態では、データは、ユーザ対話に基づいて上記の任意およびすべての説明された修正に基づいて記録することができる。そのようなデータを他のアプリケーションに提供して、データに関連付けられるユーザにVR空間の人間工学、利便性、および使いやすさを提供することができる。データを用いることにより、いくつかのアプリケーションで、ユーザが各アプリケーションにおいて構成を修正する必要なしに、ユーザのために体験を生成することができる。
【0068】
さらに別の例では、本明細書に記載のシステムは、ユーザが自分を傷つける可能性がある態様で反復動作を行っていることが検出された場合、追跡および格納されたデータを用いて、制御、メニューおよびオブジェクトを意図的に新しい位置に移動することができる。同様に、システムは、ユーザの姿勢を評価するように適合させることができ、適切な姿勢を促すために自動的に配置された制御、メニュー、およびオブジェクトを監視することができる。
【0069】
いくつかの実装形態では、複数の仮想オブジェクトのうちの少なくとも1つは、仮想環境およびその仮想環境に関連付けられるオプションを示すユーザインターフェイスの一部である。さらに、仮想構成を判断することは、仮想環境に関連付けられる動きの範囲に一致するようにユーザインターフェイスを適合させることを含み得る。
【0070】
いくつかの実装形態では、周囲環境に関連付けられる動きの範囲を仮想環境に関連付けられる動きの範囲に相関させることは、第1の電子デバイスのうちの少なくとも1つにアクセスする(または第2の電子デバイスにアクセスする)ユーザの身体的側面を判断することを含み得る。
【0071】
いくつかの実装形態では、第1の電子デバイスにアクセスするユーザの身体的側面は、ユーザに関連付けられる、仮想環境内の検出位置、姿勢、物理的空間内の検出位置、検出された高さ、および/または腕の長さに関連する到達距離のうちの少なくとも1つを含み得る。
【0072】
いくつかの実装形態では、周囲環境に関連付けられる動きの範囲を仮想環境に関連付けられる動きの範囲に相関させることは、第1の電子デバイスにアクセスしているユーザが第1の電子デバイスにアクセスしている間着座しているかどうかを判断すること、または第1の電子デバイスにアクセスしているユーザが第1の電子デバイスにアクセスしている間立っているかどうかを判断することを含んでもよい。例えば、相関付けは、周囲環境において着座したユーザの動きの範囲を、着座時にユーザにとって物理的にアクセス可能な(3次元)空間に相関する仮想環境内の動きの範囲に変換することを含むことができる。変換は、ユーザが周囲環境において移動する(またはその中で到達する)ことができる距離を計算すること、およびそのような距離を仮想環境に変換して物理的にアクセス可能な空間になることを含むことができる。本明細書に記載のシステムは、環境間の動きの範囲を相関付け、仮想環境の空間内の検出(または判断された)場所内で仮想コンテンツおよび/または制御を生成し提供することによって、そのような場所内で仮想コンテンツおよび/または制御を提供できる。
【0073】
いくつかの実装形態では、複数の仮想オブジェクトについて、仮想環境に関連付けられる動きの範囲に適合される仮想構成を判断することは、第1の電子デバイスに関連付けられるユーザの身体的側面を判断することと、ユーザの身体的側面および周囲環境に関連付けられる動きの範囲を用いて到達ゾーンを推定することとを含んでもよい。到達ゾーンは、第1の電子デバイスにアクセスするユーザの到達範囲内にあって、仮想環境内に複数の仮想オブジェクトを配置する領域として、用いることができる。
【0074】
いくつかの実装形態では、複数の仮想オブジェクトについて、仮想環境に関連付けられる動きの範囲に適合される仮想構成を判断することは、第1の電子デバイスにアクセスするユーザの身長を判断することと、ユーザの身長および周囲環境に関連付けられる動きの範囲を用いて到達ゾーンを推定することとを含んでもよい。到達ゾーンは、第1の電子デバイスにアクセスするユーザの到達範囲内にあって、仮想環境内に複数の仮想オブジェクトを配置する領域として、用いることができる。
【0075】
いくつかの実装形態では、複数の仮想オブジェクトについて、仮想環境に関連付けられる動きの範囲に適合される仮想構成を判断することは、第1の電子デバイスの垂直オフセットを検出することと、垂直オフセットを用いて複数のオブジェクトを第1の電子デバイスにアクセスするユーザの到達範囲内に配置することとを含んでもよい。
【0076】
図6は、ここに記載される技術とともに用いられてもよい汎用コンピュータデバイス600および汎用モバイルコンピュータデバイス650の例を示す。コンピューティングデバイス600は、プロセッサ602、メモリ604、記憶装置606、メモリ604および高速拡張ポート610に接続している高速インターフェイス608、ならびに低速バス614および記憶装置606に接続している低速インターフェイス612を含む。コンポーネント602,604,606,608,610および612の各々は様々なバスを用いて相互に接続されており、共通のマザーボード上にまたは他の態様で適宜搭載され得る。プロセッサ602は、コンピューティングデバイス600内で実行される命令を処理可能であり、この命令には、GUIのためのグラフィック情報を高速インターフェイス608に結合されているディスプレイ616などの外部入出力デバイス上に表示するためにメモリ604内または記憶装置606上に記憶されている命令が含まれる。他の実現例では、複数のプロセッサおよび/または複数のバスが、複数のメモリおよび複数種類のメモリとともに必要に応じて用いられ得る。また、複数のコンピューティングデバイス600が接続され得、各デバイスは(例えばサーババンク、ブレードサーバのグループ、またはマルチプロセッサシステムとして)必要な動作の一部を提供する。
【0077】
メモリ604は情報をコンピューティングデバイス600内に記憶する。一実現例では、メモリ604は1つまたは複数の揮発性メモリユニットである。別の実現例では、メモリ604は1つまたは複数の不揮発性メモリユニットである。また、メモリ604は、磁気ディスクまたは光ディスクといった別の形態のコンピュータ可読媒体であってもよい。
【0078】
記憶装置606は、コンピューティングデバイス600に大容量記憶を提供可能である。一実現例では、記憶装置606は、フロッピー(登録商標)ディスクデバイス、ハードディスクデバイス、光ディスクデバイス、またはテープデバイス、フラッシュメモリもしくは他の同様のソリッドステートメモリデバイス、またはストレージエリアネットワークもしくは他のコンフィギュレーションにおけるデバイスを含む多数のデバイスといった、コンピュータ可読媒体であってもよく、または当該コンピュータ可読媒体を含んでいてもよい。コンピュータプログラムプロダクトが情報媒体内に有形に具体化され得る。また、コンピュータプログラムプロダクトは、実行されると上述のような1つ以上の方法を実行する命令を含み得る。情報媒体は、メモリ604、記憶装置606、またはプロセッサ602上のメモリといった、コンピュータ可読媒体または機械可読媒体である。
【0079】
高速コントローラ608はコンピューティングデバイス600のための帯域幅集約的な動作を管理するのに対して、低速コントローラ612はより低い帯域幅集約的な動作を管理する。そのような機能の割当ては例示に過ぎない。一実現例では、高速コントローラ608はメモリ604、ディスプレイ616に(例えばグラフィックスプロセッサまたはアクセラレータを介して)、および様々な拡張カード(図示せず)を受付け得る高速拡張ポート610に結合される。当該実現例では、低速コントローラ612は記憶装置606および低速拡張ポート614に結合される。様々な通信ポート(例えばUSB、ブルートゥース(登録商標)、イーサネット(登録商標)、無線イーサネット)を含み得る低速拡張ポートは、キーボード、ポインティングデバイス、スキャナ、またはスイッチもしくはルータといったネットワーキングデバイスなどの1つ以上の入出力デバイスに、例えばネットワークアダプタを介して結合され得る。
【0080】
コンピューティングデバイス600は、図に示すように多数の異なる形態で実現されてもよい。例えば、コンピューティングデバイス600は標準的なサーバ620として、またはそのようなサーバのグループ内で複数回実現されてもよい。また、コンピューティングデバイス600はラックサーバシステム624の一部として実現されてもよい。さらに、コンピューティングデバイス600はラップトップコンピュータ622などのパーソナルコンピュータにおいて実現されてもよい。あるいは、コンピューティングデバイス600からのコンポーネントは、デバイス650などのモバイルデバイス(図示せず)内の他のコンポーネントと組合されてもよい。そのようなデバイスの各々がコンピューティングデバイス600,650の1つ以上を含んでいてもよく、システム全体が、互いに通信する複数のコンピューティングデバイス600,650で構成されてもよい。
【0081】
コンピューティングデバイス650は、数あるコンポーネントの中でも特に、プロセッサ652、メモリ664、ディスプレイ654などの入出力デバイス、通信インターフェイス666、およびトランシーバ668を含む。また、デバイス650には、マイクロドライブまたは他のデバイスなどの記憶装置が提供されて付加的なストレージが提供されてもよい。コンポーネント650,652,664,654,666および668の各々は様々なバスを用いて相互に接続されており、当該コンポーネントのいくつかは共通のマザーボード上にまたは他の態様で適宜搭載され得る。
【0082】
プロセッサ652は、メモリ664に記憶されている命令を含む、コンピューティングデバイス650内の命令を実行可能である。プロセッサは、別個の複数のアナログおよびデジタルプロセッサを含むチップのチップセットとして実現されてもよい。プロセッサは、例えば、ユーザインターフェイス、デバイス650が実行するアプリケーション、およびデバイス650による無線通信の制御といった、デバイス650の他のコンポーネントの協調を提供し得る。
【0083】
プロセッサ652は、ディスプレイ654に結合された制御インターフェイス658およびディスプレイインターフェイス656を介してユーザと通信し得る。ディスプレイ654は、例えば、TFT LCD(薄膜トランジスタ液晶ディスプレイ)もしくはOLED(有機発光ダイオード)ディスプレイ、または他の適切なディスプレイ技術であり得る。ディスプレイインターフェイス656は、ディスプレイ654を駆動してグラフィックおよび他の情報をユーザに提示するための適切な回路を含み得る。制御インターフェイス658はユーザからコマンドを受信し、当該コマンドをプロセッサ652に提出するために変換し得る。さらに、外部インターフェイス662が、デバイス650と他のデバイスとの隣接通信を可能にするために、プロセッサ652と通信した状態で提供されてもよい。外部インターフェイス662は、例えば、ある実現例では有線通信を提供し、他の実現例では無線通信を提供してもよく、また、複数のインターフェイスが用いられてもよい。
【0084】
メモリ664は情報をコンピューティングデバイス650内に記憶する。メモリ664は、1つもしくは複数のコンピュータ可読媒体、1つもしくは複数の揮発性メモリユニット、または1つもしくは複数の不揮発性メモリユニットの1つ以上として実現され得る。さらに、拡張メモリ674が提供され、例えばSIMM(Single In Line Memory Module)カードインターフェイスを含み得る拡張インターフェイス672を介してデバイス650に接続されてもよい。このような拡張メモリ674はデバイス650に余分のストレージスペースを提供し得るか、またはデバイス650のためのアプリケーションもしくは他の情報をさらに記憶し得る。具体的には、拡張メモリ674は上述のプロセスを実行または補足するための命令を含み得、さらにセキュア情報を含み得る。ゆえに、例えば、拡張メモリ674はデバイス650のためのセキュリティモジュールとして提供されてもよく、デバイス650のセキュアな使用を許可する命令でプログラムされてもよい。さらに、ハッキング不可能なようにSIMMカード上に識別情報を置くといったように、セキュアなアプリケーションが付加的な情報とともにSIMMカードを介して提供されてもよい。
【0085】
メモリは、以下に記載のように、例えばフラッシュメモリおよび/またはNVRAMメモリを含み得る。一実現例では、コンピュータプログラムプロダクトが情報媒体内に有形に具体化される。コンピュータプログラムプロダクトは、実行されると上述のような1つ以上の方法を実行する命令を含む。情報媒体は、メモリ664、拡張メモリ674、またはプロセッサ652上のメモリといった、コンピュータ可読媒体または機械可読媒体であり、これは、例えばトランシーバ668または外部インターフェイス662上で受信され得る。
【0086】
デバイス650は、必要に応じてデジタル信号処理回路を含み得る通信インターフェイス666を介して無線通信し得る。通信インターフェイス666は、とりわけ、GSM(登録商標)音声通話、SMS、EMS、またはMMSメッセージング、CDMA、TDMA、PDC、WCDMA(登録商標)、CDMA2000、またはGPRSといった、様々なモードまたはプロトコル下の通信を提供し得る。そのような通信は、例えば無線周波数トランシーバ668を介して起こり得る。さらに、ブルートゥース、Wi−Fi、または他のそのようなトランシーバ(図示せず)を用いるなどして、短距離通信が起こり得る。さらに、GPS(全地球測位システム)レシーバモジュール670が付加的なナビゲーション関連および位置関連の無線データをデバイス650に提供し得、当該データはデバイス650上で実行されるアプリケーションによって適宜用いられ得る。
【0087】
また、デバイス650は、ユーザから口頭情報を受信して当該情報を使用可能なデジタル情報に変換し得る音声コーデック660を用いて可聴的に通信し得る。音声コーデック660も同様に、例えばデバイス650のハンドセット内で、スピーカを介すなどしてユーザに可聴音を生成し得る。そのような音は音声電話からの音を含んでいてもよく、録音された音(例えば音声メッセージ、音楽ファイル等)を含んでいてもよく、さらに、デバイス650上で実行されるアプリケーションが生成する音を含んでいてもよい。
【0088】
コンピューティングデバイス650は、図に示すように多数の異なる形態で実現されてもよい。例えば、コンピューティングデバイス650はセルラー電話680として実現されてもよい。また、コンピューティングデバイス650は、スマートフォン682、携帯情報端末、または他の同様のモバイルデバイスの一部として実現されてもよい。
【0089】
本明細書に記載のシステムおよび技術の様々な実現例は、デジタル電子回路、集積回路、特別に設計されたASIC(特定用途向け集積回路)、コンピュータハードウェア、ファームウェア、ソフトウェア、および/またはそれらの組合せで実現され得る。これらの様々な実現例は、少なくとも1つのプログラマブルプロセッサを含むプログラマブルシステム上で実行可能および/または解釈可能な1つ以上のコンピュータプログラムにおける実現例を含んでいてもよく、当該プロセッサは専用であっても汎用であってもよく、ストレージシステム、少なくとも1つの入力デバイス、および少なくとも1つの出力デバイスからデータおよび命令を受信するように、かつこれらにデータおよび命令を送信するように結合されている。
【0090】
これらのコンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーションまたはコードとしても知られる)は、プログラム可能なプロセッサのための機械命令を含み、高水準手続き型および/もしくはオブジェクト指向型プログラミング言語で、ならびに/またはアセンブリ/機械言語で実装することができる。本明細書で用いられるとき、用語「機械可読媒体」「コンピュータ可読媒体」は、機械命令を機械可読信号として受信する機械可読媒体を含む、機械命令および/またはデータをプログラマブルプロセッサに提供するよう用いられる任意のコンピュータプログラム製品、装置および/またはデバイス(例えば、磁気ディスク、光ディスク、メモリ、プログラマブルロジックデバイス(PLD))を指す。「機械可読信号」という用語は、機械命令および/またはデータをプログラマブルプロセッサに提供するために用いられる任意の信号を指す。
【0091】
ユーザとの対話を提供するために、本明細書に記載されるシステムおよび技術は、例えばCRT(陰極線管)またはLCD(液晶ディスプレイ)モニタといったユーザに対して情報を表示するための表示デバイスと、例えばマウス、トラックボールといったユーザがコンピュータに入力を提供可能であるキーボードおよびポインティングデバイスとを有するコンピュータ上で実現され得る。他の種類のデバイスが同様に、ユーザとの対話を提供するために用いられ得;例えば、ユーザに提供されるフィードバックは、例えば視覚フィードバック、聴覚フィードバックまたは触覚フィードバックといった任意の形態の感覚フィードバックであり得;ユーザからの入力は、音響入力、発話入力、または触覚入力を含む任意の形態で受取られ得る。
【0092】
本明細書に記載されるシステムおよび技術は、バックエンドコンポーネントを例えばデータサーバとして含むか、またはミドルウェアコンポーネント、例えばアプリケーションサーバを含むか、例えば本明細書に記載されるシステムおよび技術の実現例とユーザが対話することが可能であるグラフィカルユーザインターフェイスもしくはウェブブラウザを有するクライアントコンピュータといったフロントエンドコンポーネントを含むか、またはそのようなバックエンドコンポーネント、ミドルウェアコンポーネントもしくはフロントエンドコンポーネントの任意の組合せを含む計算システムにおいて実現され得る。システムのコンポーネントは、例えば通信ネットワークといったデジタルデータ通信の任意の形態または媒体によって相互接続され得る。通信ネットワークの例は、ローカルエリアネットワーク(「LAN」)、ワイドエリアネットワーク(「WAN」)およびインターネットワークを含む。
【0093】
計算システムはクライアントおよびサーバを含むことができる。クライアントとサーバとは一般に互いから遠隔にあり、典型的には通信ネットワークを通じて対話する。クライアントとサーバとの関係は、それぞれのコンピュータ上で実行されるとともに互いに対してクライアント−サーバ関係を有するコンピュータプログラムによって発生する。
【0094】
いくつかの実装形態では、図6に示されているコンピューティングデバイスは、仮想現実(VRヘッドセット690)とインターフェイスをとるセンサを含むことができる。例えば、図6に示すコンピューティングデバイス650または他のコンピューティングデバイスに含まれる1つまたは複数のセンサは、VRヘッドセット690に入力を与えるか、または一般に、VR空間に入力を与えることができる。センサは、タッチスクリーン、加速度計、ジャイロスコープ、圧力センサ、バイオメトリックセンサ、温度センサ、湿度センサ、および周囲光センサを含み得るが、これらに限定されない。コンピューティングデバイス650は、センサを用いて、VR空間内のコンピューティングデバイスの絶対位置および/または検出された回転を判断することができ、それは次いでVR空間への入力として用いることができる。例えば、コンピューティングデバイス650は、コントローラ、レーザポインタ、キーボード、武器などのような仮想オブジェクトとしてVR空間に組み込まれてもよい。VR空間に組み込まれたときのユーザによるコンピューティングデバイス/仮想オブジェクトの位置決めは、ユーザがコンピューティングデバイスを位置決めして、仮想オブジェクトをVR空間内で特定の態様で見ることを可能にすることができる。例えば、仮想オブジェクトがレーザポインタを表す場合、ユーザは、あたかもそれが実際のレーザポインタであるかのようにコンピューティングデバイスを操作することができる。ユーザは、コンピューティングデバイスを左右、上下、円形などに動かし、レーザポインタを用いるのと同様の態様でコンピューティングデバイスを用いることができる。
【0095】
いくつかの実装形態では、コンピューティングデバイス650上に含まれるかまたはそれに接続される1つまたは複数の入力デバイスをVR空間への入力として用いることができる。入力デバイスは、タッチスクリーン、キーボード、1つまたは複数のボタン、トラックパッド、タッチパッド、ポインティングデバイス、マウス、トラックボール、ジョイスティック、カメラ、マイク、イヤホンまたは入力機能を有するイヤホン、ゲームコントローラ、またはその他の接続可能な入力デバイスを含み得るが、それらに限定はされない。コンピューティングデバイス650がVR空間に組み込まれるときに、コンピューティングデバイス650に含まれる入力デバイスと対話するユーザは、特定のアクションをVR空間で生じさせることができる。
【0096】
いくつかの実装形態では、コンピューティングデバイス650のタッチスクリーンは、VR空間内でタッチパッドとしてレンダリングすることができる。ユーザは、コンピューティングデバイス650のタッチスクリーンと対話することができる。対話は、例えば、VRヘッドセット690において、VR空間内のレンダリングされたタッチパッド上の動作としてレンダリングされる。レンダリングされた動作は、VR空間内でオブジェクトを制御することができる。
【0097】
いくつかの実装形態では、コンピューティングデバイス650に含まれる1つまたは複数の出力デバイスは、VR空間においてVRヘッドセット690のユーザに出力および/またはフィードバックを与えることができる。出力およびフィードバックは、視覚的、戦術的、または音声的であり得る。出力および/またはフィードバックは、振動、1つまたは複数のライトまたはストロボのオンおよびオフまたは明滅および/もしくは点滅、警報の鳴動、チャイムの再生、歌の再生、ならびに音声ファイルの再生を含むことができるが、これらに限定されない。出力デバイスは、振動モータ、振動コイル、圧電装置、静電装置、発光ダイオード(LED)、ストロボ、およびスピーカを含むことができるが、これらに限定されない。
【0098】
いくつかの実装形態では、コンピューティングデバイス650は、コンピュータにより生成される3D環境において別のオブジェクトとして現れてもよい。ユーザによるコンピューティングデバイス650との対話(例えば、回転、振動、タッチスクリーンへの接触、指をタッチスクリーン上でスワイプ)は、VR空間内のオブジェクトとの対話として解釈することができる。VR空間内のレーザポインタの例では、コンピューティングデバイス650は、コンピュータにより生成される3D環境内の仮想レーザポインタとして現れる。ユーザがコンピューティングデバイス650を操作すると、VR空間内のユーザはレーザポインタの移動を見る。ユーザは、VR空間におけるコンピューティングデバイス650との対話からのフィードバックをコンピューティングデバイス650またはVRヘッドセット690上で受け取る。
【0099】
いくつかの実装形態では、コンピューティングデバイスに加えて1つまたは複数の入力デバイス(たとえば、マウス、キーボード)を、コンピュータにより生成される3D環境でレンダリングすることができる。レンダリングされた入力デバイス(例えば、レンダリングされたマウス、レンダリングされたキーボード)は、VR空間内のオブジェクトを制御するためにVR空間内にレンダリングされるとおりに用いることができる。
【0100】
コンピューティングデバイス600は、ラップトップ、デスクトップ、ワークステーション、携帯情報端末、サーバ、ブレードサーバ、メインフレーム、および他の適切なコンピュータなどの様々な形態のデジタルコンピュータを表すことを意図している。コンピューティングデバイス650は、携帯情報端末、携帯電話、スマートフォン、および他の同様のコンピューティングデバイスなどの、様々な形態のモバイルデバイスを表すことを意図している。本明細書に示された構成要素、それらの接続および関係、ならびにそれらの機能は、例示的なものにすぎず、本文書に記載および/または特許請求される本発明の実装形態を限定するものではない。
【0101】
多数の実施形態が記載された。それにもかかわらず、明細書の精神および範囲から逸脱することなく、様々な修正がなされ得ることが理解されるであろう。
【0102】
加えて、図面において示される論理フローは、望ましい結果を達成するために、示された特定の順序または連続する順序を必要としない。さらに、説明されたフローから、他のステップが与えられてもよく、またはステップが削除されてもよく、他の構成要素が、説明されたシステムに追加され、またはそこから除去されてもよい。従って、他の実施形態は特許請求の範囲内にある。
図1A
図1B
図2A
図2B
図3
図4
図5
図6