説明

反響処理装置

【課題】ゲームシナリオ展開上の変化にも容易に対応できるゲーム機における反響処理装置を提供する。
【解決手段】仮想空間VSに形成された反響空間ES内を、プレイヤキャラクタPCを移動させる際に、音源からの音声データに対して、反響空間の大きさに対応した反響処理を施して、音声出力手段に出力することの出来る反響処理装置において、反響処理を作用させるの基準となる反響基準点VP、VP1,VP2を基準にして、反響基準点の周囲のオブジェクトに対するZ値Z1,Z2,Z3,Z4,Z5,Z6の測定を、反響空間内の異なる方向について行い、それらの合計値ZTを演算して求める手段と演算されたZ値の合計値に応じて音声データに対する反響処理の程度を示すリバーブテプス値を決定する手段と決定されたリバーブテプス値に基づいて音声データに対して反響処理を掛ける手段を有する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ゲームなどの仮想空間内にオブジョクトとして配置される洞窟、建物、部屋などの閉鎖空間において、空間の大きさに応じて反響効果を発生させることの出来る、ゲーム機における反響処理装置に関する。
【背景技術】
【0002】
従来、この種のゲーム機においては、部屋の形状や環境、位置などに応じて反射や減衰を含んだインパルス応答を算出して、これを伝達関数として使用して所定の音響効果を発揮させる手法が知られている(特許文献1)。こうした方法は、周囲形状に応じた反射係数や反射パスの演算が、ゲーム機に多大な演算負荷を与える不都合がある。
【0003】
そこで、より簡易な方法として、反響効果を生じさせたい、仮想空間内のフィールド上の複数の地点に、音声データに対する反響効果の付与の程度を示す、リーバーブテプス(反響深さ)値を埋め込んでおき、プレイヤが操作するプレイヤキャラクタが当該フィールド上のリーバーブテプス値が埋め込まれた位置の近傍を通過すると、当該値を読み込んで、プレイヤキャラクタが現在居る地点の反響効果を、読み込んだリーバーブテプス値に基づいて制御する方法が、用いられることがある。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2005−80124
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかし、この方法は、仮想空間のプレイヤキャラクタが移動する可能性のあるフィールド上の多数の地点にリーバーブテプス値を予め埋め込んでおく必要があり、ゲームプログラムの作成に多くの手間が掛かるばかりか、ゲームシナリオの展開上、フィールドの形状、例えば、地形、洞窟、建物の形状が大幅に変化したような場合には、変化後のフィールド形状に合わせて、同様にリーバーブテプス値を埋め込む作業が必要なるなど、多くの制約があった。
【0006】
本発明は、そうした事情に鑑み、仮想空間内でプレイヤキャラクタ周辺の反響効果を制御する際に、伝達関数などの複雑な演算を行うことなく反響効果を制御することが出来、また、ゲームシナリオ展開上のフィールドの形状の変化にも容易に対応することの出来る、ゲーム機における反響処理装置を提供することを目的とするものである。
【課題を解決するための手段】
【0007】
本発明の第1の観点は、仮想空間(VS)内に形成された反響空間(ES)内を、プレイヤキャラクタ(PC)を移動させる際に、前記仮想空間内に配置された音源からの音声データに対して、前記反響空間の大きさに対応した所定の反響処理を施して、音声出力手段(11,12)に出力することの出来る、ゲーム機(1)における反響処理装置において、
前記反響処理装置は、
反響処理を作用させるの基準となる反響基準点(VP、VP1,VP2)を基準にして、前記反響空間内に配置された前記反響基準点の周囲のオブジェクトに対するZ値(Z1,Z2,Z3,Z4,Z5,Z6)の測定を、前記反響空間内の異なる方向について行い、それらの合計値(ZT)を演算して求めるZ値合計値演算手段(9)、
演算されたZ値の合計値に応じて前記音声データに対する反響処理の程度を示すリバーブテプス値(RD)を決定する、リバーブテプス値決定手段(10)、
該決定されたリバーブテプス値に基づいて前記音声データに対して反響処理を掛ける、反響処理手段(7)、
を有することを特徴とするものである。
【0008】
本発明の第2の観点は、Z値合計値演算手段は、前記反響基準点を中心にして、前記仮想空間における上下前後左右の6方向について前記Z値の測定を行う、
ことを特徴とするものである。
【0009】
本発明の第3の観点は、Z値合計値演算手段は、前記反響基準点を中心にして、前記仮想空間における前後左右の4方向について前記Z値の測定を行う、
ことを特徴とするものである。
【0010】
本発明の第4の観点は、前記Z値合計値演算手段による、Z値の測定及びそれらの合計値の演算は、周期的に行い、
前記反響処理手段による反響処理も、それに応じて周期的に行われることを特徴とするものである。
【0011】
本発明の第5の観点は、前記Z値合計値演算手段は、前記反響空間内の異なる各方向について、複数のZ値の測定サンプルを得るようにしたことを、
特徴とするものである。
【0012】
本発明の第5の観点は、前記反響基準点は、前記プレイヤキャラクタまたは、その近傍に設定されていることを特徴とするものである。
【発明の効果】
【0013】
本発明の第1の観点によれば、Z値合計値演算手段(9)が、反響処理を作用させるの基準となる反響基準点(VP、VP1,VP2)を基準にして、反響空間内に配置された周囲のオブジェクトに対するZ値(Z1,Z2,Z3,Z4,Z5,Z6)の測定を、反響空間内の異なる方向について行って、それらの合計値(ZT)を求め、リバーブテプス値決定手段(10)が、Z値の合計値に応じてバーブテプス値(RD)を決定するので、Z値の合計値(ZT)が、反響基準点の周囲の反響空間の大きさを表すパラメータとなって、適切なリバーブテプス値(RD)を求めることが出来る。従って、仮想空間内でプレイヤキャラクタ周辺の反響効果を制御する際に、伝達関数などの複雑な演算を行ったり、リバーブテプス値を予めフィールドに埋め込む等の作業を行うことなく反響効果を制御することが出来る。
【0014】
本発明の第2及び第3の観点によれば、それぞれの反響空間(ES)の大きさやゲーム態様やシナリオ態様に応じたZ値を測定して合計値(ZT)も求めることで、適切なリバーブテプス値(RD)を求めることが出来る。
【0015】
本発明の第4の観点によれば、Z値の測定及びそれらの合計値の演算を、周期的に行ことで、プレイヤキャラクタPCの仮想空間VS内での移動や、すでに述べたシナリオ進行に伴う、仮想空間VS内のオブジェクト(フィールド)の形状の変化にも簡単に対応することが出来る。
【0016】
本発明の第5の観点によれば、反響基準点をプレイヤキャラクタまたは、その近傍に設定することで、プレイヤキャラクタ(PC)を中心とした臨場感のある反響処理が可能となる。
【0017】
なお、括弧内の番号等は、図面における対応する要素を示す便宜的なものであり、従って、本記述は図面上の記載に限定拘束されるものではない。
【図面の簡単な説明】
【0018】
【図1】図1は、本発明である反響処理装置の1実施例が適用されるゲーム機のブロック図。
【図2】図2は、仮想空間内のフィールドの一例を示す模式図。
【図3】図3は、反響処理プログラムの一例を示すフローチャート。
【発明を実施するための形態】
【0019】
以下、図面に基づき、本発明の実施例を説明する。
【0020】
図1はコンピュータを構成するゲーム機1を示している。ゲーム機1は、図1に示すように、主制御部2を有しており、主制御部2にはバス線3を介して、シナリオ進行制御部5,ハードディスクや半導体メモリなどからなるゲームプログラムメモリ6,反響制御部7、Z値演算部9,リバーブデプス値演算部10,音声出力部11、表示制御部13及び入力手段としてのコントローラ16などが接続している。表示制御部13には、ディスプレイ15が接続されており、音声出力部11には、音声出力手段としてのスピーカー12が接続している。なお、本明細書で言う、「音声」とは、所謂「音」全般を意味し、狭義の意味での「人間の声」だけを、意味するものではない。
【0021】
なお、ゲーム機1には、このほかにハードディスク、光学ディスク入出力装置など各種のハードウエアが接続しているが、本発明に直接関連のない部分は、その図示及び説明を省略する。ゲーム機1では、図示しない光学ディスクなどから読み込まれ、又は図示しないインターネットなどの通信回線を介してダウンロードされ、ゲームプログラムメモリ6に格納されたゲームプログラムGPRに基づいて、主制御部2が所定のシナリオを、シナリオ進行制御部5を介して進行制御させてゆくことで、プレイヤは所定のゲームを楽しむことが出来る。
【0022】
なお、本発明に係るゲームプログラムを機能させるコンピュータとして、例えば家庭用ゲーム機1を一例として説明したが、ゲーム機1としては、ゲーム専用の装置でなく、一般的な音楽や映像の記録媒体の再生なども可能な装置であってもよく、これに限らず、コンピュータとして、例えばパーソナルコンピュータ、携帯電話機など、つまりゲームプログラムを機能させることのできるものであれば何れのものでもよい。
【0023】
なお、ゲームプログラムGPRを構成する各種のプログラム及び各種のデータは、ゲームプログラムGPRのプログラム機能によって読み出し自在に有している限り、その格納態様は任意であり、本実施の形態のように、ゲームプログラムGPRのプログラムと共にゲームプログラムメモリ6中に格納するほかに、ゲーム機1とは独立したサーバーなどの外部のメモリ手段に格納しておき、ゲームプログラムGPR中に設けられた読み出しプログラムによって、インターネットなどの通信媒介手段を介してゲームプログラムメモリ6などのメモリにダウンロードするように構成してもよい。
【0024】
また、図1に示すゲーム機1は、実際にはコンピュータが、図示しないメモリに格納された所定のプログラムを読み出して、実行することで、図示しないCPUやメモリが、マルチタスクにより時分割的に動作し、図1に示す各ブロックに示された機能を実行してゆくこととなる。しかし、携帯型ゲーム装置1を、各ブロックに対応したハードウエアで構成することも可能であり、また各ブロックを各ブロックに分散的に設けられたCPU又はMPUにより制御するように構成することも可能である。
【0025】
ゲーム機1においては、所定の初期化操作(例えば電源の投入操作)が行われると、主制御部2がゲームプログラムメモリ6に格納された、ゲームプログラムGPRの読み込みを開始し、そのプログラムに従ってゲーム処理を開始する。プレーヤが入力手段であるコントローラ16を操作して所定のゲーム開始操作を行うと、主制御部2はゲームプログラムGPRの手順に従ってゲームの実行に必要な種々の制御を開始する。プレイヤはコントローラ16を操作することでプレイヤキャラクタを、ゲームプログラムGPRによりゲーム装置1が図示しないメモリ内に生成した仮想空間VS内で、ゲームプログラムGPRに従って自由に移動させることが出来る。
【0026】
ゲーム中には、例えば、図2に示すように、コンピュータのメモリ空間内に形成された仮想空間VS内に、洞窟や建物などの反響空間ESが形成されている場合があり、こうした反響空間ES内にプレイヤキャラクタPCがその近傍に配置されている仮想カメラVCと共に進入して来る場合がある。図2の場合は、反響空間ESは洞窟13であり、洞窟13は図中下側の幅の狭い通路13aと該通路13aの先端に配置された広間13bから構成されている。なお、こうした反響空間ESの構成は任意であり、ゲーム内容、シナリオ内容に応じて大幅に変更されうるものである。
【0027】
プレイヤキャラクタPCが洞窟13等の反響空間ESに進入すると主制御部2は、ゲームプログラムGPRで当該反響空間ES、即ち洞窟13内で反響制御処理を行うように指示する反響処理コマンドが、図示しないゲーム機1を構成するフィールドレンダリング部が洞窟13を仮想空間VS内でレンダリングする際に指示されていることを認識する。これを受けて、主制御部2は、図3に示す反響制御処理プログラムEEPに基づいて、洞窟13に配置された音源から生じる音声データに対して反響制御処理を行うように指令する。なお、この反響処理コマンドの指令タイミングは、任意であって、必ずしも洞窟13のレンダリング時である必要はない。
【0028】
反響制御処理プログラムEEPは、図3に示すように、ステップS1で、反響処理コマンドが指令されているか否かを、主制御部2を介して常に監視し、反響処理コマンドが指令されていることが認識された場合には、ステップS2に入り、主制御部2は、Z値演算部9に対して、プレイヤキャラクタPC又は仮想カメラVCを反響基準点VPとして設定して、該反響基準点VPを基準にして仮想空間VS内に配置された周囲のオブジェクトに対してZ値の測定を行うように指令する。反響基準点VPは、反響効果が作用する基準となる位置を示すものであり、反響効果は、当該反響基準点VPに作用させる反響効果として演算制御される。従って、通常は、プレイヤキャラクタPCの位置や、仮想カメラの視点位置が、反響基準点VPとして選定される。図2の場合、反響基準点VPは仮想カメラVCの視点位置に設定されているが、プレイヤキャラクタPCの重心位置や、その他の空間位置に設定してもかまわない。ただ、反響制御処理に基づいてスピーカ12から再生される音は、プレイヤキャラクタPC又は仮想カメラVCを基準にした音場として再生されるので、その反響効果もプレイヤキャラクタPC又は仮想カメラVCを基準にして発生させた方が望ましい。従って、反響基準点VPはプレイヤキャラクタPC又は仮想カメラVCの重心または視点位置、あるいはその近傍位置に設定することが望ましい。
【0029】
これを受けて、Z値演算部9は、反響基準点VPを中心にして反響空間ES内の異なる方向について、例えば上下前後左右方向についてレンダリングを行い、これにより反響基準点VPに最も近接するオブジェクトまでの距離、即ちZ値をそれぞれ演算する。これは、例えば、図2の位置P1にプレイヤキャラクタPCが位置している時は、仮想カメラVCの反響基準点VP1を中心にして、仮想空間VSのプレイヤキャラクタPCの上下前後左右方向(ワールド座標のX−Z平面(水平面)とX−Z平面に直角なY軸(上下)方向)の6方向に関してレンダリングを行い、その際に求められた6方向のZ値Z1,Z2,Z3,Z4,Z5,Z6(Z5,Z6は、Y軸上下方向のZ値)を合計する。なお、Z値の測定は、シナリオ進行制御部5が仮想空間VSをレンダリングする際に通常使用する機能なので、なんら特別な演算機能をゲームプログラムGPRに実装する必要はない。このZ値の測定は、反響基準点VP、即ちプレイヤキャラクタPCを中心とした周囲に配置されたオブジェクトに対する距離を測定することとなり、これを反響基準点VP1を中心にして、仮想空間VSの上下前後左右方向に行うことで、反響基準点VPを中心にした周囲オブジェクトまでの離れ具合を、即ち現在のプレイヤキャラクタPC周囲の反響空間ESが広いのか、狭いのかを測定することが出来る。
【0030】
なお、Z値演算部9によるZ値の測定は、仮想空間VSの上下前後左右方向に限らず、任意方向について測定することができ、また、簡易的な測定としては、前後左右方向の4方向の測定でも良い。また、各方向についてZ値の測定サンプル数は任意に設定することが出来る。各方向について複数の画素に対してレンダリングを行って複数のZ値を取得してもよく、またそうして求められたZ値の平均値を当該方向のZ値としてもよい。また、Z値の測定方向は、仮想空間VSのワールド座標を基準にして行うほかに、適宜なローカル座標系を基準に行っても良い。例えば、仮想カメラVCの視点座標を用いて、uvn座標系(視野座標系)を用いて複数方向のZ値の測定を行うようにしてもよい。要は、プレイヤキャラクタPCの周囲の空間の大きさを測定するための処理なので、プレイヤキャラクタPCの周囲の空間の大きさのパラメータが適切に得られる限り、測定に使用する座標系の種類は問わない。
【0031】
例えば、プレイヤキャラクタPCが、図2の位置P1にいた場合(プレイヤキャラクタPCの正面方向は矢印FR方向とする)、仮想カメラVCの視点位置に設定された反響基準点VP1を基準として測定したZ値が、仮想空間VSの水平な直角4方向(プレイヤキャラクタPCの前後左右方向)についてZ1〜Z4として得られ、Y軸方向の、仮想空間VSの上下方向についてZ5,Z6として有られたとすると、その合計値ZT1は、
ZT1=Z1+Z2+Z3+Z4+Z5+Z6
となる。
【0032】
また、プレイヤキャラクタPCが、図2の位置P2にいた場合、仮想カメラVCの視点位置に設定された反響基準点VP2を基準として測定したZ値が、仮想空間VSの水平な直角4方向(プレイヤキャラクタPCの前後左右方向)についてZ1〜Z4として得られ、Y軸方向の、仮想空間VSの上下方向についてZ5,Z6として有られたとすると、その合計値ZT2は、
ZT2=Z1+Z2+Z3+Z4+Z5+Z6
となる。
ここで、仮にZT2>ZT1の場合(反響基準点VPから離れるに従ってZ値の値が上昇するように座標系が設定されているものとする)、位置P2の方が位置P1より、プレイヤキャラクタPCの周囲空間は広いものと判定される。
【0033】
こうして、プレイヤキャラクタPCのある位置P1又はP2……での反響基準点VPからのZ値の合計値ZTn(n=1又は2……)が求められたところで、主制御部2は、反響制御処理プログラムEEPの、ステップS3に基づいて、リバーブテプス値演算部10に対して合計値ZTに基づいて、対応するリバーブテプス値RDを演算決定するように指令する。
【0034】
これを受けて、リバーブテプス値演算部10は、反響制御処理プログラムのステップS4に入り、合計値ZTが予め決められた合計値の最大値ZTmaxよりも大きいかどうかを判定する。合計値ZTが予め決められた合計値の最大値ZTmaxよりも大きい場合には、プレイヤキャラクタPCの周囲の反響空間ESは十分に大きく、音声データの反響処理は必要がないものと判断して、ステップS5に示すように、反響処理を行なう程度を示す値を、処理を行わない、リバーブテプス値RD=0.0とする。
【0035】
ステップ4で、合計値ZTが予め決められた合計値の最大値ZTmaxよりも小さな場合には、反響制御処理プログラムEEPのステップS6に入り、合計値ZTが予め決められた合計値の最小値ZTminよりも小さいかどうかを判定する。合計値ZTが予め決められた合計値の最小値ZTminよりも小さな場合には、プレイヤキャラクタPCの周囲の反響空間ESは十分に小さく、音声データの反響処理を最大限に行う必要が有るものと判断して、ステップS7に示すように、反響処理を行なう程度を示す値を、処理を最大限に行なう、リバーブテプス値RD=1.0とする。なお、この最大値ZTmaxと最小値ZTminは、反響空間ESの性質、即ち洞窟や構造物の大小、周囲のオブジェクトに設定された材質などに応じて任意に、反響空間ES毎に設定することができる。
【0036】
反響制御処理プログラムのステップS6で、合計値ZTが予め決められた合計値の最小値ZTminよりも大きい場合には、従って、合計値ZTがZmax>ZT>Zminの場合には、テップS8に入り、リバーブテプス値演算部10は、リバーブテプス値RDを、
RD=(Zmax−ZT)/(Zmax−Zmin)
の式に基づいて演算決定する。これより、反響空間ESが小さいほど、リバーブテプス値RDは1.0(反響効果:最大)に近づき、反響空間ESが大きいほどリバーブテプス値RDは0.0(反響効果:無し)に近づく形で、リバーブテプス値RDが決定される。これにより、プレイヤキャラクタPCが位置する反響空間ESの大きさに対応した反響処理効果の程度が、各音源についてゲームプログラムGPRで設定されている音声データに対して、反響処理効果を全くしないRD=0.0と反響処理効果を100パーセント行うRD=1.0との間で、適宜決定される。この際の、反響処理の具体的な態様などは、各種の公知のパラメータ、例えば、初期反射時間/量、二次反射時間/量……など各種の残響パラメータを利用して、音源や場面に合わせて、予めゲームプログラムGPRで設定されているので、処理は容易に行うことが出来る。なお、RDを求める演算は、上述した式を用いる他に、適宜な式、テーブル、グラフ等を使用して決定することも当然可能である。
【0037】
こうして得られたリバーブテプス値RDは、ステップS9に示すように、リバーブテプス値演算部10から反響制御部7に出力され、反響制御部7は、ゲームプログラムGPRで規定された反響空間VS内に設定された音源から生じる音声データに対してリバーブテプス値RDに対応した残響処理を施して、音声出力部11に出力する。音声出力部11では、残響処理が施された音声データをスピーカ12から出力する。
【0038】
また、シナリオの進行に従って、図2の一点鎖線CLに示すように、反響空間ESの形状が、変わってしまう場合がある。図2の場合、それまでの壁WLが無くなって、一点鎖線CLで示すような新たな壁NWLが形成されている。こうした場合でも、主制御部2は、反響制御処理プログラムEEPで、反響基準点VPから周囲のオブジェクトまでのZ値の合計値ZTを求めて、対応するリバーブテプス値RDを演算決定することで、適切な反響処理効果を、拡大した反響空間ESについて与えることが出来る。なお、図2の新たな壁NWLの場合、位置P2にプレイヤキャラクタPCが居た場合、水平方向のZ値Z2が、それまでの壁WLよりも大きくなり、それだけ合計値ZTも大きくなる。従って、反響制御処理プログラムEEPのステップS8で決定されるリバーブテプス値RDは、それまでの値よりも小さくなり、反響制御部7で与えられる反響処理も程度も、それまでの壁WLが拡大していない場合より小さくなるように制御される。通常、反響空間ESが大きくなると、反響の程度は小さくなるで、適正な反響処理が行われることとなる。
【0039】
なお、本発明が適用される音源の位置は、仮想空間VS内の任意の位置をとることが出来る。また、音源は固定している必要はなく、移動する音源でもよい。反響基準点VP周りのZ値の合計値ZTの演算は、周期的(例えば、1秒間に1回程度。間隔は全く任意である)に行われるので、反響制御部7による反響処理も定期的に行われる。従って、プレイヤキャラクタPCの仮想空間VS内での移動や、すでに述べたシナリオ進行に伴う、仮想空間VS内のオブジェクトの形状の変化にも簡単に対応することが出来る。
【符号の説明】
【0040】
1……ゲーム機
7……反響処理手段(反響制御部)
9……Z値合計値演算手段(Z値演算部)
10……リバーブテプス値決定手段(リバーブテプス値演算部)
11……音声出力手段(音声出力部)
12……音声出力手段(スピーカー)
Z1,Z2,Z3,Z4,Z5,Z6……Z値
ES……反響空間
VP、VP1,VP2……反響基準点
VS……仮想空間
PC……プレイヤキャラクタ
RD……リバーブテプス値
ZT……合計値

【特許請求の範囲】
【請求項1】
仮想空間内に形成された反響空間内を、プレイヤキャラクタを移動させる際に、前記仮想空間内に配置された音源からの音声データに対して、前記反響空間の大きさに対応した所定の反響処理を施して、音声出力手段に出力することの出来る、ゲーム機における反響処理装置において、
前記反響処理装置は、
反響処理を作用させるの基準となる反響基準点を基準にして、前記反響空間内に配置された前記反響基準点の周囲のオブジェクトに対するZ値の測定を、前記反響空間内の異なる方向について行い、それらの合計値を演算して求めるZ値合計値演算手段、
演算されたZ値の合計値に応じて前記音声データに対する反響処理の程度を示すリバーブテプス値を決定する、リバーブテプス値決定手段、
該決定されたリバーブテプス値に基づいて前記音声データに対して反響処理を掛ける、反響処理手段、
を有することを特徴とする、ゲーム機における反響処理装置。
【請求項2】
Z値合計値演算手段は、前記反響基準点を中心にして、前記仮想空間における上下前後左右の6方向について前記Z値の測定を行う、
ことを特徴とする、請求項1記載のゲーム機における反響処理装置。
【請求項3】
Z値合計値演算手段は、前記反響基準点を中心にして、前記仮想空間における前後左右の4方向について前記Z値の測定を行う、
ことを特徴とする、請求項1記載のゲーム機における反響処理装置。
【請求項4】
前記Z値合計値演算手段による、Z値の測定及びそれらの合計値の演算は、周期的に行い、
前記反響処理手段による反響処理も、それに応じて周期的に行われることを特徴とする、請求項1記載のゲーム機における反響処理装置。
【請求項5】
前記Z値合計値演算手段は、前記反響空間内の異なる各方向について、複数のZ値の測定サンプルを得るようにしたことを、
特徴とする、請求項1記載のゲーム機における反響処理装置。
【請求項6】
前記反響基準点は、前記プレイヤキャラクタまたは、その近傍に設定されていることを特徴とする、請求項1記載のゲーム機における反響処理装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate