説明

プログラム、記憶媒体およびコンピュータ

【課題】3Dアクションゲームにおいて、プレイヤーの自然な操作でキャラクタを上の地面から飛び降りさせることができ、且つキャラクタを飛び降りさせることがゲーム進行上好ましくないと判断される場合には、キャラクタが上の地面から外れた場合でも飛び降りさせないようにする。
【解決手段】キャラクタが上の地面の下の地面に対する境界を越えたことが検出されたとき、たとえば遊技者がキャラクタを飛び降りさせようとしていないと思われる場合やゲームの構成上キャラクタが落下することを想定していない場合等のゲーム進行上好ましくないと判断した場合にはキャラクタを上の地面に押し戻し、ゲーム進行上支障がないと判断した場合にはキャラクタをそのまま下に落下させる。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、高低差のある複数の地面でキャラクタが活動するゲームを実行するためのプログラム、記憶媒体およびコンピュータに関する。
【背景技術】
【0002】
アクションゲームには、ゲームを趣向的且つ複雑にするため、三次元ゲーム空間に高低差のある複数の地面(たとえば谷底と崖の上等)を設定し、キャラクタがこれら複数の地面を、飛び下りる・よじ登る等して移動しながら活動(戦闘)する3Dアクションゲームが実用化されている。
【0003】
(1)このような3Dアクションゲームのうち一部のゲームでは、上の地面で活動しているキャラクタが、遊技者の操作による移動や相手の攻撃によって飛ばされた結果、上の地面から外れた場合、このキャラクタを下の地面に落下させるように処理している。これにより、キャラクタを下の地面に降ろすための特別の操作が不要になるため、遊技者の操作が容易になるという利点があった(非特許文献1参照)。
【0004】
(2)また、他の一部のゲームでは、キャラクタが上の地面の端部(崖)にいるときに遊技者が特定の操作(たとえば×ボタンの押下等)をした場合のみ、キャラクタを下の地面に落下させ、上の地面で活動しているキャラクタが移動操作や相手の攻撃によって上の地面から外れようとした場合には、キャラクタの位置を強制的に上の地面に押し戻す処理をするようにしている。これにより、意図しないキャラクタの落下を防止できるという利点があった(非特許文献2参照)。
【0005】
(3)また、上述のように、キャラクタが上の地面から外れたところへ移動しても下の地面に落下させないようにする場合には、上の地面の端部(崖)に仮想的な壁を設定し、それよりも向こう(上の地面から外れたところ)へ行かないように、キャラクタの位置を強制的に規制する。この処理は、従来、実際の壁に対するキャラクタの位置制御と同じように行われていた。すなわち、壁に対する処理は、キャラクタが壁に近寄りすぎて体の一部が壁に埋まってしまっては不自然であるため、キャラクタの一部でも壁の中に移動しそうになった(壁に当たった)ときは、それが壁に埋まらないように、キャラクタの位置を強制的に押し戻すというものである。
【0006】
【非特許文献1】「デビルメイクライ3最強デビルハンター」講談社、2001年、p.74−75
【非特許文献2】「デビルメイクライ解体真書」株式会社カプコン、2005年、p.15
【発明の開示】
【発明が解決しようとする課題】
【0007】
上記先行技術(1)のように、キャラクタが地面のないところに移動した場合には、自動的に下へ落下させる方式は、物理的には自然であるが、ゲームとして以下のような不都合な場合があった。すなわち:
【0008】
遊技者がキャラクタを崖ぎわで移動させようとしているのに、ちょっとした操作ミスで足を踏み外した場合でも落ちてしまう。キャラクタを崖に沿って移動させることは高度な操作が要求されるが、ちょっとした操作ミスでもキャラクタが下に落下してしまうのはゲームにおける操作性の低下につながるという問題点があった。
【0009】
一般的なゲームでは、キャラクタが相手の攻撃によって飛ばされると、そのダメージで数秒間活動できない期間が与えられる。これは、ゲームにおいて、相手の攻撃を受けてしまったことに対するペナルティとして設けられている。一方、下の地面への落下は、一般的には遊技者の意思で飛び下りる動作、すなわち一種の退避行動として用いられる。したがって、相手の攻撃によって飛ばされたときに下の地面に落下させてしまうと、ペナルティとなるはずが相手から退避させることになってしまい、本来想定されているゲームの進行と異なってしまうという問題点があった。
【0010】
また、上記先行技術(2)のように、キャラクタを下の地面に落下させる(飛び下りさせる)ために遊技者に特定の操作を要求することは、遊技者がキャラクタを崖に向かって走らせるというような自然な操作の流れでキャラクタを飛び下りさせることができないようになるという点で、操作性が低下するという問題があった。
【0011】
また、先行技術(3)のように、キャラクタの一部でも境界を越えそうになった場合に、キャラクタの位置を強制的に規制する処理は、壁に対する処理の場合には有効であるが、崖に対する処理としては不自然であった。すなわち、壁の場合、キャラクタの体の一部でも壁に埋まってしまっては不自然であるため、キャラクタの一部でも壁の中に移動しそうになったときは、キャラクタの位置を強制的に押し戻せばよいが、崖の場合、体の一部が崖の外にはみ出しても、崖から落ちることはないうえ壁に埋まってしまうこともない。にもかかわらず、キャラクタの身体全体が崖の内側に納まるように押し戻す制御がされ、崖ぎわぎりぎりでの活動ができないという問題点があった。
【0012】
この発明は、自然な操作でキャラクタを上の地面から飛び降りさせることができ、且つキャラクタを飛び降りさせることがゲーム進行上好ましくないと判断される場合には、キャラクタが上の地面から外れた場合でも飛び降りさせない制御をするプログラム、記憶媒体およびコンピュータを提供することを目的とする。また、この発明は、崖ぎわでキャラクタを自然な態様で活動させることができるプログラム、記憶媒体およびコンピュータを提供することを目的とする。
【課題を解決するための手段】
【0013】
請求項1の発明のプログラムは、コンピュータを、相互に高低差のある複数の地面を有するゲーム空間を生成するゲーム空間生成手段、前記ゲーム空間において、キャラクタを前記複数の地面を行き来させて活動させる手段、上の地面の下の地面に対する境界を設定し、前記上の地面で活動しているキャラクタがこの境界を越えたことを検出する検出手段、前記検出手段により、前記キャラクタが前記境界を越えたことが検出されたとき、このキャラクタの前記境界を越えた移動を許可するか否かを判定する判定手段、前記判定手段が移動を許可しない旨の判定をしたとき、前記ゲーム空間において、前記キャラクタを前記上の地面上の前記境界内の位置に強制的に移動させる押し戻し手段、前記判定手段が移動を許可する旨の判定をしたとき、前記ゲーム空間において、その移動した位置における処理として、前記キャラクタを前記下の地面に落下させる手段、として機能させることを特徴とする。
【0014】
請求項2の発明は、請求項1の発明において、前記判定手段は、前記キャラクタが前記境界を越えたときの前記活動の態様に基づいて前記移動を許可するか否かを判定することを特徴とする。
【0015】
請求項3の発明は、請求項1の発明において、前記判定手段は、前記キャラクタが、前記境界に進入した角度に基づいて前記移動を許可するか否かを判定することを特徴とする。
【0016】
請求項4の発明は、請求項1の発明において、前記判定手段は、前記キャラクタが、前記境界を越えたとき、上の地面上(on)に居たか、上の地面の上(above)を飛んでいたかに応じて前記移動を許可 するか否かを判定することを特徴とする。
【0017】
請求項5の発明は、請求項1の発明において、前記判定手段は、前記キャラクタが、前記境界を越えたとき、相手を攻撃中または攻撃の構え中であった場合、若しくは、相手から攻撃を受けたときであった場合には、前記移動を許可しないと判定することを特徴とする。
【0018】
上記発明では、キャラクタが上の地面の境界を越えたとき、この境界を越えた移動を許可するか否かを判断し、ゲーム進行上好ましくないと判断した場合には、キャラクタを上の地面に押し戻し、ゲーム進行上支障がないと判断した場合には、この移動を許可して、移動した結果としてキャラクタを下の地面に落下させる。キャラクタの移動を許可して下の地面に落下させることがゲーム進行上好ましくない場合とは、たとえば、遊技者がキャラクタを飛び降りさせようとしていないと思われる場合やゲームの構成上キャラクタが落下することを想定していない場合等である。具体的には、遊技者がキャラクタを崖に向かって真っ直ぐ進ませてきて境界を越えた場合には、キャラクタを飛び降りさせる意思があると判断し、遊技者がキャラクタを崖に沿って移動させているときに境界を越えた場合には、キャラクタを飛び降りさせる意思がないと判断する。また、遊技者がキャラクタに攻撃や攻撃の構えをさせているときに境界を越えた場合にも、キャラクタを飛び降りさせる意思がないと判断する。また、キャラクタが相手の攻撃を受けてダメージを受けているときに境界を越えた場合には、ペナルティとして落下させないようにする。これにより、遊技者が自然な操作でキャラクタを上の地面から飛び降りさせることができ、且つキャラクタを飛び降りさせることがゲーム進行上好ましくない場合にはその落下を防止することができる。
【0019】
なお、境界に対するキャラクタ自身の外縁(キャラクタのアタリ)が大きさを持つとき(後述の請求項6のように点または線の仮想重心でないとき)、キャラクタが境界を越えたことの判定は、「キャラクタの端部が境界に接したこと」、または、「キャラクタの一部が境界の反対側に出たこと」、のいずれに基づいて判定してもよい。「キャラクタの端部が境界に接した」ことをもってキャラクタが境界を越えたと判定するようにした場合には、図12(A)に示すように、押し戻し手段は「キャラクタを境界内の位置に強制的に移動させる」処理として、「キャラクタを境界に接しない内側の位置に移動させる」処理を行えばよい。また、「キャラクタの一部が境界の反対側に出たこと」ことをもってキャラクタが境界を越えたと判定するようにした場合には、図12(B)に示すように、押し戻し手段は「キャラクタを境界内の位置に強制的に移動させる」処理として、「キャラクタの端部が境界に接する位置まで移動させる」処理または「キャラクタを境界に接しない内側の位置まで移動させる」処理を行えばよい。
【0020】
請求項6の発明は、請求項1〜5の発明において、前記検出手段は、前記キャラクタに(キャラクタのアタリとして)仮想重心を設定し、この仮想重心が前記境界を越えたとき、前記キャラクタが前記境界を越えたとする手段であることを特徴とする。
【0021】
なお、請求項6の発明におけるキャラクタ(仮想重心)が境界を越えたことの判定は、「仮想重心が境界上にあること」、または、「仮想重心が境界の反対側に出たこと」のいずれに基づいて判定してもよい。「仮想重心が境界にある」ことをもってキャラクタが境界を越えたと判定するようにした場合には、図13(A)に示すように、押し戻し手段は「キャラクタを上の地面の境界内の位置に強制的に移動させる」処理として、「仮想重心が境界に接しない位置までキャラクタを移動させる」処理を行えばよい。また、「仮想重心が境界の反対側に出たこと」ことをもってキャラクタが境界を越えたと判定するようにした場合には、図13(B)に示すように、押し戻し手段は「キャラクタを上の地面の境界内の位置に強制的に移動させる」処理として、「仮想重心が境界に接する位置までキャラクタを移動させる」処理または「仮想重心が境界に接しない位置までキャラクタを移動させる」処理を行えばよい。
【0022】
請求項7の発明であるプログラムは、コンピュータを、相互に高低差のある複数の地面を有するゲーム空間を生成するゲーム空間生成手段、前記ゲーム空間において、キャラクタを前記複数の地面を行き来させて活動させる手段、上の地面の下の地面に対する境界を設定するとともに、前記キャラクタに(キャラクタのアタリとして)仮想重心を設定し、前記上の地面で活動しているキャラクタの前記仮想重心が前記上の地面の境界を越えたことを検出する検出手段、前記検出手段が前記キャラクタの仮想重心が前記境界を越えたことを検出したとき、前記ゲーム空間において、前記キャラクタを前記下の地面に落下させ、または、前記キャラクタを前記上の地面上の前記境界内の位置に強制的に移動させるキャラクタ制御手段、として機能させることを特徴とする。
【0023】
請求項8の発明は、請求項7の発明において、前記コンピュータを、さらに、下の地面の境界を設定するとともに、前記キャラクタに(キャラクタのアタリとして)その外観形状を内包する立体の境界を設定し、前記下の地面で活動しているキャラクタの境界の一部または全部が前記下の地面の境界を越えたことを検出する第2の検出手段、前記第2の判定手段が前記キャラクタの境界の一部または全部が前記下の地面の境界を越えたことを検出したとき、前記ゲーム空間において、前記キャラクタを前記下の地面の境界内の位置に強制的に移動させる押し戻し手段、として動作させることを特徴とする。
【0024】
請求項9の発明は、請求項8の発明において、前記第2の判定手段は、前記キャラクタの姿勢に応じて、その姿勢における外観形状を内包する形状に前記立体の境界の形状を変化させることを特徴とする。
【0025】
以上の発明により、上の地面の端部(崖)においては、キャラクタの仮想重心が上の地面の境界を越えたときに、このキャラクタを落下させるまたは押し戻す処理を行うため、キャラクタの一部が境界を越えたのみで上記処理が行われることがなく、キャラクタ全体が崖の内側に納まるように押し戻されるような(さも壁があるかのような)不自然な処理が行われることがなくなる。また、壁ぎわの処理(壁アタリ処理)と崖ぎわの処理(崖アタリ処理)とを別々の処理としたことにより、それぞれの場所においてキャラクタの位置制御が自然になり、リアルなゲーム進行が可能になる。
【0026】
なお、請求項7の発明におけるキャラクタ(仮想重心)が境界を越えたことの判定は、「仮想重心が境界上にあること」、または、「仮想重心が境界の反対側に出たこと」のいずれに基づいて判定してもよい。「仮想重心が境界にある」ことをもってキャラクタが境界を越えたと判定するようにした場合には、図13(A)に示すように、キャラクタ制御手段は「キャラクタを上の地面の境界内の位置に強制的に移動させる」処理として、「仮想重心が境界に接しない位置までキャラクタを移動させる」処理を行えばよい。また、「仮想重心が境界の反対側に出たこと」ことをもってキャラクタが境界を越えたと判定するようにした場合には、図13(B)に示すように、キャラクタ制御手段は「キャラクタを上の地面の境界内の位置に強制的に移動させる」処理として、「仮想重心が境界に接する位置までキャラクタを移動させる」処理または「仮想重心が境界に接しない位置までキャラクタを移動させる」処理を行えばよい。
【0027】
請求項10の発明である記憶媒体は、請求項1乃至請求項9のいずれかに記載のプログラムが記録されていることを特徴とする。
【0028】
請求項11の発明であるコンピュータは、請求項1乃至請求項9のいずれかに記載のプログラムが実行されることを特徴とする。
【発明の効果】
【0029】
この発明によれば、自然な操作でキャラクタを上の地面から飛び降りさせることができ、且つキャラクタを飛び降りさせることがゲーム進行上好ましくないと判断される場合には、キャラクタが上の地面から外れた場合でも飛び降りさせないようにすることができる。
【0030】
また、この発明によれば、崖ぎわにおけるキャラクタの移動や活動をより自然にすることができる。
【発明を実施するための最良の形態】
【0031】
図面を参照してこの発明の実施形態であるゲーム装置およびゲームプログラムについて説明する。この実施形態では、3Dアクションゲームを例にあげて説明する。3Dアクションゲームは、ゲーム画面に表示されるゲームステージ内に高低差のある複数の地面が設けられており、キャラクタが上の地面から下の地面に飛び降りたり、下の地面から上の地面によじ登ったりして活動することができるゲームである。
【0032】
高低差のある複数の地面とは、たとえば、崖の上と崖の下(谷)、屋根と道等であり、上の地面、下の地面のどちらでもキャラクタが活動することができる。以下の説明において、上の地面の下の地面に対する境界を「崖」と言い、下の地面の(上の地面に対する)境界を「壁」と言う。
【0033】
このゲームでは、キャラクタが崖から出たとき、すなわち上の地面のない位置に移動したとき、キャラクタを下の地面に落下させるべきか否かを判断し、落下させるべきと判断した場合には、飛び降りのアクションでキャラクタを下の地面に落下させる。一方、落下させるべきでないと判断した場合には、キャラクタの位置を上の地面の端(崖)に強制的に修正して(押し戻して)キャラクタを落下させない(崖アタリ処理)。キャラクタを落下させるべきでないと判断するのは、キャラクタが崖から出たのが遊技者の操作ミスに基づくものであると推定される場合、相手の攻撃によるダメージを受けて移動してきた場合等である。
【0034】
≪ゲーム装置の構成≫
図1は、この発明が適用されるゲーム装置の外観を示す図である。
このゲーム装置は、ゲーム装置本体500にコントローラ200が接続されて構成されている。コントローラ200は、遊技者によって操作される。遊技者は、このコントローラ200を用いて、ゲーム中に登場するメインキャラクタ等を操作する。また、ゲーム装置本体500には、表示装置・オーディオ装置として機能するテレビジョン408が接続される(図2参照)。
【0035】
ゲーム装置本体500には、ゲームプログラムが記録された記録媒体411がセットされるトレイ501を有している。記録媒体411は、たとえばDVD(digital versatile disc)である。ゲーム装置本体500は、この記録媒体411からゲームプログラムを読み取って、このプログラムを実行する。なお、このゲーム装置本体500は、上記ゲームプログラム処理機能のほか、DVDビデオの再生、CDDA(compact disc digital audio)の再生等を実行することもできる。
【0036】
また、装置前面には、コントローラ200が接続されるコネクタ510、フラッシュメモリからなるカード型の外部メモリ415(図2参照)がセットされるメモリスロット511が、それぞれ2つずつ設けられている。
【0037】
図2は、ゲーム装置本体500の内部構成を示すブロック図である。
ゲーム装置本体500は、装置全体の動作を制御するCPU401を有している。このCPU401に対してRAM402およびバス403が接続される。RAM402には、ゲームの進行に応じて各種のデータが記憶される。
【0038】
バス403には、グラフィック・プロセッサ・ユニット(GPU)404、インプット・アウトプット (I/O)ポート409が接続される。GPU404には、デジタル映像信号をNTSCテレビ ジョン方式やPALテレビジョン方式に変換するためのデコーダ407を介して、外部機器であるテレビジョン(TV)408が、接続される。
【0039】
I/Oポート409には、光ディスクである記録媒体411に記録されているデータを再生し、デコードするためのドライバ(DRV)410,サウンド・プロセッサ(S・P)412、フラッシュメモリからなる外部メモリ415、コントローラ200およびROM416が接続される。
【0040】
ROM416には、このゲーム装置本体500を起動するとともに基本的な機能を実現するためのシステムプログラムが記憶されている。外部メモリ415には、遊技者の情報や実行しているゲームの途中経過等が記憶される。遊技者は、ゲームプログラムを記憶した記憶媒体411と自己の外部メモリ415をセットすることにより、途中で中断したゲームを、その中断したタイミングから再開することができる。
【0041】
サウンド・プロセッサ412は、増幅器413を介して、外部機器であるスピーカ414に接続される。このスピーカ414は、一般的には、上記テレビジョン408に内蔵されているスピーカである。
【0042】
図3は、コントローラ200の外観を示す平面図である。
コントローラ200は、略コ字形をしており、遊技者が両翼部の201L,201Rを左右両手で把持して操作する。コントローラ200の左右上面には操作ボタン群210、220、アナログスティック212、222が設けられており、コントローラ200の右前面にはR1ボタン211、左前面にはL1ボタン221がそれぞれ設けられている。操作ボタン群210、220は、それぞれ遊技者の右手親指、左手親指で操作される。また、R1ボタン211、L1ボタン221は、それぞれ遊技者の右手人指し指、左手人指し指で操作される。
【0043】
右側の操作ボタン群210は、4個の操作ボタン210A〜210Dを備えている。操作ボタン210A〜210Dには、識別を容易にするために頭部に各々「△」「○」「×」「□」の識別マークが付されている。このゲーム装置で実行されるゲームにおいて、この操作ボタン群210は、主として、ゲーム中に登場するメインキャラクタに特定の動作をさせるためのボタンとして設定される。特定の動作とは、たとえば、技をくり出す、ジャンプする等である。ゲーム「DEVIL MAY CRY(登録商標)4」では、操作ボタン群210の各ボタンおよびR1ボタン211、L1ボタン221は、メインキャラクタに各種の行動を行わせるためのボタンとして機能する。遊技者によって△ボタン210Aや○ボタン210Bがオンされると、前記CPU401の制御により、ゲーム中のメインキャラクタは、剣を振ったり銃を撃つ等の攻撃技をくり出して敵キャラクタを攻撃する。また、遊技者によって×ボタン210Cがオンされると、前記CPU401の制御により、メインキャラクタがジャンプする。また、遊技者によってR1ボタン211がオンされると、CPU401の制御により、ゲーム中のメインキャラクタは、武器を構える構えモーションとなる。
【0044】
また、左側の操作ボタン群220は、前後左右に十字型に組み合わされた4個の操作ボタンを備えている。アナログスティック212、222は、前後左右を含む360度の方向に傾倒可能なスティックを有する操作子である。アナログスティック212、222が、遊技者によって操作されると、その操作による傾倒方向及び傾倒度合いに応じた操作量データがコントローラ200から出力される。前記ゲームにおいて、左アナログスティック222が、メインキャラクタの移動動作を制御するための操作子として設定される。遊技者がアナログスティック222を前に倒すとメインキャラクタが前に移動する。その倒す角度が大きいほど移動速度が早くなる。すなわち、倒す角度が小さいときは歩きモーションで移動し、倒す角度が大きいときは走りモーションで移動する。アナログスティック222を前以外の方向に倒すと、メインキャラクタはその倒した方向に移動する。
【0045】
また、遊技者が、複数の操作子を所定の組み合わせで操作すると、メインキャラクタに特殊な動作をさせることができる。たとえば、遊技者が、R1ボタン211をオンしながら左アナログスティック222を操作すると、メインキャラクタは、武器を構えた姿勢で移動する(構え歩き)。また、この構え歩きの操作状態でさらに△ボタン210Aをオンすると、メインキャラクタは、ジャンプして移動しつつ武器を何度か振り下ろす「ハイタイムジャンプ」という技をくり出す。
【0046】
≪アタリ処理の説明≫
次に図4〜図10を参照してこの実施形態のゲームにおける壁や崖のアタリ処理について説明する。
ここで、一般的に、アタリとは、ゲーム空間に存在する各オブジェクトが占有する排他的な空間を言い、アタリ処理とは、ゲーム空間において複数のオブジェクトのアタリが接触したことに基づいて、オブジェクト同士の接触を検出する処理である。この実施形態のゲームでは、さらにオブジェクトとして存在しない上の地面の下の地面に対する境界(崖)にもアタリ(崖アタリ)を設定し、キャラクタのアタリがこの崖アタリを越えたことに基づいて、キャラクタが崖の外へ移動したことを検出している。また、このゲームでは、キャラクタと崖アタリとのアタリ処理に、一般的な形状である排他的な空間のアタリに代えて、仮想重心をアタリとして用いている。
【0047】
以下の説明では、ゲーム空間に設定された境界面(壁アタリ、崖アタリ)、および、キャラクタに設定された排他空間(壁に対するキャラクタアタリ)および仮想重心(崖に対するキャラクタアタリ)を用いて、キャラクタが壁の中や崖の外に移動したことを検出し、そのキャラクタの位置を強制的に壁の外や崖の内側に移動させる位置修正処理について説明する。
【0048】
図4は、ゲーム画面における壁アタリ、崖アタリの例を示す図である。洞窟を表現したゲーム空間に、小屋50、やぐら51等の建造物が設置されており、各建造物50、51の壁面および洞窟の岩盤面にキャラクタをそれより内側に進入させない境界面である壁アタリ20が設定されている。建造物の壁面や洞窟の岩盤面は複雑な表面形状をしているため、この表面形状をそのままキャラクタの進入に対する境界として用いるとCPU401の処理が過大になる。そこで、建造物の壁面や洞窟の岩盤面の表面形状とは別に、これらを簡略化した壁アタリ20を設定して処理を簡略化している。なお、この壁アタリ20は、ゲーム画面には表示されない。
【0049】
そして、各建造物50、51の上方に、崖アタリ21が設定されている。上の地面すなわち崖の上や建造物50、51の上で活動しているキャラクタが上の地面から外れたか否かの判定を容易にするため、上の地面の下の地面に対する境界(崖)には、その境界から上方に伸びる境界面である崖アタリ21が設定されている。この崖アタリ21も、ゲーム画面には表示されない。
【0050】
これに対して、キャラクタ10には、図5に示すように、壁アタリ20に対するカプセル状のキャラクタアタリ11および崖アタリ21に対する線状(または点状)のキャラクタアタリ12の2種類が設定される。
【0051】
キャラクタ10が、壁に向かって移動してきたとき、壁アタリ20と壁に対するキャラクタアタリ11が重ならないように、すなわちキャラクタ10が壁に埋まらないようにキャラクタ10の位置が強制的に修正される。
【0052】
また、キャラクタが崖に向かって移動してきて、崖に対するキャラクタアタリ12が崖アタリ21を越えたとき、そのときのキャラクタ10の動作等に応じてキャラクタ10の動作を制御する。すなわち、その移動を許可してキャラクタ10を崖の外に移動させ、その結果下の地面に落下させると判断した場合には、崖アタリ21を越えた位置のまま崖下(下の地面)にキャラクタ10を落下させる。また、キャラクタ10の移動を許可しないと判断した場合には、キャラクタアタリ12が崖アタリ21を越えない位置までキャラクタ10の位置を強制的に修正する。
【0053】
図5(B)および図6は、壁ぎわのアタリ処理を説明する図である。図5(B)に示すように、壁ぎわにおける壁アタリ20に対するアタリ処理のために、キャラクタ10に対してその外観形状を内包させて簡略化したカプセル状のキャラクタアタリ(排他空間)11が設定される。図5(B)の状態を平面から見た図が図6(A)である。図示のようにキャラクタアタリ11は、キャラクタ10を内包する簡略なカプセル状になっている。キャラクタ10は、非常に複雑な表面形状をしているため、この表面形状をそのまま壁面との衝突を判断するオブジェクトとして用いるとCPU401の処理が過大になるため、この外観形状とは別に、外観形状を内包し且つ形状を簡略化したキャラクタアタリ11が設定されている。なお、このキャラクタアタリ11の形状は、キャラクタ10のモーションの変化すなわち外観形状の変化に連動して変化するようになっている。また、このキャラクタアタリ11は、ゲーム画面には表示されない。
【0054】
キャラクタ10が、遊技者の移動操作や敵の攻撃によって飛ばされたことにより壁ぎわへ移動し、キャラクタアタリ11の一部が壁アタリ20に当たったとき、キャラクタアタリ11が壁アタリ20の内側になるようにキャラクタ10を押し戻して位置を修正する(図6(B))。これにより、キャラクタ10が壁に埋まってしまうことを防止している。
【0055】
また、上述したように、壁アタリ20に対するキャラクタアタリ11は、キャラクタの外観形状に応じて変化する。キャラクタの外観形状は、動作状態(モーション)応じた形態に描画形成される。すなわち、歩きモーション時には、キャラクタは歩いているような外観形状に形成される。構えモーション時には、キャラクタは武器を構えているような外観形状に形成される。攻撃モーション時には、キャラクタは相手を攻撃する技をくり出している姿勢の外観形状に形成される。このようなキャラクタの外観形状の変化に合わせてキャラクタアタリの形状も変化する。図6(C)は、通常の歩きモーション時のキャラクタの形状10とキャラクタアタリ11とを模式的に示す図である。一方、図6(D)は、他のモーション(構えモーション等)に変化したときのキャラクタの形状10とキャラクタアタリ11′とを模式的に示す図である。図6(C)に示すように、キャラクタ10が歩きモーションの場合には、キャラクタアタリ11が小さいため壁アタリ20に達しないが、図6(D)に示すように、キャラクタ10が他のモーションに変化すると、キャラクタアタリ11′の形状が変化して大きくなり、壁アタリ20に重なる場合がある。この場合には、キャラクタアタリ11が壁アタリ20と重ならないように、キャラクタ10を強制的に移動させる(図6(E))。これにより、構え,攻撃等の他のモーションをしているキャラクタ10が壁に埋まらないようにすることができる。
【0056】
次に、図5(A)および図7は、崖ぎわのアタリ処理を説明する図である。図5(A)に示すように、崖ぎわにおける崖アタリ21に対するアタリ処理のために、キャラクタ10に対して仮想重心としてキャラクタ10のほぼ中心に線状のキャラクタアタリ12が設定される。なお、このキャラクタアタリ12は点状であってもよい。図5(A)の状態を平面から見た図が図7(A)である。図示のように、キャラクタ10の外観形状のほぼ中心に線状(平面から見ると点状の)キャラクタアタリ12が設定されている。遊技者による移動操作や敵の攻撃によって飛ばされたことにより、図7(B)に示すようにキャラクタアタリ12が崖アタリ21を越えたとき、キャラクタ10のこの移動を許可するか否か、すなわち、キャラクタ10を崖から落下させるか否かは、後述の落下判定ルールによって決定される。落下判定ルールに基づき、キャラクタ10の移動を許可する、すなわち、キャラクタ10を落下させると決定された場合には、図7(B)の状態から、キャラクタは下の地面に落下する。図8は、実際のゲームにおいて、キャラクタ10が落下している状態、すなわち、キャラクタ10が小屋50の屋根から下に飛び降りている状態を示す図である。一方、落下判定ルールに基づき、キャラクタを落下させないと決定された場合には、図7(B)の状態から、キャラクタが崖から外れないように、キャラクタアタリ12が崖アタリ21に接する位置までキャラクタ10を押し戻して位置を修正する。
【0057】
また、キャラクタアタリ12が線状(または点状)であるため、図7(C),(D)に示すように、キャラクタ10の外観形状が歩きモーションから他のモーション(たとえば攻撃モーション)に変化した場合でも、キャラクタアタリの形状は変化しない。したがって、崖際で構えモーションをしたことにより腕が崖の外に出た場合に、壁アタリの場合のように、キャラクタが強制的にアタリの内側へ移動されてしまうということがなくなる。
【0058】
図9は、屋根の上(崖ぎわ)でキャラクタ10が銃を構えている動作である。この図のように、銃および服の一部が屋根から外れているが、このキャラクタ10の仮想重心であるキャラクタアタリがこの屋根に設定されている崖アタリの内側にあるため、キャラクタ10は下に落下したり、屋根の内側に押し戻されたりしていない。
【0059】
すなわち、壁アタリ処理の場合には、伸ばした腕が壁に埋まっては不自然であるため、腕が壁の外になるようにキャラクタを強制的に移動させることが好ましい。したがって、壁アタリ処理の場合には、キャラクタアタリをキャラクタの外観形状を内包するカプセル状としている。一方、崖アタリ処理の場合には、キャラクタの重心が崖から外れると落下させるべきであるが、腕や服の一部だけが崖の外に出ても問題はない。このため、崖アタリ処理の場合には、キャラクタアタリの形状を仮想重心の線状または点状としている。これにより、崖アタリ処理と壁アタリ処理とでそれぞれのアタリに適した処理を可能にしている。
【0060】
そして、崖アタリ処理の場合、キャラクタアタリ12が崖アタリ21を越えたとき、そのキャラクタ10の移動を許可するか否か、すなわち、そのキャラクタ10を崖から落下させるか否かを、遊技者の操作意図およびゲームにおける場面に基づいて判定する。この判定のためのルール(落下判定ルール)は以下のとおりである。
【0061】
キャラクタアタリ12が崖アタリ21を越えたとき;
(1)構え歩き中ならば落下させない。
(2)攻撃モーション中ならば落下させない。
(3)相手から押されてきた場合には落下させない。
(4)攻撃を受けてダメージを受けている間(のけぞり中)ならば落下させない。
(5)攻撃を受けて飛ばされて空中にいるとき(ぶっ飛び)ならば落下させる。
(6)特定の攻撃モーション(ハイタイムジャンプなど)ならば落下させる。
(7)自分から(遊技者の操作で)ジャンプした場合には落下させる。
(8)自分から落ちようと移動(歩き,走り)していた場合には落下させる。
(9)自分から落ちようとしないで移動していた場合には落下させない。
【0062】
(1),(2)は、構え歩き中や攻撃モーション中に崖から落下すると、ゲーム本来の目的である戦闘が中断してしまうため、このような場合には、遊技者が操作誤ってキャラクタを崖の外に移動させても落下させないようにしている。(3)も同様に、相手から押される場面は、相手キャラクタとの戦闘中であるため、キャラクタを落下させないようにしている。
【0063】
また、(4)の場合には、相手の攻撃を受けてダメージを受けている時間帯(のけぞり中)は、ゲームにおいて、攻撃を受けたことに対するペナルティとして設定されており、攻撃、防御ができない状態になっている。このとき、落下を許すと、このペナルティから逃れられてしまうため、この間は落下を許可しないようにしている。ただし、(5)の攻撃を受けて大きく飛ばされる「ぶっ飛び」は、ゲームにおいて、攻撃を受けたキャラクタを相手キャラクタから離す意図で設けられている。したがって、このときに落下を許可してもゲームの趣旨から大きく外れることがないため、落下を許可している。
【0064】
また、(6)〜(9)は、遊技者の操作意思を推測してその意思に合わせて落下させるか否かを決定している。このうち、(8),(9)の自分から落ちようと移動しているか、落ちようとしないで移動しているかの判定は、キャラクタアタリ12の崖アタリ21に進入した角度によって行う。すなわち、図10に示すように、キャラクタアタリ12の崖アタリ21への進入角度がしきい値角度θ0 以上の(垂直に近い)場合には、キャラクタ10を落下させ、進入角度がθ0 よりも小さい場合には、キャラクタ10を落下させない。これは以下の理由による。キャラクタ10が崖に向かってまっすぐ進入した場合には、遊技者がキャラクタ10を崖から飛び降りさせようと操作していると考えられるため、キャラクタ10を落下させる。一方、キャラクタ10が崖に斜めに進入した場合には、遊技者がキャラクタ10を崖に沿って移動させようとしたが、誤って崖を踏み越えてしまったと考えられるため、キャラクタ10を落下させずに崖(崖アタリ21)に沿って移動させる。
【0065】
図11は、崖ぎわのアタリ処理を示すフローチャートである。ゲームプログラムにおけるアタリ処理を示すフローチャートである。まずS1でキャラクタ10のキャラクタアタリ12が崖アタリ21を越えたかを判定する(S1)。越えたと判定されるまでS1で待機する。キャラクタアタリ12が崖アタリ21を越えると(S1でYES)、そのキャラクタ10が地上にいるかを判断する(S2)。ジャンプしている場合および攻撃によって飛ばされている場合には(S2でNO)、上記落下判定ルールに基づいてキャラクタ10を落下させるため、S5に進んで、崖アタリ21の通過を許可してキャラクタ10を下の地面に落下させる。
【0066】
一方、キャラクタ10が地上にいる場合には(S2でYES)、そのキャラクタが通常の歩きまたは走りのモーション中であるかを判断する(S3)。通常の歩き,走りのモーションでない場合には(S3でNO)、上記落下判定ルールに基づきキャラクタ10の崖アタリ21の通過を不許可とし、キャラクタアタリ12が崖アタリ21に接する位置までキャラクタ10を押し戻す(S6)。これにより、キャラクタ10は下の地面へ落下しない。
【0067】
キャラクタ10が通常の移動動作である歩きモーションまたは走りモーションで崖アタリ21へ進入してきた場合には(S3でYES)、その進入角度を判断する(S4)。進入角度が上記θ0 以 上の場合には、崖下に飛び降りるための移動であると判断して、崖アタリ21の通過を許可し、キャラクタ10を下の地面に落下させる(S5)。一方、進入角度がθ0 未満の場合には飛び降りるた めの移動ではないと判断して、キャラクタ10の崖アタリ21の通過を不許可とし、キャラクタアタリ12が崖アタリ21に接する位置までキャラクタ10を押し戻す(S6)。これにより、キャラクタ10は下の地面へ落下しない。
【0068】
これにより、遊技者の意図やゲームが想定する進行にあった崖アタリ処理を行うことができる。
【0069】
なお、この実施形態では、壁アタリ20の処理においては、キャラクタアタリ11が壁アタリ20に接したときアタリ処理を行い、崖アタリ21の処理においては、キャラクタアタリ12が崖アタリ21を越えたときアタリ処理を行うようにしているが、キャラクタアタリ11の一部が壁アタリ20を越えたときアタリ処理を行うようにしてもよく、また、キャラクタアタリ12が崖アタリ21に接したときアタリ処理を行うようにしてもよい。
【0070】
なお、上記実施形態では、主として遊技者によって操作されるメインキャラクタのアタリ処理について説明したが、メインキャラクタと対決する敵キャラクタについても上記と同様の落下判定ルールを適用してアタリ処理をすることが可能である。
【0071】
なお、崖アタリに対応するキャラクタアタリは、キャラクタ10の仮想重心に限定されない。すなわち、キャラクタ10の位置制御が不自然にならない範囲でキャラクタ内またはキャラクタ近傍の任意の線または点に設定することが可能である。
【0072】
なお、壁アタリに対応するキャラクタアタリは、カプセル形状に限定されない。すなわち、キャラクタ10がほぼ包含される形状であれば直方体、球またはこれらを組み合わせた立体に設定することが可能である。
【0073】
また、キャラクタの活動状態に応じて通過を許可するか否かの判定対象となるアタリは、崖アタリに限定されない。たとえば、壁またはその他のオブジェクトであっても、キャラクタが特定の活動状況であった場合には、アタリの通過を許可して、そのオブジェクトの反対側またはそのオブジェクトの内側にキャラクタを進行させるようにしてもよい。
【図面の簡単な説明】
【0074】
【図1】この発明が適用されるゲーム装置の外観図
【図2】ゲーム装置本体の内部構成を示すブロック図
【図3】ゲーム装置のコントローラの構造を示す平面図
【図4】壁アタリおよび崖アタリを説明する図
【図5】壁アタリ、崖アタリとキャラクタアタリの対応を説明する図
【図6】壁アタリ処理を説明する図
【図7】崖アタリ処理を説明する図
【図8】ゲームにおいて、メインキャラクタが上の地面(屋根)から飛び降りている場面を示す図
【図9】ゲームにおいて、メインキャラクタが上の地面(屋根)の端で武器を構えた状態を示す図
【図10】キャラクタの崖アタリへの進入角度に基づく落下判定ルールを説明する図
【図11】崖アタリ処理の手順を示すフローチャート
【図12】キャラクタの境界処理の方式を説明する図
【図13】キャラクタの境界処理の方式を説明する図
【符号の説明】
【0075】
10,10′ キャラクタ
11,11′ (壁アタリに対する)キャラクタアタリ
12 (崖アタリに対する)キャラクタアタリ
20 壁アタリ
21 崖アタリ
500 ゲーム装置本体
200 コントローラ
401 CPU
402 RAM
210A △ボタン
211 R1ボタン
221 左アナログスティック

【特許請求の範囲】
【請求項1】
コンピュータを、
相互に高低差のある複数の地面を有するゲーム空間を生成するゲーム空間生成手段、
前記ゲーム空間において、キャラクタを前記複数の地面を行き来させて活動させる手段、
上の地面の下の地面に対する境界を設定し、前記上の地面で活動しているキャラクタがこの境界を越えたことを検出する検出手段、
前記検出手段により、前記キャラクタが前記境界を越えたことが検出されたとき、このキャラクタの前記境界を越えた移動を許可するか否かを判定する判定手段、
前記判定手段が移動を許可しない旨の判定をしたとき、前記ゲーム空間において、前記キャラクタを前記上の地面上の前記境界内の位置に強制的に移動させる押し戻し手段、
前記判定手段が移動を許可する旨の判定をしたとき、前記ゲーム空間において、その移動した位置における処理として、前記キャラクタを前記下の地面に落下させる手段、
として機能させるプログラム。
【請求項2】
前記判定手段は、前記キャラクタが前記境界を越えたときの前記活動の態様に基づいて前記移動を許可するか否かを判定する請求項1に記載のプログラム。
【請求項3】
前記判定手段は、前記キャラクタが、前記境界に進入した角度に基づいて前記移動を許可するか否かを判定する請求項1に記載のプログラム。
【請求項4】
前記判定手段は、前記キャラクタが、前記境界を越えたとき、上の地面上に居たか、上の地面の上を飛んでいたかに応じて前記移動を許可するか否かを判定する請求項1に記載のプログラム。
【請求項5】
前記判定手段は、前記キャラクタが、前記境界を越えたとき、相手を攻撃中または攻撃の構え中であった場合、若しくは、相手から攻撃を受けたときであった場合には、前記移動を許可しないと判定する請求項1に記載のプログラム。
【請求項6】
前記検出手段は、前記キャラクタに仮想重心を設定し、この仮想重心が前記境界を越えたとき、前記キャラクタが前記境界を越えたとする手段である請求項1乃至請求項5のいずれかに記載のプログラム。
【請求項7】
コンピュータを、
相互に高低差のある複数の地面を有するゲーム空間を生成するゲーム空間生成手段、
前記ゲーム空間において、キャラクタを前記複数の地面を行き来させて活動させる手段、
上の地面の下の地面に対する境界を設定するとともに、前記キャラクタに仮想重心を設定し、前記上の地面で活動しているキャラクタの前記仮想重心が前記上の地面の境界を越えたことを検出する検出手段、
前記検出手段が前記キャラクタの仮想重心が前記境界を越えたことを検出したとき、前記ゲーム空間において、前記キャラクタを前記下の地面に落下させ、または、前記キャラクタを前記上の地面上の前記境界内の位置に強制的に移動させるキャラクタ制御手段、
として機能させるプログラム。
【請求項8】
前記コンピュータを、さらに、
下の地面の境界を設定するとともに、前記キャラクタにその外観形状を内包する立体の境界を設定し、前記下の地面で活動しているキャラクタの境界の一部または全部が前記下の地面の境界を越えたことを検出する第2の検出手段、
前記第2の判定手段が前記キャラクタの境界の一部または全部が前記下の地面の境界を越えたことを検出したとき、前記ゲーム空間において、前記キャラクタを前記下の地面の境界内の位置に強制的に移動させる押し戻し手段、
として動作させる請求項7に記載のプログラム。
【請求項9】
前記第2の判定手段は、前記キャラクタの姿勢に応じて、その姿勢における外観形状を内包する形状に前記立体の境界の形状を変化させる請求項8に記載のプログラム。
【請求項10】
請求項1乃至請求項9のいずれかに記載のプログラムが記録されたコンピュータ読み取り可能な記憶媒体。
【請求項11】
請求項1乃至請求項9のいずれかに記載のプログラムが実行されるコンピュータ。

【図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