プログラム、情報記憶媒体、及び、画像生成装置
【課題】入力情報により仮想空間でプレーヤキャラクタの自由移動が可能なゲームの画像を生成する画像生成装置において、プレーヤキャラクタがゲーム上有利な特別ポイントに移動し特別ポイントでゲーム行為を楽しめるゲーム状況を設定する。
【解決手段】入力情報に基づき仮想空間内におけるプレーヤキャラクタの移動情報を演算する移動情報演算部と、プレーヤキャラクタの移動情報に基づき特別状態発動条件を満たしているか否か判断し、満たしている場合にはプレーヤキャラクタを仮想空間内に設定された特別ポイントに移動させ、特別状態を発動させる特別状態発動部と、入力情報及びプレーヤキャラクタの移動情報の少なくとも1つに基づき仮想カメラの配置制御を行う仮想カメラ制御部と、仮想空間を仮想カメラから見た画像を生成する画像生成部と、してコンピュータを機能させる。
【解決手段】入力情報に基づき仮想空間内におけるプレーヤキャラクタの移動情報を演算する移動情報演算部と、プレーヤキャラクタの移動情報に基づき特別状態発動条件を満たしているか否か判断し、満たしている場合にはプレーヤキャラクタを仮想空間内に設定された特別ポイントに移動させ、特別状態を発動させる特別状態発動部と、入力情報及びプレーヤキャラクタの移動情報の少なくとも1つに基づき仮想カメラの配置制御を行う仮想カメラ制御部と、仮想空間を仮想カメラから見た画像を生成する画像生成部と、してコンピュータを機能させる。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラム、情報記憶媒体、及び、画像生成装置に関する。
【背景技術】
【0002】
従来より、キャラクタなどのオブジェクトが配置設定されるオブジェクト空間内(仮想的な3次元空間)において仮想カメラ(所与の視点)から見える画像を生成する画像生成装置(ゲームシステム)が知られており、いわゆる仮想現実を体験できるものとして人気が高い。
【0003】
例えば、プレーヤが入力部を用いて、オブジェクト空間(3次元空間)において、弾を発射させて敵キャラクタを射撃するシューティングゲームの画像を生成する画像生成装置が存在する。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特許3538285号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
このようなシューティングゲームにおいては、プレーヤキャラクタが壁等の物陰に隠れて物陰から攻撃を行うことができるものがあり人気が高い。
【0006】
またプレーヤの入力操作に基づいてプレーヤキャラクタをゲーム空間内で自由に移動させることができるタイプのゲームシステムも人気が高い。しかしかかるゲームシステムでは、プレーヤキャラクタが入力に従って仮想空間内を自由移動できるので、壁等の物陰に隠れる状況を設定することは難しいという問題があった。
【0007】
本発明は、以上のような課題を解決するためになされたものである。本発明のいくつかの態様によれば、入力情報により仮想空間でプレーヤキャラクタの自由移動が可能なゲームの画像を生成する画像生成装置において、プレーヤキャラクタがゲーム上有利な特別ポイントに移動し特別ポイントでゲーム行為を楽しめるゲーム状況を設定することができる。
【課題を解決するための手段】
【0008】
(1)本発明は、
仮想空間内でプレーヤキャラクタを移動させるゲームの画像を生成するためのプログラムであって、
入力情報に基づき仮想空間内におけるプレーヤキャラクタの移動情報を演算する移動情報演算部と、
プレーヤキャラクタの移動情報に基づき特別状態発動条件を満たしているか否か判断し、満たしている場合にはプレーヤキャラクタを仮想空間内に設定された特別ポイントに移動させ、特別状態を発動させる特別状態発動部と、
入力情報及びプレーヤキャラクタの移動情報の少なくとも1つに基づき仮想カメラの配置制御を行う仮想カメラ制御部と、
仮想空間を仮想カメラから見た画像を生成する画像生成部と、してコンピュータを機能させ、
前記移動情報演算部は、
入力情報に基づき、プレーヤキャラクタの位置を演算し、
前記特別状態発動部は、
プレーヤキャラクタの位置と仮想空間内の特別ポイントに対応づけて設定されている位置判定条件とに基づきプレーヤキャラクタの位置判定を行い、判定結果に基づきプレーヤキャラクタが特別状態発動条件を満たしているか否か判断することを特徴とするプログラムに関する。
【0009】
本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部として、コンピュータを機能させるプログラムを記憶した情報記憶媒体、上記各部を含む画像生成装置に関係する。
【0010】
特別ポイントは、仮想空間内で戦闘を行う際に有利な位置(例えば敵からの攻撃を受けにくい位置、敵からの攻撃を防御するオブジェクトに囲まれた位置等)でもよい。
【0011】
特別状態にある(特別ポイントにいる)プレーヤキャラクタは、ゲームの進行において有利な条件を与えられてもよい。
【0012】
本発明は人称視点の画像が生成される場合(FPSの場合)と3人称視点の画像が生成される場合(TPSの場合)のいずれの場合にも適用可能である。またプレーヤキャラクタは、入力情報によって仮想空間内を自由に移動する制御が行われ構成でもよい。仮想カメラはプレーヤキャラクタに追従して移動する構成でもよく、この場合プレーヤキャラクタを移動させるための入力情報に基づき仮想カメラの移動や配置制御が行われてもよい。
【0013】
入力情報としては、プレーヤキャラクタ(仮想カメラ)の移動方向(例えば前後左右)、移動速度、プレーヤキャラクタ(仮想カメラ)の向き(回転)等を受け付けてもよい。
【0014】
なおプレーヤからの特別状態発動を指示する操作入力があった場合に、特別状態発動条件を満たすか否か判断するようにしてもよい。すなわちプレーヤからの特別状態発動を指示する操作入力がない場合には、特別状態発動条件を満たしても特別状態に移行させない場合も、本発明の範囲内である。特別状態が発動されると、解除されるまで特別状態発動中の状態となる。
【0015】
なおプレーヤキャラクタの位置や向きの代わりに仮想カメラの位置や向きを制御する構成である場合や、プレーヤキャラクタの位置や向きと仮想カメラの位置や向きが連動する構成である場合には、仮想空間内の特別ポイントと仮想カメラの位置に基づき位置判定を行い、判定結果に基づきプレーヤキャラクタが特別状態発動条件を満たしているか否か判断してもよい。
【0016】
本発明によれば、入力情報により仮想空間でプレーヤキャラクタの自由移動が可能なゲームの画像を生成する画像生成装置において、移動体オブジェクトがゲーム上有利な特別ポイントに移動し特別ポイントでゲーム行為を楽しめるゲーム状況を設定することができる。
【0017】
(2)このプログラム、情報記憶媒体、画像生成装置は、
前記移動情報演算部は、
入力情報に基づき、プレーヤキャラクタの向きを演算し、
前記特別状態発動部は、
プレーヤキャラクタの向きと、仮想空間内の特別ポイントに対応して設定された向き条件に基づきプレーヤキャラクタの向き判定を行い、判定結果に基づきプレーヤキャラクタが特別状態発動条件を満たしているか否か判断してもよい。
【0018】
(3)このプログラム、情報記憶媒体、画像生成装置は、
前記移動情報演算部は、
入力情報に基づき、プレーヤキャラクタの移動方向を演算し、
前記特別状態発動部は、
プレーヤキャラクタの移動方向と、仮想空間内の特別ポイントに対応して設定された移動方向条件に基づきプレーヤキャラクタの移動方向判定を行い、判定結果に基づきプレーヤキャラクタが特別状態発動条件を満たしているか否か判断してもよい。
【0019】
(4)このプログラム、情報記憶媒体、画像生成装置は、
前記特別状態発動部は、
特別状態発動中は、ゲーム演算に用いられるパラメータを特別状態発動中でない場合に比べてプレーヤキャラクタに有利な値又は不利な値に設定してもよい。
【0020】
例えば、特別ポイントにいるプレーヤキャラクタについては、攻撃、防御、ダメージ量、回復、ライフ、命中率等に関するパラメータを通常状態よりもゲーム上有利な値に設定してもよいし、ゲーム上有利な値に設定してもよい。
【0021】
例えば特別状態発動中にゲーム演算に用いられるパラメータを特別状態発動中でない場合に比べてプレーヤキャラクタに有利な値にすることにより、プレーヤに特別ポイントに移動することに対するモチベーションを与えることができる。
【0022】
(5)このプログラム、情報記憶媒体、画像生成装置は、
前記特別状態発動部は、
特別状態発動中は、特別ポイントにいるプレーヤキャラクタの状態を、入力情報に基づき隠れ状態と攻撃状態に切り替え、各状態に応じて異なる制御を行ってもよい。
【0023】
(6)このプログラム、情報記憶媒体、画像生成装置は、
前記移動情報演算部は、
入力情報及び姿勢情報の少なくとも一方に基づき、プレーヤキャラクタの接地の有無又は姿勢を演算し、
前記特別状態発動部は、
プレーヤキャラクタの接地の有無又は姿勢に基づき、特別状態発動条件を満たしているか否か判断してもよい。
【0024】
入力情報に基づきプレーヤキャラクタの位置座表(X、Y、Z)を求め、求めた位置座標が地形情報(マップ)に基づき地表面である(空中でない)か否かによって接地の有無を判断してもよい。また入力情報に基づきプレーヤがジャンプ状態等の所定の状態(接地していない状態)である否か判断して接地の有無を判断してもよい。
【0025】
(7)このプログラム、情報記憶媒体、画像生成装置は、
前記特別状態発動部は、
特別状態発動中に、キャラクタの視界を遮るオブジェクトを半透明で描画するための描画制御情報を生成し、
前記画像生成部は、
前記描画制御情報に基づきプレーヤキャラクタの視界を遮るオブジェクトが半透明表示された仮想空間の画像を生成してもよい。
【0026】
(8)このプログラム、情報記憶媒体、画像生成装置は、
前記特別状態発動部は、
所定のオブジェクトの存在を示す告知画像が、仮想空間の画像の当該オブジェクトに対応する位置に配置された画像を生成するための画像生成制御情報を生成し、
前記画像生成部は、
前記画像生成制御情報に基づき、仮想空間の画像と告知画像を合成し、告知画像を含む仮想空間の画像を生成してもよい。
【0027】
仮想空間の画像の当該オブジェクトに対応する位置とは、当該オブジェクトのスクリーン平面上の投影位置に対応して決定された位置でもよい。
【0028】
(9)このプログラム、情報記憶媒体、画像生成装置は、
前記特別状態発動部は、
仮想空間内の複数の異なる特別ポイントに対してプレーヤキャラクタが特別状態発動条件を満たしている場合には、プレーヤキャラクタと複数の特別ポイントとの距離に基づきプレーヤキャラクタを移動させる特別ポイントを決定してもよい。
【0029】
例えばプレーヤキャラクタの位置判定を、特別ポイントに対応して設定されたコリジョン(ヒットエリア)とのヒットチェックによって行う場合、複数の特別ポイントに対応して設定されたコリジョン(ヒットエリア)に重複部分が存在し、この重複部分とプレーヤキャラクタの位置がヒットすることがある。この様な場合に、仮想空間内の複数の異なる特別ポイントに対してプレーヤキャラクタが特別状態発動条件を満たしていることになる。
【0030】
(10)このプログラム、情報記憶媒体、画像生成装置は、
前記特別状態発動部は、
プレーヤキャラクタの位置が所定時間継続して前記位置条件を満足しているか、及びプレーヤキャラクタの向きが所定時間継続して前記向き条件を満たしているか、及びプレーヤキャラクタの移動方向が所定時間継続して前記移動方向条件を満たしているかの少なくとも1つの判定結果に基づき、プレーヤキャラクタが特別状態発動条件を満たしているか否か判断してもよい。
【0031】
例えばプレーヤキャラクタの位置判定を、特別ポイントに対応して設定されたヒットエリアとのヒットチェックによって行う場合、ヒット領域に対するヒットの継続時間に基づきプレーヤキャラクタが特別状態発動条件を満たしているか否か判断してもよい。プレーヤキャラクタが特別ポイントに対応して設定されたヒット領域に所定時間の間滞留している場合に特別状態発動条件を満たしていると判断してもよい。
【0032】
(11)このプログラム、情報記憶媒体、画像生成装置は、
前記特別状態発動部は、
入力情報に基づきプレーヤキャラクタの位置及び向きの少なくとも1つが変化して、プレーヤキャラクタの位置及び向きの少なくとも1つが特別状態解除条件を満たした場合にはプレーヤキャラクタを特別状態を解除する特別状態解除制御を行ってもよい。
【0033】
プレーヤキャラクタの位置や向きの代わりに仮想カメラの位置や向きを制御する構成である場合や、プレーヤキャラクタの位置や向きの代わりと仮想カメラの位置や向きが連動する構成である場合には、仮想カメラの位置及び向きの少なくとも1つが特別状態解除条件を満たした場合には、プレーヤキャラクタを特別状態から通常状態に移行させてもよい。
【0034】
(12)このプログラム、情報記憶媒体、画像生成装置は、
前記特別状態発動部は、
特別状態が発動されてからの時間及びプレーヤキャラクタの所定のパラメータの少なくとも1つが特別状態解除条件を満たすか否か判断し、満たしていると判断した場合には、プレーヤキャラクタを特別状態を解除する特別状態解除制御をおこなってもよい。
【0035】
(13)このプログラム、情報記憶媒体、画像生成装置は、
前記仮想カメラ制御部は、
特別状態発動中にプレーヤの向きを操作する操作入力が行われた場合には、特別状態発動中でない状態に比べ、プレーヤキャラクタに連動する仮想カメラの回転速度を遅くする制御を行ってもよい。
【0036】
(14)このプログラムは、
ネットワークで接続された他のゲーム装置又はサーバと接続されたゲーム装置で実行されるプログラムであって、
前記他のゲーム装置又は前記サーバとゲームデータのやりとりを行うゲームデータ通信処理部としてさらにコンピュータを機能させ、
前記ゲームデータ通信処理部は、
他のゲーム装置のプレーヤキャラクタの特別状態発動に関する情報を含むゲームデータを受信し、自己のゲーム装置のプレーヤキャラクタの特別状態発動に関する情報を含むゲームデータを送信し、
前記特別状態発動部は、
自己のゲーム装置のプレーヤキャラクタが所与の特別ポイントに対応する特別状態発動条件を満たした時点で、自己のゲーム装置のプレーヤキャラクタを所与の特別ポイントに移動させ、
自己のゲーム装置のプレーヤキャラクタが特別ポイントに移動した後に、他のゲーム装置のプレーヤキャラクタのゲームデータ特別状態発動に関する情報と、自己のゲーム装置のプレーヤキャラクタのゲームデータ特別状態発動に関する情報とが排他的な関係にあり、自己のプレーヤキャラクタの特別状態発動時期が他機のプレーヤキャラクタよりも後であると判断した場合には、特別ポイントにいる自己のプレーヤキャラクタを、特別ポイント以外の場所に移動させる排他制御を行うプログラムに関する。
【0037】
またコンピュータ読み取り可能な情報記憶媒体であって、上記各部として、コンピュータを機能させるプログラムを記憶した情報記憶媒体、上記各部を含む画像生成装置に関係する。
【0038】
特別状態発動に関する情報とは、例えば発動時刻や移動した特別ポイントに関する情報でもよい。
【0039】
例えば1つの特別ポイントに1体のプレーヤキャラクタしか移動できない設定になっている場合には、同じ特別ポイントに対して複数のゲーム装置で特別状態発動条件を満たしたことを示すゲームデータ同時期に存在する場合には排他的な関係になる。
【0040】
排他的な関係にあるか否かの判断は、各ゲーム装置で行ってもよいし、ホスト機又はサーバで行い、各ゲーム機は、ホスト機又はサーバから判断結果をうけとってもよい。また排他制御処理自体もホスト機又はサーバで行い、各ゲーム機は処理結果にしたがった出力を行う場合でもよい。
【0041】
(15)このプログラム、情報記憶媒体、画像生成装置は、
前記特別状態発動部は、
他のゲーム装置のプレーヤキャラクタと自己のゲーム装置のプレーヤキャラクタが同じ特別ポイントに対する特別状態発動条件を満たした場合又は同じグループに属する特別ポイントに対する特別状態発動条件を満たした場合、又は排他関係の設定されている特別ポイントに対する特別状態発動条件を満たした場合に排他的な関係にあるとして、前記排他制御を行ってもよい。
【0042】
(16)このプログラム、情報記憶媒体、画像生成装置は、
前記特別状態発動部は、
他のゲーム装置のプレーヤキャラクタと自己のゲーム装置のプレーヤキャラクタが排他的な関係にあり自己のプレーヤキャラクタの特別状態移行時期が他機のプレーヤキャラクタよりも後である場合には、自己のプレーヤのいる特別ポイント対して設定されている代替えの特別ポイントに、自己のプレーヤキャラクタを移動させ、通常状態から特別状態に移行させてもよい。
【図面の簡単な説明】
【0043】
【図1】本実施形態の画像生成装置の機能ブロック図。
【図2】特別状態発動条件及び特別状態制御情報について説明するための図。
【図3】特別ポイントに対応づけて記憶されている特別ポイント設定情報について説明するための図。
【図4】本実施の形態の攻撃パターン例を示す図。
【図5】特別攻撃パターンの動作制御について説明するための図。
【図6】仮想空間内に近接して複数の異なる特別ポイントが存在する例を示した図。
【図7】図7(A)(B)は特別状態のプレーヤキャラクタの動作制御及び仮想カメラの配置制御について説明するための図。
【図8】隠れ状態と攻撃状態の切り替え制御について説明するための図。
【図9】特別状態から通常状態に移行させる場合のプレーヤキャラクタの移動制御について説明するための図。
【図10】図10(A)(B)は、特別状態から通常状態に移行させる場合のプレーヤキャラクタの移動制御について説明するための図。
【図11】特別状態におけるカメラ旋回範囲の制限について説明するための図。
【図12】図12(A)(B)は、プレーヤキャラクタが攻撃により受けたダメージを軽減する(又は0にする)範囲について説明するための図。
【図13】図13(A)(B)はダメージを0にする攻撃の種類について説明するための図。
【図14】特別状態において視野範囲外の敵から攻撃を受ける場合について説明するための図。
【図15】図15(A)(B)(C)は、特別状態(特に隠れ状態)にあるプレーヤキャラクタと壁と敵キャラクタの位置関係を示した図。
【図16】プレーヤキャラクタや敵キャラクタが存在する仮想空間の一部を表した図。
【図17】図17(A)(B)は、隠れ状態及び攻撃状態にあるプレーヤキャラクタPCの様子を示す図。
【図18】攻撃パターン設定情報を示す図。
【図19】図19(A)(B)は特別状態(特に隠れ状態)における表示制御について説明するための図。
【図20】図20(A)(B)は、オンラインゲームシステムの構成について説明するための図。
【図21】複数のプレーヤのプレーヤキャラクタが仮想空間に存在している様子を示す図。
【図22】マルチプレーヤモードの場合のゲームデータの発生と受信タイミングを示すタイムチャート。
【図23】ゲーム装置間で送受信される通信データについて説明するための図。
【図24】仮想空間に複数の特別ポイントTP1〜TP7が設定されている様子を示す図。
【図25】図25(A)〜(D)は、特別状態と通常状態の攻撃開始位置について説明するための図。
【図26】図26は、本実施の形態の特別状態移行制御の処理の流れを示すフローチャート。
【発明を実施するための形態】
【0044】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【0045】
1.構成
図1に本実施形態の画像生成装置(コンピュータ、端末、ゲーム装置)の機能ブロック図の例を示す。なお本実施形態の画像生成装置は図1の構成要素(各部)の一部を省略した構成としてもよい。 入力部160は、プレーヤからの入力情報を入力するための機器であり、プレーヤの入力情報を処理部に出力する。本実施形態の入力部160は、プレーヤの入力情報(入力信号)を検出する検出部162を備える。入力部160は、例えば、レバー、ボタン、ステアリング、マイク、タッチパネル型ディスプレイなどがある。
【0046】
また、入力部160は、3軸の加速度を検出する加速度センサや、角速度を検出するジャイロセンサ、撮像部を備えた入力機器でもよい。例えば、入力機器は、プレーヤが把持して動かすものであってもよいし、プレーヤが身につけて動かすものであってもよい。また、入力機器には、プレーヤが把持する刀型コントローラや銃型コントローラ、あるいはプレーヤが身につける(プレーヤが手に装着する)グローブ型コントローラなど実際の道具を模して作られたコントローラも含まれる。また入力機器には、入力機器と一体化されている画像生成装置、携帯型画像生成装置、携帯電話なども含まれる。
【0047】
検出部162は、入力部160からの入力情報を検出する処理を行う。例えば、検出部162は、入力部160の引き金(トリガ)が引かれることによって発生する入力信号を、入力情報(攻撃入力情報)として検出する。例えば、検出部162は、入力部160から照準(ガンサイト)の位置を指示する入力情報(指示入力情報)を検出する。
【0048】
例えば、入力部160が、液晶ディスプレイと、プレーヤの接触位置を検出するためのタッチパネルとが積層されたタッチパネル型ディスプレイで有る場合には、タッチペンなどの指示入力機器や指先の接触位置情報を入力情報として検出する。
【0049】
また、入力部160が撮像部を備える入力機器である場合には、撮像画像におおける指示位置情報を入力情報として検出する。より具体的に説明すると、撮像部は、赤外線フィルタ、レンズ、撮像素子(イメージセンサ)、画像処理回路を含む。ここで、赤外線フィルタは、入力機器の前方に配置され、表示部190に関連付けられて配置されている光源(2つの光源)から入射する光から赤外線のみを通過させる。また、レンズは、赤外線フィルタを透過した赤外線を集光して撮像素子へ出射する。また、撮像素子は、例えば、CMOSセンサやCCDのような固体撮像素子であり、レンズが集光した赤外線を撮像して撮像画像を生成する。そして、撮像素子で生成された撮像画像は、画像処理回路で処理される。例えば、撮像部を備える入力機器は、撮像素子から得られた撮像画像を処理して高輝度部分を検知し、撮像画像における光源の位置情報(指示位置情報)を入力情報として検出する。
【0050】
記憶部170は、処理部100や通信部196などのワーク領域となるもので、その機能はRAM、VRAMなどにより実現できる。
【0051】
情報記憶媒体180(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(CD、DVD)、光磁気ディスク(MO)、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ(ROM)などにより実現できる。処理部100は、情報記憶媒体180に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。情報記憶媒体180には、本実施形態の各部としてコンピュータを機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)を記憶することができる。
【0052】
表示部190は、本実施形態により生成された画像を出力するものであり、その機能は、CRT、LCD、タッチパネル型ディスプレイ、或いはHMD(ヘッドマウントディスプレイ)などにより実現できる。音出力部192は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
【0053】
通信部196は外部(例えば他の画像生成装置)との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ASICなどのハードウェアや、プログラムなどにより実現できる。
【0054】
なお、サーバが有する情報記憶媒体や記憶部に記憶されている本実施形態の各部としてコンピュータを機能させるためのプログラムやデータを、ネットワークを介して受信し、受信したプログラムやデータを情報記憶媒体180や記憶部170に記憶してもよい。このようにプログラムやデータを受信して画像生成装置を機能させる場合も本発明の範囲内に含む。
【0055】
処理部100(プロセッサ)は、入力部160からの入力情報やプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの処理を行う。
【0056】
この処理部100は記憶部170内の主記憶部170をワーク領域として各種処理を行う。処理部100の機能は各種プロセッサ(CPU、GPU、DSP等)、ASIC(ゲートアレイ等)などのハードウェアや、プログラムにより実現できる。
【0057】
処理部100は、オブジェクト空間設定部110、仮想カメラ制御部111、特別状態発動部112、演算処理部113(攻撃演算部113−1、ダメージ演算部113−2を含む)、移動・動作処理部114、ゲーム演算部115、画像生成部(描画部)120、音処理部130を含む。なおこれらの一部を省略する構成としてもよい。
【0058】
オブジェクト空間設定部110は、キャラクタ(敵オブジェクト)の他に、建物、球場、車、樹木、柱、壁、マップ(地形)などの表示物を、オブジェクト空間に配置設定する処理を行う。
【0059】
ここでオブジェクト空間とは、仮想的なゲーム空間であり、2次元空間、3次元空間の両方を含む。2次元空間とは、例えば2次元座標(X,Y)においてオブジェクトが配置される空間であり、3次元空間とは、例えば3次元座標(X,Y,Z)においてオブジェクトが配置される空間である。
【0060】
例えば、オブジェクト空間設定部110は、オブジェクト空間を3次元空間とした場合には、ワールド座標系にオブジェクト(ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブで構成されるオブジェクト)を配置する。また、例えば、ワールド座標系でのオブジェクトの位置や回転角度(向き、方向と同義)を決定し、その位置(X、Y、Z)にその回転角度(X、Y、Z軸回りでの回転角度)でオブジェクトを配置する。
【0061】
特別状態発動部112は、プレーヤキャラクタの移動情報に基づき特別状態発動条件を満たしているか否か判断し、満たしている場合にはプレーヤキャラクタを仮想空間内に設定された特別ポイントに移動させ、特別状態を発動させる。
【0062】
仮想カメラ制御部111は、入力情報及びプレーヤキャラクタの移動情報の少なくとも1つに基づき仮想カメラの配置制御を行う。
【0063】
移動情報演算部(移動・動作処理部114)は、入力情報に基づき、プレーヤキャラクタの位置を演算し、特別状態発動部112は、プレーヤキャラクタの位置と仮想空間内の特別ポイントに対応づけて設定されている位置判定条件とに基づきプレーヤキャラクタの位置判定を行い、判定結果に基づきプレーヤキャラクタが特別状態発動条件を満たしているか否か判断する。
【0064】
移動情報演算部(移動・動作処理部114)は、入力情報に基づき、プレーヤキャラクタの向きを演算し、特別状態発動部112は、プレーヤキャラクタの向きと、仮想空間内の特別ポイントに対応して設定された向き条件に基づきプレーヤキャラクタの向き判定を行い、判定結果に基づきプレーヤキャラクタが特別状態発動条件を満たしているか否か判断してもよい。
【0065】
移動情報演算部(移動・動作処理部114)は、入力情報に基づき、プレーヤキャラクタの移動方向を演算し、特別状態発動部112は、プレーヤキャラクタの移動方向と、仮想空間内の特別ポイントに対応して設定された移動方向条件に基づきプレーヤキャラクタの移動方向判定を行い、判定結果に基づきプレーヤキャラクタが特別状態発動条件を満たしているか否か判断してもよい。
【0066】
特別状態発動部112は、特別状態発動中は、ゲーム演算に用いられるパラメータを特別状態発動中でない場合に比べてプレーヤキャラクタに有利な値に設定してもよいし、不利な値に設定してもよい。
【0067】
特別状態発動部112は、特別状態発動中は、特別ポイントにいるプレーヤキャラクタの状態を、入力情報に基づき隠れ状態と攻撃状態に切り替え、各状態に応じて異なる制御を行ってもよい。
【0068】
攻撃演算部113−1は、攻撃開始位置を決定し、攻撃開始位置から攻撃用飛来物の軌道を演算し、通常状態では、プレーヤキャラクタの位置に基づき攻撃開始位置を決定し、特別状態の攻撃可能状態では、仮想カメラの位置に基づき攻撃開始位置を決定してもよい。
【0069】
またダメージ演算部113−2は、攻撃情報に基づきプレーヤキャラクタのダメージを演算し、特別状態発動中もプレーヤキャラクタのヒットチェックは仮想カメラ位置ではなくプレーヤキャラクタの位置で行うようにしてもよい。
【0070】
移動情報演算部(移動・動作処理部114)は、入力情報及び姿勢情報の少なくとも一方に基づき、プレーヤキャラクタの接地の有無又は姿勢を演算し、特別状態発動部112は、プレーヤキャラクタの接地の有無又は姿勢に基づき、特別状態発動条件を満たしているか否か判断してもよい。
【0071】
特別状態発動部112は、特別状態発動中に、キャラクタの視界を遮るオブジェクトを半透明で描画するための描画制御情報を生成し、画像生成部120は、前記描画制御情報に基づきプレーヤキャラクタの視界を遮るオブジェクトが半透明表示された仮想空間の画像を生成してもよい。
【0072】
特別状態発動部112は、所定のオブジェクトの存在を示す告知画像が、仮想空間の画像の当該オブジェクトに対応する位置に配置された画像を生成するための画像生成制御情報を生成し、画像生成部120は、前記画像生成制御情報に基づき、仮想空間の画像と告知画像を合成し、告知画像を含む仮想空間の画像を生成してもよい。
【0073】
特別状態発動部112は、仮想空間内の複数の異なる特別ポイントに対してプレーヤキャラクタが特別状態発動条件を満たしている場合には、プレーヤキャラクタと複数の特別ポイントとの距離に基づきプレーヤキャラクタを移動させる特別ポイントを決定してもよい。
【0074】
特別状態発動部112は、プレーヤキャラクタの位置が所定時間継続して前記位置条件を満足しているか、及びプレーヤキャラクタの向きが所定時間継続して前記向き条件を満たしているか、及びプレーヤキャラクタの移動方向が所定時間継続して前記移動方向条件を満たしているかの少なくとも1つの判定結果に基づき、プレーヤキャラクタが特別状態発動条件を満たしているか否か判断してもよい。
【0075】
特別状態発動部112は、入力情報に基づきプレーヤキャラクタの位置及び向きの少なくとも1つが変化して、プレーヤキャラクタの位置及び向きの少なくとも1つが特別状態解除条件を満たした場合にはプレーヤキャラクタを特別状態を解除する特別状態解除制御を行ってもよい。
【0076】
特別状態発動部112は、特別状態が発動されてからの時間及びプレーヤキャラクタの所定のパラメータの少なくとも1つが特別状態解除条件を満たすか否か判断し、満たしていると判断した場合には、プレーヤキャラクタを特別状態を解除する特別状態解除制御を行ってもよい。
【0077】
仮想カメラ制御部111は、特別状態発動中にプレーヤの向きを操作する操作入力が行われた場合には、特別状態発動中でない状態に比べ、プレーヤキャラクタに連動する仮想カメラの回転速度を遅くする制御を行ってもよい。
【0078】
通信部196は、他のゲーム装置又は前記サーバとゲームデータのやりとりを行うゲームデータ通信処理部として機能し、他のゲーム装置のプレーヤキャラクタの特別状態発動に関する情報を含むゲームデータを受信し、自己のゲーム装置のプレーヤキャラクタの特別状態発動に関する情報を含むゲームデータを送信してもよい。
【0079】
特別状態発動部112は、自己のゲーム装置のプレーヤキャラクタが所与の特別ポイントに対応する特別状態発動条件を満たした時点で、自己のゲーム装置のプレーヤキャラクタを所与の特別ポイントに移動させ、自己のゲーム装置のプレーヤキャラクタが特別ポイントに移動した後に、他のゲーム装置のプレーヤキャラクタのゲームデータ特別状態発動に関する情報と、自己のゲーム装置のプレーヤキャラクタのゲームデータ特別状態発動に関する情報とが排他的な関係にあり、自己のプレーヤキャラクタの特別状態発動時期が他機のプレーヤキャラクタよりも後であると判断した場合には、特別ポイントにいる自己のプレーヤキャラクタを、特別ポイント以外の場所に移動させてもよい。
【0080】
特別状態発動部112は、他のゲーム装置のプレーヤキャラクタと自己のゲーム装置のプレーヤキャラクタが同じ特別ポイントに対する特別状態発動条件を満たした場合又は同じグループに属する特別ポイントに対する特別状態発動条件を満たした場合、又は排他関係の設定されている特別ポイントに対する特別状態発動条件を満たした場合に排他的な関係にあるとして、前記排他制御を行ってもよい。
【0081】
特別状態発動部112は、他のゲーム装置のプレーヤキャラクタと自己のゲーム装置のプレーヤキャラクタが排他的な関係にあり自己のプレーヤキャラクタの特別状態移行時期が他機のプレーヤキャラクタよりも後である場合には、自己のプレーヤのいる特別ポイント対して設定されている代替えの特別ポイントに、自己のプレーヤキャラクタを移動させ、通常状態から特別状態に移行させてもよい。
【0082】
移動・動作処理部114は、オブジェクト空間において、オブジェクトを移動・動作させる処理を行う。すなわち入力部160から入力された入力情報や、プログラム(移動・動作アルゴリズム)や、各種データ(モーションデータ)などに基づいて、オブジェクトをオブジェクト空間内で移動させたり、オブジェクトを動作(モーション、アニメーション)させたりする処理を行う。具体的には、オブジェクトの移動情報(位置、回転角度、移動速度、加速度、移動量、移動方向などの移動パラメータ)や動作情報(オブジェクトを構成する各パーツの位置、或いは回転角度)を、1フレーム(例えば、1/60秒)毎に順次求める処理を行う。なおフレームは、オブジェクトの移動・動作処理や画像生成処理を行う時間の単位である。
【0083】
移動・動作処理部114は、入力情報に基づき仮想空間内におけるプレーヤキャラクタの移動情報を演算する移動情報演算部として機能する。
【0084】
ゲーム演算部115は、種々のゲーム処理を行う。例えば、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、ゲーム終了条件が満たされた場合にゲームを終了する処理、最終ステージをクリアした場合にはエンディングを進行させる処理などがある。
【0085】
また、ゲーム演算部115は、プレーヤキャラクタの所与のパラメータ(体力値)が所定値(0)に達したか否かを判断する処理を行い、プレーヤキャラクタの所与のパラメータ(体力値)が所定値(0)に達した場合に、ゲーム終了と判定する処理を行う。
【0086】
画像生成部120は、処理部100で行われる種々の処理の結果に基づいて描画処理を行い、これにより画像を生成し、表示部190に出力する。画像生成部120が生成する画像は、いわゆる2次元画像であってもよいし、いわゆる3次元画像であってもよい。
【0087】
2次元画像を生成する場合には、例えば、オブジェクト(スプライト)毎に優先度を設定し、設定された優先度が低いオブジェクトから順に描画する。オブジェクト同士が重なる場合には、優先度が低いオブジェクトの上に、優先度の高いオブジェクトを描画する。
【0088】
いわゆる3次元ゲーム画像を生成する場合には、まずオブジェクト(モデル)の各頂
等を含むオブジェクトデータ(モデルデータ)が入力され、入力されたオブジェクトデータに含まれる頂点データに基づいて、頂点処理(頂点シェーダによるシェーディング)が行われる。なお頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理(テッセレーション、曲面分割、ポリゴン分割)を行うようにしてもよい。
【0089】
頂点処理では、頂点処理プログラム(頂点シェーダプログラム、第1のシェーダプログラム)に従って、頂点の移動処理や、座標変換、例えばワールド座標変換、視野変換(カメラ座標変換)、クリッピング処理、透視変換(投影変換)、ビューポート変換等のジオメトリ処理が行われ、その処理結果に基づいて、オブジェクトを構成する頂点群について与えられた頂点データを変更(更新、調整)する。
【0090】
そして、頂点処理後の頂点データに基づいてラスタライズ(走査変換)が行われ、ポリゴン(プリミティブ)の面とピクセルとが対応づけられる。そしてラスタライズに続いて、画像を構成するピクセル(表示画面を構成するフラグメント)を描画するピクセル処理(ピクセルシェーダによるシェーディング、フラグメント処理)が行われる。ピクセル処理では、ピクセル処理プログラム(ピクセルシェーダプログラム、第2のシェーダプログラム)に従って、テクスチャの読出し(テクスチャマッピング)、色データの設定/変更、半透明合成、アンチエイリアス等の各種処理を行って、画像を構成するピクセルの最終的な描画色を決定し、透視変換されたオブジェクトの描画色を描画バッファ(ピクセル単位で画像情報を記憶できるバッファ。VRAM、レンダリングターゲット)に出力(描画)する。すなわち、ピクセル処理では、ピクセルデータ、ボクセルデータなどの画素データ(色(RGB)、α値、Z値、輝度等)をピクセル単位で設定あるいは変更するパーピクセル処理を行う。これにより、オブジェクト空間内において仮想カメラ(所与の視点)から見える画像が生成される。なお、仮想カメラ(視点)が複数存在する場合には、それぞれの仮想カメラから見える画像を生成することができる。
【0091】
また仮想カメラ制御部110は、特別状態発動中は、プレーヤキャラクタと仮想カメラの距離、プレーヤキャラクタと仮想カメラの位置関係、プレーヤキャラクタに対する仮想カメラの向き、仮想カメラの画角の少なくとも1つを特別状態発動中でないときと異なる設定にしてもよい。
【0092】
また仮想カメラ制御部110は、前記攻撃状態では、プレーヤキャラクタと仮想カメラの距離、プレーヤキャラクタと仮想カメラの位置関係、プレーヤキャラクタに対する仮想カメラの向き、仮想カメラの画角の少なくとも1つを隠れ状態のときと異なる設定にしてもよい。
【0093】
また仮想カメラ制御部110は、特別状態又は特別状態における攻撃状態においては、プレーヤキャラクタの属性、姿勢、動作制御に使用するモーションの種類、アイテムの種類の少なくとも1つに基づき、プレーヤキャラクタと仮想カメラの距離、プレーヤキャラクタと仮想カメラの位置関係、プレーヤキャラクタに対する仮想カメラの向き、仮想カメラの画角の少なくとも1つを変更してもよい。
【0094】
仮想カメラ制御部110は、オブジェクト空間内の所与(任意)の視点から見える画像を生成するための仮想カメラ(視点)の制御処理を行う。具体的には、3次元の画像を生成する場合には、ワールド座標系における仮想カメラの位置(X、Y、Z)又は回転角度(例えば、X、Y、Z軸の各軸の正方向からみて時計回りに回る場合における回転角度)を制御する処理を行う。要するに、視点位置、視線方向、画角を制御する処理を行う。また、仮想カメラ制御部110は、仮想カメラを、予め決められた回転角度で回転させてもよい。この場合には、仮想カメラの位置又は回転角度を特定するための仮想カメラデータに基づいて仮想カメラを制御する。なお、仮想カメラ(視点)が複数存在する場合には、それぞれの仮想カメラについて上記の制御処理が行われる。
【0095】
本実施形態では、プレーヤキャラクタの視点(一人称視点)に基づいて画像を生成するFPS(First Person Shooting)でもよいし、画面に主人公が登場して、これをユーザが操作するタイプのTPS(Third Person Shooting)でもよい。また、本実施形態では、仮想カメラの移動、向き、画角はプログラム又は入力部160の入力情報に基づいて仮想カメラの移動、向き、画角を制御される。
【0096】
例えば仮想カメラによりオブジェクト(例えば、プレーヤキャラクタ)を後方から撮影する場合には、オブジェクトの位置、向きの変化に仮想カメラが追従するように、仮想カメラの位置、仮想カメラの向きを制御する。この場合には、移動・動作処理部114で得られたオブジェクトの位置、向き又は速度などの情報に基づいて、仮想カメラを制御できる。或いは、仮想カメラを、予め決められた向きに設定したり、予め決められた移動経路で移動させる制御を行ってもよい。この場合には、仮想カメラの位置(移動経路)又は向きを特定するための仮想カメラデータに基づいて仮想カメラを制御する。なお、仮想カメラ(視点)が複数存在する場合には、それぞれの仮想カメラについて上記の制御処理が行われる。
【0097】
なお頂点処理やピクセル処理は、シェーディング言語によって記述されたシェーダプログラムによって、ポリゴン(プリミティブ)の描画処理をプログラム可能にするハードウェア、いわゆるプログラマブルシェーダ(頂点シェーダやピクセルシェーダ)により実現される。プログラマブルシェーダでは、頂点単位の処理やピクセル単位の処理がプログラム可能になることで描画処理内容の自由度が高く、従来のハードウェアによる固定的な描画処理に比べて表現力を大幅に向上させることができる。
【0098】
そして画像生成部120は、オブジェクトを描画する際に、ジオメトリ処理、テクスチャマッピング、隠面消去処理、αブレンディング等を行う。
【0099】
ジオメトリ処理では、オブジェクトに対して、座標変換、クリッピング処理、透視投影変換、或いは光源計算等の処理が行われる。そして、ジオメトリ処理後(透視投影変換後)のオブジェクトデータ(オブジェクトの頂点の位置座標、テクスチャ座標、色データ(輝度データ)、法線ベクトル、或いはα値等)は、記憶部170に保存される。
【0100】
テクスチャマッピングは、記憶部170に記憶されるテクスチャ(テクセル値)をオブジェクトにマッピングするための処理である。具体的には、オブジェクトの頂点に設定(付与)されるテクスチャ座標等を用いて記憶部170からテクスチャ(色(RGB)、α値などの表面プロパティ)を読み出す。そして、2次元の画像であるテクスチャをオブジェクトにマッピングする。この場合に、ピクセルとテクセルとを対応づける処理や、テクセルの補間としてバイリニア補間などを行う。
【0101】
隠面消去処理としては、描画ピクセルのZ値(奥行き情報)が格納されるZバッファ(奥行きバッファ)を用いたZバッファ法(奥行き比較法、Zテスト)による隠面消去処理を行うことができる。すなわちオブジェクトのプリミティブに対応する描画ピクセルを描画する際に、Zバッファに格納されるZ値を参照する。そして参照されたZバッファのZ値と、プリミティブの描画ピクセルでのZ値とを比較し、描画ピクセルでのZ値が、仮想カメラから見て手前側となるZ値(例えば小さなZ値)である場合には、その描画ピクセルの描画処理を行うとともにZバッファのZ値を新たなZ値に更新する。
【0102】
αブレンディング(α合成)は、α値(A値)に基づく半透明合成処理(通常αブレンディング、加算αブレンディング又は減算αブレンディング等)のことである。 なお、α値は、各ピクセル(テクセル、ドット)に関連づけて記憶できる情報であり、例えば色情報以外のプラスアルファの情報である。α値は、マスク情報、半透明度(透明度、不透明度と等価)、バンプ情報などとして使用できる。
【0103】
音処理部130は、処理部100で行われる種々の処理の結果に基づいて音処理を行い、BGM、効果音、又は音声などのゲーム音を生成し、音出力部192に出力する。
【0104】
なお、本実施形態の画像生成装置は、1人のプレーヤのみがプレイできるシングルプレーヤモード用の装置にしてもよいし、複数のプレーヤがプレイできるマルチプレーヤモードを備える装置にしてもよい。
【0105】
例えば、図22に示すように、マルチプレーヤモードの場合には、プレーヤそれぞれの入力部160−1、160−2を用意し、各入力部160−1、160−2が指示する照準位置に基づいて敵キャラクタ等のヒット処理を行う。また、本実施形態では、マルチプレーヤモードの場合には、複数のプレーヤに提供するデータ、表示出力用画像、演算処理用画像、ゲーム音を、1つの画像生成装置を用いて生成している。なお、画像生成装置が他の画像生成装置とネットワークを介して入力情報などのデータを送受信し、受信したデータと入力部160からの入力情報とに基づいて、画像生成処理を行うようにしてもよい。
【0106】
2.本実施の形態の手法
(1)特別ポイント
図16は、プレーヤキャラクタや敵キャラクタが存在する仮想空間の一部を表した図である。仮想空間290は都会の地形を模して設定されており、プレーヤキャラクタCPが通行可能な道路292が設定され道路292以外の部分には建物等の静止オブジェクト294(斜線部分)が配置されプレーヤキャラクタは通行できないように構成されている。プレーヤは、操作部に設けられた方向指示入力画可能なレバーやボタン等を操作することにより、仮想空間内に設けられた道路290上でプレーヤキャラクタPCを自由に移動させることができる。
【0107】
仮想空間290のマップ上には、あらかじめ指定された少なくとも1つの特別ポイントTP1、TP2、TP3、・・・が存在する。特別ポイントTP1、TP2、TP3、・・・は、仮想空間内でゲーム上有利な場所であり、例えば壁や建物や木や車や岩等の防御壁オブジェクト266−1、296−2、296−3の陰に当たる位置に設定され、敵からの攻撃を受けにくい場所となっていてもよい。
【0108】
本実施の形態では、プレーヤキャラクタPCの移動情報に基づき、プレーヤキャラクタPCが特別状態発動条件を満たしているか否か判断し、満たしている場合にはプレーヤキャラクタPCを通常状態から特別状態に移行させ、仮想空間内に設定された特別ポイントに移動させる。
【0109】
例えば仮想空間290のマップ上にあらかじめ指定された特別ポイント付近のエリア298−1、298−2、298−3にプレーヤキャラクタPCがいる場合に、プレーヤが特定の操作入力を行う(特別状態発動入力を行う)と、プレーヤキャラクタPCは特別状態に移行するようにしてもよい。特別状態になると、プレーヤキャラクタPCは特別ポイントTP1、TP2、TP3、・・・に自動的に(移動用の入力によらずに)移動し、簡単な操作で、「物陰等から出て攻撃」⇔「物陰等に隠れる」が行え、防御力や攻撃力が高まった状態になる。
【0110】
(2)特別ポイント設定情報
本実施の形態では、特別ポイントに対応づけて特別状態発動条件及び特別状態における制御情報を特別ポイント設定情報として記憶している。図2は、特別状態発動条件及び特別状態制御情報について説明するための図であり、図3は、特別ポイントに対応づけて記憶されている特別ポイント設定情報について説明するための図である。
【0111】
特別ポイント設定情報310として、仮想空間に設定された特別ポイントを特定するための情報である特別ポイント識別ID311に対応づけて、特別状態発動条件(コリジョン情報312、向き条件313、優先順位317)や特別状態制御情報(特別状態位置情報314、特別状態向き情報315、攻撃パターン情報316)等のパラメータが設定されている。例えば特別ポイントに関連づけて上記パラメータを記憶するパラメータテーブルを用意しておいてもよい。
【0112】
コリジョン情報312は、特別状態発動条件を満たしているか否かの判断を行うために特別ポイント214に対応づけられたプレーヤキャラクタの位置判定用のコリジョン(2次元の判定領域でもよいし、3次元の判定ボックスでもよい)210を特定するための情報である。例えば2次元の判定領域や3次元の判定ボックスの頂点やポリゴン情報でもよいし、これらが記憶されている領域へのアクセス情報(アドレスやコリジョン識別情報でもよい)でもよい。このコリジョン210にプレーヤキャラクタが接触していないと特別状態に移行することはできない。例えば図16の特別ポイント付近のエリア298−1、298−2、298−3の2をコリジョンとして設定してもよい。
【0113】
向き条件313は、特別状態発動条件を満たしているか否かの判断を行うために特別ポイントTPに対応づけられたプレーヤキャラクタの向きを判定するための条件(向きの許容範囲220)を示す情報である。例えばプレーヤキャラクタのXZ平面上の向きの許容範囲220を設定してもよい。許容範囲220の両端のvaベクトル、vbベクトルを定義してもよい。特別状態発動入力が行なわれたときにプレーヤキャラクタの向き(XZ方向の向き)がこの許容範囲220内にない場合には特別状態発動条件を満たさず特別状態に移行することはできない。また本実施の形態では特別状態においてもプレーヤの入力によってプレーヤキャラクタの向き(仮想カメラの向き)を変更できるが、プレーヤキャラクタの向き(仮想カメラの向き)がこの許容範囲を超えたら特別状態を解除するようにしてもよい。プレーヤキャラクタの向きと仮想カメラの向きどちらか片方を入力して他方は連動する構成でもよいし、個別に入力により制御可能な構成でもよい。
【0114】
特別ポイント位置情報314は、特別状態に移行したプレーヤキャラクタを移動させる位置特別ポイントの位置座標である。
【0115】
特別状態向き情報315は、特別状態に移動してすぐの状態のプレーヤキャラクタ(仮想カメラ)の向き(上下方向もある3次元のベクトルの向きや方向)である。プレーヤキャラクタの向きを3軸方向の回転で表したものでもよい。
【0116】
例えば図16の特別ポイントTP3は、防御壁オブジェクト296−3の陰に設定されており、プレーヤキャラクタCPが防御壁オブジェクト296−3の陰に隠れて、防御壁オブジェクト296−3の向こう側にいる敵キャラクタECを攻撃する戦闘が予定されている。特別ポイントTP3では、敵のいることが予測される方向(壁の方向)262を特別状態におけるプレーヤキャラクタPCの特別状態向き情報350として設定してもよい。
【0117】
攻撃パターン識別情報316は、特別ポイントにおけるプレーヤキャラクタの攻撃パターンを特定する情報である。本実施の形態では特別ポイントによって異なる攻撃パターンが用意されている。図4は、本実施の形態の攻撃パターン例を示す図である。本実施の形態ではバライティに富んだ攻撃パターンを楽しめるように、複数の異なる攻撃パターンap1〜ap5を用意し、特別ポイントに対応づけられている攻撃パターンを使用している。
【0118】
特別ポイントにいるプレーヤキャラクタは、入力情報に基づき、隠れ状態(物陰に隠れているので攻撃できない状態)と攻撃状態(物陰から体の一部をだして敵に攻撃を行う状態)に切り替えられる。例えば攻撃入力が行われている時は攻撃状態となり、攻撃入力がない時は隠れ状態にしてもよい。
【0119】
特別ポイントにいるプレーヤキャラクタは、プレーヤからの攻撃入力(ガンシューティングにおける弾の発射入力等)がなされてない間は隠れ状態で、攻撃入力が行われると、プレーヤキャラクタが体の一部を物陰から出して攻撃を行う攻撃状態に切り替わるようにしてもよい。この様にすることにより、物陰に隠れて敵を攻撃するという、ドラマのようなシューティングの醍醐味をあじわうことができる。
【0120】
図17(A)の420−1は、プレーヤキャラクタPCの身長よりも高い壁430の陰である特別ポイントTP1において隠れ状態にあるプレーヤキャラクタPCの様子を示し、図17(A)の420−2は特別ポイントTP1において攻撃状態にあるプレーヤキャラクタPCの様子を示している。
【0121】
当該特別ポイントTP1には攻撃パターンap1が対応づけられており、攻撃パターンap1に従って、隠れ状態420−1では、プレーヤキャラクタPCが立った状態で壁430の後ろに隠れている動作(「立ち隠れ」)を行わせ、攻撃状態420−2では、プレーヤキャラクタPCが立った状態で右半身を壁430から出して攻撃を行う動作(「立ち右攻撃」)を行わせる。すなわち特別ポイントTP1では、プレーヤキャラクタPCに対し、攻撃入力がない状態(隠れ状態)では立った状態で壁430の後ろに隠れている「立ち隠れ」モーションを実行し、弾の発射入力が行われると立った状態でプレーヤキャラクタの右半身を壁430から出して攻撃を行う「立ち右攻撃」のモーションを実行することにより実現することができる。
【0122】
図17(B)の440−1は、プレーヤキャラクタPCの身長よりも低い壁450の陰である特別ポイントTP3において隠れ状態にあるプレーヤキャラクタPCの様子を示し、図17(B)の440−2は、特別ポイントTP3において攻撃状態にあるプレーヤキャラクタPCの様子を示している。
【0123】
当該特別ポイントTP3には攻撃パターンap3が対応づけられており、攻撃パターンap3に従って、隠れ状態440−1では、プレーヤキャラクタPCがしゃがんだ状態で壁450の後ろに隠れている動作(「しゃがみ隠れ」)を行わせ、攻撃状態440−2では、プレーヤキャラクタPCが立った状態で右半身を壁430から出して攻撃を行う動作(「立ち攻撃」)を行わせる。すなわち特別ポイントTP3では、プレーヤキャラクタPCに対し、攻撃入力がない状態(隠れ状態)ではしゃがんだ状態で壁450の後ろに隠れている「しゃがみ隠れ」モーションを実行し、弾の発射入力が行われると立った状態でプレーヤキャラクタの上半身を壁450から出して攻撃を行う「立ち攻撃」のモーションを実行することにより実現することができる。
【0124】
優先順位317は、複数の特別ポイントのコリジョンが重複しており、プレーヤキャラクタが複数の特別ポイントに対して同時に特別状態発動条件を満たした場合の優先度設定に関する情報である。優先度を示す数値等を格納し、数値の大小に応じて、いずれかの特別ポイントを優先的に選択するようにしてもよい。
【0125】
(3)攻撃パターンの設定値
図18は攻撃パターン設定情報を示す図である。図18に示すように攻撃パターンの制御を行うための各種設定値であるモーションパターン322、仮想カメラの位置情報(隠れ状態)334、仮想カメラの位置情報(攻撃状態)336、仮想カメラの向き情報(隠れ状態)338、仮想カメラの向き情報(攻撃状態)340を攻撃パターン設定情報として、攻撃パターン識別情報316に対応づけて記憶させてもよい。
【0126】
モーションパターン322は、攻撃パターンと1対1に対応するもので、図4の攻撃パターンap1〜ap5に対応するモーションパターンのモーションデータを特定する情報である。特別ポイントにいるプレーヤキャラクタの動作は、特別ポイントの座標を基準としてモーションパターンが示すモーションデータを再生することで実現することができる。特別状態ではプレーヤキャラクタのワールド座標系における位置は特別ポイントの位置で固定され、モーションによってプレーヤキャラクタのローカル座標系における位置が変化することで仮想空間内の移動が行われる。
【0127】
攻撃パターンap1は「立ち隠れ」(隠れ状態)と「立ち右攻撃」(攻撃状態)の動作を切り替えて行う攻撃パターンであり、攻撃パターンap1の動作を実現するために「立ち隠れ」動作を実現するための「立ち隠れ」モーションと「立ち右攻撃」動作を実現するための「立ち右攻撃」のモーションが用意されている。他の攻撃パターンap2〜ap5についても同様に、それぞれの隠れ状態の動作を実現するためのモーションとそれぞれの攻撃状態の動作を実現するためのモーションが用意されている。
【0128】
図5は特別攻撃パターンの動作制御について説明するための図である。
【0129】
特別ポイントにおけるプレーヤキャラクタPCの状態は、攻撃入力によって隠れ状態460と攻撃状態462に切り替えられる。それぞれの状態におけるプレーヤキャラクタPCの動作は、当該特別ポイントに対応して設定されている攻撃パターン設定情報のモーションパターンに対応するモーションデータによって実現される。
【0130】
特別状態においてプレーヤキャラクタCPをモーションさせる場合は、特別ポイントTPでプレーヤキャラクタCPのみモーションする形になる。
【0131】
図5に示すように隠れ状態460の仮想カメラ490の位置KP−hは、敵を見えやすくするために、特別状態のプレーヤキャラクタの位置(特別ポイント)TPとは別に持つ。なお通常状態では仮想カメラ490の位置KP−hはプレーヤキャラクタの位置と同じでもよいし、一定間隔話して追従させてもよい。
【0132】
特別状態の攻撃状態と隠れ状態では、プレーヤキャラクタと仮想カメラの距離、プレーヤキャラクタと仮想カメラの位置関係、プレーヤキャラクタに対する仮想カメラの向き、仮想カメラの画角の少なくとも1つが異なるので、隠れ状態のカメラ位置情報334と、攻撃状態のカメラ位置情報336を持たせてもよい。
【0133】
隠れ状態460の仮想カメラ480の位置KP−hは、隠れ状態460の仮想カメラ基準位置となるものであり、プレーヤキャラクタの位置(特別ポイント)TPからの差分であたえてもよい。例えばプレーヤキャラクタCPの位置(特別ポイント)を原点とするローカル座標系における座標値であたえてもよい。
【0134】
攻撃状態462の仮想カメラ480の位置KP−aは、攻撃状態462の仮想カメラ基準位置となるものであり、プレーヤキャラクタの位置(特別ポイント)からの差分であたえてもよい。例えばプレーヤキャラクタCPの位置(特別ポイント)TPを原点とするローカル座標系における座標値であたえてもよい。
【0135】
仮想カメラの速度情報(隠れ状態)338は、隠れ状態から攻撃状態へ切り替え時の仮想カメラ変化時の速度のパターンである。
【0136】
仮想カメラの速度情報(攻撃状態)340は、攻撃状態から隠れ状態への切り替え時の仮想カメラ変化時の速度のパターンである。
【0137】
(4)特別状態移行制御
本実施の形態ではプレーヤキャラクタの特別状態発動条件として、プレーヤキャラクタの位置がいずれかの特別ポイントのコリジョンに接触していること、プレーヤの向きがコリジョンが接触している特別ポイントに設定されている向き条件を満たしていること、プレーヤが接地していることを要求している。接地の有無はプレーヤキャラクタの位置や姿勢に基づき判断してもよい。例えばプレーヤキャラクタの位置座標(xp、yp、zp)と同じXZ値を有するマップのY座標値ymとを比較してyp>ymであれば接地していないと判断してもよい。またプレーヤキャラクタの姿勢データの判定によって、ジャンプ状態やしゃがみ状態や歩き状態や静止状態等を判断し、ジャンプ状態でない場合には接地していると判断してもよい。
【0138】
なおプレーヤキャラクタの移動方向を用いて、仮想空間内の特別ポイントに対応して設定された移動方向条件を満たしていることを特別状態発動条件にしてもよい。この場合には、特別方向設定条件として、特別ポイントに関連づけて、方向条件を設定しておいてもよい。
【0139】
図6は仮想空間内に近接して複数の異なる特別ポイントが存在する例を示した図である。特別ポイントTP−a、TP−bにはそれぞれコリジョンc−a、c−bと、向きの許容範囲(向き条件)d−a、d−bが設定されている。同図に示すようにコリジョンc−a、c−bは一部重複した領域250を有している。この様な場合にプレーヤキャラクタPCの位置260が、前記の重複した領域にあり、 プレーヤキャラクタPCの向き252が、特別ポイントTP−a、TP−bの向きの許容範囲(向き条件)d−a、d−bに含まれる場合には、プレーヤキャラクタPCは2つの特別ポイントTP−a、TP−bに対して特別状態発動条件を満たした状態となる。
【0140】
このような場合には、プレーヤキャラクタPCの位置250と特別ポイントTP−a、TP−bとの距離l−a、l−bに基づき移動させる特別ポイントを決定してもよい。例えばl−a>l−bであるので、プレーヤキャラクタPCの位置250からの距離が短い特別ポイントTB−bに移動させて特別状態に移行してもよい。
【0141】
また各特別ポイントには優先順位情報(図3の317参照)が対応づけられているので、対応づけられている優先順位が高いほうの特別ポイントに移動させてもよい。
【0142】
(5)特別状態における仮想カメラの制御
図7(A)(B)は特別状態のプレーヤキャラクタの動作制御及び仮想カメラの配置制御について説明するための図である。図7(A)は、通常状態(特別ポイントに移動する前)におけるプレーヤキャラクタPCの位置350と仮想カメラ480の位置関係を示しており、図7(B)は、特別ポイントTPにおいて隠れ状態(プレーヤキャラクタが攻撃を行っていない状態)にあるプレーヤキャラクタPCと仮想カメラ480の位置関係を示している。
【0143】
プレーヤキャラクタが特別状態発動条件を満たした場合には、仮想カメラ480をプログラムで特別ポイントTPに方向転換する。そして仮想カメラ480を特別状態カメラ位置(当該特別ポイントの攻撃パターンに対応して設定されている仮想カメラの位置情報(隠れ状態)(図17の334参照)に設定されている位置)KP−hに、所定の時間(特別ポイント移動時間として設定しておいてもよい)で移動させ、所定の向き(例えば図2で説明したプレーヤキャラクタの向き、図3の特別状態向き情報315として設定されている向きでもよい)に向ける。
【0144】
同様にプレーヤキャラクタPCも、プログラムで特別ポイントに方向転換する。そしてプレーヤキャラクタPCを特別ポイントTPに、所定の時間(特別ポイント移動時間として設定しておいてもよい)で移動させ、所定の向き(例えば図2で説明したプレーヤキャラクタの向き、図3の特別状態向き情報315として設定されている向きでもよい)に向ける。このときのプレーヤキャラクタのモーションは、そのときのモーションから隠れ状態になるモーション(当該特別ポイントの攻撃パターンの隠れ状態のモーションへのつなぎモーション)を再生する。
【0145】
図8は、隠れ状態と攻撃状態の切り替え制御について説明するための図である。
【0146】
プレーヤキャラクタPCが特別状態の隠れ状態460にあるときには、仮想カメラ480は隠れ状態における仮想カメラ位置KP−h(図18の334に基づき決定される仮想カメラ位置)に位置づけられる。特別状態の防御状態の時のプレーヤキャラクタに対する仮想カメラ480の相対位置は、通常状態のときとおなじでもよいし、異なってもよい。
【0147】
プレーヤキャラクタPCが特別状態の隠れ状態460にあるときに、「攻撃状態」への移行を指示する操作入力(例えばガンシューティングにおける発射入力でもよい)が行われると、プレーヤキャラクタPCが攻撃状態になるとともに、仮想カメラ480も攻撃状態における仮想カメラ位置KP−a(図18の336に基づき決定される仮想カメラ位置)に移動する。
【0148】
図8に示すように、攻撃状態においては、隠れ状態や通常状態に比べてプレーヤキャラクタと仮想カメラの距離、プレーヤキャラクタと仮想カメラの位置関係、プレーヤキャラクタに対する仮想カメラの向き等が異なっている。
【0149】
さらに攻撃可能状態においては、プレーヤキャラクタのアイテムの種類、属性、姿勢、動作制御に使用するモーションの種類の少なくとも1つに基づき、プレーヤキャラクタと仮想カメラの距離、プレーヤキャラクタと仮想カメラの位置関係、プレーヤキャラクタに対する仮想カメラの向き、仮想カメラの画角の少なくとも1つを変更するようにしてもよい。このようにすることにより、特別状態において、武器の種類、プレーヤの姿勢、属性(大きさ)、モーションに応じて最適な攻撃画像を提供することができる。
【0150】
隠れ状態から攻撃状態に切り替わっても、ワールド座標系におけるプレーヤキャラクタPCの位置座標は、特別ポイントに固定されている。攻撃状態に移行するモーションが再生されるのみであり、プレーヤキャラクタの実際の位置はモーション移動量の範囲で動くのみである。
【0151】
このように隠れ状態と攻撃状態の切り替えが行われるときに、プレーヤキャラクタPCはモーションによって動かされ(モーションで移動を伴う動きが規定されていればその分移動する)、仮想カメラ480はプレーヤキャラクタPCのモーションとは別個に動かされる。隠れ状態と攻撃状態の切り替えが行われるときに、仮想カメラの移動量とプレーヤキャラクタの移動量は異なるが、動き(移動)のスピードは同じにする。
【0152】
プレーヤキャラクタPCが特別状態の攻撃状態462にあるときに、隠れ入力(例えば隠れることを指示する入力でもよいし、ガンシューティングにおける発射入力が続けてなされない場合に行われる攻撃終了判定でもよい)が行われると、プレーヤキャラクタPCが隠れ状態になるとともに、仮想カメラ480やプレーヤキャラクタPCのモーションも、隠れ状態から攻撃状態への切り替え時と逆になる。切り替え中の状態は隠れ状態として扱う。
【0153】
なおプレーヤキャラクタPCの向きを特別状態向き情報(図3の315参照)で指定された向きにあわせるのは、特別状態発動動作のとき(特別ポイント移行時)のみで、特別状態における状態切り替えでは、向きあわせは行なわない。
【0154】
しかしプレーヤキャラクタPCをモーション再生で動かす場合、移動量の誤差で少しづつずれることが予想されるので、隠れ状態になった場合に、ワールド座標系におけるプレーヤキャラクタPCの位置座標を特別ポイントになるようにリセットしてもよい。
【0155】
図25(A)〜(D)は、特別状態と通常状態の攻撃開始位置について説明するための図である。
【0156】
一人称視点のゲームでは、仮想カメラ480の位置はプレーヤキャラクタの顔付近に設定される。本実施の形態でもプレーヤキャラクタが通常状態の時は、図25(A)に示すように、プレーヤキャラクタの顔付近の位置KP−uに仮想カメラ480が設定される。
【0157】
ところが特別状態(特に攻撃状態)の時は、仮想カメラ480は、プレーヤキャラクタの顔付近ではなく、プレーヤキャラクタからやや離れた位置(攻撃状態における仮想カメラ位置KP−a(図18の336に基づき決定される仮想カメラ位置))に設定される。特別状態でも攻撃状態にある時は、プレーヤキャラクタは敵を攻撃するためのガンシューティングを行うが、特別状態ではプレーヤキャラクタの前に壁430の視界を遮るオブジェクトが存在するため、通常状態と同じようにプレーヤキャラクタの顔付近に仮想カメラを配置したのでは、視界が遮られて敵が見えにくいためである。
【0158】
ここでプレーヤキャラクタが銃から弾を発射して敵キャラクタを攻撃する場合について考えると、一般には攻撃開始位置をプレーヤキャラクタの位置を基準に設定し弾等の攻撃用飛来物(例えば弾や弓や爆弾)の軌道を演算する。すなわち図25(C)に示すようにプレーヤキャラクタPCの位置に基づき設定された攻撃開始位置452(XZは同じで高さは適宜設定)からレイ450を飛ばして攻撃演算(ヒットチェック等)を行う。
【0159】
ところが、本実施の形態の特別状態の攻撃状態においてそれを行うと、図25(D)に示すように、レイ450が壁に遮られて弾が敵に届かない事態が生じる可能性がある。先に述べたように本実施の形態では特別状態の攻撃状態では仮想カメラ480はプレーヤキャラクタPCから離れた仮想カメラ配置位置KP−aに配置されているため、画面上では敵が見えて壁430には遮られていない状態となっている。しかしプレーヤが画面上の見え方の感覚に従って弾を発射したにもかかわらず、弾が壁430に遮られてしまうという、プレーヤの感覚を反映しない結果になり、違和感を与えてしまうことになる。
【0160】
そこで本実施の形態では、特別状態の攻撃状態では、図25(D)に示すように仮想カメラ480の位置KP−aに基づき設定された攻撃開始位置452’(XZは同じで高さは適宜設定)からレイ450’を飛ばして攻撃演算(ヒットチェック等)を行う。
【0161】
この様にすることにより、特別状態の攻撃可能状態において、仮想カメラの位置に基づき攻撃開始位置を決定することで、攻撃開始位置(銃口等)も仮想カメラと同様、射線が通る位置までずらすことができる。従って特別状態の攻撃可能状態のように仮想カメラがプレーヤキャラクタから離れた位置に設定される場合にも、発射した弾が自分が隠れている壁等に当たってしまい、敵に当たらない(画面で見える感覚床となる)という状態を発生させずにプレーヤに違和感を感じさせない攻撃を実現することができる。
【0162】
なお、攻撃情報に基づきプレーヤキャラクタのダメージを演算する場合には、(1人称視点の攻撃可能状態においても)、プレーヤキャラクタのヒットチェックはカメラ位置ではなくプレーヤキャラクタの位置で行う。攻撃状態においてはカメラ位置と、プレーヤキャラクタの位置が離れているが、そのような場合でもプレーヤキャラクタの位置でヒットチェックを行うことにより、プレーヤキャラクタを攻撃を受けにくい位置におくことができる。
【0163】
(6)特別状態のパラメータ制御
プレーヤキャラクタが特別ポイントにいる場合、ゲーム演算に用いられるパラメータを通常状態よりもプレーヤキャラクタに有利な値に設定してもよい。ゲーム演算に用いられるパラメータとは、プレーヤキャラクタに対応して設定されているパラメータ(攻撃、防御、ダメージ量、回復、ライフ、命中率等に関するパラメータ)でもよいし、敵キャラクタに対応して設定されているパラメータ(攻撃、防御、ダメージ量、回復、ライフ、命中率等に関するパラメータ)でもよい。
【0164】
例えばプレーヤキャラクタに対応して設定されているダメージ量パラメータが、プレーヤキャラクタがヒット時に受けるダメージに応じて設定されるものであるとすれば、通常状態ではヒットによりダメージ100が設定されるところ、特別状態ではダメージ0を設定すると、通常状態より有利な値に設定されたこととなる。
【0165】
また例えば敵キャラクタに対応して設定されている命中率パラメータが敵の攻撃の命中率を規定するものであれば、プレーヤキャラクタが特別ポイントにいる時に敵キャラクタの命中率パラメータを通常状態より命中率が低くなるように設定すると、プレーヤキャラクタにとって、通常状態より有利な値に設定されたことになる。
【0166】
この様にゲーム演算に用いられるパラメータがプレーヤキャラクタにとって通常状態よりもゲーム上有利な値に設定されている場合には、プレーヤキャラクタは、通常状態であればヒットする攻撃をうけてもヒットしなかったり、ヒットしてもダメージが与えられなかったり、通常状態よりも受けるダメージ量が軽減されたりする。
【0167】
図12(A)(B)は、プレーヤキャラクタが攻撃により受けたダメージを軽減する(又は0にする)範囲について説明するための図である。
【0168】
特別状態の隠れ状態ではプレーヤキャラクタは、前方からの攻撃に対してダメージを受けないものとする。敵からの攻撃は行われるが、プレーヤキャラクタにヒットしてもダメージを0とする制御を行う。特別状態の攻撃状態では、通常状態と同じダメージ処理(攻撃がヒットしたら規定量のダメージを与える)を行う。
【0169】
本実施の形態では、特別状態発動時の特別ポイントにおける方向520(図2の242、図3の特別状態向き情報315で設定された方向)を基準とする所定の範囲522からの攻撃についてダメージ0とする。特別状態発動時の特別ポイントにおける方向はプレーヤキャラクタが向いている方向とおなじではない。特別状態発動時はプレーヤキャラクタの向きは特別ポイントの発動時の方向に設定されるが、その後プレーヤの操作によりプレーヤキャラクタの向きが変化する可能性があるからである。この所定の範囲522は、特別ポイント毎に異なる範囲でもよいし、すべての特別ポイントで共通の値(基準方向に対する許容角度θr、θlを共通の値)にしてもよい。
【0170】
攻撃の方向が所定の範囲522に入るか否かは、図12(B)に示すように攻撃時の弾道53−1、530−2、530−3、530−4が所定の範囲522に会っているか否かで判断してもよい。弾道530−1、530−2、530−3は所定の範囲522に入っているので、これらの弾道についてはヒットしてもダメージを0とする。弾道539−4については、所定の範囲522に入っていないので、ヒットによるダメージを0とせず、規定されているダメージをプレーヤキャラクタに与える。
【0171】
図13(A)(B)はダメージを0にする攻撃の種類について説明するための図である。
【0172】
図13(A)の532はピストルの弾等の即着系の弾道(レイ)を示しており、534はミサイル等の実弾系のレイを示している。ダメージを0にするのは、レイを用いた着弾判定(レイチェック)を行っている即着系と実弾系に限る。レイとは、弾道や視線等の軌道を示す線(直線や曲線)であり、レイチェックとはレイとのヒットを演算するヒットチェックのことである。
【0173】
図13(B)は、地雷のように予めいずれかの場所(爆発位置)540にセットされている爆弾等の爆発系で与えるダメージについて説明するための図である。爆発系では爆発位置540から半径rの所定範囲(爆発影響範囲542)内に爆発の影響を及ぼす(ダメージを与える)。この様な爆発系では爆発時にプレーヤキャラクタ(仮想カメラ480)が爆発影響範囲542内にあれば、ダメージを受ける。また格闘のように近接して行う近接攻撃系はヒット判定でプレーヤに攻撃がヒットすれば、通常どおりのダメージを受けるようにする。
【0174】
尚、ミサイルのような実弾系でもヒット後、爆発544が発生することがあるが、この爆発については爆発系と同じように爆発影響範囲536を設定して、爆発影響範囲536に含まれればダメージを与えるようにする。
【0175】
図14は、特別状態において視野範囲外の敵から攻撃を受ける場合について説明するための図である。図14に示すようにプレーヤキャラクタ(仮想カメラ480)の視野範囲550外にいる敵キャラクタ560、562が、実弾系の弾534、即着系の弾532を発射した場合、その弾の「攻撃(弾1発)がユニットに与える基本ダメージ値」のパラメータを0とすることで実現することもできる。
【0176】
尚、実弾系のヒットによるダメージは0とするが、それによって爆発534が発生する場合は、従来通り爆発ダメージは受けるものとする。
【0177】
(7)特別状態における表示制御
図15(A)(B)(C)は、特別状態(特に隠れ状態)にあるプレーヤキャラクタと壁と敵キャラクタのXZ平面上に置ける位置関係、YZ平面上に置ける位置関係を示している。図15(A)(B)に示すように、プレーヤキャラクタPCと敵キャラクタECの間には壁610が存在する場合、一人称視点の画像では、図15(C)に示すように、敵キャラクタECは壁610に隠れて見えなくなってしまう。
【0178】
図19(A)(B)は特別状態(特に隠れ状態)における表示制御について説明するための図である。
【0179】
図19(A)に示すように、特別状態(特に隠れ状態)では、プレーヤキャラクタの視界を遮るオブジェクト(ここでは壁オブジェクト610)を半透明で表示してもよい。この様にすると壁の向こうの敵オブジェクトECを見ることができるので、特別状態における攻撃がしやすくなる。
【0180】
特別状態において半透明にするオブジェクト610は、予め指定しておいてもよい。たとえば地形モデルを作成する際に、特別ポイントの周りにある静止オブジェクトでプレーヤの視界を遮る可能性の高いオブジェクトをピックアップして、特別ポイントに対応して登録しておいてもよい。そしてプレーヤキャラクタが特別状態になると、特別ポイントに対応して登録されている静止オブジェクトを半透明表示にする表示制御をおこなってもよい。またプレーヤの視線方向や視野範囲と周囲のオブジェクトとの位置関係から特別ポイントにいるプレーヤキャラクタの視界を遮るオブジェクトをリアルタイムに演算して判断してもよい。この様にすると特別状態でも敵が確認できるので、プレーヤは特別状態における攻撃を楽しむことができる。なおこの半透明表示は、特別状態の隠れ状態の時のみ行い、おこなうようにしてもよい。
【0181】
また図19(B)に示すように、仮想空間の画像620に敵キャラクタECオブジェクトの存在を示す告知画像630を合成して表示してもよい。当該告知画像630の仮想空間の画像に対する配置位置は、敵オブジェクトECのスクリーン平面上の投影位置に基づき決定してもよい。
【0182】
敵キャラクタECを示す告知画像は、例えば当該オブジェクトの輪郭画像でもよいし、当該オブジェクトに対応するマーク画像でもよいし、当該オブジェクトのライフゲージ画像でもよい。
【0183】
(8)特別状態の解除
プレーヤの操作によって特別状態は解除される。例えば、入力情報に基づきプレーヤキャラクタ(仮想カメラ)の位置及び向きの少なくとも1つが変化して、プレーヤキャラクタ(仮想カメラ)の位置及び向きの少なくとも1つが特別状態解除条件を満たした場合には、プレーヤキャラクタを特別状態から通常状態に移行させてもよい。
【0184】
プレーヤキャラクタの位置や向きの代わりに仮想カメラの位置や向きを制御する構成である場合や、プレーヤキャラクタの位置や向きの代わりと仮想カメラの位置や向きが連動する構成である場合には、仮想カメラの位置及び向きの少なくとも1つが特別状態継続条件を満たさなくなった場合には、プレーヤキャラクタを特別状態から通常状態に移行させてもよい。
【0185】
またプレーヤキャラクタが特別状態に移行してからの時間及びプレーヤキャラクタの所定のパラメータの少なくとも1つに基づき特別状態解除条件を満たすか否か判断し、満たしている判断した場合には、プレーヤキャラクタを特別状態から通常状態に移行させてもよい。
【0186】
図9は、特別状態から通常状態に移行させる場合のプレーヤキャラクタの移動制御について説明するための図である。
【0187】
特別状態500においては、プレーヤキャラクタCPのワールド座標系の位置は特別ポイントTPであるが、モーションによって特別ポイントTPからすこし離れているとし、仮想カメラ480は特別状態カメラ位置(当該特別ポイントの攻撃パターンに対応して設定されている仮想カメラの位置情報(隠れ状態))KPに設定されている。
【0188】
このとき特別状態が解除されると510に示すように、プレーヤキャラクタCPは仮想カメラの位置KPの真下の位置KP’まで移動する。すなわち特別状態が解除されるとプレーヤキャラクタの位置は、特別ポイントTPではなく、仮想カメラの位置KPに合わせて移動する。
【0189】
このようにすることにより、特別状態から通常状態へ戻るときの仮想カメラの切り替え制御をスムーズに行うことができる。
【0190】
図10(A)(B)は、特別状態から通常状態に移行させる場合のプレーヤキャラクタの移動制御について説明するための図である。
【0191】
図10A)に示すように、特別状態500でプレーヤキャラクタPCが「立ち隠れ」状態である場合には、通常状態510でもそのまま「立ち状態」に移行する。
【0192】
図10(B)に示すように、特別状態500でプレーヤキャラクタPCが「しゃがみ隠れ」の場合は、通常状態510では「しゃがみ状態」から「立ち状態」に移行させる。
【0193】
図11は、特別状態におけるカメラ旋回範囲の制限について説明するための図である。
【0194】
本実施の形態ではプレーヤキャラクタが特別ポイントにいるときも、プレーヤは操作部からの入力により、プレーヤキャラクタ(仮想カメラ)の向きを操作することができる。
【0195】
プレーヤキャラクタ(仮想カメラ480)の向きが、向き条件(特別状態移行を判断する際の向き条件313)で設定されている許容範囲510(図2の220と同じでもよい)を超えた場合、特別状態を解除するが、通常状態と同じようにプレーヤキャラクタ(仮想カメラ480)の向きを制御していたのでは、許容範囲510の限界に達しているのがわからない。そこで特別状態においてプレーヤキャラクタ(仮想カメラ)の向きを変更する操作入力が行われた場合には、通常状態において操作入力が行われた場合に比べ、カメラの回転速度を遅くする制御をおこなうようにしてもよい。
【0196】
また仮想カメラ480の向きが予め設定された所定の範囲を超えた場合又は、超えそうな場合には仮想カメラ480の回転速度を遅くして、仮想カメラ480の向きを動かしにくくしてもよい。
【0197】
この様にすることによりプレーヤに特別状態解除条件にあたるほど仮想カメラ480の向きを変化させようとしていることを知らせることができる。そして仮想カメラ480の向きが急激に変化するのを防ぐことができる
【0198】
(9)オンラインゲームの制御
本実施の形態は、ネットワークで接続された他のゲーム装置又は他のゲーム装置が接続されたサーバとゲームデータのやりとりを行うオンラインゲームを行うこともできる。
【0199】
図20(A)(B)は、オンラインゲームシステムの構成について説明するための図である。例えば図20(A)に示すように、複数のゲーム装置GM1〜GM6をピアツーピア方式で接続して、他のゲーム装置とゲームデータの送受信をおこない、各ゲーム装置GM1〜GM6が自機のゲームデータと受信した他のゲーム装置のゲームデータに基づきゲーム演算を行う構成でもよい。
【0200】
ゲーム装置GM1〜GM6は、他のゲーム装置との間でブルートゥース(Bluetooth)等を用いた電波によるワイヤレス通信を行ってもよい。
【0201】
ネットワークを構成する各ゲーム装置GM1〜GM6無線LAN機能を備え、IEE E 802.11規格(例えば、IEEE 802.11b)に準拠している場合には、ブロードキャスト方式、ユニキャスト方式、あるいはマルチキャスト方式によるパケット通信(データ通信)によって、グループの他のゲーム装置へゲームデータの送受信を行ってもよい。対戦相手が特定できる場合にはユニキャスト方式で送信するようにしてもよい。
【0202】
ユニキャスト(Unicast)方式とは、自機の通信可能範囲内で、単一のネットワークアドレスを指定して特定の相手(ノード)にデータ(データを含むパケット)を送信する通信方式であって、マルチキャスト(Multicast)方式とは、自機の通信可能範囲内で、複数の相手(ノード)のネットワークアドレスを指定して同じデータ(データを含むパケット)を送信する通信方式である。
【0203】
また例えば図20(B)に示すように、複数のゲーム装置GM1〜GM6とサーバ650がネットワーク660を介して接続され、サーバ650を介してゲームデータのやりとり行う構成でもよい。
【0204】
各ゲーム装置GM1のゲームデータ通信処理部は、ネットワーク660で接続された他のゲーム装置又は他のゲーム装置が接続されたサーバ650とゲームデータのやりとりを行う。
【0205】
オンラインゲームでは複数のプレーヤのプレーヤキャラクタが仮想空間に存在しているので、例えば図21に示すように、第1のプレーヤのプレーヤキャラクタPC1と第2のプレーヤのプレーヤキャラクタPC2が、特別ポイントTP1の近くにいる場合に、いずれもが特別ポイントTPに対する特別状態発動条件を満たすことがある(例えばいずれも特別ポイントに対応するコリジョン210に接している場合等)。しかし特別ポイントTP1に位置できるプレーヤキャラクタは1体であるので、この様な場合には、先に特別状態発動条件を満たしたほうが特別ポイントTP1に移動できる。
【0206】
例えば第1のプレーヤのプレーヤキャラクタPC2が、先に特別状態発動条件を満たした場合には、第1のプレーヤのプレーヤキャラクタPC1が特別ポイントTP1に移動でき、第2のプレーヤキャラクタは特別ポイントTP1に移動できない。
【0207】
このように特別ポイントに位置できるプレーヤキャラクタを1体にする排他制御を行うためには、他機のゲームデータ(例えば他機のプレーヤキャラクタが特別ポイントTP1に対して特別状態発動条件を満たしたというゲームデータ)が必要になる。
【0208】
ところがオンラインでゲームを行う場合には、自機のゲームデータ(例えば自機のプレーヤキャラクタが特別ポイントTP1に対して特別状態発動条件を満たしたというゲームデータ)は遅延なしに受け取れるが、他機の自機のゲームデータ(例えば他機のプレーヤキャラクタが特別ポイントTP1に対して特別状態発動条件を満たしたというゲームデータ)は、ネットワーク経由で受信するため、通信遅延が生じる。例えば通信遅延がα秒であるとすると他機のゲームデータを取得できるのがα秒後となる。
【0209】
従って他のゲーム装置のゲームデータを反映した排他制御を行うと、第1のプレーヤキャラクタPC1はα秒後まで特別ポイントへ移動することができないことになり、プレーヤの操作感覚とずれが生じてしまう。
【0210】
そこで本実施の形態では、自機のゲームデータが自機のプレーヤキャラクタの特別ポイントTP1に対する特別状態発動条件を満たしている場合には、その時点で一旦特別ポイントに移動させる。他のゲーム装置でも同じ処理を行うので、先に説明したように第1のプレーヤのプレーヤキャラクタPC1と第2のプレーヤのプレーヤキャラクタPC2が、ほぼ時を同じくして特別状態発動条件を満たした場合には、両方のゲーム装置でそれそれ自機のプレーヤキャラクタを特別ポイントTP1に移動させる処理が行われる。
【0211】
従って図21のような場合には、第1のプレーヤキャラクタと第2のプレーヤキャラクタが一旦両方とも特別ポイントに移動することになる。そして、排他制御のための判断ができるようになった時点で(オンラインゲームに参加している複数のプレーヤの所与の時点におけるデータがそろった時点)で排他制御のための調停処理が行われる。
【0212】
調停処理は、各端末において「プレーヤキャラクタが特別ポイントTP1に対する特別以降条件を満たしたというイベント」の発生時刻を比較して、発生時刻の遅い方のプレーヤキャラクタを当該特別ポイント以外の場所に移動させる処理を行う。
【0213】
図23は、ゲーム装置間で送受信される通信データについて説明するための図である。通信データ700は、ゲームデータ730と、当該ゲームデータを生成したゲーム装置ID710、当該ゲームデータの発生時刻720を含む。ゲームデータ730は、ゲーム結果としての画像生成や音生成や成績データ生成に必要な情報であり、各ゲーム装置がゲーム演算を行うために必要な情報(例えば入力情報やイベント情報)でもよいし、いずれかのゲーム装置やサーバで行われたゲーム演算の結果発生した情報(位置情報やヒット情報や成績情報やパラメータ情報)でもよい。
【0214】
図22は、オンラインゲームにおけるゲームデータの発生と送受信について説明するための図である。第1のゲーム装置GM1(第1のプレーヤキャラクタPC1)と第2のゲーム装置GM2(第2のプレーヤキャラクタPC2)がオンラインゲームを行っている場合に、時刻t1において、第1のゲーム装置GM1(第1のプレーヤキャラクタPC1)で、ゲームデータa1(第1のプレーヤキャラクタPC1が、特別ポイントTP1に対して特別状態発動条件を満たしたことを示すゲームデータ)が発生し、時刻t2(t1<t2)において、第2のゲーム装置GM2(第2のプレーヤキャラクタPC2)で、ゲームデータb1(第2のプレーヤキャラクタPC2が、特別ポイントTPに対して特別状態発動条件を満たしたことを示すゲームデータ)が発生したとする。
【0215】
ここで通信遅延がαである場合、時刻t1に第1のゲーム装置GM1でゲームデータa1が発生し、対応するゲームデータa1’が他の端末に送信されると、第2のゲーム装置GM2がゲームデータa1’をうけとるのが時刻t3となる。同様に時刻t2に第2のゲーム装置GM2でゲームデータb1が発生し、対応するゲームデータb1’が他の端末に送信されると、第1のゲーム装置GM2がゲームデータb1’をうけとるのが時刻t4となる。
【0216】
各ゲーム装置がそれそれ自機のゲームデータ及び他機から受信したゲームデータに基づき、同じアルゴリズムで別個にゲーム演算を行っている場合、時刻t1において第1のゲーム装置GM1では、自機で発生したゲームデータa1に基づいて、第1のプレーヤキャラクタPC1を特別ポイントTPに移動させる制御が行なわれる。そして時刻t2において第2のゲーム装置GM2では、自機で発生したゲームデータb1に基づいて、第2のプレーヤキャラクタPC2を特別ポイントTPに移動させる制御を行う。
【0217】
そして時刻t3において第2のゲーム装置GM2ではゲームデータa1’を受け取る。ゲームデータa1’はゲーム装置GM1で時刻t1に第1のプレーヤキャラクタPC1が特別ポイントTPに対して特別状態発動条件を満たしたというイベント(ev1)が発生したこと示している。一方、自機で発生したゲームデータb1は、ゲーム装置GM1で時刻t2に第2のプレーヤキャラクタPC2が特別ポイントTPに対して特別状態発動条件を満たしたというイベント(ev2)が発生したこと示している。イベントev1とイベントev2は、同時に成立できない排他的なイベントであるため調整制御が必要となる。この場合イベントev1の発生時刻がイベントev2の発生時刻より早いので、イベントev1を優先する調整制御(例えば後のイベントをキャンセルする制御等)が行われる。調整制御として、ゲーム装置GM2では、時刻t3において、自機のプレーヤキャラクタである第2のプレーヤキャラクタを特別ポイントから他の場所へ移動させる制御が行われる。この様に第1のプレーヤキャラクタPC1と第2のプレーヤキャラクタPC2は、それぞれが特別状態発動条件を満たした時点で、一旦特別ポイントTPに移動するが、後に入った第2のプレーヤPC2は、その後特別ポイントから追い出され、先に入った第1のプレーヤキャラクタが特別ポイントTPにのこる画像が生成される。
【0218】
この様にすると、通信によるデータ遅延に関わらず特別ポイントへのスムーズな移動が実現でき、プレーヤの操作感覚にマッチしたゲームを提供することができる。
【0219】
なお排他関係にあるか否かの判断は他のゲーム装置のプレーヤキャラクタの特別状態移行情報と、自己のゲーム装置のプレーヤキャラクタの特別状態移行情報とに基づき各ゲーム機で個別に行ってもよいし、排他関係にあるか否かの判断はホスト機又はサーバで行い、各ゲーム機は、ホスト機又はサーバから排他チェック結果をうけとってもよい。
【0220】
上記実施の形態はオンラインゲームにおいて、各特別ポイント単位で排他制御を行う場合について説明したが、複数の特別ポイントをグループ化して、グループ単位に排他制御を行うようにしてもよい。
【0221】
図24は仮想空間に複数の特別ポイントTP1〜TP7が設定されている様子を示している。
【0222】
ここで特別ポイントTP1〜TP3は排他制御の対象となる特別ポイントを規定する第1のグループに属している。第1のグループに属する特別ポイントは排他制御の対象となるため、所与の時点で、第1のグループ内の特別ポイントはいずれか1つのみしかプレーヤキャラクタを移動させることができない。例えば第1のプレーヤキャラクタPC1が第1のグループに属する特別ポイントTP1に対して特別状態発動条件を満たした場合、第1のグループに属する特別ポイントTP1〜TP3のいずれにも他のプレーヤキャラクタがいない場合に、特別ポイントTP1に移動することができる。例えば第1のグループに属する特別ポイントTP2に既に他のプレーヤキャラクタがいる場合には、第1のプレーヤキャラクタPC1は特別ポイントTP1に移動することができない。
【0223】
例えば近接して存在する複数の特別ポイントを排他制御の対象としてグループ化しておいてもよい。特別ポイントにいるプレーヤは攻撃状態と隠れ状態を切り替えて攻撃動作を行う。具体的には壁等の隙間から体の一部を出したり隠れたりして攻撃防御動作を行うため、近接する特別ポイントに複数のプレーヤキャラクタが存在すると、いずれかのプレーヤキャラクタの攻撃防御動作が他のレーヤキャラクタの攻撃防御動作のじゃまになる可能性がある。従ってそのような可能性のある特別ポイント(例えば一定距離以内に存在する特別ポイント)を排他制御の対象としてグループ化しておいてもよい。
【0224】
また特別ポイントTP4〜TP7は代替え制御の対象となる特別ポイントを規定する第2のグループに属している。第2のグループに属する特別ポイントは代替え制御の対象となる。すなわちプレーヤキャラクタPC1が、所与の時点で、第2のグループ内の特別ポイントTP4に対して特別状態発動条件を満たしたが、その特別ポイントTP4には既に他のプレーヤキャラクタがいる場合には、第2のグループに属する他の特別ポイント(プレーヤキャラクタのいない特別ポイント)にプレーヤキャラクタPC1を移動させることができる。
【0225】
例えば近接して存在する複数の特別ポイントを代替え制御の対象としてグループ化しておいてもよい。この様にすると、グループ内の所与の特別ポイントに対して複数のプレーヤキャラクタが特別状態発動条件を満たした場合に、移行時期の早いプレーヤキャラクタを当該所与の特別ポイントに移動させ、移行時期の遅いプレーヤキャラクタをグループ内の他の特別ポイントに移動させてもよい。
【0226】
3.本実施の形態の処理
図26は、本実施の形態の特別状態移行制御の処理の流れを示すフローチャートである。特別状態発動入力あった場合には以下の処理を行う(ステップS10)。プレーヤキャラクタの位置と接触するコリションを有する特別ポイントがあるか否か判定し(ステップS20)、ある場合には、プレーヤキャラクタの向きが対象特別ポイントに設定されている向き条件を満たすか判定する(ステップS30)。向き条件を満たす場合には、プレーヤキャラクタは接地しているか否か判定する(ステップS40)。接地している場合には、プレーヤキャラクタを特別状態に移行させるとともに、対象の特別ポイントに移動させ、対象の特別ポイントに設定されている向き情報の向きに配置する(ステップS50)。
【0227】
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。例えば、明細書又は図面中の記載において広義や同義な用語として引用された用語は、明細書又は図面中の他の記載においても広義や同義な用語に置き換えることができる。
【0228】
上記実施の形態では、ゲーム装置が撮影装置である場合を例にとり説明したがこれに限られない。例えばゲーム装置は、業務用ゲームシステム、家庭用ゲームシステム、携帯型ゲームシステム等のいずれのタイプでも構成可能であり、ゲームの種類もシューティングゲームやレースゲームやロールプレイングゲームやパズルゲーム等の種々のゲームシステムに適用できる。
【符号の説明】
【0229】
100 処理部、110 オブジェクト空間設定部、111 仮想カメラ制御部、112 特別状態発動部、113 演算処理部、
113−1 攻撃演算部、113−2 ダメージ演算部、
114 移動・動作処理部、115 ゲーム演算部、
120 画像生成部、130 音処理部、
160 入力部、162 検出部、180 情報記憶媒体、190 表示部、
170 記憶部、172 主記憶部、
192 音出力部、196 通信部
【技術分野】
【0001】
本発明は、プログラム、情報記憶媒体、及び、画像生成装置に関する。
【背景技術】
【0002】
従来より、キャラクタなどのオブジェクトが配置設定されるオブジェクト空間内(仮想的な3次元空間)において仮想カメラ(所与の視点)から見える画像を生成する画像生成装置(ゲームシステム)が知られており、いわゆる仮想現実を体験できるものとして人気が高い。
【0003】
例えば、プレーヤが入力部を用いて、オブジェクト空間(3次元空間)において、弾を発射させて敵キャラクタを射撃するシューティングゲームの画像を生成する画像生成装置が存在する。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特許3538285号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
このようなシューティングゲームにおいては、プレーヤキャラクタが壁等の物陰に隠れて物陰から攻撃を行うことができるものがあり人気が高い。
【0006】
またプレーヤの入力操作に基づいてプレーヤキャラクタをゲーム空間内で自由に移動させることができるタイプのゲームシステムも人気が高い。しかしかかるゲームシステムでは、プレーヤキャラクタが入力に従って仮想空間内を自由移動できるので、壁等の物陰に隠れる状況を設定することは難しいという問題があった。
【0007】
本発明は、以上のような課題を解決するためになされたものである。本発明のいくつかの態様によれば、入力情報により仮想空間でプレーヤキャラクタの自由移動が可能なゲームの画像を生成する画像生成装置において、プレーヤキャラクタがゲーム上有利な特別ポイントに移動し特別ポイントでゲーム行為を楽しめるゲーム状況を設定することができる。
【課題を解決するための手段】
【0008】
(1)本発明は、
仮想空間内でプレーヤキャラクタを移動させるゲームの画像を生成するためのプログラムであって、
入力情報に基づき仮想空間内におけるプレーヤキャラクタの移動情報を演算する移動情報演算部と、
プレーヤキャラクタの移動情報に基づき特別状態発動条件を満たしているか否か判断し、満たしている場合にはプレーヤキャラクタを仮想空間内に設定された特別ポイントに移動させ、特別状態を発動させる特別状態発動部と、
入力情報及びプレーヤキャラクタの移動情報の少なくとも1つに基づき仮想カメラの配置制御を行う仮想カメラ制御部と、
仮想空間を仮想カメラから見た画像を生成する画像生成部と、してコンピュータを機能させ、
前記移動情報演算部は、
入力情報に基づき、プレーヤキャラクタの位置を演算し、
前記特別状態発動部は、
プレーヤキャラクタの位置と仮想空間内の特別ポイントに対応づけて設定されている位置判定条件とに基づきプレーヤキャラクタの位置判定を行い、判定結果に基づきプレーヤキャラクタが特別状態発動条件を満たしているか否か判断することを特徴とするプログラムに関する。
【0009】
本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部として、コンピュータを機能させるプログラムを記憶した情報記憶媒体、上記各部を含む画像生成装置に関係する。
【0010】
特別ポイントは、仮想空間内で戦闘を行う際に有利な位置(例えば敵からの攻撃を受けにくい位置、敵からの攻撃を防御するオブジェクトに囲まれた位置等)でもよい。
【0011】
特別状態にある(特別ポイントにいる)プレーヤキャラクタは、ゲームの進行において有利な条件を与えられてもよい。
【0012】
本発明は人称視点の画像が生成される場合(FPSの場合)と3人称視点の画像が生成される場合(TPSの場合)のいずれの場合にも適用可能である。またプレーヤキャラクタは、入力情報によって仮想空間内を自由に移動する制御が行われ構成でもよい。仮想カメラはプレーヤキャラクタに追従して移動する構成でもよく、この場合プレーヤキャラクタを移動させるための入力情報に基づき仮想カメラの移動や配置制御が行われてもよい。
【0013】
入力情報としては、プレーヤキャラクタ(仮想カメラ)の移動方向(例えば前後左右)、移動速度、プレーヤキャラクタ(仮想カメラ)の向き(回転)等を受け付けてもよい。
【0014】
なおプレーヤからの特別状態発動を指示する操作入力があった場合に、特別状態発動条件を満たすか否か判断するようにしてもよい。すなわちプレーヤからの特別状態発動を指示する操作入力がない場合には、特別状態発動条件を満たしても特別状態に移行させない場合も、本発明の範囲内である。特別状態が発動されると、解除されるまで特別状態発動中の状態となる。
【0015】
なおプレーヤキャラクタの位置や向きの代わりに仮想カメラの位置や向きを制御する構成である場合や、プレーヤキャラクタの位置や向きと仮想カメラの位置や向きが連動する構成である場合には、仮想空間内の特別ポイントと仮想カメラの位置に基づき位置判定を行い、判定結果に基づきプレーヤキャラクタが特別状態発動条件を満たしているか否か判断してもよい。
【0016】
本発明によれば、入力情報により仮想空間でプレーヤキャラクタの自由移動が可能なゲームの画像を生成する画像生成装置において、移動体オブジェクトがゲーム上有利な特別ポイントに移動し特別ポイントでゲーム行為を楽しめるゲーム状況を設定することができる。
【0017】
(2)このプログラム、情報記憶媒体、画像生成装置は、
前記移動情報演算部は、
入力情報に基づき、プレーヤキャラクタの向きを演算し、
前記特別状態発動部は、
プレーヤキャラクタの向きと、仮想空間内の特別ポイントに対応して設定された向き条件に基づきプレーヤキャラクタの向き判定を行い、判定結果に基づきプレーヤキャラクタが特別状態発動条件を満たしているか否か判断してもよい。
【0018】
(3)このプログラム、情報記憶媒体、画像生成装置は、
前記移動情報演算部は、
入力情報に基づき、プレーヤキャラクタの移動方向を演算し、
前記特別状態発動部は、
プレーヤキャラクタの移動方向と、仮想空間内の特別ポイントに対応して設定された移動方向条件に基づきプレーヤキャラクタの移動方向判定を行い、判定結果に基づきプレーヤキャラクタが特別状態発動条件を満たしているか否か判断してもよい。
【0019】
(4)このプログラム、情報記憶媒体、画像生成装置は、
前記特別状態発動部は、
特別状態発動中は、ゲーム演算に用いられるパラメータを特別状態発動中でない場合に比べてプレーヤキャラクタに有利な値又は不利な値に設定してもよい。
【0020】
例えば、特別ポイントにいるプレーヤキャラクタについては、攻撃、防御、ダメージ量、回復、ライフ、命中率等に関するパラメータを通常状態よりもゲーム上有利な値に設定してもよいし、ゲーム上有利な値に設定してもよい。
【0021】
例えば特別状態発動中にゲーム演算に用いられるパラメータを特別状態発動中でない場合に比べてプレーヤキャラクタに有利な値にすることにより、プレーヤに特別ポイントに移動することに対するモチベーションを与えることができる。
【0022】
(5)このプログラム、情報記憶媒体、画像生成装置は、
前記特別状態発動部は、
特別状態発動中は、特別ポイントにいるプレーヤキャラクタの状態を、入力情報に基づき隠れ状態と攻撃状態に切り替え、各状態に応じて異なる制御を行ってもよい。
【0023】
(6)このプログラム、情報記憶媒体、画像生成装置は、
前記移動情報演算部は、
入力情報及び姿勢情報の少なくとも一方に基づき、プレーヤキャラクタの接地の有無又は姿勢を演算し、
前記特別状態発動部は、
プレーヤキャラクタの接地の有無又は姿勢に基づき、特別状態発動条件を満たしているか否か判断してもよい。
【0024】
入力情報に基づきプレーヤキャラクタの位置座表(X、Y、Z)を求め、求めた位置座標が地形情報(マップ)に基づき地表面である(空中でない)か否かによって接地の有無を判断してもよい。また入力情報に基づきプレーヤがジャンプ状態等の所定の状態(接地していない状態)である否か判断して接地の有無を判断してもよい。
【0025】
(7)このプログラム、情報記憶媒体、画像生成装置は、
前記特別状態発動部は、
特別状態発動中に、キャラクタの視界を遮るオブジェクトを半透明で描画するための描画制御情報を生成し、
前記画像生成部は、
前記描画制御情報に基づきプレーヤキャラクタの視界を遮るオブジェクトが半透明表示された仮想空間の画像を生成してもよい。
【0026】
(8)このプログラム、情報記憶媒体、画像生成装置は、
前記特別状態発動部は、
所定のオブジェクトの存在を示す告知画像が、仮想空間の画像の当該オブジェクトに対応する位置に配置された画像を生成するための画像生成制御情報を生成し、
前記画像生成部は、
前記画像生成制御情報に基づき、仮想空間の画像と告知画像を合成し、告知画像を含む仮想空間の画像を生成してもよい。
【0027】
仮想空間の画像の当該オブジェクトに対応する位置とは、当該オブジェクトのスクリーン平面上の投影位置に対応して決定された位置でもよい。
【0028】
(9)このプログラム、情報記憶媒体、画像生成装置は、
前記特別状態発動部は、
仮想空間内の複数の異なる特別ポイントに対してプレーヤキャラクタが特別状態発動条件を満たしている場合には、プレーヤキャラクタと複数の特別ポイントとの距離に基づきプレーヤキャラクタを移動させる特別ポイントを決定してもよい。
【0029】
例えばプレーヤキャラクタの位置判定を、特別ポイントに対応して設定されたコリジョン(ヒットエリア)とのヒットチェックによって行う場合、複数の特別ポイントに対応して設定されたコリジョン(ヒットエリア)に重複部分が存在し、この重複部分とプレーヤキャラクタの位置がヒットすることがある。この様な場合に、仮想空間内の複数の異なる特別ポイントに対してプレーヤキャラクタが特別状態発動条件を満たしていることになる。
【0030】
(10)このプログラム、情報記憶媒体、画像生成装置は、
前記特別状態発動部は、
プレーヤキャラクタの位置が所定時間継続して前記位置条件を満足しているか、及びプレーヤキャラクタの向きが所定時間継続して前記向き条件を満たしているか、及びプレーヤキャラクタの移動方向が所定時間継続して前記移動方向条件を満たしているかの少なくとも1つの判定結果に基づき、プレーヤキャラクタが特別状態発動条件を満たしているか否か判断してもよい。
【0031】
例えばプレーヤキャラクタの位置判定を、特別ポイントに対応して設定されたヒットエリアとのヒットチェックによって行う場合、ヒット領域に対するヒットの継続時間に基づきプレーヤキャラクタが特別状態発動条件を満たしているか否か判断してもよい。プレーヤキャラクタが特別ポイントに対応して設定されたヒット領域に所定時間の間滞留している場合に特別状態発動条件を満たしていると判断してもよい。
【0032】
(11)このプログラム、情報記憶媒体、画像生成装置は、
前記特別状態発動部は、
入力情報に基づきプレーヤキャラクタの位置及び向きの少なくとも1つが変化して、プレーヤキャラクタの位置及び向きの少なくとも1つが特別状態解除条件を満たした場合にはプレーヤキャラクタを特別状態を解除する特別状態解除制御を行ってもよい。
【0033】
プレーヤキャラクタの位置や向きの代わりに仮想カメラの位置や向きを制御する構成である場合や、プレーヤキャラクタの位置や向きの代わりと仮想カメラの位置や向きが連動する構成である場合には、仮想カメラの位置及び向きの少なくとも1つが特別状態解除条件を満たした場合には、プレーヤキャラクタを特別状態から通常状態に移行させてもよい。
【0034】
(12)このプログラム、情報記憶媒体、画像生成装置は、
前記特別状態発動部は、
特別状態が発動されてからの時間及びプレーヤキャラクタの所定のパラメータの少なくとも1つが特別状態解除条件を満たすか否か判断し、満たしていると判断した場合には、プレーヤキャラクタを特別状態を解除する特別状態解除制御をおこなってもよい。
【0035】
(13)このプログラム、情報記憶媒体、画像生成装置は、
前記仮想カメラ制御部は、
特別状態発動中にプレーヤの向きを操作する操作入力が行われた場合には、特別状態発動中でない状態に比べ、プレーヤキャラクタに連動する仮想カメラの回転速度を遅くする制御を行ってもよい。
【0036】
(14)このプログラムは、
ネットワークで接続された他のゲーム装置又はサーバと接続されたゲーム装置で実行されるプログラムであって、
前記他のゲーム装置又は前記サーバとゲームデータのやりとりを行うゲームデータ通信処理部としてさらにコンピュータを機能させ、
前記ゲームデータ通信処理部は、
他のゲーム装置のプレーヤキャラクタの特別状態発動に関する情報を含むゲームデータを受信し、自己のゲーム装置のプレーヤキャラクタの特別状態発動に関する情報を含むゲームデータを送信し、
前記特別状態発動部は、
自己のゲーム装置のプレーヤキャラクタが所与の特別ポイントに対応する特別状態発動条件を満たした時点で、自己のゲーム装置のプレーヤキャラクタを所与の特別ポイントに移動させ、
自己のゲーム装置のプレーヤキャラクタが特別ポイントに移動した後に、他のゲーム装置のプレーヤキャラクタのゲームデータ特別状態発動に関する情報と、自己のゲーム装置のプレーヤキャラクタのゲームデータ特別状態発動に関する情報とが排他的な関係にあり、自己のプレーヤキャラクタの特別状態発動時期が他機のプレーヤキャラクタよりも後であると判断した場合には、特別ポイントにいる自己のプレーヤキャラクタを、特別ポイント以外の場所に移動させる排他制御を行うプログラムに関する。
【0037】
またコンピュータ読み取り可能な情報記憶媒体であって、上記各部として、コンピュータを機能させるプログラムを記憶した情報記憶媒体、上記各部を含む画像生成装置に関係する。
【0038】
特別状態発動に関する情報とは、例えば発動時刻や移動した特別ポイントに関する情報でもよい。
【0039】
例えば1つの特別ポイントに1体のプレーヤキャラクタしか移動できない設定になっている場合には、同じ特別ポイントに対して複数のゲーム装置で特別状態発動条件を満たしたことを示すゲームデータ同時期に存在する場合には排他的な関係になる。
【0040】
排他的な関係にあるか否かの判断は、各ゲーム装置で行ってもよいし、ホスト機又はサーバで行い、各ゲーム機は、ホスト機又はサーバから判断結果をうけとってもよい。また排他制御処理自体もホスト機又はサーバで行い、各ゲーム機は処理結果にしたがった出力を行う場合でもよい。
【0041】
(15)このプログラム、情報記憶媒体、画像生成装置は、
前記特別状態発動部は、
他のゲーム装置のプレーヤキャラクタと自己のゲーム装置のプレーヤキャラクタが同じ特別ポイントに対する特別状態発動条件を満たした場合又は同じグループに属する特別ポイントに対する特別状態発動条件を満たした場合、又は排他関係の設定されている特別ポイントに対する特別状態発動条件を満たした場合に排他的な関係にあるとして、前記排他制御を行ってもよい。
【0042】
(16)このプログラム、情報記憶媒体、画像生成装置は、
前記特別状態発動部は、
他のゲーム装置のプレーヤキャラクタと自己のゲーム装置のプレーヤキャラクタが排他的な関係にあり自己のプレーヤキャラクタの特別状態移行時期が他機のプレーヤキャラクタよりも後である場合には、自己のプレーヤのいる特別ポイント対して設定されている代替えの特別ポイントに、自己のプレーヤキャラクタを移動させ、通常状態から特別状態に移行させてもよい。
【図面の簡単な説明】
【0043】
【図1】本実施形態の画像生成装置の機能ブロック図。
【図2】特別状態発動条件及び特別状態制御情報について説明するための図。
【図3】特別ポイントに対応づけて記憶されている特別ポイント設定情報について説明するための図。
【図4】本実施の形態の攻撃パターン例を示す図。
【図5】特別攻撃パターンの動作制御について説明するための図。
【図6】仮想空間内に近接して複数の異なる特別ポイントが存在する例を示した図。
【図7】図7(A)(B)は特別状態のプレーヤキャラクタの動作制御及び仮想カメラの配置制御について説明するための図。
【図8】隠れ状態と攻撃状態の切り替え制御について説明するための図。
【図9】特別状態から通常状態に移行させる場合のプレーヤキャラクタの移動制御について説明するための図。
【図10】図10(A)(B)は、特別状態から通常状態に移行させる場合のプレーヤキャラクタの移動制御について説明するための図。
【図11】特別状態におけるカメラ旋回範囲の制限について説明するための図。
【図12】図12(A)(B)は、プレーヤキャラクタが攻撃により受けたダメージを軽減する(又は0にする)範囲について説明するための図。
【図13】図13(A)(B)はダメージを0にする攻撃の種類について説明するための図。
【図14】特別状態において視野範囲外の敵から攻撃を受ける場合について説明するための図。
【図15】図15(A)(B)(C)は、特別状態(特に隠れ状態)にあるプレーヤキャラクタと壁と敵キャラクタの位置関係を示した図。
【図16】プレーヤキャラクタや敵キャラクタが存在する仮想空間の一部を表した図。
【図17】図17(A)(B)は、隠れ状態及び攻撃状態にあるプレーヤキャラクタPCの様子を示す図。
【図18】攻撃パターン設定情報を示す図。
【図19】図19(A)(B)は特別状態(特に隠れ状態)における表示制御について説明するための図。
【図20】図20(A)(B)は、オンラインゲームシステムの構成について説明するための図。
【図21】複数のプレーヤのプレーヤキャラクタが仮想空間に存在している様子を示す図。
【図22】マルチプレーヤモードの場合のゲームデータの発生と受信タイミングを示すタイムチャート。
【図23】ゲーム装置間で送受信される通信データについて説明するための図。
【図24】仮想空間に複数の特別ポイントTP1〜TP7が設定されている様子を示す図。
【図25】図25(A)〜(D)は、特別状態と通常状態の攻撃開始位置について説明するための図。
【図26】図26は、本実施の形態の特別状態移行制御の処理の流れを示すフローチャート。
【発明を実施するための形態】
【0044】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【0045】
1.構成
図1に本実施形態の画像生成装置(コンピュータ、端末、ゲーム装置)の機能ブロック図の例を示す。なお本実施形態の画像生成装置は図1の構成要素(各部)の一部を省略した構成としてもよい。 入力部160は、プレーヤからの入力情報を入力するための機器であり、プレーヤの入力情報を処理部に出力する。本実施形態の入力部160は、プレーヤの入力情報(入力信号)を検出する検出部162を備える。入力部160は、例えば、レバー、ボタン、ステアリング、マイク、タッチパネル型ディスプレイなどがある。
【0046】
また、入力部160は、3軸の加速度を検出する加速度センサや、角速度を検出するジャイロセンサ、撮像部を備えた入力機器でもよい。例えば、入力機器は、プレーヤが把持して動かすものであってもよいし、プレーヤが身につけて動かすものであってもよい。また、入力機器には、プレーヤが把持する刀型コントローラや銃型コントローラ、あるいはプレーヤが身につける(プレーヤが手に装着する)グローブ型コントローラなど実際の道具を模して作られたコントローラも含まれる。また入力機器には、入力機器と一体化されている画像生成装置、携帯型画像生成装置、携帯電話なども含まれる。
【0047】
検出部162は、入力部160からの入力情報を検出する処理を行う。例えば、検出部162は、入力部160の引き金(トリガ)が引かれることによって発生する入力信号を、入力情報(攻撃入力情報)として検出する。例えば、検出部162は、入力部160から照準(ガンサイト)の位置を指示する入力情報(指示入力情報)を検出する。
【0048】
例えば、入力部160が、液晶ディスプレイと、プレーヤの接触位置を検出するためのタッチパネルとが積層されたタッチパネル型ディスプレイで有る場合には、タッチペンなどの指示入力機器や指先の接触位置情報を入力情報として検出する。
【0049】
また、入力部160が撮像部を備える入力機器である場合には、撮像画像におおける指示位置情報を入力情報として検出する。より具体的に説明すると、撮像部は、赤外線フィルタ、レンズ、撮像素子(イメージセンサ)、画像処理回路を含む。ここで、赤外線フィルタは、入力機器の前方に配置され、表示部190に関連付けられて配置されている光源(2つの光源)から入射する光から赤外線のみを通過させる。また、レンズは、赤外線フィルタを透過した赤外線を集光して撮像素子へ出射する。また、撮像素子は、例えば、CMOSセンサやCCDのような固体撮像素子であり、レンズが集光した赤外線を撮像して撮像画像を生成する。そして、撮像素子で生成された撮像画像は、画像処理回路で処理される。例えば、撮像部を備える入力機器は、撮像素子から得られた撮像画像を処理して高輝度部分を検知し、撮像画像における光源の位置情報(指示位置情報)を入力情報として検出する。
【0050】
記憶部170は、処理部100や通信部196などのワーク領域となるもので、その機能はRAM、VRAMなどにより実現できる。
【0051】
情報記憶媒体180(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(CD、DVD)、光磁気ディスク(MO)、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ(ROM)などにより実現できる。処理部100は、情報記憶媒体180に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。情報記憶媒体180には、本実施形態の各部としてコンピュータを機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)を記憶することができる。
【0052】
表示部190は、本実施形態により生成された画像を出力するものであり、その機能は、CRT、LCD、タッチパネル型ディスプレイ、或いはHMD(ヘッドマウントディスプレイ)などにより実現できる。音出力部192は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
【0053】
通信部196は外部(例えば他の画像生成装置)との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ASICなどのハードウェアや、プログラムなどにより実現できる。
【0054】
なお、サーバが有する情報記憶媒体や記憶部に記憶されている本実施形態の各部としてコンピュータを機能させるためのプログラムやデータを、ネットワークを介して受信し、受信したプログラムやデータを情報記憶媒体180や記憶部170に記憶してもよい。このようにプログラムやデータを受信して画像生成装置を機能させる場合も本発明の範囲内に含む。
【0055】
処理部100(プロセッサ)は、入力部160からの入力情報やプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの処理を行う。
【0056】
この処理部100は記憶部170内の主記憶部170をワーク領域として各種処理を行う。処理部100の機能は各種プロセッサ(CPU、GPU、DSP等)、ASIC(ゲートアレイ等)などのハードウェアや、プログラムにより実現できる。
【0057】
処理部100は、オブジェクト空間設定部110、仮想カメラ制御部111、特別状態発動部112、演算処理部113(攻撃演算部113−1、ダメージ演算部113−2を含む)、移動・動作処理部114、ゲーム演算部115、画像生成部(描画部)120、音処理部130を含む。なおこれらの一部を省略する構成としてもよい。
【0058】
オブジェクト空間設定部110は、キャラクタ(敵オブジェクト)の他に、建物、球場、車、樹木、柱、壁、マップ(地形)などの表示物を、オブジェクト空間に配置設定する処理を行う。
【0059】
ここでオブジェクト空間とは、仮想的なゲーム空間であり、2次元空間、3次元空間の両方を含む。2次元空間とは、例えば2次元座標(X,Y)においてオブジェクトが配置される空間であり、3次元空間とは、例えば3次元座標(X,Y,Z)においてオブジェクトが配置される空間である。
【0060】
例えば、オブジェクト空間設定部110は、オブジェクト空間を3次元空間とした場合には、ワールド座標系にオブジェクト(ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブで構成されるオブジェクト)を配置する。また、例えば、ワールド座標系でのオブジェクトの位置や回転角度(向き、方向と同義)を決定し、その位置(X、Y、Z)にその回転角度(X、Y、Z軸回りでの回転角度)でオブジェクトを配置する。
【0061】
特別状態発動部112は、プレーヤキャラクタの移動情報に基づき特別状態発動条件を満たしているか否か判断し、満たしている場合にはプレーヤキャラクタを仮想空間内に設定された特別ポイントに移動させ、特別状態を発動させる。
【0062】
仮想カメラ制御部111は、入力情報及びプレーヤキャラクタの移動情報の少なくとも1つに基づき仮想カメラの配置制御を行う。
【0063】
移動情報演算部(移動・動作処理部114)は、入力情報に基づき、プレーヤキャラクタの位置を演算し、特別状態発動部112は、プレーヤキャラクタの位置と仮想空間内の特別ポイントに対応づけて設定されている位置判定条件とに基づきプレーヤキャラクタの位置判定を行い、判定結果に基づきプレーヤキャラクタが特別状態発動条件を満たしているか否か判断する。
【0064】
移動情報演算部(移動・動作処理部114)は、入力情報に基づき、プレーヤキャラクタの向きを演算し、特別状態発動部112は、プレーヤキャラクタの向きと、仮想空間内の特別ポイントに対応して設定された向き条件に基づきプレーヤキャラクタの向き判定を行い、判定結果に基づきプレーヤキャラクタが特別状態発動条件を満たしているか否か判断してもよい。
【0065】
移動情報演算部(移動・動作処理部114)は、入力情報に基づき、プレーヤキャラクタの移動方向を演算し、特別状態発動部112は、プレーヤキャラクタの移動方向と、仮想空間内の特別ポイントに対応して設定された移動方向条件に基づきプレーヤキャラクタの移動方向判定を行い、判定結果に基づきプレーヤキャラクタが特別状態発動条件を満たしているか否か判断してもよい。
【0066】
特別状態発動部112は、特別状態発動中は、ゲーム演算に用いられるパラメータを特別状態発動中でない場合に比べてプレーヤキャラクタに有利な値に設定してもよいし、不利な値に設定してもよい。
【0067】
特別状態発動部112は、特別状態発動中は、特別ポイントにいるプレーヤキャラクタの状態を、入力情報に基づき隠れ状態と攻撃状態に切り替え、各状態に応じて異なる制御を行ってもよい。
【0068】
攻撃演算部113−1は、攻撃開始位置を決定し、攻撃開始位置から攻撃用飛来物の軌道を演算し、通常状態では、プレーヤキャラクタの位置に基づき攻撃開始位置を決定し、特別状態の攻撃可能状態では、仮想カメラの位置に基づき攻撃開始位置を決定してもよい。
【0069】
またダメージ演算部113−2は、攻撃情報に基づきプレーヤキャラクタのダメージを演算し、特別状態発動中もプレーヤキャラクタのヒットチェックは仮想カメラ位置ではなくプレーヤキャラクタの位置で行うようにしてもよい。
【0070】
移動情報演算部(移動・動作処理部114)は、入力情報及び姿勢情報の少なくとも一方に基づき、プレーヤキャラクタの接地の有無又は姿勢を演算し、特別状態発動部112は、プレーヤキャラクタの接地の有無又は姿勢に基づき、特別状態発動条件を満たしているか否か判断してもよい。
【0071】
特別状態発動部112は、特別状態発動中に、キャラクタの視界を遮るオブジェクトを半透明で描画するための描画制御情報を生成し、画像生成部120は、前記描画制御情報に基づきプレーヤキャラクタの視界を遮るオブジェクトが半透明表示された仮想空間の画像を生成してもよい。
【0072】
特別状態発動部112は、所定のオブジェクトの存在を示す告知画像が、仮想空間の画像の当該オブジェクトに対応する位置に配置された画像を生成するための画像生成制御情報を生成し、画像生成部120は、前記画像生成制御情報に基づき、仮想空間の画像と告知画像を合成し、告知画像を含む仮想空間の画像を生成してもよい。
【0073】
特別状態発動部112は、仮想空間内の複数の異なる特別ポイントに対してプレーヤキャラクタが特別状態発動条件を満たしている場合には、プレーヤキャラクタと複数の特別ポイントとの距離に基づきプレーヤキャラクタを移動させる特別ポイントを決定してもよい。
【0074】
特別状態発動部112は、プレーヤキャラクタの位置が所定時間継続して前記位置条件を満足しているか、及びプレーヤキャラクタの向きが所定時間継続して前記向き条件を満たしているか、及びプレーヤキャラクタの移動方向が所定時間継続して前記移動方向条件を満たしているかの少なくとも1つの判定結果に基づき、プレーヤキャラクタが特別状態発動条件を満たしているか否か判断してもよい。
【0075】
特別状態発動部112は、入力情報に基づきプレーヤキャラクタの位置及び向きの少なくとも1つが変化して、プレーヤキャラクタの位置及び向きの少なくとも1つが特別状態解除条件を満たした場合にはプレーヤキャラクタを特別状態を解除する特別状態解除制御を行ってもよい。
【0076】
特別状態発動部112は、特別状態が発動されてからの時間及びプレーヤキャラクタの所定のパラメータの少なくとも1つが特別状態解除条件を満たすか否か判断し、満たしていると判断した場合には、プレーヤキャラクタを特別状態を解除する特別状態解除制御を行ってもよい。
【0077】
仮想カメラ制御部111は、特別状態発動中にプレーヤの向きを操作する操作入力が行われた場合には、特別状態発動中でない状態に比べ、プレーヤキャラクタに連動する仮想カメラの回転速度を遅くする制御を行ってもよい。
【0078】
通信部196は、他のゲーム装置又は前記サーバとゲームデータのやりとりを行うゲームデータ通信処理部として機能し、他のゲーム装置のプレーヤキャラクタの特別状態発動に関する情報を含むゲームデータを受信し、自己のゲーム装置のプレーヤキャラクタの特別状態発動に関する情報を含むゲームデータを送信してもよい。
【0079】
特別状態発動部112は、自己のゲーム装置のプレーヤキャラクタが所与の特別ポイントに対応する特別状態発動条件を満たした時点で、自己のゲーム装置のプレーヤキャラクタを所与の特別ポイントに移動させ、自己のゲーム装置のプレーヤキャラクタが特別ポイントに移動した後に、他のゲーム装置のプレーヤキャラクタのゲームデータ特別状態発動に関する情報と、自己のゲーム装置のプレーヤキャラクタのゲームデータ特別状態発動に関する情報とが排他的な関係にあり、自己のプレーヤキャラクタの特別状態発動時期が他機のプレーヤキャラクタよりも後であると判断した場合には、特別ポイントにいる自己のプレーヤキャラクタを、特別ポイント以外の場所に移動させてもよい。
【0080】
特別状態発動部112は、他のゲーム装置のプレーヤキャラクタと自己のゲーム装置のプレーヤキャラクタが同じ特別ポイントに対する特別状態発動条件を満たした場合又は同じグループに属する特別ポイントに対する特別状態発動条件を満たした場合、又は排他関係の設定されている特別ポイントに対する特別状態発動条件を満たした場合に排他的な関係にあるとして、前記排他制御を行ってもよい。
【0081】
特別状態発動部112は、他のゲーム装置のプレーヤキャラクタと自己のゲーム装置のプレーヤキャラクタが排他的な関係にあり自己のプレーヤキャラクタの特別状態移行時期が他機のプレーヤキャラクタよりも後である場合には、自己のプレーヤのいる特別ポイント対して設定されている代替えの特別ポイントに、自己のプレーヤキャラクタを移動させ、通常状態から特別状態に移行させてもよい。
【0082】
移動・動作処理部114は、オブジェクト空間において、オブジェクトを移動・動作させる処理を行う。すなわち入力部160から入力された入力情報や、プログラム(移動・動作アルゴリズム)や、各種データ(モーションデータ)などに基づいて、オブジェクトをオブジェクト空間内で移動させたり、オブジェクトを動作(モーション、アニメーション)させたりする処理を行う。具体的には、オブジェクトの移動情報(位置、回転角度、移動速度、加速度、移動量、移動方向などの移動パラメータ)や動作情報(オブジェクトを構成する各パーツの位置、或いは回転角度)を、1フレーム(例えば、1/60秒)毎に順次求める処理を行う。なおフレームは、オブジェクトの移動・動作処理や画像生成処理を行う時間の単位である。
【0083】
移動・動作処理部114は、入力情報に基づき仮想空間内におけるプレーヤキャラクタの移動情報を演算する移動情報演算部として機能する。
【0084】
ゲーム演算部115は、種々のゲーム処理を行う。例えば、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、ゲーム終了条件が満たされた場合にゲームを終了する処理、最終ステージをクリアした場合にはエンディングを進行させる処理などがある。
【0085】
また、ゲーム演算部115は、プレーヤキャラクタの所与のパラメータ(体力値)が所定値(0)に達したか否かを判断する処理を行い、プレーヤキャラクタの所与のパラメータ(体力値)が所定値(0)に達した場合に、ゲーム終了と判定する処理を行う。
【0086】
画像生成部120は、処理部100で行われる種々の処理の結果に基づいて描画処理を行い、これにより画像を生成し、表示部190に出力する。画像生成部120が生成する画像は、いわゆる2次元画像であってもよいし、いわゆる3次元画像であってもよい。
【0087】
2次元画像を生成する場合には、例えば、オブジェクト(スプライト)毎に優先度を設定し、設定された優先度が低いオブジェクトから順に描画する。オブジェクト同士が重なる場合には、優先度が低いオブジェクトの上に、優先度の高いオブジェクトを描画する。
【0088】
いわゆる3次元ゲーム画像を生成する場合には、まずオブジェクト(モデル)の各頂
等を含むオブジェクトデータ(モデルデータ)が入力され、入力されたオブジェクトデータに含まれる頂点データに基づいて、頂点処理(頂点シェーダによるシェーディング)が行われる。なお頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理(テッセレーション、曲面分割、ポリゴン分割)を行うようにしてもよい。
【0089】
頂点処理では、頂点処理プログラム(頂点シェーダプログラム、第1のシェーダプログラム)に従って、頂点の移動処理や、座標変換、例えばワールド座標変換、視野変換(カメラ座標変換)、クリッピング処理、透視変換(投影変換)、ビューポート変換等のジオメトリ処理が行われ、その処理結果に基づいて、オブジェクトを構成する頂点群について与えられた頂点データを変更(更新、調整)する。
【0090】
そして、頂点処理後の頂点データに基づいてラスタライズ(走査変換)が行われ、ポリゴン(プリミティブ)の面とピクセルとが対応づけられる。そしてラスタライズに続いて、画像を構成するピクセル(表示画面を構成するフラグメント)を描画するピクセル処理(ピクセルシェーダによるシェーディング、フラグメント処理)が行われる。ピクセル処理では、ピクセル処理プログラム(ピクセルシェーダプログラム、第2のシェーダプログラム)に従って、テクスチャの読出し(テクスチャマッピング)、色データの設定/変更、半透明合成、アンチエイリアス等の各種処理を行って、画像を構成するピクセルの最終的な描画色を決定し、透視変換されたオブジェクトの描画色を描画バッファ(ピクセル単位で画像情報を記憶できるバッファ。VRAM、レンダリングターゲット)に出力(描画)する。すなわち、ピクセル処理では、ピクセルデータ、ボクセルデータなどの画素データ(色(RGB)、α値、Z値、輝度等)をピクセル単位で設定あるいは変更するパーピクセル処理を行う。これにより、オブジェクト空間内において仮想カメラ(所与の視点)から見える画像が生成される。なお、仮想カメラ(視点)が複数存在する場合には、それぞれの仮想カメラから見える画像を生成することができる。
【0091】
また仮想カメラ制御部110は、特別状態発動中は、プレーヤキャラクタと仮想カメラの距離、プレーヤキャラクタと仮想カメラの位置関係、プレーヤキャラクタに対する仮想カメラの向き、仮想カメラの画角の少なくとも1つを特別状態発動中でないときと異なる設定にしてもよい。
【0092】
また仮想カメラ制御部110は、前記攻撃状態では、プレーヤキャラクタと仮想カメラの距離、プレーヤキャラクタと仮想カメラの位置関係、プレーヤキャラクタに対する仮想カメラの向き、仮想カメラの画角の少なくとも1つを隠れ状態のときと異なる設定にしてもよい。
【0093】
また仮想カメラ制御部110は、特別状態又は特別状態における攻撃状態においては、プレーヤキャラクタの属性、姿勢、動作制御に使用するモーションの種類、アイテムの種類の少なくとも1つに基づき、プレーヤキャラクタと仮想カメラの距離、プレーヤキャラクタと仮想カメラの位置関係、プレーヤキャラクタに対する仮想カメラの向き、仮想カメラの画角の少なくとも1つを変更してもよい。
【0094】
仮想カメラ制御部110は、オブジェクト空間内の所与(任意)の視点から見える画像を生成するための仮想カメラ(視点)の制御処理を行う。具体的には、3次元の画像を生成する場合には、ワールド座標系における仮想カメラの位置(X、Y、Z)又は回転角度(例えば、X、Y、Z軸の各軸の正方向からみて時計回りに回る場合における回転角度)を制御する処理を行う。要するに、視点位置、視線方向、画角を制御する処理を行う。また、仮想カメラ制御部110は、仮想カメラを、予め決められた回転角度で回転させてもよい。この場合には、仮想カメラの位置又は回転角度を特定するための仮想カメラデータに基づいて仮想カメラを制御する。なお、仮想カメラ(視点)が複数存在する場合には、それぞれの仮想カメラについて上記の制御処理が行われる。
【0095】
本実施形態では、プレーヤキャラクタの視点(一人称視点)に基づいて画像を生成するFPS(First Person Shooting)でもよいし、画面に主人公が登場して、これをユーザが操作するタイプのTPS(Third Person Shooting)でもよい。また、本実施形態では、仮想カメラの移動、向き、画角はプログラム又は入力部160の入力情報に基づいて仮想カメラの移動、向き、画角を制御される。
【0096】
例えば仮想カメラによりオブジェクト(例えば、プレーヤキャラクタ)を後方から撮影する場合には、オブジェクトの位置、向きの変化に仮想カメラが追従するように、仮想カメラの位置、仮想カメラの向きを制御する。この場合には、移動・動作処理部114で得られたオブジェクトの位置、向き又は速度などの情報に基づいて、仮想カメラを制御できる。或いは、仮想カメラを、予め決められた向きに設定したり、予め決められた移動経路で移動させる制御を行ってもよい。この場合には、仮想カメラの位置(移動経路)又は向きを特定するための仮想カメラデータに基づいて仮想カメラを制御する。なお、仮想カメラ(視点)が複数存在する場合には、それぞれの仮想カメラについて上記の制御処理が行われる。
【0097】
なお頂点処理やピクセル処理は、シェーディング言語によって記述されたシェーダプログラムによって、ポリゴン(プリミティブ)の描画処理をプログラム可能にするハードウェア、いわゆるプログラマブルシェーダ(頂点シェーダやピクセルシェーダ)により実現される。プログラマブルシェーダでは、頂点単位の処理やピクセル単位の処理がプログラム可能になることで描画処理内容の自由度が高く、従来のハードウェアによる固定的な描画処理に比べて表現力を大幅に向上させることができる。
【0098】
そして画像生成部120は、オブジェクトを描画する際に、ジオメトリ処理、テクスチャマッピング、隠面消去処理、αブレンディング等を行う。
【0099】
ジオメトリ処理では、オブジェクトに対して、座標変換、クリッピング処理、透視投影変換、或いは光源計算等の処理が行われる。そして、ジオメトリ処理後(透視投影変換後)のオブジェクトデータ(オブジェクトの頂点の位置座標、テクスチャ座標、色データ(輝度データ)、法線ベクトル、或いはα値等)は、記憶部170に保存される。
【0100】
テクスチャマッピングは、記憶部170に記憶されるテクスチャ(テクセル値)をオブジェクトにマッピングするための処理である。具体的には、オブジェクトの頂点に設定(付与)されるテクスチャ座標等を用いて記憶部170からテクスチャ(色(RGB)、α値などの表面プロパティ)を読み出す。そして、2次元の画像であるテクスチャをオブジェクトにマッピングする。この場合に、ピクセルとテクセルとを対応づける処理や、テクセルの補間としてバイリニア補間などを行う。
【0101】
隠面消去処理としては、描画ピクセルのZ値(奥行き情報)が格納されるZバッファ(奥行きバッファ)を用いたZバッファ法(奥行き比較法、Zテスト)による隠面消去処理を行うことができる。すなわちオブジェクトのプリミティブに対応する描画ピクセルを描画する際に、Zバッファに格納されるZ値を参照する。そして参照されたZバッファのZ値と、プリミティブの描画ピクセルでのZ値とを比較し、描画ピクセルでのZ値が、仮想カメラから見て手前側となるZ値(例えば小さなZ値)である場合には、その描画ピクセルの描画処理を行うとともにZバッファのZ値を新たなZ値に更新する。
【0102】
αブレンディング(α合成)は、α値(A値)に基づく半透明合成処理(通常αブレンディング、加算αブレンディング又は減算αブレンディング等)のことである。 なお、α値は、各ピクセル(テクセル、ドット)に関連づけて記憶できる情報であり、例えば色情報以外のプラスアルファの情報である。α値は、マスク情報、半透明度(透明度、不透明度と等価)、バンプ情報などとして使用できる。
【0103】
音処理部130は、処理部100で行われる種々の処理の結果に基づいて音処理を行い、BGM、効果音、又は音声などのゲーム音を生成し、音出力部192に出力する。
【0104】
なお、本実施形態の画像生成装置は、1人のプレーヤのみがプレイできるシングルプレーヤモード用の装置にしてもよいし、複数のプレーヤがプレイできるマルチプレーヤモードを備える装置にしてもよい。
【0105】
例えば、図22に示すように、マルチプレーヤモードの場合には、プレーヤそれぞれの入力部160−1、160−2を用意し、各入力部160−1、160−2が指示する照準位置に基づいて敵キャラクタ等のヒット処理を行う。また、本実施形態では、マルチプレーヤモードの場合には、複数のプレーヤに提供するデータ、表示出力用画像、演算処理用画像、ゲーム音を、1つの画像生成装置を用いて生成している。なお、画像生成装置が他の画像生成装置とネットワークを介して入力情報などのデータを送受信し、受信したデータと入力部160からの入力情報とに基づいて、画像生成処理を行うようにしてもよい。
【0106】
2.本実施の形態の手法
(1)特別ポイント
図16は、プレーヤキャラクタや敵キャラクタが存在する仮想空間の一部を表した図である。仮想空間290は都会の地形を模して設定されており、プレーヤキャラクタCPが通行可能な道路292が設定され道路292以外の部分には建物等の静止オブジェクト294(斜線部分)が配置されプレーヤキャラクタは通行できないように構成されている。プレーヤは、操作部に設けられた方向指示入力画可能なレバーやボタン等を操作することにより、仮想空間内に設けられた道路290上でプレーヤキャラクタPCを自由に移動させることができる。
【0107】
仮想空間290のマップ上には、あらかじめ指定された少なくとも1つの特別ポイントTP1、TP2、TP3、・・・が存在する。特別ポイントTP1、TP2、TP3、・・・は、仮想空間内でゲーム上有利な場所であり、例えば壁や建物や木や車や岩等の防御壁オブジェクト266−1、296−2、296−3の陰に当たる位置に設定され、敵からの攻撃を受けにくい場所となっていてもよい。
【0108】
本実施の形態では、プレーヤキャラクタPCの移動情報に基づき、プレーヤキャラクタPCが特別状態発動条件を満たしているか否か判断し、満たしている場合にはプレーヤキャラクタPCを通常状態から特別状態に移行させ、仮想空間内に設定された特別ポイントに移動させる。
【0109】
例えば仮想空間290のマップ上にあらかじめ指定された特別ポイント付近のエリア298−1、298−2、298−3にプレーヤキャラクタPCがいる場合に、プレーヤが特定の操作入力を行う(特別状態発動入力を行う)と、プレーヤキャラクタPCは特別状態に移行するようにしてもよい。特別状態になると、プレーヤキャラクタPCは特別ポイントTP1、TP2、TP3、・・・に自動的に(移動用の入力によらずに)移動し、簡単な操作で、「物陰等から出て攻撃」⇔「物陰等に隠れる」が行え、防御力や攻撃力が高まった状態になる。
【0110】
(2)特別ポイント設定情報
本実施の形態では、特別ポイントに対応づけて特別状態発動条件及び特別状態における制御情報を特別ポイント設定情報として記憶している。図2は、特別状態発動条件及び特別状態制御情報について説明するための図であり、図3は、特別ポイントに対応づけて記憶されている特別ポイント設定情報について説明するための図である。
【0111】
特別ポイント設定情報310として、仮想空間に設定された特別ポイントを特定するための情報である特別ポイント識別ID311に対応づけて、特別状態発動条件(コリジョン情報312、向き条件313、優先順位317)や特別状態制御情報(特別状態位置情報314、特別状態向き情報315、攻撃パターン情報316)等のパラメータが設定されている。例えば特別ポイントに関連づけて上記パラメータを記憶するパラメータテーブルを用意しておいてもよい。
【0112】
コリジョン情報312は、特別状態発動条件を満たしているか否かの判断を行うために特別ポイント214に対応づけられたプレーヤキャラクタの位置判定用のコリジョン(2次元の判定領域でもよいし、3次元の判定ボックスでもよい)210を特定するための情報である。例えば2次元の判定領域や3次元の判定ボックスの頂点やポリゴン情報でもよいし、これらが記憶されている領域へのアクセス情報(アドレスやコリジョン識別情報でもよい)でもよい。このコリジョン210にプレーヤキャラクタが接触していないと特別状態に移行することはできない。例えば図16の特別ポイント付近のエリア298−1、298−2、298−3の2をコリジョンとして設定してもよい。
【0113】
向き条件313は、特別状態発動条件を満たしているか否かの判断を行うために特別ポイントTPに対応づけられたプレーヤキャラクタの向きを判定するための条件(向きの許容範囲220)を示す情報である。例えばプレーヤキャラクタのXZ平面上の向きの許容範囲220を設定してもよい。許容範囲220の両端のvaベクトル、vbベクトルを定義してもよい。特別状態発動入力が行なわれたときにプレーヤキャラクタの向き(XZ方向の向き)がこの許容範囲220内にない場合には特別状態発動条件を満たさず特別状態に移行することはできない。また本実施の形態では特別状態においてもプレーヤの入力によってプレーヤキャラクタの向き(仮想カメラの向き)を変更できるが、プレーヤキャラクタの向き(仮想カメラの向き)がこの許容範囲を超えたら特別状態を解除するようにしてもよい。プレーヤキャラクタの向きと仮想カメラの向きどちらか片方を入力して他方は連動する構成でもよいし、個別に入力により制御可能な構成でもよい。
【0114】
特別ポイント位置情報314は、特別状態に移行したプレーヤキャラクタを移動させる位置特別ポイントの位置座標である。
【0115】
特別状態向き情報315は、特別状態に移動してすぐの状態のプレーヤキャラクタ(仮想カメラ)の向き(上下方向もある3次元のベクトルの向きや方向)である。プレーヤキャラクタの向きを3軸方向の回転で表したものでもよい。
【0116】
例えば図16の特別ポイントTP3は、防御壁オブジェクト296−3の陰に設定されており、プレーヤキャラクタCPが防御壁オブジェクト296−3の陰に隠れて、防御壁オブジェクト296−3の向こう側にいる敵キャラクタECを攻撃する戦闘が予定されている。特別ポイントTP3では、敵のいることが予測される方向(壁の方向)262を特別状態におけるプレーヤキャラクタPCの特別状態向き情報350として設定してもよい。
【0117】
攻撃パターン識別情報316は、特別ポイントにおけるプレーヤキャラクタの攻撃パターンを特定する情報である。本実施の形態では特別ポイントによって異なる攻撃パターンが用意されている。図4は、本実施の形態の攻撃パターン例を示す図である。本実施の形態ではバライティに富んだ攻撃パターンを楽しめるように、複数の異なる攻撃パターンap1〜ap5を用意し、特別ポイントに対応づけられている攻撃パターンを使用している。
【0118】
特別ポイントにいるプレーヤキャラクタは、入力情報に基づき、隠れ状態(物陰に隠れているので攻撃できない状態)と攻撃状態(物陰から体の一部をだして敵に攻撃を行う状態)に切り替えられる。例えば攻撃入力が行われている時は攻撃状態となり、攻撃入力がない時は隠れ状態にしてもよい。
【0119】
特別ポイントにいるプレーヤキャラクタは、プレーヤからの攻撃入力(ガンシューティングにおける弾の発射入力等)がなされてない間は隠れ状態で、攻撃入力が行われると、プレーヤキャラクタが体の一部を物陰から出して攻撃を行う攻撃状態に切り替わるようにしてもよい。この様にすることにより、物陰に隠れて敵を攻撃するという、ドラマのようなシューティングの醍醐味をあじわうことができる。
【0120】
図17(A)の420−1は、プレーヤキャラクタPCの身長よりも高い壁430の陰である特別ポイントTP1において隠れ状態にあるプレーヤキャラクタPCの様子を示し、図17(A)の420−2は特別ポイントTP1において攻撃状態にあるプレーヤキャラクタPCの様子を示している。
【0121】
当該特別ポイントTP1には攻撃パターンap1が対応づけられており、攻撃パターンap1に従って、隠れ状態420−1では、プレーヤキャラクタPCが立った状態で壁430の後ろに隠れている動作(「立ち隠れ」)を行わせ、攻撃状態420−2では、プレーヤキャラクタPCが立った状態で右半身を壁430から出して攻撃を行う動作(「立ち右攻撃」)を行わせる。すなわち特別ポイントTP1では、プレーヤキャラクタPCに対し、攻撃入力がない状態(隠れ状態)では立った状態で壁430の後ろに隠れている「立ち隠れ」モーションを実行し、弾の発射入力が行われると立った状態でプレーヤキャラクタの右半身を壁430から出して攻撃を行う「立ち右攻撃」のモーションを実行することにより実現することができる。
【0122】
図17(B)の440−1は、プレーヤキャラクタPCの身長よりも低い壁450の陰である特別ポイントTP3において隠れ状態にあるプレーヤキャラクタPCの様子を示し、図17(B)の440−2は、特別ポイントTP3において攻撃状態にあるプレーヤキャラクタPCの様子を示している。
【0123】
当該特別ポイントTP3には攻撃パターンap3が対応づけられており、攻撃パターンap3に従って、隠れ状態440−1では、プレーヤキャラクタPCがしゃがんだ状態で壁450の後ろに隠れている動作(「しゃがみ隠れ」)を行わせ、攻撃状態440−2では、プレーヤキャラクタPCが立った状態で右半身を壁430から出して攻撃を行う動作(「立ち攻撃」)を行わせる。すなわち特別ポイントTP3では、プレーヤキャラクタPCに対し、攻撃入力がない状態(隠れ状態)ではしゃがんだ状態で壁450の後ろに隠れている「しゃがみ隠れ」モーションを実行し、弾の発射入力が行われると立った状態でプレーヤキャラクタの上半身を壁450から出して攻撃を行う「立ち攻撃」のモーションを実行することにより実現することができる。
【0124】
優先順位317は、複数の特別ポイントのコリジョンが重複しており、プレーヤキャラクタが複数の特別ポイントに対して同時に特別状態発動条件を満たした場合の優先度設定に関する情報である。優先度を示す数値等を格納し、数値の大小に応じて、いずれかの特別ポイントを優先的に選択するようにしてもよい。
【0125】
(3)攻撃パターンの設定値
図18は攻撃パターン設定情報を示す図である。図18に示すように攻撃パターンの制御を行うための各種設定値であるモーションパターン322、仮想カメラの位置情報(隠れ状態)334、仮想カメラの位置情報(攻撃状態)336、仮想カメラの向き情報(隠れ状態)338、仮想カメラの向き情報(攻撃状態)340を攻撃パターン設定情報として、攻撃パターン識別情報316に対応づけて記憶させてもよい。
【0126】
モーションパターン322は、攻撃パターンと1対1に対応するもので、図4の攻撃パターンap1〜ap5に対応するモーションパターンのモーションデータを特定する情報である。特別ポイントにいるプレーヤキャラクタの動作は、特別ポイントの座標を基準としてモーションパターンが示すモーションデータを再生することで実現することができる。特別状態ではプレーヤキャラクタのワールド座標系における位置は特別ポイントの位置で固定され、モーションによってプレーヤキャラクタのローカル座標系における位置が変化することで仮想空間内の移動が行われる。
【0127】
攻撃パターンap1は「立ち隠れ」(隠れ状態)と「立ち右攻撃」(攻撃状態)の動作を切り替えて行う攻撃パターンであり、攻撃パターンap1の動作を実現するために「立ち隠れ」動作を実現するための「立ち隠れ」モーションと「立ち右攻撃」動作を実現するための「立ち右攻撃」のモーションが用意されている。他の攻撃パターンap2〜ap5についても同様に、それぞれの隠れ状態の動作を実現するためのモーションとそれぞれの攻撃状態の動作を実現するためのモーションが用意されている。
【0128】
図5は特別攻撃パターンの動作制御について説明するための図である。
【0129】
特別ポイントにおけるプレーヤキャラクタPCの状態は、攻撃入力によって隠れ状態460と攻撃状態462に切り替えられる。それぞれの状態におけるプレーヤキャラクタPCの動作は、当該特別ポイントに対応して設定されている攻撃パターン設定情報のモーションパターンに対応するモーションデータによって実現される。
【0130】
特別状態においてプレーヤキャラクタCPをモーションさせる場合は、特別ポイントTPでプレーヤキャラクタCPのみモーションする形になる。
【0131】
図5に示すように隠れ状態460の仮想カメラ490の位置KP−hは、敵を見えやすくするために、特別状態のプレーヤキャラクタの位置(特別ポイント)TPとは別に持つ。なお通常状態では仮想カメラ490の位置KP−hはプレーヤキャラクタの位置と同じでもよいし、一定間隔話して追従させてもよい。
【0132】
特別状態の攻撃状態と隠れ状態では、プレーヤキャラクタと仮想カメラの距離、プレーヤキャラクタと仮想カメラの位置関係、プレーヤキャラクタに対する仮想カメラの向き、仮想カメラの画角の少なくとも1つが異なるので、隠れ状態のカメラ位置情報334と、攻撃状態のカメラ位置情報336を持たせてもよい。
【0133】
隠れ状態460の仮想カメラ480の位置KP−hは、隠れ状態460の仮想カメラ基準位置となるものであり、プレーヤキャラクタの位置(特別ポイント)TPからの差分であたえてもよい。例えばプレーヤキャラクタCPの位置(特別ポイント)を原点とするローカル座標系における座標値であたえてもよい。
【0134】
攻撃状態462の仮想カメラ480の位置KP−aは、攻撃状態462の仮想カメラ基準位置となるものであり、プレーヤキャラクタの位置(特別ポイント)からの差分であたえてもよい。例えばプレーヤキャラクタCPの位置(特別ポイント)TPを原点とするローカル座標系における座標値であたえてもよい。
【0135】
仮想カメラの速度情報(隠れ状態)338は、隠れ状態から攻撃状態へ切り替え時の仮想カメラ変化時の速度のパターンである。
【0136】
仮想カメラの速度情報(攻撃状態)340は、攻撃状態から隠れ状態への切り替え時の仮想カメラ変化時の速度のパターンである。
【0137】
(4)特別状態移行制御
本実施の形態ではプレーヤキャラクタの特別状態発動条件として、プレーヤキャラクタの位置がいずれかの特別ポイントのコリジョンに接触していること、プレーヤの向きがコリジョンが接触している特別ポイントに設定されている向き条件を満たしていること、プレーヤが接地していることを要求している。接地の有無はプレーヤキャラクタの位置や姿勢に基づき判断してもよい。例えばプレーヤキャラクタの位置座標(xp、yp、zp)と同じXZ値を有するマップのY座標値ymとを比較してyp>ymであれば接地していないと判断してもよい。またプレーヤキャラクタの姿勢データの判定によって、ジャンプ状態やしゃがみ状態や歩き状態や静止状態等を判断し、ジャンプ状態でない場合には接地していると判断してもよい。
【0138】
なおプレーヤキャラクタの移動方向を用いて、仮想空間内の特別ポイントに対応して設定された移動方向条件を満たしていることを特別状態発動条件にしてもよい。この場合には、特別方向設定条件として、特別ポイントに関連づけて、方向条件を設定しておいてもよい。
【0139】
図6は仮想空間内に近接して複数の異なる特別ポイントが存在する例を示した図である。特別ポイントTP−a、TP−bにはそれぞれコリジョンc−a、c−bと、向きの許容範囲(向き条件)d−a、d−bが設定されている。同図に示すようにコリジョンc−a、c−bは一部重複した領域250を有している。この様な場合にプレーヤキャラクタPCの位置260が、前記の重複した領域にあり、 プレーヤキャラクタPCの向き252が、特別ポイントTP−a、TP−bの向きの許容範囲(向き条件)d−a、d−bに含まれる場合には、プレーヤキャラクタPCは2つの特別ポイントTP−a、TP−bに対して特別状態発動条件を満たした状態となる。
【0140】
このような場合には、プレーヤキャラクタPCの位置250と特別ポイントTP−a、TP−bとの距離l−a、l−bに基づき移動させる特別ポイントを決定してもよい。例えばl−a>l−bであるので、プレーヤキャラクタPCの位置250からの距離が短い特別ポイントTB−bに移動させて特別状態に移行してもよい。
【0141】
また各特別ポイントには優先順位情報(図3の317参照)が対応づけられているので、対応づけられている優先順位が高いほうの特別ポイントに移動させてもよい。
【0142】
(5)特別状態における仮想カメラの制御
図7(A)(B)は特別状態のプレーヤキャラクタの動作制御及び仮想カメラの配置制御について説明するための図である。図7(A)は、通常状態(特別ポイントに移動する前)におけるプレーヤキャラクタPCの位置350と仮想カメラ480の位置関係を示しており、図7(B)は、特別ポイントTPにおいて隠れ状態(プレーヤキャラクタが攻撃を行っていない状態)にあるプレーヤキャラクタPCと仮想カメラ480の位置関係を示している。
【0143】
プレーヤキャラクタが特別状態発動条件を満たした場合には、仮想カメラ480をプログラムで特別ポイントTPに方向転換する。そして仮想カメラ480を特別状態カメラ位置(当該特別ポイントの攻撃パターンに対応して設定されている仮想カメラの位置情報(隠れ状態)(図17の334参照)に設定されている位置)KP−hに、所定の時間(特別ポイント移動時間として設定しておいてもよい)で移動させ、所定の向き(例えば図2で説明したプレーヤキャラクタの向き、図3の特別状態向き情報315として設定されている向きでもよい)に向ける。
【0144】
同様にプレーヤキャラクタPCも、プログラムで特別ポイントに方向転換する。そしてプレーヤキャラクタPCを特別ポイントTPに、所定の時間(特別ポイント移動時間として設定しておいてもよい)で移動させ、所定の向き(例えば図2で説明したプレーヤキャラクタの向き、図3の特別状態向き情報315として設定されている向きでもよい)に向ける。このときのプレーヤキャラクタのモーションは、そのときのモーションから隠れ状態になるモーション(当該特別ポイントの攻撃パターンの隠れ状態のモーションへのつなぎモーション)を再生する。
【0145】
図8は、隠れ状態と攻撃状態の切り替え制御について説明するための図である。
【0146】
プレーヤキャラクタPCが特別状態の隠れ状態460にあるときには、仮想カメラ480は隠れ状態における仮想カメラ位置KP−h(図18の334に基づき決定される仮想カメラ位置)に位置づけられる。特別状態の防御状態の時のプレーヤキャラクタに対する仮想カメラ480の相対位置は、通常状態のときとおなじでもよいし、異なってもよい。
【0147】
プレーヤキャラクタPCが特別状態の隠れ状態460にあるときに、「攻撃状態」への移行を指示する操作入力(例えばガンシューティングにおける発射入力でもよい)が行われると、プレーヤキャラクタPCが攻撃状態になるとともに、仮想カメラ480も攻撃状態における仮想カメラ位置KP−a(図18の336に基づき決定される仮想カメラ位置)に移動する。
【0148】
図8に示すように、攻撃状態においては、隠れ状態や通常状態に比べてプレーヤキャラクタと仮想カメラの距離、プレーヤキャラクタと仮想カメラの位置関係、プレーヤキャラクタに対する仮想カメラの向き等が異なっている。
【0149】
さらに攻撃可能状態においては、プレーヤキャラクタのアイテムの種類、属性、姿勢、動作制御に使用するモーションの種類の少なくとも1つに基づき、プレーヤキャラクタと仮想カメラの距離、プレーヤキャラクタと仮想カメラの位置関係、プレーヤキャラクタに対する仮想カメラの向き、仮想カメラの画角の少なくとも1つを変更するようにしてもよい。このようにすることにより、特別状態において、武器の種類、プレーヤの姿勢、属性(大きさ)、モーションに応じて最適な攻撃画像を提供することができる。
【0150】
隠れ状態から攻撃状態に切り替わっても、ワールド座標系におけるプレーヤキャラクタPCの位置座標は、特別ポイントに固定されている。攻撃状態に移行するモーションが再生されるのみであり、プレーヤキャラクタの実際の位置はモーション移動量の範囲で動くのみである。
【0151】
このように隠れ状態と攻撃状態の切り替えが行われるときに、プレーヤキャラクタPCはモーションによって動かされ(モーションで移動を伴う動きが規定されていればその分移動する)、仮想カメラ480はプレーヤキャラクタPCのモーションとは別個に動かされる。隠れ状態と攻撃状態の切り替えが行われるときに、仮想カメラの移動量とプレーヤキャラクタの移動量は異なるが、動き(移動)のスピードは同じにする。
【0152】
プレーヤキャラクタPCが特別状態の攻撃状態462にあるときに、隠れ入力(例えば隠れることを指示する入力でもよいし、ガンシューティングにおける発射入力が続けてなされない場合に行われる攻撃終了判定でもよい)が行われると、プレーヤキャラクタPCが隠れ状態になるとともに、仮想カメラ480やプレーヤキャラクタPCのモーションも、隠れ状態から攻撃状態への切り替え時と逆になる。切り替え中の状態は隠れ状態として扱う。
【0153】
なおプレーヤキャラクタPCの向きを特別状態向き情報(図3の315参照)で指定された向きにあわせるのは、特別状態発動動作のとき(特別ポイント移行時)のみで、特別状態における状態切り替えでは、向きあわせは行なわない。
【0154】
しかしプレーヤキャラクタPCをモーション再生で動かす場合、移動量の誤差で少しづつずれることが予想されるので、隠れ状態になった場合に、ワールド座標系におけるプレーヤキャラクタPCの位置座標を特別ポイントになるようにリセットしてもよい。
【0155】
図25(A)〜(D)は、特別状態と通常状態の攻撃開始位置について説明するための図である。
【0156】
一人称視点のゲームでは、仮想カメラ480の位置はプレーヤキャラクタの顔付近に設定される。本実施の形態でもプレーヤキャラクタが通常状態の時は、図25(A)に示すように、プレーヤキャラクタの顔付近の位置KP−uに仮想カメラ480が設定される。
【0157】
ところが特別状態(特に攻撃状態)の時は、仮想カメラ480は、プレーヤキャラクタの顔付近ではなく、プレーヤキャラクタからやや離れた位置(攻撃状態における仮想カメラ位置KP−a(図18の336に基づき決定される仮想カメラ位置))に設定される。特別状態でも攻撃状態にある時は、プレーヤキャラクタは敵を攻撃するためのガンシューティングを行うが、特別状態ではプレーヤキャラクタの前に壁430の視界を遮るオブジェクトが存在するため、通常状態と同じようにプレーヤキャラクタの顔付近に仮想カメラを配置したのでは、視界が遮られて敵が見えにくいためである。
【0158】
ここでプレーヤキャラクタが銃から弾を発射して敵キャラクタを攻撃する場合について考えると、一般には攻撃開始位置をプレーヤキャラクタの位置を基準に設定し弾等の攻撃用飛来物(例えば弾や弓や爆弾)の軌道を演算する。すなわち図25(C)に示すようにプレーヤキャラクタPCの位置に基づき設定された攻撃開始位置452(XZは同じで高さは適宜設定)からレイ450を飛ばして攻撃演算(ヒットチェック等)を行う。
【0159】
ところが、本実施の形態の特別状態の攻撃状態においてそれを行うと、図25(D)に示すように、レイ450が壁に遮られて弾が敵に届かない事態が生じる可能性がある。先に述べたように本実施の形態では特別状態の攻撃状態では仮想カメラ480はプレーヤキャラクタPCから離れた仮想カメラ配置位置KP−aに配置されているため、画面上では敵が見えて壁430には遮られていない状態となっている。しかしプレーヤが画面上の見え方の感覚に従って弾を発射したにもかかわらず、弾が壁430に遮られてしまうという、プレーヤの感覚を反映しない結果になり、違和感を与えてしまうことになる。
【0160】
そこで本実施の形態では、特別状態の攻撃状態では、図25(D)に示すように仮想カメラ480の位置KP−aに基づき設定された攻撃開始位置452’(XZは同じで高さは適宜設定)からレイ450’を飛ばして攻撃演算(ヒットチェック等)を行う。
【0161】
この様にすることにより、特別状態の攻撃可能状態において、仮想カメラの位置に基づき攻撃開始位置を決定することで、攻撃開始位置(銃口等)も仮想カメラと同様、射線が通る位置までずらすことができる。従って特別状態の攻撃可能状態のように仮想カメラがプレーヤキャラクタから離れた位置に設定される場合にも、発射した弾が自分が隠れている壁等に当たってしまい、敵に当たらない(画面で見える感覚床となる)という状態を発生させずにプレーヤに違和感を感じさせない攻撃を実現することができる。
【0162】
なお、攻撃情報に基づきプレーヤキャラクタのダメージを演算する場合には、(1人称視点の攻撃可能状態においても)、プレーヤキャラクタのヒットチェックはカメラ位置ではなくプレーヤキャラクタの位置で行う。攻撃状態においてはカメラ位置と、プレーヤキャラクタの位置が離れているが、そのような場合でもプレーヤキャラクタの位置でヒットチェックを行うことにより、プレーヤキャラクタを攻撃を受けにくい位置におくことができる。
【0163】
(6)特別状態のパラメータ制御
プレーヤキャラクタが特別ポイントにいる場合、ゲーム演算に用いられるパラメータを通常状態よりもプレーヤキャラクタに有利な値に設定してもよい。ゲーム演算に用いられるパラメータとは、プレーヤキャラクタに対応して設定されているパラメータ(攻撃、防御、ダメージ量、回復、ライフ、命中率等に関するパラメータ)でもよいし、敵キャラクタに対応して設定されているパラメータ(攻撃、防御、ダメージ量、回復、ライフ、命中率等に関するパラメータ)でもよい。
【0164】
例えばプレーヤキャラクタに対応して設定されているダメージ量パラメータが、プレーヤキャラクタがヒット時に受けるダメージに応じて設定されるものであるとすれば、通常状態ではヒットによりダメージ100が設定されるところ、特別状態ではダメージ0を設定すると、通常状態より有利な値に設定されたこととなる。
【0165】
また例えば敵キャラクタに対応して設定されている命中率パラメータが敵の攻撃の命中率を規定するものであれば、プレーヤキャラクタが特別ポイントにいる時に敵キャラクタの命中率パラメータを通常状態より命中率が低くなるように設定すると、プレーヤキャラクタにとって、通常状態より有利な値に設定されたことになる。
【0166】
この様にゲーム演算に用いられるパラメータがプレーヤキャラクタにとって通常状態よりもゲーム上有利な値に設定されている場合には、プレーヤキャラクタは、通常状態であればヒットする攻撃をうけてもヒットしなかったり、ヒットしてもダメージが与えられなかったり、通常状態よりも受けるダメージ量が軽減されたりする。
【0167】
図12(A)(B)は、プレーヤキャラクタが攻撃により受けたダメージを軽減する(又は0にする)範囲について説明するための図である。
【0168】
特別状態の隠れ状態ではプレーヤキャラクタは、前方からの攻撃に対してダメージを受けないものとする。敵からの攻撃は行われるが、プレーヤキャラクタにヒットしてもダメージを0とする制御を行う。特別状態の攻撃状態では、通常状態と同じダメージ処理(攻撃がヒットしたら規定量のダメージを与える)を行う。
【0169】
本実施の形態では、特別状態発動時の特別ポイントにおける方向520(図2の242、図3の特別状態向き情報315で設定された方向)を基準とする所定の範囲522からの攻撃についてダメージ0とする。特別状態発動時の特別ポイントにおける方向はプレーヤキャラクタが向いている方向とおなじではない。特別状態発動時はプレーヤキャラクタの向きは特別ポイントの発動時の方向に設定されるが、その後プレーヤの操作によりプレーヤキャラクタの向きが変化する可能性があるからである。この所定の範囲522は、特別ポイント毎に異なる範囲でもよいし、すべての特別ポイントで共通の値(基準方向に対する許容角度θr、θlを共通の値)にしてもよい。
【0170】
攻撃の方向が所定の範囲522に入るか否かは、図12(B)に示すように攻撃時の弾道53−1、530−2、530−3、530−4が所定の範囲522に会っているか否かで判断してもよい。弾道530−1、530−2、530−3は所定の範囲522に入っているので、これらの弾道についてはヒットしてもダメージを0とする。弾道539−4については、所定の範囲522に入っていないので、ヒットによるダメージを0とせず、規定されているダメージをプレーヤキャラクタに与える。
【0171】
図13(A)(B)はダメージを0にする攻撃の種類について説明するための図である。
【0172】
図13(A)の532はピストルの弾等の即着系の弾道(レイ)を示しており、534はミサイル等の実弾系のレイを示している。ダメージを0にするのは、レイを用いた着弾判定(レイチェック)を行っている即着系と実弾系に限る。レイとは、弾道や視線等の軌道を示す線(直線や曲線)であり、レイチェックとはレイとのヒットを演算するヒットチェックのことである。
【0173】
図13(B)は、地雷のように予めいずれかの場所(爆発位置)540にセットされている爆弾等の爆発系で与えるダメージについて説明するための図である。爆発系では爆発位置540から半径rの所定範囲(爆発影響範囲542)内に爆発の影響を及ぼす(ダメージを与える)。この様な爆発系では爆発時にプレーヤキャラクタ(仮想カメラ480)が爆発影響範囲542内にあれば、ダメージを受ける。また格闘のように近接して行う近接攻撃系はヒット判定でプレーヤに攻撃がヒットすれば、通常どおりのダメージを受けるようにする。
【0174】
尚、ミサイルのような実弾系でもヒット後、爆発544が発生することがあるが、この爆発については爆発系と同じように爆発影響範囲536を設定して、爆発影響範囲536に含まれればダメージを与えるようにする。
【0175】
図14は、特別状態において視野範囲外の敵から攻撃を受ける場合について説明するための図である。図14に示すようにプレーヤキャラクタ(仮想カメラ480)の視野範囲550外にいる敵キャラクタ560、562が、実弾系の弾534、即着系の弾532を発射した場合、その弾の「攻撃(弾1発)がユニットに与える基本ダメージ値」のパラメータを0とすることで実現することもできる。
【0176】
尚、実弾系のヒットによるダメージは0とするが、それによって爆発534が発生する場合は、従来通り爆発ダメージは受けるものとする。
【0177】
(7)特別状態における表示制御
図15(A)(B)(C)は、特別状態(特に隠れ状態)にあるプレーヤキャラクタと壁と敵キャラクタのXZ平面上に置ける位置関係、YZ平面上に置ける位置関係を示している。図15(A)(B)に示すように、プレーヤキャラクタPCと敵キャラクタECの間には壁610が存在する場合、一人称視点の画像では、図15(C)に示すように、敵キャラクタECは壁610に隠れて見えなくなってしまう。
【0178】
図19(A)(B)は特別状態(特に隠れ状態)における表示制御について説明するための図である。
【0179】
図19(A)に示すように、特別状態(特に隠れ状態)では、プレーヤキャラクタの視界を遮るオブジェクト(ここでは壁オブジェクト610)を半透明で表示してもよい。この様にすると壁の向こうの敵オブジェクトECを見ることができるので、特別状態における攻撃がしやすくなる。
【0180】
特別状態において半透明にするオブジェクト610は、予め指定しておいてもよい。たとえば地形モデルを作成する際に、特別ポイントの周りにある静止オブジェクトでプレーヤの視界を遮る可能性の高いオブジェクトをピックアップして、特別ポイントに対応して登録しておいてもよい。そしてプレーヤキャラクタが特別状態になると、特別ポイントに対応して登録されている静止オブジェクトを半透明表示にする表示制御をおこなってもよい。またプレーヤの視線方向や視野範囲と周囲のオブジェクトとの位置関係から特別ポイントにいるプレーヤキャラクタの視界を遮るオブジェクトをリアルタイムに演算して判断してもよい。この様にすると特別状態でも敵が確認できるので、プレーヤは特別状態における攻撃を楽しむことができる。なおこの半透明表示は、特別状態の隠れ状態の時のみ行い、おこなうようにしてもよい。
【0181】
また図19(B)に示すように、仮想空間の画像620に敵キャラクタECオブジェクトの存在を示す告知画像630を合成して表示してもよい。当該告知画像630の仮想空間の画像に対する配置位置は、敵オブジェクトECのスクリーン平面上の投影位置に基づき決定してもよい。
【0182】
敵キャラクタECを示す告知画像は、例えば当該オブジェクトの輪郭画像でもよいし、当該オブジェクトに対応するマーク画像でもよいし、当該オブジェクトのライフゲージ画像でもよい。
【0183】
(8)特別状態の解除
プレーヤの操作によって特別状態は解除される。例えば、入力情報に基づきプレーヤキャラクタ(仮想カメラ)の位置及び向きの少なくとも1つが変化して、プレーヤキャラクタ(仮想カメラ)の位置及び向きの少なくとも1つが特別状態解除条件を満たした場合には、プレーヤキャラクタを特別状態から通常状態に移行させてもよい。
【0184】
プレーヤキャラクタの位置や向きの代わりに仮想カメラの位置や向きを制御する構成である場合や、プレーヤキャラクタの位置や向きの代わりと仮想カメラの位置や向きが連動する構成である場合には、仮想カメラの位置及び向きの少なくとも1つが特別状態継続条件を満たさなくなった場合には、プレーヤキャラクタを特別状態から通常状態に移行させてもよい。
【0185】
またプレーヤキャラクタが特別状態に移行してからの時間及びプレーヤキャラクタの所定のパラメータの少なくとも1つに基づき特別状態解除条件を満たすか否か判断し、満たしている判断した場合には、プレーヤキャラクタを特別状態から通常状態に移行させてもよい。
【0186】
図9は、特別状態から通常状態に移行させる場合のプレーヤキャラクタの移動制御について説明するための図である。
【0187】
特別状態500においては、プレーヤキャラクタCPのワールド座標系の位置は特別ポイントTPであるが、モーションによって特別ポイントTPからすこし離れているとし、仮想カメラ480は特別状態カメラ位置(当該特別ポイントの攻撃パターンに対応して設定されている仮想カメラの位置情報(隠れ状態))KPに設定されている。
【0188】
このとき特別状態が解除されると510に示すように、プレーヤキャラクタCPは仮想カメラの位置KPの真下の位置KP’まで移動する。すなわち特別状態が解除されるとプレーヤキャラクタの位置は、特別ポイントTPではなく、仮想カメラの位置KPに合わせて移動する。
【0189】
このようにすることにより、特別状態から通常状態へ戻るときの仮想カメラの切り替え制御をスムーズに行うことができる。
【0190】
図10(A)(B)は、特別状態から通常状態に移行させる場合のプレーヤキャラクタの移動制御について説明するための図である。
【0191】
図10A)に示すように、特別状態500でプレーヤキャラクタPCが「立ち隠れ」状態である場合には、通常状態510でもそのまま「立ち状態」に移行する。
【0192】
図10(B)に示すように、特別状態500でプレーヤキャラクタPCが「しゃがみ隠れ」の場合は、通常状態510では「しゃがみ状態」から「立ち状態」に移行させる。
【0193】
図11は、特別状態におけるカメラ旋回範囲の制限について説明するための図である。
【0194】
本実施の形態ではプレーヤキャラクタが特別ポイントにいるときも、プレーヤは操作部からの入力により、プレーヤキャラクタ(仮想カメラ)の向きを操作することができる。
【0195】
プレーヤキャラクタ(仮想カメラ480)の向きが、向き条件(特別状態移行を判断する際の向き条件313)で設定されている許容範囲510(図2の220と同じでもよい)を超えた場合、特別状態を解除するが、通常状態と同じようにプレーヤキャラクタ(仮想カメラ480)の向きを制御していたのでは、許容範囲510の限界に達しているのがわからない。そこで特別状態においてプレーヤキャラクタ(仮想カメラ)の向きを変更する操作入力が行われた場合には、通常状態において操作入力が行われた場合に比べ、カメラの回転速度を遅くする制御をおこなうようにしてもよい。
【0196】
また仮想カメラ480の向きが予め設定された所定の範囲を超えた場合又は、超えそうな場合には仮想カメラ480の回転速度を遅くして、仮想カメラ480の向きを動かしにくくしてもよい。
【0197】
この様にすることによりプレーヤに特別状態解除条件にあたるほど仮想カメラ480の向きを変化させようとしていることを知らせることができる。そして仮想カメラ480の向きが急激に変化するのを防ぐことができる
【0198】
(9)オンラインゲームの制御
本実施の形態は、ネットワークで接続された他のゲーム装置又は他のゲーム装置が接続されたサーバとゲームデータのやりとりを行うオンラインゲームを行うこともできる。
【0199】
図20(A)(B)は、オンラインゲームシステムの構成について説明するための図である。例えば図20(A)に示すように、複数のゲーム装置GM1〜GM6をピアツーピア方式で接続して、他のゲーム装置とゲームデータの送受信をおこない、各ゲーム装置GM1〜GM6が自機のゲームデータと受信した他のゲーム装置のゲームデータに基づきゲーム演算を行う構成でもよい。
【0200】
ゲーム装置GM1〜GM6は、他のゲーム装置との間でブルートゥース(Bluetooth)等を用いた電波によるワイヤレス通信を行ってもよい。
【0201】
ネットワークを構成する各ゲーム装置GM1〜GM6無線LAN機能を備え、IEE E 802.11規格(例えば、IEEE 802.11b)に準拠している場合には、ブロードキャスト方式、ユニキャスト方式、あるいはマルチキャスト方式によるパケット通信(データ通信)によって、グループの他のゲーム装置へゲームデータの送受信を行ってもよい。対戦相手が特定できる場合にはユニキャスト方式で送信するようにしてもよい。
【0202】
ユニキャスト(Unicast)方式とは、自機の通信可能範囲内で、単一のネットワークアドレスを指定して特定の相手(ノード)にデータ(データを含むパケット)を送信する通信方式であって、マルチキャスト(Multicast)方式とは、自機の通信可能範囲内で、複数の相手(ノード)のネットワークアドレスを指定して同じデータ(データを含むパケット)を送信する通信方式である。
【0203】
また例えば図20(B)に示すように、複数のゲーム装置GM1〜GM6とサーバ650がネットワーク660を介して接続され、サーバ650を介してゲームデータのやりとり行う構成でもよい。
【0204】
各ゲーム装置GM1のゲームデータ通信処理部は、ネットワーク660で接続された他のゲーム装置又は他のゲーム装置が接続されたサーバ650とゲームデータのやりとりを行う。
【0205】
オンラインゲームでは複数のプレーヤのプレーヤキャラクタが仮想空間に存在しているので、例えば図21に示すように、第1のプレーヤのプレーヤキャラクタPC1と第2のプレーヤのプレーヤキャラクタPC2が、特別ポイントTP1の近くにいる場合に、いずれもが特別ポイントTPに対する特別状態発動条件を満たすことがある(例えばいずれも特別ポイントに対応するコリジョン210に接している場合等)。しかし特別ポイントTP1に位置できるプレーヤキャラクタは1体であるので、この様な場合には、先に特別状態発動条件を満たしたほうが特別ポイントTP1に移動できる。
【0206】
例えば第1のプレーヤのプレーヤキャラクタPC2が、先に特別状態発動条件を満たした場合には、第1のプレーヤのプレーヤキャラクタPC1が特別ポイントTP1に移動でき、第2のプレーヤキャラクタは特別ポイントTP1に移動できない。
【0207】
このように特別ポイントに位置できるプレーヤキャラクタを1体にする排他制御を行うためには、他機のゲームデータ(例えば他機のプレーヤキャラクタが特別ポイントTP1に対して特別状態発動条件を満たしたというゲームデータ)が必要になる。
【0208】
ところがオンラインでゲームを行う場合には、自機のゲームデータ(例えば自機のプレーヤキャラクタが特別ポイントTP1に対して特別状態発動条件を満たしたというゲームデータ)は遅延なしに受け取れるが、他機の自機のゲームデータ(例えば他機のプレーヤキャラクタが特別ポイントTP1に対して特別状態発動条件を満たしたというゲームデータ)は、ネットワーク経由で受信するため、通信遅延が生じる。例えば通信遅延がα秒であるとすると他機のゲームデータを取得できるのがα秒後となる。
【0209】
従って他のゲーム装置のゲームデータを反映した排他制御を行うと、第1のプレーヤキャラクタPC1はα秒後まで特別ポイントへ移動することができないことになり、プレーヤの操作感覚とずれが生じてしまう。
【0210】
そこで本実施の形態では、自機のゲームデータが自機のプレーヤキャラクタの特別ポイントTP1に対する特別状態発動条件を満たしている場合には、その時点で一旦特別ポイントに移動させる。他のゲーム装置でも同じ処理を行うので、先に説明したように第1のプレーヤのプレーヤキャラクタPC1と第2のプレーヤのプレーヤキャラクタPC2が、ほぼ時を同じくして特別状態発動条件を満たした場合には、両方のゲーム装置でそれそれ自機のプレーヤキャラクタを特別ポイントTP1に移動させる処理が行われる。
【0211】
従って図21のような場合には、第1のプレーヤキャラクタと第2のプレーヤキャラクタが一旦両方とも特別ポイントに移動することになる。そして、排他制御のための判断ができるようになった時点で(オンラインゲームに参加している複数のプレーヤの所与の時点におけるデータがそろった時点)で排他制御のための調停処理が行われる。
【0212】
調停処理は、各端末において「プレーヤキャラクタが特別ポイントTP1に対する特別以降条件を満たしたというイベント」の発生時刻を比較して、発生時刻の遅い方のプレーヤキャラクタを当該特別ポイント以外の場所に移動させる処理を行う。
【0213】
図23は、ゲーム装置間で送受信される通信データについて説明するための図である。通信データ700は、ゲームデータ730と、当該ゲームデータを生成したゲーム装置ID710、当該ゲームデータの発生時刻720を含む。ゲームデータ730は、ゲーム結果としての画像生成や音生成や成績データ生成に必要な情報であり、各ゲーム装置がゲーム演算を行うために必要な情報(例えば入力情報やイベント情報)でもよいし、いずれかのゲーム装置やサーバで行われたゲーム演算の結果発生した情報(位置情報やヒット情報や成績情報やパラメータ情報)でもよい。
【0214】
図22は、オンラインゲームにおけるゲームデータの発生と送受信について説明するための図である。第1のゲーム装置GM1(第1のプレーヤキャラクタPC1)と第2のゲーム装置GM2(第2のプレーヤキャラクタPC2)がオンラインゲームを行っている場合に、時刻t1において、第1のゲーム装置GM1(第1のプレーヤキャラクタPC1)で、ゲームデータa1(第1のプレーヤキャラクタPC1が、特別ポイントTP1に対して特別状態発動条件を満たしたことを示すゲームデータ)が発生し、時刻t2(t1<t2)において、第2のゲーム装置GM2(第2のプレーヤキャラクタPC2)で、ゲームデータb1(第2のプレーヤキャラクタPC2が、特別ポイントTPに対して特別状態発動条件を満たしたことを示すゲームデータ)が発生したとする。
【0215】
ここで通信遅延がαである場合、時刻t1に第1のゲーム装置GM1でゲームデータa1が発生し、対応するゲームデータa1’が他の端末に送信されると、第2のゲーム装置GM2がゲームデータa1’をうけとるのが時刻t3となる。同様に時刻t2に第2のゲーム装置GM2でゲームデータb1が発生し、対応するゲームデータb1’が他の端末に送信されると、第1のゲーム装置GM2がゲームデータb1’をうけとるのが時刻t4となる。
【0216】
各ゲーム装置がそれそれ自機のゲームデータ及び他機から受信したゲームデータに基づき、同じアルゴリズムで別個にゲーム演算を行っている場合、時刻t1において第1のゲーム装置GM1では、自機で発生したゲームデータa1に基づいて、第1のプレーヤキャラクタPC1を特別ポイントTPに移動させる制御が行なわれる。そして時刻t2において第2のゲーム装置GM2では、自機で発生したゲームデータb1に基づいて、第2のプレーヤキャラクタPC2を特別ポイントTPに移動させる制御を行う。
【0217】
そして時刻t3において第2のゲーム装置GM2ではゲームデータa1’を受け取る。ゲームデータa1’はゲーム装置GM1で時刻t1に第1のプレーヤキャラクタPC1が特別ポイントTPに対して特別状態発動条件を満たしたというイベント(ev1)が発生したこと示している。一方、自機で発生したゲームデータb1は、ゲーム装置GM1で時刻t2に第2のプレーヤキャラクタPC2が特別ポイントTPに対して特別状態発動条件を満たしたというイベント(ev2)が発生したこと示している。イベントev1とイベントev2は、同時に成立できない排他的なイベントであるため調整制御が必要となる。この場合イベントev1の発生時刻がイベントev2の発生時刻より早いので、イベントev1を優先する調整制御(例えば後のイベントをキャンセルする制御等)が行われる。調整制御として、ゲーム装置GM2では、時刻t3において、自機のプレーヤキャラクタである第2のプレーヤキャラクタを特別ポイントから他の場所へ移動させる制御が行われる。この様に第1のプレーヤキャラクタPC1と第2のプレーヤキャラクタPC2は、それぞれが特別状態発動条件を満たした時点で、一旦特別ポイントTPに移動するが、後に入った第2のプレーヤPC2は、その後特別ポイントから追い出され、先に入った第1のプレーヤキャラクタが特別ポイントTPにのこる画像が生成される。
【0218】
この様にすると、通信によるデータ遅延に関わらず特別ポイントへのスムーズな移動が実現でき、プレーヤの操作感覚にマッチしたゲームを提供することができる。
【0219】
なお排他関係にあるか否かの判断は他のゲーム装置のプレーヤキャラクタの特別状態移行情報と、自己のゲーム装置のプレーヤキャラクタの特別状態移行情報とに基づき各ゲーム機で個別に行ってもよいし、排他関係にあるか否かの判断はホスト機又はサーバで行い、各ゲーム機は、ホスト機又はサーバから排他チェック結果をうけとってもよい。
【0220】
上記実施の形態はオンラインゲームにおいて、各特別ポイント単位で排他制御を行う場合について説明したが、複数の特別ポイントをグループ化して、グループ単位に排他制御を行うようにしてもよい。
【0221】
図24は仮想空間に複数の特別ポイントTP1〜TP7が設定されている様子を示している。
【0222】
ここで特別ポイントTP1〜TP3は排他制御の対象となる特別ポイントを規定する第1のグループに属している。第1のグループに属する特別ポイントは排他制御の対象となるため、所与の時点で、第1のグループ内の特別ポイントはいずれか1つのみしかプレーヤキャラクタを移動させることができない。例えば第1のプレーヤキャラクタPC1が第1のグループに属する特別ポイントTP1に対して特別状態発動条件を満たした場合、第1のグループに属する特別ポイントTP1〜TP3のいずれにも他のプレーヤキャラクタがいない場合に、特別ポイントTP1に移動することができる。例えば第1のグループに属する特別ポイントTP2に既に他のプレーヤキャラクタがいる場合には、第1のプレーヤキャラクタPC1は特別ポイントTP1に移動することができない。
【0223】
例えば近接して存在する複数の特別ポイントを排他制御の対象としてグループ化しておいてもよい。特別ポイントにいるプレーヤは攻撃状態と隠れ状態を切り替えて攻撃動作を行う。具体的には壁等の隙間から体の一部を出したり隠れたりして攻撃防御動作を行うため、近接する特別ポイントに複数のプレーヤキャラクタが存在すると、いずれかのプレーヤキャラクタの攻撃防御動作が他のレーヤキャラクタの攻撃防御動作のじゃまになる可能性がある。従ってそのような可能性のある特別ポイント(例えば一定距離以内に存在する特別ポイント)を排他制御の対象としてグループ化しておいてもよい。
【0224】
また特別ポイントTP4〜TP7は代替え制御の対象となる特別ポイントを規定する第2のグループに属している。第2のグループに属する特別ポイントは代替え制御の対象となる。すなわちプレーヤキャラクタPC1が、所与の時点で、第2のグループ内の特別ポイントTP4に対して特別状態発動条件を満たしたが、その特別ポイントTP4には既に他のプレーヤキャラクタがいる場合には、第2のグループに属する他の特別ポイント(プレーヤキャラクタのいない特別ポイント)にプレーヤキャラクタPC1を移動させることができる。
【0225】
例えば近接して存在する複数の特別ポイントを代替え制御の対象としてグループ化しておいてもよい。この様にすると、グループ内の所与の特別ポイントに対して複数のプレーヤキャラクタが特別状態発動条件を満たした場合に、移行時期の早いプレーヤキャラクタを当該所与の特別ポイントに移動させ、移行時期の遅いプレーヤキャラクタをグループ内の他の特別ポイントに移動させてもよい。
【0226】
3.本実施の形態の処理
図26は、本実施の形態の特別状態移行制御の処理の流れを示すフローチャートである。特別状態発動入力あった場合には以下の処理を行う(ステップS10)。プレーヤキャラクタの位置と接触するコリションを有する特別ポイントがあるか否か判定し(ステップS20)、ある場合には、プレーヤキャラクタの向きが対象特別ポイントに設定されている向き条件を満たすか判定する(ステップS30)。向き条件を満たす場合には、プレーヤキャラクタは接地しているか否か判定する(ステップS40)。接地している場合には、プレーヤキャラクタを特別状態に移行させるとともに、対象の特別ポイントに移動させ、対象の特別ポイントに設定されている向き情報の向きに配置する(ステップS50)。
【0227】
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。例えば、明細書又は図面中の記載において広義や同義な用語として引用された用語は、明細書又は図面中の他の記載においても広義や同義な用語に置き換えることができる。
【0228】
上記実施の形態では、ゲーム装置が撮影装置である場合を例にとり説明したがこれに限られない。例えばゲーム装置は、業務用ゲームシステム、家庭用ゲームシステム、携帯型ゲームシステム等のいずれのタイプでも構成可能であり、ゲームの種類もシューティングゲームやレースゲームやロールプレイングゲームやパズルゲーム等の種々のゲームシステムに適用できる。
【符号の説明】
【0229】
100 処理部、110 オブジェクト空間設定部、111 仮想カメラ制御部、112 特別状態発動部、113 演算処理部、
113−1 攻撃演算部、113−2 ダメージ演算部、
114 移動・動作処理部、115 ゲーム演算部、
120 画像生成部、130 音処理部、
160 入力部、162 検出部、180 情報記憶媒体、190 表示部、
170 記憶部、172 主記憶部、
192 音出力部、196 通信部
【特許請求の範囲】
【請求項1】
仮想空間内でプレーヤキャラクタを移動させるゲームの画像を生成するためのプログラムであって、
入力情報に基づき仮想空間内におけるプレーヤキャラクタの移動情報を演算する移動情報演算部と、
プレーヤキャラクタの移動情報に基づき特別状態発動条件を満たしているか否か判断し、満たしている場合にはプレーヤキャラクタを仮想空間内に設定された特別ポイントに移動させ、特別状態を発動させる特別状態発動部と、
入力情報及びプレーヤキャラクタの移動情報の少なくとも1つに基づき仮想カメラの配置制御を行う仮想カメラ制御部と、
仮想空間を仮想カメラから見た画像を生成する画像生成部と、してコンピュータを機能させ、
前記移動情報演算部は、
入力情報に基づき、プレーヤキャラクタの位置を演算し、
前記特別状態発動部は、
プレーヤキャラクタの位置と仮想空間内の特別ポイントに対応づけて設定されている位置判定条件とに基づきプレーヤキャラクタの位置判定を行い、判定結果に基づきプレーヤキャラクタが特別状態発動条件を満たしているか否か判断することを特徴とするプログラム。
【請求項2】
請求項1において、
前記移動情報演算部は、
入力情報に基づき、プレーヤキャラクタの向きを演算し、
前記特別状態発動部は、
プレーヤキャラクタの向きと、仮想空間内の特別ポイントに対応して設定された向き条件に基づきプレーヤキャラクタの向き判定を行い、判定結果に基づきプレーヤキャラクタが特別状態発動条件を満たしているか否か判断することを特徴とするプログラム。
【請求項3】
請求項1又は2において、
前記移動情報演算部は、
入力情報に基づき、プレーヤキャラクタの移動方向を演算し、
前記特別状態発動部は、
プレーヤキャラクタの移動方向と、仮想空間内の特別ポイントに対応して設定された移動方向条件に基づきプレーヤキャラクタの移動方向判定を行い、判定結果に基づきプレーヤキャラクタが特別状態発動条件を満たしているか否か判断することを特徴とするプログラム。
【請求項4】
請求項1乃至3のいずれかにおいて、
前記特別状態発動部は、
特別状態発動中は、ゲーム演算に用いられるパラメータを特別状態発動中でない場合に比べてプレーヤキャラクタに有利な値又は不利な値に設定することを特徴とするプログラム。
【請求項5】
請求項4において、
前記特別状態発動部は、
特別状態発動中は、特別ポイントにいるプレーヤキャラクタの状態を、入力情報に基づき隠れ状態と攻撃状態に切り替え、各状態に応じて異なる制御を行うことを特徴とするプログラム。
【請求項6】
請求項1乃至5のいずれかにおいて、
前記移動情報演算部は、
入力情報及び姿勢情報の少なくとも一方に基づき、プレーヤキャラクタの接地の有無又は姿勢を演算し、
前記特別状態発動部は、
プレーヤキャラクタの接地の有無又は姿勢に基づき、特別状態発動条件を満たしているか否か判断することを特徴とするプログラム。
【請求項7】
請求項1乃至6のいずれかにおいて、
前記特別状態発動部は、
特別状態発動中に、キャラクタの視界を遮るオブジェクトを半透明で描画するための描画制御情報を生成し、
前記画像生成部は、
前記描画制御情報に基づきプレーヤキャラクタの視界を遮るオブジェクトが半透明表示された仮想空間の画像を生成するプログラム。
【請求項8】
請求項1乃至7のいずれかにおいて、
前記特別状態発動部は、
所定のオブジェクトの存在を示す告知画像が、仮想空間の画像の当該オブジェクトに対応する位置に配置された画像を生成するための画像生成制御情報を生成し、
前記画像生成部は、
前記画像生成制御情報に基づき、仮想空間の画像と告知画像を合成し、告知画像を含む仮想空間の画像を生成するプログラム。
【請求項9】
請求項1乃至8のいずれかにおいて、
前記特別状態発動部は、
仮想空間内の複数の異なる特別ポイントに対してプレーヤキャラクタが特別状態発動条件を満たしている場合には、プレーヤキャラクタと複数の特別ポイントとの距離に基づきプレーヤキャラクタを移動させる特別ポイントを決定するプログラム。
【請求項10】
請求項1乃至9のいずれかにおいて、
前記特別状態発動部は、
プレーヤキャラクタの位置が所定時間継続して前記位置条件を満足しているか、及びプレーヤキャラクタの向きが所定時間継続して前記向き条件を満たしているか、及びプレーヤキャラクタの移動方向が所定時間継続して前記移動方向条件を満たしているかの少なくとも1つの判定結果に基づき、プレーヤキャラクタが特別状態発動条件を満たしているか否か判断することを特徴とするプログラム。
【請求項11】
請求項1乃至10のいずれかにおいて、
前記特別状態発動部は、
入力情報に基づきプレーヤキャラクタの位置及び向きの少なくとも1つが変化して、プレーヤキャラクタの位置及び向きの少なくとも1つが特別状態解除条件を満たした場合にはプレーヤキャラクタを特別状態を解除する特別状態解除制御をおこなうプログラム。
【請求項12】
請求項1乃至11のいずれかにおいて、
前記特別状態発動部は、
特別状態が発動されてからの時間及びプレーヤキャラクタの所定のパラメータの少なくとも1つが特別状態解除条件を満たすか否か判断し、満たしていると判断した場合には、プレーヤキャラクタを特別状態を解除する特別状態解除制御をおこなうプログラム。
【請求項13】
請求項1乃至12のいずれかにおいて、
前記仮想カメラ制御部は、
特別状態発動中にプレーヤの向きを操作する操作入力が行われた場合には、特別状態発動中でない状態に比べ、プレーヤキャラクタに連動する仮想カメラの回転速度を遅くする制御をおこなうプログラム。
【請求項14】
請求項1乃至13のいずれかにおいて、
前記プログラムは、ネットワークで接続された他のゲーム装置又はサーバと接続されたゲーム装置で実行されるプログラムであって、
前記他のゲーム装置又は前記サーバとゲームデータのやりとりを行うゲームデータ通信処理部としてさらにコンピュータを機能させ、
前記ゲームデータ通信処理部は、
他のゲーム装置のプレーヤキャラクタの特別状態発動に関する情報を含むゲームデータを受信し、自己のゲーム装置のプレーヤキャラクタの特別状態発動に関する情報を含むゲームデータを送信し、
前記特別状態発動部は、
自己のゲーム装置のプレーヤキャラクタが所与の特別ポイントに対応する特別状態発動条件を満たした時点で、自己のゲーム装置のプレーヤキャラクタを所与の特別ポイントに移動させ、
自己のゲーム装置のプレーヤキャラクタが特別ポイントに移動した後に、他のゲーム装置のプレーヤキャラクタのゲームデータ特別状態発動に関する情報と、自己のゲーム装置のプレーヤキャラクタのゲームデータ特別状態発動に関する情報とが排他的な関係にあり、自己のプレーヤキャラクタの特別状態発動時期が他機のプレーヤキャラクタよりも後であると判断した場合には、特別ポイントにいる自己のプレーヤキャラクタを、特別ポイント以外の場所に移動させる排他制御を行うプログラム。
【請求項15】
請求項14において、
前記特別状態発動部は、
他のゲーム装置のプレーヤキャラクタと自己のゲーム装置のプレーヤキャラクタが同じ特別ポイントに対する特別状態発動条件を満たした場合又は同じグループに属する特別ポイントに対する特別状態発動条件を満たした場合、又は排他関係の設定されている特別ポイントに対する特別状態発動条件を満たした場合に排他的な関係にあるとして、前記排他制御を行うプログラム。
【請求項16】
請求項14又は15において、
前記特別状態発動部は、
他のゲーム装置のプレーヤキャラクタと自己のゲーム装置のプレーヤキャラクタが排他的な関係にあり自己のプレーヤキャラクタの特別状態移行時期が他機のプレーヤキャラクタよりも後である場合には、自己のプレーヤのいる特別ポイント対して設定されている代替えの特別ポイントに、自己のプレーヤキャラクタを移動させ、通常状態から特別状態に移行させるプログラム。
【請求項17】
請求項1乃至16のいずれかのプログラムが記憶されたコンピュータ読み取り可能な情報記憶媒体。
【請求項18】
仮想空間内でプレーヤキャラクタを移動させるゲームの画像を生成するための画像生成装置であって、
入力情報に基づき仮想空間内におけるプレーヤキャラクタの移動情報を演算する移動情報演算部と、
プレーヤキャラクタの移動情報に基づき特別状態発動条件を満たしているか否か判断し、満たしている場合にはプレーヤキャラクタを仮想空間内に設定された特別ポイントに移動させ、特別状態を発動させる特別状態発動部と、
入力情報及びプレーヤキャラクタの移動情報の少なくとも1つに基づき仮想カメラの配置制御を行う仮想カメラ制御部と、
仮想空間を仮想カメラから見た画像を生成する画像生成部と、を含み、
前記移動情報演算部は、
入力情報に基づき、プレーヤキャラクタの位置を演算し、
前記特別状態発動部は、
プレーヤキャラクタの位置と仮想空間内の特別ポイントに対応づけて設定されている位置判定条件とに基づきプレーヤキャラクタの位置判定を行い、判定結果に基づきプレーヤキャラクタが特別状態発動条件を満たしているか否か判断することを特徴とする画像生成装置。
【請求項1】
仮想空間内でプレーヤキャラクタを移動させるゲームの画像を生成するためのプログラムであって、
入力情報に基づき仮想空間内におけるプレーヤキャラクタの移動情報を演算する移動情報演算部と、
プレーヤキャラクタの移動情報に基づき特別状態発動条件を満たしているか否か判断し、満たしている場合にはプレーヤキャラクタを仮想空間内に設定された特別ポイントに移動させ、特別状態を発動させる特別状態発動部と、
入力情報及びプレーヤキャラクタの移動情報の少なくとも1つに基づき仮想カメラの配置制御を行う仮想カメラ制御部と、
仮想空間を仮想カメラから見た画像を生成する画像生成部と、してコンピュータを機能させ、
前記移動情報演算部は、
入力情報に基づき、プレーヤキャラクタの位置を演算し、
前記特別状態発動部は、
プレーヤキャラクタの位置と仮想空間内の特別ポイントに対応づけて設定されている位置判定条件とに基づきプレーヤキャラクタの位置判定を行い、判定結果に基づきプレーヤキャラクタが特別状態発動条件を満たしているか否か判断することを特徴とするプログラム。
【請求項2】
請求項1において、
前記移動情報演算部は、
入力情報に基づき、プレーヤキャラクタの向きを演算し、
前記特別状態発動部は、
プレーヤキャラクタの向きと、仮想空間内の特別ポイントに対応して設定された向き条件に基づきプレーヤキャラクタの向き判定を行い、判定結果に基づきプレーヤキャラクタが特別状態発動条件を満たしているか否か判断することを特徴とするプログラム。
【請求項3】
請求項1又は2において、
前記移動情報演算部は、
入力情報に基づき、プレーヤキャラクタの移動方向を演算し、
前記特別状態発動部は、
プレーヤキャラクタの移動方向と、仮想空間内の特別ポイントに対応して設定された移動方向条件に基づきプレーヤキャラクタの移動方向判定を行い、判定結果に基づきプレーヤキャラクタが特別状態発動条件を満たしているか否か判断することを特徴とするプログラム。
【請求項4】
請求項1乃至3のいずれかにおいて、
前記特別状態発動部は、
特別状態発動中は、ゲーム演算に用いられるパラメータを特別状態発動中でない場合に比べてプレーヤキャラクタに有利な値又は不利な値に設定することを特徴とするプログラム。
【請求項5】
請求項4において、
前記特別状態発動部は、
特別状態発動中は、特別ポイントにいるプレーヤキャラクタの状態を、入力情報に基づき隠れ状態と攻撃状態に切り替え、各状態に応じて異なる制御を行うことを特徴とするプログラム。
【請求項6】
請求項1乃至5のいずれかにおいて、
前記移動情報演算部は、
入力情報及び姿勢情報の少なくとも一方に基づき、プレーヤキャラクタの接地の有無又は姿勢を演算し、
前記特別状態発動部は、
プレーヤキャラクタの接地の有無又は姿勢に基づき、特別状態発動条件を満たしているか否か判断することを特徴とするプログラム。
【請求項7】
請求項1乃至6のいずれかにおいて、
前記特別状態発動部は、
特別状態発動中に、キャラクタの視界を遮るオブジェクトを半透明で描画するための描画制御情報を生成し、
前記画像生成部は、
前記描画制御情報に基づきプレーヤキャラクタの視界を遮るオブジェクトが半透明表示された仮想空間の画像を生成するプログラム。
【請求項8】
請求項1乃至7のいずれかにおいて、
前記特別状態発動部は、
所定のオブジェクトの存在を示す告知画像が、仮想空間の画像の当該オブジェクトに対応する位置に配置された画像を生成するための画像生成制御情報を生成し、
前記画像生成部は、
前記画像生成制御情報に基づき、仮想空間の画像と告知画像を合成し、告知画像を含む仮想空間の画像を生成するプログラム。
【請求項9】
請求項1乃至8のいずれかにおいて、
前記特別状態発動部は、
仮想空間内の複数の異なる特別ポイントに対してプレーヤキャラクタが特別状態発動条件を満たしている場合には、プレーヤキャラクタと複数の特別ポイントとの距離に基づきプレーヤキャラクタを移動させる特別ポイントを決定するプログラム。
【請求項10】
請求項1乃至9のいずれかにおいて、
前記特別状態発動部は、
プレーヤキャラクタの位置が所定時間継続して前記位置条件を満足しているか、及びプレーヤキャラクタの向きが所定時間継続して前記向き条件を満たしているか、及びプレーヤキャラクタの移動方向が所定時間継続して前記移動方向条件を満たしているかの少なくとも1つの判定結果に基づき、プレーヤキャラクタが特別状態発動条件を満たしているか否か判断することを特徴とするプログラム。
【請求項11】
請求項1乃至10のいずれかにおいて、
前記特別状態発動部は、
入力情報に基づきプレーヤキャラクタの位置及び向きの少なくとも1つが変化して、プレーヤキャラクタの位置及び向きの少なくとも1つが特別状態解除条件を満たした場合にはプレーヤキャラクタを特別状態を解除する特別状態解除制御をおこなうプログラム。
【請求項12】
請求項1乃至11のいずれかにおいて、
前記特別状態発動部は、
特別状態が発動されてからの時間及びプレーヤキャラクタの所定のパラメータの少なくとも1つが特別状態解除条件を満たすか否か判断し、満たしていると判断した場合には、プレーヤキャラクタを特別状態を解除する特別状態解除制御をおこなうプログラム。
【請求項13】
請求項1乃至12のいずれかにおいて、
前記仮想カメラ制御部は、
特別状態発動中にプレーヤの向きを操作する操作入力が行われた場合には、特別状態発動中でない状態に比べ、プレーヤキャラクタに連動する仮想カメラの回転速度を遅くする制御をおこなうプログラム。
【請求項14】
請求項1乃至13のいずれかにおいて、
前記プログラムは、ネットワークで接続された他のゲーム装置又はサーバと接続されたゲーム装置で実行されるプログラムであって、
前記他のゲーム装置又は前記サーバとゲームデータのやりとりを行うゲームデータ通信処理部としてさらにコンピュータを機能させ、
前記ゲームデータ通信処理部は、
他のゲーム装置のプレーヤキャラクタの特別状態発動に関する情報を含むゲームデータを受信し、自己のゲーム装置のプレーヤキャラクタの特別状態発動に関する情報を含むゲームデータを送信し、
前記特別状態発動部は、
自己のゲーム装置のプレーヤキャラクタが所与の特別ポイントに対応する特別状態発動条件を満たした時点で、自己のゲーム装置のプレーヤキャラクタを所与の特別ポイントに移動させ、
自己のゲーム装置のプレーヤキャラクタが特別ポイントに移動した後に、他のゲーム装置のプレーヤキャラクタのゲームデータ特別状態発動に関する情報と、自己のゲーム装置のプレーヤキャラクタのゲームデータ特別状態発動に関する情報とが排他的な関係にあり、自己のプレーヤキャラクタの特別状態発動時期が他機のプレーヤキャラクタよりも後であると判断した場合には、特別ポイントにいる自己のプレーヤキャラクタを、特別ポイント以外の場所に移動させる排他制御を行うプログラム。
【請求項15】
請求項14において、
前記特別状態発動部は、
他のゲーム装置のプレーヤキャラクタと自己のゲーム装置のプレーヤキャラクタが同じ特別ポイントに対する特別状態発動条件を満たした場合又は同じグループに属する特別ポイントに対する特別状態発動条件を満たした場合、又は排他関係の設定されている特別ポイントに対する特別状態発動条件を満たした場合に排他的な関係にあるとして、前記排他制御を行うプログラム。
【請求項16】
請求項14又は15において、
前記特別状態発動部は、
他のゲーム装置のプレーヤキャラクタと自己のゲーム装置のプレーヤキャラクタが排他的な関係にあり自己のプレーヤキャラクタの特別状態移行時期が他機のプレーヤキャラクタよりも後である場合には、自己のプレーヤのいる特別ポイント対して設定されている代替えの特別ポイントに、自己のプレーヤキャラクタを移動させ、通常状態から特別状態に移行させるプログラム。
【請求項17】
請求項1乃至16のいずれかのプログラムが記憶されたコンピュータ読み取り可能な情報記憶媒体。
【請求項18】
仮想空間内でプレーヤキャラクタを移動させるゲームの画像を生成するための画像生成装置であって、
入力情報に基づき仮想空間内におけるプレーヤキャラクタの移動情報を演算する移動情報演算部と、
プレーヤキャラクタの移動情報に基づき特別状態発動条件を満たしているか否か判断し、満たしている場合にはプレーヤキャラクタを仮想空間内に設定された特別ポイントに移動させ、特別状態を発動させる特別状態発動部と、
入力情報及びプレーヤキャラクタの移動情報の少なくとも1つに基づき仮想カメラの配置制御を行う仮想カメラ制御部と、
仮想空間を仮想カメラから見た画像を生成する画像生成部と、を含み、
前記移動情報演算部は、
入力情報に基づき、プレーヤキャラクタの位置を演算し、
前記特別状態発動部は、
プレーヤキャラクタの位置と仮想空間内の特別ポイントに対応づけて設定されている位置判定条件とに基づきプレーヤキャラクタの位置判定を行い、判定結果に基づきプレーヤキャラクタが特別状態発動条件を満たしているか否か判断することを特徴とする画像生成装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図17】
【図18】
【図22】
【図23】
【図24】
【図25】
【図26】
【図15】
【図16】
【図19】
【図20】
【図21】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図17】
【図18】
【図22】
【図23】
【図24】
【図25】
【図26】
【図15】
【図16】
【図19】
【図20】
【図21】
【公開番号】特開2011−215945(P2011−215945A)
【公開日】平成23年10月27日(2011.10.27)
【国際特許分類】
【出願番号】特願2010−84245(P2010−84245)
【出願日】平成22年3月31日(2010.3.31)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Bluetooth
【出願人】(000134855)株式会社バンダイナムコゲームス (1,157)
【Fターム(参考)】
【公開日】平成23年10月27日(2011.10.27)
【国際特許分類】
【出願日】平成22年3月31日(2010.3.31)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Bluetooth
【出願人】(000134855)株式会社バンダイナムコゲームス (1,157)
【Fターム(参考)】
[ Back to top ]