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