(58)【調査した分野】(Int.Cl.,DB名)
前記第1の機能は仮想ペインティングプログラムにおいてブラシ機能を含み、前記第2の機能は前記仮想ペインティングプログラムにおいてパレット機能を含み、前記ジェスチャの検出は前記仮想ペインティングプログラムにおいて前記ブラシ機能および前記パレット機能のスワッピングを引き起こす、請求項1に記載の方法。
前記コンピュータシステムにおけるデフォルトとして、前記ジェスチャの検出に応じて、前記第1の仮想コントローラからの前記第1の機能の割当ての解除、または、前記第2の機能の前記第1の仮想コントローラとの対応付けを記憶する、請求項1〜請求項8のいずれか1項に記載の方法。
前記第1の機能は仮想ペインティングプログラムにおいてパレット機能を含み、前記第2の機能は前記仮想ペインティングプログラムにおいてブラシ機能を含み、前記第1の仮想コントローラからの前記第1の機能の割当ての解除によって、前記第1および第2の物理的なコントローラの双方を使用して前記仮想ペインティングプログラムにおいて前記ブラシ機能を実行できる、請求項13に記載の方法。
前記センサによって生成されたセンサデータから、前記1以上の物理的なコントローラに関する速度および位置情報を推定することをさらに備える、請求項15または請求項16に記載の方法。
コンピュータプログラムであって、1以上のプロセッサによって実行されると、前記プロセッサに請求項1〜請求項19のいずれか1項に記載の操作を行わせる命令を含むコンピュータプログラム。
【発明の概要】
【課題を解決するための手段】
【0005】
概要
第1の態様では、方法は:コンピュータシステムにおいて、仮想コントローラを物理的なコントローラと対応付けることと;第1の機能を仮想コントローラに割当てて、物理的なコントローラを用いて第1の機能の性能を提供することと;物理的なコントローラを用いて行われたジェスチャを検出することと;ジェスチャの検出に応じて、仮想コントローラから第1の機能の割当てを解除する、または、第2の機能を仮想コントローラに割当てることとを備える。
【0006】
一般的に、本明細書で説明する物理的なコントローラおよび他の物理的なコントローラは、手持ち式のコントローラである、ユーザの手で持つためのコントローラであり得る。物理的なコントローラは、たとえばコントローラの平行移動および/または回転運動によって、および/または、ボタン、スイッチ、検出器、およびコントローラ上にまたはコントローラによって設けられた他の制御要素の使用によって、ユーザがコンピュータシステムに入力を行うことができるように適合されていることが一般的である。そのため、本特許明細書で説明する仮想コントローラおよび他の仮想コントローラは、物理的なコントローラのユーザに対して提示される仮想現実空間において提示される仮想または論理的コントローラであり得る。仮想空間における仮想コントローラの位置および/または移動は、一般的に、物理的なコントローラの位置および/または移動に対応し得る、または応答し得る。本特許明細書で説明するジェスチャおよび他のジェスチャは、一般的に、物理的なコントローラの、したがって一般に仮想空間における仮想コントローラの特定の平行運動および/または回転運動および/または軌跡によって提供され得る。
【0007】
実施形態例は、以下の特徴のいずれかまたは全てを含み得る。
仮想コントローラが第1の仮想コントローラとして定義され、物理的なコントローラが第1の物理的なコントローラとして定義される場合、方法は、コンピュータシステムにおける第2の仮想コントローラを第2の物理的なコントローラと対応付けることと、第2の機能を第2の仮想コントローラに割当てることとを備え得る。ジェスチャの検出に応じて、第1の機能は第1の仮想コントローラからの割当てを解除され第2の仮想コントローラに割当てられ得、第2の機能は第2の仮想コントローラからの割当てを解除され第1の仮想コントローラに割当てられ得る。
【0008】
第1の機能は、仮想ペインティングプログラムにおいてブラシ機能を含み得、第2の機能は、仮想ペインティングプログラムにおいてパレット機能を含み得、ジェスチャの検出は、仮想ペインティングプログラムにおいてブラシ機能およびパレット機能のスワッピングを引き起こす。
【0009】
ジェスチャは、第1および第2の物理的なコントローラを用いてなされ得る。たとえば、ジェスチャは、第1および第2の物理的なコントローラが互いに近づけられその後互いに遠ざけられること、または、第1および第2の物理的なコントローラのそれぞれの端部が互いに近づけられその後互いに遠ざけられることを含み得る。
【0010】
第1および第2の物理的なコントローラのそれぞれの端部は、第1および第2の物理的なコントローラのそれぞれの底端部であり得る。たとえば、各コントローラは、ニュートラルポジションで通常の手持ち使用において方向付けられている場合、上端部および底端部を有していると定義され得る。たとえば、上端部はユーザの親指および人差し指により近く、底端部はユーザの小指により近い。
【0011】
第1および第2の物理的なコントローラは、互いに同一であり得る、または、実質的に同じであり得る。
【0012】
この方法はさらに、コンピュータシステムにおけるデフォルトとして、ジェスチャの検出に応じて、仮想コントローラからの第1の機能の割当ての解除、または、第2の機能の仮想コントローラとの対応付けを記憶することを備え得る。
【0013】
仮想コントローラは、コンピュータシステムによって生成された仮想空間において定義され得、第1の機能はジェスチャの検出に応じて仮想コントローラからの割当てを解除される。この方法はさらに、仮想空間においてポイントを定義することと、ジェスチャの検出に応じて第1の機能をポイントと対応付けることとを備える。第2の機能は、ジェスチャの検出が検出される前に、仮想コントローラに既に割当てられ得る。
【0014】
また、これに関連して、仮想コントローラは第1の仮想コントローラとして定義され得、物理的なコントローラは第1の物理的なコントローラとして定義され得る。この方法はさらに、コンピュータシステムにおける第2の仮想コントローラを第2の物理的なコントローラと対応付けることと;第2の機能を第2の仮想コントローラに割当てることとを備える。
【0015】
この方法はさらに、第2の機能を第1の仮想コントローラにも割当てることを備え得る。たとえば、第1の機能は仮想ペインティングプログラムにおいてパレット機能を含み得、第2の機能は仮想ペインティングプログラムにおいてブラシ機能を含み、第1の仮想コントローラからの第1の機能の割当ての解除によって、第1および第2の物理的なコントローラの双方を使用して仮想ペインティングプログラムにおいてブラシ機能を実行可能である。
【0016】
上述で説明され以下でより詳細に論じられるさまざまな態様において、ジェスチャは、たとえば、物理的なコントローラ上に位置し得るセンサを用いて検出され得る。説明される方法はさらに、センサによって生成されたセンサデータから、物理的なコントローラに関する速度および位置情報を推定することを備え得る、および/または、センサデータから物理的なコントローラについての方位データを推定することを備え得る。
【0017】
本発明はまた、説明される方法の実行のために、コンピュータプログラムコードを保持する1つ以上のコンピュータ可読媒体を提供する。たとえば、本発明は、非一時的な記憶媒体において有形に具現化されたコンピュータプログラム製品を提供する。コンピュータプログラム製品は、実行されると、プロセッサに:コンピュータシステムにおいて、仮想コントローラを物理的なコントローラと対応付けることと;第1の機能を仮想コントローラに割当てて、物理的なコントローラを用いて第1の機能の性能を提供することと;物理的なコントローラを用いて行われたジェスチャを検出することと;ジェスチャの検出に応じて、仮想コントローラから第1の機能の割当てを解除する、または、第2の機能を仮想コントローラに割当てることとを含む操作を行わせる命令を含む。
【0018】
本発明はまた、説明される方法の実行のために配置された装置を提供する。たとえば、本発明は:プロセッサと;非一時的な記憶媒体において有形に具現化されたコンピュータプログラム製品とを備えるシステムを提供する。コンピュータプログラム製品は、実行されると、プロセッサに:コンピュータシステムにおいて、仮想コントローラを物理的なコントローラと対応付けることと;第1の機能を仮想コントローラに割当てて、物理的なコントローラを用いて第1の機能の性能を提供することと;物理的なコントローラを用いて行われたジェスチャを検出することと;ジェスチャの検出に応じて、仮想コントローラから第1の機能の割当てを解除する、または、仮想コントローラに第2の機能を割当てることとを含む操作を行わせる命令を含む。
【0019】
このようなシステムは、関連する方法を実現するために必要とされる1つ以上の物理的なコントローラも備え得る。
【発明を実施するための形態】
【0021】
さまざまな図における同様の参照符号は、同様の要素を示す。
詳細な説明
本特許明細書は、仮想コントローラのための機能割当ての例について説明する。従来、仮想現実(VR)アプリケーションを使用している、または使用しようとしている人は、VRシステムの2つ以上の物理的なコントローラ間で、少なくとも1つの機能の再割当てまたは再対応付けが可能である。いくつかの実施形態では、人は、あらかじめ定義されたジェスチャを実行して、再割当てまたは再対応付けを開始可能である。たとえば、人は、物理的なコントローラのそれぞれの端部を互いに近づけ、その後互いに遠ざけて、1つ(または複数)の機能を再割当てしなければならないという意図の信号を送ることができる。これは、たとえばメニューシステムを検索するよりも、コントローラ間でVR機能の再割当てを行うより簡単で、より早く、および/または、より直感的な方法であり得る。
【0022】
図1A〜
図1Bは、仮想コントローラのための機能割当ての例を示す図である。ここで、仮想コントローラは、VRプログラムによって生成される仮想空間100に示されている。たとえば、仮想空間100は、VRプログラムに接続されたVRヘッドセット(たとえば、ヘッドマウントディスプレイ)を着用した人が見ることができる。ここで、1つ以上の制御装置104を有する仮想コントローラ102は、仮想空間100において見ることができる。たとえば、1つ(または複数)の制御装置104は、対応する物理的なコントローラ(図示せず)上でアクセス可能な物理的制御装置に対応可能である。仮想コントローラ102の形状は、物理的なコントローラの形状に対応、または類似し得る。同様に、1つ以上の制御装置108を有する他の仮想コントローラ106も仮想空間100に示されている。
【0023】
VRプログラムを操作する人はそれぞれの手に物理的なコントローラの各々を持つことができる。たとえば、仮想コントローラ102のための物理的なコントローラを右手に持ち、仮想コントローラ106のための物理的なコントローラを左手に持つ。他の例として、コントローラは、人の体のある部分に取り付け可能である。コントローラは、その位置、速度および/または方位について追跡可能である。人が手または体の他の部分を使用して1つ(または複数)のコントローラを移動させるとき、仮想コントローラ102および/または106は、それに応じて仮想空間100内で移動可能である。
【0024】
この例では、仮想空間100はVRプログラム内のペインティング環境と対応付けられている。
図1Aでは、仮想コントローラ102は、それ自体に割当てられたブラシ機能を有する。たとえば、仮想コントローラ102上の先端部110は、当該コントローラのためにブラシ機能が利用可能であることを示す。人は仮想コントローラ102に対応する物理的なコントローラを移動させることによって、仮想空間100内にブラシストロークを生成することができる。たとえば、ここでは、ブラシストローク112は、仮想コントローラ102を用いて仮想空間100内に生成されている。
【0025】
さらに、仮想コントローラ106は、それ自体に割当てられたVRプログラムの他の機能を有する。ここでは、仮想ツールボックス114が、仮想コントローラ106を少なくとも部分的に取り囲むように、仮想空間100内に模式的に示されている。たとえば、仮想ツールボックス114は、それ自体が割当てられた仮想コントローラ、ここでは仮想コントローラ106に対して固定可能であり、それによって、仮想ツールボックス114は、当該仮想コントローラと共に仮想空間100内で移動する。仮想ツールボックス114は、利用可能な1つ以上の仮想機能を含み得る。
【0026】
ここで、仮想ツールボックス
114上のホイール116は、ペインティング環境のブラシ機能のためのパレットに対応する。したがって、ホイール116は、ペインティング環境において1つ以上のパレット機能のために使用可能である。たとえば、先端部110をホイール116の選択された部分に接触させて特定の色、テクスチャ、パターン、および/または他のペイント特徴をペイントブラシに割当てることが可能である。たとえば、ブラシストローク112の1つ以上の特徴は、ホイール116を使用して制御可能である。1つ以上の他の機能を、ツールボックス114と対応付けることが可能である。ここでは、機能118が模式的に示されている。これらは、ペインティング環境の他の機能、たとえば、異なるマーク付け実行(ペンなど)の選択および/または現在のマーク付け実行(濃さなど)のあるアスペクトの変更などに関連し得る。
【0027】
いくつかの実施形態例では、仮想コントローラ102は、現在支配的なコントローラであると考えることができる。なぜなら、仮想空間100にマーク付けを行うという比較的要求がより厳しい操作のために使用されるからである。これに対して、仮想コントローラ106は、現在非支配的なコントローラであると考えることができる。なぜなら、その目的は主に、仮想コントローラ102によって使用されるべき1つ以上のツールを提供すること、および/または、仮想コントローラ102の機能を増大させることであり得るからである。
【0028】
VRプログラムは、仮想空間100内で機能の割当ておよび/または機能の割当ての解除を行う1つ以上の方法を提供可能である。いくつかの実施形態例では、スワッピング機能120によって模式的に示されるように、仮想コントローラ102と106との間で機能をスワップ可能である。たとえば、これは、ユーザが手で物理的なコントローラを物理的に切替えることを必要とせずに、一方の手から他方の手に支配的なコントローラを切替えるために使用可能である。スワッピング機能120は、仮想コントローラ102および/または106に対応する物理的なコントローラの1つ以上を用いて、あらかじめ定義されたジェスチャを行うことによって引き起こされ得る。
【0029】
人がそのようなあらかじめ定義されたジェスチャを実行し、システムがこれをスワッピング機能120を起動する信号と解釈したとする。
図1Bは、スワッピング機能120を実行後の仮想空間100の例を示す図である。仮想コントローラ102および106は、ジェスチャが行われる前ではなく行われた後に異なる位置になり得る例もあるが、現在、ほぼ
図1Aのような位置にある。しかしながら、VRプログラム内の機能は、ジェスチャに応じて再割当てされている。たとえば、先端部110はもはや仮想コントローラ102には割当てられておらず、仮想コントローラ106に現在割当てられている。同様に、ツールボックス114およびそれと対応付けられたツールはもはや仮想コントローラ106に割当てられておらず、仮想コントローラ102に現在割当てられている。マーク付け実行として定義されたときに仮想コントローラ102を用いて生成されたブラシストローク112が、依然として仮想空間100で可視状態である。人はそこで、マーク付け実行として、仮想コントローラ106を用いて仮想空間100に1つ以上のマーク付けを行うことが可能である。たとえば、人は、仮想コントローラ106を用いて他のブラシストローク122を生成可能である。これに対して、仮想コントローラ102は、ホイール116、1つ(または複数)の機能118、および/または仮想ツールボックス114と対応付けられた他の機能のために現在使用可能である。
【0030】
スワッピング機能120は、仮想空間100内で機能の割当てまたは機能の割当ての解除を行う便利な方法を提供可能である。たとえば、人がVRプログラムを起動すると
図1Aの構成が割当てられると仮定する。すなわち、ブラシ機能が、右側の物理的なコントローラを用いた起動に現在利用可能である。これはデフォルト設定であってもよい、または、起動されると主装置(たとえば、VRプログラムを実行するコンピュータ筐体)に対する物理的なコントローラの空間位置に基づいていてもよい。さらに、人が右手ではなく左手を使用したペイントを好むと仮定する。そのため、人は、スワッピング機能120を起動して仮想コントローラ102から仮想コントローラ106へブラシ機能を便利に再割当て可能である(左手を用いて作動される)、かつ、残りの機能を仮想コントローラ102に再割当て可能である(右手を用いて作動される)。このスワッピング(または他の再割当てもしくは割当て解除)がシステムによって行われると、その結果として生じる1つ(または複数)の割当てを、VRプログラムのためにデフォルトとして記憶可能である。たとえば、同じユーザが次にVRプログラムを起動すると、
図1Bに示すように割当てが行われ得る。1つ以上の機能の割当てまたは再割当ては、行われなくてもよい、または逆でもよい。たとえば、ユーザがあらかじめ定義されたジェスチャ(または他のジェスチャ)を再度行うと、システムは過去に行われた割当てを取り消してもよい、または逆にしてもよい。
【0031】
すなわち、コンピュータシステムにおいて、仮想コントローラを物理的なコントローラと対応付けることを備える方法を行うことができる。たとえば、仮想コントローラ102を、ユーザが右手に持つ物理的なコントローラ(図示せず)と対応付けることができる。この方法は、第1の機能を仮想コントローラに割当てて、物理的なコントローラを用いて第1の機能の性能を与えることを備え得る。たとえば、先端部110によって例示されるブラシ機能を、仮想コントローラ102に割当てることができる。この方法は、物理的なコントローラを用いて行われるジェスチャを検出することを備え得る。たとえば、ユーザは、あらかじめ定義されたジェスチャを行ってスワッピング機能120を起動可能である。この方法は、ジェスチャの検出に応じて、仮想コントローラから第1の機能の割当てを解除すること、または、第2の機能を仮想コントローラに割当てることを備え得る。たとえば、仮想コントローラ102から先端部110の割当てを解除可能である。他の例として、仮想ツールボックス114を仮想コントローラ102に割当て可能である。
【0032】
図2A〜
図2Fは、仮想コントローラのための機能割当ての他の例を示す図である。ここでは、仮想コントローラ
200および202が仮想空間204において示されている。たとえば、仮想空間204を、VRヘッドセットを用いてまたは他の方法で眺めることができる。現在、仮想コントローラ202は、「D」というラベルによって示されるように、支配的なコントローラである。このラベルは、ここでは例示のために用いられており、仮想空間204において可視である必要はない。支配的なコントローラとして定義されたことにより、少なくとも1つの機能が仮想コントローラ202に割当て可能である。
【0033】
ユーザが左側のコントローラから右側のコントローラへ優勢を切替えたいと思っていると仮定する。ユーザは、仮想コントローラ200および202と対応付けられた物理的なコントローラ(図示せず)のうちの1つ以上を用いて、あらかじめ定義されたジェスチャを行うことが可能である。
図2Aの矢印206は、ユーザがここで仮想コントローラ200および202を相互に離し始めたことを示す。
【0034】
図2Bでは、それぞれの矢印208は、ユーザが仮想コントローラ200および202を反対方向に向けたことを示す。たとえば、仮想コントローラ200および202のそれぞれの端部210は、現在向かい合っている。任意の端部を使用可能であり、このような端部はコントローラの上端部および/または底端部を含むが、これに限定されるわけではない。
【0035】
図2Cでは、それぞれの矢印212は、ユーザが仮想コントローラ200および202を互いに向けて、ここでは実質的に水平に移動させることを示す。これは、仮想コントローラ200および202のそれぞれの端部210が相互に接触するまで、またはほぼ接触するまで行うことができる。いくつかの実施形態例では、動きは、仮想コントローラ200および202が最初に少なくとも最小距離だけ離された場合に認識可能であり、その後、これらの装置の互いに向かう動きが開始される。たとえば、これによって、ユーザが意図せずにジェスチャを行うことを避けることができる。
【0036】
図2Dでは、矢印214は、ユーザがその後仮想コントローラ200および202を互いに遠ざけることを示す。いくつかの実施形態例では、これは、
図2Cの互いに近づけられる態様の方向とは実質的に反対方向に行うことができる。いくつかの実施形態例では、仮想コントローラ200および202が少なくとも最小距離だけ遠ざけられると、動きを認識可能である。たとえば、これによって、ユーザが意図せずにジェスチャを行うことを避けることができる。
【0037】
矢印206、208、212および/または214によって示される動きは、システムによって、仮想コントローラ200および202のうちの1つ以上に対する機能の割当ておよび/または機能の割当て解除と対応付けられた、あらかじめ定義されたジェスチャのユーザによる意図された行為であると解釈可能である。たとえば、ジェスチャは、仮想コントローラ200および202と対応付けられた物理的なコントローラが互いに近づけられその後互いに遠ざけられることを含み得る。他の例として、ジェスチャは、物理的なコントローラのそれぞれの端部が互いに近づけられその後互いに遠ざけられることを含み得る。そのような1つ(または複数)のジェスチャの検出に応じて、システムは割当て/割当て解除を行い得る。
【0038】
たとえば、優勢をある仮想コントローラから他の仮想コントローラへと切替えることができる。
図2Eは、仮想コントローラ200が現在支配的なコントローラであることを示す。これに対して、仮想コントローラ202は、もはや支配的なコントローラではない。たとえば、これは、人が1つ以上のVRプログラムにおいて仮想コントローラの利き手を切替える便利な方法であり得る。
【0039】
図2Fは、それぞれの矢印216によって示されるように、ユーザが仮想コントローラ200および202をより直立のまたは前方の方位に向けることを示す図である。いくつかの実施形態例では、これにより、ユーザが1つ(または複数)の仮想コントローラに割当てられた1つ以上の機能の実行を開始するために、1つ(または複数)の仮想コントローラを適切な位置に設けうる。たとえば、ユーザは現在支配的な仮想コントローラ200を用いて仮想空間204において1つ以上の機能を実行可能である。
【0040】
少なくとも1つの物理的なコントローラを用いたジェスチャの性能は、1つ以上の方法で検出可能である。物理的なコントローラ上にまたはこの内部に、および/または、物理的なコントローラの位置および移動を検出可能な他の場所に配置可能なセンサを使用可能である。たとえば、システムの他のコンポーネントは、1つ(または複数)の物理的なコントローラの位置、速度、および/または方位を検出できるように、1つ(または複数)のセンサを含み得る。
【0041】
いくつかの実施形態例では、仮想空間204ならびに仮想コントローラ200および202を生成するVRシステムは、ユーザに提示されるように各フレームが仮想空間の瞬間に対応するフレームに基づいて、動作可能である。フレームごとに、1つ以上の物理的なコントローラの位置をシステムによって決定可能である。物理的なコントローラが移動中の場合、その位置は、あるフレームから次のフレームへと変化し得る。そのようなフレームデータに基づいて、システムは、物理的なコントローラについての1つ以上の特徴を決定可能である。たとえば、物理的なコントローラの速度および位置は、2つ以上のフレームにわたるセンサデータから推定可能である。他の例として、物理的なコントローラの方位(その端部が指し示す方位など)を、センサデータから推定可能である。たとえば、そのような速度、位置および/または方向情報を使用してジェスチャを検出可能であり、これらは例示されたものを含むが、上述の例示に限定されるわけではない。
【0042】
図3は、システム300の例を示す図である。ここでは、システム300は、VR機能を生成するVRシステムである。すなわち、たとえばユーザがVRヘッドセットおよび1つ以上の物理的なコントローラを使用して相互作用するように、VRシステム300を使用して1つ以上のVRアプリケーションを実行可能である。特に、VRシステム300は、1つ以上のVR空間302を生成可能である。たとえば、仮想空間100(
図1A〜
図1B)および/または仮想空間204(
図2A〜
図2F)を生成可能である。
【0043】
ここでは、VRシステム300は、その内部に定義された複数のVR機能304を有する。ある機能は、VRプログラムによって提供されるべきタイプの機能と関連し得る。グラフィックスまたは他のビジュアルアートに関連するVRプログラムでは、VR機能304はブラシ機能およびパレット機能を含み得るが、これら2つはただの例に過ぎない。
【0044】
また、VRシステム300は、その内部に定義された複数のVRコントローラ306を有し得る。いくつかの実施形態例では、仮想コントローラ306のうちの1つ以上は、ユーザがVRコントローラ306を操作可能な物理的なコントローラに視覚的に類似している。たとえば、VRコントローラ306は、仮想コントローラ102および106(
図1A〜
図1B)および/または仮想コントローラ200および202(
図2A〜
図2F)を含み得る。VR機能304は、割当て機能308によって、VRコントローラ306のそれぞれに割当てられる。たとえば、VRコントローラ306のうちの1つは、VR機能304のうちの1つ以上をそれ自体に割当て可能である。VR機能304は、(たとえば、
図1Aの仮想コントローラ102上の先端部110のように)対応するVRコントローラ306の視覚的な機能として示すことができる。割当ては、ユーザによって、および/または、システムによって変更可能である。たとえば、ユーザは、あらかじめ定義されたジェスチャを実行して仮想コントローラに関連するスワッピング機能を起動することができる。スワッピング機能は、割当て機能308の一部である。
【0045】
VRシステム300は、複数の物理的なコントローラ310を含み得る。いくつかの実施形態例では、物理的なコントローラは、位置、速度および/または方位の観点から1つ以上の点においてVRシステムによって追跡される物理的なデバイスであるが、これに限定されるわけではない。たとえば、物理的なコントローラ310は、仮想コントローラ102および106(
図1A〜
図1B)ならびに/または仮想コントローラ200および202(
図2A〜
図2F)を操作するために使用される物理的なコントローラを含み得る。VRコントローラ306は、対応付け機能312によって物理的なコントローラ310のそれぞれと対応付けられる。たとえば、VRコントローラ306のうちの1つが物理的なコントローラ310のうちの1つ以上と対応付けられ得る。その後物理的なコントローラ310を使用して、それ自体が対応付けられたVRコントローラ306を操作可能である。この対応付けは、ユーザおよび/またはシステムによって変更可能である。
【0046】
物理的なコントローラ310は、基本的に互いに同一であり得る。たとえば、各コントローラは他の物理的なコントローラと実質的に同じハードウェア構成(たとえば、その電子機器回路および外観の要素)を有し得、生成された信号(たとえば、固有の識別子)のいくつかの特徴によって区別可能である。他の実施形態例では、物理的なコントローラ310のうちの2つ以上は互いにいくつかの物理的な相違を有し得る。たとえば、ある物理的なコントローラ310は、右手で持たれるように構成された外観要素を有し得、他の物理的なコントローラ310は、左手で持たれるように構成された外観要素を有し得る。
【0047】
検出システム314を使用可能である。検出システム314は、VRシステム300および/または物理的なコントローラ310の一部であり得る、または、他のユニットと相互作用する別のコンポーネントであり得るが、これは単なる例に過ぎない。検出システム314は、1つ以上のセンサ316を使用して物理的なコントローラ310のうちの少なくとも1つに関するいくつかの特徴を決定することに基づいている。この決定は、検出システム314と物理的なコントローラ310との間の結合318を用いて模式的に示されている。たとえば、1つ(または複数)のセンサ316は物理的なコントローラ310の上にまたはこの内部に位置決め可能であり、その位置、速度および/または方向を反映する信号を生成可能である。他の例として、1つ(または複数)のセンサ316は、ユーザがVRシステム300を使用している空間内で(たとえば、室内で)位置決め可能であり、1つまたは複数の態様で1つ(または複数)の物理的なコントローラ310の特徴を検出可能である。センサは、1つ以上の好適なセンシング技術を用いて動作可能である。たとえば、光学、オーディオ、電磁気信号または他の形態の通信を使用可能であるが、これらに限定されるわけではない。
【0048】
検出システム314は、1つ(または複数)の物理的なコントローラ310に関するセンサデータに基づいて1つ以上の信号を生成可能である。いくつかの実施形態例では、位置、速度、および/または方位の推定を行うことができる。たとえば、この推定は、検出システム314によって行うことが可能であり、信号320によって割当て機能308に与えることが可能である。他の例として、信号320は1つ(または複数)の物理的なコントローラ310に関する生センサデータを含み、VRシステム300は、(たとえば、割当て機能308によって)1つまたは複数のタイプの推定を行うことが可能である。したがって、VRコントローラ306のうちの少なくとも1つに対する仮想機能304のうちの1つ以上の割当てを、信号320に基づいて更新可能である。
【0049】
図4〜
図5は、方法400および500の例を示す図である。これらの方法は、VRシステム300(
図3)を含むコンピュータシステムにおいて実行可能であるが、これに限定されるわけではない。いくつかの実施形態例では、非一時的な記憶媒体に有形に記憶可能なコンピュータプログラム製品に命令が記憶されている。命令は、実行されると、プロセッサに方法400および/または500の動作を行わせことができる。1つ以上の追加のステップが行われてもよく、または行われるステップの数はより少なくてもよい。他の例として、2つ以上の動作を異なる順番で行うことができる。
【0050】
方法400から始め、410において、仮想コントローラがコンピュータシステム内の物理的なコントローラと対応付けられる。420において、第1の機能が仮想コントローラに割当てられる。この割当てにより、物理的なコントローラを使用して第1の機能の性能が与えられる。430において、物理的なコントローラを用いて行われたジェスチャが検出される。440において、ジェスチャの検出に応じて、第1の機能は仮想コントローラから割当てを解除される、または、第2の機能が仮想コントローラに割当てられる。
【0051】
次に方法500に進み、510において、センサデータを受信可能である。このセンサデータは、1つ以上の物理的なコントローラと関連し得る。520において、1つ(または複数)の物理的なコントローラに関する速度データをセンサデータから推定可能である。530において、1つ(または複数)の物理的なコントローラに関する位置データをセンサデータから推定可能である。540において、1つ(または複数)の物理的なコントローラに関する方位データをセンサデータから推定可能である。550において、1つ(または複数)の物理的なコントローラを用いてなされた1つ以上のジェスチャを検出可能である。これは
図2A〜
図2Fにおいて例示されたジェスチャを含み得るが、これらに限定されるわけではない。
【0052】
図6A〜
図6Cは、仮想コントローラのための機能割当ての他の例を示す図である。ここでは、仮想空間600は現在、仮想コントローラ602を含む。仮想コントローラ602を、物理的なコントローラ(図示せず)を用いて操作可能である。仮想コントローラ602は、それ自体に割当てられた1つ以上の機能を有しており、それらの機能のうちの一部は、仮想空間600において可視であるグリッド604によって模式的に示されている。たとえば、グリッド604は、ユーザが物理的なコントローラを用いて仮想コントローラ602を操作することによって現在行うことが可能な少なくとも1つの機能を示す。ここで、ユーザが仮想コントローラ602からグリッド604によって示される1つ(または複数)の機能を一時的に取り除こうとしていると仮定する。この目的のために、ユーザは、仮想空間600において定義されるポイント606を使用可能である。
【0053】
いくつかの実施形態例では、ユーザは、仮想コントローラ602の少なくとも物理的なコントローラを用いて、あらかじめ定義されたジェスチャを行い得る。ジェスチャが行われたとシステムが認識すると、システムは代わりに、仮想コントローラ602の1つ以上の機能をポイント606に割当て可能である。
図6Bは、グリッド604が仮想コントローラ602に現在割当てられているのではなく仮想空間600内のポイント606に現在割当てられていることを示す。この動作は、たとえば、ユーザがあらかじめ定義されたジェスチャを再度行うと元に戻せる。
【0054】
仮想コントローラ602に割当てられた1つ以上の機能は、グリッド604が仮想コントローラ602からの割当てを解除された後も留まることが可能である。ここで、仮想コントローラ602には依然として先端部608が設けられている。先端部608は、グリッド604の割当て解除の前に仮想コントローラ602に割当てておくこともできる。たとえば、ペインティングを特徴とするVRプログラムにおいて、先端部608は、たとえばブラシ機能によって、仮想コントローラ602を用いてペイント(描画)する能力を模式的に示し得る。したがって、ユーザは、システムが仮想コントローラ602から他の1つ(または複数)の機能の割当てを解除した後も、仮想コントローラ602を使用してペイントまたは描画する能力を依然として有しうる。これによって、実用的な柔軟性がもたらされ得る。たとえば、
図6Cは、システムが、仮想コントローラ602を操作するものではなく、他の物理的なコントローラを使用して操作される他の仮想コントローラ610を有し得ることを示す図である。仮想コントローラ610は、それ自体の対応する先端部612を有し得る。したがって、ユーザは現在、仮想空間600における仮想ペインティングのために、仮想コントローラ602および610のいずれか、または仮想コントローラ602および610の双方を同時に使用可能である。どこかの時点で、グリッド604の1つ(または複数)の機能を使用するために、ユーザは、必要とされるジェスチャを行ってポイント606から1つ(または複数の)機能の割当てを解除可能であり、代わりに、1つ(または複数)の機能を仮想コントローラ602および610のうちの少なくとも1つに割当てることが可能である。
【0055】
図7は、ここで説明する技術を実現するために使用可能なコンピュータデバイス およびモバイルコンピュータデバイスの例を示す図である。
図7は、ここで説明する技術と共に使用可能な、汎用コンピュータデバイス700および汎用モバイルコンピュータデバイス750の例を示す図である。コンピューティングデバイス700は、様々な形式のデジタルコンピュータ、たとえば、ラップトップ、デスクトップ、タブレット、ワークステーション、パーソナルデジタルアシスタント、テレビ、サーバ、ブレードサーバ、メインフレーム、および他の好適なコンピューティングデバイスを表すように意図されている。コンピューティングデバイス750は、様々な形式のモバイルデバイス、たとえば、パーソナルデジタルアシスタント、携帯電話、スマートフォン、および他の類似のコンピューティングデバイスを表すように意図されている。ここで示すコンポーネント、これらの接続および関係、ならびにこれらの機能は、例示に過ぎないことが意図されており、本特許明細書で説明される発明および/または請求項の実施を限定するように意図されたものではない。
【0056】
コンピューティングデバイス700は、プロセッサ702、メモリ704、記憶装置706、メモリ704と高速拡張ポート710とに接続する高速インターフェース708、および低速バス714と記憶装置706とに接続する低速インターフェース712を備える。プロセッサ702は、半導体を利用したプロセッサであり得る。メモリ704は、半導体を利用したメモリであり得る。コンポーネント702、704、706、708、710、および712の各々は、さまざまなバスを用いて相互接続されており、共通のマザーボードにまたは他の好適な態様で必要に応じて搭載可能である。プロセッサ702は、コンピューティングデバイス700内での実行のための命令を処理し得る。これらの命令は、高速インターフェース708に接続されたディスプレイ716などの、外部入出力デバイス上のGUIのために図形情報を表示するようにメモリ704または記憶装置706に記憶された命令を含む。他の実施形態例では、複数のプロセッサおよび/または複数のバスは、必要に応じて、複数のメモリおよび複数のタイプのメモリと共に使用可能である。また、複数のコンピューティングデバイス700は、必要な動作の一部を提供する各デバイスと接続され得る(たとえば、サーババンク、ブレードサーバのグループ、またはマルチプロセッサシステムとして)。
【0057】
メモリ704は、コンピューティングデバイス700内の情報を記憶する。ある実施形態例では、メモリ704は、1つまたは複数の揮発性メモリユニットである。他の実施形態例では、メモリ704は、1つまたは複数の不揮発性メモリユニットである。また、メモリ704は、磁気ディスクまたは光学ディスクなど、他の形式のコンピュータ可読媒体であり得る。
【0058】
記憶装置706は、コンピューティングデバイス700のために大容量記憶装置を提供可能である。ある実施形態例では、記憶装置706は、フロッピー(登録商標)ディスクデバイス、ハードディスクデバイス、光学ディスクデバイス、またはテープデバイス、フラッシュメモリもしくは他の類似の固体状態記憶装置デバイス、またはストレージエリアネットワークもしくは他の構成におけるデバイスを含むデバイスの配列であり得る、またはこれらを含み得る。コンピュータプログラム製品は、情報担体において有形に具現化可能である。また、コンピュータプログラム製品は、実行されると上述のような1つ以上の方法を行う命令も含み得る。情報担体は、メモリ704、記憶装置706、またはプロセッサ702上のメモリなど、コンピュータ可読媒体またはマシン可読媒体である。
【0059】
高速コントローラ708はコンピューティングデバイス700のための帯域幅集中操作を処理する一方で、低速コントローラ712は、より低い帯域幅集中操作を処理する。機能のこのような割当ては、例示にすぎない。ある実施形態例では、高速コントローラ708は、メモリ704、ディスプレイ716(たとえば、グラフィックプロセッサまたはアクセラレータを介して)、および、さまざまな拡張カード(図示せず)を受け付け可能な高速拡張ポート710に接続される。本実施形態例では、低速コントローラ712は、記憶装置706および低速拡張ポート714に接続される。さまざまな通信ポート(たとえば、USB、ブルートゥース(登録商標)、イーサネット(登録商標)、無線イーサネット)を含み得る低速拡張ポートは、たとえばネットワークアダプタを介して、キーボード、ポインティングデバイス、スキャナなどの1つ以上の入出力デバイス、または、スイッチもしくはルータなどのネットワーキングデバイスに接続可能である。
【0060】
コンピューティングデバイス700は、図に示すように、多くの異なる形式で実現可能である。たとえば、標準的なサーバ720として、またはそのようなサーバのグループにおいて何度も実現可能である。また、ラックサーバシステム724の一部としても実現可能である。さらに、ラップトップコンピュータ722などのパーソナルコンピュータにおいて実現可能である。代替的に、コンピューティングデバイス700からのコンポーネントは、デバイス750などのモバイルデバイス(図示せず)における他のコンポーネントと組み合わせ得る。このようなデバイスの各々は、コンピューティングデバイス700、750のうちの1つ以上を含み得、システム全体を、互いに通信する複数のコンピューティングデバイス700、750で構成し得る。
【0061】
コンピューティングデバイス750は、他のコンポーネントのうち、プロセッサ752、メモリ764、ディスプレイ754などの入出力デバイス、通信インターフェース766、およびトランシーバ768を含む。また、デバイス750には、追加のストレージを提供するために、マイクロドライブまたは他のデバイスなどの記憶デバイスが設けられ得る。コンポーネント750、752、764、754、766、および768の各々は、さまざまなバスを用いて相互接続され、これらのコンポーネントのうちの複数は、共通のマザーボードにまたは必要に応じて他の態様で搭載され得る。
【0062】
プロセッサ752は、メモリ764に記憶された命令を含む、コンピューティングデバイス750内の命令を実行可能である。プロセッサは、別々の複数のアナログおよびデジタルプロセッサを含むチップのチップセットとして実現可能である。プロセッサは、たとえば、ユーザインターフェース、デバイス750によって実行されるアプリアケーション、およびデバイス750による無線通信の制御など、デバイス750の他のコンポーネントの協調をもたらし得る。
【0063】
プロセッサ752は、ディスプレイ754に接続された制御インターフェース758およびディスプレイインターフェース756を介してユーザと通信可能である。ディスプレイ754は、たとえば、TFT LCD(薄膜トランジスタ液晶ディスプレイ)もしくはOELD(有機発光ダイオード)ディスプレイ、または他の好適なディスプレイ技術であり得る。ディスプレイインターフェース756は、ディスプレイ754を駆動してユーザにグラフィカル情報および他の情報を提示するための好適な回路を含み得る。制御インターフェース758は、ユーザからのコマンドを受信し得、プロセッサ752に送信するためにコマンドを変換し得る。さらに、外部インターフェース762は、デバイス750の他のデバイスとの近距離通信が可能になるように、プロセッサ752との通信において提供され得る。外部インターフェース762は、たとえば、いくつかの実施形態例では有線通信を提供し得る、または他の実施形態例では無線通信を提供し得る、かつ、複数のインターフェースも使用し得る。
【0064】
メモリ764は、コンピューティングデバイス750内の情報を記憶する。メモリ764は、1つもしくは複数のコンピュータ可読媒体、1つもしくは複数の揮発性メモリユニット、または1つもしくは複数の不揮発性メモリユニットのうちの1つまたは複数として実現可能である。また、拡張メモリ774を、拡張インターフェース772を通じてデバイス750に設ける、および接続することが可能であり、このインターフェースは、たとえば、SIMM(シングルインラインメモリモジュール)カードインターフェースを含み得る。このような拡張メモリ774は、デバイス750のために追加の記憶空間を提供し得る、または、デバイス750のためにアプリケーションまたは他の情報を記憶し得る。具体的に、拡張メモリ774は、上述の処理の実行または補足を行う命令を含み得、セキュアな情報も含み得る。そのため、たとえば、拡張メモリ774はデバイス750のためのセキュリティーモジュールとして提供可能であり、デバイス750のセキュアな使用を許可する命令でプログラム可能である。さらに、セキュアなアプリケーションは、追加の情報と共にSIMMカードを介して提供され得、たとえば、ハッキング不可能な態様でSIMMカードに識別情報を置く。
【0065】
メモリは、たとえば、以下で説明するように、フラッシュメモリおよび/またはNVRAMメモリを含み得る。一実施形態例では、コンピュータプログラム製品は、情報担体において有形に具現化される。コンピュータプログラム製品は、実行されると、上述のような1つまたは複数の方法を行う命令を含む。情報担体は、たとえばトランシーバ768もしくは外部インターフェース762を介して受信可能なメモリ764、拡張メモリ774、またはプロセッサ752上のメモリなどの、コンピュータ可読媒体またはマシン可読媒体である。
【0066】
デバイス750は、必要に応じてデジタル信号処理回路を含み得る通信インターフェース766を介して無線通信可能である。通信インターフェース766は、とりわけ、GSM(登録商標)音声電話、SMS、EMSもしくはMMSメッセージング、CDMA、TDMA、PDC、WCDMA(登録商標)、CDMA2000、またはGPRSなどの、さまざまなモードまたはプロトコールで通信を提供し得る。このような通信は、たとえば、無線周波トランシーバ768を通じて発生し得る。さらに、近距離通信は、ブルートゥース、WiFiまたは他のそのようなトランシーバ(図示せず)を使用することによって発生し得る。さらに、GPS(全地球測位システム)レシーバモジュール770は、追加のナビゲーション関連無線データおよび位置関連無線データをデバイス750に提供し得る。これらの情報は、デバイス750上で実行されているアプリケーションによって必要に応じて使用され得る。
【0067】
デバイス750は、ユーザからの音声情報を受信して利用可能なデジタル情報に変換し得るオーディオコーデック760を用いて、可聴的に通信することも可能である。同様に、オーディオコーデック760は、たとえばデバイス750のハンドセットにおいてスピーカを通して、ユーザのために可聴音を生成することも可能である。このような音は、電話音声コールからの音を含み得る、記録された音(たとえば、ボイスメッセージ、ミュージックファイルなど)を含み得る、および、デバイス750上で動作するアプリケーションによって生成された音も含み得る。
【0068】
コンピューティングデバイス750は、図に示すように、複数の異なる形式で実現可能である。たとえば、携帯電話780として実現可能である。また、スマートフォン782、パーソナルデジタルアシスタント、または他の類似のモバイルデバイスの一部としても実現可能である。
【0069】
ユーザは、追跡されたコントローラ784を用いてコンピューティングデバイスと相互作用可能である。いくつかの実施形態例では、コントローラ784は、手、足、頭および/または胴体などのユーザの体の移動を追跡可能であり、追跡された動きに対応する入力を生成することも可能である。入力は、たとえば3次元など、動きの1つ以上の次元で移動に対応し得る。たとえば、追跡されたコントローラは、VRアプリケーションにおいて1つ以上の仮想コントローラと対応付けられた、VRアプリケーション用の物理的なコントローラであり得る。他の例として、コントローラ784は、データグローブを含み得る。
【0070】
ここで説明するシステムおよび技術のさまざまな実施形態例は、デジタル電子回路、集積回路、特別に設計されたASICs(特定用途向け集積回路)、コンピュータハードウェア、ファームウェア、ソフトウェア、および/またはこれらの組合せで実現可能である。これらのさまざまな実施形態例は、特定のまたは一般の目的でもよい、記憶システムとの間でデータおよび命令を送受信するように接続された少なくとも1つのプログラム可能なプロセッサ、少なくとも1つの入力デバイス、ならびに少なくとも1つの出力デバイスを含むプログラム可能なシステム上で実行可能なおよび/または解釈可能な1つ以上のコンピュータプログラムにおける実施形態例を含み得る。
【0071】
これらのコンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーションまたはコードとしても知られている)は、プログラム可能なプロセッサのための機械命令を含み、ハイレベル手順のおよび/またはオブジェクト指向のプログラミング言語および/またはアセンブリ/機械言語で実現可能である。ここで使用されているように、「機械可読媒体」「コンピュータ可読媒体」という用語は、機械可読信号として機械命令を受信する機械可読媒体を含むプログラム可能なプロセッサに機械命令および/またはデータを提供するために使用される任意のコンピュータプログラム製品、装置および/またはデバイス(たとえば、磁気ディスク、光学ディスク、メモリ、プログラム可能論理デバイス(PLDs))を表す。「機械可読信号」という用語は、プログラム可能なプロセッサに機械命令および/またはデータを提供するために使用される信号を表す。
【0072】
ユーザとの相互作用を提供するために、ここで説明されるシステムおよび技術は、情報をユーザに表示するためのディスプレイデバイス(たとえば、CRT(陰極線管)またはLCD(液晶ディスプレイ)モニタ)、ユーザが入力をコンピュータに提供可能なキーボードおよびポインティングデバイス(たとえば、マウスまたはトラックボール)を有するコンピュータ上で実現可能である。他の種類のデバイスを使用してユーザとの相互作用を提供することも可能である。たとえば、ユーザに提供されるフィードバックはいかなる形式の感覚フィードバック(たとえば、視覚的なフィードバック、聴覚的なフィードバック、または触覚的なフィードバック)でもよい、かつ、ユーザからの入力は、聴覚的な入力、音声入力、または触覚的な入力を含むいかなる形式でも受信可能である。
【0073】
ここで説明されるシステムおよび技術は、バックエンドコンポーネント(たとえば、データサーバ)を含む、または、ミドルウェアコンポーネント(たとえば、アプリケーションサーバ)を含む、またはフロントエンドコンポーネント(たとえば、それを通じて、ユーザがここで説明されるシステムおよび技術の実現と相互作用可能なグラフィカルユーザインターフェースまたはウェブブラウザを有するクライアントコンピュータ)を含むコンピューティングシステムにおいて実現可能である。システムのコンポーネントは、デジタルデータ通信(たとえば、通信ネットワーク)のいかなる形式でもまたは媒体によっても相互接続可能である。通信ネットワークの例としては、ローカルエリアネットワーク(「LAN」)、ワイドエリアネットワーク(「WAN」)、およびインターネットが挙げられる。
【0074】
コンピューティングシステムは、クライアントおよびサーバを含み得る。クライアントおよびサーバは、通常互いに離れており、通信ネットワークを介して相互接続することが一般的である。クライアントとサーバとの関係は、それぞれのコンピュータ上で実行され相互にクライアント−サーバ関係を有するコンピュータプログラムによって生じる。
【0075】
いくつかの実施形態例では、
図7に示すコンピューティングデバイスは、仮想現実(VRヘッドセット785)と相互作用するセンサを含み得る。たとえば、コンピューティングデバイス750または
図7に示す他のコンピューティングデバイスに含まれる1つ以上のセンサは、入力をVRヘッドセット785へ、または一般に、入力をVR空間へ提供可能である。センサは、タッチスクリーン、加速度計、ジャイロスコープ、圧力センサ、生体認証センサ、温度センサ、湿度センサ、および環境光センサを含み得るが、これらに限定されるわけではない。コンピューティングデバイス750は、これらのセンサを用いてVR空間内のコンピューティングデバイスの絶対位置および/または検出された回転を求めることができ、これはその後、VR空間への入力として使用可能である。たとえば、コンピューティングデバイス750は、コントローラ、レーザーポインタ、キーボード、武器など、仮想オブジェクトとしてVR空間に組込むことができる。VR空間に組込まれると、ユーザによるコンピューティングデバイス/仮想オブジェクトの位置決めによって、ユーザは、コンピューティングデバイスを位置決めして、VR空間内で特定の態様で仮想オブジェクトを眺めることができる。たとえば、仮想オブジェクトがレーザポインタを表す場合、ユーザは、それがあたかも実際のレーザポインタであるかのようにコンピューティングデバイスを操作可能である。ユーザは、コンピューティングデバイスを、たとえば左右、上下、円形に移動させることが可能であり、レーザプリンタを使用する態様と類似の態様でデバイスを使用可能である。
【0076】
いくつかの実施形態例では、コンピューティングデバイス750に備えられる、またはこれに接続する1つ以上の入力デバイスを、VR空間への入力として使用可能である。入力デバイスは、タッチスクリーン、キーボード、1つ以上のボタン、トラックパッド、ポインティングデバイス、マウス、トラックボール、ジョイスティック、カメラ、マイク、入力機能を有するイヤホンもしくはイヤーバッド、ゲームコントローラ、または他の接続可能な入力デバイスを含み得るが、これらに限定されるわけではない。コンピューティングデバイスがVR空間に組込まれるとコンピューティングデバイス750に含まれる入力デバイスと相互作用するユーザは、VR空間において特定のアクションを発生させ得る。
【0077】
いくつかの実施形態例では、コンピューティングデバイス750のタッチスクリーンは、VR空間内のタッチパッドとして提供され得る。ユーザは、コンピューティングデバイス750のタッチスクリーンと相互作用可能である。たとえばVRヘッドセット785において、相互作用は、VR空間のタッチパッドにおいて提供される動きとして提供される。提供される動きは、VR空間のオブジェクトを制御可能である。
【0078】
いくつかの実施形態例では、コンピューティングデバイス750に含まれる1つ以上の出力デバイスは、VR空間のVRヘッドセット785のユーザへ出力および/またはフィードバックを提供可能である。出力およびフィードバックは、視覚的、触覚的、可聴的であり得る。出力および/またはフィードバックは、振動、1つ以上のライトまたはストロボのオンオフまたは点滅および/またはフラッシュ、警告音の再生、チャイムの鳴動、歌の再生、および音声ファイルの再生を含み得るが、これらに限定されるわけではない。出力デバイスは、振動モータ、振動コイル、圧電素子、静電素子、発光ダイオード(LEDs)、ストロボ、およびスピーカを含み得るが、これらに限定されるわけではない。
【0079】
いくつかの実施形態例では、コンピューティングデバイス750は、コンピュータによって生成された3D環境における他のオブジェクトとして表示され得る。ユーザによるコンピューティングデバイス750との相互作用(たとえば、回転、揺れ、タッチスクリーンとの接触、タッチスクリーンを横断する指のスワイプ)は、VR空間におけるオブジェクトとの相互作用として解釈可能である。VR空間におけるレーザポインタの例では、コンピューティングデバイス750は、コンピュータによって生成される3D環境における仮想レーザーポインタとして表示される。ユーザがコンピューティングデバイス750を操作すると、VR空間におけるユーザは、レーザポインタの移動が見える。ユーザは、コンピューティングデバイス750上のまたはVRヘッドセット785上のVR空間におけるコンピューティングデバイス750との相互作用からフィードバックを受信する。
【0080】
複数の実施形態について説明を行ったが、本発明の精神および範囲内でさまざまな修正が可能であることが理解されるであろう。
【0081】
さらに、図面に示される論理の流れは、望ましい結果を得るために、図示された特定の順序または順番を必要とするものではない。さらに、上述の流れに他のステップを設けることが可能である、または、上述の流れからステップを削除することが可能である、および、説明されたシステムに他のコンポーネントを追加可能である、または、説明されたシステムからコンポーネントを削除可能である。そのため、他の実施形態は、以下の特許請求の範囲内である。