以下、添付図面を参照して、本発明の実施の形態について説明する。
図1は、この実施の形態にかかるネットワークゲームシステムの構成を示すブロック図である。図示するように、このネットワークゲームシステムは、複数(ここでは、3つのみを図示)のビデオゲーム装置100と、サーバ装置200とから構成される。ビデオゲーム装置100は、それぞれサーバ装置200にネットワーク151を介して接続される。
このネットワークゲームシステムで適用されるゲームでは、ビデオゲーム装置100を利用する各プレイヤは、全てのプレイヤに共通の仮想空間(ゲーム空間)に形成されたフィールド上で自己のプレイヤキャラクタ(以下、自プレイヤキャラクタとする)を移動させていくことによりゲームを進行していく。各プレイヤは、自プレイヤキャラクタと、他のプレイヤが動作させるプレイヤキャラクタ(以下、他プレイヤキャラクタとする)とでパーティーを形成し、そのパーティー毎にゲームを進行させる。
ゲームの進行は、主にパーティーがフィールド上を移動してそこで遭遇する敵キャラクタとのバトルを行うことによって行われる。そして、パーティーは、そのバトルにおいて敵キャラクタを倒すことによって経験値を得ることができる。これによって、プレイヤは自己のプレイヤキャラクタを強化することができ、さらに強力な敵キャラクタを倒すことができるようになる。
図2は、図1のビデオゲーム装置100の構成を示すブロック図である。図示するように、ビデオゲーム装置100は、装置本体101を中心として構築される。この装置本体101は、その内部バス119に接続された制御部103、RAM(Random Access Memory)105、ハードディスク・ドライブ(HDD)107、サウンド処理部109、グラフィック処理部111、DVD/CD−ROMドライブ113、通信インターフェイス115、及びインターフェイス部117を含む。
この装置本体101のサウンド処理部109は、スピーカーであるサウンド出力装置125に、グラフィック処理部111は、表示画面122を有する表示装置121に接続されている。DVD/CD−ROMドライブ113には、記録媒体(本実施の形態では、DVD−ROMまたはCD−ROM)131を装着し得る。通信インターフェイス115は、ネットワーク151に接続される。インターフェイス部117には、発光部160と受信部161とメモリーカード162とが接続されている。
制御部103は、CPU(Central Processing Unit)やROM(Read Only Memory)などを含み、HDD107や記録媒体131上に格納されたプログラムを実行し、装置本体101の制御を行う。制御部103は、現在時刻を計時する内部タイマを備えている。RAM105は、制御部103のワークエリアである。HDD107は、プログラムやデータを保存するための記憶領域である。サウンド処理部109は、制御部103により実行されているプログラムがサウンド出力を行うよう指示している場合に、その指示を解釈して、サウンド出力装置125にサウンド信号を出力する。
グラフィック処理部111は、制御部103から出力される描画命令に従って、フレームメモリ(フレームバッファ)112(図では、グラフィック処理部111の外側に描かれているが、グラフィック処理部111を構成するチップに含まれるRAM内に設けられる)に画像を展開し、表示装置121の表示画面122上に画像を表示するビデオ信号を出力する。グラフィック処理部111から出力されるビデオ信号に含まれる画像の1フレーム時間は、例えば30分の1秒である。
DVD/CD−ROMドライブ113は、記録媒体131に対しプログラム及びデータの読み出しを行う。通信インターフェイス115は、ネットワーク151に接続され、他のコンピュータとの通信を行う。入力装置163は、方向キー及び複数の操作ボタンを備え、方向キーの操作により後述するプレイヤキャラクタを移動させ、操作ボタンの操作により育成キャラクタに話しかける等の所定の処理を行わせるものである。方向キーは、カーソルの移動などのためにも用いられ、操作ボタンは、所定の指示を入力するために用いられる。
入力装置163は、受光部163aと、加速度センサ163bと、送信部163cを含んでいる。受光部163aは、発光部160に含まれる各LEDから照射された光を受光する。入力装置163の向きによって、受光部163aが光を受光できるLEDの数及び位置に違いが生じる。加速度センサ163bは、3軸以上の多軸加速度センサからなり、入力装置163の傾き及び3次元の動きを検出する。入力装置163は、また、方向キー及び複数の操作ボタンを備えている。
後述するプレイヤキャラクタの行動は、プレイヤによる方向キーの操作により順次選択され、特定の操作ボタンの操作により選択が確定する。入力装置163の操作の組合せにより、バトルにおいて敵キャラクタへの通常の攻撃よりも強力な攻撃となる必殺技を発動させることができる。また、必殺技を繰り出したプレイヤキャラクタは、大きくジャンプするなど通常の攻撃よりも派手なアクションを行うものとなっている。なお、この必殺技については、さらに後述する。
送信部163cは、入力装置163の状況に応じた赤外線信号、より詳しくは、受光部163aの受光状態、加速度センサ163bにより検出された入力装置163の傾き、並びに入力装置163の動く方向及び速度、方向キー及び操作ボタンからの入力に応じた赤外線信号を送信する。送信部163cから送信された赤外線信号は、入力装置163からの入力データとして受信部161により受信される。
インターフェイス部117は、受信部161により受信された入力データをRAM105に出力し、制御部103がそれを解釈して演算処理を実施する。インターフェイス部117は、また、制御部103からの指示に基づいて、RAM105に記憶されているゲームの進行状況を示すデータをメモリーカード162に保存させ、メモリーカード162に保存されている中断時のゲームのデータを読み出して、RAM105に転送する。
ビデオゲーム装置100でゲームを行うためのプログラム及びデータは、最初例えば記録媒体131に記憶されている。記録媒体131に記憶されているデータとしては、ゲーム空間に存在するオブジェクト(ゲーム空間に形成されたフィールド、自身及び他者のプレイヤキャラクタ、敵キャラクタ)を構成するためのグラフィックデータを全て含んでいる。
記録媒体131に記憶されたプログラム及びデータは、実行時にDVD/CD−ROMドライブ113により読み出されて、RAM105にロードされる。制御部103は、RAM105にロードされたプログラム及びデータを処理し、描画命令をグラフィック処理部111に出力し、サウンド出力の指示をサウンド処理部109に出力する。制御部103が処理を行っている間の中間的なデータは、RAM105に記憶される。
図3は、図1のサーバ装置200の構成を示すブロック図である。図示するように、サーバ装置200は、サーバ本体201を中心として構築される。サーバ本体201は、その内部バス219に接続された制御部203、RAM205、ハードディスク・ドライブ(HDD)207、DVD/CD−ROMドライブ213、通信インターフェイス215を含む。DVD/CD−ROMドライブ213には、記録媒体(DVD−ROMまたはCD−ROM)231を装着し得る。
制御部203は、CPU(Central Processing Unit)やROM(Read Only Memory)などを含み、HDD207や記録媒体231上に格納されたプログラムを実行し、サーバ装置200の制御を行う。制御部203は、現在時刻を計時する内部タイマを備えている。RAM205は、制御部203のワークエリアである。HDD207は、プログラムやデータを保存するための記憶領域である。通信インターフェイス215は、ネットワーク151に接続され、ビデオゲーム装置100のそれぞれとの通信を行う。
サーバ装置200でネットワークゲームを行うためのプログラム及びデータは、最初例えば記録媒体231に記憶され、ここからHDD207にインストールされる。そして、このプログラム及びデータは実行時にHDD207から読み出されて、RAM205にロードされる。制御部203は、RAM205にロードされたプログラム及びデータを処理し、ビデオゲーム装置100のそれぞれから送られてくるメッセージなどを元にネットワークゲームを進行させる。制御部203が処理を行っている間の中間的なデータは、RAM205に記憶される。
この実施の形態にかかるネットワークゲームでは、プレイヤキャラクタの移動空間としての仮想3次元空間にフィールドが形成されており、プレイヤは、入力装置163を操作してプレイヤキャラクタをフィールド上において移動させながらゲームを進行させていく。このフィールドが形成された仮想3次元空間における位置は、ワールド座標系(X,Y,Z)の座標によって一意に特定される。フィールド上に存在するオブジェクトのグラフィックデータは、いずれも各頂点の座標をワールド座標系の座標で示す複数のポリゴンによって構成されている。
プレイヤキャラクタは、各頂点の座標をローカル座標系(x,y,z)の座標で示す複数のポリゴンによって構成されている。プレイヤキャラクタは、そのほぼ中心の点を基準点として設定しており、仮想3次元空間における位置は、基準点のワールド座標系における座標で示される。また、プレイヤキャラクタの向きは、ローカル座標系の各軸がワールド座標系の各軸に対してなす角で表される。
そして、表示処理を行う際においては、視認範囲に含まれる全オブジェクトの特徴点(各ポリゴンの頂点)の座標がワールド座標系の座標に変換される。また、プレイヤキャラクタの進行方向は、現在のフレーム期間におけるプレイヤキャラクタの位置と前のフレーム期間におけるプレイヤキャラクタの位置関係に基づいて決められる。
各プレイヤのプレイヤキャラクタを含む仮想3次元空間内のキャラクタが、該空間を移動していく様子は、仮想カメラにより仮想3次元空間を透視変換することで表示画面122上に映し出され、プレイヤに認識されるものとなる。図4は、この透視変換の様子を模式的に示す。仮想3次元空間内に仮想カメラ301が置かれ、仮想スクリーン302上に投影された画像が表示画面122に表示される画像となる。
この仮想カメラ301の位置が視点303、仮想カメラ301の向きが視軸304、視点303と仮想スクリーン302の頂点の四隅を結んだ4本の直線が作る領域が視界305となる。仮想スクリーン302の大きさは固定であり、視界305の広さを決めれば仮想スクリーン302の位置が決まり、仮想スクリーン302の位置を決めれば視界305の広さが決まるという関係がある。
視軸305は、仮想スクリーン302の中心点を通るので、参照点(ここでは、プレイヤキャラクタ300の基準位置)が必ず表示画面の中心位置に来ることになる。また、視点303から視軸304の方向の所定距離にクリップ面306が定められ、クリッピング範囲、すなわち仮想3次元空間において透視変換により画像が生成される範囲(すなわち、視認範囲)は、視界305の範囲内において仮想スクリーン302からクリップ面306までの範囲となる。
なお、参照点とされるプレイヤキャラクタ300は、他プレイヤキャラクタが必殺技を繰り出している最中であり、この際にサーバ装置200から送信される占有カメラ情報(必殺技を繰り出している他プレイヤキャラクタを特定可能とする)を受信しているときには、当該必殺技を繰り出している他プレイヤキャラクタとなるが、それ以外の場合は、各ビデオゲーム装置100を利用するプレイヤによって操作される自プレイヤキャラクタとなる。
このように、仮想スクリーン302上に画像を投影するために用いられる座標系が視点座標系(X’,Y’,Z’)であり、視軸304の方向が視点座標系のZ’軸となる。ワールド座標系の座標(ローカル座標系の座標から変換された座標を含む)は、視点座標系の座標に変換されて、次に示す隠面消去の処理を含む透視変換の処理が行われる。
透視変換により仮想スクリーン302上に投影した画像を生成する場合には、前面に他の物体があって隠されてしまう面を消去する隠面消去を行う必要がある。隠面消去の方法としては、ここでは、Zバッファ法を用いるものとしている。制御部103は、ワールド座標系の座標を視点座標系の座標へ変換すると、各特徴点の座標をグラフィック処理部111に送るとともに、描画命令を出力する。この描画命令に基づいて、グラフィック処理部111は、各特徴点について前面にある点(Z’座標の小さな点)のデータ(Z’の値)が残るようにZバッファの値を更新し、更新の都度、当該点について画像データをフレームメモリ112に展開していく。
透視変換を行う前提として、仮想カメラ301の視点303の位置、視軸304の方向、視界305の大きさ(視点303から仮想スクリーン302までの距離)、及び視点303からクリップ面306までの距離(以下、クリッピング距離という)が決まっている必要がある(仮想スクリーン302の位置は、これらが決まると必然的に決まる)。
占有カメラ情報を受信していないときには、視点303の位置は、プレイヤキャラクタ300(自プレイヤキャラクタ)と所定方向に一定距離の位置に保たれ、プレイヤキャラクタ300に追随して移動する。視軸304の方向は、プレイヤキャラクタ300(自プレイヤキャラクタ)の基準点を必ず向くように一定に設定される。視界305の大きさ及びクリッピング距離は、基本的には同じ大きさに設定されているものとする。
一方、占有カメラ情報を受信しているときには、視点303の位置は、当該占有カメラ情報により示される位置に移動される(必殺技を終了するまでの間、当該必殺技を繰り出している他プレイヤキャラクタと所定方向に一定距離の位置に保たれ、当該他プレイヤキャラクタに追随して移動する)。視軸304の方向は、プレイヤキャラクタ300(必殺技を繰り出している他プレイヤキャラクタ)の基準点を必ず向くように一定に設定される。視界305の大きさ及びクリッピング距離は、基本的には同じ大きさに設定されているものとする。
従って、この実施の形態にかかるネットワークゲームシステムで提供されるゲームにおいて、仮想カメラ301を制御する基準となるプレイヤキャラクタ300が決定され、その位置が決定されれば、表示画面122に表示される仮想3次元空間の範囲が、一意に決定されることとなる。プレイヤキャラクタ300を含むプレイヤキャラクタのゲーム空間における位置及び動作状態は、後述するようにゲームサーバ装置200において管理されている。
次に、この実施の形態にかかるネットワークゲームを進行させるため、サーバ装置200において管理されるデータ、及びビデオゲーム装置100において記憶されるデータについて説明する。図5は、この実施の形態にかかるネットワークゲームを実行するためにサーバ装置200において管理されるテーブル群を示す図である。
図5(a)は、この実施の形態にかかるネットワークゲームに存在するパーティー毎の状態を管理したパーティー管理テーブル400である。図5(b)は、パーティー毎に生成され、パーティーを形成するキャラクタの位置、動作状態等の情報を管理するためのキャラクタ管理テーブル410である。
まず、図5(a)に示すパーティー管理テーブル400には、パーティー毎にパーティーID401と、参加キャラクタID402と、バトルフラグ403とが記憶される。パーティーID401は、フィールドに存在する各々のパーティーを一意に識別するための識別情報である。また、参加キャラクタID402は、そのパーティーを形成する全てのキャラクタID(後述する)が記憶される。バトルフラグ403は、パーティーがバトルに関する処理に拘束されているか否かを示すものであり、バトル中でON(1)となり、バトル中でなければOFF(0)となる。
続いて、図5(b)に示す、キャラクタ管理テーブル410には、パーティーを形成するキャラクタ毎に、少なくともキャラクタID411と、送信先アドレス412と、名前情報413、位置情報414と、動作状態情報415と、HP情報416とが記憶される。キャラクタID411は、フィールドに存在する各々のプレイヤキャラクタを一意に識別するための識別情報である。送信先アドレス412は、個々のプレイヤキャラクタを操作するビデオゲーム装置100を特定するために割り振られているIPアドレスが記憶されている。名前情報413は、プレイヤキャラクタの名前を表示画面122に表示するための情報として用いられる。
位置情報415は、プレイヤキャラクタのフィールド上、またはバトルフィールド上での位置を示す情報である。動作状態情報415は、プレイヤキャラクタがどのような動作状態(動作することによって変化する形態)となっているかを示す情報であり、各ビデオゲーム装置100から送信される動作情報に従って更新される。動作情報には、当該プレイヤキャラクタが必殺技を繰り出している間には、その旨を示す情報も付加される。
HP情報416は、プレイヤキャラクタのHP(各プレイヤキャラクタがゲーム空間において生存可能な値を示す能力値で、通常、これが0となるとゲームを継続できなくなる)の値を示す情報であり、ゲームの進行に応じて増加/減少させられるが、他のプレイヤキャラクタが必殺技を繰り出していて当該他のプレイヤキャラクタに占有カメラが設定されているときには、HP情報416が変化させられることはない(必殺技を繰り出している他のプレイヤキャラクタのHP情報416は変化され得る)。
一方、ビデオゲーム装置100において管理されるデータには、サーバ装置200から受信されるデータを除いて(このデータは、一時的にRAM105に記憶される)、本発明に特徴的なデータを含まないため、詳細な説明は省略する。もっとも、サーバ装置200から受信したデータとしてRAM105に占有カメラ情報が記憶されているときには、これに応じて仮想カメラ301の制御が変わるものとなる。
なお、この実施の形態のネットワークゲームシステムでは、各ビデオゲーム装置100を利用するプレイヤが入力装置163から入力した動作指示(例えば、方向キーの操作によりメニューから動作項目を選択し、○ボタンの操作で確定入力することで指示がなされる)に従って、制御部103が当該プレイヤのプレイヤキャラクタの動作状態を特定し、特定した動作状態を示す動作情報をサーバ装置200へと送信するものとしている。特定した動作状態が必殺技の開始から終了までの何れかの時点の動作状態である場合には、当該動作情報には必殺技を示す情報が付加されるものとなっている。
また、サーバ装置200から各ビデオゲーム装置100には、パーティー毎に、当該パーティーに属する各プレイヤキャラクタ(及び、バトルで対戦している各ノンプレイヤキャラクタ)の位置や動作状態を示すゲーム進行情報が送られるものとなっている。ここで、パーティー内に必殺技を繰り出しているプレイヤキャラクタ(自プレイヤキャラクタか他プレイヤキャラクタかを問わない)が存在する場合には、当該必殺技を繰り出しているプレイヤキャラクタを基準として仮想カメラ301を制御するための占有カメラ情報(当該プレイヤキャラクタのIDや仮想カメラ301を制御する位置の情報など)がゲーム進行情報に付加される。
次に、ビデオゲーム装置100においては、1フレーム期間毎にサーバ装置200から送信されたゲーム進行情報を取り込み(但し、取りこぼしがあった場合は、前フレームのゲーム進行情報を再び取り込む)、当該ゲーム進行情報に占有カメラ情報が付加されていなければ、当該ビデオゲーム装置100に対応したプレイヤキャラクタを基準として仮想カメラ301を制御するとともに、入力装置163から入力された動作指示を受け付けるものとする。
一方、取り込んだゲーム進行情報に占有カメラ情報が付加されていれば、当該ビデオゲーム装置100に対応したプレイヤキャラクタではなく、占有カメラ情報により特定されるプレイヤキャラクタを基準として仮想カメラ301を制御するとともに、入力装置163から入力された動作指示を受け付けないものとする。つまり、占有カメラ情報が付加されると、すなわち必殺技を繰り出している他プレイヤキャラクタが存在すると、自プレイヤキャラクタを基準とした画面から必殺技を繰り出している他プレイヤキャラクタを基準とした画面に切り替えられるが、その切り替えに際して、一定期間だけ所定の移行画面が表示されるものとなる。他プレイヤキャラクタを基準とした画面から自プレイヤキャラクタを基準とした画面に切り替えられる場合も同様に、所定の移行画面が表示される。
また、この実施の形態にかかるネットワークゲームシステムでは、必殺技を繰り出しているプレイヤキャラクタに所定の効果表示(例えば、当該プレイヤキャラクタの周囲にフレアを表示させるなど)が行われるが、如何なる効果表示を行うかを示す情報もゲーム進行情報に含まれているものとなっている。従って、パーティー内に必殺技を繰り出しているプレイヤキャラクタが存在する場合には、移行画面の表示がなされている(必殺技を繰り出しているプレイヤキャラクタを自キャラクタとするビデオゲーム装置100を除く)場合を除いて、当該パーティーを形成する全てのプレイヤキャラクタに対応した各ビデオゲーム装置100において、表示装置121に同じ画面が表示されるものとなる。
以下、この実施の形態にかかるネットワークゲームシステムにおいて実行される処理について説明する。図6は、ビデオゲーム装置100において実行される処理を示すフローチャートであり、図7は、サーバ装置200において実行される処理を示すフローチャートである。ビデオゲーム装置100において実行される処理は、図6のフローチャートに示すステップ以外の処理も含まれ、サーバ装置200において実行される処理は、図7のフローチャートに示すステップ以外の処理も含まれるが、図6、図7では、特に本発明に関して実行されるステップを示している(従来と同じに行われるステップは、省略している場合がある)。
ビデオゲーム装置100は、図6に示すフローチャートの処理を1フレーム期間毎に行う。ビデオゲーム装置100の制御部103は、当該フレーム期間の開始までにサーバ装置200から送信され、RAM105の受信バッファに保存されているゲーム進行情報をRAM105の所定領域に取り込む(ステップS101)。但し、当該フレーム期間の開始までにゲーム進行情報の受信を取りこぼしている場合には、前のフレームでRAM105の所定領域に取り込まれているゲーム進行情報を取り込んだものとしてそのまま処理を進める。
次に、制御部103は、ステップS101で取り込んだゲーム進行情報に占有カメラ情報が付加されているかどうかを判定する(ステップS102)。占有カメラ情報が付加されていれば、そのままステップS105の処理に進む。占有カメラ情報が付加されていなければ、制御部103は、当該フレーム期間の開始までに入力装置163から自プレイヤキャラクタに対する動作指示が入力されているかどうかを判定する(ステップS103)。動作指示が入力されていなければ、そのままステップS105の処理に進む。
動作指示が入力されていれば、制御部103は、当該動作指示をRAM105の所定領域に取り込み、これを受け付ける(ステップS104)。なお、ここでRAM105に取り込まれた動作指示は、当該動作指示に基づく自プレイヤキャラクタの動作を全て完了するまで、RAM105に記憶させたままとしておく。そして、ステップS105の処理に進む。
ステップS105では、制御部103は、当該フレーム期間においてRAM105に取り込まれたゲーム進行情報、及びRAM105に取り込まれている動作指示に応じて、自プレイヤキャラクタの動作状態を特定する。例えば、当該フレーム期間で初めて動作指示が取り込まれたならば、自プレイヤキャラクタに対して当該動作指示に応じた動作を開始させ、既に開始されている動作に対応した動作指示が未だRAM105に記憶されていれば、自プレイヤキャラクタに対して当該動作指示に応じた動作を継続させる。
なお、ステップS101において取り込んだゲーム進行情報に占有カメラ情報が付加されている場合には、入力装置163から動作指示の入力があってもこれが取り込まれないので自プレイヤキャラクタの動作を開始させないが、前のフレームまでに取り込まれた動作指示がRAM105に記憶されているときには、当該動作指示に応じた自プレイヤキャラクタの動作は継続されるものとなる。
そして、制御部103は、特定した自プレイヤキャラクタの動作と、この動作を行った後の自プレイヤキャラクタの位置とを示す動作情報(必殺技を繰り出している場合は、その旨を示す情報も含む)を通信インターフェイス115からネットワーク151を介してサーバ装置200に送信させる(ステップS106)。
次に、制御部103は、ステップS101で取り込んだゲーム進行情報に占有カメラ情報が付加されているかどうかを再び判定する(ステップS107)。占有カメラ情報が付加されていなければ、制御部103は、ゲーム進行情報が示す自プレイヤキャラクタの位置や動作状態に応じて仮想カメラ301を制御する。より具体的には、自プレイヤキャラクタの位置に応じて定められる所定の位置に仮想カメラの視点303の位置を設定し、自プレイヤキャラクタの基準点を参照点として仮想カメラ301の視軸304の方向を設定する(ステップS108)。仮想スクリーン302の位置やクリップ面306の位置は、これにより一意に定められる。そして、ステップS110の処理に進む。
占有カメラ情報が付加されていれば、制御部103は、ゲーム進行情報に付加されている占有カメラ情報に応じて仮想カメラを制御する。より具体的には、占有カメラ情報が示すプレイヤキャラクタ(自プレイヤキャラクタまたは他プレイヤキャラクタ)の位置に応じて定められる所定の位置に仮想カメラの視点303の位置を設定し、自プレイヤキャラクタの基準点を参照点として仮想カメラ301の視軸304の方向を設定する(ステップS109)。仮想スクリーン302の位置やクリップ面306の位置は、これにより一意に定められる。そして、ステップS110の処理に進む。
ステップS110では、制御部103は、ステップS101で取り込んだゲーム進行情報に従って表示画面122(実際には、次以降のフレームで表示装置121に表示されることとなる画面)を生成する。より具体的には、制御部103は、このような仮想カメラの設定により仮想空間に存在する各オブジェクト(視認範囲に含まれる自プレイヤキャラクタ及び他プレイヤキャラクタ、並びにフィールドの地形、効果表示用のオブジェクト)を仮想スクリーン302上に透視変換し、これらのオブジェクトを構成する各ポリゴンの頂点の座標を視点座標系の座標に変換する。その後、制御部103は、これらのオブジェクトを構成する各ポリゴンの情報(変換された視点座標系の座標を含む)とともに、描画命令をグラフィック処理部111に出力する。そして、当該フレーム期間においてビデオゲーム装置100の制御部103が実行する処理を終了する。
なお、制御部103からの描画命令を受け取ったグラフィック処理部111は、Zバッファを参照しながら、描画命令とともに渡された各ポリゴンの画像をフレームメモリ112に展開していく。グラフィック処理部111は、また、1フレーム期間毎にフレームメモリ112に展開された画像を読み出し、これに同期信号を付加したビデオ信号を表示装置121に出力する。これにより、表示画面122の中央に自プレイヤキャラクタ(占有カメラ情報がない場合)または必殺技を繰り出しているプレイヤキャラクタ(占有カメラ情報がある場合)が位置するゲーム画像が表示される。
一方、サーバ装置200は、図7に示すフローチャートの処理を1フレーム期間毎に(ビデオゲーム装置100における1フレーム期間と同じ時間間隔でということ)行う。サーバ装置200の制御部203は、当該フレーム期間の開始までに各々のビデオゲーム装置100から送信され、RAM205の受信バッファに保存されている動作情報をRAM205の所定の領域に取り込み(ステップS201)、これに従って、図5(b)のテーブルにおける各プレイヤキャラクタの位置情報414及び動作状態情報415を更新する(ステップS202)。
次に、制御部203は、必殺技を繰り出しているプレイヤキャラクタが存在するかどうかをパーティー毎に判定する(ステップS203)。必殺技を繰り出しているプレイヤキャラクタが存在しないパーティーに関しては、占有カメラの設定を行わずに、ステップS205の処理に進むものとする。必殺技を繰り出しているプレイヤキャラクタが存在するパーティーに関して、制御部203は、必殺技を繰り出しているプレイヤキャラクタに応じて占有カメラを設定し、その旨をRAM205に一時保存してから(ステップS204)、ステップS205の処理に進む。
ステップS205では、制御部203は、パーティー毎に、当該パーティーに属している各プレイヤキャラクタの位置や動作状態、さらには当該パーティーの付近に存在するノンプレイヤキャラクタの位置や動作状態を示すゲーム進行情報を生成する。必殺技を繰り出しているプレイヤキャラクタが存在するパーティーに関しては、ステップS204で設定した占有カメラに応じた占有カメラ情報をゲーム進行情報に含ませる。そして、制御部203は、生成したゲーム進行情報を、各ビデオゲーム装置100に送信する(送信されるゲーム進行情報は、各ビデオゲーム装置100を利用するプレイヤのプレイヤキャラクタが存在するパーティーのもの)。そして、当該フレーム期間においてサーバ装置200の制御部203が実行する処理が終了する。
以下、この実施の形態にかかるネットワークシステムを構成するビデオゲーム装置100の表示画面122に表示されるバトル中の表示画像、特にバトル中に何れかのプレイヤキャラクタが必殺技を発動した場合の表示画像を、具体的な例を示して説明する。図8は、各々のビデオゲーム装置100のバトル中における表示画面の具体的な例を示す図である。ここでは、パーティーを形成するプレイヤキャラクタとしてプレイヤキャラクタ301A〜301Dの4体が存在するものとし、そのうちのプレイヤキャラクタ301が敵キャラクタ302A〜302Cとのバトルにおいて必殺技を繰り出すものとする。
なお、以下では、必殺技を繰り出すプレイヤキャラクタに対応したビデオゲーム装置100をビデオゲーム装置Aとし、そうでないプレイヤキャラクタに対応したビデオゲーム装置100をビデオゲーム装置Bとして、ビデオゲーム装置A、Bの各々の表示装置121に同じタイミングで表示される表示画面122A、122Bを、(a)から(e)まで時系列で並べて説明するものとする。
まず、図8(a)のタイミングでは、パーティーを形成する何れのプレイヤキャラクタも未だ必殺技を繰り出していないものとする。ここでは、ビデオゲーム装置Aの表示画面122Aは、当該ビデオゲーム装置Aを利用するプレイヤにとっての自プレイヤキャラクタであるプレイヤキャラクタ301Aが中央に表示された(仮想カメラ301の視軸304がプレイヤキャラクタ301Aに向けられるため)画像となる。一方、ビデオゲーム装置Bの表示画面122Bは、当該ビデオゲーム装置Bを利用するプレイヤにとっての自プレイヤキャラクタであるプレイヤキャラクタ301Bが中央に表示された(仮想カメラ301の視軸304がプレイヤキャラクタ301Bに向けられるため)画像となる。
次に、図8(b)のタイミングで、ビデオゲーム装置Aのプレイヤが入力装置163を操作して自プレイヤキャラクタに必殺技を開始させたものとする。ここでは、ビデオゲーム装置Aの表示画面122Aは、当該ビデオゲーム装置Aを利用するプレイヤにとっての自プレイヤキャラクタであるプレイヤキャラクタ301Aが中央に表示された画像となる。一方、ビデオゲーム装置Bの表示画面122Bは、プレイヤキャラクタ301Bが中央に表示された画像からプレイヤキャラクタ301Aが中央に表示された画像へ切り替えるための移行画面の画像となる。
次に、図8(c)のタイミングで移行画面の表示を終了し、ビデオゲーム装置Aを利用するプレイヤにとっての自プレイヤキャラクタであるプレイヤキャラクタ301Aが、図8(b)で開始された必殺技を継続しているものとする。ここでは、ビデオゲーム装置Aの表示画面122Aは、当該ビデオゲーム装置Aを利用するプレイヤにとっての自プレイヤキャラクタであるプレイヤキャラクタ301Aが中央に表示された画像となる。一方、ビデオゲーム装置Bの表示画面122Bも、サーバ装置200から送られてくるゲーム進行情報に占有カメラ情報が含まれるため、プレイヤキャラクタ301Aが中央に表示された(仮想カメラ301の視軸304がプレイヤキャラクタ301Aに向けられるため)画像となる。
次に、図8(d)のタイミングで、ビデオゲーム装置Aを利用するプレイヤにとっての自プレイヤキャラクタであるプレイヤキャラクタ301Aが、図8(b)で開始された必殺技を完了したものとする。ここでは、ビデオゲーム装置Aの表示画面122Aは、当該ビデオゲーム装置Aを利用するプレイヤにとっての自プレイヤキャラクタであるプレイヤキャラクタ301Aが中央に表示された画像となる。一方、ビデオゲーム装置Bの表示画面122Bは、プレイヤキャラクタ301Aが中央に表示された画像からプレイヤキャラクタ301Bが中央に表示された画像へ切り替えるための移行画面の画像となる。
そして、図8(e)のタイミングで移行画面の表示を終了すると、図8(a)の場合と同様に、ビデオゲーム装置Aの表示画面122Aは、当該ビデオゲーム装置Aを利用するプレイヤにとっての自プレイヤキャラクタであるプレイヤキャラクタ301Aが中央に表示された画像となる。一方、ビデオゲーム装置Bの表示画面122Bは、当該ビデオゲーム装置Bを利用するプレイヤにとっての自プレイヤキャラクタであるプレイヤキャラクタ301Bが中央に表示された画像となる。
以上説明したように、この実施の形態にかかるネットワークゲームシステムでは、複数のビデオゲーム装置100を各々利用するプレイヤに対応する複数のプレイヤキャラクタがサーバ装置200の提供するゲームに参加しているが、ゲームに参加しているプレイヤキャラクタのうちの2以上のプレイヤキャラクタでパーティーが形成され、このパーティー全体で協力して敵キャラクタとのバトルを行うものとなっている。
各ビデオゲーム装置100では、ゲームの進行状況に応じて1フレーム期間毎にサーバ装置200から送信されるゲーム進行情報に基づいて、ゲームの進行状況を示す表示画面122を生成し、表示装置121に表示させるものとしている。ここで、各ビデオゲーム装置100の表示装置121に表示される表示画面は、通常、当該ビデオゲーム装置100を利用するプレイヤのプレイヤキャラクタを基準とした画面(すなわち、仮想カメラ301の視軸304を向けることで当該プレイヤキャラクタを中央に位置させる画面)となっている。
また、この実施の形態にかかるネットワークゲームシステムでは、サーバ装置200の提供するゲームに参加させられている各プレイヤキャラクタは、対応するビデオゲーム装置100を利用するプレイヤが入力装置163から入力した動作指示に従って動作させられる。そして、プレイヤが入力した動作指示によっては、プレイヤキャラクタがバトルにおいて必殺技を繰り出すこともできる。また、必殺技の有無に関する情報を含む動作情報が各ビデオゲーム装置100からサーバ装置200に送信され、サーバ装置200のテーブルに記憶されている各プレイヤキャラクタの位置情報414と動作状態情報415とが更新される。
ここで、サーバ装置200は、テーブルに記憶されている動作状態情報415を参照して必殺技を繰り出しているプレイヤキャラクタが存在するかどうかをパーティー毎に判定し、存在すると判定したパーティーに属するプレイヤの各ビデオゲーム装置100には、送信するゲーム進行情報に占有カメラ情報を含ませるものとしている。この占有カメラ情報は、パーティー内で必殺技を繰り出しているプレイヤキャラクタを特定し、当該必殺技を繰り出しているプレイヤキャラクタに応じて仮想カメラ301を制御させるための情報である。
各ビデオゲーム装置100においては、自プレイヤキャラクタではなくとも、パーティー内で必殺技を繰り出しているプレイヤキャラクタが存在して占有カメラ情報を受信しているときには、当該必殺技を繰り出しているプレイヤキャラクタを基準とした画面(すなわち、仮想カメラ301の視軸304を向けることで当該必殺技を繰り出しているプレイヤキャラクタを中央に位置させる画面)を表示装置121に表示させるものとしている。
必殺技は、通常の攻撃よりも敵キャラクタに対する強力な攻撃であり、そのアクションは、通常の攻撃のアクションよりも派手なアクションとなっている。つまり、必殺技を繰り出しているプレイヤキャラクタは、バトルの進行に対して重大な影響を及ぼすことになるが、この必殺技を繰り出しているプレイヤキャラクタが同じパーティーの全てのプレイヤによって見られることで、ゲームの臨場感が高まるものとなる。また、入力装置163からの動作指示の入力により自プレイヤキャラクタに必殺技を繰り出させたプレイヤにとっては、派手なアクションをする必殺技を同じパーティーの他のプレイヤにも見させることができるので、ゲームの中で誰よりも目立ちたい(自己のプレイヤキャラクタを目立たせたい)という欲求を満足させることができるものとなる。
また、必殺技を繰り出しているプレイヤキャラクタには、フレアなどの効果表示が付されるが、必殺技としてのアクションだけではなく、これに付随する効果表示も他のプレイヤにも見させることができるので、ゲームの臨場感をいっそう高めさせるとともに、ゲームの中で目立ちたいというプレイヤの欲求もいっそう満足させることができる。
また、必殺技を繰り出したプレイヤキャラクタが存在し、同じパーティーに属する全てのプレイヤのビデオゲーム装置100で必殺技を繰り出したプレイヤキャラクタを基準として画面が表示されている間は、入力装置163からの動作指示が受け付けられなくなる。これにより、必殺技を繰り出しているプレイヤキャラクタの派手なアクションが他のプレイヤキャラクタの動作によって邪魔されてしまうのを防ぐことができる。
また、必殺技を繰り出したプレイヤキャラクタ以外のプレイヤキャラクタに対しては何れにしても入力装置163からの動作指示が受け付けられなくなることから、ビデオゲーム装置100で必殺技を繰り出したプレイヤキャラクタを基準として画面が表示されて自プレイヤキャラクタが見えなくなってしまったところで、その操作に不都合が生じることはない。さらに、この間は、必殺技を繰り出したプレイヤキャラクタ以外のプレイヤキャラクタのHP情報416が増減されず、操作不能となっているうちに自プレイヤキャラクタが戦闘不能になってしまうこともないので、必殺技を繰り出したプレイヤキャラクタ以外のプレイヤキャラクタを操作するプレイヤに不満を感じさせてしまうのを防ぐことができる。
さらに、自プレイヤキャラクタを基準とした画面から必殺技を繰り出している他プレイヤキャラクタを基準とした画面への切り替えに際して、また、他プレイヤキャラクタを基準とした画面から自プレイヤキャラクタを基準とした画面に際して、一定期間だけ所定の移行画面が表示されるものとなっている。これにより、表示画面122の中央に表示されるプレイヤキャラクタが突然変わってしまってプレイヤが違和感を覚えてしまうといったことを防ぐことができる。
本発明は、上記の実施の形態に限られず、種々の変形、応用が可能である。以下、本発明に適用可能な上記の実施の形態の変形態様について説明する。
上記の実施の形態では、パーティー内で必殺技を繰り出しているプレイヤキャラクタに占有カメラを設定し、当該パーティーに属する全てのプレイヤキャラクタに対応したビデオゲーム装置100に、必殺技を繰り出しているプレイヤキャラクタを基準とした画面を表示させるものとしていた。もっとも、占有カメラの設定されるプレイヤキャラクタを選ぶ基準は、これに限るものではなく、何等かの特別な動作状態となっているプレイヤキャラクタに占有カメラを設定することができる。
例えば、その動作状態として所定のダンスを行っているプレイヤキャラクタが存在する場合に、この所定のダンスを行っているプレイヤキャラクタに占有カメラを設定するものとしてもよい。この場合、占有カメラが設定される所定のダンスを行っているプレイヤキャラクタ以外のプレイヤキャラクタについては、対応するプレイヤによる入力装置163の操作に関わらず、占有カメラが設定される所定のダンスを行っているプレイヤキャラクタの動作に合わせたものとすることができる。
例えば、所定のダンスを行っているプレイヤキャラクタ以外のプレイヤキャラクタが、所定のダンスを行っているプレイヤキャラクタのバックダンサーとなってダンス(全く同じ振り付けとしてもよく、振り付けに異なる部分があってもよい)を行ったり、所定のダンスを行っているプレイヤキャラクタに声援を送ったり、或いは、特別な動作をする訳ではないが所定のダンスを行っているプレイヤキャラクタの方を見たりするものとすることができる。
上記の実施の形態では、パーティー内に必殺技を繰り出しているプレイヤキャラクタが存在し、同じパーティーの他のプレイヤのビデオゲーム装置100において必殺技を繰り出している他プレイヤキャラクタを基準として画面が生成されるときには、必殺技を繰り出しているプレイヤキャラクタのHPは増減させられないものとしていた。もっとも、このような場合において、必殺技を繰り出しているプレイヤキャラクタ以外のプレイヤキャラクタがHPの増減だけではなくゲームにおける不利益を被らないように制御することができる。また、HPの増加などゲームにおいて利益を得られる制御であれば、パーティー内に必殺技を繰り出しているプレイヤキャラクタが存在する場合にも、これを行うものとすることもできる。
上記の実施の形態では、パーティー内で必殺技を繰り出しているプレイヤキャラクタに占有カメラが設定され、当該パーティーに属する全てのプレイヤキャラクタに対応したビデオゲーム装置100に必殺技を繰り出しているプレイヤキャラクタを基準とした画面が表示されている間においては、入力装置163から入力された動作指示が受け付けられないものとしていた。もっとも、既に受け付けられた動作指示に応じたプレイヤキャラクタの動作は完了させるものとしていたが、既に受け付けられた動作指示があったとしても、これに基づく動作を中断させる(必殺技が終われば再開される)、或いはその動作指示自体をキャンセルする(必殺技が終わっても動作が再開されない)ものとしてもよい。
また、上記の実施の形態のネットワークゲームシステムのように各ビデオゲーム装置100が動作指示の入力に基づいて当該ビデオゲーム装置100に対応するプレイヤキャラクタの動作を特定するのではなく、各ビデオゲーム装置100は、入力装置163から入力された動作指示そのものを示す情報を送信し、これを受け取ったサーバ装置200が、受け取った動作指示に基づいて各プレイヤキャラクタの動作を特定するものとしてもよい。
この場合において、サーバ装置200の制御部203は、パーティー内に必殺技を繰り出しているプレイヤキャラクタが存在すると判定したパーティーについては、当該必殺技を繰り出しているプレイヤキャラクタ以外のプレイヤキャラクタに対応する動作指示を示す情報を受け取っていても、これを動作させないものとすることができる。また、このような制御で動作させられなくなっているキャラクタも、HPの減少などのゲームにおける不利益を被らないようにすることができる。
上記の実施の形態では、占有カメラ情報に従って必殺技を繰り出しているプレイヤキャラクタを基準とした画面をパーティー内の各ビデオゲーム装置100において表示させるための仮想カメラ301の制御は、予め定められたものとなっていたが、このような場合の仮想カメラ301の制御は、各プレイヤが、自プレイヤキャラクタが必殺技を繰り出したときに如何に行うかを入力装置163からの入力により設定し、サーバ装置200のテーブルに登録しておくものとすることができる。
例えば、プレイヤAは、自プレイヤキャラクタが必殺技を繰り出したときには仮想カメラ301の視点303の位置を自プレイヤキャラクタの真上に置くものと設定し、プレイヤBは、自プレイヤキャラクタが必殺技を繰り出したときには仮想カメラ301の視点を自プレイヤキャラクタの正面に置くものと設定することができる。この場合、プレイヤAのプレイヤキャラクタが必殺技を繰り出しているときには、同じパーティー内の全てのプレイヤのビデオゲーム装置100においてプレイヤAのプレイヤキャラクタを真上から見た画像が表示され、プレイヤBのプレイヤキャラクタが必殺技を繰り出しているときには、同じパーティー内の全てのプレイヤのビデオゲーム装置100においてプレイヤBのプレイヤキャラクタを真正面から見た画像が表示されるものとなる。
この場合、プレイヤAのプレイヤキャラクタが必殺技を繰り出す場合とプレイヤBのプレイヤキャラクタが必殺技を繰り出す場合とで、必殺技の動作として同じであったとしても、同じパーティーの各ビデオゲーム装置100に表示される画面が異なるものとなる。これにより、ゲームの画面の表示態様が豊富になり、画面の面白みを増加させることができる。また、各プレイヤは、自己の好みに従って自プレイヤキャラクタの動作を他のプレイヤにも見せることができるので、ゲームの中で目立ちたいというプレイヤの欲求もいっそう満足させることができる。
また、占有カメラ情報に従って必殺技を繰り出しているプレイヤキャラクタを基準とした画面をパーティー内の各ビデオゲーム装置100において表示させるための仮想カメラ301の制御は、各プレイヤが、他プレイヤキャラクタが必殺技を繰り出したときに如何に行うかを入力装置163からの入力により設定しておくものとすることができる(サーバ装置200のテーブルへの登録は必要なし)。
例えば、プレイヤAは、仮想カメラ301の視点303の位置を必殺技を繰り出しているプレイヤキャラクタの真上に置くものと設定し、プレイヤBは、仮想カメラ301の視点を必殺技を繰り出しているプレイヤキャラクタの正面に置くものと設定することができる。この場合、プレイヤCのプレイヤキャラクタが必殺技を繰り出しているときには、プレイヤAのビデオゲーム装置100においてプレイヤCのプレイヤキャラクタを真上から見た画像が表示され、プレイヤBのビデオゲーム装置100においてプレイヤCのプレイヤキャラクタを真正面から見た画像が表示されるものとなる。
これにより、各プレイヤは、他プレイヤキャラクタが必殺技を繰り出して、自プレイヤキャラクタではなく他プレイヤキャラクタを基準とした画面が表示装置121に表示されるものとなっても、それを自分好みのものとするので、自プレイヤキャラクタを基準とした画面が表示されないことによる不満が少なくて済むことになる。また、必殺技を繰り出したプレイヤキャラクタのプレイヤは、同じパーティーの各ビデオゲーム装置100において表示される画面に違いはあるものの、何れにしても自プレイヤキャラクタを基準とした画面を他のプレイヤに見させることができるので、ゲームの中で目立ちたいというプレイヤの欲求を満足させることができる。
上記の実施の形態では、ビデオゲーム装置100の制御部103は、各フレーム期間において取り込んだゲーム進行情報に占有カメラ情報が付加されている場合には、入力装置163から自プレイヤキャラクタに対する動作情報が入力されていてもこれを無視し、入力された動作指示を受け付けないものとしていた。つまり、ゲーム進行情報に占有カメラ情報が付加されているフレーム期間では、入力装置163からの動作指示の入力が無効化されるものとなっていた。
これに対して、ゲーム進行情報に占有カメラ情報が付加されているフレーム期間でも、入力装置163からの動作指示の入力を受け付けるものとしてもよい。但し、この場合においては、受け付けた動作指示をRAM105に記憶させておくが、占有カメラ情報が付加されているフレーム期間において受け付けた動作指示に基づいては自プレイヤキャラクタの動作状態を特定しないものとし、当該動作指示に応じた動作情報がサーバ装置200に送信されないようにするものとする。
そして、新たなフレーム期間(次のフレーム期間だけとは限らない)において占有カメラ情報が付加されていないゲーム進行情報を受信した場合には、占有カメラ情報が付加されているフレーム期間において受け付けた動作指示に基づいても自プレイヤキャラクタの動作状態を特定するものとし、当該動作指示に応じた動作情報がサーバ装置200に送信されるようにすればよい。
すなわち、ゲーム進行情報に占有カメラ情報が付加されているフレーム期間において入力装置163から動作指示の入力があった場合には、占有カメラ情報が付加されていないゲーム進行情報を受信することとなるまで、当該動作指示に基づいて自プレイヤキャラクタを動作させるのを遅延させるものとすればよい。なお、このように入力された動作指示に基づく自プレイヤキャラクタの動作が遅延される場合も、その間においては、入力装置163からの動作指示の入力が無効化される場合と同様に、HP情報416が減らされるなどの不利益を受けないようにすることができる。
上記の実施の形態では、占有カメラ情報の有無に応じて自プレイヤキャラクタまたは必殺技を繰り出している他プレイヤキャラクタに視軸304を向けて、仮想カメラ301により仮想3次元空間を透視変換することでゲームの画面を生成する3次元ゲームを例として、本発明を説明した。もっとも、本発明は、2次元空間の一部をゲームの画面として表示させる2次元ゲーム(擬似的に立体的に見せる疑似3次元ゲームを含む)にも適用することができる。
例えば、2次元ゲームにおいて必殺技を繰り出しているプレイヤキャラクタがパーティー内に存在しないときには、各ビデオゲーム装置100における自プレイヤキャラクタを中心とした一定面積の領域をゲーム画面として表示させ、必殺技を繰り出しているプレイヤキャラクタがパーティー内に存在するときは、当該パーティーの何れのビデオゲーム装置100においても当該必殺技を繰り出しているプレイヤキャラクタを中心とした一定面積の領域をゲーム画面として表示させるものとしてもよい。
上記の実施の形態では、占有カメラを設定するか否かをパーティーを単位として定めるものとしていたが、例えば、RPGのような大人数が参加するゲームではなく、スポーツゲームや対戦格闘ゲームなどの参加人数が一定程度に限られているゲームでは、当該ゲーム全体を占有カメラを設定するか否かの単位として定め、例えば、必殺技のような特別な動作状態となっているプレイヤキャラクタが存在する場合には、当該ゲームに参加する各プレイヤが利用する全てのビデオゲーム装置100において、当該特別な動作状態となっているプレイヤキャラクタを基準として画面を生成させるものとしてもよい。
上記の実施の形態では、ネットワーク151を介してサーバ装置200に接続し、各プレイヤがゲームを進めるために用いる端末装置としてゲーム専用機であるビデオゲーム装置100を適用していた。これに対して、ビデオゲーム装置100と同様の構成要素を備え、画像を描画する機能を有するものであれば、汎用のパーソナルコンピュータなどを適用してもよい。表示装置121及びサウンド出力装置125を装置本体101と同一の筐体内に納めた構成を有する携帯ゲーム機(アプリケーションの実行機能を有する携帯電話機を含む)を適用するものとしてもよい。
記録媒体131としては、DVD−ROMやCD−ROMの代わりに半導体メモリカードを適用することができる。このメモリカードを挿入するためのカードスロットをDVD/CD−ROMドライブ113の代わりに設けることができる。汎用のパーソナルコンピュータの場合には、本発明に係るプログラム及びデータを記録媒体131に格納して提供するのではなく、HDD107に予め格納して提供してもよい。本発明にかかるプログラム及びデータを格納して提供するための記録媒体は、ハードウェアの物理的形態及び流通形態に応じて任意のものを適用することができる。
上記の実施の形態では、ビデオゲーム装置100のプログラム及びデータは、記録媒体131に格納されて配布されるものとしていた。これに対して、これらのプログラム及びデータをネットワーク151上に存在するサーバ装置(サーバ装置200と同じであっても、異なっていてもよい)が有する固定ディスク装置に格納しておき、装置本体101にネットワーク151を介して配信するものとしてもよい。ビデオゲーム装置100において、通信インターフェイス115がサーバ装置から受信したプログラム及びデータは、HDD107に保存し、実行時にRAM105にロードすることができる。さらに、サーバ装置200において用いられるプログラム及びデータも、ネットワーク151上に存在する他のサーバ装置が有する固定ディスク装置に格納しておき、装置本体201にネットワーク151を介して配信するものとしてもよい。