(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024051442
(43)【公開日】2024-04-11
(54)【発明の名称】プログラム、処理装置及び処理方法
(51)【国際特許分類】
A63F 13/54 20140101AFI20240404BHJP
H04R 3/00 20060101ALI20240404BHJP
【FI】
A63F13/54
H04R3/00 310
【審査請求】有
【請求項の数】11
【出願形態】OL
(21)【出願番号】P 2022157621
(22)【出願日】2022-09-30
(11)【特許番号】
(45)【特許公報発行日】2023-04-27
(71)【出願人】
【識別番号】511249637
【氏名又は名称】株式会社Cygames
(74)【代理人】
【識別番号】100110928
【弁理士】
【氏名又は名称】速水 進治
(74)【代理人】
【識別番号】100127236
【弁理士】
【氏名又は名称】天城 聡
(72)【発明者】
【氏名】池田 岩暉
(72)【発明者】
【氏名】中村 大吾
【テーマコード(参考)】
5D220
【Fターム(参考)】
5D220AB04
5D220AB08
(57)【要約】
【課題】複数の出力音が同時に出力される場合に、より重要な出力音をより目立たせる。
【解決手段】本発明は、コンピュータを、現時点で出力中の1つ又は複数の出力音を識別する識別情報と、出力音各々の出力開始タイミングを示す情報とを紐付けた管理情報を管理する出力音管理部16、出力音を制御するイベントを呼び出す呼出部12、イベントに基づき、新たに出力させる出力音を決定する決定部13、イベントに基づき、現時点で出力中の出力音各々に対して行う音量調整の内容を、現時点で出力中の出力音各々の出力開始タイミングと現時点との時間差に基づき算出する算出部14、及び、新たに出力させることを決定された出力音を出力させるとともに、現時点で出力中の出力音各々を、算出された音量調整の内容に基づき調整する出力音制御部17、として機能させるプログラムを提供する。
【選択図】
図2
【特許請求の範囲】
【請求項1】
コンピュータを、
現時点で出力中の1つ又は複数の出力音を識別する識別情報と、前記出力音各々の出力開始タイミングを示す情報とを紐付けた管理情報を管理する出力音管理部、
前記出力音を制御するイベントを呼び出す呼出部、
前記イベントに基づき、新たに出力させる前記出力音を決定する決定部、
前記イベントに基づき、現時点で出力中の前記出力音各々に対して行う音量調整の内容を、現時点で出力中の前記出力音各々の前記出力開始タイミングと現時点との時間差に基づき算出する算出部、
新たに出力させることを決定された前記出力音を出力させるとともに、現時点で出力中の前記出力音各々を、算出された前記音量調整の内容に基づき調整する出力音制御部、
として機能させるプログラム。
【請求項2】
前記出力音管理部は、
新たに出力させることを決定された前記出力音の前記識別情報及び前記出力開始タイミングを前記管理情報に登録する請求項1に記載のプログラム。
【請求項3】
前記算出部は、
前記時間差に基づき音量の下げ幅を算出し、
前記時間差が大きいほど大きい前記下げ幅を算出する請求項1又は2に記載のプログラム。
【請求項4】
前記算出部は、前記時間差が0の場合、前記下げ幅として0を算出する請求項3に記載のプログラム。
【請求項5】
前記算出部は、
前記時間差に基づき、前記出力音に適用されるローパスフィルタのカットオフ周波数を算出し、
前記時間差が大きいほど低い前記カットオフ周波数を算出する請求項1又は2に記載のプログラム。
【請求項6】
前記音量調整の内容を算出する方法は、前記イベント毎に異なる請求項1又は2に記載のプログラム。
【請求項7】
前記出力音制御部は、
現時点で出力中の前記出力音各々を前記音量調整の内容に基づき調整する制御を、前記制御を開始した時点から所定時間経過時点まで継続し、前記所定時間経過後に解除する請求項1又は2に記載のプログラム。
【請求項8】
前記算出部は、前記時間差に基づき音量の下げ幅を算出し、
前記出力音制御部は、
第1のイベントに基づく前記制御を継続中に、第2のイベントに基づく前記制御を行う場合、現時点で出力中の前記出力音各々の音量の下げ幅として、前記第1のイベントに基づき算出された前記下げ幅と、前記第2のイベントに基づき算出された前記下げ幅の内、下げ幅が大きい方を採用する請求項7に記載のプログラム。
【請求項9】
前記算出部は、前記時間差に基づき前記出力音に適用されるローパスフィルタのカットオフ周波数を算出し、
前記出力音制御部は、
第1のイベントに基づく前記制御を継続中に、第2のイベントに基づく前記制御を行う場合、現時点で出力中の前記出力音各々に適用されるローパスフィルタの前記カットオフ周波数として、前記第1のイベントに基づき算出された前記カットオフ周波数と、前記第2のイベントに基づき算出された前記カットオフ周波数の内、低い方を採用する請求項7に記載のプログラム。
【請求項10】
現時点で出力中の1つ又は複数の出力音を識別する識別情報と、前記出力音各々の出力開始タイミングを示す情報とを紐付けた管理情報を管理する出力音管理部と、
前記出力音を制御するイベントを呼び出す呼出部と、
前記イベントに基づき、新たに出力させる前記出力音を決定する決定部と、
前記イベントに基づき、現時点で出力中の前記出力音各々に対して行う音量調整の内容を、現時点で出力中の前記出力音各々の前記出力開始タイミングと現時点との時間差に基づき算出する算出部と、
新たに出力させることを決定された前記出力音を出力させるとともに、現時点で出力中の前記出力音各々を、算出された前記音量調整の内容に基づき調整する出力音制御部と、
を有する処理装置。
【請求項11】
1つ以上のコンピュータが
現時点で出力中の1つ又は複数の出力音を識別する識別情報と、前記出力音各々の出力開始タイミングを示す情報とを紐付けた管理情報を管理し、
前記出力音を制御するイベントを呼び出し、
前記イベントに基づき、新たに出力させる前記出力音を決定し、
前記イベントに基づき、現時点で出力中の前記出力音各々に対して行う音量調整の内容を、現時点で出力中の前記出力音各々の前記出力開始タイミングと現時点との時間差に基づき算出し、
新たに出力させることを決定された前記出力音を出力させるとともに、現時点で出力中の前記出力音各々を、算出された前記音量調整の内容に基づき調整する処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラム、処理装置及び処理方法に関する。
【背景技術】
【0002】
ゲームでは、BGM、効果音、セリフ等、複数の出力音が同時に出力される場合がある。複数の出力音を同時に出力することで、ゲームのエンターテインメント性等が向上する。しかし、複数の出力音が同時に出力される場合、重要な出力音が他の出力音によりかき消される等の不都合が生じ得る。当該不都合を解消する1つの手段として、ダッキング処理が知られている。特許文献1で説明されているように、ダッキング処理では、重要な出力音が出力される際に、他の出力音の音量を下げ、重要な出力音を目立たせる。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
ダッキング処理の場合、2つ以上の重要な出力音が同時に出力されるとき、それぞれのpeakやRMSの上昇によって互いの出力音を下げてしまうという問題がある。本発明は、複数の出力音が同時に出力される場合に、より重要な出力音をより目立たせるように制御することを課題とする。
【課題を解決するための手段】
【0005】
本発明の一態様によれば、
コンピュータを、
現時点で出力中の1つ又は複数の出力音を識別する識別情報と、前記出力音各々の出力開始タイミングを示す情報とを紐付けた管理情報を管理する出力音管理部、
前記出力音を制御するイベントを呼び出す呼出部、
前記イベントに基づき、新たに出力させる前記出力音を決定する決定部、
前記イベントに基づき、現時点で出力中の前記出力音各々に対して行う音量調整の内容を、現時点で出力中の前記出力音各々の前記出力開始タイミングと現時点との時間差に基づき算出する算出部、
新たに出力させることを決定された前記出力音を出力させるとともに、現時点で出力中の前記出力音各々を、算出された前記音量調整の内容に基づき調整する出力音制御部、
として機能させるプログラムが提供される。
【0006】
本発明の一態様によれば、
現時点で出力中の1つ又は複数の出力音を識別する識別情報と、前記出力音各々の出力開始タイミングを示す情報とを紐付けた管理情報を管理する出力音管理部と、
前記出力音を制御するイベントを呼び出す呼出部と、
前記イベントに基づき、新たに出力させる前記出力音を決定する決定部と、
前記イベントに基づき、現時点で出力中の前記出力音各々に対して行う音量調整の内容を、現時点で出力中の前記出力音各々の前記出力開始タイミングと現時点との時間差に基づき算出する算出部と、
新たに出力させることを決定された前記出力音を出力させるとともに、現時点で出力中の前記出力音各々を、算出された前記音量調整の内容に基づき調整する出力音制御部と、
を有する処理装置が提供される。
【0007】
本発明の一態様によれば、
1つ以上のコンピュータが
現時点で出力中の1つ又は複数の出力音を識別する識別情報と、前記出力音各々の出力開始タイミングを示す情報とを紐付けた管理情報を管理し、
前記出力音を制御するイベントを呼び出し、
前記イベントに基づき、新たに出力させる前記出力音を決定し、
前記イベントに基づき、現時点で出力中の前記出力音各々に対して行う音量調整の内容を、現時点で出力中の前記出力音各々の前記出力開始タイミングと現時点との時間差に基づき算出し、
新たに出力させることを決定された前記出力音を出力させるとともに、現時点で出力中の前記出力音各々を、算出された前記音量調整の内容に基づき調整する処理方法が提供される。
【発明の効果】
【0008】
本発明の一態様によれば、複数の出力音が同時に出力される場合に、より重要な出力音をより目立たせるように制御するという課題を解決するプログラム、処理装置及び処理方法が実現される。
【図面の簡単な説明】
【0009】
上述した目的、およびその他の目的、特徴および利点は、以下に述べる公的な実施の形態、およびそれに付随する以下の図面によってさらに明らかになる。
【0010】
【
図1】処理装置のハードウエア構成の一例を示す図である。
【
図2】処理装置の機能ブロック図の一例を示す図である。
【
図3】処理装置が処理する情報の一例を模式的に示す図である。
【
図4】処理装置が処理する情報の他の一例を模式的に示す図である。
【
図5】処理装置が処理する情報の他の一例を模式的に示す図である。
【
図6】処理装置が処理する情報の他の一例を模式的に示す図である。
【
図7】処理装置が処理する情報の他の一例を模式的に示す図である。
【
図8】処理装置の処理の流れの一例を示すフローチャートである。
【発明を実施するための形態】
【0011】
以下、本発明の実施の形態について、図面を用いて説明する。尚、すべての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。
【0012】
<第1の実施形態>
「概要」
本発明者は、「複数の出力音が同時に出力される場合に、より重要な出力音をより目立たせるように制御する」という課題を検討した結果、同時に出力される複数の出力音のうち、出力開始タイミングがより現時点に近い出力音ほど重要になり得ることを見出した。
【0013】
例えば、ゲームの開始時点が出力開始タイミングであるBGM(出力音)が流れている状況で、打撃アクションに応じた打撃音(出力音)が出力された場合、現時点でより重要なのは、出力開始タイミングが現時点により近い打撃音(出力音)となる。
【0014】
また、第1、第2及び第3の打撃アクションがこの順に連続的に行われ、各打撃アクションに応じて第1、第2及び第3の打撃音(出力音)がこの順に連続的に出力された場合、現時点でより重要なのは、出力開始タイミングが現時点により近い第3の打撃音(出力音)となる。
【0015】
本発明者は、この点を考慮し、本発明を完成した。本発明の処理装置は、新たな出力音を出力する際、その時点で出力中の出力音の音量を下げる。そして、処理装置は、音量の下げ幅を、各出力音の出力開始タイミングと現時点との時間差に基づき決定する。具体的には、処理装置は、時間差が大きいほどより大きい下げ幅を決定する。すなわち、出力開始タイミングが現時点から遠いほどより大きい下げ幅を決定し、出力開始タイミングが現時点に近いほどより小さい下げ幅を決定する。
【0016】
このような処理により、出力開始タイミングがより現時点に近い出力音ほど、より大きい音量で出力されるようになる。結果、「複数の出力音が同時に出力される場合に、より重要な出力音、すなわち、出力開始タイミングがより現時点に近い出力音をより目立たせるように制御する」ことが可能となる。以下、処理装置の構成を詳細に説明する。
【0017】
「ハードウエア構成」
次に、処理装置のハードウエア構成の一例を説明する。処理装置は、ゲームを提供するサーバであってもよい。その他、処理装置は、ユーザが操作するユーザ端末であってもよい。ユーザ端末の例としては、ゲーム機、パーソナルコンピュータ、タブレット端末、スマートフォン、携帯電話、スマートウォッチ等が例示される。処理装置の各機能部は、任意のコンピュータのCPU(Central Processing Unit)、メモリ、メモリにロードされるプログラム、そのプログラムを格納するハードディスク等の記憶ユニット(あらかじめ装置を出荷する段階から格納されているプログラムのほか、CD(Compact Disc)等の記録媒体やインターネット上のサーバ等からダウンロードされたプログラムをも格納できる)、ネットワーク接続用インターフェイスを中心にハードウエアとソフトウエアの任意の組合せによって実現される。そして、その実現方法、装置にはいろいろな変形例があることは、当業者には理解されるところである。
【0018】
図1は、処理装置のハードウエア構成を例示するブロック図である。
図1に示すように、処理装置は、プロセッサ1A、メモリ2A、入出力インターフェイス3A、周辺回路4A、バス5Aを有する。周辺回路4Aには、様々なモジュールが含まれる。処理装置は周辺回路4Aを有さなくてもよい。なお、処理装置は物理的及び/又は論理的に分かれた複数の装置で構成されてもよい。この場合、複数の装置各々が上記ハードウエア構成を備えることができる。
【0019】
バス5Aは、プロセッサ1A、メモリ2A、周辺回路4A及び入出力インターフェイス3Aが相互にデータを送受信するためのデータ伝送路である。プロセッサ1Aは、例えばCPU、GPU(Graphics Processing Unit)などの演算処理装置である。メモリ2Aは、例えばRAM(Random Access Memory)やROM(Read Only Memory)などのメモリである。入出力インターフェイス3Aは、入力装置、外部装置、外部サーバ、外部センサ、カメラ等から情報を取得するためのインターフェイスや、出力装置、外部装置、外部サーバ等に情報を出力するためのインターフェイスなどを含む。入力装置は、例えばキーボード、マウス、マイク、物理ボタン、タッチパネル等である。出力装置は、例えばディスプレイ、スピーカ、プリンター、メーラ等である。プロセッサ1Aは、各モジュールに指令を出し、それらの演算結果をもとに演算を行うことができる。
【0020】
「機能構成」
次に、本実施形態の処理装置10の機能構成を詳細に説明する。
図2に、処理装置10の機能ブロック図の一例を示す。図示するように、処理装置10は、ゲーム進行制御部11と、呼出部12と、決定部13と、算出部14と、記憶部15と、出力音管理部16と、出力音制御部17とを有する。
【0021】
ゲーム進行制御部11は、ユーザ入力に基づき、ゲームの進行を制御する。例えば、ゲーム進行制御部11は、ユーザ入力に基づき、ゲームの開始、ゲームの中断、ゲームの終了、ゲームのセーブ等を行う。また、ゲーム進行制御部11は、ユーザ入力に基づき、メニュー画面の遷移を行う。また、ゲーム進行制御部11は、ゲーム中に受付けたユーザ入力に基づき、ゲームを進行させる。ゲーム中にユーザから受付けるユーザ入力の内容は予めゲームごとに定義される。例えば、キャラクターを移動させるユーザ入力や、敵キャラクターを攻撃するユーザ入力や、防御するユーザ入力等が例示されるが、これらに限定されない。ゲーム進行制御部11は、これらのユーザ入力に基づき、キャラクターを所定の方向に移動させたり、敵キャラクターに与えたダメージ量を算出したり、ユーザのキャラクターが受けたダメージを算出したりする。ゲーム進行制御部11によるゲームの進行の制御の詳細は設計的事項であり、ゲームごとに定めることができる。
【0022】
そして、ゲーム進行制御部11は、上述のようなゲームの進行の制御中に、所定の出力音を出力させる事象(以下、「出力音事象」)が発生した場合、所定の出力音事象が発生した旨を示す情報(以下、「通知情報」)を呼出部12に入力する。
【0023】
複数の出力音事象、及び各出力音事象の発生に応じて出力される出力音は、ゲームごとに予め定義できる。例えば、ゲームの開始、ゲームの中断、ゲームの終了、ゲームのセーブ、メニュー画面の遷移、攻撃、防御、移動、敵キャラクターの死亡、ヒットポイントの回復等を出力音事象とすることができる。そして、各出力音事象の発生に応じて、適した出力音を出力することができる。なお、ここでの例示はあくまで一例であり、これらに限定されない。ゲーム進行制御部11から呼出部12に入力される通知情報では、どの出力音事象が発生したかが示される。
【0024】
呼出部12は、ゲーム進行制御部11から通知情報を受け取ると、その通知情報で示される出力音事象に応じて実行するイベントを呼び出す。予め、複数のイベントが定義されている。各イベントでは、出力音の制御内容が特定されている。例えば、新たな出力音を発生させたり、出力中の出力音を停止したり、出力中の出力音の音量を調整したりする制御が、各イベントで特定されている。
【0025】
例えば、
図3に示すように複数のイベントが定義される。
図3では、イベントごとに(イベントID(identifier)ごとに)、出力音の制御内容が特定されている。「出力させる出力音(音ID)」の欄では、各イベントで新たに発生させる出力音が定義されている。「音量」の欄では、新たに発生させる出力音の音量が定義されている。例えば、イベントID「E0001」では、S011の音とS007の音を音量V
1で新たに発生させることが定義されている。
【0026】
なお、図示するように、各イベントで発生させる出力音は、1つ又は複数の音で構成される。複数の音は、「打撃音」、「衣擦れ音」、「BGM1」、「BGM2」、「風の音」、「崖が崩れる音」、「歩く音」等、多種多様な音を含む。図示するSから始まる音IDは、複数の音を互いに識別する情報である。
【0027】
図3では、各イベントに対応して新たな出力音を発生させる制御のみが特定されているが、出力中の出力音を停止する制御や、出力中の出力音の音量を調整する制御の内容が特定されていてもよい。
【0028】
予め、複数の出力音発生事象各々と複数のイベント各々とが紐付けられている。呼出部12は、ゲーム進行制御部11から受け取った通知情報で示される出力音発生事象に紐付くイベントを呼び出す。
【0029】
図2に戻り、決定部13は、呼出部12により呼び出されたイベントに基づき、新たに出力させる出力音を決定する。上述の通り、各イベントでは、出力音の制御内容が特定されている。決定部13は、各イベントで定義されている内容に基づき、新たに出力させる出力音を決定する。
【0030】
算出部14は、呼出部12により呼び出されたイベントに基づき、現時点で出力中の出力音各々に対して行う音量調整の内容を算出する。各イベントでは、現時点で出力中の出力音各々に対して行う音量調整の内容が特定されている。算出部14は、各イベントで定義されている内容に基づき、現時点で出力中の出力音各々に対して行う音量調整の内容を算出する。
【0031】
例えば、算出部14は、現時点で出力中の出力音各々の出力開始タイミングと現時点との時間差に基づき、現時点で出力中の出力音各々の音量の下げ幅を決定することができる。下げ幅の算出方法は、予めイベントごとに特定されている。
【0032】
まず、出力中の出力音を特定する手段、及び上記時間差を算出する手段を説明する。本実施形態では、記憶部15が、
図4に示すような管理情報を記憶している。図示する管理情報は、イベントIDと、出力開始タイミングとが紐付けられている。
【0033】
イベントIDは、複数のイベントを識別する情報であるが、本実施形態では、このイベントIDを、現時点で出力中の出力音を識別する識別情報として利用する。上述の通り、所定のイベントの実行により所定の出力音が出力される。このため、イベントIDを、現時点で出力中の出力音を識別する識別情報として利用することができる。変形例として、複数の出力音を互いに識別する出力IDを定義し、図示する管理情報において、イベントIDに代えて出力音IDを利用してもよい。
【0034】
出力開始タイミングは、各出力音の出力を開始したタイミングを示す。図示する例では、年月日時刻情報で出力開始タイミングを示しているが、その他の情報で出力開始タイミングを示してもよい。例えば、CPUクロックに基づく相対時刻によって出力開始タイミングを示してもよい。この場合、ゲームプログラムを実行しているハードウエアの起動からの相対時刻を利用し、ミリ秒単位で時間差(各出力音の出力開始タイミングと現時点との差)を算出することができる。その他、ゲーム開始からの経過フレーム数を保持しておき、この出力開始タイミングにおける経過フレーム数に基づいて時間差(各出力音の出力開始タイミングと現時点との差)を算出してもよい。なお、どのタイミングを出力開始タイミングとして管理情報に登録するかは様々である。例えば、イベントが呼び出されたタイミングや、出力音の出力を実際に開始したタイミング等が例示されるが、これらに限定されない。
【0035】
算出部14は、このような管理情報に基づき、現時点で出力中の出力音を特定する。また、算出部14は、各出力音の出力開始タイミングと現時点との差を、上記時間差として算出する。
【0036】
次に、現時点で出力中の出力音各々に対して行う音量調整の内容を、現時点で出力中の出力音各々の出力開始タイミングと現時点との時間差(以下、単に「時間差」という場合がある)に基づき算出する処理について説明する。
【0037】
本実施形態では、予めイベントごとに、実行する音量調整の内容を算出する方法が特定されている。本実施形態では、音量調整の内容として、「音量の下げ幅」が算出される。また、本実施形態では、音量調整の内容として、さらに「下げた音量の戻し方」が算出されてもよい。これらの算出方法は、イベントごとに異なってもよい。
【0038】
まず、音量の下げ幅を算出する処理について説明する。算出部14は、時間差に基づき、音量の下げ幅を決定する。算出部14は、時間差が大きいほど大きい音量の下げ幅を決定する。そして、算出部14は、時間差が0の場合、音量の下げ幅として0を決定する。
【0039】
上述のような時間差に応じた音量の下げ幅の決定は、例えば所定の関数(時間差から音量の下げ幅を算出する関数)を用いた演算で実現されてもよい。関数は、N次関数であってもよいし(Nは1以上の整数)、三角関数であってもよいし、その他の関数であってもよい。その他、予め、時間差と音量の下げ幅とを対応付けたテーブルが用意されてもよい。そして、当該当該テーブルに基づき、時間差に応じた音量の下げ幅が決定されてもよい。
【0040】
音量の下げ幅を算出する方法(音量調整の内容を算出する算出方法)は、イベントごとに定義することができる。例えば、あるイベントでは1次関数を採用し、他のイベントでは2次関数を採用してもよい。また、ある複数のイベントでは1次関数を採用するが、その傾きを互いに異ならせてもよい。
【0041】
なお、1次関数を採用する場合、イベントごとに、「最大の下げ幅」と「最大の下げ幅とする時間差」が定義されてもよい。これらの情報に基づき、1次関数の傾きがイベントごとに求められる。この例の場合、最大の下げ幅とする時間差以上の時間差においては、最大の下げ幅が適用されてもよい。
【0042】
次に、下げた音量の戻し方を算出する処理について説明する。下げた音量の戻し方としては、「所定時間かけて徐々に元の音量に戻す方法」や、「音量を下げてから所定時間経過後に元の音量に戻す方法」等が例示される。なお、その他の方法で下げた音量を元の音量に戻してもよい。
【0043】
下げた音量の戻し方はイベントごとに異なってもよい。例えば、あるイベントでは「所定時間かけて徐々に元の音量に戻す方法」を採用し、他のイベントでは「音量を下げてから所定時間経過後に元の音量に戻す方法」を採用してもよい。また、ある複数のイベントでは「所定時間かけて徐々に元の音量に戻す方法」を採用するが、所定時間が互いに異なってもよい。また、ある複数のイベントでは「音量を下げてから所定時間経過後に元の音量に戻す方法」を採用するが、所定時間が互いに異なってもよい。すなわち、イベントごとに、「下げた音量を元に戻す所定時間」が定められてもよい。
【0044】
ここで、音量調整の内容を決定する処理の具体例を説明する。当該例では、
図5に示すように、音量の調整方法が予めイベントごとに定義される。
図5に示す情報は、イベントID「E0001」で識別されるイベントで実行される音量の調整方法を示す。図示するグラフは、「出力開始タイミングの時間差」、「イベントからの経過時間」及び「音量の割合」の軸を有する。
【0045】
「出力開始タイミングの時間差」は、イベントID「E0001」で識別されるイベントが呼び出された時点で出力中の出力音各々の出力開始タイミングと現時点との時間差を示す。
【0046】
「イベントからの経過時間」は、イベントID「E0001」で識別されるイベントが呼び出された時点からの経過時間を示す。「イベントID「E0001」で識別されるイベントが呼び出された時点」は、その周辺の他のタイミングに置き換えてもよい。例えば、当該イベントに基づきその時点で出力中の出力音の音量が実際に下げられた時点に置き換えてもよい。
【0047】
「音量の割合」は、出力中の出力音の音量の下げ幅を、音量の調整(下げ)を実行していない時点の音量を「1」とした割合で示す。
【0048】
図6に、
図5の情報を「出力開始タイミングの時間差」及び「音量の割合」の2軸で示した一例を示す。横軸に「出力開始タイミングの時間差」をとり、縦軸に「音量の割合」をとっている。当該グラフは、「音量の下げ幅」の算出方法を示す。図示する例では、出力開始タイミングと現時点の時間差が大きいほど、音量の割合が小さくなること、すなわち音量の下げ幅が大きくなることが示されている。そして、出力開始タイミングと現時点の時間差が0の場合、音量の下げ幅が0(音量の割合「1.0」)となることが示されている。図のr
1が上述した「最大の下げ幅」であり、t
1が上述した「最大の下げ幅とする時間差」である。
【0049】
次に、
図7に、
図5の情報を「イベントからの経過時間」及び「音量の割合」2軸で示した一例を示す。横軸に「イベントからの経過時間」をとり、縦軸に「音量の割合」をとっている。当該グラフは、「下げた音量の戻し方」を示す。図示するr
2は、「出力開始タイミングと現時点の時間差」に基づき決定された下げ幅である。イベントの実行とともに、出力中の出力音の音量は決定された下げ幅まで下げられることが示されている。そして、その後、時間t
2をかけて、徐々に元の音量(音量の割合「1.0」)に戻されることが示されている。t
2が上述した「下げた音量を元に戻す所定時間」である。なお、
図7では、1次関数で音量の戻し方が定義されているが、その他の関数で音量の戻し方が定義されてもよい。
【0050】
図2に戻り、出力音制御部17は、新たに出力させることを決定された出力音を出力させるとともに、現時点で出力中の出力音各々の音量を、算出された音量調整の内容に基づき調整する。具体的には、出力音制御部17は、現時点で出力中の出力音各々の音量を、算出された音量調整の内容に基づき下げる。そして、出力音制御部17は、下げた音量を、算出された音量調整の内容に基づき元に戻すことができる。
【0051】
出力音管理部16は、記憶部15に記憶されている管理情報(
図4参照)を管理する。すなわち、出力音管理部16は、管理情報に新たな情報を追加したり、管理情報から情報を削除したりする。具体的には、出力音管理部16は、新たにに出力させることを決定された出力音の識別情報(例:イベントID)及び出力開始タイミングを管理情報に登録する。また、出力音管理部16は、出力中の出力音の出力が停止された場合、それに応じて、その出力音の識別情報(例:イベントID)及び出力開始タイミングを管理情報から削除する。出力中の出力音の出力の停止は、例えば、所定のイベントの実行により実現されたり、出力開始タイミングから所定時間経過により実現されたりするが、これらに限定されない。
【0052】
なお、呼出部12、決定部13、算出部14、記憶部15及び出力音管理部16の機能は、例えば、Wwise等のミドルウエアを用いて実現することができる。
【0053】
次に、
図8のフローチャートを用いて、処理装置10の処理の流れの一例を説明する。ここでは、呼出部12、決定部13、算出部14、記憶部15及び出力音管理部16により実現される出力音を制御する処理の一例について説明する。
【0054】
呼出部12は、ゲーム進行制御部11から出力される通知情報の待ち状態となっている。呼出部12は、通知情報が入力されたか否かを判断する。本実施形態では、呼出部12は、フレーム毎に、通知情報が入力されたか否かを判断するものとするがこれに限定されない。その他のタイミングで当該判断を行ってもよい。通知情報が入力された場合、呼出部12は、通知情報の受け取りに応じて、受け取った通知情報で示される出力音発生事象に紐付くイベントを呼び出す(S10のYes)。その後、S11乃至S14の処理が実行される。一方、通知情報が入力されなかった場合、呼出部12は、イベントを呼び出さない(S10のNo)。その後、S11及びS12の処理は実行されず、S13及びS14の処理が実行される。
【0055】
イベントが呼び出された場合(S10のYes)、呼び出されたイベントで特定される処理が実行される。ここでは、決定部13は、呼び出されたイベントに基づき、新たに出力させる出力音を決定する(S11)。また、算出部14は、呼び出されたイベントに基づき、現時点で出力中の出力音各々に対して行う音量調整の内容を算出する。具体的には、算出部14は、現時点で出力中の出力音各々の出力開始タイミングと現時点との時間差を算出し(S12)、算出した時間差に基づき、出力中の出力音各々の音量の下げ幅を決定する(S13)。
【0056】
そして、出力音管理部16は、S11で新たに出力させることを決定された出力音を出力させるとともに、現時点で出力中の出力音各々の音量を、S13で算出された音量調整の内容(下げ幅)に基づき調整する(S14)。
【0057】
イベントが呼び出されなかった場合(S10のNo)、処理装置10は、任意の手段で、現時点で出力中の出力音の調整内容を決定する(S13)。そして、出力音管理部16は、現時点で出力中の出力音各々を、S13で決定された調整内容に基づき調整する(S14)。ここでの出力音の調整は音量調整(音量の上げ下げ)であるが、これに限定されない。例えば、S13では音量を上げ下げするか、そのままにするか、上げる場合の上げ幅や下げる場合の下げ幅等が決定される。
【0058】
処理装置10は、
図8に示すS10乃至S15の処理を繰り返し実行する。処理装置10は、例えばフレーム毎に
図8に示すS10乃至S15の処理を行うことができる。
【0059】
「作用効果」
本実施形態の処理装置10は、新たな出力音を出力する際、その時点で出力中の出力音の音量を下げる。そして、処理装置10は、音量の下げ幅を、各出力音の出力開始タイミングと現時点との時間差に基づき決定する。具体的には、処理装置10は、時間差が大きいほどより大きい下げ幅を決定する。すなわち、出力開始タイミングが現時点から遠いほどより大きい下げ幅を決定し、出力開始タイミングが現時点に近いほどより小さい下げ幅を決定する。
【0060】
このような処理により、出力開始タイミングがより現時点に近い出力音ほど、より大きい音量で出力されるようになる。結果、「複数の出力音が同時に出力される場合に、より重要な出力音、すなわち、出力開始タイミングがより現時点に近い出力音をより目立たせるように制御する」ことが可能となる。
【0061】
また、処理装置10は、出力開始タイミングと現時点との時間差が0の場合、下げ幅として0を算出することができる。このため、例えば複数の新たな出力音の出力を同時に開始する場合に、一方の新たな出力音に基づき他方の新たな出力音の音量が下げられる不都合を抑制できる。
【0062】
また、処理装置10は、音量の下げ幅の算出方法を、イベントごと(すなわち、新たに出力する出力音ごと)に異ならせることができる。このため、例えばより重要な出力音を新たに出力する際にその時点で出力中の出力音の音量をより大きく下げるなどの制御が可能となる。
【0063】
<第2の実施形態>
第1の実施形態では、出力開始タイミングと現時点との時間差に基づき算出する音量調整の内容が、「現時点で出力中の出力音の音量の下げ幅」あった。本実施形態では、出力開始タイミングと現時点との時間差に基づき算出する音量調整の内容が、「現時点で出力中の出力音に適用されるローパスフィルタのカットオフ周波数」である。本実施形態の処理装置10は、この点で、第1の実施形態の処理装置10と異なる。以下、詳細に説明する。
【0064】
算出部14は、第1の実施形態同様、呼出部12により呼び出されたイベントに基づき、現時点で出力中の出力音各々に対して行う音量調整の内容を、現時点で出力中の出力音各々の出力開始タイミングと現時点との時間差に基づき算出する。
【0065】
第1の実施形態では、算出部14は、上記時間差に基づき、現時点で出力中の出力音各々の音量の下げ幅を算出した。本実施形態では、算出部14は、上記時間差に基づき、現時点で出力中の出力音に適用されるローパスフィルタのカットオフ周波数を算出する。算出部14は、時間差が大きいほど低いカットオフ周波数を算出する。
【0066】
例えば、予めイベントごとに、
図5に示すようなグラフにおいて、「音量の割合」の軸を「ローパスフィルタのカットオフ周波数」に置き換えたグラフが用意される。そして、算出部14は、当該グラフに基づき、現時点で出力中の出力音に適用されるローパスフィルタのカットオフ周波数や、当該カットオフ周波数を元の状態に戻す戻し方が算出される。これらの算出方法は、イベントごとに異なってもよい。
【0067】
本実施形態の処理装置10のその他の構成は、第1の実施形態の処理装置10の構成と同様である。
【0068】
本実施形態の処理装置10によれば、第1の実施形態と同様の作用効果が実現される。
【0069】
<第3の実施形態>
図5及び
図7を用いて説明したように、新たな出力音の出力に応じて行われるその時点(現時点)で出力中の出力音の調整(音量の調整、ローパスフィルタのカットオフ周波数の調整)は所定時間継続する。このため、新たな第1の出力音の出力に応じて行われた上記調整が継続中に、他の新たな第2の出力音が出力されるという状況が発生し得る。本実施形態の処理装置10は、このような状況下で出力中の出力音を適切に調整する手段を有する。以下、詳細に説明する。
【0070】
出力音制御部17は、新たな出力音の出力に応じて、現時点で出力中の出力音各々を、算出部14が算出した音量調整の内容に基づき調整する制御を行う。そして、出力音制御部17は、
図5及び
図7を用いて説明したように、当該制御を開始した時点から所定時間経過時点まで当該制御を継続し、所定時間経過後に当該制御を解除する。
図7では、所定時間t
2の間、現時点で出力中の出力音の制御が行われることが示されている。
【0071】
そして、出力音制御部17は、新たな第1の出力音の出力に応じて行われた上記調整が継続中に、他の新たな第2の出力音が出力されるという状況が発生した場合に、出力中の出力音を適切に調整する手段を有する。以下、算出部14が、時間差に基づき音量の下げ幅を算出する場合と、時間差に基づきローパスフィルタのカットオフ周波数を算出する場合とに分けて、当該手段を説明する。
【0072】
「時間差に基づき音量の下げ幅を決定する場合」
-処理例1-
出力音制御部17は、第1のイベントに基づく制御(出力中の出力音の調整)を継続中に、第2のイベントに基づく制御を行う場合、現時点(第2のイベント呼び出し時点)で出力中の出力音各々の音量の下げ幅として、第1のイベントに基づき算出された現時点(第2のイベント呼び出し時点)の下げ幅と、第2のイベントに基づき算出された現時点(第2のイベント呼び出し時点)の下げ幅の内、下げ幅が大きい方を採用する。
【0073】
-処理例2-
出力音制御部17は、第1のイベントに基づく制御(出力中の出力音の調整)を継続中に、第2のイベントに基づく制御を行う場合、現時点(第2のイベント呼び出し時点)で出力中の出力音各々の音量の下げ幅として、第1のイベントに基づき算出された現時点(第2のイベント呼び出し時点)の下げ幅に、第2のイベントに基づき算出された現時点(第2のイベント呼び出し時点)の下げ幅を加えた下げ幅を採用する。
【0074】
「時間差に基づきローパスフィルタのカットオフ周波数を算出する場合」
-処理例1-
出力音制御部17は、第1のイベントに基づく制御(出力中の出力音の調整)を継続中に、第2のイベントに基づく制御を行う場合、現時点(第2のイベント呼び出し時点)で出力中の出力音各々に適用されるローパスフィルタのカットオフ周波数として、第1のイベントに基づき算出された現時点(第2のイベント呼び出し時点)のカットオフ周波数と、第2のイベントに基づき算出された現時点(第2のイベント呼び出し時点)のカットオフ周波数の内、低い方を採用する。
【0075】
-処理例2-
出力音制御部17は、第1のイベントに基づく制御(出力中の出力音の調整)を継続中に、第2のイベントに基づく制御を行う場合、現時点(第2のイベント呼び出し時点)で出力中の出力音各々に適用されるローパスフィルタのカットオフ周波数として、第1のイベントに基づき算出された現時点(第2のイベント呼び出し時点)のカットオフ周波数の下げ幅(元のカットオフ周波数と現時点のカットオフ周波数の差)に、第2のイベントに基づき算出された現時点(第2のイベント呼び出し時点)のカットオフ周波数の下げ幅を加えた下げ幅を、元のカットオフ周波数から引いた値を採用する。
【0076】
本実施形態の処理装置10のその他の構成は、第1及び第2の実施形態の処理装置10の構成と同様である。
【0077】
本実施形態の処理装置10によれば、第1及び第2の実施形態と同様の作用効果が実現される。また、処理装置10によれば、新たな第1の出力音の出力に応じて行われた出力中の出力音の調整が継続中に、他の新たな第2の出力音が出力されるという状況下で、出力中の出力音を適切に調整することができる。
【0078】
<変形例>
ここで、すべての実施形態に適用可能な変形例を説明する。
【0079】
上記実施形態では、
図3に示すようにイベントごとに音量が定められていた。変形例として、イベントごとの音量に加えて、さらにイベントIDに紐付いた出力音(音ID)毎に音量が定められてもよい。そして、出力の際にはそれぞれの音量パラメータを掛け合わせて(算出して)、音量を決定してもよい。例えば、あるイベントIDに紐付いた音量のパラメータが0.9で、そのイベントIDに紐付く音IDに紐付いた音量のパラメータが0.8のとき、出力する音量は0.72(=0.9×0.8)となる。そして、上記実施形態で説明した算出部14及び出力音制御部17による音量調整制御は、イベントIDに紐付いた音量のパラメータに対して実施される。
【0080】
以上、図面を参照して本発明の実施形態について述べたが、これらは本発明の例示であり、上記以外の様々な構成を採用することもできる。上述した実施形態の構成は、互いに組み合わせたり、一部の構成を他の構成に入れ替えたりしてもよい。また、上述した実施形態の構成は、趣旨を逸脱しない範囲内において種々の変更を加えてもよい。また、上述した各実施形態や変形例に開示される構成や処理を互いに組み合わせてもよい。
【0081】
また、上述の説明で用いたフローチャートでは、複数の工程(処理)が順番に記載されているが、各実施の形態で実行される工程の実行順序は、その記載の順番に制限されない。各実施の形態では、図示される工程の順番を内容的に支障のない範囲で変更することができる。また、上述の各実施の形態は、内容が相反しない範囲で組み合わせることができる。
【0082】
上記の実施の形態の一部または全部は、以下の付記のようにも記載されうるが、以下に限られない。
1. コンピュータを、
現時点で出力中の1つ又は複数の出力音を識別する識別情報と、前記出力音各々の出力開始タイミングを示す情報とを紐付けた管理情報を管理する出力音管理部、
前記出力音を制御するイベントを呼び出す呼出部、
前記イベントに基づき、新たに出力させる前記出力音を決定する決定部、
前記イベントに基づき、現時点で出力中の前記出力音各々に対して行う音量調整の内容を、現時点で出力中の前記出力音各々の前記出力開始タイミングと現時点との時間差に基づき算出する算出部、
新たに出力させることを決定された前記出力音を出力させるとともに、現時点で出力中の前記出力音各々を、算出された前記音量調整の内容に基づき調整する出力音制御部、
として機能させるプログラム。
2. 前記出力音管理部は、
新たに出力させることを決定された前記出力音の前記識別情報及び前記出力開始タイミングを前記管理情報に登録する1に記載のプログラム。
3. 前記算出部は、
前記時間差に基づき音量の下げ幅を算出し、
前記時間差が大きいほど大きい前記下げ幅を算出する1又は2に記載のプログラム。
4. 前記算出部は、前記時間差が0の場合、前記下げ幅として0を算出する3に記載のプログラム。
5. 前記算出部は、
前記時間差に基づき、前記出力音に適用されるローパスフィルタのカットオフ周波数を算出し、
前記時間差が大きいほど低い前記カットオフ周波数を算出する1又は2に記載のプログラム。
6. 前記音量調整の内容を算出する方法は、前記イベント毎に異なる1から5のいずれかに記載のプログラム。
7. 前記出力音制御部は、
現時点で出力中の前記出力音各々を前記音量調整の内容に基づき調整する制御を、前記制御を開始した時点から所定時間経過時点まで継続し、前記所定時間経過後に解除する1から6のいずれかに記載のプログラム。
8. 前記算出部は、前記時間差に基づき音量の下げ幅を算出し、
前記出力音制御部は、
第1のイベントに基づく前記制御を継続中に、第2のイベントに基づく前記制御を行う場合、現時点で出力中の前記出力音各々の音量の下げ幅として、前記第1のイベントに基づき算出された前記下げ幅と、前記第2のイベントに基づき算出された前記下げ幅の内、下げ幅が大きい方を採用する7に記載のプログラム。
9. 前記算出部は、前記時間差に基づき前記出力音に適用されるローパスフィルタのカットオフ周波数を算出し、
前記出力音制御部は、
第1のイベントに基づく前記制御を継続中に、第2のイベントに基づく前記制御を行う場合、現時点で出力中の前記出力音各々に適用されるローパスフィルタの前記カットオフ周波数として、前記第1のイベントに基づき算出された前記カットオフ周波数と、前記第2のイベントに基づき算出された前記カットオフ周波数の内、低い方を採用する7に記載のプログラム。
10. 現時点で出力中の1つ又は複数の出力音を識別する識別情報と、前記出力音各々の出力開始タイミングを示す情報とを紐付けた管理情報を管理する出力音管理部と、
前記出力音を制御するイベントを呼び出す呼出部と、
前記イベントに基づき、新たに出力させる前記出力音を決定する決定部と、
前記イベントに基づき、現時点で出力中の前記出力音各々に対して行う音量調整の内容を、現時点で出力中の前記出力音各々の前記出力開始タイミングと現時点との時間差に基づき算出する算出部と、
新たに出力させることを決定された前記出力音を出力させるとともに、現時点で出力中の前記出力音各々を、算出された前記音量調整の内容に基づき調整する出力音制御部と、
を有する処理装置。
11. 1つ以上のコンピュータが
現時点で出力中の1つ又は複数の出力音を識別する識別情報と、前記出力音各々の出力開始タイミングを示す情報とを紐付けた管理情報を管理し、
前記出力音を制御するイベントを呼び出し、
前記イベントに基づき、新たに出力させる前記出力音を決定し、
前記イベントに基づき、現時点で出力中の前記出力音各々に対して行う音量調整の内容を、現時点で出力中の前記出力音各々の前記出力開始タイミングと現時点との時間差に基づき算出し、
新たに出力させることを決定された前記出力音を出力させるとともに、現時点で出力中の前記出力音各々を、算出された前記音量調整の内容に基づき調整する処理方法。
【符号の説明】
【0083】
10 処理装置
11 ゲーム進行制御部
12 呼出部
13 決定部
14 算出部
15 記憶部
16 出力音管理部
17 出力音制御部
1A プロセッサ
2A メモリ
3A 入出力I/F
4A 周辺回路
5A バス