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

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

▶ ナイアンティック, インコーポレイテッドの特許一覧

<>
  • 特許-相互作用可能な拡張仮想現実体験 図1
  • 特許-相互作用可能な拡張仮想現実体験 図2
  • 特許-相互作用可能な拡張仮想現実体験 図3
  • 特許-相互作用可能な拡張仮想現実体験 図4A
  • 特許-相互作用可能な拡張仮想現実体験 図4B
  • 特許-相互作用可能な拡張仮想現実体験 図4C
  • 特許-相互作用可能な拡張仮想現実体験 図4D
  • 特許-相互作用可能な拡張仮想現実体験 図5A
  • 特許-相互作用可能な拡張仮想現実体験 図5B
  • 特許-相互作用可能な拡張仮想現実体験 図6
  • 特許-相互作用可能な拡張仮想現実体験 図7
  • 特許-相互作用可能な拡張仮想現実体験 図8
  • 特許-相互作用可能な拡張仮想現実体験 図9
  • 特許-相互作用可能な拡張仮想現実体験 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-05-02
(45)【発行日】2025-05-14
(54)【発明の名称】相互作用可能な拡張仮想現実体験
(51)【国際特許分類】
   G06T 19/00 20110101AFI20250507BHJP
   A63F 13/655 20140101ALI20250507BHJP
【FI】
G06T19/00 600
A63F13/655
【請求項の数】 20
【外国語出願】
(21)【出願番号】P 2024063826
(22)【出願日】2024-04-11
(62)【分割の表示】P 2021124797の分割
【原出願日】2021-07-29
(65)【公開番号】P2024095794
(43)【公開日】2024-07-10
【審査請求日】2024-05-20
(31)【優先権主張番号】17/216,413
(32)【優先日】2021-03-29
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】519087723
【氏名又は名称】ナイアンティック, インコーポレイテッド
【氏名又は名称原語表記】NIANTIC,INC.
【住所又は居所原語表記】One Ferry Building,Suite 200 San Francisco,CA 94111 United States of America
(74)【代理人】
【識別番号】100110928
【弁理士】
【氏名又は名称】速水 進治
(74)【代理人】
【識別番号】100127236
【弁理士】
【氏名又は名称】天城 聡
(72)【発明者】
【氏名】菅野 千尋
(72)【発明者】
【氏名】宮本 茂
【審査官】益戸 宏
(56)【参考文献】
【文献】国際公開第2019/222467(WO,A1)
【文献】特表2020-514998(JP,A)
【文献】米国特許出願公開第2011/0273448(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 19/00
A63F 13/00
G06F 3/01
(57)【特許請求の範囲】
【請求項1】
演算装置によ実行されることで前記演算装置に動作を行わせる命令を記憶する非一時的なコンピュータ可読記憶媒体であって、前記動作は、
カメラアセンブリにより、外部環境の画像を撮影することと、
ディスプレイに、前記外部環境の前記画像内の仮想オブジェクトを表示することと、
ユーザ入力を介して、フラッシュライトを点灯させる指示を受信することと、
前記フラッシュライトを点灯させる前記指示を受信したことに応じて、前記カメラアセンブリによって撮影された複数の追加画像のそれぞれについて、前記フラッシュライトによって照らされる前記外部環境の部分に対応する前記ディスプレイの領域を識別することと、
前記外部環境の前記部分に対応する前記ディスプレイの前記領域に向かって移動する前記仮想オブジェクトを、前記外部環境の前記複数の追加画像上に重ねて表示することと、を含む、
非一時的なコンピュータ可読記憶媒体。
【請求項2】
前記フラッシュライトは、前記外部環境を照らす物理的なフラッシュライトである、
請求項1に記載の非一時的なコンピュータ可読記憶媒体。
【請求項3】
前記動作は、
前記撮影された画像に基づき、前記外部環境において斜面を有するオブジェクトを識別することと、
前記仮想オブジェクトが、前記オブジェクトを登り、また、前記オブジェクトの前記斜面を滑り降りる様子を表示することと、をさらに含む、
請求項1に記載の非一時的なコンピュータ可読記憶媒体。
【請求項4】
前記仮想オブジェクトを表示することは、前記外部環境の前記画像内に、各々前記外部環境の異なる位置に表示される複数の仮想オブジェクトを表示することを含み、
前記複数の追加画像において前記ディスプレイの前記領域に対応する前記外部環境の前記部分に向かって移動する前記仮想オブジェクトを表示することは、前記複数の仮想オブジェクトの各々が、各々の位置から前記外部環境の前記領域へ移動する様子を表示することを含む、
請求項1に記載の非一時的なコンピュータ可読記憶媒体。
【請求項5】
前記動作は、
前記ディスプレイに関連付けられたクライアントデバイスの動きが閾値を超えたことを判定することと、
前記クライアントデバイスの動きが前記閾値を超えたとの判定に応じて、前記外部環境の前記領域から前記ディスプレイの前記領域に対応する前記外部環境の第2の領域へ前記仮想オブジェクトが動く様子を表示することと、をさらに含む、
請求項1に記載の非一時的なコンピュータ可読記憶媒体。
【請求項6】
前記画像を撮影する前記カメラアセンブリの視点が移動すると、表示される前記外部環境の前記部分が更新される、
請求項1に記載の非一時的なコンピュータ可読記憶媒体。
【請求項7】
前記フラッシュライトは、前記ディスプレイの前記領域上の仮想的なスポットライトである、
請求項1に記載の非一時的なコンピュータ可読記憶媒体。
【請求項8】
カメラアセンブリにより、外部環境の画像を撮影することと、
ディスプレイに、前記外部環境の前記画像内の仮想オブジェクトを表示することと、
ユーザ入力を介して、フラッシュライトを点灯させる指示を受信することと、
前記フラッシュライトを点灯させる前記指示を受信したことに応じて、前記カメラアセンブリによって撮影された複数の追加画像のそれぞれについて、前記フラッシュライトによって照らされる前記外部環境の部分に対応する前記ディスプレイの領域を識別することと、
前記外部環境の前記部分に対応する前記ディスプレイの前記領域に向かって移動する前記仮想オブジェクトを、前記外部環境の前記複数の追加画像上に重ねて表示することと、を含む、
方法。
【請求項9】
前記フラッシュライトは、前記外部環境を照らす物理的なフラッシュライトである、
請求項8に記載の方法。
【請求項10】
前記撮影された画像に基づき、前記外部環境において斜面を有するオブジェクトを識別することと、
前記仮想オブジェクトが、前記オブジェクトを登り、また、前記オブジェクトの前記斜面を滑り降りる様子を表示することと、をさらに含む、
請求項8に記載の方法。
【請求項11】
前記仮想オブジェクトを表示することは、前記外部環境の前記画像内に、各々前記外部環境の異なる位置に表示される複数の仮想オブジェクトを表示することを含み、
前記複数の追加画像において前記ディスプレイの前記領域に対応する前記外部環境の前記部分に向かって移動する前記仮想オブジェクトを表示することは、前記複数の仮想オブジェクトの各々が、各々の位置から前記外部環境の前記領域へ移動する様子を表示することを含む、
請求項8に記載の方法。
【請求項12】
前記ディスプレイに関連付けられたクライアントデバイスの動きが閾値を超えたことを判定することと、
前記クライアントデバイスの動きが前記閾値を超えたとの判定に応じて、前記外部環境の前記領域から前記ディスプレイの前記領域に対応する前記外部環境の第2の領域へ前記仮想オブジェクトが動く様子を表示することと、をさらに含む、
請求項8に記載の方法。
【請求項13】
前記画像を撮影する前記カメラアセンブリの視点が移動すると、表示される前記外部環境の前記部分が更新される、
請求項8に記載の方法。
【請求項14】
前記フラッシュライトは、前記ディスプレイの前記領域上の仮想的なスポットライトである、
請求項8に記載の方法。
【請求項15】
演算装置と、
前記演算装置により実行されることで前記演算装置に動作を行わせる命令を記憶するコンピュータ可読記憶媒体と、を備えるシステムであって、
前記動作は、
カメラアセンブリにより、外部環境の画像を撮影することと、
ディスプレイに、前記外部環境の前記画像内の仮想オブジェクトを表示することと、
ユーザ入力を介して、フラッシュライトを点灯させる指示を受信することと、
前記フラッシュライトを点灯させる前記指示を受信したことに応じて、前記カメラアセンブリによって撮影された複数の追加画像のそれぞれについて、前記フラッシュライトによって照らされる前記外部環境の部分に対応する前記ディスプレイの領域を識別することと、
前記外部環境の前記部分に対応する前記ディスプレイの前記領域に向かって移動する前記仮想オブジェクトを、前記外部環境の前記複数の追加画像上に重ねて表示することと、を含む、
システム。
【請求項16】
前記フラッシュライトは、前記外部環境を照らす物理的なフラッシュライトである、
請求項15に記載のシステム。
【請求項17】
前記動作は、
前記撮影された画像に基づき、前記外部環境において斜面を有するオブジェクトを識別することと、
前記仮想オブジェクトが、前記オブジェクトを登り、また、前記オブジェクトの前記斜面を滑り降りる様子を表示することと、をさらに含む、
請求項15に記載のシステム。
【請求項18】
前記仮想オブジェクトを表示することは、前記外部環境の前記画像内に、各々前記外部環境の異なる位置に表示される複数の仮想オブジェクトを表示することを含み、
前記複数の追加画像において前記ディスプレイの前記領域に対応する前記外部環境の前記部分に向かって移動する前記仮想オブジェクトを表示することは、前記複数の仮想オブジェクトの各々が、各々の位置から前記外部環境の前記領域へ移動する様子を表示することを含む、
請求項15に記載のシステム。
【請求項19】
前記動作は、
前記ディスプレイに関連付けられたクライアントデバイスの動きが閾値を超えたことを判定することと、
前記クライアントデバイスの動きが前記閾値を超えたとの判定に応じて、前記外部環境の前記領域から前記ディスプレイの前記領域に対応する前記外部環境の第2の領域へ前記仮想オブジェクトが動く様子を表示することと、をさらに含む、
請求項15に記載のシステム。
【請求項20】
前記画像を撮影する前記カメラアセンブリの視点が移動すると、表示される前記外部環境の前記部分が更新される、
請求項15に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
説明される主題は、相互作用可能な拡張現実(augmented reality:AR)と仮想現実(virtual reality:VR)の画像の表示全般に関連する。
【背景技術】
【0002】
ディスプレイ装置を使用して、没入型体験を通じてユーザに情報を提示することができる。この情報には、従来の静止画像又は動画だけでなく、拡張現実(AR)又は仮想現実(VR)の画像も含むことができる。AR及びVRは、ゲーム、エンジニアリング、医療、及び航空を含む、様々な分野で有用である。しかしながら、AR及びVRの体験は、一般的には、互いに分離して体験される。さらに、ユーザが仮想オブジェクト(AR又はVRのいずれかのオブジェクト)と相互作用する能力は、通常、いくつかのジェスチャ又は制御コマンドに限定される。
【発明の概要】
【0003】
クライアントデバイスは、種々の、相互作用可能な拡張現実(AR)及び仮想現実(VR)の画像をユーザに表示することができる。
【0004】
いくつかの実施形態において、クライアントデバイスは、外部の環境の画像を撮影し、外部の環境における実世界のオブジェクトを識別する。オブジェクトが仮想環境の基準を満たす場合、クライアントデバイスは、外部の環境におけるオブジェクトの位置又はその付近に、仮想環境へのウィンドウを表示する。その後、クライアントデバイスは、そのウィンドウを通じて、仮想環境の一部を表示する。従って、ユーザは、オブジェクトに対してクライアントデバイスを動かすことにより、仮想環境を調べることができる。
【0005】
いくつかの実施形態において、クライアントデバイスは、光を生成することのできるライトアセンブリを備え、クライアントデバイスは、外部の環境に仮想キャラクターを表示する。ユーザがライトアセンブリをオンにすると、仮想キャラクターは、ライトアセンブリによる光でハイライトされた外部の環境内の領域に集まるであろう。従って、ユーザは、ライトアセンブリをオンにし、クライアントデバイスを動かすことにより、外部の環境内で仮想キャラクターの動きを制御することができる。
【0006】
いくつかの実施形態において、クライアントデバイスは、外部の環境内のオブジェクトの奥行情報を推定する。クライアントデバイスは、この奥行情報に基づき、外部の環境に仮想オブジェクトを表示してもよい。クライアントデバイスは、外部の環境におけるオブジェクトと相互作用する仮想オブジェクトも表示してよい。従って、仮想オブジェクトは、ユーザにとって、より現実的又は生きているように見えるようになる。
【図面の簡単な説明】
【0007】
図1】1つ以上の実施形態に係る、ネットワーク化演算環境を示す図である。
【0008】
図2】1つ以上の実施形態に係る、実世界と並行する地理を有した仮想世界の表現を描いた図である。
【0009】
図3】1つ以上の実施形態に係る、並行現実ゲームの例示的なゲームインタフェースを描いた図である。
【0010】
図4A】いくつかの実施形態に係る、仮想環境へのウィンドウの表示を示す例としての一連の画像を示す図である。
図4B】いくつかの実施形態に係る、仮想環境へのウィンドウの表示を示す例としての一連の画像を示す図である。
図4C】いくつかの実施形態に係る、仮想環境へのウィンドウの表示を示す例としての一連の画像を示す図である。
図4D】いくつかの実施形態に係る、仮想環境へのウィンドウの表示を示す例としての一連の画像を示す図である。
【0011】
図5A】いくつかの実施形態に係る、仮想オブジェクトが集合する様子を示した一連の画像を示す図である。
図5B】いくつかの実施形態に係る、仮想オブジェクトが集合する様子を示した一連の画像を示す図である。
【0012】
図6】一実施形態に係る、外部の環境に2つの仮想キャラクター605の画像データを表示するクライアントデバイス110を描いた図である。
【0013】
図7】一実施形態に係る、仮想環境へのウィンドウを表示する一般的なプロセスを説明したフローチャートを示す図である。
【0014】
図8】一実施形態に係る、外部の環境において仮想オブジェクトを動かす一般的なプロセスを説明したフローチャートを示す図である。
【0015】
図9】一実施形態に係る、外部の環境において仮想オブジェクトを表示する一般的なプロセスを説明したフローチャートを示す図である。
【0016】
図10】1つ以上の実施形態に係る、通過可能な空間モデルの学習又は適用における使用に好適な例としてのコンピュータシステムを示す図である。
【0017】
図面及び以下の説明は、特定の実施形態を単なる例示として説明するものである。当業者は、以下の説明より、記載の原則から逸脱することなく、構造及び方法の代替の実施形態が採用されてもよいことを容易に認識するであろう。以下、添付の図面に例示された、いくつかの実施形態について参照する。
【発明を実施するための形態】
【0018】
<例示的な位置ベース並行現実ゲーミングシステム>
実世界におけるプレーヤーの動き及び行為が仮想世界における行為に影響を及ぼし、また逆も然りとなるように、実世界の地理の少なくとも一部と並行する仮想世界の地理において拡張現実(AR)コンテンツを含む並行現実ゲームの文脈において、種々の実施形態について説明する。当業者は、本明細書において提供される開示を使用することで、AR及び仮想現実VRの画像が表示される他のシチュエーションにおいて、記載の主題が適用可能であることを理解するであろう。さらに、当業者は、本明細書において提供される開示を使用することで、本開示に照らして、多数のゲームインタフェースの構成及び基礎となる機能が明らかとなることを認めるであろう。本開示は、いずれか1つの特定の構成に限定されることを意図するものでない。
【0019】
またコンピュータベースシステムに本来備わった柔軟性により、システムの構成要素間でタスク及び機能の様々な構成、組み合わせ、及び分割が可能となる。例えば、本開示の態様に係るシステム及び方法は、単一の演算装置を使用するか、又は、(例えば、コンピュータネットワークにおいて接続された)複数の演算装置に亘って、実装可能である。
【0020】
図1は、1つ以上の実施形態に係る、ネットワーク化演算環境100を示している。ネットワーク化演算環境100は、実世界と並行する地理を有する仮想世界でのプレーヤーの相互作用を提供する。特に、実世界の地理的領域を、仮想世界の対応領域に直接リンクさせる又はマッピングすることができる。プレーヤーは、実世界の様々な地理的位置に移動することにより、仮想世界の中を動き回ることができる。例えば、実世界におけるプレーヤーの位置を追跡し、仮想世界におけるプレーヤーの位置をアップデートするために使用することができる。通常、プレーヤーが仮想世界と相互作用を行っているクライアントデバイス110の位置を発見し、プレーヤーが同一の(又は、略同一の)位置にいると仮定することによって、実世界におけるプレーヤーの位置が判定される。例えば、種々の実施形態において、実世界におけるプレーヤーの位置が、仮想世界における仮想要素の仮想位置に対応する実世界の位置から閾値距離(例えば、10メートル、20メートル等)内にある場合、仮想要素と相互作用することができる。便宜上、このように相互作用を行う仮想要素に十分に近いプレーヤーを、仮想要素に対応する実世界の位置にいる、と称する。また「プレーヤーの位置」を参照して種々の実施形態について説明するが、当業者は、このような参照がプレーヤーのクライアントデバイス110の位置の参照であってもよいことを認識するであろう。
【0021】
以下、図2を参照すると、同図は、一実施形態に係る並行現実ゲームのプレーヤーのゲームボードとして機能し得る、実世界200と並行した仮想世界210の概念図を描くものである。図示の通り、仮想世界210は、実世界200の地理と並行する地理を含むことができる。特に、実世界200における地理的領域又は空間を規定する座標の範囲が、仮想世界210における仮想空間を規定する座標の対応する範囲にマッピングされる。実世界200の座標の範囲は、町、地区、市、キャンパス、地域、国、大陸、全世界、又は他の地理的領域と関連付けることができる。地理的座標の範囲内の各地理的座標は、仮想世界の仮想空間における対応する座標にマッピングされる。
【0022】
仮想世界210におけるプレーヤーの位置は、実世界200におけるプレーヤーの位置に対応する。例えば、実世界200の位置212に位置するプレーヤーAは、仮想世界210において対応する位置222を有する。同様に、実世界200の位置214に位置するプレーヤーBは、仮想世界において対応する位置224を有する。プレーヤーらが実世界の地理的座標の範囲内で動き回ると、プレーヤーらは、仮想世界210の仮想空間を規定する座標の範囲内でも動き回ることとなる。特に、プレーヤーによって携帯される携帯演算装置に関連付けられた測位システム(例えば、GPSシステム)を使用して、プレーヤーが実世界内の地理的座標の範囲を移動する際、プレーヤーの位置を追跡することができる。実世界200におけるプレーヤーの位置に関連付けられたデータを使用して、仮想世界210の仮想空間を規定する座標の対応する範囲におけるプレーヤーの位置をアップデートする。このように、プレーヤーらは、実世界200における特定の具体的な位置においてチェックインしたり、又は位置情報を定期的にアップデートしたりする必要なく、実世界200における地理的座標の対応する範囲の間で単に移動することにより、仮想世界210の仮想空間を規定する座標の範囲において継続的な追跡と共に移動することができる。
【0023】
位置ベースゲームは、プレーヤーに、仮想世界における種々の仮想位置に分散された種々の仮想要素又は仮想オブジェクトまで移動するか、又はこれと相互作用することを求める、複数のゲーム目標を含むことができる。本明細書に記載の通り、仮想オブジェクトは、クライアントデバイス110によって表示されるAR又はVRのオブジェクトとすることができる。仮想オブジェクトには、生物オブジェクト及び無生物オブジェクトが含まれる。生物オブジェクトは、仮想キャラクターと称されてもよい。仮想キャラクターは、非プレーヤーキャラクター(NPC)等、ゲームのキャラクターを表現することができる。プレーヤーは、実世界において仮想要素又はオブジェクトの対応位置に移動することにより、これらの仮想位置に移動することができる。例えば、測位システムは、プレーヤーが実世界を継続的に移動する際、そのプレーヤーが継続して並行する仮想世界も移動するように、プレーヤーの位置を継続的に追跡することができる。そしてプレーヤーは、特定の位置のおいて種々の仮想要素又はオブジェクトと相互作用し、1つ以上のゲーム目標を達成又は実施することができる。
【0024】
例えば、ゲーム目標は、プレーヤーに仮想世界210における種々の仮想位置に配置された仮想要素230と相互作用させる。これらの仮想要素230は、実世界200におけるランドマーク、地理的位置、又はオブジェクト240とリンクさせることができる。実世界のランドマーク又はオブジェクト240は、美術作品、モニュメント、建物、企業、図書館、博物館、又はその他の他の好適な実世界のランドマーク又はオブジェクトとすることができる。相互作用には、何らかの仮想アイテムを獲得すること、その所有権を主張すること、またはそれを使用すること、何らかの仮想通貨を消費すること等が含まれる。これらの仮想要素230を獲得するために、プレーヤーは、実世界において仮想要素230とリンクされたランドマーク又は地理的位置240に移動し、仮想世界210における仮想要素230と相互作用する。例えば、図2のプレーヤーAは、特定のランドマーク240とリンクされた仮想要素230と相互作用するか、又はこれを獲得するために、実世界200におけるランドマーク240に移動しなければならなくてもよい。仮想要素230との相互作用は、写真を撮影したり、及び/又は、仮想要素230に関連付けられたランドマーク又はオブジェクト240についての他の情報を検証、取得、又は獲得するなど、実世界での行為を要求することができる。他の実施形態において、仮想要素を獲得するための別、又は、追加の機構が利用可能であってもよい。例えば、ゲーム内アイテムにより、プレーヤーが、(例えば、仮想要素に対応する位置でない、実世界の位置から)遠隔で仮想要素と相互作用できるようにしてもよい。
【0025】
ゲーム目標は、プレーヤーに、位置ベースゲーム内でプレーヤーによって収集された1つ以上の仮想アイテムを使用させることを要求してもよい。例えば、プレーヤーは、ゲーム目標を完遂するのに有用であり得る仮想アイテム(例えば、武器、生き物、パワーアップアイテム、又はその他のアイテム)を探して、仮想世界210を移動してもよい。これらの仮想アイテムは、実世界200において異なる場所に移動することにより、又は、仮想世界210もしくは実世界200のいずれかにおいて種々の行為を完遂することにより、発見又は収集可能である。図2に示された例において、プレーヤーは、仮想アイテム232を使用して、1つ以上の仮想要素230を獲得する。特に、プレーヤーは、仮想要素230に近接した又は仮想要素230内の仮想世界210の位置において、仮想アイテム232を展開することができる。このように1つ以上の仮想アイテム232を展開することで、結果として、特定のプレーヤー、又は特定のプレーヤーのチーム/派閥のために、仮想要素230を獲得することができる。
【0026】
特定の一実装において、プレーヤーは、並行現実ゲームの一部として仮想エネルギーを集めてもよい。図2に描かれている通り、仮想エネルギー250は、仮想世界210の異なる位置に分散可能である。プレーヤーは、実世界200における仮想エネルギー250の対応位置に移動することにより、仮想エネルギー250を収集することができる。仮想エネルギー250を使用して、仮想アイテムへのパワー供給、又は、ゲーム内の種々のゲーム目標を実施することができる。すべての仮想エネルギー250を失ったプレーヤーは、ゲームから切断され得る。
【0027】
本開示の態様によると、並行現実ゲームは、ゲーム中のすべての参加者が同一の仮想世界を共有する巨大なマルチプレーヤー位置ベースゲームとすることができる。プレーヤーらは、別のチーム又は派閥に分けられ、仮想要素の所有権を獲得又は主張する等、1つ以上のゲーム目標を達成するために、協働することができる。このように、並行現実ゲームは、本質的に、ゲームのプレーヤー間での協力を促すソーシャルゲームであり得る。対抗するチームのプレーヤーは、並行現実ゲーム中、互いに対抗して働く(又は、場合によっては、協力して互いの目的を達成する)ことができる。プレーヤーは、仮想アイテムを使用して、対抗するチームのプレーヤーを攻撃したり、進捗を遅らせたりしてもよい。場合によっては、プレーヤーは、並行現実ゲーム中の協力的又は相互作用的なイベントのために、実世界における位置で集合するように促される。このような場合、ゲームサーバは、プレーヤーが、実際に物理的に存在し、なりすましをしていないことを確認する。
【0028】
並行現実ゲームは、並行現実ゲーム内でのゲームプレイを向上及び促進する種々の特徴を有することができる。例えば、プレーヤーらは、ゲーム全体を通じて使用可能な(例えば、ゲーム内アイテムの購入、他のアイテムとの交換、アイテムの創作等)仮想通貨又はその他の仮想報酬(例えば、仮想トークン、仮想ポイント、仮想材料リソース等)を蓄積することができる。プレーヤーらは、1つ以上のゲーム目標を完遂し、ゲーム内での体験を得ることで、様々なレベルに進むことができる。いくつかの実施形態において、プレーヤーらは、ゲーム内で提供される1つ以上の通信インタフェースを通じて互いに通信可能である。プレーヤーらは、ゲーム内でのゲーム目標を完遂するために使用可能な、増強された「パワー」又は仮想アイテムを得ることもできる。当業者は、本明細書中に提供される開示を使用して、本開示の範囲から逸脱しない限りにおいて、他の種々のゲーム特徴が並行現実ゲームに含まれ得ることを理解しなければならない。
【0029】
図1を再び参照すると、ネットワーク化演算環境100は、クライアント-サーバアーキテクチャを使用し、ここではゲームサーバ120がネットワーク105を通じてクライアントデバイス110と通信し、クライアントデバイス110のプレーヤーに並行現実ゲームを提供する。ネットワーク化演算環境100は、スポンサー/広告主システム又はビジネスシステム等、他の外部システムも含んでよい。1つのクライアントデバイス110のみを図1に示したが、任意の数のクライアントデバイス110又は他の外部システムが、ネットワーク105を通じて、ゲームサーバ120に接続されてもよい。さらに、ネットワーク化演算環境100は、異なる、又は、追加の要素を含んでもよく、以下に記載の方法とは別の方法で、クライアントデバイス110とサーバ120との間で機能が分散されてもよい。
【0030】
クライアントデバイス110は、ゲームサーバ120とインタフェースで接続するためにプレーヤーによって使用可能な任意の携帯演算装置とすることができる。例えば、クライアントデバイス110は、無線装置、パーソナルデジタルアシスタント(personal digital assistant:PDA)、携帯ゲーミングデバイス、携帯電話、スマートフォン、タブレット、ナビゲーションシステム、ハンドヘルドGPSシステム、ウェアラブル演算装置、1つ以上のプロセッサを有するディスプレイ、又はその他類似の装置とすることができる。他の例として、クライアントデバイス110は、デスクトップ又はラップトップコンピュータ等、従来のコンピュータシステムを含む。さらに、クライアントデバイス110は、演算装置を備えた車両であってもよい。要するに、クライアントデバイス110は、プレーヤーをゲームサーバ120と相互作用させることができる任意のコンピュータデバイス又はシステムとすることができる。演算装置として、クライアントデバイス110は、1つ以上のプロセッサと、1つ以上のコンピュータ可読記憶媒体とを備えることができる。コンピュータ可読記憶媒体は、プロセッサに動作を実施させる命令を記憶可能である。クライアントデバイス110は、スマートフォン又はタブレット等、プレーヤーによって容易に携帯又は運搬可能な携帯演算装置であることが好ましい。
【0031】
クライアントデバイス110は、ゲームサーバ120と通信し、物理的環境の感覚データをゲームサーバ120に提供する。クライアントデバイス110は、そのクライアントデバイス110が存在する物理的環境におけるシーンの2次元画像データを撮影するカメラアセンブリ125を備える。図1に示される実施形態において、各クライアントデバイス110は、ゲーミングモジュール135、測位モジュール140、及びライトアセンブリ143等、追加のソフトウェア構成要素を備える。クライアントデバイス110は、プレーヤーからの情報受信、又は、プレーヤーへの情報提供のための他の種々の入出力装置を備えてもよい。入出力装置の例には、ディスプレイスクリーン、タッチスクリーン、タッチパッド、データ入力キー、スピーカー、及び音声認識に好適なマイクロフォンが含まれる。クライアントデバイス110は、これらに限定されないが、動きセンサ、加速度計、ジャイロスコープ、他の慣性測定ユニット(inertial measurement units:IMUs)、バロメータ、測位システム、温度計、光センサ等を含む、クライアントデバイス110からのデータを記録するための他の様々なセンサを備えていてもよい。クライアントデバイス110は、ネットワーク105を通じた通信を提供するネットワークインタフェースをさらに備えることができる。ネットワークインタフェースは、例えば、送信機、受信機、ポート、コントローラ、アンテナ、又はその他好適な構成要素を含む、1つ以上のネットワークとインタフェース接続するための任意の好適な構成要素を備えることができる。
【0032】
カメラアセンブリ125は、クライアントデバイス110が位置する環境のシーンの画像データを撮影する。カメラアセンブリ125は、変動キャプチャレート、且つ、変動カラーキャプチャ範囲の様々な変動フォトセンサを利用してもよい。カメラアセンブリ125は、広角レンズ又は望遠レンズを含んでいてもよい。カメラアセンブリ125は、画像データとして、単一の画像又は動画を撮影するように構成されていてもよい。カメラアセンブリ125は、画像データを撮影し、クライアントデバイス110上の演算装置とこの画像データを共有する。画像データには、感覚データ(例えば、温度、環境の明るさ)、又は、撮影データ(例えば、露光、温かみ、シャッタースピード、焦点距離、撮影時間等)を含む、画像データの他の詳細を説明したメタデータを添付することができる。カメラアセンブリ125は、画像データを撮影することのできる1つ以上のカメラを備えることができる。一例において、カメラアセンブリ125は、1つのカメラを備え、単眼画像データを撮影するように構成される。他の例において、カメラアセンブリ125は、2つのカメラを備え、ステレオ画像データを撮影するように構成される。他の種々の実施形態において、カメラアセンブリ125は、各々、画像データを撮影するように構成された複数のカメラを備える。
【0033】
ゲーミングモジュール135は、並行現実ゲームに参加するためのインタフェースをプレーヤーに提供する。ゲームサーバ120は、ネットワーク105を介して、クライアントデバイス110におけるゲーミングモジュール135によって使用されるゲームデータをクライアントデバイス110に送信し、ゲームサーバ120から離れた位置にいるプレーヤーにローカルバージョンのゲームを提供する。ゲームサーバ120は、ネットワーク105を通じた通信を提供するためのネットワークインタフェースを備えることができる。ネットワークインタフェースは、例えば、送信機、受信機、ポート、コントローラ、アンテナ、又はその他の好適な構成要素を含む、1つ以上のネットワークとインタフェース接続するための任意の好適な構成要素を備えることができる。
【0034】
クライアントデバイス110によって実行されるゲーミングモジュール135は、プレーヤーと並行現実ゲームとの間のインタフェースを提供する。ゲーミングモジュール135は、ゲームに関連付けられた仮想世界を表示する(例えば、仮想世界の描写をレンダリングする)クライアントデバイス110に関連付けられたディスプレイ装置に、ユーザインタフェースを提示することができ、プレーヤーが仮想世界で相互作用を行い、種々のゲーム目標を実施できるようにする。他のいくつかの実施形態において、ゲーミングモジュール135は、並行現実ゲームの仮想要素又はオブジェクトを用いて拡張された実世界の(例えば、カメラアセンブリ125によって撮影された)画像データを提示する。これらの実施形態において、ゲーミングモジュール135は、クライアントデバイスの他の構成要素から受信した他の情報に応じて、仮想コンテンツを生成又は調整してもよい。例えば、ゲーミングモジュール135は、画像データにおいて撮影されたシーンの奥行情報に応じて、ユーザインタフェース上に表示される仮想オブジェクトを調整してもよい。
【0035】
ゲーミングモジュール135は、プレーヤーが表示画面を見ることなくゲームと相互作用できるように、他の種々の出力も制御することができる。例えば、ゲーミングモジュール135は、プレーヤーに表示画面を見ることなくゲームを実行できるように、種々の音声、振動、又はその他の通知を制御することができる。ゲーミングモジュール135は、プレーヤーにゲームの正確な表現を提供するために、ゲームサーバ120から受信したゲームデータにアクセスすることができる。ゲーミングモジュール135は、プレーヤーの入力を受信及び処理することができ、ネットワーク105を通じて、ゲームサーバ120へアップデートを提供することができる。ゲーミングモジュール135は、クライアントデバイス110によって表示されるゲームコンテンツの生成又は調整も行ってよい。例えば、ゲーミングモジュール135は、(例えば、通過可能空間推定モデル130によって判定された)シーンのうちの通過可能な空間を説明する情報に基づき、仮想要素を生成してもよい。例えば、ゲーミングモジュール135は、通過可能な空間上で、そのシーンにおける仮想要素のための経路を判定することができる。
【0036】
測位モジュール140は、クライアントデバイス110の位置を監視するための装置又は回路とすることができる。例えば、測位モジュール140は、三角測量、携帯中継塔又はWiFiホットスポットへの近接、又はその他好適な位置判定技術を使用して、IPアドレスに基づき、衛星ナビゲーション測位システム(例えば、GPSシステム、ガリレオ測位システム、グローバルナビゲーション衛星システム(Global Navigation satellite system:GLONASS)、BeiDou衛星ナビゲーション測位システム)、慣性ナビゲーションシステム、デッドレコニングシステムを使用して、実際の位置又は相対的な位置を判定することができる。測位モジュール140は、クライアントデバイス110の位置の正確な測位を支援することができる、様々な他のセンサをさらに備えてもよい。
【0037】
プレーヤーが実世界でクライアントデバイス110を持って動き回る際、測位モジュール140は、プレーヤーの位置を追跡し、ゲーミングモジュール135にプレーヤーの位置情報を提供する。ゲーミングモジュール135は、実世界におけるプレーヤーの実際の位置に基づき、ゲームに関連付けられた仮想世界におけるプレーヤーの位置をアップデートする。このように、プレーヤーは、実世界においてクライアントデバイス110を携帯又は運搬するだけで、仮想世界と相互作用することができる。特に、仮想世界におけるプレーヤーの位置は、実世界におけるプレーヤーの位置と対応させることができる。ゲーミングモジュール135は、ネットワーク105を通じて、ゲームサーバ120にプレーヤーの位置情報を提供することができる。これに応じて、ゲームサーバ120は、不正行為者がクライアントデバイス110の位置なりすましを行うことを防ぐため、クライアントデバイス110の位置を検証する種々の技術を成立させることができる。プレーヤーの位置情報がアクセスされること、および、ゲームの文脈の中でその位置情報がいかに利用されるか(例えば、仮想世界におけるプレーヤーの位置をアップデートする)を知らされた後で許可された場合にのみ、プレーヤーに関連付けられた位置情報が利用されることを理解しなければならない。また、プレーヤーに関連付けられた任意の位置情報が、プレーヤーのプライバシーを保護する方法で記憶及び維持される。
【0038】
ゲームサーバ120は、任意の演算装置とすることができ、1つ以上のプロセッサ及び1つ以上のコンピュータ可読記憶媒体を備えることができる。コンピュータ可読記憶媒体は、プロセッサに動作を実施させる命令を記憶することができる。ゲームサーバ120は、ゲームデータベース115を含む、又は、ゲームデータベース115と通信することができる。ゲームデータベース115は、ネットワーク105を通じてクライアント110に供給又は提供される、並行現実ゲームにおいて使用されるゲームデータを記憶する。
【0039】
ゲームデータベース115に記憶されるゲームデータには、(1)並行現実ゲームにおける仮想世界に関連付けられたデータ(例えば、ディスプレイ装置上に仮想世界をレンダリングするために使用される描画データ、仮想世界内の位置の地理的座標等)、(2)並行現実ゲームのプレーヤーに関連付けられたデータ(例えば、これらに限定されないが、プレーヤーの情報、プレーヤーの経験レベル、プレーヤーの通貨、仮想世界/実世界におけるプレーヤーの現在位置、プレーヤーのエネルギーレベル、プレーヤーの趣向、チーム情報、派閥情報等を含むプレーヤープロファイル)、(3)ゲーム目標に関連付けられたデータ(例えば、現在のゲーム目標に関連付けられたデータ、ゲーム目標のステータス、過去のゲーム目標、将来のゲーム目標、所望のゲーム目標等)、(4)仮想世界内の仮想要素に関連付けられたデータ(例えば、仮想要素の位置、仮想要素の種別、仮想要素に関連付けられたゲーム目標、仮想要素に対して対応する実世界の位置情報、仮想要素の振る舞い、仮想要素の関連性等)、(5)仮想世界の要素にリンクされた実世界のオブジェクト、ランドマーク、位置に関連付けられたデータ(例えば、実世界のオブジェクト/ランドマークの位置、実世界のオブジェクト/ランドマークの説明、実世界のオブジェクトにリンクされた仮想要素の関連性等)、(6)ゲームステータス(例えば、現在のプレーヤー数、ゲーム目標の現在のステータス、プレーヤーのリーダーボード等)、(7)プレーヤーの行為/入力に関連付けられたデータ(例えば、現在のプレーヤーの位置、過去のプレーヤーの位置、プレーヤーの動き、プレーヤーの入力、プレーヤーの問い合わせ、プレーヤーの通信等)、及び(8)並行現実の実施中に使用、関連、又は取得する他の任意のデータが含まれ得る。ゲームデータベース115に記憶されたゲームデータは、システム管理者によって、又は、クライアントデバイス110等、システム100のユーザ/プレーヤーからネットワーク105を通じて受信したデータによって、オフライン又はリアルタイムのいずれかで追加可能である。
【0040】
ゲームサーバ120は、クライアントデバイス110からの(例えば、リモートプロシージャコール(remote procedure calls:RPCs)を介した)ゲームデータのリクエストを受信し、ネットワーク105を介してこれらのリクエストに応答するように構成可能である。例えば、ゲームサーバ120は、ゲームデータを1つ以上のデータファイルに符号化し、このデータファイルをクライアントデバイス110に提供することができる。また、ゲームサーバ120は、ネットワーク105を介して、クライアントデバイス110からゲームデータ(例えば、プレーヤーの位置、プレーヤーの行為、プレーヤーの入力等)を受信するように構成可能である。例えば、クライアントデバイス110は、ゲームサーバ120にプレーヤーの入力、及びその他のアップデートを定期的に送るように構成可能であり、ゲームサーバ120は、これを使用して、任意及びすべてのゲーム状況の変更を反映するように、ゲームデータベース115内のゲームデータをアップデートする。
【0041】
図示の実施形態において、サーバ120は、ユニバーサルゲームモジュール145と、商用ゲームモジュール150と、データ収集モジュール155と、イベントモジュール160と、通過可能空間推定学習システム170とを備える。上述の通り、ゲームサーバ120は、ゲームサーバ120の一部であるか、又は、遠隔でアクセスされてもよいゲームデータベース115と相互作用する(例えば、ゲームデータベース115は、ネットワーク105を介してアクセスされる分散データベースであってもよい)。他の実施形態において、ゲームサーバ120は、異なる、又は、追加の要素を含む。また記載とは異なる方法で、機能が要素間において分散されてもよい。例えば、ゲームデータベース115は、ゲームサーバ120内に一体化可能である。
【0042】
ユニバーサルゲームモジュール145は、すべてのプレーヤーに対して並行現実ゲームをホストし、すべてのプレーヤーの並行現実ゲームにおける現在のステータスの信頼できる情報源として振る舞う。ホストとして、ユニバーサルゲームモジュール145は、例えば、各々のクライアントデバイス110を介して、プレーヤーに対する表現のためのゲームコンテンツを生成する。ユニバーサルゲームモジュール145は、並行現実ゲームをホストするとき、ゲームデータを検索又は記憶するため、ゲームデータベース115にアクセスしてもよい。ユニバーサルゲームモジュール145は、クライアントデバイス110からゲームデータ(例えば、奥行情報、プレーヤーの入力、プレーヤーの位置、プレーヤーの行為、ランドマーク情報等)も受信し、並行現実ゲームのすべてのプレーヤーのために、受信したゲームデータを並行現実ゲーム全体に組み込む。ユニバーサルゲームモジュール145は、ネットワーク105を通じたクライアントデバイス110へのゲームデータの伝送も管理することができる。ユニバーサルゲームモジュール145は、これらに限定されないが、クライアントデバイス110とゲームサーバ120との間の接続を保証すること、様々なクライアントデバイス110間の接続を確立させること、様々なクライアントデバイス110の位置を検証することを含む、クライアントデバイス110のセキュリティの側面も統制してよい。
【0043】
商用ゲームモジュール150は、それが含まれる実施形態において、ユニバーサルゲームモジュール145から分離したものとすることもでき、又は、その一部とすることもできる。商用ゲームモジュール150は、実世界における商業活動にリンクされた並行現実ゲーム内での種々のゲーム特徴の包含を管理することができる。例えば、商用ゲームモジュール150は、ネットワーク105を通じた(ネットワークインタフェースを介した)、スポンサー/広告主、ビジネス、又はその他の実態等の外部システムから、並行現実ゲームに商業活動にリンクされたゲーム特徴を含めるリクエストを受信することができる。商用ゲームモジュール150は、その後、並行現実ゲームにおけるこれらのゲーム特徴の包含を手配することができる。
【0044】
ゲームサーバ120は、データ収集モジュール155をさらに備えることができる。データ収集モジュール155は、それが含まれる実施形態において、ユニバーサルゲームモジュール145から分離したものとすることもでき、又は、その一部とすることもできる。データ収集モジュール155は、実世界におけるデータ収集活動にリンクされた並行現実ゲーム内への種々のゲーム特徴の包含を管理することができる。例えば、データ収集モジュール155は、並行現実ゲーム内にデータ収集活動へリンクされたゲーム特徴を含むように、データベース115に記憶されたゲームデータを修正することができる。データ収集モジュール155は、データ収集活動に従って、プレーヤーによって収集されたデータを解析することもでき、種々のプラットフォームによるアクセスのためにデータを提供することもできる。
【0045】
イベントモジュール160は、並行現実ゲームにおけるイベントへのプレーヤーのアクセスを管理する。「イベント」という用語を便宜上使用するが、この用語は、特定の位置又は時間における特定のイベントを必ずしも言及するものでないことを理解しなければならない。むしろ、プレーヤーがそのコンテンツにアクセスしてもよいかを判定するために、1つ以上のアクセス基準を使用するアクセス制御ゲームコンテンツの提供を言及するものであってもよい。このようなコンテンツは、アクセス制御がほとんど又は全くないゲームコンテンツを含む、より大きな並行現実ゲームの一部であってもよく、又は、スタンドアローンのアクセス制御された並行現実ゲームであってもよい。
【0046】
ネットワーク105は、ローカルエリアネットワーク(例えば、イントラネット)、ワイドエリアネットワーク(例えば、インターネット)、又はこれらの何らかの組み合わせ等、任意の種別の通信ネットワークとすることができる。このネットワークは、クライアントデバイス110とゲームサーバ120との間の直接的な接続も含むことができる。通常、ゲームサーバ120とクライアントデバイス110との間の通信は、任意の種別の有線、又は、無線接続を使用し、様々な通信プロトコル(例えば、TCP/IP、HTTP、SMTP、FTP)、符号化又はフォーマット(例えば、HTML、XML、JSON、)、又は、保護方式(例えば、VPN、セキュアHTTP、SSL)を使用して、ネットワークインタフェースを介して実施可能である。
【0047】
本明細書において検討する技術は、サーバ、データベース、ソフトウェアアプリケーション、及びその他のコンピュータベースシステムとともに、とられた行動、このようなシステムとの間で送られた情報を参照する。当業者は、コンピュータベースシステムに本来備わった柔軟性により、構成要素間で様々なタスクの構成、組み合わせ、及び分割が可能となることを認識するであろう。例えば、本明細書において検討されるサーバの処理は、単一のサーバ、又は、組み合わせで動作する複数のサーバを使用して実装されてもよい。データベース及びアプリケーションは、単一のシステム上に実装されてもよく、又は複数のシステムに分散されてもよい。分散された構成要素は、順次、又は、並行して動作してもよい。
【0048】
また、本明細書において検討するシステム及び方法が、位置情報等、ユーザ(例えばプレーヤー)についての個人情報にアクセス及び解析するか、個人情報を使用する状況において、ユーザには、プログラム又は機能が情報を収集するか否かを制御し、システム又は他のアプリケーションからコンテンツを受信するか否か、又は、いかにして受信するかを制御する機会が与えられてもよい。ユーザに、何の情報が収集され、いかにしてその情報が使用されるかについて、意味のある通知が提供されるまで、このような情報又はデータは収集又は使用されることはない。この情報は、ユーザの同意がなければ、収集又は使用されることはなく、この同意もユーザによって随時無効化又は変更可能である。従って、ユーザは、ユーザについての情報がいかにして収集されるのか、アプリケーション又はシステムによっていかにして使用されるのかを制御することができる。また或る情報又はデータを、記憶又は使用前に1つ以上の方法で取り扱うことができ、個人を識別可能な情報を除外するようにする。例えば、ユーザの同定は、ユーザのために個人を識別可能な情報が判定できないように取り扱われてもよい。
【0049】
<例示的なゲームインタフェース>
図3は、プレーヤーと仮想世界210との間のインタフェースの一部として、クライアント110のディスプレイに提示可能なゲームインタフェース300の一実施形態を描いたものである。ゲームインタフェース300は、仮想世界210におけるプレーヤーの位置222、仮想要素230の位置、仮想アイテム232の位置、及び仮想エネルギー250の位置といった、仮想世界210とゲームの他の種々の態様とを表示するために使用可能な表示ウィンドウ310を備える。ユーザインタフェース300は、ゲームデータ情報、ゲーム通信、プレーヤー情報、クライアント位置査定指示、及びゲームに関連付けられた他の情報といった、他の情報も表示可能である。例えば、ユーザインタフェースは、プレーヤーの名前、経験レベル、及び他の情報といった、プレーヤー情報315を表示することができる。ユーザインタフェース300は、種々のゲーム設定及びゲームに関連付けられた他の情報にアクセスするためのメニュー320を備えることができる。ユーザインタフェース300は、ゲームシステムとプレーヤーとの間および並行現実ゲームの1名以上のプレーヤー間で、通信を可能にする通信インタフェース330も備えることができる。
【0050】
本開示の態様によると、プレーヤーは、単に実世界でクライアントデバイス110を携帯することにより、並行現実ゲームと相互作用することができる。例えば、プレーヤーは、単に、スマートフォン上で並行現実ゲームに関連付けられたアプリケーションにアクセスし、そのスマートフォンを持って実世界を動き回ることにより、ゲームをプレイすることができる。この点に関して、プレーヤーは、位置ベースゲームをプレイするために、表示画面上の仮想世界の視覚的表現を見続ける必要はない。結果として、ユーザインタフェース300は、ユーザがゲームと相互作用できるように、複数の非視覚的要素を含むことができる。例えば、ゲームインタフェースは、プレーヤーがゲーム内の仮想要素又はオブジェクトに接近しているとき、又は、並行現実ゲーム内で重要なイベントが起こるとき、プレーヤーに聴覚通知を提供することができる。プレーヤーは、オーディオコントロール340でこのような聴覚通知を制御することができる。仮想要素又はイベントの種別に応じて、異なる種別の聴覚通知をユーザに提供することができる。聴覚通知は、プレーヤーの仮想要素又はオブジェクトに対する近接に応じて、周波数又は音量を増減させることができる。振動通知又はその他好適な通知、又は信号等、ユーザに他の非視覚的通知及び信号を提供することができる。
【0051】
図1を再び参照すると、いくつかの実施形態において、ゲーミングモジュール135は、オブジェクト識別子モジュール175、ウィンドウモジュール180、フラッシュライトモジュール185、オブジェクト相互作用モジュール190、及び奥行推定モジュール195を備える。これらのモジュールは、クライアントデバイス110に記憶されるが、これらのモジュールのうちの1つ以上は、ゲームサーバ120に記憶されてもよい。例えば、カメラアセンブリ125によって撮影された画像は、ゲームサーバ120上のモジュールに送られ、このモジュールは、後に、ネットワーク105を介してクライアントデバイス110に表示命令を提供する。さらに、これらのモジュールは、ゲーミングモジュール135の一部であるが、ゲーミングの文脈に限定されない。モジュール175、180、185、190、及び195について、以下にさらに説明する。
【0052】
<仮想環境へのウィンドウの表示>
いくつかの実施形態において、画像データは、クライアントデバイス110によって提示され、ユーザ(例えば、ゲームのプレーヤー)のための組み合わせられた又は相互交換可能な、AR/VR体験を提供する。組み合わせられたAR/VR体験には、ユーザに対してAR画像データを表示することが含まれ、或るシチュエーションにおいては、VR画像データがユーザに対して表示される。例えば、外部の環境(実世界とも称する)の画像を表示しつつ、ゲーミングモジュール135は、ウィンドウを表示する。本説明の文脈において、ウィンドウは、ユーザに以前には表示されなかった仮想環境(ウィンドウと称する)を見せる仮想オブジェクトである。ウィンドウは、通常、外部環境におけるオブジェクト上に表示される。例えば、ウィンドウは、壁の写真フレーム上に表示される。従って、ユーザは、写真フレームを動かして、その写真フレームの後方にあるように見える仮想環境の部分を見ることができる。このように組み合わせられたAR/VR体験は、オブジェクト識別子モジュール175及びウィンドウモジュール180に関して、以下にさらに説明される。
【0053】
オブジェクト識別子モジュール175は、カメラアセンブリ125によって撮影された画像を受信及び解析し、その画像内のオブジェクトを識別する。オブジェクト識別子モジュール175は、無生物オブジェクト及び生物オブジェクト(例えば、動物及び人)、又は、生物オブジェクトの一部(例えば、手又は足)を識別することができる。オブジェクトを識別することは、画像における画素群があるオブジェクトを表すことを認識し、そのオブジェクト物のオブジェクト種別を判定することをいう。オブジェクト種別とは、そのオブジェクトが何か(例えば、人、犬、椅子、壁、机、又はランプ)を説明するものである。例えば、オブジェクト識別子モジュール175は、椅子を表す画素群を判定する。オブジェクト識別子モジュール175は、壁、テーブル、椅子、絵、及びライト等、部屋の中にある一般的なオブジェクトを識別するように構成されてもよい。いくつかの実施形態において、オブジェクト識別子モジュール175は、入力された画像(又は、時系列の画像)における1つ以上のオブジェクトを識別可能な機械学習分類器を使用する。この分類器は、(例えば、手動でラベル付けされた)画素群に対するオブジェクト種別ラベルを含む学習画像を使用して学習を行う。或いは、入力画像にルールを適用して、与えられた種別のオブジェクトが描かれているか否かを判定する、ルールベースのアプローチが使用されてもよい。
【0054】
オブジェクト識別子モジュール175は、識別されたオブジェクトが1つ以上の仮想環境基準を満たすか否かを判定してもよい。仮想環境基準は、仮想環境へのウィンドウを表すのに好適なオブジェクト又はオブジェクトの特性を説明するものである。好適なオブジェクトは、通常、外部環境に面する平坦な表面を有し、ここでは、その表面の表面積は、仮想環境の一部を重ねるのに十分な大きさ(例えば、4平方インチより大きな表面積)である。好適なオブジェクトは、壁に搭載されていてもよい。例えば、このオブジェクトは、薄く、矩形で、壁に搭載されることが望ましい。好適なオブジェクトは、ユーザによって容易にアクセス可能であってもよい(例えば、このオブジェクトは、可視であり、ユーザがそのオブジェクトに接近するのを妨げる障害物がない、など)。従って、オブジェクト識別子モジュール175は、オブジェクトがこれらの仮想環境基準のうちの1つ以上を満たすかを判定してもよい。
【0055】
仮想環境基準は、ウィンドウを表現するのに好適なオブジェクト種別の一覧であってもよい。例えば、仮想環境基準は、電源コンセント、ライトのスイッチ、写真フレーム、及びコンピュータのモニターが好適なオブジェクトであることを特定するものである。従って、これらの実施形態において、或るオブジェクトは、(オブジェクト識別子モジュール175によって)一覧の中のあるオブジェクト種別に割り当てられる場合、仮想環境基準を満たし得る。
【0056】
いくつかの実施形態において、オブジェクト識別子モジュール175は、全体のオブジェクトを識別する代わりに、外部環境におけるオブジェクトの表面を識別し、識別された表面のうちのいずれかがウィンドウを表すのに好適であるか(例えば、表面が平坦であるか、閾値を超える表面積を有するか)を判定する。
【0057】
ウィンドウモジュール180は、1つ以上の仮想環境基準を満たすオブジェクトに、仮想環境へのウィンドウを表示(例えば、クライアントデバイス110が表示するための命令を提供)する。複数の識別されたオブジェクトが仮想環境基準を満たす場合、ウィンドウモジュール180は、この基準を最も満たすオブジェクトを選択してもよい。或いは、ウィンドウモジュール180は、ユーザに、ウィンドウを表すオブジェクトをとして、複数のオブジェクトのうちの1つを選択させてもよい。いくつかの実施形態において、このウィンドウは、ウィンドウを閲覧する旨の命令をユーザから受信するまで、又は、クライアントデバイス110が識別されたオブジェクトから閾値距離内に来るまで、表示されなくてもよい。
【0058】
ウィンドウは、選択されたオブジェクトの位置(例えば、そのオブジェクトの外側を向いた面)又は、選択されたオブジェクトの位置付近(例えば、そのオブジェクトから12インチ以内)に表示される。ウィンドウの面は、オブジェクトの外側を向いた面に略平行(例えば、5度以内)であってもよい。ウィンドウの形状及びサイズは、オブジェクトの形状及びサイズに対応してもよい(例えば、合致するか、又は略同様である)。例えば、ウィンドウの境界が、オブジェクトの輪郭に合致する。
【0059】
ウィンドウは、(クライアントデバイス110を使用する)ユーザに、そのウィンドウを通して仮想環境の一部を見せる。言い換えると、仮想環境の一部は、ウィンドウを通して誰かが見ている視点で見られる。例えば、仮想環境の他の部分を閲覧するために、ユーザは、オブジェクトに対してクライアントデバイス110を動かす必要がある。場合によっては、ウィンドウには、ユーザが仮想環境の一部を閲覧するのに(例えば、ドアを選択することで)開けなければならないドアが含まれる。
【0060】
仮想環境は、通常、ゲーム(例えば、並行現実ゲーム)をプレイするユーザにとって関心のあるオブジェクトを含む。例えば、仮想環境には、ゲームに関連する仮想キャラクターが含まれる。場合によっては、仮想環境における仮想キャラクターは、外部環境における仮想又は実際のオブジェクト(例えば、外部環境における仮想キャラクター)と相互作用する。例えば、仮想環境における仮想キャラクターは、ウィンドウを通じてユーザと会話する。仮想環境のサイズ及び形状、及び、その仮想環境におけるオブジェクト等、仮想環境に関連する情報を、ゲームサーバ120から受信してもよい。例えば、ゲームサーバ120は、4つの壁、床、及び天井を含む仮想部屋を表示し、この部屋の中に特定の仮想オブジェクトを表示する旨の命令を提供する。
【0061】
いくつかの実施形態において、ユーザは、例えば、ウィンドウを選択するか、又は、ウィンドウの中に入る旨の指示を提供することにより、仮想環境に「入る」ことができる。このような実施形態において、ユーザが仮想環境の中に「入った」ことを示す(換言すると、クライアントデバイスが仮想環境に対応するVR画像を表示する)ため、外部環境の画像データの代わりに、仮想環境の画像データが表示されてもよい。
【0062】
いくつかの実施形態において、ウィンドウモジュール180は、オブジェクトにウィンドウを表示するのに先立って、選択されたオブジェクトに、又は、選択されたオブジェクトの周辺に、AR視覚効果(例えば、アニメーション化効果)を表示する。視覚効果は、ユーザの視線をオブジェクトに惹きつけ、ウィンドウがそのオブジェクトに表示されることをユーザに知らせるように意図される。視覚効果は、ユーザの注意を引くように、動いたり色が変わったりするものであってもよい。例えば、視覚効果により、オブジェクトの色を変更する。視覚効果の他の例には、スモーク、爆発、花火、及び星などが含まれる。
【0063】
図4A図4Dは、いくつかの実施形態に係る、仮想環境へのウィンドウの表示を示す一連の例としての画像である。図4Aは、一実施形態に係る、外部環境410の画像データを表示するクライアントデバイス405のディスプレイ400を描いたものである。図4Aの例において、外部環境410は、2つの壁、床、テーブル、及び壁に搭載された電源コンセント415を含む部屋の一部である。図4A中には省略されているが、外部環境410の画像データは、仮想オブジェクトで拡張されてもよい。
【0064】
図4A図4Dの例において、壁のコンセント415は、仮想環境へのウィンドウを表すように選択される。これをユーザに通信するため、ウィンドウモジュール180は、壁のコンセント420を通じて視覚効果420を表示する(図4B参照)。この例において、視覚効果420には、コンセント415周辺の星が含まれる。
【0065】
図4C及び図4Dは、コンセント415の上に表示された仮想環境430へのウィンドウ425を示している。ウィンドウ425のサイズ及び形状は、コンセント415のサイズ及び形状に合致する。図4Dにおいて、クライアントデバイス110は、仮想環境430の詳細が見られるように、コンセント415により近い位置にある。仮想環境430には、部屋の中の2つの仮想キャラクター430と仮想テーブル440とが含まれる。この部屋は、コンセント415の搭載された壁の後方に現れる。
【0066】
<光による相互作用>
図1を参照して説明した通り、クライアントデバイス110は、外部環境を照らす光を生成することのできるライトアセンブリ143を備えてもよい。例えば、ライトアセンブリは、ユーザが、照明の暗いシチュエーションで外部環境の部分を見るのを助けるのに十分な光を生成する。ライトアセンブリ143は、カメラアセンブリ125によって使用されてもよく、画像を撮影するとき、外部環境を照らす。ライトアセンブリは、光を生成するため、発光ダイオード(LED)等、1つ以上の光源を備える。以降の説明は、カメラアセンブリ125によって撮影された画像にライトアセンブリ143によって照らされた外部環境の領域が含まれるように、ライトアセンブリ143の光源を配置したことを前提とする。例えば、ライトアセンブリ143は、カメラアセンブリ125と同一の方向を向く。
【0067】
ライトアセンブリ143が光を生成しているとき、「オン」になっていると称してもよい。ライトアセンブリ143が光を全く生成していないか、又は、少量の光を生成しているとき、「オフ」になっていると称してもよい。ライトアセンブリ143は、ユーザにライトアセンブリ143をオン・オフさせるユーザインタフェースを提供してもよい。ゲーミングモジュール135も、(例えば、ユーザが、ゲームから離れることなく、ライトアセンブリ143を制御できるように)ユーザにライトアセンブリ143を制御させるユーザインタフェースを備えてもよい。
【0068】
いくつかのゲーミングシチュエーション、又は、ゲーミングモードにおいて、ユーザは、ライトアセンブリ143からの光を使用して、外部環境(又は仮想環境)に表示された仮想オブジェクトと相互作用してもよい。例えば、ライトアセンブリ143がオンであるとき、ゲーミングモジュール143は、以前に表示されなかった仮想オブジェクトを表示させる。他の例において、ライトアセンブリ143がオンにされた後、外部環境の仮想キャラクターが、ライトアセンブリ143によって照明された外部環境の領域に集合する。ゲームによっては、ライトアセンブリ143がオフになると、仮想オブジェクトは、その領域に留まってもよく、又は、外部環境を通じて再び動き始めてもよい。従って、ライトアセンブリ143をオンにすることで、ユーザは、クライアントデバイス110を移動させることにより(また、それによりライトアセンブリ143によって照らされた環境の部分を変更することにより)、外部環境における仮想オブジェクトの位置を制御してもよい。この例において、ライトアセンブリ143をオンにする旨の指示は、集合指示と称されてもよい。いくつかの実施形態において、ユーザは、(例えば、位置を表現した)ディスプレイの領域を選択することにより、外部環境における位置に移動するように、仮想オブジェクトに指示することができる。
【0069】
フラッシュライトモジュール185は、ライトアセンブリ143に対して通信可能に連結され、仮想オブジェクトの移動を表示する(例えば、クライアントデバイス110への指示をディスプレイに与える)。具体的には、ライトアセンブリ143がオンにされたことに応じて、フラッシュライトモジュール185は、仮想オブジェクトが、外部環境における現在の位置からライトアセンブリ143によって照らされた外部環境の領域に集合する様子を表示する。
【0070】
ライトアセンブリ143は、通常、カメラアセンブリに対して固定されるので、フラッシュライトモジュール185は、外部環境の画像データにおいて、ライトアセンブリ143からの光を識別する必要がない。代わりに、フラッシュライトモジュール185は、クライアントデバイス110によって表示されている外部環境の領域(ディスプレイの領域と対応した外部環境の領域と称される)に仮想オブジェクトを動かしてもよい。場合によっては、仮想オブジェクトは、中央の領域等、ディスプレイの特定の領域に動かされる。クライアントデバイス110が、ライトアセンブリ143のオン時に移動されると、環境の異なる領域が照らされる。動きが(例えば、測位モジュール140からの信号を解析することで判定される)閾値を上回ると、フラッシュライトモジュール185は、以前の位置から光を受けている新たな領域へ仮想オブジェクトが動く様子を表示してもよい。
【0071】
いくつかの実施形態において、フラッシュライトモジュール185は、ライトアセンブリ143によって照らされた領域を示す視覚効果(例えば、アニメーション化効果)を表示する。これによって、ユーザが領域を識別するのを助けてもよい。例としての視覚効果には、領域に対する仮想スポットライト又はハイライトが含まれる。
【0072】
図5A及び図5Bは、いくつかの実施形態に係る、仮想オブジェクトが集合する様子を示す例としての一連の画像である。図5Aは、一実施形態に係る、外部環境510における3つの仮想キャラクター505の画像データを表示するクライアントデバイス110が描かれている。仮想キャラクター505は、人の形を有し、外部環境510全体を通じて配置される。仮想キャラクター505は、任意の数の理由で、外部環境510全体を通じて配置されてもよい。例えば、ゲームモジュール135が外部環境510のランダムな位置に仮想キャラクター505を生成しており、ゲームモジュール135は、仮想キャラクター505が外部環境を歩き回る様子を表示する。
【0073】
ゲームをプレイしている間、ユーザにとって、外部環境510のある領域に3つの仮想キャラクター505を集合させることが望ましいこともある。仮想キャラクター505を集合させるには、ユーザは、上述の通り、ライトアセンブリ143をオンにしてもよい。図5Bは、一実施形態に係る、クライアントデバイス110が、ライトアセンブリ143によって照らされた外部環境515の領域に集合した3つの仮想キャラクター505を含む画像データを表示している様子を描いたものである。図5Bの例において、照らされた領域515の輪郭は、ユーザが領域515を識別するのを助ける視覚効果により、仮想的にハイライトされる。
【0074】
<仮想オブジェクトとの相互作用>
図1を参照すると、オブジェクト相互作用モジュール190は、仮想オブジェクトが外部環境におけるオブジェクトと相互作用している様子を表示(例えば、クライアントデバイス110が表示するための命令を提供)する。これにより、結果として、仮想オブジェクトがより現実的に、生きているようにユーザに見えるようになる。このために、オブジェクト相互作用モジュール190は、オブジェクト相互作用モジュール190から識別されたオブジェクトを受信する。識別されたオブジェクトの形状及び表面等の特性を解析することにより、オブジェクト相互作用モジュール190は、仮想オブジェクトが識別されたオブジェクトと直接又は間接的に相互作用する様子を表示することができる。間接的な相互作用の例には、仮想キャラクターが歩き回ること、又は、オブジェクトを見ることが含まれる。直接の相互作用の例には、仮想キャラクターがオブジェクトに接触すること、寄りかかること、立ち上がること、又は登ることが含まれる。例えば、オブジェクト相互作用モジュール190は、仮想キャラクターが、スティック型のオブジェクト、又は、突出部分もしくはハンドルを備えたオブジェクト等のオブジェクト登る(例えば、上り下りする)様子を表示する。他の例において、オブジェクト相互作用モジュール190は、地面(例えば、重力又はカメラの視野における可視地面の平均的な向きに対して直交する平面)であるとオブジェクト相互作用モジュール190が判定したものに対して、仮想キャラクターが、閾値量(例えば、5度超80度未満)を超える角度を有した斜面を滑り降りる様子を表示する。
【0075】
いくつかの実施形態において、オブジェクト相互作用モジュール190は、仮想オブジェクトがユーザと相互作用する様子を表示する。例えば、ユーザは、仮想オブジェクトを「ピックアップ」し、環境の異なる位置にそれを移動させることができる。他の例において、オブジェクト相互作用モジュール190は、仮想オブジェクトが外部環境におけるユーザに「ついていく」ように、指示を与える。この例において、オブジェクト相互作用モジュール190は、オブジェクトを人として識別することができる。オブジェクト相互作用モジュール190は、その後、仮想キャラクターが環境において人の後方で動く(例えば、歩く)様子を表示する。人の体の構成要素(例えば、足、胴、及び腕)は、仮想キャラクターが人の後方で足並みを揃えて歩いているものとして表示可能となるように識別されてもよい。
【0076】
奥行推定モジュール195は、クライアントデバイス110から(オブジェクト識別子モジュール175で識別された)オブジェクトまでの距離を推定する。推定された距離(奥行情報とも称する)に基づき、ゲーミングモジュール135は、外部環境における仮想オブジェクトを表示(例えば、クライアントデバイス110が表示するための命令を提供)する。例えば、仮想オブジェクトが或るオブジェクトの付近に表示される場合、仮想オブジェクトのサイズは、そのオブジェクトまでの推定距離に基づいて調整されてもよい。いくつかの実施形態において、奥行情報により仮想オブジェクトを部分的にあるオブジェクトの後方に表示させることができる。例えば、実世界のオブジェクトが表示すべき仮想オブジェクトの位置より近くにあることを奥行情報が示していた場合、仮想オブジェクトは、実世界のオブジェクトがその仮想オブジェクトの一部を覆い隠しているように表示されてもよい。このように、奥行情報を使用することにより、仮想オブジェクトはより現実的に見えるようになる。
【0077】
いくつかの実施形態において、ゲーミングモジュール135は、外部環境において仮想オブジェクトを見せる写真をユーザに取らせる仮想カメラモジュール(不図示)を備える。これらの実施形態においても、仮想オブジェクトは、奥行情報に基づいて表示されてもよい。
【0078】
奥行推定モジュール195は、機械学習によって構築されてもよい。例えば、奥行推定モジュールは、ゲーム内の画素群に対する(例えば、手動でラベル付けされた)オブジェクト距離ラベルを含む学習画像を使用して学習される。クライアントデバイスが2つのカメラを備える場合、この距離は、ステレオ画像データに基づいて推定されてもよい。或いは、入力画像におけるオブジェクトへの距離を推定するためのルールを入力画像に適用するという、ルールベースのアプローチが使用されてもよい。
【0079】
図6は、一実施形態に係る、外部環境610内の2つの仮想キャラクター605の画像データを表示するクライアントデバイス110を描いたものである。キャラクター605Aは、画像の背景のテーブル上に立っているものとして表示されており、キャラクター605Bは、画像の前景の地面に立っているものとして表示されている。仮想キャラクター605は同一のサイズを有するが、キャラクターが外部環境610にいるように見えるように、キャラクター605が画像中では異なるサイズで表示される。特に、キャラクター605Aが背景に表示され、キャラクター605Bが前景に表示されることから、キャラクター605Aは、キャラクター605Bより小さくなり、奥行き感を提供することができる。キャラクター605のサイズは、奥行推定モジュール195からの距離情報に基づいてもよい。例えば、奥行推定モジュール195は、クライアントデバイスとテーブルとの間の距離を推定し、この距離に基づいてキャラクター605A及び605Bの高さを判定する。
【0080】
<モジュールの相互作用>
ウィンドウモジュール180、フラッシュライトモジュール185、オブジェクト相互作用モジュール190、及び奥行推定モジュール195は、独立したものとして説明したが、ともに使用されて、ユーザのゲーミング体験を向上させてもよい。例えば、各仮想オブジェクトは、奥行推定モジュール195からの奥行情報に基づいて表示されてもよい。
【0081】
他の例において、いくつかのゲーミングシチュエーションにおいて、仮想環境は、ユーザがウィンドウを通じて仮想環境の一部を見ることができないように、暗くなっていてもよい。ユーザは、仮想環境を見るために、ライトアセンブリ143をオンにして、光がウィンドウを通じて仮想環境内に伝搬するように見えるようにクライアントデバイス110を位置決めすることにより、仮想環境の一部を仮想的に照らしてもよい。同様に、ユーザは、ライトアセンブリからの光がウィンドウを通じて仮想環境内に伝搬するように見えるように、クライアントデバイス110を位置決めすることにより、ウィンドウを通じて仮想環境内に動くように、外部環境において仮想オブジェクトを方向付けてもよい。
【0082】
他の例において、ユーザがライトアセンブリ143をオンにしてクライアントデバイス110の前に手をかざすことにより、光を手に向けた場合、仮想オブジェクトは、ユーザの手の上で動いてもよい。その後、ユーザは、手を動かすことにより、外部環境において仮想オブジェクトを動かしてもよい。さらに、ウィンドウが表示され、ユーザがウィンドウを表現したオブジェクトに手を近づけた場合、ゲーミングモジュール135は、仮想オブジェクトがそのウィンドウを通じて仮想環境に配置されている様子を表示してもよい。
【0083】
<仮想環境へのウィンドウを表示するプロセス>
図7は、一実施形態に係る、仮想環境へのウィンドウを表示する一般的プロセス700を説明するフローチャートである。プロセス700は、オブジェクト識別子モジュール及びウィンドウモジュールを有するクライアントデバイス(例えば、クライアントデバイス110)によって完遂されてもよい。クライアントデバイスは、スマートフォン等のモバイルデバイスであってもよく、カメラ(例えば、カメラアセンブリ125)、ライトアセンブリ(例えば、ライトアセンブリ143)、及びディスプレイを有してもよい。いくつかの実施形態において、クライアントデバイスは、少なくとも部分的に、上述の図1図3に説明した並行現実ゲームを実装する。以下の説明はクライアントデバイスの文脈において行うが、プロセス700(又は、プロセスのステップ)は、他の演算装置(例えば、サーバ)上で実施されてもよい。プロセス700のステップは、異なる順に実施されてもよく、プロセス700には、異なるステップまたは追加のステップが含まれてもよく、あるいは、含まれるステップが少なくてもよい。
【0084】
クライアントデバイスは、カメラアセンブリにより、外部環境の画像を撮影する(710)。クライアントデバイスは、撮影された画像に基づき、外部環境におけるオブジェクトを識別する(720)。クライアントデバイスは、外部環境におけるオブジェクトが仮想環境基準を満たすことを判定する(730)。クライアントデバイスは、カメラアセンブリによって撮影された外部環境の追加画像におけるオブジェクトの位置又はその位置の付近に、仮想環境へのウィンドウを表示する(740)。クライアントデバイスは、オブジェクトが基準を満たすと判定したことに応じて、ウィンドウを表示してもよい。
【0085】
いくつかの実施形態において、クライアントデバイスは、外部環境における仮想オブジェクトがウィンドウを通じて仮想環境へ動く様子を表示する。
【0086】
クライアントデバイスは、仮想環境に関する情報をサーバから受信してもよく、仮想環境に関する情報を使用して、ウィンドウを通じて表示する仮想コンテンツを判定してもよい。
【0087】
いくつかの実施形態において、プロセス700は、外部環境における候補オブジェクトを識別するクライアントデバイスをさらに含む。このクライアントデバイスは、候補オブジェクトの各々が、仮想環境基準を満たすかを判定する。クライアントデバイスは、仮想環境基準を満たす候補オブジェクトのうちの1つを、上述のオブジェクトとして選択する。
【0088】
プロセス700は、仮想環境を表示する旨の指示を受信し、この指示の受信に応じて、外部環境の画像の代わりに、仮想環境を表示するクライアントデバイスをさらに含んでいてもよい。
【0089】
プロセス700は、撮影された画像に基づき、外部環境において斜面を有する第2のオブジェクトを識別し、カメラアセンブリによって撮影された外部環境の追加の画像において、第2のオブジェクトを登り、また、第2の対象物の斜面を滑り降りる仮想オブジェクトを表示するクライアントデバイスをさらに含んでいてもよい。
【0090】
いくつかの実施形態において、外部環境におけるオブジェクトが仮想環境基準を満たす旨を判定することは、オブジェクトが外部環境における壁にある旨の判定を含む。
【0091】
<仮想オブジェクトを動かすプロセス>
図8は、一実施形態に係る、外部環境における仮想オブジェクトを動かす一般的プロセス800を説明したフローチャートである。プロセス800は、フラッシュライトモジュールを有するクライアントデバイス(例えば、クライアントデバイス110)によって完遂されてもよい。クライアントデバイスは、スマートフォン等のモバイルデバイスであってもよく、カメラ(例えば、カメラアセンブリ125)、ライトアセンブリ(例えば、ライトアセンブリ143)、及びディスプレイを有してもよい。いくつかの実施形態において、クライアントデバイスは、少なくとも部分的に、上述の図1図3において説明した並行現実ゲームを実装する。以下の説明はクライアントデバイスの文脈において説明するが、プロセス800(又はプロセスのステップ)は、他の演算装置(例えば、サーバ)上で実施されてもよい。プロセス800のステップは、異なる順に実施されてもよく、プロセス800には、異なるステップ又は追加のステップが含まれてもよく、あるいは、含まれるステップが少なくてもよい。
【0092】
クライアントデバイスは、カメラアセンブリにより、外部環境の画像を撮影する(810)。クライアントデバイスは、ディスプレイ上に、外部環境の画像における仮想オブジェクトを表示する(820)。クライアントデバイスは、(例えば、ユーザからの)集合命令を受信する(830)。クライアントデバイスは、カメラアセンブリによって撮影された外部環境の追加画像における仮想オブジェクトが、ディスプレイの領域に対応する外部環境の領域へ動く様子を表示する(840)。クライアントデバイスは、集合命令の受信に応じて、仮想オブジェクトが動く様子を表示してもよい。
【0093】
いくつかの実施形態において、集合命令は、クライアントデバイスのライトアセンブリをオンにする旨の命令である。外部環境の領域は、ライトアセンブリからの光によって照らされる領域であってもよい。いくつかの実施形態において、クライアントデバイスは、ライトアセンブリからの光によって照らされる外部環境の領域を示すように、ディスプレイの領域に視覚効果を表示する。
【0094】
いくつかの実施形態において、クライアントは、外部環境の画像に複数の仮想オブジェクトを表示し、各オブジェクトは、外部環境において異なる位置に表示される。クライアントデバイスは、複数の仮想オブジェクトの各々が、その位置から外部環境の領域まで動く様子を表示してもよい。
【0095】
いくつかの実施形態において、クライアントデバイスは、クライアントデバイスの動きが閾値を超える旨を判定する。クライアントデバイスの動きが閾値を超える旨の判定に応じて、クライアントデバイスは、仮想オブジェクトが、外部環境の領域からディスプレイの領域に対応する外部環境の第2の領域へ動く様子を表示する。
【0096】
プロセス800は、撮影された画像に基づき、外部環境において斜面を有するオブジェクトを識別し、その対象物を登り、また、その対象物の斜面を滑り降りる仮想オブジェクトを表示するクライアントデバイスをさらに含んでいてもよい。
【0097】
プロセス800は、ARの文脈において説明されるが、同様のプロセスがVRの文脈において実施されてもよい。例えば、クライアントデバイスは、VR環境の画像を表示し、集合命令の受信に応じて、クライアントデバイスは、ディスプレイの領域に対応するVR環境の領域へ動くVR環境の仮想オブジェクトを表示する。
【0098】
<仮想オブジェクトを表示するプロセス>
図9は、一実施形態に係る、外部環境における仮想オブジェクトを表示する一般的なプロセス900を説明したフローチャートである。プロセス900は、フラッシュライトモジュールを有するクライアントデバイス(例えば、クライアントデバイス110)によって完遂されてもよい。クライアントデバイスは、スマートフォン等のモバイルデバイスであってもよく、カメラ(例えば、カメラアセンブリ125)、ライトアセンブリ(例えば、ライトアセンブリ143)、及びディスプレイを有してもよい。いくつかの実施形態において、クライアントデバイスは、上述の図1図3において説明した並行現実ゲームを実装する。以下の説明は、クライアントデバイスの文脈において行うが、プロセス900(又は、プロセスのステップ)は、他の演算装置(例えば、サーバ)上で実施されてもよい。プロセス900のステップは、異なる順で実施されてもよく、プロセス900には、異なるステップ又は追加のステップが含まれてもよく、あるいは、含まれるステップが少なくてもよい。
【0099】
クライアントデバイスは、カメラアセンブリにより、外部環境の画像を撮影する(910)。クライアントデバイス920は、撮影された画像に基づき、外部環境におけるオブジェクトを識別する(920)。クライアントデバイスは、撮影された画像におけるオブジェクトの奥行情報を推定する(930)。クライアントデバイスは、識別されたオブジェクトと奥行情報とに基づき、仮想オブジェクトを表示する(940)。
【0100】
いくつかの実施形態において、仮想オブジェクトは、仮想キャラクターであり、仮想オブジェクトを表示することは、仮想キャラクターがオブジェクトと相互作用する様子を表示することを含む。
【0101】
いくつかの実施形態において、オブジェクトは、人の手である。
【0102】
プロセス900は、撮影された画像に基づき、外部環境におけるオブジェクトの斜面を識別することと、その対象物を登り、また、その対象物の斜面を滑り降りる仮想オブジェクトを表示することと、をさらに含んでいてもよい。
【0103】
<例としての演算システム>
図10は、一実施形態に係る演算装置の例としてのアーキテクチャである。図10は、本明細書に記載の1つ以上の実体のうちの一部又は全部として使用されるコンピュータの物理的構成要素を示すハイレベルブロック図を描いたものであるが、一実施形態によると、コンピュータは、図10において提供されるものに追加の構成要素を有していてもよいし、それより少ない構成要素を有していてもよいし、又はその変化形を有していてもよい。図10では、コンピュータ1000が描かれているものの、同図は、本明細書に記載の実装の構造的概略図としてではなく、コンピュータシステム中に存在してもよい種々の特徴の機能説明として意図されたものである。実際に、また、当業者に認識されている通り、別個に示された項目を組み合わせることができ、いくつかの項目を分離することができる。
【0104】
図10には、チップセット1004に連結される少なくとも1つのプロセッサ1002が示されている。チップセット1004には、メモリ1006、記憶装置1008、キーボード1010、グラフィクスアダプタ1012、ポインティングデバイス1014、及びネットワークアダプタ1016も連結される。ディスプレイ1018は、グラフィクスアダプタ1012に連結される。一実施形態において、チップセット1004の機能は、メモリコントローラハブ1020とI/Oハブ1022とによって提供される。他の実施形態において、メモリ1006は、チップセット1004の代わりに、プロセッサ1002に直接連結される。いくつかの実施形態において、コンピュータ1000は、これらの構成要素を相互接続するための1つ以上の通信バスを備える。1つ以上の通信バスは、任意で、システム構成要素間の通信の相互接続及び制御を行う回路(チップセットと称することもある)を備える。
【0105】
記憶装置1008は、ハードドライブ、コンパクトディスク読み取り専用メモリ(compact disk read-only memory:CD-ROM)、DVD、又は固体メモリ装置もしくはその他の光学ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージもしくはその他の磁気記憶装置、磁気ディスク記憶装置、光学ディスク記憶装置、フラッシュメモリ装置、又はその他の不揮発性固体記憶装置等、任意の非一時的なコンピュータ可読記憶媒体である。このような記憶装置1008は、永続メモリとも称することができる。ポインティングデバイス1014は、マウス、トラックボール、又はその他の種別のポインティングデバイスであってもよく、コンピュータ1000にデータを入力するために、キーボード1010と組み合わせて使用される。グラフィクスアダプタ1012は、ディスプレイ1018上に画像及びその他の情報を表示する。ネットワークアダプタ1016は、コンピュータ1000をローカルエリアネットワーク又はワイドエリアネットワークに連結する。
【0106】
メモリ1006は、プロセッサ1002によって使用される命令及びデータを保持する。メモリ1006は、非永続メモリとすることができ、その例としては、DRAM、SRAM、DDR RAM、ROM、EEPROM、フラッシュメモリ等、高速ランダムアクセスメモリが挙げられる。
【0107】
当該技術分野で周知の通り、コンピュータ1000は、図10に示されるものとは異なる他の構成要素を有することができる。さらに、コンピュータ1000は、図示の特定の構成要素を省略することができる。一実施形態において、サーバとして振る舞うコンピュータ1000からは、キーボード1010、ポインティングデバイス1014、グラフィクスアダプタ1012、又はディスプレイ1018を省略してもよい。さらに、記憶装置1008は、コンピュータ1000のローカルに存在するか、もしくは遠隔に存在するものとすることができる(例えば、記憶領域ネットワーク(storage area network:SAN)内に実装される)。
【0108】
当該技術分野で周知の通り、コンピュータ1000は、本明細書に記載の機能を提供するためのコンピュータプログラムモジュールを実行するように適応される。本明細書において使用される「モジュール」という用語は、特定の機能を提供するために利用されるコンピュータプログラム論理をいう。従って、モジュールは、ハードウェア、ファームウェア、又はソフトウェアに実装可能である。一実施形態において、プログラムモジュールは、記憶装置1008に記憶され、メモリ1006にロードされ、プロセッサ302によって実行される。
【0109】
<追加の考慮事項>
上述の説明の一部は、アルゴリズムプロセス又は動作に関する実施形態について説明するものである。これらのアルゴリズムの説明及び表現は、データ処理分野の当業者が、他の当業者に自らの作業物の内容を効果的に伝えるために共通して使用される。これらの作業は、機能的、演算的、又は論理的に説明される場合、プロセッサ又は同等の電気回路、又はマイクロコード等によって実行される指示を含むコンピュータプログラムによって実装されることが理解される。さらに、場合によっては、一般性を失うことなく、これらの機能的動作の配置をモジュールと称することが簡便であることも明らかとされている。
【0110】
本明細書において使用される「一実施形態」又は「実施形態」という言及はいずれも、その実施形態との関連で説明された特定の要素、特徴、構造、又は特性が少なくとも1つの実施形態に含まれることを意味する。明細書中、種々の箇所で「一実施形態」というフレーズが現れるが、これらは必ずしもすべてが同一の実施形態について言及しているものではない。
【0111】
いくつかの実施形態は、「連結された」及び「接続された」という表現をその派生語とともに使用して説明される場合がある。これらの用語は互いの同義語であることが意図されていない旨、理解されなければならない。例えば、いくつかの実施形態は、2つ以上の要素が互いに直接物理的又は電気的に接触していることを示すために「接続された」という用語を使用して説明される場合がある。他の例において、いくつかの実施形態は、2つ以上の要素が直接物理的又は電気的に接触していることを示すために「連結された」という用語を使用して説明される場合がある。しかしながら、「連結された」という用語は、2つ以上の要素が互いに直接接触しないものの、互いに協働するか、又は相互作用する場合も意味することがある。これらの実施形態は、この文脈に限定されるものでない。
【0112】
本明細書において使用される用語の「備える」「備えている」「含む」「含んでいる」「有する」「有している」又はこれらの他の任意の変化形は、非排他的包含を網羅するものと意図されている。例えば、ある要素リストを備えるプロセス、方法、物、又は装置は、必ずしもこれらの要素のみに限定されるものでなく、明示的に列挙されていないか、又はこのようなプロセス、方法、物、装置に対して本来備わっている他の要素も含んでよい。さらに、反対の内容が明示的に言及されない限り、「又は」は、包含的な「又は」をいうものであって、排他的な「又は」ではない。例えば、条件A又はBは、以下のいずれかによって満たされる。すなわち、Aが真(又は存在する)でBが偽(又は存在しない)である、Aが偽(又は存在しない)でBが真(又は存在する)である、および、AもBも真である(又は存在する)のいずれかによって満たされる。
【0113】
さらに、実施形態の要素及び構成要素を説明するために不定冠詞の使用が採用される。これは、便宜上、本開示の一般的な意味を伝えるためのみになされたものである。本記載は、1つ、又は、少なくとも1つを含むと読み取られなければならず、単数形は、反対の意味が明らかでない限り、複数も含む。値が「約」又は「略」(又は、これらの派生形)として記載される場合、このような値は、他の意味が文脈から明らかでない限り、精密には±10%として解釈されなければならない。例えば、「約10」は、「9~11の範囲」という意味に理解されなければならない。
【0114】
当業者は、本開示を読むことで、本開示のAR機能を提供するシステム及びプロセスについて、さらに代替の構造的且つ機能的設計を理解するであろう。従って、特定の実施形態及び用途について図示及び説明を行っているが、記載の主題は、本明細書に開示の精密な構造物及び構成要素に限定されるものでなく、当業者にとって、本開示の方法及び装置の配置、動作、及び詳細に対する種々の修正、変更、及び変動が明らかとなることが理解されなければならない。保護の範囲は、以下のクレームによってのみ限定されなければならない。
図1
図2
図3
図4A
図4B
図4C
図4D
図5A
図5B
図6
図7
図8
図9
図10