データ構造、ファイルデータ処理プログラム、情報記憶媒体
【課題】メモリの管理を容易にし、コンピュータがプログラムを高速に処理することができるデータ構造、ファイルデータ処理プログラム、情報記憶媒体を提供することにある。
【解決手段】メモリ上にファイルデータ領域を確保し、ファイルデータをファイルデータ領域に読み込み、ファイルデータを解析して、参照データであるイベントデータを参照する。そして、ファイルデータ領域のうちダミーデータが占める領域をワーク領域としてメモリ上に動的に割り当て、ワーク領域を利用してイベントプログラムを実行する。
【解決手段】メモリ上にファイルデータ領域を確保し、ファイルデータをファイルデータ領域に読み込み、ファイルデータを解析して、参照データであるイベントデータを参照する。そして、ファイルデータ領域のうちダミーデータが占める領域をワーク領域としてメモリ上に動的に割り当て、ワーク領域を利用してイベントプログラムを実行する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ構造、ファイルデータ処理プログラム、情報記憶媒体に関する。
【背景技術】
【0002】
従来より、コンピュータが、メモリ上に領域を確保してファイルデータを読み込み、読み込まれたデータを参照して、所与のプログラムを実行するファイルデータ処理プログラムが多数存在する。そして、このようなファイルデータの処理では、さらにメモリ上にワーク領域を確保し、ワーク領域を利用して所与のプログラムを実行する場合が多い。
【0003】
しかしながら、ワーク領域をメモリ上に確保する場合において、さまざまな問題があった。例えば、ワーク領域の確保をオペレーティングシステムの処理に委ねると、処理速度が低速になるという問題があった。メモリ確保の処理は、汎用性を高めているので、低速になる場合が多いからである。したがってメモリの確保や開放の処理が頻繁に行われるとプログラムの実行処理に時間を要することになる。
【0004】
また、処理内容が複雑である場合や、メモリ上にワーク領域を確保する処理が多い場合には、確保されたワーク領域が開放されない場合がある。ワーク領域が開放されない場合には、メモリ資源が無駄になる。また、開放されないメモリ領域が増えるとメモリリークの問題が発生する。さらに、メモリの開放順序が正しく行われない場合には、メモリ上の空き領域の断片化が生じ、大容量のメモリの確保ができなくなる。
【特許文献1】特開2001−137545号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、メモリの管理を容易にし、コンピュータがプログラムを高速に処理することができるデータ構造、ファイルデータ処理プログラム、情報記憶媒体を提供することにある。
【課題を解決するための手段】
【0006】
(1)本発明は、
コンピュータが所与のプログラムを実行する際に参照する参照データを含むファイルデータのデータ構造であって、
前記ファイルデータは、
前記参照データに加えて、前記所与のプログラムを実行する際に利用されるワーク領域をメモリ上に確保するためのダミーデータを含み、
前記コンピュータが、
ファイルデータ領域をメモリ上に確保してから、前記ファイルデータ領域に前記ファイルデータを読み込み、
前記ファイルデータ領域のうち前記ダミーデータが占める領域をワーク領域としてメモリ上に割り当てるとともに、割り当てられた前記ワーク領域を用いて、前記ファイルデータ領域に読み込まれた前記参照データを参照しながら前記所与のプログラムを実行することを特徴とするデータ構造に関する。
【0007】
また本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶した情報記憶媒体に関係する。
【0008】
本発明によれば、ファイルデータは、参照データに加えてダミーデータを含むデータ構造であるので、コンピュータは、プログラムを実行する際に、ファイルデータ領域のうちダミーデータが占める領域をワーク領域として利用することができる。したがって、専らファイルデータ領域上の一部をワーク領域として割り当てればよいので、メモリの管理を容易に行うことができる。さらに、既に確保されたファイルデータ領域からワーク領域を割り当てるので高速に処理を行うことができる。
【0009】
また、本発明によれば、所与のプログラムで使用するメモリの使用量は、ファイルデータ領域の使用量に相当するので、ファイルデータの容量を確認すれば、メモリの使用量の上限を想定することができ、メモリ不足によるエラーを回避することができ、適切にメモリ管理を行うことができる。
【0010】
(2)また本発明のデータ構造及び情報記憶媒体では、
前記ファイルデータが、
前記ダミーデータを特定するオフセットデータを含み、
前記コンピュータが、
前記オフセットデータに基づいて、前記ワーク領域をメモリ上に割り当ててもよい。
【0011】
本発明によれば、ファイルデータは、さらにオフセットデータを含むデータ構造であるので、ファイルデータ領域に読み込まれたオフセットデータに基づいて、ダミーデータが占める領域であるワーク領域を特定することができる。したがって、ワーク領域の割り当ての処理を高速に行うことができる。
【0012】
(3)また本発明のデータ構造及び情報記憶媒体では、
前記ファイルデータが、
前記所与のプログラムを実行する処理内容に応じた複数種類の参照データを含み、
前記コンピュータが、
前記オフセットデータに基づいて、前記各参照データと対応付けられたワーク領域をメモリ上に割り当ててもよい。
【0013】
本発明によれば、ファイルデータが複数種類の参照データを含み、コンピュータが、各参照データごとに空きメモリ領域ではなく既に確保されているファイルデータ領域のうちダミーデータが占める領域をワーク領域としてメモリ上に割り当てることができる。また、オフセットデータに基づいて、各参照データと対応付けられたワーク領域をメモリ上に割り当てることができる。したがって、コンピュータは、各参照データを参照し、各参照データに対応付けられたワーク領域の確保を高速に行うことできる。
【0014】
さらに、本発明によれば、各参照データに対応付けられたワーク領域が、ファイルデータ領域の一部として割り当てられるので、メモリ管理を容易に行うことができ、メモリ不足やメモリリークの問題を解消することができる。
【0015】
(4)また本発明のデータ構造及び情報記憶媒体では、
前記ダミーデータが、
所定領域に所定値で埋められたシーケンシャルデータであることを特徴とするデータ構造としてもよい。
【0016】
本発明によれば、ダミーデータが所定領域に所定値で埋められたシーケンシャルデータであるので、ファイルデータを圧縮した場合には、通常のデータを圧縮した場合に比べて、データの容量を抑えることができる。
【0017】
(5)本発明は、
コンピュータが所与のプログラムを実行する際に参照する参照データを含むファイルデータを用いて処理を行うファイルデータ処理プログラムであって、
ファイルデータ領域をメモリ上に確保する処理を行うメモリ管理部と、
前記参照データと、前記所与のプログラムを実行する際に利用されるワーク領域をメモリ上に確保するためのダミーデータと、を含むファイルデータを、前記ファイルデータ領域に読み込む処理を行う読み込み部と、
前記ファイルデータ領域に読み込まれた前記ファイルデータの前記参照データを参照して前記所与のプログラムを実行するプログラム実行部と、
を含み、
前記メモリ管理部が、
前記ファイルデータ領域のうち前記ダミーデータが占める領域をワーク領域としてメモリ上に割り当て、
前記プログラム実行部が、
割り当てた前記ワーク領域を用いて前記所与のプログラムを実行することを特徴とするファイルデータ処理プログラムに関する。
【0018】
また本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶した情報記憶媒体に関係する。
【0019】
本発明によれば、コンピュータは、プログラムを実行する際に、ファイルデータ領域のうちダミーデータが占める領域をワーク領域として利用することができる。したがって、専らファイルデータ領域上の一部をワーク領域として割り当てればよいので、メモリの管理を容易に行うことができる。さらに、既に確保されたファイルデータ領域からワーク領域を割り当てるので高速に処理を行うことができる。
【0020】
また、本発明によれば、所与のプログラムで使用するメモリの使用量は、ファイルデータ領域の使用量に相当するので、ファイルデータの容量を確認すれば、メモリの使用量の上限を想定することができ、メモリ不足によるエラーを回避することができ、適切にメモリ管理を行うことができる。
【0021】
さらに、コンピュータが、ファイルデータ領域を一度確保すれば、所与のプログラムを実行する際に必要となるワーク領域は、ファイルデータ領域の一部を割り当てればよいので、メモリ上の空き領域の一部を確保してワーク領域として割り当てる処理を行う必要がなく一元的にメモリ管理を行うことができる。
【0022】
(6)また本発明のプログラム及び情報記憶媒体では、
前記ファイルデータが、
前記ダミーデータを特定するオフセットデータを含み、
前記読み込み部が、
前記オフセットデータを含む前記ファイルデータを、メモリ上の前記ファイルデータ領域に読み込み、
前記メモリ管理部が、
前記オフセットデータに基づいて、前記ワーク領域をメモリ上に割り当ててもよい。
【0023】
本発明によれば、ファイルデータは、さらにオフセットデータを含むデータ構造であるので、ファイルデータ領域に読み込まれたオフセットデータに基づいて、ダミーデータが占める領域であるワーク領域を特定することができる。したがって、ワーク領域の割り当ての処理を高速に行うことができる。
【0024】
(7)また本発明のプログラム及び情報記憶媒体では、
前記ファイルデータが、
前記所与のプログラムを実行する処理内容に応じた複数種類の参照データを含み、
前記メモリ管理部が、
前記オフセットデータに基づいて、前記各参照データと対応付けられたワーク領域をメモリ上に割り当てる処理を行ってもよい。
【0025】
本発明によれば、ファイルデータが複数種類の参照データを含み、コンピュータが、各参照データごとに空きメモリ領域ではなく既に確保されているファイルデータ領域のうちダミーデータが占める領域をワーク領域としてメモリ上に割り当てることができる。また、オフセットデータに基づいて、各参照データと対応付けられたワーク領域をメモリ上に割り当てられる。したがって、コンピュータは、各参照データを参照し、各参照データに対応付けられたワーク領域の確保を高速に行うことができる。
【0026】
さらに、本発明によれば、各参照データに対応付けられたワーク領域が、ファイルデータ領域の一部として割り当てられるので、メモリ管理を容易に行うことができ、メモリ不足やメモリリークの問題を解消することができる。
【0027】
(8)また本発明のプログラム及び情報記憶媒体では、
前記メモリ管理部が、
前記処理部において、所与の終了条件が成立した場合に、メモリ上に確保したファイルデータ領域を開放する処理を行ってもよい。
【0028】
本発明によれば、所与の終了条件が成立した場合には、ファイルデータ領域を一度に開放する。このように、メモリを一度に確保し、一度に開放を行うので、メモリの断片化の問題を解消することができる。
【0029】
ここで、所与の終了条件が成立した場合とは、所与のプログラムが正常終了した場合のほか、例外的な処理により異常終了する場合も含む。
【発明を実施するための最良の形態】
【0030】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【0031】
1.構成
図1に本実施形態の画像生成システム(ゲームシステム)の機能ブロック図の例を示す。なお本実施形態の画像生成システムは図1の構成要素(各部)の一部を省略した構成としてもよい。
【0032】
操作部160は、プレーヤがプレーヤオブジェクト(移動体オブジェクトの一例、プレーヤが操作するプレーヤ車両)の操作データを入力するためのものであり、その機能は、レバー、ボタン、ステアリング、マイク、タッチパネル型ディスプレイ、或いは筺体などにより実現できる。記憶部170は、処理部100や通信部196などのワーク領域となるもので、その機能はRAM(VRAM)などにより実現できる。
【0033】
情報記憶媒体180(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(CD、DVD)、光磁気ディスク(MO)、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ(ROM)などにより実現できる。処理部100は、情報記憶媒体180に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体180には、本実施形態の各部としてコンピュータを機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)が記憶される。特に本実施形態の情報記憶媒体180では、ファイルデータ182が記憶される。情報記憶媒体180は、ファイルデータ182を圧縮したものを記憶してもよい。
【0034】
表示部190は、本実施形態により生成された画像を出力するものであり、その機能は、CRT、LCD、タッチパネル型ディスプレイ、或いはHMD(ヘッドマウントディスプレイ)などにより実現できる。音出力部192は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
【0035】
携帯型情報記憶装置194は、プレーヤの個人データやゲームのセーブデータなどが記憶されるものであり、この携帯型情報記憶装置194としては、メモリカードや携帯型ゲーム装置などがある。通信部196は外部(例えばホスト装置や他の画像生成システム)との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ASICなどのハードウェアや、プログラムなどにより実現できる。
【0036】
なお本実施形態の各部としてコンピュータを機能させるためのプログラム(データ)は、ホスト装置(サーバー)が有する情報記憶媒体からネットワーク及び通信部196を介して情報記憶媒体180(記憶部170)に配信してもよい。このようなホスト装置(サーバー)の情報記憶媒体の使用も本発明の範囲内に含めることができる。
【0037】
処理部100(プロセッサ)は、操作部160からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの処理を行う。ここでゲーム処理としては、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、キャラクタやマップなどのオブジェクトを配置する処理、オブジェクトを表示する処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などがある。この処理部100は記憶部170内の主記憶部172をワーク領域として各種処理を行う。処理部100の機能は各種プロセッサ(CPU、DSP等)、ASIC(ゲートアレイ等)などのハードウェアや、プログラムにより実現できる。
【0038】
処理部100は、ゲーム処理部110、描画部120、音生成部130を含む。なおこれらの一部を省略する構成としてもよい。
【0039】
ゲーム処理部110は、オブジェクト空間を設定する処理、オブジェクトの移動・演算処理、及び、仮想カメラを制御する処理を行う。
【0040】
オブジェクト空間設定部は、キャラクタ、建物、球場、車、樹木、柱、壁、マップ(地形)などの表示物を表す各種オブジェクト(ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブで構成されるオブジェクト)をオブジェクト空間に配置設定する処理を行う。即ちワールド座標系でのオブジェクトの位置や回転角度(向き、方向と同義)を決定し、その位置(X、Y、Z)にその回転角度(X、Y、Z軸回りでの回転角度)でオブジェクトを配置する。
【0041】
移動・動作処理部は、オブジェクト(キャラクタ、車、電車又は飛行機等)の移動・動作演算(移動・動作シミュレーション)を行う。すなわち操作部160によりプレーヤが入力した操作データや、プログラム(移動・動作アルゴリズム)や、各種データ(モーションデータ)などに基づいて、オブジェクトをオブジェクト空間内で移動させたり、オブジェクトを動作(モーション、アニメーション)させたりする処理を行う。具体的には、オブジェクトの移動情報(位置、回転角度、速度、或いは加速度)や動作情報(オブジェクトを構成する各パーツの位置、或いは回転角度)を、1フレーム(1/60秒)毎に順次求めるシミュレーション処理を行う。なおフレームは、オブジェクトの移動・動作処理(シミュレーション処理)や画像生成処理を行う時間の単位である。
【0042】
仮想カメラ制御部は、オブジェクト空間内の所与(任意)の視点から見える画像を生成するための仮想カメラ(視点)の制御処理を行う。具体的には、仮想カメラの位置(X、Y、Z)又は回転角度(X、Y、Z軸回りでの回転角度)を制御する処理(視点位置、視線方向あるいは画角を制御する処理)を行う。
【0043】
例えば仮想カメラによりオブジェクト(例えばキャラクタ、ボール、車)を後方から撮影する場合には、オブジェクトの位置又は回転の変化に仮想カメラが追従するように、仮想カメラの位置又は回転角度(仮想カメラの向き)を制御する。この場合には、移動・動作処理部で得られたオブジェクトの位置、回転角度又は速度などの情報に基づいて、仮想カメラを制御できる。或いは、仮想カメラを、予め決められた回転角度で回転させたり、予め決められた移動経路で移動させる制御を行ってもよい。この場合には、仮想カメラの位置(移動経路)又は回転角度を特定するための仮想カメラデータに基づいて仮想カメラを制御する。なお、仮想カメラ(視点)が複数存在する場合には、それぞれの仮想カメラについて上記の制御処理が行われる。
【0044】
さらに、ゲーム処理部110は、メモリ管理部112、読み込み部114、解析部116、プログラム実行部118を含む。
【0045】
メモリ管理部112は、メモリ上にプログラムの処理に必要な領域を確保する処理を行う。また、プログラムの実行中に、既に確保されたメモリ上の領域において動的にメモリを割り当てる処理を行う。さらに、確保した領域を開放する処理を行う。特に本実施形態のメモリ管理部112では、ファイルデータ182を読み込むためのファイルデータ領域を記憶部170の主記憶部172に確保する。
【0046】
そして、本実施形態のメモリ管理部112は、ファイルデータ領域のうちダミーデータが占める領域を、所与のプログラムの実行の際に利用されるワーク領域としてメモリ上に動的に割り当てる処理を行う。所与のプログラムが複数存在する場合には、プログラムごとにワーク領域を動的に割り当てる処理を行ってもよい。
【0047】
本実施形態のメモリ管理部112では、所与の終了条件が成立した場合には、ファイルデータ領域を開放する処理を行うことができる。所与の終了条件が成立した場合とは、例えば、所与のプログラムが正常終了した場合である。所与のプログラムが複数存在する場合は、すべてのプログラムが正常終了した場合であってもよい。また、例外的な処理が発生し、異常終了した場合にもファイルデータ領域を開放する処理を行うことができる。このように、所与の終了条件の成立に伴い確保したファイルデータ領域上のメモリを開放することでメモリを有効に活用することができる。
【0048】
読み込み部114は、データをメモリ上に読み込む処理を行う。特に、本実施形態の読み込み部114では、メモリ上に確保されたファイルデータ領域に、ファイルデータ182を読み込む。
【0049】
解析部116は、データを解析する処理を行う。特に本実施形態の解析部116では、ファイルデータ領域に読み込まれたファイルデータを解析する。具体的には、ファイルデータに含まれる参照データやオフセットデータを解析する。そして、ファイルデータに複数種類の参照データが含まれている場合には、各参照データごとに解析する。例えば、ファイルデータがイベントプログラムで参照される複数種類のイベントデータを含む場合には、イベントデータ毎に解析する。また、参照データがさらに複数の項目からなるデータである場合には、さらに各項目ごとに解析してもよい。
【0050】
ここで、参照データとは、所与のプログラムで参照されるデータである。すなわち、参照データとは、所与のプログラムの演算処理で使用される値、データである。例えば参照データとして、イベントプログラムで参照されるイベントデータ等が挙げられる。
【0051】
プログラム実行部118は、所与のプログラムを実行する処理を行う。特に本実施形態のプログラム実行部118は、メモリ管理部112で割り当てられたワーク領域を利用して、所与のプログラムを実行する。所与のプログラムとは、所与の命令に基づき実行されるプログラムのことをいう。例えば、イベント発生に伴う所与の命令に基づいて、解析部116で解析されたイベントデータを参照して、ワーク領域を利用してイベントプログラムを実行する処理を行う。
【0052】
描画部120は、処理部100で行われる種々の処理(ゲーム処理)の結果に基づいて描画処理を行い、これにより画像を生成し、表示部190に出力する。いわゆる3次元ゲーム画像を生成する場合には、まずオブジェクト(モデル)の各頂点の頂点データ(頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等)を含むオブジェクトデータ(モデルデータ)が入力され、入力されたオブジェクトデータに含まれる頂点データに基づいて、頂点処理(頂点シェーダによるシェーディング)が行われる。なお頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理(テッセレーション、曲面分割、ポリゴン分割)を行うようにしてもよい。頂点処理では、頂点処理プログラム(頂点シェーダプログラム、第1のシェーダプログラム)に従って、頂点の移動処理や、座標変換(ワールド座標変換、カメラ座標変換)、クリッピング処理、あるいは透視変換等のジオメトリ処理が行われ、その処理結果に基づいて、オブジェクトを構成する頂点群について与えられた頂点データを変更(更新、調整)する。そして、頂点処理後の頂点データに基づいてラスタライズ(走査変換)が行われ、ポリゴン(プリミティブ)の面とピクセルとが対応づけられる。そしてラスタライズに続いて、画像を構成するピクセル(表示画面を構成するフラグメント)を描画するピクセル処理(ピクセルシェーダによるシェーディング、フラグメント処理)が行われる。ピクセル処理では、ピクセル処理プログラム(ピクセルシェーダプログラム、第2のシェーダプログラム)に従って、テクスチャの読出し(テクスチャマッピング)、色データの設定/変更、半透明合成、アンチエイリアス等の各種処理を行って、画像を構成するピクセルの最終的な描画色を決定し、透視変換されたオブジェクトの描画色を描画バッファ174(ピクセル単位で画像情報を記憶できるバッファ。VRAM、レンダリングターゲット)に出力(描画)する。すなわち、ピクセル処理では、画像情報(色、法線、輝度、α値等)をピクセル単位で設定あるいは変更するパーピクセル処理を行う。これにより、オブジェクト空間内において仮想カメラ(所与の視点)から見える画像が生成される。なお、仮想カメラ(視点)が複数存在する場合には、それぞれの仮想カメラから見える画像を分割画像として1画面に表示できるように画像を生成することができる。
【0053】
なお頂点処理やピクセル処理は、シェーディング言語によって記述されたシェーダプログラムによって、ポリゴン(プリミティブ)の描画処理をプログラム可能にするハードウェア、いわゆるプログラマブルシェーダ(頂点シェーダやピクセルシェーダ)により実現される。プログラマブルシェーダでは、頂点単位の処理やピクセル単位の処理がプログラム可能になることで描画処理内容の自由度が高く、従来のハードウェアによる固定的な描画処理に比べて表現力を大幅に向上させることができる。
【0054】
そして描画部120は、オブジェクトを描画する際に、ジオメトリ処理、テクスチャマッピング、隠面消去処理、αブレンディング等を行う。
【0055】
ジオメトリ処理では、オブジェクトに対して、座標変換、クリッピング処理、透視投影変換、或いは光源計算等の処理が行われる。そして、ジオメトリ処理後(透視投影変換後)のオブジェクトデータ(オブジェクトの頂点の位置座標、テクスチャ座標、色データ(輝度データ)、法線ベクトル、或いはα値等)は、オブジェクトデータ記憶部176に保存される。
【0056】
テクスチャマッピングは、記憶部170のテクスチャ記憶部に記憶されるテクスチャ(テクセル値)をオブジェクトにマッピングするための処理である。具体的には、オブジェクトの頂点に設定(付与)されるテクスチャ座標等を用いて記憶部170のテクスチャ記憶部からテクスチャ(色(RGB)、α値などの表面プロパティ)を読み出す。そして、2次元の画像であるテクスチャをオブジェクトにマッピングする。この場合に、ピクセルとテクセルとを対応づける処理や、テクセルの補間としてバイリニア補間などを行う。
【0057】
隠面消去処理としては、描画ピクセルのZ値(奥行き情報)が格納されるZバッファ(奥行きバッファ)を用いたZバッファ法(奥行き比較法、Zテスト)による隠面消去処理を行うことができる。すなわちオブジェクトのプリミティブに対応する描画ピクセルを描画する際に、Zバッファに格納されるZ値を参照する。そして参照されたZバッファのZ値と、プリミティブの描画ピクセルでのZ値とを比較し、描画ピクセルでのZ値が、仮想カメラから見て手前側となるZ値(例えば小さなZ値)である場合には、その描画ピクセルの描画処理を行うとともにZバッファのZ値を新たなZ値に更新する。
【0058】
αブレンディング(α合成)は、α値(A値)に基づく半透明合成処理(通常αブレンディング、加算αブレンディング又は減算αブレンディング等)のことである。
【0059】
なお、α値は、各ピクセル(テクセル、ドット)に関連づけて記憶できる情報であり、例えば色情報以外のプラスアルファの情報である。α値は、マスク情報、半透明度(透明度、不透明度と等価)、バンプ情報などとして使用できる。
【0060】
音生成部130は、処理部100で行われる種々の処理の結果に基づいて音処理を行い、BGM、効果音、又は音声などのゲーム音を生成し、音出力部192に出力する。
【0061】
なお、本実施形態の画像生成システムは、1人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、1つの端末を用いて生成してもよいし、ネットワーク(伝送ライン、通信回線)などで接続された複数の端末(ゲーム機、携帯電話)を用いて分散処理により生成してもよい。
【0062】
2.本実施形態の手法
本実施形態のファイルデータ処理プログラムは、メモリ上にファイルデータ領域を確保し、ファイルデータをファイルデータ領域に読み込み、ファイルデータを解析して、参照データであるイベントデータを参照する。そして、ファイルデータ領域のうちダミーデータが占める領域をワーク領域としてメモリ上に動的に割り当て、ワーク領域を利用してイベントプログラムを実行する。このようにすれば、メモリの管理を容易に行うことができ、高速に処理することができるからである。
【0063】
ここで、本実施形態のイベントプログラムは、イベントの発生に伴い処理を行うプログラムである。より具体的には、イベントプログラムとは、操作部160によりプレーヤが入力した操作や、各種プログラムやデータに基づいて特定の現象が発生したときに発する信号、データ等に基づいて処理を行うプログラムである。さらに、ワーク領域とは、イベントプログラムを実行するために利用されるメモリ上の領域である。例えば、データを一時的に保持したり、演算結果等を一時的に記憶するために利用する領域である。また、ワーク領域は、データの加工を行うために利用してもよい。本実施形態のファイルデータ処理プログラムでは、ワーク領域をイベントプログラムの実行前や実行中などの所定の契機で割り当てる。
【0064】
2.1 データ構造
次に、本実施形態のファイルデータのデータ構造について、従来の手法と比較しながら説明する。
【0065】
図2(A)は、従来の手法のファイルデータのデータ構造の一例を、図2(B)は、本実施形態のファイルデータのデータ構造の一例を示す。図2(A)に示すように、従来の手法のデータ構造は、イベントデータ200を含み、オフセットデータ及びダミーデータを含まないデータ構造である。一方、図2(B)に示すように、本実施形態のファイルデータのデータ構造は、オフセットデータ210、イベントデータ220、及びダミーデータ230を含むデータ構造である。
【0066】
イベントデータとは、イベントプログラムを実行する際に参照される参照データであり、イベントプログラムを実行するために必要となる情報である。要するにイベントデータとは、イベントプログラムの実行処理の演算処理に必要な値、データである。イベントデータは、イベントプログラムの実行前に参照してもよいし、イベントプログラムの実行中に参照してもよい。また、イベントデータは、イベントプログラムを実行する処理内容に応じた複数種類のイベントデータであってもよい。具体的には、複数種類のイベントデータを予め用意し、各イベントデータを参照して、イベントプログラムを実行することができる。
【0067】
また、イベントデータは、識別番号または識別名を設けて、表示するオブジェクト、ワーク領域のサイズ、表示するオブジェクトのワールド座標系の座標値の各項目とを関連付けるようなデータとしてもよい。複数のイベントデータが存在する場合には、識別番号または識別名、各項目の内容を変えて、処理内容をそれぞれ異ならせることができる。このようにすれば、本実施形態でファイルデータを解析する場合には、識別番号や識別名に基づいて、各イベントデータを解析することができる。
【0068】
例えば、オブジェクト空間においてオブジェクトを表示するイベントプログラムが参照するイベントデータは、識別番号と対応付けて、表示するオブジェクト、ワールド座標系の座標値及びワーク領域サイズを記録したデータとすることができる。
【0069】
ダミーデータとは、イベントプログラムを実行する際に利用されるワーク領域をメモリ上に確保するために、ファイルデータの所定領域に所定値を埋めたシーケンシャルデータである。ここでシーケンシャルデータとは、連続して埋められているデータであることをいう。
【0070】
具体的には、予めメモリ上に確保しなければならないワーク領域のサイズ、または、ワーク領域として十分に必要とされるサイズが決定される。そして、ファイルデータにおいて、決定されたサイズの所定領域に所定値を埋める。このようにすれば、ファイルデータがメモリ上のファイルデータ領域に読み込まれた場合に、ダミーデータが占める領域をワーク領域として利用することができる。
【0071】
詳細に説明すると、例えば、10キロバイトのワーク領域を確保したい場合には、ファイルデータの10キロバイト分の所定領域に、0x00(NULL値)を埋める。このようにすれば、ファイルデータがメモリ上のファイルデータ領域に読み込まれた場合に、ファイルデータ領域上のダミーデータが占める領域は10キロバイトになるので、10キロバイト分のワーク領域が確保される。なお、所定値は必ずしも0x00である必要はなく、文字コード(例えばASCIIコード、シフトJISコード)により決められたコード(値、文字)でもよい。例えば0x00のように、所定値を所定領域に埋めるようにすれば、ファイルデータを圧縮した場合には、圧縮率を高めることができる。したがって、情報記憶媒体に、圧縮されたファイルデータを記憶させる場合を考慮すると、0x00を所定領域に埋めることが望ましいと考えられる。
【0072】
なお、本実施形態のダミーデータは、専らワーク領域を確保するためのデータにすぎず、ダミーデータそのものを有効に活用していないが、ダミーデータの全部または一部を、イベントプログラムに利用されるデータとしてもよい。また、本実施形態のダミーデータは、複数種類の任意のコード(値、文字)で埋められたデータであってもよい。
【0073】
オフセットデータとは、イベントプログラムが利用するワーク領域の先頭アドレスを示すオフセットアドレスである。したがって、オフセットアドレスに基づいてワーク領域を特定するので、ワーク領域の特定を容易に行うことができる。また、複数種類のイベントデータを参照してイベントプログラムを実行する場合には、それぞれのイベントプログラムで利用されるワーク領域の先頭アドレスを示すオフセットアドレスを用意する。
【0074】
本実施形態のファイルデータは、メモリ上に確保されたファイルデータ領域に読み込まれて解析される。解析する手法としては、例えば、イベントデータ毎にワーク領域を特定できるように、イベントデータとオフセットアドレスを関連付けて解析する。また、複数種類のイベントデータが存在する場合には、イベントデータ毎に解析してもよい。例えば、イベントデータ毎の識別番号や識別名に、表示するオブジェクト、ワーク領域のサイズ、表示するオブジェクトのワールド座標系の座標値、表示するオブジェクトの各項目を対応付けて解析してもよい。
【0075】
なお、図2(B)に示す本実施形態のデータ構造のファイルデータは、情報記憶媒体に記憶される。ファイルデータを圧縮した圧縮ファイルデータを情報記憶媒体に記憶してもよい。このようにすれば、情報記憶媒体に記憶する容量を抑えることができる。
【0076】
2.2 メモリ管理
次に、本実施形態のファイルデータ処理プログラムにおいて、上述したファイルデータを用いたメモリ管理の手法について、従来の手法と比較しながら説明する。
【0077】
図3は、イベントプログラムを実行する前の初期状態のメモリマップの一例を示している。使用中の領域300は、オペレーティングシステムや他のプログラムが使用している領域である。一方、空き領域310は、ファイルデータ領域を確保することができる領域である。
【0078】
次に、イベントプログラムを実行するために、メモリの空き領域からファイルデータを読み込むためのファイルデータ領域を確保する。具体的には、ファイルデータの容量(サイズ)に応じたファイルデータ領域を確保する。このようにすれば、不必要に大容量のメモリを確保せずに必要な容量分のメモリを確保することができる。なお、メモリの容量に余裕があれば、ファイルデータのサイズ以上の容量のファイルデータ領域を確保してもよい。なお、ファイルデータを圧縮した圧縮ファイルデータが情報記憶媒体に記憶されている場合には、圧縮ファイルデータを伸張する処理を行い、伸張されたファイルデータの容量に基づいて、ファイルデータ領域を確保する。要するに、ファイルデータの容量に基づいて、メモリ上にファイルデータ領域を確保する処理を行う。
【0079】
ファイルデータ領域を確保したら、情報記憶媒体に記憶されているファイルデータを、ファイルデータ領域に読み込む処理を行う。なお、圧縮ファイルデータが情報記憶媒体に記憶されている場合には、伸張する処理を行い、伸張されたファイルデータをファイルデータ領域に読み込む処理を行う。
【0080】
図4は、従来の手法において、メモリ上にファイルデータ領域を確保し、ファイルデータが読み込まれたときのメモリマップの一例を示している。なお、ファイルデータ領域410は、イベントデータ412が格納されている。
【0081】
図5は、本実施形態において、メモリ上にファイルデータ領域を確保し、ファイルデータが読み込まれたときのメモリマップの一例を示している。ファイルデータ領域510は、オフセットデータ512、イベントデータ514、ダミーデータ516が格納されている。本実施形態のファイルデータはオフセットデータ及びダミーデータを含むので、従来の手法に比べてメモリ上に確保されるファイルデータ領域のサイズが大きくなる。しかし、オフセットデータは、ワーク領域の先頭を示すオフセットアドレスのデータであるので、ファイルデータ全体のうちオフセットデータの容量は極僅かである。また、本実施形態では、ダミーデータが占める領域をワーク領域として、ワーク領域含むファイルデータ領域を確保する。一方、従来の手法では、ファイルデータ領域を確保した後に、ワーク領域を確保する。したがって、本実施形態においてメモリ上で使用される領域のサイズは、従来の手法においてメモリ上で使用される領域のサイズと殆ど変わらない。
【0082】
次に、本実施形態のファイルデータ処理プログラムが、イベントプログラムで利用されるワーク領域を割り当てる手法について、従来の手法を比較しながら説明する。
【0083】
従来の手法では、メモリ上に格納されたイベントデータを参照し、イベントデータに必要なワーク領域を空き領域から確保して、イベントプログラムを実行する。イベントデータが複数存在する場合には、イベントデータ毎にイベントプログラムのワーク領域を空き領域から確保する。
【0084】
図6は、従来の手法のワーク領域を確保したときのメモリマップの一例を示す。例えば、図6に示すように、ファイルデータ領域610にイベントデータ1(612)、イベントデータ2(614)、イベントデータ3(616)が格納されている。従来の手法では、イベントデータ1を参照して実行するイベントプログラムは、空き領域からワーク領域1(620)を確保し、ワーク領域1(620)を利用してプログラムを実行する。また、イベントデータ2を参照して実行されるイベントプログラムは、ワーク領域2(630)を確保し、イベントプログラムを実行する。イベントデータ3を参照して実行されるイベントプログラムは、ワーク領域3(640)を確保してイベントプログラムを実行する。
【0085】
従来の手法では、メモリ上の空き領域にイベントプログラムに利用されるワーク領域を確保していた。したがって、イベントプログラムを実行する度にメモリの空き容量やワーク領域の確保及び開放を考慮しなければならないので、メモリの管理が煩雑であった。また、ワーク領域の確保の処理は、オペレーティングシステムの処理に委ねており、処理が低速になっていた。
【0086】
一方、本実施形態のファイルデータ処理プログラムでは、メモリ上のファイルデータ領域に格納されたイベントデータを参照し、ファイルデータ領域のうちダミーデータが占める領域をワーク領域として割り当てる。そして、ワーク領域を利用してイベントプログラムを実行する。
【0087】
図7は、本実施形態のワーク領域を割り当てたときのメモリマップの一例を示す。図7に示すように、ファイルデータ領域710に格納されているイベントデータ1(712)を参照して実行するイベントプログラムは、ファイルデータ領域のうちダミーデータが占めるワーク領域1(715)を動的に割り当てられる。ダミーデータはオフセットアドレスに基づいて特定することができる。また、同様にイベントデータ2(713)を参照して実行するイベントプログラムは、ワーク領域2(716)を動的に割り当てられる。また、イベントデータ3(714)を参照して実行するイベントプログラムは、ワーク領域3(717)を動的に割り当てられる。
【0088】
従来の手法では、メモリの空き領域からワーク領域を確保するのに対して、本実施形態では、既に確保されたファイルデータ領域のうちダミーデータが占める領域をワーク領域として割り当てる。本実施形態では、メモリ上のワーク領域の確保の処理をオペレーティングシステムではなく、ファイルデータ領域の一部を動的に割り当てるように処理しているので、従来に比べて処理速度を高めることがでる。また、ファイルデータ領域のメモリを管理すればよいので、イベントプログラムを実行する度にメモリの空き容量や、ワーク領域の開放などを考慮する必要がない。したがって、メモリの管理を容易に行うことができる。
【0089】
本実施形態のワーク領域を割り当てる手法について説明する。本実施形態のファイルデータ処理プログラムでは、従来行われていたメモリ確保のメソッドを多重定義し、ファイルデータ領域の一部の領域をワーク領域として動的に割り当てる処理を行う。いわゆるオーバーロードによってワーク領域を動的に割り当てる処理を行う。具体的には、オペレーティングシステムによるメモリを確保するメソッドを、同名のメソッドで戻り値や引数の数を変更してファイルデータ領域に確保した領域からメモリを割り当てるようにメソッドを定義する。例えば、イベントデータに対応付けられたオフセットアドレスに基づいて、ワーク領域の先頭のアドレスを指定し、ワーク領域として確保すべき容量に基づいてワーク領域を割り当てるように定義する。そして、ワーク領域を確保する場合には、オペレーティングシステムによるメモリを確保するメソッドではなく、ファイルデータ領域に確保した領域からメモリを割り当てるメソッドを呼び出す。このようにすれば、既に確保されたメモリ上のファイルデータ領域を割り当てるので、コンピュータの処理速度は、従来の手法に比べて格段に速い。
【0090】
さらに、本実施形態によれば、ワーク領域の割り当ての処理速度の向上のみならず、メモリの断片化の問題を解消することができる。
【0091】
図8は、従来の手法のワーク領域を開放したときのメモリマップの一例を示す。図9は、本実施形態のワーク領域を開放したときのメモリマップの一例を示す。
【0092】
従来の手法では、ワーク領域を利用しなくなった場合においても、メモリの開放をせずに確保したままにしたり、複数のワーク領域を確保した場合に開放順序を誤ることで、空きメモリの断片化が生じていた。メモリの管理を、オペレーティングシステムの処理に委ねていたからである。例えば、図8に示すように、開放された領域は、空き領域830のみで、ワーク領域1(820)、ワーク領域3(840)は開放されずに確保されたままの状態になる。
【0093】
図8に示すように、空き領域が断片的に生じてしまうと、まとまって大きな容量のメモリを確保することができなくなってしまう。また、実際には使用していないメモリ上の領域が確保されたままの状態になるので、メモリ資源が無駄になり、本来必要とされるメモリの確保ができずに、システムの障害が発生するおそれがある。
【0094】
これに対して、図9に示すように本実施形態では、ファイルデータ領域を開放した場合に、ファイルデータ領域が確保されていた領域910が空き領域になる。ワーク領域であった領域916も含めてファイルデータ領域が一度に開放されるので、メモリの断片化の問題を解消することができる。
【0095】
このように、本実施形態のファイルデータ処理プログラムでは、図9に示すように既にメモリ上に確保されたファイルデータ領域を所与の終了条件の成立に伴って開放する。したがって、一度に確保された領域が一度に開放されるので、従来問題となっていたメモリの断片化を防止することができる。また、各ワーク領域の開放を考慮する必要もないので、メモリ管理を容易に行うことができる。
【0096】
3.本実施形態の処理
次に、本実施形態のファイルデータ処理プログラムの詳細な処理例について図10のフローチャートを用いて説明する。
【0097】
まず、ファイルデータを読み込むためのファイルデータ領域をメモリ上に確保する(ステップS10)。ファイルデータのサイズに基づいて、ファイルデータ領域を確保してもよい。例えば、ファイルデータのサイズが128メガバイトである場合には、ファイルデータ領域を128メガバイトで確保する。
【0098】
次に、ファイルデータをファイルデータ領域に読み込む。(ステップS20)。ファイルデータ領域に読み込まれたファイルデータのダミーデータが占めるメモリ上の領域が、ワーク領域として利用される。
【0099】
次に、メモリに読み込まれたファイルデータを解析する(ステップS30)。複数種類のイベントデータが存在する場合には、イベントデータ毎に解析してもよい。また、各イベントデータに対応付けてオフセットアドレスを特定できるように解析してもよい。
【0100】
続いて、解析結果に基づいてイベントデータを参照する(ステップS40)。
【0101】
そして、イベントデータに対応するオフセットアドレスを取得し(ステップS50)、オフセットアドレスに基づいて、イベントプログラムに利用されるワーク領域を割り当てる(ステップS60)。例えば、オフセットアドレスに基づいてアドレス100番地に、10キロバイトのワーク領域を割り当てるように処理を行う。ワーク領域を利用する前に0x00で初期化するようにしてもよい。そして、イベントプログラムは、ワーク領域を利用してイベントプログラムを実行する(ステップS70)。
【0102】
イベントプログラムの実行後は、次のイベントデータあるかを判断し(ステップS80)、次のイベントデータがある場合には(ステップS80のYes)、ステップS40〜ステップS80を繰り返し行う。イベントデータがない場合には、(ステップS80のNo)ファイルデータ領域を開放する(ステップS90)。
【0103】
4.ハードウェア構成
図11に本実施形態を実現できるハードウェア構成の例を示す。メインプロセッサ900は、DVD982(情報記憶媒体。CDでもよい。)に格納されたプログラム、通信インターフェース990を介してダウンロードされたプログラム、或いはROM950に格納されたプログラムなどに基づき動作し、ゲーム処理、画像処理、音処理などを実行する。コプロセッサ902は、メインプロセッサ900の処理を補助するものであり、マトリクス演算(ベクトル演算)を高速に実行する。例えばオブジェクトを移動させたり動作(モーション)させる物理シミュレーションに、マトリクス演算処理が必要な場合には、メインプロセッサ900上で動作するプログラムが、その処理をコプロセッサ902に指示(依頼)する。
【0104】
ジオメトリプロセッサ904は、メインプロセッサ900上で動作するプログラムからの指示に基づいて、座標変換、透視変換、光源計算、曲面生成などのジオメトリ処理を行うものであり、マトリクス演算を高速に実行する。データ伸張プロセッサ906は、圧縮された画像データや音データのデコード処理を行ったり、メインプロセッサ900のデコード処理をアクセレートする。これにより、オープニング画面やゲーム画面において、MPEG方式等で圧縮された動画像を表示できる。
【0105】
描画プロセッサ910は、ポリゴンや曲面などのプリミティブ面で構成されるオブジェクトの描画(レンダリング)処理を実行する。オブジェクトの描画の際には、メインプロセッサ900は、DMAコントローラ970を利用して、描画データを描画プロセッサ910に渡すと共に、必要であればテクスチャ記憶部924にテクスチャを転送する。すると描画プロセッサ910は、描画データやテクスチャに基づいて、Zバッファなどを利用した隠面消去を行いながら、オブジェクトをフレームバッファ922に描画する。また描画プロセッサ910は、αブレンディング(半透明処理)、デプスキューイング、ミップマッピング、フォグ処理、バイリニア・フィルタリング、トライリニア・フィルタリング、アンチエイリアシング、シェーディング処理なども行う。頂点シェーダやピクセルシェーダなどのプログラマブルシェーダが実装されている場合には、シェーダプログラムに従って、頂点データの作成・変更(更新)やピクセル(あるいはフラグメント)の描画色の決定を行う。1フレーム分の画像がフレームバッファ922に書き込まれるとその画像はディスプレイ912に表示される。
【0106】
サウンドプロセッサ930は、多チャンネルのADPCM音源などを内蔵し、BGM、効果音、音声などのゲーム音を生成し、スピーカ932を介して出力する。ゲームコントローラ942やメモリカード944からのデータはシリアルインターフェース940を介して入力される。
【0107】
ROM950にはシステムプログラムなどが格納される。業務用ゲームシステムの場合にはROM950が情報記憶媒体として機能し、ROM950に各種プログラムが格納される。なおROM950の代わりにハードディスクを利用してもよい。RAM960は各種プロセッサの作業領域となる。DMAコントローラ970は、プロセッサ、メモリ間でのDMA転送を制御する。DVDドライブ980(CDドライブでもよい。)は、プログラム、画像データ、或いは音データなどが格納されるDVD982(CDでもよい。)にアクセスする。通信インターフェース990はネットワーク(通信回線、高速シリアルバス)を介して外部との間でデータ転送を行う。
【0108】
なお本実施形態の各部(各手段)の処理は、その全てをハードウェアのみにより実現してもよいし、情報記憶媒体に格納されるプログラムや通信インターフェースを介して配信されるプログラムにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。
【0109】
そして本実施形態の各部の処理をハードウェアとプログラムの両方により実現する場合には、情報記憶媒体には、ハードウェア(コンピュータ)を本実施形態の各部として機能させるためのプログラムが格納される。より具体的には、上記プログラムが、ハードウェアである各プロセッサ902、904、906、910、930に処理を指示すると共に、必要であればデータを渡す。そして、各プロセッサ902、904、906、910、930は、その指示と渡されたデータとに基づいて本発明の各部の処理を実現する。
【0110】
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。例えば、明細書又は図面中の記載において広義や同義な用語として引用された用語は、明細書又は図面中の他の記載においても広義や同義な用語に置き換えることができる。また接触痕跡の表現手法も、本実施形態で説明したものに限定されず、これらと均等な手法も本発明の範囲に含まれる。
【0111】
なお、イベントプログラムに限らず、ワーク領域を利用する種々のプログラムにおいて、ダミーデータを含むファイルデータをメモリ上に読み込み、ダミーデータが占める領域をワーク領域として動的に割り当てるようにしてもよい。
【0112】
また、ファイルデータには、オフセットデータ、参照データ、ダミーデータの他に種々のデータを含むようにしてもよい。
【0113】
なお、本実施形態のメモリ管理部112のファイルデータ領域の確保は、オペレーティングシステムの処理により確保してもよいし、動的にファイルデータ領域を確保してもよい。また、本実施形態のメモリ管理部112は、ガベージコレクションや、ヒープ領域の拡張や縮小等の処理、メモリ不足の例外処理等の種々のメモリ管理を行うようにしてもよい。
【図面の簡単な説明】
【0114】
【図1】本実施形態の画像生成システムの機能ブロック図の例。
【図2】図2(A)(B)はデータ構造の説明図。
【図3】メモリの初期状態の説明図。
【図4】従来のファイルデータ領域の説明図。
【図5】本実施形態のファイルデータ領域の説明図。
【図6】従来のワーク領域の説明図。
【図7】本実施形態のワーク領域の説明図。
【図8】従来のワーク領域の開放の説明図。
【図9】本実施形態のファイルデータ領域の開放の説明図。
【図10】本実施形態の処理のフローチャート。
【図11】ハードウェア構成例。
【符号の説明】
【0115】
100 処理部、110 ゲーム処理部、112 メモリ管理部、114 読み込み部、
116 解析部、118 プログラム実行部、120 描画部、130 音生成部、
160 操作部、170 記憶部、172 主記憶部、174 描画バッファ、
180 情報記憶媒体、190 表示部、192 音出力部、
194 携帯型情報記憶装置、196 通信部
【技術分野】
【0001】
本発明は、データ構造、ファイルデータ処理プログラム、情報記憶媒体に関する。
【背景技術】
【0002】
従来より、コンピュータが、メモリ上に領域を確保してファイルデータを読み込み、読み込まれたデータを参照して、所与のプログラムを実行するファイルデータ処理プログラムが多数存在する。そして、このようなファイルデータの処理では、さらにメモリ上にワーク領域を確保し、ワーク領域を利用して所与のプログラムを実行する場合が多い。
【0003】
しかしながら、ワーク領域をメモリ上に確保する場合において、さまざまな問題があった。例えば、ワーク領域の確保をオペレーティングシステムの処理に委ねると、処理速度が低速になるという問題があった。メモリ確保の処理は、汎用性を高めているので、低速になる場合が多いからである。したがってメモリの確保や開放の処理が頻繁に行われるとプログラムの実行処理に時間を要することになる。
【0004】
また、処理内容が複雑である場合や、メモリ上にワーク領域を確保する処理が多い場合には、確保されたワーク領域が開放されない場合がある。ワーク領域が開放されない場合には、メモリ資源が無駄になる。また、開放されないメモリ領域が増えるとメモリリークの問題が発生する。さらに、メモリの開放順序が正しく行われない場合には、メモリ上の空き領域の断片化が生じ、大容量のメモリの確保ができなくなる。
【特許文献1】特開2001−137545号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、メモリの管理を容易にし、コンピュータがプログラムを高速に処理することができるデータ構造、ファイルデータ処理プログラム、情報記憶媒体を提供することにある。
【課題を解決するための手段】
【0006】
(1)本発明は、
コンピュータが所与のプログラムを実行する際に参照する参照データを含むファイルデータのデータ構造であって、
前記ファイルデータは、
前記参照データに加えて、前記所与のプログラムを実行する際に利用されるワーク領域をメモリ上に確保するためのダミーデータを含み、
前記コンピュータが、
ファイルデータ領域をメモリ上に確保してから、前記ファイルデータ領域に前記ファイルデータを読み込み、
前記ファイルデータ領域のうち前記ダミーデータが占める領域をワーク領域としてメモリ上に割り当てるとともに、割り当てられた前記ワーク領域を用いて、前記ファイルデータ領域に読み込まれた前記参照データを参照しながら前記所与のプログラムを実行することを特徴とするデータ構造に関する。
【0007】
また本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶した情報記憶媒体に関係する。
【0008】
本発明によれば、ファイルデータは、参照データに加えてダミーデータを含むデータ構造であるので、コンピュータは、プログラムを実行する際に、ファイルデータ領域のうちダミーデータが占める領域をワーク領域として利用することができる。したがって、専らファイルデータ領域上の一部をワーク領域として割り当てればよいので、メモリの管理を容易に行うことができる。さらに、既に確保されたファイルデータ領域からワーク領域を割り当てるので高速に処理を行うことができる。
【0009】
また、本発明によれば、所与のプログラムで使用するメモリの使用量は、ファイルデータ領域の使用量に相当するので、ファイルデータの容量を確認すれば、メモリの使用量の上限を想定することができ、メモリ不足によるエラーを回避することができ、適切にメモリ管理を行うことができる。
【0010】
(2)また本発明のデータ構造及び情報記憶媒体では、
前記ファイルデータが、
前記ダミーデータを特定するオフセットデータを含み、
前記コンピュータが、
前記オフセットデータに基づいて、前記ワーク領域をメモリ上に割り当ててもよい。
【0011】
本発明によれば、ファイルデータは、さらにオフセットデータを含むデータ構造であるので、ファイルデータ領域に読み込まれたオフセットデータに基づいて、ダミーデータが占める領域であるワーク領域を特定することができる。したがって、ワーク領域の割り当ての処理を高速に行うことができる。
【0012】
(3)また本発明のデータ構造及び情報記憶媒体では、
前記ファイルデータが、
前記所与のプログラムを実行する処理内容に応じた複数種類の参照データを含み、
前記コンピュータが、
前記オフセットデータに基づいて、前記各参照データと対応付けられたワーク領域をメモリ上に割り当ててもよい。
【0013】
本発明によれば、ファイルデータが複数種類の参照データを含み、コンピュータが、各参照データごとに空きメモリ領域ではなく既に確保されているファイルデータ領域のうちダミーデータが占める領域をワーク領域としてメモリ上に割り当てることができる。また、オフセットデータに基づいて、各参照データと対応付けられたワーク領域をメモリ上に割り当てることができる。したがって、コンピュータは、各参照データを参照し、各参照データに対応付けられたワーク領域の確保を高速に行うことできる。
【0014】
さらに、本発明によれば、各参照データに対応付けられたワーク領域が、ファイルデータ領域の一部として割り当てられるので、メモリ管理を容易に行うことができ、メモリ不足やメモリリークの問題を解消することができる。
【0015】
(4)また本発明のデータ構造及び情報記憶媒体では、
前記ダミーデータが、
所定領域に所定値で埋められたシーケンシャルデータであることを特徴とするデータ構造としてもよい。
【0016】
本発明によれば、ダミーデータが所定領域に所定値で埋められたシーケンシャルデータであるので、ファイルデータを圧縮した場合には、通常のデータを圧縮した場合に比べて、データの容量を抑えることができる。
【0017】
(5)本発明は、
コンピュータが所与のプログラムを実行する際に参照する参照データを含むファイルデータを用いて処理を行うファイルデータ処理プログラムであって、
ファイルデータ領域をメモリ上に確保する処理を行うメモリ管理部と、
前記参照データと、前記所与のプログラムを実行する際に利用されるワーク領域をメモリ上に確保するためのダミーデータと、を含むファイルデータを、前記ファイルデータ領域に読み込む処理を行う読み込み部と、
前記ファイルデータ領域に読み込まれた前記ファイルデータの前記参照データを参照して前記所与のプログラムを実行するプログラム実行部と、
を含み、
前記メモリ管理部が、
前記ファイルデータ領域のうち前記ダミーデータが占める領域をワーク領域としてメモリ上に割り当て、
前記プログラム実行部が、
割り当てた前記ワーク領域を用いて前記所与のプログラムを実行することを特徴とするファイルデータ処理プログラムに関する。
【0018】
また本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶した情報記憶媒体に関係する。
【0019】
本発明によれば、コンピュータは、プログラムを実行する際に、ファイルデータ領域のうちダミーデータが占める領域をワーク領域として利用することができる。したがって、専らファイルデータ領域上の一部をワーク領域として割り当てればよいので、メモリの管理を容易に行うことができる。さらに、既に確保されたファイルデータ領域からワーク領域を割り当てるので高速に処理を行うことができる。
【0020】
また、本発明によれば、所与のプログラムで使用するメモリの使用量は、ファイルデータ領域の使用量に相当するので、ファイルデータの容量を確認すれば、メモリの使用量の上限を想定することができ、メモリ不足によるエラーを回避することができ、適切にメモリ管理を行うことができる。
【0021】
さらに、コンピュータが、ファイルデータ領域を一度確保すれば、所与のプログラムを実行する際に必要となるワーク領域は、ファイルデータ領域の一部を割り当てればよいので、メモリ上の空き領域の一部を確保してワーク領域として割り当てる処理を行う必要がなく一元的にメモリ管理を行うことができる。
【0022】
(6)また本発明のプログラム及び情報記憶媒体では、
前記ファイルデータが、
前記ダミーデータを特定するオフセットデータを含み、
前記読み込み部が、
前記オフセットデータを含む前記ファイルデータを、メモリ上の前記ファイルデータ領域に読み込み、
前記メモリ管理部が、
前記オフセットデータに基づいて、前記ワーク領域をメモリ上に割り当ててもよい。
【0023】
本発明によれば、ファイルデータは、さらにオフセットデータを含むデータ構造であるので、ファイルデータ領域に読み込まれたオフセットデータに基づいて、ダミーデータが占める領域であるワーク領域を特定することができる。したがって、ワーク領域の割り当ての処理を高速に行うことができる。
【0024】
(7)また本発明のプログラム及び情報記憶媒体では、
前記ファイルデータが、
前記所与のプログラムを実行する処理内容に応じた複数種類の参照データを含み、
前記メモリ管理部が、
前記オフセットデータに基づいて、前記各参照データと対応付けられたワーク領域をメモリ上に割り当てる処理を行ってもよい。
【0025】
本発明によれば、ファイルデータが複数種類の参照データを含み、コンピュータが、各参照データごとに空きメモリ領域ではなく既に確保されているファイルデータ領域のうちダミーデータが占める領域をワーク領域としてメモリ上に割り当てることができる。また、オフセットデータに基づいて、各参照データと対応付けられたワーク領域をメモリ上に割り当てられる。したがって、コンピュータは、各参照データを参照し、各参照データに対応付けられたワーク領域の確保を高速に行うことができる。
【0026】
さらに、本発明によれば、各参照データに対応付けられたワーク領域が、ファイルデータ領域の一部として割り当てられるので、メモリ管理を容易に行うことができ、メモリ不足やメモリリークの問題を解消することができる。
【0027】
(8)また本発明のプログラム及び情報記憶媒体では、
前記メモリ管理部が、
前記処理部において、所与の終了条件が成立した場合に、メモリ上に確保したファイルデータ領域を開放する処理を行ってもよい。
【0028】
本発明によれば、所与の終了条件が成立した場合には、ファイルデータ領域を一度に開放する。このように、メモリを一度に確保し、一度に開放を行うので、メモリの断片化の問題を解消することができる。
【0029】
ここで、所与の終了条件が成立した場合とは、所与のプログラムが正常終了した場合のほか、例外的な処理により異常終了する場合も含む。
【発明を実施するための最良の形態】
【0030】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【0031】
1.構成
図1に本実施形態の画像生成システム(ゲームシステム)の機能ブロック図の例を示す。なお本実施形態の画像生成システムは図1の構成要素(各部)の一部を省略した構成としてもよい。
【0032】
操作部160は、プレーヤがプレーヤオブジェクト(移動体オブジェクトの一例、プレーヤが操作するプレーヤ車両)の操作データを入力するためのものであり、その機能は、レバー、ボタン、ステアリング、マイク、タッチパネル型ディスプレイ、或いは筺体などにより実現できる。記憶部170は、処理部100や通信部196などのワーク領域となるもので、その機能はRAM(VRAM)などにより実現できる。
【0033】
情報記憶媒体180(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(CD、DVD)、光磁気ディスク(MO)、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ(ROM)などにより実現できる。処理部100は、情報記憶媒体180に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体180には、本実施形態の各部としてコンピュータを機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)が記憶される。特に本実施形態の情報記憶媒体180では、ファイルデータ182が記憶される。情報記憶媒体180は、ファイルデータ182を圧縮したものを記憶してもよい。
【0034】
表示部190は、本実施形態により生成された画像を出力するものであり、その機能は、CRT、LCD、タッチパネル型ディスプレイ、或いはHMD(ヘッドマウントディスプレイ)などにより実現できる。音出力部192は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
【0035】
携帯型情報記憶装置194は、プレーヤの個人データやゲームのセーブデータなどが記憶されるものであり、この携帯型情報記憶装置194としては、メモリカードや携帯型ゲーム装置などがある。通信部196は外部(例えばホスト装置や他の画像生成システム)との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ASICなどのハードウェアや、プログラムなどにより実現できる。
【0036】
なお本実施形態の各部としてコンピュータを機能させるためのプログラム(データ)は、ホスト装置(サーバー)が有する情報記憶媒体からネットワーク及び通信部196を介して情報記憶媒体180(記憶部170)に配信してもよい。このようなホスト装置(サーバー)の情報記憶媒体の使用も本発明の範囲内に含めることができる。
【0037】
処理部100(プロセッサ)は、操作部160からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの処理を行う。ここでゲーム処理としては、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、キャラクタやマップなどのオブジェクトを配置する処理、オブジェクトを表示する処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などがある。この処理部100は記憶部170内の主記憶部172をワーク領域として各種処理を行う。処理部100の機能は各種プロセッサ(CPU、DSP等)、ASIC(ゲートアレイ等)などのハードウェアや、プログラムにより実現できる。
【0038】
処理部100は、ゲーム処理部110、描画部120、音生成部130を含む。なおこれらの一部を省略する構成としてもよい。
【0039】
ゲーム処理部110は、オブジェクト空間を設定する処理、オブジェクトの移動・演算処理、及び、仮想カメラを制御する処理を行う。
【0040】
オブジェクト空間設定部は、キャラクタ、建物、球場、車、樹木、柱、壁、マップ(地形)などの表示物を表す各種オブジェクト(ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブで構成されるオブジェクト)をオブジェクト空間に配置設定する処理を行う。即ちワールド座標系でのオブジェクトの位置や回転角度(向き、方向と同義)を決定し、その位置(X、Y、Z)にその回転角度(X、Y、Z軸回りでの回転角度)でオブジェクトを配置する。
【0041】
移動・動作処理部は、オブジェクト(キャラクタ、車、電車又は飛行機等)の移動・動作演算(移動・動作シミュレーション)を行う。すなわち操作部160によりプレーヤが入力した操作データや、プログラム(移動・動作アルゴリズム)や、各種データ(モーションデータ)などに基づいて、オブジェクトをオブジェクト空間内で移動させたり、オブジェクトを動作(モーション、アニメーション)させたりする処理を行う。具体的には、オブジェクトの移動情報(位置、回転角度、速度、或いは加速度)や動作情報(オブジェクトを構成する各パーツの位置、或いは回転角度)を、1フレーム(1/60秒)毎に順次求めるシミュレーション処理を行う。なおフレームは、オブジェクトの移動・動作処理(シミュレーション処理)や画像生成処理を行う時間の単位である。
【0042】
仮想カメラ制御部は、オブジェクト空間内の所与(任意)の視点から見える画像を生成するための仮想カメラ(視点)の制御処理を行う。具体的には、仮想カメラの位置(X、Y、Z)又は回転角度(X、Y、Z軸回りでの回転角度)を制御する処理(視点位置、視線方向あるいは画角を制御する処理)を行う。
【0043】
例えば仮想カメラによりオブジェクト(例えばキャラクタ、ボール、車)を後方から撮影する場合には、オブジェクトの位置又は回転の変化に仮想カメラが追従するように、仮想カメラの位置又は回転角度(仮想カメラの向き)を制御する。この場合には、移動・動作処理部で得られたオブジェクトの位置、回転角度又は速度などの情報に基づいて、仮想カメラを制御できる。或いは、仮想カメラを、予め決められた回転角度で回転させたり、予め決められた移動経路で移動させる制御を行ってもよい。この場合には、仮想カメラの位置(移動経路)又は回転角度を特定するための仮想カメラデータに基づいて仮想カメラを制御する。なお、仮想カメラ(視点)が複数存在する場合には、それぞれの仮想カメラについて上記の制御処理が行われる。
【0044】
さらに、ゲーム処理部110は、メモリ管理部112、読み込み部114、解析部116、プログラム実行部118を含む。
【0045】
メモリ管理部112は、メモリ上にプログラムの処理に必要な領域を確保する処理を行う。また、プログラムの実行中に、既に確保されたメモリ上の領域において動的にメモリを割り当てる処理を行う。さらに、確保した領域を開放する処理を行う。特に本実施形態のメモリ管理部112では、ファイルデータ182を読み込むためのファイルデータ領域を記憶部170の主記憶部172に確保する。
【0046】
そして、本実施形態のメモリ管理部112は、ファイルデータ領域のうちダミーデータが占める領域を、所与のプログラムの実行の際に利用されるワーク領域としてメモリ上に動的に割り当てる処理を行う。所与のプログラムが複数存在する場合には、プログラムごとにワーク領域を動的に割り当てる処理を行ってもよい。
【0047】
本実施形態のメモリ管理部112では、所与の終了条件が成立した場合には、ファイルデータ領域を開放する処理を行うことができる。所与の終了条件が成立した場合とは、例えば、所与のプログラムが正常終了した場合である。所与のプログラムが複数存在する場合は、すべてのプログラムが正常終了した場合であってもよい。また、例外的な処理が発生し、異常終了した場合にもファイルデータ領域を開放する処理を行うことができる。このように、所与の終了条件の成立に伴い確保したファイルデータ領域上のメモリを開放することでメモリを有効に活用することができる。
【0048】
読み込み部114は、データをメモリ上に読み込む処理を行う。特に、本実施形態の読み込み部114では、メモリ上に確保されたファイルデータ領域に、ファイルデータ182を読み込む。
【0049】
解析部116は、データを解析する処理を行う。特に本実施形態の解析部116では、ファイルデータ領域に読み込まれたファイルデータを解析する。具体的には、ファイルデータに含まれる参照データやオフセットデータを解析する。そして、ファイルデータに複数種類の参照データが含まれている場合には、各参照データごとに解析する。例えば、ファイルデータがイベントプログラムで参照される複数種類のイベントデータを含む場合には、イベントデータ毎に解析する。また、参照データがさらに複数の項目からなるデータである場合には、さらに各項目ごとに解析してもよい。
【0050】
ここで、参照データとは、所与のプログラムで参照されるデータである。すなわち、参照データとは、所与のプログラムの演算処理で使用される値、データである。例えば参照データとして、イベントプログラムで参照されるイベントデータ等が挙げられる。
【0051】
プログラム実行部118は、所与のプログラムを実行する処理を行う。特に本実施形態のプログラム実行部118は、メモリ管理部112で割り当てられたワーク領域を利用して、所与のプログラムを実行する。所与のプログラムとは、所与の命令に基づき実行されるプログラムのことをいう。例えば、イベント発生に伴う所与の命令に基づいて、解析部116で解析されたイベントデータを参照して、ワーク領域を利用してイベントプログラムを実行する処理を行う。
【0052】
描画部120は、処理部100で行われる種々の処理(ゲーム処理)の結果に基づいて描画処理を行い、これにより画像を生成し、表示部190に出力する。いわゆる3次元ゲーム画像を生成する場合には、まずオブジェクト(モデル)の各頂点の頂点データ(頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等)を含むオブジェクトデータ(モデルデータ)が入力され、入力されたオブジェクトデータに含まれる頂点データに基づいて、頂点処理(頂点シェーダによるシェーディング)が行われる。なお頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理(テッセレーション、曲面分割、ポリゴン分割)を行うようにしてもよい。頂点処理では、頂点処理プログラム(頂点シェーダプログラム、第1のシェーダプログラム)に従って、頂点の移動処理や、座標変換(ワールド座標変換、カメラ座標変換)、クリッピング処理、あるいは透視変換等のジオメトリ処理が行われ、その処理結果に基づいて、オブジェクトを構成する頂点群について与えられた頂点データを変更(更新、調整)する。そして、頂点処理後の頂点データに基づいてラスタライズ(走査変換)が行われ、ポリゴン(プリミティブ)の面とピクセルとが対応づけられる。そしてラスタライズに続いて、画像を構成するピクセル(表示画面を構成するフラグメント)を描画するピクセル処理(ピクセルシェーダによるシェーディング、フラグメント処理)が行われる。ピクセル処理では、ピクセル処理プログラム(ピクセルシェーダプログラム、第2のシェーダプログラム)に従って、テクスチャの読出し(テクスチャマッピング)、色データの設定/変更、半透明合成、アンチエイリアス等の各種処理を行って、画像を構成するピクセルの最終的な描画色を決定し、透視変換されたオブジェクトの描画色を描画バッファ174(ピクセル単位で画像情報を記憶できるバッファ。VRAM、レンダリングターゲット)に出力(描画)する。すなわち、ピクセル処理では、画像情報(色、法線、輝度、α値等)をピクセル単位で設定あるいは変更するパーピクセル処理を行う。これにより、オブジェクト空間内において仮想カメラ(所与の視点)から見える画像が生成される。なお、仮想カメラ(視点)が複数存在する場合には、それぞれの仮想カメラから見える画像を分割画像として1画面に表示できるように画像を生成することができる。
【0053】
なお頂点処理やピクセル処理は、シェーディング言語によって記述されたシェーダプログラムによって、ポリゴン(プリミティブ)の描画処理をプログラム可能にするハードウェア、いわゆるプログラマブルシェーダ(頂点シェーダやピクセルシェーダ)により実現される。プログラマブルシェーダでは、頂点単位の処理やピクセル単位の処理がプログラム可能になることで描画処理内容の自由度が高く、従来のハードウェアによる固定的な描画処理に比べて表現力を大幅に向上させることができる。
【0054】
そして描画部120は、オブジェクトを描画する際に、ジオメトリ処理、テクスチャマッピング、隠面消去処理、αブレンディング等を行う。
【0055】
ジオメトリ処理では、オブジェクトに対して、座標変換、クリッピング処理、透視投影変換、或いは光源計算等の処理が行われる。そして、ジオメトリ処理後(透視投影変換後)のオブジェクトデータ(オブジェクトの頂点の位置座標、テクスチャ座標、色データ(輝度データ)、法線ベクトル、或いはα値等)は、オブジェクトデータ記憶部176に保存される。
【0056】
テクスチャマッピングは、記憶部170のテクスチャ記憶部に記憶されるテクスチャ(テクセル値)をオブジェクトにマッピングするための処理である。具体的には、オブジェクトの頂点に設定(付与)されるテクスチャ座標等を用いて記憶部170のテクスチャ記憶部からテクスチャ(色(RGB)、α値などの表面プロパティ)を読み出す。そして、2次元の画像であるテクスチャをオブジェクトにマッピングする。この場合に、ピクセルとテクセルとを対応づける処理や、テクセルの補間としてバイリニア補間などを行う。
【0057】
隠面消去処理としては、描画ピクセルのZ値(奥行き情報)が格納されるZバッファ(奥行きバッファ)を用いたZバッファ法(奥行き比較法、Zテスト)による隠面消去処理を行うことができる。すなわちオブジェクトのプリミティブに対応する描画ピクセルを描画する際に、Zバッファに格納されるZ値を参照する。そして参照されたZバッファのZ値と、プリミティブの描画ピクセルでのZ値とを比較し、描画ピクセルでのZ値が、仮想カメラから見て手前側となるZ値(例えば小さなZ値)である場合には、その描画ピクセルの描画処理を行うとともにZバッファのZ値を新たなZ値に更新する。
【0058】
αブレンディング(α合成)は、α値(A値)に基づく半透明合成処理(通常αブレンディング、加算αブレンディング又は減算αブレンディング等)のことである。
【0059】
なお、α値は、各ピクセル(テクセル、ドット)に関連づけて記憶できる情報であり、例えば色情報以外のプラスアルファの情報である。α値は、マスク情報、半透明度(透明度、不透明度と等価)、バンプ情報などとして使用できる。
【0060】
音生成部130は、処理部100で行われる種々の処理の結果に基づいて音処理を行い、BGM、効果音、又は音声などのゲーム音を生成し、音出力部192に出力する。
【0061】
なお、本実施形態の画像生成システムは、1人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、1つの端末を用いて生成してもよいし、ネットワーク(伝送ライン、通信回線)などで接続された複数の端末(ゲーム機、携帯電話)を用いて分散処理により生成してもよい。
【0062】
2.本実施形態の手法
本実施形態のファイルデータ処理プログラムは、メモリ上にファイルデータ領域を確保し、ファイルデータをファイルデータ領域に読み込み、ファイルデータを解析して、参照データであるイベントデータを参照する。そして、ファイルデータ領域のうちダミーデータが占める領域をワーク領域としてメモリ上に動的に割り当て、ワーク領域を利用してイベントプログラムを実行する。このようにすれば、メモリの管理を容易に行うことができ、高速に処理することができるからである。
【0063】
ここで、本実施形態のイベントプログラムは、イベントの発生に伴い処理を行うプログラムである。より具体的には、イベントプログラムとは、操作部160によりプレーヤが入力した操作や、各種プログラムやデータに基づいて特定の現象が発生したときに発する信号、データ等に基づいて処理を行うプログラムである。さらに、ワーク領域とは、イベントプログラムを実行するために利用されるメモリ上の領域である。例えば、データを一時的に保持したり、演算結果等を一時的に記憶するために利用する領域である。また、ワーク領域は、データの加工を行うために利用してもよい。本実施形態のファイルデータ処理プログラムでは、ワーク領域をイベントプログラムの実行前や実行中などの所定の契機で割り当てる。
【0064】
2.1 データ構造
次に、本実施形態のファイルデータのデータ構造について、従来の手法と比較しながら説明する。
【0065】
図2(A)は、従来の手法のファイルデータのデータ構造の一例を、図2(B)は、本実施形態のファイルデータのデータ構造の一例を示す。図2(A)に示すように、従来の手法のデータ構造は、イベントデータ200を含み、オフセットデータ及びダミーデータを含まないデータ構造である。一方、図2(B)に示すように、本実施形態のファイルデータのデータ構造は、オフセットデータ210、イベントデータ220、及びダミーデータ230を含むデータ構造である。
【0066】
イベントデータとは、イベントプログラムを実行する際に参照される参照データであり、イベントプログラムを実行するために必要となる情報である。要するにイベントデータとは、イベントプログラムの実行処理の演算処理に必要な値、データである。イベントデータは、イベントプログラムの実行前に参照してもよいし、イベントプログラムの実行中に参照してもよい。また、イベントデータは、イベントプログラムを実行する処理内容に応じた複数種類のイベントデータであってもよい。具体的には、複数種類のイベントデータを予め用意し、各イベントデータを参照して、イベントプログラムを実行することができる。
【0067】
また、イベントデータは、識別番号または識別名を設けて、表示するオブジェクト、ワーク領域のサイズ、表示するオブジェクトのワールド座標系の座標値の各項目とを関連付けるようなデータとしてもよい。複数のイベントデータが存在する場合には、識別番号または識別名、各項目の内容を変えて、処理内容をそれぞれ異ならせることができる。このようにすれば、本実施形態でファイルデータを解析する場合には、識別番号や識別名に基づいて、各イベントデータを解析することができる。
【0068】
例えば、オブジェクト空間においてオブジェクトを表示するイベントプログラムが参照するイベントデータは、識別番号と対応付けて、表示するオブジェクト、ワールド座標系の座標値及びワーク領域サイズを記録したデータとすることができる。
【0069】
ダミーデータとは、イベントプログラムを実行する際に利用されるワーク領域をメモリ上に確保するために、ファイルデータの所定領域に所定値を埋めたシーケンシャルデータである。ここでシーケンシャルデータとは、連続して埋められているデータであることをいう。
【0070】
具体的には、予めメモリ上に確保しなければならないワーク領域のサイズ、または、ワーク領域として十分に必要とされるサイズが決定される。そして、ファイルデータにおいて、決定されたサイズの所定領域に所定値を埋める。このようにすれば、ファイルデータがメモリ上のファイルデータ領域に読み込まれた場合に、ダミーデータが占める領域をワーク領域として利用することができる。
【0071】
詳細に説明すると、例えば、10キロバイトのワーク領域を確保したい場合には、ファイルデータの10キロバイト分の所定領域に、0x00(NULL値)を埋める。このようにすれば、ファイルデータがメモリ上のファイルデータ領域に読み込まれた場合に、ファイルデータ領域上のダミーデータが占める領域は10キロバイトになるので、10キロバイト分のワーク領域が確保される。なお、所定値は必ずしも0x00である必要はなく、文字コード(例えばASCIIコード、シフトJISコード)により決められたコード(値、文字)でもよい。例えば0x00のように、所定値を所定領域に埋めるようにすれば、ファイルデータを圧縮した場合には、圧縮率を高めることができる。したがって、情報記憶媒体に、圧縮されたファイルデータを記憶させる場合を考慮すると、0x00を所定領域に埋めることが望ましいと考えられる。
【0072】
なお、本実施形態のダミーデータは、専らワーク領域を確保するためのデータにすぎず、ダミーデータそのものを有効に活用していないが、ダミーデータの全部または一部を、イベントプログラムに利用されるデータとしてもよい。また、本実施形態のダミーデータは、複数種類の任意のコード(値、文字)で埋められたデータであってもよい。
【0073】
オフセットデータとは、イベントプログラムが利用するワーク領域の先頭アドレスを示すオフセットアドレスである。したがって、オフセットアドレスに基づいてワーク領域を特定するので、ワーク領域の特定を容易に行うことができる。また、複数種類のイベントデータを参照してイベントプログラムを実行する場合には、それぞれのイベントプログラムで利用されるワーク領域の先頭アドレスを示すオフセットアドレスを用意する。
【0074】
本実施形態のファイルデータは、メモリ上に確保されたファイルデータ領域に読み込まれて解析される。解析する手法としては、例えば、イベントデータ毎にワーク領域を特定できるように、イベントデータとオフセットアドレスを関連付けて解析する。また、複数種類のイベントデータが存在する場合には、イベントデータ毎に解析してもよい。例えば、イベントデータ毎の識別番号や識別名に、表示するオブジェクト、ワーク領域のサイズ、表示するオブジェクトのワールド座標系の座標値、表示するオブジェクトの各項目を対応付けて解析してもよい。
【0075】
なお、図2(B)に示す本実施形態のデータ構造のファイルデータは、情報記憶媒体に記憶される。ファイルデータを圧縮した圧縮ファイルデータを情報記憶媒体に記憶してもよい。このようにすれば、情報記憶媒体に記憶する容量を抑えることができる。
【0076】
2.2 メモリ管理
次に、本実施形態のファイルデータ処理プログラムにおいて、上述したファイルデータを用いたメモリ管理の手法について、従来の手法と比較しながら説明する。
【0077】
図3は、イベントプログラムを実行する前の初期状態のメモリマップの一例を示している。使用中の領域300は、オペレーティングシステムや他のプログラムが使用している領域である。一方、空き領域310は、ファイルデータ領域を確保することができる領域である。
【0078】
次に、イベントプログラムを実行するために、メモリの空き領域からファイルデータを読み込むためのファイルデータ領域を確保する。具体的には、ファイルデータの容量(サイズ)に応じたファイルデータ領域を確保する。このようにすれば、不必要に大容量のメモリを確保せずに必要な容量分のメモリを確保することができる。なお、メモリの容量に余裕があれば、ファイルデータのサイズ以上の容量のファイルデータ領域を確保してもよい。なお、ファイルデータを圧縮した圧縮ファイルデータが情報記憶媒体に記憶されている場合には、圧縮ファイルデータを伸張する処理を行い、伸張されたファイルデータの容量に基づいて、ファイルデータ領域を確保する。要するに、ファイルデータの容量に基づいて、メモリ上にファイルデータ領域を確保する処理を行う。
【0079】
ファイルデータ領域を確保したら、情報記憶媒体に記憶されているファイルデータを、ファイルデータ領域に読み込む処理を行う。なお、圧縮ファイルデータが情報記憶媒体に記憶されている場合には、伸張する処理を行い、伸張されたファイルデータをファイルデータ領域に読み込む処理を行う。
【0080】
図4は、従来の手法において、メモリ上にファイルデータ領域を確保し、ファイルデータが読み込まれたときのメモリマップの一例を示している。なお、ファイルデータ領域410は、イベントデータ412が格納されている。
【0081】
図5は、本実施形態において、メモリ上にファイルデータ領域を確保し、ファイルデータが読み込まれたときのメモリマップの一例を示している。ファイルデータ領域510は、オフセットデータ512、イベントデータ514、ダミーデータ516が格納されている。本実施形態のファイルデータはオフセットデータ及びダミーデータを含むので、従来の手法に比べてメモリ上に確保されるファイルデータ領域のサイズが大きくなる。しかし、オフセットデータは、ワーク領域の先頭を示すオフセットアドレスのデータであるので、ファイルデータ全体のうちオフセットデータの容量は極僅かである。また、本実施形態では、ダミーデータが占める領域をワーク領域として、ワーク領域含むファイルデータ領域を確保する。一方、従来の手法では、ファイルデータ領域を確保した後に、ワーク領域を確保する。したがって、本実施形態においてメモリ上で使用される領域のサイズは、従来の手法においてメモリ上で使用される領域のサイズと殆ど変わらない。
【0082】
次に、本実施形態のファイルデータ処理プログラムが、イベントプログラムで利用されるワーク領域を割り当てる手法について、従来の手法を比較しながら説明する。
【0083】
従来の手法では、メモリ上に格納されたイベントデータを参照し、イベントデータに必要なワーク領域を空き領域から確保して、イベントプログラムを実行する。イベントデータが複数存在する場合には、イベントデータ毎にイベントプログラムのワーク領域を空き領域から確保する。
【0084】
図6は、従来の手法のワーク領域を確保したときのメモリマップの一例を示す。例えば、図6に示すように、ファイルデータ領域610にイベントデータ1(612)、イベントデータ2(614)、イベントデータ3(616)が格納されている。従来の手法では、イベントデータ1を参照して実行するイベントプログラムは、空き領域からワーク領域1(620)を確保し、ワーク領域1(620)を利用してプログラムを実行する。また、イベントデータ2を参照して実行されるイベントプログラムは、ワーク領域2(630)を確保し、イベントプログラムを実行する。イベントデータ3を参照して実行されるイベントプログラムは、ワーク領域3(640)を確保してイベントプログラムを実行する。
【0085】
従来の手法では、メモリ上の空き領域にイベントプログラムに利用されるワーク領域を確保していた。したがって、イベントプログラムを実行する度にメモリの空き容量やワーク領域の確保及び開放を考慮しなければならないので、メモリの管理が煩雑であった。また、ワーク領域の確保の処理は、オペレーティングシステムの処理に委ねており、処理が低速になっていた。
【0086】
一方、本実施形態のファイルデータ処理プログラムでは、メモリ上のファイルデータ領域に格納されたイベントデータを参照し、ファイルデータ領域のうちダミーデータが占める領域をワーク領域として割り当てる。そして、ワーク領域を利用してイベントプログラムを実行する。
【0087】
図7は、本実施形態のワーク領域を割り当てたときのメモリマップの一例を示す。図7に示すように、ファイルデータ領域710に格納されているイベントデータ1(712)を参照して実行するイベントプログラムは、ファイルデータ領域のうちダミーデータが占めるワーク領域1(715)を動的に割り当てられる。ダミーデータはオフセットアドレスに基づいて特定することができる。また、同様にイベントデータ2(713)を参照して実行するイベントプログラムは、ワーク領域2(716)を動的に割り当てられる。また、イベントデータ3(714)を参照して実行するイベントプログラムは、ワーク領域3(717)を動的に割り当てられる。
【0088】
従来の手法では、メモリの空き領域からワーク領域を確保するのに対して、本実施形態では、既に確保されたファイルデータ領域のうちダミーデータが占める領域をワーク領域として割り当てる。本実施形態では、メモリ上のワーク領域の確保の処理をオペレーティングシステムではなく、ファイルデータ領域の一部を動的に割り当てるように処理しているので、従来に比べて処理速度を高めることがでる。また、ファイルデータ領域のメモリを管理すればよいので、イベントプログラムを実行する度にメモリの空き容量や、ワーク領域の開放などを考慮する必要がない。したがって、メモリの管理を容易に行うことができる。
【0089】
本実施形態のワーク領域を割り当てる手法について説明する。本実施形態のファイルデータ処理プログラムでは、従来行われていたメモリ確保のメソッドを多重定義し、ファイルデータ領域の一部の領域をワーク領域として動的に割り当てる処理を行う。いわゆるオーバーロードによってワーク領域を動的に割り当てる処理を行う。具体的には、オペレーティングシステムによるメモリを確保するメソッドを、同名のメソッドで戻り値や引数の数を変更してファイルデータ領域に確保した領域からメモリを割り当てるようにメソッドを定義する。例えば、イベントデータに対応付けられたオフセットアドレスに基づいて、ワーク領域の先頭のアドレスを指定し、ワーク領域として確保すべき容量に基づいてワーク領域を割り当てるように定義する。そして、ワーク領域を確保する場合には、オペレーティングシステムによるメモリを確保するメソッドではなく、ファイルデータ領域に確保した領域からメモリを割り当てるメソッドを呼び出す。このようにすれば、既に確保されたメモリ上のファイルデータ領域を割り当てるので、コンピュータの処理速度は、従来の手法に比べて格段に速い。
【0090】
さらに、本実施形態によれば、ワーク領域の割り当ての処理速度の向上のみならず、メモリの断片化の問題を解消することができる。
【0091】
図8は、従来の手法のワーク領域を開放したときのメモリマップの一例を示す。図9は、本実施形態のワーク領域を開放したときのメモリマップの一例を示す。
【0092】
従来の手法では、ワーク領域を利用しなくなった場合においても、メモリの開放をせずに確保したままにしたり、複数のワーク領域を確保した場合に開放順序を誤ることで、空きメモリの断片化が生じていた。メモリの管理を、オペレーティングシステムの処理に委ねていたからである。例えば、図8に示すように、開放された領域は、空き領域830のみで、ワーク領域1(820)、ワーク領域3(840)は開放されずに確保されたままの状態になる。
【0093】
図8に示すように、空き領域が断片的に生じてしまうと、まとまって大きな容量のメモリを確保することができなくなってしまう。また、実際には使用していないメモリ上の領域が確保されたままの状態になるので、メモリ資源が無駄になり、本来必要とされるメモリの確保ができずに、システムの障害が発生するおそれがある。
【0094】
これに対して、図9に示すように本実施形態では、ファイルデータ領域を開放した場合に、ファイルデータ領域が確保されていた領域910が空き領域になる。ワーク領域であった領域916も含めてファイルデータ領域が一度に開放されるので、メモリの断片化の問題を解消することができる。
【0095】
このように、本実施形態のファイルデータ処理プログラムでは、図9に示すように既にメモリ上に確保されたファイルデータ領域を所与の終了条件の成立に伴って開放する。したがって、一度に確保された領域が一度に開放されるので、従来問題となっていたメモリの断片化を防止することができる。また、各ワーク領域の開放を考慮する必要もないので、メモリ管理を容易に行うことができる。
【0096】
3.本実施形態の処理
次に、本実施形態のファイルデータ処理プログラムの詳細な処理例について図10のフローチャートを用いて説明する。
【0097】
まず、ファイルデータを読み込むためのファイルデータ領域をメモリ上に確保する(ステップS10)。ファイルデータのサイズに基づいて、ファイルデータ領域を確保してもよい。例えば、ファイルデータのサイズが128メガバイトである場合には、ファイルデータ領域を128メガバイトで確保する。
【0098】
次に、ファイルデータをファイルデータ領域に読み込む。(ステップS20)。ファイルデータ領域に読み込まれたファイルデータのダミーデータが占めるメモリ上の領域が、ワーク領域として利用される。
【0099】
次に、メモリに読み込まれたファイルデータを解析する(ステップS30)。複数種類のイベントデータが存在する場合には、イベントデータ毎に解析してもよい。また、各イベントデータに対応付けてオフセットアドレスを特定できるように解析してもよい。
【0100】
続いて、解析結果に基づいてイベントデータを参照する(ステップS40)。
【0101】
そして、イベントデータに対応するオフセットアドレスを取得し(ステップS50)、オフセットアドレスに基づいて、イベントプログラムに利用されるワーク領域を割り当てる(ステップS60)。例えば、オフセットアドレスに基づいてアドレス100番地に、10キロバイトのワーク領域を割り当てるように処理を行う。ワーク領域を利用する前に0x00で初期化するようにしてもよい。そして、イベントプログラムは、ワーク領域を利用してイベントプログラムを実行する(ステップS70)。
【0102】
イベントプログラムの実行後は、次のイベントデータあるかを判断し(ステップS80)、次のイベントデータがある場合には(ステップS80のYes)、ステップS40〜ステップS80を繰り返し行う。イベントデータがない場合には、(ステップS80のNo)ファイルデータ領域を開放する(ステップS90)。
【0103】
4.ハードウェア構成
図11に本実施形態を実現できるハードウェア構成の例を示す。メインプロセッサ900は、DVD982(情報記憶媒体。CDでもよい。)に格納されたプログラム、通信インターフェース990を介してダウンロードされたプログラム、或いはROM950に格納されたプログラムなどに基づき動作し、ゲーム処理、画像処理、音処理などを実行する。コプロセッサ902は、メインプロセッサ900の処理を補助するものであり、マトリクス演算(ベクトル演算)を高速に実行する。例えばオブジェクトを移動させたり動作(モーション)させる物理シミュレーションに、マトリクス演算処理が必要な場合には、メインプロセッサ900上で動作するプログラムが、その処理をコプロセッサ902に指示(依頼)する。
【0104】
ジオメトリプロセッサ904は、メインプロセッサ900上で動作するプログラムからの指示に基づいて、座標変換、透視変換、光源計算、曲面生成などのジオメトリ処理を行うものであり、マトリクス演算を高速に実行する。データ伸張プロセッサ906は、圧縮された画像データや音データのデコード処理を行ったり、メインプロセッサ900のデコード処理をアクセレートする。これにより、オープニング画面やゲーム画面において、MPEG方式等で圧縮された動画像を表示できる。
【0105】
描画プロセッサ910は、ポリゴンや曲面などのプリミティブ面で構成されるオブジェクトの描画(レンダリング)処理を実行する。オブジェクトの描画の際には、メインプロセッサ900は、DMAコントローラ970を利用して、描画データを描画プロセッサ910に渡すと共に、必要であればテクスチャ記憶部924にテクスチャを転送する。すると描画プロセッサ910は、描画データやテクスチャに基づいて、Zバッファなどを利用した隠面消去を行いながら、オブジェクトをフレームバッファ922に描画する。また描画プロセッサ910は、αブレンディング(半透明処理)、デプスキューイング、ミップマッピング、フォグ処理、バイリニア・フィルタリング、トライリニア・フィルタリング、アンチエイリアシング、シェーディング処理なども行う。頂点シェーダやピクセルシェーダなどのプログラマブルシェーダが実装されている場合には、シェーダプログラムに従って、頂点データの作成・変更(更新)やピクセル(あるいはフラグメント)の描画色の決定を行う。1フレーム分の画像がフレームバッファ922に書き込まれるとその画像はディスプレイ912に表示される。
【0106】
サウンドプロセッサ930は、多チャンネルのADPCM音源などを内蔵し、BGM、効果音、音声などのゲーム音を生成し、スピーカ932を介して出力する。ゲームコントローラ942やメモリカード944からのデータはシリアルインターフェース940を介して入力される。
【0107】
ROM950にはシステムプログラムなどが格納される。業務用ゲームシステムの場合にはROM950が情報記憶媒体として機能し、ROM950に各種プログラムが格納される。なおROM950の代わりにハードディスクを利用してもよい。RAM960は各種プロセッサの作業領域となる。DMAコントローラ970は、プロセッサ、メモリ間でのDMA転送を制御する。DVDドライブ980(CDドライブでもよい。)は、プログラム、画像データ、或いは音データなどが格納されるDVD982(CDでもよい。)にアクセスする。通信インターフェース990はネットワーク(通信回線、高速シリアルバス)を介して外部との間でデータ転送を行う。
【0108】
なお本実施形態の各部(各手段)の処理は、その全てをハードウェアのみにより実現してもよいし、情報記憶媒体に格納されるプログラムや通信インターフェースを介して配信されるプログラムにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。
【0109】
そして本実施形態の各部の処理をハードウェアとプログラムの両方により実現する場合には、情報記憶媒体には、ハードウェア(コンピュータ)を本実施形態の各部として機能させるためのプログラムが格納される。より具体的には、上記プログラムが、ハードウェアである各プロセッサ902、904、906、910、930に処理を指示すると共に、必要であればデータを渡す。そして、各プロセッサ902、904、906、910、930は、その指示と渡されたデータとに基づいて本発明の各部の処理を実現する。
【0110】
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。例えば、明細書又は図面中の記載において広義や同義な用語として引用された用語は、明細書又は図面中の他の記載においても広義や同義な用語に置き換えることができる。また接触痕跡の表現手法も、本実施形態で説明したものに限定されず、これらと均等な手法も本発明の範囲に含まれる。
【0111】
なお、イベントプログラムに限らず、ワーク領域を利用する種々のプログラムにおいて、ダミーデータを含むファイルデータをメモリ上に読み込み、ダミーデータが占める領域をワーク領域として動的に割り当てるようにしてもよい。
【0112】
また、ファイルデータには、オフセットデータ、参照データ、ダミーデータの他に種々のデータを含むようにしてもよい。
【0113】
なお、本実施形態のメモリ管理部112のファイルデータ領域の確保は、オペレーティングシステムの処理により確保してもよいし、動的にファイルデータ領域を確保してもよい。また、本実施形態のメモリ管理部112は、ガベージコレクションや、ヒープ領域の拡張や縮小等の処理、メモリ不足の例外処理等の種々のメモリ管理を行うようにしてもよい。
【図面の簡単な説明】
【0114】
【図1】本実施形態の画像生成システムの機能ブロック図の例。
【図2】図2(A)(B)はデータ構造の説明図。
【図3】メモリの初期状態の説明図。
【図4】従来のファイルデータ領域の説明図。
【図5】本実施形態のファイルデータ領域の説明図。
【図6】従来のワーク領域の説明図。
【図7】本実施形態のワーク領域の説明図。
【図8】従来のワーク領域の開放の説明図。
【図9】本実施形態のファイルデータ領域の開放の説明図。
【図10】本実施形態の処理のフローチャート。
【図11】ハードウェア構成例。
【符号の説明】
【0115】
100 処理部、110 ゲーム処理部、112 メモリ管理部、114 読み込み部、
116 解析部、118 プログラム実行部、120 描画部、130 音生成部、
160 操作部、170 記憶部、172 主記憶部、174 描画バッファ、
180 情報記憶媒体、190 表示部、192 音出力部、
194 携帯型情報記憶装置、196 通信部
【特許請求の範囲】
【請求項1】
コンピュータが所与のプログラムを実行する際に参照する参照データを含むファイルデータのデータ構造であって、
前記ファイルデータは、
前記参照データに加えて、前記所与のプログラムを実行する際に利用されるワーク領域をメモリ上に確保するためのダミーデータを含み、
前記コンピュータが、
ファイルデータ領域をメモリ上に確保してから、前記ファイルデータ領域に前記ファイルデータを読み込み、
前記ファイルデータ領域のうち前記ダミーデータが占める領域をワーク領域としてメモリ上に割り当てるとともに、割り当てられた前記ワーク領域を用いて、前記ファイルデータ領域に読み込まれた前記参照データを参照しながら前記所与のプログラムを実行することを特徴とするデータ構造。
【請求項2】
請求項1において、
前記ファイルデータが、
前記ダミーデータを特定するオフセットデータを含み、
前記コンピュータが、
前記オフセットデータに基づいて、前記ワーク領域をメモリ上に割り当てることを特徴とするデータ構造。
【請求項3】
請求項2において、
前記ファイルデータが、
前記所与のプログラムを実行する処理内容に応じた複数種類の参照データを含み、
前記コンピュータが、
前記オフセットデータに基づいて、前記各参照データと対応付けられたワーク領域をメモリ上に割り当てることを特徴とするデータ構造。
【請求項4】
請求項1〜3のいずれかにおいて、
前記ダミーデータが、
所定領域に所定値で埋められたシーケンシャルデータであることを特徴とするデータ構造。
【請求項5】
コンピュータ読み取り可能な情報記憶媒体であって、請求項1〜4のいずれかのデータ構造を有するファイルデータを記憶したことを特徴とする情報記憶媒体。
【請求項6】
コンピュータが所与のプログラムを実行する際に参照する参照データを含むファイルデータを用いて処理を行うファイルデータ処理プログラムであって、
ファイルデータ領域をメモリ上に確保する処理を行うメモリ管理部と、
前記参照データと、前記所与のプログラムを実行する際に利用されるワーク領域をメモリ上に確保するためのダミーデータと、を含むファイルデータを、前記ファイルデータ領域に読み込む処理を行う読み込み部と、
前記ファイルデータ領域に読み込まれた前記ファイルデータの前記参照データを参照して前記所与のプログラムを実行するプログラム実行部と、
を含み、
前記メモリ管理部が、
前記ファイルデータ領域のうち前記ダミーデータが占める領域をワーク領域としてメモリ上に割り当て、
前記プログラム実行部が、
割り当てた前記ワーク領域を用いて前記所与のプログラムを実行することを特徴とするファイルデータ処理プログラム。
【請求項7】
請求項6において、
前記ファイルデータが、
前記ダミーデータを特定するオフセットデータを含み、
前記読み込み部が、
前記オフセットデータを含む前記ファイルデータを、メモリ上の前記ファイルデータ領域に読み込み、
前記メモリ管理部が、
前記オフセットデータに基づいて、前記ワーク領域をメモリ上に割り当てる処理を行うことを特徴とするファイルデータ処理プログラム。
【請求項8】
請求項7において、
前記ファイルデータが、
前記所与のプログラムを実行する処理内容に応じた複数種類の参照データを含み、
前記メモリ管理部が、
前記オフセットデータに基づいて、前記各参照データと対応付けられたワーク領域をメモリ上に割り当てる処理を行うことを特徴とするファイルデータ処理プログラム。
【請求項9】
請求項6〜8のいずれかにおいて、
前記メモリ管理部が、
前記処理部において、所与の終了条件が成立した場合に、メモリ上に確保したファイルデータ領域を開放する処理を行うことを特徴とするファイルデータ処理プログラム。
【請求項10】
コンピュータ読み取り可能な情報記憶媒体であって、請求項6〜9のいずれかのファイルデータ処理プログラムを記憶したことを特徴とする情報記憶媒体。
【請求項1】
コンピュータが所与のプログラムを実行する際に参照する参照データを含むファイルデータのデータ構造であって、
前記ファイルデータは、
前記参照データに加えて、前記所与のプログラムを実行する際に利用されるワーク領域をメモリ上に確保するためのダミーデータを含み、
前記コンピュータが、
ファイルデータ領域をメモリ上に確保してから、前記ファイルデータ領域に前記ファイルデータを読み込み、
前記ファイルデータ領域のうち前記ダミーデータが占める領域をワーク領域としてメモリ上に割り当てるとともに、割り当てられた前記ワーク領域を用いて、前記ファイルデータ領域に読み込まれた前記参照データを参照しながら前記所与のプログラムを実行することを特徴とするデータ構造。
【請求項2】
請求項1において、
前記ファイルデータが、
前記ダミーデータを特定するオフセットデータを含み、
前記コンピュータが、
前記オフセットデータに基づいて、前記ワーク領域をメモリ上に割り当てることを特徴とするデータ構造。
【請求項3】
請求項2において、
前記ファイルデータが、
前記所与のプログラムを実行する処理内容に応じた複数種類の参照データを含み、
前記コンピュータが、
前記オフセットデータに基づいて、前記各参照データと対応付けられたワーク領域をメモリ上に割り当てることを特徴とするデータ構造。
【請求項4】
請求項1〜3のいずれかにおいて、
前記ダミーデータが、
所定領域に所定値で埋められたシーケンシャルデータであることを特徴とするデータ構造。
【請求項5】
コンピュータ読み取り可能な情報記憶媒体であって、請求項1〜4のいずれかのデータ構造を有するファイルデータを記憶したことを特徴とする情報記憶媒体。
【請求項6】
コンピュータが所与のプログラムを実行する際に参照する参照データを含むファイルデータを用いて処理を行うファイルデータ処理プログラムであって、
ファイルデータ領域をメモリ上に確保する処理を行うメモリ管理部と、
前記参照データと、前記所与のプログラムを実行する際に利用されるワーク領域をメモリ上に確保するためのダミーデータと、を含むファイルデータを、前記ファイルデータ領域に読み込む処理を行う読み込み部と、
前記ファイルデータ領域に読み込まれた前記ファイルデータの前記参照データを参照して前記所与のプログラムを実行するプログラム実行部と、
を含み、
前記メモリ管理部が、
前記ファイルデータ領域のうち前記ダミーデータが占める領域をワーク領域としてメモリ上に割り当て、
前記プログラム実行部が、
割り当てた前記ワーク領域を用いて前記所与のプログラムを実行することを特徴とするファイルデータ処理プログラム。
【請求項7】
請求項6において、
前記ファイルデータが、
前記ダミーデータを特定するオフセットデータを含み、
前記読み込み部が、
前記オフセットデータを含む前記ファイルデータを、メモリ上の前記ファイルデータ領域に読み込み、
前記メモリ管理部が、
前記オフセットデータに基づいて、前記ワーク領域をメモリ上に割り当てる処理を行うことを特徴とするファイルデータ処理プログラム。
【請求項8】
請求項7において、
前記ファイルデータが、
前記所与のプログラムを実行する処理内容に応じた複数種類の参照データを含み、
前記メモリ管理部が、
前記オフセットデータに基づいて、前記各参照データと対応付けられたワーク領域をメモリ上に割り当てる処理を行うことを特徴とするファイルデータ処理プログラム。
【請求項9】
請求項6〜8のいずれかにおいて、
前記メモリ管理部が、
前記処理部において、所与の終了条件が成立した場合に、メモリ上に確保したファイルデータ領域を開放する処理を行うことを特徴とするファイルデータ処理プログラム。
【請求項10】
コンピュータ読み取り可能な情報記憶媒体であって、請求項6〜9のいずれかのファイルデータ処理プログラムを記憶したことを特徴とする情報記憶媒体。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【公開番号】特開2008−77392(P2008−77392A)
【公開日】平成20年4月3日(2008.4.3)
【国際特許分類】
【出願番号】特願2006−255876(P2006−255876)
【出願日】平成18年9月21日(2006.9.21)
【出願人】(000134855)株式会社バンダイナムコゲームス (1,157)
【Fターム(参考)】
【公開日】平成20年4月3日(2008.4.3)
【国際特許分類】
【出願日】平成18年9月21日(2006.9.21)
【出願人】(000134855)株式会社バンダイナムコゲームス (1,157)
【Fターム(参考)】
[ Back to top ]