(57)【要約】  マシンは、生成されるシーン内のホログラム位置を実行するように構成されている。マシンは、ターゲットデバイスの動きを記述するターゲット運動データにアクセスする。ターゲット運動データに基づいて、マシンはターゲットデバイスのターゲット速度を示し、かつターゲットデバイスが移動しているターゲット方向を示すターゲット運動ベクトルを決定する。マシンは、ユーザデバイスによって表示のために生成されるホログラムのためのホログラム運動ベクトルを決定する。ホログラム運動ベクトルは、ホログラムの相対速度を示し、かつホログラムについての運動の相対方向を示す。次いで、マシンは、ユーザデバイスに、ホログラムがターゲット速度および相対速度に基づいて決定された速度で移動し、かつターゲット方向および相対方向に基づいて決定された方向に移動するシーンを生成させる。
2020517032.tif 000002
【特許請求の範囲】
【請求項１】
１つ以上のプロセッサによって、ターゲットデバイスのジオロケーション移動を記述するターゲット運動データにアクセスすることと、
前記１つ以上のプロセッサによって、前記ターゲットデバイスのターゲット速度を示し、かつ前記ターゲットデバイスが該ターゲット速度で移動しているターゲット方向を示すターゲット運動ベクトルを決定することであって、該ターゲット運動ベクトルはアクセスされた前記ターゲット運動データに基づいて決定される、決定することと、
前記１つ以上のプロセッサによって、生成されるホログラムの相対速度を示し、かつ生成される該ホログラムの相対方向を示すホログラム運動ベクトルを決定することであって、該相対速度および該相対方向は前記ターゲットデバイスに対して相対的である、決定することと、
前記１つ以上のプロセッサによって、ユーザデバイスに、前記ホログラムを生成させ、前記ホログラムが前記ターゲットデバイスの前記ターゲット速度および前記ホログラムの前記相対速度に基づいて決定されたホログラム速度で移動し、かつ前記ターゲットデバイスの前記ターゲット方向および前記ホログラムの前記相対方向に基づいて決定されたホログラム方向に移動する拡張現実シーンを表示させることと、を含む方法。
【請求項２】
アクセスされた前記ターゲット運動データは、惑星表面に対する前記ターゲットデバイスの前記ジオロケーション移動を記述し、
当該方法は、前記惑星表面に対する前記ユーザデバイスのジオロケーション移動を記述するユーザ運動データにアクセスすることをさらに含み、
前記ターゲット運動ベクトルを決定することは、さらに、アクセスされた前記ユーザ運動データに基づいており、前記ユーザデバイスに対する前記ターゲットデバイスの相対ターゲット速度を示し、かつ前記ユーザデバイスに対する前記ターゲットデバイスの相対ターゲット方向を示す相対ターゲット運動ベクトルを決定し、
前記ホログラム速度は、前記ユーザデバイスに対する前記ホログラムの相対ホログラム速度であり、前記ユーザデバイスに対する前記ターゲットデバイスの前記相対ターゲット速度に基づいて決定され、
前記ホログラム方向は、前記ユーザデバイスに対する前記ホログラムの相対ホログラム方向であり、前記ユーザデバイスに対する前記ターゲットデバイスの前記相対ターゲット方向に基づいて決定される、請求項１に記載の方法。
【請求項３】
アクセスされた前記ターゲット運動データは、惑星表面に関連した前記ターゲットデバイスの前記ジオロケーション移動を記述し、
前記ホログラムの前記ホログラム速度は前記惑星表面に対して相対的であり、
前記ホログラムの前記ホログラム方向は前記惑星表面に対して相対的である、請求項１記載の方法。
【請求項４】
前記ホログラム運動ベクトルの決定は、
前記ターゲットデバイスの前記ターゲット速度および前記ホログラムの前記相対速度に基づいて前記ホログラムの前記ホログラム速度を決定すること、および
前記ターゲットデバイスの前記ターゲット方向および前記ホログラムの前記相対方向に基づいて前記ホログラムの前記ホログラム方向を決定すること、
ことにより、相対ホログラム運動ベクトルを決定することを含む、請求項１記載の方法。
【請求項５】
前記ユーザデバイスのカメラの視野の決定することをさらに含み、
前記ユーザデバイスに前記拡張現実シーンを表示させることは、前記ユーザデバイスに、前記ユーザデバイスの前記カメラの決定された視野内に生成された前記ホログラムを表示させることを含む、請求項１から４のいずれかに記載の方法。
【請求項６】
前記ターゲットデバイスのジオロケーションを記述するターゲット位置データにアクセスすることと、
前記ターゲットデバイスの前記ジオロケーションが前記ユーザデバイスのカメラの視野内にあることを検出することと、をさらに含み、
前記ユーザデバイスに前記拡張現実シーンを表示させることは、前記ターゲットデバイスの前記ジオロケーションが前記ユーザデバイスのカメラの決定された視野内にあると検出されることに基づいて、前記ユーザデバイスに、前記ターゲットデバイスの前記ジオロケーションを前記拡張現実シーンに包含させることを含む、請求項５に記載の方法。
【請求項７】
前記ターゲットデバイスのジオロケーションを記述するターゲット位置データにアクセスすることと、
前記前記ターゲットデバイスが前記ユーザデバイスのカメラの視野外にあることを検出することと、をさらに含み、
前記ユーザデバイスに前記拡張現実シーンを表示させることは、前記ユーザデバイスに、前記ターゲットデバイスの前記ジオロケーションが前記ユーザデバイスのカメラの決定された視野外にあると検出されることに基づいて、前記拡張現実シーンから前記ターゲットデバイスの前記ジオロケーションを省略させることを含む、請求項５に記載の方法。
【請求項８】
前記ユーザデバイスに前記拡張現実シーンを表示させることは、前記ユーザデバイスに、前記ターゲットデバイスが移動している前記ターゲット方向に基づいて指向された前記ホログラムを表示させることを含む、請求項１から４のいずれか一項に記載の方法。
【請求項９】
前記ターゲットデバイスが移動している前記ターゲット方向に対する前記ホログラムの相対指向を示すホログラム指向ベクトルを決定することをさらに含み、
前記ユーザデバイスに前記拡張現実シーンを表示させることは、前記ユーザデバイスに、前記ターゲットデバイスが移動している前記ターゲット方向に対する前記ホログラムの前記相対指向に基づいて、さらに指向された前記ホログラムを表示させることを含む、請求項８に記載の方法。
【請求項１０】
前記ホログラムは、一群のホログラムに含まれ、
前記ホログラムの前記ホログラム運動ベクトルの決定は、各々が前記一群のホログラム内の異なるホログラムに対応する一群のホログラム運動ベクトルを決定する一部として実行され、
前記ユーザデバイスに前記拡張現実シーンを表示させることは、前記ユーザデバイスに、前記一群のホログラムを表示させることを含み、前記一群内の各ホログラムは、対応する決定されたホログラム運動ベクトルに基づいて表示される、請求項１から４のいずれか一項に記載の方法。
【請求項１１】
各々が前記一群のホログラム内の異なるホログラムの対応する相対指向を示す一群のホログラム指向ベクトルを決定することであって、各相対指向は前記ターゲットデバイスが移動している前記ターゲット方向に対して相対的である、決定することをさらに含み、
前記ユーザデバイスに前記一群のホログラムを表示させることは、前記一群内の各ホログラムを、前記ターゲットデバイスが移動している前記ターゲット方向に対して相対的である対応する相対指向に基づいて指向されることを含む、請求項１０に記載の方法。
【請求項１２】
前記ターゲットデバイスのジオロケーションを記述するターゲット位置データにアクセスすることと、
前記ホログラムの相対オフセット距離を示し、かつ前記ホログラムの相対オフセット方向を示す相対オフセットベクトルを決定することと、をさらに含み、
前記ユーザデバイスに前記拡張現実シーンを表示させることは、前記ユーザデバイスに、前記ターゲットデバイスの前記ジオロケーションから離れた前記相対オフセット距離および前記ターゲットデバイスが移動している前記ターゲット方向に対する前記相対オフセット方向で前記ホログラムを表示させることを含む、請求項１から４のいずれか一項に記載の方法。
【請求項１３】
前記相対オフセットベクトルの決定は、
前記相対オフセット距離を前記ホログラムに相関させるホログラムデータベースから前記ホログラムの前記相対オフセット距離にアクセスすること、および
前記ホログラムデータベースから前記ホログラムの前記相対オフセット方向にアクセスすることであって、前記ホログラムデータベースは前記相対オフセット方向を前記ホログラムに相関させる、アクセスすることを含む、請求項１２に記載の方法。
【請求項１４】
前記ホログラム運動ベクトルの決定は、
前記相対速度を前記ホログラムに相関させるホログラムデータベースから前記ホログラムの前記相対速度にアクセスすること、および
前記ホログラムデータベースから前記ホログラムの前記相対方向にアクセスすることであって、前記ホログラムデータベースは前記相対方向を前記ホログラムに相関させる、アクセスすることを含む、請求項１から４のいずれか一項に記載の方法。
【請求項１５】
前記ユーザデバイスは、ネットワークを介して第２のユーザデバイスに通信可能に結合された第１のユーザデバイスであり、
当該方法は、前記第１のユーザデバイスに、表示された前記拡張現実シーンの少なくとも部分を前記第２のユーザデバイスに通信させることであって、通信された該部分は、前記ターゲットデバイスの前記ターゲット速度および前記ホログラムの前記相対速度に基づいて決定された前記ホログラム速度で移動する前記ホログラムを描画し、かつ前記ターゲットデバイスの前記ターゲット方向および前記前記ホログラムの前記相対方向に基づいて決定された前記ホログラム方向に移動する前記ホログラムを描画する、通信させることをさらに含む、請求項１から４のいずれか一項に記載の方法。
【請求項１６】
前記ユーザデバイスに、表示された前記拡張現実シーンの少なくとも部分を記録させることであって、記録された該部分は、前記ターゲットデバイスの前記ターゲット速度および前記ホログラムの前記相対速度に基づいて決定された前記ホログラム速度で移動する前記ホログラムを描画し、かつ前記ターゲットデバイスの前記ターゲット方向および前記ホログラムの前記相対方向に基づいて決定された前記ホログラム方向に移動する前記ホログラムを描画する、記憶させることをさらに含む、請求項１から４のいずれかに記載の方法。
【請求項１７】
前記ユーザデバイスは、ネットワークを介して第２のユーザデバイスに通信可能に結合された第１のユーザデバイスであり、
当該方法は、前記第１のユーザデバイスに、表示された前記拡張現実シーンの記録された前記部分を前記第２のユーザデバイスに通信させることをさらに含む、請求項１６に記載の方法。
【請求項１８】
前記ユーザデバイスに前記ホログラムを生成させ、前記拡張現実シーンを表示させることは、前記ユーザデバイスのカメラによって生成されたライブカメラデータにアクセスすること、および前記ホログラムと該ライブカメラデータのすくなくとも部分を描画する合成ビデオを生成することを含む、請求項１から４のいずれか一項に記載の方法。
【請求項１９】
前記ユーザデバイスが前記ホログラムを生成させ、前記拡張現実シーンを表示させることは、前記ユーザデバイスに、前記ユーザデバイスのカメラによって生成されたライブカメラデータにアクセスさせること、および前記ユーザデバイスに、前記ホログラムと該ライブカメラデータの少なくとも部分を描写する合成ビデオを生成させることを含む、請求項１から４のいずれか一項に記載の方法。
【請求項２０】
マシンの１つ以上のプロセッサによって実行されると、該マシンに動作を実行させる命令を含むマシン読み取り可能媒体であって、該動作は、
ターゲットデバイスのジオロケーション移動を記述するターゲット運動データにアクセスすることと、
前記ターゲットデバイスのターゲット速度を示し、かつ前記ターゲットデバイスが該ターゲット速度で移動しているターゲット方向を示すターゲット運動ベクトルを決定することであって、該ターゲット運動ベクトルはアクセスされた前記ターゲット運動データに基づいて決定される、決定することと、
生成されるホログラムの相対速度を示し、かつ生成される該ホログラムの相対方向を示すホログラム運動ベクトルを決定することであって、該相対速度および該相対方向は前記ターゲットデバイスに対して相対的である、決定することと、
ユーザデバイスに、前記ホログラムを生成させ、前記ホログラムが前記ターゲットデバイスの前記ターゲット速度および前記ホログラムの前記相対速度に基づいて決定されたホログラム速度で移動し、かつ前記ターゲットデバイスの前記ターゲット方向および前記ホログラムの前記相対方向に基づいて決定されたホログラム方向に移動する拡張現実シーンを表示させることと、を含む、マシン読み取り可能媒体。
【請求項２１】
システムであって、
１つ以上のプロセッサと、
前記１つ以上のプロセッサのうちの少なくとも１つのプロセッサによって実行されると、当該システムに動作を実行させる命令を記憶するメモリと、を含み、
前記動作は、
ターゲットデバイスのジオロケーション移動を記述するターゲット運動データにアクセスすることと、
前記ターゲットデバイスのターゲット速度を示し、かつ前記ターゲットデバイスが該ターゲット速度で移動しているターゲット方向を示すターゲット運動ベクトルを決定することであって、該ターゲット運動ベクトルはアクセスされた前記ターゲット運動データに基づいて決定される、決定することと、
生成されるホログラムの相対速度を示し、かつ生成される該ホログラムの相対方向を示すホログラム運動ベクトルを決定することであって、該相対速度および該相対方向は前記ターゲットデバイスに対して相対的である、決定することと、
ユーザデバイスに、前記ホログラムを生成させ、前記ホログラムが前記ターゲットデバイスの前記ターゲット速度および前記ホログラムの前記相対速度に基づいて決定されたホログラム速度で移動し、かつ前記ターゲットデバイスの前記ターゲット方向および前記ホログラムの前記相対方向に基づいて決定されたホログラム方向に移動する拡張現実シーンを表示させることと、を含む、システム。
【請求項２２】
アクセスされた前記ターゲット運動データは、惑星表面に対する前記ターゲットデバイスの前記ジオロケーション移動を記述し、
前記動作は、前記惑星表面に対する前記ユーザデバイスのジオロケーション移動を記述するユーザ運動データにアクセスすることをさらに含み、
前記ターゲット運動ベクトルを決定することは、さらに、アクセスされた前記ユーザ運動データに基づいており、前記ユーザデバイスに対する前記ターゲットデバイスの相対ターゲット速度を示し、かつ前記ユーザデバイスに対する前記ターゲットデバイスの相対ターゲット方向を示す相対ターゲット運動ベクトルを決定し、
前記ホログラム速度は、前記ユーザデバイスに対する前記ホログラムの相対ホログラム速度であり、前記ユーザデバイスに対する前記ターゲットデバイスの前記相対ターゲット速度に基づいて決定され、
前記ホログラム方向は、前記ユーザデバイスに対する前記ホログラムの相対ホログラム方向であり、前記ユーザデバイスに対する前記ターゲットデバイスの前記相対ターゲット方向に基づいて決定される、請求項２１に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
この出願は、「Hologram  Location」と題する、２０１７年４月１７日に出願された米国特許出願第１５／４８９，００１号の優先権の利益を主張し、その全体が参照により本明細書に援用される。
【０００２】
本明細書で開示する主題は、一般的に、コンピュータ生成画像を容易にする特別目的マシンの技術分野に関し、そのような特別目的マシンのソフトウェアが構成されたコンピュータ化された変形およびそのような変形に対する改善を含み、（例えば、拡張現実シーンもしくは仮想現実シーン、またはその両方における)コンピュータ生成画像を容易にする他の専用マシンと比較して、そのような専用マシンが改善されたものとなる技術に関する。具体的には、本開示は、ホログラム位置を容易にするためのシステムおよび方法を扱う。
【背景技術】
【０００３】
マシンは、(例えば、マシンの移動を引き起こすユーザ入力などのユーザ入力に応答して)拡張現実シーンまたは仮想現実シーンを生成および表示することによって、あるいは別のマシン(例えば、ユーザデバイス)に拡張現実シーンまたは仮想現実シーンを生成および表示させることによって、１人以上の複数のユーザと相互作用するように構成されることがある。例えば、マシンは、ディスプレイスクリーンおよびビデオカメラを備えたユーザデバイス(例えば、タブレット・コンピュータまたはスマートフォン)とすることができ、マシンは、ビデオカメラでライブビデオを生成し、何らかのコンピュータグラフィックス(例えば、１つ以上のコンピュータ生成画像)を生成し、ディスプレイスクリーンに、コンピュータグラフィックスがライブビデオに重ねられた合成シーンを表示させるように構成することができる。そのような合成シーンは、拡張現実シーンと呼ばれることがある。代替的には、ライブビデオが合成されたシーンから省略されるか、そうでなければ、存在しない場合、合成シーンは、仮想現実シーンと呼ばれることがある。
【図面の簡単な説明】
【０００４】
いくつかの実施形態は、例により説明し、添付の図面の図に限定されない。
【０００５】
【図１】いくつかの例示的な実施形態による、ホログラム位置に適したネットワーク環境を示すネットワーク図である。
【図２】いくつかの例示的な実施形態による、ホログラム位置に適したホログラム配置マシンの構成要素を示すブロック図である。
【図３】いくつかの例示的な実施形態による、ホログラム位置に適したユーザデバイスの構成要素を示すブロック図である。
【図４】いくつかの例示的な実施形態による、ターゲットユーザと、ターゲットユーザが着用した衣服によって隠れているターゲットデバイスとを含む現実世界シーンを示す概念図である。
【図５】いくつかの例示的な実施形態による、ターゲットユーザを含む拡張現実シーンを表示するユーザデバイスを示す概念図である。
【図６】いくつかの例示的な実施形態による、ターゲットユーザのターゲットデバイスに対して位置する複数のホログラムと同様に、ターゲットユーザを含む拡張現実シーンを表示するユーザデバイスを示す概念図である。
【図７】いくつかの例示的な実施形態による、ホログラム、ターゲットデバイス、およびユーザデバイスに対応するジオロケーションおよび運動ベクトルを示す概念図である。
【図８】いくつかの例示的な実施形態による、ホログラムに対応するジオロケーション、オフセットベクトル、および指向ベクトルを示す概念図である。
【図９】いくつかの例示的な実施形態による、ホログラム位置の方法を示す動作のフローチャートである。
【図１０】いくつかの例示的な実施形態による、ホログラム位置の方法を示す動作のフローチャートである。
【図１１】いくつかの例示的な実施形態による、ホログラム位置の方法を示す動作のフローチャートである。
【図１２】いくつかの例示的な実施形態による、ホログラム位置の方法を示す動作のフローチャートである。
【図１３】いくつかの例示的な実施形態による、ホログラム位置の方法を示す動作のフローチャートである。
【図１４】いくつかの例示的な実施形態による、マシンの構成要素を示すブロック図であって、マシン読み取り可能媒体から命令を読み取り、本明細書で論じる任意の１つ以上の方法を実行することができるものを示す。
【発明を実施するための形態】
【０００６】
例示的な方法(例えば、アルゴリズムまたは他の手順もしくはプロセスを組み込んだ動作)は、ホログラムの位置を容易にし、例示的なシステム(例えば、特別目的ソフトウェアによって構成されている特別目的マシン)は、ホログラムの位置を容易にするように構成される。例は、可能な変形を典型的に示すにすぎない。明示的に記載されない限り、構造(例えば、モジュールのような構造的構成要素)は任意であり、組み合わせられても、あるいは細分化されてもよく、(例えば、手順、アルゴリズム、または他の機能における)動作は、順序が変化しても、組み合わされても、あるいは細分化されてもよい。以下の説明では、説明を目的として、様々な例示的な実施形態についての完全な理解を提供するために、多数の具体的な詳細を明示する。しかし、本主題は、これらの具体的な詳細がなくとも実施することができることは当業者には明らかであろう。
【０００７】
マシン（例えば、サーバマシンまたはユーザデバイス）は、ユーザデバイス（例えば、ビューイングデバイス）による表示のために生成されるシーン（例えば、拡張現実シーンまたは仮想現実シーン）におけるホログラム位置を実行するように構成され得る。シーン内の位置におけるホログラムの配置は、ターゲットデバイスに対するホログラムの位置（例えば、地球測位システム（ＧＰＳ）座標によって示されるようなジオロケーション（geolocation））を決定することと、ターゲットデバイスに対するホログラムの移動速度を決定することと、ターゲットデバイスに対するホログラムの移動方向を決定することと、ターゲットデバイスに対するホログラムの指向（orientation）を決定することと、またはそれらの任意の適切な組み合わせを含むことができる。例えば、そのような決定のうちの任意の１つ以上は、ターゲットデバイスの位置（例えば、ジオロケーション）、ターゲットデバイスの移動速度、ターゲットデバイスの移動方向、またはそれらの任意の適切な組み合わせに基づいて実行され得る。
【０００８】
構成されているように、マシンはターゲットデバイスのジオロケーション移動を記述するターゲット運動データにアクセスする。ターゲット運動データに基づいて、マシンは、ターゲットデバイスのターゲット速度を示すターゲット運動ベクトルを決定（例えば、計算または生成）する。ターゲット運動ベクトルはまた、ターゲットデバイスがターゲット速度で移動しているターゲット方向を示す。次いで、ターゲット運動ベクトルに基づいて、マシンは、ユーザデバイス（例えば、ビューイングデバイス）による表示のために生成される各ホログラムのためのホログラム運動ベクトルを決定する。ホログラム運動ベクトルは、対応するホログラムの（例えば、ターゲットデバイスに対する、あるいはユーザデバイスに対する）相対速度を示し、対応するホログラムの（例えば、ターゲットデバイスに対する、あるいはユーザデバイスに対する）相対方向を示す。
【０００９】
ホログラム運動ベクトルに基づいて、マシンは、ユーザデバイスに、（例えば、ホログラム運動ベクトルによって示されるように、）ターゲットデバイスのターゲット速度に基づいて、かつホログラムの相対速度に基づいて決定される速度（例えば、ホログラム速度）でホログラムが移動するシーン（例えば、拡張現実シーン）を生成させる。さらに、シーン内で、ホログラムは、（例えば、ホログラム運動ベクトルによって示されるように、）ターゲットデバイスのターゲット方向に基づいて、かつホログラムの相対方向に基づいて決定される方向（例えば、ホログラム方向）に移動する。
【００１０】
様々な例示的な実施形態によれば、マシンのこの挙動は、ターゲットデバイスおよびそのユーザが、ユーザデバイスの視野内を移動（例えば、歩行）している速度および方向を決定し、次いで、ターゲットデバイスのところまたはその周囲に１つ以上のホログラムを位置させ（例えば、配置し）、指向するようにする効果を有することができる。例えば、生成されたシーンでは、サイエンス・フィクションのキャラクター（例えば、Darth  Vader（登録商標））のホログラムが、ターゲットデバイスの位置に位置し（例えば、配置され）（例えば、ターゲットデバイスおよびそのユーザをカプセル化し見えなくする）、ターゲットデバイスが移動している方向に指向されつつ、サイエンス・フィクションの兵士（例えば、Stormtroopers（商標））のホログラムが、ターゲットデバイスの近くのオフセット位置に位置され（例えば、Darth  Vaderの後ろを歩く）、ターゲットデバイスが移動している方向と同じ方向に指向される。別の例として、都市バスが、ターゲットデバイスであってもよいし、ターゲットデバイスを含んでもよく、生成された拡張現実シーンは、鳥、昆虫、またはドラゴンのホログラムを、都市バスの後ろおよび上方の様々なオフセット位置に位置させることができる。様々な例示的な実施形態によれば、そのようなホログラムは、都市バスが進行する方向と同じ方向に飛行することによって都市バスを追跡するように動的に更新（例えば、アニメーション化）され得る。さらに、生成されたシーン内のホログラムは、個々または一群の飛行パターン（例えば、カオス的な大群または隊列飛行）に従ってアニメーション化されることができる。
【００１１】
本明細書で使用される、用語「ホログラム」は、三次元環境における仮想三次元オブジェクトのマシン的に実行されるレンダリングを指す。仮想三次元オブジェクトは、（例えば、テクスチャ・マッピング画像のようなテクスチャ・マッピングを備えたあるいは備えていない）三次元モデル、三次元点クラウド（例えば、テクスチャ・マッピングを備えたあるいは備えていない点クラウド）、三次元ボクセル体積（例えば、ボクセル・グリッド）、またはそれらの任意の適切な組み合わせであってもよいし、あるいはそれらを含んでもよい。三次元オブジェクトがレンダリングされる三次元環境（例えば、三次元空間）は、拡張現実シーン、仮想現実シーン、またはその両方であってもよいし、あるいはその両方を含んでもよい。
【００１２】
一旦レンダリングされると、（例えば、ユーザがスマートフォンや仮想現実ゴーグルのようなビューイングデバイスを用いて三次元環境を見るとき、）仮想三次元物体は三次元環境内で可視化され、三次元環境の一部分を占有しているように見える。したがって、仮想三次元オブジェクトをレンダリングすることは、対応するホログラムを生成すること（すなわち、仮想三次元オブジェクトのレンダリングを生成すること）を指すことができる。
【００１３】
さらに、ホログラムは、静的であっても（例えば、アニメーション化されないか、そうでなければ、時間が経過しても動かない）、あるいは動的であってもよい（例えば、アニメーション化される、そうでなければ、形状、サイズ、色、輝度、透明度、位置、指向、またはそれらの適当な組み合わせに関して、時間の経過とともに変化する）。例えば、ホログラムは、一定期間にわたって（例えば、１つ以上の対応するオーディオトラックを備えたあるいは備えていない）（例えば、人の腕、脚、手、または顔による）一連の動きを行う動物または人（例えば、有名人または架空のキャラクター）の動的三次元モデルであってもよく、またはそれを含んでもよい。
【００１４】
図１は、いくつかの例示的な実施形態による、ホログラム位置に適したネットワーク環境１００を示すネットワーク図である。ネットワーク環境１００は、ホログラム配置マシン１１０と、データベース１１５と、ターゲットデバイス１３０と、ユーザデバイス１４０および１５０（例えば、ビューイングデバイス）とを含み、これらはすべて、ネットワーク１９０を介して互いに通信可能に結合されている。データベース１１５を備えたあるいは備えていないホログラム配置マシン１１０は、クラウド１１８（例えば、単一のサーバとして機能するように構成された地理的に分散した複数のマシンのセット）の全部または一部を形成することができ、クラウド１１８は、ネットワークベースシステム１０５（例えば、ターゲットデバイス１３０とユーザデバイス１４０および１５０のうちの任意の１つ以上に、１つ以上のネットワークベースのサービスを提供するように構成されているクラウドベースのサーバシステム）の全部または一部を形成することができる。ホログラム配置マシン１１０と、ターゲットデバイス１３０と、ユーザデバイス１４０および１５０は、それぞれ、全体的にまたは部分的に、図１４に関して後述するように、特別目的（例えば、特殊化された）コンピュータ・システム内に実装することができる。
【００１５】
図１にはまた、ユーザ１３２、１４２、１５２が示されている。ユーザ１３２、１４２、および１５２の任意の１つ以上は、人のユーザ（例えば、人間）、マシンのユーザ（例えば、デバイスと対話するためにソフトウェア・プログラムによって構成されたロボットまたはコンピュータ）、またはそれらの任意の適切な組み合わせ（例えば、マシンによって支援される人または人によって監督されるマシン）とすることができる。ユーザ１３２は、ターゲットデバイス１３０に関連付けられており、ターゲットデバイス１３０の人のユーザとすることができる。例えば、（例えば、ＧＰＳレシーバなどの統合されたジオロケーション・センサを備える）ターゲットデバイス１３０は、ユーザ１３２に属するデスクトップ・コンピュータ、ビークル・コンピュータ、タブレット・コンピュータ、ナビゲーション・デバイス、ポータブル・メディア・デバイス、スマートフォン、またはウェアラブル・デバイス（例えば、スマートウォッチ、スマートグラス、スマート衣料、またはスマートジュエリー）とすることができる。同様に、ユーザ１４２は、ユーザデバイス１４０（例えば、統合されたジオロケーション・センサを備えたあるいは備えていないビューイングデバイス）に関連付けられ、ユーザデバイス１４０の人のユーザとすることができる。例として、ユーザデバイス１４０は、ユーザ１４２に属するデスクトップ・コンピュータ、ビークル・コンピュータ、タブレット・コンピュータ、ナビゲーション・デバイス、ポータブル・メディア・デバイス、スマートフォン、またはウェアラブル・デバイス（例えば、スマートウォッチ、スマートグラス、スマート衣料、またはスマートジュエリー）とすることができる。同様に、ユーザ１５２は、ユーザデバイス１５０に関連付けられ、ユーザデバイス１５０の人のユーザとすることができる。例として、ユーザデバイス１５０（統合されたジオロケーション・センサを備えたあるいは備えていない別のビューイングデバイス）は、ユーザ１５２に属するデスクトップ・コンピュータ、ビークル・コンピュータ、タブレット・コンピュータ、ナビゲーション・デバイス、ポータブル・メディア・デバイス、スマートフォン、またはウェアラブル・デバイス（例えば、スマートウォッチ、スマートグラス、スマート衣料、またはスマートジュエリー）とすることができる。
【００１６】
図１に示すシステムまたはマシン（例えば、データベースおよびデバイス）のいずれも、そのシステムまたはマシンのために本明細書で説明する機能の１つ以上を実行するように修正された特別目的（例えば、特殊化された、そうでなければ、非従来型で非汎用な）コンピュータとすることができ、あるいはその特別目的コンピュータを含むことができ、そうでなければ、その特別目的コンピュータにおいて実装され得る（例えば、特別目的アプリケーション、オペレーティング・システム、ファームウェア、ミドルウェア、または他のソフトウェア・プログラムのうち１つ以上のソフトウェアモジュール等の特別目的ソフトウェアによって構成またはプログラムされる）。例えば、本明細書で説明する方法論のいずれか１つ以上を実装することができる特別目的コンピュータ・システムは、図１４に関して後述され、それに応じて、このような特別目的コンピュータは、本明細書で論じる方法論のいずれか１つ以上を実装するための手段とすることができる。そのような特別目的コンピュータの技術分野では、本明細書で論じる機能を実行するために本明細書で論じる構造により特別に修正された（例えば、特別目的ソフトウェアにより構成された）特別目的のコンピュータは、本明細書で説明する構造を欠いているか、そうでければ本明細書で説明する機能を実行することができない他の専用目的のコンピュータと比較して技術的に改善されている。従って、本明細書で論じるシステムおよび方法に従って構成された専用マシンは、同様の特別目的マシンの技術の改善を提供する。
【００１７】
本明細書で使用する「データベース」は、データ記憶リソースであり、テキストファイル、テーブル、スプレッドシート、関係データベース（例えば、オブジェクト関係データベース）、トリプルストア、階層的データストア、またはそれらの任意の適切な組み合わせとして構造化されたデータを記憶することができる。さらに、図１に示すシステムまたはマシンのうちの任意の２つ以上を単一のシステムまたはマシンに組み合わせることができ、任意の単一のシステムまたはマシンに対する本明細書で説明する機能を複数のシステムまたはマシンの間で細分化することができる。
【００１８】
ネットワーク１９０は、システム、マシン、データベース、およびデバイスの間（例えば、ホログラム配置マシン１１０とターゲットデバイス１３０の間、またはターゲットデバイス１３０とユーザデバイス１４０の間）の通信を可能にする任意のネットワークとすることができる。従って、ネットワーク１９０は、有線ネットワーク、無線ネットワーク（例えば、モバイルまたはセルラネットワーク）、またはそれらの任意の適切な組み合わせとすることができる。ネットワーク１９０は、プライベートネットワーク、公衆ネットワーク（例えば、インターネット）、またはそれらの任意の適切な組み合わせを構成する１つ以上の部分を含むことができる。従って、ネットワーク１９０は、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、インターネット、携帯電話ネットワーク（セルラネットワーク）、有線電話ネットワーク（例えば、基本電話サービス（ＰＯＴＳ）ネットワーク）、無線データネットワーク（例えば、Ｗｉ−ＦｉネットワークまたはＷｉ−Ｍａｘネットワーク）、またはそれらの任意の適切な組み合わせを組み込んだ１つ以上の部分を含むことができる。ネットワーク１９０の任意の１つ以上の部分は、伝送媒体を介して情報を通信することができる。本明細書で使用する「伝送媒体」とは、マシンによる（例えば、そのようなマシンの１つ以上のプロセッサによる）実行のための命令を通信（例えば、送信）することができる任意の無形の（例えば、一時的な）媒体を指し、そのようなソフトウェアの通信を容易にするためのデジタルまたはアナログ通信信号または他の無形媒体を含む。
【００１９】
図２は、いくつかの例示的な実施形態による、ホログラム配置マシン１１０の構成要素を示すブロック図である。ホログラム配置マシン１１０は、ターゲットデバイス・インタフェース２１０、ターゲット分析器２２０、ホログラムマネージャ２３０、およびユーザデバイス・インタフェース２４０を含むように示されており、これらは全て、互いに（例えば、バス、共有メモリ、またはスイッチを介して）通信するように構成されている。従って、特定の例示的な実施形態では、ホログラム配置マシン１１０は、本明細書で説明する１つ以上の方法論を実行するように構成されている。
【００２０】
図２に示すように、ターゲットデバイス・インタフェース２１０、ターゲット分析器２２０、ホログラムマネージャ２３０、ユーザデバイス・インタフェース２４０、またはそれらの任意の適切な組み合わせは、（例えば、データベース１１５から受信されたデータに応答して、そうでなければその結果として）ホログラム配置マシン１１０に記憶された（例えば、インストールされた）アプリケーション２００（例えば、ソフトウェア・プログラム）の全部または一部を形成することができる。さらに、１つ以上のプロセッサ２９９（例えば、ハードウェアプロセッサ、デジタルプロセッサ、またはそれらの任意の適切な組み合わせ）は、アプリケーション２００、ターゲットデバイス・インタフェース２１０、ターゲット分析器２２０、ホログラムマネージャ２３０、ユーザデバイス・インタフェース２４０、またはそれらの任意の適切な組み合わせに（例えば、一時的または永続的に）含まれ得る。
【００２１】
図３は、いくつかの例示的な実施形態による、ユーザデバイス１４０の構成要素を示すブロック図である。ユーザデバイス１５０は、同様に構成され得る。図３では、ユーザデバイス１４０は、ターゲットデバイス・インタフェース２１０、ターゲット分析器２２０、ホログラムマネージャ２３０、およびグラフィックスマネージャ３４０のインスタンスを含むように示されており、これらはすべて、互いに（例えば、バス、共有メモリ、またはスイッチを介して）通信するように構成されている。従って、特定の例示的な実施形態では、ユーザデバイス１４０は、本明細書で説明する１つ以上の方法論を実行するように構成されている。いくつかのハイブリッドな例示的な実施形態では、本明細書で説明する１つ以上の方法論は、ホログラム配置マシン１１０およびユーザデバイス１４０の組み合わせによって実行される。
【００２２】
図３に示すように、ターゲットデバイス・インタフェース２１０、ターゲット分析器２２０、ホログラムマネージャ２３０、グラフィックスマネージャ３４０、またはそれらの任意の適切な組み合わせのインスタンスは、（例えば、データベース１１５から受信されたデータに応答して、そうでなければその結果として）ユーザデバイス１４０に記憶された（例えば、インストールされた）ａｐｐ３００（例えば、モバイルａｐｐ）の全部または一部を形成することができる。さらに、プロセッサ２９９の１つ以上のインスタンス（例えば、ハードウェアプロセッサ、デジタルプロセッサ、またはそれらの任意の適切な組み合わせ）は、アプリケーション２００、ターゲットデバイス・インタフェース２１０、ターゲット分析器２２０、ホログラムマネージャ２３０、グラフィックスマネージャ３４０、またはそれらの任意の適切な組み合わせに（例えば、一時的または永続的に）含まれ得る。
【００２３】
本明細書で説明する任意の１つ以上の構成要素（例えば、モジュール）は、ハードウェア単独（例えば、プロセッサ２９９の１つ以上のインスタンス）またはハードウェアとソフトウェアの組み合わせを使用して実装され得る。例えば、本明細書で説明する任意の構成要素は、物理的に、その構成要素のために本明細書で説明する動作を実行するように構成されているプロセッサ２９９の１つ以上のインスタンス（例えば、プロセッサ２９９のサブセットまたはその内のサブセット）のアレンジメントを含むことができる。別の例として、本明細書で説明する任意の構成要素は、ソフトウェア、ハードウェアまたはその構成要素のために本明細書で説明する動作を実行するプロセッサ２９９の１つ以上のインスタンスのアレンジメントを構成するその両方を含むことができる。従って、本明細書で説明する異なる構成要素は、異なる時点でプロセッサ２９９の異なるアレンジメント、または異なる時点でプロセッサ２９９の単一のアレンジメントを含み、これらを構成することができる。本明細書で説明する各構成要素（例えば、モジュール）は、その構成要素のために本明細書で説明する動作を実行するための手段の一例である。さらに、本明細書で説明する任意の２つ以上の構成要素は、単一の構成要素に組み合わせることができ、単一の構成要素のために本明細書で説明する機能は、複数の構成要素間で細分化することができる。さらに、様々な例示的な実施形態によれば、単一のシステムまたはマシン（例えば、単一のデバイス）内で実装されるものとして本明細書で説明する構成要素は、複数のシステムまたはマシン（例えば、複数のデバイス）にわたって分散され得る。
【００２４】
図４は、いくつかの例示的な実施形態による、ターゲットユーザ１３２およびターゲットデバイス１３０を含む現実世界シーン４００を示す概念図である。現実世界シーン４００は、現実であって、現実世界シーン４００に向けられたカメラおよび人間の目によって観察可能であり、対照的に、拡張現実シーンまたは仮想現実シーンは、どちらのシーンも、現実世界シーン４００には存在しない少なくとも１つのマシンレンダリングされた（例えば、コンピュータ生成された）オブジェクトを含むことになる。
【００２５】
図４に示す現実世界シーン４００では、ターゲットデバイス１３０は存在するが、ターゲットユーザ１３２が着用した衣服によって隠れている。例えば、ターゲットデバイス１３０は、ターゲットユーザ１３２のコートポケット内に配置されることによって、ターゲットユーザ１３２と共に（例えば、三次元空間内の任意の方向において任意のゼロまたはゼロでない速度で）進行することができる。従って、固定された基準フレーム（例えば、惑星地球の表面またはそのサブ領域）に対して、ターゲットデバイス１３０は、ターゲットユーザ１３２と同じ方向に移動し、その方向にターゲットユーザ１３２と同じ速度で移動することができる。この移動は、ターゲットデバイス１３０によって（例えば、１つ以上のジオロケーション・センサを介して）検出され、ターゲットデバイス１３０のジオロケーション移動を記述する運動データ（例えば、ターゲット運動データ）として表現（例えば、符号化）され得る。
【００２６】
図５は、いくつかの例示的な実施形態による、ターゲットユーザ１３２を含む拡張現実シーン５００を表示するユーザデバイス１４０（例えば、ビューイングデバイス）を示す概念図である。ユーザデバイス１４０の表示スクリーン１４１は、現実世界の視覚データ（例えば、ユーザデバイス１４０のカメラによって捕捉されるような現実世界シーン４００のライブビデオまたは静止画像）と１つ以上のマシンレンダリングされた三次元オブジェクトとの合成された混合物である拡張現実シーン５００を提示（例えば、表示）する。図５に示すように、拡張現実シーン５００は、（例えば、ユーザデバイス１４０のカメラの視野内で）ユーザデバイス１４０のカメラによって捕捉されたライブビデオに、１つ以上のマシンレンダリングされた三次元オブジェクトを追加することによって生成される。図５に示す例示的なシナリオでは、ターゲットユーザ１３２は、カメラの視野の大部分内にあり、それにしたがって、拡張現実シーン５００は、ターゲットユーザ１３２の大部分を含む。別の例示的なシナリオでは、ターゲットユーザ１３２はカメラの視野内になく、それにしたがって、拡張現実シーン５００はターゲットユーザ１３２を省略することになる。
【００２７】
図６は、いくつかの例示的な実施形態による、ターゲットユーザ１３２のターゲットデバイス１３０に対して位置（例えば、配置）された複数のホログラム６１０および６２０と同様に、ターゲットユーザ１３２を含む拡張現実シーン５００を表示するユーザデバイス１４０を示す概念図である。上述のように、表示スクリーン１４１は、拡張現実シーン５００を提示する。図６に示すように、拡張現実シーン５００は、ホログラム６１０および６２０を、ユーザデバイス１４０のカメラによって捕捉されたライブビデオに合成している。以下に詳細に論じるように、ホログラム６１０および６２０は、ターゲットデバイス１３０のジオロケーション移動に基づいて（例えば、ターゲットデバイス１３０がターゲットユーザ１３２と共に進行する際のターゲットデバイス１３０の方向および速度に基づいて）配置および指向されている。
【００２８】
図６に示す例示的なシナリオでは、ホログラム６１０は、（例えば、ターゲットデバイス１３０のジオロケーションに基づいて、）ターゲットユーザ１３２の後方および左方のオフセット距離で配置されており、ホログラム６１０は、あたかもターゲットユーザ１３２と同じ方向に移動するが、ターゲットユーザ１３２とはわずかに異なる速度で進行しているかのようにレンダリングされる。同様に、ホログラム６２０は、ターゲットユーザ１３２のさらに後方でさらに左方の異なるオフセット距離で配置されており、ホログラム６２０は、あたかもターゲットユーザ１３２とわずかに異なる方向で、わずかに異なる速度（例えば、ホログラム６１０が見かけで進行している速度と同様の速度）で進行しているかのようにレンダリングされる。
【００２９】
図７は、いくつかの例示的な実施形態による、ホログラム６１０、６２０、ターゲットデバイス１３０、およびユーザデバイス１４０に対応するジオロケーションおよび運動ベクトルを示す概念図である。ホログラム６１０、６２０、ターゲットデバイス１３０、およびユーザデバイス１４０のジオロケーションは、それぞれ、ＧＰＳ座標のそれぞれのセットのようなジオロケーションデータによって特定され得る。
【００３０】
次に、ターゲットデバイス１３０を検討することが有益であろう。上述のように、ターゲットデバイス１３０は、（例えば、ターゲットユーザ１３２のコートポケットに配置されることによって）現実世界シーン４００内で移動（例えば、進行）していることができ、この移動はターゲットデバイス１３０によって検出され、ターゲット運動データとして表される。さらに、ターゲット動作データは、ターゲットデバイス１３０のターゲット速度（例えば、毎秒０．５メートル）を示し、かつターゲットデバイス１３０がターゲット速度で移動しているターゲット方向（例えば、現実世界シーン４００において、北東４５度、上向き３度）も示すターゲット運動ベクトル７３０を（例えば、生成、計算、または変換によって）決定するために（例えば、ホログラム配置マシン１１０またはユーザデバイス１４０によって）使用され得る。いくつかの例示的な実施形態によれば、ターゲット運動ベクトル７３０は、固定された基準フレーム（例えば、惑星地球の表面またはそのサブ領域であり、あるいはそれらを含む現実世界シーン４００）に対して（例えば、ホログラム配置マシン１１０またはユーザデバイス１４０によって）決定される。代替の例示的な実施形態では、ターゲット運動ベクトル７３０は、固定された基準フレームに対してそれ自体が運動中である、ユーザデバイス１４０に対して決定される。
【００３１】
例示的な実施形態では、ユーザデバイス１４０が現実世界シーン４００内を（例えば、ユーザ１４２が現実世界シーン４００内を歩いているときに、ユーザ１４２の手で搬送されることにより）移動している。この移動は、ユーザデバイス１４０によって検出され（例えば、１つ以上のジオロケーションセンサによって提供される）、ユーザ運動データとして表される。さらに、ユーザ運動データは、ユーザデバイス１４０のユーザ速度（例えば、毎秒０．６メートル）を示し、かつユーザデバイス１４０がユーザデバイス１４０のユーザ速度で移動しているユーザ方向（例えば、現実世界シーン４００における北北東２２．５度、上向き５度）も示すユーザ運動ベクトル７４０を決定するために（例えば、ホログラム配置マシン１１０またはユーザデバイス１４０によって）使用され得る。図７に示すように、ターゲットデバイス１３０がユーザデバイス１４０のカメラの視野内にあるかどうかは、ターゲットデバイス１３０とユーザデバイス１４０との間の相対移動、および（例えば、そのカメラを照準する際の）ユーザデバイス１４０の指向に依存する。
【００３２】
本明細書で論じる方法論によれば、ホログラム運動ベクトル７１０および７２０は、それぞれ、ホログラム６１０および６２０のために（例えば、ホログラム配置マシン１１０またはユーザデバイス１４０によって）決定されることができ、そのような決定は、ターゲットデバイス１３０のターゲット運動ベクトル７３０に基づくことができる。図７に示す例示的な実施形態では、ホログラム運動ベクトル７１０は、ターゲットデバイス１３０のターゲット運動ベクトル７３０に対するホログラム６１０の相対速度を示し、かつホログラム６１０がターゲット運動ベクトル７３０に対して移動する相対方向も示す相対運動ベクトルである。例えば、ホログラム運動ベクトル７１０は、ホログラム６１０がターゲットデバイス１３０と同じ方向に移動しているが、ターゲットデバイス１３０と比べて異なる速度で移動していることを示すことができる。同様に、ホログラム運動ベクトル７２０は、ターゲットデバイス１３０のターゲット運動ベクトル７３０に対するホログラム６２０の相対速度を示し、かつホログラム６２０がターゲット運動ベクトル７３０に対して移動する相対方向も示す相対運動ベクトルである。例えば、ホログラム運動ベクトル７２０は、ホログラム６２０がターゲットデバイス１３０とは異なる方向に進行しているが、ホログラム６１０がターゲットデバイス１３０に対して進行している速度と同等の、または同じ速度で進行していることを示すことができる。
【００３３】
図７は、追加的に、ホログラム６１０および６２０にそれぞれ対応するホログラム運動ベクトル７１１および７２１を示す。ホログラム運動ベクトル７１０が、ターゲットデバイス１３０のターゲット運動ベクトル７３０を参照してホログラム６１０の相対速度および相対方向を示す相対運動ベクトルである例示的な実施形態では、ホログラム運動ベクトル７１１は、ターゲット運動ベクトル７３０とホログラム６１０のホログラム運動ベクトル７１０とのベクトル和であるか、あるいはそれを含む絶対運動ベクトルとすることができる。従って、ホログラム運動ベクトル７１１は、ターゲット運動ベクトル７３０がターゲットデバイス１３０の運動を記述する同一の基準フレーム（例えば、惑星地球の表面またはその任意のサブ領域）に対して、ホログラム６１０の実際の速度（例えば、ホログラム速度）および実際の方向（例えば、ホログラム方向）を記述することができる。
【００３４】
同様に、ホログラム運動ベクトル７２１は、ターゲット運動ベクトル７３０とホログラム６２０のホログラム運動ベクトル７２０とのベクトル和であるか、あるいはそれを含む絶対運動ベクトルとすることができる。従って、ホログラム運動ベクトル７２１は、ターゲット運動ベクトル７３０がターゲットデバイス１３０の運動を記述する同一の基準フレーム（例えば、惑星地球の表面またはその任意のサブ領域）に対して、ホログラム６２０の実際の速度および実際の方向を記述することができる。
【００３５】
図７に示すように、ターゲットデバイス１３０のジオロケーションは、ターゲット運動ベクトル７３０の原点を形成する軸セットによって表される。ユーザデバイス１４０のジオロケーションは、ユーザ運動ベクトル７４０の原点を形成する別の軸セットによって表される。現実世界シーン４００および拡張現実シーン５００は、（例えば、惑星地球の表面またはそのサブ領域に対して）共通の基準フレームを共有することができる。従って、拡張現実シーン５００におけるホログラム６１０の仮想ジオロケーションは、現実世界シーン４００における物理的ジオロケーションと一致することができる。図７では、ホログラム６１０のジオロケーションは、ホログラム運動ベクトル７１０の原点に一致する軸セットによって表される。同様に、ホログラム６２０のジオロケーションは、ホログラム運動ベクトル７２０の原点に一致する別の軸セットによって表される。
【００３６】
図８は、いくつかの例示的な実施形態による、ホログラム６１０および６２０に対応するジオロケーション、オフセットベクトル、および指向ベクトル、ならびにターゲットデバイス１３０およびユーザデバイス１４０のジオロケーションを示す概念図である。示すように、ホログラム６１０のジオロケーションは、（例えば、ＧＰＳ座標における１つ以上の相対差異を示す）オフセットベクトル８１０によって、ターゲットデバイス１３０のジオロケーションに対して指定され得る。オフセットベクトル８１０は、拡張現実シーン５００においてターゲットデバイス１３０とホログラム６１０の間のホログラムオフセット距離を示し、かつ拡張現実シーン５００内のターゲットデバイス１３０に対するホログラム６１０のホログラムオフセット方向も示す相対オフセットベクトルである。いくつかの例示的な実施形態では、オフセットベクトル８１０は、ターゲットデバイス１３０に対する相対オフセットベクトルであるが、代替の例示的な実施形態では、オフセットベクトル８１０は、ユーザデバイス１４０に対する相対オフセットベクトルである。
【００３７】
同様に、ホログラム６２０のジオロケーションは、（例えば、ＧＰＳ座標における１つ以上の相対差異を示す）別のオフセットベクトル８２０によって、ターゲットデバイス１３０のジオロケーションに対して指定され得る。オフセットベクトル８２０は、拡張現実シーン５００におけるターゲットデバイス１３０とホログラム６２０の間のホログラムオフセット距離を示し、かつ拡張現実シーン５００内のターゲットデバイス１３０に対するホログラム６２０のホログラムオフセット方向も示す相対オフセットベクトルである。いくつかの例示的な実施形態では、オフセットベクトル８２０は、ターゲットデバイス１３０に対する相対オフセットベクトルであるが、代替の例示的な実施形態では、オフセットベクトル８２０は、ユーザデバイス１４０に対する相対オフセットベクトルである。図８に示すように、ホログラム６１０および６２０の一方または両方がユーザデバイス１４０のカメラの視野内にあるかどうかは、各ホログラム６１０、６２０とユーザデバイス１４０の間の相対移動、およびユーザデバイス１４０の（例えば、そのカメラを照準する際の）指向に依存する。
【００３８】
さらに、図８に示すように、ホログラム６１０の指向ベクトル８１１は、ホログラム６１０の指向される（例えば、向いているあるいは指し示す）方向を示す。指向ベクトル８１１は、ターゲットデバイス１３０、ターゲットデバイス１３０のターゲット運動ベクトル７３０、またはその両方に対するホログラム６１０の相対指向方向を示す相対指向ベクトルとすることができる。同様に、ホログラム６２０の指向ベクトル８２１は、ホログラム６２０が指向される方向を示し、指向ベクトル８２１は、ターゲットデバイス１３０、ターゲットデバイス１３０のターゲット運動ベクトル７３０、またはその両方に対するホログラム６２０の相対指向方向を示す相対指向ベクトルとすることができる。代替の例示的な実施形態では、指向ベクトル８１１および８２１の一方または両方が、ユーザデバイス１４０、ユーザ運動ベクトル７４０、またはその両方に対する相対指向方向を示す。
【００３９】
図９から図１３は、いくつかの例示的な実施形態による、ホログラム位置の方法９００を示す動作のフローチャートである。方法９００における動作は、図２および図３に関して上述した構成要素（例えば、モジュール）を使用して、１つ以上のプロセッサ２９９（例えば、マイクロプロセッサまたは他のハードウェアプロセッサ）を使用して、あるいはそれらの任意の適切な組み合わせを使用して、ホログラム配置マシン１１０、ユーザデバイス１４０、またはその両方の組み合わせによって実行され得る。しかし、図９から図１３に関する説明を明確にするために、方法９００は、一般的には、特に明記しない限り、あたかもユーザデバイス１４０によって実施されるかのように説明する。図９に示すように、方法９００は、動作９１０、９２０、９３０、および９４０を含む。
【００４０】
動作９１０では、ターゲットデバイス・インタフェース２１０が、（例えば、ある期間にわたって、ターゲットデバイス１３があるジオロケーションから別のジオロケーションへ移動するとき）ターゲットデバイス１３０のジオロケーション移動を記述するターゲット運動データにアクセスする。ターゲット運動データは、ターゲットデバイス１３０における１つ以上のセンサ（例えば、ＧＰＳ受信機）によって生成され得る。いくつかの例示的な実施形態では、ターゲット運動データは、ターゲットデバイス１３０から直接的に（例えば、ネットワーク１９０を介して、または直接ピアツーピアネットワーキングを介して）アクセスされる。別の例示的な実施形態では、ターゲット運動データはターゲットデバイス１３０によってデータベース１１５にアップロードされ、そこからアクセスされる。
【００４１】
動作９２０では、ターゲット分析器２２０が、ターゲットデバイス１３０に対応するターゲット運動ベクトル７３０を決定（例えば、生成、計算、変換、または他の方法で取得）する。ターゲット運動ベクトル７３０の決定は、動作９１０でアクセスされたターゲット運動データに基づいて実行される。例えば、ターゲット運動データは、ターゲットデバイス１３０が、測定期間にわたって、第１のジオロケーションから第２のジオロケーションに移動したことを示すことができ、ターゲット運動ベクトル７３０は、第１のジオロケーションおよび第２のジオロケーションと測定期間から決定され得る。上述のように、ターゲット運動ベクトル７３０は、ターゲットデバイス１３０が現実世界シーン４００内で（例えば、惑星地球の表面またはその任意のサブ領域に対して）移動するターゲット速度を示し、かつターゲットデバイス１３０が現実世界シーン４００内（例えば、惑星地球の表面または上記のサブ領域）でターゲット速度で移動するターゲット方向も示す。
【００４２】
動作９３０では、ホログラムマネージャ２３０が、（例えば、ユーザデバイス１４０によって提示される拡張現実シーン５００内に生成される）ホログラム６１０に対応するホログラム運動ベクトル７１０を決定（例えば、生成、計算、変換、または他の方法で取得）する。ホログラム運動ベクトル７１０の決定は、動作９２０で決定されたターゲット運動ベクトル７３０に基づいて実行されることができ、したがって、ホログラム運動ベクトル７１０は、ターゲット運動ベクトル７３０に対して相対的であるとすることができる。
【００４３】
ターゲット運動ベクトル７３０は、現実世界シーン４００内のターゲットデバイス１３０の方向および速度を示すため、ホログラム運動ベクトル７１０は、ターゲットデバイス１３０自体に対するホログラム６１０の相対速度（例えば、ホログラム６１０が拡張現実シーン５００において生成されるとしても、相対現実世界速度）を示し、かつターゲットデバイス１３０自体に対してホログラム６１０が移動する相対方向（例えば、ホログラム６１０が拡張現実シーン５００において生成されるとしても、相対現実世界方向）を示す相対運動ベクトルとみなすことができる。いくつかの例示的な実施形態では、動作９３０の性能は、相対速度をホログラム６１０に相関させるホログラムデータベース（例えば、データベース１１５）からホログラム６１０の相対速度にアクセスすること、ホログラムデータベースからホログラム６１０の相対方向にアクセスすること、またはその両方を含む。同様の動作は、拡張現実シーン５００において生成される１つ以上の追加のホログラム（例えば、ホログラム６２０）に対して同様に実行され得る。
【００４４】
動作９４０では、ユーザデバイス１４０のグラフィックスマネージャ３４０が、ユーザデバイス１４０に、ホログラム６１０を生成させ、ホログラム６１０を含みそこでホログラム６１０が移動する拡張現実シーン５００を表示させる。拡張現実シーン５００内のホログラム６１０の運動は、動作９３０で決定されたホログラム運動ベクトル７１０に基づく（例えば、従う）ことができる。さらに、ホログラム運動ベクトル７１０がターゲット運動ベクトル７３０に関する相対運動ベクトルである例示的な実施形態では、拡張現実シーン５００内のホログラム６１０の運動は、（例えば、図７に関して上述したように）ホログラム運動ベクトル７１１に基づく（例えば、従う）ことができる。
【００４５】
従って、グラフィックスマネージャ３４０は、ホログラム６１０を、ターゲットデバイス１３０のターゲット速度およびターゲットデバイス１３０に関するホログラム６１０の相対速度に基づいて（例えば、グラフィックスマネージャ３４０によって）決定されたホログラム速度で移動させる。さらに、グラフィックスマネージャ３４０は、ホログラム６１０を、ターゲットデバイス１３０のターゲット方向およびターゲットデバイス１３０に対するホログラム６１０の相対方向に基づいて（例えば、グラフィックスマネージャ３４０によって）決定されたホログラム方向に移動させる。同様の動作は、拡張現実シーン５００における１つ以上の追加のホログラム（例えば、ホログラム６２０）に対して同様に実行される。
【００４６】
方法９００がホログラム配置マシン１１０によって実行される例示的な実施形態では、動作９４０は、ユーザデバイス・インタフェース２４０によって実行される。一般に、ユーザデバイス１４０のグラフィックスマネージャ３４０によって実行されるものとして説明される動作は、ホログラム配置マシン１１０自体のユーザデバイス・インタフェース２４０によって実行され、あるいはユーザデバイス・インタフェース２４０によって他の場所で（例えば、ユーザデバイス１４０のグラフィックスマネージャ３４０によって）実行されるようにすることができる。例えば、ユーザデバイス・インタフェース２４０は、（例えば、グラフィックスマネージャ３４０を介して）ユーザデバイス１４０に、ホログラム６１０の生成およびホログラム６１０を含み、ホログラム６１０が移動する拡張現実シーン５００の表示を実行させることができる。
【００４７】
図１０に示すように、様々な例示的な実施形態による、前述の動作のうちの任意の１つ以上に加えて、方法９００は、動作１０１０、１０２０、１０３０、１０３１、１０３２、および１０３３のうちの１つ以上を含むことができる。動作１０１０は、動作９２０の前の任意のポイントで実行されることができ、ここで、ターゲット分析器２２０は、ターゲットデバイス１３０のターゲット運動ベクトル７３０を決定する。動作１０１０では、ターゲット分析器２２０は、（例えば、惑星地球の表面またはその任意のサブ領域のような固定された基準フレームに対して、ある期間にわたって、あるジオロケーションから別のジオロケーションへ移動するとき）ユーザデバイス１４０のジオロケーション移動を記述するユーザ運動データにアクセスする。
【００４８】
特定の例示的な実施形態によれば、ユーザ運動データは、ユーザデバイス１４０、データベース１１５、またはその両方からアクセスされる。さらに、ユーザデバイス１４０についてのユーザ運動データのアクセスは、ユーザデバイス１４０が拡張現実シーン５００を表示するという指示に基づく（例えば、応答する）ことできる。そのような指示は、ユーザデバイス１４０での（例えば、ユーザ１４２による）ユーザ入力の結果として、ターゲットデバイス１３０での（例えば、ユーザ１３２による）ユーザ入力の結果として、ターゲットデバイス１３０がユーザデバイス１４０のカメラの視野内で検出された結果として、あるいはそれらの適切な組み合わせとして、（例えば、Ａｐｐ３００またはアプリケーション２００によって）受信され得る。
【００４９】
動作１０２０は、動作９２０の一部（例えば、プレカーサ・タスク、サブルーチン、または一部分）として実行されることがで、ここで、ターゲット分析器２２０は、ターゲット運動ベクトル７３０を決定する。動作１０２０では、ターゲット分析器２２０は、相対運動ベクトルとしてターゲット運動ベクトル７３０を決定し、相対運動ベクトルは、それ自体が現実世界シーン４００に対して運動中とすることができるユーザデバイス１４０に対するターゲットデバイス１３０の運動を記述することができる。ホログラム６１０のホログラム速度は、ターゲット運動ベクトル７３０に基づいて決定されることができるため、ホログラム６１０のホログラム速度は、ユーザデバイス１４０に関して決定されることができる。同様に、ホログラム６１０のホログラム方向は、ターゲット運動ベクトル７３０に基づいて決定されることができるため、ホログラム６１０のホログラム方向は、ユーザデバイス１４０に対して決定されることができる。
【００５０】
動作１０３０および１０３２の一方または両方は、動作９３０の一部として実行することができ、ここで、ホログラムマネージャ２３０がホログラム６１０のホログラム運動ベクトル７１０を決定する。上述のように、ホログラム運動ベクトル７１０は、ホログラム６１０を生成し、拡張現実シーン５００を提示するユーザデバイス１４０に対するホログラム６１０の運動を記述する相対運動ベクトルとすることができる。
【００５１】
動作１０３０では、ホログラムマネージャ２３０は、ユーザデバイス１４０に対するホログラム６１０の相対ホログラム速度を決定する。この決定は、（例えば、惑星地球の表面またはそのサブ領域に対する）ターゲットデバイス１３０のターゲット速度および（例えば、ターゲットデバイス１３０に対する）ホログラム６１０の相対速度に基づくことができる。
【００５２】
動作１０３１は、動作１０３０の一部として実行され得る。動作１０３１では、ホログラムマネージャ２３０は、（例えば、ターゲットデバイス１３０に対して）ホログラム６１０の相対速度にアクセスし、ホログラム６１０の相対速度は、データベース１１５またはネットワーク１９０を介してアクセス可能な別のデータソースからアクセスされ得る。すなわち、データベース１１５は、任意のターゲットデバイス（例えば、ターゲットデバイス１３０）に対するホログラム６１０の相対速度を記憶することができ、この相対速度は、動作１０３１においてアクセスされ得る。
【００５３】
動作１０３２では、ホログラムマネージャ２３０は、ユーザデバイス１４０に対するホログラム６１０の相対ホログラム方向を決定する。この決定は、（例えば、動作１０３０で使用された惑星地球の表面またはそのサブ領域に対するターゲットデバイス１３０のターゲット方向および（例えば、ターゲットデバイス１３０に対する）ホログラム６１０の相対方向に基づくことができる。
【００５４】
動作１０３３は、動作１０３２の一部として実行され得る。動作１０３２では、ホログラムマネージャ２３０は、（例えば、ターゲットデバイス１３０に対して）ホログラム６１０の相対方向にアクセスし、ホログラム６１０の相対方向は、データベース１１５またはネットワーク１９０を介してアクセス可能な別のデータソースからアクセスされ得る。すなわち、データベース１１５は、任意のターゲットデバイス（例えば、ターゲットデバイス１３０）に対してホログラム６１０の相対方向を記憶することができ、この相対方向は、動作１０３３においてアクセスされ得る。
【００５５】
図１１に示すように、様々な例示的な実施形態による、前述の動作のうちの任意の１つ以上に加えて、方法９００は、動作１１３５、１１３６、１１３７、１１３８、１１３９、１１４０、１１４１、１１４２、および１１４３のうちの１つ以上を含むことができる。動作１１３５は、動作９４０の前の任意のポイントで実行されることができ、ここで、グラフィックスマネージャ３４０は、ユーザデバイス１４０に、（例えば、ホログラム６２０のような１つ以上の追加のホログラムと共に）ホログラム６１０を生成させ、拡張現実シーン５００を表示させる。動作１１３５では、グラフィックスマネージャ３４０は、ユーザデバイス１４０におけるカメラ（例えば、Ａｐｐ３００によって管理されているカメラ）の視野を決定する。いくつかの例示的な実施形態によれば、この決定は、ユーザデバイス１４０によって記憶され、カメラの視野を記述するメタデータに（例えば、ルックアップを介して）アクセスすることを含む。代替の例示的な実施態様によれば、この決定は、ネットワーク１９０を介して（例えば、データベース１１５から）そのようなメタデータを取得することを含む。
【００５６】
動作１１３５を備えあるいは備えずに、動作１１３６は、動作９４０の前の任意の点ポイントで実行され得る。動作１１３６では、ターゲットデバイス・インタフェース２１０は、ターゲットデバイス１３０のターゲット位置データにアクセスする。ターゲット位置データは、ターゲットデバイス１３０のジオロケーションを記述し、動作９１０におけるターゲットデバイス１３０のターゲット運動データのアクセスに関して上述したものと同様の方法でアクセスされ得る。ターゲットデバイス１３０のターゲット位置データは、ターゲットデバイス１３０における１つ以上のセンサ（例えば、ＧＰＳ受信機）によって生成され得る。いくつかの例示的な実施形態では、ターゲット位置データは、ターゲットデバイス１３０から直接的に（例えば、ネットワーク１９０を介して、あるいは直接ピアツーピアネットワーキングを介して）アクセスされる。別の例示的な実施形態では、ターゲット位置データはターゲットデバイス１３０によってデータベース１１５にアップロードされ、そこからアクセスされる。
【００５７】
動作１１３５を含む例示的な実施形態において、動作１１４０は、動作９４０の一部として実施され得る。動作１１４０では、グラフィックスマネージャ３４０は、ユーザデバイス１４０に、動作１１３５で決定された視野内のホログラム６１０を表示させる。さらに、動作１１３６でターゲットデバイス１３０のターゲット位置データがアクセスされたいくつかの例示的な実施形態では、動作１１４０は、ターゲットデバイス１３０のジオロケーションがユーザデバイス１４０のカメラの視野内にあることを検出することを含むことができる。この検出に基づいて、グラフィックスマネージャ３４０は、ユーザデバイス１４０に、拡張現実シーン５００内のターゲットデバイス１３０のジオロケーションを含む（例えば、包含する）ようにさせることによって、（例えば、動作９４０の一部として）動作１１４３を実行することができる。
【００５８】
代替的に、動作１１３６でターゲットデバイス１３０のターゲット位置データがアクセスされた特定の例示的な実施形態では、動作１１４０は、ターゲットデバイス１３０のジオロケーションがユーザデバイス１４０のカメラの視野外であることを検出することを含むことができる。この検出に基づいて、グラフィックスマネージャ３４０は、ユーザデバイス１４０に、拡張現実シーン５００からターゲットデバイス１３０のジオロケーションを除外（例えば省略）させるために（例えば、動作９４０の一部として）動作１１４２を実行することができる。
【００５９】
動作１１３６を含む例示的な実施形態では、動作１１３７は、動作９４０の前の任意のポイントで実行されることができ、ここで、グラフィックスマネージャ３４０は、ユーザデバイス１４０に、（例えば、ホログラム６２０のような１つ以上の追加のホログラムと共に）ホログラム６１０を生成させ、拡張現実シーン５００を表示させる。動作１１３７では、ホログラムマネージャ２３０は、ホログラム６１０についての相対オフセット距離を示し、かつホログラム６１０についての相対オフセット方向を示す相対オフセットベクトルとすることができる、ホログラム６１０のオフセットベクトル８１０を決定（例えば、アクセス、計算、または他の方法で取得）する。オフセットベクトル８１０の決定は、データベース１１５から相対オフセット距離、相対オフセット方向、またはその両方に（例えば、ルックアップを介して）アクセスすることを含むことができる。いくつかの例示的な実施形態では、オフセットベクトル８１０の決定は、ホログラム６１０の１つ以上の並進移動を指定するか、あるいは他の方法で記述する（例えば、データベース１１５からアクセスされる）ソフトウェアの実行によって動的に実行される。
【００６０】
図１１に示すように、動作１１３７は、動作１１３８および１１３９の一方または両方を含むことができる。動作１１３８では、ホログラムマネージャ２３０は、（例えば、ターゲットデバイス１３０に対して）ホログラム６１０の相対オフセット距離を決定（例えば、アクセスまたは計算）する。例えば、相対オフセット距離はデータベース１１５からアクセスされ得る。別の例として、相対オフセット距離は、（例えば、データベース１１５によって記憶され、実行のためにそこからアクセスされる）運動を生成するあるいは他の方法で運動を指定するソフトウェアの実行によって動的に計算され得る。同様に、動作１１３９では、ホログラムマネージャ２３０は、（例えば、ターゲットデバイス１３０に対して）ホログラム６１０の相対オフセット方向を決定する。例えば、相対オフセット方向はデータベース１１５からアクセスされ得る。別の例として、相対オフセット方向は、（例えば、データベース１１５によって記憶され、実行のためにそこからアクセスされる）運動を生成するあるいは他の方法で運動を指定するソフトウェアの実行によって動的に計算され得る。
【００６１】
動作１１３７を含む例示的な実施形態では、動作１１４１は、動作９４０の一部として実行されることができ、ここで、グラフィックスマネージャ３４０は、ユーザデバイス１４０に、ホログラム６１０を生成させ、拡張現実シーン５００を表示させる。動作１１４１では、グラフィックスマネージャ３４０は、ユーザデバイス１４０に、ホログラム６１０のオフセットベクトル８１０に従って、ホログラム６１０を表示させる。例えば、グラフィックスマネージャ３４０は、ホログラム６１０が、オフセットベクトル８１０によって示される相対オフセット距離で、かつオフセットベクトル８１０によって示される相対オフセット方向に拡張現実シーン５００に現れるようにすることができる。上述のように、様々な例示的な実施形態によれば、相対オフセット距離は、動作１１３８において決定されることができ、相対オフセット方向は、動作１１３９において決定され得る。
【００６２】
図１２に示すように、前述の動作のうちの任意の１つ以上に加えて、方法９００は、動作１２３７、１２３９、１２４０、および１２４１のうちの１つ以上を含むことができる。動作１２３７は、動作９４０の前の任意のポイントで実行されることができ、ここで、グラフィックスマネージャ３４０は、ユーザデバイス１４０に、（例えば、ホログラム６２０のような１つ以上の追加のホログラムと共に）ホログラム６１０を生成させ、拡張現実シーン５００を表示させる。動作１２３７では、ホログラムマネージャ２３０は、（例えば、ターゲットデバイス１３０、ターゲット運動ベクトル７３０、またはその両方に対して）ホログラム６１０が指向される相対指向方向を示す相対指向ベクトルとすることができる、ホログラム６１０の指向ベクトル８１１を決定（例えば、アクセス、計算、または他の方法で取得）する。指向ベクトル８１１の決定は、データベース１１５から相対指向方向に（例えば、ルックアップを介して）アクセスすることを含むことができる。いくつかの例示的な実施形態では、相対指向方向の決定は、ホログラム６１０の１つ以上の回転移動を指定するか、あるいは他の方法で記述する（例えば、データベース１１５からアクセスされる）ソフトウェアの実行によって動的に実行される。
【００６３】
図１２に示すように、動作１２３７は、動作１２３９を含むことができる。動作１２３９では、ホログラムマネージャ２３０は、（例えば、ターゲット運動ベクトル７３０に対して）ホログラム６１０の相対指向方向を決定（例えば、アクセスまたは計算）する。例えば、相対指向方向はデータベース１１５からアクセスされ得る。別の例として、相対指向方向は、（例えば、データベース１１５によって記憶され、実行のためにそこからアクセスされる）回転を生成するあるいは他の方法で回転を指定するソフトウェアの実行によって動的に計算され得る。
【００６４】
図１２に示すように、動作１２４０は、動作９４０の一部として実行されることができ、ここで、グラフィックスマネージャ３４０は、ユーザデバイス１４０に、ホログラム６１０を生成させ、拡張現実シーン５００を表示させる。動作１２４０では、グラフィックスマネージャ３４０は、ユーザデバイス１４０に、ターゲットデバイス１３０のターゲット運動ベクトル７３０に基づいて決定される指向でホログラム６１０を表示させる。代替の例示的な実施形態では、指向は、ユーザデバイス１４０のユーザ運動ベクトル７４０に基づいて決定され、ハイブリッドの例示的な実施形態は、ターゲット運動ベクトル７３０およびユーザ運動ベクトル７４０の両方に基づいて指向を決定することができる。
【００６５】
さらに、動作１２４１は、動作１２４０の一部として実行され得る。動作１２４１では、グラフィックスマネージャ３４０は、ユーザデバイス１４０に、動作１２３７で決定された（例えば、ターゲットデバイス１３０またはターゲット運動ベクトル７３０に対する）相対指向方向に基づいて決定される指向でホログラム６１０を表示させる。
【００６６】
図１３に示すように、様々な例示的な実施形態によれば、前述の動作のうちの任意の１つ以上に加えて、方法９００は、動作１３４０、１３４１、１３５０、および１３６０のうちの１つ以上を含むことができる。動作１３４０の一方または両方は、動作９４０の一部として実施することができる。動作１３４０では、グラフィックスマネージャ３４０は、ユーザデバイス１４０に、ユーザデバイス１４０のカメラからのライブカメラデータにアクセスさせる。これは、カメラが現実世界シーン４００の少なくとも一部分を捕捉するため、カメラに対応するメモリからビデオの１つ以上のフレームを取得することによって実行され得る。
【００６７】
動作１３４１では、グラフィックスマネージャ３４０は、ユーザデバイス１４０に、ホログラム６１０と動作１３４０においてアクセスされたおよびライブカメラデータの少なくとも一部を含む合成ビデオを生成することによって、拡張現実シーン５００を完全または部分的に生成させる。これは、ホログラム６１０をライブカメラデータの少なくとも一部分に合成して、拡張現実シーン５００を完全または部分的に生成する効果を有することができる。
【００６８】
動作１３５０および１３６０の一方または両方は、動作９４０の後に実行されることができ、ここで、グラフィックスマネージャ３４０は、ユーザデバイス１４０に（例えば、ホログラム６２０のような１つ以上の追加のホログラムと共に）ホログラム６１０を生成させ、拡張現実シーン５００を表示させる。動作１３５０では、グラフィックスマネージャ３４０は、ユーザデバイス１４０に、拡張現実シーン５００の少なくとも一部分を記録させる。これは、（例えば、ユーザ１４２によって設定され、ユーザデバイス１４０またはデータベース１１５によって記憶される）１つ以上のユーザプリファレンス、またはそれらの任意の適切な組み合わせに基づいて、（例えば、ユーザ１４２による）ユーザ入力に応答して実行され得る。
【００６９】
拡張現実シーン５００の一部分は、ユーザデバイス１４０におけるローカルストレージに記録され、データベース１１５にアップロードされ、またはその両方とすることができる。拡張現実シーン５００の記録された部分は、動作９３０において決定されたホログラム運動ベクトル７１０に従って移動するホログラム６１０を描画し、それぞれのホログラム運動ベクトル（例えば、動作９３０の追加インスタンスで決定されたホログラム運動ベクトル７２０）に従って移動する１つ以上の追加ホログラム（例えば、ホログラム６２０）を描画することができる。
【００７０】
動作１３６０では、グラフィックスマネージャ３４０は、ユーザデバイス１４０に、表示された拡張現実シーン５００の少なくとも一部分を別のユーザデバイス（例えば、ユーザデバイス１５０）に通信させる。例えば、拡張現実シーン５００の部分は、ネットワーク１９０を介して、あるいは直接ピアツーピアネットワーキングを介して、ユーザデバイス１４０からユーザデバイス１５０に通信することができる。動作１３５０を含む例示的な実施形態では、通信される部分は、動作１３５０に記録された部分であるか、あるいはそれを含む。これは、ユーザデバイス１４０のユーザ１４２と、１つ以上のフレンド、コネクション、フォロワ、または他のソーシャルネットワーキングコンタクト（例えば、ユーザデバイス１５０のユーザ１５２）とによる、拡張現実シーン５００またはその１つ以上の部分の（例えば、ソーシャル・メディア・シェアリング・ネットワークのような１つ以上のソーシャル・ネットワークによる）ソーシャル・シャアリングを可能にする効果を有することができる。
【００７１】
様々な例示的な実施形態によれば、本明細書で説明する１つ以上の方法論は、生成された拡張現実シーン内または生成された仮想現実シーン内での１つ以上のホログラムの静的または動的位置（例えば、配置）を容易にすることができる。さらに、本明細書で説明する１つ以上の方法論は、例えば、ターゲットデバイスの移動速度、ターゲットデバイスの移動方向、またはその両方に基づいて、ターゲットデバイスに対する、１つ以上のホログラムのオフセット位置、１つ以上のホログラムの移動速度、１つ以上のホログラムの移動方向、１つ以上のホログラムの指向、またはそれらの任意の適切な組み合わせを決定することを容易にすることができる。従って、本明細書で説明する１つ以上の方法論は、既存のシステムおよび方法の能力と比較して、ホログラムまたは一群のホログラムの単純または複雑な静的または動的挙動、ならびにそのようなホログラムを含む拡張現実または仮想現実シーンの生成、レンダリング、および表示を容易にすることができる。
【００７２】
これらの効果を総合的に考慮すると、本明細書で説明する１つ以上の方法は、それがなければホログラム位置にかかる特定の努力または資源の必要性を回避することができる。静的または動的ホログラム位置を実行する際にユーザ（例えば、ホログラムアーティスト）によって費やされる努力は、本明細書で説明する１つ以上の方法論を実装する特別目的マシンの使用（例えば、それに頼ること）によって低減され得る。（例えば、ネットワーク環境１００内の）１つ以上のシステムまたはマシンによって使用される計算リソースは、（例えば、本明細書で論じる構造を欠いている、そうでなければ本明細書で論じる機能を実行することができないシステムまたはマシンと比較して、）同様に低減され得る。このような計算リソースの例としては、プロセッササイクル、ネットワークトラフィック、計算能力、メインメモリ使用量、グラフィックスレンダリング能力、グラフィックスメモリ使用量、データ記憶容量、電力消費量、および冷却能力が挙げられる。
【００７３】
図１４は、いくつかの例示的な実施形態による、マシン１４００構成要素を示すブロック図であり、マシン１４００は、マシン読み取り可能媒体１４２２（例えば、非一時的なマシン読み取り可能媒体、マシン読み取り可能記憶媒体、コンピュータ読み取り可能記憶媒体、またはそれらの任意の適切な組み合わせ）から命令１４２４を読み、全体的にまたは部分的に、本明細書で論じる任意の１つ以上の方法を実行することができる。具体的には、図１４は、コンピュータシステム（例えば、コンピュータ）の例示的な形態のマシン１４００を示し、ここでは、マシン１４００に本明細書で論じる方法論のうちの任意の１つ以上を実行させるための命令１４２４（例えば、ソフトウェア、プログラム、アプリケーション、アプレット、ａｐｐ、または他の実行可能なコード）が、全体的または部分的に実行され得る。
【００７４】
代替の実施形態では、マシン１４００は、スタンドアロンデバイスとして動作するか、あるいは他のマシンと通信可能に結合（例えば、ネットワーク接続）され得る。ネットワーク展開において、マシン１４００は、サーバ−クライアントネットワーク環境内のサーバマシンまたはクライアントマシンの能力で、または分散（例えば、ピア・ツー・ピア）ネットワーク環境内のピア・マシンとして動作することができる。マシン１４００は、サーバ・コンピュータ、クライアント・コンピュータ、パーソナル・コンピュータ（ＰＣ）、タブレット・コンピュータ、ラップトップ・コンピュータ、ネットブック、携帯電話、スマートフォン、セットトップ・ボックス（ＳＴＢ）、パーソナル・デジタル・アシスタント（ＰＤＡ）、ウェブ・アプライアンス、ネットワーク・ルータ、ネットワーク・スイッチ、ネットワーク・ブリッジ、または、逐次的または他の方法で、そのマシンによって取られるアクションを特定する命令１４２４を実行することが可能な任意のマシンとすることができる。さらに、単一のマシンのみが図示されているが、用語「マシン」は、本明細書で論じる任意の１つ以上の方法論の全部または一部を実行するために、命令１４２４を個別にまたは共同で実行する任意のマシンの集合も含むと解釈されるものである。
【００７５】
マシン１４００は、プロセッサ１４０２（例えば、１つ以上の中央処理装置（ＣＰＵ）、１つ以上のグラフィックス処理装置（ＧＰＵ）、１つ以上のデジタル信号プロセッサ（ＤＳＰ）、１つ以上の特定用途向け集積回路（ＡＳＩＣ）、１つ以上の高周波集積回路（ＲＦＩＣ）、またはそれらの任意の適切な組み合わせ）、メインメモリ１４０４、およびスタティックメモリ１４０６を含み、それらは、バス１４０８を介して互いに通信するように構成されている。プロセッサ１４０２は、プロセッサ１４０２が、本明細書で論じる任意の１つ以上の方法論を全体的または部分的に実行するように構成可能であるように、命令１４２４の一部または全部によって、一時的または永続的に構成可能である固体デジタルマイクロ回路（例えば、電子的、光学的、またはその両方）を含む。例えば、プロセッサ１４０２の１つ以上のマイクロ回路のセットは、本明細書で説明する１つ以上のモジュール（例えば、ソフトウェアモジュール）を実行するように構成可能とすることができる。いくつかの例示的な実施形態では、プロセッサ１４０２は、マルチコアＣＰＵ（例えば、デュアルコアＣＰＵ、クワッドコアＣＰＵ、８コアＣＰＵ、または１２８コアＣＰＵ）であり、複数コアの各々は、本明細書で論じる任意の１つ以上の方法論を全体的にまたは部分的に実行することができる別個のプロセッサとして動作する。本明細書で説明する有益な効果は、少なくともプロセッサ１４０２を備えたマシン１４００によって提供され得るが、これらの同じ有益な効果は、プロセッサを含まない異なる種類のマシン（例えば、純粋な機械システム、純粋な流体システム、またはハイブリッドな機械流体システム）であって、このようなプロセッサレスマシンが本明細書で説明する１つ以上の方法論の実行するように構成されている場合に、提供され得る。
【００７６】
マシン１４００は、さらに、グラフィックス・ディスプレイ１４１０（例えば、プラズマ・ディスプレイ・パネル（ＰＤＰ）、発光ダイオード（ＬＥＤ）ディスプレイ、液晶ディスプレイ（ＬＣＤ）、プロジェクタ、陰極線管（ＣＲＴ）、またはグラフィックスまたはビデオを表示することが可能な任意の他のディスプレイ）を含んでもよい。マシン１４００はまた、英数字入力デバイス１４１２（例えば、キーボードまたはキーパッド）、ポインタ入力デバイス１４１４（例えば、マウス、タッチパッド、タッチスクリーン、トラックボール、ジョイスティック、スタイラス、モーションセンサ、眼球追跡デバイス、データグローブ、または他のポインティング機器）、データ・ストレージ１４１６、音声生成デバイス１４１８（例えば、サウンドカード、増幅器、スピーカ、ヘッドフォンジャック、またはそれらの任意の適切な組み合わせ）、およびネットワーク・インタフェース・デバイス１４２０を含んでもよい。
【００７７】
データ・ストレージ１４１６（例えば、データ・ストレージ・デバイス）は、マシン読み取り可能媒体１４２２（例えば、有形および非一時的なマシン読み取り可能媒体）を含み、そこでは、本明細書で説明する方法論または機能のうちのいずれか１つ以上を具体化する命令１４２４が記憶される。命令１４２４はまた、マシン１４００によるそれらの実行前または実行中に、完全にまたは少なくとも部分的に、メインメモリ１４０４内、スタティックメモリ１４０６内、プロセッサ１４０２内（例えば、プロセッサのキャッシュメモリ内）、またはそれらの任意の適切な組み合わせに存在することができる。従って、メインメモリ１４０４、スタティックメモリ１４０６、およびプロセッサ１４０２は、マシン読み取り可能媒体（例えば、有形および非一時的なマシン読み取り可能媒体）と見なすことができる。命令１４２４は、ネットワーク・インタフェース・デバイス１４２０を介してネットワーク１９０を介して送信または受信されてもよい。例えば、ネットワーク・インタフェース・デバイス１４２０は、任意の１つ以上の転送プロトコル（例えば、ハイパーテキスト転送プロトコル）を使用して命令１４２４を通信することができる。
【００７８】
いくつかの例示的な実施形態では、マシン１４００は、ポータブル・コンピューティング・デバイス（例えば、スマートフォン、タブレット・コンピュータ、またはウェアラブル・デバイス）としてよく、１つ以上の追加の入力構成要素１４３０（例えば、センサまたはゲージ）を有することができる。そのような入力構成要素１４３０の例は、画像入力構成要素（例えば、１つ以上のカメラ）、音声入力構成要素（例えば、１つ以上のマイクロホン）、方向入力構成要素（例えば、コンパス）、位置入力構成要素（例えば、ＧＰＳ受信機）、指向構成要素（例えば、ジャイロスコープ）、運動検出構成要素（例えば、１つ以上の加速度計）、高度検出構成要素（例えば、高度計）、生体入力構成要素（例えば、心電計検出器または血圧計検出器）、およびガス検出構成要素（例えば、ガスセンサ）を含む。これらの入力構成要素の任意の１つ以上によって収集された入力データは、本明細書で説明する任意のモジュールアクセス可能であり、利用可能である。
【００７９】
本明細書で使用する用語「メモリ」は、一時的または永続的にデータを記憶することができるマシン読み取り可能媒体を指し、ランダムアクセスメモリ（ＲＡＭ）、リードオンリーメモリ（ＲＯＭ）、バッファメモリ、フラッシュメモリ、およびキャッシュメモリを含むが、これらに限定されない。マシン読み取り可能媒体１４２２は、例示的な実施形態では単一の媒体であるように示されているが、用語「マシン読み取り可能媒体」は、命令を記憶することができる単一の媒体または複数の媒体（例えば、集中型または分散型データベース、または関連するキャッシュおよびサーバ）を含むように解釈されるべきである。用語「マシン読み取り可能媒体」は、マシン１４００による実行のための命令１４２４を記憶することができる任意の媒体又は複数の媒体の組み合わせを含むようにも解釈されるものとし、マシン１４００の１つ以上のプロセッサ（例えば、プロセッサ１４０２）によって実行されると、命令１４２４が、マシン１４００に本明細書で説明する方法の任意の１つ以上を全体的にまたは部分的に実行させるようにする。従って、「マシン読み取り可能媒体」は、単一の記憶装置またはデバイス、および複数の記憶装置またはデバイスを含むクラウドベースの記憶システムまたは記憶ネットワークを指す。従って、用語「マシン読み取り可能媒体」は、固体メモリチップ、光ディスク、磁気ディスク、またはそれらの任意の適切な組み合わせの例示の形態で１つ以上の有形および非一時的データリポジトリ（例えば、データボリューム）を含むが、これらに限定されないと解釈されるものとする。本明細書で使用する「非一時的」マシン読み取り可能媒体は、具体的には、伝搬信号それ自体を含まない。いくつかの例示的な実施形態では、マシン１４００による実行のための命令１４２４は、搬送媒体によって通信され得る。そのような搬送媒体の例は、記憶媒体（例えば、ある場所から別の場所へ物理的に移動される固体メモリのような非一時的なマシン読み取り可能記憶媒体）および一時的媒体（例えば、命令１４２４を通信する伝搬信号）を含む。
【００８０】
特定の例示的な実施形態は、モジュールを含むように本明細書で説明される。モジュールは、ソフトウェアモジュール（例えば、マシン読取可能媒体または伝送媒体に格納されまたは他の方法で具体化されたコード）、ハードウェアモジュール、またはそれらの任意の適切な組み合わせを構成することができる。「ハードウェアモジュール」は、特定の動作を実行することができる有形の（例えば、非一時的な）物理的構成要素（例えば、１つ以上のプロセッサのセット）であり、特定の物理的方法で構成またはアレンジされ得る。様々な例示的な実施形態では、１つ以上のコンピュータ・システムまたはその１つ以上のハードウェアモジュールは、ソフトウェア（例えば、アプリケーションまたはその部分）によって、このモジュールについて本明細書で説明する動作を実行するように動作するハードウェアモジュールとして構成され得る。
【００８１】
いくつかの例示的な実施形態では、ハードウェアモジュールは、機械的、電子的、流体的、またはそれらの任意の適切な組み合わせによって実施することができる。例えば、ハードウェアモジュールは、特定の動作を実行するように永続的に構成された専用の回路またはロジックを含むことができる。ハードウェアモジュールは、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）またはＡＳＩＣのような特別目的プロセッサであってもよいし、それを含んでもよい。ハードウェアモジュールはまた、特定の動作を実行するソフトウェアによって一時的に構成されるプログラマブル・ロジックまたは回路を含んでもよい。一例として、ハードウェアモジュールは、ＣＰＵまたは他のプログラマブル・プロセッサ内に包含されるソフトウェアを含むことができる。ハードウェアモジュールを機械的に実装するか、流体的に実装するか、専用の永続的に構成された回路において実装するか、あるいは一時的に構成された（例えば、ソフトウェアによって構成された）回路において実装するかの決定は、コストおよび時間的考慮によって決定され得ることが理解されよう。
【００８２】
従って、文言「ハードウェアモジュール」は、特定の方法で動作し、あるいは本明細書で説明する特定の動作を実行するために、物理的に構築され、永続的に構成され（例えば、ハードワイヤード）、あるいは一時的に構成され（例えば、プログラムされ）得る有形のエンティティを包含すると理解されるべきである。さらに、本明細書で使用する文言「ハードウェアで実装されたモジュール」は、ハードウェアモジュールを指す。ハードウェアモジュールが一時的に構成される（例えば、プログラムされる）例示的な実施形態を考慮すると、ハードウェアモジュールの各々は、ちょうどよい時に任意の１つのインスタンスで構成またはインスタンス化される必要はない。例えば、ハードウェアモジュールが、専用目的のプロセッサとなるようにソフトウェアによって構成されたＣＰＵを含む場合、ＣＰＵは、異なる時間にそれぞれ異なる専用目的のプロセッサ（例えば、各々異なるハードウェアモジュールに含まれる）として構成され得る。従って、ソフトウェア（例えば、ソフトウェアモジュール）は、１つ以上のプロセッサを、例えば、ある時間インスタンスで特定のハードウェアモジュールとなるか、そうでなければこれを構成するか、あるいは別の時間インスタンスで異なるハードウェアモジュールとなるか、そうでなければこれを構成することができる。
【００８３】
ハードウェアモジュールは、他のハードウェアモジュールに情報を提供し、他のハードウェアモジュールから情報を受けることができる。従って、説明したハードウェアモジュールは、通信的に結合されているとみなすことができる。複数のハードウェアモジュールが同時に存在する場合、通信は、２つ以上のハードウェアモジュール間（between  or  among）の（例えば、回路およびバス上での）信号伝送によって達成することができる。複数のハードウェアモジュールが異なる時間に構成またはインスタンス化される実施形態では、そのようなハードウェアモジュール間の通信は、例えば、複数のハードウェアモジュールがアクセスするメモリ構造内の情報の記憶および取得によって達成することができる。例えば、１つのハードウェアモジュールは、動作を実行し、その動作の出力を、それが通信的に結合されているメモリ（例えば、メモリデバイス）内に記憶することができる。次いで、さらなるハードウェアモジュールは、後に、メモリにアクセスして、記憶された出力を取得し、処理することができる。また、ハードウェアモジュールは、入力デバイスまたは出力デバイスとの通信も開始することができ、リソース（例えば、計算リソースからの情報の集合）上で動作することができる。
【００８４】
本明細書で説明する例示的な方法の様々な動作は、少なくとも部分的に、関連する動作を実行するように（例えば、ソフトウェアによって）一時的に構成されるか、あるいは永続的に構成される１つ以上のプロセッサによって実行することができる。一時的に構成されていようと、永続的に構成されていようと、そのようなプロセッサは、本明細書で説明する１つ以上の動作または機能を実行するように動作するプロセッサ実装モジュールを構成することができる。本明細書で使用する「プロセッサ実装モジュール」とは、ハードウェアが１つ以上のプロセッサを含むそのハードウェアモジュールを指す。従って、プロセッサがハードウェアの一例であるため、本明細書で説明する動作は、少なくとも部分的にプロセッサ実装される、ハードウェア実装される、あるいはその両方で実装されることができ、本明細書で論じる方法のうちの任意の１つ以上の方法のうちの少なくとも一部の動作は、１つ以上のプロセッサ実装モジュール、ハードウェア実装モジュール、またはそれらの任意の適切な組み合わせによって実行することができる。
【００８５】
さらに、そのような１つまたは複数のプロセッサは、「クラウドコンピューティング」環境または（例えば、「ソフトウェア・アズ・ア・サービス」（ＳａａＳ）実装での）サービスで動作を実行することができる。例えば、本明細書で説明する任意の１つ以上の方法での少なくとも一部の動作は、それらの動作がネットワーク（例えば、インターネット）を介して、かつ１つ以上の適切なインタフェース（例えば、アプリケーション・プログラム・インタフェース（ＡＰＩ））を介してアクセス可能である状態で、（例えば、プロセッサを含むマシンの例としての）一群のコンピュータによって実行され得る。特定の動作のパフォーマンスは、単一のマシン内にのみ存在するか、複数のマシンにまたがって展開されるかにかかわらず、１つ以上のプロセッサ間で分散することができる。いくつかの例示的な実施形態では、１つ以上のプロセッサまたはハードウェアモジュール（例えば、プロセッサ実装モジュール）は、単一のジオロケーション（例えば、家庭環境、オフィス環境、またはサーバファーム内）に位置することができる。他の例示的な実施形態では、１つ以上のプロセッサまたはハードウェアモジュールは、複数のジオロケーションに分散することができる。
【００８６】
本明細書を通して、複数のインスタンスは、単一のインスタンスとして説明する構成要素、動作、または構造を実装することができる。１つ以上の方法の個々の動作を別々の動作として図示し、説明するが、個々の動作のうちの１つ以上を同時に実行してよく、図示した順序で動作が実行される必要はない。例示的な構成において、別々の構成要素および機能として提示する構造およびそれらの機能性は、組み合わされた機能を有する構造または構成要素として実装することができる。同様に、単一の構成要素として提示する構造および機能性は、別々の構成要素および機能として実装することができる。これらおよび他の変形、修正、追加、および改善は、本明細書の主題の範囲内にある。
【００８７】
本明細書で論じる主題のいくつかの部分は、メモリ（例えば、コンピュータメモリまたは他のマシンメモリ）内のビットまたはバイナリデジタル信号として記憶されたデータ上の動作のアルゴリズムまたは記号表現の観点から提示することができる。このようなアルゴリズムまたは記号表現は、データ処理技術分野の当業者によって使用される技術の例であり、それらの作業の内容を当業者に伝えるものである。本明細書で使用する「アルゴリズム」は、自己無撞着動作シーケンスまたは所望の結果を導く類似の処理である。この文脈では、アルゴリズムおよび動作は物理量の物理的操作を伴う。そのような量は、必ずしもではないが、典型的には、記憶、アクセス、転送、結合、比較、またはそれ以外のマシンによる操作されることが可能な電気、磁気、または光学信号の形態をとることができる。「データ」、「コンテンツ」、「ビット」、「値」、「要素」、「記号」、「文字」、「用語」、「数字」、「数字」などの単語を用いて、そのような信号を指すことは、主として一般的な用法の理由から、時には便利である。しかし、これらの言葉は、単に便利なラベルであり、適切な物理量と関連付けられるものである。
【００８８】
特に明記しない限り、「アクセスする」、「処理する」、「検出する」、「計算する（computing）」、「計算する」、「決定する」、「生成する」、「提示する」、「表示する」等の言葉を使用する本明細書での議論は、１つ以上のメモリ（例えば、揮発性メモリ、不揮発性メモリ、もしくはそれらの適切な組み合わせ）、レジスタ、または情報を受信し、記憶し、送信し、または表示する他のマシン構成要素内の物理（例えば、電子的、磁気的、または光学的）量として表されるデータを操作または変換するマシン（例えば、コンピュータ）によって実行可能なアクションまたはプロセスを指す。さらに、特に明記しない限り、用語「ａ」または「ａｎ」は、特許文献で一般的であるように、本明細書では、１つ以上のインスタンスを含むために使用される。最後に、本明細書で使用する接続詞「または」は、特に明記しない限り、非排他的な「または」を指す。
【００８９】
以下の列挙された実施形態は、本明細書で論じた方法、マシン読み取り可能媒体、およびシステム（例えば、マシン、デバイス、または他の装置）の様々な例示の実施形態を記載する。
【００９０】
第１の実施形態は、
１つ以上のプロセッサによって、ターゲットデバイスのジオロケーション移動を記述するターゲット運動データにアクセスすることと、
前記１つ以上のプロセッサによって、前記ターゲットデバイスのターゲット速度を示し、かつ前記ターゲットデバイスが該ターゲット速度で移動しているターゲット方向を示すターゲット運動ベクトルを決定することであって、該ターゲット運動ベクトルはアクセスされた前記ターゲット運動データに基づいて決定される、決定することと、
前記１つ以上のプロセッサによって、生成されるホログラムの相対速度を示し、かつ生成される該ホログラムの相対方向を示すホログラム運動ベクトルを決定することであって、該相対速度および該相対方向は前記ターゲットデバイスに対して相対的である、決定することと、
前記１つ以上のプロセッサによって、前記ユーザデバイスに、前記ホログラムを生成させ、前記ホログラムが前記ターゲットデバイスの前記ターゲット速度および前記ホログラムの前記相対速度に基づいて決定されたホログラム速度で移動し、かつ前記ターゲットデバイスの前記ターゲット方向および前記ホログラムの前記相対方向に基づいて決定されたホログラム方向に移動する拡張現実シーンを表示させることと、を含む方法を提供する。
【００９１】
いくつかの例示的な実施形態では、デバイス間の相対運動は、ホログラム位置を目的として決定される。従って、第２の実施形態は、第１の実施形態による方法を提供し、
アクセスされた前記ターゲット運動データは、惑星表面に対する前記ターゲットデバイスの前記ジオロケーション移動を記述し、
当該方法は、前記惑星表面に対する前記ユーザデバイスのジオロケーション移動を記述するユーザ運動データにアクセスすることをさらに含み、
前記ターゲット運動ベクトルを決定することは、さらに、アクセスされた前記ユーザ運動データに基づいており、前記ユーザデバイスに対する前記ターゲットデバイスの相対ターゲット速度を示し、かつ前記ユーザデバイスに対する前記ターゲットデバイスの相対ターゲット方向を示す相対ターゲット運動ベクトルを決定し、
前記ホログラム速度は、前記ユーザデバイスに対する前記ホログラムの相対ホログラム速度であり、前記ユーザデバイスに対する前記ターゲットデバイスの前記相対ターゲット速度に基づいて決定され、
前記ホログラム方向は、前記ユーザデバイスに対する前記ホログラムの相対ホログラム方向であり、前記ユーザデバイスに対する前記ターゲットデバイスの前記相対ターゲット方向に基づいて決定される。
【００９２】
いくつかの例示的な実施形態では、ジオロケーションデータ（例えば、全地球測位システムデータ）は、ホログラム位置のために直接的に使用される。従って、第３の実施形態は、第１または第２の実施形態による方法を提供し、
アクセスされた前記ターゲット運動データは、惑星表面に関連した前記ターゲットデバイスの前記ジオロケーション移動を記述し、
前記ホログラムの前記ホログラム速度は前記惑星表面に対して相対的であり、
前記ホログラムの前記ホログラム方向は前記惑星表面に対して相対的である。
【００９３】
いくつかの例示的な実施形態では、ホログラム速度およびホログラム方向は明示的に決定される。従って、第４の実施形態は、第１から第３の実施形態のいずれかによる方法を提供し、
前記ホログラム運動ベクトルの決定は、
前記ターゲットデバイスの前記ターゲット速度および前記ホログラムの前記相対速度に基づいて前記ホログラムの前記ホログラム速度を決定すること、および
前記ターゲットデバイスの前記ターゲット方向および前記ホログラムの前記相対方向に基づいて前記ホログラムの前記ホログラム方向を決定すること、
ことにより、相対ホログラム運動ベクトルを決定することを含む。
【００９４】
いくつかの例示的な実施形態では、ホログラムは、ユーザデバイスのカメラの視野に含まれる。従って、第５の実施形態は、第１から第４の実施形態のいずれかによる方法を提供し、
前記ユーザデバイスのカメラの視野の決定することをさらに含み、
前記ユーザデバイスに前記拡張現実シーンを表示させることは、前記ユーザデバイスに、前記ユーザデバイスの前記カメラの決定された視野内に生成された前記ホログラムを表示させることを含む。
【００９５】
さらに、ユーザデバイスのカメラの視野は、ターゲットデバイスとホログラムの両方を含むことができる。従って、第６の実施形態は、以下をさらに含む第５の実施形態による方法を提供し、
前記ターゲットデバイスのジオロケーションを記述するターゲット位置データにアクセスすることと、
前記ターゲットデバイスの前記ジオロケーションが前記ユーザデバイスのカメラの視野内にあることを検出することと、をさらに含み、
前記ユーザデバイスに前記拡張現実シーンを表示させることは、前記ターゲットデバイスの前記ジオロケーションが前記ユーザデバイスのカメラの決定された視野内にあると検出されることに基づいて、前記ユーザデバイスに、前記ターゲットデバイスの前記ジオロケーションを前記拡張現実シーンに包含させることを含む。
【００９６】
代替的には、ユーザデバイスのカメラの視野は、視野がホログラムを含むにもかかわらず、ターゲットデバイスを省略することができる。従って、第７の実施形態は、第５の実施形態による方法を提供し、
前記ターゲットデバイスのジオロケーションを記述するターゲット位置データにアクセスすることと、
前記ターゲットデバイスが前記ユーザデバイスのカメラの視野外にあることを検出することと、をさらに含み、
前記ユーザデバイスに前記拡張現実シーンを表示させることは、前記ユーザデバイスに、前記ターゲットデバイスの前記ジオロケーションが前記ユーザデバイスのカメラの決定された視野外にあると検出されることに基づいて、前記拡張現実シーンから前記ターゲットデバイスの前記ジオロケーションを省略させることを含む。
【００９７】
いくつかの例示的な実施形態では、ホログラムは、ターゲットデバイスのターゲット方向に基づいて指向される。従って、第８の実施形態は、第１から第７の実施形態のいずれかによる方法を提供し、
前記ユーザデバイスに前記拡張現実シーンを表示させることは、前記ユーザデバイスに、前記ターゲットデバイスが移動している前記ターゲット方向に基づいて指向された前記ホログラムを表示させることを含む。
【００９８】
さらに、ホログラムは、ターゲットデバイスのターゲット方向に対するそれ自身の明確な指向を有することができる。従って、第９の実施形態は、第８の実施形態による方法を提供し、
前記ターゲットデバイスが移動している前記ターゲット方向に対する前記ホログラムの相対指向を示すホログラム指向ベクトルを決定することをさらに含み、
前記ユーザデバイスに前記拡張現実シーンを表示させることは、前記ユーザデバイスに、前記ターゲットデバイスが移動している前記ターゲット方向に対する前記ホログラムの前記相対指向に基づいて、さらに指向された前記ホログラムを表示させることを含む。
【００９９】
いくつかの例示的な実施形態では、ホログラムは、一群の複数のホログラムのうちのただ１つ（例えば、鳥の群れの中の１羽の鳥、一群の宇宙兵の中の１人の宇宙兵、または飛行している複数のドラゴンの中の１つのドラゴン）のホログラムであり、各ホログラムは、それぞれそれ自身の対応する運動ベクトルを有する。従って、第１０の実施形態は、第１から第９の実施形態のいずれかに従う方法を提供し、
前記ホログラムは、一群のホログラムに含まれ、
前記ホログラムの前記ホログラム運動ベクトルの決定は、各々が前記一群のホログラム内の異なるホログラムに対応する一群のホログラム運動ベクトルを決定する一部として実行され、
前記ユーザデバイスに前記拡張現実シーンを表示させることは、前記ユーザデバイスに、前記一群のホログラムを表示させることを含み、前記一群内の各ホログラムは、対応する決定されたホログラム運動ベクトルに基づいて表示される。
【０１００】
さらに、一群のホログラム内の各ホログラムは、ターゲットデバイスのターゲット方向に対して別々に指向され得る。従って、第１１の実施形態は、第１０の実施形態による方法を提供し、
各々が前記一群のホログラム内の異なるホログラムの対応する相対指向を示す一群のホログラム指向ベクトルを決定することであって、各相対指向は前記ターゲットデバイスが移動している前記ターゲット方向に対して相対的である、決定することをさらに含み、
前記ユーザデバイスに前記一群のホログラムを表示させることは、前記一群内の各ホログラムを、前記ターゲットデバイスが移動している前記ターゲット方向に対して相対的である対応する相対指向に基づいて指向されることを含む。
【０１０１】
いくつかの例示的な実施形態では、ホログラムは、ターゲットデバイスに対して空間において位置的にオフセットされる。従って、第１２の実施形態は、第１から第１１の実施形態のいずれかに従う方法を提供し、
前記ターゲットデバイスのジオロケーションを記述するターゲット位置データにアクセスすることと、
前記ホログラムの相対オフセット距離を示し、かつ前記ホログラムの相対オフセット方向を示す相対オフセットベクトルを決定することと、をさらに含み、
前記ユーザデバイスに前記拡張現実シーンを表示させることは、前記ユーザデバイスに、前記ターゲットデバイスの前記ジオロケーションから離れた前記相対オフセット距離および前記ターゲットデバイスが移動している前記ターゲット方向に対する前記相対オフセット方向で前記ホログラムを表示させることを含む。
【０１０２】
さらに、ホログラムの位置オフセットは、静的（例えば、時不変）情報に対する１つ以上のルックアップ演算、動的（例えば、時変）情報に対する１つ以上のＡＰＩコール等によって、データベース（例えば、データベース１１５に記憶されたテーブル）から取得することができる。従って、第１３の実施形態は、第１２の実施形態による方法を提供し、
前記相対オフセットベクトルの決定は、
前記相対オフセット距離を前記ホログラムに相関させるホログラムデータベースから前記ホログラムの前記相対オフセット距離にアクセスすること、および
前記ホログラムデータベースから前記ホログラムの前記相対オフセット方向にアクセスすることであって、前記ホログラムデータベースは前記相対オフセット方向を前記ホログラムに相関させる、アクセスすることを含む。
【０１０３】
いくつかの例示的な実施形態では、任意のターゲットデバイスに関するホログラムの相対速度および相対方向は、静的（例えば、時不変）情報に対する１つ以上のルックアップ演算、動的（例えば、時変）情報に対する１つ以上のＡＰＩコール等によって、データベース（例えば、データベース１１５に記憶されたテーブル）から取得することができる。従って、第１４の実施形態は、第１から第１３の実施形態のいずれかによる方法を提供し、
前記ホログラム運動ベクトルの決定は、
前記相対速度を前記ホログラムに相関させるホログラムデータベースから前記ホログラムの前記相対速度にアクセスすること、および
前記ホログラムデータベースから前記ホログラムの前記相対方向にアクセスすることであって、前記ホログラムデータベースは前記相対方向を前記ホログラムに相関させる、アクセスすることを含む。
【０１０４】
いくつかの例示的な実施形態では、拡張現実シーンの１つ以上の部分を、１つのユーザデバイスから１つ以上の他のユーザデバイスへ（例えば、ソーシャルメディアを介して）共有することができる。従って、第１５の実施形態は、第１から第１４の実施形態のいずれかによる方法を提供し、
前記ユーザデバイスは、ネットワークを介して第２のユーザデバイスに通信可能に結合された第１のユーザデバイスであり、
当該方法は、前記第１のユーザデバイスに、表示された前記拡張現実シーンの少なくとも部分を前記第２のユーザデバイスに通信させることであって、通信された該部分は、前記ターゲットデバイスの前記ターゲット速度および前記ホログラムの前記相対速度に基づいて決定された前記ホログラム速度で移動する前記ホログラムを描画し、かつ前記ターゲットデバイスの前記ターゲット方向および前記ホログラムの前記相対方向に基づいて決定された前記ホログラム方向に移動する前記ホログラムを描画する、通信させることをさらに含む。
【０１０５】
いくつかの例示的な実施形態では、拡張現実シーンの１つ以上の部分は、（例えば、ユーザデバイスによる記憶、またはデータベース１１５のようなネットワークベースのデータ記憶のために）ユーザデバイスによって記録することができる。従って、第１６の実施形態は、第１から第１５の実施形態のいずれかによる方法を提供し、
前記ユーザデバイスに、表示された前記拡張現実シーンの少なくとも部分を記録させることであって、記録された該部分は、前記ターゲットデバイスの前記ターゲット速度および前記ホログラムの前記相対速度に基づいて決定された前記ホログラム速度で移動する前記ホログラムを描画し、かつ前記ターゲットデバイスの前記ターゲット方向および前記ホログラムの前記相対方向に基づいて決定された前記ホログラム方向に移動する前記ホログラムを描画する、記憶させることをさらに含む。
【０１０６】
さらに、拡張現実シーンの記録部分は、次に、１つのユーザデバイスから１つ以上の他のユーザデバイスへ（例えば、ユーザによる編集の有無にかかわらず、ソーシャルメディアを介して）共有することができる。従って、第１７の実施形態は、第１６の実施形態による方法を提供し、
前記ユーザデバイスは、ネットワークを介して第２のユーザデバイスに通信可能に結合された第１のユーザデバイスであり、
当該方法は、前記第１のユーザデバイスに、表示された前記拡張現実シーンの記録された前記部分を前記第２のユーザデバイスに通信させることをさらに含む。
【０１０７】
クライアント側の実装のいくつかの例示的な実施形態では、第１８の実施形態は、第１から第１７の実施形態のいずれかによる方法を提供し、
前記ユーザデバイスに前記ホログラムを生成させ、前記拡張現実シーンを表示させることは、前記ユーザデバイスのカメラによって生成されたライブカメラデータにアクセスすること、および前記ホログラムと該ライブカメラデータのすくなくとも部分を描画する合成ビデオを生成することを含む。
【０１０８】
サーバ側の実装のいくつかの例示的な実施形態では、第１９の実施形態は、第１から第１７の実施形態のいずれかによる方法を提供し、
前記ユーザデバイスが前記ホログラムを生成させ、前記拡張現実シーンを表示させることは、前記ユーザデバイスに、前記ユーザデバイスのカメラによって生成されたライブカメラデータにアクセスさせること、および前記ユーザデバイスに、前記ホログラムと該ライブカメラデータの少なくとも部分を描写する合成ビデオを生成させることを含む。
【０１０９】
第２０の実施形態は、マシンの１つ以上のプロセッサによって実行されると、該マシンに動作を実行させる命令を含むマシン読み取り可能媒体（例えば、非一時的マシン読み取り可能記憶媒体）であって、該動作は、
ターゲットデバイスのジオロケーション移動を記述するターゲット運動データにアクセスすることと、
前記ターゲットデバイスのターゲット速度を示し、かつ前記ターゲットデバイスが該ターゲット速度で移動しているターゲット方向を示すターゲット運動ベクトルを決定することであって、該ターゲット運動ベクトルはアクセスされた前記ターゲット運動データに基づいて決定される、決定することと、
生成されるホログラムの相対速度を示し、かつ生成される該ホログラムの相対方向を示すホログラム運動ベクトルを決定することであって、該相対速度および該相対方向は前記ターゲットデバイスに対して相対的である、決定することと、
ユーザデバイスに、前記ホログラムを生成させ、前記ホログラムが前記ターゲットデバイスの前記ターゲット速度および前記ホログラムの前記相対速度に基づいて決定されたホログラム速度で移動し、かつ前記ターゲットデバイスの前記ターゲット方向および前記ホログラムの前記相対方向に基づいて決定されたホログラム方向に移動する拡張現実シーンを表示させることと、を含む。
【０１１０】
第２１の実施形態は、システム（例えば、コンピュータシステム）であって、
１つ以上のプロセッサと、
前記１つ以上のプロセッサのうちの少なくとも１つのプロセッサによって実行されると、当該システムに動作を実行させる命令を記憶するメモリと、を含み、
前記動作は、
ターゲットデバイスのジオロケーション移動を記述するターゲット運動データにアクセスすることと、
前記ターゲットデバイスのターゲット速度を示し、かつ前記ターゲットデバイスが該ターゲット速度で移動しているターゲット方向を示すターゲット運動ベクトルを決定することであって、該ターゲット運動ベクトルはアクセスされた前記ターゲット運動データに基づいて決定される、決定することと、
生成されるホログラムの相対速度を示し、かつ生成される該ホログラムの相対方向を示すホログラム運動ベクトルを決定することであって、該相対速度および該相対方向は前記ターゲットデバイスに対して相対的である、決定することと、
ユーザデバイスに、前記ホログラムを生成させ、前記ホログラムが前記ターゲットデバイスの前記ターゲット速度および前記ホログラムの前記相対速度に基づいて決定されたホログラム速度で移動し、かつ前記ターゲットデバイスの前記ターゲット方向および前記ホログラムの前記相対方向に基づいて決定されたホログラム方向に移動する拡張現実シーンを表示させることと、を含む。
【０１１１】
上述したように、いくつかの例示的な実施形態では、ホログラム位置を目的として、デバイス間の相対運動が決定される。したがって、第２２の実施形態は、第２１の実施形態によるシステムを提供し、
アクセスされた前記ターゲット運動データは、惑星表面に対する前記ターゲットデバイスの前記ジオロケーション移動を記述し、
前記動作は、前記惑星表面に対する前記ユーザデバイスのジオロケーション移動を記述するユーザ運動データにアクセスすることをさらに含み、
前記ターゲット運動ベクトルを決定することは、さらに、アクセスされた前記ユーザ運動データに基づいており、前記ユーザデバイスに対する前記ターゲットデバイスの相対ターゲット速度を示し、かつ前記ユーザデバイスに対する前記ターゲットデバイスの相対ターゲット方向を示す相対ターゲット運動ベクトルを決定し、
前記ホログラム速度は、前記ユーザデバイスに対する前記ホログラムの相対ホログラム速度であり、前記ユーザデバイスに対する前記ターゲットデバイスの前記相対ターゲット速度に基づいて決定され、
前記ホログラム方向は、前記ユーザデバイスに対する前記ホログラムの相対ホログラム方向であり、前記ユーザデバイスに対する前記ターゲットデバイスの前記相対ターゲット方向に基づいて決定される。
【０１１２】
第２３の実施形態は、第１から第１９の実施形態のいずれかの方法を実行するマシンを制御するためのマシン読み取り可能命令を搬送する搬送媒体を提供する。
【図１】
2020517032.tif 000003
【図２】
2020517032.tif 000004
【図３】
2020517032.tif 000005
【図４】
2020517032.tif 000006
【図５】
2020517032.tif 000007
【図６】
2020517032.tif 000008
【図７】
2020517032.tif 000009
【図８】
2020517032.tif 000010
【図９】
2020517032.tif 000011
【図１０】
2020517032.tif 000012
【図１１】
2020517032.tif 000013
【図１２】
2020517032.tif 000014
【図１３】
2020517032.tif 000015
【図１４】
2020517032.tif 000016
【国際調査報告】
2020517032.tif 000017
2020517032.tif 000018
2020517032.tif 000019