(57)【特許請求の範囲】
【請求項１】
現実の３Ｄシーンの表現に重ねられる少なくとも１つの動的仮想コンテンツを生成するデバイスであって、前記少なくとも１つの動的仮想コンテンツは、少なくとも１つのシナリオのランタイム前に規定されかつ少なくとも１つの現実世界の制約を含む前記少なくとも１つのシナリオに準拠しており、前記デバイスは、
−前記現実の３Ｄシーンにおいてキャプチャされた現実世界の情報を受信するようになされた少なくとも１つの入力部と、
−前記現実世界の情報から特定された前記少なくとも１つの現実世界の制約の存在下で、前記ランタイム時に前記少なくとも１つのシナリオを実行するように構成された少なくとも１つのプロセッサとを備え、
前記少なくとも１つのプロセッサは、さらに、前記少なくとも１つの現実世界の制約が前記現実世界の情報から特定されないとき、前記少なくとも１つのシナリオを実行する前に、前記現実の３Ｄシーンの前記表現の、仮想適合された３Ｄシーンへの変形を、前記仮想適合された３Ｄシーンが前記少なくとも１つの制約を満たすように行い、前記現実の３Ｄシーンにおいて前記少なくとも１つのシナリオを実行する代わりに、前記現実の３Ｄシーンを置き換えている前記仮想適合された３Ｄシーンにおいて前記少なくとも１つのシナリオを実行するように構成されたことを特徴とする、デバイス。
【請求項２】
前記少なくとも１つの現実世界の制約が、少なくとも２つあり、かつ潜在的にインタラクトしており、前記少なくとも１つのプロセッサが、さらに、前記仮想適合された３Ｄシーンが前記少なくとも２つの制約を満たすように、前記少なくとも２つの現実世界の制約に対して合同で前記変形を行うように構成されたことを特徴とする、請求項１に記載のデバイス。
【請求項３】
前記少なくとも１つの現実世界の制約が、少なくとも２つあり、潜在的にインタラクトしており、かつ重要順にしたがってランク付けされており、前記少なくとも１つのプロセッサが、さらに、少なくとも１つの最優先ランクを有する前記少なくとも１つの現実世界の制約を優先して前記変形を行うように、かつ、前記少なくとも１つの最優先ランクを有する前記少なくとも１つの現実世界の制約とは異なる前記少なくとも１つの現実世界の制約がない状態で、前記ランタイム時に、前記少なくとも１つのシナリオを実行するように構成されたことを特徴とする、請求項１または２に記載のデバイス。
【請求項４】
前記少なくとも１つの制約が、少なくとも１つの現実世界のオブジェクトの存在を含み、前記少なくとも１つのプロセッサが、前記仮想適合された３Ｄシーンにおいて前記少なくとも１つの現実世界のオブジェクトの仮想表現を追加するように構成されたことを特徴とする、請求項１から３のいずれかに記載のデバイス。
【請求項５】
前記少なくとも１つの制約が、少なくとも１つの現実世界のオブジェクトの少なくとも１つの次元に関し、前記少なくとも１つのプロセッサが、前記少なくとも１つの次元に対する前記少なくとも１つの制約が満たされるように、前記仮想適合された３Ｄシーンにおいて前記少なくとも１つの現実世界のオブジェクトの前記少なくとも１つの次元の表現を修正するように構成されたことを特徴とする、請求項１から４のいずれかに記載のデバイス。
【請求項６】
前記少なくとも１つのプロセッサが、前記仮想適合された３Ｄシーンにおいて、前記少なくとも１つの制約が満たされるように、前記少なくとも１つの制約にとって不利である少なくとも１つの現実世界のオブジェクトの仮想表現を変形するように構成されたことを特徴とする、請求項１から５のいずれかに記載のデバイス。
【請求項７】
前記少なくとも１つのプロセッサが、前記仮想適合された３Ｄシーンにおいて前記少なくとも１つの現実世界のオブジェクトの削除、縮小、および移動のうちの少なくとも１つによって前記変形を行うように構成されたことを特徴とする、請求項６に記載のデバイス。
【請求項８】
前記少なくとも１つの制約が、少なくとも１つの現実世界のオブジェクトに関係し、前記少なくとも１つのプロセッサが、前記少なくとも１つの現実世界のオブジェクトに対する前記少なくとも１つの制約が満たされるように、前記少なくとも１つの現実世界のオブジェクトの移動、回転、変換、拡大縮小、複製のうちの少なくとも１つによって前記変形を行うように構成されたことを特徴とする、請求項１から７のいずれかに記載のデバイス。
【請求項９】
前記変形は、前記仮想適合された３Ｄシーンにおいて少なくとも１つのエリアをクリアアップすることを含み、前記少なくとも１つのプロセッサが、さらに、前記仮想適合された３Ｄシーンにおいて前記少なくとも１つのエリアを修復するように構成されたことを特徴とする、請求項１から８のいずれかに記載のデバイス。
【請求項１０】
前記少なくとも１つのプロセッサが、さらに、ユーザに、前記変形を行うことに明確に関与させるように構成されたことを特徴とする、請求項１から９のいずれかに記載のデバイス。
【請求項１１】
前記少なくとも１つの入力部がまた、前記少なくとも１つのシナリオを受信するようになされ、前記デバイスが、さらに、ユーザが、前記仮想適合された３Ｄシーンにおいて前記少なくとも１つのシナリオを視覚化するために、前記仮想適合された３Ｄシーンの表現の少なくとも一部を出力するようになされた少なくとも１つの出力部を備えることを特徴とする、請求項１から１０のいずれかに記載のデバイス。
【請求項１２】
装置であって、前記装置は、請求項１から１１のいずれかによるデバイスを備え、前記装置は、動画受信器、携帯電話、タブレット、および拡張現実用の頭部装着ディスプレイシステムから選択されることを特徴とする、装置。
【請求項１３】
現実の３Ｄシーンの表現に重ねられる少なくとも１つの動的仮想コンテンツを生成する方法であって、前記少なくとも１つの動的仮想コンテンツは、少なくとも１つのシナリオのランタイム前に規定されかつ少なくとも１つの現実世界の制約を含む前記少なくとも１つのシナリオに準拠しており、前記方法は、
−前記現実の３Ｄシーンにおいてキャプチャされた現実世界の情報を受信することと、
−前記現実世界の情報から特定された前記少なくとも１つの現実世界の制約の存在下で、前記ランタイム時に前記少なくとも１つのシナリオを実行することとを含み、
前記方法が、さらに、前記少なくとも１つの現実世界の制約が前記現実世界の情報から特定されないとき、前記少なくとも１つのシナリオを実行する前に、前記現実の３Ｄシーンの前記表現の、仮想適合された３Ｄシーンへの変形を、前記仮想適合された３Ｄシーンが前記少なくとも１つの制約を満たすように行い、前記現実の３Ｄシーンにおいて前記少なくとも１つのシナリオを実行する代わりに、前記現実の３Ｄシーンを置き換えている前記仮想適合された３Ｄシーンにおいて前記少なくとも１つのシナリオを実行することを含むことを特徴とする、方法。
【請求項１４】
請求項１〜１０のいずれか一項によるデバイスによって実行されることを特徴とする、請求項１３に記載の方法。
【請求項１５】
少なくとも１つの動的仮想コンテンツを生成するコンピュータプログラムであって、前記プログラムがプロセッサによって実行されると、請求項１３または１４に準拠する方法を行うようになされたソフトウェアコードを備える、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータによって生成された（ＣＧ）コンテンツが、単に現実世界のビューの上に重ね合わせられるのではなく、デジタルリアリティと物理的リアリティが途切れなく一体に混合するように、現実世界の環境と現実にインタラクトする、複合現実（ＭＲ）の分野に関する。
【背景技術】
【０００２】
拡張現実（ＡＲ）アプリケーションは、動画またはグラフィックスといったＣＧコンテンツによってその要素が拡張される現実世界の環境のライブビューを指す。ＭＲでは、ＣＧコンテンツは、さらに、現実世界の環境とインタラクトする。
【０００３】
ＡＲ／ＭＲアプリケーションでは、ビジュアルＣＧコンテンツは、現実世界のビューに所与の位置で挿入される。この位置は、一般に、事前定義されたビジュアル２Ｄ／３Ｄパターンに対して相対的に画定される（例えば産業用アプリケーションの場合）か、空間座標（例えば、屋外の場所に基づくアプリケーション）またはスクリーン座標（例えば、Ｇｏｏｇｌｅ  Ｇｌａｓｓアプリケーション）によって事前に決められるか、もしくはユーザによって手動で選択される（例えば、インタラクティブアプリケーション）かのいずれかである。
【０００４】
しかしながら、高度なアプリケーションでは、仮想シーンは、準備されたアニメ化コンテンツを含み得る。これは、単一面および減じられた占有体積に基づくアニメーション（例えば、キャラクタがその場で飛び跳ねる、または、ダンサーが回転する）から、インタラクションの可能性があるかつ複雑な軌跡を有するいくつかのキャラクタおよび／またはオブジェクトを含む様々な面に基づく複雑なシナリオによって構築されたアニメーション（例えば、キャラクタが初期位置から第２の位置まで面上を歩いてオブジェクトをつかむ、そしてそのキャラクタは方向を変えて、そのオブジェクトを別のオブジェクトの後ろに隠しにいく、そしてそのキャラクタは再度方向を変え、突然穴の中に落ちる）にまで及ぶ。
【０００５】
良いユーザ体験、没頭感、およびリアリズムのために、そうした複雑な仮想アニメ化コンテンツは、現実環境と空間的にインタラクトするべきである。すなわち、キャラクタが歩く面は、十分に大きいはずでありかつ十分に空いている場所を有する現実の平面、例えばテーブルであり得、遮っているオブジェクトは、テーブル上の現実のオブジェクトであり得、穴は、テーブルの境界に対応し得る、など。
【０００６】
アニメ化ＣＧコンテンツがアーティストによって生成されることは、この種の強い仮定および現実環境の形状に対する制約および現実要素の存在または非存在に基づく。しかしながら、現実環境が制御されない場合、そうした複雑なＭＲアニメーションを効率的にレンダリングすることは問題を含むことになる。例えば、水平な場所は、期待されるよりもかなり小さくまたはかなり大きくあり得、水平面は、多数のオブジェクトをその面上に有し得、その結果、欠落しているオクルージョンのような幾何学的収差なしでアニメーションを行うのに十分に空いている場所は残されていない。このシチュエーションは、さらに、アニメーションのセマンティック自体への疑問につながり得る。
【０００７】
既知の解決策は、仮想アニメーションを現実環境に適合させることからなる。これは、２つのステップ：上流で仮想アニメ化コンテンツを準備するときに、アニメーションをパラメータ化することによるステップと；その後の前処理ステップで、仮想コンテンツに適用される最適な位置、方位、およびスケールを計算するように、現実環境をスキャンしそのレイアウトを分析することによるステップとで構成され得る。
【０００８】
この点において柔軟に拡張された解決策が、Ｄａｑｒｉ  ＬＬＣに対する特許出願ＵＳ２０１５／０１８７１０８号において展開され、拡張現実のコンテンツは、ローカル環境の現実世界の空間形状の変化に適合される。より正確には、デバイスは、現実世界の空間形状の物理的な変化を、マッピングされた現実世界の空間形状に基づいて特定することができ、その物理的な変化に応じて仮想オブジェクトを修正することができる。そうした修正は、仮想オブジェクトのサイズ、形、位置、または挙動に関し得る。
【０００９】
しかしながら、そうした既存の解決策は、現実環境がアニメーションを効率的にレンダリングするのに十分な最低限の要件を含むことを保証しない。例えば、仮想キャラクタを歩かせるための水平面が欠落し得、または、現実オブジェクトが、キャラクタによってつかまれている仮想オブジェクトを隠し得る。
【００１０】
また、ＵＳ２０１５／０１８７１０８号に提案されるような仮想コンテンツを動的に適合させることは、所望のシナリオにとって不利であり得る。加えて、広範な現実のシチュエーションに適合されるのに十分に柔軟なシナリオを提供することは、著しい格納および計算リソースを要し得る。
【発明の概要】
【００１１】
本開示の目的は、著しい追加の格納または計算リソースを要せずに、広範な現実のシチュエーションへのＭＲシナリオの柔軟な適合を有利に可能とすることである。
【００１２】
好ましい実施形態では、したがって、様々な制約を有するいくつかのシナリオを、現実環境を根拠としてリアルタイムで実行することができる。
【００１３】
この点において、本開示の目的は、特に、現実の３Ｄシーンの表現に重ねられる少なくとも１つの動的仮想コンテンツを生成するデバイスであり、動的仮想コンテンツ（複数可）は、シナリオ（複数可）のランタイム前に規定されかつ少なくとも１つの現実世界の制約を含む少なくとも１つのシナリオに準拠している。デバイスは、
−現実の３Ｄシーンにおいてキャプチャされた現実世界の情報を受信するようになされた少なくとも１つの入力部と、
−現実世界の情報から特定された現実世界の制約（複数可）の存在下で、ランタイム時にシナリオ（複数可）を実行するように構成された少なくとも１つのプロセッサとを備える。
【００１４】
本開示によれば、少なくとも１つのプロセッサは、さらに、少なくとも１つの現実世界の制約が現実世界の情報から特定されないとき、シナリオ（複数可）を実行する前に、現実の３Ｄシーンの表現の、仮想適合された３Ｄシーンへの変形を、仮想適合された３Ｄシーンが制約（複数可）を満たすように行い、現実の３Ｄシーンにおいてシナリオ（複数可）を実行する代わりに、現実の３Ｄシーンを置き換えている仮想適合された３Ｄシーンにおいてシナリオ（複数可）を実行するように構成されている。
【００１５】
デバイスは、それによって、仮想適合された３Ｄシーン上の取得情報があたかも有効な現実の３Ｄシーンに関する情報であるかのように動作し、ある種の意図的なシステムのミスリーディングにつながるように有利に構成されている。すなわち、計画されたシナリオは、有利に、正常に実行され、現実世界の表現に適用されたいくつかの予備の仮想パッチを受け得る。
【００１６】
ＭＲシナリオは、環境の正確な知識がなくても、または、例えばテレビセットおよびＴＶが置かれているテーブルといった多種多様の様々な環境の場合さらなる正確さがなくても、上流で設計されていてもよいことに留意し得る。そして、適合は、有利に、それらのシナリオを使用可能とするように、実行場所においてローカルに達成される。
【００１７】
以下において、「適合された」または「完成した」環境または現実のシーン、もしくは、「移動された」または「変形された」現実のオブジェクトが参照されよう。便利および簡潔のために用いられるそれらの表現は、現実の３Ｄシーンが、シナリオの実行前に、その表現の関連変形を、仮想効果を介して受けることを意味するとして理解されるべきである。それらの仮想効果は、特に、加算、減算、色またはテクスチャの修正を含み得る。より一般には、それらは、リアリティの表現に対するアクションによって、ユーザによる現実の３Ｄシーンの知覚への任意の変化を備える。
【００１８】
そうした表現は、さらに、ユーザに対する任意の種類の表現を意味しており、それは、特に、透明または半透明ガラスを通すもの（直視型）であり得、もしくは、スクリーン上でユーザによって視覚化されている、現実の３Ｄシーンの画像をキャプチャするカメラの仲介によるもの（間接視型）であり得る。それらの技術は、当業者によく知られているので、本明細書ではさらに説明しない。
【００１９】
シナリオは、クリエータによって事前設計されたＣＧコンテンツアニメーションとして規定される。
【００２０】
現実の３Ｄシーンならびに仮想適合された３Ｄシーンの表現は、リアルタイムで行われることが好ましい。
【００２１】
既存の解決策とは異なり、かつ、仮想世界の、現実世界への適合を用いた当業者にとって驚くべきことに、本デバイスは、仮想シナリオの制約を満たすために、仮想修正を、あたかも現実世界に適用されたかのように人工的に導入する。適用された変形は実際のところ仮想世界のフィールドにとどまるが、それらは、所与のシナリオが実行される前に、現実世界に関連する制約に正常に従うように導入される。
【００２２】
ある実施形態では、現実の３Ｄシーンの表現の変形は、任意のシナリオランタイム前に、予備の調整ステージで行われる。
【００２３】
別の実施形態では、その表現の変形は、前のシナリオのランタイム中に行われ、１つ以上の次に続くシナリオにそなえる。この点において、２つ以上のシーンを備える所与のシナリオの異なる連続部分は、それらの連続部分の各々が少なくとも１つの各現実世界の制約と関連する限り、異なるシナリオとして見なされる場合があり得る。
【００２４】
拡張版では、シナリオの１つの部分から別の部分への推移は、現実の３Ｄシーンの変化（例えば、現実のオブジェクトが環境において削除される）によって引き起こされる。これは、シナリオが両方の部分において同様の特徴および現実世界の制約を備えるが、制約の少なくとも１つが、ランタイム中に修正される現実の３Ｄシーンの特異性に依存する場合をも有利に含む。そして、その変化は、先に開示したように、ＭＲ処理の枠内で現実の３Ｄシーンの知覚をだますことを手段として、仮想適合された３Ｄシーンにおいて関係する制約（複数可）を満たすことによって考慮に入れることができる。そして、変化に追尾するシナリオの一部は、それ自体が「シナリオ」と見なされる。
【００２５】
現実の３Ｄシーンにおいてキャプチャされた現実世界の情報は、環境のスキャンから取得される点群または３Ｄモデルを有利に備える。また、少なくとも１つのプロセッサは、特に現実の３Ｄシーンに存在するオブジェクトおよびそれらの種類、位置、サイズ、および形の一部または全て、ならびに空いている平面エリアを特定するといった、環境特異性を判定するように有利に構成されている。また、ＭＲアプリケーション要件（特に要素または空いている平面エリアに関係し得る現実世界の制約）を分析しかつ環境がそれらの要件を部分的にでも満たすかどうかを確認するようにも有利に構成されている。
【００２６】
また、少なくとも１つのプロセッサは、実行されるまたは現在実行中のＭＲアプリケーションを、仮想適合された３Ｄシーンが現実の３Ｄシーンを置き換えている状態で更新するように有利に構成されている。
【００２７】
好ましい実装例では、少なくとも１つの現実世界の制約は、少なくとも２つあり、かつ潜在的にインタラクトしており、少なくとも１つのプロセッサは、さらに、それらの現実世界の制約に対して、仮想適合された３Ｄシーンがそれらの制約を満たすように、合同で変形を行うように構成されている。
【００２８】
いくつかの関連実施形態では、合同変形は、その後、２つ以上の制約が満たされるまで、変形の様々なアイテムを対象としたいくつかの連続する試みを介して、反復的に達成される。
【００２９】
別の実装例では、少なくとも１つの現実世界の制約は、少なくとも２つあり、かつ潜在的にインタラクトしており、重要順にしたがってランク付けされる。少なくとも１つのプロセッサは、さらに、少なくとも１つの最優位ランクを有する制約（複数可）を優先して変形を行うように、かつ、最優位ランク（複数可）を有する現実世界の制約と異なる現実世界の制約のうち少なくとも１つがない状態でランタイム時にシナリオを実行するように構成されている。
【００３０】
その結果、いくつかの制約は、他の制約が、関係しているシナリオの実行においてあまり重要ではないと見なされる限り、他の制約が満たされなくとも、満たされ得る。
【００３１】
好ましい実施形態によれば、単独でまたは任意の適切な組み合わせで検討されるが：
−少なくとも１つの制約は、少なくとも１つの現実世界のオブジェクトの存在を含み、少なくとも１つのプロセッサは、仮想適合された３Ｄシーンにおいて現実世界のオブジェクト（複数可）の仮想表現を追加するように構成されている；
−少なくとも１つの制約は、少なくとも１つの現実世界のオブジェクトの少なくとも１つの次元に関し、少なくとも１つのプロセッサは、次元（複数可）に対する少なくとも１つの制約が満たされるように、仮想適合された３Ｄシーンにおいて現実世界のオブジェクト（複数可）の少なくとも１つの次元の表現を修正するように構成されている；
−少なくとも１つのプロセッサは、仮想適合された３Ｄシーンにおいて、少なくとも１つの制約が満たされるように、少なくとも１つの制約にとって不利な少なくとも１つの現実世界のオブジェクトの仮想表現を変形するように構成されている；
−少なくとも１つのプロセッサは、仮想適合された３Ｄシーンにおいて現実世界のオブジェクト（複数可）の削除、縮小、および移動のうち少なくとも１つによって変形を行うように構成されている；
−少なくとも１つの制約は、少なくとも１つの現実世界のオブジェクトに関連し、少なくとも１つのプロセッサは、現実世界のオブジェクト（複数可）に対する少なくとも１つの制約が満たされるように、現実世界のオブジェクト（複数可）の移動、回転、変換、拡大縮小、複製のうち少なくとも１つによって変形を行うように構成されている。
【００３２】
有利には、変形は、仮想適合された３Ｄシーンにおける少なくとも１つのエリアをクリアアップすることを含み、少なくとも１つのプロセッサは、さらに、仮想適合された３Ｄシーンにおける少なくとも１つのエリアを修復するように構成されている。
【００３３】
そして、仮想適合によっていくつかの不規則性が導入される場合でさえも、例えば現実の３Ｄシーンの現実のオブジェクトを仮想的に削除することによって、連続性の知覚をユーザに提供することができる。
【００３４】
いくつかの実装例では、少なくとも１つのプロセッサは、さらに、ユーザに、変形の実行に明確に関与させるように構成されている。
【００３５】
ユーザはそれによって、自動プロセスを完了することができ、それは、特に、よりユーザフレンドリなまたはカスタマイズされたシナリオの実行を可能にする。
【００３６】
有利には、少なくとも１つの入力部はまた、シナリオ（複数可）を受信するようになされ、デバイスは、さらに、ユーザが仮想適合された３Ｄシーンにおいてシナリオ（複数可）を視覚化するための、仮想適合された３Ｄシーンの表現の少なくとも一部を出力するようになされた少なくとも１つの出力部を備える。
【００３７】
開示はさらに、開示によるデバイスを備える装置に関連し、その装置は、動画受信器、携帯電話、タブレット、または拡張現実用の頭部装着ディスプレイシステムである。
【００３８】
本開示の別の目的は、現実の３Ｄシーンの表現に重ねられる少なくとも１つの動的仮想コンテンツを生成するデバイスであり、動的仮想コンテンツ（複数可）は、シナリオ（複数可）のランタイム前に規定されかつ少なくとも１つの現実世界の制約を含む少なくとも１つのシナリオに準拠している。デバイスは、
−現実の３Ｄシーンにおいてキャプチャされた現実世界の情報を受信する手段と、
−現実世界の情報から特定された現実世界の制約（複数可）の存在下で、ランタイム時にシナリオ（複数可）を実行する手段とを備える。
【００３９】
本開示によれば、実行する手段は、少なくとも１つの現実世界の制約が現実世界の情報から特定されないとき、シナリオ（複数可）を実行する前に、現実の３Ｄシーンの表現の、仮想適合された３Ｄシーンへの変形を、仮想適合された３Ｄシーンが制約（複数可）を満たすように行い、現実の３Ｄシーンにおいてシナリオ（複数可）を実行する代わりに、現実の３Ｄシーンを置き換えている仮想適合された３Ｄシーンにおいてシナリオ（複数可）を実行するようになされている。
【００４０】
開示はまた、現実の３Ｄシーンの表現に重ねられる少なくとも１つの動的仮想コンテンツを生成する方法に関連し、少なくとも１つの動的仮想コンテンツは、シナリオ（複数可）のランタイム前に規定されかつ少なくとも１つの現実世界の制約を含む少なくとも１つのシナリオに準拠している。その方法は、
−現実の３Ｄシーンにおいてキャプチャされた現実世界の情報を受信することと、
−現実世界の情報から特定された現実世界の制約（複数可）の存在下で、ランタイム時にシナリオ（複数可）を実行することとを含む。
【００４１】
開示によれば、方法は、さらに、少なくとも１つの現実世界の制約が現実世界の情報から特定されないとき、シナリオ（複数可）を実行する前に、現実の３Ｄシーンの表現の、仮想適合された３Ｄシーンへの変形を、仮想適合された３Ｄシーンが少なくとも１つの制約を満たすように行い、現実の３Ｄシーンにおいてシナリオ（複数可）を実行する代わりに、現実の３Ｄシーンを置き換えている仮想適合された３Ｄシーンにおいてシナリオ（複数可）を実行することを含む。
【００４２】
その方法は、開示の実施モードのいずれかによるデバイスによって有利に実行される。
【００４３】
加えて、開示は、少なくとも１つの動的仮想コンテンツを生成するコンピュータプログラムであって、プログラムがプロセッサによって実行されると、上記の実行モードのいずれかに準拠している方法を行うようになされたソフトウェアコードを備えるコンピュータプログラムに関する。
【００４４】
本開示は、さらに、本開示に準拠している少なくとも１つの動的仮想コンテンツを生成する方法を行うための、コンピュータにより可読であり、コンピュータによって実行可能な命令のプログラムを有形に具体化する非一時的なプログラム格納デバイスに関する。
【００４５】
そうした非一時的なプログラム格納デバイスは、限定するものではないが、電子、磁気、光学、電磁、赤外線、または半導体デバイス、もしくは前述の任意の適切な組み合わせであり得る。以下：ポータブルフロッピーディスク、ハードディスク、ＲＯＭ（読み取り専用メモリ）、ＥＰＲＯＭ（消去可能プログラマブルＲＯＭ）またはフラッシュメモリ、ポータブルＣＤ−ＲＯＭ（コンパクトディスクＲＯＭ）は、より具体的な例を提供しているが、当業者によって容易に理解されるように単なる例示であり、包括的な列挙ではないことが理解されよう。
【００４６】
特定のかつ非限定的な例示的実施形態の以下の説明を閲読することにより、本開示はより良く理解され、他の具体的な特徴および利点が明らかとなろう。説明は、添付の図面を参照している。
【図面の簡単な説明】
【００４７】
【図１】本開示に準拠している、動的仮想コンテンツを生成するデバイスを概略的に表すブロック図である。
【図２】図１のデバイスを利用するのに検討されるユーザの環境の例の図である。
【図３】図１のデバイスを用いて実行される連続的な複合現実のステップを示すフローチャートである。
【図４】図１に表されたデバイスを備えるＭＲ装置の図である。
【発明の詳細な説明】
【００４８】
本説明は、本開示の原則を例示する。したがって、当業者は、本明細書中に明示的に記載または示されていないが、開示の原則を具体化しかつその趣旨および範囲内に含まれる様々な構成を考案可能であろうことが理解されよう。
【００４９】
本明細書中に列挙された全ての例及び条件付き言語は、開示の原則および本分野を促進するために発明者によって寄与される概念を読み手が理解することを助けるという教育上の目的を意図するものであり、そうした具体的に列挙された例および条件に対する限定はないとして解釈されよう。
【００５０】
さらに、開示の原則、態様、および実施形態、ならびにそれらの具体的な例を列挙する本明細書中の全ての記述は、それらの構造的かつ機能的等価物の両方を網羅することが意図される。加えて、そうした等価物は、現在知られている等価物、ならびに将来開発される等価物、すなわち、構造に関わらず同一の機能を行う開発される任意の要素の両方を含むことが意図される。
【００５１】
したがって、例えば、本明細書中に提示されたブロック図は、開示の原則を具体化する例示的な回路の概念図を表すことが当業者によって理解されよう。同様に、任意のフローチャート、流れ図などは、コンピュータ可読媒体において実質的に表され得、かつ、コンピュータまたはプロセッサによって、そうしたコンピュータまたはプロセッサが明示的に示されるか否かに関わりなく、そのように実行され得る様々なプロセスを表すことが理解されよう。
【００５２】
「なされた」および「構成された」という用語は、本開示において、材料によって達成されようともソフトウェア手段（ファームウェアを含む）によって達成されようとも、本デバイスの初期構成、後の適合、または補完、もしくは同様にそれらの任意の組み合わせを広範に網羅するとして用いられる。
【００５３】
図に示される様々な要素の機能は、専用ハードウェアならびにソフトウェアを適切なソフトウェアとともに実行可能なハードウェアを用いることによって提供され得る。プロセッサによって提供されるとき、機能は、単一の専用プロセッサ、単一の共用プロセッサ、または、一部が共有され得る複数の個別のプロセッサによって提供され得る。さらに、「プロセッサ」という用語の明示的な使用は、ソフトウェアを実行可能なハードウェアだけを指すと解釈されるべきでなく、一般に、例えばコンピュータ、マイクロプロセッサ、集積回路、またはプログラマブル論理デバイス（ＰＬＤ）を含み得る処理デバイスを指す。加えて、関連するかつ／または結果として生じる機能の実行を可能にする命令および／またはデータは、例えば集積回路、ハードディスク、ＣＤ（コンパクトディスク）、ＤＶＤ（デジタル多用途ディスク）などの光学ディスク、ＲＡＭ（ランダムアクセスメモリ）、またはＲＯＭメモリといった任意のプロセッサ可読媒体に格納され得る。命令は、特に、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組み合わせに格納され得る。
【００５４】
図に示される要素は様々な形のハードウェア、ソフトウェア、またはそれらの組み合わせで実装され得ることを理解すべきである。好ましくは、これらの要素は、プロセッサ、メモリ、および入力／出力インタフェースを含み得る、１つ以上の適切にプログラミングされた汎用デバイス上でハードウェアとソフトウェアの組み合わせで実装される。
【００５５】
本開示は、図１に例示するような、動的仮想コンテンツを生成するデバイス１の特定の機能の実施形態を参照して説明されよう。
【００５６】
図１
デバイス１は、現実の３Ｄシーンの表現に重ねられかつ少なくとも１つのシナリオに準拠している少なくとも１つの動的仮想コンテンツを生成するようになされており、複合現実（ＭＲ）に関連する。
【００５７】
デバイス１は、有利には、記述された機能を行うようにかつ記述された効果または結果を生むように設計、構成、かつ／または適合された装置、または装置の物理的な一部である。代替の実装例では、デバイス１は、同一の機械でグループ化されるか、異なる、場合によっては遠隔の機械でグループ化されるかに関わらず、装置または装置の物理的な一部のセットとして具体化される。
【００５８】
以下において、モジュールは、材料、物理的に明確なコンポーネントではなく機能性エンティティとして理解されよう。それらは、結果的に、同一の有形かつ具体的なコンポーネントでまとめてグループ化されるか、または、いくつかのそうしたコンポーネントに分散されるかのいずれかで具体化され得る。また、それらのモジュールの各々は、場合によっては、それ自体が、少なくとも２つの物理的コンポーネントの間で共有される。加えて、モジュールは、ハードウェア、ソフトウェア、ファームウェア、または同様にそれらの任意の混合形式で実装される。それらは、デバイス１の少なくとも１つのプロセッサ内で具体化されることが好ましい。
【００５９】
デバイス１は、例えば現実の３Ｄシーンのカメラキャプチャから取得された現実世界の情報２２を分析するモジュール１１、分析された現実世界の情報２２に対してＭＲシナリオ（仮想アプリケーション２３）の要件を分析かつ確認するモジュール１２、現実の３Ｄシーンの表現に適用される関連する仮想適合を進めるモジュール１３、およびその適合によって生じた仮想適合された３Ｄシーンに適用されるシナリオを実行するモジュール１４を備える。モジュール１３の出力は、場合によっては、満足のいく適合の解決策が見つかるまで適合が反復的に調整され得るように、モジュール１２に戻り得る。
【００６０】
情報は、デバイス１とインタラクトしているユーザインタフェース２０を介してユーザによって入力かつ取得され得る。ユーザインタフェース２０は、当業者によってよく知られているような以下の手段：スクリーン、キーボード、トラックボール、タッチパッド、タッチスクリーン、スピーカ、音声認識システムのうちのいずれかまたはいくつかを網羅し得る、データ、情報、または命令、特に視覚的、触覚的かつ／または音声機能を入力または取得するのに適切な任意の手段を含む。
【００６１】
デバイス１はまた、ＭＲシナリオ要件に対する仮想適合を行うための、格納リソース１０からの仮想ツール２１を設けるようにもなされている。それら格納リソース１０は、特に、場合によってはＳＳＤ（ソリッドステートディスク）内のＲＡＭ、またはフラッシュメモリなどのＥＥＰＲＯＭ（電気的消去可能プログラマブル読み取り専用メモリ）であり得る任意の種類の適切な格納手段の中から利用可能であり得る。
【００６２】
デバイス１の機能は、以下に詳述される。
【００６３】
５．１  前提条件：シナリオの規定
初期ステップにおいて、ＭＲアプリケーションのクリエータは、シナリオを規定する。クリエータは、特に、シナリオに含まれる現実要素、および仮想要素がそれらとどのようにインタラクトするかを指定する。連続的なシナリオの要素の例は、以下のようである。
−第１の仮想の石が落下し、現実のキューブ上でバウンドし、現実のテーブル上で止まる
−第２の仮想の石が、現実の空のグラスに衝突する
−仮想の動物が、現実のテーブル上の空いている平面エリアに位置する事前定義されかつ変更不可能なアニメーションを有する
−仮想のキャラクタが、空いているエリアにおいて地面上を歩き、現実のテーブルの脚を登り、現実のテーブル上を歩き、仮想の動物と合流する；その軌跡は、現実のテーブル上の空いているエリアに依存する。
【００６４】
このシナリオを満たすために、クリエータは、現実環境に関するいくつかの要件を指定する。前のシナリオに対する要件のいくつかの例は、以下に列挙される。シーンは屋内で行われている：
−１．２０ｍ×０．６０ｍの最小サイズを有するテーブル
−０３ｍ×０．２ｍの次元を有しかつテーブルの中心を中心とする、テーブル上の空いている平面エリア
−テーブルの左部分に載っている、０．１０ｍの辺を有するキューブ
−テーブル上に載っている空のグラス
−テーブルの左側に位置しかつテーブルの左前方の脚を含む、０．６ｍ×０．３ｍの次元を有する、地面上の空いている平面エリア。
【００６５】
要件はまた、具体的な位置または方位も課し得る。それらは、さらに、「制約のレベル」によって影響され得る。すなわち、いくつかの要件は、他の要件がそこまでではない一方で、強烈に制約を課している。例えば、強烈に制約を課している要件は、１．２０ｍ×０．６０ｍのサイズのテーブルを有することからなる。なぜなら、テーブルが存在する場合、要件を満たすためにこれらの正確な次元を有さなければならないからである。そこまで制約を課さない要件は、テーブルの左側に載っている０．１０ｍの辺を有するキューブを有することからなる。なぜなら、その正確な位置を課すものではないからである。
【００６６】
５．２  前提条件：要件の階層ソーティング
要件は、要件間の関係に関する階層でソートされることが好ましい。したがって、各要件には、階層レベルが割り当てられ、階層的分類は、コンテンツのクリエータによってコンテンツのオーサリング段階内で行われる。
【００６７】
例えば上記の要件を検討すると、最も重要な要件は、第１の要件（「１．２０ｍ×０．６０ｍの最小サイズを有するテーブル」）である。４つの他の要件は、テーブルの存在に依存するが、互いからは独立している。したがって、それらは、同一の重要度、すなわち同一の階層レベルを有する。かくして、以下のソートされたテーブルが得られる。
１  １．２０ｍ×０．６０ｍの最小サイズを有するテーブル
１．１  ０３ｍ×０．２ｍの次元を有しかつテーブルの中心を中心とする、テーブル上の空いている平面エリア
１．２  テーブルの左部分に載っている、０．１０ｍの辺を有するキューブ
１．３  テーブル上に載っている空のグラス
１．４  テーブルの左側に位置しかつテーブルの左前方の脚を含む、０．６ｍ×０．３ｍの次元を有する、地面上の空いている平面エリア
【００６８】
「キューブ上に載っている０．１ｍの半径および０．３ｍの高さを有するシリンダ」といったさらなる要件が含まれる場合、そのレベルは、要件１．２を満たすことに依存するので、１．２．１である。
【００６９】
５．３  環境のスキャンおよび特異性の判定
次のステップは、環境のスキャンおよび関連する特異性の判定からなる。それは、特に環境において存在するオブジェクト（例えば、テーブル、テーブル上に載っているグラス、植物）および空いている平面エリアといった環境特異性を検出かつラベル付けすることによって、環境説明を確立することを対象とする。
【００７０】
よって、ユーザは、ユーザの環境をスキャンする。それは、特に、スキャンされたシーンの点群を提供する「Ｉｎｔｅｌ  Ｒｅａｌ  Ｓｅｎｓｅ」という名前で市販されている製品などのデプスセンサを備えるデバイスを用いて達成することができる。
【００７１】
点群は、次いで、分析されて、環境特性を検出かつラベル付けする。そのタスクを達成するための技術的解決策は、特に、２０１１年７月のイスタンブールでの第１５回ＲｏｂｏＣｕｐ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｓｙｍｐｏｓｉｕｍの議事録におけるＤｉｒｋ  Ｈｏｌｚ、Ｓｔｅｆａｎ  Ｈｏｌｚｅｒ、Ｒａｄｙ  Ｂｏｇｄａｎ  Ｒｕｓｕ、およびＳｖｅｎ  Ｂｅｈｎｋｅによる「Ｒｅａｌ−Ｔｉｍｅ  Ｐｌａｎｅ  Ｓｅｇｍｅｎｔａｔｉｏｎ  ｕｓｉｎｇ  ＲＧＢ−Ｄ  Ｃａｍｅｒａｓ」；Ｈｕｍａｎｏｉｄｓ  ２０１２、１９８〜２０３ページにおけるＡｎｄｒｅ  Ｕｃｋｅｒｍａｎｎ、Ｒｏｂｅｒｔ  Ｈａｓｃｈｋｅ、およびＨｅｌｇｅ  Ｊ．Ｒｉｔｔｅｒによる「Ｒｅａｌ−ｔｉｍｅ  ３Ｄ  ｓｅｇｍｅｎｔａｔｉｏｎ  ｏｆ  ｃｌｕｔｔｅｒｅｄ  ｓｃｅｎｅｓ  ｆｏｒ  ｒｏｂｏｔ  ｇｒａｓｐｉｎｇ」；ＭｕｌｔｉＭｅｄｉａ  Ｍｏｄｅｌｉｎｇ  ２０１４、４４９〜４６０ページにおけるＺｈｅ  Ｗｈａｎｇ、Ｈｏｎｇ  Ｌｉｕ、Ｘｉａｎｇｄｏｎｇ  Ｗａｎｇ、およびＹｕｅｌｉａｎｇ  Ｑｉａｎによる「Ｓｅｇｍｅｎｔ  ａｎｄ  Ｌａｂｅｌ  Ｉｎｄｏｏｒ  Ｓｃｅｎｅ  Ｂａｓｅｄ  ｏｎ  ＲＢ−Ｄ  ｆｏｒ  ｔｈｅ  Ｖｉｓｕａｌｌｙ  Ｉｍｐａｉｒｅｄ」；および、Ｒｏｂｏｔｉｃｓ  ａｎｄ  Ａｕｔｏｎｏｍｏｕｓ  Ｓｙｓｔｅｍｓ  ２０１３、６１（１２）、１６４１〜１６５２ページにおけるＪ．Ｘｉａｏ、Ｊ．Ｚｈａｎｇ、Ｂ．Ａｄｌｅｒ、Ｈ．Ｚｈａｎｇ、およびＪ．Ｚｈａｎｇによる「Ｔｈｒｅｅ−ｄｉｍｅｎｓｉｏｎａｌ  ｐｏｉｎｔ  ｃｌｏｕｄ  ｐｌａｎｅ  ｓｅｇｍｅｎｔａｔｉｏｎ  ｉｎ  ｂｏｔｈ  ｓｔｒｕｃｔｕｒｅｄ  ａｎｄ  ｕｎｓｔｒｕｃｔｕｒｅｄ  ｅｎｖｉｒｏｎｍｅｎｔｓ」の記事に記載される。
【００７２】
環境の分析はまた、３Ｄメッシュを出力する、Ｍｉｃｒｏｓｏｆｔ  Ｈｏｌｏｌｅｎｓという名前で市販されているものなどのデバイスを用いて達成することもできる。そうした３Ｄメッシュから環境特性を取得することを可能にするいくつかの解決策は、ＣＶＰＲ２０１３におけるＪｕｌｉｅｎ  Ｐ．Ｃ．Ｖａｌｅｎｔｉｎ、Ｓｕｎａｎｄｏ  Ｓｅｎｇｕｐｔａ、Ｊｏｎａｔｈａｎ  Ｗａｒｒｅｌ、Ａｌｉ  Ｓｈａｈｒｏｋｎｉ、およびＰｈｉｌｉｐ  Ｈ．Ｓ．Ｔｏｒｒによる「Ｍｅｓｈ  Ｂａｓｅｄ  Ｓｅｍａｎｔｉｃ  Ｍｏｄｅｌｌｉｎｇ  ｆｏｒ  Ｉｎｄｏｏｒ  ａｎｄ  Ｏｕｔｄｏｏｒ  Ｓｃｅｎｅｓ」；およびＣｏｍｐｕｔｅｒ  Ｇｒａｐｈｉｃｓ  ｆｏｒｕｍ、ｖｏｌ．２７、２００８、ｎ．６、１５３９〜１５５６ページにおけるＡｒｉｅｌ  Ｓｈａｍｉｒによる「Ａ  ｓｕｒｖｅｙ  ｏｎ  Ｍｅｓｈ  Ｓｅｇｍｅｎｔａｔｉｏｎ  Ｔｅｃｈｎｉｑｕｅｓ」の記事に記載されるものを含む。
【００７３】
このステップを担う、現実世界の情報を分析するモジュール１１は、シーンをスキャンするのに用いられるデバイスに組み込まれ得るかまたはサーバ上で動作し得るかである。
【００７４】
５．４  仮想情報の判定
このレベルにおいて、環境の説明は既知である。本ステップは、要求される可能性のある仮想環境を判定するために、シナリオ要件と合わせて様々な環境説明を分析することからなる。この仮想環境は、全ユーザに同様の挙動および体験をもたらすように、ユーザごとに固有のものであり、現実環境に重ねられる。
【００７５】
そのステップは、２つの部分：満たされるシナリオ要件および満たされないシナリオ要件を確認すること（モジュール１２）と、現実環境ごとに、完全に満たされない各シナリオ要件をどのように補完するかを判定すること（モジュール１３）とを備える。
【００７６】
それら２つの部分は、先に提示した例示的な要件に関連して以下に詳述する。よって、環境は、
１／１．２０ｍ×０．６０ｍの最小サイズを有するテーブルと；
２／０３ｍ×０．２ｍの次元を有しかつテーブルの中心を中心とする、テーブル上の空いている平面エリアと；
３／テーブルの左部分に載っている、０．１０ｍの辺を有するキューブと；
４／テーブル上に載っている空のグラスと；
５／テーブルの左側に位置しかつテーブルの左前方の脚を含む、０．６ｍ×０．３ｍの次元を有する、地面上の空いている平面エリアとを含まなければならない。
【００７７】
例示的な現実環境が図２に表され、そこでは、テーブル３１が、左側に載っているキューブ３２および右側に載っている花瓶３３を有し、植物３４が、テーブル３１の右側に位置する。
【００７８】
５．４．１  シナリオ要件の確認
モジュール１２は、いずれのシナリオ要件が満たされいずれが満たされないかを確認する。要件の総数は、ｎｂＲｅｑと示される。
【００７９】
対応するアルゴリズムは、以下のように進む：
−環境のスキャンおよび特異性の判定から推定される特性をロードする（モジュール１１）；
−各要件のステータス（完全に満たされているまたはそうではない）を格納しているｎｂＲｅｑのブール値のステータスリストの一覧を作成する；
−対応するシナリオ要件が部分的にまたは完全に満たされる場合は現実環境の特異性／特異性（複数）を格納している、もしくはそれ以外の場合は何も格納していないｎｂＲｅｑのデータのデータリストの一覧を作成する；
−シナリオ要件の一覧をロードする。
−シナリオ要件ごとに、次いでモジュール１３が以下を担う：
−要件が満たされるか否かを確認する；
−ｙｅｓであれば、ステータスリストの対応する要素をＴｒｕｅに設定し、データリストの対応する要素を、この要件に関連する環境特異性／特異性（複数）で埋める；
−ｎｏであれば、ステータスリストの対応する要素をＦａｌｓｅに設定し、データリストの対応する要素を、この要件に関連する環境特異性／特異性（複数）で埋める（例えば、オブジェクトは存在するが、期待よりも小さいまたは間違った位置にある）か、もしくは、特異性が存在しない場合（例えば、要求されるオブジェクトが存在しない）、Ｅｍｐｔｙとする。
【００８０】
要件が部分的にのみ満たされる場合でも、以下に展開する理由により、環境特異性／特異性（複数）を格納することは興味深くあることに留意すべきである。
【００８１】
上記の例を続けると、ステータスリストは、以下の値：
１／Ｆａｌｓｅ（テーブル３１は、要求される次元を有さない）
２／Ｔｒｕｅ
３／Ｔｒｕｅ（キューブ３２）
４／Ｆａｌｓｅ
５／Ｔｒｕｅ
を有し、データリストは、以下の値：
１／テーブルサイズは、１．０ｍ×０．６ｍ
２／０．５ｍ×０．６ｍのサイズの（Ｘtfp、Ｙtfp）を中心とする、空いている平面エリア
３／０．１０ｍのサイズの（Ｘc、Ｙc）を中心とする、キューブ３２
４／
５／２ｍ×１ｍの（Ｘgfp、Ｙgfp）を中心とする、地面上の空いている平面エリア
を有する。
【００８２】
５．４．２  シナリオ要件の分析
ＭＲアプリケーション要件（特に、要素、空いている平面エリア）の分析および環境がこれらの要件をたとえ部分的にでも満たすかどうかの確認に加えて、モジュール１３は、要件（複数可）を完全に満たさないユーザ（現実）の環境の現在の部分を、仮想要素を用いて完成させる。この適合は、いかなる環境も最終的に、ＭＲアプリケーションが同様にレンダリングされることを確保する共通の特異性を含むようなものである。
【００８３】
最終的に、モジュール１３は、現実環境を強化する仮想環境を用いてＭＲアプリケーションを更新する。
【００８４】
より正確には、モジュール１３は、具体的な現実環境ごとに、完全に満たされない各シナリオ要件をどのように補完するかを判定する。
【００８５】
第１のシチュエーションにおいて、特異性は欠落しており、それは、例えば上記の例におけるグラスといった、要求される要素の欠如を意味し得る。この問題は、オブジェクトの事前定義された仮想モデルに基づく仮想オブジェクトを追加することによって解決される。
【００８６】
第２のシチュエーションにおいて、特異性は、現実環境において適切にではないが存在する。これは、特に、要求されるオブジェクトは存在するが、そのサイズ、位置、および／または方位がシナリオ要件を満たさない場合を網羅する。現実のオブジェクトがラベル付けされると、その関連する３Ｄモデルおよび場合によってはそのテクスチャが明らかになる。そして、有利な実装例では、その３Ｄモデルが変形される（移動される、拡大縮小される、かつ／または回転される）。
【００８７】
３Ｄモデルが小さすぎる場合、そのスケールを拡大することができ、３Ｄモデルが大きすぎる場合、そのスケールを縮小することができる。後者の場合、現実環境における「削除された」または「欠落している」現実のオブジェクトの一部は埋められ、それは、例えば、ＩＥＥＥ  Ｔｒａｎｓａｃｔｉｏｎｓ  ｏｎ  Ｖｉｓｕａｌｉｚａｔｉｏｎ  ａｎｄ  Ｃｏｍｐｕｔｅｒ  Ｇｒａｐｈｉｃｓ、Ｖｏｌ．２０、２０１４、ｎ．６、８６６〜８７９ページにおけるＪａｎ  ＨｅｒｌｉｎｇおよびＷｏｌｆｇａｎｇ  Ｂｒｏｌｌによる「Ｈｉｇｈ−Ｑｕａｌｉｔｙ  Ｒｅａｌ−Ｔｉｍｅ  Ｖｉｄｅｏ  Ｉｎｐａｉｎｔｉｎｇ  ｗｉｔｈ  ＰｉｘＭｉｘ」の記事に展開された技術などの修復技術によって行うことができる。
【００８８】
要求されるオブジェクトが現実の３Ｄシーンに存在するがその位置が間違っている場合、それは、有利に、移動されるかまたは複製／コピーされるかである。そして、適用される解決策がオブジェクトを移動することからなる場合、オブジェクトによってもはや覆われない現実のオブジェクトの領域は埋められる（修復によって行うことができる）。オブジェクトの方位が正しくない場合、同様のアクションを行うことができる。
【００８９】
別の実施形態では、ユーザは、現実のオブジェクトを正しい位置および／または方位で、手動で移動かつ／または回転するように求められる。この点において、オブジェクトの最終的な位置および／または方位は、その形状が現実のオブジェクトの形状と同一である仮想オブジェクトを表示することによって、ユーザに示される。ユーザは、現実のオブジェクトの表現を、それが仮想のオブジェクトと重ねられるまで、移動／回転する。
【００９０】
欠落しているまたは十分な大きさのない、空いている平面エリア／体積の場合、２つの先に記述された方法を適用することができる。修復技術を用いることによって、平面エリア／体積を占めている現実要素の表現を「削除」することが可能となり、ユーザは、エリア／体積を手動で「きれいに」するように求められ得る。
【００９１】
５．４．３  複数のシナリオ要件の合同管理
完全に満たされていない要件を補完することは、別の要件がもはや満たされないということにつながり得る。例えば、欠落しているグラスをテーブル３１（図２）上に追加することによって、要件２の空いているエリア（０．３ｍ×０．２ｍの、テーブル上の空いている平面エリア）は消失し得る。
【００９２】
そうしたシチュエーションを管理するために用いられるアルゴリズムを以下に記載する。値がＦａｌｓｅに設定された、そしてＩｆａｌｓｅと称されるインデックスを有する、ステータスリストの現在の要素ごとに、以下のステップが実行される：
−上記で展開したように、その現在の要素に対応する要件を満たす解決策を判定するステップと；
−インデックスＩｆａｌｓｅを有するステータスリストの現在の要素をＴｒｕｅに設定するステップと；
−値がＴｒｕｅに設定された（かつＩｔｒｕｅと称されるインデックスを有する）、ステータスリストの他の要素ごとに、現在の要素に対して上記の解決策を採用したときに、対応する要件が依然として満たされるかどうかを確認するステップと；
−満たされない場合、現在の要件に対して、インデックスＩｔｒｕｅの要件を依然として満たされることを可能にする別の構成をテストするステップと、
−可能でない場合、インデックスＩｆａｌｓｅを有する、ステータスリストの現在の要素をＦａｌｓｅとするステップとである。
【００９３】
そのプロセスの拡張版は、後で検討される要件は満たすことができないが、最初に処理された要件のみを制御されない方法で満たす（「最初に到達したものが、最初に対処される」）ことの回避を可能にする。よって、最優先ランキングを有する要件が最初に処理され、他の要件は、連続的に下降するランキングにしたがって最下位ランキングまで処理される。
【００９４】
さらなる改良版では、そのステータスリストの値がＴｒｕｅである要件（複数可）を既に満たす１つ以上の現実要素（既に配置されている要素を特に含む）の表現にいくつかの修正を適用することができるかどうかが確認され、以下を得られるようにする：
−既に満たされている要件は完全に満たされたままとする
−インデックスＩｆａｌｓｅを有する現在の要件も完全に満たされる。
【００９５】
言い換えれば、このステップは、両方の目的を満たす修正の組み合わせを見つけようとしており、その上、現実要素の表現の修正は、１つ以上の（場合によっては多くの）他の表現の修正を誘発し得る。
【００９６】
さらに、要件の階層は、全ての制約を満たすことができないときに、最高ランクを優先させるのに有利に用いられる。
【００９７】
ステータスリストの全ての要素がＴｒｕｅに等しい場合、シナリオを完全に満たす解決策が見つけられている。そうでない場合、明白な解決策は見つからず、最低優先ランキング（または最低優先ランキング（複数））を有する１つ以上の制約は、残しておかれ得る。いかなる全体的な解決策もない変形実装例では、全ての要件がユーザに対して提示され、ユーザは、要件を満たすために、当ユーザの現実環境の表現の修正（要素の追加／移動／削除）を要求される。
【００９８】
実施に際して、図３に例示するように、デバイス１は、ＭＲ動作において、好ましくは以下のように進む。取得ステージにおいて、現実の３Ｄ環境の特異性（それら特異性は、それぞれの、場合によっては同一のトピックと関連している）が、シナリオ要件の一覧（ステップ４２）に加えてロードされる（ステップ４１）。要件全てが処理されているかどうかが確認される（ステップ４３１）。ｙｅｓである場合、プロセスは停止される（ステップ４３２）。そうでない場合、次の要件がロードされ、対応するステータスリストがＦａｌｓｅで初期化され、対応するデータリストがＥｍｐｔｙとされる（ステップ４３３）。
【００９９】
次いで、環境特異性全てが処理されているかどうかが確認される（ステップ４４１）。ｙｅｓである場合、プロセスはステップ４３１にループバックする。そうでない場合、次の環境特異性がロードされる（ステップ４５１）。次いで、特異性が要件のトピックに対応するかどうかが確認される（ステップ４５２）。ｎｏである場合、プロセスは、ステップ４４１にループバックする。そうでない場合、特異性が、検討される要件を満たすかどうかが確認される（ステップ４５３）。ｎｏである場合、対応するステータスリストはＦａｌｓｅに設定され、特異性は、対応するデータリスト内に追加され、プロセスは、ステップ４４１にループバックする。
【０１００】
そうでない場合、対応するステータスリストはＴｒｕｅに設定され、特異性は、対応するデータリスト内に追加され、プロセスは、ステップ４４１にループバックする。
【０１０１】
図４に見ることができる特定の装置５は、上述のデバイス１を具体化している。それは、例えば、タブレット、スマートフォン、頭部装着ディスプレイ（ＨＭＤ）、ゲーム機−ライブで画像を生成かつ表示する専用ゲーム機など、またはラップトップに対応する。その装置５は、直視型（ユーザは通常、現実の３Ｄシーンをガラス越しに見ている）または間接視型（ユーザは、スクリーンに表示された現実の３Ｄシーンを見ている）に関わらず、拡張現実に適している。両方の能力を組み合わせることもできる。
【０１０２】
装置５は、クロック信号も輸送するアドレスおよびデータのバス５５によって互いと接続されている以下の要素を備える：
−マイクロプロセッサ５１（すなわちＣＰＵ）と；
−いくつかのグラフィカルプロセッサユニット（すなわちＧＰＵ）５２０およびグラフィカルランダムアクセスメモリ（ＧＲＡＭ）５２１を備えるグラフィックカード５２と；
−ＲＯＭタイプの不揮発性メモリ５６と；
−ＲＡＭ５７と；
−例えばキーボード、マウス、ジョイスティック、ウェブカムといった１つまたはいくつかのＩ／Ｏ（入力／出力）デバイス５４；例えば音声認識といったコマンドを導入する他のモードもやはり可能である；
−電源５８と；
−無線周波数ユニット５９とである。
【０１０３】
装置５はまた、例えばライブでグラフィックカードにおいて計算かつ構成された合成画像を表示するための、グラフィックカード５２に直接接続されている表示スクリーン型の表示デバイス５３も備える。表示デバイス５３をグラフィックカード５２に接続するのに専用バスを用いることにより、データ送信ビットレートをかなり大きくし、かくして、グラフィックカードによって構成された画像を表示するための待ち時間を低減するという利点がもたらされる。変形例によれば、表示デバイスは装置５の外部にあり、装置５に、表示信号を送信するために、ケーブルでまたは無線で接続されている。装置５は、例えばグラフィックカード５２を通して、表示信号を例えばＬＣＤまたはプラズマスクリーンまたはビデオプロジェクタといった外部の表示手段に送信するようになされた送信または接続のインタフェースを備える。この点において、ＲＦユニット５９を、無線送信に用いることができる。
【０１０４】
代替の実装例では、表示デバイス５３は、ユーザがそれを通して現実環境を見ているガラスに相当し、装置５は、さらに、例えば生成された仮想画像またはコンテンツをガラス上で投影可能とする光学投影システム（表さず）を備える。
【０１０５】
メモリ５２１、５６、および５７の説明で用いられる「レジスタ」という単語は、記述されるメモリの各々において、低容量のメモリゾーン（いくつかのバイナリデータ）ならびに大容量のメモリゾーン（プログラム全体を格納可能とする、または、データを代表するデータの全てまたは一部を計算または表示可能とする）の両方を示すことに留意されたい。また、ＧＲＡＭ５２１に対して表されるレジスタは、任意の方法で配置かつ構成され得、それらの各々は、隣接するメモリ場所に必ずしも対応するものではなく、分散され得る（１つのレジスタがいくつかのより小さなレジスタを含むシチュエーションを特に包含する）。
【０１０６】
スイッチが入れられると、マイクロプロセッサ５１は、ＲＡＭ５７に含まれるプログラムの命令をロードし実行する。
【０１０７】
ランダムアクセスメモリ５７は、特に、
−レジスタ５７０に、装置５上のスイッチングに関与するマイクロプロセッサ５１のオペレーティングプログラムと；
−レジスタ５７１に、現実の３Ｄシーンを表すパラメータ（例えば、シーンのオブジェクト（複数可）のモデルおよび照明パラメータ）と；
−レジスタ５７２に、１つまたはいくつかのＭＲシナリオを表すパラメータと；
−レジスタ５７３に、ＭＲシナリオに関連する、現実の３Ｄシーンに対する制約と；
−レジスタ５７４に、現実の３Ｄシーンに対するかつＭＲシナリオの制約に対応する仮想適合のパラメータとを備える。
【０１０８】
本開示に特有のかつ上述された方法のステップを実装するアルゴリズムは、それらステップを実装する装置５に関連するグラフィックカード５２のメモリＧＲＡＭ５２１に格納される。スイッチが入れられパラメータ５７１、５７２、および５７４がＲＡＭ５７内にロードされると、グラフィックカード５２のグラフィックプロセッサ５２０は、それらパラメータをＧＲＡＭ５２１内にロードし、それらアルゴリズムの命令を、例えばＨＬＳＬ（上位レベルシェーダ言語）言語またはＧＬＳＬ（ＯｐｅｎＧＬシェーディング言語）を用いる「シェーダ」タイプのマイクロプログラムの形で実行する。
【０１０９】
ランダムアクセスメモリＧＲＡＭ５２１は、特に、
−レジスタ５２１１に、現実の３Ｄシーンを表すパラメータと；
−レジスタ５２１２に、ＭＲシナリオを表すパラメータと；
−レジスタ５２１３に、シナリオ制約と関連して適用される仮想適合を表すパラメータとを備える。
【０１１０】
変形例によれば、基本命令に関するデータの少なくとも一部がＲＡＭ５７に格納され、マイクロプロセッサ５１によって処理される。この変形例は、しかしながら、データがグラフィックカードからランダムアクセスメモリ５７にバス５５による通過で送信されなければならず、その送信能力は一般に、データのＧＰＵ５２０からＧＲＡＭ５２１へのそしてその逆の送信においてグラフィックカードで利用可能な送信能力よりも劣るので、ＧＰＵ５２０に含まれるマイクロプログラムから構成された環境の表現を備える画像を構成するにおいて、より大きな待ち時間を生じさせる。
【０１１１】
当業者によって理解されるように、グラフィックカード５２の存在は必須ではなく、より簡潔な視覚化の実装で置き換えることができる。
【０１１２】
別の変形例によれば、電源５８は、装置１の外部にある。
【０１１３】
本開示および詳細な実施形態を根拠として、他の実装例は、実現可能であり、発明の範囲から逸脱せずに当業者が到達する範囲内にある。指定される要素は、特に、本開示の枠内にとどまる任意の方法で交換または関連付けすることができる。また、様々な実装例の要素は、組み合わされ、補足され、修正され、または削除されて、他の実装例を作成し得る。それら全ての可能性は、本開示によって予定される。
上記実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
（付記１）
現実の３Ｄシーンの表現に重ねられる少なくとも１つの動的仮想コンテンツを生成するデバイス（１、５）であって、前記少なくとも１つの動的仮想コンテンツは、少なくとも１つのシナリオのランタイム前に規定されかつ少なくとも１つの現実世界の制約を含む前記少なくとも１つのシナリオに準拠しており（２３）、前記デバイスは、
−前記現実の３Ｄシーンにおいてキャプチャされた現実世界の情報（２２）を受信するようになされた少なくとも１つの入力部と、
−前記現実世界の情報から特定された前記少なくとも１つの現実世界の制約の存在下で、前記ランタイム時に前記少なくとも１つのシナリオを実行（１４）するように構成された少なくとも１つのプロセッサとを備え、
前記少なくとも１つのプロセッサは、さらに、前記少なくとも１つの現実世界の制約が前記現実世界の情報から特定されないとき（１２）、前記少なくとも１つのシナリオを実行する前に、前記現実の３Ｄシーンの前記表現の、仮想適合された３Ｄシーンへの変形（１３）を、前記仮想適合された３Ｄシーンが前記少なくとも１つの制約を満たすように行い、前記現実の３Ｄシーンにおいて前記少なくとも１つのシナリオを実行する代わりに、前記現実の３Ｄシーンを置き換えている前記仮想適合された３Ｄシーンにおいて前記少なくとも１つのシナリオを実行するように構成されたことを特徴とする、デバイス。
（付記２）
前記少なくとも１つの現実世界の制約が、少なくとも２つあり、かつ潜在的にインタラクトしており、前記少なくとも１つのプロセッサが、さらに、前記仮想適合された３Ｄシーンが前記少なくとも２つの制約を満たすように、前記少なくとも２つの現実世界の制約に対して合同で前記変形を行うように構成されたことを特徴とする、付記１に記載のデバイス（１、５）。
（付記３）
前記少なくとも１つの現実世界の制約が、少なくとも２つあり、潜在的にインタラクトしており、かつ重要順にしたがってランク付けされており、前記少なくとも１つのプロセッサが、さらに、少なくとも１つの最優先ランクを有する前記少なくとも１つの現実世界の制約を優先して前記変形を行うように、かつ、前記少なくとも１つの最優先ランクを有する前記少なくとも１つの現実世界の制約とは異なる前記少なくとも１つの現実世界の制約がない状態で、前記ランタイム時に、前記少なくとも１つのシナリオを実行するように構成されたことを特徴とする、付記１または２に記載のデバイス（１、５）。
（付記４）
前記少なくとも１つの制約が、少なくとも１つの現実世界のオブジェクトの存在を含み、前記少なくとも１つのプロセッサが、前記仮想適合された３Ｄシーンにおいて前記少なくとも１つの現実世界のオブジェクトの仮想表現を追加するように構成されたことを特徴とする、先行付記のいずれかに記載のデバイス（１、５）。
（付記５）
前記少なくとも１つの制約が、少なくとも１つの現実世界のオブジェクトの少なくとも１つの次元に関し、前記少なくとも１つのプロセッサが、前記少なくとも１つの次元に対する前記少なくとも１つの制約が満たされるように、前記仮想適合された３Ｄシーンにおいて前記少なくとも１つの現実世界のオブジェクトの前記少なくとも１つの次元の表現を修正するように構成されたことを特徴とする、先行付記のいずれかに記載のデバイス（１、５）。
（付記６）
前記少なくとも１つのプロセッサが、前記仮想適合された３Ｄシーンにおいて、前記少なくとも１つの制約が満たされるように、前記少なくとも１つの制約にとって不利である少なくとも１つの現実世界のオブジェクトの仮想表現を変形するように構成されたことを特徴とする、先行付記のいずれかに記載のデバイス（１、５）。
（付記７）
前記少なくとも１つのプロセッサが、前記仮想適合された３Ｄシーンにおいて前記少なくとも１つの現実世界のオブジェクトの削除、縮小、および移動のうちの少なくとも１つによって前記変形を行うように構成されたことを特徴とする、付記６に記載のデバイス（１、５）。
（付記８）
前記少なくとも１つの制約が、少なくとも１つの現実世界のオブジェクトに関係し、前記少なくとも１つのプロセッサが、前記少なくとも１つの現実世界のオブジェクトに対する前記少なくとも１つの制約が満たされるように、前記少なくとも１つの現実世界のオブジェクトの移動、回転、変換、拡大縮小、複製のうちの少なくとも１つによって前記変形を行うように構成されたことを特徴とする、先行付記のいずれかに記載のデバイス（１、５）。
（付記９）
前記変形は、前記仮想適合された３Ｄシーンにおいて少なくとも１つのエリアをクリアアップすることを含み、前記少なくとも１つのプロセッサが、さらに、前記仮想適合された３Ｄシーンにおいて前記少なくとも１つのエリアを修復するように構成されたことを特徴とする、先行付記のいずれかに記載のデバイス（１、５）。
（付記１０）
前記少なくとも１つのプロセッサが、さらに、ユーザに、前記変形を行うことに明確に関与させるように構成されたことを特徴とする、先行付記のいずれかに記載のデバイス（１、５）。
（付記１１）
前記少なくとも１つの入力部がまた、前記少なくとも１つのシナリオを受信するようになされ、前記デバイスが、さらに、ユーザが、前記仮想適合された３Ｄシーンにおいて前記少なくとも１つのシナリオを視覚化するために、前記仮想適合された３Ｄシーンの表現の少なくとも一部を出力するようになされた少なくとも１つの出力部を備えることを特徴とする、先行付記のいずれかに記載のデバイス（１、５）。
（付記１２）
装置（５）であって、前記装置は、先行付記のいずれかによるデバイスを備え、前記装置は、動画受信器、携帯電話、タブレット、および拡張現実用の頭部装着ディスプレイシステムから選択されることを特徴とする、装置。
（付記１３）
現実の３Ｄシーンの表現に重ねられる少なくとも１つの動的仮想コンテンツを生成する方法であって、前記少なくとも１つの動的仮想コンテンツは、少なくとも１つのシナリオのランタイム前に規定されかつ少なくとも１つの現実世界の制約を含む前記少なくとも１つのシナリオに準拠しており、前記方法は、
−前記現実の３Ｄシーンにおいてキャプチャされた現実世界の情報を受信すること（４１）と、
−前記現実世界の情報から特定された前記少なくとも１つの現実世界の制約の存在下で、前記ランタイム時に前記少なくとも１つのシナリオを実行することとを含み、
前記方法が、さらに、前記少なくとも１つの現実世界の制約が前記現実世界の情報から特定されないとき（４５２、４５３）、前記少なくとも１つのシナリオを実行する前に、前記現実の３Ｄシーンの前記表現の、仮想適合された３Ｄシーンへの変形を、前記仮想適合された３Ｄシーンが前記少なくとも１つの制約を満たすように行い、前記現実の３Ｄシーンにおいて前記少なくとも１つのシナリオを実行する代わりに、前記現実の３Ｄシーンを置き換えている前記仮想適合された３Ｄシーンにおいて前記少なくとも１つのシナリオを実行することを含むことを特徴とする、方法。
（付記１４）
付記１〜１０のいずれかによるデバイス（１、５）によって実行されることを特徴とする、付記１３に記載の方法。
（付記１５）
少なくとも１つの動的仮想コンテンツを生成するコンピュータプログラムであって、前記プログラムがプロセッサによって実行されると、付記１３または１４に準拠する方法を行うようになされたソフトウェアコードを備える、コンピュータプログラム。
【図１】
0006972135.tif 000002
【図２】
0006972135.tif 000003
【図３】
0006972135.tif 000004
【図４】
0006972135.tif 000005