本発明の好ましい実施の形態として、本発明に係る効果音生成プログラムをゲームソフトに適用した場合について、図面を参照して具体的に説明する。
以下の説明では、シリーズ化されている「モンスターハンター(登録商標)」というゲームソフトを例に説明するが、本発明に係る効果音生成プログラムをゲームソフトに適用した場合、その効果音はゲーム画像によって表示されるゲーム場面に対応した内容となるので、まず、モンスターハンター(登録商標)について、主として効果音生成に関係するゲーム場面を中心に簡単に説明する。
モンスターハンター(登録商標)は、敵キャラクタである多種多様のモンスターが生息する仮想社会(仮想のゲーム空間)にプレイヤの分身であるハンター(プレイヤキャラクタ)を登場させ、そのハンターがモンスターの討伐若しくは捕獲、キノコや魚などの動植物の採取などの種々の指令(以下、「クエスト」という。)を仮想社会に存在する人から受注し、そのクエストを達成することにより報酬金を得てその仮想社会で生活することを内容とするハンティングアクションゲームである。
モンスターが生息する仮想のゲーム空間は、現実の自然環境に類似した環境を有しており、例えば、雪山、密林、砂漠、沼地などの複数のモンスターの生息場所(以下、「狩猟フィールド」という。)が設けられている。
各狩猟フィールドは複数のエリア(狩場)に分かれており、例えば、雪山の狩猟フィールドでは、雪山の麓にある湖と陸地を含むエリア、雪山に繋がる氷の洞窟のエリア、山奥の山壁に囲まれたエリア、山頂近くの開けたエリアなどが設けられている。雪山に出現するモンスターは上記の複数のエリアを移動しながら生息しており、プレイヤは操作ボタンを操作してハンターを上記の複数のエリアのいずれかに移動させてモンスターを探索する。そして、いずれかのエリアでハンターがモンスターに出会えば、プレイヤはハンターをモンスターと対決させることができ、その対決でモンスターを討伐(モンスターの体力をゼロにする)若しくは捕獲すると、クエスト達成となる。
上記のように、各狩猟フィールドには、モンスターの生息場所として陸上や空中だけでなく水中などが設けられており、モンスターの種類によっては陸上や空中だけでなく水中や砂中や地中も移動するものが存在している。このため、ハンターがモンスターを探索できる場所も陸上だけでなく水中なども含まれるようになっている。
音響環境の観点で上記の狩猟フィ-ルドを見ると、例えば、雪山の麓にある湖と陸地を含むエリアは、図1(a)(b)に示すように、陸上や空中は「空気」で占められ、水中は「水」で占められ、音響特性(音の伝播特性や残響特性などの特性)の異なる2種類の媒質で占められたエリアとなっている。なお、図1(b)は、ハンターHとモンスターMとの縦方向の位置関係が分かるように、図1(a)のI−I線の部分の縦断面を示したものである。
仮想のゲーム空間でも現実世界と類似した音響特性になっているとすると、媒質が空気の領域A1と水の領域A2では、ハンターHとモンスターMが同じ領域に居た場合でもハンターHのモンスターMの発する音(例えば咆哮音S)の聞こえ方は異なるのが自然である。ハンターHが陸上に居てモンスターMが水中に居たり、逆にハンターHが水中に居てモンスターMが陸上に居たりする場合でもハンターHのモンスターMの発する咆哮音Sの聞こえ方が異なることは同様である。このような音響環境は、空気で占められた領域と水以外の他の液体で占められた領域を含む狩猟フィールドでも同様である。
上記のように、本実施形態に係るゲームソフトの「モンスターハンター(登録商標)」では、仮想のゲーム空間が現実世界に近い自然環境を有しており、ゲーム画面に表示されるゲーム場面には2種類以上の音響特性の異なる媒質で占められた領域が含まれ、しかも、ハンターH及びモンスターMはいずれの領域も移動可能に構成されている。従って、例えば、モンスターMの発する咆哮音SのハンターHの聞こえ方は、ゲーム空間におけるハンターHとモンスターMとの距離関係だけでなく、ハンターHとモンスターMがそれぞれ存在する領域(媒質)やハンターHの存在する位置の周りの音の反射物などの影響を受けるものとなっている。モンスターMの発する咆哮音Sだけでなく、ゲーム空間に登場する他のキャラクタやオブジェクトが発する、衝突音、爆発音、振動音などの各種の音についても同様である。
従って、本発明に係る効果音生成プログラムでは、上記の音響環境を考慮し、ゲーム空間におけるハンターHとモンスターMや他のキャラクタやオブジェクトとの位置関係がどのように変化してもゲーム空間で発生した音の聞こえ方がその位置関係に応じた自然な聞こえ方となるように効果音の生成方法を工夫している。
次に、本発明に係る効果音生成プログラムを含むゲームプログラムを実行するビデオゲーム装置について説明する。
図2は、本発明に係る効果音生成プログラムを含むゲームプログラムを実行するビデオゲーム装置の概観を示す正面図である。
ビデオゲーム装置1(以下、「ゲーム装置1」と略称する。)は、携帯型ビデオゲーム機である。本実施形態では携帯型ビデオゲーム機であるが、ゲーム装置としては家庭用のビデオゲーム機やゲームセンターに配置される業務用のビデオゲーム機(アーケードゲーム機)などの他の種類のゲーム機を用いることができる。
本発明に係る効果音生成プログラムを含むゲームプログラムとそのゲームプログラムに必要なゲームデータは、専用の可搬型記録メディア(以下、「ゲームメディア」という。)に記録されており、ゲームソフトメーカからユーザに提供される。ユーザがゲーム装置1の図略のゲームメディア装着部にゲームメディアを装着すると、ゲーム装置1は、当該ゲームメディアからゲームプログラム及びゲームデータを装置内のメモリ(RAM)に読み込み、CPU(Central Processing Unit)がゲームプログラムの実行を開始する。これにより、ユーザはゲーム装置1でゲームソフトを楽しむことができる。なお、アーケードゲーム機では、ゲーム機本体にゲームプログラムとゲームデータが一体的に組み込まれているので、ゲームをする際にゲームメディアをアーケードゲーム機に装着する必要はない。
ゲーム装置1は、横長長方形の薄型直方体からなる本体2を有する。本体2の上面の中央にゲーム画面であるディスプレイ3が配設され、このディスプレイ3の左右に方向キー4a及びジョイステックキー4bを含む操作キー4と4個のボタンからなる操作ボタン5とがそれぞれ配設されている。方向キー4aとジョイステックキー4bは縦に配列され、ジョイステックキー4bと操作ボタン5の下部に効果音を出力するための一対のスピーカ9a,9bが配設されている。
操作キー4は、主としてディスプレイ3に表示されるプレイヤの操作対象であるプレイヤキャラクタ(ハンター)の移動方向を指定したり、メニュー画面に表示される選択項目を選択するための選択方向を指定したりするための操作部材である。操作ボタン5は、例えば、ハンティングアクションゲームの場合、主としてゲーム進行中に敵キャラクタ(モンスター)に対してプレイヤキャラクタに攻撃動作や防御動作などの各種の動作指令をするための操作部材である。
スピーカ9a,9bからはゲーム進行中のBGMやゲーム展開において発生する各種の事象に対応した音(例えば、モンスターが発する咆哮音Sやモンスターが攻撃する攻撃音やその攻撃によって岩などのオブジェクトが崩壊する音など)やゲーム効果(例えば、ハンターがモンスターにダメージを与えたり、モンスターからダメージを受けたりした場合の効果)を演出する音などを発生する。
ディスプレイ3の下部には「START」ボタン6、「SELECT」ボタン7、音量調整ボタン8などの操作ボタンが配設されている。「START」ボタン6は、主としてゲームの開始時に「ゲーム開始」を指令するための操作ボタンであり、「SELECT」ボタン7は、主としてゲーム開始時にゲームの動作モードなどを選択するための操作ボタンである。なお、図示はしていないが、本体2の側面に電源ボタンやゲームメディアを装着するためのメディア装着部が設けられている。
図3は、ゲーム装置1の内部構成を示すブロック図である。
ゲーム装置1は、CPU11、ROM(Read Only Memory)12、RAM(Random Access Memory)13、描画データ生成プロセッサ14、描画処理プロセッサ15、VRAM(Video-RAM)16、D/A(Digital-Analog)コンバータ17、表示部18、音声処理プロセッサ19、アンプ20、スピーカ21、操作部22、ドライバ23及びバス24を含んでいる。
なお、表示部18は図2のディスプレイ3に対応し、スピーカ21は図2のスピーカ9a,9bに対応している。また、操作部22は、図2の操作キー4、操作ボタン5、「START」ボタン6、「SELECT」ボタン7、音量調整ボタン8などの操作ボタンや図略の電源ボタンなどに対応している。プレイヤによってこれらの操作部材が操作されると、その操作信号が操作部22からCPU11に入力される。
CPU11、ROM12、RAM13、描画データ生成プロセッサ14、描画処理プロセッサ15、音声処理プロセッサ19及びドライバ23はバス24によって相互にデータ伝送可能に接続されている。
ゲームメディア10には、ゲームプログラム及びゲームデータが記録されている。ゲームデータには、キャラクタや背景の画像データ、ステータスなどの情報表示用の画像データ、BGMやゲーム空間内に出現するプレイヤキャラクタ(ハンター)、敵キャラクタ(モンスター)、オブジェクト(他の動物や植物)などの発する各種の音などの効果音に関する音響データ、文字や記号によるメッセージデータなどが含まれる。音響データには、例えば、原音データ、原音の音量や周波数成分の調整値、原音データから残響成分のデータを生成する際のパラメータ値(後述する)や残響成分の音量調整値などの加工内容を指定するためのデータなどの本発明に係る効果音生成プログラムで使用される各種のデータが含まれている。音響データの詳細は後述する。
ROM12には、ディスクローディング機能などのゲーム装置1の基本的機能やゲームメディア10に記憶されたゲームプログラム及びゲームデータを読み出す手順などを示す基本プログラムが記憶されている。RAM13は、ドライバ23によってゲームメディア10から読み込まれたゲームプログラム及びゲームデータを格納したり、CPU11がRAM13に格納されたゲームプログラムを実行する際に必要な記憶領域を提供したりする。なお、ゲーム装置1が、ゲームメディア10として光ディスクの一種であるUMD(Universal media Disc)(登録商標)を採用している場合は、ドライバ23は、光ディスクドライバによって構成される。
CPU11は、メディア装着部(図示省略)にゲームメディア10が装着されると、ROM12の基本プログラムに従ってドライバ23を動作させ、ゲームメディア10からゲーム起動時に必要なゲームプログラム及びゲームデータをRAM13に読み込み、ゲーム開始状態に設定する。その後、CPU11は、操作部22からのプレイヤの操作信号に基づいてRAM13に読み込まれたゲームプログラムを実行することより、ゲーム進行やゲーム展開を統括的に制御する。
なお、モンスターハンター(登録商標)は、独立した複数のゲームプログラムの集合体で構成されている。例えば、上述したように、狩猟フィールドには雪山フィールド、密林フィールド、砂漠フィールド、沼地フィールドなどが設けられているが、これらの各フィールドは複数の狩猟エリアで構成されているので、狩猟エリア毎にゲーム進行を制御するゲームプログラムが作成されている。
従って、例えば、狩猟フィールドにおけるゲーム進行の制御では、プレイヤによって狩猟エリアが選択される毎にその狩猟エリアのゲームプログラムをゲームメディア10からRAM13に読み込み、CPU11がそのゲームプログラムを実行することによりその狩猟エリアにおけるゲーム進行が制御される。他のゲーム場面のゲーム進行の処理についても同様で、プレイヤの選択操作に応じて必要なゲームプログラムとゲームデータとがゲームメディア10からRAM13に読み込まれ、そのゲームプログラムをCPU11が実行することよりゲーム進行およびゲーム展開が制御される。
ゲームプログラムには、CPU11に実行させるための処理手順や各種命令等が記述されている。狩猟フィールドの各エリアにおけるゲーム進行を制御するゲームプログラムには、モンスターMの動作やその他のオブジェクトの動きを制御するプログラムが含まれている。従って、CPU11がそのゲームプログラムを実行することによりゲーム空間におけるモンスターMの動作やその他のオブジェクトの動きが自動的に制御される。
モンスターMの咆哮動作も当該モンスターMの動作を制御するゲームプログラムに記述されており、CPU11が咆哮指令を実行すると、CPU11から音声処理プロセッサ19にその咆哮指令に対応する咆哮音Sの情報が出力され、音声処理プロセッサ19で咆哮音Sの出力処理が行われる。
一方、ハンターHの動作を制御するゲームプログラムは、基本的にプレイヤによる操作キー4や操作ボタン5の操作に基づく操作部22からの操作信号によってその動作が制御される構成となっている。従って、CPU11は、操作部22からプレイヤの操作信号が入力されると、ゲームプログラムに従ってその操作信号に対する所定の動作をハンターHに行わせる処理を行い、その処理結果を表示部18にゲーム進行を示すゲーム画像として表示する。また、ハンターHの動作によって効果音を発生させる事象が発生する場合(モンスターMへの攻撃音の発生やモンスターMによる攻撃音の発生など)、CPU11は、その処理結果によって算出される効果音の情報を音声処理プロセッサ19に出力し、音声処理プロセッサ19でその効果音の発生処理が行わせる。この効果音の発生処理の詳細は後述する。
ゲーム画像としては、三次元コンピュータグラフィクスを用いたアニメーション技術により作成される三次元(3D)アニメーション画像が用いられる。この三次元のゲーム画像は、図4に示すように、ハンター(プレイヤキャラクタ)Hに対して後方の所定の位置CP(ハンターHの位置HPより水平方向に距離dだけ後方で高さhの位置)に仮想カメラCを配置し、この仮想カメラCでハンターH側を撮影して得られる画像を各コマの画像として生成したものである。
なお、画像は、仮想カメラCからハンターH側に視線を伸ばし、その視線が仮想カメラCとハンターHとの間に仮想的に配置されたスクリーンと交差する位置にハンターHやモンスターMや背景の山などの他の物体を描画したもの(透視投影法による二次元画像)である。
プレイヤの方向キー4aまたはジョイステックキー4bの操作によりハンターHがゲーム空間内を移動する場合、仮想カメラCもハンターHと共に移動させながら各コマの画像を生成することにより、ゲーム画面にはゲーム空間内で移動するハンターHの画像が表示される。
ゲーム空間における仮想カメラCは、ハンターHと共に移動する。本実施形態では、ハンターHが陸上だけでなく水中などの他の媒質の領域中も移動できるように設定されているので、プレイヤがハンターHを水中に移動させた場合は仮想カメラCも水中に移動し、水中内でのモンスターMの探索シーンやモンスターMとの対戦シーンの画像が表示される。
また、プレイヤはハンターHを停止させた状態で方向キー4aまたはジョイステックキー4bを操作して仮想カメラCだけを移動させることができる。例えば、プレイヤはハンターHの周りに仮想カメラCを回転移動させたり、仮想カメラCの位置をハンターHの目の位置に切り換えたりすることができる。従って、プレイヤは陸上のハンターHを移動させることなく、仮想カメラCだけを水中などの他の媒質の領域内の所定の位置に移動させることができる。
そして、本実施形態では、後述するようにゲーム空間における仮想カメラCの位置CPを当該ゲーム空間内で発生する音(ゲーム空間内に出現するキャラクタやオブジェクトが発する音)の聴音位置TPに設定し、効果音の発生処理では、モンスターMの咆哮音Sなどのゲーム空間内で発生する音をその聴音位置TPで聞こえる音に加工して出力するようにしている。
なお、各コマの画像を作成したり、効果音を発生させたりする際、仮想カメラCとゲーム空間に登場するハンターHやモンスターMやその他のオブジェクトなどの物体のゲーム空間における位置を定義し、これらの位置関係(距離と方向)の情報が必要になるので、各エリアのゲーム空間には、図1(a)に示すように、互いに直交するXYZ座標系が設けられている。
XYZ座標系の原点は任意に設定することができるが、本実施形態では、仮想カメラCやハンターHが水中にも移動し、水中シーンもゲーム場面として表示されるので、図1に示すように、隣接した2つの異なる媒質を含むエリアのゲーム空間ではZ座標の0基準が図1(b)に示すように水面の位置(媒質の境界)に設定されるように、XYZ座標系が設定される。従って、例えば、XY平面の+X軸と+Y軸で囲まれる領域にエリアのゲーム空間が設定される場合、ゲーム空間に登場する物体のX座標とY座標はいずれも正の値となるが、Z座標は、その物体が陸上もしくは空中に存在するときに正の値となり、水中に存在するときは負の値となる。
図3に戻り、表示部18に表示するためのゲーム画像(3Dアニメーション画像)の描画処理は、主として描画データ生成プロセッサ14と描画処理プロセッサ15とによって行われる。CPU11は、操作部22からのプレイヤの操作信号に基づき、表示部18に表示すべきゲーム画像の内容を決定し、その画像の描画に必要な画像データ(背景、プレイヤキャラクタ(ハンターH)や他のキャラクタ(モンスターM)やその他のオブジェクトのポリゴンデータ、テクスチャデータ、光源データなどのデータ)をRAM13から読み出して描画データ生成プロセッサ14に供給する。また、CPU11は、操作部22から入力される操作情報を描画データ生成プロセッサ14に供給する。
描画データ生成プロセッサ14は、CPU11から供給される画像データと操作情報に基づいて、描画に必要なデータ(透視投影における仮想カメラC、ハンターH、モンスターM及び背景その他のオブジェクトの位置関係、スクリーン画面(表示部18の画面に相当)上におけるハンターH、モンスターM及び背景その他のオブジェクトを構成するポリゴンの座標、各ポリゴンに対応するテクスチャや反射特性などのデータ)を演算し、その演算結果を描画処理プロセッサ15に供給する。
描画処理プロセッサ15は、CPU11からの描画指令に基づき、1/30秒毎に、描画データ生成プロセッサ14から供給されるデータを用いて表示部18に表示させる三次元アニメーションの各コマの画像(透視投影法による二次元画像)を生成する。描画処理プロセッサ15には各コマの画像の作成作業をするためのVRAM16が接続されている。
VRAM16には、表示部18に表示される各コマの画像データを格納するためのバッファ領域(以下、「スクリーンバッファ」という。)が設けられている。描画処理プロセッサ15は、描画データ生成プロセッサ14から供給されるデータをVRAM16の作業領域に一時保存し、1/30秒毎にこの作業領域から表示すべき画像に必要なデータを読み出してスクリーンバッファに展開する処理(描画処理)を繰り返す。
VRAM16に展開された画像データは、D/Aコンバータ17でアナログ信号に変換されて表示部18に出力され、表示される。
CPU11は、ゲームプログラムの実行により効果音を発生させる処理を行うと、その処理結果によって決定されたスピーカ21から出力すべき効果音(モンスターMの咆哮音SやハンターMの攻撃動作や防御動作で発生する音など)の内容を音声処理プロセッサ19に出力し、その効果音に対応した音声データを生成させ、その音声データをスピーカ21から出力させる。
音声処理プロセッサ19は、CPU11からの効果音生成指令に基づき、RAM13から効果音のデータを読み出し、所要のデジタル信号処理をした後、音声信号(アナログ信号)にD/A変換する処理をする。所要のデジタル信号処理には、本発明に係る効果音生成処理が含まれる。音声処理プロセッサ19から出力される音声信号は、アンプ20で所定のゲインで増幅された後、スピーカ21から出力される。
次に、本発明に係る効果音の生成処理について、モンスターMの位置を発音位置MP(図1のMPの位置参照)とし、ハンターHの位置HPを聴音位置TP(図1のHPの位置参照)とし、モンスターMの発する咆哮音Sを聴音位置TPで聞こえる音として出力する場合を例に説明する。なお、上述の説明では、仮想カメラCの位置CPを聴音位置TPとしていたが、ハンターHはプレイヤの分身としてゲーム空間に登場し、ハンターHを介してプレイヤがモンスターMの発する音を聴くことを想定しているので、ここでは、説明の便宜上、ハンターHの位置HPを聴音位置TPとし、「聴音位置HP」と表記する。
上述したように、モンスターハンター(登録商標)では発音体であるモンスターMと聴音体のハンターHがゲーム空間の陸上だけでなく水中なども移動できる構成となっている。従って、例えば、図1に示すエリアの場合、ハンターHとモンスターMの存在する位置関係を分類すると、モンスターMもハンターHも陸上に存在する場合、モンスターMが陸上に存在しハンターHが水中に存在する場合、モンスターMが水中に存在しハンターHが陸上に存在する場合、モンスターMもハンターHも水中に存在する場合の4種類のシチュエーションに分けることができる。
そして、4種類のシチュエーションを発音及び聴音の位置と媒質との関係で整理すると、
(1)発音位置MPも聴音位置HPも陸上(空気中)にある場合(ケース1)
(2)発音位置MPが水中にあり、聴音位置HPが陸上(空気中)にある場合(ケース2)
(3)発音位置MPが陸上(空気中)にあり、聴音位置HPが水中にある場合(ケース3)
(4)発音位置MPも聴音位置HPも水中にある場合(ケース4)
の4つのケースに分けることができる。
なお、以下の説明では、ケース1〜ケース4の内容を直感できるように、ケース(MP,HP)で表記した表現を適宜使用することにする。この表記によれば、ケース1=ケース(陸上,陸上)、ケース2=ケース(水中,陸上)、ケース3=ケース(陸上,水中)、ケース4=ケース(水中,水中)となる。
現実世界においては、空気中と水中で音波の伝わり方や減衰特性が異なり、例えば、(a)水中では数kHz以上の高周波は減衰量が大きく、伝搬距離が短い、(b)空気中よりも水中の方が音の直進性がある、などのことが知られている。本実施形態では、(a),(b)の特性を参考に、上記のケース1〜ケース4の4つのケースでの原音データに対する音量や周波数成分や残響成分の特性の加工処理を異ならせ、ゲーム画像で表現されるゲーム場面のシチュエーションがケース1〜ケース4の間で時々刻々と変化するのに応じて原音データに対して該当するケースの加工処理を行うことにより各ケースのゲーム場面の音の聞こえ方の違いを演出し、ゲーム上でプレイヤに与える聴覚的効果が可及的に自然な感じとなるようにしている。
従って、本実施形態では、原音データに対して音量や周波数成分や残響成分の各特性を加工するための複数種類の処理プログラムが設けられている。なお、原音データは、例えば、モンスターMの咆哮動作に対して咆哮音Sを出力させるために、予め作成されたオリジナルの音声波形データである。原音データは、例えば、図5に示すアナログのオーディオ信号Wをデジタル信号に変換し、例えばADPCM(Adaptive Differential Pulse Code Modulation)により圧縮したデータで構成され、ゲームデータの音響データに含まれている。モンスターMが複数種類の鳴き声を発する場合、各鳴き声に対して原音データが予め作成されている。モンスターM以外のキャラクタやオブジェクトの発する音の原音データについても同様である。
処理プログラムとしては、水中(水媒質)における音声効果を与えるツールとして機能する処理プログラムと陸上(空気媒質)における音声効果を与えるツールとして機能する処理プログラムが設けられている。具体的には、距離に対する減衰効果を演出するための減衰処理プログラムと、水中と空気中で周波数成分の違いによる音色の違いを演出するためのフィルタリング処理プログラムとが設けられている。また、水中と空気中との音波の伝播特性の相違に基づく音の聞こえ方の違いを表現するためのエフェクタとして残響(リバーブ)を付加する残響処理プログラムとが設けられている。
減衰処理プログラムに対しては、例えば、図6に示す空気中を音が伝播するときの減衰特性を示す減衰データD1(陸上用減衰データD1)と水中を音が伝播するときの減衰特性を示す減衰データD2(水中用減衰データD2)が予め設定されている。現実世界では低周波の音は空気中よりも水中の方が減衰しにくいが、本実施形態では、ゲームの聴覚的効果として水中の密閉感を演出するために、水中用減衰データD2の減衰量を陸上用減衰データD1の減衰量よりも大きくしている。発音位置MPと聴音位置HPとの間の距離Lと図6に示す減衰データを用いて減衰処理プログラムにより原音データに加工処理を行うことによって、聴音位置HPにおける聴音レベルが算出される。
なお、図6では、横軸が音の発生位置からの距離L(m)を示し、縦軸が音量レベルを示している。音声データは8ビットのデジタルデータ(128諧調のデータ)であるので、音量レベルの最大値は「127」、最小値は「0」となるが、図6では、最大値を「1」に正規化して音量レベルを示す内容になっている。これは、原音データに対して音量を何%に減少させると良いか、すなわち、音量調整のためのゲインが直読できるようにしたものである。
従って、例えば、ケース(陸上,陸上)において、発音位置MPと聴音位置HPの間の距離がLrの場合、音量レベルは「Kr」で、これが音量調整のためのゲインとなるので、発音位置MPの音量を「S」とすると、聴音位置HPの音量はKr×S(0<Kr<1.0)に減少することになる。
なお、音響データには予め設定された複数の種類の原音データが含まれているが、各原音データの音量は同一ではなく、原音データ同士では異なる場合がある。図6の縦軸の音量レベルの最大値は、全ての原音データの音量のうちの最大の音量に対応させているので、図6に例示した陸上用減衰データD1および水中用減衰データD2の最大値が「1」になっていないのは、その最大の音量に対して正規化した値となっているからである。
図6に示すように、陸上用減衰データD1も水中用減衰データD2も、その波形は発生位置の近傍位置でわずかに上昇するがその後は単調に減少する形状(下方に湾曲した形状)を有している。そして、水中用減衰データD2の方が陸上用減衰データD1よりも距離Lに対する減衰量が大きくなっている。
図6に示す減衰データの波形は一例であり、本発明に係る効果音がゲームにおける効果音であり、多少の創作性や誇張性が認められることを考慮すると、その波形には適宜の変更を加えることができる。減衰データは、音響データとしてゲームデータに含まれている。
フィルタリング処理プログラムとしては、例えば、1200Hz(カットオフ周波数fc)以上の高周波成分をカットするローパスフィルタの処理プログラムが設けられている。原音データにローパスフィルタの処理プログラムによるフィルタリング処理を行うことによって、原音の波形が変化する。図5の例では、オーディオ信号Wの1200Hz以上の高周波成分が除去されるので、その波形は急峻に変化する部分が緩やかになり、聴覚的にはなまった音に変化する。本実施形態では、聴音位置HPが水中にある場合、原音データに対してフィルタリング処理を行うようにしている。これは、音の高周波成分をカットすることにより、水中での音のように聞こえる感じを演出するためである。
従って、ケース(陸上,陸上)の場合ではモンスターMの発した咆哮音Sの原音データにはフィルタリング処理は行われないが、ケース(水中,水中)の場合ではモンスターMの発した咆哮音Sの原音データに対してフィルタリング処理が行われるので、効果音として出力される咆哮音Sはカットオフ周波数fc以上の高周波成分がカットされ、ケース(水中,水中)の場合はケース(陸上,陸上)の場合よりも低い、こもった音となる。
残響処理プログラムに対しても、減衰データと同様に、水中における残響特性を示す残響データ(水中用残響データ)と空気中における残響特性を示す残響データ(陸上用残響データ)とが予め設定されている。残響データとは、具体的にはエフェクタの一つである、原音に残響音を付加する「リバーブ」をデジタル処理するためのデータである。本実施形態では、空気中と水中の音の聞こえ方の違いを効果的に演出するエフェクタとしてリバーブを利用している。リバーブでは、原音データから残響音のデータが生成されるが、残響データは、その生成処理の際のプリディレイ、リバーブタイム、高周波減衰、クロストーク、反響信号強度などの各パラメータの特性を示すデータである。
残響は、一般に直接音が聞こえた後、数m秒から100m秒くらいの間に初期反射の反響音が生じ、その後に後期反射の反響音が生じる構造を有していると言われている。初期反射は直接音とまとめて、一連の音として認知されるので、後期反射が直接音とは別に残響音として認知される。
プリディレイは、直接音に対する残響音の遅延時間を設定するもので、音源と反射壁との距離が長い場所では長い値が設定される。水中の方が空気中よりも音が遠くまで届くので、水中の残響特性のプリディレイを空気中よりも長くすることによって水中と空気中の音の違いを演出することができる要素である。
リバーブタイムは、残響音が継続する時間を設定するもので、反射率の大きい反射壁や反射経路が長い場合には減衰が少ないので、残響時間が長くなる。水中の残響特性のリバーブタイムも空気中よりも長くすることによって水中と空気中の音の違いを演出することができる要素である。
高周波減衰は、反響音に含まれる高周波成分の減衰量を設定するものである。水中の音は空気中よりも高周波成分が少なくなるので、残響音についても高周波成分を減衰させることにより水中と空気中の音の違いを演出することができる要素である。
クロストークは、チャンネル間の残響音の相互作用の程度を設定するものである。例えば、Lチャネル側に音源がある場合、残響音のRチャネルからの出力量を小さくするほど、音源からの音の直進性を表現することができる。水中では空気中よりも音の直進性が高いので、水中の残響特性のクロストークを空気中よりも小さくすることより水中と空気中の音の違いを演出することができる要素となる。
反響信号強度は、残響音の大きさ(残響成分の音量)を設定するものである。反響信号強度もプリディレイやリバーブタイムと同様の理由により、水中の残響特性の反響信号強度を空気中よりも大きくすることより水中と空気中の音の違いを演出することができる要素となる。
水中は陸上(空気中)に比べて、(1)残響成分が遠くまで届く、(2)音の伝播の直進性が強い、(3)水流などのノイズが多く、中周波数領域と高周波領域の残響成分が相対的に少なくなる、という特徴を考慮し、例えば、反射壁のない広い水中に対する水中用残響データの各パラメータは、例えば、プリディレイ:設定時間を「短」、「中」、「長」の3つに分けた場合、「長」に設定、リバーブタイム:設定時間を「短」、「中」、「長」の3つに分けた場合、「長」に設定、高周波減衰:減衰させる周波数領域を「低域」、「中域」、「高域」の3つに分けた場合、減衰域を「中域」と「高域」に設定、クロストーク:クロストークの音量を「小」、「中」、「大」の3つに分けた場合、「小」に設定、反響信号強度:反響信号の音量を「小」、「中」、「大」の3つに分けた場合、「大」に設定、となっている。
一方、例えば、反射壁のない広い草原に対する陸上用残響データの各パラメータは、プリディレイ:「短」に設定、リバーブタイム:「短」に設定、高周波減衰:減衰域を「高域」に設定(水中よりも減衰域を高い領域に設定)、クロストーク:「小」から「中」に設定(水中よりも大きく設定)、反響信号強度:「小」に設定、となっている。
なお、上記の水中用残響データと陸上用残響データの各パラメータの相違は、一般的な傾向を示すものである。残響特性は、媒質の音の伝播特性だけでなく、発音位置の周りにある反射物や反射体の影響を受けるから、陸上のゲーム場面によっては、陸上用残響データのいずれかのパラメータが水中用残響データのパラメータと同一もしくは上記の傾向とは逆になる場合もある。水上のゲーム場面についても同様である。
従って、陸上用残響データの中には、反射特性の異なるゲーム場面(例えば、開放された草原場面と洞窟内の場面など)に応じて上記のパラメータを適宜変更した複数の残響データが含まれている。例えば、洞窟内の陸上用残響データでは、プリディレイ:「中」に設定洞窟内の空間で反響するから)、リバーブタイム:「中」に設定(洞窟内の空間で反響するから)、高周波減衰:減衰域を「低域」に設定、クロストーク:「大」に設定(洞窟壁の反射により反響音が拡散するから)、反響信号強度:「大」に設定、となる。
なお、反射特性の異なるゲーム場面に応じてパラメータを適宜変更した複数の残響データが含まれることは、水中用残響データについても同様である。
図7は、上述した4つのケースにおける効果音の生成処理を示したものである。具体的には、図7は、ケース(陸上,陸上)、ケース(水中,陸上)、ケース(陸上,水中)、ケース(水中,水中)の各ケースにおける減衰処理、フィルタリング処理、残響処理などの内容を示したものである。
図7において、「LPF処理の有無」はローパスフィルタリング処理をするか否かを示す欄である。「減衰特性の種類」は陸上用減衰データと水中用減衰データのいずれを使用するかを示す欄である。「媒質変化による音量変化率Kd」は音が異なる媒質を進行する際に媒質の境界で音が反射することに起因する音量の変化の割合を示す欄である。「陸上用残響特性(付加量Krv)」は陸上用残響特性を使用するか否かを示す欄であり、「水中用残響特性(付加量Krv)」は水中用残響特性を使用するか否かを示す欄である。また、両欄の(付加量Krv)は、原音から生成される残響音を当該原音に付加する際の音量の割合を示すものである。
図7に示すように、LPF処理は、発音位置MPが陸上の場合(ケース(陸上,水中)とケース(陸上,陸上))は行われず、発音位置MPが水中の場合(ケース(水中,陸上)とケース(水中,水中))に行われる。これは、音声発生源が水中の場合、原音データの高周波成分をカットして水中の感じを演出するための処理である。
減衰特性の適用については、聴音位置HPが陸上の場合(ケース(水中,陸上)とケース(陸上,陸上))には陸上用減衰データ(図6の減衰データD1参照)が適用され、聴音位置HPが水中の場合(ケース(陸上,水中)とケース(水中,水中))には水中用減衰データ(図6の減衰データD2参照)が適用される。ケース(陸上,陸上)の場合に陸上用減衰データを適用し、ケース(水中,水中)の場合に水中用減衰データを適用するのは、両減衰データをそれぞれ対応するケースのために作成しているから、当然の適用である。
一方、ケース(水中,陸上)の場合は、発音位置MPから聴音位置HPまでの音の伝播経路に水中の区間と陸上の区間が存在するので、正確には水中の区間では水中用減衰データを適用し、陸上の区間では陸上用減衰データを適用すべきであるが、本実施形態では、可及的に自然に聞こえることを条件に減衰処理の簡素化を図るために、陸上用減衰データと水中用減衰データのいずれか一方を適用することとし、聴音位置HPの媒質の減衰データ(陸上用減衰データD1参照)を適用するように設定している。ケース(陸上,水中)の場合も同様で、水中用減衰データD2を適用するように設定している。
「媒質変化による音量変化率Kd」の欄は、発音位置MPから聴音位置HPまでの伝播経路に水中と陸上の両方が含まれる場合、その境界面で音の反射に起因して音量が不連続に減少するのを表現するための処理を示している。音の伝播経路が水中または陸上だけの場合(ケース(陸上,陸上)とケース(水中,水中))は、媒質の境界面が存在しないので、同欄の内容は、音量の変化率Kdを1.0で処理する内容、すなわち、音量を変化させる処理をしない内容になっている。
一方、音の伝播経路に水中と陸上の両方が含まれる場合(ケース(水中,陸上)とケース(陸上,水中))は、媒質の境界面が存在するので、その境界面での音量変化を表現するために、同欄の内容は、音量の変化率Kdを1.0より小さい値で処理する内容になっている。本実施形態では、ケース(水中,陸上)では音量を0.6倍に減少させ、ケース(陸上,水中)では音量を0.5倍に減少させるように設定している。なお、これらの音量変化率Kdは設計事項であるので、他の数値を適宜設定することができる。
残響特性の適用について、聴音位置HPが陸上の場合(ケース(水中,陸上)とケース(陸上,陸上))には陸上用残響データが適用され、聴音位置HPが水中の場合(ケース(陸上,水中)とケース(水中,水中))には水中用残響データが適用される。ケース(陸上,陸上)の場合に陸上用残響データを適用し、ケース(水中,水中)の場合に水中用残響データを適用する理由は、両残響データをそれぞれ対応するケースのために作成しているから、減衰特性の適用の場合と同様、当然の適用である。
一方、ケース(水中,陸上)とケース(陸上,水中)の場合に聴音位置HPの媒質の減衰データを適用する設定にしているのは、減衰特性の適用の場合と同様の理由によるものである。従って、ケース(水中,陸上)では陸上用残響データを適用し、ケース(陸上,水中)では水中用残響データを適用する設定となっている。
なお、ケース(水中,陸上)とケース(陸上,水中)では伝播経路で媒質の変化があるので、その変化に基づき残響効果がケース(陸上,陸上)やケース(水中,水中)よりも低下することを考慮し、残響成分の音量レベルを低下させる処理を行うようにしている。ケース(水中,陸上)の陸上用残響特性の付加量Krvを0.8(残響音の音量を80%に減少)とし、ケース(陸上,水中)の水中用残響特性の付加量Krvを0.5(残響音の音量を50%に減少)としているのはその処理をすることを示している。
ケース(陸上,水中)の残響特性の付加量Krvをケース(水中,陸上)の残響特性の付加量Krvよりも小さくしているのは、残響成分の聞こえ方が水中の方が陸上の方よりも大きく聞こえることから、媒質が変化する前の媒質の残響特性を反映したものである。媒質が変化する前の状態では、ケース(水中,陸上)の方がケース(陸上,水中)の方よりも残響成分が多いから、媒質の変化により残響成分が低下するとしても、全体としてはケース(水中,陸上)の方がケース(陸上,水中)の方よりも残響成分が大きくなるようにしている。なお、これらの残響成分の付加量Krvも設計事項であるので、他の数値を適宜設定することができる。
図8は、本発明に係る効果音の生成処理プログラムを実行することによって実現される等価的な効果音生成回路を示す図である。
同図に示す効果音生成回路30は、フィルタ回路31と、3個の音量調整回路32,33,34と、2個のリバーブ回路35,36と、2個の信号混合回路37,38とで構成される。
効果音生成回路30においては、音声信号(原音データ)がフィルタ回路31に入力され、フィルタ回路31の出力信号は第1の音量調整回路32を介して第1の信号混合回路37に入力される。また、フィルタ回路31の出力信号は第1のリバーブ回路35と第2のリバーブ回路36とに入力される。第1のリバーブ回路35の出力信号は第2の音量調整回路33を介して第1の信号混合回路37に入力され、第2のリバーブ回路36の出力信号は第3の音量調整回路34を介して第2の信号混合回路38に入力される。第1の信号混合回路37では第1の音量調整回路32を介して入力されたフィルタ回路31の出力信号と第2の音量調整回路33を介して入力された第1のリバーブ回路35の出力信号とが混合され、第2の信号混合回路38では第3の音量調整回路34を介して入力された第2のリバーブ回路36の出力信号と第1の信号混合回路37の出力信号とが混合され、その混合信号が効果音として出力される。
フィルタ回路31は、外部からカットオフ周波数fcを設定することができるローパスフィルタである。フィルタ回路31は、カットオフ周波数fcが設定されると、ローパスフィルタとして動作し、カットオフ周波数fcが設定されなければ、入力信号をスルーさせる回路(フィルタ機能のない回路)として機能する。フィルタ回路31は、図7の「LPF処理の有無」の欄に対応するLPF処理をする回路であり、「LPF処理の有無」の欄で「有り」が設定されている場合は、CPU11からフィルタ回路31にカットオフ周波数fcが設定され、「無し」が設定されている場合は、CPU11からフィルタ回路31にカットオフ周波数fcは設定されない。
第1の音量調整回路32は、図7の「減衰特性の種類」と「媒質変化による音量変化率Kd」の欄に対応する減衰処理をする回路である。第1の音量調整回路32は、CPU11から音量調整情報が入力され、その音量調整情報を用いてフィルタ回路31の出力信号のレベルを調整する。
第1の音量調整回路32は、フィルタ回路31から出力される音声信号SLFのレベルに係数K1を乗じて当該音声信号SLFの音量を調整する。従って、この係数K1を第1の音量調整回路32の音量調整値とすると、CPU11から第1の音量調整回路32に音量調整値K1が入力される。この音量調整値K1は、図7の「媒質変化による音量変化率Kd」の欄の比率Kdと図6に示した陸上用減衰データD1または水中用減衰データD2によって算出されるレベルKrまたはKr’を乗じて算出される値(Kd×KrまたはKd×Kr’)である。
CPU11は、例えば、発音位置MPと聴音位置HPとの間の距離LがLrの場合(図6参照)、ケース(陸上,陸上)であれば、点PrのレベルKrと「媒質変化による音量変化率Kd」の欄の比率Kd=1.0を乗じて音量調整値K1=1.0×Krを算出し、その算出値を第1の音量調整回路32に設定する。ケース(水中,水中)であれば、CPU11は、上記のレベルKrに代えて点Pr’のレベルKr’を用いて算出した音量調整値K1=1.0×Kr’を第1の音量調整回路32に設定する。
また、ケース(水中,陸上)であれば、CPU11は、点PrのレベルKrと「媒質変化による音量変化率」の欄の比率Kd=0.6を乗じて音量調整値K1=0.6×Krを算出し、その算出値を第1の音量調整回路32に設定する。ケース(陸上,水中)であれば、CPU11は、点Pr’のレベルKr’と「媒質変化による音量変化率」の欄の比率Kd=0.5を乗じて音量調整値K1=0.5×Kr’を算出し、その算出値を第1の音量調整回路32に設定する。
従って、第1の信号混合回路37にはK1×SLF(0<K1≦1)の音声信号が入力される。
第1のリバーブ回路35と第2の音量調整回路33は、図7の「陸上用残響特性(付加量Krv)」の欄に対応する減衰処理をする回路である。第1のリバーブ回路35にはCPU11から回路を動作させるか否かの信号(リバーブ有り/無しの信号)と陸上用残響データ(プリディレイ、リバーブタイム、高周波減衰、クロストーク、反響信号強度などの各パラメータのデータ)が入力される。CPU11からリバーブ有りの信号が入力されると、第1のリバーブ回路35は陸上用のリバーブ回路として動作し、フィルタ回路31から入力される音声信号SLFを用いて残響信号Srvを生成する。
第2の音量調整回路33は、第1のリバーブ回路35から出力される残響信号Srvのレベルに音量調整値K2(0<K2≦1)を乗じて当該残響信号Srvの音量を調整する回路である。この音量調整値K2は、図7の「陸上用残響特性(付加量Krv)」の欄の付加量Krvと図6に示した陸上用減衰データD1によって算出されるレベルKrを乗じて算出される値(Krv×Kr)である。残響信号Srvにも距離による減衰を考慮する必要があるので、音量調整値K1と同様に、付加量Krvに陸上用減衰データD1によって算出されるレベルKrを乗じている。
従って、ケース(陸上,水中)とケース(水中,水中)の場合は、第1のリバーブ回路35がリバーブ回路として機能しないので、第2の音量調整回路33からは残響信号Srvは出力されず、第1の信号混合回路37には残響信号Srvは入力されない。
一方、ケース(陸上,陸上)とケース(水中,陸上)の場合は、第1のリバーブ回路35から陸上用残響データに基づいて残響信号Srvが生成され、その残響信号Srvのレベルが第2の音量調整回路33でK2倍に調整されて第1の信号混合回路37に入力される。すなわち、ケース(陸上,陸上)の場合は、残響信号SrvのレベルがK2=Krv×Kr=Kr倍にレベル調整されて第1の信号混合回路37に入力され、ケース(水中,陸上)の場合は、残響信号SrvのレベルがK2=Krv×Kr=0.8×Kr倍にレベル調整されて第1の信号混合回路37に入力される。
第2のリバーブ回路36と第3の音量調整回路34は、図7の「水中用残響特性(付加量Krv)」の欄に対応する減衰処理をする回路である。第2のリバーブ回路36の構成及び動作は、「水中用残響特性(付加量Krv)」の欄の情報と水中用残響データを用いる点を除いて上述した第1のリバーブ回路35と同様である。また、第3の音量調整回路34の構成及び動作も「水中用残響特性(付加量Krv)」の欄の情報と水中用減衰データD2によって算出されるレベルKr'を用いる点を除いて上述した第2の音量調整回路33と同様である。
従って、ケース(陸上,陸上)とケース(水中,陸上)の場合は、第2のリバーブ回路36がリバーブ回路として機能しないので、第3の音量調整回路34からは残響信号Srvは出力されず、第2の信号混合回路38には残響信号Srvは入力されない。
一方、ケース(陸上,水中)とケース(水中,水中)の場合は、第2のリバーブ回路36から水中用残響データに基づいて残響信号Srvが生成され、第3の音量調整回路34でその残響信号Srvのレベルに音量調整値K3(0<K3≦1)を乗じてレベル調整がされた後、第2の信号混合回路38に入力される。なお、第3の音量調整回路34には、CPU11から「水中用残響特性(付加量Krv)」の欄の付加量Krvと図6に示した水中用減衰データD2によって算出されるレベルKr'を乗じて算出される値(Krv×Kr')が音量調整値K3として設定される。
ケース(水中,水中)の場合は、残響信号SrvのレベルがK3=Krv×Kr'=Kr'倍にレベル調整されて第2の信号混合回路38に入力され、ケース(陸上,水中)の場合は、残響信号SrvのレベルがK3=Krv×Kr'=0.5×Kr'倍にレベル調整されて第2の信号混合回路38に入力される。
第1の信号混合回路37では、第1の音量調整回路32によってレベル調整が行われたフィルタ回路31からの音声信号K1×SLFと、第2の音量調整回路33によってレベル調整が行われた残響信号K2×Srvが混合され、第2の信号混合回路38では、第1の信号混合回路37から出力される混合信号(K1×SLF+K2×Srv)と、第3の音量調整回路34によってレベル調整が行われた残響信号K3×Srvが混合される。
第1のリバーブ回路35と第2のリバーブ回路36は、いずれか一方しか動作しないので、効果音生成回路30からは、第1の音量調整回路32によってレベル調整された音声信号K1×SLFと第2の音量調整回路33によってレベル調整された第1のリバーブ回路35からの残響信号K2×Srvとを混合した混合信号(K1×SLF+K2×Srv)と、同音声信号K1×SLFと第3の音量調整回路33によってレベル調整された第2のリバーブ回路36からの残響信号K3×Srvとを混合した混合信号(K1×SLF+K3×Srv)のいずれかが効果音として出力される。
次に、本発明に係る効果音の生成処理について、図9,図10のフローチャートを用いて説明する。なお、以下の説明では、ゲーム展開のあるタイミングでモンスターMが咆哮音Sを発する場面における当該咆哮音Sの生成処理について説明する。また、上記の説明では、聴音位置TPをハンターHの位置HPとしたが、図9,図10のフローチャートの説明では、仮想カメラCの位置CPを聴音位置TPとし、「聴音位置TP」として説明する。
表示部18には、1/30毎にコマ画像をVRAM16に生成する動作を繰り返すことによってゲーム画像が動画表示される。表示部18によるゲーム画像の表示によって展開されるゲーム中に、CPU11がモンスターMの咆哮音Sを生成するプログラムを実行する処理に移行すると、CPU11は、RAM13に格納されている音響データから当該咆哮音Sの原音データを読み出し、図8に示した等価的な効果音生成回路30により咆哮音Sの生成処理を行う。
原音データは、図5に示すように時間tの咆哮波形を有するデータであるから、何ら加工をすることなく当該原音データを再生すると、咆哮音Sの発生開始時から時間tが経過するまでに表示部18にモンスターMが姿勢変化や移動などの所定の動作をするゲーム画像が表示されると、モンスターMがその動作をしている期間、原音データがそのまま再生されることになる。すなわち、この場合は、図8の等価的な効果音生成回路30内の各回路を、咆哮音Sの発生開始時に設定されたデフォルト値で時間tが経過するまで動作させることになる。
本発明に係る効果音の生成処理では、原音データが再生されている時間tの間、ゲーム空間におけるモンスターM(発音位置MP)及び仮想カメラCの位置CP(聴音位置TP)を1/30毎に算出する。そして、両者の位置関係に基づいて表示部18に表示させるゲーム画像を更新するのに合わせて、モンスターM(発音位置MP)及び仮想カメラCの位置CP(聴音位置TP)の位置情報を用いて効果音生成回路30内の各回路に設定される動作条件(図7の各欄の内容に従って設定される条件)を変化させて原音データの再生中に当該原音データの再生波形を変化させる処理が行われる。
従って、図9に示すフローチャートのステップS2〜S12のループ処理は、1/30毎に繰り返し行われる処理手順を示し、この処理手順では図8の等価的な効果音生成回路30内の各回路に設定される動作条件を更新し、原音データを加工する処理が行われる。
まず、モンスターMが咆哮音Sを発する場面になると(CPU11がゲームプログラムの効果音生成処理を実行するタイミングになると)、RAM13に格納されている音響データからその咆哮音Sの原音データが読み出される(S1)。続いて、ゲーム空間におけるモンスターMの位置の座標が取得される(S2)。図1(a)に示したように、ゲーム空間には三次元の直交座標系XYZが設定されており、モンスターMの動作はコンピュータによって制御されているので、ゲーム画像の描画処理においては、XYZ座標系におけるモンスターMの座標(Xm,Ym,Zm)は1/30秒毎に自動的に算出される。また、仮想カメラCのXYZ座標系における座標(Xc,Yc,Zc)も各エリアの初期画面ではデフォルト値が設定されており、プレイヤの操作キー4による移動操作の操作量に応じて1/30秒毎に当該デフォルト値の更新処理が行われるので、その更新値が仮想カメラCの座標として取得される。
なお、本実施形態では、水中におけるモンスターMやハンターHの三次元画像が表示部18に表示されるので、図1(b)に示すように、直交座標系XYZのZ座標については水と空気の境界面を「0」とし、+方向を陸上(空気中)の領域A1、−方向を水中の領域A2を示すようにしている。従って、モンスターMや仮想カメラCが水中にいるか否かは、Z座標値がマイナスであるか否かによって判断される。
続いて、モンスターMのZ座標値(Zm)がZm≦0であるか否かを判別することによってモンスターMが水中にいるか否かが判別される(S3)。モンスターMが水中に存在すれば(S3:YES)、フラグF1が「1」に設定され(S4)、モンスターMが水中に存在しなければ、すなわち、モンスターMが陸上に存在すれば(S3:NO)、フラグF1が「0」に設定される(S5)。
なお、フラグF1は、モンスターMが水中に存在するか否かを示すフラグであり、図9のフローチャートが開始される初期状態ではデフォルト値として「0」(陸上に存在することを示す)に設定されている。従って、F1=1は水中に存在することを示し、F1=0は陸上に存在することを示す。
続いて、ゲーム空間における聴音位置TPの座標(XTP,YTP,ZTP)が取得される(S6)。この説明では、仮想カメラCの位置CPを聴音位置TPとしているので、(XTP,YTP,ZTP)=(Xc,Yc,Zc)が取得される。
続いて、仮想カメラCのZ座標値(Zc)がZc≦0であるか否かを判別することによって仮想カメラCが水中にあるか否かが判別される(S7)。仮想カメラCが水中にあれば(S7:YES)、フラグF2が「1」に設定され(S8)、仮想カメラCが水中になければ(S7:NO)、フラグF2が「0」に設定される(S9)。
なお、フラグF2は、仮想カメラC(正確には聴音位置TP)が水中にあるか否かを示すフラグであり、図9のフローチャートが開始される初期状態ではデフォルト値として「0」(陸上にあることを示す)に設定されている。従って、F2=1は水中にあることを示し、F2=0は陸上にあることを示す。
続いて、フラグF1,F2の設定状態と図7に示す効果音の生成処理の内容とに基づいて、図8の等価的な効果音生成回路30の各回路に対する処理条件が決定される(S10)。
図10は、ステップS10の処理条件を決定する処理手順を示す図である。
ステップS10に移行すると、フラグF1,F2の設定内容に基づいて効果音生成シーンが図7の4つのケースのいずれに該当するかが決定される。すなわち、フラグF1,F2の設定内容を(F1,F2)の2ビット情報であるとすると、(F1,F2)=(0,0)であれば(S21:NO,S23:NO)、効果音生成シーンのケースはケース(陸上,陸上)に決定され(S24)、(F1,F2)=(0,1)であれば(S21:NO,S23:YES)、効果音生成シーンのケースはケース(陸上,水中)に決定される(S25)。また、(F1,F2)=(1,1)であれば(S21:YES,S22:YES)、効果音生成シーンのケースはケース(水中,水中)に決定され(S26)、(F1,F2)=(1,0)であれば(S21:YES,S22:NO)、効果音生成シーンのケースはケース(水中,陸上)に決定される(S27)。
そして、ステップS24〜S27で決定されたケースに対応する効果音生成条件、すなわち、等価的な効果音生成回路30の各回路に対する動作条件が設定される(S28)。
すなわち、(F1,F2)=(0,0)の場合は、図7のケース1の動作条件に従ってLPF処理のカットオフ周波数fcは「0」に決定される。
また、モンスターMの座標(Xm,Ym,Zm)と仮想カメラCの座標(Xc,Yc,Zc)から両者の距離Lr=√[(Xm−Xc)2+(Ym−Yc)2+(Zm−Zc)2]が算出され、この距離Lrと図6に示す陸上用減衰データD1から距離Lrにおける音量レベルKrが設定される。また、この音量レベルKrと「媒質変化による音量変化率Kd」の欄の音量変化率Kd=1.0とから第1の音量調整回路32に対する音量調整値K1=Krが設定される。
また、陸上用残響データに基づいて第1のリバーブ回路35に設定すべきプリディレイ、リバーブタイム、高周波減衰、クロストーク、反響信号強度などの各パラメータのデータが決定される。さらに、残響信号Srvの付加量Krv=1.0と図6に示した陸上用減衰データD1によって算出されるレベルKrを乗じて第2の音量調整回路33に対する音量調整値K2が「Kr」に決定される。なお、水中用残響データは使用しないので、第2のリバーブ回路36に対しては動作させないことが決定され、第3の音量調整回路34に対する音量調整値K3は設定されない。
(F1,F2)=(1,0)の場合は、図7のケース2の動作条件に従ってLPF処理のカットオフ周波数fcが決定される。上記の説明では、例示として1200Hzのカットオフ周波数fcだけを示していたが、ゲーム全体としては、エリア毎にカットオフ周波数fcが設けられ、各エリアのゲーム場面では複数個設定されている場合があるので、ステップS28では、現在のゲーム場面に対応するカットオフ周波数fcが決定される。
また、モンスターMの座標(Xm,Ym,Zm)と仮想カメラCの座標(Xc,Yc,Zc)から両者の距離Lrが算出され、この距離Lrと図6に示す陸上用減衰データD1から距離Lrにおける音量レベルKrが設定される。また、この音量レベルKrと「媒質変化による音量変化率Kd」の欄の音量変化率Kd=0.6とから第1の音量調整回路32に対する音量調整値K1=0.6×Krが設定される。
また、陸上用残響データに基づいて第1のリバーブ回路35に設定すべきプリディレイ、リバーブタイム、高周波減衰、クロストーク、反響信号強度などの各パラメータのデータが決定される。さらに、残響信号Srvの付加量Krv=0.8と図6に示した陸上用減衰データD1によって算出されるレベルKrを乗じて第2の音量調整回路33に対する音量調整情値K2が「0.8×Kr」に決定される。なお、水中用残響データは使用しないので、第2のリバーブ回路36に対しては動作させないことが決定され、第3の音量調整回路34に対する音量調整値K3は設定されない。
(F1,F2)=(0,1)の場合は、図7のケース3の動作条件に従ってLPF処理のカットオフ周波数fcが「0」に決定される。
また、モンスターMの座標(Xm,Ym,Zm)と仮想カメラCの座標(Xc,Yc,Zc)から両者の距離Lrが算出され、この距離Lrと図6に示す水中用減衰データD2から距離Lrにおける音量レベルKr’が設定される。また、この音量レベルKr’と「媒質変化による音量変化率Kd」の欄の音量変化率Kd=0.5とから第1の音量調整回路32に対する音量調整値K1=0.5×Kr’が設定される。
また、水中用残響データに基づいて第2のリバーブ回路36に設定すべきプリディレイ、リバーブタイム、高周波減衰、クロストーク、反響信号強度などの各パラメータのデータが決定される。さらに、残響信号Srvの付加量Krv=0.5と図6に示した水中用減衰データD2によって算出されるレベルKr’を乗じて第3の音量調整回路34に対する音量調整値K3が「0.5×Kr’」に決定される。なお、陸上用残響データは使用しないので、第1のリバーブ回路35に対しては動作させないことが決定され、第2の音量調整回路33に対する音量調整値K2は設定されない。
(F1,F2)=(1,1)の場合は、図7のケース4の動作条件に従ってLPF処理のカットオフ周波数fcが決定される。また、モンスターMの座標(Xm,Ym,Zm)と仮想カメラCの座標(Xc,Yc,Zc)から両者の距離Lrが算出され、この距離Lrと図6に示す水中用減衰データD2から距離Lrにおける音量レベルKr’が設定される。また、この音量レベルKr’と「媒質変化による音量変化率Kd」の欄の音量変化率Kd=1.0とを乗じて第1の音量調整回路32に対する音量調整値K1が「Kr’」に設定される。
また、水中用残響データに基づいて第2のリバーブ回路36に設定すべきプリディレイ、リバーブタイム、高周波減衰、クロストーク、反響信号強度などの各パラメータのデータが決定され、残響信号Srvの付加量Krv=1.0と図6に示した水中用減衰データD2によって算出されるレベルKr’を乗じてから第3の音量調整回路34に対する音量調整値K3が「Kr’」に決定される。なお、陸上用残響データは使用しないので、第1のリバーブ回路35に対しては動作させないことが決定され、第2の音量調整回路33に対する音量調整値K2は設定されない。
ステップS10で処理条件が決定されると、その処理条件が図8の等価的な効果音生成回路30の各回路に設定され、原音データに対して各回路で所定の加工処理が行われて出力されている効果音の音量や音色(周波数成分)や残響特性を変化させる(S11)。
上記のステップS2〜S11の処理は、モンスターMの咆哮音Sの発生開始からその咆哮音Sの原音データの再生時間tが経過するまで繰り返され(S2〜S12のループ処理)、咆哮音Sの原音データの再生時間tが経過すると(S12:YES)、効果音の生成処理は終了する。
図11は、本発明に係る効果音生成処理により発生される効果音の波形の変化の一例を示す図である。同図(a)〜(d)の横軸は時間を示し、縦軸は咆哮音Sのレベルを示している。
同図(a)は、仮想カメラCが陸上の所定の位置に固定され、モンスターMが陸上で咆哮しながら仮想カメラCから離れる方向に移動した場合の咆哮音Sの波形を示し、同図(b)は、仮想カメラCが水中の所定の位置に固定され、モンスターMが水中で咆哮しながら仮想カメラCから離れる方向に移動した場合の咆哮音Sの波形を示している。
(a)のケースは、咆哮音Sが発生している期間は全てケース(陸上,陸上)に該当し、(b)のケースは、咆哮音Sが発生している期間は全てケース(水中,水中)に該当するから、(a)では図7のケース1の条件で効果音生成処理が行われ、(b)では図7のケース4の条件で効果音生成処理が行われる。従って、(a)の波形も(b)の波形もレベルが連続的に変化(減衰)し、不連続になることはない。また、ケース(水中,水中)ではローパスフィルタのフィルタリング処理が行われるので、ケース(陸上,陸上)に比べて咆哮音Sの波形は高周波成分が少なくなる。(a)の咆哮音Sがギザギサした周期の短い波形を有しているのに対し、(b)が(a)よりも丸みがあり、周期が少し長い波形を有しているのは、フィルタリング処理の効果によることを示している。
同図(c)は、仮想カメラCが陸上の所定の位置に固定され、同図(e)に示すように、水中にいるモンスターMが咆哮しながら途中で一時空気中に出現した後、水中に戻る経路で仮想カメラCから離れる方向に移動した場合の咆哮音Sの波形を示し、同図(d)は、仮想カメラCが水中の所定の位置に固定され、モンスターMが(c)と同様の移動動作をした場合の咆哮音Sの波形を示している。
同図(c)では、咆哮音Sが発生している期間のうち、モンスターMが最初に水中にいる期間T1はケース(水中,陸上)に該当し、モンスターMが空中に出現している期間T2はケース(陸上,陸上)に該当し、モンスターMが最後に水中にいる期間T3はケース(水中,陸上)に該当する。
従って、期間T1と期間T3では図7のケース2の条件で効果音生成処理が行われ、期間T2では図7のケース1の条件で効果音生成処理が行われるので、期間T1と期間T2の境界N1及び期間T2と期間T3の境界N2で咆哮音Sのレベルが不連続になる。また、ケース2の処理ではローパスフィルタのフィルタリング処理が行われるが、ケース1の処理ではそのフィルタリング処理は行われないので、期間T1,T3の波形は期間T2の波形よりも丸みがあり、周期が少し長い波形となる。ケース2の処理からケース1の処理に変化すると、ケース2の処理では媒質変化による音量変化率Kdと距離減衰Krとにより音量レベルが0.6×Kr倍に低減されるが、ケース1の処理ではその音量レベルの低減処理が行われないので、(c)では期間T1,T3のレベルが期間T2よりも低くなる。
同図(d)では、咆哮音Sが発生している期間のうち、モンスターMが最初に水中にいる期間T1はケース(水中,水中)に該当し、モンスターMが空中に出現している期間T2はケース(陸上,水中)に該当し、モンスターMが最後に水中にいる期間T3はケース(水中,水中)に該当する。
従って、期間T1と期間T3では図7のケース4の条件で効果音生成処理が行われ、期間T2では図7のケース3の条件で効果音生成処理が行われるので、(c)と同様に期間T1と期間T2の境界N1及び期間T2と期間T3の境界N2で咆哮音Sのレベルが不連続になる。また、ケース4の処理ではローパスフィルタのフィルタリング処理が行われるが、ケース1の処理ではそのフィルタリング処理は行われないので、期間T1,T3の波形は期間T2の波形よりも丸みがあり、周期が少し長い波形となる点も(c)と同様の傾向となる。その一方、ケース4の処理からケース3の処理に変化すると、媒質変化による音量変化率Kdと距離減衰Kr’とにより音量レベルが0.5×Kr’倍に低減されるので、(d)では(c)とは逆に期間T2のレベルが期間T1,T3よりも低くなる。
上記のように、本実施形態に係る効果音生成方法が適用されるゲーム装置1によれば、ゲーム空間に音響特性の異なる媒質で占められる2種類の領域(空気中と水中)が設けられ、両領域を発音体であるモンスターMと聴音体であるハンターH(若しくは仮想カメラC)とが移動可能に設定されている場合に、各領域の音の減衰特性、周波数特性及び残響特性を設け、ゲーム空間におけるモンスターMの存在する領域とハンターH(若しくは仮想カメラC)の存在する領域の4つの組合せ(ケース(陸上,陸上),ケース(水中,陸上),ケース(陸上,水中),ケース(水中,水中)の組合せ)とモンスターMとハンターHとの間の距離に応じた効果音の減衰特性、周波数特性及び残響特性の処理を行うようにしているので、2つの領域の間でモンスターM(発音位置)とハンターH(聴音位置)との位置関係が自由に変化してもその位置関係の変化に応じて可及的に自然に聞こえる効果音を出力することができる。
特に、ゲーム画像のフレーム画像の生成と同期してモンスターM(発音位置)とハンターH(聴音位置)との位置関係を求め、その位置関係に基づいて効果音生成処理を行うので、図11の(c),(d)に示されるように、モンスターMが水中から陸上に移動する瞬間やその逆の方向に移動する瞬間に効果音が不連続に変化するのを疑似的に表現することすることができ、効果音によって三次元のゲーム画像で描写される場面に応じた現実世界に近い聴覚効果を演出することができる。
なお、上記実施形態では、音響特性の異なる媒質の2つの領域の例として水中と空気中について説明したが、音響特性の異なる媒質としてこれらに限られるものではない。すなわち、媒質の異なる2つの領域として液体領域と気体領域とに分けるとすれば、液体領域の種類は水だけに限られず、任意の液体の種類を適用することができ、気体領域の種類も空気だけに限られず、任意の気体の種類を適用することができる。また、ゲームソフトにおいて、現実世界に存在しない液体や気体を創作することができるから、任意に創作した液体や気体を適用してもよい。
また、液体だけでなく砂などの固体による流体の領域を適用してもよく、また隣接する媒質の異なる領域を3種類以上設けるようにしてもよい。
上記の実施形態では、水中と空気中との違いを演出するためのエフェクタとして、リバーブを用いたが、例えばディレイやエコーなどの他の残響・反響音の付加に関するエフェクタやコーラスやフランジャーなどの聴覚上の揺らぎを演出するエフェクタを用いてもよい。また、水中と空気中との違いを演出するための主要な要素としては、媒質境界における音量変化やローパスフィルタによる周波数特性の相違がリバーブなどのエフェクタよりも優勢であるので、リバーブなどのエフェクタを省略し、処理の簡素化を図るようにしてもよい。
上記の実施形態では、発音位置MPをモンスターMの位置にしているが、発音位置MPは正確にモンスターMの位置に設定する必要はなく、発音体となるキャラクタやその周辺近傍の任意の位置に設定してもよい。聴音位置TPについても同様で、ハンターHや仮想カメラCの位置に正確に設定する必要はなく、聴音体となるキャラクタは仮想カメラやその周辺近傍の任意の位置に設定してもよい。
上記の実施形態では、原音データの再生時間tにおける当該原音データの加工処理をゲーム画像の生成動作に同期させていた(1/30秒毎にしていた)が、その加工処理のタイミングは任意に設定することができる。例えば、フレーム画像の生成周期の整数倍の周期に設定しても良い。
上記の実施形態では、本発明に係る効果音生成処理を、主として音声処理プロセッサ19により行わせているが、CPU11と音声処理プロセッサ19とが共同して行うようにいてよく、音声処理プロセッサ19を省略してCPU11により行わせるようにしても良い。
上記の実施形態では、ゲーム装置1の効果音を生成する場合について説明したが、本発明に係る効果音生成技術は、ゲームの効果音に限られず、表示装置にゲーム以外の三次元の映像、例えば撮影画像やデモンストレーション画像などを表示するときにその映像に対して効果音を付加する場合にも適用することができる。