(57)【要約】  仮想現実環境においてナビゲーティングをする制御システムにおいて、ユーザは、仮想環境において仮想フィーチャを選択して、選択したフィーチャにアンカーポイントを設定してよい。ユーザはその後、フィーチャに対して位置の移動または調整をし、および／または仮想環境のフィーチャを移動および／またはスケール変更して、仮想環境のユーザ視界内で、設定したアンカーポイントにフィーチャの一部を維持してよい。
2019502193.tif 000002
【特許請求の範囲】
【請求項１】
方法であって、
ヘッドマウントディスプレイ装置のディスプレイ内で仮想環境を生成する工程と、
前記ヘッドマウントディスプレイ装置と通信をするコントローラのユーザインターフェイスにおいて、第１入力を検出する工程と、
前記第１入力に応答して、前記仮想環境において、選択された仮想フィーチャにアンカーポイントを設定する、アンカーポイント設定工程と、
第２入力を検出する工程と、
前記第２入力に応答して、
前記アンカーポイントに関連付けられた前記仮想フィーチャを含む前記仮想環境内に、エリアを定義する工程と、
前記仮想環境のユーザ視界内で、定義された前記エリア内に前記仮想フィーチャの一部を維持しつつ、前記仮想環境における前記仮想フィーチャの位置およびスケールのうちの少なくとも一方を調整する、調整工程と、を備える方法。
【請求項２】
前記アンカーポイント設定工程は、
仮想ターゲット線と前記仮想フィーチャとの交差箇所を検出する、交差箇所検出工程と、
前記仮想ターゲット線と前記仮想フィーチャとの検出した前記交差箇所に、前記アンカーポイントを設定する工程と、
設定されたユーザリファレンスポイントに対する設定されたコントローラリファレンスポイントの位置に基づき、前記アンカーポイントに関連付けられた前記仮想フィーチャを含む前記仮想環境内に、前記エリアを定義する、位置基準エリア定義工程と、を含む請求項１に記載の方法。
【請求項３】
前記設定されたユーザリファレンスポイントは、ユーザヘッドマウントディスプレイ装置上の固定点に対応し、前記設定されたコントローラリファレンスポイントは、前記コントローラに対する固定点に対応する請求項２に記載の方法。
【請求項４】
前記交差箇所検出工程は、前記仮想ターゲット線を定義する工程であって、前記仮想ターゲット線は、前記設定されたユーザリファレンスポイントを始点とし、前記仮想ターゲット線は、前記設定されたユーザリファレンスポイントにおける前記始点から前記設定されたコントローラリファレンスポイントを通じて延びる、工程を含む請求項３に記載の方法。
【請求項５】
前記設定されたコントローラリファレンスポイントは、仮想閉曲線の中心を定義する請求項４に記載の方法。
【請求項６】
前記位置基準エリア定義工程は、
前記設定されたコントローラリファレンスポイントにより定義される中心を有する第１仮想ディスクを定義する、第１仮想ディスク定義工程と、
前記設定されたユーザリファレンスポイントおよび前記第１仮想ディスクに基づき仮想円錐を定義する工程であって、前記仮想円錐は、前記設定されたユーザリファレンスポイントを始点として前記仮想フィーチャに向かって延び、前記第１仮想ディスクに接触する、仮想円錐定義工程と、
前記仮想円錐と前記仮想フィーチャとの交差箇所に第２仮想ディスクを定義する、第２仮想ディスク定義工程と、を含む請求項５に記載の方法。
【請求項７】
前記第１仮想ディスク定義工程は、前記第１仮想ディスクの第１半径を定義する工程であって、前記第１半径は、前記設定されたコントローラリファレンスポイントから前記第１仮想ディスクの円周まで延びる、工程を含み、前記第２仮想ディスク定義工程は、
前記第２仮想ディスクの中心を定義する工程であって、前記第２仮想ディスクの中心は、前記アンカーポイントに対応する、工程と、
前記第２仮想ディスクの円周を定義する工程であって、該円周は、前記円錐と前記仮想フィーチャの平面との交差箇所に対応する、工程と、
前記第２仮想ディスクの第２半径を定義する工程であって、前記第２半径は、前記第２仮想ディスクの前記中心から前記第２仮想ディスクの前記円周まで延びる、工程と、を含む請求項６に記載の方法。
【請求項８】
前記仮想円錐定義工程は、前記仮想ターゲット線と前記仮想円錐の外周との間の半頂角を定義する工程を含む請求項７に記載の方法。
【請求項９】
前記設定されたコントローラリファレンスポイントが前記設定されたユーザリファレンスポイントに対して移動するとき、前記第１仮想ディスクの前記第１半径および前記第２仮想ディスクの仮想の前記第２半径は、各々一定のままであり、前記設定されたコントローラリファレンスポイントが前記設定されたユーザリファレンスポイントに対して移動するとき、前記半頂角の角度が変わる請求項８に記載の方法。
【請求項１０】
第２入力を受信する工程は、前記設定されたユーザリファレンスポイントに対する前記設定されたコントローラリファレンスポイントの移動を検出する工程を含み、前記調整工程は、
前記設定されたコントローラリファレンスポイントが前記設定されたユーザリファレンスポイントに対して移動するとき、前記アンカーポイントを前記仮想ターゲット線上に維持する工程と、
前記設定されたコントローラリファレンスポイントが前記設定されたユーザリファレンスポイントに対して移動するとき、前記第１仮想ディスクの前記第１半径を一定に維持する工程と、
前記設定されたコントローラリファレンスポイントが前記設定されたユーザリファレンスポイントに対して移動し、かつ前記仮想フィーチャの前記位置および前記スケールのうちの少なくとも一方が調整されるとき、前記第２仮想ディスクの前記第２半径を前記仮想環境に関して一定に維持する工程と、
前記設定されたコントローラリファレンスポイントが前記設定されたユーザリファレンスポイントに対して移動し、かつ前記仮想フィーチャの前記位置および前記スケールのうちの少なくとも一方が調整されるとき、前記半頂角を調整する工程と、を含む請求項８に記載の方法。
【請求項１１】
第２入力を受信する工程は、前記設定されたユーザリファレンスポイントに対する前記設定されたコントローラリファレンスポイントの移動を検出する工程を含み、前記調整工程は、
前記設定されたコントローラリファレンスポイントが前記設定されたユーザリファレンスポイントに対して移動するとき、前記アンカーポイントを前記仮想ターゲット線上に維持して、前記アンカーポイントを移動させる工程と、
前記アンカーポイントが移動するとき、前記アンカーポイントを囲む定義された前記エリアにおける前記仮想フィーチャの前記一部を、定義された前記エリア内に維持する、工程と、
前記アンカーポイントが移動するとき、前記アンカーポイントを囲む定義された前記エリアにおける前記仮想フィーチャの前記一部の前記位置および前記スケールのうちの少なくとも一方を調整する工程と、を含む請求項８に記載の方法。
【請求項１２】
前記アンカーポイントを囲む、前記仮想フィーチャの定義された前記エリアは、前記第２仮想ディスクに対応し、前記アンカーポイントの移動に応答して前記仮想フィーチャの前記位置および前記スケールのうちの少なくとも一方が調整されるとき、前記第２仮想ディスクの仮想の前記半径は、前記仮想環境に関して一定のままである請求項１１に記載の方法。
【請求項１３】
システムであって、
没入型仮想環境を生成するよう構成されたコンピュータ装置を備え、前記コンピュータ装置は、
実行可能な命令を記憶するメモリと、
前記命令を実行するよう構成されたプロセッサと、を有し、前記コンピュータ装置に、
仮想環境を生成する工程と、
ヘッドマウントディスプレイ装置と通信をするコントローラのユーザインターフェイスにおいて、第１入力を検出する工程と、
前記第１入力に応答して、前記仮想環境において、選択された仮想フィーチャにアンカーポイントを設定する、アンカーポイント設定工程と、
第２入力を検出する工程と、
前記第２入力に応答して、
前記フィーチャのエリアを、前記アンカーポイントが前記エリア内に配置されるように定義する工程と、
前記仮想環境のユーザ視界内で、定義された前記エリア内に前記仮想フィーチャの一部を維持しつつ、前記仮想環境における前記仮想フィーチャの位置およびスケールのうちの少なくとも一方を調整する、調整工程と、を実行させるシステム。
【請求項１４】
前記アンカーポイント設定工程において、前記プロセッサは、
仮想ターゲット線と前記仮想フィーチャとの交差箇所を検出する工程であって、前記仮想ターゲット線は、ユーザヘッドマウントディスプレイ上の固定点に対応する、設定されたユーザリファレンスポイントにおける始点に基づき定義され、前記コントローラに対する固定点に対応する設定されたコントローラリファレンスポイントを通じて延びる、工程と、
前記アンカーポイントを、前記仮想ターゲット線と前記仮想フィーチャとの検出した前記交差箇所に設定する工程と、
前記アンカーポイントを囲む、前記フィーチャの前記エリアを、前記設定されたユーザリファレンスポイントに対する前記設定されたコントローラリファレンスポイントの位置に基づき定義する、位置基準エリア定義工程と、を実行するよう構成される請求項１３に記載のシステム。
【請求項１５】
前記位置基準エリア定義工程において、前記プロセッサは、
第１仮想ディスクを、前記設定されたユーザコントローラポイントに定義する工程と、
前記設定されたユーザリファレンスポイントおよび前記第１仮想ディスクに基づき仮想円錐を定義する工程であって、前記仮想円錐は、前記設定されたユーザリファレンスポイントを始点として前記仮想フィーチャに向かって延び、前記第１仮想ディスクに接触する、仮想円錐定義工程と、
前記仮想円錐と前記仮想フィーチャとの交差箇所に第２仮想ディスクを定義する、第２仮想ディスク定義工程と、を実行するよう構成される請求項１４に記載のシステム。
【請求項１６】
第１仮想ディスクを、仮想クロスヘアに定義する工程において、前記プロセッサは、
前記第１仮想ディスクの中心を定義する工程であって、前記第１仮想ディスクの前記中心は、前記設定されたコントローラリファレンスポイントに対応する、工程と、
前記第１仮想ディスクの第１半径を定義する工程であって、前記第１半径は、前記設定されたコントローラリファレンスポイントにおける前記第１仮想ディスクの前記中心から前記第１仮想ディスクの円周まで延びる、工程と、を実行するよう構成される請求項１５に記載のシステム。
【請求項１７】
前記第２仮想ディスク定義工程において、前記プロセッサは、
前記第２仮想ディスクの中心を定義する工程であって、前記第２仮想ディスクの前記中心は、前記アンカーポイントに対応する、工程と、
前記第２仮想ディスクの円周を定義する工程であって、該円周は、前記円錐と前記仮想フィーチャとの交差箇所に対応する、工程と、
前記第２仮想ディスクの第２半径を定義する工程であって、前記第２半径は、前記第２仮想ディスクの前記中心から前記第２仮想ディスクの前記円周まで延びる、工程と、
前記仮想ターゲット線と前記仮想円錐の外周との間の半頂角を定義する工程と、を実行するよう構成される請求項１６に記載のシステム。
【請求項１８】
前記調整工程において、前記プロセッサは、
前記設定されたユーザリファレンスポイントに対する前記設定されたコントローラリファレンスポイントの移動を、第２入力として検出する工程と、
前記設定されたコントローラリファレンスポイントが前記設定されたユーザリファレンスポイントに対して移動するとき、前記アンカーポイントを前記仮想ターゲット線上に維持する工程と、
前記設定されたコントローラリファレンスポイントが前記設定されたユーザリファレンスポイントに対して移動するとき、前記第１仮想ディスクの前記第１半径を一定に維持する工程と、
前記設定されたコントローラリファレンスポイントが前記設定されたユーザリファレンスポイントに対して移動し、かつ前記仮想フィーチャの前記位置および前記スケールのうちの少なくとも一方が調整されるとき、前記第２仮想ディスクの前記第２半径を前記仮想環境に関して一定に維持する、第２半径維持工程と、
前記設定されたコントローラリファレンスポイントが前記設定されたユーザリファレンスポイントに対して移動し、かつ前記仮想フィーチャの前記位置および前記スケールのうちの少なくとも一方が調整されるとき、前記半頂角を調整する工程と、を実行するよう構成される請求項１７に記載のシステム。
【請求項１９】
前記第２半径維持工程において、前記プロセッサは、
前記アンカーポイントが移動するとき、前記アンカーポイントを囲む定義された前記エリアにおける前記仮想フィーチャの前記一部を、定義された前記エリア内に維持する、工程と、
前記仮想フィーチャの前記位置および前記スケールのうちの少なくとも一方の調整と共に前記アンカーポイントが移動するとき、前記アンカーポイントを囲む定義された前記エリアにおける前記仮想フィーチャの前記一部の前記位置および前記スケールのうちの少なくとも一方を調整する工程と、を実行するよう構成される請求項１８に記載のシステム。
【請求項２０】
前記アンカーポイントを囲む、前記仮想フィーチャの定義された前記エリアは、前記第２仮想ディスクに対応し、前記アンカーポイントの移動に応答して前記仮想フィーチャの前記位置および前記スケールのうちの少なくとも一方が調整されるとき、前記第２仮想ディスクの仮想の前記半径は、前記仮想環境に関して一定のままである請求項１９に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、一般に拡張現実および／または仮想現実環境における移動およびスケーリングに関する。
【背景技術】
【０００２】
拡張現実（ＡＲ）および／または仮想現実（ＶＲ）システムは、３次元（３Ｄ）の没入型仮想環境を生成し得る。ユーザがディスプレイ装置を見る時に覗くディスプレイ、眼鏡、またはゴーグルを含む、例えば、ヘルメットまたは他のヘッドマウント装置等の様々な電子装置、センサの取り付けられたグローブ、センサを含む外部のハンドヘルド装置、および他のそのような電子装置との対話を通じて、ユーザはこの３Ｄの没入型仮想環境を体験し得る。３Ｄ仮想環境に没入すると、仮想環境と対話するためのおよび仮想環境との対話をパーソナライズするための物理的な動きおよび／または電子装置の操作を通じて、ユーザは、仮想環境中を移動し、仮想環境の他のエリアに移動してよい。
【図面の簡単な説明】
【０００３】
【図１】本明細書に記載される実装による、ヘッドマウントディスプレイ装置およびコントローラを含む仮想現実システムの例示的な実装の図。
【図２Ａ】例示的なヘッドマウントディスプレイの斜視図。
【図２Ｂ】例示的なヘッドマウントディスプレイの斜視図。
【図２Ｃ】本明細書に記載される実装による、コントローラを説明する図。
【図３】本明細書に記載される実装による、ヘッドマウント電子装置およびコントローラのブロック図。
【図４Ａ】本明細書に記載される実装による、拡張および／または仮想現実環境におけるナビゲーションおよびスケーリング（スケール変更）を説明するサードパーソンビュー。
【図４Ｂ】本明細書に記載される実装による、拡張および／または仮想現実環境におけるナビゲーションおよびスケーリングを説明するサードパーソンビュー。
【図４Ｃ】本明細書に記載される実装による、拡張および／または仮想現実環境におけるナビゲーションおよびスケーリングを説明するサードパーソンビュー。
【図４Ｄ】本明細書に記載される実装による、拡張および／または仮想現実環境におけるナビゲーションおよびスケーリングを説明するサードパーソンビュー。
【図４Ｅ】本明細書に記載される実装による、拡張および／または仮想現実環境におけるナビゲーションおよびスケーリングを説明するサードパーソンビュー。
【図４Ｆ】本明細書に記載される実装による、拡張および／または仮想現実環境におけるナビゲーションおよびスケーリングを説明するサードパーソンビュー。
【図５】本明細書に記載される実装による、拡張および／または仮想現実環境におけるナビゲーションおよびスケーリングを説明するサードパーソンビュー。
【図６Ａ】本明細書に記載される実装による、拡張および／または仮想現実環境におけるナビゲーションおよびスケーリングを説明するサードパーソンビュー。
【図６Ｂ】本明細書に記載される実装による、拡張および／または仮想現実環境におけるナビゲーションおよびスケーリングを説明するサードパーソンビュー。
【図６Ｃ】本明細書に記載される実装による、拡張および／または仮想現実環境におけるナビゲーションおよびスケーリングを説明するサードパーソンビュー。
【図６Ｄ】本明細書に記載される実装による、拡張および／または仮想現実環境におけるナビゲーションおよびスケーリングを説明するサードパーソンビュー。
【図６Ｅ】本明細書に記載される実装による、拡張および／または仮想現実環境におけるナビゲーションおよびスケーリングを説明するサードパーソンビュー。
【図６Ｆ】本明細書に記載される実装による、拡張および／または仮想現実環境におけるナビゲーションおよびスケーリングを説明するサードパーソンビュー。
【図７Ａ】本明細書に記載される実装による、拡張および／または仮想現実環境における仮想フォトスフィアでの移動を説明する図。
【図７Ｂ】本明細書に記載される実装による、拡張および／または仮想現実環境における仮想フォトスフィアでの移動を説明する図。
【図８】本明細書に記載される実装による、拡張および／または仮想現実環境におけるナビゲーティングおよびスケーリングの方法のフローチャート。
【図９】本明細書に記載される技術を実装するために使用可能なコンピュータ装置およびモバイルコンピュータ装置の例を示す図。
【発明を実施するための形態】
【０００４】
１つの態様では、方法は、仮想環境を生成する工程と、ヘッドマウントディスプレイ装置と通信をするコントローラのユーザインターフェイスにおいて、第１入力を検出する工程と、第１入力に応答して、仮想環境において選択された仮想フィーチャにアンカーポイントを設定する、工程と、第２入力を検出する工程と、第２入力に応答して、アンカーポイントを囲むフィーチャのエリアを定義する工程と、仮想環境のユーザ視界内で、定義されたエリア内に仮想フィーチャの一部を維持しつつ、仮想環境における仮想フィーチャの位置およびスケールのうちの少なくとも一方を調整する工程と、を備える方法でよい。
【０００５】
別の態様では、システムは没入型仮想環境を生成するよう構成されたコンピュータ装置を備え、コンピュータ装置は、実行可能な命令を記憶するメモリと、命令を実行するよう構成されたプロセッサと、を有してよい。プロセッサは、コンピュータ装置に、仮想環境を生成する工程と、ヘッドマウントディスプレイ装置と通信をするコントローラのユーザインターフェイスにおいて、第１入力を検出する工程と、第１入力に応答して、仮想環境において選択された仮想フィーチャにアンカーポイントを設定する工程と、第２入力を検出する工程と、第２入力に応答して、アンカーポイントを囲むフィーチャのエリアを、定義する工程と、仮想環境のユーザ視界内で、定義されたエリア内に仮想フィーチャの一部を維持しつつ、仮想環境における仮想フィーチャの位置およびスケールのうちの少なくとも一方を調整する工程と、を実行させてよい。
【０００６】
１つまたは複数の実装の詳細は、添付の図面および下記の記載に説明される。他の特徴は記載および図面、ならびに請求項から明らかとなる。
３Ｄ仮想環境に没入した、例えば、ヘッドマウントディスプレイ（ＨＭＤ）装置を装着したユーザは、様々な異なる種類の入力を通じて３Ｄ仮想環境を探検し、また３Ｄ仮想環境と対話してよい。これらの入力は、例えば、ＨＭＤと別個の電子装置の操作、ＨＭＤ自体の操作、および／または手／腕のジェスチャーを通じた、頭の動きおよび／または頭および／または眼の方向的な注視、その他を含む、例えば物理的な対話を含んでよい。ユーザは、これらの異なる種類の対話のうちの１つまたは複数を実装して、仮想環境における特定の動作、例えば仮想環境中の移動もしくはユーザに関しての仮想環境の移動、仮想環境の第１エリアから仮想環境の第２エリアへの移動、遷移、またはテレポーティング、仮想環境が体験されるパースペクティブの調整、その他を実行してよい。
【０００７】
本明細書に記載される実装によるシステムおよび方法は、仮想環境におけるフィーチャの操作を行ってよく、仮想環境を通じ移動またはナビゲーションを行ってよく、およびユーザが異なるパースペクティブおよびスケールから仮想環境を見て体験することを可能にしてよい。本明細書に記載される実装によるシステムおよび方法はまた、仮想現実において体験される動的な視覚の移動とその動的な視覚の移動に対応する実際の物理的な運動の欠如との断絶にしばしば関連する、運動酔いおよび方向感覚の喪失を避ける一方、仮想現実における実質的にシームレスな仮想移動体験をユーザに提供してよい。
【０００８】
図１に示す例示的な実装において、ＨＭＤ１００を装着したユーザは、ハンドヘルド電子装置１０２を持っている。ハンドヘルド電子装置１０２は、例えば、ＨＭＤ１００により生成された没入型仮想環境における対話のため、ＨＭＤ１００とペアリングされ通信してよいコントローラ、ジャイロマウス、スマートフォン、ジョイスティック、または別のポータブルなコントローラでよい。以下では、単に検討および説明を簡単にするため、ハンドヘルド電子装置１０２はコントローラ１０２と称する。コントローラ１０２は、例えば、有線接続または例えばＷｉＦｉまたはＢｌｕｅｔｏｏｔｈ（登録商標）接続等の無線接続を介して、ＨＭＤ１００と操作可能にカップリングすなわちペアリングされてよい。コントローラ１０２とＨＭＤ１００とのこのペアリングすなわち操作可能のカップリングは、コントローラ１０２とＨＭＤ１００との通信およびコントローラ１０２とＨＭＤ１００との間のデータの交換を提供してよい。これにより、コントローラ１０２は、ＨＭＤ１００により生成された没入型仮想環境における対話を行うため、ＨＭＤ１００と通信をするコントローラとして機能することが可能になってよい。つまり、コントローラ１０２は複数の異なる方法で操作されてよい。コントローラ１０２の操作は、ＨＭＤ１００により生成された没入型仮想環境において、対応する選択もしくは動き、または他の種類の対話に解釈されてよい。これは、例えば、仮想オブジェクトとの対話、操作、または調整と、仮想環境に関するスケールまたはパースペクティブにおける変化と、仮想環境における現在地から仮想環境における選択された目的地またはフィーチャへのユーザの移動（例えばナビゲーション、テレポーテーション、トランスポート）と、他のそのような対話とを含んでよい。いくつかの実装では、上に検討されたように、ユーザは、仮想環境における仮想フィーチャと、ユーザの手を検出および追跡するよう装備されたシステムにより検出される手のジェスチャー等の物理的なジェスチャーを通じて、別個のコントローラの使用に頼ることなく、対話してよい。
【０００９】
図２Ａおよび図２Ｂは、例えば、図１においてユーザに装着されるＨＭＤ１００等の例示的なＨＭＤの斜視図である。図２Ｃは、例えば、図１に示されるコントローラ１０２等の例示的なコントローラを説明する図である。
【００１０】
コントローラ１０２は、装置１０２の内部の構成要素が収容されたハウジング１０３と、ハウジング１０３の外側にあり、ユーザがアクセス可能なユーザインターフェイス１０４とを含んでよい。ユーザインターフェイス１０４は、例えば、ユーザタッチ入力を受信するよう構成されたタッチセンシティブ面１０６と、ボタン、ノブ、ジョイスティック、トグル、スライド、および他のそのような操作装置を含む操作装置１０５と、を含む複数の異なる種類の操作装置を含んでよい。いくつかの実装では、コントローラ１０２はまた、ユーザインターフェイス１０４において受信されるユーザ入力に応答して、例えばハウジング１０３におけるポートを通じて例えばビームまたは光線等の光を選択的に放つよう構成された光源１０８を含んでよい。
【００１１】
ＨＭＤ１００は、フレーム１２０に接続されたハウジング１１０と、例えばヘッドホンに搭載されたスピーカを含む、同じくフレーム１２０に接続されたオーディオ出力装置１３０とを含んでよい。図２Ｂにおいて、ハウジング１１０に収容されている構成要素のいくつかが見えるように、ハウジング１１０のフロント部分１１０ａは、ハウジング１１０のベース部分１１０ｂから回転して遠ざけられている。ディスプレイ１４０は、ハウジング１１０のフロント部分１１０ａの内部に面する側に搭載されてよい。レンズ１５０は、フロント部分１１０ａがハウジング１１０のベース部分１１０ｂに対して閉位置にある場合、ハウジング１１０において、ユーザの眼とディスプレイ１４０との間に搭載されてよい。いくつかの実装においては、ＨＭＤ１００は、例えば、オーディオセンサ、画像／光センサ、位置センサ（例えばジャイロスコープおよび加速度計を含む慣性計測装置）等の様々なセンサを含むセンシングシステム１６０を含んでよい。ＨＭＤ１００はまた、ＨＭＤ１００の動作を行うため、プロセッサ１９０および様々な制御システム装置を含む制御システム１７０を含む。
【００１２】
いくつかの実装では、ＨＭＤ１００は、静止画および動画を取得するカメラ１８０を含んでよい。カメラ１８０が取得する画像は、現実世界におけるユーザおよび／またはコントローラ１０２物理的な位置の追跡を補助するために使用されてよく、および／またはパススルーモードにおいてディスプレイ１４０においてユーザに表示されてよく、ＨＭＤ１００を外したりなど、ハウジング１１０をユーザの視線の外に動かすようにＨＭＤ１００の構成を変更することなく、ユーザが一時的に仮想環境を離れて物理的環境に戻ることを可能にする。
【００１３】
いくつかの実装では、ＨＭＤ１００は、ユーザの眼の注視を検出および追跡する注視追跡装置１６５を含んでよい。注視追跡装置１６５は、ユーザの眼の画像、例えば瞳孔等のユーザの眼の特定の部分の画像を取得し、ユーザの注視の方向および動きを検出および追跡する、例えば単一の画像センサ１６５Ａまたは複数の画像センサ１６５Ａを含んでよい。いくつかの実装では、ＨＭＤ１００は、検出される注視がユーザ入力として処理され、没入型仮想体験において対応する対話に解釈されるよう構成されてよい。
【００１４】
拡張および／または仮想現実環境におけるナビゲーションの操作および制御を提供するシステムのブロック図が図３に示されている。システムは、第２電子装置３０２と通信をする第１電子装置３００を含んでよい。第１電子装置３００は、図１、図２Ａ、および図２Ｂに関して上記されるように、例えばＨＭＤであってよく、没入型仮想環境を生成する。第２電子装置３０２は、図１および図２Ｃに関して上記されるように、例えばコントローラであってよく、第１電子装置３００により生成される没入型仮想環境とのユーザ対話を行うために第１電子装置３００と通信をする。
【００１５】
第１電子装置３００は、図２Ａおよび図２Ｂに示されるセンシングシステム１６０および制御システム１７０にそれぞれ類似してよいセンシングシステム３６０および制御システム３７０を含んでよい。センシングシステム３６０は、例えば、光センサ、オーディオセンサ、画像センサ、距離／近接センサ、位置センサ（例えばジャイロスコープおよび加速度計を含む慣性計測装置）、および／または他のセンサ、および／または図２Ｂに示される注視追跡装置１６５等の、例えばユーザの眼の注視を検出および追跡するために設置された画像センサ、を含むセンサの異なる組み合わせ、を含む１つまたは複数の異なる種類のセンサを含んでよい。制御システム３７０は、例えば、電源／ポーズ制御装置、オーディオおよびビデオ制御装置、光学制御装置、遷移制御装置、および／または他のそのような装置、および／または装置の異なる組み合わせを含んでよい。センシングシステム３６０および／または制御システム３７０は、特定の実装によって、より多くの、またはより少ない、装置を含んでよい。センシングシステム３６０および／または制御システム３７０に含まれる要素は、例えば図２Ａおよび図２Ｂで示されるＨＭＤ１００以外のＨＭＤ内部で、異なる物理的配列（例えば異なる物理的場所）を有してよい。第１電子装置３００はまた、センシングシステム３６０および制御システム３７０と通信をするプロセッサ３９０、メモリ３８０、および第１電子装置３００と別の例えば第２電子装置３０２等の外部装置との間に通信を提供する通信モジュール３５０を含んでよい。
【００１６】
第２電子装置３０２は、第２電子装置３０２と別の例えば第１電子装置３００等の外部装置との間に通信を提供する通信モジュール３０６を含んでよい。第１電子装置３００と第２電子装置３０２との間のデータの交換を提供することに加えて、通信モジュール３０６はまた、上記のように光線またはビームを放つように構成されてよい。第２電子装置３０２は、例えばカメラおよびマイクロフォンに含まれるような画像センサおよびオーディオセンサを含むセンシングシステム３０４、慣性計測装置、コントローラまたはスマートフォンのタッチセンシティブ面に含まれるようなタッチセンサ、および他のそのようなセンサ、ならびに／またはセンサの異なる組み合わせを含んでよい。プロセッサ３０９は、第２電子装置３０２のセンシングシステム３０４および制御ユニット３０５と通信をしてよい。制御ユニット３０５はメモリ３０８へのアクセスを有し、また第２電子装置３０２の全体の動作を制御する。
【００１７】
上で述べられた通り、例えば上記のコントローラ１０２等のコントローラは、仮想環境における対話およびナビゲーションのため、しばしば上記のＨＭＤ１００の機能と組み合わせて、ユーザにより操作されてよい。これの例示的な実装が図４Ａ乃至４Ｅに示される。
【００１８】
ユーザにより体験される仮想環境を生成するＨＭＤ１００を装着したユーザは、コントローラ１０２を操作し、仮想環境４００において仮想オブジェクトおよび仮想フィーチャをナビゲートおよび操作してよい。図４Ａに示されるように、固定の、設定されたコントローラリファレンスポイント４１０は、コントローラ１０２が動くときにコントローラ１０２に対して固定状態で留まってもよいが、コントローラ１０２に関連付けられ得る。以下では、単に検討および説明を簡単にするため、設定されたコントローラリファレンスポイント４１０は、図面において仮想クロスヘアのセットとして図示される。設定されたコントローラリファレンスポイント４１０は仮想クロスヘアの交差箇所に存在している。設定されたコントローラリファレンスポイント４１０／仮想クロスヘア４１０は、ユーザが仮想環境４００において仮想オブジェクトおよびフィーチャに対してコントローラ１０２を動かすときに、コントローラ１０２と共に動き、コントローラ１０２に関し固定位置に留まってよい。図４Ａに示される例では、仮想クロスヘア４１０は、コントローラ１０２に対する固定位置に留まり、基本的にコントローラ１０２と共に動く、仮想の表現、つまりアイコンを含む。仮想クロスヘア４１０は、単に検討および説明を簡単にするため、以下においてこのように表現される。しかしながら、いくつかの実施形態では、仮想クロスヘア４１０は、コントローラ１０２に対する空間における既知の位置（コントローラ１０２および／またはＨＭＤ１００に検出される）を表現してよいが、ユーザに対して可視表現、つまりアイコンの形態でレンダリングされなくてよく、そのため、仮想環境４００における仮想オブジェクトおよびフィーチャに対するユーザのビューおよびアクセスが、仮想クロスヘア４１０の可視表現により不明瞭にされない。
【００１９】
図４Ａは、ユーザの仮想フィーチャ４５０との仮想対話の開始を説明する。仮想フィーチャ４５０は、仮想対話の開始のユーザにより見られるように示される。図４Ａに示されるように、仮想環境４００におけるユーザの仮想フィーチャ４５０との対話の開始時、例えば時間ｔ＝０において、ユーザは、仮想フィーチャ４５０に関連付けられたアンカーポイント４２０を定義してよい。図４Ａにおいて、アンカーポイント４２０は、例えば、ユーザが仮想環境４００において移動、および／または仮想オブジェクトおよびフィーチャに対して位置および／またはパースペクティブを変更するときに、ユーザが自分の視界に留めたいと望む仮想フィーチャ４５０の部分を識別してよい。ユーザの仮想フィーチャ４５０との対話の開始時、つまり時間ｔ＝０において、アンカーポイント４２０は、仮想ターゲット線４１５により定義されてよい。その仮想ターゲット線４１５は、設定されたユーザリファレンスポイント１００Ａから延長し、ユーザリファレンスポイント１００Ａおよび／または仮想クロスヘア４１０を動かすユーザにより制御されてよい仮想ターゲット線４１５の方向により定義される仮想フィーチャ４５０の選択された部分と仮想クロスヘア４１０を通じて交差する。
【００２０】
ユーザリファレンスポイント１００Ａは、例えば、ユーザの眼の位置またはその近くの位置、ユーザの眼の間の場所に対応する位置、または他の設定された位置等、ＨＭＤ１００における設定された場所で定義されてよい。この設定されたユーザリファレンスポイント１００Ａは、ユーザおよび特にユーザの頭が仮想環境４００において動いて位置／方向を変更するときに、ＨＭＤ１００上でまたはＨＭＤ１００に対して設定されたまま、つまり一定のままでよい。同様に、コントローラ１０２に対する仮想クロスヘア４１０の場所／位置／方向は、ユーザおよび特にユーザの腕／コントローラ１０２を持つ手が仮想環境において場所／位置／方向を変更するときに、コントローラ１０２上でまたはコントローラ１０２に対して設定されたまま、つまり一定の位置のままでよい。ＨＭＤ１００の場所および位置／方向ならびにＨＭＤ１００に対するコントローラ１０２の場所および位置／方向は、実質的にリアルタイムで、システムにより検出および追跡されてよく、設定されたユーザリファレンスポイント１００Ａの一定の場所およびコントローラ１０２に対する仮想クロスヘア４１０の一定の場所もまた、実質的にリアルタイムで、検出および追跡されてよい。
【００２１】
図４Ａに示される例において、設定されたユーザリファレンスポイント１００Ａから仮想クロスヘア４１０を通じて、選択されたアンカーポイント４２０まで延長している仮想ターゲット線４１５は、点線で表現される。しかしながら、いくつかの実装では、仮想ターゲット線４１５は、必ずしもユーザにより見られる可視表現またはオブジェクトとしてレンダリングされなくてよく、そのため、仮想環境における仮想オブジェクトおよびフィーチャに対するユーザのビューおよびアクセスが、仮想ターゲット線４２０の可視表現により不明瞭にされない。いくつかの実装においては、可視表現、例えばドットは、仮想ターゲット線４１５により識別される仮想フィーチャ４５０上の点にアンカーポイント４２０としてレンダリングされてよい。ユーザのビューの例、つまり、ユーザがアンカーポイント４２０を設定したときの、図４Ａに示す仮想フィーチャ４５０に対するユーザの仮想位置からのパースペクティブは、図４Ｂに示される。図４Ａに示される構成は、例えば、ボタンまたはトリガを押下する等、コントローラ１０２のユーザインターフェイス１０４において装置を操作することによる、ユーザの仮想フィーチャ４５０との対話の開始、つまり時間ｔ＝０を表現してよい。
【００２２】
ボタンまたはトリガの押下（またはコントローラ１０２のユーザインターフェイス１０４における他の操作装置の始動）は、図４Ａに示されるように、アンカーポイント４２０を識別及び設定するために使用されてよい。アンカーポイント４２０を設定した後、ユーザの動き、例えば、頭と手／腕の動き、および、仮想クロスヘア４１０を通じてアンカーポイント４２０まで延長している、仮想ターゲット線４１５の対応する動き（ユーザの頭上の設定されたユーザリファレンスポイント１００Ａの動きおよびユーザの手に持たれたコントローラ１０２の動きによる）は、仮想環境４００において仮想フィーチャ４５０を移動およびスケール変更してよい。例えば、アンカーポイント４２０が上記のように設定されると、図４Ｃに示されるような仮想ターゲット線４１５の（ボタンまたはトリガは押下されたまま図４Ａに示される位置からの）下方運動は、アンカーポイント４２０の下方移動を生じてよく、仮想環境４００のスケールにおける変化（ユーザの足は仮想地面に着いたまま、かつ仮想フィーチャ４５０は仮想地面に着いたままであるが）、および特に、仮想環境４００においてアンカーポイント４２０によりアンカーされた仮想フィーチャ４５０のスケール、および、図４Ｄに示されるように、仮想フィーチャ４５０に対するユーザのビューまたはパースペクティブにおける変化をもたらす結果となる。
【００２３】
同様に、アンカーポイント４２０が上記のように設定されると、図４Ｅに示されるような仮想ターゲット線４１５の（例えばボタンまたはトリガは押下されたまま図４Ａに示される位置からの）上方運動は、アンカーポイント４２０の上方移動を生じてよく、仮想環境４００のスケールにおける変化、および特に、仮想環境４００においてアンカーポイント４２０によりアンカーされた仮想フィーチャ４５０に対するユーザのスケールまたはパースペクティブ、および、図４Ｆに示されるように、フィーチャに対するユーザのビューまたはパースペクティブにおける変化をもたらす結果となる。
【００２４】
仮想環境においてスケールの調整をすることは、仮想環境における仮想フィーチャに対するユーザのサイズにおける変化（増加または減少）もしくは仮想環境における仮想フィーチャに対するユーザのパースペクティブにおける対応する変化であってよい（または変化、すなわち、仮想環境におけるユーザに対する仮想フィーチャのサイズにおける増加または減少であると考えられてよい）。例えば、ユーザは、ユーザが仮想環境を、ユーザのパースペクティブからあたかも仮想環境における仮想フィーチャに対する自身のサイズが増加したかのように（および／または仮想フィーチャのサイズ／スケールが減少して見えるように）経験するように、スケールアップをすることを選択してよい。同様に、ユーザは、ユーザが仮想環境を、ユーザのパースペクティブからあたかも仮想環境における仮想フィーチャに対する自身のサイズが減少したかのように（および／または仮想フィーチャのサイズ／スケールが増加して見えるように）経験するように、スケールダウンをすることを選択してよい。仮想環境におけるこの種のスケーリングは、ユーザのサイズ／スケーリング、特に仮想環境における仮想フィーチャに対するユーザのパースペクティブにおける仮想調整、または仮想環境におけるユーザに対する仮想フィーチャのサイズ／スケーリングにおける仮想調整と考えられてよい。以下では、単に検討を簡単にするため、スケーリングは、仮想フィーチャに対するユーザのサイズ／スケールの仮想調整および／または仮想環境における仮想フィーチャのサイズ／スケールの仮想調整を含むものと考えられる。図４Ａに示される位置から図４Ｃに示される位置（図４Ｃにおいてゴースト像として点線で図示される）へのおよび／または図４Ａに示される位置から図４Ｅに示される位置（図４Ｅにおいてゴースト像として点線で図示される）への運動は、例示的な上および下方運動、ならびに仮想環境４００における仮想フィーチャ４５０の対応する移動および／または仮想環境４００に対するユーザのスケーリング（またはユーザに対する仮想環境４００のスケーリング）を説明する。しかしながら、他の方向への動き（ボタンまたはトリガは押下されたまま）もまた、アンカーポイント４２０を、対応する動きを通じて、選択された仮想フィーチャ４５０の識別された部分にアンカーされたままにさせてよい。例えば、右への運動は、仮想フィーチャ４５０がユーザの回りを動くまたは周回するエフェクトを生じてよい。同様に、ユーザの腕がユーザに接近する運動は、仮想フィーチャ４５０へ接近するズームのエフェクトを生じてよい。
【００２５】
ある動作に応答して、システムは、設定されたユーザリファレンスポイント、コントローラ１０２に対する仮想クロスヘア４１０の位置、および設定された仮想リファレンスポイント４００Ａに関連付けられたある固定のパラメータを用いてよい。仮想リファレンスポイント４００Ａは、実質的に静止したままであり、様々な運動および／またはフィーチャの移動および／または上記のようなスケーリングを通じて変わらない。以下では、設定された仮想リファレンスポイント４００Ａは、仮想環境４００において仮想地面に対応するリファレンス平面または仮想床面とする。つまり、図５に示される例に図示されるように、例示的な下方運動（点線で示される腕／手／コントローラ位置から、実線で示される腕／手／コントローラ位置まで）に応答して、システムはある固定のパラメータを用いて、ユーザは仮想フィーチャ４５０をスケール変更して、全て仮想ターゲット線４１５の範囲であるような、スケール変更済みフィーチャ４５０Ａ、スケール変更済みフィーチャ４５０Ｂ、またはスケール変更済みフィーチャ４５０Ｃにすることを意図しているかどうかの判定をしてよい。これは、図６Ａ乃至図６Ｆを参照してより詳細が説明される。
【００２６】
図６Ａにおいて、仮想環境４００における仮想フィーチャ４５０との対話の開始時（例えば時間ｔ＝０時）、ユーザは、以下で仮想地面４００Ａとして考えられる、仮想リファレンス平面４００Ａ上の仮想フィーチャ４５０に面して位置してよい。図６Ａに示される例では、時間ｔ＝０時、ユーザは腕を伸ばしてコントローラ１０２を持つため、仮想ターゲット線４１５はユーザが設定したリファレンスポイント１００Ａから、仮想クロスヘア４１０を通じて仮想フィーチャ４５０まで延長して、アンカーポイント４２０を設定する。いくつかの実装においては、仮想クロスヘア４１０のサイズまたは寸法（高さおよび幅）は一定でよく、または、例えば特定の用途のためにもしくはユーザ、システム等によって設定されてよい。仮想クロスヘア４１０の設定された寸法は、時間ｔ＝０時に第１ディスクｄ１０を定義してよい。第１ディスクｄ１０は、仮想クロスヘア４１０の設定された寸法により定義される一定の半径ｒ１を有する。例えば、ボタンまたはトリガを押下する等、コントローラ１０２のユーザインターフェイス１０４上の装置を操作することによる、ユーザの仮想フィーチャ４５０との対話の開始時に、つまりｔ＝０時に、図４Ａに示されるユーザに何が見え得るかの例は、図６Ｂに図示される。
【００２７】
第１ディスクｄ１０は、円錐４４０を定義してよい。その円錐４４０は、設定されたユーザリファレンスポイント１００Ａを始点とし、アンカーポイント４２０を囲む平面に向かって第１ディスクｄ１０に接するように延びている。ｔ＝０時に、角度α０は、設定されたユーザリファレンスポイント１００Ａおよび第１ディスクｄ１０により定義される円錐４４０の半頂角として定義されてよい。半径ｒ２を有する第２ディスクｄ２０は、アンカーポイント４２０に対応する距離において、すなわち、アンカーポイント４２０に対応／を包含する、仮想ターゲット線４１５と実質的に垂直な仮想平面において、円錐４４０を通る断面として定義されてよい。
【００２８】
図６Ａに示されるようにセットされると、仮想半径ｒ２は、仮想環境４００に対して固定のまま、つまり仮想環境４００に関して一定のままでよい。つまり、セットされると、仮想環境４００に対して一定の仮想半径ｒ２を有する、第２ディスクｄ２０の領域内に取り込まれた仮想フィーチャ４５０の部分は、図６Ｂに示されるように、同一のままでよく、他方、第２ディスクｄ２０内に取り込まれた仮想フィーチャ４５０の部分を含む仮想フィーチャ４５０は、ユーザがアンカーポイント４２０を動かすことに応答して、移動および／またはスケール変更される。これは、図６Ｃ乃至図６Ｆを参照してより詳細が記載される。
【００２９】
図６Ｃは、その後の時点、ｔ＞０を図示し、アンカーポイント４２０の下方運動および仮想フィーチャ４５０のスケーリングダウンに対応する、仮想ターゲット線４１５の下方運動を説明する。図６Ａに示される位置から図６Ｃに示される位置（以下により詳細が記載される）への運動後に、図４Ｃに示されるユーザに何が見え得るかの例が、図６Ｄに図示される。図６Ｅは、その後の時点、ｔ＞０を図示し、アンカーポイント４２０への接近運動に対応する、設定されたユーザリファレンスポイント１００Ａに近づく、第１ディスクｄ１０の内側運動および、ユーザと仮想フィーチャ４５０との間の知覚される仮想距離の減少を説明する。図６Ａに示される位置から図６Ｅに示される位置（以下により詳細が記載される）への運動後に、図４Ｅに示されるユーザに何が見え得るかの例が、図６Ｆに図示される。
【００３０】
図６Ａに関して上記されるように、アンカーポイント４２０を設定後、その後の各々の時点ｔ＞０（例えばｔ１，ｔ２，…ｔＮ）において、角度αｔは、設定されたユーザリファレンスポイント１００Ａおよび第１ディスクｄ１ｔにより定義される円錐４４０の半頂角として算出されてよい。その後の各々の時点ｔ＞０において、第１ディスクｄ１ｔの半径ｒ１はユーザに対して一定／固定（仮想クロスヘア４１０の寸法が一定のとき）のままである。その後の各々の時点ｔ＞０において、第２ディスクｄ２ｔの仮想半径ｒ２は、アンカーポイント４２０が動き仮想ターゲット線４１５上に留まるとき、仮想環境４００に対して一定／固定のままである。仮想リファレンス平面４００Ａ、つまり仮想地面４００Ａもまた固定、つまり一定のままであり、現実世界の地面と一致したままである。しかしながら、設定されたユーザリファレンスポイント１００Ａと第１ディスクｄ１ｔとの間の距離は、コントローラ１０２を持つユーザの腕／手が動くとき、変化してよい。これにより、その後の時点ｔ＞０（例えば、ｔ１，ｔ２，…ｔＮ）において、上記のようにユーザがアンカーポイント４２０を動かすことに応答して、半頂角αｔもまた変化させてよい。第１ディスクｄ１ｔの半径ｒ１はユーザに対して一定のままかつ第２ディスクｄ２ｔの仮想半径ｒ２は仮想環境４００に対して一定のままであり、アンカーポイント４２０は仮想ターゲット線４１５上に留まり、および仮想リファレンス平面４００Ａは現実世界の地面と一致したままである一方、アンカーポイント４２０がこのように移動するときに、半頂角αｔを再計算することで、図示のように仮想環境を移動および／またはスケール変更することを可能にする。
【００３１】
図６Ａ乃至図６Ｅに示す例において、設定されたコントローラリファレンスポイント４１０を囲むエリアを表示する第１ディスクｄ１０／ｄｔ０は、設定されたコントローラリファレンスポイント４１０に交差箇所がある仮想クロスヘアに基づきディスクとして定義される。設定されたコントローラリファレンスポイント４１０を囲むエリアが円形ディスク形状を有し、アンカーポイント４２０を囲むエリア、アンカーポイント４２０を囲むエリアが円形ディスク形状を有する、円錐で定義されたこの例示的なジオメトリにより、コントローラの動きに応答してユーザおよび／または仮想フィーチャがスケール変更されるときに、半頂角αの計算および追跡／調整を行い、および減少した処理量を生成してよい。しかしながら、円形ディスクは、単に検討および説明を簡単にするために示されるものであり、設定されたコントローラリファレンスポイント４１０を囲むエリアは、他の閉曲線形状を有してよい。同様に、図６Ａ乃至図６Ｅに示す例において、円錐４４０は、設定されたユーザリファレンスポイント１００Ａを始点とし、第１ディスクｄ１０と接するように伸び、第１ディスクｄ１０を超えるジオメトリにより定義されている。しかしながら、このジオメトリはまた、設定されたユーザリファレンスポイント４１０を囲む、定義されたエリアのジオメトリに基づき異なってよい。同様に、図６Ａ乃至図６Ｅに示す例において、アンカーポイント４２０を囲むエリアは、円形ディスクとして定義される。しかしながら、アンカーポイント４２０を囲むこのエリアの形はまた、設定されたコントローラリファレンスポイントを囲むエリアの閉曲線形状と、このジオメトリの仮想フィーチャ４５０の平面との交差箇所までの延長とにより定義される。
【００３２】
図７Ａに示されるように、いくつかの実装では、１つまたは複数の仮想フォトスフィア５７０（例えば、第１、第２、および第３の仮想フォトスフィア５７０Ａ、５７０Ｂ、５７０Ｃ）は、仮想環境における選択のため、ユーザに利用可能であってよい。各フォトスフィアは、仮想環境における例えば特定のフィーチャ、場所等の３６０度のパノラミックな体験を提供してよい。仮想フォトスフィア５７０の１つに移動するには、ユーザは、例えば、上記のようにハンドヘルド電子装置１０２により生成される仮想ビーム５００を、例えば第３の仮想フォトスフィア５７０Ｃ等の仮想フォトスフィア５７０のうちの選択された１つに向けて、図７Ａに示されるように、仮想フィーチャ５５０の内部の３６０度のパノラミックな体験に移動してよい。ハンドヘルド電子装置１０２をさらに操作すると、例えば、仮想ビーム５５０を選択された仮想フォトスフィア５７０Ｃに向けているボタンを離すと、ユーザは、図７Ｂに示されるように、選択された仮想フォトスフィア５７０Ｃに移動されて、つまりテレポートやトランスポートされてよい。
【００３３】
選択された仮想フォトスフィア５７０に移動、つまりトランスポーティングやテレポーティングをする場合、ユーザは、上記で詳細に検討されたように、仮想環境におけるフィーチャに対するスケールを調整する選択をしてよい。特に、選択された仮想フォトスフィア５７０に移動する場合、ユーザは、上記で詳細に記載されたように、選択された仮想フォトスフィア５７０により提供される３６０度のパノラミックな体験に含まれた仮想要素に対して、サイズ／スケールが増加またはサイズ／スケールが減少する選択をしてよい。
【００３４】
仮想フォトスフィア５７０の内側に入ると、ユーザは仮想フォトスフィア５７０内を移動してよい。例えば、ユーザは、仮想フォトスフィア５７０により提供される３６０度のパノラミックな体験の異なる部分を見るために向きを変えてよく、および／またはユーザは、仮想フォトスフィア５７０により提供される３６０度のパノラミックな体験における仮想要素に接近または近づくために、図８Ｂに示されるように、仮想フォトスフィア５７０内で仮想位置Ｃから仮想位置Ｄ（ｖｉｒｔｕａｌ  ｐｏｓｉｔｏｎ  Ｄ）まで歩いてよい。いくつかの実装では、ユーザは、例えば、仮想フォトスフィア５７０内を、仮想フォトスフィア５７０内の３６０度のパノラミックな仮想ディスプレイの端と考えられてよい所まで歩いてよい。仮想フォトスフィア５７０の３６０度のパノラミックな体験に表示される、ユーザの前に表示される仮想要素は、ユーザが仮想要素の方向に歩く、または接近するにつれて、より大きく見える。同様に、ユーザが振り返る、例えば、仮想位置Ｄに到着後に向きを１８０度変える場合、ユーザが仮想フォトスフィア５７０のその部分に表示された仮想要素から歩いて離れたため、かつてユーザの背後にあったその仮想要素は小さく見えてよい。
【００３５】
本明細書に記載の実施形態による、拡張および／または仮想現実環境における、ナビゲーティングおよび／またはスケーリングの方法７００は、図８に示される。仮想フィーチャの選択を検出すると（ブロック７１０）、仮想アンカーポイントを設定するリクエストが受信されたか否かが判定されてよい（ブロック７２０）。仮想アンカーポイントを設定するリクエストは、例えば、図４Ａおよび図６Ａに関して上記で詳細に記載されたように、ユーザによる入力でよい。仮想アンカーポイントを設定するリクエストが受信された場合は、仮想アンカーポイントが設定されてよい（ブロック７３０）。仮想アンカーポイントが設定され、かつ仮想環境に対するユーザの位置、ビュー、パースペクティブ、またはスケールを調整するリクエスト（またはユーザに対するスケール仮想環境をスケール変更するリクエスト）が受信された場合は（ブロック７５０）、システムは、受信されたリクエストに従って、図４Ｂ乃至図４Ｆおよび図６Ｂ乃至６Ｆに関して上記で詳細に記載されたように、位置および／またはビューおよび／またはパースペクティブおよび／またはスケールを調整してよい（ブロック７６０）。仮想アンカーポイントが設定されないが、選択された仮想フィーチャに対してユーザの位置を移動するかそうでなければ調整するリクエストが受信された場合は（ブロック７４０）、システムは、リクエストされた調整を、受信されたリクエストに従って、実行してよい（ブロック７６０）。リクエストされた仮想調整が完了すると（ブロック７７０）、プロセスは、仮想体験が終了するまで繰り返されてよい（ブロック７８０）。
【００３６】
図９は、一般的なコンピュータ装置８００および一般的なモバイルコンピュータ装置８５０の一例を示し、これらの装置は、本明細書に記載される技法とともに使用することができる。コンピューティング装置８００は、ラップトップ、デスクトップ、タブレット、ワークステーション、携帯情報端末、テレビ、サーバ、ブレードサーバ、メインフレーム、および他の適当なコンピューティング装置等、様々な形態のデジタルコンピュータを表すことが意図される。コンピューティング装置８５０は、携帯情報端末、セルラ電話、スマートフォン、および他の同様のコンピューティング装置等、様々な形態のモバイル装置を表すことが意図される。本明細書に示される構成要素、それらの接続および関係、ならびにそれらの機能は、単に例示的なものにすぎず、本明細書に記載され、および／または特許請求される発明の実装を制限するものではない。
【００３７】
コンピューティング装置８００は、プロセッサ８０２と、メモリ８０４と、記憶装置８０６と、メモリ８０４および高速拡張ポート８１０に接続している高速インターフェイス８０８と、低速バス８１４および記憶装置８０６に接続している低速インターフェイス８１２とを含む。プロセッサ８０２は、半導体ベースのプロセッサでよい。メモリ８０４は、半導体ベースのメモリでよい。構成要素８０２、８０４、８０６、８０８、８１０、および８１２の各々は、様々なバスを使用して相互接続され、適宜に、共通のマザーボード上に、または他の方法で取り付けることができる。プロセッサ８０２は、高速インターフェイス８０８に結合されたディスプレイ８１６等の、外部の入出力装置上に、ＧＵＩに関するグラフィカル情報を表示するための、メモリ８０４または記憶装置８０６に記憶された命令を含む、コンピューティング装置８００内の実行の命令を処理することができる。他の実装では、複数のプロセッサおよび／または複数のバスは、適宜に、複数のメモリおよびメモリの種類とともに使用することができる。また、複数のコンピューティング装置８００を（例えば、サーババンク、ブレードサーバのグループ、またはマルチプロセッサシステムとして）、必要な動作の一部分を提供する各装置と接続してもよい。
【００３８】
メモリ８０４は、コンピューティング装置８００内の情報を記憶する。１つの実装では、メモリ８０４は、揮発性メモリユニットまたはユニットである。別の実装では、メモリ８０４は、不揮発性メモリユニットまたはユニットである。また、メモリ８０４は、磁気または光学ディスク等の別の形態のコンピュータ可読媒体でもよい。
【００３９】
記憶装置８０６は、コンピューティング装置８００に大容量ストレージを提供することができる。１つの実装では、記憶装置８０６は、コンピュータ可読媒体（例えば、フロッピー（登録商標）ディスク装置、ハードディスク装置、光学ディスク装置、またはテープ装置）、フラッシュメモリもしくは他の同様の固体メモリ装置、またはストレージエリアネットワークもしくは他の構成の装置を含む装置のアレイであり得、またはそれらを含むことができる。コンピュータプログラム製品は、情報担体中に有形で実施され得る。また、コンピュータプログラム製品は、上述したもののように、実行時に、１つまたは複数のメソッドを実行する命令を含むことができる。情報担体は、メモリ８０４、記憶装置８０６、またはプロセッサ８０２上のメモリ等の、コンピュータ可読媒体または機械可読媒体である。
【００４０】
高速コントローラ８０８は、コンピューティング装置８００に対する帯域幅を大量に使用する（ｂａｎｄｗｉｄｔｈ−ｉｎｔｅｎｓｉｖｅ）操作を管理し、低速コントローラ８１２はより低い帯域幅を大量に使用する（ｌｏｗｅｒ  ｂａｎｄｗｉｄｔｈ−ｉｎｔｅｎｓｉｖｅ）操作を管理する。機能のそのような割振りは、例示的なものにすぎない。１つの実装では、高速コントローラ８０８は、（例えば、グラフィックスプロセッサまたはアクセラレータを介して）メモリ８０４、ディスプレイ８１６に、および、様々な拡張カード（図示せず）を受け付けることができる高速拡張ポート８１０に結合される。この実装では、低速コントローラ８１２は、記憶装置８０６と低速拡張ポート８１４とに結合されている。低速拡張ポートには、様々な通信ポート（例えば、ＵＳＢ、Ｂｌｕｅｔｏｏｔｈ（登録商標）、イーサネット（登録商標）、ワイヤレスイーサネット）が含まれるが、これは、例えば、キーボード、ポインティング装置、スキャナ、またはスイッチもしくはルータなどのネットワーク装置等、１つまたは複数の入出力装置に、例えばネットワークアダプタを介して、結合することができる。
【００４１】
コンピューティング装置８００は、図示のように、複数の異なる形態で実装することができる。例えば、コンピューティング装置８００は、標準的なサーバ８２０として、またはそのようなサーバのグループにおいて複数台、実装することができる。加えて、コンピューティング装置８００は、ラックサーバシステム８２４の一部として実装することもできる。さらに、コンピューティング装置８００は、ラップトップコンピュータ８２２等のパーソナルコンピュータに実装することができる。あるいは、コンピューティング装置８００の構成要素は、装置８５０等のモバイル装置（図示せず）の他の構成要素と組み合わせてもよい。このような装置の各々は、コンピューティング装置８００、８５０のうちの１つまたは複数を含んでよく、互いに通信する複数のコンピューティング装置８００、８５０によりシステム全体が構成されてよい。
【００４２】
コンピューティング装置８５０は、他の構成要素のうち、プロセッサ８５２と、メモリ８６４と、ディスプレイ８５４等の入出力装置と、通信インターフェイス８６６と、トランシーバ８６８とを含む。また、装置８５０は、追加のストレージを提供するために、マイクロドライブまたは他の装置等の記憶装置を備えてもよい。構成要素８５０、８５２、８６４、８５４、８６６、および８６８の各々は、様々なバスを使用して相互接続され、構成要素のうちのいくつかは、適宜に、共通のマザーボード上に、または他の方法で取り付けることができる。
【００４３】
プロセッサ８５２は、メモリ８６４に記憶された命令を含む、コンピューティング装置８５０内の命令を実行することができる。プロセッサは、別個の複数のアナログプロセッサとデジタルプロセッサを含むチップのチップセットとして実装することができる。プロセッサは、例えば、ユーザインターフェイス、装置８５０によって実行されるアプリケーション、および装置８５０による無線通信の制御等、装置８５０の他の構成要素の調整を行うことができる。
【００４４】
プロセッサ８５２は、ディスプレイ８５４に結合された制御インターフェイス８５８およびディスプレイインターフェイス８５６を介して、ユーザと通信をすることができる。ディスプレイ８５４は、例えば、ＴＦＴ  ＬＣＤディスプレイ（薄膜トランジスタ液晶ディスプレイ）もしくはＯＬＥＤ（有機発光ダイオード）ディスプレイ、または他の適切なディスプレイ技術であり得る。ディスプレイインターフェイス８５６は、グラフィカル情報および他の情報をユーザに提示するようにディスプレイ８５４を駆動するための適切な回路を備えることができる。制御インターフェイス８５８は、ユーザからコマンドを受信し、プロセッサ８５２へのサブミッションのためにそれらを変換することができる。加えて、プロセッサ８５２と通信をする外部インターフェイス８６２が提供されてもよく、それにより、装置８５０の他の装置との近距離通信が可能になる。外部インターフェイス８６２は、例えば、いくつかの実装では有線通信を、または他の実装では無線通信を行うことができ、また、複数のインターフェイスを使用してもよい。
【００４５】
メモリ８６４は、コンピューティング装置８５０内の情報を記憶する。メモリ８６４は、１つまたは複数のコンピュータ可読媒体、１つまたは複数の揮発性メモリユニット、または１つまたは複数の不揮発性メモリユニットとして実装することができる。また、拡張メモリ８７４が提供され、例えば、ＳＩＭＭ（シングルインラインメモリモジュール）カードインターフェイスを含むことができる拡張インターフェイス４７２を介して装置８５０に接続され得る。このような拡張メモリ８７４は、装置８５０に追加のストレージスペースを提供することができ、または装置８５０にアプリケーションもしくは他の情報を記憶することができる。具体的には、拡張メモリ８７４は、上述の処理を実行または補足するための命令を含むことができ、安全な情報も含むことができる。したがって、例えば、装置８５０のセキュリティモジュールとして、拡張メモリ８７４を提供することができ、装置８５０の安全な使用を可能にする命令を用いて、拡張メモリ８７４をプログラムすることができる。加えて、ハッカー行為が不可能な様式でＳＩＭＭカード上に識別情報を配置する等、ＳＩＭＭカードを介して、安全なアプリケーションを追加の情報と共に提供することができる。
【００４６】
メモリは、後述のように、例えば、フラッシュメモリおよび／またはＮＶＲＡＭメモリを含むことができる。１つの実装では、コンピュータプログラム製品は情報担体中に有形で実施される。コンピュータプログラム製品は、上述したもののように、実行時に、１つまたは複数の方法を実行する命令を含む。情報担体は、メモリ８６４、拡張メモリ８７４、または例えばトランシーバ８６８もしくは外部インターフェイス８６２を通じて受信され得るプロセッサ８５２上のメモリ等の、コンピュータ可読媒体または機械可読媒体である。
【００４７】
装置８５０は、必要に応じて、デジタル信号処理回路を含むことができる通信インターフェイス８６６を介して、無線で通信することができる。通信インターフェイス８６６は、とりわけ、ＧＳＭ（登録商標）音声通話、ＳＭＳメッセージング、ＥＭＳメッセージングもしくはＭＭＳメッセージング、ＣＤＭＡ、ＴＤＭＡ、ＰＤＣ、ＷＣＤＭＡ（登録商標）、ＣＤＭＡ２０００、またはＧＰＲＳ等の、様々なモードまたはプロトコルに基づく通信を行うことができる。このような通信は、例えば、無線周波数トランシーバ８６８を介して行うことができる。加えて、短距離通信は、Ｂｌｕｅｔｏｏｔｈ、ＷｉＦｉ、または他のそのようなトランシーバ（図示せず）等を使用して行うことができる。加えて、ＧＰＳ（全地球測位システム）受信器モジュール８７０は、追加のナビゲーション関連ワイヤレスデータおよびロケーション関連ワイヤレスデータを、装置８５０に提供することができ、これらの情報は、装置８５０上で実行されるアプリケーションによって必要に応じて使用可能である。
【００４８】
また、装置８５０は、音声コーデック８６０を使用して可聴通信することができる。音声コーデック８６０は、話された情報をユーザから受信して、それを使用可能なデジタル情報に変換することができる。音声コーデック８６０は同様に、例えば装置８５０のハンドセット中のスピーカ等を介して、ユーザが聞き取れる可聴音を発生することができる。このような音声は、音声電話通話からの音声を含み、記録された音声（例えば、ボイスメッセージ、音楽ファイル等）を含むことができ、さらに、装置８５０上で動作するアプリケーションによって発生された音声を含むことができる。
【００４９】
コンピューティング装置８５０は、図示のように、複数の異なる形態で実装することができる。例えば、コンピューティング装置８５０は、セルラ電話８８０として実装することができる。コンピューティング装置８５０は、スマートフォン８８２、携帯情報端末、または他の同様のモバイル装置の一部として実装してもよい。
【００５０】
本明細書に記載したシステムおよび技法の種々の実装は、デジタル電子回路、集積回路、専用に設計されたＡＳＩＣ（特定用途向け集積回路）、コンピュータハードウェア、ファームウェア、ソフトウェア、および／またはその組合せにおいて実現することが可能である。これらの様々な実装は、ストレージシステム、１つ以上の入力装置、および１つ以上の出力装置とデータおよび命令を送受信するように結合された、専用または汎用とすることができる１つ以上のプログラマブルプロセッサを含むプログラマブルシステム上で実行可能および／または解釈可能な１つまたは複数のコンピュータプログラムにおける実装を含むことが可能である。
【００５１】
これらのコンピュータプログラム（プログラム、ソフトウェア、ソフトウェアアプリケーション、またはコードとしても知られる）は、プログラマブルプロセッサに対する機械語命令を含み、高レベル手続き言語および／もしくはオブジェクト指向プログラミング言語で、ならびに／またはアセンブリ／機械言語で実装することが可能である。本明細書で使用されるように、用語「機械可読媒体」「コンピュータ可読媒体」は、機械語命令を機械可読信号として受け取る機械可読媒体を含む、機械語命令および／またはデータをプログラマブルプロセッサに提供するために使用される任意のコンピュータプログラム製品、装置、および／または装置（例えば、磁気ディスク、光ディスク、メモリ、プログラマブルロジックデバイス（ＰＬＤ））を指す。用語「機械可読信号」は、機械語命令および／またはデータをプログラマブルプロセッサに提供するために使用される任意の信号を指す。
【００５２】
ユーザとの対話を行うために、本明細書に記載したシステムおよび技法は、情報をユーザに表示するための表示装置（例えば、ＣＲＴ（陰極線管）モニタまたはＬＣＤ（液晶ディスプレイ）モニタ）と、ユーザがそれによりコンピュータに入力することが可能なキーボードおよびポインティング装置（例えば、マウスまたはトラックボール）とを有するコンピュータ上で実装することが可能である。ユーザとの対話を行うために、他の種類の装置も同様に使用することが可能であり、例えば、ユーザに提供されるフィードバックは、感覚的なフィードバック（例えば、視覚フィードバック、聴覚フィードバック、または触覚フィードバック）の任意の形態とすることができ、ユーザからの入力は、音響入力、音声入力、または触覚入力を含む任意の形態で受信することが可能である。
【００５３】
本明細書に記載したシステムおよび技法は、（例えば、データサーバとして）バックエンドコンポーネントを含むか、ミドルウェアコンポーネント（例えば、アプリケーションサーバ）を含むか、フロントエンドコンポーネント（例えば、ユーザが、本明細書に記載したシステムおよび技法の実装とそれを介して対話できるグラフィカルユーザインターフェイスまたはウェブブラウザを有するクライアントコンピュータ）を含む、コンピューティングシステム、あるいはこのようなバックエンドコンポーネント、ミドルウェアコンポーネント、またはフロントエンドコンポーネントの任意の組合せで実装することが可能である。このシステムの構成要素は、デジタルデータ通信（例えば、通信ネットワーク）の任意の形態または媒体により相互接続することが可能である。通信ネットワークの例としては、ローカルエリアネットワーク（「ＬＡＮ」）、ワイドエリアネットワーク（「ＷＡＮ」）、およびインターネットが挙げられる。
【００５４】
コンピューティングシステムは、クライアントおよびサーバを含むことが可能である。クライアントおよびサーバは、一般に互いに別個であり、典型的には通信ネットワークを通じて対話する。クライアントとサーバの関係は、各コンピュータで動作しており、かつ互いにクライアント‐サーバ関係を有するコンピュータプログラムによって生じる。
【００５５】
複数の実施形態が記載された。それでもなお、発明の範囲及び精神を逸脱することなく、様々な変形例がなされてよいことが理解されるであろう。
加えて、図に記載された論理の流れは、望ましい結果を得るために、示された特定の順序や順番を必要としない。加えて、他の工程が提供されてよく、または工程は記載された流れから省略されてよい。また、他の構成要素は、記載されたシステムに追加されるか省略されてよい。したがって、他の実施形態は、以下の請求項の範囲内である。
【００５６】
本明細書に記載された様々な技術の実装は、デジタル電子回路、コンピュータハードウェア、ファームウェア、ソフトウェア、またはそれらの組み合わせにおいて行われてよい。実装は、またはプログラマブルプロセッサ、コンピュータ、または複数のコンピュータ等のデータ処理装置による処理のため、またはそれの動作を制御する処理のため、情報担体中、例えば機械可読ストレージ装置（コンピュータ可読媒体）に有形に実施されたコンピュータプログラム製品、つまりコンピュータプログラムとして行われてよい。したがって、コンピュータ可読記憶媒体は、実行された場合にプロセッサ（例えばホスト装置におけるプロセッサ、クライアント装置におけるプロセッサ）に方法を実行させる命令を記憶するように構成されてよい。
【００５７】
上記のコンピュータプログラム等のコンピュータプログラムは、コンパイル型またはインタープリタ型言語を含むプログラミング言語の任意の形態で記述されてよく、スタンドアローンプログラムまたはモジュールとして、コンポーネント、サブルーチン、またはコンピューティング環境において使用に適した他の単位を含む任意の形態で展開されてよい。コンピュータプログラムは、１つの場所で１つのコンピュータまたは複数のコンピュータに展開されて処理されるか、または通信ネットワークにより相互接続された複数の場所で配布されてよい。
【００５８】
方法の工程は、入力データを処理して出力を生成することにより機能を実行するコンピュータプログラムを実行する、１つまたは複数のプログラマブルプロセッサにより実行されてよい。方法の工程はまた、ＦＰＧＡ（フィールドプログラマブルゲートアレイ）またはＡＳＩＣ（特定用途向け集積回路）等の専用論理回路により実行されてよく、装置はそれらの回路として実装されてよい。
【００５９】
コンピュータプログラムの処理に適したプロセッサは、例として、一般および特定用途マイクロプロセッサの両方、および任意の種類のデジタルコンピュータの任意の１つまたは複数のプロセッサを含む。一般に、プロセッサは、リードオンリーメモリもしくはランダムアクセスメモリまたはその両方から命令およびデータを受け取る。コンピュータの要素は、命令を実行する１つ以上のプロセッサと、命令およびデータを記憶する１つまたは複数のメモリ装置とを含んでよい。一般に、コンピュータはまた、データの受信もしくは送信またはその両方を行うため、１つまたは複数の、磁気、光磁気ディスクまたは光学ディスク等の、データ記憶用の大容量記憶装置を含んでよいか、動作可能に接続されてよい。コンピュータプログラム命令およびデータを実施するのに適した情報担体は、例として、ＥＰＲＯＭ、ＥＥＰＲＯＭ、およびフラッシュメモリ等の半導体メモリ装置と、内部のハードディスクまたはリムーバブルディスク等の磁気ディスクと、光磁気ディスクと、ＣＤ−ＲＯＭおよびＤＶＤ−ＲＯＭディスクとを含む、全ての形態の不揮発性メモリを含む。プロセッサおよびメモリは、専用論理回路に追加または組み込まれてよい。
【００６０】
ユーザとの対話を提供するため、実装は、情報をユーザに表示するための陰極線管（ＣＲＴ）、発光ダイオード（ＬＥＤ）、または液晶ディスプレイ（ＬＣＤ）モニタ等のディスプレイ装置と、ユーザがそれによりコンピュータに入力を提供することが可能なキーボードおよびポインティング装置、例えばマウスまたはトラックボールとを有するコンピュータ上で行ってよい。ユーザとの対話を行うために、他の種類の装置も同様に使用してよく、例えば、ユーザに提供されるフィードバックは、感覚的なフィードバック、例えば視覚フィードバック、聴覚フィードバック、または触覚フィードバックの任意の形態でよく、ユーザからの入力は、音響入力、音声入力、または触覚入力を含む任意の形態で受信されてよい。
【００６１】
実装は、例えばデータサーバとしてバックエンドコンポーネントを含むか、ミドルウェアコンポーネント、例えばアプリケーションサーバを含むか、フロントエンドコンポーネント、例えば、ユーザが、実装とそれを介して対話できるグラフィカルユーザインターフェイスまたはウェブブラウザを有するクライアントコンピュータを含む、コンピューティングシステム、あるいはこのようなバックエンドコンポーネント、ミドルウェアコンポーネント、またはフロントエンドコンポーネントの任意の組合せで行われよい。構成要素は、デジタルデータ通信、例えば通信ネットワークの任意の形態または媒体により相互接続することが可能である。通信ネットワークの例としては、ローカルエリアネットワーク（ＬＡＮ）およびワイドエリアネットワーク（ＷＡＮ）例えばインターネット）が挙げられる。
【００６２】
さらなる実装は以下の例に要約される。
例１：  方法であって、ヘッドマウントディスプレイ装置のディスプレイ内で仮想環境を生成する工程と、ヘッドマウントディスプレイ装置と通信をするコントローラのユーザインターフェイスにおいて、第１入力を検出する工程と、第１入力に応答して、仮想環境において、選択された仮想フィーチャにアンカーポイントを設定する、アンカーポイント設定工程と、第２入力を検出する工程と、第２入力に応答して、アンカーポイントに関連付けられた仮想フィーチャを含む仮想環境内に、エリアを定義する工程と、仮想環境のユーザ視界内で、定義されたエリア内に仮想フィーチャの一部を維持しつつ、仮想環境における仮想フィーチャの位置およびスケールのうちの少なくとも一方を調整する、調整工程と、を備える方法。
【００６３】
例２：  アンカーポイント設定工程は、仮想ターゲット線と仮想フィーチャとの交差箇所を検出する、交差箇所検出工程と、仮想ターゲット線と仮想フィーチャとの検出した交差箇所に、アンカーポイントを設定する工程と、設定されたユーザリファレンスポイントに対する設定されたコントローラリファレンスポイントの位置に基づき、アンカーポイントに関連付けられた仮想フィーチャを含む仮想環境内に、エリアを定義する、位置基準エリア定義工程と、を含む例１に記載の方法。
【００６４】
例３：  設定されたユーザリファレンスポイントは、ユーザヘッドマウントディスプレイ装置上の固定点に対応し、設定されたコントローラリファレンスポイントは、コントローラに対する固定点に対応する例２に記載の方法。
【００６５】
例４：  交差箇所検出工程は、仮想ターゲット線を定義する工程であって、仮想ターゲット線は、設定されたユーザリファレンスポイントを始点とし、仮想ターゲット線は、設定されたユーザリファレンスポイントにおける始点から設定されたコントローラリファレンスポイントを通じて延びる、工程を含む例２または３に記載の方法。
【００６６】
例５：  設定されたコントローラリファレンスポイントは、仮想閉曲線の中心を定義する例１乃至４のいずれか１例に記載の方法。
例６：  位置基準エリア定義工程は、設定されたコントローラリファレンスポイントにより定義される中心を有する第１仮想ディスクを定義する、第１仮想ディスク定義工程と、設定されたユーザリファレンスポイントおよび第１仮想ディスクに基づき仮想円錐を定義する工程であって、仮想円錐は、設定されたユーザリファレンスポイントを始点として仮想フィーチャに向かって延び、第１仮想ディスクに接触する、仮想円錐定義工程と、仮想円錐と仮想フィーチャとの交差箇所に第２仮想ディスクを定義する、第２仮想ディスク定義工程と、を含む例２乃至５のいずれか１例に記載の方法。
【００６７】
例７：  第１仮想ディスク定義工程は、第１仮想ディスクの第１半径を定義する工程であって、第１半径は、設定されたコントローラリファレンスポイントから第１仮想ディスクの円周まで延びる、工程を含み、第２仮想ディスク定義工程は、第２仮想ディスクの中心を定義する工程であって、第２仮想ディスクの中心は、アンカーポイントに対応する、工程と、第２仮想ディスクの円周を定義する工程であって、該円周は、円錐と仮想フィーチャの平面との交差箇所に対応する、工程と、第２仮想ディスクの第２半径を定義する工程であって、第２半径は、第２仮想ディスクの中心から第２仮想ディスクの円周まで延びる、工程と、を含む例６に記載の方法。
【００６８】
例８：  仮想円錐定義工程は、仮想ターゲット線と仮想円錐の外周との間の半頂角を定義する工程を含む例６または７に記載の方法。
例９：  設定されたコントローラリファレンスポイントが設定されたユーザリファレンスポイントに対して移動するとき、第１仮想ディスクの第１半径および第２仮想ディスクの第２仮想半径は、各々一定のままであり、設定されたコントローラリファレンスポイントが設定されたユーザリファレンスポイントに対して移動するとき、半頂角の角度が変わる例７または８に記載の方法。
【００６９】
例１０：  第２入力を受信する工程は、設定されたユーザリファレンスポイントに対する設定されたコントローラリファレンスポイントの移動を検出する工程を含み、調整工程は、設定されたコントローラリファレンスポイントが設定されたユーザリファレンスポイントに対して移動するとき、アンカーポイントを仮想ターゲット線上に維持する工程と、設定されたコントローラリファレンスポイントが設定されたユーザリファレンスポイントに対して移動するとき、第１仮想ディスクの第１半径を一定に維持する工程と、設定されたコントローラリファレンスポイントが設定されたユーザリファレンスポイントに対して移動し、かつ仮想フィーチャの位置およびスケールのうちの少なくとも一方が調整されるとき、第２仮想ディスクの第２半径を仮想環境に関して一定に維持する工程と、設定されたコントローラリファレンスポイントが設定されたユーザリファレンスポイントに対して移動し、かつ仮想フィーチャの位置およびスケールのうちの少なくとも一方が調整されるとき、半頂角を調整する工程と、を含む例１乃至９のいずれか１例に記載の方法。
【００７０】
例１１：  第２入力を受信する工程は、設定されたユーザリファレンスポイントに対する設定されたコントローラリファレンスポイントの移動を検出する工程を含み、調整工程は、設定されたコントローラリファレンスポイントが設定されたユーザリファレンスポイントに対して移動するとき、アンカーポイントを仮想ターゲット線上に維持して、アンカーポイントを移動させる工程と、アンカーポイントが移動するとき、アンカーポイントを囲む定義されたエリアにおける仮想フィーチャの一部を、定義されたエリア内に維持する、工程と、アンカーポイントが移動するとき、アンカーポイントを囲む定義されたエリアにおける仮想フィーチャの一部の位置およびスケールのうちの少なくとも一方を調整する工程と、を含む例１乃至１０のいずれか１例に記載の方法。
【００７１】
例１２：  アンカーポイントを囲む、仮想フィーチャの定義されたエリアは、第２仮想ディスクに対応し、アンカーポイントの移動に応答して仮想フィーチャの位置およびスケールのうちの少なくとも一方が調整されるとき、第２仮想ディスクの仮想半径は、仮想環境に関して一定のままである例６乃至１１のいずれか１例に記載の方法。
【００７２】
例１３：  システムであって、没入型仮想環境を生成するよう構成されたコンピュータ装置を備え、コンピュータ装置は、実行可能な命令を記憶するメモリと、命令を実行するよう構成されたプロセッサと、を有し、プロセッサは、コンピュータ装置に、仮想環境を生成する工程と、ヘッドマウントディスプレイ装置と通信をするコントローラのユーザインターフェイスにおいて、第１入力を検出する工程と、第１入力に応答して、仮想環境において、選択された仮想フィーチャにアンカーポイントを設定する、アンカーポイント設定工程と、第２入力を検出する工程と、第２入力に応答して、フィーチャのエリアを、アンカーポイントがエリア内に配置されるように定義する工程と、仮想環境のユーザ視界内で、定義されたエリア内に仮想フィーチャの一部を維持しつつ、仮想環境における仮想フィーチャの位置およびスケールのうちの少なくとも一方を調整する、調整工程と、を実行させるシステム。
【００７３】
例１４：  アンカーポイント設定工程において、プロセッサは、仮想ターゲット線と仮想フィーチャとの交差箇所を検出する工程であって、仮想ターゲット線は、ユーザヘッドマウントディスプレイ上の固定点に対応する、設定されたユーザリファレンスポイントにおける始点に基づき定義され、コントローラに対する固定点に対応する設定されたコントローラリファレンスポイントを通じて延びる、工程と、アンカーポイントを、仮想ターゲット線と仮想フィーチャとの検出した交差箇所に設定する工程と、アンカーポイントを囲む、フィーチャのエリアを、設定されたユーザリファレンスポイントに対する設定されたコントローラリファレンスポイントの位置に基づき定義する、位置基準エリア定義工程と、を実行するよう構成される例１３に記載のシステム。
【００７４】
例１５：  位置基準エリア定義工程において、プロセッサは、第１仮想ディスクを、設定されたユーザコントローラポイントに定義する工程と、設定されたユーザリファレンスポイントおよび第１仮想ディスクに基づき仮想円錐を定義する工程であって、仮想円錐は、設定されたユーザリファレンスポイントを始点として仮想フィーチャに向かって延び、第１仮想ディスクに接触する、仮想円錐定義工程と、仮想円錐と仮想フィーチャとの交差箇所に第２仮想ディスクを定義する、第２仮想ディスク定義工程と、を実行するよう構成される例１３または１４に記載のシステム。
【００７５】
例１６：  第１仮想ディスクを、仮想クロスヘアに定義する工程において、プロセッサは、第１仮想ディスクの中心を定義する工程であって、第１仮想ディスクの中心は、設定されたコントローラリファレンスポイントに対応する、工程と、第１仮想ディスクの第１半径を定義する工程であって、第１半径は、設定されたコントローラリファレンスポイントにおける第１仮想ディスクの中心から第１仮想ディスクの円周まで延びる、工程と、を実行するよう構成される例１５に記載のシステム。
【００７６】
例１７：  第２仮想ディスク定義工程において、プロセッサは、第２仮想ディスクの中心を定義する工程であって、第２仮想ディスクの中心は、アンカーポイントに対応する、工程と、第２仮想ディスクの円周を定義する工程であって、該円周は、円錐と仮想フィーチャとの交差箇所に対応する、工程と、第２仮想ディスクの第２半径を定義する工程であって、第２半径は、第２仮想ディスクの中心から第２仮想ディスクの円周まで延びる、工程と、仮想ターゲット線と仮想円錐の外周との間の半頂角を定義する工程と、を実行するよう構成される例１５または１６に記載のシステム。
【００７７】
例１８：  調整工程において、プロセッサは、設定されたユーザリファレンスポイントに対する設定されたコントローラリファレンスポイントの移動を、第２入力として検出する工程と、設定されたコントローラリファレンスポイントが設定されたユーザリファレンスポイントに対して移動するとき、アンカーポイントを仮想ターゲット線上に維持する工程と、設定されたコントローラリファレンスポイントが設定されたユーザリファレンスポイントに対して移動するとき、第１仮想ディスクの第１半径を一定に維持する工程と、設定されたコントローラリファレンスポイントが設定されたユーザリファレンスポイントに対して移動し、かつ仮想フィーチャの位置およびスケールのうちの少なくとも一方が調整されるとき、第２仮想ディスクの第２半径を仮想環境に関して一定に維持する、第２半径維持工程と、設定されたコントローラリファレンスポイントが設定されたユーザリファレンスポイントに対して移動し、かつ仮想フィーチャの位置およびスケールのうちの少なくとも一方が調整されるとき、半頂角を調整する工程と、を実行するよう構成される例１３乃至１７のいずれか１例に記載のシステム。
【００７８】
例１９：  第２半径維持工程において、プロセッサは、アンカーポイントが移動するとき、アンカーポイントを囲む定義されたエリアにおける仮想フィーチャの一部を、定義されたエリア内に維持する、工程と、仮想フィーチャの位置およびスケールのうちの少なくとも一方の調整と共にアンカーポイントが移動するとき、アンカーポイントを囲む定義されたエリアにおける仮想フィーチャの一部の位置およびスケールのうちの少なくとも一方を調整する工程と、を実行するよう構成される例１８に記載のシステム。
【００７９】
例２０：  アンカーポイントを囲む、仮想フィーチャの定義されたエリアは、第２仮想ディスクに対応し、アンカーポイントの移動に応答して仮想フィーチャの位置およびスケールのうちの少なくとも一方が調整されるとき、第２仮想ディスクの仮想半径は、仮想環境に関して一定のままである例１５乃至１９のいずれか１例に記載のシステム。
【００８０】
記載された実装の一定の特徴が、本明細書に記載の通り説明されてきたが、複数の変形例、代用、変更、および等価物が当業者に想到されるであろう。これは、したがって、添付の請求項は、そのようなすべての変形例を網羅するよう意図され、変更は実装の範囲に含まれると理解されるべきである。それらは限定ではなく一例として提示されたに過ぎず、形態および詳細において様々な変更がされてよいと理解されるべきである。本明細書に記載された装置および／または方法の任意の部分は、相互に排除的な組み合わせを除き、任意の組み合わせにおいて組み合わされてよい。本明細書に記載された実装は、様々な組み合わせおよび／または機能、構成要素の下位の組み合わせ、ならびに／または記載された異なる実装の特徴を含んでよい。
【図１】
2019502193.tif 000003
【図２Ａ】
2019502193.tif 000004
【図２Ｂ】
2019502193.tif 000005
【図２Ｃ】
2019502193.tif 000006
【図３】
2019502193.tif 000007
【図４Ａ】
2019502193.tif 000008
【図４Ｂ】
2019502193.tif 000009
【図４Ｃ】
2019502193.tif 000010
【図４Ｄ】
2019502193.tif 000011
【図４Ｅ】
2019502193.tif 000012
【図４Ｆ】
2019502193.tif 000013
【図５】
2019502193.tif 000014
【図６Ａ】
2019502193.tif 000015
【図６Ｂ】
2019502193.tif 000016
【図６Ｃ】
2019502193.tif 000017
【図６Ｄ】
2019502193.tif 000018
【図６Ｅ】
2019502193.tif 000019
【図６Ｆ】
2019502193.tif 000020
【図７Ａ】
2019502193.tif 000021
【図７Ｂ】
2019502193.tif 000022
【図８】
2019502193.tif 000023
【図９】
2019502193.tif 000024
【手続補正書】
【提出日】平成30年12月7日(2018.12.7)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
方法であって、
ヘッドマウントディスプレイ装置のディスプレイ内で仮想環境を生成する工程と、
前記ヘッドマウントディスプレイ装置と通信をするハンドヘルドのコントローラのユーザインターフェイスにおいて受信される第１入力を検出する工程と、
前記第１入力に応答して、前記仮想環境において、選択された仮想フィーチャにアンカーポイントを設定する、アンカーポイント設定工程と、
第２入力を検出する工程と、
前記第２入力に応答して、
設定されたユーザリファレンスポイントに対する設定されたコントローラリファレンスポイントの位置に基づき、前記アンカーポイントに関連付けられた前記仮想フィーチャを含む前記仮想環境内に、エリアを定義する工程であって、前記設定されたユーザリファレンスポイントは前記ヘッドマウントディスプレイ装置に対する固定点に対応し、前記設定されたコントローラリファレンスポイントはハンドヘルドの前記コントローラに対する固定点に対応し、前記設定されたユーザリファレンスポイントと前記設定されたコントローラリファレンスポイントと前記アンカーポイントとは仮想線上にある、前記工程と、
前記仮想環境のユーザ視界内で、定義された前記エリアを維持しつつ、前記仮想環境における前記仮想フィーチャの位置およびスケールのうちの少なくとも一方を調整する、調整工程と、を備える方法。
【請求項２】
前記アンカーポイント設定工程は、
仮想ターゲット線と前記仮想フィーチャとの交差箇所を検出する、交差箇所検出工程と、
前記仮想ターゲット線と前記仮想フィーチャとの検出した前記交差箇所に、前記アンカーポイントを設定する工程と、を含む請求項１に記載の方法。
【請求項３】
前記設定されたユーザリファレンスポイントは、前記ヘッドマウントディスプレイ装置上の固定点に対応し、前記設定されたコントローラリファレンスポイントは、ハンドヘルドの前記コントローラに対する固定点に対応する請求項２に記載の方法。
【請求項４】
前記交差箇所検出工程は、前記仮想ターゲット線を定義する工程であって、前記仮想ターゲット線は、前記設定されたユーザリファレンスポイントを始点とし、前記仮想ターゲット線は、前記設定されたユーザリファレンスポイントにおける前記始点から前記設定されたコントローラリファレンスポイントを通じて延びる、工程を含む請求項３に記載の方法。
【請求項５】
前記設定されたコントローラリファレンスポイントは、仮想閉曲線の中心を定義する請求項４に記載の方法。
【請求項６】
前記仮想環境内に前記エリアを定義する工程は、
前記設定されたコントローラリファレンスポイントにより定義される中心を有する第１仮想ディスクを定義する、第１仮想ディスク定義工程と、
前記設定されたユーザリファレンスポイントおよび前記第１仮想ディスクに基づき仮想円錐を定義する工程であって、前記仮想円錐は、前記設定されたユーザリファレンスポイントを始点として前記仮想フィーチャに向かって延び、前記第１仮想ディスクに接触する、仮想円錐定義工程と、
前記仮想円錐と前記仮想フィーチャとの交差箇所に第２仮想ディスクを定義する、第２仮想ディスク定義工程と、を含む請求項１に記載の方法。
【請求項７】
前記第１仮想ディスク定義工程は、前記第１仮想ディスクの第１半径を定義する工程であって、前記第１半径は、前記設定されたコントローラリファレンスポイントから前記第１仮想ディスクの円周まで延びる、工程を含み、前記第２仮想ディスク定義工程は、
前記第２仮想ディスクの中心を定義する工程であって、前記第２仮想ディスクの中心は、前記アンカーポイントに対応する、工程と、
前記第２仮想ディスクの円周を定義する工程であって、該円周は、前記円錐と前記アンカーポイントに位置する仮想平面との交差箇所に対応し、前記仮想平面は仮想ターゲット線と垂直である、工程と、
前記第２仮想ディスクの第２半径を定義する工程であって、前記第２半径は、前記第２仮想ディスクの前記中心から前記第２仮想ディスクの前記円周まで延びる、工程と、を含む請求項６に記載の方法。
【請求項８】
前記仮想円錐定義工程は、前記仮想ターゲット線と前記仮想円錐の外周との間の半頂角を定義する工程を含む請求項７に記載の方法。
【請求項９】
前記設定されたコントローラリファレンスポイントが前記設定されたユーザリファレンスポイントに対して移動するとき、前記第１仮想ディスクの前記第１半径は前記ユーザに対して一定のままであり、前記第２仮想ディスクの仮想の前記第２半径は前記仮想環境に対して一定のままであり、前記設定されたコントローラリファレンスポイントが前記設定されたユーザリファレンスポイントに対して移動するとき、前記半頂角の角度が変わる請求項８に記載の方法。
【請求項１０】
前記第２入力を受信する工程は、前記設定されたユーザリファレンスポイントに対する前記設定されたコントローラリファレンスポイントの移動を検出する工程を含み、前記調整工程は、
前記設定されたコントローラリファレンスポイントが前記設定されたユーザリファレンスポイントに対して移動するとき、前記アンカーポイントを前記仮想ターゲット線上に維持する工程と、
前記設定されたコントローラリファレンスポイントが前記設定されたユーザリファレンスポイントに対して移動するとき、前記第１仮想ディスクの前記第１半径を前記ユーザに対して一定に維持する工程と、
前記設定されたコントローラリファレンスポイントが前記設定されたユーザリファレンスポイントに対して移動し、かつ前記仮想フィーチャの前記位置および前記スケールのうちの少なくとも一方が調整されるとき、前記第２仮想ディスクの前記第２半径を前記仮想環境に対して一定に維持する工程と、
前記設定されたコントローラリファレンスポイントが前記設定されたユーザリファレンスポイントに対して移動し、かつ前記仮想フィーチャの前記位置および前記スケールのうちの少なくとも一方が調整されるとき、前記半頂角を調整する工程と、を含む請求項８に記載の方法。
【請求項１１】
前記第２入力を受信する工程は、前記設定されたユーザリファレンスポイントに対する前記設定されたコントローラリファレンスポイントの移動を検出する工程を含み、前記調整工程は、
前記設定されたコントローラリファレンスポイントが前記設定されたユーザリファレンスポイントに対して移動するとき、前記アンカーポイントを前記仮想ターゲット線上に維持して、前記アンカーポイントを移動させる工程と、
前記アンカーポイントが移動するとき、前記アンカーポイントを囲む定義された前記エリアにおける前記仮想フィーチャの前記一部を、定義された前記エリア内に維持する、工程と、
前記アンカーポイントが移動するとき、前記アンカーポイントを囲む定義された前記エリアにおける前記仮想フィーチャの前記一部の前記位置および前記スケールのうちの少なくとも一方を調整する工程と、を含む請求項８に記載の方法。
【請求項１２】
前記アンカーポイントを囲む、前記仮想フィーチャの定義された前記エリアは、前記第２仮想ディスクに対応し、前記アンカーポイントの移動に応答して前記仮想フィーチャの前記位置および前記スケールのうちの少なくとも一方が調整されるとき、前記第２仮想ディスクの仮想の前記半径は、前記仮想環境に関して一定のままである請求項１１に記載の方法。
【請求項１３】
システムであって、
没入型仮想環境を生成するよう構成されたコンピュータ装置を備え、前記コンピュータ装置は、
実行可能な命令を記憶するメモリと、
前記命令を実行するよう構成されたプロセッサと、を有し、前記コンピュータ装置に、
ヘッドマウントディスプレイ装置のディスプレイ中に仮想環境を生成する工程と、
前記ヘッドマウントディスプレイ装置と通信をするハンドヘルドのコントローラのユーザインターフェイスにおいて受信される第１入力を検出する工程と、
前記第１入力に応答して、前記仮想環境において、選択された仮想フィーチャにアンカーポイントを設定する、アンカーポイント設定工程と、
第２入力を検出する工程と、
前記第２入力に応答して、
設定されたユーザリファレンスポイントに対する設定されたコントローラリファレンスポイントの位置に基づき、前記フィーチャのエリアを、前記アンカーポイントが前記エリア内に配置されるように定義する工程であって、前記設定されたユーザリファレンスポイントは前記ヘッドマウントディスプレイ装置に対する固定点に対応し、前記設定されたコントローラリファレンスポイントはハンドヘルドの前記コントローラに対する固定点に対応し、前記設定されたユーザリファレンスポイントと前記設定されたコントローラリファレンスポイントと前記アンカーポイントとは仮想線上にある、前記工程と、
前記仮想環境のユーザ視界内で、定義された前記エリアを維持しつつ、前記仮想環境における前記仮想フィーチャの位置およびスケールのうちの少なくとも一方を調整する、調整工程と、を実行させるシステム。
【請求項１４】
前記アンカーポイント設定工程において、前記プロセッサは、
仮想ターゲット線と前記仮想フィーチャとの交差箇所を検出する工程であって、前記仮想ターゲット線は、ユーザヘッドマウントディスプレイ上の固定点に対応する、設定されたユーザリファレンスポイントにおける始点に基づき定義され、前記コントローラに対する固定点に対応する設定されたコントローラリファレンスポイントを通じて延びる、工程と、
前記アンカーポイントを、前記仮想ターゲット線と前記仮想フィーチャとの検出した前記交差箇所に設定する工程と、を実行するよう構成される請求項１３に記載のシステム。
【請求項１５】
前記アンカーポイントを囲む、前記フィーチャの前記エリアを定義する工程において、前記プロセッサは、
第１仮想ディスクを、前記設定されたコントローラリファレンスポイントに定義する工程と、
前記設定されたユーザリファレンスポイントおよび前記第１仮想ディスクに基づき仮想円錐を定義する工程であって、前記仮想円錐は、前記設定されたユーザリファレンスポイントを始点として前記仮想フィーチャに向かって延び、前記第１仮想ディスクに接触する、仮想円錐定義工程と、
前記仮想円錐と前記仮想フィーチャとの交差箇所に第２仮想ディスクを定義する、第２仮想ディスク定義工程と、を実行するよう構成される請求項１４に記載のシステム。
【請求項１６】
前記第１仮想ディスクを、仮想クロスヘアに定義する工程において、前記プロセッサは、
前記第１仮想ディスクの中心を定義する工程であって、前記第１仮想ディスクの前記中心は、前記設定されたコントローラリファレンスポイントに対応する、工程と、
前記第１仮想ディスクの第１半径を定義する工程であって、前記第１半径は、前記設定されたコントローラリファレンスポイントにおける前記第１仮想ディスクの前記中心から前記第１仮想ディスクの円周まで延びる、工程と、を実行するよう構成される請求項１５に記載のシステム。
【請求項１７】
前記第２仮想ディスク定義工程において、前記プロセッサは、
前記第２仮想ディスクの中心を定義する工程であって、前記第２仮想ディスクの前記中心は、前記アンカーポイントに対応する、工程と、
前記第２仮想ディスクの円周を定義する工程であって、該円周は、前記円錐と前記仮想フィーチャとの交差箇所に対応する、工程と、
前記第２仮想ディスクの第２半径を定義する工程であって、前記第２半径は、前記第２仮想ディスクの前記中心から前記第２仮想ディスクの前記円周まで延びる、工程と、
前記仮想ターゲット線と前記仮想円錐の外周との間の半頂角を定義する工程と、を実行するよう構成される請求項１６に記載のシステム。
【請求項１８】
前記調整工程において、前記プロセッサは、
前記設定されたユーザリファレンスポイントに対する前記設定されたコントローラリファレンスポイントの移動を、第２入力として検出する工程と、
前記設定されたコントローラリファレンスポイントが前記設定されたユーザリファレンスポイントに対して移動するとき、前記アンカーポイントを前記仮想ターゲット線上に維持する工程と、
前記設定されたコントローラリファレンスポイントが前記設定されたユーザリファレンスポイントに対して移動するとき、前記第１仮想ディスクの前記第１半径を前記ユーザに対して一定に維持する工程と、
前記設定されたコントローラリファレンスポイントが前記設定されたユーザリファレンスポイントに対して移動し、かつ前記仮想フィーチャの前記位置および前記スケールのうちの少なくとも一方が調整されるとき、前記第２仮想ディスクの前記第２半径を前記仮想環境に対して一定に維持する、第２半径維持工程と、
前記設定されたコントローラリファレンスポイントが前記設定されたユーザリファレンスポイントに対して移動し、かつ前記仮想フィーチャの前記位置および前記スケールのうちの少なくとも一方が調整されるとき、前記半頂角を調整する工程と、を実行するよう構成される請求項１７に記載のシステム。
【請求項１９】
前記設定されたコントローラリファレンスポイントが前記設定されたユーザリファレンスポイントに対して移動するとき、前記第２仮想ディスクの前記第２半径を前記仮想環境に対して関して一定に維持する工程において、前記プロセッサは、
前記アンカーポイントが移動するとき、前記アンカーポイントを囲む定義された前記エリアにおける前記仮想フィーチャの前記一部を、定義された前記エリア内に維持する、工程と、
前記仮想フィーチャの前記位置および前記スケールのうちの少なくとも一方の調整と共に前記アンカーポイントが移動するとき、前記アンカーポイントを囲む定義された前記エリアにおける前記仮想フィーチャの前記一部の前記位置および前記スケールのうちの少なくとも一方を調整する工程と、を実行するよう構成される請求項１７に記載のシステム。
【請求項２０】
前記アンカーポイントを囲む、前記仮想フィーチャの定義された前記エリアは、前記第２仮想ディスクに対応し、前記アンカーポイントの移動に応答して前記仮想フィーチャの前記位置および前記スケールのうちの少なくとも一方が調整されるとき、前記第２仮想ディスクの仮想の前記半径は、前記仮想環境に関して一定のままである請求項１９に記載のシステム。
【国際調査報告】
2019502193.tif 000025
2019502193.tif 000026
2019502193.tif 000027