JP2022547775A - 仮想環境中のプロジェクションキャスティング - Google Patents

仮想環境中のプロジェクションキャスティング Download PDF

Info

Publication number
JP2022547775A
JP2022547775A JP2022501218A JP2022501218A JP2022547775A JP 2022547775 A JP2022547775 A JP 2022547775A JP 2022501218 A JP2022501218 A JP 2022501218A JP 2022501218 A JP2022501218 A JP 2022501218A JP 2022547775 A JP2022547775 A JP 2022547775A
Authority
JP
Japan
Prior art keywords
user
point
origin
projection
hand
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.)
Pending
Application number
JP2022501218A
Other languages
English (en)
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.)
Meta Platforms Technologies LLC
Original Assignee
Meta Platforms Technologies 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 Meta Platforms Technologies LLC filed Critical Meta Platforms Technologies LLC
Publication of JP2022547775A publication Critical patent/JP2022547775A/ja
Pending legal-status Critical Current

Links

Images

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/017Gesture based interaction, e.g. based on a set of recognized hand gestures
    • 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
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/017Head mounted
    • 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
    • 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/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
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Architecture (AREA)
  • Optics & Photonics (AREA)
  • User Interface Of Digital Computer (AREA)
  • Processing Or Creating Images (AREA)
  • Position Input By Displaying (AREA)

Abstract

本技術は、人工現実システムに関する。そのようなシステムは、物体インタラクションを特定するようにユーザが生成し得るプロジェクションを提供する。たとえば、ユーザは、ユーザの手の届く範囲の外側で物体とインタラクトすることを望むとき、ユーザは、プロジェクションを使用して選択する、移動する、または他の方法で離れている物体と相互作用することができる。本技術は物体間で識別するおよび一義化するための物体選択技法も含み、ユーザの近くにあるとともに離れている物体をユーザが選択することを可能にする。本技術のもっとさらなる態様は、物体と相互作用するために様々な両手を用いる(ツーハンデッド)ジェスチャを解釈するために技法を含む。本技術は、たとえば、異なる入力モダリティまたはユーザジェスチャの解釈を与えるために、グローバルモードとローカルモードを見分けるためのモデルをさらに含む。【選択図】図11A

Description

関連出願の相互参照
本出願は、「PROJECTION CASTING IN VIRTUAL ENVIRONMENTS」という名称の弁護士整理番号134875-8002.US02を有する2019年9月25日に出願した米国特許出願第16/583,069号、「GLOBAL AND LOCAL MODE VIRTUAL OBJECT INTERACTIONS」という名称の弁護士整理番号134875-8003-US01を有する2019年9月20日に出願した米国特許出願第16/578,236号、「THREE-STATE GESTURE VIRTUAL CONTROLS」という名称の弁護士整理番号134875-8004-US01を有する2019年9月20日に出願した米国特許出願第16/578,240号、「PROGRESSIVE DISPLAY OF VIRTUAL OBJECTS」という名称の弁護士整理番号134875-8005-US01を有する2019年9月20日に出願した米国特許出願第16/578,251号、および「VIRTUAL INTERACTIONS AT A DISTANCE」という名称の弁護士整理番号134875-8006-US01の2019年9月20日に出願した米国特許出願第16/578,260号に関連しており、これらの全ては、全体として参照により本明細書に組み込まれる。
本開示は、人工現実環境中の物体インタラクションに向けられている。
人工現実環境において、ユーザが見たりインタラクトしたりする物体の部分または全部は、「仮想物体」であり、すなわち、環境中に現れるコンピューティングシステムによって生成される物体の表示である。人工現実環境中の仮想物体は、ヘッドマウントディスプレイ、モバイルデバイス、プロジェクションシステム、または別のコンピューティングシステムによってユーザに提示することができる。しばしば、ユーザは、コントローラおよび/またはジェスチャを使用して仮想物体とインタラクトすることができる。たとえば、仮想物体とのユーザ「インタラクション」は、選択すること、移動すること、回転すること、サイズ変更すること、コントロール部を作動させること、色もしくは肌を変更すること、現実物体間または仮想物体間のインタラクションを定めること、仮想物体に作用するように仮想力を設定すること、またはユーザが想像することができる物体への任意の他の作用もしくは変更を含むことができる。いくつかのシステムでは、ユーザは、人工現実環境を制御するコンピュータシステムから独立して存在する「現実物体」とインタラクトすることもできる。たとえば、ユーザは、現実物体を選択し、仮想オーバーレイを追加して、物体の色、または物体がユーザに提示されるいくつかの他のやり方を変更し、それに他の仮想物体に影響を及ぼさせるなどすることができる。本明細書中で使用されるとき、別段特定されない限り、「物体」は、現実物体または仮想物体であり得る。
本発明によれば、人工現実環境中の物体とインタラクトする方法であって、ユーザの手の部分を追跡し、ユーザの手の追跡された部分に基づいて制御点を設定することと、ユーザの身体上の点を追跡し、ユーザの身体上の追跡された点に基づいて原点を設定することと、制御点および原点を通過する線を中心としたプロジェクション向きを決定することと、プロジェクション向きに沿ってユーザから外向きに制御点から光線プロジェクションを投影することと、光線プロジェクションの1つまたは複数の位置に基づいて1つまたは複数の物体との関連でアクションを行うこととを含む、人工現実環境中の物体とインタラクトする方法が提供される。
好ましくは、ユーザの身体上の点は、ユーザの身体上の第1の点であり、方法は、1つまたは複数のオリジン遷移ファクタを識別することと、1つまたは複数のオリジン遷移ファクタに基づいて、原点がユーザの身体上の第2の追跡された点へ移動すべきことを決定すること、ユーザの身体上の第1の点からユーザの身体上の第2の点へ原点を移動させることとをさらに含む。
好都合には、原点を移動させることは、ユーザの身体上の第1の点をユーザの身体上の第2の点に接続する経路との関連で設定速度で原点を移動させることを含む。
好ましくは、ユーザの身体上の第1の点は、ユーザの目または肩であり、ユーザの身体上の第2の点は、ユーザの臀部であり、経路は、直線によってA)ユーザの目またはユーザの肩をB)ユーザの臀部に接続する。
好都合には、1つまたは複数のオリジン遷移ファクタは、追跡されたユーザ凝視方向を含む。
好ましくは、原点が移動すべきとの決定は、ユーザ凝視方向に関連した角度を決定することと、角度が閾値よりも上にあることを決定することと、それに応じて、ユーザの身体上の第2の点がユーザの身体上の第1の点よりも下にある高インタラクションモードを選択することとを含む。
好都合には、1つまたは複数のオリジン遷移ファクタは、制御点および原点を通過する線の特定の平面に対しての角度の測定値を含み、原点が移動すべきことを決定することは、角度が閾値よりも下にあることを決定することと、それに応じて、ユーザの身体上の第2の点がユーザの身体上の第1の点よりも上にある低インタラクションモードを選択することとを含む。
好ましくは、制御点との関連で追跡されたユーザの手の部分は、ユーザの指先である。
好都合には、制御点との関連で追跡されたユーザの手の部分は、ユーザの手首である。
好ましくは、ユーザの手の追跡された部分に基づいて制御点を設定することは、ユーザの手の部分から特定のオフセットにある位置で制御点を選択することを含む。
好都合には、原点との関連で追跡されたユーザの身体上の点は、ユーザの利き目である。
好ましくは、原点との関連で追跡されたユーザの身体上の点は、ユーザの肩である。
好都合には、原点との関連で追跡されたユーザの身体上の点は、ユーザの臀部である。
好ましくは、1つまたは複数の物体との関連でアクションを行うことは、1つまたは複数の物体が選択されることを含む。
本発明のさらなる態様によれば、コンピューティングシステムによって実行されるときに、コンピューティングシステムに、人工現実環境中の物体とインタラクトする動作を行わせる命令を記憶するコンピュータ可読記憶媒体であって、動作は、ユーザの手の部分の位置に基づいて制御点を設定することと、ユーザの身体上の点に基づいて原点を設定することと、制御点および原点を通過する線を中心としたプロジェクション向きを決定することと、プロジェクションの1つまたは複数の位置に基づいて1つまたは複数の物体との関連でアクションを行うこととを含む、命令を記憶するコンピュータ可読記憶媒体が提供される。
好ましくは、ユーザの身体上の点は、ユーザの身体上の第1の点であり、動作は、1つまたは複数のオリジン遷移ファクタを識別することと、1つまたは複数のオリジン遷移ファクタに基づいて、原点がユーザの身体上の第1の点およびユーザの身体上の第2の点を接続する経路に沿ってユーザの身体上の第2の点へ移動すべきことを決定することと、設定速度で経路に沿って原点を移動させることとをさらに含み、その場合には、適宜、1つまたは複数のオリジン遷移ファクタは、追跡されたユーザ凝視方向を含み、原点が移動すべきことを決定することは、ユーザ凝視方向に関連した角度を測定することと、決定された角度に基づいて、ユーザの身体上の第2の点がユーザの身体上の第1の点よりも上にあるインタラクションモードを選択することとを含む。
好都合には、手の部分は、ユーザの指先、ユーザの手のひら、ユーザの手首、またはユーザのこぶしのうちの1つであり、身体上の点は、ユーザの利き目、ユーザの肩、またはユーザの臀部のうちの1つである。
本発明のさらなる態様によれば、コンピューティングシステムであって、1つまたは複数のプロセッサと、1つまたは複数のプロセッサによって実行されるときに、コンピューティングシステムに、ユーザの手の部分の位置に基づいて制御点を設定すること、ユーザの身体上の点に基づいて原点を設定することと、ならびに制御点および原点を通過する線を中心としたプロジェクションを投影することとを含む動作を行わせる命令を記憶するメモリとを備える、コンピューティングシステムが提供される。
好ましくは、ユーザの身体上の点は、ユーザの身体上の第1の点であり、動作は、1つまたは複数のオリジン遷移ファクタを識別することと、1つまたは複数のオリジン遷移ファクタに基づいて、原点がユーザの身体上の第1の点およびユーザの身体上の第2の点を接続する経路に沿ってユーザの身体上の第2の点へ移動すべきことを決定することと、設定速度で経路に沿って原点を移動させることとをさらに含む。
本技術のいくつかの実施態様が動作できるデバイスの概要を示すブロック図である。 本技術のいくつかの実施態様に使用することができる仮想現実ヘッドセットを示す配線図である。 本技術のいくつかの実施態様に使用することができる複合現実ヘッドセットを示す配線図である。 本技術のいくつかの実施態様が動作できる環境の概要を示すブロック図である。 いくつかの実施態様において本開示技術を用いるシステムに使用することができるコンポーネントを示すブロック図である。 原点および制御点を用いたプロジェクションを投影するための本技術のいくつかの実施態様に使用されるプロセスを示す流れ図である。 肩原点および手のひら制御点を用いた一例の光線プロジェクションを示す概念図である。 利き目原点および指先制御点を用いた一例の光線プロジェクションを示す概念図である。 臀部原点およびこぶし制御点を用いた一例の光線プロジェクションを示す概念図である。 肩原点および手首制御点を用いた一例の光線プロジェクションを示す概念図である。 プロジェクション原点を調整するための本技術のいくつかの実施態様に使用されるプロセスを示す流れ図である。 臀部と肩の間のプロジェクションオリジンを調整する一例を示す概念図である。 臀部と肩の間のプロジェクションオリジンを調整する一例を示す概念図である。 臀部と肩の間のプロジェクションオリジンを調整する一例を示す概念図である。 光線プロジェクションを用いた物体インタラクションのための本技術のいくつかの実施態様に使用されるプロセスを示す流れ図である。 一例の光線プロジェクションを示す概念図である。 円柱プロジェクションを用いた物体インタラクションのための本技術のいくつかの実施態様に使用されるプロセスを示す流れ図である。 一例の円柱プロジェクションを示す概念図である。 円錐プロジェクションを用いた物体インタラクションのための本技術のいくつかの実施態様に使用されるプロセスを示す流れ図である。 例の円錐プロジェクションを示す概念図である。 プロジェクションタイプのコンテキストに基づく選択のための本技術のいくつかの実施態様に使用されるプロセスを示す流れ図である。 切断ジェスチャを用いて物体を選択するための本技術のいくつかの実施態様に使用されるプロセスを示す流れ図である。 切断ジェスチャを使用して物体を選択する一例を示す概念図である。 切断・クリックジェスチャを使用して物体を作動させるための本技術のいくつかの実施態様に使用されるプロセスを示す流れ図である。 切断・クリックジェスチャを使用して物体を作動させる一例を示す概念図である。 投げ縄ジェスチャを使用して物体を選択するための本技術のいくつかの実施態様に使用されるプロセスを示す流れ図である。 投げ縄ジェスチャを使用して物体を選択する一例を示す概念図である。 投げ縄ジェスチャを使用して物体を選択する一例を示す概念図である。 フレームジェスチャを使用して物体を選択するための本技術のいくつかの実施態様に使用されるプロセスを示す流れ図である。 フレームジェスチャを使用して物体を選択する一例を示す概念図である。 フレームジェスチャを使用して物体を選択する一例を示す概念図である。 光線プロジェクションとインタラクトするターゲット物体と非ターゲット物体の間で一義化するための本技術のいくつかの実施態様に使用されるプロセスを示す流れ図である。 光線プロジェクションとインタラクトする選択された物体と選択されなかった物体の間の一例のフック一義化を示す概念図である。 光線プロジェクションとインタラクトする選択された物体と選択されなかった物体の間の一例のフック一義化を示す概念図である。 円錐または円柱プロジェクションを横切るターゲット物体と非ターゲット物体の間で「トロンボーン」ジェスチャに関して一義化するための本技術のいくつかの実施態様に使用されるプロセスを示す流れ図である。 円錐プロジェクションと交差する選択された物体と選択されなかった物体の間で一義化するための一例のトロンボーンジェスチャを示す概念図である。 円錐プロジェクションと交差する選択された物体と選択されなかった物体の間で一義化するための一例のトロンボーンジェスチャを示す概念図である。 円柱プロジェクションと交差する選択された物体と選択されなかった物体の間で一義化するための第2の例のトロンボーンジェスチャを示す概念図である。 円柱プロジェクションと交差する選択された物体と選択されなかった物体の間で一義化するための第2の例のトロンボーンジェスチャを示す概念図である。 利き手に結び付けられたメニューを使用した物体との両手を用いるインタラクションのための本技術のいくつかの実施態様に使用されるプロセスを示す流れ図である。 利き手に結び付けられたメニューを使用した物体との両手を用いるインタラクションの一例を示す概念図である。 利き手に結び付けられたメニューを使用した物体との両手を用いるインタラクションの一例を示す概念図である。 利き手に結び付けられたメニューを使用した物体との両手を用いるインタラクションの一例を示す概念図である。 グローバルモードインタラクションまたはローカルモードインタラクションのための入力モダリティを切り換えるための本技術のいくつかの実施態様に使用されるプロセスを示す流れ図である。 グローバルモードインタラクションまたはローカルモードインタラクションのための入力モダリティを切り換える一例を示す概念図である。 グローバルモードインタラクションまたはローカルモードインタラクションのための入力モダリティを切り換える一例を示す概念図である。 グローバルモードまたはローカルモードのどちらかにおけるインタラクションとしてジェスチャを解釈するための本技術のいくつかの実施態様に使用されるプロセスを示す流れ図である。 グローバルモードまたはローカルモードのどちらかにおけるインタラクションとしてジェスチャを解釈する一例を示す概念図である。 グローバルモードまたはローカルモードのどちらかにおけるインタラクションとしてジェスチャを解釈する一例を示す概念図である。
ここに導入された技法は、同様な参照番号が同一または機能的に類似の要素を指し示す添付図面と併せて、以下の詳細な説明を参照することによってより良く理解することができる。
人工現実環境中の物体とインタラクトするための実施形態が、本明細書に説明されている。人工現実環境において、ユーザは、インタラクションの原因および結果が空間的に分離されている間接的なインタラクションを行うことを望む場合がある。本技術は、物体インタラクションを行うためにユーザが作り出すことができるプロジェクションを提供する。たとえば、ユーザがすぐ手の届く範囲の外側で物体とインタラクトすることを所望するとき、離れている物体を選択する、離れている物体を移動させる、または離れている物体と他の方法でインタラクトするために、ユーザは、プロジェクションを使用することができる。本技術は、ターゲット物体を識別し、ターゲット物体間で一義化し、ユーザがユーザの近く物体とユーザから離れている物体の両方を選択することを可能にするための物体選択技法も含む。本技術もっとさらなる態様は、物体とインタラクトするときに、向上された機能性および制御についての様々な両手を用いる(ツーハンデッド)ジェスチャを解釈するための技法を含む。本技術は、たとえば、異なる入力モダリティまたはユーザジェスチャの解釈を提供するためにグローバルモードおよびローカルモードを区別するためのモデルをさらに含む。
プロジェクションは、ユーザがインタラクトすることを所望する物体を特定することができる2次元のインジケーション(たとえば、線または「光線」)または3次元内のエリア(たとえば、円柱、球、円錐、角錐等)である。たとえば、手インタラクションシステムは、プロジェクションに交差する1つまたは複数の物体をターゲット物体として識別することができる。ユーザのすぐ手が届く範囲の外側で物体と正しくインタラクトする解釈用の手ジェスチャおよび身体ジェスチャは、追跡用の手および身体のポジションおよび姿勢の不正確さにより難しいものであり得る。これらの難しさは、プロジェクションがユーザから外向きに延びるにつれてプロジェクションポジション上でわずかな手の移動が有する指数的な効果により悪化する。プロジェクションの安定性を向上させるために、手インタラクションシステムは、原点および制御点に基づいてプロジェクションポジションを制御することができる。手インタラクションシステムは、原点からプロジェクションの中心としての制御点を通って延びる線を設定することができる。様々な実施態様では、原点は、利き目、臀部、または肩などのユーザの身体の追跡された部分とすることができ、制御点は、指先、手のひら、手首、またはこぶしなどのユーザの手の部分とすることができる。いくつかの実施態様では、原点は、ユーザが凝視を向けている場所またはプロジェクション中心線の角度などの内容に基づいて変更することができる。
手インタラクションシステムは、様々なプロジェクションタイプを提供することができる。光線プロジェクションは、たとえば、ユーザの手から人工現実環境中に延びる単一の線とすることができる。光線プロジェクションは、とても正確であるが、特にある距離で低精度であるインタラクションを提供することができる。球プロジェクションは、その端部で球である光線プロジェクションとすることができ、円柱プロジェクションは、たとえば、ユーザの手から人工現実環境中に延びる円柱とすることができる。円錐または角錐プロジェクションは、たとえば、先端がユーザの手または目から延びることができ、プロジェクションは、プロジェクションが人工現実環境中に延びるにつれてカバレッジエリアが指数的に増大する円錐または角錐であり得る。光線プロジェクションよりも大きいエリアのそのカバレッジにより、円柱、球、円錐、および角錐などのプロジェクションは、ユーザがインタラクトするのを所望する物体を正しく指し示すために使用するのがより容易であり得るが、概してあまり正確でない。
いくつかのシチュエーションでは、プロジェクションは、ユーザがインタラクトすることを所望する物体よりも多くの物体と交差することができる。たとえば、ユーザは、物体のタイトクラスタのほんの一部を選択することを所望することができる。他のシチュエーションでは、プロジェクションは、ユーザがインタラクトすることを所望する物体に交差することができない可能性がある。たとえば、プロジェクションは、物体を通過しないように構成することができ、ユーザは、別の物体によって隠された物体を選択することを所望することができる。手インタラクションシステムは、選択された物体間で一義化するまたはプロジェクションのカバレッジを広げるための様々な両手を用いる(ツーハンデッド)技法を含むことができる。いくつかの実施態様では、手インタラクションシステムは、光線プロジェクション上の点で「フック」を特定することができる。ユーザの利き手とフックの間の光線プロジェクション上の距離は、ユーザの利き手とユーザの非利き手の間の距離または2本のユーザの指の間の距離など、別のジェスチャに基づくことができる。他の実施態様では、手インタラクションシステムは、別のジェスチャに基づいてプロジェクションの形状を制御することができる。たとえば、手インタラクションシステムは、ユーザの利き手とユーザの非利き手の間の距離または2本のユーザの指の間の距離など、別のジェスチャに基づいて、円柱、球、または円錐プロジェクションの底面の直径を変更することができる。
様々な実施態様では、手インタラクションシステムは、切断、切断・クリック、投げ縄、またはフレームジェスチャなどの追加の物体インタラクションジェスチャを検出することもできる。いくつかの実施態様では、これらのジェスチャは、ユーザの利き目における原点およびユーザの手の上の制御点で構成された光線プロジェクションを使用することもでき、したがって、それは、ユーザが環境に「吸い込まれている」かのようにユーザに思われる。切断ジェスチャは、ユーザが1つまたは複数の物体と交差するようにプロジェクションを移動させるところである。手インタラクションシステムは、プロジェクションと交差する各物体を選択することができる。切断・クリックジェスチャは、ユーザが、1つまたは複数のアクション可能なコントロール部(たとえば、ボタン)と交差するようにプロジェクションを移動させるところである。手インタラクションシステムは、プロジェクションと交差する各制御部を作動させることができる。投げ縄ジェスチャは、たとえば、(たとえば、機械学習モデルを使用して)ユーザの移動を先に観察されたジェスチャと比較することによって、またはユーザが閉じられた形状のジェスチャを作ったことを識別することによって、手インタラクションシステムが、投げ縄の移動を識別するところである。手インタラクションシステムは、点がユーザの目から延び、歪んだ円錐形状が投げ縄ジェスチャによって定められる、プロジェクション(たとえば、歪んだ円錐)を識別することができる。手インタラクションシステムは、歪んだ円錐と交差する物体を選択することができる。フレームジェスチャは、たとえば、ユーザが両手の親指および人差し指で矩形の縁部を定めていることを識別することによって、または矩形の対向したコーナを引き離すことによって、手インタラクションシステムが、フレーム入力を識別するところである。手インタラクションシステムは、点がユーザの目から延び、角錐壁が矩形によって定められる、プロジェクション(たとえば、角錐)を識別することができる。手インタラクションシステムは、角錐と交差する物体を選択することができる。
手インタラクションシステムは、ユーザが様々な動作モード、たとえば、グローバルモードまたはローカルモードで物体とインタラクトするように試みているか識別することもできる。グローバルモードは、たとえば、物体を選択する、仮想環境中の物体配置を制御する等、環境内で物体を操作するためのものであり得る。ローカルモードは、1つまたは複数の選択された物体のインタフェースとインタラクトする、たとえば、物体上のボタンを押す、物体に関連したメニューまたは他のコントロール部とインタラクトする等のためのものであり得る。様々な実施態様では、ユーザは、(たとえば、ジェスチャまたはボタン押下を用いて)グローバルモードとローカルモードを明示的に選択することができる、またはグローバル/ローカルモード選択は、(たとえば、ユーザの凝視に基づいて)暗示的であり得る。いくつかの実施態様では、入力モダリティは、動作モードが起動されることに基づいて自動的に変更することができる。たとえば、グローバルモードにおいて、入力は、光線、円柱、球、または円錐プロジェクションなどのプロジェクションキャスティングに切り換えることができる。ローカルモードにおいて、入力は、マップされた指の特に検出された移動が対応するコントロール部の作動を制御する場合に、選択された物体に関連したコントロール部をユーザの手の上の指へマップすること等によって他のモダリティに切り換えることができる。いくつかの実施態様では、物体に関して得ることができるアクションは、特に動作モードにおいて実行可能であるように分割されることができる。手インタラクションシステムは、現在起動されているモードについて定められたアクションのセットにおいてジェスチャをアクションに適合することができる。たとえば、グローバルモードにおけるとき、バーチャルチェス盤の右上コーナから下向きにドラッグするジェスチャは、チェス盤を回転させる意図として解釈することができる。しかしながら、同じジェスチャは、ローカルモードにおけるときに、ジェスチャの長さに対応する量だけ右上角隅から前方へルークを移動させるものとして解釈することができる。
本開示技術の実施形態は、人工現実システムを含むことができ、または人工現実システムと併せて実施することができる。人工現実またはエキストラリアリティ(XR)は、たとえば、仮想現実(VR)、拡張現実(AR)、複合現実(MR)、ハイブリッドリアリティ、またはそれらのいくつかの組合せおよび/もしくは派生物を含み得るユーザへの提示前にいくつかのやり方で調整された現実の形態である。人工現実コンテンツは、完全に生成されたコンテンツ、または取り込まれたコンテンツ(たとえば、現実世界の写真)と組み合わせて生成されたコンテンツを含み得る。人工現実コンテンツは、ビデオ、音声、触覚フィードバック、またはそれらのいくつかの組合せを含むことができ、これらのいずれも、単一チャンネルまたは複数チャンネルで提示され得る(たとえば、3次元エフェクトを視聴者にもたらすステレオビデオ)。さらに、いくつかの実施形態では、人工現実は、たとえば、人工現実においてコンテンツを作り出すために使用されるかつ/または人工現実に(たとえば、そこで活動を行うのに)使用されるアプリケーション、製品、アクセサリ、またはそれらのいくつかの組合せに関連し得る。人工現実コンテンツを提供する人工現実システムは、ホストコンピュータシステムに接続されたヘッドマウントディスプレイ(HMD)、スタンドアロンHMD、モバイルデバイスもしくはコンピューティングシステム、「ケーブ」環境、または他のプロジェクションシステム、あるいは1人または複数人の視聴者に人工現実コンテンツを提供することができる任意の他のハードウェアプラットフォームを含む様々なプラットフォーム上で実施され得る。
「仮想現実」または「VR」は、本明細書中で使用されるとき、ユーザの視覚入力がコンピューティングシステムによって制御される没入型体験を指す。「拡張現実」または「AR」は、現実世界の画像がコンピューティングシステムを通過した後にユーザが現実世界の画像を見るシステムを指す。たとえば、背後にカメラを備えたタブレットは、現実世界の画像を取り込み、次いでカメラとはタブレットの反対側にある画面上に画像を表示することができる。タブレットは、画像がシステムを通過するときに仮想物体を追加することなどによって画像を処理し、調整または「拡張」することができる。「複合現実」または「MR」は、ユーザの目に入る光がコンピューティングシステムによって部分的に生成され、現実世界における物体から反射された光を部分的に含むシステムを指す。たとえば、MRヘッドセットは、パススルーディスプレイを備えた眼鏡として成形することができ、この眼鏡は、現実世界からの光が導波管を通過することを可能にし、これはMRヘッドセット中のプロジェクタから光を同時に放出し、ユーザが見ることができる現実物体と混合された仮想物体をMRヘッドセットが提示することを可能にする。「人工現実」、「エキストラリアリティ」、または「XR」は、本明細書中で使用されるとき、VR、AR、MR、またはそれらの任意の組合せもしくはハイブリッドのいずれかを指す。
人工現実環境中の物体を選択し、この物体とインタラクトするために既存のXRシステムがある。しかしながら、これらのXRシステムは、不正確、不精密であり、限られた機能性を提供する。既存のXRシステムは、しばしば、入力のために別個のコントローラデバイスを必要とし、しばしば人工現実環境中の物体との関連でユーザジェスチャを正しく解釈することができない。既存のXRシステムは、ユーザが動作させるのにイライラさせ、時間がかかる。本明細書に説明される手インタラクションシステムおよびプロセスは、従来のXRインタラクション技法に関連したこれらの問題を克服し、物体インタラクションに対するより良いコントロールを、しばしばいっそうの機能性を、ユーザに提供することが期待され、既存のXRシステムにおけるインタラクションよりも自然で直観的である。自然で直観的であるにもかかわらず、本明細書に説明されるXRシステムおよびプロセスは、伝統的な物体インタラクションの類似物である代わりに、コンピュータ化された人工現実システムに根ざしている。たとえば、既存の物体インタラクション技法は、複数の身体パーツまたはジェスチャに基づいてプロジェクションポジショニングを説明することができず、ましてユーザがサイズ変更し、そのようプロジェクションをカスタマイズすることを提供しない。さらに、既存のXRシステムは、有効な選択および一義化技法を提供せず、ユーザ意図モード(たとえば、グローバルおよびローカルモード)に基づいて入力モダリティを切り換えるまたはユーザ入力を解釈するオプションも提供しない。
いくつかの実施態様が、図を参照して以下により詳細に述べられる。図1は、本開示技術のいくつかの実施態様が動作できるデバイスの概要を示すブロック図である。デバイスは、人工現実環境中の物体とインタラクトするための手ジェスチャを解釈するコンピューティングシステム100のハードウェアコンポーネントを備えることができる。様々な実施態様では、コンピューティングシステム100は、処理を分散し入力データを共有するために有線または無線チャンネルによって通信する単一のコンピューティングデバイス103または複数のコンピューティングデバイス(たとえば、コンピューティングデバイス101、コンピューティングデバイス102、およびコンピューティングデバイス103)を備えることができる。いくつかの実施態様では、コンピューティングシステム100は、外部処理またはセンサを必要とすることなく、コンピュータにより作り出されたまたは拡張された体験をユーザに提供することができるスタンドアロンヘッドセットを含むことができる。他の実施態様では、コンピューティングシステム100は、ヘッドセットおよびコア処理コンポーネント(たとえば、コンソール、モバイルデバイス、またはサーバシステム)などの複数のコンピューティングデバイスを含むことができ、一部の処理動作はヘッドセット上で行われ、他のものは、コア処理コンポーネントにオフロードされる。例のヘッドセットは、図2Aおよび図2Bとの関連で以下に説明される。いくつかの実施態様では、ポジションおよび環境データは、ヘッドセットデバイスに組み込まれたセンサによってのみ集めることができ、一方、他の実施態様では、非ヘッドセットコンピューティングデバイスの1つまたは複数は、環境またはポジションデータを追跡することができるセンサコンポーネントを含むことができる。
コンピューティングシステム100は、1つまたは複数のプロセッサ110(たとえば、中央処理ユニット(CPU)、グラフィカル処理ユニット(GPU)、ホログラフィック処理ユニット(HPU)等)を含むことができる。プロセッサ110は、単一の処理ユニットまたは1つのデバイス中のまたは複数のデバイスにわたって分散された(たとえば、コンピューティングデバイス101~103のうちの2つ以上にわたって分散された)複数の処理ユニットであり得る。
コンピューティングシステム100は、プロセッサ110への入力を与え、プロセッサ110にアクションを通知する1つまたは複数の入力デバイス120を含むことができる。アクションは、ハードウェアコントローラによって取り次がれることが可能であり、ハードウェアコントローラは、入力デバイスから受信した信号を解釈し、通信プロトコルを使用してプロセッサ110へ情報を送る。各入力デバイス120は、たとえば、マウス、キーボード、タッチスクリーン、タッチパッド、ウェアラブル入力デバイス(たとえば、触覚グローブ、ブレスレット、指輪、イヤリング、ネックレス、腕時計等)、カメラ(または他の光ベースの入力デバイス、たとえば、赤外線センサ)、マイクロフォン、または他のユーザ入力デバイスを含むことができる。
プロセッサ110は、たとえば、内部または外部バス、たとえば、PCIバス、SCSIバス、または無線接続を使用することで他のハードウェアデバイスに結合することができる。プロセッサ110は、デバイスのための、たとえば、ディスプレイ130のためのハードウェアコントローラと通信することができる。ディスプレイ130は、テキストおよびグラフィックを表示するために使用することができる。いくつかの実施態様では、ディスプレイ130は、たとえば入力デバイスがタッチスクリーンであるまたは目線方向モニタリングシステムを装備するときに、ディスプレイの一部として入力デバイスを含む。いくつかの実施態様では、ディスプレイは、入力デバイスとは別個である。ディスプレイデバイスの例は、LCDディスプレイ画面、LEDディスプレイ画面、投影、ホログラフィック、または拡張現実ディスプレイ(たとえば、ヘッドアップディスプレイデバイス、またはヘッドマウントデバイス)などである。他のI/Oデバイス140は、プロセッサ、たとえば、ネットワークチップもしくはカード、ビデオチップもしくはカード、オーディオチップもしくはカード、USB、ファームウェア、または他の外部デバイス、カメラ、プリンタ、スピーカ、CD-ROMドライブ、DVDドライブ、ディスクドライブ等に結合することもできる。
コンピューティングシステム100は、他のローカルコンピューティングデバイスまたはネットワークノードと無線でまたは有線ベースで通信することができる通信デバイスを含むことができる。通信デバイスは、たとえば、TCP/IPプロトコルを使用してネットワークを通して別のデバイスまたはサーバと通信することができる。コンピューティングシステム100は、複数のネットワークデバイスにわたって演算を分散するために通信デバイスを利用することができる。
プロセッサ110は、コンピューティングシステム100のコンピューティングデバイスのうちの1つに収容できる、またはコンピューティングシステム100の複数のコンピューティングデバイスもしくは他の外部デバイスにわたって分散することができるメモリ150にアクセスすることができる。メモリは、揮発性または不揮発性ストレージのための1つまたは複数のハードウェアデバイスを含み、リードオンリメモリと書込み可能メモリの両方を含むことができる。たとえば、メモリは、ランダムアクセスメモリ(RAM)、様々なキャッシュ、CPUレジスタ、リードオンリメモリ(ROM)、およびフラッシュメモリ、ハードドライブ、フロッピディスク、CD、DVD、磁気ストレージデバイス、テープドライブなどの書込み可能不揮発性メモリうちの1つまたは複数を含むことができる。メモリは、根底にあるハードウェアから切り離された伝播信号ではなく、したがって、メモリは、非一時的である。メモリ150は、プログラムおよびソフトウェア、たとえば、オペレーティングシステム162、手インタラクションシステム164、および他のアプリケーションプログラム166を記憶するプログラムメモリ160を含むことができる。メモリ150は、プログラムメモリ160またはコンピューティングシステム100の任意の要素に与えられ得る、たとえば、プロジェクション記述子、ジェスチャ識別子(たとえば、訓練済み機械学習モデル)、および/またはジェスチャ経路、ジェスチャとアクションの間のマッピング、アクションとユーザ意図モードの間のマッピング、構成データ、セッティング、ユーザオプション、またはプリファランス等を含むことができるデータメモリ170を含むこともできる。
いくつかの実施態様は、数多くの他のコンピューティングシステム環境または構成を用いて動作可能であり得る。本技術と共に使用するのに適し得るコンピューティングシステム、環境、および/または構成の例は、上記システムまたはデバイスなどのいずれかを含むXRヘッドセット、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドもしくはラップトップデバイス、携帯電話、ウェアラブルエレクトロニクス、ゲーミングコンソール、タブレットデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラム可能家電、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、分散コンピューティング環境を含むが、これらに限定されない。
図2Aは、いくつかの実施形態による仮想現実ヘッドマウントディスプレイ(HMD)200の配線図である。HMD200は、前部硬質本体205と、バンド210とを含む。前部硬質本体205は、電子ディスプレイ245の1つまたは複数の電子ディスプレイ要素、慣性運動ユニット(IMU)215、1つまたは複数のポジションセンサ220、ロケータ225、および1つまたは複数のコンピュートユニット230を含む。ポジションセンサ220、IMU215、およびコンピュートユニット230は、HMD200の内部にあってもよく、ユーザに見えない場合がある。様々な実施態様では、IMU215、ポジションセンサ220、およびロケータ225は、3自由度(3DoF)または6自由度(6DoF)で現実世界中および仮想環境中のHMD200の移動および位置を追跡することができる。たとえば、ロケータ225は、HMD200の周りの現実物体上に光点を作り出す赤外光ビームを放出することができる。HMD200と一体化された1つまたは複数のカメラ(図示せず)は、光点を検出することができる。HMD200内のコンピュートユニット230は、検出された光点を使用して、HMD200のポジションおよび移動を推測するとともに、HMD200を取り囲む現実物体の形状およびポジションを識別することができる。
電子ディスプレイ245は、前部硬質本体205と一体化されてもよく、コンピュートユニット230によって指令されるときにユーザへ画像光を与えることができる。様々な実施形態では、電子ディスプレイ245は、単一の電子ディスプレイまたは複数の電子ディスプレイ(たとえば、ユーザの目ごとのディスプレイ)であってもよい。電子ディスプレイ245の例は、液晶ディスプレイ(LCD)、有機発光ダイオード(OLED)ディスプレイ、アクティブマトリックス有機発光ダイオードディスプレイ(AMOLED)、1つまたは複数の量子ドット発光ダイオード(QOLED)サブピクセルを含むディスプレイ、プロジェクタユニット(たとえば、マイクロLED、LASER等)、いくつかの他のディスプレイ、またはそれらのいくつかの組合せを含む。
いくつかの実施態様では、HMD200は、パーソナルコンピュータ(PC)(図示せず)および/あるいは1つまたは複数の外部センサ(図示せず)などのコア処理コンポーネントに結合することができる。外部センサは、HMD200の位置および移動を決定するために、IMU215およびポジションセンサ220からの出力と組み合わせて、PCが使用できる(たとえば、HMD200から放出された光によって)HMD200をモニタすることができる。
いくつかの実施態様では、HMD200は、ユーザが片手または両手で保持できるコントローラ(図示せず)などの1つまたは複数の他の外部デバイスと通信していることができる。コントローラは、それ自体のIMUユニット、ポジションセンサを有することができ、かつ/またはさらなる光点を放出することができる。HMD200または外部センサは、これらのコントローラ光点を追跡することができる。HMD200またはコア処理コンポーネントにおけるコンピュートユニット230は、IMUおよびポジション出力と組み合わせてこの追跡を使用して、ユーザの手ポジションおよび運動をモニタすることができる。コントローラは、様々なボタンを含むこともでき、ユーザは、入力を与えるように作動させ、仮想物体とインタラクトすることができる。様々な実施態様では、HMD200は、目追跡ユニット、オーディオシステム、様々なネットワークコンポーネント等などの追加のサブシステムを含むこともできる。いくつかの実施態様では、コントローラの代わりにまたはコントローラに加えて、HMD200またはその外部に含まれる1つまたは複数のカメラは、ジェスチャならびに他の手および身体の運動を決定するために、ユーザの手のポジションおよび姿勢をモニタすることができる。
図2Bは、複合現実HMD252およびコア処理コンポーネント254を含む複合現実HMDシステム250の配線図である。複合現実HMD252およびコア処理コンポーネント254は、リンク256によって指し示されたような無線接続(たとえば、60GHzリンク)を介して通信することができる。他の実施態様では、複合現実システム250は、外部コンピュートデバイスなしでヘッドセットのみを含む、または複合現実HMD252とコア処理コンポーネント254の間に他の有線または無線接続を含む。複合現実HMD252は、パススルーディスプレイ258、およびフレーム260を含む。フレーム260は、様々な電子コンポーネント(図示せず)、たとえば、光プロジェクタ(たとえば、LASER、LED等)、カメラ、目追跡センサ、MEMSコンポーネント、ネットワーキングコンポーネント等を格納することができる。
プロジェクタは、ユーザに媒体を表示するために、たとえば、光学要素を介してパススルーディスプレイ258に結合することができる。光学要素は、プロジェクタからユーザの目へ光を向けるために1つまたは複数の導波管組立体、反射器、レンズ、ミラー、コリメータ、格子等を含み得る。画像データは、コア処理コンポーネント254からリンク256を介してHMD252へ送信されることが可能である。HMD252におけるコントローラは、画像データをプロジェクタからの光パルスに変換することができ、光パルスは、ユーザの目への出力光として光学要素を介して送信されることが可能である。出力光は、ディスプレイ258を通過する光と混合し、仮想物体が現実世界中に存在するかのように出現する仮想物体を出力光が提示することを可能にすることができる。
HMD200と同様に、HMDシステム250は、HMDシステム250が、たとえば、3DoFまたは6DoFでそれ自体を追跡し、ユーザの部分(たとえば、手、足、頭、または他の身体パーツ)を追跡し、HMD252が移動するときに動かないように現れるように仮想物体をマップし、仮想物体をジェスチャおよび他の現実世界物体に反応させることを可能にする運動およびポジション追跡ユニット、カメラ、光源等を含むこともできる。
図3は、本開示技術のいくつかの実施態様が動作できる環境300の概要を示すブロック図である。環境300は、1つまたは複数のクライアントコンピューティングデバイス305A~Dを含むことができ、その例は、コンピューティングシステム100を含むことができる。いくつかの実施態様では、クライアントコンピューティングデバイス(たとえば、クライアントコンピューティングデバイス305B)のいくつかは、HMD200またはHMDシステム250であり得る。クライアントコンピューティングデバイス305は、ネットワーク330を通してサーバコンピューティングデバイスなどの1つまたは複数の遠隔コンピュータへ至る論理接続を使用してネットワーク化した環境中で動作することができる。
いくつかの実施態様では、サーバ310は、クライアントリクエストを受信し、サーバ320A~Cなどの他のサーバを通してそれらのリクエストの遂行をコーディネートするエッジサーバであり得る。サーバコンピューティングデバイス310および320は、コンピューティングシステム100などのコンピューティングシステムを含むことができる。各サーバコンピューティングデバイス310および320が単一のサーバとして論理的に表示されるが、サーバコンピューティングデバイスは、同じ物理的位置または地理的に異なる物理的位置に位置する複数のコンピューティングデバイスを包含する分散コンピューティング環境でそれぞれあり得る。
クライアントコンピューティングデバイス305、ならびにサーバコンピューティングデバイス310および320は、他のサーバ/クライアントデバイスへのサーバまたはクライアントとしてそれぞれ機能することができる。サーバ310は、データベース315に接続することができる。サーバ320A~Cは、対応するデータベース325A~Cにそれぞれ接続することができる。上述したように、各サーバ310または320は、サーバのグループに対応することができ、これらのサーバの各々は、データベースを共有することができ、またはサーバ自体のデータベースを有することができる。データベース315および325は、単一のユニットとして論理的に表示されるが、データベース315および325は、複数のコンピューティングデバイスを包含する分散コンピューティング環境でそれぞれあってもよく、その対応するサーバ内に位置することができ、または同じまたは地理的に異なる物理的位置に位置することができる。
ネットワーク330は、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、メッシュネットワーク、ハイブリッドネットワーク、または他の有線もしくは無線ネットワークであり得る。ネットワーク330は、インターネット、またはいくつかの他のパブリックもしくはプライベートネットワークであり得る。クライアントコンピューティングデバイス305は、有線または無線通信などによってネットワークインタフェースを通してネットワーク330に接続することができる。サーバ310とサーバ320の間の接続は、別個の接続として示されているが、これらの接続は、ネットワーク330または別個のパブリックもしくはプライベートネットワークを含む任意の種類のローカルネットワーク、広域ネットワーク、有線ネットワーク、または無線ネットワークであり得る。
図4は、いくつかの実施態様において本開示技術を用いるシステムに使用することができるコンポーネント400を示すブロック図である。コンポーネント400は、コンピューティングシステム100の1つのデバイスに含まれてもよく、またはコンピューティングシステム100の多数のデバイスにわたって分散されてもよい。コンポーネント400は、ハードウェア410、メディエータ420および特殊コンポーネント430を含む。上述したように、本開示技術を実施するシステムは、処理ユニット412、ワーキングメモリ414、入出力デバイス416(たとえば、カメラ、ディスプレイ、IMUユニット、ネットワーク接続等)、およびストレージメモリ418を含む様々なハードウェアを使用することができる。様々な実施態様では、ストレージメモリ418は、ローカルデバイス、遠隔ストレージデバイスへのインタフェース、またはそれらの組合せのうちの1つまたは複数であり得る。たとえば、ストレージメモリ418は、システムバスを通してアクセス可能な1つもしくは複数のハードドライブもしくはフラッシュドライブであり得る、または1つもしくは複数の通信ネットワークを介してアクセス可能な(ストレージ315または325などにおける)クラウドストレージプロバイダもしくは他のネットワークストレージであり得る。様々な実施態様では、コンポーネント400は、クライアントコンピューティングデバイス305などのクライアントコンピューティングデバイス内で、またはサーバコンピューティングデバイス310もしくは320などのサーバコンピューティングデバイス上で実施することができる。
メディエータ420は、ハードウェア410と特殊コンポーネント430の間のリソースを取り次ぐコンポーネントを含むことができる。たとえば、メディエータ420は、オペレーティングシステム、サービス、ドライバ、基本入出力システム(BIOS)、コントローラ回路、または他のハードウェアシステムもしくはソフトウェアシステムを含むことができる。
特殊コンポーネント430は、ジェスチャを認識し、ジェスチャを解釈して人工現実環境中の物体とインタラクトするための動作を行うように構成されたソフトウェアおよび/またはハードウェアを含むことができる。特殊コンポーネント430は、たとえば、プロジェクションキャスティングエンジン434、物体選択エンジン436、ツーハンデッドインタラクションエンジン438、グローバルおよびローカルモードエンジン440、ならびにコンポーネントおよびAPIを含むことができ、これは、インタフェース432のように、ユーザインタフェースを与え、データを転送し、特殊コンポーネントを制御するために使用することができる。いくつかの実施態様では、コンポーネント400は、複数のコンピューティングデバイスにわたって分散されたコンピューティングシステムにあることができ、もしくは特殊コンポーネント430のうちの1つもしくは複数を実行するサーバベースのアプリケーションへのインタフェースであることができる。
プロジェクションキャスティングエンジン434は、光線プロジェクションなどの様々なタイプのプロジェクション(図12および図1との関連で以下により詳細に説明されるような)、(図14および図15との関連で以下により詳細に説明されるような)球または円柱プロジェクション、または(図16および図17との関連で以下により詳細に説明されるような)円錐プロジェクションを作り出すことができる。いくつかの実施態様では、プロジェクションキャスティングエンジン434は、(図18との関連で以下により詳細に説明されるように)現在のコンテキストに基づいてプロジェクションタイプを選択することができる。
プロジェクションキャスティングエンジン434は、(図5~図9との関連で以下により詳細に説明されるように)制御点としての手のパーツなどの複数の追跡された身体パーツ、および原点としての目、肩、または臀部などのユーザの身体上の別の点に基づいてプロジェクションポジションを制御することもできる。たとえば、プロジェクションキャスティングエンジン434は、制御点におけるまたは制御点からオフセットされたプロジェクションのための始点を設定することができ、プロジェクションのために中心線として原点と制御点を接続する線を決定することができる。いくつかの実施態様では、プロジェクションキャスティングエンジン434は、(図10および図11との関連で以下により詳細に説明されるように)ユーザの凝視方向、プロジェクションの角度、またはターゲット物体のポジションなどのオリジン遷移ファクタに従ってプロジェクションのためのオリジンを移動させることができる。
物体選択エンジン436は、複数の物体を選択するインタラクションを識別することができる。いくつかの実施態様では、物体選択エンジン436は、(図19および図20との関連で以下により詳細に説明されるように)複数の物体と交差するようにユーザに現れる線をユーザが引く切断ジェスチャを識別することができる。いくつかの実施態様では、物体選択エンジン436は、(図21および図22との関連で以下により詳細に説明されるように)複数の物体と交差するようにユーザに現れる線をユーザが引く切断・クリックジェスチャを識別することができ、システムは、それらの物体を作動させる。いくつかの実施態様では、物体選択エンジン436は、(図23および図24との関連で以下により詳細に説明されるように)システムが選択する複数の物体の周りにユーザの眺めから形状を形成する投げ縄ジェスチャを識別することができる。いくつかの実施態様では、物体選択エンジン436は、(図25および図26との関連で以下により詳細に説明されるように)2つの矩形の対向したコーナを特定するユーザからのフレームジェスチャを識別することができ、次いで、システムは、ユーザの視点から矩形内にあるように現れる物体を選択することができる。
ツーハンデッドインタラクションエンジン438は、2つの手(または同じ手の異なるパーツ)によって行われるジェスチャ、または第2の手(または第1の手の異なるパーツ)が第1の手(または第1の手の第1のパーツ)によって行われるジェスチャの結果を修正するジェスチャを識別することができる。いくつかの実施態様では、ツーハンデッドインタラクションエンジン438は、光線プロジェクション上の点がフックとして識別されるフックジェスチャを識別することができる。フックは、光線が選択するまたは他の方法でインタラクトする物体を定めることができる。光線に沿ったフックのポジションは、2つのユーザの手の間の距離または同じ手の上の2つの指間の距離に基づいて特定することができる。フックジェスチャは、図27~図29との関連で以下により詳細に説明される。いくつかの実施態様では、ツーハンデッドインタラクションエンジン438は、円錐、円柱、または球プロジェクションの直径が2つのユーザの手の間の距離または同じ手の上の2つの指間の距離に基づいているトロンボーンジェスチャを識別することができる。トロンボーンジェスチャは、図30~図34との関連で以下により詳細に説明される。いくつかの実施態様では、ツーハンデッドインタラクションエンジン438は、両手を用いるインタラクションを助けることができ、ユーザは第1の手を用いたジェスチャを使用して物体を選択し、メニューは選択された物体とインタラクトするために第1の手との関連において提示され、ユーザはユーザの第2の手を用いて物体とインタラクトすることができる。選択の手に結び付けられたメニューは、図35~図38との関連で以下により詳細に説明される。
グローバルおよびローカルモードエンジン440は、たとえば、どのくらい長くユーザが一貫した凝視を物体の方へ向けさせていたかなど、明示的なユーザコマンドまたはコンテキストに基づいて、手インタラクションシステムがグローバルモードまたはローカルモードにあるか識別することができる。いくつかの実施態様では、グローバルおよびローカルモードエンジン440は、(図39および図40との関連で以下により詳細に説明されるように)グローバルおよびローカルモードのために入力モダリティを切り換えることができる。いくつかの実施態様では、グローバルおよびローカルモードエンジン440は、(図41および図42との関連で以下により詳細に説明されるように)手インタラクションシステムがグローバルモードまたはローカルモードにあるかに基づいて曖昧な入力を解釈することができる。
当業者は、上記の図1~図4に示されたおよび以下に述べられる各流れ図において、コンポーネントは、種々のやり方で変えられてもよいと理解されよう。たとえば、論理の順序は並べ替えられてもよく、サブステップは並列に行われてもよく、示された論理は省略されてもよく、他の論理が含まれてもよいなどである。いくつかの実施態様では、上記のコンポーネントのうちの1つまたは複数は後述のプロセスのうちの1つまたは複数を実行することができる。
原点および制御点を用いたプロジェクションキャスティング
人工現実環境中の物体を指し、選択するようにコントローラを使用すると、直線を定めることができるコントローラ上の単一の点を設定して追跡することが用意である。既存のコントローラベースの選択技法は、人々によるツールを使用するアプローチ法と人々自体の身体を使用するアプローチ法の間に本質的な差があるので、素手に直接転送可能でない。ユーザの手が入力方法であるときに、プロジェクション源として単一の点を追跡することがよりずっと難しい。さらに、硬質コントローラ表面とは異なり、ユーザの手は、多くのわずかな移動を行う傾向があり、これによりユーザの手に起因するプロジェクションはあちこちに跳ぶ可能性があり、プロジェクションがユーザからさらに広がるにつれてこれらの移動は増幅される。これらの自然の手は震え、重要な点の追跡は、プロジェクションキャスティングと干渉する可能性があり、物体選択の不正確さを引き起こす。
手の追跡に基づいてプロジェクションキャスティングの正確さを高めるために、プロジェクションポジションは、プロジェクションを固定するように一次制御点(たとえば、ユーザの手のパーツ)とユーザの素手の外側にある二次原点との両方を使用して定められ得る。これら2つのポジションの組合せに基づいたプロジェクションは、より安定して精密な投影体験という結果になる。様々な原点が使用されてもよく、ターゲット物体のサイズ、距離、垂直ポジション、および密度に応じて異なる典型的な入力速度、精度、および人間工学を与えることができる。様々な実施態様では、原点は、ユーザの利き目、ユーザの目間の点、ユーザの頭上の別の点、ユーザの臀部、ユーザの肩、または、たとえば、ユーザの臀部と肩の間のコンテキスト可変点を含むことができる。様々な原点の各々は、特別のジェスチャを行うときのユーザの指の先端、ユーザの手のひら、ユーザの手首、またはユーザのこぶしの中心などの様々な制御点と対をなすことができる。プロジェクションを投影するときに、プロジェクションは、制御点から始まり、原点と制御点の両方を通過する線を中心とするように向けられるユーザから外向きの投影であり得る。
図5は、原点および制御点を用いたプロジェクションを投影するための本技術のいくつかの実施態様に使用されるプロセス500を示す流れ図である。ブロック502において、プロセス500は、制御点として手の部分を追跡することができる。たとえば、制御点は、ユーザの指の先端、ユーザの手のひら、ユーザの手首、またはユーザのこぶしの中心であり得る。いくつかの実施態様では、制御点は、ユーザの指で「つまみ」を作るようにユーザが特別のジェスチャを行うことに応答して識別され得る。場合によって、制御点は、ユーザの追跡された部分からオフセットされてもよい。たとえば、制御点は、ユーザの手のひらまたは手首からのオフセットであり得る。このことは、指の先端を使用する例、すなわち、ジェスチャを作るときに制御点が移動するときの例で生じるジッタを無くすのに役立つ。代わりに、手首の6インチ前方にオフセットされた点は、指でそのようなジェスチャを作るときにあまり移動しない。いくつかの実施態様では、制御点は、ユーザの頭上または足の部分上の点などの他の身体パーツに基づいていることができる。
ブロック504において、プロセス500は、原点として第2の身体パーツを追跡することができる。様々な実施態様では、原点は、ユーザの目、肩、臀部等のポジションに基づいていることができる。いくつかの実施態様では、使用される目、肩、または臀部は、ユーザの利き側上の1つであり得る。たとえば、ユーザの利き目は、ユーザが最も用いる傾向がある手、(たとえば、オンボーディング手順において)どちらの手または目が優勢であるのかユーザが述べたこと、過去の刺激との関連でユーザが自分をどのように配置したのかの観察、ユーザに与えられた視覚テスト等に基づいて決定することができる。いくつかの実施態様では、原点は、ユーザの凝視が向けられている場所、プロジェクションユーザの角度が作り出している場所、または機械学習モデルからの選択などの事情に応じて移動する場合がある。原点を調整することは、図10および図11との関連で以下により詳細に述べられる。
ブロック502および504において、原点および制御点は、たとえば、XRヘッドセットを用いてまたは外部センサ内で統合されたカメラからの画像を解析することによって追跡することができる。たとえば、機械学習モデルが、そのようなカメラからの画像を解析し、ユーザの手または他の様々な身体パーツのモデルについての3Dポジションデータを生成するために使用され得る。いくつかの実施態様では、追加または代替の方法が、ヘッドセット内、ブレスレット内、グローブ内、または他のウェアラブルデバイスにおけるポジションまたはIMU追跡センサを使用することなどによって適用されてもよい。
ブロック506において、プロセス500は、A)ブロック502において決定された原点、およびB)ブロック504において決定された制御点を通過する線を中心とするプロジェクション向きを決定することができる。以下に述べられるように、プロジェクションは、光線、球、円柱、円錐、角錐等などの様々なタイプの1つであり得る。制御点で始まるまたは制御点からオフセットされたプロジェクションは、ユーザから外向きに広がることができる。
ブロック508において、プロセス500は、プロジェクションの1つまたは複数の位置に基づいて現実物体または仮想物体との関連でアクションを行うことができる。たとえば、アクションは、物体の選択、物体の移動または回転、コントロール部とのインタラクション(たとえば、ボタンの押下げ、コントロール部の引きまたは押し)等などの任意のインタラクションを含むことができる。場合によって、アクションは、たとえば、ユーザが制御点および/または原点を移動させ、プロジェクションの対応する移動を引き起こすときに、プロジェクションの複数の位置に基づいていることができる。たとえば、ユーザが、制御点として追跡されるユーザの手のひらを対応する原点としてのユーザの肩と共に移動させるとき、ユーザの手のひらから外向きの光線プロジェクション投影は、それぞれが選択できる複数の物体と交差することができる。
図6は、肩原点602および手のひら制御点606を用いた光線プロジェクション606の一例600を示す概念図である。図7は、利き目原点702および指先制御点704を用いた光線プロジェクション706の一例700を示す概念図である。図8は、臀部原点802およびこぶし制御点804を用いた光線プロジェクション806の一例800を示す概念図である。図9は、肩原点802および手首制御点804を用いた光線プロジェクション906の一例900を示す概念図である。例600、700、800、または900ごとに、ユーザがユーザの追跡された原点(肩、目、または臀部)、および/または追跡された制御点(手首、手のひら、または指先)を移動させるときに、プロジェクション606、706、806、または906への対応する移動が生じる。
異なる原点は、異なるコンテキストにおいてより良く働くことができる。たとえば、より高い原点は、より低いターゲットにより容易にアクセスする余裕があり、一方、より低い原点は、より高いターゲットの方へより容易にアクセスすることが可能である。いくつかの実施態様では、手インタラクションシステムは、条件を識別し、それに応じて原点を移動させることができる。様々な実施態様では、原点は、異なる原点間でスナップすることができ、または原点間の経路上を所与の速度で移動することができる。
図10は、プロジェクション原点を調整するための本技術のいくつかの実施態様に使用されるプロセス1000を示す流れ図である。ブロック1002において、プロセス1000は、凝視方向および/または他のオリジン遷移ファクタを識別することができる。様々な実施態様では、オリジン遷移ファクタは、ユーザの凝視、現在のプロジェクションの水平角度、現在の原点に対してのターゲット物体の位置等のうちの1つまたは複数であり得る。たとえば、プロセス1000は、現在のプロジェクションの中心線の角度を決定することができる。別の例として、プロセス1000は、現在のプロジェクションが物体を選択すること、およびそれらの物体が閾値平面よりも上または下にあることを決定することができる。
ブロック1004において、プロセス1000は、原点がより高くまたはより低く設定されるべきであるか決定するために、ブロック1002において決定されたオリジン遷移ファクタを閾値と比較することができる。たとえば、ユーザの凝視がユーザの身体から閾値角度よりも上にあるときに、高インタラクションモードが選択され得、ユーザの凝視がユーザの身体から閾値角度よりも下にあるときに、低インタラクションモードが選択され得る。別の例として、プロセス1000は、現在のプロジェクションの中心線の角度が閾値角度よりも大きい(たとえば、上向きを指している)ことを決定することができ、高インタラクションモードを選択することができ、または現在のプロジェクションの中心線の角度が閾値角度よりも小さい(たとえば、下向きを指している)ことを決定することができ、低インタラクションモードを選択することができる。もっと別の例として、プロセス1000は、現在のプロジェクションが閾値平面よりも上にある物体を選択することを決定することができ、高インタラクションモードを選択することができ、または現在のプロジェクションは閾値平面よりも下にある物体を選択することを決定することができ、低インタラクションモードを選択することができる。
ブロック1006において、プロセス1000は、原点がユーザの臀部などの低い位置の方へ移行される高インタラクションモードを選択することができる。いくつかの実施態様では、高インタラクションモードは、所定の平面よりも上の物体とのインタラクションをより容易にさせることができる。いくつかの実施態様では、移行は、低い位置への原点のスナップであり得る。いくつかの実施態様では、ユーザの肩および臀部などのユーザの身体上の2つの点(高い点および低い点)の間に特定された経路がある。ブロック1006において、プロセス1000は、原点が経路上の最も低い箇所にすでにあるのでない限り、経路の低い端の方へ設定ペースで原点を移動し始めることができる。
ブロック1008において、プロセス1000は、原点がユーザの目または肩などの高い位置の方へ移行される低インタラクションモードを選択することができる。いくつかの実施態様では、低インタラクションモードは、所定の平面よりも下にある物体とのインタラクションをより容易にさせることができる。いくつかの実施態様では、移行は、高い位置への原点のスナップであり得る。いくつかの実施態様では、ユーザの目および臀部などのユーザの身体上の2つの点(高い点および低い点)の間に特定された経路がある。ブロック1008において、プロセス1000は、原点が経路上の最も高い箇所にすでにあるのでない限り、経路の高い端の方へ設定ペースで原点を移動し始めることができる。
プロセス1000は、新しいオリジン遷移ファクタが決定されるときに、繰り返し、ブロック1002へ戻ることができる。
図11A、図11B、および図11Cは、原点1104が臀部と肩の間の経路1106上に沿って移動する、制御点1102によってやはり制御されている光線プロジェクションのために原点1004を調整する一例を示す概念図である。例1100において、原点1104の移動は、ユーザの視線1108に基づいている。オリジンが設定される経路1106に沿った点は、ユーザの視線と床に直交する平面1110とによって形成された角度と経路の比例の直線線形関係に基づいている。
図11Aにおいて、ユーザの視線1108は、平面1110と直交し、原点1104は、原点1104と制御点1102の間の光線が経路1106に直交するように設定される。図11Bにおいて、ユーザの視線1108は、原点1104が経路1106上の最低点に設定されるように最大上向き角度を超えて上向きにのびている。図11Cにおいて、ユーザの視線1108は、原点1104が経路1106上の最高点に設定されるように最小下向き角度よりも下にある下向きにのびている。例1100において、これらの点の間の移行は、設定速度において生じ、経路1106に沿って滑らかに原点1104を移動させる。
プロジェクションタイプを用いたある距離における仮想物体インタラクション
物体とインタラクトするとき、特にそれらの物体がユーザのすぐ手が届く範囲の外側にあるときに、既存のXRシステムに関するいくつかの難しさがある。たとえば、多くの既存の手追跡システムは、不精密であり、ユーザの手の仮想モデルをジッタにさせる、またはユーザの手の実際のポジションに遅れをとる。さらに、ユーザの手は、震えおよび他のわずかな移動を呈示する傾向があり、これは、プロジェクションが大きい距離にわたって投影されるときに大きなプロジェクションポジション変化につながる。ハイゼンベルク効果として知られるもっと別の難しさは、ユーザがポインティングデバイスを用いて入力を行う(ジェスチャを行う、ボタンをクリックする等)ときにポインティングデバイス(手、マウス、スタイラス等)にしばしば生じる移動である。ある距離におけるインタラクションを含む多くの例では、これらの難しさは、適切なプロジェクションキャスティングタイプを使用することによって克服することができる。投影タイプの網羅的でないリストは、光線プロジェクション、球プロジェクション、円柱プロジェクション、円錐プロジェクション、および角錐プロジェクションを含む。
光線プロジェクションは、本開示の目的のために、制御点から延びる単一の線、または制御点からのオフセットである。光線プロジェクションは、ユーザのターゲット物体についてほとんど曖昧さがない。しかしながら、小さいターゲットサイズは、インタラクションを脆くさせる可能性があり、ユーザは、ユーザの手が届く範囲の外側にある個々の物体、特に小さいものを指すことが難しいと見出すことができる。
球プロジェクションは、本開示の目的のために、端部に結び付けられた球を有する光線プロジェクションである。いくつかの実施態様では、ユーザは、光線の長さおよび/または球の直径を制御することができる。他の実施態様では、球の直径および/または光線の長さは、一定であり得る。もっと他の実施態様では、光線の長さは、球が光線に沿ってユーザに最も近い物体と交差するように設定され得る。円柱プロジェクションは、球が光線の全長に沿って平行移動され、プロジェクション制御点から広がる円柱を形成することを除いて、球プロジェクションに類似する。球および円柱プロジェクションは、ユーザの手が届く範囲(たとえば、1~3フィート)のちょうど外側の物体とのインタラクションについて、光線プロジェクションと比較して、選択の正確さを改善する傾向がある。
円錐プロジェクションは、本開示の目的のために、円錐がユーザから離れると広がるように、プロジェクション制御点から広がるとともに直径がより大きくなる円錐プロジェクションである。いくつかの実施態様では、円錐プロジェクションがユーザから離れると広がるように直径が変化する程度は一定であり得る。他の実施態様では、ユーザは、図30~図34との関連で、以下に述べられるように、円錐の直径を制御することができる。角錐プロジェクションは、円錐プロジェクションに類似し得るが、円形の底辺に代わって矩形の底辺を使用することができる。
プロジェクションの少なくとも一部が、球、円柱、円錐、または角錐などの3次元であるときのいくつかの場合には、プロジェクションのターゲット物体は、プロジェクションが部分的に交差する物体、プロジェクションが完全に包含する物体、またはプロジェクションが少なくとも閾値量(たとえば、30%、50%、または80%)だけ包含する物体であり得る。プロジェクションターゲットが複数の物体であり得るいくつかの実施態様では、二次選択技法が、ユーザがターゲットにすることを意図する物体をその間で区別するために使用することができる。たとえば、プロジェクションと交差する個々の物体は、ユーザの手の上の指へマップされてもよく、マップされた指の移動(たとえば、指を親指にタップする)により、対応するマップされた物体を追加させる、または対応するマップされた物体をターゲット物体のセットから除去させることができる。別の例として、ユーザの凝視などの別の入力モダリティは、どの交差された物体がターゲット物体になるのか区別することができる。
図12は、光線プロジェクションを使用した物体インタラクションのための本技術のいくつかの実施態様に使用されるプロセス1200を示す流れ図である。ブロック1202において、プロセス1200は、1つまたは複数の身体パーツのうちの追跡されたポジションに基づいて光線プロジェクションのために制御点および投影方向を決定することができる。いくつかの実施態様では、図5から図11との関連で上述したように、制御点は、手のひら、指先、こぶし、手首等であることができ、投影方向は、肩、目、または臀部などの制御点および原点を通過する線に沿っていることができる。他の実施態様では、制御点は、ユーザの目、頭、または胸部などの他の追跡された身体パーツに基づいていることができる。たとえば、制御点は、ユーザの瞳の中心の推定されたポジションであることができ、原点は、ユーザの網膜の中心の推定されたポジションであることができる。場合によって、方向に定めるために原点を使用することに代えて、システムは、制御点に対応する平面を定めることができ、その平面に直交する投影方向を決定することができる。たとえば、制御点が頭または胴上にある場合、システムは、頭または胴に対応する冠状面を識別することができ、その冠状面と直交するような投影方向を識別することができる。
ブロック1204において、プロセス1200は、投影方向に沿って制御点から光線プロジェクション(すなわち直線)を生成することができる。場合によって、光線プロジェクションのグラフィカル表示(光線が物体に当たる線全体またはぴったり点)は、人工現実環境中で表示され得る一方、他の場合には、光線プロジェクションは、光線プロジェクションを表示することなくXRシステムによって追跡される。様々な実施態様では、光線プロジェクションは、光線プロジェクションが第1の(現実または仮想)物体と交差するまで制御点から広がることができ、または光線プロジェクションは、複数の物体を通って延びることができる。いくつかの実施態様では、光線プロジェクションの方向は、光線プロジェクションが交差するように近い物体に対して「スナップする」ように調整することができ、または光線プロジェクションは、そのような物体との交差を維持するために閾値量まで曲げられることができる。
ブロック1206において、プロセス1200は、光線プロジェクションと1つまたは複数のターゲット物体の間の交差を決定することができる。いくつかの実施態様では、プロセス1200は、ユーザが人差し指を親指にタップすることなどの特別のジェスチャを行うときに交差を決定することができる。いくつかの実施態様では、ターゲット物体は、第1の物体によって隠される他の物体を除く、光線プロジェクションが交差する第1の物体であり得る。他の実施態様では、光線は、複数の物体を通って延びることができ、ターゲット物体は、光線プロジェクションが交差する物体の全部であり得る。もっと他の実施態様では、光線が交差する物体は、ユーザの凝視または交差された物体へマップされる指を含むジェスチャなどの他の身体パーツのポジションまたはジェスチャに応じてターゲット物体として識別することができる。
ブロック1208において、プロセス1200は、ブロック1206において決定された1つまたは複数のターゲット物体とのインタラクションを引き起こすことができる。たとえば、プロセス1200は、ターゲット物体を選択し、ターゲット物体を移動もしくは回転させ、または他のインタラクションを行うことができる。
図13は、光線プロジェクション1302の一例1300を示す概念図である。例1300では、ユーザの手1306は、プロジェクションの開始を指し示すユーザの親指と中指を接続することによるジェスチャを形成している。例1300では、制御点1304は、ユーザの中指からのオフセットである。光線プロジェクション1302は、制御点1304からターゲット物体1308へ延びる。例1300では、ユーザは、ユーザの人差し指を親指(図示せず)に閉じ、それを再び開き「クリック」ジェスチャを行い、ターゲット物体1308を選択させる。
図14は、円柱プロジェクションを使用した物体インタラクションのための本技術のいくつかの実施態様に使用されるプロセス1400を示す流れ図である。ブロック1402において、プロセス1400は、1つまたは複数の身体パーツの追跡されたポジションに基づいて円柱プロジェクションについての制御点および投影方向を決定することができる。いくつかの実施態様では、図5から図11との関連で上述したように、制御点は、手のひら、指先、こぶし、手首等であることができ、投影方向は、肩、目、または臀部などの制御点および原点を通過する線に沿っていることができる。他の実施態様では、制御点は、ユーザの目、頭、または胸部などの他の追跡された身体パーツに基づいていることができる。たとえば、制御点は、ユーザの瞳の中心の推定されたポジションであることができ、原点は、ユーザの網膜の中心の推定されたポジションであることができる。場合によって、方向に定めるために原点を使用することに代えて、システムは、制御点に対応する平面を定めることができ、その平面に直交するような投影方向を決定することができる。たとえば、制御点がまたは胴上にある場合、システムは、頭または胴に対応する冠状面を識別することができ、その冠状面と直交するような投影方向を識別することができる。
ブロック1404において、プロセス1400は、投影方向に沿って制御点から円柱プロジェクションを生成することができる。いくつかの実施態様では、円柱の代わりに、プロジェクションは、光線プロジェクションの端部に球を含む球プロジェクションであってもよい。場合によって、円柱(または球)プロジェクションのグラフィカル表示は、人工現実環境中で表示され得る(たとえば、プロジェクション全体またはプロジェクションが物体と交差するところを示す)一方、他の場合には、円柱(または球)プロジェクションは、プロジェクションを表示することなくXRシステムによって追跡される。様々な実施態様では、円柱プロジェクションは、円柱プロジェクションが第1の(現実または仮想)物体と交差するまで制御点から広がることができ、または円柱プロジェクションは、複数の物体と少なくとも部分的に交差するように広がることができる。いくつかの実施態様では、球プロジェクションの光線は、球が第1の(現実または仮想)物体と交差するまで制御点から広がることができ、または球プロジェクションの光線は、一定の距離延びることができる。
ブロック1406において、プロセス1400は、円柱(または球)プロジェクションと1つまたは複数のターゲット物体との間の交差を決定することができる。いくつかの実施態様では、プロセス1400は、ユーザが人差し指を親指にタップすることなどの特別のジェスチャを行うときに交差を決定することができる。いくつかの実施態様では、ターゲット物体は、円柱(または球)プロジェクションが少なくとも部分的に交差するまたは全体的に包含する第1の物体であり得る。他の実施態様では、ターゲット物体は、円柱(または球)プロジェクションが少なくとも部分的に交差するまたは全体的に包含する物体の全部であり得る。もっと他の実施態様では、円柱(または球)が交差する物体は、ユーザの凝視または交差された物体へマップされる指を含むジェスチャなどの他の身体パーツのポジションまたはジェスチャに応じてターゲット物体として識別することができる。いくつかの実施態様では、図30~図34との関連で以下に述べられるように、円柱(または球)の直径は、他のジェスチャ、たとえば、ユーザの手の間の距離、またはユーザの人差し指と親指の先端の間の距離などによって制御することができる。
ブロック1408において、プロセス1400は、ブロック1406において決定された1つまたは複数のターゲット物体とのインタラクションを引き起こすことができる。たとえば、プロセス1400は、ターゲット物体を選択し、ターゲット物体を移動もしくは回転させ、または他のインタラクションを行うことができる。
図15は、円柱プロジェクション1502の一例1500を示す概念図である。例1500では、ユーザの手1506は、プロジェクションの開始を指し示すユーザの親指と中指を接続することによるジェスチャを形成している。例1500では、制御点1504は、ユーザの中指からのオフセットである。円柱プロジェクション1502は、制御点1504からターゲット物体1508へ延び、ターゲット物体1508A、1508B、1508C、1508D、および1508Eの各々と少なくとも部分的に交差する。例1500では、ユーザは、ユーザの手1506を時計回り(図示せず)回転させることによってジェスチャを行っており、ターゲット物体1508A~Eを選択させる。
図16は、円錐プロジェクションを使用した物体インタラクションのための本技術のいくつかの実施態様に使用されるプロセス1600を示す流れ図である。ブロック1602において、プロセス1600は、1つまたは複数の身体パーツの追跡されたポジションに基づいてプロジェクションのための制御点および投影方向を決定することができる。いくつかの実施態様では、図5から図11との関連で上述したように、制御点は、手のひら、指先、こぶし、手首等であることができ、投影方向は、肩、目、または臀部などの制御点および原点を通過する線に沿っていることができる。他の実施態様では、制御点は、ユーザの目、頭、または胸部などの他の追跡された身体パーツに基づいていることができる。たとえば、制御点は、ユーザの瞳の中心の推定されたポジションであることができ、原点は、ユーザの網膜の中心の推定されたポジションであることができる。場合によって、方向を定めるために原点を使用する代わりに、システムは、制御点に対応する平面を定めることができ、その平面に直交するような投影方向を決定することができる。たとえば、制御点が頭または胴上にある場合、システムは、頭または胴に対応する冠状面を識別することができ、その冠状面と直交するような投影方向を識別することができる。
ブロック1604において、プロセス1600は、制御点に円錐先端を有する円錐プロジェクションを生成することができ、円錐は投影方向に沿ってユーザから離れるように広がる。いくつかの実施態様では、円錐の代わりに、プロジェクションは、制御点に角錐先端を有する角錐プロジェクションであることができ、角錐は投影方向に沿って広がる。場合によって、円錐(または角錐)プロジェクションのグラフィカル表示(たとえば、円錐もしくは角錐全体の表示、またはプロジェクションが物体に交差することの表示)は、人工現実環境中で表示され得る一方、他の場合には、円錐(または角錐)プロジェクションは、プロジェクションを表示することなくXRシステムによって追跡される。様々な実施態様では、円錐(または角錐)プロジェクションは、円錐(または角錐)プロジェクションが第1の(現実または仮想)物体に交差するまで制御点から広がることができ、または円錐(または角錐)プロジェクションは、複数の物体に少なくとも部分的に交差するように広がることができる。
ブロック1606において、プロセス1600は、円錐(または角錐)プロジェクションと1つまたは複数のターゲット物体との間の交差を決定することができる。いくつかの実施態様では、プロセス1600は、ユーザが人差し指を親指にタップすることをなどの特別のジェスチャを行うときに交差を決定することができる。いくつかの実施態様では、ターゲット物体は、円錐(または角錐)プロジェクションが少なくとも部分的に交差するまたは全体的に包含する第1の物体であることができる。他の実施態様では、ターゲット物体は、円錐(または角錐)プロジェクションが少なくとも部分的に交差するまたは全体的に包含する物体の全部であり得る。もっと他の実施態様では、円錐(または角錐)が交差する物体は、ユーザの凝視、または交差された物体へマップされる指を含むジェスチャなど他の身体パーツのポジションまたはジェスチャに応じてターゲット物体として識別することができる。いくつかの実施態様では、図30~図34との関連で以下に述べられるように、円錐の直径は、ユーザの手の間の距離またはユーザの人差し指と親指の先端間の距離などの他のジェスチャによって制御され得る。
ブロック1608において、プロセス1600は、ブロック1606において決定された1つまたは複数のターゲット物体とのインタラクションを引き起こすことができる。たとえば、プロセス1600は、ターゲット物体を選択し、ターゲット物体を移動もしくは回転させ、または他のインタラクションを行うことができる。
図17は、2つの円錐プロジェクション1702および1752の一例1700を示す概念図である。ユーザの手1706および1756は、プロジェクションの開始を指し示す親指および中指を接続することによるジェスチャを形成している。例1700では、制御点1704および1754は、ユーザの中指からのオフセットである。円錐プロジェクション1702は、制御点1704から広がり、円錐プロジェクション1702がターゲット物体1708と交差する、ターゲット物体1708A、1708B、1708C、1708D、および1708Eの各々と少なくとも部分的に交差するまで直径が増加する。例1700では、物体は、プロジェクションがそれらと交差するとすぐに選択され、したがって、ターゲット物体1708A~Eは、円錐プロジェクション1702によって選択される。円錐プロジェクション1752は、制御点1754から広がり、やはり直径を増加させる。しかしながら、ターゲット物体1758は、ターゲット物体1708が手1706に対するよりも手1756に近く、したがって円錐プロジェクション1752だけがターゲット物体1758と交差する。プロジェクションがそれらと交差するとすぐに物体が例1700において選択されるので、ターゲット物体1758は、円錐プロジェクション1752によって選択される。
いくつかの実施態様では、手インタラクションシステムは、現在のコンテキストに基づいて投影するあるタイプのプロジェクションを自動的に選択することができる。たとえば、明らかなターゲット物体が密接にグループ化されるとき(たとえば、別のタイプのプロジェクションが閾値数の物体よりも多く包含するとき、またはプロジェクションの中心から閾値距離内の物体が、互いから閾値距離内であるとき)、システムは、光線プロジェクションを使用することができる。別の例として、手インタラクションシステムは、光線プロジェクションが交差する最も近い物体が閾値距離よりも大きく離れているとき、球または円錐プロジェクションに切り換えることができる。図18は、プロジェクションタイプのコンテキストに基づく選択のための本技術のいくつかの実施態様に使用されるプロセス1800を示す流れ図である。
ブロック1802において、プロセス1800は、ユーザ凝視のためにインタラクション平面を識別することができる。インタラクション平面は、ユーザが現在インタラクトしている物体の(または複数の物体間の中心についての)人工現実環境中の平面である。たとえば、インタラクション平面は、ユーザの追跡された凝視が向けられる平面に基づいて決定することができる。別の例として、ユーザが仮想物体を選択した場合、インタラクション平面は、その物体を中心とすることができる。ブロック1804において、プロセス1800は、ユーザとブロック1802において識別されるインタラクション平面との間で人工現実環境の仮想空間内の距離を計算することができる。
ブロック1806において、プロセス1800は、現在のターゲット物体の表面タイプを識別することができる。様々な実施態様では、表面タイプは、ターゲット物体の表面が平らであるか否か、ターゲット物体のサイズ、ターゲット物体がコントロール部を含むか、ターゲット物体がどんなタイプのコントロール部を含むか、ユーザまたは他のユーザがどんなタイプのインタラクションをターゲット物体との関連で前に行っていたか等に基づいて分類することができる。他の実施態様では、タイプは、たとえば、物体のクリエータによってターゲット物体に割り当てられたセッティングであり得る。いくつかの実施態様では、プロセス1800は、ブロック1802の代わりに、ブロック1806で始まることができる。様々な実施態様では、プロセス1800は、ブロック1806を含んでもよく、またはスキップしてもよい。
ブロック1808において、プロセス1800は、ブロック1804において計算された距離および/またはブロック1806において識別された表面タイプに基づいてプロジェクションタイプを選択することができる。いくつかの実施態様では、この選択は、プロジェクションタイプへの距離範囲のマッピングに基づいていることができる。たとえば、インタラクション平面がユーザの3フィート以内にあるときに、光線プロジェクションが使用されてもよく、インタラクション平面がユーザの3フィートから7フィートにあるときに、円柱プロジェクションが使用されてもよく、インタラクション平面がユーザから7フィートよりも大きいときに、円錐プロジェクションが使用されてもよい。他の実施態様では、マッピングは、プロジェクションタイプへの表面タイプのものであり得る。たとえば、表面タイプが複数のボタンおよびコントロール部を有する平らな表面を指し示す場合、光線プロジェクションが使用されてもよく、さもなければ円柱プロジェクションが使用されてもよい。もっとさらなる実施態様では、マッピングは、プロジェクションタイプへの距離範囲および表面タイプのペアに関し得る。たとえば、インタラクション平面は、ユーザの3フィート内であり、表面タイプが複数のボタンおよびコントロール部を有する平らな表面を指し示すとき、光線プロジェクションが使用されてもよく、インタラクション平面がユーザの3フィート以内にあり、表面タイプが、コントロール部がないことを指し示すとき、円柱プロジェクションが使用されてもよく、インタラクション平面がユーザから3フィートから7フィートであり、表面タイプが、物体が7インチの閾値よりも大きいことを示すとき、円柱プロジェクションが使用されてもよいが、表面タイプが、物体が7インチの閾値よりも小さいことを示す場合、光線プロジェクションが使用されてもよく、インタラクション平面がユーザから7フィートよりもそれ以上である場合、表面タイプに関せず円錐プロジェクションが使用されてもよい。
複数物体選択
ユーザが人工現実環境中で動作するとき、ユーザは、さらなるインタラクションのために様々な物体を選択する、または物体に対して動作を行うためにXRシステムを特定することができる。いくつかの既存のXRシステムが、各物体に向けられた指ジェスチャを行うことなどによって物体を選択するための技法を有するが、これらの技法は、いくつかの欠点を有する。たとえば、ユーザが物体のグループを選択することを所望するとき、各物体を個々に選択することは、時間がかかり、イライラさせるものであり、余分の処理能力を必要とする。離れているまたは小さい物体を選択するとき、既存の技法は、低精度および正確さに悩まされ、ユーザがどの物体を選択することを意図するのかXRシステムが正しく解釈するのを難しくさせる。また、ユーザが、XRシステムの観点から、互いを隠す物体を選択する意図があるとき、XRシステムは、ユーザが選択する意図がある物体を一義化する仕方を知らない。さらに、既存のXRシステムの場合、物体が他の物体の密集場内にあるとき、物体グループ内のユーザの意図の集中改良は不可能である。
既存のシステムにおけるこれらの欠点を克服するための技術は、複数の物体を選択するための「切断」ジェスチャ、「投げ縄」ジェスチャ、および「フレーム」ジェスチャ、コントロール部を起動するために「切断・クリック」ジェスチャ、ならびに潜在的なターゲット物体間で一義化するための様々なツーハンデッドの「両手を用いる」ジェスチャを識別し、解釈するシステムおよびプロセスを含む。
図19は、切断ジェスチャを用いて物体を選択するための本技術のいくつかの実施態様に使用されるプロセス1900を示す流れ図である。ブロック1902において、プロセス1900は、物体選択の開始に対応するアクションを識別することができる。いくつかの実施態様では、アクションは、ユーザの親指と人差し指または中指との間の「ピンチ」などの特別のジェスチャであることができる。いくつかの実施態様では、アクションは、ユーザの手が視野内にあること、現在の手の追跡ポジションの信頼値が閾値よりも上にあること、または手が静止状態にないことといったインジケーションのうちの1つまたは複数を手の追跡システムが与えることなどのゲーティング条件を識別することを含むこともできる。
ブロック1904において、プロセス1900は、1つまたは複数の身体パーツの追跡されたポジションに基づいて制御点および投影方向を継続的に決定することができる。たとえば、身体パーツは、手のパーツ(たとえば、指先、手首、手のひら、こぶし等)、目、頭、胸部または胴、脚または足等であり得る。制御点は、身体パーツの1つにあり得る、または身体パーツからオフセットされ得る。いくつかの実施態様では、投影方向は、ユーザの目の一方と制御点を接続する線に沿っていることができる。たとえば、プロセス1900は、物体と、制御点から外向きに延びるとともに制御点とユーザの利き目の両方に交差する線との間の交差を記録することができる。この例の効果は、それらが制御点を移動させることによって空間内の「描き」のようにユーザに現れる。他の実施態様では、図5から図11との関連で上述したように、プロジェクションが使用されてもよい。これらの実施態様では、投影方向は、制御点、および肩、目、または臀部などの原点を通過する線に沿っていることができる。いくつかの実施態様では、描きは、ユーザの凝視によって行われてもよく、制御点は、ユーザの瞳の中心の推定されたポジションであることができ、原点は、ユーザの網膜の中心の推定されたポジションであることができる。
ブロック1906において、プロセス1900は、投影方向に基づいて経路を表示することができる。経路は、制御点および投影方向によって指し示される位置の記録であり得る。いくつかの実施態様では、経路は、ユーザが制御点を移動させることによって人工現実環境中で経路を描いているかのようにユーザに現れることができる。他の実施態様では、経路は、プロジェクションの端部にユーザが経路を作り出しているかのようにユーザに現れることができる。いくつかの実施態様では、プロセス1900は、経路を表示せず、ブロック1906をスキップする。
ブロック1908において、プロセス1900が制御点および投影方向を継続的にモニタするときに、プロセス1900は、ユーザの視点から、制御点が交差する任意の物体を記録することができる。いくつかの実施態様では、プロセス1900は、投影プロジェクションが交差する任意の物体のインジケーションを記録することができる。
ブロック1910において、ユーザがジェスチャを解除すること、またはユーザの手の移動の速さが閾値を下回ることなどの1つまたは複数のトリガに応答して、プロセス1900は、ブロック1908においてインジケーションが記録された物体を選択することができる。たとえば、プロセス1900は、5つの指先全てをくっつけるジェスチャをユーザが形成したことを認識することによって、ブロック1902において開始することができた。ブロック1904、1906、および1908において、プロセス1900は、ユーザの指先のちょうど正面の点を制御点として監視し、ユーザの利き目の追跡されたポジションに基づいて方向を決定し、ユーザの視点から制御点が交差される各物体を記録しておくことができた。プロセス1900は、ユーザが5本の指のジェスチャを解除するまでこれを続けていることができた。この点においてプロセス1900は、任意の記録された物体が選択されることを可能にする。
図20は、切断ジェスチャを使用して物体を選択する一例2000を示す概念図である。例2000において、ユーザは、ジェスチャ2002を作ることによって、ユーザの親指先、人差し指先、および中指先をくっつけ始めた。次いで、手インタラクションシステムは、制御点2004(ジェスチャ2002の正面でずれた点)および投影方向2006を追跡し始めた。例2000において、投影方向2006は、ユーザの目(図示せず)および制御点2004を接続する線を決定することによって形成される。したがって、ユーザの視点から、制御点2004は、ドロー点2008を隠す。まず、ユーザがジェスチャ2002を形成したとき、ドロー点2008は、点2010にあった。次いで、ユーザは、ユーザの手を移動させ、制御点2004を移動させ、これによりドロー点2008を点2010から経路2012に沿って進行させた。結果として、経路2012は、物体2014および2016と交差するが、物体2018と交差せず、手インタラクションシステムにより物体2014および2016のインジケーションを記録する。例2000において、手インタラクションシステムは、ユーザが見るために人工現実環境中の経路2012を表示する。ユーザがジェスチャ2002を解除すると、手インタラクションシステムは、記録されたインジケーションに基づいて物体2014および2016を選択する。本明細書の図に示されるように、物体は、その図中の他の物体と比較して、その物体のワイヤフレームが太線を有するときに「選択される」ものとして示される。
図21は、切断・クリックジェスチャを使用して物体を作動させるための本技術のいくつかの実施態様に使用されるプロセス2100を示す流れ図である。ブロック2102において、プロセス2100は、物体選択の開始に対応するアクションを識別することができる。いくつかの実施態様では、アクションは、ユーザの親指と人差し指または中指との間の「ピンチ」などの特別のジェスチャであることができる。いくつかの実施態様では、アクションは、ユーザの手が視野内にあること、現在の手追跡ポジションの信頼値が閾値よりも上にあること、または手が静止状態にないことといった1つまたは複数のインジケーションを手追跡システムが与えることなどのゲーティング条件を識別することを含むこともできる。
ブロック2104において、プロセス2100は、1つまたは複数の身体パーツの追跡されたポジションに基づいて制御点および投影方向を継続的に決定することができる。身体パーツは、たとえば、手のパーツ(たとえば、指先、手首、手のひら、こぶし等)、目のパーツ、頭、胸部または胴、脚または足等であり得る。制御点は、身体パーツの1つにあり得る、または身体パーツからオフセットされ得る。いくつかの実施態様では、投影方向は、ユーザの目の一方と制御点を接続する線に沿っていることができる。たとえば、プロセス2100は、物体と制御点から外向きに延びるとともに制御点とユーザの利き目の両方に交差する線に沿って下る線との間の交差を記録することができる。この例の効果は、それらが制御点を移動させることによって空間内の「描き」のようにユーザに現れる。他の実施態様では、図5から図11との関連で上述したようにプロジェクションが使用されてもよい。これらの実施態様では、投影方向は、制御点および肩、目、または臀部などの原点を通過する線に沿っていることができる。いくつかの実施態様では、描きは、ユーザの凝視によって行われてもよく、制御点は、ユーザの瞳の中心の推定されたポジションであることができ、原点は、ユーザの網膜の中心の推定されたポジションであることができる。
ブロック2106において、プロセス2100は、投影方向に基づいて経路を表示することができる。経路は、制御点および投影方向によって指し示される位置の記録であり得る。いくつかの実施態様では、経路は、ユーザが制御点を移動させることによって人工現実環境中で経路を描いているかのようにユーザに現れることができる。他の実施態様では、経路は、プロジェクションの端部にユーザが経路を作り出しているかのようにユーザに現れることができる。いくつかの実施態様では、プロセス2100は、経路を表示せず、ブロック2106をスキップする。
ブロック2108において、プロセス2100が制御点および投影方向を継続的にモニタするときに、プロセス2100は、投影方向に基づいているユーザの視点から制御点が交差する任意の物体を記録することができる。プロジェクションが使用されるいくつかの実施態様では、プロセス2100は、プロジェクションが交差する任意の物体のインジケーションを記録することができる。いくつかの実施態様では、交差を記録することに代えてまたは加えて、プロセス2100が(ボタンまたは他のコントロール部などの)アクション可能な物体との交差を識別しているときにはいつでも、プロセス2100は、物体を作動させることができる。
ブロック2110において、ユーザがジェスチャを解除すること、またはユーザの手の移動の速さが閾値を下回ることなどの1つまたは複数のトリガに応答して、プロセス2100は、ブロック2108においてインジケーションが記録された物体を作動させることができる。たとえば、プロセス2100は、5つの指先全てをくっつけるジェスチャをユーザが形成したことを認識することによって、ブロック2102において開始することができた。ブロック2104、2106、および2108において、プロセス2100は、制御点としてのユーザの指先のちょうど正面で点をモニタし、ユーザの利き目の追跡されたポジションに基づいて方向を決定し、ユーザの視点から制御点が交差するアクション可能な各物体を記録することができた。プロセス2100は、ユーザが5本の指のジェスチャを解除するまでこれを継続していることができ、その時点で、プロセス2100は、任意の記録された物体を作動させることができる。いくつかの実施態様では、プロセス1900および2100は、制御点を移動することでアクション可能な交差された物体が作動され、他の交差された物体が選択できる場合に一緒に行うことができる。いくつかの実施態様では、アクション可能な物体が作動され、アクション可能な物体およびアクション不可能な物体の両方が選択される。
図22は、切断・クリックジェスチャを使用してボタン物体を作動させる一例2200を示す概念図である。例2200において、ユーザは、ジェスチャ2202を行い、ユーザの親指先と中指先をくっつけることによって始めた。次いで、手インタラクションシステムは、制御点2204(ジェスチャ2202の正面でずれた点)および投影方向2206を追跡し始めた。例2200において、投影方向2206は、ユーザの目(図示せず)と制御点2204を接続する線を決定することによって形成される。したがって、ユーザの視点から、制御点2204は、ドロー点2208を隠す。まず、ユーザがジェスチャ2202を形成したとき、ドロー点2208は、点2210にあった。次いで、ユーザは、ユーザの手を移動させ、制御点2204を移動させ、これによりドロー点2208を点2210から経路2212に沿って進行させた。結果として、経路2212は、ボタン物体2214と交差し、手インタラクションシステムにボタン物体2214を作動させる。例2200において、手インタラクションシステムは、人工現実環境中に経路2212を表示する。
図23は、投げ縄ジェスチャを使用して物体を選択するための本技術のいくつかの実施態様に使用されるプロセス2300を示す流れ図である。ブロック2302において、プロセス2300は、物体選択の開始に対応するアクションを識別することができる。いくつかの実施態様では、アクションは、ユーザの親指と人差し指または中指との間の「ピンチ」などの特別のジェスチャであることができる。いくつかの実施態様では、アクションは、ユーザの手が視野内にあること、現在の手追跡ポジションの信頼値が閾値よりも上にあること、あるいは手が静止状態にないことといった1つまたは複数インジケーションを手追跡システムが与えることなどのゲーティング条件を識別することを含むこともできる。
ブロック2304において、プロセス2300は、1つまたは複数の身体パーツの追跡されたポジションに基づいて制御点および投影方向を継続的に決定することができる。身体パーツは、たとえば、手のパーツ(たとえば、指先、手首、手のひら、こぶし等)、目のパーツ、頭、胸部または胴、脚または足等であり得る。制御点は、身体パーツの1つにあり得る、または身体パーツからオフセットされ得る。いくつかの実施態様では、投影方向は、ユーザの目の一方を制御点に接続する線に沿っていることができる。たとえば、プロセス2300は、ユーザが制御点を移動させることに基づいて、ユーザの目先における歪んだ円錐の先端および歪んだ円錐の辺の形状が形成された歪んだ円錐内に物体が入るか決定することができる。本明細書中で使用されるとき、「歪んだ円錐」は、必ずしも円形または楕円形ではない底面を有する円錐である。いくつかの実施態様では、歪んだ円錐形状は、ユーザがユーザの凝視を移動させることによって作り出すことができ、この凝視は、ユーザの瞳の中心の推定されたポジションおよびユーザの瞳の中心の推定されたポジションから形成される線によって決定される。
ブロック2306において、プロセス2300は、投影方向に基づいて経路を表示することができる。経路は、制御点および投影方向によって指し示される位置の記録であり得る。いくつかの実施態様では、経路は、ユーザが制御点を移動させることによって人工現実環境中で経路を描いているかのようにユーザに現れることができる。いくつかの実施態様では、プロセス2300は、経路を表示せず、ブロック2306をスキップする。
ブロック2308において、プロセス2300が制御点および投影方向を継続的にモニタするときに、プロセス2300は、制御点のユーザ移動が投げ縄入力として意図されたことを決定することができる。いくつかの実施態様では、プロセス2300は、経路のインジケーションを、投げ縄入力を識別するように訓練された機械学習モデルに与えることによってこの決定を行う。いくつかの実施態様では、プロセス2300は、ユーザの眺めから経路を2D平面に平滑化し、経路がそれ自体交差することを決定することによってこの決定を行う。投げ縄入力は、投げ縄入力によって形成される形状の閉じられたアウトラインを定めることができる。投げ縄入力が閉じられた形状を作らない場合、プロセス2300は、投げ縄入力に適合する直線または曲線を用いてアウトラインを閉じることができる。
ブロック2310において、投げ縄入力の識別、ユーザがジェスチャを解除すること、またはユーザの手の移動の速さが閾値を下回ることなどの1つまたは複数のトリガに応答して、プロセス2300は、ユーザの目の一方で歪んだ円錐の先端、および投げ縄入力によって定められた閉じられた形状によって形成される歪んだ円錐形状が形成された歪んだ円錐を識別することができる。たとえば、歪んだ円錐は、ユーザの目から延び、閉じられた形状上の点を通過する可能な各線によって形成され得る。
ブロック2312において、プロセス2300は、ブロック2310において識別された歪んだ円錐内に入る物体を選択することができる。いくつかの実施態様では、プロセス2300は、歪んだ円錐に少なくとも部分的に交差する、または歪んだ円錐内に閾値量(たとえば、少なくとも30%、50%、または75%)の物体の体積を有する物体を選択することもできる。たとえば、プロセス2300は、5つの指先全てをくっつけるジェスチャをユーザが形成したことを認識することによって、ブロック2302において開始することができた。ブロック2304~2310において、プロセス2300は、ユーザの指先のちょうど正面の点を制御点として監視し、ユーザの利き目の追跡されたポジションに基づいて方向を決定し、ユーザの視点から制御点によって定められた経路を追跡し、経路が投げ縄入力を形成したことを決定するために機械学習モデルを使用した。次いで、プロセス2300は、ユーザの目先で始まり、投げ縄入力の閉じた部分上のあらゆる点を通ってやはり延びるように移動される線の経路によって定められた歪んだ円錐を識別することができた。次いで、プロセス2300は、歪んだ円錐内に少なくとも部分的に入る任意の物体を選択させることができた。
いくつかの実施態様では、本明細書に説明される多数の選択プロセスは、単一のジェスチャに組み合わせることができる。たとえば、プロセス1900および2300は、組み合わせることができる。一例では、プロセス1900は、ブロック1902において、入力が投げ縄ジェスチャであるかを決定するためにブロック2308から分析を継続的に行いつつ始めることができる。投げ縄ジェスチャが識別される場合、プロセス1900は、プロセス2300のブロック2308へ移行することができる。投げ縄ジェスチャが識別されない場合、プロセス1900は、継続することができる。別の例では、ユーザによって描かれた投げ縄ジェスチャは、始めおよび/または終わりの「末端」で、閉じられた形状を有することができる。プロセス1900および2300のこの例の組合せは、ユーザの視点から(末端を含む)投げ縄ジェスチャの経路に交差する全ての物体を選択することができ、投げ縄ジェスチャの閉じられた形状部分によって形成された歪んだ円錐の内側に入る全ての物体を選択することができる。別の例では、プロセス2100は、プロセス2300によって選択されるいずれのアクション可能な物体も作動されることが可能であるようにプロセス2300と組み合わされてもよい。
図24Aは、投げ縄ジェスチャを使用して物体を選択する一例2400を示す概念図である。例2400では、ユーザは、ジェスチャ2402を行い、ユーザの親指先、人差し指先、および中指先をくっつけることによって始めた。次いで、手インタラクションシステムは、制御点2404(ジェスチャ2402の正面でずれた点)、およびユーザの目(図示せず)および制御点2404を接続する線を決定することによって形成される投影方向を追跡し始めた。したがって、ユーザの視点から、制御点2404を移動させることが、人工現実環境中に経路を「描く」ために使用することが可能である。まず、ユーザがジェスチャ2402を形成したとき、ユーザは、点2406で描き始めた。次いで、ユーザは、ユーザの手を移動し、制御点2404を移動させ、経路2408を作り出した。経路2408が点2410において(ユーザの視点から)それ自体と交差するとき、手インタラクションシステムは、機械学習モデルに基づいて、ユーザが投げ縄選択を描いたことを決定した。次いで、手インタラクションシステムは、経路2408の閉じたセクションを歪んだ円錐(図示せず)に形成し、歪んだ円錐が物体2412、2414、および2416と少なくとも部分的に交差することを決定した。したがって、手インタラクションシステムは、交差された物体2412、2414、および2416を選択した。
図24Bは、投げ縄ジェスチャを使用して物体を選択する一例2450を示す別の概念図である。例2450において、ユーザは、例2400と同様にジェスチャに基づいて制御点を移動させることによって、閉じられた形状2452で経路を形成した。手インタラクションシステムは、ユーザの利き目2456先に円錐の先端を有し、歪んだ円錐の縁部が閉じられた形状2452と一致するように延びる歪んだ円錐2454を形成した。次いで、手インタラクションシステムは、形状2452を越える(すなわち、ユーザから閉じられた形状2452の反対側にある)、歪んだ円錐2454のその部分と交差する任意の物体を決定した。例2450において、これらは、物体2456および2458である。したがって、手インタラクションシステムは、交差された物体2456および2458を選択したが、交差していない物体2460および2462を選択しなかった。
図25は、フレームジェスチャを使用して物体を選択するための本技術のいくつかの実施態様に使用されるプロセス2500を示す流れ図である。ブロック2502において、プロセス2500は、物体選択の開始に対応するアクションを識別することができる。いくつかの実施態様では、アクションは、各手のユーザの親指がその手の人差し指または中指に触れることで形成され、2つのピンチが親指/他の指の交差点で触れるツーハンデッド「ピンチ」ジェスチャであり得る。いくつかの実施態様では、アクションは、親指を床に直交して上に突き出させるとともに人差し指を床に平行にさせた第1の手と親指を床に直交して下に突き出させるとともに人差し指を床に平行にさせた第2の手とで形成され、矩形の2つの対向したコーナを定める、ツーハンデッド「L」ジェスチャであり得る。いくつかの実施態様では、ジェスチャは、三角形または楕円形などの別の形状を定める片手または両手のユーザの指であり得る。いくつかの実施態様では、ジェスチャは、片手で形成され得る。たとえば、ジェスチャは、開かれたときに、ユーザの親指および他の指の先端における点に対応する矩形の対向点を定めるピンチであり得る。別の例として、ジェスチャは、システムが制御点を追跡することを始めるピンチであり得る。制御点は、矩形の対向点を線の始点および終点として定める線を描くように移動され得る。いくつかの実施態様では、アクションは、ユーザの手が視野内にあること、現在の手追跡ポジションの信頼値が閾値よりも上にあること、あるいは手が静止状態にないことといった1つまたは複数のインジケーションを手追跡システムが与えることなどのゲーティング条件を識別することを含むこともできる。
ブロック2504において、プロセス2500は、第1のユーザの手の第1の追跡された部分および第2のユーザの手の第2の追跡された部分によって定められた形状を継続的に決定することができる。形状は、矩形であってもよく、追跡された手の部分は、矩形の対向したコーナに対応するブロック2502において識別された点であり得る。ユーザが手を移動させるとき、プロセス2500は、矩形についての新しいサイズおよびポジションを決定することができる。他の実施態様では、形状は、線、または所与の形状に従うようにこの線を接続するおよび/または線をスナップする曲線を、ユーザの手の部分に認めることによって定めることができる。たとえば、プロセス2500は、矩形を認識するように構成することができ、ユーザは、それぞれの手でL形を作ることができる。プロセス2500は、L形のパーツを作る各指に線を認め、それを交差するように延ばし、適正な角度を形成するようにこれらの4つの線をスナップし、矩形を作ることができる。別の例として、プロセス2500は、楕円形を認識するように構成されてもよく、ユーザは、一方の手の親指と人差し指を用いた「C」形、および別の逆向きの他方の手の親指と人差し指を用いた「C」形を作ることができる。プロセス2500は、曲線を各C形に認め、曲線を交差するように延ばし、これらの曲線を楕円形を形成するように滑らかにすることができる。上述したように、いくつかの実施態様では、形状は、単一の手を使用したジェスチャによって定めることができ、たとえば、矩形は、ユーザの人差し指および親指の点で定められる対向したコーナで形成され、または矩形の対向したコーナを線の始点および終点として定める(ブロック1902および1904によって追跡された経路と同様に)ユーザによって描かれた線に基づいて形成される。
ブロック2506において、プロセス2500は、ブロック2504において決定された形状の(アウトラインなどの)表示を表示することができる。たとえば、ユーザがピンチジェスチャを使用して矩形の対向したコーナを引き離すようにジェスチャを作っている場合、矩形は、継続的に描かれ、矩形のアウトラインをユーザに示すことができる。いくつかの実施態様では、プロセス2500は、形状表示を表示せず、ブロック2506をスキップする。
ブロック2508において、プロセス2500は、ユーザの目の一方に角錐の先端が形成された角錐を識別することができ、角錐壁は、ブロック2504において決定された矩形に基づいて形成されている。たとえば、角錐は、ユーザの目から延びるとともに、矩形の一縁を通過する4つの三角形によって形成することができる。ブロック2504において決定された形状が矩形以外であるいくつかの実施態様では、形状が三角形である場合には四面体、または形状が(ブロック2310と同様に形成された)楕円形である場合には円錐などの他の3D形状が決定されてもよい。
ブロック2510において、ブロック2502におけるアクションの識別に継続的に従って、ブロック2502において識別されたジェスチャをユーザが解除すると、またはユーザの手の移動の速さが閾値を下回るときなどの1つまたは複数のトリガに応答して、プロセス2500は、ブロック2508において識別された角錐(または他の形状)内に入る物体を選択することができる。いくつかの実施態様では、プロセス2500は、角錐(または他の形状)に少なくとも部分的に交差する、または物体内に閾値量(たとえば、少なくとも20%、50%、または85%)の物体の体積を有する物体を選択することもできる。たとえば、プロセス2500は、2つの触れているピンチジェスチャをユーザが形成したことを認識することによってブロック2502において開始され得る。ブロック2504~2510において、プロセス2500は、ユーザがユーザの2つのピンチジェスチャを引き離すときにユーザの2つのピンチジェスチャにおける対向したコーナが形成された矩形のサイズおよびポジションを継続的に決定することができた。次いで、プロセス2500は、ユーザが見るようにこの矩形を描き、ユーザの利き目先に先端を有するとともに矩形によって定められた角錐形状を有する角錐を識別し、角錐内に少なくとも部分的に入る任意の物体を選択させることができた。
いくつかの実施態様では、本明細書に説明される多数の選択プロセスは、単一のジェスチャに組み合わせることができる。たとえば、プロセス2100および2500は、プロセス2500によって選択された任意のアクション可能な物体がやはり駆動され得るように組み合わされてもよい。
図26Aは、フレームジェスチャを使用して物体を選択する一例2600を示す概念図である。例2600において、ユーザは、ジェスチャ2602Aおよび2602Bを作り、親指先と人差し指先をくっつけ、点2612でそれらのジェスチャ触れ合わせることによって始めた。次いで、手インタラクションシステムは、ユーザの視点からジェスチャ2602Aおよび2602Bの位置に基づいて矩形2604の対向したコーナを追跡し始めた。したがって、ユーザの視点から、ジェスチャ点2602Aおよび2602Bを移動させることで、矩形2604を形成した。ユーザがユーザの手を離すように移動させたとき、矩形2604のコーナは離れるように移動し、矩形2604のサイズを増大させた。ユーザがこの矩形を形成したとき、手インタラクションシステムは、ユーザの利き目先に角錐先端および矩形2604の縁部を通って延びる辺が形成された角錐を決定した。例2600において、手インタラクションシステムは、ユーザがジェスチャ2602Aまたは2602Bの一方を解除するまで、角錐と少なくとも部分的に交差する物体を継続的に選択した(または選択解除した)。したがって、手インタラクションシステムは、交差された物体2606および2608を選択したが、2610を選択しなかった。
図26Bは、フレームジェスチャを使用して物体を選択する一例2650を示す別の概念図である。例2650において、ユーザは、例2600と同様に、2つのピンチジェスチャを形成し、2つのピンチジェスチャを引き離すことによって矩形2652を形成した。手インタラクションシステムは、ユーザの利き目2656先に角錐の先端を有し、角錐の縁部を形成する4つの三角形が矩形2652に一致するように延びる角錐2654を形成した。次いで、手インタラクションシステムは、矩形2652を共に越える(すなわち、ユーザから矩形2652の反対側にある)とともに、角錐2654内に完全に入る任意の物体を決定した。例2650において、これは、物体2658である。したがって、手インタラクションシステムは、包まれた物体2658を選択したが、包まれていない物体2660および2662を選択しなかった。
両手を用いるインタラクション
単一の手ジェスチャは、XRシステムとインタラクトするときにユーザが表現できる仕方を制限する。手インタラクションシステムは、ユーザの両方の手の姿勢を追跡することができ、第2の手(たとえば、非利き手)が第1の手(たとえば、利き手)によって制御されたジェスチャにニュアンスを与えることを可能にする。これらの両手を用いる(すなわち、ツーハンデッド)インタラクションは、ユーザがユーザの日常体験およびスキルを人工現実環境中のインタラクションに伝達することを可能にする。たとえば、上述したプロジェクションキャスティング技法を用いてインタラクションを行うとき、プロジェクションは、物体が緊密にグループ化され、ユーザがそのサブセットを選択することを望むとき、または物体が散開され、ユーザがそれらの全部を選択することを望むとき、ユーザが意図するよりも多いまたは少ない物体と、複数の物体が互いを隠すように交差することができる。これらの場合には、第2の手によって(および/または同じ手の異なるパーツを用いて)行われる第2のジェスチャは、光線プロジェクションの長さ(たとえば、「フック」インタラクション)、または円錐プロジェクションの直径(たとえば、「トロンボーン」インタラクション)などのプロジェクションの態様を制御することができる。いくつかの実施態様では、ユーザは、1つまたは複数のターゲット物体とのより複雑なインタラクションを行うことを望むことができ、ユーザの第2の手を使用してコントロール部とインタラクトすることによってこれらのインタラクションの詳細を特定することができる。
図27は、光線プロジェクションと交差する対象物と非対象物の間で一義化するための本技術のいくつかの実施態様に使用されるプロセス2700を示す流れ図である。たとえば、これは、ユーザが、光線プロジェクションを使用するときに互いを隠す物体を一義化することを可能にすることができる。
ブロック2702において、プロセス2700は、1つまたは複数の身体パーツの追跡されたポジションに基づいて制御点および投影方向を決定することができる。プロセス2700は、ブロック1202と同様にこれを達成することができる。ブロック2704において、プロセス2700は、投影方向に沿って制御点から光線プロジェクションを生成することができる。プロセス2700は、ブロック1204と同様にこれを達成することができる。
ブロック2706において、プロセス2700は、制御点を制御する第1の手(たとえば、利き手)と第2の手(たとえば、非利き手)との間の距離関係を継続的に決定することができる。いくつかの実施態様では、2つの手の間の距離の代わりに、距離関係は、一方の手の2本の指(たとえば、人差し指の先端と親指の先端)間の距離に基づいていることができる。他の実施態様では、距離関係は、一方の手とユーザの胴などの別の身体パーツとの間の距離に基づいていることができる。いくつかの実施態様では、光線プロジェクションは、ユーザの凝視に沿っていることができ、ユーザは、光線に沿ってユーザの目からより近くにまたはさらに遠くにユーザの手を移動させることによって距離を特定することができる。様々な実施態様では、距離は、任意の方向にあることができ、または(たとえば、光線に直交したまたは光線に沿った)特別の方向にあることができる。
様々な実施態様では、距離関係は、ユーザの両手間の実際の距離に線形にまたは指数的に比例することができる。いくつかの実施態様では、この関係は、ユーザがユーザの両手間の距離を変える速度に基づいていることができる。たとえば、プロセス2700が決定する量は、より速い移動が遅い移動よりも量を増加させるように対数的に増加または減少させられることができる。これによりユーザが速い移動を使用してより大きい粒度で量を制御するとともに、より遅い移動を使用してより精密な調整を行うことを可能にする。いくつかの実施態様では、距離関係は、人工現実環境の決定されたサイズに従ってスケール変更することができる。たとえば、より小さい空間内で、移動はより精密になることができ、一方、より大きい空間内で、移動は、より大きい距離で物体とインタラクトするように光線をさらに延ばすことができる。
ブロック2708において、プロセス2700は、ブロック2706において決定された距離関係に基づいて光線プロジェクションの長さまたは「フック」位置を継続的に設定することができる。いくつかの実施態様では、光線長さを設定する代わりに、プロセス2700は、距離関係に基づいて光線に沿ってインタラクション点を設定することができる。光線の終わりであろうと、または光線に沿った点であろうと、このインタラクション点は、本明細書中で「フック」と呼ばれる。いくつかの実施態様では、プロセス2700は、光線の視覚的表示を提供することができ、フックの(球などの)グラフィカル表示を含むことができる。
ブロック2710において、プロセス2700は、フックとの交差に基づいて1つまたは複数の物体を識別することができる。いくつかの実施態様では、これは、フックが物体と交差するとすぐに行われ得る。他の実施態様では、プロセス2700は、ジェスチャが作られるときにフックが交差する物体を選択するためのトリガとして、一方の手でクリックジェスチャを行うこと、ユーザの頭を縦に振ること、ユーザの足をタップすること等などのユーザによって行われる第3のジェスチャを識別することができる。ブロック2712において、プロセス2700は、ブロック2710において識別された物体の選択を切り替える、または他の方法でその物体とインタラクトすることができる。
図28および図29は、光線プロジェクション2802とインタラクトする選択された物体と選択されなかった物体の間で一義化するためのフックを使用する一例2800および2900を示す概念図である。例2800は、ユーザの利き手2806のユーザの親指と中指の間でピンチジェスチャ2804を行うことによってユーザが光線プロジェクション2802を作り出すことで始まる。ユーザは、光線2802が物体2808および2810と交差するように光線2802を配置することができる。次いで、ユーザは、ユーザの利き手2806と非利き手2818の間の距離2816に基づいて、光線2802の終わりにあるフック2814を用いて、光線の長さを制御することができる。フック2814が、ユーザがターゲットにすることを意図する物体2810と交差するとき、ユーザは、このときユーザの利き手2806のユーザの人差し指および親指を用いて第2のピンチジェスチャ(図示せず)を行うことができる。手インタラクションシステムがこのジェスチャを識別するとき、手インタラクションシステムは、その瞬間にフック2814が交差する物体2810を選択する。例2900において、次いで、ユーザは、第1の親指/中指のピンチをまだ保持しつつユーザの利き手2806とユーザの非利き手2818との間の距離2816を長くすることによって、光線2802の長さを変更し、それに応じて、フック2814のポジションを変更し、フック2814を物体2812と交差させる。ユーザは、さらなる親指/人差し指のピンチを用いてジェスチャ2902を再び行うことによって、今や物体2812がフック2814と交差するので、物体2812を選択することもできる。
図30は、円錐または円柱プロジェクションと交差するターゲット物体と非ターゲット物体の間の「トロンボーン」ジェスチャに関して一義化するための本技術のいくつかの実施態様に使用されるプロセス3000を示す流れ図である。たとえば、これにより、ユーザは、円錐または円柱が交差するその物体を容易に制御するために、円錐または円柱プロジェクションの直径を拡大するまたは縮小することを可能にすることができる。
ブロック3002において、プロセス3000は1つまたは複数の身体パーツの追跡されたポジションに基づいて制御点および投影方向を決定することができる。プロセス3000は、ブロック1402または1602と同様にこれを達成することができる。ブロック3004において、プロセス3000は、投影方向に沿って制御点から円錐または円柱プロジェクションを生成することができる。プロセス3000は、ブロック1404または1604と同様にこれを達成することができる。
ブロック3006において、プロセス3000は、制御点を制御する第1の手(たとえば、利き手)と第2の手(たとえば、非利き手)との間の距離関係を継続的に決定することができる。いくつかの実施態様では、2つの手の間の距離の代わりに、距離関係は、一方の手の2本の指(たとえば、人差し指の先端と親指の先端)間の距離に基づいていることができる。他の実施態様では、距離関係は、一方の手とユーザの胴などの別の身体パーツとの間の距離に基づいていることができる。いくつかの実施態様では、円錐または円柱プロジェクションは、ユーザの凝視に沿っていることができ、ユーザは、円錐または円柱の中心に沿ってユーザの目からより近くにまたはさらに遠くにユーザの手を移動させることによって距離を特定することができる。様々な実施態様では、距離は、任意の方向にあることができ、または(たとえば、円錐または円柱の中心に直交したまたは円錐または円柱の中心に平行な)特別の方向にあることができる。
様々な実施態様では、距離関係は、ユーザの両手間の実際の距離に線形にまたは指数的に比例することができる。いくつかの実施態様では、この関係は、ユーザがユーザの両手間の距離を変える速度に基づいていることができる。たとえば、プロセス3000が決定する量は、より速い移動が遅い移動よりも量を増加させるように対数的に増加または減少させられることができる。これによりユーザが速い移動を使用してより大きい粒度で量を制御するとともに、より遅い移動を使用してより精密な調整を行うことを可能にする。
ブロック3008において、プロセス3000は、ブロック3006において決定された距離関係に基づいて円柱の直径または円錐の底面の直径を継続的に設定することができる。いくつかの実施態様では、プロセス3000は、円錐または円柱の視覚的表示を提供し、ユーザが距離関係を変更するときに円錐または円柱がサイズを変更することを示すことができる。
ブロック3010において、プロセス3000は、円錐または円柱による少なくとも部分的な交差または完全な包含に基づいて1つまたは複数の物体を識別することができる。いくつかの実施態様では、これは、円錐または円柱が物体と交差するとすぐに起こり得る。他の実施態様では、プロセス3000は、円錐または円柱がその瞬間に交差する任意の物体を識別するためのトリガとして、一方の手でクリックジェスチャを行うこと、ユーザの頭を縦に振ること、ユーザの足をタップすること等などのユーザによって行われる第3のジェスチャを識別することができる。ブロック3012において、プロセス3000は、ブロック3010において識別された物体の選択を切り替える、または他の方法でその物体とインタラクトすることができる。
プロセス2700およびプロセス3000を組み合わせる代替実施態様において、ユーザは、1つのジェスチャ(たとえば、利き手の親指と人差し指の先端間の距離)を用いて円柱または円錐の長さを制御することができ、別のジェスチャ(たとえば、ユーザの2つの手の間の距離)を用いて円柱または円錐の底面の直径を制御することができる。この代替例の修正として、円柱または円錐プロジェクションの代わりに、ユーザが1つのジェスチャ(たとえば、ユーザの2つの手の間の距離)に基づいて光線に沿った球の位置を制御する、および別のジェスチャ(たとえば、利き手の親指と人差し指の先端間の距離)を用いて球の直径を制御する、球プロジェクションが使用されてもよい。
図31および図32は、円錐プロジェクションと交差する選択された物体と選択されなかった物体の間で一義化するためのトロンボーンジェスチャの例3100および3200を示す概念図である。例3100は、ユーザの利き手3106のユーザの親指と中指の間でピンチジェスチャ3104を行うことによってユーザが円錐プロジェクション3102を作り出すことで始まる。ユーザは、円錐3102が物体3108、3110、3112、および3120と交差するように円錐3102を配置することができる。次いで、ユーザは、ユーザの利き手3106と非利き手3118の間の距離3116に基づいて円錐3102の底面3114の直径を制御することができる。手インタラクションシステムは、物体3108、3110、3112、および3120が円錐3102と交差するので、物体3108、3110、3112、および3120を選択する。例3200において、ユーザは、第1の親指/中指のピンチジェスチャをまだ保持しつつユーザの利き手3106と非利き手3118の間の距離3116を変更することによって円錐3102の底面3114の直径を変更し、円錐3102を物体3112および3108のみと交差させる。それに応じて、手インタラクションシステムは、物体3120および3110を選択解除することができるが、物体3108および3112を選択されたままにする。ユーザは、ユーザの意図したターゲット物体が選択され、その点でジェスチャ3104を解除するまで継続することができる。
図33および図34は、円柱プロジェクションと交差する選択された物体と選択されなかった物体の間で一義化するためのトロンボーンジェスチャの例3300および3400を示す概念図である。例3300は、ユーザの利き手3310のユーザの親指と中指の間でピンチジェスチャ3304を行うことによってユーザが円柱プロジェクション3302を作り出すことで始まる。ユーザは、円柱3302が物体3308、3306、および3330と交差するように円柱3302を配置することができる。次いで、ユーザは、ユーザの利き手3310と非利き手3318の間の距離3316を変化させることによって円柱3302の底面3314の直径を制御することができる。手インタラクションシステムは、物体3308、3306、および3330が円柱3302と交差する物体であるとき、これらを選択するが、物体3332は円柱3302と交差しないので、物体3332を選択しない。例3400において、次いで、ユーザは、第1の親指/中指のピンチをまだ保持しつつユーザの利き手3310と非利き手3318の間の距離3316を変化させることによって、円柱3302の底面3314の直径を変更する。この変更により、円柱3302を物体3306、3308、3330、および3332と交差させる。ユーザは、ユーザの意図したターゲット物体が選択され、その点でユーザがジェスチャ3304を解除するまで継続することができる。
上述したように、ジェスチャの組合せは、強力なインタラクション技法であるが、一部の状況では、あらゆるアクションに異なるジェスチャをマップすることは、ユーザを混乱させているまたはユーザが行うことができるアクションを制限していている可能性がある。しかしながら、離れている物体とインタラクトするとき、それらの物に結び付けられたメニューは、ユーザがインタラクトするのが難しい場合がある。ワールドロックされるメニューは、ユーザがメニューとインタラクトしつつそれ自体またはターゲット物体を移動させることを望む場合に制限であり得る。ユーザがワールドロックされたメニューをターゲット物体に適合することも難しい場合がある。これらの問題は、プロジェクションを用いて選択された物体に関する、物体の代わりにプロジェクションキャスティングの手に結び付けられるメニューを用いて克服され得る。これにより第2の手がメニューとインタラクトすることが可能になり、それにより物体と容易にインタラクトすることが可能である。図35は、利き手に結び付けられたメニューを使用した物体との両手を用いるインタラクションのために本技術のいくつかの実施態様に使用されるプロセス3500を示す流れ図である。
ブロック3502において、プロセス3500は、利き手を使用して選択された1つまたは複数の物体の識別を受け取ることができる。いくつかの実施態様では、選択は、上記のプロジェクションまたはマルチ選択プロセスのうちの1つを使用して行われ得る。いくつかの実施態様では、選択は、プロジェクションまたは選択を開始するために使用されるジェスチャなどの特別のジェスチャに関連し得るとともに、プロセス3500は、ユーザがそのジェスチャを保持している間だけ継続することができる。たとえば、ユーザは、物体を選択するために光線プロジェクションを投影することができ、プロセス3500は、ユーザが(物体を選択していない)プロジェクションを移動させる、またはプロジェクションジェスチャを解除するまで、その選択された物体に対応するメニューの提供を継続することができる。
ブロック3504において、プロセス3500は、プロセス3500がブロック3502においてインジケーションを受け取った1つまたは複数の物体に関連した1つまたは複数のメニューを取得することができる。ブロック3506において、プロセス3500は、利き手に関連している1つまたは複数のメニューを表示することができる。他の実施態様では、利き手に関連している1つまたは複数のメニューを常に表示する代わりに、プロセス3500は、非利き手に関連している、または1つもしくは複数の物体の選択を行った手を用いる1つまたは複数のメニューを表示することができる。様々な実施態様では、1つまたは複数のメニューの各々は、(手首、親指の中心、指先、手の甲の中央、手の重心等のように)手の点からずれてもよく、そのような点において「皮膚」として重ねられてもよく、(たとえば、ブレスレット、指輪等として現れるように)手のパーツに巻き付けられてもよく、またはそれらの組合せであってもよい。いくつかの実施態様では、1つまたは複数のメニューは、特別の指の移動、または手の回転などのジェスチャに基づいて出現したり消えたりするようにトリガされ得る。
ブロック3508において、プロセス3500は、表示された1つまたは複数のメニューとのインタラクションを受け取ることができる。いくつかの実施態様では、インタラクションは、メニューが関連付けられる同じ手で行われてもよく(たとえば、中指に現れる「指輪」メニューが、その同じ手の親指によってタップされてもよく)、またはそれが利きであってもなくても反対の手によるインタラクションであってもよい。1つまたは複数のメニューは、選択された物体との任意のタイプのインタラクションを行うためのコントロール部を有してもよく、メニューを有するインタラクションは、そのインタラクションをトリガすることができる。いくつかの実施態様では、メニュー選択は、手インタラクションシステムに特別のやり方でさらなるジェスチャを解釈させることができる。たとえば、メニュー選択が「移動する」である場合、利き手の移動により、それに応じて、手インタラクションシステムに、選択された1つまたは複数の物体を移動させることができる。別の例として、メニュー選択が「回転する」である場合、利き手の移動により、手インタラクションシステムに、選択された1つまたは複数の物体を比例的に回転させることができる。
図36、図37、および図38は、利き手に結び付けられたメニューを使用した物体との両手を用いるインタラクションの例3600、3700、および3800を示す概念図である。例3600において、物体3602のインジケーションが、ユーザの利き手3606によって投影される光線プロジェクション3604を使用した物体3602の選択により受け取られる。例3700において、物体3602の選択に応答して、メニュー3702は、利き手3602に関連して、利き手3602の重心からオフセットされて現れる。メニュー3702は、ユーザの非利き手3710によって作動され得る物体3602のためのコントロール部を含む。例3700において、コントロール部は、選択された物体3602の90度回転を行うコントロール部3704、利き手3606の回転に従って選択された物体3602の自由回転を可能にするコントロール部3706、および選択された物体3602をサイズ変更するコントロール部3708を含む。例3800において、ユーザは、コントロール部3706の隣にユーザの非利き手3710を使用してピンチジェスチャ3802を行うことによってコントロール部3706を作動させている。コントロール部3706の作動により、手インタラクションシステムに、利き手3606の回転を選択物体3602の回転にマップさせる。
動作モード
人工現実環境内で物体を移動させること、および物体上のコントロール部を作動させることなど、ユーザが物体との関連で行うことができる様々なタイプのインタラクションがある。しかしながら、そのようなインタラクションを行うためのジェスチャは、曖昧であり、既存のXRシステムにジェスチャの区別を不正確にさせ得る。特に、精度は距離に関して劣化するので、異なる状況において同じ入力モダリティのこれらのシステムを使用し、インタラクションタイプの区別をそれができないことにより、既存のXRシステムのユーザは、インタラクションが退屈でストレスが多いと感じる。これらの問題点に対処するために、手インタラクションシステムは、(たとえば、グローバルインタラクションモードとローカルインタラクションモードの間で)動作モードを切り換えることができる。グローバルモードは、環境内で物体を操作(たとえば、仮想環境中の物体の選択、物体配置の制御、向き、サイズ等)するために、またはそのようなグローバルインタラクションに役立つ入力モダリティ(たとえば、光線、球、または円錐投影)へ切り換えるために使用することができる。ローカルモードは、物体のインタフェースとインタラクトする(たとえば、物体上のボタンを押す、または物体に関連したメニューとインタラクトする)ために、またはそのようなローカルインタラクションに役立つ入力モダリティ(たとえば、ユーザの指へのマッピングボタン)へ切り換えるために、使用することができる。したがって、曖昧な入力が、どちらのモードが手インタラクションシステムのために現在設定されているかに従って解釈され得る。様々な実施態様では、代替または追加の動作モードが、使用されてもよい。たとえば、3つ以上のモードが定められてもよく、モードは、異なる目的のために定められてもよく、モードは、異なるやり方等でトリガされてもよい。
様々な実施態様では、ユーザは、(たとえば、ジェスチャまたはボタン押下を用いて)動作モードを明示的に選択することができ、またはモード選択は、(たとえば、ユーザ凝視に基づいて)暗示的であってもよい。動作モードを切り換えることに対応する明示的または暗示的なトリガに応答して、次いで、手インタラクションシステムは、選択されたモードについて定められたアクションへのジェスチャのマッピングに従って入力ジェスチャを解釈することができる。たとえば、第1のモード(たとえば、グローバルモード)への切り替えを識別することに応答して、手インタラクションシステムは、第1の(たとえば、グローバル)モードについて定められた第1のセットのアクションにおける第1のアクションに第1のジェスチャをマップすることによって第1のジェスチャを解釈することができる。次いで、第2の動作モード(たとえば、ローカルモード)への切り換えを引き起こす第2のトリガに応答して、手インタラクションシステムは、第2の(たとえば、ローカル)モードについて定められた第2のセットのアクションにおける第2のアクションに第2のジェスチャをマップすることによって第2のジェスチャを解釈することができる。
いくつかの実施態様では、入力モダリティは、動作モードが起動されることに基づいて変更することができる。たとえば、グローバルモードにおいて、入力は、ジェスチャ方向を決定することに基づいて入力モダリティ(たとえば、光線、円柱、球、または円錐プロジェクションなどのプロジェクションキャスティング)に切り換えることができる。ローカルモードにおいて、入力は、選択された物体に関連したコントロール部をユーザの手の指にマップすることなどによって他のモダリティに切り換えることができ、マップされた指の特に検出された移動は、対応するコントロール部の作動を制御する。
図39は、(たとえば、グローバルモードインタラクションまたはローカルモードインタラクションのための)入力モダリティを切り換えるための本技術のいくつかの実施態様に使用されるプロセス3900を示す流れ図である。ブロック3902において、プロセス3900は、作モード間で移行するためトリガを識別することができ、ブロック3904において、プロセス3900は、(たとえば、トリガがグローバル入力モードに入ろうがまたはローカル入力モードに入ろうが)どのモードにトリガが対応するのか識別することができる。いくつかの実施態様では、トリガは、明示的なユーザアクションであり得る。例として、特別のジェスチャは、手インタラクションシステムに、モード間で切り替えさせ、またはジェスチャが保持されている間、第1の(たとえば、ローカル)モードへ切り換えさせ、ジェスチャが識別されていないとき、第2の(たとえば、グローバル)モードへ切り換えさせることができ、手インタラクションシステムは、入力の手が垂直に回転させられるときに第1のモードへ切り換えることができ、そうでないときに第2のモードへ切り換えることができ、手インタラクションシステムは、現実または仮想のボタン押下、または音声コマンド等に応答してモード間で切り替えることができる。いくつかの実施態様では、モードを切り換えるためのトリガは、暗示的であり得る。一例として、手インタラクションシステムは、ユーザの追跡された凝視が時間の閾値量(たとえば、1秒、2秒、または3秒)を上回る間、物体上に残るときにローカルモードに入ることができ、ユーザの凝視が別の時間の閾値量にわたってその物体から外れているときにグローバルモードに入ることができる。別の例において、手インタラクションシステムは、グローバルモードで開始し、最初にユーザが物体を選択するとローカルモードに入り、ユーザが物体をタップオフすると、または他の方法で定められた「バック」ジェスチャを行うとグローバルモードへ戻るように移行することができる。トリガがユーザの手を回転させることなどの関連ジェスチャであるいくつかの実施態様において、ユーザの手がモード間の境界上にあるときに、ヒステリシスが、モード間のジッタを防ぐために適用されてもよい。トリガが第1の(たとえば、グローバル)モードへ移行した場合、プロセス3900は、ブロック3906へ継続することができ、トリガが第2の(たとえば、ローカル)モードへ移行すべきであった場合、プロセス3900は、ブロック3908へ継続することができる。
ブロック3906において、プロセス3900は、現在のモード(たとえば、グローバルモード)のために確立された入力モダリティへ切り換えることができる。いくつかの実施態様では、グローバルモードのための入力モダリティは、(たとえば、プロジェクションを投影する(たとえば、上述したように光線、球、円柱、または円錐)を投影する)ジェスチャ方向を決定することに基づいていることができる。他の実施態様では、入力モダリティは、(たとえば、物体を回転させ、物体をサイズ変更させ、または物体を移動させるために)物体が選択されているときに、グローバルインタラクションのためにコントロール部のセットを提示することができる。
ブロック3908において、プロセス3900は、第2のモード(たとえば、ローカルモード)のために確立された入力モダリティへ切り換えることができる。様々な実施態様では、入力モダリティは、利用可能なインタラクションと特別の指の移動または他のジェスチャのマッピング、円錐投影から光線投影への切り換えなどの投影タイプ間の切り換え、または位置インタラクションを行うために構成されたコントロール部の表示であってもよい。いくつかの実施態様では、ローカルインタラクションは、グローバルモードにおいて選択される1つまたは複数の物体などの特別の選択された物体についてであってもよい。これは、必ずしもユーザのインタラクションをターゲット物体へ差し向けるまたは他の方法で向けることなく、ユーザが選択された物との関連でインタラクションを行うことを可能にする。場合によって、選択された物体は、たとえば、ユーザの凝視に基づいて、現在の(たとえば、ローカル)モードから出ることなく変更することができる。他の実施態様では、ローカルインタラクションは、どの物体をユーザが指し示すかに基づいていることができる。
いくつかの実施態様では、プロセス3900は、手ごとに別個に行われてもよい。たとえば、ユーザの利き手は、物体を選択するためのプロジェクションを制御する第1の(たとえば、グローバル)モードにあってもよく、一方、ユーザの非利き手は、第2の(たとえば、ローカル)モードにあってもよく、コントロール部は、利き手が選択する物体どれともインタラクトするために非利き手の指へマップされる。
ブロック3906または3908を行った後、プロセス3900は、代替のグローバルモードまたはローカルモードへ切り換えるための別のトリガを識別すると、ブロック3902へ戻ることができる。
図40Aおよび図40Bは、グローバルモードインタラクションまたはローカルモードインタラクションのための入力モダリティを切り換える一例4000を示す概念図である。例4000において、ユーザは、ユーザの手4002の回転向きに基づいてローカルとグローバルモードの間で移行する。例4000において、ユーザは、矢印4004によって指し示されるように、ユーザの手4002を垂直に回すことによって手インタラクションシステムをローカルモードに入らせた(たとえば、ユーザの手の平を表す平面は、確立された床平面と直交することから30度などの少なくとも度の閾値数である)。
ローカルモードに入ると、ローカルモードコントロール部4008のセットが、先に選択された物体4006と共に出現する。コントロール部4008は、ボタン4010~4016を含む。この例において、コントロール部4010は指4018へマップされ、コントロール部4012は指4020へマップされ、コントロール部4014は指4022へマップされ、コントロール部4016は指4024へマップされる。ユーザが指4018を延ばしたので、対応するマップされたえコントロール部4010が起動される。
例4000は、図40Bに続いており、ユーザは、矢印4052によって示されるように、ユーザの手4002を水平であるように回転させることによって、手インタラクションシステムをグローバルモードに移行させている(たとえば、ユーザの手の平を表す平面は、確立された床平面と平行であることから30度などの少なくとも度の閾値数である)。それに応じて、手インタラクションシステムは、図40Aの手マップコントロール部から光線プロジェクション4054へ入力モダリティを切り換え、ユーザが光線プロジェクション4054を使用して物体4006または他の物体とのグローバルインタラクションをさらに行うことを可能にする。
図41は、現在の(たとえば、グローバルまたはローカル)モードにおける特別のインタラクションとしてジェスチャを解釈するための本技術のいくつかの実施態様に使用されるプロセス4100を示す流れ図である。ブロック4102において、プロセス4100は、2つのモード(たとえば、グローバルモードおよびローカルモード)から間で移行するためのトリガを識別することができ、ブロック4104において、プロセス4100は、トリガがどのモードに対応するのか(たとえば、トリガがグローバルモードまたはローカルモードに入ることになるのか)識別することができる。ブロック4102および4104は、ブロック3902および3904と同様に行うことができる。トリガが第1の(たとえば、グローバル)モードのためであった場合、プロセス4100は、ブロック4106へ続くことができ、トリガが第2の(たとえば、ローカル)モードのためであった場合、プロセス4100は、ブロック4108へ続くことができる。
ブロック4106において、プロセス4100は、手インタラクションシステムに、現在の(たとえば、グローバル)モードに従ってさらなるユーザ入力を解釈させることができる。ブロック4108における間、プロセス4100は、手インタラクションシステムに第2の(たとえば、ローカル)モードに従ってさらなるユーザ入力を解釈させることができる。物体に関して得ることができるアクションは、(たとえば、グローバルモードまたはローカルモードのどちらかにおける)利用可能なモードの実行可能なものに分けることができる。手インタラクションシステムは、現在起動されているモードについて定められたアクションのセットにおけるアクションに入力ジェスチャを適合させることができる。たとえば、グローバルモードにあるとき、バーチャルチェス盤の右上コーナから下向きにドラッグするジェスチャは、チェス盤を回転させる意図として解釈することができる。しかしながら、ローカルモードにおいて、同じジェスチャは、ジェスチャの長さに対応する量だけ右上角隅から前方へルークを移動させることとして解釈することができる。別の例として、ターゲット物体が仮想ドロー系アプリケーションである場合、手インタラクションシステムは、アプリケーション内で線を引くものとしてローカルモードにおいてクリックアンドドラッグジェスチャを解釈することができ、一方、手インタラクションシステムは、描画面を表示する仮想パネルを回転させるコマンドとしてグローバルモードにおいて同じジェスチャを解釈することができる。いくつかの実施態様では、プロセス4100は、手ごとに別個に行われてもよい。たとえば、3Dモデルの面上でコントロール部を作動させるために、ユーザの利き手が、3Dモデルの向きを制御する第1の(たとえば、グローバル)モードにあってもよく、一方、ユーザの非利きは、第2の(たとえば、ローカル)モードにあってもよい。
ブロック4106または4108を行った後、プロセス4100は、交互モードへ切り換えるための別のトリガを識別すると、ブロック4102へ戻ることができる。
図42Aおよび図42Bは、グローバルモードまたはローカルモードのどちらかにおけるインタラクションとしてジェスチャを解釈する一例4200を示す概念図である。例4200において、ユーザは、少なくとも2秒間ユーザの凝視が物体に止まることに基づいてローカルモードへ移行し、またはユーザの凝視が少なくとも1.5秒間その物体に残すとき、グローバルモードへ移行する。例4200において、ユーザは、ユーザの凝視4202を物体4204に2秒間向けることによって、手インタラクションシステムに物体4204との関連でローカルモードに入らせた。
例4200は、図42Bに続いており、ユーザは、ユーザの手4252で光線プロジェクション4254を制御する。ユーザが(図42Aに示されるように)ユーザの凝視に基づいてローカルモードに入ったので、物体4204と交差する光線プロジェクション4254は、物体4204のコントロール部4256を作動させることによってローカルインタラクションを引き起こす。ユーザの凝視(図42Bに図示せず)は、1.5秒よりも多くの間物体4204に残っておらず、したがって、手インタラクションシステムは、ローカルモードにおけるままであった。いくつかの実施態様では、プロセス3900および4100は、グローバルモードとローカルモードの切り換えが、入力モダリティを共に変更させ、他の方法で曖昧な入力を現在のグローバルモードまたはローカルモードに従って解釈させるように一緒に行うことができる。
本明細書における、「実施態様」(たとえば、「いくつかの実施態様」、「様々な実施態様」、「一実施態様」、「実施態様」等)の参照は、実施態様に関連して説明される特別の特徴、構造、または特性が本開示の少なくとも1つの実施態様に含まれることを意味する。本明細書中の様々な場所におけるこれらのフレーズの出現は、全てが必ずしも同じ実施態様に言及するものではなく、他の実施態様を相互に除外する別個または代替の実施態様でもない。また、いくつかの実施態様によって呈示されるが、他のものによって呈示されない場合がある様々な特徴が説明されている。同様に、いくつかの実施態様の要件であり得るが、他の実施態様の要件ではない場合がある様々な要件が説明されている。
本明細書中で使用されるとき、「指」は、手の5本の指のいずれかであってもよく、指先は、手の5本の指のいずれかの先端であってもよい。
本明細書中で使用されるとき、閾値よりも上にあることは、比較下の項目の値が特定の他の値よりも上にあること、比較下の項目が最大の値を有するある特定の個数の項目の中にあること、または比較下の項目が特定の上位パーセンテージ値の範囲内の値を有することを意味する。本明細書中で使用されるとき、閾値よりも下にあることは、比較下の項目の値が特定の他の値よりも下にあること、比較下の項目が最小の値を有するある特定の個数の項目の中にあること、または比較下の項目が特定の下位パーセンテージ値の範囲内の値を有することを意味する。本明細書中で使用されるとき、閾値内であることは、比較下の項目の値が2つの特定の他の値の間にあること、比較下の項目が中間の特定の個数の項目の中にあること、または比較下の項目が中間の特定のパーセンテージ範囲内の値を有することを意味する。相対的な用語、たとえば、高いまたは重要でないは、別段定義がないとき、値を割り当て、その値を確立された閾値とどのように比較するのか決定するものとして理解することができる。たとえば、「高速接続を選択する」というフレーズは、閾値よりも上にあるその接続速度に対応して割り当てられた値を有する接続を選択することを意味すると理解され得る。
本明細書中で使用されるとき、「または」という語は、1セットの項目の任意の可能な順列を指す。たとえば、フレーズ「A、B、またはC」は、A、B、C、またはそれらの任意の組合せのうちの少なくとも1つを指し、たとえばA;B;C;AおよびB;AおよびC;BおよびC;A、B、およびC;またはAおよびA;B、B、およびC;A、A、B、C、およびC;等などの多数の任意の項目のいずれかである。
主題が構造的特徴および/または方法論の作用に特定の言葉で説明されてきたが、添付の特許請求の範囲に定められた主題は、必ずしも上記の特定の特徴または作用に必ずしも限定されないことを理解されたい。特定の実施形態および実施態様は、例示のために本明細書に説明されているが、実施形態および実施態様の範囲から逸脱ことなく、様々な修正がなされ得る、上記の特定の特徴および作用は、次に続く特許請求の範囲を実施する例示的な形態として開示される。したがって、実施形態および実施態様は、添付の特許請求の範囲による場合を除き、限定されない。
上述されたいずれの特許、特許出願、および他の参考文献も、参照により本明細書に組み込まれる。態様は、もっとさらなる実施態様を提供するため、上記の様々な参考文献のシステム、機能、および概念を用いるために必要に応じて修正されてもよい。参照により組み込まれる文献における声明または主題が、本出願の声明または主題と矛盾する場合、本出願が優先されるものとする。

Claims (15)

  1. 人工現実環境中の物体とインタラクトする方法であって、
    ユーザの手の部分を追跡し、前記ユーザの前記手の追跡された前記部分に基づいて制御点を設定することと、
    前記ユーザの身体上の点を追跡し、前記ユーザの前記身体上の追跡された前記点に基づいて原点を設定することと、
    前記制御点および前記原点を通過する線を中心としたプロジェクション向きを決定することと、
    前記プロジェクション向きに沿って前記ユーザから外向きに前記制御点から光線プロジェクションを投影することと、
    前記光線プロジェクションの1つまたは複数の位置に基づいて1つまたは複数の物体との関連でアクションを行うこととを含む、人工現実環境中の物体とインタラクトする方法。
  2. 前記ユーザの前記身体上の前記点は、前記ユーザの前記身体上の第1の点であり、
    1つまたは複数のオリジン遷移ファクタを識別することと、
    前記1つまたは複数のオリジン遷移ファクタに基づいて、前記原点が前記ユーザの前記身体上の追跡された第2の点へ移動すべきことを決定することと、
    前記ユーザの前記身体上の前記第1の点から前記ユーザの前記身体上の前記第2の点へ前記原点を移動させることとをさらに含む、請求項1に記載の方法。
  3. 前記原点を前記移動させることは、前記ユーザの前記身体上の前記第1の点を前記ユーザの前記身体上の前記第2の点に接続する経路との関連で設定速度で前記原点を移動させることを含む、請求項2に記載の方法。
  4. 前記ユーザの前記身体上の前記第1の点は、前記ユーザの目または肩であり、
    前記ユーザの前記身体上の前記第2の点は、前記ユーザの臀部であり、
    前記経路は、直線によってA)前記ユーザの前記目または前記ユーザの前記肩をB)前記ユーザの前記臀部に接続する、
    請求項3に記載の方法。
  5. 前記1つまたは複数のオリジン遷移ファクタは、追跡されたユーザ凝視方向を含む、請求項2に記載の方法。
  6. 前記原点が移動すべきとの前記決定は、
    前記ユーザ凝視方向に関連した角度を決定することと、
    角度が閾値よりも上にあることを決定することと、
    それに応じて、前記ユーザの前記身体上の前記第2の点が前記ユーザの前記身体上の前記第1の点よりも下にある高インタラクションモードを選択することとを含む、請求項5に記載の方法。
  7. 前記1つまたは複数のオリジン遷移ファクタは、前記制御点および前記原点を通過する前記線の特定の平面に対しての角度の測定値を含み、
    前記原点が移動すべきことを前記決定することは、
    前記角度が閾値よりも下にあることを決定することと、
    それに応じて、前記ユーザの前記身体上の前記第2の点が前記ユーザの前記身体上の前記第1の点よりも上にある低インタラクションモードを選択することとを含む、
    請求項2に記載の方法。
  8. 前記制御点との関連で追跡された前記ユーザの前記手の前記部分は、前記ユーザの指先である、請求項1に記載の方法。
  9. 前記制御点との関連で追跡された前記ユーザの前記手の前記部分は、前記ユーザの手首である、請求項1に記載の方法。
  10. 前記ユーザの前記手の追跡された前記部分に基づいて前記制御点を設定することは、前記ユーザの前記手の前記部分から特定のオフセットにある位置で前記制御点を選択することを含む、請求項1に記載の方法。
  11. a)前記原点との関連で追跡された前記ユーザの前記身体上の前記点は、前記ユーザの利き目である、または
    b)前記原点との関連で追跡された前記ユーザの前記身体上の前記点は、前記ユーザの肩である、または
    c)前記原点との関連で追跡された前記ユーザの前記身体上の前記点は、前記ユーザの臀部である、または
    d)前記1つまたは複数の物体との関連で前記アクションを行うことは、前記1つまたは複数の物体が選択されることを含む
    のいずれか1つである、請求項1に記載の方法。
  12. コンピューティングシステムによって実行されるときに、前記コンピューティングシステムに、人工現実環境中の物体とインタラクトする動作を行わせる命令を記憶するコンピュータ可読記憶媒体であって、前記動作は、
    ユーザの手の部分の位置に基づいて制御点を設定することと、
    前記ユーザの身体上の点に基づいて原点を設定することと、
    前記制御点および前記原点を通過する線を中心としたプロジェクション向きを決定することと、
    プロジェクションの1つまたは複数の位置に基づいて1つまたは複数の物体との関連でアクションを行うこととを含む、命令を記憶するコンピュータ可読記憶媒体。
  13. a)前記ユーザの前記身体上の前記点は、前記ユーザの前記身体上の第1の点であり、前記動作は、
    1つまたは複数のオリジン遷移ファクタを識別することと、
    前記1つまたは複数のオリジン遷移ファクタに基づいて、前記原点が前記ユーザの前記身体上の前記第1の点および前記ユーザの前記身体上の第2の点を接続する経路に沿って前記ユーザの前記身体上の前記第2の点へ移動すべきことを決定することと、
    設定速度で前記経路に沿って前記原点を移動させることとをさらに含み、その場合には、適宜、
    前記1つまたは複数のオリジン遷移ファクタは、追跡されたユーザ凝視方向を含み、
    前記原点が移動すべきことを前記決定することは、
    前記ユーザ凝視方向に関連した角度を測定することと、
    決定された角度に基づいて、前記ユーザの前記身体上の前記第2の点が前記ユーザの前記身体上の前記第1の点よりも上にあるインタラクションモードを選択することとを含み、あるいは
    b)前記手の前記部分は、前記ユーザの指先、前記ユーザの手のひら、前記ユーザの手首、または前記ユーザのこぶしのうちの1つであり、
    身体上の前記点は、前記ユーザの利き目、前記ユーザの肩、または前記ユーザの臀部のうちの1つである
    のいずれか1つである、請求項12に記載のコンピュータ可読記憶媒体。
  14. コンピューティングシステムであって、
    1つまたは複数のプロセッサと、
    前記1つまたは複数のプロセッサによって実行されるときに、前記コンピューティングシステムに、
    ユーザの手の部分の位置に基づいて制御点を設定すること、
    前記ユーザの身体上の点に基づいて原点を設定すること、ならびに
    前記制御点および前記原点を通過する線を中心としたプロジェクションを投影すること
    を含む動作を行わせる命令を記憶するメモリとを備える、コンピューティングシステム。
  15. 前記ユーザの前記身体上の前記点は、前記ユーザの前記身体上の第1の点であり、前記動作は、
    1つまたは複数のオリジン遷移ファクタを識別することと、
    前記1つまたは複数のオリジン遷移ファクタに基づいて、前記原点が前記ユーザの前記身体上の前記第1の点および前記ユーザの前記身体上の第2の点を接続する経路に沿って前記ユーザの前記身体上の前記第2の点へ移動すべきことを決定することと、
    設定速度で前記経路に沿って前記原点を移動させることとをさらに含む、請求項14に記載のコンピューティングシステム。
JP2022501218A 2019-09-20 2020-09-21 仮想環境中のプロジェクションキャスティング Pending JP2022547775A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/578,221 US11176745B2 (en) 2019-09-20 2019-09-20 Projection casting in virtual environments
US16/578,221 2019-09-20
PCT/US2020/051763 WO2021055930A1 (en) 2019-09-20 2020-09-21 Projection casting in virtual environments

Publications (1)

Publication Number Publication Date
JP2022547775A true JP2022547775A (ja) 2022-11-16

Family

ID=73139368

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022501218A Pending JP2022547775A (ja) 2019-09-20 2020-09-21 仮想環境中のプロジェクションキャスティング

Country Status (5)

Country Link
US (1) US11176745B2 (ja)
EP (2) EP4031958B1 (ja)
JP (1) JP2022547775A (ja)
KR (1) KR20220062410A (ja)
WO (1) WO2021055930A1 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230005262A1 (en) * 2019-11-25 2023-01-05 Alon Melchner System and method for dynamic synchronization between real and virtual environments
US11175730B2 (en) 2019-12-06 2021-11-16 Facebook Technologies, Llc Posture-based virtual space configurations
EP3842911B1 (en) * 2019-12-26 2023-04-05 Dassault Systèmes A 3d interface with an improved object selection
CN115004132A (zh) * 2020-01-29 2022-09-02 索尼集团公司 信息处理装置、信息处理系统和信息处理方法
US11257280B1 (en) * 2020-05-28 2022-02-22 Facebook Technologies, Llc Element-based switching of ray casting rules
US11256336B2 (en) 2020-06-29 2022-02-22 Facebook Technologies, Llc Integration of artificial reality interaction modes
US11178376B1 (en) 2020-09-04 2021-11-16 Facebook Technologies, Llc Metering for display modes in artificial reality
US11610376B1 (en) 2022-04-08 2023-03-21 Meta Platforms Technologies, Llc Wrist-stabilized projection casting
KR102665046B1 (ko) * 2023-09-19 2024-05-13 주식회사 이안 증강 현실 기반의 시공 실적 등록 방법

Family Cites Families (82)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6842175B1 (en) 1999-04-22 2005-01-11 Fraunhofer Usa, Inc. Tools for interacting with virtual environments
US7701439B2 (en) 2006-07-13 2010-04-20 Northrop Grumman Corporation Gesture recognition simulation system and method
KR100783552B1 (ko) 2006-10-11 2007-12-07 삼성전자주식회사 휴대 단말기의 입력 제어 방법 및 장치
US9477368B1 (en) 2009-03-31 2016-10-25 Google Inc. System and method of indicating the distance or the surface of an image of a geographical object
US20100306716A1 (en) * 2009-05-29 2010-12-02 Microsoft Corporation Extending standard gestures
US8878779B2 (en) 2009-09-21 2014-11-04 Extreme Reality Ltd. Methods circuits device systems and associated computer executable code for facilitating interfacing with a computing platform display screen
US20120188279A1 (en) 2009-09-29 2012-07-26 Kent Demaine Multi-Sensor Proximity-Based Immersion System and Method
US9981193B2 (en) 2009-10-27 2018-05-29 Harmonix Music Systems, Inc. Movement based recognition and evaluation
US8593402B2 (en) 2010-04-30 2013-11-26 Verizon Patent And Licensing Inc. Spatial-input-based cursor projection systems and methods
US9134800B2 (en) 2010-07-20 2015-09-15 Panasonic Intellectual Property Corporation Of America Gesture input device and gesture input method
US9213890B2 (en) 2010-09-17 2015-12-15 Sony Corporation Gesture recognition system for TV control
US8497838B2 (en) 2011-02-16 2013-07-30 Microsoft Corporation Push actuation of interface controls
US8811719B2 (en) 2011-04-29 2014-08-19 Microsoft Corporation Inferring spatial object descriptions from spatial gestures
JP2012243007A (ja) 2011-05-18 2012-12-10 Toshiba Corp 映像表示装置及びそれを用いた映像領域選択方法
US11048333B2 (en) 2011-06-23 2021-06-29 Intel Corporation System and method for close-range movement tracking
US8558759B1 (en) 2011-07-08 2013-10-15 Google Inc. Hand gestures to signify what is important
US9117274B2 (en) 2011-08-01 2015-08-25 Fuji Xerox Co., Ltd. System and method for interactive markerless paper documents in 3D space with mobile cameras and projectors
US9292089B1 (en) 2011-08-24 2016-03-22 Amazon Technologies, Inc. Gestural object selection
JP5718197B2 (ja) 2011-09-14 2015-05-13 株式会社バンダイナムコゲームス プログラム及びゲーム装置
US8947351B1 (en) * 2011-09-27 2015-02-03 Amazon Technologies, Inc. Point of view determinations for finger tracking
JP5581292B2 (ja) 2011-09-30 2014-08-27 楽天株式会社 検索装置、検索方法、記録媒体、ならびに、プログラム
JP6121647B2 (ja) 2011-11-11 2017-04-26 ソニー株式会社 情報処理装置、情報処理方法およびプログラム
US20130125066A1 (en) 2011-11-14 2013-05-16 Microsoft Corporation Adaptive Area Cursor
EP2602703B1 (en) 2011-12-09 2018-02-07 LG Electronics Inc. -1- Mobile terminal and controlling method thereof
DE112011105917T5 (de) 2011-12-27 2014-09-18 Hewlett Packard Development Company, L.P. Benutzerschnittstellenvorrichtung
US20150220150A1 (en) 2012-02-14 2015-08-06 Google Inc. Virtual touch user interface system and methods
US9477303B2 (en) 2012-04-09 2016-10-25 Intel Corporation System and method for combining three-dimensional tracking with a three-dimensional display for a user interface
US9864433B2 (en) 2012-07-13 2018-01-09 Softkinetic Software Method and system for human-to-computer gesture based simultaneous interactions using singular points of interest on a hand
KR101969318B1 (ko) 2012-11-05 2019-04-17 삼성전자주식회사 디스플레이장치 및 그 제어방법
US9575562B2 (en) 2012-11-05 2017-02-21 Synaptics Incorporated User interface systems and methods for managing multiple regions
US9323343B2 (en) 2013-01-31 2016-04-26 Panasonic Intellectual Property Corporation Of America Information processing method and information processing apparatus
US10220303B1 (en) 2013-03-15 2019-03-05 Harmonix Music Systems, Inc. Gesture-based music game
CA2917478A1 (en) 2013-07-10 2015-01-15 Real View Imaging Ltd. Three dimensional user interface
US9448689B2 (en) 2013-08-30 2016-09-20 Paypal, Inc. Wearable user device enhanced display system
JP6090140B2 (ja) 2013-12-11 2017-03-08 ソニー株式会社 情報処理装置、情報処理方法及びプログラム
US9740296B2 (en) 2013-12-16 2017-08-22 Leap Motion, Inc. User-defined virtual interaction space and manipulation of virtual cameras in the interaction space
US9622322B2 (en) 2013-12-23 2017-04-11 Sharp Laboratories Of America, Inc. Task light based system and gesture control
US9311718B2 (en) 2014-01-23 2016-04-12 Microsoft Technology Licensing, Llc Automated content scrolling
US20150261659A1 (en) 2014-03-12 2015-09-17 Bjoern BADER Usability testing of applications by assessing gesture inputs
US10852838B2 (en) 2014-06-14 2020-12-01 Magic Leap, Inc. Methods and systems for creating virtual and augmented reality
US10416760B2 (en) 2014-07-25 2019-09-17 Microsoft Technology Licensing, Llc Gaze-based object placement within a virtual reality environment
KR101453815B1 (ko) 2014-08-01 2014-10-22 스타십벤딩머신 주식회사 사용자의 시점을 고려하여 동작인식하는 인터페이스 제공방법 및 제공장치
US20160098094A1 (en) * 2014-10-02 2016-04-07 Geegui Corporation User interface enabled by 3d reversals
KR20160046150A (ko) 2014-10-20 2016-04-28 삼성전자주식회사 도형 컨텐트를 생성 및 해석하는 방법 및 장치
EP3224694A4 (en) 2014-11-27 2018-09-05 Erghis Technologies AB Method and system for gesture based control of device
US10088971B2 (en) 2014-12-10 2018-10-02 Microsoft Technology Licensing, Llc Natural user interface camera calibration
US10275113B2 (en) 2014-12-19 2019-04-30 Hewlett-Packard Development Company, L.P. 3D visualization
US20160378291A1 (en) 2015-06-26 2016-12-29 Haworth, Inc. Object group processing and selection gestures for grouping objects in a collaboration system
KR101666561B1 (ko) * 2015-07-13 2016-10-24 한국과학기술원 증강 공간 내 부분 공간 획득 시스템 및 방법
US10101803B2 (en) * 2015-08-26 2018-10-16 Google Llc Dynamic switching and merging of head, gesture and touch input in virtual reality
AU2016341196B2 (en) 2015-10-20 2021-09-16 Magic Leap, Inc. Selecting virtual objects in a three-dimensional space
US10248284B2 (en) 2015-11-16 2019-04-02 Atheer, Inc. Method and apparatus for interface control with prompt and feedback
US9857881B2 (en) 2015-12-31 2018-01-02 Microsoft Technology Licensing, Llc Electrical device for hand gestures detection
US10665019B2 (en) 2016-03-24 2020-05-26 Qualcomm Incorporated Spatial relationships for integration of visual images of physical environment into virtual reality
US10643390B2 (en) * 2016-03-30 2020-05-05 Seiko Epson Corporation Head mounted display, method for controlling head mounted display, and computer program
KR20230098927A (ko) 2016-03-31 2023-07-04 매직 립, 인코포레이티드 포즈들 및 멀티-dof 제어기들을 사용하는 3d 가상 객체들과상호작용들
US10852835B2 (en) 2016-04-15 2020-12-01 Board Of Regents, The University Of Texas System Systems, apparatuses and methods for controlling prosthetic devices by gestures and other modalities
US10852913B2 (en) 2016-06-21 2020-12-01 Samsung Electronics Co., Ltd. Remote hover touch system and method
CN107801413B (zh) 2016-06-28 2020-01-31 华为技术有限公司 对电子设备进行控制的终端及其处理方法
US10268266B2 (en) * 2016-06-29 2019-04-23 Microsoft Technology Licensing, Llc Selection of objects in three-dimensional space
US10473935B1 (en) 2016-08-10 2019-11-12 Meta View, Inc. Systems and methods to provide views of virtual content in an interactive space
US11269480B2 (en) 2016-08-23 2022-03-08 Reavire, Inc. Controlling objects using virtual rays
US10809808B2 (en) 2016-10-14 2020-10-20 Intel Corporation Gesture-controlled virtual reality systems and methods of controlling the same
CN111610858B (zh) 2016-10-26 2023-09-19 创新先进技术有限公司 基于虚拟现实的交互方法及装置
AU2018256365A1 (en) 2017-04-19 2019-10-31 Magic Leap, Inc. Multimodal task execution and text editing for a wearable system
US10417827B2 (en) 2017-05-04 2019-09-17 Microsoft Technology Licensing, Llc Syndication of direct and indirect interactions in a computer-mediated reality environment
US10650544B2 (en) 2017-06-09 2020-05-12 Sony Interactive Entertainment Inc. Optimized shadows in a foveated rendering system
JP2019008351A (ja) 2017-06-20 2019-01-17 ソニー株式会社 情報処理装置、情報処理方法及び記録媒体
US10521944B2 (en) 2017-08-16 2019-12-31 Microsoft Technology Licensing, Llc Repositioning user perspectives in virtual reality environments
JP6981106B2 (ja) 2017-08-29 2021-12-15 株式会社リコー 撮像装置、画像表示システム、操作方法、プログラム
EP3467707B1 (en) 2017-10-07 2024-03-13 Tata Consultancy Services Limited System and method for deep learning based hand gesture recognition in first person view
US20190213792A1 (en) 2018-01-11 2019-07-11 Microsoft Technology Licensing, Llc Providing Body-Anchored Mixed-Reality Experiences
US10657716B2 (en) 2018-03-07 2020-05-19 California Institute Of Technology Collaborative augmented reality system
US11875012B2 (en) 2018-05-25 2024-01-16 Ultrahaptics IP Two Limited Throwable interface for augmented reality and virtual reality environments
US10698206B2 (en) 2018-05-31 2020-06-30 Renault Innovation Silicon Valley Three dimensional augmented reality involving a vehicle
US10948993B2 (en) 2018-06-07 2021-03-16 Facebook, Inc. Picture-taking within virtual reality
US10902678B2 (en) 2018-09-06 2021-01-26 Curious Company, LLC Display of hidden information
US10732725B2 (en) 2018-09-25 2020-08-04 XRSpace CO., LTD. Method and apparatus of interactive display based on gesture recognition
US10942577B2 (en) 2018-09-26 2021-03-09 Rockwell Automation Technologies, Inc. Augmented reality interaction techniques
US11107265B2 (en) 2019-01-11 2021-08-31 Microsoft Technology Licensing, Llc Holographic palm raycasting for targeting virtual objects
US11294472B2 (en) 2019-01-11 2022-04-05 Microsoft Technology Licensing, Llc Augmented two-stage hand gesture input
US11397463B2 (en) * 2019-01-12 2022-07-26 Microsoft Technology Licensing, Llc Discrete and continuous gestures for enabling hand rays

Also Published As

Publication number Publication date
EP4031958A1 (en) 2022-07-27
US20210090331A1 (en) 2021-03-25
EP4031958B1 (en) 2024-04-17
CN114174960A (zh) 2022-03-11
KR20220062410A (ko) 2022-05-16
WO2021055930A1 (en) 2021-03-25
EP4361784A2 (en) 2024-05-01
US11176745B2 (en) 2021-11-16
EP4361784A3 (en) 2024-05-29

Similar Documents

Publication Publication Date Title
US11257295B2 (en) Projection casting in virtual environments
US10802600B1 (en) Virtual interactions at a distance
US11947111B2 (en) Automatic projection type selection in an artificial reality environment
EP4031958B1 (en) Object interaction in an artificial reality environment
US11294475B1 (en) Artificial reality multi-modal input switching model
US11625103B2 (en) Integration of artificial reality interaction modes
EP2946264B1 (en) Virtual interaction with image projection
JP2022547930A (ja) 三次元環境と相互作用するためのデバイス、方法、及びグラフィカルユーザインタフェース
CN111819522A (zh) 用于混合现实显示器中的虚拟内容的遮挡光标
US11086406B1 (en) Three-state gesture virtual controls
Sun et al. Phonecursor: Improving 3d selection performance with mobile device in ar
CN116940915A (zh) 虚拟现实中的部分透视
US20220130100A1 (en) Element-Based Switching of Ray Casting Rules
CN114174960B (zh) 虚拟环境中的投影投射
US20240281070A1 (en) Simultaneous Controller and Touch Interactions
US12130967B2 (en) Integration of artificial reality interaction modes
JP2024128994A (ja) 人工現実(xr)環境におけるシステムユーザインターフェース(ui)インタラクションの容易化
Darbar Extending Interaction Space in Augmented Reality: Contributions in Optical-See-Through and Projection-Based Augmented Environments
WO2024173045A1 (en) Simultaneous controller and touch interactions
JP2024125265A (ja) 人工現実環境におけるユーザインターフェースインタラクションの容易化

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230727

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240716

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20241009