以下、添付図面を参照して、本発明の実施の形態について説明する。
図1は、この実施の形態にかかるネットワークゲームシステムの構成を示すブロック図である。図示するように、このネットワークゲームシステムは、複数(ここでは、4つのみを図示)のビデオゲーム装置100と、ゲームサーバ装置200とから構成される。ビデオゲーム装置100は、それぞれゲームサーバ装置200にネットワーク151を介して接続される。
このネットワークゲームシステムで適用されるゲームは、登録型のネットワークゲームであり、このゲームに参加するプレイヤは、自らの情報をゲームサーバ装置200に登録することで、プレイヤIDを取得する必要がある。プレイヤIDを取得したプレイヤは、当該プレイヤIDとパスワードとによるユーザ認証を経て、ゲームサーバ装置200の提供するゲームに参加することができる。
このネットワークゲームシステムで適用されるゲームでは、ビデオゲーム装置100を利用する各プレイヤは、キャラクタを構成する各部位毎(輪郭、髪型、眉、目、鼻、口など)に用意されたツールを組み合わせることで、プレイヤキャラクタの形態を指定し、自身のプレイヤキャラクタを作成することができる。プレイヤは、複数のプレイヤキャラクタを作成することができる。
作成されたプレイヤキャラクタの情報は、ゲームサーバ装置200に登録されるものとなる。ゲームサーバ装置200は、各プレイヤキャラクタ毎にキャラクタIDを発行するものとなる。一旦、ゲームサーバ装置200に登録されたプレイヤキャラクタの形態は、ゲームの進行過程で変化することはないものとする。
プレイヤがプレイヤキャラクタをゲームに参加させるためには、ゲームサーバ装置200から発行されたプレイヤID及びパスワードによって、ユーザ認証を受けプレイヤログイン状態とした後で、作成したプレイヤキャラクタからゲームに参加させるプレイヤキャラクタを指定し、当該プレイヤキャラクタをログインさせることとなる。
ビデオゲーム装置100を利用する各プレイヤは、全てのプレイヤキャラクタに共通の仮想3次元空間(ゲーム空間)に形成されたフィールド上で自身のプレイヤキャラクタを移動させていくことによりゲームを進行していく。仮想3次元空間においては、ログイン状態にある自身のプレイヤキャラクタの他に、他者のプレイヤキャラクタなどが存在する。プレイヤは、自らの操作する1のプレイヤキャラクタを、他者のプレイヤキャラクタと会話させるなどのアクションを起こすことができる。
なお、この実施の形態において、プレイヤログイン状態とは、プレイヤログイン処理によってビデオゲーム装置100を利用するプレイヤがプレイヤID及びパスワードによって認証された後、プレイヤログアウト処理によってビデオゲーム装置100を利用するプレイヤがゲームから退出するまでの期間を指すものとする。また、キャラクタログイン状態とは、プレイヤログイン状態にあるプレイヤのプレイヤキャラクタが、キャラクタログイン処理によってゲームに参加した後、キャラクタログアウト処理によって当該プレイヤキャラクタがゲームから退出するまでの期間を指すものとする。
これ以外の期間においては、例えビデオゲーム装置100とゲームサーバ装置200との間で何らかの情報が送受信されていても、ログアウト状態にあるものとする。また、この実施の形態においては説明を簡単にするため、ビデオゲーム装置100とゲームサーバ装置200との間の通信が、ログアウト処理を経ずに切断されてしまうことはないものとする。また、プレイヤログイン状態にあるプレイヤの全てのプレイヤキャラクタがログアウトした場合には、プレイヤログアウト処理が行われるものとする。
図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には、入力部(コントローラ)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秒である。
もっとも、ゲーム空間に存在するオブジェクトのうちで画像の表示対象となる視認範囲に含まれるオブジェクトを示す視認範囲情報は、ゲームサーバ装置200から15分の1秒毎にしか送られてこないため、グラフィック処理部111は、2フレーム毎(すなわち、15分の1秒毎)に1枚の画像を描画する。
DVD/CD−ROMドライブ113は、記録媒体131に対しプログラム及びデータの読み出しを行う。通信インターフェイス115は、ネットワーク151に接続され、他のコンピュータ(ゲームサーバ装置200)との通信を行う。入力部161は、方向キー、複数の操作ボタン、文字入力を行うキーボード、及び表示装置121上の座標位置を入力するマウスを備え、方向キーの操作により後述するプレイヤキャラクタを移動させ、操作ボタンの操作により所定の処理を行わせるものである。操作ボタンは、所定の指示を入力するために用いられる。マウスの移動操作により後述するカーソルを移動させ、クリック操作により該カーソルの付されている項目に応じた処理を行わせるために用いられる。キーボードは、プレイヤキャラクタの名前などのテキスト入力のために用いられる。
インターフェイス部117は、入力部161からの入力データをRAM105に出力し、制御部103がそれを解釈して演算処理を実施する。インターフェイス部117は、また、制御部103からの指示に基づいて、RAM105に記憶されているゲームの進行状況を示すデータをメモリーカード162に保存させ、メモリーカード162に保存されている中断時のゲームのデータを読み出して、RAM105に転送する。
ビデオゲーム装置100でゲームを行うためのプログラム及びデータは、最初例えば記録媒体131に記憶されている。記録媒体131に記憶されているデータとしては、ゲーム空間に存在するオブジェクト(ゲーム空間に形成されたフィールド、自身及び他者のプレイヤキャラクタ)を構成するためのグラフィックデータを全て含んでいる。従って、視認範囲と当該視認範囲に含まれる各オブジェクトの位置と、選択的な形態を有するオブジェクト(自身及び他者のプレイヤキャラクタ)についてはその形態を特定可能な情報とを受信できれば、ゲームサーバ装置200からグラフィックデータを受信しなくても、表示画面122として表示される画像を描画することができるものとなっている。
記録媒体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に記憶される。
このネットワークゲームシステムで適用されるゲームにおいて、各プレイヤは、最高で4つまでプレイヤキャラクタを作成し、ゲームサーバ装置200に登録することができる。プレイヤは、同時に複数のプレイヤキャラクタをゲームに参加させる(キャラクタログイン状態にする)ことができるが、同時に複数のプレイヤキャラクタをフィールド上で移動させることはできない。プレイヤは、キャラクタログイン状態にあるプレイヤキャラクタのうちからいずれか1つを、アクティブなキャラクタとして指定するものとなる。アクティブキャラクタのみが、プレイヤからの入力部161の操作による行動対象となる。
以下において、キャラクタログイン状態にあるプレイヤキャラクタのうち現在アクティブになっている1のプレイヤキャラクタを、特にアクティブキャラクタといい、アクティブになっていないプレイヤキャラクタを、特にノンアクティブキャラクタという。プレイヤログイン状態にある1のプレイヤにおいて、キャラクタログイン状態にあるプレイヤキャラクタが1の場合には、当該プレイヤキャラクタが自動的にアクティブキャラクタとして指定されるものとなる。アクティブキャラクタの指定及び変更については、詳しく後述するものとする。
この実施の形態にかかるネットワークゲームでは、プレイヤキャラクタの移動空間としての仮想3次元空間にフィールドが形成されており、プレイヤは、入力部161を操作してプレイヤキャラクタをフィールド上において移動させながらゲームを進行させていく。このフィールドが形成された仮想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の中心点を通るので、参照点(ここでは、アクティブキャラクタの基準位置)が必ず表示画面の中心位置に来ることになる。また、視点303から視軸304の方向の所定距離にクリップ面306が定められ、クリッピング範囲、すなわち仮想3次元空間において透視変換により画像が生成される範囲(すなわち、視認範囲)は、視界305の範囲内において仮想スクリーン302からクリップ面306までの範囲となる。
このように、仮想スクリーン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の大きさ及びクリッピング距離は、基本的には同じ大きさに設定されているものとする。
従って、この実施の形態にかかるネットワークゲームシステムで提供されるゲームにおいて、アクティブキャラクタ300の位置が決定されれば、表示画面122に表示される仮想3次元空間の範囲が、一意に決定されることとなる。アクティブキャラクタ300を含むプレイヤキャラクタのゲーム空間における位置は、後述するようにゲームサーバ装置200において管理されている。
次に、この実施の形態にかかるネットワークゲームシステムで提供されるゲームにおいて、表示画面122に表示される各種画面について例をあげて説明する。なお、以下では、プレイヤは既にゲームシステムにユーザ登録しているものとする。登録したプレイヤID及びパスワードによってゲームサーバ装置200において、該ビデオゲーム装置100を利用するプレイヤのユーザ認証が正常に行われたことで、プレイヤログイン処理が完了したこととなる。
ログインが認証されたプレイヤの利用するビデオゲーム装置100において、未だプレイヤキャラクタが作成されていなければ、該ビデオゲーム装置100の表示画面122には、プレイヤキャラクタを作成するためのキャラクタ作成画面が表示される。図5(a)は、キャラクタ作成画面の例を示す図である。この実施の形態において、プレイヤは、ゲーム中或いはゲーム再開時においてプレイヤキャラクタを作成することができないものとする。
キャラクタ作成画面には、作成用ツール選択表示枠1001、イメージ表示枠1002、ネーム入力フレーム1003、確定ボタン1004、カーソル1005が含まれる。表示画面122に表示されるいずれの画面においてもプレイヤは、入力部161のマウスの操作によってカーソル1005を表示画面122上において移動させることができる。カーソル1005の付されている項目が、入力部161(操作ボタン、方向キー、キーボード、マウスのクリック)の操作による操作対象となる。
作成用ツール選択表示枠1001には、プレイヤキャラクタの輪郭、髪型、眉、目、鼻、口など体を構成する部位毎に用意されている複数のツールが表示される。図5(a)では、キャラクタを構成する輪郭の部位に用意されたツールを例として示す。プレイヤは、入力部161のマウスの操作によってカーソル1005を、作成用ツール選択表示枠1001に表示された複数のツール間において移動させることができる。プレイヤは、作成用ツール選択表示枠1001に表示された部位の複数のツールのいずれかにカーソル1005を付して、クリックを行うことによって、該ツールにおいて、該部位におけるツールの選択を確定することができる。
イメージ表示枠1002には、作成用ツール選択表示枠1001においてカーソル1005の付されているツールにおいて選択を確定した場合にできるプレイヤキャラクタの形態のイメージが表示される。イメージ表示枠1002に表示されるイメージ図には、既にクリックによって選択が確定された部位のツールが固定された状態で、作成用ツール選択表示枠1001に表示されている部位のカーソル1005の付されているツールが反映される。
ネーム入力フレーム1003は、プレイヤキャラクタがゲームの世界で用いる名前を、プレイヤが入力するフレームである。プレイヤは、カーソル1005をネーム入力フレーム1003に付した状態で入力部161のキーボードを操作することで、プレイヤキャラクタの名前を入力することができる。なお、プレイヤは、自身のプレイヤキャラクタに対して同一のネームを登録することはできない。
プレイヤは、全ての部位においてツールの選択を確定し、ネームを入力した後に、カーソル1005を確定ボタン1004に付した状態でクリックすることで、プレイヤキャラクタの作成を完了することができる。この実施の形態では、1のプレイヤ(プレイヤID)において最高で4つまでプレイヤキャラクタをゲームサーバ装置200に登録させることができるので、4つのプレイヤキャラクタの作成が完了した場合には、表示画面122に「ゲームをスタートさせる」を選択可能な画面が表示される。
「ゲームをスタートさせる」が選択されると、作成したプレイヤキャラクタの登録を要求するキャラクタ登録要求情報(キャラクタ形態、ネームを含む)が、該ビデオゲーム装置100の通信インターフェイス115からゲームサーバ装置200に送信される。一方、未だ4つのプレイヤキャラクタの作成が完了していないと、次のプレイヤキャラクタの作成のために図5(a)と同様のキャラクタ作成画面が表示され、プレイヤは、新たなプレイヤキャラクタの作成を行うことができるものとなる。
ゲームサーバ装置200において、ビデオゲーム装置100からキャラクタ登録要求情報が受信されると、プレイヤキャラクタ毎にキャラクタIDが発行される。発行されたキャラクタIDを示すキャラクタID発行情報は、通信インターフェイス215から該ビデオゲーム装置100に送信される。
キャラクタID発行情報を受信したビデオゲーム装置100の表示画面122には、ゲームに参加させるプレイヤキャラクタを選択するためのキャラクタ選択画面が表示される。プレイヤは、ゲームに参加させるプレイヤキャラクタを1つずつ選択するものとなる。キャラクタ選択画面の一例を、図5(b)に示す。キャラクタ選択画面には、キャラクタ選択表示枠1006、キャラクタ詳細情報表示枠1007、ログインボタン1008、カーソル1005が含まれる。
キャラクタ選択表示枠1006には、作成されたプレイヤキャラクタの形態が一覧表示される。キャラクタ選択表示枠1006において、プレイヤは、作成したプレイヤキャラクタのうちからいずれか1つをゲームに参加させるキャラクタ(アクティブキャラクタ300)として選択するものとなる。プレイヤは、入力部161のマウスの操作によってカーソル1005を、キャラクタ選択表示枠1006に表示された複数のプレイヤキャラクタ間において移動させることができる。
キャラクタ詳細情報表示枠1007には、キャラクタ選択表示枠1006においてカーソル1005の付されている或いは、選択の確定されているプレイヤキャラクタについて登録されている情報(ネーム、仕事、HPなど)の詳細情報が表示される。なお、デフォルトでは、仕事、HPなどの詳細情報は、一律に設定されているものとなる。
所定のログイン条件を満たし(キャラクタ選択表示枠1006に表示された複数のプレイヤキャラクタのいずれかにカーソル1005を付してクリックを行うこと)、カーソル1005をログインボタン1008に付した状態でクリックが行われることで、当該プレイヤキャラクタについてマーク図柄(ここでは、●、▲、■、×の4種類のいずれか)が自動設定されるものとなる。そして、プレイヤキャラクタのゲームへのログインを要求するキャラクタログイン要求情報(キャラクタIDを含む)が、該ビデオゲーム装置100の通信インターフェイス115からゲームサーバ装置200に送信される。
ゲームサーバ装置200において、ビデオゲーム装置100からキャラクタログイン要求情報が受信されると、該プレイヤキャラクタのログインが認証される。ここで、ゲームサーバ装置200において、キャラクタログイン処理が完了したこととなる。
ゲームサーバ装置200において、ログインが認証されたプレイヤキャラクタ(アクティブキャラクタ300)の位置情報(キャラクタ管理テーブル500に登録されているキャラクタ位置504)から視認範囲情報が特定される。視認範囲情報には、視認範囲に含まれる各オブジェクト(ノンアクティブキャラクタ及び他者のプレイヤキャラクタ)の位置と、当該オブジェクト(ノンアクティブキャラクタ及び他者のプレイヤキャラクタ)の形態を特定可能な情報とが含まれるものとなる。特定された視認範囲情報は、ゲームサーバ装置200の通信インターフェイス215から該ビデオゲーム装置100に送信される。
視認範囲情報を受信したビデオゲーム装置100の表示画面122には、フィールド上にプレイヤキャラクタが配置(ここで、プレイヤキャラクタは、前回ログアウトを行った位置或いは初期位置に配置される)されたゲーム画面が表示される。ここで表示画面122に表示される画面の一例を、図5(c)に示す。この画面には、アクティブキャラクタ300、ゲーム画面1009、マップ表示部1010、タブ1011、ログアウトボタン1012、カーソル1005が含まれる。
図5(c)では、アクティブキャラクタ300としてネームがAAAのキャラクタ(以下、「AAA」キャラクタという。以下、ネームが***のキャラクタを「***」キャラクタという)が設定され、該「AAA」キャラクタにマーク●が設定されている。図5(c)では、「AAA」キャラクタのみがゲームにログイン(プレイヤキャラクタログイン状態にある)している。つまり、ノンアクティブキャラクタは設定されていない。
ゲーム画面1009には、仮想カメラ301の視点303から、視軸304をアクティブキャラクタ300(ここでは、「AAA」キャラクタ)の基準点に向けた、仮想3次元空間のフィールド上の画像が表示される。ゲーム画面1009の中央には、アクティブキャラクタ300が表示されるものとなる。プレイヤは、入力部161の方向キーの操作によって、ゲーム画面1009に表示されたアクティブキャラクタ300をフィールド上で入力方向に移動させることができる。
マップ表示部1010には、フィールドの地図が表示される。なお、マップ表示部1010に表示される範囲は、ゲーム画面1009に表示される範囲(透視範囲)よりも広いものとなる(例えば、フィールド全体)。プレイヤキャラクタのフィールド上における位置は、該プレイヤキャラクタに設定されたマーク(●、▲、■、×)でマップ表示部1010上に示される。プレイヤは、カーソル1005をマップ表示部1010に付した状態でクリックすることによって、マップ表示部1010の表示を消す、及びマップ表示部1010の表示サイズを変更(拡大・縮小)することができる。
タブ1011は、ログイン状態にあるプレイヤキャラクタ毎に設定される。未だ作成したプレイヤキャラクタの全てがログイン状態になければ、タブ1011には、ログイン状態にあるプレイヤキャラクタ毎に設定されるタブの他に、新たなプレイヤキャラクタを設定可能なNEWタブも設定される。タブ1011は、ログインを行ったプレイヤキャラクタ順に、右から左へと設定される。NEWタブは、プレイヤキャラクタ毎に設定されているタブの最も左に設定されるものとなる。
プレイヤキャラクタ毎に設定されるタブ1011には、当該プレイヤキャラクタのネームと、ログイン時に設定されたマークとが表示される。表示画面122において、プレイヤキャラクタ毎に設定されるタブ1011のうちいずれのタブ1011がアクティブキャラクタ300に対応するタブ1011であるかを識別できるようにするため、アクティブキャラクタ300として設定されているプレイヤキャラクタ300のタブ1011は、黒色で表示されるものとなる。図5(c)では、「AAA」キャラクタのみがログインしているため、黒色のタブ1011−1には、アクティブキャラクタ300である「AAA」キャラクタのネーム「AAA」と、マーク●が表示され、タブ1011−2には、「NEW」が表示される。
プレイヤは、カーソル1005をNEWタブに付した状態でクリックすることによって、新たにログイン状態とするプレイヤキャラクタを選択することのできる画面を表示画面122に表示することができる。ここで表示される画面は、図5(b)に示したキャラクタ選択画面と以下の点以外は、同じである。NEWタブのクリックによって表示される画面では、既にログイン状態にあるプレイヤキャラクタがキャラクタ選択表示枠1006に表示されないものとなる。また、NEWタブのクリックによって表示される画面に従って新たなプレイヤキャラクタをログインさせると、当該新たなプレイヤキャラクタがアクティブキャラクタ300となり、先にログインしていた他のプレイヤキャラクタ(アクティブキャラクタ300を含む)は、ノンアクティブキャラクタとなる。
カーソル1005をログアウトボタン1012に付した状態でクリックされることで、アクティブキャラクタ300のログアウト処理が行われるものとなる。キャラクタログイン状態にある全てのプレイヤキャラクタがログアウトした場合には、プレイヤのログアウト処理が行われるものとなる。
図5(d)は、4体のプレイヤキャラクタが順にログインを完了した場合を示す。ここでは、「AAA」キャラクタと、「BBB」キャラクタと、「CCC」キャラクタと、「DDD」キャラクタとがログインしている。タブ1011には、プレイヤキャラクタ毎に、タブ1011−1〜1011−4が設定されている。図5(d)では、1のプレイヤが最大で登録可能な4つのプレイヤキャラクタの全てがログインしているので、NEWタブは表示されない。最後にログインしたプレイヤキャラクタが「DDD」キャラクタであるとすると、ネーム「DDD」及びマーク×の表示されているタブ1011−4が黒色で表示される。
プレイヤは、カーソル1005をアクティブキャラクタ300に対応する(黒色、ネーム及びマークの表示されている)タブ1011以外のタブ1011に付した状態でクリックすることによって、当該タブ1011に対応する(ネーム及びマークの表示されている)プレイヤキャラクタを新たなアクティブキャラクタ300として設定することができる。アクティブキャラクタ300が変更されれば、新たにアクティブキャラクタ300となったプレイヤキャラクタの位置情報に応じて仮想カメラ301の視点303の位置も変化する。
図5(d)では、アクティブキャラクタ300として設定されている「DDD」キャラクタが、ゲーム画面1009の中央に位置して表示されている。図5(d)では、アクティブキャラクタ300の位置情報に応じてゲームサーバ装置200から受信した視認範囲情報に、他者のプレイヤキャラクタ1013−1と、自身のプレイヤキャラクタである「BBB」キャラクタ1013−2とが含まれる。表示画面122に表示される自身のプレイヤキャラクタのうち、アクティブキャラクタ300以外のプレイヤキャラクタには、ネームプレート1014が付して表示される。他者のプレイヤキャラクタには、ネームプレート1014は付されない。ネームプレート1014には、該プレイヤキャラクタのネームが表示されるものとなる。
図5(d)において、ネーム「BBB」及びマーク▲の表示されているタブ1011−2がクリックされると、表示画面122は図5(e)に示すようになる。図5(e)では、アクティブキャラクタ300は、「DDD」キャラクタから「BBB」キャラクタに変更され、仮想カメラ301の視点303は、「BBB」キャラクタの位置情報に応じて設定されるので、「BBB」キャラクタがゲーム画面1009の中央に位置して表示される。
図5(e)では、アクティブキャラクタ300の位置情報に応じてゲームサーバ装置200から受信された視認範囲情報に、他者のプレイヤキャラクタ1013−1と、自身のプレイヤキャラクタである「DDD」キャラクタ1013−3とが含まれる。ゲーム画面1009において自身のプレイヤキャラクタである「DDD」キャラクタには、ネームプレート1014が付して表示されるが、他者のプレイヤキャラクタであるキャラクタ1013−1には、ネームプレート1014は、付して表示されないものとなる。
次に、この実施の形態にかかるネットワークゲームシステムにおいて、ゲームサーバ装置200に管理されているデータについて説明する。図6(a)、(b)に示すデータは、アクティブキャラクタ300の変更に対してゲームサーバ装置200において特に管理することが必要なデータだけであり、他に必要なデータについては、適宜説明を加えていくものとする。
図6(a)は、ゲームサーバ装置200内のRAM205に設けられたプレイヤ管理テーブルを示す図である。図示するように、プレイヤ管理テーブル400には、プレイヤID401と、パスワード(PW)402と、ハンドルネーム403と、プレイヤログインフラグ404と、キャラクタテーブルアドレス405とがプレイヤ毎に登録される。キャラクタテーブルアドレス405は、当該プレイヤについて作成されたキャラクタ管理テーブルの先頭アドレスを示す。
プレイヤID401は、各プレイヤを一意に識別する識別情報である。パスワード402は、プレイヤログイン要求のあったプレイヤに対してユーザ認証を行うために用いられ、プレイヤログイン要求情報とともに送信されたプレイヤID及びパスワードの組み合わせがプレイヤ管理テーブル400に登録されたプレイヤID401及びパスワード402の組み合わせに一致すると、そのプレイヤがユーザ認証される。ユーザ認証されたプレイヤは、ログインさせるキャラクタを選択することで、当該プレイヤキャラクタをゲームに参加させることが可能となる。
ハンドルネーム403は、各プレイヤがゲームの世界で用いる名前であり、異なるプレイヤに対して同一のハンドルネーム403が登録されることはない。プレイヤログインフラグ404は、プレイヤログイン状態にあるプレイヤに対してセットされるフラグである。プレイヤログインフラグ404は、該プレイヤがユーザ認証された際にセットされ、プレイヤログアウト(全プレイヤキャラクタのログアウト)を行った際にリセットされる。
図6(b)は、ゲームサーバ装置200内のRAM205に設けられたキャラクタ管理テーブルを示す図である。キャラクタ管理テーブル500は、プレイヤ毎に作成されるものとなる。図示するように、キャラクタ管理テーブル500には、キャラクタID501と、ネーム(Name)502と、キャラクタ形態503と、キャラクタ位置504と、キャラクタ向き505と、セーブ情報506と、アクティブフラグ507と、キャラクタログインフラグ508とがプレイヤキャラクタ毎に登録される。一人のプレイヤが同時に最高4つまでプレイヤキャラクタを登録することが可能であるので、プレイヤ毎に4つまでプレイヤキャラクタを登録することのできるスペースが設けられている。
キャラクタID501は、各プレイヤキャラクタを一意に識別する識別情報である。ネーム502は、各プレイヤキャラクタがゲームの世界で用いる名前である。異なるプレイヤの作成したプレイヤキャラクタにおいて同一のネーム502が登録される場合はあるが、1のプレイヤの作成したプレイヤキャラクタにおいて同一のネーム502が登録されることはない。キャラクタ形態503は、該プレイヤがゲームを行う際に用いるプレイヤキャラクタの形態を示す。キャラクタ形態503には、ゲームに初めて参加する際にプレイヤが決めた輪郭や服装などが登録される。
キャラクタ位置504は、ゲーム空間におけるプレイヤキャラクタの位置を、ゲーム空間に設定された座標で示すものである。キャラクタ向き505は、プレイヤキャラクタが向いている方向を、例えば、ゲーム空間における所定の方向を基準方向(0度の方向)として0〜359度の範囲で示すものである。
セーブ情報506は、該プレイヤキャラクタが過去にゲーム空間で行ったプレイ情報を示すものである。セーブ情報506には、該プレイヤキャラクタが最後にログアウトした際のゲーム空間におけるプレイヤキャラクタの位置(最終ログアウト地点)や日時などが含まれる。未だゲーム空間に参加していないプレイヤキャラクタに対しては、セーブ情報506は登録されていない。
アクティブフラグ507は、アクティブに設定されているプレイヤキャラクタに対してセットされるフラグである。1のプレイヤID401について設けられたキャラクタ管理テーブル500において複数のアクティブフラグ507がセットされることはない。キャラクタログインフラグ508は、キャラクタログイン状態にあるプレイヤキャラクタに対してセットされるフラグである。キャラクタログインフラグ508は、該プレイヤキャラクタのキャラクタログインが行われた際にセットされ、キャラクタログアウトが行われた際にリセットされる。
次に、この実施の形態にかかるネットワークゲームシステムにおいて、ゲームサーバ装置200からキャラクタ管理テーブル500に登録した情報(キャラクタID501〜セーブ情報506)を受信したビデオゲーム装置100において管理されるデータについて説明する。図7に示すデータは、アクティブキャラクタ300の変更に対してビデオゲーム装置100において特に管理することが必要なデータだけであり、他に必要なデータについては、適宜説明を加えていくものとする。
図7は、ビデオゲーム装置100内のRAM105に登録されたキャラクタテーブルの例を示す図である。図示するように、キャラクタテーブル600には、キャラクタID601と、ネーム(Name)602と、キャラクタ形態603と、キャラクタ位置604と、キャラクタ向き605と、セーブ情報606と、アクティブフラグ607と、タブナンバー608と、マーク609とがプレイヤキャラクタ毎に登録される。
キャラクタテーブル600におけるキャラクタID601からセーブ情報606までは、キャラクタ管理テーブル500におけるキャラクタID501からセーブ情報506にそれぞれ対応する。
タブナンバー608は、該プレイヤキャラクタに設定されているタブのナンバーを示す。タブナンバー608は、該プレイヤキャラクタがキャラクタログインを行った際に、その時点でのMAXタブナンバーが設定され、キャラクタログアウトを行った際に消去される。マーク609は、該プレイヤキャラクタに設定されているマークの種類(●、▲、■、×のいずれか)を示す。マーク609は、該プレイヤキャラクタがキャラクタログインを行った際に、自動設定され、キャラクタログアウトを行った際に消去される。1のビデオゲーム装置100において、同じマーク609が同時に複数のプレイヤキャラクタに設定されることはない。
以下、図1、図3に示したゲームサーバ装置200において、この実施の形態にかかるネットワークゲームを行うための処理について説明する。図8は、ゲームサーバ装置200において実行されるメイン処理を示すフローチャートである。ゲームサーバ装置200において実行される処理は、図8のフローチャートに示すステップ以外の処理も含まれるが、図8では、特に本発明に関して実行されるステップを示している。
ゲームサーバ装置200において、制御部203は、その内部タイマが15分の1秒毎の時間を計時したかどうかを判定する(ステップS1)。内部タイマが15分の1秒毎の時間を計時した場合には、制御部203は、プレイヤログイン状態にあり(すなわち、プレイヤ管理テーブル400においてプレイヤログインフラグ404がセットされている)、少なくとも1体のプレイヤキャラクタがキャラクタログイン状態にある(すなわち、該プレイヤID401について設けられたキャラクタ管理テーブル500においてキャラクタログインフラグ508がセットされている)各プレイヤについて、アクティブキャラクタ300(すなわち、キャラクタ管理テーブル500においてアクティブフラグ507のセットされているキャラクタ)の位置情報(キャラクタ位置504)に従って視認範囲を特定する。
制御部203は、特定した各視認範囲に含まれる各オブジェクト(ノンアクティブキャラクタ及び他者のプレイヤキャラクタ)の位置と、当該オブジェクト(ノンアクティブキャラクタ及び他者のプレイヤキャラクタ)の形態を特定可能な情報と含む視認範囲情報を生成して、通信インターフェイス215から該プレイヤの利用するビデオゲーム装置100に送信する(ステップS2)。そして、ステップS1の処理に戻る。
ステップS1で内部タイマが15分の1秒毎の時間を計時していない場合には、制御部203は、いずれかのビデオゲーム装置100(プレイヤログイン前のものを含む)から何らかの情報を受信しているかどうかを判定する(ステップS3)。いずれのビデオゲーム装置100からも情報を受信していなければ、そのままステップS1の処理に戻る。
いずれかのビデオゲーム装置100から何らかの情報を受信している場合には、制御部203は、該受信した情報が、プレイヤのログイン要求を示すものであるかどうかを判定する(ステップS4)。受信した情報がプレイヤログイン要求情報であれば、制御部203は、当該プレイヤログイン要求情報とともに送信されたプレイヤID及びパスワードを、プレイヤ管理テーブル400に登録されているプレイヤID401及びパスワード402と比較して、該ビデオゲーム装置100のプレイヤについてユーザ認証を行う(ステップS5)。
その結果として、該プレイヤがゲームへの参加資格を有する正当なプレイヤであると認証されたかどうか(当該プレイヤログイン要求情報とともに送信されたプレイヤID及びパスワードと、プレイヤ管理テーブル400に登録されているプレイヤID401及びパスワード402とが一致するかどうか)を判定する(ステップS6)。
プレイヤログイン要求情報とともに送信されたプレイヤID及びパスワードがプレイヤ管理テーブル400に登録されてない場合、或いは、プレイヤログイン要求情報とともに送信されたプレイヤID及びパスワードがプレイヤ管理テーブル400に登録されているプレイヤID401及びパスワード402と一致しない場合は、該プレイヤを認証し得ない場合であり、制御部203は、該ビデオゲーム装置100からのプレイヤのログインを拒否して、そのままステップS1の処理に戻る。なお、制御部203は、プレイヤを認証し得ない場合に、その旨を示す情報を、通信インターフェイス215から当該プレイヤの利用するビデオゲーム装置100に送信するものとしてもよい。
プレイヤログイン要求情報とともに送信されたプレイヤID及びパスワードがプレイヤテーブル400に登録されていて、該プレイヤを認証し得る場合には、制御部203は、当該プレイヤのログインを許可し、当該プレイヤについてプレイヤ管理テーブル400にプレイヤログインフラグ404をセットする(ステップS7)。そして、制御部203は、当該プレイヤIDに設けられたキャラクタ管理テーブル500において作成したプレイヤキャラクタの情報が登録されているかどうかを判定する(ステップS8)。
作成したプレイヤキャラクタの情報が登録されている場合には、制御部203は、プレイヤログイン許可情報(該プレイヤID401について設けられたキャラクタ管理テーブル500のキャラクタID501〜セーブ情報506を含む)を、通信インターフェイス215から当該プレイヤの利用するビデオゲーム装置100に送信する(ステップS9)。そして、ステップS1の処理に戻る。
作成したプレイヤキャラクタの情報が登録されていない場合には、制御部203は、プレイヤキャラクタの作成を要求するキャラクタ作成要求情報を、通信インターフェイス215から当該プレイヤの利用するビデオゲーム装置100に送信する(ステップS10)。そして、ステップS1の処理に戻る。
受信した情報がプレイヤログイン要求情報でなければ、制御部203は、該受信した情報が、プレイヤキャラクタの登録要求を示すものであるかどうかを判定する(ステップS11)。受信した情報がキャラクタ登録要求情報であれば、制御部203は、キャラクタ毎にキャラクタID501を発行する(ステップS12)。制御部203は、キャラクタ登録要求情報とともに送信されたキャラクタのネームと形態とを、RAM205に設けられたキャラクタ管理テーブル500において該発行したキャラクタID501と対応付けて登録する(ステップS13)。そして、制御部203は、キャラクタID発行情報を、通信インターフェイス215から該プレイヤの利用するビデオゲーム装置100に送信する(ステップS14)。そして、ステップS1の処理に戻る。
受信した情報がキャラクタ登録要求情報でなければ、制御部203は、該受信した情報が、キャラクタのログイン要求を示すものであるかどうかを判定する(ステップS15)。受信した情報がキャラクタログイン要求情報であれば、制御部203は、該プレイヤキャラクタについてキャラクタ管理テーブル500にキャラクタログインフラグ508をセットする。ここで、当該プレイヤについて先にログインしていたプレイヤキャラクタがある場合には、新たにログインしたプレイヤキャラクタのアクティブフラグ507をセットし、当該プレイヤについての他のプレイヤキャラクタのアクティブフラグ507をリセットする(ステップS16)。そして、ステップS1の処理に戻る。
受信した情報がキャラクタログイン要求情報でなければ、制御部203は、該受信した情報が、キャラクタのログアウト要求を示すものであるかどうかを判定する(ステップS17)。受信した情報がキャラクタログアウト要求情報であれば、制御部203は、該プレイヤキャラクタについてキャラクタ管理テーブル500に登録されているキャラクタログインフラグ508をリセットする。制御部103は、該プレイヤキャラクタのキャラクタ位置504や、日時などをキャラクタ管理テーブル500のセーブ情報506に登録する。当該プレイヤについて未だログアウトしていないプレイヤキャラクタが残っていれば、未だログアウトしてないプレイヤキャラクタのうちのいずれかのアクティブフラグ507をセットし、アクティブキャラクタ300が変更された旨を示す情報をビデオゲーム装置100に送信する(ステップS18)。そして、ステップS1の処理に戻る。
受信した情報がキャラクタログアウト要求情報でなければ、制御部203は、受信した情報が、アクティブキャラクタ300の切替を示すものであるかどうかを判定する(ステップS19)。受信した情報がキャラクタ切替情報であれば、制御部203は、当該受信した情報に従ってキャラクタ管理テーブル500に登録されているアクティブフラグ507を更新(セット・リセット)する(ステップS20)。そして、ステップS1の処理に戻る。
受信した情報がキャラクタ切替情報でなければ、制御部203は、受信した情報が、プレイヤキャラクタの位置情報であるかどうかを判定する(ステップS21)。受信した情報が位置情報であれば、制御部203は、当該受信した情報に従ってキャラクタ管理テーブル500に登録されているキャラクタ(アクティブフラグ507のセットされているプレイヤキャラクタ)の位置情報(キャラクタ位置504(及びキャラクタ向き505))を更新する(ステップS22)。そして、ステップS1の処理に戻る。
受信した情報が位置情報でなければ、制御部203は、受信した情報が、プレイヤのログアウト要求を示すものであるどうかを判定する(ステップS23)。受信した情報がプレイヤログアウト要求情報であれば、制御部203は、該プレイヤについてプレイヤ管理テーブル400に登録されているプレイヤログインフラグ404をリセットする(ステップS24)。そして、ステップS1の処理に戻る。受信した情報がプレイヤログアウト要求情報でなければ、その他の情報に応じた処理を行う(ステップS25)。そして、ステップS1の処理に戻る。
次に、ビデオゲーム装置100において、この実施の形態にかかるネットワークゲームを行うための処理について説明する。なお、1フレーム期間毎にゲームの進行状況に対応した画像を生成し、表示画面122上に表示するための処理が制御部103及びグラフィック処理部111により行われており、以下の説明で表示画面122に表示する処理として説明しているのは、この1フレーム毎に生成される画像に含ませる処理である。それ以外にも、この実施の形態に特有の処理以外の処理については、説明を省略している場合がある。また、制御部103の処理途中の情報(表示すべき内容を示す情報を含む)は、RAM105のワークエリアに一時格納される。
図9は、ビデオゲーム装置100において実行されるメイン処理を示すフローチャートである。ビデオゲーム装置100の装置本体101の電源を投入すると、START情報が制御部103に入力されるものとなる。
ビデオゲーム装置100において、制御部103は、入力情報(電源投入によるSTART情報、入力部161から入力されたプレイヤの指示情報、或いはゲームサーバ装置200から受信した情報)があるどうかを判定する(ステップS100)。情報が入力されるまで、制御部103は、ステップS100の処理を繰り返し、何らかの情報が入力されるのを待機する。
何らかの情報が入力された場合には、制御部103は、該入力された情報が、電源投入により入力されたSTART(ゲームの開始)を示すものであるかどうかを判定する(ステップS101)。入力された情報がSTRAT情報であれば、制御部103は、表示画面122にプレイヤログイン画面を表示する(ステップS102)。プレイヤログイン画面には、既にゲームサーバ装置200においてユーザ登録を行ったプレイヤのログインを受け付けるためにプレイヤID及びパスワードの入力フレームとプレイヤログインボタンとが含まれる。
そして、制御部103は、プレイヤログイン画面において、プレイヤID及びパスワードが入力され、プレイヤログインボタンの入力があるかどうかを判定する(ステップS103)。プレイヤログインボタンの入力がなければ、ステップS102の処理に戻る。
プレイヤログイン画面においてプレイヤID及びパスワードが入力され、プレイヤログインボタンの入力があれば、制御部103は、プレイヤログイン要求情報(プレイヤID及びパスワードを含む)を、通信インターフェイス115からゲームサーバ装置200に送信する(ステップS104)。そして、ステップS100の処理に戻る。
入力された情報がSTART情報でなければ、制御部103は、該入力された情報が、ゲームサーバ装置200から受信したプレイヤキャラクタの作成の要求を示すものであるかどうかを判定する(ステップS105)。入力された情報がキャラクタ作成要求情報であれば、制御部103は、表示画面122にキャラクタ作成画面を表示し、プレイヤキャラクタを作成するキャラクタ作成処理を行う。キャラクタ作成処理において、制御部103は、キャラクタ登録要求情報を、通信インターフェイス115からゲームサーバ装置200に送信する(ステップS106)。キャラクタ作成処理の終了後、ステップS100の処理に戻る。なお、キャラクタ作成処理の詳細については、後述する。
入力された情報がキャラクタ作成要求情報でなければ、制御部103は、該入力された情報が、ゲームサーバ装置200から受信したプレイヤのログイン許可を示すものであるかどうかを判定する(ステップS107)。入力された情報がプレイヤログイン許可情報であれば、制御部103は、該受信した情報に含まれるキャラクタ管理テーブル500の情報(キャラクタID501〜セーブ情報506)を、RAM105に設けられたキャラクタテーブル600(キャラクタID601〜セーブ情報606)に登録する(ステップS108)。そして、ステップS112の処理に進む。
入力された情報がプレイヤログイン許可情報でなければ、制御部103は、該入力された情報が、ゲームサーバ装置200から受信したキャラクタID501の発行を示すものであるかどうかを判定する(ステップS109)。入力された情報がキャラクタID発行情報であれば、制御部103は、該キャラクタID501を、RAM105に設けられたキャラクタデータ600のキャラクタID601に登録する(ステップS110)。そして、ステップS112の処理に進む。
入力された情報がキャラクタID発行情報でなければ、制御部103は、該入力された情報が、後述するステップS114の処理で表示された画面においてNEWタブのクリックを示すものであるかどうかを判定する(ステップS111)。入力された情報がNEWタブのクリックを示す情報であれば、制御部103は、ステップS112の処理に進む。
ステップS112では、制御部103は、表示画面122にキャラクタ選択画面を表示させ、ゲームに参加させるプレイヤキャラクタの選択、タブ1011の設定などのキャラクタ選択処理を行う。キャラクタ選択処理において、制御部103は、キャラクタログイン情報と、アクティブキャラクタ300が切り替えられたことを示すキャラクタ切替情報とを、通信インターフェイス115からゲームサーバ装置200に送信する。キャラクタ選択処理の終了後、ステップS100の処理に戻る。なお、キャラクタ選択処理の詳細については、後述する。
入力された情報がNEWタブのクリックを示す情報でなければ、制御部103は、該入力された情報が、ゲームサーバ装置200から受信した視認範囲情報であるかどうかを判定する(ステップS113)。入力された情報が視認範囲情報であれば、制御部103は、当該視認範囲情報に従って表示画面122にゲーム画面1009などを表示する(ステップS114)。そして、ゲーム画面表示処理の終了後、ステップS100の処理に戻る。なお、ゲーム画面表示処理の詳細については、後述する。
入力された情報が視認範囲情報でなければ、制御部103は、該入力された情報が、ステップS114の処理で表示されたゲーム画面1009においてアクティブキャラクタ300をフィールド上で移動させること指示する入力を示すものであるかどうかを判定する(ステップS115)。入力された情報が移動指示入力情報であれば、制御部103は、当該指示に従ってアクティブキャラクタ300のフィールド上での位置を移動する(ステップS116)。そして、制御部103は、移動後のアクティブキャラクタ300の位置情報(キャラクタ位置604(及びキャラクタ向き605))を、通信インターフェイス115からゲームサーバ装置200に送信する(ステップS117)。そして、制御部103は、ステップS100の処理に戻る。
入力された情報が移動指示入力情報でなければ、制御部103は、該入力された情報が、ステップS114の処理で表示された画面において他のタブ1011(NEWタブ以外)のクリックを示すものであるかどうかを判定する(ステップS118)。入力された情報が他のタブ1011(NEWタブ以外)のクリックを示す情報であれば、制御部103は、RAM105に設けられたキャラクタデータ600において、当該クリックされたタブ1011に対応するキャラクタにアクティブフラグ607をセットし、これまでのアクティブキャラクタ300に対応するキャラクタのアクティブフラグ607をリセットする(ステップS119)。ここで、アクティブキャラクタ300は、新たにアクティブフラグ607のセットされたキャラクタに切替るものとなる。
制御部103は、アクティブキャラクタ300が切り替えられたことを示すキャラクタ切替情報を、通信インターフェイス115からゲームサーバ装置200に送信する(ステップS120)。そして、制御部103は、ステップS100の処理に戻る。入力された情報が他のタブ1011(NEWタブ以外)のクリックを示す情報でなければ、制御部103は、該入力された情報が、ゲームサーバ装置200から受信したアクティブキャラクタ300の変更を示すものであるかどうかを判定する(ステップS121)。入力された情報がアクティブキャラクタ変更情報であれば、制御部103は、RAM105に設けられたキャラクタデータ600において、当該アクティブキャラクタ変更情報に従って、ログイン状態にあるプレイヤキャラクタのいずれかにアクティブフラグ607をセットする(ステップS122)。そして、制御部103は、ステップS100の処理に戻る。
入力された情報がアクティブキャラクタ変更情報でなければ、制御部103は、該入力された情報が、ステップS114の処理で表示された画面においてログアウトボタン1012のクリックを示すものであるかどうかを判定する(ステップS123)。入力された情報がログアウトボタン1012のクリックを示す情報であれば、制御部103は、アクティブキャラクタ300のログアウトを行うログアウト処理を行う(ステップS124)。ログアウト処理において、制御部103は、アクティブキャラクタ300がログアウトを行う旨を示すキャラクタログアウト情報を、通信インターフェイス115からゲームサーバ装置200に送信する。ログアウト処理において、制御部103は、ノンアクティブキャラクタがいる場合には、新たなアクティブキャラクタ300を所定の方法で決定する。ログアウト処理において、制御部103は、全てのプレイヤキャラクタがログアウトする場合にはプレイヤログアウト情報を、ノンアクティブキャラクタがいる場合にはキャラクタ切替情報とを、それぞれ通信インターフェイス115からゲームサーバ装置200に送信する。そして、制御部103は、ログアウト処理の終了後、ステップS100の処理に戻る。
入力された情報がログアウト入力情報でなければ、制御部103は、その他の情報に応じた処理を行う(ステップS125)。そして、ステップS100の処理に戻る。図10は、図9のステップS106で実行されるキャラクタ作成処理を詳細に示すフローチャートである。キャラクタ作成処理では、ビデオゲーム装置100の制御部103は、表示画面122にキャラクタ作成画面(図5(a))を表示する(ステップS201)。制御部103は、表示画面122に表示されたキャラクタ作成画面において作成用ツール選択表示枠1001に表示された部位の複数のツールのいずれかにカーソル1005を付して、クリックが行われることにより、作成用ツール選択表示枠1001に表示されている部位におけるツールの選択が確定されたかどうかを判定する(ステップS202)。ツールの選択が確定されていなければ、そのままステップS201の処理に戻る。ツールの選択が確定されれば、制御部203は、キャラクタを構成する全ての部位においてツールの選択が確定したかどうかを判定する(ステップS203)。全ての部位におけるツールの選択が確定していなければ、制御部203は、未だ選択の確定されていない部位に応じた作成用ツール選択表示枠1001を表示してキャラクタ作成画面を表示する(ステップS204)。そして、ステップS201の処理に戻る。全ての部位におけるツールの選択が確定されれば、制御部203は、ネーム入力フレーム1003にネームが入力され、確定ボタン1004のクリックがあるかどうかを判定する(ステップS205)。全ての部位においてツールの選択が確定され、ネーム入力フレーム1003にネームが入力され、確定ボタン1004がクリックされていなければ、制御部103は、ステップS201〜S205の処理を繰り返して行う。
全ての部位においてツールの選択が確定され、ネーム入力フレーム1003にネームが入力され、確定ボタン1004のクリックがあれば、制御部103は、RAM105に設けられたキャラクタテーブル600において、キャラクタ形態603に各部位のツール選択情報を、ネーム602にネーム入力フレーム1003の入力情報を、それぞれ登録する(ステップS206)。そして、制御部103は、既に4つのプレイヤキャラクタが作成されているかどうかを判定する(ステップS207)。未だ1〜3体のプレイヤキャラクタしか作成されていなければ、ステップS201の処理に戻り、次のプレイヤキャラクタの作成のためのキャラクタ作成画面を表示画面122に表示させる。既に4つのプレイヤキャラクタが作成されている場合には、制御部103は、「ゲームをスタートさせる」が入力されたかどうかを判定する(ステップS208)。「ゲームをスタートさせる」が入力されなければ、制御部103は、ステップS208の処理を繰り返し行い、「ゲームをスタートさせる」が入力されるのを待機する。ステップS208において「ゲームをスタートさせる」が入力されれば、制御部103は、キャラクタ登録要求情報(キャラクタ形態、ネームを含む)を、通信インターフェイス115からゲームサーバ装置200に送信する(ステップS209)。そして、キャラクタ作成処理を終了して、図9のフローチャートの処理に復帰する。図11は、図9のステップS112で実行されるキャラクタ選択処理を詳細に示すフローチャートである。キャラクタ選択処理では、ビデオゲーム装置100の制御部103は、入力された情報が、NEWタブのクリックを示すものであるかを判定する(ステップS301)。NEWタブのクリックを示すものでない場合は、今現在においてゲームにプレイヤキャラクタが参加していない場合(キャラクタログイン状態のプレイヤキャラクタがいない)であり、制御部103は、MAXタブナンバーに1を設定し、MAXタブナンバーを初期化する(ステップS302)。そして、ステップS304の処理に進む。
NEWタブのクリックを示すものである場合は、今現在においてゲームにプレイヤキャラクタが参加している場合(キャラクタログイン状態のプレイヤキャラクタがいる)に新たなプレイヤキャラクタをログインさせる場合であり、制御部103は、MAXタブナンバーに1を加算した値を、新たなMAXタブナンバーとして設定する(ステップS303)。そして、ステップS304の処理に進む。ステップS304では、制御部103は、タブナンバー608の登録されていないプレイヤキャラクタにおけるキャラクタ形態603情報を、RAM105に設けられたキャラクタテーブル600から読み出す。
制御部103は、キャラクタ選択表示枠1006に表示されているプレイヤキャラクタのいずれかにカーソル1005が付されているかどうかを判定する(ステップS305)。プレイヤキャラクタのいずれかにカーソル1005が付されている場合には、制御部103は、該プレイヤキャラクタの詳細データ(ネーム602、セーブ情報606など)を、RAM105に設けられたキャラクタテーブル600から読み出す(ステップS306)。
制御部103は、キャラクタ選択画面のキャラクタ選択表示枠1006にステップS304で読み出した各プレイヤキャラクタの形態を一覧表示し、キャラクタ詳細情報表示枠1007にステップS306で読み出した詳細データを表示する(ステップS307)。そして、ステップS305の処理に戻る。ステップS305において、プレイヤキャラクタのいずれにもカーソル1005が付されていない場合には、制御部103は、キャラクタ選択画面において、キャラクタ選択表示枠1006に表示されているプレイヤキャラクタのいずれかがクリックにより選択され、ログインボタン1008が、入力されたかどうかを判定する(ステップS308)。ログインボタン1008が入力されていなければ、ステップS307の処理に戻る。ログインボタン1008が入力されていれば、制御部103は、キャラクタ詳細情報表示枠1007において選択の確定されたプレイヤキャラクタについて、キャラクタテーブル600にアクティブフラグ607をセットする。なお、他のプレイヤキャラクタについて、キャラクタテーブル600にアクティブフラグ607がセットされていれば(2体目以降のプレイヤキャラクタをログインさせる場合)、制御部103は、他のプレイヤキャラクタについて設定されているアクティブフラグ607をリセットする(ステップS309)。制御部103は、該プレイヤキャラクタについて、キャラクタテーブル600のタブナンバー608に、MAXタブナンバーを設定する。制御部103は、該プレイヤキャラクタについて、キャラクタテーブル600のマーク609に、マークを自動設定する(ステップS310)。制御部103は、MAXタブナンバーに設定されている値が、RAM105に設けられたキャラクタテーブル600に登録されているプレイヤキャラクタ数より小さいかを判定する(ステップS311)。登録されているプレイヤキャラクタ数より小さい場合は、新たにログイン状態とするプレイヤキャラクタを作成したプレイヤキャラクタから選択可能な場合であり、制御部103は、NEWタブを設定する(ステップS312)。そして、ステップS313の処理に進む。MAXタブナンバーに設定されている値が、登録されているプレイヤキャラクタ数以上である場合は、新たにログイン状態とすることのできる登録済みのプレイヤキャラクタがない場合であり、そのままステップS313の処理に進む。
ステップS313では、制御部103は、マップ表示部1010にプレイヤキャラクタの位置をマーク609設定し、タブ1011にマーク609及びネーム602を設定する。そして、制御部103は、該プレイヤキャラクタ(アクティブフラグ607のセットされているプレイヤキャラクタ)がログインしたことを示すログイン情報を、通信インターフェイス115からゲームサーバ装置200に送信する(ステップS314)。そして、キャラクタ選択処理を終了して、図9のフローチャートの処理に復帰する。図12は、図9のステップS114で実行されるゲーム画面表示処理を詳細に示すフローチャートである。ゲーム画面表示処理では、ビデオゲーム装置100の制御部103は、ゲームサーバ装置200から受信した視認範囲情報に、アクティブキャラクタ300以外の他のプレイヤキャラクタ(ノンアクティブキャラクタ及び他者のプレイヤキャラクタ)が含まれているかどうかを判定する(ステップS401)。他のプレイヤキャラクタが含まれていなければ、そのままステップS405の処理に進む。他のプレイヤキャラクタが含まれていれば、制御部103は、当該含まれるプレイヤキャラクタが、ノンアクティブキャラクタ(自身のプレイヤキャラクタのうちアクティブフラグ607のセットされていないプレイヤキャラクタ)であるかどうかを判定する(ステップS402)。ノンアクティブキャラクタであれば、制御部103は、当該ノンアクティブキャラクタの所定の位置にネームプレート1014が付されるように設定する(ステップS403)。そして、ステップS404の処理に進む。ノンアクティブキャラクタでなければ、そのままステップS404の処理に進む。
ステップS404では、制御部103は、視認範囲情報に処理(ステップS402〜S403)をしていない他のプレイヤキャラクタがあるかどうかを判定する。処理をしていない他のプレイヤキャラクタがあれば、ステップS402の処理に戻り、視認範囲情報に含まれる他のプレイヤキャラクタの全てにおいて、ステップS402〜S404の処理を行う。処理をしていない他のプレイヤキャラクタがなければ、ステップS405の処理に進む。ステップS405では、制御部103は、アクティブキャラクタ300の位置に応じて定められる所定の位置に仮想カメラの視点303の位置を設定し、アクティブキャラクタ300の基準点を参照点として仮想カメラ301の視軸304の方向を設定する(ステップS405)。仮想スクリーン302の位置やクリップ面306の位置は、これにより一意に定められる。制御部103は、このような仮想カメラの設定により仮想空間に存在する各オブジェクト(アクティブキャラクタ300及び視認範囲情報に含まれる他のプレイヤキャラクタ、並びにフィールドの地形)を仮想スクリーン302上に透視変換し、これらのオブジェクトを構成する各ポリゴンの頂点の座標を視点座標系の座標に変換する(ステップS406)。その後、制御部103は、これらのオブジェクトを構成する各ポリゴンの情報(変換された視点座標系の座標を含む)とともに、描画命令をグラフィック処理部111に出力する(ステップS407)。そして、ゲーム画面表示処理を終了して、図9のフローチャートの処理に復帰する。これに対して、グラフィック処理部111は、Zバッファを参照しながら、描画命令とともに渡された各ポリゴンの画像をフレームメモリ112に展開していく。ネームプレート1014の画像は、対応するプレイヤキャラクタの位置に応じて最前面に展開される。グラフィック処理部111は、また、1フレーム期間毎にフレームメモリ112に展開された画像を読み出し、これに同期信号を付加したビデオ信号を表示装置121に出力する。
これにより、ゲーム画面1009の中央にアクティブキャラクタ300が位置するゲーム画像が表示される。なお、ゲーム画面1009に表示される範囲において、アクティブキャラクタ300の他に自身のプレイヤキャラクタが存在する場合には、当該プレイヤキャラクタ(ノンアクティブキャラクタ)には、ネームプレート1014が付されて表示されるものとなる。ネームプレートには、該プレイヤキャラクタのネーム602が表示されるものとなる。
図13は、図9のステップS124で実行されるログアウト処理を詳細に示すフローチャートである。ログアウト処理では、ビデオゲーム装置100の制御部103は、アクティブキャラクタ300として設定されているプレイヤキャラクタについて、キャラクタデータ600のアクティブフラグ607をリセットし、マーク609を削除し、マップ表示部1010から当該プレイヤキャラクタについて設定されているマーク609を削除する(ステップS501)。
制御部103は、キャラクタテーブル600にタブナンバー608の登録されているキャラクタデータがあるかどうかによって、ノンアクティブキャラクタが設定されているかどうかを判定する(ステップS502)。ここで、キャラクタログイン状態にあるプレイヤキャラクタが1の場合には、ノンアクティブキャラクタは設定されていないものと判定される。
ノンアクティブキャラクタが設定されていない場合は、プレイヤの作成したプレイヤキャラクタのうち現時点でゲームに参加しているプレイヤキャラクタ(キャラクタログイン状態にあるプレイヤキャラクタ)が該プレイヤキャラクタのみである場合であり、制御部103は、当該プレイヤキャラクタについてキャラクタテーブル600に設定されているアクティブフラグ607をリセットする。そして、制御部103は、ログアウトを行うプレイヤキャラクタのログアウト情報と、プレイヤのログアウト情報とを、通信インターフェイス115からゲームサーバ装置200に送信する(ステップS503)。そして、ステップS507の処理に進む。
ノンアクティブキャラクタが設定されている場合は、プレイヤの作成したプレイヤキャラクタのうち現時点でゲームに参加しているプレイヤキャラクタ(キャラクタログイン状態にあるプレイヤキャラクタ)が、ログアウトを行うプレイヤキャラクタ以外に存在する場合であり、制御部103は、キャラクタテーブル600において、該ログアウトを行うプレイヤキャラクタのタブナンバー608より大きなタブナンバー608が登録されている全てのプレイヤキャラクタについて、キャラクタデータ600のタブナンバー608から1減算する(ステップS504)。制御部103は、MAXタブナンバーから1減算した値を、新たなMAXタブナンバーとして設定する(ステップS505)。
制御部103は、該ログアウトを行うプレイヤキャラクタのログアウト情報を、通信インターフェイス115からゲームサーバ装置200に送信する(ステップS506)。そして、ステップS507の処理に進む。
ステップS507では、制御部103は、該ログアウトを行うプレイヤキャラクタについて、キャラクタデータ600のタブナンバー608を削除し、タブ1011から当該ログアウトを行うプレイヤキャラクタについて設定されているネーム602及びマーク609を削除する。そして、ログアウト処理を終了して、図9のフローチャートの処理に復帰する。
以上説明したように、この実施の形態にかかるネットワークゲームシステムにおいて、ビデオゲーム装置100を利用する1のプレイヤは、複数のプレイヤキャラクタをログイン処理によってゲームに参加させることができ、仮想3次元空間には、複数のプレイヤがログインさせた複数のプレイヤキャラクタが存在するものとなる。各ビデオゲーム装置100を利用するプレイヤによって、自らがログインさせたプレイヤキャラクタのうちからいずれか1つがアクティブキャラクタ300として設定されるものとなる。プレイヤは、1のビデオゲーム装置100において、ログインさせた複数のプレイヤキャラクタ間において、アクティブキャラクタ300を切り替え、該アクティブキャラクタ300を操作することができるものとなる。
また、各プレイヤの利用するビデオゲーム装置100において表示画面122のゲーム画面1009に表示される視野範囲は、当該プレイヤの設定したアクティブキャラクタ300の位置情報に応じて決定されるが、視野範囲には、自他のプレイヤキャラクタが混在することもある。この実施の形態にかかるネットワークゲームシステムにおいて適用されるビデオゲーム装置100において、ゲーム画面1009には、自らのプレイヤキャラクタのうち現在アクティブに設定されていないプレイヤキャラクタ(ノンアクティブキャラクタ)にネームプレート1014が付して表示されるものとしている。プレイヤは、ネームプレート1014によって、ノンアクティブキャラクタと、他のキャラクタとを区別することができる。
また、仮想カメラ301の視軸304の方向は、アクティブキャラクタ300の基準点を必ず向くように一定に設定されるものとしている。視点303の位置は、アクティブキャラクタ300と所定方向に一定距離の位置に保たれ、アクティブキャラクタ300に追随して移動するものとしている。従って、ゲーム画面1009の中央には必ずアクティブキャラクタ300が表示されるものとなり、プレイヤは、ゲーム画面1009における表示位置によってアクティブキャラクタ300を他のキャラクタと区別することができる。
このように、全てのプレイヤキャラクタに共通の仮想3次元空間においてもゲーム画面1009に表示される内容(ネームプレート1014の有無、ゲーム画面1009の表示位置)によって、プレイヤは、ゲーム画面1009に表示された全てのキャラクタにおいて、自身のアクティブキャラクタ300であるか、ノンアクティブキャラクタであるか、或いは、他者のプレイヤキャラクタであるかどうかを区別することができ、ゲームを円滑に進めることができるようになる。
また、ログイン状態にあるプレイヤキャラクタのうちアクティブキャラクタ300のみが入力部161の操作によって操作されることとなる。アクティブキャラクタ300がゲーム画面1009の中央に必ず表示されることにより、プレイヤは操作するキャラクタに混乱を生じることなく操作を行うことができるようになる。特に、ゲーム画面1009中央は、プレイヤが視認し易い位置であり、プレイヤの操作性は向上するものとなる。しかも、アクティブキャラクタ300と視点303とが常に等距離に保たれることから、ゲーム画面1009においてアクティブキャラクタ300は常に同程度の大きさで表示され、一定の視認性が保たれることになる。
また、表示画面122には、ログイン状態にあるプレイヤキャラクタ毎に設定されるタブ1011が表示されるものとしている。プレイヤは、現時点でアクティブキャラクタ300に設定されているプレイヤキャラクタに対応するタブ1011以外のタブ1011をクリックすることによって、該タブ1011に対応するプレイヤキャラクタを、新たにアクティブキャラクタ300として設定することができる。
タブ1011のクリックによりアクティブキャラクタ300が切り替われば、ゲーム画面1009に表示される内容も、該アクティブキャラクタ300に対応した画像に切り替わるものとなるが、プレイヤは、切り替え後のゲーム画面1009でアクティブキャラクタ300が表示される画面位置(中央)と、ゲーム画面1009においてネームプレート1014に表示されるネームと、タブ1011に表示されるネームとによって、自己のアクティブキャラクタ及びノンアクティブキャラクタ、並びに他者のプレイヤキャラクタを判断することができ、切り替え後のゲーム画面1009において混乱を生じることがない。
また、プレイヤキャラクタの形態は、キャラクタを構成する部位毎(輪郭、髪型、眉、目、鼻、口など)に用意されたツールを組み合わせることで指定されるが、このような形態の差は、選択されたツールの組み合わせの違いのみによってしか生じない。従って、仮想3次元空間には、自身のプレイヤキャラクタと一部分のツール選択が違うなど、ほぼ同じ形態の他者のプレイヤキャラクタが存在する場合も生じうる。また、自身のプレイヤキャラクタと全く同じ形態の他者のプレイヤキャラクタが存在する場合も生じうる。このような場合にも、プレイヤは、ゲーム画面1009に表示される内容(ネームプレート1014の有無、ゲーム画面1009の表示位置)によって、ゲーム画面1009に表示された全てのキャラクタにおいて、自身のアクティブキャラクタ300であるか、ノンアクティブキャラクタであるか、或いは、他者のプレイヤキャラクタであるかどうかを区別することができ、ゲームを円滑に進めることができるようになる。
また、各プレイヤの利用するビデオゲーム装置100において、該プレイヤの登録したプレイヤキャラクタに関する情報は、ビデオゲーム装置100のキャラクタテーブル600においても管理されるものとしている。このように、ゲーム画面1009に必ず表示されるアクティブキャラクタ300の情報を、ビデオゲーム装置100においても管理することで、ゲームサーバ装置200から15分の1秒毎に送信する視認範囲情報の情報量が少なくて済むようになり、ゲームサーバ装置200の処理負荷を軽減することができるものとなる。
また、ゲームサーバ装置200において、プレイヤID毎にキャラクタ管理テーブル500を設け、該プレイヤIDの登録したプレイヤキャラクタに関する情報を管理するものとしている。ここで、ゲームサーバ装置200において、アクティブキャラクタ300の位置情報(キャラクタ位置504)が管理されることで、視認範囲が特定されるものとなる。また、ゲームサーバ装置200において、全てのプレイヤに対するプレイヤキャラクタの位置情報(キャラクタ位置504)も管理されることで、視認範囲に含まれるプレイヤキャラクタを特定することができる。
また、ビデオゲーム装置100を利用する各プレイヤは、最高で4つまでプレイヤキャラクタを作成し、該作成した複数のプレイヤキャラクタからゲームにログインさせるプレイヤキャラクタを複数選択することができるものとしている。このように、プレイヤがゲームに参加させるプレイヤキャラクタ数を1から4まで任意に決定することができるものとすることで、ゲームの自由度は増すものとなる。また、プレイヤキャラクタは、1つずつ順次ゲームにログインさせ、最後にログインしたプレイヤキャラクタが次の切り替えまでアクティブキャラクタ300となる。これにより、プレイヤは、新たにログインさせたプレイヤキャラクタを容易に判断することができるようになる。
また、ログイン状態にあるプレイヤキャラクタのフィールド上における位置は、該プレイヤキャラクタに設定されたマークでマップ表示部1010上に示されるものとしている。このように、ゲーム画面1009に表示される範囲(透視範囲)よりも広い範囲を示すマップ表示部1010によって、プレイヤは、ログインさせた各プレイヤキャラクタの位置関係を把握することができるようになる。
また、マップ表示部1010は、クリックされることによって、表示を消す及び表示サイズを変更(拡大・縮小)することができるものとしている。このように、付属的な情報であるマップ表示部1010の表示をプレイヤに選択させるものとすることで、プレイヤキャラクタが存在するフィールド上を示すゲーム画像1009の視認性を低下させることがない。
本発明は、上記の実施の形態に限られず、種々の変形、応用が可能である。以下、本発明に適用可能な上記の実施の形態の変形形態について説明する。
上記の実施の形態では、プレイヤは、ゲーム中或いはゲーム再開時において、プレイヤキャラクタを作成することができないものとしていた。これに対して、プレイヤは、ゲーム中或いはゲーム再開時においても、プレイヤキャラクタを作成可能なものとしてもよい。この場合において、プレイヤキャラクタの作成を許容する所定の条件を設けるものとしてもよい。
上記の実施の形態では、ビデオゲーム装置100を利用する各プレイヤは、一律に最高で4つまでプレイヤキャラクタを作成し、ゲームサーバ装置200に登録することができるものとしていた。これに対して、各プレイヤが作成可能なプレイヤキャラクタの数は、2つ以上の任意の数であれば、これに限るものではない。また、プレイヤをゲーム途中(再開時を含む)で作成可能な場合には、各プレイヤが作成可能なプレイヤキャラクタの数は、全てのプレイヤにおいて一律でなくてもよい。
上記の実施の形態では、ビデオゲーム装置100を利用する各プレイヤは、作成した複数(この実施の形態では最高で4)のプレイヤキャラクタのうち、一律で全てのプレイヤキャラクタを同時にゲームに参加させる(キャラクタログイン状態にする)ことができるものとしていた。これに対して、同時にキャラクタログイン状態にすることが可能なプレイヤキャラクタ数を、作成したプレイヤキャラクタ数以下の所定数として、所定の制限を設けるものとしてもよい。また、各プレイヤがキャラクタログイン可能なプレイヤキャラクタの数は、全てのプレイヤにおいて一律でなくてもよい。
上記の実施の形態では、ビデオゲーム装置100を利用する各プレイヤは、同時に複数のプレイヤキャラクタをフィールド上で移動させることはできないものとしていた。これに対して、所定の設定(グループ設定など)によって、同時に複数のプレイヤキャラクタをフィールド上で移動させることができるものとしてもよい。この場合、グループのリーダーとなるキャラクタを決定し、当該リーダーキャラクタの行動に、同じグループに所属する他のキャラクタが追随するものとすればよい。なお、グループは、自身のプレイヤキャラクタのみで構成されるものとしても、自身のプレイヤキャラクタと他者のプレイヤキャラクタとによって構成されるものとしてもよい。
いずれの場合においても、グループのリーダーは、アクティブキャラクタ300とする必要がある。自身のプレイヤキャラクタのみでグループを形成する場合には、アクティブキャラクタ300の切替に応じて、グループのリーダーが切り替わるものとなる。この場合において、プレイヤは、アクティブキャラクタ300の操作のみによってグループに所属するノンアクティブキャラクタをフィールド上で移動させることができ、ゲーム画面1009には、アクティブキャラクタ300とグループに所属するノンアクティブキャラクタとが、必ず表示されるものとなる。
一方、他者のプレイヤキャラクタがリーダーとなるグループに所属する自身のプレイヤキャラクタは、当該プレイヤの操作なしに、フィールド上で移動させられるものとなる。ここでは、リーダーである他者のプレイヤキャラクタの位置情報に従って自身のプレイヤキャラクタの位置は決定されるものとなる。ノンアクティブキャラクタのみが、他のプレイヤの所持するプレイヤキャラクタがリーダーであるグループに所属することができるが、該ノンアクティブキャラクタがアクティブキャラクタ300として設定されたときに、該グループの所属から外れるものとなる。また、グループのリーダーであった他者のプレイヤキャラクタがアクティブキャラクタでなくなれば、当該グループの設定が解除されるものとなる。ここで、プレイヤは、ノンアクティブキャラクタを、自ら操作を行うことなく、フィールド上で移動させることができるものとなる。
上記の実施の形態では、一旦、ゲームサーバ装置200に登録されたプレイヤキャラクタの形態は、ゲームの進行過程(ゲーム途中及び再開時)で変化することはないものとしていた。これに対して、プレイヤキャラクタの形態は、ゲームの進行過程において変化するものとしてもよい。ここで、プレイヤキャラクタの形態の変化は、自動で行われるものであっても、プレイヤの選択によって行われるものであってもよい。この場合には、形態が変化したときにビデオゲーム装置100からその旨を示す情報を送信し、ゲームサーバ装置200においてキャラクタ管理テーブル500に登録されているキャラクタ形態503を更新するものとすればよい。
上記の実施の形態では、プレイヤキャラクタは、ログインが行われた場合に、仮想3次元空間に形成されたフィールド上の所定位置(前回ログアウトを行った位置或いは初期位置に配置される)に配置されるものとしていた。従って、プレイヤは、ゲーム画面1009に表示された他者のプレイヤキャラクタが、アクティブキャラクタ300であるかどうかを認識することはできなかった。これに対して、他者のプレイヤキャラクタにおいてアクティブキャラクタ300であるかどうかを、仮想3次元空間において示すものとしてもよい。
例えば、他者のプレイヤキャラクタにおいてアクティブキャラクタ300以外のプレイヤキャラクタ(ノンアクティブキャラクタ)は、透明度や色味を変化させ、ゲーム画面1009において半透明やモノクロに表示するものとしてもよい。この場合には、プレイヤは、ゲーム画面1009において表示されるキャラクタの透明度や色味の違いによって、該キャラクタがアクティブキャラクタ300であるかどうかを容易に判断することができるようになる。
上記の実施の形態では、ノンアクティブキャラクタに対して何らかのアクションが行われた場合、特にその旨を報知することはできないものであった。ノンアクティブキャラクタに対して、何らかのアクションが行われた場合(他者のプレイヤキャラクタが当該ノンアクティブキャラクタに話しかけた場合など)には、その旨を表示画面122に示すものとしてもよい。例えば、プレイヤが「AAA」キャラクタと「BBB」キャラクタをログイン状態にし、「AAA」キャラクタをアクティブキャラクタ300としている場合に、プレイヤは、アクティブキャラクタ300である「AAA」キャラクタの行動する仮想3次元空間の映像を見て、ゲームを進めることとなる。ここで、「BBB」キャラクタに対して、他者のプレイヤキャラクタが話しかけた場合には、該「BBB」キャラクタに設定されているタブ1011を点滅させるものとしてもよい。この場合には、プレイヤは、1のプレイヤキャラクタに関してゲームを進行させつつも、ログイン状態にある他のプレイヤキャラクタに関しても情報を把握することができるようになる。
また、ノンアクティブキャラクタに対して、何らかのアクションが行われた場合(他者のプレイヤキャラクタが当該ノンアクティブキャラクタに話しかけた場合など)には、その旨を示す情報を、ゲームサーバ装置200からビデオゲーム装置100に送信し、該ノンアクティブキャラクタがアクティブキャラクタ300として自動設定されるものとしてもよい。この場合には、自動的にアクティブキャラクタ300が切り替わることによって、表示画面122にはアクションのあったプレイヤキャラクタに応じたゲーム画面1009が表示され、プレイヤは、アクションが行われた旨を把握することができ、このアクションに対して即座に対応することも可能となるるので、ゲームをスムーズに進めることができるようになる。
なお、ゲームサーバ装置200からビデオゲーム装置100に送信される、ノンアクティブキャラクタに対するアクションを示す情報は、視認範囲情報が当該ビデオゲーム装置100のプレイヤがログインさせている各プレイヤキャラクタがアクティブキャラクタ300であるかノンアクティブキャラクタであるかまでを特定可能とした情報である場合には、該視認範囲情報とすることができる。
上記の実施の形態では、プレイヤは、表示画面122に表示されたプレイヤキャラクタ毎のタブ1011をクリックすることで、当該タブ1011に対応するプレイヤキャラクタをアクティブキャラクタ300に切り替えることができるものとし、NEWタブをクリックすることで、ゲームにログインさせる新たなプレイヤキャラクタを設定することができるものとしていた。これに対して、アクティブキャラクタ300の切り替え及びゲームにログインさせる新たなプレイヤキャラクタの設定を、入力部161に設けられた複数の操作ボタン(或いはキーボードのファンクションキー)に割り当てるものとしてもよい。この場合には、プレイヤは入力部161の操作という比較的簡単な操作によって、アクティブキャラクタ300の変更、及びゲームにログインさせる新たなプレイヤキャラクタの設定をすることができるようになる。
また、マップ表示部1010に表示されたマークをクリックすることによって、該マークに対応するプレイヤキャラクタをアクティブキャラクタ300として設定できるものとしてもよい。或いは、ゲーム画面1009に表示されているノンアクティブキャラクタが存在する場合には、ゲーム画面1009において該ノンアクティブキャラクタをクリックすることによって、該ノンアクティブキャラクタをアクティブキャラクタ300として設定できるものとしてもよい。前者の場合には、プレイヤは、ログイン状態にあるプレイヤキャラクタのフィールド上における位置を把握しつつ、比較的簡単な操作によってアクティブキャラクタ300を変更することができるようになる。後者の場合には、ゲーム画面1009に表示されたノンアクティブキャラクタをクリックするという、直接的な操作によってアクティブキャラクタ300を変更することができるようになる。
上記の実施の形態では、クリックによりマップ表示部1010の表示を消す、及びマップ表示部1010の表示サイズを変更(拡大・縮小)することができるものとしていた。これに対して、プレイヤは自らの操作によって変化する、マップ表示部1010の表示態様は、これに限るものではない。例えば、マップ表示部1010の透明度が変化するものであってもよい。また、マップ表示部1010は、タブ1011にカーソル1005が付された場合に、表示されるものであってもよい。
上記の実施の形態では、プレイヤキャラクタの作成時において、プレイヤは、作成用ツール選択表示枠1001に表示された、部位毎に用意されている複数のツールからプレイヤキャラクタの形態を構成させるツールを選択するものとしていた。これに対して、プレイヤキャラクタを作成する方法は、予め登録されているデータの選択により行われるのであれば他の方法によって行われるものであってもよい。例えば、予めプレイヤキャラクタの外観のみが決定されており、プレイヤは、当該プレイヤキャラクタの外観に色を指定することによりプレイヤキャラクタを作成するものとしてもよい。また、プレイヤの操作を契機として、部位毎にルーレットなどによって抽選を行うことで、パーツの選択が確定され、プレイヤキャラクタの形態が決定されるものであってもよい。また、プレイヤの操作を契機として、ルーレットなどによって抽選を行うことで、予め完成している複数のキャラクタからいずれか1のキャラクタが、プレイヤキャラクタとして決定されるものであってもよい。
また、プレイヤキャラクタは、ビデオゲーム装置100からの指示を契機として、ゲームサーバ装置200において決定されるものであってもよい。例えば、プレイヤがユーザ登録を行った後に、プレイヤからの情報の受信を契機として、抽選を行うことで、予め完成している複数のキャラクタからいずれか1のキャラクタが、該プレイヤのプレイヤキャラクタとして決定されるものであってもよい。さらに、自他の全てのプレイヤキャラクタが全く同じ形態を有するものであってもよい(但し、パラメータなどに差が生じるのを妨げない)。また、プレイヤキャラクタは、プレイヤ間で交換可能なものとしてもよい。
上記の実施の形態では、ゲーム画面1009においてネームプレート1014を付すことによって自身のノンアクティブキャラクタを他者のプレイヤキャラクタと区別させるものとしていた。これに対して、自身のノンアクティブキャラクタであるかどうかを、他の方法によってプレイヤに区別させるものとしてもよい。例えば、全てのキャラクタにネームプレート1014を付すが、アクティブキャラクタ300及びノンアクティブキャラクタに付されるネームプレート1014の色は、他者のプレイヤキャラクタに付されるネームプレート1014の色と異なるものとしてもよい。或いは、アクティブキャラクタ300以外の全てのキャラクタにネームプレート1014を付すが、ノンアクティブキャラクタに付されるネームプレート1014の色を他者のプレイヤキャラクタに付されるネームプレート1014の色と異なるものとしてもよい。
また、自身のノンアクティブキャラクタであるかどうかを、ネームプレート1014以外によってプレイヤに区別させるものとしてもよい。例えば、自身のアクティブキャラクタ300の頭上部には、「!」マークを、ノンアクティブキャラクタの頭上部には「!!」マークを付すものとしてもよい。また、自身のノンアクティブキャラクタは、透明度や色味を変化させ、ゲーム空間1011において半透明やモノクロに表示するものとしてもよい。この場合には、プレイヤは、ゲーム画面1009において表示されるキャラクタの透明度や色味の違いによって、該キャラクタが自身のノンアクティブキャラクタであるかどうかを容易に判断することができるようになる。これらの手法によって自身のアクティブキャラクタ300を他のキャラクタ(自身のノンアクティブキャラクタを含む)と区別できるのであれば、アクティブキャラクタ300は、必ずしもゲーム画面1009の中央に表示されないものであってもよい。
また、自身のプレイヤキャラクタに対してのみ、その詳細情報(パラメータなど)の一部を表示画面122に表示することにより、他者のプレイヤキャラクタと区別させるものとすることができる。例えば、ゲームの進行に応じて変化されるHP(各プレイヤキャラクタがゲーム空間において生存可能な値を示す能力値で、通常、これが0となるとゲームを継続できなくなる)などのパラメータを、自身の表示画面122するものとした場合には、プレイヤは、自らのプレイヤキャラクタに設定されているHPの状態を把握しつつゲームを進めることで、ゲームを円滑に進めることができるようになる。
ここで、ゲームの進行過程においてアクティブキャラクタ300と敵キャラクタ(ゲームサーバ装置200の制御により動作するキャラクタ(ノンプレイヤキャラクタ)、或いは他のプレイヤのプレイヤキャラクタ)とのバトルを含むものとし、各プレイヤキャラクタに設定されているパラメータの値は、バトルの経過に応じて増減されるものとしてもよい。この場合には、プレイヤは、ゲームの進行過程においてバトルが行われた場合においても、自らの各プレイヤキャラクタに設定されているHPの状態を把握することができる。ここで、各々のHPを参照しながらアクティブキャラクタ300を切り替えることなど、ゲームを戦略的に進めることができるようになる。
上記の実施の形態では、視点303の位置は、アクティブキャラクタ300と一定距離の位置に保たれ、アクティブキャラクタ300に追随して移動するものとし、視軸304の方向は、アクティブキャラクタ300の基準点を必ず向くように一定に設定されるものとし、視角305の大きさ及びクリッピング距離は、基本的には同じ大きさに設定されているものとしていたが、これに限るものではない。アクティブキャラクタ300を他のプレイヤキャラクタ(他者のものを含む)と識別でき、ゲームの進行に問題の生じない画面が表示される限り、これらの仮想カメラの設定は任意である。
上記の実施の形態では、ゲーム画面1009に表示される画像は、アクティブキャラクタ300と別の位置におかれる仮想カメラ301の視点303の位置から透視変換されて生成されるものとしていたが、このような視点位置から透視変換して生成される画像に限るものではなく、例えば、仮想カメラ301の視点303は、プレイヤキャラクタ(アクティブキャラクタ300)の一人称視点となるものとしてもよい。この場合には、仮想カメラ301の視点303は、アクティブキャラクタ300の目の位置で一義に決定され、視軸304の方向は、アクティブキャラクタ300の顔の向きで決定されるものとなる。なお、視野の広さは固定されるものとなる。ここでは、ゲーム画面1009には、アクティブキャラクタ300の一人称視点による画像が表示され、ゲームの臨場感を高めることができるものとなる。また、アクティブキャラクタ300の動作に応じて、手足などのアクティブキャラクタ300の形態の一部がゲーム画面1009に表示されることとなるので、プレイヤは、アクティブキャラクタ300の形態を把握しつつ、該アクティブキャラクタ300の視点でゲームを進めることができるようになる。
上記の実施の形態では、表示画面122においてログインを行ったプレイヤキャラクタ順に、右から左にタブ1011が表示されるものとしていた。表示画面122におけるタブ1011の表示位置及び並び順は、これに限るものではない。例えば、表示画面122におけるタブ1011の表示位置及び並び順は、プレイヤの入力部161からの入力によって、移動可能なものとしてもよい。また、表示位置或いは並び順のどちらか一方のみを移動可能なものとしてもよい。この場合には、プレイヤは、アクティブキャラクタ300の変更の契機となる入力の表示位置及び並び順を、表示画面122において自らの操作し易い場所に配置させることができ、プレイヤの操作性が向上するものとなる。
上記の実施の形態では、キャラクタのログインを行うには、先にプレイヤのログイン処理を行っておく必要があるものとしていた。これに対して、キャラクタのログイン方法はこれに限るものではない。例えば、キャラクタ毎にパスワードを設け、キャラクタID(或いは、当該キャラクタのネーム)及びパスワードによってキャラクタログインを行うものとしてもよい。
上記の実施の形態では、キャラクタのログインは、キャラクタ選択画面において1プレイヤキャラクタ毎に行われるものとしていたが、同時に複数のプレイヤキャラクタを指定し、ログイン可能なものとしてもよい。この場合には、ログインさせる複数のプレイヤキャラクタが選択された後に、アクティブキャラクタ300をプレイヤに指定させるものとすればよい。また、ログイン直後におけるアクティブキャラクタ300は、所定の条件を満たす(例えば、ログインさせる複数のプレイヤキャラクタのうち最後に選択された)プレイヤキャラクタが、アクティブキャラクタ300として指定されるものとしてもよい。最後に選択したプレイヤキャラクタを、ログイン直後におけるアクティブキャラクタ300とするものとすることで、プレイヤは、アクティブキャラクタ300を容易に判断することができるようになる。
上記の実施の形態では、ゲームサーバ装置200から受信した視認範囲情報は、視野範囲に含まれるプレイヤキャラクタが、何れのキャラクタ(アクティブキャラクタ300、ノンアクティブキャラクタ、他のプレイヤのプレイヤキャラクタ)であるかどうかを特定しないものとしていた。これに対して、ゲームサーバ装置200において、サーバ視野範囲に含まれるプレイヤキャラクタが何れのプレイヤキャラクタ(アクティブキャラクタ300、ノンアクティブキャラクタ、他のプレイヤのプレイヤキャラクタ)であるかどうかを特定するものとしてもよい。この場合には、ビデオゲーム装置100において、不正な処理が行われるのを防ぐことができるものとなる。
上記の実施の形態では、ゲームサーバ装置200において、各ビデオゲーム装置100のアクティブキャラクタ300(すなわち、キャラクタ管理テーブル500においてアクティブフラグ507のセットされているキャラクタ)の位置情報(キャラクタ位置504)に従って視認範囲を特定するものとしていた。これに対して、ビデオゲーム装置100において視認範囲を特定し、該特定した視認範囲を、位置情報とともにゲームサーバ装置200に送信するものとしてもよい。ここでは、プレイヤが入力部161の操作によって、仮想3次元空間において透視変換により画像が生成される範囲(すなわち、視認範囲)を変更することができるものとすることができる。
上記の実施の形態では、ビデオゲーム装置100において、方向キーの操作によってプレイヤキャラクタをフィールド上で移動させる指示が入力された場合には、該プレイヤキャラクタ(アクティブキャラクタ300)の位置を、当該指示に従ってアクティブキャラクタ300のフィールド上で移動させ、該移動後のキャラクタ位置情報604をゲームサーバ装置200に送信するものとしていた。これに対して、ビデオゲーム装置100において、方向キーの操作によってプレイヤキャラクタをフィールド上で移動させる指示が入力された場合、該入力情報をゲームサーバ装置200に送信するものとしてもよい。この場合には、ゲームサーバ装置200において、該受信した入力情報に従ってアクティブキャラクタ300のフィールド上で移動させ、キャラクタ管理テーブル500に登録されているキャラクタ位置504を更新するものとなる。そして、新たなキャラクタ位置504で特定した視認範囲情報と、移動後のプレイヤキャラクタの位置情報とが、当該ビデオゲーム装置100に送信されるものとなる。
上記の実施の形態では、ネットワークゲームは、仮想3次元空間において行われるものとしていた。これに対して、2次元空間において行われるネットワークゲームにも本発明を適用することができる。この場合において、視認範囲情報は、アクティブキャラクタ300の基準点を中心としたフィールド上における所定範囲とすることができる。
上記の実施の形態では、ビデオゲームを実行するためのプラットフォームとして専用機である装置本体101を適用していた。これに対して、装置本体101と同様の構成要素を備え、画像を描画する機能を有するものであれば、汎用のパーソナルコンピュータなどを適用してもよい。表示装置121及びサウンド出力装置125を装置本体101と同一の筐体内に納めた構成を有する携帯ゲーム機を適用するものとしてもよい。サーバークライアント型のネットワークゲームなどで進行するゲームだけではなく、ネットワーク151上のサーバを介さずに複数のビデオゲーム装置などが相互に接続して、複数のプレイヤでゲームを進めるピアツーピア型ネットワークゲームにも本発明を適用することができる。
記録媒体131としては、DVD−ROMやCD−ROMの代わりに半導体メモリカードを適用することができる。このメモリカードを挿入するためのカードスロットをDVD/CD−ROMドライブ113の代わりに設けることができる。汎用のパーソナルコンピュータの場合には、本発明に係るプログラム及びデータを記録媒体131に格納して提供するのではなく、HDD107に予め格納して提供してもよい。本発明にかかるプログラム及びデータを格納して提供するための記録媒体は、ハードウェアの物理的形態及び流通形態に応じて任意のものを適用することができる。
上記の実施の形態では、ビデオゲーム装置1のプログラム及びデータは、記録媒体131に格納されて配布されるものとしていた。これに対して、これらのプログラム及びデータをネットワーク151上に存在するサーバ装置が有する固定ディスク装置に格納しておき、装置本体101にネットワーク151を介して配信するものとしてもよい。ビデオゲーム装置1において、通信インターフェイス115がサーバ装置から受信したプログラム及びデータは、HDD107に保存し、実行時にRAM105にロードすることができる。