JP6535819B2 - 仮想現実環境におけるナビゲーション用制御システム - Google Patents

仮想現実環境におけるナビゲーション用制御システム Download PDF

Info

Publication number
JP6535819B2
JP6535819B2 JP2018524722A JP2018524722A JP6535819B2 JP 6535819 B2 JP6535819 B2 JP 6535819B2 JP 2018524722 A JP2018524722 A JP 2018524722A JP 2018524722 A JP2018524722 A JP 2018524722A JP 6535819 B2 JP6535819 B2 JP 6535819B2
Authority
JP
Japan
Prior art keywords
virtual
reference point
user
point
feature
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2018524722A
Other languages
English (en)
Other versions
JP2019502193A (ja
Inventor
ビュールマン、マティアス
フィレモン ケーザー、ドミニク
フィレモン ケーザー、ドミニク
ワン、チュン−ポ
シーグミラー、マシュー
ハーデスティ パーカー、エバン
ハーデスティ パーカー、エバン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Publication of JP2019502193A publication Critical patent/JP2019502193A/ja
Application granted granted Critical
Publication of JP6535819B2 publication Critical patent/JP6535819B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04815Interaction with a metaphor-based environment or interaction object displayed as three-dimensional, e.g. changing the user viewpoint with respect to the environment or object
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/20Perspective computation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/1613Constructional details or arrangements for portable computers
    • G06F1/163Wearable computers, e.g. on a belt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • G06F3/012Head tracking input arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • G06F3/013Eye tracking input arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • G06F3/014Hand-worn input/output arrangements, e.g. data gloves
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/017Gesture based interaction, e.g. based on a set of recognized hand gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/0304Detection arrangements using opto-electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04842Selection of displayed objects or displayed text elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04845Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range for image manipulation, e.g. dragging, rotation, expansion or change of colour
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/0486Drag-and-drop
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/003Navigation within 3D models or images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformation in the plane of the image
    • G06T3/20Linear translation of a whole image or part thereof, e.g. panning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformation in the plane of the image
    • G06T3/40Scaling the whole image or part thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/038Indexing scheme relating to G06F3/038
    • G06F2203/0384Wireless input, i.e. hardware and software details of wireless interface arrangements for pointing devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/048Indexing scheme relating to G06F3/048
    • G06F2203/04806Zoom, i.e. interaction techniques or interactors for controlling the zooming operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/21Collision detection, intersection

Description

本願は、一般に拡張現実および/または仮想現実環境における移動およびスケーリングに関する。
拡張現実(AR)および/または仮想現実(VR)システムは、3次元(3D)の没入型仮想環境を生成し得る。ユーザがディスプレイ装置を見る時に覗くディスプレイ、眼鏡、またはゴーグルを含む、例えば、ヘルメットまたは他のヘッドマウント装置等の様々な電子装置、センサの取り付けられたグローブ、センサを含む外部のハンドヘルド装置、および他のそのような電子装置との対話を通じて、ユーザはこの3Dの没入型仮想環境を体験し得る。3D仮想環境に没入すると、仮想環境と対話するためのおよび仮想環境との対話をパーソナライズするための物理的な動きおよび/または電子装置の操作を通じて、ユーザは、仮想環境中を移動し、仮想環境の他のエリアに移動してよい。
本明細書に記載される実装による、ヘッドマウントディスプレイ装置およびコントローラを含む仮想現実システムの例示的な実装の図。 例示的なヘッドマウントディスプレイの斜視図。 例示的なヘッドマウントディスプレイの斜視図。 本明細書に記載される実装による、コントローラを説明する図。 本明細書に記載される実装による、ヘッドマウント電子装置およびコントローラのブロック図。 本明細書に記載される実装による、拡張および/または仮想現実環境におけるナビゲーションおよびスケーリング(スケール変更)を説明するサードパーソンビュー。 本明細書に記載される実装による、拡張および/または仮想現実環境におけるナビゲーションおよびスケーリングを説明するサードパーソンビュー。 本明細書に記載される実装による、拡張および/または仮想現実環境におけるナビゲーションおよびスケーリングを説明するサードパーソンビュー。 本明細書に記載される実装による、拡張および/または仮想現実環境におけるナビゲーションおよびスケーリングを説明するサードパーソンビュー。 本明細書に記載される実装による、拡張および/または仮想現実環境におけるナビゲーションおよびスケーリングを説明するサードパーソンビュー。 本明細書に記載される実装による、拡張および/または仮想現実環境におけるナビゲーションおよびスケーリングを説明するサードパーソンビュー。 本明細書に記載される実装による、拡張および/または仮想現実環境におけるナビゲーションおよびスケーリングを説明するサードパーソンビュー。 本明細書に記載される実装による、拡張および/または仮想現実環境におけるナビゲーションおよびスケーリングを説明するサードパーソンビュー。 本明細書に記載される実装による、拡張および/または仮想現実環境におけるナビゲーションおよびスケーリングを説明するサードパーソンビュー。 本明細書に記載される実装による、拡張および/または仮想現実環境におけるナビゲーションおよびスケーリングを説明するサードパーソンビュー。 本明細書に記載される実装による、拡張および/または仮想現実環境におけるナビゲーションおよびスケーリングを説明するサードパーソンビュー。 本明細書に記載される実装による、拡張および/または仮想現実環境におけるナビゲーションおよびスケーリングを説明するサードパーソンビュー。 本明細書に記載される実装による、拡張および/または仮想現実環境におけるナビゲーションおよびスケーリングを説明するサードパーソンビュー。 本明細書に記載される実装による、拡張および/または仮想現実環境における仮想フォトスフィアでの移動を説明する図。 本明細書に記載される実装による、拡張および/または仮想現実環境における仮想フォトスフィアでの移動を説明する図。 本明細書に記載される実装による、拡張および/または仮想現実環境におけるナビゲーティングおよびスケーリングの方法のフローチャート。 本明細書に記載される技術を実装するために使用可能なコンピュータ装置およびモバイルコンピュータ装置の例を示す図。
1つの態様では、方法は、仮想環境を生成する工程と、ヘッドマウントディスプレイ装置と通信をするコントローラのユーザインターフェイスにおいて、第1入力を検出する工程と、第1入力に応答して、仮想環境において選択された仮想フィーチャにアンカーポイントを設定する、工程と、第2入力を検出する工程と、第2入力に応答して、アンカーポイントを囲むフィーチャのエリアを定義する工程と、仮想環境のユーザ視界内で、定義されたエリア内に仮想フィーチャの一部を維持しつつ、仮想環境における仮想フィーチャの位置およびスケールのうちの少なくとも一方を調整する工程と、を備える方法でよい。
別の態様では、システムは没入型仮想環境を生成するよう構成されたコンピュータ装置を備え、コンピュータ装置は、実行可能な命令を記憶するメモリと、命令を実行するよう構成されたプロセッサと、を有してよい。プロセッサは、コンピュータ装置に、仮想環境を生成する工程と、ヘッドマウントディスプレイ装置と通信をするコントローラのユーザインターフェイスにおいて、第1入力を検出する工程と、第1入力に応答して、仮想環境において選択された仮想フィーチャにアンカーポイントを設定する工程と、第2入力を検出する工程と、第2入力に応答して、アンカーポイントを囲むフィーチャのエリアを、定義する工程と、仮想環境のユーザ視界内で、定義されたエリア内に仮想フィーチャの一部を維持しつつ、仮想環境における仮想フィーチャの位置およびスケールのうちの少なくとも一方を調整する工程と、を実行させてよい。
1つまたは複数の実装の詳細は、添付の図面および下記の記載に説明される。他の特徴は記載および図面、ならびに請求項から明らかとなる。
3D仮想環境に没入した、例えば、ヘッドマウントディスプレイ(HMD)装置を装着したユーザは、様々な異なる種類の入力を通じて3D仮想環境を探検し、また3D仮想環境と対話してよい。これらの入力は、例えば、HMDと別個の電子装置の操作、HMD自体の操作、および/または手/腕のジェスチャーを通じた、頭の動きおよび/または頭および/または眼の方向的な注視、その他を含む、例えば物理的な対話を含んでよい。ユーザは、これらの異なる種類の対話のうちの1つまたは複数を実装して、仮想環境における特定の動作、例えば仮想環境中の移動もしくはユーザに関しての仮想環境の移動、仮想環境の第1エリアから仮想環境の第2エリアへの移動、遷移、またはテレポーティング、仮想環境が体験されるパースペクティブの調整、その他を実行してよい。
本明細書に記載される実装によるシステムおよび方法は、仮想環境におけるフィーチャの操作を行ってよく、仮想環境を通じ移動またはナビゲーションを行ってよく、およびユーザが異なるパースペクティブおよびスケールから仮想環境を見て体験することを可能にしてよい。本明細書に記載される実装によるシステムおよび方法はまた、仮想現実において体験される動的な視覚の移動とその動的な視覚の移動に対応する実際の物理的な運動の欠如との断絶にしばしば関連する、運動酔いおよび方向感覚の喪失を避ける一方、仮想現実における実質的にシームレスな仮想移動体験をユーザに提供してよい。
図1に示す例示的な実装において、HMD100を装着したユーザは、ハンドヘルド電子装置102を持っている。ハンドヘルド電子装置102は、例えば、HMD100により生成された没入型仮想環境における対話のため、HMD100とペアリングされ通信してよいコントローラ、ジャイロマウス、スマートフォン、ジョイスティック、または別のポータブルなコントローラでよい。以下では、単に検討および説明を簡単にするため、ハンドヘルド電子装置102はコントローラ102と称する。コントローラ102は、例えば、有線接続または例えばWiFiまたはBluetooth(登録商標)接続等の無線接続を介して、HMD100と操作可能にカップリングすなわちペアリングされてよい。コントローラ102とHMD100とのこのペアリングすなわち操作可能のカップリングは、コントローラ102とHMD100との通信およびコントローラ102とHMD100との間のデータの交換を提供してよい。これにより、コントローラ102は、HMD100により生成された没入型仮想環境における対話を行うため、HMD100と通信をするコントローラとして機能することが可能になってよい。つまり、コントローラ102は複数の異なる方法で操作されてよい。コントローラ102の操作は、HMD100により生成された没入型仮想環境において、対応する選択もしくは動き、または他の種類の対話に解釈されてよい。これは、例えば、仮想オブジェクトとの対話、操作、または調整と、仮想環境に関するスケールまたはパースペクティブにおける変化と、仮想環境における現在地から仮想環境における選択された目的地またはフィーチャへのユーザの移動(例えばナビゲーション、テレポーテーション、トランスポート)と、他のそのような対話とを含んでよい。いくつかの実装では、上に検討されたように、ユーザは、仮想環境における仮想フィーチャと、ユーザの手を検出および追跡するよう装備されたシステムにより検出される手のジェスチャー等の物理的なジェスチャーを通じて、別個のコントローラの使用に頼ることなく、対話してよい。
図2Aおよび図2Bは、例えば、図1においてユーザに装着されるHMD100等の例示的なHMDの斜視図である。図2Cは、例えば、図1に示されるコントローラ102等の例示的なコントローラを説明する図である。
コントローラ102は、装置102の内部の構成要素が収容されたハウジング103と、ハウジング103の外側にあり、ユーザがアクセス可能なユーザインターフェイス104とを含んでよい。ユーザインターフェイス104は、例えば、ユーザタッチ入力を受信するよう構成されたタッチセンシティブ面106と、ボタン、ノブ、ジョイスティック、トグル、スライド、および他のそのような操作装置を含む操作装置105と、を含む複数の異なる種類の操作装置を含んでよい。いくつかの実装では、コントローラ102はまた、ユーザインターフェイス104において受信されるユーザ入力に応答して、例えばハウジング103におけるポートを通じて例えばビームまたは光線等の光を選択的に放つよう構成された光源108を含んでよい。
HMD100は、フレーム120に接続されたハウジング110と、例えばヘッドホンに搭載されたスピーカを含む、同じくフレーム120に接続されたオーディオ出力装置130とを含んでよい。図2Bにおいて、ハウジング110に収容されている構成要素のいくつかが見えるように、ハウジング110のフロント部分110aは、ハウジング110のベース部分110bから回転して遠ざけられている。ディスプレイ140は、ハウジング110のフロント部分110aの内部に面する側に搭載されてよい。レンズ150は、フロント部分110aがハウジング110のベース部分110bに対して閉位置にある場合、ハウジング110において、ユーザの眼とディスプレイ140との間に搭載されてよい。いくつかの実装においては、HMD100は、例えば、オーディオセンサ、画像/光センサ、位置センサ(例えばジャイロスコープおよび加速度計を含む慣性計測装置)等の様々なセンサを含むセンシングシステム160を含んでよい。HMD100はまた、HMD100の動作を行うため、プロセッサ190および様々な制御システム装置を含む制御システム170を含む。
いくつかの実装では、HMD100は、静止画および動画を取得するカメラ180を含んでよい。カメラ180が取得する画像は、現実世界におけるユーザおよび/またはコントローラ102物理的な位置の追跡を補助するために使用されてよく、および/またはパススルーモードにおいてディスプレイ140においてユーザに表示されてよく、HMD100を外したりなど、ハウジング110をユーザの視線の外に動かすようにHMD100の構成を変更することなく、ユーザが一時的に仮想環境を離れて物理的環境に戻ることを可能にする。
いくつかの実装では、HMD100は、ユーザの眼の注視を検出および追跡する注視追跡装置165を含んでよい。注視追跡装置165は、ユーザの眼の画像、例えば瞳孔等のユーザの眼の特定の部分の画像を取得し、ユーザの注視の方向および動きを検出および追跡する、例えば単一の画像センサ165Aまたは複数の画像センサ165Aを含んでよい。いくつかの実装では、HMD100は、検出される注視がユーザ入力として処理され、没入型仮想体験において対応する対話に解釈されるよう構成されてよい。
拡張および/または仮想現実環境におけるナビゲーションの操作および制御を提供するシステムのブロック図が図3に示されている。システムは、第2電子装置302と通信をする第1電子装置300を含んでよい。第1電子装置300は、図1、図2A、および図2Bに関して上記されるように、例えばHMDであってよく、没入型仮想環境を生成する。第2電子装置302は、図1および図2Cに関して上記されるように、例えばコントローラであってよく、第1電子装置300により生成される没入型仮想環境とのユーザ対話を行うために第1電子装置300と通信をする。
第1電子装置300は、図2Aおよび図2Bに示されるセンシングシステム160および制御システム170にそれぞれ類似してよいセンシングシステム360および制御システム370を含んでよい。センシングシステム360は、例えば、光センサ、オーディオセンサ、画像センサ、距離/近接センサ、位置センサ(例えばジャイロスコープおよび加速度計を含む慣性計測装置)、および/または他のセンサ、および/または図2Bに示される注視追跡装置165等の、例えばユーザの眼の注視を検出および追跡するために設置された画像センサ、を含むセンサの異なる組み合わせ、を含む1つまたは複数の異なる種類のセンサを含んでよい。制御システム370は、例えば、電源/ポーズ制御装置、オーディオおよびビデオ制御装置、光学制御装置、遷移制御装置、および/または他のそのような装置、および/または装置の異なる組み合わせを含んでよい。センシングシステム360および/または制御システム370は、特定の実装によって、より多くの、またはより少ない、装置を含んでよい。センシングシステム360および/または制御システム370に含まれる要素は、例えば図2Aおよび図2Bで示されるHMD100以外のHMD内部で、異なる物理的配列(例えば異なる物理的場所)を有してよい。第1電子装置300はまた、センシングシステム360および制御システム370と通信をするプロセッサ390、メモリ380、および第1電子装置300と別の例えば第2電子装置302等の外部装置との間に通信を提供する通信モジュール350を含んでよい。
第2電子装置302は、第2電子装置302と別の例えば第1電子装置300等の外部装置との間に通信を提供する通信モジュール306を含んでよい。第1電子装置300と第2電子装置302との間のデータの交換を提供することに加えて、通信モジュール306はまた、上記のように光線またはビームを放つように構成されてよい。第2電子装置302は、例えばカメラおよびマイクロフォンに含まれるような画像センサおよびオーディオセンサを含むセンシングシステム304、慣性計測装置、コントローラまたはスマートフォンのタッチセンシティブ面に含まれるようなタッチセンサ、および他のそのようなセンサ、ならびに/またはセンサの異なる組み合わせを含んでよい。プロセッサ309は、第2電子装置302のセンシングシステム304および制御ユニット305と通信をしてよい。制御ユニット305はメモリ308へのアクセスを有し、また第2電子装置302の全体の動作を制御する。
上で述べられた通り、例えば上記のコントローラ102等のコントローラは、仮想環境における対話およびナビゲーションのため、しばしば上記のHMD100の機能と組み合わせて、ユーザにより操作されてよい。これの例示的な実装が図4A乃至4Eに示される。
ユーザにより体験される仮想環境を生成するHMD100を装着したユーザは、コントローラ102を操作し、仮想環境400において仮想オブジェクトおよび仮想フィーチャをナビゲートおよび操作してよい。図4Aに示されるように、固定の、設定されたコントローラリファレンスポイント410は、コントローラ102が動くときにコントローラ102に対して固定状態で留まってもよいが、コントローラ102に関連付けられ得る。以下では、単に検討および説明を簡単にするため、設定されたコントローラリファレンスポイント410は、図面において仮想クロスヘアのセットとして図示される。設定されたコントローラリファレンスポイント410は仮想クロスヘアの交差箇所に存在している。設定されたコントローラリファレンスポイント410/仮想クロスヘア410は、ユーザが仮想環境400において仮想オブジェクトおよびフィーチャに対してコントローラ102を動かすときに、コントローラ102と共に動き、コントローラ102に関し固定位置に留まってよい。図4Aに示される例では、仮想クロスヘア410は、コントローラ102に対する固定位置に留まり、基本的にコントローラ102と共に動く、仮想の表現、つまりアイコンを含む。仮想クロスヘア410は、単に検討および説明を簡単にするため、以下においてこのように表現される。しかしながら、いくつかの実施形態では、仮想クロスヘア410は、コントローラ102に対する空間における既知の位置(コントローラ102および/またはHMD100に検出される)を表現してよいが、ユーザに対して可視表現、つまりアイコンの形態でレンダリングされなくてよく、そのため、仮想環境400における仮想オブジェクトおよびフィーチャに対するユーザのビューおよびアクセスが、仮想クロスヘア410の可視表現により不明瞭にされない。
図4Aは、ユーザの仮想フィーチャ450との仮想対話の開始を説明する。仮想フィーチャ450は、仮想対話の開始のユーザにより見られるように示される。図4Aに示されるように、仮想環境400におけるユーザの仮想フィーチャ450との対話の開始時、例えば時間t=0において、ユーザは、仮想フィーチャ450に関連付けられたアンカーポイント420を定義してよい。図4Aにおいて、アンカーポイント420は、例えば、ユーザが仮想環境400において移動、および/または仮想オブジェクトおよびフィーチャに対して位置および/またはパースペクティブを変更するときに、ユーザが自分の視界に留めたいと望む仮想フィーチャ450の部分を識別してよい。ユーザの仮想フィーチャ450との対話の開始時、つまり時間t=0において、アンカーポイント420は、仮想ターゲット線415により定義されてよい。その仮想ターゲット線415は、設定されたユーザリファレンスポイント100Aから延長し、ユーザリファレンスポイント100Aおよび/または仮想クロスヘア410を動かすユーザにより制御されてよい仮想ターゲット線415の方向により定義される仮想フィーチャ450の選択された部分と仮想クロスヘア410を通じて交差する。
ユーザリファレンスポイント100Aは、例えば、ユーザの眼の位置またはその近くの位置、ユーザの眼の間の場所に対応する位置、または他の設定された位置等、HMD100における設定された場所で定義されてよい。この設定されたユーザリファレンスポイント100Aは、ユーザおよび特にユーザの頭が仮想環境400において動いて位置/方向を変更するときに、HMD100上でまたはHMD100に対して設定されたまま、つまり一定のままでよい。同様に、コントローラ102に対する仮想クロスヘア410の場所/位置/方向は、ユーザおよび特にユーザの腕/コントローラ102を持つ手が仮想環境において場所/位置/方向を変更するときに、コントローラ102上でまたはコントローラ102に対して設定されたまま、つまり一定の位置のままでよい。HMD100の場所および位置/方向ならびにHMD100に対するコントローラ102の場所および位置/方向は、実質的にリアルタイムで、システムにより検出および追跡されてよく、設定されたユーザリファレンスポイント100Aの一定の場所およびコントローラ102に対する仮想クロスヘア410の一定の場所もまた、実質的にリアルタイムで、検出および追跡されてよい。
図4Aに示される例において、設定されたユーザリファレンスポイント100Aから仮想クロスヘア410を通じて、選択されたアンカーポイント420まで延長している仮想ターゲット線415は、点線で表現される。しかしながら、いくつかの実装では、仮想ターゲット線415は、必ずしもユーザにより見られる可視表現またはオブジェクトとしてレンダリングされなくてよく、そのため、仮想環境における仮想オブジェクトおよびフィーチャに対するユーザのビューおよびアクセスが、仮想ターゲット線420の可視表現により不明瞭にされない。いくつかの実装においては、可視表現、例えばドットは、仮想ターゲット線415により識別される仮想フィーチャ450上の点にアンカーポイント420としてレンダリングされてよい。ユーザのビューの例、つまり、ユーザがアンカーポイント420を設定したときの、図4Aに示す仮想フィーチャ450に対するユーザの仮想位置からのパースペクティブは、図4Bに示される。図4Aに示される構成は、例えば、ボタンまたはトリガを押下する等、コントローラ102のユーザインターフェイス104において装置を操作することによる、ユーザの仮想フィーチャ450との対話の開始、つまり時間t=0を表現してよい。
ボタンまたはトリガの押下(またはコントローラ102のユーザインターフェイス104における他の操作装置の始動)は、図4Aに示されるように、アンカーポイント420を識別及び設定するために使用されてよい。アンカーポイント420を設定した後、ユーザの動き、例えば、頭と手/腕の動き、および、仮想クロスヘア410を通じてアンカーポイント420まで延長している、仮想ターゲット線415の対応する動き(ユーザの頭上の設定されたユーザリファレンスポイント100Aの動きおよびユーザの手に持たれたコントローラ102の動きによる)は、仮想環境400において仮想フィーチャ450を移動およびスケール変更してよい。例えば、アンカーポイント420が上記のように設定されると、図4Cに示されるような仮想ターゲット線415の(ボタンまたはトリガは押下されたまま図4Aに示される位置からの)下方運動は、アンカーポイント420の下方移動を生じてよく、仮想環境400のスケールにおける変化(ユーザの足は仮想地面に着いたまま、かつ仮想フィーチャ450は仮想地面に着いたままであるが)、および特に、仮想環境400においてアンカーポイント420によりアンカーされた仮想フィーチャ450のスケール、および、図4Dに示されるように、仮想フィーチャ450に対するユーザのビューまたはパースペクティブにおける変化をもたらす結果となる。
同様に、アンカーポイント420が上記のように設定されると、図4Eに示されるような仮想ターゲット線415の(例えばボタンまたはトリガは押下されたまま図4Aに示される位置からの)上方運動は、アンカーポイント420の上方移動を生じてよく、仮想環境400のスケールにおける変化、および特に、仮想環境400においてアンカーポイント420によりアンカーされた仮想フィーチャ450に対するユーザのスケールまたはパースペクティブ、および、図4Fに示されるように、フィーチャに対するユーザのビューまたはパースペクティブにおける変化をもたらす結果となる。
仮想環境においてスケールの調整をすることは、仮想環境における仮想フィーチャに対するユーザのサイズにおける変化(増加または減少)もしくは仮想環境における仮想フィーチャに対するユーザのパースペクティブにおける対応する変化であってよい(または変化、すなわち、仮想環境におけるユーザに対する仮想フィーチャのサイズにおける増加または減少であると考えられてよい)。例えば、ユーザは、ユーザが仮想環境を、ユーザのパースペクティブからあたかも仮想環境における仮想フィーチャに対する自身のサイズが増加したかのように(および/または仮想フィーチャのサイズ/スケールが減少して見えるように)経験するように、スケールアップをすることを選択してよい。同様に、ユーザは、ユーザが仮想環境を、ユーザのパースペクティブからあたかも仮想環境における仮想フィーチャに対する自身のサイズが減少したかのように(および/または仮想フィーチャのサイズ/スケールが増加して見えるように)経験するように、スケールダウンをすることを選択してよい。仮想環境におけるこの種のスケーリングは、ユーザのサイズ/スケーリング、特に仮想環境における仮想フィーチャに対するユーザのパースペクティブにおける仮想調整、または仮想環境におけるユーザに対する仮想フィーチャのサイズ/スケーリングにおける仮想調整と考えられてよい。以下では、単に検討を簡単にするため、スケーリングは、仮想フィーチャに対するユーザのサイズ/スケールの仮想調整および/または仮想環境における仮想フィーチャのサイズ/スケールの仮想調整を含むものと考えられる。図4Aに示される位置から図4Cに示される位置(図4Cにおいてゴースト像として点線で図示される)へのおよび/または図4Aに示される位置から図4Eに示される位置(図4Eにおいてゴースト像として点線で図示される)への運動は、例示的な上および下方運動、ならびに仮想環境400における仮想フィーチャ450の対応する移動および/または仮想環境400に対するユーザのスケーリング(またはユーザに対する仮想環境400のスケーリング)を説明する。しかしながら、他の方向への動き(ボタンまたはトリガは押下されたまま)もまた、アンカーポイント420を、対応する動きを通じて、選択された仮想フィーチャ450の識別された部分にアンカーされたままにさせてよい。例えば、右への運動は、仮想フィーチャ450がユーザの回りを動くまたは周回するエフェクトを生じてよい。同様に、ユーザの腕がユーザに接近する運動は、仮想フィーチャ450へ接近するズームのエフェクトを生じてよい。
ある動作に応答して、システムは、設定されたユーザリファレンスポイント、コントローラ102に対する仮想クロスヘア410の位置、および設定された仮想リファレンスポイント400Aに関連付けられたある固定のパラメータを用いてよい。仮想リファレンスポイント400Aは、実質的に静止したままであり、様々な運動および/またはフィーチャの移動および/または上記のようなスケーリングを通じて変わらない。以下では、設定された仮想リファレンスポイント400Aは、仮想環境400において仮想地面に対応するリファレンス平面または仮想床面とする。つまり、図5に示される例に図示されるように、例示的な下方運動(点線で示される腕/手/コントローラ位置から、実線で示される腕/手/コントローラ位置まで)に応答して、システムはある固定のパラメータを用いて、ユーザは仮想フィーチャ450をスケール変更して、全て仮想ターゲット線415の範囲であるような、スケール変更済みフィーチャ450A、スケール変更済みフィーチャ450B、またはスケール変更済みフィーチャ450Cにすることを意図しているかどうかの判定をしてよい。これは、図6A乃至図6Fを参照してより詳細が説明される。
図6Aにおいて、仮想環境400における仮想フィーチャ450との対話の開始時(例えば時間t=0時)、ユーザは、以下で仮想地面400Aとして考えられる、仮想リファレンス平面400A上の仮想フィーチャ450に面して位置してよい。図6Aに示される例では、時間t=0時、ユーザは腕を伸ばしてコントローラ102を持つため、仮想ターゲット線415はユーザが設定したリファレンスポイント100Aから、仮想クロスヘア410を通じて仮想フィーチャ450まで延長して、アンカーポイント420を設定する。いくつかの実装においては、仮想クロスヘア410のサイズまたは寸法(高さおよび幅)は一定でよく、または、例えば特定の用途のためにもしくはユーザ、システム等によって設定されてよい。仮想クロスヘア410の設定された寸法は、時間t=0時に第1ディスクd1を定義してよい。第1ディスクd1は、仮想クロスヘア410の設定された寸法により定義される一定の半径r1を有する。例えば、ボタンまたはトリガを押下する等、コントローラ102のユーザインターフェイス104上の装置を操作することによる、ユーザの仮想フィーチャ450との対話の開始時に、つまりt=0時に、図4Aに示されるユーザに何が見え得るかの例は、図6Bに図示される。
第1ディスクd1は、円錐440を定義してよい。その円錐440は、設定されたユーザリファレンスポイント100Aを始点とし、アンカーポイント420を囲む平面に向かって第1ディスクd1に接するように延びている。t=0時に、角度αは、設定されたユーザリファレンスポイント100Aおよび第1ディスクd1により定義される円錐440の半頂角として定義されてよい。半径r2を有する第2ディスクd2は、アンカーポイント420に対応する距離において、すなわち、アンカーポイント420に対応/を包含する、仮想ターゲット線415と実質的に垂直な仮想平面において、円錐440を通る断面として定義されてよい。
図6Aに示されるようにセットされると、仮想半径r2は、仮想環境400に対して固定のまま、つまり仮想環境400に関して一定のままでよい。つまり、セットされると、仮想環境400に対して一定の仮想半径r2を有する、第2ディスクd2の領域内に取り込まれた仮想フィーチャ450の部分は、図6Bに示されるように、同一のままでよく、他方、第2ディスクd2内に取り込まれた仮想フィーチャ450の部分を含む仮想フィーチャ450は、ユーザがアンカーポイント420を動かすことに応答して、移動および/またはスケール変更される。これは、図6C乃至図6Fを参照してより詳細が記載される。
図6Cは、その後の時点、t>0を図示し、アンカーポイント420の下方運動および仮想フィーチャ450のスケーリングダウンに対応する、仮想ターゲット線415の下方運動を説明する。図6Aに示される位置から図6Cに示される位置(以下により詳細が記載される)への運動後に、図4Cに示されるユーザに何が見え得るかの例が、図6Dに図示される。図6Eは、その後の時点、t>0を図示し、アンカーポイント420への接近運動に対応する、設定されたユーザリファレンスポイント100Aに近づく、第1ディスクd1の内側運動および、ユーザと仮想フィーチャ450との間の知覚される仮想距離の減少を説明する。図6Aに示される位置から図6Eに示される位置(以下により詳細が記載される)への運動後に、図4Eに示されるユーザに何が見え得るかの例が、図6Fに図示される。
図6Aに関して上記されるように、アンカーポイント420を設定後、その後の各々の時点t>0(例えばt1,t2,…tN)において、角度αtは、設定されたユーザリファレンスポイント100Aおよび第1ディスクd1tにより定義される円錐440の半頂角として算出されてよい。その後の各々の時点t>0において、第1ディスクd1tの半径r1はユーザに対して一定/固定(仮想クロスヘア410の寸法が一定のとき)のままである。その後の各々の時点t>0において、第2ディスクd2tの仮想半径r2は、アンカーポイント420が動き仮想ターゲット線415上に留まるとき、仮想環境400に対して一定/固定のままである。仮想リファレンス平面400A、つまり仮想地面400Aもまた固定、つまり一定のままであり、現実世界の地面と一致したままである。しかしながら、設定されたユーザリファレンスポイント100Aと第1ディスクd1tとの間の距離は、コントローラ102を持つユーザの腕/手が動くとき、変化してよい。これにより、その後の時点t>0(例えば、t1,t2,…tN)において、上記のようにユーザがアンカーポイント420を動かすことに応答して、半頂角αtもまた変化させてよい。第1ディスクd1tの半径r1はユーザに対して一定のままかつ第2ディスクd2tの仮想半径r2は仮想環境400に対して一定のままであり、アンカーポイント420は仮想ターゲット線415上に留まり、および仮想リファレンス平面400Aは現実世界の地面と一致したままである一方、アンカーポイント420がこのように移動するときに、半頂角αtを再計算することで、図示のように仮想環境を移動および/またはスケール変更することを可能にする。
図6A乃至図6Eに示す例において、設定されたコントローラリファレンスポイント410を囲むエリアを表示する第1ディスクd1/dtは、設定されたコントローラリファレンスポイント410に交差箇所がある仮想クロスヘアに基づきディスクとして定義される。設定されたコントローラリファレンスポイント410を囲むエリアが円形ディスク形状を有し、アンカーポイント420を囲むエリア、アンカーポイント420を囲むエリアが円形ディスク形状を有する、円錐で定義されたこの例示的なジオメトリにより、コントローラの動きに応答してユーザおよび/または仮想フィーチャがスケール変更されるときに、半頂角αの計算および追跡/調整を行い、および減少した処理量を生成してよい。しかしながら、円形ディスクは、単に検討および説明を簡単にするために示されるものであり、設定されたコントローラリファレンスポイント410を囲むエリアは、他の閉曲線形状を有してよい。同様に、図6A乃至図6Eに示す例において、円錐440は、設定されたユーザリファレンスポイント100Aを始点とし、第1ディスクd1と接するように伸び、第1ディスクd1を超えるジオメトリにより定義されている。しかしながら、このジオメトリはまた、設定されたユーザリファレンスポイント410を囲む、定義されたエリアのジオメトリに基づき異なってよい。同様に、図6A乃至図6Eに示す例において、アンカーポイント420を囲むエリアは、円形ディスクとして定義される。しかしながら、アンカーポイント420を囲むこのエリアの形はまた、設定されたコントローラリファレンスポイントを囲むエリアの閉曲線形状と、このジオメトリの仮想フィーチャ450の平面との交差箇所までの延長とにより定義される。
図7Aに示されるように、いくつかの実装では、1つまたは複数の仮想フォトスフィア570(例えば、第1、第2、および第3の仮想フォトスフィア570A、570B、570C)は、仮想環境における選択のため、ユーザに利用可能であってよい。各フォトスフィアは、仮想環境における例えば特定のフィーチャ、場所等の360度のパノラミックな体験を提供してよい。仮想フォトスフィア570の1つに移動するには、ユーザは、例えば、上記のようにハンドヘルド電子装置102により生成される仮想ビーム500を、例えば第3の仮想フォトスフィア570C等の仮想フォトスフィア570のうちの選択された1つに向けて、図7Aに示されるように、仮想フィーチャ550の内部の360度のパノラミックな体験に移動してよい。ハンドヘルド電子装置102をさらに操作すると、例えば、仮想ビーム550を選択された仮想フォトスフィア570Cに向けているボタンを離すと、ユーザは、図7Bに示されるように、選択された仮想フォトスフィア570Cに移動されて、つまりテレポートやトランスポートされてよい。
選択された仮想フォトスフィア570に移動、つまりトランスポーティングやテレポーティングをする場合、ユーザは、上記で詳細に検討されたように、仮想環境におけるフィーチャに対するスケールを調整する選択をしてよい。特に、選択された仮想フォトスフィア570に移動する場合、ユーザは、上記で詳細に記載されたように、選択された仮想フォトスフィア570により提供される360度のパノラミックな体験に含まれた仮想要素に対して、サイズ/スケールが増加またはサイズ/スケールが減少する選択をしてよい。
仮想フォトスフィア570の内側に入ると、ユーザは仮想フォトスフィア570内を移動してよい。例えば、ユーザは、仮想フォトスフィア570により提供される360度のパノラミックな体験の異なる部分を見るために向きを変えてよく、および/またはユーザは、仮想フォトスフィア570により提供される360度のパノラミックな体験における仮想要素に接近または近づくために、図8Bに示されるように、仮想フォトスフィア570内で仮想位置Cから仮想位置D(virtual positon D)まで歩いてよい。いくつかの実装では、ユーザは、例えば、仮想フォトスフィア570内を、仮想フォトスフィア570内の360度のパノラミックな仮想ディスプレイの端と考えられてよい所まで歩いてよい。仮想フォトスフィア570の360度のパノラミックな体験に表示される、ユーザの前に表示される仮想要素は、ユーザが仮想要素の方向に歩く、または接近するにつれて、より大きく見える。同様に、ユーザが振り返る、例えば、仮想位置Dに到着後に向きを180度変える場合、ユーザが仮想フォトスフィア570のその部分に表示された仮想要素から歩いて離れたため、かつてユーザの背後にあったその仮想要素は小さく見えてよい。
本明細書に記載の実施形態による、拡張および/または仮想現実環境における、ナビゲーティングおよび/またはスケーリングの方法700は、図8に示される。仮想フィーチャの選択を検出すると(ブロック710)、仮想アンカーポイントを設定するリクエストが受信されたか否かが判定されてよい(ブロック720)。仮想アンカーポイントを設定するリクエストは、例えば、図4Aおよび図6Aに関して上記で詳細に記載されたように、ユーザによる入力でよい。仮想アンカーポイントを設定するリクエストが受信された場合は、仮想アンカーポイントが設定されてよい(ブロック730)。仮想アンカーポイントが設定され、かつ仮想環境に対するユーザの位置、ビュー、パースペクティブ、またはスケールを調整するリクエスト(またはユーザに対するスケール仮想環境をスケール変更するリクエスト)が受信された場合は(ブロック750)、システムは、受信されたリクエストに従って、図4B乃至図4Fおよび図6B乃至6Fに関して上記で詳細に記載されたように、位置および/またはビューおよび/またはパースペクティブおよび/またはスケールを調整してよい(ブロック760)。仮想アンカーポイントが設定されないが、選択された仮想フィーチャに対してユーザの位置を移動するかそうでなければ調整するリクエストが受信された場合は(ブロック740)、システムは、リクエストされた調整を、受信されたリクエストに従って、実行してよい(ブロック760)。リクエストされた仮想調整が完了すると(ブロック770)、プロセスは、仮想体験が終了するまで繰り返されてよい(ブロック780)。
図9は、一般的なコンピュータ装置800および一般的なモバイルコンピュータ装置850の一例を示し、これらの装置は、本明細書に記載される技法とともに使用することができる。コンピューティング装置800は、ラップトップ、デスクトップ、タブレット、ワークステーション、携帯情報端末、テレビ、サーバ、ブレードサーバ、メインフレーム、および他の適当なコンピューティング装置等、様々な形態のデジタルコンピュータを表すことが意図される。コンピューティング装置850は、携帯情報端末、セルラ電話、スマートフォン、および他の同様のコンピューティング装置等、様々な形態のモバイル装置を表すことが意図される。本明細書に示される構成要素、それらの接続および関係、ならびにそれらの機能は、単に例示的なものにすぎず、本明細書に記載され、および/または特許請求される発明の実装を制限するものではない。
コンピューティング装置800は、プロセッサ802と、メモリ804と、記憶装置806と、メモリ804および高速拡張ポート810に接続している高速インターフェイス808と、低速バス814および記憶装置806に接続している低速インターフェイス812とを含む。プロセッサ802は、半導体ベースのプロセッサでよい。メモリ804は、半導体ベースのメモリでよい。構成要素802、804、806、808、810、および812の各々は、様々なバスを使用して相互接続され、適宜に、共通のマザーボード上に、または他の方法で取り付けることができる。プロセッサ802は、高速インターフェイス808に結合されたディスプレイ816等の、外部の入出力装置上に、GUIに関するグラフィカル情報を表示するための、メモリ804または記憶装置806に記憶された命令を含む、コンピューティング装置800内の実行の命令を処理することができる。他の実装では、複数のプロセッサおよび/または複数のバスは、適宜に、複数のメモリおよびメモリの種類とともに使用することができる。また、複数のコンピューティング装置800を(例えば、サーババンク、ブレードサーバのグループ、またはマルチプロセッサシステムとして)、必要な動作の一部分を提供する各装置と接続してもよい。
メモリ804は、コンピューティング装置800内の情報を記憶する。1つの実装では、メモリ804は、揮発性メモリユニットまたはユニットである。別の実装では、メモリ804は、不揮発性メモリユニットまたはユニットである。また、メモリ804は、磁気または光学ディスク等の別の形態のコンピュータ可読媒体でもよい。
記憶装置806は、コンピューティング装置800に大容量ストレージを提供することができる。1つの実装では、記憶装置806は、コンピュータ可読媒体(例えば、フロッピー(登録商標)ディスク装置、ハードディスク装置、光学ディスク装置、またはテープ装置)、フラッシュメモリもしくは他の同様の固体メモリ装置、またはストレージエリアネットワークもしくは他の構成の装置を含む装置のアレイであり得、またはそれらを含むことができる。コンピュータプログラム製品は、情報担体中に有形で実施され得る。また、コンピュータプログラム製品は、上述したもののように、実行時に、1つまたは複数のメソッドを実行する命令を含むことができる。情報担体は、メモリ804、記憶装置806、またはプロセッサ802上のメモリ等の、コンピュータ可読媒体または機械可読媒体である。
高速コントローラ808は、コンピューティング装置800に対する帯域幅を大量に使用する(bandwidth−intensive)操作を管理し、低速コントローラ812はより低い帯域幅を大量に使用する(lower bandwidth−intensive)操作を管理する。機能のそのような割振りは、例示的なものにすぎない。1つの実装では、高速コントローラ808は、(例えば、グラフィックスプロセッサまたはアクセラレータを介して)メモリ804、ディスプレイ816に、および、様々な拡張カード(図示せず)を受け付けることができる高速拡張ポート810に結合される。この実装では、低速コントローラ812は、記憶装置806と低速拡張ポート814とに結合されている。低速拡張ポートには、様々な通信ポート(例えば、USB、Bluetooth(登録商標)、イーサネット(登録商標)、ワイヤレスイーサネット)が含まれるが、これは、例えば、キーボード、ポインティング装置、スキャナ、またはスイッチもしくはルータなどのネットワーク装置等、1つまたは複数の入出力装置に、例えばネットワークアダプタを介して、結合することができる。
コンピューティング装置800は、図示のように、複数の異なる形態で実装することができる。例えば、コンピューティング装置800は、標準的なサーバ820として、またはそのようなサーバのグループにおいて複数台、実装することができる。加えて、コンピューティング装置800は、ラックサーバシステム824の一部として実装することもできる。さらに、コンピューティング装置800は、ラップトップコンピュータ822等のパーソナルコンピュータに実装することができる。あるいは、コンピューティング装置800の構成要素は、装置850等のモバイル装置(図示せず)の他の構成要素と組み合わせてもよい。このような装置の各々は、コンピューティング装置800、850のうちの1つまたは複数を含んでよく、互いに通信する複数のコンピューティング装置800、850によりシステム全体が構成されてよい。
コンピューティング装置850は、他の構成要素のうち、プロセッサ852と、メモリ864と、ディスプレイ854等の入出力装置と、通信インターフェイス866と、トランシーバ868とを含む。また、装置850は、追加のストレージを提供するために、マイクロドライブまたは他の装置等の記憶装置を備えてもよい。構成要素850、852、864、854、866、および868の各々は、様々なバスを使用して相互接続され、構成要素のうちのいくつかは、適宜に、共通のマザーボード上に、または他の方法で取り付けることができる。
プロセッサ852は、メモリ864に記憶された命令を含む、コンピューティング装置850内の命令を実行することができる。プロセッサは、別個の複数のアナログプロセッサとデジタルプロセッサを含むチップのチップセットとして実装することができる。プロセッサは、例えば、ユーザインターフェイス、装置850によって実行されるアプリケーション、および装置850による無線通信の制御等、装置850の他の構成要素の調整を行うことができる。
プロセッサ852は、ディスプレイ854に結合された制御インターフェイス858およびディスプレイインターフェイス856を介して、ユーザと通信をすることができる。ディスプレイ854は、例えば、TFT LCDディスプレイ(薄膜トランジスタ液晶ディスプレイ)もしくはOLED(有機発光ダイオード)ディスプレイ、または他の適切なディスプレイ技術であり得る。ディスプレイインターフェイス856は、グラフィカル情報および他の情報をユーザに提示するようにディスプレイ854を駆動するための適切な回路を備えることができる。制御インターフェイス858は、ユーザからコマンドを受信し、プロセッサ852へのサブミッションのためにそれらを変換することができる。加えて、プロセッサ852と通信をする外部インターフェイス862が提供されてもよく、それにより、装置850の他の装置との近距離通信が可能になる。外部インターフェイス862は、例えば、いくつかの実装では有線通信を、または他の実装では無線通信を行うことができ、また、複数のインターフェイスを使用してもよい。
メモリ864は、コンピューティング装置850内の情報を記憶する。メモリ864は、1つまたは複数のコンピュータ可読媒体、1つまたは複数の揮発性メモリユニット、または1つまたは複数の不揮発性メモリユニットとして実装することができる。また、拡張メモリ874が提供され、例えば、SIMM(シングルインラインメモリモジュール)カードインターフェイスを含むことができる拡張インターフェイス472を介して装置850に接続され得る。このような拡張メモリ874は、装置850に追加のストレージスペースを提供することができ、または装置850にアプリケーションもしくは他の情報を記憶することができる。具体的には、拡張メモリ874は、上述の処理を実行または補足するための命令を含むことができ、安全な情報も含むことができる。したがって、例えば、装置850のセキュリティモジュールとして、拡張メモリ874を提供することができ、装置850の安全な使用を可能にする命令を用いて、拡張メモリ874をプログラムすることができる。加えて、ハッカー行為が不可能な様式でSIMMカード上に識別情報を配置する等、SIMMカードを介して、安全なアプリケーションを追加の情報と共に提供することができる。
メモリは、後述のように、例えば、フラッシュメモリおよび/またはNVRAMメモリを含むことができる。1つの実装では、コンピュータプログラム製品は情報担体中に有形で実施される。コンピュータプログラム製品は、上述したもののように、実行時に、1つまたは複数の方法を実行する命令を含む。情報担体は、メモリ864、拡張メモリ874、または例えばトランシーバ868もしくは外部インターフェイス862を通じて受信され得るプロセッサ852上のメモリ等の、コンピュータ可読媒体または機械可読媒体である。
装置850は、必要に応じて、デジタル信号処理回路を含むことができる通信インターフェイス866を介して、無線で通信することができる。通信インターフェイス866は、とりわけ、GSM(登録商標)音声通話、SMSメッセージング、EMSメッセージングもしくはMMSメッセージング、CDMA、TDMA、PDC、WCDMA(登録商標)、CDMA2000、またはGPRS等の、様々なモードまたはプロトコルに基づく通信を行うことができる。このような通信は、例えば、無線周波数トランシーバ868を介して行うことができる。加えて、短距離通信は、Bluetooth、WiFi、または他のそのようなトランシーバ(図示せず)等を使用して行うことができる。加えて、GPS(全地球測位システム)受信器モジュール870は、追加のナビゲーション関連ワイヤレスデータおよびロケーション関連ワイヤレスデータを、装置850に提供することができ、これらの情報は、装置850上で実行されるアプリケーションによって必要に応じて使用可能である。
また、装置850は、音声コーデック860を使用して可聴通信することができる。音声コーデック860は、話された情報をユーザから受信して、それを使用可能なデジタル情報に変換することができる。音声コーデック860は同様に、例えば装置850のハンドセット中のスピーカ等を介して、ユーザが聞き取れる可聴音を発生することができる。このような音声は、音声電話通話からの音声を含み、記録された音声(例えば、ボイスメッセージ、音楽ファイル等)を含むことができ、さらに、装置850上で動作するアプリケーションによって発生された音声を含むことができる。
コンピューティング装置850は、図示のように、複数の異なる形態で実装することができる。例えば、コンピューティング装置850は、セルラ電話880として実装することができる。コンピューティング装置850は、スマートフォン882、携帯情報端末、または他の同様のモバイル装置の一部として実装してもよい。
本明細書に記載したシステムおよび技法の種々の実装は、デジタル電子回路、集積回路、専用に設計されたASIC(特定用途向け集積回路)、コンピュータハードウェア、ファームウェア、ソフトウェア、および/またはその組合せにおいて実現することが可能である。これらの様々な実装は、ストレージシステム、1つ以上の入力装置、および1つ以上の出力装置とデータおよび命令を送受信するように結合された、専用または汎用とすることができる1つ以上のプログラマブルプロセッサを含むプログラマブルシステム上で実行可能および/または解釈可能な1つまたは複数のコンピュータプログラムにおける実装を含むことが可能である。
これらのコンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、またはコードとしても知られる)は、プログラマブルプロセッサに対する機械語命令を含み、高レベル手続き言語および/もしくはオブジェクト指向プログラミング言語で、ならびに/またはアセンブリ/機械言語で実装することが可能である。本明細書で使用されるように、用語「機械可読媒体」「コンピュータ可読媒体」は、機械語命令を機械可読信号として受け取る機械可読媒体を含む、機械語命令および/またはデータをプログラマブルプロセッサに提供するために使用される任意のコンピュータプログラム製品、装置、および/または装置(例えば、磁気ディスク、光ディスク、メモリ、プログラマブルロジックデバイス(PLD))を指す。用語「機械可読信号」は、機械語命令および/またはデータをプログラマブルプロセッサに提供するために使用される任意の信号を指す。
ユーザとの対話を行うために、本明細書に記載したシステムおよび技法は、情報をユーザに表示するための表示装置(例えば、CRT(陰極線管)モニタまたはLCD(液晶ディスプレイ)モニタ)と、ユーザがそれによりコンピュータに入力することが可能なキーボードおよびポインティング装置(例えば、マウスまたはトラックボール)とを有するコンピュータ上で実装することが可能である。ユーザとの対話を行うために、他の種類の装置も同様に使用することが可能であり、例えば、ユーザに提供されるフィードバックは、感覚的なフィードバック(例えば、視覚フィードバック、聴覚フィードバック、または触覚フィードバック)の任意の形態とすることができ、ユーザからの入力は、音響入力、音声入力、または触覚入力を含む任意の形態で受信することが可能である。
本明細書に記載したシステムおよび技法は、(例えば、データサーバとして)バックエンドコンポーネントを含むか、ミドルウェアコンポーネント(例えば、アプリケーションサーバ)を含むか、フロントエンドコンポーネント(例えば、ユーザが、本明細書に記載したシステムおよび技法の実装とそれを介して対話できるグラフィカルユーザインターフェイスまたはウェブブラウザを有するクライアントコンピュータ)を含む、コンピューティングシステム、あるいはこのようなバックエンドコンポーネント、ミドルウェアコンポーネント、またはフロントエンドコンポーネントの任意の組合せで実装することが可能である。このシステムの構成要素は、デジタルデータ通信(例えば、通信ネットワーク)の任意の形態または媒体により相互接続することが可能である。通信ネットワークの例としては、ローカルエリアネットワーク(「LAN」)、ワイドエリアネットワーク(「WAN」)、およびインターネットが挙げられる。
コンピューティングシステムは、クライアントおよびサーバを含むことが可能である。クライアントおよびサーバは、一般に互いに別個であり、典型的には通信ネットワークを通じて対話する。クライアントとサーバの関係は、各コンピュータで動作しており、かつ互いにクライアント‐サーバ関係を有するコンピュータプログラムによって生じる。
複数の実施形態が記載された。それでもなお、発明の範囲及び精神を逸脱することなく、様々な変形例がなされてよいことが理解されるであろう。
加えて、図に記載された論理の流れは、望ましい結果を得るために、示された特定の順序や順番を必要としない。加えて、他の工程が提供されてよく、または工程は記載された流れから省略されてよい。また、他の構成要素は、記載されたシステムに追加されるか省略されてよい。したがって、他の実施形態は、以下の請求項の範囲内である。
本明細書に記載された様々な技術の実装は、デジタル電子回路、コンピュータハードウェア、ファームウェア、ソフトウェア、またはそれらの組み合わせにおいて行われてよい。実装は、またはプログラマブルプロセッサ、コンピュータ、または複数のコンピュータ等のデータ処理装置による処理のため、またはそれの動作を制御する処理のため、情報担体中、例えば機械可読ストレージ装置(コンピュータ可読媒体)に有形に実施されたコンピュータプログラム製品、つまりコンピュータプログラムとして行われてよい。したがって、コンピュータ可読記憶媒体は、実行された場合にプロセッサ(例えばホスト装置におけるプロセッサ、クライアント装置におけるプロセッサ)に方法を実行させる命令を記憶するように構成されてよい。
上記のコンピュータプログラム等のコンピュータプログラムは、コンパイル型またはインタープリタ型言語を含むプログラミング言語の任意の形態で記述されてよく、スタンドアローンプログラムまたはモジュールとして、コンポーネント、サブルーチン、またはコンピューティング環境において使用に適した他の単位を含む任意の形態で展開されてよい。コンピュータプログラムは、1つの場所で1つのコンピュータまたは複数のコンピュータに展開されて処理されるか、または通信ネットワークにより相互接続された複数の場所で配布されてよい。
方法の工程は、入力データを処理して出力を生成することにより機能を実行するコンピュータプログラムを実行する、1つまたは複数のプログラマブルプロセッサにより実行されてよい。方法の工程はまた、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)等の専用論理回路により実行されてよく、装置はそれらの回路として実装されてよい。
コンピュータプログラムの処理に適したプロセッサは、例として、一般および特定用途マイクロプロセッサの両方、および任意の種類のデジタルコンピュータの任意の1つまたは複数のプロセッサを含む。一般に、プロセッサは、リードオンリーメモリもしくはランダムアクセスメモリまたはその両方から命令およびデータを受け取る。コンピュータの要素は、命令を実行する1つ以上のプロセッサと、命令およびデータを記憶する1つまたは複数のメモリ装置とを含んでよい。一般に、コンピュータはまた、データの受信もしくは送信またはその両方を行うため、1つまたは複数の、磁気、光磁気ディスクまたは光学ディスク等の、データ記憶用の大容量記憶装置を含んでよいか、動作可能に接続されてよい。コンピュータプログラム命令およびデータを実施するのに適した情報担体は、例として、EPROM、EEPROM、およびフラッシュメモリ等の半導体メモリ装置と、内部のハードディスクまたはリムーバブルディスク等の磁気ディスクと、光磁気ディスクと、CD−ROMおよびDVD−ROMディスクとを含む、全ての形態の不揮発性メモリを含む。プロセッサおよびメモリは、専用論理回路に追加または組み込まれてよい。
ユーザとの対話を提供するため、実装は、情報をユーザに表示するための陰極線管(CRT)、発光ダイオード(LED)、または液晶ディスプレイ(LCD)モニタ等のディスプレイ装置と、ユーザがそれによりコンピュータに入力を提供することが可能なキーボードおよびポインティング装置、例えばマウスまたはトラックボールとを有するコンピュータ上で行ってよい。ユーザとの対話を行うために、他の種類の装置も同様に使用してよく、例えば、ユーザに提供されるフィードバックは、感覚的なフィードバック、例えば視覚フィードバック、聴覚フィードバック、または触覚フィードバックの任意の形態でよく、ユーザからの入力は、音響入力、音声入力、または触覚入力を含む任意の形態で受信されてよい。
実装は、例えばデータサーバとしてバックエンドコンポーネントを含むか、ミドルウェアコンポーネント、例えばアプリケーションサーバを含むか、フロントエンドコンポーネント、例えば、ユーザが、実装とそれを介して対話できるグラフィカルユーザインターフェイスまたはウェブブラウザを有するクライアントコンピュータを含む、コンピューティングシステム、あるいはこのようなバックエンドコンポーネント、ミドルウェアコンポーネント、またはフロントエンドコンポーネントの任意の組合せで行われよい。構成要素は、デジタルデータ通信、例えば通信ネットワークの任意の形態または媒体により相互接続することが可能である。通信ネットワークの例としては、ローカルエリアネットワーク(LAN)およびワイドエリアネットワーク(WAN)例えばインターネット)が挙げられる。
さらなる実装は以下の例に要約される。
例1: 方法であって、ヘッドマウントディスプレイ装置のディスプレイ内で仮想環境を生成する工程と、ヘッドマウントディスプレイ装置と通信をするコントローラのユーザインターフェイスにおいて、第1入力を検出する工程と、第1入力に応答して、仮想環境において、選択された仮想フィーチャにアンカーポイントを設定する、アンカーポイント設定工程と、第2入力を検出する工程と、第2入力に応答して、アンカーポイントに関連付けられた仮想フィーチャを含む仮想環境内に、エリアを定義する工程と、仮想環境のユーザ視界内で、定義されたエリア内に仮想フィーチャの一部を維持しつつ、仮想環境における仮想フィーチャの位置およびスケールのうちの少なくとも一方を調整する、調整工程と、を備える方法。
例2: アンカーポイント設定工程は、仮想ターゲット線と仮想フィーチャとの交差箇所を検出する、交差箇所検出工程と、仮想ターゲット線と仮想フィーチャとの検出した交差箇所に、アンカーポイントを設定する工程と、設定されたユーザリファレンスポイントに対する設定されたコントローラリファレンスポイントの位置に基づき、アンカーポイントに関連付けられた仮想フィーチャを含む仮想環境内に、エリアを定義する、位置基準エリア定義工程と、を含む例1に記載の方法。
例3: 設定されたユーザリファレンスポイントは、ユーザヘッドマウントディスプレイ装置上の固定点に対応し、設定されたコントローラリファレンスポイントは、コントローラに対する固定点に対応する例2に記載の方法。
例4: 交差箇所検出工程は、仮想ターゲット線を定義する工程であって、仮想ターゲット線は、設定されたユーザリファレンスポイントを始点とし、仮想ターゲット線は、設定されたユーザリファレンスポイントにおける始点から設定されたコントローラリファレンスポイントを通じて延びる、工程を含む例2または3に記載の方法。
例5: 設定されたコントローラリファレンスポイントは、仮想閉曲線の中心を定義する例1乃至4のいずれか1例に記載の方法。
例6: 位置基準エリア定義工程は、設定されたコントローラリファレンスポイントにより定義される中心を有する第1仮想ディスクを定義する、第1仮想ディスク定義工程と、設定されたユーザリファレンスポイントおよび第1仮想ディスクに基づき仮想円錐を定義する工程であって、仮想円錐は、設定されたユーザリファレンスポイントを始点として仮想フィーチャに向かって延び、第1仮想ディスクに接触する、仮想円錐定義工程と、仮想円錐と仮想フィーチャとの交差箇所に第2仮想ディスクを定義する、第2仮想ディスク定義工程と、を含む例2乃至5のいずれか1例に記載の方法。
例7: 第1仮想ディスク定義工程は、第1仮想ディスクの第1半径を定義する工程であって、第1半径は、設定されたコントローラリファレンスポイントから第1仮想ディスクの円周まで延びる、工程を含み、第2仮想ディスク定義工程は、第2仮想ディスクの中心を定義する工程であって、第2仮想ディスクの中心は、アンカーポイントに対応する、工程と、第2仮想ディスクの円周を定義する工程であって、該円周は、円錐と仮想フィーチャの平面との交差箇所に対応する、工程と、第2仮想ディスクの第2半径を定義する工程であって、第2半径は、第2仮想ディスクの中心から第2仮想ディスクの円周まで延びる、工程と、を含む例6に記載の方法。
例8: 仮想円錐定義工程は、仮想ターゲット線と仮想円錐の外周との間の半頂角を定義する工程を含む例6または7に記載の方法。
例9: 設定されたコントローラリファレンスポイントが設定されたユーザリファレンスポイントに対して移動するとき、第1仮想ディスクの第1半径および第2仮想ディスクの第2仮想半径は、各々一定のままであり、設定されたコントローラリファレンスポイントが設定されたユーザリファレンスポイントに対して移動するとき、半頂角の角度が変わる例7または8に記載の方法。
例10: 第2入力を受信する工程は、設定されたユーザリファレンスポイントに対する設定されたコントローラリファレンスポイントの移動を検出する工程を含み、調整工程は、設定されたコントローラリファレンスポイントが設定されたユーザリファレンスポイントに対して移動するとき、アンカーポイントを仮想ターゲット線上に維持する工程と、設定されたコントローラリファレンスポイントが設定されたユーザリファレンスポイントに対して移動するとき、第1仮想ディスクの第1半径を一定に維持する工程と、設定されたコントローラリファレンスポイントが設定されたユーザリファレンスポイントに対して移動し、かつ仮想フィーチャの位置およびスケールのうちの少なくとも一方が調整されるとき、第2仮想ディスクの第2半径を仮想環境に関して一定に維持する工程と、設定されたコントローラリファレンスポイントが設定されたユーザリファレンスポイントに対して移動し、かつ仮想フィーチャの位置およびスケールのうちの少なくとも一方が調整されるとき、半頂角を調整する工程と、を含む例1乃至9のいずれか1例に記載の方法。
例11: 第2入力を受信する工程は、設定されたユーザリファレンスポイントに対する設定されたコントローラリファレンスポイントの移動を検出する工程を含み、調整工程は、設定されたコントローラリファレンスポイントが設定されたユーザリファレンスポイントに対して移動するとき、アンカーポイントを仮想ターゲット線上に維持して、アンカーポイントを移動させる工程と、アンカーポイントが移動するとき、アンカーポイントを囲む定義されたエリアにおける仮想フィーチャの一部を、定義されたエリア内に維持する、工程と、アンカーポイントが移動するとき、アンカーポイントを囲む定義されたエリアにおける仮想フィーチャの一部の位置およびスケールのうちの少なくとも一方を調整する工程と、を含む例1乃至10のいずれか1例に記載の方法。
例12: アンカーポイントを囲む、仮想フィーチャの定義されたエリアは、第2仮想ディスクに対応し、アンカーポイントの移動に応答して仮想フィーチャの位置およびスケールのうちの少なくとも一方が調整されるとき、第2仮想ディスクの仮想半径は、仮想環境に関して一定のままである例6乃至11のいずれか1例に記載の方法。
例13: システムであって、没入型仮想環境を生成するよう構成されたコンピュータ装置を備え、コンピュータ装置は、実行可能な命令を記憶するメモリと、命令を実行するよう構成されたプロセッサと、を有し、プロセッサは、コンピュータ装置に、仮想環境を生成する工程と、ヘッドマウントディスプレイ装置と通信をするコントローラのユーザインターフェイスにおいて、第1入力を検出する工程と、第1入力に応答して、仮想環境において、選択された仮想フィーチャにアンカーポイントを設定する、アンカーポイント設定工程と、第2入力を検出する工程と、第2入力に応答して、フィーチャのエリアを、アンカーポイントがエリア内に配置されるように定義する工程と、仮想環境のユーザ視界内で、定義されたエリア内に仮想フィーチャの一部を維持しつつ、仮想環境における仮想フィーチャの位置およびスケールのうちの少なくとも一方を調整する、調整工程と、を実行させるシステム。
例14: アンカーポイント設定工程において、プロセッサは、仮想ターゲット線と仮想フィーチャとの交差箇所を検出する工程であって、仮想ターゲット線は、ユーザヘッドマウントディスプレイ上の固定点に対応する、設定されたユーザリファレンスポイントにおける始点に基づき定義され、コントローラに対する固定点に対応する設定されたコントローラリファレンスポイントを通じて延びる、工程と、アンカーポイントを、仮想ターゲット線と仮想フィーチャとの検出した交差箇所に設定する工程と、アンカーポイントを囲む、フィーチャのエリアを、設定されたユーザリファレンスポイントに対する設定されたコントローラリファレンスポイントの位置に基づき定義する、位置基準エリア定義工程と、を実行するよう構成される例13に記載のシステム。
例15: 位置基準エリア定義工程において、プロセッサは、第1仮想ディスクを、設定されたユーザコントローラポイントに定義する工程と、設定されたユーザリファレンスポイントおよび第1仮想ディスクに基づき仮想円錐を定義する工程であって、仮想円錐は、設定されたユーザリファレンスポイントを始点として仮想フィーチャに向かって延び、第1仮想ディスクに接触する、仮想円錐定義工程と、仮想円錐と仮想フィーチャとの交差箇所に第2仮想ディスクを定義する、第2仮想ディスク定義工程と、を実行するよう構成される例13または14に記載のシステム。
例16: 第1仮想ディスクを、仮想クロスヘアに定義する工程において、プロセッサは、第1仮想ディスクの中心を定義する工程であって、第1仮想ディスクの中心は、設定されたコントローラリファレンスポイントに対応する、工程と、第1仮想ディスクの第1半径を定義する工程であって、第1半径は、設定されたコントローラリファレンスポイントにおける第1仮想ディスクの中心から第1仮想ディスクの円周まで延びる、工程と、を実行するよう構成される例15に記載のシステム。
例17: 第2仮想ディスク定義工程において、プロセッサは、第2仮想ディスクの中心を定義する工程であって、第2仮想ディスクの中心は、アンカーポイントに対応する、工程と、第2仮想ディスクの円周を定義する工程であって、該円周は、円錐と仮想フィーチャとの交差箇所に対応する、工程と、第2仮想ディスクの第2半径を定義する工程であって、第2半径は、第2仮想ディスクの中心から第2仮想ディスクの円周まで延びる、工程と、仮想ターゲット線と仮想円錐の外周との間の半頂角を定義する工程と、を実行するよう構成される例15または16に記載のシステム。
例18: 調整工程において、プロセッサは、設定されたユーザリファレンスポイントに対する設定されたコントローラリファレンスポイントの移動を、第2入力として検出する工程と、設定されたコントローラリファレンスポイントが設定されたユーザリファレンスポイントに対して移動するとき、アンカーポイントを仮想ターゲット線上に維持する工程と、設定されたコントローラリファレンスポイントが設定されたユーザリファレンスポイントに対して移動するとき、第1仮想ディスクの第1半径を一定に維持する工程と、設定されたコントローラリファレンスポイントが設定されたユーザリファレンスポイントに対して移動し、かつ仮想フィーチャの位置およびスケールのうちの少なくとも一方が調整されるとき、第2仮想ディスクの第2半径を仮想環境に関して一定に維持する、第2半径維持工程と、設定されたコントローラリファレンスポイントが設定されたユーザリファレンスポイントに対して移動し、かつ仮想フィーチャの位置およびスケールのうちの少なくとも一方が調整されるとき、半頂角を調整する工程と、を実行するよう構成される例13乃至17のいずれか1例に記載のシステム。
例19: 第2半径維持工程において、プロセッサは、アンカーポイントが移動するとき、アンカーポイントを囲む定義されたエリアにおける仮想フィーチャの一部を、定義されたエリア内に維持する、工程と、仮想フィーチャの位置およびスケールのうちの少なくとも一方の調整と共にアンカーポイントが移動するとき、アンカーポイントを囲む定義されたエリアにおける仮想フィーチャの一部の位置およびスケールのうちの少なくとも一方を調整する工程と、を実行するよう構成される例18に記載のシステム。
例20: アンカーポイントを囲む、仮想フィーチャの定義されたエリアは、第2仮想ディスクに対応し、アンカーポイントの移動に応答して仮想フィーチャの位置およびスケールのうちの少なくとも一方が調整されるとき、第2仮想ディスクの仮想半径は、仮想環境に関して一定のままである例15乃至19のいずれか1例に記載のシステム。
記載された実装の一定の特徴が、本明細書に記載の通り説明されてきたが、複数の変形例、代用、変更、および等価物が当業者に想到されるであろう。これは、したがって、添付の請求項は、そのようなすべての変形例を網羅するよう意図され、変更は実装の範囲に含まれると理解されるべきである。それらは限定ではなく一例として提示されたに過ぎず、形態および詳細において様々な変更がされてよいと理解されるべきである。本明細書に記載された装置および/または方法の任意の部分は、相互に排除的な組み合わせを除き、任意の組み合わせにおいて組み合わされてよい。本明細書に記載された実装は、様々な組み合わせおよび/または機能、構成要素の下位の組み合わせ、ならびに/または記載された異なる実装の特徴を含んでよい。

Claims (20)

  1. 方法であって、
    ヘッドマウントディスプレイ装置のディスプレイ内で仮想環境を生成する工程と、
    前記ヘッドマウントディスプレイ装置と通信をするハンドヘルドのコントローラのユーザインターフェイスにおいて受信される第1入力を検出する工程と、
    前記第1入力に応答して、前記仮想環境において、選択された仮想フィーチャにアンカーポイントを設定する、アンカーポイント設定工程と、
    第2入力を検出する工程と、
    前記第2入力に応答して、
    設定されたユーザリファレンスポイントに対する設定されたコントローラリファレンスポイントの位置に基づき、前記アンカーポイントに関連付けられた前記仮想フィーチャを含む前記仮想環境内に、エリアを定義する工程であって、前記設定されたユーザリファレンスポイントは前記ヘッドマウントディスプレイ装置に対する固定点に対応し、前記設定されたコントローラリファレンスポイントはハンドヘルドの前記コントローラに対する固定点に対応し、前記設定されたユーザリファレンスポイントと前記設定されたコントローラリファレンスポイントと前記アンカーポイントとは仮想線上にある、前記工程と、
    前記仮想環境のユーザ視界内で、定義された前記エリアを維持しつつ、前記仮想環境における前記仮想フィーチャの位置およびスケールのうちの少なくとも一方を調整する、調整工程と、を備える方法。
  2. 前記アンカーポイント設定工程は、
    仮想ターゲット線と前記仮想フィーチャとの交差箇所を検出する、交差箇所検出工程と、
    前記仮想ターゲット線と前記仮想フィーチャとの検出した前記交差箇所に、前記アンカーポイントを設定する工程と、を含む請求項1に記載の方法。
  3. 前記設定されたユーザリファレンスポイントは、前記ヘッドマウントディスプレイ装置上の固定点に対応し、前記設定されたコントローラリファレンスポイントは、ハンドヘルドの前記コントローラに対する固定点に対応する請求項2に記載の方法。
  4. 前記交差箇所検出工程は、前記仮想ターゲット線を定義する工程であって、前記仮想ターゲット線は、前記設定されたユーザリファレンスポイントを始点とし、前記仮想ターゲット線は、前記設定されたユーザリファレンスポイントにおける前記始点から前記設定されたコントローラリファレンスポイントを通じて延びる、工程を含む請求項3に記載の方法。
  5. 前記設定されたコントローラリファレンスポイントは、仮想閉曲線の中心を定義する請求項4に記載の方法。
  6. 前記仮想環境内に前記エリアを定義する工程は、
    前記設定されたコントローラリファレンスポイントにより定義される中心を有する第1仮想ディスクを定義する、第1仮想ディスク定義工程と、
    前記設定されたユーザリファレンスポイントおよび前記第1仮想ディスクに基づき仮想円錐を定義する工程であって、前記仮想円錐は、前記設定されたユーザリファレンスポイントを始点として前記仮想フィーチャに向かって延び、前記第1仮想ディスクに接触する、仮想円錐定義工程と、
    前記仮想円錐と前記仮想フィーチャとの交差箇所に第2仮想ディスクを定義する、第2仮想ディスク定義工程と、を含む請求項に記載の方法。
  7. 前記第1仮想ディスク定義工程は、前記第1仮想ディスクの第1半径を定義する工程であって、前記第1半径は、前記設定されたコントローラリファレンスポイントから前記第1仮想ディスクの円周まで延びる、工程を含み、前記第2仮想ディスク定義工程は、
    前記第2仮想ディスクの中心を定義する工程であって、前記第2仮想ディスクの中心は、前記アンカーポイントに対応する、工程と、
    前記第2仮想ディスクの円周を定義する工程であって、該円周は、前記円錐と前記アンカーポイントに位置する仮想平面との交差箇所に対応し、前記仮想平面は仮想ターゲット線と垂直である、工程と、
    前記第2仮想ディスクの第2半径を定義する工程であって、前記第2半径は、前記第2仮想ディスクの前記中心から前記第2仮想ディスクの前記円周まで延びる、工程と、を含む請求項6に記載の方法。
  8. 前記仮想円錐定義工程は、前記仮想ターゲット線と前記仮想円錐の外周との間の半頂角を定義する工程を含む請求項7に記載の方法。
  9. 前記設定されたコントローラリファレンスポイントが前記設定されたユーザリファレンスポイントに対して移動するとき、前記第1仮想ディスクの前記第1半径は前記ユーザに対して一定のままであり、前記第2仮想ディスクの仮想の前記第2半径は前記仮想環境に対して一定のままであり、前記設定されたコントローラリファレンスポイントが前記設定されたユーザリファレンスポイントに対して移動するとき、前記半頂角の角度が変わる請求項8に記載の方法。
  10. 前記第2入力を受信する工程は、前記設定されたユーザリファレンスポイントに対する前記設定されたコントローラリファレンスポイントの移動を検出する工程を含み、前記調整工程は、
    前記設定されたコントローラリファレンスポイントが前記設定されたユーザリファレンスポイントに対して移動するとき、前記アンカーポイントを前記仮想ターゲット線上に維持する工程と、
    前記設定されたコントローラリファレンスポイントが前記設定されたユーザリファレンスポイントに対して移動するとき、前記第1仮想ディスクの前記第1半径を前記ユーザに対して一定に維持する工程と、
    前記設定されたコントローラリファレンスポイントが前記設定されたユーザリファレンスポイントに対して移動し、かつ前記仮想フィーチャの前記位置および前記スケールのうちの少なくとも一方が調整されるとき、前記第2仮想ディスクの前記第2半径を前記仮想環境に対して一定に維持する工程と、
    前記設定されたコントローラリファレンスポイントが前記設定されたユーザリファレンスポイントに対して移動し、かつ前記仮想フィーチャの前記位置および前記スケールのうちの少なくとも一方が調整されるとき、前記半頂角を調整する工程と、を含む請求項8に記載の方法。
  11. 前記第2入力を受信する工程は、前記設定されたユーザリファレンスポイントに対する前記設定されたコントローラリファレンスポイントの移動を検出する工程を含み、前記調整工程は、
    前記設定されたコントローラリファレンスポイントが前記設定されたユーザリファレンスポイントに対して移動するとき、前記アンカーポイントを前記仮想ターゲット線上に維持して、前記アンカーポイントを移動させる工程と、
    前記アンカーポイントが移動するとき、前記アンカーポイントを囲む定義された前記エリアにおける前記仮想フィーチャの前記一部を、定義された前記エリア内に維持する、工程と、
    前記アンカーポイントが移動するとき、前記アンカーポイントを囲む定義された前記エリアにおける前記仮想フィーチャの前記一部の前記位置および前記スケールのうちの少なくとも一方を調整する工程と、を含む請求項8に記載の方法。
  12. 前記アンカーポイントを囲む、前記仮想フィーチャの定義された前記エリアは、前記第2仮想ディスクに対応し、前記アンカーポイントの移動に応答して前記仮想フィーチャの前記位置および前記スケールのうちの少なくとも一方が調整されるとき、前記第2仮想ディスクの仮想の前記半径は、前記仮想環境に関して一定のままである請求項11に記載の方法。
  13. システムであって、
    没入型仮想環境を生成するよう構成されたコンピュータ装置を備え、前記コンピュータ装置は、
    実行可能な命令を記憶するメモリと、
    前記命令を実行するよう構成されたプロセッサと、を有し、前記コンピュータ装置に、
    ヘッドマウントディスプレイ装置のディスプレイ中に仮想環境を生成する工程と、
    前記ヘッドマウントディスプレイ装置と通信をするハンドヘルドのコントローラのユーザインターフェイスにおいて受信される第1入力を検出する工程と、
    前記第1入力に応答して、前記仮想環境において、選択された仮想フィーチャにアンカーポイントを設定する、アンカーポイント設定工程と、
    第2入力を検出する工程と、
    前記第2入力に応答して、
    設定されたユーザリファレンスポイントに対する設定されたコントローラリファレンスポイントの位置に基づき、前記フィーチャのエリアを、前記アンカーポイントが前記エリア内に配置されるように定義する工程であって、前記設定されたユーザリファレンスポイントは前記ヘッドマウントディスプレイ装置に対する固定点に対応し、前記設定されたコントローラリファレンスポイントはハンドヘルドの前記コントローラに対する固定点に対応し、前記設定されたユーザリファレンスポイントと前記設定されたコントローラリファレンスポイントと前記アンカーポイントとは仮想線上にある、前記工程と、
    前記仮想環境のユーザ視界内で、定義された前記エリアを維持しつつ、前記仮想環境における前記仮想フィーチャの位置およびスケールのうちの少なくとも一方を調整する、調整工程と、を実行させるシステム。
  14. 前記アンカーポイント設定工程において、前記プロセッサは、
    仮想ターゲット線と前記仮想フィーチャとの交差箇所を検出する工程であって、前記仮想ターゲット線は、ユーザヘッドマウントディスプレイ上の固定点に対応する、設定されたユーザリファレンスポイントにおける始点に基づき定義され、前記コントローラに対する固定点に対応する設定されたコントローラリファレンスポイントを通じて延びる、工程と、
    前記アンカーポイントを、前記仮想ターゲット線と前記仮想フィーチャとの検出した前記交差箇所に設定する工程と、を実行するよう構成される請求項13に記載のシステム。
  15. 前記アンカーポイントを囲む、前記フィーチャの前記エリアを定義する工程において、前記プロセッサは、
    第1仮想ディスクを、前記設定されたコントローラリファレンスポイントに定義する工程と、
    前記設定されたユーザリファレンスポイントおよび前記第1仮想ディスクに基づき仮想円錐を定義する工程であって、前記仮想円錐は、前記設定されたユーザリファレンスポイントを始点として前記仮想フィーチャに向かって延び、前記第1仮想ディスクに接触する、仮想円錐定義工程と、
    前記仮想円錐と前記仮想フィーチャとの交差箇所に第2仮想ディスクを定義する、第2仮想ディスク定義工程と、を実行するよう構成される請求項14に記載のシステム。
  16. 前記第1仮想ディスクを、仮想クロスヘアに定義する工程において、前記プロセッサは、
    前記第1仮想ディスクの中心を定義する工程であって、前記第1仮想ディスクの前記中心は、前記設定されたコントローラリファレンスポイントに対応する、工程と、
    前記第1仮想ディスクの第1半径を定義する工程であって、前記第1半径は、前記設定されたコントローラリファレンスポイントにおける前記第1仮想ディスクの前記中心から前記第1仮想ディスクの円周まで延びる、工程と、を実行するよう構成される請求項15に記載のシステム。
  17. 前記第2仮想ディスク定義工程において、前記プロセッサは、
    前記第2仮想ディスクの中心を定義する工程であって、前記第2仮想ディスクの前記中心は、前記アンカーポイントに対応する、工程と、
    前記第2仮想ディスクの円周を定義する工程であって、該円周は、前記円錐と前記仮想フィーチャとの交差箇所に対応する、工程と、
    前記第2仮想ディスクの第2半径を定義する工程であって、前記第2半径は、前記第2仮想ディスクの前記中心から前記第2仮想ディスクの前記円周まで延びる、工程と、
    前記仮想ターゲット線と前記仮想円錐の外周との間の半頂角を定義する工程と、を実行するよう構成される請求項16に記載のシステム。
  18. 前記調整工程において、前記プロセッサは、
    前記設定されたユーザリファレンスポイントに対する前記設定されたコントローラリファレンスポイントの移動を、第2入力として検出する工程と、
    前記設定されたコントローラリファレンスポイントが前記設定されたユーザリファレンスポイントに対して移動するとき、前記アンカーポイントを前記仮想ターゲット線上に維持する工程と、
    前記設定されたコントローラリファレンスポイントが前記設定されたユーザリファレンスポイントに対して移動するとき、前記第1仮想ディスクの前記第1半径を前記ユーザに対して一定に維持する工程と、
    前記設定されたコントローラリファレンスポイントが前記設定されたユーザリファレンスポイントに対して移動し、かつ前記仮想フィーチャの前記位置および前記スケールのうちの少なくとも一方が調整されるとき、前記第2仮想ディスクの前記第2半径を前記仮想環境に対して一定に維持する、第2半径維持工程と、
    前記設定されたコントローラリファレンスポイントが前記設定されたユーザリファレンスポイントに対して移動し、かつ前記仮想フィーチャの前記位置および前記スケールのうちの少なくとも一方が調整されるとき、前記半頂角を調整する工程と、を実行するよう構成される請求項17に記載のシステム。
  19. 前記設定されたコントローラリファレンスポイントが前記設定されたユーザリファレンスポイントに対して移動するとき、前記第2仮想ディスクの前記第2半径を前記仮想環境に対して関して一定に維持する工程において、前記プロセッサは、
    前記アンカーポイントが移動するとき、前記アンカーポイントを囲む定義された前記エリアにおける前記仮想フィーチャの前記一部を、定義された前記エリア内に維持する、工程と、
    前記仮想フィーチャの前記位置および前記スケールのうちの少なくとも一方の調整と共に前記アンカーポイントが移動するとき、前記アンカーポイントを囲む定義された前記エリアにおける前記仮想フィーチャの前記一部の前記位置および前記スケールのうちの少なくとも一方を調整する工程と、を実行するよう構成される請求項17に記載のシステム。
  20. 前記アンカーポイントを囲む、前記仮想フィーチャの定義された前記エリアは、前記第2仮想ディスクに対応し、前記アンカーポイントの移動に応答して前記仮想フィーチャの前記位置および前記スケールのうちの少なくとも一方が調整されるとき、前記第2仮想ディスクの仮想の前記半径は、前記仮想環境に関して一定のままである請求項19に記載のシステム。
JP2018524722A 2016-02-08 2016-12-06 仮想現実環境におけるナビゲーション用制御システム Active JP6535819B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201662292602P 2016-02-08 2016-02-08
US62/292,602 2016-02-08
US15/352,162 2016-11-15
US15/352,162 US10083539B2 (en) 2016-02-08 2016-11-15 Control system for navigation in virtual reality environment
PCT/US2016/065058 WO2017139009A1 (en) 2016-02-08 2016-12-06 Control system for navigation in virtual reality environment

Publications (2)

Publication Number Publication Date
JP2019502193A JP2019502193A (ja) 2019-01-24
JP6535819B2 true JP6535819B2 (ja) 2019-06-26

Family

ID=59497863

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018524722A Active JP6535819B2 (ja) 2016-02-08 2016-12-06 仮想現実環境におけるナビゲーション用制御システム

Country Status (6)

Country Link
US (1) US10083539B2 (ja)
EP (1) EP3414644B1 (ja)
JP (1) JP6535819B2 (ja)
KR (1) KR102021135B1 (ja)
CN (1) CN108139805B (ja)
WO (1) WO2017139009A1 (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170061700A1 (en) * 2015-02-13 2017-03-02 Julian Michael Urbach Intercommunication between a head mounted display and a real world object
EP3605300A4 (en) * 2017-03-22 2020-02-26 Sony Corporation IMAGE PROCESSING DEVICE AND METHOD AND PROGRAM
US10326933B2 (en) * 2017-06-14 2019-06-18 Google Llc Pose estimation of 360-degree photos using annotations
KR102479052B1 (ko) * 2017-08-29 2022-12-20 삼성전자주식회사 복수의 컨트롤러를 이용한 전자 장치의 디스플레이 제어 방법 및 그 장치
KR102374408B1 (ko) * 2017-09-08 2022-03-15 삼성전자주식회사 가상 현실에서의 포인터 제어 방법 및 전자 장치
US10712899B2 (en) * 2017-10-17 2020-07-14 Microsoft Technology Licensing, Llc Human-machine interface tethered to a user position in a three-dimensional VR or AR environment
KR102572675B1 (ko) * 2017-11-22 2023-08-30 삼성전자주식회사 사용자 인터페이스를 적응적으로 구성하기 위한 장치 및 방법
CN108519676B (zh) * 2018-04-09 2020-04-28 杭州瑞杰珑科技有限公司 一种头戴式助视装置
US11353967B2 (en) * 2018-05-31 2022-06-07 Arkh Litho Holdings, LLC Interacting with a virtual environment using a pointing controller
CN110825279A (zh) * 2018-08-09 2020-02-21 北京微播视界科技有限公司 平面间无缝切换的方法、装置和计算机可读存储介质
US11397463B2 (en) 2019-01-12 2022-07-26 Microsoft Technology Licensing, Llc Discrete and continuous gestures for enabling hand rays
US11386872B2 (en) 2019-02-15 2022-07-12 Microsoft Technology Licensing, Llc Experiencing a virtual object at a plurality of sizes
CN110456907A (zh) * 2019-07-24 2019-11-15 广东虚拟现实科技有限公司 虚拟画面的控制方法、装置、终端设备及存储介质
US20230297166A1 (en) * 2020-03-10 2023-09-21 Arkh Litho Holdings, LLC Barometric Sensing of Arm Position in a Pointing Controller System
US11120639B1 (en) 2020-04-24 2021-09-14 Microsoft Technology Licensing, Llc Projecting telemetry data to visualization models

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001128134A (ja) * 1999-11-01 2001-05-11 Atr Media Integration & Communications Res Lab プレゼンテーション装置
US7646394B1 (en) 2004-03-05 2010-01-12 Hrl Laboratories, Llc System and method for operating in a virtual environment
JP5681850B2 (ja) * 2010-03-09 2015-03-11 レノボ・イノベーションズ・リミテッド(香港) ヘッドマウントディスプレイを外部表示装置として使用する携帯端末
EP2506118A1 (en) * 2011-03-29 2012-10-03 Sony Ericsson Mobile Communications AB Virtual pointer
WO2013085639A1 (en) * 2011-10-28 2013-06-13 Magic Leap, Inc. System and method for augmented and virtual reality
US20140168261A1 (en) * 2012-12-13 2014-06-19 Jeffrey N. Margolis Direct interaction system mixed reality environments
JP5868886B2 (ja) * 2013-03-11 2016-02-24 東芝三菱電機産業システム株式会社 ウェアラブルコンピュータ入力装置
US9041741B2 (en) * 2013-03-14 2015-05-26 Qualcomm Incorporated User interface for a head mounted display
US10514767B2 (en) * 2013-04-02 2019-12-24 Sony Corporation Information processing apparatus and information processing method
US9245387B2 (en) * 2013-04-12 2016-01-26 Microsoft Technology Licensing, Llc Holographic snap grid
US20160291687A1 (en) * 2013-05-21 2016-10-06 Sony Corporation Display control device, display control method, and recording medium
US20160004300A1 (en) 2014-07-07 2016-01-07 PinchVR Inc. System, Method, Device and Computer Readable Medium for Use with Virtual Environments
US10416760B2 (en) * 2014-07-25 2019-09-17 Microsoft Technology Licensing, Llc Gaze-based object placement within a virtual reality environment
CN206650796U (zh) * 2017-08-04 2017-11-17 深圳超多维科技有限公司 虚拟现实装置

Also Published As

Publication number Publication date
KR102021135B1 (ko) 2019-09-11
US20170228921A1 (en) 2017-08-10
WO2017139009A1 (en) 2017-08-17
CN108139805B (zh) 2021-05-25
EP3414644A1 (en) 2018-12-19
KR20180069041A (ko) 2018-06-22
CN108139805A (zh) 2018-06-08
EP3414644B1 (en) 2022-05-25
US10083539B2 (en) 2018-09-25
JP2019502193A (ja) 2019-01-24

Similar Documents

Publication Publication Date Title
JP6535819B2 (ja) 仮想現実環境におけるナビゲーション用制御システム
US10559117B2 (en) Interactions and scaling in virtual reality
KR102098316B1 (ko) 증강 및/또는 가상 현실 환경에서의 텔레포테이션
KR102245245B1 (ko) 증강된 그리고/또는 가상의 현실 환경에서 6 자유도 제어기들을 이용한 가상 객체들의 조작
JP6676213B2 (ja) 仮想現実ユーザインターフェイスのためのユーザの動きの範囲の検出
US10509487B2 (en) Combining gyromouse input and touch input for navigation in an augmented and/or virtual reality environment
CN108073276B (zh) 增强和/或虚拟现实环境的拖拽虚拟元件
US10620720B2 (en) Input controller stabilization techniques for virtual reality systems

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181207

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190524

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190528

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190603

R150 Certificate of patent or registration of utility model

Ref document number: 6535819

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D02

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250