IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ オキュラス ブイアール,エルエルシーの特許一覧

特開2024-128994人工現実(XR)環境におけるシステムユーザインターフェース(UI)インタラクションの容易化
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024128994
(43)【公開日】2024-09-26
(54)【発明の名称】人工現実(XR)環境におけるシステムユーザインターフェース(UI)インタラクションの容易化
(51)【国際特許分類】
   G06F 3/01 20060101AFI20240918BHJP
   G09G 5/00 20060101ALI20240918BHJP
   G09G 5/37 20060101ALI20240918BHJP
   G09G 5/38 20060101ALI20240918BHJP
   G06T 19/00 20110101ALI20240918BHJP
【FI】
G06F3/01 510
G09G5/00 550C
G09G5/37 310
G09G5/38 100
G06T19/00 600
【審査請求】未請求
【請求項の数】20
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2024015499
(22)【出願日】2024-02-05
(31)【優先権主張番号】18/166,144
(32)【優先日】2023-02-08
(33)【優先権主張国・地域又は機関】US
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.ANDROID
2.iOS
(71)【出願人】
【識別番号】515046968
【氏名又は名称】メタ プラットフォームズ テクノロジーズ, リミテッド ライアビリティ カンパニー
【氏名又は名称原語表記】META PLATFORMS TECHNOLOGIES, LLC
(74)【代理人】
【識別番号】110002974
【氏名又は名称】弁理士法人World IP
(72)【発明者】
【氏名】ヴィクター-フイチニ, アナスタシア
(72)【発明者】
【氏名】インスリー, マシュー アラン
(72)【発明者】
【氏名】レヴァティチ, サミュエル マシュー
(72)【発明者】
【氏名】ルーサー, マシュー
(72)【発明者】
【氏名】ジョンソン, アンドリュー シー.
(72)【発明者】
【氏名】クレン, マテウス
(72)【発明者】
【氏名】ワン, ディフェイ
(72)【発明者】
【氏名】ステフォ, アーヴィ
(72)【発明者】
【氏名】スミス, ノラ ライリィ
(72)【発明者】
【氏名】バスラヴィ, アハド ハビブ
(57)【要約】      (修正有)
【課題】人工現実(XR)環境におけるシステムユーザインターフェース(UI)インタラクションを容易にするためのコンピュータ実装方法を提供すること
【解決手段】方法は、XR環境におけるシステムUIを3D仮想要素としてレンダリングし、ユーザの手の位置およびユーザ上の所定の安定点を追跡し、追跡することに基づいて、手がシステムUIの一部を把持したことを識別し、それに応答して、ユーザが把持された部分を介してシステムUIを移動させるときに、安定点とシステムUIの表面との間の線がシステムUIの表面に対して垂直にまたは垂直から所定の角度になるように移動するように、システムUIの把持された部分を中心にシステムUIの位置を回転させる。
【選択図】図2A
【特許請求の範囲】
【請求項1】
人工現実(XR)環境におけるシステムユーザインターフェース(UI)インタラクションを容易にするためのコンピュータ実装方法であって、
前記XR環境内の3D仮想要素として前記システムUIをレンダリングすることであって、前記システムUIが前記システムUIの表面上に配置されたUI要素のセットを含む、前記システムUIをレンダリングすることと、
ユーザの手の位置および前記ユーザ上の所定の安定点を追跡することと、
前記追跡に基づいて、前記手が前記システムUIの一部を把持したことを識別し、それに応答して、前記ユーザが把持された前記一部を介して前記システムUIを移動させるときに、前記安定点と前記システムUIの前記表面との間の線が前記システムUIの前記表面に対して垂直にまたは垂直から所定の角度になるように移動するように、前記システムUIの把持された前記一部を中心に前記システムUIの前記位置を回転させることと
を含む、コンピュータ実装方法。
【請求項2】
前記ユーザ上の前記所定の安定点が、前記ユーザの頭部の付け根が前記ユーザの首と交わる点である、請求項1に記載のコンピュータ実装方法。
【請求項3】
前記ユーザ上の前記所定の安定点が、前記ユーザの頭部の付け根が前記ユーザの首と交わる場所からオフセットされた点である、請求項1に記載のコンピュータ実装方法。
【請求項4】
前記所定の安定点が、前記ユーザ上の規定された身体点からオフセットされた点であり、かつ前記オフセットの方向および量が、前記ユーザの眼の高さに対する前記システムUIの相対位置の決定に基づく、請求項1に記載のコンピュータ実装方法。
【請求項5】
前記システムUIの前記位置の回転速度が閾値速度未満であるように、前記システムUIの前記位置が前記システムUIの把持された前記一部を中心に回転する、請求項1に記載のコンピュータ実装方法。
【請求項6】
前記システムUIが把持された前記一部を介して閾値量以上移動したと決定すること
をさらに含み、かつ
前記システムUIの前記位置を回転させることが、さらに、前記システムUIが前記閾値量以上移動したという前記決定に応答したものである、
請求項1に記載のコンピュータ実装方法。
【請求項7】
前記回転が、前記線が前記システムUIの前記表面に対して垂直から前記所定の角度になるように前記システムUIを回転させることを含み、かつ前記所定の角度が、前記システムUIの前記位置が閾値高さ未満であるという決定に基づいて選択され、前記閾値高さが前記ユーザの眼の高さに対するものである、請求項1に記載のコンピュータ実装方法。
【請求項8】
コンピューティングシステムによって実行されると、前記コンピューティングシステムに、人工現実(XR)環境におけるシステムユーザインターフェース(UI)インタラクションを容易にするためのプロセスを実施させる命令を格納するコンピュータ可読記憶媒体であって、前記プロセスが、
前記XR環境内の3D仮想要素として前記システムUIをレンダリングすることであって、前記システムUIが前記システムUIの表面上に配置されたUI要素のセットを含む、前記システムUIをレンダリングすることと、
ユーザの手の位置および前記ユーザ上の所定の安定点を追跡することと、
前記追跡に基づいて、前記手が前記システムUIの一部を把持したことを識別し、それに応答して、前記ユーザが把持された前記一部を介して前記システムUIを移動させるときに、前記安定点と前記システムUIの前記表面との間の線が前記システムUIの前記表面に対して垂直にまたは垂直から所定の角度になるように移動するように、前記システムUIの把持された前記一部を中心に前記システムUIの前記位置を回転させることと
を含む、コンピュータ可読記憶媒体。
【請求項9】
前記ユーザ上の前記所定の安定点が、前記ユーザの頭部の付け根が前記ユーザの首と交わる点である、請求項8に記載のコンピュータ可読記憶媒体。
【請求項10】
前記ユーザ上の前記所定の安定点が、前記ユーザの頭部の付け根が前記ユーザの首と交わる場所からオフセットされた点である、請求項8に記載のコンピュータ可読記憶媒体。
【請求項11】
前記所定の安定点が、前記ユーザ上の規定された身体点からオフセットされた点であり、かつ前記オフセットの方向および量が、前記ユーザの眼の高さに対する前記システムUIの相対位置の決定に基づく、請求項8に記載のコンピュータ可読記憶媒体。
【請求項12】
前記システムUIの前記位置の回転速度が閾値速度未満であるように、前記システムUIの前記位置が前記システムUIの把持された前記一部を中心に回転する、請求項8に記載のコンピュータ可読記憶媒体。
【請求項13】
前記プロセスが、
前記システムUIが把持された前記一部を介して閾値量以上移動したと決定すること
をさらに含み、かつ
前記システムUIの前記位置を回転させることが、さらに、前記システムUIが前記閾値量以上移動したという前記決定に応答したものである、
請求項8に記載のコンピュータ可読記憶媒体。
【請求項14】
人工現実(XR)環境においてシステムユーザインターフェース(UI)とインタラクトするためのコンピューティングシステムであって、
1つまたは複数のプロセッサと、
命令を格納する1つまたは複数のメモリとを備え、前記命令は、前記1つまたは複数のプロセッサによって実行されると、前記コンピューティングシステムにプロセスを実施させ、前記プロセスが、
前記XR環境内の3D仮想要素として前記システムUIをレンダリングすることであって、前記システムUIが前記システムUIの表面上に配置されたUI要素のセットを含む、前記システムUIをレンダリングすることと、
ユーザの手の位置および前記ユーザ上の所定の安定点を追跡することと、
前記追跡に基づいて、前記手が前記システムUIの一部を把持したことを識別し、それに応答して、前記ユーザが前記システムUIを移動させるときに、前記安定点と前記システムUIの前記表面との間の線が、前記システムUIの前記表面に対して垂直にまたは垂直から所定の角度になるように移動するように、前記システムUIの前記位置を回転させることと
を含む、
コンピューティングシステム。
【請求項15】
前記ユーザ上の前記所定の安定点が、前記ユーザの頭部の付け根が前記ユーザの首と交わる点である、請求項14に記載のコンピューティングシステム。
【請求項16】
前記ユーザ上の前記所定の安定点が、前記ユーザの頭部の付け根が前記ユーザの首と交わる場所からオフセットされた点である、請求項14に記載のコンピューティングシステム。
【請求項17】
前記所定の安定点が、前記ユーザ上の規定された身体点からオフセットされた点であり、かつ前記オフセットの方向および量が、前記ユーザの眼の高さに対する前記システムUIの相対位置の決定に基づく、請求項14に記載のコンピューティングシステム。
【請求項18】
前記システムUIの前記位置の回転速度が閾値速度未満であるように、前記システムUIの前記位置が前記システムUIの把持された前記一部を中心に回転する、請求項14に記載のコンピューティングシステム。
【請求項19】
前記プロセスが、
前記システムUIが把持された前記一部を介して閾値量以上移動したと決定すること
をさらに含み、かつ
前記システムUIの前記位置を回転させることが、さらに、前記システムUIが前記閾値量以上移動したという前記決定に応答したものである、
請求項14に記載のコンピューティングシステム。
【請求項20】
前記回転が、前記線が前記システムUIの前記表面に対して垂直から前記所定の角度になるように前記システムUIを回転させることを含み、かつ前記プロセスが、前記システムUIの前記位置が閾値高さ未満であるという決定に基づいて前記所定の角度を選択することをさらに含み、前記閾値高さが前記ユーザの眼の高さに対するものである、請求項14に記載のコンピューティングシステム。
【発明の詳細な説明】
【発明の概要】
【0001】
関連出願の相互参照
本出願は、2023年2月8日に出願された「Facilitating System User Interface(UI)Interactions in an Artificial Reality(XR)Environment」と題する米国特許出願第18/166,144号(代理人整理番号3589-0232US02)、2023年2月8日に出願された「Facilitating User Interface Interactions in an Artificial Reality Environment」と題する米国特許出願第18/166,282号(代理人整理番号3589-0233US01)、および2023年2月8日に出願された「Intent-Based User Interface Modifications in an Artificial Reality Environment」と題する米国特許出願第号(代理人整理番号3589-0260US01)に関連し、これらの全ては、参照によりその全体が本明細書に組み込まれる。
【0002】
技術分野
本開示は、人工現実(XR)環境においてシステムユーザインターフェース(UI)とのインタラクションを容易にすることに関する。より具体的には、本開示は、XR環境においてレンダリングされるシステムUIを取り扱う、または操作するためのシステムおよび方法に関する。
【0003】
背景技術
人工現実(XR)技術の分野における最近の進歩は、例えばユーザ支援および娯楽のための様々な人工現実プラットフォームの開発につながっている。人工現実コンテンツは、ビデオ、オーディオ、触覚フィードバック、またはそれらの何らかの組み合わせを含むことができ、それらのいずれも単一のチャネルまたは複数のチャネルで提示することができる。人工現実は、ユーザが人工環境で友人と仮想的につながり、空間および時間を移動し、完全に新しい方法でゲームをプレイすることなどができ得る社会的つながりを提供することができる。
【0004】
従来のXR環境は、ユーザが仮想オブジェクトなどの様々な形態でコンテンツを見ることを可能にする。しかしながら、XR環境内のスクリーンなどの仮想オブジェクトとのインタラクションは、複雑なタスクである場合がある。例えば、スクリーンは、XR環境において規定された距離に固定される場合がある。そのような固定スクリーンは、アクセスすること、またはきめの細かいインタラクションを実施することが困難な場合がある。さらに、スクリーンのサイズが小さい場合があり、スクリーン上のコンテンツがユーザにはっきりと見えない場合がある。したがって、従来のXR環境内のスクリーンなどの仮想オブジェクトを使用する体験は、ユーザにとって満足のいくものではなく、困難である場合がある。
【図面の簡単な説明】
【0005】
図1】本技術のいくつかの実装形態が動作可能であるデバイスの全体像を示すブロック図である。
図2A】本技術のいくつかの実装形態において使用可能である仮想現実ヘッドセットを示す配線図である。
図2B】本技術のいくつかの実装形態において使用可能である複合現実ヘッドセットを示す配線図である。
図2C】いくつかの実装形態における、ユーザが人工現実環境とインタラクトするために片手または両手で保持することができるコントローラを示す配線図である。
図3】本技術のいくつかの実装形態が動作可能である環境の全体像を示すブロック図である。
図4】いくつかの実装形態において、開示された技術を用いるシステムで使用可能である構成要素を示すブロック図である。
図5】人工現実(XR)環境におけるユーザインターフェース(UI)インタラクションのための例示的な環境を示す概念図である。
図6A】XR環境内のシステムUIの回転を示す概念図である。
図6B】XR環境内のシステムUIの回転を示す概念図である。
図7A】システムUIの入力モードの変更を示す概念図である。
図7B】システムUIの入力モードの変更を示す概念図である。
図7C】システムUIの入力モードの変更を示す概念図である。
図8】いくつかの実装形態における、システムUIの回転のための方法800のフロー図である。
図9A】いくつかの実装形態における、人工現実(XR)環境でのシステムユーザインターフェース(UI)インタラクションを容易にするために使用される方法のフロー図である。
図9B】いくつかの実装形態で使用される、システムUIの入力モードを切り替え、システムUIの外観を修正するための方法のフロー図である。
図10】システムUIの様々な実装形態および構成を示す概念図である。
図11A】システムUIの様々な実装形態および構成のうちの1つをさらに示す概念図である。
図11B】システムUIの様々な実装形態および構成のうちの1つをさらに示す概念図である。
図11C】システムUIの様々な実装形態および構成のうちの1つをさらに示す概念図である。
図11D】システムUIの様々な実装形態および構成のうちの1つをさらに示す概念図である。
【発明を実施するための形態】
【0006】
ここで導入された技法は、同様の参照番号が同一のまたは機能的に同様の要素を指示する添付の図面と併せて以下の「発明を実施するための形態」を参照することによって、より良く理解され得る。
【0007】
本開示の態様は、人工現実(XR)環境におけるシステムユーザインターフェース(UI)とのインタラクションを容易にすることに関する。インタラクション容易化システムは、XR環境におけるシステムUIインタラクションを容易にするために提供されてもよい。ユーザとシステムUIとの間のインタラクションを容易にするために、例えば、システム制御および設定を提供し、通知を表示し、2Dディスプレイシステム用に構築されたアプリケーションへのアクセスを提供し、人々の交流および社会的交流へのインターフェースを提供するなどのために、XR環境においてシステムユーザインターフェース(UI)をレンダリングしてもよい。
【0008】
インタラクション容易化システムは、システムUIをXR環境内の3D仮想要素としてレンダリングし、現実世界環境内のユーザの位置を追跡するように構成されてもよい。追跡に基づいて、インタラクション容易化システムは、現実世界環境でのデバイスの回転と同様に、XR環境においてシステムUIを回転させてもよい。さらに、インタラクション容易化システムは、ユーザからのシステムUIの距離に基づいて、システムUIとインタラクトするための入力モードをインタラクションのレイキャスティングモードからインタラクションの直接タッチモードへ、およびその逆に変更するように構成されてもよい。インタラクション容易化システムは、変更された距離および/または入力モードに基づいて、単一スクリーンディスプレイを有するシステムUIをマルチスクリーンディスプレイに、およびその逆に修正するようにさらに構成されてもよい。
【0009】
例示的なシナリオでは、ユーザは、様々なアプリケーション、例えば、娯楽、ヘルスケア、自動車、教育開発、社会的および関係のつながりなどのためにXR環境を利用してもよい。システムUIは、XR環境内でのコンテンツの視聴、インターネットのブラウジング、他のユーザとの接続、システム制御へのアクセスなどの様々なアプリケーションにアクセスするための媒体として利用されてもよい。インタラクション容易化システムは、システムUIを開くために、XRデバイスを介してユーザから入力を受信してもよい。インタラクション容易化システムは、受信した入力に基づいてXR環境においてシステムUIをレンダリングすることができる。さらに、インタラクション容易化システムは、ユーザの手の位置およびユーザ上の所定の安定点を追跡することができる。例えば、ユーザの安定点は、ユーザの頭部の付け根がユーザの首と交わる点に基づいて決定されてもよい。追跡は、現実世界環境におけるユーザの手の実際の位置および/またはジェスチャを決定するために実施されてもよい。
【0010】
一実装形態では、ユーザは、(例えば、システムUIを掴んで回転させるために)手をシステムUIに近づけるジェスチャを実施してもよい。追跡されたユーザの手の位置がシステムUIの一部を把持しており、ユーザがシステムUIを回転させる必要があるという決定に基づいて、インタラクション容易化システムは、システムUIの把持された部分を中心にシステムUIの位置を回転させてもよい。さらに、システムUIは、安定点とシステムUIの表面との間の線(表示されなくてもよい)が、例えば、ユーザがXR環境内の把持された部分を介してシステムUIを移動または回転させるときに、線をシステムUIの表面に対して垂直にまたは垂直から所定の角度に保つように移動される。例えば、ユーザは、システムUIを把持して垂直方向に移動させることができ、また、システムUIの把持された部分を介してシステムUIを回転させることができ、その間、インタラクション容易化システムは、線をシステムUI表面に対して垂直に維持することによってシステムUI表面をユーザに向けたままにする。したがって、インタラクション容易化システムは、ユーザがXR環境内でシステムUIを移動または回転させるときに、システムUIの表面がユーザの眼の方に留まるようにシステムUIを移動および/または回転させる。
【0011】
別の実装形態では、インタラクション容易化システムは、システムUIからのユーザの距離に基づいてシステムUIの入力モードをさらに切り替えることができる。例えば、ユーザとシステムUIとの間の距離が第1の閾値を下回るという決定に基づいて、インタラクション容易化システムは、インタラクションの入力モードをレイキャスティングから、ユーザの手の表現がXR環境においてレンダリングされるインタラクションの直接タッチモードに変更してもよい。例えば、ユーザの手とシステムUIとの間の距離が第1の閾値を下回る(例えば、決定された典型的な腕の長さ、または現在のユーザの決定された腕の長さの距離の内部)とき、入力モードは、ユーザがシステムUIとインタラクトする手の表現を見ることができるインタラクションの直接タッチモードに変更されてもよい。このようなインタラクションの直接タッチモードは、現実世界環境においてデバイスにタッチしてアクセスするのと同様に、XR環境においてシステムUIに直接タッチする印象を与える。さらに、そのような場合には、システムUIの外観はフラットな形状に修正されて、単一スクリーンディスプレイを含んでもよい。さらに、システムUIのUI要素のセットの外観は、3次元形状および固定サイズを有するように修正される。したがって、UI要素のセットは、システムUI表面の平面の上方に部分的に拡張されているように見える場合があり、ユーザがシステムUI上の制御を理解してインタラクトすることをより容易にし、ユーザに強化された視聴体験をさらに提供する。
【0012】
さらに、ユーザとシステムUIとの間の距離が第2の閾値を上回っているという決定に基づいて(決定された典型的な腕の長さ、または現在のユーザの決定された腕の長さにも基づき得る)、コンピューティングシステムは、インタラクションの入力モードを直接タッチからUI要素のセットとインタラクトするユーザの制御下で(例えば、ユーザの手またはコントローラの位置に基づいて)、仮想線がレンダリングされるインタラクションのレイキャスティングモードに変更してもよい。例えば、ユーザの手とシステムUIとの間の距離が第2の閾値を上回るとき、入力モードは、ユーザがシステムUIとインタラクトする仮想線(光線またはポインタを有する光線など)を見ることができるインタラクションのレイキャスティングモードに変更されてもよい。そのようなインタラクションのレイキャスティングモードは、XR環境内のある距離からシステムUIとインタラクトする能力を与える。そのような場合、システムUIの外観は、湾曲した形状を有するように修正することができ、マルチスクリーンディスプレイを含んでもよい。さらに、システムUIのUI要素のセットの外観は、2次元形状および相対サイズを有するように修正することができる。さらに、第1の閾値は、第2の閾値よりも近くてもよい。したがって、インタラクション容易化システムは、入力モード間の切り替えをユーザにとって円滑かつグリッチフリーな体験にすることを可能にする。
【0013】
開示された技術の実施形態は、人工現実システムを含むことができる、または人工現実システムと併せて実装され得る。人工現実またはextra reality(XR)は、ユーザに提示する前に何らかの様式で調節されている現実の形態であり、これは例えば、仮想現実(VR)、拡張現実(AR)、複合現実(MR)、ハイブリッド現実、またはこれらの何らかの組み合わせおよび/もしくは派生物を含んでもよい。人工現実コンテンツは、完全に生成されたコンテンツ、またはキャプチャされたコンテンツ(例えば、現実世界の写真)と組み合わせられた生成されたコンテンツを含み得る。人工現実コンテンツは、ビデオ、オーディオ、触覚フィードバック、またはそれらの何らかの組み合わせを含み得、それらのいずれも、単一のチャネルまたは複数のチャネルにおいて提示され得る(観察者に3次元効果をもたらすステレオビデオなど)。さらに、いくつかの実施形態では、人工現実は、例えば、人工現実におけるコンテンツを作り出すために使用される、および/または人工現実において使用される(例えば、人工現実におけるアクティビティを実施する)アプリケーション、製品、アクセサリ、サービス、またはそれらの何らかの組み合わせに関連付けられ得る。人工現実コンテンツを提供する人工現実システムは、ホストコンピュータシステムに接続される頭部装着型ディスプレイ(HMD)、独立型HMD、モバイルデバイスもしくはコンピューティングシステム、「洞穴」式環境もしくは他の投影システム、または、1または複数の視聴者に人工現実コンテンツを提供することが可能な任意の他のハードウェアプラットフォームを含む様々なプラットフォーム上に実装されてよい。
【0014】
本明細書で使用される「仮想現実」または「VR」は、ユーザの視覚的入力がコンピューティングシステムによって制御される没入型体験を指す。「拡張現実」または「AR」は、ユーザが現実世界の画像を見る前にこれらの画像がコンピューティングシステムを通過しているシステムを指す。例えば、裏にカメラがあるタブレットは、現実世界の画像をキャプチャした後、カメラからタブレットの反対側の画面上にその画像を表示することができる。タブレットは、仮想オブジェクトを追加することなどによって、画像がシステムを通過する際にこの画像を処理し、かつ調節または「拡張」することができる。「複合現実」または「MR」は、ユーザの眼に入る光がコンピューティングシステムによって部分的に生成され、かつ現実世界におけるオブジェクトに反射した光を部分的に構成するシステムを指す。例えば、MRヘッドセットは、パススルーディスプレイを有する眼鏡のように成形可能であり、これによって、現実世界からの光がMRヘッドセットにおけるプロジェクタから同時に光を発する導波路を通過することができることで、MRヘッドセットはユーザが見ることができる実物体と混合させた仮想オブジェクトを提示することができる。本明細書で使用される「人工現実」、「extra reality」、または「XR」は、VR、AR、MRのいずれか、またはこれらの任意の組み合わせもしくは混成物を指す。
【0015】
本明細書で使用される「システムユーザインターフェース(UI)」という用語は、ユーザが物理空間または仮想空間内の仮想オブジェクト、環境、または情報とインタラクトすることを可能にする仮想ユーザインターフェース(UI)を指す。システムUIは、人工現実デバイスのシステム設定、システム通知、XRナビゲーション制御、フラットパネルアプリケーション(例えば、AndroidまたはiOSアプリ、ウェブブラウザまたはメッセージングインターフェースなど)、ソーシャルメディアプラットフォームインターフェースなどの機能および制御に使用され得るUI要素または機能要素のセットを含んでもよい。システムUIは、場合によってはユーザに対してXR環境内のある位置から別の位置に移動することができるが、他の場合ではユーザの視野の特定の領域にワールドロックまたはロックすることができるように、移動型(migrating)UI(例えば、物理世界における電子タブレットと同様である)であってもよい。システムUIは、2次元(2D)UIまたは3次元(3D)UIであってもよい。
【0016】
従来のXRシステムは、ユーザが環境内で、例えば仮想オブジェクトとインタラクトすることを可能にする。しかしながら、XR環境におけるシステムユーザインターフェース(UI)などの仮想オブジェクトとのインタラクションは、ユーザにとって複雑なタスクである場合がある。例えば、ユーザは、XR環境においてシステムUIとインタラクトすることが困難であると感じる場合があり、その理由は、触覚フィードバックが限定されている場合がある、システムUIがXR環境内で望ましくない距離に固定されている場合がある、システムUIの移動が制限されている場合がある、またはシステムUIのUI要素への入力の提供が困難である場合があるためである。したがって、従来のシステムを使用した、システムUIなどの仮想オブジェクトのインタラクションおよび制御のユーザ体験は、満足のいくものではない。
【0017】
従来のシステムと比較して、XR環境におけるシステムUIのインタラクションおよび制御を改善するために、本開示のインタラクション容易化システムは、システムUIの改善されたインタラクションモデルを提供する。例えば、インタラクション容易化システムは、ユーザの手、頭部、または眼の高さなどのユーザの位置の追跡を可能にし、追跡に基づいてユーザごとにパーソナライズされた安定点を決定し、そして、安定点に基づいてシステムUIを回転させる。したがって、ユーザがXR環境内でシステムUIを移動させると、ユーザがシステムUIを見てインタラクトすることを容易にする回転が達成される。さらに、XR環境内でシステムUIを移動または回転させるために、インタラクション容易化システムは、ユーザによって把持されたシステムUIの部分を識別し、把持された部分からシステムUIを回転させる。そのような回転は、現実世界環境でデバイスを回転または移動させるのと同様の体験をユーザに提供する。システムUIの表面がシステムUIのユーザ角度の方を向くようにシステムUIの回転を実施することにより、ユーザはXR環境において表面を快適に見ることができる。さらに、インタラクション容易化システムは、システムUIからのユーザの距離に基づいて、システムUIの入力モードおよび表示モードを切り替えることを可能にする。入力モード間の切り替えは、様々な目的のために様々な距離でのユーザの円滑な体験を可能にする。
【0018】
いくつかの実装形態について、図を参照してより詳細に以下に論じる。図1は、開示された技術のいくつかの実装形態が動作可能であるデバイスの全体像を示すブロック図である。デバイスは、人工現実(XR)環境におけるシステムユーザインターフェース(UI)インタラクションを容易にするように構成された、コンピューティングシステム100のハードウェア構成要素を備えることができる。様々な実装形態では、コンピューティングシステム100は、処理を分散し、かつ入力データを共有するために有線または無線チャネル上で通信する単一のコンピューティングデバイス103または複数のコンピューティングデバイス(例えば、コンピューティングデバイス101、コンピューティングデバイス102、およびコンピューティングデバイス103)を含むことができる。いくつかの実装形態では、コンピューティングシステム100は、外部の処理またはセンサを必要とせずにユーザにコンピュータ作成または拡張体験を提供することが可能な独立型ヘッドセットを含むことができる。他の実装形態では、コンピューティングシステム100は、いくつかの処理動作がヘッドセット上で行われ、他の処理動作がコア処理構成要素にオフロードされる、ヘッドセットおよびコア処理構成要素(コンソール、モバイルデバイス、またはサーバシステムなど)などの複数のコンピューティングデバイスを含むことができる。例示のヘッドセットについて、図2Aおよび図2Bに関して後述する。いくつかの実装形態では、位置および環境データは、ヘッドセットに組み込まれたセンサによってのみ収集可能であるが、他の実装形態では、ヘッドセット無しのコンピューティングデバイスの1つまたは複数は、環境または位置データを追跡可能であるセンサ構成要素を含むことができる。
【0019】
コンピューティングシステム100は、1つまたは複数のプロセッサ110(例えば、中央処理装置(CPU)、グラフィック処理ユニット(GPU)、ホログラフィック処理ユニット(HPU)など)を含み得る。プロセッサ110は、デバイスにおける単一の処理ユニットまたは複数の処理ユニットとすることができる、または複数のデバイスにわたって分散させる(例えば、コンピューティングデバイス101~103の2つ以上にわたって分散させる)ことができる。
【0020】
コンピューティングシステム100は、プロセッサ110に入力をもたらしてこれらに動きを通知する1つまたは複数の入力デバイス120を含むことができる。動きは、入力デバイスから受信される信号を解釈し、かつ通信プロトコルを使用して情報をプロセッサ110に通信するハードウェアコントローラによって仲介される。それぞれの入力デバイス120は、例えば、マウス、キーボード、タッチスクリーン、タッチパッド、ウェアラブル入力デバイス(例えば、触覚グローブ、ブレスレット、指輪、イヤリング、ネックレス、腕時計など)、カメラ(または、他の光ベースの入力デバイス、例えば、赤外線センサ)、マイクロホン、または、他のユーザ入力デバイスを含むことができる。
【0021】
プロセッサ110は、例えば、PCIバス、SCSIバス、または無線接続などの内部または外部バスを用いて他のハードウェアデバイスに結合可能である。プロセッサ110は、ディスプレイ130などのデバイスに対するハードウェアコントローラと通信可能である。ディスプレイ130は、テキストおよびグラフィックを表示するために使用可能である。いくつかの実装形態では、ディスプレイ130は、入力デバイスがタッチスクリーンである、または視線方向監視システムを備える時など、ディスプレイの一部としての入力デバイスを含む。いくつかの実装形態では、ディスプレイは入力デバイスから分離している。表示装置の例には、LCDディスプレイスクリーン、LEDディスプレイスクリーン、投影、ホログラフィック、または拡張現実ディスプレイ(ヘッドアップ表示装置または頭部装着型デバイスなど)などがある。ネットワークチップまたはカード、ビデオチップまたはカード、オーディオチップまたはカード、USB、ファイヤーワイヤーまたは他の外部デバイス、カメラ、プリンタ、スピーカ、CD-ROMドライブ、DVDドライブ、ディスクドライブなどの他のI/Oデバイス140も、プロセッサに結合可能である。
【0022】
いくつかの実装形態では、カメラ、深度センサ、IMUセンサ、GPSユニット、LiDARまたは他の飛行時間型センサなどのI/Oデバイス140からの入力をコンピューティングシステム100によって使用して、その環境内のユーザの場所を追跡しながらユーザの物理環境を識別およびマッピングすることができる。この同時位置特定およびマッピング(SLAM)システムは、ある領域(部屋、建物、屋外空間などであってもよい)のマップ(例えば、トポロジー、グリッド(gird)など)を生成し、および/またはその領域をマッピングしたコンピューティングシステム100もしくは別のコンピューティングシステムによって以前に生成されたマップを取得することができる。SLAMシステムは、GPSデータ、識別されたオブジェクトおよび構造をマッピングされたオブジェクトおよび構造と一致させること、加速度および他の位置変化を監視することなどの要因に基づいて、領域内のユーザを追跡することができる。
【0023】
コンピューティングシステム100は、他のローカルコンピューティングデバイスまたはネットワークノードと無線でまたは有線ベースで通信することが可能な通信デバイスを含むことができる。通信デバイスは、例えば、TCP/IPプロトコルを使用するネットワークを通して別のデバイスまたはサーバと通信できる。コンピューティングシステム100は、複数のネットワークデバイスにわたって動作を分散するために通信デバイスを利用できる。
【0024】
コンピューティングシステム100のコンピューティングデバイスのうちの1つにおいて含まれ得る、またはコンピューティングシステム100の複数のコンピューティングデバイスまたは他の外部デバイスにわたって分散可能であるプロセッサ110は、メモリ150にアクセス可能である。メモリは、揮発性または不揮発性ストレージに対する1つまたは複数のハードウェアデバイスを含み、かつ読み出し専用メモリおよび書き込み可能メモリ両方を含むことができる。例えば、メモリは、ランダムアクセスメモリ(RAM)、様々なキャッシュ、CPUレジスタ、読み出し専用メモリ(ROM)、および書き込み可能な不揮発性メモリ、例えば、フラッシュメモリ、ハードドライブ、フロッピーディスク、CD、DVD、磁気記憶装置、およびテープドライブなどのうちの1つまたは複数を含むことができる。メモリは、基盤となるハードウェアから切り離されて伝播する信号ではないため、メモリは非一時的なものである。メモリ150は、プログラムおよびソフトウェア、例えば、オペレーティングシステム162、インタラクション容易化モジュール164、および他のアプリケーションプログラム166を格納するプログラムメモリ160を含むことができる。メモリ150はまた、例えば、プログラムメモリ160に、またはコンピューティングシステム100の任意の要素に提供することができる、ユーザ追跡データ、構成データ、設定、ユーザオプションまたは好みなど、構成データ、設定、ユーザオプションまたは好みなどを含むことができるデータメモリ170を含むことができる。
【0025】
インタラクション容易化モジュール164は、XR環境におけるユーザとシステムUIとの間のインタラクションを容易にするように構成されてもよい。システムUIとユーザとの間のインタラクションを容易にするために、インタラクション容易化モジュール164は、XR環境においてシステムUIをレンダリングすること、ユーザの手の位置およびユーザ上の所定の安定点を追跡すること、ならびにユーザの手がシステムUIの一部を把持したことを識別することなどの様々な機能を実施してもよい。識別に基づいて、インタラクション容易化モジュール164は、システムUIの把持された部分を中心にシステムUIの位置を回転させることができる。例えば、回転は、ユーザが把持された部分を介してシステムUIを移動させるときに、安定点とシステムUIの表面との間の線がシステムUIの表面に対して垂直にまたは垂直から所定の角度になるように移動するようなものであってもよい。
【0026】
さらに、インタラクション容易化モジュール164は、追跡されたユーザの位置に基づいて、ユーザとシステムUIとの間の距離を決定してもよい。距離が第1の閾値を下回っているという決定に応答して、インタラクション容易化モジュール164は、ユーザとシステムUIとの間のインタラクションの入力モードを、インタラクションのレイキャスティングモードからインタラクションの直接タッチモードに変更してもよい。インタラクションの直接タッチモードは、現実世界環境における手によるデバイスへのアクセスと同様に、システムUIが近距離からユーザによってアクセスされることを可能にする。インタラクション容易化モジュール164は、システムUIの外観がフラットな形状を有するようにさらに修正し、UI要素のセットのうちの1つまたは複数の外観が3次元形状を有し、固定サイズになるように修正してもよい。
【0027】
さらに、ユーザとシステムUIとの間の距離が第2の閾値を上回っているという決定に応答して、インタラクション容易化モジュール164は、ユーザとシステムUIとの間のインタラクションの入力モードを、インタラクションの直接タッチモードからインタラクションのレイキャスティングモードに変更してもよい。インタラクションのレイキャスティングモードは、システムUIが遠距離からユーザによってアクセスされることを可能にする。インタラクション容易化モジュール164は、システムUIの外観が湾曲形状を有するようにさらに修正し、UI要素のセットのうちの1つまたは複数の外観が2次元形状を有し、相対サイズになるように修正してもよい。
【0028】
いくつかの実装形態は、多数の他のコンピューティングシステム環境または構成で動作可能とすることができる。当該技術で使用するのに適し得るコンピューティングシステム、環境、および/または構成の例は、XRヘッドセット、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドもしくはラップトップデバイス、携帯電話、ウェアラブル電子機器、ゲーム機、タブレットデバイス、マルチプロセッサシステム、マイクロプロセッサベースシステム、セットトップボックス、プログラム可能家庭電化製品、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、または上記のシステムまたはデバイスのいずれかを含む分散コンピューティング環境などを含むが、これらに限定されない。
【0029】
図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の周りの実物体上の光点を生じさせる赤外光ビームを発することができる。別の例として、IMU215は、例えば、1つまたは複数の加速度計、ジャイロスコープ、磁力計、他の非カメラベースの位置、力、もしくは向きセンサ、またはそれらの組み合わせを含むことができる。HMD200と一体化された1つまたは複数のカメラ(図示せず)は光点を検出できる。HMD200における算出部230は、HMD200の位置および移動を推定するために、およびHMD200を取り囲む実物体の形状および位置を識別するために、検出された光点を使用することができる。
【0030】
電子ディスプレイ245は、前部剛体205と一体化可能であり、かつ算出部230によって命令されるとユーザに画像光を提供可能である。様々な実施形態では、電子ディスプレイ245は単一の電子ディスプレイまたは複数の電子ディスプレイ(例えば、それぞれのユーザの眼に対するディスプレイ)であり得る。電子ディスプレイ245の例として、液晶ディスプレイ(LCD)、有機発光ダイオード(OLED)ディスプレイ、アクティブマトリックス式有機発光ダイオードディスプレイ(AMOLED)、1つもしくは複数の量子ドット発光ダイオード(QOLED)サブピクセル、投射器(例えば、マイクロLED、レーザなど)、その他のディスプレイ、またはこれらの何らかの組み合わせが挙げられる。
【0031】
いくつかの実装形態では、HMD200は、パーソナルコンピュータ(PC)(図示せず)などのコア処理構成要素および/または1つもしくは複数の外部センサ(図示せず)に結合可能である。PCが、HMD200の場所および移動を判断するためにIMU215および位置センサ220からの出力と組み合わせて使用することができる外部センサは、(例えば、HMD200から発した光によって)HMD200を監視することができる。
【0032】
図2Bは、複合現実HMD252およびコア処理構成要素254を含む複合現実HMDシステム250の配線図である。複合現実HMD252およびコア処理構成要素254は、リンク256によって指示されるように無線接続(例えば、60GHzのリンク)を介して通信可能である。他の実装形態では、複合現実システム250は、外部の計算装置はなくヘッドセットのみを含む、または複合現実HMD252とコア処理構成要素254との間の他の有線または無線接続を含む。複合現実HMD252はパススルーディスプレイ258およびフレーム260を含む。フレーム260は、様々な電子コンポーネント(図示せず)、例えば、光プロジェクタ(例えば、LASER、LED等)、カメラ、目追跡センサ、MEMSコンポーネント、ネットワーキングコンポーネント等を格納することができる。
【0033】
プロジェクタは、ユーザに媒体を表示するために、例えば、光学素子を介して、パススルーディスプレイ258に結合可能である。光学素子は、プロジェクタからユーザの眼に光を導くための、1つまたは複数の導波路アセンブリ、反射器、レンズ、鏡、コリメータ、格子などを含むことができる。画像データは、コア処理構成要素254からリンク256を介してHMD252に送信可能である。HMD252におけるコントローラは、プロジェクタから画像データを光パルスに変換可能であり、これは光学素子を介して出力光としてユーザの眼に送信可能である。出力光は、ディスプレイ258を通過する光と混合させることができることで、出力光によって現実世界に存在するかのように現れる仮想オブジェクトを提示することができる。
【0034】
HMD200と同様に、HMDシステム250は、HMDシステム250が、例えば、これ自体を3DoFまたは6DoFで追跡すること、ユーザの一部分(例えば、手、脚、頭部、または他の体の一部)を追跡すること、HMD252が移動すると静止しているように現れるように仮想オブジェクトをマッピングすること、および、ジェスチャおよび他の現実世界のオブジェクトに対して仮想オブジェクトを反応させることを可能にする、運動および位置追跡装置、カメラ、光源なども含むことができる。
【0035】
図2Cは、コントローラ270(コントローラ276Aおよび276Bを含む)を示し、いくつかの実装形態では、ユーザは、HMD200および/またはHMD250によって提示される人工現実環境とインタラクトするために片手または両手で保持することができる。コントローラ270は、直接または外部デバイス(例えば、コア処理構成要素254)を介してHMDと通信することができる。コントローラは、これ自体のIMU装置、位置センサを有することができる、および/またはさらなる光点を発することができる。HMD200もしくは250、外部センサ、またはコントローラ内のセンサは、これらのコントローラ光点を追跡して、コントローラの位置および/または向きを決定することができる(例えば、3DoFまたは6DoFでコントローラを追跡するために)。HMD200における算出部230またはコア処理構成要素254は、ユーザの手の位置および運動を監視するために、IMUおよび位置出力と組み合わせてこの追跡を使用することができる。コントローラはまた、ユーザが入力を提供し、オブジェクトとインタラクトするために作動することができる様々なボタン(例えば、ボタン272A~F)および/またはジョイスティック(例えば、ジョイスティック274A~B)を含むことができる。
【0036】
様々な実装形態では、HMD200または250はまた、ユーザのインタラクションおよび意図の指示を監視するために、視線追跡ユニット、オーディオシステム、様々なネットワーク構成要素などの追加のサブシステムを含むことができる。例えば、いくつかの実装形態では、コントローラの代わりに、またはコントローラに加えて、HMD200もしくは250に含まれる、または外部カメラからの1つまたは複数のカメラは、ジェスチャならびに他の手および身体の運動を決定するためにユーザの手の位置および姿勢を監視することができる。別の例として、1つまたは複数の光源はユーザの眼のいずれかまたは両方を照らすことができ、HMD200または250は、眼に面するカメラを使用してこの光の反射を捕捉して眼の位置を決定し(例えば、ユーザの角膜の周りの反射のセットに基づく)、ユーザの眼をモデル化して視線方向を決定することができる。
【0037】
図3は、開示された技術のいくつかの実装形態が動作可能である環境300の全体像を示すブロック図である。環境300は、1つまたは複数のクライアントコンピューティングデバイス305A~Dを含むことができ、これらの例として、コンピューティングシステム100を挙げることができる。いくつかの実装形態では、クライアントコンピューティングデバイスのいくつか(例えば、クライアントコンピューティングデバイス305B)は、HMD200またはHMDシステム250とすることができる。クライアントコンピューティングデバイス305は、ネットワーク330を通した、サーバコンピューティングデバイスなどの1つまたは複数のリモートコンピュータへの論理接続を使用してネットワーク化された環境で動作可能である。
【0038】
いくつかの実装形態では、サーバ310は、サーバ320A~Cなどの他のサーバを通してクライアント要求を受信し、かつこれらの要求の達成を調整するエッジサーバとすることができる。サーバコンピューティングデバイス310および320は、コンピューティングシステム100などのコンピューティングシステムを含むことができる。それぞれのサーバコンピューティングデバイス310および320は単一のサーバとして論理的に表示されるが、サーバコンピューティングデバイスはそれぞれ、同じまたは地理的に異なる物理的場所に位置する複数のコンピューティングデバイスを包含する分散コンピューティング環境とすることができる。
【0039】
クライアントコンピューティングデバイス305ならびにサーバコンピューティングデバイス310および320はそれぞれ、他のサーバ/クライアントデバイスに対するサーバまたはクライアントの機能を果たすことができる。サーバ310はデータベース315に接続することができる。サーバ320A~Cはそれぞれ、対応するデータベース325A~Cに接続できる。上で論じられるように、それぞれのサーバ310または320はサーバのグループに対応することができ、これらのサーバのそれぞれは、データベースを共有できるまたはこれら自体のデータベースを有することができる。データベース315および325は単一のユニットとして論理的に表示されるが、データベース315および325はそれぞれ、複数のコンピューティングデバイスを包含する分散コンピューティング環境とすることができる、これらの対応するサーバ内に位置することができる、または同じまたは地理的に異なる物理的場所に位置することができる。
【0040】
ネットワーク330は、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、メッシュネットワーク、ハイブリッドネットワーク、または他の有線もしくは無線ネットワークとすることができる。ネットワーク330は、インターネット、またはいくつかの他のパブリックもしくはプライベートネットワークであり得る。クライアントコンピューティングデバイス305は、有線または無線通信などによって、ネットワークインターフェースを通してネットワーク330に接続可能である。サーバ310とサーバ320との間の接続は別個の接続として示されるが、これらの接続は、ネットワーク330または別個のパブリックもしくはプライベートネットワークを含む、任意の種類のローカル、広域、有線、または無線ネットワークとすることができる。
【0041】
図4は、いくつかの実装形態において、開示された技術を用いるシステムで使用可能である構成要素400を示すブロック図である。構成要素400は、コンピューティングシステム100の1つのデバイスに含まれ得る、またはコンピューティングシステム100のデバイスの複数にわたって分散され得る。構成要素400は、ハードウェア410、メディエータ420、および専用構成要素430を含む。上で論じられるように、開示された技術を実装するシステムは、処理ユニット412、ワーキングメモリ414、入力および出力デバイス416(例えば、カメラ、ディスプレイ、IMU装置、ネットワーク接続など)、およびデータ記憶用メモリ418を含む様々なハードウェアを使用できる。様々な実装形態では、データ記憶用メモリ418は、ローカルデバイス、リモート記憶デバイスへのインターフェース、またはこれらの組み合わせの1つまたは複数とすることができる。例えば、データ記憶用メモリ418は、システムバスを通してアクセス可能な1つまたは複数のハードドライブもしくはフラッシュドライブとすることができる、または(ストレージ315または325などにおける)クラウドストレージプロバイダ、または1つまたは複数の通信ネットワークを介してアクセス可能な他のネットワークストレージとすることができる。様々な実装形態では、構成要素400は、クライアントコンピューティングデバイス305などのクライアントコンピューティングデバイスにおいて、またはサーバコンピューティングデバイス310または320などのサーバコンピューティングデバイス上に実装可能である。
【0042】
メディエータ420は、ハードウェア410と専用構成要素430との間のリソースを仲介する構成要素を含むことができる。例えば、メディエータ420は、オペレーティングシステム、サービス、ドライブ、基本入出力システム(BIOS)、コントローラ回路、または他のハードウェアもしくはソフトウェアシステムを含むことができる。
【0043】
専用構成要素430は、UIシステムレンダリングモジュール434と、追跡モジュール436と、把持識別モジュール438と、入力変更モジュール440と、外観修正モジュール442と、ユーザインターフェースの提供、データの転送、および専用構成要素の制御に使用することができる構成要素、例えばインターフェース432とを含むことができる。いくつかの実装形態では、構成要素400は、複数のコンピューティングデバイスにわたって分散されるコンピューティングシステムにある可能性がある、または専用構成要素430の1つまたは複数を実行するサーバベースアプリケーションに対するインターフェースである可能性がある。別個の構成要素として描写されているが、専用構成要素430は、機能の論理的もしくは他の非物理的な区別であってもよく、および/または1つもしくは複数のアプリケーションのサブモジュールもしくはコードブロックであってもよい。
【0044】
システムUIレンダリングモジュール434は、システムUIをXR環境においてレンダリングするように構成されてもよい。システムUIは、XR環境において3D仮想オブジェクトとしてレンダリングされてもよい。システムUIは、システムUIがユーザの眼の高さにあるようにXR環境で最初にレンダリングされてもよく、ここで、システムUIは最後に閲覧されたときのものであり、ユーザの一部(例えば、手または手首)に取り付けられているなどである。さらに、システムUIは、システムUIがXR環境内のユーザにとって容易にアクセス可能であるように、ユーザから距離を置いてレンダリングされてもよい。XR環境におけるシステムUIのレンダリングの詳細は、例えば図5にさらに示されている。
【0045】
追跡モジュール436は、ユーザの手の位置およびユーザ上の所定の安定点を追跡するように構成されてもよい。手の位置の追跡は、現実世界環境におけるユーザの手の実際の位置および/またはジェスチャを決定するために実施されてもよい。例えば、手の位置の追跡は、ユーザによるシステムUIの把持を決定するために実施される。ユーザ上の所定の安定点の追跡は、ユーザに対するシステムUIの距離および角度を調整するために実施される。例えば、位置の追跡は、XRデバイス(例えば、HMD200または250)上の1つまたは複数のセンサ(例えば、カメラ、飛行時間型センサ、IMUユニットなど)を使用して受信された入力データに基づいて実施されてもよい。さらに、追跡モジュール436はまた、XRデバイスに関連付けられたコントローラ270に基づいて入力データを受信してもよい。ユーザの手の位置の追跡および所定の安定点の詳細は、例えば、図5にさらに提供される。
【0046】
把持識別モジュール438は、XR環境内のユーザによるシステムUIの把持を識別するように構成されてもよい。ユーザによるシステムUIの把持は、現実世界環境でのユーザの手の位置を追跡することによって識別してもよい。追跡に基づいて、把持識別モジュール438は、システムUIを把持するためにユーザの手がシステムUIの縁部の近くにあると決定してもよい。さらに、把持識別モジュール438は、XR環境内のユーザによって把持されたシステムUIの一部を識別することができる。把持された部分は、XR環境内でシステムUIの位置を回転させるための点としてさらに利用されてもよい。システムUIは、ユーザの眼の高さに対応するシステムUIの位置を調整するために、把持された部分を中心に回転する。XR環境内でのユーザによるシステムUIの把持の詳細は、例えば図6Aにさらに提供される。
【0047】
入力変更モジュール440は、インタラクションの入力モードをレイキャスティングから直接タッチモードへ、およびその逆に変更するように構成されてもよい。入力変更モジュール440は、システムUIとユーザとの間の決定された距離に基づいてインタラクションの入力モードを変更するように構成される。システムUIとユーザとの間の距離が第1の閾値を下回るとき、入力変更モジュール440は、インタラクションのモードをインタラクションの直接タッチモードに変更する。システムUIとユーザとの間の距離が第2の閾値を上回るとき、入力変更モジュール440は、インタラクションのモードをインタラクションのレイキャスティングモードに変更する。インタラクションの直接タッチモードでは、ユーザは、システムUIのUI要素の3次元(3D)セットとインタラクトすることができる。インタラクションのレイキャスティングモードでは、ユーザは、システムUIのUI要素の2次元(2D)セットとインタラクトすることができる。インタラクションの入力モードの変更の詳細は、例えば、図7A図7Cにさらに提供される。
【0048】
外観修正モジュール442は、システムUIおよびシステムUIのUI要素のセットのうちの1つまたは複数の外観を修正するように構成されてもよい。例えば、外観修正モジュール442は、インタラクションの直接タッチモードにおいてシステムUIの形状をフラットな形状に修正するように構成される。さらに、インタラクションの直接タッチモードでは、外観修正モジュール442は、UI要素のセットの外観が3D形状を有し、UI要素のセットのうちの1つまたは複数のそれぞれに対して規定された固定サイズになるように修正するように構成される。
【0049】
外観修正モジュール442は、インタラクションのレイキャスティングモードにおいてシステムUIの形状を湾曲形状に修正するようにさらに構成される。インタラクションのレイキャスティングモードでは、ユーザはシステムUIから一定の距離にあり、したがって、湾曲したシステムUIは、ユーザがシステムUIとより効率的にインタラクトするのを助ける。さらに、インタラクションのレイキャスティングモードにおいて、外観修正モジュール442は、UI要素のセットの外観が2D形状を有し、システムUIからのユーザの決定された距離に基づいて規定された相対サイズを有するように修正するように構成される。例えば、ユーザとシステムUIとの間の距離がより大きい場合、UI要素のセットのうちの1つまたは複数のサイズを増加させることができる。システムUIおよびUI要素の外観の修正の詳細は、例えば、図7A図7C図10、および図11A図11Dにさらに提供される。
【0050】
上述される図1図4においておよび以下に論じられるフロー図のそれぞれにおいて示される構成要素が様々なやり方で変えられる場合があることを、当業者は理解するであろう。例えば、論理の順序は再配置構成され得る、サブステップは並列に遂行され得る、例解される論理は省略され得る、他の論理が含まれ得る、その他である。一部の実現形態において、上記で説明された構成要素のうちの1つまたは複数は、下記で説明されるプロセスのうちの1つまたは複数を実行することができる。
【0051】
図5は、XR環境におけるシステムUIインタラクションのための例示的な環境500を示す概念図である。環境500は、現実世界環境502を含んでもよい。現実世界環境502は、XRデバイス506を着用しているユーザ504を含んでもよい。環境500は、XR環境502AにおいてレンダリングされるシステムUI508を含むXR環境502A(XRデバイス506によって示される)を含んでもよい。現実世界環境502およびXR環境502Aは、同じ物理空間を占めてもよく、すなわち、現実世界環境502におけるユーザの動きは、XR環境502Aにおけるユーザの視点などの対応する変化を引き起こすことができる。場合によっては、XR環境502Aは、現実世界環境502と併せてレンダリングされたシステムUI508のオーバーレイ表現をユーザが見ることができる複合現実または拡張現実環境であってもよい。
【0052】
一実装形態では、システムUI508は、XR環境502Aにおいてレンダリングされてもよい。システムUI508は、XR環境502Aにおいてユーザ504の正面にレンダリングされる3D仮想要素であってもよい。システムUI508は、システムUI508の表面上に配置されたUI要素510のセットを含む。UI要素510のセットは、システムUI508上で見ることができる視覚的要素であってもよい。例えば、UI要素510のセットは、アイコン、ボタン、メニュー、テキストフィールド、画像、ビデオ、3Dメッシュ、進捗バーなどであってもよい。UI要素510のセットは、例えばウェブサイトのブラウジングまたはアプリケーションへのアクセスなどの様々な目的のためのユーザによるシステムUI508の利用を可能にする。UI要素510のセットは、任意の形状およびサイズであってもよい。
【0053】
システムUI508は、仮想オブジェクト、環境、または物理世界および/もしくは仮想世界に関する情報とインタラクトするために使用されてもよい。より具体的には、システムUI508は、ユーザとXR環境502Aとの間のインタラクションが発生し得る任意のUIであってもよい。システムUI508は、XRデバイス506を介してユーザ504からの1つまたは複数の入力を受信し、ユーザ504から受信した入力に基づいて出力を提供してもよい。システムUI508は、例えば、複合ユーザインターフェース(CUI)および/またはマルチメディアユーザインターフェース(MUI)などの1つであってもよい。
【0054】
XRデバイス506は、XR環境502AにおいてシステムUI508とインタラクトするためにユーザ504(例えば、XRデバイス502を着用している人)によって使用され得るウェアラブルデバイスであってもよい。XRデバイス506は、ホストコンピュータシステムに接続されたヘッドマウントディスプレイ(HMD)、スタンドアロンHMD、モバイルデバイスもしくはコンピューティングシステム、または人工現実コンテンツを提供することができる任意の他のハードウェアプラットフォームを含むような物理デバイスのうちの1つであってもよい。例えば、XRデバイス506は、例えば図2Aで説明したような仮想現実ヘッドマウントディスプレイ(HMD)200および/または例えば図2Bで説明したような複合現実HMDシステム250であってもよい。XRデバイス506は、ユーザ504の手504Aの位置を追跡することができ、かつ/またはユーザ504の手504Aのジェスチャもリアルタイムで検出することができる1つまたは複数のセンサを有することができる。一例では、ユーザ504の手504Aは、XR環境502Aにおいてユーザ504の手504Aの表現として描写することができる。ユーザ504の手504Aのそのような表現の位置は、現実世界環境502におけるユーザ504の手504Aの位置の追跡に基づいて、XR環境502Aにおいて更新されてもよい。さらに、ユーザ504の手504Aの位置の追跡はまた、例えば、図2Cで説明した、XRデバイス506に関連付けられたコントローラ270(例えば、ハンドコントローラ)またはウェアラブルデバイスであり得るコントローラを使用して実施されてもよく、これは、HMD200もしくは250のものと同様の自己追跡能力を含んでもよく、またはHMD200もしくは250によるコントローラの追跡を可能にする設計、発光、もしくは他の信号を有してもよい。
【0055】
コンピューティングシステムは、ユーザ504上の所定の安定点512の位置を追跡することができる1つまたは複数のセンサを有してもよい。例えば、1つまたは複数のセンサは、XRデバイス506の一部であってもよい。安定点512は、ユーザの頭部514の最も安定した点であってもよい。ユーザ504上の安定点512は、XR環境502A内のシステムUI508の位置を調整するための固定点として利用されてもよい。一実装形態では、ユーザ504上の所定の安定点512は、ユーザの頭部514の付け根がユーザの首と交わる点であってもよい。ユーザの頭部514の付け根がユーザの首と交わる点は、ユーザの頭部514が動くときに首の上端が静止したままであり得るように、安定点512として選択されてもよい。したがって、安定点512は、XR環境502A内にシステムUI508の位置を配置するための基準点として解釈されてもよい。
【0056】
いくつかの実装形態では、ユーザ504上の所定の安定点512は、ユーザの頭部の付け根がユーザの首と交わる場所からオフセットされた点であってもよい。例えば、オフセットは、ユーザの首の付け根からユーザの眼に向かう特定の空間(3インチなど)とすることができる。オフセットは、ユーザ504の眼の高さからの閾値高さにさらに基づいてもよい。例えば、所定の安定点512は、ユーザ512の眼に向かって10センチメートル(cm)のオフセットにあってもよい。
【0057】
いくつかの実装形態では、所定の安定点512は、ユーザ512上の規定された身体点からオフセットされた点であってもよい。例えば、規定された身体点はまた、ユーザの頭部514の付け根がユーザの首と交わる点とは異なる点であってもよい。例えば、規定された身体点は、肩、頭部、首、眼、額の中心、またはユーザ504の任意の他の身体部分にあってもよい。オフセットの方向および量は、ユーザ504の眼の高さに対するシステムUI508の相対位置の決定に基づいてもよい。オフセットの方向は、システムUIの表面がユーザ504の眼の高さに向かったままであるようなものであってもよい。例えば、システムUI508の相対位置がユーザ504の眼の高さよりも低い場合、オフセットの量はより多くてもよい。例示的なシナリオでは、システムUI508の位置は、ユーザ504の眼の高さから閾値高さ(例えば、15cm)未満であり、オフセット量は、ユーザ504のための所定の安定点508より5cm低くてもよい。このようにして、システムUI508との快適でユーザフレンドリなインタラクションのために、安定点512が各ユーザに固有であるように、所定の安定点512を様々なユーザ向けにカスタマイズすることができる。
【0058】
図6Aおよび図6Bは、XR環境502AにおけるシステムUI508の回転を示す概念図である。図6Aは、ユーザ504によるシステムUI508の把持を示すための図600Aを描写する。図600Aは、XR環境502Aを含む。XR環境502Aは、システムUI508と、ユーザ504の手504Aの表現602とを含む。
【0059】
コンピューティングシステムは、ユーザ504の手504Aの位置および安定点512を追跡するように構成されてもよい。追跡は、例えば、XRデバイス506の1つもしくは複数のセンサ、またはXRデバイス506と関連付けられたコントローラ270を使用することによって実施されてもよい。例えば、システムUI508の縁部とユーザ504の手504Aの位置との間の距離が追跡されてもよい。さらに、システムUI508の縁部を把持するジェスチャを追跡してもよい。距離およびジェスチャを追跡して、ユーザ504のシステムUI508を把持する意図を決定してもよい。
【0060】
例示的なシナリオでは、ユーザ504は、手504A(XR環境502A内では表現602として描写される)をシステムUI508の縁部に近づける。さらに、ユーザ504は、手504Aの親指と1本または複数本の指とを合わせることによって、システムUI508の縁部を把持するジェスチャを実施する。コンピューティングシステムは、システムUI508を把持するジェスチャを追跡する。
【0061】
ユーザ504の手504Aの位置(手のジェスチャおよび距離など)の追跡に基づいて、コンピューティングシステムは、手504A(XR環境502A内では表現602として描写される)がシステムUI508の一部分604を把持したことを識別する。手504AがシステムUI508の部分604を把持したことを識別した後、コンピューティングシステムは、システムUI508の把持された部分604を中心にシステムUI508の位置を回転させる。そのような回転は、XR環境502AにおけるシステムUI508の望ましくない移動の制限を可能にする。例えば、把持された部分604を中心とした回転は、システムUI508の柔軟な曲げ動作を制限する。
【0062】
さらに、コンピューティングシステムは、ユーザ504が把持された部分604を介してシステムUI508を移動させると、所定の安定点512とシステムUI508の表面との間の線(例えば、図6の線606)がシステムUI508の表面に対して垂直にまたは垂直から所定の角度になるように移動するように、システムUI508の位置を回転させる。線および安定点512に対するシステムUI508の回転を図6Bに示す。
【0063】
図6Bは、安定点512およびシステムUI508の把持された部分604に基づくシステムUI508の回転を示すための図600Bを描写する。図600Bは、XRデバイス506を着用しているユーザ504を含み得る現実世界環境502を含んでもよい。現実世界環境502は、システムUI508のオーバーレイ表現508Aを描写する。オーバーレイ表現508Aは、現実世界環境502に対してシステムUI508の位置がどのように存在するかを示す。場合によっては、XR環境502Aは、現実世界環境502と併せてレンダリングされたシステムUI508のオーバーレイ表現508Aをユーザ504が見ることができる複合現実または拡張現実環境であってもよい。例えば、ユーザ504は、ユーザ504が現実世界環境502を見ることができると同時に、XR環境502AにおいてレンダリングされるシステムUI508のオーバーレイ表現508Aを、XRデバイス506を介して見ることができてもよい。他の場合には、XR環境502Aは、ユーザ504が見るものが完全にコンピュータ生成される仮想環境とすることができる。したがって、これらの場合、システムUI508のオーバーレイ表現508Aは、現実世界環境502と併せて見ることができないが、代わりに、ユーザ504が現実世界環境502内も移動しているのと同時に移動している仮想空間内にレンダリングされる。
【0064】
概念線606が、安定点512とシステムUI508の表面との間に示されている。例えば、線606は、ユーザ504には見えない仮想線である。線606は、ユーザ504の安定点512に対するシステムUI508の回転を描写するために使用される。ユーザ504がシステムUI508の把持された部分604を介してシステムUI508を移動させると、コンピューティングシステムはシステムUI508の位置を回転させる。回転は、線606がシステムUI508の表面に対して垂直になるように、または垂直から所定の角度(後述)で移動するようなものである。
【0065】
例示的なシナリオでは、ユーザ504は、現実世界環境502内で頭部514を動かして、システムUI508を閲覧および使用してもよい。しかしながら、ユーザ504の安定点512は、頭部514が動くときにユーザ504の首が動かない場合があるのと同じ位置に留まることができる。したがって、システムUI508の位置は、ユーザ504の頭部514が動いても、XR環境502Aにおいて同じままであってもよく、それにより、ユーザ504に手間のかからない快適な視聴体験を提供する。さらに、ユーザ504がシステムUI508をXR環境502A内で移動させると、システムUI508は、安定点512とシステムUI508の表面との間の線606がシステムUI508の表面に対して垂直にまたは垂直から所定の角度になるように移動される。したがって、システムUI508がユーザ504に近づいたり離れたり、XR環境502A内で上下に移動したり、またはXR環境502A内で任意の方向に傾けられたりするとき、システムUI508の表面はユーザ504の頭部の方を向いている。
【0066】
いくつかの実装形態では、垂直からの所定の角度は、ユーザの眼に向かう回転量、例えば、システムUI表面をユーザの眼により近づける角度に対して垂直から5度までの回転であってもよい。いくつかの実装形態では、所定の角度は、システムUI508の高さに基づくことができる。したがって、コンピューティングシステムは、線606がシステムUI508の表面に対して垂直から所定の角度になるように移動するようにシステムUI508の位置を回転させることができ、所定の角度は、システムUI508の位置がユーザの眼の閾値高さからのオフセット608未満であるという決定に基づいて選択することができる。図6Bの閾値高さオフセット608は、ユーザ504の眼の高さ610に対するものであるが、ユーザの肩の高さ、胸骨中点、臀部の高さ、地面からの特定の距離、これらの決定された高さのうちの1つからの相対オフセットなどの他の特性に設定することができる。例えば、閾値高さオフセット608は、ユーザ504の眼の高さ610から地面の高さに向かって測定されてもよい。所定の角度は、この高さに対するものとすることができ、例えば、高さ610からのシステムUI508のオフセットが与えられたときにシステムUI508の表面がどの程度ユーザの眼に向けられるべきかを提供する線形または指数関数的な関係を規定することができる。場合によっては、線形または指数関数を定義する関数は、10度などの最大値以下の所定の角度を提供するようにキャップすることができる。
【0067】
図7A図7Bおよび図7Cは、ユーザ504とシステムUI508との間の距離に基づくシステムUI508の入力モードの変更を示す概念図である。図7Aは、インタラクションの直接タッチモードを描写する図700Aを含む。図700Aは、XR環境502Aを含む。XR環境502Aは、システムUI508と、ユーザ504の手504Aの表現602とを含む。
【0068】
コンピューティングシステムは、ユーザ512の位置を追跡するように構成されてもよい。追跡に基づいて、コンピューティングシステムは、ユーザ504とシステムUI508との間の距離を決定する。一実装形態では、ユーザ504とシステムUI508との間の距離は、少なくともユーザ504の手504AとシステムUI508の表面との間の距離に基づいて決定される。ユーザ504の手504AとシステムUI508の表面との間の距離は、XR環境502Aにおけるユーザ504の手504Aの表現602との間の距離として描写される。例えば、システムUI508に最も近い部分とシステムUI508の表面との間の距離を算出することで決定される。一例では、距離は、ユーザ504の手504Aの人差し指の指先とシステムUI508の表面との間で決定される。
【0069】
さらに、距離が第1の閾値702を下回っているという決定に応答して、コンピューティングシステムは、入力モードをインタラクションのレイキャスティングモードからインタラクションの直接タッチモードに変更してもよい。第1の閾値702はシステムUI508の表面からユーザ504に向かう距離であってもよい。したがって、ユーザ504の手504Aが第1の閾値702に達すると、入力モードは、ユーザ504がシステムUI508と直接インタラクトすることができるようにインタラクションの直接タッチモードに変更される。そのようなインタラクションの直接タッチモードは、現実世界環境502において手504Aを用いてデバイスに入力を提供するのと同様に、手504Aを介してシステムUI508に入力を直接提供する体験をユーザ504に提供する。インタラクションの直接タッチモードを使用するシステムUI508とのインタラクションの詳細は、図7Bに提供される。
【0070】
図7Bは、インタラクションの直接タッチモードを使用するシステムUI508とのインタラクションを描写する図700Bを含む。図700Bは、XR環境502Aを含む。XR環境502Aは、システムUI508と、ユーザ504の手504Aの表現602とを含む。システムUI508は、UI要素510のセットをさらに含む。UI要素510のセットは、UI要素704を含む。
【0071】
インタラクションの直接タッチモードでは、ユーザ504の手504Aの表現602は、ユーザ504の手504Aの現実世界での場所を追跡し、UI要素510のセットのうちのUI要素704などのUI要素とインタラクトする。例えば、ユーザ504の手504Aが移動してUI要素704にタッチすると、コンピューティングシステムは手504Aを追跡し、ユーザ504の手504Aの表現602がUI要素704にタッチしているように示される。一例では、ユーザ504の手504AとUI要素704との接触は、UI要素510のセットのうちのUI要素704の選択を可能にしてもよい。
【0072】
さらに、コンピューティングシステムは、インタラクションの直接タッチモードにおいて、フラットな形状を有するようにシステムUI508の外観を修正してもよい。例えば、システムUI508の表示がフラットに見えるように、システムUI508の縁部はフラットであってもよい。したがって、インタラクションの直接タッチモードでは、コンピューティングシステムは、現実世界環境502における電子タブレットと同様に、タッチスクリーンデバイスとしてシステムUI508とインタラクトする体験をユーザ504に提供する。
【0073】
一実装形態では、フラットな形状を有するシステムUI508は、単一スクリーンディスプレイを含む。システムUI508は、インタラクションの直接タッチモードにおいてユーザ504に近い(ユーザの別の手によって保持され得る)ので、単一スクリーンディスプレイを見ることは、ユーザ504に快適な視聴体験を提供してもよい。
【0074】
さらに、コンピューティングシステムは、UI要素510のセットのうちの1つまたは複数の外観が3次元(3D)形状を有し、UI要素510のセットのうちの1つまたは複数の各々に対して規定された固定サイズになるように修正してもよい。3D形状は、UI要素510のセットがシステムUI508の表面からある高さにあることを可能にしてもよい。UI要素510のセットは、ユーザ504がどのUI要素をターゲットするかを容易に識別し得るように、3D形状で示されてもよい。さらに、UI要素510のセットのサイズは固定されてもよく、いくつかの実施形態では、選択されたUI要素のサイズは増加してもよい。例えば、UI要素704のサイズは、選択されると増加してもよい。
【0075】
コンピューティングシステムは、ユーザ504とシステムUI508との間の距離に基づいて、入力モードをインタラクションの直接タッチモードからインタラクションのレイキャスティングモードに切り替えるようにさらに構成されてもよい。インタラクションのレイキャスティングモードの詳細は、図7Cに提供される。
【0076】
図7Cは、インタラクションのレイキャスティングモードを使用したシステムUI508とのインタラクションを描写する図700Cを含む。図700Cは、XR環境502Aを含む。XR環境502Aは、システムUI508を含む。XR環境502Aは、コントローラの表現706をさらに含む。コントローラの表現706は、仮想線708を含んでもよい。システムUI508は、UI要素510のセットをさらに含む。
【0077】
コンピューティングシステムは、ユーザ504の手504A(またはコントローラ)とシステムUI508の表面との間の距離が第2の閾値710を上回るようにユーザ504が移動したと決定してもよい。そのような場合、コンピューティングシステムは、入力モードをインタラクションの直接タッチモードからインタラクションのレイキャスティングモードに変更してもよい。
【0078】
一実装形態では、第1の閾値702は、第2の閾値710よりもシステムUI508の表面に近くてもよい。例えば、第1の閾値702は15cmであってもよく、第2の閾値710は25cmであってもよい。したがって、ユーザ504の手504AがXR環境502Aにおいて第2の閾値710を超えるようにユーザ504が移動したとき、コンピューティングシステムは、入力モードをインタラクションのレイキャスティングモードに変更してもよい。
【0079】
インタラクションのレイキャスティングモードでは、ユーザ504の手504Aの現実世界での場所に基づく位置を有する仮想線708は、UI要素510のセットのうちの要素とインタラクトする。仮想線708は、ユーザの手またはコントローラの表現706から出現する光線であってもよい。仮想線708は、UI要素510のセットとインタラクトするためのユーザ504による基準として使用されてもよい。例えば、仮想線708は、UI要素510のセットのうちのUI要素712とインタラクトするために使用されてもよい。
【0080】
例示的なシナリオでは、ユーザ504とシステムUI508の表面との間の距離が第2の閾値710を上回っているので、ユーザ504はシステムUI508から遠い。したがって、ユーザ504は、インタラクションの直接タッチモードを体験することができない場合がある。そのような場合、コンピューティングシステムは、ユーザ504にインタラクションのレイキャスティングモードを提供する。
【0081】
さらに、コンピューティングシステムは、インタラクションのレイキャスティングモードにおいて、システムUI508の外観が湾曲形状を有するように修正してもよい。例えば、システムUI508の縁部は、システムUI508の表示も湾曲して見えるように湾曲していてもよい。したがって、インタラクションのレイキャスティングモードにおいて、コンピューティングシステムは、ユーザ504に、遠距離からシステムUI508とインタラクトする体験を提供する。
【0082】
一実装形態では、湾曲形状を有するシステムUI508は、マルチスクリーンディスプレイ、例えばディスプレイ714Aおよびディスプレイ714Bを含む。例示的なシナリオでは、ユーザ504は、複数のアプリケーションを同時に使用してもよい。例えば、ディスプレイ714Aは、ウェブブラウザウィンドウであってもよい。別の例では、ディスプレイ714Aは、ゲームアプリケーション、支払いアプリケーション、ショッピングアプリケーションなどのアプリケーションのユーザインターフェースを表示してもよい。ディスプレイ714Bは、システムUI508の制御部にアクセスするためのユーザインターフェースを表示してもよい。例えば、ユーザ504は、ディスプレイ714Bを利用して、システムUI508のための輝度、音量、および他の制御設定などの制御を設定する。一実装形態では、マルチスクリーンディスプレイは、一度に3つのディスプレイをサポートしてもよい。別の実装形態では、マルチスクリーンディスプレイは、一度に3つ以上のディスプレイをサポートしてもよい。したがって、システムUI508上のマルチスクリーンディスプレイを使用することにより、ユーザ504は、ウィンドウ間で繰り返し切り替える必要なく、様々なアプリケーションを一度に利用することができてもよい。さらに、湾曲形状を有するシステムUI508のサイズは、フラットな形状を有するシステムUI508のサイズよりも大きくてもよい。システムUI508は、インタラクションのレイキャスティングモードにおいてユーザ504から遠く離れているので、大きなサイズのマルチスクリーンディスプレイで湾曲形状を見ることは、ユーザ504に快適な視聴体験を提供してもよい。
【0083】
さらに、コンピューティングシステムは、UI要素510のセットのうちの1つまたは複数の外観が2次元(2D)(湾曲したシステムUI表面に沿ってやはり湾曲している)形状を有し、システムUI508に対するユーザ504の決定された距離に基づいて規定された相対サイズになるように修正してもよい。例えば、システムUI508上のユーザ504により近いUI要素は、湾曲形状を有するシステムUI508上のユーザ504から遠いUI要素と比較して小さく見えてもよい。この関係は、距離を取り、倍率値を提供する規定された関係(例えば、線形であり、規定された最大値を有することができる)に基づくことができる。例示的なシナリオでは、システムUI508の湾曲縁部付近のUI要素は、システムUI508の表面の中央のUI要素と比較して小さく見えてもよい。
【0084】
いくつかの実装形態では、ユーザ512とシステムUI504との間の距離が第1の閾値702と第2の閾値710との間にある場合(例えば、15cm~25cm)、コンピューティングシステムはその以前の入力モードを維持する。ヒステリシスを実装するこのような様式では、ユーザが閾値に近づくと、入力モードとシステムUI表示モードとの間で突然切り替えが繰り返されることを回避することができる。さらに、システムUI508は、入力モード間のフリッカまたは突然の遷移を回避するために、第1の閾値702と第2の閾値710との間のインタラクションのレイキャスティングモードを、直接タッチモードに唐突に切り替えることはない。
【0085】
図8は、システムUI508の回転のためにいくつかの実装形態で使用される方法800のフロー図である。一実装形態では、方法800は、コンピューティングシステムおよびXRデバイス506がネットワーク330を介して接続されたときにトリガされてもよい。XRデバイス506がユーザ504によって起動されると、コンピューティングシステムは、XRデバイス506上にXR環境502Aを表示してもよい。さらに、コンピューティングシステムは、ユーザ504から入力を受信して、XR環境502AにおいてシステムUI508をレンダリングしてもよい。
【0086】
ブロック802において、システムUI508は、XR環境502A内の3D仮想要素としてレンダリングされる。例えば、システムUI508は、プリセットのデフォルト位置にあるユーザ512の眼の高さの前にあるXR環境502A内の位置、ユーザ504によって規定された位置などにレンダリングされてもよい。レンダリングされたシステムUI508の位置は、ユーザ504の両腕の届く範囲内にあるように設定することができる。
【0087】
ブロック804において、ユーザ504の手504Aの位置、およびユーザ504上の所定の安定点512が、コンピューティングシステムによって追跡される。ユーザ504の手504Aの位置、および所定の安定点512の追跡は、XRデバイス506上に存在する、またはXRデバイス506と通信する1つまたは複数のセンサ(例えば、カメラ、モーションセンサ、赤外線センサなど)を使用して取得された位置データに基づいて実施されてもよい。例えば、1つまたは複数のセンサは、カメラなどの撮像デバイスを含んでもよい。さらに、コントローラ270を使用して追跡を実施してもよい。いくつかの実装形態では、追跡は、ユーザの身体の可能な動きを定義する1つまたは複数の運動学的モデルに基づいてもよく、ユーザの画像に基づく入力を受信する機械学習モデルが、ユーザの身体の様々な部分の可能な位置に対する制約として運動学的モデルを使用することを可能にする。場合によっては、機械学習モデルは、ユーザの身体の部分の過去の既知の位置を入力として使用して、ユーザの動きの時間ベースの予測を実施することができる。場合によっては、画像ベースのユーザ追跡は、ユーザの身体の一部の運動を感知するウェアラブル機器に基づく追跡など、他の形態の追跡によって補完されるか、または他の形態の追跡と置き換えることができる。追加のセンサデータが蓄積されると、手504A(またはコントローラ)の表現602の位置およびユーザ上の安定点の位置は、追跡に基づいて更新される。
【0088】
ブロック806において、ユーザ504の手504AがシステムUI508の部分604を把持したことの識別に応答して、コンピューティングシステムは、システムUI508の把持された部分604を中心にシステムUI508の位置を回転させてもよい。システムUI508の位置の回転は、ユーザ504が把持された部分604を介してシステムUI508を移動させるときに、所定の安定点512とシステムUI508の表面との間の線606がシステムUI508の表面に対して垂直にまたは垂直から所定の角度になるように移動するように実施される。いくつかの実装形態では、この回転は、ユーザがシステムUIを閾値量だけ移動させた後にのみ発生してもよく、および/または所与の速度で回転を実施してもよく、システムUIがユーザが不快になるほど素早く回転位置にスナップすることはないことを可能にする。
【0089】
方法800は、コンピューティングシステムの対応するプロセッサを使用して実装されてもよい。いくつかの実装形態では、コンピュータプログラム可能製品を提供してもよい。コンピュータプログラム可能製品は、コンピュータによって実行されると、方法800をコンピュータに実行させるコンピュータ実行可能プログラムコード命令を格納した少なくとも1つの非一時的コンピュータ可読記憶媒体を備えてもよい。
【0090】
図9Aおよび図9Bは、システムUI508の入力モードを切り替え、システムUI508の外観を修正するためにいくつかの実装形態で使用される方法900のフロー図を示す。一実装形態では、方法900は、ユーザが人工現実環境に入ったとき、例えばXRデバイス506を身に着けたときに実施されてもよい。XRデバイス506がユーザ504によって起動されると、コンピューティングシステムは、XRデバイス506上にXR環境502Aを表示してもよい。さらに、コンピューティングシステムは、ユーザ504から入力を受信して、XR環境502AにおいてシステムUI508をレンダリングしてもよい。
【0091】
ブロック902において、システムUI508は、XR環境502A内の3D仮想要素としてレンダリングされる。例えば、システムUI508は、プリセットのデフォルト位置にあるユーザ504の眼の高さの前にあるXR環境502A内の位置、ユーザ504によって規定された位置などにレンダリングされてもよい。システムUI508は、システムUI508の表面に配置されたUI要素510のセットを含む。レンダリングされたシステムUI508の位置は、XRデバイス506に組み込まれたプリセットのデフォルト位置および/またはユーザ504によって規定された位置に設定することができる。システムUI508の位置は、ユーザ504の両腕の届く範囲内にあるように設定することができる。
【0092】
ブロック904において、追跡されたユーザ504の位置に基づいて、ユーザ504とシステムUI508との間の距離が決定される。追跡は、XRデバイス506上に存在する、またはXRデバイス506と通信する1つまたは複数のセンサ(例えば、カメラ、モーションセンサ、赤外線センサなど)を使用して取得された位置データに基づいて実施されてもよい。例えば、1つまたは複数のセンサは、カメラなどの撮像デバイスを含んでもよい。さらに、コントローラ270を使用して追跡を実施してもよい。いくつかの実装形態では、追跡は、ユーザの身体の可能な動きを定義する1つまたは複数の運動学的モデルに基づいてもよく、ユーザの画像に基づく入力を受信する機械学習モデルが、ユーザの身体の様々な部分の可能な位置に対する制約として運動学的モデルを使用することを可能にする。場合によっては、機械学習モデルは、ユーザの身体の部分の過去の既知の位置を入力として使用して、ユーザの動きの時間ベースの予測を実施することができる。場合によっては、画像ベースのユーザ追跡は、ユーザの身体の一部の運動を感知するウェアラブル機器に基づく追跡など、他の形態の追跡によって補完されるか、または他の形態の追跡と置き換えることができる。追加のセンサデータが蓄積されると、手504A(またはコントローラ)の表現602の位置およびユーザ上の安定点の位置は、追跡に基づいて更新される。一実装形態では、ユーザ504とシステムUI508との間の距離は、ユーザ504の手504AとシステムUI508の表面との間の距離に基づいて決定される。
【0093】
ブロック906において、コンピューティングシステムは、距離が第1の閾値702を下回っている(例えば、決定された典型的な腕の長さまたはユーザ504の腕の決定された長さの距離の内部)かどうかを決定することができる。例えば、コンピューティングシステムは、ユーザ504の手504Aの動きが検出されたときに距離を決定する。距離が第1の閾値702を下回っているという決定に応答して、ブロック908で説明されるさらなるステップが実施される(サブステップ908A、908Bおよび908Cにさらに分割される)。
【0094】
ブロック908Aにおいて、ユーザ504とシステムUI508との間の距離が第1の閾値702を下回ると、コンピューティングシステムは、入力モードをインタラクションのレイキャスティングモードからインタラクションの直接タッチモードに変更するように構成される。インタラクションの直接タッチモードでは、ユーザ504の手504Aの追跡された現実世界での場所に基づいて、ユーザ504の手504Aの表現602は、UI要素510のセットのうちのUI要素とインタラクトする。
【0095】
ブロック908Bにおいて、コンピューティングシステムは、フラットな形状を有するようにシステムUI508の外観を修正するように構成される。例えば、システムUI508の表示がフラットに見えるように、システムUI508の縁部はフラットであってもよい。一実装形態では、インタラクションの直接タッチモードでは、フラットな形状を有するシステムUI508は、ユーザが掴んで移動させることができる単一スクリーンディスプレイを含む。システムUI508は、インタラクションの直接タッチモードにおいてユーザ504に近い(ユーザの別の手によって保持され得る)ので、単一スクリーンディスプレイを見ることは、ユーザ504に快適な視聴体験を提供してもよい。
【0096】
ブロック908Cにおいて、コンピューティングシステムは、UI要素510のセットのうちの1つまたは複数の外観が3D形状を有し、UI要素510のセットのうちの1つまたは複数の各々に対して規定された固定サイズになるように修正するように構成される。3D形状は、UI要素510のセットがシステムUI508の表面からある高さにあることを可能にしてもよい。UI要素510のセットは、ユーザ504がどのUI要素をターゲットするかを容易に識別し得るように、3D形状で示されてもよい。さらに、UI要素510のセットのサイズは固定されてもよく、いくつかの実施形態では、選択されたUI要素のサイズは増加してもよい。
【0097】
ブロック910において、距離が第1の閾値702を上回っているという決定に基づいて、コンピューティングシステムは、距離が第2の閾値710を上回っているかどうかを決定するように構成される。例えば、距離が第2の閾値710を上回るという決定はまた、決定された典型的な腕の長さまたはユーザ504の腕の決定された長さに基づいてもよい。距離が第2の閾値を上回っていないという決定に応答して、プロセス900は終了することができる。プロセス900は、例えば、ユーザが移動し、システムUIが表示され続けるときに、再び反復的に実施することができる。
【0098】
ブロック914Aにおいて、ユーザ504とシステムUI508との間の距離が第2の閾値710を上回るとき、コンピューティングシステムは、入力モードをインタラクションの直接タッチモードからインタラクションのレイキャスティングモードに変更するように構成される。インタラクションのレイキャスティングモードでは、ユーザ504の手504Aの現実世界での場所に基づく位置を有する仮想線708は、UI要素510のセットのうちのUI要素とインタラクトする。仮想線708は、ユーザの手またはコントローラの表現706から出現する光線であってもよい。仮想線708は、UI要素510のセットとインタラクトするためのユーザ504による基準として使用されてもよい。例えば、仮想線708は、UI要素510のセットのうちのUI要素712とインタラクトするために使用されてもよい。
【0099】
ブロック914Bにおいて、コンピューティングシステムは、システムUI508の外観が湾曲形状を有するように修正するように構成される。例えば、システムUI508の縁部は、システムUI508の表示も湾曲して見えるように湾曲していてもよい。したがって、インタラクションのレイキャスティングモードにおいて、コンピューティングシステムは、ユーザ504に、遠距離からシステムUI508とインタラクトする体験を提供する。一実装形態では、湾曲形状を有するシステムUI508は、マルチスクリーンディスプレイ、例えばディスプレイ714Aおよびディスプレイ714Bを含む。特に、システムUI508上のマルチスクリーンディスプレイを使用することにより、ユーザ504は、ウィンドウ間で繰り返し切り替える必要なく、様々なアプリケーションを一度に利用することができてもよい。
【0100】
ブロック914Cにおいて、コンピューティングシステムは、UI要素510のセットのうちの1つまたは複数の外観が2D(湾曲したシステムUI表面に沿ってやはり湾曲している)形状を有する必要があり、システムUI508に対するユーザ504の決定された距離に基づいて規定された相対サイズになるように修正するように構成される。例えば、システムUI508上のユーザ504により近いUI要素は、湾曲形状を有するシステムUI508上のユーザ504から遠いUI要素と比較して小さく見えてもよい。この関係は、距離を取り、倍率値を提供する規定された関係(例えば、線形であり、規定された最大値を有することができる)に基づくことができる。したがって、ユーザ504とシステムUI508との間の距離に基づいて、コンピューティングシステムは、フリッカを引き起こすことなくシステムUI508の入力モードおよび表示モードの切り替えを可能にし、それにより、ユーザ504に強化されたユーザ体験を提供する。
【0101】
方法900は、コンピューティングシステムの対応するプロセッサを使用して実装されてもよい。いくつかの実装形態では、コンピュータプログラム可能製品を提供してもよい。コンピュータプログラム可能製品は、コンピュータによって実行されると、方法900をコンピュータに実行させるコンピュータ実行可能プログラムコード命令を格納した少なくとも1つの非一時的コンピュータ可読記憶媒体を備えてもよい。
【0102】
図10は、システムUIの様々な実装および構成を示す概念図1000である。図10は、システムUIの4つのバージョンを含む。バージョン1012は、ユーザ1002が一方の手1004で保持し、他方の手でインタラクトすることができるハンドヘルド仮想オブジェクトとして表示されるシステムUIを含む。システムUIバージョン1012に関するさらなる詳細は、図11Aに関連して以下に提供される。バージョン1010は、ユーザ1002の視野の周りの所定の位置にロックされた要素および制御部1010Aおよび1010Bなどの別個のUI要素および制御部のセットとして表示されるシステムUIを含む。システムUIバージョン1010に関するさらなる詳細は、図11Bに関連して以下に提供される。バージョン1008は、複数のアプリケーションまたは情報ソースへのマルチタスクおよび同時アクセスを可能にする複数のウィンドウ1008A~1008Cのセットとして表示されるシステムUIを含む。システムUIバージョン1008に関するさらなる詳細は、図11Cに関連して以下に提供される。バージョン1006は、没入型コンテンツ視聴体験を提供する、大きなヘッドロックスクリーンまたはワールドロックスクリーンとして表示されるシステムUIを含む。システムUIバージョン1006に関するさらなる詳細は、図11Dに関連して以下に提供される。
【0103】
図11A図11Dは概念図1100、1110、1120、および1130であり、それぞれがシステムUIの様々な実装および構成のうちの1つをさらに示している。様々な実装形態において、概念図1100、1110、1120、および1130に示されるシステムUI構成をマッピングして、ユーザが、VR没入型アプリケーション、複合現実または拡張現実体験などの様々なコンテキストにおいて、指定されたホーム環境、特定のスクリーンサイズインターフェース、遮蔽パラメータ、またはユーザ入力モダリティを必要とすると指定された状況にあると識別されたときに使用することができる。例えば、システムUIが別個のUI要素のセットとして表示され、制御部がユーザの視野の周りの所定の位置にロックされるヘッドアップ構成は、ユーザが両手を自由にする必要があるか、またはシステム制御のための注意が限られており、したがって、ひと目でわかる(glanceable)情報を必要とするように規定されたコンテキストで使用することができ;ユーザが一方の手で保持し、他方の手でインタラクトすることができるハンドヘルド仮想オブジェクトとしてシステムUIが表示されるタブレット構成は、デフォルトモードとして使用することができる;システムUIが複数のウィンドウのセットとして表示されるマルチスクリーン構成は、ユーザがマルチタスクを行い得るコンテキストにおいて使用することができ;そして、システムUIが大きなヘッドロックスクリーンまたはワールドロックスクリーンとして表示されるシアタースクリーン構成は、ユーザが映画または没入型メディアなどのコンテンツアイテムを視聴している状況で使用することができる。
【0104】
図11Aは、ユーザが一方の手で保持し、他方の手でインタラクトすることができるハンドヘルド仮想オブジェクトとして表示されているシステムUI1102を示す。図11Aに示されるシステムUI構成は、ユーザが最初にシステムUIを有効にするとき、ユーザが異なる構成で示されるシステムUIの一部を掴むジェスチャを実施するとき、このシステムUIモードに入るための音声コマンドまたはUI要素のアクティブ化時などにトリガすることができる。個の構成のシステムUIは、様々なシステム制御、アプリケーションへのアクセス(例えば、領域1106)、アカウントおよび支払い方法などのツールおよびユーティリティ(例えば、領域1104)、様々なメタバース先への移動リンク、ユーザのコンテンツ項目、ユーザのアバターの外観および付属品を移動および設定するための制御などを含むことができる。ユーザは、ユーザの物理的な手でグラブジェスチャを行うことによってこのシステムUI1102を保持することができ、それにより、ユーザは、容易な閲覧およびユーザの他方の手とのインタラクションを容易にする様式で、システムUI1102を6自由度で移動および位置合わせすることができる。ユーザがシステムUI1102を手放すと、様々な実装形態において、システムUI1102は消滅するか、解放された場所でワールドロックされるか、デフォルトの場所に移動するか、または図11B図11Dに示される状態のうちの1つなどの別の状態に遷移してもよい。
【0105】
図11Bは、ユーザの視野の周りの所定の位置にロックされた別個のUI要素および制御部のセットとして表示されるシステムUIを含む。図11Bに示されるシステムUI構成は、ユーザが最初にシステムUIを有効にするとき、ユーザが図11A図11C、または図11Dに示されるモードのうちの別のモードからシステムUIを閉じるとき、このシステムUIモードに入るための音声コマンドまたはUI要素のアクティブ化時などにトリガすることができる。図11Bでは、ユーザの視野(すなわち、ユーザが自分の人工現実デバイスを通して見ることができる現実世界または仮想世界の領域)が長方形1114として示されている。図示の例では、システムUIは、システム制御部1116および通知部1112を含むいくつかのUI要素に分割されている。個の構成のシステムUIは、システムコントローラまたは他の実行アプリケーションによって表面化されたときにユーザの視野内の特定の領域にロックされることができる追加のUI要素をポップアップすることができる。システムUIは、システムUIモードのうちの1つが本明細書で説明するようにアクティブ化されると、システムUIモードのうちの別のモードに戻ることができる。
【0106】
図11Cは、複数のアプリケーションまたは情報ソースへのマルチタスクおよび同時アクセスを可能にする複数のウィンドウ1122~1126のセットとして表示されるシステムUIを含む。図11Cに示されるシステムUI構成は、ユーザが最初にシステムUIを有効にするとき、システムUIのタブレットバージョンを投げる、または5本全ての指を開くジェスチャもしくは両手を引き離すジェスチャによってシステムUIのタブレットバージョンを引き伸ばすジェスチャをユーザが実施したとき、このシステムUIモードに入るための音声コマンドまたはUI要素のアクティブ化時などにトリガすることができる。この構成のシステムUIは、複数のウィンドウを示すことができ、複数のウィンドウでは、ウェブブラウザまたは別のアプリケーションの2Dバージョン(例えば、ウィンドウ1126)、文書、ビデオ、もしくは画像などのコンテンツ項目、またはそのようなコンテンツ項目のライブラリ、連絡先もしくは他のソーシャルメディアコンテンツ(例えば、ウィンドウ1122)、ニュースフィード、インストールされたアプリケーション(例えば、ウィンドウ1124)、様々なメタバース先までナビゲートするための制御、アバターの設定および制御など、それぞれが何を示すかをユーザが選択することができる。いくつかの実装形態では、システムUIのこの構成はまた、例えばクイックアクセスコントロール、設定、システムステータスおよび通知制御などを有するランチャーバー1128も含むことができる。システムUIはまた、そうするためのユーザコマンドまたはジェスチャによって、閉じるか、または図11A図11B、もしくは図11Dに示される構成のうちの別の構成に遷移することができる。
【0107】
図11Dは、没入型コンテンツ視聴体験を提供する、大きなヘッドロックスクリーンまたはワールドロックスクリーンとして表示されているシステムUIを含む。図11Dに示すシステムUI構成は、ユーザが最初にシステムUIを有効にするとき、ユーザがこのモード用に構成されたシステムUI内のコンテンツ項目を開くとき、このモードでシステムUIを介してコンテンツ項目を提供するためのアプリケーションまたは体験設定を開始したとき、システムUIを投げるか、または閾値サイズを超えてシステムUIをさらに引き伸ばすジェスチャ(例えば、5本全ての指を開くジェスチャか、または閾値サイズよりも両手を引き離すジェスチャによってシステムUIの別のバージョンを引き伸ばすことによる)をユーザが行ったとき、このシステムUIモードに入るための音声コマンドまたはUI要素のアクティブ化時などにトリガすることができる。この構成のシステムUIは、コンテンツ項目を示す完全に没入型体験を提供することができるか、またはコンテンツ項目1134を示すスクリーン1132などの大きな仮想スクリーンを示すことができる。いくつかの実装形態では、この構成のシステムUIは、システム制御、通知、共同視聴要素などの追加のシステムUI要素1136を含むことができる。この構成のシステムUIは、ユーザが世界を動き回るときに同じ場所に留まるように見えるようにワールドロックすることができる(スクリーンをユーザに向けたままにすることを含むことができる)、またはユーザが世界を動き回るときにユーザから同じ距離に留まるように見えるようにボディロックすることができる。この構成からのシステムUIは、例えば、グラブジェスチャでユーザによって選択されたとき、音声またはUIのアクティブ化による閉じるコマンドに応答するなどして、閉じるか、またはシステムUI構成のうちの別のものに遷移することができる。
【0108】
開示された技術のいくつかの実装形態は、図面を参照して上述されている。記載された技術が実装され得るコンピューティングデバイスは、1つまたは複数の中央処理装置、メモリ、入力デバイス(例えば、キーボードおよびポインティングデバイス)、出力デバイス(例えば、ディスプレイデバイス)、ストレージデバイス(例えば、ディスクドライブ)、およびネットワークデバイス(例えば、ネットワークインターフェース)を含むことができる。メモリおよび記憶デバイスは、記載された技術の少なくとも一部を実装する命令を格納することができるコンピュータ可読記憶媒体である。さらに、データ構造およびメッセージ構造は、通信リンク上の信号などのデータ伝送媒体を介して格納または送信することができる。インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク、またはポイントツーポイントダイヤルアップ接続などの様々な通信リンクを使用することができる。したがって、コンピュータ可読媒体は、コンピュータ可読記憶媒体(例えば、「非一時的」媒体)およびコンピュータ可読伝送媒体を備えることができる。
【0109】
本明細書における、「実装形態」(例えば、「いくつかの実装形態」、「様々な実装形態」、「1つの実装形態」、「一実装形態」など)への言及は、実装形態に関連して説明される特定の特徴、構造、または特性が、本開示の少なくとも1つの実装形態に含まれることを意味する。本明細書における様々な場所にこれらの語句が現れることは、全てが必ずしも同じ実装形態に言及しているわけでもないし、他の実装形態を相互に除外する別個のまたは代替的な実装形態であるわけでもない。さらに、一部の実装形態によって示されるが他の実装形態によって示されない場合がある様々な特徴が記載される。同様に、一部の実装形態にとっては必要条件であるが、他の実装形態にとってはそうでない様々な必要条件が記載される。
【0110】
本明細書で使用される際、閾値を上回ることは、比較中の項目に対する値が指定された他の値を上回ること、比較中の項目がある特定の指定された数の項目の中で最も大きい値を有すること、または比較中の項目が指定された最高のパーセンテージ値内の値を有することを意味する。本明細書で使用される際、閾値を下回ることは、比較中の項目に対する値が指定された他の値を下回ること、比較中の項目がある特定の指定された数の項目の中で最も小さい値を有すること、または比較中の項目が指定された最低のパーセンテージ値内の値を有することを意味する。本明細書で使用される際に、閾値内であることは、比較中の項目に対する値が2つの指定された他の値の間にあること、比較中の項目が指定された数の項目の中間にあること、または比較中の項目が中間の指定されたパーセンテージ範囲内の値を有することを意味する。高いまたは重要ではないなどの相対的な用語は、別段定義されない時、値を割り当て、かつその値が確立された閾値とどのように比較されるかを判断するものと理解可能である。例えば、語句「速い接続を選択すること」は、その接続速度に対応して割り当てられた値を有し、その割り当てられた値が閾値を超える接続を選択することを意味するように理解可能である。
【0111】
本明細書で使用される際、「または」という語は、一連の項目の任意の可能な置換を指す。例えば、「A、BまたはC」という語句は、A、B、C、AおよびB、AおよびC、BおよびC、A、B、およびC、またはAおよびA、B、B、およびC、A、A、B、C、およびCなどの複数の任意の項目のいずれかなど、A、B、Cの少なくとも1つ、またはこれらの任意の組み合わせを指す。
【0112】
構造上の特徴および/または方法論的動作に特有の言語で主題について説明してきたが、添付の特許請求の範囲で定義される主題が必ずしも上述される具体的な特徴または動作に限定されないことは理解されたい。具体的な実施形態および実装形態が例示の目的で本明細書に説明されているが、実施形態および実装形態の範囲から逸脱することなく、様々な修正がなされ得る。上述される具体的な特徴および動作は、以下に続く特許請求の範囲を満たす例示の形態として開示される。それ故に、実施形態および実装形態は、添付の特許請求の範囲によって限定される場合を除いて限定されない。
【0113】
上で述べられるいずれの特許、特許出願、および他の参考文献も、参照により本明細書に組み込まれる。必要に応じて、上述される様々な参考文献のシステム、機能、および概念を用いてさらなる実装形態を提供するために態様が修正され得る。参照により組み込まれる文献の記述または主題が本出願の記述または主題と矛盾する場合、本出願が優先されるものとする。
図1
図2A
図2B
図2C
図3
図4
図5
図6A
図6B
図7A
図7B
図7C
図8
図9A
図9B
図10
図11A
図11B
図11C
図11D
【外国語明細書】