(57)【要約】【課題】より現実感の高い表現ができる画像処理プログラムおよび画像処理装置を提供すること。【解決手段】まず、表示装置の画面の大きさまたは当該画面上において仮想空間の画像が表示される領域の大きさを示す表示領域サイズデータを取得する。更に、ユーザの位置と表示装置との間の距離を示す距離データを取得する。そして、表示領域サイズデータおよび距離データに基づいて、仮想空間内における仮想カメラの位置および視野角を設定決定する。【選択図】図１４
2010061545.tif 000002
【特許請求の範囲】
【請求項１】
仮想カメラで撮影した仮想空間の画像を表示装置に出力する画像処理装置のコンピュータに実行させる画像処理プログラムであって、
前記コンピュータを、
前記表示装置の画面の大きさまたは当該画面上において前記仮想空間の画像が表示される領域の大きさを示す表示領域サイズデータを取得する表示領域サイズ取得手段と、
ユーザと前記表示装置との間の距離を示す距離データを取得する距離取得手段と、
前記表示領域サイズデータおよび前記距離データに基づいて、前記仮想空間内における前記仮想カメラの位置および視野角を設定する仮想カメラ設定手段として機能させる、画像処理プログラム。
【請求項２】
前記表示領域サイズデータには、前記表示装置の画面または当該画面上における前記仮想空間の画像が表示される領域内での所定の第１方向および当該第１方向に直交する第２方向の幅を示すデータが含まれ、
前記仮想カメラ設定手段は、前記表示領域サイズデータに含まれる前記第１方向および前記第２方向の幅に基づき、前記仮想カメラの水平視野角および垂直視野角を設定する、請求項１に記載の画像処理プログラム。
【請求項３】
前記表示領域サイズデータには、前記表示装置の画面または当該画面上における前記仮想空間の画像が表示される領域内での所定の第１方向または当該第１方向に直交する第２方向の幅を示すデータが含まれ、
前記仮想カメラ設定手段は、前記表示領域サイズデータに含まれる前記第１方向または前記第２方向の幅に基づき、前記仮想カメラの水平視野角および垂直視野角を設定する、請求項１に記載の画像処理プログラム。
【請求項４】
前記仮想カメラ設定手段は、前記第１方向および／または前記第２方向の幅が大きいほど前記仮想カメラの水平視野角および／または垂直視野角を広く設定する、請求項２、または請求項３に記載の画像処理プログラム。
【請求項５】
前記仮想カメラ設定手段は、前記距離データで示される距離が大きいほど前記水平視野角および／または垂直視野角を狭く設定する、請求項２、または請求項３に記載の画像処理プログラム。
【請求項６】
前記仮想カメラ設定手段は、前記表示装置の画面または当該画面上における前記仮想空間の画像が表示される領域が大きいほど前記仮想カメラの視野角を広く設定する、請求項１に記載の画像処理プログラム。
【請求項７】
前記仮想カメラ設定手段は、前記距離データで示される距離が大きいほど前記視野角を狭く設定する、請求項１に記載の画像処理プログラム。
【請求項８】
前記距離取得手段は、
前記表示装置の近傍に配置された少なくとも１つの撮像対象を撮像するための撮像手段を備えた入力装置から出力される撮像画像データを取得する撮像画像データ取得手段と、
前記撮像画像データで示される撮像画像に写っている撮像対象に基づいて、前記入力装置と前記撮像対象との間の距離を前記ユーザと前記表示装置との間の距離として算出する距離算出手段とを含む、請求項１に記載の画像処理プログラム。
【請求項９】
前記距離算出手段は、前記撮像画像に写っている撮像対象の大きさに基づいて、前記入力装置と前記撮像対象との間の距離を算出する、請求項８に記載の画像処理プログラム。
【請求項１０】
前記距離算出手段は、撮像画像に写っている撮像対象の大きさが大きいほど、前記入力装置と前記撮像対象との間の距離を小さい値で算出する、請求項９に記載の画像処理プログラム。
【請求項１１】
前記距離算出手段は、撮像画像に写っている複数の撮像対象間の距離に基づいて、前記入力装置と前記撮像対象との間の距離を算出する、請求項８に記載の画像処理プログラム。
【請求項１２】
前記距離算出手段は、撮像画像に写っている複数の撮像対象間の距離が大きいほど、前記入力装置と前記撮像対象との間の距離を小さい値で算出する、請求項１１に記載の画像処理プログラム。
【請求項１３】
前記仮想カメラ設定手段は、前記仮想空間内のうち前記表示装置の画面または当該画面上における当該仮想空間の画像が表示される領域に表示される対象となる空間内にオブジェクトが存在するときは、当該オブジェクトの位置を基準として前記仮想カメラの位置および視野角を決定する、請求項１に記載の画像処理プログラム。
【請求項１４】
前記仮想カメラ設定手段は、前記仮想空間内のうち前記表示装置の画面または当該画面上における当該仮想空間の画像が表示される領域に表示される対象となる空間内に複数のオブジェクトが存在するときは、当該複数のオブジェクトのうち、前記仮想カメラに最も近いオブジェクトの位置を基準として前記仮想カメラの位置および視野角を決定する、請求項１に記載の画像処理プログラム。
【請求項１５】
仮想カメラで撮影した仮想空間の画像を表示装置に出力する画像処理装置であって、
前記表示装置の画面の大きさまたは当該画面上において前記仮想空間の画像が表示される領域の大きさを示す表示領域サイズデータを取得する表示領域サイズ取得手段と、
ユーザと前記表示装置との間の距離を示す距離データを取得する距離取得手段と、
前記表示領域サイズデータおよび前記距離データに基づいて、前記仮想空間内における前記仮想カメラの位置および視野角を設定する仮想カメラ設定手段とを備える、画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想カメラで撮影した仮想空間の画像を表示装置に出力する画像処理装置のコンピュータに実行させる画像処理プログラムに関し、より特定的には、仮想空間内における仮想カメラの設定に関する。
【背景技術】
【０００２】
従来より、仮想カメラで仮想空間内のオブジェクトを撮影して表示装置の画面に表示するゲーム装置がある（例えば、特許文献１、特許文献２）。上記特許文献１に開示されているゲーム装置では、ゲーム空間内の複数のオブジェクトを内包する判定用バウンダリボックスを求め、その時点での仮想カメラの設定で当該判定用バウンダリボックスが画面内に入るか否かを判断し、当該仮想カメラの設定では判定用バウンダリボックスが画面内に入らない場合には、判定用バウンダリボックスが画面内に入るように仮想カメラの位置、向き、画角の少なくともひとつの設定を変更する処理を行う。
【０００３】
また、上記特許文献２に開示されているゲーム装置では、自キャラクタの位置から予め定めた距離範囲内に敵キャラクタが存在する場合には、仮想カメラ制御手段によって、敵キャラクタを追尾し、かつ、自キャラクタが視界に存在するように、敵オブジェクトおよびプレイヤオブジェクトの位置、方向に基づいて、仮想カメラの位置、方向を求める演算を行う。そして、仮想カメラを設定し、仮想カメラから見た視界画像を生成する。
【特許文献１】特開２００２−１６３６７６号公報
【特許文献２】特開２００１−１４９６４３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述したようなゲーム装置においては、従来から以下に示す問題点があった。上記各特許文献に開示されている処理では、仮想カメラの位置や画角は、仮想空間内のオブジェクトの位置等を基準に設定されている。つまり、所定のオブジェクト、例えば、プレイヤオブジェクトと敵オブジェクトの双方が共に１画面内に収まって表示されるように、仮想カメラの位置等が決定されている。例えば、３つの立方体モデルを仮想カメラで撮影した画像を表示するような場合を想定する。まず、仮想空間と実空間とのスケールは同じもの（実空間における立方体の大きさと仮想空間における立方体モデルの大きさの比率が１：１の関係）とする。そして、図１８（ａ）に示すように、３つの立方体全てが画面内に表示されるように仮想カメラの位置や画角が設定されたとする。図１８（ａ）では、立方体から仮想カメラまでの距離を１ｍとする。その結果、画面には、図１８（ｂ）に示すように、３つの立方体全てが表示されることになる。
【０００５】
一方、実空間上において、画面を表示するテレビとプレイヤとの距離が図１９に示すような関係とする。図１９では、テレビとプレイヤとの距離は３ｍとする。そして、実空間上において、上記立方体が本当に存在すると仮定する。いわば、テレビの画面を「窓」ととらえ、この窓のすぐ後ろに上記３つの立方体が本当に存在すると仮定する。すなわち、上記立方体が現実に存在すると仮定した場合のプレイヤとテレビと立方体の位置関係が図２０に示すような関係にあるとする。この場合、プレイヤが窓（テレビ）を通して見える領域（視野角）は、図２０の破線９０１で示される領域となる。そのため、領域９０２については本来はプレイヤからは見えない領域である。すなわち、本来は、プレイヤからは、窓（テレビ）の後ろの立方体は真ん中の１つしか見えないことになる。
【０００６】
しかし、図２０のような位置関係であっても、画面上には、図１８（ｂ）に示したように３つの立方体が表示される（つまり、窓の中に３つの立方体が見えているような状態となる）。図２０に示すようなプレイヤの位置からでも、このように３つの立方体が１画面上に収まって見えるのは、上記立方体が実空間に実在していれば見えるであろう画像に比べて、不自然に歪められて表示されているためである。そのため、実空間上、テレビの奥に上記３つの立方体が本当に存在すると仮定した場合、プレイヤの位置から見える画像としては、不自然な表現の画像となっている。このような不自然な画像は、プレイヤに違和感を感じさせて、現実感の乏しいものとなっていた。
【０００７】
それ故に、本発明の目的は、より現実感の高い表現ができる画像処理プログラムおよび画像処理装置を提供することである。
【課題を解決するための手段】
【０００８】
本発明は、上記の課題を解決するために、以下の構成を採用した。なお、括弧内の参照符号および補足説明等は、本発明の理解を助けるために後述する実施形態との対応関係の一例を示したものであって、本発明を何ら限定するものではない。
【０００９】
第１の発明は、仮想カメラで撮影した仮想空間の画像を表示装置（２）に出力する画像処理装置のコンピュータに実行させる画像処理プログラムであって、コンピュータを、表示領域サイズ取得手段（Ｓ１）と、距離取得手段（Ｓ５）と、仮想カメラ設定手段（Ｓ６〜Ｓ８）として機能させる。表示領域サイズ取得手段は、表示装置の画面の大きさまたは当該画面上において仮想空間の画像が表示される領域の大きさを示す表示領域サイズデータを取得する。距離取得手段は、ユーザと表示装置との間の距離を示す距離データを取得する。仮想カメラ設定手段は、表示領域サイズデータおよび距離データに基づいて、仮想空間内における仮想カメラの位置および視野角を設定する。
【００１０】
第１の発明によれば、表示装置に表示される仮想空間の画像について、プレイヤの位置から見える画像としては不自然な表示になることを防ぐ事ができる。その結果、表示されている仮想空間があたかも表示装置の存在する位置（あるいは表示装置の中）に実在しているかのような、より現実感の高い表現が可能となる。これにより、ユーザに感じさせる違和感を軽減させることができる。
【００１１】
第２の発明は、第１の発明において、表示領域サイズデータには、表示装置の画面または当該画面上における仮想空間の画像が表示される領域内での所定の第１方向および当該第１方向に直交する第２方向の幅を示すデータが含まれる。そして、仮想カメラ設定手段は、表示領域サイズデータに含まれる第１方向および第２方向の幅に基づき、仮想カメラの水平視野角および垂直視野角を設定する。
【００１２】
第２の発明によれば、仮想空間の画像が表示される領域の画面上における縦幅や横幅に基づいて仮想カメラの水平視野角と垂直視野角を決定するため、より現実感の高い画像を表示することができる。
【００１３】
第３の発明は、第１の発明において、表示領域サイズデータには、表示装置の画面または当該画面上における仮想空間の画像が表示される領域内での所定の第１方向または当該第１方向に直交する第２方向の幅を示すデータが含まれる。そして、仮想カメラ設定手段は、表示領域サイズデータに含まれる第１方向または第２方向の幅に基づき、仮想カメラの水平視野角および垂直視野角を設定する。
【００１４】
第３の発明によれば、仮想空間の画像が表示される領域の画面上における縦幅または横幅に基づいて仮想カメラの水平視野角および垂直視野角を決定するため、より現実感の高い画像を表示することができる。
【００１５】
第４の発明は、第２または第３の発明において、仮想カメラ設定手段は、第１方向および／または第２方向の幅が大きいほど仮想カメラの水平視野角および／または垂直視野角を広く設定する。
【００１６】
第４の発明によれば、表示装置の画面または仮想空間の画像が表示される領域の大きさに合わせて仮想カメラの視野角を調整することができ、より現実感の高い画像を表示することができる。
【００１７】
第５の発明は、第２または第３の発明において、仮想カメラ設定手段は、距離データで示される距離が大きいほど水平視野角および／または垂直視野角を狭く設定する。
【００１８】
第５の発明によれば、ユーザ自身が移動することで表示装置との距離が変化しても、その距離に応じた現実感の高い画像表示が可能となる。
【００１９】
第６の発明は、第１の発明において、仮想カメラ設定手段は、表示装置の画面または当該画面上における仮想空間の画像が表示される領域が大きいほど仮想カメラの視野角を広く設定する。
【００２０】
第６の発明によれば、表示装置の画面または仮想空間の画像が表示される領域の大きさに合わせて仮想カメラの視野角を調整することができ、より現実感の高い画像を表示することができる。
【００２１】
第７の発明は、第１の発明において、仮想カメラ設定手段は、距離データで示される距離が大きいほど視野角を狭く設定する。
【００２２】
第７の発明によれば、ユーザ自身が移動することで表示装置との距離が変化しても、その距離に応じた現実感の高い画像表示が可能となる。
【００２３】
第８の発明は、第１の発明において、距離取得手段は、撮像画像データ取得手段（Ｓ５）と、距離算出手段（Ｓ５）とを含む。撮像画像データ取得手段（Ｓ５）は、表示装置の近傍に配置された少なくとも１つの撮像対象を撮像するための撮像手段を備えた入力装置（７）から出力される撮像画像データを取得する。距離算出手段（Ｓ５）は、撮像画像データで示される撮像画像に写っている撮像対象に基づいて、入力装置と撮像対象との間の距離をユーザと表示装置との間の距離として算出する。
【００２４】
第８の発明によれば、より正確に距離を取得することができ、より現実感の高い画像を表示できる。
【００２５】
第９の発明は、第８の発明において、距離算出手段は、撮像画像に写っている撮像対象の大きさに基づいて、入力装置と撮像対象との間の距離を算出する。
【００２６】
第１０の発明は、第９の発明において、距離算出手段は、撮像画像に写っている撮像対象の大きさが大きいほど、入力装置と撮像対象との間の距離を小さい値で算出する。
【００２７】
第１１の発明は、第８の発明において、距離算出手段は、撮像画像に写っている複数の撮像対象間の距離に基づいて、入力装置と撮像対象との間の距離を算出する。
【００２８】
第１２の発明は、第１１の発明において、距離算出手段は、撮像画像に写っている複数の撮像対象間の距離が大きいほど、入力装置と撮像対象との間の距離を小さい値で算出する。
【００２９】
第９乃至第１２の発明によれば、より簡易な処理によって撮像対象と入力装置との間の距離を算出することができ、コンピュータの処理効率を高めることができる。
【００３０】
第１３の発明は、第１の発明において、仮想カメラ設定手段は、仮想空間内のうち表示装置の画面または当該画面上における当該仮想空間の画像が表示される領域に表示される対象となる空間内にオブジェクトが存在するときは、当該オブジェクトの位置を基準として仮想カメラの位置および視野角を決定する。
【００３１】
第１３の発明によれば、仮想空間内において、オブジェクトの位置から、実空間におけるユーザとテレビ間の距離だけ離れた位置に仮想カメラを配置できるため、より違和感のない画像を提供することができる。
【００３２】
第１４の発明は、第１の発明において、仮想カメラ設定手段は、仮想空間内のうち表示装置の画面または当該画面上における当該仮想空間の画像が表示される領域に表示される対象となる空間内に複数のオブジェクトが存在するときは、当該複数のオブジェクトのうち、仮想カメラに最も近いオブジェクトの位置を基準として仮想カメラの位置および視野角を決定する。
【００３３】
第１４の発明によれば、仮想空間が表示装置の画面のすぐ後ろに実在するかのような、不自然さのない、現実感の高い画像を表示することができる。
【００３４】
第１５の発明は、仮想カメラで撮影した仮想空間の画像を表示装置（２）に出力する画像処理装置（３）であって、表示領域サイズ取得手段（１０）と、距離取得手段（１０）と、仮想カメラ設定手段（１０）を備える。表示領域サイズ取得手段は、表示装置の画面の大きさまたは当該画面上において仮想空間の画像が表示される領域の大きさを示す表示領域サイズデータを取得する。距離取得手段は、ユーザと表示装置との間の距離を示す距離データを取得する。仮想カメラ設定手段は、表示領域サイズデータおよび距離データに基づいて、仮想空間内における仮想カメラの位置および視野角を設定する。
【００３５】
第１５の発明によれば、第１の発明と同様の効果を得ることができる。
【発明の効果】
【００３６】
本発明によれば、仮想空間の画像について、ユーザの位置から見て不自然にならない現実感の高い画像を表示することができ、ユーザに感じさせる違和感を軽減することが可能となる。
【発明を実施するための最良の形態】
【００３７】
以下、本発明の実施の形態について、図面を参照して説明する。尚、この実施例により本発明が限定されるものではない。
【００３８】
（ゲームシステムの全体構成）
図１を参照して、本発明の実施形態に係るゲーム装置を含むゲームシステム１について説明する。図１は、ゲームシステム１の外観図である。以下、据置型のゲーム装置を一例にして、本実施形態のゲーム装置およびゲームプログラムについて説明する。図１において、ゲームシステム１は、テレビジョン受像器（以下、単に「テレビ」と記載する）２、ゲーム装置本体３、光ディスク４、コントローラ７、およびマーカ部８を含む。本システムは、コントローラ７を用いたゲーム操作に基づいてゲーム装置本体３でゲーム処理を実行するものである。
【００３９】
ゲーム装置本体３には、当該ゲーム装置本体３に対して交換可能に用いられる情報記憶媒体の一例である光ディスク４が脱着可能に挿入される。光ディスク４には、ゲーム装置本体３において実行されるためのゲームプログラムが記憶されている。ゲーム装置本体３の前面には光ディスク４の挿入口が設けられている。ゲーム装置本体３は、挿入口に挿入された光ディスク４に記憶されたゲームプログラムを読み出して実行することによってゲーム処理を実行する。
【００４０】
ゲーム装置本体３には、表示装置の一例であるテレビ２が接続コードを介して接続される。テレビ２には、ゲーム装置本体３において実行されるゲーム処理の結果得られるゲーム画像が表示される。また、テレビ２の画面の周辺（図１では画面の上側）には、マーカ部８が設置される。マーカ部８は、その両端に２つのマーカ８Ｒおよび８Ｌを備えている。マーカ８Ｒ（マーカ８Ｌも同様）は、具体的には１以上の赤外ＬＥＤであり、テレビ２の前方に向かって赤外光を出力する。マーカ部８はゲーム装置本体３に接続されており、ゲーム装置本体３はマーカ部８が備える各赤外ＬＥＤの点灯を制御することが可能である。
【００４１】
コントローラ７は、当該コントローラ７自身に対して行われた操作の内容を示す操作データをゲーム装置本体３に与える入力装置である。コントローラ７とゲーム装置本体３とは無線通信によって接続される。本実施形態では、コントローラ７とゲーム装置本体３との間の無線通信には例えばＢｌｕｅｔｏｏｔｈ（ブルートゥース）（登録商標）の技術が用いられる。なお、他の実施形態においてはコントローラ７とゲーム装置本体３とは有線で接続されてもよい。
【００４２】
（ゲーム装置本体３の内部構成）
次に、図２を参照して、ゲーム装置本体３の内部構成について説明する。図２は、ゲーム装置本体３の構成を示すブロック図である。ゲーム装置本体３は、ＣＰＵ１０、システムＬＳＩ１１、外部メインメモリ１２、ＲＯＭ／ＲＴＣ１３、ディスクドライブ１４、およびＡＶ−ＩＣ１５等を有する。
【００４３】
ＣＰＵ１０は、光ディスク４に記憶されたゲームプログラムを実行することによってゲーム処理を実行するものであり、ゲームプロセッサとして機能する。ＣＰＵ１０は、システムＬＳＩ１１に接続される。システムＬＳＩ１１には、ＣＰＵ１０の他、外部メインメモリ１２、ＲＯＭ／ＲＴＣ１３、ディスクドライブ１４およびＡＶ−ＩＣ１５が接続される。システムＬＳＩ１１は、それに接続される各構成要素間のデータ転送の制御、表示すべき画像の生成、外部装置からのデータの取得等の処理を行う。システムＬＳＩの内部構成について後述する。揮発性の外部メインメモリ１２は、光ディスク４から読み出されたゲームプログラムや、フラッシュメモリ１７から読み出されたゲームプログラム等のプログラムを記憶したり、各種データを記憶したりするものであり、ＣＰＵ１０のワーク領域やバッファ領域として用いられる。ＲＯＭ／ＲＴＣ１３は、ゲーム装置本体３の起動用のプログラムが組み込まれるＲＯＭ（いわゆるブートＲＯＭ）と、時間をカウントするクロック回路（ＲＴＣ：Ｒｅａｌ  Ｔｉｍｅ  Ｃｌｏｃｋ）とを有する。ディスクドライブ１４は、光ディスク４からプログラムデータやテクスチャデータ等を読み出し、後述する内部メインメモリ１１ｅまたは外部メインメモリ１２に読み出したデータを書き込む。
【００４４】
また、システムＬＳＩ１１には、入出力プロセッサ１１ａ、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｏｒ  Ｕｎｉｔ）１１ｂ、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）１１ｃ、ＶＲＡＭ１１ｄ、および内部メインメモリ１１ｅが設けられる。図示は省略するが、これらの構成要素１１ａ〜１１ｅは内部バスによって互いに接続される。
【００４５】
ＧＰＵ１１ｂは、描画手段の一部を形成し、ＣＰＵ１０からのグラフィクスコマンド（作画命令）に従って画像を生成する。より具体的には、ＧＰＵ１１ｂは、当該グラフィクスコマンドに従って３Ｄグラフィックスの表示に必要な計算処理、例えば、レンダリングの前処理にあたる３Ｄ座標から２Ｄ座標への座標変換などの処理や、テクスチャの張り込みなどの最終的なレンダリング処理を行うことで、ゲーム画像データを生成する。ここで、ＣＰＵ１０は、グラフィクスコマンドに加えて、ゲーム画像データの生成に必要な画像生成プログラムをＧＰＵ１１ｂに与える。ＶＲＡＭ１１ｄは、ＧＰＵ１１ｂがグラフィクスコマンドを実行するために必要なデータ（ポリゴンデータやテクスチャデータ等のデータ）を記憶する。画像が生成される際には、ＧＰＵ１１ｂは、ＶＲＡＭ１１ｄに記憶されたデータを用いて画像データを作成する。
【００４６】
ＤＳＰ１１ｃは、オーディオプロセッサとして機能し、内部メインメモリ１１ｅや外部メインメモリ１２に記憶されるサウンドデータや音波形（音色）データを用いて、音声データを生成する。また、内部メインメモリ１１ｅは、外部メインメモリ１２と同様に、プログラムや各種データを記憶したり、ＣＰＵ１０のワーク領域やバッファ領域としても用いられる。
【００４７】
上述のように生成された画像データおよび音声データは、ＡＶ−ＩＣ１５によって読み出される。ＡＶ−ＩＣ１５は、読み出した画像データをＡＶコネクタ１６を介してテレビ２に出力するとともに、読み出した音声データを、テレビ２に内蔵されるスピーカ２ａに出力する。これによって、画像がテレビ２に表示されるとともに音がスピーカ２ａから出力される。
【００４８】
入出力プロセッサ（Ｉ／Ｏプロセッサ）１１ａは、それに接続される構成要素との間でデータの送受信を実行したり、外部装置からのデータのダウンロードを実行したりする。入出力プロセッサ１１ａは、フラッシュメモリ１７、無線通信モジュール１８、無線コントローラモジュール１９、拡張コネクタ２０、およびメモリカード用コネクタ２１に接続される。無線通信モジュール１８にはアンテナ２２が接続され、無線コントローラモジュール１９にはアンテナ２３が接続される。
【００４９】
入出力プロセッサ１１ａは、無線通信モジュール１８およびアンテナ２２を介してネットワークに接続し、ネットワークに接続される他のゲーム装置や各種サーバと通信することができる。入出力プロセッサ１１ａは、定期的にフラッシュメモリ１７にアクセスし、ネットワークへ送信する必要があるデータの有無を検出し、当該データが有る場合には、無線通信モジュール１８およびアンテナ２２を介してネットワークに送信する。また、入出力プロセッサ１１ａは、他のゲーム装置から送信されてくるデータやダウンロードサーバからダウンロードしたデータを、ネットワーク、アンテナ２２および無線通信モジュール１８を介して受信し、受信したデータをフラッシュメモリ１７に記憶する。ＣＰＵ１０はゲームプログラムを実行することにより、フラッシュメモリ１７に記憶されたデータを読み出してゲームプログラムで利用する。フラッシュメモリ１７には、ゲーム装置本体３と他のゲーム装置や各種サーバとの間で送受信されるデータの他、ゲーム装置本体３を利用してプレイしたゲームのセーブデータ（ゲームの結果データまたは途中データ）が記憶されてもよい。
【００５０】
また、入出力プロセッサ１１ａは、コントローラ７から送信される操作データをアンテナ２３および無線コントローラモジュール１９を介して受信し、内部メインメモリ１１ｅまたは外部メインメモリ１２のバッファ領域に記憶（一時記憶）する。
【００５１】
さらに、入出力プロセッサ１１ａには、拡張コネクタ２０およびメモリカード用コネクタ２１が接続される。拡張コネクタ２０は、ＵＳＢやＳＣＳＩのようなインターフェースのためのコネクタであり、外部記憶媒体のようなメディアを接続したり、他のコントローラのような周辺機器を接続したり、有線の通信用コネクタを接続することによって無線通信モジュール１８に替えてネットワークとの通信を行ったりすることができる。メモリカード用コネクタ２１は、メモリカードのような外部記憶媒体を接続するためのコネクタである。例えば、入出力プロセッサ１１ａは、拡張コネクタ２０やメモリカード用コネクタ２１を介して、外部記憶媒体にアクセスし、データを保存したり、データを読み出したりすることができる。
【００５２】
ゲーム装置本体３には、電源ボタン２４、リセットボタン２５、およびイジェクトボタン２６が設けられる。電源ボタン２４およびリセットボタン２５は、システムＬＳＩ１１に接続される。電源ボタン２４がオンにされると、ゲーム装置本体３の各構成要素に対して、図示しないＡＣアダプタを経て電源が供給される。また、一旦電源がオンにされた状態で、再度電源ボタン２４を押すと、低電力スタンバイモードへの移行が行われる。この状態でも、ゲーム装置本体３への通電は行われているため、インターネット等のネットワークに常時接続しておくことができる。なお、一旦電源がオンにされた状態で、電源をオフにしたいときは、電源ボタン２４を所定時間以上長押しすることで、電源をオフとすることが可能である。リセットボタン２５が押されると、システムＬＳＩ１１は、ゲーム装置本体３の起動プログラムを再起動する。イジェクトボタン２６は、ディスクドライブ１４に接続される。イジェクトボタン２６が押されると、ディスクドライブ１４から光ディスク４が排出される。
【００５３】
次に、図３および図４を参照して、コントローラ７について説明する。なお、図３は、コントローラ７の上面後方から見た斜視図である。図４は、コントローラ７を下面前方から見た斜視図である。
【００５４】
図３および図４において、コントローラ７は、ハウジング７１と、当該ハウジング７１の表面に設けられた複数個の操作ボタンで構成される操作部７２とを備える。本実施例のハウジング７１は、その前後方向を長手方向とした略直方体形状を有しており、全体として大人や子供の片手で把持可能な大きさであり、例えばプラスチック成型によって形成されている。
【００５５】
ハウジング７１上面の中央前面側に、十字キー７２ａが設けられる。この十字キー７２ａは、十字型の４方向プッシュスイッチであり、４つの方向（前後左右）に対応する操作部分が十字の突出片にそれぞれ９０°間隔で配置される。プレイヤが十字キー７２ａのいずれかの操作部分を押下することによって前後左右いずれかの方向を選択される。例えばプレイヤが十字キー７２ａを操作することによって、仮想ゲーム世界に登場するプレイヤキャラクタ等の移動方向を指示したり、複数の選択肢から選択指示したりすることができる。
【００５６】
なお、十字キー７２ａは、上述したプレイヤの方向入力操作に応じて操作信号を出力する操作部であるが、他の態様の操作部でもかまわない。例えば、十字方向に４つのプッシュスイッチを配設し、プレイヤによって押下されたプッシュスイッチに応じて操作信号を出力する操作部を設けてもかまわない。さらに、上記４つのプッシュスイッチとは別に、上記十字方向が交わる位置にセンタスイッチを配設し、４つのプッシュスイッチとセンタスイッチとを複合した操作部を設けてもかまわない。また、ハウジング７１上面から突出した傾倒可能なスティック（いわゆる、ジョイスティック）を倒すことによって、傾倒方向に応じて操作信号を出力する操作部を上記十字キー７２ａの代わりに設けてもかまわない。さらに、水平移動可能な円盤状部材をスライドさせることによって、当該スライド方向に応じた操作信号を出力する操作部を、上記十字キー７２ａの代わりに設けてもかまわない。また、タッチパッドを、上記十字キー７２ａの代わりに設けてもかまわない。
【００５７】
ハウジング７１上面の十字キー７２ａより後面側に、複数の操作ボタン７２ｂ〜７２ｇが設けられる。操作ボタン７２ｂ〜７２ｇは、プレイヤがボタン頭部を押下することによって、それぞれの操作ボタン７２ｂ〜７２ｇに割り当てられた操作信号を出力する操作部である。例えば、操作ボタン７２ｂ〜７２ｄには、１番ボタン、２番ボタン、およびＡボタン等としての機能が割り当てられる。また、操作ボタン７２ｅ〜７２ｇには、マイナスボタン、ホームボタン、およびプラスボタン等としての機能が割り当てられる。これら操作ボタン７２ａ〜７２ｇは、ゲーム装置本体３が実行するゲームプログラムに応じてそれぞれの操作機能が割り当てられる。なお、図３に示した配置例では、操作ボタン７２ｂ〜７２ｄは、ハウジング７１上面の中央前後方向に沿って並設されている。また、操作ボタン７２ｅ〜７２ｇは、ハウジング７１上面の左右方向に沿って操作ボタン７２ｂおよび７２ｄの間に並設されている。そして、操作ボタン７２ｆは、その上面がハウジング７１の上面に埋没しており、プレイヤが不意に誤って押下することのないタイプのボタンである。
【００５８】
また、ハウジング７１上面の十字キー７２ａより前面側に、操作ボタン７２ｈが設けられる。操作ボタン７２ｈは、遠隔からゲーム装置本体３本体の電源をオン／オフする電源スイッチである。この操作ボタン７２ｈも、その上面がハウジング７１の上面に埋没しており、プレイヤが不意に誤って押下することのないタイプのボタンである。
【００５９】
また、ハウジング７１上面の操作ボタン７２ｃより後面側に、複数のＬＥＤ７０２が設けられる。ここで、コントローラ７は、他のコントローラ７と区別するためにコントローラ種別（番号）が設けられている。例えば、ＬＥＤ７０２は、コントローラ７に現在設定されている上記コントローラ種別をプレイヤに通知するために用いられる。具体的には、コントローラ７からゲーム装置本体３へ送信データを送信する際、上記コントローラ種別に応じて複数のＬＥＤ７０２のうち、種別に対応するＬＥＤが点灯する。
【００６０】
また、ハウジング７１上面には、操作ボタン７２ｂおよび操作ボタン７２ｅ〜７２ｇの間に後述するスピーカ（図５のスピーカ７０６）からの音を外部に放出するための音抜き孔が形成されている。
【００６１】
一方、ハウジング７１下面には、凹部が形成されている。後述で明らかとなるが、ハウジング７１下面の凹部は、プレイヤがコントローラ７の前面をマーカ８Ｌおよび８Ｒに向けて片手で把持したときに、当該プレイヤの人差し指や中指が位置するような位置に形成される。そして、上記凹部の傾斜面には、操作ボタン７２ｉが設けられる。操作ボタン７２ｉは、例えばＢボタンとして機能する操作部である。
【００６２】
また、ハウジング７１前面には、撮像情報演算部７４の一部を構成する撮像素子７４３が設けられる。ここで、撮像情報演算部７４は、コントローラ７が撮像した画像データを解析してその中で輝度が高い場所を判別してその場所の重心位置やサイズなどを検出するためのシステムであり、例えば、最大２００フレーム／秒程度のサンプリング周期であるため比較的高速なコントローラ７の動きでも追跡して解析することができる。この撮像情報演算部７４の詳細な構成については、後述する。また、ハウジング７１の後面には、コネクタ７３が設けられている。コネクタ７３は、例えばエッジコネクタであり、例えば接続ケーブルと嵌合して接続するために利用される。
【００６３】
ここで、以下の説明を具体的にするために、コントローラ７に対して設定する座標系について定義する。図３および図４に示すように、互いに直交するｘｙｚ軸をコントローラ７に対して定義する。具体的には、コントローラ７の前後方向となるハウジング７１の長手方向をｚ軸とし、コントローラ７の前面（撮像情報演算部７４が設けられている面）方向をｚ軸正方向とする。また、コントローラ７の上下方向をｙ軸とし、ハウジング７１の上面（操作ボタン７２ａ等が設けられた面）方向をｙ軸正方向とする。さらに、コントローラ７の左右方向をｘ軸とし、ハウジング７１の左側面（図３では表されずに図４で表されている側面）方向をｘ軸正方向とする。
【００６４】
次に、図５および図６を参照して、コントローラ７の内部構造について説明する。なお、図５は、コントローラ７の上ハウジング（ハウジング７１の一部）を外した状態を後面側から見た斜視図である。図６は、コントローラ７の下ハウジング（ハウジング７１の一部）を外した状態を前面側から見た斜視図である。ここで、図６に示す基板７００は、図５に示す基板７００の裏面から見た斜視図となっている。
【００６５】
図５において、ハウジング７１の内部には基板７００が固設されており、当該基板７００の上主面上に操作ボタン７２ａ〜７２ｈ、加速度センサ７０１、ＬＥＤ７０２、およびアンテナ７５４等が設けられる。そして、これらは、基板７００等に形成された配線（図示せず）によってマイコン７５１等（図６、図７参照）に接続される。マイコン７５１は本願発明のボタンデータ発生手段の一例として、操作ボタン７２ａ等の種類に応じた操作ボタンデータを発生させるように機能する。この仕組みは公知技術であるが、例えばキートップ下側に配置されたタクトスイッチなどのスイッチ機構による配線の接触／切断をマイコン７５１が検出することによって実現されている。より具体的には、操作ボタンが例えば押されると配線が接触して通電するので、この通電がどの操作ボタンにつながっている配線で発生したかをマイコン７５１が検出し、操作ボタンの種類に応じた信号を発生させている。
【００６６】
また、コントローラ７は、無線モジュール７５３（図７参照）およびアンテナ７５４によって、ワイヤレスコントローラとして機能する。なお、ハウジング７１内部には図示しない水晶振動子が設けられており、後述するマイコン７５１の基本クロックを生成する。また、基板７００の上主面上に、スピーカ７０６およびアンプ７０８が設けられる。また、加速度センサ７０１は、操作ボタン７２ｄの左側の基板７００上（つまり、基板７００の中央部ではなく周辺部）に設けられる。したがって、加速度センサ７０１は、コントローラ７の長手方向を軸とした回転に応じて、重力加速度の方向変化に加え、遠心力による成分の含まれる加速度を検出することができるので、所定の演算により、検出される加速度データからコントローラ７の回転を良好な感度でゲーム装置本体３等が判定することができる。
【００６７】
一方、図６において、基板７００の下主面上の前端縁に撮像情報演算部７４が設けられる。撮像情報演算部７４は、コントローラ７の前方から順に赤外線フィルタ７４１、レンズ７４２、撮像素子７４３、および画像処理回路７４４によって構成されており、それぞれ基板７００の下主面に取り付けられる。また、基板７００の下主面上の後端縁にコネクタ７３が取り付けられる。さらに、基板７００の下主面上にサウンドＩＣ７０７およびマイコン７５１が設けられている。サウンドＩＣ７０７は、基板７００等に形成された配線によってマイコン７５１およびアンプ７０８と接続され、ゲーム装置本体３から送信されたサウンドデータに応じてアンプ７０８を介してスピーカ７０６に音声信号を出力する。
【００６８】
そして、基板７００の下主面上には、バイブレータ７０４が取り付けられる。バイブレータ７０４は、例えば振動モータやソレノイドである。バイブレータ７０４は、基板７００等に形成された配線によってマイコン７５１と接続され、ゲーム装置本体３から送信された振動データに応じてその作動をオン／オフする。バイブレータ７０４が作動することによってコントローラ７に振動が発生するので、それを把持しているプレイヤの手にその振動が伝達され、いわゆる振動対応ゲームが実現できる。ここで、バイブレータ７０４は、ハウジング７１のやや前方寄りに配置されるため、プレイヤが把持している状態において、ハウジング７１が大きく振動することになり、振動を感じやすくなる。
【００６９】
次に、図７を参照して、コントローラ７の内部構成について説明する。なお、図７は、コントローラ７の構成を示すブロック図である。
【００７０】
図７において、コントローラ７は、上述した操作部７２、撮像情報演算部７４、加速度センサ７０１、バイブレータ７０４、スピーカ７０６、サウンドＩＣ７０７、およびアンプ７０８の他に、その内部に通信部７５を備えている。
【００７１】
撮像情報演算部７４は、赤外線フィルタ７４１、レンズ７４２、撮像素子７４３、および画像処理回路７４４を含んでいる。赤外線フィルタ７４１は、コントローラ７の前方から入射する光から赤外線のみを通過させる。ここで、テレビ２の表示画面近傍に配置されるマーカ８Ｌおよび８Ｒは、テレビ２の前方に向かって赤外光を出力する赤外ＬＥＤである。したがって、赤外線フィルタ７４１を設けることによってマーカ８Ｌおよび８Ｒの画像をより正確に撮像することができる。レンズ７４２は、赤外線フィルタ７４１を透過した赤外線を集光して撮像素子７４３へ入射させる。撮像素子７４３は、例えばＣＭＯＳセンサやあるいはＣＣＤのような固体撮像素子であり、レンズ７４２が集光した赤外線を撮像する。したがって、撮像素子７４３は、赤外線フィルタ７４１を通過した赤外線だけを撮像して画像データを生成する。以下では、撮像素子７４３によって撮像された画像を撮像画像と呼ぶ。撮像素子７４３によって生成された画像データは、画像処理回路７４４で処理される。画像処理回路７４４は、撮像画像内における撮像対象（マーカ８Ｌおよび８Ｒ）の位置を算出する。以下、図８を用いて撮像対象の位置の算出方法を説明する。
【００７２】
図８は、撮像画像の一例を示す図である。図８に示す撮像画像Ａ１においては、マーカ８Ｌの画像８Ｌ'およびマーカ８Ｒの画像８Ｒ'が左右に並んでいる。撮像画像が入力されると、まず、画像処理回路７４４は、撮像画像内において所定条件に合致する領域の位置を示す座標を当該領域毎に算出する。ここで、所定条件とは、撮像対象の画像（対象画像）を特定するための条件であり、所定条件の具体的な内容は、輝度が所定値以上の領域（高輝度領域）であり、かつ、領域の大きさが所定範囲内の大きさであることである。なお、所定条件は撮像対象を特定するための条件であればよく、他の実施形態においては、画像の色に関する条件を含んでいてもよい。
【００７３】
対象画像の位置を算出する際、まず、画像処理回路７４４は、撮像画像の領域から上記高輝度領域を対象画像の候補として特定する。撮像画像の画像データにおいて対象画像は高輝度領域として現れるからである。次に、画像処理回路７４４は、特定された高輝度領域の大きさに基づいて、その高輝度領域が対象画像であるか否かを判定する判定処理を行う。撮像画像には、対象画像である２つのマーカ８Ｌおよび８Ｒの画像８Ｌ'および８Ｒ'の他、窓からの太陽光や部屋の蛍光灯の光によって対象画像以外の画像が含まれている場合がある。この場合、マーカ８Ｌおよび８Ｒの画像８Ｌ'および８Ｒ'以外の画像も高輝度領域として現れてしまう。上記の判定処理は、対象画像であるマーカ８Ｌおよび８Ｒの画像８Ｌ'および８Ｒ'とそれ以外の画像とを区別し、対象画像を正確に特定するための処理である。具体的には、当該判定処理においては、特定された高輝度領域が、予め定められた所定範囲内の大きさであるか否かが判定される。そして、高輝度領域が所定範囲内の大きさである場合、当該高輝度領域は対象画像を表すと判定され、高輝度領域が所定範囲内の大きさでない場合、当該高輝度領域は対象画像以外の画像を表すと判定される。
【００７４】
さらに、上記の判定処理の結果、対象画像を表すと判定された高輝度領域について、画像処理回路７４４は当該高輝度領域の位置を算出する。具体的には、当該高輝度領域の重心位置を算出する。なお、重心位置は撮像素子７４３の解像度よりも詳細なスケールで算出することが可能である。ここでは、撮像素子７４３によって撮像された撮像画像の解像度が１２６×９６であるとし、重心位置は１０２４×７６８のスケールで算出されるものとする。つまり、重心位置の座標は、（０，０）から（１０２４，７６８）までの整数値で表現される。なお、撮像画像における位置は、図８に示すように、撮像画像の左上を原点とし、下向きをｙ軸正方向とし、右向きをｘ軸正方向とする座標系（ｘｙ座標系）で表現されるものとする。
【００７５】
以上のようにして、画像処理回路７４４は、撮像画像内において所定条件に合致する領域の位置を示す座標を当該領域毎に算出する。なお、以下では、画像処理回路７４４によって算出される座標をマーカ座標と呼ぶ。マーカ座標は、撮像画像に対応する平面上の位置を表すための座標系において撮像対象の位置を示す座標である。画像処理回路７４４は、マーカ座標を通信部７５のマイコン７５１へ出力する。マーカ座標のデータは、マイコン７５１によって操作データとしてゲーム装置本体３に送信される。マーカ座標はコントローラ７自体の向き（姿勢）や位置に対応して変化するので、ゲーム装置本体３は当該座標値を用いてコントローラ７の向きや位置を算出することができる。なお、本実施形態では、撮像画像からマーカ座標を算出する処理までをコントローラ７の画像処理回路７４４および／またはマイコン７５１で行ったが、例えば撮像画像をゲーム装置本体３に送り、以降の処理と同等の処理をゲーム装置本体３のＣＰＵ１０等で行わせることもできる。
【００７６】
また、コントローラ７は、３軸（ｘ、ｙ、ｚ軸）の加速度センサ７０１を備えていることが好ましい。この３軸の加速度センサ７０１は、３方向、すなわち、上下方向、左右方向、および前後方向で直線加速度を検知する。また、他の実施形態においては、ゲーム処理に用いる制御信号の種類によっては、上下および左右方向（または他の対になった方向）のそれぞれに沿った直線加速度のみを検知する２軸の加速度検出手段を使用してもよい。例えば、この３軸または２軸の加速度センサ７０１は、アナログ・デバイセズ株式会社（Ａｎａｌｏｇ  Ｄｅｖｉｃｅｓ，  Ｉｎｃ．）またはＳＴマイクロエレクトロニクス社（ＳＴＭｉｃｒｏｅｌｅｃｔｒｏｎｉｃｓ  Ｎ．Ｖ．）から入手可能であるタイプのものでもよい。加速度センサ７０１は、シリコン微細加工されたＭＥＭＳ（Ｍｉｃｒｏ  Ｅｌｅｃｔｒｏ  Ｍｅｃｈａｎｉｃａｌ  Ｓｙｓｔｅｍｓ：微小電子機械システム）の技術に基づいた静電容量式（静電容量結合式）であってもよい。しかしながら、既存の加速度検出手段の技術（例えば、圧電方式や圧電抵抗方式）あるいは将来開発される他の適切な技術を用いて３軸または２軸の加速度センサ７０１が提供されてもよい。
【００７７】
当業者には公知であるように、加速度センサ７０１に用いられるような加速度検出手段は、加速度センサの持つ各軸に対応する直線に沿った加速度（直線加速度）のみを検知することができる。つまり、加速度センサ７０１からの直接の出力は、その２軸または３軸のそれぞれに沿った直線加速度（静的または動的）を示す信号である。このため、加速度センサ７０１は、非直線状（例えば、円弧状）の経路に沿った動き、回転、回転運動、角変位、傾斜、位置、または姿勢等の物理特性を直接検知することはできない。
【００７８】
しかしながら、加速度センサ７０１から出力される加速度の信号に基づいて、ゲーム装置のプロセッサ（例えばＣＰＵ１０）またはコントローラのプロセッサ（例えばマイコン７５１）などのコンピュータが処理を行うことによって、コントローラ７に関するさらなる情報を推測または算出（判定）することができることは、当業者であれば本明細書の説明から容易に理解できるであろう。例えば、加速度センサを搭載するコントローラが静的な状態であることを前提としてコンピュータ側で処理する場合（すなわち、加速度センサによって検出される加速度が重力加速度のみであるとして処理する場合）、コントローラが現実に静的な状態であれば、検出された加速度に基づいてコントローラの姿勢が重力方向に対して傾いているか否か又はどの程度傾いているかを知ることができる。具体的には、加速度センサの検出軸が鉛直下方向を向いている状態を基準としたとき、１Ｇ（重力加速度）がかかっているか否かだけで傾いているか否かを知ることができるし、その大きさによってどの程度傾いているかも知ることができる。また、多軸の加速度センサの場合には、さらに各軸の加速度の信号に対して処理を施すことによって、各軸が重力方向に対してどの程度傾いているかをより詳細に知ることができる。この場合において、加速度センサ７０１からの出力に基づいて、プロセッサがコントローラ７の傾き角度のデータを算出する処理をおこなってもよいが、当該傾き角度のデータを算出する処理をおこなうことなく、加速度センサ７０１からの出力に基づいて、おおよその傾き具合を推定するような処理としてもよい。このように、加速度センサ７０１をプロセッサと組み合わせて用いることによって、コントローラ７の傾き、姿勢または位置を判定することができる。一方、加速度センサが動的な状態であることを前提とする場合には、重力加速度成分に加えて加速度センサの動きに応じた加速度を検出するので、重力加速度成分を所定の処理により除去すれば、動き方向などを知ることができる。具体的には、加速度センサ７０１を備えるコントローラ７がユーザの手で動的に加速されて動かされる場合に、加速度センサ７０１によって生成される加速度信号を処理することによって、コントローラ７のさまざまな動きおよび／または位置を算出することができる。なお、加速度センサが動的な状態であることを前提とする場合であっても、加速度センサの動きに応じた加速度を所定の処理により除去すれば、重力方向対する傾きを知ることが可能である。他の実施例では、加速度センサ７０１は、信号をマイコン７５１に出力する前に内蔵の加速度検出手段から出力される加速度信号に対して所望の処理を行うための、組込み式の信号処理装置または他の種類の専用の処理装置を備えていてもよい。例えば、組込み式または専用の処理装置は、加速度センサが静的な加速度（例えば、重力加速度）を検出するためのものである場合、検知された加速度信号をそれに相当する傾斜角（あるいは、他の好ましいパラメータ）に変換するものであってもよい。
【００７９】
他の実施形態の例では、コントローラ７の動きを検出する動きセンサとして、回転素子または振動素子などを内蔵したジャイロセンサを用いてもよい。この実施形態で使用されるＭＥＭＳジャイロセンサの一例として、アナログ・デバイセズ株式会社から入手可能なものがある。加速度センサ７０１と異なり、ジャイロセンサは、それが内蔵する少なくとも一つのジャイロ素子の軸を中心とした回転（または角速度）を直接検知することができる。このように、ジャイロセンサと加速度センサとは基本的に異なるので、個々の用途のためにいずれの装置が選択されるかによって、これらの装置からの出力信号に対して行う処理を適宜変更する必要がある。
【００８０】
具体的には、加速度センサの代わりにジャイロセンサを用いて傾きや姿勢を算出する場合には、大幅な変更を行う。すなわち、ジャイロセンサを用いる場合、検出開始の状態において傾きの値を初期化する。そして、当該ジャイロセンサから出力される角速度データを積分する。次に、初期化された傾きの値からの傾きの変化量を算出する。この場合、算出される傾きは、角度に対応する値が算出されることになる。一方、加速度センサによって傾きを算出する場合には、重力加速度のそれぞれの軸に関する成分の値を、所定の基準と比較することによって傾きを算出するので、算出される傾きはベクトルで表すことが可能であり、初期化を行わずとも、加速度検出手段を用いて検出される絶対的な方向を検出することが可能である。また、傾きとして算出される値の性質は、ジャイロセンサが用いられる場合には角度であるのに対して、加速度センサが用いられる場合にはベクトルであるという違いがある。したがって、加速度センサに代えてジャイロセンサが用いられる場合、当該傾きのデータに対して、２つのデバイスの違いを考慮した所定の変換を行う必要がある。加速度検出手段とジャイロセンサとの基本的な差異と同様にジャイロセンサの特性は当業者に公知であるので、本明細書ではさらなる詳細を省略する。ジャイロセンサは、回転を直接検知できることによる利点を有する一方、一般的には、加速度センサは、本実施形態で用いるようなコントローラに適用される場合、ジャイロセンサに比べて費用効率が良いという利点を有する。
【００８１】
通信部７５は、マイクロコンピュータ（Ｍｉｃｒｏ  Ｃｏｍｐｕｔｅｒ：マイコン）７５１、メモリ７５２、無線モジュール７５３、およびアンテナ７５４を含んでいる。マイコン７５１は、処理の際にメモリ７５２を記憶領域として用いながら、送信データを無線送信する無線モジュール７５３を制御する。また、マイコン７５１は、アンテナ７５４を介して無線モジュール７５３が受信したゲーム装置本体３からのデータに応じて、サウンドＩＣ７０７およびバイブレータ７０４の動作を制御する。サウンドＩＣ７０７は、通信部７５を介してゲーム装置本体３から送信されたサウンドデータ等を処理する。また、マイコン７５１は、通信部７５を介してゲーム装置本体３から送信された振動データ（例えば、バイブレータ７０４をＯＮまたはＯＦＦする信号）等に応じて、バイブレータ７０４を作動させる。
【００８２】
コントローラ７に設けられた操作部７２からの操作信号（キーデータ）、加速度センサ７０１からの加速度信号（ｘ、ｙ、およびｚ軸方向加速度データ；以下、単に加速度データと記載する）、および撮像情報演算部７４からの処理結果データは、マイコン７５１に出力される。マイコン７５１は、入力した各データ（キーデータ、加速度データ、処理結果データ）を無線コントローラモジュール１９へ送信する送信データとして一時的にメモリ７５２に格納する。ここで、通信部７５から無線コントローラモジュール１９への無線送信は、所定の周期毎に行われるが、ゲームの処理は１／６０秒を単位として行われることが一般的であるので、それよりも短い周期で送信を行うことが必要となる。具体的には、ゲームの処理単位は１６．７ｍｓ（１／６０秒）であり、ブルートゥース（Ｂｌｕｅｔｏｏｔｈ；登録商標）で構成される通信部７５の送信間隔は例えば５ｍｓである。マイコン７５１は、無線コントローラモジュール１９への送信タイミングが到来すると、メモリ７５２に格納されている送信データを一連の操作情報として出力し、無線モジュール７５３へ出力する。そして、無線モジュール７５３は、例えばブルートゥース（登録商標）の技術に基づいて、所定周波数の搬送波を用いて操作情報で変調し、その電波信号をアンテナ７５４から放射する。つまり、コントローラ７に設けられた操作部７２からのキーデータ、加速度センサ７０１からの加速度データ、および撮像情報演算部７４からの処理結果データが無線モジュール７５３で電波信号に変調されてコントローラ７から送信される。そして、ゲーム装置本体３の無線コントローラモジュール１９でその電波信号を受信し、ゲーム装置本体３で当該電波信号を復調や復号することによって、一連の操作情報（キーデータ、加速度データ、および処理結果データ）を取得する。そして、ゲーム装置本体３のＣＰＵ１０は、取得した操作情報とゲームプログラムとに基づいて、ゲーム処理を行う。なお、ブルートゥース（登録商標）の技術を用いて通信部７５を構成する場合、通信部７５は、他のデバイスから無線送信された送信データを受信する機能も備えることができる。
【００８３】
ここで、コントローラ７を用いたゲーム操作について説明する。ゲームシステム１でコントローラ７を用いてゲームをプレイする際、プレイヤは、一方の手でコントローラ７を把持する。このとき、図９に示すように、プレイヤは、コントローラ７の前面（撮像情報演算部７４が撮像する光の入射口側）がマーカ８Ｌおよび８Ｒの方向を向く状態でコントローラ７を把持する。この状態で、プレイヤは、コントローラ７の傾きを変化させたり、コントローラ７が指し示す画面上の位置（指示位置）を変更したり、コントローラ７と各マーカ８Ｌおよび８Ｒとの距離を変更したりすることによってゲーム操作を行う。
【００８４】
次に、上記のように構成された本ゲームシステム１で実行される処理の概要（本発明の原理）について説明する。まず、本実施形態では、３Ｄモデルをプレイヤが作成するためのエディタゲームを想定している。具体的には、画面内に表示されるサンプル３Ｄモデルに対して、プレイヤがコントローラ７を用いて所望の位置を指定し、各種操作を行うことで、ユーザが自由に３Ｄモデルを作成あるいは編集することができるゲームである。
【００８５】
本実施形態では、実空間上におけるプレイヤとテレビ２との間の距離に基づいて、仮想カメラの位置や視野角（画角）の設定を行う。より具体的には、まず、上記コントローラ７とマーカー部８との距離（プレイヤとテレビとの間の距離に相当する）を算出する。そして、仮想空間内において、撮影対象となる３Ｄモデルから上記算出した距離分だけ離れた位置に仮想カメラを配置する。そして、上記３Ｄモデルが表示される画面上の表示領域の大きさと上記距離に基づいて、仮想カメラの視野角を決定する。
【００８６】
ここで、表示領域とは、実空間において、上記３Ｄモデルを表示するための領域をいう（換言すれば、実空間での画面上の領域であって、かつ、いわゆるレンダリングターゲットが表示される領域である）。例えば、図１０（ａ）に示すように全画面表示で３Ｄモデル１０１を表示する場合は、テレビ２の画面全体が表示領域となり、画面の大きさ（実寸）が表示領域の大きさとなる。また、図１０（ｂ）のように、ウィンドウ形式の表示を利用して、画面の一部の領域のみ３Ｄモデル表示用の領域にするときは、ウィンドウ１０２がここでいう表示領域となり、このウィンドウ１０２の大きさに対応する（このウィンドウが表示される）画面の一部の領域の実空間での大きさが表示領域の大きさになる。
【００８７】
例えば、仮想空間と実空間とのスケールは同じもの（実空間における立方体の大きさと仮想空間における立方体モデルの大きさの比率が１：１の関係）として、仮想空間内に配置された３Ｄモデル１０１、ここでは一例として、立方体モデル（以下、参照符号を合わせて立方体モデル１０１と呼ぶ）を仮想カメラで撮影した画像をテレビ２の画面に全画面表示する場合を例として、本実施形態での処理概要を説明する。まず、図１１（ａ）のように、実空間におけるテレビ２とコントローラ７との距離ｄを算出する。次に、図１１（ｂ）に示すように、仮想空間上において、立方体モデル１０１からこの距離ｄだけ離れた位置に仮想カメラを配置する。例えば、テレビ２とコントローラ７との距離ｄが３ｍであれば、仮想空間内においても、立方体モデル１０１（のプレイヤ側を向いている面）から３ｍ離れた位置に仮想カメラを配置する。実区間と仮想空間のスケールが同じであるため、テレビ２〜コントローラ７間の距離が、立方体モデル１０１〜仮想カメラ間の距離と同じになる。つまり、仮想カメラの位置がプレイヤ（コントローラ７）の位置に該当し、立方体モデル１０１の位置がテレビ２の位置に該当することになる。
【００８８】
次に、当該距離ｄと上記表示領域、ここではテレビ２の画面の大きさに応じて仮想カメラの視野角θを設定する。当該視野角θについては、図１２（ａ）に示すようにテレビ２とコントローラ７の距離ｄが遠ければ、狭い視野角θが設定され、図１２（ｂ）に示すようにテレビ２とコントローラ７の距離ｄが近ければ、広い視野角θが設定される。つまり、プレイヤが画面に近づくにつれて、仮想カメラの視野角θが広く設定されていき、画面から遠ざかるにつれ、仮想カメラの視野角θも狭く設定されていく。
【００８９】
このように、実空間におけるプレイヤとテレビ２との間の距離に基づいて仮想カメラの位置や視野角θを設定し、上記立方体モデル１０１を撮影することで、より現実感のある画像を画面に表示できる。つまり、実空間において、テレビ２の中（あるいはテレビ２の画面のすぐ後ろ）に立方体モデル１０１が本当に存在する場合にプレイヤの目に映るであろう画像と同じ画像が画面に表示される。その結果、プレイヤにとって違和感のない画像を提供することができる。
【００９０】
次に、ゲーム装置本体３によって実行される画像処理の詳細を説明する。まず、画像処理の際に外部メインメモリ１２に記憶されるデータについて説明する。図１３は、ゲーム装置本体３のメインメモリ１２のメモリマップを示す図である。図１３において、外部メインメモリ１２は、プログラム記憶領域１２０およびデータ記憶領域１２２を含む。プログラム記憶領域１２０およびデータ記憶領域１２２のデータは、光ディスク４に記憶され、画像処理プログラム実行時には外部メインメモリ１２に転送されて記憶される。
【００９１】
プログラム記憶領域１２０には、ＣＰＵ１０によって実行される画像処理プログラム１２１等が記憶される。
【００９２】
データ記憶領域１２２には、操作データ１２３、表示領域サイズデータ１２４、距離データ１２５、仮想カメラデータ１２６、オブジェクトデータ１２７などのデータが記憶される。
【００９３】
操作データ１２３は、コントローラ７から送信されてくる一連の操作データであり、最新の操作データに更新される。操作データ１２３には、第１座標データ１２３１および第２座標データ１２３２が含まれる。第１座標データ１２３１は、撮像素子７４３が撮像した撮像画像に対して、２つのマーカ８Ｌおよび８Ｒのうちの一方の画像の位置（撮像画像内における位置；ここでは上記図８の８Ｌ’に相当）を表す座標のデータである。第２座標データ１２３２は、他方のマーカの画像の位置（撮像画像内における位置；ここでは上記図８の８Ｒ’に相当）を表す座標のデータである。例えば、マーカの画像の位置は、撮像画像におけるＸＹ座標系によって表される。
【００９４】
表示領域サイズデータ１２４は、図１０を用いて上述したような表示領域の大きさを表すデータである。例えば、表示領域の縦幅と横幅をセンチメートル等の単位で表したものが表示領域サイズデータ１２４として格納される。本実施形態では、当該横幅を示すデータを横幅ｗｘ、縦幅を示すデータを縦幅ｗｙとして説明する。なお、表示領域サイズデータ１２４は、「３２型」や「３２インチ」等の単位で示される画面サイズであってもよい。また、当該データの取得に関しては、例えばゲーム装置本体３の「本体設定画面」等において、予めプレイヤにテレビ２の画面サイズを入力させ、その入力内容をフラッシュメモリ１３に記憶するようにしてもよい。そして、本実施形態にかかる処理の実行に際してフラッシュメモリ１３から外部メインメモリ１２に読み込むようにしても良い。
【００９５】
距離データ１２５は、上記第１座標データ１２３１および第２座標データ１２３２に基づいて算出された、マーカ８Ｌおよび８Ｒからコントローラ７までの距離ｄを示すデータである。
【００９６】
仮想カメラデータ１２６は、仮想空間内における仮想カメラの位置等を示すデータである。仮想カメラデータ１２６には、カメラ姿勢データ１２６１、カメラ位置データ１２６２、カメラ視野角データ１２６３が含まれる。カメラ姿勢データ１２６１は、仮想カメラの姿勢（仮想カメラの向き）を示すデータである。カメラの姿勢は、ＸＹＺの３軸にそれぞれ対応する３次元ベクトルで示される（ここで、以下の説明では、３次元ベクトルについては、例えば、＜１，０，１＞のように、＜Ｘ軸成分、Ｙ軸成分、Ｚ軸成分＞という形式で表記する）。すなわち、Ｚ軸方向の向きを示す３次元ベクトル＜Ｚｘ、Ｚｙ、Ｚｚ＞と、Ｙ軸方向の向きを示す３次元ベクトル＜Ｙｘ、Ｙｙ、Ｙｚ＞と、Ｘ軸方向の向きを示す３次元ベクトル＜Ｘｘ、Ｘｙ、Ｘｚ＞でカメラの姿勢が示される（座標空間は右手座標系とする）。
【００９７】
カメラ位置データ１２６２は、仮想空間内における仮想カメラの位置を示すデータである。本実施形態では、３次元座標（ｃｘ、ｃｙ、ｃｚ）で示される。また、カメラ視野角データ１２６３は、仮想カメラの視野角を示すためのデータであり、水平視野角ｒｘと垂直視野角ｒｙを含む。これらの値は、後述する処理において算出される。
【００９８】
オブジェクトデータ１２７は、仮想空間内に配置される３Ｄモデルを示すデータである。例えば図１１の立方体モデル１０１を構成するデータである。
【００９９】
次に、図１４〜図１６を参照して、ゲーム装置本体３によって実行される画像処理について説明する。なお、図１４はゲーム装置本体３によって実行される画像処理の処理の詳細を示すフローチャートである。なお、図１４に示すフローチャートにおいては、主に画像処理プログラムを実行して行われる仮想カメラの設定処理について説明し、本願発明とは直接関連しない他の処理については詳細な説明を省略する。
【０１００】
図１４において、まず、ＣＰＵ１０は、表示領域サイズを示すデータの取得を行う（ステップＳ１）。具体的には、外部メインメモリ１２から表示領域サイズデータ１２４を読み出し、予め設定されているデータである横幅ｗｘおよび縦幅ｗｙを取得する。なお、表示領域の大きさが予め設定されていないときは、ＣＰＵ１０は、所定の入力画面を表示して、プレイヤに画面の大きさを入力させるようにしてもよい。また、表示領域サイズデータ１２４が「３２型」や「３２インチ」等の単位で示されているときは、当該サイズから横幅ｗｘおよび縦幅ｗｙを算出するようにしてもよい。ここでは、サイズの単位はセンチメートルで設定されるものとする。ここで、当該表示領域のサイズを示す単位と、後述する距離ｄの単位は統一して扱うことが好ましい。そのため、後述の距離ｄについても、センチメートル単位で扱うものとして説明を行う。
【０１０１】
次に、ＣＰＵ１０は、外部メインメモリ１２からオブジェクトデータ１２７を読み出し、当該データを基に３Ｄモデルを生成する。そして、ＣＰＵ１０は、生成した３Ｄモデルを仮想空間内の所定の位置に配置する（ステップＳ２）。以下、当該３Ｄモデルの配置位置（３次元座標）を（ａｘ、ａｙ、ａｚ）で表す。
【０１０２】
次に、ＣＰＵ１０は、仮想カメラの姿勢（仮想カメラの向き）を設定する（ステップＳ３）。当該姿勢は任意の姿勢でよいが、ここでは一例として、ＣＰＵ１０は、仮想カメラの撮影方向が正面方向になるように、カメラ姿勢データ１２６１を設定する。具体的には、Ｚ軸方向の向きを示す３次元ベクトル＜Ｚｘ、Ｚｙ、Ｚｚ＞に＜０，０，１＞と、Ｙ軸方向の向きを示す３次元ベクトル＜Ｙｘ、Ｙｙ、Ｙｚ＞に＜０，１，０＞、Ｘ軸方向の向きを示す３次元ベクトル＜Ｘｘ、Ｘｙ、Ｘｚ＞に＜１，０，０＞という値を設定する。また、各ベクトルの長さは１に設定する。
【０１０３】
次に、ＣＰＵ１０は、仮想カメラからニアクリップ面までの距離ｎと、ファークリップ面までの距離ｆを設定する（ステップＳ４）。この距離としては、上記ステップＳ２で配置した３Ｄモデルが視体積の中に収まるのに必要十分な距離が設定される。
【０１０４】
次に、ＣＰＵ１０は、コントローラ７から送信され記憶された第１座標データ１２３１および第２座標データ１２３２に基づいて、コントローラ７とマーカ８Ｌおよび８Ｒとの距離ｄを算出する（ステップＳ５）。このステップＳ５の処理をより具体的に説明すると、まず、ＣＰＵ１０は、第１座標データ１２３１および第２座標データ１２３２を取得し、２点間距離ｍｉを算出する。図１５（ａ）に示すように、２点間距離ｍｉは、撮像画像内での２点間の距離である。この２点は、マーカ８Ｌおよび８Ｒを撮像した画像（８Ｌ’、８Ｒ’）に相当し、それぞれの座標を第１座標データ１２３１および第２座標データ１２３２として得ている。したがって、ＣＰＵ１０は、第１座標データ１２３１および第２座標データ１２３２を用いれば、２点間距離ｍｉを算出することができる。具体的には、第１座標データ１２３１が位置座標（Ｌｘ，Ｌｙ）、第２座標データ１２３２が位置座標（Ｒｘ，Ｒｙ）であるとすると、
【数１】
2010061545.tif 000003
で算出される。
【０１０５】
次に、ＣＰＵ３０は、マーカ８Ｌおよび８Ｒの設置位置に対する撮像素子７４３の撮像可能範囲の幅ｗ（図１５（ｂ）参照）を算出する。ここで、幅ｗは、
ｗ＝ｗｉ×ｍ／ｍｉ
で算出される。ここで、ｍは、マーカ８Ｌおよび８Ｒの設置間隔（実際の設置間隔；例えば、２０ｃｍ）であり、固定値である。また、ｗｉは、幅ｗに対応する撮像素子７４３の撮像画像の幅ｗｉであり、固定値である。これら設置間隔ｍおよび幅ｗｉは、いずれも固定値であるため、予めゲーム装置本体３内の記憶手段（例えばフラッシュメモリ１７）に格納される。次に、ＣＰＵ３０は、幅ｗおよび撮像素子７４３の視野角θを用いて、マーカ８Ｌおよび８Ｒと撮像素子７４３（コントローラ７）との距離ｄ（図１５（ｂ）参照）を算出し、距離データ１２５に格納する。ここで、距離ｄは、
ｄ＝（ｗ／２）／｛ｔａｎ（θ／２）｝
の関係式から算出することができる。ここで、視野角θは固定値であるため、予めゲーム装置本体３内の記憶手段（例えばフラッシュメモリ１３）に格納される。
【０１０６】
図１４に戻り、次に、ＣＰＵ１０は、仮想空間内において、上記３Ｄモデルから距離ｄだけ離れた位置（ｃｘ、ｃｙ、ｃｚ）を算出し、当該位置に仮想カメラを配置する（ステップＳ６）。また、ＣＰＵ１０は、当該位置を示すデータを、カメラ位置データ１２６２として格納する。上記（ｃｘ、ｃｙ、ｃｚ）は、例えば以下の式で算出することができる。
ｃｘ＝ａｘ−ｄ×Ｚｘ
ｃｙ＝ａｙ−ｄ×Ｚｙ
ｃｚ＝ａｚ−ｄ×Ｚｚ
【０１０７】
次に、ＣＰＵ１０は、仮想カメラの画角、すなわち、水平視野角ｒｘおよび垂直視野角ｒｙを算出する処理を実行する（ステップＳ７）。
水平視野角ｒｘおよび垂直視野角ｒｙは、
ｒｘ＝２×ＡＴＡＮ（ｗｘ／２／ｄ）
ｒｙ＝２×ＡＴＡＮ（ｗｙ／２／ｄ）
で算出される。図１６に、水平視野角ｒｘを算出する場合の、仮想カメラおよび３Ｄモデルの位置と距離ｄと横幅ｗｘの関係を示す。ここで、水平視野角ｒｘには、表示領域の横幅ｗｘが大きくなるに連れて大きな値が設定される。すなわち、距離ｄが同じ値（プレイヤの位置が同じ）であっても、例えばアスペクト比が４：３の画面のテレビと１６：９の画面のテレビでは、後者の方が大きな水平視野角ｒｘが設定されることになる。また、アスペクト比が同じであっても、例えば、１９インチのテレビと３２インチのテレビとでは、３２インチのテレビを用いているときの方が大きな視野角が設定されることになる（垂直視野角ｒｙについても同様である）。
【０１０８】
図１４に戻り、次に、ＣＰＵ１０は、カメラ位置データ１２６２と、カメラ姿勢データ１２６１と、仮想カメラの視野角データ１２６３からカメラ行列を生成する（ステップＳ８）。カメラ行列は、仮想空間をカメラから見た方向に変換する３×４ビュー行列と、２Ｄ画面に投影する４×４プロジェクション行列の２つから成り立つ。具体的には、以下に示す行列式が生成される。
（３×４ビュー行列式）
【数２】
2010061545.tif 000004
（４×４プロジェクション行列式）
【数３】
2010061545.tif 000005
【０１０９】
次に、ＣＰＵ１０は、上述の処理で設定された仮想カメラで上記３Ｄモデルが配置された仮想空間を撮影した画像を表示するための描画処理を実行する（ステップＳ９）。
【０１１０】
ステップＳ９の後、、ステップＳ１０において、処理終了か否かが判断され、ＹＥＳの場合、処理を終了し、ＮＯの場合、ステップＳ５に戻って、処理を繰り返す。以上で、本実施形態にかかる画像処理は終了する。
【０１１１】
このように、本実施形態では、実空間におけるプレイヤとテレビとの間の距離に応じて、仮想カメラの位置や視野角が設定される。そして、このようにして設定された仮想カメラで撮影した画像が表示されることで、プレイヤに、より現実感の高い画像を提供することができる。
【０１１２】
なお、テレビ２とプレイヤのと間の距離の取得に関し、上述の実施形態では、撮像装置付きのコントローラ７とマーカ８の組み合わせを用いたものを例として説明した。そして、マーカ８Ｌおよび８Ｒの設置間隔に基づいて距離ｄを算出していたが、これに限らず、撮像されたマーカ８Ｌまたは８Ｒの画像の大きさに基づいて距離ｄを算出するようにしてもよい。例えば、撮像画像におけるマーカの画像８Ｌ’または８Ｒ’（図１５（ａ）参照）の直径に基づいて距離ｄを算出するようにしても良い。当該直径が大きければ距離ｄは短く、直径が小さいほど距離ｄは大きいと考えられるためである。
【０１１３】
また、テレビ２とプレイヤのと間の距離の取得に関しては、上述のような撮像装置付きのコントローラ７とマーカ８の組み合わせを用いることに限らない。例えば、プレイヤにテレビ２との間の距離を計測させ、当該計測した距離を手入力させて一旦メモリに保存し、当該メモリから読み出すような手法でも良い。その他、プレイヤとテレビとの間の距離を取得できれば、どのような手法を用いても良い。
【０１１４】
また、上記ステップＳ４におけるニアクリップ面までの距離ｎとファークリップ面までの距離ｆの設定処理については、上記ステップＳ６において仮想カメラを配置した後に実行するようにしてもよい。このように仮想カメラを配置してからニアクリップ面およびファークリップ面を設定することで、より適切な設定を行うことが可能となる。
【０１１５】
また、複数の３Ｄモデルを画面に表示するようなときは、最もプレイヤに近い位置に配置された３Ｄモデルを基準として（つまり注視点として）、仮想カメラを配置するようにすることが好ましい。例えば、図１１（ｂ）に示したような立方体モデル１０１を２つ表示するような場合であって、奥行き方向の配置位置が異なるような場合、つまり、２つの立方体モデルのうち、一方がよりプレイヤに近い側に配置され、他方はより遠い側に配置されるような場合を想定する。この場合は、図１７（ａ）に示すように、最もプレイヤに近い３Ｄモデルの位置を上記ステップＳ２で示した（ａｘ、ａｙ、ａｚ）として、この位置から距離ｄだけ離れた位置に仮想カメラを配置するようにすればよい。これにより、テレビ２の画面の後ろ側に上記最もプレイヤに近い３Ｄモデルが存在するように表示され、違和感のない、現実感のある画像を提供することが可能となる。この他、図１７（ｂ）に示すように、プレイヤから見て奥行き側に配置されている３Ｄモデルの位置を基準として仮想カメラを配置してもよいし、図１７（ｃ）に示すように、複数の３Ｄモデルの奥行き方向における距離の中点位置を基準に仮想カメラを配置するようにしても良い。図１７（ｂ）や（ｃ）にような仮想カメラの配置を行った場合は、手前側の３Ｄモデルが、テレビ２の画面よりも手前側に存在するものとして表示することが可能となる。この場合であっても、これらの３Ｄモデルが本当にテレビ２の手前に存在するかのような現実感のある画像を提供することが可能である。
【産業上の利用可能性】
【０１１６】
本発明にかかる画像処理プログラムおよび画像処理装置は、より現実感の高い画像を表示することができ、ゲーム装置やＣＡＤシステム等に有用である。
【図面の簡単な説明】
【０１１７】
【図１】本発明の一実施形態に係るゲームシステム１を説明するための外観図
【図２】図１のゲーム装置本体５の機能ブロック図
【図３】図１のコントローラ７の上面後方から見た斜視図
【図４】図３のコントローラ７を下面前方から見た斜視図
【図５】図３のコントローラ７の上ハウジングを外した状態を示す斜視図
【図６】図３のコントローラ７の下ハウジングを外した状態を示す斜視図
【図７】図３のコントローラ７の構成を示すブロック図
【図８】撮像画像の一例を示す図
【図９】コントローラ７を用いたゲーム操作について説明するための図
【図１０】表示領域について説明するための図
【図１１】本実施形態での処理概要を説明するための図
【図１２】本実施形態での処理概要を説明するための図
【図１３】ゲーム装置本体３のメインメモリ１２のメモリマップを示す図
【図１４】ゲーム装置本体３によって実行される画像処理の処理の詳細を示すフローチャート
【図１５】図１３のステップＳ５の処理について説明するための図
【図１６】図１３のステップＳ７の処理について説明するための図
【図１７】複数の３Ｄモデルが画面に表示される場合の処理について説明するための図
【図１８】仮想空間での仮想カメラと立方体モデルの関係を示す図
【図１９】実空間におけるプレイヤとテレビとの位置関係を示す図
【図２０】仮想カメラの視野角とプレイヤの視野角との関係を示す図
【符号の説明】
【０１１８】
１…ゲームシステム
２…モニタ
２ａ…スピーカ
３…ゲーム装置本体
４…光ディスク
７…コントローラ
１０…ＣＰＵ
１１…システムＬＳＩ
１１ａ…入出力プロセッサ
１１ｂ…ＧＰＵ
１１ｃ…ＤＳＰ
１１ｄ…ＶＲＡＭ
１１ｅ…内部メインメモリ
１２…外部メインメモリ
１３…ＲＯＭ／ＲＴＣ
１４…ディスクドライブ
１５…ＡＶ−ＩＣ
１６…ＡＶコネクタ
１７…フラッシュメモリ
１８…無線通信モジュール
１９…無線コントローラモジュール
２０…拡張コネクタ
２１…外部メモリカード用コネクタ
２２…アンテナ
２３…アンテナ
２４…電源ボタン
２５…リセットボタン
２６…イジェクトボタン
７１…ハウジング
７２…操作部
７３…コネクタ
７４…撮像情報演算部
７４１…赤外線フィルタ
７４２…レンズ
７４３…撮像素子
７４４…画像処理回路
７５…通信部
７５１…マイコン
７５２…メモリ
７５３…無線モジュール
７５４…アンテナ
７００…基板
７０１…加速度センサ
７０２…ＬＥＤ
７０３…水晶振動子
７０４…バイブレータ
７０７…サウンドＩＣ
７０８…アンプ
【図１】
2010061545.tif 000006
【図２】
2010061545.tif 000007
【図３】
2010061545.tif 000008
【図４】
2010061545.tif 000009
【図５】
2010061545.tif 000010
【図６】
2010061545.tif 000011
【図７】
2010061545.tif 000012
【図８】
2010061545.tif 000013
【図９】
2010061545.tif 000014
【図１０】
2010061545.tif 000015
【図１１】
2010061545.tif 000016
【図１２】
2010061545.tif 000017
【図１３】
2010061545.tif 000018
【図１４】
2010061545.tif 000019
【図１５】
2010061545.tif 000020
【図１６】
2010061545.tif 000021
【図１７】
2010061545.tif 000022
【図１８】
2010061545.tif 000023
【図１９】
2010061545.tif 000024
【図２０】
2010061545.tif 000025