(57)【特許請求の範囲】
【請求項１】
特徴を有する複数の実オブジェクトと、表示装置及び撮像装置に接続される情報処理装置と、を含む情報処理システムであって、
前記特徴は、前記撮像装置によって撮像されることで、少なくとも、前記撮像装置に対する実オブジェクトの姿勢を特定可能な特徴であり、
前記情報処理装置は、
前記撮像装置によって撮像された撮像画像を取得する撮像画像取得手段と、
前記複数の実オブジェクトそれぞれが有する前記特徴を前記撮像画像から検出する検出手段と、
検出された前記特徴に基づき、前記複数の実オブジェクトそれぞれの姿勢を示す姿勢情報を含む複数の実オブジェクト情報を取得する実オブジェクト情報取得手段と、
前記複数の実オブジェクト情報から、前記複数の実オブジェクトの相対的な姿勢関係を示す相対姿勢情報を取得する相対姿勢情報取得手段と、
前記相対姿勢情報に基づいて、１つの仮想オブジェクトの前記仮想空間内における移動速度を制御する仮想オブジェクト制御手段と、
少なくとも前記１つの仮想オブジェクトを含む画像を前記表示装置に表示させる表示制御手段と、
を備える情報処理システム。
【請求項２】
前記相対姿勢情報取得手段は、前記複数の実オブジェクトのうちの２つの実オブジェクト間における姿勢の類似度に関する情報を含む前記相対姿勢情報を取得する
請求項１に記載の情報処理システム。
【請求項３】
前記相対姿勢情報取得手段は、前記複数の実オブジェクトにうちの２つの実オブジェクト間における姿勢の差分に関する情報を含む前記相対姿勢情報を取得する
請求項１又は２に記載の情報処理システム。
【請求項４】
前記特徴は、前記撮像装置によって撮像されることで、前記撮像装置に対する実オブジェクトの位置及び姿勢を特定可能な特徴であり、
前記実オブジェクト情報取得手段は、検出された前記特徴に基づき、前記複数の実オブジェクトそれぞれの位置及び姿勢を示す位置姿勢情報を含んだ複数の実オブジェクト情報
を取得する
請求項１から３のいずれか一項に記載の情報処理システム。
【請求項５】
前記相対姿勢情報取得手段は、前記複数の実オブジェクトのうちの少なくとも２つの実オブジェクトの位置及び姿勢から特定される向かい合わせの状態を示す情報を含む前記相対姿勢情報を取得する
請求項４に記載の情報処理システム。
【請求項６】
前記相対姿勢情報取得手段は、前記少なくとも２つの実オブジェクトのうちの２つの実オブジェクトの姿勢に関するベクトルの内積値、及び、該２つの実オブジェクトのうちの１つの実オブジェクトの姿勢に関するベクトルと、該２つの実オブジェクトの相対的な位置関係を示す相対位置ベクトルとの内積値を用いて、前記向かい合わせの状態を特定する請求項５に記載の情報処理システム。
【請求項７】
特徴を有する複数の実オブジェクトと、表示装置及び撮像装置に接続される情報処理装置と、を含む情報処理システムであって、
前記特徴は、前記撮像装置によって撮像されることで、少なくとも、前記撮像装置に対する実オブジェクトの姿勢を特定可能な特徴であり、
前記情報処理装置は、
前記撮像装置によって撮像された撮像画像を取得する撮像画像取得手段と、
前記複数の実オブジェクトそれぞれが有する前記特徴を前記撮像画像から検出する検出手段と、
検出された前記特徴に基づき、前記複数の実オブジェクトそれぞれの姿勢を示す姿勢情報を含む複数の実オブジェクト情報を取得する実オブジェクト情報取得手段と、
前記複数の実オブジェクト情報に基づいて、１つの仮想オブジェクトの姿勢に関する複数のパラメータであって、前記複数の実オブジェクト情報各々とそれぞれ対応関係にある複数のパラメータを求め、該複数のパラメータに基づく前記複数の実オブジェクトの相対的な姿勢関係から、前記１つの仮想オブジェクトの前記仮想空間内における移動速度を制御する仮想オブジェクト制御手段と、
少なくとも前記１つの仮想オブジェクトを含む画像を前記表示装置に表示させる表示制御手段と、
を備える情報処理システム。
【請求項８】
前記仮想オブジェクト制御手段は、前記１つの仮想オブジェクトの前記移動速度に基づいて、前記仮想空間に対する、前記１つの仮想オブジェクトの相対的な位置を変動させる請求項７に記載の情報処理システム。
【請求項９】
前記特徴は、前記撮像装置によって撮像されることで、前記撮像装置に対する実オブジェクトの位置及び姿勢を特定可能な特徴であり、
前記実オブジェクト情報取得手段は、前記複数の実オブジェクトそれぞれの位置及び姿勢を示す位置姿勢情報を含んだ複数の実オブジェクト情報を取得する
請求項７又は８に記載の情報処理システム。
【請求項１０】
前記情報処理装置は、仮想空間に配置される仮想カメラの位置及び姿勢を設定し、該仮想空間に、前記複数の実オブジェクト情報により位置及び姿勢が決定される前記１つの仮想オブジェクトを配置し、該仮想カメラから見た該仮想空間の画像を生成することで、仮想空間画像を描画する描画手段を更に備える
請求項４、５、６、９のいずれか一項に記載の情報処理システム。
【請求項１１】
前記表示制御手段は、前記撮像画像に前記仮想空間画像を重畳した合成画像を生成し、
該合成画像を前記表示装置に表示させる
請求項１０に記載の情報処理システム。
【請求項１２】
撮像装置によって撮像された撮像画像を取得する撮像画像取得手段と、
複数の実オブジェクトそれぞれが有する特徴であって、前記撮像装置によって撮像されることで、少なくとも、前記撮像装置に対する実オブジェクトの姿勢を特定可能な特徴を前記撮像画像から検出する検出手段と、
検出された前記特徴に基づき、前記複数の実オブジェクトそれぞれの姿勢を示す姿勢情報を含む複数の実オブジェクト情報を取得する実オブジェクト情報取得手段と、
前記複数の実オブジェクト情報から、前記複数の実オブジェクトの相対的な姿勢関係を示す相対姿勢情報を取得する相対姿勢情報取得手段と、
前記相対姿勢情報に基づいて、１つの仮想オブジェクトの前記仮想空間内における移動速度を制御する仮想オブジェクト制御手段と、
少なくとも前記１つの仮想オブジェクトを含む画像を表示装置に表示させる表示制御手段と、
を備える情報処理装置。
【請求項１３】
コンピュータが、
撮像装置によって撮像された撮像画像を取得するステップと、
複数の実オブジェクトそれぞれが有する特徴であって、前記撮像装置によって撮像されることで、少なくとも、前記撮像装置に対する実オブジェクトの姿勢を特定可能な特徴を前記撮像画像から検出するステップと、
検出された前記特徴に基づき、前記複数の実オブジェクトそれぞれの姿勢を示す姿勢情報を含む複数の実オブジェクト情報を取得するステップと、
前記複数の実オブジェクト情報から、前記複数の実オブジェクトの相対的な姿勢関係を示す相対姿勢情報を取得するステップと、
前記相対姿勢情報に基づいて、１つの仮想オブジェクトの前記仮想空間内における移動速度を制御するステップと、
少なくとも前記１つの仮想オブジェクトを含む画像を表示装置に表示させるステップと、
を実行する情報処理方法。
【請求項１４】
コンピュータに、
撮像装置によって撮像された撮像画像を取得するステップと、
複数の実オブジェクトそれぞれが有する特徴であって、前記撮像装置によって撮像されることで、少なくとも、前記撮像装置に対する実オブジェクトの姿勢を特定可能な特徴を前記撮像画像から検出するステップと、
検出された前記特徴に基づき、前記複数の実オブジェクトそれぞれの姿勢を示す姿勢情報を含む複数の実オブジェクト情報を取得するステップと、
前記複数の実オブジェクト情報から、前記複数の実オブジェクトの相対的な姿勢関係を示す相対姿勢情報を取得するステップと、
前記相対姿勢情報に基づいて、１つの仮想オブジェクトの前記仮想空間内における移動速度を制御するステップと、
少なくとも前記１つの仮想オブジェクトを含む画像を表示装置に表示させるステップと、
を実行させるための情報処理プログラム。
【請求項１５】
撮像装置によって撮像された撮像画像を取得する撮像画像取得手段と、
複数の実オブジェクトそれぞれが有する特徴であって、前記撮像装置によって撮像されることで、少なくとも、前記撮像装置に対する実オブジェクトの姿勢を特定可能な特徴を
前記撮像画像から検出する検出手段と、
検出された前記特徴に基づき、前記複数の実オブジェクトそれぞれの姿勢を示す姿勢情報を含む複数の実オブジェクト情報を取得する実オブジェクト情報取得手段と、
前記複数の実オブジェクト情報に基づいて、１つの仮想オブジェクトの姿勢に関する複数のパラメータであって、前記複数の実オブジェクト情報各々とそれぞれ対応関係にある複数のパラメータを求め、該複数のパラメータに基づく前記複数の実オブジェクトの相対的な姿勢関係から、前記１つの仮想オブジェクトの前記仮想空間内における移動速度を制御する仮想オブジェクト制御手段と、
少なくとも前記１つの仮想オブジェクトを含む画像を前記表示装置に表示させる表示制御手段と、
を備える情報処理装置。
【請求項１６】
コンピュータが、
撮像装置によって撮像された撮像画像を取得するステップと、
複数の実オブジェクトそれぞれが有する特徴であって、前記撮像装置によって撮像されることで、少なくとも、前記撮像装置に対する実オブジェクトの姿勢を特定可能な特徴を前記撮像画像から検出するステップと、
検出された前記特徴に基づき、前記複数の実オブジェクトそれぞれの姿勢を示す姿勢情報を含む複数の実オブジェクト情報を取得するステップと、
前記複数の実オブジェクト情報に基づいて、１つの仮想オブジェクトの姿勢に関する複数のパラメータであって、前記複数の実オブジェクト情報各々とそれぞれ対応関係にある複数のパラメータを求め、該複数のパラメータに基づく前記複数の実オブジェクトの相対的な姿勢関係から、前記１つの仮想オブジェクトの前記仮想空間内における移動速度を制御するステップと、
少なくとも前記１つの仮想オブジェクトを含む画像を前記表示装置に表示させるステップと、
を実行する情報処理方法。
【請求項１７】
コンピュータに、
撮像装置によって撮像された撮像画像を取得するステップと、
複数の実オブジェクトそれぞれが有する特徴であって、前記撮像装置によって撮像されることで、少なくとも、前記撮像装置に対する実オブジェクトの姿勢を特定可能な特徴を前記撮像画像から検出するステップと、
検出された前記特徴に基づき、前記複数の実オブジェクトそれぞれの姿勢を示す姿勢情報を含む複数の実オブジェクト情報を取得するステップと、
前記複数の実オブジェクト情報に基づいて、１つの仮想オブジェクトの姿勢に関する複数のパラメータであって、前記複数の実オブジェクト情報各々とそれぞれ対応関係にある複数のパラメータを求め、該複数のパラメータに基づく前記複数の実オブジェクトの相対的な姿勢関係から、前記１つの仮想オブジェクトの前記仮想空間内における移動速度を制御するステップと、
少なくとも前記１つの仮想オブジェクトを含む画像を前記表示装置に表示させるステップと、
を実行させるための情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム、情報処理装置、情報処理方法、及び、情報処理プログラムに関する。
【背景技術】
【０００２】
仮想オブジェクト等と呼ばれる各種情報を実空間に付加表示する、拡張現実（ＡＲ：Augmented Reality）と称される技術がある。例えば、カメラによって撮像された画像にお
けるマーカーの位置および姿勢に基づいて、実空間におけるマーカーとカメラとの相対位置および相対姿勢を計算する方法が開示されている（例えば、非特許文献１参照）。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】加藤博一、Mark Billinghurst、浅野浩一、橘啓八郎共著、「マーカー追跡に基づく拡張現実感システムとそのキャリブレーション」、日本バーチャルリアリティ学会論文誌、Vol.4、No.4、1999年
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来の拡張現実技術では、実空間に付加表示される１つの仮想オブジェクトは、カメラで撮像された実空間内の１つのマーカーに対応付けられる。そして、例えば、仮想オブジェクトは、対応するマーカー上に存在するように、実空間に付加表示される。このように、従来の拡張現実技術では、現実空間内のマーカーを基準として仮想オブジェクトを制御する場合、当該仮想オブジェクトの制御は、対応する１つのマーカーの位置及び姿勢等に基づいて行われていた。そのため、実空間に付加表示される仮想オブジェクトの制御のバリエーションは乏しかった。
【０００５】
本発明は、このような点を考慮してなされたものであり、マーカーを用いて仮想オブジェクトを制御する場合において、バリエーションに富んだ仮想オブジェクトの制御を可能にすることを課題とする。
【課題を解決するための手段】
【０００６】
本発明は、上述した課題を解決するために、以下の構成を採用する。すなわち、本発明は、特徴を有する複数の実オブジェクトと、表示装置及び撮像装置に接続される情報処理装置と、を含む情報処理システムであって、前記特徴は、前記撮像装置によって撮像されることで、少なくとも、前記撮像装置に対する実オブジェクトの姿勢を特定可能な特徴であり、前記情報処理装置は、前記撮像装置によって撮像された撮像画像を取得する撮像画像取得手段と、前記複数の実オブジェクトそれぞれが有する前記特徴を前記撮像画像から検出する検出手段と、検出された前記特徴に基づき、前記複数の実オブジェクトそれぞれの姿勢を示す姿勢情報を含む複数の実オブジェクト情報を取得する実オブジェクト情報取得手段と、前記複数の実オブジェクト情報に基づいて、仮想空間内において１つの仮想オブジェクトを制御する仮想オブジェクト制御手段と、少なくとも前記１つの仮想オブジェクトを含む画像を前記表示装置に表示させる表示制御手段と、を備える情報処理システムである。
【０００７】
本発明において、撮像装置に対する実オブジェクトの姿勢を特定可能な特徴とは、具体的には、いわゆるＡＲ用のマーカー、または、二次元バーコード等のコードである。
【０００８】
本発明に係る情報処理システムによれば、上記各手段を備えることによって、複数の実オブジェクトそれぞれの姿勢を示す姿勢情報を含む複数の実オブジェクト情報に基づいて、１つの仮想オブジェクトが制御される。このため、本発明によれば、いわゆるＡＲ用のマーカーを用いて仮想オブジェクトを制御する場合において、バリエーションに富んだ仮想オブジェクトの制御が可能となる。
【０００９】
また、本発明の別形態として、前記情報処理装置は、前記複数の実オブジェクト情報から、前記複数の実オブジェクトの相対的な姿勢関係を示す相対姿勢情報を取得する相対姿勢情報取得手段を更に備え、前記仮想オブジェクト制御手段は、前記相対姿勢情報に基づいて、前記１つの仮想オブジェクトを制御してもよい。
【００１０】
本発明では、相対姿勢情報取得手段によって、複数の実オブジェクトの相対的な姿勢関係を示す相対姿勢情報が取得される。これにより、本発明によれば、このような相対姿勢情報により仮想オブジェクトを制御することが可能となるため、バリエーションに富んだ仮想オブジェクトの制御が可能となる。
【００１１】
また、本発明の別形態として、前記仮想オブジェクト制御手段は、前記相対姿勢情報に基づいて、前記１つの仮想オブジェクトの状態に関するパラメータの値を変化させてもよい。
【００１２】
本発明によれば、パラメータの値を変化させることにより、仮想オブジェクトの制御が行われるため、簡易な方法での仮想オブジェクトの制御が可能となる。
【００１３】
また、本発明の別形態として、前記仮想オブジェクト制御手段が値を変化させる前記１つの仮想オブジェクトの状態に関するパラメータには、少なくとも、前記１つの仮想オブジェクトの前記仮想空間内における位置変動に関するパラメータが含まれてもよい。
【００１４】
本発明によれば、仮想オブジェクトの仮想空間内における位置変動の制御が可能となる。
【００１５】
また、本発明の別形態として、前記仮想オブジェクト制御手段は、前記１つの仮想オブジェクトの位置変動に関するパラメータの値に基づいて、仮想空間に対する、前記１つの仮想オブジェクトの相対的な位置を変動させてもよい。
【００１６】
本発明によれば、仮想オブジェクトの位置変動が、仮想空間に対する、該仮想オブジェクトの相対的な位置の変動によって実現される。そのため、本発明によれば、柔軟な方法で、仮想オブジェクトの位置変動を実現することができる。
【００１７】
また、本発明の別形態として、前記仮想オブジェクト制御手段が値を変化させる前記１つの仮想オブジェクトの前記仮想空間内における位置変動に関するパラメータには、少なくとも、前記１つの仮想オブジェクトの移動方向及び移動速度についてのパラメータが含まれてもよい。
【００１８】
本発明によれば、仮想オブジェクトの仮想空間内における移動の制御が可能となる。
【００１９】
また、本発明の別形態として、前記相対姿勢情報取得手段は、前記複数の実オブジェクトのうちの２つの実オブジェクト間における姿勢の類似度に関する情報を含む前記相対姿勢情報を取得してもよい。
【００２０】
本発明によれば、複数の実オブジェクトのうちの２つの実オブジェクト間における姿勢
の類似度に基づいて、１つの仮想オブジェクトの制御が可能となる。したがって、本発明によれば、バリエーションに富んだ仮想オブジェクトの制御が可能となる。
【００２１】
また、本発明の別形態として、前記相対姿勢情報取得手段は、前記複数の実オブジェクトにうちの２つの実オブジェクト間における姿勢の差分に関する情報を含む前記相対姿勢情報を取得してもよい。
【００２２】
本発明によれば、複数の実オブジェクトのうちの２つの実オブジェクト間における姿勢の差分に基づいて、１つの仮想オブジェクトの制御が可能となる。したがって、本発明によれば、バリエーションに富んだ仮想オブジェクトの制御が可能となる。
【００２３】
また、本発明の別形態として、前記特徴は、前記撮像装置によって撮像されることで、前記撮像装置に対する自身が付された実オブジェクトの位置及び姿勢を特定可能な特徴であり、前記実オブジェクト情報取得手段は、検出された前記特徴により、前記複数の実オブジェクトそれぞれの位置及び姿勢を示す位置姿勢情報を含んだ複数の実オブジェクト情報を取得してもよい。
【００２４】
本発明によれば、複数の実オブジェクトの位置及び姿勢に基づいて、１つの仮想オブジェクトを制御することが可能となるため、バリエーションに富んだ仮想オブジェクトの制御が可能となる。
【００２５】
また、本発明の別形態として、前記相対姿勢情報取得手段は、前記複数の実オブジェクトのうちの少なくとも２つの実オブジェクトの位置及び姿勢から特定される向かい合わせの状態を示す情報を含む前記相対姿勢情報を取得してもよい。
【００２６】
本発明によれば、複数の実オブジェクトのうちの少なくとも２つの実オブジェクトの位置及び姿勢から特定される向かい合わせの状態を示す情報に基づいて、１つの仮想オブジェクトの制御が可能となる。したがって、本発明によれば、バリエーションに富んだ仮想オブジェクトの制御が可能となる。
【００２７】
また、本発明の別形態として、前記相対姿勢情報取得手段は、前記少なくとも２つの実オブジェクトのうちの２つの実オブジェクトの姿勢に関するベクトルの内積値、及び、該２つの実オブジェクトのうちの１つの実オブジェクトの姿勢に関するベクトルと、該２つの実オブジェクトの相対的な位置関係を示す相対位置ベクトルとの内積値を用いて、前記向かい合わせの状態を特定してもよい。
【００２８】
また、本発明の別形態として、前記仮想オブジェクト制御手段は、前記複数の実オブジェクト情報に基づいて、前記１つの仮想オブジェクトの姿勢に関する複数のパラメータであって、前記複数の実オブジェクト情報各々とそれぞれ対応関係にある複数のパラメータの値により示される姿勢を制御してもよい。
【００２９】
本発明によれば、複数の実オブジェクトそれぞれの姿勢を示す姿勢情報を含む複数の実オブジェクト情報に基づいて、１つの仮想オブジェクトの姿勢が制御される。したがって、本発明によれば、バリエーションに富んだ仮想オブジェクトの制御が可能となる。
【００３０】
また、本発明の別形態として、前記仮想オブジェクト制御手段は、前記１つの仮想オブジェクトの制御において、前記姿勢に関する複数のパラメータの値により示される前記１つの仮想オブジェクトの姿勢に基づいて、前記姿勢に関する複数のパラメータを除いたその他の状態に関するパラメータの値を変化させてもよい。
【００３１】
本発明によれば、仮想オブジェクトの姿勢を制御することにより、更に、該仮想オブジェクトのその他の状態を制御することが可能となる。そのため、本発明によれば、バリエーションに富んだ仮想オブジェクトの制御が可能となる。
【００３２】
また、本発明の別形態として、前記その他の状態に関するパラメータは、仮想空間内における位置変動に関するパラメータであってもよい。
【００３３】
本発明によれば、仮想オブジェクトの姿勢を制御することにより、更に、該仮想オブジェクトの仮想空間内における位置変動を制御することが可能となる。そのため、本発明によれば、バリエーションに富んだ仮想オブジェクトの制御が可能となる。
【００３４】
また、本発明の別形態として、前記その他の状態に関するパラメータが仮想空間内における位置変動に関するパラメータであるとき、前記仮想オブジェクト制御手段は、前記１つの仮想オブジェクトの位置変動に関するパラメータの値に基づいて、仮想空間に対する、前記１つの仮想オブジェクトの相対的な位置を変動させてもよい。
【００３５】
また、本発明の別形態として、前記仮想オブジェクト制御手段が、前記複数の実オブジェクト情報に基づいて、前記１つの仮想オブジェクトの姿勢に関する複数のパラメータであって、前記複数の実オブジェクト情報各々とそれぞれ対応関係にある複数のパラメータの値を変化させるとき、前記特徴は、前記撮像装置によって撮像されることで、前記撮像装置に対する実オブジェクトの位置及び姿勢を特定可能な特徴であり、前記実オブジェクト情報取得手段は、前記複数の実オブジェクトそれぞれの位置及び姿勢を示す位置姿勢情報含んだ複数の実オブジェクト情報を取得してもよい。
【００３６】
また、本発明の別形態として、前記情報処理装置は、仮想空間に配置される仮想カメラの位置及び姿勢を設定し、該仮想空間に、前記複数の実オブジェクト情報により位置及び姿勢が決定される前記１つの仮想オブジェクトを配置し、該仮想カメラから見た該仮想空間の画像を生成することで、仮想空間画像を描画する描画手段を更に備えてもよい。
【００３７】
また、本発明の別形態として、前記情報処理装置は、前記撮像画像に前記仮想空間画像を重畳した合成画像を生成し、該合成画像を表示装置に表示させる表示制御手段を更に備えてもよい。
【００３８】
なお、本発明は、コンピュータによって実行される情報処理方法であってもよい。また、本発明は、コンピュータに実行させるための情報処理プログラムであってもよい。そして、本発明は、そのような情報処理プログラムを記録した、コンピュータその他装置、機械等が読み取り可能な記録媒体であってもよい。ここで、コンピュータ等が読み取り可能な記録媒体とは、プログラム等の情報を、電気的、磁気的、光学的、機械的、又は、化学的作用によって蓄積する媒体である。また、本発明に係る情報処理装置は、通信可能に構成された複数のコンピュータ等によって実現されてもよい。
【発明の効果】
【００３９】
本発明によれば、マーカーを用いて仮想オブジェクトを制御する場合において、バリエーションに富んだ仮想オブジェクトの制御が可能となる。
【図面の簡単な説明】
【００４０】
【図１Ａ】図１Ａは、実施の形態に係るゲームシステムの構成を例示する図である。
【図１Ｂ】図１Ｂは、実施の形態に係るゲームシステムの構成を例示する図である。
【図２】図２は、実施の形態に係るゲーム装置の外観を例示する図である。
【図３】図３は、実施の形態に係るゲーム装置の内部構成を例示するブロック図である。
【図４】図４は、実施の形態に係るゲームシステムにおいて扱われる座標系の一例を示す図である。
【図５】図５は、実施の形態に係るゲーム装置が保持する情報を例示する図である。
【図６Ａ】図６Ａは、実施の形態に係る対面状態情報を説明するための図である。
【図６Ｂ】図６Ｂは、実施の形態に係る対面状態情報を説明するための図である。
【図６Ｃ】図６Ｃは、実施の形態に係る対面状態情報を説明するための図である。
【図６Ｄ】図６Ｄは、実施の形態に係る対面状態情報を説明するための図である。
【図６Ｅ】図６Ｅは、実施の形態に係る対面状態情報を説明するための図である。
【図６Ｆ】図６Ｆは、実施の形態に係る対面状態情報を説明するための図である。
【図７】図７は、実施の形態に係るゲーム装置の機能を例示するブロック図である。
【図８】図８は、実施の形態に係るゲーム処理の流れを例示するフローチャートである。
【図９】図９は、実施の形態に係る仮想オブジェクト制御関連処理の手順を例示するフローチャートである。
【図１０】図１０は、変形例に係るゲーム装置が保持する情報を例示する図である。
【図１１】図１１は、変形例に係るゲーム装置の機能を例示するブロック図である。
【図１２】図１２は、変形例に係る仮想オブジェクト制御関連処理の手順を例示するフローチャートである。
【図１３Ａ】図１３Ａは、実施の形態に係るゲームシステムの適用例を示す図である。
【図１３Ｂ】図１３Ｂは、実施の形態に係るゲームシステムの適用例を示す図である。
【図１４Ａ】図１４Ａは、実施の形態に係るゲームシステムの適用例を示す図である。
【図１４Ｂ】図１４Ｂは、実施の形態に係るゲームシステムの適用例を示す図である。
【発明を実施するための形態】
【００４１】
以下、本発明の一側面に係る実施の形態（以下、「本実施形態」とも表記する）を、図面に基づいて説明する。ただし、以下で説明する本実施形態は、あらゆる点において本発明の例示に過ぎず、その範囲を限定しようとするものではない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。つまり、本発明の実施にあたって、本実施形態に応じた具体的構成が適宜採用されてもよい。
【００４２】
なお、本実施形態において登場するデータは、自然言語（日本語等）により説明される。しかしながら、これらのデータは、具体的には、コンピュータが認識可能な疑似言語、コマンド、パラメータ、マシン語等で指定される。
【００４３】
§１  システム構成
［ゲームシステム］
図１Ａ及び図１Ｂは、本実施形態に係るゲームシステム１００の構成例を示す。ゲームシステム１００には、ゲーム装置１、及び、複数のカード２ａ、２ｂ（ただし、カードの種類を区別しない場合には、単に「カード２」とも称する）が含まれる。ゲームシステム１００は、例えば、図１Ａ及び図１Ｂに示されるようなスキーゲームをプレイヤに提供する。ゲームシステム１００が提供するスキーゲームでは、キャラクタ４は、カード２の上に表示され続ける。そして、キャラクタ４以外の仮想オブジェクト（例えば、障害物５）が画面上において移動することで、キャラクタ４の移動が表現される。このようなキャラクタ４は、少なくともカード２の姿勢によって制御される。つまり、プレイヤは、少なくともカード２の姿勢を変えることで、所望する動作をキャラクタ４に行わせる。なお、本
実施形態は、本発明をゲームシステムに適用した例を示す。ただし、本発明の適用対象はゲームシステムに限定されない。
【００４４】
ゲーム装置１は、ディスプレイ２２（上側ＬＣＤ２２として後述する）及び実カメラ２３（外側撮像部２３として後述する）を備えている。ゲーム装置１は、仮想カメラを用いて描画（レンダリング）された仮想空間内の仮想オブジェクトを、実カメラ２３を用いて撮像された実空間の撮像画像に合成して、ディスプレイ２２に表示する機能を有する。本実施形態において、仮想オブジェクトは、ゲームのキャラクタ４、障害物５、及び、背景等である。
【００４５】
ゲームシステム１００では、ゲーム装置１の実カメラ２３を用いてカード２を撮像すると、ゲーム装置１のディスプレイ２２に、撮像された実空間には存在せず、仮想空間に配置されている仮想オブジェクトが表示される。図１Ａ及び図１Ｂに示された例では、仮想オブジェクトとして、キャラクタ４及び障害物５が示されている。キャラクタ４は、プレイヤによって操作される仮想オブジェクトである。また、障害物５は、仮想空間上に配置されている、プレイヤによって操作される仮想オブジェクト以外の仮想オブジェクトである。なお、仮想空間上に配置される、プレイヤによって操作される仮想オブジェクト以外の仮想オブジェクトの他の例として、背景等の仮想オブジェクトが挙げられる。これらの仮想オブジェクトは、以下で説明する障害物５と同様に説明される。よって、以下では、障害物５を説明することにより、プレイヤによって操作される仮想オブジェクト以外の仮想オブジェクトを説明する。
【００４６】
本実施形態に係るゲームシステム１００では、プレイヤが、ゲーム進行中に、少なくともカード２の姿勢を変えると、ゲーム装置１のディスプレイ２２に表示されるキャラクタ４の状態が変わる。例えば、図１Ａに示されるとおり、プレイヤが、カード２ａ及びカード２ｂの向きを、前方方向に揃えるとする。すると、キャラクタ４は、屈んだ姿勢となり、直滑降の動作をする。また、例えば、図１Ｂに示されるとおり、プレイヤが、カード２ａ及びカード２ｂの向きを、「ハ」の字型にするとする。すると、キャラクタ４は、腰を伸ばした姿勢となり、ボーゲンの動作をする。このように、本実施形態に係るゲームシステム１００では、キャラクタ４は、少なくとも複数のカード２の姿勢によって制御される。
【００４７】
カード２ａ、２ｂには、印刷等の方法でマーカー３ａ、３ｂ（ただし、マーカーの種類を区別しない場合には、単に「マーカー３」とも称する）が付されている。このマーカー３は、少なくともカード２の姿勢を示す指標である。すなわち、マーカー３は、実カメラ２３を用いて撮像されることで、少なくとも実カメラ２３に対する自身が付されたカード２の姿勢を特定可能な記号、文字、図形、絵、及びそれらの組み合わせ等の特徴である。本実施形態では、ゲーム装置１は、このマーカー３によりカード２の姿勢を特定する。なお、図１Ａ及び図１Ｂでは、カード２は２枚しか示されていないが、カード２は３枚以上であってもよい（後述する図１４Ａ参照）。また、図１Ａ及び図１Ｂでは、カード２を区別するため、それぞれ異なるマーカーが付されている。しかしながら、カード２を区別する必要がない場合、同一のマーカーが付されてもよい。また、少なくともカード２の姿勢を示す指標は、カード２に付されるマーカーに限定されない。例えば、少なくともカード２の姿勢を示す指標は、カード２自体の形状等であってもよい。
【００４８】
本実施形態では、キャラクタ４の配置される位置は、ゲーム装置１のディスプレイ２２において、複数のカード２（マーカー３）の位置によって決定される。図１Ａ及び図１Ｂに示される例では、キャラクタ４の左足は、カード２ａ（マーカー３ａ）上に配置される。また、キャラクタ４の右足は、カード２ｂ（マーカー３ｂ）上に配置される。したがって、本実施形態に係るマーカー３は、実カメラ２３を用いて撮像されることで、少なくと
も実カメラ２３に対する自身が付されたカード２の位置を特定することができる指標でもある。ただし、複数のカード２（マーカー３）の位置を用いる必要がない場合、マーカー３は、カード２の位置を特定可能な指標でなくてもよい。複数のカード２（マーカー３）の位置を用いる必要がない場合とは、例えば、複数のカード２（マーカー３）の位置に関係なくキャラクタ４が配置される場合等である。
【００４９】
なお、本実施形態では、仮想空間に対するキャラクタ４の相対的な位置が変化することにより、仮想空間におけるキャラクタ４の位置変動が表現される。本実施形態に係るスキーゲームでは、キャラクタ４は常にカード２上に表示される。この時、ディスプレイ２２に表示される障害物５の表示位置が変動することにより、仮想空間におけるキャラクタ４の位置変動が表現される。ただし、本発明は、本実施形態に係るスキーゲームのようにキャラクタ４が常にカード２上に表示される形式に限定される訳ではない（例えば、後述する図１４Ａ及び図１４Ｂ参照）。
【００５０】
このように、本実施形態に係るゲームシステム１００は、マーカー３が付された複数のカード２と、実カメラ２３に接続されるゲーム装置１とを含む。マーカー３は、実カメラ２３によって撮像されることで、少なくとも、実カメラ２３に対する自身が付されたカード２の姿勢を特定可能な特徴である。
【００５１】
ゲーム装置１は、実カメラ２３によって撮像された撮像画像を取得する。次に、ゲーム装置１は、複数のマーカー３をそれぞれ撮像画像から検出する。続いて、ゲーム装置１は、検出したマーカー３により、複数のカード２それぞれの姿勢を示す姿勢情報を含む複数のカード情報を取得する。そして、ゲーム装置１は、取得した複数のカード情報に基づいて、キャラクタ４を制御する。ここで、複数のカード情報とは、複数件のカード情報を指す。複数件のカード情報における１件１件のカード情報は、それぞれ異なるカード２の姿勢情報を含む。
【００５２】
なお、ゲーム装置１は、本発明の情報処理装置に相当する。複数のカード２は、本発明の複数の実オブジェクトに相当する。マーカー３は、本発明の特徴に相当する。キャラクタ４は、本発明の「１つの仮想オブジェクト」に相当する。カード情報は、本発明の実オブジェクト情報に相当する。
【００５３】
［ゲーム装置］
図２は、本実施形態に係るゲーム装置１の外観を例示する。ゲーム装置１は、下側ハウジング１１および上側ハウジング２１を有する。下側ハウジング１１と上側ハウジング２１とは、ヒンジ構造により開閉可能（折り畳み可能）に連結されている。
【００５４】
下側ハウジング１１には、下側ＬＣＤ（Liquid Crystal Display：液晶表示装置）１２、タッチパネル１３、各操作ボタン１４Ａ〜１４Ｉ、アナログスティック１５、挿入口１７、及び、挿入口１８が設けられる。
【００５５】
下側ＬＣＤ１２は、画像を（立体視可能ではなく）平面的に表示する表示装置である。タッチパネル１３はゲーム装置１の入力装置の一つである。タッチパネル１３への入力に用いるタッチペン２８は、挿入口１７（図２において点線で示される）から挿入されて収容される。なお、タッチペン２８の代わりにユーザの指を用いることもできる。
【００５６】
各操作ボタン１４Ａ〜１４Ｉは、所定の入力を行うための入力装置である。ボタン１４Ａ〜１４Ｉには、ゲーム装置１によって実行されるプログラムに応じた機能が適宜割り当てられる。例えば、十字ボタン１４Ａは、選択操作等に用いられる。例えば、各ボタン１４Ｂ〜１４Ｅは、決定操作やキャンセル操作等に用いられる。例えば、電源ボタン１４Ｆ
は、ゲーム装置１の電源をオンまたはオフにするために用いられる。例えば、セレクトボタン１４Ｇは、ゲーム中断操作等に用いられる。例えば、ＨＯＭＥボタン１４Ｈは、所定の画面を表示するための操作等に用いられる。例えば、スタートボタン１４Ｉは、ゲーム開始操作等に用いられる。また、アナログスティック１５は、方向を指示するデバイスである。
【００５７】
挿入口１８（図２において点線で示される）には、ゲームプログラムを記録した外部メモリ４５が挿入される。
【００５８】
上側ハウジング２１には、上側ＬＣＤ２２、外側左撮像部２３ａ、外側右撮像部２３ｂ、内側撮像部２４、および３Ｄ調整スイッチ２５が設けられる。
【００５９】
上側ＬＣＤ２２は、立体視可能な画像を表示する立体表示モードと、画像を平面的に表示する（平面視画像を表示する）平面表示モードとを切り替えることが可能な表示装置である。この表示モードの切り替えは、３Ｄ調整スイッチ２５によって行われる。
【００６０】
内側撮像部２４は、上側ハウジング２１の内側面２１Ａの内向きの法線方向を撮像方向とする撮像部である。外側左撮像部２３ａおよび外側右撮像部２３ｂは、いずれも内側面２１Ａとは反対の外側面の外向きの法線方向を撮像方向とする撮像部である。以降、外側左撮像部２３ａおよび外側右撮像部２３ｂをまとめて、外側撮像部２３と称する。
【００６１】
図３は、本実施形態に係るゲーム装置１の内部構成を示すブロック図である。ゲーム装置１は、上述した各部に加えて、情報処理部３１、メインメモリ３２、外部メモリインタフェイス（外部メモリＩ／Ｆ）３３、データ保存用外部メモリインタフェイス（データ保存用外部メモリＩ／Ｆ）３４、データ保存用内部メモリ３５、無線通信モジュール３６、ローカル通信モジュール３７、リアルタイムクロック（ＲＴＣ）３８、加速度センサ３９、角速度センサ４０、電源回路４１、およびインタフェイス回路（Ｉ／Ｆ回路）４２等の電子部品を備えている。これらの電子部品は、電子回路基板上に実装されて下側ハウジング１１（または上側ハウジング２１でもよい）内に収納される。
【００６２】
情報処理部３１は、所定のプログラムを実行するためのＣＰＵ（Central Processing Unit）３１１、画像処理を行うＧＰＵ（Graphics Processing Unit）３１２、ＶＲＡＭ（Video RAM）３１３等を含む。ＣＰＵ３１１は、ゲーム装置１内のメモリ（例えば外部メモリＩ／Ｆ３３に接続された外部メモリ４５やデータ保存用内部メモリ３５）に記憶されている当該所定のプログラムを実行することによって、所定の処理を実行する。なお、情報処理部３１のＣＰＵ３１１によって実行されるプログラムは、他の機器との通信によって他の機器から取得されてもよい。情報処理部３１のＧＰＵ３１２は、情報処理部３１のＣＰＵ３１１からの命令に応じて画像を生成し、ＶＲＡＭ３１３に描画する。ＶＲＡＭ３１３に描画された画像は、上側ＬＣＤ２２および／または下側ＬＣＤ１２に出力されて表示される。
【００６３】
情報処理部３１には、メインメモリ３２、外部メモリＩ／Ｆ３３、データ保存用外部メモリＩ／Ｆ３４、およびデータ保存用内部メモリ３５が接続される。外部メモリＩ／Ｆ３３は、外部メモリ４５を着脱自在に接続するためのインタフェイスである。また、データ保存用外部メモリＩ／Ｆ３４は、データ保存用外部メモリ４６を着脱自在に接続するためのインタフェイスである。
【００６４】
メインメモリ３２は、情報処理部３１（ＣＰＵ３１１）のワーク領域やバッファ領域として用いられる揮発性の記憶手段である。即ち、メインメモリ３２は、各種データを一時的に記憶したり、外部（外部メモリ４５や他の機器等）から取得されるプログラムを一時
的に記憶したりする。本実施形態では、メインメモリ３２として、例えば、ＰＳＲＡＭ（Pseudo-Static Random Access Memory）が用いられる。
【００６５】
外部メモリ４５は、情報処理部３１によって実行されるプログラムを記憶するための不揮発性の記憶手段である。外部メモリ４５は、例えば、読み取り専用の半導体メモリで構成される。外部メモリ４５が外部メモリＩ／Ｆ３３に接続されると、情報処理部３１は外部メモリ４５に記憶されたプログラムを読み込むことができる。情報処理部３１が読み込んだプログラムを実行することにより、所定の処理が行われる。
【００６６】
データ保存用外部メモリ４６は、不揮発性の読み書き可能なメモリ（例えばＮＡＮＤ型フラッシュメモリ）であり、所定のデータを格納するために用いられる。例えば、データ保存用外部メモリ４６は、ＳＤカードである。データ保存用内部メモリ３５は、読み書き可能な不揮発性メモリ（例えばＮＡＮＤ型フラッシュメモリ）で構成され、所定のデータを格納するために用いられる。例えば、データ保存用外部メモリ４６およびデータ保存用内部メモリ３５には、無線通信モジュール３６を介した無線通信によってダウンロードされたデータやプログラムが格納される。
【００６７】
情報処理部３１には、無線通信モジュール３６およびローカル通信モジュール３７が接続される。無線通信モジュール３６は、例えば、ＩＥＥＥ８０２．１１ｂ／ｇの規格に準拠した方式により、無線ＬＡＮに接続する機能を有する。情報処理部３１は、無線通信モジュール３６を用いてインターネットを介して他の機器との間でデータを送受信したり、ＩＥＥＥ８０２．１１ｂ／ｇのアドホックモードにおいて、他のゲーム装置１と直接無線通信を行ったりすることが可能である。また、ローカル通信モジュール３７は、所定の通信方式（例えば赤外線通信）により同種のゲーム装置との間で無線通信を行う機能を有する。情報処理部３１は、ローカル通信モジュール３７を用いて同種の他のゲーム装置１との間でデータを送受信することができる。
【００６８】
情報処理部３１には、加速度センサ３９が接続される。加速度センサ３９は、３軸（向に沿った直線方向の加速度（直線加速度）の大きさを検出する。なお、加速度センサ３９は、静電容量式の加速度センサであっても、他の方式の加速度センサであってもよい。また、加速度センサ３９は１軸または２軸方向を検出する加速度センサであってもよい。情報処理部３１は、加速度センサ３９が検出した加速度を示すデータ（加速度データ）を受信して、ゲーム装置１の姿勢や動きを算出する。
【００６９】
情報処理部３１には、角速度センサ４０が接続される。角速度センサ４０は、ゲーム装置１の３軸周りに生じる角速度をそれぞれ検出し、検出した角速度を示すデータ（角速度データ）を情報処理部３１へ出力する。情報処理部３１は、角速度センサ４０から出力された角速度データを受信して、ゲーム装置１の姿勢や動きを算出する。
【００７０】
情報処理部３１には、ＲＴＣ３８および電源回路４１が接続される。ＲＴＣ３８は、時間をカウントして情報処理部３１に出力する。情報処理部３１は、ＲＴＣ３８によって計時された時間に基づき現在時刻を計算する。電源回路４１は、ゲーム装置１が有する電源（例えば、下側ハウジング１１に収納される充電式電池）からの電力を制御し、ゲーム装置１の各部品に電力を供給する。
【００７１】
情報処理部３１には、Ｉ／Ｆ回路４２が接続される。Ｉ／Ｆ回路４２には、マイク４３、スピーカ４４、およびタッチパネル１３が接続される。マイク４３は、ユーザの音声を検知して音声信号をＩ／Ｆ回路４２に出力する。スピーカ４４は、Ｉ／Ｆ回路４２からの音声信号をアンプ（図示せず）により増幅し、音声を出力する。Ｉ／Ｆ回路４２は、マイク４３およびスピーカ４４の制御を行う音声制御回路と、タッチパネル１３の制御を行う
タッチパネル制御回路とを含む。音声制御回路は、音声信号に対するＡ／Ｄ変換およびＤ／Ａ変換を行ったり、音声信号を所定の形式の音声データに変換したりする。本実施形態では、タッチパネル１３は、抵抗膜方式のタッチパネルが用いられる。ただし、タッチパネル１３は、抵抗膜方式に限らず、例えば、静電容量方式等、任意の押圧式のタッチパネルを用いることができる。タッチパネル制御回路は、タッチパネル１３からの信号に基づいて所定の形式のタッチパネル１３のタッチ位置座標を生成して情報処理部３１に出力する。情報処理部３１は、タッチ位置データを取得することにより、タッチパネル１３に対して入力が行われたタッチ位置を特定することができる。
【００７２】
操作ボタン１４及びアナログスティック１５は、情報処理部３１に接続され、各操作ボタン（例えば、図２における１４Ａ〜１４Ｉ、１５）に対する入力状況（押下されたか否か）を示す操作データを情報処理部３１に出力する。情報処理部３１は、操作ボタン１４及びアナログスティック１５から操作データを取得することによって、操作ボタン１４及びアナログスティック１５に対する入力に応じた処理を実行する。
【００７３】
下側ＬＣＤ１２および上側ＬＣＤ２２は、情報処理部３１に接続される。下側ＬＣＤ１２および上側ＬＣＤ２２は、情報処理部３１（ＧＰＵ３１２）の指示にしたがって画像を表示する。下側ＬＣＤ１２は、画像を（立体視可能ではなく）平面的に表示する表示装置である。下側ＬＣＤ１２の画素数は、一例として、３２０ｄｏｔ×２４０ｄｏｔ（横×縦）である。なお、本実施形態では表示装置としてＬＣＤを用いているが、例えば、ＥＬ（Electro Luminescence：電界発光）を利用した表示装置等、他の表示装置が利用されてもよい。また、下側ＬＣＤ１２として、所望の解像度を有する表示装置を利用することができる。
【００７４】
上側ＬＣＤ２２は、裸眼立体視可能な表示装置である。上側ＬＣＤ２２は、例えば、レンチキュラー方式、又は、パララックスバリア方式（視差バリア方式）等のＬＣＤである。これにより、上側ＬＣＤ２２は、横方向に交互に表示される左目用画像と右目用画像とを左目および右目のそれぞれに分解して見えるように表示することができる。上側ＬＣＤ２２の画素数は、一例として、８００ｄｏｔ×２４０ｄｏｔ（横×縦）である。本実施形態では、上側ＬＣＤ２２は液晶表示装置であるとして説明される。ただし、これに限らず、例えば、ＥＬを利用した表示装置などが利用されてもよい。また、上側ＬＣＤ２２として、任意の解像度の表示装置を利用することができる。
【００７５】
外側撮像部２３及び内側撮像部２４は、情報処理部３１に接続される。外側撮像部２３および内側撮像部２４は、情報処理部３１の指示にしたがって画像を撮像し、撮像した画像データを情報処理部３１に出力する。
【００７６】
内側撮像部２４は、所定の解像度を有する撮像素子と、レンズとを含む。撮像素子は、例えば、ＣＣＤ（Charge Coupled Device）イメージセンサやＣＭＯＳ（Complementary Metal Oxide Semiconductor）イメージセンサ等である。レンズは、ズーム機構を有するものでもよい。
【００７７】
外側左撮像部２３ａ及び外側右撮像部２３ｂは、それぞれ所定の共通の解像度を有する撮像素子（例えば、ＣＣＤイメージセンサやＣＭＯＳイメージセンサ等）と、レンズとを含む。レンズは、ズーム機構を有するものでもよい。外側左撮像部２３ａと外側右撮像部２３ｂとは、ゲーム装置１が実行するプログラムによって、２つの外側撮像部（外側左撮像部２３ａ及び外側右撮像部２３ｂ）のいずれか一方を単独で使用可能である。本実施形態では、何れか一方の外側撮像部のみを使用することとして説明する。
【００７８】
３Ｄ調整スイッチ２５は、情報処理部３１に接続される。３Ｄ調整スイッチ２５は、ス
ライダの位置に応じた電気信号を情報処理部３１に送信する。
【００７９】
［座標系］
図４は、本実施形態に係るゲームシステム１００において扱われる座標系の一例を示す。例えば、本実施形態に係るゲームシステム１００は、マーカー座標系（Ｘm、Ｙm、Ｚm
）と、仮想空間座標系（Ｘg、Ｙg、Ｚg）と、カメラ座標系（Ｘc、Ｙc、Ｚc）と、撮像画像平面座標系（Ｘp、Ｙp）（不図示）とを扱う。なお、図４では、マーカー３ａのマーカー座標系は（Ｘma、Ｙma、Ｚma）、マーカー３ｂのマーカー座標系は（Ｘmb、Ｙmb、Ｚmb）と表記されている。ただし、マーカー３ａとマーカー３ｂのマーカー座標系を区別しない場合は、マーカー３の座標系を（Ｘm、Ｙm、Ｚm）と表記する。
【００８０】
マーカー座標系（Ｘm、Ｙm、Ｚm）は、マーカー３を基準として設定される座標系であ
る。マーカー座標系は、例えば、マーカー３の中心点を原点とし、互いに直交する座標軸によって定義される座標系である。本実施形態では、マーカー座標系は、マーカー３（カード２）による操作対象の仮想オブジェクト（キャラクタ４）の配置等に用いられる。
【００８１】
例えば、マーカー３には前後及び左右の方向が定義されている。図４に示される例では、マーカー３の前方向は、矢印（マーカー３）によって示される方向である。この時、例えば、マーカー座標系のＸ軸（Ｘm）は、マーカー３の前後方向の軸として定義される。
また、マーカー座標系のＹ軸（Ｙm）は、マーカー３の左右方向の軸として定義される。
そして、マーカー座標系のＺ軸（Ｚm）は、マーカー３が付されている平面の法線方向の
軸として定義される。なお、本実施形態では、マーカー座標系のＸ軸方向は、マーカー３によって示される方向（矢印の方向）と一致している。これは、マーカー３とマーカー座標系との対応関係の説明を簡単にするためであり、本発明は、このような形式に限定される訳ではない。マーカー座標系のＸ軸、Ｙ軸、及び、Ｚ軸は、その他の基準に従って定義されてもよい。
【００８２】
なお、マーカー座標系は、図４に示されるように、マーカー３毎に定義される。ただし、本実施形態に係るゲームシステム１００は、いずれか１つのマーカー座標系を各マーカー３に対して共有して用いることも可能である。また、マーカー座標系の原点は、マーカー３の中心点でなくてもよい。例えば、マーカー座標系の原点は、マーカー３におけるいずれかの特徴点であってもよい。
【００８３】
仮想空間座標系（Ｘg、Ｙg、Ｚg）は、マーカー３（カード２）による操作対象以外の
仮想オブジェクト（障害物５）の配置に係る座標系である。
【００８４】
カメラ座標系（Ｘc、Ｙc、Ｚc）は、ゲーム装置１の外側左撮像部２３ａ又は外側左撮
像部２３ｂ（以下、単に「外側撮像部２３」と称する）の焦点位置を原点とし、外側撮像部２３の撮像方向にＺ軸（Ｚc）が定義され、撮像方向と直交する平面上にＸ軸（Ｘc）及びＹ軸（Ｙc）が定義された座標系である。
【００８５】
撮像画像平面座標系（Ｘp、Ｙp）は、ゲーム装置１の外側撮像部２３によって撮像された撮像画像の平面上にＸ軸（Ｘp）及びＹ軸（Ｙp）が定義された座標系である。
【００８６】
マーカー座標系は、回転及び平行移動により、カメラ座標系に変換可能である。本実施形態では、このような回転及び平行移動は、同次変換行列Ｔcmによって行われる。ただし、マーカー座標系をカメラ座標系に変換する回転及び平行移動は、行列計算以外の方法で実現されてもよい。この同次変換行列Ｔcmは、後述するとおり、マーカー３から求めることができる。
【００８７】
なお、図４では、マーカー３ａのマーカー座標系をカメラ座標系に変換する同次変換行列は、「Ｔcma」と表記されている。また、マーカー３ｂのマーカー座標系をカメラ座標
系に変換する同次変換行列は、「Ｔcmb」と表記されている。
【００８８】
また、仮想空間座標系は、マーカー座標系と同様、回転及び平行移動により、カメラ座標系に変換可能である。本実施形態では、このような回転及び平行移動は、同次変換行列Ｔcgによって行われる。ただし、仮想空間座標系をカメラ座標系に変換する回転及び平行移動は、行列計算以外の方法で実現されてもよい。この同次変換行列Ｔcgは、まず、初期設定により与えられる。その後、加速度センサ３９によって検出されるゲーム装置１の平行移動、及び、角速度センサ４０によって検出されるゲーム装置１の回転移動に基づいて、同次変換行列Ｔcgは適切に更新される。
【００８９】
また、カメラ座標系は、例えば、透視変換モデルによって、撮像画像平面座標系に変換可能である。
【００９０】
本実施形態において、図１Ａ及び図１Ｂにおいて示されるキャラクタ４の配置位置は、マーカー座標系を用いて表現される。また、障害物５の配置位置は、仮想空間座標系を用いて表現される。ゲーム装置１は、同次変換行列Ｔcm及び同次変換行列Ｔcgによって、マーカー座標系及び仮想空間座標系をそれぞれカメラ座標系に変換する。また、ゲーム装置１は、透視変換モデルによって、カメラ座標系を撮像画像平面座標系に変換する。そして、ゲーム装置１は、撮像画像平面座標系により表現されているキャラクタ４と障害物５の画像（仮想カメラから見た仮想空間の画像）を生成することで、仮想空間画像を描画（レンダリング）する。更に、ゲーム装置１は、描画した仮想空間画像と、外部撮像装置２３により撮像した撮像画像とを重畳した合成画像をディスプレイ２２に表示する。このように、本実施形態では、実空間において用いられるカメラ座標系（及び、マーカー座標系）が、仮想空間においても用いられる。したがって、本実施形態では、実空間と仮想空間で共通する座標系が用いられるため、仮想空間画像における仮想オブジェクトと実空間の画像（撮像画像）における実オブジェクトとの位置合わせを容易に行うことができる。
【００９１】
また、本実施形態において、キャラクタ４及び障害物５の仮想オブジェクトの位置変動は、仮想空間に対する、キャラクタ４の相対的な位置変動によって実現される。例えば、キャラクタ４は位置変動する仮想オブジェクト、障害物５は位置変動しない仮想オブジェクトであるとする。そして、キャラクタ４は、カード２（マーカー３）上に表示される仮想オブジェクトであるとする。
【００９２】
この時、キャラクタ４は、位置変動する仮想オブジェクトであるため、位置変動に関するパラメータに値を持つ。位置変動に関するパラメータは、例えば、移動方向及び移動速度についてのパラメータである。そして、移動方向は、例えば、マーカー座標系により定義される。
【００９３】
ここで、キャラクタ４の位置変動に関するパラメータの値に従って、キャラクタ４の配置位置の座標値を変動させるとする。そうすると、キャラクタ４は、マーカー座標系において移動してしまうため、カード２（マーカー３）上に表示されなくなってしまう。よって、この場合、ゲーム装置１は、キャラクタ４の配置位置の座標値を変動させるのではなく、障害物５の座標値を変動させることにより、キャラクタ４の位置変動を実現する。例えば、まず、ゲーム装置１は、マーカー座標系において、キャラクタ４の移動方向とは逆方向のベクトルであって、その大きさがキャラクタ４の速さと一致するベクトルを用意する。次に、ゲーム装置１は、用意したベクトルを、同次変換行列Ｔcm及び同次変換行列Ｔcgによって、仮想空間座標系により表現されるベクトルに変換する。そして、ゲーム装置１は、変換したベクトルに従って、障害物５の座標値を変動させる。これにより、キャラ
クタ４と障害物５との関係において、キャラクタ４の相対的な位置は変動する。すなわち、仮想空間に対する、キャラクタ４の相対的な位置変動が実現される。
【００９４】
ただし、キャラクタ４の相対的な位置変動は、このような形式に限定されない。例えば、仮想空間座標系において、カメラ座標系の原点の位置、及び、マーカー座標系の原点の位置が予め定められているとする。この時、ゲーム装置１は、例えば、マーカー座標系において、キャラクタ４の移動方向のベクトルであって、その大きさがキャラクタ４の速さと一致するベクトルを用意する。次に、ゲーム装置１は、用意したベクトルを、同次変換行列Ｔcm及び同次変換行列Ｔcgによって、仮想空間座標系により表現されるベクトルに変換する。そして、ゲーム装置１は、変換したベクトルに従って、仮想空間座標系における、カメラ座標系の原点の位置、及び、マーカー座標系の原点の位置を変動させる。これにより、キャラクタ４と障害物５との関係において、キャラクタ４の相対的な位置は変動する。すなわち、仮想空間に対する、キャラクタ４の相対的な位置変動が実現される。なお、この場合、仮想空間座標系における、カメラ座標系の原点の位置の変動（平行移動）に基づいて、同次変換行列Ｔcgを適切に更新する必要がある。
【００９５】
このように、本実施形態におけるキャラクタ４の位置変動は、キャラクタ４の配置位置の座標値を変動させることにより実現されてもよい。また、本実施形態におけるキャラクタ４の位置変動は、キャラクタ４以外の他の仮想オブジェクト（例えば、障害物５）の配置位置の座標値を変動させることにより実現されてもよい。本実施形態に係るゲームシステム１００は、このような座標系において、キャラクタ４の制御を行う。
【００９６】
なお、仮想空間座標系は、複数のマーカー座標系のうち、実空間内において固定されて利用されるカード２に係るマーカー座標系に置き換えてもよい。この場合、同次変換行列Ｔcgは、当該マーカー座標系に係る同次変換行列Ｔcmに置き換わる。
【００９７】
［保持情報］
図５は、本実施形態に係るゲーム装置１が保持する情報を示す。ゲーム装置１は、カード情報５１１、キャラクタ情報５１２、障害物情報５１３、相対姿勢情報５１４、ゲーム進行状態情報５１５、及び、仮想空間情報５１６を保持する。これらの情報は、後述する記憶部５１に保持されている。
【００９８】
カード情報５１１は、カード２に関する情報である。カード情報５１１は、ゲームシステム１００において使用されるカード２毎に存在する。カード情報には、例えば、カード２を識別するためのカードＩＤ、マーカー画像データ、マーカーサイズ、マーカー座標系情報、及び、位置姿勢情報等が含まれる。マーカー画像データは、カード２に付されているマーカー３の画像データである。マーカーサイズは、カード２に付されているマーカー３の縦横の長さ等、マーカー３の大きさを示す情報である。また、マーカー座標系情報は、マーカー３とマーカー座標系との関係を示す情報である。マーカー座標系情報は、例えば、マーカー３の四角形の四頂点のマーカー座標系における座標値である。
【００９９】
ゲーム装置１は、マーカー画像データに基づいて、撮像画像に含まれるマーカー３の少なくとも外側撮像部２３に対する姿勢を特定することができる。例えば、ゲーム装置１は、マーカー画像データを用いて、複数の姿勢状態のマーカー３のパターンを用意する。そして、ゲーム装置１は、撮像画像に含まれるマーカー３と用意した各パターンを比較する。比較の結果、ゲーム装置１は、撮像画像に含まれるマーカー３に最も類似するパターンを特定することができる。そして、ゲーム装置１は、特定したパターンから、撮像画像に含まれるマーカー３の姿勢を特定することができる。
【０１００】
なお、本実施形態に係るゲーム装置１は、撮像画像に含まれるマーカー３の姿勢の他に
、位置も特定することができる。ゲーム装置１は、マーカー画像データ、マーカー３の大きさ、及び、マーカー座標系情報に基づいて、撮像画像に含まれるマーカー３（カード２）の外側撮像部２３に対する位置及び姿勢を示す位置姿勢情報を特定することができる。位置姿勢情報は、例えば、図４により示される、マーカー座標系をカメラ座標系に変換することができる同次変換行列Ｔcmである。この同次変換行列Ｔcmは、例えば、数１に示されるような、回転移動に係る３×３の行列Ｒ3×3と、平行移動に係る３×１の行列ｔ3×1を含む行列として表現することができる。
【０１０１】
【数１】
0005812665.tif 000002
行列Ｒ3×3は、マーカー座標系の座標軸とカメラ座標系の座標軸のそれぞれの方向を合わせるための回転移動を実現する。よって、行列Ｒ3×3により、カメラ座標系に対するマーカー座標系の向きを特定することができる。すなわち、行列Ｒ3×3は、外部撮像部２３に対するカード２の姿勢を特定することができる姿勢情報の一例である。この行列Ｒ3×3により、例えば、カメラ座標系におけるマーカー３によって示される方向（マーカー座標系のＸ軸の向き）を特定することができる。なお、本実施形態では、マーカー３によって示される方向（マーカー座標系のＸ軸の向き）が、カード２の姿勢の基準となる方向であるとする。言い換えると、本実施形態では、姿勢情報から特定することができる、カメラ座標系におけるマーカー３によって示される方向（矢印の方向）が、外部撮像装置２３に対するカード２の姿勢であるとする。これにより、プレイヤは、マーカー３（矢印の方向）により、カード２の姿勢を視覚的に認知することができる。ただし、外部撮像装置２３に対するカード２の姿勢は、このような例に限定される訳ではなく、その他の形式により表現されてもよい。
【０１０２】
行列ｔ3×1は、マーカー座標系の原点とカメラ座標系の原点とを合わせるための平行移動を実現する。よって、行列ｔ3×1により、カメラ座標系における、マーカー座標系の位置を特定することができる。すなわち、行列ｔ3×1は、外部撮像部２３に対するカード２の位置を特定することができる位置情報の一例である。なお、マーカー座標系の原点は、マーカー３の中心点である。したがって、行列ｔ3×1によって、カメラ座標系における、マーカー３の中心点の座標値を特定することができる。
【０１０３】
キャラクタ情報５１２は、キャラクタ４に関する情報である。すなわち、キャラクタ情報５１２は、ゲームシステム１００に係る操作対象である仮想オブジェクトに関する情報である。キャラクタ情報５１２には、例えば、キャラクタ４を識別するためのキャラクタＩＤ、キャラクタ４を表示するためのキャラクタ画像データ、キャラクタ４の状態に関するパラメータの値、及び、対応マーカー情報等が含まれる。
【０１０４】
キャラクタ４の状態を示すパラメータには、例えば、図５に示されるように、位置変動に関するパラメータ、姿勢に関するパラメータ、及び、位置に関するパラメータ等が存在する。
【０１０５】
位置変動に関するパラメータは、例えば、移動方向、移動速度（速さ）等についてのパラメータである。移動方向についてのパラメータの値は、仮想空間内におけるキャラクタ４の移動する方向を定める。また、移動速度についてのパラメータの値は、仮想空間内におけるキャラクタ４の位置の変化量を定める。本実施形態では、これらのパラメータに設定される値を定義する座標系として、マーカー座標系が用いられる。ただし、これらのパ
ラメータに設定される値を定義する座標系として、他の座標系（例えば、仮想空間座標系）が用いられてもよい。また、移動方向についてのパラメータの値と移動速度についてのパラメータの値は、１つのベクトル値で表現されてもよい。
【０１０６】
また、姿勢に関するパラメータは、例えば、キャラクタ４の向き及び角度等についてのパラメータである。例えば、キャラクタ４は、初期設定として、キャラクタ４の位置を定める座標系（マーカー座標系）のＸＹ平面上垂直にＸ軸方向を向いて配置されるとする。この時、キャラクタ４の向きは、例えば、ＸＹ平面上における、キャラクタ４の正面方向と当該座標系のＸ軸との間の角度によって表現される。また、キャラクタ４の角度は、例えば、キャラクタ４の垂直方向と当該座標系のＺ軸との間の角度によって表現される。これらの向き及び角度についてのパラメータは、キャラクタ４の身体部位（例えば、間接）毎に設定されてもよい。この時、キャラクタ４の身体部位の向きは、例えば、当該身体部位の水平方向における、初期設定として与えられる向きとの差分の角度によって定められる。キャラクタ４の身体部位の向きにより、キャラクタ４の身体部位のねじれが表現される。また、キャラクタ４の身体部位の角度は、例えば、当該身体部位の垂直方向における、初期設定として与えられる角度との差分の角度によって定められる。キャラクタ４の身体部位の角度により、キャラクタ４の身体部位の曲がりが表現される。本実施形態では、向きについてのパラメータに設定される値を定義する座標系として、マーカー座標系が用いられる。ただし、向きについてのパラメータに設定される値を定義する座標系として、他の座標系が用いられてもよい。
【０１０７】
また、位置に関するパラメータは、例えば、マーカー座標系におけるキャラクタ４の配置位置等についてのパラメータである。本実施形態では、配置位置は、座標値として与えられる。なお、キャラクタ４の配置位置は、キャラクタ４の身体部位に応じて設定されてもよい。例えば、キャラクタ４の左足と右足の配置位置は別々に設定されてもよい。また、キャラクタ４の配置位置に係るマーカー座標系は、同次変換行列Ｔcmにより共通の座標系に変換することができるため、キャラクタ４の身体部位によって異なってもよい。例えば、キャラクタ４の左足の配置位置の座標系には、マーカー３ａ（カード２ａ）のマーカー座標系が用いられ、キャラクタ４の右足の配置位置の座標系には、マーカー３ｂ（カード２ｂ）のマーカー座標系が用いられてもよい。なお、このような、キャラクタ４と複数のカード２との対応関係は、対応カード情報によって示される。
【０１０８】
障害物情報５１３は、障害物５に関する情報である。すなわち、障害物情報５１３は、ゲームシステム１００に係る操作対象以外の仮想オブジェクトに関する情報である。障害物情報５１３には、例えば、障害物５を識別するためのオブジェクトＩＤ、障害物５を表示するための障害物画像データ、及び、障害物５の状態に関するパラメータ等が含まれる。なお、障害物５の状態に関するパラメータについては、キャラクタ４の状態に関するパラメータと同様であるため、説明を省略する。なお、上述のとおり、本実施形態に係る障害物５の配置位置は、仮想空間座標系を用いて設定される。
【０１０９】
相対姿勢情報５１４は、複数のカード２のカード情報５１１に含まれる姿勢情報又は位置姿勢情報から取得される、複数のカード２の相対的な姿勢関係を示す情報である。上述したとおり、カード情報５１１に含まれる姿勢情報は、例えば、行列Ｒ3×3である。また、位置姿勢情報は、例えば、同次変換行列Ｔcmである。ゲーム装置１は、複数のカード２のカード情報５１１に含まれる姿勢情報又は位置姿勢情報を用いて、相対姿勢情報５１４を取得する。なお、相対姿勢情報５１４には、例えば、類似度情報、差分情報、対面状態情報等が含まれる。
【０１１０】
類似度情報は、複数のカード２のうちの２枚のカード２間における姿勢の類似度を示す。ゲーム装置１は、比較に係る２枚のカード２のカード情報５１１に含まれる姿勢情報を
用いて、類似度情報を求める。類似度情報は、比較に係る２枚のカード２の姿勢が類似するほど、高い類似度を示す。類似度情報は、例えば、比較に係る２枚のカード２のマーカー３によって示される方向の差分角が小さいほど、高い類似度を示す。類似度の具体例を以下の［数２］により示す。なお、差分角は、０度以上１８０度以下で与えられるものとする。
【０１１１】
【数２】
0005812665.tif 000003
カード２が３枚以上存在する場合、ゲーム装置１は、複数の姿勢の類似度を取得することができる。この時、ゲーム装置１は、例えば、類似度情報に使用する類似度を選択してもよい。また、ゲーム装置１は、取得される複数の類似度の和を類似度情報に使用してもよい。
【０１１２】
差分情報は、複数のカード２のうちの２枚のカード２間における姿勢の差分を示す。例えば、差分情報は、２枚のカード２のマーカー３によって示される向きの差分の角度を示す。ゲーム装置１は、比較に係る２枚のカード２のカード情報５１１に含まれる姿勢情報を用いて、差分情報を求める。なお、カード２が３枚以上存在する場合については、類似度情報と同様であるため、説明を省略する。
【０１１３】
対面状態情報は、複数のカード２のうちの少なくとも２枚のカード２の位置及び姿勢から特定される向かい合わせの状態を示す。ゲーム装置１は、少なくとも２枚のカード２のカード情報５１１に含まれる位置姿勢情報を用いて、対面状態情報を求める。本実施形態に係る対面状態情報は、複数のカード２の姿勢が、正面に向かい合っている状態にある、背面に向かい合っている状態にある、又は、どちらの状態でもないという３つの状態のうちのどの状態にあるかを示す２ビットのフラグにより表現される。
【０１１４】
本実施形態では、上述のとおり、カード２の姿勢を、マーカー３により示される向き（矢印の向き）によって例示した。以下、カード２の姿勢の向いている方向を「カード２の向き」とも称する。本実施形態では、カード２の姿勢が正面に向かい合っている状態とは、マーカー３の矢印が正面に向かい合っている状態を指す。また、カード２の姿勢が背面に向かい合っている状態とは、マーカー３の矢印が背面に向かい合っている状態を指す。
【０１１５】
なお、対面状態情報は、例えば、複数のカード２の姿勢が正面向かい合っているか否か、又は、複数のカード２の姿勢が背面に向かい合っているか否かを示す１ビットのフラグにより表現されてもよい。また、複数のカード２それぞれにおいて、カード２の姿勢が正面又は背面に向かい合っている状態からのずれ（角度）を考えることができる。このずれ（角度）は、カード２毎に求めることができるため、カード２の数だけ存在する。対面状態情報は、例えば、この複数存在するずれ（角度）の和によって表現されてもよい。以下、図６Ａ〜図６Ｆを用いて、対面状態情報を説明する。
【０１１６】
図６Ａ〜図６Ｃは、２枚のカード２の位置及び姿勢から特定される向かい合わせの状態を説明するための図である。矢印Ｍ１の方向は、２枚のカード２のうちの第１のカード２の向きを示す。また、矢印Ｍ２の方向は、２枚のカード２のうちの第２のカード２の向きを示す。矢印Ｍ１の原点Ｐ１は、第１のカード２のカメラ座標系における位置を示す。また、矢印Ｍ２の原点Ｐ２は、第２のカード２のカメラ座標系における位置を示す。更に、矢印Ｍ１２は、Ｐ１を始点とし、Ｐ２を終点とするベクトルを示す。つまり、Ｍ１２は、第２のカード２の位置ベクトルから第１のカード２の位置ベクトルを引いた差分のベクトル（相対位置ベクトル）を示す。これらは、各カード２のカード情報５１１の位置姿勢情
報に含まれる位置情報及び姿勢情報により特定することができる。
【０１１７】
ここで、本実施形態では、カード２の姿勢の基準となる方向（カード２の向き）は、カード２に係るマーカー座標系のＸ軸の方向であった。そこで、本実施形態では、各カード２の向きは、各マーカー座標系のＸ軸の単位ベクトルで表現されるものとする。ただし、カード２の向きの表現は、他の表現が用いられてもよい。また、カード２の向きを表現する単位ベクトルは、設定及び変更可能な長さのベクトルであってもよい。このマーカー座標系のＸ軸の単位ベクトルで表現されたカード２の向きは、同次変換行列Ｔcmを用いることで、カメラ座標系のベクトルで表現することができる。すなわち、Ｍ１及びＭ２は、それぞれ、カメラ座標系のベクトルで表現することができる。以下、Ｍ１及びＭ２を、それぞれのカード２の向きを示すベクトルとして説明する。
【０１１８】
また、各カード２のカメラ座標系における位置は、各カード２のカード情報５１１の位置姿勢情報に含まれる位置情報により特定することができる。よって、Ｍ１２も、Ｍ１及びＭ２と同様、カメラ座標系のベクトルで表現することができる。このように、本実施形態では、Ｍ１、Ｍ２、及び、Ｍ１２を共通の座標系で表現することができる。そして、第１のカード２と第２のカード２の姿勢の向かい合わせの状態は、例えば、この共通の座標系で表現することができるＭ１、Ｍ２、及び、Ｍ１２を用いることで定めることができる。
【０１１９】
なお、ここでは、２枚のカード２を区別するため、「第１のカード２」と「第２のカード２」という表現を用いる。第１のカード２は、例えば、図１ａ及び１ｂにおけるカード２ａである。また、第２のカード２は、例えば、図１ａ及び１ｂにおけるカード２ｂである。この対応関係は、入れ替わってもよい。
【０１２０】
ここで、２つのベクトルＶ、Ｗの間には、以下の数３の関係が成立する。
【０１２１】
【数３】
0005812665.tif 000004
「Ｖ・Ｗ」は、２のベクトルＶ、Ｗの内積を示す。「θ」は、２つのベクトルＶ、Ｗのなす角の角度を示す。「｜Ｖ｜」は、ベクトルＶの長さを示す。「｜Ｗ｜」は、ベクトルＷの長さを示す。
【０１２２】
上述のとおり、Ｍ１、Ｍ２及びＭ１２は、カメラ座標系におけるベクトルで表現可能である。そのため、ゲーム装置１は、Ｍ１及びＭ２、並びに、Ｍ１及びＭ１２の内積を計算することができる。そして、数３により、ゲーム装置１は、Ｍ１及びＭ２のなす角の角度、並びに、Ｍ１及びＭ１２のなす角の角度を特定することができる。ゲーム装置１は、例えば、Ｍ１及びＭ２のなす角の角度、並びに、Ｍ１及びＭ１２のなす角の角度により、第１のカード２と第２のカード２の姿勢の向かい合わせの状態を定めることができる。なお、向かい合わせの状態の特定において、数３から、ゲーム装置１は、それぞれのベクトルのなす角の角度（θ）に代えて、それぞれのベクトルのなす角の余弦（cosθ）を用いて
もよいことは言うまでもない。本実施形態では、説明を簡単にするため、それぞれのベクトルのなす角の角度（θ）を用いて、第１のカード２と第２のカード２の姿勢の向かい合わせの状態を説明する。なお、それぞれのベクトルのなす角の角度（θ）は、０度以上１８０度以下で与えられるものとする。
【０１２３】
図６Ａは、２枚のカード２が完全に正面に向かい合っている状態を例示する。また、図６Ｃは、２枚のカード２が完全に背面に向かい合っている状態を例示する。このように、
Ｍ１及びＭ２が完全に反対方向を向いている場合、Ｍ１及びＭ２のなす角の角度は、ともに１８０度となる。これに対して、Ｍ１及びＭ１２のなす角の角度は、２枚のカード２が完全に正面に向かい合っている状態の場合、０度となる。他方、Ｍ１及びＭ１２のなす角の角度は、２枚のカード２が完全に背面に向かい合っている状態の場合、１８０度となる。すなわち、Ｍ１及びＭ２のなす角の角度により、ゲーム装置１は、２枚のカード２が正面又は背面に向かい合っているか否かを特定することができる。そして、Ｍ１及びＭ１２のなす角の角度により、ゲーム装置１は、２枚のカード２の向かい合いが、正面であるか背面であるかを特定することができる。
【０１２４】
例えば、Ｍ１及びＭ２のなす角の角度が設定及び変更可能な第１の閾値を超えると判定される場合、２枚のカード２は、正面又は背面に向かい合っていると定めることができる。他方、Ｍ１及びＭ２のなす角の角度が設定及び変更可能な第１の閾値以下であると判定される場合、２枚のカード２は、正面にも背面にも向かい合っていない状態であると定めることができる。そして、２枚のカード２が正面又は背面に向かい合っていると判定された場合、Ｍ１及びＭ１２のなす角の角度が設定及び変更可能な第２の閾値を超えると判定されるとき、２枚のカード２は、背面に向かい合っていると定めることができる。また、２枚のカード２が正面又は背面に向かい合っていると判定された場合、Ｍ１及びＭ１２のなす角の角度が設定及び変更可能な第２の閾値以下であると判定されるとき、２枚のカード２は、正面に向かい合っていると定めることができる。よって、ゲーム装置１は、Ｍ１及びＭ２のなす角度と第１の閾値とを比較することで、２枚のカード２が正面又は背面に向かい合っているか否かを判定することができる。そして、２枚のカード２が正面又は背面に向かい合っていると判定された場合、ゲーム装置１は、Ｍ１及びＭ１２のなす角度と第２の閾値とを比較することで、２枚のカード２が、正面に向かい合っているか、又は、背面に向かい合っているかを判定することができる。したがって、第１の閾値及び第２の閾値の値により、図６Ｂにより例示される状態は、第１のカード２と第２のカード２の姿勢が、正面向かい合っている状態か、背面に向かい合っている状態か、又は、どちらでもない状態かが識別される。
【０１２５】
なお、２枚のカード２が正面又は背面に向かい合っているか否かを判定するために、Ｍ１及びＭ２のなす角の角度が用いられる。Ｍ１及びＭ２は、本実施形態では、２枚のカード２それぞれの向きを示す単位ベクトルである。このように、Ｍ１及びＭ２の長さは、設定により与えられる。したがって、Ｍ１及びＭ２の内積の値は、Ｍ１及びＭ２のなす角の角度と１対１の関係になる。この関係を考慮して、２枚のカード２が正面又は背面に向かい合っているか否かを判定するために、ゲーム装置１は、Ｍ１及びＭ２のなす角の角度に代えて、Ｍ１及びＭ２の内積の値を用いてもよい。
【０１２６】
また、２枚のカード２が、正面に向かい合っているか、又は、背面に向かい合っているかを判定するために、Ｍ１及びＭ１２のなす角の角度が用いられる。本実施形態では、Ｍ１２は、第１のカード２と第２のカード２の相対的な位置関係を示す相対位置ベクトルである。そのため、Ｍ１２の長さは、第１のカード２及び第２のカード２の位置により、可変である。したがって、Ｍ１及びＭ１２の内積の値は、Ｍ１及びＭ１２のなす角の角度と１対１の関係にはならない。しかしながら、Ｍ１及びＭ１２の内積の値をＭ１２の長さで割った値は、Ｍ１及びＭ１２のなす角の角度と１対１の関係になる。この関係を考慮して、２枚のカード２が、正面に向かい合っているか、又は、背面に向かい合っているかを判定するために、ゲーム装置１は、Ｍ１及びＭ１２のなす角の角度に代えて、Ｍ１及びＭ１２の内積の値をＭ１２の長さで割った値を用いてもよい。
【０１２７】
また、２枚のカード２が、正面に向かい合っているか、又は、背面に向かい合っているかを判定するための第２の閾値として、ゲーム装置１が９０度を用いるとする。この場合、Ｍ１及びＭ１２のなす角が９０度を超えるとき、Ｍ１及びＭ１２の内積の値は負の値と
なる。また、Ｍ１及びＭ１２のなす角が９０度以下のとき、Ｍ１及びＭ１２の内積の値は正の値となる（０を含む）。したがって、ゲーム装置１は、Ｍ１及びＭ１２の内積の値が、負の値か、又は、正の値かを判定することにより、Ｍ１及びＭ１２のなす角が第２の閾値（９０度）を超えるか否かを識別することができる。よって、このような場合、２枚のカード２が、正面に向かい合っているか、又は、背面に向かい合っているかを判定するために、ゲーム装置１は、Ｍ１及びＭ１２のなす角の角度に代えて、Ｍ１及びＭ１２の内積の値を用いてもよい。
【０１２８】
図６Ｄ〜図６Ｆは、３枚のカードの位置及び姿勢から特定される向かい合わせの状態を説明するための図である。それぞれ、３枚のカード２の状態を例示する。矢印Ｍ３は、３枚のカード２のうちの第３のカード２の姿勢を示す。矢印Ｍ３の原点Ｐ３は、第３のカード２のカメラ座標系における位置を示す。矢印Ｍ１３は、Ｐ１を始点とし、Ｐ３を終点とするベクトルを示す。つまり、Ｍ１３は、第３のカード２の位置ベクトルから第１のカード２の位置ベクトルを引いた差分のベクトル（相対位置ベクトル）を示す。このようにカード２が３枚以上あったとしても、対面状態情報は、カード２が２枚の場合と同様に説明することができる。つまり、ゲーム装置１は、Ｍ１及びＭ２のなす角の角度、並びに、Ｍ１及びＭ１２のなす角の角度により、第１のカード２と第２のカード２の向かい合わせの状態を特定することができる。また、ゲーム装置１は、Ｍ１及びＭ３のなす角の角度、並びに、Ｍ１及びＭ１３のなす角の角度により、第１のカード２と第３のカード２の向かい合わせの状態を特定することができる。これにより、例えば、図６Ｅにより示される状態は、３枚のカード２のうち、第１のカード２と第３のカード２のみ背面に向かい合っている状態であると特定されてもよい。このように、カード２が３枚以上である場合、対面状態情報は、カード２のうちの２枚のカード２それぞれの向かい合いの状態を示してもよい。
【０１２９】
また、カード２が３枚以上である場合、カード２のうちの２枚のカード２それぞれの向かい合いの状態を用いることで、全てのカード２の向かい合わせの状態を定めることができる。例えば、図６Ｄにより示される状態は、３枚のカード２が正面に向かい合っている状態であると定められてもよい。また、図６Ｆにより示される状態は、３枚のカード２が背面に向かい合っている状態であると定められてもよい。これらの状態は、第１のカード２と第２のカード２の向かい合わせの状態、及び、第１のカード２と第３のカード２の向かい合わせの状態から特定される。つまり、ゲーム装置１は、カード２のうちの２枚のカード２それぞれの向かい合いの状態により、全てのカード２の向かい合わせの状態を特定することができる。このように、カード２が３枚以上である場合、対面状態情報は、全てのカード２の向かい合いの状態を示してもよい。
【０１３０】
本実施形態に係るゲーム装置１は、これらのような相対姿勢情報５１４を用いて、キャラクタ４（仮想オブジェクト）を制御する。ただし、本発明による仮想オブジェクトの制御は、このような形式に限定されない。相対姿勢情報５１４を用いない例は、後述する変形例において説明する。
【０１３１】
ゲーム進行状態情報５１５は、ゲームの進行状況を含む情報である。ゲーム進行状態情報５１５には、例えば、スキーゲームにおける得点情報等が含まれる。
【０１３２】
仮想空間情報５１６は、仮想空間座標系についての情報である。仮想空間情報５１６には、例えば、同次変換行列Ｔcg等が含まれる。
【０１３３】
［機能ブロック］
図７は、本実施形態に係るゲーム装置１の機能ブロックを例示する。図７に示される各機能ブロックは、例えば、外部メモリ４５に格納されるゲームプログラムを情報処理部３
１（ＣＰＵ３１１及びＧＰＵ３１２）が読み出して実行することによって実現される機能の一部である。
【０１３４】
ゲーム装置１は、ゲームプログラムを実行することによって、記憶部５１、撮像画像取得部５２、検出部５３、実オブジェクト情報取得部５４、相対姿勢情報取得部５５、仮想オブジェクト制御部５６、ゲーム進行処理部５７、描画部５８、及び、表示制御部５９として動作する。
【０１３５】
記憶部５１は、カード情報５１１、キャラクタ情報５１２、障害物情報５１３、相対姿勢情報５１４、ゲーム進行状態情報５１５、及び、仮想空間情報５１６を記憶する。
【０１３６】
撮像画像取得部５２は、外側撮像部２３によって撮像された撮像画像を取得する。より具体的には、撮像画像取得部５２は、外側撮像部２３に対して撮像動作を指示する。そして、撮像画像取得部５２は、当該指示に基づいて外側撮像部２３により撮像された撮像画像を取得する。例えば、撮像画像取得部５２は、外側撮像部２３に繰り返し撮像動作を指示する。これにより、撮像画像取得部５２は、繰り返し撮像画像を取得する。本実施形態に係るゲーム処理は、例えば、６０フレーム／秒で分割されたフレーム単位で実行されるとする。この時、撮像画像取得部５２は、外側撮像部２３に対して１／６０秒ごとに繰り返し撮像動作を指示し、撮像画像を取得する。
【０１３７】
検出部５３は、撮像画像から、カード情報５１１に含まれるマーカー画像に該当するマーカー３を検出する。このようなマーカー３の検出は、例えば、画像認識エンジンを用いて行われる。
【０１３８】
実オブジェクト情報取得部５４は、検出されたマーカー３に基づいて、外部撮像部２３に対するカード２それぞれの位置及び姿勢を示す位置姿勢情報（例えば、同次変換行列Ｔcm）を取得する。なお、このような位置姿勢情報は、例えば、ARToolKit等のソフトウェ
アライブラリを用いることによって取得することができる。取得された位置姿勢情報はそれぞれ、カード情報５１１の一部として、記憶部５１に記憶される。
【０１３９】
相対姿勢情報取得部５５は、実オブジェクト情報取得部５４により取得された複数のカード情報５１１に基づいて、複数のカード２の相対的な姿勢関係を示す相対姿勢情報５１４を取得する。取得された相対姿勢情報５１４は、記憶部５１に記憶される。なお、相対姿勢情報５１４には、例えば、類似度情報、差分情報、対面状態情報等が含まれる。
【０１４０】
仮想オブジェクト制御部５６は、実オブジェクト情報取得部５４により取得された複数のカード情報５１１に基づいて、キャラクタ４の制御を行う。また、仮想オブジェクト制御部５６は、相対姿勢情報取得部５５により取得された相対姿勢情報に基づいて、キャラクタ４の制御を行う。例えば、キャラクタ４の制御において、仮想オブジェクト制御部５６は、キャラクタ４の状態に関するパラメータの値を変化させる。この時、仮想オブジェクト制御部５６が値を変化させるパラメータは、キャラクタ４の位置変動に関するパラメータであってもよい。また、仮想オブジェクト制御部５６は、キャラクタ４の位置変動を制御するとき、キャラクタ４の位置変動に関するパラメータの値に基づいて、仮想空間に対する、キャラクタ４の相対的な位置を変動させてもよい。
【０１４１】
ゲーム進行処理部５７は、ゲーム進行状態５１５を参照及び更新することで、本実施形態に係るスキーゲームのゲーム進行を管理する。例えば、ゲーム進行処理部５７は、プレイヤがキャラクタ４を操作することで得た得点を管理したり、ＲＴＣ３８によって取得される実空間の時間経過に従って、仮想空間内の時間経過を管理したりする。
【０１４２】
描画部５８は、仮想空間に配置される仮想カメラの位置及び姿勢を設定し、仮想空間に、複数のカード情報５１１により位置及び姿勢が決定されるキャラクタ４を配置する。そして、描画部５８は、仮想カメラから見た仮想空間の画像を生成することで、仮想空間画像を描画（レンダリング）する。
【０１４３】
表示制御部５９は、外側撮像部２３により撮像された撮像画像に仮想空間画像を合成した合成画像を生成する。そして、表示制御部５９は、生成した合成画像を上側ＬＣＤ２２に表示させる。
【０１４４】
なお、以下において、情報処理部３１により実現される上記各機能による処理を説明する場合、情報処理部３１に代えて各機能ブロックを処理の主体として説明する。
【０１４５】
§２  動作例
次に、図８を用いて、本実施形態に係るゲーム処理の流れを説明する。図８は、本実施形態に係るゲーム処理の流れを示すフローチャートである。なお、図８では、ステップを「Ｓ」と略称する（後述する図９及び図１２においても同様）。
【０１４６】
ステップ１０１及びステップ１０２では、撮像画像が取得され、撮像画像からマーカー３が検出される。撮像画像取得部５２は、外側撮像部２３によって撮像された撮像画像を取得する（ステップ１０１）。そして、撮像画像が取得されると、検出部５３は、撮像画像から、カード情報５１１に含まれるマーカー画像データにより示されるマーカーに該当するマーカー３を検出する（ステップ１０２）。マーカー３は、カメラ座標系のＺ軸と直交するように（つまり、撮像画像平面と平行に）配置される場合を除いて、撮像画像中に歪んだ状態で撮像される。この場合であっても、マーカー３の検出は、一般的な画像認識エンジンを用いて行うことが可能である。その後、処理は、ステップ１０３に進む。
【０１４７】
ステップ１０３では、マーカー３毎に、位置姿勢情報が取得される。実オブジェクト情報取得部５４は、ステップ１０２において検出されたマーカー３毎に、マーカー３が付されるカード２の外側撮像部２３に対する位置及び姿勢を示す位置姿勢情報を取得する。位置姿勢情報は、例えば、マーカー座標系をカメラ座標系に変換可能な同次変換行列Ｔcmである。そして、実オブジェクト情報取得部５４は、取得した位置姿勢情報を、それぞれカード情報５１１の一部として、記憶部５１に記憶させる。その後、処理は、ステップ１０４に進む。
【０１４８】
ステップ１０４では、仮想オブジェクト制御関連処理が実行され、次のステップ１０５に処理が進む。図９は、仮想オブジェクト制御関連処理の手順を例示するフローチャートである。以下、図９を参照して、仮想オブジェクト制御関連処理について説明する。
【０１４９】
ステップ２０１では、相対姿勢情報が取得される。相対姿勢情報取得部５５は、記憶部５１に記憶されている複数のカード情報５１１（位置姿勢情報）に基づいて、相対姿勢情報５１４を取得する。そして、相対姿勢情報取得部５５は、取得した相対姿勢情報５１４を、記憶部５１に記憶させる。なお、本実施形態に係る相対姿勢情報５１４には、上述した、類似度情報、差分情報、及び、対面状態情報等が含まれる。相対姿勢情報取得部５５は、記憶部５１に記憶されている複数のカード情報５１１（位置姿勢情報）から、これらの情報を求める。そして、相対姿勢情報取得部５５は、求めた情報を含む相対姿勢情報５１４を取得する。
【０１５０】
ステップ２０２では、パラメータの値が更新される。仮想オブジェクト制御手段５６は、複数のカード情報５１１（位置姿勢情報）又は、相対姿勢情報５１４を用いて、各パラメータの値を更新する。以下、仮想オブジェクト制御手段５６によるパラメータの値の更
新を例示する。なお、上述のとおり、カード２ａは、キャラクタ４の左足に対応している。また、カード２ｂは、キャラクタ４の右足に対応している。
【０１５１】
仮想オブジェクト制御手段５６は、カード２の向きに基づいて、キャラクタ４の移動方向についてのパラメータの値を更新する。ここで、キャラクタ４の移動方向についてのパラメータの値は、マーカー３ａのマーカー座標系により定義されるとする。この時、仮想オブジェクト制御手段５６は、それぞれのカード情報５１１に含まれる位置姿勢情報（ＴcmaとＴcmb）に基づいて、マーカー座標系（Ｘma、Ｙma、Ｚma）におけるカード２ｂの姿勢（Ｘmb軸の向き）を求める。具体的には、マーカー座標系（Ｘmb、Ｙmb、Ｚmb）におけるＸmbの単位ベクトルにＴcmbとＴ-1cma（Ｔcmaの逆行列）とをかけることにより、マー
カー座標系（Ｘma、Ｙma、Ｚma）におけるカード２ｂの姿勢（Ｘmb軸の向き）を求める。そして、仮想オブジェクト制御手段５６は、マーカー座標系（Ｘma、Ｙma、Ｚma）により表現されたカード２ａ及びカード２ｂの向きに基づいて、キャラクタ情報５１２に含まれるキャラクタ４の移動方向についてのパラメータの値を更新する。例えば、仮想オブジェクト制御手段５６は、キャラクタ４の移動方向についてのパラメータの値を、カード２ａ及びカード２ｂの姿勢方向の中間方向を示す値に更新する。なお、同次変換行列Ｔcmaと
Ｔcmbは、それぞれの回転移動に係る行列Ｒ3×3（姿勢情報）で代用可能である。
【０１５２】
この時、仮想オブジェクト制御手段５６は、キャラクタ情報５１２に含まれるキャラクタ４の向きについてのパラメータの値についても同様の値に更新してもよい。なお、キャラクタ４の向きについてのパラメータは、キャラクタ４の正面方向を定める。これにより、キャラクタ４の移動方向は、２枚のカード２により示される方向の中間方向となる。
【０１５３】
また、仮想オブジェクト制御手段５６は、相対姿勢情報５１４に含まれる類似度情報に基づいて、キャラクタ４の移動速度（速さ）についてのパラメータの値を更新する。例えば、仮想オブジェクト制御手段５６は、相対姿勢情報５１４に含まれる類似度情報により示されるカード２ａ及びカード２ｂの姿勢の類似度が高いほど、キャラクタ４の移動速度についてのパラメータの値を大きな値に更新する。移動速度の更新において、仮想オブジェクト制御手段５６は、類似度により決定される加速度を用いて、移動速度を増減させてもよい。また、移動速度の更新において、仮想オブジェクト制御手段５６は、類似度により一意に移動速度を決定してもよい。これにより、２枚のカードにより示される方向が直滑降のような状態に近いほど、キャラクタ４の移動速度は早くなる。
【０１５４】
また、仮想オブジェクト制御手段５６は、相対姿勢情報５１４に含まれる差分情報に基づいて、キャラクタ４の腰及び両膝の角度についてのパラメータの値を更新する。具体的には、仮想オブジェクト制御手段５６は、相対姿勢情報５１４に含まれる差分情報により示されるカード２ａ及びカード２ｂの姿勢の差分が大きいほど、キャラクタ４の腰及び両膝の角度についてのパラメータの値を大きな値に更新する（最大値を１８０度とする）。これにより、２枚のカードにより示される方向が離れるほど、キャラクタ４の腰及び膝は真っ直ぐになる。
【０１５５】
また、仮想オブジェクト制御手段５６は、相対姿勢情報５１４に含まれる対面状態情報に基づいて、キャラクタ４のアクションを制御する。仮想オブジェクト制御手段５６は、カード２ａ及びカード２ｂの姿勢が向かい合っている状態にあると対面状態情報により示される場合、キャラクタ４に対して、移動方向に転倒するアクションを実行させる。他方、仮想オブジェクト制御手段５６は、カード２ａ及びカード２ｂの姿勢が背面に向かい合っている状態にあると対面状態情報により示される場合、キャラクタ４に対して、移動方向後方に転倒するアクションを実行させる。
【０１５６】
なお、仮想オブジェクト制御手段５６は、加速度センサ３９によって検出されるゲーム
装置１の平行移動、及び、角速度センサ４０によって検出されるゲーム装置１の回転移動に基づいて、仮想空間情報５１６に含まれる同次変換行列Ｔcgを更新する。
【０１５７】
ステップ２０３では、キャラクタ４及び障害物５等の仮想オブジェクトの配置位置が更新される。本実施形態では、キャラクタ４の配置位置は、マーカー座標系によって表現されている。また、障害物５の配置位置は、仮想空間座標系によって表現されている。仮想オブジェクト制御手段５６は、例えば、上述のとおり、カード情報５１１に含まれる位置姿勢情報（同次変換行列Ｔcm）、キャラクタ情報５１２に含まれる位置変動に関するパラメータの値、及び、仮想空間情報に含まれる同次変換行列Ｔcgを用いて、障害物５の座標値を更新する。その後、仮想オブジェクト制御関連処理は終了し、次のステップ１０５に処理が進む。
【０１５８】
図８に戻り、ステップ１０５では、ゲーム進行処理が実行される。ゲーム進行処理部５７は、例えば、記憶部５１のキャラクタ情報５１２及び障害物情報５１３を参照し、所定のイベント等が発生したか否かを判定する。本実施形態におけるスキーゲームにおいて、所定のイベントとは、例えば、仮想空間上、キャラクタ４が障害物５に衝突すること等である。このようなイベントが発生した場合、ゲーム進行処理部５７は、例えば、記憶部５１のゲーム進行状態情報５１５に含まれる得点情報を更新する。また、ゲーム進行処理部５７は、例えば、実空間の時間経過に従って、ゲーム内時間を更新する。ゲーム進行処理が終了すると、処理は、ステップ１０６に進む。
【０１５９】
ステップ１０６では、表示処理が実行される。描画部５８は、外側撮像部２３と同一位置に配置された仮想カメラの視点から仮想オブジェクトを描画する。すなわち、描画部５８は、カメラ座標系を用いて、仮想オブジェクトを描画する。本実施形態では、仮想オブジェクトは、キャラクタ情報５１２により示されるキャラクタ４、障害物情報５１３により示される障害物５等である。そして、表示制御部５９は、描画された仮想オブジェクトの画像（仮想空間画像）を、撮像画像に合成して上側ＬＣＤ２２に出力し、表示させる。その後、次のステップ１０７に処理が進む。
【０１６０】
ステップ１０７では、ゲーム進行処理部５７により、ゲーム終了か否かが判断される。例えば、ゲーム進行処理部５７は、所定の時間が経過した等のイベントの発生に基づいて、ゲーム終了の判断を行う。ゲーム進行処理部５７によってゲーム終了と判断されると（ステップ１０７のＹＥＳ）、本実施形態に係るゲーム処理は終了する。他方、ゲーム進行処理部５７によってゲーム終了ではないと判断されると（ステップ１０７のＮＯ）、本実施形態に係るゲーム処理は、ステップ１０１に戻って、繰り返される。
【０１６１】
本実施形態によれば、マーカー３が付された複数のカード２の姿勢により、キャラクタ４が制御される。例えば、２枚のカード２の姿勢により、キャラクタ４の移動方向、移動速度等が制御される。このように、本実施形態によれば、マーカー３を用いてキャラクタ４を制御する場合において、バリエーションに富んだキャラクタ４の制御が可能となる。
【０１６２】
§３  変形例
次に、変形例として、ゲーム装置１が、相対姿勢情報５１４を用いずに、キャラクタ４（仮想オブジェクト）を制御する例を示す。なお、本実施形態と変形例において、図２及び図３により示されるゲーム装置１の構成、図４により示されるゲームシステム１００において用いられる座標系は共通する。
【０１６３】
本変形例に係るゲームシステム１００は、複数のカード２の姿勢情報（カード情報）に基づいて、キャラクタ４の姿勢に関する複数のパラメータであって、複数のカード２の姿勢情報各々とそれぞれ対応関係にある複数のパラメータの値によって示される姿勢を制御
する。
【０１６４】
そして、本変形例に係るゲームシステム１００は、そのように制御された姿勢に基づいて、当該姿勢に関する複数のパラメータを除いたその他の状態に関するパラメータの値を変化させる。
【０１６５】
図１０は、変形例に係るゲーム装置１が保持する情報を例示する。本変形例において、記憶部５１が保持する情報は、カード情報５１１、キャラクタ情報５１２、障害物情報５１３、ゲーム進行状態情報５１５、及び、仮想空間情報５１６である。それぞれの情報は、上述のとおりである。
【０１６６】
図１１は、変形例に係るゲーム装置１の機能ブロックを例示する。図１１に示される各機能ブロックは、例えば、外部メモリ４５に格納されるゲームプログラムを情報処理部３１（ＣＰＵ３１１及びＧＰＵ３１２）が読み出して実行することによって実現される機能の一部である。
【０１６７】
変形例に係るゲーム装置１は、ゲームプログラムを実行することによって、記憶部５１、撮像画像取得部５２、検出部５３、実オブジェクト情報取得部５４、仮想オブジェクト制御部５６、ゲーム進行処理部５７、描画部５８、及び、表示制御部５９として動作する。それぞれの機能は、上述のとおりである。
【０１６８】
図１２は、変形例に係る仮想オブジェクト制御関連処理の手順を例示するフローチャートである。変形例に係るゲーム処理の流れは、図８に示される本実施形態に係るゲーム処理の流れと同様である。ただし、変形例と本実施形態とは、ステップ１０４における仮想オブジェクト制御関連処理が異なる。以下、図１２を参照して、変形例に係る仮想オブジェクト制御関連処理を説明する。
【０１６９】
ステップ３０１では、カード２ａ及びカード２ｂと対応関係にあるキャラクタ４の姿勢が制御される。上述のとおり、カード２ａは、キャラクタ４の左足に対応している。また、カード２ｂは、キャラクタ４の右足に対応している。仮想オブジェクト制御手段５６は、カード２ａの姿勢に基づいて、キャラクタ４の左足を制御する。また、仮想オブジェクト制御手段５６は、カード２ｂの姿勢に基づいて、キャラクタ４の右足を制御する。
【０１７０】
ここで、キャラクタ４の左足の向きについてのパラメータの値は、マーカー３ａのマーカー座標系により定義されるとする。また、キャラクタ４の右足の向きについてのパラメータの値は、マーカー３ｂのマーカー座標系により定義されるとする。例えば、それぞれのマーカー座標系のＸ軸の方向が、それぞれの足の向きであるとする。この時、仮想オブジェクト制御手段５６は、カード情報５１１に含まれる位置姿勢情報（Ｔcma）のうちの
姿勢情報により、キャラクタ４の左足の向きを特定することができる。よって、仮想オブジェクト制御手段５６は、カード情報５１１に含まれる位置姿勢情報（Ｔcma）のうちの
姿勢情報により、キャラクタ４の左足の向きを制御する。キャラクタ４の右足の向きについても同様である。仮想オブジェクト制御手段５６は、カード情報５１１に含まれる位置姿勢情報（Ｔcmb）のうちの姿勢情報により、キャラクタ４の左足の向きを制御する。
【０１７１】
ステップ３０２では、ステップ３０１における制御に係るパラメータ以外のパラメータの値が更新される。本変形例では、ステップ３０１における制御に係るパラメータは、キャラクタ４の左足の向きについてのパラメータと、キャラクタ４の右足の向きについてのパラメータである。仮想オブジェクト制御手段５６は、キャラクタ４の左足の向き及び右足の向きに基づいて、キャラクタ４の左足の向き及び右足の向き以外の状態を制御する。
【０１７２】
例えば、仮想オブジェクト制御手段５６は、キャラクタ４の左足の向き及び右足の向きに基づいて、キャラクタ４の移動方向を制御する。仮想オブジェクト制御手段５６は、キャラクタ４の左足の向き及び右足の向きに基づいて、キャラクタ４の移動方向についてのパラメータの値を更新する。
【０１７３】
ここで、キャラクタ４の移動方向についてのパラメータの値は、マーカー３ａのマーカー座標系により定義されるとする。この時、仮想オブジェクト制御手段５６は、それぞれのカード情報５１１に含まれる位置姿勢情報（ＴcmaとＴcmb）に基づいて、マーカー座標系（Ｘma、Ｙma、Ｚma）におけるカード２ｂの姿勢（キャラクタ４の右足の向き）を求める。そして、仮想オブジェクト制御手段５６は、マーカー座標系（Ｘma、Ｙma、Ｚma）におけるキャラクタ４の左足の向き及び右足の向きを用いて、キャラクタ情報５１２に含まれるキャラクタ４の移動方向についてのパラメータの値を更新する。例えば、仮想オブジェクト制御手段５６は、キャラクタ４の移動方向についてのパラメータの値を、マーカー座標系（Ｘma、Ｙma、Ｚma）におけるキャラクタ４の左足の向き及び右足の向きの中間方向を示す値に更新する。
【０１７４】
このように、本変形例におけるキャラクタ４の制御は、相対姿勢情報５１４を用いた場合のキャラクタ４の制御と同様に説明できる。例えば、仮想オブジェクト制御手段５６は、キャラクタ４の左足の向き及び右足の向きの類似度及び差分を求めることができる。
【０１７５】
また、仮想オブジェクト制御手段５６は、それぞれのカード情報５１１に含まれる位置姿勢情報（ＴcmaとＴcmb）に基づいて、キャラクタ４の左足の位置及び右足の位置を特定することができる。そして、仮想オブジェクト制御手段５６は、キャラクタ４の左足の位置、左足の向き、右足の位置、及び、右足の向きから、キャラクタ４の左足及び右足の向かい合わせの状態を求めることができる。
【０１７６】
仮想オブジェクト制御手段５６は、このように求めることができる、キャラクタ４の左足の向き及び右足の向きの類似度及び差分、並びに、キャラクタ４の左足及び右足の向かい合わせの状態を、それぞれ、本実施形態における相対姿勢情報に含まれる類似度情報、差分情報、及び、対面状態情報の代わりに利用することができる。よって、仮想オブジェクト制御手段５６による制御のその他の例については説明を省略する。
【０１７７】
ただし、変形例に係るゲーム装置１の処理は、キャラクタ４の左右の足の向きの類似度、差分、及び、向かい合わせの状態を用いたものに限定される訳ではない。例えば、左右の足の向きに関する情報と、キャラクタ４の体勢、移動方向、移動速度、及び、転倒する条件等とを関連付けたテーブル、マップ、又は、関数等が用意されていてもよい。そして、仮想オブジェクト制御手段５６は、カード２ａ及びカード２ｂから得られるキャラクタ４の左右の足の向きの情報と、上記テーブル、マップ、又は、関数等とを用いて、キャラクタ４を制御してもよい。
【０１７８】
ステップ３０３では、キャラクタ４及び障害物５等の仮想オブジェクトの配置位置が更新される。ステップ３０３は、ステップ２０３と同様である。
【０１７９】
本変形例についても、本実施形態と同様に、例えば、２枚のカード２の姿勢により、キャラクタ４の移動方向、移動速度等が制御される。よって、本変形例においても、本実施形態と同様に、マーカー３を用いてキャラクタ４を制御する場合において、バリエーションに富んだキャラクタ４の制御が可能となる。
【０１８０】
§４  適用例
図１３Ａ及び図１３Ｂは、本実施形態に係るゲームシステム１００の適用例を示す。本
実施形態に係るゲームシステム１００は、例えば、図１３Ａ及び図１３Ｂに示されるような気流４を操るゲームをプレイヤに提供することができる。
【０１８１】
本ゲームにおいて、気流４が、プレイヤの操作対象となる仮想オブジェクトである。また、キャラクタ５は、プレイヤの操作対象以外の仮想オブジェクトである。仮想オブジェクト制御手段５６は、カード２の姿勢によって、気流４を制御する。そして、キャラクタ５は、カード２の姿勢により制御される気流４によって、移動させられる。
【０１８２】
例えば、仮想オブジェクト制御手段５６は、相対姿勢情報５１４に含まれる類似度情報により示されるカード２の姿勢の類似度によって、気流４の風速を制御する。具体例として、仮想オブジェクト制御手段５６は、相対姿勢情報５１４に含まれる類似度情報により示されるカード２の姿勢の類似度が高いほど、気流４の風速を早くする。この時、キャラクタ５は、気流４の風速が早いほど、早く移動させられる。
【０１８３】
また、例えば、仮想オブジェクト制御手段５６は、相対姿勢情報５１４に含まれる対面状態情報により示される向かい合わせの状態によって、気流４の種類を制御する。具体例は、図１３Ａ及び図１３Ｂに示される。仮想オブジェクト制御手段５６は、カード２ａ及びカード２ｂの姿勢が向かい合っている状態にあると対面状態情報により示される場合（図１３Ａ）、気流４を、上昇気流とする。この時、キャラクタ５は、気流４によって、上方に移動させられる。また、それ以外の場合（図１３Ｂ）、気流４を、カード２の中心に向かって流れる気流にする。この時、キャラクタ５は、カード２の中心に向かって移動させられる。なお、仮想オブジェクト制御手段５６は、例えば、カード２ａ及びカード２ｂの間の距離が短いほど、気流４の風速を早くしてもよい。
【０１８４】
また、図１４Ａ及び図１４Ｂは、本実施形態に係るゲームシステム１００の別の適用例を示す。本実施形態に係るゲームシステム１００は、例えば、図１４Ａ及び図１４Ｂに示されるようなクワッドラインカイト４を操るゲームをプレイヤに提供することができる。
【０１８５】
例えば、仮想オブジェクト制御手段５６は、相対姿勢情報５１４に含まれる類似度情報により、クワッドラインカイト４の飛行方向を制御する。具体例として、仮想オブジェクト制御手段５６は、相対姿勢情報５１４に含まれる類似度情報により、最も高い類似度に係る２枚のカード２を特定する。そして、仮想オブジェクト制御手段５６は、特定した２枚のカード２の向きにクワッドラインカイト４が存在するように、クワッドラインカイト４の飛行方向を制御する（図１４Ａ及び図１４Ｂ参照）。
【０１８６】
また、例えば、仮想オブジェクト制御手段５６は、相対姿勢情報５１４に含まれる差分情報により、クワッドラインカイト４の飛行状態を制御する。具体例として、仮想オブジェクト制御手段５６は、相対姿勢情報５１４に含まれる差分情報により、各カード２間の姿勢の差分の和を求める。そして、仮想オブジェクト制御手段５６は、当該差分の和が所定の値を超えた場合、クワッドラインカイト４に墜落するアクションを実行させる。
【符号の説明】
【０１８７】
１  ゲーム装置
２  カード
３  マーカー
２３  外側撮像部
５２  撮像画像取得部
５３  検出部
５４  実オブジェクト情報取得部
５５  相対姿勢情報取得部
５６  仮想オブジェクト制御部
５８  描画部
５９  表示制御部
１００  ゲームシステム
５１１  カード情報
５１２  キャラクタ情報
５１４  相対姿勢情報
【図１Ａ】
0005812665.tif 000005
【図１Ｂ】
0005812665.tif 000006
【図２】
0005812665.tif 000007
【図３】
0005812665.tif 000008
【図４】
0005812665.tif 000009
【図５】
0005812665.tif 000010
【図６Ａ】
0005812665.tif 000011
【図６Ｂ】
0005812665.tif 000012
【図６Ｃ】
0005812665.tif 000013
【図６Ｄ】
0005812665.tif 000014
【図６Ｅ】
0005812665.tif 000015
【図６Ｆ】
0005812665.tif 000016
【図７】
0005812665.tif 000017
【図８】
0005812665.tif 000018
【図９】
0005812665.tif 000019
【図１０】
0005812665.tif 000020
【図１１】
0005812665.tif 000021
【図１２】
0005812665.tif 000022
【図１３Ａ】
0005812665.tif 000023
【図１３Ｂ】
0005812665.tif 000024
【図１４Ａ】
0005812665.tif 000025
【図１４Ｂ】
0005812665.tif 000026