説明

ゲーム装置、ゲーム処理方法、ならびに、プログラム

【課題】ゲーム画像を描画する処理の負荷を軽減する。
【解決手段】記憶部211は複数のプレイヤーキャラクターと1つ以上の敵キャラクターが配置されるそれぞれの領域及び位置を記憶する。抽出部212はプレイヤーキャラクターのうち自キャラクターが配置される領域内の他のプレイヤーキャラクターと敵キャラクターの位置を抽出する。表示部213は抽出された位置に基づいて画像を生成して表示する。送信部214と受信部215はプレイヤーキャラクターと敵キャラクターが配置されている領域と位置をゲーム装置間で送受信する。更新部216はプレイヤーからの指示入力に基づいて自キャラクターが配置される領域と位置を更新し、自キャラクター以外のプレイヤーキャラクターが配置される領域と位置を他のゲーム装置から受信して更新し、敵キャラクターが配置される領域と位置を他のゲーム装置と共通するように更新する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ゲーム画像を描画する処理の負荷を軽減するために好適なゲーム装置、ゲーム処理方法、ならびに、プログラムに関する。
【背景技術】
【0002】
近年、ゲームや映画などに登場するキャラクター等をコンピュータグラフィックスを用いてリアルに表現する技術が発達している。3次元グラフィックスでは、ポリゴンの各頂点の座標などを表す様々なパラメータを計算してキャラクターの形を求めるモデリングと呼ばれる処理が行われる。モデリングの技法については、表示される画像がより自然に見えるようにするための様々な工夫がなされている。例えば特許文献1には、連結される2つのボーンの連結点付近のスキンの形状をできるだけ自然に変化させることができる装置が開示されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2007−148856号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、モデリングの対象となるキャラクターの数が多くなるほど、モデリングに要する処理の負荷が大きくなる。例えば、ゲームに登場しているキャラクターのすべてを描画の対象とすれば、より細かい描写が可能となるものの、描画の負荷が大きくなりすぎると、描画に遅延が生じてしまったり、いわゆるコマ落ちやフレーム落ちのような不具合が生じてしまったりする恐れがある。特に、家庭用に広く普及されているゲーム装置のように高性能のハードウェアを搭載することが容易ではない場合には、描画の負荷を軽減する必要がある。
【0005】
本発明はこのような課題を解決するものであり、ゲーム画像を描画する処理の負荷を軽減するために好適なゲーム装置、ゲーム処理方法、ならびに、プログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
以上の目的を達成するため、本発明の原理にしたがって、下記の発明を開示する。
【0007】
本発明の第1の観点に係るゲーム装置は、複数のプレイヤーがそれぞれのゲーム装置を操作して、前記プレイヤーの指示対象のプレイヤーキャラクター(以下「自キャラクター」という。)を、複数の領域に分割される仮想空間内で移動させ、当該仮想空間内に配置される敵キャラクターと対戦させるゲームを実現するゲームシステムのいずれかのゲーム装置であって、記憶部、抽出部、表示部、送信部、受信部、更新部を備える。
記憶部は、各々のプレイヤーキャラクターが配置される領域及び当該領域内での位置と、敵キャラクターが配置される領域及び当該領域内での位置と、を記憶する。
抽出部は、記憶部を参照して、自キャラクターが存在する領域に配置されている他のプレイヤーキャラクター及び/又は敵キャラクターの位置を抽出する。
表示部は、抽出された他のプレイヤーキャラクター及び/又は敵キャラクターの位置に基づいて、自キャラクターが配置される領域を表す画像を生成して表示する。
送信部は、自キャラクターの領域及び位置を他のゲーム装置に送信する。
受信部は、自キャラクター以外の他のプレイヤーキャラクターの領域及び位置を他のゲーム装置から受信する。
更新部は、記憶される領域及び当該領域内での位置を更新する。
すなわち、更新部は、(a)ゲーム装置のプレイヤーからの指示入力に基づいて、自キャラクターの領域及び位置を更新する。
また、更新部は、(b)受信されたプレイヤーキャラクターの領域及び位置に基づいて、自キャラクター以外のプレイヤーキャラクターの領域及び位置を更新する。
また、更新部は、(c)敵キャラクターの領域及び位置を、他のゲーム装置と共通するように更新する。
【0008】
本発明のゲーム装置が実行するゲームが扱う仮想空間は、複数の領域から構成される。仮想空間は2次元空間でもよいし3次元空間でもよい。仮想空間内には、プレイヤーが操作する対象となるプレイヤーキャラクターと、1つ以上の敵キャラクターと、が配置される。
【0009】
ゲームには複数のプレイヤーが参加することができ、典型的には各プレイヤーはそれぞれ別のゲーム装置を使ってゲームをプレイする。1人のプレイヤーには少なくとも1つのプレイヤーキャラクターが割り当てられる。あるプレイヤーが指示を与える対象となるプレイヤーキャラクターのことを“自キャラクター”という。仮想空間には少なくともプレイヤーの人数分のプレイヤーキャラクターが配置される。各プレイヤーキャラクターが配置される領域と位置は、所定のタイミングで同期が取られる。また、敵キャラクターが配置される領域と位置は、所定のタイミングで同期が取られる。
【0010】
ゲーム装置で行われるゲームは、例えば、複数のプレイヤーキャラクターが協力して共通の敵キャラクターと戦う戦闘シミュレーションゲームである。ただし、ゲーム内容は本発明によって限定されることはない。ゲーム装置は、仮想空間に配置されるプレイヤーキャラクター、敵キャラクター、その他キャラクター、背景などを含むゲーム画像を生成して表示する。各キャラクターはポリゴンを用いたモデリング技法で表現される。
【0011】
本発明では、ゲーム装置は、ゲーム画面を生成する際、仮想空間内に配置されているすべてのプレイヤーキャラクターとすべての敵キャラクターをモデリングの対象とするのではなく、仮想空間全体のうち自キャラクターが存在する領域内に配置されているプレイヤーキャラクターと敵キャラクターをモデリングの対象とする。
【0012】
すなわち、ゲーム装置は、各々のプレイヤーキャラクターが配置される領域及び当該領域内での位置と、敵キャラクターが配置される領域及び当該領域内での位置と、を記憶しており、描画の際には、自キャラクターが存在する領域内に配置されているプレイヤーキャラクターと敵キャラクターの位置を抽出する。そして、ゲーム装置は、自キャラクターが存在する領域内に配置されているプレイヤーキャラクターと敵キャラクターをモデリングにより描画する。描画された画像はモニターに表示される。
【0013】
本発明によれば、自キャラクターが配置される領域に応じてモデリングの対象のキャラクターを絞ればよいので、ゲーム画像を描画する処理の負荷を軽減することができる。複数のプレイヤーがそれぞれ別のゲーム装置を用いてゲームをプレイするとき、ゲーム装置は同じゲームを実行しつつ、それぞれ異なるゲーム画面を生成して表示することができる。
【0014】
ゲーム装置は、(p)当該ゲーム装置が複数のゲーム装置のうちの一のゲーム装置(以下「親機」という。)である場合、敵キャラクターの移動先の領域及び位置を計算する計算部を更に備えていてもよい。そして、送信部は、計算された敵キャラクターの領域及び位置を親機以外のゲーム装置(以下「子機」という。)に更に送信し、更新部は、計算された敵キャラクターの領域及び位置に基づいて記憶部を更新してもよい。
また、(q)当該ゲーム装置が子機である場合、受信部は、親機から送信された敵キャラクターの領域及び位置を更に受信し、更新部は、受信された敵キャラクターの領域及び位置に基づいて前記記憶部を更新してもよい。
【0015】
すなわち、ゲーム装置には親機と子機とがあってもよい。典型的には、親機と子機はハードウェア構成が同じであるものの、機能的な違いがある。プレイヤーキャラクターが配置される領域と位置は、親機・子機の違いに関わらず、各々のゲーム装置がプレイヤーからの指示入力を受け付けて移動する。プレイヤーキャラクターの移動先の領域と位置は、所定のタイミングで他のゲーム装置に送信され、同期が取られる。一方、敵キャラクターが配置される領域と位置は、親機のゲーム装置によって制御されて移動する。敵キャラクターの移動先の領域と位置は、所定のタイミングで親機から子機に送信され、同期が取られる。
【0016】
本発明によれば、敵キャラクターの制御は親機のみが行えばよいので、子機の処理負担が軽減される。
【0017】
計算部は、敵キャラクターの移動先の領域に配置されるプレイヤーキャラクター及び敵キャラクターの数が所定の閾値を超えないように、敵キャラクターの移動先の領域を計算し、もしくは、敵キャラクターを消滅させてもよい。
【0018】
つまり、自キャラクターが配置されている領域内のプレイヤーキャラクターと敵キャラクターのみをモデリングの対象としても、モデリングの対象となる全キャラクター数が多すぎてしまうと、それぞれのゲーム装置がモデリングする処理の負荷が、ゲームの進行に支障を来す恐れが出てくると考えられる。そこで、本発明では、1つの領域に配置される全キャラクターの総数に制限を設ける。
【0019】
例えば、もしプレイヤーキャラクターもしくは敵キャラクターを移動させると、自キャラクターが存在する領域内の全キャラクター数が所定の閾値を超えてしまう場合、ゲーム装置は、その領域内の全キャラクター数が閾値を超えないように、敵キャラクターを他の領域に移動させる。もしくは、ゲーム装置は、敵キャラクターをその領域から消滅させる。
【0020】
本発明によれば、モデリングの対象となる全キャラクター数が多すぎることがないように制御されるので、ゲーム画像を描画する処理の負荷を軽減することができる。なお、モデリング処理の負荷の目安を予め測っておき、ゲーム進行に支障が出ない程度のキャラクター数を閾値に設定しておくことが望ましい。
【0021】
本発明のその他の観点に係るゲーム処理方法は、複数のプレイヤーがそれぞれのゲーム装置を操作して、プレイヤーの指示対象のプレイヤーキャラクター(以下「自キャラクター」という。)を、複数の領域に分割される仮想空間内で移動させ、当該仮想空間内に配置される敵キャラクターと対戦させるゲームを実現するゲームシステムのいずれかのゲーム装置にて実行されるゲーム処理方法であって、抽出ステップ、表示ステップ、送信ステップ、受信ステップ、更新ステップを備える。
ゲーム装置は、各々のプレイヤーキャラクターが配置される領域及び当該領域内での位置と、敵キャラクターが配置される領域及び当該領域内での位置と、を記憶する記憶部を備える。
抽出ステップでは、抽出部が、記憶部を参照して、自キャラクターが存在する領域に配置されている他のプレイヤーキャラクター及び/又は敵キャラクターの位置を抽出する。
表示ステップでは、表示部が、抽出された他のプレイヤーキャラクター及び/又は敵キャラクターの位置に基づいて、自キャラクターが配置される領域を表す画像を生成して表示する。
送信ステップでは、送信部が、自キャラクターの領域及び位置を他のゲーム装置に送信する。
受信ステップでは、受信部が、自キャラクター以外の他のプレイヤーキャラクターの領域及び位置を他のゲーム装置から受信する。
更新ステップでは、更新部が記憶される領域及び当該領域内での位置を更新する。
また、更新ステップでは、更新部が、(a)ゲーム装置のプレイヤーからの指示入力に基づいて、自キャラクターの領域及び位置を更新する。
また、更新ステップでは、更新部が、(b)受信されたプレイヤーキャラクターの領域及び位置に基づいて、自キャラクター以外のプレイヤーキャラクターの領域及び位置を更新する。
また、更新ステップでは、更新部が、(c)敵キャラクターの領域及び位置を、他のゲーム装置と共通するように更新する。
【0022】
本発明によれば、自キャラクターが配置される領域に応じてモデリングの対象のキャラクターを絞ればよいので、ゲーム画像を描画する処理の負荷を軽減することができる。複数のプレイヤーがそれぞれ別のゲーム装置を用いてゲームをプレイするとき、ゲーム装置は同じゲームを実行しつつ、それぞれ異なるゲーム画面を生成して表示することができる。
【0023】
本発明のその他の観点に係るプログラムは、複数のプレイヤーがそれぞれのコンピュータを操作して、プレイヤーの指示対象のプレイヤーキャラクター(以下「自キャラクター」という。)を、複数の領域に分割される仮想空間内で移動させ、当該仮想空間内に配置される敵キャラクターと対戦させるゲームを実現するゲームシステムのいずれかのコンピュータを、記憶部、抽出部、表示部、送信部、受信部、更新部として機能させる。
記憶部は、各々のプレイヤーキャラクターが配置される領域及び当該領域内での位置と、敵キャラクターが配置される領域及び当該領域内での位置と、を記憶する。
抽出部は、記憶部を参照して、自キャラクターが存在する領域に配置されている他のプレイヤーキャラクター及び/又は敵キャラクターの位置を抽出する。
表示部は、抽出された他のプレイヤーキャラクター及び/又は敵キャラクターの位置に基づいて、自キャラクターが配置される領域を表す画像を生成して表示する。
送信部は、自キャラクターの領域及び位置を他のゲーム装置に送信する。
受信部は、自キャラクター以外の他のプレイヤーキャラクターの領域及び位置を他のゲーム装置から受信する。
更新部は、記憶される領域及び当該領域内での位置を更新する。
更新部は、(a)ゲーム装置のプレイヤーからの指示入力に基づいて、自キャラクターの領域及び位置を更新する。
また、更新部は、(b)受信されたプレイヤーキャラクターの領域及び位置に基づいて、自キャラクター以外のプレイヤーキャラクターの領域及び位置を更新する。
また、更新部は、(c)敵キャラクターの領域及び位置を、他のゲーム装置と共通するように更新する。
【0024】
本発明によれば、コンピュータを上述のように動作するゲーム装置として機能させることができる。
また、本発明のプログラムは、コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、半導体メモリ等のコンピュータ読取可能な情報記憶媒体に記録することができる。
上記プログラムは、プログラムが実行されるコンピュータとは独立して、コンピュータ通信網を介して配布・販売することができる。また、上記情報記憶媒体は、コンピュータとは独立して配布・販売することができる。
【発明の効果】
【0025】
本発明によれば、ゲーム画像を描画する処理の負荷を軽減するために好適なゲーム装置、ゲーム処理方法、ならびに、プログラムを提供することができる。
【図面の簡単な説明】
【0026】
【図1】本発明のゲーム装置が実現される典型的な情報処理装置の概要構成を示す図である。
【図2】ゲームシステムの機能的な構成を説明するための図である。
【図3】仮想空間を表すマップの構成例を示す図である。
【図4】キャラクター情報の構成例を示す図である。
【図5】プレイヤーキャラクターの更新処理を説明するためのフローチャートである。
【図6】敵キャラクターの更新処理を説明するためのフローチャートである。
【図7】ゲーム処理を説明するためのフローチャートである。
【図8】実施形態2のゲームシステムの機能的な構成を説明するための図である。
【図9】敵キャラクターの更新処理を説明するためのフローチャートである。
【図10】仮想空間を表すマップの構成例を示す図である。
【発明を実施するための形態】
【0027】
(実施形態1)
本発明の実施形態を説明する。以下では、理解を容易にするため、ゲーム用の情報処理装置を利用して本発明が実現される実施形態を説明するが、以下の実施形態は説明のためのものであり、本願発明の範囲を制限するものではない。したがって、当業者であればこれらの各要素もしくは全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。
【0028】
図1は、プログラムを実行することにより本発明のゲーム装置の機能を果たす典型的な情報処理装置100の概要構成を示す模式図である。
【0029】
情報処理装置100は、CPU(Central Processing Unit)101と、ROM(Read Only Memory)102と、RAM(Random Access Memory)103と、インターフェース104と、コントローラ105と、外部メモリ106と、DVD−ROM(Digital Versatile Disk - Read Only Memory)ドライブ107と、画像処理部108と、音声処理部109と、NIC(Network Interface Card)110と、を備える。
【0030】
ゲーム用のプログラムおよびデータを記憶したDVD−ROMをDVD−ROMドライブ107に装着して、情報処理装置100の電源を投入することにより、当該プログラムが実行され、本実施形態のゲーム装置が実現される。
【0031】
CPU 101は、情報処理装置100全体の動作を制御し、各構成要素と接続され制御信号やデータをやりとりする。また、CPU 101は、レジスタ(図示せず)という高速アクセスが可能な記憶域に対してALU(Arithmetic Logic Unit)(図示せず)を用いて加減乗除等の算術演算や、論理和、論理積、論理否定等の論理演算、ビット和、ビット積、ビット反転、ビットシフト、ビット回転等のビット演算などを行うことができる。さらに、マルチメディア処理対応のための加減乗除等の飽和演算や、三角関数等、ベクトル演算などを高速に行えるように、CPU 101自身が構成されているものや、コプロセッサを備えて実現するものがある。
【0032】
ROM 102には、電源投入直後に実行されるIPL(Initial Program Loader)が記録され、これが実行されることにより、DVD−ROMに記録されたプログラムをRAM 103に読み出してCPU 101による実行が開始される。また、ROM 102には、情報処理装置100全体の動作制御に必要なオペレーティングシステムのプログラムや各種のデータが記録される。
【0033】
RAM 103は、データやプログラムを一時的に記憶するためのもので、DVD−ROMから読み出したプログラムやデータ、その他ゲームの進行やチャット通信に必要なデータが保持される。また、CPU 101は、RAM 103に変数領域を設け、当該変数に格納された値に対して直接ALUを作用させて演算を行ったり、RAM 103に格納された値を一旦レジスタに格納してからレジスタに対して演算を行い、演算結果をメモリに書き戻す、などの処理を行う。
【0034】
インターフェース104を介して接続されたコントローラ105は、プレイヤーがダンスゲームやサッカーゲームなどのゲームの実行の際に行う操作入力を受け付ける。インターフェース104には、複数のコントローラ105が接続されていてもよい。
【0035】
インターフェース104を介して着脱自在に接続された外部メモリ106には、ゲームのプレイ状況(過去の成績等)を示すデータ、ゲームの進行状態を示すデータ、ネットワークを用いたゲームのチャット通信のログ(記録)のデータなどが書き換え可能に記憶される。プレイヤーは、コントローラ105を介して操作入力を行うことにより、これらのデータを適宜外部メモリ106に記録することができる。
【0036】
DVD−ROMドライブ107に装着されるDVD−ROMには、ゲームを実現するためのプログラムとゲームに付随する画像データや音声データが記録される。CPU 101の制御によって、DVD−ROMドライブ107は、これに装着されたDVD−ROMに対する読み出し処理を行って、必要なプログラムやデータを読み出し、これらはRAM 103等に一時的に記憶される。
【0037】
画像処理部108は、DVD−ROMから読み出されたデータをCPU 101や画像処理部108が備える画像演算プロセッサ(図示せず)によって加工処理した後、これを画像処理部108が備えるフレームメモリ(図示せず)に記録する。フレームメモリに記録された画像情報は、所定の同期タイミングでビデオ信号に変換され画像処理部108に接続されるモニター(図示せず)へ出力される。これにより、各種の画像表示が可能となる。
【0038】
画像演算プロセッサは、2次元の画像の重ね合わせ演算やαブレンディング等の透過演算、各種の飽和演算を高速に実行できる。
【0039】
また、仮想3次元空間に配置され、各種のテクスチャ情報が付加されたポリゴン情報を、Zバッファ法によりレンダリングして、所定の視点位置から仮想3次元空間に配置されたポリゴンを所定の視線の方向へ俯瞰したレンダリング画像を得る演算の高速実行も可能である。
【0040】
さらに、CPU 101と画像演算プロセッサが協調動作することにより、文字の形状を定義するフォント情報にしたがって、文字列を2次元画像としてフレームメモリへ描画したり、各ポリゴン表面へ描画することが可能である。
【0041】
また、ゲームの画像などの情報をDVD−ROMに用意しておき、これをフレームメモリに展開することによって、ゲームの様子などを画面に表示することができるようになる。
【0042】
音声処理部109は、DVD−ROMから読み出した音声データをアナログ音声信号に変換し、これに接続されたスピーカー(図示せず)から出力させる。また、CPU 101の制御の下、ゲームの進行の中で発生させるべき効果音や楽曲データを生成し、これに対応した音声をスピーカーから出力させる。
【0043】
音声処理部109では、DVD−ROMに記録された音声データがMIDIデータである場合には、これが有する音源データを参照して、MIDIデータをPCMデータに変換する。また、ADPCM(Adaptive Differential Pulse Code Modulation)形式やOgg Vorbis形式等の圧縮済音声データである場合には、これを展開してPCMデータに変換する。PCMデータはそのサンプリング周波数に応じたタイミングでD/A(Digital/Analog)変換され、スピーカーから音声が出力される。
【0044】
NIC 110は、情報処理装置100をインターネット等のコンピュータ通信網(図示せず)や他の情報処理装置100に接続するためのものであり、LAN(Local Area Network)を構成する際に用いられる10BASE−T/100BASE−T規格にしたがうものや、電話回線を用いてインターネットに接続するためのアナログモデム、ISDN(Integrated Services Digital Network)モデム、ADSL(Asymmetric Digital Subscriber Line)モデム、ケーブルテレビジョン回線を用いてインターネットに接続するためのケーブルモデム等と、これらとCPU 101との仲立ちを行うインターフェース(図示せず)により構成される。
【0045】
このほか、情報処理装置100は、ハードディスク等の大容量外部記憶装置を用いて、ROM 102、RAM 103、外部メモリ106、DVD−ROMドライブ107に装着されるDVD−ROM等と同じ機能を果たすように構成してもよい。
【0046】
次に、本実施形態のゲームシステム200の機能的な構成について説明する。
図2は、ゲームシステム200の機能的な構成を説明するための図である。ゲームシステム200は、複数のゲーム装置210(図2では210A,210Bの2つ)から構成される。ゲーム装置210A,210Bは、上述の情報処理装置100と同等のハードウェア構成を有している。
【0047】
ゲーム装置210Aは、記憶部211A、抽出部212A、表示部213A、送信部214A、受信部215A、更新部216Aを備える。同様に、ゲーム装置210Bは、記憶部211B、抽出部212B、表示部213B、送信部214B、受信部215B、更新部216Bを備える。
【0048】
ゲームシステム200を構成するゲーム装置210のそれぞれは、相互に通信が可能である。通信モードには、アクセスポイントを介さずに無線LAN等で直接通信する“アドホックモード”と、アクセスポイントを介して通信する“インフラストラクチャモード”とがある。本実施形態では、アドホックモードにおいては、最大で4台のゲーム装置同士でアドホック通信が可能である。
【0049】
以下の説明では、本発明を理解しやすくするため、ゲームシステム200が2台のゲーム装置210A,210Bから構成されるものとする。ただし、ゲームシステム200を構成するゲーム装置の数は2台に限定されるわけではなく、3台以上のゲーム装置210から構成されてもよい。
【0050】
ゲーム装置210Aを操作する第1のプレイヤーと、ゲーム装置210Bを操作する第2のプレイヤーは、ゲームシステム200で行われるゲームを一緒にプレイすることができる。例えば、第1のプレイヤーが第1のプレイヤーキャラクターに指示を与え、第2のプレイヤーが第2のプレイヤーキャラクターに指示を与える。例えば、第1のプレイヤーと第2のプレイヤーが協力して共通の敵キャラクターと戦うゲームが行われる。
【0051】
プレイヤーが操作する対象となるキャラクターのことを“自キャラクター”という。第1のプレイヤーにとっての自キャラクターは第1のプレイヤーキャラクターであり、第2のプレイヤーにとっての自キャラクターは第2のプレイヤーキャラクターである。
【0052】
また、複数のプレイヤーが協力し合って同じゲームをプレイすることを“コーププレイ”という。協力し合うプレイヤーが操作するそれぞれのプレイヤーキャラクターのことを“コープキャラクター”という。
【0053】
コーププレイでゲームが行われる仮想空間には、各々のプレイヤーキャラクターと、1つ以上の敵キャラクターと、が配置される。例えば、N人(Nは2以上の整数)のプレイヤーがゲームに参加するとき、N個のプレイヤーキャラクターが仮想空間内に配置される。仮想空間全体のことを“ステージ”ともいう。
【0054】
ここで、ゲームシステム200で行われるゲームが扱う仮想空間について説明する。仮想空間(ステージ)は、複数の領域(リージョン)から構成される。それぞれの領域は、仮想空間を分割する論理的に分けられた空間である。例えば、プレイヤーキャラクターが様々な“街”を移動しながら所定のミッションを達成することを目的とするゲームにおいて、“街”の一つ一つが“領域”に相当する。
【0055】
図3は、3次元の仮想空間300の全体の概略を平面的に表した“マップ”の構成例を示す。仮想空間300は、第1領域310A、第2領域310B、第3領域310C、第4領域310D、第5領域310Eの5つに分割される。
【0056】
第1のプレイヤーキャラクター320Aは、第1のプレイヤーの指示に応じて、仮想空間300内を移動する。第1のプレイヤーキャラクター320Aは、第1領域310A〜第5領域310Eの5つの領域の間を自由に行き来することができる。同様に、第2のプレイヤーキャラクター320Bは、第2のプレイヤーの指示に応じて、仮想空間300内を移動する。第2のプレイヤーキャラクター320Bも、第1領域310A〜第5領域310Eの5つの領域の間を自由に行き来することができる。第1のプレイヤーキャラクター320Aと第2のプレイヤーキャラクター320Bは、同じ領域に存在することもできるし、異なる領域に存在することもできる。
【0057】
敵キャラクター330(図3では330A〜330Dの4つ)は、CPU 101の制御により、仮想空間300内を移動する。敵キャラクター330は、第1領域310A〜第5領域310Eの5つの領域の間を自由に行き来することができる。
【0058】
プレイヤーキャラクター320A(プレイヤーキャラクター320Bでもよい)の位置が、敵キャラクター330の位置から所定距離範囲内に入ると、プレイヤーキャラクター320Aは敵キャラクター330との戦闘状態になる。戦闘状態では、CPU 101は、第1のプレイヤーによる攻撃コマンドや防御コマンド等の入力を受け付ける。また、CPU 101は、所定のアルゴリズムにより敵キャラクター330による攻撃や防御の制御を行う。CPU 101は、攻撃コマンドや防御コマンド等に基づいて、プレイヤーキャラクター320Aの属性パラメータ(一般に“ライフ”と呼ばれる)と敵キャラクター330の属性パラメータを増減させる。例えば、プレイヤーキャラクター320Aのライフがゼロになる前に敵キャラクター330のライフがゼロになると、プレイヤーキャラクター320Aの勝ちである。逆に、敵キャラクター330のライフがゼロになる前にプレイヤーキャラクター320Aのライフがゼロになると、プレイヤーキャラクター320Aの負けである。
【0059】
各プレイヤーキャラクター320の仮想空間内における位置は、各プレイヤーの指示に基づいて移動する。敵キャラクター330の仮想空間内における位置は、ゲーム装置210の各CPU 101によって制御され、仮想空間内を移動する。プレイヤーキャラクター320の仮想空間内における位置と、敵キャラクター330の仮想空間内における位置は、ゲームシステム200を構成する各ゲーム装置210間において、所定のタイミングで同期が取られる。
【0060】
なお、仮想空間300を構成する領域の数や領域の分け方は本発明によって限定されない。
【0061】
次に、記憶部211A,211Bと、抽出部212A,212Bと、表示部213A,213Bと、送信部214A,214Bと、受信部215A,215Bと、更新部216A,216Bとについて詳しく説明する。以下の説明において、記憶部211Aと記憶部211Bは同等の構成を有するので、記憶部211Aと記憶部211Bをまとめて記憶部211と呼ぶ。抽出部212、表示部213、送信部214、受信部215、更新部216についても同様である。
【0062】
記憶部211は、各々のプレイヤーキャラクター320が配置される領域と、その領域内でのプレイヤーキャラクター320の各々の位置と、を記憶する。また、記憶部211は、敵キャラクター330が配置される領域と、その領域内での敵キャラクター330の位置と、を記憶する。敵キャラクター330が複数の場合には、記憶部211は、それぞれの敵キャラクター330について、敵キャラクター330が配置される領域と、その領域内での位置と、を記憶する。CPU 101とRAM 103が協働して記憶部211として機能する。
【0063】
図4は、RAM 103に記憶されるキャラクター情報400の構成例を示す図である。CPU 101は、キャラクターの区分と、キャラクターが配置されている領域の区分と、配置されている領域内における位置と、を対応付けてRAM 103に記憶する。1組のキャラクターと領域と位置とを対応付ける情報を“レコード”という。キャラクターが戦闘で負けてライフがゼロになった場合、CPU 101は、そのキャラクターに対応付けて、キャラクターが死んだことを示すフラグ値を更に記憶させてもよいし、そのキャラクターに対応するレコードをRAM 103から削除してもよい。
【0064】
抽出部212は、自キャラクターが存在する領域に配置されている他のプレイヤーキャラクター320と敵キャラクター330の位置を記憶部211から抽出する。CPU 101とRAM 103が協働して抽出部212として機能する。
【0065】
すなわち、ゲーム装置210AのCPU 101は、ゲーム装置210Aのプレイヤー(第1のプレイヤー)が操作する第1のプレイヤーキャラクター320Aが存在する領域を特定する。図3では、第1のプレイヤーキャラクター320Aが存在する領域は第1領域310Aである。
【0066】
また、ゲーム装置210AのCPU 101は、特定した領域に他のプレイヤーキャラクター320が配置されていれば、そのプレイヤーキャラクター320の位置をRAM 103から抽出する。図3では、第2のプレイヤーキャラクター320Bは第1領域310Aに存在しないので、ゲーム装置210AのCPU 101は、第2のプレイヤーキャラクター320Bに対応するレコードを読み出さなくてもよい。
【0067】
更に、ゲーム装置210AのCPU 101は、特定した領域に敵キャラクター330が配置されていれば、その敵キャラクター330の位置をRAM 103から抽出する。図3では、第1領域310Aに敵キャラクター330Aが存在するので、ゲーム装置210AのCPU 101は、敵キャラクター330Aの位置をRAM 103から抽出する。
【0068】
同様に、ゲーム装置210BのCPU 101は、ゲーム装置210Bのプレイヤー(第2のプレイヤー)が操作する第2のプレイヤーキャラクター320Bが存在する領域を特定する。図3では、第2のプレイヤーキャラクター320Bが存在する領域は第5領域310Eである。
【0069】
また、ゲーム装置210BのCPU 101は、特定した領域に他のプレイヤーキャラクター320が配置されていれば、そのプレイヤーキャラクター320の位置をRAM 103から抽出する。図3では、第1のプレイヤーキャラクター320Aは第5領域310Eに存在しないので、ゲーム装置210BのCPU 101は、第1のプレイヤーキャラクター320Aに対応するレコードを読み出さなくてもよい。
【0070】
更に、ゲーム装置210BのCPU 101は、特定した領域に敵キャラクター330が配置されていれば、その敵キャラクター330の位置をRAM 103から抽出する。図3では、第5領域310Eに敵キャラクター330Bが存在するので、ゲーム装置210BのCPU 101は、敵キャラクター330Bの位置をRAM 103から抽出する。
【0071】
表示部213は、抽出部212によって抽出されたプレイヤーキャラクター320の位置と敵キャラクター330の位置とに基づいて、自キャラクターが配置される領域を表す画像を生成してモニターに表示する。CPU 101と画像処理部108が協働して表示部213として機能する。
【0072】
より詳細には、各キャラクターの画像や背景の画像は、複数のボーン(キャラクターの骨格となる線分状オブジェクト)と、スキン(各ボーンに対応付けられる制御点を頂点としたポリゴンの集合によって表される面)と、を用いて表される。CPU 101は、各画像処理部108を制御して、キャラクターの制御点の位置に基づいてキャラクターを覆うスキンの形状を求め、仮想空間300内に配置されるスキンの形状を表す画像、すなわちキャラクターの画像を生成する。この画像を生成する処理は、一般にモデリングと呼ばれる。
【0073】
例えば、ゲーム装置210AのCPU 101は、画像処理部108を制御して、第1のプレイヤーキャラクター320Aが配置される第1領域310Aを表すポリゴン画像を生成してモニターに表示する。ゲーム装置210Aによって表示される画像には、敵キャラクター330Aの画像が含まれる。
【0074】
また、ゲーム装置210BのCPU 101は、画像処理部108を制御して、第2のプレイヤーキャラクター320Bが配置される第5領域310Eを表すポリゴン画像を生成してモニターに表示する。ゲーム装置210Bによって表示される画像には、敵キャラクター330Bの画像が含まれる。
【0075】
なお、CPU 101は、自キャラクターを俯瞰する三人称視点のゲームにおいては、自キャラクターを含む画像を生成する。CPU 101は、いわゆる一人称視点のゲームにおいては、自キャラクターを含まない画像を生成する。
【0076】
送信部214は、自キャラクターが存在する領域とその領域内における位置とを示す情報を、ゲームシステム200に含まれる他のゲーム装置210に送信する。CPU 101とNIC 109が協働して送信部214として機能する。
【0077】
すなわち、ゲーム装置210AのCPU 101は、第1のプレイヤーキャラクター320Aが存在する領域(図3では第1領域310A)と、その領域内における第1プレイヤーキャラクター320Aの位置座標とを、ゲーム装置210Bに送信する。同様に、ゲーム装置210BのCPU 101は、第2のプレイヤーキャラクター320Bが存在する領域(図3では第5領域310E)と、その領域内における第2プレイヤーキャラクター320Bの位置座標とを、ゲーム装置210Aに送信する。
【0078】
受信部215は、自キャラクター以外のプレイヤーキャラクター320が存在する領域とその領域内における位置とを示す情報を、ゲームシステム200に含まれる他のゲーム装置210から受信する。CPU 101とNIC 109が協働して受信部215として機能する。
【0079】
すなわち、ゲーム装置210AのCPU 101は、第2のプレイヤーキャラクター320Bが存在する領域(図3では第5領域310E)と、その領域内における第2プレイヤーキャラクター320Bの位置座標とを、ゲーム装置210Bから受信する。同様に、ゲーム装置210BのCPU 101は、第1のプレイヤーキャラクター320Aが存在する領域(図3では第1領域310A)と、その領域内における第1プレイヤーキャラクター320Aの位置座標とを、ゲーム装置210Aから受信する。
【0080】
更新部216は、ゲーム装置210のプレイヤーからの指示入力に基づいて、記憶部211に記憶されるキャラクター情報400のうち、自キャラクターが存在する領域と位置を示すレコードを更新する。
【0081】
つまり、ゲーム装置210Aの更新部216Aは、ゲーム装置210Aのプレイヤーからの指示入力に基づいて、ゲーム装置210Aの記憶部211Aに記憶されている、第1のプレイヤーキャラクター320Aが存在する領域と、その領域内における位置と、を更新する。同様に、ゲーム装置210Bの更新部216Bは、ゲーム装置210Bのプレイヤーからの指示入力に基づいて、ゲーム装置210Bの記憶部211Bに記憶されている、第2のプレイヤーキャラクター320Bが存在する領域と、その領域内における位置と、を更新する。したがって、ゲーム装置210Aの記憶部211Aに記憶される第1のプレイヤーキャラクター320Aに対応するレコードと、ゲーム装置210Bの記憶部211Bに記憶される第1のプレイヤーキャラクター320Aに対応するレコードと、の同期が取られる。
【0082】
また、更新部216は、受信部215によって受信されたプレイヤーキャラクター320の領域と位置を示す情報に基づいて、記憶部211に記憶されるキャラクター情報400のうち、自キャラクター以外の他のプレイヤーキャラクター320が存在する領域とその領域内における位置を示すレコードを更新する。
【0083】
つまり、ゲーム装置210Aの更新部216Aは、ゲーム装置210Bから受信した第2のプレイヤーキャラクター320Bが存在する領域とその領域内における位置とを用いて、記憶部211Aを更新する。同様に、ゲーム装置210Bの更新部216Bは、ゲーム装置210Aから受信した第1のプレイヤーキャラクター320Aが存在する領域とその領域内における位置とで記憶部211Bを更新する。したがって、ゲーム装置210Aの記憶部211Aに記憶される第2のプレイヤーキャラクター320Bに対応するレコードと、ゲーム装置210Bの記憶部211Bに記憶される第2のプレイヤーキャラクター320Bに対応するレコードと、の同期が取られる。
【0084】
また、更新部216は、記憶部211に記憶されるキャラクター情報400のうち、敵キャラクター330が存在する領域とその領域内における位置とを示す情報を、他のゲーム装置210と共通するように更新する。
【0085】
つまり、ゲーム装置210Aの更新部216Aは、ゲーム装置210Aの記憶部211Aに記憶されている敵キャラクター330が存在する領域及びその領域内における位置を、ゲーム装置210Bの記憶部211Bに記憶されている敵キャラクター330が存在する領域及びその領域内における位置と同じになるように、更新する。
【0086】
あるいは、ゲーム装置210Bの更新部216Bは、ゲーム装置210Bの記憶部211Bに記憶されている敵キャラクター330が存在する領域及びその領域内における位置を、ゲーム装置210Aの記憶部211Aに記憶されている敵キャラクター330が存在する領域及びその領域内における位置と同じになるように、更新する。
【0087】
例えば、ゲーム装置210Aとゲーム装置210Bのうちどちらか一方のゲーム装置の送信部214が、他方のゲーム装置へ、敵キャラクター330が存在する領域とその領域内における位置とを示す情報を送信する。敵キャラクター330が存在する領域とその領域内における位置とを示す情報を受信部215が受信すると、更新部216は、受信した領域と位置を示す情報で記憶部211を更新する。したがって、ゲーム装置210Aの記憶部211Aに記憶される敵キャラクター330に対応するレコードと、ゲーム装置210Bの記憶部211Bに記憶される敵キャラクター330に対応するレコードと、の同期が取られる。
【0088】
次に、本実施形態のゲームシステム200における、記憶部211に記憶されるキャラクター情報400の更新処理について説明する。
【0089】
図5は、記憶部211に記憶されるキャラクター情報400のうち、プレイヤーキャラクター320A,320Bが存在する領域と位置に対応するレコードを更新する処理を説明するためのフローチャートである。この更新処理は、例えば垂直同期などの定期的なタイミングで繰り返し実行される。
【0090】
まず、ゲーム装置210AのCPU 101は、ゲーム装置210Aを操作するプレイヤーから、プレイヤーキャラクター320Aを移動させる指示入力を受け付ける(ステップS501)。ユーザは、コントローラ105が備える十字キーなどを押圧することにより、プレイヤーキャラクター320Aを移動させる指示を入力する。
【0091】
ゲーム装置210AのCPU 101は、受け付けた指示入力に基づいて、RAM 103に記憶されるキャラクター情報400のうち、自キャラクター(ゲーム装置210A側のプレイヤーキャラクター320A)が存在する領域と位置を示すレコードを更新する(ステップS502)。
【0092】
ゲーム装置210AのCPU 101は、NIC 110を制御して、自キャラクターが存在する領域と位置をゲーム装置210B側に送信する(ステップS503)。
【0093】
ゲーム装置210BのCPU 101は、NIC 110を制御して、ゲーム装置210A側のプレイヤーキャラクター320Aが存在する領域と位置をゲーム装置210Aから受信する(ステップS504)。
【0094】
そして、ゲーム装置210BのCPU 101は、ゲーム装置210BのRAM 103に記憶されているキャラクター情報400のうち、ゲーム装置210A側のプレイヤーキャラクター320Aが存在する領域と位置を更新する(ステップS505)。
【0095】
以上の更新処理により、プレイヤーキャラクター320Aが存在する領域と位置を示すレコードの同期が取られる。この更新処理は、ゲーム装置210A,210Bの双方で行われる。つまり、図5において“ゲーム装置210A”と“ゲーム装置210B”を置き換えた同様の処理が、並列的に行われる。従って、プレイヤーキャラクター320Bが存在する領域と位置を示すレコードの同期も取られる。
【0096】
次に、敵キャラクター330が存在する領域と位置の更新処理について説明する。
図6は、記憶部211に記憶されるキャラクター情報400のうち、敵キャラクター330が存在する領域と位置に対応するレコードを更新する処理を説明するためのフローチャートである。この更新処理は、例えば垂直同期などの定期的なタイミングで繰り返し実行される。
【0097】
まず、ゲーム装置210AのCPU 101は、所定のアルゴリズムに従って、敵キャラクター330が存在する領域と位置を計算して更新する(ステップS601)。図3に示すように敵キャラクター330が複数存在する場合には、敵キャラクター330のそれぞれについて、領域と位置を計算して更新する。
【0098】
ゲーム装置210AのCPU 101は、NIC 110を制御して、敵キャラクター330が存在する領域と位置をゲーム装置210B側に送信する(ステップS602)。
【0099】
ゲーム装置210BのCPU 101は、NIC 110を制御して、敵キャラクター330が存在する領域と位置をゲーム装置210Aから受信する(ステップS603)。
【0100】
そして、ゲーム装置210BのCPU 101は、ゲーム装置210BのRAM 103に記憶されているキャラクター情報400のうち、敵キャラクター330が存在する領域と位置を更新する(ステップS604)。
【0101】
以上の更新処理により、敵キャラクター330が存在する領域と位置を示すレコードの同期が取られる。ゲーム装置210B側に記憶されるキャラクター情報400のうち敵キャラクター330に関するレコードは、ゲーム装置210A側に記憶されるレコードと一致するように同期が取られる。
【0102】
なお、ステップS601乃至S604において“ゲーム装置210A”と“ゲーム装置210B”を置き換えた同様の処理を行うようにしてもよい。言い換えれば、ゲーム装置210A側に記憶されるキャラクター情報400のうち敵キャラクター330に関するレコードが、ゲーム装置210B側に記憶されるレコードと一致するように同期が取られるようにしてもよい。
【0103】
次に、ゲーム装置210Aとゲーム装置210Bの双方で行われるゲーム処理について、図7のフローチャートを用いて説明する。
【0104】
まず、CPU 101は、キャラクター情報400から、自キャラクターが存在する領域内に配置されている他のプレイヤーキャラクター320と敵キャラクター330の位置を抽出する(ステップS701)。
【0105】
例えば、ゲーム装置210A側のCPU 101は、図3に示される仮想空間300において、自キャラクターすなわちプレイヤーキャラクター320Aが存在する第1領域310Aに、コーププレイの相手が操作するプレイヤーキャラクター320Bが配置されているか否かを判別する。
【0106】
第1領域310Aにプレイヤーキャラクター320Bが配置されている場合、ゲーム装置210AのCPU 101は、キャラクター情報400から、プレイヤーキャラクター320Bに関するレコードを抽出し、プレイヤーキャラクター320Bの位置を取得する。一方、第1領域310Aにプレイヤーキャラクター320Bが配置されていない場合、CPU 101は、プレイヤーキャラクター320Bに関するレコードを抽出しなくてもよい。
【0107】
また、第1領域310Aに敵キャラクター330A〜330Dのいずれかが配置されている場合、ゲーム装置210AのCPU 101は、キャラクター情報400から、該当する敵キャラクター330に関するレコードを抽出し、敵キャラクター330の位置を取得する。図3の例では、ゲーム装置210AのCPU 101は、敵キャラクター330Aの位置を取得する。一方、第1領域310Aにプレイヤーキャラクター320Bが配置されていない場合、CPU 101は、プレイヤーキャラクター320Bに関するレコードを抽出しなくてもよい。
【0108】
また例えば、ゲーム装置210B側のCPU 101は、図3に示される仮想空間300において、自キャラクターすなわちプレイヤーキャラクター320Bが存在する第5領域310Eに、コーププレイの相手が操作するプレイヤーキャラクター320Aが配置されているか否かを判別する。
【0109】
第5領域310Eにプレイヤーキャラクター320Aが配置されている場合、ゲーム装置210BのCPU 101は、キャラクター情報400から、プレイヤーキャラクター320Aに関するレコードを抽出し、プレイヤーキャラクター320Aの位置を取得する。一方、第5領域310Eにプレイヤーキャラクター320Aが配置されていない場合、CPU 101は、プレイヤーキャラクター320Aに関するレコードを抽出しなくてもよい。
【0110】
また、第5領域310Eに敵キャラクター330A〜330Dのいずれかが配置されている場合、ゲーム装置210BのCPU 101は、キャラクター情報400から、該当する敵キャラクター330に関するレコードを抽出し、敵キャラクター330の位置を取得する。図3の例では、ゲーム装置210BのCPU 101は、敵キャラクター330Bの位置を取得する。一方、第5領域310Eにプレイヤーキャラクター320Aが配置されていない場合、CPU 101は、プレイヤーキャラクター320Aに関するレコードを抽出しなくてもよい。
【0111】
次に、CPU 101は、ステップS701で抽出した他のプレイヤーキャラクター320の位置及び/又は敵キャラクター330の位置に基づいて、自キャラクターが存在する領域を表す画像を生成する(ステップS702)。
【0112】
例えば、ゲーム装置210AのCPU 101は、図3に示される仮想空間300において、プレイヤーキャラクター320Aが配置される第1領域310Aを表すポリゴン画像を、モデリングの手法を用いて生成する。この画像には、敵キャラクター330Aの画像が含まれる。
【0113】
ここで、ゲーム装置210AのCPU 101は、第1領域310A内に存在しないプレイヤーキャラクター320Bと敵キャラクター330B〜330Dの位置を取得する必要がなく、また、プレイヤーキャラクター320Bと敵キャラクター330B〜330Dについてモデリングを行う必要がない。
【0114】
また例えば、ゲーム装置210BのCPU 101は、図3に示される仮想空間300において、プレイヤーキャラクター320Bが配置される第5領域310Eを表すポリゴン画像を、モデリングの手法を用いて生成する。この画像には、敵キャラクター330Bの画像が含まれる。
【0115】
ここで、ゲーム装置210BのCPU 101は、第5領域310E内に存在しないプレイヤーキャラクター320Aと敵キャラクター330A,330C,330Dの位置を取得する必要がなく、また、プレイヤーキャラクター320Aと敵キャラクター330A,330C,330Dについてモデリングを行う必要がない。
【0116】
そして、CPU 101は、画像処理部108を制御して、ステップS702で生成された画像をモニターに表示する(ステップS703)。ゲーム装置210Aに接続されるモニターには、敵キャラクター330Aが配置されている第1領域310Aを表す画像が表示される。ゲーム装置210Bに接続されるモニターには、敵キャラクター330Bが配置されている第5領域310Eを表す画像が表示される。コーププレイの各プレイヤーは、同じゲームで異なる画像を見ながらゲームをプレイすることができる。
【0117】
本実施形態によれば、ゲーム装置210A,210Bは、モデリングを行う際の処理負担を軽減することができる。ゲーム装置210A,210Bのプレイヤーは、それぞれ異なるゲーム画像を見ながら同じゲームをプレイすることができる。プレイヤーキャラクター320の位置や敵キャラクター330の位置は、所定のタイミングで同期が取られるので、ゲーム装置210A側で表示される画像とゲーム装置210B側で表示される画像とに矛盾が生じるようなことはない。
【0118】
(実施形態2)
次に、本発明のその他の実施形態について説明する。上記実施形態では、ゲームシステム200を構成するゲーム装置210のそれぞれの機能的な構成は等価なものであるが、本実施形態では、“親機”と“子機”の2種類がある。以下、詳述する。
【0119】
図8は、ゲームシステム800の機能的な構成を説明するための図である。ゲームシステム800は、複数のゲーム装置810(図8では810A,810Bの2つ)から構成される。ゲーム装置810A,810Bは、上述の情報処理装置100と同等のハードウェア構成を有している。図8において、ゲーム装置810Aが親機であり、ゲーム装置810Bが子機である。
【0120】
図9は、本実施形態における敵キャラクター330の更新処理を説明するためのフローチャートである。
【0121】
本実施形態のようにゲームシステム800を構成するゲーム装置810が2台の場合、一方が親機として動作し、他方が子機として動作する。
【0122】
ゲームシステム800を構成するゲーム装置810が3台以上の場合、少なくとも1台のゲーム装置810が親機になり、その他のゲーム装置810が子機になればよい。
【0123】
例えば、複数のゲーム装置810のうち、ゲームシステム800で行われるゲームへ参加する旨の指示をプレイヤーから最も早く受け取ったゲーム装置810が親機になり、その他のゲーム装置810が子機になる。
【0124】
親機のゲーム装置810Aは、上述の記憶部211A、抽出部212A、表示部213A、送信部214A、受信部215A、更新部216Aに加えて、計算部217を更に備える。子機のゲーム装置810Bは、記憶部211B、抽出部212B、表示部213B、送信部214B、受信部215B、更新部216Bを備える。
【0125】
計算部217は、敵キャラクター330の移動先の領域と、敵キャラクター330の移動先の領域内における位置を計算する。CPU 101が計算部217として機能する。
【0126】
具体的には、CPU 101は、敵キャラクター330の移動先の領域に配置される全キャラクター(プレイヤーキャラクター320及び敵キャラクター330のすべて)の総数が所定の閾値を超えないように、敵キャラクター330の移動先の領域を計算する。
【0127】
一般に、描画対象となるキャラクターの数が多いほど、モデリングにより画像を生成する処理は重くなる。そこで、CPU 101は、描画対象となるキャラクターの数が多すぎることがないように、1つの領域内の全キャラクター数を閾値以下に保つのである。
【0128】
図10(a),(b)は、仮想空間300の一部を表すマップの例を示す。X番目の領域には、コーププレイのプレイヤーキャラクター320A,320Bと、敵キャラクター330A,330B,330Cと、が配置されている。また、X−1番目の領域には、敵キャラクター330Dが配置されている。
【0129】
まず、CPU 101は、それぞれの敵キャラクター330について、敵キャラクター330の移動先の領域と位置を計算する(ステップS901)。
【0130】
CPU 101は、移動先の領域内に既に配置されているすべてのキャラクターの数が上述の所定の閾値に達しているか否かを判別する(ステップS902)。
【0131】
移動先に既に配置されているすべてのキャラクターの数が閾値に達している場合(ステップS902;YES)、CPU 101は、移動先の領域内に既に配置されている敵キャラクター330のいずれかを他の領域に移動させる(ステップS903)。
【0132】
一方、移動先に既に配置されているすべてのキャラクターの数が閾値に達していない場合(ステップS902;NO)、CPU 101はステップS904に進む。
【0133】
例えば、図10(a)において、上述の所定の閾値を「5」に設定するとき、もしX−1番目の領域に配置されている敵キャラクター330DをX番目の領域に移動させると、X番目の領域には閾値以上の個数のキャラクターが存在することになる。そこで、CPU 101は、敵キャラクター330DをX番目の領域に移動させる場合には、図10(b)に示すように、敵キャラクター330A,330B,330Cのうちいずれか1つ以上を、X−1番目の領域又はX+1番目の領域に移動させることにより、領域内の全キャラクター数が閾値を超えないように制御する。
【0134】
なお、複数の敵キャラクター330が配置されている場合、CPU 101は、いずれの敵キャラクター330を他の領域に移動させてもよいが、敵キャラクター330の現在位置から移動先となる領域までの距離(移動距離)が最も短くなるように、移動対象の敵キャラクター330を選択し且つ移動先の領域を選択するとよい。
【0135】
また、CPU 101は、敵キャラクター330DをX番目の領域に移動させる場合には、敵キャラクター330A,330B,330Cのうちいずれか1つ以上を仮想空間800から消滅させてもよい。
【0136】
また、CPU 101は、1つの領域内に存在している全キャラクター数が既に閾値に達している場合には、その領域内への他のキャラクターの移動を禁止する(その領域内へ他のキャラクターを移動させない)ようにしてもよい。
【0137】
閾値の決め方は任意である。例えば、モデリングにより描画する処理の負荷の目安をゲーム制作者が予め測っておき、処理落ちやコマ落ち等が起こらない限界のキャラクター数を閾値に設定すればよい。
【0138】
なお、CPU 101は、敵キャラクター330がいずれかのプレイヤーキャラクター320との戦闘状態にない場合、その敵キャラクター330の位置を仮想空間(ステージ)300内でランダムに移動させてもよい。
【0139】
次に、CPU 101は、キャラクター情報400において敵キャラクター330が配置される領域と位置を示すレコードを更新する(ステップS904)。
【0140】
親機のCPU 101は、NIC 110を制御して、ステップS904で更新された敵キャラクター330の移動先の領域と位置を子機に送信する(ステップS905)。
【0141】
一方、子機のCPU 101は、NIC 110を制御して、親機から送信された敵キャラクター330の移動先の領域と位置を受信する(ステップS906)。
【0142】
また、子機のCPU 101は、ステップS906で受信された敵キャラクター330の移動先の領域と位置を用いて、子機のRAM 103に記憶されているキャラクター情報400を更新する(ステップS907)。
【0143】
本実施形態では、敵キャラクター330の位置は、ゲームシステム800の親機によって決定され、子機は親機から敵キャラクター330の位置を受信して同期を取る。
【0144】
本実施形態によれば、ゲーム装置810A,810Bは、描画対象となるキャラクター数が多くなりすぎないように制御することにより、モデリングを行う際の処理負担を軽減することができる。
【0145】
本発明は、上述した実施形態に限定されず、種々の変形及び応用が可能である。また、上述した実施形態の各構成要素を自由に組み合わせることも可能である。
【0146】
ゲーム装置210A,210B,810A,810Bの全部又は一部としてコンピュータを動作させるためのプログラムを、メモリカード、CD−ROM、DVD、MO(Magneto Optical disk)などのコンピュータ読み取り可能な記録媒体に格納して配布し、これを別のコンピュータにインストールし、上述の手段として動作させ、あるいは、上述の工程を実行させてもよい。
【0147】
さらに、インターネット上のサーバ装置が有するディスク装置等にプログラムを格納しておき、例えば搬送波に重畳させて、コンピュータにダウンロード等するものとしてもよい。
【0148】
以上説明したように、本発明によれば、ゲーム画像を描画する処理の負荷を軽減するために好適なゲーム装置、ゲーム処理方法、ならびに、プログラムを提供することができる。
【符号の説明】
【0149】
100 情報処理装置
101 CPU
102 ROM
103 RAM
104 インターフェース
105 コントローラ
106 外部メモリ
107 DVD−ROMドライブ
108 画像処理部
109 音声処理部
110 NIC
200,800 ゲームシステム
210,210A,210B,810,810A,810B ゲーム装置
211 記憶部
212 抽出部
213 表示部
214 送信部
215 受信部
216 更新部
217 計算部
300 仮想空間(ステージ)
310,310A〜310E 領域(リージョン)
320,320A,320B プレイヤーキャラクター
330,330A〜330D 敵キャラクター
400 キャラクター情報

【特許請求の範囲】
【請求項1】
複数のプレイヤーがそれぞれのゲーム装置を操作して、前記プレイヤーの指示対象のプレイヤーキャラクター(以下「自キャラクター」という。)を、複数の領域に分割される仮想空間内で移動させ、当該仮想空間内に配置される敵キャラクターと対戦させるゲームを実現するゲームシステムのいずれかのゲーム装置であって、
各々のプレイヤーキャラクターが配置される領域及び当該領域内での位置と、前記敵キャラクターが配置される領域及び当該領域内での位置と、を記憶する記憶部と、
前記記憶部を参照して、前記自キャラクターが存在する領域に配置されている他のプレイヤーキャラクター及び/又は敵キャラクターの位置を抽出する抽出部と、
前記抽出された他のプレイヤーキャラクター及び/又は敵キャラクターの位置に基づいて、前記自キャラクターが配置される領域を表す画像を生成して表示する表示部と、
前記自キャラクターの領域及び位置を他のゲーム装置に送信する送信部と、
前記自キャラクター以外の他のプレイヤーキャラクターの領域及び位置を前記他のゲーム装置から受信する受信部と、
前記記憶される領域及び当該領域内での位置を更新する更新部であって、
(a)前記ゲーム装置のプレイヤーからの指示入力に基づいて、前記自キャラクターの領域及び位置を更新し、
(b)前記受信されたプレイヤーキャラクターの領域及び位置に基づいて、前記自キャラクター以外のプレイヤーキャラクターの領域及び位置を更新し、
(c)前記敵キャラクターの領域及び位置を、前記他のゲーム装置と共通するように更新する、
更新部と、
を備えることを特徴とするゲーム装置。
【請求項2】
請求項1に記載のゲーム装置であって、
(p)当該ゲーム装置が前記複数のゲーム装置のうちの一のゲーム装置(以下「親機」という。)である場合、前記敵キャラクターの移動先の領域及び位置を計算する計算部を更に備え、前記送信部は、前記計算された敵キャラクターの領域及び位置を前記親機以外のゲーム装置(以下「子機」という。)に更に送信し、前記更新部は、前記計算された敵キャラクターの領域及び位置に基づいて前記記憶部を更新し、
(q)当該ゲーム装置が前記子機である場合、前記受信部は、前記親機から送信された敵キャラクターの領域及び位置を更に受信し、前記更新部は、前記受信された敵キャラクターの領域及び位置に基づいて前記記憶部を更新する、
ことを特徴とするゲーム装置。
【請求項3】
請求項2に記載のゲーム装置であって、
前記計算部は、前記敵キャラクターの移動先の領域に配置されるプレイヤーキャラクター及び敵キャラクターの数が所定の閾値を超えないように、前記敵キャラクターの移動先の領域を計算し、もしくは、前記敵キャラクターを消滅させる、
ことを特徴とするゲーム装置。
【請求項4】
複数のプレイヤーがそれぞれのゲーム装置を操作して、前記プレイヤーの指示対象のプレイヤーキャラクター(以下「自キャラクター」という。)を、複数の領域に分割される仮想空間内で移動させ、当該仮想空間内に配置される敵キャラクターと対戦させるゲームを実現するゲームシステムのいずれかのゲーム装置にて実行されるゲーム処理方法であって、
前記ゲーム装置は、各々のプレイヤーキャラクターが配置される領域及び当該領域内での位置と、前記敵キャラクターが配置される領域及び当該領域内での位置と、を記憶する記憶部と、抽出部と、表示部と、送信部と、受信部と、更新部と、を備え、
前記抽出部が、前記記憶部を参照して、前記自キャラクターが存在する領域に配置されている他のプレイヤーキャラクター及び/又は敵キャラクターの位置を抽出する抽出ステップと、
前記表示部が、前記抽出された他のプレイヤーキャラクター及び/又は敵キャラクターの位置に基づいて、前記自キャラクターが配置される領域を表す画像を生成して表示する表示ステップと、
前記送信部が、前記自キャラクターの領域及び位置を他のゲーム装置に送信する送信ステップと、
前記受信部が、前記自キャラクター以外の他のプレイヤーキャラクターの領域及び位置を前記他のゲーム装置から受信する受信ステップと、
前記更新部が前記記憶される領域及び当該領域内での位置を更新する更新ステップであって、前記更新部が、
(a)前記ゲーム装置のプレイヤーからの指示入力に基づいて、前記自キャラクターの領域及び位置を更新し、
(b)前記受信されたプレイヤーキャラクターの領域及び位置に基づいて、前記自キャラクター以外のプレイヤーキャラクターの領域及び位置を更新し、
(c)前記敵キャラクターの領域及び位置を、前記他のゲーム装置と共通するように更新する、
更新ステップと、
を備えることを特徴とするゲーム処理方法。
【請求項5】
複数のプレイヤーがそれぞれのコンピュータを操作して、前記プレイヤーの指示対象のプレイヤーキャラクター(以下「自キャラクター」という。)を、複数の領域に分割される仮想空間内で移動させ、当該仮想空間内に配置される敵キャラクターと対戦させるゲームを実現するゲームシステムのいずれかのコンピュータを、
各々のプレイヤーキャラクターが配置される領域及び当該領域内での位置と、前記敵キャラクターが配置される領域及び当該領域内での位置と、を記憶する記憶部、
前記記憶部を参照して、前記自キャラクターが存在する領域に配置されている他のプレイヤーキャラクター及び/又は敵キャラクターの位置を抽出する抽出部、
前記抽出された他のプレイヤーキャラクター及び/又は敵キャラクターの位置に基づいて、前記自キャラクターが配置される領域を表す画像を生成して表示する表示部、
前記自キャラクターの領域及び位置を他のゲーム装置に送信する送信部、
前記自キャラクター以外の他のプレイヤーキャラクターの領域及び位置を前記他のゲーム装置から受信する受信部、
前記記憶される領域及び当該領域内での位置を更新する更新部であって、
(a)前記ゲーム装置のプレイヤーからの指示入力に基づいて、前記自キャラクターの領域及び位置を更新し、
(b)前記受信されたプレイヤーキャラクターの領域及び位置に基づいて、前記自キャラクター以外のプレイヤーキャラクターの領域及び位置を更新し、
(c)前記敵キャラクターの領域及び位置を、前記他のゲーム装置と共通するように更新する、
更新部、
として機能させることを特徴とするプログラム。

【図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


【公開番号】特開2010−269047(P2010−269047A)
【公開日】平成22年12月2日(2010.12.2)
【国際特許分類】
【出願番号】特願2009−124914(P2009−124914)
【出願日】平成21年5月25日(2009.5.25)
【出願人】(506113602)株式会社コナミデジタルエンタテインメント (1,441)
【Fターム(参考)】