【文献】
植松裕子, 外1名,”任意位置姿勢に配置された複数平面マーカの統合によるオンラインARシステム”,映像情報メディア学会誌,日本,(社)映像情報メディア学会,2006年 6月 1日,第60巻, 第6号,p.909-919
(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0027】
以下、本発明の実施の形態を、図面に基づいて説明する。なお、以下に説明する実施の形態は、本発明を実施する場合の一例を示すものであって、本発明を以下に説明する具体的構成に限定するものではない。本発明の実施にあたっては、実施の形態に応じた具体的構成が適宜採用されてもよい。
【0028】
<システムの構成>
図1は、本実施形態に係るゲームシステム100の構成を示す図である。ゲームシステム100には、ゲーム装置1、および複数のカード2a、2b(但し、カードの種類を区
別しない場合には、単に「カード2」と称する)が含まれる。ゲームシステム100は、例えば、複数のユーザA、Bによってプレイされ、夫々のユーザA、Bの拠点(陣)の位置をカード2a、2bの配置によって設定し、カード2a、2bが配置された空間をフィールドとしてユーザA、Bが互いの拠点を奪い合う陣取りゲームを提供する。なお、本実施形態では、本発明をゲームシステム100に適用した場合の実施の形態について説明するが、本発明の適用対象はゲームに限定されない。
【0029】
ゲーム装置1は、ディスプレイ22(上側LCD22として後述する)および実カメラ23(外側撮像部23として後述する)を備えている。ゲーム装置1は、実カメラ23を用いて撮像された実空間の撮像画像に、仮想カメラを用いて描画(レンダリング)された仮想空間内の仮想オブジェクトを合成して、ディスプレイ22に表示する機能を有する。本実施形態において、仮想オブジェクトは、ゲームのキャラクター、拠点、アイテム、背景等の物体を示す3次元の画像データである。但し、仮想オブジェクトは、2次元の画像データであってもよい。
【0030】
ゲームシステム100では、ゲーム装置1の実カメラ23を用いてカード2を撮像すると、ゲーム装置1のディスプレイ22に、撮像された実空間には存在せず、仮想空間に配置されている仮想オブジェクトが表示される(
図1を参照)。
図1に示された例では、仮想オブジェクトとして、ユーザAの拠点オブジェクト4a、ユーザAのキャラクターオブジェクト5a、ユーザBの拠点オブジェクト4b、ユーザBのキャラクターオブジェクト5bが示されている。ゲーム進行中、ユーザがカード2を操作(移動等)すると、ゲーム装置1のディスプレイ22に表示される仮想オブジェクトの位置姿勢や、仮想オブジェクトに関連付けられたパラメータが変化する。即ち、ゲームシステム100が提供するゲームでは、ゲーム装置1によって撮像される実空間の状況の変化に応じて、ゲーム装置1のディスプレイ22に表示される仮想空間の状況も変化する。
【0031】
カード2a、2bには、印刷等の方法でマーカー3a、3b(但し、マーカーの種類を区別しない場合には、単に「マーカー3」と称する)が付されている。このマーカー3は、仮想オブジェクトと対応付けられており、該マーカー3に対応付けられた仮想オブジェクトの位置姿勢の基準を示す指標である。本実施形態では、ゲームはユーザAおよびユーザBによってプレイされ、ユーザAによってカード2aが配置され、ユーザBによってカード2bが配置される。但し、
図1においてカード2は2枚しか示されていないが、カード2は3枚以上であってもよい。また、カード2a、2bには、ユーザAのカードであるかユーザBのカードであるかを区別するために夫々異なるマーカー3a、3bが付されているが、同一のマーカーが付されたカード2が用いられてもよい。
【0032】
仮想オブジェクトは、ゲーム装置1のディスプレイ22において、対応付けられたマーカー3に対して所定位置に合成表示される。また、仮想オブジェクトは、上下、前後、および左右の方向を有する。そのため、マーカー3は、仮想オブジェクトの表示姿勢を特定することが可能なものであることが好ましい。即ち、マーカー3は、実カメラ23を用いて撮像されることで、実カメラ23に対する位置および姿勢を特定可能な記号、文字、図形、絵、およびそれらの組み合わせ等であることが好ましい。
【0033】
図2は、本実施形態に係るゲーム装置1の外観図である。ゲーム装置1は、下側ハウジング11および上側ハウジング21を有する。下側ハウジング11と上側ハウジング21とは、ヒンジ構造により開閉可能(折り畳み可能)に連結されている。
【0034】
下側ハウジング11には、下側LCD(Liquid Crystal Display:液晶表示装置)12、タッチパネル13、各操作ボタン14A〜14E、アナログスティック15、挿入口11D、および挿入口17が設けられる。
【0035】
下側LCD12は、画像を(立体視可能ではなく)平面的に表示する表示装置である。タッチパネル13はゲーム装置1の入力装置の一つである。タッチパネル13への入力に用いるタッチペン28は、挿入口17(
図2において点線で示される)から挿入されて収容される。なお、タッチペン28の代わりにユーザの指を用いることもできる。
【0036】
各操作ボタン14A〜14Eは、所定の入力を行うための入力装置である。ボタン14A〜14Eには、ゲーム装置1によって実行されるプログラムに応じた機能が適宜割り当てられる。例えば、十字ボタン14Aは、選択操作やゲーム中のキャラクターオブジェクトの移動操作等に用いられる。例えば、各操作ボタン14B〜14Eは、決定操作やキャンセル操作等に用いられる。アナログスティック15は、方向を指示するデバイスである。
【0037】
挿入口11D(
図2において点線で示される)は、ゲームプログラムを記録した外部メモリ45を挿入するための挿入口11Dが設けられる。
【0038】
上側ハウジング21には、上側LCD22、外側左撮像部23a、外側右撮像部23b、内側撮像部24、および3D調整スイッチ25が設けられる。
【0039】
上側LCD22は、立体視可能な画像を表示する立体表示モードと、画像を平面的に表示する(平面視画像を表示する)平面表示モードとを切り替えることが可能な表示装置である。この表示モードの切り替えは、3D調整スイッチ25によって行われる。
【0040】
内側撮像部24は、上側ハウジング21の内側面21Bの内向きの法線方向を撮像方向とする撮像部である。外側左撮像部23aおよび外側右撮像部23bは、いずれも内側面21Bとは反対の外側面の外向きの法線方向を撮像方向とする撮像部である。以降、外側左撮像部23aおよび外側右撮像部23bをまとめて、外側撮像部23と称する。
【0041】
図3は、本実施形態に係るゲーム装置1の内部構成を示すブロック図である。ゲーム装置1は、上述した各部に加えて、情報処理部31、メインメモリ32、外部メモリインターフェイス(外部メモリI/F)33、データ保存用外部メモリI/F34、データ保存用内部メモリ35、無線通信モジュール36、ローカル通信モジュール37、リアルタイムクロック(RTC)38、加速度センサ39、角速度センサ40、電源回路41、およびインターフェイス回路(I/F回路)42等の電子部品を備えている。これらの電子部品は、電子回路基板上に実装されて下側ハウジング11(または上側ハウジング21でもよい)内に収納される。
【0042】
情報処理部31は、所定のプログラムを実行するためのCPU(Central Processing Unit)311、画像処理を行うGPU(Graphics Processing Unit)312、VRAM(Video RAM)313等を含む。CPU311は、ゲーム装置1内のメモリ(例えば外部メモリI/F33に接続された外部メモリ45やデータ保存用内部メモリ35)に記憶されている当該所定のプログラムを実行することによって、所定の処理を実行する。なお、情報処理部31のCPU311によって実行されるプログラムは、他の機器との通信によって他の機器から取得されてもよい。情報処理部31のGPU312は、情報処理部31のCPU311からの命令に応じて画像を生成し、VRAM313に描画する。VRAM313に描画された画像は、上側LCD22および/または下側LCD12に出力されて表示される。
【0043】
情報処理部31には、メインメモリ32、外部メモリI/F33、データ保存用外部メモリI/F34、およびデータ保存用内部メモリ35が接続される。外部メモリI/F3
3は、外部メモリ45を着脱自在に接続するためのインターフェイスである。また、データ保存用外部メモリI/F34は、データ保存用外部メモリ46を着脱自在に接続するためのインターフェイスである。
【0044】
メインメモリ32は、情報処理部31(CPU311)のワーク領域やバッファ領域として用いられる揮発性の記憶手段である。即ち、メインメモリ32は、各種データを一時的に記憶したり、外部(外部メモリ45や他の機器等)から取得されるプログラムを一時的に記憶したりする。本実施形態では、メインメモリ32として例えばPSRAM(Pseudo−SRAM)を用いる。
【0045】
外部メモリ45は、情報処理部31によって実行されるプログラムを記憶するための不揮発性の記憶手段である。外部メモリ45は、例えば読み取り専用の半導体メモリで構成される。外部メモリ45が外部メモリI/F33に接続されると、情報処理部31は外部メモリ45に記憶されたプログラムを読み込むことができる。情報処理部31が読み込んだプログラムを実行することにより、所定の処理が行われる。
【0046】
データ保存用外部メモリ46は、不揮発性の読み書き可能なメモリ(例えばNAND型フラッシュメモリ)であり、所定のデータを格納するために用いられる。例えば、データ保存用外部メモリ46は、SDカードである。データ保存用内部メモリ35は、読み書き可能な不揮発性メモリ(例えばNAND型フラッシュメモリ)で構成され、所定のデータを格納するために用いられる。例えば、データ保存用外部メモリ46およびデータ保存用内部メモリ35には、無線通信モジュール36を介した無線通信によってダウンロードされたデータやプログラムが格納される。
【0047】
情報処理部31には、無線通信モジュール36およびローカル通信モジュール37が接続される。無線通信モジュール36は、例えばIEEE802.11b/gの規格に準拠した方式により、無線LANに接続する機能を有する。情報処理部31は、無線通信モジュール36を用いてインターネットを介して他の機器との間でデータを送受信したり、IEEE802.11b/gのアドホックモードにおいて、他のゲーム装置1と直接無線通信を行ったりすることが可能である。また、ローカル通信モジュール37は、所定の通信方式(例えば赤外線通信)により同種のゲーム装置との間で無線通信を行う機能を有する。情報処理部31は、ローカル通信モジュール37を用いて同種の他のゲーム装置との間でデータを送受信したりすることができる。
【0048】
情報処理部31には、加速度センサ39が接続される。加速度センサ39は、3軸(xyz軸)方向に沿った直線方向の加速度(直線加速度)の大きさを検出する。なお、加速度センサ39は、静電容量式の加速度センサであっても、他の方式の加速度センサであってもよい。また、加速度センサ39は1軸または2軸方向を検出する加速度センサであってもよい。情報処理部31は、加速度センサ39が検出した加速度を示すデータ(加速度データ)を受信して、ゲーム装置1の姿勢や動きを算出する。
【0049】
情報処理部31には、角速度センサ40が接続される。角速度センサ40は、ゲーム装置1の3軸周りに生じる角速度をそれぞれ検出し、検出した角速度を示すデータ(角速度データ)を情報処理部31へ出力する。情報処理部31は、角速度センサ40から出力された角速度データを受信して、ゲーム装置1の姿勢や動きを算出する。
【0050】
情報処理部31には、RTC38および電源回路41が接続される。RTC38は、時間をカウントして情報処理部31に出力する。情報処理部31は、RTC38によって計時された時間に基づき現在時刻を計算する。電源回路41は、ゲーム装置1が有する電源(下側ハウジング11に収納される上記充電式電池)からの電力を制御し、ゲーム装置1
の各部品に電力を供給する。
【0051】
情報処理部31には、I/F回路42が接続される。I/F回路42には、マイク43、スピーカ44、およびタッチパネル13が接続される。マイク43は、ユーザの音声を検知して音声信号をI/F回路42に出力する。スピーカ44は、I/F回路42からの音声信号をアンプ(図示せず)により増幅し、音声を出力する。I/F回路42は、マイク43およびスピーカ44の制御を行う音声制御回路と、タッチパネル13の制御を行うタッチパネル制御回路とを含む。音声制御回路は、音声信号に対するA/D変換およびD/A変換を行ったり、音声信号を所定の形式の音声データに変換したりする。本実施形態では、タッチパネル13は、抵抗膜方式のタッチパネルが用いられる。ただし、タッチパネル13は、抵抗膜方式に限らず、例えば、静電容量方式等、任意の押圧式のタッチパネルを用いることができる。タッチパネル制御回路は、タッチパネル13からの信号に基づいて所定の形式のタッチパネル13のタッチ位置座標を生成して情報処理部31に出力する。情報処理部31は、タッチ位置データを取得することにより、タッチパネル13に対して入力が行われたタッチ位置を知ることができる。
【0052】
操作ボタン14およびアナログスティック15は、情報処理部31に接続され、各操作ボタン14A〜14Eおよびアナログスティック15に対する入力状況を示す操作データを情報処理部31に出力する。情報処理部31は、操作ボタン14およびアナログスティック15から操作データを取得することによって、操作ボタン14およびアナログスティック15に対する入力に応じた処理を実行する。
【0053】
下側LCD12および上側LCD22は、情報処理部31に接続される。下側LCD12および上側LCD22は、情報処理部31(GPU312)の指示にしたがって画像を表示する。下側LCD12は、画像を(立体視可能ではなく)平面的に表示する表示装置である。下側LCD12の画素数は、一例として、320dot×240dot(横×縦)である。なお、本実施形態では表示装置としてLCDを用いているが、例えばEL(Electro Luminescence:電界発光)を利用した表示装置など、他の表示装置を利用してもよい。また、下側LCD12として、所望の解像度を有する表示装置を利用することができる。
【0054】
上側LCD22は、裸眼立体視可能な表示装置である。上側LCD22は、横方向に交互に表示される左目用画像と右目用画像とを左目および右目のそれぞれに分解して見えるようにレンチキュラー方式やパララックスバリア方式(視差バリア方式)のものが用いられる。上側LCD22の画素数は、一例として800dot×240dot(横×縦)である。本実施形態では、上側LCD22は液晶表示装置であるとして説明される。ただし、これに限らず、例えば、ELを利用した表示装置などが利用されてもよい。また、上側LCD22として、任意の解像度の表示装置を利用することができる。
【0055】
外側撮像部23および内側撮像部24は、情報処理部31に接続される。外側撮像部23および内側撮像部24は、情報処理部31の指示にしたがって画像を撮像し、撮像した画像データを情報処理部31に出力する。
【0056】
内側撮像部24は、所定の解像度を有する撮像素子と、レンズとを含む。撮像素子は、例えば、CCDイメージセンサやCMOSイメージセンサ等である。レンズは、ズーム機構を有するものでもよい。
【0057】
外側左撮像部23aおよび外側右撮像部23bは、それぞれ所定の共通の解像度を有する撮像素子(例えば、CCDイメージセンサやCMOSイメージセンサ等)と、レンズとを含む。レンズは、ズーム機構を有するものでもよい。外側左撮像部23aと外側右撮像
部23bとは、ゲーム装置1が実行するプログラムによって、2つの外側撮像部(外側左撮像部23aおよび外側右撮像部23b)のいずれか一方を単独で使用可能である。本実施形態では、何れか一方の外側撮像部のみを使用することとして説明する。
【0058】
3D調整スイッチ25は、情報処理部31に接続される。3D調整スイッチ25は、スライダの位置に応じた電気信号を情報処理部31に送信する。
【0059】
図4は、本実施形態に係るゲームシステム100において扱われるマーカー座標系(Xm,Ym,Zm)を示す図である。マーカー座標系は、マーカー3の中心点を原点とし、互いに直交する3軸によって定義される座標系である。マーカー座標系のX軸とY軸とは、マーカー3が付されている平面上に定義され、Z軸は該平面の垂直方向(上下方向)に定義される。また、マーカー3には前後および左右が定義されており、例えば、左右方向にX軸が定義され、前後方向にY軸が定義されている。このようにして、実空間に配置されたマーカー3を基準として仮想空間の座標系が定義されることにより、実空間と仮想空間とを対応付けることができる。
【0060】
また、マーカー座標系は、各マーカー3に対して定義される。ただし、複数のマーカー3間で、1つのマーカー座標系を共有して用いることも可能である。なお、マーカー座標系の原点は、マーカー3の中心点でなくてもよい。例えば、マーカー3における何れかの特徴点を、マーカー座標系の原点として用いることが出来る。また、X軸、Y軸、Z軸の定義方法は、本実施形態において示される一例であり、X軸、Y軸、Z軸は、その他の基準に従って定義されてもよい。
【0061】
ゲーム装置1は、外側左撮像部23aまたは外側右撮像部23b(以下、単に「外側撮像部23」と称する)によって撮像された画像に対して、例えばパターンマッチング等の画像処理を行うことによって、当該画像に含まれるマーカー3を検出することができる。ゲーム装置1は、検出されたマーカー3に基づいて、当該マーカー3と外側撮像部23との相対的な位置および姿勢を算出する。
【0062】
本実施形態において、仮想空間に配置される仮想オブジェクトは、当該仮想オブジェクトが対応づけられたマーカー3のマーカー座標系に配置される。仮想オブジェクトは、仮想空間に配置された仮想カメラによって撮像されることで描画(レンダリング)され、ゲーム装置1のディスプレイ22に表示される。ここで、仮想カメラは、ユーザに視認させる仮想空間の画像を撮像するためのものである。仮想カメラのマーカー座標系における位置および姿勢は、実空間の外側撮像部23の位置および姿勢と一致される。このため、マーカー3に基づいて仮想空間が定義され、当該仮想空間において、外側撮像部23の位置や撮像方向を変化させると、上側LCD22に表示される仮想空間の画像も変化する。
【0063】
図5は、本実施形態に係るゲーム装置1が保持する情報を示す図である。ゲーム装置1は、マーカー情報582、オブジェクト情報583、相対関係情報584、およびゲーム進行状況情報585を保持する。これらの情報は、後述の記憶部59に保持されている。
【0064】
マーカー情報582は、マーカー3に関する情報である。マーカー情報には、例えば、マーカー3を識別するためのマーカーID、マーカー画像、マーカーサイズ、対応オブジェクトID、仮想オブジェクトの位置姿勢、オブジェクトの表示サイズ等が含まれる。マーカー画像は、マーカー3の外観を示す画像である。また、マーカーサイズは、マーカー3の縦横の長さ等、マーカー3の大きさを示す情報である。ゲーム装置1は、マーカー画像とマーカーサイズに基づいて、撮像画像に含まれるマーカー3の見え方から、撮像部とマーカー3との距離、マーカー3の姿勢等、即ち、マーカー位置姿勢情報およびマーカー座標系を取得することができる。対応オブジェクトIDは、マーカー3に対応する位置に
表示される仮想オブジェクトの識別番号である。なお、1つのマーカー3に対して2以上の仮想オブジェクトが対応付けられていてもよい。本実施形態では、マーカー情報582には、該当マーカー座標系によって管理される拠点オブジェクトおよびキャラクターオブジェクトのオブジェクトIDが含まれる。仮想オブジェクトの位置姿勢は、マーカー座標系における位置(座標値)および姿勢(単位ベクトル)で示される。マーカー情報582は、ゲームシステム100において使用される各マーカー3に対して存在する。
【0065】
オブジェクト情報583は、マーカー3に対応する位置に表示される仮想オブジェクトに関する情報である。オブジェクト情報583には、例えば、仮想オブジェクトを識別するためのオブジェクトIDおよびオブジェクトのデータが含まれる。オブジェクト情報583は、ゲームシステム100において使用される各オブジェクトについて存在する。
【0066】
相対関係情報584は、マーカー座標系の間における互いの位置および姿勢に関する相対的な関係を示す情報であり、本実施形態において具体的には、異なるマーカー座標系の間で座標変換を行うために用いられる変換行列であり、変換行列は、関連する複数のマーカー座標系に関連付けられて保存される。
【0067】
ゲーム進行状況情報585は、ゲームの進行状況を含む情報である。ゲーム進行状況情報585には、例えば、ゲーム内におけるキャラクターの状態等が含まれる。
【0068】
図6は、本実施形態に係るゲーム装置1の機能ブロック図である。
図6に示される各機能ブロックは、例えば、外部メモリ45に格納されるゲームプログラムを情報処理部31(CPU311およびGPU312)が読み出して実行することによって実現される機能の一部である。
【0069】
ゲーム装置1は、ゲームプログラムを実行することによって、撮像画像取得部51、特徴検出部52、基準取得部53、相対関係情報取得部54、ゲーム進行処理部55、推定部56、描画部57、表示制御部58、記憶部59、判定部60、更新部61、追加部62、および削除部63として動作する。
【0070】
撮像画像取得部51は、外側撮像部23によって撮像された撮像画像を取得する。より具体的には、撮像画像取得部51は、外側撮像部23に対して撮像を指示し、外側撮像部23によって撮像された撮像画像を取得する。撮像画像取得部51は、外側撮像部23に、撮像を行う所定間隔を指示する。撮像画像取得部51は、所定間隔で撮像画像を取得する。本実施形態に係るゲーム処理は、60フレーム/秒で分割されたフレーム単位で実行されるゲーム処理の一部として実行されるものであるため、所定間隔は、例えば、1/60秒である。
【0071】
特徴検出部52は、撮像画像から、マーカー情報582に含まれるマーカー画像に該当するマーカー3を検出する。このようなマーカー3の検出は、例えば、画像認識エンジンを用いて行われる。
【0072】
基準取得部53は、検出されたマーカー3に基づいて、撮像画像に撮像された空間における位置および姿勢を示す基準となる位置姿勢基準を取得する。ここで、位置姿勢基準とは、実空間における実オブジェクト(マーカー3等)、または仮想空間内における仮想オブジェクトの位置および姿勢を示すために用いられる基準である。本実施形態の基準取得処理では、位置姿勢基準として、マーカー3の中心点を原点とし、互いに直交する3軸を用いたマーカー座標系が、マーカー3毎に取得される。基準取得部53は、検出されたマーカー3に対応するマーカー情報582を記憶部59から読み出し、マーカー3の、実空間におけるマーカー3の位置姿勢情報を求め、この結果に基づいて、マーカー座標系を取
得する。マーカー3の位置姿勢情報およびマーカー座標系は、例えば、ARToolKit等の専用のソフトウェアライブラリを用いて取得することが出来る。また、実空間において位置姿勢を表現する際の基準としては、例えば、カメラ座標系を用いることが出来る。即ち、マーカー3の位置姿勢情報は、カメラ座標系を基準とする位置姿勢情報とすることが出来る。カメラ座標系は、外側撮像部23の焦点位置を原点とし、外側撮像部23の撮像方向にZ軸が定義され、撮像方向と直交する平面上にX軸およびY軸が定義された座標系とすることが出来る。
【0073】
相対関係情報取得部54は、マーカー3が複数検出された撮像画像に基づいて、マーカー3毎に取得された複数のマーカー座標系の間における互いの位置および姿勢に関する相対的な関係を示す相対関係情報を取得する。取得された相対関係情報は、記憶部59に記憶される。本実施形態において、相対関係情報とは、異なるマーカー座標系の間で座標変換を行うために用いられる変換行列である。
【0074】
ゲーム進行処理部55は、ゲーム進行状況情報585を参照および更新することで、本実施形態に係るゲームのゲーム進行を管理する。また、本実施形態において、ゲーム進行処理部55は、実際の時間の経過に伴って、仮想空間内の時間が経過するように所定の処理を行う。
【0075】
推定部56は、相対関係情報(座標変換用の変換行列)において相対関係が求められている複数のマーカー座標系のうちの一のマーカー座標系と相対関係情報とに基づいて、複数のマーカー座標系のうちの他のマーカー座標系を推定する。
【0076】
描画部57は、仮想空間に仮想カメラを配置し、仮想空間に、マーカー座標系に従って位置および姿勢が決定される仮想オブジェクトを配置し、仮想カメラから見た仮想空間の画像を生成することで、仮想空間画像を描画(レンダリング)する。
【0077】
表示制御部58は、撮像画像に仮想空間の画像を合成した合成画像を生成し、合成画像を表示装置に表示させる。
【0078】
記憶部59は、
図5を用いて上述したマーカー情報582、オブジェクト情報583、相対関係情報584、およびゲーム進行状況情報585を記憶する。
【0079】
判定部60は、相対関係情報取得部54によって取得された相対関係情報が、記憶部59に記憶されている相対関係情報に対応する相対関係情報であるか否かを判定する。判定部60による判定の結果に応じて、更新部61による相対関係情報の更新処理、または追加部62による相対関係情報の追加処理が行われる。
【0080】
更新部61は、取得された相対関係情報が、記憶されている相対関係情報に対応するものであると判定部60によって判定された場合に、取得された相対関係情報を用いて、記憶されている相対関係情報を更新する。
【0081】
追加部62は、取得された相対関係情報が、記憶されている相対関係情報に対応するものであると判定部60によって判定されなかった場合に、取得された相対関係情報を記憶部59に記憶させる。
【0082】
削除部63は、所定の条件を満たす相対関係情報を、記憶部59から削除する。本実施形態では、前フレームにおいて取得されていた相対関係情報を参照し、当該相対関係情報に対応する相対関係情報が現フレームでは取得されておらず、且つ相対関係情報によればマーカー3があるはずの位置が撮像画像に含まれているが当該位置にマーカー3が検出さ
れていない場合に、当該マーカー3にかかるカード2が除去されたと判定し、相対関係情報を、記憶部59から削除する。但し、削除部63による削除の条件となる所定の条件は、ゲーム進行処理部55によってゲーム進行上の所定の条件が満たされたこと等、その他の条件であってもよい。
【0083】
<処理の流れ>
次に、本実施形態において実行される処理の流れを説明する。なお、本実施形態に係るフローチャートに示された処理の具体的な内容および処理順序は、本発明を実施するための一例である。具体的な処理内容および処理順序は、本発明の実施の形態に応じて適宜選択されてよい。
【0084】
図7は、本実施形態に係るゲーム処理の流れを示すフローチャートである。本実施形態に係るゲーム処理は、60フレーム/秒で分割されたフレーム単位で実行されるゲーム処理の一部として実行されるものであり、フレーム毎に実行される。
【0085】
ステップS001およびステップS002では、撮像画像が取得され、撮像画像からマーカー3が検出される。撮像画像取得部51は、外側撮像部23によって撮像された撮像画像を取得する(ステップS001)。撮像画像が取得されると、特徴検出部52は、撮像画像から、マーカー情報582に含まれるマーカー画像に該当するマーカー3を検出する(ステップS002)。マーカー3は、外側撮像部23に正対して(例えば、カメラ座標系のZ軸と直交するように)配置されている場合を除いて、撮像画像中に歪んだ状態で撮像されているが、マーカー3の検出は、一般的な画像認識エンジンを用いて行うことが可能である。その後、処理はステップS003へ進む。
【0086】
ステップS003では、マーカー3毎に基準取得処理が実行される。基準取得部53は、ステップS002において検出されたマーカー3毎に、実空間におけるマーカー3の位置および姿勢(以下、「マーカー位置姿勢情報」と称する)を取得し、マーカー3を基準とする位置姿勢基準(マーカー座標系)を取得する。
【0087】
基準取得部53は、撮像画像から検出されたマーカー3の実空間におけるマーカー位置姿勢情報を求める。より具体的には、基準取得部53は、実空間におけるマーカー3の位置を、マーカー情報582に含まれるマーカーサイズと撮像画像に含まれる該マーカー3のサイズとを比較することによって取得する。また、先述の通り、マーカー3は、外側撮像部23に正対して配置されている場合を除いて、撮像画像中に歪んだ状態で撮像されている。基準取得部53は、マーカー情報582に含まれるマーカー画像に対する、撮像画像に撮像されたマーカー3の歪みを求めることによって、実空間におけるマーカー3の姿勢を取得する。このようにすることで、実空間におけるマーカー位置姿勢情報が取得され、更に、マーカー位置姿勢情報に従ってマーカー座標系が定義される。なお、本実施形態において、マーカー座標系は、マーカー3の中心点を原点として取得される。その後、処理はステップS004へ進む。
【0088】
図8は、本実施形態におけるマーカー座標系MAとマーカー座標系MBとの関係を示す図である。マーカー座標系MAは、カード2aに付されたマーカー3aの中心点を原点とし、マーカー3aが付されている平面と直交するZ軸、当該平面上に定義されたX軸およびY軸、によって定義される座標系(X
ma,Y
ma,Z
ma)であり、マーカー座標系MBは、カード2bに付されたマーカー3bの中心点を原点とし、マーカー3bが付されている平面と直交するZ軸、当該平面上に定義されたX軸およびY軸、によって定義される座標系(X
mb,Y
mb,Z
mb)である。
【0089】
ステップS004では、相対関係情報取得処理が実行される。相対関係情報取得処理で
は、1の撮像画像において複数のマーカー3が撮像されている場合には、複数のマーカー3の夫々に係るマーカー座標系同士の位置および姿勢に関する相対関係を示す相対関係情報(座標変換用の変換行列)が取得される。相対関係情報取得部54は、検出されたマーカー3の組み合わせ毎(取得されたマーカー座標系の組み合わせ毎)に、相対関係情報を取得する。
【0090】
図8に示した例によれば、相対関係情報取得部54は、マーカー座標系MA(X
ma,Y
ma,Z
ma)からマーカー座標系MB(X
mb,Y
mb,Z
mb)への座標変換を行うための変換行列と、マーカー座標系MB(X
mb,Y
mb,Z
mb)からマーカー座標系MA(X
ma,Y
ma,Z
ma)への座標変換を行うための変換行列と、を算出することで、相対関係情報を取得する。相対関係情報取得処理の詳細については、
図9を用いて後述する。その後、処理はステップS005へ進む。
【0091】
ステップS005では、推定処理が実行される。推定部56は、撮像画像に含まれていない(即ち、外側撮像部23による撮像範囲外にある)マーカー3に係るマーカー座標系を、撮像画像に含まれるマーカー3に係るマーカー座標系、および相対関係情報に基づいて推定する。推定処理の詳細については、
図10を用いて後述する。その後、処理はステップS006へ進む。
【0092】
図8に示した例によれば、推定部56は、マーカー3bが撮像されていない場合、マーカー3bに係るマーカー座標系MBを、撮像画像に含まれるマーカー3aに係るマーカー座標系MA、およびマーカー座標系MAとマーカー座標系MBとの間の相対関係情報に基づいて推定する。
【0093】
ステップS006では、ゲーム進行処理が実行される。先述の通り、本実施形態に係るゲームは、複数のユーザによってプレイされ、夫々のユーザの拠点オブジェクトの位置をカード2a、2bの配置によって設定し、カード2a、2bが配置された空間をフィールドとして進行する陣取りゲームである。
【0094】
本実施形態に係るゲームでは、先述の通り、ユーザAの拠点オブジェクト4a、ユーザAのキャラクターオブジェクト5a、ユーザBの拠点オブジェクト4b、ユーザBのキャラクターオブジェクト5b等を含む仮想オブジェクトが、外側撮像部23と位置合わせされた仮想カメラによって描画され、撮像画像に合成表示される。ここで、ユーザAに係る仮想オブジェクトは、ユーザAによって配置されるカード2aに係るマーカー座標系MAにおいて管理される。また、ユーザBに係る仮想オブジェクトは、ユーザBによって配置されるカード2bに係るマーカー座標系MBにおいて管理される。なお、ユーザAに係る仮想オブジェクトとしては、例えば、拠点オブジェクト4aおよびキャラクターオブジェクト5a等がある。また、ユーザBに係る仮想オブジェクトとしては、例えば、拠点オブジェクト4bおよびキャラクターオブジェクト5b等がある。
【0095】
ゲーム進行処理部55は、本実施形態に係るゲームに関連して、記録部58のゲーム進行状況情報585を参照して、ゲーム進行を管理する。また、先述の通り、マーカー情報582には、マーカー座標系MA、MBにおける各仮想オブジェクトの位置および姿勢が含まれており、ゲーム進行処理部55は、ゲームの進行に応じてこれらの位置および姿勢を更新する。その後、処理はステップS007へ進む。
【0096】
なお、ゲーム進行処理において、オブジェクト同士の位置および姿勢の関係を管理する方法として、全てのオブジェクトを管理する共通座標系を用いる方法が採用されてもよい。共通座標系は、何れかのマーカー座標系を指定することで定義されてもよいし、何れのマーカー座標系とも異なる座標系を指定することで定義されてもよい。共通座標系として
、何れのマーカー座標系とも異なる座標系が指定される場合、原点および3軸の姿勢はどのように定義されてもよいが、例えば、全てのマーカー座標系の原点(本実施形態では、マーカー3の中心点)の重心位置を、共通座標系の原点としてもよい。このような共通座標系を用いてオブジェクト同士の位置および姿勢の関係を管理することで、ゲーム中におけるオブジェクト間の衝突判定等を行うことが出来る。共通座標系によるオブジェクト管理は、マーカー座標系MA、MBによる個別のオブジェクト管理に対して追加的に採用されてもよいし、代替的に採用されてもよい。
【0097】
なお、本実施形態において、ゲーム進行処理部55は、実時間の流れに伴ってゲーム内時間を進行させる。但し、ゲーム内時間は実時間の流れに伴って進行せず、ゲーム進行処理部55は、ユーザによる操作やゲーム内で発生するイベントを契機としてゲーム内時間を進行させてもよい。
【0098】
ステップS007では、表示処理が実行される。描画部57は、マーカー座標系に配置された仮想オブジェクトを、マーカー座標系において実カメラ23である外側撮像部23と同一の位置に配置された仮想カメラの視点から描画する。そして、表示制御部58は、描画された仮想オブジェクトの画像を、撮像画像に合成して上側LCD22に出力し、表示させる。なお、本実施形態では、仮想オブジェクトの描画は、仮想オブジェクトが配置されるマーカー座標系ごとに行われる。但し、仮想オブジェクトは、先述した共通座標系に配置され、一度に描画されてもよい。表示処理が実行されると、本フローチャートに示された処理は終了する。
【0099】
先述の通り、本フローチャートに示された処理はフレーム毎に実行されるものである。このため、本フローチャートに示された処理は、ゲームが進行している間、定期的にステップS001から繰り返し実行される。
【0100】
本実施形態によれば、撮像画像に含まれない(外側撮像部23の撮像範囲外にある)マーカー3に係るマーカー座標系も、先述した推定処理によって推定されている。このため、撮像画像に含まれないマーカー3に係るマーカー座標系に配置されている仮想オブジェクトも、仮想カメラによる撮像範囲内にあれば描画され、表示される。
【0101】
次に、
図9および
図10を参照して、相対関係情報取得処理および推定処理の流れをより詳細に説明する。
【0102】
図9は、本実施形態に係る相対関係情報取得処理の流れを示すフローチャートである。本フローチャートは、
図7のステップS004に示した相対関係情報取得処理の詳細を示す。
【0103】
ステップS101では、マーカー3が複数検出されたか否かが判定される。ステップS002において、撮像画像から複数のマーカー3が検出され、ステップS003においてこれらの複数のマーカー3に係る複数の位置姿勢基準が取得された場合、処理はステップS102へ進む。検出されたマーカー3が1以下である場合、処理はステップS107へ進む。
【0104】
ステップS102では、相対関係情報が取得される。相対関係情報取得部54は、複数のマーカー3の夫々に係るマーカー座標系同士の相対関係を示す相対関係情報を取得する。先述の通り、本実施形態において、相対関係情報は、異なるマーカー座標系の間で座標変換を行うために用いられる変換行列である。
【0105】
マーカー3aとマーカー3bが1の撮像画像に含まれている場合、マーカー座標系MA
におけるマーカー座標系MBの原点の位置を算出し、更にマーカー座標系MAにおけるマーカー座標系MBを構成する各軸の姿勢を算出することが出来る。このような情報を算出することで、マーカー座標系MAからマーカー座標系MBへの座標変換を行うための変換行列T
ABを取得することが出来る。
【0106】
具体的には、相対関係情報取得部54は、マーカー座標系MAの単位ベクトル(下記の式1を参照)を、マーカー座標系MBにおいて観測する。下記の式2は、マーカー座標系MAの単位ベクトルを、マーカー座標系MBにおいて観測した結果得られたベクトルである。このとき、マーカー座標系MAからマーカー座標系MBへの変換行列T
ABは、下記の式3に示されるものとなる。このため、相対関係情報取得部54は、式3に示される変換行列T
ABを、マーカー座標系MAからマーカー座標系MBへの座標変換を行うための相対関係情報として取得する。
【0108】
この変換行列は、マーカー座標系MAからマーカー座標系MBへの座標変換を行うための変換行列T
ABであり、マーカー座標系MBからマーカー座標系MAへの座標変換を行うための変換行列T
BAについても、同様の方法を用いて取得することが出来る。但し、変換行列T
BAは、変換行列T
ABの逆行列を計算することによって取得されてもよい。相対関係情報が取得されると、処理はステップS103へ進む。
【0109】
ステップS103では、実空間におけるマーカー3の位置または姿勢に関する変更の有無が判定される。ここで、実空間におけるマーカー3の位置または姿勢に関する変更には、具体的にはマーカー3の追加および移動(回転含む)が含まれる。本実施形態において、判定部60は、相対関係情報を用いた判定方法を用いて、マーカー3の追加および移動を判定する。
【0110】
判定部60は、ステップS102において取得された相対関係情報を、記憶部59に保持されている、同一のマーカー組み合わせに係る相対関係情報と比較する。このようにすることで、判定部60は、ステップS102において取得された相対関係情報が、取得済みのものであるか否かを判定し、マーカー3の位置または姿勢に関する変更を判定するこ
とが出来る。具体的には、判定部60は、取得された相対関係情報と、記憶部59に保持されている相対関係情報との差分を算出し、算出された差分を予め設定された閾値と比較する。判定部60は、差分が該閾値未満である場合には、取得された相対関係情報が記憶部59に保持されているものであると判定する。このため、閾値には、マーカー座標系や相対関係情報の算出に伴う誤差や、マーカー位置姿勢の微動を許容可能な値が設定されることが好ましい。一方、判定部60は、差分が該閾値以上である場合には、取得された相対関係情報が記憶部59に保持されているものでない(従前の位置から移動したマーカー3であるか、新たに追加されたマーカー3である)と判定する。但し、判定方法は、差分と閾値を用いた方法に限定されない。判定方法には、その他の方法が採用されてもよい。
【0111】
取得された相対関係情報が記憶部59に保持されているものであると判定された場合、処理はステップS104へ進む。一方、取得された相対関係情報が記憶部59に保持されているものでないと判定された場合、処理はステップS105へ進む。
【0112】
ステップS104では、相対関係情報が更新される。更新部61は、ステップS102において取得された相対関係情報で、記憶部59に保持されている相対関係情報のうち、同一のマーカー組み合わせに係るものを更新する。また、更新部61は、ステップS003において取得されたマーカー座標系で、記憶部59に保持されている、対応するマーカー座標系を更新する。なお、本実施形態では、相対関係情報取得処理は60フレーム/秒で分割されたフレーム単位で実行されるため、マーカー座標系および相対関係情報は、1/60秒間隔で更新される。このため、外側撮像部23の撮像範囲における通常の速度によるマーカー3の移動については、基本的にはマーカー座標系および相対関係情報の更新によって追従することが可能である。その後、処理はステップS106へ進む。
【0113】
なお、ステップS104の処理では、後述するステップS201における抽出処理のために、更新フラグを用いて、相対関係情報の更新またはマーカー座標系の更新に係るマーカーが識別される。情報処理部31は、記憶部59に保持されているマーカー座標系の夫々について更新フラグを用意し、該当するマーカー座標系について関連する相対関係情報の更新またはマーカー座標系の更新があった場合に、当該マーカーが撮像画像に撮像されていたものとみなして、更新フラグを真(TRUE)に設定する。なお、更新フラグは、フレーム毎に、ステップS104に示された処理に先立って全てリセット(偽(FALSE)に設定)される。このため、全ての相対関係情報についてステップS103からステップS106に示す処理が終了した時点で、更新フラグが偽(FALSE)となっているマーカー座標系に係るマーカーは、撮像画像に撮像されていないマーカーであると判断することが出来る。
【0114】
ステップS105では、相対関係情報が追加される。追加部62は、ステップS102において取得された相対関係情報を、記憶部59に保持させる。また、追加部62は、当該相対関係情報に係るマーカー座標系のうち、記憶部59に保持されていないマーカー座標系を、記憶部59に保持させる。即ち、本実施形態によれば、マーカー3の追加があった場合であっても、相対関係情報に基づいてこれを検出し、当該マーカー3に係る相対関係情報およびマーカー座標系を追加することが出来る。ここで、追加されたマーカー座標系については、更新フラグが真(TRUE)に設定される。その後、処理はステップS106へ進む。
【0115】
ステップS106では、全ての相対関係情報について、実空間におけるマーカー3の位置または姿勢に関する変更の判定が終了したか否かが判定される。未判定の相対関係情報がある場合、処理はステップS103へ進む。即ち、ステップS103からステップS106に示された処理は、ステップS102において取得された全ての相対関係情報について、実空間におけるマーカー3の位置または姿勢に関する変更の判定が終了するまで繰り
返される。
【0116】
ステップS107およびステップS108では、除去されたマーカー3に係るマーカー座標系および相対関係情報が削除される。削除部63は、前フレームにおいて取得されていた相対関係情報を参照し、当該相対関係情報に対応する相対関係情報が現フレームでは取得されておらず、且つ相対関係情報によればマーカー3があるはずの位置が撮像画像に含まれているが当該位置にマーカー3が検出されていない場合、当該マーカー3が除去されたと判定する(ステップS107)。マーカー3が除去されたと判定された場合、削除部63は、ステップ除去されたと判定されたマーカー3に係るマーカー座標系および相対関係情報を、記憶部59から削除する(ステップS108)。その後、本フローチャートに示された処理は終了する。
【0117】
一方、マーカー3が除去されたと判定されなかった場合、本フローチャートに示された処理は終了する。例えば、対応する相対関係情報が現フレームでは取得されていないが、マーカー3があるはずの位置が撮像画像に含まれていないような場合には、単に撮像画像にマーカー3が撮像されていないだけであって除去されていない可能性があるため、削除部63は、マーカー座標系の削除を行わない。
【0118】
図10は、本実施形態に係る推定処理の流れを示すフローチャートである。本フローチャートは、
図7のステップS005に示した推定処理の詳細を示す。
【0119】
ステップS201では、撮像画像に撮像されていないマーカー3が抽出される。情報処理部31は、記憶部59に保持されているマーカー3のうち、上述したステップS104において関連する相対関係情報およびマーカー座標系が何れも更新されなかったマーカー座標系に係るマーカー3を抽出することで、撮像画像に撮像されていないマーカー3を抽出する。ステップS104の説明において上述した通り、マーカー座標系毎の更新の有無は、更新フラグを用いて管理されているため、更新フラグが偽(FALSE)となっているマーカー座標系に係るマーカーは、撮像画像に撮像されていないマーカーであると判断することが出来る。なお、除去されたマーカーはステップS108において既に削除されているため、抽出されない。その後、処理はステップS201へ進む。
【0120】
但し、情報処理部31は、ステップS002において検出されたマーカー3と、記憶部59に保持されているマーカー3とを比較することで、撮像画像に撮像されていないが記憶部59に保持されているマーカー3を抽出してもよい。なお、マーカー3の比較は、撮像画像に含まれるマーカー3と、マーカー情報582に保持されているマーカー画像と、を画像認識エンジンを用いて比較することによって行われてもよいし、撮像画像に含まれるマーカー3に係るマーカー座標系と、記憶部59に保持されているマーカー座標系と、を比較することによって行われてもよい。
【0121】
ステップS202では、撮像画像に撮像されていないマーカー3の有無が判定される。情報処理部31は、ステップS201における抽出の結果を参照することで、撮像画像に撮像されていないマーカー3の有無を判定する。撮像画像に撮像されていないマーカー3が存在すると判定された場合、処理はステップS203へ進む。撮像画像に撮像されていないマーカー3が存在しない(換言すると、全てのマーカー3が撮像画像に撮像されている)と判定された場合、本フローチャートに示された処理は終了する。
【0122】
ステップS203では、撮像画像に撮像されていないマーカー3に係るマーカー座標系が推定される。推定部56は、ステップS201において抽出された、撮像画像に撮像されていないマーカー3に係るマーカー座標系(以下、「推定対象のマーカー座標系」と称する)を、撮像画像に撮像されているマーカー3に係るマーカー座標系と、これらのマー
カー座標系の相対関係を示す相対関係情報と、に基づいて推定する。具体的には、推定部56は、撮像されているマーカー3に係るマーカー座標系と、推定対象のマーカー座標系と、に係る相対関係情報である変換行列を記憶部59から取得し、座標変換の演算を行うことで、推定対象のマーカー座標系を推定する。その後、本フローチャートに示された処理は終了する。
【0123】
その後、
図7のステップS006に示されたゲーム進行処理、およびステップS007に示された表示処理が実行される。
【0124】
先述の通り、本実施形態によれば、撮像画像に含まれないマーカー3に係るマーカー座標系が推定されているため、撮像画像に含まれないマーカー3に係るマーカー座標系に配置されている仮想オブジェクトについても描画および表示をすることが出来る。
【0125】
図11は、本実施形態において、マーカー3bが実カメラ23による撮像範囲にない状態のゲームシステム100の様子を示す図である。
図11に示した例によれば、撮像画像にマーカー3bが含まれていないことが分かる。このため、特徴検出部52は、撮像画像からマーカー3bを検出することが出来ず、基準取得部53は、マーカー座標系MBを取得することが出来ない。しかし、本実施形態に係るゲーム装置1によれば、マーカー座標系MAからマーカー座標系MBへの座標変換を行うための変換行列(相対関係情報)が、マーカー3aとマーカー3bとが同時に撮像された時点で、予め取得されている。このため、推定部56は、基準取得部53によって取得されたマーカー座標系MAに基づいて、マーカー座標系MBを推定することが出来る。このため、
図11に示された例によれば、マーカー座標系MBに配置されているキャラクターオブジェクト5bについても、描画部57によって描画され、表示制御部58によって撮像画像に合成され、ディスプレイ22に表示される。
【0126】
また、上述した説明では、ゲーム進行処理をゲーム装置1で行う例を用いたが、上記ゲーム進行処理における処理ステップの少なくとも一部を他の装置で行ってもかまわない。例えば、ゲーム装置1が他の装置(例えば、サーバや他のゲーム装置)と通信を行う場合、上記ゲーム進行処理における処理ステップは、ゲーム装置1および当該他の装置が協働することによって実行してもよい。一例として、他の装置が特徴検出部52、基準取得部53および相対関係情報取得部54の処理を実行してもよい。このように、ゲーム進行処理の処理ステップの少なくとも一部を他の装置で行うことによって、上述したゲーム進行処理と同様の処理が可能となる。このように、上述したゲーム進行処理は、少なくとも1つの情報処理装置により構成される情報処理システムに含まれる1つのプロセッサまたは複数のプロセッサ間の協働により実行されることが可能である。また、上記実施形態においては、ゲーム装置1の情報処理部31が所定のプログラムを実行することによって、上述したフローチャートによる処理が行われたが、ゲーム装置1が備える専用回路によって上記処理の一部または全部が行われてもよい。
【0127】
また、上述したゲーム装置1の形状や、それに設けられている各種操作ボタン14、アナログスティック15、タッチパネル13の形状、数、および設置位置等は、単なる一例に過ぎず他の形状、数、および設置位置であっても、本発明を実現できることは言うまでもない。また、上述した画像処理で用いられる処理順序、設定値、判定に用いられる値等は、単なる一例に過ぎず他の順序や値であっても、本発明を実現できることは言うまでもない。
【0128】
また、上記ゲームプログラムは、外部メモリ45やデータ保存用外部メモリ46等の外部記憶媒体を通じてゲーム装置1に供給されるだけでなく、有線または無線の通信回線を通じてゲーム装置1に供給されてもよい。また、上記プログラムは、ゲーム装置1内部の
不揮発性記憶装置に予め記録されていてもよい。なお、上記プログラムを記憶する情報記憶媒体としては、不揮発性メモリの他に、CD−ROM、DVD、あるいはそれらに類する光学式ディスク状記憶媒体、フレキシブルディスク、ハードディスク、光磁気ディスク、磁気テープ、などでもよい。また、上記プログラムを記憶する情報記憶媒体としては、上記プログラムを一時的に記憶する揮発性メモリでもよい。このような外部記憶媒体は、コンピュータ等が読み取り可能な記録媒体ということができる。例えば、コンピュータ等に、この記録媒体のプログラムを読み込ませて実行させることにより、上述で説明した各種機能を提供させることができる。
【0129】
以上、本発明を詳細に説明してきたが、前述の説明はあらゆる点において本発明の例示に過ぎず、その範囲を限定しようとするものではない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。また、当業者は、本発明の具体的な実施形態の記載から、本発明の記載および技術常識に基づいて等価な範囲を実施することができることが理解される。また、本明細書において使用される用語は、特に言及しない限り、当該分野で通常用いられる意味で用いられることが理解されるべきである。したがって、他に定義されない限り、本明細書中で使用されるすべての専門用語および技術用語は、本発明の属する分野の当業者によって一般的に理解されるのと同じ意味を有する。矛盾する場合、本明細書(定義を含めて)が優先する。