図1は、本発明の一実施形態に係るシステムを概略的に示すブロック図である。本発明の一実施形態に係るシステムは、複数のオブジェクトを含む仮想空間の表示画像を生成するように構成されている。
図示のとおり、本発明の一実施形態に係るシステムは、サーバ10と、クライアント端末30とを備える。図1に示す実施形態においては、サーバ10がクライアント端末30の機能と連携して、クライアント端末30のユーザに対してオンライン対戦ゲームを提供する。この対戦ゲームにおいては、プレイヤによって操作される複数のプレイヤオブジェクトとコンピュータによって操作される複数のノンプレイヤオブジェクトとの間で対戦が行われる。当該実施形態においては、対戦ゲームの仮想空間の表示画像をクライアント端末30のディスレプレイに表示させる。図1に示すオンライン対戦ゲームの仮想空間の表示画像を生成する実施形態は、あくまで本発明の一実施形態に過ぎない。本発明は、複数のオブジェクトが含まれる様々な仮想空間に適用可能であることに留意されたい。
図1に示した実施形態において、サーバ10は、クライアント端末30とインターネット等のネットワーク20を介して通信可能に接続されており、クライアント端末30に対してオンラインゲームサービス(例えば、オンライン対戦ゲームに関するサービス)を提供する。例えば、サーバ10は、クライアント端末30から受信したゲームメッセージ(例えば、プレイヤオブジェクト(又はプレイヤキャラクタ)の操作に関連するメッセージ、クエストを開始したというメッセージ)を、所定のゲームロジック(又は当該ゲームロジックを実現するためのプログラム)に従って処理し、その処理結果をクライアント端末30に送信する。また、サーバ10は、ゲームの進行に必要な様々なゲームデータをクライアント端末30に提供する。また、後述するように、サーバ10は、クライアント端末30でゲームに関連する仮想空間の表示画像(又は当該表示画像を生成するために用いられる対戦ログ情報及び視点情報)を、クライアント端末30に提供する。対戦ログ情報及び視点情報については後述する。なお、図1には、1つのクライアント端末30が図示されているが、サーバ10には、複数のクライアント端末30が通信可能に接続され得る。
サーバ10は、図示のとおり、プロセッサ11と、メインメモリ12と、ユーザI/F13と、通信I/F14と、ストレージ15とを備える。これらの各構成要素は、不図示のバスを介して互いに電気的に接続される。プロセッサ11は、ストレージ15からオペレーティングシステムやゲームロジックを実現する様々なプログラムをメインメモリ12にロードし、ロードしたプログラムに含まれる命令を実行する。メインメモリ12は、プロセッサ11が実行するプログラムを格納するために用いられ、例えば、DRAMによって構成される。
ユーザI/F13は、例えば、オペレータの入力を受け付けるキーボードやマウス等の情報入力装置と、プロセッサ11の演算結果を出力する液晶ディスプレイ等の情報出力装置とを含む。通信I/F14は、ハードウェア、ファームウェア、又はTCP/IPドライバやPPPドライバ等の通信用ソフトウェア又はこれらの組み合わせとして実装され、ネットワーク20を介してクライアント端末30と通信可能に構成される。
ストレージ15は、例えば磁気ディスクドライブで構成され、例えばゲームロジックを実現するためのゲーム制御用プログラム等の様々なプログラムが記憶される。また、ストレージ15には、ゲームにおいて用いられる各種データも記憶され得る。ストレージ15に記憶され得る各種データは、サーバ10と通信可能に接続され、サーバ10とは物理的に別体のデータベースサーバに格納されてもよい。
一実施形態におけるサーバ10は、階層構造の複数のウェブページから成るウェブサイトを管理するウェブサーバである。クライアント端末30は、このウェブページを表示するためのHTMLデータをサーバ10から取得し、取得したHTMLデータを解析して得られるゲーム画面をクライアント端末30のディスプレイに表示することができる。プレイヤは、このゲーム画面を介してクライアント端末30に対して様々な入力を提供することで、サーバ10が提供するゲームとインタラクトできる(例えば、プレイヤオブジェクトに対する操作指示を行ったりメニューの選択を行うことができる)。ストレージ15は、このウェブページを表示するためのHTMLデータを記憶できる。HTMLデータは、HTML等のマークアップ言語で記述されたHTMLコードから成る。このHTMLコードには、様々な画像が関連付けられる。また、HTMLデータには、ActionScriptやJavaScript(登録商標)等のスクリプト言語等で記述されたプログラムが埋め込まれ得る。
以上のとおり、サーバ10は、ゲームサービスを提供するウェブサイトを管理しており、当該ウェブサイトを構成するウェブページをクライアント端末30からの要求に応じて配信することによりゲームを進行させることができる。このようなウェブページを介して提供されるゲームは、ブラウザゲームと称されることがある。
本発明の他の実施形態においては、クライアント端末30においてOSやミドルウェア等の実行環境上でゲームアプリケーションプログラムを実行することにより、このゲームアプリケーションプログラムとサーバ10が協働してゲームを提供することができる。このゲームアプリケーションプログラムは、例えば、ストレージ15やストレージ25に格納されており、クライアント端末30からの要求に応じて、クライアント端末30にダウンロードされる。このゲームアプリケーションプログラムには、クライアント端末30での実行時に、サーバ10から提供されるゲームデータを処理するための命令セットや当該命令セット実行時に参照される画像データ等の各種データを含めることができる。ゲームアプリケーションプログラムは、例えば、Objective−C、Java(登録商標)等のオブジェクト指向プログラミング言語で作成される。ゲームアプリケーションプログラムは、ストレージ15、外部ストレージ25、又はこれら以外の不図示のストレージに格納される。
ストレージ15等のストレージに記憶されたゲームアプリケーションプログラムは、クライアント端末30からの配信要求に応じて、当該クライアント端末30に配信される。配信されたゲームアプリケーションプログラムは、クライアント端末30において、プロセッサ31の制御に従って通信I/F34を介して受信される。受信されたゲームアプリケーションプログラムは、例えばストレージ35に記憶される。このアプリケーションソフトウェアは、プレイヤによるクライアント端末30の操作に応じて起動され、クライアント端末30に実装されたOSやミドルウェア等のプラットフォーム上で実行される。
サーバ10は、ゲームアプリケーションプログラムからのメッセージを所定のゲームロジックに従って処理し、その処理結果を示す様々な情報をゲームアプリケーションプログラムに返信することにより、ゲームの進行を制御することができる。図1の実施形態において、サーバ10は、プレイヤによって操作されるプレイヤオブジェクトとコンピュータによって所定のロジックに従って操作されるノンプレイヤオブジェクトとの間の対戦を、所定の対戦ロジックに従って処理する機能を備える。
クライアント端末30で実行されるゲームアプリケーションプログラムは、サーバ10から、対戦処理の内容を示す対戦ログ情報を受信することができる。対戦ログ情報については後述する。ゲームアプリケーションプログラムは、サーバ装置から受信した対戦ログ情報や仮想空間内の視点の位置などを表す視点情報(後述する。)に基づいて仮想空間の表示画像を生成し、生成した表示画像(ゲーム画面)をクライアント端末30のディスプレイに表示する。プレイヤは、クライアント端末30のディスプレイに表示されたゲーム画面を見て、ゲームを進行させることができる。
以上のとおり、ゲームアプリケーションプログラムをクライアント端末30で実行することにより、このゲームアプリケーションプログラムの機能とサーバ10の機能とを連携させてゲームを進行させることができる。このようなゲームアプリケーションプログラムを利用して提供されるゲームは、アプリゲームと称されることがある。本発明は、ブラウザゲームとアプリゲームのいずれにも適用可能である。
サーバ10は、ゲームの開始時のプレイヤの認証処理やゲームの進行に応じて発生する課金処理を行う機能を有することもできる。サーバ10によって提供されるゲームには、アクションゲーム、ロールプレイングゲーム、野球ゲーム等の仮想空間内に複数のオブジェクトが含まれる任意のゲームが含まれる。サーバ10及びクライアント端末30(又はクライアント端末30で実行されるゲームアプリケーションプログラム)によって実現されるゲームの種類は、本明細書において明示されたものに限られない。
続いて、クライアント端末30について説明する。本発明の一実施形態に係るクライアント端末30は、サーバ10から取得したゲーム用ウェブサイトのウェブページをウェブブラウザ上で表示する環境及びゲームアプリケーションプログラムを実行するためのアプリケーション実行環境の少なくとも一方を実装した任意の情報処理装置であり、例えば、携帯電話機、スマートフォン、タブレット端末、パーソナルコンピュータ、電子書籍リーダー及びゲーム用コンソールを含むがこれらには限られない。
本発明の一実施形態に係るクライアント端末30は、図示のとおり、プロセッサ31と、メインメモリ32と、ユーザI/F33と、通信I/F34と、ストレージ35と、を含み、これらの各構成要素がバス36を介して互いに電気的に接続されている。
プロセッサ31は、ストレージ35からオペレーティングシステム等の様々なプログラムをメインメモリ32にロードし、ロードしたプログラムに含まれる命令を実行する。メインメモリ32は、プロセッサ31が実行するプログラムを格納するために用いられ、例えば、DRAMによって構成される。
ユーザI/F33は、プレイヤの入力を受け付ける情報入力装置と、プロセッサ31の演算結果を出力する情報出力装置であり、タッチスクリーンを備える液晶ディスプレイなどの表示装置を含む。通信I/F34は、ハードウェア、ファームウェア、又は、TCP/IPドライバやPPPドライバ等の通信用ソフトウェア又はこれらの組み合わせとして実装され、ネットワーク20を介してサーバ10と通信可能に構成される。
ストレージ35は、例えば磁気ディスクドライブやフラッシュメモリ等により構成され、オペレーティングシステム等の様々なプログラムを記憶する。また、ストレージ35は、サーバ10から通信I/F34を介してゲームアプリケーションプログラムを受信した場合には、この受信したゲームアプリケーションプログラムを記憶する。
クライアント端末30は、例えば、HTML形式のファイル(HTMLデータ)を解釈して画面表示するためのブラウザソフトウェアを備えており、このブラウザソフトウェアの機能によりサーバ10から取得したHTMLデータを解釈して、受信したHTMLデータに対応するウェブページを表示することができる。また、クライアント端末30は、ブラウザソフトウェアに組み込まれるプラグインソフト(例えば、アドビシステムズ社から提供されているFlash Player)を備えており、HTMLデータに埋め込まれたSWF形式のファイルをサーバ10から取得し、当該SWF形式のファイルをブラウザソフトウェア及びプラグインソフトを用いて実行することができる。
また、クライアント端末30においては、プレイヤの操作に応じてゲームアプリケーションプログラムが起動され、クライアント端末30に実装されたプラットフォーム上で実行される。クライアント端末30においてゲームアプリケーションプログラムが実行されると、例えば、プログラムにより指示されたアニメーションや操作用アイコンがクライアント端末30の画面に表示される。プレイヤは、クライアント端末30のユーザI/F33を用いてゲームを進行させるための指示を入力することができる。
本発明の一実施形態に係るサーバ10のプロセッサ11及びクライアント端末30のプロセッサ31においては、様々なコンピュータプログラムモジュールが実行される。このサーバ10及びクライアント端末30で実行されるコンピュータプログラムモジュール、及び、必要に応じてこれら以外のコンピュータプログラムモジュールにより、複数のオブジェクトを含む仮想空間の表示画像を表示装置に表示させる本発明に係るシステムの機能が実現される。
図示のとおり、サーバ10のプロセッサ11で実行されるコンピュータプログラムモジュールには、ゲーム制御モジュール41と、対戦処理モジュール42と、が含まれる。また、クライアント端末30のプロセッサ31において実行されるコンピュータプログラムモジュールには、仮想空間の表示画像をクライアント端末のディスプレイに表示するゲームモジュール61と、クライアント端末30のユーザからの様々な指示を受け付ける受付モジュール62と、受付モジュール62において受け付けられたプレイヤからの様々な指示を表すメッセージをサーバ10に送信する送信モジュール63とが含まれる。
図1においてサーバ10に備えられているモジュールの一部又は全部は、クライアント端末30のプロセッサ31やそれ以外の装置のプロセッサにより実行されてもよく、クライアント端末30に備えられている各モジュールの一部又は全部は、サーバ10のプロセッサ11やそれ以外の装置のプロセッサにより実行されてもよい。例えば、仮想空間がサーバ10との通信を必要とせずに、クライアント端末30でアプリケーションプログラムを実行することによって提供されるスタンドアローン型のゲームの場合には、図1においてサーバ10で実行される機能として説明されているモジュールの一部又は全部をクライアント端末で実行するように、本発明のシステムが構成される。
サーバ10において実行されるモジュールについてさらに説明する。本発明の一実施形態に係るゲーム制御モジュール41は、例えば、クライアント端末30からのゲームメッセージを所定のゲームロジックに基づいて処理し、また、対戦ゲームを実行するための様々なゲームデータをクライアント端末30に提供することで、ゲームの進行を制御することができる。ゲーム制御モジュール41は、例えば、クライアント端末30からプレイヤオブジェクトによるアイテムの使用を指示するアイテム使用メッセージを受信した場合当該プレイヤオブジェクトに指示されたアイテムを使用させる処理を行い、その結果(例えば、ライフの回復など)を示すアイテム使用情報を当該クライアント端末30に対して提供することができる。ゲーム制御モジュール41が提供するゲームデータには、例えば、プレイヤオブジェクトやノンプレイヤオブジェクトに関するオブジェクトデータ、及びプレイヤによって経験されるクエストに関するクエストデータが含まれ得る。また、ゲーム制御モジュール41は、プレイヤ同士のコミュニケーションを促進するためにチャット機能やメッセージング機能を提供することもできる。
本発明の一実施形態に係る対戦処理モジュール42は、所定の対戦ロジックに従って、プレイヤオブジェクトとノンプレイヤオブジェクトとの対戦処理を実行する。この対戦処理は、例えば、プレイヤからの指示に基づいてコントロールされる複数のプレイヤオブジェクトと、プレイヤからの指示とは無関係に所定のロジックに基づいてコントロールされる複数のノンプレイヤオブジェクトとの間の対戦を実行する。一実施形態におけるゲームは、ターン制のゲームであり、プレイヤのターンの間にプレイヤオブジェクトの各々が移動や攻撃などの様々な動作を行い、次に、これと交代で、コンピュータのターンの間にノンプレイヤオブジェクトの各々が同様の様々な動作を行う。
この対戦処理モジュール42は、図1に示すとおり、移動制御モジュール51、オブジェクト選定モジュール52、グループ化モジュール53、参照点決定モジュール54、経路決定モジュール55、視点制御モジュール56、イベント発生モジュール57、及び表示制御モジュール58を備える。以下、これらのモジュールの機能について説明する。
本発明の一実施形態に係る移動制御モジュール51は、仮想空間(ゲーム空間)内に配置された複数のオブジェクトの仮想空間内における移動を制御する。この移動制御モジュール51は、例えば、クライアント端末30から受信したプレイヤオブジェクトの移動を指示するゲームメッセージや、オブジェクトの移動に関する所定のロジックに基づいて、各ターンにおいて各オブジェクトが移動する位置を決定する。例えば、各オブジェクトには、1ターンにおける移動可能範囲が定められており、各オブジェクトは、この移動可能範囲内のいずれかの位置へ移動するように制御される。
本発明の一実施形態に係るオブジェクト選定モジュール52は、ターンごとに、所定のイベント発生条件を満たす1又は複数のイベント発生オブジェクトを選定するように構成される。本実施形態において、このイベントは、対戦ゲームに関連するものであり、例えば、攻撃イベント、アイテムイベント、特殊効果イベント、及び会話イベントを含む。複数のオブジェクトの各々には、例えば、他のオブジェクトへの攻撃が可能となる攻撃範囲が定められており、所定のオブジェクトの攻撃範囲に他のオブジェクトが存在するときに、当該所定のオブジェクトについて前記所定のイベント発生条件が満たされていると判断される。一実施形態において、攻撃範囲に他のオブジェクトが存在するか否かの判断は、移動制御モジュール51により移動された後の各オブジェクトの位置に基づいて判断される。本明細書において具体的に説明するイベントはあくまで例示にすぎず、本発明のイベントには、仮想空間内で一又は複数のオブジェクトに関連して発生する任意のイベントが含まれ得る。また、所定のオブジェクトについてのイベント発生条件は、上述したイベントの発生領域と関連付けられた条件には限られない。
本発明の一実施形態に係るグループ化モジュール53は、各ターンにおいて、仮想空間内の複数のオブジェクトを複数のグループにグループ化するように構成される。このグループ化モジュール53は、例えば、ターンごとに、オブジェクト選定モジュール52によって選定された1又は複数のイベント発生オブジェクトと、当該1又は複数のイベント発生オブジェクトが発生させるイベントの対象となるオブジェクトとが同じグループになるように、仮想空間内の複数のオブジェクトをグループ化する。例えば、上記のイベントが対戦ゲームにおける一のオブジェクトから他のオブジェクトへの攻撃に対応する攻撃イベントである場合には、仮想空間において当該一のオブジェクトによって攻撃が実行可能な攻撃範囲が定められており、この一のオブジェクトとその攻撃範囲に存在する他のオブジェクト(一のオブジェクトの攻撃対象になるオブジェクト)とが同じグループに分類される。仮想空間内に複数のイベント発生オブジェクトが存在する場合には、当該複数のイベント発生オブジェクトの所定の属性に基づいて定められる順番に従って、当該複数のイベント発生オブジェクトの各々について、上記のグループ化処理が行われる。このオブジェクトの所定の属性は、例えば、当該オブジェクトの敏捷性(アジリティ)を示す属性である。グループ化モジュール53によるグループ化は、ターンごとではなく、ゲームの開始時やゲーム開始後の所定のタイミング(例えば、プレイヤからの指示によって決定されるタイミング)で実行されてもよい。ゲームの開始時や所定のタイミングで定められたグループは、新しいターンが始まるときに更新されてもよく、新しいターンに入ってもゲーム開始時のグループを維持してもよい。
本発明に従ったオブジェクトのグループ化について図2ないし図6を参照して、より具体的に説明する。図2ないし図6は、本発明の一実施形態におけるグループ化の方法を説明するために、仮想空間に含まれるオブジェクトを模式的に示す図である。図2ないし図6に示された仮想空間は、マス目に区切られたフィールドを備えており、このフィールドのマス目内に、プレイヤによって操作されるプレイヤキャラクタを表すオブジェクト86Aないし86C(以下、単にプレイヤオブジェクト86Aないし86Cという。)及びコンピュータによって所定のロジックに従って操作されるノンプレイヤキャラクタを表すオブジェクト88A及び88B(以下、単にノンプレイヤオブジェクト88A及び88Bという。)が配置されている。図2ないし図6に示されているプレイヤオブジェクト86Aないし86C並びにノンプレイヤオブジェクト88A及び88Bの配置は、例えば、移動制御モジュール51により定められる。
図2ないし図6に示した例では、仮想空間内での攻撃イベントに基づいて複数のオブジェクトをグループ化する例を説明する。図2ないし図6では、オブジェクト間の矢印により、攻撃の方向を示している。具体的には、図2の例では、プレイヤオブジェクト86Aとノンプレイヤオブジェクト88Aとの間に互いの方向に向かう矢印が記されているので、プレイヤオブジェクト86Aとノンプレイヤオブジェクト88Aとの間で相互に攻撃を行うことが示されている。他の矢印も同様に攻撃の方向を示しているので、図2の例では、プレイヤオブジェクト86B及び86Cはノンプレイヤオブジェクト88Bに対して攻撃を行い、ノンプレイヤオブジェクト88Bはプレイヤオブジェクト86Cに対して攻撃を行う。
図2の例においては、フィールド上の隣接するマス目に別陣営のオブジェクトが存在することが、攻撃イベントのイベント発生条件として定められている。別陣営とは、プレイヤオブジェクトにとってはノンプレイヤオブジェクトのことであり、ノンプレイヤオブジェクトにとってはプレイヤオブジェクトのことである。このイベント発生条件及び各オブジェクトのフィールド上の位置に基づいて、オブジェクト選定モジュール52は、各オブジェクトがイベント発生条件を満たしているか否かを判定し、イベント発生条件を満たしているオブジェクトをイベント発生オブジェクトとして選定する。図2の例においては、プレイヤオブジェクト86A〜86C並びにノンプレイヤオブジェクト88A及び88Bの各々について、これらのオブジェクトが配置されているマス目と隣接するマス目に別陣営のオブジェクトのいずれかが配置されているので、オブジェクト選定モジュール52は、プレイヤオブジェクト86A〜86C並びにノンプレイヤオブジェクト88A及び88Bの全てをイベント発生オブジェクトとして選定する。
この図2に示した例において、グループ化モジュール53は、攻撃を行うオブジェクトと、その攻撃の対象となるオブジェクト(攻撃を受けるオブジェクト)とが同じグループになるように、イベント発生オブジェクトとして選定されたプレイヤオブジェクト86Aないし86C並びにノンプレイヤオブジェクト88A及び88Bをグループ化する。具体的には、上述したようにプレイヤオブジェクト86Aとノンプレイヤオブジェクト88Aとが互いに攻撃し合うので、プレイヤオブジェクト86A及びノンプレイヤオブジェクト88AはグループG1にグループ化される。また、プレイヤオブジェクト86B及び86Cはノンプレイヤオブジェクト88Bに対して攻撃を行い、ノンプレイヤオブジェクト88Bはプレイヤオブジェクト86Cに対して攻撃を行うので、プレイヤオブジェクト86B、86C及びノンプレイヤオブジェクト88BがグループG2に分類される。
図3は、グループ化の他の例を示す。図3においては、プレイヤオブジェクト86Bが隣接していないオブジェクトに対しても攻撃をできるように、プレイヤオブジェクト86Bのイベント発生領域が定められている。図3の例は、プレイヤオブジェクト86Bが離れた位置にあるノンプレイヤオブジェクト88Aに対して攻撃を行っている点で図3の例と異なっている。図3の例では、プレイヤオブジェクト86Bがノンプレイヤオブジェクト88Aに対して攻撃をしているので、プレイヤオブジェクト86BがグループG1に分類される。
図4は、グループ化のさらに他の例を示す。図4においては、ノンプレイヤオブジェクト88Bが、プレイヤオブジェクト86Cではなくプレイヤオブジェクト86Bを攻撃している点で図3の例と異なっている。プレイヤオブジェクト86Cではなくプレイヤオブジェクト86Bを攻撃しているので、ノンプレイヤオブジェクト88BがグループG1に分類されている。また、プレイヤオブジェクト86Cは、グループG1に分類されたノンプレイヤオブジェクト88Bに対して攻撃を行っているので、プレイヤオブジェクト88CもグループG1に分類される。この結果、図4の例においては、5つのオブジェクト全てがグループG1に分類されている。このグループ化処理は、イベント発生オブジェクト(プレイヤオブジェクト86A〜86C並びにノンプレイヤオブジェクト88A及び88B)のアジリティ等の所定の属性に基づいて定められる順番に従って実行されてもよい。例えば、図4の例において、各オブジェクトのアジリティ属性が、プレイヤオブジェクト86A、プレイヤオブジェクト86C、ノンプレイヤオブジェクト88A、ノンプレイヤオブジェクト88B、プレイヤオブジェクト88Bの順で高い場合には、まず、最も高いアジリティ属性値を有するプレイヤオブジェクト86Aを起点としてグループ化処理が行われる。つまり、プレイヤオブジェクト86Aと、プレイヤオブジェクト86Aの攻撃対象であるノンプレイヤオブジェクト88Aとが同一のグループにグループ化される。次に、2番目にアジリティ属性値が高いプレイヤオブジェクト86Cを起点としたグループ化処理が行われ、プレイヤオブジェクト86Cと、プレイヤオブジェクト86Cの攻撃対象であるノンプレイヤオブジェクト88Bとが同一のグループに分類される。次に、3番目にアジリティ属性値が高いノンプレイヤオブジェクト88Aを起点としたグループ化処理が行われ、ノンプレイヤオブジェクト88Aと、ノンプレイヤオブジェクト88Aの攻撃対象であるプレイヤオブジェクト86Aとが同一のグループに分類される。しかし、図4の例においては、プレイヤオブジェクト86Aを起点としたグループ化処理においてプレイヤオブジェクト86Aとノンプレイヤオブジェクト88Aとが既に同一グループに分類されているため、ノンプレイヤオブジェクト88Aを起点としたグループ化処理においては、新しいグループは形成されない。以下、同様にして、仮想空間内の全てのイベント発生オブジェクトについてグループ化処理が行われる。図4以外の例においても、同様にして、イベント発生オブジェクトの所定の属性に従った順番に従ってグループ化処理を行うことができる。
図5は、グループ化のさらに他の例を示す。図5においては、ノンプレイヤオブジェクト88Aが隣接していない複数のオブジェクト(プレイヤオブジェクト86B及び86C)に対して攻撃をできるように、ノンプレイヤオブジェクト88Aのイベント発生領域が定められており、ノンプレイヤオブジェクト88Aがプレイヤオブジェクト86B及び86Cに対して攻撃を行っているので、ノンプレイヤオブジェクト88Aとプレイヤオブジェクト86B及び86CがグループG1にグループ化されている。また、プレイヤオブジェクト86Aとノンプレイヤオブジェクト88Bは、互いに攻撃し合っているので、プレイヤオブジェクト86A及びノンプレイヤオブジェクト88Bは、グループG2にグループ化される。他の実施例においては、ノンプレイヤオブジェクト88Aが、そのイベント発生領域に含まれているプレイヤオブジェクト86B及び86Cのうち一方のみに攻撃を行うことができるようにし、その攻撃の対象となっているオブジェクト(例えば、プレイヤオブジェクト86B)とノンプレイヤオブジェクト88Aとを同一のグループとし、プレイヤオブジェクト86Cを別のグループとしてもよい。
図6は、グループ化のさらに他の例を示す。図6においては、ノンプレイヤオブジェクト88Aが一直線上に配置されている複数のオブジェクト(プレイヤオブジェクト86A及び86C)に対して攻撃をできるように、ノンプレイヤオブジェクト88Aのイベント発生領域が定められている。これにより、ノンプレイヤオブジェクト88Aとプレイヤオブジェクト86A及び86CがグループG1にグループ化されている。ノンプレイヤオブジェクト88Bもプレイヤオブジェクト86A及び86Cを貫く直線上に配置されているが、ノンプレイヤオブジェクト88Aとノンプレイヤオブジェクト88Bとは同陣営なので、ノンプレイヤオブジェクト88Bはノンプレイヤオブジェクト88Aの攻撃対象とならず、従ってノンプレイヤオブジェクト88BはグループG1には分類されない。一方、プレイヤオブジェクト86Bとノンプレイヤオブジェクト88Bは、互いに攻撃し合っているので、プレイヤオブジェクト86B及びノンプレイヤオブジェクト88Bは、グループG2にグループ化される。
図3ないし図6を参照して説明したグループ化はあくまで例示に過ぎず、本発明においては、イベントを発生させるオブジェクト(イベント発生オブジェクト)と当該イベントの対象となるオブジェクトを同一のグループに分類する任意の方法でグループ化を行うことができる。グループ化のために用いられるイベントは、上述した攻撃イベントに限られず、仮想空間内の様々なイベントが利用され得る。
本発明の一実施形態に係る参照点決定モジュール54は、ターンごとに、グループ化モジュール53により形成された複数のグループの各々について、仮想空間内に、参照点及びグループ注視点を定めるように構成される。後述するように、一実施形態においては、視点が所定のグループの参照点にあるときに、当該視点の注視点は当該所定のグループのグループ注視点に位置する。一実施形態においては、各グループについて、参照点及びグループ注視点が1つずつ定められる。
一実施形態においては、各グループに属する複数のオブジェクトの重心に相当する位置がグループ注視点として選択される。しかしながら、本発明のグループ注視点はグループに属するオブジェクトの重心位置には限られず、例えば、グループに属するいずれかのオブジェクトが配置されているマス目の位置(例えば、その中心位置)、グループに属する複数のプレイヤオブジェクトの重心に相当する位置などをグループ注視点とすることができる。例えば、所定のグループに、対戦ゲームにおける指揮官に相当するオブジェクトが属している場合には、当該指揮官に相当するオブジェクトの位置をグループ注視点の位置とすることができる。これにより、プレイヤが注目しやすいオブジェクトの位置をグループ注視点に設定することができる。
仮想空間内の参照点の位置について、図7を参照してさらに説明する。図7は、本発明の一実施形態における参照点R1及びR2の配置を模式的に示す説明図である。この参照点R1及びR2には、後述するように、視点(仮想カメラ)90が移動する。図7に示した仮想空間内でのオブジェクトの配置及びグループ化の方法は、図2に示したものと同じである。図7においては、グループG1に含まれるプレイヤオブジェクト86A及びノンプレイヤオブジェクト88Aの重心位置GC1がグループG1についてのグループ注視点として定められ、グループG2に含まれるプレイヤオブジェクト86B及び86C並びにノンプレイヤオブジェクト88Bの3つのオブジェクトの重心位置GC2がグループG2についてのグループ注視点として定められている。
所定のグループの参照点の位置を示す仮想空間内の座標は、例えば、同じグループのグループ注視点の位置を示す座標に対して所定の変換を行うことで得られる。図7の例において、グループG1の参照点R1の座標は、グループG1のグループ注視点(重心位置GC1)の位置を示す座標を所定の方向に所定の距離だけ移動させた座標とすることができる。グループG2の参照点R2の座標もこれと同様に、グループG2のグループ注視点(重心位置GC2)の位置を示す座標を所定の方向に所定の距離だけ移動させた座標とすることができる。つまり、各グループのグループ注視点の位置を示す座標を所定の方向(例えばz軸)に所定の距離だけ移動させた座標を、当該グループの参照点の座標とすることができる。グループ注視点の座標から参照点の座標を求めるためには、様々な座標変換を用いることができる。また、全てのグループについて同じ座標変換を用いても良いし、一部のグループについては他のグループと異なる座標変換を用いてもよい。
本発明の一実施形態に係る経路決定モジュール55は、ターンごとに、参照点決定モジュール54によって定められた各グループの参照点に基づいて、視点90が移動可能な経路を決定する。一実施形態における経路は、参照点決定モジュール54によって定められた各グループの参照点を所定の順番で連結することで形成される。図8を参照して、この視点の経路についてさらに説明する。図8は、本発明の一実施形態における仮想空間の全体を模式的に示す図である。
図8に示すように、本発明の一実施形態にかかる仮想空間VSは、二次元のフィールドを含んでおり、このフィールドに複数のオブジェクトが配置される(ただし、図8では、図示を簡略化するために、オブジェクトの図示を省略している)。上述のとおり、参照点決定モジュール54は、各グループに属するオブジェクトの重心位置GR1ないしGR4をグループ注視点として定める。また、図8の例では、重心位置GR1ないしGR4から所定方向に所定距離だけ移動した位置に、参照点R1ないしR4が配置されている。
上述のとおり、経路決定モジュール55は、この参照点R1ないしR4を所定の順番で連結することで、視点90の経路を定める。一実施形態において、この所定の順番は、仮想空間VS内の所定の基準点BPに対する各参照点の位置に応じて決定される。図8に示すように、一実施形態においては、仮想空間VSの矩形に形成された二次元フィールドの隅の1つを基準点BPとすることができる。一実施形態においては、この基準点BPから参照点R1ないしR4又はグループ注視点GC1ないしGC4の各々までの距離を比較し、この距離が短い順に視点90の移動経路を定めることができる。図8の例では、グループ注視点GC1、グループ注視点GC2、グループ注視点GC3、グループ注視点GC4の順で、基準点BPからの距離が遠くなるので、視点90の経路を、グループ注視点GC1に対応する参照点R1、グループ注視点GC2に対応する参照点R2、グループ注視点GC3に対応する参照点R3、グループ注視点GC4に対応する参照点R4とすることができる。この場合、経路決定モジュール55は、参照点R1、参照点R2、参照点R3、参照点R4をこの順に結ぶ経路を、視点90の経路として定めることができる。
視点90の経路の決定方法は、適宜変更可能である。例えば、基準点BPの位置を始点として所定の探索ルートで仮想空間内におけるグループ注視点の探索を行い、グループ注視点が発見された順に当該グループ注視点に対応する参照点を連結することで視点90の経路を形成してもよい。グループ注視点の探索ルートは、例えば、基準点BPから出発し、x軸と平行な方向へ移動し、このy=0の列においてx軸方向における仮想空間の端まで到達したならば、次にy=1の列について同様にx=0の地点から仮想空間のx軸の端まで移動する。以下、仮想空間のy軸方向の端に到達するまでyの値を1ずつ増加させながら探索を継続する。そして、この探索ルートにおいて、グループ注視点が発見された順に当該グループ注視点に対応する参照点を連結することで、視点90の経路が形成される。図8の例において、この方法で視点90の経路を決定すると、参照点R2、参照点R1参照点R3、参照点R4の順に各参照点を連結する経路ができる。本発明に適用可能な視点90の経路の決定方法は、本明細書で明示的に説明したものに限られず、発明の範囲を逸脱しない任意の方法で視点90の経路を定めることができる。
また、経路決定モジュール55は、視点90の経路を基準点BPとは無関係に定めるように構成されてもよい。例えば、経路決定モジュール55は、グループ化モジュール53によって定められたグループの各々に属するオブジェクト(又はイベント発生オブジェクト)の属性に基づいて各グループの順番を決定し、このグループの順番に従って、各グループの参照点の順番を決定することができる。例えば、各グループに属するオブジェクトの敏捷性を表す属性の平均値を求め、この平均値が高い順にグループをランキングし、このランキングの上位にあるグループにある参照点から順に視点90を移動させることができる。このように、オブジェクトの敏捷性に基づいて視点90の経路を定めることにより、敏捷性が高いオブジェクトが属するグループに先に視点90を移動させることができる。
本発明の一実施形態に係る視点制御モジュール56は、経路決定モジュール55によって定められた経路に沿って視点90を移動させる。例えば図8の例では、視点制御モジュール56は、参照点R1、参照点R2、参照点R3、参照点R4をこの順に結ぶ経路に沿って視点90を移動させることができる。一実施形態において、視点90は、経路決定モジュール55によって定められた経路を一方向(上記の例では、参照点R1から参照点R2、参照点R2から参照点R3、参照点R3から参照点R4の方向)にのみ移動可能であり、逆方向(参照点R2から参照点R1、参照点R3から参照点R2、参照点R4から参照点R3の方向)には移動できない。また、この視点の移動と同期させて、注視点を、グループ注視点GC1、グループ注視点GC2、グループ注視点GC3、グループ注視点GC4をこの順に結ぶ経路に従って移動させることができる。
本発明の一実施形態に係るイベント発生モジュール57は、ターンごとに、グループ化モジュール53によって生成された複数のグループの各々について、各グループに属する1又は複数のイベント発生オブジェクトの各々に攻撃イベント、アイテム使用イベント等の様々なイベントを所定のゲームロジックに従って発生させる。イベント発生モジュール57は、例えば、視点制御モジュール56の制御により視点90が所定のグループの参照点に移動したことに応じて、当該グループに属するイベント発生オブジェクトに所定のイベントを発生させるように構成される。
再び図2を参照して、イベント発生モジュール57がイベントを発生させる制御について説明する。上述したとおり、図2の例においては、プレイヤオブジェクト86Aからノンプレイヤオブジェクト88Aに対する攻撃イベント、ノンプレイヤオブジェクト88Aからプレイヤオブジェクト86Aに対する攻撃イベント、プレイヤオブジェクト86B及び86Cからノンプレイヤオブジェクト88Bに対する攻撃イベント、及びノンプレイヤオブジェクト88Bからプレイヤオブジェクト86Cに対する攻撃イベントが発生する。イベント発生モジュール57は、視点90がグループG1の参照点に移動したことに応じて、グループG1に属するプレイヤオブジェクト86A及びノンプレイヤオブジェクト88Aのイベントを発生させる。本発明の一実施形態において、この攻撃イベントは、イベント発生オブジェクトの各々に設定されている所定の属性に応じて定められる順番に従って発生するように制御される。本発明の一実施形態において、この所定の属性は、前記複数のオブジェクトの各々に設定される敏捷性(アジリティ)を表す属性である。攻撃イベントが発生すると、攻撃イベントを発生させたオブジェクトの属性(攻撃力等)及び攻撃を受けたオブジェクトの属性(防御力等)に基づいて、攻撃の結果(例えば、攻撃を受けたオブジェクトが受けたダメージ)が算出される。
本発明の一実施形態に係る視点制御モジュール56は、視点90がグループG1の参照点に移動した後、当該グループG1に属するイベント発生オブジェクト(つまり、プレイヤオブジェクト86A及びノンプレイヤオブジェクト88A)によるイベントが発生している間、視点90をグループG1の参照点に固定する。そして、視点制御モジュール56は、グループG1に属するイベント発生オブジェクトが全てイベントを発生させた後に、視点90をグループG2の参照点に移動させる。これにより、グループG1に属するオブジェクトがイベントを発生させている間は、視点90をグループG1の参照点に固定しておくことができる。視点90がグループG2の参照点に移動すると、イベント発生モジュール57は、当該グループG2に属するイベント発生オブジェクト(プレイヤオブジェクト86B及び86C並びにノンプレイヤオブジェクト88B)のイベントを発生させる。視点制御モジュール56は、このグループG2に属するイベント発生オブジェクトによるイベントが発生している間、視点90をグループG2の参照点に固定する。これにより、各グループに属するイベント発生オブジェクトによるイベントが発生している間、視点90は、当該グループの参照点に固定されることになる。
また、本発明の一実施形態に係る視点制御モジュール56は、視点90の注視点を、視点90と同期して移動させることができる。注視点を視点90と同期して移動させるために、本発明の一実施形態に係る視点制御モジュール56は、グループ注視点を所定の順番で連結することにより注視点の経路を決定する。本発明の一実施形態において、視点制御モジュール56は、視点90がグループG1の参照点に固定されている間、当該視点90の注視点をグループG1のグループ注視点(重心位置GC1)に固定しておき、視点90がグループG2の参照点に移動するときにこれと同期してグループG2のグループ注視点(重心位置GC2)に移動させるように構成される。これにより、グループG1に属するイベント発生オブジェクトによるイベントが発生している間、視点90の位置及び注視点の両方を固定しておくことができるので、グループG1に属するイベント発生オブジェクトによるイベントの発生を安定した画像で表現することができる。
本発明の一実施形態に係る表示制御モジュール58は、ターンごとに、視点(例えば、視点90)から見た当該仮想空間の表示画像を表示装置に表示させる。この表示装置には、例えば、上述したクライアント端末30のディスプレイが含まれる。本発明の一実施形態に係る表示制御モジュール58は、例えば、各モジュールで実行された対戦処理の内容を示す対戦ログ情報、及び、当該対戦処理の間における視点に関連する視点情報を生成し、この対戦ログ情報及び視点情報に基づいて、ターンごとに、仮想空間の表示画像を生成することができる。本発明が対戦ゲーム以外の用途に適用される場合には、対戦ログ情報に代えて、その他の用途における仮想空間でのイベントやオブジェクトの動作などを示す仮想空間情報と、視線情報とに基づいて、仮想空間の表示画像を生成することができる。
本発明の一実施形態における対戦ログ情報には、各ターンにおける対戦処理の内容を示す様々なイベントを表すデータやそのイベントの結果を表すデータが含まれ、例えば、各オブジェクトの移動後の位置や移動経路を表す移動データ、各オブジェクトによる攻撃イベントを表す攻撃イベントデータ、攻撃イベントによって各オブジェクトが受けたダメージの大きさを示すダメージデータ、プレイヤオブジェクトの各々が獲得した経験値等のポイントを示す獲得ポイントデータが含まれる。本発明における対戦ログ情報は、本明細書で具体的に説明したものに限られず、対戦処理モジュール42によって実行される対戦処理の内容を示す様々な情報を含むことができる。
本発明の一実施形態における視点情報には、当該ターンにおける対戦処理開始からの各時点における視点の位置を示す視点位置データ、当該ターンにおける対戦処理開始からの各時点における注視点の位置を示す注視点位置データ、及び当該ターンにおける対戦処理開始からの各時点における視点の画角を示す画角データが含まれる。この視点データは、例えば、経路決定モジュール56が算出した視点90の経路及び注視点の経路を示すデータに基づいて生成される。
本発明の一実施形態に係る表示制御モジュール58は、例えば、各オブジェクトについての移動データと、各オブジェクトが移動する間の視点情報(視点の位置、注視点の位置、及び画角を表す情報)に基づいて、当該各オブジェクトの移動を表す画像(移動画像)を含む仮想空間の表示画像を生成することができる。また、各オブジェクトについての攻撃イベントデータと、その攻撃イベントが発生している間の視点情報に基づいて、オブジェクトによる攻撃を表す画像(攻撃イベント画像)を含む仮想空間の表示画像を生成することができる。
本発明の一実施形態に係る表示制御モジュール58は、上記のようにして生成された仮想空間の表示画像をクライアント端末30に送信することで、クライアント端末30のディスプレイに当該仮想空間の表示画像を表示させることができる。また、本発明の他の実施形態に係る表示制御モジュール58は、対戦ログ情報及び視点情報をクライアント端末30に送信することができる。
本発明の一実施形態において、クライアント端末30のゲームモジュール61は、サーバ10の表示制御モジュール58から受信した仮想空間の表示画像をクライアント端末のディスプレイに表示するように構成される。本発明の他の実施形態においては、ゲームモジュール61は、サーバ10の表示制御モジュール58から受信した対戦ログ情報及び視点情報に基づいて仮想空間の表示画像を生成し、このようにして生成した表示画像をディスプレイに表示することができる。ゲームモジュール61は、これ以外の当業者に知られている任意の方法で、上述したように制御される視点から見た、サーバ10で管理される仮想空間の表示画像を、表示装置に表示することができる。このように、表示制御モジュール58は、生成した仮想空間の表示画像をクライアント端末30に送信することにより、又は、対戦ログ情報及び視点情報をクライアント端末30に送信することにより、クライアント端末30のディスプレイに仮想空間の表示画像を表示させることができる。
本発明の一実施形態における仮想空間の表示画像の例を図9及び図10に示す。図9は、図7の参照点R1にある視点からグループG1のグループ注視点にある注視点を見た仮想空間の表示画像の例であり、図10は、図7の参照点R2にある視点からグループG2のグループ注視点を見た仮想空間の表示画像の例である。図9及び図10に示すように、本発明の一実施形態においては、対戦ゲームの仮想空間の表示画像82がクライアント端末30のタッチスクリーンに表示される。図示を省略しているが、仮想空間の表示画像82には、ゲームのメニュー画面、メッセージング機能を利用するためのアイコン、及びそれ以外のプレイヤが入力操作を行うための様々なオブジェクトが配置され得る。図9及び図10に示すように、各グループの参照点にある視点から当該グループのグループ注視点にある注視点を見た表示画像には、当該グループに属するオブジェクトの全てが含まれてもよい。オブジェクトの数が多い場合には、例えば、視点制御モジュール56が、視点90の画角(視野角)を調整することにより、当該グループに属する全てのオブジェクトを表示画像に含めることができる。
本発明の一実施形態に係る受付モジュール62は、プレイヤオブジェクト86Aないし86Cに対するプレイヤからの指示を受け付けることができる。プレイヤは、例えば、クライアント端末30に備えられたタッチスクリーン上のプレイヤオブジェクト86Aないし86Cが表示されている領域に対して所定の操作(例えば、タップ、ダブルタップ、ドラッグ)を行うことにより、プレイヤオブジェクト86Aないし86Cに対する指示を行うことができる。プレイヤからプレイヤオブジェクトに対する指示には、例えば、所定のマス目に移動する指示、ノンプレイヤユニット88A及び88Bを攻撃する指示、アイテムを使用する指示など、ノンプレイヤユニット88A及び88Bとの対戦に関連する様々な指示が含まれる。
このようにして受付モジュール62において受け付けられたプレイヤからの様々な指示を表すメッセージは、本発明の一実施形態に係る送信モジュール63により、ネットワーク20を介して、サーバ10に送信される。サーバ10では、上述のように、受信したメッセージに基づいて、所定のゲームロジックに従った様々な処理が行われる。
次に、図11を参照し、本発明の一実施形態に従って、対戦処理の所定のターンにおいて仮想空間の表示画面を生成する処理の流れを説明する。対戦ゲームにおける所定のターンが開始されると、まず、ステップS102において、仮想空間(ゲーム空間)内に配置された複数のオブジェクトの各々が、所定のロジックに従って仮想空間内の他の位置に移動する。仮想空間における全てのオブジェクトが移動する必要はなく、所定のロジックに従って、移動の対象となるオブジェクトが所定の位置に移動する。このオブジェクトの移動の制御は、例えば、上述した移動制御モジュール51によって実行される。
次に、ステップS104に進み、当該仮想空間に含まれている複数のオブジェクトの中から、所定のイベント発生条件を満たす1又は複数のイベント発生オブジェクトが選定される。この所定のイベントの一例は、上述したように、一のオブジェクトから他のオブジェクトへの攻撃イベントである。このイベント発生オブジェクトの選定は、例えば、上述したオブジェクト選定モジュール52によって実行される。例えば、図2に示した実施例では、プレイヤオブジェクト86Aないし86C並びにノンプレイヤオブジェクト88A及び88Bがいずれも、他のオブジェクトに対して攻撃イベントを行うイベント発生オブジェクトとして選定される。
次に、ステップS106に進み、当該仮想空間内の複数のオブジェクトが複数のグループにグループ化される。このグループ化は、例えば、ステップS104において選定された1又は複数のイベント発生オブジェクトと、当該1又は複数のイベント発生オブジェクトが発生させるイベントの対象となるオブジェクトとが同じグループになるように行われる。このグループ化は、例えば、上述したグループ化モジュール53によって実行される。
次に、ステップS108に進み、ステップS106において形成された複数のグループの各々について、仮想空間内に、参照点及びグループ注視点が定められる。例えば、各グループに属するオブジェクトの重心位置がグループ注視点として選択される。また、所定のグループの参照点の位置は、当該所定のグループのグループ注視点の位置に基づいて定められる。この参照点及びグループ注視点の位置の決定は、例えば、上述した参照点決定モジュール54によって実行される。
次に、ステップS110に進み、ステップS108において決定された参照点の位置に基づいて、視点が移動する経路が決定される。上述したように、この視点の移動経路は、例えば、各グループの参照点を所定の順番で連結することで形成される。この経路の決定は、例えば、上述した経路決定モジュール55によって実行される。
次に、ステップS112においては、ステップS110において決定された移動経路に沿って視点が移動し、この視点の位置に応じて所定のイベントが発生する。例えば、図7に示した例においては、視点90がグループG1の参照点R1に移動したことに応じて、当該グループG1に属するイベント発生オブジェクト(すなわち、プレイヤオブジェクト86A及びノンプレイヤオブジェクト88A)が各々のイベントを発生させる。具体的には、プレイヤオブジェクト86Aはノンプレイヤオブジェクト88Aに対する攻撃イベントを発生させ、ノンプレイヤオブジェクト88Aはプレイヤオブジェクト86Aに対する攻撃イベントを発生させる。プレイヤオブジェクト86A及びノンプレイヤオブジェクト88Aの両方の攻撃イベントの間、視点90は参照点R1に固定され、注視点はグループG1のグループ注視点(重心位置GC1に相当)に固定されている。
グループG1に属するイベント発生オブジェクトによるイベントが終わると、視点90は、グループG2の参照点R2に移動する。そして、視点90がグループG2の参照点R2に移動したことに応じて、当該グループG2に属するイベント発生オブジェクト(すなわち、プレイヤオブジェクト86B及び86C並びにノンプレイヤオブジェクト88B)が各々のイベントを発生させる。グループG2の各イベント発生オブジェクトの攻撃イベントの間、視点90は参照点R2に固定され、注視点はグループG2のグループ注視点(重心位置GC2に相当)に固定されている。ステップS112においては、視点の位置だけでなく、当該視点の注視点の位置や画角についても随時決定される。この視点や注視点の位置及び画角に関する制御は、例えば、上述した視点制御モジュール56によって実行され、イベント発生モジュールによるイベントの発生は、例えば、上述したイベント発生モジュール57によって実行される。
次に、ステップS114においては、上述したステップS102ないしステップ112の処理及びこれら以外の処理に基づいて、仮想空間内を移動する視点から見た当該仮想空間の表示画像が生成され、生成された仮想空間の表示画像が表示装置に表示される。この表示装置は、例えば、図1のクライアント端末30のディスプレイである。この仮想空間の表示画像には、オブジェクトの移動を表す画像やオブジェクトによる攻撃を表す画像が含まれ得る。例えば、ターン開始時のオブジェクトの配置に関するデータ及びステップS102において定められた当該オブジェクトの移動に関する移動データ、並びに、オブジェクトが移動する間の視点の位置、注視点の位置、及び画角を示す視点情報に基づいて、オブジェクトの移動を表す移動画像が生成される。
また、ステップS114においては、オブジェクト間での攻撃イベントを表す攻撃イベント画像が生成される。この攻撃イベント画像は、ステップS112で発生する攻撃イベントを示す攻撃イベントデータ、並びに、ステップS112で定められる視点の位置、注視点の位置、及び画角を示す視点情報に基づいて生成される。このように、所定のターンにおける仮想空間の表示画像は、オブジェクトの移動を表す移動画像と、オブジェクトの攻撃イベントを表す攻撃イベント画像を含むことができる。表示装置には、まず上述のようにして生成されたオブジェクトの移動を表す移動画像が表示され、続いてオブジェクト間の攻撃イベントを表す攻撃イベント画像が表示される。このような仮想空間の表示画像の表示制御は、例えば、上述した表示制御モジュール58により実行される。
表示装置のディスプレイに表示される仮想空間の表示画像の例について、再び図7、図9及び図10を参照して説明する。上述したように、一実施形態において、プレイヤオブジェクト86A及びノンプレイヤオブジェクト88Aの両方の攻撃イベントの間、視点90は参照点R1に固定され、注視点はグループG1のグループ注視点(重心位置GC1に相当)に固定されているので、グループG1に属するイベント発生オブジェクトによるイベントは、参照点R1に固定された視点からグループG1のグループ注視点に固定された注視点を見た画像として表現される。図9は、参照点R1に固定された視点からグループG1のグループ注視点に固定された注視点を見た画像(攻撃イベント画像)を示す。図示のとおり、この攻撃イベント座標は、グループG1のグループ注視点GC1(プレイヤオブジェクト86A及びノンプレイヤオブジェクト88Aの重心位置)がディスプレイのほぼ中央に位置するように表示される。次に、視点がグループG2の参照点R2に移動すると、この参照点R2に固定された視点からグループG2のグループ注視点GC2に固定された注視点を見た画像がグループG2に対応する攻撃イベント画像として生成される。このグループG2に対応する攻撃イベント画像は、図10に示すように、グループG2のグループ注視点GC2(プレイヤオブジェクト86B及び86C並びにノンプレイヤオブジェクト88Bの重心位置)がディスプレイのほぼ中央に位置するように表示される。このように、視点が参照点R1から参照点R2への移動に対応して、表示装置に表示されている仮想空間の表示画像は、図9に示されている画像から図10に示されている画像に変化する。このとき、表示装置を見ているユーザにとっては、仮想空間が図の右下方向へ移動したように見える。
以上のようにして所定のターンにおける仮想空間の表示画像が生成されると、当該ターンにおける表示画像の生成処理は終了し、必要に応じて、次ターンにおける表示画像の生成処理が開始される。図11の実施形態においては、ターンの開示後にグループ化が行われるが、上述のように、ターンの開始前(例えば、ゲーム開始時やプレイヤによって指定された所定のタイミング)にグループ化がなされていてもよい。グループ化以外の図11の実施形態で説明した処理についても、必要に応じて、ターンの開始前に実行され得る。
以上説明した仮想空間の表示画像は、当該仮想空間内の複数のオブジェクトをグループ化した複数のグループの各々について参照点を定め、視点は、このグループごとに定められた参照点に所定の順番で移動するので、個々のオブジェクトの位置に視点が移動する従来の視点制御方法よりも、視点の移動回数が少なくて済む。特に、一実施形態においては、各グループにおけるイベントを表すイベント画像(例えば、攻撃イベント画像)が、当該グループの参照点に固定した視点から当該グループのグループ注視点に固定された注視点を見た画像として表されるので、当該グループに属するオブジェクトが発生させるイベントを安定した(視点の動きが少ない)画像で見ることができる。この際、注視点の位置も、グループごとに設定されたグループ注視点に固定され得る。したがって、当該実施形態に従って表示される仮想空間の表示画像は、イベントを発生させるオブジェクトに逐一視点を移動させて表示される従来の表示画像よりも少ない視点の移動回数で仮想空間内でのイベントの発生を表現することができる。
以上の実施形態において、イベント発生オブジェクトではなく、また、イベント発生オブジェクトによるイベントの対象ともなっていないオブジェクト(以下「ノーアクションオブジェクト」という。)は、いずれのグループにも属さないため、視点が当該ノーアクションオブジェクトに相当する位置には移動しないが、ノーアクションオブジェクトは、イベントと関係がないので、特に視点を移動させて表示画像に含める必要性が小さい点に留意されたい。
本明細書中で説明される処理及び手順が単一の装置、ソフトウェア、コンポーネント、モジュールによって実行される旨が説明されたとしても、そのような処理または手順は複数の装置、複数のソフトウェア、複数のコンポーネント、及び/又は複数のモジュールによって実行され得る。また、本明細書中で説明されるデータ、テーブル、又はデータベースが単一のメモリに格納される旨説明されたとしても、そのようなデータ、テーブル、又はデータベースは、単一の装置に備えられた複数のメモリまたは複数の装置に分散して配置された複数のメモリに分散して格納され得る。さらに、本明細書において説明されるソフトウェアおよびハードウェアの要素は、それらをより少ない構成要素に統合して、またはより多い構成要素に分解することによって実現することも可能である。
本明細書において、発明の構成要素が単数もしくは複数のいずれか一方として説明された場合、又は、単数もしくは複数のいずれとも限定せずに説明された場合であっても、文脈上別に解すべき場合を除き、当該構成要素は単数又は複数のいずれであってもよい。
本明細書において説明された処理手順、特にフロー図を用いて説明された処理手順においては、その処理手順を構成する工程(ステップ)の一部を省略すること、その処理手順を構成する工程として明示されていない工程を追加すること,及び/又は当該工程の順序を入れ替えることが可能であり、このような省略、追加、順序の変更がなされた処理手順も本発明の趣旨を逸脱しない限り本発明の範囲に含まれる。