(57)【要約】      （修正有）【課題】音声再生の処理効率を向上させる情報処理方法を提供する。【解決手段】オブジェクト生成手順と、再生履歴記憶手順と、オブジェクト選択手順とを実行させる。オブジェクト生成手順は、複数の音声再生オブジェクトを生成する。再生履歴記憶手順は、複数の音声再生オブジェクトの各音声再生オブジェクトが最後に音声データを再生した時刻を示す再生時刻情報、及び各音声再生オブジェクトが最後に再生した当該音声データを識別する音声データ識別情報、を含む再生履歴情報をメモリに記憶する。音声再生オブジェクト選択手順は、特定の音声データを再生する要求に応じて再生履歴情報に基づいて、最後に再生した音声データが特定の音声データと同じである第１条件を満たす音声再生オブジェクトがあるならば、第１条件と、複数の音声再生オブジェクトのなかで最後に特定の音声データを再生したという第２条件の両方を満たす音声再生オブジェクトを選択する。【選択図】図６
2020052696.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
音声再生機能を呼び出すための複数の音声再生オブジェクトを生成するオブジェクト生成手順と、
前記複数の音声再生オブジェクトの各音声再生オブジェクトが最後に音声データを再生した時刻を示す再生時刻情報、及び前記各音声再生オブジェクトが最後に再生した当該音声データを識別する音声データ識別情報、を含む再生履歴情報をメモリに記憶する再生履歴記憶手順と、
特定の音声データを再生する要求に応じて、前記メモリに記憶された前記再生履歴情報に基づいて、最後に再生した音声データが前記特定の音声データと同じであるという第１条件を満たす前記音声再生オブジェクトがあるならば、前記第１条件と、前記複数の音声再生オブジェクトのなかで最後に前記特定の音声データを再生したという第２条件の両方を満たす前記音声再生オブジェクトを選択する、オブジェクト選択手順と、
前記オブジェクト選択手順によって選択された前記音声再生オブジェクトを用いて前記特定の音声データを再生する、音声再生手順と、を実行させる、
プログラム。
【請求項２】
前記音声再生オブジェクトは、他のプログラムが提供する音声再生機能を管理するソフトウェアモジュールが使用する、前記コンピュータに係る特定の計算機資源を表すものであり、
前記オブジェクト生成手順では、前記複数の音声再生オブジェクトとして、前記他のプログラムが同時に再生可能な音声の個数の前記音声再生オブジェクトを生成する、
請求項１に記載のプログラム。
【請求項３】
前記オブジェクト選択手順では、
前記第１条件を満たす前記音声再生オブジェクトがないと判定した場合には、
前記再生履歴情報に基づいて、前記複数の音声再生オブジェクトのなかに、いずれの音声データも再生していない前記音声再生オブジェクトがあるか否かを判定し、そのような前記音声再生オブジェクトがあると判定した場合には、当該音声再生オブジェクトを選択する、
請求項１又２に記載のプログラム。
【請求項４】
前記オブジェクト選択手順では、
いずれの音声データも再生していない前記音声再生オブジェクトがないと判定した場合には、
前記再生履歴情報に基づいて、前記複数の音声再生オブジェクトのなかから、最も古くに音声データを再生した前記音声再生オブジェクトを選択する、
請求項３に記載のプログラム。
【請求項５】
前記オブジェクト選択手順では、
前記複数の音声再生オブジェクトのいずれもが、いずれの音声データも再生していないものである場合には、
前記再生履歴情報に基づいて、前記複数の音声再生オブジェクトのなかから、任意の前記音声再生オブジェクトを選択する、
請求項３に記載のプログラム。
【請求項６】
音声再生機能を呼び出すための複数の音声再生オブジェクトを生成するオブジェクト生成部と、
前記複数の音声再生オブジェクトの各音声再生オブジェクトが最後に音声データを再生した時刻を示す再生時刻情報、及び前記各音声再生オブジェクトが最後に再生した当該音声データを識別する音声データ識別情報、を含む再生履歴情報をメモリに記憶する再生履歴記憶部と、
特定の音声データを再生する要求に応じて、前記メモリに記憶された前記再生履歴情報に基づいて、最後に再生した音声データが前記特定の音声データと同じであるという第１条件を満たす前記音声再生オブジェクトがあるならば、前記第１条件と、前記複数の音声再生オブジェクトのなかで最後に前記特定の音声データを再生したという第２条件の両方を満たす前記音声再生オブジェクトを選択する、オブジェクト選択部と、
前記オブジェクト選択部によって選択された前記音声再生オブジェクトを用いて前記特定の音声データを再生する、音声再生部と、を備える、
情報処理装置。
【請求項７】
コンピュータが、
音声再生機能を呼び出すための複数の音声再生オブジェクトを生成するオブジェクト生成手順と、
前記複数の音声再生オブジェクトの各音声再生オブジェクトが最後に音声データを再生した時刻を示す再生時刻情報、及び前記各音声再生オブジェクトが最後に再生した当該音声データを識別する音声データ識別情報、を含む再生履歴情報をメモリに記憶する再生履歴記憶手順と、
特定の音声データを再生する要求に応じて、前記メモリに記憶された前記再生履歴情報に基づいて、最後に再生した音声データが前記特定の音声データと同じであるという第１条件を満たす前記音声再生オブジェクトがあるならば、前記第１条件と、前記複数の音声再生オブジェクトのなかで最後に前記特定の音声データを再生したという第２条件の両方を満たす前記音声再生オブジェクトを選択する、オブジェクト選択手順と、
前記オブジェクト選択手順によって選択された前記音声再生オブジェクトを用いて前記特定の音声データを再生する、音声再生手順と、を実行する、
情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、音声による演出を行うプログラム、情報処理装置、及び情報処理方法に関する。
【背景技術】
【０００２】
従来、ゲームアプリなどのプログラムには、音声（音楽、効果音など）による演出を行うものがある（例えば、特許文献１に記載されているプログラム）。
【０００３】
この種のプログラムは、例えば、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）やミドルウェア等の基盤ソフトウェアの音声再生機能を用いて音声データ（換言すれば、音声ファイル）を再生する。より具体的には、この種のプログラムは、ゲームの進行を管理するソフトウェアモジュールから、特定の音声データを再生する要求が発行されたら、前記基盤ソフトウェアの音声再生機能を管理するソフトウェアモジュールを起動し、当該音声再生機能を呼び出すためのオブジェクト（以下、音声再生オブジェクトという）を生成する。なお、ここでいう「オブジェクト」は、オブジェクト指向プログラミングにおけるオブジェクトである。また、ここでいう「音声再生オブジェクト」は、前記基盤ソフトウェアなどの他のプログラムが提供する音声再生機能を管理するソフトウェアモジュールが使用する特定の計算機資源を表すものである。
【０００４】
上記のように音声再生オブジェクトが生成されることにより、前記基盤ソフトウェアの音声再生機能を管理するソフトウェアモジュールが使用する特定の計算機資源（例えば、デバイスドライバのハンドルや、音声再生バッファへのポインタ等をまとめたメモリ領域、一時的なディスク領域を示すハンドルなど）が確保される。そして、当該プログラムは、生成した当該音声再生オブジェクトを用いて当該音声データを再生する。これにより、ゲーム中で音声が再生される。また、この種のプログラムは、複数の音声を同時に発する場合には、複数の音声再生オブジェクトを生成し、これらの各音声再生オブジェクトを用いて音声データを再生する。
【０００５】
この種のプログラムとしては、音声データの再生が終了したら音声再生オブジェクトを破棄するものがある。このようなプログラムでは、再生要求があるごとに、音声再生オブジェクトの生成及び破棄が行われる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１４―２００２６４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上記の背景技術の手法では、上記でも述べたように、音声再生オブジェクトの生成時には、音声再生機能を管理するソフトウェアモジュールが使用する特定の計算機資源の確保が行われ、音声再生オブジェクトの破棄時には、当該特定の計算機資源の破棄が行われることになる。この計算機資源の確保と破棄は計算処理上のコストが高い処理である。
【０００８】
また、上記の背景技術の手法では、再生要求が発行されるごとに、音声再生オブジェクトそのもの、もしくは、音声再生オブジェクトが内部に保持する子オブジェクトの生成及び破棄が行われるので、再生要求の回数に比例して音声再生オブジェクトや当該音声再生オブジェクトが内部に保持する子オブジェクトの生成及び破棄の回数が上昇する。従って、再生要求が繰り返し発行されると、音声再生オブジェクトの生成及び破棄の回数が上昇し、計算処理上のコストが高くなるので、ＣＰＵの処理負荷が大きくなってしまう。特に、再生要求が短時間に多数回繰り返される場合や、複数の音声を同時に再生する場合には、ＣＰＵの処理負荷が非常に大きくなる。
【０００９】
そこで、本発明は、上記事情に鑑み、音声再生の処理効率を向上させることができるプログラム、情報処理装置、及び情報処理方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の一態様に係るプログラムは、コンピュータに、音声再生機能を呼び出すための複数の音声再生オブジェクトを生成するオブジェクト生成手順と、複数の音声再生オブジェクトの各音声再生オブジェクトが最後に音声データを再生した時刻を示す再生時刻情報、及び各音声再生オブジェクトが最後に再生した当該音声データを識別する音声データ識別情報、を含む再生履歴情報をメモリに記憶する再生履歴記憶手順と、特定の音声データを再生する要求に応じて、メモリに記憶された再生履歴情報に基づいて、最後に再生した音声データが特定の音声データと同じであるという第１条件を満たす音声再生オブジェクトがあるならば、第１条件と、複数の音声再生オブジェクトのなかで最後に特定の音声データを再生したという第２条件の両方を満たす音声再生オブジェクトを選択する、オブジェクト選択手順と、オブジェクト選択手順によって選択された音声再生オブジェクトを用いて特定の音声データを再生する、音声再生手順と、を実行させる。
【００１１】
本発明の一態様に係る情報処理装置は、音声再生機能を呼び出すための複数の音声再生オブジェクトを生成するオブジェクト生成部と、複数の音声再生オブジェクトの各音声再生オブジェクトが直近に音声データを再生した時刻を示す再生時刻情報、及び各音声再生オブジェクトが最後に再生した当該音声データを識別する音声データ識別情報、を含む再生履歴情報をメモリに記憶する再生履歴記憶部と、特定の音声データを再生する要求に応じて、メモリに記憶された再生履歴情報に基づいて、最後に再生した音声データが特定の音声データと同じであるという第１条件を満たす音声再生オブジェクトがあるならば、第１条件と、複数の音声再生オブジェクトのなかで最後に特定の音声データを再生したという第２条件の両方を満たす音声再生オブジェクトを選択する、オブジェクト選択部と、オブジェクト選択部によって選択された音声再生オブジェクトを用いて特定の音声データを再生する、音声再生部と、を備える。
【００１２】
本発明の一態様に係る情報処理方法では、コンピュータが、音声再生機能を呼び出すための複数の音声再生オブジェクトを生成するオブジェクト生成手順と、複数の音声再生オブジェクトの各音声再生オブジェクトが最後に音声データを再生した時刻を示す再生時刻情報、及び各音声再生オブジェクトが最後に再生した当該音声データを識別する音声データ識別情報、を含む再生履歴情報をメモリに記憶する再生履歴記憶手順と、特定の音声データを再生する要求に応じて、メモリに記憶された再生履歴情報に基づいて、最後に再生した音声データが特定の音声データと同じであるという第１条件を満たす音声再生オブジェクトがあるならば、第１条件と、複数の音声再生オブジェクトのなかで最後に特定の音声データを再生したという第２条件の両方を満たす音声再生オブジェクトを選択する、オブジェクト選択手順と、オブジェクト選択手順によって選択された音声再生オブジェクトを用いて特定の音声データを再生する、音声再生手順と、を実行する。
【発明の効果】
【００１３】
本発明によれば、計算機資源を有効に活用することにより音声再生の処理効率を向上させることができるプログラム、情報処理装置、及び情報処理方法が提供される。
【図面の簡単な説明】
【００１４】
【図１】図１は、本発明の実施形態に係る情報処理システムの全体構成を示すブロック図である。
【図２】図２は、図１の情報処理サーバ及びプレイヤ端末のハードウェア構成の一例を示すブロック図である。
【図３】図３は、図１の情報処理サーバ及びプレイヤ端末の機能的構成の一例を示すブロック図である。
【図４】図４は、図１のプレイヤ端末、及び当該プレイヤ端末に搭載されるソフトウェア等で構成される階層構造を示す図である。
【図５】図５は、再生履歴記憶部が記憶する情報の一例を示す表である。
【図６】図６は、本発明の実施形態に係るオブジェクト選択処理の一例を示すフローチャートである。
【図７】図７は、再生履歴記憶部が記憶する情報の一例を示す表である。
【図８】図８は、本発明の実施形態に係るオブジェクト選択処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００１５】
以下、添付図面を参照しながら本実施形態について説明する。説明の理解を容易にするため、各図面において同一の構成要素に対しては可能な限り同一の符号を付して、重複する説明は省略する。
【００１６】
＜１．情報処理システムの全体構成＞
図１は、本実施形態に係る情報処理システム１００の全体構成を示すブロック図である。図１に示すように、情報処理システム１００は、例示的に、情報処理サーバ１と、ｎ台（ｎは、１以上の任意の整数値）のプレイヤ端末３（コンピュータ）（情報処理装置）と、ネットワークＮとを有している。
【００１７】
情報処理システム１００は、いわゆるクライアント・サーバシステムである。情報処理システム１００は、クライアントであるｎ台のプレイヤ端末３と、情報処理サーバ１とがネットワークＮを介して相互に通信を行うことにより実現される。
【００１８】
情報処理サーバ１は、例えば、サーバ装置により実現される。プレイヤ端末３は、例えば、スマートフォンや、ゲーム機や、パーソナルコンピュータにより実現される。ネットワークＮは、例えば、インターネット、携帯電話網といったネットワーク、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、あるいはこれらを組み合わせたネットワークにより実現される。
【００１９】
なお、図中には、ｎ台のプレイヤ端末３として、プレイヤ端末３ａ及びプレイヤ端末３ｎを図示してある。以下の説明において、これらｎ台のプレイヤ端末３を区別することなく説明する場合には、単に「プレイヤ端末３」と呼ぶ。
【００２０】
＜２．情報処理サーバ及びプレイヤ端末のハードウェア構成＞
図２は、本実施形態に係る情報処理サーバ１のハードウェアの構成と、プレイヤ端末３のハードウェアの構成を示すブロック図である。なお、図中では、情報処理サーバ１のハードウェアに対応する符号には括弧を付しておらず、プレイヤ端末３のハードウェアに対応する符号には括弧を付してある。
【００２１】
情報処理サーバ１とプレイヤ端末３のハードウェア構成は基本的には同様であるので、以下においてはプレイヤ端末３を例に挙げて説明し、重複する説明を省略する。
【００２２】
プレイヤ端末３は、例示的に、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３１と、メモリ３３と、バス３４と、入出力インターフェース３５と、入力部３６と、出力部３７と、記録部３８と、通信部３９とを備えている。
【００２３】
ＣＰＵ３１は、メモリ３３に記録されているプログラム、又は、記録部３８からメモリ３３にロードされたプログラムに従ってプレイヤ端末３の動作に関する各種演算処理を実行する。
【００２４】
メモリ３３は、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）及びＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等を含んで構成されている。
【００２５】
メモリ３３には、ＣＰＵ３１が各種演算処理を実行する上において必要なデータ等も適宜記憶される。ＣＰＵ３１及びメモリ３３は、バス３４を介して相互に接続されている。このバス３４には、入出力インターフェース３５も接続されている。入出力インターフェース３５には、入力部３６と、出力部３７と、記録部３８と、通信部３９が接続されている。
【００２６】
入力部３６は、各種ボタン、タッチパネルあるいはマイク等で構成されている。入力部３６は、プレイヤ端末３のユーザ（プレイヤ）等の指示操作に応じて各種情報を入力する。
【００２７】
出力部３７は、ディスプレイやスピーカ等で構成されている。出力部３７は、画像データや音声データ（例えば、WAVEファイル、MP３ファイル）を出力する。出力部３７が出力した画像データや音声データは、ディスプレイやスピーカ等から、プレイヤ端末３のユーザ等に画像や音声（音楽、効果音など）と認識されるものとして出力される。
【００２８】
記録部３８は、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等の半導体メモリで構成され、各種データを記録する。
【００２９】
通信部３９は、ネットワークＮを介して、情報処理サーバ１との間で相互に通信（各種データの送受信など）を行う。
【００３０】
次に、情報処理サーバ１のハードウェアの構成について説明をする。情報処理サーバ１は、図２に示すように、例示的に、ＣＰＵ１１と、メモリ１３と、バス１４と、入出力インターフェース１５と、入力部１６と、出力部１７と、記録部１８と、通信部１９とを備えている。これら各部は、プレイヤ端末３が備える同名の各部と同等の機能を有している。
【００３１】
＜３．情報処理サーバ及びプレイヤ端末の機能的構成＞
図３は、本実施形態に係る情報処理サーバ１の機能的構成と、プレイヤ端末３の機能的構成の一例を示すブロック図である。
【００３２】
情報処理サーバ１は、例示的に、機能的構成として、ゲームの進行を管理するゲーム管理部１１１と、ゲームの進行に必要な情報などを記録する記録部１８とを備えている。ゲーム管理部１１１は、例えば、図２の記録部１８に格納されているプログラムをＣＰＵ１１が実行することにより実現される。
【００３３】
ゲーム管理部１１１は、プレイヤ端末３において動作するゲームの進行に必要な情報などを管理する。例えば、ゲーム管理部１１１は、プレイヤ端末３においてゲームがプレイされる際に、ゲームの進行に必要な情報をプレイヤ端末３に提供し、プレイヤ端末３で実行されるゲームの進捗に基づいて更新された情報をプレイヤ端末３から任意のタイミングで取得し管理する。
【００３４】
プレイヤ端末３は、例示的に、機能的構成として、ゲームの動作等に関する情報処理を行う情報処理部３１１と、ゲームの動作に必要な情報を記録する記録部３８と、ゲームの動作に必要な情報を一時的に記憶するオブジェクト・プール部３３１とを備えている。情報処理部３１１は、例えば、図２の記録部３８に格納されているゲームソフトウェア（プログラム）をＣＰＵ３１が実行することにより実現される。オブジェクト・プール部３３１は、メモリ３３によって実現される。
【００３５】
情報処理部３１１は、ゲームの動作を管理したり、ゲーム用の画像及び音声を生成したりするなどの各種情報処理を実行する。なお、ここでいう「音声」は、人の声に限定されるものではなく、音楽や効果音などの様々な音のいずれかを含むものである（以下の「音声」についても同様）。
【００３６】
情報処理部３１１は、例示的に、機能的構成として、プレイヤからゲームに関する操作を受け付ける操作情報受付部３１２と、ゲームを動作させる処理（画像及び音声を生成する処理など）を実行するゲーム動作部３１４と、音声再生に関する履歴情報を記憶する処理を実行する再生履歴記憶部３１７とを備えている。
【００３７】
操作情報受付部３１２は、プレイヤからゲームに関する操作を受け付ける。操作情報受付部３１２は、プレイヤによる入力部３６を用いたゲームに関する操作を受け付ける。そして、操作情報受付部３１２は、受け付けた操作内容を、ゲーム動作部３１４に対して出力する。
【００３８】
ゲーム動作部３１４は、ゲームを動作させるための処理を実行する。ゲーム動作部３１４は、記録部３８に記憶されたゲームソフトウェア（プログラム）に含まれるゲーム動作情報ＢＩと、図２の入力部３６から入力されたプレイヤの操作内容とに基づいてゲームを動作させる。
【００３９】
ゲーム動作部３１４は、例示的に、機能的な構成として、ゲーム用の画像を生成する画像生成部３１５と、ゲーム用の音声を生成する音声処理部３１６とを備えている。
【００４０】
画像生成部３１５は、ゲームの動作に伴い、ゲーム動作情報ＢＩに含まれる画像データからゲーム用の画像を生成し、生成した画像を出力部３７に出力させるための制御処理を実行する。
【００４１】
音声処理部３１６は、ゲームの動作に伴い、ゲーム動作情報ＢＩに含まれる音声データからゲーム用の音声を出力部３７に出力させるための制御処理を実行する。音声処理部３１６は、例示的に、機能的な構成として、複数の音声再生オブジェクトを生成するオブジェクト生成部３１６ａと、生成した複数の音声再生オブジェクトから使用すべき音声再生オブジェクトを選択するオブジェクト選択部３１６ｂと、選択した音声再生オブジェクトを用いて音声を再生する音声再生部３１６ｃとを備えている。なお、ここでいう「オブジェクト」は、オブジェクト指向プログラミングにおけるオブジェクトである（以下の「オブジェクト」についても同様）。
【００４２】
音声処理部３１６の各部について説明するのに先立ち、図４を参照しつつ、音声の再生に関連するソフトウェアの構成について説明する。図４は、図２のプレイヤ端末３（例えば、スマートフォン）、及び当該プレイヤ端末３に搭載されるソフトウェア等で構成される階層構造を示す図である。図４に示されるように、プレイヤ端末３には、音声再生機能を有する基盤ソフトウェア（本実施形態に係るゲームソフトウェアとは別のプログラム）（他のプログラム）が搭載されている。基盤ソフトウェアは、例えば、ＯＳ（例えば、Ａｎｄｒｏｉｄ（登録商標）、ｉＯＳ（登録商標））、及びＯＳと本実施形態のゲームソフトウェア（プログラム）との間に入るミドルウェア（例えば、ＣＲＩ（登録商標）、Ｗｗｉｓｅ（登録商標））で構成される。なお、基盤ソフトウェアは、本実施形態のゲームソフトウェア（プログラム）とは別のプログラムであって、音楽再生機能を有するものであれば、特にその構成が限定されない。
【００４３】
オブジェクト生成部３１６ａは、基盤ソフトウェアの上位層に、基盤ソフトウェアの音声再生機能を用いるための複数の音声再生オブジェクト（図３及び図４の音声再生オブジェクトＳＯ１、ＳＯ２、…、ＳＯ１０）を生成する。音声再生オブジェクトは、上記の基盤ソフトウェア（他のプログラム）が提供する音声再生機能を呼び出すためのソフトウェアモジュールが使用する、プレイヤ端末３（コンピュータ）に係る特定の計算機資源を表すものであり、当該音声再生機能を呼び出す関数群とそれに紐づいたメモリ領域である。このメモリ領域には、例えば、オブジェクト・プール部３３１内において確保される音声再生オブジェクトごとのメモリ領域、プレイヤ端末３などのハードウェアを制御するデバイスドライバのハンドルなどのデバイス関連の各種データを格納するためのメモリ領域、及び音声再生バッファのポインタ等のバッファ関連の各種データを格納するためのメモリ領域などが含まれる。
【００４４】
オブジェクト生成部３１６ａによる音声再生オブジェクトの生成は、ゲームでの音声再生の前にあらかじめ実行される。例えば、オブジェクト生成部３１６ａは、ゲームの起動時に音声再生オブジェクトを生成する。これにより、基盤ソフトウェアの音声再生機能を管理するソフトウェアモジュールが使用する特定の計算機資源が確保される。基盤ソフトウェア上で音声再生バッファの確保、および、当該バッファの初期化処理が行われ、この音声再生バッファへのポインタ等のバッファ関連の各種データが音声再生オブジェクトのメモリ領域に格納される。また、基盤ソフトウェアにより、プレイヤ端末３などのハードウェアを制御するデバイスドライバの初期化処理及び設定処理が行われ、当該デバイスの使用を基盤ソフトウェアへ伝達するための識別子であるハンドル等のデバイス関連の各種データが音声再生オブジェクトのメモリ領域に格納される。
【００４５】
なお、オブジェクト生成部３１６ａが生成する音声再生オブジェクトの個数は、特に限定されるものではないが、基盤ソフトウェアの同時再生可能数や、複数の音声を同時に発音したときの音質や音量などを考慮して適宜設定される。本明細書では、説明の理解を容易にするために、音声再生オブジェクトの個数を１０個（音声再生オブジェクトＳＯ１、ＳＯ２、…、ＳＯ１０）とした場合の例について説明する。
【００４６】
ゲームの動作に伴い、音声データ（以下、再生要求に係る当該データを「特定の音声データ」ともいう）を再生する要求がなされると、オブジェクト選択部３１６ｂは、当該要求に応じて、音声処理部３１６が生成した１０個の音声再生オブジェクトＳＯ１、ＳＯ２、…、ＳＯ１０のなかから、特定の音声データを再生する音声再生オブジェクトを選択する。オブジェクト選択部３１６ｂが音声再生オブジェクトを選択する処理（オブジェクト選択処理）の詳細については後述する。
【００４７】
音声再生部３１６ｃは、オブジェクト選択部３１６ｂによって選択された音声再生オブジェクトを用いて特定の音声データを再生する。これにより、ゲーム中で、当該特定の音声データに対応する音声が再生される。
【００４８】
なお、同時に複数の音声データを再生する要求がなされた場合も、音声データごとに、オブジェクト選択部３１６ｂ及び音声再生部３１６ｃが上記のように機能する。すなわち、同時に複数の音声データを再生する要求がなされた場合、音声データごとに、上記したようにオブジェクト選択部３１６ｂが特定の音声データを再生する音声再生オブジェクトを選択し、選択した当該音声再生オブジェクトを用いて特定の音声データを再生する。これにより、同時に複数の音声データが再生され、ゲーム中で、複数の音声が同時に再生される。
【００４９】
音声処理部３１６によって音声データが再生されると、再生履歴記憶部３１７は、当該再生に関する情報である再生履歴情報ＨＩをオブジェクト・プール部３３１（メモリ）に記憶する。再生履歴情報ＨＩは、当該再生が行われた時間を示す情報（以下、再生時刻情報という）、及び再生した音声データを識別する情報（以下、音声データ識別情報という）を含んでいる。詳細は後述するが、再生履歴情報ＨＩは、オブジェクト選択部３１６ｂが特定の音声データを再生する音声再生オブジェクトを選択する際に用いられる。
【００５０】
再生時刻情報としては、例えば、ＵＮＩＸ（登録商標）時間などをタイムスタンプとして採用することができる。図５は、再生履歴記憶部３１７が記憶する情報の一例を示す表である。例えば、再生履歴記憶部３１７は、図５のように、音声再生オブジェクトを識別するためのオブジェクト識別情報（この例では、音声再生オブジェクトの符号ＳＯ１、ＳＯ２、…、ＳＯ１０をＩＤとしている）と、これらオブジェクト識別情報に紐づけられた再生時刻情報として、当該再生が行われた時刻を示すタイムスタンプ（ＵＮＩＸ時間）をオブジェクト・プール部３３１に記憶する。更に、再生履歴記憶部３１７は、オブジェクト識別情報に紐づけられた音声データ識別情報として、音声データのＩＤ（図５の例では、例えば、ＳＤ１、ＳＤ２、…、ＳＤ１５）をオブジェクト・プール部３３１に記憶する。一度用いられた音声再生オブジェクトが再び用いられて再生が行われた場合には、当該再生における再生時刻情報と音声データ識別情報が記憶される（更新される）。従って、換言すれば、オブジェクト・プール部３３１に記憶された再生時刻情報は、各音声再生オブジェクトが最後に音声データを再生した時刻を示す情報である。また、オブジェクト・プール部３３１に記憶された音声データ識別情報は、各音声再生オブジェクトが最後に再生した当該音声データを識別する情報である。
【００５１】
なお、同時に複数の音声データを再生する要求がなされた場合には、再生履歴記憶部３１７は、音声データごとに、上記したように、再生時刻情報と音声データ識別情報をオブジェクト・プール部３３１に記憶する。
【００５２】
＜オブジェクト選択処理＞
次に、図６を参照して、オブジェクト選択部３１６ｂが音声再生オブジェクトを選択する処理の詳細について説明する。図６は、本発明の実施形態に係るオブジェクト選択処理の一例を示すフローチャートである。
【００５３】
（ステップＳ１）
特定の音声データを再生する要求に応じて、オブジェクト選択部３１６ｂは、オブジェクト・プール部３３１（メモリ）に記憶された再生履歴情報ＨＩに基づいて、複数の音声再生オブジェクト（上記の例では１０個の音声再生オブジェクトＳＯ１、ＳＯ２、…、ＳＯ１０）のなかに、最後に再生した音声データが前記特定の音声データと同じであるという第１条件を満たす音声再生オブジェクトがあるか否かを判定する。例えば、図５の例において、音声データＳＤ３を再生する要求がなされた場合であれば、１０個の音声再生オブジェクトＳＯ１、ＳＯ２、…、ＳＯ１０のなかに第１条件を満たす音声再生オブジェクトがあるか否かを判定する。
【００５４】
（ステップＳ２）
オブジェクト選択部３１６ｂは、ステップＳ１において第１条件を満たす音声再生オブジェクトがあると判定した場合には、第１条件と、１０個の音声再生オブジェクトＳＯ１、ＳＯ２、…、ＳＯ１０のなかで最後に特定の音声データを再生したという第２条件の両方を満たす音声再生オブジェクトを選択する。例えば、図５の例においては、音声再生オブジェクトＳＯ３、ＳＯ８、ＳＯ１０が第１条件を満たすので、このなかで最後に特定の音声データを再生した音声再生オブジェクトである音声再生オブジェクトＳＯ１０を選択する。
【００５５】
ここで、既に述べた通り、上記の背景技術の手法では、再生要求が発行されるごとに、音声再生オブジェクトそのもの、もしくは、音声再生オブジェクトが内部に保持する子オブジェクトの生成及び破棄が行われるので、再生要求の回数に比例して音声再生オブジェクトや当該音声再生オブジェクトが内部に保持する子オブジェクトの生成及び破棄の回数が上昇する。従って、再生要求が繰り返し発行されると、音声再生オブジェクトの生成及び破棄の回数が上昇し、計算処理上のコストが高くなるので、ＣＰＵ３１の処理負荷が大きくなってしまう。特に、再生要求が短時間に多数回繰り返される場合や、複数の音声を同時に再生する場合には、ＣＰＵ３１の処理負荷が非常に大きくなる。
【００５６】
このような問題に対応する手法としては、上記のように、オブジェクト・プール部３３１として、複数の音声再生オブジェクトを予め生成しておき、各音声再生オブジェクトを破棄せずに使い回す手法が考えられる。この手法によれば、再生要求が発行されるごとに音声再生オブジェクトの生成が行われなくとも音声データが再生されることとなるので、ＣＰＵ３１負荷が軽減される。従って、当該手法によれば、基本的にはＣＰＵ３１の処理効率を向上させることができる。
【００５７】
また、音声データを再生する場合、最後に当該音声データを再生した音声再生オブジェクト（つまり、第１条件を満たす音声再生オブジェクト）を用いれば、当該音声再生オブジェクトに係る計算機資源を再利用しつつ当該音声データを再生することができる。具体的には、メモリ領域（オブジェクト・プール部３３１内において音声再生オブジェクトごとに確保されたメモリ領域）に格納された当該音声データを用いて再生することができるので、当該音声データを当該音声再生オブジェクトのメモリ領域に読み込む必要が無くなり、ＣＰＵ３１の処理負荷が軽減される。また、メモリ領域に格納されたデバイス関連の各種ハンドルがクローズされずに有効な状態で存在している場合、デバイスドライバの初期化処理及び設定処理が省略されることとなるので、各種デバイスへ音声データを送信する処理を効率化することができる。また、メモリ領域に格納されたバッファ関連の各種データ（音声再生バッファのポインタ等）を用いて再生することができるので、バッファの初期化処理が効率化される。また、近年のＣＰＵのように、ＣＰＵ３１が、二次キャッシュ、三次キャッシュと呼ばれる、頻繁にアクセスされる主記憶上のデータをＣＰＵ３１の内部の高速なメモリ領域にキャッシュする機能を有している場合には、直近にアクセスされたバッファを有する音声再生オブジェクトを優先的に使用することにより、このキャッシュを有効活用することができるという効果も奏する。
【００５８】
しかしながら、近代的な基盤ソフトウェアには、計算機資源の寿命管理を自動的に行う機構が組み込まれており、この寿命管理により、使用頻度の低い音声再生オブジェクトの内部的な計算機資源が解放されることがある。例えば、メモリ領域を自動的に解放する機能、いわゆるガベージコレクション（Ｇａｒｂａｇｅ  Ｃｏｌｌｅｃｔｉｏｎ）（以下、ＧＣという）は、弱参照されるバッファやそれに紐づく計算機資源を自動的に解放する場合がある。この場合には、上記のような計算機資源の再利用を行うことができず、音声データの再度の読み込みと、デバイスドライバ等の再度の初期化処理が必要となるので、処理効率を向上させることができない。
【００５９】
これに対し、本実施形態では、上記の通り、第１条件を満たす音声再生オブジェクトがあるならば、第１条件と、１０個の音声再生オブジェクトＳＯ１、ＳＯ２、…、ＳＯ１０のなかで最後に特定の音声データを再生したという第２条件の両方を満たす音声再生オブジェクトを選択する。つまり、「最後に再生した音声データが特定の音声データと同じである」という条件（第１条件）だけでなく、「１０個の音声再生オブジェクトＳＯ１、ＳＯ２、…、ＳＯ１０のなかで最後に特定の音声データを再生した」という条件（第２条件）を満たす音声再生オブジェクトを選択するので、第１条件を満たす音声再生オブジェクトのなかで、音声データを再生してから現在までの間の時間が最も短い音声再生オブジェクトを選択する。このような音声再生オブジェクトを選択するので、基盤ソフトウェアが有する計算機資源の寿命管理により、内部の計算機資源が破棄されていない可能性が高くなり、上記のような計算機資源の再利用を行うことができる可能性が高くなる。また、ＣＰＵ３１が、上記で述べたキャッシュ機能（頻繁にアクセスされる主記憶上のデータをＣＰＵ３１の内部の高速なメモリ領域にキャッシュする機能）を有している場合には、直近にアクセスされたバッファを有する音声再生オブジェクトを優先的に使用することにより、このキャッシュを有効活用することができるという効果も奏する。従って、本実施形態によれば、音声再生の処理効率を向上させることができる。また、特定の音声データのみが再生され、同時発音数が低い状態が継続した場合には、それらの音声データに紐づかない音声再生オブジェクトが、未使用のままに置かれるため、優先的に基盤ソフトウェアの寿命管理の対象となるので、計算機資源を有効に活用することができるようになる。
【００６０】
（ステップＳ３）
オブジェクト選択部３１６ｂは、ステップＳ１において第１条件を満たす音声再生オブジェクトがないと判定した場合には、再生履歴情報ＨＩに基づいて、１０個の音声再生オブジェクトＳＯ１、ＳＯ２、…、ＳＯ１０に、いずれの音声データも再生していない音声再生オブジェクトがあるか否かを判定する。
【００６１】
（ステップＳ４）
オブジェクト選択部３１６ｂは、ステップＳ３において、いずれの音声データも再生していない音声再生オブジェクトがあると判定した場合には、その音声再生オブジェクト（いずれの音声データも再生していない音声再生オブジェクト）を選択する。例えば、図５の例においては、いずれの音声データも再生していない音声再生オブジェクトとして音声再生オブジェクトＳＯ４があるで、音声再生オブジェクトＳＯ４を選択する。第１条件を満たす音声再生オブジェクトが１つもない場合は、いずれかの音声データを再生している音声再生オブジェクトを用いると、当該音声再生オブジェクトの音声データを更新することとなる。これに対し、本実施形態では、上記の通り、オブジェクト選択部３１６ｂが、いずれの音声データも再生していない音声再生オブジェクトがあると判定した場合には、その音声再生オブジェクトを選択し、当該音声再生オブジェクトに新たな音声データを記憶させることとなるので、再利用可能な音声データ及び音声再生オブジェクトを増やすことができ、より処理効率を向上させることができる。
【００６２】
なお、いずれの音声データも再生していない音声再生オブジェクトが複数ある場合には、それらのうちの任意のものを選択すればよい。
【００６３】
（ステップＳ５）
オブジェクト選択部３１６ｂは、ステップＳ３において、いずれの音声データも再生していない音声再生オブジェクトがないと判定した場合には、１０個の音声再生オブジェクトＳＯ１、ＳＯ２、…、ＳＯ１０のなかから、最も古くに音声データを再生した音声再生オブジェクトを選択する。図７は、図５と同様に再生履歴記憶部３１７が記憶する情報の一例を示す表であり、図５の表に音声再生オブジェクトＳＯ４による再生履歴（同表の下から２行目）が追加されたものである。例えば、図７の例においては、いずれの音声データも再生していない音声再生オブジェクトがないので、最も古くに音声データを再生した音声再生オブジェクトである音声再生オブジェクトＳＯ１０を選択する。本実施形態では、上記の通り、オブジェクト選択部３１６ｂが、いずれの音声データも再生していない音声再生オブジェクトがないと判定した場合には、１０個の音声再生オブジェクトＳＯ１、ＳＯ２、…、ＳＯ１０のなかから、最も古くに音声データを再生した音声再生オブジェクトを選択する。最も古くに音声データを再生した音声再生オブジェクトは、すなわち、当該ゲームシーンにおいて再生頻度が低い音声を再生したオブジェクトであり、したがって、再度同一の音声を再生する可能性は低いと判断できる。本実施形態によれば、このような音声再生オブジェクトを選択することにより、他の、再生頻度が高い音声を再生している音声再生オブジェクトが、可能な限り同一の音声データを再生するようにしながら、再生頻度が低い音声データを再生した音声再生オブジェクトに、他の音声データを割り当てることが可能になり、より処理効率を向上させることができる。
【００６４】
なお、上記のステップＳ５で最も古くに音声データを再生した音声再生オブジェクトを選択する態様に換えて、任意の音声再生オブジェクトを選択する態様としてもよい（図８のステップＳ５ａ）。
【００６５】
なお、プレイヤ端末３の上記機能的構成の一部又は全部が、プレイヤ端末３以外の装置によって実現されてもよいし、コンピュータネットワーク上において実現されてもよい。例えば、プレイヤ端末３の上記機能的構成の一部又は全部が、情報処理サーバ１によって実現されてもよい。
【００６６】
また、オブジェクト生成部３１６ａが生成する音声再生オブジェクトの個数は、基盤ソフトウェアが同時に再生可能な音声の個数に設定されてもよい。このように設定すれば、基盤ソフトウェアの再生可能な再生数を最大限利用することが可能となる。
【００６７】
以上、具体例を参照しつつ本実施形態について説明した。しかし、本発明はこれらの具体例に限定されるものではない。これら具体例に、当業者が適宜設計変更を加えたものも、本発明の特徴を備えている限り、本発明の範囲に包含される。前述した各具体例が備える各要素およびその配置、条件、形状などは、例示したものに限定されるわけではなく適宜変更することができる。前述した各具体例が備える各要素は、技術的な矛盾が生じない限り、適宜組み合わせを変えることができる。
【符号の説明】
【００６８】
１：情報処理サーバ
３：プレイヤ端末
３１６ａ：オブジェクト生成部
３１６ｂ：オブジェクト選択部
３１６ｃ：音声再生部
３１７：再生履歴記憶部
３３１：オブジェクト・プール部
Ｎ：ネットワーク
【図１】
2020052696.tif 000003
【図２】
2020052696.tif 000004
【図３】
2020052696.tif 000005
【図４】
2020052696.tif 000006
【図５】
2020052696.tif 000007
【図６】
2020052696.tif 000008
【図７】
2020052696.tif 000009
【図８】
2020052696.tif 000010