以下、本発明の実施の形態に係るゲームプログラム、記録媒体、及びゲーム装置について、図面を参照しつつ説明する。
[ハードウェアの構成]
図1は、本発明の一実施形態に係るゲーム装置1の内部構成を示すブロック図である。図1に示すようにゲーム装置1は制御部30を備えており、該制御部30にはCPU11、描画データ生成プロセッサ12、RAM(Random Access Memory)13、ROM(Read Only Memory)14、描画処理プロセッサ15、及び音声処理プロセッサ18が含まれている。更にゲーム装置1は、この他にもVRAM(Video-RAM)16、アンプ19、スピーカ20、イヤホン端子21、操作部22、メディアインタフェース23、無線LANモジュール24、及びバス25を備えている。そして、これらのうちCPU11、描画データ生成プロセッサ12、RAM13、ROM14、描画処理プロセッサ15、音声処理プロセッサ18、操作部22、メディアインタフェース23、および無線LANモジュール24が、バス25によって相互にデータ伝送可能に接続されている。
操作部22は、方向キー及びその他のボタン群(図示せず)を含んでおり、プレイヤの操作を受け付けて、その操作内容に応じた操作信号をCPU11に入力する。また、方向キー及びボタン群が有する各種のボタンは、プレイヤキャラクタの特定の動作を指示するための操作子である。また、操作部22には、これら操作子以外にゲーム装置1の電源の入/切を行うための電源スイッチ等が含まれる。
メディアインタフェース23は、図示しないメディア装着部にセットされたゲームメディア5にアクセスしてゲームプログラム5a及びゲームデータ5bを読み出す。このうちゲームプログラム5aは、例えば、プレイヤキャラクタと敵キャラクタとが仮想空間にて対戦する内容のゲームを、ゲーム装置1に実行させるものである。また、ゲームデータ5bには、上記ゲームを実行する上で必要なデータとして、キャラクタや背景の画像データ、ステータスなどの情報表示用の画像データ、効果音やBGMなどの音声データ、文字や記号によるメッセージデータ等が含まれている。なお、記録媒体であるゲームメディア5は、半導体メモリのほか、光ディスクの一種であるUMD(Universal Media Disc)(登録商標)を採用することができる。
RAM13には、ゲームの進行に応じてゲームメディア5から読み込まれたゲームプログラム5a及びゲームデータ5bを格納するロードエリア、並びに、CPU11がゲームプログラム5aを処理する際に使用するためのワークエリアが設定されている。ROM14には、ディスクローディング機能などのゲーム装置1の基本的機能や、ゲームメディア5に記憶されているゲームプログラム5a及びゲームデータ5bの読み出し処理を制御する基本プログラムが記憶されている。
CPU11は、ゲームメディア5に記録されているゲームプログラム5a及びゲームデータ5bの全部または一部を、メディアインタフェース23を通じてRAM13に読み込み、プレイヤによる操作部22の操作に応じてこれを実行し、ゲーム進行を制御する。より具体的には、プレイヤに操作されることによって操作部22から操作信号が入力されると、CPU11は、ゲームプログラム5aに従ってその操作信号に対応する所定のゲーム進行処理を行い、その処理結果を、ゲーム進行を示す画像(以下、「ゲーム画像」)としてディスプレイ2に表示すると共に、ゲーム進行を示す音声信号(以下、「ゲーム音声」)をスピーカ20やイヤホン端子21に出力する。
上記ゲーム画像の描画は、CPU11の指示により、描画処理プロセッサ15が行う。即ち、CPU11は、操作部22から入力される操作信号に基づき、ディスプレイ2に表示すべきゲーム画像の内容を決定し、その内容に対して必要な描画データを描画データ生成プロセッサ12に生成させる。そして、その描画データを描画処理プロセッサ15に転送して描画処理を行わせる。描画処理プロセッサ15は、描画データに基づいて1/60秒毎にゲーム画像を生成し、生成したゲーム画像をVRAM16に書き込む。ディスプレイ2は、半透過型カラー液晶ディスプレイとバックライトLED(Light Emitting Diode)とを有し、VRAM16に書き込まれたゲーム画像を表示する。
また、CPU11は、ゲームの進行に応じて、スピーカ20から出力すべき効果音やBGM等の音声を決定し、その音声を発音するための音声データをRAM13から読み出して音声処理プロセッサ18に入力する。即ち、CPU11は、ゲームの進行に伴って発音イベントが発生すると、その発音イベントに応じた音声データ(ゲームメディア5からロードされた音声データ)をRAM13から読み出して音声処理プロセッサ18に入力する。音声処理プロセッサ18は、DSP(Digital Signal Processor)で構成されており、CPU11によって入力された音声データに対して所定の効果(例えば、リバーブ、コーラスなど)を付与したのちアナログ信号に変換して、アンプ19に出力する。アンプ19は、音声処理プロセッサ18から入力された音声信号を増幅したのち、スピーカ20及びイヤホン端子21に出力する。
無線LANモジュール24は、通信規格IEEE802.11b(使用周波数帯2.4GHz、通信速度11Mbps)に準拠した無線LANによって他のゲーム装置1とデータ通信を行い、ネットワークを構成するための通信モジュールである。
[ゲームシステムの説明]
図2は、図1に示すゲーム装置が実行するゲームプログラムによって実現されるゲームの内容を説明するための模式図である。図2に示すように、本ゲームでは、所定の広がりを有する仮想空間Sが設定されており、該仮想空間S内には、操作部22の操作によりプレイヤが直接的にその動作を制御することのできるプレイヤキャラクタPが存在している。また、同じ仮想空間S内には、プレイヤの操作によってはその動作を直接的に制御することができず、CPU11によって動作が制御されるノンプレイヤキャラクタである敵キャラクタ(モンスター等:図示せず)も出現するようになっている。また、仮想空間S内においてプレイヤキャラクタP近傍の所定位置には、仮想空間Sを撮像するための仮想カメラCが配置されており、ゲーム装置1のディスプレイ2には、該仮想カメラCにより撮像された仮想空間Sの画像が表示される。そして、本ゲームは、プレイヤがディスプレイ2に表示された仮想空間Sを見ながら、プレイヤキャラクタPを操作して敵キャラクタと戦闘を行い、これを討伐するアクションゲームになっている。
本ゲームの敵キャラクタは、攻撃手段の1つとして、例えば火炎や冷気などのブレスBをプレイヤキャラクタPに対して吐いてくる場合がある。このブレスBは、所定の効果音を発しながら仮想空間S内を移動する発音源であり、仮想カメラCの向けられている方向(移動方向BD1参照)からだけでなく、その反対方向(移動方向BD2参照)からや、側方(移動方向BD3参照)から飛翔してくる場合もある。なお、以下では、仮想カメラCの向きCDに沿った方向(移動方向BD1,BD2に沿った方向)をX軸方向、平面視において仮想カメラCの向きCDに直交する方向(移動方向BD3に沿った方向)をY軸方向、高さ方向をZ軸方向とする。そして、以下では、他に断らない限り、仮想カメラCの向きCDを基準にして前方および後方を定義する。すなわち、例えば移動方向BD1は、仮想カメラCの前方から後方へ向かう方向を意味する。また、仮想空間S内を移動してプレイヤキャラクタPに対して接近してくる発音源としては、上記のようなブレスBに限られず、例えば、敵キャラクタ自体も、移動する際に音を発する場合(飛翔するモンスターの風きり音、陸上を走るモンスターの足音、など)には、移動する発音源となり得る。
また、プレイヤキャラクタPと仮想カメラCとの間には、聴取位置として設定される仮想マイクLが設定されている(但し、オブジェクトではなく仮想カメラCにより撮像されない)。そして、上述した発音源から発せられる音は、この仮想マイクLによって検出され、ゲーム装置1のスピーカ20から発せられてプレイヤに聴取可能になっている。なお、仮想カメラCの位置設定はこれに限られず、例えば、プレイヤキャラクタPの視点と同期している態様等ゲームの種類またはゲーム内で設定される複数のモード等に応じて種々設定可能である。また、操作部22の操作や特定の条件等により仮想カメラCの方向を変更可能に構成されてもよい。また、仮想マイクLの位置設定についても上記に限られず、例えば仮想カメラC又はプレイヤキャラクタPと同じ位置に仮想マイクLが設定されてもよい。本発明に係るゲーム装置1は、上述したように仮想空間S内を発音源が移動している場合に、プレイヤに聴取される音のピッチ(周波数)を変更(ピッチ変更処理)することで、発音源の移動をよりリアルに表現するようにしている。なお、発音源が移動している場合に限らず、発音源と聴取位置との相対距離が変化する場合(例えば発音源が停止していてもプレイヤキャラクタPの移動に伴って聴取位置が移動する場合)についてもピッチ変更処理を行うこととしてもよい。このピッチ変更処理の詳細については後述する。
[制御部の機能的構成]
図3は、ゲーム装置1が備える制御部30の機能的な構成を示すブロック図であり、主に、上述したゲームシステムを実現するのに必要な機能を示している。前述したとおり、制御部30は、CPU11、描画データ生成プロセッサ12、RAM13、ROM14、描画処理プロセッサ15、音声処理プロセッサ18を含むコンピュータとして動作する。そして、このコンピュータとして動作する制御部30は、ゲームメディア5から読み込んだゲームプログラム5a及びゲームデータ5bを実行することによって、以下に説明するような機能を備える。すなわち、図3に示すように制御部30は、仮想空間生成手段30a、キャラクタ制御手段30b、発音源移動制御手段30c、進入判定手段30d、進行方向判定手段30e、および音特性制御手段30fを備えている。
このうち、仮想空間生成手段30aは、プレイヤキャラクタPが行動する仮想空間Sを生成するものであり、該仮想空間Sには、プレイヤキャラクタPおよび敵キャラクタが対戦する仮想空間も含まれる。
キャラクタ制御手段30bは、仮想空間SにおけるプレイヤキャラクタPおよび敵キャラクタを含む様々のキャラクタの動作を制御する。例えば、プレイヤによる操作部22の操作に応じて、対戦時におけるプレイヤキャラクタの移動、攻撃、および防御を含む各種動作を制御し、また、敵キャラクタによる移動、攻撃、および防御等の各種の動作も制御する。
発音源移動制御手段30cは、仮想空間S内にて発音源を移動させる制御を行う。例えば、キャラクタの攻撃等による発音源の発生後、発音源を移動させる制御を行う。
進入判定手段30dは、プレイヤキャラクタPが仮想空間S内の音を聴取する位置として該プレイヤキャラクタの近傍に設定された聴取位置Lを基準として予め定められた変更領域A(図4参照)内に、仮想空間S内を移動する発音源が進入したか否かを判定する。また、進行方向判定手段30eは、発音源の変更領域A内における進行方向を仮想カメラCの向きCDを基準として判定する。また、音特性制御手段30fは、発音源が変更領域A内にあるときの発音源の音特性の制御態様と、発音源が変更領域A外にあるときの発音源の音特性の制御態様とを異ならせるように制御する。本実施形態においては、制御態様を異ならせる音特性として発音源の周波数ピッチ(音の高低)を採用する。すなわち、音特性制御手段30fは、発音源の位置が仮想カメラCの前後方向に関して少なくとも聴取位置と一致するまで、発音源の移動に伴ってその音のピッチを連続的にまたは段階的に上げるように制御するピッチ変更処理を行う。詳しくは後述する。
[ピッチ変更処理]
次に、ゲーム装置1が実行するピッチ変更処理について具体的に説明する。図4は、ピッチ変更処理を説明するための模式図であって、プレイヤキャラクタ付近の仮想空間の概略平面図と、仮想カメラCの前方から後方へと移動する発音源のピッチ変化を示すグラフとを示している。なお、図4には、移動する発音源として、敵キャラクタが吐き出すブレスBを例示しており、ブレスBと仮想マイクLの位置との間のブレスBの移動方向に関する相対距離を横軸にとり(ブレスBが仮想マイクLに近づく方向を負、ブレスBが仮想マイクLから離れる方向を正として表している)、対応するピッチ変更量を縦軸にとっている。
発音源は、所定の音量(音の大小を示す指標)および所定の周波数ピッチ(音の高低を示す指標であり、以下、単にピッチと称する)が初期値として予め設定されている。発音源の音量は発音開始からの経過時間に応じて小さくなるように設定されていてもよいし、発音源と聴取位置である仮想マイクLとの距離に応じて変化するように設定されていてもよい。
本実施形態において、仮想空間Sには、前述の通り、仮想カメラCの向きCDに沿った方向(移動方向BD1,BD2に沿った方向)をX軸方向、平面視において仮想カメラCの向きCDに直交する方向(移動方向BD3に沿った方向)をY軸方向、高さ方向をZ軸方向とする所定の座標軸が設定されており、その原点が聴取位置に設定されている。すなわち、仮想マイクLの座標は(0,0,0)である。本実施形態においては、仮想マイクLより前方の位置におけるX座標を正にとる(X>0)。制御部30は仮想マイクL、プレイヤキャラクタPおよび移動する発音源であるブレスBを含むすべてのオブジェクトの座標を読み出せるように構成されている。具体的には、例えば、ブレスBの座標が(X,Y,Z)で設定される。さらに、仮想空間には聴取位置を基準とした変更領域Aが設定されている。本実施形態においては、変更領域Aが、聴取位置を中心として予め定められた距離Rを半径とする円の内側の領域として設定されている。
なお、変更領域Aの大きさ(本実施形態においては変更領域Aを定める半径Rの長さ)は、例えば、発音源ごとに異なることとしてもよい。例えば、比較的小さなモンスターの足音に関する変更領域Aの半径Rは、より大きなモンスターの足音に関する変更領域Aの半径Rよりも小さいこととしてもよい。また、例えば、同じキャラクターの足音でも、通常の足音と走る足音とで異ならせることとしてもよい。あるいは、発音源の種類(ブレス、足音等)ごとに異なることとしてもよい。さらに、半径Rの長さは、発音源が存在する仮想空間Sの環境に応じて変化することとしてもよい。例えば、聴取位置またはプレイヤキャラクタPが洞窟内や水中に位置する場合や仮想空間S内で雨が降っている場合に、変更領域Aの大きさを異ならせることとしてもよい。
なお、本実施形態においては、仮想マイクLの位置から予め定められた距離Rを半径とする円の内側の領域を変更領域Aとして設定しているが、これに限られず、例えば、プレイヤキャラクタPまたは仮想カメラCを中心とする円の内側の領域でもよい。また、変更領域Aは、楕円および矩形の何れでもよいし、その他の形状を有していてもよい。すなわち、聴取位置(仮想マイクL)、仮想カメラCまたはプレイヤキャラクタPから変更領域Aの境界までの距離がそれらの位置から前後左右で異なっていてもよい。その他の形状としては、例えば、変更領域Aが扇形を有しており、その扇形の中心に聴取位置が配置される場合等が含まれる。さらに、変更領域A内にプレイヤキャラクタP、聴取位置である仮想マイクL、および仮想カメラCのすべてが変更領域A内に位置する場合だけでなく、聴取位置が変更領域A外にあってもよい。例えば、聴取位置から仮想カメラCの前方に所定距離離れた位置を中心として変更領域Aを設定してもよい。さらに、予め定められた領域(例えば固定オブジェクトや地形等)が聴取位置から所定の距離内に位置した場合に、当該領域が変更領域Aとして機能することとしてもよい。この場合、例えば木を変更領域Aの対象となる領域として設定しておき、聴取位置と変更領域Aの対象となる木との間の距離が所定の距離内となった状態で、当該木の中に発音源が進入することで発音源の音特性を変化させる(その後、発音源が木から出ると、当該発音源が所定の距離内に位置していても音特性は変化させない)こととしてもよい。
図5は、図1に示すゲーム装置の発音処理の制御の流れを示すフローチャートである。図5に示すフローチャートは、発音源が音を発音するための発音イベントがコールされた場合に実際に発音処理が実行されるための制御の流れを示すものである。
本制御の前提として、制御部30は、仮想空間生成手段30aとして機能し、仮想空間Sを生成するとともに、キャラクタ制御手段30bとしても機能し、各キャラクタの動作を制御する。
また、制御部30は、所定時間単位のフレームごとに発音源から発音イベントがコールされ、発音が実行されるかどうかを監視する。ここで、例えば、モンスターが攻撃オブジェクトであるブレスBを発射した場合、発音源であるブレスBの発音イベントがコールされ、発音処理がスタートする。発音イベントには、その発音イベントの分類(カテゴリ、識別番号等)を含む発音情報が設定されており、まず、制御部30は、ブレスBの発音情報を取得する(ステップS1)。聴取位置とブレスBとの距離に応じて音量を変化させる場合にはこれに関する音量変更テーブルも併せて読み出す。
この後、発音情報に基づいてブレスBの音声データ(音の波形等を示すデータ)をRAM13から読み出し(ステップS2)、音声処理プロセッサ18に当該音声データを入力する(ステップS3)。この音声データの読み出し処理(ステップS2,S3)は、発音源であるブレスBが消滅するまで(ステップS4でYesとなるまで)継続される。ここで、発音源の消滅は、発音源がプレイヤキャラクタPに命中した場合や発音源が聴取距離から所定距離以上離れた場合や、発音源が発音されてから所定の時間が経過した場合等であり、発音源に応じて予め定められている。
ブレスBの発音が継続している場合(ステップS4でNo)、制御部30は、仮想空間S内を聴取位置に対して相対移動する発音源か否かを判定する(ステップS5)。仮想空間S内を聴取位置に対して相対移動する発音源(図4においてはブレスB)であると判定された場合(ステップS5でYes)、その発音源に対し、ピッチ変更処理を行う(ステップS6)。このとき、制御部30は、発音源移動制御手段30cとして機能し、ブレスBを聴取位置に対して相対移動制御する。
相対移動する発音源に対してピッチ変更処理(ステップS6)が行われた場合、制御部30は、ピッチ変更処理で変更されたピッチ変更量を音声処理プロセッサ18に入力するとともに発音実行指示を行い、音声処理プロセッサ18は、入力された音声データに基づいてピッチ変更量に応じてブレスBの音のピッチを変更した上で、スピーカ20またはイヤホン端子21に出力する(ステップS7)。発音源が聴取位置に対して相対移動しない場合(ステップS5でNo)、制御部30は、音声処理プロセッサ18に対して発音実行指示を行い(またはピッチ変更量0を入力し)、音声処理プロセッサ18は、入力された音声データに基づいてブレスBをピッチ変更することなくスピーカ20またはイヤホン端子21に出力する(ステップS7)。なお、発音実行の際、聴取位置とブレスBとの距離に応じて音量を変化させる場合には、制御部30は、読み出した音量変更テーブルを参照してブレスBの音量を算出し、算出された音量にてスピーカ20またはイヤホン端子21に出力する。
ここで、ピッチ変更処理においては、仮想空間S内を移動する発音源(図4においてはブレスB)が、当該変更領域A内に進入した場合に、発音源の移動に伴ってその音のピッチ(周波数ピッチすなわち音の高さ)を上げるように制御するよう構成されている。以下、移動する発音源のピッチ変更処理についてより詳しく説明する。
図6は、図1に示すゲーム装置のピッチ変更処理に関する制御の流れを示すフローチャートである。本制御においては、初期設定としてフラグがOFFに設定されている。制御部30は、当該ブレスBの位置および移動方向を検出する(ステップS61)。そして、制御部30は、進入判定手段30dとして機能し、ブレスBが変更領域A内に進入したか否かを判定する(ステップS62)。本実施形態においては、制御部30は、聴取位置である仮想マイクLとブレスBとの各座標(0,0,0)および(X,Y,Z)から両者間の相対距離を算出し、当該相対距離が変更領域Aの半径Rより短ければ、変更領域A内に進入したと判定する。
ブレスBが変更領域A内に進入したと判定された場合(ステップS62でYes)、フラグの状態を確認し(ステップS63)、フラグがOFFであれば(ステップS63でYes)、フラグをONに切り替える(ステップS64)。すなわち、ブレスBが初めて変更領域A内に進入した場合にフラグをOFFからONに切り替える処理を行う。
その後、制御部30は、進行方向判定手段30eおよび音特性制御手段30fとして機能し、ブレスBの仮想カメラCの位置に対する進行方向に応じてブレスBの発音に関する周波数ピッチを変更する制御を行う(ステップS65)。
図7〜図9は、図4に示したものと異なる方向から発音源が移動してくる場合について、該発音源のピッチ変化を説明するための図面である。より具体的には、図7は、ピッチ変更処理を説明するための模式図であって、プレイヤキャラクタ付近の仮想空間の概略平面図と、後方から前方へと移動する発音源のピッチ変化を示すグラフとを示している。また、図8および図9は、プレイヤキャラクタ付近の仮想空間の概略平面図と、仮想カメラの前方(図8)又は後方(図9)を、該仮想カメラCの向きに直交する方向に移動する発音源のピッチ変化を示すグラフとを示している。図7〜図9においても、発音源のピッチ変化を示すグラフは、ブレスBと仮想マイクLの位置との間のブレスBの移動方向に関する相対距離を横軸にとり(ブレスBが仮想マイクLに近づく方向を負、ブレスBが仮想マイクLから離れる方向を正として表している)、対応するピッチ変更量を縦軸にとっている。
図4、図7〜図9に基づいてピッチ変更処理について概説すると、まず、図4に示すようにブレスBが移動方向BD1に沿って、仮想カメラCの向きCDを基準に前方から後方へ移動している場合、音特性制御手段30fとして機能する制御部30は、発音源であるブレスBが変更領域A内に進入してから聴取位置と前後方向位置が一致(ブレスBと仮想マイクLとの各X座標が一致)するまでの間、ブレスBの移動に伴ってその音のピッチを上げ続け、ブレスBが聴取位置と前後方向位置が一致してから変更領域A外へ出るまでの間、ブレスBの移動に伴ってその音のピッチを連続的にまたは段階的に下げるように制御する。また、図7に示すように、ブレスBが移動方向BD2に沿って、仮想カメラCの向きCDを基準として後方から前方へ移動している場合、および、図8または図9に示すように、ブレスBが移動方向BD3またはBD4に沿って、仮想カメラCの向きCDに直交する方向へ移動する場合、音特性制御手段30fとして機能する制御部30は、発音源であるブレスBが変更領域A内に進入してから変更領域A外へ出るまでの間、ブレスBの移動に伴ってその音のピッチを連続的にまたは段階的に上げるように制御する。
次に、上記において概説したピッチ変更に関し、図6のステップS65で行われる処理を説明する。本実施形態におけるピッチ変更処理において、制御部30は、進行方向判定手段30eとして機能し、ステップ2で検出されたブレスBの位置および移動方向と、聴取位置および仮想カメラCの向きCDとに基づいてブレスBの変更領域A内における進行方向を仮想カメラCの向きCDを基準として判定する。より具体的には、制御部30は、ブレスBが仮想カメラCの向きCDを基準として前方から後方へ(例えばゲーム画像の奥から手前へ)移動しているか否かを判定する(ステップS65A)。具体的には、例えばブレスBの所定時間前の座標と現在の座標とからブレスBの進行方向を算出し、X成分変化が負である場合に、制御部30は、ブレスBが仮想カメラCの向きCDを基準として前方から後方へ移動していると判定する(図4参照)。
そして、図4に示した態様のように、ブレスBが仮想カメラCの向きCDを基準として前方から後方へ移動している場合(ステップS65AでYes)、制御部30は、さらにブレスBの位置が聴取位置(仮想マイクL)より後方に位置するか前方に位置するかを判定する(ステップS65B)。具体的には、制御部30は、例えばブレスBのX座標が負であればブレスBは聴取位置より後方に位置し、正であれば聴取位置より前方に位置すると判定する。その結果、ブレスBの位置が聴取位置より前方に位置する場合(ステップS65BでNo)、制御部30は、ブレスBのピッチを所定の上げ幅で上げる(高周波数側へシフトさせる)制御を行う(ステップS65D)。具体的には、例えば、制御部30は、所定の周波数ピッチごとに定められた音高単位において5音分上げたり下げたりするような段階的な制御を行う。一方、ブレスBが更に移動することで、その位置が聴取位置より後方に位置すると判定した場合(ステップS65BでYes)、制御部30は、ブレスBのピッチを所定の下げ幅で下げる(低周波数側へシフトさせる)制御を行う(ステップS65C)。従って、この場合、図4のグラフで示すように発音源のピッチが変更されることとなる。
また、図7に示した態様のように、ブレスBが仮想カメラCの向きCDを基準として後方から前方へ移動している場合、または、図8および図9に示した態様のように、仮想カメラCの向きCDに直交する方向へ移動している場合(ステップS65AでNo)、制御部30は、ブレスBの変更領域A内での位置に拘わらずブレスBのピッチを所定の上げ幅で上げる制御を行う(ステップS65D)。具体的には、例えばブレスBの所定フレーム前の座標と現在の座標とからブレスBの進行方向を算出し、X成分変化が正である場合に、制御部30は、ブレスBが仮想カメラCの向きCDを基準として後方から前方へ移動している(図7参照)と判定し、X成分変化が0である場合に、制御部30は、ブレスBの向きCDに直交する方向へ移動している(図8及び図9参照)と判定する。そして、例えば、制御部30は、上記音高単位において3音分上げるような制御を行う。従って、この場合、図7〜図9のグラフで示すように発音源のピッチが変更されることとなる。
なお、仮想カメラCの向きCDを基準として前方から後方とは、仮想カメラCの前後方向に関してのみを規定するものであり、横方向や高さ方向に移動する成分(Y軸方向成分変化およびZ軸方向成分変化)には依存しない。つまり、仮想カメラCの向きCDを基準として前方から後方に移動することは、例えば、右または左斜め前方から左または右斜め後方へ移動することも含まれる概念である。従って、図4において変更領域Aの境界を示す円の左半分における所定位置から当該円の右半分における所定位置へと発音源が移動する場合も仮想カメラCの前方から後方へ移動している場合に含まれる。
ステップS65CまたはS65Dの実行後は、ブレスBが消滅しない限り(図5のステップS4でNoである限り)、ステップS61へ戻り、再度ブレスBの位置および移動方向を検出した上で、ブレスBが変更領域A内に位置する間、ピッチ変更処理を行う。このようにステップS61〜S65が所定の期間(例えば1フレーム)ごとに繰り返されることにより、ブレスBが変更領域A内に進入してから変更領域A外に出るまでブレスBの移動に伴ったピッチ変更処理が行われる。例えば、ブレスBが仮想カメラCの向きCDを基準として前方から後方へ移動している場合(図4)は、1フレームごとに5音ずつピッチを上げることを5回繰り返し、その後1フレームごとに5音ずつピッチを下げることを5回繰り返す。また、ブレスBが仮想カメラCの向きCDを基準として後方から前方へ移動している場合(図7)および仮想カメラCの向きCDに直交する方向へ移動している場合(図8および図9)は、1フレームごとに3音ずつピッチを上げることを10回繰り返す。
なお、発音源のピッチの上げ幅および下げ幅は、上記のように、発音源ごとまたは発音源の種類ごとに予め所定の上げ幅および下げ幅を設定しておき、ステップS65CおよびステップS65Dを実行するたびに当該設定された所定のピッチ幅で上げ下げすることとしてもよいし、ピッチ変更による発音源のピッチの最大値を予め設定しておき、ピッチ変更処理を行わない状態のピッチとピッチの最大値との間を所定の段階に区分してステップS65CおよびステップS65Dが実行されるたびに一段階ずつ発音源のピッチを上げ下げすることとしてもよい。また、発音源のピッチの上げ幅および下げ幅を発音源または仮想マイクLが存在する仮想空間Sの環境(洞窟内、水中等)に応じて変化させることとしてもよい。さらに、ピッチ変更前(ステップS65C,65D実行前)の発音源のピッチに応じてピッチの上げ幅および下げ幅を変更する(例えば発音源の位置が仮想カメラCの位置に近いほどピッチの上げ幅および下げ幅を大きくする、すなわち、ピッチ変更波形におけるピッチの上昇波形および/または下降波形が曲線または折れ線となるように変更する)こととしてもよい。また、ピッチの上げ幅は、発音源が仮想カメラCの向きCDを基準として前方から後方へ移動する場合と、仮想カメラCの向きCDを基準として後方から前方へ移動する場合および仮想カメラCの向きCDに直交する方向へ移動する場合とで異なることとしてもよいし、同じとしてもよい。さらに、上げ幅と下げ幅とを同じにしてもよいし、異なるようにしてもよい。
なお、本実施形態においては、ステップS6における判定結果に応じて段階的にピッチを変更する制御(ステップS65C,S65D)を行っているが、これに代えて、いったん発音源が変更領域A内に進入してピッチの変更が開始された後は、条件が変化する(発音源の位置が聴取位置より前方から後方に変化した場合または変更領域A外へ出たと判定される)まで連続的にピッチを上げ続けるまたは下げ続ける制御を行ってもよい。
また、本実施形態において、ブレスBが変更領域A内にあるときにブレスBまたは仮想カメラCが方向転換することにより、仮想カメラCに対するブレスBの移動方向が変化した場合は、ブレスBの移動方向が変化した後のステップS61〜S65で新たな移動方向に基づくピッチ変更処理が行われる。例えば、ブレスBが変更領域A内を仮想カメラCの向きCDを基準として前方から後方へ移動しかつブレスBが聴取位置より前方に位置している状態から、ブレスBが仮想カメラCの向きCDに直交する方向へ移動するように変化した場合は、前回のステップS65終了後の次のステップS61で検出されるブレスBの位置および方向に基づいて新たなピッチ変更処理が行われる(ステップS65D)。
図10は、ピッチ変更処理を説明するための模式図であって、プレイヤキャラクタ付近の仮想空間の概略平面図と、発音源の移動方向が変化した際の発音源のピッチ変化を示すグラフとを示している。図10のグラフは、移動方向BD1に沿って変更領域Aに進入し、途中で移動方向BD3に変化した場合のピッチ変更波形を示している。本実施形態においては、ブレスBが移動方向BD1に沿って移動する場合(図4)とブレスBが移動方向BD3に沿って移動する場合(図8)とでは、ブレスBと聴取位置との距離が略同じ位置におけるピッチの変化量(ピッチ変更処理を行わない状態からの変化量)が異なっている。従って、本実施形態においては、図10に示すように、制御部30は、仮想カメラCの向きCDに対するブレスBの移動方向が変化したときのブレスBの位置において、方向転換前のピッチ変更波形(図4)に基づくピッチ量から方向転換後のピッチ変更波形(図8)に基づくピッチ量へ変更する制御を行った上で、その後のピッチ変更処理を上述した制御(ステップS61〜S65)に基づいて実行するように構成されている。より具体的には、制御部30は、方向転換位置におけるブレスBの位置および方向転換後の移動方向から、変更領域Aに進入する当初から方向転換後の方向(移動方向BD3)に進んでいた場合のその位置におけるピッチ変更量を演算し、当該ピッチ変更量となるように音のピッチを上げ下げする制御を行う。なお、図10においては、ブレスBが変更領域A内で移動方向BD1からBD3へ方向転換したように図示しているが、ブレスBが直進している状態で仮想カメラCの向きが変化した場合も同様に制御される。
以上のように、制御部30は、ブレスBが変更領域Aに進入してから変更領域Aを出るまで(ステップS62でNoとなるまで)所定の期間ごとにステップS61〜S65を繰り返し行う。ブレスBが変更領域A外に出た場合(ステップS62でNo)、制御部30は、フラグの状態を確認する(ステップS66)。フラグがONであれば(ステップS66でYes)、変更領域A内から変更領域A外へ出たことが確認され、制御部30は、ブレスBのピッチを元の状態(ピッチ変更処理を行わない状態)に戻す制御を行うとともに(ステップS67)、フラグをOFFする(ステップS68)。なお、ブレスBが仮想カメラCの向きCDを基準として前方から後方へ移動する場合以外(図7〜9に示す場合)は、変更領域Aの境界に達した時点でピッチ変更処理を行わない状態に対するピッチ変更量が最大となるため、その状態からピッチ変更処理を行わない状態のピッチに到達するように制御される。この際、変更領域A内における単位時間あたりのピッチの上げ幅よりも大きいピッチの下げ幅でピッチを元に戻す制御が行われる(図5のステップS7)。
以上のように、発音源(ブレスB)がプレイヤキャラクタPの近くの変更領域A内に進入した場合に当該発音源のピッチを上げることにより、発音源の移動音をドップラー音に近づけることができ、プレイヤに臨場感を与えることができる。特に、図4に示すように、発音源が仮想カメラCの前方から後方に通過する場合には、聴取位置と前後方向位置が一致するまでの間は仮想カメラCが映し出すゲーム画像上に発音源が表示されることが多く、聴取位置と前後方向位置とが一致した後はゲーム画像上に発音源が見えないことが多いため、ゲーム画像上に発音源が見えている聴取位置より前方の変更領域Aでは発音源の移動に伴ってその音のピッチを上げ続けるとともに、ゲーム画像から発音源が見えなくなることが多い聴取位置より後方の変更領域Aでは発音源の移動に伴ってその音のピッチを下げ続けることにより、プレイヤに発音源の移動によってドップラー効果が生じたように印象付けることができ、プレイヤの臨場感を高めることができる。
また、図7に示すように、発音源が仮想カメラCの向きCDを基準として後方から前方に通過する場合には、発音源が聴取位置の近くに来るまで仮想カメラCが映し出すゲーム画像上に発音源が表示されないことが多いため、発音源がゲーム画像上に見えてから発音源が遠ざかっていく際においてもピッチを下げないことにより、擬似ドップラー音が強調され、プレイヤへの違和感を抑制することができる。また、図8および9に示すように、発音源が仮想カメラCを基準として横方向に通過する場合には、発音源が遠ざかっていく際においてもピッチを下げないことにより、擬似ドップラー音が強調され、プレイヤへの違和感を抑制することができる。
さらに、発音源の位置が変更領域A内に存するか否かの判定を発音源と聴取位置との距離を求めることにより判定することができるため、判定のための演算を簡単化することができる。
なお、本実施形態においては、図7〜図9に示すように、発音源が仮想カメラCの向きCDを基準として後方から前方に通過する場合および仮想カメラCの向きCDに直交する方向に移動する場合には、発音源の移動に伴ってその音のピッチを上げ続けることとしているが、所定のピッチまで上げた後に当該ピッチを保持することとしてもよい。図11は、ピッチ変更処理の他の例を説明するための模式図であって、仮想カメラCの向きを基準として後方から前方に移動するまたは仮想カメラCの向きに直交する方向に移動する発音源のピッチ変化を示すグラフを示している。図11に示される例においては、所定のピッチ変更量をピッチ閾値Pthとして設定しており、図5および図6に示すフローチャートに基づいて発音源の移動に伴ってその音のピッチを上げる制御を行う際、制御部30は、現状のピッチ量がピッチ閾値Pth以上であるか否かを判定し、現状のピッチ量がピッチ閾値Pth以上である場合には、現状のピッチ量またはピッチ閾値Pthを保持するように制御する。制御部30は、それ以後の制御は、変更領域Aを出るか、発音源の移動方向が仮想カメラCの向きを基準として前方から後方への移動に変化しない限り、現状のピッチまたはピッチ閾値Pthを保持するとともに発音源のピッチ変更処理を行わない。このように制御することにより、発音源の移動音を実際に聞こえる音に近づけて、プレイヤに臨場感を与えつつ、制御部30における演算量を少なくすることができる。
また、発音源が変更領域Aに進入する前と変更領域Aから出た後とで発音源のピッチを変えることとしてもよい。例えば、発音源が変更領域Aに進入する前における発音源のピッチを変更領域Aから出た後における発音源のピッチより低くすることとしてもよい。これにより、擬似ドップラー音をより強調させた演出を行うことができる。
また、本実施形態においては、変更領域Aの内外で異ならせる音特性として発音源のピッチを変えることについて説明したが、本発明はこれに限られず、例えば、発音源の音量であってもよい。具体的には、例えば、変更領域A内にあるときの発音源の音量の減衰曲線(発音源と聴取位置との相対距離に対する音量を示す曲線であり、相対距離が大きくなるほど音量が低下する)と変更領域A外にあるときの発音源の音量の減衰曲線とを異ならせることとしてもよい。あるいは、例えば、変更領域A内にあるときの発音源の音に補正をかけることとしてもよい。具体的には変更領域A内を進む発音源に対しては連続的にまたは段階的にその音を歪ませていき、変更領域A外にあるときには、当該発音源に対しては補正をかけない(歪ませない)こととしてもよい。
また、変更領域A内に入ったときに変更される音特性(ピッチ)の最大値が発音源に応じて異なることとしてもよい。例えば、比較的高速で移動するブレスに関するピッチの最大変更量がより低速で移動するブレスに関するピッチの最大変更量より小さいこととしてもよい。さらに、変更領域Aの大きさを変えることにより、変更される音特性の最大値を変えることとしてもよい。
上述した説明では、一人のプレイヤがオフラインゲームを行う場合について例示したが、本発明は、複数のプレイヤが各自のプレイヤキャラクタを同一の仮想ゲーム空間内に登場させ、これらを共同させて行動させるオンラインゲームにおいても適用することができる。例えば、仮想ゲーム空間に、このような複数のプレイヤキャラクタと共に、上述したようなノンプレイヤキャラクタである味方キャラクタ及び敵キャラクタが存在する場合には、この味方キャラクタの動作に関して本発明を適用することができる。
また、本実施例では携帯型のゲーム装置について説明したが、据え置き型のゲーム装置、携帯電話機、およびパーソナルコンピュータなどのコンピュータについても、本発明を好適に適用することができる。