(57)【要約】      （修正有）【課題】ストリームデータをダウンロードし再生する際に、データ再生不可期間が発生しても、その後の再生に不自然さを感じさせないプログラム、情報記憶媒体及びデータ再生システムを提供すること。【解決手段】ストリームデータを記憶手段に順次読込み記憶する読込み処理を行うストリームデータ読込み部１４２と、読込み記憶したストリームデータを再生処理するストリームデータ再生部１４４と、ストリームデータの読込み中断イベントの発生及び終了を判定するイベント判定部１４８と、読込み中断イベントが終了した場合に、ストリームデータを記憶手段に読込み記憶するのに必要な読込み準備時間と、発生した読込み中断イベントの発生タイミング及び終了タイミングの少なくとも一方とに基づきストリームデータの再生開始位置を決定するストリームデータ再生開始位置決定部１５０と、してコンピュータを機能させる。【選択図】図１
2007166157.tif 000002
【特許請求の範囲】
【請求項１】
記憶媒体から提供されるストリームデータを読込みながら再生するデータ再生装置としてコンピュータを機能させるためのプログラムであって、
前記ストリームデータを記憶手段に順次読込み記憶する読込み処理を行うストリームデータ読込み部と、
前記読込み記憶したストリームデータを再生処理するストリームデータ再生部と、
前記ストリームデータの読込み中断イベントの発生及び終了を判定するイベント判定部と、
前記読込み中断イベントが終了した場合に、前記ストリームデータを記憶手段に読込み記憶するのに必要な読込み準備時間と、前記読込み中断イベントの発生タイミング及び終了タイミングの少なくとも一方と、に基づき前記ストリームデータの再生開始位置を決定するストリームデータ再生開始位置決定部と、
してコンピュータを機能させ、
前記ストリームデータ読込み部は、
前記読込み中断イベントが終了した場合には、決定された前記再生開始位置からストリームデータを記憶手段に読込み記憶する読込み処理を行い、
前記ストリームデータ再生部は、
前記読込み中断イベントが終了した場合には、前記準備時間が経過した後に前記読込み記憶したストリームデータの再生を前記再生開始位置から開始することを特徴とするプログラム。
【請求項２】
画像を生成する画像生成処理を行う画像演算生成部と、
記憶媒体から、前記画像に関連付けたストリームデータを記憶手段に読込みながら、生成画像に関連付けて読出し再生するストリームデータ読込み再生部と、
前記画像生成処理又は画像生成処理に関連する処理時における前記ストリームデータの読込み中断イベントの発生及び終了を判定するイベント判定部と、
してコンピュータを機能させるためのプログラムであって、
前記ストリームデータ読込み再生部は、
前記ストリームデータを記憶手段に順次読込み記憶する読込み処理を行うストリームデータ読込み部と、
前記読込み記憶したストリームデータを再生処理するストリームデータ再生部と、
前記読込み中断イベントが終了した場合に、前記ストリームデータを記憶手段に読込み記憶するのに必要な読込み準備時間と、前記読込み中断イベントの発生タイミング及び終了タイミングの少なくとも一方と、に基づき前記ストリームデータの再生開始位置を決定するストリームデータ再生開始位置決定部と、
を含み、
前記ストリームデータ読込み部は、
前記読込み中断イベントが終了した場合には、決定された前記再生開始位置からストリームデータを記憶手段に読込み記憶する読込み処理を行い、
前記ストリームデータ再生部は、
前記読込み中断イベントが終了した場合には、前記準備時間が経過した後に前記読込み記憶したストリームデータの再生を前記再生開始位置から開始することを特徴とするプログラム。
【請求項３】
請求項２において、
前記画像演算生成部は、
ゲーム用のオブジェクト空間を所与の視点から見た画像を生成するためのゲーム演算を行う手段と、
前記ゲーム演算結果に基づきゲーム画像を生成する画像生成手段と、
を含み、
前記ゲーム演算を行う手段は、
所与のゲームイベント発生時に、記憶媒体からオブジェクト空間生成用のオブジェクトデータを読出しオブジェクトデータ記憶部に読込み記憶するオブジェクトデータ読込み処理を行い、当該オブジェクトデータを用いてオブジェクト空間を生成し、
前記イベント判定部は、
前記ストリームデータの読込み処理が前記オブジェクトデータ読込み処理の妨げとなる場合には、前記中断イベントを発生し前記オブジェクトデータ読込み処理を優先して実行させ、前記ストリームデータの読込み処理が前記オブジェクトデータ読込み処理の妨げとならなくなった場合に、前記中断イベントを終了させる判定処理を行うことを特徴とするプログラム。
【請求項４】
請求項１〜３のいずれかにおいて、
前記ストリームデータは音ストリームデータであることを特徴とするプログラム。
【請求項５】
請求項２、３のいずれかにおいて、
前記プログラムは、所与のゲーム処理を実行するとともに該ゲーム中に記憶媒体から音ストリームデータを読込みながら再生するためのゲームプログラムであって、
前記画像演算生成部は、
前記読込み中断イベントが発生した後、前記ストリームデータを前記再生開始位置から再生する再生処理が開始されるまでの期間に関連付けて、所与の演出用のゲーム画像を生成表示する処理を行うことを特徴とするプログラム。
【請求項６】
請求項２、３のいずれかにおいて、
前記ストリームデータはムービーテクスチャ用のストリームデータであることを特徴とするプログラム。
【請求項７】
請求項１〜６のいずれかにおいて、
前記読込み中断イベントが発生した後、前記読込み中断イベントが終了した場合に、前記読込み中断イベント発生から終了までの読込み不可時間を求める手段としてコンピュータを更に機能させ、
前記ストリームデータ再生開始位置決定部は、
前記読込み中断イベントが発生した場合に前記ストリームデータを記憶手段に読込み記憶するのに必要な読込み準備時間と、前記読込み不可時間とに基づき前記ストリームデータの再生開始位置を決定することを特徴とするプログラム。
【請求項８】
請求項１〜６のいずれかにおいて、
前記ストリームデータの読出し開始からの実経過時間を計測するとともに、前記読込み中断イベントの終了タイミングを計測する時間測定部としてコンピュータを更に機能させ、
前記ストリームデータ再生開始位置決定部は、
前記読込み中断イベントが終了した場合に前記ストリームデータを記憶手段に読込み記憶するのに必要な読込み準備時間と、前記読込み中断イベントの終了タイミングと、に基づき前記ストリームデータの再生開始位置を決定することを特徴とするプログラム。
【請求項９】
請求項１〜８のいずれかにおいて、
前記記憶手段は、
ストリームデータを順次記憶するための複数のバッファを含み、
前記ストリームデータ読込み部は、
前記ストリームデータ再生部が前記いずれかのバッファから前記読出し処理をしている間に、他のバッファに対し前記読込み処理を行うことを特徴とするプログラム。
【請求項１０】
請求項１〜９のいずれかにおいて、
前記ストリームデータ再生部は、
前記前記読込み中断イベントが発生した場合に、既に読込み済みのストリームデータをフェードアウトさせて再生することを特徴とするプログラム。
【請求項１１】
請求項１〜１０のいずれかにおいて、
前記ストリームデータ再生部は、
前記読込み中断イベントが終了し、前記準備時間が経過した後に、前記読込み済みのストリームデータを前記再生開始位置からフェードインさせて再生開始することを特徴とするプログラム。
【請求項１２】
記憶媒体からストリームデータを読込みながら再生するためのプログラムであって、
前記ストリームデータの読込み不可状態が発生し該読込み不可状態が終了した場合に、該読込み不可状態が終了してから該ストリームデータの予測読込み時間が経過した後からの予測ストリームデータを読込むストリームデータ読込み部と、
前記読込み不可状態が終了してから前記予測読込み時間が経過した場合に、前記読込んだ予測ストリームデータの再生を開始するストリームデータ再生部としてコンピュータを機能させることを特徴とするプログラム。
【請求項１３】
請求項１〜１２のいずれかのプログラムを記憶したことを特徴とするコンピュータ読み取り可能な情報記憶媒体。
【請求項１４】
記憶媒体から提供されるストリームデータを読込みながら再生するデータ再生システムであって、
前記ストリームデータを記憶手段に順次読込み記憶する読込み処理を行うストリームデータ読込み部と、
前記読込み記憶したストリームデータを再生処理するストリームデータ再生部と、
前記ストリームデータの読込み中断イベントの発生及び終了を判定するイベント判定部と、
前記読込み中断イベントが終了した場合に、前記ストリームデータを記憶手段に読込み記憶するのに必要な読込み準備時間と、前記読込み中断イベントの発生タイミング及び終了タイミングの少なくとも一方と、に基づき前記ストリームデータの再生開始位置を決定するストリームデータ再生開始位置決定部と、
を含み、
前記ストリームデータ読込み部は、
前記読込み中断イベントが終了した場合には、決定された前記再生開始位置からストリームデータを記憶手段に読込み記憶する読込み処理を行い、
前記ストリームデータ再生部は、
前記読込み中断イベントが終了した場合には、前記準備時間が経過した後に前記読込み記憶したストリームデータの再生を前記再生開始位置から開始することを特徴とするデータ再生システム。
【請求項１５】
画像を生成する画像生成処理を行う画像演算生成部と、
記憶媒体から、前記画像に関連付けたストリームデータを記憶手段に読込みながら、生成画像に関連付けて読出し再生するストリームデータ読込み再生部と、
前記画像生成処理又は画像生成処理に関連する処理時における前記ストリームデータの読込み中断イベントの発生及び終了を判定するイベント判定部と、
を含み、
前記ストリームデータ読込み再生部は、
前記ストリームデータを記憶手段に順次読込み記憶する読込み処理を行うストリームデータ読込み部と、
前記読込み記憶したストリームデータを再生処理するストリームデータ再生部と、
前記読込み中断イベントが終了した場合に、前記ストリームデータを記憶手段に読込み記憶するのに必要な読込み準備時間と、前記読込み中断イベントの発生タイミング及び終了タイミングの少なくとも一方と、に基づき前記ストリームデータの再生開始位置を決定するストリームデータ再生開始位置決定部と、
を含み、
前記ストリームデータ読込み部は、
前記読込み中断イベントが終了した場合には、決定された前記再生開始位置からストリームデータを記憶手段に読込み記憶する読込み処理を行い、
前記ストリームデータ再生部は、
前記読込み中断イベントが終了した場合には、前記準備時間が経過した後に前記読込み記憶したストリームデータの再生を前記再生開始位置から開始することを特徴とするデータ再生システム。
【請求項１６】
請求項１５において、
前記画像演算生成部は、
ゲーム用のオブジェクト空間を所与の視点から見た画像を生成するためのゲーム演算を行う手段と、
前記ゲーム演算結果に基づきゲーム画像を生成する画像生成手段と、
を含み、
前記ゲーム演算を行う手段は、
所与のゲームイベント発生時に、記憶媒体からオブジェクト空間生成用のオブジェクトデータを読出しオブジェクトデータ記憶部に読込み記憶するオブジェクトデータ読込み処理を行い、当該オブジェクトデータを用いてオブジェクト空間を生成し、
前記イベント判定部は、
前記ストリームデータの読込み処理が前記オブジェクトデータ読込み処理の妨げとなる場合には、前記中断イベントを発生し前記オブジェクトデータ読込み処理を優先して実行させ、前記ストリームデータの読込み処理が前記オブジェクトデータ読込み処理の妨げとならなくなった場合に、前記中断イベントを終了させる判定処理を行うことを特徴とするデータ再生システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストリームデータを読込みながら再生するプログラム、情報記憶媒体、及びデータ再生システムに関する。
【背景技術】
【０００２】
従来より、時間的連続性を有する音データや画像データを、システム内の記憶媒体やネットワーク内の記憶媒体からダウンロードして再生する手法として、ストリーム再生が知られている。このストリーム再生によれば、再生する音データや画像データの全てをダウンロードしてから再生するのではなく、データをダウンロードしながら再生することができる。
【０００３】
しかし、かかるストリーム再生では、ダウンロードするデータを一時保存するバッファ容量を十分大きく確保できない場合、システム内での他の処理状況や、ネットワーク内での通信状況により、記憶媒体からのダウンロードが中断するとデータ再生が不可能な期間が発生してしまう。
【０００４】
この場合、従来のデータ再生システムでは、再生不可期間終了後、データ再生を最初から再開する、或いは中断した位置からデータ再生を再開していた。このようなデータ再生処理を行う技術としては、例えば特開平９−２８９６３３号公報に開示される従来技術がある。
【０００５】
しかしながら、従来のデータ再生システムでは、データを漏れなく再生することができるが、実時間の経過とデータ再生にずれが生じてしまい、再生される画像、音が不自然になってしまうという問題があった。
【特許文献１】特開平９−２８９６３３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、ストリームデータをダウンロードし再生する際に、データ再生不可期間が発生しても、その後の再生に不自然さを感じさせないプログラム、情報記憶媒体及びデータ再生システムを提供することにある。
【課題を解決するための手段】
【０００７】
（１）本発明は、記憶媒体から提供されるストリームデータを読込みながら再生するデータ再生装置としてコンピュータを機能させるためのプログラムであって、
前記ストリームデータを記憶手段に順次読込み記憶する読込み処理を行うストリームデータ読込み部と、
前記読込み記憶したストリームデータを再生処理するストリームデータ再生部と、
前記ストリームデータの読込み中断イベントの発生及び終了を判定するイベント判定部と、
前記読込み中断イベントが終了した場合に、前記ストリームデータを記憶手段に読込み記憶するのに必要な読込み準備時間と、前記読込み中断イベントの発生タイミング及び終了タイミングの少なくとも一方と、に基づき前記ストリームデータの再生開始位置を決定するストリームデータ再生開始位置決定部と、
してコンピュータを機能させ、
前記ストリームデータ読込み部は、
前記読込み中断イベントが終了した場合には、決定された前記再生開始位置からストリームデータを記憶手段に読込み記憶する読込み処理を行い、
前記ストリームデータ再生部は、
前記読込み中断イベントが終了した場合には、前記準備時間が経過した後に前記読込み記憶したストリームデータの再生を前記再生開始位置から開始することを特徴とする。
【０００８】
本発明は、データ再生システムに関係する。また本発明は、上記各部としてコンピュータを機能させるプログラムに関係する。また本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶（記録）した情報記憶媒体に関係する。
【０００９】
本発明によれば、提供されるストリームデータは、記憶手段に順次読込み記憶（すなわちダウンロード）される。そして、読込み記憶されたストリームデータは、ストリームデータ再生部により順次再生される。
【００１０】
このとき、ストリームデータの読込みを妨げる何らかの事情が発生すると、イベント判定部はこれを中断イベントの発生として判定する。
【００１１】
このような中断イベントの発生期間中は、ストリームデータの読込みができない読込み不可状態となる。
【００１２】
本発明は、このような読込み中断イベントが発生した場合には、ストリームデータ再生開始位置決定部が、中断イベント終了後におけるストリームデータの再生開始位置を決定する処理を行う。
【００１３】
この再生開始位置は、具体的には、ストリームデータを記憶手段に読込み記憶するのに必要な読込み準備時間と、前記発生した読込み中断イベントの発生タイミング及び終了タイミングの少なくとも一方とに基づき決定される。
【００１４】
そして、ストリームデータ読込み部は、前記読込み中断イベントが終了すると、決定された前記再生開始位置からストリームデータを記憶手段に読込み記憶する読込み処理を行う。
【００１５】
そして、ストリームデータ再生部は、前記読込み中断イベントが終了し前記準備期間が経過した後、前記読込み記憶したストリームデータを前記再生開始位置から再生する再生処理を開始する。
【００１６】
以上の構成とすることにより、ストリームデータの読込み再生中に読込み不可状態が発生し、ストリームデータの再生が一時的に中断しても、中断中の実時間の経過に合わせてストリームデータの再生を行うことができる。
【００１７】
これにより、ストリームデータの再生が一時的に中断しても、その後のストリームデータ再生の時間的連続性を擬似的に保ち、再生中断による不自然さを軽減することができる。例えば、ストリームデータが音データである場合では、音データの再生が中断されたのではなく、再生は継続しつつも一時的に消音したかのように聞かせることができる。
【００１８】
ここにおいて、前記読込み準備時間、すなわちストリームデータを記憶手段に読込み記憶するのに必要な読込み準備期間は、予め通常の読込みに必要な準備期間より若干長めに設定しておくことが好ましい。
【００１９】
また、本発明は、記憶媒体に記憶されたストリームデータを再生する場合にも適用することができ、またネットワークを介して、例えばサーバなどの記憶媒体を介して提供されるストリームデータを再生する場合にも適用することができる。
【００２０】
（２）また本発明に係るデータ再生システム、プログラム及び情報記憶媒体では、
画像を生成する画像生成処理を行う画像演算生成部と、
記憶媒体から、前記画像に関連付けたストリームデータを記憶手段に読込みながら、生成画像に関連付けて読出し再生するストリームデータ読込み再生部と、
前記画像生成処理又は画像生成処理に関連する処理時における前記ストリームデータの読込み中断イベントの発生及び終了を判定するイベント判定部と、
してコンピュータを機能させるためのプログラムであって、
前記ストリームデータ読込み再生部は、
前記ストリームデータを記憶手段に順次読込み記憶する読込み処理を行うストリームデータ読込み部と、
前記読込み記憶したストリームデータを再生処理するストリームデータ再生部と、
前記読込み中断イベントが終了した場合に、前記ストリームデータを記憶手段に読込み記憶するのに必要な読込み準備時間と、前記発生した読込み中断イベントの発生タイミング及び終了タイミングの少なくとも一方と、に基づき前記ストリームデータの再生開始位置を決定するストリームデータ再生開始位置決定部と、
を含み、
前記ストリームデータ読込み部は、
前記読込み中断イベントが終了した場合には、決定された前記再生開始位置からストリームデータを記憶手段に読込み記憶する読込み処理を行い、
前記ストリームデータ再生部は、
前記読込み中断イベントが終了した場合には、前記準備時間が経過した後に前記読込み記憶したストリームデータの再生を前記再生開始位置から開始することを特徴とする。
【００２１】
本発明によっても、前記（１）で説明した発明と同様な作用効果に加え、以下の作用効果を奏することができる。
【００２２】
本発明によれば、画像の生成と、その生成される画像に関連付けて用意されたストリームデータの再生とを関連付けて良好に行うことができ、特にストリームデータの再生が一時的に中断した場合であっても、画像の生成に合わせて、ストリームデータの再生を自然に行うことができる。
【００２３】
このような画像に関連付けて用意されたストリームデータとしては、例えば音ストリームデータや、ムービー画像ストリームデータなどがある。
【００２４】
（３）また本発明に係るデータ再生システム、プログラム及び情報記憶媒体では、
前記画像演算生成部は、
ゲーム用のオブジェクト空間を所与の視点から見た画像を生成するためのゲーム演算を行う手段と、
前記ゲーム演算結果に基づきゲーム画像を生成する画像生成手段と、
を含み、
前記ゲーム演算を行う手段は、
所与のゲームイベント発生時に、記憶媒体からオブジェクト空間生成用のオブジェクトデータを読出しオブジェクトデータ記憶部に読込み記憶するオブジェクトデータ読込み処理を行い、当該オブジェクトデータを用いてオブジェクト空間を生成し、
前記イベント判定部は、
前記ストリームデータの読込み処理が前記オブジェクトデータ読込み処理の妨げとなる場合には、前記中断イベントを発生し前記オブジェクトデータ読込み処理を優先して実行させ、前記ストリームデータの読込み処理が前記オブジェクトデータ読込み処理の妨げとならなくなった場合に、前記中断イベントを終了させる判定処理を行うようにしてもよい。
【００２５】
ゲーム画像を生成する画像生成処理と、前記ゲーム画像に関連付けて用意されたストリームデータの読込みと再生とを行う場合に、例えばＣＰＵなどの演算処理部の負荷が大きくなり、画像生成処理がスムーズに実行できなくなる場合が発生する。このような場合、ストリームデータの読込み、再生処理に優先して、画像データの生成処理が実行されるようにプログラムが組まれていることがある。
【００２６】
本発明によれば、このような場合の特徴的なケースである、オブジェクトデータ読込み処理時に、ストリームデータの読込み処理がオブジェクトデータの読込み処理の妨げとなるか否かを判断し、妨げとなると判断された場合には中断イベントが発生し、オブジェクトデータの読込み処理を優先して実行させ、妨げとならなくなったと判断された場合に、前記中断イベントを終了させるという処理を行う。
【００２７】
例えば、ゲーム画像の場面が変わり、オブジェクトデータ読込み処理の負荷が大きくなるような場合や、ゲーム画面のステージが切り替わり、オブジェクトデータ読込み処理の負荷が大きくなるような場合に、前記中断イベントを発生し、ストリームデータを読込み処理とを一時的に中断する。
【００２８】
そして、オブジェクトデータの読込み処理の負荷が小さくなり、前記中断イベントが終了すると、生成される画像に関連付けて、ストリームデータの再生をその時間的連続性が擬似的に保たれるように行い、その後のストリームデータの再生を自然に行うことができる。
【００２９】
特に、本発明によれば、画像の変化に同期させて音ストリームデータを再生させる場合に音ストリームデータの再生が中断しても、中断後に画像の変化との同期に影響を与えずに音ストリームデータの再生を行うことができる。
【００３０】
例えば、画像データを一時的に保存するバッファは十分に確保できるが音ストリームデータ用のバッファを十分に確保できない場合や、画像は画像演算生成部により生成される画像であるから中断することはないが音ストリームデータの再生は中断することがあるような場合でも、中断後に画像の変化との同期に影響を与えずに音ストリームデータの再生を行うことができる。
【００３１】
（４）また本発明に係るデータ再生システム、プログラム及び情報記憶媒体では、
前記ストリームデータは音ストリームデータとしてもよい。
【００３２】
（５）また本発明に係るデータ再生システム、プログラム及び情報記憶媒体では、
前記プログラムは、所与のゲーム処理を実行するとともに該ゲーム中に記憶媒体から音ストリームデータを読込みながら再生するためのゲームプログラムであって、
前記画像演算生成部は、
前記読込み中断イベントが発生した後、前記ストリームデータを前記再生開始位置から再生する再生処理が開始されるまでの期間に関連付けて、所与の演出用のゲーム画像を生成表示する処理を行うようにしてもよい。
【００３３】
本発明によれば、音ストリームデータの再生中断期間に合わせて所定のゲーム画像を表示させることにより、音ストリームデータの再生中断による不自然さをより軽減することができる。例えば、所定のゲームキャラクタを登場させにより音ストリームデータを一時的に消音させたような演出を行うことができる。
【００３４】
（６）また、本発明に係るデータ再生システム、プログラム及び情報記憶媒体では、
前記ストリームデータはムービーテクスチャ用のストリームデータとしてもよい。
【００３５】
（７）また本発明に係るデータ再生システム、プログラム及び情報記憶媒体では、
前記読込み中断イベントが発生した後、前記読込み中断イベントが終了した場合に、前記読込み中断イベント発生から終了までの読込み不可時間を求める手段としてコンピュータを更に機能させ、
前記ストリームデータ再生開始位置決定部は、
前記読込み中断イベントが発生した場合に前記ストリームデータを記憶手段に読込み記憶するのに必要な読込み準備時間と、前記読込み不可時間とに基づき前記ストリームデータの再生開始位置を決定してもよい。
【００３６】
ここで、「読込み不可時間」は、前記読込み中断イベントの発生から終了までの時間をその都度測定してもよく、また、予め予測される中断イベント発生から終了までの最大時間に基づき、当該最大時間より若干長めの値に固定的に設定してもよい。
【００３７】
（８）また、本発明に係るデータ再生システム、プログラム及び情報記憶媒体では、
前記ストリームデータの読出し開始からの実経過時間を計測するとともに、前記読込み中断イベントの終了タイミングを計測する時間測定部としてコンピュータを更に機能させ、
前記ストリームデータ再生開始位置決定部は、
前記読込み中断イベントが終了した場合に、前記ストリームデータを記憶手段に読込み記憶するのに必要な読込み準備時間と、前記読込み中断イベントの終了タイミングと、に基づき前記ストリームデータの再生開始位置を決定してもよい。
【００３８】
（９）また本発明に係るデータ再生システム、プログラム及び情報記憶媒体では、
前記記憶手段は、
ストリームデータを順次記憶するための複数のバッファを含み、
前記ストリームデータ読込み部は、
前記ストリームデータ再生部が前記いずれかのバッファから前記読出し処理をしている間に、他のバッファに対し前記読込み処理を行うようにしてもよい。
【００３９】
本発明によれば、交互にストリームデータの記憶、読出しを行うことにより、それぞれのバッファ容量が小さくてもストリームデータを連続させて再生させることができる。
【００４０】
（１０）また本発明に係るデータ再生システム、プログラム及び情報記憶媒体では、
前記ストリームデータ再生部は、
前記前記読込み中断イベントが発生した場合に、既に読込み済みのストリームデータをフェードアウトさせて再生するようにしてもよい。
【００４１】
本発明によれば、ストリームデータの再生をフェードアウトさせてから中断させることにより、再生中断による不自然さをより軽減することができる。
【００４２】
（１１）また本発明に係るデータ再生システム、プログラム及び情報記憶媒体では、
前記ストリームデータ再生部は、
前記読込み中断イベントが終了し、前記準備時間が経過した後、前記読込み済みのストリームデータを前記再生開始位置からフェードインさせて再生開始するようにしてもよい。
【００４３】
本発明によれば、ストリームデータの再生をフェードインさせて再生させることにより、再生中断による不自然さをより軽減することができる。
【００４４】
（１２）また本発明に係るデータ再生システム、プログラム及び情報記憶媒体では、
記憶媒体からストリームデータを読込みながら再生するためのプログラムであって、
前記ストリームデータの読込み不可状態が発生し該読込み不可状態が終了した場合に、該読込み不可状態が終了してから該ストリームデータの予測読込み時間が経過した後からの予測ストリームデータを読込むストリームデータ読込み部と、
前記読込み不可状態が終了してから前記予測読込み時間が経過した場合に、前記読込んだ予測ストリームデータの再生を開始するストリームデータ再生部としてコンピュータを機能させることを特徴とする。
【発明を実施するための最良の形態】
【００４５】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【００４６】
１．構成
図１に本実施形態のデータ再生システムを含む画像生成システム（ゲームシステム）の機能ブロック図の例を示す。なお本実施形態の画像生成システムは図１の構成要素（各部）の一部を省略した構成としてもよい。
【００４７】
操作部１６０は、プレーヤが行なった操作をデータとして入力するものであり、例えばプレーヤオブジェクト（プレーヤが操作するプレーヤキャラクタ）の操作データを入力するために用いられ、その機能は、レバー、ボタン、ステアリング、マイク、タッチパネル型ディスプレイ、或いは筺体などにより実現できる。
【００４８】
記憶部１７０は、処理部１００や通信部１９６などのワーク領域となるもので、主記憶部１７１、フレームバッファ１７３、オブジェクトデータ記憶部１７４、テクスチャデータ記憶部１７５、サウンドバッファ１７６（第１及び第２のバッファ１７７ａ、１７７ｂ）として機能し、ＲＡＭ（ＶＲＡＭ）などにより実現できる。
【００４９】
情報記憶媒体１８０（コンピュータにより読み取り可能な媒体）は、プログラムやデータなどを格納するものであり、その機能は、光ディスク（ＣＤ、ＤＶＤ）、光磁気ディスク（ＭＯ）、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ（ＲＯＭ）などにより実現できる。処理部１００は、情報記憶媒体１８０に格納されるプログラム（データ）に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体１８０には、本実施形態の各部としてコンピュータを機能させるためのプログラム（各部の処理をコンピュータに実行させるためのプログラム）が記憶される。
【００５０】
なお、情報記憶媒体１８０に記憶される情報の一部又は全部は、必要に応じて記憶部１７０に転送される。また、情報記憶媒体１８０に記憶される情報は、本発明の処理を行うためのプログラムコード、画像データ、音データ、オブジェクトデータ、テクスチャデータ、テーブルデータ、リストデータ、本発明の処理を指示するための情報、その指示に従って処理を行う情報の少なくとも一つを含む。特に、本実施の形態では、前記音データとして、画像に関連付けてＢＧＭを生成出力するための音ストリームデータを含む。
【００５１】
表示部１９０は、本実施形態により生成された画像を出力するものであり、その機能は、ＣＲＴ、ＬＣＤ、タッチパネル型ディスプレイ、或いはＨＭＤ（ヘッドマウントディスプレイ）などにより実現できる。
【００５２】
音出力部１９２は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
【００５３】
携帯型情報記憶装置１９４は、プレーヤの個人データやゲームのセーブデータなどが記憶されるものであり、この携帯型情報記憶装置１９４としては、メモリカードや携帯型ゲーム装置などがある。
【００５４】
通信部１９６は外部（例えばホスト装置や他の画像生成システム）との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ＡＳＩＣなどのハードウェアや、プログラムなどにより実現できる。
【００５５】
なお本実施形態の各部としてコンピュータを機能させるためのプログラム（データ）は、ホスト装置（サーバー）が有する情報記憶媒体からネットワーク及び通信部１９６を介して情報記憶媒体１８０（あるいは記憶部１７０）に配信してもよい。このようなホスト装置（サーバー）の情報記憶媒体の使用も本発明の範囲内に含めることができる。
【００５６】
処理部１００（プロセッサ）は、操作部１６０からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの処理を行う。
【００５７】
ここでゲーム処理としては、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、キャラクタやマップなどのオブジェクトを配置する処理、オブジェクトを表示する処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などがある。
【００５８】
この処理部１００は、記憶部１７０内の主記憶部１７１をワーク領域として各種処理を行う。
【００５９】
処理部１００の機能は各種プロセッサ（ＣＰＵ、ＤＳＰ等）、ＡＳＩＣ（ゲートアレイ等）などのハードウェアや、プログラムにより実現できる。
【００６０】
処理部１００は、ゲーム演算部１１０（オブジェクト空間設定部１１１、仮想カメラ制御部１１３）、画像生成部１２０、音生成部１３０を含む。ここで、ゲーム演算部１１０、画像生成部１２０は、画像演算生成部として機能する。
【００６１】
そして、処理部１００は、ゲームの進行に伴い、必要とするオブジェクトデータ、テクスチャデータ、音データを情報記憶媒体１８０から読出し、オブジェクトデータ記憶部１７４、テクスチャデータ記憶部１７５、サウンドバッファ１７６に転送書込みする（ダウンロードする）読込み処理を行う。すなわち、処理部１００は、オブジェクトデータ読込み部、テクスチャデータ読込み部として機能するとともに、後述するストリームデータ処理部１４０としても機能する。
【００６２】
オブジェクト空間設定部１１１は、キャラクタ、建物、球場、車、樹木、柱、壁、マップ（地形）などの表示物を表す各種オブジェクト（ポリゴン、自由曲面又はサブディビジョンサーフェイスなどのプリミティブ面で構成されるオブジェクト）のオブジェクトデータをオブジェクトデータ記憶部１７４から読出し、各種オブジェクトをオブジェクト空間に配置設定する処理を行う。即ちワールド座標系でのオブジェクトの位置や回転角度（向き、方向と同義）を決定し、その位置（Ｘ、Ｙ、Ｚ）にその回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）でオブジェクトを配置する。
【００６３】
さらにオブジェクト空間設定部１１１は、オブジェクト（キャラクタ、車、又は飛行機等）の移動・動作演算（移動・動作シミュレーション）を行う。即ち操作部１６０によりプレーヤが入力した操作データや、プログラム（移動・動作アルゴリズム）や、各種データ（モーションデータ）などに基づいて、モデルオブジェクトをオブジェクト空間内で移動させたり、オブジェクトを動作（モーション、アニメーション）させる処理を行う。具体的には、オブジェクトの移動情報（位置、回転角度、速度、或いは加速度）や動作情報（パーツオブジェクトの位置、或いは回転角度）を、１フレーム（１／６０秒）毎に順次求めるシミュレーション処理を行う。なおフレームは、オブジェクトの移動・動作処理（シミュレーション処理）や画像生成処理を行う時間の単位である。
【００６４】
仮想カメラ制御部１１３は、オブジェクト空間内の所与（任意）の視点から見える画像を生成するための仮想カメラ（視点）の制御処理を行う。具体的には、仮想カメラの位置（Ｘ、Ｙ、Ｚ）又は回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）を制御する処理（視点位置や視線方向を制御する処理）を行う。
【００６５】
例えば仮想カメラによりオブジェクト（例えばキャラクタ、ボール、車）を後方から撮影する場合には、オブジェクトの位置又は回転の変化に仮想カメラが追従するように、仮想カメラの位置又は回転角度（仮想カメラの向き）を制御する。
【００６６】
画像生成部１２０は、処理部１００で行われる種々の処理（ゲーム処理）の結果に基づいて描画処理を行い、これにより画像を生成し、例えばオブジェクト空間内において所与の視点（仮想カメラ）から見える画像を生成し、表示部１９０に出力する。
【００６７】
具体的には、処理部１００で行われる演算処理の結果に従って、例えば座標変換、クリッピング処理、透視変換、あるいは光源計算などの種々のジオメトリ処理（３次元演算）やジオメトリ処理後のオブジェクト（モデル）を、フレームバッファ１７３に描画するための描画処理等の各種の画像処理を行い、オブジェクト空間内で仮想カメラ（視点）から見える画像を生成して、表示部１９０に出力する。
【００６８】
音生成部１３０は、処理部１００で行われる種々の処理の結果に基づいて音処理を行い、ＢＧＭ、効果音、又は音声などのゲーム音を生成し、音出力部１９２に出力する。
【００６９】
特に、本実施の形態の音生成部１３０は、情報記憶媒体１８０に記憶された音ストリームデータや、通信部１９６を介して取得されるネットワーク上の記憶媒体に記憶された音ストリームデータを読込みながら（ダウンロードしながら）再生する。
【００７０】
具体的には、記憶部１７０のサウンドバッファ１７６に、第１のバッファ１７７ａと第２のバッファ１７７ｂとを設け、システム内部又はシステム外部の記憶媒体から音ストリームデータを取得して第１のバッファ１７７ａに記憶させ、記憶させた音ストリームデータを第１のバッファ１７７ａから読出して再生している間に、次の音ストリームデータを取得して第２のバッファ１７７ｂに記憶させる。そして、音ストリームデータを記憶させるバッファと音ストリームデータを読出すバッファを交互に切り替え、音ストリームデータを順次記憶させながら途切れなく音ストリームデータを再生する。
【００７１】
上記音ストリームデータの処理を行うために、本実施の形態の音生成部１３０は、ストリームデータ処理部１４０を含む。
【００７２】
そして、このストリームデータ処理部１４０は、ストリームデータ読込み部１４２、ストリームデータ再生部１４４、ストリームデータ再生時間の計測部１４６、イベント判定部１４８、再生開始位置決定部１５０を含む。
【００７３】
ストリームデータ読込み部１４２及びストリームデータ再生部１４４は、ストリームデータ読込み再生部に相当するものである。
【００７４】
前記ストリームデータ読込み部１４２は、処理部１００で演算生成される画像に関連付けて用意された音ストリームデータを、情報記憶媒体１８０またはネットワーク上の記憶媒体から第１のバッファ１７７ａ、第２のバッファ１７７ｂへ順次交互に読込み記憶する読込み処理（ダウンロード処理）を行う。
【００７５】
前記データ再生部１４４は、第１のバッファ１７７ａ、第２のバッファ１７７ｂに記憶されたストリームデータを順次交互に読出して再生する再生処理を行う。
【００７６】
本実施の形態では、第１及び第２のバッファ１７７ａ、１７７ｂのいずれか一方にデータの書込み処理が行われている場合に、そのいずれか他方から既に書込まれた音データを読出して再生するという再生処理を、各バッファ１７７ａ、１７７ｂに対して交互に行い、これにより音ストリームデータをとぎれなく再生する。
【００７７】
前記ストリームデータ再生時間の計測部１４６は、ストリームデータ再生部１４４による音ストリームデータの再生が開始時点から終了時点までの実経過時間を測定する。
【００７８】
イベント判定部１４８は、音ストリームデータの読込み不可状態の発生と、その終了を判定する。具体的には、システム内での他の処理により処理部１００の処理負荷が一定以上となった場合や、取得されるストリームデータのデータ量が一定以下となった場合、さらには入力情報やプログラムに基づき所定のイベントが発生した場合等に、読込み不可状態を意味する読込み中断イベントが発生したと判定する。一方、処理部１００の処理負荷が一定以下となった場合や、取得されるストリームデータのデータ量が一定以上となった場合、所定のイベントが終了した場合等に、読込み不可状態を表す中断イベントが終了したと判定する。
【００７９】
例えば、ゲーム画像の生成時に、情報記憶媒体１８０からオブジェクトデータ記憶部１７４へ新たなオブジェクトデータの転送読込みが必要になることが多い。具体的には、オブジェクト空間内に、異なる多数のオブジェクトを配置する必要が生じた場合や、ゲームステージが切り替わるような場合には、情報記憶媒体１８０から当該必要となるオブジェクトデータを画像生成に先立ってオブジェクトデータ記憶部１７４に転送読込みする処理（ダウンロード）が行われる。この処理は、処理部１００が、オブジェクトデータ読込み部として機能して行われる。
【００８０】
このとき、処理部１００の演算能力に対し、オブジェクトデータの転送読込みの負荷が大きい場合、このオブジェクトデータの転送読込みと同時に情報記憶媒体１８０からサウンドバッファ１７６へのストリームデータの転送書込みを行うと、処理部１００に過剰な演算負荷が加わることになり、画像生成上好ましくない。このため、本実施の形態では、ストリームデータのサウンドバッファ１７６への読込み処理が、オブジェクトデータのオブジェクトデータ記憶部１７４への読込み処理の妨げとなる場合には、前記中断イベントを発生し、オブジェクトデータの読込み処理を優先して実行させ、前記ストリームデータの読込み処理がオブジェクトデータの読込み処理の妨げとならなかった場合に、前記中断イベントを終了させるという判定処理をイベント判定部１４８が行うように構成される。
【００８１】
従って、中断イベントの発生から終了までの間は、音ストリームデータのサウンドバッファ１７６への読込み（ダウンロード）が中断する。
【００８２】
このため、ストリームデータ処理部１４０は、前記中断イベントが終了してから音ストリームデータの再生を開始する場合に、当該音ストリームデータの再生開始位置を決定するための再生開始位置決定部１５０を含む。
【００８３】
この再生開始位置決定部１５０は、前記読込み中断イベントを発生した後、前記読込み中断イベントが終了した場合に、前記音ストリームデータをサウンドバッファ１７６に読込み記憶するのに必要な読込み準備時間と、前記読込み中断イベントの発生タイミング及び終了タイミングの少なくとも一方と、に基づき音ストリームデータの再生開始位置を決定する処理を行う。ここにおいてサウンドバッファ１７６への音ストリームデータの必要な読込み時間とは、第１のバッファ１７７ａまたは第２のバッファ１７７ｂへのデータ読込みに必要とされる時間であり、この読込み時間は、第１バッファ１７７ａまたは第２のバッファ１７７ｂの記憶容量やデータ転送速度から一義的に求められる。従って、この読込み時間Ｙは、予め余裕をもった一定の値として決定しておけばよい。
【００８４】
ここにおいて、前記読込み中断イベントの発生タイミング、終了タイミングは、計測部１４６が計測する音ストリームデータ再生開始時点からの実経過時間により求めることができる。
【００８５】
例えば、ストリームデータ再生時間の計測部１４６は、イベント判定部１４８が中断イベントが発生したと判断し、音ストリームデータの読込み不可状態になったと判定した場合に、不可時間計測部として機能し、読込み不可状態での実経過時間である読込み不可時間を計測する。また、ストリームデータ再生時間の計測部１４６を、ストリームデータの読出し開始からの実経過時間である基準時間を計測する計測部として機能させてもよく、この場合には、イベント判定部１４８が音ストリームデータの読込み不可状態が終了と判定した場合に、読込み不可状態が終了するまでの経過時間を計測する。
【００８６】
そして、ストリームデータ読込み部１４２は、入力情報やプログラムに基づき、情報記憶媒体１８０やネットワーク上の記憶媒体から、所望の音ストリームデータを取得する。
【００８７】
本実施の形態では、所望の音ストリームデータをその先頭位置から取得したり、セクタ単位等で区切られる任意の位置から取得することができる。例えば、該音ストリームデータを再生したときの経過時間に基づいて、或いは、該音ストリームデータのビットレートに応じたデータ量に基づいて、取得すべき音ストリームデータにおける再生開始位置を特定することにより、音ストリームデータの所定の位置から任意の時間経過後からの音ストリームデータを取得することができる。そして、取得した音ストリームデータを、第１のバッファ１７７ａと第２のバッファ１７７ｂのうち読出しが行われていないバッファに順次記憶させる。
【００８８】
すなわち、ストリームデータ読込み部１４２は、前記読込み中断イベントが終了した場合には、決定された前記再生開始位置から音ストリームデータを情報記憶媒体１８０から読み出し第１または第２のバッファ１７７ａ、１７７ｂのいずれか一方に読込み記憶する処理を行う。この読込み記憶処理は、中断イベントの終了から前記読込み準備時間Ｙが経過する前に十分余裕をもって行われるように、前記読込み準時間Ｙが設定される。
【００８９】
そして、ストリームデータ再生部１４４は、サウンドバッファ１７６に読み込まれた再生開始位置からのストリームデータを、中断イベントが終了してから読込み準備時間Ｙが経過した後に開始する。
【００９０】
その後は、前述したように第１のバッファ１７７ａ、第２のバッファ１７７ｂのいずれか一方へのデータの読込みと、いずれか他方からのデータの再生を交互に繰り返して行うという処理が行われる。
【００９１】
なお、本実施の形態では、前記音ストリームデータの読込み中断イベントが発生してから、音ストリームデータの再生が開始するまでの期間内は、オブジェクトデータがオブジェクトデータ記憶部１７４へ転送書込みされる期間中でもあるため、処理部１００による擬似３次元画像の演算処理が一時的に難しくなる。このため、この期間内においては、処理部１００は、演算不可の小さな所与の演出用ゲーム画像を生成し表示するように形成することが好ましい。
【００９２】
さらに、前記ストリームデータ再生部１４４は、前記中断イベントが発生した場合には、すでにサウンドバッファ１７６へ読込み済みの音ストリームデータをフェードアウトさせて再生するように構成することが好ましく、また読込み中断イベントが終了した場合には、前記準備期間が経過した後に行う前記再生処理を、フェードインさせながら行うように構成することが好ましい。このようにすることにより、音ストリームデータから一時的に再生されない場合であっても、プレーヤに違和感なく音ストリームデータの再生中止及び再生開始を行うことができ、特に本実施の形態では、中断イベント終了後の音ストリームデータの再生開始後、音ストリームデータの再生開始位置からの実時間とずれのない位置から開始することができるため、聴覚上自然な音ストリームデータの再開を実現することができる。
【００９３】
なお、本実施形態のゲームシステムは、１人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、このようなシングルプレーヤモードのみならず、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、１つの端末を用いて生成してもよいし、ネットワーク（伝送ライン、通信回線）などで接続された複数の端末（ゲーム機、携帯電話）を用いて生成してもよい。
【００９４】
なお、処理部１００の基本は、その全てをハードウェアにより実現してもよいし、その全てをプログラムにより実現してもよい。あるいは、ハードウェアとプログラムの両方により実現してもよい。
【００９５】
２．本実施形態の手法
２−１．ＢＧＭストリームデータ再生の擬似消音手法
ＢＧＭ再生をいわゆるストリームデータ再生により実現するプログラムにおいて、ＢＧＭストリームデータ読込みが不可になることがある。
【００９６】
その場合、従来では以下の３つの方法をとるのが一般的である。
【００９７】
イ：ストリームが途切れるところでＢＧＭを停止して、改めて曲の頭から再生しなおす。
【００９８】
ロ：ストリームが途切れるところでＢＧＭを停止して、再度その位置から再生を再開する。
【００９９】
ハ：データ転送中もストリームが途切れないだけのデータを予め読み込んでおく。
【０１００】
これに対し、本実施の形態では、ＢＧＭを消音しただけのように錯覚させることで聴覚上不自然さを解消する「ＢＧＭストリームデータ再生の擬似消音手法」を採用する。以下に、その方法を示す。
【０１０１】
（ストリーム再生）
図３に示すように、ＣＤやＤＶＤ、ＵＭＤなどのストレージ装置や、ネットワーク上のサーバなどの記憶媒体１０から音声ストリームデータをサウンドバッファ用のメモリ１７６に転送しながら、例えば図４に示すように、それらの再生を行う方法である。
【０１０２】
なお、図４では、説明を簡単にするために、再生するＢＧＭを譜面で表している。
【０１０３】
ここにおいては、主音符１つで１秒、全部で１６秒のＢＧＭと仮定する。
【０１０４】
ＢＧＭなどの音声の再生を安定して行うには、すべてのデータを予めサウンドバッファ用のメモリ１７６に格納しておくのが望ましいが、メモリ容量に対して、データ容量が上回ることが多いので不可能であることが多い。
【０１０５】
そこで、再生に滞りのないように通常２つのバッファを用意し（バッファＡ、バッファＢとする）、それを交互に利用することで再生を可能とするものである。ここでバッファＡ，Ｂは、図２の第１、第２のバッファ１７７ａ１７７ｂに対応する。
【０１０６】
バッファＡのデータを再生し終わると、続きのバッファＢのデータを再生し、空いたバッファＡにバッファＢの続きのデータを転送する。バッファＢについても同様に行い、これを繰り返す。長所として、結果少量のメモリでも長時間の再生が可能となることがあげられるが、短所としては、再生前と、再生中にしばしばメモリへのデータ転送が必要となる。
【０１０７】
ここで、音声がスムーズに再生されるためには、一回ごとのデータ転送時間がバッファごとの音声出力に掛かる時間より短くなる必要がある。
【０１０８】
なお、以下の説明では用語を次のように定義する。
【０１０９】
実時間：実際の時間。ＢＧＭの開始時点を０秒とする。
【０１１０】
再生時間：ＢＧＭの開始点からの経過時間。再生を中断したとき、時間は進まない。
【０１１１】
なお、図５〜図９において、１つのバッファが再生できる時間をｂ＝２秒、バッファ１つのストリームデータの読込みにかかる時間（読込み準備時間）の最大値をＹ＝１秒、実際の読込みにかかる時間をｙ秒とする。さらに、前述した読込み不可の予想時間をＸ＝４秒とし、実際の読込み不可時間をｘ秒で表す。
【０１１２】
２−２．従来の手法
次に、ＢＧＭ再生を、いわゆるストリーム再生により実現するプログラムにおいて、ＢＧＭストリーム読込みが不可となる場合に、従来取られていた代表的な３つの手法を以下に説明する。
【０１１３】
２−２−１．第１の従来手法
この手法は、図５に示すように、ストリームが途切れるところでＢＧＭを改めて曲の先頭から再生するものである。
【０１１４】
ここにおいて、ｔ０は、ＢＧＭ再生中にストリーム読込みができなくなる中断イベントを発生するタイミングであり、その後Ｘ秒経過後にこの中断イベントが終了していることを表している。中断イベント発生時点においては、バッファＡまたはバッファＢには、次の再生用のデータが予め書き込まれているため、中断イベント発生タイミングｔ０からｂ秒間だけＢＧＭが再生され、その後ＢＧＭの再生ができない再生不可状態となる。
【０１１５】
そして、中断イベントが終了した時点で、再度ＢＧＭの音ストリームデータを図３に示すようにバッファに書き込む処理を行うことになるが、このときバッファＡまたはバッファＢのいずれか一方にストリームデータを読み込んで記憶するためには、所定の読込み時間Ｙが必要となる。ここでは、この読込み記録のためにＹ秒の準備時間が必要とされている。従って、この従来手法では、中断イベントが発生するタイミングｔ０から中断イベントが終了するまでのＸ秒間の間は、ＢＧＭストリームデータは読込み不可となる読込み不可時間となり、また中断イベントが発生してバッファ保証時間ｂ秒経過して（ｔ０＋ｂ）から、中断イベントが終了しデータの読込みが終了するまでの（ｔ０＋Ｘ＋Ｙ）の期間が、ＢＧＭの再生不可時間となることが理解される。
【０１１６】
従って、この従来手法では、以下の利点及び欠点がある。
【０１１７】
利点：
イ：ストリーム読込み不可時間の長さ、バッファサイズに関係なく実装できる。
【０１１８】
ロ：消音中にその他のデータ転送を行っているとき、ＢＧＭストリーム再生のためのデータを読み込まないためにデータ転送に専念でき、結果、データ転送時間を最小限に抑えることができる。
【０１１９】
欠点：
イ：ストリーム読込みの中断の度に曲の頭から聞かされることになり、聴覚上不自然な印象を与えてしまう。
【０１２０】
２−２−２．第２の従来手法
この従来手法は、図６に示すように、ＢＧＭストリームデータの再生が途切れるところでＢＧＭ再生を停止し、再度その位置から再生を開始するというものである。
【０１２１】
この従来手法では、以下の利点及び欠点がある。
【０１２２】
利点：
イ：ストリーム読込み不可時間の長さ、バッファサイズに関係なく実装できる。
【０１２３】
ロ：消音中にその他のデータ転送を行っているとき、ＢＧＭストリーム再生のためのデータを読み込まないためにデータ転送に専念でき、結果、データ転送時間を最小限に抑えることができる。
【０１２４】
欠点：
イ：ストリーム読込みの中断の度に曲の再生が中断することになり、実時間に対して再生が遅れていくため、聴覚上不自然な印象を与えてしまう。
【０１２５】
２−２−３．第３の従来手法
この従来手法は、図７に示すように、ストリームデータをサウンドバッファ１７６へ転送中において、中断イベントが発生してもＢＧＭの再生が途切れないだけのストリームデータをサウンドバッファ１７６に読込み記憶するというものである。
【０１２６】
この従来手法は、以下のような利点及び欠点がある。
【０１２７】
利点：
イ：ストリーム再生が途切れないため、聴覚上不自然にならない。
【０１２８】
欠点：
イ：予想される中断時間以上のストリーム再生時間を貯めるだけのバッファメモリ容量が必要になってしまう（ｂ＜ｘ＋ｙとなるとき、音飛びしてしまうため、ｂ≧Ｘ＋Ｙとする必要がある）。
【０１２９】
ロ：中断時間が任意となるとき、バッファメモリ容量を決定できない。
【０１３０】
２−３．本実施の形態の手法
図８に、本実施の形態の手法を採用した場合のＢＧＭストリーム再生の一例を示す。
【０１３１】
本実施の形態では、前述したような中断イベントが発生した場合でも、ＢＧＭを消音しただけのように錯覚させることで聴覚上不自然さを解消する「ＢＧＭストリームデータ再生の擬似消音手法」を採用する。
【０１３２】
本実施の形態の手法は、計測部１４６を用いて、ストリーム再生開始からの再生時間の実時間を計測し、読込み不可が解けた直後（ｔ０＋ｘ）秒から、ストリーム読みが完了する予定時刻（ｔ０＋ｘ＋Ｙ）秒を割り出し、再生時間（ｔ０＋ｘ＋Ｙ）秒の位置にストリーム読込み位置を決定してストリームデータを読込み、実時間が（ｔ０＋ｘ＋Ｙ）秒となったときからストリーム再生を再開する。
【０１３３】
図９には、その具体例が示されている。
【０１３４】
ここでは、バッファ１つの再生できる時間を２秒（ｂ＝２）、読込み不可の予想時間を４秒未満（Ｘ＝４）、バッファ１つのストリーム読込みにかかる最大時間を１秒未満（Ｙ＝１）とする。
【０１３５】
読込み不可の状態が解けたときの、実測時間が９．３秒（ｘ＝３．８）であったとする。
【０１３６】
ストリーム読込みの完了予想時刻は（ｔ０＋ｘ＋Ｙ）秒より、（５．５＋３．８＋１→１０．３）秒となるので、即座に再生時間が１０．３秒の位置からのストリームデータの読込みを開始する。その後再生を１０．３秒から再開すればよい。
【０１３７】
本実施の形態の手法を採用することにより、前述した従来の手法では得られなかった以下の作用効果を奏することができる。
【０１３８】
イ：ストリーム読込み不可時間の長さ、バッファサイズに関係なく実装できる。
【０１３９】
ロ：消音中にその他のデータ転送を行っているとき、ＢＧＭストリーム再生のためのデータを読み込まないためにデータ転送に専念でき、結果、データ転送時間を最小限に抑えることができる。
【０１４０】
ハ：ストリーム再生は途切れるものの、理論的にストリーム再生再開時に実時間と再生時間にずれがないため、聴覚上あまり不自然にならない。
【０１４１】
ニ：音と画像を動機させる必要がある場合に、本実施の形態の手法は効果がある。例えば、音楽ゲームではＢＧＭと音符の表示を同期させる必要があるが、何らかの原因でストリームの読込み不可時間が発生した場合、第１、第２の従来手法では、ＢＧＭと音符の表示がずれてしまう。本実施の形態の手法を利用すれば、そのようなずれを防ぐことができる。カラオケのＢＧＭと歌詞表示の同期等にも応用できる。
【０１４２】
なお、音切れの不自然さを解消するため、再生中断・再開の際は、フェードイン・フェードアウトを併用することが好ましい。さらに、動画再生においても同様に本実施の形態の手法が利用できる。
【０１４３】
３．本実施の形態の処理
次に、本実施の形態の詳細な処理例について、図２に示すタイミングチャート及び図１０に示すフローチャートを用いて説明する。
【０１４４】
図１０に示すように、まず第１または第２のバッファ１７７ａ、１７７ｂのいずれか一方にストリームデータを読込み、この読み込んだストリームデータを再生し、他方のバッファにストリームデータを読み込むという処理を交互に繰り返して行う（ステップＳ１０、Ｓ１２）。
【０１４５】
図２に示すタイミングチャートを例に取り説明すると、システム内部またはシステム外部の記憶媒体から音ストリームデータＢを取得して第１のバッファ１７７ａに記憶させ、記憶させた音ストリームデータＢを第１のバッファ１７７ａから読出し再生している間に、次の音ストリームデータＣを取得して第２のバッファ１７７ｂに記憶させるという処理を行う。そして、このような音ストリームデータを記憶させるバッファと音ストリームデータを読み出すバッファを交互に切り替え、音ストリームデータを例えばＢ、Ｃ、Ｄ、Ｅ…と示すように順次記憶しながら途切れなく再生する。
【０１４６】
音ストリームデータの再生が開始されてからの実時間は、前述したように計測部１４６で測定される。
【０１４７】
このような音ストリームデータの読込み、再生処理の途中で、ストリームデータの読込み不可状態を意味する中断イベントが発生したと判断されると（ステップＳ１４）、ステップＳ２０〜Ｓ３６に示す「ＢＧＭストリームデータ再生の擬似消音処理」が実行される。
【０１４８】
このような中断イベントは、例えば図１１（Ａ）に示すゲーム画面が表示される状態から、図１１（Ｃ）に示すゲーム画面が表示される状態と切り替わる場面において発生することが多い。このような場面の切り替え時には、新たな場面用のオブジェクトデータを記憶媒体からオブジェクトデータ記憶部１７４へ転送読込みすることが必要となり、処理部１００に、余分な演算負荷をかけないように記憶媒体からサウンドバッファ１７６へのストリームデータの読込み処理が自動的に中断するようにプログラムされている。
【０１４９】
そして、このようなオブジェクトデータのオブジェクトデータ記憶部１７４への転送読込み期間中は、３次元ゲーム空間の演算処理が一時的に中断されるため、この期間中はゲーム画面として、図１１（Ｂ）に示すような静止画に近いゲーム演出画面が表示される。
【０１５０】
すなわち、ステップＳ１４において、読込み中断イベントが発生したと判断されると、計測部１４６からの出力を基に図２（Ｄ）に示す読込み不可期間ｘの実測を開始する（ステップＳ２０）。
【０１５１】
これと並行して、図２（Ｅ）に示すように、すでに読込み済みのストリームデータをフェードアウトさせながら再生し（ステップＳ２２）、さらに表示するゲーム画面を、図１１（Ａ）に示すゲーム画面から、図１１（Ｂ）に示す静止画に近いゲーム演出画面に切り替えて表示するという所定のゲーム演出を実行する（ステップＳ２４）。
【０１５２】
このようにして、本実施の形態では、中断イベントが発生しＢＧＭストリームデータの読込みができなくなると、所与のゲーム画面を表示しながら、ＢＧＭストリームデータの再生を擬似的に消音するという処理を行うことにより、聴覚上の不自然さを解消することができる。
【０１５３】
しかも、消音中に、本実施の形態ではオブジェクトデータ記憶部１７４へのデータ転送書込みに専念でき、当該データ転送時間を最小限に抑えることができる。
【０１５４】
そして、このようなオブジェクトデータ記憶部１７４へのオブジェクトデータの転送読込みが終了すると、中断イベントを終了し、これにより読込み不可期間が終了したと判断される（ステップＳ２６）。
【０１５５】
このようにして中断イベントが終了すると、この中断イベント終了タイミングｔ１から１つのバッファ１７７へのストリームデータ読込みに係る最大時間Ｙ秒経過後のタイミングｔ２を求める。
【０１５６】
そして、ストリームデータの再生が開始されてから当該データの再生が正常に行われていると仮定したときに、ｔ２のタイミングで実際に再生されるストリームデータ（図２では、データＩ）を、ストリームデータの再生開始位置として決定し、バッファ１７７へ読込み記憶するという処理を行う（ステップＳ３０）。
【０１５７】
図２に示す実施例では、ストリームデータが正常に再生されると仮定した場合に、ｔ２のタイミングで再生されるストリームデータはＩである。従って、ここではストリームデータＩが再生開始位置のストリームデータとして特定され、第１のバッファ１７７ａに読込み記憶される（ステップＳ３２）。
【０１５８】
そして、読込み準備期間Ｙが経過したｔ２のタイミングになると（ステップＳ３４）、図１１（Ｂ）で示す演出画面が終了し、図１１（Ｃ）に示す新たな場面のゲーム画面が表示され（ステップＳ３６）、バッファ１７７ａに書き込まれた再生開始位置のストリームデータＩがフェードインされて再生されるという処理を行う（ステップＳ３４、Ｓ３６）。
【０１５９】
そして、それ以降は、前述したステップＳ１０、Ｓ１２という一連の処理を、ステップＳ１６でゲームが終了すると判断されるまで繰り返して行う。
【０１６０】
以上のようなストリーム再生処理を行うことにより、中断イベントが発生した場合にストリーム再生は一時的に途切れるものの、理論的にストリーム再生再開時に実時間と再開時間にずれがないため、聴覚上の不自然さを解消することができるとともに、音ストリームデータの再生中断、再開の際には、フェードイン、フェードアウトを併用することにより、音ストリームデータの再生の途切れに伴う聴覚上の不自然さをさらに解消することができる。
【０１６１】
なお、図１０に示す実施の形態では、中断イベントの発生が終了してから、音ストリームデータの再生を開始するタイミングｔ２を、実測により求めた書込み不可時間ｘを用い、ｔ２＝ｔ０＋ｘ＋Ｙの演算式により決定する手法を用いたが、これ以外にも、前記書込み不可時間の実測値ｘに変え、例えば書込み不可の予測時間Ｘを求め、ｔ２を決定してもよい。
【０１６２】
また、中断イベント終了のタイミングｔ１と、読込み準備時間Ｙとを用いて、ｔ２＝ｔ１＋Ｙの演算式により再生開始のタイミングを求めてもよい。
【０１６３】
また、図２に示すストリームデータが、例えばネットワークからパケットデータとして提供される場合には、パケットデータに含まれるストリームデータのファイルサイズと、ピットレートとに基づき、ストリームデータを実時間で再生した際にｔ２のタイミングで再生されるストリームデータＩが含まれるパケットを特定し、当該パケットをサーバ側に要求し、当該パケットに含まれるストリームデータをバッファに読込み記憶する処理を行えばよい。
【０１６４】
この場合には、当該パケットに含まれるストリームデータの実時間での再生開始タイミングに合わせて、読込み準備時間Ｙを余裕をもって設定することにより、ストリーム再生開始時に実時間と再開時間にずれのない音ストリームデータの再生を実現することができる。
【０１６５】
４．ハードウェア構成
図１２に本実施の形態を実現できるハードウェア構成の例を示す。メインプロセッサ９００は、ＤＶＤ９８２（情報記憶媒体。ＣＤでもよい。）に格納されたプログラム、通信インターフェース９９０を介してダウンロードされたプログラム、或いはＲＯＭ９５０に格納されたプログラムなどに基づき動作し、ゲーム処理、画像処理、音処理などを実行する。コプロセッサ９０２は、メインプロセッサ９００の処理を補助するものであり、マトリクス演算（ベクトル演算）を高速に実行する。例えばオブジェクトを移動させたり動作（モーション）させる物理シミュレーションに、マトリクス演算処理が必要な場合には、メインプロセッサ９００上で動作するプログラムが、その処理をコプロセッサ９０２に指示（依頼）する。
【０１６６】
ジオメトリプロセッサ９０４は、メインプロセッサ９００上で動作するプログラムからの指示に基づいて、座標変換、透視変換、光源計算、曲面生成などのジオメトリ処理を行うものであり、マトリクス演算を高速に実行する。データ伸張プロセッサ９０６は、圧縮された画像データや音データのデコード処理を行ったり、メインプロセッサ９００のデコード処理をアクセラレートする。これにより、オープニング画面やゲーム画面において、ＭＰＥＧ方式等で圧縮された動画像を表示できる。
【０１６７】
描画プロセッサ９１０は、ポリゴンや曲面などのプリミティブ面で構成されるオブジェクトの描画（レンダリング）処理を実行する。オブジェクトの描画の際には、メインプロセッサ９００は、ＤＭＡコントローラ９７０を利用して、描画データ（頂点データや他のパラメータ）を描画プロセッサ９１０に渡すと共に、必要であればテクスチャ記憶部９２４にテクスチャを転送する。すると描画プロセッサ９１０は、描画データやテクスチャに基づいて、Ｚバッファなどを利用した隠面消去を行いながら、オブジェクトをフレームバッファ９２２に描画する。また描画プロセッサ９１０は、αブレンディング（半透明処理）、デプスキューイング、ミップマッピング、フォグ処理、バイリニア・フィルタリング、トライリニア・フィルタリング、アンチエイリアシング、シェーディング処理なども行う。
【０１６８】
サウンドプロセッサ９３０は、多チャンネルのＡＤＰＣＭ音源などを内蔵し、ＢＧＭ、効果音、音声などのゲーム音を生成し、スピーカ９３２を介して出力する。ゲームコントローラ９４２やメモリカード９４４からのデータはシリアルインターフェース９４０を介して入力される。
【０１６９】
ＲＯＭ９５０にはシステムプログラムなどが格納される。業務用ゲームシステムの場合にはＲＯＭ９５０が情報記憶媒体として機能し、ＲＯＭ９５０に各種プログラムが格納される。なおＲＯＭ９５０の代わりにハードディスクを利用してもよい。ＲＡＭ９６０は各種プロセッサの作業領域となる。ＤＭＡコントローラ９７０は、プロセッサ、メモリ間でのＤＭＡ転送を制御する。ＤＶＤドライブ９８０（ＣＤドライブでもよい。）は、プログラム、画像データ、或いは音データなどが格納されるＤＶＤ９８２（ＣＤでもよい。）にアクセスする。通信インターフェース９９０はネットワーク（通信回線、高速シリアルバス）を介して外部との間でデータ転送を行う。
【０１７０】
なお本実施形態の各部（各手段）の処理は、その全てをハードウェアのみにより実現してもよいし、情報記憶媒体に格納されるプログラムや通信インターフェースを介して配信されるプログラムにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。
【０１７１】
そして本実施形態の各部の処理をハードウェアとプログラムの両方により実現する場合には、情報記憶媒体には、ハードウェア（コンピュータ）を本実施形態の各部として機能させるためのプログラムが格納される。より具体的には、上記プログラムが、ハードウェアである各プロセッサ９０２、９０４、９０６、９１０、９３０に処理を指示すると共に、必要であればデータを渡す。そして、各プロセッサ９０２、９０４、９０６、９１０、９３０は、その指示と渡されたデータとに基づいて本発明の各部の処理を実現する。
【０１７２】
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。例えば、前記実施の形態では、ストリームデータとして、音ストリームデータを再生する場合を例に取り説明したが、本発明はこれに限らず、ムービーテクスチャ用のストリームデータの読込み、再生をする場合にも適用することができる。例えば所与のオブジェクトに使用するテクスチャとして、ムービーテクスチャを用いる場合には、当該ムービーテクスチャ用のストリームを、前述した音ストリームデータの場合と同様にして読込み、再生することができる。
【０１７３】
また、前記実施の形態では、ストリームデータの読込み記憶を用いるバッファとして、２つのバッファを用いる場合を例に取り説明したが、本発明はこれに限らず、例えば３つ以上のバッファを用い、これらを交互に使用する構成を採用してもよい。
【０１７４】
また、前記実施の形態においては、ストリームデータの読込み中断イベントとして、所与のゲームイベント、例えばオブジェクトデータ記憶部へのオブジェクトデータの読込み記憶のイベント発生を例に取り説明したが、本発明はこれに限らず、これ以外の各種の中断イベントが発生した場合にも適用することができ、またネットワークを介してストリームデータを読込み記憶する場合には、当該ネットワークに通信不良などが発生した場合に、これを中断イベントとして用い、同様の処理を行ってもよい。
【０１７５】
以上のように、本実施形態で説明したものに限定されず、これらと均等な手法も本発明の範囲に含まれる。
【０１７６】
また本発明は種々のゲーム（格闘ゲーム、シューティングゲーム、ロボット対戦ゲーム、スポーツゲーム、競争ゲーム、ロールプレイングゲーム、音楽演奏ゲーム、ダンスゲーム等）に適用できる。また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレーヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード、携帯電話等の種々の画像生成システムに適用できる。
【図面の簡単な説明】
【０１７７】
【図１】本実施の形態の機能ブロック図である。
【図２】本実施の形態のタイミングチャート図である。
【図３】ＢＧＭストリームデータの再生処理の説明図である。
【図４】再生処理されたストリームデータの説明図である。
【図５】第１の従来手法によるＢＧＭ再生処理の説明図である。
【図６】第２の従来手法によるＢＧＭ再生処理の説明図である。
【図７】第３の従来手法によるＢＧＭ再生処理の説明図である。
【図８】本実施の形態のＢＧＭ再生処理の説明図である。
【図９】本実施の形態のＢＧＭ再生処理の具体例の説明図である。
【図１０】本実施の形態の具体的な処理例を示すフローチャート図である。
【図１１】本実施の形態のゲーム画面の具体例を示す説明図である。
【図１２】ハードウェア構成の説明図である。
【符号の説明】
【０１７８】
１００  処理部
１１０  ゲーム演算部
１１１  オブジェクト空間設定部
１１３  仮想カメラ制御部
１２０  画像生成部
１３０  音生成部
１４０  ストリームデータ処理部
１４２  ストリームデータ読込み部
１４４  ストリームデータ再生部
１４６  ストリームデータ再生時間の計測部
１４８  イベント判定部
１５０  再生開始位置決定部
１７０  記憶部
１７４  オブジェクトデータ記憶部
１７６  サウンドバッファ
１７７ａ  第１のバッファ
１７７ｂ  第２のバッファ
１８０  情報記憶媒体
１９２  音出力部
【図１】
2007166157.tif 000003
【図２】
2007166157.tif 000004
【図３】
2007166157.tif 000005
【図４】
2007166157.tif 000006
【図５】
2007166157.tif 000007
【図６】
2007166157.tif 000008
【図７】
2007166157.tif 000009
【図８】
2007166157.tif 000010
【図９】
2007166157.tif 000011
【図１０】
2007166157.tif 000012
【図１２】
2007166157.tif 000013
【図１１】
2007166157.tif 000014