特許第6348741号(P6348741)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ 任天堂株式会社の特許一覧

特許6348741情報処理システム、情報処理装置、情報処理プログラム、および情報処理方法
<>
  • 特許6348741-情報処理システム、情報処理装置、情報処理プログラム、および情報処理方法 図000002
  • 特許6348741-情報処理システム、情報処理装置、情報処理プログラム、および情報処理方法 図000003
  • 特許6348741-情報処理システム、情報処理装置、情報処理プログラム、および情報処理方法 図000004
  • 特許6348741-情報処理システム、情報処理装置、情報処理プログラム、および情報処理方法 図000005
  • 特許6348741-情報処理システム、情報処理装置、情報処理プログラム、および情報処理方法 図000006
  • 特許6348741-情報処理システム、情報処理装置、情報処理プログラム、および情報処理方法 図000007
  • 特許6348741-情報処理システム、情報処理装置、情報処理プログラム、および情報処理方法 図000008
  • 特許6348741-情報処理システム、情報処理装置、情報処理プログラム、および情報処理方法 図000009
  • 特許6348741-情報処理システム、情報処理装置、情報処理プログラム、および情報処理方法 図000010
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6348741
(24)【登録日】2018年6月8日
(45)【発行日】2018年6月27日
(54)【発明の名称】情報処理システム、情報処理装置、情報処理プログラム、および情報処理方法
(51)【国際特許分類】
   G06T 19/00 20110101AFI20180618BHJP
   A63F 13/803 20140101ALI20180618BHJP
   A63F 13/52 20140101ALI20180618BHJP
   A63F 13/30 20140101ALI20180618BHJP
   A63F 13/213 20140101ALI20180618BHJP
【FI】
   G06T19/00 600
   A63F13/803
   A63F13/52
   A63F13/30
   A63F13/213
【請求項の数】11
【全頁数】23
(21)【出願番号】特願2014-55071(P2014-55071)
(22)【出願日】2014年3月18日
(65)【公開番号】特開2015-176578(P2015-176578A)
(43)【公開日】2015年10月5日
【審査請求日】2017年2月16日
(73)【特許権者】
【識別番号】000233778
【氏名又は名称】任天堂株式会社
(74)【代理人】
【識別番号】100158780
【弁理士】
【氏名又は名称】寺本 亮
(74)【代理人】
【識別番号】100121359
【弁理士】
【氏名又は名称】小沢 昌弘
(74)【代理人】
【識別番号】100130269
【弁理士】
【氏名又は名称】石原 盛規
(72)【発明者】
【氏名】山根 知美
(72)【発明者】
【氏名】石灰 宏壽
【審査官】 千葉 久博
(56)【参考文献】
【文献】 特開2013−192855(JP,A)
【文献】 特開2012−178069(JP,A)
【文献】 特開2010−257123(JP,A)
【文献】 米国特許出願公開第2014/0002359(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 19/00
A63F 9/24,13/00−13/98
(57)【特許請求の範囲】
【請求項1】
第1の情報処理装置と当該第1の情報処理装置と通信可能な第2の情報処理装置とを少なくとも含む情報処理システムであって、
前記第1の情報処理装置は、
第1の撮像装置によって撮像された第1の撮像画像を取得する第1の撮像画像取得手段と、
第1の仮想オブジェクトを配置するための第1の基準を前記第1の撮像画像内から認識する第1の基準認識手段と、
前記第1の基準に基づいて、前記第1の仮想オブジェクトの主観視点から見た現実世界の様子が前記第1の撮像画像となるように当該第1の仮想オブジェクトを配置する第1の配置情報を設定する第1の配置情報設定手段と、
前記第1の配置情報を前記第2の情報処理装置に送信する第1の送信手段と、
前記第1の基準および前記第1の配置情報に基づいて、前記第1の仮想オブジェクトの主観視点から見た現実世界の様子として前記第1の撮像画像を第1の表示装置に表示する第1の表示制御手段とを備え、
前記第2の情報処理装置は、
前記第1の情報処理装置から送信された前記第1の配置情報を取得する第1の取得手段と、
第2の撮像装置によって前記第1の撮像装置とは異なる場所が撮像された第2の撮像画像を取得する第2の撮像画像取得手段と、
前記第1の仮想オブジェクトを少なくとも配置するための第2の基準を前記第2の撮像画像内から認識する第2の基準認識手段と、
前記第2の基準および前記第1の配置情報に基づいて、前記第1の仮想オブジェクトを前記第2の撮像画像内に配置して当該第2の撮像画像を第2の表示装置に表示する第2の表示制御手段とを備える、情報処理システム。
【請求項2】
前記第2の情報処理装置は、
前記第2の基準に基づいて、前記第2の仮想オブジェクトの主観視点から見た現実世界の様子が前記第2の撮像画像となるように当該第2の仮想オブジェクトを配置する第2の配置情報を設定する第2の配置情報設定手段と、
前記第2の配置情報を前記第1の情報処理装置に送信する第2の送信手段とを、さらに備え、
前記第2の表示制御手段は、前記第2の基準および前記第2の配置情報に基づいて、前記第2の仮想オブジェクトの主観視点から見た現実世界の様子として前記第2の撮像画像内に前記第1の仮想オブジェクトが配置された当該第2の撮像画像を前記第2の表示装置に表示し、
前記第1の情報処理装置は、前記第2の情報処理装置から送信された前記第2の配置情報を取得する第2の取得手段を、さらに備え、
前記第1の表示制御手段は、前記第1の基準および前記第2の配置情報に基づいて、前記第2の仮想オブジェクトを前記第1の撮像画像内に配置して当該第1の撮像画像を前記第1の表示装置に表示する、請求項1に記載の情報処理システム。
【請求項3】
前記第1の表示制御手段は、前記第1の仮想オブジェクトの主観視点から見た現実世界の様子が撮像された前記第1の撮像画像となるように前記第1の仮想オブジェクトを前記第1の配置情報に基づいて配置するとともに、当該撮像された前記第1の撮像画像に前記第2の仮想オブジェクトを前記取得した前記第2の配置情報に基づいて配置して、当該配置後の当該第1の撮像画像をリアルタイムに前記第1の表示装置に表示し、
前記第2の表示制御手段は、前記第2の仮想オブジェクトの主観視点から見た現実世界の様子が撮像された前記第2の撮像画像となるように前記第2の仮想オブジェクトを前記第2の配置情報に基づいて配置するとともに、当該撮像された前記第2の撮像画像に前記第1の仮想オブジェクトを前記取得した前記第1の配置情報に基づいて配置して、当該配置後の当該第2の撮像画像をリアルタイムに前記第2の表示装置に表示する、請求項2に記載の情報処理システム。
【請求項4】
前記配置情報は、前記第1の基準から前記仮想オブジェクトを配置する位置および方向を示す情報であるとともに、同じ情報で前記第2の基準から前記仮想オブジェクトを配置する位置および方向を示す情報である、請求項1乃至3の何れか1つに記載の情報処理システム。
【請求項5】
前記第1の基準認識手段は、前記第1の撮像画像内に所定のマーカを被写体とした画像が含まれる場合、当該マーカの画像を前記第1の基準として認識し、
前記第2の基準認識手段は、前記第2の撮像画像内に所定のマーカを被写体とした画像が含まれる場合、当該マーカの画像を前記第2の基準として認識する、請求項1乃至4の何れか1つに記載の情報処理システム。
【請求項6】
前記第1の送信手段は、第1の特定の場所に前記第1の情報処理装置が位置しており、かつ、第2の特定の場所に前記第2の情報処理装置が位置している場合に、前記第1の配置情報を前記第2の情報処理装置に送信することが可能であり、
前記第1の取得手段は、前記第1の特定の場所に前記第1の情報処理装置が位置しており、かつ、前記第2の特定の場所に前記第2の情報処理装置が位置している場合に、前記第1の情報処理装置から送信された前記第1の配置情報を取得することが可能である、請求項1乃至の何れか1つに記載の情報処理システム。
【請求項7】
前記情報処理システムは、さらに第3の情報処理装置を少なくとも含み、
前記第2の特定の場所には、前記第2の情報処理装置の他に少なくとも前記第3の情報処理装置が位置しており、
前記第1の送信手段は、前記第1の配置情報を前記第2の情報処理装置および前記第3の情報処理装置に送信し、
前記第3の情報処理装置は、
前記第1の情報処理装置から送信された前記第1の配置情報を取得する第3の取得手段と、
第3の撮像装置によって前記第2の特定の場所が撮像された第3の撮像画像を取得する第3の撮像画像取得手段と、
前記第1の仮想オブジェクトを前記第3の撮像画像内に配置するための基準として、前記第2の基準を認識する第3の基準認識手段と、
前記第2の基準および前記第1の配置情報に基づいて、前記第1の仮想オブジェクトを前記第3の撮像画像内に配置して当該第3の撮像画像を第3の表示装置に表示する第3の表示制御手段とを備える、請求項に記載の情報処理システム。
【請求項8】
前記第1の特定の場所に位置する前記第1の情報処理装置と前記第2の特定の場所に位置する前記第2の情報処理装置とは、所定のネットワークを介して通信可能に構成される、請求項またはに記載の情報処理システム。
【請求項9】
他の装置と通信可能な情報処理装置であって、
撮像装置によって撮像された第1の撮像画像を取得する撮像画像取得手段と、
第1の仮想オブジェクトを前記第1の撮像画像内に配置するための第1の基準を認識する第1の基準認識手段と、
前記第1の基準に基づいて前記第1の仮想オブジェクトを配置する第1の配置情報を設定する第1の配置情報設定手段と、
前記第1の配置情報を前記他の装置に送信する送信手段と、
第2の基準に基づいて第2の仮想オブジェクトを配置する第2の配置情報を、前記他の装置から取得する取得手段と、
前記第1の基準および前記第1の配置情報に基づいて前記第1の仮想オブジェクトを前記第1の撮像画像内に配置し、前記第1の基準および前記第2の配置情報に基づいて前記第2の仮想オブジェクトを当該第1の撮像画像内に配置して、当該第1の撮像画像を表示装置に表示する表示制御手段とを備える、情報処理装置。
【請求項10】
他の装置と通信可能な情報処理装置に含まれるコンピュータで実行される情報処理プログラムであって、
前記コンピュータを、
撮像装置によって撮像された第1の撮像画像を取得する撮像画像取得手段と、
第1の仮想オブジェクトを前記第1の撮像画像内に配置するための第1の基準を認識する第1の基準認識手段と、
前記第1の基準に基づいて前記第1の仮想オブジェクトを配置する第1の配置情報を設定する第1の配置情報設定手段と、
前記第1の配置情報を前記他の装置に送信する送信手段と、
第2の基準に基づいて第2の仮想オブジェクトを配置する第2の配置情報を、前記他の装置から取得する取得手段と、
前記第1の基準および前記第1の配置情報に基づいて前記第1の仮想オブジェクトを前記第1の撮像画像内に配置し、前記第1の基準および前記第2の配置情報に基づいて前記第2の仮想オブジェクトを当該第1の撮像画像内に配置して、当該第1の撮像画像を表示装置に表示する表示制御手段として機能させる、情報処理プログラム。
【請求項11】
他の装置と通信可能な情報処理装置を少なくとも含む情報処理システムに含まれる1つのプロセッサまたは複数のプロセッサ間の協働により実行される情報処理方法であって、
撮像装置によって撮像された第1の撮像画像を取得する撮像画像取得ステップと、
第1の仮想オブジェクトを前記第1の撮像画像内に配置するための第1の基準を認識する第1の基準認識ステップと、
前記第1の基準に基づいて前記第1の仮想オブジェクトを配置する第1の配置情報を設定する第1の配置情報設定ステップと、
前記第1の配置情報を前記他の装置に送信する送信ステップと、
第2の基準に基づいて第2の仮想オブジェクトを配置する第2の配置情報を、前記他の装置から取得する取得ステップと、
前記第1の基準および前記第1の配置情報に基づいて前記第1の仮想オブジェクトを前記第1の撮像画像内に配置し、前記第1の基準および前記第2の配置情報に基づいて前記第2の仮想オブジェクトを当該第1の撮像画像内に配置して、当該第1の撮像画像を表示装置に表示する表示制御ステップとを含む、情報処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理システム、情報処理装置、情報処理プログラム、および情報処理方法に関し、特に例えば、撮像画像に基づいて所定の処理を行う情報処理システム、情報処理装置、情報処理プログラム、および情報処理方法に関する。
【背景技術】
【0002】
従来、カメラ等の撮像手段によって撮像された画像(撮像画像)から所定の撮像対象を検出し、当該撮像対象に応じて仮想オブジェクトを表示する技術がある(例えば、非特許文献1参照)。例えば、非特許文献1には、拡張現実感技術において、カメラによる撮像画像に含まれるマーカに対して画像認識処理を行い、当該マーカが検出された場合に当該マーカ位置に基づいて仮想オブジェクトを撮像画像に合成して表示することが記載されている。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】加藤博一,Mark Billinghurst,浅野浩一,橘啓八郎、「マーカー追跡に基づく拡張現実感システムとそのキャリブレーション」、日本バーチャルリアリティ学会論文誌 Vol.4 No.4、1999年
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上記非特許文献1に記載の技術は、単に撮像対象に応じた仮想オブジェクトを表示するだけであり、より興趣性を高く仮想オブジェクトを表示するという点では改善の余地がある。
【0005】
それ故に、本発明の目的は、ユーザに対してより興趣性を高めることができる情報処理システム、情報処理装置、情報処理プログラム、および情報処理方法を提供することである。
【課題を解決するための手段】
【0006】
上記目的を達成するために、本発明は例えば以下のような構成を採用し得る。なお、特許請求の範囲の記載を解釈する際に、特許請求の範囲の記載によってのみその範囲が解釈されるべきであることが理解され、特許請求の範囲の記載と本欄の記載とが矛盾する場合には、特許請求の範囲の記載が優先する。
【0007】
本発明の情報処理システムの一構成例は、第1の情報処理装置と当該第1の情報処理装置と通信可能な第2の情報処理装置とを少なくとも含む。第1の情報処理装置は、第1の撮像画像取得手段、第1の基準認識手段、第1の配置情報設定手段、第1の送信手段、および第1の表示制御手段を備える。第1の撮像画像取得手段は、第1の撮像装置によって撮像された第1の撮像画像を取得する。第1の基準認識手段は、第1の仮想オブジェクトを第1の撮像画像内に配置するための第1の基準を認識する。第1の配置情報設定手段は、第1の基準に基づいて第1の仮想オブジェクトを配置する第1の配置情報を設定する。第1の送信手段は、第1の配置情報を第2の情報処理装置に送信する。第1の表示制御手段は、第1の基準および第1の配置情報に基づいて、第1の仮想オブジェクトを第1の撮像画像内に配置して当該第1の撮像画像を第1の表示装置に表示する。第2の情報処理装置は、第1の取得手段、第2の撮像画像取得手段、第2の基準認識手段、および第2の表示制御手段を備える。第1の取得手段は、第1の情報処理装置から送信された第1の配置情報を取得する。第2の撮像画像取得手段は、第2の撮像装置によって第1の撮像装置とは異なる場所が撮像された第2の撮像画像を取得する。第2の基準認識手段は、第1の仮想オブジェクトを第2の撮像画像内に少なくとも配置するための第2の基準を認識する。第2の表示制御手段は、第2の基準および第1の配置情報に基づいて、第1の仮想オブジェクトを第2の撮像画像内に配置して当該第2の撮像画像を第2の表示装置に表示する。
【0008】
上記によれば、第1の表示装置における第1の撮像画像内に表示される第1の仮想オブジェクトが、第2の表示装置における第2の撮像画像内にも表示される。また、第1の撮像画像内に表示される第1の仮想オブジェクトの配置に基づいて、第2の撮像画像内に表示される第1の仮想オブジェクトの配置が制御されるため、ユーザに対して興趣性を高めることができる。また、第1の撮像装置および第2の撮像装置がそれぞれ撮像する現実世界の場所に対して、仮想オブジェクトを配置する共通の空間をそれぞれの場所に生成することができる。
【0009】
また、上記第2の情報処理装置は、第2の配置情報設定手段および第2の送信手段を、さらに備えてもよい。第2の配置情報設定手段は、第2の基準に基づいて第2の仮想オブジェクトを配置する第2の配置情報を設定する。第2の送信手段は、第2の配置情報を第1の情報処理装置に送信する。上記第2の表示制御手段は、第2の基準および第2の配置情報に基づいて、第2の仮想オブジェクトを第2の撮像画像内にさらに配置して当該第2の撮像画像を第2の表示装置に表示してもよい。上記第1の情報処理装置は、第2の取得手段を、さらに備えてもよい。第2の取得手段は、第2の情報処理装置から送信された第2の配置情報を取得する。上記第1の表示制御手段は、第1の基準および第2の配置情報に基づいて、第2の仮想オブジェクトを第1の撮像画像内にさらに配置して当該第1の撮像画像を第1の表示装置に表示してもよい。
【0010】
上記によれば、第2の表示装置における第2の撮像画像内に表示される第2の仮想オブジェクトが、第1の表示装置における第1の撮像画像内にも表示される。また、第2の撮像画像内に表示される第2の仮想オブジェクトの配置に基づいて、第1の撮像画像内に表示される第2の仮想オブジェクトの配置が制御される。したがって、第1の撮像装置および第2の撮像装置がそれぞれ撮像する現実世界の場所に対して、それぞれの情報処理装置によってその配置が制御されている同じ仮想オブジェクトを配置した共通の空間をそれぞれの場所に生成することができるため、ユーザに対してより興趣性を高めることができる。
【0011】
また、上記第1の表示制御手段は、撮像された第1の撮像画像に第1の仮想オブジェクトを第1の配置情報に基づいて配置するとともに、当該撮像された第1の撮像画像に第2の仮想オブジェクトを取得した第2の配置情報に基づいて配置して、当該配置後の当該第1の撮像画像をリアルタイムに第1の表示装置に表示してもよい。上記第2の表示制御手段は、撮像された第2の撮像画像に第2の仮想オブジェクトを第2の配置情報に基づいて配置するとともに、当該撮像された第2の撮像画像に第1の仮想オブジェクトを取得した第1の配置情報に基づいて配置して、当該配置後の当該第2の撮像画像をリアルタイムに第2の表示装置に表示してもよい。
【0012】
上記によれば、第1の情報処理装置によって制御される第1の仮想オブジェクトと第2の情報処理装置によって制御される第2の仮想オブジェクトとが、同じ表示装置にリアルタイムに表示されるため、ユーザに対してより興趣性を高めることができる。
【0013】
また、上記配置情報は、第1の基準から仮想オブジェクトを撮像画像内に配置する位置および方向を示す情報であるとともに、同じ情報で第2の基準から仮想オブジェクトを撮像画像内に配置する位置および方向を示す情報でもよい。
【0014】
上記によれば、第1の基準に基づいて第1の撮像画像内に表示されている仮想オブジェクトを、第2の基準に基づいて第2の撮像画像内にも同じ方向で同じ位置に配置することができる。
【0015】
また、上記第1の基準認識手段は、第1の撮像画像内に所定のマーカを被写体とした画像が含まれる場合、当該マーカの画像を第1の基準として認識してもよい。上記第2の基準認識手段は、第2の撮像画像内に所定のマーカを被写体とした画像が含まれる場合、当該マーカの画像を第2の基準として認識してもよい。
【0016】
上記によれば、現実世界内に所定のマーカを配置することによって、仮想オブジェクトを配置するための基準を容易に準備することができる。
【0017】
また、上記第1の配置情報設定手段は、第1の仮想オブジェクトの主観視点から見た現実世界の様子が第1の撮像画像となるように当該第1の仮想オブジェクトの配置位置を設定して第1の配置情報を設定してもよい。
【0018】
上記によれば、自機が配置制御する仮想オブジェクトの主観視点から見た現実世界画像が表示されるため、当該仮想オブジェクトを操作しているリアリティを高めることができる。
【0019】
また、上記第1の送信手段は、第1の特定の場所に第1の情報処理装置が位置しており、かつ、第2の特定の場所に第2の情報処理装置が位置している場合に、第1の配置情報を第2の情報処理装置に送信することが可能でもよい。上記第1の取得手段は、第1の特定の場所に第1の情報処理装置が位置しており、かつ、第2の特定の場所に第2の情報処理装置が位置している場合に、第1の情報処理装置から送信された第1の配置情報を取得することが可能でもよい。
【0020】
上記によれば、第1の情報処理装置のユーザおよび第2の情報処理装置のユーザをそれぞれ別の特定の場所に誘導するための有効な動機付けとなる。
【0021】
また、上記情報処理システムは、さらに第3の情報処理装置を少なくとも含んでもよい。上記第2の特定の場所には、第2の情報処理装置の他に少なくとも第3の情報処理装置が位置してもよい。上記第1の送信手段は、第1の配置情報を第2の情報処理装置および第3の情報処理装置に送信してもよい。上記第3の情報処理装置は、第3の取得手段、第3の撮像画像取得手段、第3の基準認識手段、および第3の表示制御手段を備えてもよい。第3の取得手段は、第1の情報処理装置から送信された第1の配置情報を取得する。第3の撮像画像取得手段は、第3の撮像装置によって第2の特定の場所が撮像された第3の撮像画像を取得する。第3の基準認識手段は、第1の仮想オブジェクトを第3の撮像画像内に配置するための基準として、第2の基準を認識する。第3の表示制御手段は、第2の基準および第1の配置情報に基づいて、第1の仮想オブジェクトを第3の撮像画像内に配置して当該第3の撮像画像を第3の表示装置に表示する。
【0022】
上記によれば、第2の特定の場所に位置している複数の情報処理装置がそれぞれ表示装置に表示する第1の仮想オブジェクトを、第1の特定の場所に位置している情報処理装置によって表示制御する環境を構築することができる。
【0023】
また、上記第1の特定の場所に位置する第1の情報処理装置と第2の特定の場所に位置する第2の情報処理装置とは、所定のネットワークを介して通信可能に構成されてもよい。
【0024】
上記によれば、所定のネットワークを介して、特定の場所を容易に接続することができ、当該ネットワークを介して仮想オブジェクトを配置する共通の空間をそれぞれの場所に生成することができる。
【0025】
また、本発明は、上記各手段の少なくとも一部を備える情報処理装置、上記各手段の少なくとも一部としてコンピュータを機能させる情報処理プログラムや上記各手段で行われる動作の少なくとも一部を含む情報処理方法の形態で実施されてもよい。
【発明の効果】
【0026】
本発明によれば、ユーザに対して興趣性を高めることができる。また、第1の撮像装置および第2の撮像装置がそれぞれ撮像する現実世界の場所に対して、仮想オブジェクトを配置する共通の空間をそれぞれの場所に生成することができる。
【図面の簡単な説明】
【0027】
図1】複数の情報処理装置5a〜5dを含む情報処理システム1の一例を示すブロック図
図2】情報処理装置5の構成の一例を示すブロック図
図3】情報処理システム1において、アクセスポイントAP1に接続して複数の情報処理装置5aおよび5bを操作する様子の一例を示す図
図4】情報処理システム1において、アクセスポイントAP2に接続して複数の情報処理装置5cおよび5dを操作する様子の一例を示す図
図5】情報処理装置5aに仮想オブジェクトOBJa〜OBJdが表示された一例を示す図
図6】各仮想オブジェクトOBJa〜OBJdに対して設定されるプレイヤオブジェクト設定データの一例を説明するための図
図7】情報処理装置5のメモリ56に記憶される主なデータおよびプログラムの一例を示す図
図8】情報処理装置5(CPU55)において実行される情報処理の前半の一例を示すフローチャート
図9】情報処理装置5(CPU55)において実行される情報処理の後半の一例を示すフローチャート
【発明を実施するための形態】
【0028】
図1および図2を参照して、本発明の一実施形態に係る情報処理プログラムを実行する情報処理装置を含む情報処理システムおよび当該情報処理装置について説明する。なお、図1は、複数の情報処理装置5a〜5dを含む情報処理システム1の一例を示すブロック図である。図2は、情報処理装置5の構成の一例を示すブロック図である。
【0029】
図1に示すように、情報処理システム1は、複数の情報処理装置5aおよび5bと複数の情報処理装置5cおよび5dとが遠隔配置されており、アクセスポイントAP1、アクセスポイントAP2、およびネットワーク100(例えば、インターネット)を介してそれぞれの情報処理装置群の間が接続されて構築される。例えば、情報処理装置5aおよび5bは、無線通信を用いて、アクセスポイントAP1を介してネットワーク100に接続可能にそれぞれ構成されている。また、情報処理装置5cおよび5dは、無線通信を用いて、アクセスポイントAP2を介してネットワーク100に接続可能にそれぞれ構成されている。そして、情報処理装置5aおよび5bと情報処理装置5cおよび5dとは、ネットワーク100を介して、他方との接続を確立することによって、互いに無線通信が可能となる。また、情報処理装置群内(図1の例では、情報処理装置5aと情報処理装置5bとの間、または情報処理装置5cと情報処理装置5dとの間)においても、無線通信を用いて、アクセスポイントAP1またはAP2を介して、情報処理装置5の間が接続可能に構成されている。
【0030】
例えば、情報処理装置5は、交換可能なメモリカードや光ディスク等の記録媒体内に記憶された、または、サーバや他の装置から受信されたプログラムを実行可能である。情報処理装置5は、携帯ゲーム装置であってもよく、一般的なパーソナルコンピュータ、携帯電話機、PDA(Personal Digital Assistant)等のデバイスであってもかまわない。
【0031】
図2に示すように、情報処理装置5は、撮像部50、操作部51、LCD52、CPU55、メモリ56、プログラム記憶部57、および通信部58等を備える。なお、情報処理装置5は、CPU55を少なくとも含む情報処理装置と他の装置とを含む1以上の装置によって構成されてもよい。
【0032】
CPU55は、各種の情報処理を実行するための情報処理手段(コンピュータ)の一例である。CPU55は、各種の情報処理として、通信部58を介して他の情報処理装置5から送信されたデータを受信し、当該データに応じた処理等を実行する機能を有する。また、CPU55は、各種の情報処理として、他の情報処理装置5へ送信するデータ(例えば、プレイヤオブジェクト設定データ)を作成して、通信部58を介して当該データを送信する処理等を実行する機能を有する。例えば、CPU55が所定のプログラムを実行することによって、上記機能が実現される。本実施形態においては、情報処理装置5は、特定のアクセスポイントAPを介して他の情報処理装置5と通信して所定のゲームプレイが可能となり、通信部58を用いて特定のアクセスポイントAPと通信可能となった場合に他の情報処理装置5と通信を行って当該ゲームを開始する。
【0033】
また、CPU55は、各種の情報処理として、撮像部50によって撮像された撮像画像や操作部51に対するユーザの操作に応じた処理等を実行する機能を有する。本実施形態においては、撮像部50が撮像した撮像画像内に所定のマーカ画像が含まれる場合、CPU55は、当該マーカ画像の表示位置に基づいた配置位置に仮想オブジェクトを当該撮像画像に合成してLCD52に表示する表示制御処理を行う。
【0034】
メモリ56は、CPU55が上記処理を実行する際に用いる各種のデータを記憶する。メモリ56は、例えばCPU55がアクセス可能なメモリである。
【0035】
プログラム記憶部57は、プログラムを記憶(格納)する。プログラム記憶部57は、CPU55がアクセス可能な記憶装置(記憶媒体)であればどのようなものであってもよい。例えば、プログラム記憶部57は、CPU55を含む情報処理装置5内に設けられる記憶装置であってもよいし、CPU55を含む情報処理装置5に着脱自在に装着される記憶媒体であってもよい。また、プログラム記憶部57は、CPU55とネットワークを介して接続される記憶装置(サーバ等)であってもよい。CPU55は、プログラムの一部または全部を適宜のタイミングでメモリ56に読み出し、読み出されたプログラムを実行するようにしてもよい。
【0036】
操作部51は、ユーザによって操作可能な入力装置である。操作部51は、どのような入力装置であってもよい。例えば、操作部51は、操作ボタン、スティック、タッチパネル等の入力装置でもいいし、ジャイロセンサや加速度センサ等の姿勢センサを備えていてもよい。
【0037】
LCD52は、情報処理装置5が備える表示部の一例であり、CPU55の指示にしたがって画像を表示する。なお、LCD52は、実質的に同一の表示領域を用いて左目用画像と右目用画像とを表示して、立体視可能な表示装置であってもよい。
【0038】
例えば、撮像部50は、情報処理装置5のハウジング外面に固設され、LCD52の画面奥行方向を撮像方向とするカメラを含む。上記カメラは、CPU55と接続されており、CPU55の指示にしたがって画像を撮像し、撮像した画像データをCPU55に出力する。上記カメラは、所定の解像度を有する撮像素子(例えば、CCDイメージセンサやCMOSイメージセンサ等)と、レンズとを含む。なお、レンズは、ズーム機構を有するものでもよい。また、上記カメラは、撮像方向が左右平行となるように固設された2つの撮像部によってステレオカメラを構成してもかまわない。
【0039】
本実施形態において、情報処理装置5は、それぞれ通信パケットの送受信を行うことで、特定のアクセスポイントAPと接続する他の情報処理装置5と通信を行う。情報処理装置5は、情報処理装置5のユーザによって操作可能であり、他の情報処理装置5で表示される画像を制御するデータを当該他の情報処理装置5へ送信するとともに、他の情報処理装置5から送信されたデータに応じた処理を行う。例えば、情報処理装置5は、撮像画像に合成して他の情報処理装置5のLCD52に表示される仮想オブジェクトを制御するためのデータ(プレイヤオブジェクト設定データ)を生成して、当該データを特定のアクセスポイントAPと接続する他の情報処理装置5に送信する処理を行う。また、情報処理装置5は、他の情報処理装置5から送信されたプレイヤオブジェクト設定データを受信して、他の情報処理装置5で設定された仮想オブジェクトに関する情報(例えば、仮想オブジェクトの種別、位置、方向、移動速度等を示す情報)を取得する。
【0040】
次に、情報処理装置5が行う具体的な処理を説明する前に、図3図6を用いて情報処理システム1において行われる処理の概要の一例について説明する。図3は、情報処理システム1において、アクセスポイントAP1に接続して複数の情報処理装置5aおよび5bを操作する様子の一例を示す図である。図4は、情報処理システム1において、アクセスポイントAP2に接続して複数の情報処理装置5cおよび5dを操作する様子の一例を示す図である。図5は、情報処理装置5aに仮想オブジェクトOBJa〜OBJdが表示された一例を示す図である。図6は、各仮想オブジェクトOBJa〜OBJdに対して設定されるプレイヤオブジェクト設定データの一例を説明するための図である。
【0041】
図3において、現実世界の部屋に特定のアクセスポイントAP1が設置されている。また、アクセスポイントAP1が設置されている場所の床面には、マーカMが配置されたレースコースAが描かれている。マーカMは、一例として矩形の枠内に所定の図形や文字が描かれている。そして、アクセスポイントAP1が設置されている場所には、情報処理装置5aを操作するユーザAと情報処理装置5bを操作するユーザBとが訪れている。なお、図3において記載されたレースコースAを走行している仮想オブジェクトOBJa〜OBJdは、情報処理装置5aのLCD52または情報処理装置5bのLCD52を介して見える画像を概念的に示したものであり、これらについては後述する。
【0042】
図4において、アクセスポイントAP1が設置されている場所とは異なる場所(例えば、アクセスポイントAP1が設置された場所の遠隔地や隣接する場所)に特定のアクセスポイントAP2が設置されている。また、アクセスポイントAP2が設置されている場所の床面にも、マーカMが配置されたレースコースBが描かれている。ここで、レースコースBは、レースコースAと同一の形状であり、マーカMとの位置関係もレースコースAと同じになるように配置されている。また、本実施例では、アクセスポイントAP2が設置されている場所に配置されているマーカMは、アクセスポイントAP1が設置されている場所に配置されているマーカMと同じものである。そして、アクセスポイントAP2が設置されている場所には、情報処理装置5cを操作するユーザCと情報処理装置5dを操作するユーザDとが訪れている。なお、図4において記載されたレースコースBを走行している仮想オブジェクトOBJa〜OBJdも、情報処理装置5cのLCD52または情報処理装置5dのLCD52を介して見える画像を概念的に示したものであり、これらについては後述する。
【0043】
情報処理装置5a〜5dのユーザA〜Dがそれぞれ撮像部50を用いて現実世界を撮像した場合、CPU55は、撮像部50から取得される撮像画像に対して例えばパターンマッチング等の画像処理を行うことによって、当該撮像画像にマーカMが含まれているか否かを判定する。そして、撮像部50によってマーカMが撮像されている場合、現実世界画像としてマーカMが被写体として含まれている撮像画像がLCD52に表示されるとともに、現実世界画像に含まれるマーカ画像Mの表示位置に基づいた位置に仮想オブジェクトOBJがLCD52に合成表示される。
【0044】
例えば、図5に示すように、情報処理装置5aのユーザAが撮像部50を用いて床面のマーカMを含む現実世界を撮像した場合、現実世界画像に含まれるマーカ画像Mの表示位置に基づいた位置(例えば、レースコースA上)に仮想オブジェクトOBJa〜OBJdがLCD52に合成表示される。
【0045】
本実施例では、撮像画像に合成される仮想オブジェクトOBJaは、情報処理装置5aのユーザAによって操作されるプレイヤオブジェクトであり、ユーザAの操作に応じて、その種別と動作とが制御される。例えば、情報処理装置5aは、マーカMの位置を原点としてマーカMを含む仮想平面上に、マーカMが撮像されているサイズに応じた大きさで仮想オブジェクトOBJaを配置して現実世界画像に合成する。そして、情報処理装置5aは、情報処理装置5aの操作部51に対するユーザ操作に応じて、上記仮想平面上で仮想オブジェクトOBJaを移動させる。
【0046】
一方、撮像画像に合成される仮想オブジェクトOBJb〜OBJdは、アクセスポイントAP1および/またはAP2を介して、他の情報処理装置5から送信されるデータに基づいてその種別と動作とが制御される。ここで、アクセスポイントAP1およびAP2は、情報処理装置5との無線通信が可能となる通信範囲をそれぞれ有している。情報処理装置5がアクセスポイントAP1の通信範囲内またはアクセスポイントAP2の通信範囲内に進入した場合、情報処理装置5とアクセスポイントAP1またはAP2との間における無線通信の接続を確立する処理が自動的またはユーザ操作に応じて行われる。そして、特定のアクセスポイントAP1と接続した情報処理装置5に設定されている送信用データ(プレイヤオブジェクト設定データ)が、特定のアクセスポイントAP1またはAP2と接続した他の情報処理装置5へ送信される。また、特定のアクセスポイントAP2と接続した情報処理装置5に設定されている送信用データが、特定のアクセスポイントAP1またはAP2と接続した他の情報処理装置5へ送信される。つまり、図4図5に示した例では、特定のアクセスポイントAP1と接続した情報処理装置5aの送信用データは、特定のアクセスポイントAP2と接続した情報処理装置5cおよび5dと、特定のアクセスポイントAP1と接続した情報処理装置5bとに送信される。また、特定のアクセスポイントAP2と接続した情報処理装置5cの送信用データは、特定のアクセスポイントAP1と接続した情報処理装置5aおよび5bと、特定のアクセスポイントAP2と接続した情報処理装置5dとに送信される。
【0047】
各情報処理装置5は、送信先となる他の情報処理装置5に対して、自機のユーザが操作しているプレイヤオブジェクトである仮想オブジェクトOBJの種別、位置、方向、移動速度等を示すデータ(プレイヤオブジェクト設定データ)等をそれぞれ送信する。例えば、図5の例では、ユーザAが操作するプレイヤオブジェクト(仮想オブジェクトOBJa)に加えて、情報処理装置5b〜5dから送信されたプレイヤオブジェクト設定データに応じて、ユーザB〜Dがそれぞれ操作する仮想オブジェクトOBJb〜OBJdが情報処理装置5aのLCD52に表示されている。このような場合、情報処理装置5aは、自機のユーザが操作しているプレイヤオブジェクトである仮想オブジェクトOBJaの種別、位置、方向、移動速度等を示すプレイヤオブジェクト設定データを、情報処理装置5b〜5dに送信するとともに、仮想オブジェクトOBJb〜OBJdの種別、位置、方向、移動速度等を示すプレイヤオブジェクト設定データを、他の情報処理装置5b〜5dからそれぞれ受信している。
【0048】
例えば、図6に示すように、上記プレイヤオブジェクト設定データによって設定される仮想オブジェクトOBJの位置、方向、移動速度等を示す情報は、マーカ座標系を用いて算出される。ここで、マーカ座標系は、実世界におけるマーカMの位置を原点とし、マーカMの縦方向、横方向、および法線方向の各方向を各軸とする座標系である。例えば、ユーザAが操作する仮想オブジェクトOBJaの位置Paは、マーカ座標系の座標(Xa,Ya,Za)で表される。また、仮想オブジェクトOBJaの方向および移動速度は、マーカ座標系におけるベクトルVaで表される。同様に、ユーザBが操作する仮想オブジェクトOBJbの位置Pb、方向、および移動速度は、マーカ座標系の座標(Xb,Yb,Zb)およびベクトルVbで表される。また、ユーザCが操作する仮想オブジェクトOBJcの位置Pc、方向、および移動速度は、マーカ座標系の座標(Xc,Yc,Zc)およびベクトルVcで表される。また、ユーザDが操作する仮想オブジェクトOBJdの位置Pd、方向、および移動速度は、マーカ座標系の座標(Xd,Yd,Zd)およびベクトルVdで表される。
【0049】
このようなマーカ座標系で表された座標およびベクトルは、撮像画像におけるマーカMの位置および姿勢に基づいた撮像部50とマーカMとの位置関係によって算出されたマーカ・カメラ変換行列を用いて、現実世界画像における座標(撮像座標系)に変換することができる。ここで、マーカ・カメラ変換行列は、撮像画像におけるマーカMの位置および姿勢に基づいて算出される撮像部50の位置および姿勢を反映した行列である。より正確には、マーカ座標系で表された座標を、撮像画像におけるマーカMの位置および姿勢に基づいて計算された撮像部50の位置および姿勢を基準とした撮像座標系で表される座標へと変換するための座標変換行列である。ここで、コンピュータによるAR(Augmented Reality)技術では、マーカ座標系を撮像座標系に変換する上記マーカ・カメラ変換行列を仮想カメラのビュー行列に指定することにより、現実世界画像(撮像画像)にCG画像(マーカ座標系によって仮想オブジェクトOBJa〜OBJdが配置された仮想世界画像)を合成することができる。
【0050】
このように、特定のアクセスポイントAP1と接続した情報処理装置5aおよび5bでは、マーカMを基準とした仮想空間が合成された現実世界画像がそれぞれのLCD52に表示され、当該仮想空間には他の場所に配置されている情報処理装置5が制御している仮想オブジェクトも配置されている。一方、特定のアクセスポイントAP2と接続した情報処理装置5cおよび5dでも、マーカMを基準とした同じ仮想空間が合成された現実世界画像がそれぞれのLCD52に表示され、当該仮想空間には他の場所に配置されている情報処理装置5が制御している仮想オブジェクトも配置されている。つまり、情報処理装置5のLCD52を介して、特定のアクセスポイントAP1が配置されている場所と特定のアクセスポイントAP2が配置されている場所とにそれぞれマーカMを基準とした同じ仮想空間が生成される。また、それぞれの仮想空間には、同じ仮想オブジェクトOBJが同様の動作で動くように制御されている。このように、情報処理システム1は、離れた場所に共通の仮想空間をそれぞれ生成し、当該仮想空間が合成された現実世界画像をそれぞれの場所の情報処理装置5に表示することができる。したがって、情報処理システム1を用いることによって、異なる場所を撮像した画像に共通の仮想空間を合成して利用するARゲームをリアルタイムで行うことができる。また、このようなイベントが可能なアクセスポイントを特定のアクセスポイントAP1およびAP2に絞ることによって、特定の場所(特定のアクセスポイントAP1またはAP2の設置場所)にユーザを誘導するための有効な動機付けとなる。
【0051】
なお、仮想オブジェクトOBJの画像データは、情報処理装置5がアクセスポイントAPと接続されることに応じて当該仮想オブジェクトOBJを操作する情報処理装置5から適宜送信されてもいいし、送信先となる情報処理装置5に予め格納されていてもかまわない。一例として、各情報処理装置5に仮想オブジェクトOBJを構成するパーツが予め格納されている場合、仮想オブジェクトOBJの種別および/または動作を設定する際に、各パーツの選択情報および各パーツの位置、方向、大きさを示す情報が設定されて、当該設定を示すデータが他の情報処理装置5へ送信される。そして、送信先の情報処理装置5において、予め格納されている仮想オブジェクトOBJのパーツを受信データに基づいて配置することによって、送信元の設定に基づいた仮想オブジェクトOBJの画像データが生成される。
【0052】
また、撮像画像からマーカMを検出することによって出現する仮想オブジェクトOBJは、一例として、特定のアクセスポイントAPと接続された場合のみLCD52に表示可能に構成されてもよい。また、他の例として、特定のアクセスポイントAPと接続された場合のみ特別なオブジェクトが仮想オブジェクトOBJとしてLCD52に表示されてもよい。前者の場合、マーカMを撮像しただけでは仮想オブジェクトOBJが表示されないため、ユーザは、仮想オブジェクトOBJを表示するためにはマーカMが設置されている特定のアクセスポイントAPの通信範囲内に行く必要がある。後者の場合も、マーカMを撮像しただけでは特別なオブジェクトが仮想オブジェクトOBJとして表示されないため、ユーザは、特別なオブジェクトを利用するためにはマーカMが設置されている特定のアクセスポイントAPの通信範囲内に行く必要がある。したがって、何れの場合も特定のアクセスポイントAPと情報処理装置5とが通信を確立する必要があるため、特定の場所(特定のアクセスポイントAP設置場所)にユーザを誘導するための有効な動機付けとなる。
【0053】
また、仮想オブジェクトOBJの動作は、送信先となる情報処理装置5側で設定されてもよい。例えば、送信先の情報処理装置5が仮想オブジェクトOBJ(プレイヤオブジェクト)を操作する操作データ自体を受信した場合、送信先の情報処理装置5において当該操作データから当該仮想オブジェクトOBJの動作を算出して送信元の仮想オブジェクトOBJの動作を設定してもよい。
【0054】
また、情報処理装置5のユーザが操作する仮想オブジェクトOBJが当該情報処理装置5のLCD52には表示されなくてもよい。第1の例として、情報処理装置5のユーザが操作する仮想オブジェクトOBJ(プレイヤオブジェクト)の主観視点から見た仮想空間を現実世界画像に合成して、当該情報処理装置5のLCD52に表示してもよい。この場合、上記仮想空間におけるプレイヤオブジェクトの位置や方向は、現実世界におけるマーカMと撮像部50との位置関係に応じて決定してもよい。なお、現実世界におけるマーカMと撮像部50との位置関係は、当該撮像部50で撮像された撮像画像を解析することによって算出されてもいいし、情報処理装置5に設けられている姿勢センサ(加速度センサやジャイロセンサ)等から算出される情報処理装置5本体の姿勢や動きに基づいて算出されてもよい。第2の例として、情報処理装置5のユーザが仮想オブジェクトOBJを操作することなく、当該情報処理装置5を用いて仮想空間の様子を見るだけでもよい。この場合、情報処理装置5は、他の情報処理装置5へプレイヤオブジェクト設定データを送信しなくてもよいが、他の情報処理装置5からプレイヤオブジェクト設定データを受信することになる。そして、情報処理装置5には、受信したプレイヤオブジェクト設定データに応じた仮想オブジェクトOBJが配置された仮想空間が合成された現実世界画像がLCD52に表示され、当該情報処理装置5のユーザは、当該仮想空間を傍観する観客となる。
【0055】
また、上述した情報処理システム1では、仮想オブジェクトOBJを現実世界画像内に配置して合成するために現実世界に同じマーカMをそれぞれの場所に配置しているが、異なるマーカをそれぞれの場所に配置してもいいし、マーカM自体がなくてもかまわない。第1の例として、マーカMを設置しない場合、それぞれの場所を撮像した現実世界画像内に仮想オブジェクトOBJを配置するための基準をそれぞれ設ければよく、例えば現実世界における所定の形状や所定の物体(例えば、矩形の机上面)を当該基準としてもよい。この場合、パターンマッチング等の画像処理を行うことによって上記所定の形状や所定の物体を撮像画像から検出し、当該検出された基準に基づいて、現実世界画像内に仮想オブジェクトOBJを配置することができる。第2の例として、情報処理装置5がGPS(Global Positioning System)機能を有している場合、GPSから取得した位置情報と付加的な情報(例えば、磁気センサによる情報処理装置5の方位を示す情報や加速度センサやジャイロセンサによる情報処理装置5本体の姿勢や動作を示す情報)とを用いて現実世界画像内に仮想オブジェクトOBJを配置する、いわゆるロケーションベースARを用いてもよい。第3の例として、情報処理装置5がアクセスポイントとの無線通信の際の電波強度を検出する機能を有している場合、当該機能によって検出された各アクセスポイントとの電波強度と各アクセスポイントの設置位置とに基づいて算出されたアクセス位置を上記位置情報として、現実世界画像内に仮想オブジェクトOBJを配置してもよい。
【0056】
また、上述した実施例では、アクセスポイントAP1が設置されている場所の床面にマーカMが配置されたレースコースAが描かれ、アクセスポイントAP2が設置されている場所の床面にもマーカMが配置された同一形状のレースコースBが描かれている例を説明したが、これらのレースコースAおよびBは、現実世界画像内に合成することによってLCD52に表示されてもよい。例えば、各仮想オブジェクトOBJと同様に仮想オブジェクトOBJが配置されるマーカ座標系の仮想空間内の背景画像としてレースコースを描画し、マーカ・カメラ変換行列を用いて当該レースコース画像も現実世界画像における座標(撮像座標系)に変換することによって、現実世界画像内に合成して表示することができる。
【0057】
また、上述した実施例では、ユーザ入力(操作入力等)に応じて仮想オブジェクトOBJの種別や動作が設定されるが、仮想オブジェクトOBJに関する他の表示態様が設定されてもよい。例えば、ユーザ入力に応じて仮想オブジェクトOBJの大きさ、数、色、濃度、明度等が設定されてもよい。
【0058】
また、上述した実施例では、特定のアクセスポイントを設定することによって、当該特定のアクセスポイントの通信可能範囲を、ユーザを誘導する特定の場所として設定しているが、他の方法によって特定の場所を設定してもかまわない。一例として、情報処理装置5がGPS機能を有している場合、当該GPS機能によって算出された地球上の位置に基づいて、情報処理装置5が特定の場所からアクセスしているか否かを判定してもよい。他の例として、情報処理装置5がアクセスポイントとの無線通信の際の電波強度を検出する機能を有している場合、当該機能によって検出された各アクセスポイントとの電波強度と各アクセスポイントの設置位置とに基づいて算出されたアクセス位置に基づいて、情報処理装置5が特定の場所からアクセスしているか否かを判定してもよい。また、自機が設置されている位置を示す位置情報を発信する装置(例えば、ビーコンで当該位置情報を発信する機器)を用いて、情報処理装置5が特定の場所からアクセスしているか否かを判定してもよい。例えば、情報処理装置5が他の装置から位置情報を受信した場合、当該受信した位置情報に基づいて、情報処理装置5が特定の場所からアクセスしているか否かを判定してもよい。
【0059】
また、上述した実施例では、同じアクセスポイントAPの通信可能範囲内に配置されている情報処理装置5同士が、当該アクセスポイントAPを介してデータ送受信する態様を用いたが、当該情報処理装置5が直接データを送受信してもよい。
【0060】
また、上述した情報処理システム1では、現実世界画像(撮像画像)に仮想オブジェクトOBJの画像を合成する処理を合成した画像を表示制御する装置で行っているが、仮想オブジェクトOBJを制御している装置側で当該処理を行ってもよい。例えば、合成した画像を表示制御する装置は、当該装置で撮像された撮像画像を、仮想オブジェクトOBJを制御している装置へ送信する。そして、仮想オブジェクトOBJを制御している装置は、送信された撮像画像内に仮想オブジェクトOBJを表示させる合成処理を行って、当該撮像画像を送信した装置へ当該合成処理後の画像を送信する。
【0061】
次に、情報処理装置5において行われる処理の詳細を説明する。まず、図7を参照して、処理において用いられる主なデータについて説明する。なお、図7は、情報処理装置5のメモリ56に記憶される主なデータおよびプログラムの一例を示す図である。
【0062】
図7に示すように、メモリ56のデータ記憶領域には、操作データDa、撮像画像データDb、プレイヤオブジェクト設定データDc、他オブジェクト設定データDd、および仮想オブジェクト画像データDe等が記憶される。なお、メモリ56には、図7に示すデータの他、実行するアプリケーションで用いるデータ等、処理に必要なデータ等が記憶されてもよい。また、メモリ56のプログラム記憶領域には、情報処理プログラムを構成する各種プログラム群Paが記憶される。
【0063】
操作データDaは、情報処理装置5のユーザ操作に応じて設定されるデータであり、操作部51に対する操作内容を示すデータである。撮像画像データDbは、撮像部50によってリアルタイムに撮像された撮像画像を示すデータであり、撮像される毎に逐次更新される。
【0064】
プレイヤオブジェクト設定データDcは、情報処理装置5のユーザによって操作されるプレイヤオブジェクト(仮想オブジェクトOBJ)に関して設定されるデータであり、種別データDc1、位置データDc2、および移動データDc3等を含む。種別データDc1は、プレイヤオブジェクト(仮想オブジェクトOBJ)の種類を設定するために用いられるデータである。位置データDc2は、現実世界画像に合成される仮想空間におけるプレイヤオブジェクト(仮想オブジェクトOBJ)の位置を示すデータであり、例えばマーカ座標系の座標データによって示される。移動データDc3は、仮想空間におけるプレイヤオブジェクト(仮想オブジェクトOBJ)の移動方向や移動速度を示すデータであり、例えばマーカ座標系のベクトルデータによって示される。
【0065】
他オブジェクト設定データDdは、他の情報処理装置5から受信したデータであり、種別データDd1、位置データDd2、および移動データDd3等を含む。種別データDd1は、他の情報処理装置5によって制御されている仮想オブジェクトOBJの種類を設定するために用いられるデータである。位置データDd2は、他の情報処理装置5によって制御されている仮想オブジェクトOBJの上記仮想空間における位置を示すデータであり、例えばマーカ座標系の座標データによって示される。移動データDc3は、他の情報処理装置5によって制御されている仮想オブジェクトOBJの上記仮想空間における移動方向や移動速度を示すデータであり、例えばマーカ座標系のベクトルデータによって示される。
【0066】
仮想オブジェクト画像データDeは、仮想オブジェクトOBJの画像を生成してLCD52に表示するためのデータである。
【0067】
次に、図8および図9を参照して、情報処理装置5において行われる処理の詳細を説明する。なお、図8は、情報処理装置5(CPU55)において実行される情報処理の前半の一例を示すフローチャートである。図9は、情報処理装置5(CPU55)において実行される情報処理の後半の一例を示すフローチャートである。ここで、図8および図9に示すフローチャートにおいて、上述した情報処理システム1に含まれる情報処理装置5の処理のうち、撮像画像内に所定のマーカが検出された場合に仮想オブジェクトOBJを登場させてLCD52に表示する処理について主に説明し、これらの処理と直接関連しない他の処理については詳細な説明を省略する。本実施形態においては、図8および図9に示す一連の処理は、CPU55が、プログラム記憶部57に記憶される情報処理プログラムを実行することによって行われる。
【0068】
なお、図8および図9に示す情報処理が開始されるタイミングは任意である。例えば、当該情報処理を開始する指示をユーザが行ったことに応じてアクセスポイントとの接続が確立されるとともに、情報処理プログラムの実行が開始されてもよい。このとき、情報処理プログラムは、適宜のタイミングでその一部または全部がメモリ56に読み出され、CPU55によって実行される。これによって、図8および図9に示す一連の処理が開始される。なお、情報処理プログラムは、情報処理装置5内のプログラム記憶部57に予め記憶されているものとする。ただし、他の実施形態においては、情報処理装置5に着脱可能な記憶媒体から取得されてメモリ56に記憶されてもよいし、インターネット等のネットワークを介して他の装置から取得されてメモリ56に記憶されてもよい。
【0069】
また、図8および図9に示すフローチャートにおける各ステップの処理は、単なる一例に過ぎず、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよいし、各ステップの処理に加えておよび/または代えて別の処理が実行されてもよい。また、本実施例では、上記フローチャートにおける一部のステップの処理をCPU55が実行し、その他のステップの処理をCPU55以外のプロセッサや専用回路が実行するようにしてもよく、上記フローチャートにおける全部のステップの処理をCPU55以外のプロセッサや専用回路が実行するようにしてもよい。
【0070】
図8において、CPU55は、情報処理における初期処理を実行し(ステップ81)、次のステップに処理を進める。例えば、CPU55は、上記ステップ81において、当該情報処理で用いられる各パラメータを初期化する。
【0071】
次に、CPU55は、撮像部50から出力される撮像画像を示す撮像画像データを取得し(ステップ82)、次のステップに処理を進める。例えば、CPU55は、新たに所得した撮像画像を表す撮像画像データをメモリ56に撮像画像データDbとして記憶する。
【0072】
次に、CPU55は、操作部51に対する操作内容を示す操作データを取得し(ステップ83)、次のステップに処理を進める。例えば、CPU55は、新たに取得した操作データをメモリ56に操作データDa3としてそれぞれ記憶する。
【0073】
次に、CPU55は、上記ステップ82で取得した撮像画像データを用いて撮像画像認識処理を行い(ステップ84)、当該撮像画像データが表す撮像画像内にマーカMが含まれているか否かを判定する(ステップ85)。そして、CPU55は、上記撮像画像内にマーカMが含まれている場合、ステップ86に処理を進める。一方、CPU55は、上記撮像画像内にマーカMが含まれていない場合、ステップ91(図9参照)に処理を進める。以下、上記ステップ84およびステップ85で行う撮像画像認識処理の一例について説明する。
【0074】
例えば、CPU55は、パターンマッチング手法等によって撮像画像データが表す撮像画像に対する画像認識処理を行い、当該撮像画像内にマーカMが含まれているか否かを判定する。そして、CPU55は、撮像画像にマーカMが含まれている場合には、撮像部50の撮像範囲内にマーカMが現実世界で実在していると仮定し、当該撮像画像におけるマーカMの位置および姿勢に基づいて、撮像部50とマーカMとの位置関係を算出する。一例として、CPU55は、上記撮像画像におけるマーカMの位置および/または姿勢を認識することによってマーカ・カメラ変換行列を算出し、当該マーカ・カメラ変換行列を表す画像認識結果データをメモリ56に記憶する。上述したように、コンピュータによるAR技術では、マーカ座標系を撮像座標系に変換する上記マーカ・カメラ変換行列を仮想カメラのビュー行列に指定することにより、現実世界画像(撮像画像)にCG画像(仮想世界画像)を合成することができる。
【0075】
ステップ86において、CPU55は、仮想オブジェクトに関する設定情報および画像認識されたマーカMに応じて、出現させる仮想オブジェクトOBJを表す仮想オブジェクト画像を生成し、ステップ91(図9参照)に処理を進める。例えば、CPU55は、画像認識されたマーカMの種類およびプレイヤオブジェクト設定データDcや他オブジェクト設定データDdに設定されている設定情報(例えば、種別データDc1、移動データDc3、種別データDd1、および移動データDd3)に応じて、出現させる仮想オブジェクトOBJの種別、姿勢、動作等を設定する。そして、CPU55は、位置データDc2および位置データDd2を参照して、上記マーカ座標系で定義される仮想空間に仮想オブジェクトOBJをそれぞれ配置し、必要に応じて仮想オブジェクトOBJの大きさをそれぞれ変化させる。なお、プレイヤオブジェクト設定データDcや他オブジェクト設定データDdに情報が設定されていない場合、画像認識されたマーカMの種類に応じて予め定められている仮想オブジェクトOBJを表す仮想オブジェクト画像を生成してもいいし、仮想オブジェクト画像を生成する処理をスキップしてもよい。
【0076】
そして、CPU55は、仮想カメラから見た仮想オブジェクトOBJを仮想オブジェクト画像として生成し、メモリ56の仮想オブジェクト画像データDeに記憶する。例えば、CPU55は、上記マーカ・カメラ変換行列を仮想カメラのビュー行列に指定することによって、マーカ座標系で表現されたCGモデル(仮想オブジェクトOBJ)を、現実世界に当該CGモデルが存在する場合にLCD52に表示される場所(例えば、撮像画像におけるマーカMを基準として、位置データDc2および位置データDd2によって定義される位置)と同じ位置に表示することができる。つまり、LCD52に表示される表示画像において、マーカ座標系で定義された仮想空間に配置された仮想オブジェクトOBJを、現実世界のマーカMに関連して存在しているように表示することができる。
【0077】
図9に進み、CPU55は、所定のアクセスポイント(例えば、図3を用いた例におけるアクセスポイントAP1や、図4を用いた例におけるアクセスポイントAP2)と通信可能か否かを判定する(ステップ91)。例えば、CPU55は、アクセスポイントに接続するための識別子を用いて、いわゆるパッシブスキャンやアクティブスキャンによるアクセスポイントのサーチを行う。次に、CPU55は、所定のアクセスポイントが検出されて当該アクセスポイントとの接続が確立できた場合、当該アクセスポイントを介してデータを送受信する通信相手として設定されている装置を設定して通信を開始して、ステップ92に処理を進める。一方、CPU55は、所定のアクセスポイントが検出されない場合や、所定のアクセスポイントとの接続が確立できない場合、ステップ96に処理を進める。なお、上述したアクセスポイントを介してデータを送受信する通信相手とは、図1図3図4を用いた例において送信先となる他の情報処理装置5であり、情報処理装置5aの場合は、情報処理装置5b〜5dとなる。
【0078】
ステップ92において、CPU55は、設定されている通信相手の装置から送信されたプレイヤオブジェクト設定データを受信して、次のステップに処理を進める。例えば、CPU55は、通信相手の装置が制御する仮想オブジェクトOBJに関する設定情報であるプレイヤオブジェクト設定データを当該通信相手毎に受信する。
【0079】
次に、CPU55は、上記ステップ92において受信したデータに応じて、他オブジェクト設定データを設定し(ステップ93)、次のステップに処理を進める。例えば、CPU55は、通信相手毎に受信したプレイヤオブジェクト設定データを用いて、他オブジェクト設定データDdを当該通信相手毎に更新する。
【0080】
次に、CPU55は、操作データDaに応じて、自機のユーザが操作するプレイヤオブジェクト(仮想オブジェクトOBJ)に関する設定情報を設定し(ステップ94)、次のステップに処理を進める。例えば、CPU55は、操作データDaがプレイヤオブジェクトの種別設定または種別変更をするための操作を示す場合、当該操作内容に基づいてプレイヤオブジェクトの種別を設定し、当該種別を用いて種別データDc1を更新する。また、CPU55は、操作データDaがプレイヤオブジェクトを動作(移動)させる操作を示す場合、当該操作内容に応じて仮想空間内でプレイヤオブジェクトを動作(移動)させて姿勢(動作方向)および動作速度(移動速度)を設定し、当該動作後(移動後)の位置、姿勢(動作方向)、および動作速度(移動速度)を用いて位置データDc2および移動データDc3を更新する。なお、位置データDc2および移動データDc3については、上述したマーカ座標系に基づいた情報によって管理されてもよい。
【0081】
次に、CPU55は、設定されている通信相手の装置へプレイヤオブジェクト設定データを送信し(ステップ95)、次のステップに処理を進める。例えば、CPU55は、プレイヤオブジェクト設定データDcを送信用データとして設定して、設定されている通信相手の装置へ当該送信用データを送信する処理を行う。
【0082】
一方、所定のアクセスポイントが検出されない場合や、所定のアクセスポイントとの接続が確立できない場合(ステップ91において否定判定された場合)、CPU55は、仮想オブジェクトOBJに関する設定情報をクリアして(ステップ96)、ステップ97に処理を進める。例えば、CPU55は、仮想オブジェクトOBJに関する設定情報として、プレイヤオブジェクト設定データDcおよび他プレイヤオブジェクト設定データDdを消去する。
【0083】
ステップ97において、CPU55は、合成表示処理を行い、次のステップに処理を進める。例えば、CPU55は、マーカMが撮像されている場合、上記ステップ82で取得した撮像画像(現実世界画像)と上記ステップ86で生成した仮想オブジェクト画像とを合成した表示画像を生成し、当該表示画像をLCD52に表示する。
【0084】
具体的には、CPU55は、上記ステップ82で取得した撮像画像を、LCD52へ供給すべき画像を一時的に記憶するためのVRAM内の所定の記憶領域(以下、フレームバッファと称す)に描画する。そして、CPU55は、上記ステップ85で肯定判定されている場合、メモリ56に記憶されている仮想オブジェクト画像(すなわち、仮想カメラから見た仮想空間の画像)をフレームバッファに上書きする。これによって、フレームバッファに描画された撮像画像(現実世界画像)に仮想オブジェクト画像が合成される。そして、フレームバッファに描画された画像は、所定のタイミングでLCD52へ供給されて、LCD52に表示されることになる。なお、上記仮想オブジェクト画像においては、仮想空間の背景が透明であり、そのため、現実世界画像に仮想オブジェクト画像を合成することで、現実世界画像上に仮想オブジェクトOBJが存在するような画像が生成される。なお、CPU55は、上記ステップ85で否定判定されている場合、撮像画像のみをフレームバッファに描画してLCD52に表示する。
【0085】
次に、CPU55は、処理を終了するか否かを判定する(ステップ98)。処理を終了する条件としては、例えば、ユーザが処理を終了する操作を行ったこと等がある。CPU55は、処理を終了しない場合に上記ステップ82に戻って処理を繰り返し、処理を終了する場合に当該フローチャートによる処理を終了する。以降、ステップ82〜ステップ97の一連の処理は、ステップ98で処理を終了すると判定されるまで繰り返し実行される。
【0086】
なお、上述した情報処理システム1では、データを送受信する装置同士がアクセスポイントを介して直接データ通信する態様を用いたが、さらに他の装置(例えば、中継サーバ)等を介してデータ通信されてもかまわない。
【0087】
また、上述では、1つの情報処理装置5で情報処理を行う場合の処理手順を説明しているが、当該情報処理における処理ステップの少なくとも一部を他の装置で行ってもかまわない。例えば、情報処理装置5がさらに他の装置(例えば、別のサーバ、他のゲーム装置、他の携帯端末)と通信可能に構成されている場合、上記情報処理における処理ステップは、さらに当該他の装置が協働することによって実行してもよい。このように、上記情報処理における処理ステップの少なくとも一部を他の装置で行うことによって、上述した情報処理と同様の処理が可能となる。また、上述した情報処理は、少なくとも1つの情報処理装置により構成される情報処理システムに含まれる1つのプロセッサまたは複数のプロセッサ間の協働により実行されることが可能である。また、上記実施形態においては、情報処理装置5のCPU55が所定のプログラムを実行することによって、上述したフローチャートによる処理が行われたが、情報処理装置5が備える専用回路によって上記処理の一部または全部が行われてもよい。
【0088】
ここで、上述した変形例によれば、いわゆるクラウドコンピューティングのシステム形態や分散型の広域ネットワークおよびローカルネットワークのシステム形態でも本発明を実現することが可能となる。例えば、分散型のローカルネットワークのシステム形態では、据置型の情報処理装置(据置型のゲーム装置)と携帯型の情報処理装置(携帯型のゲーム装置)との間で上記処理を協働により実行することも可能となる。なお、これらのシステム形態では、上述した処理の各ステップの処理をどの装置で行うかについては特に限定されず、どのような処理分担をしたとしても本発明を実現できることは言うまでもない。
【0089】
また、上述した情報処理で用いられる処理順序、設定値、判定に用いられる条件等は、単なる一例に過ぎず他の順序、値、条件であっても、本実施例を実現できることは言うまでもない。
【0090】
また、上記各プログラムは、外部メモリ等の外部記憶媒体を通じて情報処理装置5に供給されるだけでなく、有線または無線の通信回線を通じて情報処理装置5に供給されてもよい。また、上記プログラムは、情報処理装置5内部の不揮発性記憶装置に予め記録されていてもよい。なお、上記プログラムを記憶する情報記憶媒体としては、不揮発性メモリの他に、CD−ROM、DVD、あるいはそれらに類する光学式ディスク状記憶媒体、フレキシブルディスク、ハードディスク、光磁気ディスク、磁気テープ、などでもよい。また、上記プログラムを記憶する情報記憶媒体としては、上記プログラムを記憶する揮発性メモリでもよい。このような記憶媒体は、コンピュータ等が読み取り可能な記録媒体ということができる。例えば、コンピュータ等に、これらの記録媒体のプログラムを読み込ませて実行させることにより、上述で説明した各種機能を提供させることができる。
【0091】
以上、本発明を詳細に説明してきたが、前述の説明はあらゆる点において本発明の例示に過ぎず、その範囲を限定しようとするものではない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。本発明は、特許請求の範囲によってのみその範囲が解釈されるべきであることが理解される。また、当業者は、本発明の具体的な実施形態の記載から、本発明の記載および技術常識に基づいて等価な範囲を実施することができることが理解される。また、本明細書において使用される用語は、特に言及しない限り、当該分野で通常用いられる意味で用いられることが理解されるべきである。したがって、他に定義されない限り、本明細書中で使用される全ての専門用語および技術用語は、本発明の属する分野の当業者によって一般的に理解されるのと同じ意味を有する。矛盾する場合、本明細書(定義を含めて)が優先する。
【産業上の利用可能性】
【0092】
以上のように、本発明は、ユーザに対してより興趣性を高めることができる等を目的として、例えば情報処理システム、情報処理装置、情報処理プログラム、および情報処理方法等として有用である。
【符号の説明】
【0093】
1…情報処理システム
5…情報処理装置
50…撮像部
51…操作部
52…LCD
55…CPU
56…メモリ
57…プログラム記憶部
58…通信部
100…ネットワーク
図1
図2
図3
図4
図5
図6
図7
図8
図9