(57)【要約】【課題】複数のコントローラを用いて自由度の高い新たな操作を実現するゲームシステムおよびゲームプログラムを提供する。【解決手段】第１のコントローラは、その第１のコントローラ本体の動きによって変化するデータである第１操作データを発生する第１操作データ発生部を含む。第２のコントローラは、プレイヤの方向入力操作に応じた第２操作データを発生する第２操作データ発生部を含む。ゲーム装置は、第１操作データおよび第２操作データを取得し、それら両操作データに応じて仮想ゲーム世界に対して所定のゲーム処理を行うゲーム処理手段と、ゲーム処理を行った後の仮想ゲーム世界を画像として表示装置の表示領域に表示させる表示処理手段とを含む。【選択図】図１
2011183205.tif 000002
【特許請求の範囲】
【請求項１】
第１のコントローラと、
第２のコントローラと、
所定のゲームプログラムを実行して２次元または３次元の仮想ゲーム世界を表示装置の表示領域に表示させるゲーム装置とを備え、
前記第１のコントローラは、
加速度センサと、
前記加速度センサから出力される加速度データを含む第１操作データを発生する第１操作データ発生部とを含み、
前記第２のコントローラは、プレイヤの方向入力操作に応じた第２操作データを発生する第２操作データ発生部を含み、
前記ゲーム装置は、
前記第１操作データおよび前記第２操作データを取得し、当該両操作データに応じて前記仮想ゲーム世界に対して所定のゲーム処理を行うゲーム処理手段と、
前記ゲーム処理を行った後の前記仮想ゲーム世界を画像として前記表示装置の表示領域に表示させる表示処理手段とを含む、ゲームシステム。
【請求項２】
前記ゲーム処理手段は、前記加速度データに基づいて、前記表示装置の表示領域に対応した所定の座標を指示座標として決定する指示座標決定手段を含み、
前記ゲーム処理手段は、前記指示座標および前記第２操作データを所定の演算に用いてゲーム処理を行う、請求項１に記載のゲームシステム。
【請求項３】
前記指示座標決定手段は、前記加速度データに対応させて指示座標を所定位置から移動させることによって指示座標を決定する、請求項２に記載のゲームシステム。
【請求項４】
前記ゲーム処理手段は、前記指示座標に対応する３次元の仮想ゲーム空間内の３次元指示座標を求め、当該３次元指示座標を用いた演算を含むゲーム処理を行い、
前記表示処理手段は、前記ゲーム処理手段がゲーム処理した３次元の仮想ゲーム空間を前記表示装置の表示領域に表示する処理を行う、請求項２または３に記載のゲームシステム。
【請求項５】
前記ゲーム処理手段は、前記３次元指示座標の位置に存在するオブジェクトに対して、所定の処理を行う、請求項４に記載のゲームシステム。
【請求項６】
前記ゲーム処理手段は、前記指示座標に対応した位置に所定のオブジェクトを配置する、請求項２に記載のゲームシステム。
【請求項７】
前記ゲーム処理手段は、複数の選択項目からプレイヤの選択を促すメニュー領域を少なくとも含む仮想ゲーム世界を生成し、
前記ゲーム処理手段は、前記表示領域において前記指示座標を含む位置に表示されている選択項目を選択する処理を行う、請求項２に記載のゲームシステム。
【請求項８】
前記ゲーム処理手段は、前記第２操作データに対応させて、仮想ゲーム世界におけるプレイヤキャラクタの位置座標、仮想カメラの位置座標、および仮想カメラの方向ベクトルのうち少なくとも１つを変化させる、請求項４乃至７のいずれか１つに記載のゲームシステム。
【請求項９】
前記ゲーム処理手段は、前記３次元指示座標に仮想カメラの注視点が一致するように仮想カメラの方向を移動させる、請求項４に記載のゲームシステム。
【請求項１０】
前記ゲーム処理手段は、前記加速度データが示す加速度の変化量に対して所定の演算を行い、前記表示領域に対応した座標系における所定の移動ベクトルを決定し、３次元の仮想ゲーム空間における仮想カメラの注視点が、前記表示領域上で当該移動ベクトルに対応して移動するように仮想カメラの方向を移動し、
前記表示処理手段は、前記ゲーム処理手段のゲーム処理した３次元の仮想ゲーム空間を前記表示装置の表示領域に表示する処理を行う、請求項１に記載のゲームシステム。
【請求項１１】
前記ゲーム処理手段は、前記第２操作データに対応させて、仮想ゲーム世界におけるプレイヤキャラクタの位置座標および仮想カメラの位置座標の少なくとも一方を変化させる、請求項９または１０に記載のゲームシステム。
【請求項１２】
第１のコントローラに設けられた加速度センサから出力される加速度データを含む第１操作データと、第２のコントローラに与えられた方向入力操作に応じた第２操作データとを取得するゲーム装置のコンピュータで実行可能なゲームプログラムであって、
前記第１操作データおよび前記第２操作データを取得し、当該両操作データに応じて２次元または３次元の仮想ゲーム世界に対して所定のゲーム処理を行うゲーム処理ステップと、
前記ゲーム処理を行った後の前記仮想ゲーム世界を画像として表示装置の表示領域に表示させる表示処理ステップとを、前記コンピュータに実行させる、ゲームプログラム。
【請求項１３】
前記ゲーム処理ステップは、
前記加速度データに基づいて、前記表示装置の表示領域に対応した所定の座標を指示座標として決定する指示座標決定ステップと、
前記指示座標および前記第２操作データを所定の演算に用いてゲーム処理を行うステップとを含む、請求項１２に記載のゲームプログラム。
【請求項１４】
前記指示座標決定ステップは、前記加速度データに対応させて指示座標を所定位置から移動させることによって新たな指示座標を決定するステップを含む、請求項１３に記載のゲームプログラム。
【請求項１５】
前記ゲーム処理ステップは、
前記指示座標に対応する３次元の仮想ゲーム空間内の３次元指示座標を求めるステップと、
前記３次元指示座標を用いた演算を含むゲーム処理を行うステップとを含み、
前記表示処理ステップは、前記ゲーム処理ステップでゲーム処理した３次元の仮想ゲーム空間を前記表示装置の表示領域に表示するステップを含む、請求項１３または１４に記載のゲームプログラム。
【請求項１６】
前記ゲーム処理ステップは、
前記３次元指示座標の位置に存在するオブジェクトを検出するステップと、
前記オブジェクトに対して所定の処理を行うステップとを含む、請求項１５に記載のゲームプログラム。
【請求項１７】
前記ゲーム処理ステップは、前記指示座標に対応した位置に所定のオブジェクトを配置するステップを含む、請求項１３に記載のゲームプログラム。
【請求項１８】
前記ゲーム処理ステップは、
複数の選択項目からプレイヤの選択を促すメニュー領域を少なくとも含む仮想ゲーム世界を生成するステップと、
前記表示領域において前記指示座標を含む位置に表示されている選択項目を選択処理するステップとを含む、請求項１３に記載のゲームプログラム。
【請求項１９】
前記ゲーム処理ステップは、前記第２操作データに対応させて、仮想ゲーム世界におけるプレイヤキャラクタの位置座標、仮想カメラの位置座標、および仮想カメラの方向ベクトルのうち少なくとも１つを変化させるステップを含む、請求項１５乃至１８のいずれか１つに記載のゲームプログラム。
【請求項２０】
前記ゲーム処理ステップは、前記３次元指示座標に仮想カメラの注視点が一致するように仮想カメラの方向を移動させるステップを含む、請求項１５に記載のゲームプログラム。
【請求項２１】
前記ゲーム処理ステップは、
前記第１のコントローラの動きによる前記第１操作データの変化量に対して所定の演算を行うステップと、
前記表示領域に対応した座標系における所定の移動ベクトルを決定するステップと、
３次元の仮想ゲーム空間における仮想カメラの注視点が、前記表示領域上で当該移動ベクトルに対応して移動するように仮想カメラの方向を移動するステップとを含み、
前記表示処理ステップは、前記ゲーム処理ステップでゲーム処理した３次元の仮想ゲーム空間を前記表示装置の表示領域に表示するステップを含む、請求項１２に記載のゲームプログラム。
【請求項２２】
前記ゲーム処理ステップは、前記第２操作データに対応させて、仮想ゲーム世界におけるプレイヤキャラクタの位置座標および仮想カメラの位置座標の少なくとも一方を変化させるステップを含む、請求項２０または２１に記載のゲームプログラム。
【請求項２３】
第１のコントローラと、
第２のコントローラと、
所定のゲームプログラムを実行して２次元または３次元の仮想ゲーム世界を表示装置の表示領域に表示させるゲーム装置とを備え、
前記第１のコントローラは、
当該第１のコントローラ本体に固設され、当該第１のコントローラ本体を基準に所定方向の周辺を撮像可能な撮像部と、
前記撮像部によって撮像した撮像画像自体または撮像画像に所定の演算を行った結果を含む第１操作データを発生する第１操作データ発生部とを含み、
前記第２のコントローラは、プレイヤの方向入力操作に応じた第２操作データを発生する第２操作データ発生部を含み、
前記ゲーム装置は、
前記第１操作データおよび前記第２操作データを取得し、当該両操作データに応じて前記仮想ゲーム世界に対して所定のゲーム処理を行うゲーム処理手段と、
前記ゲーム処理を行った後の前記仮想ゲーム世界を画像として前記表示装置の表示領域に表示させる表示処理手段とを含む、ゲームシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ゲームシステムおよびゲームプログラムに関し、より特定的には、２つのコントローラを用いて操作するゲームシステムおよびゲームプログラムに関する。
【背景技術】
【０００２】
プレイヤが両手にそれぞれコントロールユニットを把持してゲーム操作するコントローラが開示されている（例えば、特許文献１参照）。
【０００３】
特許文献１に開示されたコントローラは、プレイヤの右手で把持されるＲユニットと左手で把持されるＬユニットとから構成される。ＲユニットおよびＬユニットは、それぞれハウジング上面や側面に操作ボタンやスティックが配置されている。そして、ＲユニットおよびＬユニットは物理的に連結することが可能であり、連結した場合に合体型のコントローラとして使用することができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４−３１３４９２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記特許文献１に開示されたコントローラは、従来のゲーム機用コントローラを左右に分離できるように構成したに過ぎない。つまり、プレイヤが左右の手にそれぞれＲユニットおよびＬユニットを把持することによって、プレイヤの左右の手の位置が自由になるだけであって、コントローラ自体の操作の自由度が変わるわけではない。例えば、ゲーム機用コントローラを左右に分離することによって、合体型では操作できなかった新たな操作が可能になるわけではない。
【０００６】
また、上記コントローラでシューティングゲームをプレイする場合、射撃の照準を移動させるためにスティックが用いられることが多い。このとき、画面上で照準が移動する方向とコントローラ上でスティックを傾倒する方向とが実空間において異なる方向であるため、直感的に操作方向が把握しにくい。したがって、スティックを傾倒する方向と画面上での移動方向との対応関係について、プレイヤの個人差によって認識が異なり、プレイヤの好みに応じた方向設定を可能にするため、リバースモードを設ける必要がある。また、合体型の場合、２本のスティックの可動方向がコントローラ上の同一平面内になり、ゲームの仮想空間内で奥行き方向の移動が可能なキャラクタと表示領域上の平面内を移動する照準とをそれぞれ操作する場合には、ユーザの認識のし易さという点において不適である。さらに、ＲユニットおよびＬユニットは、それぞれ右手用および左手用に固定されているため、利き手に応じた操作を設定することが困難である。
【０００７】
また、ロールプレイングゲームをプレイする場合等には、ゲーム進行中にメニュー選択が必要となることがある。この場合、上記コントローラによるゲーム操作では、方向キー等による入力を必要とし、選択項目を１つずつ移動させるため、メニュー選択に時間を要し、リアルタイムでゲームが進行するゲームの場合、メニューの選択肢を選択している間にプレイヤキャラクタの操作ができずにプレイを失敗することがある。また、キャラクタの向きを変えるためには、スティック等の操作部を倒し続ける必要があり、素早く方向転換ができない。
【０００８】
それ故に、本発明の目的は、複数のコントローラを用いて自由度の高い新たな操作を実現するゲームシステムおよびゲームプログラムを提供することである。
【課題を解決するための手段】
【０００９】
上記の目的を達成するために、本発明は以下の構成を採用した。なお、括弧内の参照符号やステップ番号等は、本発明の理解を助けるために後述する実施形態との対応関係を示したものであって、本発明の範囲を何ら限定するものではない。
【００１０】
第１の発明は、第１のコントローラ（７０）、第２のコントローラ（７６）、およびゲーム装置（３）を備えるゲームシステム（１）である。ゲーム装置は、所定のゲームプログラムを実行して２次元または３次元の仮想ゲーム世界を表示装置（２）の表示領域に表示させる。第１のコントローラは、第１操作データ発生部（７４、７０１）を含む。第１操作データ発生部は、その第１のコントローラ本体の動きによって変化するデータである第１操作データ（Ｄａ１、Ｄａ２、Ｄａ５）を発生する。第２のコントローラは、第２操作データ発生部（７８）を含む。第２操作データ発生部は、プレイヤの方向入力操作に応じた第２操作データ（Ｄａ３）を発生する。ゲーム装置は、ゲーム処理手段（Ｓ５２〜Ｓ５６）と、表示処理手段（Ｓ５７）とを含む。ゲーム処理手段は、第１操作データおよび第２操作データを取得し、それら両操作データに応じて仮想ゲーム世界に対して所定のゲーム処理を行う。表示処理手段は、ゲーム処理を行った後の仮想ゲーム世界を画像として表示装置の表示領域に表示させる。
【００１１】
第２の発明は、上記第１の発明において、ゲーム処理手段は、指示座標決定手段（Ｓ５３）を含む。指示座標決定手段は、第１操作データに基づいて、表示装置の表示領域に対応した所定の座標を指示座標（Ｄｃ３）として決定する。ゲーム処理手段は、指示座標および第２操作データを所定の演算に用いてゲーム処理を行う。
【００１２】
第３の発明は、上記第２の発明において、第１のコントローラは、撮像部（７４）を含む。撮像部は、そのコントローラ本体に固設され、そのコントローラ本体を基準に所定方向の周辺を撮像可能である。第１操作データは、その撮像部によって撮像した撮像画像自体または撮像画像に所定の演算を行った結果（Ｄａ１、Ｄａ２）を含む。指示座標決定手段は、撮像画像内の所定の撮像対象（８）の位置の動きに対応させて指示座標を所定位置から移動させることによって指示座標を決定する。
【００１３】
第４の発明は、上記第２の発明において、第１のコントローラは、加速度センサ（７０１）を含む。第１操作データは、加速度センサから出力される加速度データ（Ｄａ５）を含む。指示座標決定手段は、加速度データに対応させて指示座標を所定位置から移動させることによって指示座標を決定する。
【００１４】
第５の発明は、上記第２の発明において、ゲーム処理手段は、指示座標に対応する３次元の仮想ゲーム空間（Ｓ）内の３次元指示座標を求め、その３次元指示座標を用いた演算を含むゲーム処理を行う。表示処理手段は、ゲーム処理手段のゲーム処理した３次元の仮想ゲーム空間を表示装置の表示領域に表示する処理を行う。
【００１５】
第６の発明は、上記第５の発明において、ゲーム処理手段は、３次元指示座標の位置に存在するオブジェクト（Ｅ）に対して、所定の処理を行う。
【００１６】
第７の発明は、上記第２の発明において、ゲーム処理手段は、指示座標に対応した位置に所定のオブジェクト（Ｔ）を配置する。
【００１７】
第８の発明は、上記第２の発明において、ゲーム処理手段は、複数の選択項目（Ｍ１〜Ｍ７）からプレイヤの選択を促すメニュー領域を少なくとも含む仮想ゲーム世界を生成する。ゲーム処理手段は、表示領域において指示座標を含む位置（Ｃｓ）に表示されている選択項目を選択する処理を行う。
【００１８】
第９の発明は、上記第５〜第８のいずれかの発明において、ゲーム処理手段は、第２操作データに対応させて、仮想ゲーム世界におけるプレイヤキャラクタ（Ｐ）の位置座標、仮想カメラ（Ｃ）の位置座標、および仮想カメラの方向ベクトルのうち少なくとも１つを変化させる。
【００１９】
第１０の発明は、上記第５の発明において、ゲーム処理手段は、３次元指示座標に仮想カメラの注視点が一致するように仮想カメラの方向を移動させる。
【００２０】
第１１の発明は、上記第１の発明において、ゲーム処理手段は、第１のコントローラの動きによる第１操作データの変化量に対して所定の演算を行い、表示領域に対応した座標系における所定の移動ベクトルを決定し、３次元の仮想ゲーム空間における仮想カメラの注視点が、表示領域上でその移動ベクトルに対応して移動するように仮想カメラの方向を移動する。表示処理手段は、ゲーム処理手段のゲーム処理した３次元の仮想ゲーム空間を表示装置の表示領域に表示する処理を行う。
【００２１】
第１２の発明は、上記第１０または第１１の発明において、ゲーム処理手段は、第２操作データに対応させて、仮想ゲーム世界におけるプレイヤキャラクタの位置座標および仮想カメラの位置座標の少なくとも一方を変化させる。
【００２２】
第１３の発明は、ゲーム装置のコンピュータ（３０）で実行可能なゲームプログラムである。ゲーム装置は、第１のコントローラ本体の動きによって変化するデータである第１操作データと、第２のコントローラに与えられた方向入力操作に応じた第２操作データとを取得する。ゲームプログラムは、ゲーム処理ステップ（Ｓ５２〜Ｓ５６）および表示処理ステップ（Ｓ５７）を、コンピュータに実行させる。ゲーム処理ステップは、第１操作データおよび第２操作データを取得し、それら両操作データに応じて２次元または３次元の仮想ゲーム世界に対して所定のゲーム処理を行う。表示処理ステップは、コンピュータに実行させるゲーム処理を行った後の仮想ゲーム世界を画像として表示装置の表示領域に表示させる。
【００２３】
第１４の発明は、上記第１３の発明において、ゲーム処理ステップは、指示座標決定ステップ（Ｓ５３）を含む。指示座標決定ステップは、第１操作データに基づいて、表示装置の表示領域に対応した所定の座標を指示座標として決定する。ゲーム処理ステップは、指示座標および第２操作データを所定の演算に用いてゲーム処理を行うステップを含む。
【００２４】
第１５の発明は、上記第１４の発明において、第１操作データは、画像または画像に所定の演算を行った結果を含む。指示座標決定ステップは、画像内の所定の対象の位置の動きを検出するステップと、動きに対応させて指示座標を所定位置から移動させることによって新たな指示座標を決定するステップとを含む。
【００２５】
第１６の発明は、上記第１４の発明において、第１操作データは、第１のコントローラに設けられた加速度センサから出力される加速度データを含む。指示座標決定ステップは、加速度データに対応させて指示座標を所定位置から移動させることによって新たな指示座標を決定するステップを含む。
【００２６】
第１７の発明は、上記第１４の発明において、ゲーム処理ステップは、指示座標に対応する３次元の仮想ゲーム空間内の３次元指示座標を求めるステップと、３次元指示座標を用いた演算を含むゲーム処理を行うステップとを含む。表示処理ステップは、ゲーム処理ステップでゲーム処理した３次元の仮想ゲーム空間を表示装置の表示領域に表示するステップを含む。
【００２７】
第１８の発明は、上記第１７の発明において、ゲーム処理ステップは、３次元指示座標の位置に存在するオブジェクトを検出するステップと、オブジェクトに対して所定の処理を行うステップとを含む。
【００２８】
第１９の発明は、上記第１４の発明において、ゲーム処理ステップは、指示座標に対応した位置に所定のオブジェクトを配置するステップを含む。
【００２９】
第２０の発明は、上記第１４の発明において、ゲーム処理ステップは、複数の選択項目からプレイヤの選択を促すメニュー領域を少なくとも含む仮想ゲーム世界を生成するステップと、表示領域において指示座標を含む位置に表示されている選択項目を選択処理するステップとを含む。
【００３０】
第２１の発明は、上記第１７〜第２０のいずれかの発明において、ゲーム処理ステップは、第２操作データに対応させて、仮想ゲーム世界におけるプレイヤキャラクタの位置座標、仮想カメラの位置座標、および仮想カメラの方向ベクトルのうち少なくとも１つを変化させるステップを含む。
【００３１】
第２２の発明は、上記第１７の発明において、ゲーム処理ステップは、３次元指示座標に仮想カメラの注視点が一致するように仮想カメラの方向を移動させるステップを含む。
【００３２】
第２３の発明は、上記第１３の発明において、ゲーム処理ステップは、第１のコントローラの動きによる第１操作データの変化量に対して所定の演算を行うステップと、表示領域に対応した座標系における所定の移動ベクトルを決定するステップと、３次元の仮想ゲーム空間における仮想カメラの注視点が、表示領域上でその移動ベクトルに対応して移動するように仮想カメラの方向を移動するステップとを含む。表示処理ステップは、ゲーム処理ステップでゲーム処理した３次元の仮想ゲーム空間を表示装置の表示領域に表示するステップを含む。
【００３３】
第２４の発明は、上記第２２または第２３の発明において、ゲーム処理ステップは、第２操作データに対応させて、仮想ゲーム世界におけるプレイヤキャラクタの位置座標および仮想カメラの位置座標の少なくとも一方を変化させるステップを含む。
【発明の効果】
【００３４】
上記第１の発明によれば、第１のコントローラは、コントローラ本体を動きによって変化する操作データを発生し、第２のコントローラは、方向入力操作に応じた操作データを発生させるようにしている。これにより、ゲームにおいてこれらのゲームコントローラを利用するためには、プレイヤの一方の手は手自体を動かし、他方の手は従来のコントローラと同じように指による入力を行わせることができる。つまり、プレイヤの左右の手で全く異なる操作をさせることが可能になるので、従来にない新たな操作を提供することができる。
【００３５】
上記第２の発明によれば、コントローラの本体の動きに応じた信号に応じて表示装置の表示領域に対応した指示座標が設定されるため、表示画面に直接作用する操作入力として用いることができ、より自由度の高い入力が可能となる。
【００３６】
上記第３の発明によれば、第１のコントローラに固設された撮像部で撮像された撮像画像または撮像画像から得られる情報を操作データとして用いることができる。例えば、撮像対象に対する当該第１のコントローラの方向や位置を検出できるため、コントローラ方向や位置に応じたゲーム操作が可能となる。
【００３７】
上記第４の発明によれば、加速度センサを利用することによって、第１操作データ発生部のコストを抑えることができる。
【００３８】
上記第５の発明によれば、３次元の仮想ゲーム空間を表示するゲームにおいて、コントローラの本体の動きに応じた信号に応じて当該仮想ゲーム空間内に指示座標を設定することができる。
【００３９】
上記第６の発明によれば、コントローラの本体の動きに応じた信号に応じた指示座標の位置に存在するオブジェクトに影響を与える（例えば、当該位置のオブジェクトを射撃）ゲーム処理が可能となる。
【００４０】
上記第７の発明によれば、コントローラの本体の動きに応じた信号に応じた指示座標の位置にオブジェクト（例えば、照準カーソル）を配置するゲーム処理が可能となる。
【００４１】
上記第８の発明によれば、プレイヤは、他方の手で直接的に項目の選択ができるので、時間的なロスが少なく快適な操作ができる。
【００４２】
上記第９の発明によれば、一方の手でコントローラ本体の動きに応じて表示画面に直接作用する操作入力を実現しながら、他方の手で方向入力操作を行うことによって、バリエーションに富んだ操作が可能となる。例えば、プレイヤが行う方向指示操作とゲーム空間の位置を指定する操作とが別々のコントローラで行うことができるため、それぞれの操作が互いに影響し合うことがなく安定した２つの方向指示操作を行うことができる。また、利き手に応じて２つのコントローラを使い分けることも可能となる。また、例えば、一方のコントローラをプレイヤキャラクタ等の移動指示に用いながら、他方のコントローラを用いて指示する位置を注視することができる。また、例えば、一方の手でキャラクタ等の操作を行い、他方の手で直接的に項目の選択ができるので、時間的なロスが少なく快適な操作ができる。
【００４３】
上記第１０および第１１の発明によれば、コントローラ本体の動きに応じた操作入力によって注視点が移動するため、必要に応じて素早い方向転換が可能となり、直感的な入力であるためリバースモードが不要となる。
【００４４】
上記第１２の発明によれば、一方のコントローラをプレイヤキャラクタや仮想カメラ等の移動指示に用いながら、他方のコントローラを用いて指示する位置を注視することができる。
【００４５】
また、本発明のゲームプログラムによれば、ゲーム装置のコンピュータで実行することによって上述したゲームシステムと同様の効果を得ることができる。
【図面の簡単な説明】
【００４６】
【図１】本発明の一実施形態に係るゲームシステム１を説明するための外観図
【図２】図１のゲーム装置３の機能ブロック図
【図３】図１のコントローラ７の外観構成を示す斜視図
【図４】図３のコントローラ７の接続ケーブル７９をコアユニット７０から脱着する状態を示す斜視図
【図５】図３のコアユニット７０の上面後方から見た斜視図
【図６】図３のコアユニット７０を下面後方から見た斜視図
【図７】図３のコアユニット７０の上筐体を外した状態を示す斜視図
【図８】図３のサブユニット７６の上面図、下面図、および左側面図
【図９】図３のサブユニット７６の上面前方から見た斜視図
【図１０】図３のサブユニット７６の第１の変形例を示す上面図
【図１１】図３のサブユニット７６の第２の変形例を示す上面図
【図１２】図３のサブユニット７６の第３の変形例を示す上面図
【図１３】図３のサブユニット７６の第４の変形例を示す上面図
【図１４】図３のコントローラ７の構成を示すブロック図
【図１５】図３のコントローラ７を用いてゲーム操作するときの状態を概説する図解図
【図１６】プレイヤがコアユニット７０を右手で把持した状態をコアユニット７０の前面側から見た一例
【図１７】プレイヤがコアユニット７０を右手で把持した状態をコアユニット７０の左側面側から見た一例
【図１８】ＬＥＤモジュール８Ｌおよび８Ｒと撮像情報演算部７４との視野角を説明するための図
【図１９】プレイヤがサブユニット７６を左手で把持した状態をサブユニット７６の右側面側から見た一例
【図２０】ゲーム装置３のメインメモリ３３に記憶される主なデータを示す図
【図２１】ゲーム装置３において実行されるゲーム処理の流れを示すフローチャート
【図２２】第１の例として、ゲーム装置３がシューティングゲームを実行する際にモニタ２に表示されるゲーム画像例を示す図
【図２３】第２の例としてゲーム装置３がゲーム画像を作成する際の仮想カメラＣの状態を示す図
【図２４】第３の例として、ゲーム装置３がロールプレイングゲームを実行する際にモニタ２に表示されるゲーム画像例を示す図
【発明を実施するための形態】
【００４７】
図１を参照して、本発明の一実施形態に係るゲームシステム１について説明する。なお、図１は、当該ゲームシステム１を説明するための外観図である。以下、据置型ゲーム装置を一例にして、本発明のゲームシステム１について説明する。
【００４８】
図１において、当該ゲームシステム１は、家庭用テレビジョン受像機等のスピーカ２ａを備えたディスプレイ（以下、モニタと記載する）２に、接続コードを介して接続される据置型ゲーム装置（以下、単にゲーム装置と記載する）３および当該ゲーム装置３に操作情報を与えるコントローラ７によって構成される。ゲーム装置３は、接続端子を介して受信ユニット６が接続される。受信ユニット６は、コントローラ７から無線送信される送信データを受信し、コントローラ７とゲーム装置３とは無線通信によって接続される。また、ゲーム装置３には、当該ゲーム装置３に対して交換可能に用いられる情報記憶媒体の一例の光ディスク４が脱着される。ゲーム装置３の上部主面には、当該ゲーム装置３の電源ＯＮ／ＯＦＦスイッチ、ゲーム処理のリセットスイッチ、およびゲーム装置３上部の蓋を開くＯＰＥＮスイッチが設けられている。ここで、プレイヤがＯＰＥＮスイッチを押下することによって上記蓋が開き、光ディスク４の脱着が可能となる。
【００４９】
また、ゲーム装置３には、セーブデータ等を固定的に記憶するバックアップメモリ等を搭載する外部メモリカード５が必要に応じて着脱自在に装着される。ゲーム装置３は、光ディスク４に記憶されたゲームプログラムなどを実行することによって、その結果をゲーム画像としてモニタ２に表示する。さらに、ゲーム装置３は、外部メモリカード５に記憶されたセーブデータを用いて、過去に実行されたゲーム状態を再現して、ゲーム画像をモニタ２に表示することもできる。そして、ゲーム装置３のプレイヤは、モニタ２に表示されたゲーム画像を見ながら、コントローラ７を操作することによって、ゲーム進行を楽しむことができる。
【００５０】
コントローラ７は、その内部に備える通信部７５（後述）から受信ユニット６が接続されたゲーム装置３へ、例えばＢｌｕｅｔｏｏｔｈ（ブルートゥース）（登録商標）の技術を用いて送信データを無線送信する。コントローラ７は、２つのコントロールユニット（コアユニット７０およびサブユニット７６）が屈曲自在な接続ケーブル７９を介して互いに接続されて構成されており、主にモニタ２に表示されるゲーム空間に登場するプレイヤオブジェクトを操作するための操作手段である。コアユニット７０およびサブユニット７６は、それぞれ複数の操作ボタン、キー、およびスティック等の操作部が設けられている。また、後述により明らかとなるが、コアユニット７０は、当該コアユニット７０から見た画像を撮像する撮像情報演算部７４を備えている。また、撮像情報演算部７４の撮像対象の一例として、モニタ２の表示画面近傍に２つのＬＥＤモジュール８Ｌおよび８Ｒが設置される。これらＬＥＤモジュール８Ｌおよび８Ｒは、それぞれモニタ２の前方に向かって赤外光を出力する。なお、本実施例では、コアユニット７０とサブユニット７６を屈曲自在なケーブルで接続したが、サブユニット７６に無線ユニットを搭載することで、接続ケーブル７９をなくすこともできる。例えば、無線ユニットとしてＢｌｕｅｔｏｏｔｈ（登録商標）ユニットをサブユニット７６に搭載することで、サブユニット７６からコアユニット７０へ操作データを送信することが可能になる。
【００５１】
次に、図２を参照して、ゲーム装置３の構成について説明する。なお、図２は、ゲーム装置３の機能ブロック図である。
【００５２】
図２において、ゲーム装置３は、各種プログラムを実行する例えばリスク（ＲＩＳＣ）ＣＰＵ（セントラルプロセッシングユニット）３０を備える。ＣＰＵ３０は、図示しないブートＲＯＭに記憶された起動プログラムを実行し、メインメモリ３３等のメモリの初期化等を行った後、光ディスク４に記憶されているゲームプログラムの実行し、そのゲームプログラムに応じたゲーム処理等を行うものである。ＣＰＵ３０には、メモリコントローラ３１を介して、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３２、メインメモリ３３、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）３４、およびＡＲＡＭ（Ａｕｄｉｏ  ＲＡＭ）３５が接続される。また、メモリコントローラ３１には、所定のバスを介して、コントローラＩ／Ｆ（インターフェース）３６、ビデオＩ／Ｆ３７、外部メモリＩ／Ｆ３８、オーディオＩ／Ｆ３９、およびディスクＩ／Ｆ４１が接続され、それぞれ受信ユニット６、モニタ２、外部メモリカード５、スピーカ２ａ、およびディスクドライブ４０が接続されている。
【００５３】
ＧＰＵ３２は、ＣＰＵ３０の命令に基づいて画像処理を行うものあり、例えば、３Ｄグラフィックスの表示に必要な計算処理を行う半導体チップで構成される。ＧＰＵ３２は、図示しない画像処理専用のメモリやメインメモリ３３の一部の記憶領域を用いて画像処理を行う。ＧＰＵ３２は、これらを用いてモニタ２に表示すべきゲーム画像データやムービ映像を生成し、適宜メモリコントローラ３１およびビデオＩ／Ｆ３７を介してモニタ２に出力する。
【００５４】
メインメモリ３３は、ＣＰＵ３０で使用される記憶領域であって、ＣＰＵ３０の処理に必要なゲームプログラム等を適宜記憶する。例えば、メインメモリ３３は、ＣＰＵ３０によって光ディスク４から読み出されたゲームプログラムや各種データ等を記憶する。このメインメモリ３３に記憶されたゲームプログラムや各種データ等がＣＰＵ３０によって実行される。
【００５５】
ＤＳＰ３４は、ゲームプログラム実行時にＣＰＵ３０において生成されるサウンドデータ等を処理するものであり、そのサウンドデータ等を記憶するためのＡＲＡＭ３５が接続される。ＡＲＡＭ３５は、ＤＳＰ３４が所定の処理（例えば、先読みしておいたゲームプログラムやサウンドデータの記憶）を行う際に用いられる。ＤＳＰ３４は、ＡＲＡＭ３５に記憶されたサウンドデータを読み出し、メモリコントローラ３１およびオーディオＩ／Ｆ３９を介してモニタ２に備えるスピーカ２ａに出力させる。
【００５６】
メモリコントローラ３１は、データ転送を統括的に制御するものであり、上述した各種Ｉ／Ｆが接続される。コントローラＩ／Ｆ３６は、例えば４つのコントローラＩ／Ｆ３６ａ〜３６ｄで構成され、それらが有するコネクタを介して嵌合可能な外部機器とゲーム装置３とを通信可能に接続する。例えば、受信ユニット６は、上記コネクタと嵌合し、コントローラＩ／Ｆ３６を介してゲーム装置３と接続される。上述したように受信ユニット６は、コントローラ７からの送信データを受信し、コントローラＩ／Ｆ３６を介して当該送信データをＣＰＵ３０へ出力する。ビデオＩ／Ｆ３７には、モニタ２が接続される。外部メモリＩ／Ｆ３８には、外部メモリカード５が接続され、その外部メモリカード５に設けられたバックアップメモリ等とアクセス可能となる。オーディオＩ／Ｆ３９にはモニタ２に内蔵されるスピーカ２ａが接続され、ＤＳＰ３４がＡＲＡＭ３５から読み出したサウンドデータやディスクドライブ４０から直接出力されるサウンドデータをスピーカ２ａから出力可能に接続される。ディスクＩ／Ｆ４１には、ディスクドライブ４０が接続される。ディスクドライブ４０は、所定の読み出し位置に配置された光ディスク４に記憶されたデータを読み出し、ゲーム装置３のバスやオーディオＩ／Ｆ３９に出力する。
【００５７】
次に、図３および図４を参照して、コントローラ７について説明する。なお、図３は、コントローラ７の外観構成を示す斜視図である。図４は、図３のコントローラ７の接続ケーブル７９をコアユニット７０から脱着する状態を示す斜視図である。
【００５８】
図３において、コントローラ７は、コアユニット７０とサブユニット７６とが接続ケーブル７９で接続されて構成されている。コアユニット７０は、ハウジング７１を有しており、当該ハウジング７１に複数の操作部７２が設けられている。一方、サブユニット７６は、ハウジング７７を有しており、当該ハウジング７７に複数の操作部７８が設けられている。そして、コアユニット７０とサブユニット７６とは、接続ケーブル７９によって接続されている。
【００５９】
図４において、接続ケーブル７９の一方端にはコアユニット７０のコネクタ７３に着脱自在なコネクタ７９１が設けられており、接続ケーブル７９の他方端は固定的にサブユニット７６と接続されている。そして、接続ケーブル７９のコネクタ７９１は、コアユニット７０の後面に設けられたコネクタ７３と嵌合し、コアユニット７０とサブユニット７６とが当該接続ケーブル７９を介して接続される。
【００６０】
図５および図６を参照して、コアユニット７０について説明する。なお、図５は、コアユニット７０の上面後方から見た斜視図である。図６は、コアユニット７０を下面後方から見た斜視図である。
【００６１】
図５および図６において、コアユニット７０は、例えばプラスチック成型によって形成されたハウジング７１を有している。ハウジング７１は、その前後方向を長手方向とした略直方体形状を有しており、全体として大人や子供の片手で把持可能な大きさである。
【００６２】
ハウジング７１上面の中央前面側に、十字キー７２ａが設けられる。この十字キー７２ａは、十字型の４方向プッシュスイッチであり、矢印で示す４つの方向（前後左右）に対応する操作部分が十字の突出片にそれぞれ９０°間隔で配置される。プレイヤが十字キー７２ａのいずれかの操作部分を押下することによって前後左右いずれかの方向を選択される。例えばプレイヤが十字キー７２ａを操作することによって、仮想ゲーム世界に登場するプレイヤキャラクタ等の移動方向を指示したり、カーソルの移動方向を指示したりすることができる。
【００６３】
なお、十字キー７２ａは、上述したプレイヤの方向入力操作に応じて操作信号を出力する操作部であるが、他の態様の操作部でもかまわない。例えば、リング状に４方向の操作部分を備えたプッシュスイッチとその中央に設けられたセンタスイッチとを複合した複合スイッチを上記十字キー７２ａの代わりに設けてもかまわない。また、ハウジング７１上面から突出した傾倒可能なスティックを倒すことによって、傾倒方向に応じて操作信号を出力する操作部を上記十字キー７２ａの代わりに設けてもかまわない。さらに、水平移動可能な円盤状部材をスライドさせることによって、当該スライド方向に応じた操作信号を出力する操作部を、上記十字キー７２ａの代わりに設けてもかまわない。また、タッチパッドを、上記十字キー７２ａの代わりに設けてもかまわない。また、少なくとも４つの方向（前後左右）をそれぞれ示すスイッチに対して、プレイヤによって押下されたスイッチに応じて操作信号を出力する操作部を上記十字キー７２ａの代わりに設けてもかまわない。
【００６４】
ハウジング７１上面の十字キー７２ａより後面側に、複数の操作ボタン７２ｂ〜７２ｇが設けられる。操作ボタン７２ｂ〜７２ｇは、プレイヤがボタン頭部を押下することによって、それぞれの操作ボタン７２ｂ〜７２ｇに割り当てられた操作信号を出力する操作部である。例えば、操作ボタン７２ｂ〜７２ｄには、Ｘボタン、Ｙボタン、およびＢボタン等としての機能が割り当てられる。また、操作ボタン７２ｅ〜７２ｇには、セレクトスイッチ、メニュースイッチ、およびスタートスイッチ等としての機能が割り当てられる。これら操作ボタン７２ｂ〜７２ｇは、ゲーム装置３が実行するゲームプログラムに応じてそれぞれの機能が割り当てられるが、本発明の説明とは直接関連しないため詳細な説明を省略する。なお、図５に示した配置例では、操作ボタン７２ｂ〜７２ｄは、ハウジング７１上面の中央前後方向に沿って並設されている。また、操作ボタン７２ｅ〜７２ｇは、ハウジング７１上面の左右方向に沿って操作ボタン７２ｂおよび７２ｄの間に並設されている。そして、操作ボタン７２ｆは、その上面がハウジング７１の上面に埋没しており、プレイヤが不意に誤って押下することのないタイプのボタンである。
【００６５】
また、ハウジング７１上面の十字キー７２ａより前面側に、操作ボタン７２ｈが設けられる。操作ボタン７２ｈは、遠隔からゲーム装置３本体の電源をオン／オフする電源スイッチである。この操作ボタン７２ｈも、その上面がハウジング７１の上面に埋没しており、プレイヤが不意に誤って押下することのないタイプのボタンである。
【００６６】
また、ハウジング７１上面の操作ボタン７２ｃより後面側に、複数のＬＥＤ７０２が設けられる。ここで、コントローラ７は、他のコントローラ７と区別するためにコントローラ種別（番号）が設けられている。例えば、ＬＥＤ７０２は、コントローラ７に現在設定されている上記コントローラ種別をプレイヤに通知するために用いられる。具体的には、コアユニット７０から受信ユニット６へ送信データを送信する際、上記コントローラ種別に応じて複数のＬＥＤ７０２のうち、種別に対応するＬＥＤが点灯する。
【００６７】
一方、ハウジング７１下面には、凹部が形成されている。後述で明らかとなるが、ハウジング７１下面の凹部は、プレイヤがコアユニット７０を把持したときに当該プレイヤの人差し指や中指が位置するような位置に形成される。そして、上記凹部の後面側傾斜面には、操作ボタン７２ｉが設けられる。操作ボタン７２ｉは、例えばＡボタンとして機能する操作部であり、シューティングゲームにおけるトリガスイッチや、プレイヤオブジェクトを所定オブジェクトに対して注目させる操作等に用いられる。
【００６８】
また、ハウジング７１前面には、撮像情報演算部７４の一部を構成する撮像素子７４３が設けられる。ここで、撮像情報演算部７４は、コアユニット７０が撮像した画像データを解析してその中で輝度が高い場所を判別してその場所の重心位置やサイズなどを検出するためのシステムであり、例えば、最大２００フレーム／秒程度のサンプリング周期であるため比較的高速なコアユニット７０の動きでも追跡して解析することができる。この撮像情報演算部７４の詳細な構成については、後述する。また、ハウジング７０の後面には、コネクタ７３が設けられている。コネクタ７３は、例えば３２ピンのエッジコネクタであり、接続ケーブル７９のコネクタ７９１と嵌合して接続するために利用される。
【００６９】
次に、図７を参照して、コアユニット７０の内部構造について説明する。なお、図７（ａ）は、コアユニット７０の上筐体（ハウジング７１の一部）を外した状態を示す斜視図である。図７（ｂ）は、コアユニット７０の下筐体（ハウジング７１の一部）を外した状態を示す斜視図である。ここで、図７（ｂ）に示す基板７００は、図７（ａ）に示す基板７００の裏面から見た斜視図となっている。
【００７０】
図７（ａ）において、ハウジング７１の内部には基板７００が固設されており、当該基板７００の上主面上に操作ボタン７２ａ〜７２ｈ、加速度センサ７０１、ＬＥＤ７０２、水晶振動子７０３、無線モジュール７５３、およびアンテナ７５４等が設けられる。そして、これらは、基板７００等に形成された配線（図示せず）によってマイコン７５１（図１４参照）に接続される。また、無線モジュール７５３およびアンテナ７５４によって、コアユニット７０がワイヤレスコントローラとして機能する。なお、水晶振動子７０３は、後述するマイコン７５１の基本クロックを生成する。
【００７１】
一方、図７（ｂ）において、基板７００の下主面上の前端縁に撮像情報演算部７４が設けられる。撮像情報演算部７４は、コアユニット７０の前方から順に赤外線フィルタ７４１、レンズ７４２、撮像素子７４３、および画像処理回路７４４によって構成されおり、それぞれ基板７００の下主面に取り付けられる。また、基板７００の下主面上の後端縁にコネクタ７３が取り付けられる。そして、操作ボタン７２ｉが撮像情報演算部７４の後方の基板７００の下主面上に取り付けられていて、それよりさらに後方に、電池７０５が収容される。電池７０５とコネクタ７３との間の基板７００の下主面上には、バイブレータ７０４が取り付けられる。このバイブレータ７０４は、例えば振動モータやソレノイドであってよい。バイブレータ７０４が作動することによってコアユニット７０に振動が発生するので、それを把持しているプレイヤの手にその振動が伝達され、いわゆる振動対応ゲームが実現できる。
【００７２】
図８および図９を参照して、サブユニット７６について説明する。なお、図８（ａ）はサブユニット７６の上面図であり、図８（ｂ）はサブユニット７６の下面図であり、図８（ｃ）はサブユニット７６の左側面図である。図９は、サブユニット７６の上面前方から見た斜視図である。
【００７３】
図８および図９において、サブユニット７６は、例えばプラスチック成型によって形成されたハウジング７７を有している。ハウジング７７は、その前後方向を長手方向とし、サブユニット７６において最太部となる頭部を前方に形成した流線型の立体形状を有しており、全体として大人や子供の片手で把持可能な大きさである。
【００７４】
ハウジング７７上面の上記最太部近傍に、スティック７８ａが設けられる。スティック７８ａは、ハウジング７７上面から突出した傾倒可能なスティックを倒すことによって、傾倒方向に応じて操作信号を出力する操作部である。例えば、プレイヤがスティック先端を３６０°任意の方向に傾倒することによって任意の方向や位置を指定することができ、仮想ゲーム世界に登場するプレイヤキャラクタ等の移動方向を指示したり、カーソルの移動方向を指示したりすることができる。
【００７５】
なお、スティック７８ａは、上述したプレイヤの方向入力操作に応じて操作信号を出力する操作部であるが、他の態様の操作部でもかまわない。以下、図１０〜図１３を参照して、方向入力操作に応じて操作信号を出力する操作部がサブユニット７６に設けられた第１〜第５の変形例を説明する。
【００７６】
第１の変形例として、図１０に示すように、コアユニット７０に設けられている十字キー７２ａと同様の十字キー７８ｆを、上記スティック７８ａの代わりにサブユニット７６に設けてもかまわない。第２の変形例として、図１１に示すように、水平移動可能な円盤状部材をスライドさせることによって、当該スライド方向に応じた操作信号を出力するスライドパッド７８ｇを、上記スティック７８ａの代わりにサブユニット７６に設けてもかまわない。第３の変形例として、図１２に示すように、タッチパッド７８ｈを、上記スティック７８ａの代わりにサブユニット７６に設けてもかまわない。第４の変形例として、図１３に示すように、少なくとも４つの方向（前後左右）をそれぞれ示すボタン７８ｉ〜７８ｌを設け、プレイヤによって押下されたボタン７８ｉ〜７８ｌに応じて操作信号を出力する操作部を上記スティック７８ａの代わりにサブユニット７６に設けてもかまわない。第５の変形例として、リング状に４方向の操作部分を備えたプッシュスイッチとその中央に設けられたセンタスイッチとを複合した複合スイッチを上記スティック７８ａの代わりにサブユニット７６に設けてもかまわない。
【００７７】
ハウジング７７上面のスティック７８ａより後面側およびハウジング７７の前面に、複数の操作ボタン７８ｂ〜７８ｅが設けられる。操作ボタン７８ｂ〜７８ｅは、プレイヤがボタン頭部を押下することによって、それぞれの操作ボタン７８ｂ〜７８ｅに割り当てられた操作信号を出力する操作部である。例えば、操作ボタン７８ｂ〜７８ｅには、ＸボタンおよびＹボタン等としての機能が割り当てられる。これら操作ボタン７８ｂ〜７８ｅは、ゲーム装置３が実行するゲームプログラムに応じてそれぞれの機能が割り当てられるが、本発明の説明とは直接関連しないため詳細な説明を省略する。なお、図８および図９に示した配置例では、操作ボタン７８ｂおよび７８ｃは、ハウジング７７上面の中央左右方向に沿って並設されている。また、操作ボタン７８ｄおよび７８ｅは、ハウジング７７前面の上下方向に沿って並設されている。
【００７８】
次に、図１４を参照して、コントローラ７の内部構成について説明する。なお、図１４は、コントローラ７の構成を示すブロック図である。
【００７９】
図１４において、コアユニット７０は、上述した操作部７２および撮像情報演算部７４の他に、その内部に通信部７５および加速度センサ７０１を備えている。
【００８０】
撮像情報演算部７４は、赤外線フィルタ７４１、レンズ７４２、撮像素子７４３、および画像処理回路７４４を含んでいる。赤外線フィルタ７４１は、コアユニット７０の前方から入射する光から赤外線のみを通過させる。レンズ７４２は、赤外線フィルタ７４１を透過した赤外線を集光して撮像素子７４３へ出射する。撮像素子７４３は、例えばＣＭＯＳセンサやあるいはＣＣＤのような固体撮像素子であり、レンズ７４２が集光した赤外線を撮像する。したがって、撮像素子７４３は、赤外線フィルタ７４１を通過した赤外線だけを撮像して画像データを生成する。撮像素子７４３で生成された画像データは、画像処理回路７４４で処理される。具体的には、画像処理回路７４４は、撮像素子７４３から得られた画像データを処理して高輝度部分を検知し、それらの位置座標や面積を検出した結果を示す処理結果データを通信部７５へ出力する。なお、これらの撮像情報演算部７４は、コアユニット７０のハウジング７１に固設されており、ハウジング７１自体の方向を変えることによってその撮像方向を変更することができる。しかしながら、ハウジング７１は、サブユニット７６とは屈曲自在な接続ケーブル７９によって接続されているため、サブユニット７６の方向や位置を変更しても撮像情報演算部７４の撮像方向が変化することはない。後述により明らかとなるが、この撮像情報演算部７４から出力される処理結果データに基づいて、コアユニット７０の位置や動きに応じた信号を得ることができる。
【００８１】
加速度センサ７０１は、コアユニット７０の上下方向、左右方向および前後方向の３軸でそれぞれ加速度を検知する加速度センサである。なお、加速度センサ７０１は、必要な操作信号の種類によっては、上下方向、左右方向の２軸でそれぞれ加速度を検出する加速度センサが用いられてもかまわない。加速度センサ７０１が検知した加速度を示すデータは、通信部７５へ出力される。なお、加速度センサ７０１は、典型的には静電容量式の加速度センサが用いられるが、他の方式の加速度センサやジャイロセンサを用いてもかまわない。この加速度センサ７０１から出力される加速度データに基づいて、コアユニット７０の動きを検出することができる。
【００８２】
通信部７５は、マイクロコンピュータ（Ｍｉｃｒｏ  Ｃｏｍｐｕｔｅｒ：マイコン）７５１、メモリ７５２、無線モジュール７５３、およびアンテナ７５４を含んでいる。マイコン７５１は、処理の際にメモリ７５２を記憶領域として用いながら、送信データを無線送信する無線モジュール７５３を制御する。
【００８３】
コアユニット７０に設けられた操作部７２からの操作信号（コアキーデータ）、加速度センサ７０１からの加速度信号（加速度データ）、および撮像情報演算部７４からの処理結果データは、マイコン７５１に出力される。また、接続ケーブル７９を介して、サブユニット７６に設けられた操作部７８からの操作信号（サブキーデータ）は、マイコン７５１に出力される。マイコン７５１は、入力した各データ（コアキーデータ、サブキーデータ、加速度データ、処理結果データ）を受信ユニット６へ送信する送信データとして一時的にメモリ７５２に格納する。ここで、通信部７５から受信ユニット６への無線送信は、所定の周期毎に行われるが、ゲームの処理は１／６０を単位として行われることが一般的であるので、それよりも短い周期で送信を行うことが必要となる。具体的には、ゲームの処理単位は１６．７ｍｓ（１／６０秒）であり、ブルートゥースで構成される通信部７５の送信間隔は５ｍｓである。マイコン７５１は、受信ユニット６への送信タイミングが到来すると、メモリ７５２に格納されている送信データを一連の操作情報として出力し、無線モジュール７５３へ出力する。そして、無線モジュール７５３は、例えばＢｌｕｅｔｏｏｔｈ（ブルートゥース；登録商標）の技術を用いて、所定周波数の搬送波を用いて操作情報をその電波信号としてアンテナ７５４から放射する。つまり、コアユニット７０に設けられた操作部７２からのコアキーデータ、サブユニット７６に設けられた操作部７８からのサブキーデータ、加速度センサ７０１からの加速度データ、および撮像情報演算部７４からの処理結果データがコアユニット７０から送信される。そして、ゲーム装置３の受信ユニット６でその電波信号を受信し、ゲーム装置３で当該電波信号を復調や復号することによって、一連の操作情報（コアキーデータ、サブキーデータ、加速度データおよび処理結果データ）を取得する。そして、ゲーム装置３のＣＰＵ３０は、取得した操作情報とゲームプログラムとに基づいて、ゲーム処理を行う。なお、Ｂｌｕｅｔｏｏｔｈ（登録商標）の技術を用いて通信部７５を構成する場合、通信部７５は、他のデバイスから無線送信された送信データを受信する機能も備えることができる。なお、加速度データ及び／又は処理結果データは、第１操作データの一例であり、サブキーデータは第２操作データの一例である。
【００８４】
図１５に示すように、ゲームシステム１でコントローラ７を用いてゲームをプレイするためには、プレイヤは、一方の手（例えば右手）でコアユニット７０を把持し（図１６および図１７参照）、他方の手（例えば左手）でサブユニット７６を把持する（図１９参照）。そして、プレイヤは、コアユニット７０の前面（撮像情報演算部７４が撮像する光の入射口側）がモニタ２に向くようにコアユニット７０を把持する。一方、モニタ２の表示画面近傍には、２つのＬＥＤモジュール８Ｌおよび８Ｒが設置される。これらＬＥＤモジュール８Ｌおよび８Ｒは、それぞれモニタ２の前方に向かって赤外光を出力する。
【００８５】
プレイヤがその前面がモニタ２に向くようにコアユニット７０を把持することによって、撮像情報演算部７４には２つのＬＥＤモジュール８Ｌおよび８Ｒが出力した赤外光が入射する。そして、赤外線フィルタ７４１およびレンズ７４２を介して、入射した赤外光を撮像素子７４３が撮像し、当該撮像画像を画像処理回路７４４が処理する。ここで、撮像情報演算部７４では、ＬＥＤモジュール８Ｌおよび８Ｒから出力される赤外線成分を検出することで、上記撮像画像における当該ＬＥＤモジュール８Ｌおよび８Ｒの位置（対象画像の位置）や面積情報を取得する。具体的には、画像処理回路７４４は、撮像素子７４３が撮像した画像データを解析して、まず面積情報からＬＥＤモジュール８Ｌおよび８Ｒからの赤外光ではあり得ない画像を除外し、さらに輝度が高い点をＬＥＤモジュール８Ｌおよび８Ｒそれぞれの位置として判別する。そして、撮像情報演算部７４は、判別されたそれらの輝点の重心位置等の位置情報を取得し、上記処理結果データとして出力する。ここで、上記処理結果データである位置情報は、撮像画像における所定の基準点（例えば、撮像画像の中央や左上隅）を原点とした座標値として出力するものでもよく、所定のタイミングにおける輝点位置を基準点として、当該基準位置からの現在の輝点位置の差をベクトルとして出力するものでもよい。つまり、上記対象画像の位置情報は、撮像素子７４３が撮像した撮像画像に対して所定の基準点を設定した場合に、当該基準点に対する差として用いられるパラメータである。このような処理結果データをゲーム装置３へ送信することによって、ゲーム装置３では、基準からの上記位置情報の差に基づいて、ＬＥＤモジュール８Ｌおよび８Ｒに対する撮像情報演算部７４すなわちコアユニット７０の動き、姿勢、位置等に応じた信号の変化量を得ることができる。具体的には、コアユニット７０が動かされることによって、通信部７５から送信される画像内の高輝度点の位置が変化するため、高輝度点の位置の変化に対応させた方向入力や座標入力を行うことで、コアユニット７０の移動方向に沿った方向入力や座標入力を行うことができる。なお、後述するゲーム処理動作例では、撮像情報演算部７４が撮像画像におけるＬＥＤモジュール８Ｌおよび８Ｒの対象画像それぞれの重心位置の座標を取得し、上記処理結果データとして出力する例を用いる。
【００８６】
このように、コアユニット７０の撮像情報演算部７４によって、固定的に設置されたマーカ（実施例では、２つのＬＥＤモジュール８Ｌおよび８Ｒからの赤外光）を撮像することによって、ゲーム装置３におけるゲーム処理において、コアユニット７０から出力されるデータを処理することによって、コントローラの動き、姿勢、位置等に対応した操作が可能となり、ボタンを押下するような操作ボタンや操作キーとは異なった直感的な操作入力となる。また、上述したように上記マーカは、モニタ２の表示画面近傍に設置されているため、マーカに対する位置をモニタ２の表示画面に対するコアユニット７０の動き、姿勢、位置等に換算することも容易に行うことができる。つまり、コアユニット７０の動き、姿勢、位置等による処理結果データは、モニタ２の表示画面に直接作用する操作入力として用いることができる。
【００８７】
図１６および図１７を参照して、プレイヤがコアユニット７０を一方の手で把持した状態について説明する。なお、図１６は、プレイヤがコアユニット７０を右手で把持した状態をコアユニット７０の前面側から見た一例である。図１７は、プレイヤがコアユニット７０を右手で把持した状態をコアユニット７０の左側面側から見た一例である。
【００８８】
図１６および図１７に示すように、コアユニット７０は、全体として大人や子供の片手で把持可能な大きさである。そして、プレイヤの親指をコアユニット７０の上面（例えば、十字キー７２ａ付近）に添え、プレイヤの人差し指をコアユニット７０下面の凹部（例えば、操作ボタン７２ｉ付近）に添えたとき、コアユニット７０の前面に設けられている撮像情報演算部７４の光入射口がプレイヤの前方方向に露出する。なお、このようなコアユニット７０に対する把持状態は、プレイヤの左手であっても同様に行えることは言うまでもない。
【００８９】
このように、コアユニット７０は、プレイヤが片手で把持した状態で十字キー７２ａや操作ボタン７２ｉ等の操作部７２を容易に操作することができる。さらに、プレイヤがコアユニット７０を片手で把持したとき、当該コアユニット７０の前面に設けられている撮像情報演算部７４の光入射口が露出するため、上述した２つのＬＥＤモジュール８Ｌおよび８Ｒからの赤外光を容易に当該光入射口から取り入れることができる。つまり、プレイヤは、コアユニット７０が有する撮像情報演算部７４の機能を阻害することなくコアユニット７０を片手で把持することができる。つまり、プレイヤがコアユニット７０を把持した手を表示画面に対して動かすことによって、コアユニット７０は、プレイヤの手の運動が表示画面に直接作用する操作入力をさらに備えることができる。
【００９０】
ここで、図１８に示すように、ＬＥＤモジュール８Ｌおよび８Ｒは、それぞれ視野角θ１を有している。また、撮像素子７４３は、視野角θ２を有している。例えば、ＬＥＤモジュール８Ｌおよび８Ｒの視野角θ１は共に３４°（半値角）であり、撮像素子７４３の視野角θ２は４１°である。そして、撮像素子７４３の視野角θ２の中にＬＥＤモジュール８Ｌおよび８Ｒが共に存在し、ＬＥＤモジュール８Ｌの視野角θ１の中でかつＬＥＤモジュール８Ｒの視野角θ１の中に撮像素子７４３が存在するとき、ゲーム装置３は、２つのＬＥＤモジュール８Ｌおよび８Ｒによる高輝度点に関する位置データを用いてコアユニット７０の位置を検出する。
【００９１】
一方、撮像素子７４３の視野角θ２の中に１つのＬＥＤモジュール８Ｌまたは８Ｒだけが存在するとき、またはＬＥＤモジュール８Ｌの視野角θ１およびＬＥＤモジュール８Ｒの視野角θ１の何れか一方の中に撮像素子７４３が存在するとき、２つのＬＥＤモジュール８Ｌおよび８Ｒの何れか一方だけによる高輝度点に関する位置データを用いてコアユニット７０の位置を検出する。
【００９２】
次に、図１９を参照して、プレイヤがサブユニット７６を一方の手で把持した状態について説明する。なお、図１９は、プレイヤがサブユニット７６を左手で把持した状態をサブユニット７６の右側面側から見た一例である。
【００９３】
図１９に示すように、サブユニット７６は、全体として大人や子供の片手で把持可能な大きさである。例えば、プレイヤの親指をサブユニット７６の上面（例えば、スティック７８ａ付近）に添え、プレイヤの人差し指をサブユニット７６前面（例えば、操作ボタン７８ｄおよび７８ｅ付近）に添え、プレイヤの中指、薬指、および小指をサブユニット７６下面に添えるように、サブユニット７６を把持することが可能である。なお、このようなサブユニット７６に対する把持状態は、プレイヤの右手であっても同様に行えることは言うまでもない。このように、サブユニット７６は、プレイヤが片手で把持した状態でスティック７８ａや操作ボタン７８ｄおよび７８ｅ等の操作部７８を容易に操作することができる。
【００９４】
次に、ゲームシステム１において行われるゲーム処理の詳細を説明する。まず、図２０を参照して、ゲーム処理において用いられる主なデータについて説明する。なお、図２０は、ゲーム装置３のメインメモリ３３に記憶される主なデータを示す図である。
【００９５】
図２０に示すように、メインメモリ３３には、操作情報Ｄａ、操作状態情報Ｄｂ、および操作対象情報Ｄｃ等が記憶される。なお、メインメモリ３３には、図２０に示す情報に含まれるデータの他、ゲームに登場するプレイヤキャラクタに関するデータ（プレイヤキャラクタの画像データや位置データ等）やゲーム空間に関するデータ（地形データ等）等、ゲーム処理に必要なデータが記憶される。
【００９６】
操作情報Ｄａは、コントローラ７から送信データとして送信されてくる一連の操作情報であり、最新の操作情報に更新される。操作情報Ｄａには、上述の処理結果データに相当する第１座標データＤａ１および第２座標データＤａ２が含まれる。第１座標データＤａ１は、撮像素子７４３が撮像した撮像画像に対して、２つのマーカ（ＬＥＤモジュール８Ｌおよび８Ｒ）のうちの一方の画像の位置（撮像画像内における位置）を表す座標のデータである。第２座標データＤａ２は、他方のマーカの画像の位置（撮像画像内における位置）を表す座標のデータである。例えば、マーカの画像の位置は、撮像画像におけるｘｙ座標系によって表される。
【００９７】
また、操作情報Ｄａには、撮像画像から得られる処理結果データの一例の座標データ（第１座標データＤａ１および第２座標データＤａ２）の他、操作部７８から得られるサブキーデータＤａ３、操作部７２から得られるコアキーデータＤａ４、および加速度センサ７０１から得られる加速度データＤａ５等が含まれる。なお、ゲーム装置３に備える受信ユニット６は、コントローラ７から所定間隔例えば５ｍｓごとに送信される操作情報Ｄａを受信し、受信ユニットに備える図示しないバッファに蓄えられる。その後、ゲーム処理間隔である例えば１フレーム毎（１／６０秒）に読み出され、その最新の情報がメインメモリ３３に記憶される。
【００９８】
操作状態情報Ｄｂは、コントローラ７の操作状態を撮像画像に基づいて判断した情報である。操作状態情報Ｄｂは、撮像画像に含まれる対象画像（マーカ）の位置や向きを示すデータであり、具体的には方向データＤｂ１および中点データＤｂ２を含む。方向データＤｂ１は、第１座標データＤａ１から第２座標データＤａ２への方向を示すデータである。ここでは、方向データＤｂ１は、第１座標データＤａ１の位置を始点とし第２座標データＤａ２の位置を終点とするベクトルのデータとする。中点データＤｂ２は、第１座標データＤａ１と第２座標データＤａ２との中点の座標を示す。ここで、２つのマーカ（ＬＥＤモジュール８Ｌおよび８Ｒ）の画像を１つの対象画像としてみた場合、中点データＤｂ２は、対象画像の位置を示すことになる。
【００９９】
操作対象情報Ｄｃは、画面上またはゲーム空間内における操作対象の姿勢および位置や指示位置を示す情報である。ここで、操作対象とは、画面に表示されているオブジェクトや、仮想ゲーム空間に登場するオブジェクトの他、３次元の仮想ゲーム空間が構築される場合には、当該仮想ゲーム空間を画面に表示するための仮想カメラであってもよい。また、操作対象情報Ｄｃには、姿勢データＤｃ１、対象位置データＤｃ２、および指示位置データＤｃ３が含まれる。姿勢データＤｃ１は、操作対象の姿勢を示すデータである。対象位置データＤｃ２は、操作対象のゲーム空間における位置、または、画面上における位置を示すデータである。指示位置データＤｃ３は、第１座標データＤａ１および第２座標データＤａ２から得られるコアユニット７０によって指し示されるモニタ２の画面上の位置を示すデータである。
【０１００】
次に、図２１を参照して、ゲーム装置３において行われるゲーム処理の詳細を説明する。なお、図２１は、ゲーム装置３において実行されるゲーム処理の流れを示すフローチャートである。ゲーム装置３の電源が投入されると、ゲーム装置３のＣＰＵ３０は、図示しないブートＲＯＭに記憶されている起動プログラムを実行し、これによってメインメモリ３３等の各ユニットが初期化される。そして、光ディスク４に記憶されたゲームプログラムがメインメモリ３３に読み込まれ、ＣＰＵ３０によって当該ゲームプログラムの実行が開始される。図２１に示すフローチャートは、以上の処理が完了した後に行われるゲーム処理を示すフローチャートである。なお、図２１に示すフローチャートにおいては、ゲーム処理のうち、コントローラ７に関するゲーム操作に基づいて行われるゲーム処理について説明し、本願発明と直接関連しない他のゲーム処理については詳細な説明を省略する。また、図２１では、ＣＰＵ３０が実行する各ステップを「Ｓ」と略称する。
【０１０１】
図２１において、ＣＰＵ３０は、コントローラ７から受信した操作情報を取得し（ステップ５１）、処理を次のステップに進める。そして、ＣＰＵ３０は、操作情報を操作情報Ｄａとしてメインメモリ３３に記憶する。ここで、ステップ５１で取得される操作情報には、ＬＥＤモジュール８Ｌおよび８Ｒの撮像画像内における位置を示す座標データ（第１座標データＤａ１および第２座標データＤａ２）の他、コアユニット７０の操作部７２やサブユニット７６の操作部７８がどのように操作されたか示すデータ（サブキーデータＤａ３およびコアキーデータＤａ４）、および、加速度センサ７０１が検出した加速度を示すデータ（加速度データＤａ５）が含まれている。ここでは、通信部７５は、所定の時間間隔例えば５ｍｓ間隔で操作情報をゲーム装置３へ送信する。そして、ＣＰＵ３０は、１フレーム毎に操作情報を利用するものとする。したがって、図２１に示すステップ５１〜ステップ５８の処理ループは、１フレーム毎に繰り返し実行される。
【０１０２】
次に、ＣＰＵ３０は、操作状態情報を算出し（ステップ５２）、処理を次のステップに進める。操作状態情報の算出処理においては、コントローラ７から送信され記憶された第１座標データＤａ１および第２座標データＤａ２に基づいて、コアユニット７０の操作状態（コアユニット７０の動き、位置、姿勢等）が算出される。
【０１０３】
上記ステップ５２において、ＣＰＵ３０は、第１座標データＤａ１から第２座標データＤａ２への方向データＤｂ１を算出する。具体的には、ＣＰＵ３０は、第１座標データＤａ１および第２座標データＤａ２を参照して、第１座標データＤａ１の位置を始点とし第２座標データＤａ２の位置を終点とするベクトルを算出する。そして、ＣＰＵ３０は、算出されたベクトルのデータを、方向データＤｂ１としてメインメモリ３３に記憶する。方向データＤｂ１と所定の基準方向との差によって、コアユニット７０の撮像面に垂直な方向を軸とする回転を算出することができる。
【０１０４】
また、ＣＰＵ３０は、第１座標データＤａ１と第２座標データＤａ２との中点を示す中点データＤｂ２を算出する。具体的には、ＣＰＵ３０は、第１座標データＤａ１および第２座標データＤａ２を参照して、当該中点の座標を算出する。そして、ＣＰＵ３０は、算出された中点の座標のデータを、中点データＤｂ２としてメインメモリ３３に記憶する。ここで、中点データＤｂ２は、撮像画像内における対象画像（ＬＥＤモジュール８Ｌおよび８Ｒ）の位置を示している。中点データＤｂ２と所定の基準位置との差によって、コアユニット７０の位置の変化による画像位置の変化を算出することができる。
【０１０５】
次に、ＣＰＵ３０は、指示位置データを算出し（ステップ５３）、処理を次のステップに進める。ＣＰＵ３０は、上記ステップ５２で算出した方向データＤｂ１および中点データＤｂ２を用いて、指示位置データＤｃ３が算出される。
【０１０６】
例えば、モニタ２の上面に２つのＬＥＤモジュール８Ｌおよび８Ｒを設置し（図１５参照）、上面が上方向を向いたコアユニット７０を用いてプレイヤがモニタ２の画面の中央を指し示した場合（撮像情報演算部７４の撮像画像の中央に画面中央が撮像されている状態）を考える。このとき、撮像情報演算部７４の撮像画像において、対象画像の中点（ＬＥＤモジュール８Ｌおよび８Ｒの中点）位置と指示位置（画面中央）とが一致しない。具体的には、上記撮像画像における対象画像の位置は撮像画像の中心から上方の位置となる。このような位置に対象画像が位置する場合に、画面中央を指示するという基準位置の設定がなされていれば、コアユニット７０の移動に対応して、撮像画像中の対象画像の位置も移動する（移動方向は逆方向となる）ので、撮像画像中の対象画像の位置の移動に対応させて画面内の指示位置を移動させる処理を行い、コアユニット７０の移動方向に対応した画面内の位置を指示することができる。ここで、基準位置の設定は、上記のようにあらかじめユーザが画面の所定位置を支持し、そのときの対象画像の位置を基準となる指示位置と対応させて記憶しておくようにしてもよいし、対象画像と画面との位置関係が固定的であれば、あらかじめ設定されていても良い。このような指示位置は、中点データＤｂ２からモニタ２の画面上の座標（指示位置データＤｃ３）を算出する関数を用いて算出される。この関数は、ある撮像画像から算出される中点座標の値を、当該撮像画像が撮像される時のコアユニット７０によって指し示される画面上の位置（指示位置）を表す座標に変換するものである。この関数によって、中点座標から画面上の指示位置を算出することができる。なお、中点座標をゲーム空間内における位置を表す座標に変換する場合には、上記関数によって算出される画面上の位置を、当該画面上における位置に対応するゲーム空間内における位置にさらに変換すればよい。なお、画面上における位置に対応するゲーム空間内における位置とは、画面上における位置に表示されるゲーム空間内における位置である。
【０１０７】
しかしながら、上面が上方向以外（例えば、右方向）を向いたコアユニット７０を用いてプレイヤがモニタ２の画面の中央を指し示した場合、上記撮像画像における対象画像の位置は撮像画像の中心から上方以外（例えば、左方）の方向にずれた位置となる。つまり、コアユニット７０の傾きによって、コアユニット７０の移動方向と、画面内での指示位置の移動方向が一致しないことになる。そこで、方向データＤｂ１に基づいて、中点データＤｂ２を補正する。具体的には、ステップ５２で算出された中点データＤｂ２を、コアユニット７０の上面が上方向を向いた状態であるとした場合における中点座標に補正する。より具体的には、上記基準位置の設定の際には方向データの基準も設定され、ステップ５２で算出された中点データＤｂ２を、方向データＤｂ１と当該基準方向との角度差に応じた量だけ、撮像画像の中心を軸として中点データＤｂ２が示す座標を回転移動させて補正する。そして、補正された中点データＤｂ２を用いて上述したように指示位置データＤｃ３を算出する。
【０１０８】
次に、ＣＰＵ３０は、コントローラ７によって操作される操作対象を設定し（ステップ５４）、処理を次のステップに進める。ＣＰＵ３０は、コントローラ７に設けられた各操作部、撮像情報演算部７４、センサ等に対して、それぞれの操作対象を設定する。
【０１０９】
一例として、操作対象は、ゲーム進行やプレイヤの操作に応じて適宜変更される。例えば、コアユニット７０に設けられた撮像情報演算部７４からの信号による操作対象を、上記指示位置を変換した仮想ゲーム世界内における位置に存在するオブジェクトとする。また、モニタ２に複数の選択肢からプレイヤの選択を促すメニュー画面を表示するとき、撮像情報演算部７４からの信号による操作対象を、上記指示位置に表示されている選択肢とする。また、サブユニット７６に設けられたスティック７８ａの操作対象を、仮想ゲーム世界に登場するオブジェクトのうち、現在モニタ２に表示されている何れかのオブジェクトとする。
【０１１０】
他の例として、操作対象は、固定的に設定される。例えば、サブユニット７６に設けられたスティック７８ａの操作対象を、仮想ゲーム空間に登場するプレイヤキャラクタに固定する。また、コアユニット７０に設けられた撮像情報演算部７４からの信号による操作対象を、モニタ２に表示されるカーソル（例えば、照準カーソル）や仮想ゲーム空間を画面に表示するための仮想カメラに固定する。なお、操作対象が固定的に設定される場合、処理ループ毎に繰り返し設定することが不要であるため、ステップ５４は、ゲーム処理の初期設定においてのみ実行してもかまわない。
【０１１１】
次に、ＣＰＵ３０は、操作対象に対する処理を行う（ステップ５５）。そして、ＣＰＵ３０は、ステップ５５で処理を行わなかった他の操作情報Ｄａに応じた処理を行い（ステップ５６）、処理を次のステップに進める。ステップ５５において、ＣＰＵ３０は、ステップ５４で設定した操作対象に対して、操作情報Ｄａに応じた処理を行い、姿勢データＤｃ１や対象位置データＤｃ２を更新する。例えば、スティック７８ａの操作対象がプレイヤキャラクタや仮想カメラである場合、当該スティック７８ａのサブキーデータＤａ３に応じて、プレイヤキャラクタの位置を移動させたり、仮想カメラの位置を移動させたり、仮想カメラの方向を変化させたりする。また、コアユニット７０に設けられた撮像情報演算部７４の操作対象が照準カーソル、仮想カメラ、メニュー画面である場合、照準カーソルの位置を移動させたり、仮想カメラの方向を変化させたり、メニュー画面から選択肢を選択したりする。なお、操作情報Ｄａに応じた処理の具体例については、後述する。
【０１１２】
次に、ＣＰＵ３０は、表示処理を行い（ステップ５７）、処理を次のステップに進める。ＣＰＵ３０は、メインメモリ３３に記憶されている操作対象情報Ｄｃやゲーム画像の生成に必要なデータ（プレイヤキャラクタの画像および位置データや地形データ等）を参照し、ゲーム画像を生成する。そして、ＣＰＵ３０は、生成した画像をモニタ２の画面に表示させる。
【０１１３】
次に、ＣＰＵ３０は、ゲームを終了するか否かを判断する（ステップ５８）。ゲームを終了する条件としては、例えば、ゲームオーバーとなる条件（例えば、プレイヤキャラクタの体力を示すパラメータが０になったこと等）が満たされたことや、プレイヤがゲームを終了する操作を行ったこと等がある。ＣＰＵ３０は、ゲームを終了しない場合に上記ステップ５１に戻って処理を繰り返し、ゲームを終了する場合に当該フローチャートによる処理を終了する。
【０１１４】
このように、コアユニット７０の撮像情報演算部７４によって固定的に設置されたマーカ（実施例では、２つのＬＥＤモジュール８Ｌおよび８Ｒからの赤外光）を撮像することによって、当該マーカに対するコアユニット７０の位置に応じた直感的な操作装置としての機能を実現することができる。つまり、ゲーム装置３におけるゲーム処理において、コアユニット７０の位置をプレイヤの操作に応じた操作データとして用いることによって、ボタンを押下するような操作ボタンや操作キーとは異なった操作入力となる。また、上述したように上記マーカは、モニタ２の表示画面近傍に設置されているため、マーカに対する位置をモニタ２の表示画面に対するコアユニット７０の位置に換算することも容易に行うことができる。つまり、コアユニット７０の位置や姿勢による操作データは、モニタ２の表示画面に直接作用する操作入力として用いることができる。
【０１１５】
ここで、上述したコントローラ７を用いてゲーム操作するゲーム例について説明する。第１の例は、コントローラ７を用いてゲーム操作するシューティングゲームである。なお、図２２は、第１の例として、ゲーム装置３がシューティングゲームを実行する際にモニタ２に表示されるゲーム画像例を示す図である。
【０１１６】
図２２において、モニタ２の表示画面には３次元の仮想ゲーム空間Ｓの一部が表示されている。そして、コントローラ７の操作に応じて動作するゲームオブジェクトとして、表示画面には、プレイヤキャラクタＰの一部および当該プレイヤキャラクタＰが所持するガンＧの一部が表示されている。また、表示画面に表示される仮想ゲーム空間Ｓは、プレイヤキャラクタＰの前方となる視界が表現され、図２２の一例では敵キャラクタＥがシューティング目標として表示されている。そして、プレイヤキャラクタＰがガンＧで射撃した場合の照準が、照準カーソルＴとして表示画面に表示される。
【０１１７】
このようなゲーム画像がモニタ２に表示されるシューティングゲームにおいて、プレイヤは、一方の手でコアユニット７０を他方の手でサブユニット７６を操作して（図１５参照）ゲームを進行する。そして、サブユニット７６に設けられたスティック７８ａの操作対象がプレイヤキャラクタＰに固定されている。また、コアユニット７０に設けられた撮像情報演算部７４の操作対象が照準カーソルＴに固定されている。このように操作対象を設定すると、プレイヤがサブユニット７６に設けられたスティック７８ａを傾倒することによって、当該傾倒方向に応じて仮想ゲーム空間Ｓ内をプレイヤキャラクタＰが移動する。また、プレイヤがコアユニット７０を把持した手を表示画面に対して動かすことによって、当該モニタ２（ＬＥＤモジュール８Ｌおよび８Ｒ）に対する指示位置が設定され、当該指示位置へ照準カーソルＴが移動する。そして、プレイヤがコアユニット７０に設けられた操作ボタン７２ｉ（図６参照）を押下することによって、プレイヤキャラクタＰが所持するガンＧが照準カーソルＴの位置に対応した仮想３次元空間位置に向かって射撃を行い、射撃位置に敵キャラクタＥが存在する場合には、敵キャラクタＥがダメージを受ける、破壊される等の処理が行われる。
【０１１８】
つまり、プレイヤは、サブユニット７６に設けられたスティック７８ａをプレイヤキャラクタＰの移動指示に用いながら、コアユニット７０をあたかもシューティングゲームのガンのように用いることができるため、シューティングゲームの興趣が一層増す。また、モニタ２の画面に対してコアユニット７０で指し示す位置を移動させる方向と照準カーソルＴが移動する方向とが同じであるため、プレイヤが直感的に操作方向を理解しやすい。そして、プレイヤキャラクタＰを移動させる操作と照準カーソルＴを移動させる操作とがそれぞれ別の手で把持されたユニットを用いて行われるため、プレイヤの操作動作がそれぞれ独立した思考で行える。例えば、プレイヤキャラクタＰの移動に応じて表示画面に表示される仮想ゲーム空間Ｓが移り変わっていくため、仮想ゲーム空間Ｓ内におけるプレイヤが注目する位置付近（例えば、物陰から飛び出してくる敵キャラクタＥに注目）に照準を常に位置させることが難しいことがある。しかしながら、一方の手の動作（例えば左手の親指）でプレイヤキャラクタＰを移動させながら、コアユニット７０で指し示す位置が上記注目位置となるように他方の腕の動作（例えば、右腕）で調整できるため、コントローラ７自体の操作の自由度が著しく向上し、臨場感のあるシューティングゲームを実現できる。また、プレイヤが行うプレイヤキャラクタＰを移動させる方向指示操作と照準カーソルＴを移動させる方向指示操作とが互いに影響し合うことがないため、プレイヤは安定した２つの方向指示操作を行うことができる。つまり、コントローラ７を用いることによって、プレイヤの左右の手が自由になると同時に、物理的に１つのコントローラでは操作できなかった自由度の高い新たな操作が可能になる。また、利き手に応じて２つのユニットを使い分けることも可能となる。
【０１１９】
図２３を参照して、上述したコントローラ７を用いてゲーム操作する第２の例について説明する。なお、図２３は、第２の例としてゲーム装置３がゲーム画像を作成する際の仮想カメラＣの状態を示す図である。
【０１２０】
図２３において、仮想カメラＣから見たゲームフィールドＦの画像がゲーム画像として作成される。そして、上記第１の例と同様に、プレイヤが一方の手でコアユニット７０を他方の手でサブユニット７６を操作してゲームを進行する。そして、サブユニット７６に設けられたスティック７８ａの操作対象がプレイヤキャラクタＰに固定されている。また、コアユニット７０に設けられた撮像情報演算部７４の操作対象が仮想カメラＣに固定されている。このように操作対象を設定すると、プレイヤがサブユニット７６に設けられたスティック７８ａを傾倒することによって、当該傾倒方向に応じてゲームフィールドＦ上をプレイヤキャラクタＰが移動する。また、プレイヤがコアユニット７０を把持した手を表示画面に対して動かすことによって、当該モニタ２の画面に対する指示位置Ｐ１が設定される。そして、画面上の指示位置Ｐ１を、当該画面上における位置に対応するゲーム空間内における位置Ｐ２にさらに変換する。このとき、仮想カメラＣは、その注視点が位置Ｐ２に追従するように撮像方向を図示ａ方向へ変化させる。つまり、プレイヤがコアユニット７０を把持した手を表示画面に対して動かすことによって、当該モニタ２を指し示す位置に追従して仮想カメラＣの注視点が移動する。この場合、コアユニット７０の操作によって、画面の表示状態が変わってしまうため、仮想３次元空間内における指示位置も移動してしまうことになる。したがって、コアユニット７０によって仮想カメラＣを操作する場合には、他の操作キー等の操作と組み合わせ、キーを押した瞬間に指示されていた位置に注視点が向かうようにカメラを移動するという処理を行う。また、指示位置そのものを注視点とするのではなく、キーを押し続けている間の指示位置の移動量を算出し、当該移動量に応じて注視点が移動するようにカメラを移動させるという処理を行うようにしてもよい。
【０１２１】
このような操作によって、プレイヤは、サブユニット７６に設けられたスティック７８ａをプレイヤキャラクタＰの移動指示に用いながら、コアユニット７０を向けたゲームフィールドＦの位置を注視することができる。また、画面中央に常にシューティングの照準が設定されているゲーム等では、第２の例の操作によってコアユニット７０が指し示す位置に照準が追従することになる。さらに、従来、プレイヤキャラクタＰの向きを変えるためには、スティック等の操作部を倒し続ける必要があり、素早く方向転換ができない。また、スティックを傾倒する方向と画面内の方向との関係がプレイヤによって異なるため、プレイヤの好みに応じた方向設定が可能となるリバースモードを設ける必要がある。しかしながら、第２の例では、仮想カメラＣの注視点が常にプレイヤキャラクタＰが注目する位置に設定されるゲーム等において、コアユニット７０の動きに応じた操作入力によって注視点が移動する速度を調整すれば、必要に応じてプレイヤキャラクタＰの素早い方向転換が可能となり、直感的な入力であるためリバースモードが不要となる。
【０１２２】
次に、図２４を参照して、上述したコントローラ７を用いてゲーム操作する第３の例について説明する。第３の例は、コントローラ７を用いてゲーム操作するロールプレイングゲームである。なお、図２４は、第３の例として、ゲーム装置３がロールプレイングゲームを実行する際にモニタ２に表示されるゲーム画像例を示す図である。
【０１２３】
図２４において、モニタ２の表示画面には３次元の仮想ゲーム空間Ｓの一部が表示されている。そして、コントローラ７の操作に応じて動作するゲームオブジェクトとして、表示画面には、プレイヤキャラクタＰおよびメニューＭが表示されている。メニューＭは、プレイヤキャラクタＰが仮想ゲーム空間Ｓ内で行動する複数の選択肢Ｍ１〜Ｍ７が記述されており、複数の選択肢Ｍ１〜Ｍ７からプレイヤの選択を促すメニュー画面である。
【０１２４】
このようなゲーム画像がモニタ２に表示されるロールプレイングゲームにおいて、上記第１の例と同様に、プレイヤが一方の手でコアユニット７０を他方の手でサブユニット７６を操作してゲームを進行する。そして、サブユニット７６に設けられたスティック７８ａの操作対象がプレイヤキャラクタＰに固定されている。また、コアユニット７０に設けられた撮像情報演算部７４の操作対象が現在の指示位置に応じた選択肢Ｍ１〜Ｍ７の何れかに設定される。このように操作対象を設定すると、プレイヤがサブユニット７６に設けられたスティック７８ａを傾倒することによって、当該傾倒方向に応じて仮想ゲーム空間Ｓ内をプレイヤキャラクタＰが移動する。また、プレイヤがコアユニット７０を把持した手を表示画面に対して動かすことによって当該モニタ２に対する指示位置が設定され、当該指示位置に表示されている選択肢Ｍ１〜Ｍ７の何れか（図２４では、選択肢Ｍ１）に対して選択カーソルＣｓが表示される。そして、プレイヤがコアユニット７０に設けられた操作ボタン７２ｉを押下することによって、現在選択されている選択肢Ｍ１〜Ｍ７の何れか（つまり、選択カーソルＣｓが表示されている選択肢）がプレイヤキャラクタＰの行動として決定される。
【０１２５】
このような操作によって、プレイヤは、サブユニット７６に設けられたスティック７８ａをプレイヤキャラクタＰの移動指示に用いながら、複数の選択肢Ｍ１〜Ｍ７からコアユニット７０で指し示してメニューを選択することができる。従来のゲーム操作では、コントローラによるメニュー選択に時間を要し、しかも方向キー等による入力が必要とするため、リアルタイムでゲームが進行するゲームの場合、メニューの選択肢を選択している間にプレイヤキャラクタの操作ができずに操作を失敗することがある。しかしながら、第３の例では、一方の手でキャラクタの操作を行い、他方の手で直接的に項目の選択ができるので、時間的なロスが少なく快適な操作ができる。
【０１２６】
なお、上述した第１〜第３の例は、本発明を実現することによって大きな効果が得られるゲーム例に過ぎず、本発明がこれらのゲームに限定されないことは言うまでもない。例えば、コアユニット７０によって指し示されることによって設定される指示位置に対応するゲーム空間内における位置へ、プレイヤキャラクタや他のゲームオブジェクトを移動させてもかまわない。
【０１２７】
なお、上述した説明では、コントローラ７とゲーム装置３とが無線通信によって接続された態様を用いたが、コントローラ７とゲーム装置３とがケーブルを介して電気的に接続されてもかまわない。この場合、コアユニット７０に接続されたケーブルをゲーム装置３の接続端子に接続する。
【０１２８】
また、コントローラ７を構成するコアユニット７０およびサブユニット７６のうち、コアユニット７０のみに通信部７５を設けたが、サブユニット７６に受信ユニット６へ送信データを無線送信する通信部を設けてもかまわない。また、コアユニット７０およびサブユニット７６それぞれに上記通信部を設けてもかまわない。例えば、コアユニット７０およびサブユニット７６に設けられた通信部がそれぞれ受信ユニット６へ送信データを無線送信してもいいし、サブユニット７６の通信部からコアユニット７０へ送信データを無線送信してコアユニット７０の通信部７５で受信した後、コアユニット７０の通信部７５がサブユニット７６の送信データと共にコアユニット７０の送信データを受信ユニット６へ無線送信してもいい。これらの場合、コアユニット７０とサブユニット７６とを電気的に接続する接続ケーブル７９が不要となり、２つのユニットが完全に分離されるため、２人で操作することが可能となる。
【０１２９】
また、コントローラ７から無線送信される送信データを受信する受信手段として、ゲーム装置３の接続端子に接続された受信ユニット６を用いて説明したが、ゲーム装置３の本体内部に設けられた受信モジュールによって当該受信手段を構成してもかまわない。この場合、受信モジュールが受信した送信データは、所定のバスを介してＣＰＵ３０に出力される。
【０１３０】
また、コアユニット７０本体の動きに応じて変化する信号（処理結果データ）を出力する検知部の一例として、撮像情報演算部７４をコアユニット７０に内蔵して説明したが、他の機構でもかまわない。例えば、コアユニット７０は、上述したように加速度センサ７０１を内蔵しており、ジャイロセンサが用いられていることもあり得る。加速度センサやジャイロセンサは、コアユニット７０の動きや姿勢を検出することが可能であり、これらの検出信号を用いればコアユニット７０本体の動きに応じて変化する信号を出力する検知部として用いることができる。この場合、コアユニット７０に内蔵された撮像情報演算部７４を排除してもよいし、センサと撮像情報演算部の両者を組み合わせる構成としてもよい。
【０１３１】
また、撮像情報演算部７４をコアユニット７０のみに設けたが、サブユニット７６にも同様の撮像情報演算部を設け、双方のユニットでコントローラの移動に応じた直感的な操作を行うようにしてもよい。この場合、より自由度の高い入力操作が可能となる。また、上述した実施例では、コアユニット７０とサブユニット７６を１つのコントローラとして説明したが、サブユニット７６の代わりにコアユニット７０と同じ機能を備えた代替品でもよく例えばコアユニット７０そのものを用いてもよい。この場合、コアユニット７０を２つ利用することになり、コアユニット７０を１つのコントローラと考えると２つのコントローラを利用していることになる。コアユニット７０にはゲーム装置と通信するための通信部を備えるので、各コアユニット７０がゲーム装置と通信し、ゲーム装置側では一方のコアユニット７０から受け取った操作データと、他方のコアユニット７０から受け取った操作データとに基づいてゲーム処理が行われる。
【０１３２】
また、撮像素子７４３で撮像した画像データを解析してＬＥＤモジュール８Ｌおよび８Ｒからの赤外光の位置座標やそれらの重心座標等を取得し、それらを処理結果データとしてコアユニット７０内で生成してゲーム装置３へ送信する態様を説明したが、他の処理段階のデータをコアユニット７０からゲーム装置３へ送信してもかまわない。例えば、撮像素子７４３が撮像した画像データをコアユニット７０からゲーム装置３へ送信し、ＣＰＵ３０において上記解析処理を行って処理結果データを取得してもかまわない。この場合、コアユニット７０に設けられた画像処理回路７４４が不要となる。また、上記画像データの解析途中のデータをコアユニット７０からゲーム装置３へ送信してもかまわない。例えば、画像データから得られる輝度、位置、および面積等を示すデータをコアユニット７０からゲーム装置３へ送信し、ＣＰＵ３０において残りの解析処理を行って処理結果データを取得してもかまわない。
【０１３３】
また、上述した説明では、２つのＬＥＤモジュール８Ｌおよび８Ｒからの赤外光を、コアユニット７０の撮像情報演算部７４の撮像対象としたが、他のものを撮像対象にしてもかまわない。例えば、１つまたは３つ以上のＬＥＤモジュールをモニタ２の近傍に設置し、それらのＬＥＤモジュールからの赤外光を撮像情報演算部７４の撮像対象としてもかまわない。また、モニタ２の表示画面自体や他の発光体（室内灯等）を撮像情報演算部７４の撮像対象としてもかまわない。撮像対象とモニタ２の表示画面との配置関係に基づいて、当該表示画面に対するコアユニット７０の位置を演算すれば、様々な発光体を撮像情報演算部７４の撮像対象として用いることができる。
【０１３４】
また、上述したコアユニット７０およびサブユニット７６の形状や、それらに設けられている操作部７２および７８の形状、数、および設置位置等は、単なる一例に過ぎず他の形状、数、および設置位置であっても、本発明を実現できることは言うまでもない。また、コアユニット７０における撮像情報演算部７４の位置（撮像情報演算部７４の光入射口）は、ハウジング７１の前面でなくてもよく、ハウジング７１の外部から光を取り入れることができれば他の面に設けられてもかまわない。
【０１３５】
このように、本発明のコントローラは、コアユニット７０およびサブユニット７６を共に操作に用いて、ゲームを楽しむことができる。ここで、コアユニット７０は、撮像情報演算部７４や加速度センサ７０１等のユニット本体の動きに応じた信号を出力する機能を有しており、サブユニット７６は、プレイヤの方向入力操作に応じた信号を出力する機能を有している。例えば、コアユニット７０とサブユニット７６とが合体して一体となったコントローラを仮定した場合、ユニット本体の動きに応じた信号を出力するためには全体を動かすことが必要となり、方向入力操作に影響を与えてしまう。また、その逆の影響も生じてしまう。つまり、コアユニット７０とサブユニット７６とを合体させると、分離することにより実現していた自由度が著しく損なわれてしまう。したがって、コアユニット７０およびサブユニット７６は、従来のゲーム機用コントローラを単に左右に分離できるように構成しただけでなく、プレイヤの左右の手が自由になると同時に合体型では操作できなかった新たな操作が可能となっている。また、コントローラ自体の操作の自由度が著しく向上しているため、臨場感のあるゲーム操作を実現できる。
【産業上の利用可能性】
【０１３６】
本発明に係るゲームシステムおよびゲームプログラムは、自由度の高い操作を実現することができ、１人のプレイヤが物理的に分離したユニットを把持して操作するゲームシステムおよびゲームプログラム等として有用である。
【符号の説明】
【０１３７】
１…ゲームシステム
２…モニタ
２ｂ…スピーカ
３…ゲーム装置
３０…ＣＰＵ
３１…メモリコントローラ
３２…ＧＰＵ
３３…メインメモリ
３４…ＤＳＰ
３５…ＡＲＡＭ
３６…コントローラＩ／Ｆ
３７…ビデオＩ／Ｆ
３８…外部メモリＩ／Ｆ
３９…オーディオＩ／Ｆ
４０…ディスクドライブ
４１…ディスクＩ／Ｆ
４…光ディスク
５…外部メモリカード
６…受信ユニット
７…コントローラ
７０…コアユニット
７１、７７…ハウジング
７２、７８…操作部
７３、７９１…コネクタ
７４…撮像情報演算部
７４１…赤外線フィルタ
７４２…レンズ
７４３…撮像素子
７４４…画像処理回路
７５…通信部
７５１…マイコン
７５２…メモリ
７５３…無線モジュール
７５４…アンテナ
７００…基板
７０１…加速度センサ
７０２…ＬＥＤ
７０３…水晶振動子
７０４…バイブレータ
７０５…電池
７６…サブユニット
７９…接続ケーブル
８…ＬＥＤモジュール
【図１】
2011183205.tif 000003
【図２】
2011183205.tif 000004
【図３】
2011183205.tif 000005
【図４】
2011183205.tif 000006
【図５】
2011183205.tif 000007
【図６】
2011183205.tif 000008
【図７】
2011183205.tif 000009
【図８】
2011183205.tif 000010
【図９】
2011183205.tif 000011
【図１０】
2011183205.tif 000012
【図１１】
2011183205.tif 000013
【図１２】
2011183205.tif 000014
【図１３】
2011183205.tif 000015
【図１４】
2011183205.tif 000016
【図１５】
2011183205.tif 000017
【図１６】
2011183205.tif 000018
【図１７】
2011183205.tif 000019
【図１８】
2011183205.tif 000020
【図１９】
2011183205.tif 000021
【図２０】
2011183205.tif 000022
【図２１】
2011183205.tif 000023
【図２２】
2011183205.tif 000024
【図２３】
2011183205.tif 000025
【図２４】
2011183205.tif 000026