(57)【特許請求の範囲】
【請求項１】
仮想カメラで撮像された仮想空間を描画し、当該仮想空間における音源の音声を出力する情報処理装置のコンピュータにおいて実行される情報処理プログラムであって、
前記仮想カメラまたは前記仮想空間内の所定のキャラクタから見た前記音源の方向を算出する方向算出手段と、
前記音源の方向が所定の方向の場合、前記音源の音声の所定の周波数成分を減衰させることにより当該音声を補正する補正手段と、
前記補正手段で補正した音声を出力する音声出力手段として、前記コンピュータを機能させ、
前記補正手段は、前記仮想カメラまたは前記所定のキャラクタと前記音源との距離に応じて減衰の度合いが異なるように、前記音声の所定の周波数成分を減衰させる、情報処理プログラム。
【請求項２】
前記方向算出手段は、前記仮想カメラの撮像方向または前記所定のキャラクタを基準とした方向と、前記音源の方向との角度を算出する、請求項１に記載の情報処理プログラム。
【請求項３】
前記補正手段は、前記方向算出手段が算出した角度が第１の閾値よりも大きい場合、前記音声を補正する、請求項２に記載の情報処理プログラム。
【請求項４】
前記補正手段は、前記方向算出手段が算出した角度が大きいほど前記音声の補正の度合を高くする、請求項２または３に記載の情報処理プログラム。
【請求項５】
前記補正手段は、前記音源の方向が前記仮想カメラまたは前記所定のキャラクタの後方である場合、前記音声を補正する、請求項１から４の何れかに記載の情報処理プログラム。
【請求項６】
前記補正手段は、前記仮想カメラまたは前記所定のキャラクタと、前記音源との距離にも基づいて前記音声を補正する、請求項１から５の何れかに記載の情報処理プログラム。
【請求項７】
前記補正手段は、前記仮想カメラまたは前記所定のキャラクタと、前記音源との距離が第２の閾値よりも大きい場合、前記音声を補正する、請求項６に記載の情報処理プログラム。
【請求項８】
前記補正手段は、前記距離が大きいほど前記音声の補正の度合を高くする、請求項６または７に記載の情報処理プログラム。
【請求項９】
前記補正手段は、前記角度に応じて補正の度合の最大値を設定し、前記仮想カメラまたは前記所定のキャラクタと、前記音源との距離に基づいて当該最大値の範囲内で補正の度合を決定し、当該補正の度合で前記音声を補正する、請求項２から４の何れかに記載の情報処理プログラム。
【請求項１０】
前記補正手段は、前記音声の所定の周波数成分の音量を減衰させる度合を大きくすることにより、前記音声の補正の度合を高くする、請求項４または８に記載の情報処理プログラム。
【請求項１１】
前記音源または前記音源の音声の種類に応じて前記音声の補正を行うか否かを判定する判定手段として、前記コンピュータをさらに機能させ、
前記補正手段は、前記判定手段によって前記音声の補正を行うと判定された場合、前記音声の補正を行う、請求項１から１０の何れかに記載の情報処理プログラム。
【請求項１２】
前記補正手段は、前記音源または前記音源の音声の種類に応じて前記音声の補正の度合を設定し、当該補正の度合で前記音声を補正する、請求項１から１１の何れかに記載の情報処理プログラム。
【請求項１３】
前記補正手段は、周波数フィルタを用いて前記音声を補正する、請求項１から１２の何れかに記載の情報処理プログラム。
【請求項１４】
前記周波数フィルタは、ローパスフィルタおよびバンドパスフィルタの少なくとも一方である、請求項１３に記載の情報処理プログラム。
【請求項１５】
前記補正手段は、前記距離が長いほど前記所定の周波数成分を減少させる度合いを大きくする、請求項１から１４の何れかに記載の情報処理プログラム。
【請求項１６】
仮想カメラで撮像された仮想空間を描画し、当該仮想空間における音源の音声を出力する情報処理装置であって、
前記仮想カメラまたは前記仮想空間内の所定のキャラクタから見た前記音源の方向を算出する方向算出手段と、
前記音源の方向が所定の方向の場合、前記音源の音声の所定の周波数成分を減衰させることにより当該音声を補正する補正手段と、
前記補正手段で補正した音声を出力する音声出力手段とを備え、
前記補正手段は、前記仮想カメラまたは前記所定のキャラクタと前記音源との距離に応じて減衰の度合いが異なるように、前記音声の所定の周波数成分を減衰させる、情報処理装置。
【請求項１７】
仮想カメラで撮像された仮想空間を描画し、当該仮想空間における音源の音声を出力する情報処理システムであって、
前記仮想カメラまたは前記仮想空間内の所定のキャラクタから見た前記音源の方向を算出する方向算出手段と、
前記音源の方向が所定の方向の場合、前記音源の音声の所定の周波数成分を減衰させることにより当該音声を補正する補正手段と、
前記補正手段で補正した音声を出力する音声出力手段とを備え、
前記補正手段は、前記仮想カメラまたは前記所定のキャラクタと前記音源との距離に応じて減衰の度合いが異なるように、前記音声の所定の周波数成分を減衰させる、情報処理システム。
【請求項１８】
仮想カメラで撮像された仮想空間を描画し、当該仮想空間における音源の音声を出力する情報処理システムにおいて行われる情報処理方法であって、
前記仮想カメラまたは前記仮想空間内の所定のキャラクタから見た前記音源の方向を算出する方向算出ステップと、
前記音源の方向が所定の方向の場合、前記音源の音声の所定の周波数成分を減衰させることにより当該音声を補正する補正ステップと、
前記補正ステップで補正した音声を出力する音声出力ステップとを含み、
前記補正ステップでは、前記仮想カメラまたは前記所定のキャラクタと前記音源との距離に応じて減衰の度合いが異なるように、前記音声の所定の周波数成分を減衰させる、情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、音声の制御を行う情報処理プログラム、情報処理装置、情報処理システム、および情報処理方法に関する。
【背景技術】
【０００２】
従来、仮想３次元空間に配置された音声を発生するオブジェクト（音源）が表示され、当該オブジェクトが存在する方向から音が聞こえるような処理が行われていた（一例として、特許文献１）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−１９５２１０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の技術では、例えば複数の音源に囲まれているような状況において、異なる方向に存在する音源からの音声を区別するためには改善の余地があった。
【０００５】
それ故、本発明の目的は、異なる方向に存在する音源からの音声を区別することが可能な情報処理プログラム、情報処理装置、情報処理システム、および情報処理方法を提供することである。
【課題を解決するための手段】
【０００６】
本発明は、上記の課題を解決するために、以下の構成を採用した。
【０００７】
本発明の一例は、仮想カメラで撮像された仮想空間を描画し、当該仮想空間における音源の音声を出力する情報処理装置のコンピュータにおいて実行される情報処理プログラムである。当該情報処理プログラムは、方向算出手段と、補正手段と、音声出力手段として、上記コンピュータを機能させる。方向算出手段は、上記仮想カメラまたは上記所定のキャラクタから見た上記音源の方向を算出する。補正手段は、上記音源の方向が所定の方向の場合、上記音源の音声に対して所定のフィルタを適用して当該音声を補正する。音声出力手段は、上記補正手段で補正した音声を出力する。
【０００８】
上記によれば、音源が仮想カメラから見て所定の方向（例えば、後方や右方向等）に存在する場合、当該音源の音声に対して所定のフィルタを適用することができる。例えば、音源が仮想カメラの後方に存在する場合に、当該音源の音声が籠るようにして周波数フィルタを適用することができる。
【０００９】
また、他の構成では、上記方向算出手段は、上記仮想カメラの撮像方向または上記所定のキャラクタを基準とした方向と、上記音源の方向との角度を算出してもよい。
【００１０】
上記によれば、例えば仮想カメラの撮像方向と音源の方向との角度を算出することができる。
【００１１】
また、他の構成では、上記補正手段は、上記方向算出手段が算出した角度が第１の閾値よりも大きい場合、上記音声を補正してもよい。
【００１２】
上記によれば、上記角度が所定の閾値より大きい場合に、音声を補正することができる。
【００１３】
また、他の構成では、上記補正手段は、上記方向算出手段が算出した角度が大きいほど上記音声の補正の度合を高くしてもよい。
【００１４】
上記によれば、上記角度が大きいほど補正の度合を高くすることができる。
【００１５】
また、他の構成では、上記補正手段は、上記音源の方向が上記仮想カメラまたは上記所定のキャラクタの後方である場合、上記音声を補正してもよい。
【００１６】
上記によれば、仮想カメラまたは所定のキャラクタの後方に音源が存在する場合に、音声を補正することができる。
【００１７】
また、他の構成では、上記補正手段は、上記仮想カメラまたは上記所定のキャラクタと、上記音源との距離にも基づいて上記音声を補正してもよい。
【００１８】
上記によれば、さらに、仮想カメラまたは所定のキャラクタと、音源との距離にも基づいて、音声を補正することができる。
【００１９】
また、他の構成では、上記補正手段は、上記仮想カメラまたは上記所定のキャラクタと、上記音源との距離が第２の閾値よりも大きい場合、上記音声を補正してもよい。
【００２０】
上記によれば、例えば仮想カメラと音源との距離が第２の閾値よりも大きい場合、音声を補正することができる。すなわち、仮想カメラの近傍存在する音源については音声の補正は行われず、仮想カメラから第２の閾値より離れた音源を補正することができる。
【００２１】
また、他の構成では、上記補正手段は、上記距離が大きいほど上記音声の補正の度合を高くしてもよい。
【００２２】
上記によれば、上記距離が大きいほど補正の度合を高くすることができる。
【００２３】
また、他の構成では、上記補正手段は、上記角度に応じて補正の度合の最大値を設定してもよい。そして、補正手段は、上記仮想カメラまたは上記所定のキャラクタと、上記音源との距離に基づいて当該最大値の範囲内で補正の度合を決定し、当該補正の度合で上記音声を補正してもよい。
【００２４】
上記によれば、上記角度に基づいて補正の度合の最大値が定められ、当該最大値の範囲内で上記距離に基づいて補正の度合を決定することができる。
【００２５】
また、他の構成では、上記補正手段は、上記音声の所定の周波数成分の音量を減衰させる度合を大きくすることにより、上記音声の補正の度合を高くしてもよい。
【００２６】
上記によれば、所定の周波数成分の減衰の度合を大きくすることで、補正の度合を高くすることができる。
【００２７】
また、他の構成では、上記補正手段は、上記音声の所定の周波数成分を減衰させることにより上記音声を補正してもよい。
【００２８】
上記によれば、所定の周波数成分を減衰させることで、音声を補正することができる。
【００２９】
また、他の構成では、上記音源または上記音源の音声の種類に応じて上記音声の補正を行うか否かを判定する判定手段として、上記コンピュータをさらに機能させてもよい。上記補正手段は、上記判定手段によって上記音声の補正を行うと判定された場合のみ、上記音声の補正を行う。
【００３０】
上記によれば、音源または音声の種類に応じて補正する／しないを判定することができる。
【００３１】
また、他の構成では、上記補正手段は、上記音源または上記音源の音声の種類に応じて上記音声の補正の度合を設定し、当該補正の度合で上記音声を補正してもよい。
【００３２】
上記によれば、音源または音声の種類に応じて補正の度合を設定することができる。
【００３３】
また、他の構成では、上記所定のフィルタは、周波数フィルタであってもよい。
【００３４】
上記によれば、周波数フィルタを用いて容易に音声を補正することができる。
【００３５】
また、他の構成では、上記周波数フィルタは、ローパスフィルタおよびバンドパスフィルタの少なくとも一方であってもよい。
【００３６】
上記によれば、周波数フィルタとしてローパスフィルタおよびバンドパスフィルタの少なくとも一方を用いることができる。
【００３７】
なお、本発明の別の一例は、上記情報処理プログラムを実行する情報処理装置（情報処理システム）であってもよい。情報処理システムは、１つの装置によって構成されてもよいし、複数の装置が互いに協働することによって構成されてもよい。さらに、本発明の別の一例は、上記情報処理システムにおいて行われる情報処理方法であってもよい。
【発明の効果】
【００３８】
本発明によれば、異なる方向に存在する音源からの音声を区別することができる。
【図面の簡単な説明】
【００３９】
【図１】ゲームシステム１の構成を示すブロック図
【図２】本実施形態のゲームが実行された場合におけるテレビ２に表示される映像（画像）の一例を示す図
【図３】図２に示す画像が表示された場合における各オブジェクトをゲーム空間の上方から見た図であり、ゲーム空間に配置された各オブジェクトの位置関係を示す図
【図４】本実施形態のゲームが実行された場合におけるテレビ２に表示される映像（画像）の他の例を示す図
【図５】図４に示す画像が表示された場合における各オブジェクトをゲーム空間の上方から見た図であり、ゲーム空間に配置された各オブジェクトの位置関係を示す図
【図６】音量計算用マイク６２と音源５３との距離に基づく、当該音源５３からの音声の音量を示す図
【図７】音源５３の左右方向の定位（左右定位）を示す図
【図８】音源５３の前後方向の定位（前後定位）を示す図
【図９】定位計算用マイク６１、音量計算用マイク６２および音源５３が所定の位置関係で配置された場合の、音源５３の左右定位、前後定位および音量を示す図
【図１０】矢オブジェクト（音源５４）がゲーム空間を仮想カメラ６０に向かって移動している様子をゲーム空間の上方から見た図
【図１１】仮想カメラ６０の後方に音源５２が存在する場合において、各オブジェクトをゲーム空間の上方から見た図
【図１２】後方フィルタ用マイク６４と音源５２との位置関係に基づいたフィルタ値を示す図
【図１３】フィルタ値の違いによる周波数フィルタリングを示す図
【図１４】ゲーム処理において用いられる各種データを示す図
【図１５】ゲーム装置３において実行されるメイン処理の流れを示すメインフローチャート
【図１６】図１５に示す定位・音量算出処理（ステップＳ４）の詳細な流れを示すフローチャート
【図１７】図１５に示すフィルタ処理（ステップＳ５）の詳細な流れを示すフローチャート
【発明を実施するための形態】
【００４０】
（ゲームシステムの全体構成）
以下、図面を参照して、本発明の一実施形態に係るゲームシステム１について説明する。図１は、ゲームシステム１の構成を示すブロック図である。図１において、ゲームシステム１は、表示装置（例えば、テレビジョン受像器等（以下、「テレビ」）と記載する）２、ゲーム装置３、光ディスク４、コントローラ５を含む。ゲームシステム１は、コントローラ５を用いたゲーム操作に基づいてゲーム装置３においてゲーム処理を実行し、ゲーム処理によって得られるゲーム画像をテレビ２に表示するものである。
【００４１】
ゲーム装置３には、当該ゲーム装置３に対して交換可能に用いられる情報記憶媒体の一例である光ディスク４が脱着可能に挿入される。光ディスク４には、ゲーム装置３において実行されるための情報処理プログラム（典型的にはゲームプログラム）が記憶されている。
【００４２】
ゲーム装置３には、テレビ２が接続コードを介して接続される。テレビ２は、ゲーム装置３において実行されるゲーム処理によって得られるゲーム画像を表示する。テレビ２はスピーカ２ａを有しており、スピーカ２ａは、上記ゲーム処理の結果得られるゲーム音声を出力する。なお、他の実施形態においては、スピーカ２ａはテレビ２とは別に設けられてもよい。ゲーム音声は、モノラルスピーカから出力されてもよいし、ステレオスピーカから出力されてもよい。また、ゲーム音声は、５．１チャンネルサラウンドスピーカから出力されてもよい。
【００４３】
コントローラ５は、自機に対する操作に基づく操作データをゲーム装置３に与えるものである。コントローラ５とゲーム装置３とは無線（有線でもよい）によって通信可能である。また、図１では、ゲームシステム１に含まれるコントローラ５は１つとするが、ゲームシステム１は複数のコントローラ５を含んでいてもよい。
【００４４】
コントローラ５には、複数の操作ボタン（方向指示のための十字ボタンや複数のプッシュボタン等）が設けられ、ユーザによる当該操作ボタンに対する操作情報が操作データとしてコントローラ５からゲーム装置３に送信される。
【００４５】
ゲーム装置３は、ＣＰＵ１０、システムＬＳＩ１１、外部メインメモリ１２、ディスクドライブ１４、およびＡＶ−ＩＣ１５等を有する。
【００４６】
ＣＰＵ１０は、上記ゲームプログラムを実行することによってゲーム処理を実行するものであり、ゲームプロセッサとして機能する。ＣＰＵ１０は、システムＬＳＩ１１に接続される。システムＬＳＩ１１には、ＣＰＵ１０の他、外部メインメモリ１２、ディスクドライブ１４、ＡＶ−ＩＣ１５およびコントローラ通信モジュール１９が接続される。システムＬＳＩ１１は、それに接続される各構成要素間におけるデータ転送の制御、表示すべき画像の生成、外部装置からのデータの取得等の処理を行う。揮発性の外部メインメモリ１２は、光ディスク４から読み出されたゲームプログラムを記憶したり、各種データを記憶したりするものであり、ＣＰＵ１０のワーク領域やバッファ領域として用いられる。ディスクドライブ１４は、光ディスク４からプログラムデータや音声データ等を読み出し、内部メインメモリ１１ｄまたは外部メインメモリ１２に読み出したデータを書き込む。
【００４７】
システムＬＳＩ１１には、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｏｒ  Ｕｎｉｔ）１１ａ、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）１１ｂ、ＶＲＡＭ（Ｖｉｄｅｏ  ＲＡＭ）１１ｃ、および内部メインメモリ１１ｄが設けられる。図示は省略するが、これらは内部バスによって互いに接続される。
【００４８】
ＧＰＵ１１ａは、描画手段の一部を形成し、ＣＰＵ１０からのグラフィクスコマンド（作画命令）に従って画像を生成する。ＶＲＡＭ１１ｃは、ＧＰＵ１１ａがグラフィクスコマンドを実行するために必要なデータ（ポリゴンデータやテクスチャデータ等のデータ）を記憶する。
【００４９】
ＤＳＰ１１ｂは、オーディオプロセッサとして機能し、内部メインメモリ１１ｄや外部メインメモリ１２に記憶される音声データや音色データを用いて、再生用の音声データを生成する。
【００５０】
ゲーム装置３において生成される画像および音声のデータは、ＡＶ−ＩＣ１５によって読み出される。ＡＶ−ＩＣ１５は、読み出した画像データをＡＶコネクタ１６を介してテレビ２に出力するとともに、読み出した音声データを、テレビ２に内蔵されるスピーカ２ａに出力する。これによって、テレビ２に画像が表示されるとともにスピーカ２ａから音が出力される。
【００５１】
ゲーム装置３は、コントローラ５からの操作データを受信することが可能である。すなわち、システムＬＳＩ１１は、コントローラ５から送信される操作データをアンテナ２３およびコントローラ通信モジュール１９を介して受信し、内部メインメモリ１１ｄまたは外部メインメモリ１２のバッファ領域に記憶（一時記憶）する。
【００５２】
なお、ゲームシステム１は単なる一例であり、後述するゲーム処理（情報処理）はどのようなシステムにおいて行われてもよい。
【００５３】
（ゲーム処理の概要）
次に、本実施形態のゲームシステム１において実行されるゲーム処理の概要について説明する。図２は、本実施形態のゲームが実行された場合におけるテレビ２に表示される映像（画像）の一例を示す図である。図２に示すように、テレビ２には、プレイヤキャラクタ５１、音源５２ａ、音源５２ｂ、および、音源５２ｃ（以下では単に「音源５２」と総称することがある）が表示される。本実施形態では、プレイヤキャラクタ５１が３次元のゲーム空間（仮想空間）に配置され、当該プレイヤキャラクタ５１の背後に設定された仮想カメラでゲーム空間を撮像することにより、当該プレイヤキャラクタ５１を含む画像がテレビ２に表示される。仮想カメラの注視点は、プレイヤキャラクタ５１の頭部に設定される。プレイヤはコントローラ５を用いて当該プレイヤキャラクタ５１をゲーム空間内で移動させたり、ゲーム空間に登場する敵キャラクタを倒したりしながら、ゲームを進行させる。本実施形態のゲームでは、様々なゲームシーンが用意されており、例えば、図２に示すようなプレイヤキャラクタ５１が滝および川に囲まれたようなゲームシーンや洞窟内のゲームシーン等が用意される。
【００５４】
音源５２は、音声（サウンド）を発する滝オブジェクトであり、ゲーム空間に配置された仮想オブジェクトである。音声は、音源５２の位置（滝オブジェクトが表示された領域の所定位置）から発生し、ゲーム装置３は、当該音声をゲーム空間に配置された仮想マイクで集音することで、音源５２からの音声をスピーカから出力させる。
【００５５】
図３は、図２に示す画像が表示された場合における各オブジェクトをゲーム空間の上方から見た図であり、ゲーム空間に配置された各オブジェクトの位置関係を示す図である。図３に示すように、プレイヤキャラクタ５１の周囲には、音源５２ａ〜５２ｃが配置され、仮想カメラ６０は、プレイヤキャラクタ５１から所定距離離れた位置に配置される。また、ゲーム空間には、定位計算用マイク６１と、音量計算用マイク６２とが配置される。定位計算用マイク６１は、仮想カメラ６０の位置に配置される。音量計算用マイク６２は、仮想カメラ６０の撮像軸上の位置であって、仮想カメラ６０の注視点（プレイヤキャラクタ５１の位置）と仮想カメラ６０との間の所定位置（例えば、中間）に配置される。プレイヤがコントローラ５を用いて（例えば、コントローラ５の十字ボタンを用いて）プレイヤキャラクタ５１をゲーム空間内で移動させたり、プレイヤキャラクタ５１の姿勢を変化させると、仮想カメラ６０の位置および姿勢が変化する。図３に示す例では、仮想カメラ６０の注視点は、プレイヤキャラクタ５１の頭部に固定され、プレイヤキャラクタ５１の移動に伴って、仮想カメラ６０の注視点も移動する。
【００５６】
定位計算用マイク６１は、音源５２の定位を計算するための仮想マイクであり、テレビ２には表示されない。ここで、音源５２の定位は、定位計算用マイク６１（仮想カメラ６０）と音源５２との位置関係を示す情報であり、定位計算用マイク６１を基準とした音源５２の相対的な位置を示すものである。音源５２の定位は、定位計算用マイク６１を基準とした音源５２の方向を示す情報であってもよいし、音源５２の方向および距離を示す情報であってもよい。本実施形態においては、音源５２の定位は、定位計算用マイク６１を基準とした（定位計算用マイク６１から見た）音源５２の方向を示す情報であり、具体的には、後述する左右定位および前後定位として表される。音量計算用マイク６２は、音源からの音声の音量（音の大きさ）を計算するための仮想マイクであり、テレビ２には表示されない。定位の計算および音量の計算については、後述する。
【００５７】
図４は、本実施形態のゲームが実行された場合におけるテレビ２に表示される映像（画像）の他の例を示す図である。図４に示すように、本実施形態のゲームの他のシーンでは、キャラクタ５５は、壁オブジェクトに囲まれたゲーム空間を移動する。図４に示す例では、キャラクタ５５、仮想カメラ６０の位置および姿勢、注視点、その他ゲーム空間に配置された他のオブジェクトは、プレイヤの操作によらず、ゲーム装置３によって自動で制御される。本実施形態のゲームでは、プレイヤの操作によってプレイヤキャラクタ５１が制御されてゲームが進行するプレイヤ操作モード（図２）と、プレイヤの操作によらずに自動でキャラクタ５５が移動したり、仮想カメラの注視点が変化したりしてゲームが進行するデモモード（図４）とで実行可能である。なお、キャラクタ５５はプレイヤキャラクタ５１と同じキャラクタであってもよいし、異なるキャラクタであってもよい。また、デモモードにおいては、キャラクタ５５は表示されずに、ゲーム空間を仮想カメラ６０が自動で移動することにより、ゲーム空間の他のオブジェクトの映像や音声を視聴者に視聴させてもよい。
【００５８】
例えば、図４に示すゲームシーンでは、音源としてのドアオブジェクト（音源５３）が自動で開く様子が表示される。ここで、ドアオブジェクト（音源５３）が開くことに伴って、実際にドアが開くときに発生するような音声が発生する。すなわち、音源５３は、音声を発生する音源となる仮想オブジェクトである。また、ドアオブジェクト（音源５３）が自動で開く際、仮想カメラ６０の注視点がキャラクタ５５の頭部から音源５３の近傍に移動する。
【００５９】
図５は、図４に示す画像が表示された場合における各オブジェクトをゲーム空間の上方から見た図であり、ゲーム空間に配置された各オブジェクトの位置関係を示す図である。図５に示すように、仮想カメラ６０の注視点は音源５３の近傍に位置し、当該注視点の近傍には、音量計算用マイク６２が配置される。音源５３からの音声の音量は、音量計算用マイク６２と音源５３との距離によって定められる。音量計算用マイク６２は音源５３の近傍に位置するため、スピーカからは比較的大きな音量の音声（ドアが開くときに発生するような効果音）が出力される。音量計算用マイク６２は、仮想カメラ６０の注視点近傍の所定位置に固定される。仮に、図４に示すシーンにおいて仮想カメラ６０の注視点がキャラクタ５５の頭部に位置する場合、音量計算用マイク６２もキャラクタ５５の近傍に位置するため、音量計算用マイク６２と音源５３との距離は比較的遠くなる。このため、仮想カメラ６０の注視点がキャラクタ５５の頭部に位置する場合は、スピーカからは比較的小さな音量の音声が出力される。しかしながら、実際には、図４および図５に示すように仮想カメラ６０の注視点は音源５３の近傍に設定されるため、ドアオブジェクト（音源５３）が開く際には比較的大きな音量の音声がスピーカから出力される。
【００６０】
仮想カメラ６０の注視点は、プレイヤによる操作に応じて変化したり、ゲーム装置３によって自動で変化したりする。例えば、上記プレイヤ操作モード（図２）では、仮想カメラ６０の注視点は、プレイヤキャラクタ５１の頭部に固定されるため、プレイヤがコントローラ５を用いてプレイヤキャラクタ５１を移動させると、仮想カメラ６０の注視点も移動する。また、上記音量計算用マイク６２は、仮想カメラ６０とプレイヤキャラクタ５１との間に設定され、仮想カメラ６０の注視点に基づいた位置に設定される。プレイヤの操作によってプレイヤキャラクタ５１が移動することに伴って、音量計算用マイク６２も移動するため、プレイヤキャラクタ５１の周辺に存在する音源からの音声の音量を比較的大きくすることができる。
【００６１】
また、上記デモモード（図４）では、仮想カメラ６０の注視点はゲーム装置３によって自動で変化し、音量計算用マイク６２は、仮想カメラ６０の注視点の近傍に固定される。デモモードにおいては、ゲーム製作者は、ゲームシーンによってプレイヤ（視聴者）に特定のオブジェクトに注目させたい場合があり、ゲーム製作者は、当該特定のオブジェクトに仮想カメラ６０の注視点が移動するように、プログラムする。例えば、図４に示すように、ドアオブジェクト（音源５３）が自動で開いてキャラクタ５５を音源５３の先の進路に誘導させるようなゲームシーンでは、視聴者をドアオブジェクトに注目させるため、仮想カメラ６０の注視点を当該音源５３の近傍に設定する。このようなゲームシーンでは、仮想カメラ６０の注視点をドアオブジェクトの近傍に設定するとともに、スピーカから出力される音源５３からの音声の音量を比較的大きくする。これにより、視聴者をドアオブジェクトに注目させることができる。
【００６２】
また、プレイヤ操作モードやデモモードにおいて、プレイヤ（または視聴者）による操作に応じて仮想カメラ６０の注視点を特定のオブジェクトに設定することが可能であってもよい。プレイヤ（または視聴者）による操作に応じて仮想カメラ６０の注視点が特定のオブジェクトに設定されるということは、プレイヤ（または視聴者）が当該オブジェクトに注目したいためであると考えられる。このため、スピーカから出力される当該特定のオブジェクトからの音声の音量を比較的大きくすることにより、プレイヤ（または視聴者）を当該オブジェクトにより注目させることができる。
【００６３】
次に、定位の計算および音量の計算について、図６から図９を参照して説明する。図６は、音量計算用マイク６２と音源５３との距離に基づく、当該音源５３からの音声の音量を示す図である。図６に示すように、音源５３からの音声の音量は、音量計算用マイク６２と音源５３との距離に応じて変化する。音源５３からの音声の音量は、例えば、０〜１．０の範囲で定められる。例えば、音源５３の位置が音量計算用マイク６２の位置と一致している場合、当該音源５３からの音声の音量は、最大値である１．０に設定される。また、音源５３が所定距離以上離れている場合、当該音源５３からの音声の音量は０に設定され、この場合、スピーカから当該音声は出力されない。例えば、音源５３からの音声の音量は、音量計算用マイク６２と音源５３との距離に比例して定められてもよい。例えば、図６に示すように、音量計算用マイク６２と音源５３との距離がＬ１である場合、音源５３からの音声の音量は０．９に設定される。すなわち、音源５３が、音量計算用マイク６２から半径Ｌ１の円上の任意の位置に存在する場合、音源５３からの音声の音量は０．９に設定される。また、上述の音源５２（滝オブジェクト）からの音声の音量についても、同様に、音源５２と音量計算用マイク６２との距離に応じて変化する。なお、同じ音源からの同じ音声の音量は、音量計算用マイク６２と当該音源との距離に応じて定められるが、異なる音源からの音声の音量は、音源毎に定められてもよい。例えば、音源５２と音源５３とが音量計算用マイク６２から等距離にある場合、スピーカから出力された際の、音源５２からの音声の音量の方が音源５３からの音声の音量よりも大きくてもよい。例えば、各音源には基本的な音量（基本音量）が設定され、ゲーム装置３は、当該基本音量に、音源と音量計算用マイク６２との距離に応じた係数（当該距離に応じて０〜１．０の範囲で変化する係数）をかけることにより、距離に応じた音量を計算してもよい。また、同じ音源から異なる種類の音声が出力され、音声の種類毎に基本音量が異なっていてもよい。この場合、ゲーム装置３は、音声の種類毎の基本音量に、音源と音量計算用マイク６２との距離に応じた係数をかけることにより、距離に応じた音量を計算してもよい。
【００６４】
図７は、音源５３の左右方向の定位（左右定位）を示す図である。音源５３の定位は、音源５３と定位計算用マイク６１との位置関係によって定められる。すなわち、音源５３の定位は、マイク６１から見た（マイク６１を基準とした）音源５３の相対的な位置および姿勢を示す。具体的には、音源５３の定位は、左右定位と前後定位とによって表される。
【００６５】
音源５３の左右定位は、定位計算用マイク６１（仮想カメラ６０）を基準として、音源５３が左右方向にどの程度ずれているかを示すものである。具体的には、音源５３の左右定位は、仮想カメラ６０の撮像方向ベクトルと、定位計算用マイク６１から音源５３に向かうベクトルとの角度Ｄ１によって定められる。仮想カメラ６０の撮像方向を０度として時計回りを正の角度とした場合において、例えば、６０度〜１２０度の範囲に音源５３が存在する場合、音源５３の左右定位は１．０に定められる。また、例えば、−６０度〜−１２０度の範囲に音源５３が存在する場合、音源５３の左右定位は−１．０に定められる。また、角度Ｄ１が０度〜６０度である場合は、音源５３の左右定位は０〜１．０の範囲で定められる。例えば、音源５３の左右定位は、角度Ｄ１をパラメータとする正弦関数によって定められてもよいし、角度Ｄ１の値に比例して定められてもよい。また、角度Ｄ１が０度〜−６０度である場合は、音源５３の左右定位は０〜−１．０の範囲で定められ、例えば、左右定位は、角度Ｄ１をパラメータとする正弦関数によって定められてもよいし、角度Ｄ１の値に比例して定められてもよい。また、角度Ｄ１が１２０度〜１８０度である場合は、音源５３の左右定位は１．０〜０の範囲で定められ、角度Ｄ１が−１２０度〜−１８０度である場合は、音源５３の左右定位は−１．０〜０の範囲で定められる。例えば、図７に示す場合、音源５３は、定位計算用マイク６１の左右方向に関して、左側にわずかにずれているため、音源５３の左右定位は、−０．１となる。
【００６６】
図８は、音源５３の前後方向の定位（前後定位）を示す図である。音源５３の前後定位は、定位計算用マイク６１（仮想カメラ６０）を基準として、音源５３が前後方向にどの程度ずれているかを示すものである。具体的には、音源５３の前後定位は、仮想カメラ６０の撮像方向に対して右向きのベクトル（右向きベクトル）と、定位計算用マイク６１から音源５３に向かうベクトルとの角度Ｄ２によって定められる。右向きベクトルの方向を０度として時計回りを正の角度とした場合において、例えば、６０度〜１２０度の範囲に音源５３が存在する場合、音源５３の前後定位は１．０に定められる。また、例えば、−６０度〜−１２０度の範囲に音源５３が存在する場合、音源５３の前後定位は−１．０に定められる。角度Ｄ２が０度〜６０度である場合は、音源５３の前後定位は０〜１．０の範囲で定められる。例えば、音源５３の前後定位は、角度Ｄ２をパラメータとする正弦関数によって定められてもよいし、角度Ｄ２の値に比例して定められてもよい。また、角度Ｄ２が０度〜−６０度である場合は、音源５３の前後定位は０〜−１．０の範囲で定められ、例えば、前後定位は、角度Ｄ２をパラメータとする正弦関数によって定められてもよいし、角度Ｄ２の値に比例して定められてもよい。また、角度Ｄ２が１２０度〜１８０度である場合は、音源５３の前後定位は１．０〜０の範囲で定められ、角度Ｄ２が−１２０度〜−１８０度である場合は、音源５３の前後定位は−１．０〜０の範囲で定められる。例えば、図８に示す場合、音源５３は定位計算用マイク６１の前方に位置するため、音源５３の前後定位は、−１．０となる。
【００６７】
なお、ゲーム空間の上下方向（垂直方向）に関しては、音源５３の定位は変化しないものとする。すなわち、音源５３およびマイク６１がゲーム空間内の所定の平面（地面）上に存在する場合において、音源５３またはマイク６１をゲーム空間の上下方向（所定の平面に対して垂直方向）に移動させた場合も、音源５３の定位は変化しないものとする。
【００６８】
図９は、定位計算用マイク６１、音量計算用マイク６２および音源５３が所定の位置関係で配置された場合の、音源５３の左右定位、前後定位および音量を示す図である。図９に示すように、音源５３が、仮想カメラ６０のほぼ正面に位置し、かつ、当該仮想カメラ６０の撮像方向に対してわずかに左にずれている場合、音源５３の前後定位は−１．０となり、左右定位は−０．１となる。また、音源５３が音量計算用マイク６２から比較的近い場合は、音量は０．９となる。
【００６９】
音源５３の音声がスピーカから出力される場合、音源５３の定位によってプレイヤが感じる音源の位置が異なる。例えば、左右定位が０で前後定位が−１の場合、プレイヤは前方から音声が発生したと感じ、左右定位が０で前後定位が１の場合、プレイヤは後方から音声が発生したと感じる。また、例えば、左右定位が１で前後定位が０の場合、プレイヤは右方向から音声が発生したと感じ、左右定位が−１で前後定位が０の場合、プレイヤは左方向から音声が発生したと感じる。図９に示すように、定位計算用マイク６１は、仮想カメラ６０の位置に設定されるため、プレイヤは、仮想カメラ６０から見た音源５３の方向から当該音源５３の音声が発生したと感じることができる。
【００７０】
一方、音量計算用マイク６２は、仮想カメラ６０の注視点に基づいて設定され、図９に示す例では、音源５３の近傍に位置する。このため、音源５３からの音声が比較的大きな音量でスピーカから出力される。例えば、音量計算用マイク６２と定位計算用マイク６１とが一致する場合において、音量計算用マイク６２が仮想カメラ６０の位置に設定されると、音源５３と音量計算用マイク６２（定位計算用マイク６１）との距離が大きくなってしまう。このため、音源５３からの音声は比較的小さな音量となってしまう。一方で、音量計算用マイク６２と定位計算用マイク６１とが一致する場合において、音源５３の音量を大きくするために、音量計算用マイク６２（定位計算用マイク６１）を音源５３の近傍に設定すると、音源５３の定位が変化してしまう。例えば、図９に示す音量計算用マイク６２と同じ位置に定位計算用マイク６１が位置する場合、定位計算用マイク６１の略左方向に音源５３が位置することになるため、当該定位計算用マイク６１から見た音源５３の前後定位は、０となり、左右定位は、−１．０となる。このため、プレイヤが、仮想カメラ６０で撮像された画像を見ながら音源５３からの音声を聞くと、プレイヤは、テレビ２に表示された音源５３とは異なる方向（左方向）から当該音源５３の音声が発生したかのように感じることになる。従って、定位計算用マイク６１を音源５３に近づけるとプレイヤは違和感を感じることがある。しかしながら、本実施形態のゲームでは、音量計算用マイク６２と定位計算用マイク６１とが別々に設けられて、音量計算用マイク６２を音源に近づけることにより、音源の定位を変化させることなく、音源の音量を変化させることができる。
【００７１】
また、音量計算用マイク６２が定位計算用マイク６１（仮想カメラ６０）と同じ位置に存在する場合、仮想カメラ６０によって撮像されない他のオブジェクトが仮想カメラ６０の近傍に存在すると、テレビ２には表示されないオブジェクトの音声の音量が大きくなってしまう。テレビ２には表示されないオブジェクトの音声の音量が大きいと、プレイヤは違和感を感じたり、混乱したりすることがある。しかしながら、本実施形態では、音量計算用マイク６２と定位計算用マイク６１とが別々に設けられる。上記デモモードでは、音量計算用マイク６２は、仮想カメラ６０の注視点の近傍に配置される。また、上記プレイヤ操作モードでは、プレイヤキャラクタ５１と仮想カメラ６０との間に、音量計算用マイク６２が配置される。このため、仮想カメラ６０によって撮像されないオブジェクトの音量を抑え、仮想カメラ６０の注視点近傍に存在するオブジェクト、あるいは、プレイヤキャラクタ５１および仮想カメラ６０の周辺に存在するオブジェクトからの音声の音量を大きくすることができる。
【００７２】
次に、ゲーム空間内を移動するオブジェクトが発する音声の処理について説明する。図１０は、矢オブジェクト（音源５４）がゲーム空間を仮想カメラ６０に向かって移動している様子をゲーム空間の上方から見た図である。図１０に示すように、本実施形態のゲームでは、定位計算用マイク６１、音量計算用マイク６２に加えて、ドップラー効果用マイク６３がゲーム空間内に設定される。ドップラー効果用マイク６３は、テレビ２には表示されない仮想マイクである。なお、図１０においてはドップラー効果用マイク６３は、定位計算用マイク６１から離れた位置に表示されているが、本実施形態においては、ドップラー効果用マイク６３は、定位計算用マイク６１の位置に設定される。したがって、ドップラー効果用マイク６３は、内部的には定義されなくてもよく、定位計算用マイク６１をドップラー効果用マイク６３として後述の処理が行われてもよい。
【００７３】
矢オブジェクトは、矢が空気中を移動する際に矢と空気との摩擦によって発生するような音声（効果音）を発しながら、ゲーム空間を移動速度ｖで移動する移動オブジェクトである。本実施形態のゲームでは、矢オブジェクトの移動によるドップラー効果を考慮して、矢オブジェクト（音源５４）から発せられる音声の周波数を補正する。また、ドップラー効果用マイク６３（仮想カメラ６０）がゲーム空間を移動する場合にも、ドップラー効果による音声の補正が行われる。すなわち、音源５４とマイク６３との相対運動に応じて、音源５４の音声が補正される。具体的には、音源５４の速度とドップラー効果用マイク６３の速度とに応じて音源５４の音声の周波数が変化する。従って、例えば、音源５４がドップラー効果用マイク６３に近づいてきて通り過ぎる際に当該音源５４の音声が変化する。
【００７４】
なお、本実施形態では、ドップラー効果用マイク６３は、定位計算用マイク６１（仮想カメラ６０）の位置に配置されるものとしたが、ドップラー効果用マイク６３は、定位計算用マイク６１から離れた位置に配置されてもよい。例えば、図１０に示すように、ドップラー効果用マイク６３は、仮想カメラ６０の撮像方向の所定位置に配置されてもよい。この場合、仮想カメラ６０に向かって移動する音源５４が、ドップラー効果用マイク６３を通り過ぎる際に当該音源５４からの音声の周波数が変化するが、その時点では、当該音源５４は、仮想カメラ６０の前方に位置することになる。すなわち、聴覚による音源５４の通過のタイミングが視覚による音源５４の通過のタイミングよりも早くなる。また、ドップラー効果用マイク６３は、プレイヤキャラクタ５１の近傍に設けられてもよい。この場合、プレイヤキャラクタ５１の位置で感じられるドップラー効果を再現することができる。
【００７５】
（後方からの音声に対する処理）
次に、音源が仮想カメラ６０の後方に位置する場合の音声の処理について、図１１から図１３を参照して説明する。図１１は、仮想カメラ６０の後方に音源５２が存在する場合において、各オブジェクトをゲーム空間の上方から見た図である。図１１に示すように、仮想カメラ６０（定位計算用マイク６１）の位置には、後方フィルタ用マイク６４が配置される。本実施形態では、音源５２が仮想カメラ６０の後方に位置する場合（仮想カメラ６０の撮像方向と反対側に位置する場合）、当該音源５２からの音声に対してフィルタ処理が行われる。フィルタ処理は、音声に対して周波数フィルタ（ローパスフィルタ、バンドパスフィルタ、ハイパスフィルタ等）を適用することによって、特定の周波数成分の音量を下げる、または、特定の周波数成分をカットする処理である。例えば、ローパスフィルタを用いたフィルタ処理では、所定の周波数以上の成分はカットされる。本実施形態では、ローパスフィルタまたはバンドパスフィルタを用いて、高い周波数成分をカットすることにより、仮想カメラ６０の後方からの音声を籠らせる。
【００７６】
図１２は、後方フィルタ用マイク６４と音源５２との位置関係に基づいたフィルタ値を示す図である。図１２に示すように、仮想カメラ６０（後方フィルタ用マイク６４）の前方に音源５２が位置する場合は、フィルタ値は０に設定される。この場合、音源５２からの音声にはフィルタは適用されないため、当該音声はそのままスピーカから出力される。フィルタ値は、音声に対するフィルタの度合（補正の度合）を示す値である。フィルタ値については後述する。
【００７７】
一方、仮想カメラ６０の後方に音源５２が位置する場合は、フィルタ値は０〜１の範囲で設定される。具体的には、まず、仮想カメラ６０の撮像方向のベクトルと、後方フィルタ用マイク６４から音源５２に向かうベクトルとの角度Ｄ１が算出される。また、後方フィルタ用マイク６４と音源５２との距離Ｌ２が算出される。そして、角度Ｄ１と距離Ｌ２とに基づいて、フィルタ値が算出される。具体的には、角度Ｄ１の絶対値が０度から９０度の場合、フィルタ値は０に設定される。角度Ｄ１の絶対値が９０度から１８０度の場合において、距離Ｌ２が閾値Ｌｍ以上の場合は、当該角度Ｄ１の絶対値に応じた最大値（１以下の値）に設定される。角度Ｄ１の絶対値が９０度から１８０度の場合において、距離Ｌ２が閾値Ｌｍ未満の場合は、当該角度Ｄ１に応じた最大値を距離Ｌ２に応じて補正する（減ずる）ことにより、フィルタ値が算出される。例えば、角度Ｄ１に応じた最大値は、角度Ｄ１に比例して定められてもよし、角度Ｄ１をパラメータとする正弦関数によって定められてもよい。また、例えば、角度Ｄ１の絶対値が１８０度である場合、フィルタ値の最大値は１に設定される。そして、距離Ｌ２が上記閾値Ｌｍ未満である場合は、例えば、距離Ｌ２を上記閾値Ｌｍで割った値が、フィルタ値として算出されてもよい。また、例えば、角度Ｄ１の絶対値が１３５度である場合の最大値は０．５に設定され、距離Ｌ２が上記閾値Ｌｍの１／２である場合は、フィルタ値は、当該最大値の１／２、すなわち、０．２５に設定されてもよい。
【００７８】
なお、後方フィルタ用マイク６４と音源５２との距離Ｌ２が閾値Ｌ０（＜Ｌｍ）よりも小さい場合、上記角度Ｄ１の絶対値が９０度より大きくても、すなわち、音源５２が仮想カメラ６０の後方に存在していても、フィルタ値は０に設定される。従って、音源５２が後方フィルタ用マイク６４から閾値Ｌ０の範囲内に存在する場合、当該音源５２からの音声はフィルタリングされずに、そのままスピーカから出力される。
【００７９】
ここで、「フィルタ値」は、音源の音声を補正する度合を示すものである。図１３は、フィルタ値の違いによる周波数フィルタリングを示す図である。図１３において、横軸は周波数を示し、縦軸は音量の割合を示す。図１３に示すように、フィルタ値が０の場合、全周波数において音量の割合は１になる。このため、音声の各周波数成分の音量は維持され、音源からの音声がそのままスピーカから出力される。一方、フィルタ値が例えば０．５である場合、特定の周波数Ｆ０よりも高い周波数成分の音量は、フィルタ値０．５で示される曲線に従って補正される。例えば、図１３に示すように、フィルタ値が０．７である場合において、周波数Ｆ１の成分の音量は補正前の音量の０．７倍に設定される。また、例えば、フィルタ値が１である場合、周波数Ｆ０以上の成分の音量は０に設定されるため、周波数Ｆ０以上の成分はカットされる。このように、フィルタ値によって音声が補正され、補正された後の音声がスピーカから出力される。具体的には、図１３に示すようなローパスフィルタが適用されると、補正後の音声は補正前の音声よりも高周波数成分がカットあるいは減衰されるため、籠ったような音声が出力される。なお、図１３に示すフィルタの曲線（周波数Ｆ０以上の曲線部分）の形状は、どのような形状でもよい。例えば、周波数Ｆ０以上の部分は、直線であってもよいし、所定の音量（割合）に収束するような曲線であってもよい。また、図１３では、縦軸は音量の割合を示したが、縦軸は音量を減少させる値を示してもよい。
【００８０】
以上のように、本実施形態では、音源が仮想カメラ６０の後方（角度Ｄ１の絶対値が９０度から１８０度の範囲）に存在する場合、音源からの音声に対して周波数フィルタが適用される。具体的には、音源が仮想カメラ６０の後方に存在するほど、フィルタ値が大きくなる（補正の度合が高くなる）。また、音源が仮想カメラ６０から離れるほど、フィルタ値が大きくなる（補正の度合が高くなる）。これにより、より後方に存在する音源ほど音が籠り、より遠方に存在する音源ほど音が籠る。従って、プレイヤは、音源がどの方向に存在するか（仮想カメラ６０の撮像方向と反対方向のどの位置に存在するか）を認識することができる。また、仮想カメラ６０の後方に存在する音源は、テレビ２には表示されないため、そのような表示されないオブジェクトからの音声を籠らせることで、プレイヤはテレビ２に表示されるオブジェクトに注意することができる。また、複数の同じ種類の音源がゲーム空間に存在する場合でもプレイヤは混乱せずにテレビ２に表示されるオブジェクトの音声を聞くことができる。
【００８１】
（ゲーム処理の詳細）
次に、本ゲームシステムにおいて実行されるゲーム処理の詳細を説明する。まず、ゲーム処理において用いられる各種データについて説明する。図１４は、ゲーム処理において用いられる各種データを示す図である。図１４において、ゲーム装置３のメインメモリ（外部メインメモリ１２または内部メインメモリ１１ｄ）に記憶される主なデータが示されている。図１４に示すように、ゲーム装置３のメインメモリには、ゲームプログラム１００、および処理用データ１１０が含まれる。なお、メインメモリには、図１４に示すデータの他、ゲームに登場する各種オブジェクトの画像データやゲームのＢＧＭの音声データ等、ゲームに必要なデータが記憶される。
【００８２】
ゲームプログラム１００は、ゲーム装置３に電源が投入された後の適宜のタイミングで光ディスク４からその一部または全部が読み込まれてメインメモリに記憶される。なお、ゲームプログラム１００は、光ディスク４に代えて、フラッシュメモリやゲーム装置３の外部装置から（例えばインターネットを介して）取得されてもよい。また、ゲームプログラム１００に含まれる一部のプログラムについては、ゲーム装置３内に予め記憶されていてもよい。
【００８３】
処理用データ１１０は、後述するメイン処理（図１５）において用いられるデータである。処理用データ１１０は、キャラクタデータ１１１、音源データ１１２、仮想カメラデータ１１３、マイクデータ１１４を含む。
【００８４】
キャラクタデータ１１１は、プレイヤキャラクタ５１のゲーム空間における位置および姿勢を示すデータを含む。また、キャラクタデータ１１１は、キャラクタ５５のゲーム空間のおける位置および姿勢を示すデータを含む。
【００８５】
音源データ１１２は、音源となる各オブジェクトに関するデータである。音源データ１１２には、音源５２（滝オブジェクト）、音源５３（ドアオブジェクト）、音源５４（矢オブジェクト）等に関するデータが含まれる。具体的には、音源に関するデータには、各音源の位置および姿勢を示すデータ、各音源の定位を示すデータ、各音源の音声データ（音声の波形を示すデータ）、各音源の音声の音量を示すデータ等が含まれる。
【００８６】
仮想カメラデータ１１３は、仮想カメラ６０の位置、姿勢、注視点を示すデータを含む。
【００８７】
マイクデータ１１４は、各マイクに関するデータである。具体的には、マイクデータ１１４には、定位計算用マイク６１、音量計算用マイク６２、ドップラー効果用マイク６３、および後方フィルタ用マイク６４に関するデータが含まれる。すなわち、マイクデータ１１４には、定位計算用マイク６１の位置および姿勢を示すデータ、音量計算用マイク６２の位置および姿勢（位置のみでもよい）を示すデータ、ドップラー効果用マイク６３の位置および姿勢（位置のみでもよい）を示すデータ、および、後方フィルタ用マイク６４の位置および姿勢を示すデータが含まれる。なお、本実施形態では、定位計算用マイク６１の位置および姿勢は、仮想カメラ６０の位置および姿勢と一致する。また、ドップラー効果用マイク６３の位置および姿勢は、定位計算用マイク６１の位置および姿勢と一致する。さらに、後方フィルタ用マイク６４の位置および姿勢は、定位計算用マイク６１の位置および姿勢と一致する。すなわち、これらマイク６１、６３、６４の位置および姿勢は仮想カメラ６０の位置および姿勢と一致する。したがって、定位計算用マイク６１、ドップラー効果用マイク６３、および後方フィルタ用マイク６４に関するデータは、メインメモリに記憶されなくてもよい。すなわち、仮想カメラデータ１１３が、これらマイクに関するデータとして後述するメイン処理において用いられてもよい。
【００８８】
（フローチャートの説明）
次に、ゲーム装置３において実行されるゲーム処理の詳細を、図１５〜図１７を参照して説明する。図１５は、ゲーム装置３において実行されるメイン処理の流れを示すメインフローチャートである。ゲーム装置３の電源が投入されると、ゲーム装置３のＣＰＵ１０は、図示しないブートＲＯＭに記憶されている起動プログラムを実行し、これによってメインメモリ等の各ユニットが初期化される。そして、光ディスク４に記憶されたゲームプログラムがメインメモリに読み込まれ、ＣＰＵ１０によって当該ゲームプログラムの実行が開始される。また、ＣＰＵ１０は、光ディスク４に記憶された音源の音声データを読み込み、メインメモリに記憶する。図１５のフローチャートに示す処理は、以上の処理が完了した後に行われる。
【００８９】
なお、図１５〜図１７に示すフローチャートにおける各ステップの処理は、単なる一例に過ぎず、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよい。また、変数や定数の値等も、単なる一例に過ぎず、必要に応じて他の値を採用してもよい。また、本実施形態では、上記フローチャートの各ステップの処理をＣＰＵ１０が実行するものとして説明するが、上記フローチャートにおける一部のステップの処理を、ＣＰＵ１０以外のプロセッサや専用回路が実行するようにしてもよい。
【００９０】
まず、ステップＳ１において、ＣＰＵ１０は初期処理を実行する。初期処理では、ＣＰＵ１０は、プレイヤによる選択に応じてゲームのモードをプレイヤ操作モードまたはデモモードに設定する。また、ＣＰＵ１０は、３次元のゲーム空間を構築し、ゲーム空間に登場するプレイヤキャラクタ５１やキャラクタ５５、音源５２〜５４、マイク６１〜６４、仮想カメラ６０、その他ゲーム空間に配置されるオブジェクト等を初期位置に配置する。また、ＣＰＵ１０は、ゲーム処理で用いる各種パラメータの初期値を設定する。ＣＰＵ１０は、ステップＳ１の処理の後、ステップＳ２の処理を実行する。以降、ステップＳ２〜Ｓ９の一連の処理からなる処理ループが所定時間（１フレーム時間。例えば１／６０秒）に１回の割合で繰り返し実行される。
【００９１】
ステップＳ２において、ＣＰＵ１０は、コントローラ５から送信されてメインメモリに記憶された操作データを取得する。コントローラ５は操作データ（各ボタン操作に関するデータ等）を所定の時間間隔でゲーム装置３へ繰り返し送信する。ゲーム装置３においては、コントローラ通信モジュール１９が操作データを逐次受信し、受信された操作データがメインメモリに逐次記憶される。ステップＳ２においては、ＣＰＵ１０は、最新の操作データをメインメモリから読み出す。ステップＳ２の処理の後、ステップＳ３の処理が実行される。
【００９２】
ステップＳ３において、ＣＰＵ１０はゲーム処理を実行する。当該ゲーム処理では、ＣＰＵ１０は、ステップＳ２で取得した操作データに基づいて、プレイヤキャラクタ５１をゲーム空間内で移動させたり、プレイヤキャラクタ５１の姿勢を変化させたり、仮想カメラ６０の位置および／または姿勢を変化させたりする。また、ＣＰＵ１０は、各マイク（６１〜６３）の位置および／または姿勢を変化させる。また、ＣＰＵ１０は、音源５４を移動させたり、他のオブジェクト（例えば、敵キャラクタ等）を移動させたりする。なお、デモモードでゲーム装置３が動作している場合には、ＣＰＵ１０は、所定のアルゴリズムに従ってキャラクタ５５を移動させたり、仮想カメラ６０の位置および姿勢を変化させたりする。次に、ＣＰＵ１０は、ステップＳ４の処理を実行する。
【００９３】
ステップＳ４において、ＣＰＵ１０は、定位・音量算出処理を実行する。定位・音量算出処理では、ＣＰＵ１０は、各音源の定位および音量を算出する。以下、図１６を参照して、定位・音量算出処理の詳細について説明する。
【００９４】
図１６は、図１５に示す定位・音量算出処理（ステップＳ４）の詳細な流れを示すフローチャートである。
【００９５】
ステップＳ１１において、ＣＰＵ１０は、ゲーム空間に配置された複数の音源の中から、処理する１つの音源（例えば、音源５２ａ）を選択する。ＣＰＵ１０は、ステップＳ１１の後、ステップＳ１２の処理を実行する。なお、ゲーム空間内に音源のオブジェクトが無い場合は、ＣＰＵ１０は、当該定位・音量算出処理を終了する。
【００９６】
ステップＳ１２において、ＣＰＵ１０は、ステップＳ１１で選択した音源と、音量計算用マイク６２との距離より、音量を算出する。具体的には、ＣＰＵ１０は、メインメモリを参照して、音源の位置と音量計算用マイク６２の位置とに基づいて、音源と音量計算用マイク６２との距離を算出する。そして、ＣＰＵ１０は、当該距離に応じて、音量を算出する。より具体的には、上述したように、ＣＰＵ１０は、距離が大きいほど音量が小さくなるように（距離に比例して音量が小さくなるように）、音量を算出する。算出された音量は、メインメモリに記憶される。次に、ＣＰＵ１０は、ステップＳ１３の処理を実行する。
【００９７】
ステップＳ１３において、ＣＰＵ１０は、ステップＳ１１で選択した音源と、定位計算用マイク６１との角度より、定位を算出する。具体的には、ＣＰＵ１０は、メインメモリを参照して、定位計算用マイク６１の位置および姿勢と、音源の位置とに基づいて、当該音源の定位（左右定位および前後定位）を算出する。より具体的には、ＣＰＵ１０は、上記角度Ｄ１（図７）および上記角度Ｄ２を算出して、音源の左右定位および前後定位を算出する。算出した定位はメインメモリに記憶される。次に、ＣＰＵ１０は、ステップＳ１４の処理を実行する。
【００９８】
ステップＳ１４において、ＣＰＵ１０は、ステップＳ１１で選択した音源と、ドップラー効果用マイク６３との相対速度より、ドップラー効果を算出する。具体的には、ＣＰＵ１０は、選択した音源の音声の各周波数成分を、相対速度に基づいて補正する。ドップラー効果の計算結果は、メインメモリに記憶される。次に、ＣＰＵ１０は、ステップＳ１５の処理を実行する。
【００９９】
ステップＳ１５において、ＣＰＵ１０は、すべての音源について処理済みか否かを判定する。上記ステップＳ１１からステップＳ１５の処理が繰り返し実行されることにより、ゲーム空間に存在するすべての音源について、処理が行われる。判定結果が否定の場合、ＣＰＵ１０は、ステップＳ１１の処理を再び実行する。一方、判定結果が肯定の場合、ＣＰＵ１０は、定位・音量算出処理を終了する。
【０１００】
図１５に戻り、ＣＰＵ１０は、次にステップＳ５において、フィルタ処理を実行する。ステップＳ５のフィルタ処理では、ＣＰＵ１０は、仮想カメラ６０（後方フィルタ用マイク６４）の後方に存在する音源からの音声について周波数フィルタを適用する。以下、図１７を参照して、フィルタ処理の詳細について説明する。
【０１０１】
図１７は、図１５に示すフィルタ処理（ステップＳ５）の詳細な流れを示すフローチャートである。
【０１０２】
ステップＳ２１において、ＣＰＵ１０は、ゲーム空間に配置された複数の音源の中から、処理する１つの音源（例えば、音源５２ａ）を選択する。ＣＰＵ１０は、ステップＳ２１の後、ステップＳ２２の処理を実行する。なお、ゲーム空間内に音源のオブジェクトが無い場合は、ＣＰＵ１０は、当該フィルタ処理を終了する。
【０１０３】
ステップＳ２２において、ＣＰＵ１０は、ステップＳ２１で選択した音源がフィルタを適用する音源か否かを判定する。フィルタを適用する音源か否かは予め定められており、例えば、音源の種類によって定められる。例えば、ＣＰＵ１０は、ステップＳ２１で選択した音源が音源５２（滝オブジェクト）である場合、フィルタを適用する音源であると判定する。なお、１つの音源から複数種類の音声が出力される場合、音声の種類毎にフィルタを適用する音声か否かが判定されてもよい。この場合、音声の種類によって、フィルタを適用する音声か否かが予め定められる。判定結果が肯定の場合、ＣＰＵ１０は、次にステップＳ２３の処理を実行する。一方、判定結果が否定の場合、ＣＰＵ１０は、次にステップＳ３１の処理を実行する。
【０１０４】
ステップＳ２３において、ＣＰＵ１０は、音源とマイクとの角度を算出する。具体的には、ＣＰＵ１０は、メインメモリを参照して、後方フィルタ用マイク６４（仮想カメラ６０）の位置および姿勢と、音源の位置とに基づいて、音源とマイク６４（仮想カメラ６０）との角度Ｄ１（図１２参照）を算出する。ＣＰＵ１０は、次にステップＳ２４の処理を実行する。
【０１０５】
ステップＳ２４において、ＣＰＵ１０は、音源が後方フィルタ用マイク６４の後方に存在するか否かを判定する。具体的には、ＣＰＵ１０は、ステップＳ２３で算出した音源とマイク６４との角度Ｄ１の絶対値が９０度より大きいか否かを判定する。判定結果が肯定の場合、ＣＰＵ１０は、次にステップＳ２５の処理を実行する。一方、判定結果が否定の場合、ＣＰＵ１０は、次にステップＳ２９の処理を実行する。
【０１０６】
ステップＳ２５において、ＣＰＵ１０は、音源とマイク６４との角度に基づいて、フィルタ値を算出する。ここでは、ＣＰＵ１０は、図１２に示すように、音源とマイク６４との角度Ｄ１に応じたフィルタ値の最大値（０〜１．０までの範囲の値）を算出する。例えば、ＣＰＵ１０は、角度Ｄ１に比例してフィルタ値の最大値を算出する。ＣＰＵ１０は、次にステップＳ２６の処理を実行する。
【０１０７】
ステップＳ２６において、ＣＰＵ１０は、音源とマイク６４との距離を算出する。具体的には、ＣＰＵ１０は、メインメモリを参照して、音源とマイク６４との間の距離Ｌ２（図１２参照）を算出する。ＣＰＵ１０は、次にステップＳ２７の処理を実行する。
【０１０８】
ステップＳ２７において、ＣＰＵ１０は、ステップＳ２６で算出した音源とマイク６４との距離Ｌ２が閾値Ｌ０（図１２参照）以上か否かを判定する。判定結果が肯定の場合、ＣＰＵ１０は、次にステップＳ２８の処理を実行する。一方、判定結果が否定の場合、ＣＰＵ１０は、次にステップＳ２９の処理を実行する。
【０１０９】
ステップＳ２８において、ＣＰＵ１０は、ステップＳ２６で算出した音源とマイク６４との距離Ｌ２に基づいて、フィルタ値を補正する。ここでは、ＣＰＵ１０は、ステップＳ２５で算出したフィルタ値の最大値を距離Ｌ２に応じて補正する。ＣＰＵ１０は、音源とマイク６４との距離Ｌ２が閾値Ｌｍ（図１２参照）以上の場合、ステップＳ２５で算出した最大値を、フィルタ値として設定する。また、音源とマイク６４との距離Ｌ２が閾値Ｌｍ未満の場合、例えば、ＣＰＵ１０は、ステップＳ２５で算出した最大値に、距離Ｌ２を閾値Ｌｍで除した値をかけることにより、ステップＳ２５で算出したフィルタ値の最大値を補正する。補正されたフィルタ値は、メインメモリに記憶される。ＣＰＵ１０は、次にステップＳ３０の処理を実行する。
【０１１０】
一方、ステップＳ２９において、ＣＰＵ１０は、フィルタ値を０に設定する。ここでは、音源がマイク６４の後方にないか、または、音源とマイク６４との距離が閾値Ｌ０未満であるため、フィルタ値を０に設定する。これにより、音声が再生される際には、フィルタが全くかからない音声がスピーカから出力される。ステップＳ２９の処理の後、ＣＰＵ１０は、次にステップＳ３０の処理を実行する。
【０１１１】
ステップＳ３０において、ＣＰＵ１０は、音声に周波数フィルタを適用する。ここでは、ＣＰＵ１０は、音源の音声に対して、ステップＳ２８で算出されたフィルタ値に応じたフィルタ（図１３参照）が適用される。これにより、所定の周波数以上の成分がカットされたり（音量が０にされたり）、所定の周波数以上の成分の音量が減衰されたりする。ステップＳ３０の処理の後、ＣＰＵ１０は、次にステップＳ３１の処理を実行する。
【０１１２】
ステップＳ３１において、ＣＰＵ１０は、すべての音源について処理済みか否かを判定する。上記ステップＳ２１からステップＳ３１の処理が繰り返し実行されることにより、ゲーム空間に存在するすべての音源について、処理が行われる。判定結果が否定の場合、ＣＰＵ１０は、ステップＳ２１の処理を再び実行する。一方、判定結果が肯定の場合、ＣＰＵ１０は、図１７に示すフィルタ処理を終了する。
【０１１３】
図１５に戻り、ＣＰＵ１０は、次にステップＳ６において、画像データ生成処理を実行する。ステップＳ６においては、テレビ２に表示される画像が生成される。具体的には、ＣＰＵ１０は、仮想カメラ６０でゲーム空間を撮像することにより、画像データを生成する。ＣＰＵ１０は、次にステップＳ７の処理を実行する。
【０１１４】
ステップＳ７において、ＣＰＵ１０は、画像出力処理を実行する。ここでは、ステップＳ６で生成された画像データが、テレビ２に出力される。これにより、テレビ２の画面にはゲーム画像が表示される。ＣＰＵ１０は、次にステップＳ８の処理を実行する。
【０１１５】
ステップＳ８において、ＣＰＵ１０は、音声出力処理を実行する。ステップＳ８が実行されることにより、ステップＳ４およびステップＳ５の処理結果に応じた音声がスピーカから出力される。具体的には、ステップＳ４で算出された音源の定位、音量、およびドップラー効果の計算結果に基づいて音声データが生成され、さらに、ステップＳ５のフィルタ処理の結果に応じて音声データが補正される。そして、ＣＰＵ１０は、音声データをシステムＬＳＩ１１を介してＡＶ−ＩＣ１５に出力する。これにより、スピーカから音声が出力される。ＣＰＵ１０は、次にステップＳ９の処理を実行する。
【０１１６】
ステップＳ９において、ＣＰＵ１０は、ゲームを終了するか否かを判定する。ステップＳ９の判定は、例えば、ゲームオーバー（あるいはゲームクリア）になったか否か、あるいは、ユーザがゲームを中止する指示を行ったか否か等によって行われる。ステップＳ９の判定結果が否定の場合、ステップＳ２の処理が再度実行される。一方、ステップＳ９の判定結果が肯定の場合、ＣＰＵ１０は図１５に示すメイン処理を終了する。
【０１１７】
以上のように、本実施形態におけるゲームでは、ゲーム空間に存在する音源からの音声が補正されて、スピーカから出力される。具体的には、定位計算用マイク６１（仮想カメラ６０）の位置を基準とした音源の定位（音源の方向）が算出される。また、定位計算用マイク６１とは別に設けられた音量計算用マイク６２と音源との距離に応じて、音量が算出される。そして、算出された音源の定位および音量に応じた音声が、スピーカから出力される。本実施形態では、仮想カメラ６０の位置に定位計算用マイク６１が配置され、仮想カメラ６０の注視点近傍（仮想カメラ６０の撮像方向の所定位置）に音量計算用マイク６２が配置される。このため、テレビ２の中央付近に表示された音源の仮想カメラ６０に対する定位が維持されながら、当該音源からの音声の音量を大きくすることができる。これにより、視覚と聴覚による両面からゲーム空間内の所定のオブジェクトを注目させたり、音声を発する多数のオブジェクトがゲーム空間に配置される場合でも、プレイヤを混乱させることなく特定のオブジェクトに注目させることができる。
【０１１８】
また、プレイヤ操作モードでは、音量計算用マイク６２がプレイヤキャラクタ５１と仮想カメラ６０との間に配置される。このため、プレイヤキャラクタ５１周辺の音源からの音声の音量をより大きくすることができる。例えば、音量計算用マイク６２が仮想カメラ６０の位置に配置されると（マイク６１とマイク６２とが一致すると）、仮想カメラ６０で撮像されないオブジェクトの音量が大きくなり、プレイヤキャラクタ５１周辺の音声の音量が小さくなってしまうことがある。このため、プレイヤは違和感を感じたり、多数の音源が存在すると、混乱したりする。しかしながら、上記実施形態では、音量計算用マイク６２がプレイヤキャラクタ５１と仮想カメラ６０との間に配置されるため、プレイヤキャラクタ５１周辺からの音声をより大きな音量で再生することができ、プレイヤは違和感を感じることなくゲームを行うことができる。
【０１１９】
また、デモモードにおいては、音量計算用マイク６２は、仮想カメラ６０の注視点近傍に配置される。このため、仮想カメラ６０で注視したオブジェクトまたは領域からの音声の音量を大きくして、他の領域からの音声の音量を小さくすることができ、視聴者を当該オブジェクトに注目させることができる。
【０１２０】
また、本実施形態では、仮想カメラ６０の後方に存在する音源からの音声に対して、フィルタ処理が行われる。具体的には、音源が仮想カメラ６０の真後ろに近いほど、当該音源からの音声に対して高い度合で補正される。また、音源が仮想カメラ６０から離れるほど、当該音源からの音声に対して高い度合で補正される。すなわち、本実施形態では、音源と仮想カメラ６０との角度が大きいほど（当該角度が１８０度に近いほど）、また、仮想カメラ６０と音源との距離が大きいほど、より高い度合で補正される（より減衰の度合が高くなる）。これにより、仮想カメラ６０の後方に存在してテレビ２に表示されないオブジェクトからの音声を籠らせることができ、マイクの前方からの音声と後方からの音声とを区別することができる。
【０１２１】
例えば、仮想３次元空間の前後方向からの音に違いを出す場合、２つのスピーカ（ステレオスピーカ）からの音の位相差や時間差等を利用するバーチャルサラウンドや、実際に視聴者の前方と後方とにスピーカを配置する５．１チャンネルサラウンド等の技術が考えられる。しかしながら、バーチャルサラウンドの技術や５．１チャンネルサラウンドの技術では、２以上のスピーカが必要であったり、スピーカ間の距離やスピーカと視聴者との位置関係が所定の条件を満たす必要があったりする。また、５．１チャンネルサラウンドでは専用のハードウェアが必要であったり、バーチャルサラウンドでは、複雑な計算が必要であったりする。しかしながら、本実施形態のフィルタ処理では、複雑な計算を必要とすることなく、比較的低負荷で音声の補正を行うことができ、また、モノラルスピーカでも前後方向からの音に違いを出すことができる。
【０１２２】
（変形例）
なお、上記実施形態は本発明を実施する一例であり、他の実施形態においては例えば以下に説明する構成であってもよい。
【０１２３】
例えば、上記実施形態では、定位計算用マイク６１と音量計算用マイク６２とを別々に設け、音量計算用マイク６２を仮想カメラ６０の撮像軸上の所定位置に配置した。他の実施形態では、音量計算用マイク６２は、仮想カメラ６０の撮像軸上に限らず、仮想カメラ６０の撮像軸に垂直な面上の所定位置に配置されてもよい。すなわち、音量計算用マイク６２は、仮想カメラ６０の撮像範囲の所定位置（撮像軸上に限らない撮像範囲）に配置されてもよい。
【０１２４】
また、上記実施形態では、音量計算用マイク６２は定位計算用マイク６１（仮想カメラ６０）と仮想カメラ６０の注視点（プレイヤキャラクタ５１の位置）との間の所定位置に配置された。他の実施形態では、音量計算用マイク６２は、仮想カメラ６０の注視点と一致して配置されてもよいし、注視点よりも仮想カメラ６０の撮像方向側に配置されてもよい。
【０１２５】
また、上記実施形態では、定位計算用マイク６１は仮想カメラ６０に一致して配置されたが、他の実施形態では、必ずしも定位計算用マイク６１は仮想カメラ６０の位置に配置される必要はない。例えば、定位計算用マイク６１は、プレイヤオブジェクトの位置に基づいて配置されてもよい（プレイヤオブジェクトの位置に一致して配置されてもよいし、プレイヤオブジェクトの位置と所定の関係を有する位置に配置されてもよい）。
【０１２６】
また、上記実施形態では、音量計算用マイク６２は仮想カメラ６０の注視点に基づいて配置された。すなわち、プレイヤ操作モードでは、プレイヤキャラクタ５１に注視点が設定され、音量計算用マイク６２は当該プレイヤキャラクタ５１と仮想カメラ６０との間に設定された。また、デモモードでは、仮想カメラ６０の注視点近傍に音量計算用マイク６２が配置された。他の実施形態では、音量計算用マイク６２は、仮想カメラ６０の注視点とは離れた位置に配置されてもよく、例えば、プレイヤの操作によって移動されてもよい。例えば、音量計算用マイク６２を示すマイクオブジェクトがテレビ２に表示され、プレイヤの操作によって当該マイクオブジェクトがゲーム空間内を移動してもよい。プレイヤは、特定の音源からの音声に注目したい場合、当該マイクオブジェクトを移動させることで、特定の音源の音量を大きくすることができる。
【０１２７】
また、上記実施形態では、ドップラー効果用マイク６３は定位計算用マイク６１と一致して配置されたが、他の実施形態では、これらの位置は一致しなくてもよい。例えば、ドップラー効果用マイク６３をプレイヤキャラクタ５１の近傍に配置してもよい。
【０１２８】
また、上記実施形態では、音源の定位として、音源と定位計算用マイク６１との角度に応じて左右定位および前後定位が所定の値（−１．０〜１．０の範囲の値）で表された。他の実施形態では、音源と定位計算用マイク６１との位置関係を表すものであればどのような方法で音源の定位が算出されてもよい。例えば、定位計算用マイク６１に固定の座標系の座標値によって定位が表されてもよい。また、音源の定位は、定位計算用マイク６１を基準とした音源の方向を示すものであってもよいし、音源の方向および距離を示すものであってもよい。
【０１２９】
また、上記実施形態では、音源の定位は、左右方向および前後方向に関してのみ算出された。すなわち、上記実施形態では、２次元平面（地面）における定位が算出され、仮想空間の上下方向に音源あるいは定位計算用マイク６１が移動した場合も、音源の定位は変化しないものとした。他の実施形態では、上下方向に関しても定位が算出されてもよい。すなわち、他の実施形態では、音源と定位計算用マイク６１との仮想３次元空間における位置関係に基づいて、音源の定位が３次元で算出されてもよい。そして、実空間において上下方向にもスピーカが配置された環境（例えば、７．１チャンネルサラウンド）において、算出された音源の定位に基づいて、音声が再生されてもよい。
【０１３０】
また、上記実施形態では、音源からの音声の音量は、音源からの距離に応じて変化し、音源を中心とした所定の半径の円上では音量は同じであるとした。他の実施形態では、音量は、音源からの距離および音源の向きに応じて変化してもよい。
【０１３１】
また、上記実施形態では、周波数フィルタとしてローパスフィルタを用いて、所定の周波数以上の成分の音量を減少させることにより、音声を補正した。他の実施形態では、周波数フィルタとしてバンドパスフィルタやハイパスフィルタ、バンドエリミネーションフィルタが用いられて、音声が補正されてもよい。また、他の実施形態では、周波数フィルタを用いて、所定以下（所定以上あるいは所定範囲）の周波数の成分の音量を増加させることで所定以上の周波数の成分の音量を相対的に下げることにより、音声を補正してもよい。
【０１３２】
また、他の実施形態では、上記周波数フィルタ―に限らず、イコライザーのような特定の周波数特性を変更するものや、マルチバンドコンプレッサ、エフェクター等を用いて、音声を補正してもよい。
【０１３３】
また、上述した音声に対する処理は、他の任意の音声（例えば、所定のキャラクタの声等）に対して行われてもよい。
【０１３４】
また、上記実施形態では、仮想カメラ６０の後方に存在する音源の音声を周波数フィルタを用いて補正した。他の実施形態では、仮想カメラ６０から見た所定の方向（前方向、右方向等）の音源からの音声について、周波数フィルタを適用して補正してもよい。また、他の実施形態では、仮想カメラ６０から見た所定の方向ではなく、プレイヤキャラクタから見た所定の方向（前方向、右方向等）の音源からの音声を補正してもよい。すなわち、仮想カメラまたは仮想空間内の所定のキャラクタから見た音源の方向（仮想カメラまたは所定のキャラクタを基準とした音源の方向）を算出し、当該算出した方向が所定の方向の場合に、当該音源の音声を補正してもよい。
【０１３５】
また、上記音声に対する処理（複数のマイクを用いた処理やフィルタを用いた処理）は、上述のようなゲームに限らず、他の任意のゲームにおいても行われてもよい。また、上記音声に対する処理は、ゲームに限らず特定のシミュレーションシステムにおいて行われてもよい。
【０１３６】
また、本実施形態では、上記ゲーム装置３において上記ゲームプログラムが実行されたが、他の実施形態では、ゲーム専用装置に限らず、一般的な情報処理装置（パーソナルコンピュータやスマートフォン等）において上記プログラムが実行されてもよい。すなわち、他の実施形態では、一般的な情報処理装置において上記プログラムが実行されることにより、当該情報処理装置をゲーム装置として機能させてもよい。
【０１３７】
また、上記ゲームプログラムは、光ディスクに限らず、磁気ディスク、不揮発性メモリ等の記憶媒体に記憶されてもよく、ネットワークに接続されたサーバ上のＲＡＭや磁気ディスク等のコンピュータ読み取り可能な記憶媒体に記憶されて、ネットワークを介して当該プログラムが提供されてもよい。また、上記ゲームプログラムは、ソースコードとして情報処理装置に読み込まれて、プログラムの実行の際にコンパイルされて実行されてもよい。
【０１３８】
また、上記実施形態においては、ゲーム装置３のＣＰＵ１０が上記ゲームプログラムを実行することによって、上述したフローチャートによる処理が行われた。他の実施形態においては、上記処理の一部又は全部は、ゲーム装置３が備える専用回路によって行われてもよし、他の汎用プロセッサによって行われてもよい。少なくとも１つのプロセッサが、上記処理を実行するための「プログラムされた論理回路」として動作するものであってもよい。
【０１３９】
さらに、他の実施形態では、互いに通信可能な複数の情報処理装置を有する情報処理システムにおいて、当該複数の情報処理装置が、上述のようなゲーム装置３において実行されたゲーム処理を分担して実行するようにしてもよい。例えば、インターネットのようなネットワークに接続された複数の情報処理装置によって上述のような情報処理システムが構成されてもよい。具体的には、例えば、ネットワーク上のサーバが上記ゲーム装置３において行われた処理を行ってもよい。そして、ネットワーク上の端末がサーバからの処理結果を受信し、当該端末に接続された表示装置においてゲーム画像が表示され、当該端末に接続されたスピーカからゲーム音声が出力されてもよい。
【符号の説明】
【０１４０】
１  ゲームシステム
２  テレビ
３  ゲーム装置
４  光ディスク
５  コントローラ
１０  ＣＰＵ
１１ｄ  内部メインメモリ
１２  外部メインメモリ
５１  プレイヤキャラクタ
５２、５３、５４  音源
５５  キャラクタ
６０  仮想カメラ
６１  定位計算用マイク
６２  音量計算用マイク
６３  ドップラー効果用マイク
６４  後方フィルタ用マイク
【図１】
0005969200.tif 000002
【図２】
0005969200.tif 000003
【図３】
0005969200.tif 000004
【図４】
0005969200.tif 000005
【図５】
0005969200.tif 000006
【図６】
0005969200.tif 000007
【図７】
0005969200.tif 000008
【図８】
0005969200.tif 000009
【図９】
0005969200.tif 000010
【図１０】
0005969200.tif 000011
【図１１】
0005969200.tif 000012
【図１２】
0005969200.tif 000013
【図１３】
0005969200.tif 000014
【図１４】
0005969200.tif 000015
【図１５】
0005969200.tif 000016
【図１６】
0005969200.tif 000017
【図１７】
0005969200.tif 000018