説明

画像処理システム、画像処理プログラム、画像処理装置および画像処理方法

【課題】 第1画像処理装置(12)および第2画像処理装置(100)が連携して、モニタ28およびLCD112の撮像画像の間で第1オブジェクト(PO,EO)および第2オブジェクト(POb,EOb)を連動させる。
【解決手段】 第1画像処理装置(12)は、モニタ28にマーカMを表示することで、第2画像処理装置(100)に対して、LCD112の撮像画像への第2オブジェクト(POb,EOb)の表示制御を行わせ、一方、第2画像処理装置(100)は、マーカMに基づいて表示制御を行う際にマーカ認識信号を送信することで、第1画像処理装置(12)に対して、モニタ28への第1オブジェクト(PO,EO)の表示制御を行わせる。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、画像処理システム、画像処理プログラム、画像処理装置および画像処理方法に関し、より特定的には、実写画像とCG画像とを合成した合成画像の表示を行う、画像処理システム、画像処理プログラム、画像処理装置および画像処理方法に関する。
【背景技術】
【0002】
従来、この種の画像処理装置として、特許文献1に開示されたものが知られている。この背景技術では、画像処理装置は、2次元バーコードが貼付されたカードをCCDカメラで撮像して、この撮像画像の中から2次元バーコードを探知し、撮像画像の中での2次元バーコードの位置を検出すると共に2次元バーコードのパターンを識別した上で、このパターンに対応する3次元画像を撮像画像の中の2次元バーコードの位置に重畳して表示する。
【特許文献1】特開2000−322602号公報
【発明の概要】
【発明が解決しようとする課題】
【0003】
上記の背景技術では、2次元バーコードはカードに印刷されているが、これを別の画像処理装置たとえばPCのモニタに表示させることが考えられる。この場合、PCを介してモニタの2次元バーコードを変化させることで、画像処理装置に多様な3次元画像の合成を行わせることが可能となる。しかし、これは、PCから画像処理装置への一方向の表示制御に過ぎないので、興趣性を高めるには限界がある。
【0004】
それゆえに、この発明の主たる目的は、新規な、画像処理システム、画像処理プログラム、画像処理装置および画像処理方法を提供することである。
【0005】
この発明の他の目的は、第1画像処理装置および第2画像処理装置が連携して、第1表示手段および第2表示手段の撮像画像の間で第1オブジェクトおよび第2オブジェクトを連動させることができる、画像処理システム、画像処理プログラムおよび画像処理方法、ならびに、そのような第1画像処理装置および第2画像処理装置を提供することである。
【課題を解決するための手段】
【0006】
この発明は、上記の課題を解決するために、以下の構成を採用した。
【0007】
第1の発明は、第1表示手段を利用する第1画像処理装置と、撮像手段および画面上に現実空間を視認可能な第2表示手段を利用する第2画像処理装置とを含む、画像処理システムであって、第1画像処理装置は、所定のマーカ画像を第1表示手段に表示する第1表示処理手段、および第1表示手段に対して、所定のCGオブジェクトである第1オブジェクト画像の少なくとも一部の表示の制御を行う第1オブジェクト表示制御手段を備え、第2画像処理装置は、撮像手段で撮像を行う撮像処理手段、および撮像画像内でマーカ画像を認識することにより、第2表示手段上で視認可能な現実空間に対して、撮像画像内のマーカ画像を基準とした位置に、所定のCGオブジェクトである第2オブジェクト画像の少なくとも一部の合成の制御を行う第2オブジェクト表示制御手段を備える。
【0008】
第1の発明では、第1画像処理装置は、所定のマーカ画像を第1表示手段に表示して、所定のCGオブジェクトである第1オブジェクト画像の少なくとも一部の表示の制御を行い、第2画像処理装置は、撮像手段で撮像を行い、撮像画像内でマーカ画像を認識することにより、第2表示手段上で視認可能な現実空間に対して、撮像画像内のマーカ画像を基準とした位置に、所定のCGオブジェクトである第2オブジェクト画像の少なくとも一部の合成の制御を行う。
【0009】
第1の発明によれば、第1画像処理装置および第2画像処理装置がマーカ画像を通じて連携して、第1表示手段および第2表示手段の撮像画像の間で第1オブジェクトおよび第2オブジェクトを連動させることが可能となる。
【0010】
ここで、第1オブジェクトおよび第2オブジェクトは、共通のオブジェクトでもよく(つまり共通のオブジェクトが、第1表示手段では第1オブジェクトになり、第2表示手段では第2オブジェクトになる)、共通のオブジェクトの一部(たとえば頭および腕)および他の一部(たとえば胴体)でもよい。このように、第1オブジェクトおよび第2オブジェクトは、好ましくは互いに関連したオブジェクトであるが、互いに独立したオブジェクトでもよい。
【0011】
たとえば、第1オブジェクトおよび第2オブジェクトが共通のオブジェクト(の一部および他の一部)である場合、オブジェクトが第1表示手段および第2表示手段の間を移動するように見せる(表示制御する)ことができる。ある実施例では、オブジェクトは、第1表示手段から第2表示手段の撮像画像上に飛び出したり、そこから第1表示手段に戻ったりする。一変形例では、オブジェクトは、第1表示手段および第2表示手段の撮像画像上に同時に登場し、そこから同時に退場する。
【0012】
なお、マーカ画像は、常時表示するのが好ましいが、適時表示してもよい。マーカ画像は、ある実施例では常時表示されるが、一変形例では適時表示される。
【0013】
また、合成は、ある実施例では重畳表示であるが、撮像画像自体を変化させるのでもよい。
【0014】
第2の発明は、第1の発明に従属する画像処理システムであって、第1画像処理手段と第2画像処理手段は通信可能であり、第1オブジェクト表示制御手段は、通信により連動して、第1オブジェクト画像の表示の制御を行い、第2オブジェクト表示制御手段は、通信により連動して、第2オブジェクト画像の合成の制御を行う。
【0015】
第2の発明によれば、第1画像処理装置および第2画像処理装置がマーカ画像および通信を通じて連携するので、第1オブジェクトおよび第2オブジェクトの連動性を高めることができる。
【0016】
第3の発明は、第2の発明に従属する画像処理システムであって、第2オブジェクト表示制御手段は、撮像画像内でマーカ画像を認識した際に、撮像画像内に第2オブジェクト画像の少なくとも一部を合成し、第1オブジェクト表示制御手段は、第2オブジェクト表示制御手段において、撮像画像内でマーカ画像を認識した際に、第1表示手段に対して、第1オブジェクト画像が消えるように制御を行う。
【0017】
第3の発明によれば、第1表示手段から第1オブジェクト画像が消えるのに伴って、第2表示手段の撮像画像内に第2オブジェクト画像が出現するようにできる。
【0018】
第4の発明は、第2の発明に従属する画像処理システムであって、第2オブジェクト表示制御手段は、撮像画像内でマーカ画像を認識した際に、撮像画像内に第2オブジェクト画像の少なくとも一部を合成し、第1オブジェクト表示制御手段は、第2オブジェクト表示制御手段において、撮像画像内でマーカ画像を認識した際に、第1表示手段に対して、第1オブジェクト画像が表示されるように制御を行う。
【0019】
第4の発明によれば、第2表示手段の撮像画像内に第2オブジェクト画像が出現するのに伴って、第1表示手段にも第1オブジェクト画像が出現するようにできる。
【0020】
第5の発明は、第1の発明に従属する画像処理システムであって、マーカ画像には識別情報が含まれ、第1オブジェクト画像および第2オブジェクト画像は、それぞれマーカ画像に含まれる識別情報に対応した画像である。
【0021】
第5の発明によれば、マーカ画像に含まれる識別情報を通じて、多様な第1オブジェクト画像および第2オブジェクト画像を表示させることができる。
【0022】
第6の発明は、第1の発明に従属する画像処理システムであって、第1表示処理手段は、複数のマーカ画像を第1表示手段に表示する。
【0023】
第6の発明によれば、複数のマーカ画像を表示することで、認識可能範囲を広げることができる。
【0024】
第7の発明は、第6の発明に従属する画像処理システムであって、第1表示処理手段は、4つのマーカ画像を第1表示手段の四隅に表示する。
【0025】
第7の発明によれば、第1表示手段の視認性をできるだけ維持しながら、認識可能範囲を広げることができる。
【0026】
第8の発明は、第6または第7の発明に従属する画像処理システムであって、第1オブジェクト表示制御手段は、複数のマーカ画像に囲まれた所定の位置に対して、第1オブジェクト画像が表示されるように制御を行い、第2オブジェクト表示制御手段は、撮像画像内で複数のマーカ画像の少なくも一つを認識することにより、撮像画像内で認識された複数のマーカ画像に囲まれた位置に対して、第2オブジェクト画像の合成の制御を行う。
【0027】
第8の発明によれば、第1表示手段および第2表示手段の各々で、マーカに囲まれた所定の位置にオブジェクト画像を表示できる。
【0028】
第9の発明は、第1の発明に従属する画像処理システムであって、第2オブジェクト表示制御手段は、撮像画像中のマーカ画像に対してAR認識することにより、撮像画像中のマーカ画像の位置および姿勢に応じた位置および姿勢で第2オブジェクトの合成の制御を行う。
【0029】
第9の発明によれば、AR認識を通じて第2オブジェクトの合成制御を精度よく行うことができる。
【0030】
第10の発明は、第9の発明に従属する画像処理システムであって、第2オブジェクト表示制御手段は、撮像画像中のマーカ画像を認識することにより、第1表示手段上のマーカ画像と、撮像手段との位置および姿勢の相対関係を算出する位置姿勢算出手段、仮想空間に第2オブジェクトを配置するとともに、当該第2オブジェクトと仮想カメラとの位置および姿勢の相対関係が、位置姿勢算出手段によって算出された位置および姿勢と同じなるように、当該仮想カメラの位置および姿勢を決定する仮想カメラ設定手段、および仮想カメラで第2オブジェクトを含む仮想空間を撮影する仮想空間撮影手段を含み、撮像画像と仮想空間撮影手段で撮影した仮想空間との合成の制御を行う。
【0031】
第10の発明によれば、第1表示手段上のマーカ画像と、撮像手段との位置および姿勢の相対関係を算出して、仮想空間に第2オブジェクトを配置するとともに、当該第2オブジェクトと仮想カメラとの位置および姿勢の相対関係が、位置姿勢算出手段によって算出された位置および姿勢と同じなるように、当該仮想カメラの位置および姿勢を決定するので、第2オブジェクトを高い精度で合成できる。
【0032】
第11の発明は、第1の発明に従属する画像処理システムであって、第2画像処理装置は、撮像処理手段で撮像した撮像画像を第2表示手段に表示する第2表示処理手段をさらに備え、第2オブジェクト表示制御手段は、第2表示手段で表示されている撮像画像に対して、第2オブジェクトの合成の制御を行う。
【0033】
第11の発明によれば、第2オブジェクトの撮像画像への合成が行える。
【0034】
第12の発明は、第1の発明に従属する画像処理システムであって、第2画像処理装置はさらに、マーカ画像の認識結果に基づいて、第1画像処理装置に対して第1信号を送信する第1信号送信手段を備え、第1画像処理装置はさらに、第1信号送信手段で送信された第1信号を受信する第1信号受信手段を備え、第1オブジェクト表示制御手段は、第1信号受信手段で受信された第1信号に基づいて、第1オブジェクトの表示を制御する。
【0035】
第12の発明によれば、第1表示手段に所定のマーカ画像を表示することで、第2画像処理装置に対して、第2表示手段の撮像画像への第2オブジェクトの表示制御を行わせ、一方、第2画像処理装置は、マーカ画像に基づいて表示制御を行う際に第1信号を送信することで、第1画像処理装置に対して、第1表示手段への第1オブジェクトの表示制御を行わせるので、第1画像処理装置および第2画像処理装置がマーカ画像および第1信号を通じて連携して、第1表示手段および第2表示手段の撮像画像の間で第1オブジェクトおよび第2オブジェクトを連動させることが可能となる。
なお、第1信号は、好ましくは、マーカ画像が含まれると判定された判定結果(YES)を示す判定結果信号であり、繰り返し送信されるが、判定結果がNOからYESに変化したタイミングを示すタイミング信号などでもよく、単発的に送信されてよい。
【0036】
第13の発明は、第12の発明に従属する画像処理システムであって、第1画像処理装置は、第1信号受信手段で第1信号が受信された場合に、第2画像処理装置に対して第2信号を送信する第2信号送信手段をさらに備え、第2画像処理装置は、第2信号を受信する第2信号受信手段をさらに備え、第2オブジェクト表示制御手段は、第2信号受信手段で受信された第2信号に基づいて表示制御を行う。
【0037】
第13の発明では、第2画像処理装置は、第1信号を受信した場合に第1画像処理装置に第2信号を送信し、第1処理装置は、第2信号に基づいて表示制御を行う。
【0038】
第13の発明によれば、第1画像処理装置および第2画像処理装置は、マーカ画像および第1信号に加えて第2信号を通じて連携するので、第1オブジェクトおよび第2オブジェクトの連動性を高めることができる。
【0039】
なお、第2信号は、好ましくは表示制御の内容およびタイミングを示す制御信号であるが、単に表示制御のタイミングを示すタイミング信号でもよいし、第1信号が受信されたことを確認する確認信号(たとえばACK)でもよい。また、第2信号は、好ましくは繰り返し送信されるが、単発的に送信されてもよい。
【0040】
第14の発明は、第13の発明に従属する画像処理システムであって、第2信号送信手段は、第1信号受信手段で第1信号を受信されてから第1所定時間が経過した後に、第2画像処理装置に対して第2信号を送信する。
【0041】
第14の発明によれば、第1制御装置は、第1信号の受信からの経過時間に基づいて第2信号の送信を行うので、第2オブジェクトの合成に関し能動的な制御が可能となる。
【0042】
なお、第1画像処理装置による第2信号の送信は、第1制御装置からのコマンドに基づいて受動的に行われてもよい。
【0043】
第15の発明は、第13または第14の発明に従属する画像処理システムであって、第1オブジェクト表示制御手段は、第2信号送信手段で第2信号を送信された後に表示制御を行う。
【0044】
第15の発明によれば、第1画像処理装置は、第2信号の送信後に第1オブジェクトの表示制御を行うので、第2画像処理装置が第2信号に応じて第2オブジェクトの表示制御を行うことで、第1画像処理装置自身による表示制御を第2画像処理装置による表示制御と互いに同期させることが可能となる。たとえば、第1画像処理装置および第2画像処理装置の間で、表示制御の開始タイミングを一致させるのが容易になる。
【0045】
第16の発明は、第14の発明に従属する画像処理システムであって、第1画像処理装置は、第1オブジェクト表示制御手段で表示制御が行われてから第2所定時間が経過した後に、第2画像処理装置に対して第3信号を送信する第3信号送信手段をさらに備え、第2画像処理装置は、第3信号を受信する第3信号受信手段をさらに備え、第2オブジェクト表示制御手段は、第3信号受信手段で第3信号を受信された後に、撮像画像から第2オブジェクトを削除する。
【0046】
第16の発明によれば、第1制御装置は、第1オブジェクトの表示制御が行われてからの経過時間に基づいて第3信号の送信を行うので、第2オブジェクトの合成さらには削除に関し能動的な制御が可能となる。
【0047】
なお、第1画像処理装置による第3信号の送信もまた、第1制御装置からのコマンドに基づいて受動的に行われてもよい。
【0048】
また、第3信号は、好ましくは表示制御の内容およびタイミングを示す制御信号であるが、単に表示制御のタイミングを示すタイミング信号でもよい。また、第3信号は、好ましくは繰り返し送信されるが、単発的に送信されてもよい。
【0049】
第17の発明は、第16の発明に従属する画像処理システムであって、第1オブジェクト表示制御手段は、第3信号送信手段で第3信号を送信された後に、表示制御を行う前の状態にする。
【0050】
第17の発明によれば、第2表示手段で第2オブジェクトが削除されたとき、第1表示手段の撮像画像を元の状態つまり第1オブジェクトが合成される前の状態に戻すことができる。
【0051】
第18の発明は、第12の発明に従属する画像処理システムであって、第1表示処理手段は、所定の識別情報と共に、第1オブジェクトの少なくとも一部を表示し、第1オブジェクト表示制御手段は、第1信号に基づいて、第1オブジェクトの少なくとも一部を消去する。
【0052】
第18の発明によれば、第1表示手段および第2表示手段の間でオブジェクトが移動したような表現が可能となる。
【0053】
第19の発明は、第12の発明に従属する画像処理システムであって、第1オブジェクト表示制御手段は、第1信号に基づいて、第1オブジェクトの少なくとも一部を表示する。
【0054】
第19の発明によれば、第1表示手段および第2表示手段の間でオブジェクトが同時に登場/退場したような表現が可能となる。
【0055】
第20の発明は、第1の発明に従属する画像処理システムであって、第1オブジェクト表示制御手段は、マーカ画像の大きさに基づいて、第1オブジェクトの大きさを変更する第1オブジェクト大きさ変更手段を含み、第2オブジェクト表示制御手段は、マーカ画像の大きさに基づいて、第2オブジェクトの大きさを変更する第2オブジェクト大きさ変更手段を含む。
【0056】
第20の発明によれば、マーカの大きさを通して、オブジェクトの大きさを制御することが可能となる。
【0057】
第21の発明は、第1の発明に従属する画像処理システムであって、第1オブジェクト表示制御手段は、マーカ画像の形状に基づいて、第1オブジェクトの表示方向を変更する第1オブジェクト方向変更手段を含み、第2オブジェクト表示制御手段は、マーカ画像の形状に基づいて、第2オブジェクトの表示方向を変更する第2オブジェクト方向変更手段を含む。
【0058】
第21の発明によれば、マーカの形状を通して、オブジェクトの方向を制御することが可能となる。
【0059】
第22の発明は、第12の発明に従属する画像処理システムであって、第1信号には座標情報が含まれ、第1オブジェクト表示制御手段は、第1信号に含まれる座標情報に基づいて、第1オブジェクトの少なくとも一部の表示の制御を行う。
【0060】
第22の発明によれば、第2画像処理装置が第1信号に座標情報を含めて送信することで、第1画像処理装置では、第2画像処理装置と連動した表示が可能となる。
【0061】
第23の発明は、第11の発明に従属する画像処理システムであって、第2表示処理手段は、第2表示手段にマーカ画像と同一形状の枠を表示する枠表示手段を含み、第2オブジェクト表示制御手段は、マーカ画像が、枠表示手段で表示された枠に沿って表示されている状態で認識する。
【0062】
第23の発明によれば、第2表示手段にマーカ画像と同一形状の枠を表示して、マーカ画像が枠に沿って表示されている状態で認識を行うので、マーカ画像の位置に基づく方向検出さらには座標変換といった処理を行う必要がなくなり、処理負荷が軽減される。
【0063】
第24の発明は、第1表示手段を利用する第1画像処理装置と、撮像手段および画面上に現実空間を視認可能な第2表示手段を利用する第2画像処理装置とで画像処理を行う、画像処理プログラムであって、第1画像処理装置のコンピュータを、所定のマーカ画像を第1表示手段に表示する第1表示処理手段、および第1表示手段に対して、所定のCGオブジェクトである第1オブジェクト画像の少なくとも一部の表示の制御を行う第1オブジェクト表示制御手段として機能させ、第2画像処理装置のコンピュータを、撮像手段で撮像を行う撮像処理手段、および撮像画像内でマーカ画像を認識することにより、第2表示手段上で視認可能な現実空間に対して、撮像画像内のマーカ画像を基準とした位置に、所定のCGオブジェクトである第2オブジェクト画像の少なくとも一部の合成の制御を行う第2オブジェクト表示制御手段として機能させる。
【0064】
第25の発明は、第1表示手段を利用して、撮像手段および画面上に現実空間を視認可能な第2表示手段を利用する第2画像処理装置と連携する、第1画像処理装置であって、所定のマーカ画像を第1表示手段に表示する第1表示処理手段、および第1表示手段に対して、所定のCGオブジェクトである第1オブジェクト画像の少なくとも一部の表示の制御を行う第1オブジェクト表示制御手段を備え、第2画像処理装置には、撮像手段で撮像を行う撮像処理手段、および撮像画像内でマーカ画像を認識することにより、第2表示手段上で視認可能な現実空間に対して、撮像画像内のマーカ画像を基準とした位置に、所定のCGオブジェクトである第2オブジェクト画像の少なくとも一部の合成の制御を行う第2オブジェクト表示制御手段が備えられる。
【0065】
第26の発明は、第1表示手段を利用する第1画像処理装置と連携して、撮像手段および画面上に現実空間を視認可能な第2表示手段を利用する、第2画像処理装置であって、第1画像処理装置には、所定のマーカ画像を第1表示手段に表示する第1表示処理手段、および第1表示手段に対して、所定のCGオブジェクトである第1オブジェクト画像の少なくとも一部の表示の制御を行う第1オブジェクト表示制御手段が備えられ、撮像手段で撮像を行う撮像処理手段、および撮像画像内でマーカ画像を認識することにより、第2表示手段上で視認可能な現実空間に対して、撮像画像内のマーカ画像を基準とした位置に、所定のCGオブジェクトである第2オブジェクト画像の少なくとも一部の合成の制御を行う第2オブジェクト表示制御手段を備える。
【0066】
第27の発明は、第1表示手段を利用する第1画像処理装置と、撮像手段および画面上に現実空間を視認可能な第2表示手段を利用する第2画像処理装置とで行う、画像処理方法であって、第1画像処理装置のコンピュータで行う、所定のマーカ画像を第1表示手段に表示する第1表示処理ステップ、および第1表示手段に対して、所定のCGオブジェクトである第1オブジェクト画像の少なくとも一部の表示の制御を行う第1オブジェクト表示制御ステップ、ならびに第2画像処理装置のコンピュータで行う、撮像手段で撮像を行う撮像処理ステップ、および撮像画像内でマーカ画像を認識することにより、第2表示手段上で視認可能な現実空間に対して、撮像画像内のマーカ画像を基準とした位置に、所定のCGオブジェクトである第2オブジェクト画像の少なくとも一部の合成の制御を行う第2オブジェクト表示制御ステップを含む。
【0067】
第24〜第27の発明でも、第1の発明と同様に、第1画像処理装置および第2画像処理装置がマーカ画像を通じて連携して、第1表示手段および第2表示手段の撮像画像の間で第1オブジェクトおよび第2オブジェクトを連動させることが可能となる。
【発明の効果】
【0068】
この発明によれば、第1画像処理装置および第2画像処理装置が連携して、第1表示手段および第2表示手段の撮像画像の間で第1オブジェクトおよび第2オブジェクトを連動させることができる、画像処理システム、画像処理プログラムおよび画像処理方法、ならびに、そのような第1画像処理装置および第2画像処理装置が実現される。
【0069】
この発明の上述の目的,その他の目的,特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【図面の簡単な説明】
【0070】
【図1】この発明のゲームシステムの一実施例を示す図解図である。
【図2】ゲームシステムの電気的な構成を示すブロック図である。
【図3】第1コントローラの外観を説明するための図解図である。
【図4】第2コントローラの外観を説明するための図解図である。
【図5】コントローラ(第1コントローラおよび第2コントローラを互いに接続したもの)の電気的な構成を示すブロック図である。
【図6】コントローラを用いて仮想ゲームをプレイするときの状態を概説するための図解図である。
【図7】マーカおよびコントローラの視野角を説明するための図解図である。
【図8】コントローラによる撮像画像の一例を示す図解図である。
【図9】携帯ゲーム装置の外観図であり、開状態における正面を示す。
【図10】携帯ゲーム装置の外観図であり、開状態における側面を示す。
【図11】携帯ゲーム装置の外観図であり、図11(A)は閉状態における一方側面を、図11(B)は閉状態における上面を、図11(C)は閉状態における他方側面を、そして図11(D)は閉状態における下面をそれぞれ示す。
【図12】携帯ゲーム装置がユーザによって把持された様子を示す図解図である。
【図13】携帯ゲーム装置の電気的構成の一例を示すブロック図である。
【図14】「飛び出す」仮想ゲームをプレイするときの状態を概説するための図解図である。
【図15】メモリマップの一部を示す図解図であり、図15(A)が据え置き側のメモリマップを示し、図15(B)が携帯側のメモリマップを示す。
【図16】CPU動作の一部を示すフロー図であり、図16(A)が据え置き側のCPU動作を示し、図16(B)が携帯側のCPU動作を示す。
【図17】据え置き側のCPU動作の他の一部を示すフロー図である。
【図18】携帯側のCPU動作の他の一部を示すフロー図である。
【図19】携帯側のCPU動作のその他の一部を示すフロー図である。
【図20】パターン保存時の表示制御を説明するための図解図であり、図20(A)がモニタ画面を示し、図20(B)がLCD画面を示す。
【図21】パターン保存時のサイズ変換を説明するための図解図である。
【図22】ゲームプレイ時の表示制御の一部を説明するための図解図であり、図22(A)がモニタ画面を示し、図22(B)がLCD画面を示す。
【図23】図22に続く図解図であり、図23(A)がモニタ画面を示し、図23(B)がLCD画面を示す。
【図24】図23に続く図解図であり、図24(A)がモニタ画面を示し、図24(B)がLCD画面を示す。
【図25】図24に続く図解図であり、図25(A)がモニタ画面を示し、図25(B)がLCD画面を示す。
【図26】ゲームプレイ時の表示制御の他の一部を説明するための図解図であり、図26(A)がモニタ画面とLCD画面との間の位置関係の変化を示し、図26(B)が変化後のLCD画面を示す。
【図27】第1変形例における据え置き側のCPU動作の一部を示すフロー図である。
【図28】第1変形例における携帯側のCPU動作の一部を示すフロー図である。
【図29】第1変形例における表示制御を説明するための図解図であり、図29(A)がモニタ画面を示し、図29(B)がLCD画面を示す。
【図30】図29に続く図解図であり、図30(A)がモニタ画面を示し、図30(B)がLCD画面を示す。
【図31】第2変形例におけるCPU動作の一部を示すフロー図であり、図31(A)が据え置き側のCPU動作を示し、図31(B)が携帯側のCPU動作を示す。
【図32】第2変形例における表示制御を説明するための図解図であり、図32(A)がモニタ画面を示し、図32(B)がLCD画面を示す。
【図33】図32に続く図解図であり、図33(A)がモニタ画面を示し、図33(B)がLCD画面を示す。
【発明を実施するための形態】
【0071】
図1を参照して、この発明の一実施例であるゲームシステム10は、ゲーム装置12(据え置き型のゲーム装置)およびコントローラ14を含む。図示は省略するが、この実施例のゲーム装置12は、最大4つのコントローラ14と通信可能に設計されている。また、ゲーム装置12と各コントローラ14とは、無線によって接続される。たとえば、無線通信は、MP(Multilink Protocol)またはBluetooth(登録商標)規格に従って実行されるが、赤外線や無線LANなど他の規格に従って実行されてもよい。さらには、有線で接続されてもよい。
【0072】
ゲーム装置12は、略直方体のハウジング16を含み、ハウジング16の前面にはディスクスロット18が設けられる。ディスクスロット18から、ゲームプログラム等を記憶した情報記憶媒体の一例である光ディスク24が挿入されて、ハウジング16内のディスクドライブ54(図2参照)に装着される。図示は省略するが、ディスクスロット18の周囲には、LEDと導光板とが配置され、様々な処理に応答させて、ディスクスロット18を点灯または点滅させることが可能である。
【0073】
また、ゲーム装置12のハウジング16の前面の上部には、電源ボタン20aおよびリセットボタン20bが設けられ、その下部には、イジェクトボタン20cが設けられる。さらに、リセットボタン20bとイジェクトボタン20cとの間であり、ディスクスロット18の近傍には、外部メモリカード用コネクタカバー22が設けられる。この外部メモリカード用コネクタカバー22の内側には、外部メモリカード用コネクタ62(図2参照)が設けられ、外部メモリカード38(以下、単に「メモリカード38」という。)が挿入される。メモリカード38は、光ディスク24から読み出したゲームプログラム等をローディングして一時的に記憶したり、このゲームシステム10を利用してプレイしたゲームのゲームデータ(ゲームの結果データまたは途中データ、あるいは後述するリプレイデータ)を保存(セーブ)しておいたりするために利用される。ただし、上記のゲームデータの保存は、メモリカード38に対して行うことに代えて、たとえばゲーム装置12の内部に設けられるフラッシュメモリ44(図2参照)のような内部メモリに対して行うようにしてもよい。また、メモリカード38は、内部メモリのバックアップメモリとして用いるようにしてもよい。さらに、ゲーム装置12では、ゲーム以外の他のアプリケーションを実行することも可能であり、かかる場合には、メモリカード38には当該他のアプリケーションのデータを保存することができる。
【0074】
なお、メモリカード38としては、汎用のSDカードを用いることができるが、メモリスティックやマルチメディアカード(登録商標)のような他の汎用のメモリカードを用いることもできる。メモリカード38は、ゲーム装置12と同様の構成を有する他のゲーム装置12Aでも利用することができるので、ゲームデータをメモリカード38を介して他のプレイヤに提供することもできる。
【0075】
図1では省略するが、ゲーム装置12のハウジング16の後面には、AVコネクタ58(図2参照)が設けられ、そのAVコネクタ58を用いて、AVケーブル26を通してゲーム装置12にモニタ28およびスピーカ30を接続する。このモニタ28およびスピーカ30は典型的にはカラーテレビジョン受像機であり、AVケーブル26によって、ゲーム装置12からの映像信号がカラーテレビのビデオ入力端子に入力され、ゲーム装置12からの音声信号が音声入力端子に入力される。したがって、カラーテレビ(モニタ)28の画面上にたとえば3次元(3D)ビデオゲームの仮想3次元ゲーム画像が表示され、左右のスピーカ30からゲーム音楽や効果音などのステレオゲーム音声が出力される。また、モニタ28の周辺(この実施例では、モニタ28の上側)には、2つの赤外LED(マーカ)32Aおよび32Bを備えるマーカ部32が設けられる。このマーカ部32は、電源線32cを通してゲーム装置12に接続される。したがって、マーカ部32には、ゲーム装置12から電源が供給される。これによって、マーカ32Aおよび32Bは発光し、それぞれモニタ28の前方に向けて赤外光を出力する。
【0076】
なお、ゲーム装置12の電源は、一般的なACアダプタ(図示せず)によって与えられる。ACアダプタは家庭用の標準的な壁ソケットに差し込まれ、ゲーム装置12は、家庭用電源(商用電源)を、駆動に適した低いDC電圧信号に変換する。他の実施例では、電源としてバッテリが用いられてもよい。
【0077】
コントローラ14は、詳細は後述されるが、第1の操作ユニットおよび第2の操作ユニットとして、それぞれが片手で把持可能な第1コントローラ34および第2コントローラ36を含む。第2コントローラ36の後端から延びるケーブル36aの先端にはコネクタ36bが設けられており、当該コネクタ36bは、第1コントローラ34の後端面に設けられるコネクタ34a(図3、図5)に接続される。第2コントローラ36において取得される入力データは、ケーブル36aを介して第1コントローラ34に与えられる。第1コントローラ34は、第1コントローラ34自身の入力データと第2コントローラ36の入力データとを含むコントローラデータをゲーム装置12に送信する。
【0078】
このゲームシステム10において、ユーザまたはプレイヤがゲーム(またはゲームに限らず、他のアプリケーション)をプレイするために、ユーザは電源スイッチ20aによってまずゲーム装置12の電源をオンし、次いで、ユーザはビデオゲーム(もしくはプレイしたいと思う他のアプリケーション)のプログラムを記録している適宜の光ディスク24を選択し、その光ディスク24をゲーム装置12のディスクドライブ54にローディングする。応じて、ゲーム装置12がその光ディスク24に記録されているプログラムに基づいてビデオゲームもしくは他のアプリケーションを実行し始める。ユーザはゲーム装置12に入力を与えるためにコントローラ14を操作する。たとえば操作部82のどれかの操作ボタンを操作することによって、ゲームもしくは他のアプリケーションをスタートさせる。また、操作部82に対する操作以外にも、コントローラ14自体を動かすことによって、動画オブジェクト(プレイヤオブジェクト)を異なる方向に移動させ、または3Dのゲーム世界におけるユーザの視点(仮想カメラの位置)を変化させることができる。
【0079】
ただし、ビデオゲームや他のアプリケーションのプログラムは、ゲーム装置12の内部メモリ(フラッシュメモリ44(図2参照))に記憶(インストール)しておき、当該内部メモリから実行するようにしてもよい。かかる場合には,光ディスク24のような記憶媒体に記憶されたプログラムを内部メモリにインストールしてもよいし、ダウンロードされたプログラムを内部メモリにインストールしてもよい。
【0080】
図2は図1実施例のゲームシステム10の電気的な構成を示すブロック図である。図示は省略するが、ハウジング16内の各コンポーネントは、プリント基板に実装される。図2に示すように、ゲーム装置12には、CPU40が設けられ、ゲームプロセッサとして機能する。また、CPU40には、システムLSI42が接続される。このシステムLSI42には、外部メインメモリ46、ROM/RTC48、ディスクドライブ54およびAV IC56が接続される。
【0081】
外部メインメモリ46は、ゲームプログラム等のプログラムを記憶したり、各種データを記憶したりして、CPU40のワーク領域やバッファ領域として用いられる。ROM/RTC48は、いわゆるブートROMであり、ゲーム装置12の起動用のプログラムが組み込まれるとともに、時間をカウントする時計回路が設けられる。ディスクドライブ54は、光ディスク24からプログラムやテクスチャデータ等を読み出し、CPU40の制御の下で、後述する内部メインメモリ42eまたは外部メインメモリ46に書き込む。
【0082】
システムLSI42には、入出力プロセッサ42a、GPU(Graphics Processor Unit)42b,DSP(Digital Signal Processor)42c,VRAM42dおよび内部メインメモリ42eが設けられ、図示は省略するが、これらは内部バスによって互いに接続される。入出力プロセッサ(I/Oプロセッサ)42aは、データの送受信を実行したり、データのダウンロードを実行したりする。GPU42bは、描画手段の一部を形成し、CPU40からのグラフィクスコマンド(作画命令)を受け、そのコマンドに従ってゲーム画像データを生成する。ただし、CPU40は、グラフィクスコマンドに加えて、ゲーム画像データの生成に必要な画像生成プログラムをGPU42bに与える。
【0083】
図示は省略するが、上述したように、GPU42bにはVRAM42dが接続される。GPU42bが作画命令を実行するにあたって必要なデータ(画像データ:ポリゴンデータやテクスチャデータなどのデータ)は、GPU42bがVRAM42dにアクセスして取得する。ただし、CPU40は、描画に必要な画像データを、GPU42bを介してVRAM42dに書き込む。GPU42bは、VRAM42dにアクセスして描画のためのゲーム画像データを作成する。
【0084】
なお、この実施例では、GPU42bがゲーム画像データを生成する場合について説明するが、ゲームアプリケーション以外の任意のアプリケーションを実行する場合には、GPU42bは当該任意のアプリケーションについての画像データを生成する。
【0085】
また、DSP42cは、オーディオプロセッサとして機能し、内部メインメモリ42eや外部メインメモリ46に記憶されるサウンドデータや音波形(音色)データを用いて、スピーカ30から出力する音、音声或いは音楽に対応するオーディオデータを生成する。
【0086】
上述のように生成されたゲーム画像データおよびオーディオデータは、AV IC56によって読み出され、AVコネクタ58を介してモニタ28およびスピーカ30に出力される。したがって、ゲーム画面がモニタ28に表示され、ゲームに必要な音(音楽)がスピーカ30から出力される。
【0087】
また、入出力プロセッサ42aには、フラッシュメモリ44、無線通信モジュール50および無線コントローラモジュール52が接続されるとともに、拡張コネクタ60およびメモリカード用コネクタ62が接続される。また、無線通信モジュール50にはアンテナ50aが接続され、無線コントローラモジュール52にはアンテナ52aが接続される。
【0088】
入出力プロセッサ42aは、無線通信モジュール50を介して、ネットワークに接続された他のゲーム装置やサーバ(いずれも図示せず)と通信することができる。入出力プロセッサ42aは、定期的にフラッシュメモリ44にアクセスし、ネットワークへ送信する必要があるデータ(「送信データ」とする)の有無を検出し、当該送信データが有る場合には、無線通信モジュール50およびアンテナ50aを介してネットワークに送信する。また、入出力プロセッサ42aは、他のゲーム装置から送信されるデータ(「受信データ」とする)を、アンテナ50aおよび無線通信モジュール50を介して受信し、当該受信データをフラッシュメモリ44に記憶する。ただし、受信データが一定の条件を満たさない場合には、当該受信データはそのまま破棄される。さらに、入出力プロセッサ42aは、ネットワークに接続されたサーバからダウンロードしたデータ(ダウンロードデータとする)をネットワーク、アンテナ50aおよび無線通信モジュール50を介して受信し、そのダウンロードデータをフラッシュメモリ44に記憶することもできる。
【0089】
また、入出力プロセッサ42aは、コントローラ14から送信される入力データをアンテナ52aおよび無線コントローラモジュール52を介して受信し、内部メインメモリ42eまたは外部メインメモリ46のバッファ領域に記憶(一時記憶)する。入力データは、CPU40の処理(たとえば、ゲーム処理)によって利用された後、バッファ領域から消去される。
【0090】
ただし、入出力プロセッサ42aは、無線通信モジュール50を介して、ネットワークを通すことなく直接的に、同種の他のゲーム装置や、携帯型のゲーム装置100(後述)と通信することも可能である。
【0091】
さらに、入出力プロセッサ42aには、拡張コネクタ60およびメモリカード用コネクタ62が接続される。拡張コネクタ60は、USBやSCSIのようなインターフェースのためのコネクタであり、外部記憶媒体のようなメディアを接続したり、コントローラ14とは異なる他のコントローラのような周辺機器を接続したりすることができる。また、拡張コネクタ60に有線LANアダプタを接続し、無線通信モジュール50に代えて当該有線LANを利用することもできる。メモリカード用コネクタ62には、メモリカード38のような外部記憶媒体を接続することができる。したがって、たとえば、入出力プロセッサ42aは、拡張コネクタ60やメモリカード用コネクタ62を介して、外部記憶媒体にアクセスし、データを保存したり、データを読み出したりすることができる。
【0092】
詳細な説明は省略するが、図1にも示したように、ゲーム装置12(ハウジング16)には、電源ボタン20a,リセットボタン20bおよびイジェクトボタン20cが設けられる。電源ボタン20aは、システムLSI42に接続される。この電源ボタン20aがオンされると、システムLSI42には、ゲーム装置12の各コンポーネントに図示しないACアダプタを経て電源が供給され、通常の通電状態となるモード(「通常モード」と呼ぶこととする)が設定される。一方、電源ボタン20aがオフされると、システムLSI42には、ゲーム装置12の一部のコンポーネントのみに電源が供給され、消費電力を必要最低限に抑えるモード(以下、「スタンバイモード」という)が設定される。
【0093】
この実施例では、スタンバイモードが設定された場合には、システムLSI42は、入出力プロセッサ42a、フラッシュメモリ44、外部メインメモリ46、ROM/RTC48および無線通信モジュール50、無線コントローラモジュール52以外のコンポーネントに対して、電源供給を停止する指示を行う。したがって、この実施例では、スタンバイモードにおいて、CPU40がアプリケーションを実行することはない。
【0094】
リセットボタン20bもまた、システムLSI42に接続される。リセットボタン20bが押されると、システムLSI42は、ゲーム装置12の起動プログラムを再起動する。イジェクトボタン20cは、ディスクドライブ54に接続される。イジェクトボタン20cが押されると、ディスクドライブ54から光ディスク24が排出される。
【0095】
図3には第1コントローラ34の外観の一例が示される。図3(A)は、第1コントローラ34を上面後方から見た斜視図であり、図3(B)は、第1コントローラ34を下面前方から見た斜視図である。第1コントローラ34は、たとえばプラスチック成型によって形成されたハウジング80を有している。ハウジング80は、その前後方向(図3に示すZ軸方向)を長手方向とした略直方体形状を有しており、全体として大人や子供の片手で把持可能な大きさである。一例として、ハウジング80は人間の掌とほぼ同じ長さまたは幅を持つ大きさをしている。プレイヤは、第1コントローラ34を用いて、それに設けられたボタンを押下することと、第1コントローラ34自体を動かしてその位置や向きを変えることとによって、ゲーム操作を行うことができる。
【0096】
ハウジング80には、複数の操作ボタン(操作キー)が設けられる。すなわち、ハウジング80の上面には、十字キー82a、1ボタン82b、2ボタン82c、Aボタン82d、−ボタン82e、メニューボタン82f、および+ボタン82gが設けられる。一方、ハウジング80の下面には凹部が形成されており、当該凹部の後方側傾斜面にはBボタン82hが設けられる。これら各ボタン(スイッチ)82a−82hには、ゲーム装置12が実行するゲームプログラムに応じてそれぞれ適宜な機能が割り当てられる。また、ハウジング80の上面には、遠隔からゲーム装置12本体の電源をオン/オフするための電源スイッチ82iが設けられる。第1コントローラ34に設けられる各ボタン(スイッチ)は、包括的に参照符号82を用いて示されることもある。
【0097】
また、ハウジング80の後面には、上述のコネクタ34aが設けられている。コネクタ34aは、たとえば32ピンのエッジコネクタであり、第1コントローラ34に他の機器を接続するために利用される。この実施例では、コネクタ34aには第2コントローラ36のコネクタ36bが接続される。また、ハウジング80上面の後端側には複数のLED84が設けられ、この複数のLED84によって当該コントローラ14のコントローラ番号(コントローラの識別番号)が示される。ゲーム装置12には、たとえば最大4つのコントローラ14が接続可能であり、ゲーム装置12に複数のコントローラ14が接続される場合には、各コントローラ14には、たとえば接続順にコントローラ番号が付与される。各LED84はコントローラ番号と対応付けられており、当該コントローラ番号に対応するLED84が点灯される。
【0098】
また、第1コントローラ34のハウジング80内には加速度センサ86(図5)が設けられている。加速度センサ86としては、典型的には静電容量式の加速度センサが用いられ得る。加速度センサ86は、当該加速度センサの検出部に加わっている加速度のうち、センシング軸ごとの直線成分の加速度や重力加速度を検出する。具体的には、この実施例では、3軸加速度センサが適用され、第1コントローラ34の上下方向(図3に示すY軸方向)、左右方向(図3に示すX軸方向)および前後方向(図3に示すZ軸方向)の3軸方向のそれぞれで加速度を検知する。
【0099】
なお、加速度センサ86としては、ハウジング80の形状または第1コントローラ34の持たせ方の限定等に応じて、上下方向、左右方向および前後方向のうちいずれか2方向の加速度を検出する2軸加速度センサが用いられてもよい。場合によっては1軸加速度センサが用いられてもよい。
【0100】
さらに、コントローラ22は、撮像情報演算部88(図5参照)を有している。図3(B)に示すように、ハウジング80の先端面には撮像情報演算部88の光入射口90が設けられ、光入射口90からはセンサバー44のマーカ44m、44nの発する赤外線が取り込まれる。
【0101】
図4には第2コントローラ36の外観の一例が示される。図4(A)は、第2コントローラ36を上面後方から見た斜視図であり、図4(B)は、第2コントローラ36を下面前方から見た斜視図である。なお、図4では、第2コントローラ36のケーブル36aは省略されている。
【0102】
第2コントローラ36は、たとえばプラスチック成型によって形成されたハウジング92を有している。ハウジング92は、平面視では、前後方向(図4のZ軸方向)に略細長い楕円形状を有し、後端側の左右方向(図4のX軸方向)の幅が先端側のそれよりも狭くされている。また、ハウジング92は、側面視では、全体として湾曲した形状を有しており、先端側の水平部分から後端側に向かって下がるように湾曲している。ハウジング92は、第1コントローラ34と同様に、全体として大人や子供の片手で把持可能な大きさであるが、長手方向(Z軸方向)の長さは、第1コントローラ34のハウジング80よりもやや短くされている。この第2コントローラ36でも、プレイヤは、ボタンやスティックを操作することと、コントローラ自体を動かしてその位置や向きを変えることとによって、ゲーム操作を行うことができる。
【0103】
ハウジング92の上面の先端側には、アナログジョイスティック94aが設けられる。ハウジング92の先端には、後方にやや傾斜する先端面が設けられており、この先端面には、上下方向(図4に示すY軸方向)に並べて、Cボタン94bおよびZボタン94cが設けられる。アナログジョイスティック94aおよび各ボタン94b,94cには、ゲーム装置12が実行するゲームプログラムに応じてそれぞれ適宜な機能が割り当てられる。第2コントローラ36に設けられるアナログジョイスティック94aおよび各ボタン94b,94cは、包括的に参照符号94を用いて示されることもある。
【0104】
また、第2コントローラ36のハウジング92内には加速度センサ96(図5)が設けられている。この加速度センサ96としては、第1コントローラ34の加速度センサ86と同様の加速度センサが適用される。具体的には、この実施例では3軸加速度センサが適用され、第2コントローラ36の上下方向(図4に示すY軸方向)、左右方向(図4に示すX軸方向)および前後方向(図4に示すZ軸方向)の3軸方向のそれぞれで加速度を検知する。
【0105】
なお、図3に示した第1コントローラ34および図4に示した第2コントローラ36の形状や、ボタン(スイッチまたはスティック等)の形状、数および設置位置等は一例であり、他の形状、数および設置位置等に適宜変更され得る。
【0106】
また、コントローラ14の電源は、第1コントローラ34内に取替可能に収容されるバッテリ(図示せず)によって与えられる。第2コントローラ36には、コネクタ34a、コネクタ36bおよびケーブル36aを介してこの電源が供給される。
【0107】
図5には、第1コントローラ34と第2コントローラ36とが接続されたときのコントローラ14の電気的構成の一例が示される。第1コントローラ34は、その内部に通信部98を備え、通信部98には、操作部82、加速度センサ86、撮像情報演算部88およびコネクタ34aが接続される。操作部82は、上述の操作ボタンないし操作スイッチ82a‐82iを示す。操作部82が操作されると、その操作信号(キー情報)が通信部98に与えられる。加速度センサ86が検出した加速度を示すデータは、通信部98へ出力される。加速度センサ86は、たとえば最大200フレーム/秒程度のサンプリング周期を有する。
【0108】
撮像情報演算部88が取得したデータもまた通信部98に出力される。撮像情報演算部88は、赤外線フィルタ100、レンズ102、撮像素子104および画像処理回路106によって構成される。赤外線フィルタ100は、第1コントローラ34の前方の光入射口90から入射する光から赤外線のみを通過させる。上述したように、モニタ30の表示面近傍(周辺)に配置されるセンサバー44のマーカ44mおよび44nは、モニタ30の前方に向かって赤外光を出力する赤外LEDである。したがって、赤外線フィルタ100を設けることによってマーカ44mおよび44nの画像をより正確に撮像することができる。レンズ102は、赤外線フィルタ100を透過した赤外線を集光して撮像素子104へ出射する。撮像素子104は、たとえばCMOSセンサあるいはCCDのような固体撮像素子であり、レンズ102によって集光された赤外線を撮像する。したがって、撮像素子104は、赤外線フィルタ100を通過した赤外線だけを撮像して画像データを生成する。以下では、撮像素子104によって撮像された画像を撮像画像と呼ぶ。撮像素子104によって生成された画像データは、画像処理回路106で処理される。画像処理回路106は、撮像画像内における撮像対象(マーカ44mおよび44n)の位置を算出し、所定時間(たとえば1フレーム)毎に、当該位置を示す各座標値を含むマーカ座標データを通信部98に出力する。なお、画像処理回路106における処理については後述する。
【0109】
コネクタ34aには、第2コントローラ36から延びるケーブル36aのコネクタ36bが接続される。コネクタ36bには、第2コントローラ36の操作部94および加速度センサ96が接続される。操作部94は、上述のアナログジョイスティック94aおよび操作ボタン94b、94cを示す。操作部94が操作されると、その操作信号がケーブル36a、コネクタ36bおよびコネクタ34a等を介して通信部98に与えられる。また、加速度センサ96も、加速度センサ86と同様のサンプリング周期を有しており、検出された加速度を示すデータを通信部98に与える。
【0110】
通信部98は、マイクロコンピュータ(マイコン)108、メモリ110、無線モジュール78およびアンテナ112を含む。マイコン108は、処理の際にメモリ110を記憶領域(作業領域やバッファ領域)として用いながら、無線モジュール78を制御して、取得したデータをゲーム装置12に送信したりゲーム装置12からのデータを受信したりする。
【0111】
第1コントローラ34の操作部82、加速度センサ86および撮像情報演算部88ならびに第2コントローラ36の操作部94および加速度センサ96からマイコン108へ出力されたデータは、一時的にメモリ110に格納される。通信部98からゲーム装置12のBluetooth通信ユニット76への無線送信は所定の周期毎に行われる。なお、ゲームの処理は1/60秒を単位として行われることが一般的であるので、第1コントローラ34からの送信はそれと同等かそれより短い周期で行うことが必要となる。マイコン108は、ゲーム装置12への送信タイミングが到来すると、メモリ110に格納されている操作部82および94の操作データ、加速度センサ86および96の加速度データならびに撮像情報演算部88のマーカ座標データを含むデータを、コントローラデータとして無線モジュール78へ出力する。無線モジュール78は、Bluetoothのような近距離無線通信技術を用いて、所定周波数の搬送波をコントローラデータで変調し、その微弱電波信号をアンテナ112から放射する。つまり、コントローラデータは、無線モジュール78で微弱電波信号に変調されて第1コントローラ34から送信される。微弱電波信号はゲーム装置12側のBluetooth通信ユニット76で受信される。受信された微弱電波信号について復調や復号を行うことによって、ゲーム装置12はコントローラデータを取得することができる。ゲーム装置12のCPU46は、コントローラ14から取得したコントローラデータに基づいてゲーム処理を行う。
【0112】
なお、加速度センサ86および96から出力される加速度の信号に基づいて、ゲーム装置12のプロセッサ(例えばCPU46)またはコントローラ14のプロセッサ(例えばマイコン108)などのコンピュータが処理を行うことによって、コントローラ14に関するさらなる情報を推測または算出(判定)することができることは、当業者であれば本明細書の説明から容易に理解できるであろう。例えば、加速度センサ86および96を搭載する第1コントローラ34および第2コントローラ36が静的な状態であることを前提としてコンピュータ側で処理する場合(すなわち、加速度センサ86および96によって検出される加速度が重力加速度のみであるとして処理する場合)、第1コントローラ34および第2コントローラ36が現実に静的な状態であれば、検出された加速度に基づいて第1コントローラ34および第2コントローラ36の姿勢が重力方向に対して傾いているか否か又はどの程度傾いているかをそれぞれ知ることができる。具体的には、加速度センサ86および96の検出軸が鉛直下方向を向いている状態を基準としたとき、1G(重力加速度)がかかっているか否かだけで、第1コントローラ34および第2コントローラ36がそれぞれ傾いているか否かを知ることができるし、その大きさによってどの程度傾いているかも知ることができる。また、多軸加速度センサが適用される場合には、さらに各軸の加速度の信号に対して処理を施すことによって、第1コントローラ34および第2コントローラ36がそれぞれ重力方向に対してどの程度傾いているかをより詳細に知ることができる。この場合において、加速度センサ86および96からの出力に基づいて、コンピュータが第1コントローラ34および第2コントローラ36の傾き角度のデータを算出する処理を行ってもよいが、当該傾き角度のデータを算出する処理を行うことなく、加速度センサ86および96からの出力に基づいて、おおよその傾き具合を推定するような処理としてもよい。このように、加速度センサ86および96をコンピュータと組み合わせて用いることによって、第1コントローラ34および第2コントローラ36の傾き、姿勢または位置を判定することができる。
【0113】
一方、加速度センサ86および96が動的な状態であることを前提とする場合には、重力加速度成分に加えて加速度センサ86および96の動きに応じた加速度を検出するので、重力加速度成分を所定の処理により除去すれば、動き方向などを知ることができる。具体的には、加速度センサ86および96を備える第1コントローラ34および第2コントローラ36がユーザの手で動的に加速されて動かされる場合に、加速度センサ86および96によって生成される加速度信号を上記コンピュータによって処理することによって、第1コントローラ34および第2コントローラ36のさまざまな動きおよび/または位置を算出することができる。なお、加速度センサ86および96が動的な状態であることを前提とする場合であっても、加速度センサ86および96の動きに応じた加速度を所定の処理により除去すれば、重力方向に対する傾きを知ることが可能である。他の実施例では、加速度センサ86および96は、信号をマイコン108に出力する前に内蔵の加速度検出手段から出力される加速度信号に対して所望の処理を行うための、組込み式の信号処理装置または他の種類の専用の処理装置を備えていてもよい。例えば、組込み式または専用の処理装置は、加速度センサ86および96が静的な加速度(例えば、重力加速度)を検出するためのものである場合、検知された加速度信号をそれに相当する傾斜角(あるいは、他の好ましいパラメータ)に変換するものであってもよい。
【0114】
このゲームシステム10では、ユーザがコントローラ14を動かすことによってゲームに対する操作または入力を行うことができる。ゲームをプレイする際には、たとえば図6に示すように、ユーザは、その右手で第1コントローラ34を持ち、その左手で第2コントローラ36を持つ。上述のように、この実施例では、第1コントローラ34には3軸方向の加速度を検出する加速度センサ86が内蔵され、第2コントローラ36にも同様の加速度センサ96が内蔵されている。第1コントローラ34および第2コントローラ36がそれぞれユーザによって動かされると、加速度センサ86および加速度センサ96によって、それぞれのコントローラ自身の動きを示す加速度値が検出される。ゲーム装置12では、当該検出された加速度値に応じてゲーム処理が実行され得る。
【0115】
また、第1コントローラ34には撮像情報演算部88が設けられるので、ユーザは第1コントローラ34をポインティングデバイスとして使用して操作を行うことができる。この場合、ユーザは、第1コントローラ34の先端面(光入射口90)がマーカ44mおよび44nの方を向く状態で第1コントローラ34を把持する。ただし、図1から分かるように、マーカ44mおよび44nは、モニタ30の画面の所定の1辺(上辺または下辺)の近傍に、当該所定の1辺に対して平行に配置されている。この状態で、ユーザは、第1コントローラ34自体を動かして、第1コントローラ34が指示する画面上の位置を変更したり、第1コントローラ34と各マーカ44mおよび44nとの距離を変更したりすることによって、ゲーム操作を行うことができる。
【0116】
図7は、マーカ44mおよび44nと第1コントローラ34の視野角を説明するための図である。図7に示すように、マーカ44mおよび44nは、それぞれ、視野角αの範囲で赤外光を放射する。また、撮像情報演算部88の撮像素子104は、第1コントローラ34の視線方向(図3に示すZ軸方向)を中心とした視野角βの範囲で入射する光を受光することができる。たとえば、マーカ44mおよび44nの視野角αは、共に34°(半値角)であり、一方、撮像素子104の視野角βは42°である。ユーザは、撮像素子104が2つのマーカ44mおよび44nからの赤外光を受光することが可能な位置および向きとなるように、第1コントローラ34を把持する。具体的には、撮像素子104の視野角βの中に少なくとも一方のマーカ44mまたは44nが存在し、かつ、マーカ44mおよび44nの少なくとも一方の視野角αの中に第1コントローラ34が存在する状態となるように、ユーザは第1コントローラ34を把持する。この状態にあるとき、第1コントローラ34は、マーカ44mおよび44nの少なくとも一方を検知することができる。ユーザは、この状態を満たす範囲で第1コントローラ34の位置および向きを変化させることによってゲーム操作を行うことができる。なお、マーカ44mおよび44nのいずれか一方のみが検出される場合には、たとえば、直前の2つのマーカ44mおよび44nを検出したデータを利用して、検出されない他方のマーカの代わりに仮のマーカ座標を設定することによって、第1コントローラ34の指示位置を算出することができる。
【0117】
なお、第1コントローラ34の位置および向きがこの範囲外となった場合、第1コントローラ34の位置および向きに基づいたゲーム操作を行うことができなくなる。したがって、上記範囲は「操作可能範囲」と呼ばれる。
【0118】
操作可能範囲内で第1コントローラ34が把持される場合、撮像情報演算部88によってマーカ44mおよび44nの画像が撮像される。すなわち、撮像素子104によって得られる撮像画像には、撮像対象であるマーカ44mおよび44nの画像(対象画像)が含まれる。図8は、対象画像を含む撮像画像の一例を示す図である。対象画像44m’および44n’を含む撮像画像の画像データを用いて、画像処理回路106は、各マーカ44mおよび44nの撮像画像における位置を表す座標(マーカ座標)を算出する。
【0119】
撮像画像の画像データにおいて対象画像44m’および44n’は高輝度部分として現れるため、画像処理回路106は、まず、この高輝度部分を対象画像の候補として検出する。次に、画像処理回路106は、検出された高輝度部分の大きさに基づいて、その高輝度部分が対象画像であるか否かを判定する。撮像画像には、2つの対象画像(マーカ画像)44m’および44n’だけではなく、窓からの太陽光や部屋の蛍光灯の光等のような他の画像が含まれていることがある。高輝度部分が対象画像であるか否かの判定処理は、マーカ44mおよび44nの画像44m’および44n’と、それ以外の画像とを区別し、対象画像を正確に検出するために実行される。撮像画像における対象画像44m’および44n’と他の画像との区別のために、撮像対象44mおよび44nは既知のものである必要があり、この実施例ではその大きさが予め決められるので、マーカ画像44m’および44n’の大きさを予測することができる。したがって、高輝度部分の大きさに基づいて、マーカ画像44m’および44n’の判定を行うことができる。具体的には、当該判定処理においては、検出された高輝度部分が、予め定められた所定範囲内の大きさであるか否かが判定される。そして、高輝度部分が所定範囲内の大きさである場合には、当該高輝度部分は対象画像を表すと判定される。逆に、高輝度部分が所定範囲内の大きさでない場合には、当該高輝度部分は対象画像以外の画像を表すと判定される。
【0120】
さらに、上記の判定処理の結果、対象画像を表すと判定された高輝度部分について、画像処理回路106は当該高輝度部分の位置を算出する。具体的には、当該高輝度部分の重心位置を算出する。ここでは、当該重心位置の座標をマーカ座標と呼ぶ。また、重心位置は撮像素子104の解像度よりも詳細なスケールで算出することが可能である。ここでは、撮像素子104によって撮像された撮像画像の解像度が126×96であるとし、重心位置は1024×768のスケールで算出されるものとする。つまり、マーカ座標は、(0,0)から(1024,768)までの整数値で表現される。
【0121】
なお、図8に示すように、撮像画像における位置は、撮像画像の左上を原点Oとし、下向きをY軸正方向とし、右向きをX軸正方向とする座標系(撮像画像のXY座標系)で表現されるものとする。
【0122】
また、対象画像44m’および44n’が正しく検出される場合には、判定処理によって2つの高輝度部分が対象画像として判定されるので、2箇所のマーカ座標が算出される。画像処理回路106は、算出された2箇所のマーカ座標を示すデータ、つまり、撮像対象の位置を示す撮像対象データを通信部98に出力する。出力された撮像対象データ(マーカ座標データ)は、上述したように、マイコン108によってコントローラデータに含められて、ゲーム装置12に送信される。
【0123】
ゲーム装置12(CPU46)は、受信したコントローラデータからマーカ座標データを取得すると、このマーカ座標データに基づいて、モニタ30の画面上における第1コントローラ34の指示位置(指示座標)と、第1コントローラ34からマーカ44mおよび44nまでの各距離とを算出することができる。なお、たとえば、第1コントローラ34がモニタ30の画面の左端を指示するとき、対象画像44m’および44n’は撮像画像の右側に検出され、第1コントローラ34が画面の下端を指示するとき、対象画像44m’および44n’は撮像画像の上側に検出され、つまり、画面上の第1コントローラ34の指示位置と逆側に撮像画像上のマーカ座標が検出される。したがって、第1コントローラ34の指示位置の座標をマーカ座標から算出する際には、座標系が図8の撮像画像の座標系から画面上の位置を表すための座標系に適宜に変換される。
【0124】
なお、この実施例では、第1コントローラ34で撮像データに所定の演算処理を行ってマーカ座標を検出して、そのマーカ座標データをゲーム装置12に送信するようにしている。しかし、他の実施例では、撮像データをコントローラデータとして第1コントローラ34からゲーム装置12に送信し、ゲーム装置12のCPU46が撮像データに所定の演算処理を行って、マーカ座標および指示位置の座標を検出するようにしてもよい。
【0125】
また、撮像画像における対象画像間の距離は、第1コントローラ34と、マーカ44mおよび44nとの距離に応じて変化する。マーカ44mおよび44n間の距離、撮像画像の幅、撮像素子104の視野角βが予め決まっているので、2つのマーカ座標間の距離を算出することによって、ゲーム装置12は第1コントローラ34とマーカ44mおよび44nとの間の現在の距離を算出することができる。
【0126】
以上のように、ゲームシステム10では通常、プレイヤはコントローラ14を操作し、ゲーム装置12はコントローラ14からのコントローラデータに基づいてゲーム処理を実行する。ただし、ゲーム装置12は、先述したようにゲーム装置100との間で無線通信を行うことが可能なので、ゲーム装置100をコントローラとして利用するようなゲームも存在する(たとえば、後述する「飛び出す」ゲーム)。この種のゲームをプレイする場合、ゲームシステム10はゲーム装置100(携帯型のゲーム装置)をさらに含む。
【0127】
図9〜図11には、ゲーム装置100の外観が示される。ゲーム装置100は折り畳み型のゲーム装置であり、図9および図10は、開いた状態(開状態)におけるゲーム装置100を示し、図11は、閉じた状態(閉状態)におけるゲーム装置100を示している。また、図9は、開状態におけるゲーム装置100の正面図であり、図10は、開状態におけるゲーム装置の側面図である。ゲーム装置100は、2つの表示装置(LCD112および114)および2つのカメラ(カメラ116および118)を有し、カメラによって画像を撮像し、撮像した画像を画面に表示したり、撮像した画像のデータを保存したりすることができる。
【0128】
ゲーム装置100は、開いた状態において両手または片手で把持することができるような小型のサイズとされる。
【0129】
ゲーム装置100は、下側ハウジング120および上側ハウジング122という2つのハウジングを有する。下側ハウジング120と上側ハウジング122とは、開閉可能(折り畳み可能)に接続されている。この実施例では、各ハウジング120および122はともに横長の長方形の板状形状であり、互いの長辺部分で回転可能に接続されている。
【0130】
上側ハウジング122は、下側ハウジング120の上側の一部で回動自在に支持されている。これによって、ゲーム装置100は、閉状態(下側ハウジング120と上側ハウジング122とのなす角度が約0°の状態(図11参照))と、開状態(下側ハウジング120と上側ハウジング122とのなす角度が約180°の状態(図10参照))とをとることができる。ユーザは通常、開状態でゲーム装置100を使用し、ゲーム装置100を使用しない場合には閉状態としてゲーム装置100を保管する。また、ゲーム装置100は、上記閉状態および開状態のみでなく、下側ハウジング120と上側ハウジング122とのなす角度を、ヒンジに発生する摩擦力などによって閉状態と開状態との間の任意の角度に維持することができる。つまり、上側ハウジング122を下側ハウジング120に対して任意の角度で静止させることができる。
【0131】
まず、下側ハウジング120に設けられる構成について説明する。図9に示すように、ゲーム装置100は、下側LCD(液晶表示装置)112を有する。下側LCD112は横長形状であり、長辺方向が下側ハウジング120の長辺方向に一致するように配置される。下側LCD112は下側ハウジング120に収納される。下側LCD112は、下側ハウジング120の内側面に設けられる。したがって、ゲーム装置100を使用しない場合には閉状態としておくことによって、下側LCD112の画面が汚れたり傷ついたりすることを防止することができる。なお、この実施例では表示装置としてLCDを用いているが、例えばEL(Electro Luminescence:電界発光)を利用した表示装置など、他の任意の表示装置を利用してもよい。また、ゲーム装置100は任意の解像度の表示装置を利用することができる。なお、ゲーム装置100を撮像装置として利用する場合、下側LCD112は主に、カメラ116または118で撮像されている画像をリアルタイムに表示(スルー表示)するために用いられる。
【0132】
下側ハウジング120の内側面はほぼ平面状に形成される。当該内側面の中央には、下側LCD112を露出させるための開口部120bが形成される。当該開口部120bの左側(図示y軸負側)には開口部120cが形成され、当該開口部120bの右側には開口部120dが形成される。開口部120bおよび120cは、各キートップ(各ボタン124a〜124eの上面)を露出させるためのものである。そして、下側ハウジング120の内部に収納される下側LCD112の画面が開口部120bから露出し、各キートップが開口部120cおよび120dから露出される。このように、下側ハウジング120の内側面には、中央に設けられる下側LCD112用の開口部120bの左右両側に非画面領域(図9に示す点線領域A1およびA2。具体的には、各ボタン124a〜124eを配置するための領域;ボタン配置領域)がそれぞれ設けられる。
【0133】
下側ハウジング120には、入力装置として、各ボタン124a〜124iおよびタッチパネル128が設けられる。図9に示されるように、各ボタン124a〜124iのうち、方向入力ボタン124a、ボタン124b、ボタン124c、ボタン124d、ボタン124e、および電源ボタン124fは、下側ハウジング120の内側面に設けられる。方向入力ボタン124aは例えば選択操作等に用いられ、各ボタン124b〜124eは例えば決定操作やキャンセル操作等に用いられる。電源ボタン124fは、ゲーム装置100の電源をオン/オフするために用いられる。ここでは、方向入力ボタン124aおよび電源ボタン124fは、下側ハウジング120の中央付近に設けられる下側LCD112に対して一方の側(図9では左側)に設けられ、ボタン124b〜124eは下側LCD112に対して他方の側(図9では右側)に設けられる。方向入力ボタン124aおよびボタン124b〜124eは、ゲーム装置100に対する各種操作を行うために用いられる。
【0134】
図11(A)は閉状態におけるゲーム装置100の左側面図であり、図11(B)は当該ゲーム装置100の正面図であり、図11(C)は当該ゲーム装置100の右側面図であり、そして図11(D)は当該ゲーム装置100の背面図である。図11(A)に示されるように、音量ボタン124iは、下側ハウジング120の左側面に設けられる。音量ボタン124iは、ゲーム装置100が備えるスピーカ134の音量を調整するために用いられる。また、図11(B)に示されるように、ボタン124hは、下側ハウジング120の上面の右端部に設けられる。ボタン124gは、下側ハウジング120の上面の左端部に設けられる。各ボタン124gおよび124hは、ゲーム装置100に対して例えば撮影指示操作(シャッタ操作)を行うために用いられる。各ボタン124gおよび124hの両方をシャッターボタンとして機能させてもよく、この場合、右利きのユーザはボタン124hを使用し、左利きのユーザはボタン124gを使用することができ、いずれのユーザにも使い勝手が良い。なお、ゲーム装置100は、各ボタン124gおよび124hを常にシャッターボタンとして有効としておいてもよいし、右利きか左利きかの設定をして(メニュープログラムなどによりユーザに設定入力をさせ、設定されたデータを記憶しておく)、右利き設定のときにはボタン124hのみ有効とし、左利き設定のときにはボタン124gのみ有効とするようにしてもよい。
【0135】
図9に示されるように、ゲーム装置100は、各操作ボタン124a〜124iとは別の入力装置として、タッチパネル128をさらに備えている。タッチパネル128は、下側LCD112の画面上に装着されている。なお、この実施例では、タッチパネル128は抵抗膜方式のタッチパネルである。ただし、タッチパネルは抵抗膜方式に限らず、任意の押圧式のタッチパネルを用いることができる。この実施例では、タッチパネル128として、下側LCD112の解像度と同解像度(検出精度)のものを利用する。ただし、必ずしもタッチパネル128の解像度と下側LCD112の解像度が一致している必要はない。また、下側ハウジング120の右側面には挿入口130(図9および図11(D)に示す点線)が設けられている。挿入口130は、タッチパネル128に対する操作を行うために用いられるタッチペン136を収納することができる。なお、タッチパネル128に対する入力は通常タッチペン136を用いて行われるが、タッチペン136に限らずユーザの指でタッチパネル128を操作することも可能である。
【0136】
図10や図11(C)に示されるように、下側ハウジング120の右側面には開閉可能なカバー部111bが設けられる。このカバー部111bの内側には、メモリカード138aを挿入するための挿入口(2点鎖線)、およびゲーム装置100とメモリカード138aとを電気的に接続するためのコネクタ(図示せず)が設けられる。メモリカード138aは、コネクタに着脱自在に装着される。メモリカード138aは、例えば、ゲーム装置100によって撮像された画像のデータを記憶(保存)するために用いられる。
【0137】
さらに、下側ハウジング120の上側面には、メモリカード138bを挿入するための挿入口(1点鎖線)、およびゲーム装置100とメモリカード138bとを電気的に接続するためのコネクタ(図示せず)が設けられる。メモリカード138bは、例えば、ゲーム装置100で動作するプログラムを記憶するために用いられる。
【0138】
図9に示されるように、下側ハウジング120の軸部120aの左側部分には、3つのLED126a〜126cが取り付けられる。ここで、ゲーム装置100は同種の他のゲーム装置や上述のゲーム装置12との間で無線通信を行うことが可能であり、第1LED126aは、無線通信が確立している場合に点灯する。第2LED126bは、ゲーム装置100の充電中に点灯する。第3LED126cは、ゲーム装置100の電源がオンである場合に点灯する。したがって、3つのLED126a〜126cによって、ゲーム装置100の通信確立状況、充電状況、および、電源のオン/オフ状況をユーザに通知することができる。
【0139】
以上に説明したように、下側ハウジング120には、ゲーム装置100に対する操作入力を行うための入力装置(タッチパネル128および各ボタン124a〜124i)が設けられる。したがって、ユーザは、ゲーム装置100を使用する際には下側ハウジング120を把持してゲーム装置100に対する操作を行うことができる。図12は、ユーザがゲーム装置100を両手で把持した様子を示す図である。図12に示すように、ユーザは、各LCD112および114がユーザの方向を向く状態で、両手の掌と中指、薬指および小指とで下側ハウジング120の側面および外側面(内側面の反対側の面)を把持する。このように把持することで、ユーザは、下側ハウジング120を把持したまま、各ボタン124a〜124eに対する操作を親指で行い、ボタン124gおよび124hに対する操作を人差し指で行うことができる。
【0140】
一方、上側ハウジング122には、画像を撮像するための構成(カメラ)、および、撮像した画像を表示するための構成(表示装置)が設けられる。以下、上側ハウジング122に設けられる構成について説明する。
【0141】
図9に示すように、ゲーム装置100は、上側LCD114を有する。上側LCD114は上側ハウジング122に収納される。上側LCD114は横長形状であり、長辺方向が上側ハウジング122の長辺方向に一致するように配置される。上側LCD114は、上側ハウジング122の内側面(ゲーム装置100が閉状態となった場合に内側となる面)に設けられる。したがって、ゲーム装置100を使用しない場合には閉状態としておくことによって、上側LCD114の画面が汚れたり傷ついたりすることを防止することができる。なお、下側LCD112と同様、上側LCD114に代えて、他の任意の方式および任意の解像度の表示装置を利用してもよい。なお、他の実施形態においては、上側LCD114上にもタッチパネルを設けてもよい。
【0142】
また、ゲーム装置100は、2つのカメラ116および118を有する。各カメラ116および118はともに上側ハウジング122に収納される。図9に示されるように、内側カメラ116は、上側ハウジング122の内側面に取り付けられる。一方、図11(B)に示されるように、外側カメラ118は、内側カメラ116が取り付けられる面の反対側の面、すなわち、上側ハウジング122の外側面(ゲーム装置100が閉状態となった場合に外側となる面)に取り付けられる。これによって、内側カメラ116は、上側ハウジング122の内側面が向く方向を撮像することが可能であり、外側カメラ118は、内側カメラ116の撮像方向の逆方向、すなわち、上側ハウジング122の外側面が向く方向を撮像することが可能である。以上のように、この実施例では、2つのカメラ116および118が撮像方向が互いに逆方向となるように設けられる。したがって、ユーザはゲーム装置100を持ち替えることなく、異なる2方向を撮像することができる。例えば、ユーザは、ゲーム装置100からユーザの方を見た景色を内側カメラ116で撮影することができるとともに、ゲーム装置100からユーザの反対側の方向を見た景色を外側カメラ118で撮影することができる。
【0143】
また、内側カメラ116は、上側ハウジング122の下側の中央部に形成される軸部122aの中央に取り付けられる。つまり、内側カメラ116は、2つのハウジング120および122が接続される部分の中央に取り付けられる。したがって、ゲーム装置100を開状態にした場合、内側カメラ116は、2つのLCD112および114の間に配置されることになる(図9参照)。換言すれば、内側カメラ116は、ゲーム装置100の中心付近に配置されることになる。なお、「ゲーム装置100の中心」とは、ゲーム装置100の操作面(開状態における各ハウジング120および122の内側面からなる面)の中心という意味である。なお、内側カメラ116は、LCD112および114の横方向の中心付近に配置されているということもできる。
この実施例では、ゲーム装置100を開状態にした場合に内側カメラ116はゲーム装置100の中心付近に配置されるので、ユーザは、内側カメラ116によってユーザ自身を撮影する場合、ユーザがゲーム装置100に正対する位置でゲーム装置100を把持すればよい。つまり、通常の把持位置でゲーム装置を把持すれば、ユーザは撮像範囲の中心付近に位置することになり、ユーザ自身を撮像範囲内に収めることが容易になる。
【0144】
また、図11(B)に示されるように、外側カメラ118は、ゲーム装置100を開状態とした場合において上側ハウジング122の上部(下側ハウジング120から遠い側の部分)に配置される。なお、外側カメラ118は、ゲーム装置100を把持するユーザを撮影するものではないので、ゲーム装置100の中心に設ける必要性は高くない。
【0145】
また、図9または図11(B)に示されるように、マイク132は、上側ハウジング122に収納されている。具体的には、マイク132は、上側ハウジング122の軸部122aに取り付けられる。この実施例では、マイク132は、内側カメラ116の周囲(図ではy軸の側方)に取り付けられ、より具体的には、内側カメラ116からy軸正方向側の側方に取り付けられる。また、軸部122aにおいては、マイク132がゲーム装置100外部の音を検知することができるように、マイク132に対応する位置(内側カメラ116の側方)にマイクロフォン用孔122cが設けられる。なお、マイク132は下側ハウジング120に収納されてもよい。たとえば、マイクロフォン用孔122cを下側ハウジング120の内側面、具体的には下側ハウジング120の内側面の左下部分(ボタン配置領域A1)に設け、マイク132を、下側ハウジング120内における、マイクロフォン用孔122cの近傍に配置することができる。また、マイク132は、その集音方向(感度が最大となる方向)が内側カメラ116の撮像方向(光軸)と略並行(言い換えれば集音方向および撮像方向がそれぞれz軸と略並行)となる向きに取り付けられる。これによって、内側カメラ116の撮像範囲内で発せられた音声は、マイク132によって好適に捉えられる。すなわち、マイク132による音声入力の検出と内側カメラ116の撮像画像によるユーザの検出とを同時行うことができるとともに、検出の精度を向上させることができる。
【0146】
図11(B)に示されるように、上側ハウジング122の外側面には、第4LED126dが取り付けられる。第4LED126dは、外側カメラ118の周囲(この実施例では、外側カメラ118の右側)に取り付けられる。第4LED126dは、内側カメラ116または外側カメラ118によって撮影が行われた(シャッターボタンが押下された)時点で点灯する。また、内側カメラ116または外側カメラ118によって動画が撮影される間点灯する。第4LED126dによって、ゲーム装置100による撮影が行われた(行われている)ことを撮影対象者に通知することができる。
【0147】
また、上側ハウジング122の内側面はほぼ平面状に形成される。図9に示すように、当該内側面の中央には、上側LCD114を露出させるための開口部122bが形成される。上側ハウジング122の内部に収納される上側LCD114の画面は、開口部122bから露出する。また、上記開口部122bの左右両側には音抜き孔122dがそれぞれ1つずつ形成される。音抜き孔122dの奥の上側ハウジング122内にはスピーカ134が収納されている。音抜き孔122dは、スピーカ134からの音を外部に放出するための孔である。
【0148】
このように、上側ハウジング122の内側面には、中央に設けられる上側LCD114用の開口部122bの左右両側に非画面領域(図9に示す点線領域B1およびB2。具体的には、スピーカ134を配置するための領域;スピーカ配置領域)がそれぞれ設けられる。2つの音抜き孔122dは、左右方向については、各スピーカ配置領域の左右方向における中央部付近に配置され、上下方向については、各スピーカ配置領域の下部領域(下側ハウジング120に近い側の領域)に配置される。
【0149】
なお、上記のように、下側ハウジング120および上側ハウジング122に左右方向に関して同じ位置に非画面領域をそれぞれ設けたことで、ゲーム装置100は、図12に示すような横持ちで把持される場合だけでなく、縦持ち(図12に示す状態からゲーム装置100を左または右回りに90°回転させた状態)で把持される場合にも持ちやすい構成となっている。
【0150】
以上に説明したように、上側ハウジング122には、画像を撮像するための構成であるカメラ116および118、および、撮像された画像を表示するための表示手段である上側LCD114が設けられる。一方、下側ハウジング120には、ゲーム装置100に対する操作入力を行うための入力装置(タッチパネル128および各ボタン124a〜124i)が設けられる。したがって、ゲーム装置100を撮像装置として使用する際には、ユーザは、上側LCD114に表示される撮像画像(カメラによって撮像された画像)を見ながら、下側ハウジング120を把持して入力装置に対する入力を行うことができる。
【0151】
また、上側ハウジング122のカメラ116近傍には、音声を入力するための構成であるマイク132が設けられており、したがってゲーム装置100は、録音装置としても使用可能である。さらに、ユーザがマイク132を通して音声入力を行い、ゲーム装置100はこのマイク入力情報に基づいてゲーム処理やゲーム以外のアプリケーション処理を実行することもできる。
【0152】
図13は、ゲーム装置100の内部構成(電気的構成)を示すブロック図である。図13に示すように、ゲーム装置100は、CPU142、メインメモリ148、メモリ制御回路150、保存用データメモリ152、プリセットデータ用メモリ154、メモリカードインターフェース(メモリカードI/F)144、無線通信モジュール156、ローカル通信モジュール158、リアルタイムクロック(RTC)160、電源回路146、およびインターフェース回路(I/F回路)140等の電子部品を備えている。これらの電子部品は、電子回路基板上に実装されて下側ハウジング120(または上側ハウジング122でもよい)内に収納される。
【0153】
CPU142は、各種のプログラムを実行するための情報処理手段である。ゲーム装置100を撮像装置として利用する場合には、そのためのプログラムがゲーム装置100内のメモリ(例えば保存用データメモリ152)に記憶される。CPU142が当該プログラムを実行することで、ゲーム装置100は撮影装置として機能する。なお、CPU142によって実行されるプログラムは、ゲーム装置100内のメモリに予め記憶されていてもよいし、メモリカード138bから取得されてもよいし、他の機器たとえばゲーム装置12から通信によって取得されてもよい。
【0154】
CPU142には、メインメモリ148、メモリ制御回路150、およびプリセットデータ用メモリ154が接続される。また、メモリ制御回路150には保存用データメモリ152が接続される。メインメモリ148は、CPU142のワーク領域やバッファ領域として用いられる記憶手段である。すなわち、メインメモリ148は、ゲーム処理やアプリケーション処理に用いられる各種データを記憶したり、外部(メモリカード138bやゲーム装置12等)から取得されるプログラムを記憶したりする。この実施例では、メインメモリ148として例えばPSRAM(Pseudo−SRAM)を用いる。保存用データメモリ152は、CPU142によって実行されるプログラムや各カメラ116および118によって撮像された画像のデータ等を記憶するための記憶手段である。保存用データメモリ152は、例えばNAND型フラッシュメモリで構成される。メモリ制御回路150は、CPU142の指示に従って、保存用データメモリ152に対するデータの読み出しおよび書き込みを制御する回路である。プリセットデータ用メモリ154は、ゲーム装置100において予め設定される各種パラメータ等のデータ(プリセットデータ)を記憶するための記憶手段である。プリセットデータ用メモリ154としては、SPI(Serial Peripheral Interface)バスによってCPU142と接続されるフラッシュメモリを用いることができる。
【0155】
メモリカードI/F144はCPU142に接続される。メモリカードI/F144は、コネクタに装着されたメモリカード138aおよび138bに対するデータの読み出しおよび書き込みをCPU142の指示に従って行う。この実施例では、各カメラ116および118によって撮像された画像データがメモリカード138aに書き込まれたり、メモリカード138aに記憶された画像データがメモリカード138aから読み出されて保存用データメモリ152に記憶されたりする。また、メモリカード138bに記憶されているプログラムやデータを読み出してメインメモリ148に転送したりもする。
【0156】
無線通信モジュール156は、例えばIEEE802.11.b/gの規格に準拠した方式により、無線LANに接続する機能を有する。また、ローカル通信モジュール158は、所定の通信方式たとえば赤外線方式により同種のゲーム装置との間で無線通信を行う機能を有する。無線通信モジュール156およびローカル通信モジュール158はCPU142に接続される。CPU142は、無線通信モジュール156を用いて、インターネットを介して、またはインターネットを介すことなく直接、同種の他のゲーム装置やゲーム装置12との間でデータを送受信したり、ローカル通信モジュール158を用いて、同種の他のゲーム装置との間でデータを送受信したりすることができる。
【0157】
なお、ローカル通信モジュール158は、この実施例ではゲーム装置100に内蔵されるようになっているが、例えばメモリカード138bに設けてもよい。この場合、CPU142は、メモリカードI/F144を介して通信の制御を行うことになる。
【0158】
また、CPU142には、RTC160および電源回路146が接続される。RTC160は、時間をカウントしてCPU142に出力する。CPU142は、RTC160によって計時された時間に基づいて、現在時刻(日付)を計算したり、画像取り込み等の動作タイミングを検知したりする。電源回路146は、ゲーム装置100が有する電源(電池;下ハウジングに収納される)からの電力を制御し、ゲーム装置100の各部品に電力を供給する。
【0159】
また、ゲーム装置100は、マイク132およびスピーカ134を備えている。マイク132およびスピーカ134はそれぞれI/F回路140に接続される。マイク132は、ユーザの音声を検知して音声信号をI/F回路140に出力する。スピーカ134は、I/F回路140からの音声信号に応じた音声を出力する。I/F回路140はCPU142に接続される。また、タッチパネル128はI/F回路140に接続される。I/F回路140は、マイク132およびスピーカ134の制御を行う音声制御回路と、タッチパネルの制御を行うタッチパネル制御回路とを含む。音声制御回路は、音声信号に対するA/D変換およびD/A変換を行ったり、音声信号を所定の形式の音声データに変換したりする。変換された音声データは、メインメモリ148の音声エリア(図示せず)に書き込まれる。ゲーム装置100を録音装置として利用する場合には、音声エリアに格納された音声データは、後にメモリ制御回路150を介して保存用データメモリ152に書き込まれる(必要に応じてさらに、メモリカードI/F144を介してメモリカード138aに記録される)。また、音声エリアに格納された音声データ(マイク入力情報)は、各種のゲーム処理にも利用される。タッチパネル制御回路は、タッチパネル128からの信号に基づいて所定の形式のタッチ位置データを生成してCPU142に出力する。タッチ位置データは、タッチパネル128の入力面のうちで入力が行われた位置の座標を示す。なお、タッチパネル制御回路は、タッチパネル128からの信号の読み込み、および、タッチ位置データの生成を所定時間に1回の割合で行う。CPU142は、タッチ位置データを取得することにより、タッチパネル128に対して入力が行われた位置を知ることができる。
【0160】
操作部124は、上記各ボタン124a〜124iからなり、CPU142に接続される。操作部124からCPU142へは、各ボタン124a〜124iに対する入力状況(押下されたか否か)を示す操作データが出力される。CPU142は、操作部124から操作データを取得することによって、操作部124に対する入力に従った処理を実行する。
【0161】
各カメラ116および118はCPU142に接続される。各カメラ116および118は、CPU142の指示に従って画像を撮像し、撮像した画像データをCPU142に出力する。CPU142は、各カメラ116および118からの画像データをメインメモリ148の画像エリア(図示せず)に書き込む。ゲーム装置100を撮像装置として利用する場合には、画像エリアに格納された画像データは、後にメモリ制御回路150を介して保存用データメモリ152に書き込まれる(必要に応じてさらに、メモリカードI/F144を介してメモリカード138aに記録される)。また、画像エリアに格納された画像データは、各種のゲーム処理にも利用される。
【0162】
また、各LCD112および114はCPU142に接続される。各LCD112および114はCPU142の指示に従って画像を表示する。ゲーム装置100を撮像装置として利用する場合、CPU142は、各カメラ116および118のいずれかから取得した画像を上側LCD114に表示させ、所定の処理によって生成した操作画面を下側LCD112に表示させる。ゲーム装置100でゲームをプレイする場合には、LCD112および114の一方または両方にゲーム画像が表示される。
【0163】
以上のように構成されたゲーム装置100を含むゲームシステム10で「飛び出す」ゲームをプレイするとき、プレイヤは、図14に示すように、ゲーム装置12に接続されたモニタ28の正面に立って、ゲーム装置100の外側カメラ(以下単にカメラ)118でモニタ28を撮像する。ゲーム装置100の下側LCD(以下単にLCD)112には、モニタ画面28aを含む撮像画像が表示される。
【0164】
ゲーム装置12のメインメモリ42eおよび/または46には、図15(A)に示すように、プログラム記憶領域70およびデータ記憶領域74が形成され、プログラム記憶領域70にはゲームプログラム72などが格納される。ゲームプログラム72は、CPU40を介してゲーム装置12のハードウェア全体(図2参照)を制御することにより「飛び出す」ゲームを実現するソフトウェアであり、図16(A)および図17のフローチャートに対応する表示制御プログラム72aを含む。なお、表示制御プログラム72aは、後述する第1および第2変形例では、図27および図31(A)のフローチャートとそれぞれ対応する。
【0165】
また、図示は省略するが、プログラム記憶領域70には、ゲームプログラム72の他にも、「飛び出す」ゲームに必要な各種のプログラム、たとえば出力・通信制御プログラム(図示せず)などが格納されている。出力・通信制御プログラムは、主として入出力プロセッサ42aを介してモニタ28への出力を制御し、また、主として無線通信モジュール50を介してゲーム装置100との間の無線通信を制御する。
【0166】
データ記憶領域74には、時間データ76および画像データ78などが記憶される。時間データ76は、オブジェクト(PO,EO:図22(A)等参照)を仮想空間内でモニタ28の外に出したり中に戻したりする時間を示すデータであり、画像データ78は、オブジェクトやマーカ(M:図20(A),図22(A)等参照)をモニタ28に表示するためのデータである。
【0167】
一方、ゲーム装置100のメインメモリ148には、図15(B)に示すように、プログラム記憶領域170およびデータ記憶領域174が形成され、プログラム記憶領域170にはゲームプログラム172などが格納される。ゲームプログラム172は、CPU142を介してゲーム装置100のハードウェア全体(図13参照)を制御することにより「飛び出す」ゲームを実現するソフトウェアであり、図16(B),図18および図19のフローチャートに対応する表示制御プログラム172aと、撮像画像に含まれるマーカ(Ma:図20(B),図22(B)等参照)を認識する(パターン照合)ための認識プログラム172bを含む。なお、表示制御プログラム172aは、後述する第1および第2変形例では、図28および図31(B)のフローチャートとそれぞれ対応する。
【0168】
また、図示は省略するが、プログラム記憶領域170には、ゲームプログラム172aの他にも、「飛び出す」ゲームに必要な各種のプログラム、たとえば入出力・通信制御プログラム(図示せず)などが格納されている。入出力・通信制御プログラムは、主としてカメラ118からの入力やLCD112への出力を制御し、また、主として無線通信モジュール156を介してゲーム装置12との間の無線通信を制御する。
【0169】
データ記憶領域174は、撮像画像領域176,パターン一時保持領域178およびパターン保存領域180を含む。撮像画像領域176には、カメラ118から所定のフレームレート(たとえば60フレーム/秒)で入力される撮像画像が、CPU142を通して書き込まれる。こうして撮像画像領域176に記憶された撮像画像は、CPU142の制御下で、LCD112によって所定のフレームレート(たとえば書き込み時と同じレート)で読み出される。これにより、LCD112には、カメラ118からの撮像画像が表示される。
【0170】
撮像画像領域176に記憶された撮像画像に対しては、所定のマーカを認識する認識処理(図19参照)が施される。パターン一時保持領域178は、撮像画像からリアルタイムに検出されるマーカのパターンを一時保持するための領域である。パターン保存領域180には、事前のパターン保存処理(図16参照)を通じて、所定のマーカのパターン(図20参照)が保存される。パターン一時保持領域178に一時保持されたパターンは、パターン保存領域180に保存されたパターンと逐次比較され、一時保持パターンが保存パターンと一致すれば、所定のマーカを認識したことを示すマーカ認識信号がゲーム装置12に向けて送信される。
【0171】
なお、認識対象であるマーカは、この実施例では1種類であるが、複数種類でもよい。この場合、パターン保存領域180には複数のパターンが保存され、一時保持パターンは各保存パターンと比較される。マーカ認識信号には、どのマーカを認識したかを示す情報が付加される。
【0172】
また、データ記憶領域174には、画像データ182などが記憶される。画像データ182は、仮想空間内でモニタ28の外に出たオブジェクト(POb,EOb:図24(B),図25(B)等参照)をLCD112の撮像画像に重畳表示するためのデータである。
【0173】
事前にパターンを保存するとき、ゲーム装置12(据え置き側)のCPU40およびゲーム装置100(携帯側)のCPU142は、図16(A)および図16(B)に示すパターン保存処理をそれぞれ実行する。まず、据え置き側に関し、図16(A)を参照して、CPU40は、ステップS1で、マーカをモニタ28に表示するようGPU42bに命令する。応じてGPU42bは、たとえば、図20(A)に示すように、長方形のマーカMをモニタ28に表示する。なお、このとき携帯側では、図20(B)のような撮像画像がLCD112に表示される。
【0174】
このマーカMは、長方形の輪郭線を持つ白地に所定のパターン(ここでは各面が異なる色を有する直方体)を描いたものである。マーカMの背景は、白地との輝度差を極力高める(輪郭線の検出を容易にする)ために、ここでは黒く塗られている。なお、マーカMの形状は、たとえば正方形,ひし形,台形といった、長方形以外の四角形でもよい。あるいは、三角形,六角形などの多角形や円形、さらには、これらを組み合わせた複雑な形状でもよい。また、マーカMの白地は着色されていてもよし、輪郭線の検出が可能であれば、背景も適宜な色に塗ってかまわない。マーカ(パターン)は、カラー表示でも、モノクロ表示でもよい。
【0175】
次に、CPU40は、ステップS3で、無線通信モジュール50によって完了通知(後述)が受信されたか否かを判別する。ここでNOであればステップS1に戻り、1フレーム毎に(たとえば1/60秒周期で)に同様の処理を繰り返す。ステップS3でYESであれば、この処理を終了する。
【0176】
次に、携帯側に関し、図16(B)を参照して、CPU142は、ステップS11で、カメラ118を介して撮像処理を実行し、得られた撮像画像を撮像画像領域176に繰り返し書き込む。次に、CPU142は、ステップS13で、LCD112に撮像画像の表示を命令し、応じてLCD112は、撮像画像領域176に記憶された撮像画像を順次読み出して表示する。したがって、LCD112には、図20(B)に示すような撮像画像が表示される。この撮像画像は、モニタ画像28aを含む。モニタ画像28aは、図20(A)に示したモニタ28の撮像画像であり、長方形の白地にパターンPaが描かれたマーカ画像Maと、黒色の背景とを含む。
【0177】
次に、CPU142は、ステップS15で、像画像領域176に記憶された撮像画像に対し、輝度差に基づく輪郭線検出を行う。図20(B)の撮像画像からは、マーカMaの白地と背景との輝度差に基づいて、白地の輪郭線が検出される。次に、ステップS17で、検出された輪郭線が所定の形状(ここでは四角形)であるか否かを判別し、NOであればステップS11に戻って、1フレーム毎に同様の処理を繰り返す。
【0178】
次に、CPU142は、ステップS19で、四角形を所定サイズの長方形に変形する。つまり、モニタ28とゲーム装置100との位置関係によっては、マーカMaが長方形とは異なる四角形たとえば台形となるし、また、そのサイズも一定ではないので、このような四角形を図21に示す要領でA×Bの長方形に変形する。
【0179】
なお、マーカMaが最初から所定サイズの長方形であれば、このような変形は不要である。たとえば、CPU142がLCD112の撮像画像に所定サイズの長方形に対応する枠画像(図示せず)を重畳表示し、プレイヤは、この枠画像内にマーカMaがきっちり収まるように位置調整を行えばよい。
【0180】
次に、CPU142は、ステップS21で、長方形内の色分布をマーカのパターンとしてパターン保存領域180に保存する。長方形内の色分布は、たとえば、図21に示すように、長方形内の任意の点(x,y)におけるRGBの値として、RGB(x,y)のように表現される。この場合、長方形内の全画素、またはそこから適宜サンプリングされた一部画素について、RGB(x,y)が保存される。
【0181】
なお、保存されるパターンは、二値化したもの(たとえばグレースケール)でもよい。認識を行う際には、撮像されたマーカから抽出されたパターンは、この二値化したパターンと比較される。
【0182】
また、細かい認識が必要ない仕様であれば、パターンを縮小して保存してもよい。これにより、容量を節約できると共に、誤認識となる可能性も低減できる。
【0183】
パターン保存が完了すると、CPU142は、ステップS23で、無線モジュール156を介してゲーム装置12に完了通知を送信する。そして、この処理を終了する。
【0184】
この後に「飛び出す」ゲームをプレイするとき、ゲーム装置12(据え置き側)のCPU40およびゲーム装置100(携帯側)のCPU142は、図17および図18に示す表示制御処理をそれぞれ実行する。まず、据え置き側に関し、図17を参照して、CPU40は、ステップS31で、オブジェクトの全部または一部をモニタ28に表示するようGPU42bに命令する。応じてGPU42bは、たとえば、図22(A)に示すように、プレイヤオブジェクトPOおよび敵オブジェクトEOをモニタ28に表示する。背景は、白以外の適宜な色たとえば灰色に着色される(着色の図示は省略)。
【0185】
次に、CPU40は、ステップS33で、マーカをモニタ28に表示するようGPU42bに命令する。応じてGPU42bは、たとえば、図22(A)に示すように、モニタ28の四隅にマーカMを表示する。各マーカMは、図20(A)に示したマーカMと表示サイズが異なるだけで同等のものである。なお、このとき携帯側では、図22(B)のような撮像画像がLCD112に表示される。
【0186】
次に、CPU40は、ステップS35で、無線通信モジュール50によってマーカ認識信号(後述)が受信されたか否かを判別する。ここでNOであればステップS31に戻り、1フレーム毎に同様の処理を繰り返す。このステップS31〜S35のループ処理を通じて、モニタ28の表示は、図22(A)から図23(A)のように変化していく。なお、この間、携帯側でも、LCD112の表示は、図22(B)から図23(B)のように変化していく。
【0187】
なお、フローチャートには画面制御(表示制御プログラム172a)しか記載していないが、画面内のオブジェクト(PO,EO)の位置や動きは、ゲームプログラム72によって制御されており、この制御によって、まず、モニタ28の表示が図22(A)から図23(A)のように変化し、これを撮影したLCD112の表示もまた、図22(B)から図23(B)のように変化している。
【0188】
ステップS35でYESであれば、つまりマーカ認識信号が受信されると、ステップS37に進んで、オブジェクト(PO,EO)をモニタ28の外に出すか否かを時間データ76(図15(A)参照)に基づいて判断する。
【0189】
時間データ76には、仮想空間内でオブジェクト(PO,EO)をモニタ28の外に出すタイミング(第1所定時間)と、仮想空間内でオブジェクト(PO,EO)をモニタ28の中に戻すタイミング(第2所定時間)とが記述されており、たとえば、オブジェクト(PO,EO)がモニタ28内に登場してからの経過時間が第1所定時間に達すると、ステップS37でYESと判断され、処理はステップS39に進む。なお、登場から第1所定時間が経過するまでの期間は、ステップS31〜S37およびS43のループ処理が実行される。
【0190】
ステップS39では、CPU40は、無線モジュール156を介して第1制御信号をゲーム装置100に向けて送信する。第1制御信号には、次のステップS41でモニタ28の外に出ようとするオブジェクト(PO,EO)のモニタ28内での位置(言い換えると、マーカMに対するオブジェクトの位置)を示す位置情報が含まれる。
【0191】
次のステップS41では、CPU40は、オブジェクトの全部または一部をモニタ28から消去するようGPU42bに命令する。応じてGPU42bは、たとえば、図24(A)に示すように、プレイヤオブジェクトPOをモニタ28から消去する。なお、これに伴い、携帯側では、図24(B)に示すように、モニタ28a内のプレイヤオブジェクトPOaが消える一方、これと同等のプレイヤオブジェクトPObが撮像画像に重畳表示される。プレイヤオブジェクトPObが重畳される位置は、第1制御信号に含まれる位置情報に基づいて、モニタ28aの外部に決定される。これによって、仮想空間内でプレイヤオブジェクトPOがモニタ28から飛び出したように見せることができる。
【0192】
その後、ステップS33に戻って、1フレーム毎に同様の処理を繰り返す。このステップS33〜S41のループ処理を通じて、モニタ28の表示は、図23(A)から図24(A)さらには図25(A)のように徐々に変化していく。なお、この間、携帯側でも、LCD112の表示は、図23(B)から図24(B)さらには図25(B)のように徐々に変化していく。
【0193】
こうしてオブジェクト(PO,EO)がモニタ28外に退場すると、ステップS37の判断がYESからNOに変化し、処理はステップS43に移る。ステップS43では、CPU40は、オブジェクト(PO,EO)をモニタ28の中に戻すか否かを時間データ76に基づいて判断する。オブジェクト(PO,EO)がモニタ28外に退場してからの経過時間が第2所定時間に達すると、ステップS43でYESと判断され、処理はステップS45に進む。なお、退場から第2所定時間が経過するまでの期間は、ステップS31〜S37およびS43のループ処理が実行される。
【0194】
ステップS45では、CPU40は、無線モジュール156を介して第2制御信号をゲーム装置100に向けて送信する。その後、ステップS31に戻って、1フレーム毎に同様の処理を繰り返す。このステップS31〜S37,S43およびS45のループ処理を通じて、モニタ28の表示は、図25(A)から図24(A)さらには図23(A)のように徐々に変化していく。なお、この間、携帯側でも、LCD112の表示は、図25(B)から図24(B)さらには図23(B)のように徐々に変化していく。これによって、仮想空間内でモニタ28から飛び出したプレイヤオブジェクトPOがモニタ28に戻ったように見せることができる。
【0195】
こうしてオブジェクト(PO,EO)がモニタ28内に再登場すると、ステップS43の判断がYESからNOに変化し、処理はステップS31〜S37およびS43のループに戻る。
【0196】
なお、ステップS37,S43の判断は、時間データ76に基づく代わりに、ゲーム装置100からのコマンドに基づいて行われてもよい。たとえば、ゲーム装置100において、操作部124を介して所定の操作が行われたとき、無線モジュール156から当該操作に対応するコマンドを送信する一方、ゲーム装置12においては、無線モジュール156によってコマンドを受信したとき、当該コマンドに基づいてステップS37,S43の判断を行う。これにより、プレイヤは、オブジェクトを出し入れするタイミングを任意に決めることができるようになる。
【0197】
次に、携帯側に関し、図18を参照して、CPU142は、ステップS51で、カメラ118を介して撮像処理を実行し、得られた撮像画像を撮像画像領域176に繰り返し書き込む。次に、CPU142は、ステップS53で、LCD112に撮像画像の表示を命令し、応じてLCD112は、撮像画像領域176に記憶された撮像画像を順次読み出して表示する。したがって、LCD112には、図22(B)に示すような撮像画像が表示される。この撮像画像は、モニタ画像28aを含む。モニタ画像28aは、図22(A)に示したモニタ28の撮像画像であり、詳しくは、図20(B)に示したような、長方形の白地にパターンPaが描かれたマーカ画像Maと、灰色の背景(着色の図示は省略)とを含む。
【0198】
次に、CPU142は、ステップS55で、像画像領域176に記憶された撮像画像に対し、マーカ認識処理を行う。ここでは、モニタ28の四隅に表示されている4つのマーカMのうち少なくとも1つを認識すればよい。つまり、複数のマーカMを間隔を空けて表示したことで、認識可能範囲が単一マーカの場合よりも拡大されている。
【0199】
ステップS55のマーカ認識処理は、パターン保存時のマーカ検出処理(ステップS15〜S21)と同様の処理を含んでおり、詳しくは図19のサブルーチンに従って実行される。CPU142は、最初、ステップS71で輝度差に基づく輪郭線検出を行い、次に、検出された輪郭線が四角形であるか否かをステップS73で判別する。ステップS73でNOであれば、メインルーチン(図18)に復帰する。一方、ステップS73でYESであれば、ステップS75に進んで、四角形を図21に示す要領でA×Bの長方形に変形する。ステップS77では、長方形内の色分布(たとえば各画素のRGB(x,y):図21参照)をマーカのパターンとしてパターン一時保持領域178に一時保持する。そして、CPU142は、ステップS79で、一時保持領域178に一時保持されたパターンを保存領域180に保存されたパターンと比較し、その後メインルーチン(図18)に復帰する。
【0200】
次に、CPU142は、ステップS57で、マーカを認識したか否かをステップS79の比較結果に基づいて判別する。一時保持パターンが保存パターンと一致しなければ、ステップS57でNOと判別し、ステップS51に戻って、1フレーム毎に同様の処理を繰り返す。一時保持パターンが保存パターンと一致すると、ステップS57でYESと判別し、ステップS59に進む。なお、ステップS57の判別は、必ずしも繰り返される必要はなく、一回だけでもよい。つまり、連続的に認識しても、1回だけ認識してもよい。
【0201】
ステップS59では、CPU142は、無線通信モジュール50を介してマーカ認識信号をゲーム装置12に送信する。次に、CPU142は、ステップS61で、無線通信モジュール156によって第1制御信号が受信されたか否かを判別し、ここでNOであればステップS67に移って、無線通信モジュール156によって第2制御信号が受信されたか否かをさらに判別する。ステップS67でもNOであれば、ステップS51に戻って、1フレーム毎に同様の処理を繰り返す。したがって、ゲーム装置12からいずれの制御信号も送られてこない期間では、このステップS51〜S61およびS67のループ処理を通じて、LCD112の表示は、モニタ28の表示が図22(A)から図23(A)のように変化していくのに伴って、図22(B)から図23(B)のように変化していく。
【0202】
ステップS61でYESであれば、CPU142は、ステップS63に進んで、ステップS55で認識したマーカのサイズおよび/または形状に応じて、後のステップS65で重畳表示しようとするオブジェクトのサイズおよび/またはアングルを補正する。この補正処理は、モニタ28から飛び出すオブジェクトのサイズおよび/またはアングルを、モニタ28とゲーム装置100との位置関係に応じて変化させるための処理である(図26参照:後述)。
【0203】
次に、CPU142は、ステップS65で、オブジェクトの全部または一部を撮像画像の上に重畳表示するようLCD112に命令する。応じてLCD112は、たとえば、図24(B)に示すように、プレイヤオブジェクトPObを撮像画像に重畳表示する。プレイヤオブジェクトPObが重畳される位置は、第1制御信号に含まれる位置情報に基づいて、モニタ28aの外部に決定される。
【0204】
こうしてプレイヤオブジェクトPObが重畳表示されるとき、据え置き側では、先述のステップS41が実行される結果、図24(A)に示すように、モニタ28内のプレイヤオブジェクトPOが消去される。これに伴い、LCD112でも、モニタ28a内のプレイヤオブジェクトPOaが消えるので、仮想空間内でプレイヤオブジェクトPOがモニタ28から飛び出したように見せることができる。
【0205】
その後、ステップS51に戻って、1フレーム毎に同様の処理を繰り返す。したがって、ゲーム装置12から第1制御信号が送られてくる期間では、このステップS51〜S65のループ処理を通じて、LCD112の表示は、モニタ28の表示が図23(A)から図24(A)さらには図25(A)のように変化していくのに伴い、図23(B)から図24(B)さらには図25(B)のように変化していく。
【0206】
なお、図25(A)では、敵オブジェクトEOの一部ここでは頭および腕がモニタ28から消去されており、図25(B)では、この消去部分つまり敵オブジェクトEObの頭および腕が、撮像画像に重畳表示されている。
【0207】
また、図25(B)は、ゲーム装置100がモニタ28の正面よりも左に位置する場合のLCD112の表示であるが、図26(A)に示すように、ゲーム装置100がモニタ28の正面よりも右に位置する場合には、LCD112の表示は、図26(B)のようになる。図25(B)では、敵オブジェクトEObに隠れて見えなかった心臓が、図26(B)では見えているので、プレイヤオブジェクトPObが敵オブジェクトEObの心臓に向けて矢を放つ、といったプレイが可能となる。
【0208】
ステップS67でYESであれば、CPU142は、ステップS69に進んで、オブジェクトの全部または一部を消去するようLCD112に命令する。応じてLCD112は、撮像画像に重畳表示さているオブジェクトの全部または一部を消去する。その後、ステップS51に戻って、1フレーム毎に同様の処理を繰り返す。したがって、ゲーム装置12から第2制御信号が送られてくる期間では、このステップS51〜S61,S67およびS69のループ処理を通じて、LCD112の表示は、モニタ28の表示が図25(A)から図24(A)さらには図23(A)のように変化するのに伴って、図25(B)から図24(B)さらには図23(B)のように変化していく。これによって、仮想空間内でモニタ28から飛び出したプレイヤオブジェクトPOがモニタ28に戻ったように見せることができる。
【0209】
なお、ステップS57でYESと判別された場合に、パターン保存領域180に保存されているパターンを、ステップS55の認識処理で得られる最新のパターンに随時更新してもよい。たとえば、ステップS59とステップS61との間に、パターン更新を行うステップS60が挿入される。これによって、周辺環境の明るさやモニタ28の画質などが変化しても、マーカ認識の精度を高く維持することができる。
【0210】
なお、以上では詳しい説明を省略したが、図21および図26に関連するマーカ認識や表示位置の制御には、たとえば、「マーカ追跡に基づく拡張現実感システムとそのキャリブレーション」(日本バーチャルリアリティ学会論文誌 Vol.4,No.4,1999)に記載されたAR(Augmented Reality:拡張現実感)の処理を用いることができる。このAR処理の基本的な流れは、次の通りである。最初、撮影画像に対してマーカ認識を行い、マーカがあれば、撮影画像中のマーカの位置および姿勢に基づいて、マーカ座標系における仮想カメラの位置および姿勢を算出する。次に、マーカ座標系からカメラ座標系への変換行列を算出する。より詳しくは、マーカ認識では、マーカの4頂点(この実施例でいえば、図21に示すマーカ画像Maの4頂点)の座標値が求められ、この座標値と、マーカの大きさに関する情報とに基づいて、マーカ座標系からカメラ座標系への変換行列(この実施例でいえば、図21に示すマーカ画像MaからMbへの変換行列)が計算される。そして、この変換行列を仮想カメラのビュー行列に設定し、この仮想カメラで仮想空間を撮影してCG画像を生成し、撮像画像とCG画像を合成する。
【0211】
この実施例では、撮像画像に対して仮想画像を合成した画像(合成画像)は、例えば次の処理によって生成することができる。すなわち、ゲーム装置100のCPU142は、ステップS55で、撮像画像から、その中に含まれるマーカを認識する(画像)認識処理を実行する。ここでは、認識処理の処理結果として、マーカの位置および向きを示す情報が算出される。マーカが認識された場合(S57:YES)、認識されたマーカの形状および向きから、ゲーム装置100自身(カメラ)とマーカとの位置関係を算出する。なお、認識処理が失敗であった場合、CPU142は、仮想カメラの位置および姿勢の算出を行わず、認識処理が最後に成功した時に算出された仮想カメラの位置および姿勢を用いる。さらに、CPU142は、位置関係に基づいて仮想空間における仮想カメラの位置および姿勢を算出する。仮想カメラの位置および姿勢は、仮想空間における仮想カメラと仮想オブジェクトとの位置関係が、現実空間におけるゲーム装置100自身とマーカとの位置関係に一致するように算出される。仮想カメラの位置が決まると、CPU142は、仮想カメラの位置から仮想オブジェクトを見た仮想画像を生成し、撮像画像に対して仮想画像を合成する。以上の処理によって、ゲーム装置100は合成画像を生成して表示することができる。なお、上記位置関係から仮想カメラの位置を算出する処理は、従来のARにおける処理と同様であってもよい。
【0212】
以上から明らかなように、この実施例のゲームシステム10は、モニタ28が接続されたゲーム装置12と、カメラ118およびLCD112を備えるゲーム装置100とを含む。なお、モニタ28は、ゲーム装置12と一体でもよく、カメラ118および/またはLCD112は、ゲーム装置100とは別体でもよい。
【0213】
ゲーム装置12のCPU40は、マーカMをモニタ28に表示し(S33)、ゲーム装置100のCPU142は、カメラ118で撮像を行い(S51)、撮像した撮像画像をLCD112に表示し(S53)、撮像画像中に、マーカMが含まれるか否かを判定し(S55,S57)、判定結果に基づいて、LCD112で表示されている撮像画像に対してマーカMに対応する第2オブジェクト(POb,EOb)の少なくとも一部を合成する表示制御を行い(S65)、そして、判定結果に基づいて、ゲーム装置12に対してマーカ認識信号を送信する(S59)。
【0214】
ゲーム装置12はさらに、上記のように送信されたマーカ認識信号を受信し(S35)、そして、受信されたマーカ認識信号に基づいて、モニタ28に対して、マーカMに対応した第1オブジェクト画像(PO,EO)の少なくとも一部の表示制御を行う(S41)。
【0215】
すなわち、ゲーム装置12は、モニタ28にマーカMを表示し、マーカMを表示したモニタ28は、カメラ118によって撮像される。ゲーム装置100は、カメラ118による撮像画像をLCD112に表示すると共に、撮像画像にマーカMが含まれるか否かを判定する。この判定結果に基づいて、たとえば撮像画像にマーカMが含まれていれば、ゲーム装置100は、LCD112に表示されている撮像画像に対して第2オブジェクトの少なくとも一部を合成(この実施例では重畳表示)する表示制御を行うと共に、ゲーム装置12にマーカ認識信号を送信する。ゲーム装置12は、マーカ認識信号を受信して、第1オブジェクトの少なくとも一部の表示制御を行う。
【0216】
このように、ゲーム装置12は、モニタ28にマーカMを表示することで、ゲーム装置100に対して、LCD112の撮像画像への第2オブジェクトの表示制御を行わせ、一方、ゲーム装置100は、ゲーム装置12に対して、マーカMに基づいて表示制御を行う際にマーカ認識信号を送信することで、モニタ28への第1オブジェクトの表示制御を行わせるので、ゲーム装置12およびゲーム装置100がマーカMおよびマーカ認識信号を通じて連携して、モニタ28およびLCD112の撮像画像の間で第1オブジェクトおよび第2オブジェクトを連動させることが可能となる。
【0217】
特に、この実施例では、第1オブジェクトおよび第2オブジェクトは、共通のオブジェクトである(つまり共通のオブジェクトが、モニタ28では第1オブジェクトになり、LCD112では第2オブジェクトになる)ので、共通のオブジェクトがモニタ28およびLCD112の間を移動するように見せる(表示制御する)ことができる。
【0218】
より具体的には、ゲーム装置12は、マーカMと共に、第1オブジェクトの少なくとも一部を表示し(S31)、マーカ認識信号に基づいて、第1オブジェクトの少なくとも一部を消去する(S41)。これにより、プレイヤオブジェクトPOや敵オブジェクトEOは、モニタ28からLCD112の撮像画像上に飛び出したり、そこからモニタ28に戻ったりする。
【0219】
なお、第1オブジェクトおよび第2オブジェクトは、共通のオブジェクトの一部(たとえば頭および腕)および他の一部(たとえば胴体)でもよいし、互いに独立したオブジェクトでもよい。
【0220】
さて、上述の実施例では、マーカを常時表示した状態で、オブジェクトをモニタ28およびLCD112の撮像画像の間で出入りさせたが、マーカを適時表示して、オブジェクトをモニタ28およびLCD112に同時に登場させたり、モニタ28およびLCD112から同時に退場させたりしてもよい。この場合の表示制御を第1変形例として、以下に説明する。
【0221】
第1変形例では、ゲーム装置12(据え置き側)のCPU40およびゲーム装置100(携帯側)のCPU142は、図27および図28に示す表示制御処理をそれぞれ実行する。まず、据え置き側に関し、図27を参照して、CPU40は、ステップS81で、オブジェクトの影をモニタ28に表示するようGPU42bに命令する。応じてGPU42bは、たとえば、図29(A)に示すように、オブジェクトOの影SHをモニタ28に表示する。なお、このとき携帯側では、図29(B)のような撮像画像がLCD112に表示される(後述)。
【0222】
次に、CPU40は、ステップS83で、現時点はオブジェクトを登場させる期間内か否かを時間データ76に基づいて判別し、ここでYESであればステップS85に進んで、マーカをモニタ28に表示するようGPU42bに命令する。応じてGPU42bは、モニタ28の四隅にマーカMを表示する。
【0223】
次に、CPU40は、ステップS87で、無線通信モジュール50によってマーカ認識信号が受信されたか否かを判別する。ここでNOであればステップS81に戻り、1フレーム毎に同様の処理を繰り返す。ステップS87でYESであれば、CPU40は、オブジェクトOの胴体をモニタ28に表示するようGPU42bに命令し、応じてGPU42bは、図30(A)に示すようにモニタ28に胴体を表示する。なお、このとき携帯側では、図30(B)のような撮像画像がLCD112に表示される(後述)。その後、ステップS81に戻って、1フレーム毎に同様の処理を繰り返す。
【0224】
ステップS83でNOであれば、CPU40は、ステップS91に移って、マーカを消去するようGPU42bに命令し、次のステップS93では、さらに胴体を消去するように命令する。応じてGPU42bは、マーカMさらには胴体モニタ28から消去する。その後、ステップS81に戻って、1フレーム毎に同様の処理を繰り返す。
【0225】
次に、携帯側に関し、図28を参照して、CPU142は、ステップS101で、カメラ118を介して撮像処理を実行し、得られた撮像画像を撮像画像領域176に繰り返し書き込む。次に、CPU142は、ステップS103で、LCD112に撮像画像の表示を命令し、応じてLCD112は、撮像画像領域176に記憶された撮像画像を順次読み出して表示する。したがって、LCD112には、図29(B)に示すような撮像画像が表示される。この撮像画像は、モニタ画像28aを含む。モニタ画像28aは、図32(A)に示したモニタ28の撮像画像であり、影画像SHaを含む。
【0226】
次に、CPU142は、ステップS105で、像画像領域176に記憶された撮像画像に対しマーカ認識処理を行う。このマーカ認識処理もまた、図19のサブルーチンに従って実行される。次のステップS107では、マーカを認識したか否かをステップS79(図19参照)の比較結果に基づいて判別する。ここでYESであれば、ステップS109に移って、無線通信モジュール50を介してマーカ認識信号をゲーム装置12に送信する。そしてステップS111で、オブジェクトObの頭および腕を撮像画像の上に重畳表示するようLCD112に命令する。応じてLCD112は、たとえば、図30(B)に示すように、オブジェクトObの頭および腕を撮像画像に重畳表示する。その後、ステップS101に戻って、1フレーム毎に同様の処理を繰り返す。
【0227】
ステップS107でNOであれば、CPU142は、ステップS113に移って、オブジェクトObの頭および腕を消去するようLCD112に命令し、応じてLCD112は、重畳表示されているオブジェクトObの頭および腕を消去する。その後、ステップS101に戻って、1フレーム毎に同様の処理を繰り返す。これによって、LCD112の表示は、図30(B)から図29(B)に変化する。
【0228】
以上のように、第1変形例では、ゲーム装置12のCPU40は、マーカMをモニタ28に表示し(S85)、ゲーム装置100のCPU142は、カメラ118で撮像を行い(S101)、撮像した撮像画像をLCD112に表示し(S103)、撮像画像中に、マーカMが含まれるか否かを判定し(S105,S107)、判定結果に基づいて、LCD112で表示されている撮像画像に対してマーカMに対応する第2オブジェクトObの少なくとも一部を合成する表示制御を行い(S111)、そして、判定結果に基づいて、ゲーム装置12に対してマーカ認識信号を送信する(S109)。
【0229】
ゲーム装置12はさらに、上記のように送信されたマーカ認識信号を受信し(S87)、そして、受信されたマーカ認識信号に基づいて、モニタ28に対して、マーカMに対応した第1オブジェクト画像Oの少なくとも一部を表示する(S89)。これによって、モニタ28およびLCD112の撮像画像の間でオブジェクトが同時に登場/退場したような表現が可能となる。
【0230】
なお、先述の実施例および第1変形例では、表示制御を行う際に無線通信モジュールを介して各種信号を送受信しているが、何ら信号を用いずに表示制御を行うことも可能である。この場合の表示制御を第2変形例として、以下に説明する。
【0231】
第2変形例では、ゲーム装置12(据え置き側)のCPU40およびゲーム装置100(携帯側)のCPU142は、図31(A)および図31(B)に示す表示制御処理をそれぞれ実行する。まず、据え置き側に関し、図31(A)を参照して、CPU40は、ステップS121で、オブジェクトOをモニタ28に表示するようGPU42bに命令する。応じてGPU42bは、たとえば、図32(A)に示すように、オブジェクトOをモニタ28に表示する。なお、このとき携帯側では、図32(B)のような撮像画像がLCD112に表示される(後述)。
【0232】
次に、CPU40は、ステップS123で、現時点はオブジェクトOをモニタ28の外に出す期間内か否かを時間データ76に基づいて判別し、ここでYESであればステップS125に進んで、オブジェクトOをモニタ28から消去するようGPU42bに命令し、さらにステップS127でマーカMをモニタ28に表示するようGPU42bに命令する。応じてGPU42bは、オブジェクトOをモニタ28から消去し、そしてモニタ28の所定位置(ここではオブジェクトOの消去位置)にマーカMを表示する。その後、ステップS123に戻って、1フレーム毎に同様の処理を繰り返す。
【0233】
ステップS123でNOであれば、CPU40は、ステップS129で、マーカMをモニタ28から消去するようGPU42bに命令する。応じてGPU42bは、マーカMをモニタ28から消去する。その後、ステップS121に戻って、1フレーム毎に同様の処理を繰り返す。
【0234】
したがって、ステップS123の判別結果がNOからYESに変化したとき、モニタ28の表示は、図32(A)から図33(A)のように変化する。なお、このときLCD112の表示は、図32(B)から図33(B)のように変化する(後述)。一方、ステップS123の判別結果がYESからNOに変化したとき、モニタ28の表示は、図33(A)から図32(A)のように変化する。なお、このときLCD112の表示は、図33(B)から図32(B)のように変化する(後述)。
【0235】
次に、携帯側に関し、図31(B)を参照して、CPU142は、ステップS131で、カメラ118を介して撮像処理を実行し、得られた撮像画像を撮像画像領域176に繰り返し書き込む。次に、CPU142は、ステップS133で、LCD112に撮像画像の表示を命令し、応じてLCD112は、撮像画像領域176に記憶された撮像画像を順次読み出して表示する。したがって、LCD112には、図32(B)に示すような撮像画像が表示される。この撮像画像は、モニタ画像28aを含む。モニタ画像28aは、図29(A)に示したモニタ28の撮像画像であり、オブジェクト画像Oaを含む。
【0236】
次に、CPU142は、ステップS135で、像画像領域176に記憶された撮像画像に対しマーカ認識処理を行う。このマーカ認識処理もまた、図19のサブルーチンに従って実行される。次のステップS137では、マーカを認識したか否かをステップS79(図19参照)の比較結果に基づいて判別する。ここでYESであれば、ステップS139で、オブジェクト画像Obを撮像画像の上に重畳表示するようLCD112に命令する。応じてLCD112は、たとえば、図33(B)に示すように、オブジェクト画像Obを撮像画像に重畳表示する。その後、ステップS131に戻って、1フレーム毎に同様の処理を繰り返す。
【0237】
ステップS137でNOであれば、CPU142は、ステップS141に移って、オブジェクト画像Obを消去するようLCD112に命令し、応じてLCD112は、重畳表示されているオブジェクト画像Obを消去する。その後、ステップS131に戻って、1フレーム毎に同様の処理を繰り返す。
【0238】
したがって、ステップS137の判別結果がNOからYESに変化したとき、LCD112の表示は、図32(B)から図33(B)のように変化する。なお、このときモニタ28の表示は、図32(A)から図33(A)のように変化する。一方、ステップS137の判別結果がYESからNOに変化したとき、LCD112の表示は、図33(B)から図32(B)のように変化する。なお、このときモニタ28の表示は、図33(A)から図32(A)のように変化する。
【0239】
なお、上記の実施例や変形例では、認識を行う前に、マーカをモニタ28に表示して、このモニタ28に表示されたマーカを撮像して保存し、認識を行う際には、こうして撮像して保存したマーカと、新たに撮像したマーカとを比較したが、予めマーカを記憶しておくことで、このような保存処理を省略し、認識を行う際には、予め記憶されたマーカと、新たに撮像したマーカとを比較するようにしてもよい。ただし、この実施例のように保存処理を行えば、モニタ28の特性や環境の変化に対応することができるので、認識精度の向上が期待できる。
【0240】
また、上記の実施例や変形例では、マーカは静的であったが、動的に変化させてもよい。たとえば、マーカの大きさに応じて、出現するオブジェクトの大きさを変更してもよい。あるいは、マーカの形状に応じて、出現するオブジェクトの表示方向を変更してもよい。
【0241】
また、図17〜図19の実施例において、携帯側から信号を送って、携帯側はその時点で表示制御を実行し、据え置き側は信号を受信した時点で表示制御を行ってもよい。
【0242】
また、この実施例では、据え置き側と携帯側との接続は無線接続であったが、有線接続でもよい。
【0243】
また、この実施例では、据え置き側の表示装置に対する携帯側の向きは、携帯側の撮像画像に含まれるマーカの位置に基づいて算出したが、携帯側に動きを検知するセンサ(加速度センサやジャイロセンサなど)を搭載して、センサ値に基づき位置を算出し、算出された位置に基づいて、据え置き側の表示装置に対する携帯側の向きを算出してもよい。
【0244】
なお、実施例や変形例では、据え置き側の表示装置と携帯側の画面とを同時に(目線を移さずに)見るのは困難であるが、携帯側の画面として、光学シースルー(半透明表示)が可能なヘッドマウントディスプレイを用いれば、これが可能になる。具体的には、ヘッドマウントディスプレイにカメラを取り付け(ただしカメラは別体でもよい)、このカメラで据え置き側の表示装置を撮像して、撮像画像からマーカを検出したとき、ヘッドマウントディスプレイにオブジェクトを表示する。ヘッドマウントディスプレイには、カメラからの撮像画像は表示しない。これによって、ヘッドマウントディスプレイに表示された半透明のオブジェクト越しに、据え置き側の表示装置に表示された画像(オブジェクト)を見ることができるので、据え置き側と携帯側との間で視覚的な連動性を高めることができる。
【0245】
以上では、ゲームシステム10について説明したが、この発明は、第1表示手段を利用する第1画像処理装置(たとえば、モニタに接続された据え置き型のゲーム装置,PCなど:モニタは外付けでも内蔵でもよい)と、撮像手段および第2表示手段を利用する第2画像処理装置(たとえば、LCDおよびカメラを内蔵する携帯型のゲーム装置,携帯通信端末,PDAなど:LCDやカメラは外付けでもよい)とを含む、画像処理システムに適用できる。
【0246】
なお、LCDやカメラが3D対応型であれば、図25等に示したオブジェクトの飛び出しを、よりリアルに表現できる。
【符号の説明】
【0247】
10 …ゲームシステム
12 …(据え置き型の)ゲーム装置
28 …モニタ
40 …CPU
42b …GPU
42e …内部メインメモリ
46 …外部メインメモリ
50 …無線通信モジュール
100 …(携帯型の)ゲーム装置
112 …(下側)LCD
118 …(外側)カメラ
142 …CPU
148 …メインメモリ
156 …無線通信モジュール

【特許請求の範囲】
【請求項1】
第1表示手段を利用する第1画像処理装置と、撮像手段および画面上に現実空間を視認可能な第2表示手段を利用する第2画像処理装置とを含む、画像処理システムであって、
前記第1画像処理装置は、
所定のマーカ画像を前記第1表示手段に表示する第1表示処理手段、および
前記第1表示手段に対して、所定のCGオブジェクトである第1オブジェクト画像の少なくとも一部の表示の制御を行う第1オブジェクト表示制御手段を備え、
前記第2画像処理装置は、
前記撮像手段で撮像を行う撮像処理手段、および
前記撮像画像内で前記マーカ画像を認識することにより、前記第2表示手段上で視認可能な現実空間に対して、前記撮像画像内の前記マーカ画像を基準とした位置に、所定のCGオブジェクトである第2オブジェクト画像の少なくとも一部の合成の制御を行う第2オブジェクト表示制御手段を備える、画像処理システム。
【請求項2】
前記第1画像処理手段と前記第2画像処理手段は通信可能であり、
前記第1オブジェクト表示制御手段は、通信により連動して、前記第1オブジェクト画像の表示の制御を行い、
前記第2オブジェクト表示制御手段は、通信により連動して、前記第2オブジェクト画像の合成の制御を行う、請求項1に記載の画像処理システム。
【請求項3】
前記第2オブジェクト表示制御手段は、前記撮像画像内で前記マーカ画像を認識した際に、前記撮像画像内に前記第2オブジェクト画像の少なくとも一部を合成し、
前記第1オブジェクト表示制御手段は、前記第2オブジェクト表示制御手段において、前記撮像画像内で前記マーカ画像を認識した際に、前記第1表示手段に対して、前記第1オブジェクト画像が消えるように制御を行う、請求項2に記載の画像処理システム。
【請求項4】
前記第2オブジェクト表示制御手段は、前記撮像画像内で前記マーカ画像を認識した際に、前記撮像画像内に前記第2オブジェクト画像の少なくとも一部を合成し、
前記第1オブジェクト表示制御手段は、前記第2オブジェクト表示制御手段において、前記撮像画像内で前記マーカ画像を認識した際に、前記第1表示手段に対して、前記第1オブジェクト画像が表示されるように制御を行う、請求項2に記載の画像処理システム。
【請求項5】
前記マーカ画像には識別情報が含まれ、
前記第1オブジェクト画像および前記第2オブジェクト画像は、それぞれ前記マーカ画像に含まれる識別情報に対応した画像である、請求項1に記載の画像処理システム。
【請求項6】
前記第1表示処理手段は、複数の前記マーカ画像を前記第1表示手段に表示する、請求項1に記載の画像処理システム。
【請求項7】
前記第1表示処理手段は、4つのマーカ画像を前記第1表示手段の四隅に表示する、請求項6に記載の画像処理システム。
【請求項8】
前記第1オブジェクト表示制御手段は、前記複数のマーカ画像に囲まれた所定の位置に対して、前記第1オブジェクト画像が表示されるように制御を行い、
前記第2オブジェクト表示制御手段は、前記撮像画像内で前記複数のマーカ画像の少なくも一つを認識することにより、前記撮像画像内で認識された前記複数のマーカ画像に囲まれた位置に対して、前記第2オブジェクト画像の合成の制御を行う、請求項6または7に記載の画像処理システム。
【請求項9】
前記第2オブジェクト表示制御手段は、前記撮像画像中の前記マーカ画像に対してAR認識することにより、前記撮像画像中の前記マーカ画像の位置および姿勢に応じた位置および姿勢で前記第2オブジェクトの合成の制御を行う、請求項1に記載の画像処理システム。
【請求項10】
前記第2オブジェクト表示制御手段は、
前記撮像画像中の前記マーカ画像を認識することにより、前記第1表示手段上の前記マーカ画像と、前記撮像手段との位置および姿勢の相対関係を算出する位置姿勢算出手段、
仮想空間に前記第2オブジェクトを配置するとともに、当該第2オブジェクトと仮想カメラとの位置および姿勢の相対関係が、前記位置姿勢算出手段によって算出された位置および姿勢と同じなるように、当該仮想カメラの位置および姿勢を決定する仮想カメラ設定手段、および
前記仮想カメラで前記第2オブジェクトを含む前記仮想空間を撮影する仮想空間撮影手段を含み、
前記撮像画像と前記仮想空間撮影手段で撮影した仮想空間との合成の制御を行う、請求項9に記載の画像処理システム。
【請求項11】
前記第2画像処理装置は、前記撮像処理手段で撮像した撮像画像を前記第2表示手段に表示する第2表示処理手段をさらに備え、
前記第2オブジェクト表示制御手段は、前記第2表示手段で表示されている前記撮像画像に対して、前記第2オブジェクトの合成の制御を行う、請求項1に記載の画像処理システム。
【請求項12】
前記第2画像処理装置はさらに、
前記マーカ画像の認識結果に基づいて、前記第1画像処理装置に対して第1信号を送信する第1信号送信手段を備え、
前記第1画像処理装置はさらに、
前記第1信号送信手段で送信された第1信号を受信する第1信号受信手段を備え、
前記第1オブジェクト表示制御手段は、前記第1信号受信手段で受信された第1信号に基づいて、前記第1オブジェクトの表示を制御する、請求項1に記載の画像処理システム。
【請求項13】
前記第1画像処理装置は、前記第1信号受信手段で前記第1信号が受信された場合に、前記第2画像処理装置に対して第2信号を送信する第2信号送信手段をさらに備え、
前記第2画像処理装置は、前記第2信号を受信する第2信号受信手段をさらに備え、
前記第2オブジェクト表示制御手段は、前記第2信号受信手段で受信された第2信号に基づいて表示制御を行う、請求項12に記載の画像処理システム。
【請求項14】
前記第2信号送信手段は、前記第1信号受信手段で第1信号を受信されてから第1所定時間が経過した後に、前記第2画像処理装置に対して第2信号を送信する、請求項13に記載の画像処理システム。
【請求項15】
前記第1オブジェクト表示制御手段は、前記第2信号送信手段で第2信号を送信された後に表示制御を行う、請求項13または14に記載の画像処理システム。
【請求項16】
前記第1画像処理装置は、前記第1オブジェクト表示制御手段で表示制御が行われてから第2所定時間が経過した後に、前記第2画像処理装置に対して第3信号を送信する第3信号送信手段をさらに備え、
前記第2画像処理装置は、前記第3信号を受信する第3信号受信手段をさらに備え、
前記第2オブジェクト表示制御手段は、前記第3信号受信手段で前記第3信号を受信された後に、前記撮像画像から前記第2オブジェクトを削除する、請求項14に記載の画像処理システム。
【請求項17】
前記第1オブジェクト表示制御手段は、前記第3信号送信手段で前記第3信号を送信された後に、前記表示制御を行う前の状態にする、請求項16に記載の画像処理システム。
【請求項18】
前記第1表示処理手段は、前記所定の識別情報と共に、前記第1オブジェクトの少なくとも一部を表示し、
前記第1オブジェクト表示制御手段は、前記第1信号に基づいて、前記第1オブジェクトの少なくとも一部を消去する、請求項12に記載の画像処理システム。
【請求項19】
前記第1オブジェクト表示制御手段は、前記第1信号に基づいて、前記第1オブジェクトの少なくとも一部を表示する、請求項12に記載の画像処理システム。
【請求項20】
前記第1オブジェクト表示制御手段は、前記マーカ画像の大きさに基づいて、前記第1オブジェクトの大きさを変更する第1オブジェクト大きさ変更手段を含み、
前記第2オブジェクト表示制御手段は、前記マーカ画像の大きさに基づいて、前記第2オブジェクトの大きさを変更する第2オブジェクト大きさ変更手段を含む、請求項1に記載の画像処理システム。
【請求項21】
前記第1オブジェクト表示制御手段は、前記マーカ画像の形状に基づいて、前記第1オブジェクトの表示方向を変更する第1オブジェクト方向変更手段を含み、
前記第2オブジェクト表示制御手段は、前記マーカ画像の形状に基づいて、前記第2オブジェクトの表示方向を変更する第2オブジェクト方向変更手段を含む、請求項1に記載の画像処理システム。
【請求項22】
前記第1信号には座標情報が含まれ、
前記第1オブジェクト表示制御手段は、前記第1信号に含まれる座標情報に基づいて、前記第1オブジェクトの少なくとも一部の表示の制御を行う、請求項12に記載の画像処理システム。
【請求項23】
前記第2表示処理手段は、前記第2表示手段に前記マーカ画像と同一形状の枠を表示する枠表示手段を含み、
前記第2オブジェクト表示制御手段は、前記マーカ画像が、前記枠表示手段で表示された枠に沿って表示されている状態で認識する、請求項11に記載の画像処理システム。
【請求項24】
第1表示手段を利用する第1画像処理装置と、撮像手段および画面上に現実空間を視認可能な第2表示手段を利用する第2画像処理装置とで画像処理を行う、画像処理プログラムであって、
前記第1画像処理装置のコンピュータを、
所定のマーカ画像を前記第1表示手段に表示する第1表示処理手段、および
前記第1表示手段に対して、所定のCGオブジェクトである第1オブジェクト画像の少なくとも一部の表示の制御を行う第1オブジェクト表示制御手段として機能させ、
前記第2画像処理装置のコンピュータを、
前記撮像手段で撮像を行う撮像処理手段、および
前記撮像画像内で前記マーカ画像を認識することにより、前記第2表示手段上で視認可能な現実空間に対して、前記撮像画像内の前記マーカ画像を基準とした位置に、所定のCGオブジェクトである第2オブジェクト画像の少なくとも一部の合成の制御を行う第2オブジェクト表示制御手段として機能させる、画像処理プログラム。
【請求項25】
第1表示手段を利用して、撮像手段および画面上に現実空間を視認可能な第2表示手段を利用する第2画像処理装置と連携する、第1画像処理装置であって、
所定のマーカ画像を前記第1表示手段に表示する第1表示処理手段、および
前記第1表示手段に対して、所定のCGオブジェクトである第1オブジェクト画像の少なくとも一部の表示の制御を行う第1オブジェクト表示制御手段を備え、
前記第2画像処理装置には、
前記撮像手段で撮像を行う撮像処理手段、および
前記撮像画像内で前記マーカ画像を認識することにより、前記第2表示手段上で視認可能な現実空間に対して、前記撮像画像内の前記マーカ画像を基準とした位置に、所定のCGオブジェクトである第2オブジェクト画像の少なくとも一部の合成の制御を行う第2オブジェクト表示制御手段が備えられる、第1画像処理装置。
【請求項26】
第1表示手段を利用する第1画像処理装置と連携して、撮像手段および画面上に現実空間を視認可能な第2表示手段を利用する、第2画像処理装置であって、
前記第1画像処理装置には、
所定のマーカ画像を前記第1表示手段に表示する第1表示処理手段、および
前記第1表示手段に対して、所定のCGオブジェクトである第1オブジェクト画像の少なくとも一部の表示の制御を行う第1オブジェクト表示制御手段が備えられ、
前記撮像手段で撮像を行う撮像処理手段、および
前記撮像画像内で前記マーカ画像を認識することにより、前記第2表示手段上で視認可能な現実空間に対して、前記撮像画像内の前記マーカ画像を基準とした位置に、所定のCGオブジェクトである第2オブジェクト画像の少なくとも一部の合成の制御を行う第2オブジェクト表示制御手段を備える、第2画像処理装置。
【請求項27】
第1表示手段を利用する第1画像処理装置と、撮像手段および画面上に現実空間を視認可能な第2表示手段を利用する第2画像処理装置とで行う、画像処理方法であって、
前記第1画像処理装置のコンピュータで行う、
所定のマーカ画像を前記第1表示手段に表示する第1表示処理ステップ、および
前記第1表示手段に対して、所定のCGオブジェクトである第1オブジェクト画像の少なくとも一部の表示の制御を行う第1オブジェクト表示制御ステップ、ならびに
前記第2画像処理装置のコンピュータで行う、
前記撮像手段で撮像を行う撮像処理ステップ、および
前記撮像画像内で前記マーカ画像を認識することにより、前記第2表示手段上で視認可能な現実空間に対して、前記撮像画像内の前記マーカ画像を基準とした位置に、所定のCGオブジェクトである第2オブジェクト画像の少なくとも一部の合成の制御を行う第2オブジェクト表示制御ステップを含む、画像処理方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate

【図31】
image rotate

【図32】
image rotate

【図33】
image rotate


【公開番号】特開2011−258120(P2011−258120A)
【公開日】平成23年12月22日(2011.12.22)
【国際特許分類】
【出願番号】特願2010−134062(P2010−134062)
【出願日】平成22年6月11日(2010.6.11)
【出願人】(000233778)任天堂株式会社 (1,115)
【Fターム(参考)】