(58)【調査した分野】(Int.Cl.,DB名)
前記加工手段は、前記最短ルートが異なる属性の前記空間を通過する場合、当該空間それぞれに設定された前記特性を合成して前記ゲーム音を加工することを特徴とする請求項1又は2記載の効果音加工プログラム。
【発明を実施するための形態】
【0012】
以下、本発明の実施の形態について図面を用いて説明する。
【0013】
(ゲームシステム)
図1を参照して、本発明の実施の形態に係るゲームプログラムを実行するゲームシステム100を説明する。ゲームシステム100は、ゲーム機(コンピュータ)1と、コントローラ120、外部機器であるモニタ138、外部メモリ145、スピーカ144および記録媒体148とを備える。
【0014】
ゲーム機1は、CPU(Central Processing Unit)131、RAM(Random Access Memory)132、バス133、GPU(Graphics Processing Unit)134、デコーダ137、I/Oポート139、DRV(Drive)140、SP(Sound Processor)142、増幅器143、ROM(Read Only Memory)146および通信制御部147などを備える一般的なゲーム装置である。CPU131は、全体の動作を制御する。RAM132は、ゲームの進行に応じて各種のデータを記憶する。ROM146は、このゲーム機1を起動するとともに、基本的な機能を実現するためのシステムプログラムを記憶する。GPU134は、GP(Graphics Processor)136とRAM135を備えてゲーム空間を描画する。
【0015】
本発明の実施の形態において、ゲームプログラムはゲーム機1で実行される場合について説明するが、これに限られない。ゲームプログラムは、CPU、メモリなどを備えるコンピュータであればどのような装置で実行されても良い。
【0016】
本発明の実施の形態に係るゲームプログラムは、記録媒体(プログラム記憶部)148に記録される。ゲーム機1は、DRV140に挿入された記録媒体148からゲームプログラムを読み出して実行することにより、GPU134が描画したゲーム空間の画像がデコーダ137を介してモニタ138に出力されるとともに、SP142で処理された効果音などが増幅器143を介してスピーカ144に出力される。記録媒体148は、DVD、CD、ハードディスクなどが考えられる。ゲーム機1が通信ネットワークに接続されている場合、記録媒体148は、通信ネットワーク上の記録媒体であっても良い。ゲーム機1が通信ネットワークに接続される場合、通信制御部147が通信ネットワークとの通信を制御する。
【0017】
コントローラ120は無線あるいは有線でゲーム機1に接続される。プレイヤが、コントローラ120の操作ボタンやスティックなどの操作子郡121を操作すると、CPU131は、IOポート139などを介して、プレイヤの操作情報を取得し、その操作情報に基づいて、プレイヤオブジェクト、ゲーム空間などを制御する。プレイヤの操作情報は例えば、歩く、剣を構える、振り向く、アイテムを取得するなどの、プレイヤオブジェクトの動作に関する指示や、メニューの操作などの、ゲームの進行に関する指示である。また、コントローラ120はスピーカ122を備えて、ゲーム機1から受信した効果音などのゲーム音を出力する。
【0018】
ゲームの進行度合いは外部メモリ145にセーブデータとして保存することができる。CPU131は外部メモリ145からセーブデータを読み出して、プレイヤにゲームを途中からプレイさせることができる。
【0019】
なお、ゲームは、ゲームプログラムおよびゲーム機1で構成されるゲームシステム100が、ユーザの操作に応じた処理を実行することで進行する。
【0020】
(ゲーム内容)
次に、本実施の形態におけるゲームプログラムによって提供されるゲームについて説明する。
【0021】
本ゲームは、プレイヤがプレイヤキャラクタを操作して3次元の仮想空間であるダンジョンあるいは建物内等(以下まとめて「ダンジョン」とする)を探索するゲームである。
図2に、プレイヤキャラクタがダンジョンを探索しているゲーム画面の例を示す。同図に示すゲーム画面には、プレイヤキャラクタ50とダンジョン内に配置されたアイテム51が示されている。プレイヤキャラクタ50は、ダンジョン内を探索してアイテム51などを取得し、ゴールを目指す。図示していないが、ダンジョン内にはプレイヤキャラクタを攻撃してくるモンスターなどのNPC等(ノンプレイヤーキャラクター)が配置されて、プレイヤキャラクタのダンジョン探索を妨害する。また、ダンジョン内にはメメントと呼ばれるメメントオブジェクトが存在し、メメントはプレイヤキャラクタにメッセージを語りかけてくる。さらに、オンラインプレイ時には、同じダンジョン内に他のプレイヤが操作する他のプレイヤキャラクタも存在する。
【0022】
プレイヤキャラクタが探索するダンジョンは、プレイヤキャラクタがダンジョン内に入る度に自動的に生成される。
図3に、自動的に生成されたダンジョンのマップの平面図の例を示す。
図3に示すように、本ゲームは、正方形のマス(ユニット)を基本単位とし、マスをつなげてマップを構成する。なお、プレイヤに不自然さを感じさせないために、マスとマスのつなぎ目はゲーム画面上に表示しない。本ゲームのダンジョンは、平面的な広がりのみでなく、高さ方向にも移動可能な3次元的に広がる空間である。したがって、基本単位のマスは3次元の直方体または立方体であり、直方体または立方体の面同士をつなげてマップを構成しているが、簡単のため以下の説明ではマスを2次元の正方形として説明する。
【0023】
(ゲーム装置)
次に、本実施の形態におけるゲームプログラムをゲーム機が実行することで構成されるゲーム装置について説明する。
【0024】
図4は、本実施の形態におけるゲームプログラムによって構成されるゲーム装置の構成を示す機能ブロック図である。同図に示すゲーム装置は、マップ生成部31、ゲーム進行制御部32、サウンド処理部33、描画処理部34、およびゲームデータ蓄積部35を備える。
【0025】
マップ生成部31は、プレイヤキャラクタが行動する仮想の3次元ゲーム空間を生成する。具体的には、プレイヤキャラクタが移動可能な範囲である活動空間(ダンジョン)を1マス単位で並べて生成し、ダンジョン内にテーマに沿ったテクスチャを貼り、光源を設置し、アイテムやNPCを配置する。また、マスの属性に応じて環境音や残響特性などの音の特性を設定する。音の特性の設定については後述する。
【0026】
ゲーム進行制御部32は、コントローラ120で入力されたプレイヤの操作に応じてプレイヤキャラクタを制御するとともに、予め設定された処理内容でNPC等を制御し、ゲームを進行させる。
【0027】
サウンド処理部33は、ゲームの進行に合わせて効果音、BGM、音声などをスピーカ122,144に出力する。サウンド処理部33は、距離測定部331、エフェクト部332、および出力部333を備え、聴音位置であるプレイヤキャラクタとNPCなどの発音体までの距離に応じて発音体が発する効果音を減衰させる。また、本実施の形態では、ゲーム音をTVなどのスピーカ144から出力するか、コントローラ120のスピーカ122から出力するかを選択可能として、スピーカ122からゲーム音を出力するときは、スピーカ122の特性に合うようにゲーム音を加工して出力する。効果音の減衰処理、コントローラ120のスピーカ122に出力する処理については後述する。
【0028】
描画処理部34は、ゲーム空間、プレイヤキャラクタ、NPCなどをレンダリングして画像を生成しモニタ138に出力する。
【0029】
ゲームデータ蓄積部35は、プレイヤキャラクタ、モンスターキャラクタなどのモデリングデータ、テクスチャデータ、効果音データ、BGMデータなどのゲームの進行に必要なデータを蓄積する。また、装備や武器の素材に応じて合成する効果音の元となる素材ごとの元の音データを蓄積する。効果音の合成については後述する。
【0030】
(効果音の減衰処理)
次に、効果音の減衰処理について説明する。
【0031】
本実施の形態では、NPCから発生する効果音(鳴き声や足音など)について、プレイヤキャラクタとNPCとの間の距離に応じて効果音の音量を調節する。ダンジョン内では、壁などで音が遮られる場合もあるので、音がダンジョン内の空間中を伝達する距離を算出し、算出した距離に応じて効果音を減衰処理する。なお、以下の説明では、仮想ゲーム空間上のプレイヤキャラクタの位置が聴音位置であるものとする。
【0032】
図5は、サウンド処理部33による効果音の減衰処理の流れを示すフローチャートである。
【0033】
NPCなどの発音体が音を発して効果音が再生されるとき、距離測定部331はプレイヤキャラクタと発音体との距離を測定する(ステップS11)。本実施の形態では、発音体からプレイヤキャラクタまで音が伝達する最短ルートを求め、最短ルートにおいて発音体が存在するマスとプレイヤキャラクタがいるマスの間に存在するマスの数をカウントし、マスの数に基づいてプレイヤキャラクタと発音体間の距離を求める。プレイヤキャラクタと発音体とを結んだ直線が壁などの音を遮るマスを通る場合は、そのマスを迂回する最短ルートを探し、そのルートが通るマスの数に基づいて距離を求める。距離の測定の詳細については後述する。
【0034】
プレイヤキャラクタと発音体間の距離が求まると、エフェクト部332はゲームデータ蓄積部35から発音体が発生する効果音に対応するゲーム音データを読み出し、読み出したデータに対して距離に応じた減衰処理を施す(ステップS12)。本実施の形態では、
図6に示すリバーブ(残響音)、全体の音量、低音それぞれについて異なる減衰特性を用いて音の減衰処理を行う。
図6の横軸がプレイヤキャラクタと発音体間の距離を示し、縦軸が音量レベルを示している。全体の音量と比較して、リバーブは減衰しにくく、低音は減衰しやすくなっている。距離測定部331がプレイヤキャラクタと発音体との間の距離を求めると、求めた距離に応じたリバーブ、全体の音量、低音のそれぞれの減衰量を得て、発生する効果音のそれぞれの成分を得られた減衰量に応じて減衰させる。
【0035】
プレイヤキャラクタと発音体との間に壁が存在する場合は、エフェクト部332はゲーム音データに対して音をこもらせるエフェクト処理を施す(ステップS13)。具体的には、フィルタを用いてゲーム音データの高音成分の音量レベルを下げる。
【0036】
以上の処理により、減衰処理、エフェクト処理が施された効果音は出力部333から出力される。
【0037】
(距離の測定)
図7,8は、ダンジョン内のプレイヤキャラクタと発音体との距離をマスの数により求める様子を示す説明図である。
図7(a)及び
図8(a)は、ダンジョンを上から見た平面図であり、
図7(b)及び
図8(b)は、プレイヤキャラクタのマスと発音体のマスにおいてダンジョンを横から見た断面図である。
図7,8に示す1マスは、仮想ゲーム空間上において底面が8×8mで、高さがプレイヤキャラクタの3倍程度(6〜7m程度)の直方体である。以下では、1マスを8m×8mの正方形として説明する。
【0038】
図7の例では、プレイヤキャラクタPと2つの発音体S1,S2を示している。まず、プレイヤキャラクタPから発音体S1までの距離について説明する。プレイヤキャラクタPと発音体S1とを結ぶ点線上には壁が存在する。壁には音声通行不可の属性が設定される、あるいは壁の位置には仮想ゲーム空間が存在せずゲーム内のキャラクタや音声が通行できない。したがって、プレイヤキャラクタPと発音体S1との距離は壁を迂回した音声通行可の属性が設定されたマスを通る最短ルートに基づいて求める。プレイヤキャラクタPと発音体S1とを結ぶ最短ルートは5つのマスを通過している。また、プレイヤキャラクタPからルート上の隣接するマスまでの距離は6m、発音体S1からルート上の隣接するマスまでの距離は4mである。距離を求めるときは、通過したマスの数にマスの一辺の長さをかけたものに、プレイヤキャラクタから隣接するマスまでの距離と、発音体から隣接するマスまでの距離を加算する。
図7の例では、5マス×8m+6m+4mを計算し、プレイヤキャラクタPと発音体S1と間の距離は50mとなる。
【0039】
なお、プレイヤキャラクタと発音体とを結ぶルートが通過するマスの数だけを用いて、プレイヤキャラクタPと発音体S1との距離を5マス×8m=40mとしてもよい。あるいは、プレイヤキャラクタ、発音体はマップユニットの中央に存在するものとみなして、隣接するマスまでの距離をいずれも4mとし、プレイヤキャラクタPと発音体S1との距離を5マス×8m+4m+4m=48mとしてもよい。
【0040】
続いて、プレイヤキャラクタPから発音体S2までの距離について説明する。プレイヤキャラクタPと発音体S2とを結ぶ直線上には音を遮るものが存在しないので、
図7(a)に示すように、プレイヤキャラクタPと発音体S2とを結ぶ直線が通過するマスの数に基づいて距離を計算する。プレイヤキャラクタPと発音体S2とを結ぶ直線は1つのマスを通過し、プレイヤキャラクタPから隣接するマスまでの距離は6m、発音体S2から隣接するマスまでの距離は6mである。1マス×8m+6m+6mを計算し、プレイヤキャラクタPと発音体S2と間の距離は20mとなる。なお、プレイヤキャラクタと発音体との間に音を遮るものが存在しない場合は、プレイヤキャラクタと発音体とを結ぶ直線の長さを音の減衰処理に用いる距離としてもよい。
【0041】
続いて、プレイヤキャラクタは通行できないが、音は伝達するマスがプレイヤキャラクタと発音体との間に存在する例について説明する。
図8の例では、プレイヤキャラクタPと発音体S1を示している。プレイヤキャラクタPと発音体S1とを結ぶ直線上にはプレイヤキャラクタが通行不可な穴が存在する。穴は壁と同様にプレイヤキャラクタが通行不可のマスであるが、穴のマスには音声通行可の属性が設定されており、音を伝える。
図8のプレイヤキャラクタPと発音体S1との間のマスは音を伝える穴のマスであるので、プレイヤキャラクタPと発音体S1との距離はプレイヤキャラクタPと発音体S1を結ぶ直線に基づいて求めて1マスとなる。また、プレイヤキャラクタP、発音体S1それぞれから直線上の隣接するマスまでの距離はいずれも4mである。
図8の例では、1マス×8m+4m+4mを計算し、プレイヤキャラクタPと発音体S1との距離は16mとなる。
【0042】
図9は、壁を迂回するルートが複数存在する例を示す図である。同図に示す例では、プレイヤキャラクタPと発音体S1との間に壁が存在し、壁を迂回するルートは、点線で示すルートと実線で示すルートがある。迂回するルートが複数存在する場合は、通過するマスの数の少ないルートを音の減衰処理に用いる距離を算出するためのルートとする。
図9に示す例では、点線で示すルートは発音体S1からプレイヤキャラクタPに至るまで間に5マス通過し、実線で示すルートは3マス通過するので、実線で示すルートを音の減衰処理に用いる距離を算出するためのルートとする。
【0043】
距離の算出に用いる別のルートの決め方について説明する。
図7から
図9の例では、マスの中心をつなげて最短ルートとしていた。
図10に示すように、発音体S1からプレイヤキャラクタPまでの距離がより最短となるようにルートを設定して距離を求めてもよい。マス内の自由な位置を通るようにルートを設定した場合、
図10の左上と右上のマスは最短ルートに含まれないものとみなして、最短ルートは3つのマスを通過しているとする。このとき、3マス×8m+プレイヤキャラクタPから隣接するマスまでの距離+発音体S1から隣接するマスまでの距離を計算してもよいし、発音体S1から右上のマスの角までの距離+8m+左上のマスの角からプレイヤキャラクタPまでの距離を計算してもよい。
【0044】
以上説明したように、本実施の形態によれば、距離測定部331が、プレイヤキャラクタの存在するマスと発音体の存在するマスとの間のマスの数に基づいて音の伝達する距離を求め、エフェクト部332が、距離測定部331の測定した距離に応じた減衰処理を効果音に施すことにより、音が音の伝達を遮る物体を回り込む場合でも音が伝達する距離に応じて効果音を減衰させることができる。
【0045】
なお、本実施の形態では、自動生成されたマップについて音の減衰処理をする例で説明したが、自動生成されるマップでなくても、所定の大きさのマップユニットによって区分されるマップであれば同様に適用できる。
【0046】
(エフェクト設定)
次に、マップの各地点における音の特性の設定について説明する。
【0047】
環境音や残響特性などの音の特性は空間の広さによって異なる。予めマップを生成しておく固定マップの場合は、生成した固定マップ中に音の特性を予め設定しておくことができる。しかしながら、ゲーム中でマップを自動生成する場合は、生成されたマップの各地点(マス)の空間の広さを判定する必要がある。
【0048】
本実施の形態では、自動生成されたマップにおいて、2×2マス以上の大きさの空間に含まれるマスは部屋、それ以外のマスは通路とする。あるマス(以下、判定対象のマスとする)が部屋であるか通路であるかは以下のように判定する。
【0049】
まず、判定対象のマスを角に持つ2×2マスを1つ選ぶ。判定対象のマスを角に持つ2×2マスのパターンは、判定対象のマスが2×2マスの右上、右下、左下、左上に存在する4パターンである。選んだ2×2マスのうち判定対象のマスを除く3つのマスの全てが空間(壁のマスではない)であるか否かを判定する。3つのマスの全てが空間であった場合は判定対象のマスを含む4つのマスを全て部屋と判定する。3つのマスのいずれかが空間でない場合は別のパターンの2×2マスを選択して同様の処理を行う。4パターンの全てについて処理した結果、いずれのパターンでも判定対象のマスが部屋と判定されなかった場合は、判定対象のマスを通路と判定する。
【0050】
図11に、自動生成されたマップの通路と部屋を示す。符号71,73で示された四角内のマスは幅が1マスであるので通路である。符号72で示された四角内のマスは2×3の空間であるので部屋である。通路に属するマスには通路用の音の特性を設定し、部屋に属するマスには部屋用の音の特性を設定する。例えば、部屋に属するマス内で発せられた効果音は通路に属するマス内で発せられた効果音よりも残響音が強くなるように設定される。
【0051】
プレイヤキャラクタと発音体が別々の空間に存在する場合は、それらの音の特性を合成してもよい。例えば、
図11の通路内のAの位置にプレイヤキャラクタが存在し、部屋内のBの位置に発音体が存在した場合、Bの位置の発音体が発した効果音に部屋用の音の特性を適用した後、通路内の音の特性を適用する。また、別の例では、
図11の通路内のAの位置にプレイヤキャラクタが存在し、部屋内のCの位置に発音体が存在した場合、Bの位置の発音体が発した効果音に通路内の音の特性を適用し、部屋用の音の特性を適用した後、さらに通路内の音の特性を適用する。
【0052】
また、部屋あるいは通路などのマスの属性に応じて音の特性を設定するだけでなく、イベントが発生する場所には、予め他の音の特性を設定しておいてもよい。
【0053】
以上説明したように、本実施の形態によれば、自動生成されたマップの空間の広さを判定し、空間の広さに応じた音の特性をマップ上に設定することにより、マップの空間の広さに応じた音響効果を適切に設定することが可能となる。
【0054】
(コントローラから出力)
次に、コントローラ120のスピーカ122から出力するゲーム音について説明する。
【0055】
近年、コントローラ120にスピーカ122を備えて、スピーカ122とゲーム機1に接続したスピーカ144の双方からゲーム音を出力できるものがある。
【0056】
しかしながら、コントローラ120に内蔵されたスピーカ122はTVなどのスピーカ144と比較して性能が劣るため、スピーカ144から出力することを前提に作成したゲーム音をチープなスピーカ122から出力すると、開発者の意図する音が出ないという問題があった。
【0057】
スピーカ122から出力するゲーム音を操作音などに限定し、スピーカ144用の音とスピーカ122用の音を別々に用意することが考えられるが、多くのゲーム音をスピーカ122から出力したい場合は、スピーカ122用のゲーム音を用意する手間がかかり、またデータ容量の面でも現実的ではない。
【0058】
本ゲームでは、メメントオブジェクトが自分の思いを語る音声をコントローラ120内蔵のスピーカ122からも出力する。メメントオブジェクトの音声の数は非常に多く、スピーカ122,144ごとにデータを用意することは現実的ではない。
【0059】
そこで、本実施の形態では、スピーカ144用に用意したゲーム音をコントローラ120内蔵のスピーカ122用に加工して出力する。以下、ゲーム音の加工処理について説明する。
【0060】
図12は、ゲーム音をコントローラのスピーカ用に加工する処理の流れを示すフローチャートである。
【0061】
サウンド処理部33は、コントローラ120のスピーカ122から出力するゲーム音をゲームデータ蓄積部35から読み出し、読み出したゲーム音にコンプレッサーをかける(ステップS20)。
【0062】
そして、サウンド処理部33は、ステップS20で処理したゲーム音全体の音量レベルを上げる(ステップS21)。このとき、さらに特定の周波数領域の音量レベルを上げてもよい。
【0063】
そして、サウンド処理部33は、加工したゲーム音データをコントローラ120へ送信する(ステップS22)。
【0064】
以上説明したように、本実施の形態によれば、TVなどのスピーカ144用に用意したゲーム音をコントローラ120内蔵のスピーカ122から出力するときに、出力するゲーム音にコンプレッサーをかけてダイナミックレンジを狭くし、ゲーム音全体の音量レベルを上げてコントローラ120へ送信することにより、スピーカ122用のゲーム音データを用意することなく、開発者の意図にあうゲーム音をスピーカ122から出力することが可能となる。
【0065】
(効果音の合成)
次に、効果音の合成について説明する。
【0066】
オンラインゲームでは所定のサイクルでバージョンアップが行われる。バージョンアップのときに新しい装備や新しい武器が追加されることがある。
【0067】
新しい装備や新しい武器の見た目に合った効果音が再生されることが望ましいが、バージョンアップ毎に新しい装備や新しい武器に対応した効果音を用意することは手間がかかるという問題があった。
【0068】
そこで、本実施の形態では、装備や武器に対応した効果音を装備や武器の素材に基づいて合成する。
【0069】
図13は、キャラクタの行動と部位ごとの装備の素材の比率の例を示した図である。同図では、装備の部位を上半身、下半身、足元の3つに分類し、装備の素材を鉄、革、布、木の4つに分類した。本ゲームでは、キャラクタの行動(モーション)に合わせて各部位の素材の比率に応じた効果音を出力する。例えば、キャラクタが歩くときは歩く用の上半身、下半身、足元の3つの効果音を上半身、下半身、足元のそれぞれの装備の素材の比率に応じて効果音を合成して出力する。
【0070】
ゲームデータ蓄積部35は、装備や武器ごとに素材の比率を示すデータ、およびキャラクタのモーションごと、装備の部位や武器ごとに素材の種類の数分の元の音データを格納する。例えば装備の部位が上半身、下半身、足元の3種類で、素材が鉄、革、布、木の4種類であった場合、各モーションについて、上半身が鉄、上半身が革、上半身が布、上半身が木、下半身が鉄、下半身が革、下半身が布、下半身が木、足元が鉄、足元が革、足元が布、足元が木であったときの12個の元の音データを格納する。
【0071】
サウンド処理部33は、キャラクタのモーションに合わせて効果音を出力するときに、ゲームデータ蓄積部35を参照してキャラクタの各部位の装備の素材の比率を取得し、部位ごとに、各素材の元の音データの音量レベルを素材の比率に応じて設定して各素材の元の音データを合成した合成音を出力する。合成音は、キャラクタが装備を変更したときに、変更後の装備の素材の比率に合わせて元の音データを合成してメモリなどに保存しておく。あるいは、キャラクタのモーション時に、素材に対応した元の音データの音量レベルを素材の比率に応じて設定した後、各素材の元の音データを同時にコールしてもよい。
【0072】
具体的例を用いて説明すると、
図13の上半身の装備の素材の構成は、鉄が80%、革が20%である。この上半身の装備をつけたキャラクタが歩くときは、上半身が鉄の元の音データを80%の音量レベル、上半身が革の元の音データを20%の音量レベルで合成した効果音をコールする。下半身、足元の効果音についても同様に装備の組成に応じた割合で合成した効果音をコールする。
【0073】
以上説明したように、本実施の形態によれば、キャラクタのモーション時の効果音は、キャラクタの装備の素材の組成に応じた割合で素材の元の音をゲーム中に合成することにより、装備の素材の組成の割合を設定するだけで、装備ごとに効果音を用意するが必要がなくなる。