説明

音声処理装置、音声処理方法、ならびに、プログラム

【課題】仮想空間において立体的な音響効果を得るために好適な音声処理装置、音声処理方法、ならびに、プログラムを提供する。
【解決手段】音声処理装置200において、計算部201は仮想空間内に受聴点を含む立体を配置する。この立体は所定の単位図形の集合から構成される。計算部201はこの立体が占める範囲と所定のオブジェクトが占める範囲とが交わる領域の分布と、交わる量とを求める。変化部202は計算部201により求められた交わる領域の分布と交わる量とに基づいて、所定のオブジェクトによる音声の反射音を変化させる。出力部203は変化部202により変化された反射音を出力する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、仮想空間において立体的な音響効果を得るために好適な音声処理装置、音声処理方法、ならびに、プログラムに関する。
【背景技術】
【0002】
仮想空間内のある位置に視点を置き、この視点からの仮想画像を合成して表示するシミュレーションゲームがよく知られている。このようなゲームでは、仮想空間内にオブジェクトを配置し、視点からオブジェクトまでの距離や方向などに基づいて視点からのオブジェクトの仮想画像を求めて表示することによって、あたかもユーザが仮想空間内にいるかのような現実感を起こさせる。
【0003】
さらに仮想空間の現実感を高めるためには、このような視覚的な効果に加えて、聴覚的な効果もシミュレーションすることが望ましい。例えば、特許文献1には、仮想空間内の視点からの仮想画像と、ゲーム音との両方を合成する3次元ゲーム装置が開示されている。これによれば、ゲーム装置は、仮想空間内を移動する移動体(例えば、自動車)と固定物(例えば、道路沿いの側壁)との距離及び移動体の速度に基づいて、固定物からの仮想的な反射音を変化させることができる。例えば、自動車の進行方向に向かって左右両側に均一な側壁が存在するとき、側壁との距離及び自動車の速度に基づいて、左側の側壁に接近するとエンジン音等の左側の側壁からの反射音を相対的に大きくしたり、右側の側壁に接近すると右側の側壁からの反射音を相対的に大きくしたりする。また、自動車の速度が大きければ側壁からの反射音も大きくする。
【特許文献1】特許第3123957号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
ところで、現実の世界では、例えば上述の自動車などの移動体が発する音の反射音を考えると、反射音を発生させる固定物は、形状が比較的均一に形成されているような側壁だけでなく、立体的な凹凸があったり形状が複雑だったりするのが一般的である。また、対向車など他の移動体からの反射音と相交わって、結果として複雑な音響的な効果がもたらされる。この音響的な効果には、例えば、反射音の音量の変化、定位の変化のほか、音の特定の周波数成分が弱くなる(いわゆる、「音がこもる」)、反射音が反響する(いわゆる、「エコーがかかる」)、など様々なものがある。しかしながら、上述の特許文献1によれば、移動体と固定物との2次元的な位置関係に基づく音量、定位、高さの変化しか表現することができない。そのため、仮想空間において立体的な音響効果を得るためには十分ではなく、現実の世界で起こりうる状況の音響的なシミュレーションを行うことはできない。
【0005】
本発明は、このような課題を解決するものであり、仮想空間において立体的な音響効果を得るために好適な音声処理装置、音声処理方法、ならびに、プログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
以上の目的を達成するため、本発明の原理にしたがって、下記の発明を開示する。
【0007】
本発明の第1の観点に係る音声処理装置は、計算部と変化部と出力部とを備える。
まず、計算部は、仮想空間内に配置されるオブジェクトによる反射音が到達する到達点を含む立体が占める領域と、オブジェクトと、が交わる量を計算する。
次に、変化部は、計算部により計算された交わる量に基づいて、オブジェクトから反射される反射音を変化させる。
そして、出力部は、変化部により変化された反射音を、到達点で取得される音声として出力する。
結果として、音声処理装置は、厳密で複雑な計算を行うことなく簡便に、任意のオブジェクトによる音声の反射音を変化させることができる。また、仮想空間において立体的な音響効果を得ることができる。そして、現実の世界に起こりうる状況の音響的なシミュレーションを行うことができ、仮想空間において現実感をより起こさせることができる。
【0008】
例えば、計算部は、立体とオブジェクトとが交わる領域の体積を、交わる量として計算することができる。
例えば、計算部は、立体の表面とオブジェクトとが交わる領域の面積を、交わる量として計算することができる。
これにより、音声処理装置は、厳密で複雑な計算を行うことなく、体積あるいは面積を求めることにより、任意のオブジェクトによる音声の反射音を変化させることができる。
【0009】
例えば、変化部は、交わる量が大きくなればなるほど、反射音の音量を大きくすることができる。
これにより、音声処理装置は、厳密で複雑な計算を行うことなく、反射音の音量を制御することができ、仮想空間において現実感を起こさせるエフェクトをかけることができる。
【0010】
例えば、変化部は、立体とオブジェクトとが交わる領域の分布によって、反射音の定位を変化させることができる。
これにより、音声処理装置は、厳密で複雑な計算を行うことなく、反射音の定位を制御することができ、仮想空間において現実感を起こさせるエフェクトをかけることができる。
【0011】
さらに、音声処理装置は、画像生成部と視線方向取得部を更に備えてもよい。すなわち、画像生成部は、仮想空間内の到達点から仮想空間内に配置されるオブジェクトを見た画像を生成する。また、視線方向取得部は、到達点から仮想空間内に配置されるオブジェクトを見る視線方向を、視線方向取得部から取得する。
そして、計算部は、視線方向取得部により取得された視線方向に基づいて立体を配置して、立体とオブジェクトとの交わる量を計算する。
これにより、音声処理装置は、到達点の位置が同じであっても、視線方向が異なれば視線方向に合致するように反射音等の音声の定位を変化させることができ、より現実感を起こさせる音響効果を得ることができる。
【0012】
本発明のその他の観点に係る音声処理方法は、計算ステップと変化ステップと出力ステップとを備える。
まず、計算ステップは、仮想空間内に配置されるオブジェクトによる反射音が到達する到達点を含む立体が占める領域と、当該オブジェクトと、が交わる量を計算する。
次に、変化ステップは、計算ステップにより計算された交わる量に基づいて、オブジェクトから反射される反射音を変化させる。
そして、出力ステップは、変化ステップにより変化された反射音を、到達点で取得される音声として出力する。
結果として、厳密で複雑な計算を行うことなく簡便に、任意のオブジェクトによる音声の反射音を変化させることができる音声処理方法を提供することができる。また、仮想空間において立体的な音響効果を得ることができる。そして、現実の世界に起こりうる状況の音響的なシミュレーションを行うことができ、仮想空間において現実感をより起こさせることができる。
【0013】
本発明のその他の観点に係るプログラムは、コンピュータを、計算部と変化部と出力部として機能させる。
まず、計算部は、仮想空間内に配置されるオブジェクトによる反射音が到達する到達点を含む立体が占める領域と、当該オブジェクトと、が交わる量を計算する。
次に、変化部は、計算部により計算された交わる量に基づいて、オブジェクトから反射される反射音を変化させる。
そして、出力部は、変化部により変化された反射音を、到達点で取得される音声として出力する。
結果として、プログラムは、コンピュータを、厳密で複雑な計算を行うことなく簡便に、任意のオブジェクトによる音声の反射音を変化させる装置として機能させることができる。また、仮想空間において立体的な音響効果を得ることができる。そして、現実の世界に起こりうる状況の音響的なシミュレーションを行うことができ、仮想空間において現実感をより起こさせることができる。
また、本発明のプログラムは、コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、半導体メモリ等のコンピュータ読取可能な情報記憶媒体に記録することができる。
上記プログラムは、プログラムが実行されるコンピュータとは独立して、コンピュータ通信網を介して配布・販売することができる。また、上記情報記憶媒体は、コンピュータとは独立して配布・販売することができる。
【発明の効果】
【0014】
本発明によれば、仮想空間において立体的な音響効果を得るために好適な音声処理装置、音声処理方法、ならびに、プログラムを提供することができる。
【発明を実施するための最良の形態】
【0015】
(実施例1)
以下に本発明の実施例を説明する。以下では、理解を容易にするため、ゲーム用の情報処理装置を利用して本発明が実現される実施例を説明するが、以下に説明する実施例は説明のためのものであり、本願発明の範囲を制限するものではない。したがって、当業者であればこれらの各要素もしくは全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。
【0016】
図1は、プログラムを実行することにより、本発明の音声処理装置の機能を果たす典型的な情報処理装置の概要構成を示す模式図である。以下、本図を参照して説明する。
【0017】
情報処理装置100は、CPU(Central Processing Unit)101と、ROM(Read Only Memory)102と、RAM(Random Access Memory)103と、インターフェイス104と、コントローラ105と、外部メモリ106と、画像処理部107と、DVD−ROM(Digital Versatile Disc ROM)ドライブ108と、NIC(Network Interface Card)109と、音声処理部110と、を備える。
【0018】
ゲーム用のプログラムおよびデータを記憶したDVD−ROMをDVD−ROMドライブ108に装着して、情報処理装置100の電源を投入することにより、当該プログラムが実行され、本実施例の音声処理装置が実現される。
【0019】
CPU 101は、情報処理装置100全体の動作を制御し、各構成要素と接続され制御信号やデータをやりとりする。また、CPU 101は、レジスタ(図示せず)という高速アクセスが可能な記憶域に対してALU(Arithmetic Logic Unit)(図示せず)を用いて加減乗除等の算術演算や、論理和、論理積、論理否定等の論理演算、ビット和、ビット積、ビット反転、ビットシフト、ビット回転等のビット演算などを行うことができる。さらに、マルチメディア処理対応のための加減乗除等の飽和演算や、三角関数等、ベクトル演算などを高速に行えるように、CPU 101自身が構成されているものや、コプロセッサを備えて実現するものがある。
【0020】
ROM 102には、電源投入直後に実行されるIPL(Initial Program Loader)が記録され、これが実行されることにより、DVD−ROMに記録されたプログラムをRAM 103に読み出してCPU 101による実行が開始される。また、ROM 102には、情報処理装置100全体の動作制御に必要なオペレーティングシステムのプログラムや各種のデータが記録される。
【0021】
RAM 103は、データやプログラムを一時的に記憶するためのもので、DVD−ROMから読み出したプログラムやデータ、その他ゲームの進行やチャット通信に必要なデータが保持される。また、CPU 101は、RAM 103に変数領域を設け、当該変数に格納された値に対して直接ALUを作用させて演算を行ったり、RAM 103に格納された値を一旦レジスタに格納してからレジスタに対して演算を行い、演算結果をメモリに書き戻す、などの処理を行う。
【0022】
インターフェイス104を介して接続されたコントローラ105は、ユーザが麻雀ゲームやトランプゲームなどのゲーム実行の際に行う操作入力を受け付ける。
【0023】
インターフェイス104を介して着脱自在に接続された外部メモリ106には、麻雀ゲーム等のプレイ状況(過去の成績等)を示すデータ、ゲームの進行状態を示すデータ、ネットワーク対戦の場合のチャット通信のログ(記録)のデータなどが書き換え可能に記憶される。ユーザは、コントローラ105を介して指示入力を行うことにより、これらのデータを適宜外部メモリ106に記録することができる。
【0024】
DVD−ROMドライブ108に装着されるDVD−ROMには、ゲームを実現するためのプログラムとゲームに付随する画像データや音声データが記録される。CPU 101の制御によって、DVD−ROMドライブ108は、これに装着されたDVD−ROMに対する読み出し処理を行って、必要なプログラムやデータを読み出し、これらはRAM 103等に一時的に記憶される。
【0025】
画像処理部107は、DVD−ROMから読み出されたデータをCPU 101や画像処理部107が備える画像演算プロセッサ(図示せず)によって加工処理した後、これを画像処理部107が備えるフレームメモリ(図示せず)に記録する。フレームメモリに記録された画像情報は、所定の同期タイミングでビデオ信号に変換され画像処理部107に接続されるモニタ(図示せず)へ出力される。これにより、各種の画像表示が可能となる。
【0026】
画像演算プロセッサは、2次元の画像の重ね合わせ演算やアルファブレンディング等の透過演算、各種の飽和演算を高速に実行できる。
【0027】
また、仮想3次元空間に配置され、各種のテクスチャ情報が付加されたポリゴン情報を、Zバッファ法によりレンダリングして、所定の視点位置から仮想3次元空間に配置されたポリゴンを所定の視線の方向へ俯瞰したレンダリング画像を得る演算の高速実行も可能である。
【0028】
さらに、CPU 101と画像演算プロセッサが協調動作することにより、文字の形状を定義するフォント情報にしたがって、文字列を2次元画像としてフレームメモリへ描画したり、各ポリゴン表面へ描画することが可能である。
【0029】
また、麻雀ゲームの牌の画像やトランプゲームのカードの画像などの情報をDVD−ROMに用意しておき、これをフレームメモリに展開することによって、現在の手牌や手札を画面に表示することができるようになる。
【0030】
NIC 109は、情報処理装置100をインターネット等のコンピュータ通信網(図示せず)に接続するためのものであり、LAN(Local Area Network)を構成する際に用いられる10BASE−T/100BASE−T規格にしたがうものや、電話回線を用いてインターネットに接続するためのアナログモデム、ISDN(Integrated Services Digital Network)モデム、ADSL(Asymmetric Digital Subscriber Line)モデム、ケーブルテレビジョン回線を用いてインターネットに接続するためのケーブルモデム等と、これらとCPU 101との仲立ちを行うインターフェース(図示せず)により構成される。
【0031】
音声処理部110は、DVD−ROMから読み出した音声データをアナログ音声信号に変換し、これに接続されたスピーカ(図示せず)から出力させる。また、CPU 101の制御の下、ゲームの進行の中で発生させるべき効果音や楽曲データを生成し、これに対応した音声をスピーカから出力させる。
【0032】
音声処理部110では、DVD−ROMに記録された音声データがMIDIデータである場合には、これが有する音源データを参照して、MIDIデータをPCMデータに変換する。また、ADPCM(Adaptive Differential Pulse Code Modulation)形式やOgg Vorbis形式等の圧縮済音声データである場合には、これを展開してPCMデータに変換する。PCMデータは、そのサンプリング周波数に応じたタイミングでD/A(Digital/Analog)変換を行って、スピーカに出力することにより、音声出力が可能となる。
【0033】
このほか、情報処理装置100は、ハードディスク等の大容量外部記憶装置を用いて、ROM 102、RAM 103、外部メモリ106、DVD−ROMドライブ108に装着されるDVD−ROM等と同じ機能を果たすように構成してもよい。
【0034】
次に、音声処理装置200の概要構成について図面を参照して説明する。
図2は、本実施形態に係る音声処理装置200の概要構成を示す模式図である。
図3は、仮想空間内に、到達点301と、到達点301を取り囲む立体302と、オブジェクト303とが配置されている例を示す図である。
【0035】
音声処理装置200は、計算部201と、変化部202と、出力部203とを備える。
【0036】
まず、計算部201は、仮想空間内に配置されるオブジェクト303により反射される反射音が到達する到達点を含む立体302が占める領域と、オブジェクト303と、が交わる量Vobjを求めて、求めた量Vobjを変化部202に入力する。あるいは、到達点を含む立体302と、オブジェクト303と、が交わる領域の分布を求めて、求めた領域の分布を示すデータを変化部202に入力する。
なお、CPU 101と画像処理部107とが共働することにより、計算部201として機能する。
【0037】
ここで、仮想空間内に配置されたキャラクターなどが仮想空間内の様子を観測すると想定される点として、視点と聴点とがある。視点は、仮想空間内を見る点であり、例えば3Dグラフィックスの表示に用いられる。聴点は、仮想空間内の音を聴く点であり、例えばコンサートホールの音場の設計などに用いられる。また、聴点は仮想空間内の音声の波動が到達する到達点であるが、音声が到達する旨の理解を容易にするため、以下の説明では、仮想空間内の音声の到達点を「受聴点」と呼ぶ。例えば、ユーザが仮想空間内で車オブジェクトを操作して順位を競うようなカーレーシングゲームの場合、そのユーザが操作する車オブジェクトの運転席の位置が受聴点になる。
【0038】
例えば、図3に示すように、受聴点301(到達点)を含む立体302は、3次元仮想空間内の受聴点301を取り囲む直方体である。この立体302は、各辺の長さがx方向にLx、y方向にLy、z方向にLzの直方体を1つの単位図形として、この単位図形の集合から構成される。本図では、立体302は、合計5×5×5=125個の単位図形から構成される。立体302は、仮想空間内で受聴点301の絶対位置が移動すると、一緒に仮想空間内を移動する。すなわち、立体302に対する受聴点301の相対位置は一定である。なお、立体302を構成する単位図形の数はこれに限られず任意に設定することができる。例えば、単位図形の数はゲームのシーンごとに可変としてもよい。
【0039】
なお、受聴点301を視点として仮想画像を表示させる場合には、より現実感を向上させるために、立体302はこの視点からの視線方向に基づいて配置されることが望ましい。また、立体302の重心座標と受聴点301の座標とが一致するように立体302を配置することが典型的である。
【0040】
オブジェクト303は、仮想空間内の任意の形状を持つ図形で表される。例えば、カーレーシングゲームの場合、オブジェクト303は、コース付近の障害物、側壁、建物、競争相手の車、対向車など、多様な形状をもつ。
【0041】
また、交わる量Vobjとは、仮想空間内で、受聴点301を含む立体302が占める領域と、オブジェクト303が占める領域とが重なる部分の大きさを示す量である。
【0042】
例えば、図4(a)のように、受聴点301を含む立体302とオブジェクト303とが離れていると、立体302とオブジェクト303とが交わる領域は存在せず、交わる量Vobjはゼロである。一方、図4(b)のように、立体302とオブジェクト303とが接近すると、両者の交わる領域が存在し、交わる量Vobjはゼロでない値を持つ。
【0043】
計算部201は、立体302とオブジェクト303とが交わる量Vobjとして、例えば両者の交わる部分の体積値を求める。ここで、オブジェクト303の形状は任意であるため、交わる領域の体積値を厳密に求めるためには計算量が膨大になる場合がある。本実施例では、計算部201は、立体302を構成する単位図形ごとに、オブジェクト303と交わる領域が存在するか否かを判定し、単位図形内に交わる領域が存在すればその単位図形をオブジェクト303の一部分とみなす。そして、計算部201は、すべての単位図形についてこの判定を行い、オブジェクト303の一部分とみなされた単位図形の体積値の合計値を、立体302とオブジェクト303とが交わる部分の体積値とする。なお、オブジェクト303の形状が複雑である場合には、オブジェクト303に外接する最小の図形(例えば、直方体、球体等)を設定して、この外接図形と立体302との交わる領域を、オブジェクト303と立体302との交わる領域と近似してもよい。
【0044】
例えば、図3において、x軸、y軸、z軸が互いに直交する場合、単位図形1個あたりの体積値Vunitは、[式1]で表される。
Vunit=Lx×Ly×Lz ・・・[式1]
また、オブジェクト303の一部分とみなされた単位図形の数がn個(nは0以上の整数)であるとすると、交わる量Vobjは[式2]で表される。
Vobj=Vunit×n ・・・[式2]
【0045】
なお、ある単位図形内での交わる部分が所定の割合(例えば、50%)以上の場合に、その単位図形をオブジェクト303の一部分とみなすようにしてもよい。
【0046】
また、オブジェクト303内に所定の複数個の判定ポイントを設けて、この判定ポイントが単位図形内に存在すれば、その単位図形をオブジェクト303の一部分とみなすようにしてもよい。あるいは、この判定ポイントが単位図形内に所定の個数以上存在すれば、その単位図形をオブジェクト303の一部分とみなすようにしてもよい。
【0047】
例えば、立体302がx方向に5個、y方向に5個、z方向に5個、の合計125個の単位図形から構成され、図5(a)のように立体302とオブジェクト303とが交わる領域が存在するとする。このとき、計算部201は、上述のいずれかの方法で単位図形ごとにオブジェクト303が存在するか否かを判定し、例えば図5(b)のように分布する10個の単位図形がオブジェクト303の一部分であるとみなす。そして、計算部201は、立体302とオブジェクト303とが交わる量Vobjとして体積値「10(単位は任意)」を得る。
【0048】
また、オブジェクト303ごとに予め識別番号i(iは1以上の整数)を付与し、オブジェクト303ごとに所定の係数K(i)を設定しておき、単位図形iに対応する交わる量V(i)を、[式3]のように係数K(i)と単位図形1個あたりの体積値Vunitとを乗じることにより求めてもよい。
V(i)=K(i)×Vunit ・・・[式3]
そして、立体302とオブジェクト303とが交わる領域のすべての単位図形についてのV(i)の総和を、交わる量Vobjとしてもよい。
【0049】
すなわち、単位図形ごとに、交わる量V(i)に重みを設定してもよい。例えば、仮想空間内のオブジェクト303の材質(例えば、コンクリート、鉄板など)や形状(例えば、均一な平面、穴の空いた平面など)に基づいて、予めこの係数K(i)を設定してもよい。
【0050】
あるいは、体積値の代わりに、受聴点301を含む立体302とオブジェクト303とが交わる領域が存在する(オブジェクト303の一部分とみなされる)単位図形の数n(nは0以上の整数)を、交わる量Vobjとしてもよい。
【0051】
また、体積値の代わりに、受聴点301を含む立体302を構成する単位図形の総数Nunitに対する、オブジェクト303とが交わる領域が存在する(オブジェクト303の一部分とみなされる)単位図形の数nの割合を[式4]のように求めて、この割合の大きさを、交わる量Vobjとしてもよい。
Vobj=n/Nunit ・・・[式4]
【0052】
変化部202は、計算部201により求められた、受聴点301を含む立体302とオブジェクト303とが交わる量Vobj(例えば、体積値)や領域分布に基づいて、このオブジェクト303から反射される反射音(例えば、自動車のエンジン音の反射音など)を変化させる音声処理を行う。変化部202は、反射音を変化させることを示す情報(例えば、変化後の音量、定位等を設定するパラメータ等)を出力部203に入力する。
なお、CPU 101と音声処理部110とが共働することにより、変化部202として機能する。
【0053】
例えば、変化部202は、計算部201により求められた体積値に基づいて、オブジェクト303からの反射音の音量を変化させることができる。すなわち、変化部202は、受聴点301を含む立体302とオブジェクト303とが交わる領域の体積値が大きくなればなるほど、オブジェクト303からの反射音の音量を大きくする制御を行うことができる。
【0054】
また、変化部202は、計算部201により求められた領域分布に基づいて、オブジェクト303からの反射音の定位(音源の位置)を変化させることができる。すなわち、変化部202は、受聴点301を含む立体302とオブジェクト303とが交わる領域の分布が受聴点301の左側(あるいは右側)に偏っていれば左側(あるいは右側)からの反射音を大きくし、前方(あるいは後方)に偏っていれば前方(あるいは後方)からの反射音を大きくする制御を行うことができる。
【0055】
ここで、計算部201により求められた領域分布は3次元で表されるため、受聴点301の上方(あるいは下方)に偏っていれば上方(あるいは下方)からの反射音を大きくすることもできる。さらに、受聴点301から見た単純な前後・左右・上下の関係だけではなく、例えば「受聴点301から見た左上前方斜め30度の方向」などのように立体的に任意に定位を求めることができる。
【0056】
例えば、変化部202は、オブジェクト303が存在するとみなされた単位図形の集合の重心座標を求めて、この重心座標と受聴点301の座標とを結ぶベクトルの向きに基づいて定位を求めることができる。ただし定位を求める方法はこれに限定されず、他の方法を用いてもよい。
【0057】
また、変化部202は、オブジェクト303が存在する領域分布と受聴点301の位置とに基づいて、反射音を再生するまでの時間的なずれを生じさせる制御を行うことができる。例えば、変化部202は、上述のような重心座標を求めて、この重心座標と受聴点301の座標とに基づいて距離を求め、反射音が受聴点301に到達するまでの時間(つまり、反射音の再生開始の時間)を決定する。
【0058】
このように、本実施例によれば、複雑な計算を行うことなく簡便に、計算部201により求められた領域分布や体積値に基づいて、音量、定位、時間差などを変化させることができる。
【0059】
さらには、変化部202は、計算部201により求められた領域分布に基づいて、反射音を反響させる(エコーをかける)エフェクトをかけることができる。例えば、カーレーシングゲームでユーザが操作する車オブジェクトが図6(a)のようなオブジェクト303(トンネル)に入ったとき、計算部201により求められる領域分布は、図6(b)に示すような受聴点301を取り囲む分布になる。
【0060】
一方、現実の音響効果では、自動車のエンジン音はトンネルの壁の一部分により反射されて第1の反射音が発生し、第1の反射音はさらに壁の他の一部分により反射されて第2の反射音が発生する。同様に反射音が繰り返し反射されることにより、結果として、第1の反射音から時間が遅れて、音量が減衰した第2の反射音が続くなどして、反射音は反響する。この効果を厳密に計算するためには、トンネルの壁を論理的に分割した仮想断片のひとつと音源との距離、受聴点301の移動速度、音源の移動速度などに基づいて、仮想断片のひとつによる反射音を求め、すべての仮想断片について積分して反射音を求め、同様に得られた反射音のすべてを合成する処理を行わなければならない。
【0061】
しかし、本実施例によれば、このような厳密で複雑な計算を行うことなく、反射音を変化させることができる。具体的には、変化部202は、計算部201により求められた領域分布と体積値とに基づいて、音声データに施す反響効果の程度、音量、定位などを示すパラメータを求めて、反響効果の程度、音量、定位などを示すパラメータを出力部203に入力する。
【0062】
例えば、変化部202は、計算部201により求められた領域分布が受聴点301を含む立体302の表面の一側面にのみ分布するときには反響効果が無く、図7のように一側面とその反対側にも分布するときには所定量の反響効果を発生させる。例えば、ある時刻T1に反射音を所定の音量で再生し、所定の時間経過後に反射音を始めの音量より減衰させた音量で再生する。そしてこれを繰り返し行い、結果として反射音が反響するエフェクトをかける。更に図6(b)のように上部も合わせて3方向に分布するときには更に大きい反響効果を発生させることができる。
【0063】
このように、本実施例によれば、音声処理装置200は、厳密で複雑な計算を行うことなく簡便に、計算部201により求められた領域分布に基づいてこのような反射音を反響させる(エコーをかける)エフェクトをかけることができ、なお且つ計算部201により求められた交わる量Vobjの大きさに基づいてこの反響の効果の大小を変えることができる。
【0064】
さらには、変化部202は、計算部201により求められた領域分布に基づいて、反射音の特定の周波数成分を減衰する(音をこもらせる)エフェクトをかけることもできる。例えば受聴点301(ユーザが操作する車オブジェクト)が図6(a)のようなオブジェクト303(トンネル)に入ったとき、変化部202は図6(b)のように計算部201により求められた領域分布と交わる量Vobjとを取得して反射音の特定の周波数成分(例えば高周波成分)を所定量だけ減衰させ、更に図8(a)のようなオブジェクト303(もっと狭いトンネル)に入ったときには、図8(b)のような領域分布と交わる量Vobjとを取得して更に大きい減衰効果を発生させることができる。
【0065】
このように、本実施例によれば、厳密で複雑な計算を行うことなく、図6(b)や図8(b)などのように計算部201により求められた領域分布と体積値とに基づいて、音をこもらせるエフェクトをかけることができ、なお且つ計算部201により求められた体積値や領域分布に基づいてこの効果の大小を変えることができる。
【0066】
なお、変化部202が行う反射音の音声処理は、上述したものに限られるものではなく、他のエフェクトを行うように構成することもできる。例えば、受聴点301やオブジェクト303の移動速度に基づいて、反射音の周波数や音程などを変化させるエフェクトを行うように構成することもできる。
【0067】
出力部203は、変化部202により変化された反射音から、仮想空間内の受聴点301で受聴される音声を出力する。すなわち、出力部203は、変化部202から反射音を変化させる情報を取得し、DVD−ROMドライブ108に装着されたDVD−ROM等の情報記憶媒体に予め記憶された再生対象の反射音の音声データを取得する。そして、出力部203は、再生対象の反射音の音声データを変化させて出力する。変化された反射音は、音声処理部110に接続されたスピーカ等によって出力され、結果としてユーザは反射音を含むゲーム音などを聴くことができる。
なお、CPU 101と音声処理部110とが共働することにより、出力部203として機能する。
【0068】
例えば、仮想空間内でのカーレーシングゲームにおいて図9(a)のようなシーンを考える。この例では、受聴点301はユーザが操作する車オブジェクトの運転席であり、受聴点301付近には併走する車オブジェクト901やコース付近の建物オブジェクト902といったオブジェクト303が存在する。受聴点301で受聴される音声には、例えばユーザが操作する車オブジェクトのエンジン音、このエンジン音のオブジェクト303(併走する車オブジェクト901や近くの建物オブジェクト902など)による反射音、オブジェクト303等からの発声音などがある。このうちオブジェクト303による反射音は、上述のように変化部202により変化された反射音である。受聴点301を含む立体302を考慮すると、オブジェクト303の1つである併走する車オブジェクト901が存在する領域分布911と、オブジェクト303の1つである近くの建物オブジェクト902が存在する領域分布912は、例えば図9(b)のようになる。この場合、併走する車オブジェクト901による第1の反射音は、図9(b)の領域分布911と体積値「20(単位は任意)」とに基づいて変化部202により変化された反射音になる。また、近くの建物オブジェクト902による第2の反射音は、図9(b)の領域分布912と体積値「10(単位は任意)」とに基づいて変化部202により変化された反射音になる。出力部203は、この第1及び第2の反射音を含む音声を出力する。
【0069】
例えば、本図のような状況では、出力部203は、併走する車オブジェクト901による第1の反射音の音量を、建物オブジェクト902による第2の反射音の音量の2倍に設定して出力できる。また、出力部203は、第1及び第2の反射音にそれぞれ別の定位を設定して反射音を出力できる。さらには、出力部203は、受聴点301が2つのオブジェクト303に挟まれることによる、反射音を反響させるエフェクトや、反射音をこもらせるエフェクトをかけることもできる。
【0070】
次に、本実施例に係る音声処理装置200が行う、反射音の音声処理について、図10のフローチャートを用いて説明する。
【0071】
まず、音声処理装置200は、仮想空間内に受聴点301とオブジェクト303を配置する。例えば、CPU 101は、DVD−ROMドライブ108に装着されたDVD−ROM等から読み込んだ所定のゲーム用プログラムを読み込んで実行する。そして、CPU 101は画像処理部107と共働して、受聴点301とオブジェクト303の座標等を計算してこれらを仮想空間内に配置し、任意の視点の視線方向の仮想画像を生成する。生成された仮想画像は、画像処理部107に接続されたモニタ等に表示される。
【0072】
次に、計算部201は、仮想空間内の受聴点301を取り囲むように立体302を配置する(ステップS11)。この立体302の形状、サイズ、立体302を構成する単位図形は、ゲーム用プログラムにより予め決められている。あるいは、ゲームのシーンによって可変としてもよい。
【0073】
計算部201は、受聴点301を含む立体302とオブジェクト303の位置情報を取得する(ステップS12)。例えば、位置情報は、3次元の仮想空間内における受聴点301、立体302及びオブジェクト303の座標である。
【0074】
計算部201は、取得した位置情報に基づいて、受聴点301を含む立体302とオブジェクト303とが交わる領域が存在するか否かを判定する(ステップS13)。
【0075】
受聴点301を含む立体302とオブジェクト303とが交わる領域が存在しない場合(ステップS13;NO)、音声処理装置200は反射音の音声処理を終了する。すなわち、音声処理装置200はオブジェクト303による反射音の再生を行わない。
【0076】
一方、交わる領域が存在する場合(ステップS13;YES)、計算部201は、交わる領域の分布を求める(ステップS14)。
【0077】
例えば、図9(a)のように、仮想空間内のカーレーシングゲームにおいて、仮想空間内にオブジェクト303とユーザが操作する車オブジェクトの受聴点301とが配置され、受聴点301におけるユーザが操作する車オブジェクトのエンジン音のオブジェクト303による反射音を得るとする。計算部201は、ユーザが操作する車オブジェクトと併走する車オブジェクト901が存在する領域分布911を上述した方法により求める。また、同様に、計算部201は、受聴点301の近くの建物オブジェクト902が存在する領域分布912を上述した方法により求める。結果として、計算部201は、図9(b)のようにオブジェクト303が存在する領域分布を得る。
【0078】
計算部201は、取得した受聴点301を含む立体302とオブジェクト303とが交わる領域の分布から、上述した方法により交わる量Vobjを求める(ステップS15)。
【0079】
例えば、図9(b)のように、計算部201は、受聴点301を含む立体302とオブジェクト303(車オブジェクト901)との交わる量Vobjとして体積値「20」を得る。同様に、計算部201は、受聴点301を含む立体302とオブジェクト303(建物オブジェクト902)との交わる量Vobjとして体積値「10」を得る。
【0080】
なお、計算部201は、受聴点301を含む立体302とオブジェクト303とが交わる領域が存在するか否かに関わらず、交わる領域の分布と、交わる量Vobjとを求めるように構成してもよい。
【0081】
次に、変化部202は、計算部201により求められた交わる領域の分布と交わる量Vobjとに基づいて、オブジェクト303による反射音を変化させる(ステップS16)。
【0082】
例えば、変化部202は、交わる領域の体積値が大きくなればなるほど、反射音の音量を大きくする。また、例えば、変化部202は、交わる領域の分布によって、反射音の定位を変化させる。
【0083】
例えば、変化部202は、交わる領域の分布が、図7のように受聴点301を挟む両側に存在する分布に近ければ近いほど、反射音の反響(エコー)の度合い(例えば、持続時間など)を大きくする。
【0084】
例えば、変化部202は、図8(b)のように受聴点301のオブジェクト303により囲まれる領域が狭ければ狭いほど、反射音の特定の周波数成分を減衰させる(音をこもらせる)度合いを大きくする。
【0085】
そして、出力部203は、変化部202により変化された反射音を出力する(ステップS17)。すなわち、出力部203は、ステップS16で求められた、反射音を変化させることを示す情報と、再生する音声データとを用いて、オブジェクト303による変化された反射音と、その他のゲーム上のキャラクタ等が発声する音声、効果音、BGMなどを出力する。
【0086】
なお、この反射音の音声処理は、所定のタイミング(例えば、画像処理部107に接続されたモニタに画像を表示する際の垂直同期のタイミング等)の割り込み処理として行われることが望ましい。
【0087】
このように、本実施例によれば、音声処理装置200は、厳密で複雑な計算を行うことなく簡便に、計算部201により求められた領域分布や体積値に基づいて、反射音の音量、定位、時間差などを変化させることができる。また、反射音にエコーをかけたり、音をこもらせたりすることができる。この結果、仮想空間において立体的な音響効果を得ることができる。
【0088】
(実施例2)
次に、本発明の他の実施例について説明する。本実施例では、計算部201は、受聴点301を含む立体302とオブジェクト303とが交わる量Vobjとして、体積値の代わりに面積値を求める。なお、本実施例に係るその他の音声処理装置200の構成は上述した実施例と同様であるため、説明を省略する。
【0089】
計算部201は、立体302とオブジェクト303とが交わる量Vobjとして、両者の交わる領域の面積値を求める。ここで、オブジェクト303の形状は任意であるため、交わる領域の面積値を厳密に求めるためには計算量が膨大になる場合がある。本実施例では、計算部201は、立体302の表面を構成する単位図形ごとに、オブジェクト303と交わる領域が存在するか否かを判定し、交わる領域が存在すればその単位図形を交わる領域の一部分とみなす。そして、すべての単位図形についてこの判定を行い、交わる領域の一部分とみなされた単位図形の面積値の合計値を、交わる量Vobjとする。
【0090】
なお、単位図形内の交わる領域が所定の割合(例えば、50%)以上の場合に、その単位図形を、交わる量Vobjの一部分とみなすようにしてもよい。
【0091】
また、面積値の代わりに、受聴点301を含む立体302の表面を構成する単位図形の総数Nunitに対する、オブジェクト303とが交わる領域が存在する単位図形の数nの割合を[式4]のように求めて、この割合の大きさを、交わる量Vobjとしてもよい。
【0092】
例えば、立体302が直方体であり、各面が5×5=25個の単位図形から構成され、図11(a)のように立体302とオブジェクト303とが交わる領域が存在するとする。このとき、計算部201は、上述のいずれかの方法で単位図形ごとにオブジェクト303が存在するか否かを判定し、例えば図11(b)のように分布する10個の単位図形が、立体302とオブジェクト303とが交わる領域であるとみなす。そして、計算部201は、立体302とオブジェクト303とが交わる量Vobj=10(単位は任意)を得る。
【0093】
そして、変化部202は、上述の実施例と同様に、計算部201により求められた立体302とオブジェクト303との交わる領域の分布と交わる量Vobjとに基づいて、反射音を変化させる。
【0094】
このように、本実施例によれば、音声処理装置200は、上述の実施例と同様に、厳密で複雑な計算を行うことなく簡便に、計算部201により求められた領域分布や面積値に基づいて、反射音の音量、定位、時間差などを変化させることができる。また、反射音にエコーをかけたり、音をこもらせたりすることができる。この結果、仮想空間において立体的な音響効果を得ることができる。また、音声処理装置200は、交わる量Vobjとして面積値を用いることにより、体積値を用いるよりも更に簡便に立体的な音響効果を得ることができる。
【0095】
(実施例3)
次に、本発明の他の実施例について、図12を用いて説明する。本実施例では、計算部201は、受聴点301の移動速度に基づいて、仮想空間内に立体302を配置する。
【0096】
計算部201は、上述の実施例と同様に、仮想空間内に受聴点301を含む立体302を配置する。本実施例では、計算部201は、受聴点301の移動速度を取得し、この移動速度に基づいて立体302の中心位置を変更する。例えば、計算部201は、受聴点301の移動する方向に立体302の中心位置を所定量ΔLだけ移動させて配置する。具体的には、計算部201は、移動速度が大きくなればなるほどこの所定量ΔLを大きくする。例えば所定量ΔLを移動速度の大きさに比例して大きくする。あるいは、例えば所定量ΔLが移動速度の大きさに伴って段階的に大きくなるように対応づけた階段関数を用いて変更する。ただし、所定量ΔLの大きさを決める方法はこれらに限定されるものではない。
【0097】
例えば、図12は、受聴点301の真上方向(z方向)から見た立体302の配置図である。受聴点301の移動速度がゼロの場合、図12(a)のように受聴点301と立体302の中心位置は一致する。一方、受聴点301の移動速度がゼロでない場合、図12(b)、図12(c)のように、立体302の中心位置は、受聴点301の移動する方向に所定量ΔLだけ移動する。このように、立体302の中心位置は受聴点301の移動する方向に移動するため、移動方向からの反射音の変化が他の方向と比較して強調される。
【0098】
そして、計算部201は、上述の実施例と同様に、立体302とオブジェクト303とが交わる量Vobj(例えば、体積値や面積値)を求めて、求めた量Vobjを変化部202に入力する。あるいは、立体302と、オブジェクト303と、が交わる領域の分布を求めて、求めた領域の分布を示すデータを変化部202に入力する。
【0099】
変化部202は、計算部201により求められた交わる領域の分布及び交わる量Vobjに基づいて、反射音を変化させる。なお、音声処理装置200のその他の概要構成は上述の実施例と同様であるため説明を省略する。
【0100】
このように、本実施例によれば、音声処理装置200は、受聴点301が移動する方向からの反射音の変化を強調するエフェクトをかけることができる。例えば、音声処理装置200は、厳密で複雑な計算をしないで、受聴点301が移動する方向からの反射音の音量を大きくしたり定位を移動したりすることができる。また、受聴点301が移動する方向に基づいて、反射音を反響させたりこもらせたり、あるいは更に他の音響効果をさせたりする度合いを変更することができる。
【0101】
(実施例4)
次に、本発明の他の実施例について、図13を用いて説明する。
【0102】
計算部201は、上述の実施例と同様に、仮想空間内に受聴点301を含む立体302を配置する。本実施例では、計算部201は、受聴点301の移動速度を取得し、この移動速度に基づいて立体302の基準方向(x、y、z方向)を変更する。例えば、立体302の形状を直方体としたとき、計算部201は、立体302の直交する3辺のうち受聴点301の移動方向に1辺を設定し、移動方向に垂直でかつ水平な方向を他の1辺に設定し、これらの2辺に垂直な方向に他の1辺を設定して、立体302を配置する。
【0103】
例えば、図13は、受聴点301の真上方向(z方向)から見た立体302の配置図である。受聴点301の移動速度がゼロの場合、図13(a)のように立体302の仮想空間内における向きは仮想空間のグローバル座標(ワールド座標)系の各軸方向と一致する。一方、受聴点301の移動速度がゼロでない場合、図13(b)のように立体302は移動する向きに従って配置される。
【0104】
そして、変化部202は、計算部201により求められた交わる領域の分布及び交わる量Vobjに基づいて、反射音を変化させる。なお、音声処理装置200のその他の概要構成は上述の実施例と同様であるため説明を省略する。
【0105】
このように、本実施例によれば、音声処理装置200は、受聴点301の移動方向に基づいて反射音の変化の度合いを変更するエフェクトをかけることができる。例えば、音声処理装置200は、受聴点301の移動方向に基づいて反射音の定位を変化させることができる。
【0106】
なお、計算部201は、図13(c)のように、受聴点301の移動する向きに基づいて立体302の基準方向を変更するとともに、移動する向きに立体302の中心位置を所定量ΔLだけ移動させることもできる。これにより、受聴点301の移動する方向の反射音の変化を強調し、かつ、移動する方向に基づいて定位を決めることができるため、より現実感のある音響効果を得ることができる。なお、この場合も上述の実施例のように計算部201は移動速度が大きくなればなるほど移動速度の向きに所定量ΔLを大きくするが、これに限定されない。
【0107】
(実施例5)
次に、本発明の他の実施例について、図14を用いて説明する。本実施例では、音声処理装置200は、仮想空間内の受聴点301から仮想空間内に配置されるオブジェクト303を見た仮想画像を生成する画像生成部1201と、受聴点301から仮想空間内に配置されるオブジェクト303を見る視線方向を取得する視線方向取得部1202と、を更に備える。そして、計算部201は、視線方向取得部1202により取得された仮想画像の視線方向に基づいて立体302を配置する。なお、音声処理装置200のその他の構成は上述した実施例と同様であるため、説明を省略する。
【0108】
画像生成部1201は、受聴点301を視点として、仮想空間内に配置されるオブジェクト303を見た仮想画像を生成する。例えば、画像生成部1201は、CPU 101によりゲーム用プログラムが実行されると、ゲームのシーンやユーザからの入力指示に合わせて視点を移動させ、その視点からの視線方向に見える仮想画像を生成して出力する。生成された仮想画像は、画像処理部107に接続されるモニタに表示される。
なお、CPU 101と画像処理部107とが共働することにより、画像生成部1201として機能する。
【0109】
視線方向取得部1202は、仮想空間内の受聴点301を視点とする仮想画像の視線方向を画像生成部1201から取得し、取得した視線方向を示すデータを計算部201に入力する。例えば視線方向取得部1202は、画像生成部1201により生成された画像に含まれる所定のオブジェクト303の位置情報と受聴点301の位置情報とに基づいて視線方向ベクトルを取得して、このベクトルの向きを視線方向とする。あるいは、視線方向取得部1202は、NIC 109を介してコンピュータ通信網で相互に接続された他の情報処理装置からの入力に基づいて、仮想画像の視線方向を取得するように構成してもよい。
なお、CPU 101と画像処理部107とが共働することにより、視線方向取得部1202として機能する。
【0110】
計算部201は、視線方向取得部1202により取得された仮想画像の視線方向に基づいて、仮想画像の視線方向に立体302の中心位置を所定量ΔLだけ移動させて立体302を配置する。そして、計算部201は、上述の実施例と同様に、受聴点301を含む立体302とオブジェクト303との交わる領域分布と交わる量Vobjとを求めて変化部202に入力する。なお、計算部201は立体302の中心位置を視線方向に所定量ΔLの大きさだけ移動する。例えば、所定量ΔLの大きさはゲームのシーンごと(例えばカーレーシングゲームの場合のコースごと等)に予め決められるが、所定量ΔLの大きさを決める方法はこれに限定されない。
【0111】
図15は、受聴点301の真上方向(z方向)から見た立体302の配置図である。例えば、視線方向が仮想空間のグローバル座標系におけるy方向の場合、図15(a)のように、計算部201は立体302の中心位置を視線方向であるy方向に所定量ΔLの大きさだけ移動する。このとき、画像生成部1201により生成される仮想画像の視界範囲は本図の斜線部の範囲である。例えば、さらに視線方向がx方向に移動すると、図15(b)のように、計算部201は立体302の中心位置を新しい視線方向に移動させる。
【0112】
変化部202は、上述の実施例と同様に、仮想画像の視線方向を考慮した立体302とオブジェクト303とが交わる領域分布と交わる量Vobjとに基づいて、受聴点301で受聴される音声を変化させる。そして、出力部203は、変化部202により変化された反射音を出力する。
【0113】
このように、本実施例によれば、音声処理装置200は、仮想空間内における受聴点301の位置が同じであっても、視線方向が異なれば視線方向に合致するように反射音等の音声の定位を変化させることができ、より現実感を起こさせることができる。
【0114】
(実施例6)
次に、本発明の他の実施例について、図16を用いて説明する。本実施例も、図14のように画像生成部1201と視線方向取得部1202とを更に備える。
【0115】
計算部201は、視線方向取得部1202により取得された仮想画像の視線方向に基づいて、仮想空間内に受聴点301を含む立体302を配置する。すなわち、計算部201は、仮想画像の視線方向に基づいて立体302の基準方向(x、y、z方向)を変更して配置する。そして、計算部201は、上述の実施例と同様に、受聴点301を含む立体302とオブジェクト303とが交わる領域分布と交わる量Vobjとを求めて変化部202に入力する。
【0116】
変化部202は、上述の実施例と同様に、仮想画像の視線方向を考慮した立体302とオブジェクト303とが交わる領域分布と、交わる量Vobjとに基づいて、受聴点301で受聴される音声を変化させる。例えば、変化部202は、オブジェクト303による反射音の定位を変化させる。そして、出力部203は、変化部202により変化された反射音を出力する。
【0117】
例えば、計算部201は、立体302の形状を直方体としたとき、立体302の直交する3辺のうち視線方向に1辺を設定し、視線方向に垂直でかつ水平な方向に立体302の他の1辺を設定し、これらの2辺の両方に垂直な方向に立体302の他の1辺を設定して、例えば図16(a)のように、立体302の中心位置を受聴点301から所定量ΔLの大きさだけ移動して立体302を配置する。このとき、画像生成部1201により出力される仮想画像の視界範囲は本図の斜線部の範囲である。例えば、視線方向が移動すると、図16(b)のように計算部201は立体302の基準方向を視線方向にしたがって変化させる。また、所定量ΔLの大きさはゲームのシーンごと等に予め決められるが、所定量ΔLの大きさを決める方法はこれに限定されない。
【0118】
変化部202は、視線方向を受聴点301の前後とみなし、視線方向に垂直でかつ水平な方向を受聴点301の左右とみなし、これらの前後方向と左右方向とに垂直な方向を受聴点301の上下とみなして、音声の定位を決める。そして、出力部203は、変化部202により変化された反射音を出力する。
【0119】
このように、本実施例によれば、音声処理装置200は、仮想空間内における受聴点301の位置が同じであっても、視線方向が異なれば視線方向に合致するように反射音の音声の定位を変化させることができ、より現実感を起こさせることができる。
【0120】
さらに、視線方向に加えて、受聴点301の移動方向も考慮して立体302を配置して、立体302とオブジェクト303との交わる領域の分布や交わる量Vobjを求めることもできる。すなわち、計算部201は、図17(a)のように、受聴点301の移動する向きに基づいて立体302の基準方向を変更するとともに、視線方向に立体302の中心位置を所定量ΔLだけ移動させることもできる。
【0121】
また、計算部201は、図17(b)のように、視線方向に基づいて立体302の基準方向を変更するとともに、受聴点301の移動する向きに基づいて立体302の中心位置を所定量ΔLだけ移動させることもできる。
【0122】
このように、受聴点301の移動方向と視線方向とを組み合わせることにより、受聴点301の移動する方向の反射音の変化を強調し、かつ、視線方向に基づいて定位を決めることができるため、より現実感のある音響効果を得ることができる。なお、この場合も計算部201は移動速度が大きくなればなるほど所定量ΔLを大きくするが、これに限定されない。
【0123】
本発明は、上述した実施例に限定されず、種々の変形及び応用が可能である。
【0124】
上述した実施例では、受聴点301を含む立体302を直方体としたが、これに限られるものではなく、例えば球体のように他の図形を用いてもよい。ただし、立体302の形状は、計算部201による交わる量Vobjを求める処理をより簡単にするために、受聴点301に対して立体的な対称性を保持していることが望ましい。
【0125】
また、受聴点301を含む立体302あるいはその表面を構成する単位図形は、上述した実施例に限られるものではなく、他の形状(例えば、三角錐、三角形など)、他の個数の単位図形を用いてもよい。ただし、単位図形の形状は、計算部201による交わる量Vobjを求める処理をより簡単にするために、すべて同一にすることが望ましい。また、ゲームのシーンなどによって可変としてもよい。
【0126】
また、計算部201は、所定の条件を満たす場合に、受聴点301を含む立体302の形状を変化させるように構成してもよい。例えば、仮想空間内でのカーレーシングゲームにおいて、受聴点301がユーザが操作する車オブジェクトの運転席としたとき、運転席の右サイドの窓のみを開けると、計算部201は立体302のうち受聴点301より右側半分の領域のみを拡大させる。結果として、変化部202は、複雑な計算を行うことなく簡便に、右側半分に位置するオブジェクト303による反射音の変化量を左側半分より大きくするようなエフェクトをかけることができる。
【0127】
あるいは、受聴点301を含む立体302を構成する単位図形に対応してそれぞれ予め係数K(i)を設定しておき、計算部201は単位図形iに対応する交わる量V(i)を[式3]のように単位図形ごとに重みを設定して求め、立体302とオブジェクト303とが交わる領域のすべての単位図形についての総和を、交わる量Vobjとする。そして、計算部201は、所定の条件を満たす場合に、係数K(i)を変化させるように構成してもよい。例えば、仮想空間内でのカーレーシングゲームにおいて、受聴点301がユーザが操作する車オブジェクトの運転席としたとき、運転席の右サイドの窓のみを開けると、計算部201は受聴点301より右側半分に存在する単位図形に対応づけられた係数K(i)を大きくする。結果として、変化部202は、複雑な計算を行うことなく簡便に、右側半分に位置するオブジェクト303による反射音の変化量を左側半分より大きくするようなエフェクトをかけることができる。
【0128】
上述した実施例では、音声処理装置200は仮想空間に受聴点301とオブジェクト303とを配置して仮想画像を生成し、画像処理部107に接続されるモニタに表示させ、反射音を変化させるが、仮想空間内に受聴点301とオブジェクト303とを配置して仮想画像を表示させる処理を別の情報処理装置で行うように構成してもよい。そして、音声処理装置200は、NIC 109等により情報処理装置と接続され、反射音を変化させて出力する処理のみを行うように構成してもよい。
【0129】
上述した実施例では、仮想空間に直交座標系を用いて説明したが、これに限られるものではなく、例えば1個の動径と2個の偏角を用いた球座標のような極座標系を用いてもよい。また、仮想空間の全体を表現するグローバル座標系(ワールド座標系)と、オブジェクト303ごとのローカル座標系(ボディ座標系)とを別々に設定して座標計算等を行う構成を採用してもよい。
【0130】
上述した実施例では、交わる量Vobjとして体積値あるいは面積値のどちらかを用いているが、これらの両方を用いてもよい。すなわち、計算部201は、交わる量Vobjとして体積値及び面積値の両方を計算するように構成してもよい。例えば、異なる2つ以上のオブジェクト303と立体302との交わる体積値が同じである場合、計算部201は更に交わる面積値を求めて、変化部202は面積値の大きいほうの反射音を大きく変化させる(例えば、音量を大きくする)処理を行うことができる。さらには、計算部201は体積値、面積値以外の他の量(例えば、受聴点301やオブジェクト303の移動速度等)も取得して、変化部202は体積値、面積値以外の他の量にも基づいて反射音を変化させるように構成してもよい。
【0131】
例えば、異なる2つ以上のオブジェクト303と立体302との交わる量Vobjが同じである場合、オブジェクト303が分布する領域の重心と受聴点301との距離の小さいほうの反射音を大きく変化させる(例えば、音量を大きくする)処理を行ってもよい。この場合、重心座標以外に、オブジェクト303の受聴点301に最も近い点の座標などを用いることもできる。
【0132】
例えば、変化部202は、立体302とオブジェクト303との交わる量Vobjが同じである場合、オブジェクト303の移動速度(又は、受聴点301に対するオブジェクト303の相対速度)に応じて、反射音を変化させる度合いを変更するようにしてもよい。
【0133】
以上説明したように、本発明によれば、仮想空間において立体的な音響効果を得るために好適な音声処理装置、音声処理方法、ならびに、プログラムを提供することができる。特に、一般に普及している家庭用ゲーム機のように、高性能のハードウェアを搭載することが難しい装置にも簡単に適用することができる。
【図面の簡単な説明】
【0134】
【図1】本発明の音声処理装置が実現される典型的な情報処理装置の概要構成を示す図である。
【図2】音声処理装置の構成を示す図である。
【図3】受聴点を含む立体の例を示す図である。
【図4】(a)は受聴点を含む立体とオブジェクトとが離れているときの配置例を示す図である。(b)は受聴点を含む立体とオブジェクトとが重なっているときの配置例を示す図である。
【図5】(a)は受聴点を含む立体とオブジェクトとが交わる配置例を示す図である。(b)は交わる領域の分布の例を示す図である。
【図6】(a)は受聴点の3方向にオブジェクトが分布する配置例を示す図である。(b)は交わる領域の分布の例を示す図である。
【図7】受聴点の一側面とその反対側にオブジェクトが分布する配置例を示す図である。
【図8】(a)は受聴点の3方向にオブジェクトが分布する配置例を示す図である。(b)は交わる領域の分布の例を示す図である。
【図9】(a)は仮想空間内の受聴点とオブジェクトの配置例を示す図である。(b)は交わる領域の分布の例を示す図である。
【図10】反射音の音声処理を説明するためのフローチャートである。
【図11】(a)は受聴点を含む立体とオブジェクトとが交わる配置例を示す図である。(b)は交わる領域の分布の例を示す図である。
【図12】(a)は受聴点と立体の配置図の例である。(b)(c)は受聴点の移動方向に立体の中心位置が移動した配置図の例である。
【図13】(a)は受聴点と立体の配置図の例である。(b)(c)は受聴点の移動方向に立体の基準方向を変更した配置図の例である。
【図14】実施例5及び6の音声処理装置の構成を示す図である。
【図15】(a)は受聴点と立体の配置図の例である。(b)は視線方向に立体の中心位置を移動した配置図の例である。
【図16】(a)は受聴点と立体の配置図の例である。(b)は視線方向に立体の基準方向を変更した配置図の例である。
【図17】(a)は受聴点の移動方向に立体の基準方向を変更し、視線方向に立体の中心位置を移動した配置図の例である。(b)は視線方向に立体の基準方向を変更し、受聴点の移動方向に立体の中心位置を移動した配置図の例である。
【符号の説明】
【0135】
100 情報処理装置
101 CPU
102 ROM
103 RAM
104 インターフェイス
105 コントローラ
106 外部メモリ
107 画像処理部
108 DVD−ROMドライブ
109 NIC
110 音声処理部
200 音声処理装置
201 計算部
202 変化部
203 出力部
301 受聴点
302 立体
303 オブジェクト
901 車オブジェクト
902 建物オブジェクト
911 車オブジェクトの領域分布
912 建物オブジェクトの領域分布
1201 画像生成部
1202 視線方向取得部

【特許請求の範囲】
【請求項1】
仮想空間内に配置されるオブジェクトにより反射される反射音が到達する到達点を含む立体が占める領域と、当該オブジェクトと、が交わる量を計算する計算部、
前記計算部により計算された前記交わる量に基づいて、前記オブジェクトから反射される反射音を変化させる変化部、
前記変化部により変化された反射音を、前記到達点で取得される音声として出力する出力部
を備えることを特徴とする音声処理装置。
【請求項2】
請求項1に記載の音声処理装置であって、
前記変化部は、前記立体と、前記オブジェクトと、が交わる領域の分布によって、前記反射音の定位を変化させる
ことを特徴とする音声処理装置。
【請求項3】
請求項1または2に記載の音声処理装置であって、
前記仮想空間内の前記到達点から前記仮想空間内に配置される前記オブジェクトを見た画像を生成する画像生成部、
前記到達点から当該仮想空間内に配置される前記オブジェクトを見る視線方向を、前記画像生成部から取得する視線方向取得部を更に備え、
前記計算部は、当該視線方向取得部により取得された視線方向に基づいて前記立体を配置して、前記立体と前記オブジェクトとの前記交わる量を計算する
ことを特徴とする音声処理装置。
【請求項4】
仮想空間内に配置されるオブジェクトにより反射される反射音が到達する到達点を含む立体が占める領域と、当該オブジェクトと、が交わる量を計算する計算ステップ、
前記計算ステップにより計算された当該交わる量に基づいて、当該オブジェクトから反射される反射音を変化させる変化ステップ、
前記変化ステップにより変化された反射音を、当該到達点で取得される音声として出力する出力ステップ
を備えることを特徴とする音声処理方法。
【請求項5】
コンピュータを、
仮想空間内に配置されるオブジェクトにより反射される反射音が到達する到達点を含む立体が占める領域と、当該オブジェクトと、が交わる量を計算する計算部、
前記計算部により計算された当該交わる量に基づいて、当該オブジェクトから反射される反射音を変化させる変化部、
前記変化部により変化された反射音を、当該到達点で取得される音声として出力する出力部
として機能させることを特徴とするプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate


【公開番号】特開2007−180935(P2007−180935A)
【公開日】平成19年7月12日(2007.7.12)
【国際特許分類】
【出願番号】特願2005−377381(P2005−377381)
【出願日】平成17年12月28日(2005.12.28)
【出願人】(506113602)株式会社コナミデジタルエンタテインメント (1,441)
【Fターム(参考)】