(57)【要約】      （修正有）【課題】  コントローラを共用する場合であっても、プレイヤの名称を含むメッセージが出力されるので、円滑にゲームを楽しむことができるものを提供する。【解決手段】  ビデオゲーム装置１２はＣＰＵ３６を含み、ＣＰＵ３６は複数のコントローラ２２から送信される入力データに従ってゲームを進行する。各コントローラ２２は、複数のプレイヤが共用し、順番に使用する。各プレイヤは自身のアバタとしてのキャラクタを予め選択する。或るプレイヤ（名称：××さん）の順番が来ると、「××さんに交代してくだい！」と、交代を促す音声のメッセージをコントローラ２２のスピーカから出力する。同様に、当該プレイヤが次の順番であり、１つ手前のプレイヤがプレイを終えようとするとき、「××さん、準備してください。」と、準備を促す音声のメッセージを出力する。    【選択図】  図２
2008067731.tif 000002
【特許請求の範囲】
【請求項１】
音声メッセージ信号に従う音声メッセージを出力するスピーカを備えるコントローラを複数のプレイヤが交代で使用してゲームをプレイするゲーム装置のコンピュータにおいて実行されるゲームプログラムであって、
前記コントローラを使用する複数のプレイヤの名称を当該コントローラに対応づけて記憶する名称記憶ステップ、
各プレイヤのゲームの進行状況に関する状況データを記憶する状況記憶ステップ、
前記状況記憶ステップによって記憶された状況データが所定の状態を示すとき、当該状況データに対応するプレイヤの名称を含んだ音声メッセージ信号を前記名称記憶ステップによって記憶されたプレイヤの名称を用いて作成するメッセージ作成ステップ、および
前記メッセージ作成ステップによって作成された音声メッセージ信号を前記コントローラへ送信するメッセージ送信ステップを前記コンピュータに実行させる、ゲームプログラム。
【請求項２】
複数のコントローラを備え、
前記名称記憶ステップは、前記複数のコントローラの各々を使用する複数のプレイヤの名称を各コントローラに対応づけて記憶し、
前記メッセージ送信ステップは、前記メッセージ作成ステップによって作成された音声メッセージ信号を前記所定の状態を示す状況データに対応するプレイヤが使用するコントローラへ送信する、請求項１記載のゲームプログラム。
【請求項３】
前記所定の状態は、同一プレイヤのプレイ時間が一定時間を超えた第１状態を含む、請求項１または２記載のゲームプログラム。
【請求項４】
前記所定の状態は、次のプレイヤの交代時期が迫った第２状態を含む、請求項１ないし３のいずれかに記載のゲームプログラム。
【請求項５】
前記所定の状態は、次のプレイヤの交代時期になった第３状態を含む、請求項１ないし４のいずれかに記載のゲームプログラム。
【請求項６】
音声メッセージ信号に従う音声メッセージを出力するスピーカを備えるコントローラを複数のプレイヤが交代で使用してゲームをプレイするゲーム装置であって、
前記コントローラを使用する複数のプレイヤの名称を当該コントローラに対応づけて記憶手段に記憶する名称記憶手段、
各プレイヤのゲームの進行状況に関する状況データを前記記憶手段に記憶する状況記憶手段、
前記状況記憶手段によって記憶された状況データが所定の状態を示すとき、当該状況データに対応するプレイヤの名称を含んだ音声メッセージ信号を前記名称記憶手段によって記憶されたプレイヤの名称を用いて作成するメッセージ作成手段、および
前記メッセージ作成手段によって作成された音声メッセージ信号を前記コントローラへ送信するメッセージ送信手段を備え、
前記コントローラは、前記メッセージ送信手段によって送信された音声メッセージ信号を受信して当該音声メッセージ信号に従う音声メッセージを前記スピーカから出力する、ゲーム装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明はゲームプログラムおよびゲーム装置に関し、特にたとえば、スピーカを備えるコントローラを複数のプレイヤが交代で使用してゲームをプレイするための、ゲームプログラムおよびゲーム装置に関する。
【背景技術】
【０００２】
従来のこの種のゲーム装置の一例が特許文献１に開示される。この特許文献１のゲームシステムによれば、据置型ゲーム装置には、複数の携帯型ゲーム装置が接続されるとともに、モニタが接続される。据置型ゲーム装置では、ターン制ゲームが実行され、そのゲーム画面はモニタに表示される。ターン制ゲームの順番を待つプレイヤは、携帯型ゲーム装置を用いて個人ゲームをプレイし、そのゲーム画面は携帯型ゲーム装置のＬＣＤに表示される。ターン告知があると、該当する携帯型ゲーム装置を使用するプレイヤは、ターン制ゲームの操作を行う。
【特許文献１】特開２００５−２４５９２７
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかし、特許文献１に記載のゲームシステムでは、プレイヤに対して、携帯型ゲーム装置を通してメッセージまたは音或いはその両方で、ターン告知を行うようにしてあるため、１つのコントローラを複数のプレイヤで共用しようとすると、いずれのプレイヤに対する告知であるかを知ることができず、ゲームを円滑にプレイすることができないという問題があった。
【０００４】
それゆえに、この発明の主たる目的は、新規な、ゲームプログラムおよびゲーム装置を提供することである。
【０００５】
また、この発明の他の目的は、複数のプレイヤがコントローラを共用する場合であっても円滑にゲームを楽しむことができる、ゲームプログラムおよびゲーム装置を提供することである。
【課題を解決するための手段】
【０００６】
本発明は、上記の課題を解決するために、以下の構成を採用した。なお、括弧内の参照符号および補足説明等は、本発明の理解を助けるために後述する実施の形態との対応関係を示したものであって、本発明を何ら限定するものではない。
【０００７】
請求項１の発明は、音声メッセージ信号に従う音声メッセージを出力するスピーカを備えるコントローラを複数のプレイヤが交代で使用してゲームをプレイするゲーム装置のコンピュータにおいて実行されるゲームプログラムであって、名称記憶ステップ、状況記憶ステップ、メッセージ作成ステップ、およびメッセージ送信ステップをコンピュータに実行させる、ゲームプログラムである。名称記憶ステップは、コントローラを使用する複数のプレイヤの名称を当該コントローラに対応づけて記憶する。状況記憶ステップは、各プレイヤのゲームの進行状況に関する状況データを記憶する。メッセージ作成ステップは、状況記憶ステップによって記憶された状況データが所定の状態を示すとき、当該状況データに対応するプレイヤの名称を含んだ音声メッセージ信号を名称記憶ステップによって記憶されたプレイヤの名称を用いて作成する。そして、メッセージ送信ステップは、メッセージ作成ステップによって作成された音声メッセージ信号をコントローラへ送信する。
【０００８】
請求項１の発明では、ゲーム装置（１２）は、音声メッセージ信号に従う音声メッセージを出力するスピーカ（８６）を備えるコントローラ（２２）を複数のプレイヤが交代で使用してゲームをプレイすることができる。このゲーム装置のコンピュータにおいて実行されるゲームプログラムは、名称記憶ステップ（３６，４０，９２ｇ，Ｓ２９）、状況記憶ステップ（３６，４０，９４，９６，９８，Ｓ５９，Ｓ６１，Ｓ１２３）、メッセージ作成ステップ（３６，Ｓ８９，Ｓ１０５，Ｓ１２１）、およびメッセージ送信ステップ（３６，Ｓ９１）をコンピュータに実行させる。名称記憶ステップは、コントローラを使用する複数のプレイヤの名称を当該コントローラに対応づけて記憶する。ただし、プレイヤの名称は、プレイヤの名前のみならず、プレイヤがアバタとして選択したゲーム上のキャラクタの名称を含む。状況記憶ステップは、各プレイヤのゲームの進行状況に関する状況データを記憶する。たとえば、コントローラを使用する複数のプレイヤが交代で所定数の問題を回答するようなゲームの場合には、或るプレイヤが１問に費やす時間やプレイヤの順番が記憶されるのである。メッセージ作成ステップは、状況記憶ステップによって記憶された状況データが所定の状態を示すとき、当該状況データに対応するプレイヤの名称を含んだ音声メッセージ信号を名称記憶ステップによって記憶されたプレイヤの名称を用いて作成する。そして、メッセージ送信ステップは、メッセージ作成ステップによって作成された音声メッセージ信号をコントローラに送信する。したがって、コントローラは、音声メッセージ信号を受信して、これに従う音声メッセージをスピーカから出力する。つまり、音声メッセージが該当するプレイヤに告知される。
【０００９】
請求項１の発明によれば、プレイヤの名称を含む音声メッセージをコントローラから出力するので、コントローラを複数のプレイヤで共用する場合であっても、どのプレイヤに対する音声メッセージであるかを容易に知ることができる。このため、円滑にゲームを楽しむことができる。
【００１０】
請求項２の発明は請求項１に従属し、複数のコントローラを備え、名称記憶ステップは、複数のコントローラの各々を使用する複数のプレイヤの名称を各コントローラに対応づけて記憶し、メッセージ送信ステップは、メッセージ作成ステップによって作成された音声メッセージ信号を所定の状態を示す状況データに対応するプレイヤが使用するコントローラへ送信する。
【００１１】
請求項２の発明では、ゲーム装置には、複数のコントローラが接続される。このため、名称記憶ステップは、複数のコントローラの各々を使用する複数のプレイヤの名称を各コントローラに対応づけて記憶する。したがって、メッセージ送信ステップは、メッセージ作成ステップによって作成された音声メッセージ信号を所定の状態を示す状況データに対応するプレイヤが使用するコントローラへ送信する。つまり、音声のメッセージを伝達すべきプレイヤに対して音声のメッセージが告知されるのである。
【００１２】
請求項２の発明によれば、複数のコントローラの各々を複数のプレイヤが使用する場合であっても、適切に音声メッセージを伝達することができる。
【００１３】
請求項３の発明は請求項１または２に従属し、所定の状態は、同一プレイヤのプレイ時間が一定時間を超えた第１状態を含む。
【００１４】
請求項３の発明では、状況データが同一プレイヤのプレイ時間が一定時間を超えた第１状態を示すとき、たとえば、当該プレイヤを励ます（急かす）ような内容の音声メッセージ信号を作成し、当該プレイヤが使用中のコントローラに送信する。
【００１５】
請求項３によれば、プレイヤのゲームの進行状況に応じた音声メッセージを、当該プレイヤに適切に告知することができる。
【００１６】
請求項４の発明は請求項１ないし３のいずれかに従属し、所定の状態は、次のプレイヤの交代時期が迫った第２状態を含む。
【００１７】
請求項４の発明では、状況データが次のプレイヤの交代時期が迫った第２状態を示すとき、たとえば、次のプレイヤにゲームの準備を促すような内容の音声メッセージ信号を作成し、当該プレイヤが使用するコントローラに送信する。
【００１８】
請求項４の発明においても、請求項３の発明と同様に、プレイヤのゲームの進行状況に応じた音声メッセージを、当該プレイヤに適切に告知することができる。
【００１９】
請求項５の発明は請求項１ないし４のいずれかに従属し、所定の状態は、次のプレイヤの交代時期になった第３状態を含む。
【００２０】
請求項５の発明では、状況データが次のプレイヤの交代時期になった第３状態を示すとき、たとえば、次のプレイヤに交代を促すような内容の音声メッセージ信号を作成し、当該プレイヤが使用するコントローラに送信する。
【００２１】
請求項５の発明においても、請求項３の発明と同様に、プレイヤのゲームの進行状況に応じた音声メッセージを、当該プレイヤに適切に告知することができる。
【００２２】
請求項６の発明は、音声メッセージ信号に従う音声メッセージを出力するスピーカを備えるコントローラを複数のプレイヤが交代で使用してゲームをプレイするゲーム装置であって、名称記憶手段、状況記憶手段、メッセージ作成手段、およびメッセージ送信手段を備える。名称記憶手段は、コントローラを使用する複数のプレイヤの名称を当該コントローラに対応づけて記憶手段に記憶する。状況記憶手段は、各プレイヤのゲームの進行状況に関する状況データを記憶手段に記憶する。メッセージ作成手段は、状況記憶手段によって記憶された状況データが所定の状態を示すとき、当該状況データに対応するプレイヤの名称を含んだ音声メッセージ信号を名称記憶手段によって記憶されたプレイヤの名称を用いて作成する。そして、メッセージ送信手段は、メッセージ作成手段によって作成された音声メッセージ信号をコントローラへ送信する。コントローラは、メッセージ送信手段によって送信された音声メッセージ信号を受信して当該音声メッセージ信号に従う音声メッセージをスピーカから出力する。
【００２３】
請求項６の発明においても、請求項１の発明と同様に、円滑にゲームを楽しむことができる。
【発明の効果】
【００２４】
この発明によれば、プレイヤの名称を含む音声メッセージをコントローラから出力するので、コントローラを複数のプレイヤで共用する場合であっても、円滑にゲームを楽しむことができる。
【００２５】
この発明の上述の目的，その他の目的，特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【発明を実施するための最良の形態】
【００２６】
図１を参照して、この発明の一実施例であるゲームシステム１０は、ビデオゲーム装置１２およびコントローラ２２を含む。なお、この実施例では、ビデオゲーム装置１２は、最大４つのコントローラ２２と通信可能に設計されている。また、ビデオゲーム装置１２と各コントローラ２２とは、無線によって接続される。たとえば、無線通信は、Ｂｌｕｅｔｏｏｔｈ（登録商標）規格に従って実行されるが、赤外線や無線ＬＡＮなど他の規格に従って実行されてもよい。
【００２７】
なお、この実施例では、ビデオゲーム装置１２とコントローラ２２との間では無線通信を実行するため、本来的には「接続」の用語を用いるべきではない。しかしながら、ビデオゲーム装置１２とコントローラ２２との間での通信可能な連係状態を表す用語として、有線通信の場合の用語を借りて、便宜上「接続」と表現することとする。
【００２８】
ビデオゲーム装置１２は、略直方体のハウジング１４を含み、ハウジング１４の前面にはディスクスロット１６が設けられる。ディスクスロット１６から、ゲームプログラム等を記憶した情報記憶媒体の一例である光ディスク１８（図２参照）が挿入されて、ハウジング１４内のディスクドライブ６８（図２参照）に装着される。
【００２９】
また、ビデオゲーム装置１２のハウジング１４の前面であり、ディスクスロット１６の近傍には、メモリカードスロットカバー２８が設けられる。このメモリカードスロットカバー２８の内側には、メモリカードスロット（図示せず）が設けられ、外部メモリカード（以下、単に「メモリカード」という。）３０（図２参照）が挿入される。メモリカード３０は、光ディスク１８から読み出したゲームプログラム等をローディングして一時的に記憶したり、このゲームシステム１０を利用してプレイしたゲームのゲームデータ（ゲームの結果データまたは途中データ）を保存（セーブ）しておいたりするために利用される。ただし、上記のゲームデータの保存は、メモリカード３０に対して行うことに代えて、たとえばビデオゲーム装置１２の内部にフラッシュメモリ等の内部メモリを設けて、当該内部メモリに対して保存を行うようにしてもよい。
【００３０】
ビデオゲーム装置１２のハウジング１４の後面には、ＡＶケーブルコネクタ（図示せず）が設けられ、そのコネクタを用いて、ＡＶケーブル３２ａを通してビデオゲーム装置１２にモニタ３４を接続する。このモニタ３４は典型的にはカラーテレビジョン受像機であり、ＡＶケーブル３２ａは、ビデオゲーム装置１２からの映像信号をカラーテレビのビデオ入力端子に入力し、音声信号を音声入力端子に入力する。したがって、カラーテレビ（モニタ）３４の画面上にたとえば３次元（３Ｄ）ビデオゲームのゲーム画像が表示され、左右のスピーカ３４ａからゲーム音楽や効果音などのステレオゲーム音声が出力される。
【００３１】
また、モニタ３４の周辺（この実施例では、上側）には、センサバー３４ｂが設けられ、このセンサバー３４ｂには、２つのＬＥＤモジュール（以下、「マーカ」という。）３４０ｍ，３４０ｎが設けられる。マーカ３４０ｍ，３４０ｎは、赤外ＬＥＤであり、それぞれモニタ３４の前方に向けて赤外光を出力する。センサバー３４ｂから延びるケーブル３２ｂはビデオゲーム装置１２の後面のコネクタ（図示せず）に接続され、ビデオゲーム装置１２からマーカ３４０ｍ，３４０ｎに電源が与えられる。
【００３２】
なお、ビデオゲーム装置１２の電源は、一般的なＡＣアダプタ（図示せず）によって与えられる。ＡＣアダプタは家庭用の標準的な壁ソケットに差し込まれ、ビデオゲーム装置１２は、家庭用電源（商用電源）を、駆動に適した低いＤＣ電圧信号に変換する。他の実施例では、電源としてバッテリが用いられてもよい。
【００３３】
このゲームシステム１０において、ユーザまたはプレイヤがゲーム（または他のアプリケーション）をプレイするために、ユーザはまずビデオゲーム装置１２の電源をオンし、次いで、ユーザはビデオゲーム（もしくはプレイしたいと思う他のアプリケーション）をストアしている適宜の光ディスク１８を選択し、その光ディスク１８をビデオゲーム装置１２のディスクスロット１６を通してディスクドライブ６８にローディングする。応じて、ビデオゲーム装置１２がその光ディスク１８にストアされているソフトウェアに基づいてビデオゲームもしくは他のアプリケーションを実行し始めるようにする。ユーザはビデオゲーム装置１２に入力を与えるためにコントローラ２２を操作する。
【００３４】
図２は図１実施例のビデオゲームシステム１０の電気的な構成を示すブロック図である。ビデオゲーム装置１２には、ＣＰＵ３６が設けられる。このＣＰＵ３６は、ビデオゲーム装置１２の全体的な制御を担当する。ＣＰＵ３６は、ゲームプロセサとして機能し、このＣＰＵ３６には、バスを介して、メモリコントローラ３８が接続される。メモリコントローラ３８は主として、ＣＰＵ３６の制御の下で、バスを介して接続されるメインメモリ４０の書込みや読出しを制御する。このメモリコントローラ３８にはＧＰＵ(Graphics Processing Unit) ４２が接続される。
【００３５】
ＧＰＵ４２は、描画手段の一部を形成し、たとえばシングルチップＡＳＩＣで構成され、メモリコントローラ３８を介してＣＰＵ３６からのグラフィクスコマンド(作画命令)を受け、そのコマンドに従って、ジオメトリユニット４４およびレンダリングユニット４６によって３Ｄのゲーム画像を生成する。つまり、ジオメトリユニット４４は、３次元座標系の各種オブジェクト（複数のポリゴンで構成されている。そして、ポリゴンとは少なくとも３つの頂点座標によって定義される多角形平面をいう。）の回転，移動，変形等の座標演算処理を行う。レンダリングユニット４６は、各種オブジェクトの各ポリゴンにテクスチャ（模様画像）を貼り付けるなどの画像生成処理を施す。したがって、ＧＰＵ４２によって、ゲーム画面上に表示すべき３次元画像データが作成され、その画像データがフレームバッファ４８内に記憶される。
【００３６】
なお、ＧＰＵ４２が作画コマンドを実行するにあたって必要なデータ（プリミティブまたはポリゴンやテクスチャ等）は、ＧＰＵ４２がメモリコントローラ３８を介して、メインメモリ４０から入手する。
【００３７】
フレームバッファ４８は、たとえばラスタスキャンモニタ３４の１フレーム分の画像データを描画（蓄積）しておくためのメモリであり、ＧＰＵ４２によって１フレーム毎に書き換えられる。具体的には、フレームバッファ４８は、１画素（ピクセル）毎に、画像の色情報を順序立てて記憶している。ここで、色情報は、Ｒ，Ｇ，Ｂ，Ａについてのデータであり、たとえば、８ビットのＲ（赤）データ、８ビットのＧ（緑）データ、８ビットのＢ（青）データおよび８ビットのＡ（アルファ）データである。なお、Ａデータは、マスク（マット画像）についてのデータである。後述のビデオＩ／Ｆ５８がメモリコントローラ３８を介してフレームバッファ４８のデータを読み出すことによって、モニタ３４の画面上に３次元ゲーム画像が表示される。
【００３８】
また、Ｚバッファ５０は、フレームバッファ４８に対応する画素数×１画素当たりの奥行きデータのビット数に相当する記憶容量を有し、フレームバッファ４８の各記憶位置に対応するドットの奥行き情報または奥行きデータ（Ｚ値）を記憶するものである。
【００３９】
なお、フレームバッファ４８およびＺバッファ５０は、ともにメインメモリ４０の一部を用いて構成されてもよく、また、これらはＧＰＵ４２の内部に設けられてもよい。
【００４０】
メモリコントローラ３８はまた、ＤＳＰ(Digital Signal Processor)５２を介して、オーディオ用のＲＡＭ（以下、「ＡＲＡＭ」という。）５４に接続される。したがって、メモリコントローラ３８は、メインメモリ４０だけでなく、サブメモリとしてのＡＲＡＭ５４の書込みおよび／または読出しを制御する。
【００４１】
ＤＳＰ５２は、サウンドプロセサとして働き、メインメモリ４０に記憶されたサウンドデータ（図示せず）を用いたり、ＡＲＡＭ５４に書き込まれている音波形（音色）データ（図示せず）を用いたりして、ゲームに必要な音、音声或いは音楽に対応するオーディオデータを生成する。
【００４２】
メモリコントローラ３８は、さらに、バスによって、各インタフェース（Ｉ／Ｆ）５６，５８，６０，６２および６４に接続される。コントローラＩ／Ｆ５６は、ビデオゲーム装置１２にＢｌｕｅｔｏｏｔｈ通信ユニット６６を介して接続されるコントローラ２２のためのインタフェースである。具体的に言うと、Ｂｌｕｅｔｏｏｔｈ通信ユニット６６は、コントローラ２２から送信される入力データを受信し、コントローラＩ／Ｆ５６は、その入力データを、メモリコントローラ３８を通してＣＰＵ３６に与える。ただし、この実施例では、入力データは、後述する、操作データ、加速度データおよびマーカ座標データの少なくとも１つを含む。また、Ｂｌｕｅｔｏｏｔｈ通信ユニット６６は、ＣＰＵ３６によって作成された音声データを、メインメモリ４０およびコントローラＩ／Ｆ５６を通して受信し、受信した音声データを送信すべきコントローラ２２に送信する。
【００４３】
なお、図２では、簡単のため、１台のコントローラ２２を示してあるが、図１を用いて説明したように、ビデオゲーム装置１２には、最大で４台のコントローラ２２が通信可能に接続される。
【００４４】
ビデオＩ／Ｆ５８は、フレームバッファ４８にアクセスし、ＧＰＵ４２で作成した画像データを読み出して、画像信号または画像データ（ディジタルＲＧＢＡピクセル値）をＡＶケーブル３２ａ（図１）を介してモニタ３４に与える。
【００４５】
外部メモリＩ／Ｆ６０は、ビデオゲーム装置１２の前面に挿入されるメモリカード３０をメモリコントローラ３８に連係させる。それによって、メモリコントローラ３８を介して、ＣＰＵ３６がこのメモリカード３０にデータを書込み、またはメモリカード３０からデータを読み出すことができる。オーディオＩ／Ｆ６２は、メモリコントローラ３８を通してＤＳＰ５２から与えられるオーディオデータまたは光ディスク１８から読み出されたオーディオストリームを受け、それらに応じたオーディオ信号（音声信号）をモニタ３４のスピーカ３４ａに与える。
【００４６】
そして、ディスクＩ／Ｆ６４は、ディスクドライブ６８をメモリコントローラ３８に接続し、したがって、ＣＰＵ３６がディスクドライブ１６を制御する。このディスクドライブ６８によって光ディスク１８から読み出されたプログラムデータやテクスチャデータ等が、ＣＰＵ３６の制御の下で、メインメモリ４０に書き込まれる。
【００４７】
なお、図２においては、簡単のため、センサバー３４ｂおよび電源回路は省略してある。
【００４８】
図３（Ａ）ないし図３（Ｅ）は、コントローラ２２の外観の一例を示す。図３（Ａ）はコントローラ２２の先端面を示し、図３（Ｂ）はコントローラ２２の上面を示し、図３（Ｃ）はコントローラ２２の右側面を示し、図３（Ｄ）はコントローラ２２の下面を示し、そして、図３（Ｅ）はコントローラ２２の後端面を示す。
【００４９】
図３（Ａ）ないし図３（Ｅ）を参照して、コントローラ２２は、たとえばプラスチック成型によって形成されたハウジング２２ａを有している。ハウジング２２ａは、略直方体形状であり、ユーザが片手で把持可能な大きさである。ハウジング２２ａ（コントローラ２２）には、入力手段（複数のボタンないしスイッチ）２６が設けられる。具体的には、図３（Ｂ）に示すように、ハウジング２２ａの上面には、十字キー２６ａ，Ｘボタン２６ｂ，Ｙボタン２６ｃ，Ａボタン２６ｄ，セレクトスイッチ２６ｅ，メニュー（ホーム）スイッチ２６ｆ，スタートスイッチ２６ｇおよび電源スイッチ２６ｈが設けられる。また、図３（Ｃ）および図３（Ｄ）に示すように、ハウジング２２ａの下面に傾斜面が形成されており、この傾斜面に、Ｂトリガースイッチ２６ｉが設けられる。
【００５０】
十字キー２６ａは、４方向プッシュスイッチであり、矢印で示す４つの方向、前（または上）、後ろ（または下）、右および左の操作部を含む。この操作部のいずれか１つを操作することによって、プレイヤによって操作可能なキャラクタまたはオブジェクト（プレイヤキャラクタまたはプレイヤオブジェクト）の移動方向を指示したり、カーソルの移動方向を指示したりすることができる。
【００５１】
Ｘボタン２６ｂおよびＹボタン２６ｃは、それぞれ、押しボタンスイッチであり、３次元ゲーム画像を表示する際の視点位置や視点方向、すなわち仮想カメラの位置や画角を調整するために使用される。または、Ｘボタン２６ｂおよびＹボタン２６ｃは、Ａボタン２６ｄおよびＢトリガースイッチ２６ｉと同じ操作或いは補助的な操作をする場合に用いることもあり得る。
【００５２】
Ａボタンスイッチ２６ｄは、押しボタンスイッチであり、プレイヤキャラクタまたはプレイヤオブジェクトに、方向指示以外の動作、すなわち、打つ（パンチ）、投げる、つかむ（取得）、乗る、ジャンプするなどの任意のアクションをさせるために使用される。たとえば、アクションゲームにおいては、ジャンプ、パンチ、武器を動かすなどを指示することができる。また、ロールプレイングゲーム（ＲＰＧ）やシミュレーションＲＰＧにおいては、アイテムの取得、武器やコマンドの選択および決定等を指示することができる。
【００５３】
セレクトスイッチ２６ｅ、メニュースイッチ２６ｆ、スタートスイッチ２６ｇおよび電源スイッチ２６ｈもまた、押しボタンスイッチである。セレクトスイッチ２６ｅは、ゲームモードを選択するために使用される。メニュースイッチ２６ｆは、ゲームメニュー（メニュー画面）を表示するために使用される。スタートスイッチ２６ｇは、開始（再開）したり、一時停止したりするなどのために使用される。電源スイッチ２６ｈは、ビデオゲーム装置１２の電源を遠隔操作によってオン／オフするために使用される。
【００５４】
なお、この実施例では、コントローラ２２自体をオン／オフするための電源スイッチは設けておらず、コントローラ２２の入力手段２６のいずれかを操作することによってコントローラ２２はオンとなり、一定時間（たとえば、３０秒）以上操作しなければ自動的にオフとなるようにしてある。
【００５５】
Ｂトリガースイッチ２６ｉもまた、押しボタンスイッチであり、主として、弾を撃つなどのトリガーを入力したり、コントローラ２２で選択した位置を指定したりするために使用される。ただし、Ｂトリガースイッチ２６ｉを押し続けると、プレイヤオブジェクトの動作やパラメータを一定の状態に維持することもできる。また、一定の場合には、Ｂトリガースイッチ２６ｉは、通常のＢボタンと同様に機能し、Ａボタン２６ｄによって決定したアクションを取り消すなどのために使用される。
【００５６】
また、図３（Ｅ）に示すように、ハウジング２２ａの後端面に外部拡張コネクタ２２ｂが設けられ、また、図３（Ｂ）に示すように、ハウジング２２ａの上面であり、後端面側にはインジケータ２２ｃが設けられる。外部拡張コネクタ２２ｂは、図示しない別のコントローラを接続するためなどに使用される。インジケータ２２ｃは、たとえば、４つのＬＥＤで構成され、４つのうちのいずれか１つを点灯することにより、コントローラ２２の識別情報（コントローラ番号）を示す。
【００５７】
さらに、コントローラ２２は、撮像情報演算部８０（図４参照）を有しており、図３（Ａ）に示すように、ハウジング２２ａの先端面には撮像情報演算部８０の光入射口２２ｄが設けられる。
【００５８】
なお、図３（Ａ）ないし図３（Ｅ）に示したコントローラ２２の形状や、各入力手段２６の形状、数および設置位置等は単なる一例に過ぎず、それらが適宜改変された場合であっても、本発明を実現できることは言うまでもない。
【００５９】
図４はコントローラ２２の電気的な構成を示すブロック図である。この図４を参照して、コントローラ２２はプロセサ７０を含み、このプロセサ７０には、内部バス（図示せず）によって、外部拡張コネクタ２２ｂ、入力手段２６、メモリ７２、加速度センサ７４、無線モジュール７６、撮像情報演算部８０、ＬＥＤ８２（インジケータ２２ｃ）、バイブレータ８４、スピーカ８６および電源回路８８が接続される。また、無線モジュール７６には、アンテナ７８が接続される。
【００６０】
プロセサ７０は、コントローラ２２の全体制御を司り、入力手段２６、加速度センサ７４および撮像情報演算部８０によって入力された情報（入力情報）を、入力データとして無線モジュール７６およびアンテナ７８を介してビデオゲーム装置１２に送信（入力）する。このとき、プロセサ７０は、メモリ７２を作業領域ないしバッファ領域として用いる。
【００６１】
上述した入力手段２６（２６ａ−２６ｉ）からの操作信号（操作データ）は、プロセサ７０に入力され、プロセサ７０は操作データを一旦メモリ７２に記憶する。
【００６２】
また、加速度センサ７４は、コントローラ２２の縦方向（ｙ軸方向）、横方向（ｘ軸方向）および前後方向（ｚ軸方向）の３軸で各々の加速度を検出する。この加速度センサ７４は、典型的には、静電容量式の加速度センサであるが、他の方式のものを用いるようにしてもよい。
【００６３】
たとえば、加速度センサ７４は、第１所定時間（たとえば、２００ｍｓｅｃ）毎に、ｘ軸，ｙ軸，ｚ軸の各々についての加速度（ａｘ，ａｙ，ａｚ）を検出し、検出した加速度のデータ（加速度データ）をプロセサ７０に入力する。たとえば、加速度センサ７４は、各軸方向の加速度を、−２．０ｇ〜２．０ｇ（ｇは重力加速度である。以下、同じ。）の範囲で検出する。プロセサ７０は、加速度センサ７４から与えられる加速度データを、第２所定時間（たとえば、１フレーム：画面更新単位時間（１／６０ｓｅｃ））毎に検出し、一旦メモリ７２に記憶する。プロセサ７０は、操作データ、加速度データおよびマーカ座標データの少なくとも１つを含む入力データを作成し、作成した入力データを、第３所定時間（たとえば、１フレーム）毎にビデオゲーム装置１２に送信する。
【００６４】
なお、図３（Ａ）−図３（Ｅ）では省略したが、この実施例では、加速度センサ７４は、ハウジング２２ａの内部であり、十字キー２６ａが配置される付近に設けられる。
【００６５】
無線モジュール７６は、たとえばＢｌｕｅｔｏｏｔｈの技術を用いて、所定周波数の搬送波を入力データで変調し、その微弱電波信号をアンテナ７８から放射する。つまり、入力データは、無線モジュール７６によって微弱電波信号に変調されてアンテナ７８（コントローラ２２）から送信される。この微弱電波信号が上述したビデオゲーム装置１２に設けられたＢｌｕｅｔｏｏｔｈ通信ユニット６６によって受信される。受信された微弱電波は、復調および復号の処理を施され、したがって、ビデオゲーム装置１２（ＣＰＵ３６）は、コントローラ２２からの入力データを取得することができる。そして、ＣＰＵ３６は、取得した入力データとプログラム（ゲームプログラム）とに従ってゲーム処理を行う。
【００６６】
さらに、上述したように、コントローラ２２には、撮像情報演算部８０が設けられる。この撮像情報演算部８０は、赤外線フィルタ８０ａ、レンズ８０ｂ、撮像素子８０ｃおよび画像処理回路８０ｄによって構成される。赤外線フィルタ８０ａは、コントローラ２２の前方から入射する光から赤外線のみを通過させる。上述したように、モニタ３４の表示画面近傍（周辺）に配置されるマーカ３４０ｍおよび３４０ｎは、モニタ３４の前方に向かって赤外光を出力する赤外ＬＥＤである。したがって、赤外線フィルタ８０ａを設けることによってマーカ３４０ｍおよび３４０ｎの画像をより正確に撮像することができる。レンズ８４は、赤外線フィル８２を透過した赤外線を集光して撮像素子８０ｃへ出射する。撮像素子８０ｃは、たとえばＣＭＯＳセンサあるいはＣＣＤのような固体撮像素子であり、レンズ８０ｂによって集光された赤外線を撮像する。したがって、撮像素子８０ｃは、赤外線フィルタ８０ａを通過した赤外線だけを撮像して画像データを生成する。以下では、撮像素子８０ｃによって撮像された画像を撮像画像と呼ぶ。撮像素子８０ｃによって生成された画像データは、画像処理回路８０ｄで処理される。画像処理回路８０ｄは、撮像画像内における撮像対象（マーカ３４０ｍおよび３４０ｎ）の位置を算出し、第４所定時間（たとえば、１フレーム）毎に、当該位置を示す各座標値を撮像データとしてプロセサ７０に出力する。なお、画像処理回路８０ｄにおける処理については後述する。
【００６７】
図５は、コントローラ２２を用いてゲームプレイするときの状態を概説する図解図である。図５に示すように、ビデオゲームシステム１０でコントローラ２２を用いてゲームをプレイする際、プレイヤは、一方の手でコントローラ２２を把持する。厳密に言うと、プレイヤは、コントローラ２２の先端面（撮像情報演算部８０が撮像する光の入射口２２ｄ側）がマーカ３４０ｍおよび３４０ｎの方を向く状態でコントローラ２２を把持する。ただし、図１からも分かるように、マーカ３４０ｍおよび３４０ｎは、モニタ３４の画面の横方向と平行に配置されている。この状態で、プレイヤは、コントローラ２２が指示する画面上の位置を変更したり、コントローラ２２と各マーカ３４０ｍおよび３４０ｎとの距離を変更したりすることによってゲーム操作を行う。
【００６８】
図６は、マーカ３４０ｍおよび３４０ｎと、コントローラ２２との視野角を説明するための図である。図６に示すように、マーカ３４０ｍおよび３４０ｎは、それぞれ、視野角θ１の範囲で赤外光を放射する。また、撮像情報演算部８０の撮像素子８０ｃは、コントローラ２２の視線方向を中心とした視野角θ２の範囲で入射する光を受光することができる。たとえば、マーカ３４０ｍおよび３４０ｎの視野角θ１は、共に３４°（半値角）であり、一方、撮像素子８０ｃの視野角θ２は４１°である。プレイヤは、撮像素子８０ｃが２つのマーカ３４０ｍおよび３４０ｎからの赤外光を受光することが可能な位置および向きとなるように、コントローラ２２を把持する。具体的には、撮像素子８０ｃの視野角θ２の中に少なくとも一方のマーカ３４０ｍおよび３４０ｎが存在し、かつ、マーカ３４０ｍまたは３４０ｎの少なくとも一方の視野角θ１の中にコントローラ２２が存在する状態となるように、プレイヤはコントローラ２２を把持する。この状態にあるとき、コントローラ２２は、マーカ３４０ｍおよび３４０ｎの少なくとも一方を検知することができる。プレイヤは、この状態を満たす範囲でコントローラ２２の位置および向きを変化させることによってゲーム操作を行うことができる。
【００６９】
なお、コントローラ２２の位置および向きがこの範囲外となった場合、コントローラ２２の位置および向きに基づいたゲーム操作を行うことができなくなる。以下では、上記範囲を「操作可能範囲」と呼ぶ。
【００７０】
操作可能範囲内でコントローラ２２が把持される場合、撮像情報演算部８０によって各マーカ３４０ｍおよび３４０ｎの画像が撮像される。すなわち、撮像素子８０ｃによって得られる撮像画像には、撮像対象である各マーカ３４０ｍおよび３４０ｎの画像（対象画像）が含まれる。図７は、対象画像を含む撮像画像の一例を示す図である。対象画像を含む撮像画像の画像データを用いて、画像処理回路８０ｄは、各マーカ３４０ｍおよび３４０ｎの撮像画像における位置を表す座標（マーカ座標）を算出する。
【００７１】
撮像画像の画像データにおいて対象画像は高輝度部分として現れるため、画像処理回路８０ｄは、まず、この高輝度部分を対象画像の候補として検出する。次に、画像処理回路８０ｄは、検出された高輝度部分の大きさに基づいて、その高輝度部分が対象画像であるか否かを判定する。撮像画像には、対象画像である２つのマーカ３４０ｍおよび３４０ｎの画像３４０ｍ’および３４０ｎ’のみならず、窓からの太陽光や部屋の蛍光灯の光によって対象画像以外の画像が含まれていることがある。高輝度部分が対象画像であるか否かの判定処理は、対象画像であるマーカ３４０ｍおよび３４０ｎの画像３４０ｍ’および３４０ｎ’と、それ以外の画像とを区別し、対象画像を正確に検出するために実行される。具体的には、当該判定処理においては、検出された高輝度部分が、予め定められた所定範囲内の大きさであるか否かが判定される。そして、高輝度部分が所定範囲内の大きさである場合には、当該高輝度部分は対象画像を表すと判定される。逆に、高輝度部分が所定範囲内の大きさでない場合には、当該高輝度部分は対象画像以外の画像を表すと判定される。
【００７２】
さらに、上記の判定処理の結果、対象画像を表すと判定された高輝度部分について、画像処理回路８０ｄは当該高輝度部分の位置を算出する。具体的には、当該高輝度部分の重心位置を算出する。ここでは、当該重心位置の座標をマーカ座標と呼ぶ。また、重心位置は撮像素子８０ｃの解像度よりも詳細なスケールで算出することが可能である。ここでは、撮像素子８０ｃによって撮像された撮像画像の解像度が１２６×９６であるとし、重心位置は１０２４×７６８のスケールで算出されるものとする。つまり、マーカ座標は、（０，０）から（１０２４，７６８）までの整数値で表現される。
【００７３】
なお、撮像画像における位置は、撮像画像の左上を原点とし、下向きをＹ軸正方向とし、右向きをＸ軸正方向とする座標系（ＸＹ座標系）で表現されるものとする。
【００７４】
また、対象画像が正しく検出される場合には、判定処理によって２つの高輝度部分が対象画像として判定されるので、２箇所のマーカ座標が算出される。画像処理回路８０ｄは、算出された２箇所のマーカ座標を示すデータを出力する。出力されたマーカ座標のデータ（マーカ座標データ）は、上述したように、プロセサ７０によって入力データに含まれ、ビデオゲーム装置１２に送信される。
【００７５】
ビデオゲーム装置１２（ＣＰＵ３６）は、受信した入力データからマーカ座標データを検出すると、このマーカ座標データに基づいて、モニタ３４の画面上におけるコントローラ２２の指示位置（指示座標）と、コントローラ２２からマーカ３４０ｍおよび３４０ｎまでの各距離とを算出することができる。具体的には、２つのマーカ座標の中点の位置が、コントローラ２２の向いている位置すなわち指示位置として採用（算出）される。また、撮像画像における対象画像間の距離が、コントローラ２２と、マーカ３４０ｍおよび３４０ｎとの距離に応じて変化するので、２つのマーカ座標間の距離を算出することによって、ビデオゲーム装置１２はコントローラ２２とマーカ３４０ｍおよび３４０ｎとの間の距離を把握できる。
【００７６】
以上のような構成のゲームシステム１０では、複数のプレイヤが各コントローラ２２を複数人で共用して、仮想ゲームをプレイする。仮想ゲームは、たとえば、複数のチームに分かれて対戦する対戦ゲームであって、各プレイヤが所定数（この実施例では、５つ）の問題を順番で回答し、全問題（２０問）を早く解き終えたチームが勝利する。ただし、１問毎にプレイヤが交代するのではなく、先のプレイヤが５問解き終えると、次のプレイヤの順番になる。ただし、この実施例では、各チームを構成するプレイヤの数は「４」に設定される。
【００７７】
なお、この実施例では、簡単のため、各プレイヤが同じ問題数を解き、チーム毎の人数も同じに設定してあるが、全問題の数が同じであれば、チームを構成する人数や各プレイヤが回答する問題の数は異なってもよい。
【００７８】
図示は省略するが、ゲームの開始に先立って、メニュー画面で、対戦するチームの数が決定（選択）される。このとき、決定されたチームの数は、使用するコントローラ２２の数と一致する。つまり、１のチームに対して１のコントローラ２２が割り当てられる。次に、各チームのプレイヤが選択される。この実施例では、予め作成されたキャラクタがプレイヤのアバタとして選択される。各キャラクタには、名称が予め付けられている。ここで、一般的には、名称は、呼び名、名前、呼称を意味するが、あだ名や番号など、仮名や数字を用いて自由に決定することができる。したがって、プレイヤは、キャラクタに自身の名前を付けたり、創作した名称を付けたりすることができる。
【００７９】
図８は、チームの数が選択され、キャラクタを選択する画面（キャラクタ選択画面）１００がモニタ３４に表示された状態を示す。ただし、ここでは、チームの数として「２」が選択された場合について示してある。このキャラクタ選択画面１００では、画面のほぼ下半分に、複数のキャラクタの顔画像が表示される表示部１０２が設けられる。また、キャラクタ選択画面１００の上半分に、プレイヤが選択したキャラクタの顔画像をチーム別で表示するための表示部１０４が設けられる。たとえば、各チームは、最大４人のプレイヤで構成される。ただし、これは単なる例示であり、これに限定される必要はない。さらに、キャラクタ選択画面１００には、２つのコントローラ２２が指示する位置を示すためのポインタ画像１０６ａおよび１０６ｂが表示される。この実施例では、ポインタ画像１０６ａが第１チームに割り当てられたコントローラ２２（以下、分かり易くするために、「２２Ａ」とする。）に対応し、ポインタ画像１０６ｂが第２チームに割り当てられたコントローラ２２（以下、分かり易くするために、「２２Ｂ」とする。）に対応する。したがって、コントローラ２２Ａの指示位置に従ってポインタ画像１０６ａが移動され、コントローラ２２Ｂの指示位置に従ってポインタ画像１０６ｂが移動される。
【００８０】
プレイヤは、自身が使用するコントローラ２２Ａまたは２２Ｂを用いて、表示部１０２に表示される複数の顔画像のうち、所望の顔画像を指示する。つまり、ポインタ画像１０６ａまたは１０６ｂで所望の顔画像を指示する。続けて、プレイヤは、たとえば、Ａボタンスイッチ２６ｄを押すと、指示した顔画像を自身のアバタとして選択（決定）することができる。このとき、コントローラ２２Ａまたは２２Ｂに対応して選択された顔画像すなわちキャラクタが割り当てられる。厳密には、後述するように、キャラクタの識別情報（キャラクタＩＤ）が割り当てられる。
【００８１】
このようにして、各プレイヤは、自身のアバタとしてキャラクタ（顔画像）を選択する。なお、図示は省略するが、キャラクタ選択画面１００では、表示部１０２の画面を左右にスクロールすることにより、他の顔画像を選択可能にすることもできる。
【００８２】
ゲーム中では、図９に示すように、モニタ３４にゲーム画面（２００，２０２）が表示される。ここでは、２つのチームで対戦ゲームをプレイするため、第１チーム用のゲーム画面２００と第２チーム用のゲーム画面２０２とが、横方向に２分割で表示される。また、この対戦ゲームでは、各チームのプレイヤが順番で所定数の問題を回答する。このとき、各プレイヤの状況（ゲームの進行状況）に応じて、プレイヤの名称を含むメッセージが各コントローラ２２（２２Ａ，２２Ｂ）のスピーカ８６から出力される。
なお、図９では、簡単のため、プレイヤは省略してある。
【００８３】
たとえば、１つの問題に長時間を費やしている状態（１）では、プレイヤに対して励ましのメッセージを出力することができる。また、次のプレイヤに対して交代時期が近づいた状態（２）では、交代時期が迫っていることを勧告する（準備を促す）メッセージを出力することができる。さらに、次のプレイヤがプレイすべき順番になった（交代時期になった）状態（３）では、交代時期になったことを通知するメッセージを出力することができる。具体的には、励ましのメッセージとしては、「頑張れ、△△さん！」や「落ち着いて、△△さん！」などが該当する。また、準備を促すメッセージとしては、「〇〇さん、準備してください。」や「〇〇さん、そろそろ順番ですよ。」などが該当する。さらに、交代時期であること（順番が来たこと）を通知するメッセージとしては、「××さんの順番です。」や「××さんに交代してください！」などが該当する。
【００８４】
具体的には、上記のようなメッセージのうち、プレイヤないしキャラクタの名称に相当する部分を除いたメッセージのテキストデータがメインメモリ４０に記憶されている。ゲームの進行状況が状態（１）〜（３）のいずれかに該当するプレイヤが存在する場合には、そのプレイヤのアバタとしてのキャラクタを特定する。そして、キャラクタの名称を用いて、状態（１）〜（３）に応じたメッセージのテキストデータが作成される。次に、このテキストデータに基づいて、音声のメッセージデータが作成される。簡単に説明すると、仮名や数字などの文字についての１文字毎の合成音声データがメインメモリ４０に予め記憶されており、テキストデータに従って合成音声データが並べられ、音声が自然に聴こえるように、その発音や音の高さ、音の長さ、音の区切りなどが調整される。
【００８５】
このように作成された音声のメッセージデータ（音声メッセージデータ）が、メッセージを受けるべきプレイヤが使用するコントローラ２２に送信される。コントローラ２２は、音声メッセージデータを受信すると、アナログの音声信号に変換し、スピーカ８６から出力する。したがって、音声のメッセージがプレイヤに伝達される。
【００８６】
なお、上記のようなゲームの進行状況（状態（１）〜（３））やメッセージの内容は単なる例示であり、これらに限定される必要はない。プレイヤやキャラクタの名称を含むメッセージが、コントローラ２２に設けられるスピーカ８６から適切に出力される点に着目されたい。
【００８７】
図１０は図２に示したメインメモリ４０のメモリマップの一例である。図１０を参照して、メインメモリ４０は、プログラム記憶領域９０、データ記憶領域９２、タイマ記憶領域９４、正解数カウンタ記憶領域９６およびプレイヤ番号カウンタ記憶領域９８などを含む。プログラム記憶領域９０には、ゲームプログラムが記憶され、ゲームプログラムはゲームメイン処理プログラム９０ａ、ゲーム画像生成プログラム９０ｂ、ゲーム画像表示プログラム９０ｃ、キャラクタ選択プログラム９０ｄ、メッセージ作成プログラム９０ｅおよび告知処理プログラム９０ｆなどによって構成される。
【００８８】
ゲームメイン処理プログラム９０ａは、この実施例の仮想ゲームのメインルーチンを処理するためのプログラムである。ゲーム画像生成プログラム９０ｂは、後述する画像データ９２ａや問題データ９２ｂを用いて、モニタ３４に表示されるゲーム画像ないしゲーム画面（キャラクタ選択画面１００を含む。）を生成するためのプログラムである。ゲーム画像表示プログラム９０ｃは、ゲーム画像生成プログラム９０ｂに従って生成されたゲーム画像をモニタ３４に表示するためのプログラムである。
【００８９】
キャラクタ選択プログラム９０ｄは、キャラクタ選択画面１００が表示されている場合に、プレイヤの指示に従ってキャラクタを選択し、選択されたキャラクタとその選択に用いたコントローラ２２とを対応づけたデータ（後述する「コントローラ割当データ９２ｇ」）を生成し、データ記憶領域９２に記憶するためのプログラムである。
【００９０】
メッセージ作成プログラム９０ｅは、後述する音声データ９２ｃおよびメッセージデータ９２ｄを用いて、プレイヤのゲームの進行状況に応じて、当該プレイヤないし当該プレイヤが使用するキャラクタの名称を含む音声メッセージデータを作成するためのプログラムである。告知処理プログラム９０ｆは、メッセージ作成プログラム９０ｅに従って作成された音声メッセージデータを、当該音声メッセージデータを送信すべきコントローラ２２に送信するためのプログラムである。
【００９１】
なお、図示は省略するが、プログラム記憶領域９０には、音出力プログラムやバックアッププログラムなども記憶される。音出力プログラムは、ゲーム音楽（ＢＧＭ）、オブジェクトの音声ないし擬声音、効果音など、ゲームに必要な音をスピーカ３４ａから出力するためのプログラムである。また、バックアッププログラムは、ゲームデータをメモリカード３０に保存するためのプログラムである。
【００９２】
データ記憶領域９２には、画像データ９２ａ、問題データ９２ｂ、音声データ９２ｃ、メッセージデータ９２ｄ、キャラクタデータ９２ｅ、コントローラＩＤデータ９２ｆおよびコントローラ割当データ９２ｇのようなデータが記憶される。
【００９３】
画像データ９２ａは、上述したゲーム画像を生成するためのデータ（ポリゴン、テクスチャなど）である。問題データ９２ｂは、ゲーム画面（問題画面）の生成に用いられるデータであり、具体的には、問題画面に使用するゲームキャラクタ（文字、図形、画像、記号など）ないしゲームオブジェクトの識別情報や配置位置などについてのデータである。
【００９４】
音声データ９２ｃは、音声メッセージを作成する際に使用される音声についてのデータである。具体的には、音声データ９２ｃは、「あ」，「い」，「う」，…，「わ」，「を」，「ん」のような文字単位の合成音声データを意味する。ただし、音声データ９２ｃは、濁音や半濁音の文字、または数字についての合成音声データも含む。
【００９５】
メッセージデータ９２ｄは、コントローラ２２のスピーカ８６から出力される音声メッセージを作成する際に用いられるメッセージについてのテキストデータである。たとえば、「頑張れ、□□さん！」、「□□さん、準備してください。」、「□□さんに交代してください！」（□は空欄を意味する。）のような名称が入るべき部分が空欄にされたメッセージのテキストデータである。なお、名称は、後述するように、適宜取得（検出）され、テキストデータに組み込まれる。
【００９６】
キャラクタデータ９２ｅは、プレイヤがアバタとして選択するキャラクタ（顔画像）に関するデータである。この実施例では、図１１（Ａ）に示すように、各キャラクタの識別情報（キャラクタＩＤ（Ａ，Ｂ，Ｃ，…，Ｆ，Ｇ，Ｈ，…））に対応して、画像データ（顔画像のデータ）および名称データ（顔画像に付された名称のデータ）が記憶される。
【００９７】
コントローラＩＤデータ９２ｆは、ゲームに使用される各コントローラ２２の識別情報についてのデータである。この実施例では、図１１（Ｂ）に示すように、各コントローラ２２に対応して、コントローラＩＤ（Ｉ，II，III，IV）が付される。なお、この実施例では、ビデオゲーム装置１２には、最大で４台のコントローラ２２を接続することができるため、コントローラＩＤも最大で４つである。ただし、ゲームに使用しないコントローラ２２については、コントローラＩＤが付されることはない。また、この実施例では、ビデオゲーム装置１２は、コントローラ２２に内蔵される無線モジュール７６のＭＡＣアドレスで、各コントローラ２２を識別するようにしてある。なお、コントローラ２２を識別する情報としては、ＭＡＣアドレスに限定される必要はなく、コントローラ２２固有の識別情報を、予めコントローラ２２内部に記憶しておくようにしてもよい。
【００９８】
コントローラ割当データ９２ｇは、各コントローラ２２を使用するプレイヤ（厳密には、アバタとしてのキャラクタ）を識別するとともに、ゲームに先立ってキャラクタを選択する場合に、各コントローラ２２を選択したプレイヤの人数（選択数）を記憶するためのデータである。具体的には、図１２（Ａ）に示すように、コントローラＩＤに対応して、キャラクタＩＤおよび選択数が記憶される。ここで、キャラクタＩＤは、上述した各キャラクタ（顔画像）の識別情報である。たとえば、キャラクタＩＤが記述された順番がプレイする順番（左から１番，２番，３番，４番）を示す。また、選択数は、キャラクタを選択する際に、同じコントローラ２２を選択した（使用する）プレイヤの数を示す。ただし、ゲームに使用しないコントローラ２２については、プレイヤ（キャラクタ）が割り当てられることがないため、当該コントローラ２２のコントローラＩＤ等はコントローラ割当データ９２ｇに記述されない。以下、同様である。
【００９９】
なお、図示は省略するが、データ記憶領域９２には、ゲームデータやサウンドデータまたは他のフラグなども記憶される。たとえば、メインメモリ４０は、バッファメモリとしても使用され、入力データ（操作データ、加速度データおよびマーカ座標データの少なくとも１つを含むデータ）などを一時記憶する。
【０１００】
タイマ記憶領域９４は、各コントローラ２２に割り当てられるタイマを記憶する。図１２（Ｂ）に示すように、コントローラＩＤに対応してタイマ（第１タイマ，第２タイマ，第３タイマ，第４タイマ）が設定される。各タイマは、対応するコントローラＩＤが示すコントローラ２２を１人の（同一の）プレイヤが使用する時間をカウントするために用いられる。図１２（Ｂ）では、４台のコントローラ２２を使用する場合について示してある。
【０１０１】
正解数カウンタ記憶領域９６は、各コントローラ２２に割り当てられるカウンタを記憶する。図１３（Ａ）に示すように、コントローラＩＤに対応してカウンタ（第１正解数カウンタ，第２正解数カウンタ，第３正解数カウンタ，第４正解数カウンタ）が設定される。各カウンタは、対応するコントローラＩＤが示すコントローラ２２を使用しているプレイヤが正解した問題の数をカウントするために用いられる。この正解数カウンタのカウント値を参照することにより、正解数が４のプレイヤが存在すれば、次のプレイヤの交代時期が迫っていることを知ることができる。また、正解数が５のプレイヤが存在すれば、次のプレイヤの交代時期が来たことを知ることができる。
【０１０２】
なお、プレイヤの順番については、上述したコントローラ割当データ９２ｇおよび後述するプレイヤ番号カウンタに基づいて知ることができる。
また、図１３（Ａ）では、４台のコントローラ２２を使用する場合について示してある。
【０１０３】
プレイヤ番号カウンタ記憶領域９８もまた、各コントローラ２２に割り当てられるカウンタを記憶する。図１３（Ｂ）に示すように、コントローラＩＤに対応してカウンタ（第１プレイヤ番号カウンタ，第２プレイヤ番号カウンタ，第３プレイヤ番号カウンタ，第４プレイヤ番号カウンタ）が設定される。各プレイヤ番号カウンタは、対応するコントローラＩＤが示すコントローラ２２を使用するプレイヤの順番（数）をカウントするために用いられる。図１３（Ｂ）では、４台のコントローラ２２を使用する場合について示してある。
【０１０４】
具体的には、図２に示したＣＰＵ３６が図１４に示すフロー図に従って全体処理を実行する。図１４に示すように、ＣＰＵ３６は全体処理を開始すると、ステップＳ１で、キャラクタ選択処理（図１５参照）を実行する。次のステップＳ３では、各コントローラ２２のタイマ記憶領域９４に設けられるタイマをリセットする。ここでは、ゲームに使用するコントローラ２２に対して設定されたタイマのタイマ値を初期値「０」に設定する。
【０１０５】
なお、ゲームに使用するコントローラ２２は、ゲームの開始に先立って（全体処理の前に）決定され、その使用する各コントローラ２２に対応してタイマが設定される。
【０１０６】
続くステップＳ５では、各コントローラ２２の正解数をリセットする。ここでは、ゲームに使用するコントローラ２２に対して設定された正解数カウンタのカウント値が初期値「０」に設定される。続いて、ステップＳ７では、各コントローラ２２のプレイヤ番号をリセットする。ここでは、ゲームに使用するコントローラ２２に対応するプレイヤ番号カウンタのカウント値が初期値「１」に設定される。
【０１０７】
タイマやカウンタをリセットすると、次にステップＳ９で、ゲーム処理（図１６参照）を実行する。続いて、ステップＳ１１では、告知処理（図１7−図１９参照）を実行する。そして、ステップＳ１３で、ゲーム終了かどうかを判断する。ここでは、ゲームオーバになったり、プレイヤからゲーム終了指示が与えられたりしたかどうかを判断する。ステップＳ１３で“ＮＯ”であれば、つまりゲーム終了でなければ、そのままステップＳ９に戻る。一方、ステップＳ１３で“ＹＥＳ”であれば、つまりゲーム終了であれば、そのまま全体処理を終了する。
【０１０８】
図１５は、図１４に示したステップＳ１のキャラクタ選択処理のフロー図である。図１５に示すように、ＣＰＵ３６はキャラクタ選択処理を開始すると、ステップＳ２１で、各コントローラＩＤのキャラクタＩＤおよびキャラクタの選択数を初期化する。つまり、キャラクタ割当データ９２ｇのコントローラＩＤに対応して記載されたキャラクタＩＤを消去し、選択数の初期値「０」を設定する。
【０１０９】
続くステップＳ２３では、図８に示したようなキャラクタ選択画面１００を表示する。したがって、プレイヤは、そのチームで使用するコントローラ２２を用いて、キャラクタ選択画面１００でキャラクタを選択する。続いて、ステップＳ２５では、キャラクタの選択数が上限（たとえば、「４」）に達していないコントローラＩＤが有るかどうかを判断する。ステップＳ２５で“ＮＯ”であれば、つまりキャラクタの選択数が上限に達していないコントローラＩＤが無ければ、キャラクタ選択処理を強制的に終了すべく、図１４に示した全体処理にリターンする。
【０１１０】
一方、ステップＳ２５で“ＹＥＳ”であれば、つまりキャラクタの選択数が上限に達していないコントローラＩＤが有れば、キャラクタの選択を終了していないと判断して、ステップＳ２７で、キャラクタの選択が有るかどうかを判断する。
【０１１１】
ステップＳ２７で“ＮＯ”であれば、つまりキャラクタの選択が無ければ、キャラクタの選択を待機すべく、同じステップＳ２７に戻る。一方、ステップＳ２７で“ＹＥＳ”であれば、つまりキャラクタの選択が有れば、ステップＳ２９で、コントローラＩＤに対応して、選択されたキャラクタのキャラクタＩＤを記憶する。つまり、キャラクタの選択指示の有ったコントローラ２２をそのＭＡＣアドレスから特定し、コントローラ割当データ９２ｇにおいて、特定したコントローラ２２のコントローラＩＤに対応して、キャラクタＩＤを記述する。そして、ステップＳ３１で、当該コントローラＩＤのキャラクタの選択数を１加算して、ステップＳ２５に戻る。つまり、ステップＳ３１では、ステップＳ２９においてキャラクタＩＤを記述したコントローラＩＤに対応する選択数を、１加算するのである。
【０１１２】
図１６は、図１４に示したステップＳ９のゲーム処理のフロー図である。図１６に示すように、ＣＰＵ３６はゲーム処理を開始すると、ステップＳ５１で、コントローラ２２からの入力を検出する。具体的には、ＣＰＵ３６は、コントローラＩ／Ｆ５６のバッファメモリ（図示せず）に記憶された入力データを検出する。ただし、コントローラＩ／Ｆ５６のバッファメモリに入力データが記憶されていない場合には、ＣＰＵ３６は、コントローラ２２からの入力が無いと判断する。
【０１１３】
次のステップＳ５３では、正解判定処理を実行する。詳細な説明は省略するが、ここでは、コントローラ２２からの入力データに従うプレイヤの回答が正解と一致するか否かを判断するのである。なお、コントローラ２２からの入力が無ければ、ＣＰＵ３６は正解していないと判断する。次のステップＳ５５では、問題に正解したキャラクタが存在するかどうかを判断する。ステップＳ５５で“ＮＯ”であれば、つまり問題に正解したキャラクタが存在しなければ、そのままステップＳ６１に移行する。
【０１１４】
一方、ステップＳ５５で“ＹＥＳ”であれば、つまり問題に正解したキャラクタが存在すれば、ステップＳ５７で、該当するキャラクタを操作するコントローラ２２のタイマをリセットする。つまり、ＣＰＵ３６は、コントローラＩＤデータ９２ｆおよびコントローラ割当データ９２ｇを参照して、問題に正解したキャラクタを操作するコントローラＩＤを取得し、次いで、タイマ記憶領域９４を参照して、取得したコントローラＩＤに対応するタイマのタイマ値を「０」に設定する。
【０１１５】
続くステップＳ５９では、該当するキャラクタを操作するコントローラ２２の正解数を１加算する。つまり、ＣＰＵ３６は、正解数カウンタ記憶領域９６を参照して、上述のようにして取得したコントローラＩＤに対応する正解数カウンタのカウント値を１加算する。そして、ステップＳ６１で、各コントローラ２２のタイマに１加算して、全体処理にリターンする。つまり、ステップＳ６１では、ＣＰＵ３６は、タイマ記憶領域９４に設定されたすべてのタイマのタイマ値に１加算する。
【０１１６】
図１７−図１９は、図１４に示したステップＳ１１の告知処理のフロー図である。図１７に示すように、ＣＰＵ３６は告知処理を開始すると、ステップＳ８１で、タイマが所定値（たとえば、１０秒）を越えたコントローラ２２が有るかどうかを判断する。ステップＳ８１で“ＮＯ”であれば、つまりタイマが所定値を越えたコントローラ２２が無ければ、図１８に示すステップＳ９３に進む。
【０１１７】
一方、ステップＳ８１で“ＹＥＳ”であれば、つまりタイマが所定値を越えたコントローラ２２が有れば、ステップＳ８３で、該当するコントローラ２２のコントローラＩＤを取得する。次のステップＳ８５では、取得したコントローラＩＤと、該当するコントローラ２２のプレイヤ番号とに基づいて、キャラクタＩＤを取得する。つまり、キャラクタが特定される。そして、ステップＳ８７では、ステップＳ８５で取得したキャラクタＩＤに対応するキャラクタの名称を取得する。
【０１１８】
続いて、ステップＳ８９では、キャラクタの名称を用いて、当該キャラクタをアバタとして使用するプレイヤを励ます内容の音声メッセージデータを作成する。そして、ステップＳ９１で、該当するコントローラ２２へ、作成した音声メッセージデータを送信して、全体処理にリターンする。
【０１１９】
コントローラ２２のプロセサの処理については、図示を省略するが、ステップＳ９１の処理によって、ゲーム装置１２から音声メッセージデータが送信されると、コントローラ２２では、プロセサ７０が、アンテナ７８および無線モジュール７６を介してその音声メッセージデータを受信する。次いで、プロセサ７０は、音声メッセージデータを図示しないＤ／Ａ変換器および増幅器を介してスピーカ８６に出力する。したがって、音声メッセージデータは、アナログの音声信号に変換され、増幅された後、スピーカ８６から出力される。このため、当該コントローラ２２から音声のメッセージが該当するプレイヤに告知されるのである。
【０１２０】
図１８に示すステップＳ９３では、正解数が４であるコントローラ２２が有るかどうかを判断する。ここでは、プレイヤの交代時期が迫っているコントローラ２２が有るかどうかを判断するのである。ステップＳ９３で“ＮＯ”であれば、つまり正解数が４であるコントローラ２２が無ければ、図１９に示すステップＳ１０９に進む。一方、ステップＳ９３で“ＹＥＳ”であれば、つまり正解数が４であるコントローラ２２が有れば、ステップＳ９５で、該当するコントローラ２２のコントローラＩＤを取得して、ステップＳ９７で、該当するコントローラ２２のプレイヤ番号がキャラクタの選択数の最大値であるかどうかを判断する。具体的には、プレイヤ番号カウンタ記憶領域９８を参照して、ステップＳ９５で取得したコントローラＩＤに対応するプレイヤ番号カウンタのカウント値を取得し、コントローラ割当データ９２ｇを参照して、取得したカウント値が選択数の最大値（ここでは、「４」）であるかどうかを判断するのである。
【０１２１】
ステップＳ９７で“ＹＥＳ”であれば、つまり該当するコントローラ２２のプレイヤ番号がキャラクタの選択数の最大値であれば、当該コントローラ２２を使用する次のプレイヤが存在しないと判断して、図１７に示したように、全体処理にリターンする。一方、ステップＳ９７で“ＮＯ”であれば、つまり該当するコントローラ２２のプレイヤ番号がキャラクタの選択数の最大値でなければ、ステップＳ９９で、該当するコントローラ２２のプレイヤ番号の次番号を算出する。つまり、ステップＳ９５で取得したコントローラＩＤに対応するプレイヤ番号カウンタのカウント値に１加算した値を求める。ただし、実際のカウント値はそのままである。
【０１２２】
次にステップＳ１０１では、取得したコントローラＩＤと、算出した次番号とに基づいて、キャラクタＩＤを取得する。つまり、次のキャラクタが特定される。続いて、ステップＳ１０３では、キャラクタデータ９２ｅを参照して、ステップＳ１０１で取得したキャラクタＩＤからキャラクタの名称を取得する。そして、ステップＳ１０５で、キャラクタの名称を用いて、準備を促す内容の音声メッセージデータを作成して、図１７に示したステップＳ９１に進む。
【０１２３】
図１９に示すように、ステップＳ１０９では、正解数が５であるコントローラ２２が有るかどうかを判断する。ステップＳ１０９で“ＮＯ”であれば、つまり正解数が５であるコントローラ２２が無ければ、図１７に示したように、全体処理をリターンする。一方、ステップＳ１０９で“ＹＥＳ”であれば、つまり正解数が５であるコントローラ２２が有れば、ステップＳ１１１で、該当するコントローラ２２のコントローラＩＤを取得し、ステップＳ１１３で、該当するコントローラ２２のプレイヤ番号がキャラクタの選択数の最大値であるかどうかを判断する。この処理の詳細は、上述したステップＳ９７と同じであるため、重複した説明は省略する。
【０１２４】
ステップＳ１１３で“ＹＥＳ”であれば、つまり該当するコントローラ２のプレイヤ番号がキャラクタの選択数の最大値であれば、当該コントローラ２２を使用するチームはすべての問題をクリアしたと判断して、そのまま全体処理にリターンする。一方、ステップＳ１１３で“ＮＯ”であれば、つまり該当するコントローラ２２のプレイヤ番号がキャラクタの選択数の最大値でなければ、ステップＳ１１５で、当該コントローラ２２のプレイヤ番号の次番号を算出する。この処理の詳細は、上述したステップＳ９９と同じであるため、重複した説明は省略する。
【０１２５】
続くステップＳ１１７では、ステップＳ１１１で取得したコントローラＩＤと、ステップＳ１１５で算出した次番号とに基づいて、キャラクタＩＤを取得する。つまり、次のキャラクタが特定される。続いて、ステップＳ１１９では、ステップＳ１１７で取得したキャラクタＩＤからキャラクタの名称を取得する。そして、ステップＳ１２１では、キャラクタの名称を用いて、交代を促す（順番が来たことを通知する）内容の音声メッセージデータを作成する。
【０１２６】
その後、ステップＳ１２３で、該当するコントローラ２２のプレイヤ番号に１加算し、ステップＳ１２５で、該当するコントローラ２２の正解数をリセットし、ステップＳ９１に進む。
【０１２７】
この実施例によれば、プレイヤが使用する或いは使用すべきコントローラから、当該プレイヤのゲームの進行状況に応じて当該プレイヤないしキャラクタの名称を含む音声のメッセージを出力するので、複数人がコントローラを共用する場合であっても、円滑にゲームを楽しむことができる。
【０１２８】
なお、この実施例では、複数のチームが対戦する対戦ゲームについて説明したが、１つのチームがタイムアタックするようなゲームにも適用することができる。かかる場合であっても、複数のプレイヤがコントローラを交代で使用（共用）し、ゲームの進行状況に応じた、プレイヤないしキャラクタの名称を含む音声のメッセージがコントローラのスピーカから出力される。
【０１２９】
また、この実施例では、モニタの周辺にマーカを設け、コントローラにマーカから出力される赤外光を撮像するための撮像装置を設けることによってコントローラの指示位置を検出するようにしたが、これに限られる必要はない。たとえば、コントローラにマーカを設け、モニタの周辺に撮像装置を設けるようにしてもよい。また、撮像装置に代えて受光センサ等を用いてもよい。
【０１３０】
さらに、この実施例では、ゲーム装置に無線で接続されたコントローラを使用するようにしたが、有線で接続されたコントローラを使用することも可能である。
【０１３１】
さらにまた、この実施例では、音声メッセージ信号としてディジタルデータである音声メッセージデータをコントローラ２２に送信し、コントローラ２２でそれをＤ／Ａ変換してスピーカ８６から音声メッセージを出力するようにした。しかしながら、アナログの音声信号を音声メッセージ信号としてコントローラ２２に送り、スピーカ８６からそのアナログ音声信号に従って音声メッセージを出力するようにしてもよい。したがって、「音声メッセージ信号」の用語はそれがアナログ音声信号の場合もディジタル音声データの場合も包含していると解されるべきである。
【図面の簡単な説明】
【０１３２】
【図１】図１はこの発明のゲームシステムの一実施例を示す図解図である。
【図２】図２は図１に示すゲームシステムの電気的な構成を示すブロック図である。
【図３】図３は図１に示すコントローラの外観を説明するための図解図である。
【図４】図４は図１に示すコントローラの電気的な構成を示すブロック図である。
【図５】図５は図１に示すコントローラを用いてゲームプレイするときの状態を概説するための図解図である。
【図６】図６は図１に示すマーカおよびコントローラの視野角を説明するための図解図である。
【図７】図７は対象画像を含む撮像画像の一例を示す図解図である。
【図８】図８は図１に示すモニタに表示されるキャラクタ選択画面の一例を示す図解図である。
【図９】図９はゲーム中におけるゲーム画面の表示方法およびコントローラから出力されるメッセージの例を示す図解図である。
【図１０】図１０は図２に示すメインメモリのメモリマップの一例を示す図解図である。
【図１１】図１１はキャラクタデータの一例およびコントローラＩＤデータの一例を示す図解図である。
【図１２】図１２はコントローラ割当データの一例およびタイマ記憶領域の一例を示す図解図である。
【図１３】図１３は正解数カウンタ記憶領域の一例およびプレイヤ番号カウンタ記憶領域の一例を示す図解図である。
【図１４】図１４は図２に示すＣＰＵの全体処理を示すフロー図である。
【図１５】図１５は図２に示すＣＰＵのキャラクタ選択処理を示すフロー図である。
【図１６】図１６は図２に示すＣＰＵのゲーム処理を示すフロー図である。
【図１７】図１７は図２に示すＣＰＵの告知処理の一部を示すフロー図である。
【図１８】図１８は図２に示すＣＰＵの告知処理の他の一部であって、図１７に後続するフロー図である。
【図１９】図１９は図２に示すＣＰＵの告知処理のその他の一部であって、図１８に後続するフロー図である。
【符号の説明】
【０１３３】
１０  …ゲームシステム
１２  …ビデオゲーム装置
１８  …光ディスク
２２  …コントローラ
２４  …受信ユニット
３０  …メモリカード
３４  …モニタ
３４ａ  …スピーカ
３４ｂ  …センサバー
３６  …ＣＰＵ
３８  …メモリコントローラ
４０  …メインメモリ
４２  …ＧＰＵ
５２  …ＤＳＰ
５４  …ＡＲＡＭ
６２  …オーディオＩ／Ｆ
７０  …プロセサ
７４  …加速度センサ
８０  …撮像情報演算部
８２  …ＬＥＤ
８４  …バイブレータ
８６  …スピーカ
８８  電源回路
【図１】
2008067731.tif 000003
【図２】
2008067731.tif 000004
【図３】
2008067731.tif 000005
【図４】
2008067731.tif 000006
【図５】
2008067731.tif 000007
【図６】
2008067731.tif 000008
【図７】
2008067731.tif 000009
【図８】
2008067731.tif 000010
【図９】
2008067731.tif 000011
【図１０】
2008067731.tif 000012
【図１１】
2008067731.tif 000013
【図１２】
2008067731.tif 000014
【図１３】
2008067731.tif 000015
【図１４】
2008067731.tif 000016
【図１５】
2008067731.tif 000017
【図１６】
2008067731.tif 000018
【図１７】
2008067731.tif 000019
【図１８】
2008067731.tif 000020
【図１９】
2008067731.tif 000021