(57)【要約】【課題】仮想オブジェクトがあたかも実空間に存在するような感覚をユーザに与えることが可能な画像を撮影する。【解決手段】実空間に存在するマーカを外側カメラを用いて撮像した場合、当該実空間を撮像した実画像に、複数の仮想キャラクタを仮想カメラで撮像した画像が重ね合わされて上側ＬＣＤに表示される。仮想キャラクタは、マーカを基準としたマーカ座標系に配置されており、ユーザによってゲーム装置に対するボタン操作が行われた場合、仮想キャラクタの位置や姿勢が変化する。そして、ユーザによって撮影指示を示すボタン操作が行われると、表示されている画像が記憶手段に保存される。【選択図】図１０
2012068964.tif 000002
【特許請求の範囲】
【請求項１】
実カメラによって撮像された画像に仮想オブジェクト画像を重ね合わせた画像を生成する画像処理装置のコンピュータにおいて実行される画像処理プログラムであって、前記コンピュータを、
前記実カメラによって撮像された被写体の実画像を取得する実画像取得手段、
実空間における前記実カメラの位置および姿勢に応じた位置姿勢情報を取得する位置姿勢情報取得手段、
仮想空間内において、前記位置姿勢情報取得手段によって取得された位置姿勢情報に基づいて仮想カメラの位置および姿勢を設定する仮想カメラ設定手段、
ユーザによる入力手段への入力に応じて、前記仮想空間内に配置された仮想オブジェクトの少なくとも一部の位置および姿勢の少なくとも一方を変更する仮想オブジェクト変更手段、
前記仮想オブジェクト変更手段によって位置および姿勢の少なくとも一方が変更された前記仮想オブジェクトを前記仮想カメラで撮像することにより仮想オブジェクト画像を生成する仮想オブジェクト画像生成手段、
前記実画像取得手段によって取得された実画像と前記仮想オブジェクト画像生成手段によって生成された仮想オブジェクト画像とを重ね合わせた重畳画像を生成する重畳画像生成手段、および、
ユーザによる撮影指示に応じて、前記重畳画像を記憶手段に保存する保存手段、として機能させる画像処理プログラム。
【請求項２】
前記位置姿勢情報取得手段は、前記実画像取得手段によって取得された実画像に含まれる特定対象物を検出し、当該検出結果に基づいて、前記特定対象物に対する相対的な前記実カメラの位置および姿勢を取得する、請求項１に記載の画像処理プログラム。
【請求項３】
前記画像処理装置は表示手段に接続可能であり、
前記重畳画像生成手段は、前記撮影指示が行われるまで、前記実画像取得手段によって取得された実画像と前記仮想オブジェクト画像生成手段によって生成された仮想オブジェクト画像とを重ね合わせた重畳画像を繰り返し生成し、
前記撮影指示が行われるまで、前記重畳画像生成手段によって生成された重畳画像を前記表示手段に表示させる表示制御手段として更に機能させる、請求項１又は２に記載の画像処理プログラム。
【請求項４】
前記仮想オブジェクトは、第１部位および第２部位を含み、
前記仮想オブジェクト変更手段は、ユーザによる前記入力手段への入力に応じて、前記仮想オブジェクトの前記第１部位が前記仮想カメラへ向くように、当該第１部位の姿勢を変更する部位変更手段を含む、請求項１から３の何れかに記載の画像処理プログラム。
【請求項５】
前記部位変更手段は、前記第１部位が前記仮想カメラへ向くように当該第１部位の姿勢を変更した場合において、前記第２部位を基準とした前記第１部位の姿勢が第１の範囲外である場合、前記第１部位の姿勢を当該第１の範囲の上限または下限に設定する、請求項４に記載の画像処理プログラム。
【請求項６】
前記部位変更手段は、ユーザによる前記入力手段への入力があった場合に、前記撮影指示が行われるまで、前記仮想オブジェクトの前記第１部位が前記仮想カメラへ向くように、当該第１部位の姿勢を繰り返し変更する、請求項４又は５に記載の画像処理プログラム。
【請求項７】
前記実カメラはステレオカメラであり、
前記実画像取得手段は、前記ステレオカメラの左目用実カメラで撮像した左目用実画像と前記ステレオカメラの右目用実カメラで撮像した右目用実画像とを取得し、
前記位置姿勢情報取得手段は、前記ステレオカメラの左目用実カメラおよび右目用実カメラの位置および姿勢に応じた位置姿勢情報をそれぞれ取得し、
前記仮想カメラ設定手段は、前記位置姿勢情報取得手段によって取得された前記左目用実カメラの位置姿勢情報に応じて左仮想カメラの位置および姿勢を設定し、前記位置姿勢情報取得手段によって取得された前記右目用実カメラの位置姿勢情報に応じて右仮想カメラの位置および姿勢を設定し、
前記部位変更手段は、前記仮想オブジェクトの前記第１部位が前記左仮想カメラおよび前記右仮想カメラの中間の位置に向くように、前記第１部位の姿勢を変更し、
前記仮想オブジェクト画像生成手段は、前記部位変更手段によって前記第１部位の姿勢が変更された前記仮想オブジェクトを、前記左仮想カメラおよび前記右仮想カメラで撮像することにより、左目用仮想オブジェクト画像および右目用仮想オブジェクト画像を生成し、
前記重畳画像生成手段は、前記左目用実画像と前記左目用仮想オブジェクト画像とを重ね合わせた左目用重畳画像、および、前記右目用実画像と前記右目用仮想オブジェクト画像とを重ね合わせた右目用重畳画像を生成する、請求項４から６の何れかに記載の画像処理プログラム。
【請求項８】
前記仮想オブジェクト変更手段は、ユーザによる前記入力手段への入力に応じて、前記仮想オブジェクトを移動させる移動手段を含む、請求項１から７の何れかに記載の画像処理プログラム。
【請求項９】
前記仮想オブジェクト変更手段は、ユーザによる前記入力手段への入力に応じて、当該入力の方向と前記表示手段上の前記仮想オブジェクトの移動方向とが同じになるように、当該仮想オブジェクトを移動させる移動手段を含む、請求項３に記載の画像処理プログラム。
【請求項１０】
前記移動手段は、ユーザによる前記入力手段への入力に応じて前記仮想オブジェクトを移動させた場合に前記仮想空間における第２の範囲を超えるとき、当該第２の範囲に前記仮想オブジェクトの位置を修正する、請求項８に記載の画像処理プログラム。
【請求項１１】
前記仮想オブジェクト変更手段は、ユーザによる前記入力手段への入力に応じて、前記仮想オブジェクトのポーズを変更するポーズ変更手段を含む、請求項１から１０の何れかに記載の画像処理プログラム。
【請求項１２】
前記仮想空間内に配置された複数の仮想オブジェクトから１つの仮想オブジェクトを選択する選択手段として前記コンピュータをさらに機能させ、
前記仮想オブジェクト変更手段は、ユーザによる前記入力手段への入力に応じて、前記選択手段により選択された仮想オブジェクトの少なくとも一部の位置および姿勢の少なくとも一方を変更する、請求項１から１１の何れかに記載の画像処理プログラム。
【請求項１３】
前記仮想空間内に配置された複数の仮想オブジェクトから１つの仮想オブジェクトを選択する選択手段、として前記コンピュータをさらに機能させ、
前記重畳画像生成手段は、前記選択手段によって前記仮想オブジェクトが選択されたことを示すカーソルを更に重ね合わせた重畳画像を生成し、
前記仮想オブジェクト変更手段は、ユーザによる前記入力手段への入力に応じて、前記選択手段により選択された仮想オブジェクトの少なくとも一部の位置および姿勢の少なくとも一方を変更し、
前記保存手段は、ユーザによる撮影指示に応じて、前記カーソルを非表示にして前記重畳画像を記憶手段に保存する、請求項３に記載の画像処理プログラム。
【請求項１４】
実カメラによって撮像された画像に仮想オブジェクト画像を重ね合わせた画像を生成する画像処理装置であって、
前記実カメラによって撮像された被写体の実画像を取得する実画像取得手段と、
実空間における前記実カメラの位置および姿勢に応じた位置姿勢情報を取得する位置姿勢情報取得手段と、
仮想空間内において、前記位置姿勢情報取得手段によって取得された位置姿勢情報に基づいて仮想カメラの位置および姿勢を設定する仮想カメラ設定手段と、
ユーザによる入力手段への入力に応じて、前記仮想空間内に配置された仮想オブジェクトの少なくとも一部の位置および姿勢の少なくとも一方を変更する仮想オブジェクト変更手段と、
前記仮想オブジェクト変更手段によって位置および姿勢の少なくとも一方が変更された前記仮想オブジェクトを前記仮想カメラで撮像することにより仮想オブジェクト画像を生成する仮想オブジェクト画像生成手段と、
前記実画像取得手段によって取得された実画像と前記仮想オブジェクト画像生成手段によって生成された仮想オブジェクト画像とを重ね合わせた重畳画像を生成する重畳画像生成手段と、
ユーザによる撮影指示に応じて、前記重畳画像を記憶手段に保存する保存手段とを備える、画像処理装置。
【請求項１５】
実カメラによって撮像された画像に仮想オブジェクト画像を重ね合わせた画像を生成する画像処理システムであって、
前記実カメラによって撮像された被写体の実画像を取得する実画像取得手段と、
実空間における前記実カメラの位置および姿勢に応じた位置姿勢情報を取得する位置姿勢情報取得手段と、
仮想空間内において、前記位置姿勢情報取得手段によって取得された位置姿勢情報に基づいて仮想カメラの位置および姿勢を設定する仮想カメラ設定手段と、
ユーザによる入力手段への入力に応じて、前記仮想空間内に配置された仮想オブジェクトの少なくとも一部の位置および姿勢の少なくとも一方を変更する仮想オブジェクト変更手段と、
前記仮想オブジェクト変更手段によって位置および姿勢の少なくとも一方が変更された前記仮想オブジェクトを前記仮想カメラで撮像することにより仮想オブジェクト画像を生成する仮想オブジェクト画像生成手段と、
前記実画像取得手段によって取得された実画像と前記仮想オブジェクト画像生成手段によって生成された仮想オブジェクト画像とを重ね合わせた重畳画像を生成する重畳画像生成手段と、
ユーザによる撮影指示に応じて、前記重畳画像を記憶手段に保存する保存手段とを備える、画像処理システム。
【請求項１６】
実カメラによって撮像された画像に仮想オブジェクト画像を重ね合わせた画像を生成する画像処理方法であって、
前記実カメラによって撮像された被写体の実画像を取得する実画像取得ステップと、
実空間における前記実カメラの位置および姿勢に応じた位置姿勢情報を取得する位置姿勢情報取得ステップと、
仮想空間内において、前記位置姿勢情報取得ステップで取得された位置姿勢情報に基づいて仮想カメラの位置および姿勢を設定する仮想カメラ設定ステップと、
ユーザによる入力手段への入力に応じて、前記仮想空間内に配置された仮想オブジェクトの少なくとも一部の位置および姿勢の少なくとも一方を変更する仮想オブジェクト変更ステップと、
前記仮想オブジェクト変更ステップで位置および姿勢の少なくとも一方が変更された前記仮想オブジェクトを前記仮想カメラで撮像することにより仮想オブジェクト画像を生成する仮想オブジェクト画像生成ステップと、
前記実画像取得ステップで取得された実画像と前記仮想オブジェクト画像生成ステップで生成された仮想オブジェクト画像とを重ね合わせた重畳画像を生成する重畳画像生成ステップと、
ユーザによる撮影指示に応じて、前記重畳画像を記憶手段に保存する保存ステップとを備える、画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、実カメラで撮像した画像に仮想オブジェクトを重畳した画像を生成する画像処理プログラム、画像処理装置、画像処理システム、および、画像処理方法に関する。
【背景技術】
【０００２】
従来、実カメラで撮像した画像に仮想オブジェクトの画像を合成する画像合成装置が存在する（例えば、特許文献１）。具体的には、特許文献１に記載の装置では、撮像した画像内の被写体を検出し、検出した被写体の種類や状態に応じて、仮想オブジェクトの種類や合成状態を決定する。そして、撮像した画像に当該仮想オブジェクトの画像を合成した合成画像を生成し、ユーザの撮影指示があった場合に、その時点での合成画像を記録する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−２９０８４２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１では、予め大きさや向きなどが設定されている仮想オブジェクトの画像を撮像した画像に単に合成するだけであり、特許文献１の装置で撮影された写真は、仮想オブジェクトがあたかも実空間に存在するような感覚をユーザに与えるようなものではなかった。
【０００５】
それ故、本発明の目的は、仮想オブジェクトがあたかも実空間に存在するような感覚をユーザに与えることが可能な画像を撮影する画像処理技術を提供することである。
【課題を解決するための手段】
【０００６】
本発明は、上記の課題を解決するために、以下の構成を採用した。
【０００７】
本発明は、実カメラによって撮像された画像に仮想オブジェクト画像を重ね合わせた画像を生成する画像処理装置のコンピュータにおいて実行される画像処理プログラムである。当該画像処理プログラムは、上記コンピュータを、実画像取得手段、位置姿勢情報取得手段、仮想カメラ設定手段、仮想オブジェクト変更手段、仮想オブジェクト画像生成手段、重畳画像生成手段、および、保存手段として機能させる。実画像取得手段は、上記実カメラによって撮像された被写体の実画像を取得する。位置姿勢情報取得手段は、実空間における上記実カメラの位置および姿勢に応じた位置姿勢情報を取得する。仮想カメラ設定手段は、仮想空間内において、上記位置姿勢情報取得手段によって取得された位置姿勢情報に基づいて仮想カメラの位置および姿勢を設定する。仮想オブジェクト変更手段は、ユーザによる入力手段への入力に応じて、上記仮想空間内に配置された仮想オブジェクトの少なくとも一部の位置および姿勢の少なくとも一方を変更する。仮想オブジェクト画像生成手段は、上記仮想オブジェクト変更手段によって位置および姿勢の少なくとも一方が変更された上記仮想オブジェクトを上記仮想カメラで撮像することにより仮想オブジェクト画像を生成する。重畳画像生成手段は、上記実画像取得手段によって取得された実画像と上記仮想オブジェクト画像生成手段によって生成された仮想オブジェクト画像とを重ね合わせた重畳画像を生成する。保存手段は、ユーザによる撮影指示に応じて、上記重畳画像を記憶手段に保存する。
【０００８】
なお、上記位置姿勢情報取得手段が取得する実カメラの位置および姿勢に応じた位置姿勢情報は、実空間に存在する所定の対象物と上記実カメラとの相対的な位置および姿勢であってもよい。すなわち、上記位置姿勢情報は、実空間の所定の対象物を基準とした実カメラの位置および姿勢であってもよいし、実カメラを基準とした実空間の所定の対象物の位置および姿勢であってもよい。また、上記位置姿勢情報は、絶対的な位置を検出する手段（例えば、ＧＰＳ）や姿勢検出手段（例えば、角速度センサや加速度センサ、地磁気を検出する手段等）によって検出された実カメラの絶対的な位置および姿勢であってもよい。
【０００９】
上記によれば、仮想空間の仮想オブジェクトをユーザが操作し、当該操作した仮想オブジェクトを実画像に重畳した重畳画像を生成して保存することができる。これにより、仮想オブジェクトがあたかも実空間の存在するような感覚をユーザに与えることができる画像を撮影することができる。
【００１０】
また、本発明の他の構成では、上記位置姿勢情報取得手段は、上記実画像取得手段によって取得された実画像に含まれる特定対象物を検出し、当該検出結果に基づいて、上記特定対象物に対する相対的な上記実カメラの位置および姿勢を取得してもよい。
【００１１】
上記によれば、実カメラによって撮像された実画像に含まれる特定対象物に基づいて、実空間における当該特定対象物と実カメラとの相対的な位置および姿勢を取得することができる。
【００１２】
また、本発明の他の構成では、上記画像処理装置は表示手段に接続可能であってもよい。上記重畳画像生成手段は、上記撮影指示が行われるまで、上記実画像取得手段によって取得された実画像と上記仮想オブジェクト画像生成手段によって生成された仮想オブジェクト画像とを重ね合わせた重畳画像を繰り返し生成する。そして、上記画像処理プログラムは、上記コンピュータを表示制御手段として更に機能させる。表示制御手段は、上記撮影指示が行われるまで、上記重畳画像生成手段によって生成された重畳画像を上記表示手段に表示させる。
【００１３】
上記によれば、ユーザによる撮影指示が行われるまで、表示手段に重畳画像を表示させることができる。これにより、ユーザは、撮影（保存）する重畳画像を確認することができる。
【００１４】
また、本発明の他の構成では、上記仮想オブジェクトは、第１部位および第２部位を含んでもよい。この場合において、上記仮想オブジェクト変更手段は、ユーザによる上記入力手段への入力に応じて、上記仮想オブジェクトの上記第１部位が上記仮想カメラへ向くように当該第１部位の姿勢を変更する部位変更手段を含む。
【００１５】
上記によれば、仮想オブジェクトの上記第１部位を仮想カメラの方向に向くように第１部位の姿勢を変更することができる。例えば、仮想オブジェクトの顔を仮想カメラの方向に向かせることができ、あたかも仮想オブジェクトが実空間に存在するような感覚をユーザに与えることができる。
【００１６】
また、本発明の他の構成では、上記部位変更手段は、上記第１部位が上記仮想カメラへ向くように当該第１部位の姿勢を変更した場合において、上記第２部位を基準とした上記第１部位の姿勢が第１の範囲外である場合、上記第１部位の姿勢を当該第１の範囲の上限または下限に設定してもよい。
【００１７】
上記によれば、第２部位に対する第１部位の姿勢を上記第１の範囲に制限することができる。例えば、仮想オブジェクトの体と顔とが定義されている場合、顔の方向が体の方向に比べて不自然な向きにならないように、顔の方向を制御することができる。
【００１８】
また、本発明の他の構成では、上記部位変更手段は、ユーザによる上記入力手段への入力があった場合に、上記撮影指示が行われるまで、上記仮想オブジェクトの上記第１部位が上記仮想カメラへ向くように、当該第１部位の姿勢を繰り返し変更してもよい。
【００１９】
上記によれば、一旦ユーザが入力すると、撮影指示があるまで仮想オブジェクトの第１部位が常に仮想カメラに向くように第１部位の姿勢が変更されるため、無駄な入力を省略することができる。
【００２０】
また、本発明の他の構成では、上記実カメラはステレオカメラであってもよい。上記実画像取得手段は、上記ステレオカメラの左目用実カメラで撮像した左目用実画像と上記ステレオカメラの右目用実カメラで撮像した右目用実画像とを取得する。上記位置姿勢情報取得手段は、上記ステレオカメラの左目用実カメラおよび右目用実カメラの位置および姿勢に応じた位置姿勢情報をそれぞれ取得する。上記仮想カメラ設定手段は、上記位置姿勢情報取得手段によって取得された上記左目用実カメラの位置姿勢情報に応じて左仮想カメラの位置および姿勢を設定し、上記位置姿勢情報取得手段によって取得された上記右目用実カメラの位置姿勢情報に応じて右仮想カメラの位置および姿勢を設定する。上記部位変更手段は、上記仮想オブジェクトの上記第１部位が上記左仮想カメラおよび上記右仮想カメラの中間の位置に向くように、上記第１部位の姿勢を変更する。上記仮想オブジェクト画像生成手段は、上記部位変更手段によって上記第１部位の姿勢が変更された上記仮想オブジェクトを、上記左仮想カメラおよび上記右仮想カメラで撮像することにより、左目用仮想オブジェクト画像および右目用仮想オブジェクト画像を生成する。上記重畳画像生成手段は、上記左目用実画像と上記左目用仮想オブジェクト画像とを重ね合わせた左目用重畳画像、および、上記右目用実画像と上記右目用仮想オブジェクト画像とを重ね合わせた右目用重畳画像を生成する。
【００２１】
上記によれば、実空間を撮像した画像に仮想オブジェクトを重畳した立体視画像を生成することができる。この場合において、仮想オブジェクトの第１部位を左右の仮想カメラの方向に向かせることができる。このため、ユーザは、立体感のある画像を撮影することができ、かつ、より強い拡張現実感を得ることができる。
【００２２】
また、本発明の他の構成では、上記仮想オブジェクト変更手段は、ユーザによる上記入力手段への入力に応じて、上記仮想オブジェクトを移動させる移動手段を含んでもよい。
【００２３】
上記によれば、ユーザは仮想オブジェクトを仮想空間内で移動させることができ、当該仮想オブジェクトが実空間上を移動するような感覚を得ることができる。
【００２４】
また、本発明の他の構成では、上記仮想オブジェクト変更手段は、ユーザによる上記入力手段への入力に応じて、当該入力の方向と上記表示手段上の上記仮想オブジェクトの移動方向とが同じになるように、当該仮想オブジェクトを移動させる移動手段を含んでもよい。
【００２５】
上記によれば、入力手段に対する入力方向と表示上の移動方向とが一致するため、ユーザは直観的な操作で所望の方向に仮想オブジェクトを移動させることができる。
【００２６】
また、本発明の他の構成では、上記移動手段は、ユーザによる上記入力手段への入力に応じて上記仮想オブジェクトを移動させた場合に上記仮想空間における第２の範囲を超えるとき、当該第２の範囲に上記仮想オブジェクトの位置を修正してもよい。
【００２７】
上記によれば、仮想オブジェクトの移動範囲を制限することができる。
【００２８】
また、本発明の他の構成では、上記仮想オブジェクト変更手段は、ユーザによる上記入力手段への入力に応じて、上記仮想オブジェクトのポーズを変更するポーズ変更手段を含んでもよい。
【００２９】
上記によれば、ユーザは仮想オブジェクトのポーズを変更することができ、当該仮想オブジェクトが実空間に存在するような感覚を得ることができる。
【００３０】
また、本発明の他の構成では、上記画像処理プログラムは、選択手段として上記コンピュータを更に機能させてもよい。選択手段は、上記仮想空間内に配置された複数の仮想オブジェクトから１つの仮想オブジェクトを選択する。そして、上記仮想オブジェクト変更手段は、ユーザによる上記入力手段への入力に応じて、上記選択手段により選択された仮想オブジェクトの少なくとも一部の位置および姿勢の少なくとも一方を変更する。
【００３１】
上記によれば、ユーザは仮想オブジェクトを選択し、選択した仮想オブジェクトの少なくとも一部の位置又は姿勢を変更することができる。
【００３２】
また、本発明の他の構成では、上記画像処理プログラムは、選択手段として上記コンピュータを更に機能させてもよい。選択手段は、上記仮想空間内に配置された複数の仮想オブジェクトから１つの仮想オブジェクトを選択する。上記重畳画像生成手段は、上記選択手段によって上記仮想オブジェクトが選択されたことを示すカーソルを更に重ね合わせた重畳画像を生成する。上記仮想オブジェクト変更手段は、ユーザによる上記入力手段への入力に応じて、上記選択手段により選択された仮想オブジェクトの少なくとも一部の位置および姿勢の少なくとも一方を変更する。上記保存手段は、ユーザによる撮影指示に応じて、上記カーソルを非表示にして上記重畳画像を記憶手段に保存する。
【００３３】
上記によれば、撮影指示に応じて上記重畳画像を保存するまで、ユーザは表示手段に表示された重畳画像を確認しながら、仮想オブジェクトを選択して変更することができる。また、表示手段にはカーソルが重畳表示されるため、ユーザは選択した仮想オブジェクトを確認することができる。また、重畳画像が保存される際には、カーソルを非表示にすることができ、仮想オブジェクトがあたかも実空間に存在するような写真を撮影することができる。
【００３４】
また、他の形態では、上記各手段を実現する画像処理装置が構成されてもよい。また、他の形態では、上記各手段を実現する複数の要素が相互に動作することによって、１つの画像処理システムとして構成されてもよい。当該画像処理システムは、１つの装置によって構成されてもよいし、複数の装置によって構成されてもよい。
【発明の効果】
【００３５】
本発明によれば、仮想オブジェクトがあたかも実空間に存在するような感覚をユーザに与える画像を撮影することができる。
【図面の簡単な説明】
【００３６】
【図１】開状態におけるゲーム装置１０の正面図
【図２】開状態におけるゲーム装置１０の右側面図
【図３】閉状態におけるゲーム装置１０の左側面図、正面図、右側面図および背面図
【図４】ゲーム装置１０の内部構成を示すブロック図
【図５】本実施形態に係る撮影処理が実行された場合において、実空間に予め配置されたマーカ６１を外側撮像部２３で撮像したときに上側ＬＣＤ２２に表示される画像の一例を示す図
【図６】仮想空間上の座標系の定義を示す図
【図７】仮想空間に仮想キャラクタ５１が配置された様子を示す図
【図８】マーカ６１を図５とは反対方向から撮像したときに上側ＬＣＤ２２に表示される画像の一例を示す図
【図９】アナログスティック１５に対する操作に応じて仮想キャラクタ５２が移動する様子を示す図
【図１０】仮想キャラクタ５２を仮想カメラの方向に注目させた場合に上側ＬＣＤ２２に表示される画像の一例を示す図
【図１１】ゲーム装置１０のＲＡＭのメモリマップを示す図
【図１２】本実施形態に係る撮影処理の詳細を示すメインフローチャート
【図１３】マーカ認識処理（ステップＳ３）の詳細を示すフローチャート
【図１４】保存処理（ステップＳ７）の詳細を示すフローチャート
【図１５】キャラクタ移動処理（ステップＳ８）の詳細を示すフローチャート
【図１６】注目処理（ステップＳ１０）の詳細を示すフローチャート
【図１７】マーカ６１と外側撮像部（左）２３ａとの位置関係を示す図
【図１８】ステップＳ４２で算出されるカメラ方向を示す図
【図１９】カメラ方向ベクトルをＸＺ平面に投影したＸＺ平面投影ベクトルを示す図
【図２０】アナログスティック１５の入力方向を示す図
【図２１】仮想カメラの撮像方向がＹ軸と平行な方向である場合のＸＺ平面投影ベクトルを示す図
【図２２】カメラ方向がＹ軸と平行である場合において、仮想カメラの上方向とアナログスティック１５の入力方向とを示す図
【図２３】仮想キャラクタの視線方向を示す図
【発明を実施するための形態】
【００３７】
（ゲーム装置の構成）
以下、本発明の一実施形態に係るゲーム装置について説明する。図１〜図３は、ゲーム装置１０の外観を示す平面図である。ゲーム装置１０は携帯型のゲーム装置であり、図１〜図３に示すように折り畳み可能に構成されている。図１および図２は、開いた状態（開状態）におけるゲーム装置１０を示し、図３は、閉じた状態（閉状態）におけるゲーム装置１０を示している。図１は、開状態におけるゲーム装置１０の正面図であり、図２は、開状態におけるゲーム装置１０の右側面図である。ゲーム装置１０は、撮像部によって画像を撮像し、撮像した画像を画面に表示したり、撮像した画像のデータを保存したりすることが可能である。また、ゲーム装置１０は、交換可能なメモリカード内に記憶され、または、サーバや他のゲーム装置から受信したゲームプログラムを実行可能であり、仮想空間に設定された仮想カメラで撮像した画像などのコンピュータグラフィックス処理により生成された画像を画面に表示したりすることができる。
【００３８】
まず、図１〜図３を参照して、ゲーム装置１０の外観構成について説明する。図１〜図３に示されるように、ゲーム装置１０は、下側ハウジング１１および上側ハウジング２１を有する。下側ハウジング１１と上側ハウジング２１とは、開閉可能（折り畳み可能）に接続されている。本実施形態では、各ハウジング１１および２１はともに横長の長方形の板状形状であり、互いの長辺部分で回転可能に接続されている。
【００３９】
図１および図２に示されるように、下側ハウジング１１の上側長辺部分には、下側ハウジング１１の内側面（主面）１１Ｂに対して垂直な方向に突起する突起部１１Ａが設けられる。また、上側ハウジング２１の下側長辺部分には、上側ハウジング２１の下側面から当該下側面に垂直な方向に突起する突起部２１Ａが設けられる。下側ハウジング１１の突起部１１Ａと上側ハウジング２１の突起部２１Ａとが連結されることにより、下側ハウジング１１と上側ハウジング２１とが、折り畳み可能に接続される。
【００４０】
（下側ハウジングの説明）
まず、下側ハウジング１１の構成について説明する。図１〜図３に示すように、下側ハウジング１１には、下側ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ：液晶表示装置）１２、タッチパネル１３、各操作ボタン１４Ａ〜１４Ｌ（図１、図３）、アナログスティック１５、ＬＥＤ１６Ａ〜１６Ｂ、挿入口１７、および、マイクロフォン用孔１８が設けられる。以下、これらの詳細について説明する。
【００４１】
図１に示すように、下側ＬＣＤ１２は下側ハウジング１１に収納される。下側ＬＣＤ１２は横長形状であり、長辺方向が下側ハウジング１１の長辺方向に一致するように配置される。下側ＬＣＤ１２は下側ハウジング１１の中央に配置される。下側ＬＣＤ１２は、下側ハウジング１１の内側面（主面）に設けられ、下側ハウジング１１に設けられた開口部から当該下側ＬＣＤ１２の画面が露出される。ゲーム装置１０を使用しない場合には閉状態としておくことによって、下側ＬＣＤ１２の画面が汚れたり傷ついたりすることを防止することができる。下側ＬＣＤ１２の画素数は、例えば、２５６ｄｏｔ×１９２ｄｏｔ（横×縦）であってもよい。下側ＬＣＤ１２は、後述する上側ＬＣＤ２２とは異なり、画像を（立体視可能ではなく）平面的に表示する表示装置である。なお、本実施形態では表示装置としてＬＣＤを用いているが、例えばＥＬ（Ｅｌｅｃｔｒｏ  Ｌｕｍｉｎｅｓｃｅｎｃｅ：電界発光）を利用した表示装置など、他の任意の表示装置を利用してもよい。また、下側ＬＣＤ１２として、任意の解像度の表示装置を利用することができる。
【００４２】
図１に示されるように、ゲーム装置１０は、入力装置として、タッチパネル１３を備えている。タッチパネル１３は、下側ＬＣＤ１２の画面上に装着されている。なお、本実施形態では、タッチパネル１３は抵抗膜方式のタッチパネルである。ただし、タッチパネルは抵抗膜方式に限らず、例えば静電容量方式等、任意の方式のタッチパネルを用いることができる。本実施形態では、タッチパネル１３として、下側ＬＣＤ１２の解像度と同解像度（検出精度）のものを利用する。ただし、必ずしもタッチパネル１３の解像度と下側ＬＣＤ１２の解像度が一致している必要はない。また、下側ハウジング１１の上側面には挿入口１７（図１および図３（ｄ）に示す点線）が設けられている。挿入口１７は、タッチパネル１３に対する操作を行うために用いられるタッチペン２８を収納することができる。なお、タッチパネル１３に対する入力は通常タッチペン２８を用いて行われるが、タッチペン２８に限らずユーザの指でタッチパネル１３に対する入力をすることも可能である。
【００４３】
各操作ボタン１４Ａ〜１４Ｌは、所定の入力を行うための入力装置である。図１に示されるように、下側ハウジング１１の内側面（主面）には、各操作ボタン１４Ａ〜１４Ｌのうち、十字ボタン１４Ａ（方向入力ボタン１４Ａ）、ａボタン１４Ｂ、ｂボタン１４Ｃ、ｘボタン１４Ｄ、ｙボタン１４Ｅ、電源ボタン１４Ｆ、セレクトボタン１４Ｊ、ＨＯＭＥボタン１４Ｋ、およびスタートボタン１４Ｌが、設けられる。十字ボタン１４Ａは、十字の形状を有しており、上下左右の方向を指示するボタンを有している。ボタン１４Ｂ、ボタン１４Ｃ、ボタン１４Ｄ、ボタン１４Ｅは、十字状に配置される。ボタン１４Ａ〜１４Ｅ、セレクトボタン１４Ｊ、ＨＯＭＥボタン１４Ｋ、およびスタートボタン１４Ｌには、ゲーム装置１０が実行するプログラムに応じた機能が適宜割り当てられる。例えば、十字ボタン１４Ａは選択操作等に用いられ、各操作ボタン１４Ｂ〜１４Ｅは例えば決定操作やキャンセル操作等に用いられる。また、電源ボタン１４Ｆは、ゲーム装置１０の電源をオン／オフするために用いられる。
【００４４】
アナログスティック１５は、方向を指示するデバイスであり、下側ハウジング１１の内側面の下側ＬＣＤ１２より左側領域の上部領域に設けられる。図１に示すように、十字ボタン１４Ａは下側ＬＣＤ１２より左側領域の下部領域に設けられるので、アナログスティック１５は、十字ボタン１４Ａの上方に設けられる。また、アナログスティック１５、および、十字ボタン１４Ａは、下側ハウジングを把持した左手の親指で操作可能な位置に設計される。また、アナログスティック１５を上部領域に設けたことにより、下側ハウジング１１を把持する左手の親指が自然と位置するところにアナログスティック１５が配され、十字ボタン１４Ａは、左手の親指を少し下にずらした位置に配される。アナログスティック１５は、そのキートップが、下側ハウジング１１の内側面に平行にスライドするように構成されている。アナログスティック１５は、ゲーム装置１０が実行するプログラムに応じて機能する。例えば、３次元仮想空間に所定のオブジェクトが登場するゲームがゲーム装置１０によって実行される場合、アナログスティック１５は、当該所定のオブジェクトを３次元仮想空間内で移動させるための入力装置として機能する。この場合において、所定のオブジェクトはアナログスティック１５のキートップがスライドした方向に移動される。なお、アナログスティック１５として、上下左右および斜め方向の任意の方向に所定量だけ傾倒することでアナログ入力を可能としたものを用いても良い。
【００４５】
十字状に配置される、ａボタン１４Ｂ、ｂボタン１４Ｃ、ｘボタン１４Ｄ、ｙボタン１４Ｅの４つのボタンは、下側ハウジング１１を把持する右手の親指が自然と位置するところに配置される。また、これらの４つのボタンと、アナログスティック１５とは、下側ＬＣＤ１２を挟んで、左右対称に配置される。これにより、ゲームプログラムによっては、例えば、左利きの人が、これらの４つのボタンを使用して方向指示入力をすることも可能である。
【００４６】
また、下側ハウジング１１の内側面には、マイクロフォン用孔１８が設けられる。マイクロフォン用孔１８の下部には後述する音声入力装置としてのマイク（図４参照）が設けられ、当該マイクがゲーム装置１０の外部の音を検出する。
【００４７】
図３（ａ）は閉状態におけるゲーム装置１０の左側面図であり、図３（ｂ）は閉状態におけるゲーム装置１０の正面図であり、図３（ｃ）は閉状態におけるゲーム装置１０の右側面図であり、図３（ｄ）は閉状態におけるゲーム装置１０の背面図である。図３（ｂ）および（ｄ）に示されるように、下側ハウジング１１の上側面には、Ｌボタン１４ＧおよびＲボタン１４Ｈが設けられている。Ｌボタン１４Ｇは、下側ハウジング１１の上面の左端部に設けられ、Ｒボタン１４Ｈは、下側ハウジング１１の上面の右端部に設けられる。また、図３（ａ）に示されるように、下側ハウジング１１の左側面には、音量ボタン１４Ｉが設けられる。音量ボタン１４Ｉは、ゲーム装置１０が備えるスピーカの音量を調整するために用いられる。
【００４８】
図３（ａ）に示されるように、下側ハウジング１１の左側面には開閉可能なカバー部１１Ｃが設けられる。このカバー部１１Ｃの内側には、ゲーム装置１０とデータ保存用外部メモリ４５とを電気的に接続するためのコネクタ（図示せず）が設けられる。データ保存用外部メモリ４５は、コネクタに着脱自在に装着される。データ保存用外部メモリ４５は、例えば、ゲーム装置１０によって撮像された画像のデータを記憶（保存）するために用いられる。なお、上記コネクタおよびそのカバー部１１Ｃは、下側ハウジング１１の右側面に設けられてもよい。
【００４９】
また、図３（ｄ）に示されるように、下側ハウジング１１の上側面には、ゲーム装置１０とゲームプログラムを記録した外部メモリ４４を挿入するための挿入口１１Ｄが設けられ、その挿入口１１Ｄの内部には、外部メモリ４４と電気的に着脱自在に接続するためのコネクタ（図示せず）が設けられる。当該外部メモリ４４がゲーム装置１０に接続されることにより、所定のゲームプログラムが実行される。なお、上記コネクタおよびその挿入口１１Ｄは、下側ハウジング１１の他の側面（例えば、右側面等）に設けられてもよい。
【００５０】
また、図１および図３（ｃ）に示されるように、下側ハウジング１１の下側面にはゲーム装置１０の電源のＯＮ／ＯＦＦ状況をユーザに通知する第１ＬＥＤ１６Ａ、下側ハウジング１１の右側面にはゲーム装置１０の無線通信の確立状況をユーザに通知する第２ＬＥＤ１６Ｂが設けられる。ゲーム装置１０は他の機器との間で無線通信を行うことが可能であり、第２ＬＥＤ１６Ｂは、無線通信が確立している場合に点灯する。ゲーム装置１０は、例えば、ＩＥＥＥ８０２．１１．ｂ／ｇの規格に準拠した方式により、無線ＬＡＮに接続する機能を有する。下側ハウジング１１の右側面には、この無線通信の機能を有効／無効にする無線スイッチ１９が設けられる（図３（ｃ）参照）。
【００５１】
なお、図示は省略するが、下側ハウジング１１には、ゲーム装置１０の電源となる充電式電池が収納され、下側ハウジング１１の側面（例えば、上側面）に設けられた端子を介して当該電池を充電することができる。
【００５２】
（上側ハウジングの説明）
次に、上側ハウジング２１の構成について説明する。図１〜図３に示すように、上側ハウジング２１には、上側ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ：液晶表示装置）２２、外側撮像部２３（外側撮像部（左）２３ａおよび外側撮像部（右）２３ｂ）、内側撮像部２４、３Ｄ調整スイッチ２５、および、３Ｄインジケータ２６が設けられる。以下、これらの詳細について説明する。
【００５３】
図１に示すように、上側ＬＣＤ２２は上側ハウジング２１に収納される。上側ＬＣＤ２２は、横長形状であり、長辺方向が上側ハウジング２１の長辺方向に一致するように配置される。上側ＬＣＤ２２は上側ハウジング２１の中央に配置される。上側ＬＣＤ２２の画面の面積は、下側ＬＣＤ１２の画面の面積よりも大きく設定される。また、上側ＬＣＤ２２の画面は、下側ＬＣＤ１２の画面よりも横長に設定される。すなわち、上側ＬＣＤ２２の画面のアスペクト比における横幅の割合は、下側ＬＣＤ１２の画面のアスペクト比における横幅の割合よりも大きく設定される。
【００５４】
上側ＬＣＤ２２の画面は、上側ハウジング２１の内側面（主面）２１Ｂに設けられ、上側ハウジング２１に設けられた開口部から当該上側ＬＣＤ２２の画面が露出される。また、図２に示すように、上側ハウジング２１の内側面は、透明なスクリーンカバー２７によって覆われている。当該スクリーンカバー２７は、上側ＬＣＤ２２の画面を保護するとともに、上側ＬＣＤ２２と上側ハウジング２１の内側面と一体的にさせ、これにより統一感を持たせている。上側ＬＣＤ２２の画素数は、例えば、６４０ｄｏｔ×２００ｄｏｔ（横×縦）であってもよい。なお、本実施形態では上側ＬＣＤ２２は液晶表示装置であるとしたが、例えばＥＬ（Ｅｌｅｃｔｒｏ  Ｌｕｍｉｎｅｓｃｅｎｃｅ：電界発光）を利用した表示装置などが利用されてもよい。また、上側ＬＣＤ２２として、任意の解像度の表示装置を利用することができる。
【００５５】
上側ＬＣＤ２２は、立体視可能な画像（立体視画像、立体画像ともいう）を表示することが可能な表示装置である。また、本実施例では、実質的に同一の表示領域を用いて左目用画像と右目用画像が表示される。具体的には、左目用画像と右目用画像が所定単位で（例えば、１列ずつ）横方向に交互に表示される方式の表示装置である。または、左目用画像と右目用画像とが交互に表示される方式の表示装置であってもよい。また、本実施例では、裸眼立体視可能な表示装置である。そして、横方向に交互に表示される左目用画像と右目用画像とを左目および右目のそれぞれに分解して見えるようにレンチキュラー方式やパララックスバリア方式（視差バリア方式）のものが用いられる。本実施形態では、上側ＬＣＤ２２はパララックスバリア方式のものとする。上側ＬＣＤ２２は、右目用画像と左目用画像とを用いて、裸眼で立体視可能な画像（立体画像）を表示する。すなわち、上側ＬＣＤ２２は、視差バリアを用いてユーザの左目に左目用画像をユーザの右目に右目用画像を視認させることにより、ユーザにとって立体感のある立体画像（立体視可能な画像）を表示することができる。また、上側ＬＣＤ２２は、上記視差バリアを無効にすることが可能であり、視差バリアを無効にした場合は、画像を平面的に表示することができる（上述した立体視とは反対の意味で平面視の画像を表示することができる。すなわち、表示された同一の画像が右目にも左目にも見えるような表示モードである）。このように、上側ＬＣＤ２２は、立体視可能な画像を表示する立体表示モードと、画像を平面的に表示する（平面視画像を表示する）平面表示モードとを切り替えることが可能な表示装置である。この表示モードの切り替えは、後述する３Ｄ調整スイッチ２５によって行われる。
【００５６】
外側撮像部２３は、上側ハウジング２１の外側面（上側ＬＣＤ２２が設けられた主面と反対側の背面）２１Ｄに設けられた２つの撮像部（２３ａおよび２３ｂ）の総称である。外側撮像部（左）２３ａと外側撮像部（右）２３ｂの撮像方向は、いずれも当該外側面２１Ｄの外向きの法線方向である。また、これらの撮像部はいずれも、上側ＬＣＤ２２の表示面（内側面）の法線方向と１８０度反対の方向に設計される。すなわち、外側撮像部（左）２３ａの撮像方向および外側撮像部（右）２３ｂの撮像方向は、平行である。外側撮像部（左）２３ａと外側撮像部（右）２３ｂとは、ゲーム装置１０が実行するプログラムによって、ステレオカメラとして使用することが可能である。また、プログラムによっては、２つの外側撮像部（２３ａおよび２３ｂ）のいずれか一方を単独で用いて、外側撮像部２３を非ステレオカメラとして使用することも可能である。また、プログラムによっては、２つの外側撮像部（２３ａおよび２３ｂ）で撮像した画像を合成してまたは補完的に使用することにより撮像範囲を広げた撮像をおこなうことも可能である。本実施形態では、外側撮像部２３は、外側撮像部（左）２３ａおよび外側撮像部（右）２３ｂの２つの撮像部で構成される。外側撮像部（左）２３ａおよび外側撮像部（右）２３ｂは、それぞれ所定の共通の解像度を有する撮像素子（例えば、ＣＣＤイメージセンサやＣＭＯＳイメージセンサ等）と、レンズとを含む。レンズは、ズーム機構を有するものでもよい。
【００５７】
図１の破線および図３（ｂ）の実線で示されるように、外側撮像部２３を構成する外側撮像部（左）２３ａおよび外側撮像部（右）２３ｂは、上側ＬＣＤ２２の画面の横方向と平行に並べられて配置される。すなわち、２つの撮像部を結んだ直線が上側ＬＣＤ２２の画面の横方向と平行になるように、外側撮像部（左）２３ａおよび外側撮像部（右）２３ｂが配置される。図１の破線で示す２３ａおよび２３ｂは、上側ハウジング２１の内側面とは反対側の外側面に存在する外側撮像部（左）２３ａおよび外側撮像部（右）２３ｂをそれぞれ表している。図１に示すように、ユーザが上側ＬＣＤ２２の画面を正面から視認した場合に、外側撮像部（左）２３ａは左側に外側撮像部（右）２３ｂは右側にそれぞれ位置している。外側撮像部２３をステレオカメラとして機能させるプログラムが実行されている場合、外側撮像部（左）２３ａは、ユーザの左目で視認される左目用画像を撮像し、外側撮像部（右）２３ｂは、ユーザの右目で視認される右目用画像を撮像する。外側撮像部（左）２３ａおよび外側撮像部（右）２３ｂの間隔は、人間の両目の間隔程度に設定され、例えば、３０ｍｍ〜７０ｍｍの範囲で設定されてもよい。なお、外側撮像部（左）２３ａおよび外側撮像部（右）２３ｂの間隔は、この範囲に限らない。
【００５８】
なお、本実施例においては、外側撮像部（左）２３ａおよび外側撮像部（右）２３はハウジングに固定されており、撮像方向を変更することはできない。
【００５９】
また、外側撮像部（左）２３ａおよび外側撮像部（右）２３ｂは、上側ＬＣＤ２２（上側ハウジング２１）の左右方向に関して中央から対称となる位置にそれぞれ配置される。すなわち、外側撮像部（左）２３ａおよび外側撮像部（右）２３ｂは、上側ＬＣＤ２２を左右に２等分する線に対して対称の位置にそれぞれ配置される。また、外側撮像部（左）２３ａおよび外側撮像部（右）２３ｂは、上側ハウジング２１を開いた状態において、上側ハウジング２１の上部であって、上側ＬＣＤ２２の画面の上端よりも上方の位置の裏側に配置される。すなわち、外側撮像部（左）２３ａおよび外側撮像部（右）２３ｂは、上側ハウジング２１の外側面であって、上側ＬＣＤ２２を外側面に投影した場合、投影した上側ＬＣＤ２２の画面の上端よりも上方に配置される。
【００６０】
このように、外側撮像部２３の２つの撮像部（２３ａおよび２３ｂ）が、上側ＬＣＤ２２の左右方向に関して中央から対称の位置に配置されることにより、ユーザが上側ＬＣＤ２２を正視した場合に、外側撮像部２３の撮像方向をユーザの視線方向と一致させることができる。また、外側撮像部２３は、上側ＬＣＤ２２の画面の上端より上方の裏側の位置に配置されるため、外側撮像部２３と上側ＬＣＤ２２とが上側ハウジング２１の内部で干渉することがない。従って、外側撮像部２３を上側ＬＣＤ２２の画面の裏側に配置する場合と比べて、上側ハウジング２１を薄く構成することが可能となる。
【００６１】
内側撮像部２４は、上側ハウジング２１の内側面（主面）２１Ｂに設けられ、当該内側面の内向きの法線方向を撮像方向とする撮像部である。内側撮像部２４は、所定の解像度を有する撮像素子（例えば、ＣＣＤイメージセンサやＣＭＯＳイメージセンサ等）と、レンズとを含む。レンズは、ズーム機構を有するものでもよい。
【００６２】
図１に示すように、内側撮像部２４は、上側ハウジング２１を開いた状態において、上側ハウジング２１の上部であって、上側ＬＣＤ２２の画面の上端よりも上方に配置され、上側ハウジング２１の左右方向に関して中央の位置（上側ハウジング２１（上側ＬＣＤ２２の画面）を左右に２等分する線の線上）に配置される。具体的には、図１および図３（ｂ）に示されるように、内側撮像部２４は、上側ハウジング２１の内側面であって、外側撮像部２３の左右の撮像部（外側撮像部（左）２３ａおよび外側撮像部（右）２３ｂ）の中間の裏側の位置に配置される。すなわち、上側ハウジング２１の外側面に設けられた外側撮像部２３の左右の撮像部を上側ハウジング２１の内側面に投影した場合、当該投影した左右の撮像部の中間に、内側撮像部２４が設けられる。図３（ｂ）で示される破線２４は、上側ハウジング２１の内側面に存在する内側撮像部２４を表している。
【００６３】
このように、内側撮像部２４は、外側撮像部２３とは反対方向を撮像する。内側撮像部２４は、上側ハウジング２１の内側面であって、外側撮像部２３の左右の撮像部の中間位置の裏側に設けられる。これにより、ユーザが上側ＬＣＤ２２を正視した際、内側撮像部２４でユーザの顔を正面から撮像することができる。また、外側撮像部２３の左右の撮像部と内側撮像部２４とが上側ハウジング２１の内部で干渉することがないため、上側ハウジング２１を薄く構成することが可能となる。
【００６４】
３Ｄ調整スイッチ２５は、スライドスイッチであり、上述のように上側ＬＣＤ２２の表示モードを切り替えるために用いられるスイッチである。また、３Ｄ調整スイッチ２５は、上側ＬＣＤ２２に表示された立体視可能な画像（立体画像）の立体感を調整するために用いられる。図１〜図３に示されるように、３Ｄ調整スイッチ２５は、上側ハウジング２１の内側面および右側面の端部に設けられ、ユーザが上側ＬＣＤ２２を正視した場合に、当該３Ｄ調整スイッチ２５を視認できる位置に設けられる。また、３Ｄ調整スイッチ２５の操作部は、内側面および右側面の両方に突出しており、どちらからも視認および操作することができる。なお、３Ｄ調整スイッチ２５以外のスイッチは全て下側ハウジング１１に設けられる。
【００６５】
３Ｄ調整スイッチ２５は、図１および図２に示されるように、上側ハウジング２１の正面および右側面から視認可能に配置される。３Ｄ調整スイッチ２５のスライダ２５ａは、所定方向（上下方向）の任意の位置にスライド可能であり、当該スライダ２５ａの位置に応じて上側ＬＣＤ２２の表示モードが設定されたり、立体画像の立体感が調整されてもよい。例えば、３Ｄ調整スイッチ２５のスライダ２５ａの位置に応じて、後述する仮想カメラ（仮想ステレオカメラ）のカメラ間距離が設定されてもよい。また、当該仮想ステレオカメラの左仮想カメラによって撮像された左目用画像と右仮想カメラによって撮像された右目用画像との位置関係が調整されてもよい。具体的には、例えば、３Ｄ調整スイッチ２５のスライダ２５ａが最上点（図１および図２では上方向）に存在する場合、上記左目用画像と右目用画像との横方向（上側ＬＣＤ２２の画面の横方向；図１の左右方向）の位置のずれが上限値に設定される。このように左目用画像と右目用画像の横方向のずれが上限値に設定されると、２つの画像の視差がより大きくなる。このため、ユーザが視差バリアを通して上側ＬＣＤ２２に表示された２つの画像を見ると、上側ＬＣＤ２２の画面から画像がより手前方向に飛び出したように見える。このように、３Ｄ調整スイッチ２５を用いて、２つの画像の視差が調整されてもよい。
【００６６】
３Ｄインジケータ２６は、上側ＬＣＤ２２が立体表示モードか否かを示す。３Ｄインジケータ２６は、ＬＥＤであり、上側ＬＣＤ２２の立体表示モードが有効の場合に点灯する。なお、３Ｄインジケータ２６は、上側ＬＣＤ２２が立体表示モードになっており、かつ、立体視画像を表示するプログラム処理が実行されているときに限り、点灯するようにしてもよい。図１に示されるように、３Ｄインジケータ２６は、上側ハウジング２１の内側面に設けられ、上側ＬＣＤ２２の画面近傍に設けられる。このため、ユーザが上側ＬＣＤ２２の画面を正視した場合、ユーザは３Ｄインジケータ２６を視認しやすい。従って、ユーザは上側ＬＣＤ２２の画面を視認している状態でも、上側ＬＣＤ２２の表示モードを容易に認識することができる。
【００６７】
また、上側ハウジング２１の内側面には、スピーカ孔２１Ｅが設けられる。後述するスピーカ４３からの音声がこのスピーカ孔２１Ｅから出力される。
【００６８】
（ゲーム装置１０の内部構成）
次に、図４を参照して、ゲーム装置１０の内部の電気的構成について説明する。図４は、ゲーム装置１０の内部構成を示すブロック図である。図４に示すように、ゲーム装置１０は、上述した各部に加えて、情報処理部３１、メインメモリ３２、外部メモリインターフェイス（外部メモリＩ／Ｆ）３３、データ保存用外部メモリＩ／Ｆ３４、データ保存用内部メモリ３５、無線通信モジュール３６、ローカル通信モジュール３７、リアルタイムクロック（ＲＴＣ）３８、加速度センサ３９、電源回路４０、およびインターフェイス回路（Ｉ／Ｆ回路）４１等の電子部品を備えている。これらの電子部品は、電子回路基板上に実装されて下側ハウジング１１（または上側ハウジング２１でもよい）内に収納される。
【００６９】
情報処理部３１は、所定のプログラムを実行するためのＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３１１、画像処理を行うＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３１２等を含む情報処理手段である。本実施形態では、所定のプログラムがゲーム装置１０内のメモリ（例えば外部メモリＩ／Ｆ３３に接続された外部メモリ４４やデータ保存用内部メモリ３５）に記憶されている。情報処理部３１のＣＰＵ３１１は、当該所定のプログラムを実行することによって、後述する処理（図１２）を実行する。なお、情報処理部３１のＣＰＵ３１１によって実行されるプログラムは、他の機器との通信によって他の機器から取得されてもよい。また、情報処理部３１は、ＶＲＡＭ（Ｖｉｄｅｏ  ＲＡＭ）３１３を含む。情報処理部３１のＧＰＵ３１２は、情報処理部３１のＣＰＵ３１１からの命令に応じて画像を生成し、ＶＲＡＭ３１３に描画する。そして、情報処理部３１のＧＰＵ３１２は、ＶＲＡＭ３１３に描画された画像を上側ＬＣＤ２２及び／又は下側ＬＣＤ１２に出力し、上側ＬＣＤ２２及び／又は下側ＬＣＤ１２に当該画像が表示される。
【００７０】
情報処理部３１には、メインメモリ３２、外部メモリＩ／Ｆ３３、データ保存用外部メモリＩ／Ｆ３４、および、データ保存用内部メモリ３５が接続される。外部メモリＩ／Ｆ３３は、外部メモリ４４を着脱自在に接続するためのインターフェイスである。また、データ保存用外部メモリＩ／Ｆ３４は、データ保存用外部メモリ４５を着脱自在に接続するためのインターフェイスである。
【００７１】
メインメモリ３２は、情報処理部３１（のＣＰＵ３１１）のワーク領域やバッファ領域として用いられる揮発性の記憶手段である。すなわち、メインメモリ３２は、上記画像処理に用いられる各種データを一時的に記憶したり、外部（外部メモリ４４や他の機器等）から取得されるプログラムを一時的に記憶したりする。本実施形態では、メインメモリ３２として例えばＰＳＲＡＭ（Ｐｓｅｕｄｏ−ＳＲＡＭ）を用いる。
【００７２】
外部メモリ４４は、情報処理部３１によって実行されるプログラムを記憶するための不揮発性の記憶手段である。外部メモリ４４は、例えば読み取り専用の半導体メモリで構成される。外部メモリ４４が外部メモリＩ／Ｆ３３に接続されると、情報処理部３１は外部メモリ４４に記憶されたプログラムを読み込むことができる。情報処理部３１が読み込んだプログラムを実行することにより、所定の処理が行われる。データ保存用外部メモリ４５は、不揮発性の読み書き可能なメモリ（例えばＮＡＮＤ型フラッシュメモリ）で構成され、所定のデータを格納するために用いられる。例えば、データ保存用外部メモリ４５には、外側撮像部２３で撮像された画像や他の機器で撮像された画像が記憶される。データ保存用外部メモリ４５がデータ保存用外部メモリＩ／Ｆ３４に接続されると、情報処理部３１はデータ保存用外部メモリ４５に記憶された画像を読み込み、上側ＬＣＤ２２及び／又は下側ＬＣＤ１２に当該画像を表示することができる。
【００７３】
データ保存用内部メモリ３５は、読み書き可能な不揮発性メモリ（例えばＮＡＮＤ型フラッシュメモリ）で構成され、所定のデータを格納するために用いられる。例えば、データ保存用内部メモリ３５には、無線通信モジュール３６を介した無線通信によってダウンロードされたデータやプログラムが格納される。
【００７４】
無線通信モジュール３６は、例えばＩＥＥＥ８０２．１１．ｂ／ｇの規格に準拠した方式により、無線ＬＡＮに接続する機能を有する。また、ローカル通信モジュール３７は、所定の通信方式（例えば赤外線通信）により同種のゲーム装置との間で無線通信を行う機能を有する。無線通信モジュール３６およびローカル通信モジュール３７は情報処理部３１に接続される。情報処理部３１は、無線通信モジュール３６を用いてインターネットを介して他の機器との間でデータを送受信したり、ローカル通信モジュール３７を用いて同種の他のゲーム装置との間でデータを送受信したりすることができる。
【００７５】
また、情報処理部３１には、加速度センサ３９が接続される。加速度センサ３９は、３軸（ｘｙｚ軸）方向に沿った直線方向の加速度（直線加速度）の大きさを検出する。加速度センサ３９は、下側ハウジング１１の内部に設けられる。加速度センサ３９は、図１に示すように、下側ハウジング１１の長辺方向をｘ軸、下側ハウジング１１の短辺方向をｙ軸、下側ハウジング１１の内側面（主面）に対して垂直な方向をｚ軸として、各軸の直線加速度の大きさを検出する。なお、加速度センサ３９は、例えば静電容量式の加速度センサであるとするが、他の方式の加速度センサを用いるようにしてもよい。また、加速度センサ３９は１軸又は２軸方向を検出する加速度センサであってもよい。情報処理部３１は、加速度センサ３９が検出した加速度を示すデータ（加速度データ）を受信して、ゲーム装置１０の姿勢や動きを検出する。本実施形態では、情報処理部３１は、加速度センサ３９が検出した加速度に基づいて、ゲーム装置１０の姿勢（傾き）を判定する。
【００７６】
また、情報処理部３１には、ＲＴＣ３８および電源回路４０が接続される。ＲＴＣ３８は、時間をカウントして情報処理部３１に出力する。情報処理部３１は、ＲＴＣ３８によって計時された時間に基づき現在時刻（日付）を計算する。電源回路４０は、ゲーム装置１０が有する電源（下側ハウジング１１に収納される上記充電式電池）からの電力を制御し、ゲーム装置１０の各部品に電力を供給する。
【００７７】
また、情報処理部３１には、Ｉ／Ｆ回路４１が接続される。Ｉ／Ｆ回路４１には、マイク４２およびスピーカ４３が接続される。具体的には、Ｉ／Ｆ回路４１には、図示しないアンプを介してスピーカ４３が接続される。マイク４２は、ユーザの音声を検知して音声信号をＩ／Ｆ回路４１に出力する。アンプは、Ｉ／Ｆ回路４１からの音声信号を増幅し、音声をスピーカ４３から出力させる。また、タッチパネル１３はＩ／Ｆ回路４１に接続される。Ｉ／Ｆ回路４１は、マイク４２およびスピーカ４３（アンプ）の制御を行う音声制御回路と、タッチパネルの制御を行うタッチパネル制御回路とを含む。音声制御回路は、音声信号に対するＡ／Ｄ変換およびＤ／Ａ変換を行ったり、音声信号を所定の形式の音声データに変換したりする。タッチパネル制御回路は、タッチパネル１３からの信号に基づいて所定の形式のタッチ位置データを生成して情報処理部３１に出力する。タッチ位置データは、タッチパネル１３の入力面において入力が行われた位置の座標を示す。なお、タッチパネル制御回路は、タッチパネル１３からの信号の読み込み、および、タッチ位置データの生成を所定時間に１回の割合で行う。情報処理部３１は、タッチ位置データを取得することにより、タッチパネル１３に対して入力が行われた位置を知ることができる。
【００７８】
操作ボタン１４は、上記各操作ボタン１４Ａ〜１４Ｌからなり、情報処理部３１に接続される。操作ボタン１４から情報処理部３１へは、各操作ボタン１４Ａ〜１４Ｉに対する入力状況（押下されたか否か）を示す操作データが出力される。情報処理部３１は、操作ボタン１４から操作データを取得することによって、操作ボタン１４に対する入力に従った処理を実行する。
【００７９】
下側ＬＣＤ１２および上側ＬＣＤ２２は情報処理部３１に接続される。下側ＬＣＤ１２および上側ＬＣＤ２２は、情報処理部３１（のＧＰＵ３１２）の指示に従って画像を表示する。
【００８０】
具体的には、情報処理部３１は、上側ＬＣＤ２２のＬＣＤコントローラ（図示せず）と接続され、当該ＬＣＤコントローラに対して視差バリアのＯＮ／ＯＦＦを制御する。上側ＬＣＤ２２の視差バリアがＯＮになっている場合、情報処理部３１のＶＲＡＭ３１３に格納された右目用画像と左目用画像とが、上側ＬＣＤ２２に出力される。より具体的には、ＬＣＤコントローラは、右目用画像について縦方向に１ライン分の画素データを読み出す処理と、左目用画像について縦方向に１ライン分の画素データを読み出す処理とを交互に繰り返すことによって、ＶＲＡＭ３１３から右目用画像と左目用画像とを読み出す。これにより、右目用画像および左目用画像が、画素を縦に１ライン毎に並んだ短冊状画像に分割され、分割された右目用画像の短冊状画像と左目用画像の短冊状画像とが交互に配置された画像が、上側ＬＣＤ２２の画面に表示される。そして、上側ＬＣＤ２２の視差バリアを介して当該画像がユーザに視認されることによって、ユーザの右目に右目用画像が、ユーザの左目に左目用画像が視認される。以上により、上側ＬＣＤ２２の画面には立体視可能な画像が表示される。
【００８１】
外側撮像部２３および内側撮像部２４は、情報処理部３１に接続される。外側撮像部２３および内側撮像部２４は、情報処理部３１の指示に従って画像を撮像し、撮像した画像データを情報処理部３１に出力する。例えば、情報処理部３１は外側撮像部２３および内側撮像部２４のいずれか一方に対して撮像指示を行い、撮像指示を受けた撮像部が画像を撮像して画像データを情報処理部３１に送る。例えば、ユーザによるタッチパネル１３を用いたタッチ操作によって使用する撮像部が選択される。撮像部が選択されたことを情報処理部３１（ＣＰＵ３１１）が検知し、情報処理部３１が外側撮像部２３または内側撮像部２４に対して撮像指示を行う。
【００８２】
３Ｄ調整スイッチ２５は、情報処理部３１に接続される。３Ｄ調整スイッチ２５は、スライダ２５ａの位置に応じた電気信号を情報処理部３１に送信する。
【００８３】
また、３Ｄインジケータ２６は、情報処理部３１に接続される。情報処理部３１は、３Ｄインジケータ２６の点灯を制御する。本実施形態では、情報処理部３１は、上側ＬＣＤ２２が立体表示モードである場合、３Ｄインジケータ２６を点灯させる。以上がゲーム装置１０の内部構成の説明である。
【００８４】
また、情報処理部３１には、角速度センサ４６が接続される。角速度センサ４６は、各軸（ｘ軸、ｙ軸、ｚ軸）周りの角速度を検出する。ゲーム装置１０は、角速度センサ４６が逐次検出する角速度に基づいて、実空間におけるゲーム装置１０の姿勢を算出することができる。具体的には、ゲーム装置１０は、角速度センサ４６によって検出された各軸周りの角速度を時間で積分することによって、各軸周りのゲーム装置１０の回転角を算出することができる。
【００８５】
（撮影処理の概要）
次に、本実施形態に係るゲーム装置１０において実行される撮影処理（画像処理）の概要について説明する。図５は、本実施形態に係る撮影処理が実行された場合において、実空間に予め配置されたマーカ６１を外側撮像部２３で撮像したときに上側ＬＣＤ２２に表示される画像の一例を示す図である。
【００８６】
図５に示すように、ゲーム装置１０の外側撮像部２３の撮像方向の実空間には、マーカ６１が配置される。マーカ６１は、長方形の紙であって、その中心に矢印が描かれている。マーカ６１の長辺は、中心に描かれた矢印の方向と平行である。ゲーム装置１０の情報処理部３１（ＣＰＵ３１１）は、外側撮像部２３によって撮像された実画像に対して、例えばパターンマッチング等の画像処理を行うことによって、当該画像に含まれるマーカ６１を検出することができる。外側撮像部２３によって撮像された実画像中にマーカ６１が検出された場合、上側ＬＣＤ２２には、外側撮像部２３によって撮像された実画像に仮想キャラクタが重ね合わされて表示される。外側撮像部２３によって撮像された実画像中にマーカ６１が検出されない場合は、上側ＬＣＤ２２にマーカ６１が検出されていないことを示すメッセージが表示されて、仮想キャラクタは表示されない。
【００８７】
具体的には、マーカ６１が検出された場合、上側ＬＣＤ２２には、外側撮像部２３によって撮像された実画像（マーカ６１と背景を含む実空間を撮像した画像）に、仮想キャラクタ５１〜５３、カーソル５５、および、表示バー５６が重畳表示される。仮想キャラクタ５１〜５３は、仮想空間に存在するキャラクタであり、人を模した仮想オブジェクトである。より具体的には、上側ＬＣＤ２２には、マーカ６１の上に仮想キャラクタ５２が乗っている様子が表示される。また、当該仮想キャラクタ５２の左側（画面上の左側）には仮想キャラクタ５１が、仮想キャラクタ５２の右側（画面上の右側）には仮想キャラクタ５３が表示される。なお、カーソル５５は、現在選択されている仮想キャラクタを示すためのものである。また、表示バー５６は、ゲーム装置１０の操作方法をユーザに知らせるために表示される。
【００８８】
上側ＬＣＤ２２に表示される画像は立体視可能な画像である。すなわち、外側撮像部２３によって撮像された実画像は、外側撮像部（左）２３ａによって撮像された左目用実画像と外側撮像部（右）２３ｂによって撮像された右目用実画像とを含む。また、仮想キャラクタ５１〜５３は、仮想空間に存在する仮想ステレオカメラ（左仮想カメラおよび右仮想カメラ）によって撮像されて、上記実画像に重畳表示される。具体的には、外側撮像部（左）２３ａによって撮像された左目用実画像に、左仮想カメラで仮想キャラクタを撮像した画像が重ね合わされて、左目用重畳画像が生成される。また、外側撮像部（右）２３ｂによって撮像された右目用実画像に、右仮想カメラで仮想キャラクタを撮像した画像が重ね合わされて、右目用重畳画像が生成される。そして、上側ＬＣＤ２２にこれら２つの重畳画像が表示されて、視差バリアを介してユーザの左目に左目用重畳画像が、ユーザの右目に右目用重畳画像が視認される。これにより、ユーザは立体的に画像を視認することができる。
【００８９】
仮想キャラクタ５１〜５３は、仮想空間に配置されたオブジェクトである。図６は、仮想空間上の座標系の定義を示す図である。仮想空間は、マーカ６１の中心を原点としたＸＹＺ座標系（マーカ座標系）によって定義される。マーカ座標系は、マーカ６１の矢印と同じ方向にＺ軸、矢印方向を基準として右向き（右方向）にＸ軸、マーカ６１に対して垂直上向き（上方向）にＹ軸が設定される。このように、実空間に配置されたマーカ６１を基準として仮想空間の座標系が定義されることにより、実空間と仮想空間とを対応付けることができる。このようにして定義された仮想空間上に仮想キャラクタ５１〜５３が配置される。例えば、仮想キャラクタ５２は、マーカ座標系の原点（０，０，０）に配置され、その向き（姿勢）は、Ｘ軸をＹ軸周りに４５度回転させた方向に設定される。また、仮想キャラクタ５１および５３は、ＸＺ平面上の所定の位置に配置され、その向きは、仮想キャラクタ５２と同じに設定される。
【００９０】
図７は、仮想空間に仮想キャラクタ５２が配置された様子を示す図である。図７に示すように、マーカ座標系の原点には、仮想キャラクタ５２が配置され、当該仮想キャラクタ５２は、仮想空間内に配置された左仮想カメラ５８ａおよび右仮想カメラ５８ｂによって撮像される。左仮想カメラ５８ａは、ユーザの左目で視認される仮想空間の画像を撮像するためのものであり、右仮想カメラ５８ｂは、ユーザの右目で視認される仮想空間の画像を撮像するためのものである。具体的には、左仮想カメラ５８ａのマーカ座標系における位置および姿勢は、実空間の外側撮像部（左）２３ａの位置および姿勢と一致される。また、右仮想カメラ５８ｂのマーカ座標系における位置および姿勢は、実空間の外側撮像部（右）２３ｂの位置および姿勢と一致される。
【００９１】
このようにマーカ６１に基づいて仮想空間が定義され、当該仮想空間に仮想キャラクタ５１〜５３が配置された場合において、外側撮像部２３の位置や撮像方向を変化させると、上側ＬＣＤ２２に表示される仮想キャラクタ５１〜５３も変化する。図８は、マーカ６１を図５とは反対方向から撮像したときに上側ＬＣＤ２２に表示される画像の一例を示す図である。図８では、ゲーム装置１０（外側撮像部２３）の位置および姿勢を固定して、図５に示すマーカ６１を、その中心を通り当該マーカ６１に垂直な軸の周りに１８０度回転させた場合に、上側ＬＣＤ２２に表示される画像が示されている。あるいは、図８では、図５に示すマーカ６１を固定して、ゲーム装置１０をマーカ６１の中心を通り当該マーカ６１に垂直な軸の周りに１８０度回転させた場合に、上側ＬＣＤ２２に表示される画像が示されている。
【００９２】
図８に示すように、実空間におけるゲーム装置１０（外側撮像部２３）とマーカ６１との位置関係（相対的な位置関係；距離や姿勢）が変化すると、上側ＬＣＤ２２に表示される仮想キャラクタ５１〜５３も変化する。具体的には、図５に示すゲーム装置１０とマーカ６１との位置関係では仮想キャラクタ５１〜５３の正面が表示されるが、図８に示すゲーム装置１０とマーカ６１との位置関係（図５とは反対方向）では仮想キャラクタ５１〜５３の背面が表示される。すなわち、外側撮像部２３の位置や撮像方向を変化させると、その変化に応じて、左右の仮想カメラの位置や撮像方向も変化する。これにより、仮想キャラクタ５１〜５３は、あたかも実空間に存在するマーカ６１の上または周辺に実在するかのように見える。なお、上記マーカ６１とゲーム装置１０との位置関係に応じて仮想キャラクタの表示を変化させることは、公知の拡張現実感技術を用いて実現することができる。
【００９３】
次に、ユーザによる仮想キャラクタの操作について説明する。まず、アナログスティック１５を用いた操作について説明する。図９は、アナログスティック１５に対する操作に応じて仮想キャラクタ５２が移動する様子を示す図である。
【００９４】
図９に示すように、ユーザがアナログスティック１５を所定の方向にスライドさせると（アナログスティック１５を用いて所定の方向を指示すると）、カーソル５５で選択されている仮想キャラクタ５２が当該方向に移動する。例えば、ユーザがアナログスティック１５を用いて上方向を指示すると（アナログスティック１５を上方向にスライドさせると）、仮想キャラクタ５２はＸＺ平面上を歩くように移動して、上側ＬＣＤ２２の画面の上方向に移動する。また、例えば、ユーザがアナログスティック１５を用いて左方向を指示すると、仮想キャラクタ５２はＸＺ平面上を歩くように移動して、上側ＬＣＤ２２の画面の左方向に移動する。この場合において、仮想キャラクタ５２は、仮想空間のＸＺ平面上を移動する。仮想空間における移動方向と、上側ＬＣＤ２２の画面上の移動方向は必ずしも一致しない。すなわち、上側ＬＣＤ２２の画面上の移動方向は、仮想空間を仮想カメラで撮像して上側ＬＣＤ２２に表示した場合の表示上の移動方向である。このように、ユーザがアナログスティック１５で指示した方向に、仮想キャラクタ５２の表示上の位置が変化する。
【００９５】
次に、仮想キャラクタをゲーム装置１０（仮想カメラ）に注目させることについて説明する。図１０は、仮想キャラクタを仮想カメラの方向に注目させた場合に上側ＬＣＤ２２に表示される画像の一例を示す図である。図１０では、仮想キャラクタ５１〜５３の右側面が表示されるような位置関係でマーカ６１とゲーム装置１０（外側撮像部２３）とが配置された場合に、仮想キャラクタ５１〜５３がユーザの操作によって仮想カメラ（５８ａおよび５８ｂ）に注目する様子が示されている。上述のように、仮想カメラと外側撮像部２３とは、位置および姿勢が一致するため、仮想キャラクタを仮想カメラに注目させることは、仮想キャラクタを外側撮像部２３に注目させることを意味する。具体的には、図１０のように仮想キャラクタ５１〜５３の右側面が表示されている場合に、ユーザが例えばｘボタン１４Ｄを押すと、全ての仮想キャラクタ５１〜５３は、ゲーム装置１０の方向に顔を向ける。仮想キャラクタ５１〜５３が仮想カメラに注目すると、仮想キャラクタ５１〜５３の視線は仮想カメラ、すなわち、外側撮像部２３に固定されるため、ユーザがゲーム装置１０を動かしても、仮想キャラクタ５１〜５３は常に仮想カメラの方向を向く。すなわち、一度ユーザがｘボタン１４Ｄを押すと、カメラ注目モードとなって、仮想キャラクタ５１〜５３は、常に仮想カメラに注目する。なお、カメラ注目モードの状態において、再びユーザがｘボタン１４Ｄを押すと、カメラ注目モードが解除されて、各仮想キャラクタの顔は、体の向きに応じた方向を向くようになる。このように、ユーザは、操作手段（入力手段）に対する操作（入力）によって仮想キャラクタをゲーム装置１０の方向に注目させることができる。
【００９６】
なお、他の操作によって、仮想キャラクタのポーズが変更される。例えば、ユーザがａボタン１４Ｂまたはｂボタン１４Ｃを押すと、選択されている仮想キャラクタが立った状態から座った状態になったり、仮想キャラクタが手を上げたり、下ろしたりする。このようにして、ユーザは、各仮想キャラクタのポーズを変更することができる。また、仮想キャラクタの選択変更は、ｙボタン１４Ｅを押すことにより行われる。例えば、ｙボタン１４Ｅが１回押されると、カーソル５５が仮想キャラクタ５３の頭上に移動して、仮想キャラクタ５３が選択される。
【００９７】
また、別の操作によって、仮想キャラクタの表情が変更される。例えば、ユーザが十字ボタン１４Ａの左右方向のボタンを押すと、選択された仮想キャラクタが怒ったり笑ったりする。このようにして、ユーザは、各仮想キャラクタの表情を変更することができる。
【００９８】
以上のように、ユーザは、上側ＬＣＤ２２を見ながらボタン操作によって各仮想キャラクタの位置やポーズ、表情を変更させたり、仮想キャラクタをカメラに注目させたりすることができる。ユーザがボタン操作している間やゲーム装置１０を実空間内で移動させている間、上側ＬＣＤ２２に表示される画像はリアルタイムに変化する。これにより、ユーザは、各仮想キャラクタの位置、ポーズ、表情や向き、あるいはゲーム装置１０とマーカ６１との位置関係等を変化させることで、撮影する写真の構図をある程度自由に決定することができる。その後、ユーザは、所定のボタンを押すことにより、上側ＬＣＤ２２に表示された画像を撮影（保存）することができる。例えば、Ｌボタン１４ＧまたはＲボタン１４Ｈが押されると、当該ボタンが押されたときに表示されていた画像が静止画として上側ＬＣＤ２２に表示されるとともに、当該静止画が保存用バッファ（メインメモリ３２等に設けられたバッファ領域）に保存される。その後、さらに所定のボタンが押されると当該静止画が不揮発性の記憶手段（データ保存用内部メモリ３５や外部メモリ３３）に保存される。
【００９９】
以上のようにして、ユーザは、あたかも仮想オブジェクトが実空間に存在するように仮想オブジェクトを操作して、仮想オブジェクトの写真を撮影することができる。
【０１００】
（撮影処理の詳細）
次に、図１１から図１６を参照して、本実施形態に係る撮影処理の詳細について説明する。まず、撮影処理の際にメインメモリ３２およびＶＲＡＭ３１３（以下、これらを総称してＲＡＭと呼ぶことがある）に記憶される主なデータについて説明する。図１１は、ゲーム装置１０のＲＡＭのメモリマップを示す図である。図１１に示されるように、ＲＡＭには、撮影処理プログラム７１、左目用実画像７２Ｌ、右目用実画像７２Ｒ、仮想キャラクタ情報７３、左仮想カメラ情報７４Ｌ、右仮想カメラ情報７４Ｒ、左仮想オブジェクト画像７５Ｌ、右仮想オブジェクト画像７５Ｒ、操作情報７６、保存フラグ７７、左右静止画像７８、カメラ注目フラグ７９等が記憶される。
【０１０１】
撮影処理プログラム７１は、後述するフローチャートに示される撮影処理を情報処理部３１（ＣＰＵ３１１）に実行させるためのプログラムである。
【０１０２】
左目用実画像７２Ｌは、外側撮像部（左）２３ａによって撮像された、実空間を撮像した画像である。
【０１０３】
右目用実画像７２Ｒは、外側撮像部（右）２３ｂによって撮像された、実空間を撮像した画像である。
【０１０４】
仮想キャラクタ情報７３は、各仮想キャラクタ５１〜５３に関連する情報である。具体的には、仮想キャラクタ情報７３は、仮想キャラクタの形状を表す３次元モデルデータ（ポリゴンデータ）や、仮想キャラクタの模様をあらわすテクスチャデータ、仮想空間における仮想キャラクタの位置や姿勢の情報、および、現在選択されているか否かを示す情報を含む。各仮想キャラクタ５１〜５３は、これら３次元モデルデータ、テクスチャデータ、位置や姿勢に関する情報、現在選択されているか否かを示す情報を有している。なお、各仮想キャラクタは、部位毎に上記３次元モデルデータ、位置や姿勢に関する情報を有している。例えば、仮想キャラクタ５１は、体（首から下の部分）の３次元モデルデータ、当該体の位置や姿勢に関する情報、頭部の３次元モデルデータ、当該頭部の位置や姿勢に関する情報を有している。頭部の位置と体の位置とは、予め定められた所定の関係を有している。このように部位毎に上記情報を有することにより、頭部と体の向きを異なるようにすることができる。例えば、仮想キャラクタ５１の体が仮想空間内の原点に位置して当該体の向きがＸ軸の正方向を向いている場合において、仮想キャラクタ５１の顔を原点よりもＹ軸正方向の所定位置に配置して、顔をＺ軸の正方向に向かせることができる。
【０１０５】
左仮想カメラ情報７４Ｌは、仮想空間のおける左仮想カメラ５８ａの位置および姿勢を表す情報である。具体的には、左仮想カメラ情報７４Ｌは、左目用実画像におけるマーカ６１の位置および姿勢に基づいて算出される行列である。
【０１０６】
右仮想カメラ情報７４Ｒは、仮想空間のおける右仮想カメラ５８ｂの位置および姿勢を表す情報である。具体的には、右仮想カメラ情報７４Ｒは、右目用実画像におけるマーカ６１の位置および姿勢に基づいて算出される行列である。
【０１０７】
左仮想オブジェクト画像７５Ｌは、左仮想カメラ５８ａによって仮想キャラクタを撮像した画像である。
【０１０８】
右仮想オブジェクト画像７５Ｒは、右仮想カメラ５８ｂによって仮想キャラクタを撮像した画像である。
【０１０９】
操作情報７６は、操作手段（各操作ボタン１４Ａ〜１４Ｅ、１４Ｇ、１４Ｈ、および、アナログスティック１５）に対して行われた操作を示す情報である。操作手段に対する操作が行われると、操作が行われたことを示す信号がＣＰＵ３１１に送信されて、操作情報７６が更新される。
【０１１０】
保存フラグ７７は、撮像された画像が保存されることを示すフラグであり、例えば、撮影指示ボタン（Ｌボタン１４ＧまたはＲボタン１４Ｈ）が押された場合に、ＯＮに設定される。
【０１１１】
左右静止画像７８は、撮影指示ボタン（Ｌボタン１４ＧまたはＲボタン１４Ｈ）が押されたことに応じて保存される画像であり、左静止画像と右静止画像とを含む。
【０１１２】
カメラ注目フラグ７９は、仮想キャラクタが仮想カメラに注目するモード（カメラ注目モード）か否かを示すフラグである。カメラ注目モードである場合、カメラ注目フラグ７９はＯＮに設定され、カメラ注目モードでない場合、カメラ注目フラグ７９はＯＦＦに設定される。
【０１１３】
（メインフローの説明）
次に、本実施形態に係る撮影処理の詳細について、図１２から図１６を参照して説明する。図１２は、本実施形態に係る撮影処理の詳細を示すメインフローチャートである。ゲーム装置１０の電源が投入されると、ゲーム装置１０の情報処理部３１（ＣＰＵ３１１）は、図示しないＲＯＭに記憶されている起動プログラムを実行し、これによってメインメモリ３２等の各ユニットが初期化される。次に、不揮発性メモリ（外部メモリ４４等；コンピュータ読み取り可能な記憶媒体）に記憶された撮影処理プログラムがＲＡＭ（具体的には、メインメモリ３２）に読み込まれ、情報処理部３１のＣＰＵ３１１によって当該プログラムの実行が開始される。図１２のフローチャートに示す処理は、以上の処理が完了した後に情報処理部３１（ＣＰＵ３１１又はＧＰＵ３１２）によって行われる。なお、図１２では、本発明に直接関連しない処理については記載を省略する。また、図１２に示すステップＳ１〜ステップＳ１４の処理ループは、１フレーム（例えば１／３０秒又は１／６０秒。フレーム時間という）毎に繰り返し実行される。
【０１１４】
まず、ステップＳ１において、情報処理部３１は、撮影中か否かを判定する。具体的には、情報処理部３１は、ＲＡＭを参照して、保存フラグ７７がＯＮか否かを判定する。判定結果が否定の場合、情報処理部３１は、次にステップＳ２の処理を実行する。一方、判定結果が肯定の場合、情報処理部３１は、次にステップＳ７の処理を実行する。
【０１１５】
ステップＳ２において、情報処理部３１は、実カメラ画像を取得する。具体的には、情報処理部３１は、外側撮像部２３に対して、画像を撮像するための命令を送信する。当該命令に応じて外側撮像部（左）２３ａは左目用実画像７２Ｌを、外側撮像部（右）２３ｂは右目用実画像７２Ｒを撮像する。そして、情報処理部３１は、撮像された２つの画像（左目用実画像７２Ｌおよび右目用実画像７２Ｒ）を取得し、ＲＡＭに記憶する。次に、情報処理部３１は、ステップＳ３の処理を実行する。
【０１１６】
ステップＳ３において、情報処理部３１は、マーカ認識処理を実行する。マーカ認識処理は、ステップＳ２で取得した左目用実画像７２Ｌおよび右目用実画像７２Ｒを用いて、２つの画像に含まれるマーカ６１を認識する処理である。マーカ認識処理においては、マーカの認識結果に応じて、仮想カメラ（左仮想カメラ５８ａおよび右仮想カメラ５８ｂ）が仮想空間に設定される。マーカ認識処理の詳細は、後述する。マーカ認識処理の後、ステップＳ４の処理が行われる。
【０１１７】
ステップＳ４において、情報処理部３１は、マーカを認識したか否かを判定する。ステップＳ４の処理は、ステップＳ３のマーカ認識処理においてマーカ６１が正常に認識されたか否かを判定する処理である。具体的には、情報処理部３１は、ＲＡＭを参照して、検出結果フラグ（後述する）がＯＮか否かを判定する。判定結果が肯定の場合、情報処理部３１は、次にステップＳ５の処理を実行する。一方、判定結果が否定の場合、情報処理部３１は、次にステップＳ１４の処理を実行する。
【０１１８】
ステップＳ５において、情報処理部３１は、撮影ボタンが押されたか否かを判定する。具体的には、情報処理部３１は、ＲＡＭに記憶された操作情報７６を参照して、Ｌボタン１４ＧまたはＲボタン１４Ｈが押されたか否かを判定する。判定結果が否定の場合、情報処理部３１は、次にステップＳ６の処理を実行する。一方、判定結果が肯定の場合、情報処理部３１は、次にステップＳ７の処理を実行する。
【０１１９】
ステップＳ６において、情報処理部３１は、操作情報７６を参照して、アナログスティック１５が操作されたか否かを判定する。判定結果が肯定の場合、情報処理部３１は、次にステップＳ８の処理を実行する。一方、判定結果が否定の場合、情報処理部３１は、次にステップＳ９の処理を実行する。
【０１２０】
一方、ステップＳ７において、情報処理部３１は、保存処理を実行する。保存処理は、上側ＬＣＤ２２に表示された画像を保存（撮影）する処理である。保存処理の詳細については、後述する。ステップＳ７の処理の後、情報処理部３１は、次にステップＳ１４の処理を実行する。
【０１２１】
ステップＳ８において、情報処理部３１は、キャラクタ移動処理を実行する。キャラクタ移動処理では、情報処理部３１は、アナログスティック１５に対する操作に応じて、仮想キャラクタを仮想空間内で移動させる。キャラクタ移動処理の詳細については、後述する。キャラクタ移動処理の後、ステップＳ９の処理が行われる。
【０１２２】
ステップＳ９において、情報処理部３１は、カメラ注目モードか否かを判定する。具体的には、情報処理部３１は、操作情報７６を参照して、ｘボタン１４Ｄが押されたか否か、または、カメラ注目フラグ７９がＯＮか否かを判定する。判定結果が肯定の場合（ｘボタン１４Ｄが押された場合、又は、カメラ注目フラグ７９がＯＮの場合）、情報処理部３１は、カメラ注目フラグ７９をＯＮに設定して、次にステップＳ１０に示す注目処理（後述する）を実行する。なお、カメラ注目フラグ７９がＯＮであって、かつ、ｘボタン１４Ｄが押された場合、情報処理部３１は、カメラ注目フラグ７９をＯＦＦに設定するとともに、非注目処理（図示せず）を実行して、次にステップＳ１１の処理を実行する。非注目処理の詳細な説明は省略するが、非注目処理では、後述する注目処理で変更された各仮想キャラクタの頭部の姿勢が元に戻される。一方、ステップＳ９において判定結果が否定の場合（ｘボタン１４Ｄが押されておらず、かつ、カメラ注目フラグ７９がＯＦＦの場合）、情報処理部３１は、次にステップＳ１１の処理を実行する。
【０１２３】
ステップＳ１０において、情報処理部３１は、注目処理を実行する。注目処理では、各仮想キャラクタを仮想カメラに注目させる処理であり、各仮想キャラクタの顔を仮想カメラの方向に向かせる処理である。注目処理の詳細については、後述する。注目処理の後、ステップＳ１１の処理が行われる。
【０１２４】
ステップＳ１１において、情報処理部３１は、所定のボタン操作が行われたか否かを判定する。具体的には、情報処理部３１は、操作情報７６を参照して、十字ボタン１４Ａの左右方向のボタン、ａボタン１４Ｂ、ｂボタン１４Ｃ、および、ｙボタン１４Ｅの何れかが押されたか否かを判定する。判定結果が肯定の場合、情報処理部３１は、次にステップＳ１２の処理を実行する。一方、判定結果が否定の場合、情報処理部３１は、次にステップＳ１３の処理を実行する。
【０１２５】
ステップＳ１２において、情報処理部３１は、ボタン操作に応じた処理を実行する。具体的には、情報処理部３１は、十字ボタン１４Ａの左右方向のボタンが押された場合、選択されている仮想キャラクタの表情を変更する。仮想キャラクタの表情は、仮想キャラクタの顔に適用されるテクスチャによって変更される。従って、情報処理部３１は、十字ボタン１４Ａの左右方向のボタンが押されたことに応じて、現在適用されているテクスチャを別のテクスチャ（予め記憶されている）に変更する。また、情報処理部３１は、ａボタン１４Ｂまたはｂボタン１４Ｃが押された場合、選択されている仮想キャラクタのポーズを変更する。各仮想キャラクタには、予め複数のポーズ（座った状態や立った状態、手を上げた状態等）が用意されており、情報処理部３１は、ａボタン１４Ｂまたはｂボタン１４Ｃが押されたことに応じて、これら複数のポーズの中から１つのポーズを選択する。また、情報処理部３１は、ｙボタン１４Ｅが押された場合、現在選択されている仮想キャラクタとは別の仮想キャラクタを選択する。例えば、表示上の右から左に順番に仮想キャラクタが選択されたり、撮影処理前に仮想空間に配置される仮想キャラクタが決定された順番に、仮想キャラクタが選択されたりする。情報処理部３１は、次にステップＳ１３の処理を実行する。
【０１２６】
ステップＳ１３において、情報処理部３１は、仮想オブジェクト画像生成処理を実行する。具体的には、情報処理部３１は、仮想空間を左仮想カメラ５８ａで撮像することによって左仮想オブジェクト画像７５Ｌを生成し、仮想空間を右仮想カメラ５８ｂで撮像することによって右仮想オブジェクト画像７５Ｒを生成する。そして、情報処理部３１は、撮像した左仮想オブジェクト画像７５Ｌおよび右仮想オブジェクト画像７５ＲをＲＡＭに保存する。情報処理部３１は、次にステップＳ１４の処理を実行する。
【０１２７】
ステップＳ１４において、情報処理部３１は、出力処理を実行する。出力処理が実行されることによって、上側ＬＣＤ２２に立体視可能な画像が表示される。具体的には、情報処理部３１は、直前にステップＳ１３の処理が行われた場合、ステップＳ２で取得した実カメラ画像とステップＳ１３で生成した仮想オブジェクト画像とを重ね合わせた重畳画像を生成する。具体的には、情報処理部３１は、左目用実画像７２Ｌと左仮想オブジェクト画像７５Ｌとを重ね合わせた左目用重畳画像を生成し、右目用実画像７２Ｒと右仮想オブジェクト画像７５Ｒとを重ね合わせた右目用重畳画像を生成する。そして、情報処理部３１は、生成した２つの重畳画像を上側ＬＣＤ２２に出力する。なお、カーソル５５および表示バー５６の表示設定がなされている場合は、上記仮想オブジェクト画像に加えて、カーソル５５および表示バー５６を示す画像が左右の実カメラ画像に重畳されて上側ＬＣＤ２２に表示される。一方、カーソル５５および表示バー５６が非表示設定されている場合は、カーソル５５および表示バー５６は上側ＬＣＤ２２に表示されない。
【０１２８】
また、情報処理部３１は、ステップＳ４の判定結果が否定の場合は、ステップＳ２で取得した左目用実画像７２Ｌと右目用実画像７２Ｒとを上側ＬＣＤ２２に出力する。また、情報処理部３１は、保存フラグ７７がＯＮの場合（直前にステップＳ７が実行されている場合）、ステップＳ７でＲＡＭに記憶された左右の静止画像（左右静止画像７８）を上側ＬＣＤ２２に出力する。情報処理部３１は、ステップＳ１４の処理の後、ステップＳ１の処理を再び実行する。以上で図１２に示すフローチャートの説明を終了する。
【０１２９】
なお、図１２では省略しているが、保存フラグ７７がＯＮの場合において、静止画像（左右静止画像７８）がＲＡＭに記憶されると、この静止画像が上側ＬＣＤ２２に表示され、ユーザがこの静止画像の内容を確認して所定のボタンを押すと、ＲＡＭに記憶された静止画像（左右静止画像７８）は、不揮発性の記憶手段（データ保存用外部メモリ４５やデータ保存用内部メモリ３５等）に保存される。
【０１３０】
次に、上述した各処理の詳細について説明する。
【０１３１】
（マーカ認識処理の説明）
図１３は、マーカ認識処理（ステップＳ３）の詳細を示すフローチャートである。まず、ステップＳ２１において、情報処理部３１は、マーカを検出したか否かを判定する。ここでは、ステップＳ２で取得した左目用実画像７２Ｌおよび右目用実画像７２Ｒを用いて、２つの画像の何れにもマーカが含まれているか否かを判定する。具体的には、情報処理部３１は、各画像に対してパターンマッチング等の画像処理を行い、マーカが含まれるか否かを判定する。どちらか一方の画像にマーカが含まれない場合、判定結果は否定となって、次にステップＳ２５の処理が実行される。一方、何れの画像にもマーカが含まれている場合、判定結果は肯定となって、次にステップＳ２２の処理が実行される。
【０１３２】
ステップＳ２２において、情報処理部３１は、実カメラとマーカとの位置関係を算出する。具体的には、情報処理部３１は、左目用実画像７２Ｌに含まれるマーカの当該左目用実画像７２Ｌにおける位置や大きさ、形状、および、マーカの矢印の方向等に基づいて、外側撮像部（左）２３ａと実空間に存在するマーカ６１との位置関係を算出する。ここで、外側撮像部（左）２３ａとマーカ６１との位置関係とは、マーカ６１および外側撮像部（左）２３ａの何れか一方を基準とした場合の他方の３次元の位置および姿勢である。すなわち、上記位置関係は、マーカ６１に対する外側撮像部（左）２３ａの相対的な位置および姿勢である。同様に、情報処理部３１は、右目用実画像７２Ｒに含まれるマーカの当該右目用実画像７２Ｒにおける位置や大きさ、形状、および、マーカの矢印の方向等に基づいて、外側撮像部（右）２３ｂと実空間に存在するマーカ６１との位置関係を算出する。
【０１３３】
より具体的には、ステップＳ２２においては、マーカの認識結果に基づいて、マーカ座標系が設定されるとともに、マーカ６１と外側撮像部（左）２３ａとの位置関係が算出される。図１７は、マーカ６１と外側撮像部（左）２３ａとの位置関係を示す図である。図１７に示すように、マーカ６１には、マーカ座標系が設定される。具体的には、マーカ座標系の原点は、マーカ６１の中心に設定される。また、マーカ座標系のＺ軸は、マーカ６１の矢印の方向と平行に設定され（マーカ６１の長辺と平行に設定され）、マーカ座標系のＸ軸は、当該矢印の方向と垂直であって、当該矢印の方向を基準として右向きに設定される（マーカ６１の短辺と平行に設定される）。また、Ｙ軸は、マーカ６１に対して垂直上向きに設定される（長方形のマーカ６１の上向きの法線方向に設定される）。マーカ座標系は、仮想空間を定義する座標系であり、実空間と仮想空間とを対応付ける。すなわち、マーカ座標系における原点は、仮想空間の原点であって、実空間におけるマーカ６１の中心でもある。
【０１３４】
そして、マーカ６１に対する外側撮像部（左）２３ａの相対的な位置および姿勢を表す行列が算出される。図１７に示すように、外側撮像部（左）２３ａの位置および姿勢を表す行列は、仮想空間におけるマーカ座標系で表された座標を、外側撮像部（左）２３ａの位置および姿勢を基準とした外側撮像部（左）座標系で表される座標へと変換するための座標変換行列である。ステップＳ２３においては、左目用実画像７２Ｌに含まれるマーカに基づいて外側撮像部（左）２３ａの位置および姿勢を表す行列が算出され、右目用実画像７２Ｒに含まれるマーカに基づいて外側撮像部（右）２３ｂの位置および姿勢を表す行列が算出される。
【０１３５】
なお、外側撮像部（左）２３ａおよび外側撮像部（右）２３ｂは、これらの撮像方向が平行で、かつ、撮像方向に対して回転しないようにして配設されている。すなわち、外側撮像部（左）２３ａの姿勢と外側撮像部（右）２３ｂの姿勢とは常に一致する。また、外側撮像部（左）２３ａと外側撮像部（右）２３ｂとは、所定の間隔で配置されている。このため、例えば、左目用実画像７２Ｌに基づいて外側撮像部（左）２３ａの位置および姿勢が算出されると、右目用実画像７２Ｒを用いなくても、外側撮像部（右）２３ｂの位置および姿勢は算出可能である。ステップＳ２２の後、情報処理部３１は、次にステップＳ２３の処理を実行する。
【０１３６】
ステップＳ２３において、情報処理部３１は、左右の仮想カメラの位置および姿勢を決定する。ここでは、左右の仮想カメラの位置および姿勢は、外側撮像部２３の位置および姿勢と一致する。すなわち、左仮想カメラ５８ａの仮想空間における位置および姿勢は、外側撮像部（左）２３ａの位置および姿勢と一致するように設定される。また、右仮想カメラ５８ｂの仮想空間における位置および姿勢は、外側撮像部（右）２３ｂの位置および姿勢と一致するように設定される。具体的には、左仮想カメラ５８ａの位置および姿勢は、行列（左ビュー行列）として表され、ステップＳ２２で算出された外側撮像部（左）２３ａの位置および姿勢を表す行列が、左仮想カメラ情報７４ＬとしてＲＡＭに保存される。同様に、右仮想カメラ５８ｂの位置および姿勢は、行列（右ビュー行列）として表され、ステップＳ２２で算出された外側撮像部（右）２３ｂの位置および姿勢を表す行列が、右仮想カメラ情報７４ＲとしてＲＡＭに保存される。なお、上述のように外側撮像部（左）２３ａの姿勢と外側撮像部（右）２３ｂの姿勢とは常に一致するため、左仮想カメラ５８ａの姿勢と右仮想カメラ５８ｂの姿勢とも一致する。ステップＳ２３の後、情報処理部３１は、次にステップＳ２４の処理を実行する。
【０１３７】
ステップＳ２４において、情報処理部３１は、検出結果フラグをＯＮに設定してＲＡＭに記憶する。ステップＳ２４の後、情報処理部３１は、図１３に示すマーカ認識処理を終了する。
【０１３８】
一方、ステップＳ２５において、情報処理部３１は、検出結果フラグをＯＦＦに設定してＲＡＭに記憶する。ここでは、左目用実画像７２Ｌおよび右目用実画像７２Ｒの何れか一方にマーカが検出されなかったため、マーカの検出結果を示す検出結果フラグがＯＦＦに設定される。ステップＳ２５の後、情報処理部３１は、図１３に示すマーカ認識処理を終了する。
【０１３９】
（保存処理の説明）
次に、保存処理（ステップＳ７）の詳細について説明する。図１４は、保存処理（ステップＳ７）の詳細を示すフローチャートである。
【０１４０】
まず、ステップＳ３１において、情報処理部３１は、ＲＡＭを参照して保存フラグ７７がＯＮか否かを判定する。判定結果が否定の場合、情報処理部３１は、次にステップＳ３２の処理を実行する。一方、判定結果が肯定の場合、情報処理部３１は、次にステップＳ３４の処理を実行する。
【０１４１】
ステップＳ３２において、情報処理部３１は、カーソル等を非表示に設定する。ここでは、カーソル５５や表示バー５６が非表示に設定される。次に、情報処理部３１は、ステップＳ３３の処理を実行する。
【０１４２】
ステップＳ３３において、情報処理部３１は、保存フラグ７７をＯＮに設定し、当該保存処理を終了する。
【０１４３】
一方、ステップＳ３１において、保存フラグがＯＮに設定されていると判定された場合、情報処理部３１は、ステップＳ３４の処理を実行する。ステップＳ３４において、情報処理部３１は、表示されている画像（すなわち、左右の画像）を左右静止画像７８としてＲＡＭに保存する。なお、静止画像が既にＲＡＭに保存されている場合は、ステップＳ３４の処理は行われない。ここで保存される画像は、前のフレームで上側ＬＣＤ２２に表示された画像であり、上記カーソル等が表示されていない、左目用重畳画像および右目用重畳画像である。情報処理部３１は、ステップＳ３４の処理を実行した後、当該保存処理を終了する。
【０１４４】
（移動処理の説明）
次に、仮想キャラクタの移動処理（ステップＳ８）の詳細について説明する。図１５は、キャラクタ移動処理（ステップＳ８）の詳細を示すフローチャートである。
【０１４５】
まず、ステップＳ４１において、情報処理部３１は、ビュー行列を取得する。ここで取得されるビュー行列は、左右の仮想カメラの中間に仮想カメラ（当該仮想カメラは実際には仮想空間に設定されない）を設定した場合の、当該仮想カメラの仮想空間（ＸＹＺ座標系）における位置および姿勢を表す行列である。具体的には、情報処理部３１は、左仮想カメラ情報７４Ｌおよび右仮想カメラ情報７４Ｒに基づいて、左仮想カメラ５８ａと右仮想カメラ５８ｂとの中点（マーカ座標系の座標値）を算出する。そして、情報処理部３１は、左仮想カメラ５８ａの姿勢（これは右仮想カメラ５８ｂの姿勢と一致する）を左ビュー行列から取得し、算出した中点と当該取得した姿勢とを示す行列をビュー行列として算出する。次に、情報処理部３１は、ステップＳ４２の処理を実行する。
【０１４６】
ステップＳ４２において、情報処理部３１は、ビュー行列に基づいてカメラ方向を算出する。ここで算出されるカメラ方向は、上記左右の仮想カメラ（５８ａおよび５８ｂ）の中間の仮想カメラの撮像方向を示す。図１８は、ステップＳ４２で算出されるカメラ方向を示す図である。図１８に示すように、カメラ方向は、左右の仮想カメラの撮像方向と同じであり、ベクトルとして表わされる。次に、情報処理部３１は、ステップＳ４３の処理を実行する。
【０１４７】
ステップＳ４３において、情報処理部３１は、カメラ方向とアナログスティック１５の操作情報に基づいて、仮想キャラクタの移動方向を算出する。ここでは、マーカ座標系における仮想キャラクタの移動方向が算出される。具体的には、まず、カメラ方向を示すベクトルを、仮想空間（マーカ座標系）のＸＺ平面に投影したＸＺ平面投影ベクトルが算出される。図１９は、カメラ方向ベクトルをＸＺ平面に投影したＸＺ平面投影ベクトルを示す図である。また、情報処理部３１は、アナログスティック１５の操作情報に基づいて、アナログスティック１５の入力方向を算出する。図２０は、アナログスティック１５の入力方向を示す図である。図２０に示すように、アナログスティック１５の入力方向は、アナログスティック１５によって指示された方向（アナログスティック１５がスライドされた方向）であり、ｘｙ平面（図１参照）上のベクトルとして表される。情報処理部３１は、操作情報７６を参照して、図２０に示すようにアナログスティック１５の入力方向を示すベクトルを算出する。
【０１４８】
次に、情報処理部３１は、上記ＸＺ平面投影ベクトルとアナログスティック１５の入力方向ベクトルとに基づいて、仮想キャラクタの移動方向を算出する。具体的には、アナログスティック１５に対する入力に応じて、ＸＺ平面投影ベクトルをＹ軸周りに回転させることによって、移動方向が算出される。より具体的には、情報処理部３１は、図２０に示すように上記入力方向ベクトルとｙ軸との角度θを算出し、ＸＺ平面投影ベクトルを当該角度θだけＹ軸（図１９参照）周りに回転させた方向を、移動方向として算出する。このようにして、情報処理部３１は、仮想キャラクタの移動方向を算出する。
【０１４９】
例えば、アナログスティック１５を用いて上方向（図１に示す上方向（ｙ軸正方向））が指示された場合は、ＸＺ平面投影ベクトルは回転されず（回転角度が０度）、移動方向は、ＸＺ平面投影ベクトルと同じ方向になる。また、アナログスティック１５を用いて下方向（図１に示す下方向（ｙ軸負方向））が指示された場合は、ＸＺ平面投影ベクトルはＹ軸周りに１８０度回転され、移動方向は、ＸＺ平面投影ベクトルと反対方向になる。また、アナログスティック１５を用いて右方向（図１に示す右方向（ｘ軸正方向））が指示された場合は、ＸＺ平面投影ベクトルはＹ軸周りに９０度回転され、移動方向は、回転前のＸＺ平面投影ベクトルに対して右向きになる。
【０１５０】
なお、ステップＳ４２で算出されたカメラ方向がＹ軸と平行な方向である場合、すなわち、仮想カメラの撮像方向がＹ軸と平行な方向である場合、仮想キャラクタの移動方向は、上記カメラ方向を用いて算出されない。カメラ方向がＹ軸と平行（Ｙ軸負方向）になるのは、マーカ６１を正確に真上から外側撮像部２３で撮像した場合である。カメラ方向がＹ軸と平行な方向である場合、当該カメラ方向をＸＺ平面に投影したＸＺ平面投影ベクトルは、図２１に示すように、方向を持たない点ベクトルとなる。図２１は、仮想カメラの撮像方向がＹ軸と平行な方向である場合のＸＺ平面投影ベクトルを示す図である。このため、上記のようにカメラ方向を用いて仮想キャラクタの移動方向を算出することができない。従って、この場合、カメラ方向（仮想カメラの撮像方向）の替わりに、仮想カメラの上方向（図１９および図２１に示すＹｃ軸方向）が算出される。図２２は、カメラ方向がＹ軸と平行である場合において、仮想カメラの上方向とアナログスティック１５の入力方向とを示す図である。図２２に示すように、算出された仮想カメラの上方向と、アナログスティック１５の入力方向とに基づいて、仮想キャラクタの移動方向が算出される。すなわち、仮想カメラの上方向ベクトルがＸＺ平面に投影されて、当該投影されたベクトルをマーカ座標系のＹ軸周りに角度θ（仮想カメラの上方向とアナログスティック１５の入力方向とがなす角度）で回転させた方向が、仮想キャラクタの移動方向として算出される。
【０１５１】
このようにして算出された移動方向は、仮想空間内の移動方向、すなわち、マーカ座標系での移動方向である。仮想空間内で仮想キャラクタが算出された移動方向に移動すると、仮想キャラクタは、上側ＬＣＤ２２に表示された場合にアナログスティック１５を用いて指示された方向（スライドされた方向）と同じ方向に移動する。すなわち、仮想キャラクタの表示上の移動方向は、アナログスティック１５をスライドさせた方向と一致する。次に、情報処理部３１は、ステップＳ４４の処理を実行する。
【０１５２】
ステップＳ４４において、情報処理部３１は、ステップＳ４３で算出した移動方向に仮想キャラクタを移動させる。具体的には、情報処理部３１は、ＲＡＭに記憶された仮想キャラクタ情報のうち、選択されている仮想キャラクタの仮想空間における位置を更新することにより、仮想キャラクタを移動させる。すなわち、情報処理部３１は、選択されている仮想キャラクタの仮想空間における位置に、ステップＳ４３で算出した移動方向のベクトル（当該ベクトルは予め定められた大きさを有する）を加えることにより、当該仮想キャラクタの位置を更新して、ＲＡＭに記憶する。次に、情報処理部３１は、ステップＳ４５の処理を実行する。
【０１５３】
ステップＳ４５において、情報処理部３１は、仮想キャラクタが所定範囲外に移動したか否かを判定する。具体的には、情報処理部３１は、ステップＳ４４で移動させた仮想キャラクタの位置が、マーカ座標系の原点を中心とした所定範囲を超えているか否かを判定する。判定結果が肯定の場合、情報処理部３１は、次にステップＳ４６の処理を実行する。一方、判定結果が否定の場合、情報処理部３１は、図１５に示す移動処理を終了する。
【０１５４】
ステップＳ４６において、情報処理部３１は、仮想キャラクタの位置を上記所定範囲内に修正する。ここでは、仮想キャラクタがマーカ座標系の原点から遠く離れすぎないようにするための処理である。仮想キャラクタがマーカ座標系の原点から遠く離れすぎて仮想カメラの撮像範囲を超えると、ユーザは、そのキャラクタを見るために外側撮像部２３を用いてマーカ６１から離れた位置を撮像しようとする。そうすると、外側撮像部２３の撮像範囲にマーカ６１が含まれなくなり、マーカ座標系を定義することができず、ユーザは仮想キャラクタを見ることができなくなる。このようなことを防止するために、ステップＳ４６において、ステップＳ４４で移動された仮想キャラクタの位置を上記所定範囲内に修正する。その後、情報処理部３１は、図１５に示す移動処理を終了する。
【０１５５】
（注目処理の説明）
次に、注目処理（ステップＳ１０）の詳細について説明する。図１６は、注目処理（ステップＳ１０）の詳細を示すフローチャートである。まず、ステップＳ５１において、情報処理部３１は、仮想キャラクタの体の位置を取得する。具体的には、情報処理部３１は、仮想キャラクタ情報７３を参照して、複数の仮想キャラクタのうち、未だ注目処理（ステップＳ５１〜ステップＳ５６の処理）が行われていない仮想キャラクタの体の位置を取得する。上述のように、仮想キャラクタ情報７３には、仮想キャラクタ毎に形状データ等とともに、各部位の位置や姿勢情報が含まれており、情報処理部３１は、仮想キャラクタ情報７３を参照して、仮想キャラクタの体の位置を取得する。次に、情報処理部３１は、ステップＳ５２の処理を実行する。
【０１５６】
ステップＳ５２において、情報処理部３１は、仮想カメラの位置と仮想キャラクタの頭部の位置とに基づいて、仮想キャラクタの視線方向を算出する。図２３は、仮想キャラクタの視線方向を示す図である。ここで、「仮想カメラの位置」は、図２３に示すように、左仮想カメラ５８ａの位置と右仮想カメラ５８ｂの位置との中間である。具体的には、情報処理部３１は、上記ステップＳ４１で取得したビュー行列（左右の仮想カメラの中点、および、左右の仮想カメラと同じ姿勢を示す行列）に基づいて、「仮想カメラの位置」（左右の仮想カメラの中点）を取得する。また、情報処理部３１は、ステップＳ５１で取得した仮想キャラクタの体の位置に基づいて、当該仮想キャラクタの頭部の位置を算出する。仮想キャラクタの体と頭部は、予め定められた位置関係を有しており、情報処理部３１は、仮想キャラクタの体の位置に、所定のベクトルを加えることによって当該仮想キャラクタの頭部の位置を算出する。そして、情報処理部３１は、上記仮想キャラクタの頭部の位置から上記仮想カメラの位置に向かうベクトルを算出して、仮想キャラクタの視線方向としてＲＡＭに記憶する。次に、情報処理部３１は、ステップＳ５３の処理を実行する。なお、仮想キャラクタの体と頭部の位置関係は、当該仮想キャラクタのポーズ毎に異なるため、現在の仮想キャラクタのポーズに応じて仮想キャラクタの頭部の位置が算出される。
【０１５７】
ステップＳ５３において、情報処理部３１は、ステップＳ５２で算出した視線方向に基づいて、頭部の各軸（ＸＹ軸）周りの回転角度を算出する。ここでは、仮想キャラクタの頭部（顔）を上記視線方向に向かせるために必要なＸ軸およびＹ軸周りの回転角度が算出される。具体的には、情報処理部３１は、仮想キャラクタ情報７３を参照して、仮想キャラクタの体の姿勢を示す行列（現在の体の姿勢行列）を取得する。次に、情報処理部３１は、当該仮想キャラクタの頭部を上記視線方向に向けたときの頭部の姿勢行列（視線方向の頭部の姿勢行列）を算出する。そして、情報処理部３１は、上記現在の体の姿勢行列と上記視線方向の頭部の姿勢行列とに基づいて、頭部の回転を示す回転行列を算出し、当該回転行列に基づいて、各軸（Ｘ軸およびＹ軸）周りの回転角度を算出する。次に、情報処理部３１は、ステップＳ５４の処理を実行する。
【０１５８】
ステップＳ５４において、情報処理部３１は、ステップＳ５３で算出した各軸周りの回転角度が所定範囲外か否かを判定する。具体的には、情報処理部３１は、Ｘ軸周り（垂直方向）の回転角度が所定範囲（例えば、−６０度から６０度の範囲）外か否か、および、Ｙ軸周り（水平方向）の回転角度が所定範囲（例えば、−８０度から８０度の範囲）外か否かを判定する。Ｘ軸周りの回転角度およびＹ軸周りの回転角度の何れか一方でも上記所定範囲外であれば（すなわち、判定結果が肯定）、情報処理部３１は、次にステップＳ５５の処理を実行する。一方、Ｘ軸周りの回転角度およびＹ軸周りの回転角度の何れもが上記所定範囲外でなければ（すなわち、判定結果が否定）、情報処理部３１は、次にステップＳ５６の処理を実行する。
【０１５９】
ステップＳ５５において、情報処理部３１は、各軸周りの回転角度を上記所定範囲内に修正する。ステップＳ５５においては、各軸周りの回転角度が上記所定範囲外である場合、当該所定範囲内になるように各軸周りの回転角度が上限値または下限値に修正される。例えば、情報処理部３１は、Ｘ軸周りの回転角度が上記所定範囲の上限値（６０度）を超えている場合、Ｘ軸周りの回転角度を当該上限値（６０度）に修正する。このように、頭部の回転角度が修正されることにより、例えば、頭部が体に対して水平方向に１８０度回転したり、頭部が体に対して垂直方向に１５０度回転したりするように、頭部が不自然に回転することを防止することができる。情報処理部３１は、次にステップＳ５６の処理を実行する。
【０１６０】
ステップＳ５６において、情報処理部３１は、頭部の姿勢行列を決定する。具体的には、情報処理部３１は、直前のステップＳ５５で頭部の回転角度が修正された場合は、当該修正された回転角度で頭部を回転させた場合の頭部の姿勢行列を算出する。また、情報処理部３１は、ステップＳ５５で頭部の回転角度が修正されなかった場合、ステップＳ５３で算出した視線方向の頭部の姿勢行列を、新たな頭部の姿勢行列として決定し、仮想キャラクタ情報７３を更新する。情報処理部３１は、次にステップＳ５７の処理を実行する。
【０１６１】
ステップＳ５７において、情報処理部３１は、全ての仮想キャラクタに対して注目処理（ステップＳ５１〜ステップＳ５６に示す処理）を実行したか否かを判定する。判定結果が否定の場合、情報処理部３１は、ステップＳ５１の処理を再び実行する。判定結果が肯定の場合、情報処理部３１は、図１６に示す注目処理を終了する。
【０１６２】
なお、上述した処理は単なる一例であって、例えば、上記処理の順番や各操作に用いられるボタン、各判定に用いられた閾値（Ｓ４５やＳ５４で用いられた値）等は、どのようなものであってもよい。
【０１６３】
以上のように、本実施形態では、実空間と仮想空間とが対応付けられ、当該仮想空間に仮想オブジェクトが配置される。そして、外側撮像部２３で実空間を撮像するとともに、仮想カメラで仮想オブジェクトを撮像することにより、あたかも実空間に仮想オブジェクトが存在するような感覚をユーザに与えることができる写真を撮影することができる。
【０１６４】
また、本実施形態では、ユーザの操作によって、仮想空間に存在する仮想キャラクタを移動させたり、仮想キャラクタのポーズを変更したり、仮想キャラクタをカメラに注目させたりすることができる。これにより、仮想キャラクタが実際に実空間に存在するような感覚をユーザに与えることができる。例えば、仮想キャラクタの顔が仮想カメラ（外側撮像部２３）に向くように、仮想キャラクタの顔（頭部）の姿勢を変更する。これにより、当該仮想キャラクタがあたかも実空間に存在するような感覚を与えることができる。さらに、本実施形態では、左右の仮想カメラによって仮想キャラクタを撮像するため、立体的な画像となる。そして、左右の仮想カメラの中心を向くようにして、仮想キャラクタの頭部の姿勢が設定される。このため、仮想キャラクタが実空間に存在するような感覚をユーザに与えることができる。
【０１６５】
また、仮想キャラクタをカメラに注目させる場合において、仮想キャラクタの頭部が回転する角度は、所定の範囲（横方向に）に制限される。具体的には、仮想キャラクタの頭部の可動範囲は、水平方向には−８０度から８０度の範囲、垂直方向には−６０度から６０度の範囲に制限される。例えば、仮想キャラクタを真後ろから撮像して当該仮想キャラクタをカメラに注目させた場合、当該仮想キャラクタの顔は、真後ろを向かずに斜め方向（体の向きに対して水平方向に８０度頭を回転させた方向）を向く。このように、頭の回転角度を制限することにより、仮想キャラクタが実空間に存在してカメラの方向を向いているような感覚を得ることができる。すなわち、人間の首が１８０度後方を向くことは通常では考えられず、仮想キャラクタの動作はこのような現実の人間の動作に近い自然な動作となる。このため、仮想キャラクタが実際に実空間に存在するような感覚をユーザに与えることができる。
【０１６６】
（変形例）
なお、本実施形態では、仮想オブジェクトとして人を模した仮想キャラクタを仮想空間に配置した。他の実施形態では、仮想オブジェクトは、どのようなオブジェクトであってもよく、例えば、動物を模したオブジェクト、植物を模したオブジェクト、ロボットのオブジェクト等であってもよい。
【０１６７】
また、本実施形態では、ボタン操作によって仮想キャラクタを移動させたり、ポーズを変更したりした。他の実施形態では、複数の仮想キャラクタの位置や姿勢のパターンが予め記憶されてもよい。例えば、５人の仮想キャラクタが直線状に配置してそれぞれが異なるポーズを取るようなパターンや、５人の仮想キャラクタが５角形を形成するように配置されてそれぞれが同じポーズを取るようなパターンが予め記憶されてもよい。そして、ユーザによる操作に応じて、各仮想キャラクタの位置や姿勢を予め記憶されたパターンに変更してもよい。
【０１６８】
また、本実施形態では、上記ボタン操作に応じて、仮想キャラクタを移動させたり、表情やポーズを変化させたり、注目させたりしたが、上記ボタン操作は単なる一例であって、どのボタンが押された場合にどのような動作をさせるかは、任意に設定されてもよい。他の実施形態では、下側ＬＣＤ１２に操作のためのアイコンが複数表示され、当該画面（タッチパネル１３）に対するタッチ操作によって、アイコンが選択されて、仮想キャラクタの位置や姿勢、表情等が変更されてもよいし、タッチ操作によって仮想キャラクタを注目させてもよい。また、他の実施形態では、加速度センサ３９や角速度センサ４６が入力手段として機能してもよい。具体的には、加速度センサ３９や角速度センサ４６の検出結果に基づいて、ゲーム装置１０に対する所定のジェスチャ操作（例えば、ゲーム装置１０を上下方向に移動させたり、ゲーム装置１０を傾けたりする操作）が行われたか否かを判定し、当該判定結果に応じて、仮想キャラクタを移動させたり、注目させたりしてもよい。
【０１６９】
また、本実施形態では、仮想キャラクタの位置および姿勢がユーザの操作によって変更されたが（移動処理および注目処理が実行されたが）、他の実施形態では、仮想キャラクタの位置または姿勢がユーザの操作によって変更されてもよい（移動処理または注目処理の何れか一方が実行されてもよい）。
【０１７０】
また、本実施形態では、注目処理において、仮想キャラクタの顔が仮想カメラを向くように顔（頭部）の姿勢を変更した。他の実施形態では、体全体を仮想カメラの方向に向けてもよい。また、他の実施形態では、顔ではなく、目のみを仮想カメラの方向に向けてもよいし、腕や足等を仮想カメラの方向に向けてもよい。すなわち、注目処理において、仮想キャラクタの体の一部位を仮想カメラの方向に向けてもよい。
【０１７１】
また、本実施形態では、注目処理において左右の仮想カメラの中心に仮想キャラクタの顔を向けたが、他の実施形態では、左右の仮想カメラのどちらか一方に仮想キャラクタの顔を向けてもよい。
【０１７２】
また、本実施形態では、立体視可能な画像（立体画像）を撮像して保存した。すなわち、本実施形態では、実空間を２つのカメラ（外側撮像部（左）２３ａおよび外側撮像部（右）２３ｂ）で撮像し、仮想空間を２つの仮想カメラ（左仮想カメラ５８ａおよび右仮想カメラ５８ｂ）で撮像して、保存した。他の実施形態では、平面画像を撮像して保存してもよい。すなわち、他の実施形態では、１つの実カメラで実空間を撮像し、１つの仮想カメラで仮想空間を撮像してもよい。
【０１７３】
また、本実施形態では、マーカ６１を外側撮像部２３で撮像することによって、外側撮像部２３とマーカ６１との位置関係（相対的な位置および姿勢）を算出した。そして、算出した位置関係に基づいて、仮想空間（マーカ座標系）を定義した。他の実施形態では、マーカ６１に限らず、他の物体を撮像画像から認識して、上記位置関係が算出されてもよい。例えば、実空間に存在する所定の物体（例えば、実空間に存在する椅子やテーブル等でもよい）をパターンマッチング等の画像認識により検出し、上記位置関係が算出されて、仮想空間が定義されてもよい。すなわち、他の実施形態では、実空間に存在する特定対象物（上記マーカや所定の物体）を撮像画像から認識して、当該特定対象物と外側撮像部２３との位置関係が算出されてもよい。また、特定対象物は、実カメラによって撮像された画像に基づいて認識されず、他の認識手段（例えば、超音波センサ等でもよい）によって認識されてもよい。
【０１７４】
また、他の実施形態では、ＧＰＳや加速度センサ、角速度センサ、地磁気センサ等によって、実カメラの位置および姿勢が検出されてもよい。そして、検出された位置および姿勢に基づいて、仮想空間内の仮想カメラの位置および姿勢が設定され、実カメラで撮像した画像と仮想カメラで仮想空間を撮像した画像とを重畳してもよい。例えば、実空間に対応した仮想空間の所定の位置に仮想オブジェクトが配置され、当該仮想空間の所定の位置に対応する実空間の位置を所定の方向から実カメラで撮影してもよい。この場合、ＧＰＳや姿勢検出手段（加速度センサや角速度センサ、地磁気センサ等）によって実カメラの位置および姿勢を検出することができ、当該実カメラの位置および姿勢に一致するように仮想空間に仮想カメラを設定することができる。このようにして実カメラで撮像された画像と仮想カメラで撮像された画像とを重ね合わせることにより、実空間のその位置に仮想オブジェクトが存在するような写真を撮影することができる。
【０１７５】
また、本実施形態では、ビデオシースルー方式を用いて拡張現実感を実現した。すなわち、本実施形態では、外側撮像部２３によって撮像された画像と、仮想カメラ（左右の仮想カメラ）によって撮像された画像とが重ね合わされて重畳画像が生成され、当該重畳画像が上側ＬＣＤ２２に表示された。他の実施形態では、光学シースルー方式により拡張現実感を実現してもよい。例えば、実空間に配置されたマーカを検出するためのカメラを備えたヘッドマウンドディスプレイをユーザが装着し、ユーザはメガネのレンズ部分に相当するディスプレイ部を通して実空間を視認できるようになっている。このディプレイ部は、現実空間を透過してユーザの目に直接導くことが可能な素材によって構成されている。さらに、このディスプレイ部にはコンピュータにより生成した仮想オブジェクトの画像を表示させることができるようになっている。
【０１７６】
また、他の実施形態では、上述した撮影処理の方法は、ゲーム装置に限らず任意の電子機器、例えば、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）や高機能携帯電話、カメラ（装置としてカメラ）等に適用されてもよい。
【０１７７】
また、本実施形態では、表示装置として裸眼で立体視画像を表示可能なＬＣＤが用いられた。他の実施形態では、時分割方式や偏向方式、アナグリフ方式（赤青眼鏡方式）などの眼鏡を用いて立体表示を行うような場合でも、本発明は適用可能である。
【０１７８】
また、他の実施形態では、有線や無線等で通信可能に接続された複数の情報処理装置が各処理を分担して処理することにより、上述した撮影処理方法を実現する撮影処理システムとして構築されてもよい。例えば、外側撮像部２３が情報処理装置と分離された構成であって、外側撮像部２３が情報処理装置に有線または無線で接続されてもよい。また、外側撮像部２３の位置および姿勢が情報処理装置と分離した検出手段によって検出され、当該検出結果が情報処理装置に送信されてもよい。
【０１７９】
また、上記実施形態においては、ゲーム装置１０の情報処理部３１が所定のプログラムを実行することによって、上述したフローチャートによる処理が行われた。他の実施形態においては、上記処理の一部又は全部は、ゲーム装置１０が備える専用回路によって行われてもよい。
【０１８０】
また、上記撮影処理プログラムは、上記メモリに限らず、光ディスクや磁気ディスク等、コンピュータ読み取り可能な記憶媒体に記憶されてゲーム装置１０に提供されてもよい。また、例えば、ネットワーク上のサーバのＲＡＭに上記撮影処理プログラムが記憶され、ゲーム装置１０が当該ネットワークに接続されて、当該撮影処理プログラムがゲーム装置１０に提供されてもよい。
【符号の説明】
【０１８１】
１０  ゲーム装置
１１  下側ハウジング
１２  下側ＬＣＤ
１３  タッチパネル
１４  操作ボタン
１５  アナログスティック
１６  ＬＥＤ
２１  上側ハウジング
２２  上側ＬＣＤ
２３  外側撮像部
２３ａ  外側撮像部（左）
２３ｂ  外側撮像部（右）
２４  内側撮像部
２５  ３Ｄ調整スイッチ
２６  ３Ｄインジケータ
２８  タッチペン
３１  情報処理部
３１１  ＣＰＵ
３１２  ＧＰＵ
３２  メインメモリ
５１、５２、５３  仮想キャラクタ
５５  カーソル
５６  表示バー
５８ａ  左仮想カメラ
５８ｂ  右仮想カメラ
６１  マーカ
【図１】
2012068964.tif 000003
【図２】
2012068964.tif 000004
【図３】
2012068964.tif 000005
【図４】
2012068964.tif 000006
【図５】
2012068964.tif 000007
【図６】
2012068964.tif 000008
【図７】
2012068964.tif 000009
【図８】
2012068964.tif 000010
【図９】
2012068964.tif 000011
【図１０】
2012068964.tif 000012
【図１１】
2012068964.tif 000013
【図１２】
2012068964.tif 000014
【図１３】
2012068964.tif 000015
【図１４】
2012068964.tif 000016
【図１５】
2012068964.tif 000017
【図１６】
2012068964.tif 000018
【図１７】
2012068964.tif 000019
【図１８】
2012068964.tif 000020
【図１９】
2012068964.tif 000021
【図２０】
2012068964.tif 000022
【図２１】
2012068964.tif 000023
【図２２】
2012068964.tif 000024
【図２３】
2012068964.tif 000025
【手続補正書】
【提出日】平成23年4月26日(2011.4.26)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
実カメラによって撮像された画像に仮想オブジェクト画像を重ね合わせた画像を生成する画像処理装置のコンピュータにおいて実行される画像処理プログラムであって、前記コンピュータを、
前記実カメラによって撮像された被写体の実画像を取得する実画像取得手段、
実空間における前記実カメラの位置および姿勢に応じた位置姿勢情報を取得する位置姿勢情報取得手段、
仮想空間内において、前記位置姿勢情報取得手段によって取得された位置姿勢情報に基づいて仮想カメラの位置および姿勢を設定する仮想カメラ設定手段、
ユーザによる入力手段への入力に応じて、前記仮想空間内に配置された仮想オブジェクトの少なくとも一部の位置および姿勢の少なくとも一方を変更する仮想オブジェクト変更手段、
前記仮想オブジェクト変更手段によって位置および姿勢の少なくとも一方が変更された前記仮想オブジェクトを前記仮想カメラで撮像することにより仮想オブジェクト画像を生成する仮想オブジェクト画像生成手段、
前記実画像取得手段によって取得された実画像と前記仮想オブジェクト画像生成手段によって生成された仮想オブジェクト画像とを重ね合わせた重畳画像を生成する重畳画像生成手段、および、
ユーザによる撮影指示に応じて、前記重畳画像を記憶手段に保存する保存手段、として機能させる画像処理プログラム。
【請求項２】
前記位置姿勢情報取得手段は、前記実画像取得手段によって取得された実画像に含まれる特定対象物を検出し、当該検出結果に基づいて、前記特定対象物に対する相対的な前記実カメラの位置および姿勢を取得する、請求項１に記載の画像処理プログラム。
【請求項３】
前記画像処理装置は表示手段に接続可能であり、
前記重畳画像生成手段は、前記撮影指示が行われるまで、前記実画像取得手段によって取得された実画像と前記仮想オブジェクト画像生成手段によって生成された仮想オブジェクト画像とを重ね合わせた重畳画像を繰り返し生成し、
前記撮影指示が行われるまで、前記重畳画像生成手段によって生成された重畳画像を前記表示手段に表示させる表示制御手段として前記コンピュータを更に機能させる、請求項１又は２に記載の画像処理プログラム。
【請求項４】
前記仮想オブジェクトは、第１部位および第２部位を含み、
前記仮想オブジェクト変更手段は、ユーザによる前記入力手段への入力に応じて、前記仮想オブジェクトの前記第１部位が前記仮想カメラへ向くように、当該第１部位の姿勢を変更する部位変更手段を含む、請求項１から３の何れかに記載の画像処理プログラム。
【請求項５】
前記部位変更手段は、前記第１部位が前記仮想カメラへ向くように当該第１部位の姿勢を変更した場合において、前記第２部位を基準とした前記第１部位の姿勢が第１の範囲外である場合、前記第１部位の姿勢を当該第１の範囲の上限または下限に設定する、請求項４に記載の画像処理プログラム。
【請求項６】
前記部位変更手段は、ユーザによる前記入力手段への入力があった場合に、前記撮影指示が行われるまで、前記仮想オブジェクトの前記第１部位が前記仮想カメラへ向くように、当該第１部位の姿勢を繰り返し変更する、請求項４又は５に記載の画像処理プログラム。
【請求項７】
前記実カメラはステレオカメラであり、
前記実画像取得手段は、前記ステレオカメラの左目用実カメラで撮像した左目用実画像と前記ステレオカメラの右目用実カメラで撮像した右目用実画像とを取得し、
前記位置姿勢情報取得手段は、前記ステレオカメラの左目用実カメラおよび右目用実カメラの位置および姿勢に応じた位置姿勢情報をそれぞれ取得し、
前記仮想カメラ設定手段は、前記位置姿勢情報取得手段によって取得された前記左目用実カメラの位置姿勢情報に応じて左仮想カメラの位置および姿勢を設定し、前記位置姿勢情報取得手段によって取得された前記右目用実カメラの位置姿勢情報に応じて右仮想カメラの位置および姿勢を設定し、
前記部位変更手段は、前記仮想オブジェクトの前記第１部位が前記左仮想カメラおよび前記右仮想カメラの中間の位置に向くように、前記第１部位の姿勢を変更し、
前記仮想オブジェクト画像生成手段は、前記部位変更手段によって前記第１部位の姿勢が変更された前記仮想オブジェクトを、前記左仮想カメラおよび前記右仮想カメラで撮像することにより、左目用仮想オブジェクト画像および右目用仮想オブジェクト画像を生成し、
前記重畳画像生成手段は、前記左目用実画像と前記左目用仮想オブジェクト画像とを重ね合わせた左目用重畳画像、および、前記右目用実画像と前記右目用仮想オブジェクト画像とを重ね合わせた右目用重畳画像を生成する、請求項４から６の何れかに記載の画像処理プログラム。
【請求項８】
前記仮想オブジェクト変更手段は、ユーザによる前記入力手段への入力に応じて、前記仮想オブジェクトを移動させる移動手段を含む、請求項１から７の何れかに記載の画像処理プログラム。
【請求項９】
前記仮想オブジェクト変更手段は、ユーザによる前記入力手段への入力に応じて、当該入力の方向と前記表示手段上の前記仮想オブジェクトの移動方向とが同じになるように、当該仮想オブジェクトを移動させる移動手段を含む、請求項３に記載の画像処理プログラム。
【請求項１０】
前記移動手段は、ユーザによる前記入力手段への入力に応じて前記仮想オブジェクトを移動させた場合に前記仮想空間における第２の範囲を超えるとき、当該第２の範囲に前記仮想オブジェクトの位置を修正する、請求項８に記載の画像処理プログラム。
【請求項１１】
前記仮想オブジェクト変更手段は、ユーザによる前記入力手段への入力に応じて、前記仮想オブジェクトのポーズを変更するポーズ変更手段を含む、請求項１から１０の何れかに記載の画像処理プログラム。
【請求項１２】
前記仮想空間内に配置された複数の仮想オブジェクトから１つの仮想オブジェクトを選択する選択手段として前記コンピュータをさらに機能させ、
前記仮想オブジェクト変更手段は、ユーザによる前記入力手段への入力に応じて、前記選択手段により選択された仮想オブジェクトの少なくとも一部の位置および姿勢の少なくとも一方を変更する、請求項１から１１の何れかに記載の画像処理プログラム。
【請求項１３】
前記仮想空間内に配置された複数の仮想オブジェクトから１つの仮想オブジェクトを選択する選択手段として前記コンピュータをさらに機能させ、
前記仮想オブジェクト変更手段は、ユーザによる前記入力手段への入力に応じて、前記選択手段により選択された仮想オブジェクトの少なくとも一部の位置および姿勢の少なくとも一方を変更し、
前記重畳画像生成手段は、前記選択手段によって前記仮想オブジェクトが選択されたことを示すカーソルを更に重ね合わせた重畳画像を生成し、
前記表示制御手段は、前記カーソルを更に重ね合せた重畳画像を前記表示手段に表示させ、
前記保存手段は、ユーザによる撮影指示に応じて、前記カーソルを非表示にして前記重畳画像を記憶手段に保存する、請求項３に記載の画像処理プログラム。
【請求項１４】
実カメラによって撮像された画像に仮想オブジェクト画像を重ね合わせた画像を生成する画像処理装置であって、
前記実カメラによって撮像された被写体の実画像を取得する実画像取得手段と、
実空間における前記実カメラの位置および姿勢に応じた位置姿勢情報を取得する位置姿勢情報取得手段と、
仮想空間内において、前記位置姿勢情報取得手段によって取得された位置姿勢情報に基づいて仮想カメラの位置および姿勢を設定する仮想カメラ設定手段と、
ユーザによる入力手段への入力に応じて、前記仮想空間内に配置された仮想オブジェクトの少なくとも一部の位置および姿勢の少なくとも一方を変更する仮想オブジェクト変更手段と、
前記仮想オブジェクト変更手段によって位置および姿勢の少なくとも一方が変更された前記仮想オブジェクトを前記仮想カメラで撮像することにより仮想オブジェクト画像を生成する仮想オブジェクト画像生成手段と、
前記実画像取得手段によって取得された実画像と前記仮想オブジェクト画像生成手段によって生成された仮想オブジェクト画像とを重ね合わせた重畳画像を生成する重畳画像生成手段と、
ユーザによる撮影指示に応じて、前記重畳画像を記憶手段に保存する保存手段とを備える、画像処理装置。
【請求項１５】
実カメラによって撮像された画像に仮想オブジェクト画像を重ね合わせた画像を生成する画像処理システムであって、
前記実カメラによって撮像された被写体の実画像を取得する実画像取得手段と、
実空間における前記実カメラの位置および姿勢に応じた位置姿勢情報を取得する位置姿勢情報取得手段と、
仮想空間内において、前記位置姿勢情報取得手段によって取得された位置姿勢情報に基づいて仮想カメラの位置および姿勢を設定する仮想カメラ設定手段と、
ユーザによる入力手段への入力に応じて、前記仮想空間内に配置された仮想オブジェクトの少なくとも一部の位置および姿勢の少なくとも一方を変更する仮想オブジェクト変更手段と、
前記仮想オブジェクト変更手段によって位置および姿勢の少なくとも一方が変更された前記仮想オブジェクトを前記仮想カメラで撮像することにより仮想オブジェクト画像を生成する仮想オブジェクト画像生成手段と、
前記実画像取得手段によって取得された実画像と前記仮想オブジェクト画像生成手段によって生成された仮想オブジェクト画像とを重ね合わせた重畳画像を生成する重畳画像生成手段と、
ユーザによる撮影指示に応じて、前記重畳画像を記憶手段に保存する保存手段とを備える、画像処理システム。
【請求項１６】
実カメラによって撮像された画像に仮想オブジェクト画像を重ね合わせた画像を生成する画像処理方法であって、
前記実カメラによって撮像された被写体の実画像を取得する実画像取得ステップと、
実空間における前記実カメラの位置および姿勢に応じた位置姿勢情報を取得する位置姿勢情報取得ステップと、
仮想空間内において、前記位置姿勢情報取得ステップで取得された位置姿勢情報に基づいて仮想カメラの位置および姿勢を設定する仮想カメラ設定ステップと、
ユーザによる入力手段への入力に応じて、前記仮想空間内に配置された仮想オブジェクトの少なくとも一部の位置および姿勢の少なくとも一方を変更する仮想オブジェクト変更ステップと、
前記仮想オブジェクト変更ステップで位置および姿勢の少なくとも一方が変更された前記仮想オブジェクトを前記仮想カメラで撮像することにより仮想オブジェクト画像を生成する仮想オブジェクト画像生成ステップと、
前記実画像取得ステップで取得された実画像と前記仮想オブジェクト画像生成ステップで生成された仮想オブジェクト画像とを重ね合わせた重畳画像を生成する重畳画像生成ステップと、
ユーザによる撮影指示に応じて、前記重畳画像を記憶手段に保存する保存ステップとを備える、画像処理方法。
【請求項１７】
実カメラによって撮像された画像に仮想オブジェクト画像を重ね合わせた画像を生成する画像処理装置と現実空間に配置されるマーカとを含む画像処理システムであって、
前記画像処理装置は、
前記実カメラによって撮像された被写体の実画像を取得する実画像取得手段と、
前記実画像取得手段によって取得された実画像に含まれるマーカを検出するマーカ検出手段と、
前記マーカ検出手段による検出結果に基づいて、実空間における前記マーカに対する相対的な前記実カメラの位置および姿勢に応じた位置姿勢情報を取得する位置姿勢情報取得手段と、
仮想空間内において、前記位置姿勢情報取得手段によって取得された位置姿勢情報に基づいて仮想カメラの位置および姿勢を設定する仮想カメラ設定手段と、
ユーザによる入力手段への入力に応じて、前記仮想空間内に配置された仮想オブジェクトの少なくとも一部の位置および姿勢の少なくとも一方を変更する仮想オブジェクト変更手段と、
前記仮想オブジェクト変更手段によって位置および姿勢の少なくとも一方が変更された前記仮想オブジェクトを前記仮想カメラで撮像することにより仮想オブジェクト画像を生成する仮想オブジェクト画像生成手段と、
前記実画像取得手段によって取得された実画像と前記仮想オブジェクト画像生成手段によって生成された仮想オブジェクト画像とを重ね合わせた重畳画像を生成する重畳画像生成手段と、
ユーザによる撮影指示に応じて、前記重畳画像を記憶手段に保存する保存手段とを含む画像処理システム。
【手続補正書】
【提出日】平成23年7月29日(2011.7.29)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
実カメラによって撮像された画像に仮想オブジェクト画像を重ね合わせた画像を生成する画像処理装置のコンピュータにおいて実行される画像処理プログラムであって、前記コンピュータを、
前記実カメラによって撮像された被写体の実画像を取得する実画像取得手段、
実空間における前記実カメラの位置および姿勢に応じた位置姿勢情報を取得する位置姿勢情報取得手段、
仮想空間内において、前記位置姿勢情報取得手段によって取得された位置姿勢情報に基づいて仮想カメラの位置および姿勢を設定する仮想カメラ設定手段、
ユーザによる入力手段への入力に応じて、前記仮想空間内に配置され、第１部位および第２部位を含む仮想オブジェクトの当該第１部位が前記仮想カメラへ向くように、当該第１部位の姿勢を変更する仮想オブジェクト変更手段、
前記仮想オブジェクト変更手段によって前記第１部位の姿勢が変更された前記仮想オブジェクトを前記仮想カメラで撮像することにより仮想オブジェクト画像を生成する仮想オブジェクト画像生成手段、
前記実画像取得手段によって取得された実画像と前記仮想オブジェクト画像生成手段によって生成された仮想オブジェクト画像とを重ね合わせた重畳画像を生成する重畳画像生成手段、および、
ユーザによる撮影指示に応じて、前記重畳画像を記憶手段に保存する保存手段、として機能させる画像処理プログラム。
【請求項２】
前記位置姿勢情報取得手段は、前記実画像取得手段によって取得された実画像に含まれ
る特定対象物を検出し、当該検出結果に基づいて、前記特定対象物に対する相対的な前記
実カメラの位置および姿勢を取得する、請求項１に記載の画像処理プログラム。
【請求項３】
前記画像処理装置は表示手段に接続可能であり、
前記重畳画像生成手段は、前記撮影指示が行われるまで、前記実画像取得手段によって
取得された実画像と前記仮想オブジェクト画像生成手段によって生成された仮想オブジェ
クト画像とを重ね合わせた重畳画像を繰り返し生成し、
前記撮影指示が行われるまで、前記重畳画像生成手段によって生成された重畳画像を前
記表示手段に表示させる表示制御手段として前記コンピュータを更に機能させる、請求項
１又は２に記載の画像処理プログラム。
【請求項４】
前記仮想オブジェクト変更手段は、前記第１部位が前記仮想カメラへ向くように当該第１部位の姿勢を変更した場合において、前記第２部位を基準とした前記第１部位の姿勢が第１の範囲外である場合、前記第１部位の姿勢を当該第１の範囲の上限または下限に設定する、請求項１から３の何れかに記載の画像処理プログラム。
【請求項５】
前記仮想オブジェクト変更手段は、ユーザによる前記入力手段への入力があった場合に、前記撮影指示が行われるまで、前記仮想オブジェクトの前記第１部位が前記仮想カメラへ向くように、当該第１部位の姿勢を繰り返し変更する、請求項１から４の何れかに記載の画像処理プログラム。
【請求項６】
前記実カメラはステレオカメラであり、
前記実画像取得手段は、前記ステレオカメラの左目用実カメラで撮像した左目用実画像と前記ステレオカメラの右目用実カメラで撮像した右目用実画像とを取得し、
前記位置姿勢情報取得手段は、前記ステレオカメラの左目用実カメラおよび右目用実カメラの位置および姿勢に応じた位置姿勢情報をそれぞれ取得し、
前記仮想カメラ設定手段は、前記位置姿勢情報取得手段によって取得された前記左目用実カメラの位置姿勢情報に応じて左仮想カメラの位置および姿勢を設定し、前記位置姿勢情報取得手段によって取得された前記右目用実カメラの位置姿勢情報に応じて右仮想カメラの位置および姿勢を設定し、
前記仮想オブジェクト変更手段は、前記仮想オブジェクトの前記第１部位が前記左仮想カメラおよび前記右仮想カメラの中間の位置に向くように、前記第１部位の姿勢を変更し、
前記仮想オブジェクト画像生成手段は、前記仮想オブジェクト変更手段によって前記第１部位の姿勢が変更された前記仮想オブジェクトを、前記左仮想カメラおよび前記右仮想カメラで撮像することにより、左目用仮想オブジェクト画像および右目用仮想オブジェクト画像を生成し、
前記重畳画像生成手段は、前記左目用実画像と前記左目用仮想オブジェクト画像とを重ね合わせた左目用重畳画像、および、前記右目用実画像と前記右目用仮想オブジェクト画像とを重ね合わせた右目用重畳画像を生成する、請求項１から５の何れかに記載の画像処理プログラム。
【請求項７】
前記仮想オブジェクト変更手段は、更に、ユーザによる前記入力手段への入力に応じて、前記仮想オブジェクトを移動させる、請求項１から６の何れかに記載の画像処理プログラム。
【請求項８】
前記仮想オブジェクト変更手段は、更に、ユーザによる前記入力手段への入力に応じて、当該入力の方向と前記表示手段上の前記仮想オブジェクトの移動方向とが同じになるように、当該仮想オブジェクトを移動させる、請求項３に記載の画像処理プログラム。
【請求項９】
前記仮想オブジェクト変更手段は、ユーザによる前記入力手段への入力に応じて前記仮想オブジェクトを移動させた場合に前記仮想空間における第２の範囲を超えるとき、当該第２の範囲に前記仮想オブジェクトの位置を修正する、請求項７に記載の画像処理プログラム。
【請求項１０】
前記仮想オブジェクト変更手段は、更に、ユーザによる前記入力手段への入力に応じて、前記仮想オブジェクトのポーズを変更する、請求項１から９の何れかに記載の画像処理プログラム。
【請求項１１】
前記仮想空間内に配置された複数の仮想オブジェクトから１つの仮想オブジェクトを選択する選択手段として前記コンピュータをさらに機能させ、
前記仮想オブジェクト変更手段は、更に、ユーザによる前記入力手段への入力に応じて、前記選択手段により選択された仮想オブジェクトの位置および姿勢の少なくとも一方を変更する、請求項１から１０の何れかに記載の画像処理プログラム。
【請求項１２】
実カメラによって撮像された画像に仮想オブジェクト画像を重ね合わせた画像を生成する画像処理装置であって、
前記実カメラによって撮像された被写体の実画像を取得する実画像取得手段と、
実空間における前記実カメラの位置および姿勢に応じた位置姿勢情報を取得する位置姿勢情報取得手段と、
仮想空間内において、前記位置姿勢情報取得手段によって取得された位置姿勢情報に基づいて仮想カメラの位置および姿勢を設定する仮想カメラ設定手段と、
ユーザによる入力手段への入力に応じて、前記仮想空間内に配置され、第１部位および第２部位を含む仮想オブジェクトの当該第１部位が前記仮想カメラへ向くように、当該第１部位の姿勢を変更する仮想オブジェクト変更手段と、
前記仮想オブジェクト変更手段によって前記第１部位の姿勢が変更された前記仮想オブジェクトを前記仮想カメラで撮像することにより仮想オブジェクト画像を生成する仮想オブジェクト画像生成手段と、
前記実画像取得手段によって取得された実画像と前記仮想オブジェクト画像生成手段によって生成された仮想オブジェクト画像とを重ね合わせた重畳画像を生成する重畳画像生成手段と、
ユーザによる撮影指示に応じて、前記重畳画像を記憶手段に保存する保存手段とを備える、画像処理装置。
【請求項１３】
実カメラによって撮像された画像に仮想オブジェクト画像を重ね合わせた画像を生成する画像処理システムであって、
前記実カメラによって撮像された被写体の実画像を取得する実画像取得手段と、
実空間における前記実カメラの位置および姿勢に応じた位置姿勢情報を取得する位置姿勢情報取得手段と、
仮想空間内において、前記位置姿勢情報取得手段によって取得された位置姿勢情報に基づいて仮想カメラの位置および姿勢を設定する仮想カメラ設定手段と、
ユーザによる入力手段への入力に応じて、前記仮想空間内に配置され、第１部位および第２部位を含む仮想オブジェクトの当該第１部位が前記仮想カメラへ向くように、当該第１部位の姿勢を変更する仮想オブジェクト変更手段と、
前記仮想オブジェクト変更手段によって前記第１部位の姿勢が変更された前記仮想オブジェクトを前記仮想カメラで撮像することにより仮想オブジェクト画像を生成する仮想オブジェクト画像生成手段と、
前記実画像取得手段によって取得された実画像と前記仮想オブジェクト画像生成手段によって生成された仮想オブジェクト画像とを重ね合わせた重畳画像を生成する重畳画像生成手段と、
ユーザによる撮影指示に応じて、前記重畳画像を記憶手段に保存する保存手段とを備える、画像処理システム。
【請求項１４】
実カメラによって撮像された画像に仮想オブジェクト画像を重ね合わせた画像を生成する画像処理方法であって、
実画像取得手段が、前記実カメラによって撮像された被写体の実画像を取得するステップと、
位置姿勢情報取得手段が、実空間における前記実カメラの位置および姿勢に応じた位置姿勢情報を取得するステップと、
仮想カメラ設定手段が、仮想空間内において、前記位置姿勢情報取得手段によって取得された位置姿勢情報に基づいて仮想カメラの位置および姿勢を設定するステップと、
仮想オブジェクト変更手段が、ユーザによる入力手段への入力に応じて、前記仮想空間内に配置され、第１部位および第２部位を含む仮想オブジェクトの当該第１部位が前記仮想カメラへ向くように、当該第１部位の姿勢を変更するステップと、
仮想オブジェクト画像生成手段が、前記仮想オブジェクト変更手段によって前記第１部位の姿勢が変更された前記仮想オブジェクトを前記仮想カメラで撮像することにより仮想オブジェクト画像を生成するステップと、
重畳画像生成手段が、前記実画像取得手段によって取得された実画像と前記仮想オブジェクト画像生成手段によって生成された仮想オブジェクト画像とを重ね合わせた重畳画像を生成するステップと、
保存手段が、ユーザによる撮影指示に応じて、前記重畳画像を記憶手段に保存するステップとを含む、画像処理方法。
【請求項１５】
実カメラによって撮像された画像に仮想オブジェクト画像を重ね合わせた画像を生成する画像処理装置と現実空間に配置されるマーカとを含む画像処理システムであって、
前記画像処理装置は、
前記実カメラによって撮像された被写体の実画像を取得する実画像取得手段と、
前記実画像取得手段によって取得された実画像に含まれるマーカを検出するマーカ検出手段と、
前記マーカ検出手段による検出結果に基づいて、実空間における前記マーカに対する相対的な前記実カメラの位置および姿勢に応じた位置姿勢情報を取得する位置姿勢情報取得手段と、
仮想空間内において、前記位置姿勢情報取得手段によって取得された位置姿勢情報に基づいて仮想カメラの位置および姿勢を設定する仮想カメラ設定手段と、
ユーザによる入力手段への入力に応じて、前記仮想空間内に配置され、第１部位および第２部位を含む仮想オブジェクトの当該第１部位が前記仮想カメラへ向くように、当該第１部位の姿勢を変更する仮想オブジェクト変更手段と、
前記仮想オブジェクト変更手段によって前記第１部位の姿勢が変更された前記仮想オブジェクトを前記仮想カメラで撮像することにより仮想オブジェクト画像を生成する仮想オブジェクト画像生成手段と、
前記実画像取得手段によって取得された実画像と前記仮想オブジェクト画像生成手段によって生成された仮想オブジェクト画像とを重ね合わせた重畳画像を生成する重畳画像生成手段と、
ユーザによる撮影指示に応じて、前記重畳画像を記憶手段に保存する保存手段とを含む画像処理システム。
【請求項１６】
実カメラによって撮像された画像に仮想オブジェクト画像を重ね合わせた画像を生成する画像処理装置のコンピュータにおいて実行される画像処理プログラムであって、前記コンピュータを、
前記実カメラによって撮像された被写体の実画像を取得する実画像取得手段、
実空間における前記実カメラの位置および姿勢に応じた位置姿勢情報を取得する位置姿勢情報取得手段、
仮想空間内において、前記位置姿勢情報取得手段によって取得された位置姿勢情報に基づいて仮想カメラの位置および姿勢を設定する仮想カメラ設定手段、
ユーザによる入力手段への入力に応じて、前記仮想空間内に配置された仮想オブジェクトの少なくとも一部の位置および姿勢の少なくとも一方を変更する仮想オブジェクト変更手段、
前記仮想オブジェクト変更手段によって位置および姿勢の少なくとも一方が変更された前記仮想オブジェクトを前記仮想カメラで撮像することにより仮想オブジェクト画像を生成する仮想オブジェクト画像生成手段、
前記実画像取得手段によって取得された実画像と前記仮想オブジェクト画像生成手段によって生成された仮想オブジェクト画像とを重ね合わせた重畳画像を生成する重畳画像生成手段、
ユーザによる撮影指示に応じて、前記重畳画像を記憶手段に保存する保存手段、および、
前記仮想空間内に配置された複数の仮想オブジェクトから１つの仮想オブジェクトを選択する選択手段、として機能させ、
前記仮想オブジェクト変更手段は、ユーザによる前記入力手段への入力に応じて、前記選択手段により選択された仮想オブジェクトの少なくとも一部の位置および姿勢の少なくとも一方を変更し、
前記重畳画像生成手段は、前記選択手段によって前記仮想オブジェクトが選択されたことを示す選択画像を更に重ね合わせた重畳画像を生成し、
前記表示制御手段は、前記選択画像を更に重ね合せた重畳画像を前記表示手段に表示させ、
前記保存手段は、ユーザによる撮影指示に応じて、前記選択画像を非表示にして前記重畳画像を記憶手段に保存する、画像処理プログラム。
【請求項１７】
実カメラによって撮像された画像に仮想オブジェクト画像を重ね合わせた画像を生成する画像処理装置であって、
前記実カメラによって撮像された被写体の実画像を取得する実画像取得手段と、
実空間における前記実カメラの位置および姿勢に応じた位置姿勢情報を取得する位置姿勢情報取得手段と、
仮想空間内において、前記位置姿勢情報取得手段によって取得された位置姿勢情報に基づいて仮想カメラの位置および姿勢を設定する仮想カメラ設定手段と、
ユーザによる入力手段への入力に応じて、前記仮想空間内に配置された仮想オブジェクトの少なくとも一部の位置および姿勢の少なくとも一方を変更する仮想オブジェクト変更手段と、
前記仮想オブジェクト変更手段によって位置および姿勢の少なくとも一方が変更された前記仮想オブジェクトを前記仮想カメラで撮像することにより仮想オブジェクト画像を生成する仮想オブジェクト画像生成手段と、
前記実画像取得手段によって取得された実画像と前記仮想オブジェクト画像生成手段によって生成された仮想オブジェクト画像とを重ね合わせた重畳画像を生成する重畳画像生成手段と、
ユーザによる撮影指示に応じて、前記重畳画像を記憶手段に保存する保存手段と、
前記仮想空間内に配置された複数の仮想オブジェクトから１つの仮想オブジェクトを選択する選択手段とを備え、
前記仮想オブジェクト変更手段は、ユーザによる前記入力手段への入力に応じて、前記選択手段により選択された仮想オブジェクトの少なくとも一部の位置および姿勢の少なくとも一方を変更し、
前記重畳画像生成手段は、前記選択手段によって前記仮想オブジェクトが選択されたことを示す選択画像を更に重ね合わせた重畳画像を生成し、
前記表示制御手段は、前記選択画像を更に重ね合せた重畳画像を前記表示手段に表示させ、
前記保存手段は、ユーザによる撮影指示に応じて、前記選択画像を非表示にして前記重畳画像を記憶手段に保存する、画像処理装置。
【請求項１８】
実カメラによって撮像された画像に仮想オブジェクト画像を重ね合わせた画像を生成する画像処理システムであって、
前記実カメラによって撮像された被写体の実画像を取得する実画像取得手段と、
実空間における前記実カメラの位置および姿勢に応じた位置姿勢情報を取得する位置姿勢情報取得手段と、
仮想空間内において、前記位置姿勢情報取得手段によって取得された位置姿勢情報に基づいて仮想カメラの位置および姿勢を設定する仮想カメラ設定手段と、
ユーザによる入力手段への入力に応じて、前記仮想空間内に配置された仮想オブジェクトの少なくとも一部の位置および姿勢の少なくとも一方を変更する仮想オブジェクト変更手段と、
前記仮想オブジェクト変更手段によって位置および姿勢の少なくとも一方が変更された前記仮想オブジェクトを前記仮想カメラで撮像することにより仮想オブジェクト画像を生成する仮想オブジェクト画像生成手段と、
前記実画像取得手段によって取得された実画像と前記仮想オブジェクト画像生成手段によって生成された仮想オブジェクト画像とを重ね合わせた重畳画像を生成する重畳画像生成手段と、
ユーザによる撮影指示に応じて、前記重畳画像を記憶手段に保存する保存手段と、
前記仮想空間内に配置された複数の仮想オブジェクトから１つの仮想オブジェクトを選択する選択手段とを備え、
前記仮想オブジェクト変更手段は、ユーザによる前記入力手段への入力に応じて、前記選択手段により選択された仮想オブジェクトの少なくとも一部の位置および姿勢の少なくとも一方を変更し、
前記重畳画像生成手段は、前記選択手段によって前記仮想オブジェクトが選択されたことを示す選択画像を更に重ね合わせた重畳画像を生成し、
前記表示制御手段は、前記選択画像を更に重ね合せた重畳画像を前記表示手段に表示させ、
前記保存手段は、ユーザによる撮影指示に応じて、前記選択画像を非表示にして前記重畳画像を記憶手段に保存する、画像処理システム。
【請求項１９】
実カメラによって撮像された画像に仮想オブジェクト画像を重ね合わせた画像を生成する画像処理方法であって、
実画像取得手段が、前記実カメラによって撮像された被写体の実画像を取得するステップと、
位置姿勢情報取得手段が、実空間における前記実カメラの位置および姿勢に応じた位置姿勢情報を取得するステップと、
仮想カメラ設定手段が、仮想空間内において、前記位置姿勢情報取得手段によって取得された位置姿勢情報に基づいて仮想カメラの位置および姿勢を設定するステップと、
仮想オブジェクト変更手段が、ユーザによる入力手段への入力に応じて、前記仮想空間内に配置された仮想オブジェクトの少なくとも一部の位置および姿勢の少なくとも一方を変更するステップと、
仮想オブジェクト画像生成手段が、前記仮想オブジェクト変更手段によって位置および姿勢の少なくとも一方が変更された前記仮想オブジェクトを前記仮想カメラで撮像することにより仮想オブジェクト画像を生成するステップと、
重畳画像生成手段が、前記実画像取得手段によって取得された実画像と前記仮想オブジェクト画像生成手段によって生成された仮想オブジェクト画像とを重ね合わせた重畳画像を生成するステップと、
保存手段が、ユーザによる撮影指示に応じて、前記重畳画像を記憶手段に保存するステップと、
選択手段が、前記仮想空間内に配置された複数の仮想オブジェクトから１つの仮想オブジェクトを選択するステップとを含み、
前記仮想オブジェクト変更手段は、ユーザによる前記入力手段への入力に応じて、前記選択手段により選択された仮想オブジェクトの少なくとも一部の位置および姿勢の少なくとも一方を変更し、
前記重畳画像生成手段は、前記選択手段によって前記仮想オブジェクトが選択されたことを示す選択画像を更に重ね合わせた重畳画像を生成し、
前記表示制御手段は、前記選択画像を更に重ね合せた重畳画像を前記表示手段に表示させ、
前記保存手段は、ユーザによる撮影指示に応じて、前記選択画像を非表示にして前記重畳画像を記憶手段に保存する、画像処理方法。
【請求項２０】
実カメラによって撮像された画像に仮想オブジェクト画像を重ね合わせた画像を生成する画像処理装置と現実空間に配置されるマーカとを含む画像処理システムであって、
前記画像処理装置は、
前記実カメラによって撮像された被写体の実画像を取得する実画像取得手段と、
前記実画像取得手段によって取得された実画像に含まれるマーカを検出するマーカ検出手段と、
前記マーカ検出手段による検出結果に基づいて、実空間における前記マーカに対する相対的な前記実カメラの位置および姿勢に応じた位置姿勢情報を取得する位置姿勢情報取得手段と、
仮想空間内において、前記位置姿勢情報取得手段によって取得された位置姿勢情報に基づいて仮想カメラの位置および姿勢を設定する仮想カメラ設定手段と、
ユーザによる入力手段への入力に応じて、前記仮想空間内に配置された仮想オブジェクトの少なくとも一部の位置および姿勢の少なくとも一方を変更する仮想オブジェクト変更手段と、
前記仮想オブジェクト変更手段によって位置および姿勢の少なくとも一方が変更された前記仮想オブジェクトを前記仮想カメラで撮像することにより仮想オブジェクト画像を生成する仮想オブジェクト画像生成手段と、
前記実画像取得手段によって取得された実画像と前記仮想オブジェクト画像生成手段によって生成された仮想オブジェクト画像とを重ね合わせた重畳画像を生成する重畳画像生成手段と、
ユーザによる撮影指示に応じて、前記重畳画像を記憶手段に保存する保存手段と、
前記仮想空間内に配置された複数の仮想オブジェクトから１つの仮想オブジェクトを選択する選択手段とを含み、
前記仮想オブジェクト変更手段は、ユーザによる前記入力手段への入力に応じて、前記選択手段により選択された仮想オブジェクトの少なくとも一部の位置および姿勢の少なくとも一方を変更し、
前記重畳画像生成手段は、前記選択手段によって前記仮想オブジェクトが選択されたことを示す選択画像を更に重ね合わせた重畳画像を生成し、
前記表示制御手段は、前記選択画像を更に重ね合せた重畳画像を前記表示手段に表示させ、
前記保存手段は、ユーザによる撮影指示に応じて、前記選択画像を非表示にして前記重畳画像を記憶手段に保存する、画像処理システム。
【手続補正書】
【提出日】平成23年10月13日(2011.10.13)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
実カメラによって撮像された画像に仮想オブジェクト画像を重ね合わせた画像を生成する画像処理装置のコンピュータにおいて実行される画像処理プログラムであって、前記コンピュータを、
前記実カメラによって撮像された被写体の実画像を取得する実画像取得手段、
実空間における前記実カメラの位置および姿勢に応じた位置姿勢情報を取得する位置姿勢情報取得手段、
仮想空間内において、前記位置姿勢情報取得手段によって取得された位置姿勢情報に基づいて仮想カメラの位置および姿勢を設定する仮想カメラ設定手段、
ユーザによる入力手段への入力に応じて、前記仮想空間内に配置された仮想オブジェクトの少なくとも一部の位置および姿勢の少なくとも一方を変更する仮想オブジェクト変更手段、
前記仮想オブジェクト変更手段によって位置および姿勢の少なくとも一方が変更された前記仮想オブジェクトを前記仮想カメラで撮像することにより仮想オブジェクト画像を生成する仮想オブジェクト画像生成手段、
前記実画像取得手段によって取得された実画像と前記仮想オブジェクト画像生成手段によって生成された仮想オブジェクト画像とを重ね合わせた重畳画像を生成する重畳画像生成手段、
前記重畳画像生成手段によって生成された重畳画像を表示手段に表示させる表示制御手段、
ユーザによる撮影指示に応じて、前記重畳画像を記憶手段に保存する保存手段、および、
前記仮想空間内に配置された複数の仮想オブジェクトから１つの仮想オブジェクトを選択する選択手段、として機能させ、
前記仮想オブジェクト変更手段は、ユーザによる前記入力手段への入力に応じて、前記選択手段により選択された仮想オブジェクトの少なくとも一部の位置および姿勢の少なくとも一方を変更し、
前記重畳画像生成手段は、前記選択手段によって前記仮想オブジェクトが選択されたことを示す選択画像を更に重ね合わせた重畳画像を生成し、
前記表示制御手段は、前記選択画像を更に重ね合せた重畳画像を前記表示手段に表示させ、
前記保存手段は、ユーザによる撮影指示に応じて、前記選択画像を非表示にして前記重畳画像を記憶手段に保存する画像処理プログラム。
【請求項２】
前記位置姿勢情報取得手段は、前記実画像取得手段によって取得された実画像に含まれる特定対象物を検出し、当該検出結果に基づいて、前記特定対象物に対する相対的な前記実カメラの位置および姿勢を取得する、請求項１に記載の画像処理プログラム。
【請求項３】
前記重畳画像生成手段は、前記撮影指示が行われるまで、前記実画像取得手段によって取得された実画像と前記仮想オブジェクト画像生成手段によって生成された仮想オブジェクト画像とを重ね合わせた重畳画像を繰り返し生成し、
前記表示制御手段は、前記撮影指示が行われるまで、前記重畳画像生成手段によって生成された重畳画像を前記表示手段に表示させる、請求項１又は２に記載の画像処理プログラム。
【請求項４】
前記仮想オブジェクト変更手段は、更に、ユーザによる前記入力手段への入力に応じて、前記仮想オブジェクトを移動させる、請求項１から３の何れかに記載の画像処理プログラム。
【請求項５】
前記仮想オブジェクト変更手段は、更に、ユーザによる前記入力手段への入力に応じて、当該入力の方向と前記表示手段上の前記仮想オブジェクトの移動方向とが同じになるように、当該仮想オブジェクトを移動させる、請求項１に記載の画像処理プログラム。
【請求項６】
前記仮想オブジェクト変更手段は、ユーザによる前記入力手段への入力に応じて前記仮想オブジェクトを移動させた場合に前記仮想空間における第２の範囲を超えるとき、当該第２の範囲に前記仮想オブジェクトの位置を修正する、請求項４に記載の画像処理プログラム。
【請求項７】
前記仮想オブジェクト変更手段は、更に、ユーザによる前記入力手段への入力に応じて、前記仮想オブジェクトのポーズを変更する、請求項１から６の何れかに記載の画像処理プログラム。
【請求項８】
実カメラによって撮像された画像に仮想オブジェクト画像を重ね合わせた画像を生成する画像処理装置であって、
前記実カメラによって撮像された被写体の実画像を取得する実画像取得手段と、
実空間における前記実カメラの位置および姿勢に応じた位置姿勢情報を取得する位置姿勢情報取得手段と、
仮想空間内において、前記位置姿勢情報取得手段によって取得された位置姿勢情報に基づいて仮想カメラの位置および姿勢を設定する仮想カメラ設定手段と、
ユーザによる入力手段への入力に応じて、前記仮想空間内に配置された仮想オブジェクトの少なくとも一部の位置および姿勢の少なくとも一方を変更する仮想オブジェクト変更手段と、
前記仮想オブジェクト変更手段によって位置および姿勢の少なくとも一方が変更された前記仮想オブジェクトを前記仮想カメラで撮像することにより仮想オブジェクト画像を生成する仮想オブジェクト画像生成手段と、
前記実画像取得手段によって取得された実画像と前記仮想オブジェクト画像生成手段によって生成された仮想オブジェクト画像とを重ね合わせた重畳画像を生成する重畳画像生成手段と、
前記重畳画像生成手段によって生成された重畳画像を表示手段に表示させる表示制御手段と、
ユーザによる撮影指示に応じて、前記重畳画像を記憶手段に保存する保存手段と、
前記仮想空間内に配置された複数の仮想オブジェクトから１つの仮想オブジェクトを選択する選択手段とを備え、
前記仮想オブジェクト変更手段は、ユーザによる前記入力手段への入力に応じて、前記選択手段により選択された仮想オブジェクトの少なくとも一部の位置および姿勢の少なくとも一方を変更し、
前記重畳画像生成手段は、前記選択手段によって前記仮想オブジェクトが選択されたことを示す選択画像を更に重ね合わせた重畳画像を生成し、
前記表示制御手段は、前記選択画像を更に重ね合せた重畳画像を前記表示手段に表示させ、
前記保存手段は、ユーザによる撮影指示に応じて、前記選択画像を非表示にして前記重畳画像を記憶手段に保存する、画像処理装置。
【請求項９】
実カメラによって撮像された画像に仮想オブジェクト画像を重ね合わせた画像を生成する画像処理方法であって、
実画像取得手段が、前記実カメラによって撮像された被写体の実画像を取得するステップと、
位置姿勢情報取得手段が、実空間における前記実カメラの位置および姿勢に応じた位置姿勢情報を取得するステップと、
仮想カメラ設定手段が、仮想空間内において、前記位置姿勢情報取得手段によって取得された位置姿勢情報に基づいて仮想カメラの位置および姿勢を設定するステップと、
仮想オブジェクト変更手段が、ユーザによる入力手段への入力に応じて、前記仮想空間内に配置された仮想オブジェクトの少なくとも一部の位置および姿勢の少なくとも一方を変更するステップと、
仮想オブジェクト画像生成手段が、前記仮想オブジェクト変更手段によって位置および姿勢の少なくとも一方が変更された前記仮想オブジェクトを前記仮想カメラで撮像することにより仮想オブジェクト画像を生成するステップと、
重畳画像生成手段が、前記実画像取得手段によって取得された実画像と前記仮想オブジェクト画像生成手段によって生成された仮想オブジェクト画像とを重ね合わせた重畳画像を生成するステップと、
表示制御手段が、前記重畳画像生成手段によって生成された重畳画像を表示手段に表示させるステップと、
保存手段が、ユーザによる撮影指示に応じて、前記重畳画像を記憶手段に保存するステップと、
選択手段が、前記仮想空間内に配置された複数の仮想オブジェクトから１つの仮想オブジェクトを選択するステップとを含み、
前記仮想オブジェクト変更手段は、ユーザによる前記入力手段への入力に応じて、前記選択手段により選択された仮想オブジェクトの少なくとも一部の位置および姿勢の少なくとも一方を変更し、
前記重畳画像生成手段は、前記選択手段によって前記仮想オブジェクトが選択されたことを示す選択画像を更に重ね合わせた重畳画像を生成し、
前記表示制御手段は、前記選択画像を更に重ね合せた重畳画像を前記表示手段に表示させ、
前記保存手段は、ユーザによる撮影指示に応じて、前記選択画像を非表示にして前記重畳画像を記憶手段に保存する、画像処理方法。
【請求項１０】
実カメラによって撮像された画像に仮想オブジェクト画像を重ね合わせた画像を生成する画像処理装置と現実空間に配置されるマーカとを含む画像処理システムであって、
前記画像処理装置は、
前記実カメラによって撮像された被写体の実画像を取得する実画像取得手段と、
前記実画像取得手段によって取得された実画像に含まれるマーカを検出するマーカ検出手段と、
前記マーカ検出手段による検出結果に基づいて、実空間における前記マーカに対する相対的な前記実カメラの位置および姿勢に応じた位置姿勢情報を取得する位置姿勢情報取得手段と、
仮想空間内において、前記位置姿勢情報取得手段によって取得された位置姿勢情報に基づいて仮想カメラの位置および姿勢を設定する仮想カメラ設定手段と、
ユーザによる入力手段への入力に応じて、前記仮想空間内に配置された仮想オブジェクトの少なくとも一部の位置および姿勢の少なくとも一方を変更する仮想オブジェクト変更手段と、
前記仮想オブジェクト変更手段によって位置および姿勢の少なくとも一方が変更された前記仮想オブジェクトを前記仮想カメラで撮像することにより仮想オブジェクト画像を生成する仮想オブジェクト画像生成手段と、
前記実画像取得手段によって取得された実画像と前記仮想オブジェクト画像生成手段によって生成された仮想オブジェクト画像とを重ね合わせた重畳画像を生成する重畳画像生成手段と、
前記重畳画像生成手段によって生成された重畳画像を表示手段に表示させる表示制御手段と、
ユーザによる撮影指示に応じて、前記重畳画像を記憶手段に保存する保存手段と、
前記仮想空間内に配置された複数の仮想オブジェクトから１つの仮想オブジェクトを選択する選択手段とを含み、
前記仮想オブジェクト変更手段は、ユーザによる前記入力手段への入力に応じて、前記選択手段により選択された仮想オブジェクトの少なくとも一部の位置および姿勢の少なくとも一方を変更し、
前記重畳画像生成手段は、前記選択手段によって前記仮想オブジェクトが選択されたことを示す選択画像を更に重ね合わせた重畳画像を生成し、
前記表示制御手段は、前記選択画像を更に重ね合せた重畳画像を前記表示手段に表示させ、
前記保存手段は、ユーザによる撮影指示に応じて、前記選択画像を非表示にして前記重畳画像を記憶手段に保存する、画像処理システム。