(57)【要約】【課題】処理装置に過大な負荷をかけずに、２つのオブジェクト間の距離を推定できる音声制御プログラムおよび音声制御装置を提供する。【解決手段】コンピュータを第１オブジェクトが存在する地点から第２オブジェクトが存在する地点に至る全ての経路の経路長を推定する距離算出手段として機能させる。距離算出手段には、２つのセグメント間の距離を取得できるテーブルを備える。距離算出手段は、着目している経路が横切るセグメントについて、互いに隣接したセグメント間の距離をテーブルを用いて求める、求めたセグメント間の距離の合計値と、着目している経路において第１オブジェクトに最も近いセグメントと第１オブジェクトとの距離と、着目している経路において第２オブジェクトに最も近いセグメントと第２オブジェクトとの距離との合算距離を経路長として求める、という動作を各経路について行う。【選択図】図５
2020195673.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータを、
複数のエリアを有した仮想空間であって、第１オブジェクトおよび第２オブジェクトが前記エリア間を移動する仮想空間を生成する仮想空間生成手段と、
前記仮想空間内の音として音声データを再生する再生手段と、
前記第１オブジェクトが存在する地点から前記第２オブジェクトが存在する地点に至る全ての経路の経路長を推定する距離算出手段と、
前記経路長の少なくとも一つを用いて、前記再生手段を制御する音声制御手段と、
として機能させ、
互いに隣接した前記エリアの境界をセグメントと命名すると、
前記距離算出手段は、２つのセグメント間の距離を取得できるテーブルを備え、
前記距離算出手段は、前記経路長を求める手続として、
着目している経路が横切るセグメントについて、互いに隣接したセグメント間の距離を前記テーブルを用いて求める、
求めたセグメント間の距離の合計値と、着目している経路において前記第１オブジェクトに最も近い前記セグメントと前記第１オブジェクトとの距離と、着目している経路において前記第２オブジェクトに最も近い前記セグメントと前記第２オブジェクトとの距離との合算距離を前記経路長として求める、
という動作を各経路について行うことを特徴とする音声制御プログラム。
【請求項２】
請求項１において、
前記音声制御手段は、前記距離算出手段が求めた経路長のうちの最小値を用いて、前記再生手段を制御することを特徴とする音声制御プログラム。
【請求項３】
請求項１または請求項２において、
前記距離算出手段は、前記第１オブジェクトが存在する第１エリアと、前記第２オブジェクトが存在する第２エリアが同一の場合には、前記第１オブジェクトと前記第２オブジェクトとの直線距離を前記経路長として求めることを特徴とする音声制御プログラム。
【請求項４】
請求項１から請求項３の何れかにおいて、
前記距離算出手段は、前記第１オブジェクトが存在する第１エリアと、前記第２オブジェクトが存在する第２エリアとが隣接している場合には、前記第１オブジェクトと前記第２オブジェクトとの直線距離を前記経路長として求めることを特徴とする音声制御プログラム。
【請求項５】
請求項４において、
前記距離算出手段は、
前記第１エリアと前記第２エリアとが隣接している第１状態から、前記第１エリアと前記第２エリアとの間に他のエリアが存在する第２状態に変化した場合において、
前記第２状態における前記合算距離が所定の閾値よりも小さい場合には、前記第１オブジェクトと前記第２オブジェクトとの直線距離を前記経路長として求める
ことを特徴とする音声制御プログラム。
【請求項６】
請求項４において、
前記距離算出手段は、
前記第１エリアと前記第２エリアとが隣接している第１状態から、前記第１エリアと前記第２エリアとの間に他のエリアが存在する第２状態に変化した場合において、
前記第１状態における前記直線距離から、前記第２状態における前記合算距離まで、所定の時間をかけて、出力する前記経路長を変化させる
ことを特徴とする音声制御プログラム。
【請求項７】
請求項１から請求項６の何れかの音声制御プログラムを記憶した記憶部と、
前記音声制御プログラムを実行する制御部と、
を備えたことを特徴とする音声制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、音声制御プログラム、および音声制御装置に関する。
【背景技術】
【０００２】
近年のゲームでは、ゲーム空間において、音源と仮想の受音点との距離に応じて音量を調整するものがある（例えば特許文献１を参照）。それによって、音声をリアルに表現することができる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−０２８１６９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
例えば、音量を調整する際に、ゲーム中にリアルタイムに音源と仮想の受音点との距離を求めるとすれば、一定時間ごとに経路探索を行う必要があり、処理装置（ゲーム装置やパーソナルコンピュータなど）の負荷が過大になりがちである。この負荷は、音源と仮想の受音点との距離が大きいほど増大する傾向にある。
【０００５】
そこで、本発明は、処理装置に過大な負荷をかけずに、２つのオブジェクト間の距離を推定できる音声制御プログラムおよび音声制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
第１の発明は、コンピュータを、
複数のエリアを有した仮想空間であって、第１オブジェクトおよび第２オブジェクトが前記エリア間を移動する仮想空間を生成する仮想空間生成手段と、
前記仮想空間内の音として音声データを再生する再生手段と、
前記第１オブジェクトが存在する地点から前記第２オブジェクトが存在する地点に至る全ての経路の経路長を推定する距離算出手段と、
前記経路長の少なくとも一つを用いて、前記再生手段を制御する音声制御手段と、
として機能させ、
互いに隣接した前記エリアの境界をセグメントと命名すると、
前記距離算出手段は、２つのセグメント間の距離を取得できるテーブルを備え、
前記距離算出手段は、前記経路長を求める手続として、
着目している経路が横切るセグメントについて、互いに隣接したセグメント間の距離を前記テーブルを用いて求める、
求めたセグメント間の距離の合計値と、着目している経路において前記第１オブジェクトに最も近い前記セグメントと前記第１オブジェクトとの距離と、着目している経路において前記第２オブジェクトに最も近い前記セグメントと前記第２オブジェクトとの距離との合算距離を前記経路長として求める、
という動作を各経路について行うことを特徴とする音声制御プログラムである。
【０００７】
また、第１発明において、前記音声制御手段は、前記距離算出手段が求めた経路長のうちの最小値を用いて、前記再生手段を制御するようにしてもよい。
【０００８】
また、前記発明においては、前記距離算出手段は、前記第１オブジェクトが存在する第１エリアと、前記第２オブジェクトが存在する第２エリアが同一の場合には、前記第１オブジェクトと前記第２オブジェクトとの直線距離を前記経路長として求めるようにしてもよい。
【０００９】
また、前記発明においては、前記距離算出手段は、前記第１オブジェクトが存在する第１エリアと、前記第２オブジェクトが存在する第２エリアとが隣接している場合には、前記第１オブジェクトと前記第２オブジェクトとの直線距離を前記経路長として求めるようにしてもよい。
【００１０】
また、前記発明においては、前記距離算出手段は、前記第１エリアと前記第２エリアとが隣接している第１状態から、前記第１エリアと前記第２エリアとの間に他のエリアが存在する第２状態に変化した場合において、
前記第２状態における前記合算距離が所定の閾値よりも小さい場合には、前記第１オブジェクトと前記第２オブジェクトとの直線距離を前記経路長として求めるようにしてもよい。
【００１１】
また、前記発明においては、前記距離算出手段は、前記第１エリアと前記第２エリアとが隣接している第１状態から、前記第１エリアと前記第２エリアとの間に他のエリアが存在する第２状態に変化した場合において、
前記第１状態における前記直線距離から、前記第２状態における前記合算距離まで、所定の時間をかけて、出力する前記経路長を変化させるようにしてもよい。
【００１２】
また、第２の発明は、前記の何れかの発明の音声制御プログラムを記憶した記憶部と、
前記音声制御プログラムを実行する制御部と、
を備えたことを特徴とする音声制御装置である。
【発明の効果】
【００１３】
本発明によれば、処理装置に過大な負荷をかけずに、２つのオブジェクト間の距離を推定できる。
【図面の簡単な説明】
【００１４】
【図１】本実施形態のゲームシステムの機能的構成を示すブロック図である。
【図２】ゲーム空間の構成例を示すマップ図である。
【図３】セグメントの配置例を示す図である。
【図４】テーブルＴｂ１の構成例を示す。
【図５】オブジェクト間の経路を例示する図である。
【図６】プレイヤキャラクタと敵キャラクタが同一エリアに居る状態における経路長推定の手法を説明する図である。
【図７】プレイヤキャラクタが居るエリアと敵キャラクタが居るエリアとが隣接している状態における経路長推定の手法を説明する図である。
【図８】プレイヤキャラクタが居るエリアと敵キャラクタが居るエリアとの間に他のエリアが存在する状態における経路長推定の手法を説明する図である。
【発明を実施するための形態】
【００１５】
［実施形態］
本発明の実施形態にかかる音声制御プログラム、および音声制御装置について、図面を参照して説明する。なお、本発明の音声制御プログラムは、ゲームプログラムとして実装されている。音声制御装置は、ゲームシステム（ゲーム装置）として実現されている。
【００１６】
〈ゲームの説明〉
図１は、本実施形態のゲームシステム１の機能的構成を示すブロック図である。図１に示すように、ゲームシステム１では、サーバ装置２とゲーム装置５とが、通信ネットワーク６を介して互いに通信可能に接続されている。
【００１７】
本実施形態で説明するゲームは、ユーザの操作を受けて、プレイヤキャラクタを三次元のゲーム空間（仮想空間）で活動させたり、プレイヤキャラクタ同士でグループを編成してノンプレイヤキャラクタである敵キャラクタと戦闘したりするアクションゲームである。ユーザは、通信ネットワーク６を介して他のユーザとオンラインにてゲームを進めることができる。また、ユーザは、通信ネットワーク６を介さずに個人でゲームを進めることもできる。
【００１８】
図２に本ゲームのゲーム空間の一部を例示する。このゲーム空間は、複数のステージＳＴＧで構成され、各ステージＳＴＧは、図２に示すように、複数のエリアを有する。図２の例では、複数のエリアとして、複数の戦闘エリアＣＡ１〜ＣＡ８と複数の移動エリア（接続エリア）ＭＡ１〜ＭＡ１１とが含まれている。これらのエリアＣＡ１〜ＣＡ８，ＭＡ１〜ＭＡ１１は、互いにシームレスに接続されている。
【００１９】
戦闘エリアＣＡ１〜ＣＡ８は、プレイヤキャラクタＰＣ１と敵キャラクタＥＭ１，ＥＭ２とが戦闘を行うエリアである。各戦闘エリアＣＡ１〜ＣＡ８は互いに離れて位置する。敵キャラクタＥＭ１，ＥＭ２は、戦闘場所である戦闘エリアＣＡ１〜ＣＡ８を、戦闘しながら自発的に出ることはない。
【００２０】
移動エリアＭＡ１〜ＭＡ１１は、異なる戦闘エリアＣＡ１〜ＣＡ８同士を繋ぐものである。敵キャラクタＥＭ１，ＥＭ２は、移動エリアＭＡ１〜ＭＡ１１内を移動して、滞在する戦闘エリアＣＡ１〜ＣＡ８を変更することができる。移動エリアＭＡ１〜ＭＡ１１では、敵キャラクタＥＭ１，ＥＭ２は、プレイヤキャラクタＰＣ１からの攻撃を受けることはあっても、自発的にプレイヤキャラクタＰＣ１に攻撃を加えることはない。
【００２１】
このようなゲーム空間にて繰り広げられる各キャラクタＰＣ１，ＥＭ１，ＥＭ２の動作、および、各キャラクタＰＣ１，ＥＭ１，ＥＭ２の位置するエリアＣＡ１〜ＣＡ８，ＭＡ１〜ＭＡ１１などに応じて、各場面に適した楽曲（ＢＧＭ）、効果音、環境音などの音声が出力される。
【００２２】
本ゲームプログラムでは、複数の特徴点が、仮想空間におけるプレイヤキャラクタ等の移動可能領域上に配置されている。特徴点には、その地点における音響効果の情報、座標値、特徴点が属するエリアなどの情報が対応づけられている。これらの特徴点は、ディスプレイ６１には表示されない。本ゲームプログラムでは、楽曲（ＢＧＭ）、効果音、環境音などの音声を出力する際に、プレイヤキャラクタＰＣ１の最近傍の特徴点に対応した情報を用いる。
【００２３】
また、本実施形態に係るゲームでは、例えばプレイヤキャラクタＰＣ１と敵キャラクタＥＭ１とが戦闘している場合、プレイヤキャラクタＰＣ１と敵対している敵キャラクタＥＭ１に起因した楽曲が出力される。その楽曲の音量は、プレイヤキャラクタＰＣ１と敵キャラクタＥＭ１との距離に応じて制御される。これにより、ゲームをプレイするユーザが感じる臨場感および躍動感は、より向上したものとなる。
【００２４】
前記ゲームは、プレイステーション（登録商標）、パーソナルコンピュータ、ＰｌａｙＳｔａｔｉｏｎ  Ｖｉｔａ（登録商標）などのゲーム装置５において実行される。
【００２５】
〈ゲームシステム１の概要〉
図１に示すように、ゲームシステム１は、サーバ装置２およびゲーム装置５にて構成される。
【００２６】
サーバ装置２は、ゲームプログラムの提供およびゲームデータの管理を行う。
【００２７】
ゲーム装置５は、ユーザの操作に基づいて前記ゲームプログラムに応じたゲームを実行する。そのために、ゲーム装置５は、通信ネットワーク６を介してサーバ装置２からゲームプログラム、ゲームデータ、およびこれらのアップデート版を受信（具体的にはダウンロードおよびインストール）することが可能である。
【００２８】
なお、ゲーム装置５は、ゲームを進行するにあたり、先ずはサーバ装置２にログインすることができる。ユーザには、アカウント情報が割り当てられており、アカウント情報には、ユーザの識別情報（ユーザＩＤ）およびパスワードが含まれる。
【００２９】
サーバ装置２は、ログイン時にゲーム装置５から送信されたアカウント情報に基づき、アクセスのあったゲーム装置５に対してユーザ認証を行う。ユーザ認証が完了したゲーム装置５は、ゲーム進行に必要なデータがサーバ装置２から送られると、ユーザの操作に基づいてゲーム画像や音声をディスプレイ６１およびスピーカ６２に出力しながら、ゲームを進行させる。
【００３０】
なお、ゲーム進行に必要なデータは、ログイン時の他、ゲーム進行の所定タイミング（例えばプレイヤキャラクタがクリアする課題（以下「クエスト」）をユーザが選択した時）においても、サーバ装置２から送られる。
【００３１】
このように、サーバ装置２とゲーム装置５とが相互に通信を行うことにより、サーバ装置２とゲーム装置５とで同期を取りながらゲームを進行させることもできる。
【００３２】
〈ハードウェア構成〉
以下、サーバ装置２のハードウェア構成、および、ゲーム装置５のハードウェア構成について説明する。
【００３３】
〈サーバ装置２の構成〉
サーバ装置２は、ネットワークインターフェース２１、記憶部２２および制御部２３を有する。ネットワークインターフェース２１および記憶部２２は、バス２９を介して制御部２３と電気的に接続されている。
【００３４】
ネットワークインターフェース２１は、インターネットやＬＡＮなどの通信ネットワーク６を介してゲーム装置５と通信可能に接続される。ネットワークインターフェース２１を介して、ゲーム装置５へのゲームデータやゲームプログラムの送信、およびアカウント情報のゲーム装置５からの受信が行われる。
【００３５】
記憶部２２は、ＨＤＤ、ＳＳＤ、ＲＡＭおよびＲＯＭなどで構成される。記憶部２２には、ユーザを照合するためのアカウント情報、ユーザのログイン履歴、ゲームプログラム、ゲームデータ、ゲームプログラム以外の各種プログラムなどが格納されている。
【００３６】
制御部２３は、ＣＰＵおよび半導体メモリを含むマイクロコンピュータで構成され、サーバ装置２自身の動作を制御する。
【００３７】
〈サーバ装置２における制御部２３の機能的構成〉
制御部２３は、各種プログラムを実行することにより、情報処理手段２３１、照合手段２３２および配信手段２３３として機能する。
【００３８】
情報処理手段２３１は、ゲームプログラムの配信に必要なデータを、ゲーム装置５との間で送受信する。情報処理手段２３１が受信する前記データとしては、ゲームプログラムのダウンロード要求情報が挙げられる。情報処理手段２３１が送信する前記データとしては、例えばゲームプログラムをゲーム装置５が受信したかを確認するための情報が挙げられる。
【００３９】
照合手段２３２は、ゲーム装置５から受信したアカウント情報を用いて、ユーザの認証処理を行う。
【００４０】
配信手段２３３は、ゲームプログラムのダウンロード要求情報およびユーザのアカウント情報を情報処理手段２３１が受信した後、ゲームプログラムおよび受信したアカウント情報に対応するゲームデータを、ゲーム装置５に配信（送信）する。
【００４１】
〈ゲーム装置５の構成〉
ゲーム装置５には、ディスプレイ６１、スピーカ６２およびゲームコントローラ６３が外部接続または内蔵される。ゲーム装置５では、サーバ装置２から受信したゲームプログラムおよびゲームデータに基づいてゲームが進行される。
【００４２】
ゲーム装置５は、ネットワークインターフェース５１、グラフィック処理部５２、オーディオ処理部５３、操作部５４、記憶部５５および制御部５６を有する。ネットワークインターフェース５１、グラフィック処理部５２、オーディオ処理部５３、操作部５４および記憶部５５は、バス５９を介して制御部５６と電気的に接続されている。
【００４３】
ネットワークインターフェース５１は、ゲーム装置５とサーバ装置２との間で各種データを送受信するために、通信ネットワーク６に通信可能に接続される。
【００４４】
グラフィック処理部５２は、制御部５６から出力されるゲーム画像情報に従って、仮想ゲーム空間に関する各種オブジェクトを含むゲーム画像を、動画形式で描画する。グラフィック処理部５２は、例えば液晶型であるディスプレイ６１と接続されており、動画形式に描画されたゲーム画像は、ゲーム画面としてディスプレイ６１上に表示される。
【００４５】
オーディオ処理部５３は、制御部５６の指示に従って楽曲を含むゲーム音声を再生および合成する。オーディオ処理部５３は、スピーカ６２と接続されている。オーディオ処理部５３によって再生および合成された音声は、スピーカ６２から出力される。
【００４６】
操作部５４は、ゲームコントローラ６３と接続され、操作入力に関するデータをゲームコントローラ６３との間で送受信する。例えば、ユーザは、ゲームコントローラ６３の各種ボタンを押下することで、ゲーム装置５に操作信号を入力する。
【００４７】
記憶部５５は、ＨＤＤ、ＳＳＤ、ＲＡＭおよびＲＯＭなどで構成される。記憶部５５は、サーバ装置２からダウンロードしたゲームプログラムおよびゲームデータを記憶することができる。本実施形態において、記憶部５５に記憶されるゲームデータには、前記ゲーム音声のデータが含まれる。
【００４８】
制御部５６は、ＣＰＵおよび半導体メモリを含むマイクロコンピュータで構成され、ゲーム装置５の動作を制御する。
【００４９】
〈ゲーム装置５における制御部５６の機能的構成〉
制御部５６は、前記ゲームプログラムを実行することにより、通信手段５６１、ゲーム空間生成手段５６２、プレイヤキャラクタ動作制御手段５６３、敵キャラクタ動作制御手段５６４、再生手段５６５、距離推定手段５６６、および音声制御手段５６７として機能する。
【００５０】
このうち、主にゲーム空間生成手段５６２およびプレイヤキャラクタ動作制御手段５６３は、ゲーム進行手段としての役割を担う。ゲーム進行手段は、ゲームデータに含まれるゲーム空間オブジェクトおよびテクスチャなどのデータを記憶部５５から読み出して、ゲーム画像情報を生成する。ゲーム画像情報がグラフィック処理部５２によって処理されることにより、ディスプレイ６１には処理後のゲーム画像が表示される。
【００５１】
通信手段５６１は、ネットワークインターフェース５１を介してサーバ装置２との通信を行う機能である。通信手段５６１は、アカウント情報、および、ユーザの操作に基づく新たなゲームデータのダウンロード要求情報を、サーバ装置２に送信する。通信手段５６１は、サーバ装置２から送られてきた新たなゲームデータなどを受信する。
【００５２】
ゲーム空間生成手段５６２（仮想空間生成手段）は、三次元のゲーム空間、すなわち、ユーザによるゲームコントローラ６３の操作によりプレイヤキャラクタＰＣ１が動作する仮想空間を生成する。
【００５３】
プレイヤキャラクタ動作制御手段５６３は、前記ゲーム空間にプレイヤキャラクタＰＣ１を配置する。プレイヤキャラクタ動作制御手段５６３は、ゲームコントローラ６３を介してユーザが行う操作に基づいて、そのプレイヤキャラクタＰＣ１をゲーム空間内で動作させる。
【００５４】
敵キャラクタ動作制御手段５６４は、ゲームの進行やクエストに応じた敵キャラクタＥＭ１，ＥＭ２を前記ゲーム空間に配置する。敵キャラクタ動作制御手段５６４は、その敵キャラクタＥＭ１，ＥＭ２に対し、ゲームやクエストの進行状況に応じて予めある程度設定された動作を行わせる。また、敵キャラクタ動作制御手段５６４は、プレイヤキャラクタＰＣ１の動作に応じた動作を、敵キャラクタＥＭ１，ＥＭ２に行わせる。
【００５５】
再生手段５６５は、ゲームの進行状況やクエストの内容、プレイヤキャラクタＰＣ１および敵キャラクタＥＭ１，ＥＭ２の動作などに応じて、音声データを記憶部５５内から逐次読み出し、オーディオ処理部５３を介してスピーカ６２から音声を出力させる。
【００５６】
前記音声には、各キャラクタＰＣ１，ＥＭ１，ＥＭ２のボイスや足音、咆哮音などの効果音、敵キャラクタＥＭ１，ＥＭ２固有の楽曲などが含まれる。
【００５７】
特に、再生手段５６５は、楽曲選択処理および音量変化処理を行う。楽曲選択処理とは、ゲーム進行中の楽曲を各種状況に応じて選択し、選択した当該楽曲をスピーカ６２から出力させる処理である。音量変化処理とは、スピーカ６２から出力されている楽曲の音量を、各種条件に応じて変化させる処理である。
【００５８】
再生手段５６５は、音量変化処理に際して、音声制御手段５６７の制御に従って動作する。音声制御手段５６７は、再生手段５６５の制御に際して、距離推定手段５６６が求めたオブジェクト間の距離（経路長）を利用する。
【００５９】
〈距離の推定〉
距離推定手段５６６は、ゲーム空間（仮想空間）内を移動する２つのオブジェクトについて、一方のオブジェクト（第１オブジェクト）が存在する地点から、もう一方のオブジェクト（第２オブジェクト）が存在する地点に至るまでの全ての経路について、経路長Ｄを推定する。
【００６０】
本ゲームプログラムでは、経路長Ｄの推定を容易にするために、「セグメント」という概念を定義する。本ゲームプログラムにおけるセグメントは、互いに隣接したエリア（戦闘エリア、移動エリア）の境界である。
【００６１】
図３にセグメントを例示する。図３は、ゲーム空間（以下、仮想空間ＶＳ）の一部分を示している。図３の例では、戦闘エリアＣＡ１０１〜ＣＡ１０３と、移動エリアＭＡ１０１〜Ａ１０４が存在する。
【００６２】
これらの戦闘エリアＣＡ１０１〜ＣＡ１０３と移動エリアＭＡ１０１〜Ａ１０４との境界がセグメントである。この例では、図３に示すように、セグメントｓｇ１〜ｓｇ７が存在する。図３では、説明の便宜上、各セグメントを直線で記載しているが、セグメントは曲線の場合もある。
【００６３】
距離推定手段５６６は、２つのセグメント間の距離を取得できるテーブルＴｂ１を備えている。このゲームプログラムでは、セグメント上の代表点同士の距離をセグメント間の距離として定義している。このゲームプログラムでは、一例として、代表点には、セグメントの中点を採用した（図３等の黒丸を参照）。
【００６４】
テーブルＴｂ１では、セグメント間の距離は、その途中にあるオブジェクトを考慮して算出している。例えば、プレイヤキャラクタＰＣ１が通れない障害物（例えば岩や大木など）がセグメント間にある場合には、それを迂回した経路の経路長がセグメント間の距離としてテーブルＴｂ１に規定されている。したがって、テーブルＴｂ１に規定されている距離は、代表点間の直線距離とは限らない。
【００６５】
図４にテーブルＴｂ１を例示する。テーブル中に示した数値がセグメント間の距離である。例えば、セグメントｓｇ１とセグメントｓｇ２との距離は１５ｍ（メートル）である。テーブルＴｂ１では、距離の単位としてメートルを付している。この仮想空間ＶＳでは、仮想空間ＶＳにおける距離１．０に現実世界の１．０メートルを対応させて仮想空間ＶＳ内のオブジェクト（例えばキャラクタ、建物、樹木など）の大きさなどを構成している。勿論、仮想空間ＶＳ内の距離の値に、どのような単位を与えるかは任意である。
【００６６】
距離推定手段５６６は、テーブルＴｂ２も備えている。テーブルＴｂ２は、第１オブジェクトが存在する第１エリアから第２オブジェクトが存在する第２エリアに至る全ての経路を求めるための情報を保持している。
【００６７】
本実施形態では、テーブルＴｂ２は、要素数２の配列を要素として持つリストとして実装されている。以下に、テーブルＴｂ２の内容を例示する。
【００６８】
sg1:{CA101,MA101}
sg2:{CA101,MA102}
sg3:{CA102,MA102}
・・・
sg7:{CA103,MA104}
この例では、各行がテーブルの構成要素である。各行には、セグメントとそのセグメントに面しているエリア（戦闘エリアと移動エリア）の情報が格納されている。テーブルの各行において、：の左側がセグメントを表し、｛｝で囲まれた要素が、そのセグメントが接しているエリアを示している。
【００６９】
例えば、テーブルＴｂ２の１行目では、：の左側には、ｓｇ１と記載されている。これは、テーブルＴｂ２の１行目がセグメントｓｇ１に関する情報を含んでいることを表している。テーブルＴｂ２の｛CA101,MA101｝等は、要素数２の配列である。
【００７０】
すなわち、テーブルＴｂ２では、セグメントが区切っているエリアの情報が、要素数が２の配列に格納されている。例えば、テーブルＴｂ２の１行目にかかる配列は、｛CA101,MA101｝であり、この配列は、“CA101”と“MA101”とを要素として含んでいる。この配列は、セグメントｓｇ１が戦闘エリアＣＡ１０１と移動エリアＭＡ１０１の境界であることを示している。
【００７１】
テーブルＴｂ１およびテーブルＴｂ２は、予め作成され、ゲームプログラムとともに配布（配信）される。
【００７２】
距離推定手段５６６は、経路長を求める手続として次のＳｔｅｐ１〜Ｓｔｅｐ４の処理を行う。
【００７３】
Ｓｔｅｐ１：オブジェクトの存在エリアの特定
Ｓｔｅｐ２：２つのオブジェクト間の経路の抽出
Ｓｔｅｐ３：隣接したセグメント間の距離の値の探索
Ｓｔｅｐ４：経路長の算出（推定）
以下、これらの工程について説明する。
【００７４】
−Ｓｔｅｐ１−
Ｓｔｅｐ１では、距離推定手段５６６は、第１オブジェクト（例えばプレイヤキャラクタ）、および第２オブジェクト（例えば敵キャラクタ）が存在するエリアを特定する。これらのオブジェクトが存在するエリアは、例えば、オブジェクトの座標値を前記特徴点の座標値と比較するなどして特定することができる。
【００７５】
−Ｓｔｅｐ２−
Ｓｔｅｐ２では、距離推定手段５６６は、第１オブジェクトから第２オブジェクトに至る経路を求める。具体的に距離推定手段５６６は、テーブルＴｂ２を用いて、経路が横切るセグメントのリストを求める。
【００７６】
テーブルＴｂ２を探索すれば、エリアに接するセグメントを求めることができる。例示したテーブルＴｂ２では、例えば戦闘エリアＣＡ１０１にはセグメントｓｇ１，ｓｇ２が接していることが分かる（図３も参照）。
【００７７】
同様にセグメントに接するエリアも、テーブルＴｂ２を探索すれば求めることができる。例示したテーブルＴｂ２では、セグメントｓｇ１には、戦闘エリアＣＡ１０１の他に、移動エリアＭＡ１０１に接していることが分かる。
【００７８】
したがって、テーブルＴｂ２を探索することで、第１オブジェクトから第２オブジェクトに至るセグメントとエリアをたどることができる。換言すると、テーブルＴｂ２を探索することによって、第１オブジェクトから第２オブジェクトに至る１つ又は複数の経路（セグメントのリスト）を求めることができる。
【００７９】
例えば、プレイヤキャラクタＰＣ１（第１オブジェクト）が戦闘エリアＣＡ１０２（第１エリア）に存在し、敵キャラクタＥＭ１（第２オブジェクト）が戦闘エリアＣＡ１０３（第２エリア）に存在したとする（図５参照）。図５の例では、第１オブジェクトから第２オブジェクトに至る経路には、セグメントｓｇ４，ｓｇ３，ｓｇ２，ｓｇ１，ｓｇ６を横切る経路（以下、経路Ｐ１）と、セグメントｓｇ５，ｓｇ７を横切る経路（以下、経路Ｐ２）とがある。
【００８０】
−Ｓｔｅｐ３−
Ｓｔｅｐ３では、距離推定手段５６６は、Ｓｔｅｐ２で求めた各経路について、セグメント間の距離を求める。
【００８１】
経路Ｐ１については、距離推定手段５６６は、セグメントｓｇ４−セグメントｓｇ３間の距離、セグメントｓｇ３−セグメントｓｇ２間の距離、セグメントｓｇ２−セグメントｓｇ１間の距離、およびセグメントｓｇ１−セグメントｓｇ６間の距離を求める。セグメント間の距離は、テーブルＴｂ１を探索することで求めることができる。例えば、テーブルＴｂ１を探索すると、セグメントｓｇ１−セグメントｓｇ２間の距離は１５ｍであることがわかる。
【００８２】
−Ｓｔｅｐ４−
Ｓｔｅｐ４では、距離推定手段５６６は、着目している経路についてＳｔｅｐ３で求めたセグメント間の距離の合計値（以下、小計値ｄ３という）を求める。例えば、経路Ｐ１については、距離推定手段５６６は、セグメントｓｇ４−セグメントｓｇ３間の距離、セグメントｓｇ３−セグメントｓｇ２間の距離、セグメントｓｇ２−セグメントｓｇ１間の距離、およびセグメントｓｇ１−セグメントｓｇ６間の距離の合計が小計値ｄ３である。
【００８３】
ｓｔｅｐ４では、距離推定手段５６６は、着目している経路において、第１オブジェクトと、第１オブジェクトに最も近いセグメントとの距離ｄ１を求める。距離ｄ１は、ゲーム中にリアルタイムに計算する。
【００８４】
例えば、経路Ｐ１については、距離推定手段５６６は、プレイヤキャラクタＰＣ１（第１オブジェクト）とセグメントｓｇ４との距離を距離ｄ１として求める。距離ｄ１は、プレイヤキャラクタＰＣ１の現在の座標値と、セグメントｓｇ４の代表点の座標値とから算出できる。
【００８５】
同様に、Ｓｔｅｐ４では、距離推定手段５６６は、着目している経路において、第２オブジェクトと、第２オブジェクトに最も近いセグメントとの距離ｄ２を求める。距離ｄ２は、ゲーム中にリアルタイムに計算する。
【００８６】
例えば、経路Ｐ１については、距離推定手段５６６は、敵キャラクタＥＭ１（第２オブジェクト）とセグメントｓｇ６との距離を距離ｄ２として求める。距離ｄ２は、敵キャラクタＥＭ１の現在の座標値と、セグメントｓｇ６の代表点の座標値とから算出できる。
【００８７】
そして、距離推定手段５６６は、各経路に関して、距離ｄ１、距離ｄ２、および小計値ｄ３の合算値（以下、合算距離Ｄｓという）を各経路について求める。図５の例では、距離推定手段５６６は、経路Ｐ１、経路Ｐ２のそれぞれについて、合算距離Ｄｓをもとめる。本実施形態では、合算距離Ｄｓが経路長Ｄである。
【００８８】
以上のようにして各経路の合算距離Ｄｓが求まると、距離推定手段５６６は、求めた合算距離Ｄｓのそれぞれを音声制御手段５６７に出力する。
【００８９】
〈ゲーム装置５（制御部）の動作例〉
ゲーム進行中の制御部５６における処理の流れについて説明する。
【００９０】
ゲーム進行中に、再生手段５６５は、敵キャラクタＥＭ１，ＥＭ２の動作状態などに応じた楽曲を選択してスピーカ６２から出力させる。この際、音声制御手段５６７は、プレイヤキャラクタＰＣ１と、敵キャラクタ（例えば敵キャラクタＥＭ１）との距離に応じて、楽曲の音量の大小を変化させる。
【００９１】
例えば、プレイヤキャラクタＰＣ１と敵キャラクタＥＭ１とが図５のような位置関係にあったとする。制御部５６では、距離推定手段５６６がプレイヤキャラクタＰＣ１と敵キャラクタＥＭ１との距離を推定する。図５の例では、距離推定手段５６６は、経路Ｐ１と経路Ｐ２のそれぞれについて経路長Ｄ（合算距離Ｄｓ）を求める。距離推定手段５６６は、求めた経路長Ｄを音声制御手段５６７に出力する。
【００９２】
音声制御手段５６７は、距離推定手段５６６が求めた経路長Ｄのうちの最小値を用いて、再生手段５６５を制御する。例えば、プレイヤキャラクタＰＣ１と敵キャラクタＥＭ１とが比較的近い位置関係にある場合には、音声制御手段５６７は、敵キャラクタＥＭ１に対応付けられた楽曲の音量が十分に大きくなるように、再生手段５６５に対して指示を行う。
【００９３】
その一方で、音声制御手段５６７は、環境音の音量を低下させるように再生手段５６５に対して指示を行う。環境音としては、雨の音、風の音、風になびく木々の音、町の雑踏の音等を例示できる。
【００９４】
また、音声制御手段５６７は、プレイヤキャラクタＰＣ１と敵キャラクタＥＭ１とが比較的遠い位置関係にある場合には、敵キャラクタＥＭ１に対応付けられた楽曲は聞こえないように、あるいは聞こえても非常に小さく聞こえるように、楽曲の音量を再生手段５６５に指示する。さらに、音声制御手段５６７は、必要に応じて、環境音が聞こえるように、再生手段５６５に対して音量の指示を行う。
【００９５】
再生手段５６５は、音声制御手段５６７から音量の指示を受け取ると、それに対応した音量で楽曲等を再生する。このようにして、本ゲームでは、プレイヤキャラクタＰＣ１と、敵キャラクタとの距離に応じて、楽曲等の音量の大小が変化する。
【００９６】
以上をまとめると、本件発明は、コンピュータを、複数のエリアを有した仮想空間であって、第１オブジェクトおよび第２オブジェクトが前記エリア間を移動する仮想空間を生成する仮想空間生成手段と、前記仮想空間内の音として音声データを再生する再生手段と、前記第１オブジェクトが存在する地点から前記第２オブジェクトが存在する地点に至る全ての経路の経路長を推定する距離算出手段と、前記経路長の少なくとも一つを用いて、前記再生手段を制御する音声制御手段と、として機能させ、互いに隣接した前記エリアの境界をセグメントと命名すると、前記距離算出手段は、２つのセグメント間の距離を取得できるテーブルを備え、前記距離算出手段は、前記経路長を求める手続として、着目している経路が横切るセグメントについて、互いに隣接したセグメント間の距離を前記テーブルを用いて求める、求めたセグメント間の距離の合計値と、着目している経路において前記第１オブジェクトに最も近い前記セグメントと前記第１オブジェクトとの距離と、着目している経路において前記第２オブジェクトに最も近い前記セグメントと前記第２オブジェクトとの距離との合算距離を前記経路長として求める、という動作を各経路について行うことを特徴とする音声制御プログラムである。
【００９７】
〈本実施形態の効果〉
以上のように、本実施形態では、事前に計算しておいた距離情報をテーブル化し、そのテーブル用いてオブジェクト間の距離を推定している。そのため、本ゲームプログラムでは、ゲーム中にリアルタイムに経路長を求める場合と比べより少ない処理で距離を推定できている。また、テーブルが保持している情報は、セグメント（エリアの境界）同士の距離情報なので、例えば特徴点間の距離をテーブル化する場合と比べ、テーブルが非常にコンパクトになる。テーブルがコンパクトになると、その検索も高速に行える。したがって、本実施形態によれば、処理装置に過大な負荷をかけずに、２つのオブジェクト間の距離を推定できる。
【００９８】
［変形例１］
距離推定手段５６６には、次の機能を実装してもよい。
【００９９】
すなわち、距離推定手段５６６は、プレイヤキャラクタＰＣ１（第１オブジェクト）が存在するエリアと、敵キャラクタＥＭ１（第２オブジェクト）が存在するエリアが同一の場合には、プレイヤキャラクタＰＣ１と敵キャラクタＥＭ１との直線距離Ｄｄを経路長Ｄとして求めるように実装してもよい（図６参照）。
【０１００】
こうすることで、高速かつ正確に２つのオブジェクト間の距離を推定できる。
【０１０１】
［変形例２］
距離推定手段５６６には、更に次の機能を実装してもよい。
【０１０２】
すなわち、距離推定手段５６６は、プレイヤキャラクタＰＣ１（第１オブジェクト）が存在するエリア（第１エリア）と、敵キャラクタＥＭ１（第２オブジェクト）が存在するエリア（第２エリア）とが隣接している場合には、プレイヤキャラクタＰＣ１と敵キャラクタＥＭ１との直線距離Ｄｄを経路長Ｄとして求めるように実装してもよい（図７参照）。
【０１０３】
こうすることで、高速かつ正確に２つのオブジェクト間の距離を推定できる。
【０１０４】
［変形例３］
変形例２の実装では、仮想空間ＶＳ内に設けられている地形等の構成によっては、オブジェクトの移動量が比較的小さいにもかかわらず音量が大きく変化してしまう場合が想定される。以下、この現象について説明する。
【０１０５】
ここで、プレイヤキャラクタＰＣ１（第１オブジェクト）が居るエリア（第１エリア）と敵キャラクタＥＭ１（第２オブジェクト）が居るエリア（第２エリア）とが隣接している状態を第１状態と呼ぶ（図７参照）。また、プレイヤキャラクタＰＣ１（第１オブジェクト）が居るエリア（第１エリア）と敵キャラクタＥＭ１（第２オブジェクト）が居るエリア（第２エリア）との間に他のエリアが存在する状態を第２状態と呼ぶ（図８参照）。
【０１０６】
図８では、第１状態から第２状態に変化した直後を図示している。具体的には、図８の例では、プレイヤキャラクタＰＣ１が移動エリアＭＡ１０２内から戦闘エリアＣＡ１０２に移動した直後の状態を示している。このように、隣接したエリアへの移動では、プレイヤキャラクタＰＣ１の移動距離自体は然程大きくはない。
【０１０７】
既述の通り、第１状態では、２つのオブジェクト間の距離は、直線距離Ｄｄで推定される。第２状態では、２つのオブジェクト間の距離は、合算距離Ｄｓで推定される。つまり、プレイヤキャラクタＰＣ１が隣接したエリアに移動することによって、距離の推定手法も変化する。
【０１０８】
このような場合において、図８に示すように、移動エリアＭＡ１０２が曲がりくねっていると、直線距離Ｄｄと合算距離Ｄｓとの差が大きくなる。直線距離Ｄｄと合算距離Ｄｓとの差が大きいと、オブジェクトの移動量が比較的小さいにもかかわらず、音量が大きく変化してしまう。音量の大きな変化は、プレイヤ（ユーザ）にとっては、不自然に聞こえる可能性がある。
【０１０９】
そこで、本変形例の距離推定手段５６６は、第１状態から第２状態に変化した場合において、合算距離Ｄｓが所定の閾値（閾値Ｘとする）よりも小さい場合には、２つのオブジェクト間の直線距離Ｄｄを経路長Ｄとして出力するように実装されている。こうすることで、合算距離Ｄｓが閾値Ｘ以下の範囲では、音量の大きな変化が抑制される。
【０１１０】
なお、合算距離Ｄｓが閾値Ｘよりも大きい場合には、原理的には、第１状態から第２状態に変化した際に、音量は滑らかには変化しない。しかしながら、オブジェクト間の距離が大きいほど、音量は抑えられているので、閾値Ｘを調整することで、プレイヤに与える違和感を抑えることができる。つまり、実質的には、音量が滑らかには変化しているように、ユーザに感じさせることができる。
【０１１１】
［変形例４］
本変形例では、第１状態から第２状態に変化した際や、その逆の変化をした際に、滑らかに音量を変化させる構成を説明する。
【０１１２】
それを実現するために、本変形例の距離推定手段５６６は、第１状態から第２状態に変化した際には、第１状態における直線距離Ｄｄから、第２状態における合算距離Ｄｓまで、所定の時間をかけて出力する経路長Ｄを変化させる。また、第２状態から第１状態に変化した際には、第２状態における合算距離Ｄｓから第１状態における直線距離Ｄｄまで、所定の時間をかけて出力する経路長Ｄを変化させる。
【０１１３】
より具体的には、距離推定手段５６６は、Δｄ＝合算距離Ｄｓ−直線距離Ｄｄの値を、距離の変化にかける時間ｔで割って、出力する経路長Ｄの値の変化速度Ｖｄを求める（次式を参照）。
Ｖｄ＝Δｄ／ｔ
ここで、時間ｔは、あらかじめ定めた定数である。例えばｔ＝３〜４ｓｅｃに設定する。距離推定手段５６６は、上式から速度Ｖｄが求まると、その速度で出力する値（経路長Ｄ）を変化させる。
【０１１４】
ただし、距離推定手段５６６では、Ｖｄが、予め定めた最小値Ｖｍｉｎを下回らないようにしている。これは、Δｄが小さい場合に、距離推定手段５６６の出力が最終値（直線距離Ｄｄまたは合算距離Ｄｓ）に収束しない可能性があるからである。
【０１１５】
以上の構成により、本変形例では、第１状態から第２状態に変化した際や、その逆の変化をした際に、距離推定手段５６６の出力が滑らかに変化する。それにより、再生手段５６５から出力されるＢＧＭ等の音量も滑らかに変化する。
【０１１６】
［その他の実施形態］
前記ゲームは、アクションゲームに限定されない。前記ゲームは、オブジェクト間の距離に応じて音声の再生が制御されるゲームであれば、どのような種類のゲームにも適用できる。
【０１１７】
また、本発明は、ゲーム以外の分野でも利用可能である。例えば、仮想空間をシミュレーションするプログラムに適用したり、映画やアニメーションの音響効果の作成などに利用したりできる。
【０１１８】
また、ゲーム装置５の制御部５６で行っていた処理をそれらに代わってサーバ側で行ってもよいし、サーバ側とクライアント（ゲーム装置５）側とで分担してもよい。
【０１１９】
また、前記実施形態や変形例では、仮想空間として３次元空間を想定しているが、ゲームの種類によっては、仮想空間は、２次元空間（高さまたは奥行がない空間）であってもよい。
【０１２０】
また、距離推定手段５６６が求めた経路長は、最小値以外の値（例えば最大の経路長）も音声出力の制御（音量制御等）に使用できる。また、距離推定手段５６６が求めた幾つかの経路長を組み合わせて音声出力の制御を行ってもよい。
【０１２１】
これらの他の実施形態を採用した場合においても、本発明の作用効果は発揮される。また、本実施形態と他の実施形態、および他の実施形態同士を適宜組み合わせることも可能である。
【符号の説明】
【０１２２】
５      ゲーム装置（音声制御装置）
５５      記憶部
５６      制御部
５６２      ゲーム空間生成手段
５６５      再生手段
５６６      距離算出手段
５６７      音声制御手段
【図１】
2020195673.tif 000003
【図２】
2020195673.tif 000004
【図３】
2020195673.tif 000005
【図４】
2020195673.tif 000006
【図５】
2020195673.tif 000007
【図６】
2020195673.tif 000008
【図７】
2020195673.tif 000009
【図８】
2020195673.tif 000010