説明

情報処理プログラム、情報処理装置、情報処理システム、及び情報処理方法

【課題】ユーザの没入感を維持して現実空間に表示された的を撃つゲームを進行させる。
【解決手段】ゲーム装置の情報処理部は、カメラ画像を取得するステップ(S100)と、マーカを検出するステップ(S200)と、仮想カメラの位置及び姿勢を算出するステップ(S400)と、ステージをクリアすると六面体展開面を出現させて的を示す仮想オブジェクトとともに展開面を折り畳むアニメーションを作成するステップ(S600)と、折り畳まれた六面体を別の仮想オブジェクトとともに展開するアニメーションを作成するステップ(S800)と、オブジェクトに撮像画像を貼り付けるステップ(S900)と、仮想カメラでオブジェクトを撮影するステップ(S1000)と、カメラ画像とオブジェクト画像とを重ね合わせて表示するステップ(S1100、S1200)とを含むプログラムを実行する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ユーザが視認可能な現実空間に、撮像画像に仮想オブジェクト画像を重ね合わせて表示することにより自然な拡張現実感を実現する情報処理技術に関し、より具体的には、自然な拡張現実感を体感しているユーザが、高い興味を維持した状態で、仮想オブジェクトを出現させたり変更させたりする情報処理技術に関する。
【背景技術】
【0002】
専用のゲーム装置又は汎用のコンピュータにおいて実行されるプログラムにより実現されるゲームが多く存在する。このようなゲームは、ユーザに継続的な興味を抱かせるべく、難易度の異なるステージを準備しておいて、難易度の低いステージから難易度の高いステージへ順番に導くように構成されているものが多い。このようなゲームにおいて、あるステージがクリアされて次のステージへ移行する場合に、例えば、特許文献1の図9に示すように、ゲーム画面に固定画面を表示させることが行われる。なお、特許文献1においては、次のステージにおいて必要なデータの読込み処理のために固定画面を表示している。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2007−222310号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、臨場感が溢れるゲーム画面から、特許文献1に開示されたゲーム装置のように、固定画面(この特許文献1においては“Now loading ・・・”と表示された単色一面の画面)へ切り替わってしまうと、ユーザのゲームに対する没入感が阻害されてしまい、ユーザのゲームに対する興味が薄れてしまう可能性がある。このため、ステージの切り替わり時においても、ユーザの没入感が阻害されないようなゲーム画面を表示することが重要である。
【0005】
一方、仮想オブジェクト画像を、表示装置の画面上で視認可能な現実世界(現実空間又は現実環境ともいう)に重ね合わせて表示することにより、仮想空間にオブジェクトが存在するように表示する、いわゆる拡張現実感システムが実現されている。この拡張現実感システムは、仮想物体(仮想オブジェクト)を現実世界の中に表示する技術であって、例えば、カメラで撮像した現実空間に、予め作成しておいた仮想オブジェクトの画像を重ね合わせて、違和感なく仮想オブジェクトを表示させる。このような拡張現実感システムを携帯型のゲーム装置へ適用すると、ゲーム装置が備える撮像部で撮像した現実世界の中に、例えば、シューティングゲームの的を仮想オブジェクトとして配置して、ユーザが仮想オブジェクトの的を撃つゲームを構成することができる。
【0006】
このようにして、自然な拡張現実感を適用したシューティングゲームにおいても、上述したように、難易度の低いステージをクリアすると次の難易度の高いステージに移行するように構成される場合がある。この場合において、ステージの切り替え時に固定画面へゲーム画面を切り替えるのは、仮想オブジェクトを変更(難易度の高い的へ変更)することはできても、ユーザの没入感を阻害してしまうことは、上述したように通常のゲームと同じである。そこで、このような拡張現実感システムを適用したゲームにおけるステージ切り替え時の表示方法が大きな問題になることに出願人らは着目した。
【0007】
すなわち、このような拡張現実感システムを適用したゲームにおいては、ステージのフィールドはユーザが表示装置の画面上で視認可能な現実世界となる。このような現実世界にキャラクタ及び的等の仮想オブジェクトが重ね合わせられて表示されている。あるステージにおける的を示す仮想オブジェクトを次のステージにおける的を示す仮想オブジェクトに単に切り替えることは、現実世界が変化しない状態で仮想オブジェクトが急に変更されることになる。これでは、自然な拡張現実感を実現することは困難で、ユーザに大きな違和感を与える。
【0008】
また、通常のゲームでは、あるステージのフィールド(例えば森)から次のステージのフィールド(例えば市街地)へ、ユーザが操作するキャラクタを誘導することができる。しかしながら、拡張現実感システムを適用したゲームにおいては、現実世界にフィールドが依存するので、このような誘導も実現することができない。
【0009】
このように、拡張現実感システムを適用したゲームにおいて、ユーザのゲームへの没入感を継続して、かつ、自然な拡張現実感を実現して、仮想キャラクタを変更して新たなステージを開始させるということに大きな問題がある。しかしながら、特許文献1に開示されたゲーム装置においても公知の技術においても、このような問題を解決することができない。
【0010】
それ故、本発明の目的は、拡張現実感システムを適用して、現実世界に重ね合わせられて表示された仮想オブジェクトを必要に応じて出現又は変更する場合に、実現された自然な拡張現実感を阻害することなく、かつ、出現又は変更時に表示される画像に対してユーザに興味を抱かせる技術を提供することである。
【課題を解決するための手段】
【0011】
本発明は、上述の課題を解決するために、以下の構成を採用した。
【0012】
本発明の第1の局面に係る情報処理プログラムは、撮像手段と、画面上において現実空間を視認可能な表示手段と、閉空間を構成する第1の仮想オブジェクトのオブジェクトデータ及び閉空間内に配置される第2の仮想オブジェクトのオブジェクトデータを記憶する記憶手段とに接続された情報処理装置のコンピュータを、撮像画像データ取得手段、第1のオブジェクト制御手段、第2のオブジェクト制御手段、テクスチャマッピング手段、オブジェクト画像作成手段、及び表示制御手段として機能させる。撮像画像データ取得手段は、撮像手段により撮像された撮像画像を示す撮像画像データを逐次取得する。第1のオブジェクト制御手段は、内側面と外側面とを有する第1の仮想オブジェクトの形状を、当該第1の仮想オブジェクトによって内側面が内向きになるような閉空間が構成される閉形状から、仮想カメラから内側面が見えるように当該第1の仮想オブジェクトが展開された開形状へ変形、又は開形状から閉形状へ変形させる。第2のオブジェクト制御手段は、第1の仮想オブジェクトの内側面上に1以上の第2の仮想オブジェクトを配置するとともに、第1の仮想オブジェクトの閉形状から開形状への変形に応じて、第1の仮想オブジェクトの内側面に連動するように当該第2の仮想オブジェクトの位置及び姿勢を変化させる。テクスチャマッピング手段は、撮像画像における第1の仮想オブジェクトの開形状に対応する領域の画像を、第1の仮想オブジェクトの内側面にテクスチャとして貼り付ける。オブジェクト画像作成手段は、テクスチャを貼り付けた第1の仮想オブジェクトと、第2の仮想オブジェクトとに基づいて、オブジェクト画像を作成する。表示制御手段は、画面上の現実空間に、オブジェクト画像作成手段により作成されたオブジェクト画像を重ね合わせた重畳画像を、表示手段に逐次表示させる。
【0013】
この構成によると、画面上の現実空間に、第1の仮想オブジェクト及び第2の仮想オブジェクトから構成されるオブジェクト画像が重ね合わせられた重畳画像が、表示手段に表示される。この場合において、第1の仮想オブジェクトは、内側面と外側面とを有し、第1のオブジェクト制御手段により、内側面が内向きになるような閉空間が構成される閉形状から、仮想カメラから内側面が見えるようにその閉空間が展開された開形状へ変形されたり、開形状から閉形状へ変形させたりする。第2の仮想オブジェクト(閉形状から開形状への変形)は、第1の仮想オブジェクトの内側面上に1以上配置され、第2のオブジェクト制御手段により、第1の仮想オブジェクトの変形(閉形状から開形状への変形)に応じて、第1の仮想オブジェクトの内側面に連動するように、その位置及び姿勢が変化される。例えば、拡張現実感を適用したシューティングゲームにおいて、あるステージの的を次のステージの的である第2の仮想オブジェクトに変更する場合に、第1の仮想オブジェクトの内側面に連動するように(例えば的が設置された地面により的が包み込まれるように)、的の位置及び姿勢が変化される。開形状の第1の仮想オブジェクトの内側面に配置された的は、第1の仮想オブジェクトについての開形状から閉形状への変化に応じて(例えば地面が六面体展開面に切断されてその六面体展開面が折り畳まれて六面体で閉形状を構成することによる開形状から閉形状への変化に応じて)、的の位置及び姿勢が変化して、閉空間内に閉じ込められる。さらに、第1の仮想オブジェクトについての閉形状から開形状への変化に応じて(例えば六面体が展開することによる閉形状から開形状への変化に応じて)、第2の仮想オブジェクトである的の位置及び姿勢が変化して、次のステージの的が配置される。そして、この的が配置された第1の仮想オブジェクトの内側面には、撮像画像における第1の仮想オブジェクトの開形状に対応する領域の画像がテクスチャとして貼り付けられる。このため、自然な拡張現実感を実現して、第1の仮想オブジェクトが、開形状から閉形状へ変化してあるステージの的を閉空間内に収納し、閉形状から開形状へ変化して次のステージの的である第2の仮想オブジェクトを配置する。この場合、ユーザは、第1の仮想オブジェクトの形状変化(開形状から閉形状)及び第2の仮想オブジェクトの位置及び姿勢の変化(開形状になるに従い見えるようになる)に興味を抱くことになる。その結果、拡張現実感システムを適用して、現実世界に重ね合わせられて表示された仮想オブジェクトを出現又は変更するにあたり、実現された自然な拡張現実感を阻害することなく、かつ、出現又は変更時に表示される画像に対してユーザに興味を抱かせるようにすることができる。
【0014】
第1のオブジェクト制御手段は、第1の仮想オブジェクトの開閉状態を連続的に変化させたアニメーション形式で、第1の仮想オブジェクトの形状を変形させるように構成することができる。この場合において、第2のオブジェクト制御手段は、アニメーションの進行度合いに応じて、第2の仮想オブジェクトの位置及び姿勢を変化させるように構成することができる。
【0015】
この構成によると、閉形状の第1の仮想オブジェクトが開形状に変化する状態を連続的に表現したアニメーション及び第1の仮想オブジェクトのアニメーションに対応して第2の仮想オブジェクトの位置及び姿勢が変化する状態を連続的に表現したアニメーションを用いて、第2の仮想オブジェクトを第1の仮想オブジェクトに収納することができる。その結果、第1の仮想オブジェクトの形状の変化と第2の仮想オブジェクトの位置及び姿勢の変化が連続的になるため、さらに実現された自然な拡張現実感を阻害することなく、かつ、変更時に表示される画像に対してユーザに興味を抱かせるようにすることができる。
【0016】
第1のオブジェクト制御手段は、第1の仮想オブジェクトの形状を開形状から閉形状へ変形させ、第2のオブジェクト制御手段により第2の仮想オブジェクトが配置された後に、第1の仮想オブジェクトの形状を閉形状から開形状に変形させるように構成することができる。
【0017】
この構成によると、第1の仮想オブジェクトが開形状から閉形状へ変化した閉空間が閉形状から開形状へ変化して、第2の仮想オブジェクトを出現させることができる。
【0018】
第2のオブジェクト制御手段は、第1の仮想オブジェクトの形状が開形状であるときに第1の仮想オブジェクトの内側面上に1以上の第3の仮想オブジェクトを配置するとともに、第1の仮想オブジェクトの開形状から閉形状への変形に応じて、第1の仮想オブジェクトの内側面に連動するように当該第3の仮想オブジェクトの位置及び姿勢を変化させるように構成することができる。
【0019】
この構成によると、第1の仮想オブジェクトが閉状から開形状へ変化して、例えば第1ステージの的である第3の仮想オブジェクトを閉空間内に収納して、第1の仮想オブジェクトが閉形状から開形状へ変化して、第2ステージの的である第2の仮想オブジェクトを出現させることができる。その結果、拡張現実感システムを適用して、現実世界に重ね合わせられて表示された仮想オブジェクトを変更するにあたり、実現された自然な拡張現実感を阻害することなく、かつ、変更時に表示される画像に対してユーザに興味を抱かせるようにすることができる。
【0020】
第2のオブジェクト制御手段は、第1の仮想オブジェクトの開形状から閉形状への変形の後に、第3の仮想オブジェクトに代えて第2の仮想オブジェクトを第1の仮想オブジェクトの内側面上に配置するように構成することができる。
【0021】
この構成によると、第1の仮想オブジェクトが閉状から開形状へ変化して、例えば第1ステージの的である第3の仮想オブジェクトが、第2ステージの的である第2の仮想オブジェクトへ切り替えることができる。
【0022】
好ましくは、表示制御手段は、第2の仮想オブジェクトが閉空間を構成する面を透過しないように表示するように構成することができる。
【0023】
この構成によると、第1の仮想オブジェクトが開形状から閉形状へ変化するに従い第3の仮想オブジェクトが見えなくなったり、第1の仮想オブジェクトが閉形状から開形状へ変化するに従い第2の仮想オブジェクトが見えるようになったりするため、ユーザがその変化に興味を抱くことになる。さらに、第1の仮想オブジェクトが閉形状になったときに第1の仮想オブジェクトの内側面上に配置されるオブジェクトを変更する場合には、その変更の様子をユーザに見せないようにすることができるため、実現された自然な拡張現実感を阻害することなく、かつ、表示される画像に対してユーザに興味を抱かせるようにすることができる。
【0024】
好ましくは、第1の仮想オブジェクトは複数の展開面から構成される多面体で構成することができる。この場合において、アニメーションは、多面体が展開された展開面が配置された第1の状態から、展開面が回転して多面体が閉空間を構成する第2の状態までを含むように構成することができる。
【0025】
この構成によると、第1の仮想オブジェクトである多面体(例えば六面体)の各面に第3の仮想オブジェクト(的)が配置された第1の状態から、展開面が回転して多面体が閉空間を構成する第2の状態までのアニメーションが表示される。このため、仮想オブジェクトの切り替わり時に、表示される画像に対してユーザに興味を抱かせることができる。
【0026】
好ましくは、アニメーションは、多面体の展開面が出現して第1の状態へ移行するまでを含むように構成することができる。
【0027】
この構成によると、第3の仮想オブジェクト(的)のみが表示されている状態から、第1の仮想オブジェクトである多面体の展開面が現れて、多面体内に第2の仮想オブジェクトを収納するようなアニメーションを表示することができる。
【0028】
好ましくは、アニメーションは、展開面又は展開面の境界線の色が変化してから多面体の展開面が出現するように構成することができる。
【0029】
この構成によると、的のみが表示されている状態から、第1の仮想オブジェクトである多面体の展開面が、その面又は辺の色が変化して浮き出るように現れるので、自然な拡張現実感を実現することができる。さらに、第1の仮想オブジェクトの形状が変化するアニメーションの範囲を事前にユーザに把握させることができる。
【0030】
好ましくは、第1の仮想オブジェクトは複数の展開面から構成される多面体で構成することができる。この場合において、アニメーションは、多面体が展開された展開面が配置された第1の状態から、展開面が回転して多面体が閉空間を構成する第2の状態を経由して、展開面が逆回転して多面体が開いて多面体の展開面に第2の仮想オブジェクトが配置された第3の状態までを含むように構成することができる。
【0031】
この構成によると、第3の仮想オブジェクトとしての的のみが表示されている状態から、第1の仮想オブジェクトである多面体の展開面が現れて、多面体内に第3の仮想オブジェクト(大きい的)を収納して、多面体が展開されると第2の仮想オブジェクト(小さい的)が現れるようなアニメーションを表示することができる。このため、表示するオブジェクトを変更する場合に、実現された自然な拡張現実感を阻害することなく、かつ、変更時に表示される画像にユーザが興味を抱くようにすることができる。
【0032】
好ましくは、アニメーションは、多面体の展開面が出現して第1の状態へ移行するまで又は第3の状態から多面体の展開面が消えるまでを含むように構成することができる。
【0033】
この構成によると、第3の仮想オブジェクト(的)のみが表示されている状態から、第1の仮想オブジェクトである多面体の展開面が現れて、多面体内に第2の仮想オブジェクトを収納するようなアニメーションに加えて、多面体が展開されると第2の仮想オブジェクト(別の的)が現れるようなアニメーションを表示することができる。
【0034】
好ましくは、アニメーションは、展開面又は展開面の境界線の色が変化してから多面体の展開面が出現又は第3の状態から展開面又は展開面の境界線の色が変化してから多面体の展開面が消えるように構成することができる。
【0035】
この構成によると、的のみが表示されている状態から、第1の仮想オブジェクトである多面体の展開面がその面又は辺の色が変化して浮き出るように現れて、展開面が折り畳まれ、第3の仮想オブジェクトが見えなくなる。多面体が展開されると第2の仮想オブジェクトが展開面に配置される。この状態から、多面体の展開面がその面又は辺の色が変化して沈み込むように消えるので、自然な拡張現実感を実現することができる。
【0036】
好ましくは、第2のオブジェクト制御手段は、展開面の回転又は逆回転に対応させて、当該第2の仮想オブジェクトを回転又は逆回転することにより、当該第2の仮想オブジェクトの位置及び姿勢を変化させるように構成することができる。
【0037】
この構成によると、第1の仮想オブジェクトは、多面体の展開面が回転することにより開形状から閉形状へ、又は閉形状から開形状へ変化する。このような回転に対応させて第2の仮想オブジェクトが回転するので、自然な拡張現実感を実現することができる。
【0038】
好ましくは、プログラムは、コンピュータを、展開面の外側面に所定の画像をテクスチャとして貼り付ける外側面変化手段としてさらに機能させるように構成することができる。この場合において、プログラムは、コンピュータを、展開面の外側面にテクスチャとして貼り付けられた領域に対応する撮像画像の表示を変化させる変化手段としてさらに機能させるように構成することができる。
【0039】
この構成によると、展開面の外側面に所定の画像が貼り付けられて、貼り付けられた領域に対応する撮像画像の表示を、例えば、所定の画像に変化させる。このようにすると、現実空間の芝生の上にマーカを配置して芝生の上でシューティングゲームを行っている場合には、芝生が剥がれた部分には土の画像が表示され、六面体展開面の外側面にも土の画像が表示され、自然な拡張現実感を実現することができる。
【0040】
好ましくは、多面体を六面体で構成することができる。なお、この六面体には、立方体又は直方体を始めとして、角錐台等であっても構わない。
【0041】
この構成によると、多面体として六面体を用いて、立方体又は直方体等で構成される閉空間内に第3の仮想オブジェクトを収納して、立方体又は直方体等を展開すると第2の仮想オブジェクトを出現させることができる。これにより、自然な拡張現実感を実現しつつ、仮想オブジェクトを変更することができる。
【0042】
好ましくは、プログラムは、コンピュータを、ユーザの操作に応じて第2の仮想オブジェクトを動作させる操作手段としてさらに機能させるように構成することができる。
【0043】
この構成によると、第2の仮想オブジェクトとして、例えばユーザの操作により動作するキャラクタを配置して、そのキャラクタが的を撃つシューティングゲームを実現する情報処理を実行することができる。
【0044】
好ましくは、プログラムは、コンピュータを、撮像画像データ取得手段により逐次取得された撮像画像データから特定対象物を検出する検出手段、特定対象物の検出結果に基づいて、撮像手段と特定対象物との相対的位置を算出する算出手段、及び算出手段による算出結果に基づいて、仮想空間内の仮想カメラを逐次設定する仮想カメラ設定手段としてさらに機能させるように構成することができる。この場合において、オブジェクト画像作成手段は、第1の仮想オブジェクトと第2の仮想オブジェクトを仮想カメラで撮影することによりオブジェクト画像を作成するように構成することができる。
【0045】
この構成によると、自然な拡張現実感を実現して、第1の仮想オブジェクトが、開形状から閉形状へ変化して、仮想オブジェクトである的を異なる的へ切り替えることができる。この場合、ユーザは、第1の仮想オブジェクトの形状変化(開形状から閉形状)、第2の仮想オブジェクトの仮想オブジェクトの位置(開形状になるに従い見えるようになる)及び姿勢の変化及び第3の仮想オブジェクトの位置及び姿勢の変化(閉形状になるに従い見えなくなる)に興味を抱くことになる。
【0046】
本発明の第2の局面に係る情報処理装置は、撮像手段と、画面上において現実空間を視認可能な表示手段と、閉空間を構成する第1の仮想オブジェクトのオブジェクトデータ及び閉空間内に配置される第2の仮想オブジェクトのオブジェクトデータを記憶する記憶手段と、撮像手段により撮像された撮像画像を示す撮像画像データを逐次取得する撮像画像データ取得手段と、内側面と外側面とを有する第1の仮想オブジェクトの形状を、当該第1の仮想オブジェクトによって内側面が内向きになるような閉空間が構成される閉形状から、仮想カメラから内側面が見えるように当該第1の仮想オブジェクトが展開された開形状へ変形、又は開形状から閉形状へ変形させる第1のオブジェクト制御手段と、第1の仮想オブジェクトの内側面上に1以上の第2の仮想オブジェクトを配置するとともに、第1の仮想オブジェクトの閉形状から開形状への変形に応じて、第1の仮想オブジェクトの内側面に連動するように当該第2の仮想オブジェクトの位置及び姿勢を変化させる第2のオブジェクト制御手段と、撮像画像における第1の仮想オブジェクトの開形状に対応する領域の画像を、第1の仮想オブジェクトの内側面にテクスチャとして貼り付けるテクスチャマッピング手段と、テクスチャを貼り付けた第1の仮想オブジェクトと、第2の仮想オブジェクトとに基づいて、オブジェクト画像を作成するオブジェクト画像作成手段と、画面上の現実空間に、オブジェクト画像作成手段により作成されたオブジェクト画像を重ね合わせた重畳画像を、表示手段に表示させる表示制御手段とを含む。
【0047】
本発明の第3の局面に係る情報処理システムは、撮像手段と、画面上において現実空間を視認可能な表示手段と、閉空間を構成する第1の仮想オブジェクトのオブジェクトデータ及び閉空間内に配置される第2の仮想オブジェクトのオブジェクトデータを記憶する記憶手段と、撮像手段により撮像された撮像画像を示す撮像画像データを逐次取得する撮像画像データ取得手段と、内側面と外側面とを有する第1の仮想オブジェクトの形状を、当該第1の仮想オブジェクトによって内側面が内向きになるような閉空間が構成される閉形状から、仮想カメラから内側面が見えるように当該第1の仮想オブジェクトが展開された開形状へ変形、又は開形状から閉形状へ変形させる第1のオブジェクト制御手段と、第1の仮想オブジェクトの内側面上に1以上の第2の仮想オブジェクトを配置するとともに、第1の仮想オブジェクトの閉形状から開形状への変形に応じて、第1の仮想オブジェクトの内側面に連動するように当該第2の仮想オブジェクトの位置及び姿勢を変化させる第2のオブジェクト制御手段と、撮像画像における第1の仮想オブジェクトの開形状に対応する領域の画像を、第1の仮想オブジェクトの内側面にテクスチャとして貼り付けるテクスチャマッピング手段と、テクスチャを貼り付けた第1の仮想オブジェクトと、第2の仮想オブジェクトとに基づいて、オブジェクト画像を作成するオブジェクト画像作成手段と、画面上の現実空間に、オブジェクト画像作成手段により作成されたオブジェクト画像を重ね合わせた重畳画像を、表示手段に表示させる表示制御手段とを含む。
【0048】
本発明の第4の局面に係る情報処理方法は、撮像手段により撮像画像を撮像する撮像ステップと、表示手段に画像を表示する表示ステップと、閉空間を構成する第1の仮想オブジェクトのオブジェクトデータ及び閉空間内に配置される第2の仮想オブジェクトのオブジェクトデータを記憶する記憶ステップと、撮像手段により撮像された撮像画像を示す撮像画像データを逐次取得する撮像画像データ取得ステップと、内側面と外側面とを有する第1の仮想オブジェクトの形状を、当該第1の仮想オブジェクトによって内側面が内向きになるような閉空間が構成される閉形状から、仮想カメラから内側面が見えるように当該第1の仮想オブジェクトが展開された開形状へ変形、又は開形状から閉形状へ変形させる第1のオブジェクト制御ステップと、第1の仮想オブジェクトの内側面上に1以上の第2の仮想オブジェクトを配置するとともに、第1の仮想オブジェクトの閉形状から開形状への変形に応じて、第1の仮想オブジェクトの内側面に連動するように当該第2の仮想オブジェクトの位置及び姿勢を変化させる第2のオブジェクト制御ステップと、撮像画像における第1の仮想オブジェクトの開形状に対応する領域の画像を、第1の仮想オブジェクトの内側面にテクスチャとして貼り付けるテクスチャマッピングステップと、テクスチャを貼り付けた第1の仮想オブジェクトと、第2の仮想オブジェクトとに基づいて、オブジェクト画像を作成するオブジェクト画像作成ステップと、画面上の現実空間に、オブジェクト画像作成ステップにて作成されたオブジェクト画像を重ね合わせた重畳画像を、表示ステップにて表示させる表示制御ステップとを含む。
【0049】
本発明の第2の局面に係る情報処理装置、第3の局面に係る情報処理システム及び第4の局面に係る情報処理方法によると、第1の局面に係る情報処理プログラムと同様の作用効果を発現する。
【発明の効果】
【0050】
本発明によれば、拡張現実感システムを適用して、現実世界に重ね合わせられて表示された仮想オブジェクトを、実現された自然な拡張現実感を阻害することなく、かつ、出現又は変更時に表示される画像に対してユーザに興味を抱かせるようにして、出現又は変更することができる。
【図面の簡単な説明】
【0051】
【図1】開状態におけるゲーム装置10の正面図
【図2】開状態におけるゲーム装置10の側面図
【図3】閉状態におけるゲーム装置10の左側面図、正面図、右側面図及び背面図
【図4】上側ハウジング21の内側面からスクリーンカバー27を分離した状態を示す図
【図5】図1に示す上側ハウジング21のA−A’線断面図
【図6A】3D調整スイッチ25のスライダ25aが最下点(第3の位置)に存在する様子を示す図
【図6B】3D調整スイッチ25のスライダ25aが最下点よりも上方位置(第1の位置)に存在する様子を示す図
【図6C】3D調整スイッチ25のスライダ25aが最上点(第2の位置)に存在する様子を示す図
【図7】ゲーム装置10の内部構成を示すブロック図
【図8】ゲーム装置10のメインメモリ32のメモリマップを示す図
【図9】図8の仮想オブジェクトデータを示す図
【図10】本実施形態に係る仮想オブジェクト表示処理の詳細を示すメインフローチャート
【図11】図10の折畳みアニメーション作成処理(ステップS600)の詳細を示すフローチャート
【図12】図10の展開アニメーション作成処理(ステップS800)の詳細を示すフローチャート
【図13】上側LCD22に表示されるシューティングゲームの第1ステージ開始時を示す図
【図14A】上側LCD22に表示されるアニメーション画像を示す図
【図14B】図14Aの状態で六面体展開面が出現した状態のアニメーション画像を示す図
【図14C】図14Bの状態で六面体展開面に撮像画像をテクスチャマッピングした状態を示す図
【図14D】図14Cの状態から六面体展開面が折り畳まれる途中の状態を示す図
【図14E】図14Dの状態から六面体展開面が完全に折り畳まれた状態を示す図
【図14F】図14Eの状態から六面体が展開される途中の状態を示す図
【図14G】図14Fの状態から六面体が完全に展開された状態を示す図
【図14H】図14Gの状態から六面体展開面が消滅した状態を示す図
【図15】上側LCD22に表示されるシューティングゲームの第2ステージ開始時を示す図
【図16】六面体展開面に撮像画像がテクスチャマッピングされる場合を説明する図
【発明を実施するための形態】
【0052】
(ゲーム装置の構成)
以下、本発明の実施形態に係る情報処理装置であるゲーム装置について説明する。なお、本発明は、このような装置に限定されるものではなく、このような装置において実行される情報処理プログラムであっても、このような装置に関係がある情報処理システムであっても構わない。さらに、本発明は、このような装置における情報処理方法であっても構わない。さらに、このゲーム装置において実行されるゲームは、的当てゲーム(シューティングゲームであって、このゲームのステージ移行時に的等の仮想オブジェクトが閉空間を構成する六面体に収納されて、その六面体が展開すると次のステージの仮想オブジェクトが出現するものとして説明する。しかしながら、本発明は、このようなシューティングゲームにも、閉空間が六面体で構成されることにも、限定されない。
【0053】
図1〜図3は、ゲーム装置10の外観を示す平面図である。ゲーム装置10は携帯型のゲーム装置であり、図1〜図3に示すように折り畳み可能に構成されている。図1及び図2は、開いた状態(開状態)におけるゲーム装置10を示し、図3は、閉じた状態(閉状態)におけるゲーム装置10を示している。図1は、開状態におけるゲーム装置10の正面図であり、図2は、開状態におけるゲーム装置10の右側面図である。ゲーム装置10は、撮像部によって画像を撮像し、撮像した画像を画面に表示したり、撮像した画像のデータを保存したりすることが可能である。また、ゲーム装置10は、交換可能なメモリカード内に記憶され、又は、サーバーや他のゲーム装置から受信したゲームプログラムを実行可能であり、仮想空間に設定された仮想カメラで撮像した画像などのコンピュータグラフィックス処理により生成された画像を画面に表示したりすることができる。
【0054】
まず、図1〜図3を参照して、ゲーム装置10の外観構成について説明する。図1〜図3に示されるように、ゲーム装置10は、下側ハウジング11及び上側ハウジング21を有する。下側ハウジング11と上側ハウジング21とは、開閉可能(折り畳み可能)に接続されている。本実施形態では、各ハウジング11及び21はともに横長の長方形の板状形状であり、互いの長辺部分で回転可能に接続されている。
【0055】
図1及び図2に示されるように、下側ハウジング11の上側長辺部分には、下側ハウジング11の内側面(主面)11Bに対して垂直な方向に突起する突起部11Aが設けられる。また、上側ハウジング21の下側長辺部分には、上側ハウジング21の下側面から当該下側面に垂直な方向に突起する突起部21Aが設けられる。下側ハウジング11の突起部11Aと上側ハウジング21の突起部21Aとが連結されることにより、下側ハウジング11と上側ハウジング21とが、折り畳み可能に接続される。
【0056】
(下側ハウジングの説明)
まず、下側ハウジング11の構成について説明する。図1〜図3に示すように、下側ハウジング11には、下側LCD(Liquid Crystal Display:液晶表示装置)12、タッチパネル13、各操作ボタン14A〜14L(図1、図3)、アナログスティック15、LED16A〜16B、挿入口17、及び、マイクロフォン用孔18が設けられる。以下、これらの詳細について説明する。
【0057】
図1に示すように、下側LCD12は下側ハウジング11に収納される。下側LCD12は横長形状であり、長辺方向が下側ハウジング11の長辺方向に一致するように配置される。下側LCD12は下側ハウジング11の中央に配置される。下側LCD12は、下側ハウジング11の内側面(主面)に設けられ、下側ハウジング11に設けられた開口部から当該下側LCD12の画面が露出される。ゲーム装置10を使用しない場合には閉状態としておくことによって、下側LCD12の画面が汚れたり傷ついたりすることを防止することができる。下側LCD12の画素数は、例えば、256dot×192dot(横×縦)であってもよい。下側LCD12は、後述する上側LCD22とは異なり、画像を(立体視可能ではなく)平面的に表示する表示装置である。なお、本実施形態では表示装置としてLCDを用いているが、例えばEL(Electro Luminescence:電界発光)を利用した表示装置など、他の任意の表示装置を利用してもよい。また、下側LCD12として、任意の解像度の表示装置を利用することができる。
【0058】
図1に示されるように、ゲーム装置10は、入力装置として、タッチパネル13を備えている。タッチパネル13は、下側LCD12の画面上に装着されている。なお、本実施形態では、タッチパネル13は抵抗膜方式のタッチパネルである。ただし、タッチパネルは抵抗膜方式に限らず、例えば静電容量方式等、任意の方式のタッチパネルを用いることができる。本実施形態では、タッチパネル13として、下側LCD12の解像度と同解像度(検出精度)のものを利用する。ただし、必ずしもタッチパネル13の解像度と下側LCD12の解像度が一致している必要はない。また、下側ハウジング11の上側面には挿入口17(図1及び図3(d)に示す点線)が設けられている。挿入口17は、タッチパネル13に対する操作を行うために用いられるタッチペン28を収納することができる。なお、タッチパネル13に対する入力は通常タッチペン28を用いて行われるが、タッチペン28に限らずユーザの指でタッチパネル13に対する入力をすることも可能である。
【0059】
各操作ボタン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の電源をオン/オフするために用いられる。
【0060】
アナログスティック15は、方向を指示するデバイスであり、下側ハウジング11の内側面の下側LCD12より左側領域の上部領域に設けられる。図1に示すように、十字ボタン14Aは下側LCD12より左側領域の下部領域に設けられるので、アナログスティック15は、十字ボタン14Aの上方に設けられる。また、アナログスティック15、及び、十字ボタン14Aは、下側ハウジングを把持した左手の親指で操作可能な位置に設計される。また、アナログスティック15を上部領域に設けたことにより、下側ハウジング11を把持する左手の親指が自然と位置するところにアナログスティック15が配され、十字ボタン14Aは、左手の親指を少し下にずらした位置に配される。アナログスティック15は、そのキートップが、下側ハウジング11の内側面に平行にスライドするように構成されている。アナログスティック15は、ゲーム装置10が実行するプログラムに応じて機能する。例えば、3次元仮想空間に所定のオブジェクトが登場するゲームがゲーム装置10によって実行される場合、アナログスティック15は、当該所定のオブジェクトを3次元仮想空間内で移動させるための入力装置として機能する。この場合において、所定のオブジェクトはアナログスティック15のキートップがスライドした方向に移動される。なお、アナログスティック15として、上下左右及び斜め方向の任意の方向に所定量だけ傾倒することでアナログ入力を可能としたものを用いても良い。
【0061】
十字状に配置される、ボタン14B、ボタン14C、ボタン14D、ボタン14Eの4つのボタンは、下側ハウジング11を把持する右手の親指が自然と位置するところに配置される。また、これらの4つのボタンと、アナログスティック15とは、下側LCD12を挟んで、左右対称に配置される。これにより、ゲームプログラムによっては、例えば、左利きの人が、これらの4つのボタンを使用して方向指示入力をすることも可能である。
【0062】
また、下側ハウジング11の内側面には、マイクロフォン用孔18が設けられる。マイクロフォン用孔18の下部には後述する音声入力装置としてのマイク(図7参照)が設けられ、当該マイクがゲーム装置10の外部の音を検出する。
【0063】
図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が備えるスピーカの音量を調整するために用いられる。
【0064】
図3(a)に示されるように、下側ハウジング11の左側面には開閉可能なカバー部11Cが設けられる。このカバー部11Cの内側には、ゲーム装置10とデータ保存用外部メモリ45とを電気的に接続するためのコネクタ(図示せず)が設けられる。データ保存用外部メモリ45は、コネクタに着脱自在に装着される。データ保存用外部メモリ45は、例えば、ゲーム装置10によって撮像された画像のデータを記憶(保存)するために用いられる。なお、上記コネクタ及びそのカバー部11Cは、下側ハウジング11の右側面に設けられてもよい。
【0065】
また、図3(d)に示されるように、下側ハウジング11の上側面には、ゲーム装置10とゲームプログラムを記録した外部メモリ44を挿入するための挿入口11Dが設けられ、その挿入口11Dの内部には、外部メモリ44と電気的に着脱自在に接続するためのコネクタ(図示せず)が設けられる。当該外部メモリ44がゲーム装置10に接続されることにより、所定のゲームプログラムが実行される。なお、上記コネクタ及びその挿入口11Dは、下側ハウジング11の他の側面(例えば、右側面等)に設けられてもよい。
【0066】
また、図1及び図3(c)に示されるように、下側ハウジング11の下側面にはゲーム装置10の電源のON/OFF状況をユーザに通知する第1LED16A、下側ハウジング11の右側面にはゲーム装置10の無線通信の確立状況をユーザに通知する第2LED16Bが設けられる。ゲーム装置10は他の機器との間で無線通信を行うことが可能であり、第1LED16Bは、無線通信が確立している場合に点灯する。ゲーム装置10は、例えば、IEEE802.11.b/gの規格に準拠した方式により、無線LANに接続する機能を有する。下側ハウジング11の右側面には、この無線通信の機能を有効/無効にする無線スイッチ19が設けられる(図3(c)参照)。
【0067】
なお、図示は省略するが、下側ハウジング11には、ゲーム装置10の電源となる充電式電池が収納され、下側ハウジング11の側面(例えば、上側面)に設けられた端子を介して当該電池を充電することができる。
【0068】
(上側ハウジングの説明)
次に、上側ハウジング21の構成について説明する。図1〜図3に示すように、上側ハウジング21には、上側LCD(Liquid Crystal Display:液晶表示装置)22、外側撮像部23(外側撮像部(左)23a及び外側撮像部(右)23b)、内側撮像部24、3D調整スイッチ25、及び、3Dインジケータ26が設けられる。以下、これらの詳細について説明する。
【0069】
図1に示すように、上側LCD22は上側ハウジング21に収納される。上側LCD22は、横長形状であり、長辺方向が上側ハウジング21の長辺方向に一致するように配置される。上側LCD22は上側ハウジング21の中央に配置される。上側LCD22の画面の面積は、下側LCD12の画面の面積よりも大きく設定される。また、上側LCD22の画面は、下側LCD12の画面よりも横長に設定される。すなわち、上側LCD22の画面のアスペクト比における横幅の割合は、下側LCD12の画面のアスペクト比における横幅の割合よりも大きく設定される。
【0070】
上側LCD22の画面は、上側ハウジング21の内側面(主面)21Bに設けられ、上側ハウジング21に設けられた開口部から当該上側LCD22の画面が露出される。また、図2及び図4に示すように、上側ハウジング21の内側面は、透明なスクリーンカバー27によって覆われている。図4は、上側ハウジング21の内側面からスクリーンカバー27を分解した状態を示す分解図である。当該スクリーンカバー27は、上側LCD22の画面を保護するとともに、上側LCD22と上側ハウジング21の内側面と一体的にさせ、これにより統一感を持たせている。上側LCD22の画素数は、例えば、640dot×200dot(横×縦)であってもよい。なお、本実施形態では上側LCD22は液晶表示装置であるとしたが、例えばEL(Electro Luminescence:電界発光)を利用した表示装置などが利用されてもよい。また、上側LCD22として、任意の解像度の表示装置を利用することができる。
【0071】
上側LCD22は、立体視可能な画像を表示することが可能な表示装置である。また、本実施形態では、実質的に同一の表示領域を用いて左目用画像と右目用画像が表示される。具体的には、左目用画像と右目用画像が所定単位で(例えば、1列ずつ)横方向に交互に表示される方式の表示装置である。又は、左目用画像と右目用画像とが交互に表示される方式の表示装置であってもよい。また、本実施形態では、裸眼立体視可能な表示装置である。そして、横方向に交互に表示される左目用画像と右目用画像とを左目及び右目のそれぞれに分解して見えるようにレンチキュラー方式やパララックスバリア方式(視差バリア方式)のものが用いられる。本実施形態では、上側LCD22はパララックスバリア方式のものとする。上側LCD22は、右目用画像と左目用画像とを用いて、裸眼で立体視可能な画像(立体画像)を表示する。すなわち、上側LCD22は、視差バリアを用いてユーザの左目に左目用画像をユーザの右目に右目用画像を視認させることにより、ユーザにとって立体感のある立体画像(立体視可能な画像)を表示することができる。また、上側LCD22は、上記視差バリアを無効にすることが可能であり、視差バリアを無効にした場合は、画像を平面的に表示することができる(上述した立体視とは反対の意味で平面視の画像を表示することができる。すなわち、表示された同一の画像が右目にも左目にも見えるような表示モードである)。このように、上側LCD22は、立体視可能な画像を表示する立体表示モードと、画像を平面的に表示する(平面視画像を表示する)平面表示モードとを切り替えることが可能な表示装置である。この表示モードの切り替えは、後述する3D調整スイッチ25によって行われる。
【0072】
外側撮像部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イメージセンサ等)と、レンズとを含む。レンズは、ズーム機構を有するものでもよい。
【0073】
図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の間隔は、この範囲に限らない。
【0074】
なお、本実施形態においては、外側撮像部(左)23a及び外側撮像部(右)23はハウジングに固定されており、撮像方向を変更することはできない。
【0075】
また、外側撮像部(左)23a及び外側撮像部(右)23bは、上側LCD22(上側ハウジング21)の左右方向に関して中央から対称となる位置にそれぞれ配置される。すなわち、外側撮像部(左)23a及び外側撮像部(右)23bは、上側LCD22を左右に2等分する線に対して対称の位置にそれぞれ配置される。また、外側撮像部(左)23a及び外側撮像部(右)23bは、上側ハウジング21を開いた状態において、上側ハウジング21の上部であって、上側LCD22の画面の上端よりも上方の位置の裏側に配置される。すなわち、外側撮像部(左)23a及び外側撮像部(右)23bは、上側ハウジング21の外側面であって、上側LCD22を外側面に投影した場合、投影した上側LCD22の画面の上端よりも上方に配置される。
【0076】
このように、外側撮像部23の2つの撮像部(23a及び23b)が、上側LCD22の左右方向に関して中央から対称の位置に配置されることにより、ユーザが上側LCD22を正視した場合に、外側撮像部23の撮像方向をユーザの視線方向と一致させることができる。また、外側撮像部23は、上側LCD22の画面の上端より上方の裏側の位置に配置されるため、外側撮像部23と上側LCD22とが上側ハウジング21の内部で干渉することがない。従って、外側撮像部23を上側LCD22の画面の裏側に配置する場合と比べて、上側ハウジング21を薄く構成することが可能となる。
【0077】
内側撮像部24は、上側ハウジング21の内側面(主面)21Bに設けられ、当該内側面の内向きの法線方向を撮像方向とする撮像部である。内側撮像部24は、所定の解像度を有する撮像素子(例えば、CCDイメージセンサやCMOSイメージセンサ等)と、レンズとを含む。レンズは、ズーム機構を有するものでもよい。
【0078】
図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を表している。
【0079】
このように、内側撮像部24は、外側撮像部23とは反対方向を撮像する。内側撮像部24は、上側ハウジング21の内側面であって、外側撮像部23の左右の撮像部の中間位置の裏側に設けられる。これにより、ユーザが上側LCD22を正視した際、内側撮像部24でユーザの顔を正面から撮像することができる。また、外側撮像部23の左右の撮像部と内側撮像部24とが上側ハウジング21の内部で干渉することがないため、上側ハウジング21を薄く構成することが可能となる。
【0080】
3D調整スイッチ25は、スライドスイッチであり、上述のように上側LCD22の表示モードを切り替えるために用いられるスイッチである。また、3D調整スイッチ25は、上側LCD22に表示された立体視可能な画像(立体画像)の立体感を調整するために用いられる。図1〜図3に示されるように、3D調整スイッチ25は、上側ハウジング21の内側面及び右側面の端部に設けられ、ユーザが上側LCD22を正視した場合に、当該3D調整スイッチ25を視認できる位置に設けられる。また、3D調整スイッチ25の操作部は、内側面及び右側面の両方に突出しており、どちらからも視認及び操作することができる。なお、3D調整スイッチ25以外のスイッチは全て下側ハウジング11に設けられる。
【0081】
図5は、図1に示す上側ハウジング21のA−A’線断面図である。図5に示すように、上側ハウジング21の内側面の右端部には、凹部21Cが形成され、当該凹部21Cに3D調整スイッチ25が設けられる。3D調整スイッチ25は、図1及び図2に示されるように、上側ハウジング21の正面及び右側面から視認可能に配置される。3D調整スイッチ25のスライダ25aは、所定方向(上下方向)の任意の位置にスライド可能であり、当該スライダ25aの位置に応じて上側LCD22の表示モードが設定される。
【0082】
図6Aから図6Cは、3D調整スイッチ25のスライダ25aがスライドする様子を示す図である。図6Aは、3D調整スイッチ25のスライダ25aが最下点(第3の位置)に存在する様子を示す図である。図6Bは、3D調整スイッチ25のスライダ25aが最下点よりも上方位置(第1の位置)に存在する様子を示す図である。図6Cは、3D調整スイッチ25のスライダ25aが最上点(第2の位置)に存在する様子を示す図である。
【0083】
図6Aに示すように、3D調整スイッチ25のスライダ25aが最下点位置(第3の位置)に存在する場合、上側LCD22は平面表示モードに設定され、上側LCD22の画面には平面画像が表示される(なお、上側LCD22を立体表示モードのままとして、左目用画像と右目用画像を同一の画像とすることにより平面表示してもよい)。一方、図6Bに示す位置(最下点より上側の位置(第1の位置))から図6Cに示す位置(最上点の位置(第2の位置))までの間にスライダ25aが存在する場合、上側LCD22は立体表示モードに設定される。この場合、上側LCD22の画面には立体視可能な画像が表示される。スライダ25aが第1の位置から第2の位置の間に存在する場合、スライダ25aの位置に応じて、立体画像の見え方が調整される。具体的には、スライダ25aの位置に応じて、右目用画像及び左目用画像の横方向の位置のずれ量が調整される。3D調整スイッチ25のスライダ25aは、第3の位置で固定されるように構成されており、第1の位置と第2の位置との間では上下方向に任意の位置にスライド可能に構成されている。例えば、スライダ25aは、第3の位置において、3D調整スイッチ25を形成する側面から図6Aに示す横方向に突出した凸部(図示せず)によって固定されて、所定以上の力が上方に加わらないと第3の位置よりも上方にスライドしないように構成されている。第3の位置から第1の位置にスライダ25aが存在する場合、立体画像の見え方は調整されないが、これはいわゆるあそびである。他の例においては、あそびをなくして、第3の位置と第1の位置とを同じ位置としてもよい。また、第3の位置を第1の位置と第2の位置の間としてもよい。その場合、スライダを第3の位置から第1の位置の方向に動かした場合と、第2の方向に動かした場合とで、右目用画像及び左目用画像の横方向の位置のずれ量の調整する方向が逆になる。
【0084】
なお、本実施形態のゲーム装置が実行するプログラムには、立体写真を表示するためのプログラムと、立体的なCG画像を表示するためのプログラムがある。後者のプログラムでは、左目用の仮想カメラと右目用の仮想カメラで仮想空間を撮影して、左目用画像と右目用画像を生成する。本実施形態のゲーム装置は、このようなプログラムの実行時において、3D調整スイッチ25のスライダ25aの位置に応じて、2つの仮想カメラの間隔を変更することにより、立体感を調整する。
【0085】
3Dインジケータ26は、上側LCD22が立体表示モードか否かを示す。3Dインジケータ26は、LEDであり、上側LCD22の立体表示モードが有効の場合に点灯する。なお、3Dインジケータ26は、上側LCD22が立体表示モードになっており、かつ、立体視画像を表示するプログラム処理が実行されているとき(すなわち、3D調整スイッチが上記第1の位置から上記第2の位置にあるときに、左目用画像と右目用画像が異なるような画像処理が実行されているとき)に限り、点灯するようにしてもよい。図1に示されるように、3Dインジケータ26は、上側ハウジング21の内側面に設けられ、上側LCD22の画面近傍に設けられる。このため、ユーザが上側LCD22の画面を正視した場合、ユーザは3Dインジケータ26を視認しやすい。従って、ユーザは上側LCD22の画面を視認している状態でも、上側LCD22の表示モードを容易に認識することができる。
【0086】
また、上側ハウジング21の内側面には、スピーカ孔21Eが設けられる。後述するスピーカ43からの音声がこのスピーカ孔21Eから出力される。
【0087】
(ゲーム装置10の内部構成)
次に、図7を参照して、ゲーム装置10の内部の電気的構成について説明する。図7は、ゲーム装置10の内部構成を示すブロック図である。図7に示すように、ゲーム装置10は、上述した各部に加えて、情報処理部31、メインメモリ32、外部メモリインターフェイス(外部メモリI/F)33、データ保存用外部メモリI/F34、データ保存用内部メモリ35、無線通信モジュール36、ローカル通信モジュール37、リアルタイムクロック(RTC)38、加速度センサ39、電源回路40、及びインターフェイス回路(I/F回路)41等の電子部品を備えている。これらの電子部品は、電子回路基板上に実装されて下側ハウジング11(又は上側ハウジング21でもよい)内に収納される。
【0088】
情報処理部31は、所定のプログラムを実行するためのCPU(Central Processing Unit)311、画像処理を行うGPU(Graphics Processing Unit)312等を含む情報処理手段である。本実施形態では、所定のプログラムがゲーム装置10内のメモリ(例えば外部メモリI/F33に接続された外部メモリ44やデータ保存用内部メモリ35)に記憶されている。情報処理部31のCPU311は、当該所定のプログラムを実行することによって、後述する仮想オブジェクト表示処理(図10)を実行する。なお、情報処理部31のCPU311によって実行されるプログラムは、他の機器との通信によって他の機器から取得されてもよい。また、情報処理部31は、VRAM(Video RAM)313を含む。情報処理部31のGPU312は、情報処理部31のCPU311からの命令に応じて画像を生成し、VRAM313に描画する。そして、情報処理部31のGPU312は、VRAM313に描画された画像を上側LCD22及び/又は下側LCD12に出力し、上側LCD22及び/又は下側LCD12に当該画像が表示される。
【0089】
情報処理部31には、メインメモリ32、外部メモリI/F33、データ保存用外部メモリI/F34、及び、データ保存用内部メモリ35が接続される。外部メモリI/F33は、外部メモリ44を着脱自在に接続するためのインターフェイスである。また、データ保存用外部メモリI/F34は、データ保存用外部メモリ45を着脱自在に接続するためのインターフェイスである。
【0090】
メインメモリ32は、情報処理部31(のCPU311)のワーク領域やバッファ領域として用いられる揮発性の記憶手段である。すなわち、メインメモリ32は、上記仮想オブジェクト表示処理に用いられる各種データを一時的に記憶したり、外部(外部メモリ44や他の機器等)から取得されるプログラムを一時的に記憶したりする。本実施形態では、メインメモリ32として例えばPSRAM(Pseudo−SRAM)を用いる。
【0091】
外部メモリ44は、情報処理部31によって実行されるプログラムを記憶するための不揮発性の記憶手段である。外部メモリ44は、例えば読み取り専用の半導体メモリで構成される。外部メモリ44が外部メモリI/F33に接続されると、情報処理部31は外部メモリ44に記憶されたプログラムを読み込むことができる。情報処理部31が読み込んだプログラムを実行することにより、所定の処理が行われる。データ保存用外部メモリ45は、不揮発性の読み書き可能なメモリ(例えばNAND型フラッシュメモリ)で構成され、所定のデータを格納するために用いられる。例えば、データ保存用外部メモリ45には、外側撮像部23で撮像された画像や他の機器で撮像された画像が記憶される。データ保存用外部メモリ45がデータ保存用外部メモリI/F34に接続されると、情報処理部31はデータ保存用外部メモリ45に記憶された画像を読み込み、上側LCD22及び/又は下側LCD12に当該画像を表示することができる。
【0092】
データ保存用内部メモリ35は、読み書き可能な不揮発性メモリ(例えばNAND型フラッシュメモリ)で構成され、所定のデータを格納するために用いられる。例えば、データ保存用内部メモリ35には、無線通信モジュール36を介した無線通信によってダウンロードされたデータやプログラムが格納される。
【0093】
無線通信モジュール36は、例えばIEEE802.11.b/gの規格に準拠した方式により、無線LANに接続する機能を有する。また、ローカル通信モジュール37は、所定の通信方式(例えば赤外線通信)により同種のゲーム装置との間で無線通信を行う機能を有する。無線通信モジュール36及びローカル通信モジュール37は情報処理部31に接続される。情報処理部31は、無線通信モジュール36を用いてインターネットを介して他の機器との間でデータを送受信したり、ローカル通信モジュール37を用いて同種の他のゲーム装置との間でデータを送受信したりすることができる。
【0094】
また、情報処理部31には、加速度センサ39が接続される。加速度センサ39は、3軸(xyz軸)方向に沿った直線方向の加速度(直線加速度)の大きさを検出する。加速度センサ39は、下側ハウジング11の内部に設けられる。加速度センサ39は、図1に示すように、下側ハウジング11の長辺方向をx軸、下側ハウジング11の短辺方向をy軸、下側ハウジング11の内側面(主面)に対して垂直な方向をz軸として、各軸の直線加速度の大きさを検出する。なお、加速度センサ39は、例えば静電容量式の加速度センサであるとするが、他の方式の加速度センサを用いるようにしてもよい。また、加速度センサ39は1軸又は2軸方向を検出する加速度センサであってもよい。情報処理部31は、加速度センサ39が検出した加速度を示すデータ(加速度データ)を受信して、ゲーム装置10の姿勢や動きを検出することができる。
【0095】
また、情報処理部31には、RTC38及び電源回路40が接続される。RTC38は、時間をカウントして情報処理部31に出力する。情報処理部31は、RTC38によって計時された時間に基づき現在時刻(日付)を計算する。電源回路40は、ゲーム装置10が有する電源(下側ハウジング11に収納される上記充電式電池)からの電力を制御し、ゲーム装置10の各部品に電力を供給する。
【0096】
また、情報処理部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に対して入力が行われた位置を知ることができる。
【0097】
操作ボタン14は、上記各操作ボタン14A〜14Lからなり、情報処理部31に接続される。操作ボタン14から情報処理部31へは、各操作ボタン14A〜14Iに対する入力状況(押下されたか否か)を示す操作データが出力される。情報処理部31は、操作ボタン14から操作データを取得することによって、操作ボタン14に対する入力に従った処理を実行する。
【0098】
下側LCD12及び上側LCD22は情報処理部31に接続される。下側LCD12及び上側LCD22は、情報処理部31(のGPU312)の指示に従って画像を表示する。本実施形態では、情報処理部31は、上側LCD22に立体画像(立体視可能な画像)を表示させる。
【0099】
具体的には、情報処理部31は、上側LCD22のLCDコントローラ(図示せず)と接続され、当該LCDコントローラに対して視差バリアのON/OFFを制御する。上側LCD22の視差バリアがONになっている場合、情報処理部31のVRAM313に格納された右目用画像と左目用画像とが、上側LCD22に出力される。より具体的には、LCDコントローラは、右目用画像について縦方向に1ライン分の画素データを読み出す処理と、左目用画像について縦方向に1ライン分の画素データを読み出す処理とを交互に繰り返すことによって、VRAM313から右目用画像と左目用画像とを読み出す。これにより、右目用画像及び左目用画像が、画素を縦に1ライン毎に並んだ短冊状画像に分割され、分割された右目用画像の短冊状画像と左目用画像の短冊状画像とが交互に配置された画像が、上側LCD22の画面に表示される。そして、上側LCD22の視差バリアを介して当該画像がユーザに視認されることによって、ユーザの右目に右目用画像が、ユーザの左目に左目用画像が視認される。以上により、上側LCD22の画面には立体視可能な画像が表示される。
【0100】
外側撮像部23及び内側撮像部24は、情報処理部31に接続される。外側撮像部23及び内側撮像部24は、情報処理部31の指示に従って画像を撮像し、撮像した画像データを情報処理部31に出力する。本実施形態では、情報処理部31は外側撮像部23及び内側撮像部24のいずれか一方に対して撮像指示を行い、撮像指示を受けた撮像部が画像を撮像して画像データを情報処理部31に送る。具体的には、本実施形態では、ユーザによるタッチパネル13を用いたタッチ操作によって使用する撮像部が選択される。撮像部が選択されたことを情報処理部31(CPU311)が検知し、情報処理部31が外側撮像部23又は内側撮像部24に対して撮像指示を行う。
【0101】
3D調整スイッチ25は、情報処理部31に接続される。3D調整スイッチ25は、スライダ25aの位置に応じた電気信号を情報処理部31に送信する。
【0102】
また、3Dインジケータ26は、情報処理部31に接続される。情報処理部31は、3Dインジケータ26の点灯を制御する。本実施形態では、情報処理部31は、上側LCD22が立体表示モードである場合、3Dインジケータ26を点灯させる。以上がゲーム装置10の内部構成の説明である。
【0103】
(仮想オブジェクト表示処理の詳細)
次に、図8〜図12を参照して、本実施形態に係る仮想オブジェクト表示処理の詳細について説明する。まず、仮想オブジェクト表示処理の際にメインメモリ32に記憶される主なデータについて説明する。図8は、ゲーム装置10のメインメモリ32のメモリマップを示す図である。図8に示されるように、メインメモリ32には、データ記憶領域70が設けられる。データ記憶領域70には、カメラ選択データ71、左目用画像位置データ72、右目用画像位置データ73、表示モードデータ74、操作データ75、仮想カメラデータ(位置、姿勢)76、仮想オブジェクトデータ77等が記憶される。これらのデータの他、メインメモリ32には、上記撮像処理を実行するプログラムやタッチパネル13へのタッチ位置を示すデータ、下側LCD12に表示されるカメラ選択のための画像を示すデータ等が記憶される。なお、以下においては、「撮像部」を「カメラ」という文言で代用して記載する場合がある。
【0104】
カメラ選択データ71は、現在選択されている撮像部を示すデータである。カメラ選択データ71は、現在選択されている撮像部が外側撮像部23か内側撮像部24かを示すデータである。
【0105】
左目用画像位置データ72は、外側撮像部(左)23aによって撮像された左目用画像の上側LCD22上の表示位置を示すデータであり、左目用画像の画像中心の座標値を示すデータである。右目用画像位置データ73は、外側撮像部(右)23bによって撮像された右目用画像の上側LCD22上の表示位置を示すデータであり、右目用画像の画像中心の座標値を示すデータである。
【0106】
表示モードデータ74は、上側LCD22の表示モードが立体表示モードか平面表示モードかを示すデータである。
【0107】
操作データ75は、各操作ボタン14A〜E、G〜H、及び、アナログスティック15に対して行われた操作を示すデータである。この操作データ75は、例えば、ユーザがキャラクタとして画面表示されるシューティングゲームにおいて、キャラクタを移動させる操作を示すデータであったり、キャラクタにシューティング動作させる操作を示すデータであったりする。
【0108】
仮想カメラデータ76は、後述するマーカ認識結果に基づいて算出された、マーカ座標系における仮想カメラの位置データ及び姿勢データである。
【0109】
仮想オブジェクトデータ77は、仮想空間に表示される仮想オブジェクトを示すデータであって、詳しくは、図9に示すように、例えば、シューティングゲームのステージ毎に、そのステージで表示される仮想オブジェクトに関するデータである。
【0110】
図9に示すように、この仮想オブジェクトデータは、各ステージで表示される仮想オブジェクトが、仮想オブジェクト番号をキーにした、仮想オブジェクト名称と、平面位置における位置データ(マーカ座標系)と、回転軸データとから構成される。なお、仮想オブジェクトデータの項目はこれらに限定されるものではない。
【0111】
この仮想オブジェクトデータ77に記憶される仮想オブジェクトは、後述するように、閉空間を構成する六面体が完全に展開された時に展開面に配置される仮想オブジェクトである。すなわち、これらの仮想オブジェクトは六面体で構成される閉空間内に閉じ込められる仮想オブジェクトである。なお、本実施形態における六面体は正六面体である。平面位置における位置データは、閉空間を構成する六面体が完全に展開された時に、その展開面に配置される仮想オブジェクトの位置を示す。ここで、六面体を構成する6個の展開面が、開状態から閉状態へ変形又は閉状態から開状態へ変形する場合に、展開面に配置された仮想オブジェクトもその変形に応じて位置及び姿勢が変化する。このときに、仮想オブジェクトが配置された展開面の底面側の1辺が、仮想オブジェクトの回転中心になるため、この1辺を示すデータを回転軸データとして記憶する。
【0112】
次に、仮想オブジェクト表示処理の詳細について、図10〜図12を参照して説明する。図10は、本実施形態に係る仮想オブジェクト表示処理を示すメインフローチャート(メインルーチン)である。図11は、図10のS600に示す折畳みアニメーション作成処理を示すフローチャート(サブルーチン)、図12は、図10のS800に示す展開アニメーション作成処理を示すフローチャート(サブルーチン)である。
【0113】
ゲーム装置10の電源が投入されると、ゲーム装置10の情報処理部31(CPU311)は、図示しないROMに記憶されている起動プログラムを実行し、これによってメインメモリ32等の各ユニットが初期化される。次に、データ保存用内部メモリ35に記憶された仮想オブジェクト表示プログラムがメインメモリ32に読み込まれ、情報処理部31のCPU311によって当該プログラムの実行が開始される。なお、これら以外のプログラムも用いて上側LCD22に仮想オブジェクトを含む画像が表示されるが、これら以外のプログラムは、本発明の本質的な部分との関連性が低いので、ここでは説明しない。
【0114】
なお、図10に示すステップS100〜ステップS1200の処理ループは、1フレーム(例えば1/30秒であってフレーム時間又はサイクル時間という)毎に繰り返し実行される。このプログラムが繰り返して実行されることにより、シューティングゲームにおけるステージの切り替え時において、以下のようなアニメーションが表示される。
【0115】
例えば、第1ステージのゲームが成功すると、シューティングの的を含む仮想オブジェクトが配置された位置に六面体の展開面が出現する。その六面体の展開面が折り畳まれて、第1ステージの仮想オブジェクト(シューティング対象の的)が六面体内に収納される。次いで六面体が展開されて、第2ステージの仮想オブジェクト(シューティング対象の小さい的)が表示される。そして、展開面が消去されて第2ステージ(第1ステージよりも難易度が高いステージ)が開始される。図10に示すプログラムが繰り返し実行されることにより、このようなアニメーションが、ステージの切り替え時に表示される。なお、第1ステージの仮想オブジェクトが六面体内に収納された後、六面体内において、第1ステージの仮想オブジェクトに代えて第2ステージの仮想オブジェクトが六面体の内側面に配置される。ただし、六面体の各面は仮想オブジェクトを透過しないため、第1ステージの仮想オブジェクトから第2ステージの仮想オブジェクトへの切り替えはアニメーションとして表示されないことになる。
【0116】
また、以下においては、撮像部として外側撮像部23が選択され、表示モードとして立体表示モードが選択されているとして説明する。なお、本発明の適用は、立体表示モードに限定されるものではなく、平面表示モードであっても構わない。また、以下に示すフローチャートとは別に、情報処理部31は、六面体展開面の配置情報を予め取得しているものとする。このとき、六面体展開面は、予め定められた位置に予め定められた大きさで表示されるように設定しておいても構わないし、表示されている仮想オブジェクトが六面体展開面に配置されるように、各ステージの終了時の仮想オブジェクトの配置に基づいて決定するようにしても構わない。この場合において、この六面体展開面が折り畳まれたときに収納したい全ての仮想オブジェクトが、六面体展開面のいずれかの面に配置されている必要がある。ここで、この六面体の展開面は、底面の四辺に側面(4個の面)が隣接して配置されて、いずれか1個の側面に上面が隣接するように構成されたものとする。
【0117】
まず、図10を参照して、仮想オブジェクト表示処理のメインルーチンについて説明する。ステップS100にて、情報処理部31は、カメラ画像データを取得する。具体的には、情報処理部31は、現在選択されているカメラによって撮像された画像を示す画像データを取得し、VRAM313に格納する。ここでは、外側撮像部23が選択されているため、情報処理部31は、外側撮像部23によって撮像された右実世界画像と左実世界画像とを取得する。
【0118】
ステップS200にて、情報処理部31は、外側撮像部23により撮像された画像の中からマーカを検出する。ここでは、このマーカは、白色の紙片の中央付近に四角枠が黒色で印刷され、その四角枠の中に矢印が白抜きで印刷されたものとする。しかしながら、マーカはこのような形状、模様、色彩に限定されないで、マーカの位置(ここでは4点の位置)と方向とが認識できるものであればよい。具体的には、情報処理部31は、まず、外側撮像部23により撮像された画像の中から4本の線分によって連結される連結領域を抽出し、抽出した連結領域の内部のパターン画像を決定する。そして、情報処理部31は、決定したパターン画像を示すパターン画像データと外部メモリ44に予め記憶されているパターン画像データとの類似度を計算し、計算した結果としての類似度を示す値が予め定められた閾値以上である場合に、マーカを検出する。
【0119】
ステップS300にて、情報処理部31は、マーカ検出結果に基づいて、外側撮像部23(ゲーム装置10)とマーカとの位置関係を算出する。ここで、位置関係とは、例えば、外側撮像部23とマーカの一方を基準としたときの他方の3次元の位置及び姿勢として表される。なお、位置関係を算出する処理は、従来の拡張現実感技術における処理と同様な処理で実現できる。
【0120】
ステップS400にて、情報処理部31は、外側撮像部23とマーカとの位置関係に基づいて、仮想カメラの位置及び姿勢を決定する。このとき、立体表示モードが選択されているので、情報処理部31は、外側撮像部(左)23aによるカメラ画像データに基づいて左目用の仮想カメラの位置及び姿勢を算出して、外側撮像部(右)23bによるカメラ画像データに基づいて右目用の仮想カメラの位置及び姿勢を算出する。なお、仮想カメラの位置及び姿勢は、外側撮像部23とマーカとの位置関係から仮想カメラのビュー行列を求め、求めた仮想カメラのビュー行列により求められる。決定した仮想カメラの位置及び姿勢を示す位置データ及び姿勢データは、メインメモリ32のデータ記憶領域70の仮想カメラデータ76として記憶される。また、カメラ画像データに基づいて算出された一方の仮想カメラの位置及び姿勢から、他方の仮想カメラの位置及び姿勢を算出するようにしても構わない。
【0121】
ステップS500にて、情報処理部31は、六面体を折畳み中であるか否かを判定する。このとき、第1ステージが終了して第2ステージに移行することが決定されてから、予め定められた第1の時間が経過するまでは、六面体を折畳み中であると判定される。六面体を折畳み中であると判定されると(ステップS500にてYES)、処理はS600へ移される。もしそうでないと(ステップS500にてNO)、この処理はS700へ移される。
【0122】
ステップS600にて、情報処理部31は、折畳みアニメーション作成処理を実行する。なお、このステップS600の折畳みアニメーション作成処理はサブルーチン化されており、その詳細については、後述する。その後、この処理はステップS900へ移される。
【0123】
ステップS700にて、情報処理部31は、六面体を展開中であるか否かを判定する。このとき、六面体が折り畳まれてから、予め定められた第2の時間が経過するまでは、六面体を展開中であると判定される。六面体を展開中であると判定されると(ステップS700にてYES)、処理はS800へ移される。もしそうでないと(ステップS700にてNO)、この処理はS900へ移される。
【0124】
ステップS800にて、情報処理部31は、展開アニメーション作成処理を実行する。なお、このステップS800の展開アニメーション作成処理はサブルーチン化されており、その詳細については、後述する。その後、この処理はステップS900へ移される。
【0125】
ステップS900にて、情報処理部31は、六面体の展開面を示すポリゴンの内側面に撮像画像を貼り付けて、仮想オブジェクトを示すポリゴンにオブジェクト画像を貼り付ける(テクスチャマッピング)。さらに、情報処理部31は、六面体の展開面を示すポリゴンの外側面に所定の画像を貼り付けるとともに、そのポリゴンの外側面に対向する位置の撮像画像を所定の画像(異なる画像であっても構わない)に変更する。
【0126】
ステップS1000にて、情報処理部31は、仮想カメラで、画像が貼り付けられたポリゴンを撮影してオブジェクト画像(六面体画像及び仮想オブジェクト画像)データを作成する。このとき、立体表示モードが選択されているので、左目用の仮想カメラの位置及び姿勢に基づいて左目用のオブジェクト画像を作成するとともに、右目用の仮想カメラの位置及び姿勢に基づいて右目用のオブジェクト画像を作成する。
【0127】
ステップS1100にて、情報処理部31は、カメラ画像データとオブジェクト画像データとに基づいて、カメラ画像にオブジェクト画像を重ね合わせた重畳画像を作成する。このとき、立体表示モードが選択されているので、情報処理部31は、左目用のオブジェクト画像と外側撮像部(左)23aにより撮影されたカメラ画像とを重ね合わせることにより左目用の重畳画像が作成され、右目用のオブジェクト画像と外側撮像部(右)23bにより撮影されたカメラ画像とを重ね合わせることにより右目用の重畳画像が作成される。
【0128】
なお、このステップS1100において、六面体展開面の出現処理及び六面体展開面の消滅処理も行っている。この場合における六面体展開面の出現処理において、展開面又は展開面の境界線(すなわち展開面の辺)の色が変化するようにして、六面体展開面が出現するようにできる。特に、六面体展開面が急激に出現するのではなく、撮像画像と同じような色から徐々に異なる色へ徐々に変化して六面体展開面が浮き出るように出現させることが好ましい。また、六面体展開面の消滅処理において、展開面又は展開面の境界線(すなわち展開面の辺)の色が変化するようにして、六面体展開面が消滅するようにできる。特に、六面体展開面が急激に消滅するのではなく、撮像画像と異なる色から同じような色へ徐々に変化してから六面体展開面が沈み込むように消滅させることが好ましい。
【0129】
ステップS1200にて、情報処理部31は、上側LCD22に、カメラ画像と仮想オブジェクト画像とを重ね合わせた重畳画像を表示する。このとき、立体視可能なように、左目用の重畳画像と右目用の重畳画像とが合成される。その後、この処理はステップS100へ戻されて、上述した処理を繰り返す。
【0130】
なお、六面体を折畳み中でもなく展開中でもない場合(ステップS500にてNOかつステップS700にてNO)、ステージの切り替わりではないと判定される。この場合には、仮想オブジェクト画像に撮像画像が重ね合わせられた画像が表示されて(ステップS900〜ステップS1200)、このフローチャートとは別のゲーム処理プログラムにより、ユーザがシューティングゲームを進める。
【0131】
次に、図11を参照して、折畳みアニメーション作成処理のサブルーチンについて説明する。ステップS610にて、情報処理部31は、折畳み開始からの経過時間を算出する。
【0132】
ステップS620にて、情報処理部31は、六面体展開面の折畳み開始からの経過時間に応じた回転角Aを算出する。このとき、情報処理部31は、例えば、この回転角Aを、(経過時間)×(単位時間当たりの折畳み回転角)により算出する。この回転角Aは、0度以上90度以下の角度である。ここで、経過時間をメインフローチャートのサイクルタイムを基準に算出する場合、単位時間当たりの折畳み回転角をサイクル時間当たりの回転角に設定することができる。これらの経過時間及び単位時間当たりの折畳み回転角は、六面体展開面が折り畳まれる状態が滑らかに表現されたアニメーションを実現できるように設定される。なお、上述した第1の時間で90度回転して、六面体が完全に折り畳まれる。
【0133】
ステップS630にて、情報処理部31は、六面体展開面の各面を、回転角Aだけ折り畳む方向に回転させたオブジェクトデータに更新する。このとき、六面体展開面の底面は回転せず、側面は底面側の辺を中心に回転角Aだけ回転し、上面は側面側の辺を中心に回転角Aだけ回転する。その結果、上面は底面に対して回転角Aの2倍の角度だけ回転する。
【0134】
ステップS640にて、情報処理部31は、六面体展開面上の仮想オブジェクトを、回転角Aだけ折り畳む方向に回転させたオブジェクトデータに更新する。このとき、仮想オブジェクト毎に記憶された回転軸データに基づいて、回転軸を中心に回転角Aだけ折り畳む方向に回転させたオブジェクトデータに更新される。さらに具体的には、六面体展開面の底面に配置された仮想オブジェクトは回転せず、側面に配置された仮想オブジェクトは回転軸(底面側の辺)を中心に回転角Aだけ回転し、上面に配置された仮想オブジェクトは回転軸(側面側の辺)を中心に回転角Aだけ回転する。その結果、上面に配置された仮想オブジェクトは底面に対して回転角Aの2倍の角度だけ回転する。
【0135】
ステップS650にて、情報処理部31は、回転角Aが90度であるか否か(すなわち折畳みが終了するか否か)を判定する。回転角Aが90度であると(ステップS650にてYES)、処理はステップS660へ移される。もしそうでないと(ステップS650にてNO)、この処理は終了する(メインルーチンへ戻る)。
【0136】
ステップS660にて、情報処理部31は、第1ステージの仮想オブジェクトを第2ステージの仮想オブジェクトへ入れ替える。その後、この処理は終了する(メインルーチンへ戻る)。
【0137】
次に、図12を参照して、展開アニメーション作成処理のサブルーチンについて説明する。ステップS810にて、情報処理部31は、六面体展開面の展開開始からの経過時間を算出する。
【0138】
ステップS820にて、情報処理部31は、展開開始からの経過時間に応じた回転角Bを算出する。このとき、情報処理部31は、例えば、この回転角Bを、(経過時間)×(単位時間当たりの展開回転角)により算出する。この回転角Bは、0度以上90度以下の角度である。ここで、経過時間をメインフローチャートのサイクルタイムを基準に算出する場合、単位時間当たりの展開回転角をサイクル時間当たりの回転角に設定することができる。これらの経過時間及び単位時間当たりの展開回転角は、六面体展開面が展開する状態が滑らかに表現されたアニメーションを実現できるように設定される。なお、上述した第2の時間で90度回転して、六面体が完全に展開する。また、回転角Aが増加する回転方向と回転角Bが増加する回転方向とは、逆方向である。
【0139】
ステップS830にて、情報処理部31は、六面体展開面の各面を回転角Bだけ展開する方向に回転させたオブジェクトデータに更新する。このとき、六面体展開面の底面は回転せず、側面は底面側の辺を中心に回転角Bだけ回転し、上面は側面側の辺を中心に回転角Bだけ回転する。その結果、上面は底面に対して回転角Bの2倍の角度だけ回転する。
【0140】
ステップS840にて、情報処理部31は、六面体展開面上の仮想オブジェクトを回転角Bだけ展開する方向に回転させたオブジェクトデータに更新する。このとき、データ記憶領域70の仮想オブジェクトデータ77に記憶された回転軸データに基づいて、回転軸を中心に回転角Bだけ展開する方向に回転させたオブジェクトデータに更新される。さらに具体的には、六面体展開面の底面に配置された仮想オブジェクトは回転せず、側面に配置された仮想オブジェクトは回転軸(底面側の辺)を中心に回転角Bだけ回転し、上面に配置された仮想オブジェクトは回転軸(側面側の辺)を中心に回転角Bだけ回転する。その結果、上面に配置された仮想オブジェクトは底面に対して回転角Bの2倍の角度だけ回転する。なお、このような処理は、平面位置での仮想オブジェクトを回転角(90−B)度だけ回転させる処理である。平面位置での仮想オブジェクトの位置データは、データ記憶領域70の仮想オブジェクトデータ77に、仮想オブジェクト毎に記憶されているので、記憶された位置データを用いて展開途中の仮想オブジェクトの位置が算出される。その後、この処理は終了する(メインルーチンへ戻る)。
【0141】
以上のような構造及びフローチャートに基づく、本実施形態に係るゲーム装置10の動作について、図13〜図16を参照して説明する。これらの図においては、ゲーム装置10においてシューティングゲームが行われるものとする。このゲームにおいてはユーザを模擬したキャラクタは表示されず、ユーザが特定のボタン(例えば操作ボタン14B)を押下すると、ユーザの視線方向(このゲーム装置10の向いている方向)に弓矢が発射されるものとする。そのため、ユーザの視線方向とは別の方向を向いている的を狙うときには、ゲーム装置10の方向をユーザが変化させて、的の正面まで回り込んでから弓矢を発射する必要がある。以下においては、このようにして弓矢を発射して全ての的に的中させると第1ステージがクリアされて、難易度の高い(的の数が多くなったり的の方向が異なったりする)第2ステージへ移行する場合について説明する。なお、本発明の適用は、このようなシューティングゲームに限定されない。
【0142】
(六面体の折畳み表示動作)
ユーザが、外側撮像部23を選択して、立体表示モードを選択して、上述したプログラムが実行されるように設定する。ユーザが、例えば机の上に置いたマーカを含めた範囲を外側撮像部23で撮影することにより、カメラ画像データが取得される(ステップS100)。マーカが検出されると(ステップS200)、マーカの検出結果に基づいて、外側撮像部23とマーカとの位置関係が算出され(ステップS300)、算出された位置関係に基づいて、仮想カメラの位置及び姿勢が決定される(ステップS400)。
【0143】
このようにして、シューティンゲームの第1ステージが図13に示すように開始される。外側撮像部23により撮像されたマーカを含む画像に、仮想オブジェクト(図9の第1ステージの仮想オブジェクトとして記憶された家、樹木、的A、的B及び的C)が重畳されて、かつ、立体視可能に、上側LCD22に表示されている。さらに、このときに、自然な拡張現実感で仮想オブジェクトが表示されている。
【0144】
図13に示す上側LCD22の画像を見たユーザは、以下のようにして、このシューティングゲームを行う。ユーザはゲーム装置10を移動させたり傾けたりして、上側LCD22の画面中央に的を表示させる。このように的に狙いを定めてからユーザが操作ボタン14Bを押下すると、ユーザの視線方向(このゲーム装置10の向いている方向)に、弓矢が発射されて、命中すると的が破れる。図13は、第1ステージ開始時の状態を示し、第1ステージが開始されると、ユーザは上述したようにゲームを行い、弓矢を的に命中させる。例えば、ユーザが弓矢を的A及び的Bに命中させると、図14Aに示すように、破れた的A及び的Bが表示される。なお、第1ステージにおいては、図13及び図14Aに示すように、全ての的の方向は同じであるとする。
【0145】
図14Aに示す状態から、ユーザが弓矢を的Cに命中させると、図14Bに示すように全ての的(的A、的B及び的C)が破れた状態になる。これにより、第1ステージが終了(クリア)したと判定されて、第2ステージへ移行する。
【0146】
図14Bに示すように、第1ステージが終了して第2ステージに移行することが決定されてから、第1の時間が経過するまでは、六面体を折畳み中であると判定される(ステップS500にてYES)。六面体の折畳みを開始してからの経過時間が算出され(ステップS610)、図14Bに示すように、予め定められた位置に予め定められた大きさで、回転角Aが0度である六面体展開面が表示される。このとき、図14Aの点線で示す状態から図14Bにおいて実線で示す状態に、六面体展開面の面または辺の色が徐々に変化して、六面体展開面が浮き出るようにして徐々に出現させるようにすることもできる。また、六面体展開面は厚みを有するとして説明するが、この厚みは、上側LCD22に表示されない程度の薄さであっても構わない。
【0147】
時間の経過に従って、六面体展開面が折り畳まれていく。図14Cは、図14Bの六面体展開面の内側面に撮像画像をテクスチャマッピングした状態を示し、図14Dは、図14Cの状態からさらに時間が経過した状態を示す。
【0148】
第1ステージがクリアされて、折畳み開始から第1の時間が経過するまでの折畳み中は(ステップS500にてYES)、折畳み開始からの経過時間に応じた回転角Aが算出されて(ステップS620)、六面体展開面を示すオブジェクトデータが回転角Aだけ回転させたオブジェクトデータに更新され(ステップS630)、六面体展開面上に配置された仮想オブジェクト(第1ステージの家、樹木及び的)を示すオブジェクトデータが回転角Aだけ回転させたオブジェクトデータに更新される(ステップS630)。
【0149】
このように回転角Aだけ回転された六面体の展開面を示すポリゴンの内側面に、その内側面に対応する領域の撮像画像が貼り付けられて、仮想オブジェクト(第1ステージの家、樹木及び的)を示すポリゴンにオブジェクト画像が貼り付けられる(ステップS900)。このとき、六面体の展開面を示すポリゴンの外側面に所定の画像が貼り付けられて、その外側面に対向する領域の撮像画像が所定の画像に変更される。
【0150】
このようにして、六面体展開面が折り畳まれて、図14Cに示す状態(回転角Aが0度の状態)から図14Dに示す状態(回転角Aは約45度の状態)へ変化する。図14Dに示すように、折り畳まれる途中の六面体の展開面の内側面に撮像画像がテクスチャマッピングされて、六面体の展開面上の仮想オブジェクトが六面体の展開面の回転に従って回転している。さらに、図14Dに示すように、六面体の展開面の外側面には所定の画像が貼り付けられて、その外側面に対向する領域の撮像画像が同じ所定の画像に変更されている。
【0151】
なお、このように仮想オブジェクトを回転して表示させる処理は、ワールド座標系における各仮想オブジェクトの位置及び姿勢を変更しておいて処理することにより実現することができる。本発明は、特定の方法に限定されるものではなく、六面体展開面の折畳み及び展開に応じて、その展開面上に配置された仮想オブジェクトの位置及び姿勢が変化(回転)するものであれば構わない。
【0152】
このようにして、折畳み開始から第1の時間が経過するまで、六面体の展開面を折り畳む処理が進められて、第1の時間の経過時には図14Eに示すように、六面体の展開面が完全に折り畳まれる。なお、図14Eに示すように、六面体の展開面が完全に折り畳まれたときに、クエスチョンマークを六面体の外側面に表示するようにしている。
【0153】
また、このように、第1の時間の経過時には図14Eに示すように、六面体の展開面が完全に折り畳まれ、第1ステージの仮想オブジェクトが六面体内に収納された状態になる。このとき、六面体内において、第1ステージの仮想オブジェクト(第1ステージの家、樹木及び的)に代えて第2ステージの仮想オブジェクト(第2ステージの建物、円錐及び小的)が六面体の内側面に配置される(ステップS660)。ここで、六面体の各面は仮想オブジェクトを透過しないため、第1ステージの仮想オブジェクトから第2ステージの仮想オブジェクトへの切り替えはアニメーションとして表示されない。このため、第1ステージの仮想オブジェクトが第2ステージの仮想オブジェクトへ唐突に変更されることがユーザには見えないので、ユーザに違和感を与えない。
【0154】
図14C〜図14Eに示す図は、連続的に変化している様子を表現していないが、実際には、図10に示すメインフローチャートが1/30秒程度の時間で繰り返し実行されるので、以下のようなアニメーションが表示される。ユーザが第1ステージをクリアすると、六面体展開面が出現して、六面体展開面が折り畳まれるとともに、その展開面上の仮想オブジェクト(第1ステージの家、樹木及び的)が、折り畳まれる展開面の回転とともに回転する。六面体展開面が完全に折り畳まれて、仮想オブジェクト(第1ステージの家、樹木及び的)が見えなくなる。なお、図14Eに示す六面体展開面が完全に折り畳まれた状態を所定の時間保持するようにしても構わない。
【0155】
図14C〜図14Eに示すように、例えば、現実空間の机の上にマーカを配置して机の上でこのシューティングゲームを行っている場合には、机の表面が剥がれて六面体の展開面が折畳まれるように表示されることになる。また、このとき、机ではなく現実空間の芝生の上にマーカを配置して芝生の上でこのシューティングゲームを行っている場合には、芝生が剥がれた部分には土(芝生の裏は土であるので)の画像が表示されることになる。さらに、六面体展開面の外側面にも土の画像が表示されることになる。このように、さらに自然な拡張現実感を実現している。
【0156】
図14Eに示すように六面体が折り畳まれてから、予め定められた第2の時間が経過するまでは、六面体を展開中であると判定される(ステップS700にてYES)。六面体の展開を開始してからの経過時間が算出され(ステップS810)、図14Eに示す六面体が展開を開始する。
【0157】
時間の経過に従って、六面体展開面が展開されていく。六面体展開面が完全に折り畳まれてから第2の時間が経過するまでの展開中は(ステップS700にてYES)、展開開始からの経過時間に応じた回転角Bが算出されて(ステップS820)、六面体展開面を示すオブジェクトデータが回転角Bだけ回転(ステップS630とは逆方向の回転)させたオブジェクトデータに更新され(ステップS830)、六面体展開面上に配置された仮想オブジェクト(第2ステージの建物、円錐及び小的)を示すオブジェクトデータが回転角Bだけ回転させたオブジェクトデータに更新される(ステップS830)。
【0158】
このとき、六面体展開面上に配置された仮想オブジェクト(第2ステージの建物、円錐及び小的)は、平面位置における位置データを(90−B)度だけ回転させた位置に配置されることになる。
【0159】
このように回転角Bだけ回転された六面体の展開面を示すポリゴンの内側面に撮像画像が貼り付けられて、仮想オブジェクト(第2ステージの建物、円錐及び小的)を示すポリゴンにオブジェクト画像が貼り付けられる(ステップS900)。このとき、六面体の展開面を示すポリゴンの外側面に所定の画像が貼り付けられて、そのポリゴンの外側面に対向する位置の撮像画像が所定の画像に変更される点は、上述と同じである。
【0160】
このようにして、六面体展開面が展開されて、図14Eに示す状態(回転角Bが0度の状態)から図14Fに示す状態(回転角Bは約45度の状態)へ変化する。図14Fには、図14Dのように、撮像画像がテクスチャマッピングされる状態、六面体の展開面の外側面に所定の画像がテクスチャマッピングされる状態、その外側面に対向する位置の撮像画像が同じ所定の画像に変更される状態を表現していない。しかしながら、図14Fにおいて、仮想オブジェクト(第2ステージの建物、円錐及び小的)が異なる以外は、図14Dと同じである。
【0161】
このようにして、展開開始から第2の時間が経過するまで、六面体の展開面を展開する処理が進められて、第2の時間の経過時には図14Gに示すように六面体の展開面が完全に展開される。図14Gに示すように、六面体の展開面が完全に展開されたときに、第2ステージの建物、円錐及び小的A〜小的Fが表示される。
【0162】
六面体の展開面が完全に展開されると、回転角Bが90度である六面体展開面が表示される。このとき、図14Gの実線で示す状態から図14Hにおいて点線で示す状態に、六面体展開面の面または辺の色が徐々に変化して、六面体展開面が沈み込みようにして徐々に消滅させるようにすることもできる。
【0163】
図14E〜図14Hに示す図は、図14C〜図14Eに示す図と同じように、連続的に変化している様子を表現していないが、実際には、図10に示すメインフローチャートが1/30秒程度の時間で繰り返し実行されるので、以下のようなアニメーションが表示される。折り畳まれた六面体が展開されると、その展開面上の仮想オブジェクト(第2ステージの建物、円錐及び小的)が、展開面の回転とともに回転して徐々に見え出す。六面体展開面が完全に展開すると、仮想オブジェクト(第2ステージの建物、円錐及び小的)が出現する。
【0164】
なお、図14Hに示すように、第2ステージの的は、第1ステージの的の数よりも多く、第1ステージの的よりも小さく、第1ステージの的のように方向が揃っておらず、難易度が上昇している。このようにして、図13に示す第1ステージの画面が、図15に示す第2ステージの画面に切り替えられる。
【0165】
図14D及び図14Fに示す状態は、六面体展開面の内側面に、各展開面に対応する領域の撮像画像がテクスチャマッピングされている。これを、図16を参照して説明する。図16に示すように、外側撮像部23で撮像した現実世界(現実空間)において六面体展開面が配置された6つの領域の画像が、六面体展開面の6つの内側面にテクスチャマッピングされる。このように、六面体展開面が折り畳まれる途中及び展開される途中においても、六面体展開面が配置された領域から切り取られた撮像画像が六面体展開面に表示されるので、自然な拡張現実感を実現する。
【0166】
以上のように、本実施形態に係るゲーム装置10によると、外側撮像部23で撮像した現実世界(現実空間)に、ゲームの的等の仮想オブジェクトを重ね合わせたゲームであって、自然な拡張現実感をユーザに付与できるシューティングゲームを実現することができる。この場合において、ステージの切り替わりにおいて仮想オブジェクト(特に的)を変更する必要があるが、浮き出るように出現した六面体展開面が折り畳まれて第1ステージの的が収納されて見えなくなり、六面体が展開されて第2ステージの的が見えるようになり、六面体展開面が沈み込むように消滅する。このようにステージが切り替わる(仮想オブジェクトが変更される)ために、実現された自然な拡張現実感を阻害することなく、かつ、変更時に表示される画像にユーザが興味を抱くようにして、仮想オブジェクトを変更することができる。
【0167】
(変形例)
上述した実施形態においては、マーカの位置とは別の位置に六面体展開面を出現させていた。しかしながら、マーカの位置から底面が浮き出るように、六面体展開面の位置を決定するようにしても構わない。この場合、六面体展開面の底面の大きさをマーカの大きさに合致させることも好ましい。
【0168】
また、仮想オブジェクトの配置位置、配置数又は仮想オブジェクトの大きさ等のステージの状況に応じて、六面体展開面の大きさを変更するようにしても構わない。逆に、大きな仮想オブジェクト(例えば高い樹木)については、六面体展開面を折り畳む時に、六面体に収まるように高さ方向を展開面の折畳み状況に応じて徐々に縮めるように変化するようにしても構わない。
【0169】
また、多面体は六面体に限定されず、四面体以上の閉空間を構成できる立体であれば、特に限定されない。さらに、閉空間を構成でき、かつ、その閉空間を展開できる立体であれば、特に限定されない。例えば、伸縮する布のようなもので閉空間を構成することが考えられる。
【0170】
また、本発明は、本実施形態に係るゲーム装置に限らず、任意の携帯型電子機器(例えば、PDA(Personal Digital Assistant)又は携帯電話)、パーソナルコンピュータ、カメラ等に適用することが可能である。
【0171】
また、本実施形態に係るゲーム装置10の情報処理部31が所定のプログラムを実行することによって、上述したフローチャートによる仮想オブジェクト表示処理が行われた。これに限定されず、仮想オブジェクト表示処理の一部又は全部は、ゲーム装置10が備える専用回路によって行われてもよい。
【0172】
また、上述した処理を1台のゲーム装置(情報処理装置)だけで処理するのではなく、互いに通信可能に接続された複数の情報処理装置で分担して処理するようにしても構わない。
【0173】
また、本実施形態においては、外側撮像部23により撮像したカメラ画像と仮想オブジェクト(シューティングゲームにおける的等)とを重ね合わせて上側LCD22に表示させるビデオシースルー方式を説明したが、本発明はこれに限定されない。例えば、光学シースルー方式を実現する構成であってもよい。この場合には、少なくともカメラを備えたヘッドマウンドディスプレイで構成され、ユーザはメガネのレンズ部分に相当するディスプレイ部を通して現実空間を視認できるようになっている。このディプレイ部は、現実空間を透過してユーザの目に直接導くことが可能な素材によって構成されている。さらに、このディスプレイ部にはコンピュータにより生成した仮想オブジェクトの画像を表示させることができるようになっている。これにより、ユーザは、現実空間と仮想オブジェクトの画像とが重ね合わせられた像を視認することができる。なお、ヘッドマウンドディスプレイに備えられたカメラは現実空間に配置されたマーカを検出するために用いられる。
【0174】
また、本実施形態においては、あるステージのゲームが成功すると、シューティングの的を含む仮想オブジェクトが配置された位置に六面体の展開面が出現するようになっているが、本発明はこれに限定されず、例えば、ゲームの開始時に、六面体の展開面のみが出現してからステージが現れるようになっていてもよい。この場合、その六面体の展開面が折り畳まれて、閉空間を構成する六面体となる。次いで、六面体の内側面に第1ステージの仮想オブジェクトが配置された後に、六面体が展開されて、第1ステージの仮想オブジェクトが表示される。そして、展開面が消去されて第1ステージが開始される。また、第1ステージにおいて、弓矢を発射して的に的中させたときに、的中させられた的の画像が消去されるようになっている場合には、第1ステージをクリアすると、第1ステージの的が全て消去されることになる。この場合、第1ステージから第2ステージに切り替えられるときには、ゲーム開始時と同様に、六面体の展開面のみが出現してから、六面体の展開面の折り畳みと展開を経て第2ステージが現れることになる。
【符号の説明】
【0175】
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 メインメモリ

【特許請求の範囲】
【請求項1】
撮像手段と、画面上において現実空間を視認可能な表示手段と、閉空間を構成する第1の仮想オブジェクトのオブジェクトデータ及び前記閉空間内に配置される第2の仮想オブジェクトのオブジェクトデータを記憶する記憶手段とに接続された情報処理装置のコンピュータを、
前記撮像手段により撮像された撮像画像を示す撮像画像データを逐次取得する撮像画像データ取得手段、
内側面と外側面とを有する第1の仮想オブジェクトの形状を、当該第1の仮想オブジェクトによって前記内側面が内向きになるような閉空間が構成される閉形状から、前記仮想カメラから前記内側面が見えるように当該第1の仮想オブジェクトが展開された開形状へ変形、又は前記開形状から前記閉形状へ変形させる第1のオブジェクト制御手段、
前記第1の仮想オブジェクトの前記内側面上に1以上の第2の仮想オブジェクトを配置するとともに、前記第1の仮想オブジェクトの前記閉形状から前記開形状への変形に応じて、前記第1の仮想オブジェクトの前記内側面に連動するように当該第2の仮想オブジェクトの位置及び姿勢を変化させる第2のオブジェクト制御手段、
前記撮像画像における前記第1の仮想オブジェクトの前記開形状に対応する領域の画像を、前記第1の仮想オブジェクトの前記内側面にテクスチャとして貼り付けるテクスチャマッピング手段、
前記テクスチャを貼り付けた第1の仮想オブジェクトと、前記第2の仮想オブジェクトとに基づいて、オブジェクト画像を作成するオブジェクト画像作成手段、及び
前記画面上の現実空間に、前記オブジェクト画像作成手段により作成されたオブジェクト画像を重ね合わせた重畳画像を、前記表示手段に表示させる表示制御手段として機能させる情報処理プログラム。
【請求項2】
前記第1のオブジェクト制御手段は、前記第1の仮想オブジェクトの開閉状態を連続的に変化させたアニメーション形式で、前記第1の仮想オブジェクトの形状を変形させ、
前記第2のオブジェクト制御手段は、前記アニメーションの進行度合いに応じて、前記第2の仮想オブジェクトの位置及び姿勢を変化させる、請求項1に記載の情報処理プログラム。
【請求項3】
前記第1のオブジェクト制御手段は、前記第1の仮想オブジェクトの形状を前記開形状から前記閉形状へ変形させ、前記第2のオブジェクト制御手段により前記第2の仮想オブジェクトが配置された後に、前記第1の仮想オブジェクトの形状を前記閉形状から前記開形状に変形させる、請求項2に記載の情報処理プログラム。
【請求項4】
前記第2のオブジェクト制御手段は、前記第1の仮想オブジェクトの形状が開形状であるときに当該第1の仮想オブジェクトの前記内側面上に1以上の第3の仮想オブジェクトを配置するとともに、前記第1の仮想オブジェクトの前記開形状から前記閉形状への変形に応じて、前記第1の仮想オブジェクトの前記内側面に連動するように当該第3の仮想オブジェクトの位置及び姿勢を変化させる、請求項2又は請求項3に記載の情報処理プログラム。
【請求項5】
前記第2のオブジェクト制御手段は、前記第1の仮想オブジェクトの前記開形状から前記閉形状への変形の後に、前記第3の仮想オブジェクトに代えて前記第2の仮想オブジェクトを前記第1の仮想オブジェクトの前記内側面上に配置する、請求項4に記載の情報処理プログラム。
【請求項6】
前記表示制御手段は、前記第2の仮想オブジェクトが前記閉空間を構成する面を透過しないように表示する、請求項1〜請求項5のいずれかに記載の情報処理プログラム。
【請求項7】
前記第1の仮想オブジェクトは複数の展開面から構成される多面体であって、
前記アニメーションは、前記多面体が展開された展開面が配置された第1の状態から、前記展開面が回転して前記多面体が閉空間を構成する第2の状態までを含む、請求項2〜請求項6のいずれかに記載の情報処理プログラム。
【請求項8】
前記アニメーションは、前記多面体の展開面が出現して前記第1の状態へ移行するまでを含む、請求項7に記載の情報処理プログラム。
【請求項9】
前記アニメーションは、前記展開面又は前記展開面の境界線の色が変化してから前記多面体の展開面が出現する、請求項8に記載の情報処理プログラム。
【請求項10】
前記第1の仮想オブジェクトは複数の展開面から構成される多面体であって、
前記アニメーションは、前記多面体が展開された展開面が配置された第1の状態から、前記展開面が回転して前記多面体が閉空間を構成する第2の状態を経由して、前記展開面が逆回転して前記多面体が開いて前記多面体の展開面に前記第2の仮想オブジェクトが配置された第3の状態までを含む、請求項2〜請求項6のいずれかに記載の情報処理プログラム。
【請求項11】
前記アニメーションは、前記多面体の展開面が出現して前記第1の状態へ移行するまで又は前記第3の状態から前記多面体の展開面が消えるまでを含む、請求項10に記載の情報処理プログラム。
【請求項12】
前記アニメーションは、前記展開面又は前記展開面の境界線の色が変化してから前記多面体の展開面が出現又は前記第3の状態から前記展開面又は前記展開面の境界線の色が変化してから前記多面体の展開面が消える、請求項11に記載の情報処理プログラム。
【請求項13】
前記第2のオブジェクト制御手段は、前記展開面の回転に対応させて、当該第2の仮想オブジェクトを回転することにより、当該第2の仮想オブジェクトの位置及び姿勢を変化させる、請求項7〜請求項12のいずれかに記載の情報処理プログラム。
【請求項14】
前記プログラムは、前記コンピュータを、前記展開面の外側面に所定の画像をテクスチャとして貼り付ける外側面変化手段としてさらに機能させる、請求項7〜請求項13のいずれかに記載の情報処理プログラム。
【請求項15】
前記プログラムは、前記コンピュータを、前記展開面の外側面にテクスチャとして貼り付けられた領域に対応する撮像画像の表示を変化させる変化手段としてさらに機能させる、請求項14に記載の情報処理プログラム。
【請求項16】
前記多面体は六面体である、請求項7〜請求項15のいずれかに記載の情報処理プログラム。
【請求項17】
前記プログラムは、前記コンピュータを、ユーザの操作に応じて前記第2の仮想オブジェクトを動作させる操作手段としてさらに機能させる、請求項1〜請求項16のいずれかに記載の情報処理プログラム。
【請求項18】
前記プログラムは、前記コンピュータを、
前記撮像画像データ取得手段により逐次取得された撮像画像データから特定対象物を検出する検出手段、
前記特定対象物の検出結果に基づいて、前記撮像手段と前記特定対象物との相対的位置を算出する算出手段、及び
前記算出手段による算出結果に基づいて、仮想空間内の仮想カメラを逐次設定する仮想カメラ設定手段としてさらに機能させ、
前記オブジェクト画像作成手段は、前記第1の仮想オブジェクトと前記第2の仮想オブジェクトを前記仮想カメラで撮影することにより前記オブジェクト画像を作成する、請求項1〜請求項17のいずれかに記載の情報処理プログラム。
【請求項19】
撮像手段と、
画面上において現実空間を視認可能な表示手段と、
閉空間を構成する第1の仮想オブジェクトのオブジェクトデータ及び前記閉空間内に配置される第2の仮想オブジェクトのオブジェクトデータを記憶する記憶手段と、
前記撮像手段により撮像された撮像画像を示す撮像画像データを逐次取得する撮像画像データ取得手段と、
内側面と外側面とを有する第1の仮想オブジェクトの形状を、当該第1の仮想オブジェクトによって前記内側面が内向きになるような閉空間が構成される閉形状から、前記仮想カメラから前記内側面が見えるように当該第1の仮想オブジェクトが展開された開形状へ変形、又は前記開形状から前記閉形状へ変形させる第1のオブジェクト制御手段と、
前記第1の仮想オブジェクトの前記内側面上に1以上の第2の仮想オブジェクトを配置するとともに、前記第1の仮想オブジェクトの前記閉形状から前記開形状への変形に応じて、前記第1の仮想オブジェクトの前記内側面に連動するように当該第2の仮想オブジェクトの位置及び姿勢を変化させる第2のオブジェクト制御手段と、
前記撮像画像における前記第1の仮想オブジェクトの前記開形状に対応する領域の画像を、前記第1の仮想オブジェクトの前記内側面にテクスチャとして貼り付けるテクスチャマッピング手段と、
前記テクスチャを貼り付けた第1の仮想オブジェクトと、前記第2の仮想オブジェクトとに基づいて、オブジェクト画像を作成するオブジェクト画像作成手段と、
前記画面上の現実空間に、前記オブジェクト画像作成手段により作成されたオブジェクト画像を重ね合わせた重畳画像を、前記表示手段に表示させる表示制御手段とを含む情報処理装置。
【請求項20】
撮像手段と、
画面上において現実空間を視認可能な表示手段と、
閉空間を構成する第1の仮想オブジェクトのオブジェクトデータ及び前記閉空間内に配置される第2の仮想オブジェクトのオブジェクトデータを記憶する記憶手段と、
前記撮像手段により撮像された撮像画像を示す撮像画像データを逐次取得する撮像画像データ取得手段と、
内側面と外側面とを有する第1の仮想オブジェクトの形状を、当該第1の仮想オブジェクトによって前記内側面が内向きになるような閉空間が構成される閉形状から、前記仮想カメラから前記内側面が見えるように当該第1の仮想オブジェクトが展開された開形状へ変形、又は前記開形状から前記閉形状へ変形させる第1のオブジェクト制御手段と、
前記第1の仮想オブジェクトの前記内側面上に1以上の第2の仮想オブジェクトを配置するとともに、前記第1の仮想オブジェクトの前記閉形状から前記開形状への変形に応じて、前記第1の仮想オブジェクトの前記内側面に連動するように当該第2の仮想オブジェクトの位置及び姿勢を変化させる第2のオブジェクト制御手段と、
前記撮像画像における前記第1の仮想オブジェクトの前記開形状に対応する領域の画像を、前記第1の仮想オブジェクトの前記内側面にテクスチャとして貼り付けるテクスチャマッピング手段と、
前記テクスチャを貼り付けた第1の仮想オブジェクトと、前記第2の仮想オブジェクトとに基づいて、オブジェクト画像を作成するオブジェクト画像作成手段と、
前記画面上の現実空間に、前記オブジェクト画像作成手段により作成されたオブジェクト画像を重ね合わせた重畳画像を、前記表示手段に表示させる表示制御手段とを含む情報処理システム。
【請求項21】
撮像手段により撮像画像を撮像する撮像ステップと、
表示手段に画像を表示する表示ステップと、
閉空間を構成する第1の仮想オブジェクトのオブジェクトデータ及び前記閉空間内に配置される第2の仮想オブジェクトのオブジェクトデータを記憶する記憶ステップと、
前記撮像手段により撮像された撮像画像を示す撮像画像データを逐次取得する撮像画像データ取得ステップと、
内側面と外側面とを有する第1の仮想オブジェクトの形状を、当該第1の仮想オブジェクトによって前記内側面が内向きになるような閉空間が構成される閉形状から、前記仮想カメラから前記内側面が見えるように当該第1の仮想オブジェクトが展開された開形状へ変形、又は前記開形状から前記閉形状へ変形させる第1のオブジェクト制御ステップと、
前記第1の仮想オブジェクトの前記内側面上に1以上の第2の仮想オブジェクトを配置するとともに、前記第1の仮想オブジェクトの前記閉形状から前記開形状への変形に応じて、前記第1の仮想オブジェクトの前記内側面に連動するように当該第2の仮想オブジェクトの位置及び姿勢を変化させる第2のオブジェクト制御ステップと、
前記撮像画像における前記第1の仮想オブジェクトの前記開形状に対応する領域の画像を、前記第1の仮想オブジェクトの前記内側面にテクスチャとして貼り付けるテクスチャマッピングステップと、
前記テクスチャを貼り付けた第1の仮想オブジェクトと、前記第2の仮想オブジェクトとに基づいて、オブジェクト画像を作成するオブジェクト画像作成ステップと、
前記画面上の現実空間に、前記オブジェクト画像作成ステップにて作成されたオブジェクト画像を重ね合わせた重畳画像を、前記表示ステップにて表示させる表示制御ステップとを含む情報処理方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6A】
image rotate

【図6B】
image rotate

【図6C】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14A】
image rotate

【図14B】
image rotate

【図14C】
image rotate

【図14D】
image rotate

【図14E】
image rotate

【図14F】
image rotate

【図14G】
image rotate

【図14H】
image rotate

【図15】
image rotate

【図16】
image rotate


【公開番号】特開2011−258156(P2011−258156A)
【公開日】平成23年12月22日(2011.12.22)
【国際特許分類】
【出願番号】特願2010−134568(P2010−134568)
【出願日】平成22年6月11日(2010.6.11)
【特許番号】特許第4757948号(P4757948)
【特許公報発行日】平成23年8月24日(2011.8.24)
【出願人】(000233778)任天堂株式会社 (1,115)
【出願人】(391041718)株式会社ハル研究所 (38)
【Fターム(参考)】