(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0015】
[実施形態]
本発明の実施形態にかかる音声制御プログラム、および音声制御装置について、図面を参照して説明する。なお、本発明の音声制御プログラムは、ゲームプログラムとして実装されている。音声制御装置は、ゲームシステム(ゲーム装置)として実現されている。
【0016】
〈ゲームの説明〉
図1は、本実施形態のゲームシステム1の機能的構成を示すブロック図である。
図1に示すように、ゲームシステム1では、サーバ装置2とゲーム装置5とが、通信ネットワーク6を介して互いに通信可能に接続されている。
【0017】
本実施形態で説明するゲームは、ユーザの操作を受けて、プレイヤキャラクタを三次元のゲーム空間(仮想空間)で活動させたり、プレイヤキャラクタ同士でグループを編成してノンプレイヤキャラクタである敵キャラクタと戦闘したりするアクションゲームである。ユーザは、通信ネットワーク6を介して他のユーザとオンラインにてゲームを進めることができる。また、ユーザは、通信ネットワーク6を介さずに個人でゲームを進めることもできる。
【0018】
図2に本ゲームのゲーム空間の一部を例示する。このゲーム空間は、複数のステージSTGで構成され、各ステージSTGは、
図2に示すように、複数のエリアを有する。
図2の例では、複数のエリアとして、複数の戦闘エリアCA1〜CA8と複数の移動エリア(接続エリア)MA1〜MA11とが含まれている。これらのエリアCA1〜CA8,MA1〜MA11は、互いにシームレスに接続されている。
【0019】
戦闘エリアCA1〜CA8は、プレイヤキャラクタPC1と敵キャラクタEM1,EM2とが戦闘を行うエリアである。各戦闘エリアCA1〜CA8は互いに離れて位置する。敵キャラクタEM1,EM2は、戦闘場所である戦闘エリアCA1〜CA8を、戦闘しながら自発的に出ることはない。
【0020】
移動エリアMA1〜MA11は、異なる戦闘エリアCA1〜CA8同士を繋ぐものである。敵キャラクタEM1,EM2は、移動エリアMA1〜MA11内を移動して、滞在する戦闘エリアCA1〜CA8を変更することができる。移動エリアMA1〜MA11では、敵キャラクタEM1,EM2は、プレイヤキャラクタPC1からの攻撃を受けることはあっても、自発的にプレイヤキャラクタPC1に攻撃を加えることはない。
【0021】
このようなゲーム空間にて繰り広げられる各キャラクタPC1,EM1,EM2の動作、および、各キャラクタPC1,EM1,EM2の位置するエリアCA1〜CA8,MA1〜MA11などに応じて、各場面に適した楽曲(BGM)、効果音、環境音などの音声が出力される。
【0022】
本ゲームプログラムでは、複数の特徴点が、仮想空間におけるプレイヤキャラクタ等の移動可能領域上に配置されている。特徴点には、その地点における音響効果の情報、座標値、特徴点が属するエリアなどの情報が対応づけられている。これらの特徴点は、ディスプレイ61には表示されない。本ゲームプログラムでは、楽曲(BGM)、効果音、環境音などの音声を出力する際に、プレイヤキャラクタPC1の最近傍の特徴点に対応した情報を用いる。
【0023】
また、本実施形態に係るゲームでは、例えばプレイヤキャラクタPC1と敵キャラクタEM1とが戦闘している場合、プレイヤキャラクタPC1と敵対している敵キャラクタEM1に起因した楽曲が出力される。その楽曲の音量は、プレイヤキャラクタPC1と敵キャラクタEM1との距離に応じて制御される。これにより、ゲームをプレイするユーザが感じる臨場感および躍動感は、より向上したものとなる。
【0024】
前記ゲームは、プレイステーション(登録商標)、パーソナルコンピュータ、PlayStation Vita(登録商標)などのゲーム装置5において実行される。
【0025】
〈ゲームシステム1の概要〉
図1に示すように、ゲームシステム1は、サーバ装置2およびゲーム装置5にて構成される。
【0026】
サーバ装置2は、ゲームプログラムの提供およびゲームデータの管理を行う。
【0027】
ゲーム装置5は、ユーザの操作に基づいて前記ゲームプログラムに応じたゲームを実行する。そのために、ゲーム装置5は、通信ネットワーク6を介してサーバ装置2からゲームプログラム、ゲームデータ、およびこれらのアップデート版を受信(具体的にはダウンロードおよびインストール)することが可能である。
【0028】
なお、ゲーム装置5は、ゲームを進行するにあたり、先ずはサーバ装置2にログインすることができる。ユーザには、アカウント情報が割り当てられており、アカウント情報には、ユーザの識別情報(ユーザID)およびパスワードが含まれる。
【0029】
サーバ装置2は、ログイン時にゲーム装置5から送信されたアカウント情報に基づき、アクセスのあったゲーム装置5に対してユーザ認証を行う。ユーザ認証が完了したゲーム装置5は、ゲーム進行に必要なデータがサーバ装置2から送られると、ユーザの操作に基づいてゲーム画像や音声をディスプレイ61およびスピーカ62に出力しながら、ゲームを進行させる。
【0030】
なお、ゲーム進行に必要なデータは、ログイン時の他、ゲーム進行の所定タイミング(例えばプレイヤキャラクタがクリアする課題(以下「クエスト」)をユーザが選択した時)においても、サーバ装置2から送られる。
【0031】
このように、サーバ装置2とゲーム装置5とが相互に通信を行うことにより、サーバ装置2とゲーム装置5とで同期を取りながらゲームを進行させることもできる。
【0032】
〈ハードウェア構成〉
以下、サーバ装置2のハードウェア構成、および、ゲーム装置5のハードウェア構成について説明する。
【0033】
〈サーバ装置2の構成〉
サーバ装置2は、ネットワークインターフェース21、記憶部22および制御部23を有する。ネットワークインターフェース21および記憶部22は、バス29を介して制御部23と電気的に接続されている。
【0034】
ネットワークインターフェース21は、インターネットやLANなどの通信ネットワーク6を介してゲーム装置5と通信可能に接続される。ネットワークインターフェース21を介して、ゲーム装置5へのゲームデータやゲームプログラムの送信、およびアカウント情報のゲーム装置5からの受信が行われる。
【0035】
記憶部22は、HDD、SSD、RAMおよびROMなどで構成される。記憶部22には、ユーザを照合するためのアカウント情報、ユーザのログイン履歴、ゲームプログラム、ゲームデータ、ゲームプログラム以外の各種プログラムなどが格納されている。
【0036】
制御部23は、CPUおよび半導体メモリを含むマイクロコンピュータで構成され、サーバ装置2自身の動作を制御する。
【0037】
〈サーバ装置2における制御部23の機能的構成〉
制御部23は、各種プログラムを実行することにより、情報処理手段231、照合手段232および配信手段233として機能する。
【0038】
情報処理手段231は、ゲームプログラムの配信に必要なデータを、ゲーム装置5との間で送受信する。情報処理手段231が受信する前記データとしては、ゲームプログラムのダウンロード要求情報が挙げられる。情報処理手段231が送信する前記データとしては、例えばゲームプログラムをゲーム装置5が受信したかを確認するための情報が挙げられる。
【0039】
照合手段232は、ゲーム装置5から受信したアカウント情報を用いて、ユーザの認証処理を行う。
【0040】
配信手段233は、ゲームプログラムのダウンロード要求情報およびユーザのアカウント情報を情報処理手段231が受信した後、ゲームプログラムおよび受信したアカウント情報に対応するゲームデータを、ゲーム装置5に配信(送信)する。
【0041】
〈ゲーム装置5の構成〉
ゲーム装置5には、ディスプレイ61、スピーカ62およびゲームコントローラ63が外部接続または内蔵される。ゲーム装置5では、サーバ装置2から受信したゲームプログラムおよびゲームデータに基づいてゲームが進行される。
【0042】
ゲーム装置5は、ネットワークインターフェース51、グラフィック処理部52、オーディオ処理部53、操作部54、記憶部55および制御部56を有する。ネットワークインターフェース51、グラフィック処理部52、オーディオ処理部53、操作部54および記憶部55は、バス59を介して制御部56と電気的に接続されている。
【0043】
ネットワークインターフェース51は、ゲーム装置5とサーバ装置2との間で各種データを送受信するために、通信ネットワーク6に通信可能に接続される。
【0044】
グラフィック処理部52は、制御部56から出力されるゲーム画像情報に従って、仮想ゲーム空間に関する各種オブジェクトを含むゲーム画像を、動画形式で描画する。グラフィック処理部52は、例えば液晶型であるディスプレイ61と接続されており、動画形式に描画されたゲーム画像は、ゲーム画面としてディスプレイ61上に表示される。
【0045】
オーディオ処理部53は、制御部56の指示に従って楽曲を含むゲーム音声を再生および合成する。オーディオ処理部53は、スピーカ62と接続されている。オーディオ処理部53によって再生および合成された音声は、スピーカ62から出力される。
【0046】
操作部54は、ゲームコントローラ63と接続され、操作入力に関するデータをゲームコントローラ63との間で送受信する。例えば、ユーザは、ゲームコントローラ63の各種ボタンを押下することで、ゲーム装置5に操作信号を入力する。
【0047】
記憶部55は、HDD、SSD、RAMおよびROMなどで構成される。記憶部55は、サーバ装置2からダウンロードしたゲームプログラムおよびゲームデータを記憶することができる。本実施形態において、記憶部55に記憶されるゲームデータには、前記ゲーム音声のデータが含まれる。
【0048】
制御部56は、CPUおよび半導体メモリを含むマイクロコンピュータで構成され、ゲーム装置5の動作を制御する。
【0049】
〈ゲーム装置5における制御部56の機能的構成〉
制御部56は、前記ゲームプログラムを実行することにより、通信手段561、ゲーム空間生成手段562、プレイヤキャラクタ動作制御手段563、敵キャラクタ動作制御手段564、再生手段565、距離推定手段566、および音声制御手段567として機能する。
【0050】
このうち、主にゲーム空間生成手段562およびプレイヤキャラクタ動作制御手段563は、ゲーム進行手段としての役割を担う。ゲーム進行手段は、ゲームデータに含まれるゲーム空間オブジェクトおよびテクスチャなどのデータを記憶部55から読み出して、ゲーム画像情報を生成する。ゲーム画像情報がグラフィック処理部52によって処理されることにより、ディスプレイ61には処理後のゲーム画像が表示される。
【0051】
通信手段561は、ネットワークインターフェース51を介してサーバ装置2との通信を行う機能である。通信手段561は、アカウント情報、および、ユーザの操作に基づく新たなゲームデータのダウンロード要求情報を、サーバ装置2に送信する。通信手段561は、サーバ装置2から送られてきた新たなゲームデータなどを受信する。
【0052】
ゲーム空間生成手段562(仮想空間生成手段)は、三次元のゲーム空間、すなわち、ユーザによるゲームコントローラ63の操作によりプレイヤキャラクタPC1が動作する仮想空間を生成する。
【0053】
プレイヤキャラクタ動作制御手段563は、前記ゲーム空間にプレイヤキャラクタPC1を配置する。プレイヤキャラクタ動作制御手段563は、ゲームコントローラ63を介してユーザが行う操作に基づいて、そのプレイヤキャラクタPC1をゲーム空間内で動作させる。
【0054】
敵キャラクタ動作制御手段564は、ゲームの進行やクエストに応じた敵キャラクタEM1,EM2を前記ゲーム空間に配置する。敵キャラクタ動作制御手段564は、その敵キャラクタEM1,EM2に対し、ゲームやクエストの進行状況に応じて予めある程度設定された動作を行わせる。また、敵キャラクタ動作制御手段564は、プレイヤキャラクタPC1の動作に応じた動作を、敵キャラクタEM1,EM2に行わせる。
【0055】
再生手段565は、ゲームの進行状況やクエストの内容、プレイヤキャラクタPC1および敵キャラクタEM1,EM2の動作などに応じて、音声データを記憶部55内から逐次読み出し、オーディオ処理部53を介してスピーカ62から音声を出力させる。
【0056】
前記音声には、各キャラクタPC1,EM1,EM2のボイスや足音、咆哮音などの効果音、敵キャラクタEM1,EM2固有の楽曲などが含まれる。
【0057】
特に、再生手段565は、楽曲選択処理および音量変化処理を行う。楽曲選択処理とは、ゲーム進行中の楽曲を各種状況に応じて選択し、選択した当該楽曲をスピーカ62から出力させる処理である。音量変化処理とは、スピーカ62から出力されている楽曲の音量を、各種条件に応じて変化させる処理である。
【0058】
再生手段565は、音量変化処理に際して、音声制御手段567の制御に従って動作する。音声制御手段567は、再生手段565の制御に際して、距離推定手段566が求めたオブジェクト間の距離(経路長)を利用する。
【0059】
〈距離の推定〉
距離推定手段566は、ゲーム空間(仮想空間)内を移動する2つのオブジェクトについて、一方のオブジェクト(第1オブジェクト)が存在する地点から、もう一方のオブジェクト(第2オブジェクト)が存在する地点に至るまでの全ての経路について、経路長Dを推定する。
【0060】
本ゲームプログラムでは、経路長Dの推定を容易にするために、「セグメント」という概念を定義する。本ゲームプログラムにおけるセグメントは、互いに隣接したエリア(戦闘エリア、移動エリア)の境界である。
【0061】
図3にセグメントを例示する。
図3は、ゲーム空間(以下、仮想空間VS)の一部分を示している。
図3の例では、戦闘エリアCA101〜CA103と、移動エリアMA101〜A104が存在する。
【0062】
これらの戦闘エリアCA101〜CA103と移動エリアMA101〜A104との境界がセグメントである。この例では、
図3に示すように、セグメントsg1〜sg7が存在する。
図3では、説明の便宜上、各セグメントを直線で記載しているが、セグメントは曲線の場合もある。
【0063】
距離推定手段566は、2つのセグメント間の距離を取得できるテーブルTb1を備えている。このゲームプログラムでは、セグメント上の代表点同士の距離をセグメント間の距離として定義している。このゲームプログラムでは、一例として、代表点には、セグメントの中点を採用した(
図3等の黒丸を参照)。
【0064】
テーブルTb1では、セグメント間の距離は、その途中にあるオブジェクトを考慮して算出している。例えば、プレイヤキャラクタPC1が通れない障害物(例えば岩や大木など)がセグメント間にある場合には、それを迂回した経路の経路長がセグメント間の距離としてテーブルTb1に規定されている。したがって、テーブルTb1に規定されている距離は、代表点間の直線距離とは限らない。
【0065】
図4にテーブルTb1を例示する。テーブル中に示した数値がセグメント間の距離である。例えば、セグメントsg1とセグメントsg2との距離は15m(メートル)である。テーブルTb1では、距離の単位としてメートルを付している。この仮想空間VSでは、仮想空間VSにおける距離1.0に現実世界の1.0メートルを対応させて仮想空間VS内のオブジェクト(例えばキャラクタ、建物、樹木など)の大きさなどを構成している。勿論、仮想空間VS内の距離の値に、どのような単位を与えるかは任意である。
【0066】
距離推定手段566は、テーブルTb2も備えている。テーブルTb2は、第1オブジェクトが存在する第1エリアから第2オブジェクトが存在する第2エリアに至る全ての経路を求めるための情報を保持している。
【0067】
本実施形態では、テーブルTb2は、要素数2の配列を要素として持つリストとして実装されている。以下に、テーブルTb2の内容を例示する。
【0068】
sg1:{CA101,MA101}
sg2:{CA101,MA102}
sg3:{CA102,MA102}
・・・
sg7:{CA103,MA104}
この例では、各行がテーブルの構成要素である。各行には、セグメントとそのセグメントに面しているエリア(戦闘エリアと移動エリア)の情報が格納されている。テーブルの各行において、:の左側がセグメントを表し、{}で囲まれた要素が、そのセグメントが接しているエリアを示している。
【0069】
例えば、テーブルTb2の1行目では、:の左側には、sg1と記載されている。これは、テーブルTb2の1行目がセグメントsg1に関する情報を含んでいることを表している。テーブルTb2の{CA101,MA101}等は、要素数2の配列である。
【0070】
すなわち、テーブルTb2では、セグメントが区切っているエリアの情報が、要素数が2の配列に格納されている。例えば、テーブルTb2の1行目にかかる配列は、{CA101,MA101}であり、この配列は、“CA101”と“MA101”とを要素として含んでいる。この配列は、セグメントsg1が戦闘エリアCA101と移動エリアMA101の境界であることを示している。
【0071】
テーブルTb1およびテーブルTb2は、予め作成され、ゲームプログラムとともに配布(配信)される。
【0072】
距離推定手段566は、経路長を求める手続として次のStep1〜Step4の処理を行う。
【0073】
Step1:オブジェクトの存在エリアの特定
Step2:2つのオブジェクト間の経路の抽出
Step3:隣接したセグメント間の距離の値の探索
Step4:経路長の算出(推定)
以下、これらの工程について説明する。
【0074】
−Step1−
Step1では、距離推定手段566は、第1オブジェクト(例えばプレイヤキャラクタ)、および第2オブジェクト(例えば敵キャラクタ)が存在するエリアを特定する。これらのオブジェクトが存在するエリアは、例えば、オブジェクトの座標値を前記特徴点の座標値と比較するなどして特定することができる。
【0075】
−Step2−
Step2では、距離推定手段566は、第1オブジェクトから第2オブジェクトに至る経路を求める。具体的に距離推定手段566は、テーブルTb2を用いて、経路が横切るセグメントのリストを求める。
【0076】
テーブルTb2を探索すれば、エリアに接するセグメントを求めることができる。例示したテーブルTb2では、例えば戦闘エリアCA101にはセグメントsg1,sg2が接していることが分かる(
図3も参照)。
【0077】
同様にセグメントに接するエリアも、テーブルTb2を探索すれば求めることができる。例示したテーブルTb2では、セグメントsg1には、戦闘エリアCA101の他に、移動エリアMA101に接していることが分かる。
【0078】
したがって、テーブルTb2を探索することで、第1オブジェクトから第2オブジェクトに至るセグメントとエリアをたどることができる。換言すると、テーブルTb2を探索することによって、第1オブジェクトから第2オブジェクトに至る1つ又は複数の経路(セグメントのリスト)を求めることができる。
【0079】
例えば、プレイヤキャラクタPC1(第1オブジェクト)が戦闘エリアCA102(第1エリア)に存在し、敵キャラクタEM1(第2オブジェクト)が戦闘エリアCA103(第2エリア)に存在したとする(
図5参照)。
図5の例では、第1オブジェクトから第2オブジェクトに至る経路には、セグメントsg4,sg3,sg2,sg1,sg6を横切る経路(以下、経路P1)と、セグメントsg5,sg7を横切る経路(以下、経路P2)とがある。
【0080】
−Step3−
Step3では、距離推定手段566は、Step2で求めた各経路について、セグメント間の距離を求める。
【0081】
経路P1については、距離推定手段566は、セグメントsg4−セグメントsg3間の距離、セグメントsg3−セグメントsg2間の距離、セグメントsg2−セグメントsg1間の距離、およびセグメントsg1−セグメントsg6間の距離を求める。セグメント間の距離は、テーブルTb1を探索することで求めることができる。例えば、テーブルTb1を探索すると、セグメントsg1−セグメントsg2間の距離は15mであることがわかる。
【0082】
−Step4−
Step4では、距離推定手段566は、着目している経路についてStep3で求めたセグメント間の距離の合計値(以下、小計値d3という)を求める。例えば、経路P1については、距離推定手段566は、セグメントsg4−セグメントsg3間の距離、セグメントsg3−セグメントsg2間の距離、セグメントsg2−セグメントsg1間の距離、およびセグメントsg1−セグメントsg6間の距離の合計が小計値d3である。
【0083】
step4では、距離推定手段566は、着目している経路において、第1オブジェクトと、第1オブジェクトに最も近いセグメントとの距離d1を求める。距離d1は、ゲーム中にリアルタイムに計算する。
【0084】
例えば、経路P1については、距離推定手段566は、プレイヤキャラクタPC1(第1オブジェクト)とセグメントsg4との距離を距離d1として求める。距離d1は、プレイヤキャラクタPC1の現在の座標値と、セグメントsg4の代表点の座標値とから算出できる。
【0085】
同様に、Step4では、距離推定手段566は、着目している経路において、第2オブジェクトと、第2オブジェクトに最も近いセグメントとの距離d2を求める。距離d2は、ゲーム中にリアルタイムに計算する。
【0086】
例えば、経路P1については、距離推定手段566は、敵キャラクタEM1(第2オブジェクト)とセグメントsg6との距離を距離d2として求める。距離d2は、敵キャラクタEM1の現在の座標値と、セグメントsg6の代表点の座標値とから算出できる。
【0087】
そして、距離推定手段566は、各経路に関して、距離d1、距離d2、および小計値d3の合算値(以下、合算距離Dsという)を各経路について求める。
図5の例では、距離推定手段566は、経路P1、経路P2のそれぞれについて、合算距離Dsをもとめる。本実施形態では、合算距離Dsが経路長Dである。
【0088】
以上のようにして各経路の合算距離Dsが求まると、距離推定手段566は、求めた合算距離Dsのそれぞれを音声制御手段567に出力する。
【0089】
〈ゲーム装置5(制御部)の動作例〉
ゲーム進行中の制御部56における処理の流れについて説明する。
【0090】
ゲーム進行中に、再生手段565は、敵キャラクタEM1,EM2の動作状態などに応じた楽曲を選択してスピーカ62から出力させる。この際、音声制御手段567は、プレイヤキャラクタPC1と、敵キャラクタ(例えば敵キャラクタEM1)との距離に応じて、楽曲の音量の大小を変化させる。
【0091】
例えば、プレイヤキャラクタPC1と敵キャラクタEM1とが
図5のような位置関係にあったとする。制御部56では、距離推定手段566がプレイヤキャラクタPC1と敵キャラクタEM1との距離を推定する。
図5の例では、距離推定手段566は、経路P1と経路P2のそれぞれについて経路長D(合算距離Ds)を求める。距離推定手段566は、求めた経路長Dを音声制御手段567に出力する。
【0092】
音声制御手段567は、距離推定手段566が求めた経路長Dのうちの最小値を用いて、再生手段565を制御する。例えば、プレイヤキャラクタPC1と敵キャラクタEM1とが比較的近い位置関係にある場合には、音声制御手段567は、敵キャラクタEM1に対応付けられた楽曲の音量が十分に大きくなるように、再生手段565に対して指示を行う。
【0093】
その一方で、音声制御手段567は、環境音の音量を低下させるように再生手段565に対して指示を行う。環境音としては、雨の音、風の音、風になびく木々の音、町の雑踏の音等を例示できる。
【0094】
また、音声制御手段567は、プレイヤキャラクタPC1と敵キャラクタEM1とが比較的遠い位置関係にある場合には、敵キャラクタEM1に対応付けられた楽曲は聞こえないように、あるいは聞こえても非常に小さく聞こえるように、楽曲の音量を再生手段565に指示する。さらに、音声制御手段567は、必要に応じて、環境音が聞こえるように、再生手段565に対して音量の指示を行う。
【0095】
再生手段565は、音声制御手段567から音量の指示を受け取ると、それに対応した音量で楽曲等を再生する。このようにして、本ゲームでは、プレイヤキャラクタPC1と、敵キャラクタとの距離に応じて、楽曲等の音量の大小が変化する。
【0096】
以上をまとめると、本件発明は、コンピュータを、複数のエリアを有した仮想空間であって、第1オブジェクトおよび第2オブジェクトが前記エリア間を移動する仮想空間を生成する仮想空間生成手段と、前記仮想空間内の音として音声データを再生する再生手段と、前記第1オブジェクトが存在する地点から前記第2オブジェクトが存在する地点に至る全ての経路の経路長を推定する距離算出手段と、前記経路長の少なくとも一つを用いて、前記再生手段を制御する音声制御手段と、として機能させ、互いに隣接した前記エリアの境界をセグメントと命名すると、前記距離算出手段は、2つのセグメント間の距離を取得できるテーブルを備え、前記距離算出手段は、前記経路長を求める手続として、着目している経路が横切るセグメントについて、互いに隣接したセグメント間の距離を前記テーブルを用いて求める、求めたセグメント間の距離の合計値と、着目している経路において前記第1オブジェクトに最も近い前記セグメントと前記第1オブジェクトとの距離と、着目している経路において前記第2オブジェクトに最も近い前記セグメントと前記第2オブジェクトとの距離との合算距離を前記経路長として求める、という動作を各経路について行うことを特徴とする音声制御プログラムである。
【0097】
〈本実施形態の効果〉
以上のように、本実施形態では、事前に計算しておいた距離情報をテーブル化し、そのテーブル用いてオブジェクト間の距離を推定している。そのため、本ゲームプログラムでは、ゲーム中にリアルタイムに経路長を求める場合と比べより少ない処理で距離を推定できている。また、テーブルが保持している情報は、セグメント(エリアの境界)同士の距離情報なので、例えば特徴点間の距離をテーブル化する場合と比べ、テーブルが非常にコンパクトになる。テーブルがコンパクトになると、その検索も高速に行える。したがって、本実施形態によれば、処理装置に過大な負荷をかけずに、2つのオブジェクト間の距離を推定できる。
【0098】
[変形例1]
距離推定手段566には、次の機能を実装してもよい。
【0099】
すなわち、距離推定手段566は、プレイヤキャラクタPC1(第1オブジェクト)が存在するエリアと、敵キャラクタEM1(第2オブジェクト)が存在するエリアが同一の場合には、プレイヤキャラクタPC1と敵キャラクタEM1との直線距離Ddを経路長Dとして求めるように実装してもよい(
図6参照)。
【0100】
こうすることで、高速かつ正確に2つのオブジェクト間の距離を推定できる。
【0101】
[変形例2]
距離推定手段566には、更に次の機能を実装してもよい。
【0102】
すなわち、距離推定手段566は、プレイヤキャラクタPC1(第1オブジェクト)が存在するエリア(第1エリア)と、敵キャラクタEM1(第2オブジェクト)が存在するエリア(第2エリア)とが隣接している場合には、プレイヤキャラクタPC1と敵キャラクタEM1との直線距離Ddを経路長Dとして求めるように実装してもよい(
図7参照)。
【0103】
こうすることで、高速かつ正確に2つのオブジェクト間の距離を推定できる。
【0104】
[変形例3]
変形例2の実装では、仮想空間VS内に設けられている地形等の構成によっては、オブジェクトの移動量が比較的小さいにもかかわらず音量が大きく変化してしまう場合が想定される。以下、この現象について説明する。
【0105】
ここで、プレイヤキャラクタPC1(第1オブジェクト)が居るエリア(第1エリア)と敵キャラクタEM1(第2オブジェクト)が居るエリア(第2エリア)とが隣接している状態を第1状態と呼ぶ(
図7参照)。また、プレイヤキャラクタPC1(第1オブジェクト)が居るエリア(第1エリア)と敵キャラクタEM1(第2オブジェクト)が居るエリア(第2エリア)との間に他のエリアが存在する状態を第2状態と呼ぶ(
図8参照)。
【0106】
図8では、第1状態から第2状態に変化した直後を図示している。具体的には、
図8の例では、プレイヤキャラクタPC1が移動エリアMA102内から戦闘エリアCA102に移動した直後の状態を示している。このように、隣接したエリアへの移動では、プレイヤキャラクタPC1の移動距離自体は然程大きくはない。
【0107】
既述の通り、第1状態では、2つのオブジェクト間の距離は、直線距離Ddで推定される。第2状態では、2つのオブジェクト間の距離は、合算距離Dsで推定される。つまり、プレイヤキャラクタPC1が隣接したエリアに移動することによって、距離の推定手法も変化する。
【0108】
このような場合において、
図8に示すように、移動エリアMA102が曲がりくねっていると、直線距離Ddと合算距離Dsとの差が大きくなる。直線距離Ddと合算距離Dsとの差が大きいと、オブジェクトの移動量が比較的小さいにもかかわらず、音量が大きく変化してしまう。音量の大きな変化は、プレイヤ(ユーザ)にとっては、不自然に聞こえる可能性がある。
【0109】
そこで、本変形例の距離推定手段566は、第1状態から第2状態に変化した場合において、合算距離Dsが所定の閾値(閾値Xとする)よりも小さい場合には、2つのオブジェクト間の直線距離Ddを経路長Dとして出力するように実装されている。こうすることで、合算距離Dsが閾値X以下の範囲では、音量の大きな変化が抑制される。
【0110】
なお、合算距離Dsが閾値Xよりも大きい場合には、原理的には、第1状態から第2状態に変化した際に、音量は滑らかには変化しない。しかしながら、オブジェクト間の距離が大きいほど、音量は抑えられているので、閾値Xを調整することで、プレイヤに与える違和感を抑えることができる。つまり、実質的には、音量が滑らかには変化しているように、ユーザに感じさせることができる。
【0111】
[変形例4]
本変形例では、第1状態から第2状態に変化した際や、その逆の変化をした際に、滑らかに音量を変化させる構成を説明する。
【0112】
それを実現するために、本変形例の距離推定手段566は、第1状態から第2状態に変化した際には、第1状態における直線距離Ddから、第2状態における合算距離Dsまで、所定の時間をかけて出力する経路長Dを変化させる。また、第2状態から第1状態に変化した際には、第2状態における合算距離Dsから第1状態における直線距離Ddまで、所定の時間をかけて出力する経路長Dを変化させる。
【0113】
より具体的には、距離推定手段566は、Δd=合算距離Ds−直線距離Ddの値を、距離の変化にかける時間tで割って、出力する経路長Dの値の変化速度Vdを求める(次式を参照)。
Vd=Δd/t
ここで、時間tは、あらかじめ定めた定数である。例えばt=3〜4secに設定する。距離推定手段566は、上式から速度Vdが求まると、その速度で出力する値(経路長D)を変化させる。
【0114】
ただし、距離推定手段566では、Vdが、予め定めた最小値Vminを下回らないようにしている。これは、Δdが小さい場合に、距離推定手段566の出力が最終値(直線距離Ddまたは合算距離Ds)に収束しない可能性があるからである。
【0115】
以上の構成により、本変形例では、第1状態から第2状態に変化した際や、その逆の変化をした際に、距離推定手段566の出力が滑らかに変化する。それにより、再生手段565から出力されるBGM等の音量も滑らかに変化する。
【0116】
[その他の実施形態]
前記ゲームは、アクションゲームに限定されない。前記ゲームは、オブジェクト間の距離に応じて音声の再生が制御されるゲームであれば、どのような種類のゲームにも適用できる。
【0117】
また、本発明は、ゲーム以外の分野でも利用可能である。例えば、仮想空間をシミュレーションするプログラムに適用したり、映画やアニメーションの音響効果の作成などに利用したりできる。
【0118】
また、ゲーム装置5の制御部56で行っていた処理をそれらに代わってサーバ側で行ってもよいし、サーバ側とクライアント(ゲーム装置5)側とで分担してもよい。
【0119】
また、前記実施形態や変形例では、仮想空間として3次元空間を想定しているが、ゲームの種類によっては、仮想空間は、2次元空間(高さまたは奥行がない空間)であってもよい。
【0120】
また、距離推定手段566が求めた経路長は、最小値以外の値(例えば最大の経路長)も音声出力の制御(音量制御等)に使用できる。また、距離推定手段566が求めた幾つかの経路長を組み合わせて音声出力の制御を行ってもよい。
【0121】
これらの他の実施形態を採用した場合においても、本発明の作用効果は発揮される。また、本実施形態と他の実施形態、および他の実施形態同士を適宜組み合わせることも可能である。