(57)【特許請求の範囲】
【請求項１】
操作手段を備える画像処理装置の画像処理プログラムであって、
前記画像処理装置のコンピュータを、
仮想３次元空間を仮想カメラから撮影した画像を出力する画像出力手段と、
前記仮想３次元空間にプレイヤオブジェクトを配置する配置手段と、
少なくとも、前記操作手段の操作に従って移動される前記プレイヤオブジェクトが前記仮想３次元空間の所定位置ないし所定領域に到達したことを含む、所定の条件を満たしたか否かを判別する条件判別手段と、
前記所定の条件を満たしたことが判別されたとき、前記仮想３次元空間内に２次元面を生成する２次元面生成手段と、
前記操作手段の操作に基づいて前記２次元面に２次元画像を描画する描画手段として機能させる、画像処理プログラム。
【請求項２】
前記２次元面生成手段は、前記仮想カメラと所定距離離れた位置に２次元面を生成し、
前記描画手段は、前記仮想カメラから２次元面に延びる直線と前記２次元面との交点に点を描画する、請求項１記載の画像処理プログラム。
【請求項３】
前記直線は、前記仮想カメラの位置と前記プレイヤオブジェクトの所定点とを通る、請求項２記載の画像処理プログラム。
【請求項４】
前記画像出力手段は、前記所定の条件を満たす前は、前記仮想カメラを前記プレイヤオブジェクトの後方に配置した客観的な視点の画像を出力し、前記所定の条件を満たすと、前記仮想カメラを前記プレイヤオブジェクト上に配置した主観的な視点の画像を出力する、請求項１ないし３のいずれかに記載の画像処理プログラム。
【請求項５】
前記所定の条件は、前記操作手段によって所定の操作が行われたことをさらに含む、請求項１ないし４のいずれかに記載の画像処理プログラム。
【請求項６】
前記操作手段の姿勢を検出する姿勢検出手段として前記コンピュータをさらに機能させ、
前記所定の操作は、前記操作手段の姿勢が所定の姿勢にされたことを含む、請求項５記載の画像処理プログラム。
【請求項７】
前記操作手段の姿勢を検出する姿勢検出手段として前記コンピュータをさらに機能させ、
前記描画手段は、前記姿勢検出手段によって検出された前記操作手段の姿勢に基づいて前記２次元面に２次元画像を描画する、請求項１ないし５のいずれかに記載の画像処理プログラム。
【請求項８】
前記描画手段によって描画された２次元画像を３次元オブジェクトに変換する変換手段として前記コンピュータをさらに機能させる、請求項１ないし７のいずれかに記載の画像処理プログラム。
【請求項９】
前記変換手段によって前記３次元オブジェクトに変換されたとき、前記２次元面を前記仮想３次元空間から消去する消去手段として、前記コンピュータをさらに機能させる、請求項８記載の画像処理プログラム。
【請求項１０】
前記描画手段によって描画された２次元画像が所定の画像であるかどうかを認識する認識手段として、前記コンピュータをさらに機能させる、請求項８または９記載の画像処理プログラム。
【請求項１１】
前記認識手段は、少なくとも、前記２次元画像に含まれる角の数および前記２次元画像を囲む範囲における当該角の位置に基づいて、当該２次元画像が前記所定の画像であるかどうかを認識する、請求項１０記載の画像処理プログラム。
【請求項１２】
前記認識手段は、少なくとも、前記２次元画像を囲む範囲を均等に分割した場合の各領域に含まれる点の数、当該２次元画像の縦横比、当該２次元画像に含まれる角の個数に基づいて、当該２次元画像が前記所定の画像であるかどうかを認識する、請求項１０記載の画像処理プログラム。
【請求項１３】
前記変換手段によって前記２次元画像が前記３次元オブジェクトに変換されるとき、予め用意した当該３次元オブジェクトを表示する３次元オブジェクト表示手段として、前記コンピュータをさらに機能させる、請求項８ないし１２のいずれかに記載の画像処理プログラム。
【請求項１４】
操作手段を備える画像処理装置であって、
仮想３次元空間を仮想カメラから撮影した画像を出力する画像出力手段と、
前記仮想３次元空間にプレイヤオブジェクトを配置する配置手段と、
少なくとも、前記操作手段の操作に従って移動される前記プレイヤオブジェクトが前記仮想３次元空間の所定位置ないし所定領域に到達したことを含む、所定の条件を満たしたか否かを判別する条件判別手段と、
前記所定の条件を満たしたことが判別されたとき、前記仮想３次元空間内に２次元面を生成する２次元面生成手段と、
前記操作手段の操作に基づいて前記２次元面に２次元画像を描画する描画手段を備える、画像処理装置。
【請求項１５】
操作手段を備える画像処理装置の画像処理方法であって、
前記画像処理装置のコンピュータは、
（ａ）仮想３次元空間を仮想カメラから撮影した画像を出力し、
（ｂ）前記仮想３次元空間にプレイヤオブジェクトを配置し、
（ｃ）少なくとも、前記操作手段の操作に従って移動される前記プレイヤオブジェクトが前記仮想３次元空間の所定位置ないし所定領域に到達したことを含む、所定の条件を満たしたか否かを判別し、
（ｄ）前記所定の条件を満たしたことが判別されたとき、前記仮想３次元空間内に２次元面を生成し、そして
（ｅ）前記操作手段の操作に基づいて前記２次元面に２次元画像を描画する、画像処理方法。
【請求項１６】
操作手段を備える画像処理システムであって、
仮想３次元空間を仮想カメラから撮影した画像を出力する画像出力手段と、
前記仮想３次元空間にプレイヤオブジェクトを配置する配置手段と、
少なくとも、前記操作手段の操作に従って移動される前記プレイヤオブジェクトが前記仮想３次元空間の所定位置ないし所定領域に到達したことを含む、所定の条件を満たしたか否かを判別する条件判別手段と、
前記所定の条件を満たしたことが判別されたとき、前記仮想３次元空間内に２次元面を生成する２次元面生成手段と、
前記操作手段の操作に基づいて前記２次元面に２次元画像を描画する描画手段を備える、画像処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、画像処理プログラム、画像処理装置、画像処理方法および画像処理システムに関し、特にたとえば、操作者の操作に従って２次元画像を描画する、画像処理プログラム、画像処理装置、画像処理方法および画像処理システムに関する。
【背景技術】
【０００２】
この種の背景技術の一例が特許文献１に開示されている。この特許文献１のゲーム装置では、戦闘シーンにおいて、プレイヤオブジェクトの攻撃ターンになると、プレイヤオブジェクトに行わせる攻撃を指示するためのゲーム画面が表示される。プレイヤが、コントローラを用いてゲーム画面の描画領域に文字等を描画すると、描画した文字等が認識され、当該文字等に割り当てられた攻撃の内容が決定される。
【特許文献１】特開２０１０−２６４１７１［A63F 13/10］
【発明の概要】
【発明が解決しようとする課題】
【０００３】
この特許文献１のゲーム装置では、プレイヤオブジェクトの攻撃ターンになると、文字等を描画するための２次元のゲーム画面が表示され、その描画領域に文字等を描画するだけなので、面白味に欠けていた。
【０００４】
それゆえに、この発明の主たる目的は、新規な、画像処理プログラム、画像処理装置、画像処理方法および画像処理システムを提供することである。
【０００５】
また、この発明の他の目的は、２次元画像を描画するための難易度を上げることにより、面白味を増大させることができる、画像処理プログラム、画像処理装置、画像処理方法および画像処理システムを提供することである。
【課題を解決するための手段】
【０００６】
第１の発明は、操作手段を備える画像処理装置の画像処理プログラムであって、画像処理装置のコンピュータを、画像出力手段と、配置手段と、条件判別手段と、２次元面生成手段と、描画手段として機能させる。画像出力手段は、仮想３次元空間を仮想カメラから撮影した画像を出力する。配置手段は、仮想３次元空間にプレイヤオブジェクトを配置する。条件判別手段は、少なくとも、操作手段の操作に従って移動されるプレイヤオブジェクトが仮想３次元空間の所定位置ないし所定領域に到達したことを含む、所定の条件を満たしたか否かを判別する。２次元面生成手段は、所定の条件を満たしたことが判別されたとき、仮想３次元空間内に２次元面を生成する。描画手段は、操作手段の操作に基づいて２次元面に２次元画像を描画する。
【０００７】
第１の発明によれば、所定の条件を満たすときに、仮想３次元空間に２次元面を表示し、この２次元面に２次元画像を描画するので、２次元画像を描画するための難易度を上げることができ、面白味を増大させることができる。
また、第１の発明によれば、プレイヤオブジェクトが所定の位置に到達すると２次元面が表示されるので、２次元面を表示するための難易度を上げることができるとともに、所定の位置を見つける楽しみをユーザないしプレイヤに与えることができ、興味や面白味を増大させることができる。
【０００８】
第２の発明は、第１の発明に従属し、２次元面生成手段は、仮想カメラと所定距離離れた位置に２次元面を生成し、描画手段は、仮想カメラから２次元面に延びる直線と２次元面との交点に点を描画する。
【０００９】
第２の発明によれば、２次元面を主観的な視点で見て描画することができるので、描画のための操作性を向上させることができる。
【００１０】
第３の発明は、第２の発明に従属し、直線は、仮想カメラの配置位置とプレイヤオブジェクトの所定点とを通る。したがって、２次元面上でプレイヤオブジェクトの所定点が指示する位置に点が描画される。
【００１１】
第３の発明によれば、２次元面上でプレイヤオブジェクトの所定点が指示する位置に点が描画されるので、当該プレイヤオブジェクトを用いて描画しているような没入感をユーザに与えることができる。
【００１４】
第４の発明は、第１ないし第３の発明のいずれかに従属し、画像出力手段は、所定の条件を満たす前は、仮想カメラをプレイヤオブジェクトの後方に配置した客観的な視点の画像を出力し、所定の条件を満たすと、仮想カメラをプレイヤオブジェクト上に配置した主観的な視点の画像を出力する。
【００１５】
第４の発明によれば、所定の条件を満たす前では、客観的な視点により、仮想３次元空間の比較的広い範囲を見ながらプレイヤオブジェクトを移動させ、所定の条件を満たすと、主観的な視点で２次元面を見ながらプレイヤオブジェクトを移動させるので、描画する際には２次元面を見易くすることができる。
【００１６】
第５の発明は、第１ないし第４の発明のいずれかに従属し、所定の条件は、操作手段によって所定の操作が行われたことをさらに含む。
【００１７】
第５の発明によれば、所定の操作をすることによって２次元面が表示されるので、２次元面を表示するための難易度を上げることができ、興味や面白味を増大させることができる。
【００１８】
第６の発明は、第５の発明に従属し、操作手段の姿勢を検出する姿勢検出手段としてコンピュータをさらに機能させ、所定の操作は、操作手段の姿勢が所定の姿勢にされたことを含む。
【００１９】
第６の発明によれば、所定の操作は、操作手段が所定の姿勢にされたことを含むので、たとえば、仮想ゲームの演出によって操作手段を所定の姿勢にさせるようにすれば、直感的な操作が可能である。
【００２０】
第７の発明は、第１ないし第５の発明のいずれかに従属し、操作手段の姿勢を検出する姿勢検出手段としてコンピュータをさらに機能させ、描画手段は、姿勢検出手段によって検出された操作手段の姿勢に基づいて２次元面に２次元画像を描画する。つまり、操作手段を動かせば、それに連動して２次元画像が描画される。
【００２１】
第７の発明によれば、操作手段の動きに連動して２次元画像が描画されるので、直感的な操作が可能である。また、たとえば、実空間において操作手段を空中で動かすので、描画するための難易度を高くすることができる。
【００２２】
第８の発明は、第１ないし第７の発明のいずれかに従属し、描画手段によって描画された２次元画像を３次元オブジェクトに変換する変換手段としてコンピュータをさらに機能させる。
【００２３】
第８の発明によれば、描画した２次元画像を３次元オブジェクトに変換することができる。
【００２４】
第９の発明は、第８の発明に従属し、変換手段によって描画手段によって描画された２次元画像が３次元オブジェクトに変換されたとき、２次元面を仮想３次元空間から消去する消去手段として、コンピュータをさらに機能させる。
【００２５】
第９の発明によれば、描画された２次元画像が３次元オブジェクトに変換するので、描画することの面白味を増大させることができる。
【００２６】
第１０の発明は、第８または第９の発明に従属し、描画手段によって描画された２次元画像が所定の画像であるかどうかを認識する認識手段として、コンピュータをさらに機能させる。
【００２７】
第１０の発明によれば、描画した２次元画像が所定の画像であるかどうかを認識するので、所定の画像であることが認識された場合にのみ、３次元オブジェクトに変換することができる。したがって、描画の難易度を高くして、面白味を増大させることができる。
【００２８】
第１１の発明は、第１０の発明に従属し、認識手段は、少なくとも、２次元画像に含まれる角の数および２次元画像を囲む範囲における当該角の位置に基づいて、当該２次元画像が所定の画像であるかどうかを認識する。
【００２９】
第１１の発明によれば、描画された２次元画像が所定の画像であるかどうかを認識し、所定の画像であることが認識された場合に、この所定の画像に対応づけた所定の３次元オブジェクトに変換することができる。
【００３０】
第１２の発明は、第１０の発明に従属し、認識手段は、少なくとも、２次元画像を囲む範囲を均等に分割した場合の各領域に含まれる点の数、当該２次元画像の縦横比、当該２次元画像に含まれる角の個数に基づいて、当該２次元画像が所定の画像であるかどうかを認識する。
【００３１】
第１２の発明によれば、第１１の発明と同様に、描画された２次元画像が所定の画像であることが認識された場合に、この所定の画像に対応づけた所定の３次元オブジェクトに変換することができる。
【００３２】
第１３の発明は、第８ないし第１２の発明のいずれかに従属し、変換手段によって２次元画像が３次元オブジェクトに変換されるとき、予め用意した当該３次元オブジェクトを表示する３次元オブジェクト表示手段として、コンピュータをさらに機能させる。
【００３３】
第１３の発明によれば、２次元画像を描画すると、変換された３次元オブジェクトを表示するので、正しく描画できているか否かを判断することができる。また、描画すること自体を楽しむことができる。
【００３４】
第１４の発明は、操作手段を備える画像処理装置であって、仮想３次元空間を仮想カメラから撮影した画像を出力する画像出力手段と、仮想３次元空間を仮想カメラから撮影した画像を出力する画像出力手段と、仮想３次元空間にプレイヤオブジェクトを配置する配置手段と、少なくとも、操作手段の操作に従って移動されるプレイヤオブジェクトが仮想３次元空間の所定位置ないし所定領域に到達したことを含む、所定の条件を満たしたか否かを判別する条件判別手段と、所定の条件を満たしたことが判別されたとき、仮想３次元空間内に２次元面を生成する２次元面生成手段と、操作手段の操作に基づいて２次元面に２次元画像を描画する描画手段を備える、画像処理装置である。
【００３５】
第１５の発明は、操作手段を備える画像処理装置の画像処理方法であって、画像処理装置のコンピュータは、（ａ）仮想３次元空間を仮想カメラから撮影した画像を出力し、（ｂ）仮想３次元空間にプレイヤオブジェクトを配置し、（ｃ）少なくとも、操作手段の操作に従って移動されるプレイヤオブジェクトが仮想３次元空間の所定位置ないし所定領域に到達したことを含む、所定の条件を満たしたか否かを判別し、（ｄ）所定の条件を満たしたことが判別されたとき、仮想３次元空間内に２次元面を生成し、そして（ｅ）操作手段の操作に基づいて２次元面に２次元画像を描画する、画像処理方法である。
【００３６】
第１６の発明は、操作手段を備える画像処理システムであって、仮想３次元空間を仮想カメラから撮影した画像を出力する画像出力手段と、仮想３次元空間にプレイヤオブジェクトを配置する配置手段と、少なくとも、操作手段の操作に従って移動されるプレイヤオブジェクトが仮想３次元空間の所定位置ないし所定領域に到達したことを含む、所定の条件を満たしたか否かを判別する条件判別手段と、所定の条件を満たしたことが判別されたとき、仮想３次元空間内に２次元面を生成する２次元面生成手段と、操作手段の操作に基づいて２次元面に２次元画像を描画する描画手段を備える、画像処理システムである。
【００３７】
第１４ないし第１６の発明においても、第１の発明と同様に、２次元画像を描画するための難易度を上げることができ、面白味を増大させることができる。
【発明の効果】
【００３８】
この発明によれば、所定の条件を満たすときに、仮想３次元空間に２次元面を表示し、この２次元面に２次元画像を描画するので、２次元画像を描画するための難易度を上げることができ、面白味を増大させることができる。
【００３９】
この発明の上述の目的，その他の目的，特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【図面の簡単な説明】
【００４０】
【図１】図１はこの発明のゲームシステムの一実施例を示す図解図である。
【図２】図２は図１に示すゲームシステムの電気的な構成を示すブロック図である。
【図３】図３は図１に示す第１コントローラの外観を説明するための図解図である。
【図４】図４は図１に示すジャイロユニットを接続した第１コントローラおよびジャイロユニットの外観を説明するための図解図である。
【図５】図５は図１に示す第２コントローラの外観を説明するための図解図である。
【図６】図６はプレイヤがコントローラを操作する様子を示す図解図である。
【図７】図７は図１に示す第１コントローラ、ジャイロユニットおよび第２コントローラが接続された状態の電気的な構成を示すブロック図である。
【図８】図８は図１に示すマーカおよびコントローラの視野角を説明するための図解図である。
【図９】図９は対象画像を含む撮像画像の一例を示す図解図である。
【図１０】図１０は図１に示すモニタに表示されるゲーム画面の一例を示す図解図および剣オブジェクトと盾オブジェクトのローカル座標を説明するための図解図である。
【図１１】図１１は図１に示すモニタに表示されるゲーム画面の第２の例を示す図解図である。
【図１２】図１２は図１に示すモニタに表示されるゲーム画面の第３の例を示す図解図である。
【図１３】図１３は仮想３次元空間に仮想カメラを設定する方法を説明するための図解図である。
【図１４】図１４は図１３に示す仮想カメラと仮想３次元空間に設定される２次元面との位置関係を説明するための図解図である。
【図１５】図１５は仮想３次元空間に設定される２次元面に剣オブジェクトで２次元画像を描画する方法を説明するための図解図である。
【図１６】図１６は図１に示すモニタに表示されるゲーム画面の第４の例を示す図解図である。
【図１７】図１７は図１に示すモニタに表示されるゲーム画面の第５の例を示す図解図である。
【図１８】図１８は図１に示すモニタに表示されるゲーム画面の第６の例を示す図解図である。
【図１９】図１９は仮想３次元空間に設定された２次元面に描画された２次元画像を認識する方法を説明するための図解図である。
【図２０】図２０は図２に示すメインメモリのメモリマップの一例を示す図解図である。
【図２１】図２１は図２に示すＣＰＵのゲーム全体処理の一部を示すフロー図である。
【図２２】図２２は図２に示すＣＰＵのゲーム全体処理の他の一部であって、図２１に後続するフロー図である。
【図２３】図２３は図２に示すＣＰＵのゲーム全体処理のその他の一部であって、図２２に後続するフロー図である。
【図２４】図２４は仮想３次元空間に設定された２次元面に描画された２次元画像に対応する３次元オブジェクトを表示するゲーム画面の他の例を示す図解図である。
【発明を実施するための形態】
【００４１】
図１を参照して、この発明の一実施例であるゲームシステム１０は、画像処理装置としても機能するビデオゲーム装置（以下、単に「ゲーム装置」という。）１２および第１コントローラ２２を含む。なお、図示は省略するが、この実施例のゲーム装置１２は、最大４つの第１コントローラ２２と通信可能に設計されている。また、ゲーム装置１２と各第１コントローラ２２とは、無線によって接続される。たとえば、無線通信は、Ｂｌｕｅｔｏｏｔｈ（登録商標）規格に従って実行されるが、赤外線や無線ＬＡＮなど他の規格に従って実行されてもよい。さらには、有線で接続されてもよい。また、この実施例では、第１コントローラ２２には、ジャイロユニット２４が接続（連結）され、このジャイロセンサ２４に差し込みプラグ３６ａおよびケーブル３６ｂを介して第２コントローラ３６が接続されている。
【００４２】
なお、図示等は省略するが、ジャイロユニット２４を第１コントローラ２２に装着しない場合には、差し込みプラグ３６ａおよびケーブル３６ｂを介して第２コントローラ３６を第１コントローラ２２に接続することもできる。
【００４３】
ジャイロユニット２４は、第１コントローラ２２に接続されることで、第１コントローラ２２と物理的および電気的に結合される。したがって、第１コントローラ２２に装着（一体化）されたジャイロユニット２４からは、第１コントローラ２２の角速度を示す角速度データが出力され、第１コントローラ２２に与えられる。
【００４４】
また、第２コントローラ３６の操作データないし入力データは、ケーブル３６ｂ、差し込みプラグ２６ｂおよびジャイロユニット２４を介して第１コントローラ２２に与えられる。
【００４５】
したがって、第１コントローラ２２は、第１コントローラ２２自身の操作データないし入力データのみならず、ジャイロユニット２４からの角速度データおよび第２コントローラ３６からの操作データないし入力データをゲーム装置１２に送信する。
【００４６】
なお、ジャイロユニット２４を第１コントローラ２２に装着しない場合には、第２コントローラ３６の操作データないし入力データはケーブル３６ｂ、差し込みプラグ３６ａを介して第１コントローラ２２に与えられる。
【００４７】
図１に戻って、ゲーム装置１２は、略直方体のハウジング１４を含み、ハウジング１４の前面にはディスクスロット１６が設けられる。ディスクスロット１６から、ゲームプログラム等を記憶した情報記憶媒体の一例である光ディスク１８が挿入されて、ハウジング１４内のディスクドライブ５４（図２参照）に装着される。図示は省略するが、ディスクスロット１６の周囲には、ＬＥＤと導光板とが配置され、様々な処理に応答させて、ディスクスロット１６を点灯または点滅させることが可能である。
【００４８】
また、ゲーム装置１２のハウジング１４の前面であり、その上部には、電源ボタン２０ａおよびリセットボタン２０ｂが設けられ、その下部には、イジェクトボタン２０ｃが設けられる。さらに、リセットボタン２０ｂとイジェクトボタン２０ｃとの間であり、ディスクスロット１６の近傍には、外部メモリカード用コネクタカバー２８が設けられる。この外部メモリカード用コネクタカバー２８の内側には、外部メモリカード用コネクタ６２（図２参照）が設けられ、図示しない外部メモリカード（以下、単に「メモリカード」という。）が挿入される。メモリカードは、光ディスク１８から読み出したゲームプログラム等をローディングして一時的に記憶したり、このゲームシステム１０を利用してプレイしたゲームのゲームデータ（ゲームの結果データまたは途中データ）を保存（セーブ）しておいたりするために利用される。ただし、上記のゲームデータの保存は、メモリカードに対して行うことに代えて、たとえばゲーム装置１２の内部に設けられるフラッシュメモリ４４（図２参照）のような内部メモリに対して行うようにしてもよい。また、メモリカードは、内部メモリのバックアップメモリとして用いるようにしてもよい。さらに、ゲーム装置１２では、ゲーム以外の他のアプリケーションを実行することも可能であり、かかる場合には、メモリカードには当該他のアプリケーションのデータを保存することができる。
【００４９】
なお、メモリカードとしては、汎用のＳＤカードを用いることができるが、メモリスティックやマルチメディアカード（登録商標）のような他の汎用のメモリカードを用いることもできる。
【００５０】
図１では省略するが、ゲーム装置１２のハウジング１４の後面には、ＡＶケーブルコネクタ５８（図２参照）が設けられ、そのＡＶコネクタ５８を用いて、ＡＶケーブル３２ａを通してゲーム装置１２にモニタ３４およびスピーカ３４ａを接続する。このモニタ３４およびスピーカ３４ａは典型的にはカラーテレビジョン受像機であり、ＡＶケーブル３２ａによって、ゲーム装置１２からの映像信号がカラーテレビのビデオ入力端子に入力され、ゲーム装置１２からの音声信号が音声入力端子に入力される。したがって、カラーテレビ（モニタ）３４の画面上にたとえば３次元（３Ｄ）ビデオゲームのゲーム画像が表示され、左右のスピーカ３４ａからゲーム音楽や効果音などのステレオゲーム音声が出力される。また、モニタ３４の周辺（この実施例では、モニタ３４の上側）には、２つの赤外ＬＥＤ（マーカ）３４０ｍ，３４０ｎを備えるマーカ部３４ｂが設けられる。このマーカ部３４ｂは、電源ケーブル３２ｂを通してゲーム装置１２に接続される。したがって、マーカ部３４ｂには、ゲーム装置１２から電源が供給される。これによって、マーカ３４０ｍ，３４０ｎは発光し、それぞれモニタ３４の前方に向けて赤外光を出力する。
【００５１】
なお、ゲーム装置１２の電源は、一般的なＡＣアダプタ（図示せず）によって与えられる。ＡＣアダプタは家庭用の標準的な壁ソケットに差し込まれ、ゲーム装置１２は、家庭用電源（商用電源）を、駆動に適した低いＤＣ電圧信号に変換する。他の実施例では、電源としてバッテリが用いられてもよい。
【００５２】
このゲームシステム１０において、ユーザまたはプレイヤがゲーム（またはゲームに限らず、他のアプリケーション）をプレイするために、ユーザはまずゲーム装置１２の電源をオンし、次いで、ユーザはビデオゲーム（もしくはプレイしたいと思う他のアプリケーション）のプログラムを記録している適宜の光ディスク１８を選択し、その光ディスク１８をゲーム装置１２のディスクドライブ５４にローディングする。応じて、ゲーム装置１２がその光ディスク１８に記録されているプログラムに基づいてビデオゲームもしくは他のアプリケーションを実行し始めるようにする。ユーザはゲーム装置１２に入力を与えるために第１コントローラ２２を操作する。たとえば、入力手段２６のどれかを操作することによってゲームもしくは他のアプリケーションをスタートさせる。また、入力手段２６に対する操作以外にも、第１コントローラ２２自体を動かすことによって、動画オブジェクト（プレイヤオブジェクト）を異なる方向に移動させ、または３Ｄのゲーム世界におけるユーザの視点（カメラ位置）を変化させることができる。
【００５３】
ただし、ビデオゲームや他のアプリケーションのプログラムは、ゲーム装置１２の内部メモリ（フラッシュメモリ４４（図２参照））に記憶（インストール）しておき、当該内部メモリから実行するようにしてもよい。かかる場合には，光ディスク１８のような記憶媒体に記憶されたプログラムを内部メモリにインストールしてもよいし、ダウンロードされたプログラムを内部メモリにインストールしてもよい。
【００５４】
図２は図１実施例のビデオゲームシステム１０の電気的な構成を示すブロック図である。図示は省略するが、ハウジング１４内の各コンポーネントは、プリント基板に実装される。図２に示すように、ゲーム装置１２には、ＣＰＵ４０が設けられ、ゲームプロセッサとして機能する。また、ＣＰＵ４０には、システムＬＳＩ４２が接続される。このシステムＬＳＩ４２には、外部メインメモリ４６、ＲＯＭ／ＲＴＣ４８、ディスクドライブ５４およびＡＶ  ＩＣ５６が接続される。
【００５５】
外部メインメモリ４６は、ゲームプログラム等のプログラムを記憶したり、各種データを記憶したりして、ＣＰＵ４０のワーク領域やバッファ領域として用いられる。ＲＯＭ／ＲＴＣ４８は、いわゆるブートＲＯＭであり、ゲーム装置１２の起動用のプログラムが組み込まれるとともに、時間をカウントする時計回路が設けられる。ディスクドライブ５４は、光ディスク１８からプログラム，画像データや音声データ等を読み出し、ＣＰＵ４０の制御の下で、後述する内部メインメモリ４２ｅまたは外部メインメモリ４６に書き込む。
【００５６】
システムＬＳＩ４２には、入出力プロセッサ４２ａ、ＧＰＵ(Graphics Processor Unit)４２ｂ，ＤＳＰ(Digital Signal Processor)４２ｃ，ＶＲＡＭ４２ｄおよび内部メインメモリ４２ｅが設けられ、図示は省略するが、これらは内部バスによって互いに接続される。入出力プロセッサ（Ｉ／Ｏプロセッサ）４２ａは、データの送受信を実行したり、データのダウンロードを実行したりする。データの送受信やダウンロードについては後述する。
【００５７】
ＧＰＵ４２ｂは、描画手段の一部を形成し、ＣＰＵ４０からのグラフィクスコマンド(作画命令)を受け、そのコマンドに従ってゲーム画像データを生成する。ただし、ＣＰＵ４０は、グラフィクスコマンドに加えて、ゲーム画像データの生成に必要な画像生成プログラムをＧＰＵ４２ｂに与える。
【００５８】
図示は省略するが、上述したように、ＧＰＵ４２ｂにはＶＲＡＭ４２ｄが接続される。ＧＰＵ４２ｂが作画コマンドを実行するにあたって必要なデータ（画像データ：ポリゴンデータやテクスチャデータなどのデータ）は、ＧＰＵ４２ｂがＶＲＡＭ４２ｄにアクセスして取得する。ただし、ＣＰＵ４０は、描画に必要な画像データを、ＧＰＵ４２ｂを介してＶＲＡＭ４２ｄに書き込む。ＧＰＵ４２ｂは、ＶＲＡＭ４２ｄにアクセスして描画のためのゲーム画像データを作成する。
【００５９】
なお、この実施例では、ＧＰＵ４２ｂがゲーム画像データを生成する場合について説明するが、ゲームアプリケーション以外の任意のアプリケーションを実行する場合には、ＧＰＵ４２ｂは当該任意のアプリケーションについての画像データを生成する。
【００６０】
また、ＤＳＰ４２ｃは、オーディオプロセッサとして機能し、内部メインメモリ４２ｅや外部メインメモリ４６に記憶されるサウンドデータや音波形（音色）データを用いて、スピーカ３４ａから出力する音、音声或いは音楽に対応するオーディオデータを生成する。
【００６１】
上述のように生成されたゲーム画像データおよびオーディオデータは、ＡＶ  ＩＣ５６によって読み出され、ＡＶコネクタ５８を介してモニタ３４およびスピーカ３４ａに出力される。したがって、ゲーム画面がモニタ３４に表示され、ゲームに必要な音（音楽）がスピーカ３４ａから出力される。
【００６２】
また、入出力プロセッサ４２ａには、フラッシュメモリ４４、無線通信モジュール５０および無線コントローラモジュール５２が接続されるとともに、拡張コネクタ６０およびメモリカード用コネクタ６２が接続される。また、無線通信モジュール５０にはアンテナ５０ａが接続され、無線コントローラモジュール５２にはアンテナ５２ａが接続される。
【００６３】
図示は省略するが、入出力プロセッサ４２ａは、無線通信モジュール５０を介して、ネットワークに接続される他のゲーム装置や各種サーバと通信することができる。ただし、ネットワークを介さずに、直接的に他のゲーム装置と通信することもできる。入出力プロセッサ４２ａは、定期的にフラッシュメモリ４４にアクセスし、ネットワークへ送信する必要があるデータ（「送信データ」とする）の有無を検出し、当該送信データが有る場合には、無線通信モジュール５０およびアンテナ５０ａを介してネットワークに送信する。また、入出力プロセッサ４２ａは、他のゲーム装置から送信されるデータ（「受信データ」とする）を、ネットワーク、アンテナ５０ａおよび無線通信モジュール５０を介して受信し、当該受信データをフラッシュメモリ４４に記憶する。ただし、受信データが一定の条件を満たさない場合には、当該受信データはそのまま破棄される。さらに、入出力プロセッサ４２ａは、ダウンロードサーバからダウンロードしたデータ（ダウンロードデータとする）をネットワーク、アンテナ５０ａおよび無線通信モジュール５０を介して受信し、そのダウンロードデータをフラッシュメモリ４４に記憶する。
【００６４】
また、入出力プロセッサ４２ａは、第１コントローラ２２から送信されるコントローラデータをアンテナ５２ａおよび無線コントローラモジュール５２を介して受信し、内部メインメモリ４２ｅまたは外部メインメモリ４６のバッファ領域に記憶（一時記憶）する。コントローラデータは、ＣＰＵ４０の処理（たとえば、ゲーム処理）によって利用された後、バッファ領域から消去される。
【００６５】
なお、この実施例では、上述したように、無線コントローラモジュール５２は、Ｂｌｕｅｔｏｏｔｈ規格に従って第１コントローラ２２との間で通信を行う。また、図２では、簡単のため、ジャイロユニット２４および第２コントローラ３６は省略してある。
【００６６】
さらに、入出力プロセッサ４２ａには、拡張コネクタ６０およびメモリカード用コネクタ６２が接続される。拡張コネクタ６０は、ＵＳＢやＳＣＳＩのようなインターフェイスのためのコネクタであり、外部記憶媒体のようなメディアを接続したり、第１コントローラ２２および第２コントローラ３６とは異なるコントローラのような周辺機器を接続したりすることができる。また、拡張コネクタ６０に有線ＬＡＮアダプタを接続し、無線通信モジュール５０に代えて当該有線ＬＡＮを利用することもできる。メモリカード用コネクタ６２には、メモリカードのような外部記憶媒体を接続することができる。したがって、たとえば、入出力プロセッサ４２ａは、拡張コネクタ６０やメモリカード用コネクタ６２を介して、外部記憶媒体にアクセスし、データを保存したり、データを読み出したりすることができる。
【００６７】
詳細な説明は省略するが、図１にも示したように、ゲーム装置１２（ハウジング１４）には、電源ボタン２０ａ，リセットボタン２０ｂおよびイジェクトボタン２０ｃが設けられる。電源ボタン２０ａは、システムＬＳＩ４２に接続される。この電源ボタン２０ａがオンされると、システムＬＳＩ４２には、ゲーム装置１２の各コンポーネントに図示しないＡＣアダプタを経て電源が供給され、通常の通電状態となるモード（「通常モード」と呼ぶこととする）が設定される。一方、電源ボタン２０ａがオフされると、システムＬＳＩ４２には、ゲーム装置１２の一部のコンポーネントのみに電源が供給され、消費電力を必要最低限に抑えるモード（以下、「スタンバイモード」という）が設定される。
【００６８】
この実施例では、スタンバイモードが設定された場合には、システムＬＳＩ４２は、入出力プロセッサ４２ａ、フラッシュメモリ４４、外部メインメモリ４６、ＲＯＭ／ＲＴＣ４８および無線通信モジュール５０、無線コントローラモジュール５２以外のコンポーネントに対して、電源供給を停止する指示を行う。したがって、この実施例では、スタンバイモードにおいて、ＣＰＵ４０がアプリケーションを実行することはない。
【００６９】
なお、システムＬＳＩ４２には、スタンバイモードにおいても電源が供給されるが、ＧＰＵ４２ｂ、ＤＳＰ４２ｃおよびＶＲＡＭ４２ｄへのクロックの供給を停止することにより、これらを駆動しないようにして、消費電力を低減するようにしてある。
【００７０】
また、図示は省略するが、ゲーム装置１２のハウジング１４内部には、ＣＰＵ４０やシステムＬＳＩ４２などのＩＣの熱を外部に排出するためのファンが設けられる。スタンバイモードでは、このファンも停止される。
【００７１】
ただし、スタンバイモードを利用したくない場合には、スタンバイモードを利用しない設定にしておくことにより、電源ボタン２０ａがオフされたときに、すべての回路コンポーネントへの電源供給が完全に停止される。
【００７２】
また、通常モードとスタンバイモードとの切り替えは、第１コントローラ２２の電源スイッチ２６ｈ（図３（Ｂ）参照）のオン／オフの切り替えによって、遠隔操作によって行うことが可能である。当該遠隔操作を行わない場合には、スタンバイモードにおいて無線コントローラモジュール５２ａへの電源供給を行わない設定にしてもよい。
【００７３】
リセットボタン２０ｂもまた、システムＬＳＩ４２に接続される。リセットボタン２０ｂが押されると、システムＬＳＩ４２は、ゲーム装置１２の起動プログラムを再起動する。イジェクトボタン２０ｃは、ディスクドライブ５４に接続される。イジェクトボタン２０ｃが押されると、ディスクドライブ５４から光ディスク１８が排出される。
【００７４】
図３（Ａ）ないし図３（Ｅ）は、第１コントローラ２２の外観の一例を示す。図３（Ａ）は第１コントローラ２２の先端面を示し、図３（Ｂ）は第１コントローラ２２の上面を示し、図３（Ｃ）は第１コントローラ２２の右側面を示し、図３（Ｄ）は第１コントローラ２２の下面を示し、そして、図３（Ｅ）は第１コントローラ２２の後端面を示す。
【００７５】
図３（Ａ）ないし図３（Ｅ）を参照して、第１コントローラ２２は、たとえばプラスチック成型によって形成されたハウジング２２ａを有している。ハウジング２２ａは、略直方体形状であり、ユーザが片手で把持可能な大きさである。ハウジング２２ａ（第１コントローラ２２）には、入力手段（複数のボタンないしスイッチ）２６が設けられる。具体的には、図３（Ｂ）に示すように、ハウジング２２ａの上面には、十字キー２６ａ，１ボタン２６ｂ，２ボタン２６ｃ，Ａボタン２６ｄ，−ボタン２６ｅ，ＨＯＭＥボタン２６ｆ，＋ボタン２６ｇおよび電源スイッチ２６ｈが設けられる。また、図３（Ｃ）および図３（Ｄ）に示すように、ハウジング２２ａの下面に傾斜面が形成されており、この傾斜面に、Ｂトリガースイッチ２６ｉが設けられる。
【００７６】
十字キー２６ａは、４方向プッシュスイッチであり、矢印で示す４つの方向、前（または上）、後ろ（または下）、右および左の操作部を含む。この操作部のいずれか１つを操作することによって、プレイヤによって操作可能なキャラクタまたはオブジェクト（プレイヤキャラクタまたはプレイヤオブジェクト）の移動方向を指示したり、カーソルの移動方向を指示したり、単に方向を指示したりすることができる。
【００７７】
１ボタン２６ｂおよび２ボタン２６ｃは、それぞれ、押しボタンスイッチである。たとえば３次元ゲーム画像を表示する際の視点位置や視点方向、すなわち仮想カメラの位置や画角を調整する等のゲームの操作に使用される。または、１ボタン２６ｂおよび２ボタン２６ｃは、Ａボタン２６ｄおよびＢトリガースイッチ２６ｉと同じ操作或いは補助的な操作をする場合に用いるようにしてもよい。
【００７８】
Ａボタンスイッチ２６ｄは、押しボタンスイッチであり、プレイヤキャラクタまたはプレイヤオブジェクトに、方向指示以外の動作、すなわち、打つ（パンチ）、投げる、つかむ（取得）、乗る、ジャンプするなどの任意のアクションをさせるために使用される。たとえば、アクションゲームにおいては、ジャンプ、パンチ、武器を動かすなどを指示することができる。また、ロールプレイングゲーム（ＲＰＧ）やシミュレーションＲＰＧにおいては、アイテムの取得、武器やコマンドの選択および決定等を指示することができる。また、Ａボタンスイッチ２６ｄは、第１コントローラ２２をポインティングデバイスとして用いる場合に、ゲーム画面上でポインタ（指示画像）が指示するアイコンないしボタン画像の決定を指示するために使用される。たとえば、アイコンやボタン画像が決定されると、これらに対応して予め設定されている指示ないし命令（コマンド）を入力することができる。
【００７９】
−ボタン２６ｅ、ＨＯＭＥボタン２６ｆ、＋ボタン２６ｇおよび電源スイッチ２６ｈもまた、押しボタンスイッチである。−ボタン２６ｅは、ゲームモードを選択するために使用される。ＨＯＭＥボタン２６ｆは、ゲームメニュー（メニュー画面）を表示するために使用される。＋ボタン２６ｇは、ゲームを開始（再開）したり、一時停止したりするなどのために使用される。電源スイッチ２６ｈは、ゲーム装置１２の電源を遠隔操作によってオン／オフするために使用される。
【００８０】
なお、この実施例では、第１コントローラ２２自体をオン／オフするための電源スイッチは設けておらず、第１コントローラ２２の入力手段２６のいずれかを操作することによって第１コントローラ２２はオンとなり、一定時間（たとえば、３０秒）以上操作しなければ自動的にオフとなるようにしてある。
【００８１】
Ｂトリガースイッチ２６ｉもまた、押しボタンスイッチであり、主として、弾を撃つなどのトリガを模した入力を行ったり、第１コントローラ２２で選択した位置を指定したりするために使用される。また、Ｂトリガースイッチ２６ｉを押し続けると、プレイヤオブジェクトの動作やパラメータを一定の状態に維持することもできる。また、一定の場合には、Ｂトリガースイッチ２６ｉは、通常のＢボタンと同様に機能し、Ａボタン２６ｄによって決定したアクションやコマンドなどを取り消すなどのために使用される。
【００８２】
また、図３（Ｅ）に示すように、ハウジング２２ａの後端面にコネクタ２２ｂが設けられ、また、図３（Ｂ）に示すように、ハウジング２２ａの上面であり、後端面側にはインジケータ２２ｃが設けられる。この実施例では、コネクタ２２ｂは、主として、ジャイロユニット２４を接続するために設けられる。インジケータ２２ｃは、たとえば、４つのＬＥＤで構成される。たとえば、インジケータ２２ｃでは、４つのうちのいずれか１つを点灯させることにより、点灯したＬＥＤに応じて、第１コントローラ２２の識別情報（コントローラ番号）を示すことができる。また、インジケータ２２ｃでは、点灯させるＬＥＤの個数によって第１コントローラ２２の電池残量を示すこともできる。
【００８３】
さらに、第１コントローラ２２は、撮像情報演算部８０（図７参照）を有しており、図３（Ａ）に示すように、ハウジング２２ａの先端面には撮像情報演算部８０の光入射口２２ｄが設けられる。また、第１コントローラ２２は、スピーカ８６（図７参照）を有しており、このスピーカ８６は、図３（Ｂ）に示すように、ハウジング２２ａの上面であり、１ボタン２６ｂとＨＯＭＥボタン２６ｆとの間に設けられる音抜き孔２２ｅに対応して、ハウジング２２ａ内部に設けられる。
【００８４】
なお、図３（Ａ）ないし図３（Ｅ）に示した第１コントローラ２２の形状や、各入力手段２６の形状、数および設置位置等は単なる一例に過ぎず、それらが適宜改変された場合であっても、本発明を実現できることは言うまでもない。
【００８５】
図４（Ａ）は、図１に示したように、第１コントローラ２２にジャイロユニット２４を接続した状態を示す図解図である。ジャイロユニット２４は、第１コントローラ２２の後端面側（インジケータ２２ｃ側）に接続される。図４（Ｂ）に示すように、ジャイロユニット２４は、第１コントローラ２２と同様に、プラスチック成型によって形成されたハウジング２４ａを有している。ハウジング２４ａは、略立方体形状であり、第１コントローラ２２に接続される側の面に、第１コントローラ２２のコネクタ２２ｂに連結される差し込みプラグ２４ｂが設けられる。また、図４（Ｃ）に示すように、この差し込みプラグ２４が設けられる面の反対側の面には、コネクタ２４ｃが設けられる。詳細な説明は省略するが、ジャイロユニット２４が第１コントローラ２２に連結させると、ロック機構によって、その連結状態が維持される。この連結状態は、ジャイロユニット２４の両側面に設けられた解除ボタン２４ｄが押されると、解除される。したがって、第１コントローラ２２にジャイロユニット２４を着脱することが可能である。
【００８６】
図５には第２コントローラ３６の本体の外観の一例が示される。図５（Ａ）は、第２コントローラ３６を上面後方から見た斜視図であり、図５（Ｂ）は、第２コントローラ３６を下面前方から見た斜視図である。なお、図５では、第２コントローラ３６の差し込みプラグ３６ａおよびケーブル３６ｂは省略されている。この第２コントローラ３６は、たとえばプラスチック成型によって形成されたハウジング３６ｃを有している。図５（Ａ）および（Ｂ）に示すように、ハウジング３６ｃは、平面視では、前後方向（Ｚ軸方向）に略細長い楕円形状を有し、後端側の左右方向（Ｘ軸方向）の幅が先端側のそれよりも狭くされている。また、ハウジング３６ｃは、側面視では、全体として湾曲した形状を有しており、先端側の水平部分から後端側に向かって下がるように湾曲している。ハウジング３６ｃは、第１コントローラ２２と同様に、片手で把持可能な大きさであるが、長手方向（Ｚ軸方向）の長さは、第１コントローラ２２のハウジング２２ａよりもやや短くされている。この第２コントローラ３６でも、プレイヤは、ボタンやスティックを操作することと、第２コントローラ３６自体の位置や向きを変えることとによって、ゲーム操作を行うことができる。
【００８７】
ハウジング３６ｃの上面の先端側には、アナログジョイスティック１００ａが設けられる。ハウジング３６ｃの先端には、後方にやや傾斜する先端面が設けられており、この先端面には、上下方向（図５に示すＹ軸方向）に並べて、Ｃボタン１００ｂおよびＺボタン１００ｃが設けられる。アナログジョイスティック１０ａおよび各ボタン１００ｂ，１００ｃには、ゲーム装置１２が実行するゲームプログラムに応じてそれぞれ適宜な機能が割り当てられる。第２コントローラ３６に設けられるアナログジョイスティック１００ａおよび各ボタン１００ｂ，１００ｃは、包括的に入力手段１００として示されることもある。
【００８８】
このゲームシステム１０では、ボタン操作だけでなく、第１コントローラ２２自体や第２コントローラ３６自体を動かすことによっても、ゲームなどのアプリケーションに対する入力を行うことができる。ゲームをプレイする際には、たとえば図６に示すように、プレイヤは、その右手で第１コントローラ２２を持ち、その左手で第２コントローラ３６を持つ。また、図面では分かりにくいが、第１コントローラ２２の後端面側には、ストラップ３８が装着されており、このストラップ３８がプレイヤの右手の手首に掛けられる。したがって、プレイ中に第１コントローラ２２が離脱するのが防止される。
【００８９】
上述したように、第１コントローラ２２には３軸方向の加速度を検出する加速度センサ７４が内蔵され、第２コントローラ３６にも同様の加速度センサ１０２が内蔵されている。第１コントローラ２２および第２コントローラ３６がそれぞれプレイヤによって動かされると、加速度センサ８４および加速度センサ９０によって、それぞれのコントローラ自身の動きを示す３軸方向（図４、図５参照）の加速度値が検出される。また、この実施例では、第１コントローラ２２には、ジャイロユニット２４が装着されているため、第１コントローラ２２自身の動きを示す３軸周り（図４参照）の角速度値がさらに検出される。
【００９０】
これらの検出値に対応するデータは、上述のコントローラデータに含まれてゲーム装置１２に送信される。ゲーム装置１２では、コントローラ１４からのコントローラデータは、アンテナ５２ａおよび無線コントローラモジュール５２を介して受信され、受信されたコントローラデータは、入出力プロセッサ４２ａによって、内部メインメモリ４２ｅまたは外部メインメモリ４６のバッファ領域に書き込まれる。ＣＰＵ４０は、内部メインメモリ４２ｅまたは外部メインメモリ４６のバッファ領域に格納されたコントローラデータを読み出し、このコントローラデータから検出値つまりコントローラ１４によって検出された加速度および／または角速度の値を復元する。
【００９１】
ＣＰＵ４４はまた、このような復元処理と並行して、復元された加速度から第１コントローラ２２や第２コントローラ３６の速度を計算する処理を実行してもよい。さらに並行して、計算された速度から第１コントローラ２２や第２コントローラ３６の移動距離ないし位置を求めることもできる。一方、復元された角速度からは、第１コントローラ２２の回転角が求まる。
【００９２】
なお、加速度を積算して速度を求めたり、角速度を積算して回転角を求めたりする際の初期値（積分定数）は、たとえば、後述する撮像情報演算部８０のからの位置座標データに基づいて計算できる。位置座標データはまた、積算によって蓄積されていく誤差の修正にも用いることができる。
【００９３】
ゲーム処理は、こうして求められた加速度、速度、移動距離、角速度および回転角などの変数に基づいて実行される。したがって、上記の処理は全てを行わなくともよく、ゲーム処理に必要な変数を適宜算出すればよい。なお、角速度や回転角も、原理的には加速度から計算し得るが、そのためには、ゲームプログラムに複雑なルーチンが必要で、ＣＰＵ４４にも重い処理負荷がかかる。ジャイロユニット２４を利用することで、プログラム開発が容易になり、ＣＰＵ４０の処理負荷も軽減される。
【００９４】
図７は、第１コントローラ２２、ジャイロユニット２４および第２コントローラ３６の電気的な構成を示すブロック図である。この図７を参照して、第１コントローラ２２はプロセッサ７０を含み、このプロセッサ７０には、内部バス（図示せず）によって、コネクタ２２ｂ、入力手段２６、メモリ７２、加速度センサ７４、無線モジュール７６、撮像情報演算部８０、ＬＥＤ８２（インジケータ２２ｃ）、バイブレータ８４、スピーカ８６および電源回路８８が接続される。また、無線モジュール７６には、アンテナ７８が接続される。
【００９５】
なお、簡単のため、図７では省略するが、上述したように、インジケータ２２ｃは４つのＬＥＤ８２によって構成される。
【００９６】
プロセッサ７０は、第１コントローラ２２の全体制御を司り、入力手段２６、加速度センサ７４および撮像情報演算部８０によって入力された情報（入力情報）を、コントローラデータとして無線モジュール７６およびアンテナ７８を介してゲーム装置１２に送信（入力）する。このとき、プロセッサ７０は、メモリ７２を作業領域ないしバッファ領域として用いる。また、上述した入力手段２６（２６ａ−２６ｉ）からの操作信号（操作データ）は、プロセッサ７０に入力され、プロセッサ７０は操作データを一旦メモリ７２に記憶する。
【００９７】
加速度センサ７４は、図４に示すように、第１コントローラ２２の縦方向（Ｙ軸方向）、横方向（Ｘ軸方向）および前後方向（Ｚ軸方向）の３軸で各々の加速度を検出する。この加速度センサ７４は、典型的には、静電容量式の加速度センサであるが、他の方式のものを用いるようにしてもよい。
【００９８】
たとえば、加速度センサ７４は、Ｘ軸，Ｙ軸，Ｚ軸の各々についての加速度（ａｘ，ａｙ，ａｚ）を検出し、検出した加速度のデータ（加速度データ）をプロセッサ７０に入力する。たとえば、加速度センサ７４は、各軸方向の加速度を、−２．０ｇ〜２．０ｇ（ｇは重力加速度である。以下、同じ。）の範囲で検出する。プロセッサ７０は、加速度センサ７４から与えられる加速度データを検出し、一旦メモリ７２に記憶する。したがって、検出された加速度に適宜な演算処理を施すことによって、第１コントローラ２２の傾きや回転、重力方向に対する加速度センサ７４の姿勢などを算出することができる。また、振り等によって第１コントローラ２２に加えられた動きについても同様に算出することができる。
【００９９】
プロセッサ７０は、第１コントローラ２２の操作データ、第１コントローラ２２の加速度データ、後述するマーカ座標データ、後述する角速度データ、後述する第２コントローラの操作データおよび後述する第２コントローラの加速度データの少なくとも１つを含むコントローラデータを作成し、作成したコントローラデータを、ゲーム装置１２に送信する。
【０１００】
なお、図３（Ａ）−図３（Ｅ）では省略したが、この実施例では、加速度センサ７４は、ハウジング２２ａ内部の基板上の十字キー２６ａが配置される付近に設けられる。
【０１０１】
無線モジュール７６は、たとえばＢｌｕｅｔｏｏｔｈ（登録商標）の技術を用いて、所定周波数の搬送波をコントローラデータで変調し、その微弱電波信号をアンテナ７８から放射する。つまり、コントローラデータは、無線モジュール７６によって微弱電波信号に変調されてアンテナ７８（第１コントローラ２２）から送信される。この微弱電波信号が上述したゲーム装置１２に設けられた無線コントローラモジュール５２によって受信される。受信された微弱電波は、復調および復号の処理を施され、したがって、ゲーム装置１２（ＣＰＵ４０）は、第１コントローラ２２からのコントローラデータを取得することができる。そして、ＣＰＵ４０は、取得したコントローラデータとアプリケーションプログラム（ゲームプログラム）とに従ってアプリケーションの処理（ゲーム処理）を行う。
【０１０２】
さらに、上述したように、第１コントローラ２２には、撮像情報演算部８０が設けられる。この撮像情報演算部８０は、赤外線フィルタ８０ａ、レンズ８０ｂ、撮像素子８０ｃおよび画像処理回路８０ｄによって構成される。赤外線フィルタ８０ａは、第１コントローラ２２の前方から入射する光から赤外線のみを通過させる。上述したように、モニタ３４の表示画面近傍（周辺）に配置されるマーカ３４０ｍおよび３４０ｎは、モニタ３４の前方に向かって赤外光を出力する赤外ＬＥＤである。したがって、赤外線フィルタ８０ａを設けることによってマーカ３４０ｍおよび３４０ｎの画像をより正確に撮像することができる。レンズ８０ｂは、赤外線フィルタ８０ａを透過した赤外線を集光して撮像素子８０ｃへ出射する。撮像素子８０ｃは、たとえばＣＭＯＳセンサあるいはＣＣＤのような固体撮像素子であり、レンズ８０ｂによって集光された赤外線を撮像する。したがって、撮像素子８０ｃは、赤外線フィルタ８０ａを通過した赤外線だけを撮像して画像データを生成する。以下では、撮像素子８０ｃによって撮像された画像を撮像画像と呼ぶ。撮像素子８０ｃによって生成された画像データは、画像処理回路８０ｄで処理される。画像処理回路８０ｄは、撮像画像内における撮像対象（マーカ３４０ｍおよび３４０ｎ）の位置を算出し、当該位置を示す各座標値を撮像データ（後述するマーカ座標データ）としてプロセッサ７０に出力する。なお、画像処理回路８０ｄにおける処理については後述する。
【０１０３】
また、第１コントローラ２２には、ジャイロユニット２４が接続される。図５からも分かるように、差し込みプラグ２４ｂは、コネクタ２２ｂに接続される。差し込みプラグ２４ｂは信号線によって、マイコン９０に接続される。マイコン９０には、ジャイロセンサ９２が接続されるとともに、信号線によってコネクタ２４ｃが接続される。
【０１０４】
ジャイロセンサ９２は、図４に示すように、第１コントローラ２２の縦方向の軸回り（Ｙ軸回り）、横方向の軸回り（Ｘ軸回り）および前後方向の軸回り（Ｚ軸回り）の３軸回りについての各々の角速度を検出する。ただし、Ｙ軸の回転はヨー角で表わされ、Ｘ軸の回転はピッチ角で表わされ、そして、Ｚ軸の回転はロール角で表わされる。このジャイロセンサ９２は、典型的には、圧電振動型のものを用いることができるが、他の方式のものを用いるようにしてもよい。
【０１０５】
たとえば、ジャイロセンサ９２は、Ｘ軸，Ｙ軸，Ｚ軸の各々の軸周りについての角速度（ωｘ，ωｙ，ωｚ）を検出し、検出した角速度をマイコン９０に入力する。ただし、角速度は、マイコン９０に入力されるときに、アナログ信号からディジタルのデータに変換される。この実施例で使用するジャイロセンサ９２は、各軸についての角速度を０〜１５００ｄｐｓ（ｄｅｇｒｅｅ  ｐｅｒｃｅｎｔ  ｓｅｃｏｎｄ）の範囲で計測可能である。ただし、後述するこの実施例の仮想ゲームにおいては、ヨー角については、９００ｄｐｓ〜１５００ｄｐｓの範囲を計測範囲とし、ピッチ角とロール角とについては、０〜１５００ｄｐｓの範囲を計測範囲としてある。
【０１０６】
なお、センサは、好ましい実施例ではジャイロセンサ（角速度センサ）であるが、たとえば加速度センサ、速度センサ、変位センサ、回転角センサなど、他のモーションセンサでもよい。モーションセンサ以外にも、傾斜センサ、イメージセンサ、光センサ、圧力センサ、磁気センサ、温度センサなどがあり、いずれのセンサを追加する場合でも、センサの検出対象を利用した操作が可能となる。いずれのセンサを用いた場合でも、従来操作装置に接続されていた他の装置をそのまま使用しながら、操作装置に当該センサを追加することができる。
【０１０７】
マイコン９０は、ジャイロセンサ９２から与えられる角速度を検出し、検出した角速度に対応する角速度データをマイコン９０に内蔵されるメモリ（図示せず）に一時記憶する。そして、マイコン９０は、メモリに一時記憶された角速度データを第１コントローラ２２（プロセッサ７０）に送信する。したがって、コントローラデータには、角速度データが含まれる場合がある。
【０１０８】
なお、この実施例では、マイコン９０は、角速度データをメモリに一時記憶し、或る程度まとめてプロセッサ７０に送信するようにしてあるが、メモリに一時記憶せずに、そのままプロセッサ７０に送信するようにしてもよい。
【０１０９】
また、第２コントローラ３６のハウジング３６ｃ内には加速度センサ１０２（図７）が設けられている。この加速度センサ１０２としては、第１コントローラ２２の加速度センサ７４と同様の加速度センサが適用される。具体的には、この実施例では３軸加速度センサが適用され、第２コントローラ３６の上下方向（Ｙ軸方向）、左右方向（Ｘ軸方向）および前後方向（Ｚ軸方向）の３軸方向のそれぞれで加速度を検知する。したがって、第１コントローラ２２の場合と同様に、検出された加速度に適宜な演算処理を施すことによって、第２コントローラ３６の傾きや回転、重力方向に対する加速度センサ１０２の姿勢などを算出することができる。また、振り等によって第２コントローラ３６に加えられた動きについても同様に算出することができる。
【０１１０】
また、第１コントローラ２２内に取替可能に収容されるバッテリ（図示せず）によって、電源が与えられる。ジャイロユニット２４には、コネクタ２２ｂおよび差し込みプラグ２４ｂを介してこの電源が供給される。さらに、第１コントローラ２２からジャイロユニット２４に供給された電源の一部が、コネクタ２４ｃ、差し込みプラグ３６ａおよびケーブル３６ｂを介して第２コントローラ３６に与えられる。
【０１１１】
上述したように、ビデオゲームシステム１０で第１コントローラ２２および第２コントローラ３６を用いてゲームをプレイする際、プレイヤは、一方の手（右手）で第１コントローラ２２を把持し、他方の手（左手）で第２コントローラ３６を把持する。ただし、ジャイロユニット２４は、第１コントローラ２２に装着されている。たとえば、ポインティングデバイスとして第１コントローラ２２を使用する場合には、プレイヤは、第１コントローラ２２の先端面（撮像情報演算部８０が撮像する光の入射口２２ｄ側）がマーカ３４０ｍおよび３４０ｎの方を向く状態で第１コントローラ２２を把持する。ただし、図１からも分かるように、マーカ３４０ｍおよび３４０ｎは、モニタ３４の画面の横方向と平行に配置されている。この状態で、プレイヤは、第１コントローラ２２が指示する画面上の位置を変更したり、第１コントローラ２２と各マーカ３４０ｍおよび３４０ｎとの距離を変更したりすることによってゲーム操作を行う。
【０１１２】
図８は、マーカ３４０ｍおよび３４０ｎと、第１コントローラ２２との視野角を説明するための図である。ただし、簡単のため、図８では、ジャイロユニット２４および第２コントローラ３６は省略してある。図８に示すように、マーカ３４０ｍおよび３４０ｎは、それぞれ、視野角θ１の範囲で赤外光を放射する。また、撮像情報演算部８０の撮像素子８０ｃは、第１コントローラ２２の視線方向を中心とした視野角θ２の範囲で入射する光を受光することができる。たとえば、マーカ３４０ｍおよび３４０ｎの視野角θ１は、共に３４°（半値角）であり、一方、撮像素子８０ｃの視野角θ２は４１°である。プレイヤは、撮像素子８０ｃが２つのマーカ３４０ｍおよび３４０ｎからの赤外光を受光することが可能な位置および向きとなるように、第１コントローラ２２を把持する。具体的には、撮像素子８０ｃの視野角θ２の中にマーカ３４０ｍおよび３４０ｎの少なくとも一方が存在し、かつ、マーカ３４０ｍまたは３４０ｎの少なくとも一方の視野角θ１の中に第１コントローラ２２が存在する状態となるように、プレイヤは第１コントローラ２２を把持する。この状態にあるとき、第１コントローラ２２は、マーカ３４０ｍおよび３４０ｎの少なくとも一方を検知することができる。プレイヤは、この状態を満たす範囲で第１コントローラ２２の位置および向きを変化させることによってゲーム操作を行うことができる。
【０１１３】
なお、第１コントローラ２２の位置および向きがこの範囲外となった場合、ジャイロユニット２４で検出される角速度に基づいて第１コントローラ２２の位置および向きに基づいたゲーム操作を行う。したがって、以下では、上記範囲を「ポインティング操作可能範囲」と呼ぶ。
【０１１４】
ポインティング操作可能範囲内で第１コントローラ２２が把持される場合、撮像情報演算部８０によって各マーカ３４０ｍおよび３４０ｎの画像が撮像される。すなわち、撮像素子８０ｃによって得られる撮像画像には、撮像対象である各マーカ３４０ｍおよび３４０ｎの画像（対象画像）が含まれる。図９は、対象画像を含む撮像画像の一例を示す図である。対象画像を含む撮像画像の画像データを用いて、画像処理回路８０ｄは、各マーカ３４０ｍおよび３４０ｎの撮像画像における位置を表す座標（マーカ座標）を算出する。
【０１１５】
撮像画像の画像データにおいて対象画像は高輝度部分として現れるため、画像処理回路８０ｄは、まず、この高輝度部分を対象画像の候補として検出する。次に、画像処理回路８０ｄは、検出された高輝度部分の大きさに基づいて、その高輝度部分が対象画像であるか否かを判定する。撮像画像には、対象画像である２つのマーカ３４０ｍおよび３４０ｎに対応する画像３４０ｍ’および３４０ｎ’のみならず、窓からの太陽光や部屋の蛍光灯の光によって対象画像以外の画像が含まれていることがある。高輝度部分が対象画像であるか否かの判定処理は、対象画像である画像３４０ｍ’および３４０ｎ’と、それ以外の画像とを区別し、対象画像を正確に検出するために実行される。具体的には、当該判定処理においては、検出された高輝度部分が、予め定められた所定範囲内の大きさであるか否かが判定される。そして、高輝度部分が所定範囲内の大きさである場合には、当該高輝度部分は対象画像を表すと判定される。逆に、高輝度部分が所定範囲内の大きさでない場合には、当該高輝度部分は対象画像以外の画像を表すと判定される。
【０１１６】
さらに、上記の判定処理の結果、対象画像を表すと判定された高輝度部分について、画像処理回路８０ｄは当該高輝度部分の位置を算出する。具体的には、当該高輝度部分の重心位置を算出する。ここでは、当該重心位置の座標をマーカ座標と呼ぶ。また、重心位置は撮像素子８０ｃの解像度よりも詳細なスケールで算出することが可能である。ここでは、撮像素子８０ｃによって撮像された撮像画像の解像度が１２６×９６であるとし、重心位置は１０２４×７６８のスケールで算出されるものとする。つまり、マーカ座標は、（０，０）から（１０２４，７６８）までの整数値で表現される。
【０１１７】
なお、撮像画像における位置は、撮像画像の左上を原点とし、下向きをＹ軸正方向とし、右向きをＸ軸正方向とする座標系（ＸＹ座標系）で表現されるものとする。
【０１１８】
また、対象画像が正しく検出される場合には、判定処理によって２つの高輝度部分が対象画像として判定されるので、２箇所のマーカ座標が算出される。画像処理回路８０ｄは、算出された２箇所のマーカ座標を示すデータを出力する。出力されたマーカ座標のデータ（マーカ座標データ）は、上述したように、プロセッサ７０によってコントローラデータに含まれ、ゲーム装置１２に送信される。
【０１１９】
ゲーム装置１２（ＣＰＵ４０）は、受信したコントローラデータからマーカ座標データを検出すると、このマーカ座標データに基づいて、モニタ３４の画面上における第１コントローラ２２の指示位置（指示座標）と、第１コントローラ２２からマーカ３４０ｍおよび３４０ｎまでの各距離とを算出することができる。具体的には、２つのマーカ座標の中点の位置から、第１コントローラ２２の向いている位置すなわち指示位置が算出される。また、撮像画像における対象画像間の距離が、第１コントローラ２２と、マーカ３４０ｍおよび３４０ｎとの距離に応じて変化するので、２つのマーカ座標間の距離を算出することによって、ゲーム装置１２は第１コントローラ２２と、マーカ３４０ｍおよび３４０ｎとの間の距離を把握できる。
【０１２０】
なお、上述したプロセッサ７０への各出力は、たとえば１／２００秒周期で実行される。したがって、任意の１／２００秒間に、入力手段２６からの操作データと、撮像情報演算部８０のからの位置座標データと、加速度センサ７４からの加速度データと、ジャイロセンサ９２からの角速度データと、入力手段１００からの操作データと、加速度センサ１０２からの加速度データとが、１回ずつプロセッサ７０に出力される。また、コントローラデータは、たとえば、１／２００秒毎に、ゲーム装置１２に送信される。無線コントローラモジュール５２は、コントローラ２２から所定周期（たとえば、１／２００秒）で送信されるコントローラデータを受信し、当該無線コントローラモジュール５２が備える図示しないバッファに蓄積する。その後、ゲーム装置１２では、ＣＰＵ４０の指示の下、入力プロセッサ４２ａによって、１フレーム（画面更新単位時間：１／６０秒）毎に、当該期間中に蓄積されたコントローラデータが読み出され、操作データバッファ７０２ａ（図２０参照）に記憶される。ＣＰＵ４０は、操作データバッファ７０２ａを参照して、コントローラデータに従ってゲーム処理を実行する。
【０１２１】
上述したようなゲームシステム１０では、仮想ゲームをプレイすることができる。図１０（Ａ）には、この実施例の仮想ゲームにおいて、モニタ３４に表示されるゲーム画面２００の一例が表示される。詳細な説明は省略するが、仮想ゲーム空間（仮想３次元空間）５００（図１３参照）内に、地面オブジェクト、建物オブジェクトおよび地形オブジェクトのような背景オブジェクトが設けられるとともに、プレイヤオブジェクト２０２が配置される。また、アイテムオブジェクト（以下、単に「アイテム」という）や敵オブジェクト２１０なども必要に応じて仮想３次元空間５００に配置される。このような仮想３次元空間５００を仮想カメラ５０２（図１３参照）で撮影した画像がゲーム画面としてモニタ３４に表示される。以下、画面を表示する場合について同様である。
【０１２２】
図１０（Ａ）に示すように、ゲーム画面２００には、プレイヤオブジェクト２０２が画面中央からやや右下寄りに表示される。この実施例のプレイヤオブジェクト２０２は、右手で剣オブジェクト２０４を持ち、左手で盾オブジェクト２０６を持っている。また、ゲーム画面２００には、複数（ここでは、４体）の敵オブジェクト２１０が画面中央からやや上寄りに横一列に並んで表示される。このゲーム画面２００では、敵オブジェクト２１０が矢オブジェクトを放ち、それをプレイヤオブジェクト２０２が盾オブジェクト２０６で防御している様子が示される。
【０１２３】
図面では、分かり難いが、プレイヤオブジェクト２０２や敵オブジェクト２１０が存在する場所が背景として表示される。
【０１２４】
さらに、ゲーム画面２００の左上部には、プレイヤオブジェクト２０２の生命力（ライフ）を示す画像２２０、盾オブジェクト２０６の防御力を示す画像２２２および所定のアイテムの所持数を示す画像２２４が表示される。また、ゲーム画面２００の左下部には、第２コントローラ３６の操作方法を示す画像２３０が表示される。そして、ゲーム画面２００の右端部に、第１コントローラ２２の操作方法を示す画像（方法指示画像）２４０が表示される。
【０１２５】
簡単に説明すると、第１コントローラ２２では、＋ボタン２６ｇを操作すると、地図（ゲームマップ）がモニタ３４に表示される。また、第１コントローラ２２では、Ｂトリガースイッチ２６ｉを操作すると、アイテムを選択および使用する画面がモニタ３４に表示される。
【０１２６】
また、ゲーム画面２００には表示されていないが、ジャイロユニット２４が接続された第１コントローラ２２は、プレイヤオブジェククト２０２が持っている剣オブジェクト２０４に対応しており、第１コントローラ２２を振ると、その動きに連動して、剣オブジェクト２０４が動く。これによって、敵オブジェクト２１０や他のオブジェクト（図示せず）を切ることができる。詳細な説明は省略するが、剣オブジェクト２０４を用いて、敵オブジェクト２１０や他のオブジェクトを切る以外の動作を行うこともできる。
【０１２７】
また、第２コントローラ３６は、プレイヤオブジェクト２０２が持っている盾オブジェクト２０６に対応しており、Ｃボタン１００ｂをオンした状態で第２コントローラ３６を静止させると、その位置および向きで、盾オブジェクト２０６が静止される。
【０１２８】
図１０（Ｂ）に示すように、剣オブジェクト２０４および盾オブジェクト２０６の各々には、ローカル座標が設定されている。剣オブジェクト２０４のローカル座標は第１コントローラ２２に設定された座標と対応し、盾オブジェクト２０６のローカル座標は第２コントローラ３６に設定された座標と対応する。ただし、この実施例では、剣オブジェクト２０４に設定されたローカル座標の各軸（Ｘ軸、Ｙ軸、Ｚ軸）と、第１コントローラ２２に設定された各軸（Ｘ軸、Ｙ軸、Ｚ軸）とは一致される。同様に、盾オブジェクト２０６に設定されたローカル座標の各軸と、第２コントローラ３６に設定された各軸とは一致される。
【０１２９】
したがって、図６に示したように、プレイヤが、ジャイロユニット２４が接続された第１コントローラ２２および第２コントローラ３６を持って仮想ゲームをプレイする場合には、第１コントローラ２２の姿勢（位置および向き）および動きが、仮想３次元空間５００内のプレイヤオブジェクト２０２が持つ剣オブジェクト２０４の姿勢および動きに反映（連動）される。同様に、第２コントローラ３６の姿勢（位置および向き）および動きが、仮想３次元空間５００内のプレイヤオブジェクト２０２が持つ盾オブジェクト２０６の姿勢および動きに連動される。
【０１３０】
なお、ジャイロユニット２４が接続された第１コントローラ２２の動きに連動して剣オブジェクト２０４が動くことについては、本願発明の本質的な内容でないため、その詳細な説明については省略する。たとえば、本件出願人が先に出願し、既に出願公開された特開２０１０−１４２５６１号公報に開示された技術を用いることができる。
【０１３１】
また、第２コントローラ３６では、Ｃボタン１００ｂを操作すると、プレイヤオブジェクト２０２に盾オブジェクト２０６で弾く動作をさせることができる。したがって、敵オブジェクト２１０が放った矢を盾オブジェクト２０６で弾くことがきる。また、Ｚボタン１００ｃを操作すると、プレイヤオブジェクト２０２に敵オブジェクト２１０を注目させることができる。たとえば、プレイヤオブジェクト２０２に敵オブジェクト２１０を注目させておけば、戦闘中に、プレイヤオブジェクト２０２が敵オブジェクト２１０を見失うことがない。
【０１３２】
なお、ゲーム画面２００に表示されていないが、第２コントローラ３６を振ることによっても、敵オブジェクト２１０や他のオブジェクトを切ることができる。詳細な説明は省略するが、第１コントローラ２２を振る場合と第２コントローラ３６を振る場合とでは、切り方（切る技）が異なる。
【０１３３】
この仮想ゲームでは、プレイヤの操作に従って、プレイヤオブジェクト２０２を移動させたり、剣オブジェクト２０４を振る動作や盾オブジェクト２０６で防御する動作などの所定の動作をさせたりする。これによって、プレイヤオブジェクト２０２は、敵オブジェクト２１０と闘ったり、敵オブジェクト２１０を倒したり、アイテムを取得したり、所定の場所に行ったりすることにより、予め用意されたステージをクリア（ステージクリア）し、最終的な目的を達成すると、ゲームクリアとなる。ただし、プレイヤオブジェクト２０２が、敵オブジェクト２１０に倒されると、ゲームオーバとなる。
【０１３４】
たとえば、プレイヤが第２コントローラ３６のアナログジョイスティック１００ａのレバーを倒すと、レバーを倒した方向に、レバーを倒した量（角度）に応じた速度で、プレイヤオブジェクト２０２は仮想３次元空間５００内を移動する。図１１には、プレイヤオブジェクト２０２が或る場所（位置）ないし領域（この実施例では、描画領域）５１０（図１３参照）に存在する場合のゲーム画面２５０が示される。プレイヤオブジェクト２０２が描画領域５１０に存在するかどうかを判断するために、この描画領域５１０の範囲は予め設定されている。
【０１３５】
図１１に示すゲーム画面２５０では、画面中央下部に、プレイヤオブジェクト２０２が表示され、上述したように、プレイヤオブジェクト２０２は、剣オブジェクト２０４および盾オブジェクト２０６を持っている。また、ゲーム画面２５０の中央上端部には、現在プレイヤオブジェクト２０２が存在する場所が、描画領域であることを示す指示画像２５２が背景として表示される。この実施例では、指示画像２５２には、下向きの矢印が表示されているが、これに限定される必要はなく、他の図柄や記号が表示されてもよい。さらに、ゲーム画面２５０の右端部には、上述した方法指示画像２４０が表示される。この方法指示画像２４０では、第１コントローラ２２の先端面が上方を向くように、当該第１コントローラ２２を縦にすることにより、プレイヤオブジェクト２０２に構える動作をさせることが示される。
【０１３６】
たとえば、図１１に示すゲーム画面２５０がモニタ３４に表示されている場合に、所定の条件が満たされると、図１２に示すようなゲーム画面３００がモニタ３４に表示される。ここで、所定の条件は、プレイヤが所定のキーまたはスイッチないしはボタンを操作したり、プレイヤオブジェクト２０２が所定のアイテムを使用したり、プレイヤオブジェクト２０２が剣オブジェクト２０４で所定の壁面を叩いたり、プレイヤオブジェクト２０２が所定の動作を行ったりすることを意味する。これらは、ゲームプログラムや開発者等が適宜設定する事項であり、任意の条件を設定することができる。
【０１３７】
図１２に示すように、このゲーム画面３００では、２次元の描画面（２次元面）３０２がその表示領域の全体に表示される。この２次元面３０２は、プレイヤないしプレイヤオブジェクト２０２が、２次元の画像ないし図形（以下、「２次元画像」という）を描画するための仮想の面（描画面）である。また、ゲーム画面３００の中央下部には、２次元画像を描画する場合の操作方法を指示する画像（操作指示画像）３０４が２次元面３０２の前面に表示される。この操作指示画像３０４では、コントローラ２２を上下左右（斜めも含む）に移動させながら、Ａボタン２０６ｄを押すと、２次元画像を描くことができることが示される。また、プレイヤオブジェクト２０２が持っている剣オブジェクト２０４の一部が、２次元面３０２の前面に表示される。
【０１３８】
このように、図１１に示したゲーム画面２５０がモニタ３４に表示されている場合に、第１コントローラ２２の先端面を上に向けた後に、前方に向けるような所定の操作を行うと、図１２に示すゲーム画面３００がモニタ３４に表示され、２次元画像を描画できる状態となる。
【０１３９】
なお、所定の操作は、上記の操作に限定される必要はなく、第１コントローラ２２のいずれか１つまたは２つ以上の入力手段２６が操作されてもよい。または、第２コントローラ３６が操作されてもよい。
【０１４０】
また、所定の操作を行わずに、プレイヤオブジェクト２０２が描画領域５１０に到達したときに、図１２に示したゲーム画面３００がモニタ３４に表示されるようにしてもよい。
【０１４１】
ここで、図１２に示すゲーム画面３００が表示される場合の仮想３次元空間５００の様子について説明する。上述したように、所定の操作が行われると、仮想３次元空間５００では、仮想カメラ５０２がプレイヤオブジェクト２０２の頭部の位置に移動される。したがって、図１２に示すように、プレイヤオブジェクト２０２の主観的な視点によるゲーム画面３００がモニタ３４に表示される。
【０１４２】
詳細な説明は省略するが、図１０（Ａ）に示したゲーム画面２００および図１１に示したゲーム画面２５０からも分かるように、通常、仮想カメラ５０２は、プレイヤオブジェクト２０２の後方に配置され、当該プレイヤオブジェクト２０２に追従する。つまり、通常では、プレイヤオブジェクト２０２を客観的な視点で見たゲーム画面（２００、２５０など）がモニタ３４に表示される。
【０１４３】
また、仮想カメラ５０２がプレイヤオブジェクト２０２の頭部の位置に移動されるときに、仮想３次元空間５００内に、２次元面３０２が生成（配置）される。この実施例では、２次元面３０２は、指示画像２５２が表示された壁面の少し前方に配置される。ただし、図１４に示すように、仮想カメラ５０２の正面であり、２次元面３０２の位置と仮想カメラ５０２の位置との距離が所定距離ｄとなるように、２次元面３０２は配置される。この実施例では、仮想カメラ５０２の正面であり、２次元面３０２の中心３０２ａの位置と仮想カメラ５０２の中心（視点）５０２ａの位置（カメラ位置）との距離が所定距離ｄとなるように、所定の大きさの２次元面３０２が配置される。
【０１４４】
なお、この実施例では、所定の操作が行われたときに、２次元面３０２を配置するとともに、仮想カメラ５０２をプレイヤオブジェクト２０２の頭部の位置に移動させて、図１２に示すゲーム画面３００をモニタ３４に表示するようにしてあるが、これに限定される必要はない。たとえば、所定の操作が行われたときに、２次元面３０２を配置し、その後、２次元画像の描画を開始したとき、すなわちＡボタン２６ｄが押されたときに、仮想カメラ５０２をプレイヤオブジェクト２０２の頭部の位置に移動させて、図１２に示すゲーム画面３００をモニタ３４に表示するようにしてもよい。
【０１４５】
図１２に戻って、上述したように、プレイヤが第１コントローラ２２を上下左右に移動させると、第１コントローラ２２の移動に従って、剣オブジェクト２０４が移動される。そこで、Ａボタン２６ｄを押すと、２次元面３０２上であり、剣オブジェクト２０４の剣先が指示する位置に、連続的に（順次）２次元の点が描画される。つまり、線（２次元画像）が描画される。この実施例では、視点５０２ａから延びる線が２次元面３０２と交差する点（交点）に点が描画される。具体的に説明すると、図１５に示すように、仮想カメラ５０２の視点５０２ａと剣オブジェクト２０４の剣先の点２０４ａとを通る線５２０と、２次元面３０２との交点に点３０４が描画される。
【０１４６】
ただし、分かり易く示すために、図１５では、プレイヤオブジェクト２０２および背景オブジェクトを省略してある。
【０１４７】
また、この実施例では、２次元画像を描画する際には、剣オブジェクト２０４の持ち手（剣元）を固定しているため、第１コントローラ２２の移動に従って、剣オブジェクト２０４の剣先は球面状に移動する。したがって、剣先が指示する位置に点３０４を描画するようにすると、球面（曲面）状に点３０４が描画されることになる。したがって、この実施例では、剣先を２次元面３０２に投影するように、点３０４が描画される。こうすることによって、仮想３次元空間５００内のプレイヤオブジェクト２０２が、剣オブジェクト２０４などのアイテムを使って描画を行う場合に、球面（曲面）ではなく、平面に描くことが可能になる。
【０１４８】
図１６には、プレイヤまたはプレイヤオブジェクト２０２が２次元画像３５２を描画している途中のゲーム画面３５０が示される。図１６に示すゲーム画面３５０は、２次元面３０２に、描画中の２次元画像３５２が表示される以外は、図１２に示したゲーム画面３００と同じであるため、重複した説明は省略する。
【０１４９】
そして、プレイヤがＡボタン２６ｄを離すと、２次元画像３５２の描画が終了される。すると、図示は省略するが、仮想カメラ５０２は元の位置に戻される。つまり、図１３の点線で示したように、仮想カメラ５０２は、プレイヤオブジェクト２０２の後方に移動される。したがって、図１７に示すように、プイヤオブジェクト２０２を客観的な視点で見た場合のゲーム画面４００がモニタ３４に表示される。
【０１５０】
ゲーム画面４００では、プレイヤオブジェクト２０２、剣オブジェクト２０４、盾オブジェクト２０６および指示画像２５２に加えて、仮想３次元空間５００に設定された２次元面３０２およびこの２次元面３０２に描画された２次元画像３５２が表示される。
【０１５１】
また、２次元画像３５２の描画が終了されると、描画された２次元画像３５２の認識処理が開始される。この実施例では、プレイヤまたはプレイヤオブジェクト２０２が描画した２次元画像３５２が所定の画像であることが認識された場合には、認識された所定の画像に対応する３次元オブジェクトが出現される。たとえば、所定の画像は、ハートの画像や円（丸）の画像などであり、ハートの画像に対応してハートの３次元オブジェクトが設定（用意）されており、円の画像に対応して爆弾の３次元オブジェクトが設定されている。したがって、ハートの画像であることが認識されると、対応するハートの３次元オブジェクトが出現される。また、円の画像であることが認識されると、対応する爆弾の３次元オブジェクトが出現される。
【０１５２】
したがって、図１７のゲーム画面４００に表示されている２次元画像３５２がハートの画像として認識されると、図１８に示すようなゲーム画面４５０がモニタ３４に表示される。図１８に示すゲーム画面４５０では、２次元面３０２および２次元画像３５２に代えて、ハートの３次元オブジェクト４５２が表示される。図示は省略するが、仮想３次元空間５００においては、ハートの３次元オブジェクト４５２が出現され、２次元面３０２および２次元画像３５２は消去される。また、図示は省略するが、ハートの３次元オブジェクト４５２は、出現された後、地面に落下するため、その様子を示すゲーム画面が表示される。その後、プレイヤオブジェクト２０２は、ハートの３次元オブジェクト４５２を取得することができる。たとえば、プレイヤオブジェクト２０２がハートの３次元オブジェクト４５２を取得すると、当該プレイヤオブジェクト２０２のライフが増加される。
【０１５３】
図示は省略するが、円の画像が認識され、爆弾の３次元オブジェクト（爆弾オブジェクト）が出現され、これをプレイヤオブジェクト２０２が取得すると、所持アイテムに爆弾オブジェクトが追加される、または所持している爆弾オブジェクトの個数が増加される。
【０１５４】
ここで、描画された２次元画像３５２が所定の画像であるかどうかを認識（判別）する方法について説明する。図１９（Ａ）を参照して、描画された２次元画像３５２がハートの画像であるかどうかを判別する場合について説明する。この実施例においては、下記の各項目について点数が計算され、その合計点が算出される。
【０１５５】
なお、図１９（Ａ）では、整った形状の２次元画像３５２が描画されているように記載してあるが、第１コントローラ２２を現実空間内で動かして２次元画像３５２を描画するため、実際には、図１６および図１７に示したように、或る程度崩れた形状の２次元画像３５２が描画される。このことは、図１９（Ｂ）に示す円の画像についても同様である。
【０１５６】
ただし、以下に示す「角」は、連結された２つの線分のなす角度が所定角度（たとえば、１４０°）以下であり、当該２つの線分のそれぞれが所定の長さ以上である場合の当該２つの線分が連結された部分を意味する。たとえば、点線の丸で示す部分６００、６０２、６０４、６０６が「角」に相当する。また、詳細な説明は省略するが、描画された２次元画像３５２を認識する際には、そのすべての点を用いるのではなく、時系列に従って所定距離毎に抽出した点が用いられる。これは、２次元画像３５２を構成するすべての点を用いた場合には、形状（図形）を認識するための処理の負担が大きいためである。このことは、後述する円の画像を認識する場合も同様である。
【０１５７】
また、「下Ｖ字」は、「角」のうち、２つの線分が下側で連結されている形状（谷型）であり、当該２つの線分が連結された部分を意味する。図１９（Ａ）では、部分６０４および部分６０６が該当する。「上Ｖ字」は、「角」のうち、２つの線分が上側で連結されている形状（山型）であり、当該２つの線分が連結された部分を意味する。図１９（Ａ）では、部分６００および部分６０２が該当する。
【０１５８】
ただし、図１９（Ａ）（図１９（Ｂ）も同じ）に示すように、描画した２次元画像３５２を、その最上点、最下点、左端点および右端点を通る直線で形成される四角形で囲むことにより、角などの位置または範囲を判断し、点数が決定される。
【０１５９】
（１）下１／４の範囲内に、角が１つまたは下Ｖ字が１つ以上ある。（２）角が上半分に２個以上ある。（３）角の重心が上半分にある。（４）角の重心が上１／４から上１／２の間にある。（５）角が下１／６の範囲に１つある。または、角が下１／２（半分）の範囲に１つある。（６）下Ｖ字が下１／４の範囲に１つある。（７）下Ｖ字が上１／２の範囲に１つある。（８）上Ｖ字が上１／３の範囲に２つある。（９）上Ｖ字が上１／３の範囲に１つある。
【０１６０】
条件（１）〜（３）は、それぞれ、満たすか満たさないかで点数が決定される。条件（１）を満たす場合には、点数は１０点であり、満たさない場合には、点数は０点である。このことは、条件（２）および条件（３）についても同様である。ただし、条件（１）〜（３）のすべてを満たす場合には、合計点に２０点加算される。
【０１６１】
条件（４）については、点数が０点〜４０点の間で設定される。角の重心が上から１／４の位置に近い程、点数が高く設定され、角の重心が上から１／２の位置に近い程、点数が低く設定される。点数は、線形的に変化させてもよい、段階的に変化させてもよい。また、角の重心が上から１／４の位置に近い程、より点数が増大されるように、放物線状（累乗）に点数が変化されてもよい。角の重心が条件（４）の範囲外である場合には、点数は０点である。これらのことは、条件（５）についても同様である。
【０１６２】
また、条件（５）については、点数が０点〜３０点の間で設定される。１つの角が下１／６の範囲内にあれば、３０点であり、その位置が上昇するにつれて点数が小さくされる。ただし、複数の角が下１／６の範囲内にある場合には、点数は０点である。または、角の数が大きくなるについて点数が低くなるように設定されてもよい。
【０１６３】
条件（６）を満たす場合には、点数は２０点であり、満たさない場合には、点数は０点である。条件（７）を満たす場合には、点数は２０点であり、満たさない場合には、点数は０点である。ただし、条件（６）および条件（７）の両方を満たす場合には、合計点に５０点加算される。
【０１６４】
条件（８）を満たす場合には、点数は２０点であり、満たさない場合には、点数は０である。条件（９）を満たす場合には、点数は１０点であり、満たさない場合には、点数は０点である。ただし、上Ｖ字が下１／２の範囲にある場合には、その上Ｖ字の個数×３０点が合計点から減算される。
【０１６５】
このようにして各条件について算出された点数の合計が算出され、算出された合計点が所定の点数を超える場合に、ハートの画像であると判断される。たとえば、上記の条件（１）−（９）をすべて満たす場合の最大の合計点は２３０点であり、１００点を超えると、ハートの画像であると判断される。
【０１６６】
なお、ここでは、ハートの画像を認識（判別）する手法について説明したが、同様の手法を用いることにより、ハートの画像と同程度の複雑さを有する画像、たとえば、三角形、平行四辺形、ひし形、星形およびスペードなどの他の画像を認識することも可能である。ただし、認識する画像（図形）によって特徴が異なるため、２次元画像３５２に含まれる角の数、角の向き、および角の位置ないし範囲などの上記の条件が異なる。
【０１６７】
また、図１９（Ｂ）を参照して、描画された２次元画像３５２が円（丸）の画像であるかどうかを認識（判別）する方法について説明する。この方法では、以下に示す各条件を満足するかどうかが判断され、すべての条件（（ア）−（カ））を満たす場合に、描画された２次元画像３５２が円の画像であると認識（判別）される。
【０１６８】
（ア）上下左右で均等に分割（４分割）したときに、すべての範囲（領域（I）、（II）、（III）、（IV））の点の数が３つ以上である。ただし、描画された２次元画像３５２から抽出した点の数である。（イ）縦横比が、２：３から３：２の間である。ただし、縦の長さＬは、２次元画像３５２から抽出された点のうち、最上点と最下点とで決定される。また、横の長さＷは、２次元画像３５２から抽出された点のうち、左端点と右端点とで決定される。（ウ）角が全部で５つ以内である。ただし、「角」であるかどうかは上述した場合と同じである。（エ）線（２次元画像３５２）の書き始めすなわち前半の１／３の線、または線の書き終わりすなわち後半の１／３にしか角が無い。（オ）始点と終点との間の距離が、縦の長さＬの１／２以内であり、かつ横の長さＷの１／３以内である。（カ）すべての点の重心が下１／３の範囲よりも上方にある。
【０１６９】
なお、ここでは、円の画像を認識（判別）する手法について説明したが、同様の手法を用いることにより、円の画像と同様に上下および左右で対称となる画像、たとえば、長方形、ひし形、楕円形、正多角形などの他の画像を認識することも可能である。ただし、認識する画像（図形）によって特徴が異なるため、各領域に含まれる２次元画像３５２から抽出した点の数、２次元画像３５２に縦横比、２次元画像３５２に含まれる角の個数などの上記の条件が異なる。
【０１７０】
また、描画された２次元画像３５２が所定の画像として認識されない場合には、何ら３次元オブジェクトは出現されない。ただし、単なる石のオブジェクトのように、描画ないし認識を失敗したことが分かる３次元オブジェクトを出現させるようにしてもよい。
【０１７１】
さらに、描画された２次元画像３５２から抽出した点が１０個以下である場合には、認識処理を実行せずに、描画された２次元画像３５２を消去して、プレイヤに描画をやり直させるようにしてある。
【０１７２】
さらにまた、上記の画像の認識（判別）方法は一例であり、他の認識方法が採用されてもよい。たとえば、本件出願人が先に出願し既に出願公開された特開２００６−２０４３４４号に開示される方法を採用することもできる。
【０１７３】
また、この実施例では、２次元画像が所定の図形である場合について説明してあるが、図形に限定される必要はなく、文字などの記号であってもよい。かかる場合にも、記号の種類に応じて、上記のいずれかの認識（判別）方法を使い分けることにより、描画された２次元画像を認識することが可能である。
【０１７４】
図２０は、図２に示したメインメモリ（４２ｅまたは４６）のメモリマップの一例を示す図解図である。図２０に示すように、メインメモリ（４２ｅ，４６）は、プログラム記憶領域７００およびデータ記憶領域７０２を含む。プログラム記憶領域７００には、画像処理プログラムを含むゲームプログラムが記憶される。ゲームプログラムは、ゲームメイン処理プログラム７００ａ、画像生成プログラム７００ｂ、画像表示プログラム７００ｃ、操作入力検出プログラム７００ｄ、オブジェクト制御プログラム７００ｅ、描画制御プログラム７００ｆおよび画像認識プログラム７００ｇなどを含む。たとえば、画像処理プログラムは、画像生成プログラム７００ｂ、画像表示プログラム７００ｃ、操作入力検出プログラム７００ｄ、オブジェクト制御プログラム７００ｅ、描画制御プログラム７００ｆおよび画像認識プログラム７００ｇによって構成される。
【０１７５】
ゲームメイン処理プログラム７００ａは、この実施例の仮想ゲームのメインルーチンを処理するためのプログラムである。画像生成プログラム７００ｂは、後述する画像データ７０２ｂを用いて、モニタ３４に表示する画面（２００、３００など）に対応するゲーム画像データを生成するためのプログラムである。画面表示プログラム７００ｃは、画像生成プログラム７００ｂに従って生成されたゲーム画像データをモニタ３４に出力（表示・更新）するためのプログラムである。
【０１７６】
操作入力検出プログラム７００ｄは、第１コントローラ２２から送信されるコントローラデータを検出するためのプログラムである。オブジェクト制御プログラム７００ｅは、コントローラデータに従ってプレイヤオブジェクト２０２を移動等させたり、コントローラデータに従わないで敵オブジェクト２１０等のノンプレイヤオブジェクトを配置したり（出現させたり）移動等させたりするためのプログラムである。
【０１７７】
描画制御プログラム７００ｆは、仮想３次元空間５００に２次元面３０２を配置したり、２次元面３５２に対する描画位置を検出したり、２次元面３０２および２次元画像３５２を消去したりするためのプログラムである。画像認識プログラム７００ｇは、描画された２次元画像３５２が所定の画像（この実施例では、ハートの画像または円の画像）であるかどうかを認識（判別）するためのプログラムである。また、画像認識プログラム７００ｇは、２次元画像３５２が所定の画像であることを認識すると、所定の画像に対応する３次元オブジェクトを出現（発生）させる。
【０１７８】
なお、図示は省略するが、プログラム記憶領域７００には、音出力プログラムやバックアッププログラムも記憶される。音出力プログラムは、プレイヤオブジェクト２０２および敵オブジェクト２１０の音声（擬声音）、効果音、音楽（ＢＧＭ)などのゲームに必要な音を生成および出力するためのプログラムである。バックアッププログラムは、プレイヤの指示や所定のゲームイベントに従って、ゲームデータ（途中データ、結果データ）を、フラッシュメモリ４４やメモリカードに記憶するためのプログラムである。
【０１７９】
データ記憶領域７０２には、操作データバッファ７０２ａが設けられる。また、データ記憶領域７０２には、画像データ７０２ｂ、プレイヤオブジェクトデータ７０２ｃ、カメラ位置データ７０２ｄ、剣先位置データ７０２ｅおよび抽出データ７０２ｆを記憶する。
【０１８０】
操作データバッファ７０２ａは、アンテナ５２ａを介して無線コントローラモジュール５２で受信された、第1コントローラ２２からのコントローラデータを、記憶（一時記憶）するためのバッファである。操作データバッファ７０２ａに記憶されたコントローラデータは、ＣＰＵ４０によって使用された後、削除（消去）される。
【０１８１】
画像データ７０２ｂは、ポリゴンデータ、テクスチャデータ、およびオブジェクトデータなどのデータである。プレイヤオブジェクトデータ７０２ｃは、プレイヤオブジェクト２０２についてのデータである。たとえば、プレイヤオブジェクトデータ７０２ｃは、現在位置データ７０２０、生命力データ７０２２、アイテムデータ７０２４などを含む。現在位置データ７０２０は、プレイヤオブジェクト２０２の現在位置の３次元座標のデータである。生命力データ７０２２は、プレイヤオブジェクト２０２の生命力（ライフ）の数値についてのデータである。アイテムデータ７０２４は、プレイヤオブジェクト２０２の所持アイテムの種類および個数についてデータである。
【０１８２】
なお、図示は省略するが、プレイヤオブジェクトデータ７０２ｃには、プレイヤオブジェクト２０２のレベル、装備している武器（剣オブジェクト２０４、盾オブジェクト２０６）の種類や属性（攻撃力や防御力）などのデータも含まれる。
【０１８３】
カメラ位置データ７０２ｄは、仮想カメラ５０２の視点５０２ａの現在の位置（カメラ位置）についての３次元座標のデータである。剣先位置データ７０２ｅは、剣オブジェクト２０４の剣先の現在の位置についての３次元座標のデータである。ただし、剣先位置データ７０２ｅは、２次元画像３５２を描画するときだけ検出および更新される。抽出データ７０２ｆは、２次元画像３５２を描画するための２次元面３５２に描画される点を、時系列に従う順序で、所定距離毎に抽出した点の座標（３次元座標）についてのデータである。ただし、２次元画像３５２は２次元面３０２に描画され、カメラ座標系においては、奥行き値（Ｚ値）を考慮しなくてよいため、抽出データ７０２ｆとして、２次元座標についてのデータを記憶するようにしてもよい。
【０１８４】
図示は省略するが、データ記憶領域７０２には、サウンドデータなども記憶され、ゲーム処理に必要な、フラグやカウンタ（タイマ）も設けられる。
【０１８５】
具体的には、図２に示したＣＰＵ４０は、図２１に示すゲーム全体処理を実行する。図示は省略するが、このゲーム全体処理と並行して、コントローラ２２から送信されるコントローラデータの検出処理が実行されている。つまり、ＣＰＵ４０は、アンテナ５２ａおよび無線コントローラ５２を介して受信されたコントローラデータを、１フレーム毎に、メインメモリ（４２ｅ，４６）内の操作データバッファ７０２ａに記憶する。
【０１８６】
ＣＰＵ４０は、ゲーム全体処理を開始すると、ステップＳ１で、ゲーム画面を表示する。ここでは、ＣＰＵ４０は、仮想ゲームを最初から開始する場合には、当該仮想ゲームの初期のゲーム画面をモニタ３４に表示する。また、ＣＰＵ４０は、仮想ゲームを前回の続きから開始する場合には、前回の続きから開始するためのゲーム画面をモニタ３４に表示する。
【０１８７】
次のステップＳ３では、プレイヤオブジェクト２０２を制御する。ここでは、ＣＰＵ４０は、操作データバッファ７０２ａに記憶されたコントローラデータに従って、プレイヤオブジェクト２０２を移動させたり、プレイヤオブジェクト２０２に所定の動作をさせたりする。ただし、ＣＰＵ４０は、プレイヤオブジェクト２０２を移動させる場合には、移動後の現在位置の３次元座標のデータを現在位置データ７０２０としてデータ記憶領域７０２に記憶する。つまり、現在位置データ７０２０が更新される。ただし、コントローラデータにプレイヤオブジェクト２０２の制御についてのデータが含まれていない場合には、ステップＳ３の処理は実行されずに、そのままステップＳ５に進む。
【０１８８】
続いて、ステップＳ５では、描画領域かどうかを判断する。つまり、プレイヤオブジェクト２０２が、指示画像２５２の表示された描画領域５１０に存在する（到達した）かどうかを判断する。ステップＳ５で“ＹＥＳ”であれば、つまり描画領域５１０であれば、図２２に示すステップＳ２５に進む。一方、ステップＳ５で“ＮＯ”であれば、つまり描画領域５１０でなければ、ステップＳ７で、敵オブジェクト２１０を制御する。ここでは、ＣＰＵ４０は、敵オブジェクト２１０を配置する（出現させる）。また、ＣＰＵ４０は、ゲームプログラムに従って、敵オブジェクト２１０を移動させたり、敵オブジェクト２１０に所定の動作をさせたりする。
【０１８９】
詳細な説明は省略するが、ステップＳ３およびＳ７の処理によって、プレイヤオブジェクト２０２と敵オブジェクト２１０とが遭遇したり、闘ったりする。また、これらの処理によって、ゲーム画面が更新される。さらに、図示は省略するが、ステップＳ３の処理によって、プレイヤオブジェクト２０２が、爆弾の３次元オブジェクトなどのアイテムを取得すれば、当該アイテムが所持アイテムとして追加され、アイテムを使用すると、当該アイテムが所持アイテムから消去される。
【０１９０】
次のステップＳ９では、各種パラメータを更新する。ここでは、ＣＰＵ４０は、プレイヤオブジェクト２０２や敵オブジェクト２１０のライフを変化（低減または増加）させたり、プレイヤオブジェクト２０２のレベルを変化（増加）させたり、プレイヤオブジェクト２０２の攻撃力や防御力を変化（低減または増加）させたりする。
【０１９１】
なお、ステップＳ３の処理によって、プレイヤオブジェクト２０２がハートの３次元オブジェクトを取得した場合には、ステップＳ９の処理によって、プレイヤオブジェクト２０２のライフが増加される。
【０１９２】
続いて、ステップＳ１１では、ゲームクリアかどうかを判断する。たとえば、ＣＰＵ４０は、プレイヤないしプレイヤオブジェクト２０２が全ステージをクリアしたかどうかを判断する。ステップＳ１１で“ＹＥＳ”であれば、つまりゲームクリアであれば、ステップＳ１３で、ゲームクリア処理を実行して、ゲーム全体処理を終了する。たとえば、ステップＳ１３では、ＣＰＵ４０は、ゲームクリアであることを表現するゲーム画面をモニタ３４に表示したり、そのことを表現する音ないし音楽をスピーカ３４ａから出力したりする。
【０１９３】
一方、ステップＳ１１で“ＮＯ”であれば、つまりゲームクリアでなければ、ステップＳ１５で、ゲームオーバかどうかを判断する。たとえば、ＣＰＵ４０は、プレイヤオブジェクト２０２のライフが０以下となり、当該プレイヤオブジェクト２０２が倒されたかどうかを判断する。ステップＳ１５で“ＹＥＳ”であれば、つまりゲームオーバであれば、ステップＳ１７で、ゲームオーバ処理を実行して、ゲーム全体処理を終了する。たとえば、ステップＳ１７では、ＣＰＵ４０は、ゲームオーバであることを表現するゲーム画面をモニタ３４に表示したり、そのことを表現する音ないし音楽をスピーカ３４ａから出力したりする。
【０１９４】
なお、ゲームクリアまたはゲームオーバの場合に、ゲーム全体処理を終了するようにしてあるが、プレイヤの操作に従って、ゲーム全体処理を終了することもある。また、図示は省略するが、プレイヤの操作や所定のゲームイベントに従って、ゲームデータのバックアップ処理が実行されることもある。
【０１９５】
また、ステップＳ１５で“ＮＯ”であれば、つまりゲームオーバでなければ、ステップＳ１９で、ステージクリアかどうかを判断する。たとえば、ＣＰＵ４０は、現在のステージにおいて、プレイヤオブジェクト２０２がボスの敵オブジェクト２０２を倒したかどうかを判断する。
【０１９６】
ステップＳ１９で“ＮＯ”であれば、つまりステージクリアでなければ、そのままステップＳ３に戻る。一方、ステップＳ１９で“ＹＥＳ”であれば、つまりステージクリアであれば、ステップＳ２１で、ステージクリア処理を実行する。ここでは、ＣＰＵ４０は、ステージクリアであることを表現するゲーム画面をモニタ３４に表示したり、そのことを表現する音ないし音楽をスピーカ３４ａから出力したりする。
【０１９７】
次のステップＳ２３では、次のステージに進み、ステップＳ３に戻る。たとえば、ステップＳ２３では、ＣＰＵ４０は、プレイヤオブジェクト２０２を、次のステージの初期位置（スタート地点）に移動させる。
【０１９８】
図２２に示すように、ステップＳ２５では、２次元画面３０２を表示するための操作方法を表示する。つまり、図１１に示したようなゲーム画面２５０が表示される。続くステップＳ２７では、所定の条件を満たしたかどうかを判断する。ここでは、ＣＰＵ４０は、上述したように、プレイヤが所定のキーまたはスイッチないしはボタンを操作したり、プレイヤオブジェクト２０２が所定のアイテムを使用したり、プレイヤオブジェクト２０２が剣オブジェクト２０４で所定の壁面を叩いたり、プレイヤオブジェクト２０２が所定の動作を行ったりしたかどうかを判断する。
【０１９９】
ステップＳ２７で“ＮＯ”であれば、つまり所定の条件を満たしていなければ、図２１に示したステップＳ７に移行する。一方、ステップＳ２７で“ＹＥＳ”であれば、つまり所定の条件を満たせば、ステップＳ２９で、仮想カメラ５０２の位置を主観的な視点位置に移動する。つまり、仮想カメラ５０２をプレイヤオブジェクト２０２の頭部の位置に移動する。次のステップＳ３１では、仮想カメラ５０２の位置に応じて２次元面３０２を、仮想３次元空間５００内に配置する。つまり、仮想カメラ５０２の前方であり、視点５０２ａの位置と２次元面３０２の中心３０２ａの位置との距離が所定距離ｄになるように、２次元面３０２が配置される。そして、ステップＳ３３で、描画方法を表示する。つまり、図１２に示したようなゲーム画面３００がモニタ３４に表示される。
【０２００】
続いてステップ３７では、Ａボタン２６ｄがオンであるかどうかを判断する。つまり、ＣＰＵ４０は、操作データバッファ７０２ａのコントローラデータを参照して、Ａボタン２６ｄがオンされているかどうかを判断することにより、描画を開始することが指示されたかどうかを判断する。ステップＳ３５で“ＮＯ”であれば、つまりＡボタン２６ｄがオフであれば、同じステップＳ３５に戻って、Ａボタン２６ｄがオンされるのを待機する。
【０２０１】
一方、ステップＳ３５で“ＹＥＳ”であれば、つまりＡボタン２６ｄがオンされれば、描画を開始すると判断して、図２３に示すステップＳ３７で、操作に従って描画する。上述したように、仮想カメラ５０２の視点５０２ａの位置と剣オブジェクト２０４の剣先の点２０４ａとを通る線５２０と、２次元面３０２との交点に２次元の点３０４を表示（描画）する。ただし、ＣＰＵ４０は、操作データバッファ７０２ａに記憶されたコントローラデータに含まれる角速度データに基づいてヨー角、ロール角およびピッチ角が算出され、すなわち第１コントローラ２２の姿勢が検出され、これに応じて剣オブジェクト２０４を移動等させ、このとき剣先の点２０４ａの位置が更新される。つまり、剣先位置データ７０２ｅが更新される。続くステップＳ３９では、所定距離毎に点３０４を抽出する。ただし、抽出された点３０４の３次元座標のデータがデータ領域７０２に記憶（追加）される。つまり、抽出データ７０２ｆが更新される。
【０２０２】
続くステップＳ４１では、Ａボタン２６ｄがオフであるかどうかを判断する。ステップＳ４１で“ＮＯ”であれば、つまりＡボタン２６ｄがオンであれば、描画中であると判断して、ステップＳ３７に戻る。一方、ステップＳ４１で“ＹＥＳ”であれば、つまりＡボタン２６ｄがオフであれば、ステップＳ４３で、抽出した点３０４の数が所定数（たとえば、１０）を超えているかどうかを判断する。ステップＳ４３で“ＮＯ”であれば、つまり抽出した描画点３０４の数が所定数以下であれば、ステップＳ４５で、描画内容すなわち２次元画像３５２を消去して、図２２に示したステップＳ３５に戻る。ただし、ステップＳ４５では、抽出された点３０４もすべて消去される。
【０２０３】
一方、ステップＳ４３で“ＹＥＳ”であれば、つまり抽出した点３０４の数が所定数を超えていれば、ステップＳ４７で、仮想カメラ５０２（視点５０２ａ）の位置を客観的な視点位置に戻す。つまり、プレイヤオブジェクト２０２の後方の位置に、仮想カメラ５０２の位置が移動される。したがって、図１７に示したようなゲーム画面４００がモニタ３４に表示される。
【０２０４】
続いて、ステップＳ４９では、画像の認識処理を実行する。ここでは、上述したような、ハートの画像の認識処理（判別処理）および円の画像の判別処理が実行される。次のステップＳ５１では、認識を成功したかどうかを判断する。つまり、描画された２次元画像３５２が、ハートの画像または円の画像であることが判別されたかどうかを判断する。
【０２０５】
ステップＳ５１で“ＮＯ”であれば、つまり認識を失敗すれば、そのままステップＳ５５に進む。一方、ステップＳ５１で“ＹＥＳ”であれば、つまり認識を成功すれば、ステップＳ５３で、認識した画像に対応する所定の３次元オブジェクト（４５２）を出現および落下させる。つまり、図１８に示したようなゲーム画面４５０がモニタ３４に表示され、その後、ハートの３次元オブジェクト４５２が地面に落下される。そして、ステップＳ５５で、２次元面３０２およびその描画内容を消去して、図２１に示したステップＳ３に戻る。つまり、ステップＳ５３およびＳ５５の処理によって、描画された２次元画像（３５２）が、これに対応する３次元オブジェクト（４５２）に変換される。
【０２０６】
この実施例によれば、所定の条件を満たすときに、仮想３次元空間に２次元面を表示し、この２次元面に描画した２次元画像を３次元オブジェクトに変換するので、２次元画像を描画するための難易度を上げることができ、面白味を増大させることができる。
【０２０７】
なお、この実施例では、２次元画像の描画を開始した後も、描画方法の操作指示画像を表示し続けるようにしたが、描画を開始した後に消去するようにしてもよい。また、描画方法の操作指示画像は、２次元画像を描画するのが所定回数（２回目）以降である場合、仮想ゲームを或る程度進行させている場合、ゲームレベル（プレイヤオブジェクトのレベル）が所定値以上である場合には、表示しないようにしてもよい。
【０２０８】
同様に、この実施例では、プレイヤオブジェクトが描画領域に存在する（到達した）とき、２次元面を表示するための操作方法の操作指示画像を表示するようにしたが、描画領域に到達するのが所定回数（２回目）以降である場合、仮想ゲームを或る程度進行させている場合、ゲームレベル（プレイヤオブジェクトのレベル）が所定値以上である場合には、表示しないようにしてもよい。
【０２０９】
さらに、この実施例では、２次元面に描画した２次元の点に基づく２次元画像が所定の画像か否かを認識して、所定の画像である場合に、所定の３次元オブジェクトに変換するようにしたが、これに限定される必要はない。たとえば、図２４に示すように、２次元面に２次元画像を描画する際に、３次元の点（球）を配置（表示）することにより、２次元で描画した内容を３次元のオブジェクトで表示するようにしてもよい。
【０２１０】
さらに、この実施例では、プレイヤオブジェクトが持っている剣オブジェクトを第１コントローラから送信されるコントローラデータに含まれる角速度データに基づいて動かすことにより、２次元面に２次元画像を描画するようにしたが、これに限定される必要はない。たとえば、剣オブジェクトは、第１コントローラから送信されるコントローラデータに含まれる加速度データに基づいて動かすこともできる。また、剣オブジェクトの剣先の点を、第１コントローラから送信されるコントローラデータに含まれるマーカ座標データに基づいて移動させることもできる。つまり、ポインティングデバイスを用いて２次元画像を描画することもできる。また、ポインティングデバイスとしては、タッチパネルやコンピュータマウスなども用いることができる。
【０２１１】
さらにまた、この発明は、画像処理のための各処理（プログラム７００ｂ−７００ｇ）が複数のコンピュータ等によって分散処理されるような画像処理システムにも適用可能である。
【符号の説明】
【０２１２】
１０  …ゲームシステム
１２  …ゲーム装置
１８  …光ディスク
２２  …コントローラ
２４  …ジャイロユニット
２６，１００  …入力手段
３４  …モニタ
３４ａ  …スピーカ
４０  …ＣＰＵ
４２  …システムＬＳＩ
４２ａ  …入出力プロセッサ
４２ｂ  …ＧＰＵ
４２ｃ  …ＤＳＰ
４２ｄ  …ＶＲＡＭ
４２ｅ  …内部メインメモリ
４４  …フラッシュメモリ
４６  …外部メインメモリ
４８  …ＲＯＭ／ＲＴＣ
５０  …無線通信モジュール
５２  …無線コントローラモジュール
５４  …ディスクドライブ
５６  …ＡＶ  ＩＣ
５８  …ＡＶコネクタ
６０  …拡張コネクタ
６２  …メモリカード用コネクタ
７０  …プロセッサ
７４，１０２  …加速度センサ
８０  …画像情報演算部
８０ｃ  …撮像素子
８０ｄ  …画像処理回路
９０  …マイコン
９２  …ジャイロセンサ
【図１】
0005937791.tif 000002
【図２】
0005937791.tif 000003
【図３】
0005937791.tif 000004
【図４】
0005937791.tif 000005
【図５】
0005937791.tif 000006
【図６】
0005937791.tif 000007
【図７】
0005937791.tif 000008
【図８】
0005937791.tif 000009
【図９】
0005937791.tif 000010
【図１０】
0005937791.tif 000011
【図１１】
0005937791.tif 000012
【図１２】
0005937791.tif 000013
【図１３】
0005937791.tif 000014
【図１４】
0005937791.tif 000015
【図１５】
0005937791.tif 000016
【図１６】
0005937791.tif 000017
【図１７】
0005937791.tif 000018
【図１８】
0005937791.tif 000019
【図１９】
0005937791.tif 000020
【図２０】
0005937791.tif 000021
【図２１】
0005937791.tif 000022
【図２２】
0005937791.tif 000023
【図２３】
0005937791.tif 000024
【図２４】
0005937791.tif 000025