以下、本実施形態について説明する。
なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また、本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
1.構成
まず、図1を用いて本実施形態のゲームシステム(画像生成システム)の構成について説明する。
なお、図1は、本実施形態のゲームシステムにおける機能構成の例である。また、本実施形態のゲームシステムは、当該構成要素(各部)の一部を省略した構成としてもよい。
操作部160(ゲームコントローラ)は、プレーヤが操作データを入力するためのものであり、その機能は、方向キー、アナログスティック、ボタン、レバー、ステアリング、マイク、タッチパネル型ディスプレイ、或いは筺体などにより実現できる。
記憶部170は、処理部100や通信部196などのワーク領域となるもので、その機能はRAM、VRAMなどにより実現できる。特に、この記憶部170は、主記憶部171、描画バッファ173、オブジェクトデータ記憶部175、テクスチャ記憶部177、及びZバッファ179を含む。
情報記憶媒体180(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(CD、DVD)、光磁気ディスク(MO)、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ(ROM)などにより実現できる。
この情報記憶媒体180には、処理部100において本実施形態の種々の処理を行うためのプログラム(データ)が記憶されている。即ち、この情報記録媒体180には、本実施形態の各部としてコンピュータを機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)が記憶されている。
表示部190は、本実施形態により生成された画像を出力するものであり、その機能は、CRT、LCD、タッチパネル型ディスプレイ、或いはHMD(ヘッドマウントディスプレイ)などにより実現できる。
音出力部192は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
携帯型情報記憶装置194には、プレーヤの個人データやゲームのセーブデータなどが記憶されるものであり、この携帯型情報記憶装置194としては、メモリカードや携帯型ゲーム装置などがある。
通信部196は、外部(例えばホスト装置や他の画像生成システム)との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ASICなどのハードウェアや、プログラムなどにより実現できる。
なお、本実施形態の各部としてコンピュータを機能させるためのプログラム(データ)は、ホスト装置(サーバー)が有する情報記憶媒体からネットワーク及び通信部196を介して情報記憶媒体180(記憶部170)に配信してもよい。このようなホスト装置(サーバー)の情報記憶媒体の使用も本発明の範囲内に含めることができる。
処理部100(プロセッサ)は、操作部160からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などを行う。この処理部100は、主記憶部171をワーク領域として各種処理を行う。処理部100の機能は、各種プロセッサ(CPU、DSP等)、ASIC(ゲートアレイ等)などのハードウェアや、プログラムなどにより実現できる。そして、この処理部100は、ゲーム処理部110、画像生成部120、音生成部130を含む。
ゲーム処理部110は、操作部160から入力された操作データやプログラムまたは後述するようにゲーム処理部110内部にて設定されたパラメータなどに基づいてゲーム処理を行う。
このゲーム処理としては、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、キャラクタやマップなどのオブジェクトを配置する処理、オブジェクトを表示する処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などがある。
また、本実施形態のゲーム処理部110は、例えば、プレーヤが主人公となってゲームの世界を旅しつつ、与えられた課題を解決するロールプレイングゲームを実行するための各種の処理を行う。
特に、本実施形態のゲーム処理部110は、ロールプレイングゲームのゲーム進行中に、プレーヤの操作対象のキャラクタオブジェクト(以下、「プレーヤオブジェクト」という。)と当該プレーヤオブジェクトと対戦するキャラクタオブジェクト(以下、「敵オブジェクト」という。)とを含む複数のキャラクタオブジェクト間にて行われる戦闘に関する処理を行う。
そして、このゲーム処理部110は、オブジェクト空間設定部111、入力処理部112(入力受付部、入力割当変更部)、パラメータ設定部113、行動可能オブジェクト決定部114、タイマ115(第1のタイマ、第2のタイマ)と、タイマ制御部116(第1タイマ制御部、第2タイマ制御部)、移動・動作処理部116(オブジェクト行動制御部)と、を含む。なお、これらの一部を省略する構成としてもよい。
オブジェクト空間設定部111は、各キャラクタオブジェクト、車、戦車、建物、樹木、柱、壁、マップ(地形)などの表示物を表す各種オブジェクト(ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブ面で構成されるオブジェクト)をオブジェクト空間に配置設定する処理を行う。即ち、オブジェクト空間設定部111は、ワールド座標系でのオブジェクト(モデルオブジェクト)の位置や回転角度(向き、方向と同義)を決定し、その位置(X、Y、Z)にその回転角度(X、Y、Z軸回りでの回転角度)でオブジェクトを配置する。
入力処理部112(入力受付部、入力割当変更部)は、操作部160と連動し、当該操作部160をプレーヤが操作することで入力される操作入力を受け付ける処理(監視し、検出する処理)を行う。
具体的には、プレーヤオブジェクトの行動を制御するためのプレーヤの操作入力を受け付け、特に、敵オブジェクトとの戦闘時において、プレーヤオブジェクトが戦闘時における行動可能なキャラクタオブジェクト(以下、「行動可能オブジェクト」という。)として決定された場合には、攻撃方法などの敵オブジェクトに対する攻撃に関する操作入力の他に、オブジェクト空間内の移動や味方(仲間)のキャラクタオブジェクト(以下、「味方オブジェクト」という。)との連動など、プレーヤオブジェクトの種々の行動の指示を受け付ける。
なお、この入力処理部112は、通常、操作部160の所定の操作キーに対応して種々の行動を受け付けるようになっているが、ゲームの進行状況において、所定のタイミングにて操作キーとプレーヤオブジェクトの行動の対応関係を変更するようになっている。すなわち、本実施形態では、原則として操作キーとそれに対応する行動は固定されているが、ゲームの進行状況に応じて特定条件の下では操作キーに割り当てられる行動の種類を変化させることができるようになっている。
パラメータ設定部113は、ゲーム処理部110で行う各種処理に必要なパラメータを設定(演算)する処理を行う。
具体的には、複数のキャラクタオブジェクト間にて戦闘を行う際に、複数のキャラクタオブジェクトに対してキャラクタオブジェクト毎の敏捷特性に関連づけられた行動可能オブジェクト決定パラメータ(第1のパラメータ)を設定する。例えば、複数のキャラクタオブジェクトの各々の敏捷特性に応じて与えられている素早さパラメータ(第2のパラメータ)の逆数を求めて、求められた素早さパラメータの逆数を行動可能オブジェクト決定パラメータとして設定することができる。なお素早さパラメータを行動可能オブジェクト決定パラメータとして設定するようにしてもよい。
またパラメータ設定部113は、戦闘に際して、行動可能オブジェクト決定パラメータのイニシャライズ処理を行う。
具体的には、複数のキャラクタオブジェクトのうち最も敏捷特性が高いキャラクタオブジェクトの行動可能オブジェクト決定パラメータに対する他のキャラクタオブジェクトの行動可能オブジェクト決定パラメータの比率を求めるとともに、その比率と所与のしきい値とを比較判定する。そして求められた比率がしきい値を超えると判定された場合には、求められた比率をしきい値にクリッピングすることによって他のキャラクタオブジェクトの行動可能オブジェクト決定パラメータを補正する。
またパラメータ設定部113は、行動可能オブジェクト及び行動可能オブジェクト以外のキャラクタオブジェクトの少なくともいずれか一方のキャラクタオブジェクトの行動可能オブジェクト決定パラメータを、行動可能オブジェクトを決定する毎に更新する処理を行う。
具体的には、行動可能オブジェクトについては、行動可能オブジェクト決定パラメータを戦闘の開始時に設定された固有の初期値にリセットすることにより更新する。また行動可能オブジェクト以外のキャラクタオブジェクトについては、そのキャラクタオブジェクトに与えられた行動可能オブジェクト決定パラメータから、行動可能オブジェクトに与えられた行動可能オブジェクト決定パラメータを減算することにより行動可能オブジェクト決定パラメータを更新する。なお行動可能オブジェクトについても行動可能オブジェクト決定パラメータから自身の値を減算するようにしてもよい。
またパラメータ設定部113は、戦闘中に発生するイベントに応じて所与のキャラクタオブジェクトの行動可能オブジェクト決定パラメータを一時的に変更する処理を行う。
具体的には、アイテムの使用や魔法などの特定の行動をキャラクタオブジェクトが行うイベントの発生に伴い、行動可能オブジェクト決定パラメータを一時的に増加させたり減少させたりすることで、行動可能オブジェクトの決定に影響を与えるようにすることができる。
行動可能オブジェクト決定部114は、複数のキャラクタオブジェクト間において戦闘が行われる際に、各キャラクタオブジェクトの行動可能オブジェクト決定パラメータに基づいて行動可能オブジェクトを決定する処理を行う。
具体的には、各キャラクタオブジェクトの敏捷特性を示す素早さパラメータより得られる行動可能オブジェクト決定パラメータに基づいて、所与のタイミングにおいて、1のキャラクタオブジェクトを行動可能オブジェクトに決定する。
具体的には、行動可能オブジェクト決定パラメータが最小のキャラクタオブジェクトを行動可能オブジェクトとして決定し、パラメータ設定部113により行動可能オブジェクト決定パラメータが更新されたときは、その更新後の各キャラクタオブジェクトの行動可能オブジェクト決定パラメータに基づいて、次の行動可能オブジェクトを決定する処理を行う。
そして本実施形態のゲームシステムでは、パラメータ設定部113によって行動可能オブジェクト決定パラメータの更新が行なわれつつ、戦闘が終了するまで(所与の条件が成立するまで)、行動可能オブジェクトを決定する処理が繰返し実行される。
タイマ115(第1のタイマ、第2のタイマ)は、タイマ制御部116の制御下において、ロールプレイングゲームのゲームの進行中における種々の時間を計測する。本実施形態では、タイマ115によって行動可能オブジェクトの行動時間(すなわち、行動可能な制限時間)を含む戦闘に用いる種々の時間が計測される。
特に、本実施形態のタイマ115は、敵オブジェクトとの戦闘時に、プレーヤオブジェクトを含め行動可能オブジェクトに決定されたキャラクタオブジェクトの行動可能な時間を示す行動可能時間を計測するタイマ(第1のタイマ)として機能する。
また、このタイマ115は、プレーヤオブジェクトが行動可能オブジェクトとして決定された場合に、プレーヤオブジェクトの行動を開始させるまでの時間、すなわち、当該プレーヤオブジェクトの行動に対してプレーヤがその行動を思考するための制限時間(以下、「シンキングタイム」ともいう。)を計測するタイマ(第2のタイマ)として機能する。
さらに、このタイマ115は、例えばフレーム(1/60秒、1/30秒)更新のタイミング(表示部に出力する垂直同期信号VSYNCがアクティブになるタイミング)でカウント値(カウント値の変数)をカウントアップすることで時間を計測する。なお、本実施形態のタイマは、ゲームシステムが有するリアルタイムクロックのタイマを用いて時間を計測してもよい。
タイマ制御部116は、タイマ115における計測の開始指示、計測の終了時刻の検出、計測中の中断指示、計測中における時間の調整および計測の強制終了などのタイマ115に関する計測制御を行う。
特に、本実施形態のタイマ制御部116は、タイマ115の計測中の時刻を監視し、タイマ115の示す時刻に基づいて、入力処理部112に所定の指示を行う。具体的には、このタイマ制御部116は、タイマ115が行動可能時間を計測中にタイマ値が所定の時刻を示した場合に、入力処理部112に対して入力の受付開始指示または受付終了指示を行うとともに、シンキングタイム計測中に、所定の時刻を示した場合に、タイマ115に行動可能時間の計測を開始させる。なお特定条件下では、タイマ115にシンキングタイムを計測させることなく行動可能時間の計測を開始する。
またタイマ制御部116は、特定条件下では、キャラクタオブジェクトの行動が停止している間に限って行動可能時間の時間計測を中断させたり、特定の操作入力に対して行動可能オブジェクトの行動時間が実質的に延長されるようにタイマ値を変更する処理などを行ったりする。
移動・動作処理部117(オブジェクト行動制御部)は、オブジェクト、例えば、キャラクタオブジェクト、車、又は飛行機等の移動・動作演算(移動・動作シミュレーション)を行う。即ち、移動・動作処理部117は、操作部160によりプレーヤが入力した操作データや、プログラム(移動・動作アルゴリズム)や、各種データ(モーションデータ)などに基づいて、オブジェクト(特に、敵オブジェクト及びプレーヤオブジェクトのキャラクタオブジェクト)をオブジェクト空間内で移動させる処理や、オブジェクトを動作(モーション、アニメーション)させる処理、特に、戦闘時における種々の行動(移動・動作)を制御するための処理を行う。
具体的には、オブジェクトの移動情報(位置、回転角度、速度、或いは加速度)や動作情報(各パーツオブジェクトの位置、或いは回転角度)を、1フレーム毎に順次求めるシミュレーション処理を行う。なお、このフレームは、オブジェクトの移動・動作処理(シミュレーション処理)や画像生成処理を行う単位である。
仮想カメラ制御部118は、オブジェクト空間内の所与(任意)の視点から見える画像を生成するための仮想カメラ(視点)の制御処理を行う。具体的には、仮想カメラの位置(X、Y、Z)又は回転角度(X、Y、Z軸回りでの回転角度)を制御する処理(視点位置や視線方向を制御する処理)を行う。
画像生成部120は、処理部100で行われる種々の処理(ゲーム処理)の結果に基づいて描画処理を行い、これにより画像を生成し、表示部190に出力する。いわゆる3次元ゲーム画像を生成する場合には、まずオブジェクト(モデル)の各頂点の頂点データ(頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等)を含むオブジェクトデータ(モデルデータ)が入力され、入力されたオブジェクトデータに含まれる頂点データに基づいて、頂点処理が行われる。なお頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理(テッセレーション、曲面分割、ポリゴン分割)を行うようにしてもよい。頂点処理では、頂点の移動処理や、座標変換(ワールド座標変換、カメラ座標変換)、クリッピング処理、透視変換、あるいは光源処理等のジオメトリ処理が行われ、その処理結果に基づいて、オブジェクトを構成する頂点群について与えられた頂点データを変更(更新、調整)する。そして、頂点処理後の頂点データに基づいてラスタライズ(走査変換)が行われ、ポリゴン(プリミティブ)の面とピクセルとが対応づけられる。そしてラスタライズに続いて、画像を構成するピクセル(表示画面を構成するフラグメント)を描画するピクセル処理(フラグメント処理)が行われる。ピクセル処理では、テクスチャの読出し(テクスチャマッピング)、色データの設定/変更、半透明合成、アンチエイリアス等の各種処理を行って、画像を構成するピクセルの最終的な描画色を決定し、透視変換されたオブジェクトの描画色を描画バッファ174(ピクセル単位で画像情報を記憶できるバッファ。VRAM、レンダリングターゲット)に出力(描画)する。すなわち、ピクセル処理では、画像情報(色、法線、輝度、α値等)をピクセル単位で設定あるいは変更するパーピクセル処理を行う。これにより、オブジェクト空間内に設定された仮想カメラ(所与の視点)から見える画像が生成される。なお、仮想カメラ(視点)が複数存在する場合には、それぞれの仮想カメラから見える画像を分割画像として1画面に表示できるように画像を生成することができる。
なお画像生成部120が行う頂点処理やピクセル処理は、シェーディング言語によって記述されたシェーダプログラムによって、ポリゴン(プリミティブ)の描画処理をプログラム可能にするハードウェア、いわゆるプログラマブルシェーダ(頂点シェーダやピクセルシェーダ)により実現されてもよい。プログラマブルシェーダでは、頂点単位の処理やピクセル単位の処理がプログラム可能になることで描画処理内容の自由度が高く、ハードウェアによる固定的な描画処理に比べて表現力を大幅に向上させることができる。
そして画像生成部120は、オブジェクトを描画する際に、ジオメトリ処理、テクスチャマッピング、隠面消去処理、αブレンディング等を行う。
ジオメトリ処理では、オブジェクトに対して、座標変換、クリッピング処理、透視投影変換、或いは光源計算等の処理が行われる。そして、ジオメトリ処理後(透視投影変換後)のオブジェクトデータ(オブジェクトの頂点の位置座標、テクスチャ座標、色データ(輝度データ)、法線ベクトル、或いはα値等)は、オブジェクトデータ記憶部175に保存される。
テクスチャマッピングは、記憶部170のテクスチャ記憶部177に記憶されるテクスチャ(テクセル値)をオブジェクトにマッピングするための処理である。具体的には、オブジェクトの頂点に設定(付与)されるテクスチャ座標等を用いて記憶部170のテクスチャ記憶部177からテクスチャ(色(RGB)、α値などの表面プロパティ)を読み出す。そして、2次元の画像であるテクスチャをオブジェクトにマッピングする。この場合に、ピクセルとテクセルとを対応づける処理や、テクセルの補間としてバイリニア補間などを行う。
隠面消去処理としては、描画ピクセルのZ値(奥行き情報)が格納されるZバッファ179(奥行きバッファ)を用いたZバッファ法(奥行き比較法、Zテスト)による隠面消去処理を行うことができる。すなわちオブジェクトのプリミティブに対応する描画ピクセルを描画する際に、Zバッファ179に格納されるZ値を参照する。そして参照されたZバッファ179のZ値と、プリミティブの描画ピクセルでのZ値とを比較し、描画ピクセルでのZ値が、仮想カメラから見て手前側となるZ値(例えば小さなZ値)である場合には、その描画ピクセルの描画処理を行うとともにZバッファ179のZ値を新たなZ値に更新する。
αブレンディング(α合成)は、α値(A値)に基づく半透明合成処理(通常αブレンディング、加算αブレンディング又は減算αブレンディング等)のことである。例えば、通常αブレンディングでは、α値を合成の強さとして線形補間を行うことにより2つの色を合成した色を求める処理を行う。
なお、α値は、各ピクセル(テクセル、ドット)に関連づけて記憶できる情報であり、例えばRGBの各色成分の輝度を表す色情報以外のプラスアルファの情報である。α値は、マスク情報、半透明度(透明度、不透明度と等価)、バンプ情報などとして使用できる。
音生成部130は、処理部100で行われる種々の処理の結果に基づいて音処理を行い、BGM、効果音、又は音声などのゲーム音を生成し、音出力部192に出力する。
なお、本実施形態のゲームシステムは、1人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。
また、複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、1つの端末を用いて生成してもよいし、ネットワーク(伝送ライン、通信回線)などで接続された複数の端末(ゲーム機、携帯電話)を用いて分散処理により生成してもよい。
2.本実施形態の手法
以下では、本実施形態のゲームシステムにおいて、戦闘中における行動可能オブジェクトを戦闘開始から戦闘が終了するまで繰り返し決定する手法と、プレーヤオブジェクトが行動可能オブジェクトに決定された場合における当該プレーヤオブジェクトの行動制御手法について説明する。
本実施形態のゲームシステムは、ロールプレイングゲームにおいて、複数のキャラクタオブジェクト間において戦闘を行う場合に、各キャラクタオブジェクトの素早さパラメータを更新しつつ、戦闘が開始されてから当該戦闘が終了するまで、当該各素早さパラメータに応じて何れかのキャラクタオブジェクトに対して繰り返し行動権を付与し、すなわち、当該キャラクタオブジェクトを行動可能オブジェクトとして繰り返し決定するようになっている。
そして、本実施形態のゲームシステムでは、行動可能オブジェクトが決定される毎に、実時間軸に沿ってリアルタイムに進行する予め定められた行動可能時間を制限時間として、プレーヤの操作入力又は所定のアルゴリズムに従った種々の行動を決定された行動可能オブジェクトに対して実行させるようになっている(以下、この戦闘方法を「タイムシェアードリアルタイムバトル」ともいう。)。
特に、本実施形態のゲームシステムは、プレーヤオブジェクトが行動可能オブジェクトに決定された場合に、操作入力に応じて実行可能であることを前提に、自由な発想によってプレーヤの操作入力に応じてプレーヤオブジェクトを行動させることができるようになっている。
なお、以下に、本実施形態のゲームシステムにおける行動可能オブジェクト決定手法及びプレーヤオブジェクトの行動制御手法の詳細について説明する。
2.1 行動可能オブジェクト決定手法
(1)概要
まず、本実施形態のゲームシステムにおける行動可能オブジェクト決定手法の概要について説明する。
本実施形態では、戦闘の開始時点、および前回に決定された行動可能オブジェクトが行動を開始した後から行動可能時間が終了するまでの期間のいずれかの時点において、戦闘可能な敵オブジェクトおよびプレーヤオブジェトを含む味方オブジェクト(味方オブジェクトはプレーヤオブジェクトであってもよいし、ノンプレーヤキャラクタオブジェクト(NPC)であってもよい)の中からキャラクタオブジェクトの固有の敏捷特性を示す素早さパラメータ(第2のパラメータ)から得られる行動可能オブジェクト決定パラメータ(第1のパラメータ)に応じて、1のキャラクタオブジェクトを行動可能オブジェクトとして決定(設定)するようになっている。
また、本実施形態では、次の行動可能オブジェクトを決定するために、行動可能オブジェクトを決定した後に、行動可能オブジェクトと行動可能オブジェクト以外の各キャラクタオブジェクト(以下、「行動不許可オブジェクト」という)とに分けて各キャラクタオブジェクトの行動可能オブジェクト決定パラメータを更新するようになっている。
そして、本実施形態では、戦闘が開始されてから戦闘が終了するまで、更新された各キャラクタオブジェクトの行動可能オブジェクト決定パラメータに応じて行動可能オブジェクトを繰り返し決定するようになっている。
特に、本実施形態では、敵オブジェクトが行動可能オブジェクトとして決定された場合には、所定のプログラム(アルゴリズム)に従ってプレーヤオブジェクトへの攻撃などの各種行動を実行するようになっている。
また、本実施形態では、プレーヤオブジェクトが行動可能オブジェクトとして決定された場合には、プレーヤの操作に応じて、後述の行動可能オブジェクトとしてのプレーヤオブジェクトの行動処理を行うようになっている。
このように、本実施形態の行動可能オブジェクト決定手法では、戦闘時におけるキャラクタオブジェクトの重要な特性の一つである素早さの特性を定量化し、それに基づいて行動可能オブジェクトを決定するようになっている。
このため、本実施形態の手法によれば、例えば、敏捷特性が高いことを示す素早さパラメータを有しているキャラクタオブジェクトの場合には、その攻撃回数が多くなり、当該敏捷特性が低いことを示す素早さパラメータを有しているキャラクタオブジェクトの場合には、その攻撃回数が少なくなる。
したがって、本実施形態の手法によれば、各キャラクタオブジェクトの敏捷特性を用いることによって、戦闘時の臨場感を高めることができるとともに、敏捷特性の高い敵オブジェクトを早いタイミングで撃退するなど戦闘時の戦略を構築するという楽しみをプレーヤに提供することができるので、ロールプレイングゲームにおける戦闘時の楽しみを更に向上させることができるようになっている。
また本実施形態の手法によれば、戦闘中において必ず1のキャラクタオブジェクトは行動可能状態となっているので、いずれのキャラクタオブジェクトも行動できない空白時間を発生させることがなく、プレーヤがストレスを感じずにプレイできるゲームを提供することができる。
なお、本実施形態において、戦闘の終了とは、例えば、敵オブジェクトの全滅(勝利)または、味方オブジェクトを含むプレーヤオブジェクトの全滅(敗北)などの戦闘が成立しなくなった場合及びプレーヤオブジェクトの敵前逃亡(逃げる)した場合などの所定の終了条件(所与の条件)を満たすことをいう。
(2)行動可能オブジェクトの具体的決定手法
以下に、図2を用いて本実施形態のゲームシステムにおける行動可能オブジェクトの決定法についてより詳しく説明する。
なお、図2は、本実施形態のゲームシステムにおける行動可能オブジェクトの決定手法について説明するための図である。また、この行動可能オブジェクトを最初に決定する際に用いる、すなわち、戦闘開始時に用いる各キャラクタオブジェクト固有の素早さパラメータ(行動可能オブジェクト決定パラメータの初期値の基礎となる値)の詳細については後述する。
本実施形態のゲームシステムでは、戦闘が開始されたときに予め設定されている各キャラクタオブジェクト固有の値である行動可能オブジェクト決定パラメータの初期値(素早さパラメータの逆数)を比較し、又は、前回の行動可能オブジェクトにおける行動可能時間の終了前に、後述する更新処理によって更新された各キャラクタオブジェクトの行動可能オブジェクト決定パラメータを比較し、当該各行動可能オブジェクト決定パラメータのうち、最小の値を示す行動可能オブジェクト決定パラメータを有するキャラクタオブジェクトを行動可能オブジェクトとして決定するようになっている。
また、本実施形態では、行動可能オブジェクト決定パラメータを比較する際には各キャラクタオブジェクト固有の値である素早さパラメータの逆数を初期値として用いており、当該逆数を用いることによって、比較する際の数値を「0」〜「1」までの値域に正規化し、後述する更新処理をパラメータの減算にて実行している。
すなわち、本実施形態の手法は、後述する更新処理などを行う際に、演算時の値のオーバーフロー又はアンダーフローを防止しながら的確に演算処理を行ったり、絶対値の小さい値を用いることによって演算処理の負担を軽減したりするために、行動可能オブジェクト決定パラメータとしてキャラクタオブジェクトの敏捷特性を示す素早さパラメータの逆数を用いている。
要するに、本実施形態の手法では、戦闘が開始されたときには、各キャラクタオブジェクトに固有の素早さパラメータの逆数を行動可能オブジェクト決定パラメータとして算出し、この算出された逆数のうち最小の値を有するキャラクタオブジェクトを、オブジェクト空間内での行動が許可される行動可能オブジェクトとして決定している。
そして、本実施形態の手法では、行動可能オブジェクトとなったキャラクタオブジェクトの次に最小の行動可能オブジェクト決定パラメータを有するキャラクタオブジェクトを、次に行動可能オブジェクトとして決定されると予想されるキャラクタオブジェクト(以下、「行動予定オブジェクト」という。)として決定している。このような手法を採用することによって、例えば、行動予定オブジェクトをプレーヤに通知するような表示制御を行っておけば、プレーヤは次回にどのキャラクタオブジェクトが行動するかを把握できることによって戦闘の戦略を立てやすくなる。
また、本実施形態の手法では、所与の行動可能オブジェクトが行動している際(前回の行動可能オブジェクトが決定されて行動可能オブジェクト決定パラメータが更新されてからその行動可能オブジェクトにおける行動可能時間が終了するまでの間)に、更新された各キャラクタオブジェクトの行動可能オブジェクト決定パラメータを比較し、最小の値を有するキャラクタオブジェクトを、次にオブジェクト空間内での行動が許可される行動可能オブジェクトとして決定している。
例えば、図2(A)に示すように、敵オブジェクトEOが「3」体及びプレーヤオブジェクトPOを含めた味方オブジェクトAOが「3」体の場合であって、各キャラクタオブジェクトの素早さパラメータが、それぞれ、P=「20」、A1=「15」、A2=「12」、E1=E2=E3=「10」の場合には、本実施形態の手法によれば、それぞれ、行動可能オブジェクト決定パラメータRを下式1A〜1Dのように算出するようになっている。ただし、「P」、「A1」、「A2」及び「E」は、任意の値を示し、R(PO)等はかっこ内のキャラクタオブジェクト(この場合には、プレーヤオブジェクトPO)における行動可能オブジェクト決定パラメータを示す。
R(PO) =(1/P) =(1/20)=0.050・・・(1A)
R(AO1)=(1/A1)=(1/15)=0.067・・・(1B)
R(AO2)=(1/A2)=(1/12)=0.083・・・(1C)
R(EO) =(1/E) =(1/10)=0.100・・・(1D)
このとき、算出された各行動可能オブジェクト決定パラメータを比較し、図2(B)に示すように、最小の値を有するプレーヤオブジェクトPOを行動可能オブジェクトとして決定する。決定された行動可能オブジェクトに対して、行動可能オブジェクトであること示す表示D1を有する画像を生成するようになっている。
また、本実施形態の手法では、図2(B)に示すように、味方オブジェクトAO1を次に行動可能オブジェクトとして決定されると予想される行動予定オブジェクトに決定し、行動予定オブジェクトであることを示す表示(以下、「ネクスト表示」という。)D2を有する画像を生成するようになっている。
ただし、本実施形態では、ネクスト表示されているキャラクタオブジェクトが、行動可能オブジェクトに攻撃されて撃退され、戦闘不能になる場合などもあり、行動予定オブジェクトが、必ずしも、行動可能オブジェクトに決定されるとは限らない。すなわち、本実施形態では、次の行動可能オブジェクトを決定するオブジェクト決定処理を行う前には、必ず以下に説明する更新処理を行うので、当該更新処理を行う際に、戦闘不能とされた場合など、各行動可能オブジェクト決定パラメータの中で最小の値にならない場合には、次の行動可能オブジェクトとして決定されることはない。
なお、本実施形態の手法では、図2(B)に示すように、行動可能オブジェクトに決定されなかったキャラクタオブジェクト(行動予定オブジェクトを含む)、すなわち、味方オブジェクトAO1、AO2及び各敵オブジェクトEO1〜EO3については、行動不許可オブジェクトとして設定される。
(3)パラメータの更新手法
次に、図3を用いて本実施形態の画像生成システムにおける行動可能オブジェクト決定パラメータの更新について説明する。なお、図3は、本実施形態のゲームシステムにおける行動可能オブジェクト決定パラメータの更新手法について説明するための図である。
本実施形態の手法では、行動可能オブジェクトを決定すると、次の行動可能オブジェクトを決定するまでに、行動可能オブジェクトに決定されていない行動不許可オブジェクトである各キャラクタオブジェクトの行動可能オブジェクト決定パラメータから、行動可能オブジェクトの行動可能オブジェクト決定パラメータを減算し、行動不許可オブジェクトの行動可能オブジェクト決定パラメータを更新するようになっている。
また、本実施形態の手法では、行動可能オブジェクトの行動可能オブジェクト決定パラメータを更新する際には、キャラクタオブジェクト固有の初期値(戦闘が開始されたときに予め設定されている各キャラクタオブジェクト固有の素早さパラメータの逆数)にリセット(再設定)するようになっている。
すなわち、本実施形態の手法によれば、行動可能オブジェクト決定パラメータを更新する際には、各パラメータの値を減少させることによって、戦闘が終了するまで、値のオーバーフローなどを防止しながら演算処理を的確に行うことができる。
例えば、行動可能オブジェクトがプレーヤオブジェクトPOで行動可能オブジェクトに決定された際に用いた逆数R(PO)の値が「1/X」の場合に、図3(A)及び図3(B)に示すように、行動不許可オブジェクトである味方オブジェクトAOおよび敵オブジェクトEOの各素早さパラメータの逆数である行動可能オブジェクト決定パラメータR(AO1)=「1/S」、R(AO2)=「1/T」およびR(EO)=「1/U」から、プレーヤオブジェクトの素早さパラメータの逆数である行動可能オブジェクト決定パラメータR(PO)=「1/X」を減算して更新値Nを算出するようになっている。
またこの場合において、本実施形態の手法では、プレーヤオブジェクトPOの行動可能オブジェクト決定パラメータを初期値R(Pi)=「1/Pi」(PiはPOに固有の素早さパラメータ)に再設定することによりR(Pi)を更新値Nとして算出するようになっている。
すなわち、本実施形態のパラメータの更新手法では、下式2A〜2Cによって行動不許可オブジェクトの各キャラクタオブジェクトの行動可能オブジェクト決定パラメータの更新値Nを算出するとともに、下式3によって行動可能オブジェクト(プレーヤオブジェクトPO)の行動可能オブジェクト決定パラメータを初期値R(Pi)に再設定するようになっている。ただし、「X」、「S」、「T」、「U」及び「Pi」は、任意の値を示し、N(AO1)等はかっこ内のキャラクタオブジェクト(この場合には、味方オブジェクトAO1)における更新値を示す。
N(AO1) =(1/S)−(1/X) ・・・(2A)
N(AO2) =(1/T)−(1/X) ・・・(2B)
N(EO) =(1/U)−(1/X) ・・・(2C)
N(PO) =R(Pi)=(1/Pi) ・・・(3)
なお、本実施形態の画像生成システムは、上式2A〜2C及び上式3にて算出された各更新値Nに基づいて、次のオブジェクト行動決定処理を行い、次の行動可能オブジェクトが何れかのキャラクタオブジェクトに決定された場合には、当該キャラクタオブジェクトの行動オブジェクトとしての行動が終了するまでに、次の更新処理を行うようになっている。
例えば、上式2A〜2C及び上式3の更新値Nに基づいて、行動可能オブジェクトに味方オブジェクトAO1が決定された場合には、更新値(以下、単に「次の更新値」という。)N1を下式4A〜4C及び下式5に基づいて算出し、次の更新処理を実行するようになっている。
N1(PO) =(1/Pi)−{(1/S)−(1/X)} ・・・(4A)
N1(AO2)=(1/T)−(1/X)−{(1/S)−(1/X)}・・・(4B)
=(1/T)−(1/S)
N1(EO) =(1/U)−(1/X)−{(1/S)−(1/X)}・・・(4C)
=(1/U)−(1/S)
N1(AO1)=(1/A1i) ・・・(5)
ただし、上述と同様に、「X」、「S」、「T」、「U」及び「Pi」は、任意の値を示し、N1(PO)等はかっこ内のキャラクタオブジェクト(この場合には、プレーヤオブジェクトPO)における次の更新値、すなわち、行動可能オブジェクト決定パラメータの次の更新値を示す。また、1/A1iは、AO1の行動可能オブジェクト決定パラメータの初期値を示す。
(4)行動可能オブジェクト決定パラメータのイニシャライズについて
次に、図4を用いて本実施形態における戦闘開始時の行動可能オブジェクト決定パラメータのイニシャライズについて説明する。なお、図4は、本実施形態における戦闘開始時の行動可能オブジェクト決定パラメータのイニシャライズについて説明するための図である。
本実施形態の手法では、まず戦闘開始時に設定されている各キャラクタオブジェクトに固有の素早さパラメータの逆数を行動可能オブジェクト決定パラメータの初期値とし、この初期値を比較する。
そして、各行動可能オブジェクト決定パラメータの初期値を比較した結果、最大の敏捷特性を有するキャラクタオブジェクトの行動可能オブジェクト決定パラメータと他のキャラクタオブジェクトの行動可能オブジェクト決定パラメータとの比率(以下、「パラメータ比率」ともいう。)が予め設定されたしきい値を超える場合には、パラメータ比率をしきい値にクリッピングすることによって、そのキャラクタオブジェクトの行動可能オブジェクト決定パラメータの初期値を補正することでイニシャライズを行っている。すなわち本実施形態の手法では、各キャラクタオブジェクトの間のパラメータ比率がしきい値以下になるようにイニシャライズされる。
具体的には、本実施形態では、しきい値としては「2.3」が設定されており、全てのキャラクタオブジェクトが、最低でも最も敏捷特性の高いキャラクタオブジェクト(以下、「最大敏捷特性オブジェクト」という。)が2.3回行動する間に1回は、行動可能オブジェクトとしてオブジェクト空間内での行動が許可されるようなっている。
例えば、図4(A)に示すように、3体の敵オブジェクトEOと3体のプレーヤ側のキャラクタオブジェクト(プレーヤオブジェクトPO及び味方オブジェクトAO)とで戦闘する場合を考えると、各キャラクタオブジェクトの行動可能オブジェクト決定パラメータの初期値が、それぞれ、R(PO)=1/P=「1/23」、R(AO1)=1/A1=「1/15」、R(AO2)=1/A2=「1/12」、R(EO1)=1/E1=「1/5」、R(EO2)=1/E2=「1/5」、R(EO3)=1/E3=「1/5」の場合には最も敏捷特性の高いキャラクタオブジェクトがプレーヤオブジェクトPOになる。
したがって、図4(A)に示す例では、プレーヤオブジェクトPOの行動可能オブジェクト決定パラメータの初期値を基準にして他のキャラクタオブジェクトの行動可能オブジェクト決定パラメータの初期値とのパラメータ比率を算出し、算出されたパラメータ比率がしきい値「2.3」を超える敵オブジェクトEO1〜EO3に関しては、その行動可能オブジェクト決定パラメータの初期値を、パラメータ比率が「2.3」になるように補正したパラメータR(EO1)´、R(EO2)´、R(EO3)´を求める。すると図4(B)に示すように、各敵オブジェクトEO(EO1〜EO3)の行動可能オブジェクト決定パラメータの初期値が、各々「1/10」にイニシャライズされる。
なお、本実施形態では、各キャラクタオブジェクト、特に、プレーヤオブジェクトを含む味方オブジェクトの装備品などによって素早さパラメータが変動するようになっている。例えば、行動可能オブジェクト決定パラメータの初期値を比較する際に、各キャラクタに固有の素早さパラメータにこれから行われる戦闘のために装備する装備品に設定されている数値(マイナスに設定される装備品もあり)を加算するなどして、各キャラクタオブジェクトの素早さパラメータが変更されることがある。
また、本実施形態では、原則として戦闘開始時に設定されている各キャラクタオブジェクトの行動可能オブジェクト決定パラメータの初期値を戦闘終了まで用いるようになっているが、戦闘中に装備品を変更した場合や、戦闘中に他のキャラクタオブジェクトにおける攻撃など戦闘中のダメージを受けた場合など、戦闘状況に従って各キャラクタオブジェクトの素早さパラメータが変更されることに伴って、行動可能オブジェクト決定パラメータの初期値が戦闘中に変動するようにしてもよい。
2.2 行動可能オブジェクトとなったプレーヤキャラクタの行動制御手法
(1)概要
まず、本実施形態の画像生成システムにおけるプレーヤキャラクタの行動制御手法の概要について説明する。
本実施形態の手法では、戦闘時において、行動可能オブジェクトがオブジェクト空間内での許可されている期間において、行動可能時間を計測しており、予め定められた制限時間内において、プレーヤの操作入力に応じた種々の行動(移動及び動作の少なくとも一方)を、プレーヤオブジェクトに実行させることができるようになっている。
例えば、オブジェクト空間内における移動、敵オブジェクトへの攻撃動作、敵オブジェクトからの攻撃に対する防御動作、味方オブジェクトのダメージの回復や復活または敵オブジェクトへの攻撃に関する連携など味方のキャラクタオブジェクトに対する動作、オブジェクト空間内での移動などにより敵オブジェクトとの対戦を回避するための行動などをプレーヤオブジェクトに実行させることができるようになっている。
このため、本実施形態の手法によれば、対戦する敵オブジェクトの選択や攻撃の種類の決定などだけでなく、戦闘時におけるプレーヤオブジェクトのオブジェクト空間内での位置の決定なども、プレーヤの操作入力に応じて自由に決定させることが可能になり、プレーヤオブジェクトの行動の自由度を向上させることができる。
したがって、本実施形態の手法によれば、複数のキャラクタ同士が戦闘する場合に、プレーヤオブジェクトの行動を拡張することができるとともに、戦闘におけるプレーヤの戦略を的確に反映させることができるようになる。
また、本実施の形態では、プレーヤオブジェクトが所定の敵オブジェクトの撃退又は所定のアイテムの取得など、予め定められたロールプレイングゲームにおける所定のイベントをクリアした場合や、プレーヤオブジェクトのロールプレイングゲーム中における経験を定量化した経験値などが所定値を超えた場合などゲームの進行状況に応じて、戦闘時におけるプレーヤキャラクタの操作入力の難易度が変動するパーティクラスという概念を導入している。
このため、本実施の形態のゲームシステムでは、パーティクラスに基づいて、実行可能な攻撃の種類、味方オブジェクトに対する行動、あるいは行動可能時間の計測方法に対してなど戦闘時におけるプレーヤオブジェクトの行動を規定するための操作入力の難易度に関して変化を与えるようになっており、プレーヤに対して、ゲームの進行に伴って戦略立案の際の迅速性や戦略の創意工夫を要求し、ゲームの初期段階から後期に至るまで戦闘時の楽しみを維持させることができるようになっている。
(2)プレーヤオブジェクトの行動制御に関する具体的手法
次に、図5〜図8を用いて本実施形態の画像生成システムにおけるプレーヤオブジェクトの行動制御に関する具体的手法について詳細に説明する。なお、図5は、プレーヤオブジェクトが敵オブジェクトに攻撃する際の当該プレーヤオブジェクトにおける行動を説明するための図であり、図6は、プレーヤオブジェクトが味方オブジェクトに対して回復行動を行う際の当該プレーヤオブジェクトにおける行動を説明するための図である。また、図7は、プレーヤオブジェクトが戦闘を回避する際の当該プレーヤオブジェクトにおける行動を説明するための図であり、図8は、制限時刻を経過した際のプレーヤオブジェクトの行動について説明するための図である。
まず本実施の形態では、プレーヤオブジェクトが行動可能オブジェクトに決定されると、プレーヤの操作入力の受付が開始された後の最初の操作入力を行ったとき、後述するシンキングタイムによる制限時刻を経過したとき、または、プレーヤの操作が可能になったとき(後述するプレーヤの操作入力の受付が開始されたとき)など、プレーヤオブジェクトの行動を開始するための条件(以下、単に「開始条件」ともいう。)を具備したときから行動可能時間の計測を行うようになっている。
また、本実施の形態では、予め定められた制限時間内に限って、プレーヤの操作入力を受け付けるようになっており、プレーヤの操作入力に基づいてプレーヤオブジェクトの行動制御を行うようになっている。すなわち、開始条件を具備したときからタイマが予め定められた時刻(以下、「制限時刻」という。)を示すまでは、プレーヤの操作入力が受け付けられるようになっている。
そして、本実施の形態では、プレーヤオブジェクトの行動制御については、操作入力に応じて実行可能であることを前提に自由にその操作を行うことができるようになっている。
具体的には、プレーヤの操作入力に基づいて、オブジェクト空間内における移動、敵オブジェクトへの攻撃動作、敵オブジェクトからの攻撃に対する防御動作、味方オブジェクトのダメージの回復や復活または敵オブジェクトへの攻撃に関する連携など味方のキャラクタオブジェクトに対する行動、敵オブジェクトとの対戦の回避に関する行動などを制御するようになっている。
〔オブジェクト空間における移動〕
本実施の形態では、行動可能時間内であれば、プレーヤの操作入力に応じてプレーヤオブジェクトがオブジェクト空間内を自由に移動することができるようになっており、プレーヤオブジェクトの向きの指定、移動する方向の指定及び移動距離やジャンプなど移動する際のモーションなどを、プレーヤの操作入力に基づいて制御するようになっている。
そして、本実施形態の手法では、オブジェクト空間において、プレーヤオブジェクトを自由に移動させることによって、後述する敵オブジェクトへの攻撃、味方のキャラクタオブジェクトへの回復行動、敵オブジェクトとの対戦の回避や一時的な退避など攻撃に多様性を持たせ、攻撃動作だけでなく種々の行動を規定するようになっている。
また、本実施形態の手法では、パーティクラスが上位になると、下位のパーティクラスのときに比べて、オブジェクト空間における移動速度が速くなるようになっており(例えば、上位のパーティクラスの場合には下位のパーティクラスにおける移動速度の1.5倍)、ゲーム進行に従って向上するプレーヤの操作入力の習熟度や敵オブジェクトの能力に併せてプレーヤオブジェクトの行動能力を変化させるようになっている。
〔敵オブジェクトへの攻撃〕
また本実施の形態では、プレーヤの操作入力によって攻撃動作が指示されると、プレーヤオブジェクトのオブジェクト空間内における向き及び敵オブジェクトまでの距離に基づいて、定められた目標となるべく敵オブジェクト(以下、「ターゲットオブジェクト」という。)を設定するようになっている。そして、本実施の形態では、決定されたターゲットオブジェクトに対して操作入力によって指示された攻撃を行うようになっている。
例えば、図5(A)に示すように、プレーヤの操作入力により、敵オブジェクトEO1に対して指示する攻撃が到達する距離(以下、「攻撃距離」という。)になる位置までプレーヤオブジェクトPOを移動させてから、「剣よる攻撃」の指示を行うと、本実施形態の手法によれば、図5(B)に示すように、敵オブジェクトEO1をターゲットオブジェクトとして設定し、プレーヤオブジェクトPOに敵オブジェクトEO1に対して操作入力により指示された攻撃動作(剣で斬りつける動作)を実行させる。
また、本実施の形態では、プレーヤが操作入力により指示可能な攻撃動作は、例えば、殴打する、または銃で発砲するなどプレーヤオブジェクトの手足または当該プレーヤオブジェクトに装備された装備品(爆弾などの装備品も含む)にて実行可能な通常の攻撃(以下、「通常攻撃」という。)と必殺技などの特別な攻撃(以下、「特別攻撃」という。)との2種類に分類される。
また、本実施形態では、攻撃動作の種別によってプレーヤオブジェクトを起点として敵オブジェクトに攻撃が届く距離・範囲が予め定められており、この攻撃が届く距離・範囲の中に敵オブジェクトが存在する場合には、プレーヤオブジェクトによる攻撃が成功することになる。攻撃が成功した場合には、敵オブジェクトに対してして体力パラメータを変更するなどしてダメージの付与を行ったり、当該敵オブジェクトの撃退又は戦闘の終了など攻撃が成功した場合の処理を行ったりする。その一方で、攻撃の届く距離・範囲に敵オブジェクトが存在しない場合には、攻撃が失敗となる。
また、本実施形態では、魔法などの技によってはターゲットオブジェクトに設定された敵オブジェクトだけなく、敵オブジェクト全体に影響を与える攻撃もあり、この場合には、本実施形態の手法では、ターゲットオブジェクトを決定せず、技を実行可能な全ての敵オブジェクト、すなわち、戦闘可能な全ての敵オブジェクトに対して技を実行させるようになっている。
さらに、本実施形態の手法では、プレーヤの操作入力によって攻撃対象となる敵オブジェクトを決定せず、プレーヤオブジェクトのオブジェクト空間内における向きと敵オブジェクトまでの距離に基づいて決定しているが、勿論、プレーヤの操作入力によって攻撃対象の敵オブジェクトを選択できるようにしてもよい。
〔味方オブジェクトへの回復行動〕
また本実施の形態では、プレーヤの操作入力によって味方のキャラクタオブジェクトに対する回復行動の指示が入力されると、プレーヤオブジェクトのオブジェクト空間内における向き及び味方オブジェクトまでの距離に基づいて、定められた目標となる味方オブジェクトを決定し、指示された回復行動を行うようになっている。
具体的には、プレーヤの操作入力によって、味方オブジェクトのダメージの回復、撃退された味方オブジェクトの復活、味方オブジェクトの異常状態からの回復、味方オブジェクトの能力を向上させるための行動など、味方のキャラクタオブジェクトに対する回復行動を制御するようになっている。
例えば、図6(A)に示すように、味方オブジェクトAO1が攻撃され、敵オブジェクトEOの魔法により戦闘不能になっている場合には、プレーヤの操作入力により、プレーヤオブジェクトPOを味方オブジェクトAO1に向けて、味方オブジェクトAO1のステータス異常を回復させるための技が到達する距離(以下、「技到達距離」という。)になる位置までプレーヤオブジェクトPOを移動させ、ステータス異常を回復させるための技の指示を行うと、図6(B)に示すように、プレーヤオブジェクトPOが味方オブジェクトAO1に対して、プレーヤの操作入力によって指示された技(この場合には復活する技)を実行する。
なお、本実施形態では、魔法などの技によっては目標に設定された味方オブジェクトだけなく、味方オブジェクト全体に影響を与える技もあり、この場合には、目標となる味方オブジェクトを選定せず、全ての味方オブジェクト、すなわち、ステータス異常を回復させる技の場合には、全ての味方オブジェクトに対してステータス異常を回復させる技を実行させることもできる。
また、本実施形態では、味方オブジェクトとだけでなく、プレーヤオブジェクトに対しても味方オブジェクトと同様に、ダメージの回復又は復活、異常状態からの回復、自己の能力を向上させるための行動など、プレーヤオブジェクトに対する回復行動を実行させることができる。
〔敵オブジェクトとの対戦の回避〕
また本実施の形態では、プレーヤの所定の操作入力によって、敵オブジェクトとの戦闘を回避するための行動を行わせることができるようになっている。
具体的には、プレーヤオブジェクトが行動可能オブジェクトに決定され、その操作入力の受付けが開始された場合に、戦闘を回避するための所定の操作入力が為されると、敵オブジェクトとの対戦の回避と判断し、オブジェクト空間上における戦闘が行われている場所から異なる場所に移動するための行動制御を行うようになっている。
なお、本実施の形態では、プレーヤオブジェクトが行動可能オブジェクトであり、行動可能時間内であれば、いずれのタイミングにおいても操作入力よって指示可能であるが、本実施形態では、上述のようにプレーヤオブジェクトのステータスが異常の場合には、敵オブジェクトとの対戦の回避または逃避の行動を制御することができないようになっている。
例えば、本実施形態では、図7(A)に示すように、戦闘中にプレーヤオブジェクトPOが行動可能オブジェクトに決定され、かつ、戦闘回避のための所定の操作入力が入力されると、戦闘が行われている空間(戦闘フィールド:第2のオブジェクト空間)から逃避し、図7(B)に示すように、戦闘が行われる空間から異なる空間(マップフィールド:第1のオブジェクト空間)に移動するようになっている。
このように、本実施形態の手法によれば、敵オブジェクトへの攻撃、味方オブジェト等に対する回復行動及び敵オブジェクトとの対戦の回避に関する行動などプレーヤオブジェクトの行動に関して多様性を持たせ、攻撃動作だけでなく空間内を自由に移動できるなど種々の行動を指示することができるようになっている。
したがって、本実施形態の手法によれば、複数のキャラクタ同士が戦闘する場合に、対戦する敵オブジェクトの選択や攻撃の種類の決定など戦闘を行うための行動だけでなく、戦闘以外の行動やオブジェクトの立ち位置の自由な変更などについても拡張することができ、戦闘におけるプレーヤの戦略を的確に反映させることができるようになっている。
なお、本実施形態では、味方オブジェクトに対する行動においては、回復行動だけでなく、敵オブジェクトへの攻撃における連携など、操作入力に応じて味方オブジェクトとともに種々の行動を行うことができるようになっている。
一方、本実施形態では、行動時間が制限時間を超えた場合には、操作入力を拒否し、それ以上新たなプレーヤオブジェクトの行動を指示することができないように制御している。したがって、オブジェクト空間内を移動している場合には、制限時刻を過ぎるとその場でプレーヤオブジェクトの移動が停止するようにオブジェクトの行動が制御される。
すなわち、本実施形態では、図8(A)に示すように、敵オブジェクトEO1にプレーヤオブジェクトPOを向け、敵オブジェクトEO1に対して攻撃が到達する距離になる位置まで移動している途中に、制限時間を経過してしまうと、制限時間の経過時点の位置でプレーヤオブジェクトPOを停止させるようになっている。言い換えれば、本実施形態では、図8(A)に示すように、ポイントVで制限時刻(制限時間の終了時刻)となった場合には、プレーヤオブジェクトPOを到達予定位置まで行動させることができず、ポイントVにおいてその行動を停止させるように制御される。
ただし、オブジェクトの行動に関して一律に上述したような制御を行ってしまうと、動作途中でオブジェクトを不自然な状態で静止させることになるなどの不都合が生じうる。このため、本実施形態の手法では、制限時刻を超えた場合であっても、制限時刻までに操作入力が受け付けられて、攻撃動作やジャンプなど、一連の動作の制御を開始している場合には、その動作が終了するまでプレーヤオブジェクトの行動を続行させる制御を行っている。
例えば、図8(B)に示すように、ジャンプして敵オブジェクトEOに攻撃する場合に、着地する前のポイントVにて制限時刻となったとしても、着地して攻撃が終了するまでプレーヤオブジェクトPOの行動を制御し、着地したポイントWにてプレーヤオブジェクトPOを静止させるようになっている。
このように制限時刻までに操作入力が受け付けられた動作を完結できるように制御することによって、プレーヤオブジェクトの行動に伴うエフェクトの表示やモーションの表示に長時間を要する特殊な技に関する操作入力を、入力が受け付けられる制限時刻の間際になるまで行わずに、それまでの期間において短時間でエフェクトの表示やモーションの表示が行われる行動をプレーヤオブジェクトにさせておくという戦略を立てることができるようになる。
他方、本実施形態では、予め定められたパーティクラス(例えば、ロールプレイングゲームにおける最上位のパーティクラス)に設定されている場合に、プレーヤの操作入力に対応するプレーヤオブジェクトの行動毎に、プレーヤの操作入力とプレーヤオブジェクトの行動との対応関係を変更する制御を行っている。すなわち特定条件下では、プレーヤの操作入力に対するオブジェクトの行動命令の割当がオブジェクトが行動するたびに変化する制御を行っている。
すなわち、本実施形態では、通常の場合には、操作を入力する操作キーと操作キーにて指定されるプレーヤオブジェクトの行動が固定的に対応付けられているが、予め定められたパーティクラスの場合には、プレーヤオブジェクトが行動可能オブジェクトとして決定され、その行動を入力するための操作が行われる毎に、操作キーと操作キーにて指定されるプレーヤオブジェクトの行動の対応関係を変更し、プレーヤの操作入力を受け付けるようになっている。
このようにプレーヤオブジェクトの行動毎に、当該プレーヤの操作入力と当該プレーヤオブジェクトの行動との対応関係を変更することによって、本実施形態の手法によれば、プレーヤオブジェクトに行動を実行させるための操作入力が難しくなり、戦闘時の操作入力に関してプレーヤに強い関心を持たせることができるようになる。
(3)行動可能時間の計測制御手法
次に、図9及び図10を用いて本実施の形態における、行動可能時間の計測制御手法について説明する。なお、図9は、本実施形態の手法において計測される行動可能時間とパーティクラスの関係について説明するための図であり、図10は、プレーヤオブジェクトの行動中に表示される行動可能時間の画像の一例である。
本実施形態の画像生成システムは、プレーヤオブジェクトが行動可能オブジェクトに決定された場合に、所与のタイミングから制限時刻までプレーヤの操作入力を受け付けて、受け付けられた操作入力に従ってプレーヤオブジェクトを行動させる制御を行うべく、プレーヤオブジェクトの行動可能時間を計測するようになっている。
特に、本実施の形態では、パーティクラスなどロールプレイングゲームの進行状況に基づいて行動開始の条件を変化させるようになっており、すなわち、ゲームの進行状況に応じて行動可能時間の計測を開始するタイミングを変化させている。
したがって、本実施形態の手法によれば、ゲームが進行するに従って戦略立案の際の迅速性や当該戦略の創意工夫を要求することによって、ゲームの初期段階から後期に至るまで戦闘の楽しさを維持させることができるようになっている。
具体的には、“プレーヤオブジェクトが行動可能オブジェクトに決定され、かつ、未だプレーヤによってプレーヤオブジェクトの行動に関する操作入力がなされていない状態において、プレーヤの最初の操作入力が行なわれたとき”、“後述するシンキングタイムによる制限時間が終了したとき”、あるいは“プレーヤオブジェクトが行動可能オブジェクトに決定され、シンキングタイムなどを経ることなくプレーヤオブジェクトの行動に関するプレーヤの操作入力が可能になったとき(後述するプレーヤの操作入力の受付が開始されたとき)”などプレーヤオブジェクトの行動開始を示す開始条件を具備したときから行動可能時間の時間計測を行うようになっている。
そして、本実施の形態では、この開始条件が具備されたときから、パーティクラスなどゲームの進行状況に従って予め定められる制限時刻(例えば、ロールプレイングゲームの初期では計測開始から5秒後、その中期及び後期では計測開始から4秒後)を示すまで、プレーヤの操作入力に応じて前記プレーヤオブジェクトの行動を実行させるための時間計測を行うようになっている。
例えば、図9に示すように、パーティクラスが下位の場合などロールプレイングゲームのシナリオにおける初期段階においては、プレーヤオブジェクトのオブジェクト空間における行動が停止しているときには行動可能時間の計測を開始しないようになっている。すなわち、後述するシンキングタイムが無制限であることと同じである。
また、ロールプレイングゲームのシナリオにおける初期段階においては、一旦、行動可能時間の計測が開始された場合であっても、行動可能時間中に、プレーヤオブジェクトのオブジェクト空間における行動が停止しているときには行動可能時間の計測を中断し、プレーヤの操作入力が再開された際に、行動可能時間の計測の中断を解除して、中断された時刻から再計測を開始するようになっている。すなわち、プレーヤオブジェクトがオブジェクト空間内を行動しているときにのみ行動可能時間を計測するようになっている。このようにすることによって操作入力が未熟な初期段階では、プレーヤオブジェクトの行動を停止している間は、次の行動戦略を考える時間としてプレーヤが利用できるようになっている。
一方、図9に示すように、パーティクラスが中位クラスの場合などロールプレイングゲームのシナリオにおける中期段階においては、後述するシンキングタイムを有限期間として設定しており、プレーヤオブジェクトの行動を規定する操作入力が可能になった状態から予め定められた時間(例えば、1秒または3秒)の計測後に行動可能時間の計測を自動的に開始し、予め定められた制限時刻まで行動可能時間を計測するようになっている。
なお、ロールプレイングゲームのシナリオにおける中期段階においては、プレーヤオブジェクトの行動が停止している場合であっても、行動可能時間の時間計測を中断せずに継続するようになっている。このようにすることによって、プレーヤは迅速にプレーヤオブジェクトの行動を決定して操作入力を行わなければならなくなるため、戦闘のスリル感を増幅させることができる。
また、ロールプレイングゲームのシナリオにおける中期段階においては、シンキングタイム中に、プレーヤオブジェクトの行動を規定する操作入力された場合には、シンキングタイムの計測を強制的に終了し(シンキングタイムの計測をキャンセルし)、行動可能時間の計測を開始するようになっている。
他方、図9に示すように、パーティクラスが上位クラスとなるロールプレイングゲームのシナリオにおける後期段階においては、後述するシンキングタイムも省略し、プレーヤオブジェクトが行動可能オブジェクトとして決定されて、その行動を規定する操作入力が可能になった状態(プレーヤの操作入力の受付が開始された状態)から、行動可能時間の計測を開始するようになっており、予め定められた制限時刻まで行動可能時間を計測するようになっている。
このように、本実施形態の手法によれば、初心者などプレーヤオブジェクトの行動を規定するための操作入力が不慣れなプレーヤに対しては、操作入力を行わなければ所定の時刻までプレーヤオブジェクトを行動させるための時間が計測されず、的確にプレーヤオブジェクトの行動を熟考することができるようになっている。
そして、本実施形態の手法によれば、操作入力に熟練したプレーヤに対しては、操作入力を行えば直ぐに行動可能時間の時間計測を開始するので、プレーヤオブジェクトの行動を実行させることができるようになっており、操作入力を開始するまでの持ち時間を省略することができ操作インターフェース環境を向上させることができる。
したがって、本実施形態の手法によれば、初心者から操作を習熟したプレーヤに至るまで、操作の習熟度やゲームの理解度が異なっても、それぞれのプレーヤに対して、戦闘を楽しませることができるような操作インターフェース環境を提供することができる。
なお、本実施の形態では、戦闘中では、例えば、図10に示すように、行動可能時間を数字表示T1によって表示させるとともに、その残り時間の数字表示T2及びバー表示T3を表示させるための画像を生成し、プレーヤに対して、現在の行動可能オブジェクトが行動可能な残り時間を的確にかつ容易に視認させることができるようになっている。
また、本実施の形態では、パーティクラスだけでなく、単にプレーヤがゲーム中に取得した経験値により判断される経験レベルの変化、ゲームプログラム上における所定のプレーヤの入力、装備品の取得、所定の敵オブジェクトの撃退、ゲーム開始から所定の時間経過など、プレーヤオブジェクトが自ら行動することも含めて予め定められたイベントが発生した場合に、上述のように行動可能時間の開始タイミングを変化させるようにしてもよい。
上記に加えて、本実施の形態では、プレーヤオブジェクトの攻撃の種別によって計測する行動可能時間の制限時刻や現在計測中のタイマ値を変化させるようになっている。
具体的には、通常攻撃を行う際に当該通常攻撃における利益を与えるために、通常攻撃を行う毎に行動可能時間の制限時刻を延長するようになっている。
すなわち、この手法によれば、通常の攻撃動作をプレーヤオブジェクトに実行させた場合には、必殺技によって攻撃動作を実行させた場合と異なり、操作入力を行うことができる時間が実質的に長くなるように制限時刻を変化させる利益をプレーヤに与えることができるようになっている。
これにより、本実施形態の手法によれば、通常の攻撃動作に関して付加価値を与えることによって、必殺技の攻撃に関する操作入力だけをすること無いように攻撃方法のバランスを図って、プレーヤの戦略に多様性をもたせることができるようになっており、結果として、戦闘における通常の攻撃に関する操作入力を行わせることの強い動機付けを与えることができるようになっている。
なお、上述したように制限時刻を変化させることに代えて、通常攻撃が行われる毎に、計測されているタイマ値を変化させ、すなわち、通常攻撃が行われる毎に、実測タイマ値を所定の秒数(例えば0.2秒)だけ短くすることによって、操作入力を行う時間が実質的に長くなるようにしてもよい。
(4)シンキングタイムの計測制御手法
また本実施の形態では、ゲームの進行状況に応じて、プレーヤオブジェクトが行動可能オブジェクトに決定された際における行動可能時間の計測開始を行うまでの期間としてシンキングタイムを計測するようになっている。
特に、本実施形態では、パーティクラスによってシンキングタイムの有無及びそのシンキングタイムの長さが異なっており、パーティクラス(実質的にはゲームの進行状況)に基づいて、シンキングタイムの有無及びその長さを判断しつつ、シンキングタイムの計測制御を行うようになっている。
具体的には、パーティクラスが中位のクラスの場合などロールプレイングゲームのシナリオにおける中期段階において、プレーヤオブジェクトが行動可能オブジェクトに決定された際に、プレーヤオブジェクトの行動を規定する操作入力が可能になった状態から予め定められた時間(例えば、1秒または3秒)をシンキングタイムとして計測するように制御している。
また、本実施の形態では、シンキングタイムの計測終了後には行動可能時間の計測を開始させるとともに、シンキングタイムの計測中であっても、プレーヤによって操作入力が開始された場合には、タイマによるシンキングタイムの計測を強制終了させ、行動可能時間の計測を開始させるようになっている。
なお、行動可能時間と同様に、シンキングタイムについても、その計測中の状態を戦闘中に表示する画像を生成するようにしてもよい。例えば、図10における行動可能時間を表示する各領域T1〜T3に行動可能時間の計測状態を示す画像に代えてシンキングタイム及びその残り時間を表示する画像を生成するようにしてもよい。
2.3 その他の戦闘時の処理(防御処理)
また本実施の形態では、行動可能オブジェクトが敵オブジェクトの場合であって、敵オブジェクトから攻撃を受けている場合には、プレーヤの操作入力に従って防御を実行させることができるようになっている。
具体的には、敵オブジェクトから攻撃を受けている際に、プレーヤが所定の操作入力を行うと、プレーヤオブジェクトが行動可能オブジェクトではなくても敵オブジェクトの攻撃を防御する行動を実行させることができるようになっている。
また、パーティクラスによっては、敵オブジェクトに攻撃され、プレーヤの操作入力に基づいてプレーヤオブジェクトの防御が行われている場合には、更にプレーヤによって所定の操作入力が行われると、敵オブジェクトの攻撃終了後に、所定のカウンター攻撃(反撃)を一定期間実行させることができるようになっている。
例えば、敵オブジェクトが攻撃されているときに、プレーヤが操作入力により的確にプレーヤオブジェクトに防御動作を実行させることができた場合には、パーティクラスによっては、反撃を行うための操作入力を促して、反撃のための操作入力を所定のタイミングにて受付可能に制御している。この場合に、プレーヤが操作入力を所定のタイミンにて行うと、敵オブジェクトの攻撃終了後に、プレーヤオブジェクトに所定の反撃行動を一定期間(例えば2秒間)実行させることができるようになっている。
このように、本実施形態の手法によれば、敵オブジェクトによって攻撃された場合であっても、的確なタイミングでの操作入力に基づいて、その攻撃を防御しつつ反撃の機会を得ることができるので、攻撃よるダメージを回避することができるだけでなく、敵オブジェクトにダメージを与えることもできるようになっている。
したがって、本実施形態の手法によれば、敵オブジェクトの攻撃時においてもプレーヤの操作入力の機会を設けることで、プレーヤオブジェクトが原則的には行動可能でない場合であっても緊張感を持続させることができるようになっている。
なお、反撃時には、オブジェクト空間内における移動、通常攻撃または必殺技などの特別攻撃の入力を受け付けて、受け付けられたプレーヤの操作入力に応じてオブジェクト空間内の移動・動作を実行させるようにプレーヤオブジェクトの行動が制御される。ただし、本実施形態では、特別攻撃については、所定のパーティクラスについてのみ、例えば、パーティクラスが上位の場合にのみ、受付可能になっている。
3.本実施形態の処理
次に、図11及び図12を用いて本実施形態の詳細な処理例について説明する。
なお、図11は、本実施形態における行動可能オブジェクトを決定する際のオブジェクト決定処理の詳細を示すフローチャートであり、図12は、行動可能オブジェクトにプレーヤオブジェクトが決定された場合における当該プレーヤオブジェクトの行動処理の詳細を示すフローチャートである。
はじめに、図11を用いて本実施形態における行動可能オブジェクトを決定する際の詳細な処理について説明する。
まず、プレーヤオブジェクトが敵オブジェクトと対峙(エンカウント)し、戦闘が開始されると(ステップS1でYes)、プレーヤオブジェクトと戦闘可能な味方オブジェクト及び敵オブジェクトの素早さパラメータを読み出して、その逆数から行動可能オブジェクト決定パラメータの初期値を求める(ステップS2)。
そして、行動可能オブジェクト決定パラメータのイニシャライズを行う。まず各キャラクタオブジェクトについて求められた行動可能オブジェクト決定パラメータの初期値を比較する(ステップS3)。次いで、各キャラクタオブジェクトの行動可能オブジェクト決定パラメータを比較した結果、最も敏捷特性の高いキャラクタオブジェクトの行動可能オブジェクト決定パラメータと他のキャラクタオブジェクトの行動可能オブジェクト決定パラメータとのパラメータ比率がしきい値を超えているか否かを判断する(ステップS4)。このとき、パラメータ比率が閾値を超えている行動可能オブジェクト決定パラメータがある場合には(ステップS4でYes)、その値をパラメータ比率がしきい値にクリッピングされるように補正し(ステップS5)、そうでない場合には(ステップS4でNo)、ステップS6に移行する。なお、パラメータ比率がしきい値を超えている行動可能オブジェクト決定パラメータがある場合には、パラメータ比率が、しきい値「2.3」になるように、行動可能オブジェクト決定パラメータの値を補正する。
次いで、イニシャライズが済んだ各キャラクタオブジェクトの行動可能オブジェクト決定パラメータのうち、最小の値を示す行動可能オブジェクト決定パラメータを有するキャラクタオブジェクトを行動可能オブジェクトに決定するとともに、2番目に小さな値を示す行動可能オブジェクト決定パラメータを有するキャラクタオブジェクトを行動予定オブジェクトに決定する(ステップS6)。
次いで、ステップS6に用いた行動可能オブジェクト決定パラメータを更新する処理を行う(ステップS7)。具体的には、行動可能オブジェクトに決定されていない行動不許可オブジェクトである各キャラクタオブジェクトの行動可能オブジェクト決定パラメータから、行動可能オブジェクトに決定されたキャラクタオブジェクトの行動可能オブジェクト決定パラメータを減算する。また、行動可能オブジェクトの行動可能オブジェクト決定パラメータを、ステップS2で求めた初期値にリセット(再設定)する。
最後に、行動可能オブジェクトの行動が終了したか否かを判断し(ステップS8)、行動可能オブジェクトの行動が終了したと判断すると(ステップS8でYes)、敵オブジェクトとの戦闘が終了したか否かを判断する(ステップS9)。具体的には、敵オブジェクトまたはプレーヤオブジェクトも含めた味方オブジェクトの全滅したか否か及び戦闘の回避が実行されたか否かを判定する。
このとき、敵オブジェクトとの戦闘が終了していないと判断した場合には(ステップS9でNo)、ステップS6の処理に移行し、敵オブジェクトとの戦闘が終了したと判断した場合には(ステップS9でYes)、戦闘に関する制御処理を終了させる。
次に、図12を用いて行動可能オブジェクトにプレーヤオブジェクトが決定された場合における当該プレーヤオブジェクトの行動処理の詳細について説明する。
まず、行動可能オブジェクトしてプレーヤオブジェクト(以下、単に「PO」ともいう。)が決定されると(ステップS11でYes)、現在のパーティクラスなどゲームの進行状況に基づいてシンキングタイムの時間計測の有無を判断する(ステップS12)。
このとき、シンキングタイムの時間計測を行わないと判断された場合には(ステップS12でNo)、ステップS13の処理に移行し、シンキングタイムの時間計測を行うと判断された場合には(ステップS12でYes)、ステップS20の処理に移行する。
次いで、ステップS12の処理において、シンキングタイムの時間計測を行わないと判断された場合にはゲームの進行状況に基づいて、プレーヤの操作入力を基準に行動可能時間の時間計測を行うか否かを判断する(ステップS13)。
このとき、プレーヤの操作入力に基づいて行動可能時間の計測を行うと判断された場合には(ステップS13でYes)、ステップS14の処理に移行し、プレーヤの操作入力に基づいて行動可能時間の計測を行わないと判断された場合には(ステップS13でNo)、ステップS22の処理に移行する。
次いで、ステップS13の処理において、プレーヤの操作入力を基準に行動可能時間の時間計測を行うと判断した場合には、ゲームの進行状況に基づいて当該行動可能時間における制限時刻を設定し、プレーヤの操作入力の受付を開始する(ステップS14)。
次いで、プレーヤの操作入力を検出すると(ステップS15)、行動可能時間の計測を行う(ステップS16)。なお、プレーヤの操作入力を検出してから制限時刻まで、検出された操作入力に基づいてプレーヤオブジェクトの行動を制御する。
次いで、時間計測している行動可能時間において制限時刻を経過したか否かを判断し(ステップS17)、未だ制限時刻を経過していないと判断した場合には(ステップS17でNo)、ステップS18の処理に移行し、制限時刻を経過したと判断した場合には(ステップS17でYes)、ステップS24の処理に移行する。
次いで、ステップS17の処理において、時間計測している行動可能時間において、未だ制限時刻を経過していないと判断した場合には、プレーヤオブジェクトの行動が停止しているか否かを判断する(ステップS18)。
このとき、プレーヤオブジェクトの行動が停止していないと判断した場合には(ステップS18でNo)、ステップS17の処理に移行し、プレーヤオブジェクトの行動が停止していると判断した場合には(ステップS18でYes)、行動可能時間の計測を中断し(ステップS19)、ステップS15の処理に移行する。
一方、ステップS12の処理において、シンキングタイムの時間計測を行うと判断された場合には、シンキングタイムにおける計測の終了時刻を設定し、その時間計測を開始する(ステップS20)。
次いで、時間計測しているシンキングタイムにおいて終了時刻が検出されたか否か又はプレーヤの操作入力が検出されたか否かの所定の検出の有無を判断し(ステップS21)、シンキングタイムの終了時刻の経過を検出したと判断され、又は、当該シンキングタイム中にプレーヤによって操作入力が検出されたと判断された場合には(ステップS21でYes)、ステップS22の処理に移行する。
他方、ステップS13の処理において、プレーヤの操作入力に基づいて行動可能時間の計測を行わないと判断された場合には、又は、ステップS22の処理において、シンキングタイムの終了時刻の経過を検出したと判断され、若しくは、当該シンキングタイムの計測中にプレーヤによって操作入力が検出されたと判断された場合には、ゲームの進行状況に基づいて当該行動可能時間における制限時刻を設定するとともに、操作入力の受付を開始し、行動可能時間の計測を行う(ステップS22)。
なお、行動可能時間の計測が開始されると、制限時刻になるまで、プレーヤの操作入力に基づいてプレーヤオブジェクトの行動制御を行う。
次いで、時間計測している行動可能時間において制限時刻を経過したか否かを判断し(ステップS23)、制限時刻を経過したと判断した場合には(ステップS23でYes)、ステップS24の処理に移行して、プレーヤの操作入力の受付を終了させる(ステップS24)。
なお、ステップS14及びステップS22におけるプレーヤの操作入力の受付が開始されてから、ステップS24におけるプレーヤの操作入力が終了するまで、操作入力に従って、自由にプレーヤオブジェクトの行動を制御させる。
4.ハードウェア構成
図13に本実施形態を実現できるハードウェア構成の例を示す。メインプロセッサ900は、DVD982(情報記憶媒体。CDでもよい。)に格納されたプログラム、通信インターフェース990を介してダウンロードされたプログラム、或いはROM950に格納されたプログラムなどに基づき動作し、ゲーム処理、画像処理、音処理などを実行する。コプロセッサ902は、メインプロセッサ900の処理を補助するものであり、マトリクス演算(ベクトル演算)を高速に実行する。例えばオブジェクトを移動させたり動作(モーション)させる物理シミュレーションに、マトリクス演算処理が必要な場合には、メインプロセッサ900上で動作するプログラムが、その処理をコプロセッサ902に指示(依頼)する。
ジオメトリプロセッサ904は、メインプロセッサ900上で動作するプログラムからの指示に基づいて、座標変換、透視変換、光源計算、曲面生成などのジオメトリ処理を行うものであり、マトリクス演算を高速に実行する。データ伸張プロセッサ906は、圧縮された画像データや音データのデコード処理を行ったり、メインプロセッサ900のデコード処理をアクセレートする。これにより、オープニング画面やゲーム画面において、MPEG方式等で圧縮された動画像を表示できる。
描画プロセッサ910は、ポリゴンや曲面などのプリミティブ面で構成されるオブジェクトの描画(レンダリング)処理を実行する。オブジェクトの描画の際には、メインプロセッサ900は、DMAコントローラ970を利用して、描画データを描画プロセッサ910に渡すと共に、必要であればテクスチャ記憶部924にテクスチャを転送する。すると描画プロセッサ910は、描画データやテクスチャに基づいて、Zバッファなどを利用した隠面消去を行いながら、オブジェクトをフレームバッファ922に描画する。また描画プロセッサ910は、αブレンディング(半透明処理)、デプスキューイング、ミップマッピング、フォグ処理、バイリニア・フィルタリング、トライリニア・フィルタリング、アンチエイリアシング、シェーディング処理なども行う。頂点シェーダやピクセルシェーダなどのプログラマブルシェーダが実装されている場合には、シェーダプログラムに従って、頂点データの作成・変更(更新)やピクセル(あるいはフラグメント)の描画色の決定を行う。1フレーム分の画像がフレームバッファ922に書き込まれるとその画像はディスプレイ912に表示される。
サウンドプロセッサ930は、多チャンネルのADPCM音源などを内蔵し、BGM、効果音、音声などのゲーム音を生成し、スピーカ932を介して出力する。ゲームコントローラ942やメモリカード944からのデータはシリアルインターフェース940を介して入力される。
ROM950にはシステムプログラムなどが格納される。業務用ゲームシステムの場合にはROM950が情報記憶媒体として機能し、ROM950に各種プログラムが格納される。なおROM950の代わりにハードディスクを利用してもよい。RAM960は各種プロセッサの作業領域となる。DMAコントローラ970は、プロセッサ、メモリ間でのDMA転送を制御する。DVDドライブ980(CDドライブでもよい。)は、プログラム、画像データ、或いは音データなどが格納されるDVD982(CDでもよい。)にアクセスする。通信インターフェース990はネットワーク(通信回線、高速シリアルバス)を介して外部との間でデータ転送を行う。
なお本実施形態の各部(各手段)の処理は、その全てをハードウェアのみにより実現してもよいし、情報記憶媒体に格納されるプログラムや通信インターフェースを介して配信されるプログラムにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。
そして本実施形態の各部の処理をハードウェアとプログラムの両方により実現する場合には、情報記憶媒体には、ハードウェア(コンピュータ)を本実施形態の各部として機能させるためのプログラムが格納される。より具体的には、上記プログラムが、ハードウェアである各プロセッサ902、904、906、910、930に処理を指示すると共に、必要であればデータを渡す。そして、各プロセッサ902、904、906、910、930は、その指示と渡されたデータとに基づいて本発明の各部の処理を実現する。
なお、本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。例えば、明細書又は図面中の記載において括弧書などにより広義や同義な用語として引用された用語は、明細書又は図面中の他の記載においても広義や同義な用語に置き換えることができる。
また、上記の実施形態で説明した各種制御手法は、本実施形態で説明したものに限定されず、これらと均等な手法も本発明の範囲に含まれる。
また、本発明は、種々のゲームに適用できる。また、本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレーヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード、携帯端末、携帯電話等の種々の画像生成システムに適用できる。