説明

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

【課題】マルチプレーヤ対戦ゲームにおいて、他のプレーヤ同士が対戦しやすい状況を設定可能な所定のコマンドを提供するプログラム、情報記憶媒体、ゲーム機を提供する。
【解決手段】複数のゲーム機に対する入力情報を含むゲーム情報に基づき、仮想3次元空間に存在する複数のキャラクタオブジェクトの対戦演算を行う対戦演算部と、仮想3次元空間を仮想カメラから見たゲーム画像を生成する画像生成部と、対戦演算部は、所与のキャラクタオブジェクト及び所与のキャラクタオブジェクトのアクション対象のキャラクタオブジェクト以外のキャラクタオブジェクトを所与のキャラクタオブジェクトの二次的アクション対象として、二次的アクション対象のキャラクタオブジェクトの位置に基づき目標位置を決定し、アクション対象のキャラクタオブジェクトを目標位置まで移動させる処理を行うコマンド処理部を含む。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラム、情報記憶媒体、及びゲーム機に関する。
【背景技術】
【0002】
従来から、ネットワークを介して複数のプレーヤが参加してゲームを行うオンラインゲームが知られている。最近では、複数のキャラクタオブジェクトが対戦を行い、上位にはいれば勝ち残り、続けて次のプレイが可能なバトルロイヤル形式のオンライン対戦ゲームの人気が高い。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2003−62345公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
バトルロイヤル形式のゲームにおいては、逃げ回って敵との対戦を避け、敵同士の戦いによるつぶし合いにより漁夫の利をえて勝ち逃げを図るという戦法をとることが可能である。しかし、かかる勝ち逃げが横行すると、対戦ゲーム本来のおもしろさを満喫できず、プレーヤは興ざめするが、他のプレーヤ同士を対戦に追い込む状況設定を行うことは困難であるという問題点があった。
【0005】
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、マルチプレーヤ対戦ゲームにおいて、他のプレーヤ同士が対戦しやすい状況を設定可能な所定のコマンドを提供するプログラム、情報記憶媒体、ゲーム機を提供することにある。
【課題を解決するための手段】
【0006】
(1)本発明は、
複数のゲーム機がネットワークを介して対戦ゲームを行うためのプログラムであって、
複数のゲーム機に対する入力情報を含むゲーム情報に基づき、仮想3次元空間に存在する複数のキャラクタオブジェクトの対戦演算を行う対戦演算部と、
前記仮想3次元空間を仮想カメラから見たゲーム画像を生成する画像生成部と、してコンピュータを機能させ、
前記対戦演算部は、
所与のキャラクタオブジェクトに対して入力された所定のコマンドを実行する場合に、所与のキャラクタオブジェクト及び所与のキャラクタオブジェクトのアクション対象のキャラクタオブジェクト以外のキャラクタオブジェクトを所与のキャラクタオブジェクトの二次的アクション対象として、当該二次的アクション対象のキャラクタオブジェクトの位置に基づき目標位置を決定し、前記アクション対象のキャラクタオブジェクトを前記目標位置まで移動させる処理を行うコマンド処理部を含むプログラムに関する。
【0007】
本発明は、上記プログラムを記憶した情報記憶媒体に関する。
【0008】
また本発明は、
他のゲーム機とネットワークを介して対戦ゲームを行うゲーム機であって、
自機及び他のゲーム機に対する入力情報を含むゲーム情報に基づき、仮想3次元空間に存在する複数のキャラクタオブジェクトの対戦演算を行う対戦演算部と、
前記仮想3次元空間を仮想カメラから見たゲーム画像を生成する画像生成部と、を含み、
前記対戦演算部は、
所与のキャラクタオブジェクトに対して入力された所定のコマンドを実行する場合に、所与のキャラクタオブジェクト及び所与のキャラクタオブジェクトのアクション対象のキャラクタオブジェクト以外のキャラクタオブジェクトを所与のキャラクタオブジェクトの二次的アクション対象として、当該二次的アクション対象のキャラクタオブジェクトの位置に基づき目標位置を決定し、前記アクション対象のキャラクタオブジェクトを前記目標位置まで移動させる処理を行うコマンド処理部を含むゲーム機に関する。
【0009】
本発明の対戦ゲームは、ネットワークを介してオンライン対戦を行うマルチプレーヤオンライン対戦ゲームでもよい。複数のゲーム機それぞれが、プレーヤの入力情報を含むゲームデータを、ネットワーク(インターネット等)を介して相互に送受信する処理を行い、データを共有することができるピア・ツー・ピア方式のゲームシステムを採用してもよい。また複数のゲーム機のゲームデータをサーバや、マスターゲーム機が受信して、サーバやマスターゲーム機が演算したデータを各ゲーム機に送信するするサーバ・クライアント方式を採用してもよい。
【0010】
また本発明の対戦ゲームは、3体以上のキャラクタオブジェクトが対戦して、上位のキャラクタオブジェクトが、勝ち残るバトルロイヤル形式の対戦ゲームでもよい。
【0011】
本発明の対戦ゲームは、複数のゲーム機同士でとオンライン対戦を行うマルチプレーヤゲームであるが、キャラクタオブジェクトにNPC(コンピュータが操作するキャラクタ)が含まれていてもよい。
【0012】
画像生成部は、各ゲーム機の操作対象キャラクタ(プレーヤキャラクタ)として設定されているキャラクタオブジェクトの位置に基づき仮想カメラを配置して、当該仮想カメラから見た仮想3次元空間のゲーム画像を生成してもよい。
【0013】
所定のコマンドとは、例えば所与のキャラクタオブジェクトが、アクション対象のキャラクタオブジェクトを、第3者である他のキャラクタオブジェクトに向かって投げる攻撃入力のコマンド(第3者への投げつけコマンド)でもよい。
【0014】
所与のキャラクタオブジェクトのアクション対象とは、所与のキャラクタオブジェクトのターゲットや攻撃相手を意味しており、例えば所与のキャラクタオブジェクトを操作するプレーヤから攻撃コマンドが入力された場合に所与のキャラクタオブジェクトの攻撃対象となるキャラクタオブジェクトである。所与のキャラクタオブジェクトのアクション対象は、所与のキャラクタオブジェクトを操作するプレーヤから入力により指定できるようにしてもよい。
【0015】
所与のキャラクタオブジェクトの二次的アクション対象とは、所定のコマンドを実行する場合に第3者(アクション対象の移動先)となるキャラクタオブジェクトである。二次的アクション対象は、所与のキャラクタオブジェクトを操作するプレーヤから入力により指定できるようにしてもよい。
【0016】
本発明によれば、対戦ゲームにおいて、他のプレーヤ同士が対戦しやすい状況を設定するための所定のコマンド処理を行うプログラム、情報記憶媒体、ゲーム機を提供することができる。
【0017】
(2)また、本発明のプログラム、情報記憶媒体、及び、ゲーム機では、
前記コマンド処理部は、
前記所与のキャラクタオブジェクトがプレーヤキャラクタとして設定されたゲーム機からの入力情報に基づき、前記所与のキャラクタオブジェクトの前記アクション対象となるキャラクタオブジェクト及び前記所与のキャラクタオブジェクトの前記二次的アクション対象となるキャラクタオブジェクトを決定する処理を行ってもよい。
【0018】
例えば前記所与のキャラクタオブジェクトの前記アクション対象となるキャラクタオブジェクト及び前記所与のキャラクタオブジェクトの前記二次的アクション対象となるキャラクタオブジェクトがデフォルトで設定されていて、前記所与のキャラクタオブジェクトがプレーヤキャラクタとして設定されたゲーム機からの入力情報に基づき、前記アクション対象となるキャラクタオブジェクト及び前記所与のキャラクタオブジェクトの前記二次的アクション対象となるキャラクタオブジェクトを変更する構成も本発明の範囲内である。
【0019】
また前記二次的アクション対象となるキャラクタオブジェクトが前記アクション対象となるキャラクタオブジェクトとの関係で一義的に決定される場合に、前記アクション対象となるキャラクタオブジェクトを前記所与のキャラクタオブジェクトがプレーヤキャラクタとして設定されたゲーム機からの入力情報に基づき決定する構成も本発明の範囲内である。
【0020】
(3)また、本発明のプログラム、情報記憶媒体、及び、ゲーム機では、
前記対戦演算部は、
所与のキャラクタオブジェクトがプレーヤキャラクタとして設定されたゲーム機に入力されるアクション対象入力情報に基づき、前記所与のキャラクタオブジェクトのアクション対象となるキャラクタオブジェクトを設定するアクション対象設定部を含み、
前記コマンド処理部は、
前記所与のキャラクタオブジェクトがプレーヤキャラクタとして設定されたゲーム機から前記所定のコマンド又は他のコマンドが入力された場合、前記所与のキャラクタオブジェクトの前記アクション対象として設定されているキャラクタオブジェクトをターゲットとして前記所定のコマンド又は他のコマンド実行し、
前記アクション対象設定部は、
前記所定のコマンドが実行された場合には、前記所与のキャラクタオブジェクトの前記アクション対象となっているキャラクタオブジェクトのアクション対象を、前記所与のキャラクタオブジェクトの前記二次的アクション対象となっているキャラクタオブジェクトに変更する処理を行ってもよい。
【0021】
本発明によれば、通常時(所定のコマンド実行時以外)の各キャラクタオブジェクトのアクション対象は、各キャラクタオブジェクトがプレーヤキャラクタとして設定されたゲーム機からの入力により設定されるが、所定のコマンドが実行されて各キャラクタオブジェクトがそのアクション対象となっている場合には、各キャラクタオブジェクトは操作不能状態になり、各キャラクタオブジェクトの前記アクション対象が、他のキャラクタオブジェクトを操作するプレーヤの入力によって強制的に変更されることになる。従って各プレーヤは、所定のコマンドを使用することで、自機のプレーヤキャラクタ以外のキャラクタオブジェクト同士が対戦を行いやすい環境を作ることができ、対戦を回避する他のプレーヤを対戦状態に引きずり込むことができる。
【0022】
(4)また、本発明のプログラム、情報記憶媒体、及び、ゲーム機では、
前記コマンド処理部は
前記所定のコマンドを実行する場合、前記アクション対象のキャラクタオブジェクトの位置と前記目標位置に基づき前記アクション対象のキャラクタオブジェクトの移動経路を演算し、移動経路上に障害物となるオブジェクトがあるか否か判定する処理を行ってもよい。
【0023】
移動経路は直線でもよいし、曲線(例えば放物線や所定の軌跡関数で得られる線)でもよい。移動経路上に障害物がない場合に、前記アクション対象のキャラクタオブジェクトを前記目標位置まで移動させる処理を行ってもよい。
【0024】
(5)また、本発明のプログラム、情報記憶媒体、及び、ゲーム機では、
前記コマンド処理部は、
障害物となるオブジェクトがあると判断した場合には、前記移動経路を変更する移動経路変更処理を行ってもよい。
【0025】
(6)また、本発明のプログラム、情報記憶媒体、及び、ゲーム機では、
前記コマンド処理部は、
前記移動経路上に障害物となるオブジェクトがあると判断した場合であって、前記障害物となるオブジェクトが破壊又は消滅可能な属性を有している場合には、前記アクション対象のキャラクタオブジェクトを前記移動経路に従って移動させるとともに、前記障害物となるオブジェクトを破壊又は消滅させる処理を行ってもよい。
【0026】
(7)また、本発明のプログラム、情報記憶媒体、及び、ゲーム機では、
所与のキャラクタオブジェクトが他のキャラクタオブジェクトのアクション対象となっている場合には、当該所与のキャラクタオブジェクトをアクション対象としている他のキャラクタオブジェクトを告知する敵告知画像の表示制御を行う敵告知画像表示制御部と、してコンピュータを機能させてもよい。
【0027】
(8)また、本発明のプログラム、情報記憶媒体、及び、ゲーム機では、
前記敵告知画像表示制御部は、
前記敵告知画像として、キャラクタオブジェクトとそのアクション対象のキャラクタオブジェクトとをつなぐ線を含むライン画像の表示制御を行ってもよい。
【0028】
前記敵告知画像表示制御部は、
前記敵告知画像として、各ゲーム機のプレーヤキャラクタ以外のキャラクタオブジェクトと、そのアクション対象となっているキャラクタオブジェクトとをつなぐ線を含むライン画像の表示制御を行うようにしてもよい。
【0029】
ライン画像を構成する線の画像は、3次元空間内に設定された直線又は曲線を透視変換して生成した線の画像でもよいし、スクリーン座標系に投影されたゲーム画像にひかれた線の画像でもよい。線は直線でもよいし、曲線でもよい。
【0030】
ライン画像には、各ゲーム機のプレーヤキャラクタ以外のキャラクタオブジェクトと、アクション対象となっているキャラクタオブジェクトとをつなぐ線以外の付加要素(例えば攻撃対象を指す矢印等)を含んでもよい。
【0031】
(9)また、本発明のプログラム、情報記憶媒体、及び、ゲーム機では、
所与のキャラクタオブジェクトがアクション対象のキャラクタオブジェクトに対して、所定のコマンドで規定された動作を実行する場合、前記目標位置に基づき、所与のキャラクタオブジェクトのモーション補正を行うモーション補正処理部としてコンピュータを機能させてもよい。
【0032】
所定のコマンド実行中に二次的アクション対象は変更可能なので、二次的アクション対象の位置に応じて所与のキャラクタオブジェクトの動作の向き等が異なってくる。このような場合に、二次的アクション対象の位置に応じて、基本となるモーションデータを補正して使用することで、モーションデータのデータ量の増加を防止することができる。
【0033】
(10)また、本発明のプログラム、情報記憶媒体、及び、ゲーム機では、
前記画像生成部は、
所与のキャラクタオブジェクトが前記アクション対象のキャラクタオブジェクトに対して所定のコマンドを実行する場合、所与のキャラクタオブジェクトとそのアクション対象のキャラクタオブジェクトとその二次的アクション対象のキャラクタオブジェクトの位置に基づき、仮想カメラの配置を制御してもよい。
【0034】
仮想カメラの配置とは仮想カメラの位置及び向きの少なくとも1つを含む。所与のキャラクタオブジェクト、前記アクション対象のキャラクタオブジェクト、二次的アクション対象のキャラクタオブジェクトが表示されるように(ビューボリュームに収まるように)仮想カメラの配置条件を演算してもよい。
【0035】
(11)また、本発明のプログラム、情報記憶媒体、及び、ゲーム機では、
上記のいずれかに記載のプログラムが記憶されたコンピュータ読み取り可能な情報記憶媒体である。
【図面の簡単な説明】
【0036】
【図1】本実施形態のゲーム機の機能ブロック図。
【図2】本実施形態のネットワーク図。
【図3】本実施の形態のゲーム画像の一例。
【図4】所定のコマンド実行時のゲーム画像例。
【図5】所定のコマンド実行時のゲーム画像例。
【図6】所定のコマンド実行時のゲーム画像例。
【図7】所定のコマンド実行時に障害物となるオブジェクトを破壊する場合のゲーム画像例。
【図8】所定のコマンド実行時に障害物となるオブジェクトを破壊する場合のゲーム画像例。
【図9】ライン画像が表示されているゲーム画像の一例である。
【図10】複数のキャラクタオブジェクトが、仮想3次元空間に存在する様子を模式的に示した図。
【図11】図11(A)(B)は、移動経路上に障害物が存在する場合の処理ついて説明するための図。
【図12】図12(A)(B)は、移動経路上に障害物が存在する場合の処理ついて説明するための図。
【図13】各ゲーム機の操作部の一例。
【図14】アクション対象の設定について説明するための図。
【図15】所定のコマンドの入力から実行終了までの流れを示すタイムチャート。
【図16】図16(A)〜(C)は、所与のオブジェクトのモーション補正について説明するための図。
【図17】図17(A)〜(C)は、所与のキャラクタオブジェクトの向き補正について説明するための図。
【図18】本実施形態のフローチャート。
【図19】本実施形態のフローチャート。
【図20】図20(A)(B)は、所定のコマンド実行時の移動経路の補正処理について説明するための図。
【図21】敵告知画像が表示されているゲーム画像の一例。
【図22】所定のコマンド実行時の仮想カメラの配置制御について説明するための図。
【発明を実施するための形態】
【0037】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【0038】
1.構成
図1に本実施形態のゲーム機の機能ブロック図を示す。なお本実施形態のゲーム機は図1の構成要素(各部)の一部を省略した構成としてもよい。
【0039】
操作部160は、プレーヤがプレーヤキャラクタ(プレーヤが操作するプレーヤキャラクタ、移動体、プレーヤオブジェクト、ゲームキャラクタを含む)の操作情報を入力するためのものであり、その機能は、レバー、ボタン、ステアリング、マイク、タッチパネル型ディスプレイ、或いは筺体などにより実現できる。
【0040】
記憶部170は、処理部100や通信部196などのワーク領域となるもので、その機能はRAM(VRAM)などにより実現できる。特に、本実施形態の記憶部170は、主記憶部172、画像バッファ174を有している。
【0041】
情報記憶媒体180(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを入力するものであり、その機能は、光ディスク(CD、DVD)、光磁気ディスク(MO)、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ(ROM)、メモリカードなどにより実現できる。処理部100は、情報記憶媒体180に入力されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体180には、本実施形態の各部としてコンピュータを機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)が記憶される。
【0042】
表示部190は、本実施形態により生成された画像を出力するものであり、その機能は、CRT、LCD、タッチパネル型ディスプレイ、或いはHMD(ヘッドマウントディスプレイ)などにより実現できる。音出力部192は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
【0043】
通信部196は外部(例えば、他機、サーバや他のゲームシステム)との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ASICなどのハードウェアや、プログラムなどにより実現できる。
【0044】
なお、ゲーム機が、本実施形態の各部としてコンピュータを機能させるためのプログラム(データ)を、ネットワークを介してサーバからダウンロードし、情報記憶媒体180に記憶するようにしてもよい。このようなサーバに入力されているプログラムの出力も本発明の範囲内に含めることができる。
【0045】
処理部100(プロセッサ)は、操作部160からの操作情報(入力情報の一例)やプログラムなどに基づいて、ゲーム演算処理、画像生成処理、或いは音生成処理などの処理を行う。この処理部100は記憶部170内の主記憶部172をワーク領域として各種処理を行う。処理部100の機能は各種プロセッサ(CPU、DSP等)、ASIC(ゲートアレイ等)などのハードウェアや、プログラムにより実現できる。
【0046】
処理部100は、ゲーム演算部110、オブジェクト空間設定部111、仮想カメラ制御部112、移動・動作処理部113、ネットワーク設定部114、通信制御部115、コマンド処理部122、アクション対象設定部124、敵告知画像表示制御部126,描画部130、音生成部140を含む。なおこれらの一部を省略する構成としてもよい。
【0047】
ゲーム演算部110は、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、キャラクタやマップなどのオブジェクトを配置する処理、オブジェクトを表示する処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などがある。
【0048】
本実施の形態では、複数(例えば4名)のプレーヤのプレーヤキャラクタがバトルロイヤル形式の対戦ゲームを行い、上位(例えば2名)のプレーヤキャラクタが勝ち残り、勝ち残ったプレーヤキャラクタは、次の対戦に進むことができる。
【0049】
ゲーム開始時に各プレーヤキャラクタの体力値を初期値(例えば100)に設定し、ゲームを開始してからゲームが終了するまでのゲーム期間(例えば、90秒の間)に、フレーム毎に、各プレーヤからの入力情報に基づいてヒット判定処理を行い、ヒット判定結果に基づいていて、各プレーヤキャラクタの体力値を減算させる。各プレーヤキャラクタの体力値が0になった場合には、当該プレーヤキャラクタの敗退を確定させてもよい。またゲーム期間経過時点で、体力値が0より大きい値であるプレーヤキャラクタの数が勝ち残り人数より多い場合には、体力値がより大きなプレーヤキャラクタの方が上位の順位として勝ち残るよう判定する。
【0050】
ゲーム演算部110は、複数のゲーム機に対する入力情報を含むゲーム情報に基づき、仮想3次元空間に存在する複数のキャラクタオブジェクトの対戦演算を行う対戦演算部として機能する。
【0051】
オブジェクト空間設定部111は、キャラクタオブジェクト、移動体、建物、球場、車、樹木、柱、壁、マップ(地形)などの表示物を表す各種オブジェクト(ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブで構成されるオブジェクト)をオブジェクト空間に配置設定する処理を行う。即ちワールド座標系でのオブジェクトの位置や回転角度(向き、方向と同義)を決定し、その位置(X、Y、Z)にその回転角度(X、Y、Z軸回りでの回転角度)でオブジェクトを配置する。
【0052】
仮想カメラ制御部112は、オブジェクト空間内の所与(任意)の仮想カメラ(視点)から見える画像を生成するための仮想カメラの制御処理を行う。具体的には、仮想カメラの位置(X、Y、Z)又は回転角度(X、Y、Z軸回りでの回転角度)を制御する処理(視点位置、視線方向あるいは画角を制御する処理)を行う。また、画角を制御するようにしてもよい。
【0053】
例えば、仮想カメラによりオブジェクト(例えば、プレーヤキャラクタ、ボール、車)を後方から撮影する場合には、オブジェクトの位置又は回転の変化に仮想カメラが追従するように、仮想カメラの位置又は回転角度(仮想カメラの向き)を制御する。この場合には、移動・動作処理部で得られたオブジェクトの位置、回転角度又は速度などの情報に基づいて、仮想カメラを制御できる。或いは、仮想カメラを、予め決められた回転角度で回転させたり、予め決められた移動経路で移動させる制御を行ってもよい。この場合には、仮想カメラの位置(移動経路)又は回転角度を特定するための仮想カメラデータに基づいて仮想カメラを制御する。なお、仮想カメラ(視点)が複数存在する場合には、それぞれの仮想カメラについて上記の制御処理が行われる。
【0054】
また仮想カメラ制御部112は、所与のキャラクタオブジェクトが前記アクション対象のキャラクタオブジェクトに対して所定のコマンドを実行する場合、所与のキャラクタオブジェクトとそのアクション対象のキャラクタオブジェクトとその二次的アクション対象のキャラクタオブジェクトの位置に基づき、仮想カメラの配置を制御してもよい。
【0055】
移動・動作処理部113は、モデル(キャラクタ、車、電車又は飛行機等)の移動・動作演算(移動・動作シミュレーション)を行う。すなわち操作部160によりプレーヤが入力した操作データや、プログラム(移動・動作アルゴリズム)や、各種データ(モーションデータ)などに基づいて、モデルをオブジェクト空間内で移動させたり、オブジェクトを動作(モーション、アニメーション)させたりする処理を行う。具体的には、オブジェクトの移動情報(位置、回転角度、速度、或いは加速度)や動作情報(オブジェクトを構成する各パーツの位置、或いは回転角度)を、1フレーム(1/60秒)毎に順次求めるシミュレーション処理を行う。なおフレームは、オブジェクトの移動・動作処理(シミュレーション処理)や画像生成処理を行う時間の単位である。
【0056】
特に、本実施形態の移動・動作処理部113は、プレーヤからの入力情報に基づいて、プレーヤの操作対象のプレーヤキャラクタを移動・動作させる処理を行うことができる。また、後述する通信制御部115によって送信されたパケットに含まれる他機のゲームデータに基づいて、他機を使用するプレーヤの操作対象の第2のキャラクタオブジェクトを、自機を使用するプレーヤの操作対象となる第1のキャラクタオブジェクトと同一のオブジェクト空間において移動・動作させる処理を行うことができる。
【0057】
本実施形態の移動・動作処理部113は、自機の操作部から入力されたゲームデータに基づいて、自機を使用するプレーヤの操作対象の第1のキャラクタオブジェクトを動作させる演算と、ネットワークを介して受信した他機のゲームデータに基づいて、他機を使用するプレーヤの操作対象のプレーヤキャラクタ(第2のプレーヤキャラクタや第3のプレーヤキャラクタ)を動作させる演算を行うことができる。
【0058】
なお移動・動作処理部113は、所定のコマンドによるキャラクタオブジェクトの移動動作演算を行うコマンド処理部としても機能する。
【0059】
また移動・動作処理部113は、所与のキャラクタオブジェクトがアクション対象のキャラクタオブジェクトに対して、所定のコマンドで規定された動作を実行する場合、前記目標位置に基づき、所与のキャラクタオブジェクトのモーション補正を行うモーション補正処理部として機能する。
【0060】
ネットワーク設定部114は、ゲームシステムで必要となるネットワーク情報を取得し、管理する処理等を行う。特に、本実施形態のネットワーク設定部は、各ゲーム機に個別に付与されるゲーム機の識別情報(オンラインゲームに参加できるゲーム機を識別するために個別に付与されたデータ)と、ゲーム機の識別情報に対応付けられたパケットの送信先を指定する宛先情報とを取得し、管理する処理を行う。
【0061】
また、宛先情報とは、ゲームシステムを構成する各ゲーム機のIPアドレス、ポート番号とすることができる。IPアドレスは、インターネット上もしくはWANで特定のゲーム機を特定するためのグローバルIPアドレスとしてもよいし、LANで特定のゲーム機を特定するためのプライベートIPアドレスとしてもよい。
【0062】
通信制御部115は、他機(第2のゲーム機〜第4のゲーム機)に送信するパケットを生成する処理、パケット送信先のゲーム機のIPアドレスやポート番号を指定する処理、受信したパケットに含まれるデータを記憶部170に保存する処理、受信したパケットを解析する処理、その他のパケットの送受信に関する制御処理等を行う。
【0063】
パケットとは、ネットワークを介して通信する固まりであり、送信元IPアドレス、送信先IPアドレスを含むネットワークに必要なヘッダーと、送信元において書き込まれたデータがペイロードとからなるデータのことをいう。
【0064】
また、アプリケーションレベルの通信を実現するためには、使用するTCPやUDPプロトコルに応じたアプリケーションの種類を特定するポート番号を指定してパケットを生成する。例えば、TCPプロトコルは、データの送受信の信頼性が高く、例えば、確認応答や再送を利用している。また、TCPプロトコルは、紛失したデータの再送処理を行うことができ、さらにデータの送信順序を確保して送信先のゲーム機にパケットを送信することができる。一方、UDPプロトコルでは、送信の途中でデータを紛失しても再送されず、順番が入れ替わって伝送されることがある。しかし、UDPプロトコルは、TCPプロトコルに比べてオーバーヘッドがないので、リアルタイムにデータを送信するオンラインゲームでは適している場合がある。UDPプロトコルを利用する場合には、バッファに入力するゲームデータが識別番号順(昇順)に入力するようにし、入力対象の識別番号のゲームデータが届いていない場合には、他機に要求するようにしてもよい。本実施形態では、いずれのプロトコルにも対応することができる。なお、UDPプロトコルを利用する場合には、バッファへのゲームデータの入力順序を識別情報(識別番号)の昇順に入力するように制御するようにしてもよい。
【0065】
本実施形態の通信制御部115は、画像を描画するフレームレートに応じてパケットを生成し、接続先の他の複数のゲーム機に生成したパケットを送信する処理を行う。具体的に説明すると、例えば、フレームレートが60fpsである場合には、1/60秒毎に、パケットのヘッダーの送信先IPアドレスと送信先ポート番号に、第2のゲーム機のIPアドレスと使用するポート番号指定し、ヘッダーの送信元のIPアドレスと送信元ポート番号に、他の複数のゲーム機のIPアドレスと使用するポート番号を指定して、ゲームデータを含むデータをパケットのペイロードに入力し、生成したパケットを他の複数のゲーム機に送信する処理を行う。
【0066】
ここで、ゲームデータとは、フレーム毎にゲーム機を操作するプレーヤからの入力情報(操作情報も含む)を含むデータである。例えば、ゲームデータは、入力情報の有無や、入力情報が有る場合には入力情報の内容を示したデータとすることができる。例えば、ゲームデータを数値で示す場合には、入力情報が無い場合はゲームデータを「0」とし、入力情報があってその内容がAボタンの入力である場合にはゲームデータを「1」、入力情報があってその内容がBボタンの入力である場合にはゲームデータを「2」とする。また、入力情報があってその内容がA及びBボタンの入力である場合にはゲームデータを「3」とする。
【0067】
また、ここで、識別情報とは、フレーム毎に付与される複数のゲーム機(第1、第2のゲーム機)において共通のデータである。本実施形態では、第1のゲーム機と第2のゲーム機との接続が確立されたときを基準に、経過時間に応じてフレーム毎に付与される情報とすることができる。例えば、ゲーム機において、フレームレートに応じて取得したゲームデータに対応付けるシーケンシャルな識別番号(1から始まる正の整数)とすることができる。
【0068】
例えば、フレームレートが60fpsである場合を考えると、1/60毎に取得したゲームデータに、識別情報を対応づける。例えば、第1のゲーム機と第2のゲーム機それぞれにおいて、接続が確立された時点に取得したゲームデータには、識別番号「1」を対応付けし、接続確立時から1/60秒後に取得したゲームデータには、識別番号「2」を対応付けし、接続確立時から2/60秒後に取得したゲームデータには、識別番号「3」を対応付けする。
【0069】
また、本実施形態の通信制御部115は、他の複数のゲーム機から送信されたパケットを受信する処理を行う。そして、受信したパケットを解析し、パケットのペイロードに含まれるゲームデータを含むデータを取得する。そして、受信したゲームデータは、後述するバッファ制御部116において、第2のバッファ178に入力される。
【0070】
また、本実施形態の通信制御部115は、複数のゲーム機間においての接続(第1のゲーム機〜第4のゲーム機との接続)が確立されてから接続が切断されるまで、ゲームデータを互いに送受信する処理を行うことができる。
【0071】
なお、本実施形態のゲームに参加する通信グループに所属する複数のゲーム機のうち、1つのゲーム機を親機として特定することができる。親機は、ゲーム空間を生成したゲーム機としてもよい。
【0072】
コマンド処理部122は、所与のキャラクタオブジェクトに対して入力された所定のコマンドを実行する場合に、所与のキャラクタオブジェクト及び所与のキャラクタオブジェクトのアクション対象のキャラクタオブジェクト以外のキャラクタオブジェクトを所与のキャラクタオブジェクトの二次的アクション対象として、当該二次的アクション対象のキャラクタオブジェクトの位置に基づき目標位置を決定し、前記アクション対象のキャラクタオブジェクトを前記目標位置まで移動させる処理を行う。
【0073】
またコマンド処理部122は、前記所与のキャラクタオブジェクトがプレーヤキャラクタとして設定されたゲーム機からの入力情報に基づき、前記所与のキャラクタオブジェクトの前記アクション対象となるキャラクタオブジェクト及び前記所与のキャラクタオブジェクトの前記二次的アクション対象となるキャラクタオブジェクトを決定する処理を行ってもよい。
【0074】
またアクション対象設定部124は、所与のキャラクタオブジェクトがプレーヤキャラクタとして設定されたゲーム機に入力されるアクション対象入力情報に基づき、前記所与のキャラクタオブジェクトのアクション対象となるキャラクタオブジェクトを設定する。 またコマンド処理部122は、前記所与のキャラクタオブジェクトがプレーヤキャラクタとして設定されたゲーム機から前記所定のコマンド又は他のコマンドが入力された場合、前記所与のキャラクタオブジェクトの前記アクション対象として設定されているキャラクタオブジェクトをターゲットとして前記所定のコマンド又は他のコマンド実行し、アクション対象設定部124は、前記所定のコマンドが実行された場合には、前記所与のキャラクタオブジェクトの前記アクション対象となっているキャラクタオブジェクトのアクション対象を、前記所与のキャラクタオブジェクトの前記二次的アクション対象となっているキャラクタオブジェクトに変更する処理を行ってもよい。
【0075】
またコマンド処理部122は、前記所定のコマンドを実行する場合、前記アクション対象のキャラクタオブジェクトの位置と前記目標位置に基づき前記アクション対象のキャラクタオブジェクトの移動経路を演算し、移動経路上に障害物となるオブジェクトがあるか否か判定する処理を行ってもよい。
【0076】
コマンド処理部122は、障害物となるオブジェクトがあると判断した場合には、前記移動経路を変更する移動経路変更処理を行ってもよい。
【0077】
またコマンド処理部122は、前記移動経路上に障害物となるオブジェクトがあると判断した場合であって、前記障害物となるオブジェクトが破壊又は消滅可能な属性を有している場合には、前記アクション対象のキャラクタオブジェクトを前記移動経路に従って移動させるとともに、前記障害物となるオブジェクトを破壊又は消滅させる処理を行ってもよい。
【0078】
敵告知画像表示制御部126は、所与のキャラクタオブジェクトが他のキャラクタオブジェクトのアクション対象となっている場合には、当該所与のキャラクタオブジェクトをアクション対象としている他のキャラクタオブジェクトを告知する敵告知画像の表示制御を行う。
【0079】
また敵告知画像表示制御部126は、前記敵告知画像として、キャラクタオブジェクトとそのアクション対象のキャラクタオブジェクトとをつなぐ線を含むライン画像の表示制御を行ってもよい。
【0080】
描画部130は、処理部100で行われる種々の処理(ゲーム処理)の結果に基づいて描画処理を行い、これにより画像を生成し、表示部190に出力する。いわゆる3次元ゲーム画像を生成する場合には、まずオブジェクト(モデル)の各頂点の頂点データ(頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等)を含むオブジェクトデータ(モデルデータ)が入力され、入力されたオブジェクトデータ(モデルデータ)に含まれる頂点データに基づいて、頂点処理(頂点シェーダによるシェーディング)が行われる。なお頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理(テッセレーション、曲面分割、ポリゴン分割)を行うようにしてもよい。頂点処理では、頂点処理プログラム(頂点シェーダプログラム、第1のシェーダプログラム)に従って、頂点の移動処理や、座標変換(ワールド座標変換、カメラ座標変換)、クリッピング処理、あるいは透視変換等のジオメトリ処理が行われ、その処理結果に基づいて、オブジェクトを構成する頂点群について与えられた頂点データを変更(更新、調整)する。そして、頂点処理後の頂点データに基づいてラスタライズ(走査変換)が行われ、ポリゴン(プリミティブ)の面とピクセルとが対応づけられる。そしてラスタライズに続いて、画像を構成するピクセル(表示画面を構成するフラグメント)を描画するピクセル処理(ピクセルシェーダによるシェーディング、フラグメント処理)が行われる。ピクセル処理では、ピクセル処理プログラム(ピクセルシェーダプログラム、第2のシェーダプログラム)に従って、テクスチャの読出し(テクスチャマッピング)、色データの設定/変更、半透明合成、アンチエイリアス等の各種処理を行って、画像を構成するピクセルの最終的な描画色を決定し、透視変換されたオブジェクトの描画色を画像バッファ174(ピクセル単位で画像情報を記憶できるバッファ。VRAM、レンダリングターゲット)に出力(描画)する。すなわち、ピクセル処理では、画像情報(色、法線、輝度、α値等)をピクセル単位で設定あるいは変更するパーピクセル処理を行う。これにより、オブジェクト空間内において仮想カメラ(所与の視点)から見える画像が生成される。なお、仮想カメラ(視点)が複数存在する場合には、それぞれの仮想カメラから見える画像を分割画像として1画面に表示できるように画像を生成することができる。
【0081】
なお、頂点処理やピクセル処理は、シェーディング言語によって記述されたシェーダプログラムによって、ポリゴン(プリミティブ)の描画処理をプログラム可能にするハードウェア、いわゆるプログラマブルシェーダ(頂点シェーダやピクセルシェーダ)により実現される。プログラマブルシェーダでは、頂点単位の処理やピクセル単位の処理がプログ
ラム可能になることで描画処理内容の自由度が高く、従来のハードウェアによる固定的な描画処理に比べて表現力を大幅に向上させることができる。
【0082】
そして、描画部130は、オブジェクトを描画する際に、ジオメトリ処理、テクスチャマッピング、隠面消去処理、αブレンディング等を行う。
【0083】
ジオメトリ処理では、オブジェクトに対して、座標変換、クリッピング処理、透視投影変換、或いは光源計算等の処理が行われる。そして、ジオメトリ処理後(透視投影変換後)のオブジェクトデータ(オブジェクトの頂点の位置座標、テクスチャ座標、色データ(輝度データ)、法線ベクトル、或いはα値等)は、オブジェクトデータ記憶部176に保存される。
【0084】
テクスチャマッピングは、記憶部170のテクスチャ記憶部に記憶されるテクスチャ(テクセル値)をオブジェクトにマッピングするための処理である。具体的には、オブジェクトの頂点に設定(付与)されるテクスチャ座標等を用いて記憶部170のテクスチャ記憶部からテクスチャ(色(RGB)、α値などの表面プロパティ)を読み出す。そして、2次元の画像であるテクスチャをオブジェクトにマッピングする。この場合に、ピクセルとテクセルとを対応づける処理や、テクセルの補間としてバイリニア補間などを行う。
【0085】
隠面消去処理としては、描画ピクセルのZ値(奥行き情報)が入力されるZバッファ(奥行きバッファ)を用いたZバッファ法(奥行き比較法、Zテスト)による隠面消去処理を行うことができる。すなわちオブジェクトのプリミティブに対応する描画ピクセルを描画する際に、Zバッファに入力されるZ値を参照する。そして参照されたZバッファのZ値と、プリミティブの描画ピクセルでのZ値とを比較し、描画ピクセルでのZ値が、仮想カメラから見て手前側となるZ値(例えば小さなZ値)である場合には、その描画ピクセルの描画処理を行うとともにZバッファのZ値を新たなZ値に更新する。
【0086】
αブレンディング(α合成)は、α値(A値)に基づく半透明合成処理(通常αブレンディング、加算αブレンディング又は減算αブレンディング等)のことである。
【0087】
なお、α値は、各ピクセル(テクセル、ドット)に関連づけて記憶できる情報であり、例えば色情報以外のプラスアルファの情報である。α値は、マスク情報、半透明度(透明度、不透明度と等価)、バンプ情報などとして出力できる。
【0088】
音生成部140は、処理部100で行われる種々の処理の結果に基づいて音処理を行い、BGM、効果音、又は音声などのゲーム音を生成し、音出力部192に出力する。
【0089】
2.本実施形態の手法
(1)ゲームシステム
本実施形態のゲームシステムは、複数のゲーム機でマルチプレーヤ対戦ゲームを行うためのゲームシステムである。本実施形態のゲームシステムは、各ゲーム機のプレーヤの操作対象のキャラクタオブジェクト(プレーヤキャラクタ)が、他のゲーム機のプレーヤの操作対象のキャラクタオブジェクト(他のプレーヤのプレーヤキャラクタ)に攻撃を加えることによってキャラクタオブジェクトにダメージを与え、キャラクタオブジェクトの体力値を減少させる対戦ゲームを行う。そして各キャラクタオブジェクトの体力値に基づいて、各プレーヤの勝敗を判定する処理を行う。
【0090】
図2は、本実施形態のゲームシステムの一例を示す。本実施形態のゲームシステムでは、ゲーム機11、12,13、14を含む複数のゲーム機がインターネット等のネットワーク10を介して接続されており、オンライン対戦ゲームを行うことができる。オンライン対戦ゲームに参加する各ゲーム機11、12,13、14が、ネットワーク10を介して相互に直接通信して、データを共有することができるピア・ツー・ピア方式のゲームシステムを採用してもよい。
【0091】
本実施形態では、第1のゲーム機11、第2のゲーム機12、第3のゲーム機13、第4のゲーム機14の相互間において、ゲーム機を操作するプレーヤからの入力情報の検出結果を含むゲームデータを送受信する処理を行い、各ゲーム機は自機の入力データと他機から受信したゲームデータにもとづき、同じ仮想3次元空間内に存在する複数のキャラクタオブジェクトが対戦するゲーム演算を行う。
【0092】
第1のゲーム機11、第2のゲーム機12、第3のゲーム機13、第4のゲーム機14は、例えばアミューズメント施設に置かれている業務用のゲーム機でもよいし、家庭のパーソナルコンピュータやゲーム端末等でもよい。
【0093】
ここで、ゲームデータとは、フレーム毎に、方向キー、第1のボタン〜第nのボタン等のキー入力によって検出された検出信号等のプレーヤの入力情報や、キー入力の検出結果を対応するコマンドに変換した情報、入力情報がないという情報(例えば、「キー入力なし」の情報)も含む。
【0094】
本実施の形態では第1のゲーム機11、第2のゲーム機12、第3のゲーム機13、第4のゲーム機14において各プレーヤが、それぞれ仮想3次元空間内の第1のキャラクタオブジェクト、第2のキャラクタオブジェクト、第3のキャラクタオブジェクト、第4のキャラクタオブジェクトを操作して、オンライン対戦ゲームを行うことができる。
【0095】
例えば、第1のゲーム機11は、第1のゲーム機11への入力されたデータ(ゲームデータ)に基づいて、第1のキャラクタオブジェクト(第1のゲーム機11を使用するプレーヤの操作対象のプレーヤキャラクタ)の移動・動作演算等のゲーム演算を行い、第1のゲーム機11のゲームデータを、ネットワーク10を介して第2のゲーム機12、第3のゲーム機13、第4のゲーム機14へ送信する処理を行う。また第1のゲーム機11は、ネットワークを介して受信した第2のゲーム機12、第3のゲーム機13、第4のゲーム機14のゲームデータに基づいて、第2のキャラクタオブジェクト(第2のゲーム機を使用するプレーヤの操作対象のプレーヤキャラクタ)、第3のキャラクタオブジェクト(第3のゲーム機を使用するプレーヤの操作対象のプレーヤキャラクタ)、第4のキャラクタオブジェクト(第4のゲーム機を使用するプレーヤの操作対象のプレーヤキャラクタ)の移動・動作演算等のゲーム演算を行う。また、第2のゲーム機12、第3のゲーム機13、第4のゲーム機14においても、第1のゲーム機と同様に、自機に入力されたゲームデータと他機から受信したゲームデータに基づき、ゲーム演算処理を行う。
【0096】
(2)マルチプレーヤ対戦ゲーム
本実施の形態を、複数プレーヤ(ここでは4名)が、バトルロイヤル形式(ここでは上位2名が勝ち残り)の対戦ゲームを行う場合を例にとり説明する。各プレーヤは、自機の操作部から操作入力を行うことで、自機のプレーヤキャラクタであるキャラクタオブジェクトを操作して、他のキャラクタオブジェクト(他のプレーヤが他機から操作入力を行って操作するキャラクタオブジェクト)との対戦を行う。対戦によりダメージを受けると、各キャラクタオブジェクトの体力値は減少し、所定の値(例えば0)になると、当該キャラクタオブジェクトを操作するプレーヤはゲームオーバーとなる。いずれか他のキャラクタオブジェクト2体の体力値が所定の値(例えば0)になるか、ゲーム期間経過時点で体力値が上位2名に入れば勝ち残り、さらにプレイを続けることができる。
【0097】
図10は、複数のキャラクタオブジェクト210〜240が、仮想3次元空間300に存在する様子を模式的に示した図である。
【0098】
第1のキャラクタオブジェクト210は、第1のゲーム機のプレーヤが操作するキャラクタオブジェクト(第1のゲーム機のプレーヤキャラクタ)であり、第2のキャラクタオブジェクト220は、第2のゲーム機のプレーヤが操作するキャラクタオブジェクト(第2のゲーム機のプレーヤキャラクタ)であり、第3のキャラクタオブジェクト230は、第3のゲーム機のプレーヤが操作するキャラクタオブジェクト(第3のゲーム機のプレーヤキャラクタ)であり、第4のキャラクタオブジェクト240は、第4のゲーム機のプレーヤが操作するキャラクタオブジェクト(第4のゲーム機のプレーヤキャラクタ)である。
【0099】
各ゲーム機のプレーヤによって操作されるキャラクタオブジェクト210〜240は、同じ仮想3次元空間に存在するが、各ゲーム機に表示される画像は、各ゲーム機のプレーヤキャラクタであるキャラクタオブジェクトに追従する仮想カメラから見た仮想3次元空間の画像としてもよい。このようにすると、各ゲーム機の表示部に、プレーヤキャラクタを中心としたゲーム画像を表示させることができる。
【0100】
第1のゲーム機のゲーム画像は、第1のキャラクタオブジェクト210に追従する仮想カメラ212から仮想3次元空間を見た画像とし、第2のゲーム機のゲーム画像は、第2のプレーヤキャラクタ220に追従する仮想カメラ222から仮想3次元空間を見た画像とし、第3のゲーム機のゲーム画像は、第3のプレーヤキャラクタ230に追従する仮想カメラ232から仮想3次元空間を見た画像とし、第4のゲーム機のゲーム画像は、第4のプレーヤキャラクタ240に追従する仮想カメラ242から仮想3次元空間を見た画像としてもよい。
【0101】
図3は、本実施の形態のゲーム画像の一例である。
【0102】
図3のゲーム画像は第1のゲーム機で生成されるゲーム画像であり、第1のキャラクタオブジェクト210が第2のキャラクタオブジェクト220と対戦している様子を示している。
【0103】
第1のゲーム機で生成されるゲーム画像は、第1のキャラクタオブジェクト210に追従する仮想カメラ212(図10参照)から仮想3次元空間を見た画像となっている。仮想3次元空間には、計4体のキャラクタオブジェクトが存在するが、第1の仮想カメラ212の視野内に入っている第1のキャラクタオブジェクト210と第2のキャラクタオブジェクト220が含まれたゲーム画像が、第1のゲーム機の表示部に表示されている。
【0104】
またゲーム画像には、対戦ゲーム参加する4体のキャラクタオブジェクト210、220、230、240の体力値ゲージ260、270、280、290が表示されている。体力値ゲージの側(近傍)には、各キャラクタオブジェクトを示すマーク(キャラクタオブジェクトの顔画像等でもよい)262、272、282、292が表示され、どの体力値ゲージがどのキャラクタオブジェクトに対応しているか一目で把握可能になっている。
【0105】
例えば、第1のゲーム機(自機)のプレーヤキャラクタである第1のキャラクタオブジェクト210の体力値ゲージ260は、他のキャラクタオブジェクトの体力値ゲージ280、290より大きなスケールで表示してもよい。また例えば第1のゲーム機(自機)のプレーヤキャラクタである第1のキャラクタオブジェクト210のアクション対象である第2のキャラクタオブジェクト220の体力値ゲージを、他のキャラクタオブジェクトの体力値ゲージより280、290より大きなスケールで表示してもよい。
【0106】
図3に示すように第1のキャラクタオブジェクト210が第2のキャラクタオブジェクト220と対戦している場合には、第1のキャラクタオブジェクト210のアクション対象は第2のキャラクタオブジェクト220になっており、第2のキャラクタオブジェクト220のアクション対象は第1のキャラクタオブジェクト210になっている。アクション対象とは、現在の対戦相手やターゲットであり、所与のキャラクタオブジェクトに対してコマンドを入力すると、所与のキャラクタオブジェクトがアクション対象として設定されているキャラクタオブジェクトに対し、当該コマンドの示す攻撃又は防御を行う。例えば第1のゲーム機のプレーヤが攻撃・防御のコマンドを入力すると、第1のキャラクタオブジェクトがアクション対象である第2のキャラクタオブジェクトに対して攻撃防御動作を行い、第2のゲーム機のプレーヤが攻撃・防御のコマンドを入力すると、第2のキャラクタオブジェクトがアクション対象である第1のキャラクタオブジェクトに対して攻撃防御動作を行う。
【0107】
本実施の形態では、操作部の各ボタンや複数のボタンの組み合わせや、ボタンとレバーの操作入力や、複数のボタンとレバーの組み合わせ等の操作入力に対応して、所定の攻撃または防御や技等のコマンドが対応づけられており、操作部から上記操作入力を行うことにより、操作入力に対応づけられたコマンドを実行することができる。
【0108】
図13は、各ゲーム機の操作部の一例である。各ゲーム機の操作部300は、レバー310やボタン等320〜328で構成してもよい。
【0109】
各ゲーム機のプレーヤは、自機の操作部300のレバー310やボタン320〜328を操作して、操作入力を行うことで、自機のプレーヤキャラクタであるキャラクタオブジェクトを仮想3次元空間200内で自由に移動、動作させることができる。
【0110】
例えば操作部に前後左右を含め8方向を指示可能なレバー310を設け、当該レバー310を操作して、自機のプレーヤキャラクタであるキャラクタオブジェクトを仮想3次元空間内で移動させてもよい。また、各種ボタンを操作して、攻撃や防御のコマンドを入力し、自機のプレーヤキャラクタであるキャラクタオブジェクトに、コマンドに対応した攻撃・防御動作を行わせてもよい。
【0111】
例えば第1のボタン320を押すことにより打撃コマンドを入力し、プレーヤキャラクタであるキャラクタオブジェクトに、アクション対象のキャラクタオブジェクトへの打撃攻撃を行わせるようにしてもよい。また例えば第2のボタン322を押すことにより気弾コマンドを入力し、プレーヤキャラクタであるキャラクタオブジェクトに、アクション対象のキャラクタオブジェクトへのシューティング攻撃を行わせるようにしてもよい。
【0112】
またコマンド実行時に、プレーヤキャラクタであるキャラクタオブジェクトの攻撃相手(ターゲット)となるアクション対象は、プレーヤからの入力により設定、変更できるようにしてもよい。
【0113】
図14はアクション対象の設定について説明するための図である。
【0114】
本実施の形態では、操作部の第4のボタンを押下することにより、アクション対象を切り替えることができる。対戦ゲームに参戦する4体のプレーヤキャラクタに図14に示すように便宜的に順番付けを行い、所与のキャラクタオブジェクトの次に順番づけられたキャラクタオブジェクトがデフォルトで所与のキャラクタオブジェクトのアクション対象に設定され、プレーヤが第4のボタンを押下するごとに所与のキャラクタオブジェクトのアクション対象が次に順番づけられたキャラクタオブジェクトに変更になるようにしてもよい。
【0115】
この様にすると、デフォルト時の第1のキャラクタオブジェクトのアクション対象は、第2のキャラクタオブジェクトとなるため、プレーヤが、特にアクション対象の切り替え操作をせずにコマンドを発行した場合には、コマンドの実行対象は、第2のキャラクタオブジェクトとなる。またプレーヤが、切り替えボタンを押した場合(切り替えボタンを1回押した場合)には、次の順位のキャラクタオブジェクトである第3のキャラクタオブジェクトが、第1のキャラクタオブジェクトのアクション対象となる。またプレーヤが、さらに切り替えボタンを押した場合(切り替えボタンを2回押した場合)には、さらに次の順位のキャラクタオブジェクトである第4のキャラクタオブジェクトが、第1のキャラクタオブジェクトのアクション対象となる。
【0116】
(3)所定のコマンド
所定のコマンドが、第3者(コマンド実行主体とそのアクション対象以外)のキャラクタオブジェクトに対する投げつけコマンドである場合を例にとり説明する。
【0117】
図4から図6は、所定のコマンド(第3者への投げつけコマンド)実行時のゲーム画像例である。
【0118】
第1のゲーム機のプレーヤから第3者に対する投げつけコマンド(所定のコマンドの一例)が入力されると、図4に示すように、第1のゲーム機のプレーヤキャラクタである第1のキャラクタオブジェクト210は、アクション対象である第2のキャラクタオブジェクト220に近づき、相手をつかみ、図5に示すように、第1のキャラクタオブジェクト210、第2のキャラクタオブジェクト220以外のキャラクタオブジェクトである第3のキャラクタオブジェクト230(第1のキャラクタオブジェクト210の二次的アクション対象)に向かって、第2のキャラクタオブジェクト220を投げ、図6に示すように第2のキャラクタオブジェクト220は、第3のキャラクタオブジェクト230の近くに移動させられる。
【0119】
所定の条件を満たした場合に投げつけを実行するようにしてもよい。例えばアクション対象となる第2のキャラクタオブジェクトの防御内容や第1のキャラクタオブジェクトと第2のキャラクタオブジェクトのパラメータ(例えば体力値や位置関係)等に基づき、所定の条件を満たしているか否かを判断し、所定の条件を満たしている場合に、第1のキャラクタオブジェクトが第2のキャラクタオブジェクトを目標位置に投げ飛ばしてもよい(移動させてもよい)。
【0120】
第2のキャラクタオブジェクト220の移動先となる目標位置350は、第3のキャラクタオブジェクト230の位置に基づき、第3のキャラクタオブジェクト230の近く(例えば第3のキャラクタオブジェクト230の位置から所定距離内)に設定してもよい。例えば第3のキャラクタオブジェクト230の位置と所定の位置関係にある位置(例えば第3のオブジェクトのローカル座標系で定義される位置や相対位置)に設定してもよいし、第3のキャラクタオブジェクト230の位置から所定距離内のいずれかの場所をランダムに設定してもよい。第3のキャラクタオブジェクト230の代表点に設定してもよい。
【0121】
ここで二次的アクション対象(第3者)となるキャラクタオブジェクトは、第1のゲーム機のプレーヤが、入力により指定できるようにしてもよい。また第1のキャラクタオブジェクトや第2のキャラクタオブジェクトとの関係で一義的に決定されるようにしてもよいし、各キャラクタの位置関係や他のキャラクタとの距離や体力値に基づき決定してもよい。例えば第1のキャラクタオブジェクトからより離れた(距離が長い)キャラクタオブジェクトを二次的アクション対象に決定してもよいし、体力値がより多く残っているキャラクタオブジェクトを二次的アクション対象に決定してもよいし、ランダムに決定してもよい。
【0122】
ここでは、入力により指定できる場合の例について説明する。例えば現在のアクション対象が第2のキャラクタオブジェクトである場合に、デフォルトではその次の順位に位置する第3のキャラクタオブジェクト(図14参照)を二次的アクション対象とし、所定の期間中(投げモーション中)にアクション対象切り替えボタンを押した場合には、二次的アクション対象を切り替えることができるようにしてもよい。例えば現在のアクション対象は、第2のキャラクタオブジェクトなので、プレーヤが、アクション対象切り替えボタンを押した場合(切り替えボタンを1回押した場合)には、次の順位のキャラクタオブジェクトである第4のキャラクタオブジェクトが、二次的アクション対象となり、またプレーヤが、さらに切り替えボタンを押した場合(切り替えボタンを2回押した場合)には、さらに次の順位のキャラクタオブジェクトである第3のキャラクタオブジェクト(第1のキャラクタオブジェクトと第2のキャラクタオブジェクトは対象外のため、順位を飛ばす)が、第1のキャラクタオブジェクトの二次的アクション対象となるようにしてもよい。
【0123】
第2のキャラクタオブジェクト220は、目標位置350に対して設定された移動経路360(第2のキャラクタオブジェクト220の現在位置と目標位置350を結ぶ線)に沿って二次的アクション対象である第3のキャラクタオブジェクト330の近くまで移動させられる。この間(所定の条件が成立してから第2のキャラクタオブジェクトの移動が終了するまでの間)、第2のキャラクタオブジェクトは制御不能状態(第2のゲーム機からの操作入力によって制御できない状態)におかれるようにしてもよい。
【0124】
また第3者に対する投げつけコマンドの実行前は、第2のキャラクタオブジェクト220のアクション対象は、第1のキャラクタオブジェクト210に設定されているが、第3者に対する投げつけコマンドの実行によって、第2のキャラクタオブジェクト220のアクション対象を、第3のキャラクタオブジェクト230に強制的に変更(第2のゲーム機のプレーヤの入力によらずに変更される)してもよい。
【0125】
この様にすると、第3者に対する投げつけコマンドの実行後に、図6に示すように第2のキャラクタオブジェクト220は第3のキャラクタオブジェクト230の近くに位置し、アクション対象は第3のキャラクタオブジェクト230に設定されている。第3のゲーム機のプレーヤは、自己のプレーヤキャラクタである第3のキャラクタオブジェクト230の近くに新たな敵である第2のキャラクタオブジェクト220が出現したので、第3のキャラクタオブジェクト230のアクション対象を第2のキャラクタオブジェクト220に切り替えて、第2のキャラクタオブジェクトと対戦する可能性が高くなる。すなわち第1のゲーム機のプレーヤのコマンド入力によって、第2のゲーム機のプレーヤのプレーヤキャラクタである第2のキャラクタオブジェクト220と、第3のゲーム機のプレーヤのプレーヤキャラクタである第3のキャラクタオブジェクト230とが対戦しやすい状況を設定することができる。
【0126】
図15は、所定のコマンド(第3者に対する投げつけコマンド)の入力から実行終了までの流れを示すタイムチャートである。
【0127】
時刻t1で、第1のゲーム機のプレーヤから所定のコマンド(第3者に対する投げつけコマンド)が入力される(S1)と、期間K1の後の時刻t2に、第1のキャラクタオブジェクトとアクション対象となる第2のキャラクタオブジェクトの所定のパラメータ(例えば体力値パラメータ)に基づき、所定の条件が成立したか否か判断する(S2)。期間K1の間は、第2のゲーム機のプレーヤは第2のキャラクタオブジェクトを操作可能で、例えば防御コマンド等を入力することも可能である。第2のゲーム機のプレーヤからコマンドの入力があった場合には、両者の入力したコマンドやこれによるパラメータの変化等も含めて、所定の条件が成立したか否か判断してもよい。例えば時刻t2時の両者の体力パラメータを比較して、第1のキャラクタオブジェクトの体力値が第2のキャラクタオブジェクト220の体力値よりも所定の基準だけ上回っている場合に所定の条件が成立したと判断してもよい。
【0128】
所定の条件が成立しない場合には、所定のコマンドは不成功となり、そこでコマンドの実行を終了する。すなわちステップS3〜S5には進まず、第1のキャラクタオブジェクトが第2のキャラクタオブジェクト220オブジェクトを投げ飛ばして移動させることはない。
【0129】
所定の条件が成立すると、期間K2の間、第1のキャラクタオブジェクトは前記投げモーションを行う。前記投げモーションとして、例えば第1キャラクタオブジェクトが第2のキャラクタオブジェクトを振り回すモーションをおこなってもよい。この間第1のゲーム機のプレーヤは、操作部を操作して投げつけ対象(第1のキャラクタオブジェクトの二次的アクション対象)を切り替えることができる。期間K2の後の時刻t3に、投げつけ対象(第1のキャラクタオブジェクトの二次的アクション対象)が確定し、それに合わせて目標位置も確定する(S3)。
【0130】
目標位置が確定すると、期間K3の間、第1のキャラクタオブジェクトは後記投げモーションを行う。後記投げモーションは、第1のキャラクタオブジェクトが、第2のキャラクタオブジェクトを、確定した目標位置に向かって投げるモーションでもよい。なお期間K3の長さは可変に設定されていてもよい。例えば目標位置の方向に応じて変化させてもよい。
【0131】
そして時刻t4に、第2のキャラクタオブジェクトは第1のキャラクタオブジェクトの手を離れ目標位置に向かって移動を開始し、所定の期間K4の後の時刻t5に目標位置に到達し、移動を終了する。これで所定のコマンド(第3者に対する投げつけコマンド)に対応して引き起こされる第1のキャラクタオブジェクト及び第2のキャラクタオブジェクトの動作が終了する。なお所定の期間K4の長さは可変に設定されていてもよい。例えば目標位置までの距離に応じて変化(距離が長いほど所定の期間K4を長くする等)させてもよい。
【0132】
(4)アクション対象の移動経路
図20(A)(B)は、第3者に対する投げつけコマンド(所定のコマンドの一例)実行時の移動経路の補正処理について説明するための図である。
【0133】
第3者に対する投げつけコマンドを実行する場合、所与のキャラクタオブジェクト(ここでは第1のキャラクタオブジェクト210)のアクション対象のキャラクタオブジェクト(ここでは第2のキャラクタオブジェクト220)の位置と目標位置350に基づきアクション対象のキャラクタオブジェクト(ここでは第2のキャラクタオブジェクト220)の移動経路360を演算し、移動経路360上に障害物となるオブジェクトがあるか否か判定してもよい。
【0134】
移動経路は直線でもよいし、曲線(例えば放物線や所定の軌跡関数で得られる線)でもよい。移動経路上に障害物がない場合に、前記第2のキャラクタオブジェクトを前記目標位置まで移動させる処理を行ってもよい。
【0135】
例えば図20(A)(B)に示すように、移動経路360上に障害物となるオブジェクト370がある場合には、移動経路を補正する移動経路補正処理を行ってもよい。
【0136】
移動経路の補正は、例えば図20(A)に示すように、目標位置350は変更せずに、途中の経路のみを補正(360→360’に補正)してもよい。また例えば図20(B)に示すように、目標位置の変更(350→350’)を伴うものでもよい。
【0137】
例えば補正前の移動経路が第2のキャラクタオブジェクト220と目標位置350をつなぐ直線として設定される場合には、図20(A)に示すように、直線の移動経路360を、障害物となるオブジェクト370を避けて通る曲線の移動経路360’に補正してもよい。また図20(B)に示すように、直線の移動経路の方向を所定の角度θだけ変更する補正をおこなってもよい。
【0138】
図11(A)(B)、図12(A)(B)は、移動経路上に障害物が存在する場合の処理ついて説明するための図である。
【0139】
図11(A)に示すように、移動経路360上に障害物となるオブジェクト372がある場合は、移動経路360を変更せずに、図11(B)に示すように第2のキャラクタオブジェクト220を移動経路360上を移動させ、障害物となるオブジェクト372にヒットしたら、これを破壊又は消滅させる処理(372’は破壊後のオブジェクト)を行ってもよい。
【0140】
また移動経路上の障害物となるオブジェクトの属性に応じて破壊や消滅が可能か否か判断してもよい。移動経路上のオブジェクト374が破壊や消滅が可能な属性である場合には、図12(A)に示すように、移動経路360を変更せずに移動経路360上のオブジェクト374を破壊又は消滅させる処理をおこなってもよい。また移動経路上のオブジェクト374が破壊や消滅が可能でない属性である場合には、図12(B)に示すように、移動経路を補正(360→360’に補正)してもよい。
【0141】
なお破壊や消滅が可能か否かを判断するための属性情報を、予めオブジェクト単位で設定しておいてもよい。例えば障害物となる可能性のあるオブジェクト(例えばマップオブジェクトや岩や山等の地形オブジェクトや建物等の構造物オブジェクトや木オブジェクト)について破壊や消滅が可能か否か判断して、判断結果に応じて属性情報を設定してもよい。
【0142】
オブジェクトを破壊する処理として、例えば移動中のキャラクタオブジェクトと障害物となるオブジェクトとが衝突した場合に、障害物となるオブジェクトが破壊される画像演出を行い、障害物となるオブジェクトを複数の破片オブジェクトに分解した状態(オブジェクトが壊れた状態)に変化させてもよい。
【0143】
図7、図8は、第3者への投げつけコマンド(所定のコマンドの一例)所定のコマンド実行時に障害物となるオブジェクトを破壊する場合のゲーム画像例。実行時に障害物となるオブジェクトを破壊する場合のゲーム画像例である。
【0144】
図7に示すように、投げ飛ばされた第2のキャラクタオブジェクト220の移動経路に障害物となるオブジェクト(木オブジェクト)372があり、第2のキャラクタオブジェクト220が障害物となるオブジェクト(木オブジェクト)372にヒットしたら、図8に示すように、障害物となるオブジェクト(木オブジェクト)372(破壊後の木オブジェクト372’)が破壊される画像演出が行われるようにしてもよい。
【0145】
また障害物となるオブジェクトを消滅させる処理として、例えば移動中のキャラクタオブジェクトと障害物となるオブジェクトとが衝突した場合に、オブジェクトが消滅する画像演出を行い、所定期間(例えば当該ゲームが終了するまでの期間)は、消滅後のオブジェクトを表示しないようにしてもよい。
【0146】
(5)モーション補正処理
図16(A)〜(C)は、所与のオブジェクトのモーション補正について説明するための図である。
【0147】
本実施の形態では、所定のコマンド(第3者に対する投げつけコマンド)の入力後、所定期間の間は投げつけ対象(第1のキャラクタオブジェクトの二次的アクション対象)を切り替えることができるため、投げつけ対象の方向等によって、投げ飛ばし動作時の第1のキャラクタオブジェクトの向きが異なってくる。投げ飛つけ対象の位置は、所与のキャラクタオブジェクトの周り360度のいずれの方向になることもある。従って予め複数の方向に対応したモーションを用意しておき、ゲーム状況に最も近い方向のモーションを選択して実施することも可能である。
【0148】
また基準となる投げモーションのモーションデータを1パターンだけ用意しておいて、投げ飛つけ対象の方向に応じて基準となる投げモーションを補正して使用してもよい。この様にするとモーションデータの増大を防ぐことができる。
【0149】
例えば基準となる投げモーションが、第1のキャラクタオブジェクトが第2のキャラクタを持ち上げたまま、図16(A)に示すように、基準方向410からぐるりと時計回りに1回転する回転モーションであるとする。図15の期間K2における前記投げモーションとして、まず第1のキャラクタオブジェクトが第2のキャラクタオブジェクトを持ち上げる持ち上げモーションを行い、続けて回転モーションをn回行うことで、第1のキャラクタオブジェクトが第2のキャラクタオブジェクトを持ち上げてn回転する動作を表現することができる。その後期間K3における後記投げモーションとして、投げ飛つけ対象の方向(目標位置に対応した方向)まで、回転モーションを行い、投げ飛つけ対象の方向に達したら、第2のキャラクタオブジェクトを投げ飛つけ対象の方向に手放すモーションを行うことで、回転しながら投げ飛ばす動作を表現することはできる。
【0150】
例えば図16(B)に示すように投げつけ対象(第1のキャラクタオブジェクトの二次的アクション対象)が230である場合、基準方向410からθ1だけ回転すると投げつけ対象230の方向412となるので、回転モーションをθ1分だけ行って第2のキャラクタオブジェクトを投げつけ対象の方向に手放すモーションを行うように、モーションデータを補正して使用してもよい。
【0151】
また例えば図16(C)に示すように投げつけ対象(第1のキャラクタオブジェクトの二次的アクション対象)が240である場合、基準方向410からθ2だけ回転すると投げつけ対象240の方向414となるので、回転モーションをθ2分だけ行って第2のキャラクタオブジェクトを投げつけ対象240の方向に手放すモーションを行うように、モーションデータを補正して使用してもよい。
【0152】
図17(A)〜(C)は、所与のキャラクタオブジェクトの向き補正について説明するための図である。
【0153】
例えば所与のキャラクタオブジェクトのモーションとして、図17(A)に示すように、投げ方向420に向かってアクション対象のキャラクタオブジェクトを投げ飛ばす投げモーションを用意し、投げつけ対象の方向(目標位置に対応した方向)に応じて、モーション開始時の向きを補正してもよい。例えば図15の期間K2において、投げ飛ばし前のモーションを行い、時刻t3で投げ飛ばし方向が確定すると、投げ飛ばし方向に応じて、投げモーション開始時の所与のキャラクタオブジェクトの向きを補正する。
【0154】
例えば図15の時刻t3においてモーションを一旦中断して、確定した目標位置に基づき、所与のキャラクタオブジェクトの向きを補正してもよい。
【0155】
例えば図17(B)に示すように投げつけ対象(第1のキャラクタオブジェクトの二次的アクション対象)が第3のキャラクタオブジェクト230である場合、所与のキャラクタオブジェクトの向きを第3のキャラクタオブジェクト230の方向422に補正してもよい。
【0156】
また例えば図17(C)に示すように投げつけ対象(第1のキャラクタオブジェクトの二次的アクション対象)が第4のキャラクタオブジェクト240である場合、所与のキャラクタオブジェクトの向きを第4のキャラクタオブジェクト240の方向424に補正してもよい。
【0157】
(6)敵告知画像表示
所与のキャラクタオブジェクトが他のキャラクタオブジェクトのアクション対象となっている場合には、当該キャラクタオブジェクトをアクション対象としているキャラクタオブジェクトを告知する敵告知画像を表示する処理を行ってもよい。
【0158】
敵告知画像は、当該アクション対象としているキャラクタオブジェクトが把握できるような画像であればよい。各プレーヤの表示部で、各プレーヤのプレーヤキャラクタであるキャラクタオブジェクトを狙っている敵を告知する敵告知画像を表示してもよい。
【0159】
図21は敵告知画像が表示されているゲーム画像の一例である。
【0160】
例えば4体のキャラクタオブジェクト210、220、230、240が対戦を行う場合、第1のキャラクタオブジェクト210のアクション対象が第2のキャラクタオブジェクト220、第2のキャラクタオブジェクト220のアクション対象が第1のキャラクタオブジェクト210、第3のキャラクタオブジェクト230のアクション対象が第1のキャラクタオブジェクト210、第4のキャラクタオブジェクト240のアクション対象が第3のキャラクタオブジェクト230であるとする。この様な場合、第1のゲーム機のゲーム画面では、第1のキャラクタオブジェクト210をアクション対象としている第2のキャラクタオブジェクト220と第3のキャラクタオブジェクト230を敵として告知するための敵告知画像440、442を、それぞれ第2のキャラクタオブジェクト220、第3のキャラクタオブジェクト230に付随して表示してもよい。
【0161】
このようにすると、各プレーヤは、自己のゲーム画面において、自己のプレーヤキャラクタであるキャラクタオブジェクトを狙っているキャラクタオブジェクトを視覚的に瞬時に把握することができるため、迅速な移動や攻撃防御を行うことができる。
【0162】
上記実施の形態では、各ゲーム機のゲーム画面において、各ゲーム機のプレーヤキャラクタとなるキャラクタオブジェクトをアクション対象としているキャラクタオブジェクトに付随して表示されるマーク画像が敵告知画像である場合を例にとり説明したが、これに限られず、他のマーク画像でもよいし、文字画像でもよい。
【0163】
また、各ゲーム機のプレーヤキャラクタ以外のキャラクタオブジェクトがアクション対象としているキャラクタオブジェクトに対して、敵告知画像として、前記プレーヤキャラクタ以外のキャラクタオブジェクトとアクション対象となっているキャラクタオブジェクト(こちらはプレーヤキャラクタとなっているキャラクタオブジェクトでもよい)をつなぐライン画像を生成してもよい。
【0164】
図9はライン画像が表示されているゲーム画像の一例である。
【0165】
例えば4体のキャラクタオブジェクト210、220、230、240が対戦を行う場合、第1のキャラクタオブジェクト210のアクション対象が第2のキャラクタオブジェクト220、第2のキャラクタオブジェクト220のアクション対象が第1のキャラクタオブジェクト210、第3のキャラクタオブジェクト230のアクション対象が第1のキャラクタオブジェクト210、第4のキャラクタオブジェクト240のアクション対象が第3のキャラクタオブジェクト230であるとする。この様な場合、第1のゲーム機のプレーヤのゲーム画面では、第1のキャラクタオブジェクト210をアクション対象としている第2のキャラクタオブジェクト220と第1のキャラクタオブジェクト210をつなぐライン画像450、第1のキャラクタオブジェクト210をアクション対象としている第3のキャラクタオブジェクト230と第1のキャラクタオブジェクト210をつなぐライン画像452を生成する。また、第3のキャラクタオブジェクト230をアクション対象としている第4のキャラクタオブジェクト240と第3のキャラクタオブジェクト230をつなぐライン画像456を生成する。しかし、第1のキャラクタオブジェクト210(プレーヤキャラクタ)と、そのアクション対象である第2のキャラクタオブジェクト220はつなぐライン画像は生成しない。
【0166】
この様に自機のプレーヤキャラクタであるキャラクタオブジェクトが他のキャラクタオブジェクトのアクション対象となっている場合には、他のキャラクタオブジェクトと自機のプレーヤキャラクタであるキャラクタオブジェクトの間にライン画像が生成されるので、自機のプレーヤキャラクタであるキャラクタオブジェクトとこれを狙っている他のキャラクタオブジェクトの位置関係が視覚的に把握しやすくなるという効果がある。
【0167】
また他機のプレーヤキャラクタであるキャラクタオブジェクトが自機以外の他のキャラクタオブジェクトのアクション対象となっている場合には、他のキャラクタオブジェクトと他機のプレーヤキャラクタであるキャラクタオブジェクトの間にライン画像が生成される。この様にすると、他機のプレーヤキャラクタであるキャラクタオブジェクトとこれを狙っている自機以外の他のキャラクタオブジェクトの対戦状況を視覚的に把握しやすくなるという効果がある。
【0168】
自機プレーヤキャラクタであるキャラクタオブジェクトとそのアクション対象であるキャラクタオブジェクトの間にはライン画像は生成されないので、ライン画像が増えすぎてゲーム画像を見にくくなるのを防止することができる。
【0169】
なおライン画像は、どちら向きのラインであるか(ラインの方向や向き)が識別可能な矢印を付与することにより、狙っている側とねらわれている側が一目で把握可能なライン画像を提供することができる。
【0170】
(7)所定のコマンド実行時の仮想カメラの制御
所与のキャラクタオブジェクトがアクション対象のキャラクタオブジェクトに対して所定のコマンドを実行する場合、所与のキャラクタオブジェクトとそのアクション対象のキャラクタオブジェクトとその二次的なアクション対象のキャラクタオブジェクトの位置に基づき、仮想カメラの配置(位置及び向きの少なくとも1つ)位置を設定してもよい。
【0171】
図22は、所定のコマンド実行時の仮想カメラの配置制御について説明するための図である。第1のゲーム機のゲーム画像(第1のキャラクタオブジェクト210をプレーヤキャラクタとする第1のゲーム機の表示部に表示されるゲーム画像)は、第1のキャラクタオブジェクトに追従する第1の仮想カメラ212から見た仮想3次元空間の画像となる。仮想3次元空間には4体のキャラクタオブジェクト210、220、230、240が存在しているが、仮想3次元空間は広いので、第1の仮想カメラ212は、第1のキャラクタオブジェクト210とそのアクション対象となるキャラクタオブジェクト(ここでは第2のキャラクタオブジェクト220とする)が視野範囲内に入る位置及び向きに配置される。しかし、第1のゲーム機のプレーヤが所定のコマンドを入力すると、アクション対象の移動先(投げつけ対象)となる二次的アクション対象となるキャラクタオブジェクトも視野範囲内に入る位置及び向きに、第1の仮想カメラ212を配置する。所定のコマンド実行時に二次的アクション対象となるキャラクタオブジェクトが変更された場合には、変更後の二次的アクション対象となるキャラクタオブジェクトが視野範囲内に入る位置及び向きに、第1の仮想カメラ212の配置を変更する。
【0172】
所定のコマンド実行時は、第1のキャラクタオブジェクト210とそのアクション対象(第2のキャラクタオブジェクト220)と、二次的アクション対象の位置に応じて第1の仮想カメラ212の位置及び向きの少なくとも一方を決定することで、これらのキャラクタオブジェクトが視野範囲内に入る画像を生成することができる。
【0173】
例えば2次アクション対象が第3のキャラクタオブジェクト230である場合には、第1のキャラクタオブジェクト210と第2のキャラクタオブジェクト220と第3のキャラクタオブジェクト230が視野範囲(490−1)内に入る位置及び向きに、第1の仮想カメラ212を配置する(212−1参照)。
【0174】
また例えば二次的アクション対象が第4のキャラクタオブジェクト240である場合には、第1のキャラクタオブジェクト210と第2のキャラクタオブジェクト220と第4のキャラクタオブジェクト240が視野範囲(490−2)内に入る位置及び向きに、第1の仮想カメラ212を配置する(212−2参照)。
【0175】
コマンド実行中に2次アクション対象が第3のキャラクタオブジェクト230から第4のキャラクタオブジェクト240に切り替えられた場合には、仮想カメラの配置も212−1から212−2に切り替えてもよい。
【0176】
(8)処理の流れ
図18は、所定のコマンド実行処理(第3者に対する投げつけコマンド)の流れを示すフローチャートである。
【0177】
所与のキャラクタオブジェクトについて所定のコマンド入力があった場合には以下の処理を行う(ステップS10)。
【0178】
所与のキャラクタオブジェクトとそのアクション対象となっているキャラクタオブジェクトのパラメータ等に基づき、所定の条件が成立したか否かを判定する(ステップS20)。アクション対象は、例えば図14に示した手法により決定してもよい。所定の条件の判定は、図15に示すように所定のコマンドが入力されてから期間K1経過後に行うようにしてもよい。そしてこの期間K1内にアクション対象となっているキャラクタオブジェクトを操作するプレーヤからの入力があった場合には入力内容による各キャラクタオブジェクトのパラメータの変化も加味して所定の条件を判定してもよい。
【0179】
所定の条件が成立した場合には(ステップS22)、所定期間(図15期間K2)の前期投げモーションを実行するとともに、アクション対象のキャラクタオブジェクトを制御不能状態にする(ステップS30)。従って、これ以降(図15の時刻t2以降)、所定のコマンド実行が終了する(図15の時刻t5)まで、アクション対象のキャラクタオブジェクトに対する操作入力は反映されない状態に制御する。
【0180】
そして、所定期間の前期投げモーション中に二次的アクション対象(目標位置)となるキャラクタオブジェクトの変更入力があった場合には(ステップS40でY)には、変更後の二次的アクション対象のキャラクタオブジェクトの位置に基づき、目標位置を決定し(ステップS50)、アクション対象のキャラクタオブジェクトのアクション対象を変更後の二次的アクション対象のキャラクタオブジェクトに変更する(ステップS60)。所定期間の前期投げモーション中に二次的アクション対象(目標位置)となるキャラクタオブジェクトの変更入力がない場合には(ステップS40でN)には、コマンド入力時に設定されている二次的アクション対象のキャラクタオブジェクトの位置に基づき、目標位置を決定し(ステップS70)、アクション対象のキャラクタオブジェクトのアクション対象をコマンド入力時に設定されている二次的アクション対象のキャラクタオブジェクトに変更する(ステップS80)。
【0181】
決定された目標位置に基づき、後期投げモーションを実行して、アクション対象のキャラクタオブジェクトを目標位置に移動させる処理を行う(ステップS90)
アクション対象のキャラクタオブジェクトが目標位置に到達したら、制御不能状態を解除する(ステップS100)。
【0182】
図19は、所定のコマンド(第3者に対する投げつけコマンド)実行時のアクション対象の移動経路決定処理の流れを示すフローチャートである。
【0183】
アクション対象のキャラクタオブジェクトと目標位置とに基づき、移動経路を演算し、移動経路上に障害物となるオブジェクトが存在するか否か判定処理を行う(ステップS110)。
【0184】
移動経路上に障害物となるオブジェクトがある場合には(ステップS120でY)、障害物となるオブジェクトが破壊又は消滅可能属性を有するか判断し(ステップS130)、有すると判断した場合には、アクション対象のキャラクタオブジェクトを移動経路に沿って、目標位置まで移動させる処理を行うとともに、アクション対象のキャラクタオブジェクトと障害物となるオブジェクトのヒット時に障害物となるオブジェクトの破壊又は消滅処理を行う。(ステップS140)
【0185】
移動経路上に障害物となるオブジェクトがあり(ステップS120でYの場合)、障害物となるオブジェクトが破壊又は消滅可能属性を有しない場合(ステップS130でN)には、目標位置及び移動経路の補正を行う(ステップS150)。
【0186】
移動経路上に障害物となるオブジェクトがない場合(ステップS120でNの場合)、アクション対象のキャラクタオブジェクトを移動経路に沿って、目標位置まで移動させる処理を行う(ステップS160)。
【0187】
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。例えば、明細書又は図面中の記載において広義や同義な用語として引用された用語は、明細書又は図面中の他の記載においても広義や同義な用語に置き換えることができる。
【符号の説明】
【0188】
100 処理部、110 ゲーム演算部、111、オブジェクト空間設定部、
112 仮想カメラ制御部、113 移動・動作処理部、114 ネットワーク部、
115 通信制御部、122 コマンド処理部、124 アクション対象設定部、126 敵告知画像表示制御部、130 描画部、140 音生成部、
160 操作部、170 記憶部、172 主記憶部、174 画像バッファ、
176 第1のバッファ、178 第2のバッファ、179 自動制御情報記憶部、
180 情報記憶媒体、190 表示部、192 音出力部、196 通信部

【特許請求の範囲】
【請求項1】
複数のゲーム機がネットワークを介して対戦ゲームを行うためのプログラムであって、
複数のゲーム機に対する入力情報を含むゲーム情報に基づき、仮想3次元空間に存在する複数のキャラクタオブジェクトの対戦演算を行う対戦演算部と、
前記仮想3次元空間を仮想カメラから見たゲーム画像を生成する画像生成部と、してコンピュータを機能させ、
前記対戦演算部は、
所与のキャラクタオブジェクトに対して入力された所定のコマンドを実行する場合に、所与のキャラクタオブジェクト及び所与のキャラクタオブジェクトのアクション対象のキャラクタオブジェクト以外のキャラクタオブジェクトを所与のキャラクタオブジェクトの二次的アクション対象として、当該二次的アクション対象のキャラクタオブジェクトの位置に基づき目標位置を決定し、前記アクション対象のキャラクタオブジェクトを前記目標位置まで移動させる処理を行うコマンド処理部を含むプログラム。
【請求項2】
請求項1において、
前記コマンド処理部は、
前記所与のキャラクタオブジェクトがプレーヤキャラクタとして設定されたゲーム機からの入力情報に基づき、前記所与のキャラクタオブジェクトの前記アクション対象となるキャラクタオブジェクト及び前記所与のキャラクタオブジェクトの前記二次的アクション対象となるキャラクタオブジェクトを決定する処理を行うプログラム。
【請求項3】
請求項1又は2において、
前記対戦演算部は、
所与のキャラクタオブジェクトがプレーヤキャラクタとして設定されたゲーム機に入力されるアクション対象入力情報に基づき、前記所与のキャラクタオブジェクトのアクション対象となるキャラクタオブジェクトを設定するアクション対象設定部を含み、
前記コマンド処理部は、
前記所与のキャラクタオブジェクトがプレーヤキャラクタとして設定されたゲーム機から前記所定のコマンド又は他のコマンドが入力された場合、前記所与のキャラクタオブジェクトの前記アクション対象として設定されているキャラクタオブジェクトをターゲットとして前記所定のコマンド又は他のコマンド実行し、
前記アクション対象設定部は、
前記所定のコマンドが実行された場合には、前記所与のキャラクタオブジェクトの前記アクション対象となっているキャラクタオブジェクトのアクション対象を、前記所与のキャラクタオブジェクトの前記二次的アクション対象となっているキャラクタオブジェクトに変更する処理を行うプログラム。
【請求項4】
請求項1乃至3のいずれかにおいて、
前記コマンド処理部は、
前記所定のコマンドを実行する場合、前記アクション対象のキャラクタオブジェクトの位置と前記目標位置に基づき前記アクション対象のキャラクタオブジェクトの移動経路を演算し、移動経路上に障害物となるオブジェクトがあるか否か判定する処理を行うプログラム。
【請求項5】
請求項4において、
前記コマンド処理部は、
障害物となるオブジェクトがあると判断した場合には、前記移動経路を変更する移動経路変更処理を行うプログラム。
【請求項6】
請求項4又は5において、
前記コマンド処理部は、
前記移動経路上に障害物となるオブジェクトがあると判断した場合であって、前記障害物となるオブジェクトが破壊又は消滅可能な属性を有している場合には、前記アクション対象のキャラクタオブジェクトを前記移動経路に従って移動させるとともに、前記障害物となるオブジェクトを破壊又は消滅させる処理を行うプログラム。
【請求項7】
請求項1乃至6のいずれかにおいて、
所与のキャラクタオブジェクトが他のキャラクタオブジェクトのアクション対象となっている場合には、当該所与のキャラクタオブジェクトをアクション対象としている他のキャラクタオブジェクトを告知する敵告知画像の表示制御を行う敵告知画像表示制御部と、してコンピュータを機能させることを特徴とするプログラム。
【請求項8】
請求項7において、
前記敵告知画像表示制御部は、
前記敵告知画像として、キャラクタオブジェクトとそのアクション対象のキャラクタオブジェクトとをつなぐ線を含むライン画像の表示制御を行うプログラム。
【請求項9】
請求項1乃至8のいずれかにおいて、
所与のキャラクタオブジェクトがアクション対象のキャラクタオブジェクトに対して、所定のコマンドで規定された動作を実行する場合、前記目標位置に基づき、所与のキャラクタオブジェクトのモーション補正を行うモーション補正処理部としてコンピュータを機能させるプログラム。
【請求項10】
請求項1乃至9のいずれかにおいて、
前記画像生成部は、
所与のキャラクタオブジェクトが前記アクション対象のキャラクタオブジェクトに対して所定のコマンドを実行する場合、所与のキャラクタオブジェクトとそのアクション対象のキャラクタオブジェクトとその二次的アクション対象のキャラクタオブジェクトの位置に基づき、仮想カメラの配置を制御するプログラム。
【請求項11】
請求項1乃至10のいずれかに記載のプログラムが記憶されたコンピュータ読み取り可能な情報記憶媒体。
【請求項12】
他のゲーム機とネットワークを介して対戦ゲームを行うゲーム機であって、
自機及び他のゲーム機に対する入力情報を含むゲーム情報に基づき、仮想3次元空間に存在する複数のキャラクタオブジェクトの対戦演算を行う対戦演算部と、
前記仮想3次元空間を仮想カメラから見たゲーム画像を生成する画像生成部と、を含み、
前記対戦演算部は、
所与のキャラクタオブジェクトに対して入力された所定のコマンドを実行する場合に、所与のキャラクタオブジェクト及び所与のキャラクタオブジェクトのアクション対象のキャラクタオブジェクト以外のキャラクタオブジェクトを所与のキャラクタオブジェクトの二次的アクション対象として、当該二次的アクション対象のキャラクタオブジェクトの位置に基づき目標位置を決定し、前記アクション対象のキャラクタオブジェクトを前記目標位置まで移動させる処理を行うコマンド処理部を含むゲーム機。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate