(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022153229
(43)【公開日】2022-10-12
(54)【発明の名称】拡張現実環境におけるマルチユーザルート追跡
(51)【国際特許分類】
G06T 19/00 20110101AFI20221004BHJP
G06F 3/0346 20130101ALI20221004BHJP
G06F 3/04815 20220101ALI20221004BHJP
A63F 13/65 20140101ALI20221004BHJP
A63F 13/216 20140101ALI20221004BHJP
【FI】
G06T19/00 600
G06F3/0346 424
G06F3/0481 150
A63F13/65
A63F13/216
【審査請求】有
【請求項の数】20
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2021124796
(22)【出願日】2021-07-29
(31)【優先権主張番号】17/216,381
(32)【優先日】2021-03-29
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】519087723
【氏名又は名称】ナイアンティック, インコーポレイテッド
【氏名又は名称原語表記】NIANTIC,INC.
【住所又は居所原語表記】One Ferry Building,Suite 200 San Francisco,CA 94111 United States of America
(71)【出願人】
【識別番号】521335535
【氏名又は名称】ナイアンティック インターナショナル テクノロジー リミテッド
【氏名又は名称原語表記】Niantic International Technology Limited
【住所又は居所原語表記】11th Floor Whitefriars, Lewins Mead, Bristol, BS1 2NT, Great Britain
(74)【代理人】
【識別番号】100110928
【弁理士】
【氏名又は名称】速水 進治
(74)【代理人】
【識別番号】100127236
【弁理士】
【氏名又は名称】天城 聡
(72)【発明者】
【氏名】ハンケ ジョン
(72)【発明者】
【氏名】菅野 千尋
(72)【発明者】
【氏名】園田 裕貴
(72)【発明者】
【氏名】野村 達雄
(72)【発明者】
【氏名】川平 航介
(72)【発明者】
【氏名】森川 健太郎
(72)【発明者】
【氏名】淺川 浩紀
(72)【発明者】
【氏名】植松 俊介
(72)【発明者】
【氏名】片山 まどか
(72)【発明者】
【氏名】矢野 幹樹
【テーマコード(参考)】
5B050
5B087
5E555
【Fターム(参考)】
5B050AA10
5B050BA06
5B050BA09
5B050BA11
5B050BA13
5B050CA07
5B050CA08
5B050DA04
5B050EA19
5B050EA26
5B050FA02
5B050FA05
5B087AA07
5B087CC32
5B087CC33
5B087DD03
5E555AA64
5E555BA01
5E555BA04
5E555BA20
5E555BB01
5E555BB04
5E555BB20
5E555BC04
5E555BD01
5E555BD05
5E555BE16
5E555BE17
5E555CA42
5E555CA44
5E555CB23
5E555CB82
5E555CC05
5E555DA01
5E555DB03
5E555DB56
5E555DC09
5E555DC43
5E555DD07
5E555EA05
5E555EA07
5E555EA25
5E555FA00
(57)【要約】 (修正有)
【課題】仮想世界の地理が実世界の地理と並行する並行現実アプリケーションにおける拡張現実(augmented reality:AR)体験を提供する方法、記憶媒体及びコンピュータシステムを提供する。
【解決手段】クライアントデバイスにARデータを提供するプロセスは、クライアントデバイスから接続リクエストを受信し、また、クライアントデバイスが実世界において通過したルートを受信する。このルートは、実世界における複数の位置を含む。プロセスはまた、仮想要素を配置する複数の仮想位置を判定する。ここで、各仮想要素は、ルートの実世界における位置に対応する。プロセスはさらに、複数の仮想位置に複数の仮想要素を含むように、AR体験のグローバル状態をアップデートし、実世界における対応位置に仮想要素の一部を表示するために、仮想位置の一部を含むARデータを第2のクライアントデバイスに提供する。
【選択図】
図6
【特許請求の範囲】
【請求項1】
仮想世界の地理が実世界の少なくとも一部の地理と並行する並行現実アプリケーションにおいて、拡張現実(augumented reality:AR)体験を提供する方法であって、
クライアントデバイスから接続リクエストを受信することと、
前記クライアントデバイスが前記実世界において通過したルートであって、前記実世界における複数の位置を含むルートを受信することと、
複数の仮想要素を配置すべき複数の仮想位置であって、各々が前記ルートの前記実世界における前記複数の位置のうちの1つに対応する複数の仮想位置を判定することと、
前記複数の仮想位置に前記複数の仮想要素を含むように、前記AR体験のグローバル状態をアップデートすることと、
前記実世界の対応する位置において前記複数の仮想要素の少なくとも一部を表示するために、前記複数の仮想位置の少なくとも一部を含むARデータを第2のクライアントデバイスに提供することと、を含む方法。
【請求項2】
前記複数の仮想要素の各々は、前記クライアントデバイスが前記ルートの前記仮想位置に対応する前記実世界の位置に位置する旨の示唆を、前記クライアントデバイスから受信したことに応じて、リアルタイムに前記仮想位置で前記グローバル状態に含まれる、
請求項1に記載の方法。
【請求項3】
前記実世界における前記複数の位置の各々、グローバルポジショニングシステム座標によって表現される、
請求項1に記載の方法。
【請求項4】
前記AR体験を提供された第2のクライアントデバイスの現在位置を受信することと、
前記第2のクライアントデバイスが前記ルートから閾値距離内にある旨の判定に応じて、前記第2のクライアントデバイスに、前記実世界の対応する位置において前記複数の仮想要素のうちの少なくとも一部を表示するための前記複数の仮想位置の少なくとも一部を含むARデータを送ることと、をさらに含む、
請求項1に記載の方法。
【請求項5】
前記クライアントデバイスのユーザに関連付けられた仮想要素の種別を判定することをさらに含み、
前記複数の仮想要素の各々は、前記ユーザに関連付けられた前記種別のものである、
請求項1に記載の方法。
【請求項6】
前記複数の仮想要素は、第1の種別であり、
前記方法は、
前記複数の仮想要素の1つ以上が、前記実世界の第2のルートであって、第2のクライアントデバイスによって通過された第2のルートに対応する仮想位置にマップされた、第2の種別の複数の第2の仮想要素のうちの1つ以上から閾値距離内にあることを判定することと、
第3の種別の複数の第3の仮想要素を生成することと、をさらに含み、
前記第3の種別は、前記第1の種別と前記第2の種別とに基づき、複数の可能性のある種別から選択される、
請求項1に記載の方法。
【請求項7】
第2のクライアントデバイスが前記複数の仮想要素のうちの1つ以上から閾値距離内にある旨の判定に応じて、前記複数の仮想要素のうちの1つ以上のプロパティを変更することをさらに含む、
請求項1に記載の方法。
【請求項8】
前記仮想要素は、花の表現であり、前記プロパティの変更は、前記花の表現の成長速度の増加である、
請求項7に記載の方法。
【請求項9】
前記クライアントデバイスに、AR体験についてのARデータであって、前記仮想世界を表現するARデータを提供することをさらに含む、
請求項1に記載の方法。
【請求項10】
仮想世界の地理が実世界の少なくとも一部の地理と並行する並行現実アプリケーションにおいて、拡張現実(augumented reality:AR)体験を提供する命令であって、演算システムによって実行可能な命令を備える非一時的なコンピュータ可読記憶媒体であって、
前記命令は、
クライアントデバイスから接続リクエストを受信するための命令と、
前記クライアントデバイスが前記実世界において通過したルートであって、前記実世界における複数の位置を含むルートを受信するための命令と、
複数の仮想要素を配置すべき複数の仮想位置であって、各々が前記ルートの実世界における前記複数の位置のうちの1つに対応する複数の仮想位置を判定するための命令と、
前記複数の仮想位置に前記複数の仮想要素を含むように、前記AR体験のグローバル状態をアップデートするための命令と、
前記実世界の対応する位置において前記複数の仮想要素の少なくとも一部を表示するために、前記複数の仮想位置の少なくとも一部を含むARデータを第2のクライアントデバイスに提供するための命令と、を含む、非一時的なコンピュータ可読記憶媒体。
【請求項11】
前記複数の仮想要素の各々は、前記クライアントデバイスが前記ルートの前記仮想位置に対応する前記実世界の位置に位置する旨の示唆を、前記クライアントデバイスから受信したことに応じて、リアルタイムに前記仮想位置で前記グローバル状態に含まれる、
請求項10に記載の非一時的なコンピュータ可読記憶媒体。
【請求項12】
前記実世界における前記複数の位置の各々は、グローバルポジショニングシステム座標によって表現される、
請求項10に記載の非一時的なコンピュータ可読記憶媒体。
【請求項13】
前記命令は、
前記AR体験を提供された第2のクライアントデバイスの現在位置を受信するための命令と、
前記第2のクライアントデバイスが前記ルートから閾値距離内にある旨の判定に応じて、前記第2のクライアントデバイスに、前記実世界の対応する位置において前記複数の仮想要素の少なくとも一部を表示するための前記複数の仮想位置の少なくとも一部を含むARデータを送るための命令と、をさらに含む、
請求項10に記載の非一時的なコンピュータ可読記憶媒体。
【請求項14】
前記命令は、
前記クライアントデバイスのユーザに関連付けられた仮想要素の種別を判定するための命令をさらに含み、
前記複数の仮想要素の各々は、前記ユーザに関連付けられた前記種別のものである、
請求項10に記載の非一時的なコンピュータ可読記憶媒体。
【請求項15】
前記複数の仮想要素は、第1の種別であり、
前記命令は、
前記複数の仮想要素の1つ以上が、前記実世界の第2のルートであって、第2のクライアントデバイスによって通過された第2のルートに対応する仮想位置にマップされた、第2の種別の複数の第2の仮想要素のうちの1つ以上から閾値距離内にあることを判定するための命令と、
第3の種別の複数の第3の仮想要素を生成するための命令と、をさらに含み、
前記第3の種別は、前記第1の種別と前記第2の種別とに基づき、複数の可能性のある種別から選択される、
請求項10に記載の非一時的なコンピュータ可読記憶媒体。
【請求項16】
前記命令は、
第2のクライアントデバイスが前記複数の仮想要素のうちの1つ以上から閾値距離内にある旨の判定に応じて、前記複数の仮想要素のうちの1つ以上のプロパティを変更するための命令をさらに含む、
請求項10に記載の非一時的なコンピュータ可読記憶媒体。
【請求項17】
前記仮想要素は、花の表現であり、前記プロパティの変更は、前記花の表現の成長速度の増加である、請求項16に記載の非一時的なコンピュータ可読記憶媒体。
【請求項18】
前記命令は、
前記クライアントデバイスに、AR体験についてのARデータであって、仮想世界を表現するARデータを提供するための命令をさらに含む、
請求項10に記載の非一時的なコンピュータ可読記憶媒体。
【請求項19】
コンピュータシステムであって、
コンピュータプロセッサと、
仮想世界の地理が実世界の少なくとも一部の地理と並行する並行現実アプリケーションにおいて、拡張現実(augumented reality:AR)体験を提供するための命令を記憶する非一時的なコンピュータ可読記憶媒体とを備え、
前記命令は、前記コンピュータプロセッサによる実行されると、前記コンピュータプロセッサに、
クライアントデバイスから接続リクエストを受信することと、
前記クライアントデバイスが前記実世界において通過したルートであって、前記実世界における複数の位置を含むルートを受信することと、
複数の仮想要素を配置すべき複数の仮想位置であって、各々が前記ルートの前記実世界における前記複数の位置のうちの1つに対応する複数の仮想位置を判定することと、
前記複数の仮想位置に前記複数の仮想要素を含むように、前記AR体験のグローバル状態をアップデートすることと、
前記実世界の対応する位置において前記複数の仮想要素の少なくとも一部を表示するために、前記複数の仮想位置の少なくとも一部を含むARデータを第2のクライアントデバイスに提供することと、を含む動作を実行させる、コンピュータシステム。
【請求項20】
前記複数の仮想要素の各々は、前記クライアントデバイスが前記ルートの前記仮想位置に対応する前記実世界の位置に位置する旨の示唆を、前記クライアントデバイスから受信したことに応じて、リアルタイムに前記仮想位置で前記グローバル状態に含まれる、
請求項19に記載のコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【0001】
説明される主題は、拡張現実環境全般に関し、特に、拡張現実体験のユーザのルートに沿って仮想要素を表示することに関する。
【背景技術】
【0002】
既存のアプリケーション(例えば、フィットネストラッカー)によっては、ユーザの位置を監視し、後にユーザインタフェースにおいてユーザに位置データを提示し得るものがある。例えば、ジョギングアプリケーションは、ユーザのウェアラブルデバイスのGPS座標を記録し、マップ上にユーザのジョギングルートをプロットし得る。しかしながら、このマップは、現実世界を抽象化したもので、ユーザがプロットされたルートを自らの実体験に関連付けるのは困難なこともある。さらに、マップ上にプロットされたルートは、通常、ユーザが道路のどちら側に居たのか、ユーザが建物の一階に居たのか、或いは二階に居たのか、ユーザが障害物を避けて進んだのか、飛び越えて進んだのか等、詳細に欠ける。
【0003】
並行現実ゲームにおいて、仮想世界の地理は、実世界の地理の少なくとも一部にマップされる。プレーヤーらは、実世界の対応箇所の位置に移動することにより、仮想世界を移動する。プレーヤーらは、実世界の画像上(例えば、プレーヤーらの携帯するデバイスのカメラで撮影した1つ以上の画像上)に仮想要素を重ね合わせた拡張現実(AR)体験を介して、仮想世界を見ることもできる。マルチプレーヤーによる並行現実ゲームでは、プレーヤーらに実世界に出て、相互作用する(例えば、協働してゲームの目標を達成する)ように促すことができる。しかしながら、プレーヤーらがゲーム外の他のチャンネルを通じて自らの努力を調整しない限り、他のプレーヤーらの位置を特定するのは困難となり、比較的大人数のプレーヤーらが参加しているときであっても、仮想世界に居る人はまばらであるかのように見える。既存のマップベースのインタフェースは、プレーヤーに、他のプレーヤーらがどこに居るのか、もしくはどこに居たのかについて概要を提供することができるが、これらは、プレーヤーらの相互作用する仮想世界のAR表現とは繋がっていない。
【発明の概要】
【0004】
本開示は、仮想世界の地理が実世界の少なくとも一部と並行した並行現実アプリケーションにおけるAR体験を提供することについて説明するものである。例えば、要素アップデートシステムは、クライアントデバイスから接続リクエストを受信し、クライアントデバイスが実世界において通過したルートを受信する。要素アップデートシステムは、ルートに基づいて仮想要素を配置すべき仮想位置を判定し、その仮想位置において仮想要素を含むようにAR体験のグローバル状態のアップデートを行う。仮想位置は、実世界の位置に対応する。要素アップデートシステムは、第2のクライアントデバイスにARデータを提供する。ARデータには、第2のクライアントデバイスが実世界の対応位置に仮想要素の少なくとも一部を表示できるように、仮想位置の少なくとも一部が含まれる。要素アップデートシステムは、実世界における他のユーザらのルートに基づき、仮想世界により多くの仮想要素をさらに追加するか、又は仮想要素のプロパティをアップデートしてもよい。
【図面の簡単な説明】
【0005】
【
図1】一実施形態に係る、並行現実ゲームをホストするのに好適なネットワーク化演算環境のブロック図である。
【0006】
【
図2】一実施形態に係る、
図1のクライアントデバイスのブロック図である。
【0007】
【
図3】一実施形態に係る、
図1のゲームサーバのブロック図である。
【0008】
【
図4】一実施形態に係る、
図1の要素アップデートシステムのブロック図である。
【0009】
【
図5A】一実施形態に係る、実世界と並行する地理を有する仮想世界の表現を描いた図である。
【0010】
【
図5B】一実施形態に係る、仮想世界におけるクライアントデバイスを所持するユーザのルートを描いた図である。
【0011】
【
図5C】一実施形態に係る、成長率の増加した仮想要素の表現を描いた図である。
【0012】
【
図5D】一実施形態に係る、互いに閾値距離内にある第1及び第2の種別の仮想要素に基づき、仮想世界に配置された第3の種別の仮想要素の表現を描いた図である。
【0013】
【
図6】一実施形態に係る、クライアントデバイスにARデータを提供するプロセスを示すフローチャートを描いた図である。
【0014】
【
図7】一実施形態に係る、
図1のネットワーク化演算環境における使用に好適な例としてのコンピュータシステムを示す図である。
【発明を実施するための形態】
【0015】
図面及び以下の説明は、特定の実施形態について単なる例示として記載されている。当業者は、以下の説明から、記載の原則から逸脱することなく、これらの構成及び方法の代替実施形態が採用されてもよいことを容易に認識するであろう。可能な限り、同様又は類似の機能を示すため、図中では同様又は類似の参照符号を使用する。要素が共通の数字を共有し、その後に異なる文字が続く場合、これは、それらの要素が同様又は同一であることを示す。文脈が反対の意味を示していない限り、数字のみを参照すると、通常、このような要素のうちのいずれか1つ又はいずれかの組み合わせを示している。
【0016】
プレーヤーの実世界における動き及び行為が仮想世界の行為に影響し、また逆も成立するように、実世界の地理の少なくとも一部と並行する仮想世界の地理に拡張現実コンテンツを含む並行現実ゲームの文脈において、種々の実施形態について説明する。当業者は、本明細書に記載の開示を使用して、仮想要素を含むARデータを提供することが望まれる他のシチュエーションにおいて、本記載の主題が適用可能である旨、理解するであろう。またコンピュータベースのシステムが本来備えた柔軟性により、システムの構成要素間のタスク及び機能の様々な構成、組み合わせ、及び分割が可能になる。例えば、本開示の態様に係るシステム及び方法は、単一の演算装置を使用して、又は、(例えば、コンピュータネットワークに接続された)複数の演算装置に亘って、実現可能である。
【0017】
図1は、並行現実ゲーム等、並行現実体験を提供するのに好適なネットワーク化演算環境100の一実施形態を示している。ネットワーク化演算環境100は、実世界と並行する地理を有した仮想世界において、プレーヤーの相互作用を可能にする。特に、実世界の地理的領域を、仮想世界の対応領域に直接リンク又はマッピングすることができる。プレーヤーは、実世界の種々の地理的位置に動くことにより、仮想世界において動き回ることができる。例えば、実世界におけるプレーヤーの位置を追跡し、これを仮想世界におけるプレーヤーの位置をアップデートするのに使用することができる。通常、実世界におけるプレーヤーの位置は、プレーヤーが仮想世界と相互作用を行っているクライアントデバイス110の位置を発見し、プレーヤーが同一の(又は、略同一の)位置に居ることを想定することによって判定される。例えば、種々の実施形態において、実世界におけるプレーヤーの位置が、仮想世界における仮想要素の仮想位置に対応する実世界の位置から閾値距離(例えば、10メートル、20メートル等)内にある場合、仮想要素と相互作用することができる。便宜上、種々の実施形態は、「プレーヤーの位置」を参照して説明するが、当業者は、このような参照がプレーヤーのクライアントデバイス110の位置を参照するものであってもよいことを理解するであろう。
【0018】
ネットワーク化演算環境100は、クライアント-サーバアーキテクチャを使用し、ここではゲームサーバ120がネットワーク170を通じてクライアントデバイス110と通信し、クライアントデバイス110のプレーヤーに並行現実ゲームを提供する。ネットワーク化演算環境100は、スポンサー/広告主システム、又は、ビジネスシステム等、他の外部システムも含んでよい。1つのクライアントデバイス110のみを
図1に示したが、任意の数のクライアント110、又は、他の外部システムがネットワーク170を通じてゲームサーバ120に接続されてもよい。さらに、ネットワーク化演算環境100は、異なる、又は、追加の要素を含んでもよく、以下に記載の方法とは別の方法で、クライアントデバイス110とサーバ120との間で機能が分散されてもよい。
【0019】
クライアントデバイス110は、ゲームサーバ120とインタフェースで接続するためにプレーヤーによって使用可能な任意の携帯演算装置とすることができる。例えば、クライアントデバイス110は、無線装置、パーソナルデジタルアシスタント(personal digital assistant:PDA)、携帯ゲーミングデバイス、携帯電話、スマートフォン、タブレット、ナビゲーションシステム、ハンドヘルドGPSシステム、ウェアラブル演算装置、1つ以上のプロセッサを有するディスプレイ、又はその他類似の装置とすることができる。他の例として、クライアントデバイス110は、デスクトップ又はラップトップコンピュータ等、従来のコンピュータシステムを含む。さらに、クライアントデバイス110は、演算装置を備えた車両であってもよい。要するに、クライアントデバイス110は、プレーヤーをゲームサーバ120と相互作用させることができる任意のコンピュータデバイス、又は、システムとすることができる。演算装置として、クライアントデバイス110は、1つ以上のプロセッサと、1つ以上のコンピュータ可読記憶媒体とを備えることができる。コンピュータ可読記憶媒体は、プロセッサに動作を実施させる命令を記憶可能である。クライアントデバイス110は、スマートフォン又はタブレット等、プレーヤーによって容易に携帯又は運搬可能な携帯演算装置であることが好ましい。以下、クライアントデバイス110の種々の実施形態について、
図2を参照してさらに詳細に説明する。
【0020】
ゲームサーバ120は、任意の演算装置とすることができ、1つ以上のプロセッサと、1つ以上のコンピュータ可読記憶媒体とを備えることができる。コンピュータ可読記憶媒体は、プロセッサに動作を実施させる命令を記憶することができる。種々の実施形態において、ゲームサーバ120は、すべてのプレーヤーが一貫したゲーム世界と相互作用するように、グローバルゲーム状態のコピーを維持し、プレーヤーのクライアントデバイス110間での相互作用を管理する。
【0021】
ゲームサーバ120は、クライアントデバイス110から接続リクエストを受信するように構成されてもよい。接続リクエストは、クライアントデバイス110のユーザが特定のゲーム等、並行現実体験に参加したい旨の示唆である。ゲームサーバ120は、クライアントデバイス110を並行現実体験に接続してもよい。並行現実体験のうちの一部、又は、全部が、ゲームサーバ120がクライアントデバイス110にARデータを送るARセッションを含んでもよい。このARデータは、クライアントデバイス110に、実世界の表現(例えば、クライアントデバイスのカメラによって撮影した1つ以上の画像)に重ね合わせて、1つ以上の仮想要素を表示させることができる。
【0022】
ゲームサーバ120は、並行現実体験中等、(例えば、リモートプロシージャコール(remote procedure calls:RPCs)を介して)クライアントデバイス110からのゲームデータを求める他のリクエストを受信し、ネットワーク170を介してこれらのリクエストに応答するようにも構成されていてもよい。ゲームデータには、実世界の表現に重ね合わせた仮想要素をアップデートするための追加ARデータを含む、仮想世界についての情報が含まれ得る。ゲームサーバ120は、ゲームデータを1つ以上のデータフェイルに符号化し、このデータファイルをクライアントデバイス110に提供することができる。また、ゲームサーバ120は、ネットワーク170を介して、クライアントデバイス110からゲームデータ(例えば、プレーヤーの位置、プレーヤーの行為、プレーヤーの入力等)を受信するように構成可能である。例えば、クライアントデバイス110は、プレーヤーの入力、及び、他のアップデートをゲームサーバ120に定期的に送るように構成可能であり、ゲームサーバ120は、これを使用して、任意及びすべてのゲーム状況の変更を反映するように、ゲームデータベース130内のゲームデータをアップデートする。以下、
図3を参照して、ゲームサーバ120の種々の実施形態についてさらに詳細に説明する。
【0023】
ゲームサーバ120は、ゲームデータベース130を含む、又は、ゲームデータベース130と通信することができる。ゲームデータベース130は、ネットワーク170を通じてクライアントデバイス110に供給又は提供される、並行現実ゲームにおいて使用されるゲームデータを記憶する。ゲームデータベース130に記憶されるゲームデータには、(1)並行現実ゲームにおける仮想世界と関連付けられたデータ(例えば、ディスプレイ装置上に仮想世界をレンダリングするために使用される描写データ、仮想世界における位置の地理座標等)、(2)並行現実ゲームのプレーヤーに関連付けられたデータ(例えば、これらに限定されないが、プレーヤーの情報、プレーヤーの経験レベル、プレーヤーの通貨、仮想世界/実世界におけるプレーヤーの現在位置、プレーヤーのエネルギーレベル、プレーヤーの趣向、チーム情報、派閥情報等を含むプレーヤープロファイル)、(3)ゲーム目標に関連付けられたデータ(例えば、現在のゲーム目標に関連付けられたデータ、ゲーム目標のステータス、過去のゲーム目標、将来のゲーム目標、所望のゲーム目標等)、(4)仮想世界における仮想要素に関連付けられたデータ(例えば、仮想要素の位置、仮想要素の種別、仮想要素に関連付けられたゲーム目標、仮想要素に対応した実世界の位置情報、仮想要素の振る舞い、仮想要素との関連性等)、(5)仮想要素にリンクされた実世界のオブジェクト、ランドマーク、位置に関連付けられたデータ(例えば、実世界のオブジェクト/ランドマークの位置、実世界のオブジェクト/ランドマークの説明、実世界のオブジェクトにリンクされた仮想要素の関連性等)、(6)ゲームステータス(例えば、現在のプレーヤー数、ゲーム目標の現在のステータス、プレーヤーのリーダーボード等)、(7)プレーヤーの行為/入力に関連付けられたデータ(例えば、現在のプレーヤーの位置、過去のプレーヤーの位置、プレーヤーの動き、プレーヤーの入力、プレーヤーの問い合わせ、プレーヤーの通信等)、(8)並行現実ゲームの実施中に使用、関連、又は取得する他の情報、が含まれ得る。ゲームデータベース130に記憶されたゲームデータは、システム管理者によって、又は、ネットワーク170を通じてクライアントデバイス110から等、ゲームのユーザ/プレーヤーから受信したデータによって、オフライン又はリアルタイムのいずれかで追加可能である。
【0024】
ゲームサーバ120は、要素アップデートシステム140を備えるか、又はこれに接続されてもよい。要素アップデートシステム140は、クライアントデバイス110が実世界におけるルートを通過する際のクライアントデバイス110からの位置データと、ゲームサーバ120からの(又は、実施形態によってはクライアントデバイス110から直接の)ゲームデータを求めるリクエストを受信する。要素アップデートシステム140は、ルートの位置データを使用して、対応する仮想位置を判定し、その仮想位置において仮想要素を含むように、並行現実ゲームのグローバル状態をアップデートする。要素アップデートシステム140は、(位置データから判定される)クライアントデバイス110の動きに基づき、仮想要素のプロパティをさらにアップデートするか、又は、仮想世界に様々な種別の仮想要素をさらに追加してもよい。以下、
図4を参照して、要素アップデートシステム140の種々の実施形態について、さらに詳細に説明する。
【0025】
ネットワーク170は、ローカルエリアネットワーク(例えば、イントラネット)、ワイドエリアネットワーク(例えば、インターネット)、又はこれらの何らかの組み合わせ等、任意の種別の通信ネットワークとすることができる。このネットワークは、クライアントデバイス110とゲームサーバ120との間の直接的な接続も含むことができる。通常、ゲームサーバ120とクライアントデバイス110との間の通信は、任意の種別の有線、又は、無線接続を使用し、様々な通信プロトコル(例えば、TCP/IP、HTTP、SMTP、FTP)、符号化又はフォーマット(例えば、HTML、XML、JSON、)、又は、保護方式(例えば、VPN、セキュアHTTP、SSL)を使用して、ネットワークインタフェースを介して実施可能である。
【0026】
本明細書において検討する技術は、サーバ、データベース、ソフトウェアアプリケーション、及びその他のコンピュータベースシステムとともに、とられた行動、このようなシステムとの間で送られた情報を参照する。当業者は、コンピュータベースシステムに本来備わった柔軟性により、構成要素間で様々なタスクの構成、組み合わせ、及び分割が可能となることを認識するであろう。例えば、本明細書において検討されるサーバの処理は、単一のサーバ、又は、組み合わせで動作する複数のサーバを使用して実装されてもよい。データベース及びアプリケーションは、単一のシステム上に実装されてもよく、又は、複数のシステムに分散されてもよい。分散された構成要素は、順次、又は、並行して動作してもよい。
【0027】
また、本明細書において検討するシステム及び方法が、位置情報等、ユーザの個人情報にアクセスして解析するか、個人情報を使用する状況において、ユーザには、プログラム又は機能が情報を収集するか否かを制御し、システム又は他のアプリケーションからコンテンツを受信するか否か、又は、いかにして受信するかを制御する機会が与えられてもよい。ユーザに、何の情報が収集され、いかにしてその情報が使用されるかについて、意味のある通知を提供されるまで、このような情報又はデータは収集又は使用されることはない。この情報は、ユーザの同意がなければ、収集又は使用されることはなく、この同意もユーザによって随時無効化又は変更可能である。従って、ユーザは、ユーザについての情報がいかにして収集されるのか、アプリケーション又はシステムによっていかにして使用されるのかを制御することができる。また或る情報又はデータを、記憶又は使用前に1つ以上の方法で取り扱うことができ、個人を識別可能な情報を除外するようにする。例えば、ユーザの同定は、ユーザのために個人を識別可能な情報が判定できないように取り扱われてもよい。
【0028】
図2は、クライアントデバイスの一実施形態を示している。図示の実施形態において、クライアントデバイス110は、ゲーミングモジュール210と、測位モジュール220と、カメラアセンブリ230とを備える。他の実施形態において、クライアントデバイス110は、異なる、又は、追加の要素を備えてもよい。さらに、記載とは異なる方法で、機能が要素間で分散されてもよい。
【0029】
ゲーミングモジュール210は、並行現実ゲームに参加するために、プレーヤーにインタフェースを提供する。ゲームサーバ120は、ネットワーク170を介して、ゲーミングモジュール210によって使用されるゲームデータをクライアントデバイス110に送信し、ゲームサーバ120から離れた位置に居るプレーヤーにゲームのローカルバージョンを提供する。一実施形態において、ゲーミングモジュール210は、ゲームに関連付けられた仮想世界を表示(例えば、仮想世界の描写をレンダリング)し、ユーザに仮想世界と相互作用して種々のゲーム目標を実行させるクライアントデバイス110に関連付けられたディスプレイ装置上に、ユーザインタフェースを提示する。いくつかの実施形態において、ゲーミングモジュール210は、並行現実ゲームの仮想要素で拡張された実世界の(例えば、カメラアセンブリ230で撮影した)画像データを提示する。これらの実施形態において、ゲーミングモジュール210は、クライアントデバイス110の他の構成要素から受信した他の情報に応じて、仮想コンテンツの生成、又は、仮想コンテンツの調整を行ってもよい。例えば、ゲーミングモジュール210は、(例えば、深度推定モデルによって生成された)画像データの撮影シーンの深度マップに応じて、ユーザインタフェース上に表示される仮想オブジェクトを調整してもよい。
【0030】
ゲーミングモジュール210は、プレーヤーが表示画面を見ることなくゲームと相互作用を行えるように、他の種々の出力も制御することができる。例えば、ゲーミングモジュール210は、プレーヤーが表示画面を見ることなくゲームを実行できるように、種々の音声、振動、又はその他の通知を制御することができる。ゲーミングモジュール210は、ユーザにゲームの正確な表現を提供するために、ゲームサーバ120から受信したゲームデータにアクセスすることができる。ゲーミングモジュール210は、プレーヤーの入力を受信及び処理することができ、ネットワーク170を通じて、ゲームサーバ120にアップデートを提供することができる。ゲーミングモジュール210は、クライアントデバイス110によって表示されるゲームコンテンツの生成又は調整も行ってよい。例えば、ゲーミングモジュール210は、(例えば、カメラアセンブリ230によって撮影された1つ以上の画像に適用される深度推定モデルによって判定される)深度情報に基づき、仮想要素を生成してもよい。
【0031】
測位モジュール220は、クライアントデバイス110の位置を監視するための任意の装置又は回路とすることができる。例えば、測位モジュール220は、IPアドレスに基づき、三角測量、又は、携帯中継塔もしくはWiFiホットスポットへの近接、又はその他の好適な位置判定技術を使用して、衛星ナビゲーション測位システム(例えば、GPSシステム、ガリレオ測位システム、グローバルナビゲーション衛星システム(Global Navigation satellite system:GLONASS)、BeiDou衛星ナビゲーション測位システム)、慣性ナビゲーションシステム、デッドレコニングシステムを使用して実際の位置又は相対的な位置を判定することができる。測位モジュール220はさらに、クライアントデバイス110の位置を正確に測位する支援を行うことができる、様々な他のセンサを備えてもよい。いくつかの実施形態において、第1の位置判定技術を使用して(例えば、GPSシステムを使用して)大体の位置が判定され、測位モジュール220は、この大体の位置を使用して、クライアントデバイス110の近傍の3Dマップを取得する。測位モジュール220は、カメラアセンブリ230で撮影した画像を3Dマップと比較してクライアントデバイス110の位置及び向きを判定する等、3Dマップによる局所化技術を使用して、クライアントデバイス110のより正確な位置を判定してもよい。
【0032】
プレーヤーが実世界でクライアントデバイス110を持って動き回る際、測位モジュール220は、プレーヤーの位置を追跡し、ゲーミングモジュール210にプレーヤーの位置情報を提供する。ゲーミングモジュール210は、実世界におけるプレーヤーの実際の位置に基づき、ゲームに関連付けられた仮想世界におけるプレーヤーの位置をアップデートする。このように、プレーヤーは、実世界においてクライアントデバイス110を単に携帯又は運搬するだけで、仮想世界と相互作用することができる。特に、仮想世界におけるプレーヤーの位置は、実世界におけるプレーヤーの位置と対応させることができる。ゲーミングモジュール210は、ネットワーク170を通じて、ゲームサーバ120にプレーヤーの位置情報を提供することができる。これに応じて、ゲームサーバ120は、不正行為者がクライアントデバイス110の位置なりすましを行うことを防ぐため、クライアントデバイス110の位置を検証する種々の技術を成立させることができる。プレーヤーの位置情報がアクセスされること、および、ゲームの文脈の中でその位置情報がいかに利用されるか(例えば、仮想世界におけるプレーヤーの位置をアップデートする)を知らされた後で許可された場合にのみ、プレーヤーに関連付けられた位置情報が利用されることを理解しなければならない。また、プレーヤーに関連付けられた任意の位置情報は、プレーヤーのプライバシーを保護する方法で記憶及び維持される。
【0033】
カメラアセンブリ230は、クライアントデバイス110が位置する物理環境の画像を撮影するように構成された1つ以上のカメラを備える。画像に描写された物理環境の部分をシーンと称する。カメラアセンブリ230は、シーンに対応する画像データを撮影し、それをクライアントデバイスの記憶媒体に記憶する。更に又は代わりに、画像データは、ネットワーク170を介してゲームサーバ120に送られてもよい。カメラアセンブリ230は、変動キャプチャレート、且つ、変動カラーキャプチャ範囲の様々な変動フォトセンサを利用してもよい。カメラアセンブリ230は、広角レンズ又は望遠レンズを含んでいてもよい。カメラアセンブリ230は、画像データとして、単一の画像又は動画を撮影するように構成されていてもよい。クライアントデバイス110は、加速度計、ジャイロスコープ、慣性測定ユニット(inertial measurement units:IMUs)、バロメータ、温度計、光センサ、マイクロフォン等、クライアントデバイスの物理的環境についてのデータを記録する他のセンサも備えていてもよい。画像データには、感覚データ(例えば、環境の温度、明るさ)又は撮影データ(例えば、露光、温かみ、シャッタースピード、焦点距離、撮影時間等)を含む、画像データの他の詳細を説明するメタデータを添付することができる。
【0034】
図3は、ゲームサーバ120の一実施形態を示している。図示の実施形態において、ゲームサーバ120は、ユニバーサルゲームモジュール310と、商用ゲームモジュール320と、データ収集モジュール330と、イベントモジュール3340とを備える。上述の通り、ゲームサーバ120は、ゲームサーバ120の一部であるか、又は、遠隔でアクセスされてもよいゲームデータベース130と相互作用する(例えば、ゲームデータベース130は、ネットワーク170を介してアクセスされる分散データベースであってもよい)。他の実施形態において、ゲームサーバ120は、異なる、又は、追加の要素を含む。また記載とは異なる方法で、機能が要素間において分散されてもよい。例えば、ゲームデータベース130は、ゲームサーバ120内に一体化可能である。
【0035】
ユニバーサルゲームモジュール310は、すべてのプレーヤーに対して並行現実ゲームをホストし、すべてのプレーヤーの並行現実ゲームにおける現在のステータスの信頼できる情報源として振る舞う。ホストとして、ユニバーサルゲームモジュール310は、例えば、各々のクライアントデバイス110を介して、プレーヤーに対する表現のためのゲームコンテンツを生成する。ユニバーサルゲームモジュール310は、並行現実ゲームをホストするとき、ゲームデータを検索又は記憶するため、ゲームデータベース130にアクセスしてもよい。ユニバーサルゲームモジュール310は、クライアントデバイス110からゲームデータ(例えば、深度情報、プレーヤーの入力、プレーヤーの位置、プレーヤーの行為、ランドマーク情報等)も受信し、並行現実ゲームのすべてのプレーヤーのために、受信したゲームデータを並行現実ゲーム全体に組み込む。ユニバーサルゲームモジュール310は、ネットワーク170を通じたクライアントデバイス110へのゲームデータの伝送も管理することができる。ユニバーサルゲームモジュール310は、これらに限定されないが、クライアントデバイス110とゲームサーバ120との間の接続を保証すること、様々なクライアントデバイス110間の接続を確立させること、様々なクライアントデバイス110の位置を検証することを含む、クライアントデバイス110のセキュリティの側面も統制してよい。
【0036】
商用ゲームモジュール320は、それが含まれる実施形態において、ユニバーサルゲームモジュール310から分離したものとすることもでき、又は、その一部とすることもできる。商用ゲームモジュール320は、実世界における商業活動にリンクされた並行現実ゲーム内での種々のゲーム特徴の包含を管理することができる。例えば、商用ゲームモジュール320は、ネットワークを通じた(ネットワークインタフェースを介した)、スポンサー/広告主、ビジネス、又はその他の実態等の外部システムから、並行現実ゲームにおける商業活動にリンクされたゲーム特徴を含めるリクエストを受信することができる。商用ゲームモジュール320は、その後、並行現実ゲームにおけるこれらのゲーム特徴の包含を手配することができる。
【0037】
データ収集モジュール330は、それが含まれる実施形態において、ユニバーサルゲームモジュール310から分離したものとすることもでき、又は、その一部とすることができる。データ収集モジュール330は、実世界におけるデータ収集活動にリンクされた並行現実ゲーム内における種々のゲーム特徴の包含を管理することができる。例えば、データ収集モジュール330は、並行現実ゲーム内のデータ収集活動にリンクされたゲーム特徴を含むように、ゲームデータベース130に記憶されたゲームデータを修正することができる。データ収集モジュール330は、プレーヤーによって(例えば、クラウドソーシングの努力の一部として)収集されたデータを解析することもでき、種々のプラットフォームによるアクセスのためにデータを提供することもできる。特定の例を提供すると、プレーヤーは、自らの環境において関心のあるランドマーク及びその他の特徴の写真を提出するよう促され、データ収集モジュール330は、このプレーヤーによる提出に基づき、並行現実ゲームに実世界のランドマーク又は特徴に対応する仮想要素を組み込んでもよい(例えば、提出したプレーヤーの示す箇所にランドマークが存在し、かつ、位置している旨の検証を施す)。
【0038】
イベントモジュール340は、並行現実ゲームにおけるイベントへのプレーヤーのアクセスを管理する。「イベント」という用語を便宜上使用するが、この用語は、特定の位置又は時間における特定のイベントを必ずしも言及するものでないことを理解しなければならない。むしろ、プレーヤーがそのコンテンツにアクセスしてもよいかを判定するために、1つ以上のアクセス基準を使用するアクセス制御ゲームコンテンツの提供を言及するものであってもよい。このようなコンテンツは、アクセス制御がほとんど又は全くないゲームコンテンツを含む、より大きな並行現実ゲームの一部であってもよく、又は、スタンドアローンのアクセス制御された並行現実ゲームであってもよい。
【0039】
図4は、クライアントデバイスから受信した位置データに基づき、仮想世界に仮想要素を追加するように構成された、要素アップデートシステム140の一実施形態を示している。図示の実施形態において、要素アップデートシステム140は、マッピングモジュール410と、位置モジュール420とを備える。他の実施形態において、要素アップデートシステム140は、異なる、又は、追加の要素/モジュールを含む。さらに、記載とは異なる方法で、機能が要素/モジュール間で分散されてもよい。
【0040】
マッピングモジュール410は、並行現実体験に各々接続されたクライアントデバイス110の位置を受信する。いくつかの実施形態において、マッピングモジュール410は、各クライアントデバイス110から直接位置を受信するが、ここでは、その位置が、クライアントデバイス110によって捕捉されたGPS座標である。他の実施形態において、マッピングモジュール410は、ゲームサーバ120から位置を受信する。いくつかの実施形態において、受信された位置には、マッピングモジュール410に送られるクライアントデバイス110のルートが含まれる。他の実施形態において、マッピングモジュール410は、受信した位置に基づき、実世界においてクライアントデバイス110が通過したルートを判定してもよい。例えば、マッピングモジュール410は、クライアントデバイスのルートとして、ある期間内にクライアントデバイス110から受信された位置を記録してもよい。他の例において、マッピングモジュール410は、クライアントデバイス110が特定の並行現実体験のためにゲームサーバ120に接続される間、クライアントデバイス110から受信した位置として、クライアントデバイスのルートを記録してもよい。この例において、マッピングモジュール410は、クライアントデバイス110が並行現実体験に接続されているときのクライアントデバイスの動きの1つの連続するルート、クライアントデバイス110が並行現実体験に接続されなかったときの実例に基づくギャップを含んだ1つのルート、クライアントデバイス110が並行現実体験に接続されなかったときのクライアントデバイスの動きを各々表す複数のルートを、ゲームデータベース130に記憶してもよい。さらに、マッピングモジュール410は、クライアントデバイス110が並行現実体験に接続する際、クライアントデバイス110の第1の位置を受信すると、クライアントデバイス110のためのルートの記憶を開始してもよい。リアルタイムで(例えば、1~2秒以内、10秒を超えない)クライアントデバイスの新たな位置を受信すると、マッピングモジュール410は、ゲームデータベース130において、その新たな位置を含むようにルートをアップデートしてもよい。
【0041】
マッピングモジュール410は、各ルートについて、ゲームデータベース130にアクセスし、そのルートの実世界における位置に対応する仮想世界に関連付けられたデータを検索する。マッピングモジュール410は、検索されたデータに基づき、ゲームデータベース130に記憶された並行現実体験のグローバル状態において仮想要素を配置すべき仮想位置を判定する。例えば、マッピングモジュール410は、仮想位置がその位置のGPS座標に関連付けられるように、仮想世界において対応する仮想位置に、実世界における各位置をマップしてもよい。他の実施形態において、マッピングモジュール410は、仮想位置にマップする実世界における位置のサブセットを選択する。例えば、このサブセットは、実世界における位置のランダムなセット、ルート内の他のすべての位置、又は、ルート内の位置の別のパターン(例えば、一連の5つの実世界位置のうちの1つ)であってもよい。
【0042】
判定された各仮想位置について、マッピングモジュール410は、その仮想位置に仮想要素を含むように、ゲームデータベース130内の並行現実体験のグローバル状態をアップデートする。いくつかの実施形態において、マッピングモジュール410は、仮想要素のすべては同一である。他の実施形態において、マッピングモジュール410は、ゲームデータベース130にアクセスして、クライアントデバイス110のユーザのユーザプロファイルに関連付けられた種別の仮想要素を検索してもよく、又は、現在選択されている種別の仮想要素(例えば、ユーザにより、メニューから選択されている)を判定してもよく、各仮想位置にその種別の仮想要素を含むようにグローバル状態をアップデートする。例えば、仮想要素は、花の表現であってもよく、並行現実体験に接続された別のクライアントデバイス110は、花の別の表現(例えば、異なる種別の花)に関連付けられてもよく、マッピングモジュール410は、これを各クライアントデバイス110のルートに対応する仮想位置に追加する。マッピングモジュール410は、マッピングモジュール410が1つ以上のクライアントデバイス110が並行現実体験中に通過した位置を受信した際、仮想位置に仮想要素を含むように、グローバル状態のアップデートを継続してもよい。このアップデートは、リアルタイムで発生してもよく、マッピングモジュール410は、クライアントデバイス110又はゲームサーバ120から実世界における対応位置を受信した後、短い期間(例えば、1~2秒)内に、仮想要素を含むように、グローバル状態をアップデートするようにする。
【0043】
位置モジュール420は、クライアントデバイス110が1つ以上の仮想要素付近の仮想位置に対応する実世界の位置に位置しているか否かを判定する。特に、位置モジュール420は、並行現実体験に接続されたクライアントデバイス110の位置を受信する。位置モジュール420は、リアルタイム、又は、定期的に位置を受信してもよい。受信した各位置について、位置モジュール420は、クライアントデバイス110の位置に対応する仮想位置を判定する。位置モジュール420は、ゲームデータベース130にアクセスし、1つ以上のクライアントデバイス110によって通過されたルートに基づき、マッピングモジュール410によって追加された仮想要素といった、並行現実体験の仮想要素の仮想位置を検索する。
【0044】
位置モジュール420は、対応する仮想位置を仮想要素の仮想位置と比較して、その対応する仮想位置が仮想要素の1つ以上に対して閾値距離内にあるか否かを判定する。閾値距離は、並行現実体験において標準であってもよく、ゲームサーバ120の外部オペレータによって設定されてもよく、又は仮想要素の位置に基づくものであってもよい。例えば、仮想要素が実世界における橋に対応する仮想位置に位置する場合、位置モジュール420は、対応する仮想位置を方向的に比較する複数の閾値距離を判定するために、橋の境界を使用してもよい。
【0045】
対応する仮想位置が仮想要素のうちの1つ以上から閾値距離内にある旨、位置モジュール420が判定した場合、位置モジュール420は、クライアントデバイス110に送信される仮想要素を特定するARデータを生成し、その仮想要素の視覚表現を表示させることができる。さらに、位置モジュール420は、仮想要素のプロパティを変更してもよい。例えば、位置モジュール420は、仮想要素(例えば、花の表現)の成長率を増減させたり、仮想要素の色を変更したり、仮想要素の見た目を変更したりしてもよい。位置モジュール420は、仮想要素の修正されたプロパティを示す、アップデート後のARデータを、クライアントデバイス110に直接送るか、又はゲームサーバ120に示唆を送って、ゲームのグローバル状態をアップデートし、クライアントデバイス110にアップデートされたゲームデータを提供してもよい。これについては、
図5Cを参照してさらに説明する。
【0046】
さらに、位置モジュール420は、対応する仮想位置が1つ以上の仮想要素から閾値距離内にあることを判定すると、対応する仮想位置付近に1つ以上の新たな仮想要素を追加してもよい。位置モジュール420は、ゲームデータベース130内に記憶された並行現実体験のグローバル状態に、対応する仮想位置付近、又は、対応する仮想位置から所定距離に1つ以上の新たな仮想要素を追加してもよい。さらに、1つ以上の新たな仮想要素は、1つ以上の仮想要素と同一の種別のものであってもよく、1つ以上の仮想要素の種別及びクライアントデバイス110に関連付けられた種別に基づいて判定されてもよい。例えば、ゲームデータベース130は、仮想要素の種別と結果としての仮想要素の種別との間の関連付けであって、仮想要素をグローバル状態に追加したときに位置モジュール420が検索する関連付けを記憶してもよい。この概念については、
図5Dとの関連でさらに説明する。位置モジュール420は、示唆をゲームサーバ120に送って、表示のために、アップデートされたグローバル状態をクライアントデバイス110に送ってもよい。
【0047】
いくつかの実施形態において、位置モジュール420は、対応する仮想位置のクライアントデバイス110のユーザに関連付けられていない仮想要素の仮想位置と、対応する位置を比較するだけであってもよい。例えば、仮想要素が閾値距離内にあるものの、クライアントデバイスの以前の動きに基づいてマッピングモジュール410によって仮想位置に配置された場合、位置モジュール420は、対応する仮想位置に対する仮想要素の仮想位置に基づいてアクションを起こさなくてもよい(例えば、ゲームサーバ120に示唆を送らない、1つ以上の仮想要素を追加しない、又は仮想要素のプロパティを変更しない)。他の実施形態において、仮想要素がユーザに関連付けられたものと同一の種別である(例えば、花の表現について、仮想要素の種別、及び、ユーザに関連付けられた種別がともにひまわりである)場合、位置モジュール420はまた、仮想要素に対してアクションを起こさなくてもよい。
【0048】
<例示的な並行現実ゲーム>
図5A~
図5Dは、一実施形態に係る、実世界510と並行する地理を有する仮想世界500の表現を描写している。特に、
図5Aは、並行現実体験に接続されたクライアントデバイス110の2名のユーザ520を描写している。ユーザ520は、実世界において異なる位置に位置しており、各々、仮想世界における仮想要素530に対応している。例えば、ユーザ520Aは、バラである仮想要素530Aの仮想位置に対応する実世界510における位置に位置している。ユーザ520Bは、デイジーである仮想要素530Bに対応する実世界510における位置に位置している。このバラは、仮想要素530Aの第1の種別であり、ユーザ520Aに関連付けられ得る。ユーザ520Aは、この第1の種別を選択したか、又はこれが割り当てられた人物である。デイジーは、仮想要素530Bの第2の種別であり、ユーザ520Bが選択したか、又はユーザ520Bに割り当てられたものであってもよい。
【0049】
ユーザ520Bは、自身のクライアントデバイス110が並行現実体験に接続されている間にユーザが通過した実世界510内のルート540Aに関連付けられる。従って、仮想世界500は、ルート540Aに対応する仮想要素530Bを含む。これに対し、ユーザ520Aは、
図5Aに示される自らの位置から並行現実体験への接続を求める接続リクエストを送ったものであり、ユーザ520Aは、自身の現在位置であって、並行現実体験に接続する前にとったルートではない位置に対応する単一の仮想要素530Aにのみ関連付けられる。
【0050】
図5Bにおいて、ユーザ520はともに、自身のクライアントデバイス110を介して並行現実体験に接続されている間に、実世界510において動いている。ユーザ520Aは、ルート540Cを通過しており、マッピングモジュール410は、仮想世界500におけるルート540Cに対応する仮想位置に第1の種別の仮想要素530A(例えば、バラ)を追加している。ユーザ520Bは、ルート540Aの延長であるルート540Bを通過しており、マッピングモジュール410は、同様に、仮想世界500におけるルート540Bに対応する仮想位置に、第2の種別の仮想要素530B(例えば、デイジー)を追加している。さらに、マッピングモジュール410は、仮想世界500におけるグリッド上の同様の位置に仮想要素をマッピングするのでなく、ユーザのとった実際のルート540に対応する位置に仮想要素をマッピングしている。
【0051】
ゲームサーバ120は、ユーザ520のクライアントデバイス110に、仮想要素のうちの1つ以上を含むARデータを送ってもよい。例えば、ユーザ520Aが自らのクライアントデバイス110のカメラをルート540Cに向けた場合、ユーザ520Aには、クライアントデバイス110のディスプレイを介して、自らのルートに並んだ仮想要素530が見えてもよい。また、
図5Bに示される通り、ユーザ520Bがユーザ520Aのルート540Cを既に通過している場合、ユーザ520Aには、ユーザ520Bのルート540Bに並んだ仮想要素530Bが追加でディスプレイ上に見えてもよい。
【0052】
図5Cにおいて、位置モジュール420は、仮想要素530のうちの1つ以上が互いに閾値距離内にあることを判定している。位置モジュール420は、仮想世界500における他の仮想要素530より大きいサイズであるものとして、仮想要素を仮想世界500に描写するように、1つ以上の仮想要素の成長率をアップデートしている。
図5Cに示される通り、位置モジュール420は、ユーザ520のルート540が交差すると、仮想要素530Cのサイズ(成長率とも称する)を大きくするだけであってもよい。しかしながら、他の実施形態において、位置モジュール420は、所定の閾値距離内にある任意の仮想要素530の成長率を増加させてもよいし、或いは、ユーザ520Aが他のユーザ520Bの経路を通過すると、ユーザ520Aに関連付けられた任意の仮想要素の成長率も増加させてもよい。
【0053】
図5Dにおいて、位置モジュール420は、1つ以上の仮想要素530が互いに閾値距離内にあることを判定している。これに応じて、位置モジュール420は、2つのルート540の仮想要素530付近の仮想世界500に、より多くの仮想要素530Dを追加している。追加された仮想要素530Dは、第3の種別であり(例えば、チューリップ)、仮想要素530Dを追加することは、異花受粉と称されてもよい。位置モジュール420は、第1及び第2の種別の仮想要素530に基づき、第3の種別の仮想要素530Dを判定してもよい。例えば、バラ及びデイジーを異花受粉させると、
図5Dに示される通り、位置モジュール420はチューリップを選択してもよい。一方、チューリップ及びバラを異花受粉させると、位置モジュール420は菊を選択してもよい。位置モジュール420によって選択された特定の種別は、仮想世界500において互いに閾値距離内に配置されるときに位置モジュール420にその特定の種別を選択させる種別の組と関連付けて、ゲームデータベース130に記憶され得る。
【0054】
<仮想要素配置プロセス>
図6は、一実施形態に係る、クライアントデバイスにARデータを提供するプロセス600を示すフローチャートである。特に、ゲームサーバ120は、AR体験に接続するための接続リクエストをクライアントデバイス110から受信する(610)。ゲームサーバ120は、AR体験のためにゲームデータベース130からのARデータをクライアントデバイス110に提供してもよく、この場合、ARデータは、クライアントデバイス110の周辺の実世界に対応する仮想世界を表現してもよい。いくつかの実施形態において、マッピングモジュール410は、接続リクエストの示唆をゲームサーバ120から受信してもよく、また、クライアントデバイス110によって捕捉された位置データをゲームサーバ120から受信してもよい。マッピングモジュール410は、位置データから、クライアントデバイス110が実世界で通過したルートを受信する(620)。このルートには、各々GPS座標によって表現され得る、実世界における位置が含まれる。いくつかの実施形態において、マッピングモジュール410は、リアルタイムで(例えば、クライアントデバイス110がその位置に位置してから1~2秒以内に)捕捉された実世界におけるクライアントデバイス110の位置を受信してもよく、受信した位置に基づいてクライアントデバイス110のルートを判定してもよい。
【0055】
マッピングモジュール410は、このルートに基づいて、仮想要素を配置すべき仮想位置を判定する(630)。仮想位置の各々は、そのルートの実世界における位置に対応する。マッピングモジュール410は、そのルートに対応する仮想位置に仮想要素を含むように、ゲームデータベース130内のAR体験のグローバル状態をアップデートする(640)。いくつかの実施形態において、マッピングモジュール410は、クライアントデバイス110のユーザに関連付けられた仮想要素の種別を判定し、その種別の仮想要素を用いてグローバル状態をアップデートしてもよい。いくつかの例において、マッピングモジュール410は、クライアントデバイス110がルートの仮想位置に対応する実世界の位置に位置している旨の示唆をクライアントデバイス110から受信したことに応じて、リアルタイムで各仮想要素を含むように、グローバル状態をアップデートしてもよい。ゲームサーバ120は、実世界の対応する位置に表示を行うため、その仮想位置において仮想要素のうちの1つ以上を含むゲームデータベース130からのARデータを、第2のクライアントデバイスに提供する(650)。
【0056】
いくつかの実施形態において、位置モジュール420は、クライアントデバイス110と同じAR体験を提供されている第2のクライアントデバイス110の現在位置を受信する。位置モジュール420は、第2のクライアントデバイス110が、ルート(例えば、実世界におけるルートの実世界における1つ以上の位置)から閾値距離内にあることを判定してもよい。第2のクライアントデバイス110がルートから閾値距離内にあると判定したことに応じて、位置モジュール420は、ARデータを第2のクライアントデバイス110に送るための示唆をゲームサーバ120に送ってもよく、この場合、ARデータには、ルートに対応する1つ以上の仮想要素が含まれる。いくつかの実施形態において、位置モジュール420は、第2のクライアント110がルートから閾値距離内にあると判定したことに応じて、仮想要素のうちの1つ以上についてプロパティを変更してもよい。例えば、仮想要素が花の表現である場合、位置モジュール420は、クライアントデバイス110が実世界で動くにつれて仮想要素のうちの1つ以上がより大きく成長するように、仮想要素の成長速度を増加させてもよい。
【0057】
いくつかの実施形態において、仮想要素が第1の種別である場合、位置モジュール420は、第1の種別の仮想要素のうちの1つ以上が第2の種別の1つ以上の仮想要素から閾値距離内にあることを判定してもよい。第2の種別の仮想要素は、第2のクライアントデバイス110が通過した実世界における第2のルートにマッピングされてもよい。或いは、第2の種別の仮想要素は、ゲームサーバ120により、AR体験の部分(例えば、視覚効果、ミニゲーム等)について、ルート周辺の仮想世界に対応する位置に配置されたものであってもよい。位置モジュール420は、第1及び第2の種別の仮想要素に基づき、仮想世界に追加する第3の種別の1つ以上の仮想要素を生成してもよい。位置モジュール420は、ゲームサーバ120が表示用に第3の種別の仮想要素の1つ以上を含むARデータを実世界の対応位置付近にあるクライアントデバイス110に送ることができるように、第3の種別の仮想要素をグローバル状態に追加してもよい。
【0058】
当業者は、本明細書において提供される開示を使用して、本開示に照らすと、多数のゲームインタフェースの構成と基礎となる機能が明らかとなることを理解するであろう。本開示は、いずれか特定の一構成に限定されることが意図されるものでない。
【0059】
<例としてのコンピューティングシステム>
図7は、実施形態に係る演算装置のアーキテクチャの例である。
図7は、一実施形態に係る、本明細書に記載の1つ以上の実態のうちの一部又は全部として使用されるコンピュータの物理的構成要素を示すハイレベルブロック図を描いたものであり、コンピュータは、
図7に提供されるものに対して追加の構成要素を有してもよく、それより少ない構成要素を有してもよく、又はその変化形を有してもよい。
図7では、コンピュータ700が描かれているが、同図は、本明細書に記載の実装の構造的概略図としてではなく、コンピュータシステム中に存在してもよい種々の特徴の機能説明として意図されたものである。実際には、そして当業者に認識されるように、別々に示された項目を組み合わせることができ、また、いくつかの項目を分離することができる。
【0060】
図7には、チップセット704に連結される少なくとも1つのプロセッサ702が示されている。チップセット704には、メモリ706、記憶装置708、キーボード710、グラフィクスアダプタ712、ポインティングデバイス714、及びネットワークアダプタ716も連結される。ディスプレイ718は、グラフィクスアダプタ712に連結される。一実施形態において、チップセット704の機能は、メモリコントローラハブ720とI/Oハブ722とによって提供される。他の実施形態において、メモリ706は、チップセット704の代わりに、プロセッサ702に直接連結される。いくつかの実施形態において、コンピュータ700は、これらの構成要素を相互接続するための1つ以上の通信バスを備える。1つ以上の通信バスは、任意で、システム構成要素間の通信の相互接続及び制御を行う回路(チップセットと称することもある)を備える。
【0061】
記憶装置708は、ハードドライブ、コンパクトディスク読み取り専用メモリ(compact disk read-only memory:CD-ROM)、DVD、又は固体メモリ装置もしくはその他の光学ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージもしくはその他の磁気記憶装置、磁気ディスク記憶装置、光学ディスク記憶装置、フラッシュメモリ装置、又はその他の不揮発性固体記憶装置等、任意の非一時的なコンピュータ可読記憶媒体である。このような記憶装置708は、永続メモリとも称することができる。ポインティングデバイス714は、マウス、トラックボール、又はその他の種別のポインティングデバイスであってもよく、コンピュータにデータを入力するために、キーボード710と組み合わせて使用される。グラフィクスアダプタ712は、ディスプレイ718上に画像及びその他の情報を表示する。ネットワークアダプタ716は、コンピュータ700をローカルエリアネットワーク又はワイドエリアネットワークに連結する。
【0062】
メモリ706は、プロセッサ702によって使用される命令及びデータを保持する。メモリ706は、非永続メモリとすることができ、その例としては、DRAM、SRAM、DDR RAM、ROM、EEPROM、フラッシュメモリ等、高速ランダムアクセスメモリが挙げられる。
【0063】
当該技術分野で周知の通り、コンピュータ700は、
図7に示されるものとは異なる他の構成要素を有することができる。さらに、コンピュータ700は、図示の特定の構成要素を省略することができる。一実施形態において、サーバとして振る舞うコンピュータ700からは、キーボード710、ポインティングデバイス714、グラフィクスアダプタ712、又はディスプレイ718を省略してもよい。さらに、記憶装置708は、コンピュータ700のローカルに存在するか、もしくは遠隔に存在するものとすることができる(例えば、記憶領域ネットワーク(storage area network:SAN)内に実装される)。
【0064】
当該技術分野で周知の通り、コンピュータ700は、本明細書に記載の機能を提供するためのコンピュータプログラムモジュールを実行するように適応される。本明細書において使用される「モジュール」という用語は、特定の機能を提供するために利用されるコンピュータプログラム論理をいう。従って、モジュールは、ハードウェア、ファームウェア、又はソフトウェアに実装可能である。一実施形態において、プログラムモジュールは、記憶装置708に記憶され、メモリ706にロードされ、プロセッサ702によって実行される。
【0065】
<追加の考慮事項>
上述の説明の一部は、アルゴリズムプロセス又は動作に関する実施形態について説明するものである。これらのアルゴリズムの説明及び表現は、データ処理分野の当業者が、他の当業者に自らの作業物の内容を効果的に伝えるために共通して使用される。これらの作業は、機能的、演算的、又は論理的に説明される場合、プロセッサ又は同等の電気回路、又はマイクロコード等によって実行される指示を含むコンピュータプログラムによって実装されることが理解される。さらに、場合によっては、一般性を失うことなく、これらの機能的動作の配置をモジュールと称することが簡便であることも明らかとされている。
【0066】
本明細書において使用される「一実施形態」又は「実施形態」という言及はいずれも、その実施形態との関連で説明された特定の要素、特徴、構造、又は特性が少なくとも1つの実施形態に含まれることを意味する。明細書中、種々の箇所で「一実施形態」というフレーズが現れるが、これらは必ずしもすべてが同一の実施形態について言及しているものではない。
【0067】
いくつかの実施形態は、「連結された」及び「接続された」という表現をその派生語とともに使用して説明される場合がある。これらの用語は互いの同義語であることが意図されていない旨、理解されなければならない。例えば、いくつかの実施形態は、2つ以上の要素が互いに直接物理的又は電気的に接触していることを示すために「接続された」という用語を使用して説明される場合がある。他の例において、いくつかの実施形態は、2つ以上の要素が直接物理的又は電気的に接触していることを示すために「連結された」という用語を使用して説明される場合がある。しかしながら、「連結された」という用語は、2つ以上の要素が互いに直接接触しないものの、互いに協働するか、又は相互作用する場合も意味することがある。これらの実施形態は、この文脈に限定されるものでない。
【0068】
本明細書において使用される用語の「備える」「備えている」「含む」「含んでいる」「有する」「有している」又はこれらの他の任意の変化形は、非排他的包含を網羅するものと意図されている。例えば、ある要素のリストを備えるプロセス、方法、物、又は装置は、必ずしもこれらの要素のみに限定されるものでなく、明示的に列挙されていないか、又はこのようなプロセス、方法、物、装置に対して本来備わっている他の要素も含んでよい。さらに、反対の内容が明示的に言及されない限り、「又は」は、包含的な「又は」をいうものであって、排他的な「又は」ではない。例えば、条件A又はBは、以下のいずれかによって満たされる。すなわち、Aが真(又は存在する)でBが偽(又は存在しない)である、Aが偽(又は存在しない)でBが真(又は存在する)である、および、AもBも真である(又は存在する)のいずれかによって満たされる。
【0069】
また不定冠詞の使用は、実施形態の要素又は構成要素の説明のために採用されている。これは、便宜上、本開示の一般的な意味を伝えるためのみになされたものである。本記述は、1つ又は少なくとも1つを含むものとして読み取られなければならず、反対の意味であることが明らかでない限り、この単数形は複数も包含するものである。
【0070】
当業者は、本開示を読むと、拡張現実アプリケーションにおいてユーザの移動経路を表示するシステム及びプロセスについて、さらに代替の構造的且つ機能的設計を理解するであろう。従って、特定の実施形態及び用途について図示及び説明を行っているが、記載の主題は、本明細書に開示の精密な構造物及び構成要素に限定されるものでなく、本開示の方法及び装置の配置、動作、及び詳細には、当業者にとって明らかとなる種々の修正、変更、及び変動がなされてよいことが理解されなければならない。保護の範囲は、以下のクレームによってのみ限定されなければならない。
【外国語明細書】