(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-11-13
(54)【発明の名称】仮想ウィンドウ
(51)【国際特許分類】
G06T 19/00 20110101AFI20241106BHJP
G06F 3/04815 20220101ALI20241106BHJP
G06F 3/01 20060101ALI20241106BHJP
【FI】
G06T19/00 300B
G06F3/04815
G06F3/01 510
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024522464
(86)(22)【出願日】2022-09-29
(85)【翻訳文提出日】2024-05-23
(86)【国際出願番号】 US2022045227
(87)【国際公開番号】W WO2023064112
(87)【国際公開日】2023-04-20
(32)【優先日】2021-10-14
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】509049562
【氏名又は名称】シュアファイア エルエルシー
【氏名又は名称原語表記】SUREFIRE,LLC
【住所又は居所原語表記】18300 Mt.Baldy Circle, Fountain Valley, California 92708 U.S.A.
(74)【代理人】
【識別番号】110000659
【氏名又は名称】弁理士法人広江アソシエイツ特許事務所
(72)【発明者】
【氏名】ホアン,ヴォン バ
【テーマコード(参考)】
5B050
5E555
【Fターム(参考)】
5B050AA03
5B050BA09
5B050BA11
5B050BA12
5B050BA13
5B050CA07
5B050CA08
5B050DA05
5B050EA26
5B050FA02
5B050FA06
5B050FA16
5E555AA25
5E555AA27
5E555AA64
5E555BA29
5E555BA38
5E555BB29
5E555BB38
5E555BC08
5E555BE13
5E555BE17
5E555CA42
5E555CA46
5E555CB65
5E555CB66
5E555DA03
5E555DA08
5E555DB53
5E555DB57
5E555DC25
5E555DC43
5E555DC84
5E555FA00
(57)【要約】
仮想ウィンドウを提供するためのシステム及び方法は、投影面上に画像を投影するプロジェクタを含み得る。投影面は、ユーザから離れた距離に配置することができる。システムは、投影面とユーザとの間の離隔距離を包含する空間領域に関して検出フィールドを形成する複数のセンサを更に備えることができる。複数のセンサは、検出フィールド内のユーザの現在位置を表すユーザの位置データをキャプチャすることができる。システムはまた、コンピュータシミュレーション環境を投影画像としてレンダリングする少なくとも1つのプロセッサを含むこともでき、少なくとも1つのプロセッサは、コンピュータシミュレーション環境が検出フィールド内のユーザの現在位置を基準にした視点で生成されるように、ユーザのためにキャプチャされた位置データを処理する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
画像を投影面に投影するプロジェクタであって、前記投影面は、ユーザから離れた距離に配置される、プロジェクタと、
前記投影面と前記ユーザとの間の前記離隔距離を包含する空間領域に関して検出フィールドを形成する複数のセンサであって、前記複数のセンサは、前記検出フィールド内の前記ユーザの現在位置を表す前記ユーザの位置データをキャプチャする、複数のセンサと、
コンピュータシミュレーション環境を前記投影画像としてレンダリングする少なくとも1つのプロセッサであって、前記コンピュータシミュレーション環境が前記検出フィールド内の前記ユーザの前記現在位置を基準にした視点で生成されるように、前記ユーザのために前記キャプチャされた位置データを処理する、前記少なくとも1つのプロセッサと、
を備える、システム。
【請求項2】
前記複数のセンサは、カメラ、超音波距離センサ、レーダセンサ、及び光検出及び測距(LIDAR)センサのうちの少なくとも1つを備える、請求項1に記載のシステム。
【請求項3】
前記カメラは、前向きカメラ及び後ろ向きカメラのうちの少なくとも1つを備える、請求項2に記載のシステム。
【請求項4】
前記ユーザの前記キャプチャされた位置データは、前記ユーザの頭の位置、前記ユーザの向き、及び前記ユーザの動きのうちの少なくとも1つを含む、請求項3に記載のシステム。
【請求項5】
前記少なくとも1つのプロセッサは、前記コンピュータシミュレーション環境が、前記ユーザの前記頭の位置に対する奥行き知覚を有する環境の三次元(3D)画像レンダリングを含むように、前記ユーザの前記キャプチャされた位置データを処理する、請求項4に記載のシステム。
【請求項6】
前記少なくとも1つのプロセッサは、前記検出フィールド内での前記ユーザの現在の動きを表す現在キャプチャされた位置データと、前記検出フィールド内での前記ユーザの過去の動きを表す履歴キャプチャされた位置データとに基づいて計算された予測データを使用して前記3D画像レンダリングが生成されるように、前記ユーザの前記キャプチャされた位置データを処理する、請求項5に記載のシステム。
【請求項7】
前記少なくとも1つのプロセッサは、遠隔地に配置され、前記遠隔地を表す画像をキャプチャする複数の遠隔センサからの追加データを処理する、請求項1に記載のシステム。
【請求項8】
前記コンピュータシミュレーション環境は、前記遠隔地の環境をシミュレートする三次元(3D)画像レンダリングを含む、請求項7に記載のシステム。
【請求項9】
前記投影面は、スクリーン、壁、又は複数のスクリーン、及び複数の壁のうちの少なくとも1つを含む、請求項1に記載のシステム。
【請求項10】
前記プロジェクタは、少なくとも1つの投影ポートと、画像を光学的に投影するための光学系とを備える、請求項1に記載のシステム。
【請求項11】
方法であって、
2つ以上のプロジェクタ装置を有効化するステップであって、前記2つ以上のプロジェクタ装置のそれぞれは別個の物理環境に配置され、前記別個の物理環境のそれぞれは、前記それぞれのプロジェクタ装置の視界に入るユーザを含む、ステップと、
前記2つ以上のプロジェクタ装置を使用して共有コンピュータシミュレーション環境を作成するステップであって、前記共有コンピュータシミュレーション環境は、前記別個の物理環境にいる前記ユーザの各々の視覚的表現を含む三次元(3D)画像レンダリングを含む、ステップと、
前記共有コンピュータシミュレーション環境を2つ以上の投影面に投影するステップであって、前記2つ以上の投影面のそれぞれは、前記ユーザの視界に入る前記別個の物理環境にそれぞれ配置される、ステップと、
を含む、方法。
【請求項12】
前記ユーザの各々の現在位置を表す前記別個の物理環境における前記ユーザの各々の位置データを受信するステップであって、前記別個の物理環境における前記ユーザの各々の前記位置データが前記それぞれのプロジェクタ装置によってキャプチャされるステップを更に含む、請求項11に記載の方法。
【請求項13】
前記共有コンピュータシミュレーション環境を作成するステップは、前記受信した位置データに基づいて前記ユーザの各々に対応する前記現在位置を基準にした前記3D画像内の前記ユーザの各々の前記視覚的表現を配置することを含む、請求項12に記載の方法。
【請求項14】
前記共有コンピュータシミュレーション環境を投影するステップは、前記別個の物理環境にいる前記ユーザからの特定のユーザのための前記共有コンピュータシミュレーション環境の視点を投影することを含む、請求項13に記載の方法。
【請求項15】
前記共有コンピュータシミュレーション環境の視点を投影するステップは、前記特定のユーザに対応する前記位置データを使用して、前記特定のユーザの前記現在位置を基準にした視点で前記共有コンピュータシミュレーション環境をレンダリングすることを含む、請求項14に記載の方法。
【請求項16】
少なくとも1つのプロセッサによって実行可能な命令を含む非一時的機械可読記憶媒体であって、前記命令により、前記少なくとも1つのプロセッサが
ユーザに関連付けられ、かつ検出フィールド内の前記ユーザの現在位置を表す位置データを処理し、
前記処理された位置データを使用してコンピュータシミュレーション環境をレンダリングし、前記コンピュータシミュレーション環境が前記ユーザから離れた距離に配置された投影面上に投影され、前記検出フィールド内の前記ユーザの前記現在位置を基準にした視点で生成される、
ように、プログラミングされる、非一時的機械可読記憶媒体。
【請求項17】
前記検出フィールドは、前記投影面と前記ユーザとの間の前記離隔距離を包含する空間領域に対して複数のセンサによって形成される、請求項16に記載の非一時的機械可読記憶媒体。
【請求項18】
前記ユーザの前記位置データは、前記複数のセンサによってキャプチャされる、請求項17に記載の非一時的機械可読記憶媒体。
【請求項19】
前記少なくとも1つのプロセッサは、
前記コンピュータシミュレーション環境を、前記ユーザの前記現在位置に対する奥行き知覚を有する環境の三次元(3D)画像レンダリングを含むようにレンダリングする、
ように、更にプログラミングされる、請求項17に記載の非一時的機械可読記憶媒体。
【請求項20】
前記少なくとも1つのプロセッサは、
前記検出フィールド内のユーザの現在位置を表す現在キャプチャされた位置データと、前記検出フィールド内の前記ユーザの過去の位置を表す履歴キャプチャされた位置データとに基づいて、前記ユーザに関連付けられた予測データを計算し、
前記ユーザに関連する前記予測データに基づいて前記検出フィールド内の前記ユーザの予測位置を基準にした視点での前記環境の前記3D画像レンダリングを含むように前記コンピュータシミュレーション環境をレンダリングする、
ように、更にプログラミングされる、請求項19に記載の非一時的機械可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示の実施形態は、一般に、例えば、ユーザにとって没入的かつインタラクティブであり得る仮想現実(VR)環境を生成するための、ビジュアルプロジェクタ技術のための方法及びシステムに関する。
【背景技術】
【0002】
仮想現実(VR)とは、コンピュータモデリング及びシミュレーションを利用して、人工的な三次元(3D)視覚環境又はその他の感覚環境と人とが相互に作用することを可能にするものである。現在、多くのVRアプリケーションは、情報を送受信するインタラクティブ装置を使用して現実をシミュレートするコンピュータが生成した環境内にユーザを没入させる。通常、これらのインタラクティブ装置は、多くの場合、ユーザの身体に直接配置及び/又は装着され、例えば、ユーザの目の周りのゴーグル、ユーザの頭(及び目)を覆うヘッドセット、手袋、又はボディスーツとして装着される。典型的なVRフォーマットでは、ユーザは、立体スクリーンを備えたVRヘッドセットを装着し、シミュレートされた環境のアニメーション画像を見ることができる。
【発明の概要】
【0003】
開示された技術の一実施形態によれば、仮想現実(VR)などのシミュレーション環境を、ウェアラブルインタラクティブ装置の使用を不要にすることができる方法で、ユーザから離れた表面に投影するためのシステム及び方法について説明する。
【0004】
開示された技術の一実施形態によれば、システムは、投影面上に画像を投影するプロジェクタを備えることができる。投影面は、ユーザから離れた距離に配置することができる。システムは、投影面とユーザとの間の離隔距離を包含する空間領域に関して検出フィールドを形成する複数のセンサを更に備えることができる。複数のセンサは、検出フィールド内のユーザの現在位置を表すユーザの位置データをキャプチャすることができる。システムはまた、コンピュータシミュレーション環境を投影画像としてレンダリングする少なくとも1つのプロセッサを含むこともでき、少なくとも1つのプロセッサは、コンピュータシミュレーション環境が検出フィールド内のユーザの現在位置を基準にした視点で生成されるように、ユーザのためにキャプチャされた位置データを処理する。
【0005】
開示された技術の別の実施形態によれば、方法は、2つ以上のプロジェクタ装置を有効にすることを含むことができる。2つ以上のプロジェクタ装置のそれぞれは、別個の物理環境内に配置することができ、各別個の物理環境は、それぞれのプロジェクタ装置の視界に入るそれぞれのユーザを含むことができる。更に、2つ以上のプロジェクタ装置を使用して、共有コンピュータシミュレーション環境を作り出すことができ、共有コンピュータシミュレーション環境は、別個の物理環境における各ユーザの視覚的表現を含む三次元(3D)画像レンダリングを含む。次に、共有コンピュータシミュレーション環境を2つ以上の投影面に投影することができ、2つ以上の投影面のそれぞれは、それぞれのユーザの視界に入る別個の物理環境にそれぞれ配置される。
【0006】
開示された技術の他の特徴及び態様は、開示された技術の実施形態による特徴を例として示す添付の図面と併せて、以下の詳細な説明から明らかになるであろう。この概要は、本明細書で説明される発明の範囲を限定することを意図したものではなく、本明細書に添付された特許請求の範囲によってのみ定義される。
【図面の簡単な説明】
【0007】
本開示は、1つ又は複数の様々な実施形態に従って、以下の図を参照して詳細に説明される。図は、例示のみを目的として提供されており、単に典型的又は例示的な実施形態を示している。
【0008】
【
図1】本明細書に開示される技術の一実施形態に従って、例えば、1人のユーザをVR環境に没入させるために仮想現実(VR)プロジェクタを実装することができる例示的な環境を示す。
【0009】
【
図2】本明細書で開示する技術の一実施形態に従って、例えば、複数の遠隔地にいるユーザをVR環境に没入させるために、2つのVRプロジェクタを実装することができる例示的な環境を示す。
【0010】
【
図3】いくつかの実施形態に従って、VR環境の投影を実施するためのプロセスの一例を示す動作フロー図である。
【0011】
【
図4】いくつかの実施形態に従って、複数の遠隔地にいるユーザに同時に提示することができるVR環境などの共有シミュレーションの投影を実施するためのプロセスの一例を示す動作フロー図である。
【0012】
【
図5】本開示で説明された実施形態の様々な特徴を実装するために使用され得る例示的なコンピューティングシステムを示す。
【0013】
図は網羅的ではなく、本開示を開示された正確な形態に限定するものではない。
【発明を実施するための形態】
【0014】
本明細書で言及されるように、仮想現実(VR)技術という用語は、VR、拡張現実(AR)、複合現実、エクステンデッドリアリティ(XR)、三次元視覚化などの複数の形態の没入型技術を包含することができ、これらはユーザとの相互作用を可能にする三次元(3D)環境の現実的で没入型のコンピュータシミュレーションを生成することができる。
【0015】
背景として、VR環境は、特に、プレゼンスとして知られる現象を作り出すように設計されている。プレゼンスとは、シミュレートされた(又はVR)環境に没入している間、ユーザが物理的に「そこにいる」ことをシミュレートする人間の身体的及び精神的な感覚のことである。プレゼンスは、ユーザの動きを検出し、それに応じてスクリーン上のビューを名目上リアルタイムで(例えば、ユーザの動きに合わせて)調整するモーションセンサによってもたらされ得る。環境内でシミュレートされるオブジェクトは「空間的プレゼンス」の感覚を有するため、VR環境でプレゼンスを更にサポートすることができる。空間的プレゼンスとは、環境内のオブジェクトが、ユーザの位置を基準とし、かつユーザの位置とは独立した、三次元空間内の位置を効果的に有することであると、説明することができる。「プレゼンス」及び「空間的プレゼンス」の1つの目的は、人間の知覚及び認知システムに正しいキューを提示するシミュレーションを生成することであり得、その結果、脳は、仮想世界内を移動するユーザの視覚的視点(例えば、ユーザの目の位置)と一致する視点から、それらのキューを三次元世界のオブジェクトとして解釈する。
【0016】
いくつかの実施形態では、開示された方法及びシステムによって生成されるVR環境は、コンピュータグラフィックス及び360度ビデオの両方を含むコンピュータ生成3D環境であり、ユーザを取り囲み、ユーザの相互作用に応答する。ジェスチャ認識やハンドヘルドコントローラにより、手や身体の追跡が行われ、触覚(又はタッチ感知)フィードバックが組み込まれることもある。部屋ベースのシステムは、広いエリアを移動しながら3D体験を提供するか、又は複数の参加者で使用され得る。したがって、VR環境は、シミュレートされた一連の様々なシーンの中を移動したり、ユーザ自身の頭の回転や歩調と説得力のある関連性を持つ変化する視点や眺めを体験したりするなど、多くの実世界体験をシミュレートすることができる。別の一般的なVR機能は、触覚の感覚を提供するフォースフィードバック装置を備えたデータグローブを装着することを含み、ユーザは仮想環境内で見えるオブジェクトを手に取って操作することさえできる。技術の多くの強力なインタラクティブ機能とリアルな没入体験により、VRは、エンターテイメント(例えば、ビデオゲーム)、教育(例えば、医療訓練、軍事訓練、武装訓練)、及びビジネス(例えば、バーチャル会議)などの幅広い用途で使用されるツールとして台頭しつつある。しかしながら、このようなVRを伴うような体験では、通常、ユーザは自分の手で装置を保持するか、頭に装置(例えば、ゴーグル)を装着する必要がある。このようなインタラクティブ装置に制限されることは、多数のユーザにとって不快又は厄介であり得る。
【0017】
更に、VR設計者がシミュレートされた環境の「プレゼンス」を改善しようとすると、ユーザは、「VR酔い」と呼ばれる現象を体験する可能性がある。一例として、人がVRヘッドセットを使用している間、目は自分の周りでシミュレートされている動きを認識し、内耳も自分の周りで仮想的な動きが起こっていることを感知する。しかし、VRヘッドセットで画像が生成されているにもかかわらず、人の筋肉及び目は静止しており動いていないことを感知し続ける。その結果、VRゴーグルやヘッドセットなどの多くのインタラクティブ装置のユーザは、自分の内耳(例えば、感知動作)と身体(例えば、静止していることの感知)が脳に矛盾したメッセージを同時に送信するのを体験する。その結果、VR体験に没入しているユーザが、実際の動きによって生じる酔いを模倣した「VR酔い」を感じることは珍しくない。
【0018】
本明細書で開示されるシステムは、VR(又は3D)投影とリアルタイムVR(又は3D)コンピュータレンダリング機能を統合する、以下ビューレンダリング装置(VRD)と呼ばれる装置を実装している。したがって、VRDを使用して、ポータブルコンピューティング装置(例えば、タブレット、スマートフォン)、VRゴーグル、VRヘッドセット、又は他のウェアラブルインタラクティブ装置などの様々なインタラクティブ装置を必要とせず、更にユーザの動きを制限しない、完全に没入型のVR体験を提供することができる。説明では、例示の目的で「VR環境」に言及しているが、これは限定する意図ではなく、当技術分野で知られている他の形態の3D環境及び/又は没入型環境を提示するために、開示された実施形態を実装することができることを理解されたい。実施形態によれば、VRDは、ユーザから離れた距離で分離された投影面上に3D画像を投影するように明確に設計されている。更に、VRDは、ユーザの位置及び/又は動きの検出、シミュレーション内の空間的プレゼンスの判定など、リアルタイムVRレンダリング機能をサポートしており、これはユーザ用のシミュレーションVR環境の構築に不可欠である。したがって、開示された実施形態は、一般的な種類のインタラクティブ装置を必要としない方法で投影を活用することによって、ユーザの没入型VR環境を作り出す利点を実現し、最終的に、方向感覚喪失、混乱、及びVR酔いなど、このような装置を使用することによって生じるユーザへの望ましくない影響を軽減している。
【0019】
図1は、最終的に、1人のユーザ、又は互いに近接して位置する(例えば、同じ近傍又は物理的領域内にいる)複数のユーザが、見て相互に作用することができる完全なVR環境を作り出す三次元(3D)シミュレーション画像を投影するためのシステム100を実装するための例示的な環境を示す。
図1の例では、システム100は、ビューレンダリング装置(VRD)120を含み、この装置は、少なくとも、3D投影技術にしたがって3D画像を投影面130上に投影するように構成されたプロジェクタ122と、VR技術にしたがってデータ及びアルゴリズムを処理し、3Dコンピュータシミュレーション環境を作り出す際に使用される3D画像をレンダリングするように構成された中央処理装置(CPU)124と、ユーザ150の位置データをキャプチャするように構成された複数のセンサ126とを含むことができる。様々な実施形態では、VRD120は、特に、VR(又は3D)投影機能及びリアルタイムVR(又は3D)コンピュータレンダリング機能を統合するように構成される。
図1の例では、VRD120は、投影面130上に投影画像132(例えば、3D画像)を投影するように示されており、これにより、ユーザ150をコンピュータ生成シミュレーション内に完全に没入させることができるVR環境が作り出される。投影面130は、壁、床、天井、パネル、又は所望の3D画像を表示するのに適切な寸法を有する任意の適切な安定的に固定された面(又は複数の面の組合せ)であり得る。投影画像132は、ユーザ150に見える3D画像などのコンピュータレンダリングされた多次元画像又はグラフィックスであり得、したがって、例えば、VRでシミュレートされた環境を作り出す画像を提供することができる。投影された画像132は、VR(又は他の没入型シミュレーション技術)に従ってシミュレーション環境内に没入するユーザ150の視点から、画像が、奥行き、変化する空間、及び他の視覚刺激を有するように、VRD120によってレンダリング及び投影され得る。
図1は、投影された画像132をユーザ150から離れた距離にある投影面130に投影することによって、システム100は、VRゴーグル又はVRヘッドセットなど、ユーザが(目に極めて近接して)装着するインタラクティブ装置を介してシミュレーションを見るのとは対照的に、VR環境を体験するために「仮想ウィンドウ」を介して「仮想世界」を見ているような知覚をユーザ150に生じさせることを示している。言い換えれば、ユーザ150は、例えば、VRD120によって壁に投影されている3D画像を見ることで、「現実世界」の物理的なシーンを見るために窓から外を見るのと同様の方法で、完全に没入した3D「仮想世界」を見ることができる。
【0020】
一般に、システム100は、ルームスケールVRを適切にサポートするために、システム100のコンポーネントがユーザ150から適切に離れて位置するのに十分な広さの空間を有する様々な物理環境に配置され得る。一例として、ルームスケールVRに適しており、開示されたシステム100の実装に役立つ環境は、少なくとも長さ(L)2メートル×幅(W)2メートル(6.5フィートX6.5フィート)の自由空間のおおよその寸法を有する可能性がある。屋内の大きな部屋及び屋外領域などの物理環境は、システム100をセットアップし、ルームスケールVRに従って3D画像を投影するための理想的な場所であり得る。更に、物理環境は、VR環境への没入及びルームスケールVRでのシミュレーションとユーザとの相互作用を可能にするために、ユーザ150が自由に動く(例えば、360度回転する)のに必要な間隔を提供する必要がある。上記で示唆したように、システム100の重要な態様には、VRヘッドセット、VRゴーグルなどで一般的であるようにVR環境を目の極めて近く(例えば、ミリメートル)に投影するのではなく、VR環境を目から実質的に離れた距離(例えば、足)に投影するので、ユーザ150がVR環境を観察することが含まれる。したがって、
図1に見られるように、投影面130は、ユーザから離れた距離に配置される。
【0021】
また、VRD120の複数のセンサ126は、センサ126が、投影面130とユーザ150との間の離隔距離を包含する空間領域に関して検出フィールド128(
図1ではユーザ150を囲む破線で示す)を形成するように、装置上の様々な位置に配置され得る。したがって、シミュレーション中にユーザ150が検出フィールド128内を移動すると、複数のセンサ126はユーザ150を検出し、検出フィールド128内のユーザ150の現在位置を表す対応する位置データをキャプチャすることができる。
【0022】
図1に示すように、VRD120は、CPU124を備えることができる。CPU124は、プロセッサ及びメモリなどの様々なハードウェアコンポーネントと、リアルタイム3D画像レンダリング機能ならびに奥行き感覚、空間的プレゼンス、及びシステム100の他のコンポーネントと連携したユーザ移動の追跡(例えば、ユーザの位置及び/又は方向性の検出)などの様々な他のリアルタイムVR機能を提供するためのアルゴリズム、モジュール、及びアプリケーションなどのソフトウェア要素とを含むことができる。例えば、複数のセンサ126によってキャプチャされたユーザ150の位置データは、次いで、CPU124によって処理及び/又は分析され、その結果、コンピュータシミュレーション環境(例えば、VR環境)は、リアルタイムで検出フィールド128内のユーザ150の現在位置を基準にした視点で動的にレンダリングされ得る。CPU124は、3D画像レンダリングならびにVR及び/又はシミュレーション没入技術に関連する他の機能を実施するための計算及び/又はアルゴリズム、ならびにユーザ150の現在及び直近の過去の動きに基づく予測計算などの複雑なデータ分析機能を実施するためのアルゴリズムを実行するのに必要な処理能力を有する高性能コンピュータと考えてもよい。一例として、CPU124は、検出フィールド128内のユーザの現在の位置を表す現在キャプチャされた位置データと、検出フィールド128内のユーザの過去の位置を表す過去にキャプチャされた位置データとに基づいて、ユーザ150に関連付けられた予測データを計算するように構成され得る。結果として、CPU124は、次に、ユーザの現在及び/又は予測された将来の動きを表す予測データと、ユーザの過去の動きを表す履歴データとを使用して、3D画像レンダリングを生成することができる。ユーザの位置及び/又は動きを予測する機能を有することにより、CPU124は、改善された効率及び低減された待ち時間(例えば、ネットワーク待ち時間を低減する)で3Dシミュレーション画像を再レンダリングすることができる。
【0023】
いくつかの実施形態では、CPU124は、VR技術及び3D投影技術を使用してリアルタイムでシミュレートされた環境を提供することに関連する機能を実行するために、その上に存在する他のハードウェア及び/又はソフトウェアモジュール(本明細書では説明しない)を有することができる。CPU124は、プロジェクタ124、複数のセンサ126、及びVRD120の他のコンポーネントを含む単一の装置に物理的に統合されているように示されているが、この構成は限定を意図するものではない。いくつかの実施形態では、CPU124は、VRD120の他の要素から物理的に分離される一方で、プロジェクタ122及び複数のセンサ126と協調して通信(例えば、通信ネットワーク又は物理的コネクタによって通信可能に結合される)及び機能し続け、本明細書で説明する特徴及び機能を実行する、物理的スタンドアロンコンポーネントであってもよい。
【0024】
更に、
図1は、VRD120が複数のセンサ126を含むことができることを示している。一実施形態では、センサ126は、後ろ向きカメラとして実装することができる。即ち、複数のセンサ126は、VRD120の背後に立つユーザ150の方向に向けられたカメラであり得る。複数のセンサ126内の各個々のセンサを、独立した位置及び視野を有するように配置することができる。集合的に、複数のセンサ126の各々の独立した視野の集合体は、投影面130とユーザ150との間の離隔距離を包含する空間の体積に対して、より大きな検出フィールドを形成することができる。いくつかの実施形態では、複数のセンサ126は単一の3D座標系に位置合わせされ、これにより、センサは、現実世界(検出フィールド128内)のユーザ150に対応する位置、動き、及び深度値を検出することが可能になり、最終的には、VR環境のレンダリングが、ユーザ150の視点における空間的プレゼンスのために較正されることを可能にする。例えば、複数のセンサ126は、ユーザ150の身体の位置及び向き、特に頭の位置及び向きを検出し、更なる処理及び/又は分析のために、この情報をCPU124などのVRD120の他のコンポーネントに中継することができる。
【0025】
いくつかの実施形態では、複数のセンサ126を使用して、VR環境内の仮想オブジェクトの相互作用及び制御に関するユーザ150の動きをキャプチャすることができる。例えば、ユーザがリアルタイムで様々な仮想オブジェクトを感知及び制御することを可能にする方法で、センサ126を利用することができる。これにより、VR環境は、更に、センサ126によって検出されたユーザの入力に対するインタラクティブ応答(例えば、シーンの変更)及び/又はフィードバックを含むことが可能になる。システム100は、ジェスチャインタラクティブ技術、ジェスチャインタラクティブ入力装置、及びジェスチャインタラクティブ認識技術をサポートするために複数のセンサ126を使用することができる。
【0026】
いくつかの実施形態では、複数のセンサ126は、ユーザの位置及び/又は動きを検出するだけでなく、シミュレーション中に検出フィールド126内に存在する可能性のある他のオブジェクト及びユーザも検出するために含まれ得る。これにより、他のユーザをシミュレーションの中に描写したり、拡張現実(AR)をサポートして周囲の現実のオブジェクトをシミュレーションの中にモデル化したり、シミュレーションの態様を周囲のオブジェクトに投影したりするなど、システム100の様々な追加の特徴を実現することができる。複数のセンサ126は、例えば、ソナー、超音波距離センサ、レーダ、光検出及び測距(LIDAR)、ならびにカメラ又は他の画像センサなど、周囲環境内の位置及び/又は動きを検出する機能を有する様々なタイプのセンサとして実装され得る。いくつかの実施形態では、カメラは、高ダイナミックレンジ(HDR)カメラ又は赤外線(IR)カメラであり得る。したがって、複数のセンサ126は、ユーザ150の位置データ及び/又は動きデータを取得及び/又は感知するように構成され得る。例えば、複数のセンサ126は、検出フィールド128の少なくとも一部におけるオブジェクト、このようなユーザ及び/又はオブジェクトに関する情報/データを検出し、定量化し、及び/又は感知するように構成され得る。上述したように、複数のセンサ126は、静止オブジェクト及び/又は動的オブジェクトであり得るユーザ及びオブジェクトを検出することができる。更に、複数のセンサ126は、検出フィールド128内にあり得る他の空間的又は環境的特性を検出、測定、定量化及び/又は感知するように構成され得る。
【0027】
また、
図1は、VRD120がプロジェクタ122を含むことができることを示している。プロジェクタ122は、投影面130などの投影画像の表示専用の面に、ルームスケールVRをサポートする方法で多次元(3D)画像を課す(impose)ための発光機能を有するハードウェア装置として説明され得る。いくつかの実施形態では、プロジェクタ122は、VR技術に適した高解像度、高画質、及び高い3Dステレオ順応性をサポートする立体プロジェクタとして実装される。プロジェクタ122は、レーザ投影などの他のタイプの既知の投影技術を使用して実装され得る。動作中、プロジェクタ122は、CPU124からレンダリングされた3D画像コンテンツを受信する。次に、VRD120は、これらのレンダリングされた3D画像及び/又はグラフィックスを多次元効果で投影面120に投影して、ユーザ150の没入体験及びインタラクティブ体験を含むVR環境を作り出すことができる。プロジェクタ122は、少なくとも1つの投影ポートと、3D画像を光学的に投影するための光学系とを含むことができる。実施形態によれば、プロジェクタ122は、特に、多次元画像を投影面130に課すことができるように、3D投影及びVR投影機能を可能にするように構成される。前述したように、VRD120の3D投影及びVR投影機能を活用して、VR環境(又はシミュレーション)を空間(例えば、部屋)の体積内でユーザ150が体験できるようにすることが、システム100の重要な態様である。いくつかの実施形態では、プロジェクタ122は、例えば、シミュレーションに複合現実感及び/又はAR効果を提供するなど、他のタイプのシミュレーション及び没入技術に従って投影することができる。
【0028】
例示の目的のために、
図1に示す例示的な環境は、屋内の部屋であり得、システム100は、3D画像を投影して最終的にルームスケールVRを提供するように実装され得る。
図1は、射撃訓練に使用できるVR環境の一例を示しており、投影画像132は射撃場(複数の標的を含む)である。場合によっては、仮想環境は、デザイナによって考案された風景であり得、実際のシーンを再現したものであり得る。VRD120は、一般に、ユーザ150と投影面130(この例では壁であってもよい)との間に配置される。前述したように、投影面130は、ユーザ150から離れた距離に配置される。VRD120は、一般的に言えば、ユーザ150とVRD120との間のこの離隔距離内の任意の位置に設定され得る。例示的な動作では、ユーザ150が検出フィールド120内を移動すると、ユーザの身体の位置と向き、特に、ユーザ150の頭の位置と向きが複数のセンサ126によってキャプチャされ、処理のためにCPU124に中継され得る。
【0029】
VRD120は、複数のセンサ126によって得られたこの位置データを使用することができ、VR環境がどのように提示されるかに関連してユーザ150の位置を考慮した、投影画像132として示される3D画像を投影面130上にレンダリングする。このようにして、ユーザ150が検出フィールド128内を移動すると、VRD120は、例えば、ユーザが検出フィールド128内を移動して、投影面130上に投影されているVRシミュレーション内のオブジェクトの背後又は周囲を見ることができるように、知覚された奥行きを有するシミュレートされた3D表現を模倣する方法で、投影画像132を動的に再レンダリングすることができる。
【0030】
一例として、ユーザ150の頭が左を向いている場合、例示的なVR環境のグラフィックスは、この動きを検出し、それに応じて反応することができ、例えば、投影画像132のレンダリングを調整して、中央のターゲットをより画面の右に移動させる。したがって、開示されたシステム100の3D投影及び3Dレンダリング機能により、部屋の空いている領域内に没入型VR環境を提供する方法で、多次元(例えば、3D)画像及びグラフィックスのレンダリングを制御された方法で部屋内に投影することが可能になり得る。
【0031】
開示された様々な実施形態によれば、VRD120を含むシステム100は、視覚、聴覚、及び触覚の知覚に関連する様々なタイプのインタラクティブ活動を生成することによって、ユーザに没入体験を提供することができる。VRヘッドセット及びデータグローブなどの専門機器により、ユーザは、リアルタイムで様々な仮想オブジェクトを感知し、制御することが可能になり、現実世界では得られない体験を作り出し、リアルな反応やフィードバックを生み出す。
【0032】
図2は、第1のVRD120a及び第2のVRD120bとして示される2つのVRDを実装して、複数の遠隔地にいるユーザを共有VR環境に同時に没入させることができる例示的な環境200を示す。言い換えれば、例示的な環境200は、それぞれの場所のそれぞれに配置された複数の「仮想ウィンドウ」を介して、異なる場所にいる複数のユーザに、共有VR環境が提示され得るように構成される。
図2は、主に、
図1を参照して上述したのと同じ構造及び機能を含む。したがって、簡潔にするために、
図2に関してシステム及びそれぞれのVRD120a、120bの詳細については再度説明しない。
【0033】
環境200は、複数のユーザに共有VR環境を提示するために利用され得る第1のVRD120a及び第2のVRD120bを含み、VRD120a、120b及びユーザ150a、150bは別個の物理環境に配置され得るので、
図2の構成は
図1とは異なる。
図2のこの構成は、様々な実世界での応用において有利になる可能性があり、この場合、(地理的に分散している可能性のある)ユーザグループが同時に体験できるシミュレーションが役に立つ。例えば、
図2に示す構成は、シミュレートされたフォースオンフォース戦闘訓練を実現するために使用することができ、この場合、戦闘シミュレーションに参加している他のユーザは、遠隔VRDによって投影される3Dグラフィックスに含められ得る。
【0034】
図2に戻って参照すると、第1のVRD120aは、第1のユーザ150aが物理的に存在する建物内の部屋などの第1の物理的位置260aにセットアップすることができ、第2のVRD120bは、第2のユーザ150bが物理的に存在する建物の異なるフロアにある別の部屋などの第2の物理的位置260bにセットアップすることができる。この構成では、複数のユーザ150a及び150bは、互いに対して離れて位置することができ、一方、それぞれの投影面120a、120b上に提示される3D画像及び/又はグラフィックスは、共有シミュレーションを作り出す。
【0035】
一実施形態では、VRD120a、120bのそれぞれは、共有シミュレーションを可能にするようにプログラムすることができる。例えば、第1のVRD120aによって実装される「共有シミュレーション」特徴を有効にすることができ、これにより、第1のVRD120aは、共有シミュレーションに参加することが有効になっている他の遠隔配置されたVRD、例えば、第2のVRD120b、を認識することができる。その後、有効化されたVRD120a、120bは通信可能に結合され得、これらの装置はデータを送信及び/又は受信することができる。特に、それぞれの位置に配置されたVRD120a、120bによって別個にキャプチャされ得るユーザ150a、150bに対応する位置データは、遠隔VRDに通信され得る。例えば、第1のVRD120aは、その特定の物理的位置でユーザ150aの位置データをキャプチャし、次いで、キャプチャされた位置データを遠隔に位置するVRD、この例では第2のVRD120bに送信することができる。結果として、VRD120a、120bの両方は、各ユーザ150a、150aの位置データを取得して分析することができ、更に、これらの装置は、ユーザ120a及び120bが同時に体験することができる共有VR環境を作り出すために必要な情報を有する。
図2は、各ユーザ150a、150bに提示される共有VR環境が、実質的に同じ3D画像のレンダリングを含むことを示すのに役立つ。図示のように、ユーザ120aの視界内にある投影面130aに投影される3Dレンダリングは、ユーザ120bの視界内にある投影面130bに投影されるのと同じ仮想射撃場を描写する。しかしながら、VRD120a、120bは、それぞれの3Dレンダリングを調整して、別個の物理環境で共有シミュレーションに参加している他のユーザの視覚表現を含めるようにしている。この機能を説明するために、第1の位置で投影面130aに投影される3D画像は、ユーザ120bの存在をシミュレートするように、特別にレンダリングされている。図に示すように、ユーザ120bは、VR環境と相互作用している間のフィールドにおける物理的な位置に関して、共有シミュレーションにおいて空間的にモデル化されている。例えば、ユーザ120bは、第2の位置260bで検出フィールドの右側に立っている。それに応答して、VRD120aは、投影面130aに課される3D画像をレンダリングして、VR環境のほぼ右側にユーザ150bの表現を示すことができる。代替的に、VRD120bは、投影面130bに課される3D画像をレンダリングして、一般にVR環境の左側にいるユーザ120aの表現を示すことができる(ユーザ120aは、第1の位置260aで検出フィールドの右側に立っている)。
図2は、開示されたシステムの1つの例示的な構成であり、図に示されていない他の構成を利用して、本明細書に開示されているように様々な数のVRD及びユーザを含むように拡張及び/又はスケーリングする方法で、共有シミュレーション機能をサポートすることができることを理解されたい。
【0036】
ここで、開示された投影されたVR環境特徴の更なる詳細について、
図3を参照して説明するが、
図3は、本明細書で説明するシステム及び方法の一実施形態によるプロセス300の一例を示す。
図3に見られるように、プロセス300は、ハードウェアプロセッサ304によって実行される機械可読記憶媒体306内の一連の実行可能な動作として示されている。コンピューティングコンポーネント302は、前述したように、VR投影及びVRレンダリング機能を実装するVRD(
図1に示す)であり得る。
【0037】
動作305において、ユーザに関連する位置データの処理を実行することができる。いくつかの実施形態では、処理は、1つ又は複数のプロセッサ、例えば(
図1に示す)VRDのCPUによって実行することができる。位置データは、検出フィールド内のユーザの現在位置を表すことができる。検出フィールドは、投影面とユーザとの間の離隔距離を包含する空間領域に関して、複数のセンサによって形成することができる。動作305で処理された位置データについては、例えば、カメラとして実装された複数のセンサでキャプチャしてもよい。
【0038】
次に、動作310において、処理された位置データを使用するコンピュータシミュレーション環境をレンダリングすることができる。いくつかの実施形態では、レンダリングは、1つ又は複数のプロセッサ、例えば(
図1に示す)VRDのCPUによって実行され得る。コンピュータシミュレーション環境は、多次元(3D)画像及び/又はグラフィックスで構成され得、シミュレーション環境は、ユーザにとって没入型かつインタラクティブなVR環境として実装される。更に、動作310において実行されるレンダリングは、ユーザの現在位置に対して奥行き知覚を有する方法でコンピュータシミュレーション環境を生成することを含むことができる。このようにして、ユーザが検出フィールド内を移動すると、コンピュータシミュレーション環境がレンダリングされ、知覚された奥行きを有するシミュレーションされた3D表現を模倣することができる。更に、動作310において、コンピュータシミュレーション環境は、環境の視点が検出フィールド内のユーザの現在位置を基準にするようにレンダリングすることができる。即ち、ユーザが検出フィールド内を移動すると、コンピュータシミュレーション環境は、ユーザの移動に従って反応するように再レンダリングされ得る。
【0039】
前の動作310において、コンピュータシミュレーション環境がレンダリングされた後、プロセス300は、動作315に進むことができ、レンダリングを投影面に投影することができる。実施形態によれば、投影面は、例えば、ユーザが部屋空間の体積内でVR環境に没入するルームスケールVRをサポートする方法で、ユーザから離れた距離に配置され得る。
【0040】
ここで、共有シミュレーション特徴の更なる詳細を、
図4を参照して説明するが、
図4は、本明細書で説明するシステム及び方法の一実施形態によるプロセス400の一例を示す。
図4に見られるように、プロセス400は、ハードウェアプロセッサ404によって実行される機械可読記憶媒体406内の一連の実行可能な動作として示されている。コンピューティングコンポーネント402は、前述したように、VR投影及びVRレンダリング機能を実装するVRD(
図1に示す)であり得る。一般に、いくつかの実施形態によれば、プロセス400は遠隔に位置する複数のユーザに同時に提示可能なVR環境などの共有シミュレーションの投影を実施する。
【0041】
プロセス400は、動作405において開始することができる。動作405は、2つ以上のプロジェクタ装置を有効にすることを含むことができる。実施形態によれば、プロジェクタ装置は、(
図2に示す)VRDとして実装され得る。プロジェクタ装置を共有シミュレーション用に有効にすることにより、各装置を他の装置に通信可能に結合することができ、位置データなどの情報をプロジェクタ装置間で通信可能に結合され得る。したがって、動作405は、各ユーザの現在位置を表す別個の物理環境における各ユーザの位置データを受信することを含むことができる。別個の物理環境における各ユーザの位置データは、例えばVRD(
図1に示す)に実装された複数のセンサを使用して、それぞれのプロジェクタ装置によってキャプチャされ得る。2つ以上のプロジェクタ装置のそれぞれは、別個の物理環境に配置することができ、各別個の物理環境は、それぞれのプロジェクタ装置の視界に入るユーザを含むことができる。
【0042】
その後、ステップ410は、2つ以上のプロジェクタ装置を使用して共同コンピュータシミュレーション環境を作り出すことを含むことができる。共同コンピュータシミュレーション環境は、別個の物理環境における各ユーザの視覚的表現を含む3D画像レンダリングを含むように生成することができる。
【0043】
その後、プロセス400は動作415に進むことができる。動作415において、共有コンピュータシミュレーション環境を2つ以上の投影面に投影することができ、2つ以上の投影面のそれぞれは、それぞれのユーザの視界に入る別個の物理環境にそれぞれ配置される。したがって、遠隔地で共有コンピュータシミュレーション環境に参加している他のユーザを、ユーザに提示される特定の3Dレンダリングでモデル化することができる。
【0044】
図5は、本明細書で説明するVR投影及びVRレンダリング機能を実装し得る例示的なコンピュータシステム500のブロック図を示す。例えば、コンピュータシステム500は、
図1に示すように、VRDのCPUを実装するために使用され得る。コンピュータシステム500は、情報を通信するためのバス502又は他の通信機構と、情報を処理するためにバス502に結合された1つ又は複数のハードウェアプロセッサ504とを含む。ハードウェアプロセッサ504は、例えば、1つ又は複数の汎用マイクロプロセッサであってもよい。
【0045】
コンピュータシステム500はまた、プロセッサ504によって実行される情報及び命令を記憶するために、バス502に結合されたランダムアクセスメモリ(RAM)、キャッシュ及び/又は他の動的記憶装置などのメインメモリ508を含む。メインメモリ508はまた、プロセッサ504によって実行される命令の実行中に一時変数又は他の中間情報を記憶するために使用されてもよい。このような命令は、プロセッサ504にアクセス可能な記憶媒体に記憶されると、コンピュータシステム500を、命令で指定された動作を実行するようにカスタマイズされた専用マシン状態にする。本明細書で説明する様々な命令によって提供される機能性の説明は、例示を目的としており、どの命令も説明されている以上の又はそれ以下の機能性を提供する可能性があるため、限定することを意図したものではない。例えば、1つ又は複数の命令を排除してもよく、その機能の一部又は全部を他の命令によって提供してもよい。別の例として、プロセッサ504を、本明細書において命令のうちの1つに起因する機能の一部又は全部を実行し得る1つ又は複数の追加の命令によってプログラムしてもよい。
【0046】
コンピュータシステム500は、記憶装置510を更に含む。高度アナリティクス需要予測技術を含む本明細書で説明する様々な命令を記憶装置510に記憶することができ、この記憶装置は、読み出し専用メモリ(ROM)、及び/又はプロセッサ504のための静的な情報及び命令を記憶するためのバス502に結合された他の静的記憶装置を含んでもよい。磁気ディスク、光ディスク、又はUSBサムドライブ(フラッシュドライブ)などの記憶装置510が提供され、情報及び命令を記憶するためにバス502に結合される。記憶装置510は、プロセッサ504によって実行されるコンピュータプログラム命令(例えば、前述の命令)、ならびにプロセッサ504によって操作され得るデータを記憶してもよい。記憶装置は、コンピュータ実行可能命令及び/又はデータを記憶するためのフロッピーディスク、ハードディスク、光ディスク、テープ、又は他の物理記憶媒体などの1つ又は複数の非一時的機械可読記憶媒体を備えてもよい。
【0047】
コンピュータシステム500は、コンピュータユーザに情報を表示するために、バス502を介して液晶ディスプレイ(LCD)(又はタッチスクリーン)などのディスプレイ512に結合されてもよい。英数字及び他のキーを含む入力装置514は、情報及びコマンド選択をプロセッサ504に通信するためにバス502に結合される。別のタイプのユーザ入力装置は、方向情報及びコマンド選択をプロセッサ504に通信し、ディスプレイ512上のカーソル移動を制御するための、マウス、トラックボール、又はカーソル方向キーなどのカーソル制御装置516である。いくつかの実施形態では、カーソル制御と同じ方向情報及びコマンド選択は、カーソルなしでタッチスクリーン上のタッチを受信することによって実装され得る。
【0048】
コンピューティングシステム500は、コンピューティング装置によって実行される実行可能ソフトウェアコードとして大容量記憶装置に記憶され得るGUIを実装するためのユーザインタフェースモジュールを含み得る。このモジュール及び他のモジュールには、例として、ソフトウェアコンポーネント、オブジェクト指向ソフトウェアコンポーネント、クラスコンポーネント及びタスクコンポーネントなどのコンポーネント、プロセス、機能、属性、手順、サブルーチン、プログラムコードのセグメント、ドライバ、ファームウェア、マイクロコード、回路、データ、データベース、データ構造、テーブル、アレイ、及び変数などがある。
【0049】
一般に、本明細書で使用される「コンポーネント」、「エンジン」、「システム」、「データベース」、「データ記憶」などの単語は、ハードウェアもしくはファームウェアに具現化されたロジック、又は、例えばJava、C又はC++.などのプログラミング言語で記述された、場合によっては入口点及び出口点を有するソフトウェア命令の集合体を指すことができる。ソフトウェアコンポーネントは、コンパイルされて実行可能プログラムにリンクされたり、動的リンクライブラリにインストールされたり、又は、例えばBASIC、Perl、又はPythonなどのインタプリタ型プログラミング言語で記述されたりしてもよい。ソフトウェアコンポーネントは、他のコンポーネント又はそれ自体から呼び出し可能であり、及び/又は検出されたイベント又は割込みに応答して呼び出され得ることが理解されよう。コンピューティング装置上で実行するように構成されたソフトウェアコンポーネントは、コンパクトディスク、デジタルビデオディスク、フラッシュドライブ、磁気ディスク、又はその他の任意の有形媒体などのコンピュータ可読媒体、又はデジタルダウンロードとして提供される場合がある(実行前にインストール、解凍、又は復号化を必要とする圧縮形式又はインストール可能な形式で元々格納されている場合がある)。このようなソフトウェアコードは、コンピューティング装置による実行のために、実行中のコンピューティング装置のメモリ装置上に部分的又は完全に記憶され得る。ソフトウェア命令は、EPROMなどのファームウェアに埋め込まれ得る。ハードウェアコンポーネントは、ゲートやフリップフロップなどの接続された論理ユニットで構成されてもよく、及び/又はプログラマブルゲートアレイ又はプロセッサなどのプログラマブルユニットで構成されてもよいことが更に理解されよう。
【0050】
コンピュータシステム500は、カスタマイズされたハードワイヤードロジック、1つ又は複数のASIC又はFPGA、コンピュータシステムと組み合わせてコンピュータシステム500を専用マシンにするか、専用マシンとしてプログラムするファームウェア及び/又はプログラムロジックを使用して、本明細書に記載の技術を実装し得る。一実施形態によれば、本明細書の技術は、メインメモリ508に含まれる1つ又は複数の命令の1つ又は複数のシーケンスを実行するプロセッサ504に応答して、コンピュータシステム500によって実行される。このような命令は、記憶装置510などの別の記憶媒体からメインメモリ408に読み込まれてもよい。メインメモリ508に含まれる命令シーケンスの実行により、プロセッサ504は、本明細書で説明するプロセスステップを実行する。代替的な実施形態では、ハードワイヤード回路を、ソフトウェア命令の代わりに、又はソフトウェア命令と組み合わせて使用してもよい。
【0051】
本明細書で使用する用語「非一時的媒体」及び類似の用語は、機械を特定の方法で動作させるデータ及び/又は命令を記憶するあらゆる媒体を指す。このような非一時的媒体は、不揮発性媒体及び/又は揮発性媒体を含み得る。不揮発性媒体は、例えば、記憶装置510などの光ディスク又は磁気ディスクを含む。揮発性媒体は、メインメモリ508などの動的メモリを含む。一般的な形態の非一時的媒体は、例えば、フロッピーディスク、フレキシブルディスク、ハードディスク、ソリッドステートドライブ、磁気テープ、又はその他の磁気データ記憶媒体、CD-ROM、その他の光学データ記憶媒体、穴のパターンを有する任意の物理媒体、RAM、PROM、及びEPROM、FLASH-EPROM、NVRAM、その他のメモリチップ又はカートリッジ、ならびにそれらのネットワークバージョンを含む。
【0052】
非一時的媒体は、伝送媒体とは異なるが、伝送媒体と共に使用され得る。伝送媒体は、非一時的媒体間での情報転送に関与する。例えば、伝送媒体は、バス502を備えるワイヤを含む、同軸ケーブル、銅線、及び光ファイバを含む。伝送媒体はまた、電波及び赤外線データ通信中に生成されるものなどの音響波又は光波の形態をとることができる。
【0053】
コンピュータシステム500はまた、バス502に結合された通信インタフェース518を含む。ネットワークインタフェース518は、1つ又は複数のローカルネットワークに接続された1つ又は複数のネットワークリンクに結合する双方向データ通信を提供する。例えば、通信インタフェース518は、対応するタイプの電話回線にデータ通信接続を提供するための統合サービスデジタルネットワーク(ISDN)カード、ケーブルモデム、衛星モデム、又はモデムであってもよい。別の例として、ネットワークインタフェース518は、ネットワークにデータ通信接続を提供するためのローカルエリアネットワーク(LAN)カードであってもよく、これは、例えば、インターネット、イントラネット、PAN(パーソナルエリアネットワーク)、LAN(ローカルエリアネットワーク)、WAN(ワイドエリアネットワーク)、SAN(ストレージエリアネットワーク)、MAN(メトロポリタンエリアネットワーク)、無線ネットワーク、セルラー通信ネットワーク、公衆交換電話網、及び/又は他のネットワークのうちの任意の1つ又は複数を含んでもよい。無線リンクも実装され得る。任意のこのような実装形態では、ネットワークインタフェース518は、様々なタイプの情報を表すデジタルデータストリームを搬送する電気信号、電磁信号、又は光信号を送受信する。本明細書で開示される分散型モデル構築システムのノードは、上記のネットワークを介して他の参加者ノードに結合され得る。
【0054】
ネットワークリンクは、通常、1つ又は複数のネットワークを介して他のデータ装置にデータ通信を提供する。例えば、ネットワークリンクは、ローカルネットワークを介してホストコンピュータ又はインターネットサービスプロバイダ(ISP)によって運営されるデータ機器に接続を提供し得る。ISPは、現在、一般に「インターネット」と呼ばれている世界規模のパケットデータ通信ネットワークを介してデータ通信サービスを提供する。ローカルネットワーク及びインターネットの両方は、デジタルデータストリームを伝送する電気信号、電磁信号、又は光信号を使用する。様々なネットワークを介した信号、ならびにコンピュータシステム500との間でデジタルデータを伝送するネットワークリンク及び通信インタフェース518を介した信号は、伝送媒体の例示的な形態である。
【0055】
コンピュータシステム500は、ネットワーク、ネットワークリンク及び通信インタフェース518を介して、メッセージを送信し、プログラムコードを含むデータを受信することができる。インターネットの例では、サーバは、インターネット、ISP、ローカルネットワーク、及び通信インタフェース518を介して、アプリケーションプログラムの要求コードを送信する可能性がある。
【0056】
受信されたコードは、受信されたときにプロセッサ504で実行してもよく、及び/又は後の実行のために記憶装置510又は他の不揮発性記憶装置に記憶してもよい。
【0057】
前のセクションで説明した
図3及び
図4(及び他の作図)に示される様々なプロセス、方法、動作及び/又はデータフローは、コンピュータハードウェアで構成される1つ又は複数のコンピュータシステム又はコンピュータプロセッサによって実行されるコードコンポーネントで具現化され、完全に又は部分的に自動化され得る。プロセス及びアルゴリズムは、部分的又は全体的に特定用途向け回路に実装されてもよい。上述した様々な特徴及びプロセスは、互いに独立して使用されてもよく、又は様々な方法で組み合わされてもよい。異なる組合せや部分的な組合せは、本開示の範囲内に入ることが意図されており、いくつかの実装形態では、特定の方法又はプロセスブロックは省略され得る。本明細書で説明する方法及びプロセスはまた、いかなる特定の順序にも限定されず、それに関連するブロック又は状態は、適切な他の順序で実行することができ、又は並行して実行することができ、又は他の何らかの方法で実行することができる。ブロック又は状態は、開示された例示的な実施形態に追加又は削除されてもよい。特定の動作又はプロセスの実行は、コンピュータシステム間又はコンピュータプロセッサ間で分散される場合があり、単一のマシン内に存在するだけでなく、多数のマシンにまたがって展開される場合がある。
【0058】
本明細書で使用される場合、回路は、任意の形態のハードウェア、ソフトウェア、又はこれらの組合せを利用して実装される可能性がある。例えば、1つ又は複数のプロセッサ、コントローラ、ASIC、PLA、PAL、CPLD、FPGA、論理コンポーネント、ソフトウェアルーチン又は他の機構が、回路を構成するために実装される可能性がある。実装において、本明細書で説明する様々な回路は、個別の回路として実装される可能性があり、又は説明した機能及び特徴を1つ又は複数の回路間で部分的又は全体的に共有することができる。機能性の様々な特徴又は要素を個別に説明又は別個の回路として特許請求されることがあっても、これらの特徴や機能性は、1つ又は複数の共通の回路間で共有されることができ、このような説明は、このような特徴や機能性を実装するために別個の回路が必要であることを要求したり、示唆したりしてはならない。回路がソフトウェアを使用して全体的又は部分的に実装される場合、このようなソフトウェアは、コンピュータシステム500など、それに関して説明した機能性を実行することができるコンピューティングシステムや処理システムで動作するように実装され得る。
【0059】
開示された技術の様々な実施形態について上述してきたが、これらはほんの例示として提示されたものであり、限定するものではないことを理解されたい。同様に、様々な図は、開示された技術の例示的なアーキテクチャ又は他の構成を示すことができ、これは、開示された技術に含まれ得る特徴及び機能性の理解を助けるために行われる。開示された技術は、図示された例示的なアーキテクチャ又は構成に限定されるものではないが、様々な代替アーキテクチャ及び構成を使用して所望の特徴を実装することができる。実際、本明細書で開示される技術の所望の特徴を実装するために、代替の機能的、論理的、又は物理的な区分及び構成をどのように実装できるかは、当業者には明らかであろう。また、本明細書に示されているもの以外の多数の異なる構成モジュール名を様々な区分に適用することができる。更に、フロー図、動作説明、及び方法の特許請求の範囲に関して、本明細書で提示するステップの順序は、文脈上別段の指示がない限り、様々な実施形態が、列挙された機能性を同じ順序で実行するように実装することを強制するものではない。
【0060】
開示された技術は、様々な例示的な実施形態及び実装形態に関して上で説明されているが、それぞれの実施形態のうちの1つ又は複数で説明された様々な特徴、態様及び機能性は、それらが説明されている特定の実施形態への適用性において限定されるものではないが、代わりに、このような実施形態が説明されるか否か、及びこのような特徴が説明された実施形態の一部として提示されるか否かにかかわらず、開示された技術の他の実施形態のうちの1つ又は複数に、単独で又は様々に組み合わせて適用することができることを理解されたい。したがって、本明細書に開示される技術の幅及び範囲は、上述の例示的な実施形態のいずれによっても限定されるべきではない。
【0061】
本明細書で使用される場合、「又は」という用語は、包括的又は排他的な意味で解釈され得る。更に、単数形でのリソース、動作、又は構造に関する説明は、複数形を排除するものと解釈すべきではない。特に、「できる」、「あり得る」、「可能性がある」、又は「してもよい」などの条件付き言語は、特に明記されていない限り、又は使用される文脈内で他の意味で理解されない限り、一般に、特定の実施形態が特定の特徴、要素、及び/又はステップを含み、他の実施形態は含まないことを伝えることを意図している。
【0062】
本明細書で使用される用語及び語句、ならびにそれらの変形は、特に明示的に述べられていない限り、限定ではなくオープンエンドとして解釈されるべきである。「従来の」、「伝統的な」、「通常の」、「標準的な」、「既知の」、及び類似の意味を持つ用語などの形容詞は、説明された品目を所与の期間、又は所与の時点で利用可能な品目に限定すると解釈されるべきではないが、代わりに、現在又は将来の任意の時点で利用可能又は既知である可能性のある、従来の、伝統的な、通常の、又は標準的な技術を包含すると解釈されるべきである。ある場合において、「1つ又は複数」、「少なくとも」、「しかしこれに限定されない」、又はその他の類似の語句などの範囲を拡大する単語及び語句の存在は、このような範囲を拡大する語句が存在しない場合、より狭い場合が意図されているか又は要求されていることを意味すると解釈されるべきではない。
【0063】
ある場合において、「1つ又は複数」、「少なくとも」、「しかしこれに限定されない」、又はその他の類似の語句などの範囲を拡大する単語及び語句の存在は、このような範囲を拡大する語句が存在しない場合、より狭い場合が意図されているか又は要求されていることを意味すると解釈されるべきではない。「モジュール」という用語の使用は、モジュールの一部として説明又は主張されるコンポーネント又は機能性が、全て共通のパッケージ内に構成されることを意味するものではない。実際、モジュールの様々なコンポーネントのいずれか又は全ては、制御論理又は他のコンポーネントにかかわらず、単一のパッケージに組み合わせることができ、又は別個に維持することができ、更に複数のグループ又はパッケージに、又は複数の場所に分散させることができる。
【0064】
更に、本明細書に記載の様々な実施形態は、例示的なブロック図、フローチャート及びその他の図に関して説明されている。本明細書を読めば当業者には明らかになるように、図示した実施形態及びそれらの様々な代替形態は、図示した例に限定されることなく実装することができる。例えば、ブロック図及びそれに付随する説明は、特定のアーキテクチャ又は構成を強制するものとして解釈されるべきではない。
【国際調査報告】