説明

ゲーム処理をするためのプログラム、装置、システムおよび方法

【課題】ゲームとして表現にこれまでに以上の広がりを持たせて、興趣性を向上させるすることができる、ゲームプログラム、装置、システムおよび方法を提供すること。
【解決手段】ゲーム処理において、実世界画像と仮想世界画像とを融合して重畳的な画像を生成するためのマーカを基準に設定される仮想面を介した、プレイヤオブジェクトとノンプレイヤオブジェクトとの相互関係を制御するゲームプログラムであって、上述の重畳的な画像をユーザに提供する表示装置と、マーカを撮像する撮像部を備える装置のコンピュータを所定の手段として機能させる、ゲームプログラムなど。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ゲーム処理をするためのプログラム、装置、システムおよび方法に関する。具体的には、本発明は、ゲーム処理において、実空間から得られる知覚情報と仮想空間に生成した情報とを融合させるための、ゲームプログラム、それを利用する装置、システムおよび方法に関する。
【背景技術】
【0002】
近年、実世界を撮像した画像に仮想オブジェクトを合成表示することによって、その仮想オブジェクトがあたかも実世界内に実在するかのように表示する、拡張現実感(Augmented Reality)技術(以下、AR技術)の研究が進んでいる。
【0003】
このAR技術を利用したゲーム装置も知られている。例えば、このようなゲーム装置は、カメラで撮像された画像に写っているゲームカードをビジュアルマーカとして検出し、その検出結果に基づいてカメラとゲームカードとの位置関係を算出する(例えば、特許文献1参照)。そして、そのゲーム装置は、算出した結果に基づき仮想オブジェクトの画像を、撮像した画像に重畳した画像を生成することで、仮想オブジェクトが撮像画像におけるゲームカード上に位置する重畳画像を生成し、表示する。
【0004】
特許文献1に例示されるように、そのゲームに登場するオブジェクトは、マーカとしてのゲームカード上かまたはゲームカードの面に沿った限定的な領域(例えば、そのキャラクタは、当該ゲームカードの動きに追従して移動する)に重畳的に表示されるようになっているだけである。よって、AR技術を利用した従来のゲーム装置は、ゲームとしての広がりを持たせて、興趣性を向上させるという点については改善の余地があった。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2006−072667号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
そこで、本発明の目的は、ゲームとしての表現にこれまで以上の広がりを持たせて、興趣性を向上させることができる、ゲームプログラム、装置、システムおよび方法を提供することである。
【課題を解決するための手段】
【0007】
上記目的を達成するために、本発明は、その一例として、以下のような態様で提供され得る。以下で示した具体的な記載のいずれもが、本発明の外延を理解するために示した例示的な記載であって、本発明がこの例に限定されることを意図するものではない。すなわち、当業者は、その具体的な記載から、本発明に関する記載および技術常識に基づいて均等な範囲を実施することができることが理解される。
【0008】
本発明の一態様において、ゲームプログラムが提供される。このゲームプログラムは、撮像装置と画面上において現実空間を視認可能とする表示装置に接続されたゲーム装置のコンピュータを、撮像画像取得手段、検出手段、算出手段、仮想カメラ設定手段、仮想面設定手段、第1仮想オブジェクト制御手段、仮想オブジェクト画像生成手段、表示制御手段、第2仮想オブジェクト制御手段、ゲーム進行手段として機能させる。
【0009】
ここで、撮像画像取得手段は、上記撮像装置が現実空間を撮像することにより得られた撮像画像を取得する。検出手段は、上記撮像画像取得手段により取得された撮像画像から特定対象物を検出する。算出手段は、上記特定対象物の検出結果に基づき、上記撮像装置と上記特定対象物との相対的位置を算出する。仮想カメラ設定手段は、上記相対的位置に基づき、仮想空間内の仮想カメラを設定する。仮想面設定手段は、上記相対的位置に基づき、上記仮想空間内に仮想面を設定して上記仮想空間の部分空間を規定する。第1仮想オブジェクト制御手段は、上記仮想面により規定される、上記仮想空間の第1部分空間に、上記仮想カメラの位置に基づき、第1仮想オブジェクトを提供する。仮想オブジェクト画像生成手段は、上記第1仮想オブジェクトを含む上記仮想空間を上記仮想カメラで撮影することにより、仮想オブジェクト画像を生成する。表示制御手段は、上記画面上の現実空間に重ね合わせてユーザに視認されるように、上記仮想オブジェクト画像を重ね合わせて、上記表示装置に表示させる。第2仮想オブジェクト制御手段は、ゲームの進行に応じて、上記第1仮想オブジェクトとは別の第2仮想オブジェクトを上記仮想空間内に提供する。そして、ゲーム進行手段は、上記第1仮想オブジェクトまたは第2仮想オブジェクトのいずれかまたはその両方を、上記仮想面に対する位置関係を変化させることに応じて上記ゲームの進行を制御する。
【0010】
一実施形態において、上記ゲーム進行手段は、上記第1仮想オブジェクトと上記第2仮想オブジェクトとの相互関係に関する条件の判定を後続のゲーム処理のために行ってもよい。
【0011】
他の実施形態において、上記ゲーム進行手段は、上記第1部分空間に存在する上記第1仮想オブジェクトの少なくとも一部が上記仮想面を介して前記仮想カメラから見て前記仮想面より遠位の第2部分空間に移動されたときに、上記第1仮想オブジェクトと上記第2仮想オブジェクトとの相互関係に関する条件の判定を後続のゲーム処理のために行ってもよい。
【0012】
別の実施形態において、上記相互関係に関する条件は、上記第1仮想オブジェクトと上記第2仮想オブジェクトとの位置関係が所定の条件を満たすことであってもよい。
【0013】
さらに別の実施形態において、上記相互関係に関する条件は、さらに上記算出手段により得られる相対的位置に基づき規定される上記第1仮想オブジェクトの移動量が一定値に達すること、または当該移動量が一定値に達してない場合であっても、上記検出手段が上記撮像画像から上記特定対象物を検出しなかったことであってもよい。
【0014】
さらに別の実施形態において、上記第1仮想オブジェクトは、上記仮想カメラ側から上記特定対象物側に伸びる仮想オブジェクトとして表現される三次元モデルが与えられてもよい。
【0015】
他の実施形態において、上記表示制御手段は、上記仮想面設定手段により規定される仮想面を、上記特定対象物の位置を基準として配置される3次元モデルに基づき表示し、上記三次元モデルは上記撮像画像がその表面にマッピングされたポリゴンで規定されてもよい。
【0016】
別の実施形態において、上記第2仮想オブジェクト制御手段が、上記第1部分空間以外の上記仮想空間に1以上の第2仮想オブジェクトを配置する場合、上記表示制御手段は、上記画面に表示するための上記第2仮想オブジェクトを、上記仮想面を示すためのポリゴン上にマッピングされる上記撮像画像のテクスチャに対して、上記第2仮想オブジェクトの形状を模したテクスチャをブレンドすることで表示してもよい。
【0017】
さらに別の実施形態において、上記第2仮想オブジェクト制御手段は、上記第2仮想オブジェクトを、上記仮想空間における、上記特定対象物と上記仮想カメラとの間の領域に配置する傾向を有してもよい。
【0018】
他の実施形態において、上記ゲーム進行手段は、上記第2仮想オブジェクト制御手段が上記第2仮想オブジェクトを上記仮想空間に提供する場合であって、当該第2仮想オブジェクトの少なくともその一部が、第1部分空間以外の空間から上記仮想面を介して上記第1部分空間に移動しそこに位置づけられるときに、上記第1仮想オブジェクトと上記第2仮想オブジェクトとの相互関係に関する条件の判定を行い、当該判定の結果に従い後続のゲーム処理を行ってもよい。
【0019】
別の実施形態において、上記相互関係に関する条件は、上記第1仮想オブジェクトの少なくとも一部分と、上記第2仮想オブジェクトとの間の衝突判定において当該仮想オブジェクト同士が衝突したと判定されることであってもよい。
【0020】
また、別の態様において、上述のゲームプログラムは、それを実行する装置として使用されたとしても、1または複数の装置が通信可能に構成されるシステムとして使用されてもよい。また、本発明は、上述のようなプログラム、装置、システムとして実装され得る、方法も含む。
【0021】
なお、本明細書で使用される場合、「コンピュータ読み取り可能な記憶媒体」との用語は、プログラム、コードおよび/またはデータをコンピュータシステムによって使用するために記憶することが可能な、任意の装置または媒体をいう。コンピュータ読み取り可能な記憶媒体は、コンピュータシステムによって読み取りが可能である限りにおいて、揮発性であっても、不揮発性であってもよい。コンピュータ読み取り可能な記憶媒体としては、例えば、磁気テープ、ハードディスクドライブ(HDD)、コンパクトディスク(CD)、デジタルバーサタイルディスク(DVD)、ブルーレイディスク(BD)、半導体メモリなどが挙げられるが、これらに限られない。
【0022】
また、本明細書において使用される場合、「システム」(例えば、ゲームシステム、情報処理システム)との用語は、1つの装置で構成されてもよく、また、複数の装置であって、その各々の装置が他の装置のいずれかと通信可能であるものであってもよい。
【発明の効果】
【0023】
本発明のゲームプログラム等は、ゲームとして表現にこれまでに以上の広がりを持たせて、興趣性を向上を提供し得る。
【図面の簡単な説明】
【0024】
【図1】開状態におけるゲーム装置10の正面図
【図2】開状態におけるゲーム装置10の側面図
【図3】閉状態におけるゲーム装置10の左側面図、正面図、右側面図および背面図
【図4】図1に示す上側ハウジング21のA−A’線断面図
【図5A】3D調整スイッチ25のスライダ25aが最下点(第3の位置)に存在する様子を示す図
【図5B】3D調整スイッチ25のスライダ25aが最下点よりも上方位置(第1の位置)に存在する様子を示す図
【図5C】3D調整スイッチ25のスライダ25aが最上点(第2の位置)に存在する様子を示す図
【図6】ゲーム装置10の内部構成を示すブロック図
【図7A】外側撮像部23によってマーカ60が撮像されているときに上側LCD22の画面に表示される画像の一例
【図7B】外側撮像部23によってマーカ60が撮像されているときに上側LCD22の画面に表示される画像の別例
【図7C】仮想カメラと、マーカ60との相対的位置の一例を模式的に示した図
【図7D】仮想空間に配置される水面オブジェクト61の一例を示す図
【図7E】仮想空間における仮想オブジェクト等の例示的な位置関係を示す図
【図7F】魚影が現れる領域(図中、斜線部)を制限する態様の一例を示す図
【図8】ゲーム装置10のメインメモリ32のメモリマップを示す図
【図9A】ゲームプログラム70に基づいてCPU311によって実行されるゲーム処理の流れの一例を示すフローチャート
【図9B】ゲームプログラム70に基づいてCPU311によって実行されるゲーム処理の流れの別例を示すフローチャート
【図10】左実世界画像および右実世界画像の一例を示す図
【図11】マーカ認識処理の結果に応じて算出される左仮想カメラ80Lの位置および姿勢を示す図
【図12】マーカ認識処理の結果に応じて算出される右仮想カメラ80Rの位置および姿勢を示す図
【図13】左仮想カメラ80Lの位置および姿勢に基づいて決定される右仮想カメラ80Rの位置を示す図
【発明を実施するための形態】
【0025】
(ゲーム装置の構成例)
以下、本発明の一例示的な実施形態に係るゲーム装置について説明する。図1〜図3は、ゲーム装置10の外観を示す平面図である。ゲーム装置10は携帯型のゲーム装置であり、図1〜図3に示すように折り畳み可能に構成されている。図1および図2は、開いた状態(開状態)におけるゲーム装置10を示し、図3は、閉じた状態(閉状態)におけるゲーム装置10を示している。図1は、開状態におけるゲーム装置10の正面図であり、図2は、開状態におけるゲーム装置10の右側面図である。ゲーム装置10は、撮像部によって画像を撮像し、撮像した画像を画面に表示したり、撮像した画像のデータを保存したりすることが可能である。また、ゲーム装置10は、交換可能なメモリカード内に記憶され、または、サーバーや他のゲーム装置から受信したゲームプログラムを実行可能であり、仮想空間に設定された仮想カメラで撮像した画像などのコンピュータグラフィックス処理により生成された画像を画面に表示したりすることができる。
【0026】
まず、図1〜図3を参照して、ゲーム装置10の外観構成について説明する。図1〜図3に示されるように、ゲーム装置10は、下側ハウジング11および上側ハウジング21を有する。下側ハウジング11と上側ハウジング21とは、開閉可能(折り畳み可能)に接続されている。本実施形態では、各ハウジング11および21は共に横長の長方形の板状形状であり、互いの長辺部分で回転可能に接続されている。
【0027】
図1および図2に示されるように、下側ハウジング11の上側長辺部分には、下側ハウジング11の内側面(主面)11Bに対して垂直な方向に突起する突起部11Aが設けられる。また、上側ハウジング21の下側長辺部分には、上側ハウジング21の下側面から当該下側面に垂直な方向に突起する突起部21Aが設けられる。下側ハウジング11の突起部11Aと上側ハウジング21の突起部21Aとが連結されることにより、下側ハウジング11と上側ハウジング21とが、折り畳み可能に接続される。
【0028】
(下側ハウジングの説明)
まず、下側ハウジング11の構成について説明する。図1〜図3に示すように、下側ハウジング11には、下側LCD(Liquid Crystal Display:液晶表示装置)12、タッチパネル13、各操作ボタン14A〜14L(図1、図3)、アナログスティック15、LED16A〜16B、挿入口17、および、マイクロフォン用孔18が設けられる。以下、これらの詳細について説明する。
【0029】
図1に示すように、下側LCD12は下側ハウジング11に収納される。下側LCD12は横長形状であり、長辺方向が下側ハウジング11の長辺方向に一致するように配置される。下側LCD12は下側ハウジング11の中央に配置される。下側LCD12は、下側ハウジング11の内側面(主面)に設けられ、下側ハウジング11に設けられた開口部から当該下側LCD12の画面が露出される。ゲーム装置10を使用しない場合には閉状態としておくことによって、下側LCD12の画面が汚れたり傷ついたりすることを防止することができる。下側LCD12の画素数は、例えば、256dot×192dot(横×縦)であってもよい。下側LCD12は、後述する上側LCD22とは異なり、画像を(立体視可能ではなく)平面的に表示する表示装置である。なお、本実施形態では表示装置としてLCDを用いているが、例えばEL(Electro Luminescence:電界発光)を利用した表示装置など、他の任意の表示装置を利用してもよい。また、下側LCD12として、任意の解像度の表示装置を利用することができる。
【0030】
図1に示されるように、ゲーム装置10は、入力装置として、タッチパネル13を備えている。タッチパネル13は、下側LCD12の画面上に装着されている。なお、本実施形態では、タッチパネル13は抵抗膜方式のタッチパネルである。ただし、タッチパネルは抵抗膜方式に限らず、例えば静電容量方式等、任意の方式のタッチパネルを用いることができる。本実施形態では、タッチパネル13として、下側LCD12の解像度と同解像度(検出精度)のものを利用する。ただし、必ずしもタッチパネル13の解像度と下側LCD12の解像度が一致している必要はない。また、下側ハウジング11の上側面には挿入口17(図1および図3(d)に示す点線)が設けられている。挿入口17は、タッチパネル13に対する操作を行うために用いられるタッチペン28を収納することができる。なお、タッチパネル13に対する入力は通常タッチペン28を用いて行われるが、タッチペン28に限らずユーザの指でタッチパネル13に対する入力をすることも可能である。
【0031】
各操作ボタン14A〜14Lは、所定の入力を行うための入力装置である。図1に示されるように、下側ハウジング11の内側面(主面)には、各操作ボタン14A〜14Lのうち、十字ボタン14A(方向入力ボタン14A)、ボタン14B、ボタン14C、ボタン14D、ボタン14E、電源ボタン14F、セレクトボタン14J、HOMEボタン14K、およびスタートボタン14Lが、設けられる。十字ボタン14Aは、十字の形状を有しており、上下左右の方向を指示するボタンを有している。ボタン14B、ボタン14C、ボタン14D、ボタン14Eは、十字状に配置される。ボタン14A〜14E、セレクトボタン14J、HOMEボタン14K、およびスタートボタン14Lには、ゲーム装置10が実行するプログラムに応じた機能が適宜割り当てられる。例えば、十字ボタン14Aは選択操作等に用いられ、各操作ボタン14B〜14Eは例えば決定操作やキャンセル操作等に用いられる。また、電源ボタン14Fは、ゲーム装置10の電源をオン/オフするために用いられる。
【0032】
アナログスティック15は、方向を指示するデバイスであり、下側ハウジング11の内側面の下側LCD12より左側領域の上部領域に設けられる。図1に示すように、十字ボタン14Aは下側LCD12より左側領域の下部領域に設けられるので、アナログスティック15は、十字ボタン14Aの上方に設けられる。また、アナログスティック15、および、十字ボタン14Aは、下側ハウジングを把持した左手の親指で操作可能な位置に設計される。また、アナログスティック15を上部領域に設けたことにより、下側ハウジング11を把持する左手の親指が自然と位置するところにアナログスティック15が配され、十字ボタン14Aは、左手の親指を少し下にずらした位置に配される。アナログスティック15は、そのキートップが、下側ハウジング11の内側面に平行にスライドするように構成されている。アナログスティック15は、ゲーム装置10が実行するプログラムに応じて機能する。例えば、3次元仮想空間に所定のオブジェクトが登場するゲームがゲーム装置10によって実行される場合、アナログスティック15は、当該所定のオブジェクトを3次元仮想空間内で移動させるための入力装置として機能する。この場合において、所定のオブジェクトはアナログスティック15のキートップがスライドした方向に移動される。なお、アナログスティック15として、上下左右および斜め方向の任意の方向に所定量だけ傾倒することでアナログ入力を可能としたものを用いても良い。
【0033】
十字状に配置される、ボタン14B、ボタン14C、ボタン14D、ボタン14Eの4つのボタンは、下側ハウジング11を把持する右手の親指が自然と位置するところに配置される。また、これらの4つのボタンと、アナログスティック15とは、下側LCD12を挟んで、左右対称に配置される。これにより、ゲームプログラムによっては、例えば、左利きの人が、これらの4つのボタンを使用して方向指示入力をすることも可能である。
【0034】
また、下側ハウジング11の内側面には、マイクロフォン用孔18が設けられる。マイクロフォン用孔18の下部には後述する音声入力装置としてのマイク(図6参照)が設けられ、当該マイクがゲーム装置10の外部の音を検出する。
【0035】
図3(a)は閉状態におけるゲーム装置10の左側面図であり、図3(b)は閉状態におけるゲーム装置10の正面図であり、図3(c)は閉状態におけるゲーム装置10の右側面図であり、図3(d)は閉状態におけるゲーム装置10の背面図である。図3(b)および(d)に示されるように、下側ハウジング11の上側面には、Lボタン14GおよびRボタン14Hが設けられている。Lボタン14Gは、下側ハウジング11の上面の左端部に設けられ、Rボタン14Hは、下側ハウジング11の上面の右端部に設けられる。Lボタン14GおよびRボタン14Hは、例えば、撮像部のシャッターボタン(撮影指示ボタン)として機能することができる。また、図3(a)に示されるように、下側ハウジング11の左側面には、音量ボタン14Iが設けられる。音量ボタン14Iは、ゲーム装置10が備えるスピーカの音量を調整するために用いられる。
【0036】
図3(a)に示されるように、下側ハウジング11の左側面には開閉可能なカバー部11Cが設けられる。このカバー部11Cの内側には、ゲーム装置10とデータ保存用外部メモリ45とを電気的に接続するためのコネクタ(図示せず)が設けられる。データ保存用外部メモリ45は、コネクタに着脱自在に装着される。データ保存用外部メモリ45は、例えば、ゲーム装置10によって撮像された画像のデータを記憶(保存)するために用いられる。なお、上記コネクタおよびそのカバー部11Cは、下側ハウジング11の右側面に設けられてもよい。
【0037】
また、図3(d)に示されるように、下側ハウジング11の上側面には、ゲーム装置10とゲームプログラムを記録した外部メモリ44を挿入するための挿入口11Dが設けられ、その挿入口11Dの内部には、外部メモリ44と電気的に着脱自在に接続するためのコネクタ(図示せず)が設けられる。当該外部メモリ44がゲーム装置10に接続されることにより、所定のゲームプログラムが実行される。なお、上記コネクタおよびその挿入口11Dは、下側ハウジング11の他の側面(例えば、右側面等)に設けられてもよい。
【0038】
また、図1および図3(c)に示されるように、下側ハウジング11の下側面にはゲーム装置10の電源のON/OFF状況をユーザに通知する第1LED16A、下側ハウジング11の右側面にはゲーム装置10の無線通信の確立状況をユーザに通知する第2LED16Bが設けられる。ゲーム装置10は他の機器との間で無線通信を行うことが可能であり、第1LED16Bは、無線通信が確立している場合に点灯する。ゲーム装置10は、例えば、IEEE802.11.b/gの規格に準拠した方式により、無線LANに接続する機能を有する。下側ハウジング11の右側面には、この無線通信の機能を有効/無効にする無線スイッチ19が設けられる(図3(c)参照)。
【0039】
なお、図示は省略するが、下側ハウジング11には、ゲーム装置10の電源となる充電式電池が収納され、下側ハウジング11の側面(例えば、上側面)に設けられた端子を介して当該電池を充電することができる。
【0040】
(上側ハウジングの説明)
次に、上側ハウジング21の構成について説明する。図1〜図3に示すように、上側ハウジング21には、上側LCD(Liquid Crystal Display:液晶表示装置)22、外側撮像部23(外側撮像部(左)23aおよび外側撮像部(右)23b)、内側撮像部24、3D調整スイッチ25、および、3Dインジケータ26が設けられる。以下、これらの詳細について説明する。
【0041】
図1に示すように、上側LCD22は上側ハウジング21に収納される。上側LCD22は、横長形状であり、長辺方向が上側ハウジング21の長辺方向に一致するように配置される。上側LCD22は上側ハウジング21の中央に配置される。上側LCD22の画面の面積は、下側LCD12の画面の面積よりも大きく設定される。また、上側LCD22の画面は、下側LCD12の画面よりも横長に設定される。すなわち、上側LCD22の画面のアスペクト比における横幅の割合は、下側LCD12の画面のアスペクト比における横幅の割合よりも大きく設定される。
【0042】
上側LCD22の画面は、上側ハウジング21の内側面(主面)21Bに設けられ、上側ハウジング21に設けられた開口部から当該上側LCD22の画面が露出される。また、図2に示すように、上側ハウジング21の内側面は、透明なスクリーンカバー27によって覆われている。当該スクリーンカバー27は、上側LCD22の画面を保護するとともに、上側LCD22と上側ハウジング21の内側面と一体的にさせ、これにより統一感を持たせている。上側LCD22の画素数は、例えば、640dot×200dot(横×縦)であってもよい。なお、本実施形態では上側LCD22は液晶表示装置であるとしたが、例えばEL(Electro Luminescence:電界発光)を利用した表示装置などが利用されてもよい。また、上側LCD22として、任意の解像度の表示装置を利用することができる。
【0043】
上側LCD22は、立体視可能な画像を表示することが可能な表示装置である。また、本実施例では、実質的に同一の表示領域を用いて左目用画像と右目用画像が表示される。具体的には、左目用画像と右目用画像が所定単位で(例えば、1列ずつ)横方向に交互に表示される方式の表示装置である。または、左目用画像と右目用画像とが時分割で交互に表示される方式の表示装置であってもよい。また、本実施例では、裸眼立体視可能な表示装置である。そして、横方向に交互に表示される左目用画像と右目用画像とを左目および右目のそれぞれに分解して見えるようにレンチキュラー方式やパララックスバリア方式(視差バリア方式)のものが用いられる。本実施形態では、上側LCD22はパララックスバリア方式のものとする。上側LCD22は、右目用画像と左目用画像とを用いて、裸眼で立体視可能な画像(立体画像)を表示する。すなわち、上側LCD22は、視差バリアを用いてユーザの左目に左目用画像をユーザの右目に右目用画像を視認させることにより、ユーザにとって立体感のある立体画像(立体視可能な画像)を表示することができる。また、上側LCD22は、上記視差バリアを無効にすることが可能であり、視差バリアを無効にした場合は、画像を平面的に表示することができる(上述した立体視とは反対の意味で平面視の画像を表示することができる。すなわち、表示された同一の画像が右目にも左目にも見えるような表示モードである)。このように、上側LCD22は、立体視可能な画像を表示する立体表示モードと、画像を平面的に表示する(平面視画像を表示する)平面表示モードとを切り替えることが可能な表示装置である。この表示モードの切替えは、後述する3D調整スイッチ25によって行われる。
【0044】
外側撮像部23は、上側ハウジング21の外側面(上側LCD22が設けられた主面と反対側の背面)21Dに設けられた2つの撮像部(23aおよび23b)の総称である。外側撮像部(左)23aと外側撮像部(右)23bの撮像方向は、いずれも当該外側面21Dの外向きの法線方向である。また、これらの撮像部はいずれも、上側LCD22の表示面(内側面)の法線方向と180度反対の方向に設計される。すなわち、外側撮像部(左)23aの撮像方向および外側撮像部(右)23bの撮像方向は、平行である。外側撮像部(左)23aと外側撮像部(右)23bとは、ゲーム装置10が実行するプログラムによって、ステレオカメラとして使用することが可能である。また、プログラムによっては、2つの外側撮像部(23aおよび23b)のいずれか一方を単独で用いて、外側撮像部23を非ステレオカメラとして使用することも可能である。また、プログラムによっては、2つの外側撮像部(23aおよび23b)で撮像した画像を合成してまたは補完的に使用することにより撮像範囲を広げた撮像を行うことも可能である。本実施形態では、外側撮像部23は、外側撮像部(左)23aおよび外側撮像部(右)23bの2つの撮像部で構成される。外側撮像部(左)23aおよび外側撮像部(右)23bは、それぞれ所定の共通の解像度を有する撮像素子(例えば、CCDイメージセンサやCMOSイメージセンサ等)と、レンズとを含む。レンズは、ズーム機構を有するものでもよい。
【0045】
図1の破線および図3(b)の実線で示されるように、外側撮像部23を構成する外側撮像部(左)23aおよび外側撮像部(右)23bは、上側LCD22の画面の横方向と平行に並べられて配置される。すなわち、2つの撮像部を結んだ直線が上側LCD22の画面の横方向と平行になるように、外側撮像部(左)23aおよび外側撮像部(右)23bが配置される。図1の破線で示す23aおよび23bは、上側ハウジング21の内側面とは反対側の外側面に存在する外側撮像部(左)23aおよび外側撮像部(右)23bをそれぞれ表している。図1に示すように、ユーザが上側LCD22の画面を正面から視認した場合に、外側撮像部(左)23aは左側に外側撮像部(右)23bは右側にそれぞれ位置している。外側撮像部23をステレオカメラとして機能させるプログラムが実行されている場合、外側撮像部(左)23aは、ユーザの左目で視認される左目用画像を撮像し、外側撮像部(右)23bは、ユーザの右目で視認される右目用画像を撮像する。外側撮像部(左)23aおよび外側撮像部(右)23bの間隔は、人間の両目の間隔程度に設定され、例えば、30mm〜70mmの範囲で設定されてもよい。なお、外側撮像部(左)23aおよび外側撮像部(右)23bの間隔は、この範囲に限らない。
【0046】
なお、本実施例においては、外側撮像部(左)23aおよび外側撮像部(右)23はハウジングに固定されており、撮像方向を変更することはできない。
【0047】
また、外側撮像部(左)23aおよび外側撮像部(右)23bは、上側LCD22(上側ハウジング21)の左右方向に関して中央から対称となる位置にそれぞれ配置される。すなわち、外側撮像部(左)23aおよび外側撮像部(右)23bは、上側LCD22を左右に2等分する線に対して対称の位置にそれぞれ配置される。また、外側撮像部(左)23aおよび外側撮像部(右)23bは、上側ハウジング21を開いた状態において、上側ハウジング21の上部であって、上側LCD22の画面の上端よりも上方の位置の裏側に配置される。すなわち、外側撮像部(左)23aおよび外側撮像部(右)23bは、上側ハウジング21の外側面であって、上側LCD22を外側面に投影した場合、投影した上側LCD22の画面の上端よりも上方に配置される。
【0048】
このように、外側撮像部23の2つの撮像部(23aおよび23b)が、上側LCD22の左右方向に関して中央から対称の位置に配置されることにより、ユーザが上側LCD22を正視した場合に、外側撮像部23の撮像方向をユーザの視線方向と一致させることができる。また、外側撮像部23は、上側LCD22の画面の上端より上方の裏側の位置に配置されるため、外側撮像部23と上側LCD22とが上側ハウジング21の内部で干渉することがない。したがって、外側撮像部23を上側LCD22の画面の裏側に配置する場合と比べて、上側ハウジング21を薄く構成することが可能となる。
【0049】
内側撮像部24は、上側ハウジング21の内側面(主面)21Bに設けられ、当該内側面の内向きの法線方向を撮像方向とする撮像部である。内側撮像部24は、所定の解像度を有する撮像素子(例えば、CCDイメージセンサやCMOSイメージセンサ等)と、レンズとを含む。レンズは、ズーム機構を有するものでもよい。
【0050】
図1に示すように、内側撮像部24は、上側ハウジング21を開いた状態において、上側ハウジング21の上部であって、上側LCD22の画面の上端よりも上方に配置され、上側ハウジング21の左右方向に関して中央の位置(上側ハウジング21(上側LCD22の画面)を左右に2等分する線の線上)に配置される。具体的には、図1および図3(b)に示されるように、内側撮像部24は、上側ハウジング21の内側面であって、外側撮像部23の左右の撮像部(外側撮像部(左)23aおよび外側撮像部(右)23b)の中間の裏側の位置に配置される。すなわち、上側ハウジング21の外側面に設けられた外側撮像部23の左右の撮像部を上側ハウジング21の内側面に投影した場合、当該投影した左右の撮像部の中間に、内側撮像部24が設けられる。図3(b)で示される破線24は、上側ハウジング21の内側面に存在する内側撮像部24を表している。
【0051】
このように、内側撮像部24は、外側撮像部23とは反対方向を撮像する。内側撮像部24は、上側ハウジング21の内側面であって、外側撮像部(左)23aと外側撮像部(右)23bの中間位置の裏側に設けられる。これにより、ユーザが上側LCD22を正視した際、内側撮像部24でユーザの顔を正面から撮像することができる。また、外側撮像部23の左右の撮像部と内側撮像部24とが上側ハウジング21の内部で干渉することがないため、上側ハウジング21を薄く構成することが可能となる。
【0052】
3D調整スイッチ25は、スライドスイッチであり、上述のように上側LCD22の表示モードを切り替えるために用いられるスイッチである。また、3D調整スイッチ25は、上側LCD22に表示された立体視可能な画像(立体画像)の立体感を調整するために用いられる。図1〜図3に示されるように、3D調整スイッチ25は、上側ハウジング21の内側面および右側面の端部に設けられ、ユーザが上側LCD22を正視した場合に、当該3D調整スイッチ25を視認できる位置に設けられる。また、3D調整スイッチ25の操作部は、内側面および右側面の両方に突出しており、どちらからも視認および操作することができる。なお、3D調整スイッチ25以外のスイッチはすべて下側ハウジング11に設けられる。
【0053】
図4は、図1に示す上側ハウジング21のA−A’線断面図である。図4に示すように、上側ハウジング21の内側面の右端部には、凹部21Cが形成され、当該凹部21Cに3D調整スイッチ25が設けられる。3D調整スイッチ25は、図1および図2に示されるように、上側ハウジング21の正面および右側面から視認可能に配置される。3D調整スイッチ25のスライダ25aは、所定方向(上下方向)の任意の位置にスライド可能であり、当該スライダ25aの位置に応じて上側LCD22の表示モードが設定される。
【0054】
図5Aから図5Cは、3D調整スイッチ25のスライダ25aがスライドする様子を示す図である。図5Aは、3D調整スイッチ25のスライダ25aが最下点(第3の位置)に存在する様子を示す図である。図5Bは、3D調整スイッチ25のスライダ25aが最下点よりも上方位置(第1の位置)に存在する様子を示す図である。図5Cは、3D調整スイッチ25のスライダ25aが最上点(第2の位置)に存在する様子を示す図である。
【0055】
図5Aに示すように、3D調整スイッチ25のスライダ25aが最下点位置(第3の位置)に存在する場合、上側LCD22は平面表示モードに設定され、上側LCD22の画面には平面画像が表示される(なお、上側LCD22を立体表示モードのままとして、左目用画像と右目用画像を同一の画像とすることにより平面表示してもよい)。一方、図5Bに示す位置(最下点より上側の位置(第1の位置))から図5Cに示す位置(最上点の位置(第2の位置))までの間にスライダ25aが存在する場合、上側LCD22は立体表示モードに設定される。この場合、上側LCD22の画面には立体視可能な画像が表示される。スライダ25aが第1の位置から第2の位置の間に存在する場合、スライダ25aの位置に応じて、立体画像の見え方が調整される。具体的には、スライダ25aの位置に応じて、右目用画像および左目用画像における横方向の位置のずれ量が調整される。3D調整スイッチ25のスライダ25aは、第3の位置で固定されるように構成されており、第1の位置と第2の位置との間では上下方向に任意の位置にスライド可能に構成されている。例えば、スライダ25aは、第3の位置において、3D調整スイッチ25を形成する側面から図5Aに示す横方向に突出した凸部(図示せず)によって固定されて、所定以上の力が上方に加わらないと第3の位置よりも上方にスライドしないように構成されている。第3の位置から第1の位置にスライダ25aが存在する場合、立体画像の見え方は調整されないが、これはいわゆるあそびである。他の例においては、あそびをなくして、第3の位置と第1の位置とを同じ位置としてもよい。また、第3の位置を第1の位置と第2の位置の間としてもよい。その場合、スライダを第3の位置から第1の位置の方向に動かした場合と、第2の方向に動かした場合とで、右目用画像および左目用画像における横方向の位置のずれ量の調整する方向が逆になる。
【0056】
3Dインジケータ26は、上側LCD22が立体表示モードか否かを示す。3Dインジケータ26は、LEDであり、上側LCD22の立体表示モードが有効の場合に点灯する。なお、3Dインジケータ26は、上側LCD22が立体表示モードになっており、かつ、立体視画像を表示するプログラム処理が実行されているとき(すなわち、3D調整スイッチが上記第1の位置から上記第2の位置にあるときに、左目用画像と右目用画像が異なるような画像処理が実行されているとき)に限り、点灯するようにしてもよい。図1に示されるように、3Dインジケータ26は、上側ハウジング21の内側面に設けられ、上側LCD22の画面近傍に設けられる。このため、ユーザが上側LCD22の画面を正視した場合、ユーザは3Dインジケータ26を視認しやすい。したがって、ユーザは上側LCD22の画面を視認している状態でも、上側LCD22の表示モードを容易に認識することができる。
【0057】
また、上側ハウジング21の内側面には、スピーカ孔21Eが設けられる。後述するスピーカ43からの音声がこのスピーカ孔21Eから出力される。
【0058】
(ゲーム装置10の内部構成)
次に、図6を参照して、ゲーム装置10の内部の電気的構成について説明する。図6は、ゲーム装置10の内部構成を示すブロック図である。図6に示すように、ゲーム装置10は、上述した各部に加えて、情報処理部31、メインメモリ32、外部メモリインターフェイス(外部メモリI/F)33、データ保存用外部メモリI/F34、データ保存用内部メモリ35、無線通信モジュール36、ローカル通信モジュール37、リアルタイムクロック(RTC)38、加速度センサ39、電源回路40、およびインターフェイス回路(I/F回路)41等の電子部品を備えている。これらの電子部品は、電子回路基板上に実装されて下側ハウジング11(または上側ハウジング21でもよい)内に収納される。
【0059】
情報処理部31は、所定のプログラムを実行するためのCPU(Central Processing Unit)311、画像処理を行うGPU(Graphics Processing Unit)312等を含む情報処理手段である。情報処理部31のCPU311は、ゲーム装置10内のメモリ(例えば外部メモリI/F33に接続された外部メモリ44やデータ保存用内部メモリ35)に記憶されているプログラムを実行することによって、当該プログラムに応じた処理(例えば、撮影処理や、後述するゲーム処理)を実行する。なお、情報処理部31のCPU311によって実行されるプログラムは、他の機器との通信によって他の機器から取得されてもよい。また、情報処理部31は、VRAM(Video RAM)313を含む。情報処理部31のGPU312は、CPU311からの命令に応じて画像を生成し、VRAM313に描画する。そして、GPU312は、VRAM313に描画された画像を上側LCD22および/または下側LCD12に出力し、上側LCD22および/または下側LCD12に当該画像が表示される。
【0060】
情報処理部31には、メインメモリ32、外部メモリI/F33、データ保存用外部メモリI/F34、および、データ保存用内部メモリ35が接続される。外部メモリI/F33は、外部メモリ44を着脱自在に接続するためのインターフェイスである。また、データ保存用外部メモリI/F34は、データ保存用外部メモリ45を着脱自在に接続するためのインターフェイスである。
【0061】
メインメモリ32は、情報処理部31(のCPU311)のワーク領域やバッファ領域として用いられる揮発性の記憶手段である。すなわち、メインメモリ32は、上記プログラムに基づく処理に用いられる各種データを一時的に記憶したり、外部(外部メモリ44や他の機器等)から取得されるプログラムを一時的に記憶したりする。本実施形態では、メインメモリ32として例えばPSRAM(Pseudo−SRAM)を用いる。
【0062】
外部メモリ44は、情報処理部31によって実行されるプログラムを記憶するための不揮発性の記憶手段である。外部メモリ44は、例えば読み取り専用の半導体メモリで構成される。外部メモリ44が外部メモリI/F33に接続されると、情報処理部31は外部メモリ44に記憶されたプログラムを読み込むことができる。情報処理部31が読み込んだプログラムを実行することにより、所定の処理が行われる。データ保存用外部メモリ45は、不揮発性の読み書き可能なメモリ(例えば、NAND型フラッシュメモリ)で構成され、所定のデータを格納するために用いられる。例えば、データ保存用外部メモリ45には、外側撮像部23で撮像された画像や他の機器で撮像された画像が記憶される。データ保存用外部メモリ45がデータ保存用外部メモリI/F34に接続されると、情報処理部31はデータ保存用外部メモリ45に記憶された画像を読み込み、上側LCD22および/または下側LCD12に当該画像を表示することができる。
【0063】
データ保存用内部メモリ35は、読み書き可能な不揮発性メモリ(例えば、NAND型フラッシュメモリ)で構成され、所定のデータを格納するために用いられる。例えば、データ保存用内部メモリ35には、無線通信モジュール36を介した無線通信によってダウンロードされたデータやプログラムが格納される。
【0064】
無線通信モジュール36は、例えばIEEE802.11.b/gの規格に準拠した方式により、無線LANに接続する機能を有する。また、ローカル通信モジュール37は、所定の通信方式(例えば赤外線通信)により同種のゲーム装置との間で無線通信を行う機能を有する。無線通信モジュール36およびローカル通信モジュール37は情報処理部31に接続される。情報処理部31は、無線通信モジュール36を用いてインターネットを介して他の機器との間でデータを送受信したり、ローカル通信モジュール37を用いて同種の他のゲーム装置との間でデータを送受信したりすることができる。
【0065】
また、情報処理部31には、加速度センサ39が接続される。加速度センサ39は、3軸(xyz軸)方向に沿った直線方向の加速度(直線加速度)の大きさを検出する。加速度センサ39は、下側ハウジング11の内部に設けられる。加速度センサ39は、図1に示すように、下側ハウジング11の長辺方向をx軸、下側ハウジング11の短辺方向をy軸、下側ハウジング11の内側面(主面)に対して垂直な方向をz軸として、各軸の直線加速度の大きさを検出する。なお、加速度センサ39は、例えば静電容量式の加速度センサであるとするが、他の方式の加速度センサを用いるようにしてもよい。また、加速度センサ39は1軸または2軸方向を検出する加速度センサであってもよい。情報処理部31は、加速度センサ39が検出した加速度を示すデータ(加速度データ)を受信して、ゲーム装置10の姿勢や動きを検出することができる。
【0066】
また、情報処理部31には、RTC38および電源回路40が接続される。RTC38は、時間をカウントして情報処理部31に出力する。情報処理部31は、RTC38によって計時された時間に基づき現在時刻(日付)を計算する。電源回路40は、ゲーム装置10が有する電源(下側ハウジング11に収納される上記充電式電池)からの電力を制御し、ゲーム装置10の各部品に電力を供給する。
【0067】
また、情報処理部31には、I/F回路41が接続される。I/F回路41には、マイク42およびスピーカ43が接続される。具体的には、I/F回路41には、図示しないアンプを介してスピーカ43が接続される。マイク42は、ユーザの音声を検知して音声信号をI/F回路41に出力する。アンプは、I/F回路41からの音声信号を増幅し、音声をスピーカ43から出力させる。また、タッチパネル13はI/F回路41に接続される。I/F回路41は、マイク42およびスピーカ43(アンプ)の制御を行う音声制御回路と、タッチパネルの制御を行うタッチパネル制御回路とを含む。音声制御回路は、音声信号に対するA/D変換およびD/A変換を行ったり、音声信号を所定の形式の音声データに変換したりする。タッチパネル制御回路は、タッチパネル13からの信号に基づいて所定の形式のタッチ位置データを生成して情報処理部31に出力する。タッチ位置データは、タッチパネル13の入力面において入力が行われた位置の座標を示す。なお、タッチパネル制御回路は、タッチパネル13からの信号の読み込み、および、タッチ位置データの生成を所定時間に1回の割合で行う。情報処理部31は、タッチ位置データを取得することにより、タッチパネル13に対して入力が行われた位置を知ることができる。
【0068】
操作ボタン14は、上記各操作ボタン14A〜14Lからなり、情報処理部31に接続される。操作ボタン14から情報処理部31へは、各操作ボタン14A〜14Iに対する入力状況(押下されたか否か)を示す操作データが出力される。情報処理部31は、操作ボタン14から操作データを取得することによって、操作ボタン14に対する入力に従った処理を実行する。
【0069】
下側LCD12および上側LCD22は情報処理部31に接続される。下側LCD12および上側LCD22は、情報処理部31(のGPU312)の指示に従って画像を表示する。本実施形態では、情報処理部31は、上側LCD22に立体画像(立体視可能な画像)を表示させる。
【0070】
具体的には、情報処理部31は、上側LCD22のLCDコントローラ(図示せず)と接続され、当該LCDコントローラに対して視差バリアのON/OFFを制御する。上側LCD22の視差バリアがONになっている場合、情報処理部31のVRAM313に格納された右目用画像と左目用画像とが、上側LCD22に出力される。より具体的には、LCDコントローラは、右目用画像について縦方向に1ライン分の画素データを読み出す処理と、左目用画像について縦方向に1ライン分の画素データを読み出す処理とを交互に繰り返すことによって、VRAM313から右目用画像と左目用画像とを読み出す。これにより、右目用画像および左目用画像が、画素を縦に1ライン毎に並んだ短冊状画像に分割され、分割された右目用画像の短冊状画像と左目用画像の短冊状画像とが交互に配置された画像が、上側LCD22の画面に表示される。そして、上側LCD22の視差バリアを介して当該画像がユーザに視認されることによって、ユーザの右目に右目用画像が、ユーザの左目に左目用画像が視認される。以上により、上側LCD22の画面には立体視可能な画像が表示される。
【0071】
外側撮像部23および内側撮像部24は、情報処理部31に接続される。外側撮像部23および内側撮像部24は、情報処理部31の指示に従って画像を撮像し、撮像した画像データを情報処理部31に出力する。
【0072】
3D調整スイッチ25は、情報処理部31に接続される。3D調整スイッチ25は、スライダ25aの位置に応じた電気信号を情報処理部31に送信する。
【0073】
また、3Dインジケータ26は、情報処理部31に接続される。情報処理部31は、3Dインジケータ26の点灯を制御する。例えば、情報処理部31は、上側LCD22が立体表示モードである場合、3Dインジケータ26を点灯させる。以上がゲーム装置10の内部構成の説明である。
【0074】
(ゲーム装置10の動作の概要)
以下、本実施形態におけるゲーム装置10の動作の概要について説明する。本実施形態では、ゲームプログラム70(図8のメモリマップ参照)に基づいて、外側撮像部23(外側撮像部(左)23a、外側撮像部(右)23b)によって現在撮像されている実世界の画像と、3次元の仮想空間に存在する仮想オブジェクトの画像とを合成した合成画像が、上側LCD22の画面に立体視可能に表示される。
【0075】
図7Aは、外側撮像部23によってビジュアルマーカ(以下、マーカ)60が撮像されているときに上側LCD22に表示される画像の一例を示している。このマーカ60は、その表面に、矢印記号を含む正方形の模様を有している。情報処理部31は、外側撮像部23から取得される画像(実世界画像)に対して画像処理(例えば、パターンマッチングなど)を行うことによって、その実世界画像にマーカが含まれているか否かを判定することができる。また、認識されたマーカ60の位置・姿勢に基づいて、マーカ座標系(実世界におけるマーカ60の位置に対応する仮想空間内の所定点を原点とした座標系)が規定される。
【0076】
次いで、情報処理部31は、マーカ60の位置・姿勢またはその位置等から算出された情報を基準にして、複数の仮想オブジェクト(例えば、釣竿オブジェクト62)が、上側LCD22において、立体視可能に表示する。ここで、実世界画像と本ゲーム処理の過程で生成される仮想世界の画像(仮想世界画像)とを適切に融合し、実環境から受ける知覚情報を拡張・強化するためには、マーカ60を含む実世界画像に対応する現実空間と、仮想世界画像に対応する仮想空間との適切な重ね合わせが必要である。
【0077】
まず、情報処理部31は、現実空間における基準点と、仮想空間における基準点とを、現実空間に置かれたマーカ60の位置に基づき対応づける。次に、情報処理部31は、現実空間を撮影した外側撮像部23と、仮想空間における仮想カメラとが、基準点であるマーカ60に対して同じ位置・姿勢をとるように設定する。そして、情報処理部31は、仮想カメラの特性(例えば、レンズ歪み、焦点距離、画角などのパラメータ)を、外側撮像部23に必要に応じて合致させる。このようにして、マーカ60を含む実世界画像に対応する現実空間と、仮想世界画像に対応する仮想空間との適切な重ね合わせが行われる。
【0078】
仮想空間に配置される仮想オブジェクトの一つとして、一定面積を有した水面を模した仮想オブジェクト(以下、水面オブジェクト)61が、マーカ60を含む平面(図7Cの平面Π1)とほぼ平行にかつ当該平面の上に配置されている。水面オブジェクト61は、大気と(池、海のような)大量の水との界面を模したモデルであり、この水面オブジェクト61は、仮想空間内で規定される仮想面として機能する。図7Aは、実世界画像中のマーカ60が仮想オブジェクトと融合して表示されている結果(図中、60a)を示している。
【0079】
この例示的な実施形態において、水面オブジェクト61を表現するためのモデルは完全な平面ではなく、そのモデルは、表面波(異なる媒体の間の界面に沿って進行する力学的な波)を表現するために波打った曲面を有する3次元モデルである。この曲面は、ゲームの進行に応じて所定の時間間隔で変形してもよい。
【0080】
水面オブジェクト61を規定するモデルの表面が、仮想空間内における仮想面として機能し、当該仮想面は、その仮想空間を幾つかの部分空間に分割して規定し得る。例えば、本実施形態においては、水面オブジェクト61の3次元モデルの表面または水面オブジェクト61の主面(モデルの凹凸をならし近似した平面。例えば、上述の平面Π1)が、「水上側」の空間と「水中側」の空間とに仮想空間を分離する仮想面として規定され得る。ここで、当該主面を無限遠まで延ばして考えた場合、仮想空間はその主面により二分される。そして、この二分した仮想空間のうち、仮想カメラが存在する空間を、「水上側」の空間とし、他方、「水中側」の空間として規定することが可能である。実際には、その水オブジェクト61の主面は、一定の面積を有している領域として規定されるので、その領域による制限を前提として、ゲーム処理が行われる。
【0081】
なお、ここで示した仮想面を規定する態様は、例示的なものであり、本発明における仮想面は、この例に限定されるべきものではない。また、水面オブジェクト61は、必ずしも、マーカ60を含む平面と平行またはその上に配置されなくともよく、ゲームの進行上の妥当な表現を確保できる位置に配されればよい。
【0082】
釣針と釣糸を有する釣竿を模した仮想オブジェクト(以下、釣竿オブジェクト)62が、「水上側」の空間において、上記水面オブジェクト61よりも仮想カメラ側に配置される。釣竿オブジェクト62は、ユーザ(プレイヤ)により操作可能なプレイヤオブジェクトとして機能する。ユーザが、把持するゲーム装置10本体をマーカ60に対して移動し、その移動にしたがって仮想カメラの位置が更新され、仮想オブジェクトの表示位置も更新される。釣竿オブジェクト62は、仮想空間において、仮想カメラの前方に位置づけられるように更新される。これにより、ユーザは、自身が把持するゲーム装置10が仮想空間中の釣竿オブジェクト61と一続きになっている感覚を受け得る。この釣竿オブジェクト62は、釣竿本体を表す部分(以下、釣竿本体)62a、釣糸に対応する部分(以下、釣糸部分)62b、および釣針に対する部分(以下、釣針部分)62cからなる(図7Eを参照)。
【0083】
マーカ60に対するゲーム装置10の移動を含む操作をユーザが行うことにより、釣竿オブジェクト62の釣針部分62cは、水面オブジェクト61より下の領域(すなわち、「水中側」の空間)に投げ入れられ得る。これにより、ゲーム装置10で提供されるゲームが進行する。
【0084】
この釣りゲームでは、ユーザは、水面オブジェクト61に投影された魚影(図7Aでは、符号63および64で例示する)をめがけて釣針部分62cを投入する。この魚影は、魚を模したオブジェクト(以下、魚オブジェクト)が「水中側」の空間(仮想空間における一部分空間)に存在することを示唆するための演出用画像の一部である。他方、ユーザが操作可能な釣竿オブジェクト62は、「水上側」の空間(「水中側」の空間とは別の仮想空間における部分空間)に位置づけられている。
【0085】
すなわち、ゲーム進行上、ユーザは、マーカ60に対してゲーム装置10を移動する操作を行って釣竿オブジェクト62を操作し、その釣竿オブジェクト62が位置づけられる空間とは別の部分空間に位置する魚オブジェクトに対して、一定の相互関係を確立させる。
【0086】
ゲームの進行に従い、一定の引上げ条件が充足されると、ユーザは、上記魚影に対応する魚オブジェクトを釣り上げることができる。この一連のゲーム処理のさらに詳細な説明については後述するが(「第1実施形態に係る処理」)、本実施形態により、実際の釣りの過程で釣り人が感じる感覚を、より忠実に再現することが可能である。
【0087】
すなわち、ユーザが操作のために把持するゲーム装置本体10に釣竿オブジェクト61が実際に接続されて、その釣竿オブジェクト62から、実世界と空間的に一体となった水面オブジェクト61へと釣糸部分62bを垂らしているような感覚をユーザに喚起し得る。これによって、ユーザが感じる没入感、実在感が増強され得る。
【0088】
次に、本発明に係る類似の実施形態について説明する。
【0089】
図7Bは、外側撮像部23によってマーカ60が撮像されているときに上側LCD22の画面に表示される画像の別例を示している。図7Bは、上側LCD22の画面部分だけを示す。図7Bは、図7Aと同様に、マーカ60を含む実世界画像に、水面オブジェクト61などの仮想オブジェクトが重畳的に表示された画像の一例である。ここで配置される仮想オブジェクトは、図7Aの仮想オブジェクトとは相違する。
【0090】
この例示的な実施形態において、ユーザが操作することが可能なプレイヤオブジェクトは、釣竿オブジェクト62’である。釣竿オブジェクト62’は、図7Aで示した釣竿オブジェクト62において、釣針部分62cの代わりに、爆弾部分62dを有する。他方、仮想面(水面に対応)を規定する水面オブジェクト61との相対位置を変化させながら移動する、ドラゴンを模したオブジェクト(以下、ドラゴンオブジェクト)65が、ノンプレイヤオブジェクトとして提供されている。
【0091】
このドラゴンオブジェクト65は、水面に対応する水面オブジェクト61の上面よりも上に出た部分65a(「水上側」の空間に位置づけられる部分)と、(図には表示されていないが)当該面よりも下に位置づけられる部分65b(「水中側」の空間に位置づけられる部分)とを有している。そして、情報処理部31は、ゲームの進行にそって、ドラゴンオブジェクト65における部分65aと部分65bとの比率を変更する。換言すると、ドラゴンオブジェクト65は、上側LCD22に表示される水面に沿って移動しつつ、マーカ座標系のy軸に沿った移動も行うように制御されている仮想オブジェクトである。
【0092】
このドラゴンオブジェクト65が、水面に対応する水面オブジェクト61の上面よりも上に出た部分65aを有する状態のときに、ユーザは、ドラゴンオブジェクト65に対して攻撃することが可能である。すなわち、このドラゴンオブジェクト65は、仮想面を介して、「水上」側の空間にでてこないと、ユーザによる攻撃が可能な仮想オブジェクトとはならない。
【0093】
具体的には、ユーザは、ドラゴンオブジェクト65が水面に露出している部分を有するときに、釣竿オブジェクト62’の先端に有する爆弾部分62dを分離させて投下する(爆弾部分62dを分離させる代わりに、釣糸部分62bを伸長させることで爆弾部分62dを投下させてもよい)。そして、情報処理部31は、その投下された爆弾部分62dと、ドラゴンオブジェクト65の部分65aとが衝突したと判定(一般的な3次元オブジェクト同士の衝突判定による評価を使用すれば十分である)を行い、その結果、衝突の回数などが規定された条件を満たせば、情報処理部31は、ドラゴンオブジェクト65が消滅する演出を上側LCD22において表示する。
【0094】
なお、ユーザがゲーム装置10本体を移動させることによって、上側LCD22の画面に表示されるマーカ60の位置および向きが変化し、表示されている仮想オブジェクトの位置および向きも変化する。
【0095】
この実施形態に係る一連のゲーム処理のさらに詳細な説明については後述する(「第21実施形態に係る処理」)。
【0096】
以下、図7Aから図13までをさらに参照して、ゲーム装置10においてゲームプログラムに基づいて実行されるゲーム処理のさらなる詳細について説明する。
【0097】
(メモリマップ)
まず、ゲームプログラムの実行中にメインメモリ32に記憶される主なデータについて説明する。図8は、ゲーム装置10のメインメモリ32のメモリマップを示す図である。図8に示されるように、メインメモリ32には、ゲームプログラム70、左実世界画像71L、右実世界画像71R、左ビュー行列72L、右ビュー行列72R、仮想オブジェクト情報73、各種変数74等が記憶される。
【0098】
ゲームプログラム70は、情報処理部31に上記画像表示処理を実行させるためのプログラムである。
【0099】
左実世界画像71Lは、外側撮像部(左)23aによって撮像された画像である。
【0100】
右実世界画像71Rは、外側撮像部(右)23bによって撮像された画像である。
【0101】
左ビュー行列72Lは、左仮想カメラ80Lから見た仮想オブジェクトを描画する際に用いられる行列であり、マーカ座標系で表された座標を左仮想カメラ座標系で表された座標へと変換するための座標変換行列である。
【0102】
右ビュー行列72Rは、右仮想カメラ80Rから見た仮想オブジェクトを描画する際に用いられる行列であり、マーカ座標系で表された座標を右仮想カメラ座標系で表された座標へと変換するための座標変換行列である。
【0103】
仮想オブジェクト情報73は、仮想オブジェクトに関連する情報であって、仮想オブジェクトの形状や模様を表すモデル情報や、仮想空間における仮想オブジェクトの現在位置などを含む。
【0104】
各種変数74は、ゲームプログラム70の実行の際に用いられる各種変数である。
【0105】
ゲーム装置10の電源が投入されると、ゲーム装置10の情報処理部31(CPU311)は、図示しないROMに記憶されている起動プログラムを実行し、これによってメインメモリ32等の各ユニットが初期化される。次に、データ保存用内部メモリ35に記憶されたゲームプログラムがメインメモリ32に読み込まれ、情報処理部31のCPU311によって当該ゲームプログラムの実行が開始される。
【0106】
以下、図9Aおよび図9Bのフローチャートを参照して、ゲームプログラムに基づいて実行される処理の流れを説明する。本図および後続の図では、「ステップ」を、「S」と略記する。なお、図9Aおよび図9Bのフローチャートは、単なる一例にすぎない。したがって、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよい。また、変数の値や、判断ステップで利用される閾値も、単なる一例に過ぎず、必要に応じて他の値を採用してもよい。また、本実施形態では、図9Aおよび図9Bのフローチャートのすべてのステップの処理をCPU311が実行するものとして説明するが、図9Aおよび図9Bのフローチャートの一部のステップの処理を、CPU311以外のプロセッサや専用回路が実行するようにしてもよい。
【0107】
(第1実施形態に係る処理:釣りゲーム)
図9Aは、ゲームプログラム70に基づいてCPU311によって実行されるゲーム処理の流れの一例を示すフローチャートである。具体的には、図9Aは、現実世界における釣りの要素をゲームの進行に取り入れたゲームに係る例示的な処理を示している。以下、ゲーム処理の詳細について説明する。
【0108】
図9Aのステップ101において、CPU311は、ゲーム装置10の外側撮像部23により取り込まれた画像に基づき認識されたマーカ60の位置等の情報を基準に、水面オブジェクト61を設定する。
【0109】
本実施形態において、CPU311は、現実空間の絶対座標(例えば、マーカ座標系における座標)に対して、マーカ60を基準に仮想空間における座標の対応を取る。CPU311は、パターンマッチング等により認識されたマーカ60における所定位置をマーカ座標系の原点として設定する(図7C)。図7Cは、仮想カメラ(本図では、左仮想カメラ80Lを実線で、右仮想カメラ80Rを点線で示す)と、マーカ70との相対的位置の一例を模式的に示した図である。ここで行われるマーカを認識する処理は、原理的には、後続のステップ102のマーカ認識・更新に係る処理の一部と同等の処理である。
【0110】
次に、CPU311は、現実空間を撮影した外側撮像部23と、仮想空間における仮想カメラとが、基準点であるマーカ60に対して同じ位置・姿勢をとるように設定する。そして、CPU311は、仮想カメラの特性(例えば、レンズ歪み、焦点距離、画角などのパラメータ)を、外側撮像部23に必要に応じて合致させる。このようにして、マーカ60を含む実世界画像に対応する現実空間と、仮想世界画像に対応する仮想空間との適切な重ね合わせが行われる。ここで行われる仮想カメラの設定は、原理的には、後続のステップ103の仮想カメラの位置の更新の処理の一部と同等の処理である。
【0111】
次いで、CPU311は、マーカ60を含む平面Π1に平行な位置関係となるように水面オブジェクト61を仮想空間に配置する(図7D参照)。図7Dは、仮想空間に配置される水面オブジェクト61の一例を示す。ここで、CPU311は、この水面オブジェクト61を示す3次元モデル(例えば、ポリゴンによるモデル)の表面に、外側撮像部23で撮影された画像をマッピングする。また、CPU311は、マーカ60を含む実世界を撮像した画像を、水面オブジェクト61の3次元モデルの表現にマッピングする。
【0112】
このように、CPU311は、仮想空間における仮想カメラと、外側撮像部23(実カメラ)とをマーカ60を基準に重ね合わせた位置関係とした上で、上述の撮像された画像を水面オブジェクト61を示す3次元モデル(ポリゴン)にマッピングする。これによって、あたかも実世界に水面が浮き出たようにユーザからは見える重畳的画像の合成が可能となる。ちなみに、撮像画像は、マッピングされることによって水面オブジェクト61の3次元モデルの形状に従い、一部は変形されて見える(例えば、マーカ60は、図7Dにおける、60aにより示される態様となる)。
【0113】
ステップ102では、CPU311は、外側撮像部23により得られた画像に基づいて、マーカ60の認識処理を行い、マーカ座標系の座標を更新する。
【0114】
ステップ103では、CPU311は、ステップ102において算出された更新座標に基づき、仮想カメラの位置・姿勢を更新する。後述するが、仮想カメラの位置・姿勢の更新は、CPU311がビュー行列(実世界画像におけるマーカの位置および姿勢に基づいて計算される仮想カメラの位置および姿勢を反映した行列)を算出することにより行われる。また、ステップ101と同様に、CPU311は、仮想カメラの特性(例えば、レンズ歪み、焦点距離、画角などのパラメータ)を、外側撮像部23に必要に応じて合致させ得る。
【0115】
これ以降、ステップ101からステップ103までの一連の処理の詳細を以下に説明する。まず、ステップ101およびステップ102で行われるマーカ認識処理について説明する。なお、ここで説明するマーカ認識処理は、ゲーム装置10が立体視可能な画像をユーザに提供する態様を前提として説明している。立体視を行うことを必要としない場合、当業者は、以下の記載から立体視を行わない場合におけるマーカ認識処理についても具体的に理解し得る。
【0116】
前述のように、上側ハウジング21において、外側撮像部(左)23aと外側撮像部(右)23bとの間には、一定の間隔(例えば3.5cm)が存在する。したがって、外側撮像部(左)23aと外側撮像部(右)23bによって同時にマーカ60を撮像した場合、図10に示すように、外側撮像部(左)23aによって撮像された左実世界画像におけるマーカ60の位置および姿勢と、外側撮像部(右)23bによって撮像された右実世界画像におけるマーカ60の位置および姿勢との間には、視差によるずれが生じる。CPU311は、左実世界画像および右実世界画像の少なくとも一方に対してマーカ認識処理を行う。
【0117】
例えば、左実世界画像に対してマーカ認識処理を行う場合には、CPU311は、パターンマッチング手法等によって左実世界画像にマーカ60が含まれているか否かを判断し、左実世界画像にマーカ60が含まれている場合には、左実世界画像におけるマーカ60の位置および姿勢に基づいて、左ビュー行列72Lを算出する。なお、左ビュー行列72Lは、左実世界画像におけるマーカ60の位置および姿勢に基づいて計算される左仮想カメラの位置および姿勢を反映した行列である。
【0118】
より正確には、図11に示すように、左ビュー行列72Lは、仮想空間におけるマーカ座標系(実世界におけるマーカ60の位置に対応する仮想空間内の所定点を原点とした座標系)で表された座標を、左実世界画像におけるマーカ60の位置および姿勢に基づいて計算された左仮想カメラ80L(実世界の外側撮像部(左)23aに対応する仮想空間内の仮想カメラ)の位置および姿勢を基準とした左仮想カメラ座標系で表される座標へと変換するための座標変換行列である。
【0119】
さらに、右実世界画像に対してマーカ認識処理を行う場合には、CPU311は、パターンマッチング手法等によって右実世界画像にマーカ60が含まれているか否かを判断し、右実世界画像にマーカ60が含まれている場合には、右実世界画像におけるマーカ60の位置および姿勢に基づいて、右ビュー行列72Rを算出する。なお、右ビュー行列72Rは、右実世界画像におけるマーカ60の位置および姿勢に基づいて計算される右仮想カメラの位置および姿勢を反映した行列である。
【0120】
より正確には、図12に示すように、右ビュー行列72Rは、仮想空間におけるマーカ座標系(実世界におけるマーカ60の位置に対応する仮想空間内の所定点を原点とした座標系)で表された座標を、右実世界画像におけるマーカ60の位置および姿勢に基づいて計算された右仮想カメラ80R(実世界の外側撮像部(右)23bに対応する仮想空間内の仮想カメラ)の位置および姿勢を基準とした右仮想カメラ座標系で表される座標へと変換するための座標変換行列である。
【0121】
なお、マーカ認識精度に誤差が全く無く、かつゲーム装置10に対する外側撮像部(左)23aおよび外側撮像部(右)23bの取付け精度に誤差が全くないと仮定すると、右実世界画像のマーカ認識結果から計算される右仮想カメラ80Rの位置は、左実世界画像のマーカ認識結果から計算される左仮想カメラ80Lの位置を、左仮想カメラ座標系のx軸方向に沿って一定距離だけずらした位置となり、右実世界画像のマーカ認識結果から計算される右仮想カメラ80Rの姿勢と左実世界画像のマーカ認識結果から計算される左仮想カメラ80Lの姿勢は同じとなる(すなわち、左仮想カメラ座標系のx軸,y軸,z軸が、右仮想カメラ座標系のx軸,y軸,z軸とそれぞれ平行となる)。
【0122】
しかしながら実際には、マーカ認識精度にも、ゲーム装置10に対する外側撮像部(左)23aおよび外側撮像部(右)23bの取付け精度にも誤差があるため、左実世界画像のマーカ認識結果から計算される左仮想カメラ80Lの位置および姿勢と、右実世界画像のマーカ認識結果から計算される右仮想カメラ80Rの位置および姿勢は、理想的な関係にはならない(例えば、左仮想カメラ80Lと右仮想カメラ80Rが近すぎたり、離れすぎたり、左仮想カメラ80Lの姿勢と右仮想カメラ80Rの姿勢が異なったりする)。よって、このようにして計算された左仮想カメラ80Lおよび右仮想カメラ80Rの位置および姿勢をそのまま用いて仮想オブジェクトを上側LCD22に立体表示する場合には、仮想オブジェクトが正常に立体視できないことがあり得る。そこで本実施形態では、一例として、図13に示すように、左実世界画像のマーカ認識結果から計算される左仮想カメラ80Lの位置および姿勢に基づいて、右仮想カメラ80Rの位置および姿勢を決定している。
【0123】
ステップ104において、CPU311は、釣竿オブジェクト62を仮想空間の所定位置に配置する。この釣竿オブジェクト62は、釣竿本体62a、釣糸部分62b、および釣針部分62cからなる。そして、釣竿オブジェクト62の釣竿本体62aは、例えば、図7Aに示されるように、ゲーム装置10を操作するユーザから見て、水面オブジェクト61よりも手前に配置される。CPU311が、上側LCD22において、釣竿オブジェクト61を仮想カメラ(すなわち、ユーザの視点側)からみて近位に位置づけることで、例えば、釣竿を持って前方に広がる水辺に対して釣針を投げいれる感覚を想起することが可能である。この釣竿オブジェクト62は、ゲーム処理上、ユーザが操作することが可能なユーザオブジェクトである。ユーザは、ゲーム装置10を操作することで、仮想空間中で釣糸をのばし、釣針部分62cを水面オブジェクト61で示される領域に対して投げいれ、仮想的な水中空間に釣針部分62cを配置することができる。したがって、本ステップにおいて、CPU311は、ゲーム装置10に対するユーザの操作に応じた位置に、釣針部分62cの位置を更新する。
【0124】
ステップ105において、CPU311は、投げ入れられた釣竿オブジェクト62の釣針部分62cに、魚オブジェクトが釣針にかかっている状態(「魚(オブジェクト)が釣針部分にかかっている状態」)である否かを判定する。この「魚オブジェクトが針部分にかかっている状態」は、実環境で行われる釣りにおいて魚が釣針をくわえ込んだ状態であって、その魚が釣り上げられる(引き上げられる)前の状態を模したゲーム処理上定義された内部状態である。初期状態またはゲーム処理進行上、釣針部分62cに魚オブジェクトはかかっていない場合(ステップ105 No)は、CPU311は、後続のステップ106の処理を行う。他方、後続のステップ109でCPU311が「釣針部分にかかっている状態」であるとして設定した後に、ステップ105の判定が行われると(ステップ105 Yes)、CPU311は、その後、ステップ112の処理を行う。
【0125】
ステップ106において、CPU311は、釣竿オブジェクト62の釣針部分62cが、マーカ60の位置情報等をもとに規定された水面オブジェクト61よりも下に位置するか否かを判定する。配置された仮想オブジェクトのそれぞれについて、所定の座標系(例えば、マーカ座標系)における座標(例えば、各オブジェクトのy座標)を取得し、それらを比較することにより、当該判定を行う。ここで、釣針部分62cが、水面(すなわち、水面オブジェクト61に基づいて規定される仮想面)よりも下(すなわち、「水中側」の空間)に位置すると判定されたとき、CPU311は、ステップ107の処理に移行する。
【0126】
ステップ107において、CPU311は、魚オブジェクト(例えば、魚影63または64に対応する仮想オブジェクト)が釣針部分62cをつついている状態にあるか否かを判定する。ここで、「魚オブジェクトが釣針部分をつついている」状態とは、後続の処理で魚の引上げ(釣り上げ)条件の判定処理に入ることが可能な状態であって、実際の釣りで標的となり得る魚が仕掛けられた釣針に食いつこうとする過程をゲーム処理において表現している内部状態である。
【0127】
具体的には、水面下に投じられた釣針部分62cと、引上げ候補である魚オブジェクトとの距離が所定の範囲に収まったときに、CPU311は、引上げ条件の判定を行うことのできる状態(すなわち、魚オブジェクトが釣針部分をつついている状態)にあると判定(ステップ107)する。そして、その引上げ候補である魚オブジェクトと釣針部分62cとの距離が、所定の範囲に収まっている間、CPU311は、上側LCD22に表示される釣針部分62cを、その魚オブジェクトに対応する魚影が一定間隔で釣針部分62cをつついている様子に対応する画像を(ステップ115における描画処理で)表示する。
【0128】
なお、CPU311は、この処理の過程で、「魚オブジェクトが釣針部分をつついている」状態の解除条件を設定し得る。すなわち、仮に、ある時点で、釣針部分62cと、魚オブジェクトとの距離が所定の範囲に収まっていたとしても、所定時間が経過する前に、後述する「引上げ条件」が成立しない場合、CPU311は、ゲーム処理上の内部状態を、この「魚オブジェクトが釣針部分をつついている状態」から強制的に解除し得る。この強制的な解除が成立すると、このステップ107において、「魚オブジェクトが釣針部分をつついている状態」とはみなされず(ステップ107、No)、後続のステップ115の描画処理では、ユーザに対しては魚が逃げる態様の演出が行われる。したがって、いったん、「魚オブジェクトが釣針部分をつついている」状態がゲーム処理において成立しても、所定時間内に、引上げ条件を成立することができなければ、ユーザは魚を釣り上げることはできない。
【0129】
なお、「魚オブジェクトが釣針部分をつついている」状態の判定においては、釣針部分62cと、引上げ候補である魚オブジェクトとの距離を計算する。ここで、このような距離計算の例示的な方法について説明をするが、これに関連して、まず、魚影を水面オブジェクト61上に表示する方法について説明する。
【0130】
前述のように、CPU311は、図7Aに示されるように、魚影63および64を水面オブジェクト61に表示する。水面オブジェクト61の仮想空間での形状は、3次元モデル(ポリゴン)により規定される。そして、本実施形態において、CPU311は、外側撮像部23により撮影された画像を当該ポリゴンにマッピングすることで、実世界においてあたかも水面が生じたような重畳画像を生成する。ここで、CPU311は、魚影63および64を、その魚影を示すためのテクスチャと、上述のマッピングされる実世界の画像とをブレンドさせて、ポリゴン上で表示することにより表現することができる。
【0131】
ユーザがゲーム装置10の移動操作をすることによって仮想空間内で投入された釣針部分62cが、水面オブジェクト61よりもマーカ座標系におけるy軸負方向に位置づけられるとき(すなわち、ステップ106において、Yesの場合)、CPU311は、この釣針部分62cと、CPU311がランダムに生成した魚オブジェクトとの距離または、これと同等と見なされる距離を計算する。
【0132】
CPU311がこの距離計算を行う際、CPU311は、魚オブジェクトを配置する位置および釣針部分62cの位置を取得すればよく、必ずしも、この段階において、そこに配置する魚オブジェクトの3次元形状を示すモデルを割り当てる必要はない。
【0133】
具体的には、本実施形態において、CPU311が後述のステップ112の処理を行うまでは、CPU311は、標的である魚オブジェクトに、仮想空間内の位置を示す代表点を与え、その魚オブジェクトに対応する3次元モデルを用いた描画処理をおこなっていない。ここで、図7Eを参照する。図7Eは、図7Aで例示された仮想空間における仮想オブジェクトおよび仮想カメラの位置関係を、模式的に示すための図である。図7Eに示された例でいえば、CPU311は、平面Π2(仮想面Π1と平行な仮想面であって、釣針部分62cの仮想空間上の点Pを含む平面)上に、任意の点を、魚オブジェクトの位置としてランダムに割当てることが可能である。そして、本例では、CPU311は、点63aおよび点64aを、魚オブジェクトが配置される位置として割り当てる。この位置の割当て手法は、例えば、所定の分布を有する乱数の集合を用いて割り当てることが可能である。
【0134】
そして、点63aおよび点64aに対応させるように、水面オブジェクト61の表面にマッピングされる撮像画像に対して、所定のテクスチャ(例えば、黒などの単一の純色(例えば、黒色)を有するテクスチャ、または、平面Π1と平面Π2との距離に応じて一定の色の濃淡を割り振ったテクスチャ)をブレンド(例えば、アルファブレンディング)することで、CPU311は、魚影を表現し、ユーザに対して水面オブジェクト61により規定される水面の下に魚が存在するような表現を提供することができる。
【0135】
図7Eで示される例の場合、「魚オブジェクトが釣針部分をつついている」状態であるか否かの判断は、釣針部分62cの平面Π2上の点Pの座標と、点63aまたは点64aとの間の距離が、所定の範囲に収まった場合に、当該状態にあると判断することにより実行される。なお、本例では、平面Π2を想定した手法を用いたが、CPU311が、平面Π2を用いずに、ステップ107の処理を行ってもよい。すなわち、CPU311は、仮想空間に配された水面オブジェクト61の表面(または近似的に平面Π1)上に直接、魚影の位置をランダムに規定し、次いで、釣糸部分62bと水面オブジェクト61の表面との交点(Π2を用いる場合の点Pに対応)と、水面オブジェクト61上に配された魚影の位置を示す点との間の距離を、計算してもよい。
【0136】
ところで、ゲーム装置10で提供されるゲームの進行に伴い、ユーザがゲーム装置10を大きく動かしすぎて、マーカ60が外側撮像部23の撮影可能範囲から逸脱するといった状況が生じ得る。CPU311は、上側LCDに提示する魚影の位置を一定領域に制限することにより、外側撮像部23の位置・姿勢を、マーカ認識処理を行う上で都合のよい状態に誘導することができる。
【0137】
具体的には、CPU311は、仮想空間におけるマーカ60と仮想カメラとの間の領域に魚影が生じるように、またはその傾向が高くなるように、魚オブジェクトを配置し得る。例えば、図7Fは、魚影が現れる領域(図中、斜線部)を制限する態様の一例を示した模式図である。点線で示した位置は、マーカ60の位置である。また、図7Fにおける矢印記号示す方向は、仮想カメラ(外側撮像部23)の方向を示している。CPU311が、ランダムに魚オブジェクトの配置をする際に、斜線領域に魚影が高い頻度で出現するように、当該配置を制御すればよい。
【0138】
図9Aに戻り、ステップ107よりも後続の処理について説明する。「魚オブジェクトが釣針部分をつついている」状態が成立すると(ステップ107、Yes)、CPU311は、魚オブジェクトが引き上げ可能か否かを判定する処理(ステップ108)を行う。
【0139】
ステップ108において、CPU311は、次のような条件の判定を行い得る。引上げ条件は、(A)外側撮像部23とマーカ60との相対的位置に基づき規定される釣竿オブジェクト62の仮想空間内での移動量(ゲーム装置10がマーカ60に対して移動した量を反映する量)が一定値に達すること、または(B)この移動量が一定値に達してない場合であっても、外側撮像部23による撮像画像に対するマーカ認識において、マーカ60が検出されなかったことである。このいずれか条件を充足したときに(ステップ108において、Yes)、CPU311は、ユーザが魚を釣り上げた状態であると判定し、後続のステップ109に進む。他方、引上げ状態が成立しない場合(ステップ108において、No)、CPU311は、ユーザのゲーム装置10への入力操作等に基づいてオブジェクトの位置・姿勢の更新を行う処理(ステップ110)を行う。
【0140】
引上げ条件(A)についてより詳細に説明する。ゲームの進行(例えば、魚が釣針をつついている状態にある)にあわせて、ユーザは、把持したゲーム装置10(図7Aを参照)をマーカ60に対する相対的な位置が変化するように、(例えば、引上げようとする動作によって)移動させる。CPU311は、ゲーム処理上の所定の間隔(例えば、1フレーム)の間に、このユーザの操作により釣針部分62cが仮想空間内で移動した量(例えば、マーカ座標系におけるy軸正方向にそって移動した距離)を、引上げ条件の判定対象である移動量として使用することが可能である。
【0141】
つまり、上記移動量は、ユーザがゲーム装置10に対して操作を行った結果として得られる。ユーザが所定のアクション(例えば、魚を釣り上げようとしてゲーム装置10)を釣竿の一部とみなして上方に引き上げるアクション)により、ゲーム装置10自体をマーカ60に対して移動した場合、CPU31は、マーカ認識・座標更新(ステップ102)、仮想カメラの位置の更新(ステップ103)を介して得られる位置情報に基づき、実世界におけるユーザが行ったアクションを規定する物理量を、仮想世界における変化量(例えば、仮想オブジェクトの並進移動距離など)として割り当てることが可能である。例えば、釣針部分62cが、仮想世界において、図7Eに示すような位置に釣針部分62cが配置されている場合であって、その後、いずれかの魚オブジェクトが釣針部分62cにかかった状態になったとき、CPU311は、ユーザの操作により釣針部分62cがy軸正方向にそって移動した際の平面Π2からの距離(Δy)を、引上げ条件の判定対象である移動量として使用することが可能である。
【0142】
他方、引上げ条件(B)は、この移動量が所定値に達してない場合であっても、外側撮像部23による撮像画像に対するマーカ認識において、マーカ60が検出されない場合である。この条件は、ゲーム装置10を把持するユーザによるアクションの結果、当該移動量が上記所定値を超えているにもかかわらず、アクションが大きかったためにマーカ60の認識がうまくいかなくなるような場合を回避するための条件である。
【0143】
次に、ステップ109では、CPU311は、ゲーム進行状態の内部状態を、魚が針にかかっている状態として設定する。この設定を保持した状態で、ゲーム終了のための入力が行われるなどの終了条件(後続のステップ111を参照)とならずに、ゲーム処理が継続すれば、CPU311は、前述したステップ105において「魚(オブジェクト)が針(部分)にかかっている状態」と判断し(ステップ105、Yes)、ステップ112に進む。
【0144】
なお、ステップ111において、CPU311は、終了条件を満たしているか否かを判定する。この終了条件は、ゲーム処理の状況に応じて、ゲーム装置10に対する入力操作に割り振ってあるアクションを、ユーザがとったときに満たされるものとして設定され得る。例えば、このアクションは、ユーザが、ゲーム装置10における所定のボタン(例えば、スタートボタン14L、または電源ボタン14Fなど)を押圧操作し、ゲーム処理の終了操作を選択し得るメニュー表示に対して、終了とすることを選択することが挙げられるが、これに限定されない。
【0145】
ステップ112において、CPU311は、針の先に魚オブジェクトを配置する。本実施形態においては、例えば、図7Eの位置63aに想定する魚オブジェクトに対して、本ステップよりも上流の処理では、具体的な3次元モデル(ポリゴン)を与えた処理を行わなかった。ステップ112では、ユーザが、実際の釣り人が釣りの過程で魚を水上に引き上げる際に感じる魚の存在感を得るために、魚オブジェクトの引上げに際して、3次元オブジェクトを釣針部分62cの先に配置する。その後、CPU311は、次のステップ113に進む。
【0146】
ステップ113において、CPU311は、魚オブジェクトを水面より上げた状態か否かを判定する。このステップでは、CPU311は、ステップ108で行った移動量の算出・評価処理と同様の処理を行う。例えば、CPU311は、本ステップの直近の状態でゲーム装置10の移動量(例えば、y座標系に沿った移動量)が所定値以上であれば、「魚オブジェクトを水面より上げた」として判断し(ステップ113、Yes)、その後のステップ114の処理を行うことができる。他方、CPU311が、ステップ113において「魚オブジェクトを水面より上げてない」と判断した場合は、後続のステップ110の処理を行う。
【0147】
ステップ114において、CPU311は、魚オブジェクトを獲得したことを示す演出を行う。CPU311は、ステップ112で配置された3次元モデルを用いた演出を行う。
【0148】
ステップ115において、CPU311は、描画処理を行う。CPU311は、ゲーム処理上の内部状態に応じて、ゲーム装置10の記憶領域に記憶された手順に従い、ユーザに対してゲーム用の画像を表示する。
(第1の実施形態によって奏される効果の一例)
【0149】
本実施形態のこのような構成により、あたかも魚や釣竿が現実空間上に存在し、ゲーム装置10の本体に釣竿が接続されてそこから糸を水面に垂らしているような感覚をユーザに喚起することができる。そのため、ゲーム装置10を操作しながら、釣りゲームを行う際に、没入感、実在感などいった感覚を、従来のゲーム装置に比べて増強することができる。
【0150】
より具体的には、本実施形態のゲーム装置10において、実世界画像と仮想世界画像とを融合して重畳的な画像を生成するためのビジュアルマーカ(マーカ60)を基準に設定される仮想面(水面オブジェクト61)に対して、プレイヤオブジェクト(釣竿オブジェクト62)が仮想カメラ側の仮想空間(水上側の空間)に配置され、他方で、ノンプレイヤオブジェクト(魚オブジェクト)が、水上側の空間と隣り合い、それと仮想面によって隔てられるように規定される「水中側の空間」に配置される。このような構成のもと、ユーザは、ゲーム装置10に一体となった表示装置(上側LCD22)に表示される上述の重畳的な画像を視覚で捉えながら、ゲーム装置10本体を把持し、マーカ60を撮像する外側撮像部23その本体全体をマーカ60に対して相対的に移動操作することで、ゲームに参加する。そのため、没入感、実在感などいった感覚が従来より増強された態様でそのユーザに喚起され得る。
【0151】
また、ゲーム装置10は、そのゲーム処理において、プレイヤオブジェクトまたはノンプレイヤオブジェクトのいずれかまたはその両方を、仮想面に対する位置関係を変化させる。これによって、さらに、没入感、実在感などいった感覚が増強された態様でそのユーザに喚起され得る。
【0152】
また、上述のように、魚影を、水面オブジェクト61にマッピングされた撮像画像(不透明な画像)に所定のテクスチャをブレンドすることで表現する手法によって、水面下に想定される一群の魚オブジェクトを逐次的に3次元モデル(ポリゴン)を用いて描画することを回避し得る。これによって、ゲーム処理にかかる負荷を大きく低減しつつも、釣りを行う過程で釣り人が水辺で得る感覚を喚起することができる。
【0153】
ところで、従来、透過処理を用いて水面下に配置された3次元モデルが与えられた魚オブジェクトの魚影の表現しようとする場合であって、特に、実世界の画像と合わせて重畳的な画像を生成しようとするとき、水深の大きな領域(例えば、海底、湖底に対応する領域や、入射する可視光が行き届かない領域など)のよりリアルな描写と、仮想オブジェクトを実世界で撮像した画像にシームレスな態様で合成することとを両立することに困難が生じていた。しかし、上述の例示的な実施形態で使用する手法を用いれば、水深の大きな領域の描画に関する問題により拘束されずに、透過処理がなされない不透明な実世界画像を用いても、表面波を有する水面を、必要に応じて魚影を描画しつつ表現することが容易なものとなる。
【0154】
(第2実施形態に係る処理:ドラゴンシューティングゲーム)
図9Bは、ゲームプログラム70に基づいてCPU311によって実行されるゲーム処理の流れの別例を示すフローチャートである。なお、図7Bは、本実施形態に係るゲーム処理の一過程において示される、仮想オブジェクトと実世界を撮像した画像との重畳的な画像の一例である。
【0155】
ステップ201からステップ203までの処理は、図9Aにおけるステップ101からステップ103までの処理と同様の処理である。本実施形態においても、第1実施形態と同様に、水面オブジェクト61がマーカ60の位置を基準にして設定されている。
【0156】
ステップ204において、CPU311は、釣竿オブジェクト62’を仮想空間の所定位置に配置する。具体的には、この釣竿オブジェクト62’は、釣竿オブジェクト62と構成がほぼ共通だが、釣針部分62cの代わりに、爆弾部分62dを有している(図7Bを参照)。ゲーム処理の過程で、この爆弾部分62dは、ユーザの操作に応じて、仮想空間における任意の位置で、釣竿オブジェクト62’の残りの部分から分離され得る。
【0157】
ステップ205において、CPU311は、ドラゴンオブジェクト65と爆弾部分62dとが衝突した回数が、規定回数(例えば、1回、2回または3回)以上であるか否かを判定する。この衝突回数は、後述のステップ209において、ドラゴンオブジェクト65と爆弾部分62dとの衝突判定の結果をうけて設定される情報に基づいて判定される。ここで、衝突回数が規定回数以上であれば(ステップ205においてYes)、CPU311は、ステップ212に規定されるドラゴン消滅演出の処理を行う。他方、衝突回数が規定回数未満であれば(ステップ205においてNo)、CPU311は、ステップ206の処理を進める。
【0158】
ステップ206において、CPU311は、ドラゴンオブジェクト65が水面に対応する水面オブジェクト61の上面よりも上に出た部分65aを有する状態である否かを判定する。既述のように、ドラゴンオブジェクト65は、上側LCD22に表示される水面に沿って移動しつつ、マーカ座標系のy軸に沿った移動も行うように制御されているオブジェクトである。ゲーム処理上、ドラゴンオブジェクト65が、水面に対応する水面オブジェクト61の上面よりも上に出た部分65a(図7B参照)を有する状態のときに、ユーザは、爆弾部分62dを用いて、ドラゴンオブジェクト65に対して攻撃することが可能である。
【0159】
ステップ207において、CPU311は、ユーザがマーカ60に対するゲーム装置10の移動操作を介して上述の爆弾部分65dを釣竿オブジェクト62’から分離させて水面方向に投下させたか否かを判定する。爆弾部分65dが分離されると(ステップ208において、Yes)であれば、CPU311は、ステップ208に規定される処理を行う。他方、爆弾部分65dが分離されていなければ(ステップ207において、No)、ドラゴンオブジェクト65と爆弾部分65dとの相互関係を考慮する必要がないので、CPU311は、ステップ210に規定される、仮想オブジェクトの位置・姿勢の更新に係る処理を進める。
【0160】
ステップ208において、CPU311は、仮想オブジェクト同士、すなわち、ドラゴンオブジェクト65と爆弾部分65dとの衝突判定を行う。衝突したとして判定された場合(ステップ208において、Yes)、CPU311は、ステップ209に規定される処理を行う。他方、衝突していない判定された場合(ステップ208において、No)、CPU311は、ステップ210に規定される、仮想オブジェクトの位置・姿勢の更新に係る処理を進める。
【0161】
ステップ209において、CPU311は、ゲーム進行状態の内部状態を、衝突状態として設定する。この衝突状態は、衝突回数などの情報を含み、後続のゲーム処理では、当該情報に基づいた演出等が行われる。
【0162】
ステップ210において、CPU311は、前述のように、ユーザによるゲーム装置10の操作を反映して、仮想オブジェクトの各々の位置および姿勢を更新する。
【0163】
ステップ211において、CPU311は、終了条件を満たしているか否かを判定する。これは、図9Aにおいて示されたフローのステップ111と同様の処理である。
【0164】
ステップ212では、ステップ205において規定回数以上の衝突回数が生じたと判断いされた結果、CPU311は、ゲーム進行上、ドラゴンを消滅させ、当該ゲームにおける課題が攻略されたことを示す演出を行う。
【0165】
ステップ213において、CPU311は、ゲーム処理上の内部状態、判定結果に対応して、仮想オブジェクトを含む画像と実世界を撮像した画像との重畳的な画像の描画を連続的に行う描画処理を行う。
【0166】
(第2実施形態によって奏される効果の一例)
ゲーム装置10は、そのゲーム処理において、プレイヤオブジェクトまたはノンプレイヤオブジェクトのいずれかまたはその両方を、仮想面に対する位置関係を変化させる。これによって、さらに、没入感、実在感などいった感覚が増強された態様でそのユーザに喚起され得る。
【0167】
(変形例)
また、上記実施形態では、実世界画像に含まれるマーカ60の位置および姿勢を認識して、その認識結果に応じて実世界画像に仮想オブジェクトを合成しているが、他の実施形態では、マーカ60に限らず、任意の認識対象の位置および/または姿勢を認識して、その認識結果に応じて実世界画像に仮想オブジェクトを合成してもよい。認識対象の一例として、人物の顔が挙げられる。
【0168】
また、上記実施形態では、外側撮像部23によってリアルタイムに撮像される実世界画像に基づいて上側LCD22に立体画像を表示しているが、他の実施形態では、外側撮像部23や外部のステレオカメラ等によって過去に撮像された動画像データに基づいて上側LCD22に立体画像を表示するようにしてもよい。
【0169】
また、上記実施形態では、外側撮像部23がゲーム装置10に予め搭載されているが、他の実施形態では、ゲーム装置10に着脱可能な外付け型のカメラを利用してもよい。
【0170】
また、上記実施形態では、上側LCD22がゲーム装置10にあらかじめ搭載されているが、他の実施形態では、ゲーム装置10に着脱可能な外付け型の立体視ディスプレイを利用してもよい。
【0171】
また、上記実施形態では、ゲーム装置10を用いて実世界画像に仮想オブジェクトを合成表示しているが、他の実施形態では、任意の情報処理装置または情報処理システム(例えば、PDA(Personal Digital Assistant)、携帯電話、パーソナルコンピュータ、カメラ等)を用いて実世界画像に仮想オブジェクトを合成表示してもよい。
【0172】
また、上記実施形態では、一台の装置(ゲーム装置10)のみによってゲーム処理を実行しているが、他の実施形態では、互いに通信可能な複数の情報処理装置を有する画像表示システムにおいて、当該複数の情報処理装置が画像表示処理を分担して実行するようにしてもよい。
【0173】
また、コンピュータのオペレーティングシステムの一部として様々なプログラムモジュール(関数等)を用意しておくことが一般的傾向である。さらに、アプリケーションプログラムはこれらのモジュールを必要なときに呼び出して処理を進める方式が一般的である。そして、一般的なプラットフォームを使用する限り、そうしたモジュールを含ませたソフトを流通させる必要はない。したがって、上記プログラムからそれらモジュールに対応する部分を除いたソフトウェアが、記憶媒体に記憶された形式で、またはネットワーク上で提供される形式で提供/流通された場合であって、上述のモジュールによって機能が補完されたときには、結果として上記プログラムそのものが提供された場合と等価な効果が存在し得る。よって、上述のようなモジュールによって機能が補完されることを前提に、上記ゲームプログラムから上述のようなモジュールに対応する機能を除いたものは、実質的に上記ゲームプログラムに相当するものと解釈され得る。
【0174】
また、本実施形態においては、外側撮像部23により撮像したカメラ画像と仮想オブジェクト(例えば、水面オブジェクト61など)とを重ね合わせて上側LCD22に表示させるビデオシースルー方式を説明したが、本発明はこれに限定されない。例えば、光学シースルー方式を実現する構成であってもよい。光学シースルー方式は、少なくとも撮像部を備えたユーザの頭部に装着する表示装置(以下、ヘッドマウンドディスプレイ)を用いる。ヘッドマウンドディスプレイを装着したユーザは、メガネのレンズ部分に相当する位置を有する表示部(画面)を通して現実空間を視認できる。この表示部は、現実空間を光学的に透過してユーザの眼に直接導くことが可能な素材によって構成されている。他方で、この表示部は、コンピュータにより生成した仮想オブジェクトの画像を表示させることができる。さらに、この表示部は液晶表示装置等を備え、この液晶表示装置等にコンピュータにより生成した仮想オブジェクトの画像を表示させ、この液晶表示装置からの光を(例えば、ハーフミラー等で反射させて)ユーザの網膜に導くことができるようになっている。これにより、ユーザは、現実空間と仮想オブジェクトの画像とが光学的に重ね合わせられた像を視認することができる。なお、ヘッドマウンドディスプレイに備えられたカメラは現実空間に配置されたマーカを検出するために用いられる。また、他の光学シースルー方式として、ハーフミラーを使用せずに表示部に重ね合わせて透過型液晶表示装置を備える方式があるが、本発明はこの方式を採用してもよい。この場合には、透過型液晶表示装置に仮想オブジェクトの画像を表示することで、表示部に透過された現実空間と透過型液晶表示装置に表示された仮想オブジェクトの画像とが重ね合わされてユーザに視認される。
【0175】
以上、本発明を詳細に説明してきたが、前述の説明はあらゆる点において本発明の例示にすぎず、その範囲を限定しようとするものではない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。本発明は、特許請求の範囲によってのみその範囲が解釈されるべきであることが理解される。ここで、当業者は、本発明の具体的な実施形態の記載から、本発明の記載および技術常識に基づいて均等な範囲を実施することができることが理解される。また、本明細書において使用される用語は、特に言及しない限り、当該分野で通常用いられる意味で用いられることが理解されるべきである。したがって、他に定義されない限り、本明細書中で使用されるすべての専門用語および技術用語は、本発明の属する分野の当業者によって一般的に理解されるのと同じ意味を有する。矛盾する場合、本明細書(定義を含めて)が優先する。
【符号の説明】
【0176】
10 ゲーム装置
11 下側ハウジング
12 下側LCD
13 タッチパネル
14 操作ボタン
15 アナログスティック
16 LED
21 上側ハウジング
22 上側LCD
23 外側撮像部
23a 外側撮像部(左)
23b 外側撮像部(右)
24 内側撮像部
25 3D調整スイッチ
26 3Dインジケータ
28 タッチペン
31 情報処理部
311 CPU
312 GPU
32 メインメモリ
60 マーカ
61 仮想オブジェクト(水面オブジェクト)
62 仮想オブジェクト(釣竿オブジェクト)
62’ 仮想オブジェクト(釣竿オブジェクト)
62a 釣竿オブジェクトの部分(釣竿本体)
62b 釣竿オブジェクトの部分(釣糸部分)
62c 釣竿オブジェクトの部分(釣針部分)
62d 釣竿オブジェクトの部分(爆弾部分)
63 魚影
63a 魚影63に対応する魚オブジェクトの位置
64 魚影
64a 魚影64に対応する魚オブジェクトの位置
65 仮想オブジェクト(ドラゴンオブジェクト)
80L 左仮想カメラ
80R 右仮想カメラ

【特許請求の範囲】
【請求項1】
ゲームプログラムであって、
撮像装置と画面上において現実空間を視認可能とする表示装置に接続されたゲーム装置のコンピュータを、
前記撮像装置が現実空間を撮像することにより得られた撮像画像を取得する撮像画像取得手段;
前記撮像画像取得手段により取得された撮像画像から特定対象物を検出する検出手段;
前記特定対象物の検出結果に基づき、前記撮像装置と前記特定対象物との相対的位置を算出する算出手段;
前記相対的位置に基づき、仮想空間内の仮想カメラを設定する仮想カメラ設定手段;
前記相対的位置に基づき、前記仮想空間内に仮想面を設定して前記仮想空間の部分空間を規定する仮想面設定手段;
前記仮想面により規定される、前記仮想空間の第1部分空間に、前記仮想カメラの位置に基づき、第1仮想オブジェクトを提供する第1仮想オブジェクト制御手段;
前記第1仮想オブジェクトを含む前記仮想空間を前記仮想カメラで撮影することにより、仮想オブジェクト画像を生成する仮想オブジェクト画像生成手段;
前記画面上の現実空間に重ね合わせてユーザに視認されるように、前記仮想オブジェクト画像を前記表示装置に表示させる表示制御手段;
ゲームの進行に応じて、前記第1仮想オブジェクトとは別の第2仮想オブジェクトを前記仮想空間内に提供する第2仮想オブジェクト制御手段;および
前記第1仮想オブジェクトまたは第2仮想オブジェクトのいずれかまたはその両方を、前記仮想面に対する位置関係を変化させることに応じて前記ゲームの進行を制御するゲーム進行手段として機能させる、ゲームプログラム。
【請求項2】
前記ゲーム進行手段は、前記第1仮想オブジェクトと前記第2仮想オブジェクトとの相互関係に関する条件の判定を後続のゲーム処理のために行う、請求項1に記載のゲームプログラム。
【請求項3】
前記ゲーム進行手段は、前記第1部分空間に存在する前記第1仮想オブジェクトの少なくとも一部が前記仮想面を介して前記仮想カメラから見て前記仮想面より遠位の第2部分空間に移動されたときに、前記第1仮想オブジェクトと前記第2仮想オブジェクトとの相互関係に関する条件の判定を後続のゲーム処理のために行う、請求項1に記載のゲームプログラム。
【請求項4】
前記相互関係に関する条件は、前記第1仮想オブジェクトと前記第2仮想オブジェクトとの位置関係が所定の条件を満たすことである、請求項3に記載のゲームプログラム。
【請求項5】
前記相互関係に関する条件は、さらに前記算出手段により得られる相対的位置に基づき規定される前記第1仮想オブジェクトの移動量が一定値に達すること、または当該移動量が一定値に達してない場合であっても、前記検出手段が前記撮像画像から前記特定対象物を検出しなかったことである、請求項3に記載のゲームプログラム。
【請求項6】
前記第1仮想オブジェクトは、前記仮想カメラ側から前記特定対象物側に伸びる仮想オブジェクトとして表現される三次元モデルが与えられる、請求項1に記載のゲームプログラム。
【請求項7】
前記表示制御手段は、前記仮想面設定手段により規定される仮想面を、前記特定対象物の位置を基準として配置される3次元モデルに基づき表示し、前記三次元モデルは前記撮像画像がその表面にマッピングされたポリゴンで規定される、請求項1に記載のゲームプログラム。
【請求項8】
前記第2仮想オブジェクト制御手段が、前記第1部分空間以外の前記仮想空間に1以上の第2仮想オブジェクトを配置する場合、前記表示制御手段は、前記画面に表示するための前記第2仮想オブジェクトを、前記仮想面を示すためのポリゴン上にマッピングされる前記撮像画像のテクスチャに対して、前記第2仮想オブジェクトの形状を模したテクスチャをブレンドすることで表示する、請求項7に記載のゲームプログラム。
【請求項9】
前記第2仮想オブジェクト制御手段は、前記第2仮想オブジェクトを、前記仮想空間における、前記特定対象物と前記仮想カメラとの間の領域に配置する傾向を有する、請求項1に記載のゲームプログラム。
【請求項10】
前記ゲーム進行手段は、前記第2仮想オブジェクト制御手段が前記第2仮想オブジェクトを前記仮想空間に提供する場合であって、当該第2仮想オブジェクトの少なくともその一部が、第1部分空間以外の空間から前記仮想面を介して前記第1部分空間に移動しそこに位置づけられるときに、前記第1仮想オブジェクトと前記第2仮想オブジェクトとの相互関係に関する条件の判定を行い、当該判定の結果に従い後続のゲーム処理を行う、請求項1に記載のゲームプログラム。
【請求項11】
前記相互関係に関する条件は、前記第1仮想オブジェクトの少なくとも一部分と、前記第2仮想オブジェクトとの間の衝突判定において当該仮想オブジェクト同士が衝突したと判定されることである、請求項10に記載のゲームプログラム。
【請求項12】
撮像装置と画面上において現実空間を視認可能とする表示装置に接続されたゲーム装置であって、
前記撮像装置で現実空間を撮像することにより得られた撮像画像を取得する撮像画像取得手段;
前記撮像画像取得手段により取得された撮像画像から特定対象物を検出する検出手段;
前記特定対象物の検出結果に基づき、前記撮像装置と前記特定対象物との相対的位置を算出する算出手段;
前記相対的位置に基づき、仮想空間内の仮想カメラを設定する仮想カメラ設定手段;
前記相対的位置に基づき、前記仮想空間内に仮想面を設定して前記仮想空間の部分空間を規定する仮想面設定手段;
前記仮想面により規定される、前記仮想空間の第1部分空間に、前記仮想カメラの位置に基づき、第1仮想オブジェクトを提供する第1仮想オブジェクト制御手段;
前記第1仮想オブジェクトを含む前記仮想空間を前記仮想カメラで撮影することにより、仮想オブジェクト画像を生成する仮想オブジェクト画像生成手段;
前記画面上の現実空間に重ね合わせてユーザに視認されるように、前記仮想オブジェクト画像を前記表示装置に表示させる表示制御手段;
ゲームの進行に応じて、前記第1仮想オブジェクトとは別の第2仮想オブジェクトを前記仮想空間内に提供する第2仮想オブジェクト制御手段;および
前記第1仮想オブジェクトまたは第2仮想オブジェクトのいずれかまたはその両方を、前記仮想面に対する位置関係を変化させることに応じて前記ゲームの進行を制御するゲーム進行手段を備える、ゲーム装置。
【請求項13】
撮像装置と画面上において現実空間を視認可能とする表示装置に接続されたゲームシステムであって、
前記撮像装置で現実空間を撮像することにより得られた撮像画像を取得する撮像画像取得手段;
前記撮像画像取得手段により取得された撮像画像から特定対象物を検出する検出手段;
前記特定対象物の検出結果に基づき、前記撮像装置と前記特定対象物との相対的位置を算出する算出手段;
前記相対的位置に基づき、仮想空間内の仮想カメラを設定する仮想カメラ設定手段;
前記相対的位置に基づき、前記仮想空間内に仮想面を設定して前記仮想空間の部分空間を規定する仮想面設定手段;
前記仮想面により規定される、前記仮想空間の第1部分空間に、前記仮想カメラの位置に基づき、第1仮想オブジェクトを提供する第1仮想オブジェクト制御手段;
前記第1仮想オブジェクトを含む前記仮想空間を前記仮想カメラで撮影することにより、仮想オブジェクト画像を生成する仮想オブジェクト画像生成手段;
前記画面上の現実空間に重ね合わせてユーザに視認されるように、前記仮想オブジェクト画像を前記表示装置に表示させる表示制御手段;
ゲームの進行に応じて、前記第1仮想オブジェクトとは別の第2仮想オブジェクトを前記仮想空間内に提供する第2仮想オブジェクト制御手段;および
前記第1仮想オブジェクトまたは第2仮想オブジェクトのいずれかまたはその両方を、前記仮想面に対する位置関係を変化させることに応じて前記ゲームの進行を制御するゲーム進行手段
を備える、ゲームシステム。
【請求項14】
ゲームシステムにおけるゲーム処理を行うための方法であって、
前記ゲームシステムに接続された撮像装置で現実空間を撮像することにより得られた撮像画像を取得する撮像画像取得ステップ;
前記撮像画像取得ステップにより取得された撮像画像から特定対象物を検出する検出ステップ;
前記特定対象物の検出結果に基づき、前記撮像装置と前記特定対象物との相対的位置を算出する算出ステップ;
前記相対的位置に基づき、仮想空間内の仮想カメラを設定する仮想カメラ設定ステップ;
前記相対的位置に基づき、前記仮想空間内に仮想面を設定して前記仮想空間の部分空間を規定する仮想面設定ステップ;
前記仮想面により規定される、前記仮想空間の第1部分空間に、前記仮想カメラの位置に基づき、第1仮想オブジェクトを提供する第1仮想オブジェクト制御ステップ;
前記第1仮想オブジェクトを含む前記仮想空間を前記仮想カメラで撮影することにより、仮想オブジェクト画像を生成する仮想オブジェクト画像生成ステップ;
前記ゲームシステムに接続された表示装置の画面上の前記現実空間に重ね合わせてユーザに視認されるように、前記仮想オブジェクト画像を前記表示装置に表示させる表示制御ステップ;
ゲームの進行に応じて、前記第1仮想オブジェクトとは別の第2仮想オブジェクトを前記仮想空間内に提供する第2仮想オブジェクト制御ステップ;および
前記第1仮想オブジェクトまたは第2仮想オブジェクトのいずれかまたはその両方を、前記仮想面に対する位置関係を変化させることに応じて前記ゲームの進行を制御するゲーム進行ステップを含む、方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5A】
image rotate

【図5B】
image rotate

【図5C】
image rotate

【図6】
image rotate

【図7A】
image rotate

【図7B】
image rotate

【図7C】
image rotate

【図7D】
image rotate

【図7E】
image rotate

【図7F】
image rotate

【図8】
image rotate

【図9A】
image rotate

【図9B】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate


【公開番号】特開2012−68977(P2012−68977A)
【公開日】平成24年4月5日(2012.4.5)
【国際特許分類】
【出願番号】特願2010−214170(P2010−214170)
【出願日】平成22年9月24日(2010.9.24)
【出願人】(000233778)任天堂株式会社 (1,115)
【出願人】(391041718)株式会社ハル研究所 (38)
【Fターム(参考)】