(57)【要約】【課題】  演算負荷の高いフレーム発生しても高品質な画像を生成できる画像生成システム、プログラム及び情報記憶媒体を提供することにある【解決手段】  各フレームの更新時間を検出し、前回又は所定回前のフレーム更新時間又は直前の所定期間における平均フレーム更新時間に基づき各フレームのシミュレーション単位時間を決定し、操作部からの入力データに基づき、決定された前記シミュレーション単位時間における仮想３次元空間内に存在する事物の時間的な変化についてのシミュレーション演算をおこない、シミュレーション演算の結果に基づき得られたオブジェクトの配置情報及びゲームパラメータの少なくとも一方に基づき、仮想３次元空間を仮想カメラから見た各フレームの画像を生成し描画バッファに描画し、描画終了検出後に描画バッファに描画されている各フレームの画像を表示部に出力する表示許可を与えるプログラムである。【選択図】        図４
2005322143.tif 000002
【特許請求の範囲】
【請求項１】
画像生成を行うプログラムであって、
各フレームの更新時間を検出するフレーム更新時間検出部と、
前回又は所定回前のフレーム更新時間又は直前の所定期間における平均フレーム更新時間に基づき各フレームのシミュレーション単位時間を決定するシミュレーション単位時間決定部と、
操作部からの入力データに基づき、決定された前記シミュレーション単位時間における仮想３次元空間内に存在する事物の時間的な変化についてのシミュレーション演算をおこない、前記シミュレーション演算の結果に基づき、各フレームにおける仮想３次元空間におけるオブジェクトの配置情報及びゲームパラメータの少なくとも一方を演算するシミュレーション演算部と、
前記シミュレーション演算の結果に基づき得られたオブジェクトの配置情報及びゲームパラメータの少なくとも一方に基づき、仮想３次元空間を仮想カメラから見た各フレームの画像を生成し描画バッファに描画する画像生成部と、
各フレームの画像の描画バッファへの描画終了を検出する描画終了検出部と、  描画終了検出後に描画バッファに描画されている各フレームの画像を表示部に出力する表示許可を与える表示許可指示部と、
としてコンピュータを機能させることを特徴とするプログラム。
【請求項２】
請求項１において、
前記表示許可指示部は、
各フレームの描画バッファへの描画終了が所定のフレーム更新周期の到来より前に検出した場合には、所定のフレーム更新周期の到来をまって表示許可を与えることを特徴とするプログラム。
【請求項３】
画像生成を行うプログラムであって、
各フレームでの予測処理負荷を演算し、当該予測処理負荷に基づき各フレームにおける予測フレーム更新レートを決定する予測フレーム更新レート決定処理部と、
前記予測フレーム更新レートに基づき対応するフレームのシミュレーション単位時間を決定するシミュレーション単位時間決定部と、
前記予測フレーム更新レートに基づき、各フレームのフレーム更新時間を決定するフレーム更新時間を決定部と、
操作部からの入力データに基づき、決定された前記シミュレーション単位時間における仮想３次元空間内に存在する事物の時間的な変化についてのシミュレーション演算をおこない、前記シミュレーション演算の結果に基づき、各フレームにおける仮想３次元空間におけるオブジェクトの配置情報及びゲームパラメータの少なくとも一方を演算するシミュレーション演算部と、
前記シミュレーション演算の結果に基づき得られたオブジェクトの配置情報及びゲームパラメータの少なくとも一方に基づき、仮想３次元空間を仮想カメラから見た各フレームの画像を生成し描画バッファに描画する画像生成部と、
決定された各フレームのフレーム更新時間に基づき、描画バッファに描画されている各フレームの画像の表示許可タイミングを決定し、当該表示許可タイミングで描画バッファに描画されている各フレームの画像を表示部に出力する表示許可を与える表示許可指示部と、
としてコンピュータを機能させることを特徴とするプログラム。
【請求項４】
請求項３において、
前記予測フレーム更新レート決定部は、
各フレームにおける表示物の数、オブジェクトに使用されているプリミティブ数、各フレームにおいてシミュレーション演算の対象となるオブジェクト数、各フレームで発生するゲームイベントの内容、各フレームにおけるプレーヤ移動体の位置を示す情報の少なくとも１つの情報に基づき、各フレームの予測フレームレートを演算する事を特徴とするプログラム。
【請求項５】
画像生成を行うシステムであって、
操作部からの入力データに基づき、所定のシミュレーション単位時間における仮想３次元空間内に存在する事物の時間的な変化についてのシミュレーション演算をおこない、前記シミュレーション演算の結果に基づき、各フレームにおける仮想３次元空間におけるオブジェクトの配置情報及びゲームパラメータの少なくとも一方を演算するシミュレーション演算部と、
前記シミュレーション演算の結果に基づき得られたオブジェクトの配置情報及びゲームパラメータの少なくとも一方に基づき、仮想３次元空間を仮想カメラから見た各フレームの画像を生成し描画バッファに描画する画像生成部と、
各フレームの画像の描画バッファへの描画終了を検出する描画終了検出部と、  描画終了検出後に描画バッファに描画されている各フレームの画像を表示部に出力する表示許可を与える表示許可指示部と、
としてコンピュータを機能させることを特徴とするプログラム。
【請求項６】
請求項５において、
前記表示許可指示部は、
各フレームの描画バッファへの描画終了が所定のフレーム更新周期の到来より前に検出した場合には、所定のフレーム更新周期の到来をまって表示許可を与えることを特徴とするプログラム。
【請求項７】
コンピュータ読み取り可能な情報記憶媒体であって、請求項１乃至６のいずれかのプログラムが記憶されていることを特徴とする情報記憶媒体。
【請求項８】
画像生成を行うシステムであって、
各フレームの更新時間を検出するフレーム更新時間検出部と、
前回又は所定回前のフレーム更新時間又は直前の所定期間における平均フレーム更新時間に基づき各フレームのシミュレーション単位時間を決定するシミュレーション単位時間決定部と、
操作部からの入力データを受け取る入力データ取得部と、
操作部からの入力データに基づき、決定された前記シミュレーション単位時間における仮想３次元空間内に存在する事物の時間的な変化についてのシミュレーション演算をおこない、前記シミュレーション演算の結果に基づき、各フレームにおける仮想３次元空間におけるオブジェクトの配置情報及びゲームパラメータの少なくとも一方を演算するシミュレーション演算部と、
前記シミュレーション演算の結果に基づき得られたオブジェクトの配置情報及びゲームパラメータの少なくとも一方に基づき、仮想３次元空間を仮想カメラから見た各フレームの画像を生成し描画バッファに描画する画像生成部と、
各フレームの画像の描画バッファへの描画終了を検出する描画終了検出部と、  描画終了検出後に描画バッファに描画されている各フレームの画像を表示部に出力する表示許可を与える表示許可指示部と、
を含む事を特徴とする画像生成システム。
【請求項９】
画像生成を行うシステムであって、
各フレームでの予測処理負荷を演算し、当該予測処理負荷に基づき各フレームにおける予測フレーム更新レートを決定する予測フレーム更新レート決定処理部と、
前記予測フレーム更新レートに基づき対応するフレームのシミュレーション単位時間を決定するシミュレーション単位時間決定部と、
前記予測フレーム更新レートに基づき、各フレームのフレーム更新時間を決定するフレーム更新時間を決定部と、
操作部からの入力データを受け取る入力データ取得部と、
操作部からの入力データに基づき、決定された前記シミュレーション単位時間における仮想３次元空間内に存在する事物の時間的な変化についてのシミュレーション演算をおこない、前記シミュレーション演算の結果に基づき、各フレームにおける仮想３次元空間におけるオブジェクトの配置情報及びゲームパラメータの少なくとも一方を演算するシミュレーション演算部と、
前記シミュレーション演算の結果に基づき得られたオブジェクトの配置情報及びゲームパラメータの少なくとも一方に基づき、仮想３次元空間を仮想カメラから見た各フレームの画像を生成し描画バッファに描画する画像生成部と、
決定された各フレームのフレーム更新時間に基づき、描画バッファに描画されている各フレームの画像の表示許可タイミングを決定し、当該表示許可タイミングで描画バッファに描画されている各フレームの画像を表示部に出力する表示許可を与える表示許可指示部と、
を含む事を特徴とする画像生成システム。
【請求項１０】
画像生成を行うシステムであって、
操作部からの入力データを受け取る入力データ取得部と、
操作部からの入力データに基づき、所定のシミュレーション単位時間における仮想３次元空間内に存在する事物の時間的な変化についてのシミュレーション演算をおこない、前記シミュレーション演算の結果に基づき、各フレームにおける仮想３次元空間におけるオブジェクトの配置情報及びゲームパラメータの少なくとも一方を演算するシミュレーション演算部と、
前記シミュレーション演算の結果に基づき得られたオブジェクトの配置情報及びゲームパラメータの少なくとも一方に基づき、仮想３次元空間を仮想カメラから見た各フレームの画像を生成し描画バッファに描画する画像生成部と、
各フレームの画像の描画バッファへの描画終了を検出する描画終了検出部と、  描画終了検出後に描画バッファに描画されている各フレームの画像を表示部に出力する表示許可を与える表示許可指示部と、
を含む事を特徴とする画像生成システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、情報記憶媒体及び画像生成システムに関する。
【背景技術】
【０００２】
従来より、仮想的な３次元空間であるオブジェクト空間内において所与の視点（仮想カメラ）から見える画像を生成する画像生成システム（ゲームシステム）が知られており、いわゆる仮想現実を体験できるものとして人気が高い。競争ゲーム（カーゲーム）を楽しむことができる画像生成システムを例にとれば、プレーヤは、操作部（ステアリング、シフトレバー、アクセルペダル、ブレーキペダル等）を用いて移動オブジェクト（自プレーヤ移動オブジェクト、自車）を操作し、他のプレーヤ（コンピュータプレーヤ又は他の人間プレーヤ）が操作する移動オブジェクト（他プレーヤ移動オブジェクト、他車）と競争することでゲームを楽しむ。
【０００３】
さて、このような画像生成システムでは、１フレーム周期に全てのオブジェクトの描画処理を完了しなければならないという課題がある。
【０００４】
しかしながら、例えば、表示オブジェクトが多い場合や処理負荷が重いゲームイベントが発生した場合等、１フレーム周期に描画処理を完了させることが間に合わなくなる場合があった。このような場合、２フレームに一回画像を更新することもおこなわれているが、シミュレーション時間と表示タイミングずれが生じて不自然な画像が表示されてしまうおそれがあった。
【特許文献１】特開平１１−２９６１２８号
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、演算負荷の高いフレーム発生しても高品質な画像を生成できる画像生成システム、プログラム及び情報記憶媒体を提供することにある
【課題を解決するための手段】
【０００６】
（１）本発明は、画像生成を行うシステムであって、
各フレームの更新時間を検出するフレーム更新時間検出部と、
前回又は所定回前のフレーム更新時間又は直前の所定期間における平均フレーム更新時間に基づき各フレームのシミュレーション単位時間を決定するシミュレーション単位時間決定部と、
操作部からの入力データを受け取る入力データ取得部と、
操作部からの入力データに基づき、決定された前記シミュレーション単位時間における仮想３次元空間内に存在する事物の時間的な変化についてのシミュレーション演算をおこない、前記シミュレーション演算の結果に基づき、各フレームにおける仮想３次元空間におけるオブジェクトの配置情報及びゲームパラメータの少なくとも一方を演算するシミュレーション演算部と、
前記シミュレーション演算の結果に基づき得られたオブジェクトの配置情報及びゲームパラメータの少なくとも一方に基づき、仮想３次元空間を仮想カメラから見た各フレームの画像を生成し描画バッファに描画する画像生成部と、
各フレームの画像の描画バッファへの描画終了を検出する描画終了検出部と、  描画終了検出後に描画バッファに描画されている各フレームの画像を表示部に出力する表示許可を与える表示許可指示部と、
を含む事を特徴とする。
【０００７】
また本発明に係るプログラムは、コンピュータにより実行可能なプログラム（情報記憶媒体又は搬送波に具現化されるプログラム）であって、上記各処理部としてコンピュータを機能させることを特徴とする。また本発明に係る情報記憶媒体は、コンピュータにより読み取り可能（使用可能）な情報記憶媒体であって、上記処理部としてコンピュータを機能させるためのプログラムを含むことを特徴としている。また本発明にかかる画像生成方法は、上記各処理部の処理を行うステップを含むことを特徴とする。
【０００８】
各フレームの更新時間とは第ｎのフレームの画像が表示されてから第ｎ＋１のフレームの画像が表示されるまでの時間である。例えば第ｎのフレームの画像を表示部に出力する表示許可が出てから、第ｎ＋１のフレームの画像を表示部に出力する表示許可が出るまでの時間を各フレームの更新時間としてもよい。
【０００９】
所定回前のフレーム更新時間とは例えば前々回前のフレーム更新時間でもよいし、３回以上前（ただし直近の所定期間内）のフレーム更新時間でもよい。
【００１０】
また直前の所定期間における平均フレーム更新時間とは、直前の所定期間内の２から数フレームの平均フレーム更新時間である。
【００１１】
一般に動画像を生成する画像生成システムでは、ゲーム時刻ｔ０，ｔ１、ｔ２（例えば１／６０秒毎）における仮想３次元空間の状態のシミュレーション演算を行い、ゲーム時刻ｔ０，ｔ１、ｔ２（例えば１／６０秒毎）における仮想３次元空間の画像を生成する。このような場合に第ｎ回のシミュレーション演算の対象となったゲーム時刻から第ｎ＋１回のシミュレーション演算の対象となったゲーム時刻までの時間がシミュレーション単位時間である。
【００１２】
仮想３次元空間内に存在する事物の時間的な変化とは、例えばオブジェクトの位置や移動距離、速度、加速度、各速度、モーション等の時間的な変化や、また例えば、ラップタイムや時間の積算で演算される量（例えばダメージ量）の時間的な変化や仮想３次元空間内に存在する事物に影響を与えるパラメータ（時間の関数）等である。
【００１３】
シミュレーション演算とは、例えば運動方程式やエネルギー保存の法則やその他の現実世界の物理法則を用いて、現実世界の物理現象をシミュレーションするための物理値（仮想３次元空間内のオブジェクトの位置、速度、角速度、加速度、角加速度、移動距離、回転）の演算処理や単位時間応じたモーション補完処理やシミュレーション時間の積算処理やパラメータやラップタイムや時間の積算で演算される量（例えばダメージ量）の演算処理等である。
【００１４】
各フレームの画像の描画バッファへの描画終了の検出は、例えば描画用プログラムの最後（描画処理の最後の命令の後）に描画終了を通知するための描画終了通知命令を設定して置くき、当該描画終了通知命令の実行を検出すること等により実現することができる。
【００１５】
本発明によれば、画終了検出後に描画バッファに描画されている各フレームの画像を表示部に出力する表示許可を与えるので、所与のフレームの画像が描画されるまでの時間が伸びた場合にはそれに応じて所与の画像のフレーム更新周期（前回の画像が表示されてから所与の画像が表示されるまでの時間）が伸びる。従って画像が描画されるまでの時間（シミュレーション演算と画像生成処理時間を含む）が所定の時間（例えば通常システムで設定されているフレーム更新時間）をオーバーしてもかならず各フレームの画像が出力されるので、更新周期を一つとばしにする場合に比べてみた目がなめらかな映像を生成する事ができる。  また本発明によれば、前回又は所定回前のフレーム更新時間又は直前の所定期間における平均フレーム更新時間に基づき各フレームのシミュレーション単位時間を決定して、決定された前記シミュレーション単位時間における仮想３次元空間内に存在する事物の時間的な変化についてのシミュレーション演算を行うので、フレーム更新周期が伸びたことによる画像の遅れは、今回又は次回以降のいずれかのフレームでシミュレーション単位時間を延ばすことによりとりもどすことができる。従って画像の遅れや早送り等の不具合の発生も防止することができる。
【００１６】
（２）また本発明の画像生成システム、プログラム、情報記憶媒体及び画像生成方法は、
前記表示許可指示部は、
各フレームの描画バッファへの描画終了が所定のフレーム更新周期の到来より前に検出した場合には、所定のフレーム更新周期の到来をまって表示許可を与えることを特徴とする。
【００１７】
所定のフレーム更新周期とは、例えば通常規定されているフレーム更新周期（例えば１／６０秒毎）等をもちいてもよい。
【００１８】
本発明によれば、画像の描画が所定のフレーム更新周期（例えば通常システムで設定されているフレーム更新時間）よりも前に終了した場合でも、所定のフレーム更新周期の到来をまって表示させる。
【００１９】
従って、画像表示サイクルが早くなりすぎることを防止することができる。
【００２０】
（３）また本発明は、画像生成を行うシステムであって、
各フレームでの予測処理負荷を演算し、当該予測処理負荷に基づき各フレームにおける予測フレーム更新レートを決定する予測フレーム更新レート決定処理部と、
前記予測フレーム更新レートに基づき対応するフレームのシミュレーション単位時間を決定するシミュレーション単位時間決定部と、
前記予測フレーム更新レートに基づき、各フレームのフレーム更新時間を決定するフレーム更新時間を決定部と、
操作部からの入力データを受け取る入力データ取得部と、
操作部からの入力データに基づき、決定された前記シミュレーション単位時間における仮想３次元空間内に存在する事物の時間的な変化についてのシミュレーション演算をおこない、前記シミュレーション演算の結果に基づき、各フレームにおける仮想３次元空間におけるオブジェクトの配置情報及びゲームパラメータの少なくとも一方を演算するシミュレーション演算部と、
前記シミュレーション演算の結果に基づき得られたオブジェクトの配置情報及びゲームパラメータの少なくとも一方に基づき、仮想３次元空間を仮想カメラから見た各フレームの画像を生成し描画バッファに描画する画像生成部と、
決定された各フレームのフレーム更新時間に基づき、描画バッファに描画されている各フレームの画像の表示許可タイミングを決定し、当該表示許可タイミングで描画バッファに描画されている各フレームの画像を表示部に出力する表示許可を与える表示許可指示部と、
を含む事を特徴とする。
【００２１】
また本発明に係るプログラムは、コンピュータにより実行可能なプログラム（情報記憶媒体又は搬送波に具現化されるプログラム）であって、上記各処理部としてコンピュータを機能させることを特徴とする。また本発明に係る情報記憶媒体は、コンピュータにより読み取り可能（使用可能）な情報記憶媒体であって、上記処理部としてコンピュータを機能させるためのプログラムを含むことを特徴としている。また本発明にかかる画像生成方法は、上記各処理部の処理を行うステップを含むことを特徴とする。
【００２２】
各フレームの予測処理負荷とは、各フレームの画像が描画されるまでの処理（シミュレーション処理と画像生成処理を含む）負荷であり、例えばゲームの画像を生成する場合であれば、各フレームにおける表示物の数（画面内に表示されるもの）、使用するポリゴン数（表示されない物も含む）、シミュレーション演算の対象となる移動体又はオブジェクトの数（出走台数）、ゲームイベントの内容、プレーヤ移動体の位置等に応じて各フレームの画像が描画されるまでの処理負荷が異なってくる。
【００２３】
各フレームの更新時間とは第ｎのフレームの画像が表示されてから第ｎ＋１のフレームの画像が表示されるまでの時間である。例えば第ｎのフレームの画像を表示部に出力する表示許可が出てから、第ｎ＋１のフレームの画像を表示部に出力する表示許可が出るまでの時間を各フレームの更新時間としてもよい。
【００２４】
一般に動画像を生成する画像生成システムでは、ゲーム時刻ｔ０，ｔ１、ｔ２（例えば１／６０秒毎）における仮想３次元空間の状態のシミュレーション演算を行い、ゲーム時刻ｔ０，ｔ１、ｔ２（例えば１／６０秒毎）における仮想３次元空間の画像を生成する。このような場合に第ｎ回のシミュレーション演算の対象となったゲーム時刻から第ｎ＋１回のシミュレーション演算の対象となったゲーム時刻までの時間がシミュレーション単位時間である。
【００２５】
仮想３次元空間内に存在する事物の時間的な変化とは、例えばオブジェクトの位置や移動距離、速度、加速度、各速度、モーション等の時間的な変化や、また例えば、ラップタイムや時間の積算で演算される量（例えばダメージ量）の時間的な変化や仮想３次元空間内に存在する事物に影響を与えるパラメータ（時間の関数）等である。
【００２６】
シミュレーション演算とは、例えば運動方程式やエネルギー保存の法則やその他の現実世界の物理法則を用いて、現実世界の物理現象をシミュレーションするための物理値（仮想３次元空間内のオブジェクトの位置、速度、角速度、加速度、角加速度、移動距離、回転）の演算処理や単位時間応じたモーション補完処理やシミュレーション時間の積算処理ややパラメータやラップタイムや時間の積算で演算される量（例えばダメージ量）の演算処理等である。
【００２７】
本発明によればリアルタイムに各フレームの処理負荷を予測して予測フレーム更新レートを決定し、それに応じて各フレームのフレーム更新時間及び対応するフレームのシミュレーション単位時間を決定する。
【００２８】
従って各フレームの予測処理負荷が高い場合には各フレームのフレーム更新時間及び対応するフレームのシミュレーション単位時間を延長する処理を行う。
【００２９】
ここにおいて第ｎ番目のフレーム更新周期については第ｎ番目のフレーム予測処理負荷に基づき決定する。またシミュレーション単位時間については、例えば第ｎ番目のフレーム予測処理負荷に基づき第ｎ番目のシミュレーション単位時間を求める場合でもよいし、第ｎ番目のフレーム予測処理負荷に基づき第ｎ＋ｍ番目（ｍ＝±１，±２、・・）のシミュレーション単位時間を求める場合でもよい。
【００３０】
本発明によれば、各フレーム予測処理負荷が高い場合には各フレーム更新時間が延長されるので、フレーム更新時間内に描画処理が終わらない確率が非常に少なくなる。従って画像が描画されるまでの時間（シミュレーション演算と画像生成処理時間を含む）が所定の時間（例えば通常システムで設定されているフレーム更新時間）をオーバーしてもほぼかならず各フレームの画像が出力されるので、更新周期を一つとばしにする場合に比べてみた目がなめらかな映像を生成する事ができる。
【００３１】
また本発明によれば予測フレーム更新レートに応じて対応するフレームのシミュレーション単位時間を決定して、決定された前記シミュレーション単位時間における仮想３次元空間内に存在する事物の時間的な変化についてのシミュレーション演算を行うので、フレーム更新周期と前記シミュレーション単位時間との同期をとることができ、画像の遅れや早送り等の不具合の発生も防止することができる。
【００３２】
（４）また本発明に係る画像生成システム、プログラム、情報記憶媒体及び画像生成方法は、
前記予測フレーム更新レート決定部は、
各フレームにおける表示物の数、オブジェクトに使用されているプリミティブ数、各フレームにおいてシミュレーション演算の対象となるオブジェクト数、各フレームで発生するゲームイベントの内容、各フレームにおけるプレーヤ移動体の位置を示す情報の少なくとも１つの情報に基づき、各フレームの予測フレームレートを演算する事を特徴とする。
【００３３】
各フレームにおける表示物の数とは、画像生成の結果表示対象となるオブジェクトの数である。各フレームにおける表示物の数が増えれば画像生成にかかる処理負荷等が増大する可能性が高い。
【００３４】
またオブジェクトに使用されているプリミティブ数とは、表示されるか否か似関わらず、仮想３次元空間内に存在するオブジェクトに使用されているプリミティブ数（ポリゴン数、頂点数等）である。オブジェクトに使用されているプリミティブ数が増加すると、透視投影変換等の３次元演算やレンダリング演算処理負荷等が増加する可能性が高い。
【００３５】
また各フレームにおいてシミュレーション演算の対象となるオブジェクト数とは、例えば移動体オブジェクト等である。各フレームにおいてシミュレーション演算の対象となるオブジェクト数が増えるとオブジェクトの位置演算負荷等が増加する可能性が高い。
【００３６】
各フレームで発生するゲームイベントの内容とは、例えば爆発とか、衝突とかのゲーム上発生するイベントである。各フレームにおいてかかるゲーム上のイベントが発生すると、シミュレーション演算負荷や画像処理演算負荷等が増加する可能性が高い。
【００３７】
各フレームにおけるプレーヤ移動体の位置を示す情報とは位置を示す座標値でもよいし、プレーヤ移動体の位置するエリアやブロックやステージ等をしめす情報でもよい。プレーヤ移動体の位置によって、画像の背景や移動等のシミュレーション演算の内容が変わってくるので処理負荷も変わってくる。
【００３８】
（５）また本発明は、画像生成を行うシステムであって、
操作部からの入力データを受け取る入力データ取得部と、
操作部からの入力データに基づき、所定のシミュレーション単位時間における仮想３次元空間内に存在する事物の時間的な変化についてのシミュレーション演算をおこない、前記シミュレーション演算の結果に基づき、各フレームにおける仮想３次元空間におけるオブジェクトの配置情報及びゲームパラメータの少なくとも一方を演算するシミュレーション演算部と、
前記シミュレーション演算の結果に基づき得られたオブジェクトの配置情報及びゲームパラメータの少なくとも一方に基づき、仮想３次元空間を仮想カメラから見た各フレームの画像を生成し描画バッファに描画する画像生成部と、
各フレームの画像の描画バッファへの描画終了を検出する描画終了検出部と、  描画終了検出後に描画バッファに描画されている各フレームの画像を表示部に出力する表示許可を与える表示許可指示部と、
を含む事を特徴とする。
【００３９】
また本発明に係るプログラムは、コンピュータにより実行可能なプログラム（情報記憶媒体又は搬送波に具現化されるプログラム）であって、上記各処理部としてコンピュータを機能させることを特徴とする。また本発明に係る情報記憶媒体は、コンピュータにより読み取り可能（使用可能）な情報記憶媒体であって、上記処理部としてコンピュータを機能させるためのプログラムを含むことを特徴としている。また本発明にかかる画像生成方法は、上記各処理部の処理を行うステップを含むことを特徴とする。
【００４０】
一般に動画像を生成する画像生成システムでは、ゲーム時刻ｔ０，ｔ１、ｔ２（例えば１／６０秒毎）における仮想３次元空間の状態のシミュレーション演算を行い、ゲーム時刻ｔ０，ｔ１、ｔ２（例えば１／６０秒毎）における仮想３次元空間の画像を生成する。このような場合に第ｎ回のシミュレーション演算の対象となったゲーム時刻から第ｎ＋１回のシミュレーション演算の対象となったゲーム時刻までの時間がシミュレーション単位時間である。
【００４１】
仮想３次元空間内に存在する事物の時間的な変化とは、例えばオブジェクトの位置や移動距離、速度、加速度、各速度、モーション等の時間的な変化や、また例えば、ラップタイムや時間の積算で演算される量（例えばダメージ量）の時間的な変化や仮想３次元空間内に存在する事物に影響を与えるパラメータ（時間の関数）等である。
【００４２】
シミュレーション演算とは、例えば運動方程式やエネルギー保存の法則やその他の現実世界の物理法則を用いて、現実世界の物理現象をシミュレーションするための物理値（仮想３次元空間内のオブジェクトの位置、速度、角速度、加速度、角加速度、移動距離、回転）の演算処理や単位時間応じたモーション補完処理やシミュレーション時間の積算処理やパラメータやラップタイムや時間の積算で演算される量（例えばダメージ量）の演算処理等である。
【００４３】
各フレームの画像の描画バッファへの描画終了の検出は、例えば描画用プログラムの最後（描画処理の最後の命令の後）に描画終了を通知するための描画終了通知命令を設定して置くき、当該描画終了通知命令の実行を検出すること等により実現することができる。
【００４４】
本発明によれば、画終了検出後に描画バッファに描画されている各フレームの画像を表示部に出力する表示許可を与えるので、所与のフレームの画像が描画されるまでの時間が伸びた場合にはそれに応じて所与の画像のフレーム更新周期（前回の画像が表示されてから所与の画像が表示されるまでの時間）が伸びる。従って画像が描画されるまでの時間（シミュレーション演算と画像生成処理時間を含む）が所定の時間（例えば通常システムで設定されているフレーム更新時間）をオーバーしてもかならず各フレームの画像が出力されるので、更新周期を一つとばしにする場合に比べてみた目がなめらかな映像を生成する事ができる。
【００４５】
（６）また本発明に係る画像生成システム、プログラム、情報記憶媒体及び画像生成方法は、
前記表示許可指示部は、
各フレームの描画バッファへの描画終了が所定のフレーム更新周期の到来より前に検出した場合には、所定のフレーム更新周期の到来をまって表示許可を与えることを特徴とする。
【００４６】
所定のフレーム更新周期とは、例えば通常規定されているフレーム更新周期（例えば１／６０秒毎）等をもちいてもよい。
【００４７】
本発明によれば、画像の描画が所定のフレーム更新周期（例えば通常システムで設定されているフレーム更新時間）よりも前に終了した場合でも、所定のフレーム更新周期の到来をまって表示させる。
【００４８】
従って、画像表示サイクルが早くなりすぎることを防止することができる。
【発明を実施するための最良の形態】
【００４９】
以下、本発明の好適な実施形態について図面を用いて説明する。
【００５０】
なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を何ら限定するものではない。また本実施形態で説明される構成の全てが本発明の解決手段として必須であるとは限らない。
【００５１】
１．  第１の実施の形態
図１に、第１の実施の形態の画像生成システム（例えばゲームシステム）の機能ブロック図の一例を示す。
【００５２】
なお同図において本実施形態は、少なくとも処理部１００を含めばよく（或いは処理部１００と記憶部１７０、或いは処理部１００と記憶部１７０と情報記憶媒体１８０を含めばよく）、それ以外のブロック（例えば操作部１６０、表示部１９０、音出力部１９２、携帯型情報記憶装置１９４、通信部１９６）については、任意の構成要素とすることができる。
【００５３】
ここで処理部１００は、システム全体の制御、システム内の各ブロックへの命令の指示、ゲーム処理、画像処理、又は音処理などの各種の処理を行うものであり、その機能は、各種プロセッサ（ＣＰＵ、ＤＳＰ等）、或いはＡＳＩＣ（ゲートアレイ等）などのハードウェアや、所与のプログラム（ゲームプログラム）により実現できる。
【００５４】
操作部１６０は、プレーヤが操作データを入力するためのものであり、その機能は、レバー、ボタン、筐体などのハードウェアにより実現できる。
【００５５】
記憶部１７０は、メインメモリ（主記憶部等）１７２やフレームバッファ（描画バッファ等）１７４等を含み、処理部１００や通信部１９６などのワーク領域となるもので、その機能はＲＡＭなどのハードウェアにより実現できる。
【００５６】
情報記憶媒体（コンピュータにより使用可能な記憶媒体）１８０は、プログラムやデータなどの情報を格納するものであり、その機能は、光ディスク（ＣＤ、ＤＶＤ）、光磁気ディスク（ＭＯ）、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ（ＲＯＭ）などのハードウェアにより実現できる。処理部１００は、この情報記憶媒体１８０に格納される情報に基づいて本発明（本実施形態）の種々の処理を行う。即ち情報記憶媒体１８０には、本発明（本実施形態）の手段（特に処理部１００に含まれるブロック）を実行するための情報（プログラム或いはデータ）が格納される。
【００５７】
なお、情報記憶媒体１８０に格納される情報の一部又は全部は、システムへの電源投入時等に記憶部１７０に転送されることになる。また情報記憶媒体１８０に記憶される情報は、本発明の処理を行うためのプログラム、画像データ、音データ、表示物の形状データ、テーブルデータ、リストデータ、本発明の処理を指示するための情報、その指示に従って処理を行うための情報等の少なくとも１つを含むものである。
【００５８】
表示部１９０は、本実施形態により生成された画像を出力するものであり、その機能は、ＬＣＤ、或いはＨＭＤ（ヘッドマウントディスプレイ）などのハードウェアにより実現できる。なお表示部のフレーム更新レートはホストからも指示によって変更可能に構成されている。
【００５９】
音出力部１９２は、本実施形態により生成された音を出力するものであり、その機能は、スピーカなどのハードウェアにより実現できる。
【００６０】
携帯型情報記憶装置１９４は、プレーヤの個人データやセーブデータなどが記憶されるものであり、この携帯型情報記憶装置１９４としては、メモリカードや携帯型ゲーム装置などを考えることができる。
【００６１】
通信部１９６は、外部（例えばホスト装置や他の画像生成システム）との間で通信を行うための各種の制御を行うものであり、その機能は、各種プロセッサ、或いは通信用ＡＳＩＣなどのハードウェアや、プログラムなどにより実現できる。
【００６２】
なお本発明（本実施形態）の手段を実行するためのプログラム或いはデータは、ホスト装置（サーバ）が有する情報記憶媒体からネットワーク及び通信部１９６を介して情報記憶媒体１８０に配信するようにしてもよい。このようなホスト装置（サーバ）の情報記憶媒体の使用も本発明の範囲内に含まれる。
【００６３】
処理部１００は、ゲーム処理部１１０、画像生成部１３０、音生成部１５０を含む。
【００６４】
ここでゲーム処理部１１０は、コイン（代価）の受け付け処理、各種モードの設定処理、ゲームの進行処理、選択画面の設定処理、オブジェクト（１又は複数のプリミティブ面）の位置や回転角度（Ｘ、Ｙ又はＺ軸回りの回転角度）を求める処理、オブジェクトを動作させる処理（モーション処理）、視点の位置（仮想カメラの位置）や視線角度（仮想カメラの回転角度）を求める処理、マップオブジェクトなどのオブジェクトをオブジェクト空間へ配置する処理、ヒットチェック処理、ゲーム結果（成果、成績）を演算する処理、複数のプレーヤが共通のゲーム空間でプレイするための処理、或いはゲームオーバ処理などの種々のゲーム処理を、操作部１６０からの操作データや、携帯型情報記憶装置１９４からの個人データ、保存データや、ゲームプログラムなどに基づいて行う。
【００６５】
ゲーム処理部はシミュレーション演算処理部１２０、フレーム更新時間検出部１２２、シミュレーション単位時間決定部１２４、表示許可処理部１２６を含む。
【００６６】
フレーム更新時間検出部１２２は、各フレームの更新時間を検出する処理を行う。
【００６７】
シミュレーション単位時間決定部１２４は、前回又は所定回前のフレーム更新時間又は直前の所定期間における平均フレーム更新時間に基づき各フレームのシミュレーション単位時間を決定する処理を行う。
【００６８】
シミュレーション演算処理部１２０は、操作部からの入力データを受け取り、操作部からの入力データに基づき、決定された前記シミュレーション単位時間における仮想３次元空間内に存在する事物の時間的な変化についてのシミュレーション演算をおこない、前記シミュレーション演算の結果に基づき、各フレームにおける仮想３次元空間におけるオブジェクトの配置情報及びゲームパラメータの少なくとも一方を演算する処理を行う。
【００６９】
表示許可処理部１２６は、各フレームの画像の描画バッファへの描画終了を検出し、描画終了検出後に描画バッファに描画されている各フレームの画像を表示部に出力する表示許可を与える処理を行う。
【００７０】
また表示許可指示部１２６は、各フレームの描画バッファへの描画終了が所定のフレーム更新周期の到来より前に検出した場合には、所定のフレーム更新周期の到来をまって表示許可を与えるようにしてもよい。
【００７１】
画像生成部１３０は、ゲーム処理部１１０からの指示等にしたがって各種の画像処理を行い、例えばオブジェクト空間内で仮想カメラ（視点）から見える画像を生成して、表示部１９０に出力する。
【００７２】
画像生成部１３０は、前記シミュレーション演算の結果に基づき得られたオブジェクトの配置情報及びゲームパラメータの少なくとも一方に基づき、仮想３次元空間を仮想カメラから見た各フレームの画像を生成し描画バッファに描画する処理を行う。
【００７３】
音生成部１５０は、ゲーム処理部１１０からの指示等にしたがって各種の音処理を行い、ＢＧＭ、効果音、又は音声などの音を生成し、音出力部１９２に出力する。
【００７４】
なお、ゲーム処理部１１０、仮想オブジェクト配置処理部１２０、画像生成部１３０、音生成部１５０の機能は、その全てをハードウェアにより実現してもよいし、その全てをプログラムにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。
【００７５】
画像生成部１３０は、ジオメトリ処理部（３次元演算部）１３２、描画部（レンダリング部）１４０を含む。
【００７６】
ここで、ジオメトリ処理部１３２は、座標変換、クリッピング処理、透視変換、或いは光源計算などの種々のジオメトリ処理（３次元演算）を行う。そして、本実施形態では、ジオメトリ処理後（透視変換後）のオブジェクトデータ（オブジェクトの頂点座標、頂点テクスチャ座標、或いは輝度データ等）は、記憶部１７０の主記憶部１７２に格納されて、保存される。
【００７７】
描画部１４０は、ジオメトリ処理後（透視変換後）のオブジェクトデータと、記憶部１７０に記憶されるテクスチャとに基づいて、オブジェクトを描画バッファ１７４に描画する。これにより、オブジェクトが移動するオブジェクト空間において、仮想カメラ（視点）から見える画像が描画（生成）されるようになる。
【００７８】
なお、本実施形態の画像生成システムは、１人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、このようなシングルプレーヤモードのみならず、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。
【００７９】
また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、１つの端末を用いて生成してもよいし、ネットワーク（伝送ライン、通信回線）などで接続された複数の端末を用いて生成してもよい。
【００８０】
次に第１の実施の形態の特徴と処理を図面を用いて説明する。
【００８１】
図２は、従来のフレーム更新について説明するための図である。
【００８２】
６３０−０、６３０−１、・・・は各フレーム（時系列に出力されるフレーム０，フレーム１，・・・）の表示画像６３０を示しており、それぞれゲーム時刻ｔ０、ｔ１、・・における仮想３次元空間（ゲーム空間）の画像である。
【００８３】
また６２０はフレーム更新周期を表している。ｆ０，ｆ１，・・は各フレームｆ０，ｆ１，・・のフレーム表示タイミングを表しており、Δｆ１，Δｆ２、・・・はそれぞれｆ０〜ｆ１、ｆ１〜ｆ２、・・・のフレーム更新時間となる。従来例では全フレームにおいて一定間隔のフレーム更新周期を有している。
【００８４】
６００は第１の実施の形態の仮想３次元空間（ゲーム空間）における経過時間を表しており、ｔ０，ｔ１，ｔ２、・・・は仮想３次元空間（ゲーム空間）におけるゲーム時刻である。Δｔは物理演算のシミュレーション周期を表しており、全フレームにおいて一定間隔のシミュレーション周期を有している。
【００８５】
ここでフレーム更新タイミングｆ０におけるフレーム０の表示画像６３０−０は、ゲーム時刻ｔ０における仮想３次元空間の画像である。
【００８６】
またフレーム更新タイミングｆ１におけるフレーム１の表示画像６３０−１は、ゲーム時刻ｔ１における仮想３次元空間の画像である。すなわちゲーム時刻ｔ０における仮想３次元空間の状態に対してゲーム時刻ｔ０〜ゲーム時刻ｔ１の間においてなされた操作部からの入力によるオブジェクト等の時間的な変化を反映した画像である。
【００８７】
またフレーム更新タイミングｆ２におけるフレーム２の表示画像６３０−２は、ゲーム時刻ｔ２における仮想３次元空間の画像である。すなわちゲーム時刻ｔ１における仮想３次元空間の状態に対してゲーム時刻ｔ１〜ゲーム時刻ｔ２の間においてなされた操作部からの入力によるオブジェクト等の時間的な変化を反映した画像である。
【００８８】
従来は垂直同期によって画像を表示部に出力していたので、一定間隔（例えば１／６０秒毎）にフレーム更新周期が設定されていた。そしてそれに合わせて仮想３次元空間（ゲーム空間）における物理演算のシミュレーション周期も設定することにより、ゲーム時刻と同期のとれた画像が表示されていた。
【００８９】
ここでＢＴｎは経過時間Δｔで行うシミュレーション演算の処理時間と描画バッファに描画終了するまでの画像生成演算にかかる時間の合成であり、ＢＴ０、ＢＴ１、・・・はそれぞれ表示画像６３０−０，６３０−１、・・についての描画終了までに要する時間（シミュレーション演算と描画バッファに描画終了するまでの画像生成演算にかかる時間の合計）を示している。
【００９０】
従来は例えば６４０、６５０に示すように第１の描画バッファと第２の描画バッファを設け、各フレームの画像をこれらの二つの描画バッファに交互に描画していた。そして一方の描画バッファに描画しながら、平行して他方の描画バッファに描画された画像を表示部に出力する。
【００９１】
このように従来は一定間隔のフレーム更新周期と、これに同期したシミュレーション周期を有し、第１の描画バッファと第２の描画バッファに交互に描画し、フレーム更新周期が到来すると第１の描画バッファの画像と第２の描画バッファの画像を交互に表示部に出力していた。
【００９２】
ＢＴ０、ＢＴ１のように、フレームの描画終了までに要する時間がシミュレーション周期よりも短い場合には、は各フレームの表示タイミングｆ０，ｆ１，・・までに当該フレームの画像が描画バッファに描画済みとなっている。
【００９３】
ところが、ＢＴ２のように、フレームの描画終了までに要する時間がシミュレーション周期よりも長い場合にはフレーム２の表示タイミングｆ２において当該フレームの画像が描画バッファに描画されていない。したがってフレーム２の表示タイミングｆ２では、フレーム１の表示画像のままとなる（６３０−２参照）、  ＢＴ２はΔｔ＋αの時間をかけてΔｔ分の計算を終えるため、次のフレーム表示タイミングｆ３においては、Ｇ２の画像（Ｇ１の時からΔｔ分進んだ画像）が表示さる（６３０−３参照）。そしてｆ４においてはＧ４が表示される。
【００９４】
この手法によれば、各フレームの画像の描画までの時間がフレーム更新周期を少しでも過ぎると、画面の更新は次のフレーム更新周期まで待たなければならない（例えばＧ１からＧ２に更新されるの２フレーム後になる）ので、画面が更新されるまでの時間が２倍かかってしまい、画像の品質が低下するという問題点があった。
【００９５】
図３は、第１の実施の形態のフレーム更新について説明するための図である。
【００９６】
３３０−０、３３０−１、・・・は各フレーム（時系列に出力されるフレーム０，フレーム１，・・・）の表示画像３３０を示しており、それぞれゲーム時刻ｔ０、ｔ１、・・における仮想３次元空間（ゲーム空間）の画像である。
【００９７】
また３２０はフレーム更新周期を表している。ｆ０，ｆ１，・・は各フレームｆ０，ｆ１，・・のフレーム表示タイミングを表しており、Δｆ１，Δｆ２、・・・はそれぞれｆ０〜ｆ１、ｆ１〜ｆ２、・・・のフレーム更新時間となる。第１の実施の形態では各フレームの更新周期は一定とは限らず、実際の描画終了までに要する時間が規定のフレーム更新周期より長い場合には、描画が終了してからフレームが更新される事になる。
【００９８】
３００は第１の実施の形態の仮想３次元空間（ゲーム空間）における物理演算のシミュレーション周期を表している。ｔ０，ｔ１，ｔ２、・・・は仮想３次元空間（ゲーム空間）におけるゲーム時刻を表しており、Δｔ１（ｔ０〜ｔ１までの時間）、Δｔ２（ｔ１〜ｔ２までの時間）、・・・はそれぞれ、フレームｆ１，ｆ２、・・・に対応したシミュレーション単位時間である。
【００９９】
ここでフレーム更新タイミングｆ０における表示画像３３０−０は、ゲーム時刻ｔ０における仮想３次元空間の画像である。
【０１００】
またフレーム更新タイミングｆ１における表示画像３３０−１は、ゲーム時刻ｔ１における仮想３次元空間の画像である。すなわちゲーム時刻ｔ０における仮想３次元空間の状態に対してゲーム時刻ｔ０〜ゲーム時刻ｔ１の間（シミュレーション単位時間Δｔ１）においてなされた操作部からの入力によるオブジェクト等の時間的な変化を反映した画像である。
【０１０１】
またフレーム更新タイミングｆ２における表示画像３３０−２は、ゲーム時刻ｔ２における仮想３次元空間の画像である。すなわちゲーム時刻ｔ１における仮想３次元空間の状態に対してゲーム時刻ｔ１〜ゲーム時刻ｔ２の間（シミュレーション単位時間Δｔ２）においてなされた操作部からの入力によるオブジェクト等の時間的な変化を反映した画像である。
【０１０２】
ここでＢＴ０、ＢＴ１、・・・はそれぞれ表示画像３３０−０，３３０−１、・・についての描画終了までに要する時間（シミュレーション演算と描画バッファに描画終了するまでの画像生成演算にかかる時間の合計）を示している。
【０１０３】
第１の実施の形態は３４０、３５０に示すように第１の描画バッファと第２の描画バッファを設け、各フレームの画像をこれらの二つの描画バッファに交互に描画する。そして一方の描画バッファに描画しながら、平行して他方の描画バッファに描画された画像を表示部に出力する。
【０１０４】
第１の実施の形態では、各フレームのシミュレーション単位時間は、前回フレームのフレーム更新までの時間（前回フレームの描画終了までに要する時間）に応じて変化する。
【０１０５】
例えばＢＴ０、ＢＴ１、ＢＴ３，ＢＴ４のように、規定フレーム更新周期よりもフレームの描画終了までに要する時間が短い場合には、規定フレーム更新周期の表示タイミングｆ０，ｆ１，・・で描画許可が出力される。
【０１０６】
ところが、ＢＴ２のように、フレームの描画終了までに要する時間が規定フレーム更新周期よりも長い場合には、描画終了をまって描画許可が出力される（３２２参照）。すなわち本来ｆ２’のタイミングで出力されるべき表示画像３３０−２が３２２だけおくれてｆ２で出力される。この３２２のおくれを次のフレームでとりかえすために、次のフレームのシミュレーション単位時間Δｔ３が３２２だけ長くなる。これによって次のフレーム更新周期ｆ３の到来時には、表示画像のおくれを取り戻すことができる。
【０１０７】
このように第１の実施の形態によれば、処理がオーバーした分に応じてフレーム更新周期が延びるので、従来のように更新周期を一つとばしにする場合に比べて映像のみた目がなめらかになる。しかもフレーム更新周期が伸びたことによる画像の遅れは、次のフレームでシミュレーション単位時間を延ばすことによりとりもどすことができるため、画像の遅れや早送り等の不具合の発生も防止することができる。
【０１０８】
図４は、第１の実施の形態の処理の流れについて説明するためのフローチャート図である。
【０１０９】
第１の実施の形態では各フレーム毎に以下の処理を繰り返す。
【０１１０】
まず第ｎ番目のフレームに対応したシミュレーション単位時間における操作部からの入力情報を取得する（ステップＳ１０）。例えば図３において今回生成するフレームがｆ３である場合には、ゲーム時刻ｔ３における画像であるためシミュレーション単位時間Δｔ３における操作部からの入力情報を取得する。
【０１１１】
前回フレームの更新時間を検出する（ステップＳ２０）。
【０１１２】
次に前回のフレーム更新時間に基づき、今回フレームのシミュレーション単位時間を補正し、操作部からの入力データに基づき、補正された前記シミュレーション単位時間における仮想３次元空間内に存在する事物の時間的な変化についての物理シミュレーション演算をおこなう（ステップＳ３０）。
【０１１３】
次に前記物理シミュレーション演算の結果に基づき、仮想３次元空間にオブジェクトを配置して、仮想３次元空間の画像生成を行い、描画バッファに描画する（ステップＳ４０）。
【０１１４】
そして規定フレーム更新周期に達したら描画バッファの画像を表示部に出力する許可を与える（ステップＳ５０、Ｓ６０）。
【０１１５】
２．  第２の実施の形態
図５に、第２の実施の形態の画像生成システム（例えばゲームシステム）の機能ブロック図の一例を示す。
【０１１６】
なお同図において本実施形態は、少なくとも処理部２００を含めばよく（或いは処理部２００と記憶部２７０、或いは処理部２００と記憶部２７０と情報記憶媒体２８０を含めばよく）、それ以外のブロック（例えば操作部２６０、表示部２９０、音出力部２９２、携帯型情報記憶装置２９４、通信部２９６）については、任意の構成要素とすることができる。
【０１１７】
ここで処理部２００は、システム全体の制御、システム内の各ブロックへの命令の指示、ゲーム処理、画像処理、又は音処理などの各種の処理を行うものであり、その機能は、各種プロセッサ（ＣＰＵ、ＤＳＰ等）、或いはＡＳＩＣ（ゲートアレイ等）などのハードウェアや、所与のプログラム（ゲームプログラム）により実現できる。
【０１１８】
操作部２６０は、プレーヤが操作データを入力するためのものであり、その機能は、レバー、ボタン、筐体などのハードウェアにより実現できる。
【０１１９】
記憶部２７０は、メインメモリ（主記憶部等）２７２やフレームバッファ（描画バッファ等）２７４等を含み、処理部２００や通信部２９６などのワーク領域となるもので、その機能はＲＡＭなどのハードウェアにより実現できる。
【０１２０】
情報記憶媒体（コンピュータにより使用可能な記憶媒体）２８０は、プログラムやデータなどの情報を格納するものであり、その機能は、光ディスク（ＣＤ、ＤＶＤ）、光磁気ディスク（ＭＯ）、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ（ＲＯＭ）などのハードウェアにより実現できる。処理部２００は、この情報記憶媒体２８０に格納される情報に基づいて本発明（本実施形態）の種々の処理を行う。即ち情報記憶媒体２８０には、本発明（本実施形態）の手段（特に処理部２００に含まれるブロック）を実行するための情報（プログラム或いはデータ）が格納される。
【０１２１】
なお、情報記憶媒体２８０に格納される情報の一部又は全部は、システムへの電源投入時等に記憶部２７０に転送されることになる。また情報記憶媒体２８０に記憶される情報は、本発明の処理を行うためのプログラム、画像データ、音データ、表示物の形状データ、テーブルデータ、リストデータ、本発明の処理を指示するための情報、その指示に従って処理を行うための情報等の少なくとも１つを含むものである。
【０１２２】
表示部２９０は、本実施形態により生成された画像を出力するものであり、その機能は、ＬＣＤ、或いはＨＭＤ（ヘッドマウントディスプレイ）などのハードウェアにより実現できる。なお表示部のフレーム更新レートはホストからも指示によって変更可能に構成されている。
【０１２３】
音出力部２９２は、本実施形態により生成された音を出力するものであり、その機能は、スピーカなどのハードウェアにより実現できる。
【０１２４】
携帯型情報記憶装置２９４は、プレーヤの個人データやセーブデータなどが記憶されるものであり、この携帯型情報記憶装置２９４としては、メモリカードや携帯型ゲーム装置などを考えることができる。
【０１２５】
通信部２９６は、外部（例えばホスト装置や他の画像生成システム）との間で通信を行うための各種の制御を行うものであり、その機能は、各種プロセッサ、或いは通信用ＡＳＩＣなどのハードウェアや、プログラムなどにより実現できる。
【０１２６】
なお本発明（本実施形態）の手段を実行するためのプログラム或いはデータは、ホスト装置（サーバ）が有する情報記憶媒体からネットワーク及び通信部１９６を介して情報記憶媒体２８０に配信するようにしてもよい。このようなホスト装置（サーバ）の情報記憶媒体の使用も本発明の範囲内に含まれる。
【０１２７】
処理部２００は、ゲーム処理部２１０、画像生成部２３０、音生成部２５０を含む。
【０１２８】
ここでゲーム処理部２１０は、コイン（代価）の受け付け処理、各種モードの設定処理、ゲームの進行処理、選択画面の設定処理、オブジェクト（１又は複数のプリミティブ面）の位置や回転角度（Ｘ、Ｙ又はＺ軸回りの回転角度）を求める処理、オブジェクトを動作させる処理（モーション処理）、視点の位置（仮想カメラの位置）や視線角度（仮想カメラの回転角度）を求める処理、マップオブジェクトなどのオブジェクトをオブジェクト空間へ配置する処理、ヒットチェック処理、ゲーム結果（成果、成績）を演算する処理、複数のプレーヤが共通のゲーム空間でプレイするための処理、或いはゲームオーバ処理などの種々のゲーム処理を、操作部２６０からの操作データや、携帯型情報記憶装置２９４からの個人データ、保存データや、ゲームプログラムなどに基づいて行う。
【０１２９】
ゲーム処理部はシミュレーション演算処理部２２０、予測フレームレート決定処理部２２２，シミュレーション単位時間決定部２２４、フレーム更新時間決定部２２６、表示許可処理部２２８を含む。
【０１３０】
予測フレームレート決定処理部２２２は、各フレームでの予測処理負荷を演算し、当該予測処理負荷に基づき各フレームにおける予測フレーム更新レートを決定する処理を行う。
【０１３１】
また予測フレーム更新レート決定処理部２２２は、各フレームにおける表示物の数、オブジェクトに使用されているプリミティブ数、各フレームにおいてシミュレーション演算の対象となるオブジェクト数、各フレームで発生するゲームイベントの内容、各フレームにおけるプレーヤ移動体の位置を示す情報の少なくとも１つの情報に基づき、各フレームの予測フレームレートを演算するようにしてもよい。
【０１３２】
シミュレーション単位時間決定部２２４は、前記予測フレーム更新レートに基づき対応するフレームのシミュレーション単位時間を決定する処理を行う。
【０１３３】
フレーム更新時間決定部２２６は、前記予測フレーム更新レートに基づき、各フレームのフレーム更新時間を決定する処理を行う。
【０１３４】
シミュレーション演算処理部２２０は、操作部からの入力データを受け取り、操作部からの入力データに基づき、決定された前記シミュレーション単位時間における仮想３次元空間内に存在する事物の時間的な変化についてのシミュレーション演算をおこない、前記シミュレーション演算の結果に基づき、各フレームにおける仮想３次元空間におけるオブジェクトの配置情報及びゲームパラメータの少なくとも一方を演算する処理を行う。
【０１３５】
表示許可処理部２２６は、決定された各フレームのフレーム更新時間に基づき、描画バッファに描画されている各フレームの画像の表示許可タイミングを決定し、当該表示許可タイミングで描画バッファに描画されている各フレームの画像を表示部に出力する表示許可を与える処理を行う。
【０１３６】
画像生成部２３０は、ゲーム処理部２１０からの指示等にしたがって各種の画像処理を行い、例えばオブジェクト空間内で仮想カメラ（視点）から見える画像を生成して、表示部２９０に出力する。
【０１３７】
画像生成部２３０は前記シミュレーション演算の結果に基づき得られたオブジェクトの配置情報及びゲームパラメータの少なくとも一方に基づき、仮想３次元空間を仮想カメラから見た各フレームの画像を生成し描画バッファに描画する処理を行う。
【０１３８】
音生成部２５０は、ゲーム処理部２１０からの指示等にしたがって各種の音処理を行い、ＢＧＭ、効果音、又は音声などの音を生成し、音出力部１９２に出力する。
【０１３９】
なお、ゲーム処理部２１０、仮想オブジェクト配置処理部２２０、画像生成部２３０、音生成部２５０の機能は、その全てをハードウェアにより実現してもよいし、その全てをプログラムにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。
【０１４０】
画像生成部２３０は、ジオメトリ処理部（３次元演算部）２３２、描画部（レンダリング部）２４０を含む。
【０１４１】
ここで、ジオメトリ処理部２３２は、座標変換、クリッピング処理、透視変換、或いは光源計算などの種々のジオメトリ処理（３次元演算）を行う。そして、本実施形態では、ジオメトリ処理後（透視変換後）のオブジェクトデータ（オブジェクトの頂点座標、頂点テクスチャ座標、或いは輝度データ等）は、記憶部２７０の主記憶部２７２に格納されて、保存される。
【０１４２】
描画部２４０は、ジオメトリ処理後（透視変換後）のオブジェクトデータと、記憶部２７０に記憶されるテクスチャとに基づいて、オブジェクトを描画バッファ２７４に描画する。これにより、オブジェクトが移動するオブジェクト空間において、仮想カメラ（視点）から見える画像が描画（生成）されるようになる。
【０１４３】
なお、本実施形態の画像生成システムは、１人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、このようなシングルプレーヤモードのみならず、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。
【０１４４】
また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、１つの端末を用いて生成してもよいし、ネットワーク（伝送ライン、通信回線）などで接続された複数の端末を用いて生成してもよい。
【０１４５】
次に第２の実施の形態の特徴と処理を図面を用いて説明する。
【０１４６】
図６は、第２の実施の形態のフレーム更新について説明するための図である。
【０１４７】
４３０−０、４３０−１、・・・は各フレーム（時系列に出力されるフレーム０，フレーム１，・・・）の表示画像４３０を示しており、それぞれゲーム時刻ｔ０、ｔ１、・・における仮想３次元空間（ゲーム空間）の画像である。
【０１４８】
また４２０はフレーム更新周期を表している。ｆ０，ｆ１，・・は各フレームｆ０，ｆ１，・・のフレーム表示タイミングを表しており、Δｆ１，Δｆ２、・・・はそれぞれｆ０〜ｆ１、ｆ１〜ｆ２、・・・のフレーム更新時間となる。第１の実施の形態では各フレームの更新周期は一定とは限らず、実際の描画終了までに要する時間が規定のフレーム更新周期より長い場合には、描画が終了してからフレームが更新される事になる。
【０１４９】
４００は第２の実施の形態の仮想３次元空間（ゲーム空間）における物理演算のシミュレーション周期を表している。ｔ０，ｔ１，ｔ２、・・・は仮想３次元空間（ゲーム空間）におけるゲーム時刻を表しており、Δｔ１（ｔ０〜ｔ１までの時間）、Δｔ２（ｔ１〜ｔ２までの時間）、・・・はそれぞれ、フレームｆ１，ｆ２、・・・に対応したシミュレーション単位時間である。
【０１５０】
ここでフレーム更新タイミングｆ０における表示画像４３０−０は、ゲーム時刻ｔ０における仮想３次元空間の画像である。
【０１５１】
またフレーム更新タイミングｆ１における表示画像４３０−１は、ゲーム時刻ｔ１における仮想３次元空間の画像である。すなわちゲーム時刻ｔ０における仮想３次元空間の状態に対してゲーム時刻ｔ０〜ゲーム時刻ｔ１の間（シミュレーション単位時間Δｔ１）においてなされた操作部からの入力によるオブジェクト等の時間的な変化を反映した画像である。
【０１５２】
またフレーム更新タイミングｆ２における表示画像４３０−２は、ゲーム時刻ｔ２における仮想３次元空間の画像である。すなわちゲーム時刻ｔ１における仮想３次元空間の状態に対してゲーム時刻ｔ１〜ゲーム時刻ｔ２の間（シミュレーション単位時間Δｔ２）においてなされた操作部からの入力によるオブジェクト等の時間的な変化を反映した画像である。
【０１５３】
ここでＢＴ０、ＢＴ１、・・・はそれぞれ表示画像４３０−０，４３０−１、・・についての描画終了までに要する時間（シミュレーション演算と描画バッファに描画終了するまでの画像生成演算にかかる時間の合計）を示している。
【０１５４】
第２の実施の形態は４４０、４５０に示すように第１の描画バッファと第２の描画バッファを設け、各フレームの画像をこれらの二つの描画バッファに交互に描画する。そして一方の描画バッファに描画しながら、平行して他方の描画バッファに描画された画像を表示部に出力する。
【０１５５】
第２の実施の形態では、各フレームのシミュレーション単位時間及びフレーム更新周期は、各フレーム毎にリアルタイムに演算する予測フレーム更新レートに応じて変化する。
【０１５６】
ここにおいて予測フレーム更新レートは、各フレームにおける表示物の数（画面内に表示されるもの）、使用するポリゴン数（表示されない物も含む）、シミュレーション演算の対象となる移動体又はオブジェクトの数（出走台数）、ゲームイベントの内容、プレーヤ移動体の位置等の少なくとも１つの情報に基づき決定される。
【０１５７】
例えば予測フレーム更新レートが規定フレーム更新周期より短い場合には規定の更新周期をシミュレーション単位時間及びフレーム更新周期として採用し、予測フレーム更新レートが規定フレーム更新周期より長い場合には、予測フレーム更新レートをシミュレーション単位時間及びフレーム更新周期として採用してもよい。
【０１５８】
例えばＢＴ０、ＢＴ１、ＢＴ３，ＢＴ４の予測フレーム更新レートが、規定フレーム更新周期よりも短い場合には、規定フレーム更新周期と同様の周期で、シミュレーション単位時間Δｔ１、Δｔ２、Δｔ４、Δｔ５及び、フレーム更新周期ｆ１，ｆ３，ｆ４が設定される。
【０１５９】
そしてＢＴ２のように、予測フレーム更新レートが、規定フレーム更新周期よりも長い場合には、予測フレーム更新周期と同様の周期で、シミュレーション単位時間Δｔ３及び、フレーム更新周期ｆ２が設定される。
【０１６０】
このように第２の実施の形態によれば、リアルタイムに今回フレームの処理負荷を予測して予測フレーム更新レートを決定し、それに応じてシミュレーション単位時間及びフレーム更新周期を決定する。従って従来のように更新周期を一つとばしにする場合に比べて映像のみた目がなめらかになる。しかもフレーム更新周期とシミュレーション単位時間とが同期がとれるように設定するため、画像の遅れや早送り等の不具合の発生も防止することができる。
【０１６１】
図７は、第２の実施の形態の処理の流れについて説明するためのフローチャート図である。
【０１６２】
以下に示す処理例は第ｎ番目のフレーム予測処理負荷に基づき第ｎ番目のフレーム更新周期を求め、第ｎ番目のフレーム予測処理負荷に基づき第ｎ＋１番目のシミュレーション単位時間を求める場合のｎ＝２以上の場合である。
【０１６３】
まずのｎの初期設定（ｎ＝１）を行う（ステップＳ１１０）。
【０１６４】
第ｎ番目のフレーム予測処理負荷を求める（ステップＳ１２０）。
【０１６５】
第ｎ番目のフレーム予測処理負荷に基づき第ｎ番目のフレーム更新周期を求める（ステップＳ１３０）。
【０１６６】
第ｎ番目のフレーム予測処理負荷に基づき第ｎ＋１番目のシミュレーション単位時間を求める（ステップＳ１４０）。
【０１６７】
ｎをインクリメントする（ステップＳ１５０）。
【０１６８】
第ｎのシミュレーション単位時間における仮想３次元空間内に存在する事物の時間的な変化についての物理シミュレーション演算をおこなう（ステップＳ１７０）。
【０１６９】
物理シミュレーション演算の結果に基づき仮想３次元空間にオブジェクトを配置して、仮想３次元空間を仮想カメラから見た画像を生成し、描画バッファに描画する（ステップＳ１８０）。
【０１７０】
第ｎ番目のフレーム更新周期がきたか否か判断し、第ｎ番目のフレーム更新周期がきたら、描画バッファに描画された第ｎ番目のフレームの画像を表示部に出力する許可を与える（ステップＳ１９０、Ｓ２００）。
【０１７１】
そして処理が終了するまでステップＳ１２０〜Ｓ２１０の処理を繰り返す。
【０１７２】
３．  第３の実施の形態
次に第３の実施の形態について説明する。
【０１７３】
第３の実施の形態は、操作部からの入力データに基づき、所定のシミュレーション単位時間における仮想３次元空間内に存在する事物の時間的な変化についての物理シミュレーション演算をおこない、前記物理シミュレーション演算の結果得られた物理値に基づき、各フレームにおける仮想３次元空間におけるオブジェクトの配置情報及びゲームパラメータの少なくとも一方を演算し、各フレームにおけるオブジェクトの配置情報及びゲームパラメータの少なくとも一方に基づき仮想３次元空間にオブジェクトを配置し、仮想３次元空間を仮想カメラから見た今回フレームの画像を生成し、描画バッファに描画し、フレームの描画バッファへの描画終了を検出し、検出後に描画バッファに描画されている各フレームの画像を表示部に出力する表示許可を与える画像生成システムである。
【０１７４】
図８は、第３の実施の形態のフレーム更新について説明するための図である。
【０１７５】
５３０−０、５３０−１、・・・は各フレーム（時系列に出力されるフレーム０，フレーム１，・・・）の表示画像５３０を示している。
【０１７６】
また５２０はフレーム更新周期を表している。ｆ０，ｆ１，・・は各フレームｆ０，ｆ１，・・のフレーム表示タイミングを表しており、Δｆ１，Δｆ２、・・・はそれぞれｆ０〜ｆ１、ｆ１〜ｆ２、・・・のフレーム更新時間となる。第３の実施の形態では各フレームの更新周期は一定とは限らず、実際の描画終了までに要する時間が規定のフレーム更新周期より長い場合には、描画が終了してからフレームが更新される事になる。
【０１７７】
５００は第３の実施の形態の仮想３次元空間（ゲーム空間）における物理演算のシミュレーション周期を表しており、Δｔはシミュレーション単位時間である。
【０１７８】
ここでＢＴ０、ＢＴ１、・・・はそれぞれ表示画像５３０−０，５３０−１、・・についての描画終了までに要する時間（シミュレーション演算と描画バッファに描画終了するまでの画像生成演算にかかる時間の合計）を示している。
【０１７９】
第３の実施の形態は５４０、５５０に示すように第１の描画バッファと第２の描画バッファを設け、各フレームの画像をこれらの二つの描画バッファに交互に描画する。そして一方の描画バッファに描画しながら、平行して他方の描画バッファに描画された画像を表示部に出力する。
【０１８０】
第３の実施の形態では、各フレームのシミュレーション単位時間は一定の値をとり、フレーム更新周期は、各フレーム毎の描画終了までに要する時間（シミュレーション演算と描画バッファに描画終了するまでの画像生成演算にかかる時間の合計）に応じて変化する。
【０１８１】
例えば各フレーム毎の描画終了までに要する時間が規定フレーム更新周期より短い場合には規定の更新周期をフレーム更新周期として採用し、各フレーム毎の描画終了までに要する時間が規定フレーム更新周期より長い場合には、予測フレーム更新レートをフレーム更新周期として採用してもよい。
【０１８２】
例えばＢＴ０、ＢＴ１、ＢＴ３，ＢＴ４のように各フレーム毎の描画終了までに要する時間が、規定フレーム更新周期よりも短い場合には、規定フレーム更新周期と同様の周期で表示画像が出力される。すなわち、各フレームの描画バッファへの描画終了を規定フレーム更新周期の到来より前に検出した場合には、規定フレーム更新周期の到来をまって表示許可を与える。
【０１８３】
またＢＴ２のように、フレームの描画終了までに要する時間が、規定フレーム更新周期よりも長い場合には、フレームの描画バッファへの描画終了を検出後に描画バッファに描画されている各フレームの画像を表示部に出力する表示許可を与える。フレームの描画終了までに要する時間がΔｔより時間がかかた分（α参照）画面更新時間が遅れる事になる。
【０１８４】
このように第３の実施の形態によれば、各フレーム毎の描画終了までに要する時間に基づきフレーム更新周期を決定する。従って従来のように更新周期を一つとばしにする場合に比べて映像のみた目がなめらかになる。
【０１８５】
図９は、第３の実施の形態の処理の流れについて説明するためのフローチャート図である。
【０１８６】
第３の実施の形態では各フレーム毎に以下の処理を繰り返す。
【０１８７】
まず第ｎ番目のフレームに対応したシミュレーション単位時間における操作部からの入力情報を取得する（ステップＳ３１０）。例えば図８において今回生成するフレームがｆ３である場合には、ゲーム時刻ｆ３における操作部からの入力情報を取得する。
【０１８８】
次に操作部からの入力データに基づき、第ｎ番目のフレームに対応したシミュレーション単位時間における仮想３次元空間内に存在する事物の時間的な変化についての物理シミュレーション演算をおこなう（ステップＳ３２０）。
【０１８９】
次に前記物理シミュレーション演算の結果に基づき、仮想３次元空間にオブジェクトを配置して、仮想３次元空間の画像生成を行い、描画バッファに描画する（ステップＳ３３０）。
【０１９０】
そして規定フレーム更新周期に達したら描画バッファの画像を表示部に出力する許可を与える（ステップＳ３４０、Ｓ３５０）。
【０１９１】
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。
【０１９２】
例えば、本発明のうち従属請求項に係る発明においては、従属先の請求項の構成要件の一部を省略する構成とすることもできる。また、本発明の１の独立請求項に係る発明の要部を、他の独立請求項に従属させることもできる。
【０１９３】
また、本発明は種々のゲーム（格闘ゲーム、シューティングゲーム、ロボット対戦ゲーム、スポーツゲーム、競争ゲーム、ロールプレイングゲーム、音楽演奏ゲーム、ダンスゲーム等）に適用できる。
【０１９４】
また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレーヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード等の種々のゲームシステムに適用できる。
【図面の簡単な説明】
【０１９５】
【図１】第１の実施の形態の画像生成システム（例えばゲームシステム）の機能ブロック図の一例を示す。
【図２】従来のフレーム更新について説明するための図である。
【図３】第１の実施の形態のフレーム更新について説明するための図である。
【図４】第１の実施の形態の処理の流れについて説明するためのフローチャート図である。
【図５】第２の実施の形態の画像生成システム（例えばゲームシステム）の機能ブロック図の一例を示す。
【図６】第２の実施の形態のフレーム更新について説明するための図である。
【図７】第２の実施の形態の処理の流れについて説明するためのフローチャート図である。
【図８】第３の実施の形態のフレーム更新について説明するための図である。
【図９】第３の実施の形態の処理の流れについて説明するためのフローチャート図である。
【符号の説明】
【０１９６】
１００  処理部、  １１０  ゲーム処理部、
１２０  シミュレーション演算処理部、  １２２  フレーム更新周期検出部、
１２４  シミュレーション単位時間決定部、  １２６  表示許可指示部、
１３０  画像生成部、  １５０  音生成部、  １６０  操作部、
１７０  記憶部、  １７２  メインメモリ、  １７４  フレームバッファ、
１８０  情報記憶媒体、  １９０  表示部、  １９２  音出力部、
１９４  携帯型情報記憶装置、  １９６  通信部、  ２００  処理部、
２１０  ゲーム処理部、  ２２０  シミュレーション演算処理部、
２２２  予測フレーム更新レート決定処理部、
２２４  シミュレーション単位時間決定部、
２２６  フレーム更新時間決定部、  ２２８  表示許可指示部、
２３０  画像生成部、  ２５０  音生成部、  ２６０  操作部、
２７０  記憶部、  ２７２  メインメモリ、  ２７４  フレームバッファ、
２８０  情報記憶媒体、  ２９０  表示部、  ２９２  音出力部、
２９４  携帯型情報記憶装置、  ２９６  通信部
【図１】
2005322143.tif 000003
【図２】
2005322143.tif 000004
【図３】
2005322143.tif 000005
【図４】
2005322143.tif 000006
【図５】
2005322143.tif 000007
【図６】
2005322143.tif 000008
【図７】
2005322143.tif 000009
【図８】
2005322143.tif 000010
【図９】
2005322143.tif 000011