(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-05-09
(45)【発行日】2024-05-17
(54)【発明の名称】情報処理システム、情報処理装置、情報処理方法、及びプログラム
(51)【国際特許分類】
G06T 19/00 20110101AFI20240510BHJP
【FI】
G06T19/00 600
(21)【出願番号】P 2020162850
(22)【出願日】2020-09-29
(62)【分割の表示】P 2020116020の分割
【原出願日】2020-07-04
【審査請求日】2023-05-24
(73)【特許権者】
【識別番号】519370935
【氏名又は名称】Graffity株式会社
(74)【代理人】
【識別番号】110002790
【氏名又は名称】One ip弁理士法人
(72)【発明者】
【氏名】森本 俊亨
【審査官】益戸 宏
(56)【参考文献】
【文献】国際公開第2013/145614(WO,A1)
【文献】特開2011-107893(JP,A)
【文献】国際公開第2021/053805(WO,A1)
【文献】岡嶋雄太 他3名,遠隔ユーザの注意を作業物体上に反映するMR遠隔コラボレーション,日本バーチャルリアリティ学会論文誌,2009年06月30日,Vol.14, No.2,pp.185-192
(58)【調査した分野】(Int.Cl.,DB名)
G06T 19/00
H04N 13/00
G06F 3/01
A63F 13/00
(57)【特許請求の範囲】
【請求項1】
第1の情報処理装置と、前記第1の情報処理装置と通信可能に接続される第2の情報処理装置とを備え、
前記第1の情報処理装置は、
第1の仮想空間に第1の座標系を設定する座標系設定手段と、
前記第1の座標系における前記第1の情報処理装置の第1の位置を決定する自分位置決定手段と、
前記第1の位置を前記第2の情報処理装置に送信する送信手段と、
前記第2の情報処理装置から第2の位置を受信する受信手段と、
前記第1の座標系上での前記第2の位置を前記第2の情報処理装置の位置として決定する相手位置決定手段と、を有し、
前記第2の情報処理装置は、
前記第1の情報処理装置との間で情報の授受を開始したセッション開始時の該第2の情報処理装置の位置と方向に基づいて、第2の仮想空間に第2の座標系を設定するとともに、前記第2の座標系の原点から離れた位置に第3の座標系の原点が位置するように前記第3の座標系を設定する座標系設定手段と、
前記第3の座標系における前記第2の情報処理装置の第3の位置を決定する自分位置決定手段と、
前記第3の位置を前記第2の位置として前記第1の情報処理装置に送信する送信手段と、
前記第1の情報処理装置から前記第1の位置を受信する受信手段と、
前記第3の座標系上での前記第1の位置を前記第1の情報処理装置の位置として決定する相手位置決定手段と、を有することを特徴とする情報処理システム。
【請求項2】
他情報処理装置との間で情報の授受を行う情報処理装置であって、
前記他情報処理装置との間で情報の授受を開始したセッション開始時の該情報処理装置の位置と方向に基づいて、所定空間に主座標系を設定するとともに、該主座標系の原点から離れた位置に副座標系の原点が位置するように前記所定空間に該副座標系を設定する座標系設定手段と、
前記他情報処理装置から受け取った前記他情報処理装置の位置を示す位置情報に基づいて、前記所定空間における前記副座標系上での前記他情報処理装置の位置を決定する相手位置決定手段と、を備える情報処理装置。
【請求項3】
他情報処理装置との間で情報の授受を行う情報処理装置であって、
前記他情報処理装置との間で情報の授受を開始したセッション開始時の該情報処理装置の位置と方向に基づいて、所定空間に主座標系を設定するとともに、該主座標系の原点から離れた位置に副座標系の原点が位置するように前記所定空間に該副座標系を設定する座標系設定手段と、
前記所定空間における前記副座標系上の前記情報処理装置の位置を取得する自分位置決定手段と、
前記副座標系上の位置を前記情報処理装置の位置として前記他情報処理装置に送信する送信手段と、を備える情報処理装置。
【請求項4】
前記座標系設定手段は、前記所定空間において、前記副座標系の向きを前記主座標系とは異なる向きに設定する、請求項2又は3に記載の情報処理装置。
【請求項5】
実空間を撮影した現実画像に前記他情報処理装置から受け取った前記他情報処理装置の位置を示す位置情報に基づく付加画像を重畳表示させた拡張現実画像を生成する画像生成手段をさらに備える、請求項2~4の何れか一項に記載の情報処理装置。
【請求項6】
他情報処理装置との間で情報の授受を行う情報処理装置が実行する情報処理方法において、
前記他情報処理装置との間で情報の授受を開始したセッション開始時の該情報処理装置の位置と方向に基づいて、所定空間に主座標系を設定するとともに、該主座標系の原点から離れた位置に副座標系の原点が位置するように前記所定空間に該副座標系を設定する座標系設定ステップと、
前記他情報処理装置から受け取った前記他情報処理装置の位置を示す位置情報に基づいて、前記所定空間における前記副座標系上での前記他情報処理装置の位置を決定する相手位置決定ステップと、を含む情報処理方法。
【請求項7】
他情報処理装置との間で情報の授受を行う情報処理装置を制御するコンピュータに、
前記他情報処理装置との間で情報の授受を開始したセッション開始時の該情報処理装置の位置と方向に基づいて、所定空間に主座標系を設定するとともに、該主座標系の原点から離れた位置に副座標系の原点が位置するように前記所定空間に該副座標系を設定する座標系設定ステップと、
前記他情報処理装置から受け取った前記他情報処理装置の位置を示す位置情報に基づいて、前記所定空間における前記副座標系上での前記他情報処理装置の位置を決定する相手位置決定ステップと、を含む制御処理を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、情報処理システム、情報処理装置、情報処理方法、及びプログラムに関する。
【背景技術】
【0002】
従来、携帯端末等の情報処理装置において、拡張現実(AR;Augmented Reality)を利用したゲーム等の各種情報処理の実行が可能となっている(例えば特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、近年、複数人が複数の携帯端末のそれぞれを用いて、ARを利用したゲームの実行等をしたいという要求がなされているが、特許文献1を含め従来の技術では、このような要望に十分に応えることができない状況である。
【0005】
本開示は上記問題点に鑑みてなされたものであり、その目的は、複数の情報処理装置がARを利用したゲーム等の各種情報処理を適切に実行できるようにすることが可能な情報処理システム、情報処理装置、情報処理方法、及びプログラムを提供することである。
【課題を解決するための手段】
【0006】
本開示によれば、第1の情報処理装置と、前記第1の情報処理装置と通信可能に接続される第2の情報処理装置とを備え、
前記第1の情報処理装置は、
第1の仮想空間に第1の座標系を設定する座標系設定手段と、
前記第1の座標系における前記第1の情報処理装置の第1の位置を決定する自分位置決定手段と、
前記第1の位置を前記第2の情報処理装置に送信する送信手段と、
前記第2の情報処理装置から第2の位置を受信する受信手段と、
前記第1の座標系上での前記第2の位置を前記第2の情報処理装置の位置として決定する相手位置決定手段と、を有し、
前記第2の情報処理装置は、
第2の仮想空間に第2の座標系を設定するとともに、前記第2の座標系の原点から離れた位置に第3の座標系の原点が位置するように前記第3の座標系を設定する座標系設定手段と、
前記第3の座標系における前記第2の情報処理装置の第3の位置を決定する自分位置決定手段と、
前記第3の位置を前記第2の位置として前記第1の情報処理装置に送信する送信手段と、
前記第1の情報処理装置から前記第1の位置を受信する受信手段と、
前記第3の座標系上での前記第1の位置を前記第1の情報処理装置の位置として決定する相手位置決定手段と、を有することを特徴とする情報処理システムが提供される。
【0007】
また、本開示によれば、他情報処理装置との間で情報の授受を行う情報処理装置であって、
所定空間に主座標系を設定するとともに、該主座標系の原点から離れた位置に副座標系の原点が位置するように前記所定空間に該副座標系を設定する座標系設定手段と、
前記他情報処理装置から受け取った前記他情報処理装置の位置を示す位置情報に基づいて、前記所定空間における前記副座標系上での前記他情報処理装置の位置を決定する相手位置決定手段と、を備える情報処理装置が提供される。
【0008】
また、本開示によれば、他情報処理装置との間で情報の授受を行う情報処理装置であって、
所定空間に主座標系を設定するとともに、該主座標系の原点から離れた位置に副座標系の原点が位置するように前記所定空間に該副座標系を設定する座標系設定手段と、
前記所定空間における前記副座標系上の前記情報処理装置の位置を取得する自分位置決定手段と、
前記副座標系上の位置を前記情報処理装置の位置として前記他情報処理装置に送信する送信手段と、を備える情報処理装置が提供される。
【0009】
また、本開示によれば、他情報処理装置との間で情報の授受を行う情報処理装置が実行する情報処理方法において、
所定空間に主座標系を設定するとともに、該主座標系の原点から離れた位置に副座標系の原点が位置するように前記所定空間に該副座標系を設定する座標系設定ステップと、
前記他情報処理装置から受け取った前記他情報処理装置の位置を示す位置情報に基づいて、前記所定空間における前記副座標系上での前記他情報処理装置の位置を決定する相手位置決定ステップと、を含む情報処理方法が提供される。
【0010】
また、本開示によれば、他情報処理装置との間で情報の授受を行う情報処理装置を制御するコンピュータに、
所定空間に主座標系を設定するとともに、該主座標系の原点から離れた位置に副座標系の原点が位置するように前記所定空間に該副座標系を設定する座標系設定ステップと、
前記他情報処理装置から受け取った前記他情報処理装置の位置を示す位置情報に基づいて、前記所定空間における前記副座標系上での前記他情報処理装置の位置を決定する相手位置決定ステップと、を含む制御処理を実行させるプログラムが提供される。
【発明の効果】
【0011】
本開示によれば、複数の情報処理装置がARを利用したゲーム等の各種情報処理を適切に実行できるようになる。
【図面の簡単な説明】
【0012】
【
図1】本開示の一実施形態に係るハードウェア構成の一例を示すブロック図である。
【
図2】それぞれ別の実空間に位置する2台の情報処理装置を示す平面図である。
【
図3】
図2の2台の情報処理装置が各AR空間で座標系を設定する手法の一例を説明する平面図である。
【
図4】2台の情報処理装置の機能的構成のうち、各AR空間で座標系を設定し、相手装置の位置を決定するまでの一連の処理が実行される際の機能的構成の一例を示す機能ブロック図である。
【
図5】
図4の機能的構成を有する2台の情報処理装置の間で実行される処理の一例を説明するアローチャートである。
【
図6】一実施形態において4台の情報処理装置がAR空間で座標系を設定する手法の一例を説明する平面図である。
【
図7】一実施形態において4台の情報処理装置がAR空間で座標系を設定する手法の他の例を説明する平面図である。
【
図8】他の実施形態における2台の情報処理装置が各AR空間で座標系を設定する手法の一例を説明する平面図である。
【
図9】他の実施形態における2台の情報処理装置の間で実行される処理の一例を説明するアローチャートである。
【
図10】他の実施形態において4台の情報処理装置がAR空間で座標系を設定する手法の一例を説明する平面図である。
【
図11】他の実施形態において4台の情報処理装置がAR空間で座標系を設定する手法の他の例を説明する平面図である。
【発明を実施するための形態】
【0013】
以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【0014】
図1は、本開示の情報処理装置1に係る一実施形態のハードウェア構成を示すブロック図である。
【0015】
情報処理装置1は、例えば通信機能及び撮影機能を備えるスマートフォン等の携帯端末とすることができる。情報処理装置1は、CPU(Central Processing Unit)21と、ROM(Read Only Memory)22と、RAM(Random Access Memory)23と、バス24と、入出力インターフェース25と、タッチ操作入力部26と、表示部27と、撮像部28と、記憶部29と、通信部30と、ドライブ31と、を備えている。
【0016】
CPU21は、ROM22に記録されているプログラム、又は、記憶部29からRAM23にロードされたプログラムに従って各種の処理を実行する。RAM23は、CPU21が各種の処理を実行する上において必要なデータ等を適宜記憶することができる。
【0017】
CPU21、ROM22及びRAM23は、バス24を介して相互に接続されている。また、バス24には入出力インターフェース25も接続されている。入出力インターフェース25は、タッチ操作入力部26、表示部27、撮像部28、記憶部29、通信部30及びドライブ31に接続されている。
【0018】
タッチ操作入力部26は、例えば表示部27に積層される静電容量式又は抵抗膜式(感圧式)の位置入力センサにより構成され、タッチ操作がなされた位置の座標を検出する。
【0019】
ここで、タッチ操作とは、タッチ操作入力部26に対する物体の接触又は近接の操作をいう。タッチ操作入力部26に対して接触又は近接する物体は、例えばプレイヤーの指やタッチペン等である。
【0020】
表示部27は、液晶等のディスプレイ(表示装置)により構成され、ゲームに関する画像等、各種画像を表示する。上記のように、本実施形態では、タッチ操作入力部26と表示部27とにより、タッチパネルが構成されている。
【0021】
撮像部28は、プレイヤーの指示操作に応じて被写体を撮像し、その結果得られる撮像画像のデータを出力する。
【0022】
記憶部29は、DRAM(Dynamic Random Access Memory)等で構成され、各種データを記憶する。
【0023】
通信部30は、インターネットを含むネットワーク(図示省略)を介して、他の装置(図示せぬサーバや図示せぬ他のプレイヤー端末(他情報処理装置)等)との間で行う通信(情報の送受信)を制御する。
【0024】
ドライブ31は、必要に応じて設けられる。ドライブ31には、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリ等よりなる、リムーバブルメディア32が適宜装着される。ドライブ31によってリムーバブルメディア32から読み出されたプログラムは、必要に応じて記憶部29にインストールされる。また、リムーバブルメディア32は、記憶部29に記憶されている各種データも、記憶部29と同様に記憶することができる。
【0025】
このような
図1の情報処理装置1の各種ハードウェアと各種ソフトウェアとの協働により、2台以上の情報処理装置1の間でARを利用したオンラインでのゲーム等の各種情報処理の実行が可能になる。これにより、2台以上の情報処理装置1間で(ネットワークを介する等して)情報の授受が可能な環境であれば、距離の離れた遠隔地であっても、2台以上の情報処理装置1間でARを利用したオンラインでのゲーム等が可能になる。
【0026】
このように、本開示の一実施形態に係る複数の情報処理装置1を備える拡張現実システムは、実空間を撮影した現実画像に、仮想空間の画像を重畳させた拡張現実(AR;Augmented Reality)を提供する。これにより、本開示の一実施形態に係る複数の情報処理装置1を備える拡張現実システムによれば、ARを利用したオンラインでのゲーム等の各種情報処理の実行が可能になる。なお、仮想空間に現実画像を反映させた複合現実(MR;Mixed Reality)や仮想空間の画像のみの仮想現実(VR;Virtual Reality)を提供するようにしてもよい。
【0027】
ここで、2台以上の情報処理装置1が、ARを利用したゲーム等の各種情報処理を実行するに際し、各情報処理装置1は撮像された画像に基づいて情報処理装置1内で仮想的にAR空間を構築する。AR空間とは、情報処理装置1において処理される空間であって、実空間に対してオブジェクトの配置等何らかの情報が付加される空間をいう。
【0028】
AR空間内でのオブジェクト等の位置や姿勢は、情報処理装置1によって認識されたAR空間内で用いられる座標系に基づいて規定される。座標系は、例えば3次元の直交座標系であり、直行する3本の座標軸(x軸、y軸、z軸)と、3本の座標軸が交わる原点を有する。
【0029】
以下に、それぞれ別の実空間に位置する2台の情報処理装置1(例えば
図2、3の第1装置1A及び第2装置1B)の間で情報の授受を行い、ARを利用したゲーム等の各種情報処理を実行する場合について説明する。なお、2台の情報処理装置1が「別の実空間に位置する」とは、例えば2台の情報処理装置1がそれぞれ別の建物に位置する場合、または、同一の建物の別の部屋に位置する場合等を含む。なお、2台の情報処理装置1が同一空間(例えば同一建物の同一の部屋)にあった場合でも、本例と同様の情報処理を行うことで、複数の情報処理装置1がARを利用したゲーム等の各種情報処理を適切に実行可能である。つまり、複数の情報処理装置1が同一の実空間にあるか否かに関わらず、また、実空間で他情報処理装置1が視認できるか否かに関わらず、本開示によれば、複数の情報処理装置1間での各種情報処理が可能となる。
【0030】
ここで、例えば親機と子機からなる2台の情報処理装置1が、ARを利用したゲーム等の各種情報処理を実行するに際し、情報処理装置1のそれぞれは、各自のAR空間内に主座標系を設定する。
【0031】
図2に示すように、親機としての第1装置1Aは実空間である部屋等の第1空間R1に位置し、子機としての第2装置1Bは、実空間である他の部屋等の第2空間R2に位置する。なお、第1空間R1における第1装置1Aの位置及び向き(姿勢)は図示例に限定されず、同様に第2空間R2における第2装置1Bの位置及び向き(姿勢)は図示例に限定されない。なお、本例では第1装置1Aを親機とし、第2装置1Bを子機としているが、これに限られるものではなく、第2装置1Bを親機とし、第1装置1Aを子機としてもよい。
【0032】
第1装置1A(第1の情報処理装置)は、座標系設定手段と、自分位置決定手段と、送信手段と、受信手段と、相手位置決定手段と、を有する。
【0033】
座標系設定手段は、第1の仮想空間(AR空間SP1)に第1の座標系(座標系ax1)を設定する。座標系設定手段は、例えば後述する座標系設定部51とすることができる。座標系の設定は、例えばSLAM(Simultaneous Localization and Mapping)を動かす等して、空間を認識することによって行うことができるが、これに限られない。
【0034】
自分位置決定手段は、第1の座標系(座標系ax1)における第1の情報処理装置の第1の位置を決定する。自分位置決定手段は、例えば後述する位置決定部52とすることができる。
【0035】
送信手段は、第1の位置を前記第2の情報処理装置(第2装置1B)に送信する。送信手段は、例えば後述する通信部30とすることができる。
【0036】
受信手段は、第2の情報処理装置(第2装置1B)から第2の位置を受信する。受信手段は、例えば後述する通信部30とすることができる。なお、本例では送信手段と受信手段との両方の機能を有する通信部30を設けているが、これに限られるものではない。例えば、送信手段としての機能を有する送信部と受信手段としての機能を有する受信部とを別々に設けてもよい。
【0037】
相手位置決定手段は、第1の座標系(座標系ax1)上での第2の位置を第2の情報処理装置(第2装置1B)の位置として決定する。相手位置決定手段は、例えば後述する位置決定部52とすることができる。なお、本例では自分位置決定手段と相手位置決定手段との両方の機能を有する位置決定部52を設けているが、これに限られるものではない。例えば、送信手段としての機能を有する送信部と受信手段としての機能を有する受信部とを別々に設けてもよい。
【0038】
第2装置1B(第2の情報処理装置)は、座標系設定手段と、自分位置決定手段と、送信手段と、受信手段と、相手位置決定手段と、を有する。座標系設定手段は、例えば後述する座標系設定部51とすることができる。自分位置決定手段及び相手位置決定手段は、例えば後述する位置決定部52とすることができる。送信手段及び受信手段は、例えば後述する通信部30とすることができる。
【0039】
座標系設定手段は、第2の仮想空間(AR空間SP2)に第2の座標系(座標系ax2)を設定するとともに、第2の座標系(座標系ax2)の原点から離れた位置に第3の座標系(座標系ax3)の原点が位置するように第3の座標系(座標系ax3)を設定する。
【0040】
自分位置決定手段は、第3の座標系(座標系ax3)における第2の情報処理装置の第3の位置を決定する。自分位置決定手段が第3の座標系(後述する副座標系)における第2の情報処理装置の第3の位置を決定する方法としては、特に限定されないが、例えば、第2の座標系(後述する主座標系)上の位置を取得して、それを座標変換することにより、第3の座標系における第2の情報処理装置の第3の位置を決定することができる。あるいは、SLAMの環境マップ(点群)に基づいて位置を計算する場合に、所定距離Lの移動(シフト)及び向き変更(回転)が考慮されるように予めパラメータ設定(キャリブレーション)するようにしてもよい(例えば、iOS(登録商標)のARKit(登録商標)で提供されているsetWorldOrigin関数を用いることにより実現することができる。)。
【0041】
送信手段は、第3の位置(座標系ax3上での第2装置1Bの位置)を第2の位置として第1の情報処理装置(第1装置1A)に送信する。
【0042】
受信手段は、第1の情報処理装置(第1装置1A)から第1の位置を受信する。
【0043】
相手位置決定手段は、第3の座標系(座標系ax3)上での第1の位置を第1の情報処理装置(第1装置1A)の位置として決定する。
【0044】
上記のように、子機としての第2装置1Bは、親機としての第1装置1A(他情報処理装置)との間で情報の授受を行う情報処理装置であって、
AR空間SP2(所定空間)に座標系ax2(主座標系、第2の座標系)を設定するとともに、座標系ax2の原点O2から離れた位置に座標系ax3(副座標系、第3の座標系)の原点O3が位置するようにAR空間SP2に座標系ax3を設定する座標系設定手段と、
第1装置1Aから受け取った座標系ax2上での第1装置1Aの位置を示す位置情報に基づいて、AR空間SP2での他情報処理装置の位置を決定する相手位置決定手段と、を備える。
【0045】
上記のように、子機としての第2装置1Bは、座標系ax3(副座標系)上の位置を第2装置1Bの位置として第1装置1Aに送信する送信手段と、を備える。
【0046】
上記の通り、第1装置1Aと第2装置1Bのそれぞれは、各自のAR空間において自分の位置と相手の位置を決定することができる。
【0047】
また、第1装置1Aと第2装置1Bのそれぞれは、相手装置から受信した情報に基づき、相手装置の向き(姿勢)を決定することも可能である。各情報処理装置の向き(姿勢)は、例えばカメラ等の撮像部28が指向する向きとすることができる。この場合、第1装置1Aと第2装置1Bのそれぞれは、自分の向きを示す情報を、位置情報(座標)とともに、または位置情報とは別に相手装置に送信することができる。なお、各座標系におけるz軸(及びx軸)は水平方向に延在し、y軸が鉛直方向に延在していることが好ましい。
【0048】
また、第2装置1BがAR空間SP2において座標系ax3を設定する際には、例えば、座標系ax2の原点O2から、座標系ax2のz軸の正方向に、所定の距離Lだけ離れた位置に座標系ax3の原点O3を設定(配置)することができる。このように、AR空間SP2において座標系ax2とは異なる位置に座標系ax3を設定し、座標系ax3に基づき自分(第2装置1B)の位置を決定することで、AR空間SP2上で自分の位置と相手装置の位置とを最初から離れた状態に配置し易くなる。その結果、例えばゲームの開始時から相手装置を示すオブジェクトが離れた位置に設定されるので、当該相手装置のオブジェクトの位置を視認(確認)し易くなる。
【0049】
また、第2装置1BがAR空間SP2において座標系ax3を設定する際には、例えばy軸を中心(回転軸)としてx軸とz軸とが反転(180度回転)するように座標系ax2を設定することができる。この場合、AR空間SP2において、座標系ax2と座標系ax3とが(特に、z軸正方向同士が)互いに向かい合うこととなる。その結果、例えばAR空間SP2において各座標系ax2、ax3の原点O2,O3にそれぞれ位置する相手装置を最初の段階から容易に確認することができる。同様に、AR空間SP1においても相手装置を最初の段階から容易に確認することができる。そのため、例えば第1装置1Aと第2装置1BとがAR空間で互いに向かい合って対戦するゲーム等に適している。AR空間SP2での座標系ax2と座標系ax3の原点同士の距離L、及び相対的な向きは、AR空間SP2及びAR空間SP1での初期状態における第1装置1Aと第2装置1Bとの距離及び相対的な向きに対応する。なお、AR空間SP2での座標系ax2と座標系ax3の原点同士の距離L、及び相対的な向きは特に限定されず、適宜変更可能である。AR空間SP2での座標系ax2と座標系ax3の原点同士の距離L、及び相対的な向きは、予め設定された規定値であってもよいし、例えば2台以上の情報処理装置1間で情報の授受が開始された(セッションが開始された)時、またはその後の所定のタイミングに決定されるようにしてもよいし、情報処理装置1によって適宜選択可能なものとしてもよい。
【0050】
第1装置1Aは、上記のように自分のAR空間SP1に自分の座標系ax1を設定した後、第2装置1Bから、座標系ax3上での第2装置1Bの位置を示す位置情報(例えば座標(Xb', Yb', Zb'))及び必要に応じて第2装置1Bの向きを示す情報を受け取る。第1装置1Aは、この位置情報に基づいて、AR空間SP1上での第2装置1Bの位置を決定する。第1装置1Aは、座標系ax1に座標系ax3を重ねて配置した(原点位置と向きを一致させた)場合の第2装置1Bの位置を、AR空間SP1における第2装置1Bの位置と決定する。また、第1装置1Aは、例えば第2装置1Bから所定の時間間隔で繰返し位置情報を受け取り続けることで、AR空間SP1における第2装置1Bの位置を把握し続けることができる。これにより、第1装置1Aは、例えば、AR空間SP1に第2装置1Bを示すオブジェクトを配置することができる。そして、第1装置1Aは、撮像した実空間の画像に、上記第2装置1Bを示すオブジェクトの画像を重畳表示させることができる。なお、オブジェクトの形状は特に限定されず、任意の形状を採用可能である。
【0051】
また、第1装置1Aは、座標系ax3上での第2装置1Bの向きを示す情報を受け取り、当該情報に基づいて、AR空間SP1上での第2装置1Bの向きを決定することも可能である。
【0052】
第2装置1Bは、第1装置1A(他情報処理装置)から受け取った座標系ax1上での第1装置1Aの位置を示す位置情報(例えば座標(Xb, Yb, Zb))に基づいて、AR空間SP2における座標系ax3上での第1装置1Aの位置を決定することができる。第2装置1Bは、座標系ax3に座標系ax1を重ねて配置した(原点位置と向きを一致させた)場合の第1装置1Aの位置を、AR空間SP2における第1装置1Aの位置と決定する。第2装置1Bは、例えば第1装置1Aから所定の時間間隔で繰返し位置情報を受け取り続けることで、AR空間SP2における第1装置1Aの位置を把握し続けることができる。これにより、第2装置1Bは、例えば、AR空間SP2に第1装置1Aを示すオブジェクトを配置することができる。そして、第2装置1Bは、撮像した実空間の画像に、上記第1装置1Aを示すオブジェクトの画像を重畳表示させることができる。
【0053】
また、第2装置1Bは、座標系ax1上での第1装置1Aの向きを示す情報を受け取り、当該情報に基づいて、AR空間SP2上での第1装置1Aの向きを決定することも可能である。
【0054】
第1装置1Aと第2装置1Bとは、上記のようにして、各自のAR空間SP1、SP2に仮想的に相手を配置する(相手の位置(及び向き)を決定する)ことができる。即ち、第1装置1Aは、最初に設定したAR空間SP1における座標系ax1を用いて、各種情報を処理する。一方、第2装置1Bは、最初に設定したAR空間SP2における座標系ax2と座標系ax3を用いて、各種情報を処理する。
【0055】
第1装置1Aと第2装置1Bとは、互いの位置情報等の各種情報を、P2P(peer-to-peer)で相互に授受する。
【0056】
以上説明した第1装置1Aと第2装置1Bとにおける一連の処理は、第1装置1Aと第2装置1Bとのそれぞれにおけるハードウェアとソフトウェアの協働により実現される。この場合、第1装置1Aと第2装置1Bとは、例えば
図4に示す機能的構成を有することができる。
図4は、第1装置1Aと第2装置1Bとのそれぞれにおける機能的構成のうち、上記座標系の設定と、位置決定とを含む一連の処理が実行される際の機能的構成の一例を示す機能ブロック図である。
【0057】
図4に示すように、第1装置1AのCPU21においては、座標系設定部51(座標系設定手段)と、位置決定部52(位置決定手段)と、通信制御部53(通信制御手段)とが機能する。同様に、第2装置1BのCPU21においても、座標系設定部51(座標系設定手段)と、位置決定部52(位置決定手段)と、通信制御部53(通信制御手段)とが機能する。なお、第1装置1A及び/又は第2装置1BのCPU21には、例えばマーカ画像を生成するマーカ画像生成部、及びマーカ画像を表示部に表示させるマーカ画像表示制御部等が設けられていてもよい。
【0058】
以下、
図5を適宜参照しつつ、第1装置1Aと第2装置1Bの各機能ブロックの詳細について説明する。
【0059】
図5は、
図4の機能的構成を有する第1装置1Aと第2装置1Bとの間で実行される一連の処理の一例を説明するアローチャートである。
【0060】
ステップS11において、第1装置1Aの座標系設定部51は、撮像部28により撮像された実空間の撮像画像のデータに基づいて空間認識を行い、構築したAR空間SP1に座標系ax1(
図2)を設定する。次いでステップS12において、第1装置1Aの位置決定部52は、AR空間SP1における座標系ax1に基づく自分の位置を決定する。位置決定部52は、例えば、初期状態において座標系ax1の原点O1を自分の位置として決定する。
【0061】
上記ステップS11と同様に、ステップS21において、第2装置1Bの座標系設定部51は、撮像部28により撮像された実空間の撮像画像のデータに基づいて空間認識を行い、構築したAR空間SP2に座標系ax2(
図2)を設定する。次いでステップS22において、第2装置1Bの座標系設定部51は、AR空間SP2における座標系ax2から所定距離Lだけ離れた位置にの原点O3が位置するように座標系ax3(
図3)を設定する。この時、座標系ax3の向きは、座標系ax2の向きに対してy軸を中心として反転した向きに設定することができる。次いでステップS23において、第2装置1Bの位置決定部52は、AR空間SP2における座標系ax3に基づく自分の位置を決定する。位置決定部52は、例えば、初期状態において座標系ax2の原点O2を自分の位置として決定する。つまり、座標系ax3の原点O3から距離Lだけ離れた位置を、自分の位置をAR空間SP2における自分の位置と決定する。本例においてステップS11、S21、S22は座標系設定ステップを構成し、ステップS12、S23は、自分位置決定ステップを構成する。
【0062】
ステップS13、S24において、第1装置1A及び第2装置1Bは、互いに情報の授受を行う。具体的に、ステップS13において、第1装置1Aの通信制御部53は、座標系ax1における第1装置1Aの位置情報(及び必要に応じて向きの情報等)を、通信部30を介して第2装置1Bに送信し、第2装置1Bは通信部30を介して当該情報を受信する。同様に、第2装置1Bは、ステップS24において、座標系ax3における第2装置1Bの位置情報等を、通信部30を介して第1装置1Aに送信し、第1装置1Aは通信部30を介して当該情報を受信する。なお、ステップS13とステップS24は同時であってもよいし、互いに異なるタイミングであってもよい。互いに異なるタイミングである場合、ステップS13とステップS24はどちらが先でもよい。
【0063】
ステップS14において、第1装置1Aは、ステップS13(S24)において第2装置1Bから受け取った座標系ax3上での第2装置1Bの位置を示す位置情報に基づいて、AR空間SP1での第2装置1Bの位置を決定する。
【0064】
ステップS25において、第2装置1Bは、ステップS24(S13)において第1装置1Aから受け取った座標系ax1上での第1装置1Aの位置を示す位置情報に基づいて、AR空間SP2での第1装置1Aの位置を決定する。本例においてステップS13、S24及びステップS14、S25は相手位置決定ステップを構成する。
【0065】
ステップS12~S14及びステップS23~S25は、例えばゲームが終了するまで、継続的に繰り返し行われる。これにより、第1装置1A及び第2装置1Bはそれぞれ、各自のAR空間SP1、SP2での自分の位置(及び向き)と相手の位置(及び向き)を、例えばゲームが終了するまで把握し続けることができる。
【0066】
上記のように、第1装置1Aと第2装置1Bのそれぞれは、各自の実空間に基づくAR空間に、仮想的に相手装置(他情報処理装置)を配置することができる(
図3参照)。
【0067】
また、複数の情報処理装置が各自のAR空間において互いに離れた位置から、ARを用いたゲーム等を開始することができる。その結果、ゲーム開始時に各自が相手の位置を確認し易くなる。
【0068】
上記の通り、複数の情報処理装置がARを利用したゲーム等の各種情報処理を適切に実行できるようになる。
【0069】
なお、各情報処理装置1のAR空間における各座標系の位置と向きは、情報処理装置1間での情報の授受を開始した時(セッション開始時)の各情報処理装置1の位置(初期位置)と向き(初期方向)に基づいて設定することができる。また、上記の座標系設定の処理(座標系設定ステップ)は、初期設定として、ゲームの開始前に行われることが好ましいが、座標系設定ステップのタイミングはこれに限られるものではない。
【0070】
また、本実施形態にあっては、AR空間SP2において、座標系ax2と座標系ax3とを異なる向きに設定することが好ましい。これによれば、座標系ax2と座標系ax3とを同一の向きに設定した場合に比べて、他情報処理装置の座標系の原点を視認し易くなる。つまり、初期設定としてゲーム開始前に座標系設定ステップを行う場合、ゲーム開始時からAR空間において相手オブジェクトを視認(確認)し易くなる。また、AR空間SP1、SP2での座標系ax1の原点O1と座標系ax2の原点O2との距離Lは、例えば0.5m以上5m以下とすることができ、好適には1m以上4m以下とすることができるが、これに限定されない。またAR空間SP2において、必ずしも異なる向きとなるように座標系ax2と座標系ax3とを設定する必要はなく、座標系ax2と座標系ax3とが同じ向きとなるように設定してもよい。
【0071】
上記のように子機としての情報処理装置1が各自のAR空間において主座標系から離れた位置に副座標系を設定する際、例えば座標変換を利用することができる。座標変換は、例えば主座標系の原点位置及び向きを基準に座標変換行列Tを用いた演算処理を行うことで実現される。これにより、各自のAR空間において主座標系の原点から副座標系の原点を所定の距離だけ離間させることができ、また必要に応じて副座標系の向きを主座標系から所定角度回転させた向きに設定することができる。
【0072】
ここで、例えば、子機としての情報処理装置1がAR空間において副座標系を設定せずに、自分の装置の位置、及び他の装置の位置を決定しようとした場合には、座標変換行列Tを用いて自分の装置の位置(Xb,Yb,Zb)を相手のAR空間に対応するように座標変換した、T*(Xb,Yb,Zb)のような変換位置情報を相手に送り続けなければならない。そのため、各情報処理装置(特に親機)における情報処理量が膨大となる虞がある。
【0073】
これに対して、本例のように、副座標系を子機のAR空間に設定する場合には、副座標系上での子機の位置(例えば、(Xb', Yb', Zb')等)をそのまま相手装置(親機等)に送るだけで、相手装置は相手装置のAR空間での子機の位置を決定することができる。同様に、相手装置の座標系に基づく位置情報を相手装置から受け取るだけで、自分のAR空間における相手装置の位置を把握することができる。そのため、各情報処理装置1における情報処理量が上記の場合(子機のAR空間において副座標系を設定しない場合)に比べて格段に小さくなり、各情報処理装置1の処理負荷を軽減することができる。
【0074】
以上本発明の一実施形態について説明したが、本発明は、上述の実施形態に限定されるものではなく、本発明の目的を達成できる範囲での変形、改良等は本発明に含まれるものである。
【0075】
例えば、3台以上の情報処理装置1間でARを利用したゲーム等の各種情報処理を実行することも可能である。3台の情報処理装置1間でARを利用したゲーム等の各種情報処理を実行する場合、例えば1台を親機とし、他の全て(2台)を子機とすることができる。例えば、AR空間において、正三角形等の仮想の三角形の各頂点となる位置に各情報処理装置1が配置され、当該三角形の中心に向けて各情報処理装置1が向くように設定することができる。あるいは、仮想の円の輪郭線上に、等間隔で各情報処理装置1が配置され、当該仮想の円の中心に向けて各情報処理装置1が向くように設定することができる。このような構成により、各情報処理装置1の各AR空間においてバランスよく各座標系を設定することができる。
【0076】
図6は、第1装置1A、第2装置1B、第3装置1C及び第4装置1Dからなる4台の情報処理装置1間でARを利用したゲーム等の各種情報処理を実行する場合における座標系の設定方法の一例を示している。本例において、第1装置1A、第2装置1B、第3装置1C及び第4装置1Dはそれぞれ別の実空間に位置しているものとしている。
【0077】
図6に示すように、親機としての第1装置1Aは実空間である部屋等の第1空間R1に位置している。第1装置1Aは、上述の例と同様に、第1空間R1に基づいて第1装置1A内で構築されるAR空間SP1において、まず座標系ax1を設定し、また、AR空間SP1における自分の位置を決定する。初期状態での自分の位置は、例えば座標系ax1の原点O1とすることができる。
【0078】
また、子機としての第2装置1B、第3装置1C、及び第4装置1Dは、それぞれの実空間に基づいて各装置内で構築される各AR空間において、主座標系と、(主座標系とは異なる位置にある)副座標系を設定し、また、各AR空間における副座標系上での自分の位置を決定する。この時、各AR空間上で子機同士の初期位置が重ならないように、第2装置1B、第3装置1C、及び第4装置1Dは、主座標系に対する副座標系の位置をそれぞれ別の位置に設定することが好ましい。
【0079】
そして、第1装置1A、第2装置1B、第3装置1C及び第4装置1D間で情報の授受を行うことにより、各AR空間上に自分と他の3台の装置の位置(及び必要に応じて向き)を決定することができる。親機としての第1装置1Aは、AR空間SP1の座標系ax1上での自分の位置を示す位置情報を他の3台の子機に送信し、3台の子機は、それぞれの副座標系上での自分の位置を示す位置情報を親機及び他の2台の子機に送信する。
【0080】
例えば
図6に示すように、第1装置1AのAR空間SP1における第2装置1Bの仮想の位置は、座標系ax1の原点O1からz軸の正方向にL1だけ離れた位置に設定される。また、AR空間SP1における第3装置1Cの位置は、座標系ax1の原点O1からx軸の正方向にL2だけ離れた位置に設定される。また、AR空間SP1における第4装置1Dの位置は、座標系ax1の原点O1からz軸の正方向にL1だけ離れ、且つ、x軸の正方向にL2だけ離れた位置に設定される。AR空間SP1における第2装置1B、第3装置1C及び第4装置1Dの位置は、各装置が設定したそれぞれの主座標系に対する副座標系の位置に対応している。第2装置1B、第3装置1C及び第4装置1Dのそれぞれも、各自のAR空間において各自の副座標系における自分の装置の位置と、他の3台の装置の位置とをそれぞれ設定する。
【0081】
図6に示す例では、第2装置1Bは第1装置1Aと向かい合うように設定され、第3装置1Cは第4装置1Dと向かい合うように設定される。また、第1装置1Aと第3装置1Cとは同一の方向を向いており(平行であり)、第2装置1Bと第4装置1Dとは同一の方向を向いている(平行である)。
【0082】
このような構成とした場合、例えばAR空間SP1において同一の方向を向く第1装置1Aと第3装置1Cとを第1のチームとし、第2装置1Bと第4装置1Dとを第2のチームとして、チーム同士で対戦することが容易となる。
【0083】
図7は、3台以上の情報処理装置1のうちの、何れかの2台以上の情報処理装置1が同一の実空間にある場合の一例を示している。より具体的に、
図7は、4台の情報処理装置1間でARを利用したゲーム等の各種情報処理を実行する場合であって、同一の実空間に2台の情報処理装置1が位置する場合の一例を示している。
図7に示すように、第1装置1Aと第3装置1Cとが、同一の実空間(第1空間R1)に位置しており、第2装置1B及び第4装置1Dはそれぞれ(または共に)別の実空間に位置している。
【0084】
このような場合には、同一の実空間(第1空間R1)に位置する第1装置1Aと第3装置1Cとが、例えばAR空間SP1を共有することができる。例えば、第1装置1Aと第3装置1Cとは、第1装置1Aの座標系ax1に第3装置1Cの座標系ax3を一致させる(原点の位置と3本の軸の向きを一致させる)ことで、AR空間SP1の共有を図ることができる。同一の実空間(第1空間R1)に位置する第1装置1Aと第3装置1Cとの座標系を一致させる際には、例えば第1装置1Aの表示部に表示させたマーカ画像等のマーカを第3装置1Cの撮像部で読み取ること等により行うことができる。
【0085】
また、
図7に示す場合、第1装置1Aは、先の実施例と同様に、AR空間SP1において座標系ax1を設定するとともに、自分の位置を決定する。また、第1装置1Aは、第2装置1B及び第4装置1Dからそれぞれ受け取った位置情報に基づいて、AR空間SP1における第2装置1B及び第4装置1Dのそれぞれの位置を決定する。第3装置1Cは、AR空間SP1における自分の位置を決定する。また、第3装置1Cは、第2装置1B及び第4装置1Dからそれぞれ受け取った位置情報に基づいて、AR空間SP1における第2装置1B及び第4装置1Dのそれぞれの位置を決定する。第2装置1B及び第4装置1Dはそれぞれ、各自のAR空間に主座標系と副座標系とを設定し、副座標系上での各自の位置を決定するとともに、他装置から受け取った位置情報に基づいて、各副座標系での他の3台の装置の位置を決定する。
【0086】
これにより、
図7に示すように、AR空間SP1において4台の情報処理装置1を
図6と同様に仮想的に配置することができる。よって、例えばAR空間SP1において同一の方向を向く第1装置1Aと第3装置1Cとを第1のチームとし、第2装置1Bと第4装置1Dとを第2のチームとして、チーム同士で対戦することも容易となる。
【0087】
また、
図7に示す場合において、第3装置1Cが、自分の位置情報を他情報処理装置(第2装置1Bと第4装置1D)に送信する際には、AR空間SP1における座標系ax1上での位置を利用することができる。このように、同一の実空間(第1空間R1)に位置する第1装置1Aと第3装置1Cとは、共通のAR空間SP1及び共通の座標系ax1を用いることができる。なお、本例では、第1装置1Aを親機として第2装置1B、第3装置1C及び第4装置1Dを子機としていたが、これに限られない。また、親機を決定する方法としては、例えば、共有される座標系ax1を最初に設定した情報処理装置1(
図7の例では第1装置1A)を親機とし、親機以外の情報処理装置1(
図7の例では第2装置1B、第3装置1C及び第4装置1D)を子機とすることができる。
【0088】
なお、以下のような構成も本開示の技術的範囲に属する。
(項目1)
第1の情報処理装置と、前記第1の情報処理装置と通信可能に接続される第2の情報処理装置とを備え、
前記第1の情報処理装置は、
第1の仮想空間に第1の座標系を設定する座標系設定手段と、
前記第1の座標系における前記第1の情報処理装置の第1の位置を決定する自分位置決定手段と、
前記第1の位置を前記第2の情報処理装置に送信する送信手段と、
前記第2の情報処理装置から第2の位置を受信する受信手段と、
前記第1の座標系上での前記第2の位置を前記第2の情報処理装置の位置として決定する相手位置決定手段と、を有し、
前記第2の情報処理装置は、
第2の仮想空間に第2の座標系を設定するとともに、前記第2の座標系の原点から離れた位置に第3の座標系の原点が位置するように前記第3の座標系を設定する座標系設定手段と、
前記第3の座標系における前記第2の情報処理装置の第3の位置を決定する自分位置決定手段と、
前記第3の位置を前記第2の位置として前記第1の情報処理装置に送信する送信手段と、
前記第1の情報処理装置から前記第1の位置を受信する受信手段と、
前記第3の座標系上での前記第1の位置を前記第1の情報処理装置の位置として決定する相手位置決定手段と、を有することを特徴とする情報処理システム。
(項目2)
他情報処理装置との間で情報の授受を行う情報処理装置であって、
所定空間に主座標系を設定するとともに、該主座標系の原点から離れた位置に副座標系の原点が位置するように前記所定空間に該副座標系を設定する座標系設定手段と、
前記他情報処理装置から受け取った前記他情報処理装置の位置を示す位置情報に基づいて、前記所定空間における前記副座標系上での前記他情報処理装置の位置を決定する相手位置決定手段と、を備える情報処理装置。
(項目3)
他情報処理装置との間で情報の授受を行う情報処理装置であって、
所定空間に主座標系を設定するとともに、該主座標系の原点から離れた位置に副座標系の原点が位置するように前記所定空間に該副座標系を設定する座標系設定手段と、
前記所定空間における前記副座標系上の前記情報処理装置の位置を取得する自分位置決定手段と、
前記副座標系上の位置を前記情報処理装置の位置として前記他情報処理装置に送信する送信手段と、を備える情報処理装置。
(項目4)
前記座標系設定手段は、前記所定空間において、前記副座標系の向きを前記主座標系とは異なる向きに設定する、項目2又は3に記載の情報処理装置。
(項目5)
実空間を撮影した現実画像に前記他情報処理装置からの前記位置情報に基づく付加画像を重畳表示させた拡張現実画像を生成する画像生成手段をさらに備える、項目2~4の何れか一項に記載の情報処理装置。
(項目6)
他情報処理装置との間で情報の授受を行う情報処理装置が実行する情報処理方法において、
所定空間に主座標系を設定するとともに、該主座標系の原点から離れた位置に副座標系の原点が位置するように前記所定空間に該副座標系を設定する座標系設定ステップと、
前記他情報処理装置から受け取った前記他情報処理装置の位置を示す位置情報に基づいて、前記所定空間における前記副座標系上での前記他情報処理装置の位置を決定する相手位置決定ステップと、を含む情報処理方法。
(項目7)
他情報処理装置との間で情報の授受を行う情報処理装置を制御するコンピュータに、
所定空間に主座標系を設定するとともに、該主座標系の原点から離れた位置に副座標系の原点が位置するように前記所定空間に該副座標系を設定する座標系設定ステップと、
前記他情報処理装置から受け取った前記他情報処理装置の位置を示す位置情報に基づいて、前記所定空間における前記副座標系上での前記他情報処理装置の位置を決定する相手位置決定ステップと、を含む制御処理を実行させるプログラム。
【0089】
以下に、他の実施形態について説明する。なお、先の実施形態と共通する構成については適宜説明を省略する。他の実施形態において、2台以上の情報処理装置1が、ARを利用したゲーム等の各種情報処理を実行するに際し、情報処理装置1のそれぞれは、各自のAR空間内に各自の情報処理装置1の座標系(第1座標系)と他情報処理装置1の座標系(第2座標系)とを設定する。これにより、2台以上の情報処理装置1間で仮想的にAR空間を互いに共有することができる。
【0090】
なお、2台以上の情報処理装置1の何れか1台の情報処理装置1を親機として、他の情報処理装置1を全て子機と設定するようにしてもよい。この場合、例えば、子機となる1台または2台以上の情報処理装置1をゲーム等に招待した情報処理装置1を親機と設定することができる。
【0091】
図2に示すように、第1装置1Aは実空間である部屋等の第1空間R1に位置し、第2装置1Bは、実空間である他の部屋等の第2空間R2に位置する。なお、第1空間R1における第1装置1Aの位置及び向き(姿勢)は図示例に限定されず、同様に第2空間R2における第2装置1Bの位置及び向き(姿勢)は図示例に限定されない。
【0092】
第1装置1A及び第2装置1Bのそれぞれは、それぞれのAR空間(所定空間)において各自の第1座標系を設定するとともに、相手(他情報処理装置)の第2座標系を設定する。
【0093】
具体的に、第1空間R1に位置する第1装置1Aは、第1装置1AのAR空間SP1において自分(第1装置1A)の座標系ax1(第1座標系)を設定する。また第1装置1Aは、AR空間SP1において、座標系ax1とは原点が離れた位置となるように第2装置1Bに利用される座標系ax2(第2座標系)を設定する。このような座標系の設定は、例えばSLAM(Simultaneous Localization and Mapping)を動かす等して、空間を認識することによって行うことができるが、これに限られない。
【0094】
これにより、
図8に示すように第1装置1Aは、第1装置1Aの座標系ax1から見た第2装置1Bの座標系ax2の位置及び向き(姿勢)を設定することができる。この時、所定空間における第1装置1Aの位置を座標系ax1の原点O1とすることができ、第1装置1Aの向き(例えばカメラ等の撮像部が指向する向き)を座標系ax1におけるz軸の正方向の向き(原点O1を始点とするz軸の正方向ベクトル)とすることができる。この場合、座標系ax1におけるz軸(及びx軸)は水平方向に延在し、y軸が鉛直方向に延在していることが好ましい。
【0095】
また、第1装置1AがAR空間SP1において第2装置1Bの座標系ax2を設定する際、例えば座標系ax1の原点O1から、座標系ax1のz軸の正方向に、所定の距離Lだけ離れた位置に座標系ax2の原点O2を設定(配置)することができる。このように、AR空間SP1において座標系ax1とは異なる位置に座標系ax2を配置することで、座標系ax1の原点O1から座標系ax2の原点O2が視認(確認)し易くなる。
【0096】
また、第1装置1AがAR空間SP1において第2装置1Bの座標系ax2を設定する際、例えばy軸を中心(回転軸)としてx軸とz軸とが反転(180度回転)するように座標系ax2を設定することができる。この場合、AR空間SP1(SP2)において、座標系ax1と座標系ax2とが(特に、z軸同士が)互いに向かい合うこととなり、各座標系ax1、ax2の原点O1,O2にそれぞれ位置する相手装置を最初の段階から容易に確認することができる。そのため、例えば第1装置1Aと第2装置1BとがAR空間で互いに向かい合って対戦するゲーム等に適している。なお、AR空間SP1での座標系ax1と座標系ax2の原点同士の距離L、及び相対的な向きは特に限定されず、適宜変更可能である。AR空間SP1での座標系ax1と座標系ax2の原点同士の距離L、及び相対的な向きは、予め設定された規定値であってもよいし、例えば2台以上の情報処理装置1間で情報の授受が開始された(セッションが開始された)時、またはその後の所定のタイミングに決定されるようにしてもよいし、情報処理装置1によって適宜選択可能なものとしてもよい。
【0097】
上記第1装置1Aの処理と同様に、第2空間R2に位置する第2装置1Bは、第2装置1Bが位置する実空間(第2空間R2)に基づく独自のAR空間SP2において自分(第2装置1B)の座標系ax2(第1座標系)を設定する。また、第2装置1BはAR空間SP2において第1装置1Aの座標系ax1(第2座標系)を設定する。AR空間SP2での座標系ax2の原点O2と座標系ax1の原点O1との距離L、及び座標系ax2に対する座標系ax1の相対的な向きは、AR空間SP1での座標系ax1と座標系ax2の原点同士の距離L、及び座標系ax1に対する座標系ax2の相対的な向きに少なくとも対応しており、好ましくは一致している。
【0098】
このように、第1装置1Aと第2装置1Bのそれぞれは、それぞれが位置する実空間に基づくそれぞれの仮想空間に、自分の座標系と相手の座標系とを設定する。これにより、第1装置1Aと第2装置1Bのそれぞれは、
図8に示すように、各自のAR空間に仮想的に相手装置(他情報処理装置)を配置することができる。
【0099】
なお、各情報処理装置1のAR空間における各座標系の位置と向きは、情報処理装置1間での情報の授受を開始した時(セッション開始時)の各情報処理装置1の位置(初期位置)と向き(初期方向)に基づいて設定することができる。また、上記の座標系設定の処理(座標系設定ステップ)は、初期設定として、ゲームの開始前に行われることが好ましいが、座標系設定ステップのタイミングはこれに限られるものではない。
【0100】
各AR空間SP1、SP2において、座標系ax1と座標系ax2とを異なる向きに設定することが好ましい。これによれば、座標系ax1と座標系ax2とを同一の向きに設定した場合に比べて、他情報処理装置の座標系の原点を視認し易くなる。つまり、初期設定としてゲーム開始前に座標系設定ステップを行う場合、ゲーム開始時からAR空間において相手オブジェクトを視認(確認)し易くなる。また、AR空間SP1、SP2での座標系ax1の原点O1と座標系ax2の原点O2との距離Lは、例えば0.5m以上5m以下とすることができ、好適には1m以上4m以下とすることができるが、これに限定されない。また各AR空間SP1、SP2において、必ずしも異なる向きとなるように座標系ax1と座標系ax2とを設定する必要はなく、座標系ax1と座標系ax2とが同じ向きとなるように設定してもよい。
【0101】
このような構成により、例えばAR空間において互いに離れた位置から、ARを用いたゲーム等を開始することができる。その結果、ゲーム開始時に各自が相手の位置を確認し易くなる。
【0102】
上記のように各情報処理装置が各自のAR空間において第1座標系から離れた位置に第2座標系を設定する際、例えば座標変換を利用することができる。座標変換は、例えば第1座標系の原点位置及び向きを基準に座標変換行列Tを用いた演算処理を行うことで実現される。これにより、各自のAR空間において第1座標系の原点から第2座標系の原点を所定の距離だけ離間させることができ、また必要に応じて第2座標系の向きを第1座標系から所定角度回転させた向きに設定することができる。その結果、各自のAR空間に第1座標系と第2座標系とをそれぞれ設定することができる。
【0103】
ここで、例えば、各自のAR空間において相手装置(他情報処理装置)の第2座標系を設定せずに、(各自のAR空間における)相手装置の位置を決定しようとした場合には、座標変換行列Tを用いて自分の装置の位置(Xb,Yb,Zb)を相手のAR空間に対応するように座標変換した、T*(Xb,Yb,Zb)のような変換位置情報を相手に送り続けなければならない。そのため、各情報処理装置における情報処理量が膨大となる虞がある。
【0104】
これに対して、本例のように、相手装置(他情報処理装置)が利用する第2座標系を各自のAR空間に設定する場合には、第2座標系における位置(例えば、(Xb', Yb', Zb')等)をそのまま相手装置から受け取るだけで、自分のAR空間における相手装置の位置を決定することができる。同様に自分の座標系に基づく位置情報を相手装置に送るだけで、相手のAR空間における自分の装置の位置を伝え、把握させることができる。そのため、各情報処理装置1における情報処理量が上記の場合(各自のAR空間において相手装置の第2座標系を設定しない場合)に比べて格段に小さくなり、各情報処理装置1の処理負荷を軽減することができる。
【0105】
上記の通り、第1装置1Aと第2装置1Bのそれぞれは、各自のAR空間(所定空間)に第1座標系を設定するとともに、他情報処理装置により利用される第2座標系の原点が第1座標系の原点から離れた位置となるように所定空間に第2座標系を設定することができる。
【0106】
また、第1装置1Aと第2装置1Bのそれぞれは、他情報処理装置から受け取った第2座標系上での他情報処理装置の位置を示す位置情報に基づいて、所定空間での他情報処理装置の位置を決定することができる。
【0107】
第1装置1Aは、上記のように自分のAR空間SP1に2つの座標系を設定した後、第2装置1B(他情報処理装置)から、座標系ax2(第2座標系)上での第2装置1Bの位置を示す位置情報(例えば座標(Xb', Yb', Zb'))を受け取る。第1装置1Aは、この位置情報に基づいて、AR空間SP1上での第2装置1Bの位置を決定する。第1装置1Aは、例えば第2装置1Bから所定の時間間隔で繰返し位置情報を受け取り続けることで、AR空間SP1における第2装置1Bの位置を把握し続けることができる。これにより、第1装置1Aは、例えば、AR空間SP1に第2装置1Bを示すオブジェクトを配置することができる。そして、第1装置1Aは、撮像した実空間の画像に、上記第2装置1Bを示すオブジェクトの画像を重畳表示させることができる。なお、オブジェクトの形状は特に限定されず、任意の形状を採用可能である。
【0108】
同様に、第2装置1Bは、第1装置1A(他情報処理装置)から受け取った座標系ax1(第2座標系)上での第1装置1Aの位置を示す位置情報(例えば座標(Xb'', Yb'', Zb''))に基づいて、AR空間SP2上での第1装置1Aの位置を決定することができる。第2装置1Bは、例えば第1装置1Aから所定の時間間隔で繰返し位置情報を受け取り続けることで、AR空間SP2における第1装置1Aの位置を把握し続けることができる。これにより、第2装置1Bは、例えば、AR空間SP2に第1装置1Aを示すオブジェクトを配置することができる。そして、第2装置1Bは、撮像した実空間の画像に、上記第1装置1Aを示すオブジェクトの画像を重畳表示させることができる。
【0109】
第1装置1Aと第2装置1Bとは、上記のようにして、各自のAR空間SP1、SP2に自分の座標系と相手の座標系を設定することができ、また、各自のAR空間SP1、SP2に仮想的に相手を配置する(相手の位置を決定する)ことができる。即ち、第1装置1Aは、最初に設定したAR空間SP1における座標系ax1と座標系ax2を用いて、各種情報を処理する。一方、第2装置1Bは、最初に設定したAR空間SP2における座標系ax2と座標系ax1を用いて、各種情報を処理する。
【0110】
第1装置1Aと第2装置1Bとは、互いの位置情報等の各種情報を、P2P(peer-to-peer)で相互に授受する。
【0111】
以上説明した第1装置1Aと第2装置1Bとにおける一連の処理は、第1装置1Aと第2装置1Bとのそれぞれにおけるハードウェアとソフトウェアの協働により実現される。この場合、第1装置1Aと第2装置1Bとは、例えば
図4に示す機能的構成を有することができる。
図4は、第1装置1Aと第2装置1Bとのそれぞれにおける機能的構成のうち、上記座標系の設定と、位置決定とを含む一連の処理が実行される際の機能的構成の一例を示す機能ブロック図である。
【0112】
図4に示すように、第1装置1AのCPU21においては、座標系設定部51(座標系設定手段)と、位置決定部52(位置決定手段)と、通信制御部53(通信制御手段)とが機能する。同様に、第2装置1BのCPU21においても、座標系設定部51(座標系設定手段)と、位置決定部52(位置決定手段)と、通信制御部53(通信制御手段)とが機能する。なお、第1装置1A及び/又は第2装置1BのCPU21には、例えばマーカ画像を生成するマーカ画像生成部、及びマーカ画像を表示部に表示させるマーカ画像表示制御部等が設けられていてもよい。
【0113】
以下、
図9を適宜参照しつつ、第1装置1Aと第2装置1Bの各機能ブロックの詳細について説明する。
【0114】
図9は、
図4の機能的構成を有する第1装置1Aと第2装置1Bとの間で実行される一連の処理の一例を説明するアローチャートである。
【0115】
ステップS111において、第1装置1Aの座標系設定部51は、撮像部28により撮像された実空間の撮像画像のデータに基づいて空間認識を行い、構築したAR空間SP1に座標系ax1(
図2)を設定する。次いでステップS112において、第1装置1Aの座標系設定部51は、AR空間SP1における座標系ax1から所定距離Lだけ離れた位置に座標系ax2(
図8)を設定する。
【0116】
上記ステップS111と同様に、ステップS121において、第2装置1Bの座標系設定部51は、撮像部28により撮像された実空間の撮像画像のデータに基づいて空間認識を行い、構築したAR空間SP2に座標系ax2(
図2)を設定する。次いでステップS122において、上記ステップS112と同様に、第2装置1Bの座標系設定部51は、AR空間SP2における座標系ax2から所定距離Lだけ離れた位置に座標系ax1(
図8)を設定する。これにより、第1装置1Aと第2装置1BとはそれぞれのAR空間SP1、SP2に、仮想的に相手装置を(離れた位置に)配置することができる。本例においてステップS111、S112、S121、S122は座標系設定ステップを構成する。
【0117】
ステップS113、S123において、第1装置1A及び第2装置1Bは、互いに情報の授受を行う。具体的に、ステップS113において、第1装置1Aの通信制御部53は、座標系ax1における第1装置1Aの位置情報(座標)等を、通信部30を介して第2装置1Bに送信し、第2装置1Bは通信部30を介して当該情報を受信する。同様に、第2装置1Bは、ステップS123において、座標系ax2における第2装置1Bの位置情報(座標)等を、通信部30を介して第1装置1Aに送信し、第1装置1Aは通信部30を介して当該情報を受信する。なお、ステップS113とステップS123は同時であってもよいし、互いに異なるタイミングであってもよい。互いに異なるタイミングである場合、ステップS113とステップS123はどちらが先でもよい。
【0118】
ステップS114において、第1装置1Aは、ステップS123において第2装置1Bから受け取った座標系ax2上での第2装置1Bの位置を示す位置情報に基づいて、AR空間SP1での第2装置1Bの位置を決定する。
【0119】
ステップS124において、第2装置1Bは、ステップS113において第1装置1Aから受け取った座標系ax1上での第1装置1Aの位置を示す位置情報に基づいて、AR空間SP2での第1装置1Aの位置を決定する。
【0120】
ステップS113、S123及びステップS114、S124は、例えばゲームが終了するまで、継続的に繰り返し行われる。これにより、第1装置1A及び第2装置1Bはそれぞれ、各自のAR空間SP1、SP2での相手の位置を(例えばゲームが終了するまで)把握し続けることができる。本例においてステップS113、S123及びステップS114、S124は位置決定ステップを構成する。
【0121】
以上本発明の一実施形態について説明したが、本発明は、上述の実施形態に限定されるものではなく、本発明の目的を達成できる範囲での変形、改良等は本発明に含まれるものである。
【0122】
例えば、3台以上の情報処理装置1間でARを利用したゲーム等の各種情報処理を実行することも可能である。3台の情報処理装置1間でARを利用したゲーム等の各種情報処理を実行する場合、情報処理装置1のそれぞれは、各自のAR空間内に各自の情報処理装置1の座標系(第1座標系)を設定し、また各自のAR空間内に、他の2台の情報処理装置1の座標系(第2座標系)をそれぞれ設定する。この場合、例えば、正三角形等の仮想の三角形の各頂点となる位置に各座標系の原点を配置し、当該三角形の中心に向けて各座標系のz軸の正方向が向かうように設定することができる。あるいは、3台以上の情報処理装置1間でARを利用したゲーム等の各種情報処理を実行する場合、仮想の円の輪郭線上に、等間隔で各座標系の原点を配置し、当該円の中心に向けて各座標系のz軸の正方向が向かうように設定することも可能である。このような構成により、各情報処理装置1の各AR空間においてバランスよく各座標系を設定することができる。
【0123】
図10は、第1装置1A、第2装置1B、第3装置1C及び第4装置1Dからなる4台の情報処理装置1間でARを利用したゲーム等の各種情報処理を実行する場合における座標系の設定方法の一例を示している。本例において、第1装置1A、第2装置1B、第3装置1C及び第4装置1Dはそれぞれ別の実空間に位置しているものとしている。
【0124】
図10に示すように、第1装置1Aは実空間である部屋等の第1空間R1に位置している。第1装置1Aは、第1空間R1に基づいて第1装置1A内で構築されるAR空間SP1において、まず座標系ax1を設定し、次いで第2装置1Bに利用される座標系ax2、第3装置1Cに利用される座標系ax3及び第4装置1Dに利用される座標系ax4を設定する。座標系ax2の原点O2は、座標系ax1の原点O1からz軸の正方向にL1だけ離れた位置に設定される。座標系ax3の原点O3は、座標系ax1の原点O1からx軸の正方向にL2だけ離れた位置に設定される。また、座標系ax4の原点O4は、座標系ax1の原点O1からz軸の正方向にL1だけ離れ、且つ、x軸の正方向にL2だけ離れた位置に設定される。なお、第2装置1B、第3装置1C及び第4装置1Dのそれぞれも、各自のAR空間において自分の座標系と、他の3台に対応する3つの座標系とをそれぞれ設定する。
【0125】
図10に示す例では、座標系ax2は座標系ax1と向かい合うように設定され、座標系ax3は座標系ax4と向かい合うように設定される。また、座標系ax1と座標系ax3とは同一の方向を向いており、座標系ax2と座標系ax4とは同一の方向を向いている。
【0126】
このような構成とした場合、例えばAR空間SP1において同一の方向を向く第1装置1A(座標系ax1)と第3装置1C(座標系ax3)とを第1のチームとし、第2装置1B(座標系ax2)と第4装置1D(座標系ax4)とを第2のチームとして、チーム同士で対戦することが容易となる。
【0127】
図11は、3台以上の情報処理装置1のうちの、何れかの2台以上の情報処理装置1が同一の実空間にある場合の一例を示している。より具体的に、
図11は、4台の情報処理装置1間でARを利用したゲーム等の各種情報処理を実行する場合であって、同一実空間に2台の情報処理装置1が位置する場合の一例を示している。
図11に示すように、第1装置1Aと第3装置1Cとが、同一の実空間(第1空間R1)に位置しており、第2装置1B及び第4装置1Dはそれぞれ別の実空間に位置している。
【0128】
このような場合には、同一の実空間(第1空間R1)に位置する第1装置1Aと第3装置1Cとが、例えばAR空間SP1を共有することができる。例えば、第1装置1Aと第3装置1Cとは、第1装置1Aの座標系ax1に第3装置1Cの座標系ax3を一致させる(原点の位置と3本の軸の向きを一致させる)ことで、AR空間SP1の共有を図ることができる。同一の実空間(第1空間R1)に位置する第1装置1Aと第3装置1Cとの座標系を一致させる際には、例えば第1装置1Aの表示部に表示させたマーカ画像等のマーカを第3装置1Cの撮像部で読み取ること等により行うことができる。
【0129】
また、
図11に示す場合、第1装置1Aは、先の実施例と同様に、AR空間SP1において座標系ax1を設定するとともに、第2装置1Bに利用される座標系ax2、及び第4装置1Dに利用される座標系ax4を設定する。第2装置1Bは、自分のAR空間に座標系ax2を設定し、また、第1装置1A及び第3装置1Cに利用される座標系ax1、及び第4装置1Dに利用される座標系ax4を設定する。同様に、第4装置1Dは、自分のAR空間に座標系ax4を設定し、また、第1装置1A及び第3装置1Cに利用される座標系ax1、及び第2装置1Bに利用される座標系ax2を設定する。これにより、
図11に示すように、AR空間SP1において4台の情報処理装置1を
図10と同様に仮想的に配置することができる。よって、例えばAR空間SP1において同一の方向を向く第1装置1Aと第3装置1Cとを第1のチームとし、第2装置1Bと第4装置1Dとを第2のチームとして、チーム同士で対戦することが容易となる。
【0130】
また、
図11に示す場合において、第3装置1Cが、自分の位置情報を他情報処理装置(第2装置1Bと第4装置1D)に送信する際には、AR空間SP1における座標系ax1上での位置を利用することができる。このように、同一の実空間(第1空間R1)に位置する第1装置1Aと第3装置1Cとは、共通のAR空間SP1及び共通の座標系ax1を使用することができる。なお、この場合、第1装置1A及び第3装置1Cの何れか一方を親機、他方を子機とすることができる。親機は共有される座標系ax1を最初に設定した情報処理装置1(
図11の例では第1装置1A)とすることができ、子機は親機以外の情報処理装置1(
図11の例では第3装置1C)とすることができる。
【0131】
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示の技術的範囲はかかる例に限定されない。本開示の技術分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
【0132】
本明細書において説明した装置は、単独の装置として実現されてもよく、一部または全部がネットワークで接続された複数の装置(例えばクラウドサーバ)等により実現されてもよい。
【0133】
また、本開示に係る拡張現実システムは、座標系においてユーザの向いている方向を取得する方向取得部を備えることができる。また拡張現実システムは、情報処理装置1の位置及び姿勢を取得する検知部を備えることができる。検知部は、例えば、GPS情報や3軸加速度センサなどのデータに基づいてコンピュータの位置及び姿勢を把握することができる。
【0134】
本明細書において説明した装置による一連の処理は、ソフトウェア、ハードウェア、及びソフトウェアとハードウェアとの組合せのいずれを用いて実現されてもよい。本実施形態に係る情報処理装置1の各機能を実現するためのコンピュータプログラムを作製し、PC等に実装することが可能である。また、このようなコンピュータプログラムが格納された、コンピュータで読み取り可能な記録媒体も提供することができる。記録媒体は、例えば、磁気ディスク、光ディスク、光磁気ディスク、フラッシュメモリ等である。また、上記のコンピュータプログラムは、記録媒体を用いずに、例えばネットワークを介して配信されてもよい。
【0135】
また、本明細書においてフローチャート図を用いて説明した処理は、必ずしも図示された順序で実行されなくてもよい。いくつかの処理ステップは、並列的に実行されてもよい。また、追加的な処理ステップが採用されてもよく、一部の処理ステップが省略されてもよい。
【0136】
また、本明細書に記載された効果は、あくまで説明的または例示的なものであって限定的ではない。つまり、本開示に係る技術は、上記の効果とともに、または上記の効果に代えて、本明細書の記載から当業者には明らかな他の効果を奏しうる。
【0137】
なお、以下のような構成も本開示の技術的範囲に属する。
(項目1)
他情報処理装置との間で情報の授受を行う情報処理装置において、
所定空間に第1座標系を設定するとともに、前記他情報処理装置により利用される第2座標系の原点が前記第1座標系の原点から離れた位置となるように前記所定空間に前記第2座標系を設定する座標系設定手段と、
前記他情報処理装置から受け取った前記第2座標系上での前記他情報処理装置の位置を示す位置情報に基づいて、前記所定空間での前記他情報処理装置の位置を決定する位置決定手段と、を備える情報処理装置。
(項目2)
前記座標系設定手段は、前記所定空間において、前記第2座標系の向きを前記第1座標系とは異なる向きに設定する、項目1に記載の情報処理装置。
(項目3)
実空間を撮影した現実画像に前記他情報処理装置からの前記位置情報に基づく付加画像を重畳表示させた拡張現実画像を生成する画像生成手段をさらに備える、項目1又は2に記載の情報処理装置。
(項目4)
他情報処理装置との間で情報の授受を行う情報処理装置が実行する情報処理方法において、
所定空間に第1座標系を設定するとともに、前記他情報処理装置により利用される第2座標系の原点が前記第1座標系の原点から離れた位置となるように前記所定空間に前記第2座標系を設定する座標系設定ステップと、
前記他情報処理装置から受け取った前記第2座標系上での前記他情報処理装置の位置を示す位置情報に基づいて、前記所定空間での前記他情報処理装置の位置を決定する位置決定ステップと、を含む情報処理方法。
(項目5)
他情報処理装置との間で情報の授受を行う情報処理装置を制御するコンピュータに、
所定空間に第1座標系を設定するとともに、前記他情報処理装置により利用される第2座標系の原点が前記第1座標系の原点から離れた位置となるように前記所定空間に前記第2座標系を設定する座標系設定ステップと、
前記他情報処理装置から受け取った前記第2座標系上での前記他情報処理装置の位置を示す位置情報に基づいて、前記所定空間での前記他情報処理装置の位置を決定する位置決定ステップと、を含む制御処理を実行させるプログラム。
【符号の説明】
【0138】
1 情報処理装置
21 CPU
51 座標系設定部(座標系設定手段)
52 位置決定部(位置決定手段)
53 通信制御部