(57)【要約】【課題】メモリの管理を容易にし、コンピュータがプログラムを高速に処理することができるデータ構造、ファイルデータ処理プログラム、情報記憶媒体を提供することにある。【解決手段】メモリ上にファイルデータ領域を確保し、ファイルデータをファイルデータ領域に読み込み、ファイルデータを解析して、参照データであるイベントデータを参照する。そして、ファイルデータ領域のうちダミーデータが占める領域をワーク領域としてメモリ上に動的に割り当て、ワーク領域を利用してイベントプログラムを実行する。【選択図】図７
2008077392.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータが所与のプログラムを実行する際に参照する参照データを含むファイルデータのデータ構造であって、
前記ファイルデータは、
前記参照データに加えて、前記所与のプログラムを実行する際に利用されるワーク領域をメモリ上に確保するためのダミーデータを含み、
前記コンピュータが、
ファイルデータ領域をメモリ上に確保してから、前記ファイルデータ領域に前記ファイルデータを読み込み、
前記ファイルデータ領域のうち前記ダミーデータが占める領域をワーク領域としてメモリ上に割り当てるとともに、割り当てられた前記ワーク領域を用いて、前記ファイルデータ領域に読み込まれた前記参照データを参照しながら前記所与のプログラムを実行することを特徴とするデータ構造。
【請求項２】
請求項１において、
前記ファイルデータが、
前記ダミーデータを特定するオフセットデータを含み、
前記コンピュータが、
前記オフセットデータに基づいて、前記ワーク領域をメモリ上に割り当てることを特徴とするデータ構造。
【請求項３】
請求項２において、
前記ファイルデータが、
前記所与のプログラムを実行する処理内容に応じた複数種類の参照データを含み、
前記コンピュータが、
前記オフセットデータに基づいて、前記各参照データと対応付けられたワーク領域をメモリ上に割り当てることを特徴とするデータ構造。
【請求項４】
請求項１〜３のいずれかにおいて、
前記ダミーデータが、
所定領域に所定値で埋められたシーケンシャルデータであることを特徴とするデータ構造。
【請求項５】
コンピュータ読み取り可能な情報記憶媒体であって、請求項１〜４のいずれかのデータ構造を有するファイルデータを記憶したことを特徴とする情報記憶媒体。
【請求項６】
コンピュータが所与のプログラムを実行する際に参照する参照データを含むファイルデータを用いて処理を行うファイルデータ処理プログラムであって、
ファイルデータ領域をメモリ上に確保する処理を行うメモリ管理部と、
前記参照データと、前記所与のプログラムを実行する際に利用されるワーク領域をメモリ上に確保するためのダミーデータと、を含むファイルデータを、前記ファイルデータ領域に読み込む処理を行う読み込み部と、
前記ファイルデータ領域に読み込まれた前記ファイルデータの前記参照データを参照して前記所与のプログラムを実行するプログラム実行部と、
を含み、
前記メモリ管理部が、
前記ファイルデータ領域のうち前記ダミーデータが占める領域をワーク領域としてメモリ上に割り当て、
前記プログラム実行部が、
割り当てた前記ワーク領域を用いて前記所与のプログラムを実行することを特徴とするファイルデータ処理プログラム。
【請求項７】
請求項６において、
前記ファイルデータが、
前記ダミーデータを特定するオフセットデータを含み、
前記読み込み部が、
前記オフセットデータを含む前記ファイルデータを、メモリ上の前記ファイルデータ領域に読み込み、
前記メモリ管理部が、
前記オフセットデータに基づいて、前記ワーク領域をメモリ上に割り当てる処理を行うことを特徴とするファイルデータ処理プログラム。
【請求項８】
請求項７において、
前記ファイルデータが、
前記所与のプログラムを実行する処理内容に応じた複数種類の参照データを含み、
前記メモリ管理部が、
前記オフセットデータに基づいて、前記各参照データと対応付けられたワーク領域をメモリ上に割り当てる処理を行うことを特徴とするファイルデータ処理プログラム。
【請求項９】
請求項６〜８のいずれかにおいて、
前記メモリ管理部が、
前記処理部において、所与の終了条件が成立した場合に、メモリ上に確保したファイルデータ領域を開放する処理を行うことを特徴とするファイルデータ処理プログラム。
【請求項１０】
コンピュータ読み取り可能な情報記憶媒体であって、請求項６〜９のいずれかのファイルデータ処理プログラムを記憶したことを特徴とする情報記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ構造、ファイルデータ処理プログラム、情報記憶媒体に関する。
【背景技術】
【０００２】
従来より、コンピュータが、メモリ上に領域を確保してファイルデータを読み込み、読み込まれたデータを参照して、所与のプログラムを実行するファイルデータ処理プログラムが多数存在する。そして、このようなファイルデータの処理では、さらにメモリ上にワーク領域を確保し、ワーク領域を利用して所与のプログラムを実行する場合が多い。
【０００３】
しかしながら、ワーク領域をメモリ上に確保する場合において、さまざまな問題があった。例えば、ワーク領域の確保をオペレーティングシステムの処理に委ねると、処理速度が低速になるという問題があった。メモリ確保の処理は、汎用性を高めているので、低速になる場合が多いからである。したがってメモリの確保や開放の処理が頻繁に行われるとプログラムの実行処理に時間を要することになる。
【０００４】
また、処理内容が複雑である場合や、メモリ上にワーク領域を確保する処理が多い場合には、確保されたワーク領域が開放されない場合がある。ワーク領域が開放されない場合には、メモリ資源が無駄になる。また、開放されないメモリ領域が増えるとメモリリークの問題が発生する。さらに、メモリの開放順序が正しく行われない場合には、メモリ上の空き領域の断片化が生じ、大容量のメモリの確保ができなくなる。
【特許文献１】特開２００１−１３７５４５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、メモリの管理を容易にし、コンピュータがプログラムを高速に処理することができるデータ構造、ファイルデータ処理プログラム、情報記憶媒体を提供することにある。
【課題を解決するための手段】
【０００６】
（１）本発明は、
コンピュータが所与のプログラムを実行する際に参照する参照データを含むファイルデータのデータ構造であって、
前記ファイルデータは、
前記参照データに加えて、前記所与のプログラムを実行する際に利用されるワーク領域をメモリ上に確保するためのダミーデータを含み、
前記コンピュータが、
ファイルデータ領域をメモリ上に確保してから、前記ファイルデータ領域に前記ファイルデータを読み込み、
前記ファイルデータ領域のうち前記ダミーデータが占める領域をワーク領域としてメモリ上に割り当てるとともに、割り当てられた前記ワーク領域を用いて、前記ファイルデータ領域に読み込まれた前記参照データを参照しながら前記所与のプログラムを実行することを特徴とするデータ構造に関する。
【０００７】
また本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶した情報記憶媒体に関係する。
【０００８】
本発明によれば、ファイルデータは、参照データに加えてダミーデータを含むデータ構造であるので、コンピュータは、プログラムを実行する際に、ファイルデータ領域のうちダミーデータが占める領域をワーク領域として利用することができる。したがって、専らファイルデータ領域上の一部をワーク領域として割り当てればよいので、メモリの管理を容易に行うことができる。さらに、既に確保されたファイルデータ領域からワーク領域を割り当てるので高速に処理を行うことができる。
【０００９】
また、本発明によれば、所与のプログラムで使用するメモリの使用量は、ファイルデータ領域の使用量に相当するので、ファイルデータの容量を確認すれば、メモリの使用量の上限を想定することができ、メモリ不足によるエラーを回避することができ、適切にメモリ管理を行うことができる。
【００１０】
（２）また本発明のデータ構造及び情報記憶媒体では、
前記ファイルデータが、
前記ダミーデータを特定するオフセットデータを含み、
前記コンピュータが、
前記オフセットデータに基づいて、前記ワーク領域をメモリ上に割り当ててもよい。
【００１１】
本発明によれば、ファイルデータは、さらにオフセットデータを含むデータ構造であるので、ファイルデータ領域に読み込まれたオフセットデータに基づいて、ダミーデータが占める領域であるワーク領域を特定することができる。したがって、ワーク領域の割り当ての処理を高速に行うことができる。
【００１２】
（３）また本発明のデータ構造及び情報記憶媒体では、
前記ファイルデータが、
前記所与のプログラムを実行する処理内容に応じた複数種類の参照データを含み、
前記コンピュータが、
前記オフセットデータに基づいて、前記各参照データと対応付けられたワーク領域をメモリ上に割り当ててもよい。
【００１３】
本発明によれば、ファイルデータが複数種類の参照データを含み、コンピュータが、各参照データごとに空きメモリ領域ではなく既に確保されているファイルデータ領域のうちダミーデータが占める領域をワーク領域としてメモリ上に割り当てることができる。また、オフセットデータに基づいて、各参照データと対応付けられたワーク領域をメモリ上に割り当てることができる。したがって、コンピュータは、各参照データを参照し、各参照データに対応付けられたワーク領域の確保を高速に行うことできる。
【００１４】
さらに、本発明によれば、各参照データに対応付けられたワーク領域が、ファイルデータ領域の一部として割り当てられるので、メモリ管理を容易に行うことができ、メモリ不足やメモリリークの問題を解消することができる。
【００１５】
（４）また本発明のデータ構造及び情報記憶媒体では、
前記ダミーデータが、
所定領域に所定値で埋められたシーケンシャルデータであることを特徴とするデータ構造としてもよい。
【００１６】
本発明によれば、ダミーデータが所定領域に所定値で埋められたシーケンシャルデータであるので、ファイルデータを圧縮した場合には、通常のデータを圧縮した場合に比べて、データの容量を抑えることができる。
【００１７】
（５）本発明は、
コンピュータが所与のプログラムを実行する際に参照する参照データを含むファイルデータを用いて処理を行うファイルデータ処理プログラムであって、
ファイルデータ領域をメモリ上に確保する処理を行うメモリ管理部と、
前記参照データと、前記所与のプログラムを実行する際に利用されるワーク領域をメモリ上に確保するためのダミーデータと、を含むファイルデータを、前記ファイルデータ領域に読み込む処理を行う読み込み部と、
前記ファイルデータ領域に読み込まれた前記ファイルデータの前記参照データを参照して前記所与のプログラムを実行するプログラム実行部と、
を含み、
前記メモリ管理部が、
前記ファイルデータ領域のうち前記ダミーデータが占める領域をワーク領域としてメモリ上に割り当て、
前記プログラム実行部が、
割り当てた前記ワーク領域を用いて前記所与のプログラムを実行することを特徴とするファイルデータ処理プログラムに関する。
【００１８】
また本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶した情報記憶媒体に関係する。
【００１９】
本発明によれば、コンピュータは、プログラムを実行する際に、ファイルデータ領域のうちダミーデータが占める領域をワーク領域として利用することができる。したがって、専らファイルデータ領域上の一部をワーク領域として割り当てればよいので、メモリの管理を容易に行うことができる。さらに、既に確保されたファイルデータ領域からワーク領域を割り当てるので高速に処理を行うことができる。
【００２０】
また、本発明によれば、所与のプログラムで使用するメモリの使用量は、ファイルデータ領域の使用量に相当するので、ファイルデータの容量を確認すれば、メモリの使用量の上限を想定することができ、メモリ不足によるエラーを回避することができ、適切にメモリ管理を行うことができる。
【００２１】
さらに、コンピュータが、ファイルデータ領域を一度確保すれば、所与のプログラムを実行する際に必要となるワーク領域は、ファイルデータ領域の一部を割り当てればよいので、メモリ上の空き領域の一部を確保してワーク領域として割り当てる処理を行う必要がなく一元的にメモリ管理を行うことができる。
【００２２】
（６）また本発明のプログラム及び情報記憶媒体では、
前記ファイルデータが、
前記ダミーデータを特定するオフセットデータを含み、
前記読み込み部が、
前記オフセットデータを含む前記ファイルデータを、メモリ上の前記ファイルデータ領域に読み込み、
前記メモリ管理部が、
前記オフセットデータに基づいて、前記ワーク領域をメモリ上に割り当ててもよい。
【００２３】
本発明によれば、ファイルデータは、さらにオフセットデータを含むデータ構造であるので、ファイルデータ領域に読み込まれたオフセットデータに基づいて、ダミーデータが占める領域であるワーク領域を特定することができる。したがって、ワーク領域の割り当ての処理を高速に行うことができる。
【００２４】
（７）また本発明のプログラム及び情報記憶媒体では、
前記ファイルデータが、
前記所与のプログラムを実行する処理内容に応じた複数種類の参照データを含み、
前記メモリ管理部が、
前記オフセットデータに基づいて、前記各参照データと対応付けられたワーク領域をメモリ上に割り当てる処理を行ってもよい。
【００２５】
本発明によれば、ファイルデータが複数種類の参照データを含み、コンピュータが、各参照データごとに空きメモリ領域ではなく既に確保されているファイルデータ領域のうちダミーデータが占める領域をワーク領域としてメモリ上に割り当てることができる。また、オフセットデータに基づいて、各参照データと対応付けられたワーク領域をメモリ上に割り当てられる。したがって、コンピュータは、各参照データを参照し、各参照データに対応付けられたワーク領域の確保を高速に行うことができる。
【００２６】
さらに、本発明によれば、各参照データに対応付けられたワーク領域が、ファイルデータ領域の一部として割り当てられるので、メモリ管理を容易に行うことができ、メモリ不足やメモリリークの問題を解消することができる。
【００２７】
（８）また本発明のプログラム及び情報記憶媒体では、
前記メモリ管理部が、
前記処理部において、所与の終了条件が成立した場合に、メモリ上に確保したファイルデータ領域を開放する処理を行ってもよい。
【００２８】
本発明によれば、所与の終了条件が成立した場合には、ファイルデータ領域を一度に開放する。このように、メモリを一度に確保し、一度に開放を行うので、メモリの断片化の問題を解消することができる。
【００２９】
ここで、所与の終了条件が成立した場合とは、所与のプログラムが正常終了した場合のほか、例外的な処理により異常終了する場合も含む。
【発明を実施するための最良の形態】
【００３０】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【００３１】
１．構成
図１に本実施形態の画像生成システム（ゲームシステム）の機能ブロック図の例を示す。なお本実施形態の画像生成システムは図１の構成要素（各部）の一部を省略した構成としてもよい。
【００３２】
操作部１６０は、プレーヤがプレーヤオブジェクト（移動体オブジェクトの一例、プレーヤが操作するプレーヤ車両）の操作データを入力するためのものであり、その機能は、レバー、ボタン、ステアリング、マイク、タッチパネル型ディスプレイ、或いは筺体などにより実現できる。記憶部１７０は、処理部１００や通信部１９６などのワーク領域となるもので、その機能はＲＡＭ（ＶＲＡＭ）などにより実現できる。
【００３３】
情報記憶媒体１８０（コンピュータにより読み取り可能な媒体）は、プログラムやデータなどを格納するものであり、その機能は、光ディスク（ＣＤ、ＤＶＤ）、光磁気ディスク（ＭＯ）、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ（ＲＯＭ）などにより実現できる。処理部１００は、情報記憶媒体１８０に格納されるプログラム（データ）に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体１８０には、本実施形態の各部としてコンピュータを機能させるためのプログラム（各部の処理をコンピュータに実行させるためのプログラム）が記憶される。特に本実施形態の情報記憶媒体１８０では、ファイルデータ１８２が記憶される。情報記憶媒体１８０は、ファイルデータ１８２を圧縮したものを記憶してもよい。
【００３４】
表示部１９０は、本実施形態により生成された画像を出力するものであり、その機能は、ＣＲＴ、ＬＣＤ、タッチパネル型ディスプレイ、或いはＨＭＤ（ヘッドマウントディスプレイ）などにより実現できる。音出力部１９２は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
【００３５】
携帯型情報記憶装置１９４は、プレーヤの個人データやゲームのセーブデータなどが記憶されるものであり、この携帯型情報記憶装置１９４としては、メモリカードや携帯型ゲーム装置などがある。通信部１９６は外部（例えばホスト装置や他の画像生成システム）との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ＡＳＩＣなどのハードウェアや、プログラムなどにより実現できる。
【００３６】
なお本実施形態の各部としてコンピュータを機能させるためのプログラム（データ）は、ホスト装置（サーバー）が有する情報記憶媒体からネットワーク及び通信部１９６を介して情報記憶媒体１８０（記憶部１７０）に配信してもよい。このようなホスト装置（サーバー）の情報記憶媒体の使用も本発明の範囲内に含めることができる。
【００３７】
処理部１００（プロセッサ）は、操作部１６０からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの処理を行う。ここでゲーム処理としては、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、キャラクタやマップなどのオブジェクトを配置する処理、オブジェクトを表示する処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などがある。この処理部１００は記憶部１７０内の主記憶部１７２をワーク領域として各種処理を行う。処理部１００の機能は各種プロセッサ（ＣＰＵ、ＤＳＰ等）、ＡＳＩＣ（ゲートアレイ等）などのハードウェアや、プログラムにより実現できる。
【００３８】
処理部１００は、ゲーム処理部１１０、描画部１２０、音生成部１３０を含む。なおこれらの一部を省略する構成としてもよい。
【００３９】
ゲーム処理部１１０は、オブジェクト空間を設定する処理、オブジェクトの移動・演算処理、及び、仮想カメラを制御する処理を行う。
【００４０】
オブジェクト空間設定部は、キャラクタ、建物、球場、車、樹木、柱、壁、マップ（地形）などの表示物を表す各種オブジェクト（ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブで構成されるオブジェクト）をオブジェクト空間に配置設定する処理を行う。即ちワールド座標系でのオブジェクトの位置や回転角度（向き、方向と同義）を決定し、その位置（Ｘ、Ｙ、Ｚ）にその回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）でオブジェクトを配置する。
【００４１】
移動・動作処理部は、オブジェクト（キャラクタ、車、電車又は飛行機等）の移動・動作演算（移動・動作シミュレーション）を行う。すなわち操作部１６０によりプレーヤが入力した操作データや、プログラム（移動・動作アルゴリズム）や、各種データ（モーションデータ）などに基づいて、オブジェクトをオブジェクト空間内で移動させたり、オブジェクトを動作（モーション、アニメーション）させたりする処理を行う。具体的には、オブジェクトの移動情報（位置、回転角度、速度、或いは加速度）や動作情報（オブジェクトを構成する各パーツの位置、或いは回転角度）を、１フレーム（１／６０秒）毎に順次求めるシミュレーション処理を行う。なおフレームは、オブジェクトの移動・動作処理（シミュレーション処理）や画像生成処理を行う時間の単位である。
【００４２】
仮想カメラ制御部は、オブジェクト空間内の所与（任意）の視点から見える画像を生成するための仮想カメラ（視点）の制御処理を行う。具体的には、仮想カメラの位置（Ｘ、Ｙ、Ｚ）又は回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）を制御する処理（視点位置、視線方向あるいは画角を制御する処理）を行う。
【００４３】
例えば仮想カメラによりオブジェクト（例えばキャラクタ、ボール、車）を後方から撮影する場合には、オブジェクトの位置又は回転の変化に仮想カメラが追従するように、仮想カメラの位置又は回転角度（仮想カメラの向き）を制御する。この場合には、移動・動作処理部で得られたオブジェクトの位置、回転角度又は速度などの情報に基づいて、仮想カメラを制御できる。或いは、仮想カメラを、予め決められた回転角度で回転させたり、予め決められた移動経路で移動させる制御を行ってもよい。この場合には、仮想カメラの位置（移動経路）又は回転角度を特定するための仮想カメラデータに基づいて仮想カメラを制御する。なお、仮想カメラ（視点）が複数存在する場合には、それぞれの仮想カメラについて上記の制御処理が行われる。
【００４４】
さらに、ゲーム処理部１１０は、メモリ管理部１１２、読み込み部１１４、解析部１１６、プログラム実行部１１８を含む。
【００４５】
メモリ管理部１１２は、メモリ上にプログラムの処理に必要な領域を確保する処理を行う。また、プログラムの実行中に、既に確保されたメモリ上の領域において動的にメモリを割り当てる処理を行う。さらに、確保した領域を開放する処理を行う。特に本実施形態のメモリ管理部１１２では、ファイルデータ１８２を読み込むためのファイルデータ領域を記憶部１７０の主記憶部１７２に確保する。
【００４６】
そして、本実施形態のメモリ管理部１１２は、ファイルデータ領域のうちダミーデータが占める領域を、所与のプログラムの実行の際に利用されるワーク領域としてメモリ上に動的に割り当てる処理を行う。所与のプログラムが複数存在する場合には、プログラムごとにワーク領域を動的に割り当てる処理を行ってもよい。
【００４７】
本実施形態のメモリ管理部１１２では、所与の終了条件が成立した場合には、ファイルデータ領域を開放する処理を行うことができる。所与の終了条件が成立した場合とは、例えば、所与のプログラムが正常終了した場合である。所与のプログラムが複数存在する場合は、すべてのプログラムが正常終了した場合であってもよい。また、例外的な処理が発生し、異常終了した場合にもファイルデータ領域を開放する処理を行うことができる。このように、所与の終了条件の成立に伴い確保したファイルデータ領域上のメモリを開放することでメモリを有効に活用することができる。
【００４８】
読み込み部１１４は、データをメモリ上に読み込む処理を行う。特に、本実施形態の読み込み部１１４では、メモリ上に確保されたファイルデータ領域に、ファイルデータ１８２を読み込む。
【００４９】
解析部１１６は、データを解析する処理を行う。特に本実施形態の解析部１１６では、ファイルデータ領域に読み込まれたファイルデータを解析する。具体的には、ファイルデータに含まれる参照データやオフセットデータを解析する。そして、ファイルデータに複数種類の参照データが含まれている場合には、各参照データごとに解析する。例えば、ファイルデータがイベントプログラムで参照される複数種類のイベントデータを含む場合には、イベントデータ毎に解析する。また、参照データがさらに複数の項目からなるデータである場合には、さらに各項目ごとに解析してもよい。
【００５０】
ここで、参照データとは、所与のプログラムで参照されるデータである。すなわち、参照データとは、所与のプログラムの演算処理で使用される値、データである。例えば参照データとして、イベントプログラムで参照されるイベントデータ等が挙げられる。
【００５１】
プログラム実行部１１８は、所与のプログラムを実行する処理を行う。特に本実施形態のプログラム実行部１１８は、メモリ管理部１１２で割り当てられたワーク領域を利用して、所与のプログラムを実行する。所与のプログラムとは、所与の命令に基づき実行されるプログラムのことをいう。例えば、イベント発生に伴う所与の命令に基づいて、解析部１１６で解析されたイベントデータを参照して、ワーク領域を利用してイベントプログラムを実行する処理を行う。
【００５２】
描画部１２０は、処理部１００で行われる種々の処理（ゲーム処理）の結果に基づいて描画処理を行い、これにより画像を生成し、表示部１９０に出力する。いわゆる３次元ゲーム画像を生成する場合には、まずオブジェクト（モデル）の各頂点の頂点データ（頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等）を含むオブジェクトデータ（モデルデータ）が入力され、入力されたオブジェクトデータに含まれる頂点データに基づいて、頂点処理（頂点シェーダによるシェーディング）が行われる。なお頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理（テッセレーション、曲面分割、ポリゴン分割）を行うようにしてもよい。頂点処理では、頂点処理プログラム（頂点シェーダプログラム、第１のシェーダプログラム）に従って、頂点の移動処理や、座標変換（ワールド座標変換、カメラ座標変換）、クリッピング処理、あるいは透視変換等のジオメトリ処理が行われ、その処理結果に基づいて、オブジェクトを構成する頂点群について与えられた頂点データを変更（更新、調整）する。そして、頂点処理後の頂点データに基づいてラスタライズ（走査変換）が行われ、ポリゴン（プリミティブ）の面とピクセルとが対応づけられる。そしてラスタライズに続いて、画像を構成するピクセル（表示画面を構成するフラグメント）を描画するピクセル処理（ピクセルシェーダによるシェーディング、フラグメント処理）が行われる。ピクセル処理では、ピクセル処理プログラム（ピクセルシェーダプログラム、第２のシェーダプログラム）に従って、テクスチャの読出し（テクスチャマッピング）、色データの設定／変更、半透明合成、アンチエイリアス等の各種処理を行って、画像を構成するピクセルの最終的な描画色を決定し、透視変換されたオブジェクトの描画色を描画バッファ１７４（ピクセル単位で画像情報を記憶できるバッファ。ＶＲＡＭ、レンダリングターゲット）に出力（描画）する。すなわち、ピクセル処理では、画像情報（色、法線、輝度、α値等）をピクセル単位で設定あるいは変更するパーピクセル処理を行う。これにより、オブジェクト空間内において仮想カメラ（所与の視点）から見える画像が生成される。なお、仮想カメラ（視点）が複数存在する場合には、それぞれの仮想カメラから見える画像を分割画像として１画面に表示できるように画像を生成することができる。
【００５３】
なお頂点処理やピクセル処理は、シェーディング言語によって記述されたシェーダプログラムによって、ポリゴン（プリミティブ）の描画処理をプログラム可能にするハードウェア、いわゆるプログラマブルシェーダ（頂点シェーダやピクセルシェーダ）により実現される。プログラマブルシェーダでは、頂点単位の処理やピクセル単位の処理がプログラム可能になることで描画処理内容の自由度が高く、従来のハードウェアによる固定的な描画処理に比べて表現力を大幅に向上させることができる。
【００５４】
そして描画部１２０は、オブジェクトを描画する際に、ジオメトリ処理、テクスチャマッピング、隠面消去処理、αブレンディング等を行う。
【００５５】
ジオメトリ処理では、オブジェクトに対して、座標変換、クリッピング処理、透視投影変換、或いは光源計算等の処理が行われる。そして、ジオメトリ処理後（透視投影変換後）のオブジェクトデータ（オブジェクトの頂点の位置座標、テクスチャ座標、色データ（輝度データ）、法線ベクトル、或いはα値等）は、オブジェクトデータ記憶部１７６に保存される。
【００５６】
テクスチャマッピングは、記憶部１７０のテクスチャ記憶部に記憶されるテクスチャ（テクセル値）をオブジェクトにマッピングするための処理である。具体的には、オブジェクトの頂点に設定（付与）されるテクスチャ座標等を用いて記憶部１７０のテクスチャ記憶部からテクスチャ（色（ＲＧＢ）、α値などの表面プロパティ）を読み出す。そして、２次元の画像であるテクスチャをオブジェクトにマッピングする。この場合に、ピクセルとテクセルとを対応づける処理や、テクセルの補間としてバイリニア補間などを行う。
【００５７】
隠面消去処理としては、描画ピクセルのＺ値（奥行き情報）が格納されるＺバッファ（奥行きバッファ）を用いたＺバッファ法（奥行き比較法、Ｚテスト）による隠面消去処理を行うことができる。すなわちオブジェクトのプリミティブに対応する描画ピクセルを描画する際に、Ｚバッファに格納されるＺ値を参照する。そして参照されたＺバッファのＺ値と、プリミティブの描画ピクセルでのＺ値とを比較し、描画ピクセルでのＺ値が、仮想カメラから見て手前側となるＺ値（例えば小さなＺ値）である場合には、その描画ピクセルの描画処理を行うとともにＺバッファのＺ値を新たなＺ値に更新する。
【００５８】
αブレンディング（α合成）は、α値（Ａ値）に基づく半透明合成処理（通常αブレンディング、加算αブレンディング又は減算αブレンディング等）のことである。
【００５９】
なお、α値は、各ピクセル（テクセル、ドット）に関連づけて記憶できる情報であり、例えば色情報以外のプラスアルファの情報である。α値は、マスク情報、半透明度（透明度、不透明度と等価）、バンプ情報などとして使用できる。
【００６０】
音生成部１３０は、処理部１００で行われる種々の処理の結果に基づいて音処理を行い、ＢＧＭ、効果音、又は音声などのゲーム音を生成し、音出力部１９２に出力する。
【００６１】
なお、本実施形態の画像生成システムは、１人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、１つの端末を用いて生成してもよいし、ネットワーク（伝送ライン、通信回線）などで接続された複数の端末（ゲーム機、携帯電話）を用いて分散処理により生成してもよい。
【００６２】
２．本実施形態の手法
本実施形態のファイルデータ処理プログラムは、メモリ上にファイルデータ領域を確保し、ファイルデータをファイルデータ領域に読み込み、ファイルデータを解析して、参照データであるイベントデータを参照する。そして、ファイルデータ領域のうちダミーデータが占める領域をワーク領域としてメモリ上に動的に割り当て、ワーク領域を利用してイベントプログラムを実行する。このようにすれば、メモリの管理を容易に行うことができ、高速に処理することができるからである。
【００６３】
ここで、本実施形態のイベントプログラムは、イベントの発生に伴い処理を行うプログラムである。より具体的には、イベントプログラムとは、操作部１６０によりプレーヤが入力した操作や、各種プログラムやデータに基づいて特定の現象が発生したときに発する信号、データ等に基づいて処理を行うプログラムである。さらに、ワーク領域とは、イベントプログラムを実行するために利用されるメモリ上の領域である。例えば、データを一時的に保持したり、演算結果等を一時的に記憶するために利用する領域である。また、ワーク領域は、データの加工を行うために利用してもよい。本実施形態のファイルデータ処理プログラムでは、ワーク領域をイベントプログラムの実行前や実行中などの所定の契機で割り当てる。
【００６４】
２．１  データ構造
次に、本実施形態のファイルデータのデータ構造について、従来の手法と比較しながら説明する。
【００６５】
図２（Ａ）は、従来の手法のファイルデータのデータ構造の一例を、図２（Ｂ）は、本実施形態のファイルデータのデータ構造の一例を示す。図２（Ａ）に示すように、従来の手法のデータ構造は、イベントデータ２００を含み、オフセットデータ及びダミーデータを含まないデータ構造である。一方、図２（Ｂ）に示すように、本実施形態のファイルデータのデータ構造は、オフセットデータ２１０、イベントデータ２２０、及びダミーデータ２３０を含むデータ構造である。
【００６６】
イベントデータとは、イベントプログラムを実行する際に参照される参照データであり、イベントプログラムを実行するために必要となる情報である。要するにイベントデータとは、イベントプログラムの実行処理の演算処理に必要な値、データである。イベントデータは、イベントプログラムの実行前に参照してもよいし、イベントプログラムの実行中に参照してもよい。また、イベントデータは、イベントプログラムを実行する処理内容に応じた複数種類のイベントデータであってもよい。具体的には、複数種類のイベントデータを予め用意し、各イベントデータを参照して、イベントプログラムを実行することができる。
【００６７】
また、イベントデータは、識別番号または識別名を設けて、表示するオブジェクト、ワーク領域のサイズ、表示するオブジェクトのワールド座標系の座標値の各項目とを関連付けるようなデータとしてもよい。複数のイベントデータが存在する場合には、識別番号または識別名、各項目の内容を変えて、処理内容をそれぞれ異ならせることができる。このようにすれば、本実施形態でファイルデータを解析する場合には、識別番号や識別名に基づいて、各イベントデータを解析することができる。
【００６８】
例えば、オブジェクト空間においてオブジェクトを表示するイベントプログラムが参照するイベントデータは、識別番号と対応付けて、表示するオブジェクト、ワールド座標系の座標値及びワーク領域サイズを記録したデータとすることができる。
【００６９】
ダミーデータとは、イベントプログラムを実行する際に利用されるワーク領域をメモリ上に確保するために、ファイルデータの所定領域に所定値を埋めたシーケンシャルデータである。ここでシーケンシャルデータとは、連続して埋められているデータであることをいう。
【００７０】
具体的には、予めメモリ上に確保しなければならないワーク領域のサイズ、または、ワーク領域として十分に必要とされるサイズが決定される。そして、ファイルデータにおいて、決定されたサイズの所定領域に所定値を埋める。このようにすれば、ファイルデータがメモリ上のファイルデータ領域に読み込まれた場合に、ダミーデータが占める領域をワーク領域として利用することができる。
【００７１】
詳細に説明すると、例えば、１０キロバイトのワーク領域を確保したい場合には、ファイルデータの１０キロバイト分の所定領域に、０ｘ００（ＮＵＬＬ値）を埋める。このようにすれば、ファイルデータがメモリ上のファイルデータ領域に読み込まれた場合に、ファイルデータ領域上のダミーデータが占める領域は１０キロバイトになるので、１０キロバイト分のワーク領域が確保される。なお、所定値は必ずしも０ｘ００である必要はなく、文字コード（例えばＡＳＣＩＩコード、シフトＪＩＳコード）により決められたコード（値、文字）でもよい。例えば０ｘ００のように、所定値を所定領域に埋めるようにすれば、ファイルデータを圧縮した場合には、圧縮率を高めることができる。したがって、情報記憶媒体に、圧縮されたファイルデータを記憶させる場合を考慮すると、０ｘ００を所定領域に埋めることが望ましいと考えられる。
【００７２】
なお、本実施形態のダミーデータは、専らワーク領域を確保するためのデータにすぎず、ダミーデータそのものを有効に活用していないが、ダミーデータの全部または一部を、イベントプログラムに利用されるデータとしてもよい。また、本実施形態のダミーデータは、複数種類の任意のコード（値、文字）で埋められたデータであってもよい。
【００７３】
オフセットデータとは、イベントプログラムが利用するワーク領域の先頭アドレスを示すオフセットアドレスである。したがって、オフセットアドレスに基づいてワーク領域を特定するので、ワーク領域の特定を容易に行うことができる。また、複数種類のイベントデータを参照してイベントプログラムを実行する場合には、それぞれのイベントプログラムで利用されるワーク領域の先頭アドレスを示すオフセットアドレスを用意する。
【００７４】
本実施形態のファイルデータは、メモリ上に確保されたファイルデータ領域に読み込まれて解析される。解析する手法としては、例えば、イベントデータ毎にワーク領域を特定できるように、イベントデータとオフセットアドレスを関連付けて解析する。また、複数種類のイベントデータが存在する場合には、イベントデータ毎に解析してもよい。例えば、イベントデータ毎の識別番号や識別名に、表示するオブジェクト、ワーク領域のサイズ、表示するオブジェクトのワールド座標系の座標値、表示するオブジェクトの各項目を対応付けて解析してもよい。
【００７５】
なお、図２（Ｂ）に示す本実施形態のデータ構造のファイルデータは、情報記憶媒体に記憶される。ファイルデータを圧縮した圧縮ファイルデータを情報記憶媒体に記憶してもよい。このようにすれば、情報記憶媒体に記憶する容量を抑えることができる。
【００７６】
２．２  メモリ管理
次に、本実施形態のファイルデータ処理プログラムにおいて、上述したファイルデータを用いたメモリ管理の手法について、従来の手法と比較しながら説明する。
【００７７】
図３は、イベントプログラムを実行する前の初期状態のメモリマップの一例を示している。使用中の領域３００は、オペレーティングシステムや他のプログラムが使用している領域である。一方、空き領域３１０は、ファイルデータ領域を確保することができる領域である。
【００７８】
次に、イベントプログラムを実行するために、メモリの空き領域からファイルデータを読み込むためのファイルデータ領域を確保する。具体的には、ファイルデータの容量（サイズ）に応じたファイルデータ領域を確保する。このようにすれば、不必要に大容量のメモリを確保せずに必要な容量分のメモリを確保することができる。なお、メモリの容量に余裕があれば、ファイルデータのサイズ以上の容量のファイルデータ領域を確保してもよい。なお、ファイルデータを圧縮した圧縮ファイルデータが情報記憶媒体に記憶されている場合には、圧縮ファイルデータを伸張する処理を行い、伸張されたファイルデータの容量に基づいて、ファイルデータ領域を確保する。要するに、ファイルデータの容量に基づいて、メモリ上にファイルデータ領域を確保する処理を行う。
【００７９】
ファイルデータ領域を確保したら、情報記憶媒体に記憶されているファイルデータを、ファイルデータ領域に読み込む処理を行う。なお、圧縮ファイルデータが情報記憶媒体に記憶されている場合には、伸張する処理を行い、伸張されたファイルデータをファイルデータ領域に読み込む処理を行う。
【００８０】
図４は、従来の手法において、メモリ上にファイルデータ領域を確保し、ファイルデータが読み込まれたときのメモリマップの一例を示している。なお、ファイルデータ領域４１０は、イベントデータ４１２が格納されている。
【００８１】
図５は、本実施形態において、メモリ上にファイルデータ領域を確保し、ファイルデータが読み込まれたときのメモリマップの一例を示している。ファイルデータ領域５１０は、オフセットデータ５１２、イベントデータ５１４、ダミーデータ５１６が格納されている。本実施形態のファイルデータはオフセットデータ及びダミーデータを含むので、従来の手法に比べてメモリ上に確保されるファイルデータ領域のサイズが大きくなる。しかし、オフセットデータは、ワーク領域の先頭を示すオフセットアドレスのデータであるので、ファイルデータ全体のうちオフセットデータの容量は極僅かである。また、本実施形態では、ダミーデータが占める領域をワーク領域として、ワーク領域含むファイルデータ領域を確保する。一方、従来の手法では、ファイルデータ領域を確保した後に、ワーク領域を確保する。したがって、本実施形態においてメモリ上で使用される領域のサイズは、従来の手法においてメモリ上で使用される領域のサイズと殆ど変わらない。
【００８２】
次に、本実施形態のファイルデータ処理プログラムが、イベントプログラムで利用されるワーク領域を割り当てる手法について、従来の手法を比較しながら説明する。
【００８３】
従来の手法では、メモリ上に格納されたイベントデータを参照し、イベントデータに必要なワーク領域を空き領域から確保して、イベントプログラムを実行する。イベントデータが複数存在する場合には、イベントデータ毎にイベントプログラムのワーク領域を空き領域から確保する。
【００８４】
図６は、従来の手法のワーク領域を確保したときのメモリマップの一例を示す。例えば、図６に示すように、ファイルデータ領域６１０にイベントデータ１（６１２）、イベントデータ２（６１４）、イベントデータ３（６１６）が格納されている。従来の手法では、イベントデータ１を参照して実行するイベントプログラムは、空き領域からワーク領域１（６２０）を確保し、ワーク領域１（６２０）を利用してプログラムを実行する。また、イベントデータ２を参照して実行されるイベントプログラムは、ワーク領域２（６３０）を確保し、イベントプログラムを実行する。イベントデータ３を参照して実行されるイベントプログラムは、ワーク領域３（６４０）を確保してイベントプログラムを実行する。
【００８５】
従来の手法では、メモリ上の空き領域にイベントプログラムに利用されるワーク領域を確保していた。したがって、イベントプログラムを実行する度にメモリの空き容量やワーク領域の確保及び開放を考慮しなければならないので、メモリの管理が煩雑であった。また、ワーク領域の確保の処理は、オペレーティングシステムの処理に委ねており、処理が低速になっていた。
【００８６】
一方、本実施形態のファイルデータ処理プログラムでは、メモリ上のファイルデータ領域に格納されたイベントデータを参照し、ファイルデータ領域のうちダミーデータが占める領域をワーク領域として割り当てる。そして、ワーク領域を利用してイベントプログラムを実行する。
【００８７】
図７は、本実施形態のワーク領域を割り当てたときのメモリマップの一例を示す。図７に示すように、ファイルデータ領域７１０に格納されているイベントデータ１（７１２）を参照して実行するイベントプログラムは、ファイルデータ領域のうちダミーデータが占めるワーク領域１（７１５）を動的に割り当てられる。ダミーデータはオフセットアドレスに基づいて特定することができる。また、同様にイベントデータ２（７１３）を参照して実行するイベントプログラムは、ワーク領域２（７１６）を動的に割り当てられる。また、イベントデータ３（７１４）を参照して実行するイベントプログラムは、ワーク領域３（７１７）を動的に割り当てられる。
【００８８】
従来の手法では、メモリの空き領域からワーク領域を確保するのに対して、本実施形態では、既に確保されたファイルデータ領域のうちダミーデータが占める領域をワーク領域として割り当てる。本実施形態では、メモリ上のワーク領域の確保の処理をオペレーティングシステムではなく、ファイルデータ領域の一部を動的に割り当てるように処理しているので、従来に比べて処理速度を高めることがでる。また、ファイルデータ領域のメモリを管理すればよいので、イベントプログラムを実行する度にメモリの空き容量や、ワーク領域の開放などを考慮する必要がない。したがって、メモリの管理を容易に行うことができる。
【００８９】
本実施形態のワーク領域を割り当てる手法について説明する。本実施形態のファイルデータ処理プログラムでは、従来行われていたメモリ確保のメソッドを多重定義し、ファイルデータ領域の一部の領域をワーク領域として動的に割り当てる処理を行う。いわゆるオーバーロードによってワーク領域を動的に割り当てる処理を行う。具体的には、オペレーティングシステムによるメモリを確保するメソッドを、同名のメソッドで戻り値や引数の数を変更してファイルデータ領域に確保した領域からメモリを割り当てるようにメソッドを定義する。例えば、イベントデータに対応付けられたオフセットアドレスに基づいて、ワーク領域の先頭のアドレスを指定し、ワーク領域として確保すべき容量に基づいてワーク領域を割り当てるように定義する。そして、ワーク領域を確保する場合には、オペレーティングシステムによるメモリを確保するメソッドではなく、ファイルデータ領域に確保した領域からメモリを割り当てるメソッドを呼び出す。このようにすれば、既に確保されたメモリ上のファイルデータ領域を割り当てるので、コンピュータの処理速度は、従来の手法に比べて格段に速い。
【００９０】
さらに、本実施形態によれば、ワーク領域の割り当ての処理速度の向上のみならず、メモリの断片化の問題を解消することができる。
【００９１】
図８は、従来の手法のワーク領域を開放したときのメモリマップの一例を示す。図９は、本実施形態のワーク領域を開放したときのメモリマップの一例を示す。
【００９２】
従来の手法では、ワーク領域を利用しなくなった場合においても、メモリの開放をせずに確保したままにしたり、複数のワーク領域を確保した場合に開放順序を誤ることで、空きメモリの断片化が生じていた。メモリの管理を、オペレーティングシステムの処理に委ねていたからである。例えば、図８に示すように、開放された領域は、空き領域８３０のみで、ワーク領域１（８２０）、ワーク領域３（８４０）は開放されずに確保されたままの状態になる。
【００９３】
図８に示すように、空き領域が断片的に生じてしまうと、まとまって大きな容量のメモリを確保することができなくなってしまう。また、実際には使用していないメモリ上の領域が確保されたままの状態になるので、メモリ資源が無駄になり、本来必要とされるメモリの確保ができずに、システムの障害が発生するおそれがある。
【００９４】
これに対して、図９に示すように本実施形態では、ファイルデータ領域を開放した場合に、ファイルデータ領域が確保されていた領域９１０が空き領域になる。ワーク領域であった領域９１６も含めてファイルデータ領域が一度に開放されるので、メモリの断片化の問題を解消することができる。
【００９５】
このように、本実施形態のファイルデータ処理プログラムでは、図９に示すように既にメモリ上に確保されたファイルデータ領域を所与の終了条件の成立に伴って開放する。したがって、一度に確保された領域が一度に開放されるので、従来問題となっていたメモリの断片化を防止することができる。また、各ワーク領域の開放を考慮する必要もないので、メモリ管理を容易に行うことができる。
【００９６】
３．本実施形態の処理
次に、本実施形態のファイルデータ処理プログラムの詳細な処理例について図１０のフローチャートを用いて説明する。
【００９７】
まず、ファイルデータを読み込むためのファイルデータ領域をメモリ上に確保する（ステップＳ１０）。ファイルデータのサイズに基づいて、ファイルデータ領域を確保してもよい。例えば、ファイルデータのサイズが１２８メガバイトである場合には、ファイルデータ領域を１２８メガバイトで確保する。
【００９８】
次に、ファイルデータをファイルデータ領域に読み込む。（ステップＳ２０）。ファイルデータ領域に読み込まれたファイルデータのダミーデータが占めるメモリ上の領域が、ワーク領域として利用される。
【００９９】
次に、メモリに読み込まれたファイルデータを解析する（ステップＳ３０）。複数種類のイベントデータが存在する場合には、イベントデータ毎に解析してもよい。また、各イベントデータに対応付けてオフセットアドレスを特定できるように解析してもよい。
【０１００】
続いて、解析結果に基づいてイベントデータを参照する（ステップＳ４０）。
【０１０１】
そして、イベントデータに対応するオフセットアドレスを取得し（ステップＳ５０）、オフセットアドレスに基づいて、イベントプログラムに利用されるワーク領域を割り当てる（ステップＳ６０）。例えば、オフセットアドレスに基づいてアドレス１００番地に、１０キロバイトのワーク領域を割り当てるように処理を行う。ワーク領域を利用する前に０ｘ００で初期化するようにしてもよい。そして、イベントプログラムは、ワーク領域を利用してイベントプログラムを実行する（ステップＳ７０）。
【０１０２】
イベントプログラムの実行後は、次のイベントデータあるかを判断し（ステップＳ８０）、次のイベントデータがある場合には（ステップＳ８０のＹｅｓ）、ステップＳ４０〜ステップＳ８０を繰り返し行う。イベントデータがない場合には、（ステップＳ８０のＮｏ）ファイルデータ領域を開放する（ステップＳ９０）。
【０１０３】
４．ハードウェア構成
図１１に本実施形態を実現できるハードウェア構成の例を示す。メインプロセッサ９００は、ＤＶＤ９８２（情報記憶媒体。ＣＤでもよい。）に格納されたプログラム、通信インターフェース９９０を介してダウンロードされたプログラム、或いはＲＯＭ９５０に格納されたプログラムなどに基づき動作し、ゲーム処理、画像処理、音処理などを実行する。コプロセッサ９０２は、メインプロセッサ９００の処理を補助するものであり、マトリクス演算（ベクトル演算）を高速に実行する。例えばオブジェクトを移動させたり動作（モーション）させる物理シミュレーションに、マトリクス演算処理が必要な場合には、メインプロセッサ９００上で動作するプログラムが、その処理をコプロセッサ９０２に指示（依頼）する。
【０１０４】
ジオメトリプロセッサ９０４は、メインプロセッサ９００上で動作するプログラムからの指示に基づいて、座標変換、透視変換、光源計算、曲面生成などのジオメトリ処理を行うものであり、マトリクス演算を高速に実行する。データ伸張プロセッサ９０６は、圧縮された画像データや音データのデコード処理を行ったり、メインプロセッサ９００のデコード処理をアクセレートする。これにより、オープニング画面やゲーム画面において、ＭＰＥＧ方式等で圧縮された動画像を表示できる。
【０１０５】
描画プロセッサ９１０は、ポリゴンや曲面などのプリミティブ面で構成されるオブジェクトの描画（レンダリング）処理を実行する。オブジェクトの描画の際には、メインプロセッサ９００は、ＤＭＡコントローラ９７０を利用して、描画データを描画プロセッサ９１０に渡すと共に、必要であればテクスチャ記憶部９２４にテクスチャを転送する。すると描画プロセッサ９１０は、描画データやテクスチャに基づいて、Ｚバッファなどを利用した隠面消去を行いながら、オブジェクトをフレームバッファ９２２に描画する。また描画プロセッサ９１０は、αブレンディング（半透明処理）、デプスキューイング、ミップマッピング、フォグ処理、バイリニア・フィルタリング、トライリニア・フィルタリング、アンチエイリアシング、シェーディング処理なども行う。頂点シェーダやピクセルシェーダなどのプログラマブルシェーダが実装されている場合には、シェーダプログラムに従って、頂点データの作成・変更（更新）やピクセル（あるいはフラグメント）の描画色の決定を行う。１フレーム分の画像がフレームバッファ９２２に書き込まれるとその画像はディスプレイ９１２に表示される。
【０１０６】
サウンドプロセッサ９３０は、多チャンネルのＡＤＰＣＭ音源などを内蔵し、ＢＧＭ、効果音、音声などのゲーム音を生成し、スピーカ９３２を介して出力する。ゲームコントローラ９４２やメモリカード９４４からのデータはシリアルインターフェース９４０を介して入力される。
【０１０７】
ＲＯＭ９５０にはシステムプログラムなどが格納される。業務用ゲームシステムの場合にはＲＯＭ９５０が情報記憶媒体として機能し、ＲＯＭ９５０に各種プログラムが格納される。なおＲＯＭ９５０の代わりにハードディスクを利用してもよい。ＲＡＭ９６０は各種プロセッサの作業領域となる。ＤＭＡコントローラ９７０は、プロセッサ、メモリ間でのＤＭＡ転送を制御する。ＤＶＤドライブ９８０（ＣＤドライブでもよい。）は、プログラム、画像データ、或いは音データなどが格納されるＤＶＤ９８２（ＣＤでもよい。）にアクセスする。通信インターフェース９９０はネットワーク（通信回線、高速シリアルバス）を介して外部との間でデータ転送を行う。
【０１０８】
なお本実施形態の各部（各手段）の処理は、その全てをハードウェアのみにより実現してもよいし、情報記憶媒体に格納されるプログラムや通信インターフェースを介して配信されるプログラムにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。
【０１０９】
そして本実施形態の各部の処理をハードウェアとプログラムの両方により実現する場合には、情報記憶媒体には、ハードウェア（コンピュータ）を本実施形態の各部として機能させるためのプログラムが格納される。より具体的には、上記プログラムが、ハードウェアである各プロセッサ９０２、９０４、９０６、９１０、９３０に処理を指示すると共に、必要であればデータを渡す。そして、各プロセッサ９０２、９０４、９０６、９１０、９３０は、その指示と渡されたデータとに基づいて本発明の各部の処理を実現する。
【０１１０】
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。例えば、明細書又は図面中の記載において広義や同義な用語として引用された用語は、明細書又は図面中の他の記載においても広義や同義な用語に置き換えることができる。また接触痕跡の表現手法も、本実施形態で説明したものに限定されず、これらと均等な手法も本発明の範囲に含まれる。
【０１１１】
なお、イベントプログラムに限らず、ワーク領域を利用する種々のプログラムにおいて、ダミーデータを含むファイルデータをメモリ上に読み込み、ダミーデータが占める領域をワーク領域として動的に割り当てるようにしてもよい。
【０１１２】
また、ファイルデータには、オフセットデータ、参照データ、ダミーデータの他に種々のデータを含むようにしてもよい。
【０１１３】
なお、本実施形態のメモリ管理部１１２のファイルデータ領域の確保は、オペレーティングシステムの処理により確保してもよいし、動的にファイルデータ領域を確保してもよい。また、本実施形態のメモリ管理部１１２は、ガベージコレクションや、ヒープ領域の拡張や縮小等の処理、メモリ不足の例外処理等の種々のメモリ管理を行うようにしてもよい。
【図面の簡単な説明】
【０１１４】
【図１】本実施形態の画像生成システムの機能ブロック図の例。
【図２】図２（Ａ）（Ｂ）はデータ構造の説明図。
【図３】メモリの初期状態の説明図。
【図４】従来のファイルデータ領域の説明図。
【図５】本実施形態のファイルデータ領域の説明図。
【図６】従来のワーク領域の説明図。
【図７】本実施形態のワーク領域の説明図。
【図８】従来のワーク領域の開放の説明図。
【図９】本実施形態のファイルデータ領域の開放の説明図。
【図１０】本実施形態の処理のフローチャート。
【図１１】ハードウェア構成例。
【符号の説明】
【０１１５】
１００  処理部、１１０  ゲーム処理部、１１２  メモリ管理部、１１４  読み込み部、
１１６  解析部、１１８  プログラム実行部、１２０  描画部、１３０  音生成部、
１６０  操作部、１７０  記憶部、１７２  主記憶部、１７４  描画バッファ、
１８０  情報記憶媒体、１９０  表示部、１９２  音出力部、
１９４  携帯型情報記憶装置、１９６  通信部
【図１】
2008077392.tif 000003
【図２】
2008077392.tif 000004
【図３】
2008077392.tif 000005
【図４】
2008077392.tif 000006
【図５】
2008077392.tif 000007
【図６】
2008077392.tif 000008
【図７】
2008077392.tif 000009
【図８】
2008077392.tif 000010
【図９】
2008077392.tif 000011
【図１０】
2008077392.tif 000012
【図１１】
2008077392.tif 000013