(57)【特許請求の範囲】
【請求項１】
ヘッドマウントディスプレイ（ＨＭＤ）デバイスのディスプレイに仮想環境を表示するステップと、
前記ＨＭＤの外部における第１のジェスチャー入力を、第１のハンドヘルド電子デバイスの検出された第１の位置と、第２のハンドヘルド電子デバイスの検出された第１の位置とに基づいて、検出するステップと、
前記第１のジェスチャー入力の検出に応じて、仮想注記面を生成するステップと、
前記ＨＭＤの外部における第２のジェスチャー入力を、前記第１のハンドヘルド電子デバイスの検出された第２の位置と、前記第２のハンドヘルド電子デバイスの検出された第２の位置とに基づいて、検出するステップと、
前記第２のジェスチャー入力の検出に応じて、前記仮想環境における第１の仮想オブジェクトとして前記仮想注記面を表示するステップと、
前記第１のハンドヘルド電子デバイスまたは前記第２のハンドヘルド電子デバイスのうちの少なくとも一方の操作デバイスの作動の解除を検出するステップと、
前記検出した操作デバイスの作動の解除に応じて、前記仮想注記面の大きさまたは形状のうちの少なくとも一方を設定するステップと、
前記仮想環境における第２の仮想オブジェクトとして前記仮想注記面を表示するステップとを含む、方法。
【請求項２】
前記第１のハンドヘルド電子デバイスは前記ＨＭＤに作動的に結合されており、前記第２のハンドヘルド電子デバイスは前記ＨＭＤに作動的に結合されている、請求項１に記載の方法。
【請求項３】
前記仮想注記面の大きさまたは形状のうちの少なくとも一方を設定するステップは、前記第１のハンドヘルド電子デバイスの検出された第１の位置に対する前記第１のハンドヘルド電子デバイスの検出された第２の位置と、前記第２のハンドヘルド電子デバイスの検出された第１の位置に対する前記第２のハンドヘルド電子デバイスの検出された第２の位置とに基づいて、前記仮想注記面の大きさまたは形状のうちの少なくとも一方を設定するステップを含む、請求項１または２に記載の方法。
【請求項４】
前記仮想注記面の大きさまたは形状のうちの少なくとも一方を設定するステップは、前記操作デバイスの作動の解除の検出と、前記操作デバイスの作動の解除の検出に対応する時点で検出された、前記第１のハンドヘルド電子デバイスの第２の位置および前記第２のハンドヘルド電子デバイスの第２の位置の検出に応じて、前記仮想注記面の大きさまたは形状のうちの少なくとも一方を設定するステップをさらに含む、請求項３に記載の方法。
【請求項５】
前記ＨＭＤの外部における第３のジェスチャー入力を検出するステップと、
前記第３のジェスチャー入力の検出に応じて、前記仮想注記面に注釈を与えるステップとをさらに含み、前記注釈を与えるステップは、
マーキング手段の移動を検出し追跡するステップと、
前記検出したマーキング手段の移動に基づいて前記仮想注記面に注釈を与えるステップとを含み、前記方法はさらに、
前記仮想環境における前記第２の仮想オブジェクトとして、前記注釈が与えられた仮想注記面を表示するステップを含む、請求項１から４のいずれか１項に記載の方法。
【請求項６】
前記検出したマーキング手段の移動に基づいて前記仮想注記面に注釈を与えるステップは、
前記マーキング手段の操作デバイスの作動を検出するステップと、
前記検出した操作デバイスの作動に応じて、前記マーキング手段の移動の追跡を開始するステップと、
前記操作デバイスの作動の解除を検出するステップと、
前記検出した操作デバイスの解除に応じて、前記マーキング手段の移動の追跡を終了するステップとを含む、請求項５に記載の方法。
【請求項７】
前記検出したマーキング手段の移動に基づいて前記仮想注記面に注釈を与えるステップは、
前記追跡したマーキング手段の移動に対応する輪郭を検出するステップと、
前記検出したマーキング手段の移動の輪郭に対応する輪郭を用いて前記仮想注記面に注釈を与えるステップとをさらに含む、請求項５または６に記載の方法。
【請求項８】
システムであって、
仮想現実環境を生成するように構成されたコンピューティングデバイスを備え、前記コンピューティングデバイスは、
実行可能な命令を格納するメモリと、
プロセッサとを含み、前記プロセッサは、前記命令を実行することにより、前記コンピューティングデバイスに、
ヘッドマウントディスプレイ（ＨＭＤ）デバイスのディスプレイに仮想環境を表示することと、
前記ＨＭＤの外部における第１のジェスチャー入力を、第１のハンドヘルド電子デバイスの検出された第１の位置と、第２のハンドヘルド電子デバイスの検出された第１の位置とに基づいて、検出することと、
前記第１のジェスチャー入力の検出に応じて、仮想注記面を生成することと、
前記ＨＭＤの外部における第２のジェスチャー入力を、前記第１のハンドヘルド電子デバイスの検出された第２の位置と、前記第２のハンドヘルド電子デバイスの検出された第２の位置とに基づいて、検出することと、
前記第２のジェスチャー入力の検出に応じて、前記仮想環境における第１の仮想オブジェクトとして前記仮想注記面を表示することと、
前記第１のハンドヘルド電子デバイスまたは前記第２のハンドヘルド電子デバイスのうちの少なくとも一方の操作デバイスの作動の解除を検出することと、
前記検出した操作デバイスの作動の解除に応じて、前記仮想注記面の大きさまたは形状のうちの少なくとも一方を設定することと、
前記仮想環境における第２の仮想オブジェクトとして前記仮想注記面を表示することとを実行させるように構成されている、システム。
【請求項９】
前記第１のハンドヘルド電子デバイスは前記ＨＭＤに作動的に結合されており、前記第２のハンドヘルド電子デバイスは前記ＨＭＤに作動的に結合されている、請求項８に記載のシステム。
【請求項１０】
前記仮想注記面の大きさまたは形状のうちの少なくとも一方の設定において、前記命令は、前記コンピューティングデバイスに、
前記第１のハンドヘルド電子デバイスの検出された第１の位置に対する前記第１のハンドヘルド電子デバイスの検出された第２の位置と、前記第２のハンドヘルド電子デバイスの検出された第１の位置に対する前記第２のハンドヘルド電子デバイスの検出された第２の位置とに基づいて、前記仮想注記面の大きさまたは形状のうちの少なくとも一方を設定することを実行させる、請求項８または９に記載のシステム。
【請求項１１】
前記仮想注記面の大きさまたは形状のうちの少なくとも一方の設定において、前記命令は、前記コンピューティングデバイスに、
前記操作デバイスの作動の解除の検出と、前記操作デバイスの作動の解除の検出に対応する時点で検出された、前記第１のハンドヘルド電子デバイスの第２の位置および前記第２のハンドヘルド電子デバイスの第２の位置の検出に応じて、前記仮想注記面の大きさまたは形状のうちの少なくとも一方を設定することを実行させる、請求項１０に記載のシステム。
【請求項１２】
前記命令は、前記コンピューティングデバイスに、
前記ＨＭＤの外部における第３のジェスチャー入力を検出することと、
前記第３のジェスチャー入力の検出に応じて、前記仮想注記面に注釈を与えることとを実行させ、前記注釈を与えることは、
マーキング手段の移動を検出し追跡することと、
前記検出したマーキング手段の移動に基づいて前記仮想注記面に注釈を与えることとを含み、
前記命令は、前記コンピューティングデバイスに、
前記仮想環境における前記第２の仮想オブジェクトとして、前記注釈が与えられた仮想注記面を表示することを実行させる、請求項８から１１のいずれか１項に記載のシステム。
【請求項１３】
前記検出したマーキング手段の移動に基づいて前記仮想注記面に注釈を与えることにおいて、前記命令は、前記コンピューティングデバイスに、
前記マーキング手段の操作デバイスの作動を検出することと、
前記検出した操作デバイスの作動に応じて、前記マーキング手段の移動の追跡を開始することと、
前記操作デバイスの作動の解除を検出することと、
前記検出した操作デバイスの解除に応じて、前記マーキング手段の移動の追跡を終了することとを実行させる、請求項１２に記載のシステム。
【請求項１４】
前記検出したマーキング手段の移動に基づいて前記仮想注記面に注釈を与えることにおいて、前記命令は、前記コンピューティングデバイスに、
前記追跡したマーキング手段の移動に対応する輪郭を検出することと、
前記検出したマーキング手段の移動の輪郭に対応する輪郭を用いて前記仮想注記面に注釈を与えることとを実行させる、請求項１２または１３に記載のシステム。
【請求項１５】
コンピュータ読取可能プログラムであって、前記コンピュータ読取可能プログラムは命令のシーケンスを有し、前記命令のシーケンスは、プロセッサによって実行されると前記プロセッサに方法を実行させ、前記方法は、
ヘッドマウントディスプレイ（ＨＭＤ）デバイスのディスプレイに仮想環境を表示するステップと、
前記ＨＭＤの外部における第１のジェスチャー入力を、第１のハンドヘルド電子デバイスの検出された第１の位置と、第２のハンドヘルド電子デバイスの検出された第１の位置とに基づいて、検出するステップと、
前記第１のジェスチャー入力の検出に応じて、仮想注記面を生成するステップと、
前記ＨＭＤの外部における第２のジェスチャー入力を、前記第１のハンドヘルド電子デバイスの検出された第２の位置と、前記第２のハンドヘルド電子デバイスの検出された第２の位置とに基づいて、検出するステップと、
前記第２のジェスチャー入力の検出に応じて、前記仮想環境における第１の仮想オブジェクトとして前記仮想注記面を表示するステップと、
前記第１のハンドヘルド電子デバイスまたは前記第２のハンドヘルド電子デバイスのうちの少なくとも一方の操作デバイスの作動の解除を検出するステップと、
前記検出した操作デバイスの作動の解除に応じて、前記仮想注記面の大きさまたは形状のうちの少なくとも一方を設定するステップと、
前記仮想環境における第２の仮想オブジェクトとして前記仮想注記面を表示するステップとを含む、コンピュータ読取可能プログラム。
【請求項１６】
前記第１のジェスチャー入力を検出するステップは、
前記第１のハンドヘルド電子デバイスまたは前記第２のハンドヘルド電子デバイスのうちの少なくとも一方の操作デバイスの第１の作動を検出するステップと、
前記第１のハンドヘルド電子デバイスの検出された第１の位置と、前記第２のハンドヘルド電子デバイスの検出された第１の位置と、前記検出した操作デバイスの第１の作動とに基づいて、前記第１のジェスチャー入力を検出するステップとをさらに含む、請求項１５に記載のコンピュータ読取可能プログラム。
【請求項１７】
前記第２のジェスチャー入力を検出するステップは、
前記第１のジェスチャー入力の検出後に、
前記操作デバイスの第１の作動の解除を検出するステップと、
前記操作デバイスの第１の作動の解除が検出された時点における前記第１のハンドヘルド電子デバイスの第２の位置を検出するステップと、
前記操作デバイスの第１の作動の解除が検出された時点における前記第２のハンドヘルド電子デバイスの第２の位置を検出するステップと、
前記検出した第１のハンドヘルド電子デバイスの第１の位置に対する前記検出した第１のハンドヘルド電子デバイスの第２の位置と、前記検出した第２のハンドヘルド電子デバイスの第１の位置に対する前記検出した第２のハンドヘルド電子デバイスの第２の位置とに基づいて、前記仮想注記面の大きさまたは形状のうちの少なくとも一方を設定するステップとを含む、請求項１６に記載のコンピュータ読取可能プログラム。
【請求項１８】
前記ＨＭＤの外部における第３のジェスチャー入力を検出するステップと、
前記第３のジェスチャー入力の検出に応じて、前記仮想注記面に注釈を与えるステップとをさらに含み、前記注釈を与えるステップは、
前記操作デバイスの第２の作動を検出するステップと、
前記検出した操作デバイスの第２の作動に応じて、前記第１のハンドヘルド電子デバイスまたは前記第２のハンドヘルド電子デバイスのうちの少なくとも一方の移動を追跡するステップと、
前記操作デバイスの第２の作動の解除を検出するステップと、
前記検出した操作デバイスの第２の作動の解除に応じて、前記第１のハンドヘルド電子デバイスまたは前記第２のハンドヘルド電子デバイスのうちの少なくとも一方の移動の追跡を終了するステップとを含み、さらに、
前記操作デバイスの第２の作動の検出と前記操作デバイスの第２の作動の解除の検出との間において追跡した、前記第１のハンドヘルド電子デバイスまたは前記第２のハンドヘルド電子デバイスのうちの少なくとも一方の移動に対応する輪郭を用いて、前記仮想注記面に注釈を与えるステップを含む、請求項１７に記載のコンピュータ読取可能プログラム。
【請求項１９】
請求項１から７のいずれか１項に記載の方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本願は、２０１６年１２月５日に出願された米国出願第１５／３６９，６２０号の継続出願であり、この出願に基づく優先権を主張し、その開示全体を本明細書に引用により援用する。
【０００２】
分野
本明細書は、概して、拡張現実および／または仮想現実環境において、メモを取るための面をジェスチャーによって生成することに関する。
【背景技術】
【０００３】
背景
拡張現実（ＡＲ）および／または仮想現実（ＶＲ）システムは、没入型の３次元（３Ｄ）仮想環境を生成し得る。ユーザは、この仮想環境におけるオブジェクトと、さまざまな電子デバイスを用いてやり取りすることができる。電子デバイスは、たとえば、ディスプレイとユーザがディスプレイ装置を見るときに使用する眼鏡もしくはゴーグルとを含むヘルメットまたはその他のヘッドマウントデバイス、コントローラやジョイスティックなどの１つ以上のハンドヘルド電子デバイス、センサを備えた手袋、キーボード、マウス、およびその他の電子デバイスなどである。
【発明の概要】
【課題を解決するための手段】
【０００４】
概要
ある局面において、方法は、ヘッドマウントディスプレイ（ＨＭＤ）デバイスのディスプレイに仮想環境を表示するステップと、ＨＭＤの外部におけるジェスチャー入力を検出するステップと、ジェスチャー入力の検出に応じて仮想注記面を生成するステップと、仮想環境における仮想オブジェクトとして仮想注記面を表示するステップと、ＨＭＤの外部における別のジェスチャー入力を検出するステップと、検出したジェスチャー入力に基づいて仮想注記面に注釈を与えるステップと、注釈を与えた仮想注記面を仮想環境における仮想オブジェクトとして表示するステップとを含む。
【０００５】
別の局面において、仮想現実環境を生成するように構成されたコンピューティングデバイスは、実行可能な命令を格納するメモリと、この命令を実行するように構成されたプロセッサとを含み得る。この命令は、コンピューティングデバイスに、ヘッドマウントディスプレイ（ＨＭＤ）デバイスのディスプレイに仮想環境を表示することと、ＨＭＤの外部における第１のジェスチャー入力を検出することと、第１のジェスチャー入力の検出に応じて、仮想注記面を生成することと、ＨＭＤの外部における第２のジェスチャー入力を検出することと、第２のジェスチャー入力の検出に応じて、仮想環境における仮想オブジェクトとして仮想注記面を表示することと、ＨＭＤの外部における第３のジェスチャー入力を検出することと、第３のジェスチャー入力の検出に応じて、仮想注記面に注釈を与えることと、注釈が与えられた仮想注記面を、仮想環境における仮想オブジェクトとして表示することとを実行させる。
【０００６】
別の局面において、非一時的なコンピュータ読取可能媒体上で実施されるコンピュータプログラムプロダクトは、命令のシーケンスを格納し得る。この命令は、プロセッサによって実行されると、このプロセッサに方法を実行させ、この方法は、ヘッドマウントディスプレイ（ＨＭＤ）デバイスのディスプレイに仮想環境を表示するステップと、ＨＭＤの外部における第１のジェスチャー入力を検出するステップと、第１のジェスチャー入力の検出に応じて、仮想注記面を生成するステップと、ＨＭＤの外部における第２のジェスチャー入力を検出するステップと、第２のジェスチャー入力の検出に応じて、仮想環境における仮想オブジェクトとして仮想注記面を表示するステップと、ＨＭＤの外部における第３のジェスチャー入力を検出するステップと、第３のジェスチャー入力の検出に応じて、仮想注記面に注釈を与えるステップと、注釈が与えられた仮想注記面を仮想環境における仮想オブジェクトとして表示するステップとを含む。
【０００７】
１つ以上の実装例の詳細が添付の図面および以下の説明に記載される。その他の特徴はこの説明および図面ならびに請求項から明らかになるであろう。
【図面の簡単な説明】
【０００８】
【図１】本明細書に記載の実装例に係る、外部入力デバイスと通信するヘッドマウントディスプレイを含む拡張および／または仮想現実システムの実装の一例を示す図である。
【図２Ａ】本明細書に記載の実装例に係る、ヘッドマウントディスプレイ装置の一例の斜視図である。
【図２Ｂ】本明細書に記載の実装例に係る、ヘッドマウントディスプレイ装置の一例の斜視図である。
【図３】本明細書に記載の実装例に係る、拡張および／または仮想現実システムのブロック図である。
【図４Ａ】本明細書に記載の実装例に係る、拡張および／または仮想現実環境において検出されたユーザのジェスチャーに応じて仮想注記面を実体化するためのシステムを示す図である。
【図４Ｂ】本明細書に記載の実装例に係る、拡張および／または仮想現実環境において検出されたユーザのジェスチャーに応じて仮想注記面を実体化するためのシステムを示す図である。
【図４Ｃ】本明細書に記載の実装例に係る、拡張および／または仮想現実環境において検出されたユーザのジェスチャーに応じて仮想注記面を実体化するためのシステムを示す図である。
【図４Ｄ】本明細書に記載の実装例に係る、拡張および／または仮想現実環境において検出されたユーザのジェスチャーに応じて仮想注記面を実体化するためのシステムを示す図である。
【図４Ｅ】本明細書に記載の実装例に係る、拡張および／または仮想現実環境において検出されたユーザのジェスチャーに応じて仮想注記面を実体化するためのシステムを示す図である。
【図４Ｆ】本明細書に記載の実装例に係る、拡張および／または仮想現実環境において検出されたユーザのジェスチャーに応じて仮想注記面を実体化するためのシステムを示す図である。
【図４Ｇ】本明細書に記載の実装例に係る、拡張および／または仮想現実環境において検出されたユーザのジェスチャーに応じて仮想注記面を実体化するためのシステムを示す図である。
【図４Ｈ】本明細書に記載の実装例に係る、拡張および／または仮想現実環境において検出されたユーザのジェスチャーに応じて仮想注記面を実体化するためのシステムを示す図である。
【図５Ａ】本明細書に記載の実装例に係る、拡張および／または仮想現実環境における仮想注記面の注釈および操作を示す図である。
【図５Ｂ】本明細書に記載の実装例に係る、拡張および／または仮想現実環境における仮想注記面の注釈および操作を示す図である。
【図５Ｃ】本明細書に記載の実装例に係る、拡張および／または仮想現実環境における仮想注記面の注釈および操作を示す図である。
【図５Ｄ】本明細書に記載の実装例に係る、拡張および／または仮想現実環境における仮想注記面の注釈および操作を示す図である。
【図５Ｅ】本明細書に記載の実装例に係る、拡張および／または仮想現実環境における仮想注記面の注釈および操作を示す図である。
【図５Ｆ】本明細書に記載の実装例に係る、拡張および／または仮想現実環境における仮想注記面の注釈および操作を示す図である。
【図５Ｇ】本明細書に記載の実装例に係る、拡張および／または仮想現実環境における仮想注記面の注釈および操作を示す図である。
【図６Ａ】本明細書に記載の実装例に係る、拡張および／または仮想現実環境における仮想注記面の注釈および操作を示す図である。
【図６Ｂ】本明細書に記載の実装例に係る、拡張および／または仮想現実環境における仮想注記面の注釈および操作を示す図である。
【図６Ｃ】本明細書に記載の実装例に係る、拡張および／または仮想現実環境における仮想注記面の注釈および操作を示す図である。
【図６Ｄ】本明細書に記載の実装例に係る、拡張および／または仮想現実環境における仮想注記面の注釈および操作を示す図である。
【図７Ａ】本明細書に記載の実装例に係る、拡張および／または仮想現実環境における仮想注記面の注釈および操作を示す図である。
【図７Ｂ】本明細書に記載の実装例に係る、拡張および／または仮想現実環境における仮想注記面の注釈および操作を示す図である。
【図７Ｃ】本明細書に記載の実装例に係る、拡張および／または仮想現実環境における仮想注記面の注釈および操作を示す図である。
【図７Ｄ】本明細書に記載の実装例に係る、拡張および／または仮想現実環境における仮想注記面の注釈および操作を示す図である。
【図７Ｅ】本明細書に記載の実装例に係る、拡張および／または仮想現実環境における仮想注記面の注釈および操作を示す図である。
【図７Ｆ】本明細書に記載の実装例に係る、拡張および／または仮想現実環境における仮想注記面の注釈および操作を示す図である。
【図７Ｇ】本明細書に記載の実装例に係る、拡張および／または仮想現実環境における仮想注記面の注釈および操作を示す図である。
【図７Ｈ】本明細書に記載の実装例に係る、拡張および／または仮想現実環境における仮想注記面の注釈および操作を示す図である。
【図７Ｉ】本明細書に記載の実装例に係る、拡張および／または仮想現実環境における仮想注記面の注釈および操作を示す図である。
【図７Ｊ】本明細書に記載の実装例に係る、拡張および／または仮想現実環境における仮想注記面の注釈および操作を示す図である。
【図７Ｋ】本明細書に記載の実装例に係る、拡張および／または仮想現実環境における仮想注記面の注釈および操作を示す図である。
【図７Ｌ】本明細書に記載の実装例に係る、拡張および／または仮想現実環境における仮想注記面の注釈および操作を示す図である。
【図８】本明細書に記載の実装例に係る、拡張および／または仮想現実環境において仮想注記面を実体化する方法のフローチャートを示す図である。
【図９】本明細書に記載の技術を実現するために使用することができるコンピュータデバイスおよびモバイルコンピュータデバイスの一例を示す図である。
【発明を実施するための形態】
【０００９】
詳細な説明
たとえばヘッドマウントディスプレイ（ＨＭＤ）デバイスを装着して拡張および／または仮想現実環境に没入しているユーザは、仮想環境を探検し、さまざまな異なるタイプの入力を通じて仮想環境とのやり取りを行うことができる。これらの入力は、たとえば、ＨＭＤとは別の１つ以上の電子デバイスの操作、および／またはＨＭＤ自体の操作、および／または手／腕のジェスチャー、目／頭部による注視などを含み得る。上記ＨＭＤとは別の１つ以上の電子デバイスの操作は、たとえば、１つ以上の電子デバイスに対する入力、１つ以上の電子デバイスを動かすこと、および／または１つ以上の電子デバイスの位置を変更することを含み得る。いくつかの実装例において、電子デバイスに対する入力は、上記電子デバイスの入力装置またはユーザインターフェイスを介して行うことができる。上記ＨＭＤの操作は、たとえば、ＨＭＤの対応する入力装置またはインターフェイスを介して行うことができる、ＨＭＤに入力を与えることを含み得る。ユーザは、各種電子デバイスを、ＨＭＤとは別にまたはＨＭＤとともに操作することにより、仮想環境において所望のアクションを生じさせることができる。ユーザは、仮想環境に没入している間に、たとえば、スケッチ、図形、またはその他の種類の表記の形態で、情報を記録しなければならない場合がある。この情報の記録は、現実世界においてはペン、紙、ホワイトボードなどを用いて実現されるであろう。仮想環境から出ることなく多種多様な情報の視覚的表現を同様のやり方で記録できることにより、ユーザの仮想体験を高度なものにすることが可能である。情報、たとえば２次元のスケッチおよびその他の種類の情報などを仮想面上で捕捉できることにより、仮想環境内の複数のユーザの間での共同作業を容易にすることが可能であり、そうすると仮想環境におけるユーザの体験はさらに高度なものになる。
【００１０】
本明細書に記載の実装例に係るシステムおよび方法において、拡張および／または仮想現実環境に没入しているユーザは、この仮想環境の中に仮想注記面（virtual notation surface）を生じさせる（たとえば実体化する、生成する）ことができる。仮想環境において、この仮想注記面は、ユーザが実現する設定されたジェスチャーまたはその他の種類の入力コマンドの検出に応じて生成することができる。注記面は、たとえば、メモ、スケッチなどといったユーザの注釈を受けることができ、これらの注釈は、ユーザが、たとえばコントローラ、仮想ペンもしくはペイントブラシ、手／指などの仮想マーキング手段を用いて仮想注記面を操作したことに応じて、入力される。これらの注釈は、たとえば、現実世界において同様の種類の情報を記録する必要が生じたときにユーザが従うであろうプロセスと幾分似ている、２次元の仮想面上における２次元のスケッチまたはその他のメモまたはその他の種類のマーキングであってもよい。仮想面上で受けた注釈は、このユーザおよび／または次のユーザによる将来の参照のために格納し保存することができ、このユーザおよび／または次のユーザが、更新する、さらに注釈を与える、および／またはそうでなければ修正することができる。仮想注記面の大きさおよび／または形状は、ユーザの操作に応じて調整することができる。これらの仮想注記面の大きさおよび／または形状を変更できることで、特定の仮想マーキング手段の比較的大きな入力規模に対応することができ、また、それによって生じた仮想面上の注釈を、注釈の入力後に仮想注記面の大きさおよび／または規模をさらに調整することで、粒度が改善されている縮小された規模で表示することもできる。このようにして、ユーザと仮想環境の間により柔軟性が高いインターフェイスが提供される。
【００１１】
図１は、ＨＭＤ１００を装着しているユーザを第三者の視点で見た図である。この例の第三者の視点で見た図において、ユーザは、拡張／仮想現実システムが動作可能である物理空間４００の中で、ＨＭＤ１００のディスプレイに表示された仮想シーンを見ながら仮想環境に没入している。この仮想シーンはＨＭＤ１００の内部においてユーザから見ることができるが、図１ではＨＭＤ１００のディスプレイ上でユーザに対して表示される仮想シーンを表したもの５００を示している。これは単に説明および図示を容易にするために過ぎない。ユーザは、ＨＭＤ１００に作動的に結合されてＨＭＤ１００と通信することが可能な１つ以上の外部コンピューティングデバイス２００とやり取りすることができる。これにより、外部デバイス２００とＨＭＤ１００との間の通信およびデータのやり取りが可能になる。１つ以上の外部コンピューティングデバイス２００とＨＭＤ１００とを作動的に結合することは、たとえば、１つ以上の外部コンピューティングデバイス２００とＨＭＤ１００との間に通信接続を設けることを含み得る。外部デバイス２００がユーザ入力を受けると、ユーザは、外部デバイス２００が受けた入力に基づいてＨＭＤ１００が生成した仮想シーン５００の中の仮想オブジェクトとやり取りすることができる。図１に示す例において、ＨＭＤ１００と作動的に結合された外部デバイス２００は、ハンドヘルド電子デバイス２００またはハンドヘルドコントローラ２００である。いくつかの実装例において、複数のハンドヘルド電子デバイス２００、たとえば、ユーザの第１の手で保持される第１のコントローラおよびユーザの第２の手で保持される第２のコントローラを、ユーザは、ＨＭＤ１００が生成した仮想環境の仮想要素とのやり取りのために、操作することができる。いくつかの実装例において、たとえばマウス、キーボード、ジョイスティックなどのようなその他の外部デバイス２００は、ＨＭＤ１００に作動的に結合されることにより、仮想環境におけるやり取りのためのユーザ入力を受けることができる。いくつかの実装例において、このシステムは、たとえばユーザの腕および／または手、および／またはその他の体の部分といったその他の入力デバイスの検出および追跡位置および／または検出された向きに基づいて、仮想環境におけるやり取りのためのユーザ入力を検出することができる。
【００１２】
図２Ａ〜図２Ｂは、本明細書に記載の実装例に係る、ユーザが装着する一例としてのＨＭＤ１００の斜視図であり、図３は、本明細書に記載の実装例に係る、拡張／仮想現実システムの一例のブロック図である。図２Ａ〜図２Ｂおよび図３を、本明細書において示すシステムおよび方法の各種実装例の記述に従い、より詳しく説明する。
【００１３】
以下、設定されたジェスチャー、たとえばＨＭＤ１００の外部で実現される設定されたジェスチャーの検出に応じて仮想注記面を生成することができる実装例について説明する。これらの仮想注記面、または以下で簡単に仮想面と呼ぶ面は、ユーザが実現する各種操作に応じて、たとえば、ユーザがハンドヘルド電子デバイスといった外部デバイス２００を用いて仮想面とやり取りすることで、大きさおよび／または形状および／または表面の外形が調整されるように構成することができる。仮想面は、たとえばユーザが外部デバイス２００を介して仮想面とやり取りすることによって与える仮想注釈を受けるように構成することができる。仮想注釈は、たとえば、テキスト、スケッチ、その他の仮想注記面から取り出された情報の形態で仮想面に与えられる任意の種類のマーキング、および、ユーザが所望するその他の種類の注釈を含み得る。
【００１４】
図４Ａ〜図４Ｅは、検出されたユーザのジェスチャーに応じて仮想環境内で仮想注記面が生成される実装例を示す。この例において、ユーザはＨＭＤ１００が生成した仮想環境に没入しており、ＨＭＤ１００は、一対のハンドヘルド電子デバイスまたはコントローラ２００Ａおよび２００Ｂを含む外部デバイス２００に作動的に結合されて、仮想環境内の仮想オブジェクト、要素、特徴などとのユーザのやり取りに関連する情報を交換する。先に述べたように、例示されるコントローラ２００Ａおよび２００Ｂの代わりにまたはこれらに加えて、その他の種類の外部コンピューティングデバイスがＨＭＤ１００に作動的に結合されてもよい。
【００１５】
図４Ａは、たとえばＨＭＤ１００のディスプレイ１４０上の、ユーザが見ている仮想シーン５００または仮想環境５００を示しており、ユーザを表したものも示しているが、単に説明および図示を容易にするために過ぎない。この例において、ユーザは、ＨＭＤ１００を装着しており、ＨＭＤ１００に作動的に結合されたまたはＨＭＤ１００とペアリングされた第１および第２のコントローラ２００Ａおよび２００Ｂを保持している。ユーザは、図４Ａに示す例に示される仮想環境５００を体験している間に、たとえば仮想環境５００の体験中に行った観察に基づいて、たとえばテキスト形式、スケッチ、またはその他のやり方で、後に参照するための覚書としてメモを取ることにより、その他のユーザなどと共有する情報を記録することが、有用であることを見出す場合がある。
【００１６】
いくつかの実装例において、仮想環境５００は、実質的にＨＭＤ１００の範囲の中で、たとえば先に述べたようにＨＭＤ１００のディスプレイ１４０上で、ユーザに対して表示することができる。この状況では、たとえば書込面上にマーキング手段（紙の上にペン／鉛筆、ホワイトボード上にマーカーなど）を用いて、覚書、メッセージ、スケッチなどを記録する従来の方法は、実用的でない場合がある。なぜなら、こうした従来の方法の場合、ユーザは仮想体験を中断し一時的に仮想環境５００から出なければならないからである。本明細書に記載の実装例に係るシステムおよび方法において、ユーザは、仮想環境５００において仮想注記面（または、以下説明を容易にするために簡単に仮想面と呼ぶ）を実体化させることができる。次に、ユーザは、仮想環境５００から出ることなく、この仮想面に、たとえば、テキスト、スケッチなどで注釈を与えることができる。注釈が与えられた仮想面を、上記ユーザ、および／または、同一の仮想環境５００内、および／または異なる仮想環境内、および／または仮想環境外のその他のユーザが、後に参照できるよう、格納しアクセスできるようにしてもよい。注釈が与えられた仮想面、および／または注釈が与えられた仮想面上に記録された注記を、１つの仮想面上に集約してもよく、および／または複数の仮想面を仮想的に接続または連結することによって複合仮想面を形成してもよい。注釈が与えられた仮想面を格納すること、格納された仮想面に後でアクセスすること、異なる仮想面の注記を集約させることおよび／または複数の仮想面を連結することが可能であるということは、現実世界において共同作業を行うユーザが従うプロセスと幾分似ており、ユーザの生産性を改善しユーザの体験を高度にする。このようにして、ＨＭＤ１００をより便利に使用することが可能である。さらに、ＨＭＤ１００を介して表示される仮想環境５００とのやり取りおよびＨＭＤ１００自体とのやり取りが改善される。
【００１７】
図４Ｂに示すように、ユーザは、仮想環境５００に没入している間に、設定されたジェスチャーを実現できる。システムは、この設定されたジェスチャーを検出することができ、仮想面６００を実体化するためのコマンドに対応するジェスチャーとして認識することができる。図４Ｂに示す例において、ユーザは、第１および第２のコントローラ２００Ａおよび２００Ｂを、設定されたやり方で第１の位置まで運ぶことができる。この第１の位置は、システムが検出し得る設定されたやり方で第１および第２のコントローラ２００Ａおよび２００Ｂが配置される位置である。図４Ｂに示す例において、第１および第２のコントローラ２００Ａおよび２００Ｂは、設定されたジェスチャーの開始としてシステムが検出し得る設定されたやり方で並べられている。図４Ｂに示す第１の位置は、第１および第２のコントローラ２００Ａおよび２００Ｂの第１の位置の配置の一例に過ぎない。第１の位置を含む設定されたジェスチャーは、たとえばユーザの好み、工場設定などに基づく第１および第２のコントローラ２００Ａおよび２００Ｂのその他の相対位置に基づいて、設定および検出されてもよい。第１および第２のコントローラ２００Ａおよび２００Ｂが第１の位置にある状態で、ユーザは、たとえばコントローラ２００Ａ、２００Ｂのうちの一方または双方の上のトリガまたはボタンなどの操作デバイス２０５Ａ、２０５Ｂの作動といった入力を、与えることができる。第１および第２のコントローラ２００Ａおよび２００Ｂをこの第１のジェスチャー位置にした状態で操作デバイス２０５Ａ、２０５Ｂのうちの一方または双方を作動させると、システムはこの作動をユーザ入力コマンドとして検出して仮想面６００を生成することができる。いくつかの実装例において、コントローラ２００Ａ、２００Ｂの相対的な位置は、コントローラ２００Ａ、２００Ｂ内の位置／方位センサにより、および／またはＨＭＤ１００内の画像センサおよびシステムのその他のコンポーネントにより、検出することができ、および／またはコントローラ２００Ａ、２００Ｂ内のセンサならびにＨＭＤ１００内のセンサおよびシステム内のその他のコンポーネントが提供するデータを組み合わせたものにより、第１および第２のコントローラ２００Ａおよび２００Ｂの位置および向きが追跡される。
【００１８】
ユーザがコントローラ２００Ａ、２００Ｂを動かして引き離す（すなわち互いから遠ざける）と、コントローラ２００Ａ、２００Ｂの移動によって定められる対応するジェスチャー入力を、ＨＭＤ１００が、図４Ｂに示す実装例に係るコントローラ２００Ａ、２００Ｂの移動に応じて検出することができる。この検出は、たとえば上記例のようにセンサを使用して行うことができる。ジェスチャー入力の検出に応じて、仮想面６００を実体化することができ、たとえば、ＨＭＤ１００によって仮想環境５００に表示することができる。加えて、仮想面６００の大きさを、図４Ｃおよび図４Ｄに示すように、ユーザがコントローラ２００Ａ、２００Ｂを動かし続けることによって調整することができる。たとえば、コントローラ２００Ａ、２００Ｂの移動は、仮想環境に対して実行されて仮想面６００の大きさの調整をＨＭＤ１００に行わせる、ユーザのさらなるジェスチャーまたはやり取りとして、検出される。いくつかの実装例において、コントローラ２００Ａ、２００Ｂを動かし続けながら、ユーザは、操作デバイス２０５Ａおよび／または２０５Ｂのうちの一方または双方を、（たとえばボタンまたはトリガを押された状態に保つことによって）作動状態に保つことで、仮想面６００の大きさおよび／または形状の調整の継続を望んでいることを示すことができる。たとえば操作デバイス２０５Ａ、２０５Ｂの作動の解除が検出されたことで、ユーザが仮想面６００を所望の大きさおよび／または形状で実体化することを終えたことが検出されると、仮想面６００は、図４Ｅに示すように、テキスト、スケッチなどの形態のユーザ入力をいつでも受けることができる。この例において、仮想面６００の大きさおよび／または形状は、システムが、操作デバイス２０５Ａ、２０５Ｂの作動の解除が検出された時点における第１のコントローラ２００Ａの第２の位置と第２のコントローラ２００Ｂの第２の位置とに基づいて、決定することができる。このようにして、ユーザは、容易に、ＨＭＤ１００が表示した仮想環境５００とやり取りすることができ、仮想環境５００とさらにやり取りするために仮想面６００をＨＭＤ１００に表示させることができる。したがって、ＨＭＤ１００を簡単かつ効果的に使用することが可能である。
【００１９】
図４Ａ〜図４Ｅに示す例において、仮想面６００は実質的に矩形である。これは、単に説明および図示を容易にするための、仮想面６００の外縁形状の一例に過ぎない。仮想面６００の外縁は、他の形状によって定められてもよく、たとえば図４Ｆおよび図４Ｇに示されるような、円形、楕円形、三角形、台形といった規則的な形状であってもよく、および／または、たとえば図４Ｈに示されるような不規則な外縁によって定められてもよく、および／または、異なる外縁を組み合わせたものによって定められてもよい。いくつかの実装例において、仮想面６００の外縁形状は、たとえばユーザの好みまたは工場設定に基づいて予め設定されてもよい。いくつかの実装例において、仮想面６００の外縁形状は、ユーザがたとえば第１の位置のコントローラ２００Ａおよび２００Ｂを用いるなどして仮想面６００を生成するときに選択してもよい。いくつかの実装例において、仮想面６００の外縁形状は、仮想面６００の生成後において、たとえば仮想面６００に注釈を与える前または仮想面６００に注釈を与えた後または仮想面６００に注釈を与える前と与えた後に、操作または変更してもよい。
【００２０】
図４Ａ〜図４Ｈに示す例において、仮想面６００の表面の外形は、実質的に平坦な面によって定められているが、これは単に説明および図示を容易にするために過ぎない。仮想面６００の表面の外形は、たとえば湾曲した外形、角度が付けられたまたは折り曲げられた外形などのような、その他の外形によって定められてもよく、および／または不規則な外形によって定められてもよく、および／または異なる外形を組み合わせたものによって定められてもよい。いくつかの実装例において、仮想面６００の外形は、たとえばユーザの好みまたは工場設定に基づいて予め設定されてもよい。いくつかの実装例において、仮想面６００の外形は、ユーザがたとえば第１の位置のコントローラ２００Ａおよび２００Ｂを用いるなどして仮想面６００を生成するときに選択してもよい。いくつかの実装例において、仮想面６００の外形は、仮想面６００の生成後において、たとえば仮想面６００に注釈を与える前または仮想面６００に注釈を与えた後または仮想面６００に注釈を与える前と与えた後に、操作または変更してもよい。
【００２１】
いくつかの実装例において、ユーザは、たとえばコントローラ２００Ａ、２００Ｂ、その位置および向きがシステムによって追跡される手／指のうちの一方もしくは双方といったマーキング手段、または、その位置および向きがシステムによって追跡されるその他の指定されたマーキング手段を用いて、仮想面６００に注釈を与えることができる。たとえば、図５Ａに示すように、仮想面６００が実体化されていつでも注釈を与えることができる状態になると、システムは、仮想面６００に与えられる注釈に対応するコントローラ２００Ａ、２００Ｂのうちの一方の移動を検出することができる。いくつかの実装例において、コントローラ２００Ａ、２００Ｂそれぞれの操作デバイス２０５Ａ、２０５Ｂのうちの一方のユーザによる作動などの特定の初期化アクション、たとえばボタンまたはトリガを押すことにより、仮想面６００に仮想のマーキングおよび／または注釈を与えるために各コントローラ２００Ａ、２００Ｂを初期化することができる。
【００２２】
図５Ａに示す例において、第２のコントローラ２００Ｂの操作デバイス２０５Ｂを作動させることにより、第２のコントローラ２００Ｂを初期化して、仮想面６００に対する注釈を開始することができる。図５Ｂに示されるように、ユーザは、操作デバイス２０５Ｂを作動状態に保ちつつ、第２のコントローラ２００Ｂの移動に基づいて仮想面６００に与えられる注釈を定めるように、第２のコントローラ２００Ｂを動かすまたは表現することができる。いくつかの実装例において、注釈は、ユーザが操作デバイス２０５Ｂを作動状態に保ちつつコントローラ２００Ｂを所望のパターンで動かしたときに仮想面６００に仮想的に表示されてもよい。いくつかの実装例において、注釈は、操作デバイス２０５Ｂの作動の解除後に仮想面６００に仮想的に表示されてもよい。ユーザは、再び操作デバイス２０５Ｂを作動させるまたは押し下げることにより、仮想面６００に注釈を与えるためにコントローラ２００Ｂを初期化し、次に、図５Ｃに示すようにコントローラ２００Ｂを所望のパターンまたは輪郭を描くように動かして希望通りに仮想面６００にさらに注釈を与えることにより、現在表示されている仮想面６００にさらに注釈を与えることができる。図５Ｂおよび図５Ｃに示す例では、第２のコントローラ２００Ｂを作動させ動かすことによって仮想面６００に注釈を与えている。しかしながら、上述のように、仮想面６００の注釈は、第１のコントローラ２００Ａの作動および移動に応じて、および／または第１のコントローラ２００Ａおよび第２のコントローラ２００Ｂ双方を作動および移動させることにより、および／または第１のコントローラ２００Ａおよび／または第２のコントローラ２００Ｂに加えてまたはその代わりに別の仮想マーキング手段を作動および移動させることにより、与えてもよい。
【００２３】
いくつかの実装例において、ユーザが、上記のやり方で仮想面６００に注釈を与える前または与えた後のいずれかにおいて、仮想面６００の大きさおよび／または形状および／または向きを調整したい場合がある。仮想面６００の大きさおよび／または形状は、たとえば仮想面６００をさらに仮想的に操作することによって調整できる。たとえば、図５Ｄに示すように、第１のコントローラ２００Ａを仮想面６００の左端に置き第２のコントローラ２００Ｂを仮想面６００の右端に置いた状態で、ユーザは、第１のコントローラ２００Ａの操作デバイス２０５Ａおよび第２のコントローラ２００Ｂの操作デバイス２０５Ｂを作動させ、左端および右端を、図５Ｃに示す配置から図５Ｄに示す配置まで移動させればよい。同様に、図５Ｅに示すように、第１のコントローラ２００Ａを仮想面６００の上端に置き第２のコントローラ２００Ｂを仮想面６００の下端に置いた状態で、ユーザは、第１のコントローラ２００Ａの操作デバイス２０５Ａおよび第２のコントローラ２００Ｂの操作デバイス２０５Ｂを作動させ、上端および下端を、図５Ｃおよび図５Ｄに示す配置から図５Ｅに示す配置まで、互いに向かって移動させればよい。ユーザは、仮想面６００の端部のうちの１つのみの位置を、同様に、コントローラ２００Ａ、２００Ｂのうちの一方を作動させ、仮想面６００のある端部における第１の位置から第２の位置まで移動させることにより、対応する仮想面６００の大きさ／形状の調整を行うことができる。ユーザはこの大きさおよび／または形状の調整を、たとえば操作デバイス２０５Ａ、２０５Ｂを解除することによって終了させることができる。
【００２４】
先に述べたように、図５Ａ〜図５Ｅに示す一例としての仮想面６００の外縁形状が矩形であるのは、単に説明および図示を容易にするために過ぎない。しかしながら、異なる外縁形状によって定められる仮想面６００の大きさおよび／または形状も、図５Ａ〜図５Ｅに記載のやり方と同様のやり方で調整することができる。たとえば、図５Ｆに示すように、実質的に円形の外縁によって定められる仮想面６００を、第１および第２のコントローラ２００Ａおよび２００Ｂの相対的な移動に応じて調整することができ、たとえばその大きさおよび／または形状を、拡大することができる。図５Ｇに示す例において、不規則な形状の外縁によって定められる仮想面６００を、第１および第２のコントローラ２００Ａおよび２００Ｂの移動に応じて調整することができ、たとえばその大きさおよび／または形状を、調整して縮小することができる。
【００２５】
いくつかの実装例において、仮想面６００の大きさおよび／または形状を調整することにより、仮想面６００上の注釈の大きさおよび／または形状もそれに応じて調整することができる。たとえば、図６Ａに示すように、第１のコントローラ２００Ａを仮想面６００の下側の角部に置き、第２のコントローラ２００Ｂを、その反対側の、仮想面６００の上側の角部に置いた状態で、ユーザは、第１のコントローラ２００Ａの操作デバイス２０５Ａおよび第２のコントローラ２００Ｂの操作デバイス２０５Ｂを作動させ、仮想面６００の対向する下側の角と上側の角とを動かして互いに近づけることにより、それに比例して、仮想面６００および仮想面６００で受けた注釈の大きさおよびスケールを、図６Ａに示す配置から図６Ｂに示す配置まで小さくすることができる。仮想面６００および注釈の大きさおよび／またはスケールの拡大は、たとえば、対向する角部を、たとえば図６Ｂに示す配置から図６Ａに示す配置まで、互いから遠ざかる方向に移動させることにより、実現することができる。
【００２６】
いくつかの実装例において、仮想面６００の向きを、第１および第２のコントローラ２００Ａおよび２００Ｂの相対的な移動に応じて調整することができる。図６Ｃに示す例では、第１および第２のコントローラ２００Ａおよび２００Ｂを相対的に移動させた結果、仮想面６００は実質的に鉛直面において回転する。図６Ｄに示す例では、コントローラ２００Ａおよび２００Ｂを相対的に移動させた結果、仮想面６００の向きが、実質的に鉛直面から実質的に水平面に変化する。仮想面６００の向きのその他多数の変更を、第１および第２のコントローラ２００Ａおよび２００Ｂを相対的に移動させることによって行うことができる。仮想面６００の向きのこれらの変更は、さまざまな外縁形状によって定められるおよび／または表面外形が異なる仮想面に対し、このやり方で行うことができる。
【００２７】
状況によっては、複数のユーザからアクセスでき複数のユーザ間の共同作業のために利用できる複数の仮想面があることが有用な場合がある。たとえば、図７Ａに示すように、第１の物理空間内の第１のユーザＡと、第２の物理空間（または第１のユーザがいる第１の物理空間）内の第２のユーザＢとが、共有仮想環境５５０に没入している場合がある。図７Ａに示す例において、第１のユーザＡを表したものおよび第２のユーザＢを表したものが共有仮想空間５５０内に示されているが、これは単に説明および図示を容易にするために過ぎない。この例において、第１のユーザＡは第１および第２のコントローラＡ１およびＡ２を操作しており、第２のユーザは第１および第２のコントローラＢ１およびＢ２を操作している。共有仮想環境５５０内の第１のユーザＡおよび第２のユーザＢは、アクセス、検討、修正、共同作業などのために、複数の仮想注記面６００（特に仮想面６００Ａ、６００Ｂ、６００Ｃ、６００Ｄおよび６００Ｅ）を利用することができる。
【００２８】
図７Ｂに示すように、第１のユーザＡ（または第２のユーザＢ）は、検討用として、仮想面６００のうちの１つ、たとえば仮想面６００Ｃを、たとえばコントローラＡ１、Ａ２のうちの一方または双方を用いて仮想面６００Ｃを選択することにより、選択することができる。第１のユーザＡは、選択した仮想面６００Ｃを検討するときに、選択した仮想面６００Ｃを、たとえば図５Ｄ〜図５Ｅおよび図６Ａ〜図６Ｂについて先に述べたやり方で、たとえば拡大することができる。第１のユーザＡは、たとえば図５Ａ〜図５Ｃについて先に述べたやり方で、覚書、スケッチ、またはその他の注釈を仮想面６００Ｃに追加することもできる。
【００２９】
第２のユーザＢは、第１のユーザＡによって注釈が与えられた仮想面６００Ｃを、共有仮想環境５５０の中で、実質的に同時に、または後で、見ることができ、仮想面６００Ｃをさらに修正するかそうでなければ仮想面６００Ｃに注釈を与えることができる。たとえば、第１のユーザＡが残した、公園の追加（add park）を提案する覚書に応じて、第２のユーザＢは、図７Ｄに示すように公園情報を含む仮想面６００Ｅを選択することもできる。第２のユーザＢは、仮想面６００Ｅに格納された情報を用いて、図７Ｅに示すように仮想面６００Ｃにさらに注釈を加えることができる。そうすると、第１のユーザＡは、図７Ｆに示すようにさらに注釈が加えられた仮想面６００Ｃを、共有仮想環境５５０の中で、実質的にリアルタイムで、または後で、格納された仮想面６００Ｃにアクセスすることにより、検討のために利用することができる。
【００３０】
図４Ａ〜図４Ｈ、図５Ａ〜図５Ｇ、図６Ａ〜図６Ｄ、および図７Ａ〜図７Ｆについて先に述べたやり方で、仮想注記面６００を実体化し、現在体験している仮想環境に必ずしも関係がある訳ではない、仮想の覚書および／または注釈および／またはスケッチを、仮想面６００に与える、調整する、または格納することができる。仮想面６００に格納された仮想の注釈は、現在の仮想環境５００の外部で、および／またはその他の仮想環境の中で、および／または仮想環境に没入していないときに、上記ユーザおよび／またはその他のユーザから共同作業のためにアクセスできるよう、格納することができる。
【００３１】
状況によっては、たとえば仮想面６００および／または仮想面６００に追加しようとするオブジェクトのような、仮想のオブジェクトまたは特徴が、仮想空間５５０の中でユーザが仮想的に到達できる範囲の外側にある場合がある。同様に、状況によっては、ユーザが、たとえば仮想面６００および／またはその他の仮想オブジェクトといった仮想のオブジェクトまたは特徴を、比較的近傍の領域から、ユーザから遠く離れた仮想位置まで移動させることにより、他のタスク用に近傍の仮想空間を空にしたい場合がある。いくつかの実装例において、仮想オブジェクトを、仮想空間５００内で比較的遠方の位置から比較的近傍の位置まで移動させること、および／または仮想空間５００内で比較的近傍の位置から比較的遠方の位置まで移動させることは、実行する移動に対応するジェスチャーを検出したことに応じて実現できる。
【００３２】
図７Ｇは、物理空間内で、上述のようにＨＭＤ１００によって生成されＨＭＤ１００の内部でユーザに対して表示された仮想環境および仮想オブジェクトとの間でやり取りをするユーザを、第三者の視点で見た図である。図７Ｇに示す例において、ユーザは、たとえば上述のやり方で仮想環境の中に仮想面６００を生じさせており、仮想遠方領域において複数の仮想オブジェクト７００がユーザに対して表示されている。仮想面に対して直接マーキングもしくは描画もしくは書込を行うことに加えてまたはその代わりに、ユーザは、たとえば仮想面６００に追加するまたは含めるために仮想オブジェクト７００のうちの１つ以上を選択することによって、仮想面６００に注釈を与えるもしくは描画するもしくはマーキングする、そうでなければ追加することを、選択できる。
【００３３】
先に述べたように、仮想オブジェクト７００は、遠方の仮想領域にあり、かつユーザから仮想的に届く範囲の外側にある。仮想面６００に注釈または図形を与えるために仮想オブジェクト７００のうちの１つを選択する場合、ユーザは、仮想オブジェクト７００を、たとえば、選択する特定の仮想オブジェクト７００Ａにハンドヘルド電子デバイス２００を向けることによって選択することができる。図７Ｇに示す例において、ハンドヘルド電子デバイス２００から仮想オブジェクト７００Ａに向けられた仮想ビーム２０１が示されている。これは、ハンドヘルド電子デバイス２００の向きのターゲットが仮想オブジェクト７００Ａとの仮想交点にあることを表す仮想視覚表示をユーザに対して示す。いくつかの実装例において、これを他のやり方でユーザに示してもよい。他のやり方は、たとえば、ハンドヘルド電子デバイス２００の向きのターゲットを示すカーソルまたはドット、ターゲットである仮想オブジェクトを強調表示するまたは見た目において他の変化を生じさせることなどである。仮想オブジェクト７００Ａが選択されたことは、たとえば、ハンドヘルド電子デバイス２００の操作デバイスの作動、仮想オブジェクト７００Ａ上での一時停止時間（dwell time）が予め設定された一時停止時間のしきい値以上であることなどに基づいて、検出することができる。
【００３４】
仮想オブジェクト７００Ａが選択されたことが検出されると、ユーザは、選択した仮想オブジェクト７００Ａの所望の移動を示すジェスチャーを実施することができる。たとえば、ユーザは、図７Ｈに示すように回転またはひねりのジェスチャーを実施することにより、選択した仮想オブジェクト７００Ａを、たとえば、遠方仮想領域から近傍仮想領域まで、ユーザに近づくように引き寄せることにより、選択した仮想オブジェクト７００Ａとの間でやり取りを行うことができるようにする。図７Ｈに示す例において、ユーザは、反時計回りのジェスチャーを実施することにより、選択した仮想オブジェクト７００Ａを引き寄せているが、これは単に説明および図示を容易にするために過ぎない。しかしながら、選択された仮想オブジェクト７００Ａをユーザに近づけるために実施されるジェスチャーは、たとえば、時計回りの動きもしくはジェスチャー、または、ハンドヘルド電子デバイス２００を保持しているユーザの腕および／または手をユーザに近づける動きもしくはジェスチャーであってもよく、または、その他のこのようなジェスチャーおよび／または動きであってもよい。
【００３５】
ユーザは、選択した仮想オブジェクト７００Ａがユーザが希望する仮想位置または場所に来るまで、たとえばハンドヘルド電子デバイス２００の操作デバイスを作動位置にした状態で、ジェスチャーを、たとえばユーザの腕／手およびハンドヘルド電子デバイス２００の回転位置を、維持してもよい。ユーザは、その他の追加のジェスチャーを実施することにより、たとえば、選択した仮想オブジェクト７００Ａを縦方向および／または横方向などに移動させてもよい。図７Ｉに示す例において、ユーザは、選択した仮想オブジェクトを、遠方仮想領域から近傍仮想領域まで移動させるとともに、選択した仮想オブジェクト７００Ａを横方向に移動させることにより、選択した仮想オブジェクト７００Ａを用いて仮想面６００に注釈を与えている。図７Ｉに示すユーザおよび／または上述のように共同作業をしている別のユーザが、上述のように追加の数字／形状（figure）、オブジェクト、テキストなどを用いて仮想面６００に注釈をさらに与えてもよく、および／または、上述のように仮想面６００の大きさおよび／または形状および／または外形を調整してもよい。
【００３６】
同様のやり方で、仮想オブジェクトを、たとえば比較的近傍の領域から比較的遠方の領域まで移動させることができる。たとえば、ユーザは、仮想面６００に注釈を与えた後で、注釈付きの仮想面６００を移動させて、近傍の仮想領域の空間を新たなタスクのために空けたい場合がある。ユーザは、たとえば上述のやり方で、図７Ｊに示すように仮想環境において選択した仮想オブジェクトを示す、注釈付きの仮想面６００を選択することができる。仮想面６００を選択したことが検出されると、ユーザは、選択した仮想面６００の所望の動きを示すジェスチャーを実施することができる。たとえば、ユーザは、図７Ｋに示すように回転またはひねるジェスチャーを実施することにより、選択した仮想面６００を、ユーザから遠ざけるように、近傍の仮想領域から遠方の仮想領域まで移動させる。図７Ｋに示す例において、ユーザは、時計回りのジェスチャーを実施することにより、選択した仮想面６００をユーザから遠ざけているが、これは単に説明および図示を容易にするために過ぎない。しかしながら、選択された仮想面６００をユーザから遠ざけるために実施されるジェスチャーは、たとえば、反時計回りの動きもしくはジェスチャー、または、ハンドヘルド電子デバイス２００を保持しているユーザの腕および／または手の、ユーザから離れる方向の動きもしくはジェスチャー、または、その他のこのようなジェスチャーおよび／または動きであってもよい。ユーザは、図７Ｌに示すように、選択した仮想面６００がユーザが希望する仮想位置または場所に来るまで、たとえばハンドヘルド電子デバイス２００の操作デバイスを作動位置にした状態で、ジェスチャーを、たとえばユーザの腕／手およびハンドヘルド電子デバイス２００の回転位置を、維持してもよい。ユーザは、その他の追加のジェスチャーを実施することにより、たとえば、選択した仮想面６００を縦方向および／または横方向などに移動させてもよい。
【００３７】
本明細書に記載の実装例に係る、拡張および／または仮想現実環境において仮想注釈面を実体化する方法８００を、図８に示す。
【００３８】
ユーザは、たとえばコンピューティングデバイスを用いて拡張現実および／または仮想現実環境を生成することにより、拡張現実体験および／または仮想現実体験を開始することができ、上記コンピューティングデバイスは、たとえば、１つ以上の外部デバイスに作動的に結合されたまたはペアリングされた上記ヘッドマウントディスプレイデバイスを含むシステムなどである（ブロック８１０）。システムは、仮想注記面を実体化する、たとえば表示することを求めるユーザ入力コマンドに対応する設定されたユーザジェスチャーを検出することができ（ブロック８２０）、検出した設定ユーザジェスチャーに応じて仮想注記面を実体化することができる（ブロック８３０）。図４Ａ〜図４Ｃについて説明したように、検出されるジェスチャーは、たとえば、ヘッドマウントディスプレイデバイスに作動的に結合された１つ以上の外部デバイスまたはコントローラの移動および／または配置を通して実現されるジェスチャーであってもよく、上記１つ以上の外部デバイスの操作デバイスの作動も含み得る。システムは、仮想注記面の実体化、すなわち対応するプロセスが完了したことを、たとえば図４Ｃ〜図４Ｈについて先に説明したように外部デバイスまたはコントローラの操作デバイスの解除の検出に応じて、検出することができる（ブロック８４０）。システムは、ユーザの注記入力を検出することができ（ブロック８５０）、選択された仮想注記面に注記を与えることが完了したことをシステムが検出するまで（ブロック８７０）、検出したユーザの注記入力に応じて、選択された仮想注記面に注釈を与えることができる（ブロック８６０）。図５Ａ〜図５Ｃ、図６Ａ〜図６Ｄ、および図７Ａ〜図７Ｌについて先に説明したように、検出されたユーザの注記は、たとえば、外部デバイスまたはコントローラの操作デバイスの検出された作動、および、外部デバイスまたはコントローラの移動に対応していてもよい。注記の完了をシステムが検出することは、操作デバイスの作動の解除を検出することを含み得る。このプロセスは、現在の拡張現実および／または仮想現実体験が終了したと判断されるまで、続けることができる（ブロック８８０）。
【００３９】
本明細書に記載の実装例に係るシステムおよび方法では、検出したジェスチャーに応じて、仮想注釈面または仮想シートまたは仮想ホワイトボードを、拡張および／または仮想現実環境において実体化することができる。ユーザは、仮想注釈面に注釈を与え、仮想注釈面を調整し、格納し、検討し、修正することができ、現在の仮想環境、および／または別の仮想環境、および／または仮想環境の外部における、その他のユーザとの共同作業を可能にする。
【００４０】
図２Ａおよび図２Ｂは、たとえば図１に示す例においてユーザが装着しているＨＭＤ１００などの、一例としてのＨＭＤの斜視図である。ＨＭＤ１００は、フレーム１２０に結合されたハウジング１１０を含んでいてもよく、音声出力デバイス１３０は、たとえばヘッドホンに搭載されたスピーカを含み、音声出力デバイス１３０もフレーム１２０に結合されている。図２Ｂでは、ハウジング１１０に収容されている構成要素のうちのいくつかを見ることができるように、ハウジング１１０の前面部分１１０ａがハウジング１１０のベース部分１１０ｂから離れるように回転されている。ハウジング１１０の前面部分１１０ａの内側に面する側には、ディスプレイ１４０が装着されてもよい。前面部分１１０ａがハウジング１１０のベース部分１１０ｂに対して閉鎖位置にあるとき、ハウジング１１０内であってユーザの眼とディスプレイ１４０との間にレンズ１５０が装着されてもよい。ＨＭＤ１００は、さまざまなセンサを含む検知システム１６０と、ＨＭＤ１００の動作を容易にするためにプロセッサ１９０およびさまざまな制御システムデバイスを含む制御システム１７０とを含んでもよい。たとえば、いくつかの実装例では、検知システム１６０は、さまざまな異なるタイプのセンサ（たとえば、加速度計、ジャイロスコープ、磁気計など）を含む慣性測定ユニット（ＩＭＵ）１６２を含んでもよい。ＨＭＤ１００の位置および向きは、ＩＭＵ１６２によって与えられるデータに基づいて検出され、追跡されてもよい。そうすると、システムは、ユーザの頭部の注視方向および動きを検出し追跡することができる。カメラ１８０が、ユーザの物理的位置、および／または、ＨＭＤ１００と通信する／ＨＭＤ１００に作動的に結合された他の外部デバイスの物理的位置の追跡を助けるために使用し得る静止画および／または動画を、取り込んでもよい。取り込まれた画像も、ユーザに対し、パススルーモードでディスプレイ１４０上に表示されてもよい。
【００４１】
いくつかの実装例では、ＨＭＤ１００は、視線の方向および移動を検出して追跡するためにたとえば１つ以上のセンサを含む視線追跡装置１６５Ａを含んでもよい。センサ１６５Ａによって取り込まれた画像は、ユーザの視線の方向および移動を検出して追跡するように処理されてもよく、検出され追跡された視線は、ユーザ入力として処理されて、没入型仮想体験における対応するやり取りに変換されてもよい。
【００４２】
本明細書に記載の実装例に係るシステムのブロック図が図３に示されている。このシステムは、第１の電子デバイス３００（たとえば、図１および図２Ａ〜図２Ｂに関連して上記したＨＭＤなど）と、第１の電子デバイス３００と通信する少なくとも１つの第２の電子デバイス３０２（たとえば、図１に関連して上記したハンドヘルド電子デバイスまたは他の外部デバイスなど）とを含んでもよい。上述のように、図３には第２の電子デバイス３０２が１つ示されているが、それは単に説明および図示を容易にするために過ぎず、２つ以上の第２の電子デバイス３０２が第１の電子デバイス３００に作動的に結合されてもよい。
【００４３】
第１の電子デバイス３００は、検知システム３７０と制御システム３８０とを含んでもよく、検知システム３７０および制御システム３８０はそれぞれ図２Ａおよび図２Ｂに示される検知システム１６０および制御システム１７０と同様であってもよい。検知システム３７０は、たとえば光センサ、オーディオセンサ、画像センサ、距離／近接センサ、およびＩＭＵ、および／または他のセンサおよび／またはセンサのさまざまな組み合わせを含む、さまざまなタイプのセンサを含んでもよい。制御システム３８０は、たとえば電源／一時停止制御装置、オーディオおよびビデオ制御装置、光学制御装置、移行制御装置、および／または、他のこのような装置および／または装置のさまざまな組み合わせを含んでもよい。検知システム３７０および／または制御システム３８０は、特定の実装例に応じて、より多くのデバイスを含んでもよく、またはより少ないデバイスを含んでもよい。検知システム３７０および／または制御システム３８０に含まれる要素は、たとえば図２Ａおよび図２Ｂに示されるＨＭＤ１００以外のＨＭＤ内に異なる物理的配置（たとえば、異なる物理的位置）を有してもよい。また、第１の電子デバイス３００は、検知システム３７０および制御システム３８０と通信するプロセッサ３９０を含んでもよい。プロセッサ３９０は、検知システム３７０から受信した入力を処理し、検出した入力に対応する命令を実行してもよい。また、第１の電子デバイス３００は、メモリ３８５と、第１の電子デバイス３００と別の外部デバイス（たとえば、第２の電子デバイス３０２など）との間の通信を提供する通信モジュール３９５とを含んでもよい。
【００４４】
第２の電子デバイス３０２は、第２の電子デバイス３０２と、第２の電子デバイス３０２の外部の別のデバイス（たとえば、第１の電子デバイス３００など）との間の通信およびデータ交換を提供する通信モジュール３０６を含んでもよい。いくつかの実装例では、第２の電子デバイス３０２の特定の構成（すなわち、ハンドヘルド電子デバイスまたはコントローラ対キーボードまたはマウス）に応じて、第２の電子デバイス３０２は、検知システム３０４を含んでもよく、たとえば、検知システム３０４は、たとえばカメラおよびマイクロフォンに含まれるような画像センサおよびオーディオセンサ、ＩＭＵ、ハンドヘルド電子デバイスまたはスマートフォンのタッチセンサ面に含まれるようなタッチセンサ、ならびに他のこのようなセンサおよび／またはセンサのさまざまな組み合わせを含む。プロセッサ３０９は、第２の電子デバイス３０２の検知システム３０４およびコントローラ３０５と通信してもよく、コントローラ３０５は、メモリ３０８へのアクセスを有し、第２の電子デバイス３０２の動作全体を制御する。
【００４５】
上述の通り、ＨＭＤ１００によって生成された仮想現実環境に没入しているときに、仮想環境から出なくてもメモを取るまたはスケッチすることが可能であり、かつ、このメモまたはスケッチを後で参照するために保存することおよび／またはこのメモまたはスケッチを別のユーザと共有することが可能であることから、仮想環境におけるユーザの体験を高度なものにすることができる。仮想注記面に記録するこのメモもしくはスケッチまたはその他の情報が体験中の仮想環境に関係があるか否かに関係なく、このメモまたはスケッチを仮想環境から出ずに実現できるので、ユーザは、仮想体験が妨害および／または中断されることなく、引き続き仮想環境に接続されているまたは仮想環境内に留まることができる。これにより、ユーザは、現実世界の環境において、メモ用紙、ホワイトボード、付箋などにメモ書きおよびスケッチすることができるのと同様の機能を、仮想環境において得ることができる。このように、本明細書に記載の実装例に係るシステムおよび方法において、仮想注記面は、たとえば設定されたユーザジェスチャーなどのユーザ入力に応じて、仮想環境内で実体化することができる。仮想注記面の大きさおよび／または形状は、たとえばユーザが仮想注記面に情報を入力する前および／またはその後で、ユーザ入力に応じて調整することができる。
【００４６】
図９は、本明細書に記載されている技術とともに使用され得るコンピュータデバイス１０００およびモバイルコンピュータデバイス１０５０の一例を示す。コンピューティングデバイス１０００は、プロセッサ１００２と、メモリ１００４と、ストレージデバイス１００６と、メモリ１００４および高速拡張ポート１０１０に接続する高速インターフェイス１００８と、低速バス１０１４およびストレージデバイス１００６に接続する低速インターフェイス１０１２とを含む。コンポーネント１００２，１００４，１００６，１００８，１０１０および１０１２の各々は、さまざまなバスを用いて相互接続され、共通のマザーボード上に搭載される場合もあれば、適宜他の態様で搭載される場合もある。プロセッサ１００２は、コンピューティングデバイス１０００内で実行するために命令を処理し得て、当該命令は、高速インターフェイス１００８に結合されたディスプレイ１０１６などの外部入出力デバイス上にＧＵＩのためのグラフィック情報を表示するための、メモリ１００４内またはストレージデバイス１００６上に格納された命令を含む。他の実装例では、複数のメモリおよび複数タイプのメモリとともに、複数のプロセッサおよび／または複数のバスが適宜使用されてもよい。また、複数のコンピューティングデバイス１０００が接続されてもよく、各デバイスは、（たとえば、サーババンク、ブレードサーバのグループ、またはマルチプロセッサシステムとして）必要な動作の一部を提供する。
【００４７】
メモリ１００４は、コンピューティングデバイス１０００内の情報を格納する。一実装例では、メモリ１００４は、単一の揮発性メモリユニットまたは複数の揮発性メモリユニットである。別の実装例では、メモリ１００４は、単一の不揮発性メモリユニットまたは複数の不揮発性メモリユニットである。また、メモリ１００４は、磁気ディスクまたは光ディスクなどの別の形態のコンピュータ読取可能な媒体であってもよい。
【００４８】
ストレージデバイス１００６は、コンピューティングデバイス１０００に大容量ストレージを提供することができる。一実装例では、ストレージデバイス１００６は、フロッピー（登録商標）ディスクデバイス、ハードディスクデバイス、光ディスクデバイス、テープデバイス、フラッシュメモリもしくは他の同様のソリッドステートメモリデバイス、または、ストレージエリアネットワークもしくは他の構成内のデバイスを含むデバイスのアレイなどのコンピュータ読取可能な媒体であってもよく、またはコンピュータ読取可能な媒体を含んでもよい。コンピュータプログラム製品は、情報担体内で有形に実施され得る。コンピュータプログラム製品は、実行されたときに上記の方法などの１つ以上の方法を実行する命令も含んでもよい。情報担体は、メモリ１００４、ストレージデバイス１００６またはメモリオンプロセッサ１００２などのコンピュータまたは機械読取可能な媒体である。
【００４９】
高速コントローラ１００８は、コンピューティングデバイス１０００のための帯域幅を多く使用する動作を管理するのに対して、低速コントローラ１０１２は、帯域幅をそれほど使用しない動作を管理する。このような機能の割り当ては、例示に過ぎない。一実装例では、高速コントローラ１００８は、メモリ１００４、ディスプレイ１０１６（たとえば、グラフィックスプロセッサまたは加速装置を介して）、および高速拡張ポート１０１０に結合され、高速拡張ポート１０１０は、さまざまな拡張カード（図示せず）を受け付け得る。当該実装例では、低速コントローラ１０１２は、ストレージデバイス１００６および低速拡張ポート１０１４に結合される。さまざまな通信ポート（たとえば、ＵＳＢ、ブルートゥース（登録商標）、イーサネット（登録商標）、ワイヤレスイーサネット）を含み得る低速拡張ポートは、たとえばネットワークアダプタを介して、キーボード、ポインティングデバイス、スキャナ、またはスイッチもしくはルータなどのネットワーキングデバイスなどの１つ以上の入出力デバイスに結合されてもよい。
【００５０】
コンピューティングデバイス１０００は、図に示されるように複数の異なる形態で実現されてもよい。たとえば、コンピューティングデバイス１０００は、標準的なサーバ１０２０として実現されてもよく、またはこのようなサーバのグループの状態で複数回実現されてもよい。また、コンピューティングデバイス１０００は、ラックサーバシステム１０２４の一部として実現されてもよい。また、コンピューティングデバイス１０００は、ラップトップコンピュータ１０２２などのパーソナルコンピュータとして実現されてもよい。代替的に、コンピューティングデバイス１０００からのコンポーネントは、デバイス１０５０などのモバイルデバイス（図示せず）内の他のコンポーネントと組み合わせられてもよい。このようなデバイスの各々は、コンピューティングデバイス１０００，１０５０のうちの１つ以上を含んでもよく、システム全体が、互いに通信する複数のコンピューティングデバイス１０００，１０５０で構成されてもよい。
【００５１】
コンピューティングデバイス１０５０は、いくつかあるコンポーネントの中で特に、プロセッサ１０５２と、メモリ１０６４と、ディスプレイ１０５４などの入出力デバイスと、通信インターフェイス１０６６と、送受信機１０６８とを含む。デバイス１０５０は、さらなるストレージを提供するためにマイクロドライブまたは他のデバイスなどのストレージデバイスも備えていてもよい。コンポーネント１０５０，１０５２，１０６４，１０５４，１０６６および１０６８の各々は、さまざまなバスを使用して相互接続され、コンポーネントのうちのいくつかは、共通のマザーボード上に搭載される場合もあれば、適宜他の態様で搭載される場合もある。
【００５２】
プロセッサ１０５２は、メモリ１０６４に格納された命令を含む命令をコンピューティングデバイス１０５０内で実行することができる。プロセッサは、別々の複数のアナログプロセッサおよびデジタルプロセッサを含むチップのチップセットとして実現されてもよい。プロセッサは、たとえば、ユーザインターフェイスの制御、デバイス１０５０によって実行されるアプリケーション、およびデバイス１０５０による無線通信などの、デバイス１０５０の他のコンポーネントの連携を提供してもよい。
【００５３】
プロセッサ１０５２は、ディスプレイ１０５４に結合された制御インターフェイス１０５８およびディスプレイインターフェイス１０５６を介してユーザと通信し得る。ディスプレイ１０５４は、たとえばＴＦＴ  ＬＣＤ（Thin-Film-Transistor Liquid Crystal Display：薄膜トランジスタ液晶ディスプレイ）もしくはＯＬＥＤ（Organic Light Emitting Diode：有機発光ダイオード）ディスプレイ、または他の適切なディスプレイ技術であってもよい。ディスプレイインターフェイス１０５６は、ディスプレイ１０５４を駆動してグラフィック情報および他の情報をユーザに提示するための適切な回路を備え得る。制御インターフェイス１０５８は、ユーザからコマンドを受信し、当該コマンドを変換してプロセッサ１０５２に送信し得る。また、デバイス１０５０と他のデバイスとの近接エリア通信を可能にするために、外部インターフェイス１０６２がプロセッサ１０５２と通信するように設けられてもよい。外部インターフェイス１０６２は、たとえば、いくつかの実現例では有線通信を提供してもよく、または他の実現例では無線通信を提供してもよく、複数のインターフェイスも使用してもよい。
【００５４】
メモリ１０６４は、コンピューティングデバイス１０５０内の情報を格納する。メモリ１０６４は、コンピュータ読取可能な媒体、揮発性メモリユニットまたは不揮発性メモリユニットのうちの１つ以上として実現されてもよい。また、拡張メモリ１０７４が設けられて、拡張インターフェイス１０７２を介してデバイス１０５０に接続されてもよく、拡張インターフェイス５７２は、たとえばＳＩＭＭ（Single In Line Memory Module：シングル・インライン・メモリ・モジュール）カードインターフェイスを含み得る。このような拡張メモリ１０７４は、デバイス１０５０に対して追加の記憶領域を提供してもよく、またはデバイス１０５０のためにアプリケーションもしくは他の情報を格納してもよい。具体的には、拡張メモリ１０７４は、上記のプロセスを実行または補完するための命令を含んでもよく、セキュリティ保護された情報も含んでもよい。したがって、たとえば、拡張メモリ１０７４は、デバイス１０５０のためのセキュリティモジュールとして提供されてもよく、デバイス１０５０の安全な使用を可能にする命令でプログラムされてもよい。また、ハッキングできない態様でＳＩＭＭカードに識別情報を載せるなど、追加情報とともに、セキュリティ保護されたアプリケーションがＳＩＭＭカードを介して提供されてもよい。
【００５５】
以下に記載するように、メモリは、たとえばフラッシュメモリおよび／またはＮＶＲＡＭメモリを含んでもよい。一実装例では、コンピュータプログラム製品は、情報担体内で有形に実施される。コンピュータプログラム製品は、実行されたときに上記の方法などの１つ以上の方法を実行する命令を含む。情報担体は、たとえば送受信機１０６８または外部インターフェイス１０６２の上方に受けられ得るメモリ１０６４、拡張メモリ１０７４またはメモリオンプロセッサ１０５２などのコンピュータまたは機械読取可能な媒体である。
【００５６】
デバイス１０５０は、必要に応じてデジタル信号処理回路を含み得る通信インターフェイス１０６６を介して無線通信してもよい。通信インターフェイス１０６６は、とりわけＧＳＭ（登録商標）音声電話、ＳＭＳ、ＥＭＳもしくはＭＭＳメッセージング、ＣＤＭＡ、ＴＤＭＡ、ＰＤＣ、ＷＣＤＭＡ（登録商標）、ＣＤＭＡ２０００またはＧＰＲＳなどのさまざまなモードまたはプロトコルの下での通信を提供し得る。このような通信は、たとえば無線周波数送受信機１０６８を介して行われてもよい。また、ブルートゥース、Ｗｉ−Ｆｉまたは他のこのような送受信機（図示せず）などを用いて狭域通信が行われてもよい。また、ＧＰＳ（グローバルポジショニングシステム）受信機モジュール１０７０は、さらなるナビゲーションおよび位置関連の無線データをデバイス１０５０に提供し得て、当該データは、デバイス１０５０上で実行されるアプリケーションによって適宜使用され得る。
【００５７】
また、デバイス１０５０は、音声コーデック１０６０を用いて可聴に通信してもよく、音声コーデック１０６０は、音声情報をユーザから受信し、当該音声情報を使用可能なデジタル情報に変換し得る。さらに、音声コーデック１０６０は、話者を介するなどして、たとえばデバイス１０５０の受話器においてユーザのために可聴音を生成し得る。このような音は、音声電話からの音声を含んでもよく、記録された音（たとえば、音声メッセージ、音楽ファイルなど）を含んでもよく、デバイス１０５０上で動作するアプリケーションによって生成された音も含んでもよい。
【００５８】
コンピューティングデバイス１０５０は、図に示されるように複数の異なる形態で実現されてもよい。たとえば、コンピューティングデバイス１０５０は、携帯電話１０８０として実現されてもよい。また、コンピューティングデバイス１０５０は、スマートフォン１０８２、パーソナルデジタルアシスタントまたは他の同様のモバイルデバイスの一部として実現されてもよい。
【００５９】
本明細書に記載されているシステムおよび技術のさまざまな実装例は、デジタル電子回路、集積回路、特別に設計されたＡＳＩＣ（特定用途向け集積回路）、コンピュータハードウェア、ファームウェア、ソフトウェア、および／または、それらの組み合わせで実現されてもよい。これらのさまざまな実装例は、プログラム可能なシステム上で実行可能および／または解釈可能である１つ以上のコンピュータプログラムでの実装例を含み得て、当該プログラム可能なシステムは、少なくとも１つのプログラム可能なプロセッサと、少なくとも１つの入力デバイスと、少なくとも１つの出力デバイスとを含み、当該少なくとも１つのプログラム可能なプロセッサは、ストレージシステムとデータおよび命令を送受信するように結合された特殊目的または汎用プロセッサであってもよい。
【００６０】
これらのコンピュータプログラム（プログラム、ソフトウェア、ソフトウェアアプリケーションまたはコードとしても知られている）は、プログラム可能なプロセッサのための機械命令を含み、高水準手続き型および／もしくはオブジェクト指向プログラミング言語で実現されてもよく、ならびに／またはアセンブリ／機械言語で実現されてもよい。本明細書で使用される「機械読取可能な媒体」「コンピュータ読取可能な媒体」という用語は、機械読取可能な信号として機械命令を受信する機械読取可能な媒体を含む、機械命令および／またはデータをプログラム可能なプロセッサに提供するために使用される任意のコンピュータプログラム製品、装置および／またはデバイス（たとえば、磁気ディスク、光ディスク、メモリ、プログラマブルロジックデバイス（Programmable Logic Device：ＰＬＤ））を指す。「機械読取可能な信号」という用語は、機械命令および／またはデータをプログラム可能なプロセッサに提供するために使用される任意の信号を指す。
【００６１】
ユーザとの対話を提供するために、本明細書に記載されているシステムおよび技術は、コンピュータ上で実現されてもよく、当該コンピュータは、ユーザに対して情報を表示するためのディスプレイデバイス（たとえば、ＣＲＴ（cathode ray tube：陰極線管）またはＬＣＤ（liquid crystal display：液晶ディスプレイ）モニタ）と、キーボードと、ユーザが入力をコンピュータに提供することができるポインティングデバイス（たとえば、マウスまたはトラックボール）とを有する。ユーザとの対話を提供するために他の種類のデバイスも使用されてもよい。たとえば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック（たとえば、視覚フィードバック、聴覚フィードバックまたは触覚フィードバック）であってもよく、ユーザからの入力は、音響入力、音声入力または触知可能入力を含む任意の形態で受信されてもよい。
【００６２】
本明細書に記載されているシステムおよび技術は、バックエンドコンポーネント（たとえば、データサーバ）を含むコンピューティングシステムで実現されてもよく、またはミドルウェアコンポーネント（たとえば、アプリケーションサーバ）を含むコンピューティングシステムで実現されてもよく、またはフロントエンドコンポーネント（たとえば、ユーザが本明細書に記載されているシステムおよび技術の実装例と対話することができるグラフィカルユーザインターフェイスまたはウェブブラウザを有するクライアントコンピュータ）を含むコンピューティングシステムで実現されてもよく、またはこのようなバックエンドコンポーネント、ミドルウェアコンポーネントまたはフロントエンドコンポーネントの任意の組み合わせを含むコンピューティングシステムで実現されてもよい。システムのコンポーネントは、デジタルデータ通信の任意の形態または媒体（たとえば、通信ネットワーク）によって相互接続されてもよい。通信ネットワークの例としては、ローカルエリアネットワーク（「ＬＡＮ」）、ワイドエリアネットワーク（「ＷＡＮ」）、およびインターネットが挙げられる。
【００６３】
コンピューティングシステムは、クライアントとサーバとを含み得る。クライアントおよびサーバは、一般に互いに離れており、通常は通信ネットワークを介して対話する。クライアントとサーバとの関係は、コンピュータプログラムがそれぞれのコンピュータ上で実行されて互いにクライアント−サーバ関係を有することによって生じる。
【００６４】
いくつかの実装例では、図９に示されるコンピューティングデバイスは、バーチャルリアリティに接続されるセンサ（ＶＲヘッドセット／ＨＭＤ装置１０９０）を含んでもよい。たとえば、図９に示されるコンピューティングデバイス１０５０または他のコンピューティングデバイス上に含まれる１つ以上のセンサは、ＶＲヘッドセット１０９０に入力を提供してもよく、または一般に、ＶＲ空間に入力を提供してもよい。これらのセンサは、タッチスクリーン、加速度計、ジャイロスコープ、圧力センサ、バイオメトリックセンサ、温度センサ、湿度センサおよび周囲光センサを含み得るが、これらに限定されるものではない。コンピューティングデバイス１０５０は、これらのセンサを使用して、ＶＲ空間におけるコンピューティングデバイスの絶対位置および／または検出された回転を判断してもよく、絶対位置および／または回転は、その後、ＶＲ空間への入力として使用されてもよい。たとえば、コンピューティングデバイス１０５０は、コントローラ、レーザポインタ、キーボード、武器などの仮想オブジェクトとしてＶＲ空間に組み込まれてもよい。ＶＲ空間に組み込まれる場合のユーザによるコンピューティングデバイス／仮想オブジェクトの位置決めにより、ユーザは、ＶＲ空間内で仮想オブジェクトが特定の態様で見られるようにコンピューティングデバイスを位置決めすることができる。たとえば、仮想オブジェクトがレーザポインタに相当する場合、ユーザは、まるでそれが実際のレーザポインタであるかのようにコンピューティングデバイスを操作することができる。ユーザは、コンピューティングデバイスを左右、上下、円の形などに移動させて、レーザポインタを使用するのと同様の態様でデバイスを使用することができる。
【００６５】
いくつかの実装例では、コンピューティングデバイス１０５０上に含まれるかまたはコンピューティングデバイス１０５０に接続される１つ以上の入力デバイスがＶＲ空間への入力として使用されてもよい。入力デバイスは、タッチスクリーン、キーボード、１つ以上のボタン、トラックパッド、タッチパッド、ポインティングデバイス、マウス、トラックボール、ジョイスティック、カメラ、マイクロフォン、入力機能を有するイヤホンもしくはバッド、ゲームコントローラ、または他の接続可能な入力デバイスを含み得るが、これらに限定されるものではない。コンピューティングデバイスがＶＲ空間に組み込まれる場合にコンピューティングデバイス１０５０上に含まれる入力デバイスと対話するユーザは、ＶＲ空間において特定のアクションを生じさせることができる。
【００６６】
いくつかの実装例では、コンピューティングデバイス１０５０のタッチスクリーンは、ＶＲ空間においてタッチパッドとして描写されてもよい。ユーザは、コンピューティングデバイス１０５０のタッチスクリーンと対話することができる。対話は、たとえばＶＲヘッドセット１０９０においては、ＶＲ空間における描写されたタッチパッド上での移動として描写される。描写された移動は、ＶＲ空間における仮想オブジェクトを制御することができる。
【００６７】
いくつかの実装例では、コンピューティングデバイス１０５０上に含まれる１つ以上の出力デバイスは、ＶＲ空間におけるＶＲヘッドセット１０９０のユーザに出力および／またはフィードバックを提供してもよい。この出力およびフィードバックは、視覚的なもの、戦術的なもの、または音声によるものであってもよい。この出力および／またはフィードバックは、振動、１つ以上のライトもしくはストロボをオンおよびオフにすることもしくは点滅および／もしくは明滅させること、警報を鳴らすこと、チャイムを鳴らすこと、曲を流すこと、および音声ファイルの再生を含み得るが、これらに限定されるものではない。出力デバイスは、振動モータ、振動コイル、圧電装置、静電装置、発光ダイオード（ＬＥＤ）、ストロボおよびスピーカを含み得るが、これらに限定されるものではない。
【００６８】
いくつかの実装例では、コンピューティングデバイス１０５０は、コンピュータによって生成された３Ｄ環境における別のオブジェクトとして現れてもよい。ユーザとコンピューティングデバイス１０５０との対話（たとえば、タッチスクリーンを回転させること、タッチスクリーンを揺さぶること、タッチスクリーンに触れること、タッチスクリーン上で指をスワイプすること）は、ＶＲ空間におけるオブジェクトとの対話であると解釈することができる。ＶＲ空間におけるレーザポインタの例では、コンピューティングデバイス１０５０は、コンピュータによって生成された３Ｄ環境における仮想レーザポインタとして現れる。ユーザがコンピューティングデバイス１０５０を操作すると、ＶＲ空間内のユーザは、レーザポインタが動くのを見る。ユーザは、ＶＲ環境でのコンピューティングデバイス１０５０との対話からのフィードバックをコンピューティングデバイス１０５０またはＶＲヘッドセット１０９０で受信する。
【００６９】
いくつかの実装例では、コンピューティングデバイス１０５０は、タッチスクリーンを含んでもよい。たとえば、ユーザは、タッチスクリーン上で起こることとＶＲ空間で起こることとを似せることができる特定の態様でタッチスクリーンと対話することができる。たとえば、ユーザは、ピンチタイプ動作を使用して、タッチスクリーン上に表示されたコンテンツを拡大／縮小してもよい。タッチスクリーン上でのこのピンチタイプ動作は、ＶＲ空間において提供される情報を拡大／縮小させることができる。別の例では、コンピューティングデバイスは、コンピュータによって生成された３Ｄ環境における仮想書籍として描写されてもよい。ＶＲ空間において、書籍のページがＶＲ空間に表示されてもよく、タッチスクリーン上でユーザの指をスワイプすることは、仮想書籍のページをめくる／さっとめくることであると解釈することができる。各ページがめくられる／さっとめくられると、ページコンテンツの変化を見ることに加えて、ユーザは、書籍のページをめくる音などの音声フィードバックを提供されてもよい。
【００７０】
いくつかの実装例では、コンピューティングデバイス（たとえば、マウス、キーボード）に加えて、１つ以上の入力デバイスが、コンピュータによって生成された３Ｄ環境内に描写されてもよい。描写された入力デバイス（たとえば、描写されたマウス、描写されたキーボード）は、ＶＲ空間内に描写されたとおりに使用されて、ＶＲ空間におけるオブジェクトを制御することができる。
【００７１】
コンピューティングデバイス１０００は、さまざまな形態のデジタルコンピュータおよびデバイスを表すよう意図されており、これらのデジタルコンピュータおよびデバイスは、ラップトップ、デスクトップ、ワークステーション、パーソナルデジタルアシスタント、サーバ、ブレードサーバ、メインフレーム、および他の適切なコンピュータを含むが、これらに限定されるものではない。コンピューティングデバイス１０５０は、パーソナルデジタルアシスタント、携帯電話、スマートフォン、および他の同様のコンピューティングデバイスなどのさまざまな形態のモバイルデバイスを表すよう意図されている。ここに示されている構成要素、それらの接続および関係、ならびにそれらの機能は、単に例示的であるよう意図されており、本明細書に記載および／またはクレームされている発明の実装例を限定することを意図したものではない。
【００７２】
さらに他の実装例を以下の例に要約する。
例１：ヘッドマウントディスプレイ（ＨＭＤ）デバイスのディスプレイに仮想環境を表示するステップと、上記ＨＭＤの外部における第１のジェスチャー入力を検出するステップと、上記第１のジェスチャー入力の検出に応じて、仮想注記面を生成するステップと、上記ＨＭＤの外部における第２のジェスチャー入力を検出するステップと、上記第２のジェスチャー入力の検出に応じて、上記仮想環境における仮想オブジェクトとして上記仮想注記面を表示するステップと、上記ＨＭＤの外部における第３のジェスチャー入力を検出するステップと、上記第３のジェスチャー入力の検出に応じて、上記仮想注記面に注釈を与えるステップと、上記注釈が与えられた仮想注記面を、上記仮想環境における仮想オブジェクトとして表示するステップとを含む、方法。
【００７３】
例２：上記第１のジェスチャー入力を検出するステップは、上記ＨＭＤに作動的に結合された第１のハンドヘルド電子デバイスの第１の位置を検出するステップと、上記ＨＭＤに作動的に結合された第２のハンドヘルド電子デバイスの第１の位置を検出するステップと、上記検出した第１のハンドヘルド電子デバイスの第１の位置と、上記検出した第２のハンドヘルド電子デバイスの第１の位置とに基づいて、上記第１のジェスチャー入力を検出するステップとを含む、例１に記載の方法。
【００７４】
例３：上記第１のジェスチャー入力を検出するステップは、上記第１のハンドヘルド電子デバイスまたは上記第２のハンドヘルド電子デバイスのうちの少なくとも一方の操作デバイスの作動を検出するステップをさらに含む、例２に記載の方法。
【００７５】
例４：上記第２のジェスチャー入力を検出するステップは、上記第１のハンドヘルド電子デバイスの第２の位置を検出するステップと、上記第２のハンドヘルド電子デバイスの第２の位置を検出するステップと、上記検出した第１のハンドヘルド電子デバイスの第１の位置に対する上記検出した第１のハンドヘルド電子デバイスの第２の位置と、上記検出した第２のハンドヘルド電子デバイスの第１の位置に対する上記検出した第２のハンドヘルド電子デバイスの第２の位置とに基づいて、上記仮想注記面の大きさまたは形状のうちの少なくとも一方を設定するステップとを含む、例３に記載の方法。
【００７６】
例５：上記第２のジェスチャー入力を検出するステップは、上記第１のハンドヘルド電子デバイスまたは上記第２のハンドヘルド電子デバイスのうちの少なくとも一方の操作デバイスの作動の解除を検出するステップと、上記操作デバイスの作動の解除の検出と、上記操作デバイスの作動の解除の検出に対応する時点で検出された、上記第１のハンドヘルド電子デバイスの第２の位置および上記第２のハンドヘルド電子デバイスの第２の位置の検出に応じて、上記仮想注記面の大きさまたは形状のうちの少なくとも一方を設定するステップとをさらに含む、例４に記載の方法。
【００７７】
例６：上記第３のジェスチャー入力を検出するステップおよび上記仮想注記面に注釈を与えるステップは、マーキング手段の移動を検出し追跡するステップと、上記検出したマーキング手段の移動に基づいて上記仮想注記面に注釈を与えるステップとを含む、例１〜例５のうちのいずれか１つに記載の方法。
【００７８】
例７：上記検出したマーキング手段の移動に基づいて上記仮想注記面に注釈を与えるステップは、上記マーキング手段の操作デバイスの作動を検出するステップと、上記検出した操作デバイスの作動に応じて、上記マーキング手段の移動の追跡を開始するステップと、上記操作デバイスの作動の解除を検出するステップと、上記検出した操作デバイスの解除に応じて、上記マーキング手段の移動の追跡を終了するステップとを含む、例６に記載の方法。
【００７９】
例８：上記検出したマーキング手段の移動に基づいて上記仮想注記面に注釈を与えるステップは、上記追跡したマーキング手段の移動に対応する輪郭を検出するステップと、上記検出したマーキング手段の移動の輪郭に対応する輪郭を用いて上記仮想注記面に注釈を与えるステップとをさらに含む、例７に記載の方法。
【００８０】
例９：システムであって、仮想現実環境を生成するように構成されたコンピューティングデバイスを備え、上記コンピューティングデバイスは、実行可能な命令を格納するメモリと、プロセッサとを含み、上記プロセッサは、上記命令を実行することにより、上記コンピューティングデバイスに、ヘッドマウントディスプレイ（ＨＭＤ）デバイスのディスプレイに仮想環境を表示することと、上記ＨＭＤの外部における第１のジェスチャー入力を検出することと、上記第１のジェスチャー入力の検出に応じて、仮想注記面を生成することと、上記ＨＭＤの外部における第２のジェスチャー入力を検出することと、上記第２のジェスチャー入力の検出に応じて、上記仮想環境における仮想オブジェクトとして上記仮想注記面を表示することと、上記ＨＭＤの外部における第３のジェスチャー入力を検出することと、上記第３のジェスチャー入力の検出に応じて、上記仮想注記面に注釈を与えることと、上記注釈が与えられた仮想注記面を、上記仮想環境における仮想オブジェクトとして表示することとを実行させるように構成されている。
【００８１】
例１０：上記第１のジェスチャー入力の検出において、上記命令は、上記コンピューティングデバイスに、上記ＨＭＤに作動的に結合された第１のハンドヘルド電子デバイスの第１の位置を検出することと、上記ＨＭＤに作動的に結合された第２のハンドヘルド電子デバイスの第１の位置を検出することと、上記検出した第１のハンドヘルド電子デバイスの第１の位置と、上記検出した第２のハンドヘルド電子デバイスの第１の位置とに基づいて、上記第１のジェスチャー入力を検出することとを実行させる、例９に記載のシステム。
【００８２】
例１１：上記第１のジェスチャー入力の検出において、上記命令は、上記コンピューティングデバイスに、上記第１のハンドヘルド電子デバイスまたは上記第２のハンドヘルド電子デバイスのうちの少なくとも一方の操作デバイスの作動を検出することをさらに実行させる、例１０に記載のシステム。
【００８３】
例１２：上記第２のジェスチャー入力の検出において、上記命令は、上記コンピューティングデバイスに、上記第１のハンドヘルド電子デバイスの第２の位置を検出することと、上記第２のハンドヘルド電子デバイスの第２の位置を検出することと、上記検出した第１のハンドヘルド電子デバイスの第１の位置に対する上記検出した第１のハンドヘルド電子デバイスの第２の位置と、上記検出した第２のハンドヘルド電子デバイスの第１の位置に対する上記検出した第２のハンドヘルド電子デバイスの第２の位置とに基づいて、上記仮想注記面の大きさまたは形状のうちの少なくとも一方を設定することとを実行させる、例１１に記載のシステム。
【００８４】
例１３：上記第２のジェスチャー入力の検出において、上記命令は、上記コンピューティングデバイスに、上記第１のハンドヘルド電子デバイスまたは上記第２のハンドヘルド電子デバイスのうちの少なくとも一方の操作デバイスの作動の解除を検出することと、上記操作デバイスの作動の解除の検出と、上記操作デバイスの作動の解除の検出に対応する時点で検出された、上記第１のハンドヘルド電子デバイスの第２の位置および上記第２のハンドヘルド電子デバイスの第２の位置の検出に応じて、上記仮想注記面の大きさまたは形状のうちの少なくとも一方を設定することとを実行させる、例１２に記載のシステム。
【００８５】
例１４：上記第３のジェスチャー入力の検出および上記仮想注記面に注釈を与えることにおいて、上記命令は、上記コンピューティングデバイスに、マーキング手段の移動を検出し追跡することと、上記検出したマーキング手段の移動に基づいて上記仮想注記面に注釈を与えることとを実行させる、例９〜例１３のうちの１つに記載のシステム。
【００８６】
例１５：上記検出したマーキング手段の移動に基づいて上記仮想注記面に注釈を与えることにおいて、上記命令は、上記コンピューティングデバイスに、上記マーキング手段の操作デバイスの作動を検出することと、上記検出した操作デバイスの作動に応じて、上記マーキング手段の移動の追跡を開始することと、上記操作デバイスの作動の解除を検出することと、上記検出した操作デバイスの解除に応じて、上記マーキング手段の移動の追跡を終了することとを実行させる、例１４に記載のシステム。
【００８７】
例１６：上記検出したマーキング手段の移動に基づいて上記仮想注記面に注釈を与えることにおいて、上記命令は、上記コンピューティングデバイスに、上記追跡したマーキング手段の移動に対応する輪郭を検出することと、上記検出したマーキング手段の移動の輪郭に対応する輪郭を用いて上記仮想注記面に注釈を与えることとを実行させる、例１５に記載のシステム。
【００８８】
例１７：非一時的なコンピュータ読取可能媒体上で実施されるコンピュータプログラムプロダクトであって、上記コンピュータ読取可能媒体は命令のシーケンスを格納し、上記命令のシーケンスは、プロセッサによって実行されると上記プロセッサに方法を実行させ、上記方法は、ヘッドマウントディスプレイ（ＨＭＤ）デバイスのディスプレイに仮想環境を表示するステップと、上記ＨＭＤの外部における第１のジェスチャー入力を検出するステップと、上記第１のジェスチャー入力の検出に応じて、仮想注記面を生成するステップと、上記ＨＭＤの外部における第２のジェスチャー入力を検出するステップと、上記第２のジェスチャー入力の検出に応じて、上記仮想環境における仮想オブジェクトとして上記仮想注記面を表示するステップと、上記ＨＭＤの外部における第３のジェスチャー入力を検出するステップと、上記第３のジェスチャー入力の検出に応じて、上記仮想注記面に注釈を与えるステップと、上記注釈が与えられた仮想注記面を上記仮想環境における仮想オブジェクトとして表示するステップとを含む。
【００８９】
例１８：上記第１のジェスチャー入力を検出するステップは、上記ＨＭＤに作動的に結合された第１のハンドヘルド電子デバイスの第１の位置を検出するステップと、上記ＨＭＤに作動的に結合された第２のハンドヘルド電子デバイスの第１の位置を検出するステップと、上記第１のハンドヘルド電子デバイスまたは上記第２のハンドヘルド電子デバイスのうちの少なくとも一方の操作デバイスの第１の作動を検出するステップと、上記検出した第１のハンドヘルド電子デバイスの第１の位置と、上記検出した第２のハンドヘルド電子デバイスの第１の位置と、上記検出した操作デバイスの第１の作動とに基づいて、上記第１のジェスチャー入力を検出するステップとを含む、例１７に記載のコンピュータプログラムプロダクト。
【００９０】
例１９：上記第２のジェスチャー入力を検出するステップは、上記第１のジェスチャー入力の検出後に、上記操作デバイスの第１の作動の解除を検出するステップと、上記操作デバイスの第１の作動の解除が検出された時点における上記第１のハンドヘルド電子デバイスの第２の位置を検出するステップと、上記操作デバイスの第１の作動の解除が検出された時点における上記第２のハンドヘルド電子デバイスの第２の位置を検出するステップと、上記検出した第１のハンドヘルド電子デバイスの第１の位置に対する上記検出した第１のハンドヘルド電子デバイスの第２の位置と、上記検出した第２のハンドヘルド電子デバイスの第１の位置に対する上記検出した第２のハンドヘルド電子デバイスの第２の位置とに基づいて、上記仮想注記面の大きさまたは形状のうちの少なくとも一方を設定するステップとを含む、例１８に記載のコンピュータプログラムプロダクト。
【００９１】
例２０：上記第３のジェスチャー入力を検出するステップおよび上記仮想注記面に注釈を与えるステップは、上記操作デバイスの第２の作動を検出するステップと、上記検出した操作デバイスの第２の作動に応じて、上記第１のハンドヘルド電子デバイスまたは上記第２のハンドヘルド電子デバイスのうちの少なくとも一方の移動を追跡するステップと、上記操作デバイスの第２の作動の解除を検出するステップと、上記検出した操作デバイスの第２の作動の解除に応じて、上記第１のハンドヘルド電子デバイスまたは上記第２のハンドヘルド電子デバイスのうちの少なくとも一方の移動の追跡を終了するステップと、上記操作デバイスの第２の作動の検出と上記操作デバイスの第２の作動の解除の検出との間において追跡した、上記第１のハンドヘルド電子デバイスまたは上記第２のハンドヘルド電子デバイスのうちの少なくとも一方の移動に対応する輪郭を用いて、上記仮想注記面に注釈を与えるステップとを含む、例１９に記載のコンピュータプログラムプロダクト。
【００９２】
複数の実施形態について説明してきた。しかし、本明細書の精神および範囲から逸脱することなくさまざまな変更をなし得ることが理解されるであろう。
【００９３】
また、図面に示される論理フローは、望ましい結果を達成するために、示されている特定の順序またはシーケンシャルな順序を必要としない。また、記載されているフローに他のステップが設けられてもよく、または記載されているフローからステップが削除されてもよく、記載されているシステムに他の構成要素が追加されてもよく、または記載されているシステムから構成要素が除去されてもよい。したがって、他の実施形態も以下の特許請求の範囲の範囲内である。
【００９４】
記載されている実装例の特定の特徴について、本明細書に記載されているように説明してきたが、多くの変形、置換、変更および等価物が当業者に想起されるであろう。したがって、添付の特許請求の範囲は、実装例の範囲内に入る全てのこのような変形および変更を包含するよう意図されているということが理解されるべきである。それらは限定としてではなく単に一例として提示されており、形態および詳細のさまざまな変更がなされてもよいということが理解されるべきである。本明細書に記載されている装置および／または方法のいずれの部分も、相互排他的な組み合わせを除いて、いかなる組み合わせで組み合わせられてもよい。本明細書に記載されている実装例は、記載されているさまざまな実装例の機能、構成要素および／または特徴のさまざまな組み合わせおよび／または下位組み合わせを含み得る。
【要約】
拡張現実および／または仮想現実システムにおいて、検出したジェスチャーに応じて、仮想注釈面または仮想シートまたは仮想ホワイトボードを、実体化することができる。ユーザは、仮想注釈面に注釈を与え、仮想注釈面を調整し、格納し、検討し、修正することができ、現在の仮想環境、および／または別の仮想環境、および／または仮想環境の外部における、その他のユーザとの共同作業を可能にする。【図１】
0006633256.tif 000002
【図２Ａ】
0006633256.tif 000003
【図２Ｂ】
0006633256.tif 000004
【図３】
0006633256.tif 000005
【図４Ａ】
0006633256.tif 000006
【図４Ｂ】
0006633256.tif 000007
【図４Ｃ】
0006633256.tif 000008
【図４Ｄ】
0006633256.tif 000009
【図４Ｅ】
0006633256.tif 000010
【図４Ｆ】
0006633256.tif 000011
【図４Ｇ】
0006633256.tif 000012
【図４Ｈ】
0006633256.tif 000013
【図５Ａ】
0006633256.tif 000014
【図５Ｂ】
0006633256.tif 000015
【図５Ｃ】
0006633256.tif 000016
【図５Ｄ】
0006633256.tif 000017
【図５Ｅ】
0006633256.tif 000018
【図５Ｆ】
0006633256.tif 000019
【図５Ｇ】
0006633256.tif 000020
【図６Ａ】
0006633256.tif 000021
【図６Ｂ】
0006633256.tif 000022
【図６Ｃ】
0006633256.tif 000023
【図６Ｄ】
0006633256.tif 000024
【図７Ａ】
0006633256.tif 000025
【図７Ｂ】
0006633256.tif 000026
【図７Ｃ】
0006633256.tif 000027
【図７Ｄ】
0006633256.tif 000028
【図７Ｅ】
0006633256.tif 000029
【図７Ｆ】
0006633256.tif 000030
【図７Ｇ】
0006633256.tif 000031
【図７Ｈ】
0006633256.tif 000032
【図７Ｉ】
0006633256.tif 000033
【図７Ｊ】
0006633256.tif 000034
【図７Ｋ】
0006633256.tif 000035
【図７Ｌ】
0006633256.tif 000036
【図８】
0006633256.tif 000037
【図９】
0006633256.tif 000038