説明

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

【課題】 障害物が配置されている場合であっても、円滑に移動体を移動させて総ての標的のみを貫通・破壊することができるような制御を実現すること。また、標的が移動する場合であっても、処理負荷に問題を生じることなく上記制御を実現すること。
【解決手段】 ロックオンした敵キャラクタEについて、ビームの発射点P0との関係を基にビームの通過順を決定し、決定した通過順に従って各敵キャラクタEの位置に設定した通過点Pを結ぶ曲線の軌道を生成する。次いで、この軌道と障害物Dとの衝突(交差)を判定し、衝突すると判定した区間Sについては、該衝突を判定した障害物Dの周辺に回避通過点Rを設定して、この回避通過点Rを通る回避用軌道を生成する。そして、この軌道(回避用軌道が生成された区間については、この回避用軌道)に沿って、移動体であるビームを進ませる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ゲーム空間を移動する移動体を制御して、該ゲーム空間の画像を生成するゲーム装置等に関する。
【背景技術】
【0002】
プレーヤの操作入力に応じて移動体の移動を制御するゲームとして例えば球技スポーツゲームやシューティングゲーム等がある。球技スポーツゲームは、大凡の移動方向をプレーヤが操作入力して、その入力された方向に沿って移動体としてのボールを移動させるゲームである。また、シューティングゲームは、表示される照準等を利用してプレーヤが着弾位置を指定し、その指定された着弾位置に移動体としての弾丸を移動させるゲームである。
【0003】
しかし、何れのゲームも移動方向又は目標点を1つ定め、その定められた1つの移動方向又は目標点に向けて移動体を移動させるものであった。そこで、大量の敵オブジェクトを1つの移動体が連続して破壊する爽快感を得るための技術として、1つの飛翔体(移動体)でもって複数の敵オブジェクト(標的)を貫通(通過)させる特許文献1の技術が発明された。
【特許文献1】特許第3445867号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかしながら、特許文献1の技術は、ゲーム空間中に標的である敵オブジェクトのみが固定的に配置されている場合には問題なく適用できるが、敵オブジェクト以外のオブジェクトとして飛翔体の移動を阻害する障害物がゲーム空間中に配置されていた場合に問題が生じる。例えば、移動体が障害物に衝突した場合には破壊されてしまうとしても良いが、敵オブジェクトを連続して破壊しにくくなってしまう。一方、障害物を貫通するとしても良いが、その場合には障害物となったオブジェクトやキャラクタをも破棄されることとなり、プレーヤが予想できない結果をもたらし、興趣性に欠け、プレーヤのゲームへの没入感、世界観が削がれてしまいかねない。また、標的である敵オブジェクトがゲーム空間中を自由に移動するといった場合には、障害物に対する飛翔体の移動制御をどのようにするかによって、処理負荷が大きく変わることとなる。
【0005】
本発明は係る課題に鑑みてなされたものであり、その目的とするところは、障害物が配置されている場合であっても、円滑に移動体を移動させて総ての標的のみを貫通・破壊することができるような制御を実現することである。また、更なる目的は、標的が移動する場合であっても、処理負荷に問題を生じることなく上記制御を実現することである。
【課題を解決するための手段】
【0006】
上記課題を解決するための第1の発明は、
障害物及び標的体が配置されたゲーム空間を移動して前記標的体を貫通する移動体(例えば、図3のビームB)を制御するゲーム装置(例えば、図1,図13の業務用ゲーム装置1000)であって、
前記ゲーム空間中に複数の標的候補体(例えば、図2,図3の敵キャラクタE)を配置し、当該標的候補体の移動を制御する標的候補体制御手段(例えば、図13の敵キャラ制御部212;図19のステップTA13)と、
プレーヤの操作に従って前記標的候補体の中から標的体とする標的候補体を蓄積的に選択する標的体選択手段(例えば、図13の操作入力部100、ロックオンリスト452;図19のステップTA15〜TA25)と、
前記選択された各標的体の通過順序を決定する順序決定手段(例えば、図13のビーム制御部216;図21のステップTA213)と、
前記決定された通過順序に従って前記選択された各標的体を貫通させるように前記移動体の移動を制御する移動制御手段(例えば、図13のビーム制御部216;図20のステップTA115)と、
前記移動体と前記障害物との衝突を事前に判定する事前判定手段(例えば、図13のビーム制御部216;図12のステップTA111,TA123)と、
を備え、前記移動制御手段が、前記事前判定手段による判定に応じて前記移動体の移動を制御し、当該障害物との衝突を回避して移動させる回避制御手段(例えば、図13のビーム制御部216;図20のステップTA115)を有することを特徴とするゲーム装置である。
【0007】
また、第10の発明は、
コンピュータに、障害物及び標的体が配置されたゲーム空間を移動して前記標的体を貫通する移動体を制御させるためのプログラム(例えば、図13のゲームプログラム410)であって、
前記ゲーム空間中に複数の標的候補体を配置し、当該標的候補体の移動を制御する標的候補体制御手段、
プレーヤの操作に従って前記標的候補体の中から標的体とする標的候補体を蓄積的に選択する標的体選択手段、
前記選択された各標的体の通過順序を決定する順序決定手段、
前記決定された通過順序に従って前記選択された各標的体を貫通させるように前記移動体の移動を制御する移動制御手段、
前記移動体と前記障害物との衝突を事前に判定する事前判定手段、
として前記コンピュータを機能させるとともに、前記移動制御手段が、前記事前判定手段による判定に応じて前記移動体の移動を制御し、当該障害物との衝突を回避して移動させる回避制御手段を有するように前記コンピュータを機能させるためのプログラムである。
【0008】
この第1又は第10の発明によれば、移動体が、障害物及び標的体が配置されたゲーム空間を移動して標的体を貫通するゲームにおいて、複数の標的候補体の中から蓄積的に選択された標的体を、決定された通過順序で貫通するように移動体が制御されるが、このとき、移動体と障害物との衝突が事前に判定され、この判定に応じて移動体の移動が制御されて、障害物との衝突が回避される。従って、ゲーム空間に移動体の移動を阻害する障害物が配置されている場合であっても、この障害物を円滑に回避しつつ、選択された標的体を確実に貫通するような移動体の制御が実現される。
【0009】
この場合、第2の発明として、
前記移動制御手段が、前記選択された各標的体を前記決定された順序に従って結ぶ軌道を算出する軌道算出手段(例えば、図13のビーム制御部216;図22のステップTA311)を有し、算出された軌道に沿って前記移動体の移動を制御し、
前記事前判定手段が、前記算出された軌道と前記障害物との衝突を判定することで前記移動体と前記障害物との衝突を事前に判定する、
こととしても良い。
【0010】
この第2の発明によれば、選択された各標的体を決定された通過順序に従って結ぶ軌道が算出され、この軌道と障害物との衝突を判定することで、移動体と障害物との衝突が事前に判定される。従って、障害物との衝突反映を比較的簡単な演算で済ませることができるため、障害物を回避させる際の処理負荷を軽減させることができる。
【0011】
更に、第3の発明として、
前記軌道算出手段が、前記選択された各標的体を前記決定された順序に従って結ぶ曲線状の軌道を算出することとしても良い。
【0012】
この第3の発明によれば、選択された各標的体を決定された順序に従って結ぶ軌道として、曲線状の軌道が算出される。
【0013】
また、第4の発明として、第2又は第3の発明のゲーム装置において、
前記軌道算出手段が、前記標的候補体制御手段によって制御される前記標的候補体の位置変化に応じて、算出した軌道を補正するゲーム装置を構成しても良い。
【0014】
この第4の発明によれば、標的候補体の位置変化に応じて、算出された軌道が補正される。従って、標的体の位置が変化(移動)しても、この標的体を確実に貫通するような移動体の制御が実現される。
【0015】
また、第5の発明として、第1〜第4の何れかの発明のゲーム装置において、
前記回避制御手段が、前記事前判定手段により衝突すると判定された障害物を回避する軌道を算出する回避軌道算出手段(例えば、図13のビーム制御部216;図22のステップTA313)を有し、前記算出された回避用軌道に沿って前記移動体の移動を制御することで前記障害物を回避するゲーム装置を構成しても良い。
【0016】
この第5の発明によれば、衝突すると判定された障害物を回避する軌道が算出され、この回避用軌道に沿って移動の移動が制御される。従って、障害物との衝突を円滑且つ確実に回避するような移動体の制御が実現される。
【0017】
この場合、第6の発明として、
前記回避制御手段が、前記事前判定手段により衝突すると判定された障害物の周辺に回避通過点を設定する回避通過点設定手段(例えば、図13のビーム制御部216;図21のステップTA223,図23のステップTA421)を有し、
前記回避軌道算出手段が、前記回避通過点設定手段により設定された回避通過点を通過するように回避用軌道を算出する、
こととしても良い。
【0018】
この第6の発明によれば、衝突すると判定された障害物の周辺に回避通過点が設定され、この回避通過点を通過するように回避用軌道が生成される。
【0019】
更に、第7の発明として、
前記事前判定手段が、前記障害物における衝突位置を算出する衝突位置算出手段(例えば、図13のビーム制御部216;図21のステップTA219,図23のステップTA417)を有し、
前記回避通過点設定手段が、前記衝突位置算出手段により算出された衝突位置と、前記移動体の移動方向とに基づいて回避通過点の設定位置を決定する、
こととしても良い。
【0020】
この第7の発明によれば、障害物における衝突位置が算出され、この衝突位置と移動体の移動方向とに基づいて回避通過点の設定位置が決定される。従って、移動体の移動方向を考慮して回避通過点が設定されるので、衝突すると判定された障害物を自然且つ円滑に回避するような移動体の制御が実現される。
【0021】
また、第8の発明として、第1〜第7の何れかの発明のゲーム装置において、
前記移動制御手段が、プレーヤによる開始指示操作に応じて前記移動体の移動を開始し、
前記順序決定手段が、前記開始指示操作が入力された際に、前記選択された各標的体の位置関係に基づいて前記各標的体の通過順序を決定する、
ゲーム装置を構成しても良い。
【0022】
この第8の発明によれば、プレーヤによる開始指示操作に応じて移動体の移動が開始され、この開始指示操作が入力された際に、選択された各標的体の位置関係に基づいて通過順序が決定される。
【0023】
第9の発明は、第1〜第8の何れかの発明のゲーム装置において、
銃型コントローラ(例えば、図1のガン型コントローラ30)と、
前記銃型コントローラのゲーム画面に対する照準位置を検出する照準検出手段(例えば、図1のガン型コントローラ30が有するレンズやフォトセンサ、図13のロックオン管理部214;図19のステップTA19)と、
を更に備え、
前記標的体選択手段が、プレーヤによる開始指示操作が入力されるまでの間、前記照準検出手段により検出される照準位置に基づいて標的体とする標的候補体を蓄積的に選択する、
ゲーム装置である、
【0024】
この第9の発明によれば、ゲーム装置には銃型コントローラが備えられ、プレーヤによる開始指示操作が入力されるまでの間、この銃型コントローラのゲーム画面に対する照準位置に基づいて、標的体とする標的候補体が蓄積的に選択される。従って、例えばガンシューティングゲームにおいて、用いられる銃型コントローラを利用して、プレーヤは、簡単且つ効率的に標的体を選択することができる。
【0025】
更に、第11の発明は、第10の発明のプログラムを記憶するコンピュータ読取可能な情報記憶媒体である。
【0026】
ここでいう「情報記憶媒体」とは、記憶されている情報をコンピュータが読み取り可能な、例えばハードディスクやMO、CD−ROM、DVD、メモリカード、ICメモリ等の記憶媒体である。従って、この第11の発明によれば、該情報記憶媒体に記憶されている情報をコンピュータに読み取らせて演算処理を実行させることで、第10の発明と同様の効果を奏することができる。
【発明を実施するための最良の形態】
【0027】
以下、図面を参照して、本発明に好適な実施形態を説明する。尚、以下では、本発明を、ガンシューティングゲームを実行する業務用ゲーム装置に適用した場合を説明するが、本発明を適用可能な実施形態がこれに限定されるものではない。
【0028】
[ゲーム装置の外観]
図1は、本実施形態における業務用ゲーム装置1000の外観例を示す図である。同図に示すように、業務用ゲーム装置1000は、筐体の正面上部に設けられたゲーム画面を表示するディスプレイ10と、ゲームの効果音やBGMを出力するスピーカ20と、筐体とケーブルKによって接続された、プレーヤがゲーム操作を入力するためのガン型コントローラ30と、筐体内部に設けられた、演算処理によって業務用ゲーム装置1000を統合的に制御してシューティングゲームを実行するための制御ユニット40とを備えている。
【0029】
ガン型コントローラ30は、拳銃やライフルといった銃を模した形状を成しており、その銃口付近に内蔵するレンズやフォトセンサによってディスプレイ10上の照準位置を光学的に検出し、検出した位置座標を制御ユニット40に出力する。また、ガン型コントローラ30は、引き金32を有し、この引き金32が引かれているか否かを検出して、これを示すトリガ信号を制御ユニット40に出力する。尚、ガン型コントローラ30は、銃口方向の位置であるディスプレイ10上の照準位置が検出可能であり、引き金32によってトリガ信号を制御ユニット40に出力可能であれば、他の公知の構成によることとしても良い。
【0030】
制御ユニット40は、CPU等の演算処理装置と、業務用ゲーム装置1000の制御及びゲームの実行に必要なプログラムやデータ等が格納されたROMとを搭載している。演算処理装置は、ROMから読み出したプログラムやデータ、ガン型コントローラ30から入力される操作信号(照準位置座標やトリガ信号)等に基づいて種々のゲーム処理を実行し、ゲーム画面の画像信号及びゲーム音の音信号を生成する。そして、生成した画像信号をディスプレイ10に出力してディスプレイ10にゲーム画面を表示させるとともに、音信号をスピーカ20に出力してスピーカ20からゲーム音を出力させる。
【0031】
プレーヤは、筐体正面にディスプレイ10に対向して立ち、ディスプレイ10に表示されたゲーム画面を見て、スピーカ20から出力されるゲーム音声を聞きながら、ガン型コントローラ30を用いてシューティングゲームを楽しむ。
【0032】
[ゲーム画面]
図2、図3は、ディスプレイ10に表示されるゲーム画面の一例を示す図である。ゲーム画面は、床OB1や壁OB2、柱OB3,OB4、ブロックOB5等のオブジェクトを仮想三次元空間に配置して構築されたゲームステージ上に、プレーヤキャラクタである自キャラクタや、自キャラクタと戦闘する標的候補体である敵キャラクタEが配置されたゲーム空間の様子を、仮想カメラ等の所与の視点から見た三次元CG画像として表示される。本実施形態では、視点は自キャラクタに設定され、いわゆる一人称視点としてゲーム画面が表示される。
【0033】
そして、例えば図2に示すゲーム画面が表示されている状態で、プレーヤが、ガン型コントローラ30の銃口をディスプレイ10に向けて引き金32を引いた状態で保つ(ホールドする)と、ゲーム画面上の照準位置に存在する敵キャラクタEがロックオン(選択)されて標的体とされる。また、引き金32をホールドしたまま銃口の向きを変化させて照準位置を移動させると、移動した照準位置に存在する敵キャラクタEを蓄積的にロックオンすることができる。このとき、ロックオン可能か否かは、仮想三次元空間(ゲーム空間)中で銃口の方向を表すベクトルと敵キャラクタEのポリゴンとの衝突判定処理により決定される。
【0034】
その後、プレーヤが、ガン型コントローラ30の引き金32を離す(戻す)と、これが発射指示となって、図3に示すように、自キャラクタが有するガン(不図示)から、移動体であるビームBが発射される(移動開始)。発射されたビームBは、標的体であるロックオンした敵キャラクタEを順に通過(貫通)するように曲線の軌跡を描いて進み、ビームBが通過した敵キャラクタEが攻撃される。またこのとき、ビームBは、ゲームステージを構築するオブジェクトの内、柱OB3,OB4やブロックOB5等の所定の障害物オブジェクト(以下、単に「障害物」という。)については、これを回避するようにして進んでいく。そして、画面外まで進むと、ビームBは消える。
【0035】
図3は、ビームBを発射中の画面であり、図2において敵キャラクタEA,EBがロックオンされた場合を示している。図3では、ビームBは、敵キャラクタEAを通過し、次いで、この敵キャラクタEAの後方に在る障害物である柱OB3を向かって右方向に回り込むように進んでこれを回避し、その後、敵キャラクタEBを通過している。
【0036】
このように、本実施形態では、自キャラクタのガンから発射されたビームBが、ロックオンした複数の敵キャラクタEを順に通過するように進むとともに、ロックオンした各敵キャラクタEの間に在って進行を阻害する障害物を回避するように進む。
【0037】
[原理]
次に、本実施形態におけるビーム制御の原理を説明する。
【0038】
図4は、引き金32が離された直後、即ちビームBの発射指示(移動開始指示)が入力された直後のゲーム空間の俯瞰図であり、ロックオンされている敵キャラクタEの配置を示している。ビームBの発射指示が入力されると、その時点でロックオンされている敵キャラクタEについて、ビームBの発射点(自キャラクタが有するガンの銃口位置とする)P0との位置関係を基にビームBの通過順が決定され、決定された通過順に、標的T1,T2,・・・、TN(「N」は、ロックオンされている敵キャラクタEの数)とされる。
【0039】
ビームBの通過順は、次のように決定される。即ち、ロックオンされている敵キャラクタEの内、発射点P0から近い順に、標的T1,T2,・・・,TNとされる。同図では、3体の敵キャラクタE1,E2,E3がロックオンされている場合を示しており、発射点P0から敵キャラクタE1,E2,E3それぞれまでの距離L1,L2,L3には、L3<L1<L2、の関係がある。従って、この場合には、敵キャラクタE3が標的T1とされ、敵キャラクタE1が標的T2とされ、敵キャラクタE2が標的T3とされる。
【0040】
尚、ビームBの通過順を、例えば次のように決定しても良い。即ち、視点を基準として手前(奥行値が小さい)から順に標的T1,T2,・・・,TNとしても良い。また、ロックオンされている敵キャラクタEの内、発射点P0に最も近い敵キャラクタEを1番目の標的T1とし、次いで、この標的T1に最も近い敵キャラクタEを2番目の標的T2とするといったように、直前に標的Tとした敵キャラクタEに最も近い敵キャラクタEを、その次の標的Tとしても良い。
【0041】
ビームBの通過順が決定されると、これら標的T1,T2,・・・,TNの各位置(詳細には、該当する敵キャラクタEの代表点の位置)に、通過点P1,P2,・・・,PNが設定される。ビームBは、発射点P0からこれらの通過点P1,P2,・・・,PNを順に通過するよう、滑らかな曲線を描きながら進んでいく。
【0042】
このとき、実際のビームBの進行に先立ち、ビームBと障害物Dとの衝突が事前に判定され、衝突が判定された場合には、衝突を判定した障害物Dを回避するようにビームBの進行が制御される。
【0043】
具体的には、図5に示すように、発射点P0から各通過点P1,P2,・・・,PNを順に結ぶ曲線の軌道が生成され、この軌道と障害物Dとの衝突判定(交差判定)が行われる。その結果、衝突が判定されない場合には、ビームBは、この軌道に沿って進むように制御される。一方、障害物Dとの衝突が判定された場合には、この衝突が判定された障害物Dを回避するような軌道(回避用軌道)が新たに生成され、ビームBは、この回避用軌道に沿って進むように制御される。
【0044】
より詳細には、発射点P0及び通過点P1,P2,・・・,PNそれぞれの間の区間S1,S2,・・・,SNについて、該区間Sの始点と終点とを結ぶ軌道(区間軌道)が生成され、この区間軌道と障害物Dとの衝突判定が行われる。その結果、衝突が判定された区間Sについては、その衝突が判定された障害物Dの近傍(周辺)に回避通過点Rが設定され、該区間Sの始点、回避通過点R、及び、該区間Sの終点を順に通る回避用軌道が生成される。
【0045】
回避用軌道は、次のように生成される。即ち、該区間Sの始点と回避通過点Rとを結ぶ曲線の軌道、及び、回避通過点Rと該区間Sの終点とを結ぶ曲線の軌道が生成される。そして、この2つの軌道を繋げて、該区間Sの回避用軌道とされる。
【0046】
本実施形態においては、回避通過点Rは、1つの区間Sに最大1つ設定されることとして説明する。1区間の区間軌道と衝突する障害物Dが複数判定された場合には、これらの障害物Dの内、区間軌道を該区間Sの始点から辿って最初に衝突する障害物Dの近傍に、該区間Sの回避通過点Rが設定される。
【0047】
例えば同図では、発射点P0と通過点P1との間の区間S1について、区間軌道との衝突が判定された障害物D1の近傍に回避通過点R1が設定され、この回避通過点R1を通る回避用軌道が生成されている。また、通過点P2と通過点P3との間の区間S3については、区間軌道が2つの障害物D3a,D3bと衝突すると判定され、この場合には、区間S3の始点(通過点P2)からこの区間軌道を辿って最初に衝突する障害物D3aの近傍に回避通過点R3が設定され、この回避通過点R3を通過する回避用軌道が生成されている。尚、衝突すると判定された各障害物Dの近傍に回避通過点Rを設定することとしても良い。
【0048】
そして、区間毎に生成された区間軌道(回避用軌道が生成された区間Sについては、この回避用軌道)を区間順に繋ぐことで、発射点P0から各通過点P1,P2,・・・,PNを順に通過する軌道全体が生成される。その後、ビームBが、この軌道全体に沿って進むように制御される。
【0049】
尚、標的Tである敵キャラクタEは移動するので、この敵キャラクタEの位置に設定される通過点Pは変化する。このため、ビームBは、通過点Pの位置の変化に合わせて、必ず通過点Pを通過するよう、その軌道を補正しつつ進むように制御される。
【0050】
本実施形態において、軌道は、公知のエルミート曲線として生成される。エルミート曲線とは、図6に示すように、2つの制御点Pa,Pbについて、その位置及び接線ベクトル(導関数)aa,abが与えられた場合に、この2つの制御点Pa,Pbの間を補間するものとして定義された曲線である。
【0051】
そして、区間軌道は、該区間Sの始点及び終点を制御点としたエルミート曲線として生成される。このとき、制御点となる発射点P0及び通過点P1,P2,・・・,PNそれぞれの接線ベクトルaは、図7に示すように与えられる。即ち、その前の点からその次の点に至るベクトルVを、向きはそのままに大きさをn倍にしたベクトルである。但し、0<n<1、である。例えば、通過点P1の接線ベクトルa1は、発射点P0から通過点P2に至るベクトルV2を、向きをそのままに大きさをn倍にしたベクトルである。また、通過点P2の接線ベクトルa2は、通過点P1から通過点P3に至るベクトルV3を、向きはそのままに大きさをn倍にしたベクトルである。
【0052】
前/後の点が無い場合には、接線ベクトルaは、次のように与えられる。即ち、前の点が無い発射点P0については、この発射点P0から次の通過点P1に至るベクトルV1を基に与えられ、次の点が無い最後の通過点PNについては、1つ前の通過点PN-1からこの通過点PNに向かうベクトルVNを基に与えられる。
【0053】
また、回避通過点Rの接線ベクトルbは、図8に示すように生成される。即ち、該区間Sの始点から終点に至るベクトルVSを、向きはそのままに大きさをn倍としたベクトルとして与えられる。
【0054】
ところで、標的Tである敵キャラクタEは移動するので、ビームBの進行中、通過点Pの位置は随時変化する。このため、制御点である発射点P0、通過点P及び回避通過点Rのそれぞれの接線ベクトルa,bも随時変化する。
【0055】
また、回避通過点Rは、詳細には、次のように設定される。
図9は、回避通過点Rの設定方法を説明するための図である。同図に示すように、回避通過点Rは、軌道と障害物Dとの衝突位置Cから、所定の回避方向へ所定の回避距離αだけ離れた位置に設定される。
【0056】
回避方向は、ビームBの自然な進行が表現されるよう、障害物D毎に定められている。
また、回避距離αは、障害物Dの任意方向の最大長さより大きく設定されている。このため、回避通過点Rは、障害物Dにではなくその近傍(周辺)に設定され、この回避通過点Rを通る回避用軌道は、この障害物Dの近傍を通る、エルミート曲線による滑らかな軌道となる。従って、この回避用軌道に沿って移動させることで、障害物Dとの衝突を回避するようにビームBを制御することができる。
【0057】
例えば、同図(a)に示すように、障害物Dが、床OB1の上に配置される高さが比較的低いブロックOB5の場合は、回避方向として「上」が設定される。この場合には、衝突位置C(xc,yc,zc)のY座標値ycに所定の回避距離αを加算した位置(xc,yc+α,zc)に、回避通過点Rが設定される。
【0058】
また、同図(b)に示すように、障害物Dが、高さが比較的高い柱OB3,OB4には、回避方向として「横」が設定される。この場合には、更に、回避方向として「右」若しくは「左」が、例えばランダムに選択され、衝突位置Cから、ビームBの進行方向に対して選択された回避方向に、所定の回避距離αだけ離れた位置に回避通過点Rが設定される。
【0059】
具体的には、同図(c)に示すように、X−Z平面において、障害物Dとの衝突直前のビームBの進行ベクトルVBに直交する大きさ(長さ)αの回避ベクトルVDが、衝突位置Cを始点として生成される。このとき、回避方向が「右」ならば、ビームBの進行方向(進行ベクトルVB向き)に対して右方向に向かう回避ベクトルVD1が生成され、回避方向が「左」ならば、ビームBの進行方向(進行ベクトルVBの向き)に対して左方向に向かう回避ベクトルVD2が生成される。そして、この回避ベクトルVDの終点の位置に、回避通過点Rが設定される。即ち、衝突位置C(xc,yc,zc)のX座標値xcに回避ベクトルVDのX成分αxを加算し、Z座標値zcに回避ベクトルVDのZ成分αzを加算した位置(xc+αx,yc,zc+αz)に、回避通過点Rが設定される。
【0060】
尚この場合、回避通過点Rは、ビームBの進行方向に対して「右」若しくは「左」方向ではなく、視点から見て「右」若しくは「左」方向に所定の回避距離αだけ離れた位置に設定しても良い。
【0061】
[ビーム制御手順]
以上の原理をふまえた、具体的なビームBの制御手順を説明する。
本実施形態では、先ず、(1)区間S1(開始区間)の衝突判定が行われた後、(2)区間S1,S2,・・・,SNを順に対象としてビームBの進行が制御されるとともに、(3)ビームBの進行制御の対象となっている区間Sの次の区間Sを対象として障害物Dとの衝突判定が行われる。
【0062】
尚、原理上、最初に画面全体に亘る軌道全体を生成し、この軌道全体についての衝突判定を行って各区間Sの回避通過点Rを設定した後、ビームBの進行を開始しても良いが、この場合には、(イ)衝突判定に時間がかかるため、ビームBの発射指示が入力されてから実際にビームBが発射されるまでの時間差が生じる、(ロ)通過点P1,P2,・・・,PNの位置が変化するため、衝突判定のために最初に生成される軌道と実際にビームBの軌跡とにずれが生じ、回避すべき障害物Dを回避しない(回避しきれない)、といった不都合が生じる。このような理由から、本実施形態では、発射点P0及び各通過点P1,P2,・・,PNのそれぞれの間の区間Sを単位として、ビームBの進行制御と、その次の区間Sについての衝突判定とを並行して行う。
【0063】
(1)区間S1(開始区間)の衝突判定
先ず、図10に示すように、発射点P0を始点とし、通過点P1を終点とする区間S1(開始区間)の軌道(開始区間軌道)が計算される。次いで、この開始区間軌道と障害物Dとの衝突判定が行われる。その結果、衝突が判定された場合には、その衝突が判定された障害物Dとの衝突位置Cを基に回避通過点R1が設定される。
【0064】
(2)ビームBの進行制御
その後、区間S1,S2,・・・,SNを順に対象として、ビームBの進行制御が行われる。このとき、ビームBは、予め定められた1フレーム当たりの速さで進むように制御される。
【0065】
図11は、1区間についてのビームBの進行制御を説明するための図であり、区間S1を対象とした場合を例として示している。同図に示すように、先ず、該区間Sの始点(同図では、発射点P0)と終点(同図では、通過点P1)とを結ぶ軌道(区間軌道)が計算される。このとき、該区間Sに回避通過点Rが設定されている場合には、この回避通過点Rを通る区間軌道が計算される。
【0066】
ここで、区間軌道をビームBの1フレーム当たりの進む速さ(長さ)で割ると、この区間を何フレームで進むかがわかる。このフレーム数を、区間フレーム数N(Nは自然数)とする。そして、この区間軌道を区間フレーム数Nで等分する区分点の内、該区間Sの始点から数えて1つ目の区分点がビームBの到達位置Q1とされる。そして、ビームBが、該区間Sの始点からこの到達位置Q1まで進められる。
【0067】
次いで、2フレーム目では、再度、該区間Sの軌道(区間軌道)が計算される。敵キャラクタEは移動しているので、1フレーム目と2フレーム目とでは、該区間Sの始点及び終点の位置及び接線ベクトルaは変化し、これに伴い、回避通過点Rの接線ベクトルbも変化している。このため、区間軌道は、その時点での始点及び終点の位置を基に計算される。従って、1フレーム目とは異なる区間軌道が計算される。そして、計算された区間軌道を区間フレーム数Nで等分する区分点の内、該区間Sの始点から数えて2番目の区分点がビームBの到達位置Q2とされて、この到達位置Q2までビームBが進められる。
【0068】
3フレーム目以降も同様に、フレーム毎に、その時点での該区間Sの始点及び終点(設定されていれば、回避通過点Rも)の位置を基に区間軌道が計算され、これをN等分する区分点の内から、ビームBの到達位置Qが選択される。即ち、iフレーム目では、該区間Sの始点から数えてi番目の区分点がビームBの到達位置Qとされる。そして、この到達位置QまでビームBが進められる。
【0069】
そして、Nフレーム目では、該区間Sの終点がビームBの到達位置QNとされ、この位置までビームBが進められて、1区間分のビームBの進行制御が終了する。
【0070】
(3)衝突判定
また、上述した(2)ビームBの進行制御と並行して、該制御の対象となっている区間Sの次の区間Sを対象として、障害物Dとの衝突判定が行われる。即ち、ビームBが進むであろう1区間分先の軌道について、障害物Dとの衝突を事前に判定する。
【0071】
図12は、1区間についての障害物Dとの衝突判定を説明するための図であり、区間S2を対象とした場合を例として示している。この衝突判定も、上述した(2)ビームBの進行制御と同様に、区間フレーム数Nをかけて1区間分の判定が行われる。
【0072】
同図に示すように、先ず、1フレーム目では、該区間Sの始点(同図では、通過点P1)と終点(同図では、通過点P2)とを結ぶ軌道(区間軌道)が計算される。次いで、この区間軌道を区間フレーム数Nで等分した部分軌道Fの内、該区間Sの開始点から数えて1番目の部分軌道F1と、障害物Dとの衝突判定が行われる。その結果、衝突すると判定された場合には、該衝突が判定された障害物Dとの衝突位置Cを基に回避通過点Rが設定されて、該区間Sを対象とする衝突判定が終了する。
【0073】
1フレーム目で回避通過点Rが設定されない場合には、続く2フレーム目において、同様に、その時点での該区間Sの始点及び終点の位置を基に区間軌道が計算され、この区間軌道を区間フレーム数Nで等分した部分軌道Fの内、該区間Sの始点から数えて2番目の部分軌道F2と障害物Dとの衝突判定が行われる。その結果、衝突が判定された場合には、該衝突すると判定された障害物Dとの衝突位置Cを基に回避通過点Rが設定されて、該区間Sを対象とする衝突判定が終了する。
【0074】
このように、区間フレーム数Nに等しいNフレームの間、フレーム毎に、該区間の区間軌道が計算され、この区間軌道を区間フレーム数Nで等分した部分軌道Fの内、iフレーム目では、該区間Sの始点から数えてi番目の部分軌道Fと障害物Dとの衝突判定が行われる。その結果、衝突が判定されると、該衝突が判定された障害物Dとの衝突位置Cを基に回避通過点Rが設定され、その時点で、該区間Sについての衝突判定が終了する。
【0075】
このように、本実施形態では、発射点P0及び通過点P1,P2,・・・,PNそれぞれの間の区間S1,S2,・・・,SNを単位として、区間順にビームBの進行が制御されるとともに、該ビームBの進行制御の対象としている区間Sの次の区間Sを対象として、障害物Dとの衝突判定が行われる。即ち、実際ビームBが進んでいる区間Sより1つ先行する区間Sについての衝突判定が事前に行われている。尚、回避通過点Rが設定された場合には、それを追加された通過点Pとして扱うこととしても良い。
【0076】
[機能構成]
図13は、本実施形態における業務用ゲーム装置1000の機能構成を示すブロック図である。同図に示すように、業務用ゲーム装置1000は、機能的には、操作入力部100と、処理部200と、画像表示部330と、音出力部340と、記憶部400と、を備えて構成される。
【0077】
操作入力部100は、プレーヤによる操作指示を受け付け、操作に応じた操作信号を処理部200に出力する。図1では、ガン型コントローラ30がこれに該当し、検出した表示画面上の照準位置座標を処理部200に出力するとともに、トリガ信号として、引き金32が引かれていれば「ON」を、引かれていない(戻されている)ならば「OFF」を、それぞれ処理部200に出力する。
【0078】
処理部200は、業務用ゲーム装置1000の全体制御やゲームの進行、画像生成等の各種演算処理を行う。この機能は、例えばCPU(CISC型、RISC型)、ASIC(ゲートアレイ等)等の演算装置やその制御プログラムにより実現される。図1では、制御ユニット40に実装されているCPU等の演算処理装置がこれに該当する。
【0079】
また、処理部200は、主にゲームの実行に係る演算処理を行うゲーム演算部210と、ゲーム演算部210の処理によって求められた各種のデータに基づき、仮想カメラ等の所与の視点から見たゲーム空間の画像を生成する画像生成部230と、効果音やBGM等のゲーム音を生成する音生成部240と、を含んでいる。
【0080】
ゲーム演算部210は、操作入力部100から入力された操作信号や、記憶部400から読み出したゲーム情報(プログラム及びデータ)等に基づいて種々のゲーム処理を実行する。ゲーム処理としては、例えばゲーム空間に各種オブジェクトを配置してゲームステージを構築する処理や、自キャラクタ及び敵キャラクタEの制御、操作入力部100からの操作信号に基づくビームBの制御、仮想カメラ等の視点の制御、各種オブジェクトの交差判定(衝突判定)等がある。また、本実施形態では、ゲーム演算部210は、敵キャラ制御部212と、ロックオン管理部214と、ビーム制御部216と、を含んでいる。
【0081】
敵キャラ制御部212は、標的候補体である敵キャラクタEを制御する。具体的には、フレーム毎に、所定の制御ルーチンに従って敵キャラクタEの位置を演算して再配置するとともに、敵キャラ情報426を更新する。
【0082】
敵キャラ情報426は、敵キャラクタEの位置に関する情報である。図14に、敵キャラ情報426のデータ構成の一例を示す。同図に示すように、敵キャラ情報426は、該ゲームに登場する各敵キャラクタについて、該敵キャラクタを識別する敵キャラ名(426a)と、現在位置(426b)とを対応付けて格納している。この現在位置(426b)は、敵キャラ制御部212によってフレーム毎に更新される。
【0083】
ロックオン管理部214は、操作入力部100から入力される操作信号に基づいて、敵キャラクタEのロックオンを管理する。具体的には、引き金32が引かれている(ホールドされている)場合、即ち、操作入力部100から入力されるトリガ信号が「ON」である場合には、操作入力部100から入力される照準位置信号を基に仮想三次元空間(ゲーム空間)での狙い方向(銃口の向く方向)を表すベクトルを算出し、このベクトルと各敵キャラクタEのポリゴンとの衝突判定を行うことで、敵キャラクタEをロックオンするか否かを判断する。そして、ロックオンすると判断した場合には、該敵キャラクタEの名称(敵キャラ名)をロックオンリスト452に追加する。
【0084】
ロックオンリスト452とは、現在ロックオンされている敵キャラクタEのリスト(一覧)である。図15に、ロックオンリスト452の一例を示す。同図に示すように、ロックオンリスト452は、ロックオンされている敵キャラクタEの名称(敵キャラ名)を、そのロックオン順に蓄積している。このロックオンリスト452は、ロックオン管理部214によってロックオンすると判断された敵キャラクタEの名称(敵キャラ名)が追加される。そして、ビーム制御部216によるビーム制御が行われると、蓄積されている敵キャラ名が削除されてクリアされる。
【0085】
ビーム制御部216は、移動体であるビームBを制御する。具体的には、引き金32が離された場合、即ち、操作入力部100から入力されるトリガ信号が「ON」から「OFF」に変化すると、ビームBの発射指示が入力されたと判断して、発射点P0からビームBを発射させ、現在ロックオンしている敵キャラクタEを順に攻撃するように移動させる制御を開始する。
【0086】
具体的には、ビーム制御部216は、ビームBの発射指示が入力されたと判断すると、ロックオンリスト452に蓄積されている各敵キャラクタEについて、敵キャラ情報426を参照して、その現在位置と発射点P0とを基にビームBの通過順を決定し、決定した通過順に標的T1,T2,・・・,TNとした後、軌道計算用テーブル454を作成する。
【0087】
軌道計算用テーブル454とは、ビームBの制御のための軌道の計算に必要なデータを格納するデータテーブルであり、ビームBの発射1回毎に1つの軌道計算用テーブル454が作成される。図16に、軌道計算用テーブル454のデータ構成の一例を示す。同図に示すように、軌道計算用テーブル454は、標的テーブル455と、回避通過点テーブル456とを含んでいる。
【0088】
標的テーブル455は、標的Tに関するデータを格納するデータテーブルであり、標的(455a)毎に、該標的Tとされた敵キャラクタEの名称(敵キャラ名)(455b)と、通過点(455c)と、該通過点Pの接線ベクトル(455d)と、を対応付けて格納している。
【0089】
通過点(455c)は、対応する標的Tである敵キャラクタEの代表点の位置座標が格納され、フレーム毎に、対応する敵キャラクタEの位置の変化(移動)に伴って更新される。接線ベクトル(455d)は、通過点(455c)の変化に伴って、フレーム毎に更新される。
【0090】
また、回避通過点テーブル456は、回避通過点Rに関するデータを格納するデータテーブルであり、区間(456a)毎に、回避通過点(456b)と、該回避通過点Rの接線ベクトル(456c)と、を対応付けて格納している。
【0091】
回避通過点(456b)は、ビーム制御部216により障害物との衝突判定が行われた際に設定された回避通過点Rの位置座標が格納される。即ち、対応する区間Sの衝突判定が行われていない場合、或いは、衝突判定が行われたけれども回避通過点Rが設定されなかった場合には、データ無し(「−」)とされる。
【0092】
接線ベクトル(456c)は、対応する回避通過点(456b)が設定された際に、その時点での通過点Pの位置に基づいて算出された値が格納され、標的テーブル455の通過点(455c)の変化に伴って、フレーム毎に更新される。対応する回避通過点(456b)が設定されていない場合には、データ無し(「−」)とされる。
【0093】
ビーム制御部216は、標的T1,T2,・・・,TNそれぞれに対応する敵キャラクタEの現在位置を通過点P1,P2,・・・,PNの位置とするとともに、これら通過点P1,P2,・・・,PNのそれぞれについて接線ベクトルa1,a2,・・・,aNを算出する。そして、各標的Tに、対応する敵キャラクタEの名称(敵キャラ名)と、設定した通過点Pの位置座標と、算出した該通過点Pの接線ベクトルaとを対応付けて、標的テーブル455を作成する。更に、発射点P0の位置及び接線ベクトルa0を算出し、これをこの標的テーブル455の先頭に追加する。
【0094】
また、ビーム制御部216は、発射点P0及び通過点P1,P2,・・,PNそれぞれの間の区間S1,S2,・・・,SNについて、回避通過点R及びこの回避通過点Rの接線ベクトルbを全て未設定(「−」)として、回避通過点テーブル456を作成する。
【0095】
その後、ビーム制御部216は、開始区間(区間S1)について衝突判定を行う。即ち、標的テーブル455を参照して、発射点P0から通過点P1までの区間軌道を計算し、この区間軌道と障害物Dとの衝突判定を行う。その結果、衝突が判定された障害物Dが在る場合には、ステージ構築情報422を参照して、その障害物Dとの衝突位置Cを基に回避通過点R1を算出するとともに、標的テーブル455を参照して、この算出した回避通過点R1の接線ベクトルb1を算出する。そして、算出した回避通過点R1及び接線ベクトルb1を回避通過点テーブル456に格納する。
【0096】
続いて、ビーム制御部216は、区間S1,S2,・・・,SNを順に対象としてビームBの進行制御を行う。即ち、ビーム制御部216は、区間フレーム数Nに等しいNフレームの間、1フレーム毎に、軌道計算用テーブル454を参照して対象区間Sの区間軌道を計算し、計算した区間軌道を区間フレーム数Nで等分する区分点の内、iフレーム目では、該区間Sの始点から数えてi番目の区分点の位置をビームBの到達位置Qとする。そして、この到達位置Qを先頭位置としてビーム通過位置情報458に追加する。
【0097】
ビーム通過位置情報458は、発射1回分のビームBの位置変化(移動)を示す情報である。図17に、ビーム通過位置情報458のデータ構成の一例を示す。同図に示すように、ビーム通過位置情報458は、発射点P0を最後尾とし、現在位置を先頭として、フレーム毎のビームBの位置を蓄積している。即ち、このビーム通過位置情報458は、ビームBが発射されている間、1フレーム毎に、ビーム制御部216によって算出されたビームBの到達位置Qが先頭位置として追加される。そして、1フレーム毎に、発射点P0である最後尾から先頭まで、蓄積されている到達位置Qを順に繋ぐ細い帯状のビームオブジェクトがゲーム空間に配置されることで、ゲーム画面にビームBが延伸して表示されていく。
【0098】
また、ビーム制御部216は、ビームBの進行制御と並行して、ビームBの進行制御の対象としている区間Sの次の区間S、即ちビームBが区間S1を進行している際は区間S2を、ビームBが区間S2を進行している際には区間S3を、といった順に対象区間を変更して衝突判定を行う。
【0099】
即ち、ビーム制御部216は、区間フレーム数Nに等しいNフレームの間、1フレーム毎に、標的テーブル455を参照して衝突判定の対象区間の区間軌道を計算し、計算した区間軌道を区間フレーム数Nで等分した部分軌道Fの内、iフレーム目では、該区間Sの始点から数えてi番目の部分軌道Fと障害物Dとの衝突判定を行う。その結果、衝突を判定した場合には、ステージ構築情報422を参照して、その衝突を判定した障害物Dとの衝突位置Cを基に回避通過点Rを算出するとともに、該回避通過点Rの接線ベクトルbを算出して、算出した回避通過点R及び接線ベクトルbを回避通過点テーブル456に格納する。そして、該区間Sに対する衝突判定を終了する。
【0100】
画像生成部230は、ゲーム演算部210による演算結果に基づき、ゲーム画面を表示するためのゲーム画像(3DCG画像)を生成し、生成した画像の画像信号を画像表示部330に出力する。
画像表示部330は、画像生成部230からの画像信号に基づいて、例えば1/60秒毎に1フレームの画面を再描画しながらゲーム画面を表示する。この機能は、例えばCRT、LCD、ELD、PDP、HMD等のハードウェアによって実現される。図1では、ディスプレイ10がこれに該当する。
【0101】
音生成部240は、ゲーム中に使用される効果音やBGM等のゲーム音を生成し、生成したゲーム音の音信号を音出力部340に出力する。
音出力部340は、音生成部240からの音信号に基づいて、BGMや効果音等のゲーム音声を出力する。この機能は、例えばスピーカ等によって実現される。図1では、スピーカ20がこれに相当する。
【0102】
記憶部400は、処理部200に業務用ゲーム装置1000を統合的に制御させるための諸機能を実現するためのシステムプログラムや、ゲームを実行させるために必要なプログラムやデータ等を記憶するとともに、処理部200の作業領域として用いられ、処理部200が各種プログラムに従って実行した演算結果や操作入力部100から入力される入力データ等を一時的に記憶する。この機能は、例えば各種ICメモリやハードディスク、CD−ROM、DVD、MO、RAM、VRAM等によって実現される。図1では、制御ユニット40に実装されているROMやRAM等がこれに該当する。
【0103】
また、記憶部400は、処理部200をゲーム演算部210として機能させるためのゲームプログラム410及びゲームデータを記憶する。ゲームデータには、ステージ構築情報422と、自キャラ情報424と、敵キャラ情報426と、視点情報428と、ロックオンリスト452と、軌道計算用テーブル454と、ビーム通過位置情報458と、が含まれている。
【0104】
ステージ構築情報422は、ゲームステージを構築するためのオブジェクトに関する情報である。図18に、ステージ構築情報422のデータ構成の一例を示す。同図に示すように、ステージ構築情報422は、仮想三次元空間(ゲーム空間)に配置されてゲームステージを構成する各オブジェクトについて、該オブジェクトを識別するオブジェクト名(422a)と、配置位置(422b)と、モデル情報(422c)と、障害物フラグ(422d)と、回避方向(422e)と、回避距離(422f)と、を対応付けて格納している。
【0105】
障害物フラグ(422d)は、対応するオブジェクトが障害物であるか否かを示すフラグであり、障害物であるならば「1」に設定され、障害物でないならば「0」に設定されている。
【0106】
回避方向(422e)及び回避距離(422f)は、対応するオブジェクトが障害物である場合にのみその値が設定され、障害物でない場合にはデータ無し(「−」)とされる。回避方向(422e)は、対応するオブジェクトが軌道と衝突すると判定された場合に、衝突位置Cに対して回避通過点Rが設定される方向である。ここでは、オブジェクトの種類に応じて、「上」若しくは「横」が設定される。また、回避距離(422f)は、対応するオブジェクトが軌道と衝突すると判定された場合に設定される回避通過点Rの位置の、衝突位置Cとの間の距離である。
【0107】
従って、ビーム制御部216によって軌道と障害物Dとが衝突すると判定された場合には、その衝突位置Cから、該衝突すると判定された障害物Dに対応付けられている回避方向(422e)が示す方向へ、回避距離(422f)が示す距離だけ離れた位置に、回避通過点Rが設定される。
【0108】
自キャラ情報424は、自キャラクタに関する情報であり、自キャラクタの現在位置やモデル情報等を含んでいる。この自キャラ情報424に含まれる現在位置を基に、ビームBの発射点P0が決定される。
【0109】
視点情報428は、仮想カメラ等の視点の情報であり、現在の始点の位置や姿勢、画角等を含んでいる。
【0110】
[処理の流れ]
次に、本実施形態の処理の流れを説明する。
【0111】
図19は、本実施形態におけるゲーム全体の進行処理の流れを説明するためのフローチャートである。この処理は、ゲーム演算部210がゲームプログラム410を実行することで実現される。同図に示すように、ゲーム進行処理では、ゲーム演算部210は、先ず、ステージ構築情報422に基づいてゲームステージを構築し、構築したゲームステージに、自キャラクタや敵キャラクタEを配置する(ステップTA11)。その後、1フレーム毎に、自キャラクタや敵キャラクタE、視点(仮想カメラ等)を再配置し、視点に基づくゲーム画像の生成・表示をさせるといったゲーム通常処理を開始する(ステップTA13)。
【0112】
次いで、ロックオン管理部214が、操作入力部100から入力されるトリガ信号を基に引き金32がホールドされた(引かれた)か否かを判断し、ホールドされたと判断すると(ステップTA15:YES)、敵キャラクタEをロックオンするか否かを判定する。その結果、ロックオンすると判定したならば(ステップTA23:YES)、該当する敵キャラクタEの名称をロックオンリスト452に追加(蓄積)する(ステップTA25)。
【0113】
続いて、ビーム制御部216が、操作入力部100から入力されるトリガ信号を基に、引き金32が離された(戻された)か否かを判断し、離されていないと判断したならば(ステップTA27:NO)、ステップTA17に戻る。また、引き金32が離されたと判断したならば(ステップTA27:YES)、ビームBを発射するための処理を開始する。即ち、ロックオンリスト452に敵キャラクタEが蓄積されているか否かを判定し、蓄積されているならば(ステップTA29:YES)、続いて、ビーム発射処理を実行する(ステップTA31)。
【0114】
図20は、ビーム発射処理の流れを説明するためのフローチャートである。同図に示すように、ビーム発射処理では、ビーム制御部216は、先ず、発射時処理を実行する(ステップTA111)。
【0115】
図21は、発射時処理の流れを説明するためのフローチャートである。同図に示すように、発射時処理では、ビーム制御部216は、先ず、ビーム通過位置情報458をクリアし、発射点P0のみを格納した新たなビーム通過位置情報458を作成する(ステップTA211)。次いで、ロックオンリスト452に蓄積されている敵キャラクタEについて、その現在位置と発射点P0との位置関係を基にビームBの通過順序を決定し、決定した通過順に標的T1,T2,・・・,TNとする(ステップTA213)。
【0116】
続いて、ビーム制御部216は、新たな軌道計算用テーブル454を作成する(ステップTA215)。具体的には、各標的Tに対応する敵キャラクタEの現在位置を通過点Pの位置とし、これら各通過点の接線ベクトルaを算出する。そして、各標的Tそれぞれに、対応する敵キャラクタEの名称(的キャラ名)と、設定した通過点Pの位置座標と、算出した接線ベクトルaとを対応付けて、標的テーブル455を作成する。また、発射点P0及び各通過点のそれぞれの間の区間Sについて、回避通過点R及び該回避通過点Rの接線ベクトルbを全て未設定「−」として、回避通過点テーブル456を作成する。
【0117】
その後、ビーム制御部216は、軌道計算用テーブル454を基に開始区間(区間S1)の軌道(開始区間軌道)を計算し(ステップTA217)、ステージ構築情報422を参照して、計算した開始区間軌道と障害物Dとの衝突判定を行う(ステップTA219)。その結果、障害物Dとの衝突の発生を判定したならば(ステップTA221:YES)、ステージ構築情報422を参照して、該衝突を判定した障害物Dとの衝突位置Cを基に回避通過点R1を算出するとともに、この回避通過点R1の接線ベクトルb1を算出する(ステップTA223)。そして、この回避通過点R1と接線ベクトルb1とを回避通過点テーブル456に格納する(ステップTA225)。
以上の処理を行うと、ビーム制御部216は、発射時処理を終了する。
【0118】
発射時処理を終了すると、続いて、ビーム制御部216は、初期設定として、ビームの発射点P0を始点とし、1番目の通過点P1を終点とする区間S1を“現区間”とし、この区間S1の次の区間S、即ち区間S2を“次区間”とする。また、変数iを「1」に設定する(ステップTA113)。その後、ビーム延伸処理を実行する(ステップTA115)。
【0119】
図22は、ビーム延伸処理の流れを説明するためのフローチャートである。同図に示すように、ビーム延伸処理では、ビーム制御部216は、軌道計算用テーブル454を参照して、現区間の軌道(現区間軌道)を計算する(ステップTA311)。そして、計算した現区間軌道を区間フレーム数Nで等分する区分点の内、現区間の始点から数えてi番目の区分点をビームB到達位置Qとし(ステップTA313)、この到達位置Qを先頭位置としてビーム通過位置情報458に追加する(ステップTA315)。その後、画像生成部230により、更新後のビーム通過位置情報458を基にビームBが再描画されて、この到達位置QまでビームBが延伸されて表示される(ステップTA317)。
以上の処理を行うと、ビーム延伸処理を終了する。
【0120】
ビーム延伸処理を終了すると、ビーム制御部216は、変数iが所定の区間フレーム数Nに一致するか否かを判定し、一致するならば(ステップTA117:YES)、現区間の終点までビームBが進んだので、現区間の終点に対応する敵キャラクタEに対する被弾処理を行う(ステップTA119)。
【0121】
次いで、ビーム制御部216は、次区間が設定されているか否かを判定し、設定されているならば(ステップTA121:YES)、続いて、事前判定処理を実行する(ステップTA123)。
【0122】
図23は、事前判定処理の流れを説明するためのフローチャートである。同図に示すように、事前判定処理では、ビーム制御部216は、回避通過点テーブル456を参照して、次区間に既に回避通過点が設定されているか否かを判定し、設定されているならば(ステップTA411:YES)、事前判定処理を終了する。
【0123】
一方、次区間には未だ回避通過点Rが設定されていないならば(ステップTA411:NO)、ビーム制御部216は、軌道計算用テーブル454を参照して次区間の軌道(次区間軌道)を計算する(ステップTA413)。そして、計算した次区間軌道を区間フレーム数Nで等分して、次区間の始点から数えてi番目の部分軌道Fを算出し(ステップTA415)、このi番目の部分軌道Fと障害物Dとの衝突判定を行う(ステップTA417)。
【0124】
その結果、衝突の発生を判定したならば(ステップTA419:YES)、ビーム制御部216は、該衝突を判定した障害物Dとの衝突位置Cを基に回避通過点Rを算出し(ステップTA421)、算出した回避通過点Rを回避通過点テーブル456に格納する(ステップTA423)。
以上の処理を行うと、ビーム制御部216は、事前判定処理を終了する。
【0125】
事前判定処理が終了すると、ビーム制御部216は、変数iが区間フレーム数Nに一致するか否かを判定し、一致しないならば(ステップTA125:NO)、変数iを「1」加算した値に更新する(ステップTA127)。また、標的Tである各敵キャラクタEの位置の変化(移動)に基づいて、標的テーブル455の該当する通過点Pの位置座標を更新する(ステップTA129)。その後、ステップTA115に戻る。
【0126】
また、ステップTA125において、変数iが区間フレーム数Nに一致しないならば(ステップTA125:NO)、ビーム制御部216は、次区間が設定されているか否かを判定し、設定されているならば(ステップTA131:YES)、この次区間を“現区間”とする(ステップTA133)。更に、次区間の次の区間Sが有るか否かを判定し、有るならば(ステップTA135:YES)、この次の区間Sを“次区間”とし(ステップTA137)、無いならば(ステップTA135:NO)、“次区間”を「無し」とする(ステップTA139)。
【0127】
続いて、ビーム制御部216は、変数iを初期値「1」に更新する(ステップTA141)。また、標的Tである各敵キャラクタEの位置の変化(移動)に基づいて、軌道計算用テーブル454を更新する。即ち、標的テーブル455における通過点Pの位置座標を更新し、これに伴って通過点Pの接線ベクトルaを算出・更新するとともに、回避通過点テーブル456における回避通過点Rの接線ベクトルbを算出・更新する(ステップTA129)。その後、ステップTA115に戻る。
このステップTA115〜TA141の処理が、1フレームの間の処理である。
【0128】
また、ステップTA131において、次区間が設定されていないならば(ステップTA131:NO)、最後の通過点TNまでビームBが進んだので、所定のビーム終了処理を実行し(ステップTA143)、その後、ビーム発射処理を終了する。ここで、「所定のビーム終了処理」とは、最後の通過点PNまで到達したビームBを、例えばその時点での移動ベクトルを保持したまま移動させ、画面外に出た後、ビームBの表示を消去させる処理である。
【0129】
ビーム発射処理が終了すると、ビーム制御部216は、ロックオンリスト452に蓄積されている敵キャラクタE(敵キャラ名)を削除して、ロックオンリスト452をクリアする(ステップTA33)。その後、ゲームを終了するか否かを判断し、終了しないならば(ステップTA35:NO)、ステップTA13に戻る。一方、ゲームを終了するならば(ステップTA35:YES)、所定のゲーム終了処理を行った後、ゲーム進行処理を終了する。
【0130】
[ハードウェア構成]
図24は、本実施の形態における業務用ゲーム装置1000のハードウェア構成の一例を示す図である。同図によれば、業務用ゲーム装置1000は、CPU1002と、ROM1004と、RAM1006と、情報記憶媒体1008と、画像生成IC1010と、音生成IC1012と、I/Oポート1014,1016とを有し、システムバス1030により相互にデータの入出力が可能に接続されている。また、画像生成IC1010には表示装置1018が接続され、音生成IC1012にはスピーカ1020が接続され、I/Oポート1014にはコントロール装置1022が接続され、I/Oポート1016には通信装置1024が接続されている。
【0131】
CPU1002は、情報記憶媒体1008に格納されているプログラムやデータ、ROM1004に格納されているシステムプログラムやデータ、コントロール装置1022によって入力される操作入力信号等に従って、業務用ゲーム装置1000全体の制御や各種データ処理を行う。このCPU1002は、図13の処理部200に該当する。
【0132】
ROM1004、RAM1006及び情報記憶媒体1008は、図13の記憶部400に該当する。ROM1004は、業務用ゲーム装置1000のシステムプログラムや、図13の記憶部400に記憶されている情報の内、特に、予め設定されているプログラムやデータ等を記憶する。RAM1006は、CPU1002の作業領域として用いられる記憶手段であり、例えば、ROM1004や情報記憶媒体1008の所与の内容、1フレーム分の画像データ、CPU1002の演算結果等が格納される。また、情報記憶媒体1008は、ICメモリカードや本体装置に着脱自在なハードディスクユニット、MO等によって実現される。
【0133】
画像生成IC1010は、CPU1002からの画像情報に基づいて表示装置1018に表示するゲーム画面の画素情報を生成する集積回路である。表示装置1018は、画像生成IC1010で生成された画素情報に基づくゲーム画面を表示する。この画像生成IC1010は、図9の画像生成部32に該当し、表示装置1018は、図13の画像表示部330、図1のディスプレイ10に該当する。
【0134】
音生成IC1012は、情報記憶媒体1008やROM1004に記憶される情報に基づいて効果音やBGM等のゲーム音を生成する集積回路であり、生成されたゲーム音はスピーカ1020によって出力される。この音生成IC1012は、図13の音生成部240に該当し、スピーカ1020は、図13の音出力部340、図1のスピーカ20に該当する。
【0135】
尚、画像生成IC1010、音生成IC1012等で行われる処理は、CPU1002或いは汎用のDSP等によってソフトウェア的に実行されることとしても良い。
【0136】
コントロール装置1022は、プレーヤがゲームの進行に応じて種々のゲーム操作を入力するための装置である。このコントロール装置1022は、図13の操作入力部100、図1のガン型コントローラ30に該当する。
【0137】
通信装置1024は、業務用ゲーム装置1000内部で使用される各種情報を外部とやり取りするための装置であり、他のゲーム装置と接続されてゲームプログラムに応じた所与の情報を送受信したり、通信回線を介してゲームプログラム等の情報を送受信する等に利用される。
【0138】
[作用・効果]
以上のように、本実施形態によれば、引き金32が戻されてビームBの発射指示が入力されると、その時点でロックオンされている敵キャラクタEについて、ビームBの発射位置P0との位置関係を基に決定されたビームBの通過順に、標的T1,T2,・・・、TNとされ、これら標的T1,T2,・・・,TNに該当する敵キャラクタEの位置に、通過点P1,P2,・・・,PNが設定される。
【0139】
次いで、発射点P0及び各通過点Pそれぞれの間の区間Sについて、該区間Sの始点と終点とを結ぶ軌道(区間軌道)が計算され、この区間軌道と障害物Dとの衝突判定が行われる。その結果、衝突が判定された区間Sについては、その衝突が判定された障害物Dの近傍(周辺)に回避通過点Rが設定され、該回避通過点Rを通る回避用軌道が計算される。そして、区間毎に計算された区間軌道(回避用軌道が計算された区間Sについては、この回避用軌道)を区間順に繋ぐことで、発射点P0から各通過点Pを順に通過する軌道全体が計算される。その後、ビームBが、この軌道全体に沿って進むように制御される。
【0140】
従って、ゲーム空間に配置されている各種の障害物(オブジェクト)との衝突を回避しつつ、標的体であるロックオンした敵キャラクタEを確実に通過(貫通)するようなビームBの制御が実現される。またこのとき、各区間Sの軌道は曲線として計算されるので、滑らかで自然なビームBの移動が実現される。
【0141】
また、ビームBの発射点P0からロックオンした各敵キャラクタEの位置である通過点Pを順に通過する軌道と障害物Dとの衝突判定が行われることで、さほど大きな処理負荷をかけることなく、事前のビームBと障害物Dとの衝突判定を実現できる。
【0142】
更に、衝突判定の結果、障害物Dとの衝突が判定された区間Sについては、その障害物Dの近傍に設定した回避通過点Rを通過する回避用軌道に沿ってビームBを進める(移動させる)といった簡易な方法で、確実に障害物Dを回避させるビームBの制御を実現できる。
【0143】
[変形例]
尚、本発明の適用は上述した実施形態に限定されることなく、本発明の趣旨を逸脱しない範囲で適宜変更可能である。
【0144】
例えば、上述した実施形態では、本発明を業務用ゲーム装置に適用した場合について説明したが、業務用ゲーム装置のみではなく、家庭用ゲーム装置といった種々の装置にも同様に適用できる。
【0145】
図25は、本発明を適用した家庭用ゲーム装置の概略外観図である。同図に示すように、家庭用ゲーム装置1200は、本体装置1220と、プレーヤがゲーム操作を入力するための方向キー1212やボタンスイッチ1214を有するゲームコントローラ1210と、スピーカ1232を有するディスプレイ1230と、を備える。ゲームコントローラ1210は本体装置1220に接続され、ディスプレイ1230は、画像信号及び音信号を伝送可能なケーブル1202によって本体装置1220に接続されている。
【0146】
本体装置1220がゲーム処理を行うために必要なプログラムやデータ等を含むゲーム情報等は、例えば本体装置1220に着脱自在な情報記憶媒体であるCD−ROM1240やメモリカード1252、ICカード1254等に格納されている。或いは、ゲーム情報等は、本体装置1220が具備する通信装置1224を介して通信回線Nに接続し、外部装置から取得することとしても良い。ここで、通信回線Nとは、データ授受が可能な通信路を意味する。即ち、通信回線Nとは、直接接続のための専用線(専用ケーブル)やイーサネット(登録商標)等によるLANの他、電話通信網やケーブル網、インターネット等の通信網を含む意味であり、また、通信方式については有線/無線を問わない。
【0147】
また、本体装置1220は、例えばCPUの他、ROMやRAM等のメモリを搭載した制御ユニット1222、CD−ROM1240等の情報記憶媒体の読取装置を具備する。本体装置1220は、CD−ROM1240等から読み出したゲーム情報と、ゲームコントローラ1210からの操作信号とに基づいて種々のゲーム処理を実行し、ゲーム画面の画像信号及びゲーム音の音信号を生成する。そして、生成した画像信号及び音信号をディスプレイ1230に出力して、ディスプレイ1230にゲーム画面を表示させるとともに、スピーカ1232からゲーム音を出力させる。
【0148】
プレーヤは、ディスプレイ1230に表示されたゲーム画面を見て、スピーカ1232から出力されるゲーム音を聞きながら、ゲームコントローラ1210を操作してシューティングゲームを楽しむ。具体的には、例えばカーソルキー1212を操作して画面上の照準位置を移動させて敵キャラクタEをロックオンし、ボタンスイッチ1214を操作することでビームBの発射指示を入力することができる。
【図面の簡単な説明】
【0149】
【図1】実施形態における業務用ゲーム装置の外観例。
【図2】ロックオン中のゲーム画面例。
【図3】ビーム発射中のゲーム画面例。
【図4】敵キャラクタのビーム通過順決定の説明図。
【図5】ビーム制御の概要図。
【図6】エルミート曲線の説明図。
【図7】発射点及び通過点の接線ベクトルの決定方法。
【図8】回避通過点の接線ベクトルの決定方法。
【図9】回避通過点の設定方法。
【図10】開始区間の衝突判定の説明図。
【図11】各区間のビームの進行制御の説明図。
【図12】各区間の衝突判定の説明図。
【図13】実施形態の機能構成図。
【図14】敵キャラ情報のデータ構成例。
【図15】ロックオンリストのデータ構成例。
【図16】軌道計算用テーブルのデータ構成例。
【図17】ビーム通過位置情報のデータ構成例。
【図18】ステージ構築情報のデータ構成例。
【図19】ゲーム進行処理の流れ図。
【図20】ゲーム進行処理中に実行されるビーム発射処理の流れ図。
【図21】ビーム発射処理中に実行される発射時処理の流れ図。
【図22】ビーム発射時処理中に実行されるビーム延伸処理の流れ図。
【図23】ビーム発射処理中に実行される事前判定処理の流れ図。
【図24】ハードウェア構成図。
【図25】本発明を適用する家庭用ゲーム装置の外観例。
【符号の説明】
【0150】
1000 業務用ゲーム装置
100 操作入力部
200 処理部
210 ゲーム演算部
212 敵キャラ制御部
214 ロックオン管理部
216 ビーム制御部
230 画像生成部
240 音生成部
330 画像表示部
340 音出力部
400 記憶部
410 ゲームプログラム
422 ステージ構築情報
424 自キャラ情報
426 敵キャラ情報
428 視点情報
452 ロックオンリスト
424 軌道計算用テーブル
425 標的テーブル
426 回避通過点テーブル
428 ビーム通過位置情報
30 ガン型コントローラ
32 引き金

【特許請求の範囲】
【請求項1】
障害物及び標的体が配置されたゲーム空間を移動して前記標的体を貫通する移動体を制御するゲーム装置であって、
前記ゲーム空間中に複数の標的候補体を配置し、当該標的候補体の移動を制御する標的候補体制御手段と、
プレーヤの操作に従って前記標的候補体の中から標的体とする標的候補体を蓄積的に選択する標的体選択手段と、
前記選択された各標的体の通過順序を決定する順序決定手段と、
前記決定された通過順序に従って前記選択された各標的体を貫通させるように前記移動体の移動を制御する移動制御手段と、
前記移動体と前記障害物との衝突を事前に判定する事前判定手段と、
を備え、前記移動制御手段が、前記事前判定手段による判定に応じて前記移動体の移動を制御し、当該障害物との衝突を回避して移動させる回避制御手段を有することを特徴とするゲーム装置。
【請求項2】
前記移動制御手段が、前記選択された各標的体を前記決定された順序に従って結ぶ軌道を算出する軌道算出手段を有し、算出された軌道に沿って前記移動体の移動を制御し、
前記事前判定手段が、前記算出された軌道と前記障害物との衝突を判定することで前記移動体と前記障害物との衝突を事前に判定する、
ことを特徴とする請求項1に記載のゲーム装置。
【請求項3】
前記軌道算出手段が、前記選択された各標的体を前記決定された順序に従って結ぶ曲線状の軌道を算出することを特徴とする請求項2に記載のゲーム装置。
【請求項4】
前記軌道算出手段が、前記標的候補体制御手段によって制御される前記標的候補体の位置変化に応じて、算出した軌道を補正することを特徴とする請求項2又は3に記載のゲーム装置。
【請求項5】
前記回避制御手段が、前記事前判定手段により衝突すると判定された障害物を回避する軌道を算出する回避軌道算出手段を有し、前記算出された回避用軌道に沿って前記移動体の移動を制御することで前記障害物を回避することを特徴とする請求項1〜4の何れか一項に記載のゲーム装置。
【請求項6】
前記回避制御手段が、前記事前判定手段により衝突すると判定された障害物の周辺に回避通過点を設定する回避通過点設定手段を有し、
前記回避軌道算出手段が、前記回避通過点設定手段により設定された回避通過点を通過するように回避用軌道を算出する、
ことを特徴とする請求項5に記載のゲーム装置。
【請求項7】
前記事前判定手段が、前記障害物における衝突位置を算出する衝突位置算出手段を有し、
前記回避通過点設定手段が、前記衝突位置算出手段により算出された衝突位置と、前記移動体の移動方向とに基づいて回避通過点の設定位置を決定する、
ことを特徴とする請求項6に記載のゲーム装置。
【請求項8】
前記移動制御手段が、プレーヤによる開始指示操作に応じて前記移動体の移動を開始し、
前記順序決定手段が、前記開始指示操作が入力された際に、前記選択された各標的体の位置関係に基づいて前記各標的体の通過順序を決定する、
ことを特徴とする請求項1〜7の何れか一項に記載のゲーム装置。
【請求項9】
銃型コントローラと、
前記銃型コントローラのゲーム画面に対する照準位置を検出する照準検出手段と、
を更に備え、
前記標的体選択手段が、プレーヤによる開始指示操作が入力されるまでの間、前記照準検出手段により検出される照準位置に基づいて標的体とする標的候補体を蓄積的に選択する、
ことを特徴とする請求項1〜8の何れか一項に記載のゲーム装置。
【請求項10】
コンピュータに、障害物及び標的体が配置されたゲーム空間を移動して前記標的体を貫通する移動体を制御させるためのプログラムであって、
前記ゲーム空間中に複数の標的候補体を配置し、当該標的候補体の移動を制御する標的候補体制御手段、
プレーヤの操作に従って前記標的候補体の中から標的体とする標的候補体を蓄積的に選択する標的体選択手段、
前記選択された各標的体の通過順序を決定する順序決定手段、
前記決定された通過順序に従って前記選択された各標的体を貫通させるように前記移動体の移動を制御する移動制御手段、
前記移動体と前記障害物との衝突を事前に判定する事前判定手段、
として前記コンピュータを機能させるとともに、前記移動制御手段が、前記事前判定手段による判定に応じて前記移動体の移動を制御し、当該障害物との衝突を回避して移動させる回避制御手段を有するように前記コンピュータを機能させるためのプログラム。
【請求項11】
請求項10に記載のプログラムを記憶するコンピュータ読取可能な情報記憶媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate