(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0009】
詳細な説明
たとえばヘッドマウントディスプレイ(HMD)装置を着用して拡張現実および/またはバーチャルリアリティ環境に没入しているユーザは、仮想環境を探索して、さまざまな異なるタイプの入力を通じて仮想環境と対話することができる。これらの入力は、たとえば、HMDおよび/もしくはHMDに動作可能に結合された1つ以上の外部電子デバイスの操作、ならびに/または、手/腕のジェスチャ、視線/頭の動きなどを含んでもよい。ユーザが拡張現実/バーチャルリアリティセッションを終了させる選択をしたこと、および/または、特定のユーザ介入なしにユーザが拡張現実/バーチャルリアリティセッションにおける中間停止点に到達したことを検出して、拡張現実/バーチャルリアリティセッションにおいてユーザの行動に関連する周辺タスクおよび/または処理を進めることができる能力は、ユーザエクスペリエンスを向上させ、生産性を向上させることができる。それによって、周辺タスクは、たとえば、仮想セッション中に起こされるアクションに関連する、HMDの外部の周辺コンピューティングデバイスに対する処理と関係がある。
【0010】
本明細書に記載されている実現例に係るシステムおよび方法では、ユーザがバーチャルリアリティセッションへの関与を完了したことまたはバーチャルリアリティセッションへの関与を一時的に中止したことを検出すると、たとえば補足的タスクなどのさらなるアクションがシステムによって自動的に実行されてもよい。この検出は、たとえば、補足的タスクを起動するのに必要とされる特定のさらなるユーザ入力または介入なしに、仮想セッションの終了時に特徴的に実行されるアクションまたはジェスチャに基づいてなされてもよい。このアクションまたはジェスチャは、たとえば、ユーザによるHMDの取り外しを含んでもよく、この取り外しは、HMD内のセンサおよび/または当該システムにおける他の構成要素内の他のセンサによって提供されるデータに基づいて検出される。このさらなるアクションまたは補足的タスクは、仮想環境に関与している間にユーザによって実行されるアクションに関連するタスク(たとえば、処理、コンパイル、プレビューの生成、起こされるその後のアクションのための提案の生成など)を含んでもよい。仮想セッションの完了および/または仮想セッションの一時的中止は、仮想セッションの終了および/または中止を示す特定のユーザ入力または介入なしに、システムによって受動的な態様で検出されてもよい。仮想セッションの終了または仮想セッションにおける中間点での中断の検出に応答して仮想環境においてユーザのアクションに関連付けられた周辺タスクを自動的に実行することができる能力は、仮想環境におけるユーザエクスペリエンスおよび現実世界の環境において関連タスクを完了する際のユーザエクスペリエンスを全体的に向上させることができる。これにより、さらなるアクションがシステムによって実質的に自動的に実行され得るので、ユーザ生産性を向上させることができ、さもなければ利用されないままであろう(仮想セッションの終了の検出から、ユーザがさらなるアクションを起動するための入力を行うときまでの)時間が生産的に利用されることになる。
【0011】
図1は、HMD100を着用しているユーザの第三者的図である。この例示的な第三者的図では、ユーザは、拡張現実/バーチャルリアリティシステムが動作可能である物理的空間400の中にいて、HMD100のディスプレイに表示された仮想環境に関与する。仮想環境は、HMD100の中でユーザが目にすることができるが、単に説明および例示を容易にするために、
図1にはHMD100のディスプレイ上にユーザに対して表示される仮想環境(または、その中のオブジェクト)の例示的な表示500が示されている。ユーザは、HMD100に動作可能に結合されてHMD100と通信し得る1つ以上の外部コンピューティングデバイス200と対話し得る。これは、外部デバイス200とHMD100との間の通信およびデータの交換を提供し得る。
図1に示される例では、HMD100に動作可能に結合された外部デバイス200は、手持ち式電子デバイス200または手持ち式コントローラ200である。いくつかの実現例では、複数の手持ち式電子デバイス200、他の外部デバイス200(たとえば、マウス、キーボード、ジョイスティックなど)がHMD100に動作可能に結合されて、仮想環境での対話のためのユーザ入力を受信してもよい。この実現例では、ユーザがHMD100を介したバーチャルリアリティセッションへの関与を完了したことまたはHMD100を介したバーチャルリアリティセッションへの関与を一時的に中止したことを検出すると、システムによってタスクが自動的に実行されてもよい。
【0012】
図2Aおよび
図2Bは、例示的なHMD(たとえば、
図1に示される例においてユーザが着用しているHMD100など)の斜視図である。HMD100は、フレーム120に結合されたハウジング110を含んでもよく、音声出力デバイス130は、たとえばヘッドホンに装着されたスピーカを含み、音声出力デバイス130もフレーム120に結合されている。
図2Bでは、ハウジング110に受けられる構成要素のうちのいくつかを見ることができるように、ハウジング110の前面部分110aがハウジング110のベース部分110bから離れるように回転されている。ハウジング110の前面部分110aの内側に面する側には、ディスプレイ140が装着されてもよい。前面部分110aがハウジング110のベース部分110bに対して閉鎖位置にあるとき、ハウジング110内であってユーザの眼とディスプレイ140との間にレンズ150が装着されてもよい。HMD100は、さまざまなセンサを含む検知システム160と、HMD100の動作を容易にするためにプロセッサ190およびさまざまな制御システムデバイスを含む制御システム170とを含んでもよい。
【0013】
たとえば、いくつかの実現例では、検知システム160は、さまざまな異なるタイプのセンサ(たとえば、加速度計、ジャイロスコープ、磁気計および他のこのようなセンサなど)を含む慣性測定ユニット(IMU)162を含んでもよい。HMD100の位置および向きは、IMU162に含まれるセンサによって提供されるデータに基づいて検出され、追跡されてもよい。HMD100の検出された位置および向きは、システムが次にユーザの頭の動きの方向および移動を検出して追跡することを可能にすることができる。
【0014】
いくつかの実現例では、HMD100は、視線の方向および移動を検出して追跡するためにたとえば1つ以上のセンサ165Aを含む視線追跡装置165を含んでもよい。センサ165Aによって取り込まれた画像は、ユーザの視線の方向および移動を検出して追跡するように処理されてもよく、検出され追跡された視線は、ユーザ入力として処理されて、没入型仮想エクスペリエンスにおける対応する対話に変換されてもよい。カメラ180は、ユーザおよび/またはHMD100と通信する/HMD100に動作可能に結合された他の外部デバイスの物理的位置の追跡を手助けするために使用され得る静止画および/または動画を取り込んでもよい。取り込まれた画像も、パススルーモードでディスプレイ140上にユーザに対して表示されてもよい。
【0015】
本明細書に記載されている実現例に係るシステムのブロック図が
図3に示されている。このシステムは、第1の電子デバイス300(たとえば、
図1および
図2A〜
図2Bに関連して上記したHMDなど)と、第1の電子デバイス300と通信する少なくとも1つの第2の電子デバイス302(たとえば、
図1に関連して上記した手持ち式電子デバイス、または他の外部デバイスなど)とを含んでもよい。
【0016】
第1の電子デバイス300は、検知システム360と制御システム370とを含んでもよく、検知システム360および制御システム370は、それぞれ
図2Aおよび
図2Bに示される検知システム160および制御システム170と同様であってもよい。検知システム360は、たとえば光センサ、オーディオセンサ、画像センサ、距離および/もしくは近接センサ、IMU(たとえば、ジャイロスコープ、加速度計、磁気計などを含む)、タイマ、ならびに/または、他のセンサおよび/もしくはセンサのさまざまな組み合わせを含むさまざまなタイプのセンサを含んでもよい。制御システム370は、たとえば電源/一時停止制御装置、オーディオおよびビデオ制御装置、光学制御装置、移行制御装置、および/または、他のこのような装置および/または装置のさまざまな組み合わせを含んでもよい。検知システム360および/または制御システム370は、特定の実現例に応じて、より多くのデバイスを含んでもよく、またはより少ないデバイスを含んでもよい。検知システム360および/または制御システム370に含まれる要素は、たとえば
図2Aおよび
図2Bに示されるHMD100以外のHMD内に異なる物理的配置(たとえば、異なる物理的位置)を有してもよい。また、第1の電子デバイス300は、メモリ380と、検知システム360および制御システム370と通信するプロセッサ390とを含んでもよい。プロセッサ390は、検知システム360および他の外部ソース(たとえば、第2の電子デバイス302など)から受信された入力を処理して、検出された入力に対応する命令を実行してもよい。第1の電子デバイス300は、第1の電子デバイス300と他の外部コンピューティングデバイス(たとえば、第2の電子デバイス302およびシステム関連情報の処理に関わる他のコンピューティングデバイスなど)との間の通信を提供する通信モジュール350も含んでもよい。
【0017】
第2の電子デバイス302は、第2の電子デバイス302と別のデバイス(たとえば、第1の電子デバイス300など)との間の通信およびデータ交換を提供する通信モジュール306を含んでもよい。いくつかの実現例では、第2の電子デバイス302の特定の構成(すなわち、手持ち式電子デバイスまたはコントローラ対キーボードまたはマウス)に応じて、第2の電子デバイス302は、検知システム304を含んでもよく、検知システム304は、たとえばカメラおよびマイクロフォンに含まれるような画像センサおよびオーディオセンサ、IMU、タイマ、手持ち式電子デバイスまたはスマートフォンのタッチセンサ面に含まれるようなタッチセンサ、ならびに他のこのようなセンサおよび/またはセンサのさまざまな組み合わせをたとえば含む。プロセッサ309は、第2の電子デバイス302の検知システム304およびコントローラ305と通信してもよく、コントローラ305は、メモリ308へのアクセスを有し、第2の電子デバイス302の動作全体を制御する。
【0018】
上記のように、ユーザは、仮想セッションの終了時に補足的なまたは後続のアクションまたはタスクが実行され得る仮想環境におけるアプリケーションに関与し得る。この補足的なアクションまたはタスクは、たとえば、仮想セッション中に仮想環境に関与している間にユーザによって提供される入力、アクションなどに関連する処理、および/または、仮想セッション中に実行されるアプリケーションに関連する処理を含んでもよい。この補足的なアクションまたはタスクが特定のユーザ介入なしに仮想セッションの検出された終了に応答してシステムによって起動され得る場合に、生産性を向上させることができる。これにより、仮想セッションの終了から、ユーザが補足的タスクを起動するための別の入力を提供する時点までの、さもなければアイドルである時間を生産的に利用することを可能にすることができる。したがって、本明細書に記載されている実現例に係るシステムおよび方法では、システムは、仮想環境におけるアプリケーションに関与しているユーザが、仮想セッションを終了した(または、仮想セッションから一時的に離れた)ことを、たとえばシステムによって検出されるジェスチャに基づいて検出してもよい。このジェスチャは、仮想セッションの終了時にユーザによって特徴的に起こされるアクション(たとえば、HMDの取り外しなど)に関連付けられてもよく、それは、ユーザ側での特定のさらなるアクションを必要としない。このタイプのジェスチャは、たとえばHMD内のセンサによって提供される位置および/または向きデータに基づいて検出されてもよい。
【0019】
図4A〜
図4Fは、システムがHMD100の位置を検出して、HMD100の検出された位置がユーザの頭部からのまたはユーザの視線外へのHMD100の取り外しに対応することを判断する例示的な実現例を示す。次に、システムは、このHMD100の検出された位置を仮想セッションの終了と相関付ける。仮想セッションの検出された終了に応答して、システムは、後続アクション、たとえば仮想セッションに関与している間にユーザが起こすアクションに関連するデータの処理、を起動する。このように、ユーザのHMD100の取り外しから、ユーザが別のコンピューティングデバイス(たとえば、HMD100に動作可能に結合されたコンピュータ端末など)においてこの処理を手動で起動するであろう時点までの間に、処理または他のアクションが実行され得る。これにより、このさもなければアイドルである時間を生産的に利用することができ、生産性を向上させることができる。
【0020】
図4Aは、HMD100によって生成されてたとえばHMD100のディスプレイ上に表示される仮想環境に関与している物理的空間400内のユーザの第三者的図である。
図4Aに示される例では、ユーザは、HMD100を着用しており、手持ち式電子デバイス200を使用して、仮想環境500で実行されるアプリケーションに関連付けられたさまざまな仮想の要素と対話しており、別の外部コンピューティングデバイス250が仮想環境におけるユーザの対話に基づくデータを受信する。
図4Aに示される例では、単に説明および例示を容易にするために、例示的な仮想環境500のさまざまな仮想の要素は、それらがユーザに見えるようにユーザの正面に示されている。
図4A〜
図4Fおよび
図5A〜
図5Cに示される例示的な実現例は、単に説明および例示を容易にするために、仮想環境500で実行される3Dモデリングアプリケーションに関連して記載される。しかし、下記の原理は、仮想環境で実行され、仮想セッションの終了後に、および/または、仮想セッションへのユーザ関与が一時的に中止された仮想セッションにおける中間点においてさらなるアクションを実行させる他の多数のアプリケーションおよび仮想エクスペリエンスに適用されてもよい。
【0021】
図4A、
図4Bおよび
図4Cに示されるように、ユーザは、たとえば手持ち式電子デバイス200および/または手/腕のジェスチャなどを使用して、仮想環境500におけるさまざまな仮想のオブジェクト、要素などと対話してもよい。仮想オブジェクトとのユーザ対話は、
図4Aから
図4B、
図4Cに進む際の準備中の仮想3Dオブジェクト550に対する変化に示されるように、仮想環境において実行されて所望の結果を生成するユーザ入力またはユーザコマンドに対応し得る。
【0022】
図4Dおよび
図4Eに示されるように、ユーザが仮想セッションを終了させると、またはユーザが仮想環境から一時的に離れると、ユーザは、HMD100を自分の視線外へ移動させてもよく、および/または、HMD100を頭部から取り外してもよい。このHMD100の移動/取り外しは、システムによって検出され得る仮想セッションの終了に関連付けられた移動またはジェスチャまたはアクションであると考えられてもよい。このHMD100の移動/取り外しは、ユーザが仮想環境から離れて仮想セッションを終了させるおよび/または仮想セッションへの関与を一時的に中止するときにユーザが起こす自然なアクションである。このHMD100の移動/取り外しにより、HMD100の前面110aが
図4Eに示されるように実質的に水平位置にあるかまたは実質的に水平に向けられるようにHMD100が方向付けられ得る。
【0023】
いくつかの実現例では、HMD100の前面110aが実質的に水平な平面に沿って位置合わせされた状態での、事前に設定または予め規定された位置におけるこのHMD100の向きは、HMD100の非アクティブ状態に関連付けられてもよい。前面110aが実質的に水平な平面に沿って位置合わせされた状態でのこのHMD100の向きは、一般に、ユーザが仮想環境500に積極的に関与して、HMD100がユーザの視線と整列するように位置決めされている間は生じない。なぜなら、アクティブ状態にあるときにはHMD100は位置合わせされるからである。むしろ、HMD100が依然としてユーザの視線と位置合わせされるように位置決めされている間のこのHMD100の実質的に水平な向きは、ユーザが不自然な比較的ぎこちない姿勢、すなわち真っすぐに見上げる姿勢をとって維持することを必要とするであろう。このHMD100の実質的に水平な向きは、ほとんどの状況で、特にHMD100の実質的に水平な向きが、事前に設定または予め規定された時間よりも長く持続または維持される場合に、ユーザの視線からのHMD100の取り外しおよび/またはユーザの頭部からの取り外しに関連付けられてもよく、そのためHMD100の非アクティブ状態に関連付けられてもよい。したがって、HMD100の取り外しおよび結果として生じるHMD100の実質的に水平な向きは、仮想セッションの終了時におけるユーザ側での比較的自然な無意識のアクションであるが、このHMD100の実質的に水平な向きの検出は、仮想セッションの終了を比較的信頼性をもって表すものであると考えることができる。そのようにして、上記の比較的自然な無意識のアクションは別にして、仮想セッション中に起こされるアクションに関連する、HMDの外部のコンピューティングデバイスに対する処理またはさらなるタスクを起動するためにユーザのさらなるアクションは不要である。
【0024】
いくつかの実現例では、HMD100の非アクティブ状態に関連付けられたユーザの視線からのHMD100の取り外しおよび/またはユーザの頭部からの取り外しは、HMD100内の他のセンサによって検出されてもよい。たとえば、いくつかの実現例では、光学追跡装置165が、ユーザの眼の検出および/または追跡の際のロスを検知して、その検出および/または追跡の際のロスをユーザの視線外へのHMD100の移動および/またはユーザの頭部からの取り外し、およびアクティブ状態から非アクティブ状態へのHMD100の移行と関連付けてもよい。いくつかの実現例では、光センサが、ユーザの頭部からのHMD100の取り外しおよびアクティブ状態から非アクティブ状態へのHMD100の移行に関連付けられた光の変化を検出してもよい。
【0025】
典型的には、
図4Fに示されるように、仮想セッションの終了時に、ユーザは、外部コンピューティングデバイス250まで移動して、仮想セッション中に起こされるアクションに関連する処理またはさらなるタスクを実行するであろう。しかし、本明細書に記載されている実現例に係るシステムおよび方法では、仮想セッション中に起こされるアクションに関連する処理またはさらなるタスクは、HMD100の取り外しの検出に応答してシステムによって自動的に起動されてもよい。これにより、HMD100の取り外し(
図4Dに図示)から、ユーザが外部コンピューティングデバイス250に到達して処理を起動するためのユーザコマンドを手動入力する(
図4Fに図示)までの、さもなければアイドルである時間を生産的に利用することができる。
【0026】
いくつかの実現例では、HMD100の向き状態は、たとえばHMD100内のセンサによって検出および/または追跡されてもよい。たとえば、HMD100のIMU162内のセンサ、たとえばHMD100のIMU162に含まれるジャイロスコープ、は、
図4Eに関連して上記したようにHMD100が実質的に水平な状態に向けられたことを検出してもよい。上記のように、このHMD100の実質的に水平な状態は、一般に、仮想環境に積極的に関与しているユーザがHMD100を着用しているときには生じない。しかし、HMD100の向きに基づく仮想セッションの終了の誤認を回避するために、いくつかの実現例では、設定された閾値時間よりも長くHMD100が実質的に水平な状態に向けられたままであると判断された場合に、仮想セッションの終了の表示が検出されてもよい。たとえば、いくつかの実現例では、約1秒以上にわたってHMD100が実質的に水平な向きにとどまっていることが検出された場合に、ユーザが仮想セッションを終了させたまたは一時的に中止したと判断されてもよい。この1秒という設定閾値時間は、一例に過ぎず、設定閾値時間は、多数の異なる要因に基づいて変化してもよく、これらの要因は、たとえば、特定の適用例の特徴、および/または、当該特定の適用例におけるユーザの対話により特定の時間にわたってHMD100が当該実質的に水平な姿勢に向けられ得る可能性などである。
【0027】
上記のように、HMD100が実質的に水平な状態に向けられたことを検出して、HMD100の実質的に水平な向きに基づいて仮想セッションが終了されたまたは中止されたと判断すると、システムは、終了したばかりの仮想セッションに関連付けられた情報に関連するさらなるアクションまたは補足的タスクを起動してもよい。たとえば、システムは、
図4A〜
図4Dに関連して上記した準備中の仮想3Dオブジェクト550に関連する情報および/またはデータの処理を開始してもよい。この処理は、HMD100によって実行されてもよく、および/または、1つ以上の外部コンピューティングデバイス(たとえば、
図4A〜
図4Dに示される外部コンピューティングデバイス250など)によって実行されてもよい。上記のようにHMD100のユーザ取り外しに基づいて仮想セッションの終了が検出されたので、この処理または補足的タスクは、
図4Fに示されるようにユーザが外部コンピューティングデバイスに到達した後に当該処理または補足的タスクを起動するための特定のユーザコマンドを待つのではなく、仮想セッションの終了の検出に応答して、たとえば
図4Dに示される時点において、システムによって自動的に起動されてもよい。
図4Dに示される時点から
図4Fに示される時点までのこのアイドル時間を使用することにより、ユーザの利便性および生産性を向上させることができる。
【0028】
上記のように、上記の仮想セッションの終了の検出に応答して、システムは、
図4A〜
図4Fに示されるHMD100および/または外部コンピューティングデバイス250などの外部コンピューティングデバイスによって処理を自動的に起動してもよい。ユーザがコンピューティングデバイス250に到達して処理を起動するためのコマンドを手動で入力するとき(
図4Fに示される時点)ではなく、仮想セッションの終了が検出されたとき(
図4Dに示される時点)にこのように処理を起動することにより、利用可能な時間の生産的な利用を可能にすることができる。これは、計算集約的なタスク(たとえば、グラフィックスなどを伴う処理など)を処理する際に特に有益であろう。たとえば、上記のように仮想セッションの終了を検出すると、システムは、ユーザが見ることができるようにオブジェクト550の3Dプレビューを生成するための処理を起動してもよく、3Dプレビューの生成は、
図5Aに示されるような仮想セッション中に起こされるアクション、および/または、
図5Bに示されるようなオブジェクト550の複数の異なる図、および/または、
図5Cに示されるようなオブジェクト550を公開または共有するためのオプションおよび/またはオブジェクト550をさらに編集するためのオプション、に関連する、たとえばHMDの外部のコンピューティングデバイスに対する補足的タスク、または周辺タスク、またはさらなるタスクの処理の一例である。これらは、上記のようにHMD100の実質的に水平な向きに基づく仮想セッションの終了の検出に応答してシステムによって起動および実行され得るタイプの処理のいくつかの例に過ぎない。
【0029】
いくつかの実現例では、HMD100のアイドル状態の持続は、(上記のように仮想セッションの終了を表示するためにHMD100の水平な向きを検出することに加えて、またはその代わりに)仮想セッションの終了を表示するために、センサ(たとえば、HMD100のIMU162に含まれるセンサなど)によって検出されてもよい。これらのセンサは、HMD100がユーザによって着用されているときには比較的小さな動きさえも検出することができる。すなわち、実質的に静止したままであることがユーザの意図である場合でも、ユーザは完全に静止または固定されたままであることはなく、ユーザが着用しているHMD100のセンサは、ユーザ(したがって、ユーザが着用しているHMD100)のわずかな自然な動きを検出することになる。この検出された動きは、ユーザが少なくともある程度の仮想環境への関与を維持していることを示し得る。
【0030】
いくつかの実現例では、仮想セッションの終了または一時的中止を示す設定されたジェスチャは、事前に設定または予め規定された時間以上にわたってHMD100が同じ位置にとどまっている、すなわち基本的には完全に静止したままであることを検出したことに基づいて規定されてもよい。
図6A〜
図6Cは、固定された支持面600上のさまざまな異なる位置における、ユーザの頭部から取り外されたHMD100を示す。
図6Aに示される例では、ユーザは、HMD100を取り外して、HMD100が実質的に水平に向けられた状態で、たとえばHMD100の例示的な中心線112が実質的に水平に向けられた状態で、固定された支持面600上にHMD100を位置決めしている。
図6Bに示される例では、ユーザは、HMD100を取り外して、HMD100が水平面に対してある角度またはある傾斜で向けられた状態で、たとえばHMD100の例示的な中心線112が水平面に対してある角度またはある傾斜で向けられた状態で、固定された支持面600上にHMD100を位置決めしている。
図6Cに示される例では、ユーザは、HMD100を取り外して、HMD100が実質的に垂直に向けられた状態で、たとえばHMD100の例示的な中心線112が実質的に垂直に向けられた状態で、固定された支持面600上にHMD100を位置決めしている。HMD100の例示的な中心線112が
図6A〜
図6Cに含まれているのは、単にHMD100を固定された支持面600上に設置することができるさまざまな異なる位置の例示および説明を容易にするためである。
【0031】
図6A〜
図6Cに示されるさまざまな例示的な位置の各々では、固定された支持面600上に位置決めされたHMD100は、HMD100の向きにかかわらず、センサ、たとえばHMD100のIMU162のセンサによっていかなる移動も検出されることなしに、実質的に完全に静止したままであってもよい。HMD100のセンサによって提供されるデータに基づいて、システムは、事前に設定または予め規定された時間以上にわたってHMD100が静止したままであって移動しなかったことを判断してもよい。この少なくとも設定された時間にわたってHMD100が固定されたままであったことの判断に基づいて、システムは、ユーザが仮想環境から離れたことを示す設定されたジェスチャが検出されたと判断してもよい。この仮想セッションの終了または仮想セッションの一時的中止の検出に応答して、システムは、上記のように、処理を起動するための別のユーザ介入なしに、処理、たとえば仮想セッション中に実行されるアクションに関連付けられた処理を自動的に起動してもよい。これにより、ユーザによるコマンドの手動入力または他の特定のユーザ介入なしに、いかなる後続処理、補足的タスクなども起動することを可能にすることができる。この文脈において、ユーザによるコマンドの手動入力は、たとえば、処理を実行するコンピューティングシステムのユーザインターフェイス上でのユーザによる手動入力を指し得る。この後続処理の自動的起動により、ユーザの利便性および生産性を向上させることができ、HMD100のユーザ取り外しから処理を起動するための特定のコマンドのユーザ入力までの、さもなければアイドルである時間が活用される。
【0032】
いくつかの実現例では、システムは、ユーザの視線外へのHMD100の移動および/またはユーザの頭部からのHMD100の取り外しを必ずしも伴わない要因に基づいて、仮想セッションの終了および/またはユーザの仮想セッションへの関与の中止を示す設定されたジェスチャを検出してもよい。たとえば、いくつかの実現例では、システムは、物理的空間400内のHMD100を着用しているユーザの位置、たとえば、物理的空間400の他の要素(たとえば、外部コンピューティングデバイス250など)に対する物理的空間400内のHMD100を着用しているユーザの位置、に基づいて、仮想セッションの終了および/またはユーザの仮想セッションへの関与の中止を検出してもよい。いくつかの実現例では、システムは、物理的空間400を通るユーザの移動、たとえば、物理的空間400の特定の要素(たとえば、外部コンピューティングデバイス250など)の方へのユーザの移動、に基づいて、仮想セッションの終了および/またはユーザの仮想セッションへの関与の中止を検出してもよい。いくつかの実現例では、システムは、物理的空間400を通るユーザの移動の速さまたはスピードまたは速度、たとえば、物理的空間400の特定の要素(たとえば、外部コンピューティングデバイス250など)の方へのユーザの移動の速さまたはスピードまたは速度、に基づいて、仮想セッションの終了および/またはユーザの仮想セッションへの関与の中止を検出してもよい。システムは、たとえば事前に設定または事前に規定された速さおよび/または加速度値と比較される物理的空間におけるユーザの検出された速度および/または加速度の比較に基づいて、この判断を行ってもよい。
【0033】
図7Aに示されるように物理的空間400内の位置Aに位置決めされながらHMD100を着用して仮想環境500に関与しているユーザは、
図7Bに示されるように物理的空間400内の位置Bまで物理的空間400内を移動してもよく、および/または、
図7Cに示されるように物理的空間400内の位置Cまで移動してもよい。システムは、HMD100を着用しているユーザが物理的空間400内を移動すると、物理的空間400におけるHMD100を着用しているユーザの位置および/または向きを検出して追跡してもよい。システムは、HMD100を着用しているユーザが物理的空間400内の設定された位置にいること、および/または、設定された方向に移動していることもしくは物理的空間400内の設定された要素に接近していること、および/または、事前に設定された速さもしくはスピードもしくは速度以上で設定された方向に移動していることもしくは設定された要素に接近していること、を検出したことに応答して、設定されたジェスチャを検出するように設定されてもよい。これらの設定されたジェスチャのうちの1つ以上に応答して、システムは、ユーザが仮想セッションへの関与を終了または一時的に中止したと判断してもよく、ユーザが必ずしもHMD100を取り外していなくても上記のように処理または補足的タスクを起動してもよい。
【0034】
たとえば、システムは、HMD100を着用しているユーザが
図7Cに示される位置Cにいるかまたは位置Cまで移動したことを検出してもよく、外部コンピューティングデバイス250へのユーザの物理的近接に基づいて、仮想セッションを終了または一時的に中止することがユーザの意図であると判断してもよく、システムが外部コンピューティングデバイス250の設定された近接の範囲内にユーザを検出するとすぐに、処理および/または他の補足的タスク、たとえば終了または中止されたばかりの仮想セッションに関連する処理および/またはタスク、を自動的に起動してもよい。たとえば外部コンピューティングデバイス150における特定の手動ユーザ入力なしにこの処理を起動することができる能力は、生産性および有効性を向上させることができ、ユーザエクスペリエンスを向上させることができる。
【0035】
いくつかの実現例では、システムは、たとえばユーザが物理的空間400内の特定の要素(たとえば、外部コンピューティングデバイス250など)の方へ移動していることを示す、たとえば設定された経路または方向に沿ったユーザの移動を検出してもよい。システムは、物理的空間400内のユーザの検出された移動方向に基づいて、ユーザがたとえば外部コンピューティングデバイス250の方へ移動していると判断してもよい。たとえば、システムは、ユーザが、
図7Aに示される位置Aから、
図7Cに示される外部コンピューティングデバイス250への事前に設定された近接の範囲内の位置Cの方へ、経路に沿って、
図7Bに示される位置Bまでまたは位置Bの方へ移動したことを検出してもよい。システムは、この検出されたユーザの移動方向が、ユーザが仮想環境から離れたことを示し、仮想セッションの終了または一時的中止を意図していると判断してもよい。この検出された移動方向に基づいて、たとえば物理的空間400内のユーザ位置B(または、システム設定に基づいて物理的空間400内の別の位置)において、システムは、仮想セッションの終了または一時的中止を検出してもよく、処理および/または他の補足的タスク、たとえば終了または中止されたばかりの仮想セッションに関連する処理および/またはタスク、を自動的に起動してもよい。
【0036】
いくつかの実現例では、システムは、たとえば
図7Aに示される位置Aから、
図7Bに示される位置Bおよび/または
図7Cに示される位置Cの方へのユーザの移動を検出してもよい。また、システムは、たとえば位置Aにおける検出から位置Bにおける検出までに経過した時間に基づいて、ユーザがたとえば位置Aから位置Bまで移動する速さを検出してもよく、またはたとえば位置Aにおける検出から位置Cにおける検出までに経過した時間に基づいて、ユーザが位置Aから位置Cまで移動する速さを検出してもよい。システムは、ユーザが移動している速さとともに、物理的空間400におけるユーザの検出された移動方向に基づいて、ユーザが仮想環境から離れて仮想セッションの終了または一時的中止を意図していることを判断してもよい。たとえば設定された閾値以上の検出された移動速さまたはスピードとともに、たとえばこの検出された移動に基づいて、システムは、仮想セッションの終了または一時的中止を検出してもよく、処理および/または他の補足的タスク、たとえば終了または中止されたばかりの仮想セッションに関連する処理および/またはタスク、を自動的に起動してもよい。
【0037】
本明細書に記載されている実現例に係るシステムおよび方法では、処理の起動などの補足的タスクの起動は、仮想セッションの終了および/または仮想セッションの一時的中止の検出に応答して引き起こされてもよい。設定されたジェスチャは、
図4A〜
図4Fに関連して上記したように、HMD100が設定された向きにあることを検出したことに応答して検出されてもよい。設定されたジェスチャは、
図6A〜
図6Cに関連して上記したように、HMD100が設定された時間以上にわたって固定された位置にあることを検出したことに応答して検出されてもよい。設定されたジェスチャは、
図7A〜
図7Cに関連して上記したように、設定された方向および/または設定された速度より速い速度および/または外部オブジェクトの設定された近接の範囲内のユーザ移動を検出したことに応答して検出されてもよい。いくつかの実現例では、設定されたジェスチャは、HMD100内の光学追跡装置が、視線外へのHMD100の移動および/またはユーザの頭部からのHMD100の取り外しに関連付けられたユーザの眼の追跡のロスを検出した場合に検出されてもよい。いくつかの実現例では、設定されたジェスチャは、HMD100の取り外しを示すであろう高さ(たとえば、腰の高さもしくはそれより下方など)、または、アクティブ状態においてある持続時間にわたってHMD100が自然には位置決めされないであろう高さに対応するユーザの頭部の上方の垂直距離にHMD100があることを検出したことに応答して検出されてもよい。いくつかの実現例では、設定されたジェスチャは、たとえば特定量の回転と組み合わせた上昇動作を含む、ユーザの視線外へのHMD100の移動および/またはユーザの頭部からのHMD100の取り外しに特有の経路に沿ったHMD100の移動の検出に応答して検出されてもよい。これらは、仮想セッションの終了および/または仮想セッションの一時的中止を示すためにシステムによって検出され得て、ひいては後続処理タスク、特に仮想セッション中にユーザが起こすアクションに関連付けられたタスクの起動を自動的に引き起こし得る設定されたジェスチャのいくつかの例に過ぎない。
【0038】
本明細書に記載されている実現例に係る拡張現実および/またはバーチャルリアリティ環境において仮想セッションの終了を検出する方法800が
図8に示されている。
【0039】
ユーザは、たとえば上記のHMD装置を含むシステムなどのコンピューティングデバイスをたとえば使用して拡張現実エクスペリエンスおよび/またはバーチャルリアリティエクスペリエンスを起動して、拡張現実および/またはバーチャルリアリティ環境を生成してもよく、このHMD装置は、1つ以上の外部装置に動作可能に結合されるかまたは1つ以上の外部装置と対にされてもよい(ブロック810)。システムは、たとえば上記のHMDなどのシステムの要素を検出して追跡し、ユーザが仮想環境から離れたことおよび仮想セッションの終了および/または仮想セッションの一時的中止に対応し得るジェスチャを検出してもよい(ブロック820)。仮想セッションの終了および/または一時的中止を示す検出されたジェスチャは、
図4A〜
図4Fに関連して詳細に上記したような、設定された閾値時間以上にわたるHMDの実質的に水平な向きの検出を含んでもよい(ブロック830)。仮想セッションの終了および/または一時的中止を示す検出されたジェスチャは、
図6A〜
図6Cに関連して上記したような、閾値時間以上にわたっていかなる検出された移動もなしにHMDが固定されたままであったことの検出を含んでもよい(ブロック840)。仮想セッションの終了および/または一時的中止を示す検出されたジェスチャは、
図7A〜
図7Cに関連して上記したような、HMDを着用しているユーザが特定の位置にいることの検出、および/または、HMDを着用しているユーザの特定の方向への移動および/または設定された閾値速度以上の速度での移動の検出を含んでもよい(ブロック850)。設定されたジェスチャ(ブロック830,840,850)のうちの1つ以上に応答して、システムは、仮想セッションの終了または一時的中止を検出してもよく、
図5A〜
図5Cに関連して上記したように、仮想セッションに関連する処理を起動してもよい(ブロック870)。プロセスは、現在の拡張現実および/またはバーチャルリアリティエクスペリエンスが終了されたと判断されるまで継続する(ブロック860)。
【0040】
本明細書に記載されている実現例に係るシステムおよび方法では、仮想セッションの終了または仮想セッションの一時的中止は、特定のユーザ入力または介入を伴わない設定されたジェスチャに基づいて検出されてもよい。後続処理および/または補足的タスクは、仮想セッション中のユーザ対話に基づいて、別のユーザ介入または処理を起動するための手動入力なしに、仮想セッションの検出された終了に応答してシステムによって自動的に起動されてもよく、利用可能な時間および計算資源が生産的に利用される。
【0041】
図9は、本明細書に記載されている技術とともに使用され得るコンピュータデバイス1000およびモバイルコンピュータデバイス1050の一例を示す。コンピューティングデバイス1000は、プロセッサ1002と、メモリ1004と、ストレージデバイス1006と、メモリ1004および高速拡張ポート1010に接続する高速インターフェイス1008と、低速バス1014およびストレージデバイス1006に接続する低速インターフェイス1012とを含む。コンポーネント1002,1004,1006,1008,1010および1012の各々は、さまざまなバスを用いて相互接続され、共通のマザーボード上に搭載される場合もあれば、適宜他の態様で搭載される場合もある。プロセッサ1002は、コンピューティングデバイス1000内で実行するために命令を処理し得て、当該命令は、高速インターフェイス1008に結合されたディスプレイ1016などの外部入出力デバイス上にGUIのためのグラフィック情報を表示するための、メモリ1004内またはストレージデバイス1006上に格納された命令を含む。他の実現例では、複数のメモリおよび複数タイプのメモリとともに、複数のプロセッサおよび/または複数のバスが適宜使用されてもよい。また、複数のコンピューティングデバイス1000が接続されてもよく、各デバイスは、(たとえば、サーババンク、ブレードサーバのグループ、またはマルチプロセッサシステムとして)必要な動作の一部を提供する。
【0042】
メモリ1004は、コンピューティングデバイス1000内の情報を格納する。一実現例では、メモリ1004は、単一の揮発性メモリユニットまたは複数の揮発性メモリユニットである。別の実現例では、メモリ1004は、単一の不揮発性メモリユニットまたは複数の不揮発性メモリユニットである。また、メモリ1004は、磁気ディスクまたは光ディスクなどの別の形態のコンピュータ読取可能な媒体であってもよい。
【0043】
ストレージデバイス1006は、コンピューティングデバイス1000に大容量ストレージを提供することができる。一実現例では、ストレージデバイス1006は、フロッピー(登録商標)ディスクデバイス、ハードディスクデバイス、光ディスクデバイス、テープデバイス、フラッシュメモリもしくは他の同様のソリッドステートメモリデバイス、または、ストレージエリアネットワークもしくは他の構成内のデバイスを含むデバイスのアレイなどのコンピュータ読取可能な媒体であってもよく、またはコンピュータ読取可能な媒体を含んでもよい。コンピュータプログラム製品は、情報担体内で有形に実施され得る。コンピュータプログラム製品は、実行されたときに上記の方法などの1つ以上の方法を実行する命令も含んでもよい。情報担体は、メモリ1004、ストレージデバイス1006またはメモリオンプロセッサ1002などのコンピュータまたは機械読取可能な媒体である。
【0044】
高速コントローラ1008は、コンピューティングデバイス1000のための帯域幅を多く使用する動作を管理するのに対して、低速コントローラ1012は、帯域幅をそれほど使用しない動作を管理する。このような機能の割り当ては、例示に過ぎない。一実現例では、高速コントローラ1008は、メモリ1004、ディスプレイ1016(たとえば、グラフィックスプロセッサまたは加速装置を介して)、および高速拡張ポート1010に結合され、高速拡張ポート1010は、さまざまな拡張カード(図示せず)を受け付け得る。当該実現例では、低速コントローラ1012は、ストレージデバイス1006および低速拡張ポート1014に結合される。さまざまな通信ポート(たとえば、USB、ブルートゥース(登録商標)、イーサネット(登録商標)、ワイヤレスイーサネット)を含み得る低速拡張ポートは、たとえばネットワークアダプタを介して、キーボード、ポインティングデバイス、スキャナ、またはスイッチもしくはルータなどのネットワーキングデバイスなどの1つ以上の入出力デバイスに結合されてもよい。
【0045】
コンピューティングデバイス1000は、図に示されるように複数の異なる形態で実現されてもよい。たとえば、コンピューティングデバイス1000は、標準的なサーバ1020として実現されてもよく、またはこのようなサーバのグループの状態で複数回実現されてもよい。また、コンピューティングデバイス1000は、ラックサーバシステム1024の一部として実現されてもよい。また、コンピューティングデバイス1000は、ラップトップコンピュータ1022などのパーソナルコンピュータとして実現されてもよい。代替的に、コンピューティングデバイス1000からのコンポーネントは、デバイス1050などのモバイルデバイス(図示せず)内の他のコンポーネントと組み合わせられてもよい。このようなデバイスの各々は、コンピューティングデバイス1000,1050のうちの1つ以上を含んでもよく、システム全体が、互いに通信する複数のコンピューティングデバイス1000,1050で構成されてもよい。
【0046】
コンピューティングデバイス1050は、いくつかあるコンポーネントの中で特に、プロセッサ1052と、メモリ1064と、ディスプレイ1054などの入出力デバイスと、通信インターフェイス1066と、送受信機1068とを含む。デバイス1050は、さらなるストレージを提供するためにマイクロドライブまたは他のデバイスなどのストレージデバイスも備えていてもよい。コンポーネント1050,1052,1064,1054,1066および1068の各々は、さまざまなバスを使用して相互接続され、コンポーネントのうちのいくつかは、共通のマザーボード上に搭載される場合もあれば、適宜他の態様で搭載される場合もある。
【0047】
プロセッサ1052は、メモリ1064に格納された命令を含む命令をコンピューティングデバイス1050内で実行することができる。プロセッサは、別々の複数のアナログプロセッサおよびデジタルプロセッサを含むチップのチップセットとして実現されてもよい。プロセッサは、たとえば、ユーザインターフェイスの制御、デバイス1050によって実行されるアプリケーション、およびデバイス1050による無線通信などの、デバイス1050の他のコンポーネントの連携を提供してもよい。
【0048】
プロセッサ1052は、ディスプレイ1054に結合された制御インターフェイス1058およびディスプレイインターフェイス1056を介してユーザと通信し得る。ディスプレイ1054は、たとえばTFT LCD(Thin-Film-Transistor Liquid Crystal Display:薄膜トランジスタ液晶ディスプレイ)もしくはOLED(Organic Light Emitting Diode:有機発光ダイオード)ディスプレイ、または他の適切なディスプレイ技術であってもよい。ディスプレイインターフェイス1056は、ディスプレイ1054を駆動してグラフィック情報および他の情報をユーザに提示するための適切な回路を備え得る。制御インターフェイス1058は、ユーザからコマンドを受信し、当該コマンドを変換してプロセッサ1052に送信し得る。また、デバイス1050と他のデバイスとの近接エリア通信を可能にするために、外部インターフェイス1062がプロセッサ1052と通信するように設けられてもよい。外部インターフェイス1062は、たとえば、いくつかの実現例では有線通信を提供してもよく、または他の実現例では無線通信を提供してもよく、複数のインターフェイスも使用してもよい。
【0049】
メモリ1064は、コンピューティングデバイス1050内の情報を格納する。メモリ1064は、コンピュータ読取可能な媒体、揮発性メモリユニットまたは不揮発性メモリユニットのうちの1つ以上として実現されてもよい。また、拡張メモリ1074が設けられて、拡張インターフェイス1072を介してデバイス1050に接続されてもよく、拡張インターフェイス572は、たとえばSIMM(Single In Line Memory Module:シングル・インライン・メモリ・モジュール)カードインターフェイスを含み得る。このような拡張メモリ1074は、デバイス1050に対して追加の記憶領域を提供してもよく、またはデバイス1050のためにアプリケーションもしくは他の情報を格納してもよい。具体的には、拡張メモリ1074は、上記のプロセスを実行または補完するための命令を含んでもよく、セキュリティ保護された情報も含んでもよい。したがって、たとえば、拡張メモリ1074は、デバイス1050のためのセキュリティモジュールとして提供されてもよく、デバイス1050の安全な使用を可能にする命令でプログラムされてもよい。また、ハッキングできない態様でSIMMカードに識別情報を載せるなど、追加情報とともに、セキュリティ保護されたアプリケーションがSIMMカードを介して提供されてもよい。
【0050】
以下に記載するように、メモリは、たとえばフラッシュメモリおよび/またはNVRAMメモリを含んでもよい。一実現例では、コンピュータプログラム製品は、情報担体内で有形に実施される。コンピュータプログラム製品は、実行されたときに上記の方法などの1つ以上の方法を実行する命令を含む。情報担体は、たとえば送受信機1068または外部インターフェイス1062の上方に受けられ得るメモリ1064、拡張メモリ1074またはメモリオンプロセッサ1052などのコンピュータまたは機械読取可能な媒体である。
【0051】
デバイス1050は、必要に応じてデジタル信号処理回路を含み得る通信インターフェイス1066を介して無線通信してもよい。通信インターフェイス1066は、とりわけGSM(登録商標)音声電話、SMS、EMSもしくはMMSメッセージング、CDMA、TDMA、PDC、WCDMA(登録商標)、CDMA2000またはGPRSなどのさまざまなモードまたはプロトコルの下での通信を提供し得る。このような通信は、たとえば無線周波数送受信機1068を介して行われてもよい。また、ブルートゥース、Wi−Fiまたは他のこのような送受信機(図示せず)などを用いて狭域通信が行われてもよい。また、GPS(グローバルポジショニングシステム)受信機モジュール1070は、さらなるナビゲーションおよび位置関連の無線データをデバイス1050に提供し得て、当該データは、デバイス1050上で実行されるアプリケーションによって適宜使用され得る。
【0052】
また、デバイス1050は、音声コーデック1060を用いて可聴に通信してもよく、音声コーデック1060は、音声情報をユーザから受信し、当該音声情報を使用可能なデジタル情報に変換し得る。さらに、音声コーデック1060は、話者を介するなどして、たとえばデバイス1050の受話器においてユーザのために可聴音を生成し得る。このような音は、音声電話からの音声を含んでもよく、記録された音(たとえば、音声メッセージ、音楽ファイルなど)を含んでもよく、デバイス1050上で動作するアプリケーションによって生成された音も含んでもよい。
【0053】
コンピューティングデバイス1050は、図に示されるように複数の異なる形態で実現されてもよい。たとえば、コンピューティングデバイス1050は、携帯電話1080として実現されてもよい。また、コンピューティングデバイス1050は、スマートフォン1082、パーソナルデジタルアシスタントまたは他の同様のモバイルデバイスの一部として実現されてもよい。
【0054】
本明細書に記載されているシステムおよび技術のさまざまな実現例は、デジタル電子回路、集積回路、特別に設計されたASIC(特定用途向け集積回路)、コンピュータハードウェア、ファームウェア、ソフトウェア、および/または、それらの組み合わせで実現されてもよい。これらのさまざまな実現例は、プログラム可能なシステム上で実行可能および/または解釈可能である1つ以上のコンピュータプログラムでの実現例を含み得て、当該プログラム可能なシステムは、少なくとも1つのプログラム可能なプロセッサと、少なくとも1つの入力デバイスと、少なくとも1つの出力デバイスとを含み、当該少なくとも1つのプログラム可能なプロセッサは、ストレージシステムとデータおよび命令を送受信するように結合された特殊目的または汎用プロセッサであってもよい。
【0055】
これらのコンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーションまたはコードとしても知られている)は、プログラム可能なプロセッサのための機械命令を含み、高水準手続き型および/もしくはオブジェクト指向プログラミング言語で実現されてもよく、ならびに/またはアセンブリ/機械言語で実現されてもよい。本明細書で使用される「機械読取可能な媒体」「コンピュータ読取可能な媒体」という用語は、機械読取可能な信号として機械命令を受信する機械読取可能な媒体を含む、機械命令および/またはデータをプログラム可能なプロセッサに提供するために使用される任意のコンピュータプログラム製品、装置および/またはデバイス(たとえば、磁気ディスク、光ディスク、メモリ、プログラマブルロジックデバイス(Programmable Logic Device:PLD))を指す。「機械読取可能な信号」という用語は、機械命令および/またはデータをプログラム可能なプロセッサに提供するために使用される任意の信号を指す。
【0056】
ユーザとの対話を提供するために、本明細書に記載されているシステムおよび技術は、コンピュータ上で実現されてもよく、当該コンピュータは、ユーザに対して情報を表示するためのディスプレイデバイス(たとえば、CRT(cathode ray tube:陰極線管)またはLCD(liquid crystal display:液晶ディスプレイ)モニタ)と、キーボードと、ユーザが入力をコンピュータに提供することができるポインティングデバイス(たとえば、マウスまたはトラックボール)とを有する。ユーザとの対話を提供するために他の種類のデバイスも使用されてもよい。たとえば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック(たとえば、視覚フィードバック、聴覚フィードバックまたは触覚フィードバック)であってもよく、ユーザからの入力は、音響入力、音声入力または触知可能入力を含む任意の形態で受信されてもよい。
【0057】
本明細書に記載されているシステムおよび技術は、バックエンドコンポーネント(たとえば、データサーバ)を含むコンピューティングシステムで実現されてもよく、またはミドルウェアコンポーネント(たとえば、アプリケーションサーバ)を含むコンピューティングシステムで実現されてもよく、またはフロントエンドコンポーネント(たとえば、ユーザが本明細書に記載されているシステムおよび技術の実現例と対話することができるグラフィカルユーザインターフェイスまたはウェブブラウザを有するクライアントコンピュータ)を含むコンピューティングシステムで実現されてもよく、またはこのようなバックエンドコンポーネント、ミドルウェアコンポーネントまたはフロントエンドコンポーネントの任意の組み合わせを含むコンピューティングシステムで実現されてもよい。システムのコンポーネントは、デジタルデータ通信の任意の形態または媒体(たとえば、通信ネットワーク)によって相互接続されてもよい。通信ネットワークの例としては、ローカルエリアネットワーク(「LAN」)、ワイドエリアネットワーク(「WAN」)、およびインターネットが挙げられる。
【0058】
コンピューティングシステムは、クライアントとサーバとを含み得る。クライアントおよびサーバは、一般に互いに離れており、通常は通信ネットワークを介して対話する。クライアントとサーバとの関係は、コンピュータプログラムがそれぞれのコンピュータ上で実行されて互いにクライアント−サーバ関係を有することによって生じる。
【0059】
いくつかの実現例では、図
9に示されるコンピューティングデバイスは、バーチャルリアリティに接続されるセンサ(VRヘッドセット/HMD装置1090)を含んでもよい。たとえば、図
9に示されるコンピューティングデバイス1050または他のコンピューティングデバイス上に含まれる1つ以上のセンサは、VRヘッドセット1090に入力を提供してもよく、または一般に、VR空間に入力を提供してもよい。これらのセンサは、タッチスクリーン、加速度計、ジャイロスコープ、圧力センサ、バイオメトリックセンサ、温度センサ、湿度センサおよび周囲光センサを含み得るが、これらに限定されるものではない。コンピューティングデバイス1050は、これらのセンサを使用して、VR空間におけるコンピューティングデバイスの絶対位置および/または検出された回転を判断してもよく、絶対位置および/または回転は、その後、VR空間への入力として使用されてもよい。たとえば、コンピューティングデバイス1050は、コントローラ、レーザポインタ、キーボード、武器などの仮想オブジェクトとしてVR空間に組み込まれてもよい。VR空間に組み込まれる場合のユーザによるコンピューティングデバイス/仮想オブジェクトの位置決めにより、ユーザは、VR空間内で仮想オブジェクトが特定の態様で見られるようにコンピューティングデバイスを位置決めすることができる。たとえば、仮想オブジェクトがレーザポインタに相当する場合、ユーザは、まるでそれが実際のレーザポインタであるかのようにコンピューティングデバイスを操作することができる。ユーザは、コンピューティングデバイスを左右、上下、円の形などに移動させて、レーザポインタを使用するのと同様の態様でデバイスを使用することができる。
【0060】
いくつかの実現例では、コンピューティングデバイス1050上に含まれるかまたはコンピューティングデバイス1050に接続される1つ以上の入力デバイスがVR空間への入力として使用されてもよい。入力デバイスは、タッチスクリーン、キーボード、1つ以上のボタン、トラックパッド、タッチパッド、ポインティングデバイス、マウス、トラックボール、ジョイスティック、カメラ、マイクロフォン、入力機能を有するイヤホンもしくはバッド、ゲームコントローラ、または他の接続可能な入力デバイスを含み得るが、これらに限定されるものではない。コンピューティングデバイスがVR空間に組み込まれる場合にコンピューティングデバイス1050上に含まれる入力デバイスと対話するユーザは、VR空間において特定のアクションを生じさせることができる。
【0061】
いくつかの実現例では、コンピューティングデバイス1050のタッチスクリーンは、VR空間においてタッチパッドとして描写されてもよい。ユーザは、コンピューティングデバイス1050のタッチスクリーンと対話することができる。対話は、たとえばVRヘッドセット1090においては、VR空間における描写されたタッチパッド上での移動として描写される。描写された移動は、VR空間における仮想オブジェクトを制御することができる。
【0062】
いくつかの実現例では、コンピューティングデバイス1050上に含まれる1つ以上の出力デバイスは、VR空間におけるVRヘッドセット1090のユーザに出力および/またはフィードバックを提供してもよい。この出力およびフィードバックは、視覚的なもの、戦術的なもの、または音声によるものであってもよい。この出力および/またはフィードバックは、振動、1つ以上のライトもしくはストロボをオンおよびオフにすることもしくは点滅および/もしくは明滅させること、警報を鳴らすこと、チャイムを鳴らすこと、曲を流すこと、および音声ファイルの再生を含み得るが、これらに限定されるものではない。出力デバイスは、振動モータ、振動コイル、圧電装置、静電装置、発光ダイオード(LED)、ストロボおよびスピーカを含み得るが、これらに限定されるものではない。
【0063】
いくつかの実現例では、コンピューティングデバイス1050は、コンピュータによって生成された3D環境における別のオブジェクトとして現れてもよい。ユーザとコンピューティングデバイス1050との対話(たとえば、タッチスクリーンを回転させること、タッチスクリーンを揺さぶること、タッチスクリーンに触れること、タッチスクリーン上で指をスワイプすること)は、VR空間におけるオブジェクトとの対話であると解釈することができる。VR空間におけるレーザポインタの例では、コンピューティングデバイス1050は、コンピュータによって生成された3D環境における仮想レーザポインタとして現れる。ユーザがコンピューティングデバイス1050を操作すると、VR空間内のユーザは、レーザポインタが動くのを見る。ユーザは、VR環境でのコンピューティングデバイス1050との対話からのフィードバックをコンピューティングデバイス1050またはVRヘッドセット1090で受信する。
【0064】
いくつかの実現例では、コンピューティングデバイス1050は、タッチスクリーンを含んでもよい。たとえば、ユーザは、タッチスクリーン上で起こることとVR空間で起こることとを似せることができる特定の態様でタッチスクリーンと対話することができる。たとえば、ユーザは、ピンチタイプ動作を使用して、タッチスクリーン上に表示されたコンテンツを拡大/縮小してもよい。タッチスクリーン上でのこのピンチタイプ動作は、VR空間において提供される情報を拡大/縮小させることができる。別の例では、コンピューティングデバイスは、コンピュータによって生成された3D環境における仮想書籍として描写されてもよい。VR空間において、書籍のページがVR空間に表示されてもよく、タッチスクリーン上でユーザの指をスワイプすることは、仮想書籍のページをめくる/さっとめくることであると解釈することができる。各ページがめくられる/さっとめくられると、ページコンテンツの変化を見ることに加えて、ユーザは、書籍のページをめくる音などの音声フィードバックを提供されてもよい。
【0065】
いくつかの実現例では、コンピューティングデバイス(たとえば、マウス、キーボード)に加えて、1つ以上の入力デバイスが、コンピュータによって生成された3D環境内に描写されてもよい。描写された入力デバイス(たとえば、描写されたマウス、描写されたキーボード)は、VR空間内に描写されたとおりに使用されて、VR空間におけるオブジェクトを制御することができる。
【0066】
コンピューティングデバイス1000は、さまざまな形態のデジタルコンピュータおよびデバイスを表すよう意図されており、これらのデジタルコンピュータおよびデバイスは、ラップトップ、デスクトップ、ワークステーション、パーソナルデジタルアシスタント、サーバ、ブレードサーバ、メインフレーム、および他の適切なコンピュータを含むが、これらに限定されるものではない。コンピューティングデバイス1050は、パーソナルデジタルアシスタント、携帯電話、スマートフォン、および他の同様のコンピューティングデバイスなどのさまざまな形態のモバイルデバイスを表すよう意図されている。ここに示されている構成要素、それらの接続および関係、ならびにそれらの機能は、単に例示的であるよう意図されており、本明細書に記載および/またはクレームされている発明の実現例を限定することを意図したものではない。
【0067】
以下の例には、さらなる実現例が記載されている。
例1:方法であって、周囲環境において動作するヘッドマウントディスプレイ(HMD)装置内に仮想環境を生成するステップと、仮想セッションを起動して、上記仮想セッションがアクティブ状態にある間に、上記仮想環境において少なくとも1つの対応するコマンドを実行するための少なくとも1つのユーザ入力を受信するステップと、上記周囲環境における上記HMDの位置または向きのうちの少なくとも1つを検出するステップと、上記HMDの上記位置または上記向きのうちの上記少なくとも1つに基づいてジェスチャ入力を検出するステップと、上記ジェスチャ入力の上記検出に基づいて上記仮想セッションの終了を検出するステップと、上記仮想セッションの上記検出された終了に応答して、上記アクティブ状態にある間に、上記仮想セッション中に受信された上記少なくとも1つのユーザ入力に関連する処理を起動するステップとを備える、方法。
【0068】
例2:上記周囲環境における上記HMDの上記位置または上記向きのうちの上記少なくとも1つに基づいてジェスチャ入力を検出するステップは、上記HMDの向きを検出するステップと、上記HMDの上記検出された向きと設定された向きとを比較するステップと、上記比較に基づいて、設定された時間以上にわたって上記HMDの上記検出された向きが上記HMDの上記予め設定された向きと一致すると判断された場合に、上記仮想セッションの上記終了の上記検出に対応する上記ジェスチャ入力を検出するステップとを含む、例1に記載の方法。
【0069】
例3:上記HMDの上記設定された向きは、上記ユーザが着用する上記HMDの中心線の水平位置合わせに対応する、例2に記載の方法。
【0070】
例4:上記周囲環境における上記HMDの上記位置または上記向きのうちの上記少なくとも1つに基づいてジェスチャ入力を検出するステップは、上記HMDの上記位置および上記向きを検出するステップと、上記HMDの上記位置および向きに基づいて、設定された時間以上にわたって上記HMDが静止したままであると判断された場合に、上記仮想セッションの上記終了の上記検出に対応する上記ジェスチャ入力を検出するステップとを含む、例1〜3のいずれかに記載の方法。
【0071】
例5:上記周囲環境における上記HMDの上記位置または上記向きのうちの上記少なくとも1つに基づいてジェスチャ入力を検出するステップは、上記HMDの上記位置を検出するステップと、上記HMDの上記位置に基づいて、上記HMDが上記周囲環境におけるコンピューティングデバイスの予め設定された距離以下のところに位置決めされていると判断された場合に、上記仮想セッションの上記終了の上記検出に対応する上記ジェスチャ入力を検出するステップとを含み、上記コンピューティングデバイスは、上記HMDに動作可能に結合され、上記HMDの外部にある、例1〜4のいずれかに記載の方法。
【0072】
例6:上記周囲環境における上記HMDの上記位置または上記向きのうちの上記少なくとも1つに基づいてジェスチャ入力を検出するステップは、上記HMDの上記位置を検出するステップと、上記HMDの上記位置に基づいて上記HMDの移動経路を検出するステップと、上記HMDの上記移動経路に基づいて、上記HMDの上記移動経路が上記周囲環境におけるコンピューティングデバイスと位置合わせされていると判断された場合に、上記仮想セッションの上記終了の上記検出に対応する上記ジェスチャ入力を検出するステップとを含み、上記コンピューティングデバイスは、上記HMDに動作可能に結合され、上記HMDの外部にある、例1〜5のいずれかに記載の方法。
【0073】
例7:上記HMDの上記位置に基づいて上記HMDの移動経路を検出するステップは、上記HMDの移動方向を検出するステップと、上記HMDの移動速度を検出するステップと、上記検出された移動方向における上記HMDの上記移動速度が設定された速度以上である場合に、上記仮想セッションの上記終了に対応する上記ジェスチャ入力を検出するステップとを含む、例6に記載の方法。
【0074】
例8:上記仮想セッション中に受信された上記少なくとも1つのユーザ入力に関連する処理を起動するステップは、上記周囲環境におけるコンピューティングデバイスにおいて、ユーザ入力なしに処理を自動的に起動するステップを含み、上記コンピューティングデバイスは、上記HMDに動作可能に結合され、上記HMDの外部にある、例1〜7のいずれかに記載の方法。
【0075】
例9:システムであって、
バーチャルリアリティ環境を生成するように構成されたコンピューティングデバイスを備え、上記コンピューティングデバイスは、実行可能な命令を格納するメモリと、上記命令を実行するように構成されたプロセッサとを含み、上記命令は、上記コンピューティングデバイスに、周囲環境において動作するヘッドマウントディスプレイ(HMD)装置内に仮想環境を生成させ、仮想セッションを起動させて、上記仮想セッションがアクティブ状態にある間に、上記仮想環境において少なくとも1つの対応するコマンドを実行するための少なくとも1つのユーザ入力を受信させ、上記周囲環境における上記HMDの位置または向きのうちの少なくとも1つを検出させ、上記HMDの上記位置または上記向きのうちの上記少なくとも1つに基づいてジェスチャ入力を検出させ、上記ジェスチャ入力の上記検出に基づいて上記仮想セッションの終了を検出させ、上記仮想セッションの上記検出された終了に応答して、上記アクティブ状態にある間に、上記仮想セッション中に受信された上記少なくとも1つのユーザ入力に関連する処理を起動させる、システム。
【0076】
例10:上記周囲環境における上記HMDの上記位置または上記向きのうちの上記少なくとも1つに基づいてジェスチャ入力を検出する際に、上記命令は、上記コンピューティングデバイスに、上記HMDの向きを検出させ、上記HMDの上記検出された向きと設定された向きとを比較させ、上記比較に基づいて、設定された時間以上にわたって上記HMDの上記検出された向きが上記HMDの上記設定された向きと一致すると判断された場合に、上記仮想セッションの上記終了の上記検出に対応する上記ジェスチャ入力を検出させる、例9に記載のシステム。
【0077】
例11:上記HMDの上記設定された向きは、上記ユーザが着用する上記HMDの中心線の水平位置合わせに対応する、例10に記載のシステム。
【0078】
例12:上記周囲環境における上記HMDの上記位置または上記向きのうちの上記少なくとも1つに基づいてジェスチャ入力を検出する際に、上記命令は、上記コンピューティングデバイスに、上記HMDの上記位置および上記向きを検出させ、上記HMDの上記位置および向きに基づいて、設定された時間以上にわたって上記HMDが静止したままであると判断された場合に、上記仮想セッションの上記終了の上記検出に対応する上記ジェスチャ入力を検出させる、例9〜11のいずれかに記載のシステム。
【0079】
例13:上記周囲環境における上記HMDの上記位置または上記向きのうちの上記少なくとも1つに基づいてジェスチャ入力を検出する際に、上記命令は、上記コンピューティングデバイスに、上記HMDの上記位置を検出させ、上記HMDの上記位置に基づいて、上記HMDが上記周囲環境におけるコンピューティングデバイスの設定された距離以下のところに位置決めされていると判断された場合に、上記仮想セッションの上記終了の上記検出に対応する上記ジェスチャ入力を検出させ、上記コンピューティングデバイスは、上記HMDに動作可能に結合され、上記HMDの外部にある、例9〜12のいずれかに記載のシステム。
【0080】
例14:上記周囲環境における上記HMDの上記位置または上記向きのうちの上記少なくとも1つに基づいてジェスチャ入力を検出する際に、上記命令は、上記コンピューティングデバイスに、上記HMDの上記位置を検出させ、上記HMDの上記位置に基づいて上記HMDの移動経路を検出させ、上記HMDの上記検出された移動経路に基づいて、上記HMDの上記検出された移動経路が上記周囲環境におけるコンピューティングデバイスと位置合わせされていると判断された場合に、上記仮想セッションの上記終了の上記検出に対応する上記ジェスチャ入力を検出させ、上記コンピューティングデバイスは、上記HMDに動作可能に結合され、上記HMDの外部にある、例9〜13のいずれかに記載のシステム。
【0081】
例15:上記HMDの上記位置に基づいて上記HMDの移動経路を検出する際に、上記命令は、上記コンピューティングデバイスに、上記HMDの移動方向を検出させ、上記HMDの移動速度を検出させ、上記検出された移動方向における上記HMDの上記移動速度が設定された速度以上である場合に、上記仮想セッションの上記終了に対応する上記ジェスチャ入力を検出させる、例14に記載の方法。
【0082】
例16:上記仮想セッション中に受信された上記少なくとも1つのユーザ入力に関連する処理を起動する際に、上記命令は、上記コンピューティングデバイスに、上記周囲環境におけるコンピューティングデバイスにおいて、ユーザ入力なしに処理を自動的に起動させ、上記コンピューティングデバイスは、上記HMDに動作可能に結合され、上記HMDの外部にある、例9〜15のいずれかに記載のシステム。
【0083】
例17:非一時的なコンピュータ読取可能媒体上で具体化されるコンピュータプログラム製品であって、上記コンピュータ読取可能媒体は、一連の命令を格納し、上記一連の命令は、プロセッサによって実行されると、上記プロセッサに方法を実行させ、上記方法は、周囲環境において動作するヘッドマウントディスプレイ(HMD)装置内に仮想環境を生成するステップと、仮想セッションを起動して、上記仮想セッションがアクティブ状態にある間に、上記仮想環境において少なくとも1つの対応するコマンドを実行するための少なくとも1つのユーザ入力を受信するステップと、上記周囲環境における上記HMDの位置および向きを検出するステップと、上記HMDの上記位置または上記向きのうちの上記少なくとも1つに基づいてジェスチャ入力を検出するステップと、上記ジェスチャ入力の上記検出に基づいて上記仮想セッションの終了を検出するステップと、上記仮想セッションの上記検出された終了に応答して、上記アクティブ状態にある間に、上記仮想セッション中に受信された上記少なくとも1つのユーザ入力に関連する処理を、上記周囲環境におけるコンピューティングデバイスにおいて自動的に起動するステップとを備え、上記コンピューティングデバイスは、上記HMDに動作可能に結合され、上記HMDの外部にある、コンピュータプログラム製品。
【0084】
例18:上記周囲環境における上記HMDの上記位置または上記向きのうちの上記少なくとも1つに基づいてジェスチャ入力を検出するステップは、上記HMDの向きを検出するステップと、上記HMDの上記検出された向きと設定された向きとを比較するステップと、上記HMDの上記検出された向きに基づいて、設定された時間以上にわたって上記HMDが実質的に水平に向けられていると判断された場合に、上記仮想セッションの上記終了の上記検出に対応する上記ジェスチャ入力を検出するステップとを含む、例17に記載のコンピュータプログラム製品。
【0085】
例19:上記周囲環境における上記HMDの上記位置または上記向きのうちの上記少なくとも1つに基づいてジェスチャ入力を検出するステップは、上記HMDの上記位置および上記向きを検出するステップと、上記HMDの上記位置および向きに基づいて、設定された時間以上にわたって上記HMDが静止したままであると判断された場合に、上記仮想セッションの上記終了の上記検出に対応する上記ジェスチャ入力を検出するステップとを含む、例17または18に記載のコンピュータプログラム製品。
【0086】
例20:上記周囲環境における上記HMDの上記位置または上記向きのうちの上記少なくとも1つに基づいてジェスチャ入力を検出するステップは、上記HMDの上記位置を検出するステップと、上記HMDの上記検出され追跡された位置に基づいて、上記HMDが上記コンピューティングデバイスの設定された距離以下のところに位置決めされていると判断された場合に、上記仮想セッションの上記終了の上記検出に対応する上記ジェスチャ入力を検出するステップとを含む、例17〜19のいずれかに記載のコンピュータプログラム製品。
【0087】
別の例では、拡張現実および/またはバーチャルリアリティシステムにおいて、仮想セッションの終了および/または仮想セッションの中止は、ヘッドマウントディスプレイ装置の位置および/または向き、ならびに/または、ユーザが着用しているヘッドマウントディスプレイ装置の移動および位置/向きの検出に基づいて検出されてもよく、終了されたばかりの仮想セッションに関連付けられた後続処理および/または補足的タスクは、仮想セッションの終了および/または中止の検出に応答して、ユーザ介入および/または処理を起動するようにシステムに指示するコマンドの手動入力なしに、自動的に起動されてもよい。
【0088】
いくつかの実施形態について説明してきた。しかし、本明細書の精神および範囲から逸脱することなくさまざまな変更がなされてもよいということが理解されるであろう。
【0089】
また、図面に示される論理フローは、望ましい結果を達成するために、示されている特定の順序またはシーケンシャルな順序を必要としない。また、記載されているフローに他のステップが設けられてもよく、または記載されているフローからステップが削除されてもよく、記載されているシステムに他の構成要素が追加されてもよく、または記載されているシステムから構成要素が除去されてもよい。したがって、他の実施形態も以下の特許請求の範囲の範囲内である。
【0090】
記載されている実現例の特定の特徴について、本明細書に記載されているように説明してきたが、多くの変形、置換、変更および等価物が当業者に想起されるであろう。したがって、添付の特許請求の範囲は、実現例の範囲内に入る全てのこのような変形および変更を包含するよう意図されているということが理解されるべきである。それらは限定としてではなく単に一例として提示されており、形態および詳細のさまざまな変更がなされてもよいということが理解されるべきである。本明細書に記載されている装置および/または方法のいずれの部分も、相互排他的な組み合わせを除いて、いかなる組み合わせで組み合わせられてもよい。本明細書に記載されている実現例は、記載されているさまざまな実現例の機能、構成要素および/または特徴のさまざまな組み合わせおよび/または下位組み合わせを含み得る。