特許第6863936号(P6863936)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社カプコンの特許一覧

特許6863936仮想空間における音声生成プログラム、四分木の生成方法、および音声生成装置
<>
  • 特許6863936-仮想空間における音声生成プログラム、四分木の生成方法、および音声生成装置 図000002
  • 特許6863936-仮想空間における音声生成プログラム、四分木の生成方法、および音声生成装置 図000003
  • 特許6863936-仮想空間における音声生成プログラム、四分木の生成方法、および音声生成装置 図000004
  • 特許6863936-仮想空間における音声生成プログラム、四分木の生成方法、および音声生成装置 図000005
  • 特許6863936-仮想空間における音声生成プログラム、四分木の生成方法、および音声生成装置 図000006
  • 特許6863936-仮想空間における音声生成プログラム、四分木の生成方法、および音声生成装置 図000007
  • 特許6863936-仮想空間における音声生成プログラム、四分木の生成方法、および音声生成装置 図000008
  • 特許6863936-仮想空間における音声生成プログラム、四分木の生成方法、および音声生成装置 図000009
  • 特許6863936-仮想空間における音声生成プログラム、四分木の生成方法、および音声生成装置 図000010
  • 特許6863936-仮想空間における音声生成プログラム、四分木の生成方法、および音声生成装置 図000011
  • 特許6863936-仮想空間における音声生成プログラム、四分木の生成方法、および音声生成装置 図000012
  • 特許6863936-仮想空間における音声生成プログラム、四分木の生成方法、および音声生成装置 図000013
  • 特許6863936-仮想空間における音声生成プログラム、四分木の生成方法、および音声生成装置 図000014
  • 特許6863936-仮想空間における音声生成プログラム、四分木の生成方法、および音声生成装置 図000015
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6863936
(24)【登録日】2021年4月5日
(45)【発行日】2021年4月21日
(54)【発明の名称】仮想空間における音声生成プログラム、四分木の生成方法、および音声生成装置
(51)【国際特許分類】
   A63F 13/57 20140101AFI20210412BHJP
   A63F 13/54 20140101ALI20210412BHJP
【FI】
   A63F13/57
   A63F13/54
【請求項の数】8
【全頁数】18
(21)【出願番号】特願2018-145016(P2018-145016)
(22)【出願日】2018年8月1日
(65)【公開番号】特開2020-18620(P2020-18620A)
(43)【公開日】2020年2月6日
【審査請求日】2019年11月28日
(73)【特許権者】
【識別番号】000129149
【氏名又は名称】株式会社カプコン
(74)【代理人】
【識別番号】110001427
【氏名又は名称】特許業務法人前田特許事務所
(72)【発明者】
【氏名】小島 健二
【審査官】 比嘉 翔一
(56)【参考文献】
【文献】 特開2008−200255(JP,A)
【文献】 特開2004−298373(JP,A)
【文献】 特開2014−063183(JP,A)
【文献】 特開2000−200361(JP,A)
【文献】 特開2005−080124(JP,A)
【文献】 特開2000−267675(JP,A)
【文献】 特開2002−051399(JP,A)
【文献】 特許第6343048(JP,B1)
(58)【調査した分野】(Int.Cl.,DB名)
A63F13/00−13/98
A63F 9/24
JSTPlus(JDream3)
(57)【特許請求の範囲】
【請求項1】
コンピュータを、
仮想空間内の仮想の音源として設定されている音源オブジェクトが発した音として音声データを再生する再生手段と、
前記仮想空間内の所定領域に含まれる小領域の位置情報を有する四分木を探索することによって、前記音源オブジェクトの位置を特定する位置特定手段と、
して機能させ、
前記再生手段に、前記位置特定手段による位置の特定結果に応じて、前記音声データの加工を行わせ
前記四分木のノードのそれぞれは、前記小領域の位置情報を有している
ことを特徴とする仮想空間における音声生成プログラム。
【請求項2】
請求項1において、
前記コンピュータに、
所定の前記領域についての前記四分木を、ゲームの進行に応じて、予め構築された他の四分木に差し替えさせることを特徴とする仮想空間における音声生成プログラム。
【請求項3】
請求項1または請求項2において、
前記コンピュータに、
前記四分木を、ゲームの進行中に、新規に構築または再構築させることを特徴とする仮想空間における音声生成プログラム。
【請求項4】
請求項1から請求項3の何れかにおいて、
前記再生手段は、音声データの加工が可能な信号処理系統を複数設けて、前記信号処理系統を単独または階層的に繋いで前記音声データを処理する機能を有しており、
前記コンピュータに、
前記仮想空間における前記音声データの伝播経路に対応して、前記音声データまたは何れかの前記信号処理系統で処理された音声データを、前記信号処理系統に振り分けて、それぞれの信号処理系統に前記加工を行わせることを特徴とする仮想空間における音声生成プログラム。
【請求項5】
請求項4において、
前記領域は、建物を表すオブジェクトが備える壁によって区分された空間であり、
前記伝播経路は、前記壁を透過して伝播する音の伝播経路、前記壁に形成された開口から漏れ出て伝播する音の伝播経路、および前記音源オブジェクトから直接的に伝播する音の伝播経路の何れかであることを特徴とする仮想空間における音声生成プログラム。
【請求項6】
仮想空間に構築された複数の三次元の領域を示す情報を取得するステップと、
ひとつの前記領域の全体を内包する立体であるバウンディングボックスを前記領域毎に求めるステップと、
三次元形状の立体であるボクセルを複数個並べて、各バウンディングボックスを埋め尽くすステップと、
前記仮想空間の上下方向に対応する座標軸の方向において、最も下層に位置するボクセルを残して他のボクセルを取り除くステップと、
前記領域のそれぞれに対して行うステップであって、前記座標軸の方向から見た平面形状が、同方向から見た前記ボクセルの平面形状と相似、かつ相似比が2のべき乗となるように、対象の領域に対応する所定個数の前記ボクセルをまとめて合成立体を得る動作を、まとめられる前記ボクセルが対象の領域からなくなるまで繰り返すステップと、
前記合成立体、およびまとめられずに残った前記ボクセルに基づいて、前記領域を表す四分木のグリッドを構築するステップと、
を含むことを特徴とする四分木の生成方法。
【請求項7】
請求項6において、
前記座標軸の方向における座標値に基づいて、前記四分木のグリッドのクラスタリングを行って階層化するステップを含むことを特徴とする四分木の生成方法。
【請求項8】
請求項1から請求項5の何れかの、仮想空間における音声生成プログラムを記憶した記憶部と、
前記仮想空間における音声生成プログラムを実行する制御部と、
を備えたことを特徴とする音声生成装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、仮想空間における音声生成プログラム、四分木の生成方法、および音声生成装置に関する。
【背景技術】
【0002】
近年のゲームプログラムでは、三次元の動画像を用いつつ、より正確な音響表現を試みることで、ユーザに豊かなバーチャル体験を提供している(例えば特許文献1を参照)。特許文献1の例では、より正確な音響表現を行うために、仮想三次元空間内にオブジェクトを配置し、音響シミュレーションをすることで音響信号を生成している。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2000−267675号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1のような音響表現を行うには、まず、音源やリスナーの位置を特定する必要がある。しかしながら、動画像の複雑さが増すにつれて、音源やリスナーの位置を特定するためのCPUの占有時間も増大傾向にある。
【0005】
そこで、本発明は、音響表現にかかるオブジェクトの位置特定を高速に行えるようにすることを目的とする。
【課題を解決するための手段】
【0006】
第1の発明は、
コンピュータを、
仮想空間内の仮想の音源として設定されている音源オブジェクトが発した音として音声データを再生する再生手段と、
前記仮想空間内の所定領域に含まれる小領域の位置情報を有する四分木を探索することによって、前記音源オブジェクトの位置を特定する位置特定手段と、
して機能させ、
前記再生手段に、前記位置特定手段による位置の特定結果に応じて、前記音声データの加工を行わせ
前記四分木のノードのそれぞれは、前記小領域の位置情報を有している
ことを特徴とする仮想空間における音声生成プログラムである。
【0007】
また、前記発明において、前記コンピュータに、所定の前記領域についての前記四分木を、ゲームの進行に応じて、予め構築された他の四分木に差し替えさせるようにしてもよい。
【0008】
また、前記発明において、前記コンピュータに、前記四分木を、ゲームの進行中に、新規に構築または再構築させるようにしてもよい。
【0009】
また、前記発明において、前記再生手段は、音声データの加工が可能な信号処理系統を複数設けて、前記信号処理系統を単独または階層的に繋いで前記音声データを処理する機能を有しており、前記コンピュータに、前記仮想空間における前記音声データの伝播経路に対応して、前記音声データまたは何れかの前記信号処理系統で処理された音声データを、前記信号処理系統に振り分けて、それぞれの信号処理系統に前記加工を行わせるようにしてもよい。
【0010】
また、前記発明において、前記領域は、建物を表すオブジェクトが備える壁によって区分された空間であり、前記伝播経路は、前記壁を透過して伝播する音の伝播経路、前記壁に形成された開口から漏れ出て伝播する音の伝播経路、および前記音源オブジェクトから直接的に伝播する音の伝播経路の何れかとしてもよい。
【0011】
また、第2の発明は、仮想空間に構築された複数の三次元の領域を示す情報を取得するステップと、ひとつの前記領域の全体を内包する立体であるバウンディングボックスを前記領域毎に求めるステップと、三次元形状の立体であるボクセルを複数個並べて、各バウンディングボックスを埋め尽くすステップと、前記仮想空間の上下方向に対応する座標軸の方向において、最も下層に位置するボクセルを残して他のボクセルを取り除くステップと、前記領域のそれぞれに対して行うステップであって、前記座標軸の方向から見た平面形状が、同方向から見た前記ボクセルの平面形状と相似、かつ相似比が2のべき乗となるように、対象の領域に対応する所定個数の前記ボクセルをまとめて合成立体を得る動作を、まとめられる前記ボクセルが対象の領域からなくなるまで繰り返すステップと、前記合成立体、およびまとめられずに残った前記ボクセルに基づいて、前記領域を表す四分木のグリッドを構築するステップとを含むことを特徴とする四分木の生成方法である。
【0012】
また、前記発明において、前記座標軸の方向における座標値に基づいて、前記四分木のグリッドのクラスタリングを行って階層化するステップを含むようにしてもよい。
【0013】
また、第3の発明は、前記の何れかの仮想空間における音声生成プログラムを記憶した記憶部と、前記ゲームプログラムを実行する制御部とを備えたことを特徴とする音声生成装置である。
【発明の効果】
【0014】
本発明によれば、音響表現にかかるオブジェクトの位置特定を高速に行うことができる。
【図面の簡単な説明】
【0015】
図1】本実施形態のゲーム装置の構成を示すブロック図である。
図2】仮想空間に設けられた、建物を表すオブジェクトを示す。
図3】部屋等を内包するバウンディングボックスを示す。
図4】バウンディングボックス間のオーバーラップ部分を示す。
図5】バウンディングボックスをボクセルで埋めた状態を示す。
図6】領域の表面と接触するボクセルを示す。
図7】オーバーラップ部分と接触するボクセルを示す。
図8】各領域に対応したフロアグリッドを示す。
図9】フロアグリッドをまとめる工程を例示する。
図10図2の建物にかかる四分木グリッドを示す。
図11】四分木グリッドのクラスタリング過程を示す。
図12】バスの構成を模式的に示すブロック図である。
図13】仮想空間に設けられた、建物のオブジェクトの一部を平面的に示す。
図14】バスの階層構造を例示する。
【発明を実施するための形態】
【0016】
[実施形態]
以下、本発明の実施形態にかかる仮想空間における音声生成プログラム、四分木の生成方法、および音声生成装置について、図面を参照して説明する。なお、本発明の仮想空間における音声生成プログラムは、ゲームプログラムとして実装されている。また、音声生成装置は、ゲーム装置として実現されている。
【0017】
本実施形態で説明するゲームプログラムは、例えば、パーソナルコンピュータ、プレイステーション(登録商標)、XBox(登録商標)、PlayStation Vita(登録商標)などのゲーム装置において実行される。
【0018】
このゲームプログラムによるゲームでは、各ユーザの操作を受けて、プレイヤキャラクタを三次元の仮想ゲーム空間(以下、単に仮想空間という)で活動させたり、プレイヤキャラクタ同士でグループを編成して様々なアクションを行わせたりする。より具体的には、このゲームは、プレイヤキャラクタが敵キャラクタを攻撃して倒していく対戦型のアクションゲームである。
【0019】
〈ゲーム装置の構成〉
ゲーム装置5は、ユーザの操作に基づいて所定のゲームを実行する。図1は、本実施形態のゲーム装置5の構成を示すブロック図である。ゲーム装置5には、ディスプレイ61、スピーカ62およびコントローラ63が外部接続または内蔵される。ゲーム装置5では、例えば、インストールされたゲームプログラムおよびゲームデータに基づいてゲームが進行する。なお、ゲーム装置5同士も、通信ネットワーク(図示を省略)または近距離無線通信装置(図示せず)を用いて、互いにデータ通信を行うことができる。
【0020】
ゲーム装置5は、ネットワークインターフェース51、グラフィック処理部52、オーディオ処理部53、操作部54、記憶部55および制御部56を有する。ネットワークインターフェース51、グラフィック処理部52、オーディオ処理部53、操作部54および記憶部55は、バス59を介して制御部56と電気的に接続されている。
【0021】
ネットワークインターフェース51は、例えばゲーム装置5や外部のサーバ装置(図示を省略)との間で各種データを送受信するために、前記通信ネットワークに通信可能に接続される。
【0022】
グラフィック処理部52は、制御部56から出力されるゲーム画像情報に従って、プレイヤキャラクタおよび仮想空間に関する各種オブジェクトを含むゲーム画像を、動画形式で描画する。グラフィック処理部52はディスプレイ61と接続されており、動画形式に描画されたゲーム画像は、ゲーム画面としてディスプレイ61上に表示される。
【0023】
このゲームプログラムの下では、ゲーム画像を構築する際に、グラフィック処理部52は、ユーザの視点として仮想のカメラ(以下、仮想カメラVC)を仮想空間に設定する。グラフィック処理部52は、あたかも、仮想カメラVCで仮想空間内を撮影したかのように、3D(三次元)の映像(動画像)を構成してディスプレイ61に表示する。
【0024】
オーディオ処理部53は、制御部56の指示に従ってデジタルのゲーム音声を再生および合成する。オーディオ処理部53は、スピーカ62と接続されており、再生および合成されたゲーム音声は、アナログ信号に変換されたのちにスピーカ62から出力される。
【0025】
操作部54は、コントローラ63と接続され、操作入力に関するデータをコントローラ63との間で送受信する。例えば、ユーザは、コントローラ63に設けられたボタン等の操作子(図示略)を操作することにより、ゲーム装置5に操作信号を入力する。
【0026】
記憶部55は、HDD、RAMおよびROM等で構成される。記憶部55は、ゲームプログラムおよびゲームデータを記憶することができる。また、記憶部55には、他のゲーム装置5から受信した他アカウント情報なども記憶される。
【0027】
制御部56は、CPUおよび半導体メモリを含むマイクロコンピュータで構成され、自装置5の動作を制御する。例えば、制御部56は、前記ゲームプログラムを実行することにより、グラフィック処理部52およびオーディオ処理部53を動作させる。
【0028】
また、制御部56は、後述の音響表現をサポートするために、仮想空間内の仮想の音源と、プレイヤキャラクタ(あるいは後述の仮想マイクL)との位置関係を特定する機能を有している。以下、この機能について詳述する。
【0029】
〈制御部の詳細〉
このゲームプログラムの下では、制御部56は、プレイヤキャラクタ等の位置特定のために、階層型の四分木を用いる。四分木は、仮想空間内の所定領域に含まれる小領域の位置情報を有したデータである。このゲームプログラムでは、階層型の四分木は、予め構築されて、ゲームプログラムのデータとして組み込まれている。以下では、まず、四分木の構築方法を、具体例を用いて説明する。
【0030】
図2は、仮想空間VSに設けられた、建物を表すオブジェクトを示している。この建物のオブジェクトは、壁によって仮想空間VSを複数の三次元の領域(部屋)に区分している。この例では、建物の床は、X−Z平面に平行である。すなわち、この建物では、床に垂直な方向がY軸である。
【0031】
この建物は、1階と2階の2層構造であり、合計4つの領域がある。1階は、1つの縦長の廊下(領域)と1つの正方形の部屋(領域)で構成されている。また、2階も1つの縦長の廊下と1つの正方形の部屋で構成されている。すなわち、1階と2階とは、高さが異なっているが、構造は同じである。この建物に対して四分木を構築するには、以下のステップをコンピュータに実行させる。
【0032】
ステップ1:
この建物のオブジェクトについて四分木を構築するには、まず、プレイヤキャラクタが動作する仮想空間VSに構築された複数の三次元の領域(部屋或いは廊下、以下、部屋等という)を示す情報を取得する。次に、ひとつの領域の全体を内包する、最小の立体であるバウンディングボックスを領域ごとに求める(図3を参照)。
【0033】
バウンディングボックスには、例えば、いわゆる、軸平行境界ボックス(AABB:Axis-Aligned Bounding Box)を採用できる。この建物のオブジェクトには4つ領域があるので、図3に示すように、4つのバウンディングボックスB1〜B4が求められる。
【0034】
ステップ2:
次に、バウンディングボックスB1〜B4間のオーバーラップ部分Ovを取得する(図4参照)。この例では、1階と2階の境界がオーバーラップ部分Ovである。
【0035】
ステップ3:
次に、それぞれのバウンディングボックスB1〜B4を、所定サイズのボクセル(voxel)を並べて埋め尽くす(図5参照)。それぞれのボクセルは、三次元形状の立体(例えば立方体や直方体)であり、何れの領域に属しているかを示す情報を有している。これらのボクセルの大きさ(一辺の長さ)は、任意であるが、一例として、仮想空間VSにおける人の足サイズに合わせることが考えられる。
【0036】
ステップ4:
次に、各領域の表面(例えば床面や壁面)と接触するボクセルを求める(図6参照)。また、オーバーラップ部分Ovと接触するボクセルも求める(図7参照)。領域の表面とボクセルとの間などの接触判定は、例えば、ボクセルに外接する球面と、対象(床面等)との間にレイキャスト法を適用することで行える。なお、レイキャスト法の基本的な原理は、一方の参照点からもう一方の参照点に向かって仮想の光線を出して、その光線と交わるオブジェクトが存在するか否かを調べるというものである。
【0037】
ステップ5:
次に、Y軸方向において互いに重なっているボクセルについては、最も低い位置のボクセル(下層ボクセルという)を残して、高さのみが下層ボクセルと異なるボクセルを除去する。すなわち、仮想空間VSの上下方向に対応する座標軸(ここではY軸)の方向において、最も下層に位置するボクセルを残して他のボクセルを取り除く。この例では、部屋の床をラップするボクセルが得られる(図8参照)。なお、本明細書では、除去されずに残ったボクセルをフロアグリッドと呼ぶ。
【0038】
また、オーバーラップ部分Ovのボクセルが属する領域は、決定されていない。そこで、オーバーラップ部分Ovのボクセルとターゲット(部屋等)との間にレイキャスト法を適用して、所定領域に関連付ける。
【0039】
ステップ6:
次に、オブジェクトの位置特定を高速化するために、フロアグリッドに更に手を加える。具体的には、各領域のそれぞれのフロアグリッドに対して、2のべき乗個のフロアグリッドをまとめて、Y軸方向から見た平面形状が四角形となるように新たな立体を作る。
【0040】
詳しくは、Y軸の方向から見た平面形状が、Y軸方向から見たボクセルの平面形状と相似、かつ相似比が2のべき乗(2、ただしNは正整数)となるように、対象の領域における所定個数のボクセルをまとめて新たな立体(以下、合成立体という)を得る動作(以下、合成動作という)を行う。この合成動作は、まとめられるボクセルが対象の領域からなくなるまで繰り返す。
【0041】
図9にフロアグリッドをまとめる工程を例示する。図9は、図2の建物とは別の例である。この実施形態では、それぞれの合成動作において、合成立体の大きさが最大となるように相似比を決めている。
【0042】
図9の(A)に示すように、対象の領域Dには、5×3のフロアグリッドGがある。したがって、この領域では、相似比が4(=2、すなわち、N=2)の合成立体を作ることができない。一方、相似比が2(=2、すなわちN=1)の合成立体であれば、作ることができる。すなわち、この例では、相似比が2(=2、すなわちN=1)の合成立体が最大である。
【0043】
この例では、X−Z平面における原点に近い側から順に、相似比が2の合成立体SGを2つ確保できる(図9の(B)を参照)。相似比が2の合成立体を2つ確保すると、対象の領域において、まとめられずに残っているボクセルは、X軸、Z軸の何れの方向においても、最も狭い部分ではボクセル1つ分の幅しかない。
【0044】
したがって、残りのボクセルに関しては、最大の相似比が1(=20、すなわちN=0)であり、対象の領域には、まとめられるボクセルは残っていない(図9の(B)を参照)。よって、領域Dにおける合成動作は終了である。
【0045】
以上のようにして得た合成立体、およびまとめられずに残ったボクセルから、四分木グリッドを作成する。四分木グリッドは、仮想空間VSにおける位置情報をもつ、2次元の小領域の集合である。図10に、図2の建物にかかる四分木グリッドQGを示す。
【0046】
ステップ7:
次に、四分木グリッドを、高さ(ここではY軸の座標値)を基準としてクラスタリングすることによって階層化する。図11に、四分木グリッドのクラスタリングの過程を示す。図11の(A)は、クラスタリングの対象となる四分木グリッドを示している。この例では、6つの四分木グリッドが存在する(図11の(A)における1〜6を参照)。
【0047】
また、図11の(B)は、グリッドのY軸方向の座標値に基づいて、最短距離法(nearest neighbor method)によって得た樹形図である。そして、図11の(C)は、クラスタリングの結果を例示している。クラスタリングを行う際に、高さ方向の閾値を適宜設定することによって、任意の階層に分類が可能である。図11の(B)に示した点線が閾値に対応している。この例では、四分木グリッドは、Y軸方向において3層に分類されている。図11では、階層の違いをハッチングで識別してある。
【0048】
クラスタリングされたそれぞれの四分木グリッドは、最大4つのノードを持った木構造のデータ(すなわち四分木)に、容易に変換できる。この四分木は、仮想空間VS内の所定領域に含まれる小領域の位置情報を有している。
【0049】
以上により、階層型の四分木の完成である。完成した階層型の四分木のデータ(ゲームデータ)は、ゲームプログラムの本体(コード部分)やその他のゲームデータとともに記録媒体やサーバ上の記憶装置に書き込まれる。
【0050】
四分木を用いることによって、プレイヤキャラクタ等が何れの領域の何れの小領域に存在するかを特定することができる。具体的には、プレイヤキャラクタ等の位置情報に基づいて、四分木のノードを順次たどって行くことで、プレイヤキャラクタが、何れの領域の何れの小領域に居るのかを特定することができる。四分木を用いた位置の特定は、全ての領域を探索する必要がないので、制御部56(すなわちCPU)の処理コストは低くなる。
【0051】
〈オーディオ処理部の詳細〉
既述の通り、オーディオ処理部53は、ゲーム音声の再生および合成を行う。この明細書における、ゲーム音声とは、ゲーム中にスピーカ62から流れる音声であり、例えば、BGM(Back Ground Music)や、ユーザの操作に応じて流れる効果音が上げられる。また、洞窟内の水たまりに天井から落ちてくる水滴の音、洞窟において入口から出口に向かう風の音、町の雑踏の音(通行人の声や付近を通過する自動車の音等)、森や草原に吹く風の音等の環境音もゲーム音声の一例である。
【0052】
また、このゲームプログラムでは、仮想空間VS内に音源(すなわち仮想の音源)として取り扱われるオブジェクト(以下、音源オブジェクトという)が存在する。音源オブジェクトの例としては、プレイヤキャラクタ、ゲームに登場する敵キャラクタ(モンスターなど)、プレイヤキャラクタの仲間として登場するキャラクタ、プレイヤキャラクタが持っているアイテム(例えば武器など)、仮想空間VSに設置された機械や設備などが挙げられる。
【0053】
オーディオ処理部53は、ゲーム音声の再生や合成の機能を発揮する、いわゆるミドルウエアを含んでいる。オーディオ処理部53のミドルウエアでは、バスと呼ばれる信号処理系統を複数設けることができる。図12は、バスの構成を模式的に示すブロック図である。何れのバスも同様の構成を有している。
【0054】
各バスは、エフェクタと呼ばれる、音声データの処理を行うモジュールを備えている。エフェクタは、与えられた音声データに対して、反響(Reverb)効果を付加する処理、フィルター処理(例えばローパスフィルターによる処理)等の処理を行うことができる。また、各バスでは、更に音量の調整も行うことができる。
【0055】
オーディオ処理部53では、バスを単独で使用することもできるし、バスを階層的に接続することによって、何れかのバスで処理された信号を別のバスが受け取って、更にその信号に処理を加えるといった使い方もできる。つまり、オーディオ処理部53では、複数種類の音声データを作ることができる。
【0056】
オーディオ処理部53内のバスで作られた複数種類の音声データは、マスターバス(以下、参照符合を付けてマスターバスMBと言う)と呼ばれる信号処理系統に送られる。マスターバスMBでは、前記複数種類の音声データの合成および音量調整を行う。
【0057】
そして、オーディオ処理部53は、マスターバスMBで処理された信号を、アナログ信号に変換したのちにスピーカ62に出力する。これにより、スピーカ62からは、ゲーム音声が出力(再生)される。
【0058】
オーディオ処理部53は、ゲーム音声の再生の際に、仮想空間VSに仮想のマイク(以下、仮想マイクL)を設定する。オーディオ処理部53は、音源オブジェクトから発せられた音声を、あたかも仮想マイクLで集音したかのような音響表現で、スピーカ62に出力する。すなわち、仮想マイクLは、仮想の聴取者であり、オーディオ処理部53のミドルウエアにおいては、音像定位の基準点である。
【0059】
本実施形態では、仮想マイクLは、仮想カメラVCと同じ位置に設定されている。ユーザは、仮想カメラVC位置にいる感覚でゲームをプレイしているので、ユーザにとって臨場感のある音声が再生されることになる。なお、仮想カメラVCの位置は、プレイヤキャラクタの近傍に設定されている。したがって、プレイヤキャラクタの位置と、仮想マイクLの位置は概ね同じと考えて差し支えない。
【0060】
このゲームプログラムでは、仮想マイクLで集音したような音響表現をオーディオ処理部53において行うために、仮想空間VSにおける音声データの伝播経路に対応してバス(信号処理系統)を振り分けている。この振り分けは、仮想空間VSの構成(オブジェクトの配置)に応じて定められている。以下では、この振り分けについて具体例を用いて説明する。
【0061】
〈バスの振り分け〉
図13は、仮想空間VSに設けられた、建物のオブジェクトの一部を平面的に表している。以下では、この建物のオブジェクトにおけるバスの振り分けを例示する。なお、この建物の各部屋(領域)に対しては、上述の方法により前記四分木が構築されているものとする。
【0062】
図13に示すように、この建物は、4つの部屋(領域)R0,R1,R2,R3を有している。部屋R0と部屋R1との間には、ドアD01がある。同様に、部屋R1と部屋R2との間には、ドアD12があり、部屋R1と部屋R3との間にはドアD13がある。これらのドアD01,D12,D13は、何れも開放状態である。すなわち、これらのドアD01,D12,D13がある部分は、壁に形成された開口と見なしてよい。
【0063】
部屋R0には、プレイヤキャラクタが立っている。プレイヤキャラクタが立っている位置の近傍には、仮想マイクLが設定されている。また、部屋R0には、仮想の音源である音源オブジェクトS0も存在する。ここでは、音源オブジェクトS0は、敵のキャラクタ(例えばモンスターなど)である。
【0064】
音源オブジェクトS0からは、プレイヤキャラクタ(仮想マイクL)に向かって咆号等の音声が発せられている。同様に、部屋R1には音源オブジェクトS1が存在し、部屋R2には音源オブジェクトS2が存在し、部屋R3には音源オブジェクトS3が存在する。
【0065】
ゲームプログラムの開発時に音響表現を担当する開発者(以下、サウンドデザイナという)が、部屋R0にプレイヤキャラクタが居る場合の音響表現として、以下のようにデザインしたいと考えたとする。
【0066】
デザイン(1) 音源オブジェクトS0の音は、直接的に仮想マイクL(プレイヤキャラクタ)に伝播する。
【0067】
デザイン(2) 音源オブジェクトS1の音は、部屋R1内で反響および減衰しつつドアD01から部屋R0に漏れ出る。音は、ドアD01から漏れ出るときに、そのスペクトルが変化する。ドアD01から漏れ出た音は、仮想マイクLまで減衰しながら伝播する。
【0068】
デザイン(3) 音源オブジェクトS2の音は、部屋R2内で反響および減衰しつつドアD12から部屋R1に漏れ出る。音は、ドアD12から漏れ出るときに、スペクトルが変化する。ドアD12から漏れ出た音は、部屋R1内で反響および減衰しつつドアD01から部屋R0に漏れ出る。この音は、ドアD01から漏れ出るときにもスペクトルが変化する。ドアD01から漏れ出た音源オブジェクトS2からの音は、減衰しながら仮想マイクLまで伝播する。
【0069】
デザイン(4) 音源オブジェクトS3の音は、部屋R3内で反響および減衰しつつドアD13から部屋R1に漏れ出る。音は、ドアD13から漏れ出るときに、スペクトルが変化する。ドアD13から漏れ出た音は、部屋R1内で反響および減衰しつつドアD01から部屋R0に漏れ出る。この音は、ドアD01から漏れ出るときにもスペクトルが変化する。ドアD01から漏れ出た音源オブジェクトS3からの音も、減衰しながら仮想マイクLまで伝播する。
【0070】
デザイン(5) 何れの壁も、音源オブジェクトS0,S1,S2,S3の音を透過させない。
【0071】
例えば、各部屋R0,R1,R2,R3から漏れ出す音は、ドアの近傍に音源があると見なせば容易に実現できる。すなわち、サウンドデザイナは、各ドアD01,D12,D13の近傍に、新たな音源として、バスを割り当てればよい。また、音の伝播経路が複数の領域を通る場合には、バスを階層構造にすればよい。
【0072】
図13には、バスSR0_0,SR1_0,SR1_1が対応する音源の位置、およびそれらの音源からの音の伝播経路(実線および破線)を記載してある。すなわち、オーディオ処理部53には、マスターバスMBとともに、3つのバスSR0_0,SR1_0,SR1_1が設けられている。図13の伝播経路を表現するためのバスの階層構造を図14に例示する。図14におけるS0〜S3は、音源オブジェクトS0〜S3に対応する音声データである。
【0073】
バスSR1_0は、ドアD12から部屋R1へ漏れ出す音を表現する音源として機能させる。バスSR1_0では、入力された音声データに対して、部屋R2における反響効果の付加、部屋R2内での音量減衰効果の付加(音量の調整)、およびドアD12から漏れ出すときの音のスペクトル変化を表現するためのフィルター処理を行う。
【0074】
このバスSR1_0には、図14に示すように、音源オブジェクトS2に対応した音声データが与えられている。したがって、バスSR1_0によって、ドアD12から漏れ出した音源オブジェクトS2の音を表現できる。
【0075】
なお、バスSR1_0では、音声データを加工する際に、音源オブジェクトS2の位置、ドアD12(開口)の位置などの位置情報(属する部屋とその部屋における位置の情報)が必要になる。このような位置情報は、前記四分木を探索することで高速に得ることができる。オブジェクトの位置情報の特定に四分木の探索を利用するのは、他のバスSR0_0,SR1_1でも同様である。勿論、必要とされる位置情報は、バスによって変わってくる。
【0076】
バスSR1_1は、ドアD13から部屋R1へ漏れ出す音を表現する音源として機能させる。バスSR1_1では、部屋R3における反響効果の付加、部屋R3内での音量減衰効果の付加、およびドアD13から漏れ出すときの音のスペクトル変化を表現するためのフィルター処理等を行う。
【0077】
このバスSR1_1には、図14に示すように、音源オブジェクトS3に対応した音声データが与えられている。したがって、ドアD13から漏れ出した音源オブジェクトS3の音をバスSR1_1によって表現できる。
【0078】
また、バスSR0_0は、ドアD01から部屋R0へ漏れ出す音を表現する音源として機能させる。バスSR0_0では、部屋R1における反響効果の付加、部屋R1内およびドアD01から仮想マイクLに至るまでの伝播経路における音量減衰効果の付加を行う。更に、バスSR0_0はドアD01から漏れ出すときの音のスペクトル変化を表現するためのフィルター処理を行う。
【0079】
このバスSR0_0には、図14に示すように、音源オブジェクトS1に対応した音声データ、バスSR1_0の出力、およびバスSR1_1の出力が合成されて与えられている。音源オブジェクトS1に対応した音声データが、バスSR0_0が与えられることで、ドアD01から漏れ出した音源オブジェクトS1の音が表現される。
【0080】
更に、バスSR1_0で処理された音源オブジェクトS2の音声データが、バスSR0_0に与えられることで、部屋R2から部屋R1に漏れ出した音源オブジェクトS2の音に対して、部屋R1における反響や減衰が更に加わった状態が表現される。同様に、バスSR1_1で処理された音源オブジェクトS3の音声データが、バスSR0_0に与えられることで、部屋R3から部屋R1に漏れ出した音源オブジェクトS3の音に対して、部屋R1における反響や減衰が更に加わった状態が表現される。
【0081】
そして、マスターバスMBには、音源オブジェクトS1に対応した音声データが与えられている。音源オブジェクトS0の音声データが、直接的にマスターバスMBに入力されることで、デザイン(1)が実現される。
【0082】
また、マスターバスMBには、バスSR0_0の出力も与えられている。バスSR0_0の出力は、音源オブジェクトS1,S2,S3の音声データのそれぞれに対して、それらの伝播経路における減衰や音のスペクトル変化が加味されたものである。したがって、デザイン(2),(3),(4)が実現される。
【0083】
〈オーディオ処理部等の動作〉
ゲームプログラムの実行中は、制御部56は、プレイヤキャラクタが何れの領域の何れのグリッドに存在するかを適宜、前記四分木を用いて判定している。また、仮想空間VS内を移動する音源オブジェクトについても、前記四分木を用いて、その位置を判定している。
【0084】
ここで、例えば、プレイヤキャラクタが部屋R1に入ったとする。このときのプレイヤキャラクタの位置は、制御部56が前記四分木を用いて特定している。同様に、各音源オブジェクトS0,S1,S2,S3の位置も、制御部56が前記四分木を用いて特定している。
【0085】
なお、正確な音響表現を行うには、プレイヤキャラクタと音源オブジェクトとの間に、音を遮蔽するものがあるか否かといった判定(いわゆる当たり判定のひとつ)も必要となる。このゲームプログラムの下では、制御部56がこの当たり判定を行う。この例では、プレイヤキャラクタと音源オブジェクトとが同じ部屋にいる場合にのみ、両者の間にレイキャスト法を適用して、遮蔽の有無を判定している。
【0086】
制御部56が特定した位置の情報は、制御部56からオーディオ処理部53に送られている。オーディオ処理部53は、音の伝播経路における音響特性に応じて、各バスを機能させる。ここで、考慮される音響特性は、例えば、反響の起こりやすさ、音が開口を通過する際の音のスペクトル変化度合い、音源からリスナー(仮想マイクL)までの距離に応じた音量の減衰量等である。
【0087】
例えば、部屋R0にプレイヤキャラクタが居る場合には、図14のように構成されたバスSR0_0,SR1_0,SR1_1が用いられる。そのため、プレイヤキャラクタ(仮想マイクL)の位置では、音源オブジェクトS0からの音は、直接的に仮想マイクLに伝わるようにオーディオ処理部53が音声データを生成する。
【0088】
また、音源オブジェクトS2からの音は、部屋R2内の空間、ドアD12における開口、部屋R1内の空間、ドアD10における開口、および部屋R0内の空間を経由して仮想マイクLに伝播したように、バスSR1_1とバスSR0_0とによって、加工が施される。
【0089】
同様に、音源オブジェクトS3からの音は、部屋R3内の空間、ドアD13における開口、部屋R1内の空間、ドアD10における開口、および部屋R0内の空間を経由して仮想マイクLに伝播したように、バスSR1_1とバスSR0_0とによって、加工が施される。
【0090】
以上のようにして、部屋R0にプレイヤキャラクタが居る場合における音響表現として、デザイン(1)〜(5)が実現される。
【0091】
以上をまとめると、本件発明は、コンピュータ(ゲーム装置5)を、仮想空間内の仮想の音源として設定されている音源オブジェクトが発した音として音声データを再生する再生手段(オーディオ処理部53)と、前記仮想空間内の所定領域に含まれる小領域の位置情報を有する四分木を探索することによって、音源オブジェクトの位置を特定する位置特定手段(制御部56)として機能させる。
【0092】
そして、本件発明は、前記再生手段(オーディオ処理部53)に、前記位置特定手段(制御部56)による位置の特定結果に応じて、前記音声データの加工を行わせることを特徴とするゲームプログラムである。
【0093】
〈本実施形態の効果〉
以上のように、本実施形態では、階層型の四分木を用いることによって、音響表現にかかるオブジェクト(例えばプレイヤキャラクタや音源オブジェクト)の位置の特定を高速に行うことが可能になる。
【0094】
また、従来例のようにシミュレーション結果に従って音響表現がなされる場合には、例えば、何らかの音を強調させたいとか、弱めたいとか、或いはなくしたといったサウンドデザイナの意図を反映させる余地がなかった。それに対して、本実施形態では、バスを仮想空間VSの音源として、適宜、割り当てることで、サウンドデザイナが容易に音響効果をデザインすることが可能になる。
【0095】
[その他の実施形態]
なお、オブジェクトがゲームの進行に応じて変形する場合(例えば壁の一部が壊れてしまう場合など)には、それぞれの変形状態に対応する四分木を予め用意しておくとよい。そして、所定の領域についての四分木を、ゲームの進行に応じて、予め構築された他の四分木に差し替えさせるようにするとよい。
【0096】
また、ゲームの実行中に、四分木を新規に構築または再構築してもよい。こうすることで、ゲーム中に任意に変形する領域においても、高速な位置判定を実施できる。ゲーム実行中に四分木を構築する場合は、例えば、制御部56によって前記四分木を構築してもよいし、オーディオ処理部53のミドルウエアに前記四分木を構築する機能を実装してもよい。また、ゲームプログラムがオンラインゲーム用である場合には、ゲームの実行中に、前記サーバ側で前記四分木を構築してもよい。
【0097】
また、〈バスの振り分け〉の章では、四分木を用いて音源オブジェクト等の位置を特定する旨を説明したが、その他の方法を用いて位置を特定してもよい。
【0098】
また、オーディオ処理部53の各バスでは、壁を透過して伝播する音を想定して、フィルター処理や音量調整を行ってもよい。
【0099】
また、ゲームプログラムは、いわゆるオンラインゲーム用のゲームプログラムとして実装してもよい。ゲームプログラムがオンラインゲーム用である場合には、グラフィック処理部52やオーディオ処理部53における処理は、サーバ側で行ってもよいし、サーバ側とクライアント(ゲーム装置5)側とで分担してもよい。
【0100】
これらの他の実施形態を採用した場合においても、本発明の作用効果は発揮される。また、本実施形態と他の実施形態、および他の実施形態同士を適宜組み合わせることも可能である。
【符号の説明】
【0101】
5 ゲーム装置(コンピュータ)
52 グラフィック処理部(表示手段)
53 オーディオ処理部(再生手段)
55 記憶部
56 制御部(位置特定手段)
S0,S1,S2,S3 音源オブジェクト
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14