移動オブジェクトの予測軌道に情報を持たせて表示するコンピュータプログラム
【課題】スカッシュのような複雑で激しいボール(移動体オブジェクト)の動きをするスポーツをゲームで模擬する場合の,上記の要望及び問題点の解決をする移動オブジェクトの予測軌道に情報を持たせて表示する。
【解決手段】
仮想空間に設けられた複数の平面があるフィールド上で,プレイヤの入力操作に応答して動作するキャラクタとボールとの衝突を判定して,該ボールの軌道を変化させるゲームの様子を,前記仮想空間に配置される仮想視点から見た画像で表示する処理をコンピュータシステムに実行させるためのコンピュータプログラムであって,前記コンピュータシステムに,移動する前記ボールの軌道を演算する軌道演算ステップと,
前記軌道を画面に表示する軌道表示ステップと,前記軌道が前記衝突から所定の平面に接した回数を計測する回数計測ステップと,前記計測した回数が所定回数を越えた場合,前記軌道表示の形態を変更して表示する軌道表示変更ステップとを実行させる。
【解決手段】
仮想空間に設けられた複数の平面があるフィールド上で,プレイヤの入力操作に応答して動作するキャラクタとボールとの衝突を判定して,該ボールの軌道を変化させるゲームの様子を,前記仮想空間に配置される仮想視点から見た画像で表示する処理をコンピュータシステムに実行させるためのコンピュータプログラムであって,前記コンピュータシステムに,移動する前記ボールの軌道を演算する軌道演算ステップと,
前記軌道を画面に表示する軌道表示ステップと,前記軌道が前記衝突から所定の平面に接した回数を計測する回数計測ステップと,前記計測した回数が所定回数を越えた場合,前記軌道表示の形態を変更して表示する軌道表示変更ステップとを実行させる。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は,移動オブジェクトの予測軌道に情報を持たせて表示するコンピュータプログラム及び,これを適用するゲーム装置に関し,特に,遊戯者(プレイヤ)により操作される入力機器(ポインティングデバイス)の出力に応じて,表示装置にオブジェクトを移動表示させるプログラムに関する。
【背景技術】
【0002】
これまでプレイヤの操作に基づき,表示装置の画面上に移動オブジェクトとしてボールの移動表示を行い,ボールを扱うスポーツを模擬するゲームが種々ゲーム装置において実行可能とされている。
【0003】
そして,ボールゲームとして,例えば,特許文献1に記載されるように,ゴルフのショット操作の前にショットの要素に基づきボールの予想弾道軌跡を表示するもの,あるいは,特許文献2に記載されるように,テーブルテニス等を模擬するゲームにおいて,プレイヤの入力操作の仕方に応じてスイングの打法を判定し,打法に対応したボールの軌跡を表示装置に表示して,プレイヤに対する参考情報を表示する発明が知られている。
【0004】
一方,プレイヤにより操作される入力機器として種々新たな機能が開発され,これらを利用して,新たなスポーツを模擬するゲームを実現することが可能となって来た。
【0005】
しかし,新たなゲーム化されるスポーツは,プレイヤには一般的でないものもある。したがって,かかる場合は,ゲームの中でそのルールや判定結果を反映させながら当該スポーツゲームを楽しめることが重要である。
【特許文献1】特開2004−290657号公報
【特許文献2】特許第3763776号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
上記の特許文献1,2に記載の従来発明にあっては,先に説明したようにボールの予想される軌跡を表示してプレイヤに有利な情報を表示することが行われる。しかし,例えば,スカッシュのようなスポーツの場合,プレイヤにとってルールが一般的でない。さらに,スカッシュのボールは,直方体の空間内を天井以外の5面で跳ね返りながら高速で移動し,複雑で激しいボールの動きをする。
【0007】
さらに,スカッシュのルールは複雑である。例えば,ノーバウンドで,前面壁に当てることが要件である。さらに周囲の4つの壁に接触してもバウンド回数には含まれないが,床面に2バウンドすると,相手側に得点が入る等である。
【0008】
このような複雑なルールと,激しいボールの移動があるスポーツをゲーム上で模擬する場合,床面と壁面のどちらでボールがバウンドしたかの区別がつき難いのでリアルタイムでボールの予測軌道を常時表示し,プレイヤに対しどのタイミングで,あるいはどの位置でボールを打てば良いかの情報を与えることが好ましい。
【0009】
また,予測不可能な要素の影響を受けた際に,即座に反映した情報を描画表示することが必要であり,更に軌道の描画において,ルールに関する情報が表示されることが望ましい。
【0010】
したがって,本発明の目的は,スカッシュのような複雑で激しいボール(移動体オブジェクト)の動きをし,又,ルールが複雑であるスポーツをゲームで模擬する場合の,上記の要望及び問題点の解決をする移動オブジェクトの予測軌道に情報を持たせて表示するコンピュータプログラムを提供することにある。
【課題を解決するための手段】
【0011】
上記の課題を解決する本発明の第1の側面は,仮想空間に設けられた複数の平面があるフィールド上で,プレイヤの入力操作に応答して動作するキャラクタとボールとの衝突を判定して,該ボールの軌道を変化させるゲームの様子を,前記仮想空間に配置される仮想視点から見た画像で表示する処理をコンピュータシステムに実行させるためのコンピュータプログラムであって,前記コンピュータシステムに,移動する前記ボールの軌道を演算する軌道演算ステップと,前記軌道を画面に表示する軌道表示ステップと,前記軌道が前記衝突から所定の平面に接した回数を計測する回数計測ステップと,前記計測した回数が所定回数を越えた場合,前記軌道表示の形態を変更して表示する軌道表示変更ステップとを実行させることを特徴とする。
【0012】
上記側面において,前記軌道表示ステップは,前記ボールの所定時間先までを予測表示させるようにできる。
【0013】
上記において,前記軌道演算ステップは,前記ボールの移動方向と移動速度と回転方向のうち少なくとも1つに基づいて前記軌道を演算するようにしてもよい。
【0014】
また,前記プレイヤの入力操作に基づいて前記衝突が判定された場合において,前記コンピュータシステムに,前記入力操作の加速度に基づいて,前記ボールの移動方向と移動速度と回転方向のうち少なくとも1つを変更するパラメータ変更ステップとを更に実行させるようにしてもよい。
【0015】
上記のいずれかにおいて,前記コンピュータシステムに,前記プレイヤの入力操作に基づいて前記衝突が起こる位置を判定する衝突位置判定ステップと,前記衝突位置を所定の形態で画面に表示する衝突位置表示ステップとを更に実行させるようにしてもよい。
【0016】
さらに,上記において,前記ボールが前記所定の面に前記所定回数接した場合,前記ゲームを終了させるゲーム終了ステップを更に実行させる。
【0017】
また,上記において,前記軌道表示ステップは,前記ボールの移動軌道を線または点群で表示するようにしてもよい。
【発明を実施するための最良の形態】
【0018】
以下に図面に従い本発明の実施例を説明する。なお,実施例としてスカッシュを模擬するゲームを例にして説明するが本発明の適用は,かかるスカッシュに限定されるものではない。
【0019】
図1は,本発明に適用されるゲーム装置として機能するコンピュータシステムの構成例の機能ブロック図である。各機能部は,バス10を通してデータの授受を行う。
【0020】
外部メモリあるいは,内部メモリとして表されるROM2に格納されるゲームプログラムに従い,メインCPU1によりゲームが実行制御される。
【0021】
このゲーム実行制御において,制御手段としてのメインCPU1により,ROM2に格納されるオブジェクトデータに対し座標変換を行い,仮想三次元空間においてゲームプログラムに従い移動制御されるオブジェクトのデータが形成される。さらに,移動制御される仮想三次元座標を有するオブジェクトのデータは,メインCPU1により,表示装置5に表示されるべく二次元座標に透視変換される。
【0022】
この際,レンダリングプロセッサ4は,この二次元座標に座標変換されるオブジェクトデータに対し,ゲームプログラムに従い,テクスチャメモリ6からテクスチャデータを読み出し,読み出したテクスチャを貼り付け,画像データとしてビデオメモリ7に描画する。
【0023】
ビデオメモリ7に描画された画像データは,所定周期で読み出され,表示装置5に送られることにより,表示装置5に,ゲームプログラムに従い移動制御されるオブジェクトを含むゲーム画像が表示される。
【0024】
かかるゲーム装置における基本的な動作に対し,本発明は,ROM2に格納されるゲームプログラムに従い処理され,特に移動オブジェクト(スカッシュゲームにおけるボール)の予測移動軌道に情報を持たせて表示することに特徴を有する。
【0025】
したがって,本願の対象とする発明の側面は,かかる移動オブジェクトの予測移動軌道に情報を持たせて描画を行うゲームプログラム及び,かかるゲームプログラムにより実行制御されるゲーム装置にある。
【0026】
図1において,更に本発明の適用においてプレイヤにより画面上でスカッシュを行うキャラクタの移動を制御するために用いられる第1のコントローラと,プレイヤがスカッシュを行うキャラクタの移動オブジェクトであるボールをヒットするタイミングを制御する第2のコントローラからの信号を受信する無線受信器8を備えている。
【0027】
無線受信器8は,第1のコントローラ及び第2のコントローラで生成された情報を無線,例えばブルーツース(Bluetooth:登録商標)を用いて受信する。
【0028】
さらに,図1において本発明とは直接関係しないが,他の外部機器と接続されるインタフェース部9がバス10に接続されている。
【0029】
図2は,かかる無線受信器8,及びプレイヤにより操作される第1及び第2のコントローラ20,21の関係を説明する図である。
【0030】
第1のコントローラ20は,第2のコントローラ21に有線で接続可能である。第2のコントローラ21に無線機能例えば,上記のブルーツース機能を有し,第1のコントローラ20で生成された情報と,第2のコントローラ21で生成した情報を所定のフォーマットでゲーム装置本体30に内蔵される無線受信器8に送信する。
【0031】
かかる第1のコントローラ20及び第2のコントローラ21として,例えば,任天堂株式会社により提供されるWii(登録商標)と称されるリモコンシステムが使用可能である。
【0032】
第1のコントローラ20及び第2のコントローラ21は,ゲーム装置本体30とは,分離されているので,プレイヤは,第1のコントローラ20及び第2のコントローラ21を両手で持って自由に操作することが可能である。
【0033】
図2において,ゲーム装置本体30に表示装置5が接続され,スカッシュゲームを描画している表示画面50が示されている。
【0034】
ゲーム装置本体30のインターフェース部8(図2では図示されていない)に有線で第1のコントローラ20が接続されている。また,第2のコントローラ21は,ゲーム装置本体30の無線受信器9と無線接続されている。
【0035】
ここで,第1のコントローラ20及び第2のコンとローラ21の詳細について更に図3〜図5により説明する。
【0036】
図3は,第1のコントローラ20を説明する図である。図示されるようにジョイスティック200を有し,これを上下左右に傾けることが可能である。ジョイスティック200を傾けた方向を示す信号を,インターフェース部8を通してメインCPU1が受信する。そして,メインCPU1は,受信した信号に対応して図3の右側に表示されるようにキャラクタ40の表示画面50に表示される2次元座標位置を変更する。
【0037】
これにより,キャラクタ40は,表示装置5の表示画面50において,第1のコントローラ20の操作方向に対応して移動表示される。
【0038】
一方,図4は,第2のコントローラ21について説明する図である。第2のコントローラ21は,種々の機能を有しているが,本発明の適用において使用される機能は,第2のコントローラ21が,プレイヤによって振られる際の加速度とその方向を検知して出力する機能である。
【0039】
かかる機能を有するために,第2のコントローラ21には3軸の加速度センサーが搭載されている。3軸の加速度センサーは,3次元空間における加速度,傾き,振動をX,Y,Z軸の3軸成分に分けて検出するセンサーとして一般に知られている。
【0040】
例えば,中央に錘部を有し,錘部をX,Y軸方向のビームと周辺枠で支え,且つビームに形成された歪検出素子(ピエゾ抵抗素子)の出力の組み合わせで,X,Y,Z軸の3軸成分に分けて検出することができる。
【0041】
第2のコントローラ21は,この検出された出力を更に所定のフォーマットにより無線でゲーム装置本体30の無線受信器9に送信する無線機能を有している。
【0042】
図4において,第2のコントローラ21を矢印方向に振ると,加速度センサーによりコントローラ21の降りが検知され,ゲーム装置本体30側に送信される。したがって,メインCPU1は,プログラムに従って,コントローラ21の降りの検知信号に基づいて,キャラクタ40の持つラケット41を振るような画像を生成して,表示画面50に表示する。
【0043】
さらに,制御として,コントローラ21の加速度センサーによって,コントローラ21の降りの強さが検知されるので,この情報もゲーム装置本体30に送ることができる。これにより,後に説明するようにラケット41により打たれるボールの打ち出し強さが制御される。
【0044】
また,制御として,図5に示すように,ボールの飛んでくる方向Aに対する,ラケットの打ち出すタイミングに応じて,ボールが打ち返される方向Bが制御される。
【0045】
図5(1)は,ラケット41を振るタイミングが早いときにボールが打ち返される方向Bであり左方向に打ち出される。図5(2)は,ラケット41を振るタイミングが中間のときのボールが打ち返される方向Bであり,ボールの飛んでくる方向Aと同じ方向に向かう。また,図5(1)は,ラケット41を振るタイミングが遅いときのボールが打ち返される方向Bであり,右方向に打ち出される。
【0046】
かかる基本的な制御に基づいて実行される本発明の移動オブジェクト(スカッシュにおけるボール)の移動軌道の表示制御の詳細を説明する前に,本発明に従う移動オブジェクトの移動軌道の表示制御の概略を説明しておく。
【0047】
図6A〜図6C及び,図7は,ゲームプログラムに従いメインCPU1により表示装置5に表示制御されるスカッシュゲームの表示画面例(その1〜その4)である。
【0048】
図6A〜図6C及び,図7において,背面壁を除いて,前面壁W1,左右壁W2,W3及びフロア(床面)W4のフィールドが表示されている。プレイヤにより移動制御されるキャラクタ40bと,コンピュータ側によりプログラムに従い移動制御される,競技相手のキャラクタ40aが表示されている。なお,二人のプレイヤ間で競技を行う場合は,キャラクタ40aは,キャラクタ40bを操作するプレイヤと異なるプレイヤにより移動制御される。
【0049】
さらに,図6A〜図6Cに示す表示画面の画像は,キャラクタ40aがボール50をラケット41aでヒットしたときのボールの予想移動軌跡を表示している。
【0050】
図6Aは,ラケット41aでヒットされた後,前面の壁W1に当たり,ついで,床面W4に落下して2バウンドして更に床面W4を転がる状態の,あるフレーム時点の予想移動軌跡60,61を表示している。
【0051】
図6Bは,図6Aに続くフレームの表示画面の画像であり,ボール50が床面W4でバウンドしたときのタイミング以降の予想移動軌跡60,61を表示している。このとき,ボール50をヒットする番のプレイヤ40bによって,ラケット41bを操作する入力操作があり,キャラクタ40bの位置に基づくヒット可能範囲70に,ボール50があるか否かを判定して,範囲内であった場合に予想ヒット点51を表示する。
【0052】
図6Cは,図6Bに続くフレームの表示画面の画像であり,ボール50が床面W4でバウンドして,より高くバウンドした状態であり,予想ヒット点51にほぼ到達した状態である。このとき,プレイヤの操作するキャラクタ40bの持つラケット41bがボールの予想ヒット点51により近づいた状態を表示している。
【0053】
また,図6A〜図6Cにおいて,予想移動軌跡60は,床面W1に2バウンドする前までの移動軌跡を示し,2バウンド以降の移動軌跡は,ゲームルールにおいて,失策と判定されるので,予想移動軌跡60とは,異なる線の太さ,あるいは,線の色等で区別して上記表示画面に表示される。
【0054】
さらに,予想移動軌跡60,61は,ボール50をラケットでヒットした時点から例えば,2秒後までの予想移動軌道が示される。
【0055】
図7は,ボール50をヒットした後の表示画面に表示される画像の例である。
【0056】
ヒットすべき順番にあるキャラクタ40bのラケット41bが操作されると,ボール50が予想ヒット点51でヒットされ,ヒットした点を出発点52として新たな予想移動軌跡60a,61aが形成され,表示される。
【0057】
このときの新たな予想移動軌跡60a,61aは 前面壁W1当たった後,ノーバウンドで,背面壁に当たり,ついで背面壁から床面W4で第1のバウンドをするまで予想移動軌跡60aと,更に2バウンド以降の予想移動軌跡61aが,示されている。
【0058】
先に説明したように,2バウンド以降の予想移動軌跡61aは,第1のバウンドをするまで予想移動軌跡60aと異なる表示(軌跡表示の色,又は線の太さ等,表示・非表示による区別による相違)が行われる。さらに,ボールがヒットされた時点から所定の時間経過例えば,2秒後以降の移動軌跡表示は行われない。
【0059】
図8は,ボール軌跡の一例を拡大して表示した図である。複数のボールを並べて紙面の手前側P1から奥行き方向に向かうボール軌跡を示している。ボールの2回目のバウンド時点P2以降の表示を色で変えている。また,ボール同士の間隔で,ボール移動の早さを表現している。
【0060】
上記のように本発明は,ボール50をヒットした時点から所定時間経過までのボールの予想移動軌道を表示し,且つ,負けとなる床面W4にツーバウンド以降のボール予想移動軌道の表示を変えるように制御している。
【0061】
これにより,激しく動くボールの行方を予測でき,且つルールに対応して,ボールを打ち返すべきタイミングを推測することを可能とするので,該当のスポーツになじみの無いプレイヤにとっても容易にゲームを楽しむことができる。
【0062】
図9,図10は,上記した本発明の移動オブジェクトの予測移動軌道に情報を持たせて表示するコンピュータプログラム手順の詳細を説明する動作フローである。
【0063】
先ず図9において,スカッシュゲームが開始されると,サーブを打つプレイヤに対応する第2のコントローラ21(図9においては,ラケット41に相当し,デバイスと略称する)の操作をメインCPU1が検出する(ステップST1)。
【0064】
デバイスに対する操作の検出は,メインCPU1によりデバイスの3軸(X,Y,Z)重力値を一定時間(1秒)RAM3に記憶する。そして,一定時間におけるデバイスの加速度の変化と,静止時からの重力方向の変化を検出して,デバイスが前方向に振られたとみなされたと判断する。
【0065】
この加速度と重力方向の検出は,ともに加速度センサーの3軸重力値の変化を基に計算される。また,加速度センサーを用いない場合は,従来のコントローラ等を用い,プレイヤのボタン入力操作による入力信号の変化を検出し,検出されたときをデバイスが操作されたと判断する(以下の「デバイス操作」も同様である)。
【0066】
ステップST1で,デバイス操作を受け付けると,並列して処理されるボールの軌道を計算するボール軌道処理から所定時間経過(例えば,2秒後)までのボール軌道データを受け取り,画面に軌道を表示させる(ステップST2)。
【0067】
このとき,ボール軌道が床面(コート)W4にバウンドした回数が2回以上になった場合は,それまでのボール軌道の色と異ならせて表示する。あるいは,点群から線,線から点群,2バウンド後は表示しない等の対応処理が可能である。これは,ボール50が壁面W2,W3にもバウンドしてボールの軌道が変化しやすいため,プレイヤにどの場所,どのタイミングで打ったらよいかを分かりやすくさせるためである。
【0068】
なお,上記ボール軌道処理は,ボール50の3軸(X,Y,Z)速度パラメータ(ボールに回転がある場合は回転パラメータも含む)と,4壁面や床面(コート)に跳ね返る場合は,ボールの弾性係数を基にして2秒後までのボール軌道を毎フレーム計算する。また,弾性係数はボールだけでなく,4壁面や床面(コート)に持たせても良いし,ボールの3軸速度パラメータは,速度と方向(ベクトル)で,別々に持たせても良い。
【0069】
このゲームは,4壁面と床面(コート)は全て座標軸方向に沿っている。
【0070】
上記のボール軌道処理(ステップST2)の詳細は図10の動作フローに示すので後に再度説明する。
【0071】
ついで,ボール50が2バウンド,もしくは前面の壁W1にノーバウンドで当たらない場合等,ルール上ではゲーム終了となる表示がされた場合は,ゲームを終了させる(ステップST3)。
【0072】
ステップST3でゲーム終了とならなかった場合は,ボール50を打つべきプレイヤがデバイス操作をしたか検出する(ステップST4)。デバイス操作が検出されなかった場合はステップST2に戻る(ステップST4,NO)。
【0073】
ST4でデバイス操作が検出された場合(ステップST4,YES)は,この時点からのデバイス操作による加速度と重力方向(3軸重力値)の変化をバッファRAM3に記録し始める(ステップST5)。
【0074】
従来のコントローラを使用する場合は,十字キーやラケットを振るボタン等の入力を契機にRAM3に記録し始める。
【0075】
キャラクタ40とボール50の位置関係を計算して,キャラクタ40がボール50を打てる範囲にいるかを検出する(ステップST6)。この判定は先に説明したように所定の領域(図6Bのヒット可能範囲70内の領域)に,ボール50が存在するか否かで判定する。
【0076】
ステップST6でキャラクタ40が打てる範囲にいなかった場合,空振りモーションを描画し,その後ステップS2に戻る(ステップST7,YES)。
【0077】
キャラクタがボールを打てる範囲にいる場合は,キャラクタとボールの位置関係からスイングモーションを決定して表示を開始する(ステップST8)。
【0078】
ステップST6における位置関係からボール打点を算出し,プレイヤに軌道が変わる部分を教えるため所定の形態(例えば,画面上で,軌道表示60よりも拡大した赤い球51:図6B参照)で表示する(ステップST9)。
【0079】
ステップST8で開始したスイングモーション表示で,ボールとラケットとが衝突するかの判定処理を待つ(ステップST10)。
【0080】
ステップST10でボールとラケットとの衝突判定が得られると,ステップST5でバッファRAM3に記憶を始めた最新25フレーム分の重力と加速度の変化量を基に,ボールの3軸(X,Y,Z)速度パラメータと,回転パラメータを変更する(ステップST11)。
【0081】
加速度変化が大きい場合にはボールの速度を速くしたり,図5に示したように衝突タイミングの早さによってボールの3軸速度(XとY)の比率を傾けて,左右方向に打ち分けることができる。
【0082】
さらに,衝突に近い時のデバイス操作を優先して反映させるため,25フレーム中の新しい値から順に,ボールに与える影響度を高く評価する。
【0083】
デバイス操作の変化(加速度の大小など)は補正して,なるべくゲームが続くようにする。
【0084】
また,ボールを打つ方向も前面の壁W1の中央に寄るように補正している。
【0085】
従来のコントローラの場合も同様に,25フレーム分の十字キーの値を基にボールを打つ方向を決定したり,ラケットを振るボタンの入力時間や入力パターンで,ボールを打つ強さを決めることができる。
【0086】
ついで,ボールとラケットの衝突表示が終了したかを判定する(ステップST12)。
ボールとラケットの衝突表示が終了すると(ステップST12),バウンド回数のリセットと,ボールとラケットの衝突を検出するキャラクタの交代を行い,ステップST2に戻り,上記の処理が継続される(ステップST13)。
【0087】
つぎに,図10の動作フロー図に従い,ステップST2のボール軌道処理の詳細を説明する。
【0088】
ボール軌道描画処理開始すると,ボールの,あるフレームの状態を示す一連のデータ(ボール情報として1フレーム分の位置,速度,回転,描画色等の情報を持つ)として,現在時点の状態を持つデータ(ボール情報C)が用意されている必要がある。
【0089】
まず,各種パラメータを初期化する。各種パラメータの初期化として,ボール軌道描画処理の為に確保する必要があるパラメータは以下の4種である。
【0090】
軌道表示バッファ
処理フレーム数カウンタ(N)
バウンド回数カウンタ(B)
ボール軌道描画処理用のワークメモリ(ボール情報A)
これら4種を,以下のように初期化する。なお,上バッファ及びカウンタは,RAM3に生成することができる。
i 軌道表示バッファを初期化する。
【0091】
軌道表示バッファは,ボール情報を,軌道予測を行うフレーム数分だけ複製して保持することができる。ここで軌道表示バッファ全てを一旦消去する。
ii 処理フレーム数カウンタを初期化する(ステップST14)
N=1 とする。
iii バウンド回数カウンタを初期化する。
【0092】
B=0 とする。
iv ボールの,現在時点の状態を複製する。
【0093】
現在時点のボール状態のデータ(ボール情報C)を,ボール軌道描画処理用のワークメモリ(ボール情報A)にコピーする。
【0094】
処理フレーム数カウンタと,軌道予測を行うフレーム数と比較する。処理フレーム数カウンタが,既に軌道予測を行うフレーム数を超えていれば(ステップST15,YES),生成された軌道表示バッファの内容を元に軌道を描画し(ステップST26),処理を終える(図9のフローに戻る)。
【0095】
処理フレーム数カウンタが,まだ軌道予測を行うフレーム数を超えていなければ(ステップST15,NO),次のように,ボール情報Aを評価・更新し,ボール情報Aの状態を1フレーム分未来方向に進める。
【0096】
このために,ボール情報Aの評価・更新としてつぎの処理を行う。
【0097】
i 初期化処理として,ボールと地形との干渉状態(床面に触れた,壁に触れた,など)を示すフラグをクリアする。
【0098】
ii ボール情報Aのうち,位置を,速度・回転を基に,1フレーム分移動させて,位置を更新する(ステップST16)。
【0099】
iii ついで,ボール情報Aのうち,速度・回転を,空気抵抗・重力などのパラメータに基づいて,1フレーム分変化させる。
【0100】
iv 反射処理として,ボール情報Aのうち,ボール位置が,壁面または床面に接していれば(ステップST17,YES)),ボールのパラメータ(弾性係数等)と壁のパラメータに基づき,ボール情報Aの 位置,速度,回転を変更し(ステップST18),Nフレーム後のボール位置を再計算する(ステップST19)。
【0101】
また,触れた面に応じて,ボールと地形との干渉状態を示すフラグを設定する。
【0102】
すなわち,更新されたボール情報Aが床面W4に触れていれば(床面に触れたことを示すフラグが立っていれば)(ステップST20,YES),バウンド回数カウンタをインクリメントする(ステップST21)。
【0103】
バウンド回数カウンタが,2回(ゲームのルール上,ミスと見なされるバウンド回数)に達しているかを評価し(ステップST22),既に達していれば(ステップST22,YES),ボール情報Aが保持する描画色を,Nフレーム後のボール位置でミスになることを示す色(例えば,紫)で表示するように軌道表示バッファに設定保存する(ステップST23)。
【0104】
反対に,未だ達していなければ,ボール情報Aが保持する描画色を,Nフレーム後のボール位置でミスにならないことを示す色(例えば,赤)で表示するように軌道表示バッファに設定する(ステップST24)。
【0105】
ついで,処理フレーム数カウンタのカウントNをし(ステップST25),更にステップST15に戻り,上記処理を繰り返す。
【0106】
上記実施例に従い説明したうように,本発明によりスカッシュのような複雑なルールで且つ激しいボール(移動体オブジェクト)の動きをするスポーツをゲームで模擬する場合に,移動オブジェクトの予測軌道に情報を持たせて表示することができる。
【0107】
すなわち,予測軌道の表示がない場合は,プレイヤに床面(コート)と壁面のうち,どちらの面でボールがバウンドしたかを知らせることが困難であるが,予測軌道を表示することにより,プレイヤに視覚的に知らせることができる。
【0108】
また,そのことにより,ルール上で定められているバウンド数以内で,ボールを打つタイミングと位置を知らせることができ,ゲームの難易度を抑えることができる。よって,プレイヤにラリーを続かせることができ,ルールを熟知していないプレイヤをより楽しませることができる。
【0109】
これにより,ルールに熟知していないプレイヤに対しても容易にゲームを楽しむことが可能なゲームシステムを提供することができる。
【図面の簡単な説明】
【0110】
【図1】本発明に適用されるゲーム装置として機能するコンピュータシステムの構成例の機能ブロック図である。
【図2】インターフェース部と,無線受信器及び,プレイヤにより操作される第1及び第2のコントローラの関係を説明する図である。
【図3】第1のコントローラを説明する図である。
【図4】第2のコントローラについて説明する図である。
【図5】ラケットの打ち出すタイミングに応じて,ボールが打ち返される方向の制御を説明する図である。
【図6A】ゲームプログラムに従いメインCPU1により表示装置5に表示制御されるスカッシュゲームのあるフレームの表示画面例(その1)である。
【図6B】図6Aのフレームに続くフレームの表示画面例(その2)である。
【図6C】図6Bのフレームに続くフレームの表示画面例(その3)である。
【図7】ゲームプログラムに従いメインCPU1により表示装置5に表示制御されるスカッシュゲームのボールをヒットした後の表示画面例(その4)である。
【図8】ボール軌跡の一例を拡大して表示した図である。
【図9】本発明の移動オブジェクトの予測軌道に情報を持たせて表示するコンピュータプログラム手順の詳細を説明する動作フローである。
【図10】図9の動作フロー中のステップST2(ボール軌道処理)の詳細を説明するフローである。
【符号の説明】
【0111】
1 メインCPU
2 ROM
3 RAM
4 レンダリングプロセッサ
5 表示装置
6 テクスチャメモリ
7 VRAM
8 インターフェース部
9 無線受信器
10 バス
20 第1のコントローラ
200 ジョイスティック
21 第2のコントローラ
30 ゲーム装置本体
40 キャラクタ
41 ラケット
50 表示画面
60 予想移動軌道
【技術分野】
【0001】
本発明は,移動オブジェクトの予測軌道に情報を持たせて表示するコンピュータプログラム及び,これを適用するゲーム装置に関し,特に,遊戯者(プレイヤ)により操作される入力機器(ポインティングデバイス)の出力に応じて,表示装置にオブジェクトを移動表示させるプログラムに関する。
【背景技術】
【0002】
これまでプレイヤの操作に基づき,表示装置の画面上に移動オブジェクトとしてボールの移動表示を行い,ボールを扱うスポーツを模擬するゲームが種々ゲーム装置において実行可能とされている。
【0003】
そして,ボールゲームとして,例えば,特許文献1に記載されるように,ゴルフのショット操作の前にショットの要素に基づきボールの予想弾道軌跡を表示するもの,あるいは,特許文献2に記載されるように,テーブルテニス等を模擬するゲームにおいて,プレイヤの入力操作の仕方に応じてスイングの打法を判定し,打法に対応したボールの軌跡を表示装置に表示して,プレイヤに対する参考情報を表示する発明が知られている。
【0004】
一方,プレイヤにより操作される入力機器として種々新たな機能が開発され,これらを利用して,新たなスポーツを模擬するゲームを実現することが可能となって来た。
【0005】
しかし,新たなゲーム化されるスポーツは,プレイヤには一般的でないものもある。したがって,かかる場合は,ゲームの中でそのルールや判定結果を反映させながら当該スポーツゲームを楽しめることが重要である。
【特許文献1】特開2004−290657号公報
【特許文献2】特許第3763776号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
上記の特許文献1,2に記載の従来発明にあっては,先に説明したようにボールの予想される軌跡を表示してプレイヤに有利な情報を表示することが行われる。しかし,例えば,スカッシュのようなスポーツの場合,プレイヤにとってルールが一般的でない。さらに,スカッシュのボールは,直方体の空間内を天井以外の5面で跳ね返りながら高速で移動し,複雑で激しいボールの動きをする。
【0007】
さらに,スカッシュのルールは複雑である。例えば,ノーバウンドで,前面壁に当てることが要件である。さらに周囲の4つの壁に接触してもバウンド回数には含まれないが,床面に2バウンドすると,相手側に得点が入る等である。
【0008】
このような複雑なルールと,激しいボールの移動があるスポーツをゲーム上で模擬する場合,床面と壁面のどちらでボールがバウンドしたかの区別がつき難いのでリアルタイムでボールの予測軌道を常時表示し,プレイヤに対しどのタイミングで,あるいはどの位置でボールを打てば良いかの情報を与えることが好ましい。
【0009】
また,予測不可能な要素の影響を受けた際に,即座に反映した情報を描画表示することが必要であり,更に軌道の描画において,ルールに関する情報が表示されることが望ましい。
【0010】
したがって,本発明の目的は,スカッシュのような複雑で激しいボール(移動体オブジェクト)の動きをし,又,ルールが複雑であるスポーツをゲームで模擬する場合の,上記の要望及び問題点の解決をする移動オブジェクトの予測軌道に情報を持たせて表示するコンピュータプログラムを提供することにある。
【課題を解決するための手段】
【0011】
上記の課題を解決する本発明の第1の側面は,仮想空間に設けられた複数の平面があるフィールド上で,プレイヤの入力操作に応答して動作するキャラクタとボールとの衝突を判定して,該ボールの軌道を変化させるゲームの様子を,前記仮想空間に配置される仮想視点から見た画像で表示する処理をコンピュータシステムに実行させるためのコンピュータプログラムであって,前記コンピュータシステムに,移動する前記ボールの軌道を演算する軌道演算ステップと,前記軌道を画面に表示する軌道表示ステップと,前記軌道が前記衝突から所定の平面に接した回数を計測する回数計測ステップと,前記計測した回数が所定回数を越えた場合,前記軌道表示の形態を変更して表示する軌道表示変更ステップとを実行させることを特徴とする。
【0012】
上記側面において,前記軌道表示ステップは,前記ボールの所定時間先までを予測表示させるようにできる。
【0013】
上記において,前記軌道演算ステップは,前記ボールの移動方向と移動速度と回転方向のうち少なくとも1つに基づいて前記軌道を演算するようにしてもよい。
【0014】
また,前記プレイヤの入力操作に基づいて前記衝突が判定された場合において,前記コンピュータシステムに,前記入力操作の加速度に基づいて,前記ボールの移動方向と移動速度と回転方向のうち少なくとも1つを変更するパラメータ変更ステップとを更に実行させるようにしてもよい。
【0015】
上記のいずれかにおいて,前記コンピュータシステムに,前記プレイヤの入力操作に基づいて前記衝突が起こる位置を判定する衝突位置判定ステップと,前記衝突位置を所定の形態で画面に表示する衝突位置表示ステップとを更に実行させるようにしてもよい。
【0016】
さらに,上記において,前記ボールが前記所定の面に前記所定回数接した場合,前記ゲームを終了させるゲーム終了ステップを更に実行させる。
【0017】
また,上記において,前記軌道表示ステップは,前記ボールの移動軌道を線または点群で表示するようにしてもよい。
【発明を実施するための最良の形態】
【0018】
以下に図面に従い本発明の実施例を説明する。なお,実施例としてスカッシュを模擬するゲームを例にして説明するが本発明の適用は,かかるスカッシュに限定されるものではない。
【0019】
図1は,本発明に適用されるゲーム装置として機能するコンピュータシステムの構成例の機能ブロック図である。各機能部は,バス10を通してデータの授受を行う。
【0020】
外部メモリあるいは,内部メモリとして表されるROM2に格納されるゲームプログラムに従い,メインCPU1によりゲームが実行制御される。
【0021】
このゲーム実行制御において,制御手段としてのメインCPU1により,ROM2に格納されるオブジェクトデータに対し座標変換を行い,仮想三次元空間においてゲームプログラムに従い移動制御されるオブジェクトのデータが形成される。さらに,移動制御される仮想三次元座標を有するオブジェクトのデータは,メインCPU1により,表示装置5に表示されるべく二次元座標に透視変換される。
【0022】
この際,レンダリングプロセッサ4は,この二次元座標に座標変換されるオブジェクトデータに対し,ゲームプログラムに従い,テクスチャメモリ6からテクスチャデータを読み出し,読み出したテクスチャを貼り付け,画像データとしてビデオメモリ7に描画する。
【0023】
ビデオメモリ7に描画された画像データは,所定周期で読み出され,表示装置5に送られることにより,表示装置5に,ゲームプログラムに従い移動制御されるオブジェクトを含むゲーム画像が表示される。
【0024】
かかるゲーム装置における基本的な動作に対し,本発明は,ROM2に格納されるゲームプログラムに従い処理され,特に移動オブジェクト(スカッシュゲームにおけるボール)の予測移動軌道に情報を持たせて表示することに特徴を有する。
【0025】
したがって,本願の対象とする発明の側面は,かかる移動オブジェクトの予測移動軌道に情報を持たせて描画を行うゲームプログラム及び,かかるゲームプログラムにより実行制御されるゲーム装置にある。
【0026】
図1において,更に本発明の適用においてプレイヤにより画面上でスカッシュを行うキャラクタの移動を制御するために用いられる第1のコントローラと,プレイヤがスカッシュを行うキャラクタの移動オブジェクトであるボールをヒットするタイミングを制御する第2のコントローラからの信号を受信する無線受信器8を備えている。
【0027】
無線受信器8は,第1のコントローラ及び第2のコントローラで生成された情報を無線,例えばブルーツース(Bluetooth:登録商標)を用いて受信する。
【0028】
さらに,図1において本発明とは直接関係しないが,他の外部機器と接続されるインタフェース部9がバス10に接続されている。
【0029】
図2は,かかる無線受信器8,及びプレイヤにより操作される第1及び第2のコントローラ20,21の関係を説明する図である。
【0030】
第1のコントローラ20は,第2のコントローラ21に有線で接続可能である。第2のコントローラ21に無線機能例えば,上記のブルーツース機能を有し,第1のコントローラ20で生成された情報と,第2のコントローラ21で生成した情報を所定のフォーマットでゲーム装置本体30に内蔵される無線受信器8に送信する。
【0031】
かかる第1のコントローラ20及び第2のコントローラ21として,例えば,任天堂株式会社により提供されるWii(登録商標)と称されるリモコンシステムが使用可能である。
【0032】
第1のコントローラ20及び第2のコントローラ21は,ゲーム装置本体30とは,分離されているので,プレイヤは,第1のコントローラ20及び第2のコントローラ21を両手で持って自由に操作することが可能である。
【0033】
図2において,ゲーム装置本体30に表示装置5が接続され,スカッシュゲームを描画している表示画面50が示されている。
【0034】
ゲーム装置本体30のインターフェース部8(図2では図示されていない)に有線で第1のコントローラ20が接続されている。また,第2のコントローラ21は,ゲーム装置本体30の無線受信器9と無線接続されている。
【0035】
ここで,第1のコントローラ20及び第2のコンとローラ21の詳細について更に図3〜図5により説明する。
【0036】
図3は,第1のコントローラ20を説明する図である。図示されるようにジョイスティック200を有し,これを上下左右に傾けることが可能である。ジョイスティック200を傾けた方向を示す信号を,インターフェース部8を通してメインCPU1が受信する。そして,メインCPU1は,受信した信号に対応して図3の右側に表示されるようにキャラクタ40の表示画面50に表示される2次元座標位置を変更する。
【0037】
これにより,キャラクタ40は,表示装置5の表示画面50において,第1のコントローラ20の操作方向に対応して移動表示される。
【0038】
一方,図4は,第2のコントローラ21について説明する図である。第2のコントローラ21は,種々の機能を有しているが,本発明の適用において使用される機能は,第2のコントローラ21が,プレイヤによって振られる際の加速度とその方向を検知して出力する機能である。
【0039】
かかる機能を有するために,第2のコントローラ21には3軸の加速度センサーが搭載されている。3軸の加速度センサーは,3次元空間における加速度,傾き,振動をX,Y,Z軸の3軸成分に分けて検出するセンサーとして一般に知られている。
【0040】
例えば,中央に錘部を有し,錘部をX,Y軸方向のビームと周辺枠で支え,且つビームに形成された歪検出素子(ピエゾ抵抗素子)の出力の組み合わせで,X,Y,Z軸の3軸成分に分けて検出することができる。
【0041】
第2のコントローラ21は,この検出された出力を更に所定のフォーマットにより無線でゲーム装置本体30の無線受信器9に送信する無線機能を有している。
【0042】
図4において,第2のコントローラ21を矢印方向に振ると,加速度センサーによりコントローラ21の降りが検知され,ゲーム装置本体30側に送信される。したがって,メインCPU1は,プログラムに従って,コントローラ21の降りの検知信号に基づいて,キャラクタ40の持つラケット41を振るような画像を生成して,表示画面50に表示する。
【0043】
さらに,制御として,コントローラ21の加速度センサーによって,コントローラ21の降りの強さが検知されるので,この情報もゲーム装置本体30に送ることができる。これにより,後に説明するようにラケット41により打たれるボールの打ち出し強さが制御される。
【0044】
また,制御として,図5に示すように,ボールの飛んでくる方向Aに対する,ラケットの打ち出すタイミングに応じて,ボールが打ち返される方向Bが制御される。
【0045】
図5(1)は,ラケット41を振るタイミングが早いときにボールが打ち返される方向Bであり左方向に打ち出される。図5(2)は,ラケット41を振るタイミングが中間のときのボールが打ち返される方向Bであり,ボールの飛んでくる方向Aと同じ方向に向かう。また,図5(1)は,ラケット41を振るタイミングが遅いときのボールが打ち返される方向Bであり,右方向に打ち出される。
【0046】
かかる基本的な制御に基づいて実行される本発明の移動オブジェクト(スカッシュにおけるボール)の移動軌道の表示制御の詳細を説明する前に,本発明に従う移動オブジェクトの移動軌道の表示制御の概略を説明しておく。
【0047】
図6A〜図6C及び,図7は,ゲームプログラムに従いメインCPU1により表示装置5に表示制御されるスカッシュゲームの表示画面例(その1〜その4)である。
【0048】
図6A〜図6C及び,図7において,背面壁を除いて,前面壁W1,左右壁W2,W3及びフロア(床面)W4のフィールドが表示されている。プレイヤにより移動制御されるキャラクタ40bと,コンピュータ側によりプログラムに従い移動制御される,競技相手のキャラクタ40aが表示されている。なお,二人のプレイヤ間で競技を行う場合は,キャラクタ40aは,キャラクタ40bを操作するプレイヤと異なるプレイヤにより移動制御される。
【0049】
さらに,図6A〜図6Cに示す表示画面の画像は,キャラクタ40aがボール50をラケット41aでヒットしたときのボールの予想移動軌跡を表示している。
【0050】
図6Aは,ラケット41aでヒットされた後,前面の壁W1に当たり,ついで,床面W4に落下して2バウンドして更に床面W4を転がる状態の,あるフレーム時点の予想移動軌跡60,61を表示している。
【0051】
図6Bは,図6Aに続くフレームの表示画面の画像であり,ボール50が床面W4でバウンドしたときのタイミング以降の予想移動軌跡60,61を表示している。このとき,ボール50をヒットする番のプレイヤ40bによって,ラケット41bを操作する入力操作があり,キャラクタ40bの位置に基づくヒット可能範囲70に,ボール50があるか否かを判定して,範囲内であった場合に予想ヒット点51を表示する。
【0052】
図6Cは,図6Bに続くフレームの表示画面の画像であり,ボール50が床面W4でバウンドして,より高くバウンドした状態であり,予想ヒット点51にほぼ到達した状態である。このとき,プレイヤの操作するキャラクタ40bの持つラケット41bがボールの予想ヒット点51により近づいた状態を表示している。
【0053】
また,図6A〜図6Cにおいて,予想移動軌跡60は,床面W1に2バウンドする前までの移動軌跡を示し,2バウンド以降の移動軌跡は,ゲームルールにおいて,失策と判定されるので,予想移動軌跡60とは,異なる線の太さ,あるいは,線の色等で区別して上記表示画面に表示される。
【0054】
さらに,予想移動軌跡60,61は,ボール50をラケットでヒットした時点から例えば,2秒後までの予想移動軌道が示される。
【0055】
図7は,ボール50をヒットした後の表示画面に表示される画像の例である。
【0056】
ヒットすべき順番にあるキャラクタ40bのラケット41bが操作されると,ボール50が予想ヒット点51でヒットされ,ヒットした点を出発点52として新たな予想移動軌跡60a,61aが形成され,表示される。
【0057】
このときの新たな予想移動軌跡60a,61aは 前面壁W1当たった後,ノーバウンドで,背面壁に当たり,ついで背面壁から床面W4で第1のバウンドをするまで予想移動軌跡60aと,更に2バウンド以降の予想移動軌跡61aが,示されている。
【0058】
先に説明したように,2バウンド以降の予想移動軌跡61aは,第1のバウンドをするまで予想移動軌跡60aと異なる表示(軌跡表示の色,又は線の太さ等,表示・非表示による区別による相違)が行われる。さらに,ボールがヒットされた時点から所定の時間経過例えば,2秒後以降の移動軌跡表示は行われない。
【0059】
図8は,ボール軌跡の一例を拡大して表示した図である。複数のボールを並べて紙面の手前側P1から奥行き方向に向かうボール軌跡を示している。ボールの2回目のバウンド時点P2以降の表示を色で変えている。また,ボール同士の間隔で,ボール移動の早さを表現している。
【0060】
上記のように本発明は,ボール50をヒットした時点から所定時間経過までのボールの予想移動軌道を表示し,且つ,負けとなる床面W4にツーバウンド以降のボール予想移動軌道の表示を変えるように制御している。
【0061】
これにより,激しく動くボールの行方を予測でき,且つルールに対応して,ボールを打ち返すべきタイミングを推測することを可能とするので,該当のスポーツになじみの無いプレイヤにとっても容易にゲームを楽しむことができる。
【0062】
図9,図10は,上記した本発明の移動オブジェクトの予測移動軌道に情報を持たせて表示するコンピュータプログラム手順の詳細を説明する動作フローである。
【0063】
先ず図9において,スカッシュゲームが開始されると,サーブを打つプレイヤに対応する第2のコントローラ21(図9においては,ラケット41に相当し,デバイスと略称する)の操作をメインCPU1が検出する(ステップST1)。
【0064】
デバイスに対する操作の検出は,メインCPU1によりデバイスの3軸(X,Y,Z)重力値を一定時間(1秒)RAM3に記憶する。そして,一定時間におけるデバイスの加速度の変化と,静止時からの重力方向の変化を検出して,デバイスが前方向に振られたとみなされたと判断する。
【0065】
この加速度と重力方向の検出は,ともに加速度センサーの3軸重力値の変化を基に計算される。また,加速度センサーを用いない場合は,従来のコントローラ等を用い,プレイヤのボタン入力操作による入力信号の変化を検出し,検出されたときをデバイスが操作されたと判断する(以下の「デバイス操作」も同様である)。
【0066】
ステップST1で,デバイス操作を受け付けると,並列して処理されるボールの軌道を計算するボール軌道処理から所定時間経過(例えば,2秒後)までのボール軌道データを受け取り,画面に軌道を表示させる(ステップST2)。
【0067】
このとき,ボール軌道が床面(コート)W4にバウンドした回数が2回以上になった場合は,それまでのボール軌道の色と異ならせて表示する。あるいは,点群から線,線から点群,2バウンド後は表示しない等の対応処理が可能である。これは,ボール50が壁面W2,W3にもバウンドしてボールの軌道が変化しやすいため,プレイヤにどの場所,どのタイミングで打ったらよいかを分かりやすくさせるためである。
【0068】
なお,上記ボール軌道処理は,ボール50の3軸(X,Y,Z)速度パラメータ(ボールに回転がある場合は回転パラメータも含む)と,4壁面や床面(コート)に跳ね返る場合は,ボールの弾性係数を基にして2秒後までのボール軌道を毎フレーム計算する。また,弾性係数はボールだけでなく,4壁面や床面(コート)に持たせても良いし,ボールの3軸速度パラメータは,速度と方向(ベクトル)で,別々に持たせても良い。
【0069】
このゲームは,4壁面と床面(コート)は全て座標軸方向に沿っている。
【0070】
上記のボール軌道処理(ステップST2)の詳細は図10の動作フローに示すので後に再度説明する。
【0071】
ついで,ボール50が2バウンド,もしくは前面の壁W1にノーバウンドで当たらない場合等,ルール上ではゲーム終了となる表示がされた場合は,ゲームを終了させる(ステップST3)。
【0072】
ステップST3でゲーム終了とならなかった場合は,ボール50を打つべきプレイヤがデバイス操作をしたか検出する(ステップST4)。デバイス操作が検出されなかった場合はステップST2に戻る(ステップST4,NO)。
【0073】
ST4でデバイス操作が検出された場合(ステップST4,YES)は,この時点からのデバイス操作による加速度と重力方向(3軸重力値)の変化をバッファRAM3に記録し始める(ステップST5)。
【0074】
従来のコントローラを使用する場合は,十字キーやラケットを振るボタン等の入力を契機にRAM3に記録し始める。
【0075】
キャラクタ40とボール50の位置関係を計算して,キャラクタ40がボール50を打てる範囲にいるかを検出する(ステップST6)。この判定は先に説明したように所定の領域(図6Bのヒット可能範囲70内の領域)に,ボール50が存在するか否かで判定する。
【0076】
ステップST6でキャラクタ40が打てる範囲にいなかった場合,空振りモーションを描画し,その後ステップS2に戻る(ステップST7,YES)。
【0077】
キャラクタがボールを打てる範囲にいる場合は,キャラクタとボールの位置関係からスイングモーションを決定して表示を開始する(ステップST8)。
【0078】
ステップST6における位置関係からボール打点を算出し,プレイヤに軌道が変わる部分を教えるため所定の形態(例えば,画面上で,軌道表示60よりも拡大した赤い球51:図6B参照)で表示する(ステップST9)。
【0079】
ステップST8で開始したスイングモーション表示で,ボールとラケットとが衝突するかの判定処理を待つ(ステップST10)。
【0080】
ステップST10でボールとラケットとの衝突判定が得られると,ステップST5でバッファRAM3に記憶を始めた最新25フレーム分の重力と加速度の変化量を基に,ボールの3軸(X,Y,Z)速度パラメータと,回転パラメータを変更する(ステップST11)。
【0081】
加速度変化が大きい場合にはボールの速度を速くしたり,図5に示したように衝突タイミングの早さによってボールの3軸速度(XとY)の比率を傾けて,左右方向に打ち分けることができる。
【0082】
さらに,衝突に近い時のデバイス操作を優先して反映させるため,25フレーム中の新しい値から順に,ボールに与える影響度を高く評価する。
【0083】
デバイス操作の変化(加速度の大小など)は補正して,なるべくゲームが続くようにする。
【0084】
また,ボールを打つ方向も前面の壁W1の中央に寄るように補正している。
【0085】
従来のコントローラの場合も同様に,25フレーム分の十字キーの値を基にボールを打つ方向を決定したり,ラケットを振るボタンの入力時間や入力パターンで,ボールを打つ強さを決めることができる。
【0086】
ついで,ボールとラケットの衝突表示が終了したかを判定する(ステップST12)。
ボールとラケットの衝突表示が終了すると(ステップST12),バウンド回数のリセットと,ボールとラケットの衝突を検出するキャラクタの交代を行い,ステップST2に戻り,上記の処理が継続される(ステップST13)。
【0087】
つぎに,図10の動作フロー図に従い,ステップST2のボール軌道処理の詳細を説明する。
【0088】
ボール軌道描画処理開始すると,ボールの,あるフレームの状態を示す一連のデータ(ボール情報として1フレーム分の位置,速度,回転,描画色等の情報を持つ)として,現在時点の状態を持つデータ(ボール情報C)が用意されている必要がある。
【0089】
まず,各種パラメータを初期化する。各種パラメータの初期化として,ボール軌道描画処理の為に確保する必要があるパラメータは以下の4種である。
【0090】
軌道表示バッファ
処理フレーム数カウンタ(N)
バウンド回数カウンタ(B)
ボール軌道描画処理用のワークメモリ(ボール情報A)
これら4種を,以下のように初期化する。なお,上バッファ及びカウンタは,RAM3に生成することができる。
i 軌道表示バッファを初期化する。
【0091】
軌道表示バッファは,ボール情報を,軌道予測を行うフレーム数分だけ複製して保持することができる。ここで軌道表示バッファ全てを一旦消去する。
ii 処理フレーム数カウンタを初期化する(ステップST14)
N=1 とする。
iii バウンド回数カウンタを初期化する。
【0092】
B=0 とする。
iv ボールの,現在時点の状態を複製する。
【0093】
現在時点のボール状態のデータ(ボール情報C)を,ボール軌道描画処理用のワークメモリ(ボール情報A)にコピーする。
【0094】
処理フレーム数カウンタと,軌道予測を行うフレーム数と比較する。処理フレーム数カウンタが,既に軌道予測を行うフレーム数を超えていれば(ステップST15,YES),生成された軌道表示バッファの内容を元に軌道を描画し(ステップST26),処理を終える(図9のフローに戻る)。
【0095】
処理フレーム数カウンタが,まだ軌道予測を行うフレーム数を超えていなければ(ステップST15,NO),次のように,ボール情報Aを評価・更新し,ボール情報Aの状態を1フレーム分未来方向に進める。
【0096】
このために,ボール情報Aの評価・更新としてつぎの処理を行う。
【0097】
i 初期化処理として,ボールと地形との干渉状態(床面に触れた,壁に触れた,など)を示すフラグをクリアする。
【0098】
ii ボール情報Aのうち,位置を,速度・回転を基に,1フレーム分移動させて,位置を更新する(ステップST16)。
【0099】
iii ついで,ボール情報Aのうち,速度・回転を,空気抵抗・重力などのパラメータに基づいて,1フレーム分変化させる。
【0100】
iv 反射処理として,ボール情報Aのうち,ボール位置が,壁面または床面に接していれば(ステップST17,YES)),ボールのパラメータ(弾性係数等)と壁のパラメータに基づき,ボール情報Aの 位置,速度,回転を変更し(ステップST18),Nフレーム後のボール位置を再計算する(ステップST19)。
【0101】
また,触れた面に応じて,ボールと地形との干渉状態を示すフラグを設定する。
【0102】
すなわち,更新されたボール情報Aが床面W4に触れていれば(床面に触れたことを示すフラグが立っていれば)(ステップST20,YES),バウンド回数カウンタをインクリメントする(ステップST21)。
【0103】
バウンド回数カウンタが,2回(ゲームのルール上,ミスと見なされるバウンド回数)に達しているかを評価し(ステップST22),既に達していれば(ステップST22,YES),ボール情報Aが保持する描画色を,Nフレーム後のボール位置でミスになることを示す色(例えば,紫)で表示するように軌道表示バッファに設定保存する(ステップST23)。
【0104】
反対に,未だ達していなければ,ボール情報Aが保持する描画色を,Nフレーム後のボール位置でミスにならないことを示す色(例えば,赤)で表示するように軌道表示バッファに設定する(ステップST24)。
【0105】
ついで,処理フレーム数カウンタのカウントNをし(ステップST25),更にステップST15に戻り,上記処理を繰り返す。
【0106】
上記実施例に従い説明したうように,本発明によりスカッシュのような複雑なルールで且つ激しいボール(移動体オブジェクト)の動きをするスポーツをゲームで模擬する場合に,移動オブジェクトの予測軌道に情報を持たせて表示することができる。
【0107】
すなわち,予測軌道の表示がない場合は,プレイヤに床面(コート)と壁面のうち,どちらの面でボールがバウンドしたかを知らせることが困難であるが,予測軌道を表示することにより,プレイヤに視覚的に知らせることができる。
【0108】
また,そのことにより,ルール上で定められているバウンド数以内で,ボールを打つタイミングと位置を知らせることができ,ゲームの難易度を抑えることができる。よって,プレイヤにラリーを続かせることができ,ルールを熟知していないプレイヤをより楽しませることができる。
【0109】
これにより,ルールに熟知していないプレイヤに対しても容易にゲームを楽しむことが可能なゲームシステムを提供することができる。
【図面の簡単な説明】
【0110】
【図1】本発明に適用されるゲーム装置として機能するコンピュータシステムの構成例の機能ブロック図である。
【図2】インターフェース部と,無線受信器及び,プレイヤにより操作される第1及び第2のコントローラの関係を説明する図である。
【図3】第1のコントローラを説明する図である。
【図4】第2のコントローラについて説明する図である。
【図5】ラケットの打ち出すタイミングに応じて,ボールが打ち返される方向の制御を説明する図である。
【図6A】ゲームプログラムに従いメインCPU1により表示装置5に表示制御されるスカッシュゲームのあるフレームの表示画面例(その1)である。
【図6B】図6Aのフレームに続くフレームの表示画面例(その2)である。
【図6C】図6Bのフレームに続くフレームの表示画面例(その3)である。
【図7】ゲームプログラムに従いメインCPU1により表示装置5に表示制御されるスカッシュゲームのボールをヒットした後の表示画面例(その4)である。
【図8】ボール軌跡の一例を拡大して表示した図である。
【図9】本発明の移動オブジェクトの予測軌道に情報を持たせて表示するコンピュータプログラム手順の詳細を説明する動作フローである。
【図10】図9の動作フロー中のステップST2(ボール軌道処理)の詳細を説明するフローである。
【符号の説明】
【0111】
1 メインCPU
2 ROM
3 RAM
4 レンダリングプロセッサ
5 表示装置
6 テクスチャメモリ
7 VRAM
8 インターフェース部
9 無線受信器
10 バス
20 第1のコントローラ
200 ジョイスティック
21 第2のコントローラ
30 ゲーム装置本体
40 キャラクタ
41 ラケット
50 表示画面
60 予想移動軌道
【特許請求の範囲】
【請求項1】
仮想空間に設けられた複数の平面があるフィールド上で,プレイヤの入力操作に応答して動作するキャラクタとボールとの衝突を判定して,該ボールの軌道を変化させるゲームの様子を,前記仮想空間に配置される仮想視点から見た画像で表示する処理をコンピュータシステムに実行させるためのコンピュータプログラムであって,
前記コンピュータシステムに,移動する前記ボールの軌道を演算する軌道演算ステップと,
前記軌道を画面に表示する軌道表示ステップと,
前記軌道が前記衝突から所定の平面に接した回数を計測する回数計測ステップと,
前記計測した回数が所定回数を越えた場合,前記軌道表示の形態を変更して表示する軌道表示変更ステップと,
を実行させることを特徴とするコンピュータプログラム。
【請求項2】
請求項1において,
前記軌道表示ステップは,前記ボールの所定時間先までを予測表示させることを特徴とするコンピュータプログラム。
【請求項3】
請求項1または請求項2において,
前記軌道演算ステップは,前記ボールの移動方向と移動速度と回転方向のうち少なくとも1つに基づいて前記軌道を演算することを特徴とするコンピュータプログラム。
【請求項4】
請求項3において,
前記プレイヤの入力操作に基づいて前記衝突が判定された場合において,前記コンピュータシステムに,前記入力操作の加速度に基づいて,前記ボールの移動方向と移動速度と回転方向のうち少なくとも1つを変更するパラメータ変更ステップと,
を更に実行させることを特徴とするコンピュータプログラム。
【請求項5】
請求項1乃至4のいずれかにおいて,
前記コンピュータシステムに,
前記プレイヤの入力操作に基づいて前記衝突が起こる位置を判定する衝突位置判定ステップと,
前記衝突位置を所定の形態で画面に表示する衝突位置表示ステップと,
を更に実行させることを特徴とするコンピュータプログラム。
【請求項6】
請求項1乃至5のいずれかにおいて,
前記ボールが前記所定の面に前記所定回数接した場合,前記ゲームを終了させるゲーム終了ステップを更に実行させることを特徴とするコンピュータプログラム。
【請求項7】
請求項1乃至請求項6のいずれかにおいて,
前記軌道表示ステップは,前記ボールの移動軌道を線または点群で表示することを特徴とするコンピュータプログラム。
【請求項1】
仮想空間に設けられた複数の平面があるフィールド上で,プレイヤの入力操作に応答して動作するキャラクタとボールとの衝突を判定して,該ボールの軌道を変化させるゲームの様子を,前記仮想空間に配置される仮想視点から見た画像で表示する処理をコンピュータシステムに実行させるためのコンピュータプログラムであって,
前記コンピュータシステムに,移動する前記ボールの軌道を演算する軌道演算ステップと,
前記軌道を画面に表示する軌道表示ステップと,
前記軌道が前記衝突から所定の平面に接した回数を計測する回数計測ステップと,
前記計測した回数が所定回数を越えた場合,前記軌道表示の形態を変更して表示する軌道表示変更ステップと,
を実行させることを特徴とするコンピュータプログラム。
【請求項2】
請求項1において,
前記軌道表示ステップは,前記ボールの所定時間先までを予測表示させることを特徴とするコンピュータプログラム。
【請求項3】
請求項1または請求項2において,
前記軌道演算ステップは,前記ボールの移動方向と移動速度と回転方向のうち少なくとも1つに基づいて前記軌道を演算することを特徴とするコンピュータプログラム。
【請求項4】
請求項3において,
前記プレイヤの入力操作に基づいて前記衝突が判定された場合において,前記コンピュータシステムに,前記入力操作の加速度に基づいて,前記ボールの移動方向と移動速度と回転方向のうち少なくとも1つを変更するパラメータ変更ステップと,
を更に実行させることを特徴とするコンピュータプログラム。
【請求項5】
請求項1乃至4のいずれかにおいて,
前記コンピュータシステムに,
前記プレイヤの入力操作に基づいて前記衝突が起こる位置を判定する衝突位置判定ステップと,
前記衝突位置を所定の形態で画面に表示する衝突位置表示ステップと,
を更に実行させることを特徴とするコンピュータプログラム。
【請求項6】
請求項1乃至5のいずれかにおいて,
前記ボールが前記所定の面に前記所定回数接した場合,前記ゲームを終了させるゲーム終了ステップを更に実行させることを特徴とするコンピュータプログラム。
【請求項7】
請求項1乃至請求項6のいずれかにおいて,
前記軌道表示ステップは,前記ボールの移動軌道を線または点群で表示することを特徴とするコンピュータプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6A】
【図6B】
【図6C】
【図7】
【図8】
【図9】
【図10】
【図2】
【図3】
【図4】
【図5】
【図6A】
【図6B】
【図6C】
【図7】
【図8】
【図9】
【図10】
【公開番号】特開2008−119211(P2008−119211A)
【公開日】平成20年5月29日(2008.5.29)
【国際特許分類】
【出願番号】特願2006−305767(P2006−305767)
【出願日】平成18年11月10日(2006.11.10)
【出願人】(000132471)株式会社セガ (811)
【Fターム(参考)】
【公開日】平成20年5月29日(2008.5.29)
【国際特許分類】
【出願日】平成18年11月10日(2006.11.10)
【出願人】(000132471)株式会社セガ (811)
【Fターム(参考)】
[ Back to top ]