(57)【特許請求の範囲】
【請求項１】
コンピュータ装置において、仮想空間内に配置されるオブジェクトをもとに、発音処理を実行させる発音処理プログラムであって、
仮想空間内に複数の所定の領域が設けられ、所定の領域は音の伝播を妨害する障害物が配置され得るものであり、
コンピュータ装置を、
仮想空間内の所定の領域内に存在する複数のオブジェクトを抽出するオブジェクト抽出手段、
抽出された複数のオブジェクトの位置情報に基づいて、仮想音源の位置を特定する位置特定手段、
特定された位置に仮想音源を配置する仮想音源配置手段、
配置された仮想音源から発音させる発音手段、
該障害物を回避するように、音を聴取する基準位置から、位置特定手段により特定された位置までの距離を算出する距離算出手段
として機能させ、
仮想音源配置手段が、位置特定手段により特定された複数の位置のうち、距離算出手段により算出された距離が最も短い位置に仮想音源を配置する、発音処理プログラム。
【請求項２】
位置特定手段が、オブジェクトの種類毎に仮想音源の位置を特定するものであり、
発音手段がオブジェクトの種類毎に配置された仮想音源から、オブジェクトの種類に応じた音を発音させる、請求項１に記載の発音処理プログラム。
【請求項３】
コンピュータ装置を、さらに、オブジェクト抽出手段により抽出されたオブジェクトの数に基づいて、仮想音源から発せられる音量を特定する音量特定手段として機能させ、
発音手段が、特定された音量で発音させる、請求項１又は２に記載の発音処理プログラム。
【請求項４】
位置特定手段が、オブジェクト抽出手段により抽出されたオブジェクトの座標情報を用いて、座標の平均値を算出して位置を特定することを特徴とする、請求項１〜３のいずれかに記載の発音処理プログラム。
【請求項５】
コンピュータ装置を、さらに、音を聴取する基準位置に応じて所定の領域を設定する領域設定手段として機能させる、請求項１〜４のいずれかに記載の発音処理プログラム。
【請求項６】
仮想空間内に配置されるオブジェクトをもとに、発音処理を実行する発音処理装置であって、
仮想空間内に複数の所定の領域が設けられ、所定の領域は音の伝播を妨害する障害物が配置され得るものであり、
仮想空間内の所定の領域内に存在する複数のオブジェクトを抽出するオブジェクト抽出手段と、
抽出された複数のオブジェクトの位置情報に基づいて、仮想音源の位置を特定する位置特定手段と、
特定された位置に仮想音源を配置する仮想音源配置手段と、
配置された仮想音源から発音させる発音手段と、
該障害物を回避するように、音を聴取する基準位置から、位置特定手段により特定された位置までの距離を算出する距離算出手段と
を備え、
仮想音源配置手段が、位置特定手段により特定された複数の位置のうち、距離算出手段により算出された距離が最も短い位置に仮想音源を配置する、発音処理装置。
【請求項７】
コンピュータ装置において、仮想空間内に配置されるオブジェクトをもとに発音処理を実行する発音処理方法であって、
仮想空間内に複数の所定の領域が設けられ、所定の領域は音の伝播を妨害する障害物が配置され得るものであり、
仮想空間内の所定の領域内に存在する複数のオブジェクトを抽出するステップと、
抽出された複数のオブジェクトの位置情報に基づいて、仮想音源の位置を特定するステップと、
特定された位置に仮想音源を配置するステップと、
配置された仮想音源から発音させるステップと、
該障害物を回避するように、音を聴取する基準位置から、位置を特定するステップにおいて特定された位置までの距離を算出するステップと
を有し、
仮想音源を配置するステップでは、位置を特定するステップにおいて特定された複数の位置のうち、距離を算出するステップにおいて算出された距離が最も短い位置に仮想音源を配置する、発音処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、発音処理プログラム、発音処理装置、及び、発音処理方法に関する。
【背景技術】
【０００２】
従来より、三次元の仮想空間において、プレイヤがキャラクタを操作し、仮想空間を探検させて進行させるゲームが知られている。特に、サンドボックス型（オープンワールド型ともいう）のゲームでは、プレイヤが仮想空間内のフィールド上の任意の場所に、任意のオブジェクトを自由に配置することができる。
【０００３】
プレイヤが配置可能なオブジェクトの中には、例えば、たいまつのオブジェクトの場合は火の燃える音、水車のオブジェクトの場合は水のせせらぎの音のように、オブジェクトに関連した特定の音を定常的に繰り返し発生させるオブジェクト（以下、発音オブジェクトという）が含まれ、仮想空間内の臨場感を高めている。
【０００４】
しかし、プレイヤの意思に基づいて任意に、かつ、無制限に発音オブジェクトを配置させてしまうと、音源の数が増加することにより発音処理の負荷が増大し、クリッピングノイズや音途切れ等が生じてしまうという問題があった。
【０００５】
このような問題を回避するために、従来は発音可能なオブジェクトを制限する手法が採用されてきた。例えば、オブジェクトに発音処理を行う優先順位を付け、順位にしたがって発音処理を行う方法がある。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、このような制限処理は、ある音源からは音が鳴っているが、別の音源からは音が鳴っていないという不自然な状況が発生し得るものであった。即ち、音の定位と外見上の自然さがかい離してしまうという問題があった。
【０００７】
本発明の少なくとも１つの実施の形態の目的は、仮想空間における発音処理に関する負荷を軽減させつつ、音の定位と外見上の不自然さを緩和することが可能な、発音処理プログラム、発音処理装置、及び、発音処理方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
非限定的な観点によると、コンピュータ装置において、仮想空間内に配置されるオブジェクトをもとに、発音処理を実行させる発音処理プログラムであって、コンピュータ装置を、仮想空間内の所定の領域内に存在する複数のオブジェクトを抽出するオブジェクト抽出手段、抽出された複数のオブジェクトの位置情報に基づいて、仮想音源の位置を特定する位置特定手段、特定された位置に仮想音源を配置する仮想音源配置手段、配置された仮想音源から発音させる発音手段として機能させる発音処理プログラムである。
【０００９】
非限定的な観点によると、仮想空間内に配置されるオブジェクトをもとに、発音処理を実行する発音処理装置であって、仮想空間内の所定の領域内に存在する複数のオブジェクトを抽出するオブジェクト抽出手段と、抽出された複数のオブジェクトの位置情報に基づいて、仮想音源の位置を特定する位置特定手段と、特定された位置に仮想音源を配置する仮想音源配置手段と、配置された仮想音源から発音させる発音手段とを備える発音処理装置である。
【００１０】
非限定的な観点によると、コンピュータ装置において、仮想空間内に配置されるオブジェクトをもとに発音処理を実行する発音処理方法であって、仮想空間内の所定の領域内に存在する複数のオブジェクトを抽出するステップと、抽出された複数のオブジェクトの位置情報に基づいて、仮想音源の位置を特定するステップと、特定された位置に仮想音源を配置するステップと、配置された仮想音源から発音させるステップとを有する発音処理方法である。
【発明の効果】
【００１１】
本発明の各実施形態により１または２以上の不足が解決される。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施の形態の少なくとも１つに対応する、コンピュータ装置の構成を示すブロック図である。
【図２】本発明の実施の形態の少なくとも１つに対応する、プログラム実行処理のフローチャートである。
【図３】本発明の実施の形態の少なくとも１つに対応する、コンピュータ装置の構成を示すブロック図である。
【図４】本発明の実施の形態の少なくとも１つに対応する、プログラム実行処理のフローチャートである。
【図５】本発明の実施の形態の少なくとも１つに対応する、コンピュータ装置の構成を示すブロック図である。
【図６】本発明の実施の形態の少なくとも１つに対応する、プログラム実行処理のフローチャートである。
【図７】本発明の実施の形態の少なくとも１つに対応する、コンピュータ装置の構成を示すブロック図である。
【図８】本発明の実施の形態の少なくとも１つに対応する、プログラム実行処理のフローチャートである。
【図９】本発明の実施の形態の少なくとも１つに対応する、仮想空間内の領域設定について説明する図である。
【図１０】本発明の実施の形態の少なくとも１つに対応する、仮想音源の配置位置特定について表す図である。
【図１１】本発明の実施の形態の少なくとも１つに対応する、プログラム実行処理のフローチャートである。
【図１２】本発明の実施の形態の少なくとも１つに対応する、Ａ＊探索アルゴリズムを用いた最短距離の計算の一例である。
【発明を実施するための形態】
【００１３】
以下、添付図面を参照して、本発明の実施の形態について説明する。以下、効果に関する記載は、本発明の実施の形態の効果の一側面であり、ここに記載するものに限定されない。また、以下で説明するフローチャートを構成する各処理の順序は、処理内容に矛盾や不整合が生じない範囲で順不同である。
【００１４】
［第一の実施の形態］
次に、本発明の第一の実施の形態の概要について説明をする。図１は、本発明の実施の形態の少なくとも１つに対応する、コンピュータ装置の構成を示すブロック図である。コンピュータ装置１は、オブジェクト抽出部１０１、位置特定部１０２、仮想音源配置部１０３、及び、発音部１０４を少なくとも備える。
【００１５】
オブジェクト抽出部１０１は、仮想空間内の所定の領域内に存在する複数のオブジェクトを抽出する機能を有する。位置特定部１０２は、抽出された複数のオブジェクトの位置情報に基づいて、仮想音源の位置を特定する機能を有する。
【００１６】
仮想音源配置部１０３は、特定された位置に仮想音源を配置する機能を有する。発音部１０４は、配置された仮想音源から発音する機能を有する。
【００１７】
本発明の第一の実施の形態におけるプログラム実行処理について説明する。図２は、本発明の実施の形態の少なくとも１つに対応する、プログラム実行処理のフローチャートである。
【００１８】
コンピュータ装置１は、仮想空間内の所定の領域内に存在する複数のオブジェクトを抽出する（ステップＳ１）。抽出された複数のオブジェクトの位置情報に基づいて、仮想音源の位置を特定する（ステップＳ２）。
【００１９】
次に、特定された位置に仮想音源を配置する（ステップＳ３）。そして、配置された仮想音源から発音させ（ステップＳ４）、終了する。
【００２０】
第一の実施の形態の一側面として、仮想空間における発音処理に関する負荷を軽減させつつ、音の定位と外見上の不自然さを緩和することが可能となる。
【００２１】
第一の実施の形態において、「コンピュータ装置」とは、例えば、デスクトップ型又はノート型パーソナルコンピュータ、タブレットコンピュータ、又は、ＰＤＡ等をいい、表示画面がタッチパネルセンサを備える携帯型端末であってもよい。「仮想空間」とは、例えば、コンピュータ上の仮想的な空間をいう。「オブジェクト」とは、例えば、仮想空間内で有形の物体をいう。
【００２２】
「発音」とは、例えば、音を発生させることをいう。「抽出」とは、例えば、多くの中からある特定のものを抜き出すことをいう。「位置情報」とは、例えば、人や物などの位置に関する情報をいう。「位置」とは、例えば、ものがある所、ものがあるべき場所をいう。
【００２３】
「仮想音源」とは、例えば、仮想的に配置された音源のことをいう。「音源」とは、例えば、音の出ているもと、また、音を出すもととなるものをいう。「配置」とは、例えば、人や物をそれぞれの位置、持ち場に割り当てて置くことをいう。
【００２４】
［第二の実施の形態］
次に、本発明の第二の実施の形態の概要について説明をする。図３は、本発明の実施の形態の少なくとも１つに対応する、コンピュータ装置の構成を示すブロック図である。コンピュータ装置１は、オブジェクト抽出部１１１、位置特定部１１２、距離算出部１１３、仮想音源配置部１１４、及び、発音部１１５を少なくとも備える。
【００２５】
オブジェクト抽出部１１１は、仮想空間内の所定の領域内に存在する複数のオブジェクトを抽出する機能を有する。位置特定部１１２は、抽出された複数のオブジェクトの位置情報に基づいて、仮想音源の位置を特定する機能を有する。
【００２６】
距離算出部１１３は、音の伝播を妨害する障害物を回避するように、音を聴取する基準位置から、所定の領域内に存在する複数のオブジェクトの位置情報に基づいて特定された位置までの距離を算出する機能を有する。
【００２７】
仮想音源配置部１１４は、特定された位置に仮想音源を配置する機能を有する。発音部１１５は、配置された仮想音源から発音する機能を有する。
【００２８】
本発明の第二の実施の形態におけるプログラム実行処理について説明する。図４は、本発明の実施の形態の少なくとも１つに対応する、プログラム実行処理のフローチャートである。
【００２９】
仮想空間内には複数の所定の領域が設けられ、所定の領域には音の伝播を妨害する障害物が配置され得るものである。
【００３０】
コンピュータ装置１は、仮想空間内の所定の領域内に存在する複数のオブジェクトを抽出する（ステップＳ１１）。抽出された複数のオブジェクトの位置情報に基づいて、仮想音源の位置を特定する（ステップＳ１２）。
【００３１】
続いて、障害物を回避するように、音を聴取する基準位置から、所定の領域内に存在する複数のオブジェクトの位置情報に基づいて特定された、仮想音源の位置までの距離を算出する（ステップＳ１３）。さらに、ステップＳ１１からステップＳ１３までの処理を、全ての所定の領域に対して処理を完了するまで繰り返す。
【００３２】
ステップＳ１２により特定された複数の位置のうち、ステップＳ１３により算出された距離が最も短い位置に仮想音源を配置する（ステップＳ１４）。そして、配置された仮想音源から発音させ（ステップＳ１５）、終了する。
【００３３】
第二の実施の形態の一側面として、音を聴取する基準位置から、所定の領域内に存在する複数のオブジェクトの位置情報に基づいて特定された仮想音源の位置までの距離を算出し、算出された距離が最も短い位置に仮想音源を配置することにより、仮想空間におけるシミュレーション処理に関する負荷を軽減させ、かつ、音の定位と外見上の不自然さを緩和することが可能となる。
【００３４】
第二の実施の形態の一側面として、仮想空間内に複数の所定の領域が設けられることにより、処理負荷をコントロールすることができ、高性能な端末だけでなく、低性能な端末においても発音処理を実行することができる。
【００３５】
第二の実施の形態において、「仮想空間」、「コンピュータ装置」、「オブジェクト」、「配置」、「位置」、及び、「仮想音源」とは、それぞれ第一の実施形態において記載した内容と同一である。
【００３６】
第二の実施の形態において、「伝播」とは、例えば、波動が媒質の中を広がっていくことをいう。「障害物」とは、例えば、音を反射、吸収、あるいは、透過するような物体をいう。
【００３７】
［第三の実施の形態］
次に、本発明の第三の実施の形態の概要について説明をする。第三の実施の形態におけるコンピュータ装置の構成は、図１のブロック図に示されるものと同じ構成を採用することができる。さらに、第三の実施の形態におけるプログラム実行処理のフローは、図２のフローチャートに示されるものと同じ構成を採用することができる。
【００３８】
第三の実施形態において、位置特定部１０２は、オブジェクトの種類毎に仮想音源の位置を特定するものであり、発音部１０４は、オブジェクトの種類毎に配置された仮想音源から、オブジェクトの種類に応じた音を発音させるものである。
【００３９】
第三の実施の形態の一側面として、仮想音源の位置は、オブジェクトの種類毎に特定されるものであり、オブジェクトの種類毎に配置された仮想音源から、オブジェクトの種類に応じた音を発音させるものであるため、同種の音を１つの仮想音源に集約し、仮想空間におけるシミュレーション処理に関する負荷を軽減させ、かつ、音の定位と外見上の不自然さを緩和することが可能となる。
【００４０】
第三の実施の形態において、「オブジェクト」、「仮想音源」、「位置」、及び、「配置」とは、それぞれ第一の実施形態において記載した内容と同一である。
【００４１】
［第四の実施の形態］
次に、本発明の第四の実施の形態の概要について説明をする。図５は、本発明の実施の形態の少なくとも１つに対応する、コンピュータ装置の構成を示すブロック図である。コンピュータ装置１は、オブジェクト抽出部１２１、位置特定部１２２、音量特定部１２３、仮想音源配置部１２４、及び、発音部１２５を少なくとも備える。
【００４２】
オブジェクト抽出部１２１は、仮想空間内の所定の領域内に存在する複数のオブジェクトを抽出する機能を有する。位置特定部１２２は、抽出された複数のオブジェクトの位置情報に基づいて、仮想音源の位置を特定する機能を有する。
【００４３】
音量特定部１２３は、仮想空間内の所定の領域内から抽出されたオブジェクトの数に基づいて、仮想音源から発せられる音量を特定する機能を有する。
【００４４】
仮想音源配置部１２４は、特定された位置に仮想音源を配置する機能を有する。発音部１２５は、配置された仮想音源から発音する機能を有する。
【００４５】
本発明の第四の実施の形態におけるプログラム実行処理について説明する。図６は、本発明の実施の形態の少なくとも１つに対応する、プログラム実行処理のフローチャートである。
【００４６】
コンピュータ装置１は、仮想空間内の所定の領域内に存在する複数のオブジェクトを抽出する（ステップＳ２１）。抽出された複数のオブジェクトの位置情報に基づいて、仮想音源の位置を特定する（ステップＳ２２）。そして、ステップＳ２１にて抽出されたオブジェクトの数に基づいて、仮想音源から発せられる音量を特定する（ステップＳ２３）。
【００４７】
ステップＳ２２において特定された位置に仮想音源を配置する（ステップＳ２４）。そして、ステップＳ２３において特定された音量で、配置された仮想音源から発音させ（ステップＳ２５）、終了する。
【００４８】
第四の実施の形態の一側面として、所定の領域内に存在するオブジェクトの数に基づいて仮想音源から発せられる音量を特定することで、数の多いオブジェクトについて音の音量を大きくすることができ、音の定位と外見上の不自然さを緩和することが可能である。
【００４９】
第四の実施の形態において、「コンピュータ装置」、「オブジェクト」、「仮想音源」、及び、「発音」とは、それぞれ第一の実施形態において記載した内容と同一である。
【００５０】
第四の実施の形態において、「音量」とは、例えば、音の大きさ、ボリュームをいう。
【００５１】
［第五の実施の形態］
次に、本発明の第五の実施の形態の概要について説明する。図７は、本発明の実施の形態の少なくとも１つに対応する、コンピュータ装置の構成を示すブロック図である。コンピュータ装置１は、制御部１１、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１２、ストレージ部１３、サウンド処理部１４、グラフィックス処理部１５、ＤＶＤ／ＣＤ−ＲＯＭドライブ１６、通信インタフェース１７、インタフェース部１８とを少なくとも備え、それぞれ内部バスにより接続されている。
【００５２】
制御部１１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）やＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）から構成される。制御部１１は、ストレージ部１３や記録媒体２４に格納されたプログラムを実行し、コンピュータ装置１の制御を行う。また、制御部１１は時間を計時する内部タイマを備えている。ＲＡＭ１２は、制御部１１のワークエリアである。ストレージ部１３は、プログラムやデータを保存するための記憶領域である。
【００５３】
ＤＶＤ／ＣＤ−ＲＯＭドライブ１６は、ＤＶＤ−ＲＯＭやＣＤ−ＲＯＭなどのプログラムが格納された記録媒体２４を装着することが可能である。記録媒体２４には、例えばプログラム及びデータが記憶されている。ＤＶＤ／ＣＤ−ＲＯＭドライブ１６により、プログラム及びデータが記録媒体２４から読み出され、ＲＡＭ１２にロードされる。
【００５４】
制御部１１は、プログラム及びデータをＲＡＭ１２から読み出して処理を行う。制御部１１は、ＲＡＭ１２にロードされたプログラム及びデータを処理することで、サウンド出力の指示をサウンド処理部１４に出力し、描画命令をグラフィックス処理部１５に出力する。
【００５５】
サウンド処理部１４は、スピーカであるサウンド出力装置２１に接続されている。制御部１１がサウンド出力の指示をサウンド処理部１４に出力すると、サウンド処理部１４はサウンド出力装置２１にサウンド信号を出力する。
【００５６】
グラフィックス処理部１５は表示装置２２に接続されている。表示装置２２は表示画面２３を有している。制御部１１が描画命令をグラフィックス処理部１５に出力すると、グラフィックス処理部１５は、ビデオメモリ（フレームバッファ）１９に画像を展開し、表示画面２３上に画像を表示するためのビデオ信号を出力する。グラフィックス処理部１５は、フレーム単位で１枚の画像の描画を実行する。画像の１フレーム時間は、例えば３０分の１秒である。グラフィックス処理部１５は、制御部１１だけで行ってきた描画に関する演算処理の一部を受け持ち、システム全体の負荷を分散させる役割を有する。
【００５７】
インタフェース部１８には入力部２０（例えば、マウスやキーボード等）が接続され得る。ユーザによる入力部２０からの入力情報はＲＡＭ１２に格納され、制御部１１は入力情報をもとに各種の演算処理を実行する。あるいは、インタフェース部１８に記憶媒体読取装置を接続し、メモリ等からプログラム及びデータ等を読み込むことも可能である。また、タッチパネルを備えた表示装置２２を入力部２０とすることもできる。
【００５８】
通信インタフェース１７は無線又は有線により通信ネットワーク２に接続が可能であり、通信ネットワーク２を介して他のコンピュータ装置との間で情報の送受信を行うことが可能である。
【００５９】
次に、本発明の第五の実施の形態におけるプログラム実行処理について説明する。図８は、本発明の実施の形態の少なくとも１つに対応する、プログラム実行処理のフローチャートである。本発明の第五の実施の形態では、例えば、オブジェクトを配置し得る三次元の仮想空間において、発音オブジェクトを配置し、発音オブジェクトの配置された位置に基づいて特定された仮想音源から発音させるプログラムを挙げる。
【００６０】
ここで、音を聴取する基準位置は、例えば、ゲーム内のプレイヤキャラクタの存在する位置、あるいは仮想カメラの位置等が該当する。プレイヤキャラクタの位置は、プレイヤの操作等によって、時間とともに変化する。
【００６１】
最初に、音を聴取する基準位置を特定する（ステップＳ３１）。次に、基準位置に応じて、所定の領域及び所定の領域に含まれる複数のサブ領域を設定する（ステップＳ３２）。
【００６２】
図を用いて、仮想空間、所定の領域、及び、基準位置の関係を説明する。図９は、本発明の実施の形態の少なくとも１つに対応する、仮想空間内の領域設定について説明する図である。
【００６３】
図９（ａ）は、仮想空間、所定の領域、及び、基準位置の位置関係を説明する図である。例えば、仮想空間が直交座標系にて管理され、地平面に平行にＸ軸、Ｙ軸が設定され、Ｚ軸が高さ方向に、Ｘ軸とＹ軸に直交するように設定されているような場合において、仮想空間をＺ軸正方向から俯瞰した図である。図中、縦方向が、仮想空間の高さ方向に相当する。
【００６４】
仮想空間（点線で図示）２００が設定されている場合に、プログラムにより音を聴取する基準位置２０１が設定される。さらに、基準位置２０１に応じて、所定の領域（実線で図示）２０２を設定する。所定の領域２０２は、基準位置２０１から等しい距離を有する円形であってもよいし、略直方体であってもよく、あるいは、任意の形状の領域であってもよい。
【００６５】
また、仮想空間２００の大きさは、図示するように仮想空間の一部が所定の領域２０２であってもよいし、仮想空間全体が所定の領域２０２と同じであってもよい。さらに、所定の領域２０２に含まれる発音オブジェクトから発せられる音だけを発音処理するように制御することとしてもよい。
【００６６】
図９（ｂ）は、所定の領域と基準位置の関係を説明する図である。設定された所定の領域２０２は、複数の領域からなるものである。図では、一例として、直方体状の所定の領域２０２が、Ｘ軸方向に３分割、Ｙ軸方向に３分割、及び、Ｚ軸方向に３分割されており、合計２７個のサブ領域２０２ａに分割されている。図において、基準位置２０１は所定の領域２０２の中心部に位置するサブ領域２０２ａに存在しているが、所定の領域と基準位置との位置関係は任意に設定することができるし、また、プレイヤキャラクタの移動等により、所定の領域と基準位置との位置関係が一時的に変化することもある。
【００６７】
なお、ここでは、所定の領域２０２をＸ軸方向、Ｙ軸方向、Ｚ軸方向の三方向で分割してサブ領域２０２ａを設定したが、Ｘ軸方向、Ｙ軸方向の二方向のみで分割してサブ領域２０２ａを設定してもよい。
【００６８】
このように、所定の領域を複数のサブ領域に分割することで、処理負荷をコントロールすることができ、高性能な端末だけでなく、低性能な端末においても発音処理を実行することができるという利点がある。
【００６９】
次に、所定の領域に含まれるサブ領域全てに対して処理が完了するまで、後述するステップＳ３３からステップＳ３６の処理を繰り返す。まず、サブ領域に含まれるオブジェクトを抽出する（ステップＳ３３）。抽出するオブジェクトは、サブ領域に含まれるオブジェクトをすべて含めてもよいし、発音オブジェクトのみ抽出するようにしてもよい。
【００７０】
抽出されたオブジェクトのうち、発音オブジェクトの種類毎に処理を進める。発音オブジェクトの種類とは、例えば、たいまつやたき火等の火に関する発音オブジェクト、川や水車等の水に関する発音オブジェクト、高木や紙等の風に関する発音オブジェクト等のように、オブジェクトが発する音の種類で分類され得るものである。
【００７１】
ここで、発音オブジェクトの種類として、一例として、火に関する発音オブジェクトについて処理を進める。まず、仮想音源を配置する位置を特定する（ステップＳ３４）。図１０は、本発明の実施の形態の少なくとも１つに対応する、仮想音源の配置位置特定について表す図である。図は、所定の領域を構成するサブ領域をＸ−Ｙ平面で平面視したものである。
【００７２】
サブ領域２０３内に、火に関する発音オブジェクト（図中において★で表示）２０４ａ、２０４ｂ、及び、２０４ｃと、水に関する発音オブジェクト（図中において△で表示）２０４α及び２０４βが存在する。発音オブジェクトの位置座標はそれぞれ、２０４ａが（ｘａ，ｙａ）、２０４ｂが（ｘｂ，ｙｂ）、２０４ｃが（ｘｃ，ｙｃ）、２０４αが（ｘα，ｙα）、そして、２０５βが（ｘβ，ｙβ）である。
【００７３】
このとき、火に関する発音オブジェクトの平均座標２０５（図中において☆で表示）は、以下の数式（１）で表される。
【数１】
0006624950.tif 000002
【００７４】
ここで、説明のために、位置座標に関して高さのＺ軸成分を省略したが、Ｚ軸成分を加味して平均座標２０５を算出することも可能である。平均座標２０５は、仮想音源を配置する候補の位置としてＲＡＭ１２あるいはストレージ部１３に記憶する。
【００７５】
なお、ここでは各発音オブジェクトの配置位置の座標情報のみを用いて、単純平均を算出したが、各発音オブジェクトの音量等の音に関する情報を各座標における質量として考え、重心を算出することとしてもよい。
【００７６】
次に、仮想音源から発せられる音量を特定する（ステップＳ３５）。音量は、サブ領域に含まれる発音オブジェクトの数に基づいて特定するものであり、発音オブジェクトの数に比例して動的に音量を変更するものであってもよいし、サブ領域に含まれる発音オブジェクトの数と音量を予めマスタデータとして定めるものであってもよい。
【００７７】
続いて、ステップＳ３４にて特定された位置に仮想音源を配置する（ステップＳ３６）。そして、サブ領域に含まれる全種類の発音オブジェクトに関して仮想音源を配置するまでステップＳ３４からステップＳ３６までを繰り返す。さらに、ステップＳ３３のオブジェクト抽出処理から、ステップＳ３６の仮想音源配置処理までを、全てのサブ領域に対して処理が完了するまで繰り返す。
【００７８】
全ての領域に対して処理が完了した後、配置された仮想音源から、ステップＳ３５にて特定された音量で、発音オブジェクトに関連付けられた音を発音させる（ステップＳ３７）。
【００７９】
最後に、前回ステップＳ３１にて基準位置を設定してから、所定の時間が経過したか判定する（ステップＳ３８）。所定の時間が経過した場合は（ステップＳ３８にてＹＥＳ）、再度ステップＳ３１に戻って基準位置を設定し、発音処理プログラムを再帰的に実行する。所定の時間が経過しない場合は（ステップＳ３８にてＮＯ）、終了する。
【００８０】
所定の時間は、コンピュータ装置１の制御部１１あるいはＲＡＭ１２にかかる負荷、及び、プレイヤの聴取した感覚の不自然さに応じて変更することができる。即ち、負荷及び不自然さのバランスを保つよう調整することができ、描画処理等他の処理の負荷を考慮しつつ動的に変化させてもよい。
【００８１】
第五の実施形態において、音を聴取する基準位置は、プレイヤの操作により変更され得るものであってもよい。上述の手法では、所定の時間が経過したことを再帰的実行の条件としたが、例えば、基準位置が所定の範囲を超えて変更されたか否かの判断を行い、発音処理プログラムを再帰的に実行するようにしてもよい。
【００８２】
第五の実施形態において、所定の領域をＸ軸、Ｙ軸、及び、Ｚ軸について分割してサブ領域を設定したが、Ｘ軸及びＹ軸のみについて分割することとしてもよい。発音オブジェクトの配置される高さが所定の範囲内に収まる場合には、より計算処理を少なくして負荷を軽減しつつ、音の定位と外見上の不自然さを緩和することが可能となる。
【００８３】
第五の実施形態において、上述した手法は、仮想空間におけるシミュレーションについて適用することができる。特に、サンドボックス型ゲームのように、プレイヤの操作指示により自由にオブジェクトを配置又は排除可能なゲームであって、リアルタイムかつシームレスに処理を行う必要がある場合に有用である。
【００８４】
第五の実施形態において、上述した手法は、方向や定位感を意識し、音の聞こえ方の自然さを重視するものであるため、複数のスピーカを動作させて発音させるシステムにおいて有効である。
【００８５】
第五の実施の形態の一側面として、発音オブジェクトの種類毎に処理することにより、オブジェクトの種類毎に仮想音源の位置を特定することができるため、音の定位と外見上の不自然さを緩和することができる。
【００８６】
第五の実施の形態の一側面として、サブ領域内に存在する発音オブジェクトの数に基づいて仮想音源から発せられる音量を特定することで、数の多い発音オブジェクトに関連する音の音量を大きくすることができ、より自然に発音させることが可能となる。
【００８７】
第五の実施の形態の一側面として、サブ領域内の発音オブジェクトの位置座標を用いて座標の平均値をもとに仮想音源の位置を算出し、特定することで、複数の発音オブジェクトの位置を反映した位置に仮想音源を配置できるため、仮想空間における発音処理に関する負荷を軽減することができるとともに、より自然な発音処理が可能となる。
【００８８】
第五の実施の形態の一側面として、所定の領域が音を聴取する基準位置に応じて設定されることで、動的に所定の領域を定めることができ、基準位置が変化した後の発音処理に関しても、音の定位と外見上の不自然さを緩和することが可能である。
【００８９】
第五の実施の形態の一側面として、所定の時間間隔毎に繰り返し所定の領域の情報を更新することにより、処理負荷を軽減するとともに、プレイヤキャラクタの位置の移動等によって基準位置が変化しても、音の定位と外見上の不自然さが大きくなる前に、これを是正することができる。
【００９０】
第五の実施の形態において、「コンピュータ装置」、「仮想空間」、「オブジェクト」、「発音」、「抽出」、「位置情報」、「位置」、「仮想音源」、「音源」、及び、「配置」とは、それぞれ第一の実施形態において記載した内容と同一である。「音量」とは、第四の実施形態において記載した内容と同一である。
【００９１】
第五の実施の形態において、「座標」とは、例えば、点の位置を明確にするために与えられる数の組のことをいう。「平均値」とは、例えば、平均して得られた数値をいう。
【００９２】
［第六の実施の形態］
次に、本発明の第六の実施の形態の概要について説明する。第六の実施の形態におけるコンピュータ装置の構成は、図７のブロック図に示されるものと同じ構成を採用することができる。
【００９３】
次に、本発明の第六の実施の形態におけるプログラム実行処理について説明する。図１１は、本発明の実施の形態の少なくとも１つに対応する、プログラム実行処理のフローチャートである。本発明の第六の実施の形態では、第五の実施の形態と同様に、例えば、オブジェクトを配置し得る三次元の仮想空間において、発音オブジェクトを配置し、発音オブジェクトの配置された位置に基づいて特定された仮想音源から発音させるプログラムを挙げる。
【００９４】
ここで、音を聴取する基準位置は、例えば、ゲーム内のプレイヤキャラクタの存在する位置、あるいは仮想カメラの位置等が該当する。プレイヤキャラクタの位置は、プレイヤの操作等によって、時間とともに変化する。
【００９５】
最初に、音を聴取する基準位置を特定する（ステップＳ４１）。次に、基準位置に応じて、所定の領域及び所定の領域に含まれる複数のサブ領域を設定する（ステップＳ４２）。仮想空間、所定の領域、及び、基準位置の関係は、図９に示す内容と同じである。
【００９６】
所定の領域を複数のサブ領域に分割することで、処理負荷をコントロールすることができ、高性能な端末だけでなく、低性能な端末においても発音処理を実行することができるという利点がある。
【００９７】
次に、所定の領域に含まれるサブ領域全てに対して処理が完了するまで、後述するステップＳ４３からステップＳ４６の処理を繰り返す。まず、サブ領域に含まれるオブジェクトを抽出する（ステップＳ４３）。抽出するオブジェクトは、サブ領域に含まれるオブジェクトをすべて含めてもよいし、発音オブジェクトのみ抽出するようにしてもよい。
【００９８】
抽出されたオブジェクトのうち、発音オブジェクトの種類毎に処理を進める。ここでは、一例として、火に関する発音オブジェクトについて処理を進める。
【００９９】
続いて、発音オブジェクトの平均座標を算出する（ステップＳ４４）。平均座標の算出方法は、図１０に示されるものと同じ方法を採用することができる。
【０１００】
続いて、音を聴取する基準位置から、ステップＳ４４にて算出した平均座標までの距離を算出する（ステップＳ４５）。仮想空間内には、音の伝播を妨害する障害物が配置され得るため、障害物を回避するように距離を計算することが好ましい。
【０１０１】
例えば、仮想空間内にグラフを設定し、基準位置から平均座標まで到達するように、最短経路を求める探索アルゴリズムを使用して距離を算出することができる。探索アルゴリズムは、ダイクストラ法やベルマン−フォード法を用いてもよく、あるいは、評価関数を用いたＡ＊（エースター）探索アルゴリズム（Ａ＊アルゴリズムともいう）を用いてもよい。
【０１０２】
ここで、最短距離を算出するための探索アルゴリズムについて説明する。図１２は、本発明の実施の形態の少なくとも１つに対応する、Ａ＊アルゴリズムを用いた最短距離の計算の一例である。
【０１０３】
Ａ＊アルゴリズムは、「グラフ上でスタートからゴールまでの道を見つける」というグラフ探索問題において、ヒューリスティック関数ｈ（ｎ）という探索の道標となる関数を用いて探索を行うアルゴリズムである。スタートのノードＳから、あるノードｎを通ってゴールのノードＧまで到達する場合に、ノードＳからあるノードｎまでの最短経路の推定コストをｆ（ｎ）とすると、ｆ（ｎ）は以下の数式（２）で表すことができる。
【０１０４】
【数２】
0006624950.tif 000003
【０１０５】
ここで、ｇ（ｎ）はノードＳからノードｎまでの推定最小コスト、ｈ（ｎ）はノードｎからノードＧまでの推定最小コストである。また、ｇ（Ｓ）＝０であり、ノードＳからノードＧまでの最短経路の推定コストはｆ（Ｇ）である。
【０１０６】
図１２（ａ）は、所定の領域３００をＸ−Ｙ平面で平面視したものである。所定の領域３００は、複数のセル３０１により構成されている。ここで、セル３０１はそれぞれ、グラフのノードとして扱う。
【０１０７】
基準位置３０２（図中においてＳと表示）から、距離を算出したい位置であり、ステップＳ４４にて算出された平均座標３０３（図中においてＧと表示）までの距離を算出する。なお、各セル間を移動する際に必要な距離を仮に１とする。ここで、コスト算出に必要なｈ（ｎ）は、以下の式（３）のように定めることができる。ただし、三次元空間で計算する場合には、マンハッタン距離等を用いることとしてもよい。
【０１０８】
【数３】
0006624950.tif 000004
【０１０９】
また、所定の領域３００には、音が通過することができず、経路にできない障害物に対応するセル３０４（図中において黒塗りされたセル）が設定されているものとする。
【０１１０】
最初に、基準位置３０２の周辺のセルに対して、ｆ（ｎ）の値を計算する。ここで、セルｘに対して算出する値をそれぞれ、ｆ（ｎｘ）、ｇ（ｎｘ）、ｈ（ｎｘ）と記載する。基準位置３０２の上方に位置するセル３１０ａのｇ（ｎ３１０ａ）の値は、基準位置３０２からの距離が１であるので１となる。また、ｈ（ｎ３１０ａ）の値は、セル３１０ａから平均座標３０３までのＸ軸方向及びＹ軸方向の長さを用いて、以下の数式（４）で算出することができる。
【数４】
0006624950.tif 000005
【０１１１】
即ち、ｆ（ｎ３１０ａ）の値は、１＋４．１２＝５．１２となる。図１２（ｂ）は、基準位置３０２の周辺セルに対して、ｆ値を算出した結果を表す図である。セル３１０ｂ及びセル３１０ｃについてもｆ値を計算すると、セル３１０ｂのｆ値が最小であることがわかる。そこで、基準位置３０２からセル３１０ｂを通過する経路を選択する。仮にｆ値が同一となった場合は、いずれの経路を選択してもよい。
【０１１２】
次に、セル３１０ｂの周辺セルに対して、ｆ値を算出する。図１２（ｃ）は、セル３１０ｂの周辺セルに対して、ｆ値を算出した結果を表す図である。ここで、セル３１１ａのｆ値が最小であることがわかるため、セル３１１ａを通過する経路を選択する。なお、障害物のセル３０４については経路とすることができないため、ｆ値は算出しない。
【０１１３】
同様に、図１２（ｄ）及び（ｅ）に示すように、ｆ値を算出して経路を選択する。最後に、図１２（ｆ）に示すように、セル３１４までの経路が最短経路であることがわかる。そこで、平均座標３０３に対してｆ値を算出すると、ｆ（ｎ３０３）＝６となる。この値が、基準位置３０２から平均座標３０３までの最短距離である。
【０１１４】
このように、仮想空間内にグラフを設定して、障害物を考慮しつつ、基準位置から平均座標までの最短距離を算出することができる。上述の方法では障害物を通過できない領域としたが、セルを通過する際のコストに有意な重み付けをすることとしてもよい。
【０１１５】
続いて、火に関する発音オブジェクトに対して、ステップＳ４５の距離算出処理まで完了したら、次は水に関する発音オブジェクトに対して、再びステップＳ４４の座標平均値算出処理及びステップＳ４５の距離算出処理を行う。このように、サブ領域に含まれる発音オブジェクトの全ての種類に対して処理が完了するまで繰り返す。
【０１１６】
さらに、ステップＳ４３のオブジェクト抽出処理から、ステップＳ４５の距離算出処理までを、全てのサブ領域に対して処理が完了するまで繰り返す。
【０１１７】
全ての領域に対して処理が完了した後、仮想音源を配置する位置を特定する（ステップＳ４６）。ここで、ステップＳ４４にて算出した各サブ領域における平均座標のいずれかのうち、音を聴取する基準位置から最も距離の短い位置を、仮想音源を配置する位置とすることができる。
【０１１８】
次に、ステップＳ４６にて特定された位置に仮想音源を配置する（ステップＳ４７）。そして、仮想音源から発せられる音量を特定する（ステップＳ４８）。音量は、所定の領域に含まれるすべての発音オブジェクトの数に基づいて特定するものである。発音オブジェクトの数に比例して動的に音量を変更するものであってもよいし、発音オブジェクトの数と音量との関係を、予めデータテーブルに保持するものであってもよい。
【０１１９】
続いて、ステップＳ４７にて配置された仮想音源から、ステップＳ４８にて特定された音量で、発音オブジェクトに関連付けられた音を発音させる（ステップＳ４９）。
【０１２０】
最後に、前回ステップＳ４１にて基準位置を設定してから、所定の時間が経過したか判定する（ステップＳ５０）。所定の時間が経過した場合は（ステップＳ５０にてＹＥＳ）、再度ステップＳ４１に戻って基準位置を設定し、発音処理プログラムを再帰的に実行する。所定の時間が経過しない場合は（ステップＳ５０にてＮＯ）、終了する。
【０１２１】
第六の実施形態において、音を聴取する基準位置は、プレイヤの操作により変更され得るものであってもよい。上述の手法では、所定の時間が経過したことを再帰的実行の条件としたが、例えば、基準位置が所定の範囲を超えて変更されたか否かの判断を行い、発音処理プログラムを再帰的に実行するようにしてもよい。
【０１２２】
第六の実施形態において、所定の領域をＸ軸、Ｙ軸、及び、Ｚ軸について分割してサブ領域を設定したが、Ｘ軸及びＹ軸のみについて分割することとしてもよい。発音オブジェクトの配置される高さが所定の範囲内に収まる場合には、より計算処理を少なくして負荷を軽減しつつ、音の定位と外見上の不自然さを緩和することが可能となる。
【０１２３】
第六の実施形態において、上述した手法は、仮想空間におけるシミュレーションについて適用することができる。特に、サンドボックス型ゲームのように、プレイヤの操作指示により自由にオブジェクトを配置又は排除可能なゲームであって、リアルタイムかつシームレスに処理を行う必要がある場合に有用である。
【０１２４】
第六の実施形態において、上述した手法は、方向や定位感を意識し、音の聞こえ方の自然さを重視するものであるため、複数のスピーカを動作させて発音させるシステムにおいて有効である。
【０１２５】
第六の実施の形態の一側面として、発音オブジェクトの種類毎に処理することにより、オブジェクトの種類毎に仮想音源の位置を特定することができるため、音の定位と外見上の不自然さを緩和することができる。
【０１２６】
第六の実施の形態の一側面として、サブ領域内に存在する発音オブジェクトの数に基づいて仮想音源から発せられる音量を特定することで、数の多い発音オブジェクトに関連する音の音量を大きくすることができ、より自然に発音させることが可能となる。
【０１２７】
第六の実施の形態の一側面として、音を聴取する基準位置に最も近い位置の仮想音源の位置を採用することで、仮想空間における発音処理についての負荷を軽減しつつ、音の定位に最も影響の大きい、最も近い位置の仮想音源から発音させることで、音の定位と外観上の不自然さを緩和することが可能である。さらに、仮想音源の位置を一意に決めることができるため、サウンドデザイナによる音源配置を検討するコストを削減することができる。
【０１２８】
第六の実施の形態の一側面として、所定の領域が音を聴取する基準位置に応じて設定されることで、動的に所定の領域を定めることができ、基準位置が変化した後の発音処理に関しても、音の定位と外見上の不自然さを緩和することが可能である。
【０１２９】
第六の実施の形態の一側面として、所定の時間間隔毎に繰り返し所定の領域の情報を更新することにより、処理負荷を軽減するとともに、プレイヤキャラクタの位置の移動等によって基準位置が変化しても、音の定位と外見上の不自然さが大きくなる前に、これを是正することができる。
【０１３０】
第六の実施の形態において、「コンピュータ装置」、「仮想空間」、「オブジェクト」、「発音」、「抽出」、「位置情報」、「位置」、「仮想音源」、「音源」、及び、「配置」とは、それぞれ第一の実施形態において記載した内容と同一である。
【０１３１】
第六の実施の形態において、「伝播」及び「障害物」とは、第二の実施形態において記載した内容と同一である。第六の実施の形態において、「音量」とは、第四の実施形態において記載した内容と同一である。第六の実施の形態において、「座標」及び「平均値」とは、第五の実施形態において記載した内容と同一である。
【０１３２】
［付記］
上で述べた実施の形態の説明は、下記の発明を、発明の属する分野における通常の知識を有する者がその実施をすることができるように記載した。
【０１３３】
［１］  コンピュータ装置において、仮想空間内に配置されるオブジェクトをもとに、発音処理を実行させる発音処理プログラムであって、
コンピュータ装置を、
仮想空間内の所定の領域内に存在する複数のオブジェクトを抽出するオブジェクト抽出手段、
抽出された複数のオブジェクトの位置情報に基づいて、仮想音源の位置を特定する位置特定手段、
特定された位置に仮想音源を配置する仮想音源配置手段、
配置された仮想音源から発音させる発音手段
として機能させる発音処理プログラム。
【０１３４】
［２］  仮想空間内に複数の所定の領域が設けられ、所定の領域は音の伝播を妨害する障害物が配置され得るものであり、
コンピュータ装置を、さらに、該障害物を回避するように、音を聴取する基準位置から、位置特定手段により特定された位置までの距離を算出する距離算出手段として機能させ、
仮想音源配置手段が、位置特定手段により特定された複数の位置のうち、距離算出手段により算出された距離が最も短い位置に仮想音源を配置することを特徴とする、
［１］に記載の発音処理プログラム。
【０１３５】
［３］  位置特定手段が、オブジェクトの種類毎に仮想音源の位置を特定するものであり、
発音手段がオブジェクトの種類毎に配置された仮想音源から、オブジェクトの種類に応じた音を発音させる、［１］又は［２］に記載の発音処理プログラム。
【０１３６】
［４］  コンピュータ装置を、さらに、オブジェクト抽出手段により抽出されたオブジェクトの数に基づいて、仮想音源から発せられる音量を特定する音量特定手段として機能させ、
発音手段が、特定された音量で発音させる、［１］〜［３］のいずれかに記載の発音処理プログラム。
【０１３７】
［５］  位置特定手段が、オブジェクト抽出手段により抽出されたオブジェクトの座標情報を用いて、座標の平均値を算出して位置を特定することを特徴とする、［１］〜［４］のいずれかに記載の発音処理プログラム。
【０１３８】
［６］  コンピュータ装置を、さらに、音を聴取する基準位置に応じて所定の領域を設定する領域設定手段として機能させる、［１］〜［５］のいずれかに記載の発音処理プログラム。
【０１３９】
［７］  音を聴取する基準位置が任意の位置に変更されるものであり、
領域設定手段、オブジェクト抽出手段、位置特定手段、及び、仮想音源配置手段が、所定の時間間隔毎に実行される、［６］に記載の発音処理プログラム。
【０１４０】
［８］  距離算出手段が、Ａ＊探索アルゴリズムを用いることを特徴とする、［２］〜［７］のいずれかに記載の発音処理プログラム。
【０１４１】
［９］  仮想空間内に配置されるオブジェクトをもとに、発音処理を実行する発音処理装置であって、
仮想空間内の所定の領域内に存在する複数のオブジェクトを抽出するオブジェクト抽出手段と、
抽出された複数のオブジェクトの位置情報に基づいて、仮想音源の位置を特定する位置特定手段と、
特定された位置に仮想音源を配置する仮想音源配置手段と、
配置された仮想音源から発音させる発音手段と
を備える発音処理装置。
【０１４２】
［１０］  コンピュータ装置において、仮想空間内に配置されるオブジェクトをもとに発音処理を実行する発音処理方法であって、
仮想空間内の所定の領域内に存在する複数のオブジェクトを抽出するステップと、
抽出された複数のオブジェクトの位置情報に基づいて、仮想音源の位置を特定するステップと、
特定された位置に仮想音源を配置するステップと、
配置された仮想音源から発音させるステップと
を有する発音処理方法。
【符号の説明】
【０１４３】
１      コンピュータ装置
１１    制御部
１２    ＲＡＭ
１３    ストレージ部
１４    サウンド処理部
１５    グラフィックス処理部
１６    ＤＶＤ／ＣＤ−ＲＯＭドライブ
１７    通信インタフェース
１８    インタフェース部
１９    ビデオメモリ
２      通信ネットワーク
２０    入力部
２００  仮想空間
２０１  基準位置
２０２  所定の領域
２０３  サブ領域
２１    サウンド出力装置
２２    表示部
２３    表示画面
２４    記録媒体
【図１】
0006624950.tif 000006
【図２】
0006624950.tif 000007
【図３】
0006624950.tif 000008
【図４】
0006624950.tif 000009
【図５】
0006624950.tif 000010
【図６】
0006624950.tif 000011
【図７】
0006624950.tif 000012
【図８】
0006624950.tif 000013
【図９】
0006624950.tif 000014
【図１０】
0006624950.tif 000015
【図１１】
0006624950.tif 000016
【図１２】
0006624950.tif 000017