説明

ゲームシステム、プログラム及び情報記憶媒体

【課題】操作に不慣れな初心者がグループにいる場合であってもグループ対抗でのレースゲームを十分に楽しむことができるように操作インターフェース環境を改善したゲームシステム、プログラム及び情報記憶媒体を提供する。
【解決手段】複数の移動体がグループを形成してレースゲームを行うためのゲームシステムであって、移動体毎に設定される走行性能に基づいて移動体をゲーム空間内で移動させる制御を行う移動体制御部112と、各移動体の位置に基づいてゲーム空間に対してスリップストリーム領域を設定するスリップストリーム領域設定部113と、所与の移動体の位置に基づいて設定されたスリップストリーム領域内に他の移動体が存在するか否かを判定する位置関係判定部114と、所与の移動体が他の移動体と同一グループであるか否かに応じて他の移動体の走行性能を変化させる度合いを変化させる走行性能変更部115から構成される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ゲームシステム、プログラム及び情報記憶媒体に関する。
【背景技術】
【0002】
従来より、仮想的な3次元空間であるゲーム空間(オブジェクト空間)において所与の視点(仮想カメラ)から見える画像を生成するゲームシステム(画像生成システム)が知られており、いわゆる仮想現実を体験できるものとして人気が高い。レースゲームを楽しむことができるゲームシステムを例に取れば、プレーヤは、操作部(ゲームコントローラ等)を用いて移動体(車、船、飛行機等)に関する操作(ステアリング操作、シフト操作、アクセル操作、ブレーキ操作等)を行い、他のプレーヤ(コンピュータプレーヤも含まれる)の移動体と順位やタイムを競争することでレースゲームを楽しむ。
【0003】
ところで、上述したレースゲームを行わせるゲームシステムにおいて、移動体同士が前後関係で接近した場合に、後方の移動体の速度や加速度が上昇するスリップストリーム現象を考慮して、移動体の移動制御を行う手法が提案されている(特許文献1、2参照)。
【特許文献1】特許3403505号公報
【特許文献2】特開2000−140436号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかしながら、上述した従来のゲームシステムでは、操作技術の未熟な初心者の操作する移動体が競争相手の移動体に接近する事自体が困難であり、スリップストリーム現象を利用して競争相手とのデッドヒートを楽しむことが難しいという難点があった。また複数のプレーヤがグループを形成して、グループ同士が対抗してレースゲームを行うような場合には、同一グループ内でのプレーヤ間の技量の差がレースゲームの結果を大きく左右してしまい、特に操作技術の未熟な初心者を抱えるグループでは、初心者が同一グループの他のプレーヤから引き離されてしまって、他のグループとのデッドヒートを十分に楽しむことができないという難点があった。
【0005】
本発明は上記事情に鑑みてなされたものであり、その目的は、操作に不慣れな初心者がグループにいる場合であってもグループ対抗でのレースゲームを十分に楽しむことができるように操作インターフェース環境を改善したゲームシステム、プログラム及び情報記憶媒体を提供することにある。
【課題を解決するための手段】
【0006】
(1)本発明は、複数の移動体がグループを形成してレースゲームを行うためのゲームシステムであって、前記移動体毎に設定される移動性能に基づいて前記移動体をゲーム空間内で移動させる制御を行う移動体制御部と、各移動体のゲーム空間における位置関係を判定する位置関係判定部と、同一グループに属する各移動体の位置関係が所定の位置関係であることに基づいて移動体の移動性能を変化させる移動性能変更部とを含むゲームシステムに関するものである。また本発明は、上記各部としてコンピュータを機能させるプログラム及びそのようなプログラムを記憶するコンピュータに読み取り可能な情報記憶媒体に関するものである。
【0007】
「移動性能」とは、移動体の加速度、移動速度、最高速度等を意味し、「移動性能を変化させる」というのは、加速度、移動速度、最高速度等を決定する演算係数を変更することの他に、変化前の加速度、移動速度、最高速度等に対して任意の値を加算あるいは減算することなども含まれる。
【0008】
本発明によれば、同一グループに属する各移動体の位置関係が所定の位置関係であることに基づいて移動体の移動性能を変化させるようにしたので、操作に不慣れな初心者と操作に熟練した上級者とがグループを形成する場合であっても、上級者が初心者の移動体の位置に合わせて自らの移動体を所定の位置関係を構築するように操作することで、初心者とともに移動体の移動性能を変化させながら、レースゲームを有利に進めることができるようになる。このため本発明によれば、操作に不慣れな初心者がいる場合であってもプレーヤ同士が積極的に協力して互いの連携を高めながらグループ対抗でのレースゲームを十分に楽しむことができる操作インターフェース環境を提供することができる。
【0009】
(2)また本発明のゲームシステムでは、前記各移動体の位置に基づいてゲーム空間に対して所定の領域を設定する領域設定部を含み、前記位置関係判定部が、所与の移動体の位置に基づいて設定された前記所定の領域内に他の移動体が存在するか否かを前記位置関係として判定し、前記移動性能変更部が、前記他の移動体の前記所定の領域内での位置に応じて前記他の移動体の移動性能を変化させる度合いを設定して、設定された度合いに応じて前記他の移動体の移動性能を変化させるとともに、前記所与の移動体が前記他の移動体と同一グループであるか否かに応じて前記他の移動体の移動性能を変化させる度合いを変化させるようにしてもよい。また本発明のプログラム及び情報記憶媒体では、上記領域設定部、位置関係判定部、移動性能変更部としてコンピュータを機能させるようにしてもよい。
【0010】
このようにすれば、いずれの移動体であっても、任意の移動体の後方に設定される所定の領域内に移動体を滞在させることで移動性能を変化させることができるが、滞在していた所定の領域が同一グループに属する移動体の後方に設定された領域であるか否かによって移動性能を変化させる度合いが異なるため、例えば、異なるグループの移動体の後方に設定される所定の領域内で移動体の移動性能が変化する場合よりも、同一グループの移動体の後方に設定される所定の領域内で移動体の移動性能が変化する場合の方が、移動体の移動性能を変化させる度合いを有利にすれば、同一グループに属する移動体同士が互いの後方に設定される所定の領域に交互に移動しながら、移動性能を互いに高めあっていくという連携プレイを積極的に活用させることができるという今までのレースゲームにはない操作インターフェース環境を提供することができる。
【0011】
(3)また本発明のゲームシステムでは、前記各移動体の位置に基づいてゲーム空間に対して所定の領域を設定する領域設定部を含み、前記位置関係判定部が、所与の移動体の位置に基づいて設定された前記所定の領域内に他の移動体が存在するか否かを判定するとともに、前記他の移動体が前記所定の領域内から前記所定の領域外に移動したか否かを判定し、前記移動性能変更部が、前記所定の領域内に滞在している前記他の移動体の移動性能を変化させるとともに、前記所定の領域外に前記他の移動体が移動した後においても前記他の移動体が前記所定の領域内に滞在した期間に応じて設定される所与の期間において、前記他の移動体の移動性能が変化した状態を維持する処理を行い、前記所定の領域内に存在する他の移動体が前記所与の移動体と同一グループであるか否かに応じて、前記他の移動体の移動性能が変化した状態を維持する期間を変化させるようにしてもよい。また本発明のプログラム及び情報記憶媒体では、上記領域設定部、位置関係判定部、移動性能変更部としてコンピュータを機能させるようにしてもよい。
【0012】
「移動性能が変化した状態を維持する」というのは、移動性能が同一のまま所与の期間維持される場合の他に、所与の期間において移動性能を変化させながら本来の移動性能に復帰させる場合も含まれる。すなわち「移動性能が変化した状態を維持する」というのは、移動体の移動性能が本来の移動性能とは異なる状態が維持されることを意味する。
【0013】
このようにすれば、いずれの移動体であっても、任意の移動体の後方に設定される所定の領域内に移動体を滞在させることで移動性能を変化させれば、移動体が所定の領域の外に移動した場合でも所与の期間において移動性能が変化した状態が維持されるが、滞在していた領域が同一グループに属する移動体の後方に設定された所定の領域であるか否かによって移動性能を変化させた状態が維持される期間が異なるため、例えば、異なるグループの移動体の後方に設定される所定の領域内に移動体を滞在させた場合よりも、同一グループの移動体の後方に設定される所定の領域内に移動体を滞在させた場合の方が、移動性能を変化させた状態が維持される期間を有利にすれば、同一グループに属する移動体同士が互いの後方に設定される所定の領域に交互に移動しながら、移動性能を互いに高めあっていくという連携プレイを積極的に活用させることができるという今までのレースゲームにはない操作インターフェース環境を提供することができる。
【0014】
(4)また本発明のゲームシステム、プログラム及び情報記憶媒体では、前記領域設定部が、所定イベントの発生に基づいて、前記所定の領域の大きさを変化させる処理および前記所定の領域を無効化する処理の少なくとも一方を実行するようにしてもよい。
【0015】
「所定イベントの発生」には、プレーヤが操作部に対して特定の操作を行った場合の他に、移動体がゲーム空間上の特定の領域を通過した場合や移動体に対して特定のアイテムが装備されている場合などが含まれる。
【0016】
また「所定の領域の大きさを変化させる」とは、所定の領域の面積を拡大すること、及び所定の領域の面積を縮小することの双方を含む。
【0017】
また「所定の領域を無効化する」とは、所定の領域自体を設定しない場合の他に、所定の領域を形式的には設定しておくが、当該領域内に移動体が存在していても、その移動体の移動性能を変化させる演算を行わない場合も含む。
【0018】
このようにすれば、各移動体の後方に設定される所定の領域を利用したレースゲームの展開に起伏を与えることができるようになる。
【発明を実施するための最良の形態】
【0019】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【0020】
図1に本実施形態のゲームシステム(画像生成システム)の機能ブロック図の例を示す。なお本実施形態のゲームシステムは図1の構成要素(各部)の一部を省略した構成としてもよい。
【0021】
操作部160は、プレーヤが移動体の操作データを入力するためのものであり、その機能は、レバー、ボタン、ステアリング、マイク、タッチパネル型ディスプレイ、或いは筺体などにより実現できる。記憶部170は、処理部100や通信部196などのワーク領域となるもので、その機能はRAM(VRAM)などにより実現できる。
【0022】
情報記憶媒体180(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(CD、DVD)、光磁気ディスク(MO)、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ(ROM)などにより実現できる。処理部100は、情報記憶媒体180に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体180には、本実施形態の各部としてコンピュータを機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)が記憶される。
【0023】
表示部190は、本実施形態により生成された画像を出力するものであり、その機能は、CRT、LCD、タッチパネル型ディスプレイ、或いはHMD(ヘッドマウントディスプレイ)などにより実現できる。音出力部192は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
【0024】
携帯型情報記憶装置194は、プレーヤの個人データやゲームのセーブデータなどが記憶されるものであり、この携帯型情報記憶装置194としては、メモリカードや携帯型ゲーム装置などがある。通信部196は外部(例えばホスト装置や他の画像生成システム)との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ASICなどのハードウェアや、プログラムなどにより実現できる。
【0025】
なお本実施形態の各部としてコンピュータを機能させるためのプログラム(データ)は、ホスト装置(サーバ)が有する情報記憶媒体からネットワーク及び通信部196を介して情報記憶媒体180(記憶部170)に配信してもよい。このようなホスト装置(サーバ)の情報記憶媒体の使用も本発明の範囲内に含めることができる。
【0026】
処理部100(プロセッサ)は、操作部160からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの処理を行う。処理部100は記憶部170内の主記憶部172をワーク領域として各種処理を行い、処理部100の機能は各種プロセッサ(CPU、DSP等)、ASIC(ゲートアレイ等)などのハードウェアや、プログラムにより実現できる。
【0027】
処理部100は、ゲーム処理部110、描画部120、音生成部130を含む。なおこれらの一部を省略する構成としてもよい。
【0028】
ゲーム処理部110は、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、移動体やコースなどのオブジェクト(表示物)を配置する処理、オブジェクトを表示する処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などを行う。特に本実施形態では、レースゲームの進行を制御する処理として、移動体がオブジェクト空間(ゲーム空間)に設定されたコースを周回するタイムを計測しており、グループの中で最後に周回を終えた移動体のタイムをグループのタイムとして、グループ同士のタイムを比較判定してグループの順位を決定する処理を行っている。もちろんグループに属する全ての移動体の周回タイムを合計したタイムをグループのタイムとして処理するようにしてもよいし、グループの中で最も早く周回を終えた移動体のタイムをグループのタイムとして処理するようにしてもよい。
【0029】
そして本実施形態のゲームシステムでは、ゲーム処理部110が、表示制御部111、移動体制御部112、スリップストリーム領域設定部113(領域設定部の一例)、位置関係判定部114、走行性能変更部115(移動性能変更部の一例)、通信制御部116を含む。
【0030】
表示制御部111は、表示部190に表示される画像(オブジェクト画像)の表示制御を行う。具体的には、表示すべきオブジェクト(車(移動体)、コース、建物、樹木、柱、壁、マップ)を発生させたり、オブジェクトの表示や表示位置を指示したり、オブジェクトを消滅させたりするなどの表示制御を行う。即ち発生したオブジェクトをオブジェクトリストに登録したり、オブジェクトリストを描画部120等に転送したり、消滅したオブジェクトをオブジェクトリストから削除したりするなどの表示制御を行う。
【0031】
また表示制御部111は、プレーヤの入力情報等により、プレーヤ移動体(プレーヤの操作対象となる移動体)やオブジェクトの移動や動作が発生した場合に、発生した移動や動作の様子を示す画像を表示部190に表示するための制御を行う。
【0032】
特に本実施形態のゲームシステムでは、ゲーム空間を3次元のオブジェクト空間によって設定するようになっており、表示制御部111は、オブジェクト空間設定処理、仮想カメラ制御処理なども行う。
【0033】
オブジェクト空間設定処理では、車(移動体)、飛行機(移動体)、コース、建物、樹木、柱、壁、マップなどの表示物を表す各種オブジェクト(ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブで構成されるオブジェクト)をオブジェクト空間に配置設定する処理を行う。即ちワールド座標系でのオブジェクトの位置や回転角度(向き、方向と同義)を決定し、その位置(X、Y、Z)にその回転角度(X、Y、Z軸回りでの回転角度)でオブジェクトを配置する。
【0034】
仮想カメラ制御処理では、オブジェクト空間内の所与(任意)の視点から見える画像を生成するための仮想カメラ(視点)の制御処理を行う。具体的には、仮想カメラの位置(X、Y、Z)又は回転角度(X、Y、Z軸回りでの回転角度)を制御する処理(視点位置、視線方向あるいは画角を制御する処理)を行う。
【0035】
例えば仮想カメラにより移動体(例えば、車、飛行機等)を後方から撮影する場合には、移動体の位置又は回転の変化に仮想カメラが追従するように、仮想カメラの位置又は回転角度(仮想カメラの向き)を制御する。この場合には、後述する移動体制御部112で求められた移動体の位置、回転角度又は速度などの情報に基づいて、仮想カメラを制御できる。或いは、仮想カメラを、予め決められた回転角度で回転させたり、予め決められた移動経路で移動させる制御を行ってもよい。この場合には、仮想カメラの位置(移動経路)又は回転角度を特定するための仮想カメラデータに基づいて仮想カメラを制御する。なお、仮想カメラ(視点)が複数存在する場合には、それぞれの仮想カメラについて上記の制御処理が行われる。
【0036】
移動体制御部112は、移動体(例えば、車、飛行機等)の移動・動作演算(移動・動作シミュレーション)を行う。すなわち操作部160によりプレーヤが入力した操作データや、プログラム(移動・動作アルゴリズム)や、各種データ(モーションデータ)などに基づいて、移動体をオブジェクト空間内で移動させたり、移動体を動作(モーション、アニメーション)させたりする処理を行う。具体的には、移動体の移動情報(位置、回転角度、速度、或いは加速度)や動作情報(移動体を構成する各パーツの位置、或いは回転角度)を、1フレーム(1/60秒)毎に順次求めるシミュレーション処理を行う。なおフレームは、移動体の移動・動作処理(シミュレーション処理)や描画処理を行う時間の単位である。
【0037】
特に本実施形態では、移動体制御部112が、移動体毎に設定される走行性能(移動性能の一例)に基づいてオブジェクト空間(ゲーム空間)において移動体を移動させる制御を行う。具体的には、操作部160からの操作データに基づいて移動体を移動させる制御を開始し、移動体毎に設定される走行性能である加速係数に基づいてフレーム単位での移動量(移動体の移動速度)を算出するとともにフレーム単位での移動体の回転量(移動体の回転速度)を算出して移動体の座標変換マトリクスMを求める。なお各移動体には、走行性能として移動速度の上限値である最高速度も設定されており、移動体のフレーム単位での移動量は、移動体毎の最高速度によってリミットされる。そして第K−1のフレームでの移動体の頂点座標PK−1に座標変換マトリクスMを乗算して第Kのフレームでの移動体の頂点座標P(=PK−1×M)を求めている。
【0038】
スリップストリーム領域設定部113は、各移動体の位置に基づいてオブジェクト空間(ゲーム空間)に対してスリップストリーム領域(所定の領域の一例)を設定する処理を行う。
【0039】
具体的には、オブジェクト空間に設定されている移動体の移動経路を定めるコース(例えば、ポリゴンにより構成される)において移動体の後方の領域に略矩形のスリップストリーム領域を発生させている。本実施の形態では、コースに対して移動体の進行方向に沿った座標軸およびこれに直交する座標軸を有するローカル座標系を設定しており、このローカル座標系を用いて移動体の後方にスリップストリーム領域を設定している。スリップストリーム領域の形状は、コース形状に影響されずに一定の形状を保たれるように設定してもよいし、コース形状に合わせて変形するように設定してもよい。
【0040】
なおスリップストリーム領域設定部113が、所定イベントの発生に基づいて、スリップストリーム領域の大きさを変化させる処理やスリップストリーム領域を無効化する処理を実行するようにしてもよい。
【0041】
例えば、移動体がアイテムを装着することによって設定されるアイテムフラグを用意しておき、アイテムフラグがオンの場合には、アイテムフラグの種類に応じて、移動体の後方に設定されるスリップストリーム領域を拡大したり縮小したりすることができる。また別のアイテムフラグがオンの場合には、移動体の後方にスリップストリーム領域が設定されないようにしたり、移動体の後方に設定されたスリップストリーム領域内に移動体が滞在していても走行性能が変更されないようにしたりすることによって、スリップストリーム領域を無効化してもよい。なおスリップストリーム領域を無効化する場合には、アイテムを装着した移動体と異なるグループの移動体に限ってスリップストリーム領域が無効化され、同一グループの移動体に対しては、原則通りにスリップストリーム領域が有効となるようにしてもよい。また例えば、移動体がコース上の所定の領域を通過した場合に、スリップストリーム領域を拡大あるいは縮小したり、スリップストリーム領域を無効化したりしてもよい。
【0042】
また表示制御部111によって移動体毎にスリップストリーム領域を識別表示する処理を行うようにしてもよい。この場合に、主記憶部172に保存されているグループ設定情報に基づいて、プレーヤの移動体と同一グループに属する移動体のスリップストリーム領域と、プレーヤの移動体と異なるグループに属する移動体のスリップストリーム領域とを色を変えて表示するなどしてスリップストリーム領域の表示態様によって所属グループの識別ができるようにしてもよい。
【0043】
位置関係判定部114は、各移動体のオブジェクト空間(ゲーム空間)における位置関係を判定する処理を行う。例えば、オブジェクト空間に設定されたコース上を移動している移動体の位置に基づいて設定されたスリップストリーム領域内に別の移動体(他の移動体)が存在するか否かを位置関係として判定するとともに、スリップストリーム領域内に滞在していた移動体が、スリップストリーム領域外に移動したか否かを判定する。この場合には、コース上においてスリップストリーム領域を設定するためのローカル座標系における各移動体の代表点の位置に基づいて、移動体がスリップストリーム領域に滞在していること、および移動体がスリップストリーム領域外に移動したことを判定することができる。
【0044】
走行性能変更部115は、同一グループに属する各移動体の位置関係が所定の位置関係であることに基づいて移動体の走行性能を変化させる処理を行う。移動体の走行性能を変化させる処理としては、例えば、移動体制御部112で求められる移動体のフレーム単位での移動量に効果倍率係数(>1)を乗算することで、移動体の速度を上昇させる処理を行う。
【0045】
より具体的には、位置判定部114での判定結果に基づいて、移動体のスリップストリーム領域内での位置に応じた効果倍率係数(走行性能を変化させる度合い)を設定して、設定された効果倍率係数を移動体のフレーム単位の移動量に乗算して移動体の速度(ゲーム空間内での移動量)を上昇させる。
【0046】
また本実施形態のゲームシステムでは、オブジェクト空間(ゲーム空間)内のコース上を走行移動する複数の移動体が2体以上の移動体を単位としてグループ分けされており、走行性能変更部115が、移動体が滞在しているスリップストリーム領域が同一グループの移動体に対して設定されたスリップストリーム領域であるか否かに応じて、移動体の速度を上昇させる効果倍率係数を変化させる処理も行っている。なお各移動体が属するグループの設定情報は、ゲーム開始に先立ってプレーヤの操作部160からの選択操作等に基づいて主記憶部172に保存されている。例えば、プレーヤの操作する移動体が、同一グループの移動体の後方に設定されたスリップストリーム領域内に滞在している場合には、異なるグループの移動体の後方に設定されたスリップストリーム領域内に滞在している場合よりも効果倍率係数が高くなるように設定することができる。
【0047】
また本実施形態のゲームシステムでは、走行性能変更部115が、スリップストリーム領域内に移動体が滞在した期間を監視しており、移動体がスリップストリーム領域内からスリップストリーム領域外に移動した後においても、その移動体がスリップストリーム領域内に滞在した期間に応じて設定される所与の期間において、移動体の走行性能が変化した状態を維持する処理を行っている。例えば、移動体がスリップストリーム領域内に滞在した期間が長いほど、走行性能が変化した状態が長期間維持されるようにすることができる。
【0048】
また走行性能変更部115は、移動体が滞在していたスリップストリーム領域が同一グループに属する移動体の後方に設定されたスリップストリーム領域であるか否かに応じて、移動体の走行性能が変化した状態を維持する期間を変化させる処理を行っている。例えば、プレーヤの操作する移動体が、同一グループの移動体の後方に設定されたスリップストリーム領域内に滞在していた場合には、異なるグループの移動体の後方に設定されたスリップストリーム領域内に滞在していた場合よりも走行性能が変化した状態が長期間維持されるように制御することができる。
【0049】
なお移動体がスリップストリーム領域内の特定の領域に一定期間滞在した場合には、その移動体の走行性能が変化した状態を維持する処理を開始するタイミングを変更するようにしてもよい。例えば、移動体の速度を上昇させる効果倍率係数が高めに設定される領域では、移動体の走行性能が変化した状態を維持する処理を早期に開始してレースゲームのバランスを好適に調整することができる。
【0050】
通信制御部116は、他のゲームシステムに送信するパケットを生成する処理、パケット送信先のゲームシステムのネットワークアドレスを指定する処理、受信したパケットを記憶部170に保存する処理、受信したパケットを解析する処理、その他のパケットの送受信に関する通信部196の制御処理等を行う。特に本実施形態では、レースゲームをネットワーク(例えば、インターネット)を利用して実行するために必要なデータパケット及びコマンドパケットを生成する制御や、通信部196を介してデータパケット及びコマンドパケットを送受信させる制御を行う。
【0051】
描画部120は、処理部100で行われる種々の処理(ゲーム処理)の結果に基づいて描画処理を行い、これにより画像を生成し、表示部190に出力する。いわゆる3次元ゲーム画像を生成する場合には、まず表示物(オブジェクト、モデル)を定義する各頂点の頂点データ(頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等)を含む表示物データ(オブジェクトデータ、モデルデータ)が入力され、入力された表示物データに含まれる頂点データに基づいて、頂点処理が行われる。なお頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理(テッセレーション、曲面分割、ポリゴン分割)を行うようにしてもよい。頂点処理では、頂点の移動処理や、座標変換(ワールド座標変換、カメラ座標変換)、クリッピング処理、透視変換、あるいは光源処理等のジオメトリ処理が行われ、その処理結果に基づいて、表示物を構成する頂点群について与えられた頂点データを変更(更新、調整)する。そして、頂点処理後の頂点データに基づいてラスタライズ(走査変換)が行われ、ポリゴン(プリミティブ)の面とピクセルとが対応づけられる。そしてラスタライズに続いて、画像を構成するピクセル(表示画面を構成するフラグメント)を描画するピクセル処理(フラグメント処理)が行われる。ピクセル処理では、テクスチャの読出し(テクスチャマッピング)、色データの設定/変更、半透明合成、アンチエイリアス等の各種処理を行って、画像を構成するピクセルの最終的な描画色を決定し、透視変換されたオブジェクトの描画色を描画バッファ174(ピクセル単位で画像情報を記憶できるバッファ。VRAM、レンダリングターゲット)に出力(描画)する。すなわち、ピクセル処理では、画像情報(色、法線、輝度、α値等)をピクセル単位で設定あるいは変更するパーピクセル処理を行う。これにより、オブジェクト空間内に設定された仮想カメラ(所与の視点)から見える画像が生成される。なお、仮想カメラ(視点)が複数存在する場合には、それぞれの仮想カメラから見える画像を分割画像として1画面に表示できるように画像を生成することができる。
【0052】
なお描画部120が行う頂点処理やピクセル処理は、シェーディング言語によって記述されたシェーダプログラムによって、ポリゴン(プリミティブ)の描画処理をプログラム可能にするハードウェア、いわゆるプログラマブルシェーダ(頂点シェーダやピクセルシェーダ)により実現されてもよい。プログラマブルシェーダでは、頂点単位の処理やピクセル単位の処理がプログラム可能になることで描画処理内容の自由度が高く、ハードウェアによる固定的な描画処理に比べて表現力を大幅に向上させることができる。
【0053】
そして描画部120は、表示物を描画する際に、ジオメトリ処理、テクスチャマッピング、隠面消去処理、αブレンディング等を行う。
【0054】
ジオメトリ処理では、表示物に関して、座標変換、クリッピング処理、透視投影変換、或いは光源計算等の処理が行われる。そして、ジオメトリ処理後(透視投影変換後)の表示物データ(表示物の頂点の位置座標、テクスチャ座標、色データ(輝度データ)、法線ベクトル、或いはα値等)は、主記憶部172に保存される。
【0055】
テクスチャマッピングは、記憶部170に記憶されるテクスチャ(テクセル値)を表示物にマッピングするための処理である。具体的には、表示物の頂点に設定(付与)されるテクスチャ座標等を用いて記憶部170からテクスチャ(色(RGB)、α値などの表面プロパティ)を読み出す。そして、2次元の画像であるテクスチャを表示物にマッピングする。この場合に、ピクセルとテクセルとを対応づける処理や、テクセルの補間としてバイリニア補間などを行う。
【0056】
隠面消去処理としては、描画ピクセルのZ値(奥行き情報)が格納されるZバッファ(奥行きバッファ)を用いたZバッファ法(奥行き比較法、Zテスト)による隠面消去処理を行うことができる。すなわちオブジェクトのプリミティブに対応する描画ピクセルを描画する際に、Zバッファに格納されるZ値を参照する。そして参照されたZバッファのZ値と、プリミティブの描画ピクセルでのZ値とを比較し、描画ピクセルでのZ値が、仮想カメラから見て手前側となるZ値(例えば小さなZ値)である場合には、その描画ピクセルの描画処理を行うとともにZバッファのZ値を新たなZ値に更新する。
【0057】
αブレンディング(α合成)は、α値(A値)に基づく半透明合成処理(通常αブレンディング、加算αブレンディング又は減算αブレンディング等)のことである。例えば、通常αブレンディングでは、α値を合成の強さとして線形補間を行うことにより2つの色を合成した色を求める処理を行う。
【0058】
なお、α値は、各ピクセル(テクセル、ドット)に関連づけて記憶できる情報であり、例えばRGBの各色成分の輝度を表す色情報以外のプラスアルファの情報である。α値は、マスク情報、半透明度(透明度、不透明度と等価)、バンプ情報などとして使用できる。
【0059】
音生成部130は、処理部100で行われる種々の処理の結果に基づいて音処理を行い、BGM、効果音、又は音声などのゲーム音を生成し、音出力部192に出力する。
【0060】
なお、本実施形態の画像生成システムは、1人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、1つの端末を用いて生成してもよいし、ネットワーク(伝送ライン、通信回線)などで接続された複数の端末(ゲーム機、携帯電話)を用いて分散処理により生成してもよい。
【0061】
2.本実施形態の手法
本実施の形態では、移動体の後方に設定されるスリップストリーム領域を発生させて、スリップストリーム領域内に滞在する移動体の走行性能を変化させる場合に、移動体が滞在するスリップストリーム領域が、同一グループに属する移動体の後方に設定されたスリップストリーム領域であるか否かに応じて走行性能を変化させる効果倍率係数を変化させる手法を採用している。
【0062】
まず本実施形態では、ゲーム空間に設定されたコースCを走行する移動体PCの後方にスリップストリーム領域Rを設定している。具体的には、図2に示すように、コースCに対して進行方向に沿ったローカル座標軸Dとローカル座標軸Dと直交するローカル座標軸Bとを設定し、このローカル座標軸D上における移動体PCの代表点Aの位置に基づいて、コース上に略矩形のスリップストリーム領域Rを設定している。このため、本実施形態の手法によれば、図2に示すように、コース形状に沿ってスリップストリーム領域Rを変形して設定することができる。なおスリップストリーム領域Rを設定する際には、コースCにおける移動体PCの向き(姿勢)に応じてローカル座標軸Dに対する回転角度が設定され、設定された回転角度に従った向きでスリップストリーム領域RがコースCにおける移動体PCの後方に設定される。
【0063】
また本実施形態では、スリップストリーム領域Rにおける各位置に対して移動体PCの後方を走行する移動体のフレーム単位での移動量に乗算される効果倍率係数(>1)が設定されており、図2に示すように、スリップストリーム領域Rの特定の領域Rm内では、効果倍率係数が最大値(上限値)となるように設定されている。
【0064】
次に、移動体同士の位置関係の判定手法や、位置関係の判定結果に基づいた走行性能の変更手法について図3及び図4を参照しながら説明する。
【0065】
本実施の形態では、移動体の位置を代表点を用いて判定しており、図3及び図4に示すように、第1のプレーヤが操作する移動体PC1と第2のプレーヤが操作する移動体PC2とがコースC上を走行している場合に、図3に示す例では、移動体PC1の代表点A1の位置に基づいて設定されたスリップストリーム領域Rの中に移動体PC2の代表点A2が存在している。従って、図3に示す例では、移動体PC2が移動体PC1の後方に設定されたスリップストリーム領域R内に滞在していると判定する。
【0066】
ここで本実施形態では、移動体PC1の代表点A1からの距離が近い位置に移動体PC2が滞在するほど効果倍率係数が高くなるように設定されており、特定の領域Rmでは、効果倍率係数が最大値で固定設定されている。すなわち図3に示す例では、移動体PC2の走行性能を上昇させる効果倍率係数の値は、移動体PC1の代表点A1と移動体PC2の代表点A2との距離に応じて設定される。
【0067】
次に図4に示す例では、移動体PC1の後方を走行する移動体PC2が、移動体PC1の後方に設定されたスリップストリーム領域R内の特定の領域Rmに滞在している。すなわち図4に示す例では、移動体PC2の走行性能を上昇させる効果倍率係数の値は、移動体PC1の代表点A1と移動体PC2の代表点A2との距離関係に依らずに最大値に設定される。
【0068】
このように本実施形態では、移動体PC1の後方に設定されたスリップストリーム領域R内での移動体PC2の位置に応じて移動体PC2の走行性能を上昇させるための効果倍率係数の値を設定しているが、さらに移動体PC1と移動体PC2とが同一グループであるか否かが効果倍率係数を設定する上で重要な指標となっている。
【0069】
具体的に説明すると、本実施形態では、プレーヤがゲームを開始するに際して自らの操作する移動体が所属するグループを選択しており、2体以上の移動体がグループを形成してグループ対抗でのレースゲームを行っている。このグループ対抗のレースゲームでは、上述したようにグループ内で最後にコースの周回を終えたプレーヤの操作する移動体のタイム(周回時間)をグループのタイムとしてグループ間の順位を判定するようになっている。
【0070】
そこで本実施形態では、ゲーム開始に際して予め設定したプレーヤ毎の所属グループを特定するグループ設定情報に基づいて、移動体が滞在しているスリップストリーム領域が、同一グループに所属する移動体の後方に設定されたスリップストリーム領域であると判断された場合には、異なるグループの移動体の後方に設定されたスリップストリーム領域に滞在している場合よりも効果倍率係数を高く設定する手法を採用している。
【0071】
このようにすることによって、例えば、第1のプレーヤが操作する移動体PC1と第2のプレーヤが操作する移動体PC2とが同一のグループである場合には、図5に示すようにコースC上において、移動体PC1と移動体PC2とが互いのスリップストリーム領域R1、R2内に交互に滞在するように走行移動すれば、異なるグループに属する移動体の後方に設定されたスリップストリーム領域を利用する場合よりも移動体PC1、PC2の走行性能を高く保ちながらレースゲームを有利に進めることができるようになる。
【0072】
従って本実施形態の手法によれば、上級者が初心者の移動体の位置に合わせて自らの移動体を初心者の前方に移動させて初心者の移動体がスリップストリーム領域に滞在しているような位置関係を構築するように操作することで、初心者とともに移動体の走行性能を高めながら、レースゲームを有利に進めることができるようになる。このため本実施形態の手法によれば、操作に不慣れな初心者がいる場合であってもプレーヤ同士が積極的に協力して互いの連携を高めながらグループ対抗でのレースゲームを十分に楽しむことができる操作インターフェース環境を提供することができる。
【0073】
また本実施の形態では、スリップストリーム領域内に移動体が滞在した期間に応じて走行性能を変化させる効果倍率係数の維持期間が可変される手法を採用している。
【0074】
具体的には、図6(A)および図6(B)に示すように、t1からt2の期間T1において移動体がスリップストリーム領域に滞在した場合において、期間T1が長期間であるほど、移動体がスリップストリーム領域外に移動した後における走行性能を変化させた状態を維持する期間T3が長期化するように制御している。なお本実施の形態では、期間T3において、走行性能を決定する効果倍率係数を一定値ずつ減少させながら元の効果倍率係数(=1)に復帰させる演算を行っている。
【0075】
さらに本実施の形態では、移動体が滞在していたスリップストリーム領域が同一グループの移動体の後方に設定されたスリップストリーム領域であったか否かに応じて走行性能を変化させた状態を維持する期間が可変する手法を採用している。
【0076】
具体的には、図6(A)および図6(C)に示すように、t1からt2の期間T1において移動体がスリップストリーム領域に滞在した場合において、期間T1が同じであっても、移動体の滞在したスリップストリーム領域が、異なるグループの移動体の後方に設定されたスリップストリーム領域であった場合には、図6(A)に示すように期間T3が設定され、同一グループの移動体の後方に設定されたスリップストリーム領域であった場合には、図6(C)に示すように期間T3が設定される。すなわち図6(A)および図6(C)に示す例によれば、移動体が滞在していたスリップストリーム領域が同一グループの移動体の後方に設定されたスリップストリーム領域であった場合には、走行性能を変化させた状態を維持する期間T3が長期化するように制御される。
【0077】
このように本実施形態の手法によれば、異なるグループの移動体の後方に設定されるスリップストリーム領域内に移動体を滞在させた場合よりも、同一グループの移動体の後方に設定されるスリップストリーム領域内に移動体を滞在させた場合の方が、スリップストリーム領域の外に移動した後における移動体の走行性能を変化させた状態が維持される期間T3が長期化するため、図5に示したように、同一グループに属する移動体同士が互いの後方に設定されるスリップストリーム領域に交互に移動しながら、走行性能を互いに高めあっていくという連携プレイを積極的に活用させることができるという今までのレースゲームにはない操作インターフェース環境を提供することができる。
【0078】
また本実施形態では、図2に示したようにスリップストリーム領域R内に効果倍率係数が最大値に設定される特定の領域Rmを設けているため、移動体が特定の領域Rmに滞在した場合には、以下のようにして移動体の走行性能を維持している。
【0079】
具体的には、図6(D)に示すように、移動体がスリップストリーム領域R内に滞在した期間T1(t1〜t4)の他に、移動体が特定の領域Rm内に滞在していた期間T2(t2〜t3)を計測しており、期間T2が任意のしきい値を超えている場合には、移動体が特定の領域Rmの外に移動した場合であっても走行性能を変化させる効果倍率係数を期間T2において最大値に固定したまま維持している。そして効果倍率係数が最大値に維持される期間T2においては、移動体がスリップストリーム領域Rの外に出た後においても最大値のまま維持され、期間T2の経過後(t5以降)においては、移動体がスリップストリーム領域R内に滞在した期間T1に基づいて設定された期間T3の終了するまでの期間(t5〜t6)において元の効果倍率係数(=1)に復帰するように効果倍率係数が徐々に減算される制御が実行される。
【0080】
3.本実施形態の処理
次に図7〜図10を参照しながら、本実施形態の手法を実現する処理例を詳細に説明する。
【0081】
図7は、本実施形態の手法におけるスリップストリーム領域を用いた走行性能の演算処理のメイン処理を示すフローチャートである。
【0082】
まずスリップストリーム領域内に演算の対象となる移動体が滞在しているか否かを判別するスリップストリーム対象判別処理(SS対象判別)を行う(ステップS100)。ステップS100における判別処理の結果、対象が見つかった場合には(ステップS200でY)、スリップストリーム領域に滞在したことに基づいて走行性能を変化させるスリップストリーム効果算出処理(SS効果算出)を行い(ステップS300)、対象が見つからなかった場合には(ステップS200でN)、対象がスリップストリーム領域から出ていると判断されるため、走行性能を徐々に本来の走行性能に復帰させていくスリップストリーム状態終了チェック処理(SS終了チェック)を行う(ステップS400)。
【0083】
図8は、スリップストリーム対象判別処理(SS対象判別)の詳細を示すフローチャートである。
【0084】
まず自分の速度(操作対象の移動体の速度)が、所定速度以上であるか否かを判断し(ステップS101)、自分の速度が所定速度以上であると判断された場合には(ステップS101でY)、調査対象の移動体の速度が所定速度以上であるか否かを判断する(ステップS102)。
【0085】
調査対象の移動体の速度が所定速度以上であると判断された場合には(ステップS102でY)、コース座標上(ローカル座標軸D:図2参照)における移動体間の相対距離を算出する(ステップS103)。
【0086】
次に、調査対象がスリップストリーム領域内に滞在しているか否かを判断する(ステップS104)。例えば、調査対象の移動体の代表点がコース上に設定されたスリップストリーム領域内に存在するかを求めて、調査対象の移動体がスリップストリーム領域内に滞在していると判断された場合には(ステップS104でY)、ステップS103で求めた相対距離に基づいて、調査対象の移動体に関する走行性能を変化させる効果倍率係数を算出する(ステップS105)。
【0087】
次にゲーム開始に先立って選択されたグループの設定情報に基づいて、調査対象の移動体が、自らの操作対象の移動体と同一グループに所属しているか否かを判断する(ステップS106)。調査対象が同一グループであった場合には(ステップS106でY)、ペアSSフラグをオンに設定する(ステップS107)。一方、調査対象が異なるグループであった場合には(ステップS106でN)、ステップS107の処理はバイパスする。
【0088】
次に、ステップS105で算出した効果倍率係数が今までで最も大きな値であるかどうかを判断する(ステップS108)。すなわち、移動体がひとたびスリップストリーム領域内に滞在した場合には、前方にいる移動体との位置関係において効果倍率係数が求められるが、最も接近した場合に算出される効果倍率係数で走行性能が変化するようにしている。こうして効果倍率係数が今までで最大の値であった場合には(ステップS108でY)、調査対象の効果倍率係数やペアSSフラグなどの各種の設定情報を保存する(ステップS109)。
【0089】
次に全ての対象(コース上を走行している全ての移動体)の調査が終了したか否かを判断して(ステップS110)、調査が終了していない場合には(ステップS110でN)、調査対象を変更して(ステップS111)、ステップS102〜S109までの処理を行う。一方、全ての対象についての調査が終了した場合には(ステップS110でY)、メイン処理に復帰して図7に示すステップS200以降の処理を行う。
【0090】
図9は、スリップストリーム効果算出処理(SS効果算出)の詳細を示すフローチャートである。
【0091】
まず移動体の効果倍率係数を、図8に示すスリップストリーム対象判別処理(SS対象判別)において求められた値に更新するとともに(ステップS301)、スリップストリーム領域内に滞在した期間T1を更新し(ステップS302)、移動体の状態を示すステータスデータであるスリップストリーム効果権利獲得状態ST1を「カウント中」に変更する(ステップS303)。
【0092】
次に移動体の効果倍率係数が上限値に固定されるか否かを示すステータスデータであるMAX効果倍率権利獲得状態ST2を参照して、ST2の状態に応じた処理を実行する(ステップS304)。
【0093】
まず、ST2が「未獲得」であった場合には(ステップS304で「未獲得」)、移動体の位置が効果倍率MAX領域(図2に示す特定の領域Rm)内であるか否かを判断する(ステップS305)。
【0094】
そして移動体の位置が効果倍率MAX領域内であった場合には(ステップS305でY)、効果倍率MAX領域内に移動体が滞在した期間T2を更新し(ステップS306)、更新後の期間T2の値がしきい値以上であった場合には(ステップS307でY)、ST2を「権利獲得中」に変更してメイン処理に復帰する(ステップS308)。
【0095】
一方、移動体の位置が効果倍率MAX領域内でなかった場合には(ステップS305でN)、期間T2の値を初期値(例えば、0)にリセットしてメイン処理に復帰する(ステップS309)。
【0096】
また、ステップS304でMAX効果倍率権利獲得状態ST2を参照した結果、ST2が「権利獲得中」であった場合には(ステップS304で「権利獲得中」)、移動体の位置が効果倍率MAX領域内であるか否かを判断する(ステップS310)。
【0097】
そして移動体の位置が効果倍率MAX領域内であった場合には(ステップS310でY)、期間T2の値を更新してメイン処理に復帰する(ステップS311)。
【0098】
一方、移動体の位置が効果倍率MAX領域内でなかった場合には(ステップS310でN)、期間T2のカウントダウンを開始し(ステップS312)、ST2を「権利行使中」に変更してメイン処理に復帰する(ステップS313)。すなわちステップS312以降において移動体の効果倍率係数が期間T2において上限値に維持される処理が開始される。
【0099】
また、ステップS304でMAX効果倍率権利獲得状態ST2を参照した結果、ST2が「権利行使中」であった場合には(ステップS304で「権利行使中」)、期間T2のカウントダウンを行い(ステップS314)、期間T2が終了(T2≦0)したか否かを判断する(ステップS315)。ステップS315において期間T2が終了したと判断された場合には(ステップS315でY)、ST2を「未獲得」に変更してメイン処理に復帰する(ステップS316)。
【0100】
図10は、スリップストリーム状態終了チェック処理(SS終了チェック)の詳細を示すフローチャートである。
【0101】
まずST2が「未獲得」でない場合には(ステップS401でY)、ST2を「権利行使中」に変更して(ステップS402)、期間T2のカウントダウンを開始する(ステップS403)。すなわちSS終了チェックを実行する際には、対象となる移動体が既にスリップストリーム領域の外に移動しているため、効果倍率MAX領域外にいると判断することができるため、ST2の状態を変更するとともに、期間T2のカウントを開始する必要がある。
【0102】
そして期間T2が終了(T2≦0)した場合には(ステップS404でY)、ST2を「未獲得」に変更してから、ST1を参照して、ST1の状態を判断する(ステップS406)。なおST2が「未獲得」であった場合には(ステップS401でY)、ステップS402〜S405の処理をバイパスする。
【0103】
まず、ST1が「未獲得」であった場合には(ステップS406で「未獲得」)、移動体がスリップストリーム領域内に滞在した期間T1の値がしきい値以上であるか否かを判断する(ステップS407)。期間T1の値がしきい値以上であった場合には(ステップS407でY)、期間T1の値に基づいて効果倍率係数を維持する期間T3の値を算出する(ステップS408)。ステップS408では、期間T1が長期間であるほど期間T3が長期化するように算出する。そして、ペアSSフラグがオンである場合には(ステップS409でY)、期間T3をペア用の算出式で再計算し(ステップS410)、ペアSSフラグをオフにリセットする(ステップS411)。ステップS410では、ペアSSフラグがオンであることに基づいて、同一グループの移動体の後方に設定されたスリップストリーム領域内に滞在していたことが確認されているため、異なるグループの移動体の後方に設定されたスリップストリーム領域内に滞在していた場合よりも期間T3が長期化するような算出式を使用して再計算を行う。なおペアSSフラグがオフである場合には(ステップS409でN)、ステップS410〜S411の処理はバイパスされる。最終的には、ST1を「権利行使中」に変更してメイン処理に復帰する(ステップS412)。
【0104】
一方、期間T1がしきい値を下回っていた場合には(ステップS407でN)、効果倍率係数、期間T1、ST1の各データを初期値にリセットしてメイン処理に復帰する(ステップS413)。
【0105】
また、ステップS406でST1を参照した結果、ST1が「権利行使中」であった場合には(ステップS406で「権利行使中」)、ステップS408あるいはステップS410で求められた期間T3のカウントダウンを行う(ステップS414)。そして期間T3が終了(T3≦0)した場合には(ステップS415でY)、ST1を「効果倍率減少中」に変更してメイン処理に復帰する(ステップS416)。
【0106】
また、ステップS406でST1を参照した結果、ST1が「効果倍率減少中」であった場合には(ステップS406で「効果倍率減少中」)、効果倍率係数の値から一定値を減算する(ステップS417)。そして効果倍率係数が等倍(=1)以下になった場合には(ステップS418でY)、効果倍率係数、期間T3を初期値にリセットするとともに(ステップS419)、ST1を「未獲得」に変更してメイン処理に復帰する(ステップS420)。
【0107】
4.応用例
4.1 クライアント/サーバシステム
本実施形態のゲームシステムは、単体の装置によって各ゲーム処理を実行するようになっているが、サーバ装置と複数のクライアント装置から構成されるシステム(以下、「クライアント/サーバシステム」という。)に適用することができる。
【0108】
この場合に、クライアントサーバシステムは、図11に示すように、基本的なゲーム処理を行うサーバ装置Sと、レースゲームに参加する各プレーヤから操作データを受信し、かつ、サーバ装置Sと必要なデータ及び命令の送受信を行う複数のクライアント装置C(C−1、C−2、・・・C−N)と、から構成される。
【0109】
本例においてサーバ装置Sは、クライアント装置Cに対して、例えば、ブロードキャスト方式でデータ通信を行うことによって、上述のように、ゲーム開始条件が満たされた場合にゲームを開始する処理やゲームを進行させる処理などレースゲームを実行する際に必要な各種の処理を行う。
【0110】
具体的には、このサーバ装置Sは、各レースゲームの実行中には、各クライアント装置Cを識別するための識別データに基づいて各クライアント装置Cとデータパケットやコマンドパケットの送受信を行う。
【0111】
また、このサーバ装置Sは、各クライアント装置Cの識別データ(グループ設定情報も含む)に基づいて、各プレーヤにおける操作データの受信、各プレーヤの移動体の後方にスリップストリーム領域を設定する処理、移動体の位置を判別する処理、移動体の走行性能を変化させる処理や移動体の走行性能を所与の期間維持する処理、及び各種処理結果の各クライアント装置Cへの送信など各種の処理を行う。
【0112】
各クライアント装置Cは、操作部160を介して受信した操作データを識別データとともにサーバ装置Sに送信するとともに、サーバ装置Sで実行された処理結果のデータや表示部190に出力するゲーム画像を描画するためのデータを受信する。
【0113】
4.2 ピアツーピアシステム
本実施形態のゲームシステムは、単体の装置によって各ゲーム処理を実行するようになっているが、複数の端末装置のみから構成され、各端末装置にて連動させてゲーム処理を実行するシステム(以下、「ピアツーピアシステム」という。)に適用することができる。
【0114】
この場合には、ピアツーピアシステムは、図12に示すように、必要なデータ及びコマンドを相互に送受させつつ、個々にゲーム処理を実行しつつも各ゲーム処理を連動させるように制御可能な複数の端末装置T(T−1、T−2、T−3、・・・T−N)から構成される。
【0115】
各端末装置Tは、他の端末装置Tと連動しつつ、上述のように、ゲーム開始条件が満たされた場合にゲームを開始する処理やゲームを進行させる処理などレースゲームを実行する際に必要な各種の処理を行うようになっている。
【0116】
具体的には、各端末装置Tは、各レースゲームの実行中には、他の端末装置Tを識別するための識別データ(グループ設定情報を含む)に基づいて、それぞれデータパケット及びコマンドパケットの送受信を行うようになっており、当該識別データに基づいて、各プレーヤにおける操作データの受信、各プレーヤの移動体の後方にスリップストリーム領域を設定する処理、移動体の位置を判別する処理、移動体の走行性能を変化させる処理や移動体の走行性能を所与の期間維持する処理など各種の処理を行う。
【0117】
特に、この各端末装置Tは、プレーヤの操作データが操作部160を介して各端末装置Tに入力されると、当該入力された操作データに基づいて各種のゲーム処理を実行するとともに、当該入力された操作データを他の端末装置Tに送信する。
【0118】
また、この各端末装置Tは、操作部160を介して入力された操作データに基づいて自己の装置が担当する移動体をオブジェクト空間において移動させる制御を行うとともに、他の端末装置Tから送信された操作データに基づいて該当する移動体をオブジェクト空間において移動させる制御も行う。
【0119】
すなわち、ピアツーピアシステムの場合には、各端末装置Tは、当該各端末装置Tにて操作データが入力される移動体(すなわち、担当する移動体)以外の移動体の操作データについては、他の端末装置Tから受信し、操作部160を介して入力された操作データと受信した操作データに基づいて上述した各種のゲーム処理を行うようになっている。
【0120】
なお、上述のピアツーピアシステムでは、各端末装置T毎に、入力された操作データと受信した操作データに基づいて各種のゲーム処理を行うようになっているが、勿論、操作データだけでなく、各プレーヤの移動体の後方にスリップストリーム領域を設定する処理、移動体の位置を判別する処理、移動体の走行性能を変化させる処理や移動体の走行性能を所与の期間維持する処理などの各種の処理に関するデータの送受信を行うことができる。
【0121】
5.変形例
なお、本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。
【0122】
例えば、図13(A)〜図13(D)に示すように、同一グループに所属するプレーヤの操作する移動体が所定の位置関係になったことに基づいて、移動体の走行性能を変化させてもよい。図13(A)や図13(B)では、移動体PC1と移動体PC2とが進行方向に対して直列に配置される場合や移動体PC1と移動体PC2とが進行方向に対して並列に配置される場合に、走行性能を変化させる。具体的な例を挙げると、移動体PC1の代表点A1と移動体PC2の代表点A2との距離関係が一定距離に保たれるように各移動体の位置関係を制御することができる。この場合、速度の大きい移動体を基準として、速度の小さい移動体を近づけるように各移動体の位置関係を制御すれば、熟練者の操作による移動体の動きを制限することなく、初心者の操作する移動体を熟練者と同様に移動させることができるようになる。また3体の同一グループに所属する移動体PC1〜PC3において上記と同様に一定の距離関係を保つように位置関係を制御する場合には、図13(C)に示すように、各移動体が進行方向に対して三角形の形状を保つように各移動体の位置関係を制御したり、図13(D)に示すように、各移動体が進行方向に対して逆三角形の形状を保つように各移動体の位置関係を制御したりするようにしてもよい。この場合にも、移動体PC1の代表点A1と移動体PC2の代表点A2との距離、移動体PC2の代表点A2と移動体PC3の代表点A3との距離、移動体PC3の代表点A3と移動体PC1の代表点A1との距離を、一定距離に保つように各移動体の位置関係を制御することによって、グループ内に初心者が含まれる場合であっても、初心者の操作する移動体の走行安定性を良好に制御することができるようになる。
【0123】
また、明細書又は図面中の記載において広義や同義な用語として引用された用語は、明細書又は図面中の他の記載においても広義や同義な用語に置き換えることができる。
【0124】
また、スリップストリーム領域の設定手法、移動体の位置判別手法、移動体の走行性能を変化させる手法、移動体の走行性能を維持する手法等についても上記実施形態で説明したものに限定されず、これらと均等な手法も本発明の範囲に含まれる。
【0125】
また、上記実施形態では、移動体として車両を操作するレースゲームを例にとり説明したがこれに限られず、船舶又は飛行機などの各種の移動体を操作するゲーム等に適用可能である。
【0126】
また、本発明は、種々のゲームに適用できる。そして、本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレーヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード、携帯電話等の種々の画像生成システムに適用できる。
【図面の簡単な説明】
【0127】
【図1】本実施形態のゲームシステムの機能ブロック図。
【図2】本実施形態の手法を説明するための図。
【図3】本実施形態の手法を説明するための図。
【図4】本実施形態の手法を説明するための図。
【図5】本実施形態の手法を説明するための図。
【図6】本実施形態の手法を説明するための図。
【図7】本実施形態の具体的な処理例を示すフローチャート。
【図8】本実施形態の具体的な処理例を示すフローチャート。
【図9】本実施形態の具体的な処理例を示すフローチャート。
【図10】本実施形態の具体的な処理例を示すフローチャート。
【図11】本実施形態の応用例を示すネットワークシステムの説明図。
【図12】本実施形態の応用例を示すネットワークシステムの説明図。
【図13】本実施形態の手法の変形例を説明するための図。
【符号の説明】
【0128】
100 処理部、110 ゲーム処理部、
111 表示制御部、112 移動体制御部、113 スリップストリーム領域設定部、
114 位置関係判定部、115 走行性能変更部、116 通信制御部、
120 描画部、130 音生成部、
160 操作部、170 記憶部、172 主記憶部、174 描画バッファ、
180 情報記憶媒体、190 表示部、192 音出力部、
194 携帯型情報記憶装置、196 通信部

【特許請求の範囲】
【請求項1】
複数の移動体がグループを形成してレースゲームを行うためのプログラムであって、
前記移動体毎に設定される移動性能に基づいて前記移動体をゲーム空間内で移動させる制御を行う移動体制御部と、
各移動体のゲーム空間における位置関係を判定する位置関係判定部と、
同一グループに属する各移動体の位置関係が所定の位置関係であることに基づいて移動体の移動性能を変化させる移動性能変更部としてコンピュータを機能させることを特徴とするプログラム。
【請求項2】
請求項1において、
前記各移動体の位置に基づいてゲーム空間に対して所定の領域を設定する領域設定部としてコンピュータを機能させるとともに、
前記位置関係判定部が、
所与の移動体の位置に基づいて設定された前記所定の領域内に他の移動体が存在するか否かを前記位置関係として判定し、
前記移動性能変更部が、
前記他の移動体の前記所定の領域内での位置に応じて前記他の移動体の移動性能を変化させる度合いを設定して、設定された度合いに応じて前記他の移動体の移動性能を変化させるとともに、
前記所与の移動体が前記他の移動体と同一グループであるか否かに応じて前記他の移動体の移動性能を変化させる度合いを変化させることを特徴とするプログラム。
【請求項3】
請求項1または2において、
前記各移動体の位置に基づいてゲーム空間に対して所定の領域を設定する領域設定部としてコンピュータを機能させるとともに、
前記位置関係判定部が、
所与の移動体の位置に基づいて設定された前記所定の領域内に他の移動体が存在するか否かを判定するとともに、前記他の移動体が前記所定の領域内から前記所定の領域外に移動したか否かを判定し、
前記移動性能変更部が、
前記所定の領域内に滞在している前記他の移動体の移動性能を変化させるとともに、前記所定の領域外に前記他の移動体が移動した後においても前記他の移動体が前記所定の領域内に滞在した期間に応じて設定される所与の期間において、前記他の移動体の移動性能が変化した状態を維持する処理を行い、
前記所定の領域内に存在する他の移動体が前記所与の移動体と同一グループであるか否かに応じて、前記他の移動体の移動性能が変化した状態を維持する期間を変化させることを特徴とするプログラム。
【請求項4】
請求項2または3において、
前記領域設定部が、
所定イベントの発生に基づいて、前記所定の領域の大きさを変化させる処理および前記所定の領域を無効化する処理の少なくとも一方を実行することを特徴とするプログラム。
【請求項5】
コンピュータにより読み取り可能な情報記憶媒体であって、請求項1〜4のいずれかに記載のプログラムを記憶していることを特徴とする情報記憶媒体。
【請求項6】
複数の移動体がグループを形成してレースゲームを行うためのゲームシステムであって、
前記移動体毎に設定される移動性能に基づいて前記移動体をゲーム空間内で移動させる制御を行う移動体制御部と、
各移動体のゲーム空間における位置関係を判定する位置関係判定部と、
同一グループに属する各移動体の位置関係が所定の位置関係であることに基づいて移動体の移動性能を変化させる移動性能変更部とを含むことを特徴とするゲームシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate


【公開番号】特開2008−67938(P2008−67938A)
【公開日】平成20年3月27日(2008.3.27)
【国際特許分類】
【出願番号】特願2006−250093(P2006−250093)
【出願日】平成18年9月14日(2006.9.14)
【出願人】(000134855)株式会社バンダイナムコゲームス (1,157)
【Fターム(参考)】