説明

ゲーム装置、ゲーム装置の制御方法、及びプログラム

【課題】移動物体を用いて行われるスポーツのゲームにおいて、ほぼ無回転の状態の移動物体が予測不可能な軌道を描く様子を、処理負荷の軽減を図りつつ表現する。
【解決手段】移動物体を用いて行われるスポーツのゲームを実行するゲーム装置10であって、ゲーム空間において前記移動物体が移動を開始する際の初期位置を取得する位置取得部64と、前記ゲーム空間において前記移動物体が移動を開始する際の初期方向を取得する方向取得部66と、前記位置取得部64が取得した初期位置と前記方向取得部66が取得した初期方向とに基づいて前記移動物体の移動を開始させ、前記移動物体を移動させる移動制御部68と、を含み、移動制御部68は、前記移動物体の進行方向を、前記移動物体の元々の進行方向と乱数とに基づいて決定される進行方向に複数回変更する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ゲーム装置、ゲーム装置の制御方法、及びプログラムに関する。
【背景技術】
【0002】
従来、複数のオブジェクトが配置されたゲーム空間の全体又は一部をゲーム画面に表示するゲーム装置が知られている。移動物体(ボール又はパック等)を用いて行われるスポーツゲームを実行するゲーム装置を例に挙げると、実際のスポーツの試合と同じように各オブジェクトが配置されたゲーム空間の全体又は一部がゲーム画面に表示される。
【0003】
例えば、サッカーゲームにおけるフリーキックの場面では、キッカーの選手やディフェンスの選手に対応する選手オブジェクト、サッカーボールのオブジェクト、ゴールオブジェクト等がゲーム画面に表示される。ユーザは、コントローラを操作してシュートを狙う場所を決定する。そして、ユーザが、所定の指示をコントローラから入力すると、選手オブジェクトは助走を開始してシュートをする。フリーキックのシュートの際には、選手オブジェクトにフェイント動作を行わせるゲーム装置が知られている(特許文献1)。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2005−245784号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
実際のスポーツの試合では、技量の高い選手は種々の技を習得している。例えば、サッカーのフリーキックにおいては、技量の低い選手は、単純な弧を描くカーブをかけたり、直進するシュートを放つことしかできないが、技量の高い選手は、いわゆる無回転シュートを放つことができる。選手がボールをキックして無回転シュートを放つと、ボールは、空中に浮いている間、ほぼ無回転の状態を保つ。無回転シュートは、ボール周囲の空気抵抗の変化のために予測不可能な軌道を描く。
【0006】
例えば、上記のようなサッカーゲームでは、無回転シュートをユーザが指示できるようになれば、技量の高いスター選手のようなプレイをユーザに実感させることが可能になる。この点、サッカーゲームにおいて無回転シュートを実現するための方法としては、物理シミュレーション演算を行うことによって、ほぼ無回転の状態のボールが予測不可能な軌道を描く様子を表す方法が考えられる。しかしながら、物理シミュレーション演算を行えば、無回転シュートの軌道を表すことが可能ではあるが、複雑な計算のために、ゲーム装置の処理負荷が重くなってしまう。
【0007】
本発明は、上記課題に鑑みてなされたものであって、その目的とするところは、移動物体を用いて行われるスポーツのゲームにおいて、ほぼ無回転の状態の移動物体が予測不可能な軌道を描く様子を、処理負荷の軽減を図りつつ表現することが可能なゲーム装置、ゲーム装置の制御方法、及びプログラムを提供することである。
【課題を解決するための手段】
【0008】
上記課題を解決するために、本発明に係るゲーム装置は、移動物体を用いて行われるスポーツのゲームを実行するゲーム装置であって、ゲーム空間において前記移動物体が移動を開始する際の初期位置を取得する位置取得手段と、前記ゲーム空間において前記移動物体が移動を開始する際の初期方向を取得する方向取得手段と、前記位置取得手段が取得した初期位置と前記方向取得手段が取得した初期方向とに基づいて前記移動物体の移動を開始させ、前記移動物体を移動させる制御手段と、を含み、前記制御手段は、前記移動物体の進行方向を、前記移動物体の元々の進行方向と乱数とに基づいて決定される進行方向に複数回変更する変更手段を含むことを特徴とする。
【0009】
また、本発明に係るゲーム装置の制御方法は、移動物体を用いて行われるスポーツのゲームを実行するゲーム装置の制御方法であって、ゲーム空間において前記移動物体が移動を開始する際の初期位置を取得する位置取得ステップと、前記ゲーム空間において前記移動物体が移動を開始する際の初期方向を取得する方向取得ステップと、前記初期位置と前記初期方向とに基づいて前記移動物体の移動を開始させ、前記移動物体を移動させる制御ステップと、を含み、前記制御ステップは、前記移動物体の進行方向を、前記移動物体の元々の進行方向と乱数とに基づいて決定される進行方向に複数回変更する変更ステップを含むことを特徴とする。
【0010】
また、本発明に係るプログラムは、移動物体を用いて行われるスポーツのゲームを実行するゲーム装置としてコンピュータを機能させるためのプログラムであって、ゲーム空間において前記移動物体が移動を開始する際の初期位置を取得する位置取得手段、前記ゲーム空間において前記移動物体が移動を開始する際の初期方向を取得する方向取得手段、前記位置取得手段が取得した初期位置と前記方向取得手段が取得した初期方向とに基づいて前記移動物体の移動を開始させ、前記移動物体を移動させる制御手段、として前記コンピュータを機能させ、前記制御手段は、前記移動物体の進行方向を、前記移動物体の元々の進行方向と乱数とに基づいて決定される進行方向に複数回変更する変更手段として機能することを特徴とする。このコンピュータは、パーソナルコンピュータ、サーバコンピュータ、家庭用ゲーム機、業務用ゲーム機、携帯用ゲーム機、携帯電話機、携帯情報端末等である。また、プログラムは、CD−ROMやDVD−ROM等のコンピュータ読み取り可能な情報記憶媒体に格納されてもよい。
【0011】
本発明によれば、移動物体を用いて行われるスポーツのゲームにおいて、ほぼ無回転の状態の移動物体が予測不可能な軌道を描く様子を、処理負荷の軽減を図りつつ表現することが可能になる。
【0012】
また、本発明の一態様では、前記制御手段は、前記移動物体の移動速度が基準値以下となった場合、前記変更手段が進行方向を変更することを制限する変更制限手段を含むようにしてもよい。
【0013】
また、本発明の一態様では、前記制御手段は、所定の演算処理によって得られる前記移動物体の垂直方向の位置が直前の垂直方向の位置よりも低い場合、前記移動物体の垂直方向の位置を前記所定の演算処理によって得られる垂直方向の位置よりも低くなるように制御する垂直位置変更手段を含むようにしてもよい。
【0014】
また、本発明の一態様では、前記変更手段が変更した進行方向の変更履歴を記憶する記憶手段を更に含み、前記制御手段は、前記変更履歴に基づいて、前記移動物体の進行方向を変更する手段を含むようにしてもよい。
【0015】
また、本発明の一態様では、前記ゲーム装置は、ユーザが指し示すゲーム画面上の位置に関する位置データを入力するポインティングデバイスを含み、当該ポインティングデバイスから第一の入力を受け付けるとゲームキャラクターに準備動作を開始させるものであって、前記方向取得手段は、前記ゲームキャラクターが準備動作を開始した後の基準タイミングにおいて入力された前記位置データに基づいて初期方向を取得し、所定の条件を満たした場合、前記ゲームキャラクターが準備動作を開始してから前記基準タイミングが訪れるまでの間に前記ポインティングデバイスを振動させる振動指示手段を更に含むようにしてもよい。
【0016】
また、本発明の一態様では、前記ゲーム装置は、ユーザが指し示すゲーム画面上の位置に関する位置データを入力するポインティングデバイスと、前記位置データに対応する位置に指標を表示させる表示制御手段と、を更に含み、前記方向取得手段は、前記位置データに基づいて初期方向を取得し、前記表示制御手段は、所定の条件を満たした場合、前記指標を位置データに対応する位置からずらして表示させるようにしてもよい。
【0017】
また、本発明の一態様では、前記変更手段は、前記制御手段が前記移動物体の移動を開始させた後において、所定フレーム間隔毎の前記移動物体の進行方向を、前記移動物体の元々の進行方向と乱数とに基づいて決定する決定手段を含み、当該決定された進行方向に前記移動物体の進行方向を変更するようにしてもよい。
【0018】
また、本発明の一態様では、前記変更手段は、前記制御手段が前記移動物体の移動を開始させる前において、前記移動物体が移動すべき軌道を算出する軌道算出手段を含み、前記制御手段は、前記軌道算出手段が算出した軌道に基づいて前記移動物体を移動させ、前記軌道算出手段は、所定時間間隔毎の前記移動物体の進行方向を、前記移動物体の元々の進行方向と乱数とに基づいて決定する決定手段を含み、当該決定された進行方向に基づいて軌道を算出するようにしてもよい。
【図面の簡単な説明】
【0019】
【図1】本発明の実施形態に係るゲーム装置のハードウェア構成を示す図である。
【図2】操作入力部の一例を示す図である。
【図3】コントローラの一例を示す図である。
【図4】仮想3次元空間の一例を示す図である。
【図5】ゲーム画面の一例を示す図である。
【図6】実施形態1に係るゲーム装置において実現される機能群を示す機能ブロック図である。
【図7】ゲーム装置において実行される処理の一例を示すフロー図である。
【図8】ゲーム装置において実行される処理の一例を示すフロー図である。
【図9】水平方向の移動の様子を示す模式図である。
【図10】垂直方向の移動の様子を示す模式図である。
【図11】変更履歴のデータ格納例である。
【図12】実施形態2に係るゲーム装置において実行される処理の一例を示すフロー図である。
【図13】実施形態3に係るゲーム装置に実現される機能群を示す機能ブロック図である。
【図14】実施形態3に係るゲーム装置において実行される処理の一例を示すフロー図である。
【図15】実施形態4に係るゲーム装置に実現される機能群を示す機能ブロック図である。
【図16】実施形態4に係るゲーム装置において実行される処理の一例を示すフロー図である。
【発明を実施するための形態】
【0020】
[1.実施形態1]
以下、本発明の実施形態1について、図面に基づき詳細に説明する。本発明の実施形態に係るゲーム装置は、例えば、家庭用ゲーム機(据置型ゲーム機)、携帯ゲーム機、携帯電話機、携帯情報端末(PDA)又はパーソナルコンピュータ等によって実現される。ここでは、実施形態1に係るゲーム装置を家庭用ゲーム機によって実現する場合について説明する。
【0021】
[1−1.ゲーム装置のハードウェア構成]
図1は、実施形態1に係るゲーム装置のハードウェア構成を示す図である。図1に示すゲーム装置10は、家庭用ゲーム機11、表示部30、音声出力部31、光ディスク32及びメモリカード33を含む。表示部30及び音声出力部31は、家庭用ゲーム機11に接続される。光ディスク32及びメモリカード33は情報記憶媒体であり、家庭用ゲーム機11に装着される。表示部30としては、例えば、家庭用テレビ受像機が用いられる。音声出力部31としては、例えば、家庭用テレビ受像機に内蔵されたスピーカが用いられる。光ディスク32としては、例えば、CD−ROMやDVD−ROMなどが用いられる。
【0022】
家庭用ゲーム機11は、公知のコンピュータゲームシステムである。家庭用ゲーム機11は、バス12、マイクロプロセッサ13、主記憶14、画像処理部15、音声処理部16、光ディスクドライブ17、メモリカードスロット18、通信インタフェース(I/F)19、コントローラインタフェース(I/F)20、及び操作入力部21を含む。操作入力部21以外の構成要素は、家庭用ゲーム機11の筐体内に収容される。
【0023】
バス12は、アドレス及びデータを家庭用ゲーム機11の各部でやり取りするための通信路である。マイクロプロセッサ13、主記憶14、画像処理部15、音声処理部16、光ディスクドライブ17、メモリカードスロット18、通信インタフェース19、及びコントローラインタフェース20は、バス12によって、相互データ通信可能に接続される。
【0024】
マイクロプロセッサ13は、図示しないROM(Read Only Memory)等に格納されるオペレーティングシステムや、光ディスク32又はメモリカード33から読み出されるプログラム及びデータに基づいて、家庭用ゲーム機11の各部を制御する。
【0025】
主記憶14は、RAM(Random Access Memory)を含み、光ディスク32又はメモリカード33から読み出されたプログラムやデータが、必要に応じて書き込まれる。主記憶14は、マイクロプロセッサ13の作業用メモリ領域としても用いられる。
【0026】
画像処理部15は、VRAM(Video RAM)を含み、マイクロプロセッサ13から送られる画像データに基づいてVRAM上にゲーム画面を描画する。画像処理部15は、このゲーム画面をビデオ信号に変換し、所定のタイミングで表示部30に出力する。
【0027】
音声処理部16は、サウンドバッファを含む。音声処理部16は、光ディスク32からサウンドバッファに読み出された音声データを再生することにより、各種ゲーム音声(ゲーム音楽、ゲーム効果音、メッセージ等)を、音声出力部31から出力する。
【0028】
光ディスクドライブ17は、光ディスク32に記録されたプログラムやデータをマイクロプロセッサ13からの指示に従って読み取る。本実施形態においては、プログラムやデータを家庭用ゲーム機11に供給するために、光ディスク32を用いることとするが、例えば、メモリカード33などの他のあらゆる情報記憶媒体を用いるようにしてもよい。また、インターネットなどのデータ通信網を介して、遠隔地からプログラムやデータを家庭用ゲーム機11に供給するようにしてもよい。
【0029】
メモリカードスロット18は、メモリカード33を装着するためのインタフェースである。メモリカード33は、不揮発性メモリ(例えばEEPROMなど)を含み、例えば、セーブデータなどの各種ゲームデータを記憶する。
【0030】
通信インタフェース19は、インターネットなどのデータ通信網に通信接続するためのインタフェースである。
【0031】
コントローラインタフェース20は、複数のコントローラ22を無線接続するためのインタフェースである。コントローラインタフェース20としては、例えば、Bluetooth(登録商標)インタフェース規格に則ったインタフェースを利用できる。なお、コントローラインタフェース20は、コントローラ22を有線接続するためのインタフェースとしてもよい。
【0032】
操作入力部21は、ユーザが操作入力を行うためのものである。操作入力部21は、例えば、表示部30に表示されるゲーム画面内の位置をユーザが指し示すためのポインティングデバイスとしての機能を備える。操作入力部21としては、例えば、特許3262677号公報に開示される技術を利用できる。
【0033】
なお、操作入力部21は、マイクロプロセッサ13に対して、ユーザが指し示す位置に関する位置データや各種ボタンに対応する所定の信号を入力可能である公知の種々のポインティングデバイスが用いられてよく、これに限られない。例えば、コントローラインタフェース20を介して無線接続されるジョイスティックやマウス等であってもよい。
【0034】
操作入力部21は、コントローラ22と、発光部25と、を含む。図2は、操作入力部21の一例を示す図である。図2に示すように、発光部25は、複数の光源を含み、表示部30の上部に配置される。図2に示す例では、発光部25の両端部に光源34a,34bが設けられている。なお、発光部25は、表示部30の下部に配置されるようにしてもよい。
【0035】
図3は、コントローラ22の一例を示す図である。図3に示すように、コントローラ22は、方向ボタン36、ボタン37a,37b,37cを含む。方向ボタン36は、十字形状を有し、主に方向指示操作に用いられる。ボタン37a,37b,37cは、主に各種ゲーム操作に用いられる。
【0036】
また、図1に示すように、コントローラ22は、撮像部23と撮影画像解析部24とを含む。撮像部23は、例えば、CCD(Charge Coupled Device)などの撮像素子であり、コントローラ22の前端部22aに設けられる。撮影画像解析部24は、例えば、マイクロプロセッサなどであり、コントローラ22に内蔵される。
【0037】
ユーザが、コントローラ22の前端部22aを表示部30の方に向けると、撮像部23によって撮影される撮影画像には、光源34a及び光源34bが含まれる。撮影画像解析部24は、撮像部23の撮影画像に写し出された光源34a及び光源34bの位置を解析し、その解析結果に基づいてコントローラ22の位置及び傾きを取得する。例えば、撮影画像解析部24は、発光部25に含まれる所定の基準位置35に対するコントローラ22の相対位置と、光源34a及び光源34bを結ぶ直線に対するコントローラ22の傾き角度と、を算出する。
【0038】
ゲーム装置10は、基準位置35と、表示部30に表示されるゲーム画面と、の位置関係に関する情報を、図示しないROM等に予め記憶する。ゲーム装置10は、この情報と、撮影画像解析部24によって取得されるコントローラ22の位置及び傾きと、に基づいて、コントローラ22の前端部22aが指し示す位置P0のスクリーン座標値(スクリーン座標系の座標値)を取得する。
【0039】
なお、撮影画像解析部24によって取得されるコントローラ22の位置及び傾きを示す情報、即ち、コントローラ22の前端部22aが指し示す位置P0のスクリーン座標値を特定するための情報のことを「ポインティング情報」と記載する。
【0040】
また、コントローラ22は、図示しないバイブレータを含んでもよい。コントローラ22に対して所定の信号が入力されると、このバイブレータを振動させることができる。
【0041】
コントローラ22からマイクロプロセッサ13に対しては、一定周期毎(例えば1/60(秒))にコントローラ22の操作状態を表す操作信号がコントローラインタフェース20を介して送信される。この操作信号には、例えば、上記のポインティング情報と、各ボタンの押下状態を示す情報と、が含まれる。
【0042】
マイクロプロセッサ13は、コントローラ22から供給される操作信号に基づいて、コントローラ22の前端部22aが指し示す位置P0を特定したり、そのコントローラ22において方向ボタン36、ボタン37a,37b,37cが押下されたか否かを判定したりする。
【0043】
[1−2.ゲーム装置で実行されるゲーム]
上記ゲーム装置10では、例えば、ユーザの操作対象チームと、対戦相手チームと、がサッカーの試合を行うサッカーゲームが実行される。このサッカーゲームは、マイクロプロセッサ13が、光ディスク32から読み出したプログラムを実行することによって実現される。
【0044】
ゲーム装置10の主記憶14には、仮想3次元空間が構築される。図4は、仮想3次元空間の一例を示している。図4に示すように、仮想3次元空間には、互いに直交するXw軸、Yw軸、及びZw軸が設定される。仮想3次元空間内の位置は、これらの座標軸のワールド座標値(ワールド座標系の座標値)により特定される。また、仮想3次元空間には、サッカーフィールドを表すフィールドオブジェクト38が配置される。フィールドオブジェクト38は、例えば、Xw−Zw平面に平行に配置される。
【0045】
フィールドオブジェクト38上には、以下のオブジェクトが配置される。
(1)サッカーボール(移動物体)を表すボールオブジェクト42
(2)2つのゴールオブジェクト40
(3)11体の操作対象チームに属する選手オブジェクト44
(4)11体の対戦相手チームに属する選手オブジェクト46
【0046】
ボールオブジェクト42は、仮想3次元空間内を移動する。仮想3次元空間には、仮想カメラ48(視点)が設定される。仮想3次元空間を仮想カメラ48から見た様子を表すゲーム画面が表示部30に表示される。例えば、ボールオブジェクト42が、常にゲーム画面に含まれるように、仮想カメラ48は、ボールオブジェクト42の位置に基づいて仮想3次元空間内を移動する。
【0047】
選手オブジェクト44又は選手オブジェクト46が、フリーキックを要する反則をすると、ゲーム画面が切り替わり、表示部30にはフリーキックのゲーム画面が表示される。マイクロプロセッサ13が、ゲーム中の反則を判定する方法は、公知の様々な方法を適用可能とする。例えば、選手オブジェクト44の腕の部分にボールオブジェクト42が当たった場合(いわゆる、「ハンド」の反則)には、マイクロプロセッサ13は、フリーキックを要する反則が発生したと判定する。マイクロプロセッサ13が、フリーキックを要する反則と判定した場合には、所定の位置からのフリーキックとなる。
【0048】
図5は、表示部30に表示されるフリーキックにおけるゲーム画面の一例を示している。図5に示す例では、ゲーム画面には、ゴールオブジェクト40と、ボールオブジェクト42と、ユーザの操作対象チームに属する2体の選手オブジェクト44a,44bと、対戦相手チームに属する3体の選手オブジェクト46a,46b,46cと、が含まれる。
【0049】
本実施形態においては、フリーキックにおけるゲーム画面では、仮想カメラ48は、フリーキックのキッカーとなる選手オブジェクト44aの背面側に移動する。以降、フリーキックのキッカーとなる選手を操作対象選手という。図5の例では、操作対象選手は、選手オブジェクト44aである。操作対象選手は、コントローラ22からの入力により変更可能である。
【0050】
なお、フリーキックを要する反則が発生した場合には、仮想カメラ48を常に操作対象選手の背面側に移動させるようにしてもよいし、ゴールオブジェクト40から一定距離以内において反則が発生した場合にのみ、仮想カメラ48を操作対象選手の背面側に移動させるようにしてもよい。即ち、操作対象選手が、相手のゴールに対してシュートを狙わないような位置で発生した反則のフリーキックの場合には、仮想カメラ48が操作対象選手の背面側に移動せず、視点が切り替わらなくてもよい。
【0051】
また、ゲーム画面には、カーソル52が表示される。カーソル52は、コントローラ22を介してユーザによって指示されている位置に基づいて、ゲーム画面上に表示される。カーソル52は、ボールオブジェクト42が進行すべき方向を示すものである。即ち、操作対象選手がシュートを狙っている場所を示す。
【0052】
先述したように、マイクロプロセッサ13は、一定周期毎にコントローラ22の操作状態を表す操作信号を、コントローラインタフェース20を介して受信する。マイクロプロセッサ13は、この操作信号に基づいて、所定周期毎に表示部30に表示させるカーソル52及びゲーム画面の表示を更新する。この所定周期毎(例えば、1/60(秒))に表示部30に表示されるゲーム画面のそれぞれをフレームという。
【0053】
以下、図5に示すゲーム画面において、操作対象選手にシュートを行わせるための操作について、詳細に説明する。
【0054】
まず、ユーザは、コントローラ22を操作して、操作対象選手にシュートをさせたい位置、例えば、ゴールオブジェクト40の枠内に、カーソル52を合わせる。次いで、ユーザは、コントローラ22のシュート指示を示すボタン(例えば、ボタン37a)を押下する。マイクロプロセッサ13は、シュート指示を示す信号(第一の入力)が、コントローラインタフェース20を介して入力されると、操作対象選手の助走(準備動作)を開始させる。
【0055】
この際、後述する処理により、ボールオブジェクト42が移動を開始する際の初期位置と、ボールオブジェクト42が移動を開始する際の初期方向と、が取得される。例えば、この初期位置は、後述するゲーム状況データに格納されるボールオブジェクト42の位置座標P1であり、初期方向は、ポインティング情報に対応するワールド座標系の位置座標(以降、ポインティング位置座標P2という。)と位置座標P1を結ぶ方向である。ポインティング位置座標P2は、ポインティング情報に基づいた所定の座標変換処理が行われることにより取得される。
【0056】
操作対象選手が、ボールオブジェクト42をキックすると、ボールオブジェクト42の移動が開始する。例えば、操作対象選手の足の部分がボールオブジェクト42に当たると、ボールオブジェクト42が移動を開始する。以降では、ボールオブジェクト42の移動方向のうち、Xw−Zw平面で表される水平方向を水平進行方向、Yw−Zw平面で表現される垂直方向を垂直進行方向という。
【0057】
無回転シュートの指示を示すボタン(例えば、ボタン37b)が押下されたまま、シュート指示を示すボタンが押下されると、後述の処理によりマイクロプロセッサ18は、予測不可能に揺れるようにボールオブジェクト42を移動させる。具体的には、無回転シュートの指示が入力されると、マイクロプロセッサ13により、ボールオブジェクト42の進行方向が、元々の進行方向と乱数とに基づいて決定される進行方向に複数回変更される。
【0058】
また、シュートを放たずに、パスをする旨の指示を示すボタン(例えば、ボタン37c)が押下された場合、マイクロプロセッサ13は、カーソル52に対応するポインティング位置座標P2(例えば、フィールドオブジェクト38のペナルティエリア内)に対して、操作対象選手にパスをさせることもできる。
【0059】
[1−3.ゲーム装置で実現される機能]
図6は、ゲーム装置10において実現される機能群を示す機能ブロック図である。図6に示すように、ゲーム装置10では、入力部58と、ゲームデータ記憶部60と、ゲーム制御部62と、が実現される。これらの機能は、マイクロプロセッサ13が光ディスク32から読み出されたプログラムに従って動作することにより、実現される。
【0060】
[1−3−1.入力部]
入力部58は、コントローラ22を主として実現される。入力部58は、ゲーム制御部62に対してポインティング情報を入力する。
【0061】
[1−3−2.ゲームデータ記憶部]
ゲームデータ記憶部60は、主記憶14及び光ディスク32を主として実現される。ゲームデータ記憶部60は、サッカーゲームに必要な各種データを記憶する。本実施形態の場合、ゲームデータ記憶部60は、ゲーム状況データと、選手パラメータデータと、を記憶する。
【0062】
ゲーム状況データは、主記憶14に記憶される。ゲーム状況データは仮想3次元空間の現在の状況を示すデータである。つまり、図4に示す仮想3次元空間は、ゲーム状況データに基づいて主記憶14に構築される。
【0063】
ゲーム状況データは、ボールオブジェクト42に対応する仮想3次元空間における位置座標、進行方向、及び移動速度を示すデータ、後述する処理によりボールオブジェクト42の進行方向が変更された際における変更履歴を示すデータ、フィールドオブジェクト38上における仮想的な風向きを示すデータ、操作対象選手を識別するためのデータ、フィールドオブジェクト38上にいる選手オブジェクト44及び選手オブジェクト46に対応する位置座標のデータ等が含まれる。他にも、得点や残り時間等を示すデータ、ボールオブジェクト42の過去のフレームにおける位置座標や進行方向を示すデータがゲーム状況データに含まれていてもよい。
【0064】
選手パラメータデータは、光ディスク32に格納される。選手パラメータデータは、選手オブジェクト44及び選手オブジェクト46の能力値や、右利き又は左利き等の個別設定値を示すデータである。本実施形態においては、選手パラメータデータが所定の条件を満たしている選手オブジェクト44及び選手オブジェクト46は、フリーキックにおいて無回転シュートを放つことができる。
【0065】
[1−3−3.ゲーム制御部]
ゲーム制御部62は、例えば、マイクロプロセッサ13を主として実現される。ゲーム制御部62は、本発明に関連する機能として、位置取得部64と、方向取得部66と、移動制御部68と、を含む。
【0066】
[位置取得部]
位置取得部64は、ゲーム状況データに格納された値に基づいて、フリーキックにおけるボールオブジェクト42が移動を開始する際の初期位置を取得する。本実施形態においては、ゲーム状況データに格納されたボールオブジェクト42の位置座標P1を初期位置として使用する。即ち、位置取得部64は、フリーキックの際にボールが置かれている位置に関する情報を取得する。
【0067】
[方向取得部]
方向取得部66は、仮想3次元空間においてボールオブジェクト42が移動を開始する際の初期方向を取得する。方向取得部66は、入力部58から入力されるポインティング情報に基づいて初期方向を取得する。本実施形態においては、カーソル52に対応するポインティング位置座標P2と位置座標P1とを結ぶ方向を初期方向とする。即ち、方向取得部66は、操作対象選手がシュートを狙っている方向に関する情報を取得する。なお、操作対象選手のキック精度等の能力値に応じて、初期方向を上記方向からずらすようにしてもよい。
【0068】
[移動制御部]
移動制御部68(制御手段)は、位置取得部64が取得した初期位置と、方向取得部66が取得した初期方向と、に基づいてボールオブジェクト42の移動を開始させ、ボールオブジェクト42を移動させる。また、移動制御部68(変更手段)は、後述する処理により、ボールオブジェクト42の進行方向を、元々の進行方向と乱数とに基づいて決定される進行方向に複数回変更する。
【0069】
本実施形態においては、移動制御部68(決定手段)は、所定フレーム間隔毎のボールオブジェクト42の進行方向を、元々の進行方向と乱数とに基づいて決定する。なお、移動制御部68は、ボールオブジェクト42の進行方向を、元々の進行方向と乱数とに基づいて所定の方法で決定される進行方向に複数回変更すればよく、進行方向の決定方法はこれに限られない。例えば、移動制御部68は、所定フレーム間隔毎ではなく、ボールオブジェクト42が移動した所定距離毎や、ユーザがボタン37a等を押下する毎に上記のように決定した進行方向に複数回変更するようにしてもよい。
【0070】
[1−4.ゲーム装置にて実行される処理]
図7及び図8は、ゲーム装置10にて実行される処理の一例を示すフロー図である。図7及び図8の処理は、マイクロプロセッサ13が、プログラムに従って動作することにより実行される。
【0071】
まず、図7に示す処理について説明する。図7に示す処理は、フリーキックにおけるゲーム画面(図5)が表示部30に表示される際に、実行される処理である。
【0072】
図7に示すように、マイクロプロセッサ13(位置取得部64)は、ボールオブジェクト42の初期位置を取得する(S101)。マイクロプロセッサ13は、コントローラ22のシュート指示ボタンが押下されたか否かを判定する(S102)。シュート指示ボタンが押下されていない場合(S102;N)、マイクロプロセッサ13は、コントローラ22のパス指示ボタンが押下されたか否かを判定する(S103)。
【0073】
パス指示ボタンが押下されていない場合(S103;N)、処理はS102に戻り、マイクロプロセッサ13は、コントローラ22のシュート指示ボタンが押下されたか否かを判定する。パス指示ボタンが押下された場合(S103;Y)、マイクロプロセッサ13は、処理を終了する。
【0074】
一方、シュート指示ボタンが押下された場合(S102;Y)、マイクロプロセッサ13は、操作対象選手にシュートの動作を開始させる(S104)。S104においては、操作対象選手がボールオブジェクト42に対して助走を開始する。操作対象選手は、ボールオブジェクト42の近くに来るとキックの動作を行う。
【0075】
マイクロプロセッサ13は、操作対象選手がシュートを狙っている位置が、得点の可能性が高い位置であるか否かを判定する(S105)。具体的には、マイクロプロセッサ13は、ユーザがコントローラ22を介して指し示すカーソル52に対応するポインティング位置座標P2に基づいて得点の可能性が高いか否かを判定する。
【0076】
S105においては、カーソル52が、ゴールオブジェクト40の上隅や下隅の領域、キーパーの選手オブジェクト46との距離が離れている領域内にある場合等は、得点の可能性が高いと判定される。一方、カーソル52が、キーパーの選手オブジェクト46の正面の領域等に示されていた場合には、得点の可能性が低いと判定される。これらの領域は、予め定められているものとする。なお、選手パラメータデータの能力値が高い操作対象選手は、得点の可能性が高いと判定される領域を拡大させてもよい。
【0077】
得点の可能性が高い場合(S105;Y)、マイクロプロセッサ13(方向取得部66)は、操作対象選手がボールオブジェクト42をキックする直前のタイミングにおける初期方向を取得する(S106)。S106においては、マイクロプロセッサ13が、操作対象選手がボールオブジェクト42をキックする直前であると判断したフレームにおけるポインティング位置座標P2を取得する。例えば、このフレームは、操作対象選手の領域が、ボールオブジェクトの位置座標P1から所定距離以内に入った際のフレームである。
【0078】
一方、得点の可能性が高くない場合(S105;N)、マイクロプロセッサ13(方向取得部66)は、シュート指示ボタンが押下されたタイミングにおけるボールオブジェクト42の初期方向を取得する(S107)。このタイミングにおけるポインティング位置座標P2が主記憶14に記憶されているものとする。
【0079】
S106とS107のように、所定の条件に応じて、初期方向を取得するタイミングを異ならしめることにより、ユーザの狙いをぶれやすくしたり、ユーザの狙い通りのシュートコースとなるようにすることができる。
【0080】
次いで、マイクロプロセッサ13は、シュート指示ボタンが押下された際に、コントローラ22の無回転シュート指示ボタンも押下されていたか否かを判定する(S108)。
【0081】
無回転シュート指示ボタンも押下された場合(S108;Y)、マイクロプロセッサ13は、操作対象選手が、無回転シュート可能な選手であるか否かを判定する(S109)。S109においては、先述したように、マイクロプロセッサ13は、操作対象選手に対応する選手パラメータデータの能力値を参照し、所定の閾値以上の選手であるか否かによって判定する。なお、S109の判定方法は、これに限られず、ゲーム状況データや選手パラメータデータに格納された他のパラメータ等によって判定されてもよい。
【0082】
操作対象選手が、無回転シュート可能な選手である場合(S109;Y)、マイクロプロセッサ13(移動制御部68)は、無回転シュートの移動計算処理を実行する(S110)。
【0083】
図8に示す処理は、図7のS110において実行される、無回転シュートの移動処理である。以降説明する処理は、操作対象選手がボールオブジェクト42をキックしたフレーム以降において実行される処理である。
【0084】
まず、図8に示す処理の概要について説明する。
【0085】
無回転シュートの移動処理では、水平進行方向を決定し、所定の演算処理によりボールオブジェクト42の仮位置座標を算出する。この仮位置座標が、一つ前のフレームよりも低い場合には、位置座標が低くなるように制御を行う。ここで、位置座標が低いとは、位置座標のYw軸方向(垂直方向)の値が減少することをいう。即ち、仮位置座標のYw軸方向の値が、一つ前のフレームのボールオブジェクト42のYw軸方向の値よりも減少している場合、この仮位置座標のYw軸方向の値を小さくするように制御が行われる。
【0086】
図9は、無回転シュートにおけるボールオブジェクト42の水平方向の軌道C1を示す模式図である。図9に示すように、所定フレーム毎に水平進行方向が変更されている。ボールオブジェクト42の速度が基準値以下になった場合(図9の位置座標P7)、乱数に基づいた進行方向の決定が制限される。図9の詳細については後述する。
【0087】
図10は、無回転シュートにおけるボールオブジェクト42の垂直方向の軌道C3を示す模式図である。図10に示すように、仮位置座標がフレーム毎に算出され、一つ前のフレームよりも仮位置座標が低い場合(図10のP’(k+4)等)には、位置座標が低くなるように制御が行われる。図10の詳細については後述する。
【0088】
次に、図8に示す処理の詳細について説明する。
【0089】
図8に示すように、マイクロプロセッサ13は、ボールオブジェクト42の移動を開始させる(S201)。具体的には、マイクロプロセッサ13は、S101で取得した初期位置を始点として、S106又はS107で取得した初期方向に対してボールの初速に応じた距離だけ離れた位置座標を算出する。ボールの初速は、選手パラメータデータやシュート指示ボタンが押下された時間等に基づいて算出される。
【0090】
S201において、マイクロプロセッサ13は、ゲーム状況データを更新し、この位置座標にボールオブジェクト42を移動させる。つまり、操作対象選手がボールをキックしたフレームの次のフレームには、この位置座標にボールオブジェクト42が表示される。
【0091】
次いで、マイクロプロセッサ13は、ボールオブジェクト42の進行方向を変更するための所定フレームが経過したか否かを判定する(S202)。この所定フレームは、3フレームや10フレーム等、予め定められた値を用いてよいし、操作対象選手の選手パラメータデータに応じて設定される値を用いてもよい。例えば、操作対象選手の能力が低い場合には10フレーム、能力が高い場合には3フレーム等に設定することにより、能力の高い選手の場合には、より細かくランダムにボールオブジェクト42の軌道を揺らすことができる。
【0092】
所定フレームが経過した場合(S202;Y)、マイクロプロセッサ13は、ゲーム状況データに格納されたボールオブジェクト42の移動速度が基準値以下となったか否かを判定する(S203)。マイクロプロセッサ13は、ボールオブジェクト42の移動距離に応じた値をボールオブジェクト42の初速から減算して、ゲーム状況データを更新する。
【0093】
なお、ボールオブジェクト42の移動速度の算出方法は、ゲーム状況データや選手パラメータデータに基づいて判断されればよく、これに限られない。例えば、ゲーム状況データの風速を示すデータが、ボールオブジェクト42の進行方向に対して追い風を示している場合には、ボールオブジェクト42の移動速度に、風速に応じた所定値を加算させて算出してもよい。
【0094】
ボールオブジェクト42の移動速度が基準値以下でない場合(S203;N)、マイクロプロセッサ13は、ゲームデータ記憶部60に格納された変更履歴に基づいて、ボールオブジェクト42の進行方向を、変更履歴が示す方向とは異なるように変更するか否かを判定する(S204)。
【0095】
図11は、変更履歴のデータ格納例を示す図である。図11に示すように、変更履歴は、後述するS205又はS206において変更されたボールオブジェクト42の進行方向を格納したものである。
【0096】
図11の例では、操作対象選手がボールオブジェクト42をキックしてから10フレーム後に、元々の進行方向からXw−Zw平面の右回りに3°回転させた方向に変更されたことを示す。この変更を1回目とする。同様に、20フレーム後は4°回転させた方向に変更され(2回目の変更)、30フレーム後は2°回転させた方向に変更された(3回目の変更)ことを示す。
【0097】
S204においては、例えば、ボールオブジェクト42の進行方向を同じ方向に所定回数変更したことを変更履歴が示していたり、前回の変更が所定よりも大きな変更であることを変更履歴が示している場合等に、変更履歴が示す方向とは異なるように変更すると判断する。
【0098】
変更履歴が示す方向とは異なるように変更しない場合(S204;N)、マイクロプロセッサ13(移動制御部68、決定手段)は、ボールオブジェクト42の進行方向を、元々の進行方向と乱数とに基づいて決定する(S205)。
【0099】
元々の進行方向とは、S205が実行される際に表示部30に表示されているフレームと、この一つ前のフレームと、の間におけるボールオブジェクト42の移動方向のことである。乱数は、S205が実行される際に、時間関数等に基づいて発生させた乱数Rを使用する。例えば、マイクロプロセッサ13は、S205において、元々の進行方向を基準として、乱数Rの正負と下一桁の値とに基づいて決定される角度θ(−9°〜9°)だけ右回りに回転させた方向に進行方向を決定する。
【0100】
変更履歴が示す方向とは異なるように変更する場合(S204;Y)、マイクロプロセッサ13は、ボールオブジェクト42の進行方向を、元々の水平進行方向とは異なるように決定する(S206)。例えば、元々の水平進行方向が、初期方向とずれている方向と逆方向にずれるように決定される。つまり、操作対象選手から見て右にずれていた場合、左にずれるように決定する。
【0101】
マイクロプロセッサ13(移動制御部68、変更手段)は、ボールオブジェクト42の水平進行方向を、S205又はS206において決定された方向に変更し、変更履歴に進行方向を格納する(S207)。この場合、後述のS208においては、S205又はS206において変更された水平進行方向に基づいて仮位置座標が算出される。
【0102】
一方、所定フレームが経過していない場合(S202;N)、ボールオブジェクト42の速度が基準値以下である場合(S203;Y)、マイクロプロセッサ13は、S204〜S207の処理は実行しない。この場合、後述のS208においては、一つ前のフレームにおける水平進行方向に基づいて仮位置座標が算出される。
【0103】
次いで、マイクロプロセッサ13は、所定の演算処理を行い、ボールオブジェクト42を次のフレームで表示部30に表示させる位置(仮位置座標)を算出する(S208)。例えば、ボールオブジェクト42の過去のフレームの位置座標と、予め定められた通常の重力加速度g(例えば、g=9.8(m/s))と、に基づいて垂直進行方向を特定する。垂直進行方向、水平進行方向、及び移動速度に基づいてボールオブジェクト42の仮位置座標が算出される。
【0104】
S208において算出される仮位置座標は、無回転シュート特有の落ち方をしない場合に、次のフレームにおいてボールオブジェクト42を表示させるべき位置座標である。なお、S208においては、ゲーム状況データに格納されたボールオブジェクト42の過去の進行方向等に基づいて垂直進行方向を特定し、仮位置座標が算出されるようにしてもよい。
【0105】
次いで、マイクロプロセッサ13は、直前のフレームよりもボールオブジェクト42が低いか否かを判定する(S209)。具体的には、マイクロプロセッサ13は、S208において算出された仮位置座標が、ゲーム状況データに格納されたボールオブジェクト42の位置座標よりも低いか否かを判定する。
【0106】
ボールオブジェクト42が低い場合(S209;Y)、マイクロプロセッサ13(移動制御部68、垂直位置変更手段)は、仮位置座標の垂直位置が低くなるように制御する(S210)。
【0107】
S210においては、例えば、マイクロプロセッサ13は、S208において算出された仮位置座標を、通常の重力加速度gよりも大きな重力加速度g(例えば、g=19.6(m/s))に基づいて再度算出する。重力加速度gは、予め定められた値を用いてもよいし、シュート指示ボタンが押下されたタイミング等で発生させた乱数に基づいてランダムに決定されるようにしてもよい。
【0108】
なお、S210においては、S208において算出された仮位置座標を低くなるように制御すればよく、これに限られない。例えば、仮位置座標のYw軸方向成分を、所定値減算させるようにしてもよい。この所定値は、予め定められていてもよいし、乱数に基づいて任意の値が決定されるようにしてもよい。S210における処理により、ボールオブジェクト42が落下し始めた以降のフレームは、通常のシュートよりも大きく落下させることができる。
【0109】
ボールオブジェクト42が高い場合(S209;N)、マイクロプロセッサ13は、S210における処理を行わない。つまり、仮位置座標を低くする制御が行われずに、後述するS211におけるボールオブジェクト42の移動処理が行われる。なお、「ボールオブジェクト42が高い」とは、位置座標のYw軸方向の値が増加することをいう。即ち、仮位置座標のYw軸方向の値が、一つ前のフレームのボールオブジェクト42のYw軸方向の値よりも増加している場合、S209において、ボールオブジェクト42が高いと判定される。
【0110】
マイクロプロセッサ13は、S208で算出された仮位置座標又はS210で制御されて決定された位置座標にボールオブジェクト42を移動させる(S211)。つまり、マイクロプロセッサ13は、次のフレームの表示処理を行い、この位置にボールオブジェクト42を表示させる。この表示処理の際に、マイクロプロセッサ13は、ゲーム状況データのボールオブジェクト42の位置座標、進行方向、及び移動速度を示すデータ等を更新する。
【0111】
マイクロプロセッサ13は、終了条件を満たしているか否かを判定する(S212)。終了条件とは、図8に示す無回転シュートの移動計算処理を終了するための条件であり、例えば、ボールオブジェクト42がゴールオブジェクト40の領域に入るか否か等である。
【0112】
終了条件を満たしていない場合(S212;N)、処理はS202に戻り、マイクロプロセッサ13は、次のフレームの処理を行う。終了条件を満たしている場合(S212;Y)、マイクロプロセッサ13は、処理を終了する。
【0113】
次に、図8に示す処理によってボールオブジェクト42が移動する様子の詳細について説明する。まず、水平方向の移動について説明する。
【0114】
図9に示す軌道C1(実線)は、S110において実行される無回転シュートの移動処理の各フレームにおけるボールオブジェクト42の位置座標を結ぶ線である。また、図9に示すように、ボールオブジェクト42の位置座標P1とポインティング位置座標P2を結んだ直線を軌道C2(破線)とする。
【0115】
S201において、マイクロプロセッサ13は、ボールオブジェクト42の移動を開始させる。例えば、マイクロプロセッサ13は、位置座標P1を始点として、位置座標P1とポインティング位置座標P2を結ぶ水平方向(つまり、初期方向)に所定距離移動させる。
【0116】
S202の判定で使用されるフレーム数をn(nは自然数)とした場合、マイクロプロセッサ13は、この水平進行方向のまま、ボールオブジェクト42の移動速度に応じてnフレーム移動させる。nフレーム移動させた際のボールオブジェクト42の位置座標を位置座標P3とする。位置座標P1と位置座標P3との水平距離L1が、このnフレームの間にボールオブジェクト42が移動した水平方向の距離である。
【0117】
次いで、S205の処理により、次のフレームの進行方向が元々の進行方向と乱数とに基づいて決定される。例えば、マイクロプロセッサ13は、位置座標P1と位置座標P3とを結ぶ方向を基準としてXw−Zw平面の右回りに角度θ回転させた方向を、S205において水平進行方向として決定する。
【0118】
角度θは、乱数に基づいてランダムに決定される。例えば、角度θは、先述のように−9°〜9°の任意の数値であってもよいし、ゲーム状況データに格納される風向きを係数として重みづけされた所定の計算式によって算出されるようにしてもよい。角度θは、元々の方向と同じ(角度θが0°)であってもよい。
【0119】
マイクロプロセッサ13は、位置座標P3を始点として、この水平進行方向にボールオブジェクト42をnフレーム移動させる。このnフレーム移動させたボールオブジェクト42の位置座標を位置座標P4とする。位置座標P3と位置座標P4との水平距離L3が、このnフレームの間にボールオブジェクト42が移動した水平方向の距離である。
【0120】
マイクロプロセッサ13は、S203においてボールオブジェクト42の移動速度が基準値以下となったと判定するまで、又はS204において変更履歴が示す方向とは異なる水平進行方向に変更すると判定するまで、上記と同様の処理により、ボールオブジェクト42を移動させる。
【0121】
図9に示す例では、位置座標P4からnフレーム後におけるボールオブジェクト42の位置座標を位置座標P5とする。例えば、マイクロプロセッサ13は、位置座標P3と位置座標P4とを結ぶ方向を基準として、Xw−Zw平面の右回りに角度θ回転させた方向を、進行方向として決定して変更する。
【0122】
同様に、位置座標P5からnフレーム後におけるボールオブジェクト42の位置座標を位置座標P6とする。例えば、マイクロプロセッサ13は、位置座標P4と位置座標P5とを結ぶ方向を基準として、Xw−Zw平面の右回りに角度θ回転させた方向を、水平進行方向として決定して変更する。図9に示す例では、角度θ及び角度θは、ともに正の値を取った場合を示している。
【0123】
マイクロプロセッサ13が、S204において変更履歴が示す方向とは異なる水平進行方向に変更すると判定した場合、変更履歴が示す方向とは異なる水平進行方向となるように変更される。例えば、同じ水平進行方向が3回続いていることを変更履歴が示している場合には、逆の水平進行方向に変更される。
【0124】
位置座標P3から位置座標P6まで移動する間に、角度θ〜角度θは、3回とも正の値を取っているので、S206において、異なる水平進行方向となるように進行方向が決定される。例えば、マイクロプロセッサ13は、角度θが負の値となるように決定する。このように、位置座標P7を決定するにあたり、それまでの水平進行方向に基づいて角度θを算出する場合には、無回転シュートが、ある一定の水平方向に曲がり続けることを防止することができる。
【0125】
マイクロプロセッサ13が、S203においてボールオブジェクト42の移動速度が基準値以下となったと判定した場合には、S205及びS206における進行方向の変更処理を行わない。図9に示す例では、位置座標P7の位置にボールオブジェクト42が移動した際、移動速度が基準値以下であると判定されている。このフレーム以降は、水平方向の進行方向が元々の進行方向と乱数とに基づいて変更されないように制限される。
【0126】
マイクロプロセッサ13は、位置座標P6と、位置座標P7と、を結ぶ方向にボールオブジェクト42を移動させる。マイクロプロセッサ13は、ポインティング位置座標P2のZw座標の値と、ボールオブジェクト42をこの進行方向に移動させた場合におけるZw座標の値と、が一致する点を水平方向の位置座標P8とする。即ち、位置座標P8は、操作対象選手が無回転シュートを放った時に、ボールオブジェクト42がゴールオブジェクト40を通過する水平方向の位置である。
【0127】
なお、このフレーム以降の水平方向は、S205とS206のような方法により水平進行方向が変更されないようにすればよく、必ずしも上記のように一定方向となるようにしなくてもよい。例えば、ゲーム状況データの風向き等に基づいて所定範囲内で水平進行方向を変化させるようにしてもよい。
【0128】
また、図9に示す例では、S212における終了条件を、ボールオブジェクト42がゴールオブジェクト40の領域に入ることとした場合の例で説明したが、ボールオブジェクト42がキーパーの選手オブジェクト46cの領域内に入った場合を終了条件としてもよい。このフレームにおけるボールオブジェクト42の位置座標が位置座標P8となる。
【0129】
次に、垂直方向の移動について説明する。
【0130】
図10に示す軌道C4は、ボールオブジェクト42の位置座標P1と、ポインティング位置座標P2と、を通常の重力加速度gで放物線を描くように算出される垂直方向の軌道である。
【0131】
操作対象選手がキックをしたフレームを0番目として、その後のあるフレーム(k番目とする。)におけるボールオブジェクト42の位置座標を位置座標P(k)とする。S208において、次のフレーム(k+1番目とする。)に移動させるべきボールオブジェクト42の仮位置座標P’(k+1)は、重力加速度gに基づいて算出される。図10の例では、仮位置座標P’(k+1)は、位置座標P(k)よりもYw軸方向の上にあるため、S210における制御は行われない。
【0132】
図10に示すように、k+2番目のフレーム、k+3番目のフレームについても、同様に、S210における制御は行われない。つまり、S208において重力加速度gに基づいて算出される仮位置座標に基づいて、ボールオブジェクト42の移動処理が実行される。
【0133】
図10に示すk+4番目のフレームのように、S208において重力加速度gに基づいて算出される仮位置座標P’(k+4)が、前のフレームの位置座標P(k+3)よりも低い位置にある場合には、S210における制御が行われる。ボールオブジェクト42の位置座標が、仮位置座標P’(k+4)よりも低い位置座標P(n+4)に制御される。
【0134】
続くk+5番目のフレームについても、同様に、S210における制御が行われる。つまり、ボールオブジェクト42の位置座標が、仮位置座標P’(k+5)よりも低い位置座標P(k+5)に制御される。
【0135】
このように、各フレーム毎に仮位置座標が算出及び制御されることにより、垂直方向の軌道C3が決定される。ポインティング位置座標P2のZw座標の値と、軌道C3におけるZw座標の値と、が一致する点の座標を位置座標P9とする。
【0136】
位置座標P3は、操作対象選手が無回転シュートを放った時に、ボールオブジェクト42がゴールオブジェクト40を通過する際における垂直方向の位置を示すものである。このように、操作対象選手が、無回転シュートを放つと、ボールオブジェクト42が落ち始めるフレーム以降は、通常のシュートよりも垂直方向に大きく落ちる軌道が算出される。
【0137】
図7に戻り、操作対象選手が、無回転シュート可能な選手でない場合(S109;N)、マイクロプロセッサ13は、ストレートシュートの移動処理を実行する(S111)。具体的には、ボールオブジェクト42の位置座標P1と、ポインティング位置座標P2と、に基づいて、ストレートシュートの軌道となるようにボールオブジェクト42が移動する。
【0138】
S111においては、例えば、ストレートシュートにおいてボールオブジェクト42が移動する垂直方向の軌道は、図10を参照して説明した軌道C4となる。ストレートシュートの水平方向の軌道は、ボールオブジェクト42の位置座標P1と、ポインティング位置座標P2と、を結ぶ直線(図9の軌道C2)となる。
【0139】
一方、無回転シュート指示ボタンが押下されない場合(S108;N)、マイクロプロセッサ13は、通常シュートの軌道計算処理を実行する(S112)。具体的には、ボールオブジェクト42の位置座標P1と、ポインティング位置座標P2と、コントローラ22からの入力と、に基づいて、通常シュートの軌道となるようにボールオブジェクト42が移動する。
【0140】
S112においては、例えば、通常シュートにおいてボールオブジェクト42が移動する垂直方向の軌道は、コントローラ22を所定方向にユーザが捻った量に応じてカーブがかかるような軌道となる。通常シュートの水平方向の軌道も同様に、ボールオブジェクト42の位置座標P1と、ポインティング位置座標P2と、を結ぶ所定曲率の円弧を描くような軌道となる。
【0141】
[1−5.実施形態1のまとめ]
以上説明した実施形態1に係るゲーム装置10では、ボールオブジェクト42の進行方向が、元々の進行方向と乱数とに基づいて決定される進行方向に複数回変更される。実施形態1に係るゲーム装置10によれば、操作対象選手は、通常のシュートやストレートシュート等とは異なり、ほぼ無回転の状態の移動物体が予測不可能な軌道を描く様子を、物理シミュレーションを行わずに処理負荷の軽減を図りつつ表現することができる。つまり、技量の高いスター選手を操作しているように、ユーザに実感させることが可能となる。
【0142】
また、ボールオブジェクト42の移動速度が基準値以下になった場合には、このフレーム以降においては、ボールオブジェクトの元々の進行方向と乱数とに基づいて進行方向を変更することが制限される。実際の選手が放つ無回転シュートのように、ボールの移動速度が速い間は予測不可能に揺れ、移動速度がある程度落ちてからは、揺れないシュートをゲーム上で再現することができる。
【0143】
また、ボールオブジェクト42が落下し始めてからは、大きく落ちる軌道となる。実際の選手が放つ無回転シュートのように、ボールが落ち始めると大きく垂直方向に落ちるようなシュートを再現することができる。
【0144】
また、仮想3次元空間をボールオブジェクト42が移動する際、変更した進行方向の変更履歴に基づいて進行方向を決定する。一定方向に曲がり続けてゴールオブジェクト40の枠をそれるような、ユーザの意図しないシュートとなることを防止することができる。
【0145】
なお、本発明は、以上説明した実施の形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で適宜変更可能である。例えば、本実施形態では家庭用ゲーム機を例に挙げて説明したが、ゲームセンター等に設置されるアーケード型ゲーム機であってもよい。
【0146】
また、フリーキックの状況において無回転シュートを放つ例を説明したが、図4に示す仮想カメラ48の位置で、サッカーの試合が行われている状況において、同様の無回転シュートが放たれるようにしてもよい。この場合でも、本実施形態と同様に、位置取得部64が取得した初期位置と、方向取得部66が取得した初期方向と、に基づいてボールオブジェクト42が移動するようにすればよい。
【0147】
また、本実施形態においては、無回転シュートにおける軌道を、図8に示すフロー図によって算出される例を挙げたが、初期位置及び初期方向に基づいて、予め定められた方法によって実際の無回転シュートのような軌道を描くように、ボールオブジェクト42を移動させればよく、これに限られない。例えば、操作対象選手の選手パラメータを参照して、選手の右利き又は左利きに応じて曲がる方向が異なるように重みづけされるようにしてもよい。
【0148】
[2.実施形態2]
以下、実施形態2について説明する。実施形態1においては、コントローラ22から無回転シュートが指示された場合には、所定フレーム間隔毎に、ボールオブジェクト42の進行方向をランダムに変更していた。この点、実施形態2は、ボールオブジェクト42の移動が開始される前に、ボールオブジェクト42の軌道を予め算出する点に特徴がある。
【0149】
なお、実施形態2に係るゲーム装置10のハードウェア構成や機能ブロック図は、実施形態1(図1〜図3、図6参照)と同様であるため、ここでは説明を省略する。また、実施形態2に係るゲーム装置10においても、例えば、サッカーゲームが実行される。
【0150】
[2−1.ゲーム装置にて実行される処理]
図12に示す処理は、実施形態1における図8に示す処理に対応している。つまり、図12に示す処理は、図7に示すS110において実行される処理である。実施形態2の図12に示す処理は、移動制御部68(軌道算出手段)が、ボールオブジェクト42の移動が開始される前に軌道を算出し、この軌道に基づいてボールオブジェクト42を移動させる。
【0151】
図12に示すように、マイクロプロセッサ13は、移動開始直後のボールオブジェクト42の位置座標を算出する(S301)。具体的には、S201と同様に、マイクロプロセッサ13は、S101で取得した初期位置を始点として、S106又はS107で取得した初期方向に対して、ボールオブジェクト42の移動速度に応じた所定距離だけ離れた位置座標を算出する。
【0152】
つまり、操作対象選手がボールをキックしてから所定時間(例えば、1/60秒)後にボールオブジェクト42を表示すべき位置座標が算出される。算出された位置座標及び進行方向は、この時間と対応付けられて主記憶14に記憶される。また、この時間におけるボールオブジェクトの移動速度は、S201と同様に算出されて主記憶14に記憶される。
【0153】
次いで、マイクロプロセッサ13は、ボールオブジェクト42の進行方向を変更するための所定時間間隔分の位置座標を算出したか否かを判定する(S302)。S202と同様に、この所定時間間隔は、予め定められた値を用いてよく、例えば、1/10秒等である。
【0154】
以降のS303〜S310は、それぞれ、S203〜S210とほぼ同様である。S203〜S210が、次のフレームにおいて表示部30に表示すべきボールオブジェクト42の位置座標を算出するのに対し、S303〜S310は、ボールオブジェクト42が移動を開始してから所定時間毎において表示部30に表示すべきボールオブジェクト42の位置座標を算出する。例えば、この所定時間を1/60秒とすると、操作対象選手がボールオブジェクト42をキックし、移動を開始してからm/60秒後(mは自然数)に表示すべき位置座標が、S303〜S310において算出される。
【0155】
所定時間分の位置座標を算出した場合(S302;Y)、マイクロプロセッサ13は、ボールオブジェクト42の移動速度が基準値以下となっているか否かを判定する(S303)。S303においては、マイクロプロセッサ13が、主記憶14に記憶されたボールオブジェクト42の移動速度が基準値以下であるか否かを判定する。
【0156】
ボールオブジェクト42の移動速度が基準値以下となっていない場合(S303;N)、マイクロプロセッサ13は、ボールオブジェクト42の進行方向を変更履歴と異なるように変更するか否かを判定する(S304)。S304はS204と同様の処理である。
【0157】
ボールオブジェクト42の進行方向を変更履歴と異なるように変更しない場合(S304;N)、マイクロプロセッサ13(移動制御部68、決定手段)は、ボールオブジェクト42の進行方向を、元々の進行方向と乱数とに基づいて決定する(S305)。
【0158】
S305においては、移動開始から(m−1)/60秒後におけるボールオブジェクト42の進行方向を元々の進行方向とする点でS205と異なる。元々の進行方向は、主記憶14に記憶された値が参照される。つまり、S305においては、移動開始から(m−1)/60秒後における進行方向が決定される。
【0159】
一方、ボールオブジェクト42の進行方向を変更履歴と異なるように変更する場合(S304;Y)、マイクロプロセッサ13は、ボールオブジェクト42の進行方向を、元々の水平進行方向とは異なるように決定する(S306)。S306においては、S206と同様の処理が行われる。
【0160】
マイクロプロセッサ13は、ボールオブジェクト42の水平進行方向を、決定された方向に変更して変更履歴に格納する(S307)。つまり、マイクロプロセッサ13は、S305又はS306において決定された水平進行方向に変更し、この方向を変更履歴に格納する。
【0161】
次いで、マイクロプロセッサ13(移動制御部68、軌道算出手段)は、移動開始からm/60秒後において、ボールオブジェクト42を表示すべき仮位置座標を算出する(S308)。S308においては、主記憶14に記憶された過去の時間の位置座標に基づいて仮位置座標が算出される点でS208と異なる。
【0162】
マイクロプロセッサ13は、直前の時間よりもボールオブジェクト42の位置座標が低いか否かを判定する(S309)。S309においては、移動開始から(m−1)/60秒後におけるボールオブジェクト42の位置座標と、仮位置座標と、が比較される。
【0163】
ボールオブジェクト42の位置座標が低い場合(S309;Y)、マイクロプロセッサ13(移動制御部68、垂直位置変更手段)は、仮位置座標が低くなるように制御する(S310)。S310はS210と同様の処理が行われる。ボールオブジェクト42の位置座標が高い場合(S309;N)、S310における制御が行われない。
【0164】
S311においては、マイクロプロセッサ13は、S308で算出された仮位置座標、又はS310で補正された位置座標を時間と対応付けて主記憶14に記憶する(S311)。つまり、ボールオブジェクト42の移動開始からm/60秒後の位置座標が主記憶14に記憶される。S311において、主記憶14に記憶された位置座標は、ボールオブジェクト42の軌道を示すものである。つまり、この位置座標を時間順に結ぶ線は、図9に示す軌道C1及び図10に示す軌道C3と同様になる。
【0165】
マイクロプロセッサ13は、終了条件を満たしているか否かを判定する(S312)。終了条件を満たしていない場合(S312;N)、処理はS302に戻り、マイクロプロセッサ13は、次の時間(つまり、移動開始から(m+1)/60秒後)におけるボールオブジェクト42の位置座標の算出処理を行う。
【0166】
一方、終了条件を満たしている場合(S312;Y)、マイクロプロセッサ13は、操作対象選手がボールオブジェクト42をキックすると、主記憶14に記憶された軌道に基づいてボールオブジェクト42を移動させる(S313)。
【0167】
[2−2.実施形態2のまとめ]
以上説明した実施形態2に係るゲーム装置10では、ボールオブジェクト42の進行方向が、元々の進行方向と乱数とに基づいて決定される進行方向に複数回変更される。マイクロプロセッサ13は、この無回転シュートの軌道を所定時間間隔毎に変更し、ボールオブジェクト42の移動を開始させる前に、予めこの軌道を算出することができる。
【0168】
操作対象選手がシュートを放つと、この軌道に基づいてボールオブジェクト42が移動する。実施形態2に係るゲーム装置10によれば、通常のシュートやストレートシュート等とは異なり、ユーザが予測不可能な軌道を描く無回転シュートを放つことができる。
【0169】
また、本実施形態では、実施形態1と同様に、図7に示すように、シュート指示ボタンが押下されて、操作対象選手が予備動作を始めてからS110の処理が実行されるようにしたが、シュート指示ボタンが押下される前に、カーソル52が示すポインティング情報に基づいて初期方向が取得され、S110と同様の処理が実行されるようにしてもよい。
【0170】
上記の場合には、シュート指示ボタンが押下される前に、無回転シュートの軌道を予め予測して算出できる。この算出された軌道を、図5に示すゲーム画面に表示させてもよい。例えば、無回転シュート指示ボタンが押下された場合は、算出された軌道を虹色で表示させる。ユーザは、無回転シュートの軌道を事前に確認してからシュート指示ボタンを押下することができる。操作対象選手が無回転シュート等を放つ際には、S106又はS107において初期方向が取得されて、S110において軌道が再度算出される。
【0171】
また、S111とS112においても、S110と同様に、ボールオブジェクト42の移動が開始される前に、それぞれ通常シュートとストレートシュートの軌道が算出されるようにしてもよい。上記と同様に、シュート指示ボタンが押下される前にそれぞれの軌道を算出して赤色で表示させたりしてもよい。
【0172】
また、実施形態2においては、S305又はS306のように、無回転シュートの進行方向を決定するようにしたが、例えば、実際の無回転シュートの軌道に近くなるように、予め数式を定めておいて軌道が算出されるようにしてもよい。シュート指示ボタンが押下されたタイミング等で乱数を発生させ、この乱数によって数式の係数が変化する等してもよい。
【0173】
[3.実施形態3]
以下、実施形態3について説明する。実施形態1と実施形態2においては、コントローラ22からシュート指示ボタンが押下された後、S106又はS107において初期方向が取得されていた。この点、実施形態3は、操作対象選手がプレッシャーを感じていると判定した場合に、コントローラ22を振動させる点に特徴がある。
【0174】
コントローラ22を振動させた後に、初期方向が取得される。なお、実施形態3に係るゲーム装置10のハードウェア構成は、実施形態1(図1〜図3参照)と同様であるため、ここでは説明を省略する。また、実施形態3に係るゲーム装置10においても、例えば、サッカーゲームが実行される。
【0175】
[3−1.ゲーム装置で実現される機能]
図13は、ゲーム装置10において実現される機能群を示す機能ブロック図である。図13に示すように、実施形態3に係るゲーム装置10では、振動指示部70が含まれる点で実施形態1及び実施形態2と異なる。
【0176】
[振動指示部]
振動指示部70は、マイクロプロセッサ13等から構成され、所定の条件を満たした場合、操作対象選手が助走を開始してからボールオブジェクト42をキックするまでの間に、コントローラ22を振動させる。
【0177】
この所定の条件とは、操作対象選手がプレッシャーを感じているか否かを判定するためのものである。例えば、この条件は、選手パラメータの値が基準範囲内に含まれるか否か等のパラメータに関する条件、ゲーム状況が所定の状況であるか否かを示す条件、カーソル52が所定領域内にあるか否か等のシュートを狙っている位置に関する条件等である。
【0178】
ゲーム状況が所定の状況であるか否かを示す条件とは、例えば、得点差が所定値より小さいか否か、残り時間が所定値より少ないか否か、初期位置の場所がシュートを決めやすい場所であるか否か等である。カーソル52が所定領域内にあるか否かとは、ゴールオブジェクト40の隅等のシュートが難しい位置であるか否か等である。
【0179】
操作対象選手がプレッシャーを感じている場合、振動指示部70は、振動させる旨の信号をコントローラ22に対して入力する。
【0180】
[3−2.ゲーム装置にて実行される処理]
図14は、実施形態3に係るゲーム装置10において実行される処理の一例を示すフロー図である。図14の処理は、マイクロプロセッサ13が、プログラムに従って動作することにより実行される。なお、図14に示す処理は、図7に示す処理と対応する。つまり、図14に示す処理は、フリーキックにおけるゲーム画面(図5)が、表示部30に表示される際に実行される処理である。
【0181】
図14に示すように、S401〜S403の処理は、それぞれS101〜S103と同様であるので、説明を省略する。
【0182】
シュート指示ボタンが押下された場合(S402;Y)、マイクロプロセッサ13は、操作対象選手にプレッシャーがあるか否かを判定する(S405)。具体的には、上記のように、操作対象選手のパラメータ(例えば、プレッシャーの感じやすさを示すパラメータ)が所定の閾値以上であるか否か等によって判定される。
【0183】
なお、S405においては、予め定められた方法に基づいて判定されればよく、上記の方法に限られない。例えば、操作対象選手のパラメータが所定の数式を満たすか否かによって判定されてもよい。他にも、フリーキックのゲーム画面(図5)が表示部30に表示されてから、シュート指示ボタンが所定時間押下されない場合には、プレッシャーがあると判定されてもよい。
【0184】
操作対象選手にプレッシャーがある場合(S405;Y)、マイクロプロセッサ13(振動指示部70)は、コントローラインタフェース20を介してコントローラ22を振動させる旨の信号を入力して、コントローラ22を振動させる(S406)。具体的には、マイクロプロセッサ13は、コントローラ22に含まれるバイブレータを所定時間振動させる旨の信号を、コントローラ22に対して入力する。
【0185】
コントローラ22は、この信号を受信すると、コントローラ22に含まれるバイブレータを振動させる。即ち、シュート指示ボタンが押下されて、操作対象選手がフリーキックの助走を始めた後に、コントローラ22が振動する。
【0186】
なお、コントローラ22を振動させるのは、操作対象選手が助走を開始してからボールオブジェクト42をキックするまでの任意の時間であってよい。例えば、操作対象選手がプレッシャーを強く感じていると判断した場合には、操作対象選手がボールオブジェクト42をキックするタイミング(基準タイミング)に近い時間にコントローラ22を振動させる。プレッシャーを強く感じているか否かは、操作対象選手のパラメータが所定値を一定量以上超えているか否か等によって判断される。基準タイミングに近い時間にコントローラ22を振動させることにより、ユーザが狙っている位置をずらすことができ、大きくプレッシャーを感じている選手の状態を再現することができる。
【0187】
一方、操作対象選手にプレッシャーがない場合(S405;N)、処理はS407に移行する。S407〜S414の処理は、それぞれS105〜S112と同様であるので、説明を省略する。なお、S412においては図12に示す処理が実行されるようにしてもよい。
【0188】
[3−3.実施形態3のまとめ]
このように、実施形態3に係るゲーム装置10では、マイクロプロセッサ13は、基準タイミングにおける初期方向を取得する。また、ゲーム装置10では、操作対象選手がプレッシャーを感じている場合に、操作対象選手が助走を開始してからボールオブジェクト42をキックするまでの間に、コントローラ22が振動する。
【0189】
ユーザがコントローラ22を介して指し示すカーソル52の位置も揺れるため、ユーザがシュートを狙っている位置をずらすことができる。つまり、実際のサッカー選手のように、緊迫した場面でプレッシャーのために、狙いを外してしまうような状況をゲーム上で仮想的に再現することが可能になる。
【0190】
なお、実施形態3においては、操作対象選手がプレッシャーを感じている場合に、コントローラ22を振動させるようにしたが、コントローラ22に所定の指示信号を入力すればよく、プレッシャーの表現方法はこれに限られない。例えば、コントローラ22や音声出力部31からビープ音を発生させるようにしてもよい。
【0191】
[4.実施形態4]
以下、実施形態4について説明する。実施形態3においては、操作対象選手がプレッシャーを感じている場合に、コントローラ22を振動させる点に特徴があった。実施形態4においては、操作対象選手がプレッシャーを感じている場合に、ポインティング情報に対応する位置とは異なる位置にカーソル52(指標)が表示される点において実施形態3と異なる。
【0192】
なお、実施形態4に係るゲーム装置10のハードウェア構成は、実施形態1(図1〜図3参照)と同様であるため、ここでは説明を省略する。また、実施形態4に係るゲーム装置10においても、例えば、サッカーゲームが実行される。
【0193】
[4−1.ゲーム装置で実現される機能]
図15は、ゲーム装置10において実現される機能群を示す機能ブロック図である。図15に示すように、実施形態4に係るゲーム装置10では、表示制御部72が含まれる点で実施形態1及び実施形態2と異なる。
【0194】
[表示制御部]
表示制御部72は、マイクロプロセッサ13等から構成され、所定の条件を満たした場合、ポインティング情報に対応する位置とは異なる位置にカーソル52を表示させる。この所定の条件とは、実施形態3と同様であり、操作対象選手がプレッシャーを感じているか否かを判定するためのものである。
【0195】
[4−2.ゲーム装置にて実行される処理]
図16は、実施形態4に係るゲーム装置10において実行される処理の一例を示すフロー図である。図16の処理は、マイクロプロセッサ13が、プログラムに従って動作することにより実行される。なお、図16に示す処理は、図7に示す処理と対応する。つまり、図16に示す処理は、フリーキックにおけるゲーム画面(図5)が、表示部30に表示される際に実行される処理である。
【0196】
図16に示すように、S501とS502の処理は、それぞれS101とS405と同様であるので、説明を省略する。
【0197】
操作対象選手にプレッシャーがある場合(S502;Y)、マイクロプロセッサ13(表示制御部72)は、ポインティング情報に対応する位置とは異なる位置にカーソル52を表示させる(S503)。具体的には、例えば、ポインティング情報に対応する位置から所定方向に所定距離ずらした位置にカーソル52が表示される。カーソル52をずらす方向と距離は、予め定められた値を用いてもよいし、ポインティング情報に対応する位置を中心とする所定半径の円内のランダムな位置に決定されてもよい。
【0198】
なお、S503においては、操作対象選手が感じるプレッシャーの度合い(強さ)に応じて、カーソル52のずらし方を変化させてもよい。例えば、操作対象選手のプレッシャーに対応するパラメータが基準値を大幅に超えている場合(基準値の200%等)には、基準値を少し超えている場合(基準値の130%等)に比べて、ずらす距離を倍にする等である。強くプレッシャーを感じている選手ほど、シュートの狙いを大きくずらすことができる。
【0199】
一方、操作対象選手にプレッシャーがない場合(S502;N)、処理はS504に移行する。S504〜S514の処理は、それぞれS102〜S112と同様であるので、説明を省略する。なお、S512においてはS412と同様に、図12に示す処理が実行されるようにしてもよい。
【0200】
[4−3.実施形態4のまとめ]
このように、実施形態4に係るゲーム装置10では、操作対象選手がプレッシャーを感じている場合に、ポインティング情報に対応する位置とは異なる位置にカーソル52をずらして表示させる。
【0201】
カーソル52が本来表示される位置とは異なる位置に表示されるので、ユーザが狙っているシュートの位置をずらすことができる。つまり、ユーザが意図するポインティング情報とは異なる値に基づいて初期方向が取得される。実際のサッカー選手のように、緊迫した場面でプレッシャーのために、狙いを外してしまうような状況をゲーム上で仮想的に再現することが可能になる。
【0202】
本実施形態1〜4においては、サッカーゲームを実行する例を挙げたが、本発明は、サッカーボール以外の移動物体を用いて行われる他のゲーム(アイスホッケー等)にも適用することができる。例えば、野球ゲームにおいて、ピッチャーが投じるナックルボールの表示処理においても同様の処理を適用可能である。
【符号の説明】
【0203】
10 ゲーム装置、11 家庭用ゲーム機、12 バス、13 マイクロプロセッサ、14 主記憶、15 画像処理部、16 音声処理部、17 光ディスクドライブ、18 メモリカードスロット、19 通信インタフェース、20 コントローラインタフェース、21 操作入力部、22 コントローラ、22a 前端部、23 撮像部、24 撮影画像解析部、25 発光部、30 表示部、31 音声出力部、32 光ディスク、33 メモリカード、34a,34b 光源、35 基準位置、36 方向ボタン、37a,37b,37c ボタン、38 フィールドオブジェクト、40 ゴールオブジェクト、42 ボールオブジェクト、44,44a,44b,46,46a,46b,46c 選手オブジェクト、48 仮想カメラ、52 カーソル、58 入力部、60 ゲームデータ記憶部、62 ゲーム制御部、64 位置取得部、66 方向取得部、68 移動制御部、70 振動指示部、72 表示制御部。

【特許請求の範囲】
【請求項1】
移動物体を用いて行われるスポーツのゲームを実行するゲーム装置であって、
ゲーム空間において前記移動物体が移動を開始する際の初期位置を取得する位置取得手段と、
前記ゲーム空間において前記移動物体が移動を開始する際の初期方向を取得する方向取得手段と、
前記位置取得手段が取得した初期位置と前記方向取得手段が取得した初期方向とに基づいて前記移動物体の移動を開始させ、前記移動物体を移動させる制御手段と、
を含み、
前記制御手段は、前記移動物体の進行方向を、前記移動物体の元々の進行方向と乱数とに基づいて決定される進行方向に複数回変更する変更手段を含むことを特徴とするゲーム装置。
【請求項2】
前記制御手段は、前記移動物体の移動速度が基準値以下となった場合、前記変更手段が進行方向を変更することを制限する変更制限手段を含むことを特徴とする請求項1に記載のゲーム装置。
【請求項3】
前記制御手段は、所定の演算処理によって得られる前記移動物体の垂直方向の位置が直前の垂直方向の位置よりも低い場合、前記移動物体の垂直方向の位置を前記所定の演算処理によって得られる垂直方向の位置よりも低くなるように制御する垂直位置変更手段を含むことを特徴とする請求項1又は2に記載のゲーム装置。
【請求項4】
前記変更手段が変更した進行方向の変更履歴を記憶する記憶手段を更に含み、
前記変更手段は、前記変更履歴に基づいて前記移動物体の進行方向を変更することを特徴とする請求項1〜3の何れか一項に記載のゲーム装置。
【請求項5】
前記ゲーム装置は、ユーザが指し示すゲーム画面上の位置に関する位置データを入力するポインティングデバイスを含み、当該ポインティングデバイスから第一の入力を受け付けるとゲームキャラクターに準備動作を開始させるものであって、
前記方向取得手段は、前記ゲームキャラクターが準備動作を開始した後の基準タイミングにおいて入力された前記位置データに基づいて初期方向を取得し、
所定の条件を満たした場合、前記ゲームキャラクターが準備動作を開始してから前記基準タイミングが訪れるまでの間に前記ポインティングデバイスを振動させる振動指示手段を更に含むことを特徴とする請求項1〜4の何れか一項に記載のゲーム装置。
【請求項6】
前記ゲーム装置は、
ユーザが指し示すゲーム画面上の位置に関する位置データを入力するポインティングデバイスと、
前記位置データに対応する位置に指標を表示させる表示制御手段と、
を更に含み、
前記方向取得手段は、前記位置データに基づいて初期方向を取得し、
前記表示制御手段は、所定の条件を満たした場合、前記指標を位置データに対応する位置からずらして表示させることを特徴とする請求項1〜4の何れか一項に記載のゲーム装置。
【請求項7】
前記変更手段は、前記制御手段が前記移動物体の移動を開始させた後において、所定フレーム間隔毎の前記移動物体の進行方向を、前記移動物体の元々の進行方向と乱数とに基づいて決定する決定手段を含み、当該決定された進行方向に前記移動物体の進行方向を変更することを特徴とする請求項1〜6の何れか一項に記載のゲーム装置。
【請求項8】
前記変更手段は、前記制御手段が前記移動物体の移動を開始させる前において、前記移動物体が移動すべき軌道を算出する軌道算出手段を含み、
前記制御手段は、前記軌道算出手段が算出した軌道に基づいて前記移動物体を移動させ、
前記軌道算出手段は、所定時間間隔毎の前記移動物体の進行方向を、前記移動物体の元々の進行方向と乱数とに基づいて決定する決定手段を含み、当該決定された進行方向に基づいて軌道を算出することを特徴とする請求項1〜6の何れか一項に記載のゲーム装置。
【請求項9】
移動物体を用いて行われるスポーツのゲームを実行するゲーム装置の制御方法であって、
ゲーム空間において前記移動物体が移動を開始する際の初期位置を取得する位置取得ステップと、
前記ゲーム空間において前記移動物体が移動を開始する際の初期方向を取得する方向取得ステップと、
前記初期位置と前記初期方向とに基づいて前記移動物体の移動を開始させ、前記移動物体を移動させる制御ステップと、
を含み、
前記制御ステップは、前記移動物体の進行方向を、前記移動物体の元々の進行方向と乱数とに基づいて決定される進行方向に複数回変更する変更ステップを含むことを特徴とするゲーム装置の制御方法。
【請求項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