(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-27
(45)【発行日】2024-01-11
(54)【発明の名称】仮想現実環境ベースの訓練及び認証を提供するためのシステム及び方法
(51)【国際特許分類】
G09B 9/00 20060101AFI20231228BHJP
G06T 19/00 20110101ALI20231228BHJP
G09B 5/06 20060101ALI20231228BHJP
【FI】
G09B9/00 A
G06T19/00 600
G09B5/06
(21)【出願番号】P 2023540925
(86)(22)【出願日】2021-12-30
(86)【国際出願番号】 US2021065790
(87)【国際公開番号】W WO2022147328
(87)【国際公開日】2022-07-07
【審査請求日】2023-09-15
(32)【優先日】2020-12-31
(33)【優先権主張国・地域又は機関】US
【早期審査対象出願】
(73)【特許権者】
【識別番号】523251389
【氏名又は名称】オベロン・テクノロジーズ・インコーポレイテッド
【氏名又は名称原語表記】OBERON TECHNOLOGIES, INC.
【住所又は居所原語表記】2232 S. Main Street, Suite 454 Ann Arbor, Michigan UNITED STATES OF AMERICA
(74)【代理人】
【識別番号】110002789
【氏名又は名称】弁理士法人IPX
(72)【発明者】
【氏名】アレン・スコット
(72)【発明者】
【氏名】アレン・ティモシー
【審査官】鈴木 崇雅
(56)【参考文献】
【文献】国際公開第2020/196818(WO,A1)
【文献】米国特許第10065074(US,B1)
【文献】米国特許出願公開第2020/0314489(US,A1)
【文献】米国特許出願公開第2015/0079565(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G09B 5/00-14
G09B 9/00
G06T 19/00
(57)【特許請求の範囲】
【請求項1】
仮想環境ベースの訓練及び認証を提供するための方法であって、
(a)コンピューティングデバイスのセンサによって、物理環境内のユーザの位置を追跡するステップと、
(b)前記コンピューティングデバイスによって、仮想現実ディスプレイを介して、仮想環境内の前記ユーザの追跡した前記位置に対応するアバターを前記ユーザに対して表示するステップと、
(c)前記コンピューティングデバイスによって、前記仮想環境内の仮想オブジェクトとの前記アバターのインタラクションを検出するステップと、
(d)前記コンピューティングデバイスによって、検出された前記インタラクションと、前記仮想オブジェクトに関連付けられた所定のインタラクションとの間の差を測定するステップと、
(e)前記コンピューティングデバイスによって、測定された前記差に反比例するスコアを生成するステップと
、
(f)前記アバターの一連のインタラクションについて(c)~(e)のステップを繰り返すステップと、
(g)前記アバターの検出された第1のインタラクションの検出と、前記アバターの過去のインタラクションの検出との間の時間が、対応する所定のインタラクション間の時間を超えることに応答して、前記アバターの前記第1のインタラクションに対するスコアから第1の値を減算するステップと、
(h)前記アバターの前記第1のインタラクションの検出と、続いて検出された前記アバターの第2のインタラクションの検出との間の時間が、対応する所定のインタラクション間の時間と等しいことに応答して、前記アバターの前記第2のインタラクションに対するスコアに第2の値を加算するステップと、
(i)前記スコアを集計するステップと、を有する、
方法。
【請求項2】
請求項
1に記載の方法において、
前記アバターの検出された前記一連のインタラクションは、所定の順序を有する一連の所定のインタラクションに対応する、
方法。
【請求項3】
請求項2に記載の方法において、
前記アバターの検出された前記一連のインタラクションが前記一連の所定のインタラクションとは異なる順序を有することに応答して、集計された前記スコアを調整するステップをさらに有する、
方法。
【請求項4】
請求項
1に記載の方法において、
集計された前記スコアを閾値と比較するステップと、
集計された前記スコアが前記閾値未満であることに応答して(a)~(e)のステップを繰り返すステップとをさらに有する、
方法。
【請求項5】
請求項1に記載の方法において、
前記アバターの検出された前記インタラクションと前記所定のインタラクションとの間の
前記差の測定において、前記ユーザの追跡した前記位置と、前記所定のインタラクションに対応する第2のユーザの記録済みの追跡した位置との間の差を測定するステップをさらに有する、
方法。
【請求項6】
請求項5に記載の方法において、
前記ユーザの追跡した前記位置と第2のユーザの記録済みの追跡した前記位置との間の
前記差の測定において、
前記ユーザの手の位置を追跡するステップと、
前記ユーザの追跡した前記手の位置と、前記第2のユーザの記録済みの追跡した手の位置との間の差を測定するステップとをさらに含む、
方法。
【請求項7】
請求項1に記載の方法において、
前記仮想環境内で、前記仮想オブジェクトに関連付けられた前記所定のインタラクションを第2のアバターとして表示するステップをさらに有する、
方法。
【請求項8】
請求項7に記載の方法において、
前記コンピューティングデバイスの前記センサによって、前記物理環境内の第2のユーザの位置を追跡しながら、前記所定のインタラクションを記録するステップをさらに含む、
方法。
【請求項9】
仮想環境ベースの訓練及び認証を提供するためのシステムであって、
前記システムは、コンピューティングデバイスを有し、
前記コンピューティングデバイスは、少なくとも1つのセンサとプロセッサとを含み、仮想現実ディスプレイと通信し、
前記プロセッサは、
(a)前記センサ
を介して、物理環境内のユーザの位置を追跡し、
(b)前記仮想現実ディスプレイを介して、仮想環境内の前記ユーザの追跡した前記位置に対応するアバターを前記ユーザに対して表示し、
前記仮想環境内の仮想オブジェクトに対する前記アバターの一連のインタラクションの各インタラクションについて、
(c)
前記インタラクションを検出し、
(d)検出された前記インタラクションと、前記仮想オブジェクトに関連付けられた所定のインタラクションとの間の
時間的な又は空間的な差を測定し、
(e)測定された前記
時間的な又は空間的な差に反比例するスコアを生成
し、
(f)前記アバターの検出された第1のインタラクションの検出と、前記アバターの過去のインタラクションの検出との間の時間が、対応する所定のインタラクション間の時間を超えることに応答して、前記アバターの前記第1のインタラクションに対するスコアから第1の値を減算し、
(g)前記アバターの前記第1のインタラクションの検出と、続いて検出された前記アバターの第2のインタラクションの検出との間の時間が、対応する所定のインタラクション間の時間と等しいことに応答して、前記アバターの前記第2のインタラクションに対するスコアに第2の値を加算し、
(h)前記スコアを集計する、
システム。
【請求項10】
請求項9に記載のシステムにおいて、
検出された前記一連のインタラクションは、所定の順序を有する一連の所定のインタラクションに対応する、
システム。
【請求項11】
請求項10に記載のシステムにおいて、
前記プロセッサは、さらに、
検出された前記一連のインタラクションが前記一連の所定のインタラクションとは異なる順序を有することに応答して、集計された前記スコアを調整する、
システム。
【請求項12】
請求項9に記載のシステムにおいて、
前記プロセッサは、さらに、
集計された前記スコアを閾値と比較し、集計された前記スコアが前記閾値未満であることに応答して(a)~(e)のステップを繰り返す、
システム。
【請求項13】
請求項9に記載のシステムにおいて、
前記プロセッサは、さらに、
最初に検出されたインタラクションと、続いて検出されたインタラクションとの間の時間と、対応する所定のインタラクション間の時間とを比較し、
前記時間の比較に基づいて、前記続いて検出されたインタラクションについて生成された前記スコアを調整する、
システム。
【請求項14】
請求項9に記載のシステムにおいて、
前記プロセッサは、さらに、
前記ユーザの追跡した前記位置と、前記所定のインタラクションに対応する第2のユーザの記録済みの追跡した位置との間の
時間的な又は空間的な差を測定する、
システム。
【請求項15】
請求項14に記載のシステムにおいて、
前記プロセッサは、さらに、
前記ユーザの手の位置を追跡し、
前記ユーザの追跡した前記手の位置と、前記第2のユーザの記録済みの追跡した手の位置との間の
時間的な又は空間的な差を測定する、
システム。
【請求項16】
請求項9に記載のシステムにおいて、
前記プロセッサは、さらに、
前記仮想環境内で、前記仮想オブジェクトに関連付けられた前記所定のインタラクションを第2のアバターとして表示する、
システム。
【請求項17】
請求項16に記載のシステムにおいて、
前記プロセッサは、さらに、
前記コンピューティングデバイスの前記センサによって、前記物理環境内の第2のユーザの位置を追跡しながら、前記所定のインタラクションを記録する、
システム。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願との相互参照)
本出願は、「SYSTEMS AND METHODS FOR PROVIDING VIRTUAL REALITY ENVIRONMENT BASED TRAINING AND CERTIFICATION」と題され、2020年12月31日に出願された米国特許出願第17/139,776号の優先権及び利益を主張し、その全ての内容は、あらゆる目的のために、参照によりその全体が本明細書に組み込まれる。
【0002】
本開示は、一般に、仮想現実環境のためのシステム及び方法に関する。特に、本開示は、データへの、外部化されたコンテキスト依存リンクを有する仮想オブジェクトを含む動的仮想現実体験を提供するためのシステム及び方法に関する。
【背景技術】
【0003】
仮想現実環境は、火災、ガス漏れ、又は他のそのような状況といった緊急事態を想定した、原子力発電所又は化学処理プラント等の現実では危険であろう環境でのユーザ及びオペレータの訓練及び認証を可能にする。このような仮想現実環境は、詳細なシミュレーション及び写実的なグラフィックにより高い没入感を有し得るので、優れた訓練の機会を提供し得る。
【0004】
しかし、このような仮想現実環境及びシナリオの開発及びプログラミングは、複雑で時間がかかる。さらに、一度プログラムされた環境又はシナリオは、通常固定され、再度全てをプログラムし直さずに変更することは困難である。現在では、過去の訓練システムからの大量の情報が既に存在しているが、その情報は、まだこのような仮想現実環境に統合されていない。このデータを追加するには、同様に、環境全体をプログラミングし直す必要があり得る。したがって、シナリオ又は訓練ツールを仮想現実環境に移行するための複雑さ、費用、及び時間の制約から、仮想現実の高度な能力及び機能を有効活用している開発者はほとんどいない。
【発明の概要】
【0005】
本開示の様々な目的、側面、特徴、及び利点は、全体を通して同様の参照番号により対応する要素を特定する、添付の図面と併せて参照される詳細な説明を参照することにより、より明らかになり、より良く理解されるであろう。図面において、同様の参照番号は、一般に、同一、機能的に類似、及び/又は構造的に類似の要素を示す。
【図面の簡単な説明】
【0006】
【
図1A】いくつかの実施態様に係る、訓練及び認証のための仮想現実環境の図である。
【
図1B】いくつかの実施態様に係る、仮想現実ベースの訓練及び認証のための訓練システムの論理ブロック図である。
【
図2A】いくつかの実施態様に係る、仮想現実ベースのアプリケーションの開発及びデプロイメントのための方法のフローチャートである。
【
図2B】いくつかの実施態様に係る、仮想現実ベースのアプリケーションの開発及びデプロイメントのための論理階層のツリー図である;
【
図2C】いくつかの実施態様に係る、仮想現実ベースのアプリケーションの開発及びデプロイメントのためのコンフィギュレーション構成を生成するための方法のフローチャートである。
【
図2D】いくつかの実施態様に係る、仮想現実ベースのアプリケーションの開発及びデプロイメントのためのコンフィギュレーション構成を修正するための方法のフローチャートである。
【
図3A】いくつかの実施態様に係る、インタラクティブな仮想現実環境を提供するための方法のフローチャートである。
【
図3B】いくつかの実施態様に係る、インタラクティブな仮想現実環境を提供するための方法のフローチャートである。
【
図4A】いくつかの実施態様に係る、インタラクティブな仮想現実環境を提供するためのシステムのブロック図である。
【
図4B】いくつかの実施態様に係る、訓練及び認証のための仮想現実環境の図である。
【
図4C】いくつかの実施態様に係る、訓練及び認証のための仮想現実システムのための例示的な訓練及び認証のログである。
【
図4D】いくつかの実施態様に係る、仮想現実ベースの訓練及び認証のための方法のフローチャートである。
【
図5A】いくつかの実施態様に係る、仮想現実環境を起動するための方法のフローチャートである。
【
図5B】いくつかの実施態様に係る、確実なアプリケーションのデプロイメントを提供するための方法のフローチャートである。
【
図6A】本明細書に記載の方法及びシステムに関連して有用なコンピューティングデバイスの実施形態を示すブロック図である。
【
図6B】本明細書に記載の方法及びシステムに関連して有用なコンピューティングデバイスの実施形態を示すブロック図である。
【発明を実施するための形態】
【0007】
方法及びシステムの種々の実施形態の詳細は、添付図面及び以下の記載によって説明される。
【0008】
以下の種々の実施形態の記載を読むにあたり、本明細書の各セクションとその内容に関する次の記載が参考になるであろう。
-セクションAでは、仮想現実環境のためのシステム及び方法の実施形態を説明する。
-セクションBでは、本明細書で説明する実施形態を実践するのに有用であり得るコンピューティング環境について説明する。
【0009】
(A. 仮想現実環境のためのシステムと方法)
仮想現実環境は、火災、ガス漏れ、又は他のそのような状況といった緊急事態を想定した、原子力発電所や化学処理プラント等の現実では危険であろう環境でのユーザ及びオペレータの訓練及び認証を可能にする。このような仮想現実環境は、詳細なシミュレーションや写実的なグラフィックにより高い没入感を有し得るので、優れた訓練の機会を提供し得る。
【0010】
例えば、
図1Aは、いくつかの実施態様に係る、訓練及び認証のための仮想現実環境10の図である。仮想現実環境10は、三次元環境を有してもよく、仮想カメラの視点から見られてもよく、仮想カメラは、ユーザ又はオペレータの視点に対応してもよい。いくつかの実施態様では、仮想カメラは、ジョイスティック、キーボード、又は他のそのようなインタフェースを介して制御されてもよく、他の実施態様では、仮想カメラは、仮想環境内のユーザの視界がユーザの物理的な動き及び向きに対応するようなヘッドマウントディスプレイ(例えば、仮想現実ゴーグル又はヘッドセット)の追跡又は類似のヘッドトラッキングを介して制御されてもよい。
【0011】
仮想現実環境は、1つ以上のオブジェクト20を含み得、1つ以上のオブジェクトは、ボタン、レバー、ホイール、パネル、スクリーン、ゲージ、パイプ、はしご、標識、又は任意の他のタイプ及び形態のオブジェクトを含み得る。オブジェクト20は、多くの実施態様において三次元の境界を有していてもよく、いくつかの実施態様において、写実的なテクスチャ又は画像を含む、リアルさを高めるためのテクスチャ、陰影、又は着色を含んでもよい。オブジェクト20は、インタラクティブであってもよいし、シミュレーションの様々な側面を制御するために、ユーザにオブジェクトに対しインタラクションさせてもよい。例えば、いくつかの実施態様において、ユーザは、オブジェクトを(例えば、ユーザの動きが追跡される実施態様においてオブジェクトに手を伸ばすことによって身体的に、ジョイスティック、マウス、タブレット、ポインタ、もしくは他のデバイス等のユーザインタフェースデバイスを使用して、音声-コマンドインタフェースに従って口頭で、仮想カメラをオブジェクトに向けて選択ボタンを押すか所定の期間待機することによって視覚的に、又は、他の任意のそのような方法によって)選択してもよく、様々な機能が実行され得る。
【0012】
このような仮想現実環境及びシナリオの開発及びプログラミングは、複雑で時間がかかる場合がある。例えば、
図1Aの例では、単純なコントロールパネルが、対応する機能を持つ数十もの別個のオブジェクトを含み得る。一度プログラムされた環境又はシナリオは、通常固定され、再度全てをプログラムし直さずに変更することは困難である。環境又はシナリオを調整する(例えば、現実の環境で更新されたハードウェアを反映させる)には、環境をプログラミングし直すか、仮想現実アプリケーション全体をコンパイルし直す必要があり得る。さらに、過去の訓練システムからの大量の情報が既に存在しているが、その情報は、まだこのような仮想現実環境に統合されていない。このデータを追加するには、同様に、環境全体をプログラミングし直す必要があり得る。したがって、シナリオや訓練ツールを仮想現実環境に移行するための複雑さ、費用、及び時間の制約から、仮想現実の高度な能力や機能を有効活用している開発者はほとんどいない。
【0013】
本明細書で論じるシステム及び方法は、外部データ及びリソースへの環境内アクセスを備えた、動的で再構成可能な仮想現実環境を提供する。本明細書で論じるシステム及び方法の実施態様では、訓練の最も重要な側面の1つである、生徒が利用可能な補助教材は、追加的なベンダーの関与を必要とすることなく、最終顧客によって構成可能である。これらのシステムの実施態様はまた、体験の再コード化又はコンパイルが不要な仮想現実体験の他の側面を修正するための外部機構を提供する。これにより、体験の主要フローを変更したり、特定のユーザのアクセスに基づいてその動作を変更したり、アプリケーションにブランドや顧客に特有の側面を追加したりすることができる。同じレベル又は同じ環境でも、初心者から熟練者までの様々なユーザに対して大幅に異なる体験を提供することができるだけでなく、簡単なコンフィギュレーションによって、指導者又は管理者により制御可能な、ランダム又は順序付けられたイベントのオプションも可能にする。
【0014】
いくつかの実施態様において、仮想現実環境又はシナリオの作成中及び/又は修正中に、オブジェクト20は、オブジェクトの一意識別子(グローバル一意識別子又はGUID、又はいくつかの実施態様では統一リソース識別子(URI))等のメタデータでタグ付けされ得る。コンパイル中においては、エンドポイントURI及び他のメタデータ用のキー/値ペアを提供する構成が生成される。ランタイム中においては、関連するメタデータを有するオブジェクトは、
図1Aの例に示されるようにアイコン30で注釈を付けられるか、他の方法によってインタラクションのために識別され得る。補助教材と同様に、一般的な「ヘルプ」ファイルは、追加のURIに指定されることができる。体験の作成時に、これらのパラメータの既定値を用意することができる。一度パッケージ化されたこのコンフィギュレーション構成は、仮想現実アプリケーションをコンパイルし直させる必要なく、ユーザ又は管理者によって編集のために利用可能であってもよい。コンフィギュレーション内の値の変更は、次回の起動時に体験に反映されてもよく、構成(及び関連するキー/値のペア)が読み込まれて解釈される。いくつかの実施態様において、これらのパラメータで符号化される各オブジェクトについて、値が存在する場合(又は、ヘルプファイルもしくはその他の情報を示す特定のタイプの値が存在する場合)、その情報のアイコン30が表示されてもよい。これは、訓練モード又はゲストモード等の特定の実行モードに限定してもよい。ユーザがアイコンを選択したことに応答して、システムは、環境内ウェブブラウザ又は他のインタフェース40をインスタンス化してもよく、このインタフェース40は、仮想環境内でレンダリングされて対応するコンテンツ又はリソースのビューを、構成可能な提示様式で、関連するコントロールとともに表示してもよい。
【0015】
よって、本明細書で論じるシステム及び方法は、リアルタイムの情報更新と、文書、オーディオ、ビデオ、及び他のファイル形式等の、依然としてそのまま利用可能な過去のデータへのアクセスとを提供しつつ、既存のコンテンツを作成し直す必要のない仮想現実における動的コンテンツの配信を提供する。このシステム及び方法は、プログラミングの知識を要さずに、又は、実行可能なアプリケーションをコード化又はコンパイルし直すことを必要とせずに、外部コンフィギュレーション構成の再構成を通じて、URIアドレス又はエンドポイントリソースを更新することを可能とする。
【0016】
図1Bは、いくつかの実施態様に係る、訓練及び認証のための仮想現実ベースの訓練システムの論理ブロック図である。開発者もしくは設計者154又は他の管理者(あるいは、指導者もしくは他の管理者の制御下にある、又は指導者もしくは他の管理者に代わって動作するコンピューティングデバイス)は、開発環境150を利用して、仮想現実体験152を生成し得る。開発環境150は、三次元仮想現実コンテンツを生成するための任意の適切な開発アプリケーション、ライブラリ、又はシステムを含み得、マッピングエンジン、レンダリングエンジン、又はサンフランシスコのユニティテクノロジーズ社によって開発されたUnityエンジンもしくはノースカロライナのエピックゲームズ社によって開発されたUnreal Engine等の他のそのようなアプリケーション又はシステム、又は他の任意のそのような開発キット又はエンジンを含み得る。仮想現実体験152は、仮想環境(例えば、オブジェクト、テクスチャ、画像等を含む)、仮想環境のためのシナリオ(例えば、仮想環境内の1つ以上のオブジェクトを変化させるトリガ又は時間に応答して発生するイベントを含む)、又はコンパイルされた仮想現実アプリケーションを広く参照し得る。したがって、仮想現実体験152は、アプリケーション又は没入感のある三次元仮想環境を提供するためのアプリケーションによって実行可能なデータを含み得、開発環境150において開発され得る。
【0017】
仮想現実体験152は、仮想現実ランタイムパッケージ156及びコンフィギュレーション構成158を生成するためにコンパイルされ得る。仮想現実ランタイムパッケージ156は、仮想現実環境を提供するためのコンパイルされた指令又は実行可能コードを有し得る。上述したように、一度コンパイルされた仮想現実環境は、通常自己完結的かつ固定的であり、いかなる変更を行うにしてもコンパイルし直す必要がある。しかしながら、リンクされたコンフィギュレーション構成158を使用することで、本明細書で論じられるシステム及び方法の実施態様は、仮想現実環境又はシナリオの動的な修正を可能にし得る。
【0018】
具体的には、環境内にあってランタイムパッケージ156で指定されたオブジェクトは、リソース識別子又はGUIDと呼ばれ得る一意識別子と関連付けられ得る。コンフィギュレーション構成158は、リソース識別子又はGUIDを外部リソースのアドレス(URI)に関連付けるインデックス、配列、データベース、又は他のデータ構造を含み得る。生徒160又は他のユーザ(又は生徒又は他のユーザによって、又は生徒又は他のユーザの代理として操作されるコンピューティングデバイス)がコンパイルされた仮想現実体験を実行すると、そのユーザのコンピューティングデバイスは、仮想環境内のオブジェクトのリソース識別子又はGUIDを含むメタデータを特定し、リンクされたURIアドレスをコンフィギュレーション構成158から読み取り、仮想環境内の埋め込みブラウザ又はレンダラ154内で表示するために関連付けられたリソースを検索し得る。シナリオ又は環境を動的に変更するために、コンフィギュレーション構成158は、コンパイルされた仮想現実ランタイムパッケージ156を変更することなく編集されることで、異なるリソースの選択及び埋め込み、追加機能の入力等を可能にし得る。いくつかの実施態様において、外部のリンクされたリソースがコンフィギュレーション構成を変更することなく変更又は置換されることで、同様に異なるリソースが埋め込まれ得る。いくつかの実施態様において、環境又はシナリオ内の全てのオブジェクトが一意リソース識別子又はGUIDを有し得るが、必ずしもコンフィギュレーション構成158内でリンクされたリソースURIを有さなくてもよく、そのようなリンクされたリソースがコンパイル後に追加されることで、ランタイムパッケージ又はコードの修正を要することなく仮想環境に追加の機能又はデータが追加され得る。
【0019】
図2Aは、いくつかの実施態様に係る、仮想現実ベースのアプリケーションの開発及びデプロイメントのための方法のフローチャートである。ステップ202において、開発者もしくは設計者のコンピューティングデバイス又は他のオペレータは、仮想現実環境又はシナリオを生成及び構成するためのソフトウェア開発キット又は他のそのようなエンジン等の開発環境を起動し得る。ステップ204において、開発者又は設計者は、仮想オブジェクトを環境又はシナリオに追加し得る。ステップ206において、仮想オブジェクトに対して一意識別子が割り当てられ得(例えば、ランダムに、漸進的に、オブジェクトのデータのハッシュとして、等)、ステップ208において、オブジェクトに対する他のメタデータ及び/又は名前が設定され得る(例えば、オブジェクトが操作又はインタラクションされ得るか否か、アニメーション、又は他のそのようなデータ等のロック設定を含む)。いくつかの実施態様において、既定のメタデータが利用され得、及び/又は、オブジェクト特有もしくはカスタムメタデータが指定されていない任意の仮想オブジェクトに適用されるように、既定のメタデータがステップ210において設定され得る(ステップ210は、図示のように、及び/又は、ステップ202の後、もしくはステップ214の前、又はランタイムのコンパイルより前の任意の他の適切な時点で行われ得る)。いくつかの実施態様において、オブジェクト又はリンクされたリソースの可視性は、ステップ212においてメタデータ中に設定され得る。ステップ204~212は、追加のオブジェクトに対して反復的に繰り返されてもよい。
【0020】
一度全てのオブジェクトが追加されると、ステップ214において、仮想現実ランタイムコードがアプリケーション又は実行パッケージにコンパイルされ得る。パッケージは、テクスチャ、画像、音、又は他のメディアコンテンツ等、実行に必要なリソースだけでなく、実行可能コードを含み得る。いくつかの実施態様において、コンパイル中に、以下のうちの1以上が発生する可能性がある。
・システムは、特定のメタデータタグ値を持つものを無視して、処理される全てのオブジェクトを特定し、収集する。
・処理されるオブジェクトについて、システムはそれぞれのメタデータを収集する。
・メタデータが、オブジェクトに設定済みの値を有する場合、この値は、例えば情報、補足、又はヘルプといった特定の情報タイプにおけるコンフィギュレーション構成の既定値として使用される。オブジェクトは、関連するプロパティに格納可能な値や、そのオブジェクトに対して行われ得る基本的なオペレーションを定義するために、関連タイプを有し得る。
メタデータ値は、値の上書きを防止するためにロックされたものとして設定可能であり、及び/又は、メタデータ値を階層内の下位レベルまで調べるべきか、又は現在のコンテキストにおいてのみ調べるべきかを識別するためにパブリック又はプライベートとして指定されてもよい。処理が完了すると、コンフィギュレーション構成は仮想現実パッケージ又はアプリケーションとして保存される。
【0021】
ステップ216において、各GUIDと、既定のリソース(又は、例えばステップ210で指定されたもの等の他のメタデータ)及びオブジェクトに特異的なリソースのいずれかとの間の関連付けを有する、コンフィギュレーション構成が生成され得る。このような関連付けは、GUIDと外部リソースのアドレス(URI)又は識別子とのキー-値ペアを含み得る。例えば、いくつかの実施態様において、URIは、エージェントもしくはURIハンドラによるリクエストの傍受、又は、エージェントもしくはURIハンドラに対するリクエストのリダイレクトを可能にするために、プライベートURLスキーム(例えば、「http://」又は他の一般的なスキームではなく「tdxr://」等のカスタムスキーム)を含み得る。URIは、ホストサーバの識別子(例えば、tdxr.example.comのようなドメインのサーバであり、ポート番号又は他のアドレス情報を含み得る)、ポータル識別子、及び/又はリソース識別子をさらに含み得る。いくつかの実施態様において、URIは、「ダウンロード」又は「ラン」等、関連付けられたリソースに対するクエリ又はリクエストで使用するためのアクションを含み得る。
【0022】
ホスト、ポータル、及びリソースの識別子は、システム内のオブジェクトを体系化するために使用され得る。例えば、ホスト、ポータル、及びリソースの識別子(及びいくつかの実施態様では他の識別子)は、プロジェクト内の全ての三次元オブジェクトをカテゴリやタイプに体系化する分類及び区分システムの一部であり得る。仮想環境で表されるオブジェクトには、テンプレートのセットが作成される。これらのテンプレートは、GUID又は他の識別子、オブジェクトの名前、及び特定のオブジェクトタイプに共通する他のメタデータを含む。例えば、
図2Bを簡単に参照すると、いくつかの実施態様に係る、仮想現実ベースのアプリケーションの開発及びデプロイメントのための論理階層のツリー図が示されている。示されるように、オブジェクトは、グループ/ユーザ層、プロジェクト層、ポータル層、組織層、及びサイト層を含む、より高い層又はレベルを有する、階層ツリーのリーフノードに関連付けられ得る。いくつかの実施態様において、これらの層は次のように定義される。
・サイト:このレベルは、アプリケーション管理者に関連付けられ得る。仮想現実のアプリケーション又は環境は、SaaS(Software-as-a-Service)モデルとして提供され得るため、この層は、サイト全体とコンテンツが提供する組織全体を維持するトップレベルのベンダーを表し得る。
・組織:このレベルは、組織又は顧客に関連付けられ得、組織の代表者が管理し得る。
・プロジェクト:プロジェクトは、密接したコンテンツをグループ化したものである。そのコンテンツは、ポータルとして知られる多くの場所で共有されることができるため、このレベルでは、情報が提示されるコンテキストに関わらず、既定でそこにあるべきメタデータを設定する。
・ポータル:このレベルは、プロジェクト内のまとまりを含み得、上位レベルの設定をオーバーライドするために、コンフィギュレーションを変更可能であり、よってコレクション独自の体験を提供する。
・ユーザ/グループ:このレベルでは、ログイン環境に基づき、ユーザ又はユーザのグループに特化した特徴的な修正を提供するために、コンフィギュレーション構成を追加することが可能であり、よって個々の体験に合わせて調整されたURL及びメタデータを提供する。
また、システムの異なるレベルで追跡されるメタデータには、次のような様々なカテゴリがある。
・ユーザ名もしくはログイン名、表示名、又はその他のSAML/LDAP値等のアイデンティティ
・地理的な場所、VR機能、コントローラの種類、訓練方法等の体験全体であって、体験の詳細を記述するプロパティを含むもの
・環境内の仮想オブジェクトの側面に関連するメタデータを含むオブジェクト
このメタデータは、読み込まれたデータに基づいて起動パラメータを管理して体験の動作をガイドすることで、どのリンクが提示されるか、体験が起動されている訓練モード、及びその他の関連するアクションを指示する。メタデータが必須プロパティに設定されていない場合、いくつかの実施態様において、ユーザがアプリケーションのインスタンスのメタデータオプションを選択できるようにメニューが表示されてもよい。
【0023】
図2Aに戻るが、コンフィギュレーション構成は、既定のプロパティが要素に適用されるべきか否か(例えば、カスタムプロパティが設定されていないが、いくつかの実施態様ではステップ212で視認可能に設定された要素について)を判定することによって、各仮想オブジェクト又は各要素に追加されてもよく、この場合、ステップ218において、コンフィギュレーション構成内の要素のキーに既定値を追加する。既定値は、一般的なヘルプメッセージもしくは他のインタラクション、又は他のそのようなリソースを指定し得る。この処理は、各仮想オブジェクト又は要素に対して繰り返され得、一度完了したコンフィギュレーション構成は、ステップ220において、仮想現実ランタイムに関連付けて保存され得る。
【0024】
したがって、コンパイルされた仮想現実体験は、編集されてパッケージに戻されることができる外部オブジェクトとして、コンフィギュレーション構成を含む。管理者又は指導者は、このファイルを修正することができ、関連するオブジェクトを識別し、特定のメタデータプロパティを見つけ、値パラメータを修正することによって、メタデータ及びエンドポイントURIアドレスを変更する。コンフィギュレーション内の値を変更すると、次回起動時に体験に反映される。これらのパラメータでコード化された各オブジェクトについて、値が存在する場合、表示が許容されるモードでは、アイコンが情報として表示される。アイコンを選択すると、設定可能な提示方法で、関連するコントロールとともにコンテンツのビューが提供される。他のメタデータもまた、仮想体験を変更するために、配信までの様々なレベルで操作されることができ、異なるユーザに同じ仮想現実アプリケーションを実行させつつ、全く異なる訓練イベントとインタラクションさせることができる。
【0025】
図2Cは、いくつかの実施態様に係る、仮想現実ベースのアプリケーションの開発及びデプロイメントのためのコンフィギュレーション構成を生成する別の方法のフローチャートである。
図2Cの方法は、上述した処理に類似し、それを拡張したものである。ステップ250において、コンピューティングデバイスは、コンパイルされた仮想現実体験(例えば、ステップ214において生成されたアプリケーション又はデータファイル)を受信し得る。ステップ252において、オブジェクトが仮想現実体験から読み取られ(例えば、オブジェクトコード、XMLデータ、又は他のそのようなデータ構造から抽出され)、コンフィギュレーション構成が生成され(例えば、各オブジェクトのGUIDに対応するキーを有するデータ配列又はデータ構造として)得る。各オブジェクトについて、オブジェクトのカスタムメタデータ(例えば、管理者又はトレーナーによって追加される)が読み取られ、ステップ254でデータ構造内のオブジェクトのGUIDに関連付けられて追加され得る。カスタムメタデータが存在せず、既定のメタデータ値が存在する場合(例えば、プロジェクトに対応するユーザグループについての、又は、既定のメタデータがその層に存在しない場合は、プロジェクトに対応するポータルについての、又は、メタデータがその層に存在しない場合は、プロジェクトに対応するプロジェクトについての、等)、ステップ256で、この既定のデータをオブジェクトのGUIDに関連付けて追加し得る。同様に、カスタムメタデータが存在するものの、値が既定のレベルでロックされている場合(例えば、メタデータオブジェクトの状態が既定値のオーバーライドを許可せず、既定値を使用しなければならないような場合)、ステップ256において、既定のデータがオブジェクトのGUIDに関連付けられて追加され得る。これは、追加の各オブジェクトに対して反復的に繰り返され得る。最後に、メタデータは、ステップ258において、外部化された(例えば、仮想現実ランタイムとは別個の)コンフィギュレーション構成として保存され得る。
【0026】
上述したように、コンパイルされた仮想現実体験は、編集してVR体験のシステム表現(例えば、コンテナ又は他のコンパイルされた構造)に戻すことができる外部オブジェクトとして、コンフィギュレーション構成を含む。管理者又は開発者は、関連するオブジェクトを特定し、特定のメタデータプロパティを見つけ、値パラメータを修正することによって、このファイルを修正して、メタデータ及びエンドポイントURIを変更することができる。編集が完了すると、その構成は、体験のシステム表現に戻されてまとめられる。
図2Dは、いくつかの実施態様に係る、仮想現実ベースのアプリケーションの開発及びデプロイメントのためのコンフィギュレーション構成を修正する方法のフローチャートである。ステップ280において、管理者は、修正する仮想現実体験(及び関連するコンフィギュレーション構成)を選択し得、ステップ282において、コンフィギュレーション構成が検索され得る。ステップ284において、エディタインタフェースが起動され得、このエディタインタフェースは、専用のアプリケーション、又はテキストエディタ(例えば、コンフィギュレーション構成が、XMLデータ、カンマ区切り値、又はスプレッドシートといった人間が読み取り可能な形式で格納される実施態様の場合)を含み得る。ステップ286において、管理者は、コンフィギュレーション構成のURI及び他のメタデータを修正し得、ステップ288において、修正された構成を保存し得る。続いて、仮想現実ランタイムを実行するときに、修正された構成を検索してよく、コンテンツ又はリソースを検索するために修正されたURI及び他のメタデータを利用し得る。
【0027】
処理の最終段階では、生徒が仮想訓練セッションを実行できるように、ランタイムアプリケーションが実行される。仮想現実体験の実行時に、コンフィギュレーション構成が読み込まれ、全てのメタデータ値のデータにシード値が与えられ、正しいエンドポイントが特定されてランタイム中に表示される。全ての情報、補足、及びヘルプのアイコンは、それらのキーに対応するメタデータを持つオブジェクト上に表示される。
【0028】
図3A~3Bは、いくつかの実施態様に係る、インタラクティブな仮想現実環境を提供するための方法のフローチャートである。ステップ302において、仮想現実体験が起動され得る。仮想現実体験は、実行可能ファイルとして、又は仮想現実体験のためのデータファイルもしくは実行可能なファイルのアドレス(URL又はURI)として起動されてもよく、当該ファイルはダウンロード及び検索されてもよい。例えば、いくつかの実施態様において、クライアントデバイス上のブラウザアプリケーション又は他のアプリケーションは、単一の引数を、プライベートスキームのURL又はURI(例えば、com.example.txdr:アドレス)、又は実行可能なファイルへのファイルパスとして読み取ってもよい。引数がプライベートスキームのアドレスである場合、ローカルエージェント又はハンドラは、ブラウザ又はオペレーティングシステムからのリダイレクト(例えば、プライベートスキームを登録することによって)、又はブラウザからのリクエストの傍受によって、アドレスを受け取ってもよい。
【0029】
具体的には、ポータルページ又はリソースと、ネイティブプラットフォームアプリケーションとの間の特定のオペレーションを容易にするために、いくつかの実施態様において、com.example.tdxr又は同様のスキームであるプライベートURLスキームが使用され得る。スキーム名は、多くの実施態様で登録されたURLスキーム又は他のプライベートスキームとの名前空間衝突を避けるために、IETF RFC 7595に準拠し得る。同じtdxrのURL又はURIによってローカルファイルシステム上又はリモートデータサーバ内のリソースを参照できるように、スキームURLは、特定のストレージシステム又は検索場所に関係なくエクステンデッドリアリティのリソースを識別するために使用され得る。
【0030】
多くの実施態様では、プライベートスキームのURLは、以下のテンプレートに従う。
com.example.tdxr://{xr-host}/{xr-portal}/{xr-id}(?action)
ここで、xr-hostは、ポータルが見つかるリモートデータサーバのオーソリティ(例えば、ホスト名とポート番号)を特定し得る。
xr-portalは、XRリソースを有するポータルである。
xr-idは、そのポータル内でXRリソースを一意に識別するパスコンポーネントである。xr-idは、有効なURLパスコンポーネントであればよいが、リソースの識別子として人間が読むことができるものを推奨される。ファイル名又はディレクトリと一致する必要はないが、ファイル名やディレクトリから派生したものであり得る。
【0031】
いくつかの実施態様において、オプショナルなアクションクエリパラメータは、ダウンロード又はランのいずれかの値を有し得る。既定値はrunであってもよく、その場合はパラメータを省略してもよい。例えば、リンク<a href=「com.example.tdxr://xr.example.com/xr-demo/very-cool-vr?download」>は、適切なプロトコルハンドラによって解釈され得、xr.example.com/xr-demoポータルから、idがvery-cool-vrのVR体験がダウンロードされ得る。
【0032】
いくつかの実施態様において、不要なダウンロードを回避するために、ハンドラ又はローカルエージェントは、指定されたポータルから与えられたxr-idを持つエクステンデッドリアリティ体験(例えば、外部コンフィギュレーション構成を組み込み、外部リソースへのリンクを持つもの)のローカルライブラリ又はデータストアをスキャンし得る(例えば、サイト以外の関連階層層、及び、いくつかの実施態様において、組織層は、ローカルストレージ上に複製されてもよいし、ユーザ、グループ、ポータル、又はプロジェクト層に対応する関連リソースは、ローカルに格納又はキャッシュされてもよい)。ファイルが存在し、URLアクションが「ダウンロード」でない場合、ハンドラは、体験を起動し得る。ファイルが存在しないか、URLアクションが「ダウンロード」である場合、ハンドラは、xr-host/xr-portalで与えられたポータルに対し、体験のダウンロードリクエストを行い得る。ダウンロードされると、パッケージは解凍され得、いくつかの実施態様において、復号化され得る。アクションが「ラン」の場合、ダウンロードされた体験が起動される(逆に、アクションが「ダウンロード」の場合、ダウンロードが完了したことがユーザに通知され、手動で体験を起動するプロンプトが表示される)。
【0033】
アプリケーションを起動するために、いくつかの実施態様において、ファイルが検証されてもよく(例えば、破損をチェックする)、システムは、ファイルが現在のコンテキスト(例えば、ユーザ及び/又はプラットフォーム)で実行するためにライセンスされていることを検証してもよい。いくつかの実施態様において、体験が設定ファイルを含む場合、いくつかの実施態様において、設定ファイルで指定されたランタイムコンテキスト情報を収集するためにフォームが表示され得る。その後、VR体験が新しい処理として起動され得る。ステップ304において、特定の又はカスタムのメタデータを欠くオブジェクトで使用するために、既定のメタデータもロードされ得る。
【0034】
ステップ306において、コンフィギュレーション構成がロードされて読み込まれることで全てのメタデータ値のデータがシード値を与えられ、ランタイム中に正しいエンドポイントが識別されて表示され得る。別個に格納されているコンフィギュレーション構成は、VRランタイムアプリケーション又はデータとは別にダウンロードされ得る。いくつかの実施態様において、体験をダウンロード又は実行する処理中に、体験のうち、新たなアイコン、改訂されたコンフィギュレーション構成、又は修正された場合は体験自体といった、(データの比較に基づいて)変更された構成要素のみがダウンロードされ得る(例えば、インクリメンタル更新又は差分更新で)。体験の実行中、全ての情報、補足、及びヘルプのアイコンは、それらのキーに対応するメタデータを有するオブジェクト上に表示され得る。例えば、各オブジェクトについて、システムはそのGUIDを識別して、そのGUIDのコンフィギュレーション構成に値が存在するか否かを判定し得る。存在しない場合、既定のメタデータが利用され得、あるいは、システムは、オブジェクトがロックされたプロパティを有するか否かを判定し得る。有する場合、オブジェクトは、インタラクションに利用不可であり得る。これは、例えば、操作モードに起因する場合があり(例えば、テストモードでは、学習モード又はガイドモードでは利用可能である追加のヘルプリソースが利用できない場合がある)、又は、シナリオに起因する場合がある(例えば、ユーザが一連のオペレーションを実行するように訓練されている場合、いくつかのオブジェクト又は要素が最初にロックされ、シナリオの後半でロックが解除される場合がある)。モード(例えば、学習、ガイド、及びテスト)は、メタデータ内で指定されてもよく、いくつかの実施態様において、値がそのメタデータプロパティについてサポートされるモードに基づいて表示又は無視されるように、異なるモードが異なる値を有してもよい(例えば、異なるモードでは可視性が異なる)。例えば、テストモードでは、ヘルプアイコンは無効にされてもよい。ただし、誤った回答が示された問題又はアクションに対する回答を提供するために、情報アイコンが依然として有効にされていたり、視認可能であったりしてもよい。体験内のアイコンの可視性は、リアルな設定を維持するために、多くの環境要因及びメタデータ要因によって誘導され得る。音声コマンド、コントローラの動作、及びキーの組み合わせが3つの例であり、及び/又はいくつかの実施態様において、メタデータが、常時オン、常時オフ、故障時、距離等、そのオブジェクトに関する情報がどのように表示されるかを指定し得る。
【0035】
オブジェクトがロックされていない場合、ステップ308において、オブジェクトメタデータがコンフィギュレーション構成から読み出され、オブジェクトに適用され得る。全てのオブジェクトが処理されると、ステップ310で、仮想現実体験がロードされ、実行され得る。
【0036】
図3Bに続き、ステップ320において、仮想環境内のオブジェクトが、(例えば、環境のコンフィギュレーションに従った座標又は位置で)描画され得る。各オブジェクトについて、システムは、シミュレーションが(例えばそのオブジェクトのメタデータに従って)アイコンを表示し得るモードにあるか否か、及びそのようなメタデータが存在するか否かを判定し得、表示し得るモードにあって、メタデータが存在する場合、ステップ322において、情報が利用可能であることを示すために、アイコンが仮想環境に表示され得る(例えば上述の
図1Aのように)。これは、各追加オブジェクトについて繰り返されてもよく、シミュレーション又はシナリオが進行するにつれて繰り返されてもよい(例えば、視覚的な乱雑さを低減するために、後続ステップのアイコンを有効にする、又は実行済みのステップのアイコンを無効にする目的で)。
【0037】
ステップ322において、実行中に、システムは、ユーザとオブジェクトとのインタラクションを検出し得る。このインタラクションは、ボタンを押す、レバーを引く、ノブ又はダイヤルを回転させること等を含み得、インタラクションは、任意の適切な方法(例えば、ユーザの手の位置を追跡し、ユーザの仮想アバターの対応する手の位置とオブジェクトとの間の交点を判定することによって、仮想「レーザーポインタ」又は他のデバイスの位置を追跡することによって、マウス、キーボード、ジョイスティック、又は他のインタフェース要素を介した選択によって、音声-テキスト又は音声-コマンドエンジンが受信した口頭コマンドを介して(例えば、「青いボタンを押す」又は「ダイヤルを20に回す」)、ヘッドトラッキング(例えば、特定のボタンを見て、ユーザの頭の位置を数秒間保持する)を介した選択によって、又は他そのような方法又は方法の組み合わせ)で行われ得る。オブジェクトとのインタラクションを検出すると、ステップ324において、ローカルエージェント又はハンドラは、オブジェクトのメタデータにおいて、表示するリソースのリソースパス又はアドレス及び識別子を特定し得る。いくつかの実施態様において、メタデータは、コンフィギュレーション構成からランタイムにおいてロードされ、アドレスがオブジェクトのメタデータから直接読み取られるように、オブジェクトのメタデータに値が適用される。他の実施態様では、オブジェクトのメタデータはGUIDから構成され、ローカルエージェント又はハンドラは、インタラクションの検出に応答して、コンフィギュレーション構成から対応するメタデータ値を読み取り得る。
【0038】
ステップ326において、ハンドラ又はローカルエージェントは、仮想環境内でブラウザをインスタンス化し得る。例えば、ハンドラ又はローカルエージェントは、仮想環境内(例えば、仮想オブジェクトに近接した位置のフローティングウィンドウとして、タブレットコンピュータ又は他のコンピューティングデバイスの仮想表現内、モデルメニュー内、又は仮想環境内の任意の他の表現内)に表示されたビューポートで、Chromiumをベースとしたウェブブラウザ等のウェブブラウザを実行し得る。ブラウザは、まずはローカルストレージ又はキャッシュから、特定されたパス及びアドレスにおけるリソースの検索を試み得る。リソースがローカルで利用可能でない場合、ステップ328で、ブラウザは、特定されたホスト、パス、及びアドレスにおけるリソースを検索し得る(そして、いくつかの実施態様においては、リソースをローカルに格納する)。その後、ステップ330において、リソースは、ブラウザによって表示され得る。リソースは、どのようなタイプ及び形態であってもよく、動画、画像、テキスト、指示リスト、チェックリスト、ガイド、ヘルプ情報、又は仮想環境内のオブジェクトに関連付けられ得る任意の他のタイプ及び形態の有用な情報を含み得る。
【0039】
図4Aは、いくつかの実施態様に係る、インタラクティブな仮想現実環境を提供するためのシステムのブロック図である。クライアントデバイス400は、ラップトップコンピュータ、デスクトップコンピュータ、ポータブルコンピュータ、タブレットコンピュータ、スマートフォン、ビデオゲームコンソール、組み込みコンピュータ、アプライアンス、又は仮想現実環境を提供するための任意の他のタイプ及び形態のコンピューティングデバイスを有し得る。いくつかの実施態様において、クライアントデバイス400は、スタンドアロン又はオールインワンの仮想現実ヘッドセット等のウェアラブルコンピュータから構成され得る
【0040】
クライアントデバイス400は、1つ以上のプロセッサ402、ネットワークインタフェース404、及び入出力装置406を有し得る。プロセッサ402は、中央処理装置(CPU)、グラフィック処理装置(GPU)、テンソル処理装置(TPU)、コプロセッサ、ASICベースのプロセッサ、又は論理命令を実行するための他の任意のそのような装置を含む、任意のタイプ及び形態の処理装置を有し得る。ネットワークインタフェース404は、セルラーインタフェース、802.11(WiFi(登録商標))を含むワイヤレスインタフェース、ブルートゥース(登録商標)インタフェース、イーサネット(登録商標)インタフェース、又は任意の他のタイプ及び形態のネットワークインタフェースを含む、任意のタイプ及び形態のインタフェースを有し得る。ネットワークインタフェース404は、インターネット等のネットワーク(図示せず)を介して、リソースサーバ430と通信するために使用され得、リソースサーバ430は、同様に、1つ以上のプロセッサ、ネットワークインタフェース、及び入出力デバイス(図示せず)を含むコンピューティングデバイスであり得る。いくつかの実施態様において、リソースサーバ430は、サーバファーム等の1つ以上の物理コンピューティングデバイスから構成され得るか、又はサーバクラウド等の1つ以上の物理的コンピューティングデバイスによって実行される1つ以上の仮想コンピューティングデバイスから構成され得る。
【0041】
クライアントデバイス400は、ユーザの動きを追跡するための1つ以上のセンサ408、及び仮想現実又は拡張現実ディスプレイ410を含む1つ以上のディスプレイを有するか、それらと通信し得る。別個に示されているが(例えば、アウトサイドイン追跡、又は、別のセンサからのヘッドセット及び/もしくはコントローラ上のエミッタもしくはリフレクタの変位を測定することによる追跡)、いくつかの実施態様において、センサ408及び仮想現実/拡張現実ディスプレイ410は統合され得る(例えば、インサイドアウト追跡、又は、ヘッドセット上のセンサから取得された物理的環境の連続画像間の並進を測定することによる追跡のために)。インサイドアウト、アウトサイドイン、立体カメラベースの追跡、飛行時間測定及び追跡、人工知能ベースの追跡等を含む、様々な追跡システムが実施され得る。いくつかの実施態様において、追跡システムは、ユーザの頭部(例えば、位置と向き)、ユーザの手(例えば、コントローラ又は手を撮像するカメラからの画像認識を介して)、及び/又はユーザの任意の他の手足又は付属物を追跡し得る。
【0042】
クライアントデバイス400は、プロセッサ402による実行のためのデータ及びアプリケーションを記憶するメモリデバイス412を含み得る。例えば、メモリ412は、ウェブブラウザ、リモートアクセスアプリケーション、又は仮想現実環境もしくはアプリケーションを選択、ダウンロード、及び起動するための他のそのようなアプリケーションを含み得るブラウザアプリケーション414を有し得る。例えば、ブラウザアプリケーション414は、リモートサーバにログインし、ローカルストレージ及び実行のために仮想現実訓練シナリオをダウンロードするために使用され得る。
【0043】
VRアプリケーション416は、対話型仮想現実環境を提供し、環境内のオブジェクト又はイベントとインタラクションするための、アプリケーション、サーバ、サービス、デーモン、ルーチン、又は他の実行可能なロジックを有し得る。VRアプリケーション416は、ブラウザアプリケーション414によって実行されるプラグインを有していてもよいし、別個のアプリケーションであってもよい。VRアプリケーション416は、環境又はシナリオのために開発者によって準備されたデータファイルを実行してもよいし、開発者によってコンパイルされ、アプリケーション内にコンフィギュレーションの詳細を含むスタンドアロンアプリケーションであってもよい。
【0044】
ブラウザアプリケーション414のようなブラウザは、URLに基づいてユーザにコンテンツを配信することが可能であり、その大部分は、スクリプト、リッチメディア、及び他のデータが散在している静的又は動的なハイパーテキストマークアップ言語(HTML)ページで構成されている。データにアクセスするには、コンピュータネットワーク上の場所とそれを検索するメカニズムとを指定する、ウェブリソースへの参照情報であるURLが使用される。情報にアクセスするプロトコルは、HTTP(Hypertext Transfer Protocol)、HTTPS(Hypertext Transfer Protocol Secure)、FTP(File Transfer Protocol)等の一般的なものであってもよいし、TDXR(Titiania Delivery Extended Reality Protocol)のように、システムにインストールされ、クライアントデバイス400のオペレーティングシステムに登録されたアプリケーションによって処理される特殊なプロトコルであってもよい。これにより、コンテンツの特殊化された梱包と開梱に基づいて、クライアントシステム上のアプリケーション416によって処理される仮想現実コンテンツの洗練された配信が可能になる。
【0045】
上述したように、VRアプリケーション416又はそのようなアプリケーションのデータは、コンフィギュレーション構成に関連付けられてもよく、このコンフィギュレーション構成は、アプリケーションと共にダウンロード又はバンドルされるか、リソースサーバ430から別途取得されてもよい。コンフィギュレーション構成は、仮想環境内のオブジェクトのGUIDを、ランタイム時に検索するためのパス及びリソース識別子にマッピングしてもよい。
【0046】
いくつかの実施態様において、メモリ412は、ローカルエージェント418を含み得る。ローカルエージェント418は、ブラウザアプリケーション414もしくはVRアプリケーション416のアプリケーション、サービス、サーバ、デーモン、ルーチン、もしくはプラグイン、又は、コンフィギュレーション構成及びリソースを検索してVRアプリケーション416内の埋め込みブラウザ又はレンダラによる表示又はレンダリングのためにリソースを提供するための、他の実行可能ロジックを有し得る。ローカルエージェント418は、アプリケーションハンドラ、スキームハンドラ、コンテンツ配信エージェント、リンクデータプラットフォーム(LDP)エージェント、シンクライアント、ヘルパープログラム、又は同様の用語として様々に参照され得る。
【0047】
コンテンツは、個々のファイルの状態に基づいて、サーバロケーションによって指定されたものと同じであればローカルに保存されたファイルを使用し、ローカルに保存されていなければファイルをダウンロードするように、条件付きで配信され得る。ローカルエージェント418は、VR体験又はアプリケーション416を起動、発見、及びダウンロードするように構成され得る。ローカルエージェント418は、リソースサーバ430コンピューティングデバイスのアプリケーションサーバ432(例えば、ウェブサーバ、FTPサーバ、データサーバ、又は同様のサービス)によって提供されるウェブポータル又はサーバと連携して動作し得、ポータルとホストオペレーティングシステムプラットフォームとの間でシームレスなユーザ体験を提供する。ローカルエージェント418は、ウェブブラウザアプリケーション414によって容易に提供することができない最小限の機能を提供する「シンクライアント」を含み得る。ローカルエージェントは、プライベートスキーム(例えば、上述したように、com.example.tdxr)を使用して、リダイレクトリクエストを傍受又は受信し得、ポータル又は他の通信機能のために定義された表現状態転送(RESTful)APIを使用して、そのデータとビジネスロジックのほとんどのためにアプリケーションサーバ432と通信し得る。例えば、アプリケーションサーバ432は、リンクされたデータプラットフォーム(LDP)、又はリソース記述フレームワーク(RDF)及び非RDFリソースとのRESTfulインタラクション(GET、POST、PUT、DELETE等)を提供するためのLDP仕様の要件に適合するHTTPサーバを有し得る。RDFリソースは、オントロジー、分類、出所、リンク、メタデータ、ルールに関する機能をサポートでき、特定の要素の探索を含む、より卓越した機能及び柔軟性をシステムに提供する(オントロジー又は分類に基づく検索により、ユーザは、オブジェクトのメタデータの中に指定された型番番号又は設備のタイプ(個人用保護具又は呼吸装置等)を含む仮想訓練シナリオを検索して取得してもよい)。
【0048】
ローカルエージェント418は、アプリケーションサーバ432を介してコンフィギュレーション構成を検索し、リモートリソース434に格納してもよく、構成のコピーをローカルリソース420にローカル格納してもよい。上述したように、ローカルエージェント418は、リクエストを受信し得、リソースがローカルで利用可能であるか否かを判定し得、それに応じてローカルリソースを提供又はリモートリソースをダウンロードし得る。
【0049】
図5Aを先に参照すると、いくつかの実施態様に係る、仮想現実環境を起動するための方法のフローチャートが図示されている。ステップ502において、ローカルエージェントは、プライベートURLスキームを利用するリクエストを、オペレーティングシステムによるリダイレクトを介して傍受又は受信し得る。いくつかの実施態様において、ローカルエージェントがインストールされていない場合、リクエストは、仮想現実アプリケーション及び/又はブラウザアプリケーションによって受信又は傍受され得、ステップ504において、ローカルエージェントは、ダウンロード及び/又はインストールされ得る。
【0050】
上述したように、リクエストは、GUID又はリソース識別子、及びいくつかの実施態様において、ポータル識別子、プロジェクト識別子、又は他のそのような識別子によってリソースを特定し得る。ローカルエージェントは、リソースのローカルコピーが存在するか否かを判定し得、いくつかの実施態様において、ローカルコピーをリモートコピーと比較して、更新又は修正が行われたか否かを判定し得る(例えば、リソースのハッシュ値、バージョン番号、又はローカルコピーの他の識別子の識別を含むリクエストをサーバに送信し、更新が行われていない旨の通知を受信するか、リソースの新しいコピーを受信する)。リソースがローカルに存在しない場合、又はローカルバージョンが古い場合、ステップ506において、リソースはリモートサーバから検索され得る。リモートサーバは、上述したように、リソースのパス又はアドレスの一部として、リクエスト又はドメイン内のホスト識別子を介して特定され得る。ステップ508において、リソースは、例えば、仮想環境内の埋め込みブラウザ又はレンダラをインスタンス化し、仮想環境内の埋め込みブラウザ又はレンダラのウィンドウ内にリソースを表示又はレンダリングすることによって、実行し得る。
【0051】
いくつかの実施態様において、リソースへのアクセスが制御され得、及び/又はリソースが暗号化され得る。エクステンデッドリアリティコンテンツは、いくつかの実施態様において、多くのチェックを受け得、配信の適否が、例えば、クライアントデバイスがコンテンツのアクティブライセンスを有するか否か、ユーザがアクティブライセンスを有するか否か、配信ポータルがアクティブライセンスを有するか否か、クライアントデバイス及び/もしくはユーザが配信ポータルにアクセスする権限を有するか否か、ユーザ、クライアントデバイス、もしくは組織にとって有効なキーペアが存在するか否か、又は、ユーザもしくはクライアントデバイスがリモートサーバとの認証に成功したか否か(例えば、ユーザ名、パスワード、生体認証識別子、二要素認証スキーム等を介して)のうちの1つ以上の要因に基づいて判定され得る。暗号化されたコンテンツは、暗号化されず、ジャストインタイム(JIT)パラダイムを使用してメモリ内でのみ実行され、暗号化されないままローカルに保存されない場合があり、いくつかの実施態様ではアクセス制御を強制する。
【0052】
図5Bは、いくつかの実施態様に係る、確実なアプリケーションのデプロイメントを提供するための方法のフローチャートである。ステップ520において、開発者は、仮想現実パッケージ(例えば、コンパイルされたアプリケーションもしくはデータ及び/又はコンフィギュレーション構成)を準備してもよく、又はコンフィギュレーション構成に対する修正を準備してもよい。暗号化が選択されない、又はアクセス制御が無効である場合、パッケージ又は構成はステップ526でアップロードされ得、パッケージ又は構成はステップ530に留まり得る(例えば、特に、仮想化されたアプリケーション又はリソースサーバを有するクラウドベースのデプロイメントのために、複数のセッションにわたって使用するために保存又はアーカイブされる)。暗号化が選択された場合、開発者がサイト固有のコンテンツをアップロードしているか、顧客固有のコンテンツをアップロードしているかに応じて、システムは対応する暗号化キーペアをチェックし得る。利用可能なキーがない場合、ステップ522で、暗号化キーが提供され得るように(例えば公開キー又は対称暗号化キーの共有)、エラーがクライアントに返され得る。キーが利用可能な場合、ステップ524で暗号化が有効化され得る。パッケージ又は構成はステップ526でアップロードされ、ステップ528でキーを利用して暗号化され得る。暗号化されたパッケージ又は構成は、ステップ530に留まり得る。
【0053】
上述したように、いくつかの実施態様において、仮想環境は訓練及び/又は認定に使用され得る。例えば、トレーナー又は熟練したユーザは、環境内のオブジェクトとの一連のインタラクションを記録し得る。そのインタラクションは、例えば仮想アバター又は「ゴースト」アバターとして、第二のユーザ又は生徒のビュー内の環境で再生され得る。これにより、生徒ユーザは、記録された「ゴースト」アバターと同じ動作を同時に行うことが可能であってもよく、指導者をコピーして直感的に学習することができ得る。「ゴースト」アバターは、いくつかの実施態様では半透明の形態で表示されてもよく、ユーザは、「ゴースト」アバターと重なった、又は「ゴースト」アバター内の自分のアバターを視認し得る。
【0054】
例えば、
図4Bに戻ると、いくつかの実施態様に係る、訓練及び認証のための仮想現実環境が図示されている。示されるように、ユーザのアバターは手450を含み得、手450は、ユーザの実際の手又はその手によって保持されるコントローラの追跡に対応するように位置決めされて表示され得る。同様に、指導者の手又はコントローラの、以前に記録された追跡情報に従った「ゴースト」アバター452が環境内に表示され、指導者が行ったのと同じ動作を行うことができ得る。訓練中ユーザは、自分の動作が記録された「ゴースト」アバターとどのように乖離しているかに注目することで、間違った動作をしているときを、簡単かつ直感的に確認することができる。
【0055】
指導者の「ゴースト」アバター452の表示を無効にすることで、同じ機能を認証目的に使用し得る。訓練中ユーザの動きは、依然として追跡され得、指導者の記録された動きと比較され得、いくつかの実施態様では、指導者の動作からの訓練中ユーザの乖離量を判定するためにスコアが生成され得る。
【0056】
例えば、
図4Cは、いくつかの実施態様に係る、訓練及び認証のための仮想現実システムのための例示的な訓練及び認証のログである。図示された実施態様は、ボタン及びダイヤルといった仮想環境内のオブジェクトとのイベント又はインタラクションを、指導者が動作を行ったシナリオ内の時間(例えば、絶対時間ではなく、シナリオの開始からの相対時間)、及びユーザがオブジェクトとのインタラクションを行った時間とともに示す。訓練中ユーザと指導者ユーザとのそれぞれについてイベント又はインタラクションが記録されたときの、訓練中ユーザの位置と指導者ユーザの位置との間の距離が判定され得(例えば、ダイヤルを回すときのユーザの手の位置又は回転と、同じダイヤルを回すときの指導者の手の位置又は回転との間の距離)、スコアが生成され得る。スコアは、いくつかの実施態様において、距離に反比例して計算され得る(例えば、距離が小さいほど高いスコアが得られるように)。
【0057】
いくつかの実施態様において、一連のインタラクションは順序立てられ得る、つまり、指導者のインタラクションは特定の順序で実行され得、ユーザの各インタラクションは対応するインタラクションと比較され得る。これは、タスクが特定の順序で行われる必要があるいくつかの実施態様において、又は特定のオブジェクトのインタラクションが記録されない可能性がある場合に、有用であり得る。例えば、そのような実施態様の1つでは、指導者が4番目のインタラクションとしてダイヤル(例えばダイヤル2)を回し、訓練中ユーザが4番目のインタラクションとして異なるダイヤル(例えばダイヤル3)を回した場合、指導者の手の位置と訓練中ユーザの手との間の距離は、著しいものであり得る(例えば、全く異なるダイヤル上)。距離測定では自動的にこれを計上し得る。他の実施態様では、インタラクションされた特定のオブジェクト又はインタラクションのタイプが記録され得(例えば、どのボタンが押されたか)、距離に加えて、又は距離の代わりに、適切なオブジェクト又はインタラクションのタイプとの適合性に基づいてスコアが計算され得る。さらに、いくつかの実施態様において、スコアは、指導者のインタラクションの記録相対時間と、訓練中ユーザのインタラクションの記録相対時間との差に基づいて調整され得る。これらの時間は、いくつかの(例えば、遅延に対するペナルティが継続的に適用され、遅延後に復帰するために訓練中ユーザにスピードアップするように促すような)実施態様では、シナリオの開始に対して相対的に計算されてもよく、又は以前のインタラクションに対して相対的に計算されてもよい。例えば、
図4Cに示す表では、指導者が、2番目のインタラクションから3番目のインタラクションに移るのに25秒かかり、3番目のインタラクションから4番目のインタラクションに移るのに5秒かかっている。訓練中ユーザについては、対応するインタラクション間にそれぞれ41秒と5秒とがかかっている。後続するインタラクション間の相対的なタイミングを使用するこのような実施態様では、訓練中ユーザのスコアは、2番目と3番目のインタラクション間の遅延に基づいてペナルティを受け得るが、(全体的な時間が遅かったとしても)3番目と4番目のインタラクション間の遅延に基づいてはペナルティを受けない。これにより、ユーザに対し過剰にペナルティを与えることを避け得る。
【0058】
スコアは、合計、平均、又は他の方法で集計され、認証の目的で閾値と比較され得る。いくつかの実施態様において、ユーザの集計スコアが閾値を下回る場合、仮想シナリオは、さらなる指示を提供するために、場合によっては訓練モード又はガイドモードで、自動的に再起動され得る。
【0059】
図4Dは、いくつかの実施態様に係る、仮想現実ベースの訓練及び認証のための方法のフローチャートである。インタラクションが検出されると、ステップ480において、インタラクションの値が記録され得る(例えば、相対時間、インタラクションされたオブジェクト、いくつかの実施態様ではダイヤル設定もしくはスイッチ位置といったオブジェクトの値、ユーザの位置、ユーザの片手又は両手の位置、又はインタラクション時のシミュレーションの状態を保存するための任意の他のそのような情報)。シミュレーションが記録モードにある場合(例えば、指導者の場合)、値は、ステップ482でコンフィギュレーション構成に保存されるか、オブジェクトのメタデータに保存され得る。シミュレーションが記録モードでない場合、ステップ484において、以前記録されたインタラクションと新しいインタラクションとの間の差異が比較され得る(例えば、位置、タイミング、設定、オブジェクト、又は任意の他のデータの差異を含む)。ステップ486において、精度が高いほどスコアが高くなるように差分に反比例する等、差分に基づいてスコアが生成され得る。シミュレーション中、及び/又はシミュレーションが完了すると、実施態様によっては、インタラクションのスコアが集計され、閾値と比較され得る。スコアが閾値を下回った場合、通知が表示され、同じモードあるいは上述のガイドモードのいずれかで、シミュレーションが自動的に再開され得る。
【0060】
したがって、本明細書で論じるシステム及び方法は、外部データ及びリソースへの環境内アクセスを有する動的で再構成可能な仮想現実環境を提供する。これらのシステムの実施態様はまた、仮想現実体験の再コード化又はコンパイルを必要とせずに、仮想現実体験の他の側面を修正するための外部メカニズムを提供する。これにより、体験の主要なフローを変更したり、アクセスする特定のユーザに基づいて動作を変えたり、アプリケーションにブランド又は顧客に特有の側面を追加したりすることができる。同じレベルや環境でも、初心者から熟練者までの様々なユーザに対して大幅に異なる体験を提供することができ、簡単なコンフィギュレーションによって、指導者又は管理者により制御可能な、ランダム又は順序付けられたイベントのオプションも可能にする。
【0061】
一側面において、本開示は、仮想環境内でコンテキストセンシティブ動的リンクを提供する方法に関する。方法は、受信ステップを備え、受信ステップでは、コンピューティングデバイスによってデータを受信し、データは、コンテキストに関連付けられた仮想環境を指定し、少なくとも1つの仮想オブジェクトを含み、各少なくとも1つの仮想オブジェクトは、識別子に関連付けられている。方法はまた、検索ステップを備え、検索ステップでは、コンピューティングデバイスによって、データベースから、仮想環境に関連付けられたコンテキストに従い、各少なくとも1つの仮想オブジェクトについてリソースのアドレスを検索し、リソースのアドレスは、対応する識別子に関連付けられている。方法はまた、表示ステップを備え、表示ステップでは、コンピューティングデバイスによって、仮想環境のビューを表示する。方法はまた、検出ステップを備え、検出ステップでは、コンピューティングデバイスによって、仮想環境のユーザによる第1の仮想オブジェクトとのインタラクションを検出する。方法はまた、特定ステップを備え、特定ステップでは、コンピューティングデバイスによって、第1のリソースのアドレスを特定し、第1のリソースのアドレスは、第1の仮想オブジェクトの識別子に関連付けられている。方法はまた、インスタンス化ステップを備え、インスタンス化ステップでは、仮想環境内のコンピューティングデバイスによって、第1のリソースのデータの埋め込みブラウザ又はレンダラをインスタンス化し、埋め込みブラウザ又はレンダラは、アドレスにおける第1のリソースを検索し、検索されたリソースを仮想環境内に表示する。
【0062】
いくつかの実施態様において、コンテキストは、多層階層内のノードに関連付けられている。さらなる実施態様では、第1の仮想オブジェクトは、多層階層内の第1の層における第1の識別子と、多層階層内の第2の層における第2の識別子とに関連付けられており、第1の仮想オブジェクトのアドレスの検索において、さらに、第1の層が第2の層よりも下層であることに応答して、第1の識別子に関連付けられたアドレスを検索する。別のさらなる実施態様では、コンテキストは、多層階層内の各層のノードに関連付けられており、各ノードは、多層階層内の他の層におけるコンテキストの他のノードに対して親又は子の関係を有する。
【0063】
いくつかの実施態様において、第1のリソースのアドレスは、プライベート統一リソース識別子(URI)スキーム内のアドレスを有し、プライベートURIスキームは、ホスト識別子と、ポータル識別子と、リソース識別子とを有する。さらなる実施態様では、埋め込みブラウザ又はレンダラのインスタンス化において、さらに、ポータル識別子に対応するローカルストレージライブラリ内に、第1のリソースのコピーが存在するか否かを判定する。さらに別の実施態様では、埋め込みブラウザ又はレンダラのインスタンス化において、さらに、第1のリソースのコピーがポータル識別子に対応するローカルストレージライブラリ内に存在しないという判定に応答して、ホスト識別子に対応するリモートストレージライブラリから第1のリソースのコピーを検索する。
【0064】
いくつかの実施態様において、第1のリソースのアドレスは、実行アクションの識別子を含み、埋め込みブラウザ又はレンダラは、識別された実行アクションに基づいて第1のリソースを処理する。いくつかの実施態様において、各仮想オブジェクトは、仮想環境内の組の座標に関連付けられ、仮想環境のビューの表示において、さらに、ビュー内の1つ以上の仮想オブジェクトを、それぞれが関連付けられた座標上に表示する。さらなる実施態様では、各仮想オブジェクトは、表示モードと関連付けられ、仮想環境のビューの表示において、さらに、関連付けられた表示モードが、仮想環境の現在の表示モードに対応する仮想オブジェクトのサブセットを表示する。
【0065】
別の態様において、本開示は、仮想環境内でコンテキストセンシティブ動的リンクを提供するシステムに関する。システムは、プロセッサを備えるコンピューティングデバイスを有する。プロセッサは、データを受信し、データは、コンテキストに関連付けられた仮想環境を指定し、少なくとも1つの仮想オブジェクトを含み、各少なくとも1つの仮想オブジェクトは、識別子に関連付けられ、プロセッサは、データベースから、仮想環境に関連付けられたコンテキストに従い、各少なくとも1つの仮想オブジェクトについてリソースのアドレスを検索し、リソースのアドレスは、対応する識別子に関連付けられており、プロセッサは、仮想環境のビューを表示し、プロセッサは、仮想環境のユーザによる第1の仮想オブジェクトとのインタラクションを検出し、プロセッサは、第1のリソースのアドレスを特定し、第1のリソースのアドレスは、第1の仮想オブジェクトの識別子に関連付けられており、プロセッサは、仮想環境内において、埋め込みブラウザ又はレンダラをインスタンス化し、埋め込みブラウザ又はレンダラは、アドレスにおける第1のリソースを検索し、検索されたリソースを仮想環境内に表示する。
【0066】
いくつかの実施態様において、コンテキストは、多層階層内のノードに関連付けられている。さらなる実施態様において、第1の仮想オブジェクトは、多層階層内の第1の層における第1の識別子と、多層階層内の第2の層における第2の識別子とに関連付けられており、プロセッサは、さらに、第1の層が第2の層よりも下層であることに応答して、第1の識別子に関連付けられたアドレスを検索する。別のさらなる実施態様において、コンテキストは、多層階層内の各層のノードに関連付けられており、各ノードは、多層階層内の他の層におけるコンテキストの他のノードに対して親又は子の関係を有する。
【0067】
いくつかの実施態様において、第1のリソースのアドレスは、プライベート統一リソース識別子(URI)スキーム内のアドレスを有し、プライベートURIスキームは、ホスト識別子と、ポータル識別子と、リソース識別子とを有する。さらなる実施態様において、プロセッサは、さらに、ポータル識別子に対応するローカルストレージライブラリ内に、第1のリソースのコピーが存在するか否かを判定する。さらなる実施態様において、プロセッサは、さらに、第1のリソースのコピーがポータル識別子に対応するローカルストレージライブラリ内に存在しないという判定に応答して、ホスト識別子に対応するリモートストレージライブラリから第1のリソースのコピーを検索する。
【0068】
いくつかの実施態様において、第1のリソースのアドレスは、実行アクションの識別子を含み、埋め込みブラウザ又はレンダラは、識別された実行アクションに基づいて第1のリソースを処理する。いくつかの実施態様において、各仮想オブジェクトは、仮想環境内の組の座標に関連付けられ、プロセッサは、さらに、ビュー内の1つ以上の仮想オブジェクトを、それぞれが関連付けられた座標上に表示する。更なる実施態様において、各仮想オブジェクトは、表示モードと関連付けられ、プロセッサは、さらに、関連付けられた表示モードが、仮想環境の現在の表示モードに対応する仮想オブジェクトのサブセットを表示する。
【0069】
別の側面において、本開示は、仮想環境ベースの訓練及び認証を提供するための方法に関する。方法は、(a)コンピューティングデバイスのセンサによって、物理環境内のユーザの位置を追跡するステップと、(b)コンピューティングデバイスによって、仮想現実ディスプレイを介して、仮想環境内のユーザの追跡した位置に対応するアバターをユーザに対して表示するステップと、(c)コンピューティングデバイスによって、仮想環境内の仮想オブジェクトとのアバターのインタラクションを検出するステップと、(d)コンピューティングデバイスによって、検出されたインタラクションと、仮想オブジェクトに関連付けられた所定のインタラクションとの間の差を測定するステップと、(e)コンピューティングデバイスによって、測定された差に反比例するスコアを生成するステップとを含む。
【0070】
いくつかの実施態様において、方法は、一連のインタラクションについて、(c)~(e)のステップを繰り返すステップと、生成されたスコアを集計するステップとを含む。さらなる実施態様において、検出された一連のインタラクションは、所定の順序を有する一連の所定のインタラクションに対応する。さらなる実施態様において、方法は、検出された一連のインタラクションが一連の所定のインタラクションとは異なる順序を有することに応答して、集計されたスコアを調整するステップを含む。別のさらなる実施態様において、方法は、集計されたスコアを閾値と比較するステップと、集計されたスコアが閾値未満であることに応答して(a)~(e)のステップを繰り返すステップとを含む。さらに別のさらなる実施態様において、方法は、最初に検出されたインタラクションと、続いて検出されたインタラクションとの間の時間と、対応する所定のインタラクション間の時間とを比較するステップと、時間の比較に基づいて、該続いて検出されたインタラクションについて生成されたスコアを調整するステップとを含む。
【0071】
いくつかの実施態様において、方法は、ユーザの追跡した位置と、所定のインタラクションに対応する第2のユーザの記録済みの追跡した位置との間の差を測定するステップを含む。さらなる実施態様において、方法は、ユーザの手の位置を追跡するステップと、ユーザの追跡した手の位置と、第2のユーザの記録済みの追跡した手の位置との間の差を測定するステップとを含む。
【0072】
いくつかの実施態様において、方法は、仮想環境内で、仮想オブジェクトに関連付けられた所定のインタラクションを第2のアバターとして表示するステップを含む。さらなる実施態様において、方法は、コンピューティングデバイスのセンサによって、物理環境内の第2のユーザの位置を追跡しながら、所定のインタラクションを記録するステップを含む。
【0073】
別の態様において、本開示は、仮想環境ベースの訓練及び認証を提供するためのシステムに関する。本システムは、少なくとも1つのセンサとプロセッサを含み、仮想現実ディスプレイと通信するコンピューティングデバイスを含む。プロセッサは、(a)センサによって、物理環境内のユーザの位置を追跡し、(b)仮想現実ディスプレイを介して、仮想環境内のユーザの追跡した位置に対応するアバターをユーザに対して表示し、(c)仮想環境内の仮想オブジェクトとのアバターのインタラクションを検出し、(d)検出されたインタラクションと、仮想オブジェクトに関連付けられた所定のインタラクションとの間の差を測定し、(e)測定された差に反比例するスコアを生成する。
【0074】
いくつかの実施態様において、プロセッサは、さらに、一連のインタラクションについて(c)~(e)のステップを繰り返し、生成されたスコアを集計する。さらなる実施態様において、検出された一連のインタラクションは、所定の順序を有する一連の所定のインタラクションに対応する。さらなる実施態様において、プロセッサは、さらに、検出された一連のインタラクションが一連の所定のインタラクションとは異なる順序を有することに応答して、集計されたスコアを調整する。別のさらなる実施態様において、プロセッサは、さらに、集計されたスコアを閾値と比較し、集計されたスコアが閾値未満であることに応答して、(a)~(e)のステップを繰り返す。さらに別のさらなる実施態様において、プロセッサは、さらに、最初に検出されたインタラクションと、続いて検出されたインタラクションとの間の時間と、対応する所定のインタラクション間の時間とを比較し、時間の比較に基づいて、該続いて検出されたインタラクションについて生成されたスコアを調整する。
【0075】
いくつかの実施態様において、プロセッサは、さらに、ユーザの追跡した位置と、所定のインタラクションに対応する第2のユーザの記録済みの追跡した位置との間の差を測定する。さらなる実施態様において、プロセッサは、さらに、ユーザの手の位置を追跡し、ユーザの追跡した手の位置と、第2のユーザの記録済みの追跡した手の位置との間の差を測定する。
【0076】
いくつかの実施態様において、プロセッサは、さらに、仮想環境内で、仮想オブジェクトに関連付けられた所定のインタラクションを第2のアバターとして表示する。さらなる実施態様において、プロセッサは、さらに、コンピューティングデバイスのセンサによって、物理環境内の第2のユーザの位置を追跡しながら、所定のインタラクションを記録する。
【0077】
別の側面において、本開示は、動的仮想環境を確実に提供するための方法に関する。方法は、コンピューティングデバイスのウェブブラウザアプリケーションによって、プライベート統一リソース識別子(URI)スキーム、ホスト識別子、ポータル識別子、及びリソース識別子を含む選択可能なリンクを有するウェブページを表示するステップを含む。方法はまた、コンピューティングデバイスによって、リンクの選択に応答してローカルエージェントをインスタンス化するステップを含む。方法はまた、ローカルエージェントによって、リソース識別子に対応する第1のリソースのコピーが、ポータル識別子に対応するアドレスのローカルストレージライブラリ内に存在しないと判定するステップを含む。方法はまた、ローカルエージェントによって、第1のリソースのコピーがポータル識別子に対応するローカルストレージライブラリ内に存在しないという判定に応答して、ホスト識別子に対応するリモートストレージライブラリから第1のリソースのコピーを検索するステップを含む。方法はまた、ローカルエージェントによって、仮想環境のコンフィギュレーション情報を抽出するステップを含む。方法はまた、ローカルエージェントによって、抽出されたコンフィギュレーション情報に従って仮想環境を起動するステップを含む。
【0078】
いくつかの実施態様において、方法は、仮想オブジェクトに関連付けられたメタデータの特定を含むクエリをデータベースサーバに送信するステップと、データベースサーバから、表示用のウェブページを受信するステップとを含み、ウェブページは、ポータル識別子及びリソース識別子に対応する仮想環境のコンフィギュレーション情報内の仮想オブジェクトに関連付けられたメタデータの特定に応答してデータベースサーバによって生成される。
【0079】
いくつかの実施態様において、方法は、検索された第1のリソースのコピーを復号化するステップを含む。さらなる実施態様において、方法は、コンピューティングデバイスに関連付けられた認証情報をリモートサーバに提供するステップを含む。別のさらなる実施態様において、検索された第1のリソースのコピーは、アクティブメモリにおいて復号化され、仮想環境の終了後にアクティブメモリからフラッシュされる。さらに別の実施態様では、検索された、暗号化された第1のリソースのコピーは、仮想環境の終了後、復号化されずにローカルストレージライブラリ内に格納される。
【0080】
いくつかの実施態様において、コンフィギュレーション情報は、仮想環境内の仮想オブジェクトのサブセットに対するメタデータを含み、方法は、各仮想オブジェクトに対して、コンフィギュレーション情報が仮想オブジェクトのメタデータを含むか、仮想オブジェクトのメタデータを含まないかを判定するステップと、仮想オブジェクトのコンフィギュレーション情報からのメタデータの仮想環境への追加、及び、仮想オブジェクトのホスト識別子もしくはポータル識別子の一方に関連付けられた既定のメタデータの仮想環境への追加のいずれか一方をそれぞれに行うステップとを含む。さらなる実施態様では、仮想オブジェクトのメタデータは、URIスキーム、ホスト識別子、ポータル識別子、及び仮想オブジェクトに関する情報を含む第2のリソースに対応する第2のリソース識別子を含む。別のさらなる実施態様では、方法は、各仮想オブジェクトを仮想環境内に表示するステップを含む。いくつかの実施態様において、方法は、ローカルエージェントに関連付けられるものとしてプライベートURIスキームをコンピューティングデバイスのオペレーティングシステムに登録するステップと、プライベートURIスキームを使用した、ウェブブラウザによるリクエストの生成に応答してローカルエージェントをインスタンス化するステップとを含む。
【0081】
別の側面において、本開示は、動的仮想環境を確実に提供するためのシステムに関する。システムは、ローカルストレージライブラリを格納するメモリデバイスと、ネットワークインタフェースと、プロセッサとを含むコンピューティングデバイスを有する。プロセッサは、ウェブブラウザアプリケーションを介して、プライベート統一リソース識別子(URI)スキーム、ホスト識別子、ポータル識別子、及びリソース識別子を含む選択可能なリンクを有するウェブページを表示し、リンクの選択に応答してローカルエージェントをインスタンス化し、ローカルエージェントを介して、リソース識別子に対応する第1のリソースのコピーが、ポータル識別子に対応するアドレスのローカルストレージライブラリ内に存在しないと判定し、ネットワークインタフェースを介して、第1のリソースのコピーがポータル識別子に対応するローカルストレージライブラリ内に存在しないという判定に応答して、ホスト識別子に対応するリモートストレージライブラリから第1のリソースのコピーを検索し、ローカルエージェントを介して、仮想環境のコンフィギュレーション情報を抽出し、ローカルエージェントによって、抽出されたコンフィギュレーション情報に従って仮想環境を起動する。
【0082】
いくつかの実施態様において、プロセッサは、さらに、仮想オブジェクトに関連付けられたメタデータの特定を含むクエリを、ネットワークインタフェースを介してデータベースサーバに送信し、データベースサーバから、表示用のウェブページを受信し、ウェブページは、ポータル識別子及びリソース識別子に対応する仮想環境のコンフィギュレーション情報内の仮想オブジェクトに関連付けられたメタデータの特定に応答してデータベースサーバによって生成される。
【0083】
いくつかの実施態様において、プロセッサは、さらに、検索された第1のリソースのコピーを復号化する。さらなる実施態様において、プロセッサは、さらに、コンピューティングデバイスに関連付けられた認証情報をリモートサーバに提供する。別のさらなる実施態様において、検索された第1のリソースのコピーは、アクティブメモリにおいて復号化され、仮想環境の終了後にアクティブメモリからフラッシュされる。さらに別の実施態様では、検索された、暗号化された第1のリソースのコピーは、仮想環境の終了後、復号化されずにローカルストレージライブラリ内に格納される。
【0084】
いくつかの実施態様において、コンフィギュレーション情報は、仮想環境内の仮想オブジェクトのサブセットに対するメタデータを含み、プロセッサは、さらに、各仮想オブジェクトに対して、コンフィギュレーション情報が仮想オブジェクトのメタデータを含むか、仮想オブジェクトのメタデータを含まないかを判定し、仮想オブジェクトのコンフィギュレーション情報からのメタデータの仮想環境への追加、及び、仮想オブジェクトのホスト識別子もしくはポータル識別子の一方に関連付けられた既定のメタデータの仮想環境への追加のいずれか一方をそれぞれに行う。さらなる実施態様では、仮想オブジェクトのメタデータは、URIスキーム、ホスト識別子、ポータル識別子、及び仮想オブジェクトに関する情報を含む第2のリソースに対応する第2のリソース識別子を含む。別のさらなる実施態様では、プロセッサは、さらに、各仮想オブジェクトを仮想環境内に表示する。いくつかの実施態様において、プロセッサは、さらに、ローカルエージェントに関連付けられるものとしてプライベートURIスキームをコンピューティングデバイスのオペレーティングシステムに登録し、プライベートURIスキームを使用した、ウェブブラウザによるリクエストの生成に応答してローカルエージェントをインスタンス化する。
【0085】
(B. コンピューティング環境)
本解決法の具体的な実施形態について説明してきたが、本明細書で記載される方法及びシステムに関連して、関連するシステム構成要素(例えば、ハードウェア要素)とともに動作環境の側面について説明することが有益であろう。
【0086】
本明細書で議論されるシステムは、任意のタイプ及び形態のネットワーク上で通信し、本明細書で説明されるオペレーションを実行することができるコンピュータ、ネットワークデバイス又はアプライアンス等、任意のタイプ及び形態のコンピューティングデバイスとしてデプロイされ、及び/又は任意のタイプ及び形態のコンピューティングデバイス上で実行され得る。
図6A及び
図6Bは、無線通信デバイス602又はアクセスポイント606の実施形態を実践するのに有用なコンピューティングデバイス600のブロック図を示す。
図6A及び
図6Bに示されるように、各コンピューティングデバイス600は、無線通信デバイス602又はアクセスポイント606の実施形態を実践するのに有用である。
図6A及び6Bに示されるように、各コンピューティングデバイス600は、中央処理装置621と、メインメモリユニット22とを含む。
図6Aに示すように、コンピューティングデバイス600は、ストレージデバイス628と、インストレーションデバイス616と、ネットワークインタフェース618と、I/Oコントローラ623と、ディスプレイデバイス624a~624nと、キーボード626と、マウス等のポインティングデバイス627とを含み得る。ストレージデバイス628は、限定されないが、オペレーティングシステム及び/又はソフトウェアを含み得る。
図6Bに示されるように、各コンピューティングデバイス600はまた、メモリポート603、ブリッジ670、1つ以上の入出力(input/output)デバイス630a~630n(参照番号630を用いてまとめて参照される)、及び中央処理装置621と通信するキャッシュメモリ640等の追加のオプション要素を含み得る。
【0087】
中央処理装置621は、メインメモリユニット622からフェッチされた命令に応答して処理する任意の論理回路である。多くの実施形態において、中央処理装置621は、例えば、カリフォルニア州マウンテンビューのIntel Corporation社製のもの、ニューヨーク州ホワイトプレーンズのInternational Business Machines社製のもの、又はカリフォルニア州サニーベールのAdvanced Micro Devices社製のもの等のマイクロプロセッサユニットによって提供される。コンピューティングデバイス600は、これらのプロセッサ、又は本明細書で説明するように動作可能な任意の他のプロセッサをベースとすることができる。
【0088】
メインメモリユニット622は、データを記憶し、任意の記憶場所にマイクロプロセッサ621が直接アクセスできる1つ以上のメモリチップであってよく、例えばスタティックランダムアクセスメモリ(SRAM)、ダイナミックランダムアクセスメモリ(DRAM)、強誘電体RAM(FRAM(登録商標))、NAND型フラッシュ、NOR型フラッシュ、及びソリッドステートドライブ(SSD)の任意のタイプ又は変形である。メインメモリ622は、上述したメモリチップのいずれかに基づいてもよいし、本明細書で説明するように動作可能な他の利用可能なメモリチップに基づいてもよい。
図6Aに示す実施形態では、プロセッサ621は、システムバス650(以下でさらに詳細に説明する)を介してメインメモリ622と通信する。
図6Bは、プロセッサがメモリポート603を介してメインメモリ622と直接通信するコンピューティングデバイス600の実施形態を示す。例えば、
図6Bにおいて、メインメモリ622は、DRDRAMであり得る。
【0089】
図6Bは、メインプロセッサ621が、バックサイドバスと呼ばれることもあるセカンダリバスを介してキャッシュメモリ640と直接通信する実施形態を示す。他の実施形態では、メインプロセッサ621は、システムバス650を使用してキャッシュメモリ640と通信する。キャッシュメモリ640は、通常、メインメモリ622よりも高速な応答時間を有し、例えば、SRAM、BSRAM、又はEDRAMによって提供される。
図6Bに示す実施形態では、プロセッサ621は、ローカルシステムバス650を介して様々なI/Oデバイス630と通信する。中央処理装置621をI/Oデバイス630のいずれかに接続するために、例えば、VESA VLバス、ISAバス、EISAバス、マイクロチャネルアーキテクチャ(MicroChannel Architecture、MCA)バス、PCIバス、PCI-Xバス、PCI-Expressバス、又はヌーバス(NuBus)等の様々なバスを使用し得る。I/Oデバイスがビデオディスプレイ624である実施形態の場合、プロセッサ621は、ディスプレイ624と通信するためにアドバンストグラフィックスポート(AGP)を使用し得る。
図6Bは、メインプロセッサ621が、例えばハイパートランスポート(HYPERTRANSPORT)、ラピッドIO(RAPIDIO)、又はインフィニバンド(INFINIBAND)通信技術を介し、I/Oデバイス630bと直接通信し得るコンピュータ600の実施形態を示す。
図6Bはまた、ローカルバスと直接通信とが混在する実施形態も示しており、プロセッサ621は、I/Oデバイス630bと直接通信を行いつつ、ローカル相互接続バスを使用してI/Oデバイス630aと通信を行う。
【0090】
コンピューティングデバイス600には、多種多様なI/Oデバイス630a~630nが存在し得る。入力デバイスには、キーボード、マウス、トラックパッド、トラックボール、マイク、ダイヤル、タッチパッド、タッチスクリーン、及び描画タブレットが含まれる。出力デバイスには、ビデオディスプレイ、スピーカー、インクジェットプリンタ、レーザープリンタ、プロジェクタ、及び昇華型プリンタが含まれる。I/Oデバイスは、
図6Aに示すように、I/Oコントローラ623によって制御され得る。I/Oコントローラは、キーボード626と、例えばマウス又は光学ペン等のポインティングデバイス627と、といった1つ以上のI/Oデバイスを制御し得る。さらに、I/Oデバイスは、コンピューティングデバイス600のためのストレージ及び/又はインストレーション媒体616を提供し得る。さらに他の実施形態では、コンピューティングデバイス600は、カリフォルニア州ロスアラミトスのTwintech Industry社製のデバイスのUSBフラッシュドライブライン等のハンドヘルドUSBストレージデバイスを受けるためのUSB接続(図示せず)を提供し得る。
【0091】
再び
図6Aを参照すると、コンピューティングデバイス600は、ディスクドライブ、CD-ROMドライブ、CD-R/RWドライブ、DVD-ROMドライブ、フラッシュメモリドライブ、様々な形式のテープドライブ、USBデバイス、ハードドライブ、ネットワークインタフェース、又はソフトウェア及びプログラムのインストールに好適な任意の他のデバイス等、任意の適切なインストレーションデバイス616に対応し得る。コンピューティングデバイス600は、オペレーティングシステム及び他の関連ソフトウェアを格納するための、及び本明細書に記載されるシステム及び方法を実施する(例えば、設定及び/又は設計される)ための任意のプログラム又はソフトウェア620等のアプリケーションソフトウェアプログラムを格納するための、1つ以上のハードディスクドライブ又は独立ディスクの冗長アレイ等のストレージデバイスをさらに含み得る。任意選択で、インストレーションデバイス616のいずれかもまた、ストレージデバイスとして使用され得る。さらに、オペレーティングシステム及びソフトウェアは、ブータブル媒体から実行され得る。
【0092】
さらに、コンピューティングデバイス600は、標準電話回線、LANもしくはWANリンク(例えば、802.11、T1、T3、56kb、X.25、SNA、DECNET)、ブロードバンド接続(例えば、ISDN、フレームリレー、ATM、ギガビットイーサネット、イーサネットオーバーSONET(Ethernet-over-SONET))、ワイヤレス接続、又は上記のいずれかもしくは全ての組み合わせを含むが、これらに限定されない様々な接続を介してネットワーク604に対してインタフェース接続するためのネットワークインタフェース618を含み得る。接続は、様々な通信プロトコル(例えば、TCP/IP、IPX、SPX、NetBIOS、イーサネット、ARCNET、SONET、SDH、ファイバ分散データインタフェース(FDDI)、RS232、IEEE 802.11、IEEE 802.11a、IEEE 802.11b、IEEE 802.11g、IEEE 802.11n、IEEE 802.11ac、IEEE 802.11ad、CDMA、GSM、WiMax(登録商標)、及び直接非同期接続)を使用して確立することができる。一実施形態では、コンピューティングデバイス600は、セキュアソケットレイヤ(SSL)又はトランスポートレイヤセキュリティ(TLS)等の任意のタイプ及び/又は形式のゲートウェイ又はトンネリングプロトコルを介して、他のコンピューティングデバイス600´と通信する。ネットワークインタフェース618は、内蔵ネットワークアダプタ、ネットワークインタフェースカード、PCMCIAネットワークカード、カードバスネットワークアダプタ、ワイヤレスネットワークアダプタ、USBネットワークアダプタ、モデム、又はコンピューティングデバイス600を、本明細書に記載される通信及びオペレーションの実行が可能な任意のタイプのネットワークに対しインターフェースによってインタフェース接続するのに適した任意の他のデバイスを含み得る。
【0093】
いくつかの実施形態では、コンピューティングデバイス600は、1つ以上のディスプレイデバイス624a~624nを含み得る、又はこれらに接続され得る。そのようなものとして、I/Oデバイス630a~630n及び/又はI/Oコントローラ623のいずれかは、コンピューティングデバイス600によるディスプレイデバイス624a~624nの接続及び使用に対応し、有効にし、又は提供するために、任意のタイプ及び/又は形態の適切なハードウェア、ソフトウェア、又はハードウェア及びソフトウェアの組み合わせを含み得る。例えば、コンピューティングデバイス600は、ディスプレイデバイス624a~624nをインタフェース接続、通信、接続、又はその他の方法で使用するために、任意のタイプ及び/又は形態のビデオアダプタ、ビデオカード、ドライバ、及び/又はライブラリを含み得る。一実施形態では、ビデオアダプタは、ディスプレイデバイス624a~624nにインタフェース接続するための複数のコネクタを含み得る。他の実施形態では、コンピューティングデバイス600は、複数のビデオアダプタを含み得、各ビデオアダプタは、ディスプレイデバイス624a~624nに接続されている。いくつかの実施形態では、コンピューティングデバイス600のオペレーティングシステムの任意の部分が、複数のディスプレイデバイス624a~624nを使用するように構成されてもよい。当業者であれば、コンピューティングデバイス600が1つ以上のディスプレイデバイス624a~624nを有するように構成され得る様々な方法及び実施形態を認識し、理解するであろう。
【0094】
さらなる実施形態では、I/Oデバイス630は、システムバス650と、USBバス、アップルデスクトップバス、RS-232シリアル接続、SCSIバス、FireWire(登録商標)バス、FireWire(登録商標)800バス、イーサネットバス、AppleTalk(登録商標)バス、ギガビットイーサネットバス、非同期転送モードバス、ファイバチャネルバス、シリアル接続小型コンピュータシステムインタフェースバス、USB接続、又はHDMI(登録商標)バス等の外部通信バスとの間のブリッジであってもよい。
【0095】
図6A及び
図6Bに描かれている種類のコンピューティングデバイス600は、タスクのスケジューリングとシステムリソースへのアクセスを制御するオペレーティングシステムの制御下で動作することができる。コンピューティングデバイス600は、MICROSOFT WINDOWS(登録商標)オペレーティングシステムのいずれかのバージョン、Unix(登録商標)及びLinux(登録商標)オペレーティングシステムの異なるリリース、マッキントッシュコンピュータ用のMAC OS(登録商標)のいずれかのバージョン、任意の組み込みオペレーティングシステム、任意のリアルタイムオペレーティングシステム、任意のオープンソースオペレーティングシステム、任意のプロプライエタリオペレーティングシステム、モバイルコンピューティングデバイス用の任意のオペレーティングシステム、又はコンピューティングデバイス上で動作し、本明細書二記載されたオペレーションを行うことができる任意の他のオペレーティングシステム等の任意のオペレーティングシステムを実行することができる。代表的なオペレーティングシステムとして、Google社製のAndroid(登録商標)、ワシントン州レッドモンドのMicrosoft社製のWINDOWS(登録商標)8及び10、カリフォルニア州クパチーノのApple Computer社製のMAC OS(登録商標)、Research In Motion(RIM)社製のWebOS、ニューヨーク州アーモンクのInternational Business Machines社製のOS/2、及びユタ州ソルトレイクシティのCaldera社が配布する自由に利用可能なオペレーティングシステムであるLinux(登録商標)、又はUnix(登録商標)オペレーティングシステムの任意のタイプ及び/又は形態等が挙げられるが、これらに限定されない。
【0096】
コンピュータシステム600は、ワークステーション、電話機、デスクトップコンピュータ、ラップトップもしくはノートブックコンピュータ、サーバ、ハンドヘルドコンピュータ、携帯電話又は他のポータブルテレコミュニケーションデバイス、メディア再生デバイス、ゲームシステム、モバイルコンピューティングデバイス、又は通信可能な任意の他のタイプ及び/又は形態のコンピューティング、テレコミュニケーション又はメディアデバイスであり得る。コンピュータシステム600は、本明細書で説明するオペレーションを行うのに十分なプロセッサパワー及びメモリ容量を有する。
【0097】
いくつかの実施形態では、コンピューティングデバイス600は、デバイスと合致する異なるプロセッサ、オペレーティングシステム、及び入力デバイスを有し得る。例えば、一実施形態では、コンピューティングデバイス600は、スマートフォン、モバイルデバイス、タブレット、又はパーソナルデジタルアシスタントである。さらに他の実施形態では、コンピューティングデバイス600は、Android(登録商標)をベースとしたモバイルデバイス、カリフォルニア州クパチーノのApple Computer社製のiPhone(登録商標)スマートフォン、又はResearch In Motion社製のデバイス等のBlackberry又はWebOSベースのハンドヘルドデバイス又はスマートフォンである。さらに、コンピューティングデバイス600は、ワークステーション、デスクトップコンピュータ、ラップトップもしくはノートブックコンピュータ、サーバ、ハンドヘルドコンピュータ、携帯電話、その他のコンピュータ、又は通信が可能であり、本明細書に記載されたオペレーションを行うのに十分なプロセッサパワー及びメモリ容量を有するその他の形態のコンピューティングデバイス又はテレコミュニケーションデバイスである。
【0098】
本開示は、1つ以上の「ユーザ」に言及する場合があるが、そのような「ユーザ」は、例えば、マルチユーザ多重入力及び多重出力(MU-MIMO)環境のコンテキストで通常使用される「ユーザ」及び「マルチユーザ」という用語と一致して、ユーザ関連デバイス又はステーション(STA)を指す場合がある。
【0099】
上述した通信システムの例は、802.11規格に従って動作するデバイス及びAPを含み得るが、上述したシステム及び方法の実施形態は、他の規格に従って動作し、デバイス及びAPとして構成されたデバイス以外の無線通信デバイスを使用することができることを理解されたい。例えば、セルラーネットワーク、衛星通信、車両通信ネットワーク、及び他の非802.11無線ネットワークに関連する複数ユニットの通信インタフェースは、本明細書に記載されるシステム及び方法の範囲から逸脱することなく、改善された全体的な容量及び/又はリンク品質を達成するために、本明細書に記載されるシステム及び方法を利用することができる。
【0100】
本開示の特定の箇所は、1つを別のものから、又は他のものから識別又は区別する目的で、デバイス、動作モード、送信チェーン、アンテナ等に関連して、「第1の」及び「第2の」等の用語に言及する場合があることに留意されたい。これらの用語は、エンティティ(例えば、第1のデバイスと第2のデバイス)を単に時間的に、又はシーケンスに従って関連付けることを意図するものではないが、場合によっては、これらのエンティティにそのような関係が含まれることがあり得る。また、これらの用語は、システム又は環境内で動作し得るエンティティ(例えば、デバイス)の数を制限するものではない。
【0101】
上述したシステムは、これらの構成要素のいずれか又はそれぞれについて、複数提供し得、これらの構成要素は、スタンドアロンマシン又はいくつかの実施形態では分散システム内の複数の機械のいずれかに提供され得ることを理解されたい。さらに、上述したシステム及び方法は、1つ以上の製造品上で、又は1つ以上の製造品中に具現化された1つ以上のコンピュータが読み取り可能なプログラム又は実行可能な命令として提供され得る。製造品は、フロッピーディスク、ハードディスク、CD-ROM、フラッシュメモリカード、PROM、RAM、ROM、又は磁気テープであり得る。一般に、コンピュータ読み取り可能なプログラムは、LISP、PERL、C、C++、C#、PROLOG等の任意のプログラミング言語、又はJAVA(登録商標)等の任意のバイトコード言語で実施され得る。ソフトウェアプログラム又は実行可能な命令は、オブジェクトコードとして、1つ以上の製造品に格納され得る。
【0102】
本方法及びシステムの前述の書面による説明により、当業者であれば、現時点で最良の態様であると考えられるものを作製及び使用することができるが、当業者であれば、本明細書における特定の実施形態、方法、及び実施例の変形例、組み合わせ、及び均等物の存在を理解し、評価するであろう。したがって、本方法及びシステムは、上述した実施形態、方法、及び実施例によって限定されるべきではなく、本開示の範囲及び泉の範囲内の全ての実施形態及び方法によって限定されるべきである。