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