ゲーム装置、ゲーム装置の制御方法、及びプログラム
【課題】ユーザに不自然な印象を与えずに、オブジェクトと接触する移動物体の移動制御を行うこと。
【解決手段】当たり判定用オブジェクト設定部(74)は、第1の当たり判定用オブジェクト(60a)を、選手オブジェクト(52,54)の位置に基づいて決定される位置に設定し、第2の当たり判定用オブジェクト(60b)を、第1の当たり判定用オブジェクト(60a)の表面の少なくとも一部を覆うように設定する。移動制御部(78)は、第2の当たり判定用オブジェクト(60a)の表面とボール(56)とが接触する場合、接触位置に対応する法線方向及び接触後の移動方向のなす角が、接触方向及び接触位置に対応する法線方向のなす角よりも大きくなり、かつ、接触方向と接触後の移動方向とのずれが、第1の当たり判定用オブジェクトよりも小さくなるように、ボール(56)を移動させる。
【解決手段】当たり判定用オブジェクト設定部(74)は、第1の当たり判定用オブジェクト(60a)を、選手オブジェクト(52,54)の位置に基づいて決定される位置に設定し、第2の当たり判定用オブジェクト(60b)を、第1の当たり判定用オブジェクト(60a)の表面の少なくとも一部を覆うように設定する。移動制御部(78)は、第2の当たり判定用オブジェクト(60a)の表面とボール(56)とが接触する場合、接触位置に対応する法線方向及び接触後の移動方向のなす角が、接触方向及び接触位置に対応する法線方向のなす角よりも大きくなり、かつ、接触方向と接触後の移動方向とのずれが、第1の当たり判定用オブジェクトよりも小さくなるように、ボール(56)を移動させる。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ゲーム装置、ゲーム装置の制御方法、及びプログラムに関する。
【背景技術】
【0002】
従来、ゲーム空間内に配置されたオブジェクト及び移動物体を用いたゲームが知られている。このようなゲームにおいては、ゲーム空間を移動する移動物体とオブジェクトとが接触したか否かを判定する接触判定(当たり判定)が行われる(特許文献1)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2007−7064号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
移動物体とオブジェクトとが接触した場合、例えば、移動物体がオブジェクトに接触した方向と、オブジェクトの接触位置の法線方向と、のなす角度と等しい角度で移動物体が跳ね返るように移動制御が行われることが考えられる。しかしながら、この場合、オブジェクトが柔らかい素材を示すものであっても硬い素材を示すものであっても、互いに同じような跳ね返り方をするので、ユーザに不自然な印象を与えてしまう。
【0005】
本発明は上記課題に鑑みてなされたものであって、その目的は、ユーザに不自然な印象を与えずに、オブジェクトと接触する移動物体の移動制御を行うことが可能なゲーム装置、ゲーム装置の制御方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【0006】
上記課題を解決するために、本発明に係るゲーム装置は、ゲーム空間内に配置されたオブジェクト及び移動物体を用いたゲームを実行するゲーム装置であって、前記オブジェクトに対応する第1の当たり判定用オブジェクトを、前記オブジェクトの位置に基づいて決定される位置に設定し、前記オブジェクトに対応する第2の当たり判定用オブジェクトを、前記オブジェクトの位置に基づいて決定される位置であって、前記第1の当たり判定用オブジェクトの表面の少なくとも一部を覆うように設定する当たり判定用オブジェクト設定手段と、前記第1の当たり判定用オブジェクトの表面又は前記第2の当たり判定用オブジェクトの表面と前記移動物体とが接触するか否かを判定する接触判定手段と、前記第1の当たり判定用オブジェクトの表面又は前記第2の当たり判定用オブジェクトの表面と前記移動物体とが接触する場合、前記移動物体の接触方向と、前記第1の当たり判定用オブジェクトの表面又は前記第2の当たり判定用オブジェクトの表面の接触位置に対応する法線方向と、に基づいて決定される接触後の移動方向に前記移動物体を移動させる移動制御手段と、を含み、前記移動制御手段は、前記第2の当たり判定用オブジェクトの表面と前記移動物体とが接触する場合、前記接触位置に対応する法線方向及び前記接触後の移動方向のなす角が、前記接触方向及び前記接触位置に対応する法線方向のなす角よりも大きくなり、かつ、前記接触方向と前記接触後の移動方向とのずれが、前記第1の当たり判定用オブジェクトの表面と前記移動物体とが接触する場合よりも小さくなるように、前記移動物体を移動させる手段を含むことを特徴とする。
【0007】
また、本発明に係るゲーム装置の制御方法は、ゲーム空間内に配置されたオブジェクト及び移動物体を用いたゲームを実行するゲーム装置の制御方法であって、前記オブジェクトに対応する第1の当たり判定用オブジェクトを、前記オブジェクトの位置に基づいて決定される位置に設定し、前記オブジェクトに対応する第2の当たり判定用オブジェクトを、前記オブジェクトの位置に基づいて決定される位置であって、前記第1の当たり判定用オブジェクトの表面の少なくとも一部を覆うように設定する当たり判定用オブジェクト設定ステップと、前記第1の当たり判定用オブジェクトの表面又は前記第2の当たり判定用オブジェクトの表面と前記移動物体とが接触するか否かを判定する接触判定ステップと、前記第1の当たり判定用オブジェクトの表面又は前記第2の当たり判定用オブジェクトの表面と前記移動物体とが接触する場合、前記移動物体の接触方向と、前記第1の当たり判定用オブジェクトの表面又は前記第2の当たり判定用オブジェクトの表面の接触位置に対応する法線方向と、に基づいて決定される接触後の移動方向に前記移動物体を移動させる移動制御ステップと、を含み、前記移動制御ステップは、前記第2の当たり判定用オブジェクトの表面と前記移動物体とが接触する場合、前記接触位置に対応する法線方向及び前記接触後の移動方向のなす角が、前記接触方向及び前記接触位置に対応する法線方向のなす角よりも大きくなり、かつ、前記接触方向と前記接触後の移動方向とのずれが、前記第1の当たり判定用オブジェクトの表面と前記移動物体とが接触する場合よりも小さくなるように、前記移動物体を移動させるステップを含むことを特徴とする。
【0008】
また、本発明に係るプログラムは、ゲーム空間内に配置されたオブジェクト及び移動物体を用いたゲームを実行するゲーム装置としてコンピュータを機能させるためのプログラムであって、前記オブジェクトに対応する第1の当たり判定用オブジェクトを、前記オブジェクトの位置に基づいて決定される位置に設定し、前記オブジェクトに対応する第2の当たり判定用オブジェクトを、前記オブジェクトの位置に基づいて決定される位置であって、前記第1の当たり判定用オブジェクトの表面の少なくとも一部を覆うように設定する当たり判定用オブジェクト設定手段、前記第1の当たり判定用オブジェクトの表面又は前記第2の当たり判定用オブジェクトの表面と前記移動物体とが接触するか否かを判定する接触判定手段、前記第1の当たり判定用オブジェクトの表面又は前記第2の当たり判定用オブジェクトの表面と前記移動物体とが接触する場合、前記移動物体の接触方向と、前記第1の当たり判定用オブジェクトの表面又は前記第2の当たり判定用オブジェクトの表面の接触位置に対応する法線方向と、に基づいて決定される接触後の移動方向に前記移動物体を移動させる移動制御手段、を含み、前記移動制御手段は、前記第2の当たり判定用オブジェクトの表面と前記移動物体とが接触する場合、前記接触位置に対応する法線方向及び前記接触後の移動方向のなす角が、前記接触方向及び前記接触位置に対応する法線方向のなす角よりも大きくなり、かつ、前記接触方向と前記接触後の移動方向とのずれが、前記第1の当たり判定用オブジェクトの表面と前記移動物体とが接触する場合よりも小さくなるように、前記移動物体を移動させる手段を含むことを特徴とするゲーム装置として前記コンピュータを機能させる。
【0009】
また、本発明に係る情報記憶媒体は、上記のプログラムを記録したコンピュータ読み取り可能な情報記憶媒体である。
【0010】
本発明によれば、ユーザに不自然な印象を与えずに、オブジェクトと接触する移動物体の移動制御を行うことが可能になる。
【0011】
また、本発明の一態様では、前記ゲーム装置は、前記第1の当たり判定用オブジェクト及び前記第2の当たり判定用オブジェクトに対応する法線マップを記憶してなる手段から、前記法線マップを取得する法線マップ取得手段を含み、前記移動制御手段は、前記第1の当たり判定用オブジェクトの表面又は前記第2の当たり判定用オブジェクトの表面と前記移動物体とが接触する場合、前記法線マップと、前記第1の当たり判定用オブジェクト又は前記第2の当たり判定用オブジェクトにおける前記移動物体との接触位置と、に基づいて前記接触位置に対応する法線方向を取得する手段を含むことを特徴とする。
【0012】
また、本発明の一態様では、前記移動制御手段は、前記移動物体の移動速度又は回転数の少なくとも一方を示す移動状態データを記憶する手段から前記移動状態データを取得する手段と、前記第1の当たり判定用オブジェクトの表面又は前記第2の当たり判定用オブジェクトの表面と前記移動物体とが接触する場合、前記移動物体の接触方向及び接触後の前記移動物体の移動方向のずれに基づいて前記移動状態データが示す移動物体の移動速度又は回転数の少なくとも一方を変更する手段と、を含むことを特徴とする。
【図面の簡単な説明】
【0013】
【図1】本発明の実施形態に係るゲーム装置のハードウェア構成を示す。
【図2】ゲーム空間の一例を示す図である。
【図3】ボールがオブジェクトに接触して移動する様子を示す図である。
【図4】判定オブジェクトを示す図である。
【図5】ゲーム装置で実現される機能のうち、本発明に関連する機能を示す機能ブロック図である。
【図6】法線マップを示す図である。
【図7】ボールと第1の当たり判定用オブジェクトとが接触した場合を示す図である。
【図8】ボールと第2の当たり判定用オブジェクトとが接触する場合を示す図である。
【図9】判定オブジェクトに接触して移動するボールを示す図である。
【図10】ゲーム装置が所定時間ごとに実行する処理を示すフロー図である。
【図11】変形例1−1における接触位置の拡大図である。
【図12】変形例1−2における接触位置の拡大図である。
【図13】変形例1−3における接触位置の拡大図である。
【図14】変形例3−1における当たり判定用オブジェクトの位置関係を示す図である。
【図15】変形例3−1における当たり判定用オブジェクトと接触するボールの移動制御の一例を示す図である。
【図16】変形例3−2における第1の当たり判定用オブジェクトと第2の当たり判定用オブジェクトとの位置関係の一例を示す図である。
【図17】変形例3−2における第1の当たり判定用オブジェクトと第2の当たり判定用オブジェクトとの位置関係の一例を示す図である。
【発明を実施するための形態】
【0014】
[1.実施形態]
以下、本発明の実施形態の一例について図面に基づき詳細に説明する。本発明の実施形態に係るゲーム装置は、例えば、家庭用ゲーム機(据置型ゲーム機)、携帯ゲーム機、携帯電話機、携帯情報端末(PDA)又はパーソナルコンピュータ等によって実現される。ここでは、実施形態に係るゲーム装置を家庭用ゲーム機によって実現する場合について説明する。
【0015】
[1−1.ゲーム装置のハードウェア構成]
図1は、本発明の実施形態に係るゲーム装置のハードウェア構成を示す。図1に示すゲーム装置10は、家庭用ゲーム機11、表示部32、音声出力部34、及び光ディスク36(情報記憶媒体)を含む。
【0016】
表示部32及び音声出力部34は、家庭用ゲーム機11に接続される。表示部32は、例えば、家庭用テレビ受像機又は液晶ディスプレイなどである。音声出力部34は、例えば、家庭用テレビ受像機に内蔵されたスピーカ又はヘッドホンなどである。
【0017】
家庭用ゲーム機11は、公知のコンピュータゲームシステムである。家庭用ゲーム機11は、バス12、制御部14、主記憶16、画像処理部18、入出力処理部20、音声処理部22、光ディスク再生部24、ハードディスク26、通信インタフェース28、及びコントローラ30を含む。
【0018】
制御部14は、一又は複数の制御部(例えば、CPU等)を含む。制御部14は、図示しないROMに格納されるオペレーティングシステムや、光ディスク36から読み出されるプログラムに基づいて、家庭用ゲーム機11の各部を制御する処理や情報処理を実行する。
【0019】
主記憶16は、例えば、RAMを含む。光ディスク36から読み出されたプログラム及びデータは、主記憶16に書き込まれる。主記憶16は、制御部14の作業用メモリとしても用いられる。バス12は、アドレス及びデータを家庭用ゲーム機11の各部でやり取りするためのものである。
【0020】
画像処理部18は、VRAMを含む。画像処理部18は、制御部14から供給される画像データに基づいてVRAM上にゲーム画面を描画する。VRAM上に描画されたゲーム画面は、ビデオ信号に変換されて所定のタイミングで表示部32に出力される。
【0021】
入出力処理部20は、制御部14が、音声処理部22、光ディスク再生部24、ハードディスク26、通信インタフェース28、及びコントローラ30にアクセスするためのインタフェースである。
【0022】
音声処理部22は、サウンドバッファを含む。音声処理部22は、光ディスク36からサウンドバッファに読み出された音声データを、音声出力部34から出力する。
【0023】
通信インタフェース28は、インターネットなどの通信ネットワークに、家庭用ゲーム機11を有線又は無線接続するためのインタフェースである。
【0024】
光ディスク再生部24は、光ディスク36に記録されたプログラムやデータを読み取る。本実施形態においては、プログラムやデータを家庭用ゲーム機11に供給するために、光ディスク36が用られる場合を説明するが、メモリカード等の他の情報記憶媒体が用いられて、プログラムやデータが家庭用ゲーム機11に対して供給されるようにしてもよい。他にも例えば、通信ネットワークを介して遠隔地からプログラムやデータが家庭用ゲーム機11に供給されるようにしてもよい。
【0025】
ハードディスク26は、一般的なハードディスク装置(補助記憶装置)である。なお、本実施形態において光ディスク36に記憶されるものとして説明するプログラムやデータは、ハードディスク26に記憶されていてもよい。
【0026】
コントローラ30は、ユーザがゲーム操作を行うための操作部である。家庭用ゲーム機11には、一又は複数のコントローラ30が、有線又は無線接続される。入出力処理部20は、一定周期毎(例えば1/60秒ごと)に、コントローラ30の各操作部材の状態をスキャンする。このスキャン結果を表す操作信号は、バス12を介して制御部14に供給される。制御部14は、この操作信号に基づいてユーザのゲーム操作を判定する。
【0027】
[1−2.ゲーム装置において実行されるゲーム]
ゲーム装置10は、光ディスク36から読み出したゲームプログラムを実行することによって、例えば、ゲーム空間内に配置されたオブジェクト及び移動物体を用いたゲームを実行する。
【0028】
以下では、サッカーの試合会場を模したゲーム空間を、複数のゲームキャラクタ(オブジェクト)が移動して、サッカーボール(移動物体)を用いてサッカーの試合を行うサッカーゲームが実行される場合について説明する。サッカーゲームが開始されると、例えば、ゲーム空間40が、主記憶16に構築される。
【0029】
図2は、ゲーム空間40の一例を示す図である。図2に示すゲーム空間40は、互いに直交する三つの座標軸(Xw軸、Yw軸、及びZw軸)が設定された仮想的な3次元空間になっている。図2に示すように、ゲーム空間40には、サッカーフィールドを表すオブジェクトであるフィールド42が配置される。
【0030】
フィールド42上には、サッカーのゴールを表すオブジェクトであるゴール50と、ユーザチームに所属するサッカー選手を表すオブジェクト(ゲームキャラクタ)である選手キャラクタ52と、対戦相手チームに所属するサッカー選手を表すオブジェクトである選手キャラクタ54と、サッカーボールを表すオブジェクトであるボール56と、が配置される。各オブジェクトの位置は、例えば、ワールド座標系(Xw−Yw−Zw座標系)の3次元座標で特定される。
【0031】
なお、図2では省略されているが、フィールド42上には、ユーザチームに所属する11体の選手キャラクタ52と、対戦相手チームに所属する11体の選手キャラクタ54と、が配置される。ユーザは、操作対象として設定される選手キャラクタ52を操作してゲームをプレイする。また、ゲーム空間40に配置される選手キャラクタ52(54)のうちでユーザの操作対象とならないものは、所定の行動アルゴリズムに従って自律的に行動する。
【0032】
また、ゲーム空間40には、仮想カメラ58(視点)が設定される。ゲーム空間40を仮想カメラ58から見た様子を表すゲーム画面が、表示部32に表示される。このゲーム画面は、ゲーム空間40に配置された各オブジェクトの頂点座標が、所定の座標変換演算を用いてワールド座標系からスクリーン座標系に座標変換されることによって生成される。このゲーム画面は、所定時間毎(例えば、1/60秒毎)に表示が更新される。以降では、これらの個々のゲーム画面を、それぞれフレームという。
【0033】
例えば、選手キャラクタ52(54)によってボール56が蹴りだされると、ボール56は、ゲーム空間40内を移動する。本実施形態においては、ゲーム空間40内を移動するボール56が、ゲーム空間40に配置されたオブジェクト(ゴール50や選手キャラクタ52(54))に接触するか否かが判定される。
【0034】
ボール56が、ゲーム空間40に配置されたオブジェクトに接触する場合、ボール56が、このオブジェクトに接触して跳ね返るようにボール56の移動制御が行われる。例えば、ボール56がゴール50の枠(いわゆるゴールポスト)や選手キャラクタ52(54)に接触した場合、ボール56が、これらのオブジェクトに当たって跳ね返るような移動制御が行われる。
【0035】
図3は、ボール56がオブジェクトに接触して移動する様子を示す図である。図3は、ボール56が、ゴール50の枠に接触する場合を示す。図3に示す位置P(x)は、あるフレーム(x番目のフレームとする。)におけるボール56の位置を示している。このフレームにおいては、ボール56は、ゴール50に接触していない。
【0036】
次のフレーム(即ち、(x+1)番目のフレーム。)が表示部32に表示される前に、ボール56が移動すべき仮位置Q(x+1)が算出される。ボール56がゴール50に向かって移動する場合、仮位置Q(x+1)は、ゴール50の領域の内部に位置する。この場合、ボール56がゴール50に接触する、と判定される。
【0037】
ボール56がゴール50に接触すると判定された場合、例えば、ボール56がゴール50の枠に当たって跳ね返るような移動制御が実行される。具体的には、例えば、ボール56と接触するゴール50表面の接触位置の法線方向nに基づいて、接触後のボール56が移動すべき位置P(x+1)が決定される。接触位置の法線方向nは、例えば、接触位置のポリゴンを構成する辺の外積を取ることによって求まる。
【0038】
例えば、図3に示すように、ゴール50の接触位置Rの法線方向nを基準として、ボール56の接触方向Vb(位置P(x)及び仮位置Q(x+1)を結ぶ方向。即ち、接触前のボール56の移動方向。)と線対称となる方向が、接触後のボール56の移動方向Vaとして決定される。即ち、ボール56の接触方向Vbと法線方向nとのなす角度θと、接触後のボール56の移動方向Vaと法線方向nとのなす角度θと、が等しくなる。
【0039】
まず、例えば、ゴール50の表面とボール56とが接触する接触位置Rが、位置P(x)と接触方向Vbに基づいて決定される。次いで、この接触位置Rから、移動方向Vaに所定距離dだけ離れた位置が、接触後のボール56の位置P(x+1)として決定される。即ち、(x+1)番目のフレームにおいて、ボール56が位置P(x+1)に表示されることになる。なお、距離dは、ボール56の移動速度に応じた距離であってよい。
【0040】
上記のように接触後のボール56の移動方向及び位置が決定されることによって、例えば、ゴール50の枠に当たってボール56が跳ね返る様子を再現することができる。
【0041】
しかしながら、ゴール50のような硬い物体については上記のような手法でよいが、例えば、実際のサッカーの試合においては、サッカー選手のユニフォームのような柔らかい物体にボールが接触した場合には、ゴールポスト等に接触した場合に比べて、ボールは跳ね返りづらくなる。他にも例えば、サッカー選手の筋肉の部分にボールが当たった場合は、ボールは跳ね返りづらくなる。
【0042】
つまり、サッカー選手の体のうち、柔らかい場所にボールが接触して跳ね返る様子は、硬い場所に接触して跳ね返る様子とは異なる。したがって、ゲーム空間40に配置される全てのオブジェクトに対して、図3のような方法をそのまま用いて移動物体の移動制御を実行した場合、ユーザにとって不自然な印象を与えてしまう。
【0043】
そこで、本実施形態においては、ゲーム装置10は、例えば、選手キャラクタ52(54)に基づいて定まる位置に、柔らかい物体に対応するオブジェクトと、硬い物体に対応するオブジェクトと、を設定してボール56の接触判定を実行することによって、この問題を解決する。即ち、柔らかい物体に対応するオブジェクトとボール56が接触した場合にはボール56のめり込みを許容し、硬い物体に対応するオブジェクトとボール56が接触した場合よりも、ボール56があまり跳ね返らないように移動制御が実行されることによって、ユーザに自然な印象を与えることができるようにしている。
【0044】
以降では、接触判定(当たり判定)に用いられる上記の2つのオブジェクトを、それぞれ第1の当たり判定用オブジェクト60a、第2の当たり判定用オブジェクト60bという。また、これらをまとめて、単に、当たり判定用オブジェクト60ともいう。
【0045】
図4は、当たり判定用オブジェクト60を示す図である。図4では、選手キャラクタ52(54)の脚の部分を例に挙げて示している。即ち、図4に示すように、例えば、選手キャラクタ52(54)の脚の部分に、第1の当たり判定用オブジェクト60a及び第2の当たり判定用オブジェクト60bが設定される。
【0046】
第1の当たり判定用オブジェクト60aは、硬い物体を示す。第1の当たり判定用オブジェクト60aは、例えば、選手キャラクタ52の脚等の骨に相当する。第2の当たり判定用オブジェクト60bは、柔らかい物体を示す。例えば、第2の当たり判定用オブジェクト60bは、選手キャラクタ52の脚等の筋肉に相当する。
【0047】
本実施形態においては、第1の当たり判定用オブジェクト60aとボール56とが接触した場合と、第2の当たり判定用オブジェクト60bとボール56とが接触した場合と、で接触後のボール56の移動の仕方が異なるようになっている。
【0048】
処理の詳細は後述するが、例えば、ボール56と第1の当たり判定用オブジェクト60aとが接触した場合、硬いオブジェクトにボール56が当って跳ね返るように移動制御がなされる。一方例えば、ボール56と第2の当たり判定用オブジェクト60bとが接触した場合、柔らかいオブジェクトにボール56がめり込むように移動制御がなされる。
【0049】
このようにすることによって、サッカー選手の体のうち、ユニフォームや、比較的柔らかい筋肉の部位にボール56がめり込み、硬い骨格にボール56が接触して跳ね返る様子を、再現することができる。以降、本処理の詳細について説明する。
【0050】
[1−3.ゲーム装置において実現される機能]
図5は、ゲーム装置10で実現される機能のうち、本発明に関連する機能を示す機能ブロック図である。図5に示すように、ゲーム装置10は、ゲームデータ記憶部70、法線マップ取得部72、当たり判定用オブジェクト設定部74、接触判定部76、及び移動制御部78を含む。
【0051】
[1−3−1.ゲームデータ記憶部]
ゲームデータ記憶部70は、例えば、主記憶16及び光ディスク36等を主として実現される。ゲームデータ記憶部70は、例えば、サッカーゲームを実現するために必要なデータを記憶する。例えば、サッカーゲームの現在の状況を示すゲーム状況データが、ゲームデータ記憶部70に記憶される。
【0052】
例えば、下記に示すようなデータが、ゲーム状況データに含まれる。
(1)選手キャラクタ52(54)の現在の状態(位置、姿勢、移動方向及び移動速度等)を示すデータ
(2)ボール56の現在の状態(位置、移動方向、移動速度、及び回転数等)を示すデータ
(3)現在設定されている当たり判定用オブジェクト60の位置を示すデータ
(4)仮想カメラ58の現在の状態(位置及び視線方向等)を示すデータ
【0053】
また例えば、本実施形態においては、ゲームデータ記憶部70は、当たり判定用オブジェクト60の法線マップを示す法線マップ情報を記憶する。法線マップとは、オブジェクトの各ポリゴン面に対応する法線方向を示すためのテクスチャである。
【0054】
図6は、法線マップを示す図である。ゲーム空間40に配置される各オブジェクトのポリゴン面に直交する法線方向は、一方向であるが、法線マップによれば、1つのポリゴン面に対して複数の法線方向を定義することができる。
【0055】
ここでは、図6に示すように、例えば、1つのポリゴン面を3×3の法線マップで定義する場合を説明する。即ち例えば、1つのポリゴン面に対して、9つの方向を示す法線が、法線マップによって定義される。
【0056】
ポリゴン面のうち、法線マップによって分けられる領域を、それぞれ領域Ea〜領域Ei(まとめて単に領域Eともいう。)とする。それぞれの領域Eに対応する法線の方向を、法線方向na〜法線方向niとする。法線方向na〜法線方向niのそれぞれは、例えば、方向が異なる。即ち、例えば、図6に示すポリゴン面の領域のうち、領域Eaに対応する法線方向naと、領域Ebに対応する法線方向nbと、は方向が異なることになる。
【0057】
例えば、法線マップ情報は、RGBのイメージデータ(RGB画像)によって表現される。即ち、法線マップ情報のRGB画像のうち、各ピクセルのR成分値、G成分値、B成分値が、それぞれ、領域Eの法線のXw軸方向、Yw軸方向、Zw軸方向のそれぞれの要素に対応する。
【0058】
RGB画像が示すRGB値に、所定の行列変換処理が施されることによって、法線の方向を示すベクトルが算出される。つまり、図6に示す例では、1つのポリゴン面に対応する領域Eが、9つの色によって表現されることになる。
【0059】
この法線マップは、当たり判定用オブジェクト60とボール56とが接触する場合において、接触後のボール56の移動方向を決定する際に用いられる。即ち、当たり判定用オブジェクト60のポリゴン面にボール56が接触した場合、同じポリゴン面であっても接触した位置(接触位置)が異なれば法線マップが示す法線の方向が異なるので、それぞれ異なる方向にボール56が移動することになる。
【0060】
このように、法線マップを用いることによって、例えば、図4のように、選手キャラクタ52(54)よりもポリゴン数の少ない当たり判定用オブジェクト60を用いても、接触後のボール56を種々の方向に移動させることができる。なお、法線マップの作成方法としては、高さマップ(バンプマップ)を用いた方法等、公知の種々の手法を適用可能である。
【0061】
[1−3−2.法線マップ取得部]
法線マップ取得部72は、制御部14を主として実現される。法線マップ取得部72は、第1の当たり判定用オブジェクト60a及び第2の当たり判定用オブジェクト60bに対応する法線マップを記憶してなる手段(例えば、ゲームデータ記憶部70)から、法線マップを取得する。
【0062】
なお、本実施形態においては、法線マップによって接触位置に対応する法線方向が取得される場合を説明するが、ボール56の接触位置と法線方向とが対応付けられたデータテーブルを用いる方法等、他の方法によって法線方向が取得される場合には、ゲーム装置10は、法線マップ取得部72を含んでいなくてもよい。
【0063】
[1−3−3.当たり判定用オブジェクト設定部]
当たり判定用オブジェクト設定部74は、制御部14を主として実現される。当たり判定用オブジェクト設定部74は、オブジェクト(例えば、選手キャラクタ52(54))に対応する第1の当たり判定用オブジェクト60aを、オブジェクトの位置に基づいて決定される位置に設定する。
【0064】
別の言い方をすれば、第1の当たり判定用オブジェクト60aは、例えば、選手キャラクタ52(54)の内部の任意の位置(例えば、内部に設定される軸線の位置)からの距離が所定範囲(例えば、所定距離以下)となる位置に設定される。この位置に、例えば、硬い物体を示す第1の当たり判定用オブジェクト60aが設定される。
【0065】
また、当たり判定用オブジェクト設定部74は、オブジェクト(例えば、選手キャラクタ52(54))に対応する第2の当たり判定用オブジェクト60bを、オブジェクトの位置に基づいて決定される位置であって、第1の当たり判定用オブジェクト60aの表面の少なくとも一部を覆うように設定する。
【0066】
第1の当たり判定用オブジェクト60aの表面とは、第1の当たり判定用オブジェクト60aを構成するポリゴン面のことである。第2の当たり判定用オブジェクト60bは、例えば、第1の当たり判定用オブジェクト60a内の任意の位置と、第2の当たり判定用オブジェクト60bの任意の位置と、を結ぶ線上に第1の当たり判定用オブジェクト60aの表面があるように配置される。
【0067】
別の言い方をすれば、第2の当たり判定用オブジェクト60bは、第1の当たり判定用オブジェクト60aの周囲に対応する位置に設定される。第1の当たり判定用オブジェクト60aの周囲に対応する位置とは、第1の当たり判定用オブジェクト60aの表面(外周面)を少なくとも含む領域内の位置のことである。即ち、第2の当たり判定用オブジェクト60bのポリゴン面の少なくとも一部が、第1の当たり判定用オブジェクト60aの外側にあるように第2の当たり判定用オブジェクト60bが設定される。
【0068】
本実施形態においては、例えば、第2の当たり判定用オブジェクト60bは、図4に示すように、第2の判定オブジェクトの表面が前記第1の判定オブジェクトを覆うように設定される場合を説明する。
【0069】
例えば、第1の当たり判定用オブジェクト60aは、円柱である。第2の当たり判定用オブジェクト60bは、第1の当たり判定用オブジェクトよりも半径(若しくは、断面積)の大きい円柱から、第1の当たり判定用オブジェクト60aを除いた筒状である。
【0070】
また、本実施形態においては、第1の当たり判定用オブジェクト60a及び第2の当たり判定用オブジェクト60bは、例えば、選手キャラクタ52(54)よりも少ないポリゴン数で構成されている。即ち例えば、図4に示すように、選手キャラクタ52(54)の脚に対応するポリゴンよりもポリゴン数が少ない形状の第1の当たり判定用オブジェクト60a及び第2の当たり判定用オブジェクト60bが設定される。
【0071】
なお、本実施形態においては、第1の当たり判定用オブジェクト60aが円柱形状であり、第2の当たり判定用オブジェクト60bが筒状である場合を説明するが、当たり判定用オブジェクト60の形状及び大きさは、本実施形態の例に限られない。他にも例えば、直方体等であってもよい。
【0072】
また、当たり判定用オブジェクト60は、例えば、選手キャラクタ52(54)と所定の位置関係を保つように、常にゲーム空間40に設定されるようにしてもよいし、選手キャラクタ52(54)とボール56との距離が所定範囲になった場合に設定されるようにしてもよい。即ち、当たり判定用オブジェクト60は、予め定められたタイミングで設定されるようにすればよい。
【0073】
[1−3−4.接触判定部]
接触判定部76は、制御部14を主として実現される。接触判定部76は、第1の当たり判定用オブジェクト60aの表面又は第2の当たり判定用オブジェクト60bの表面と移動物体(例えば、ボール56)とが接触するか否かを判定する。
【0074】
接触判定部76は、例えば、第1の当たり判定用オブジェクト60aの表面又は第2の当たり判定用オブジェクト60bの表面とボール56とが接触したか否かを、例えば、ボール56の現在の位置と移動方向に基づいて決定される仮位置と、第1の当たり判定用オブジェクト60a又は第2の当たり判定用オブジェクト60bと、の位置関係に基づいて判定する。
【0075】
なお、接触判定部76が、当たり判定用オブジェクト60の表面と、ボール56と、が接触するか否かを判定する方法は、公知の種々の接触判定(当たり判定)の手法を適用可能である。以降では、当たり判定用オブジェクト60の表面と、ボール56と、が接触することを、単に、「当たり判定用オブジェクト60と、ボール56と、が接触する」ともいう。
【0076】
[1−3−5.移動制御部]
移動制御部78は、制御部14を主として実現される。移動制御部78は、第1の当たり判定用オブジェクト60aの表面又は第2の当たり判定用オブジェクト60bの表面と移動物体(例えば、ボール56)とが接触する場合、移動物体の接触方向と、第1の当たり判定用オブジェクト60aの表面又は第2の当たり判定用オブジェクト60bの表面の接触位置に対応する法線方向と、に基づいて決定される接触後の移動方向に移動物体を移動させる。
【0077】
接触位置とは、先述のように、ボール56と接触した当たり判定用オブジェクト60のポリゴン面の位置のことである。即ち例えば、接触位置は、接触直前のボール56の位置と、この位置に基づいて算出されるボール56の仮位置と、を結んだ直線と交差する当たり判定用オブジェクト60の表面の位置のことである。
【0078】
また、本実施形態においては、「接触位置に対応する法線方向」とは、接触位置に関連付けられた法線の方向である。そして、「接触位置の法線方向」とは、接触位置のポリゴン面に直交する法線の方向である。即ち、本実施形態においては、「接触位置に対応する法線方向」と「接触位置の法線方向」とは異なる意である。接触位置に対応する法線方向は、法線マップによって接触位置に関連付けられたベクトルが示す方向であり、必ずしも、接触位置のポリゴン面に直交する方向とは限らない。
【0079】
本実施形態においては、例えば、移動制御部78は、第1の当たり判定用オブジェクト60aの表面又は第2の当たり判定用オブジェクト60bの表面と移動物体(例えば、ボール56)とが接触する場合、法線マップと、第1の当たり判定用オブジェクト60a又は第2の当たり判定用オブジェクト60bにおける移動物体との接触位置と、に基づいて接触位置に対応する法線方向を取得する手段を含む。即ち、法線マップによって関連付けられる法線方向に基づいて当たり判定用オブジェクト60と接触後のボール56の移動方向が決定される。
【0080】
図7は、ボール56と第1の当たり判定用オブジェクト60aとが接触した場合を示す図である。図7は、ボール56が第1の当たり判定用オブジェクト60aの接触位置Rに対応する法線方向n1に対して角度θ0で接触した場合を示す。即ち、接触前のボール56の移動方向(接触方向)Vbと、法線方向n1と、のなす角が、角度θ0である場合を示す。
【0081】
この場合、接触後のボール56の移動方向Va1は、第1の当たり判定用オブジェクト60bの法線マップによって関連付けられた法線方向n1に基づいて決定される。図7に示すように、ボール56と第1の当たり判定用オブジェクト60aとが接触する場合、接触後のボール56の移動方向Va1と法線方向n1とのなす角度θ1(例えば、0°〜90°)は、例えば、角度θ0と等しくなる。この場合、図3を参照して説明したように、例えば、ボール56がゴール50の枠と接触する場合と同様に、硬い物体に接触するような跳ね返り方をする。
【0082】
なお、第1の当たり判定用オブジェクト60aとの接触後のボール56の移動方向Va1の決定方法は、上記の例に限られない。予め定められた方法と、接触方向とVbと、法線方向n1と、に基づいて移動方向Va1が決定されればよい。
【0083】
また、移動制御部78は、第2の当たり判定用オブジェクト60bの表面と移動物体(例えば、ボール56)とが接触する場合、接触位置に対応する法線方向及び接触後の移動方向のなす角が、接触方向及び前記接触位置に対応する法線方向のなす角よりも大きくなり、かつ、接触方向と接触後の移動方向とのずれが、前記第1の当たり判定用オブジェクトの表面と前記移動物体とが接触する場合よりも小さくなるように、移動物体を移動させる手段を含む。
【0084】
別の言い方をすれば、移動制御部78は、例えば、第2の当たり判定用オブジェクト60bとボール56とが接触する場合、第1の当たり判定用オブジェクト60aとボール56とが接触する場合よりも、接触位置に対応する法線方向成分の変化の程度を小さくするように接触後の移動方向を決定する。
【0085】
図8は、ボール56と第2の当たり判定用オブジェクト60bとが接触する場合を示す図である。図8は、ボール56が接触位置に対して図7と同じ接触方向で接触する場合を示す。即ち、ボール56が第2の当たり判定用オブジェクト60bの接触位置に対応する法線方向n2に対して角度θ0で接触した場合を示す。
【0086】
接触後のボール56の移動方向Va2は、第2の当たり判定用オブジェクト60bの法線マップによって関連付けられた法線方向n2に基づいて決定される。例えば、法線方向n2と法線方向n1とが同じ方向である場合、接触後のボール56の移動方向Va2と法線方向n1とのなす角度θ2(>角度θ0、例えば、θ2は90°〜180°)は、角度θ1よりも大きい角度となる。
【0087】
つまり、移動方向Va2の方が、移動方向Va1よりも、法線方向n1,n2成分の変化が小さくなる。別の言い方をすれば、例えば、接触方向Vbと移動方向Va2との余弦は、接触方向Vbと移動方向Va1との余弦よりも大きくなる。
【0088】
このように、移動制御部78は、ボール56の第2の当たり判定用オブジェクト60aに対する接触方向と接触後の移動方向とのずれ(例えば、180°−θ2−θ0)が、ボール56の第1の当たり判定用オブジェクト60aに対する接触方向と接触後の移動方向とのずれ(例えば、180°−θ1−θ0)よりも小さくなるような移動方向Va2に対して、接触後のボール56を移動させる。
【0089】
本実施形態においては、図4に示すように、第2の当たり判定用オブジェクト60bの内部に第1の当たり判定用オブジェクト60aが設定されるので、ボール56と第2の当たり判定用オブジェクト60bとが接触した後、ボール56と第1の当たり判定用オブジェクト60aとが接触することになる。
【0090】
本実施形態のようにボール56の移動制御が行われることによって、柔らかい物体にめり込んだ後、硬い物体に跳ね返る様子を表現することができる。ここで、選手キャラクタ52(54)の脚(図4)にボール56が接触して跳ね返る様子について詳細に説明する。
【0091】
図9は、当たり判定用オブジェクト60に接触して移動するボール56の軌道を示す図である。図9は、ボール56が、選手キャラクタ52の脚に跳ね返る場合を示す。即ち、ボール56が選手キャラクタ52の脚に対応する当たり判定用オブジェクト60に接触する場合を示している。
【0092】
図9においては、ボール56が第1の当たり判定用オブジェクト60aには接触せず、第2の当たり判定用オブジェクト60bにのみ接触する場合(図9に示す軌道C1)と、ボール56が第1の当たり判定用オブジェクト60a,60bの両者に接触する場合(図9に示す軌道C2)と、の2通りを示している。
【0093】
まず、軌道C1について説明する。即ち、ボール56が比較的柔らかい第2の当たり判定用オブジェクト60bにのみ接触する場合について説明する。
【0094】
ここで、あるフレーム(k番目のフレームとする。)におけるボール56の位置を、位置P(k)とする。表示部32に次のフレーム(k+1番目のフレームとする。)が表示されるまでの間に、(k+1)番目のフレームにおいてボール56が移動すべき仮位置Q(k+1)が算出される。例えば、位置P(k)から、ボール56の移動方向V1kに対して移動速度S1kに応じた距離D1kだけ離れるように、仮位置Q(k+1)が算出される。
【0095】
仮位置Q(k+1)は、第2の当たり判定用オブジェクト60bの内部にあるので、k番目のフレームと(k+1)番目のフレームの間に、ボール56と選手キャラクタ52(54)とが接触する、と判定される。この場合、ボール56が選手キャラクタ52(54)の脚の筋肉と接触し、ボール56が筋肉にめり込むような移動制御が実行される。
【0096】
図8を参照して説明したように、まず、ボール56と接触した第2の当たり判定用オブジェクト60bの接触位置の法線マップが参照され、接触位置に対応する法線方向n2kが取得される。次いで、接触方向Vbkと法線方向n2kとのなす角度θ0kに基づいて、接触後の移動方向Va2kが決定される。ボール56と第2の当たり判定用オブジェクト60bの接触位置Rkから、この移動方向Va2kに対して所定距離D2kだけ離れた位置が、(k+1)番目のフレームにおけるボール56の位置P(k+1)として決定される。
【0097】
図9に戻り、(k+1)番目以降のフレームにおいては、ボール56は第1の当たり判定用オブジェクト60aと接触しないので、例えば、位置P(k+1)における移動方向Va2kを保ったまま、位置P(k+2),P(k+3)のようにボール56が移動することになる。
【0098】
次に軌道C2について説明する。即ち、ボール56が柔らかいオブジェクトに接触してめり込みながら、この柔らかいオブジェクトの中にある硬いオブジェクトに接触して跳ね返る場合について説明する。
【0099】
ここで、あるフレーム(i番目とする。)におけるボール56の位置を位置P(i)とする。表示部32に次のフレーム(i+1番目のフレームとする。)が表示されるまでの間に、(i+1)番目のフレームにおいてボール56が移動すべき仮位置Q(i+1)が算出される。例えば、位置P(i)から、ボール56の移動方向V1i(接触方向Vbi)に対して移動速度S1iに応じた距離D1iだけ離れるように、仮位置Q(i+1)が算出される。
【0100】
図9に示すように、仮位置Q(i+1)は、第2の当たり判定用オブジェクト60bの内部にあるので、i番目のフレームと(i+1)番目のフレームの間に、ボール56と選手キャラクタ52(54)とが接触する、と判定される。この場合、法線マップが参照され、第2の当たり判定用オブジェクト60bの接触位置R2iに対応する法線方向n2iに基づいて、(i+1)番目のフレームにおけるボール56の位置P(i+1)が決定される。
【0101】
具体的には、まず、ボール56と接触した第2の当たり判定用オブジェクト60bの接触位置の法線マップが参照され、接触位置に対応する法線方向n2iが取得される。次いで、接触方向Vbiと法線方向n2iとのなす角度θ0iに基づいて、接触後の移動方向Va2iが決定される。ボール56と第2の当たり判定用オブジェクト60bの接触位置R2iから、この移動方向Va2iに対して所定距離D2iだけ離れた位置が、(i+1)番目のフレームにおけるボール56の位置P(i+1)として決定される。
【0102】
次いで、移動方向Va2を保ったままボール56が移動するように、(i+2)番目のフレームにおいてボール56が移動すべき仮位置Q(i+2)が算出される。図9に示すように、仮位置Q(i+2)は、第1の当たり判定用オブジェクト60aの内部にあるので、ボール56と第1の当たり判定用オブジェクト60aとが接触した、と判定される。この場合、第1の当たり判定用オブジェクト60aの接触位置の法線方向n1iに基づいて接触後の移動方向Va3iが決定される。例えば、接触前の移動方向Va2iと法線方向n1iのなす角度と、接触後の移動方向Va3iと法線方向n1iのなす角度と、が等しくなるように、接触後の移動方向Va3iが決定される。
【0103】
ボール56と第1の当たり判定用オブジェクト60aの接触位置Rから、この移動方向Va1に対して所定距離D3だけ離れた位置が、(i+2)番目のフレームにおけるボール56の位置P(i+2)として決定される。図8に示すように、(i+3)番目以降のフレームは、他の当たり判定用オブジェクト60とボール56は接触しないので、例えば、ボール56は移動方向Va2を保ったまま、位置P(i+3),P(i+4)のように移動する。
【0104】
このように、軌道C2の場合、軌道C1とは異なり、ボール56の移動方向が2段階で変化することになる。このようにすることによって、柔らかい物体(筋肉やユニフォーム)の内部にある硬い物体(骨)に接触して跳ね返るような移動制御をゲーム空間において実現することができる。
【0105】
[1−4.ゲーム装置において実行される処理]
次に、ゲーム装置10で実行される処理について説明する。図10は、ゲーム装置10が所定時間(例えば、1/60秒)ごとに実行する処理を示すフロー図である。制御部14が、光ディスク36に記憶されたプログラムに従って、図10に示す処理を実行する。
【0106】
まず、図10に示すように、制御部14は、現在のフレームの次のフレームにおけるボール56の仮位置を算出する(S101)。例えば、S101においては、ゲームデータ記憶部70に記憶されたゲーム状況データが参照される。例えば、ゲーム状況データに格納されたボール56の位置、移動方向、及び移動速度に基づいて、次のフレームにおけるボール56の仮位置が算出される。
【0107】
制御部14(接触判定部76)は、S101で算出した仮位置に基づいてボール56が第1の当たり判定用オブジェクト60a又は第2の当たり判定用オブジェクト60bに接触するか否かを判定する(S102)。S102においては、例えば、ボール56の仮位置が、ゲーム空間40に設定される当たり判定用オブジェクト60の内部にあるか否かが判定される。
【0108】
ボール56が第1の当たり判定用オブジェクト60aに接触する場合(S102;第1)、制御部14は、第1の当たり判定用オブジェクト60aの接触位置に対応する法線方向と、ボール56の接触方向と、に基づいて第1の当たり判定用オブジェクト60aと接触後のボール56の移動方向を決定する(S103)。この場合、接触後の移動方向Va1が図7のようにして決定される。
【0109】
制御部14(移動制御部78)は、S103において決定された移動方向にボール56を移動させる(S104)。S104においては、ゲーム状況データに格納されたボール56の位置が更新される。即ち、次のフレームの表示処理が実行され、表示部32には、例えば、選手キャラクタ52(54)に接触したボール56が跳ね返るようなゲーム画面が表示される。
【0110】
ボール56が第2の当たり判定用オブジェクト60bに接触する場合(S102;第2)、制御部14は、接触フラグが既にオンになっているか否かを判定する(S105)。接触フラグとは、ボール56と第2の当たり判定用オブジェクト60bとが接触しているか否かを示すフラグである。接触フラグは、例えば、主記憶16(ゲームデータ記憶部70)に記憶される。
【0111】
接触フラグがオンになっていない場合(S105;N)、制御部14は、接触フラグをオンにし、第2の当たり判定用オブジェクト60bの接触位置に対応する法線方向と、ボール56の接触方向と、に基づいて第2の当たり判定用オブジェクト60bと接触後のボール56の移動方向を決定する(S106)。この場合、接触後の移動方向Va2が、図8のようにして決定される。制御部14(移動制御部78)は、S106において決定された移動方向にボール56を移動させる(S107)。
【0112】
一方、接触フラグが既にオンになっている場合(S105;Y)、制御部14は、移動方向を保ったまま、S101で算出された仮位置にボール56を移動させる(S108)。
【0113】
一方、ボール56が当たり判定用オブジェクト60に接触しない場合(S102;N)、制御部14は、接触フラグをオフにし、S101で算出された仮位置にボール56を移動させる(S109)。即ち、この場合には、ボール56が選手キャラクタ52(54)と接触しないので、ボール56がオブジェクトに接触して跳ね返るような移動制御は行われない。
【0114】
S107〜S109においても、S104と同様に、ゲーム状況データに格納されたボール56の位置が、S101で算出された仮位置に更新される。つまり、次のフレームの表示処理が実行される。
【0115】
以上説明したゲーム装置10によれば、選手キャラクタ52(54)に対応する当たり判定用オブジェクト60を用いて、ボール56と選手キャラクタ52(54)とが接触する様子を表現することができる。即ち、柔らかい物体にめり込みながら硬い物体に跳ね返る様子を表現することができるので、自然な印象をユーザに与えることができる。
【0116】
さらに、本実施形態のように、ポリゴン数が比較的少ない当たり判定用オブジェクト60を用いることによって、選手キャラクタ52(54)のポリゴンをそのまま接触判定に用いる場合に比べて、ゲーム装置10の処理負荷を軽減しつつ、ボール56とオブジェクトとが接触する様子を表現することができる。
【0117】
また例えば、本実施形態のように、ゲーム装置10が、法線マップを用いて接触後のボール56の移動方向を決定することによって、比較的簡易な形状の当たり判定用オブジェクト60を使用しても、種々の跳ね返り方を実現することができる。
【0118】
[2.変形例]
なお、本発明は、上記の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で適宜変更可能である。
【0119】
[2−1.変形例1]
実施形態においては、ボール56と第2の当たり判定用オブジェクト60bとが接触した場合の接触後の移動方向Va2が、ボール56と第1の当たり判定用オブジェクト60aとが接触した場合の接触後の移動方向Va1よりも、法線方向n1,n2成分の変化が弱くなるように決定される場合を説明したが、接触後のボール56の移動制御方法は、これに限られない。他にも例えば、以下のように接触後のボール56の移動が制御されることによって、ボール56が、第2の当たり判定用オブジェクト60bにめり込む様子を表現してもよい。
【0120】
[2−1−1.変形例1−1]
例えば、法線マップによって定まる法線方向を、接触方向に基づいて動的にずらすことによって、接触後のボール56の移動方向が決定されるようにしてもよい。例えば、第2の当たり判定用オブジェクト60bとボール56とが接触する場合、法線マップが示す法線方向n2を所定角度だけ接触方向側にずらすようにしてもよい。
【0121】
変形例1−1の場合、移動制御部78は、第2の当たり判定用オブジェクト60bと移動物体(例えば、ボール56)とが接触する場合、法線マップによって定義される法線方向を接触方向に対して所定角度回転させた方向に基づいて接触後の移動方向を決定する。
【0122】
図11は、変形例1−1における接触位置の拡大図である。図11に示すように、例えば、接触位置の法線マップが示す法線方向n2を、接触方向Vbの向きに角度αだけ回転させた方向n3に基づいて、接触後の移動方向Va2が決定されるようにしてもよい。変形例1−1においては、例えば、この方向n3に基づいて接触後のボール56の移動方向Va2が決定される。
【0123】
具体的には、ボール56が方向n3に対して角度θ3で接触した場合、方向n3と接触後の移動方向Va2のなす角度が、角度θ3となるように移動方向Va2が決定される。別の言い方をすれば、ボール56の移動方向Vbと方向n3とのなす角は角度(θ0+α)なので、方向n3から角度(θ0+α)だけ右回りに(接触方向回りに)回転した方向が、接触後の移動方向Va2として決定されることになる。
【0124】
[2−1−2.変形例1−2]
また例えば、接触後の移動方向Va2を決定する場合に、接触方向Vbを所定角度だけずらした方向に基づいて接触後の移動方向Va2を計算するようにしてもよい。
【0125】
変形例1−2の場合、移動制御部78は、第2の当たり判定用オブジェクト60bと移動物体(例えば、ボール56)とが接触する場合、接触方向Vbを、接触位置に対応する法線方向に対して所定角度回転させた方向Vcに基づいて接触後の移動方向を決定する。
【0126】
図12は、変形例1−2における接触位置の拡大図である。図12に示すように、接触方向Vbを所定角度βだけ法線方向n2に対して回転させた方向Vcに基づいて、接触後の移動方向Va2が計算される。例えば、方向Vcと法線方向n2とのなす角度を角度θ4とすると、法線方向n2と接触後の移動方向Va2のなす角度が角度θ4(>角度θ0)となるように接触後の移動方向Va2が計算されることになる。
【0127】
[2−1−3.変形例1−3]
また例えば、ボール56と第2の当たり判定用オブジェクト60bとが接触した場合、いったん第1の当たり判定用オブジェクト60aの場合と同様の方法で接触後の仮位置を算出し、この仮位置を所定方向にずらした位置に接触後のボール56を移動させるようにしてもよい。
【0128】
変形例1−3の場合、移動制御部78は、第2の当たり判定用オブジェクト60bと移動物体(例えば、ボール56)とが接触する場合、接触方向Vbと接触位置に対応する法線方向とに基づいて決定される仮位置から、当該法線方向の逆方向に対応する向きに対して所定距離だけ離れた位置に接触後の移動物体を移動させる。法線方向の逆方向とは、接触位置に対応する法線方向の逆ベクトルのことである。逆方向に対応する向きとは、この逆ベクトルとの余弦が所定範囲(例えば、0.7以上)となる向きのことである。
【0129】
図13は、変形例1−3における接触位置の拡大図である。図13に示すように、法線方向n2から角度θ0だけ回転した方向Va2’に対して、接触位置から所定距離だけ離れた位置を仮位置Qとする。方向Va2’は、例えば、図7の移動方向Va1と同じ方向である。即ち、この仮位置Qの決定方法は、ボール56と第1の当たり判定用オブジェクト60aとが接触した場合と同様である。
【0130】
変形例1−3の方法においては、この仮位置Qを、例えば、法線方向n2の逆方向に対応する向きVqpに対して所定距離だけ離れた位置Pを、接触後のボール56の位置とすることになる。
【0131】
[2−2.変形例2]
また例えば、ボール56と当たり判定用オブジェクト60とが接触した場合、ボール56の回転数や移動速度が変更されるようにしてもよい。ここで、ボール56の回転数及び移動速度は、例えば、相関関係があるようにしてよい。例えば、ボール56の回転数が増加すると移動速度が減少する。一方、例えば、ボール56の移動速度が増加すると回転数が減少する。
【0132】
変形例2の移動制御部78は、移動物体(例えば、ボール56)の移動速度又は回転数の少なくとも一方を示す移動状態データを記憶する手段(例えば、ゲームデータ記憶部70)から移動状態データを取得する手段を含む。移動状態データは、ゲーム状況データに含まれるデータのうち、ボール56の移動速度又は回転数の少なくとも一方を示すデータである。
【0133】
また、移動制御部78は、第1の当たり判定用オブジェクト60aの表面又は第2の当たり判定用オブジェクト60bの表面と移動物体(例えば、ボール56)とが接触する場合、移動物体の接触方向及び接触後の移動物体の移動方向のずれに基づいて移動状態データが示す移動物体の移動速度又は回転数の少なくとも一方を変更する手段を含む。この変更具合は、例えば、接触方向Vbと接触後の移動方向Vaとのずれ具合(なす角度。即ち、余弦の大きさ。)に基づいて決定される。
【0134】
例えば、接触方向Vbと接触後の移動方向Vaとのずれが少ないほど、接触後のボール56の移動速度が遅くなる。また例えば、接触方向Vbと接触後の移動方向Vaとのずれが少ないほど、接触後のボール56の回転数が増加する。このようにすることによって、ボール56が、サッカー選手の表面に摺って回転し、速度が落ちる様子を表現することができる。
【0135】
[2−3.変形例3]
また、実施形態においては、第1の当たり判定用オブジェクト60aと第2の当たり判定用オブジェクト60bとの位置関係を図4のような場合を例に挙げて説明したが、これらの位置関係は図4の例に限られない。
【0136】
ボール56と第2の当たり判定用オブジェクト60bとが接触した後に、ボール56と第1の当たり判定用オブジェクト60aとが接触するように、第1の当たり判定用オブジェクト60aと第2の当たり判定用オブジェクト60bとが設定されるようにすればよい。
【0137】
別の言い方をすれば、ボール56が選手キャラクタ52(54)に向かって移動してきたと仮定した場合、ボール56が第1の当たり判定用オブジェクト60aの表面に接触する前に第2の当たり判定用オブジェクト60bに接触するように、第1の当たり判定用オブジェクト60a及び第2の当たり判定用オブジェクト60bが配置されるようにすればよい。即ち、上記のようにして、ボール56が柔らかい物体にめり込んだ後に、硬い物体に当って跳ね返る様子を表現することができればよい。
【0138】
[2−3−1.変形例3−1]
例えば、第2の当たり判定用オブジェクト60bの表面(外周面)が、第1の当たり判定用オブジェクト60aの全体を覆わないように設定されるようにしてもよい。即ち、図4のように第2の当たり判定用オブジェクト60bの表面によって覆われる領域内に、第1の当たり判定用オブジェクト60aの一部又は全部が含まれるようにしなくてもよい。
【0139】
図14は、変形例3−1における当たり判定用オブジェクト60の位置関係を示す図である。図14に示すように、変形例3−1においては、第2の当たり判定用オブジェクト60bが、第1の当たり判定用オブジェクト60aの表面に隣接する位置に設定される場合について説明する。なお、第1の当たり判定用オブジェクト60aは、実施形態と同様の位置に設定される。
【0140】
変形例1のように当たり判定用オブジェクト60が設定された場合、例えば、第1の当たり判定用オブジェクト60aは、選手キャラクタ52(54)の頭部に相当する。第2の当たり判定用オブジェクト60bは、例えば、選手キャラクタ52(54)の髪の毛に相当する。
【0141】
即ち、変形例1においては、選手キャラクタ52(54)のうち、比較的硬い部位である頭部を、第1の当たり判定用オブジェクト60aとして表現することができる。一方、選手キャラクタ52(54)のうち、比較的柔らかい部位である髪の毛を、第2の当たり判定用オブジェクト60bとして表現することができる。
【0142】
なお、接触判定部76が接触判定を行う方法、及び、移動制御部78がボール56の移動制御を行う方法は、実施形態と同様である。また、本変形例においても、当たり判定用オブジェクト60には、法線マップが設定される。
【0143】
図15は、変形例3−1における当たり判定用オブジェクト60と接触するボール56の移動制御の一例を示す図である。図15に示す例では、ボール56が、当たり判定用オブジェクト60と接する様子を、3つの軌道を例に挙げて説明する。
【0144】
まず、ボール56が、第2の当たり判定用オブジェクト60bとは接触せずに、第1の当たり判定用オブジェクト60aのみと接触する場合(軌道C3という。)について説明する。この場合、ボール56が、図7に示す方法と同様の制御が行われ、硬いオブジェクトに跳ね返るように移動制御がなされる。即ち例えば、選手キャラクタ52(54)が、額でボール56をヘディングするような移動制御が行われる。
【0145】
次に、ボール56が、第1の当たり判定用オブジェクト60aとは接触せずに、第2の当たり判定用オブジェクト60bのみと接触する場合(軌道C4という。)、実施形態で説明した軌道C1と同様に、ボール56が、柔らかいオブジェクトにめり込むように移動制御がなされる。この場合、例えば、選手キャラクタ52(54)が、ヘディングを失敗して、ボール56が髪の毛にこすれたような軌道となる。
【0146】
最後に、ボール56が、第1の当たり判定用オブジェクト60aと第2の当たり判定用オブジェクト60bの両者と接触する場合(軌道C5という。)場合、実施形態の軌道C2と同様の移動制御が実行される。つまり、ボール56が、柔らかい第2の当たり判定用オブジェクト60bにめり込んだ後、硬い第1の当たり判定用オブジェクト60aに当って跳ね返る様子を表現することができる。軌道C5の場合、この場合、例えば、髪の毛の長いサッカー選手が、ボール56をヘディングする様子を表現することができる。
【0147】
変形例3−1のゲーム装置10によれば、硬い物体と柔らかい物体とが隣接しているようなオブジェクトに移動物体が接触して跳ね返る様子を表現することができる。
【0148】
[2−3−2.変形例3−2]
また例えば、第1の当たり判定用オブジェクト60aと第2の当たり判定用オブジェクト60bとの間に隙間があってもよい。つまり、実施形態においては、第1の当たり判定用オブジェクト60aが第2の当たり判定用オブジェクト60bに含まれており、変形例3−1においては、第1の当たり判定用オブジェクト60aと第2の当たり判定用オブジェクト60bとが互いに隣接する位置関係の場合を説明したが、第1の当たり判定用オブジェクト60aと第2の当たり判定用オブジェクト60bとは、互いに離れていてもよい。
【0149】
図16は、変形例3−2における第1の当たり判定用オブジェクト60aと第2の当たり判定用オブジェクト60bとの位置関係の一例を示す図である。図16のように、第1の当たり判定用オブジェクト60aが第2の当たり判定用オブジェクト60bに含まれておらず、第1の当たり判定用オブジェクト60aと第2の当たり判定用オブジェクト60bとの間が離れていてもよい。この場合も、第2の当たり判定用オブジェクト60bの表面によって第1の当たり判定用オブジェクト60aが含まれる。図16においては、実施形態と同様に(図9)、ボール56の移動制御がなされる。
【0150】
図17は、変形例3−2における第1の当たり判定用オブジェクト60aと第2の当たり判定用オブジェクト60bとの位置関係の一例を示す図である。図17のように、第1の当たり判定用オブジェクト60aと第2の当たり判定用オブジェクト60bとが互いに隣接する位置ではなく、第1の当たり判定用オブジェクト60aと第2の当たり判定用オブジェクト60bとの間が離れていてもよい。
【0151】
この場合も、第2の当たり判定用オブジェクト60bの表面は、第1の当たり判定用オブジェクト60aを含まないように設定されていることになる。図16においては、変形例3と同様に(図15)、ボール56の移動制御がなされる。
【0152】
[2−4.その他変形例]
なお、上記実施形態及び変形例の少なくとも2つ以上を組み合わせてもよい。
【0153】
また例えば、本発明は、サッカーゲーム以外のスポーツゲームを実行するゲーム装置にも適用することができる。つまり、本発明は、ゲーム空間を移動物体(パック等)が移動するゲームに適用できる。例えば、バスケットボールゲーム、アイスホッケーゲーム、又は、アメリカンフットボールゲームなどを実行するゲーム装置にも、本発明は、適用することができる。
【符号の説明】
【0154】
10 ゲーム装置、11 家庭用ゲーム機、12 バス、14 制御部、16 主記憶、18 画像処理部、20 入出力処理部、22 音声処理部、24 光ディスク再生部、26 ハードディスク、28 通信インタフェース、30 コントローラ、32 表示部、34 音声出力部、36 光ディスク、40 ゲーム空間、42 フィールド、50 ゴール、52,54 選手キャラクタ、56 ボール、58 仮想カメラ、60,60a,60b 当たり判定用オブジェクト、70 ゲームデータ記憶部、72 法線マップ取得部、74 当たり判定用オブジェクト設定部、76 接触判定部、78 移動制御部、n,n1,n2 法線方向、P 位置、Q 仮位置、R 接触位置、V1,Va 移動方向、Vb 接触方向、n3,Vc 方向、d 所定距離、C1,C2,C3,C4,C5 軌道、E 領域。
【技術分野】
【0001】
本発明は、ゲーム装置、ゲーム装置の制御方法、及びプログラムに関する。
【背景技術】
【0002】
従来、ゲーム空間内に配置されたオブジェクト及び移動物体を用いたゲームが知られている。このようなゲームにおいては、ゲーム空間を移動する移動物体とオブジェクトとが接触したか否かを判定する接触判定(当たり判定)が行われる(特許文献1)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2007−7064号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
移動物体とオブジェクトとが接触した場合、例えば、移動物体がオブジェクトに接触した方向と、オブジェクトの接触位置の法線方向と、のなす角度と等しい角度で移動物体が跳ね返るように移動制御が行われることが考えられる。しかしながら、この場合、オブジェクトが柔らかい素材を示すものであっても硬い素材を示すものであっても、互いに同じような跳ね返り方をするので、ユーザに不自然な印象を与えてしまう。
【0005】
本発明は上記課題に鑑みてなされたものであって、その目的は、ユーザに不自然な印象を与えずに、オブジェクトと接触する移動物体の移動制御を行うことが可能なゲーム装置、ゲーム装置の制御方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【0006】
上記課題を解決するために、本発明に係るゲーム装置は、ゲーム空間内に配置されたオブジェクト及び移動物体を用いたゲームを実行するゲーム装置であって、前記オブジェクトに対応する第1の当たり判定用オブジェクトを、前記オブジェクトの位置に基づいて決定される位置に設定し、前記オブジェクトに対応する第2の当たり判定用オブジェクトを、前記オブジェクトの位置に基づいて決定される位置であって、前記第1の当たり判定用オブジェクトの表面の少なくとも一部を覆うように設定する当たり判定用オブジェクト設定手段と、前記第1の当たり判定用オブジェクトの表面又は前記第2の当たり判定用オブジェクトの表面と前記移動物体とが接触するか否かを判定する接触判定手段と、前記第1の当たり判定用オブジェクトの表面又は前記第2の当たり判定用オブジェクトの表面と前記移動物体とが接触する場合、前記移動物体の接触方向と、前記第1の当たり判定用オブジェクトの表面又は前記第2の当たり判定用オブジェクトの表面の接触位置に対応する法線方向と、に基づいて決定される接触後の移動方向に前記移動物体を移動させる移動制御手段と、を含み、前記移動制御手段は、前記第2の当たり判定用オブジェクトの表面と前記移動物体とが接触する場合、前記接触位置に対応する法線方向及び前記接触後の移動方向のなす角が、前記接触方向及び前記接触位置に対応する法線方向のなす角よりも大きくなり、かつ、前記接触方向と前記接触後の移動方向とのずれが、前記第1の当たり判定用オブジェクトの表面と前記移動物体とが接触する場合よりも小さくなるように、前記移動物体を移動させる手段を含むことを特徴とする。
【0007】
また、本発明に係るゲーム装置の制御方法は、ゲーム空間内に配置されたオブジェクト及び移動物体を用いたゲームを実行するゲーム装置の制御方法であって、前記オブジェクトに対応する第1の当たり判定用オブジェクトを、前記オブジェクトの位置に基づいて決定される位置に設定し、前記オブジェクトに対応する第2の当たり判定用オブジェクトを、前記オブジェクトの位置に基づいて決定される位置であって、前記第1の当たり判定用オブジェクトの表面の少なくとも一部を覆うように設定する当たり判定用オブジェクト設定ステップと、前記第1の当たり判定用オブジェクトの表面又は前記第2の当たり判定用オブジェクトの表面と前記移動物体とが接触するか否かを判定する接触判定ステップと、前記第1の当たり判定用オブジェクトの表面又は前記第2の当たり判定用オブジェクトの表面と前記移動物体とが接触する場合、前記移動物体の接触方向と、前記第1の当たり判定用オブジェクトの表面又は前記第2の当たり判定用オブジェクトの表面の接触位置に対応する法線方向と、に基づいて決定される接触後の移動方向に前記移動物体を移動させる移動制御ステップと、を含み、前記移動制御ステップは、前記第2の当たり判定用オブジェクトの表面と前記移動物体とが接触する場合、前記接触位置に対応する法線方向及び前記接触後の移動方向のなす角が、前記接触方向及び前記接触位置に対応する法線方向のなす角よりも大きくなり、かつ、前記接触方向と前記接触後の移動方向とのずれが、前記第1の当たり判定用オブジェクトの表面と前記移動物体とが接触する場合よりも小さくなるように、前記移動物体を移動させるステップを含むことを特徴とする。
【0008】
また、本発明に係るプログラムは、ゲーム空間内に配置されたオブジェクト及び移動物体を用いたゲームを実行するゲーム装置としてコンピュータを機能させるためのプログラムであって、前記オブジェクトに対応する第1の当たり判定用オブジェクトを、前記オブジェクトの位置に基づいて決定される位置に設定し、前記オブジェクトに対応する第2の当たり判定用オブジェクトを、前記オブジェクトの位置に基づいて決定される位置であって、前記第1の当たり判定用オブジェクトの表面の少なくとも一部を覆うように設定する当たり判定用オブジェクト設定手段、前記第1の当たり判定用オブジェクトの表面又は前記第2の当たり判定用オブジェクトの表面と前記移動物体とが接触するか否かを判定する接触判定手段、前記第1の当たり判定用オブジェクトの表面又は前記第2の当たり判定用オブジェクトの表面と前記移動物体とが接触する場合、前記移動物体の接触方向と、前記第1の当たり判定用オブジェクトの表面又は前記第2の当たり判定用オブジェクトの表面の接触位置に対応する法線方向と、に基づいて決定される接触後の移動方向に前記移動物体を移動させる移動制御手段、を含み、前記移動制御手段は、前記第2の当たり判定用オブジェクトの表面と前記移動物体とが接触する場合、前記接触位置に対応する法線方向及び前記接触後の移動方向のなす角が、前記接触方向及び前記接触位置に対応する法線方向のなす角よりも大きくなり、かつ、前記接触方向と前記接触後の移動方向とのずれが、前記第1の当たり判定用オブジェクトの表面と前記移動物体とが接触する場合よりも小さくなるように、前記移動物体を移動させる手段を含むことを特徴とするゲーム装置として前記コンピュータを機能させる。
【0009】
また、本発明に係る情報記憶媒体は、上記のプログラムを記録したコンピュータ読み取り可能な情報記憶媒体である。
【0010】
本発明によれば、ユーザに不自然な印象を与えずに、オブジェクトと接触する移動物体の移動制御を行うことが可能になる。
【0011】
また、本発明の一態様では、前記ゲーム装置は、前記第1の当たり判定用オブジェクト及び前記第2の当たり判定用オブジェクトに対応する法線マップを記憶してなる手段から、前記法線マップを取得する法線マップ取得手段を含み、前記移動制御手段は、前記第1の当たり判定用オブジェクトの表面又は前記第2の当たり判定用オブジェクトの表面と前記移動物体とが接触する場合、前記法線マップと、前記第1の当たり判定用オブジェクト又は前記第2の当たり判定用オブジェクトにおける前記移動物体との接触位置と、に基づいて前記接触位置に対応する法線方向を取得する手段を含むことを特徴とする。
【0012】
また、本発明の一態様では、前記移動制御手段は、前記移動物体の移動速度又は回転数の少なくとも一方を示す移動状態データを記憶する手段から前記移動状態データを取得する手段と、前記第1の当たり判定用オブジェクトの表面又は前記第2の当たり判定用オブジェクトの表面と前記移動物体とが接触する場合、前記移動物体の接触方向及び接触後の前記移動物体の移動方向のずれに基づいて前記移動状態データが示す移動物体の移動速度又は回転数の少なくとも一方を変更する手段と、を含むことを特徴とする。
【図面の簡単な説明】
【0013】
【図1】本発明の実施形態に係るゲーム装置のハードウェア構成を示す。
【図2】ゲーム空間の一例を示す図である。
【図3】ボールがオブジェクトに接触して移動する様子を示す図である。
【図4】判定オブジェクトを示す図である。
【図5】ゲーム装置で実現される機能のうち、本発明に関連する機能を示す機能ブロック図である。
【図6】法線マップを示す図である。
【図7】ボールと第1の当たり判定用オブジェクトとが接触した場合を示す図である。
【図8】ボールと第2の当たり判定用オブジェクトとが接触する場合を示す図である。
【図9】判定オブジェクトに接触して移動するボールを示す図である。
【図10】ゲーム装置が所定時間ごとに実行する処理を示すフロー図である。
【図11】変形例1−1における接触位置の拡大図である。
【図12】変形例1−2における接触位置の拡大図である。
【図13】変形例1−3における接触位置の拡大図である。
【図14】変形例3−1における当たり判定用オブジェクトの位置関係を示す図である。
【図15】変形例3−1における当たり判定用オブジェクトと接触するボールの移動制御の一例を示す図である。
【図16】変形例3−2における第1の当たり判定用オブジェクトと第2の当たり判定用オブジェクトとの位置関係の一例を示す図である。
【図17】変形例3−2における第1の当たり判定用オブジェクトと第2の当たり判定用オブジェクトとの位置関係の一例を示す図である。
【発明を実施するための形態】
【0014】
[1.実施形態]
以下、本発明の実施形態の一例について図面に基づき詳細に説明する。本発明の実施形態に係るゲーム装置は、例えば、家庭用ゲーム機(据置型ゲーム機)、携帯ゲーム機、携帯電話機、携帯情報端末(PDA)又はパーソナルコンピュータ等によって実現される。ここでは、実施形態に係るゲーム装置を家庭用ゲーム機によって実現する場合について説明する。
【0015】
[1−1.ゲーム装置のハードウェア構成]
図1は、本発明の実施形態に係るゲーム装置のハードウェア構成を示す。図1に示すゲーム装置10は、家庭用ゲーム機11、表示部32、音声出力部34、及び光ディスク36(情報記憶媒体)を含む。
【0016】
表示部32及び音声出力部34は、家庭用ゲーム機11に接続される。表示部32は、例えば、家庭用テレビ受像機又は液晶ディスプレイなどである。音声出力部34は、例えば、家庭用テレビ受像機に内蔵されたスピーカ又はヘッドホンなどである。
【0017】
家庭用ゲーム機11は、公知のコンピュータゲームシステムである。家庭用ゲーム機11は、バス12、制御部14、主記憶16、画像処理部18、入出力処理部20、音声処理部22、光ディスク再生部24、ハードディスク26、通信インタフェース28、及びコントローラ30を含む。
【0018】
制御部14は、一又は複数の制御部(例えば、CPU等)を含む。制御部14は、図示しないROMに格納されるオペレーティングシステムや、光ディスク36から読み出されるプログラムに基づいて、家庭用ゲーム機11の各部を制御する処理や情報処理を実行する。
【0019】
主記憶16は、例えば、RAMを含む。光ディスク36から読み出されたプログラム及びデータは、主記憶16に書き込まれる。主記憶16は、制御部14の作業用メモリとしても用いられる。バス12は、アドレス及びデータを家庭用ゲーム機11の各部でやり取りするためのものである。
【0020】
画像処理部18は、VRAMを含む。画像処理部18は、制御部14から供給される画像データに基づいてVRAM上にゲーム画面を描画する。VRAM上に描画されたゲーム画面は、ビデオ信号に変換されて所定のタイミングで表示部32に出力される。
【0021】
入出力処理部20は、制御部14が、音声処理部22、光ディスク再生部24、ハードディスク26、通信インタフェース28、及びコントローラ30にアクセスするためのインタフェースである。
【0022】
音声処理部22は、サウンドバッファを含む。音声処理部22は、光ディスク36からサウンドバッファに読み出された音声データを、音声出力部34から出力する。
【0023】
通信インタフェース28は、インターネットなどの通信ネットワークに、家庭用ゲーム機11を有線又は無線接続するためのインタフェースである。
【0024】
光ディスク再生部24は、光ディスク36に記録されたプログラムやデータを読み取る。本実施形態においては、プログラムやデータを家庭用ゲーム機11に供給するために、光ディスク36が用られる場合を説明するが、メモリカード等の他の情報記憶媒体が用いられて、プログラムやデータが家庭用ゲーム機11に対して供給されるようにしてもよい。他にも例えば、通信ネットワークを介して遠隔地からプログラムやデータが家庭用ゲーム機11に供給されるようにしてもよい。
【0025】
ハードディスク26は、一般的なハードディスク装置(補助記憶装置)である。なお、本実施形態において光ディスク36に記憶されるものとして説明するプログラムやデータは、ハードディスク26に記憶されていてもよい。
【0026】
コントローラ30は、ユーザがゲーム操作を行うための操作部である。家庭用ゲーム機11には、一又は複数のコントローラ30が、有線又は無線接続される。入出力処理部20は、一定周期毎(例えば1/60秒ごと)に、コントローラ30の各操作部材の状態をスキャンする。このスキャン結果を表す操作信号は、バス12を介して制御部14に供給される。制御部14は、この操作信号に基づいてユーザのゲーム操作を判定する。
【0027】
[1−2.ゲーム装置において実行されるゲーム]
ゲーム装置10は、光ディスク36から読み出したゲームプログラムを実行することによって、例えば、ゲーム空間内に配置されたオブジェクト及び移動物体を用いたゲームを実行する。
【0028】
以下では、サッカーの試合会場を模したゲーム空間を、複数のゲームキャラクタ(オブジェクト)が移動して、サッカーボール(移動物体)を用いてサッカーの試合を行うサッカーゲームが実行される場合について説明する。サッカーゲームが開始されると、例えば、ゲーム空間40が、主記憶16に構築される。
【0029】
図2は、ゲーム空間40の一例を示す図である。図2に示すゲーム空間40は、互いに直交する三つの座標軸(Xw軸、Yw軸、及びZw軸)が設定された仮想的な3次元空間になっている。図2に示すように、ゲーム空間40には、サッカーフィールドを表すオブジェクトであるフィールド42が配置される。
【0030】
フィールド42上には、サッカーのゴールを表すオブジェクトであるゴール50と、ユーザチームに所属するサッカー選手を表すオブジェクト(ゲームキャラクタ)である選手キャラクタ52と、対戦相手チームに所属するサッカー選手を表すオブジェクトである選手キャラクタ54と、サッカーボールを表すオブジェクトであるボール56と、が配置される。各オブジェクトの位置は、例えば、ワールド座標系(Xw−Yw−Zw座標系)の3次元座標で特定される。
【0031】
なお、図2では省略されているが、フィールド42上には、ユーザチームに所属する11体の選手キャラクタ52と、対戦相手チームに所属する11体の選手キャラクタ54と、が配置される。ユーザは、操作対象として設定される選手キャラクタ52を操作してゲームをプレイする。また、ゲーム空間40に配置される選手キャラクタ52(54)のうちでユーザの操作対象とならないものは、所定の行動アルゴリズムに従って自律的に行動する。
【0032】
また、ゲーム空間40には、仮想カメラ58(視点)が設定される。ゲーム空間40を仮想カメラ58から見た様子を表すゲーム画面が、表示部32に表示される。このゲーム画面は、ゲーム空間40に配置された各オブジェクトの頂点座標が、所定の座標変換演算を用いてワールド座標系からスクリーン座標系に座標変換されることによって生成される。このゲーム画面は、所定時間毎(例えば、1/60秒毎)に表示が更新される。以降では、これらの個々のゲーム画面を、それぞれフレームという。
【0033】
例えば、選手キャラクタ52(54)によってボール56が蹴りだされると、ボール56は、ゲーム空間40内を移動する。本実施形態においては、ゲーム空間40内を移動するボール56が、ゲーム空間40に配置されたオブジェクト(ゴール50や選手キャラクタ52(54))に接触するか否かが判定される。
【0034】
ボール56が、ゲーム空間40に配置されたオブジェクトに接触する場合、ボール56が、このオブジェクトに接触して跳ね返るようにボール56の移動制御が行われる。例えば、ボール56がゴール50の枠(いわゆるゴールポスト)や選手キャラクタ52(54)に接触した場合、ボール56が、これらのオブジェクトに当たって跳ね返るような移動制御が行われる。
【0035】
図3は、ボール56がオブジェクトに接触して移動する様子を示す図である。図3は、ボール56が、ゴール50の枠に接触する場合を示す。図3に示す位置P(x)は、あるフレーム(x番目のフレームとする。)におけるボール56の位置を示している。このフレームにおいては、ボール56は、ゴール50に接触していない。
【0036】
次のフレーム(即ち、(x+1)番目のフレーム。)が表示部32に表示される前に、ボール56が移動すべき仮位置Q(x+1)が算出される。ボール56がゴール50に向かって移動する場合、仮位置Q(x+1)は、ゴール50の領域の内部に位置する。この場合、ボール56がゴール50に接触する、と判定される。
【0037】
ボール56がゴール50に接触すると判定された場合、例えば、ボール56がゴール50の枠に当たって跳ね返るような移動制御が実行される。具体的には、例えば、ボール56と接触するゴール50表面の接触位置の法線方向nに基づいて、接触後のボール56が移動すべき位置P(x+1)が決定される。接触位置の法線方向nは、例えば、接触位置のポリゴンを構成する辺の外積を取ることによって求まる。
【0038】
例えば、図3に示すように、ゴール50の接触位置Rの法線方向nを基準として、ボール56の接触方向Vb(位置P(x)及び仮位置Q(x+1)を結ぶ方向。即ち、接触前のボール56の移動方向。)と線対称となる方向が、接触後のボール56の移動方向Vaとして決定される。即ち、ボール56の接触方向Vbと法線方向nとのなす角度θと、接触後のボール56の移動方向Vaと法線方向nとのなす角度θと、が等しくなる。
【0039】
まず、例えば、ゴール50の表面とボール56とが接触する接触位置Rが、位置P(x)と接触方向Vbに基づいて決定される。次いで、この接触位置Rから、移動方向Vaに所定距離dだけ離れた位置が、接触後のボール56の位置P(x+1)として決定される。即ち、(x+1)番目のフレームにおいて、ボール56が位置P(x+1)に表示されることになる。なお、距離dは、ボール56の移動速度に応じた距離であってよい。
【0040】
上記のように接触後のボール56の移動方向及び位置が決定されることによって、例えば、ゴール50の枠に当たってボール56が跳ね返る様子を再現することができる。
【0041】
しかしながら、ゴール50のような硬い物体については上記のような手法でよいが、例えば、実際のサッカーの試合においては、サッカー選手のユニフォームのような柔らかい物体にボールが接触した場合には、ゴールポスト等に接触した場合に比べて、ボールは跳ね返りづらくなる。他にも例えば、サッカー選手の筋肉の部分にボールが当たった場合は、ボールは跳ね返りづらくなる。
【0042】
つまり、サッカー選手の体のうち、柔らかい場所にボールが接触して跳ね返る様子は、硬い場所に接触して跳ね返る様子とは異なる。したがって、ゲーム空間40に配置される全てのオブジェクトに対して、図3のような方法をそのまま用いて移動物体の移動制御を実行した場合、ユーザにとって不自然な印象を与えてしまう。
【0043】
そこで、本実施形態においては、ゲーム装置10は、例えば、選手キャラクタ52(54)に基づいて定まる位置に、柔らかい物体に対応するオブジェクトと、硬い物体に対応するオブジェクトと、を設定してボール56の接触判定を実行することによって、この問題を解決する。即ち、柔らかい物体に対応するオブジェクトとボール56が接触した場合にはボール56のめり込みを許容し、硬い物体に対応するオブジェクトとボール56が接触した場合よりも、ボール56があまり跳ね返らないように移動制御が実行されることによって、ユーザに自然な印象を与えることができるようにしている。
【0044】
以降では、接触判定(当たり判定)に用いられる上記の2つのオブジェクトを、それぞれ第1の当たり判定用オブジェクト60a、第2の当たり判定用オブジェクト60bという。また、これらをまとめて、単に、当たり判定用オブジェクト60ともいう。
【0045】
図4は、当たり判定用オブジェクト60を示す図である。図4では、選手キャラクタ52(54)の脚の部分を例に挙げて示している。即ち、図4に示すように、例えば、選手キャラクタ52(54)の脚の部分に、第1の当たり判定用オブジェクト60a及び第2の当たり判定用オブジェクト60bが設定される。
【0046】
第1の当たり判定用オブジェクト60aは、硬い物体を示す。第1の当たり判定用オブジェクト60aは、例えば、選手キャラクタ52の脚等の骨に相当する。第2の当たり判定用オブジェクト60bは、柔らかい物体を示す。例えば、第2の当たり判定用オブジェクト60bは、選手キャラクタ52の脚等の筋肉に相当する。
【0047】
本実施形態においては、第1の当たり判定用オブジェクト60aとボール56とが接触した場合と、第2の当たり判定用オブジェクト60bとボール56とが接触した場合と、で接触後のボール56の移動の仕方が異なるようになっている。
【0048】
処理の詳細は後述するが、例えば、ボール56と第1の当たり判定用オブジェクト60aとが接触した場合、硬いオブジェクトにボール56が当って跳ね返るように移動制御がなされる。一方例えば、ボール56と第2の当たり判定用オブジェクト60bとが接触した場合、柔らかいオブジェクトにボール56がめり込むように移動制御がなされる。
【0049】
このようにすることによって、サッカー選手の体のうち、ユニフォームや、比較的柔らかい筋肉の部位にボール56がめり込み、硬い骨格にボール56が接触して跳ね返る様子を、再現することができる。以降、本処理の詳細について説明する。
【0050】
[1−3.ゲーム装置において実現される機能]
図5は、ゲーム装置10で実現される機能のうち、本発明に関連する機能を示す機能ブロック図である。図5に示すように、ゲーム装置10は、ゲームデータ記憶部70、法線マップ取得部72、当たり判定用オブジェクト設定部74、接触判定部76、及び移動制御部78を含む。
【0051】
[1−3−1.ゲームデータ記憶部]
ゲームデータ記憶部70は、例えば、主記憶16及び光ディスク36等を主として実現される。ゲームデータ記憶部70は、例えば、サッカーゲームを実現するために必要なデータを記憶する。例えば、サッカーゲームの現在の状況を示すゲーム状況データが、ゲームデータ記憶部70に記憶される。
【0052】
例えば、下記に示すようなデータが、ゲーム状況データに含まれる。
(1)選手キャラクタ52(54)の現在の状態(位置、姿勢、移動方向及び移動速度等)を示すデータ
(2)ボール56の現在の状態(位置、移動方向、移動速度、及び回転数等)を示すデータ
(3)現在設定されている当たり判定用オブジェクト60の位置を示すデータ
(4)仮想カメラ58の現在の状態(位置及び視線方向等)を示すデータ
【0053】
また例えば、本実施形態においては、ゲームデータ記憶部70は、当たり判定用オブジェクト60の法線マップを示す法線マップ情報を記憶する。法線マップとは、オブジェクトの各ポリゴン面に対応する法線方向を示すためのテクスチャである。
【0054】
図6は、法線マップを示す図である。ゲーム空間40に配置される各オブジェクトのポリゴン面に直交する法線方向は、一方向であるが、法線マップによれば、1つのポリゴン面に対して複数の法線方向を定義することができる。
【0055】
ここでは、図6に示すように、例えば、1つのポリゴン面を3×3の法線マップで定義する場合を説明する。即ち例えば、1つのポリゴン面に対して、9つの方向を示す法線が、法線マップによって定義される。
【0056】
ポリゴン面のうち、法線マップによって分けられる領域を、それぞれ領域Ea〜領域Ei(まとめて単に領域Eともいう。)とする。それぞれの領域Eに対応する法線の方向を、法線方向na〜法線方向niとする。法線方向na〜法線方向niのそれぞれは、例えば、方向が異なる。即ち、例えば、図6に示すポリゴン面の領域のうち、領域Eaに対応する法線方向naと、領域Ebに対応する法線方向nbと、は方向が異なることになる。
【0057】
例えば、法線マップ情報は、RGBのイメージデータ(RGB画像)によって表現される。即ち、法線マップ情報のRGB画像のうち、各ピクセルのR成分値、G成分値、B成分値が、それぞれ、領域Eの法線のXw軸方向、Yw軸方向、Zw軸方向のそれぞれの要素に対応する。
【0058】
RGB画像が示すRGB値に、所定の行列変換処理が施されることによって、法線の方向を示すベクトルが算出される。つまり、図6に示す例では、1つのポリゴン面に対応する領域Eが、9つの色によって表現されることになる。
【0059】
この法線マップは、当たり判定用オブジェクト60とボール56とが接触する場合において、接触後のボール56の移動方向を決定する際に用いられる。即ち、当たり判定用オブジェクト60のポリゴン面にボール56が接触した場合、同じポリゴン面であっても接触した位置(接触位置)が異なれば法線マップが示す法線の方向が異なるので、それぞれ異なる方向にボール56が移動することになる。
【0060】
このように、法線マップを用いることによって、例えば、図4のように、選手キャラクタ52(54)よりもポリゴン数の少ない当たり判定用オブジェクト60を用いても、接触後のボール56を種々の方向に移動させることができる。なお、法線マップの作成方法としては、高さマップ(バンプマップ)を用いた方法等、公知の種々の手法を適用可能である。
【0061】
[1−3−2.法線マップ取得部]
法線マップ取得部72は、制御部14を主として実現される。法線マップ取得部72は、第1の当たり判定用オブジェクト60a及び第2の当たり判定用オブジェクト60bに対応する法線マップを記憶してなる手段(例えば、ゲームデータ記憶部70)から、法線マップを取得する。
【0062】
なお、本実施形態においては、法線マップによって接触位置に対応する法線方向が取得される場合を説明するが、ボール56の接触位置と法線方向とが対応付けられたデータテーブルを用いる方法等、他の方法によって法線方向が取得される場合には、ゲーム装置10は、法線マップ取得部72を含んでいなくてもよい。
【0063】
[1−3−3.当たり判定用オブジェクト設定部]
当たり判定用オブジェクト設定部74は、制御部14を主として実現される。当たり判定用オブジェクト設定部74は、オブジェクト(例えば、選手キャラクタ52(54))に対応する第1の当たり判定用オブジェクト60aを、オブジェクトの位置に基づいて決定される位置に設定する。
【0064】
別の言い方をすれば、第1の当たり判定用オブジェクト60aは、例えば、選手キャラクタ52(54)の内部の任意の位置(例えば、内部に設定される軸線の位置)からの距離が所定範囲(例えば、所定距離以下)となる位置に設定される。この位置に、例えば、硬い物体を示す第1の当たり判定用オブジェクト60aが設定される。
【0065】
また、当たり判定用オブジェクト設定部74は、オブジェクト(例えば、選手キャラクタ52(54))に対応する第2の当たり判定用オブジェクト60bを、オブジェクトの位置に基づいて決定される位置であって、第1の当たり判定用オブジェクト60aの表面の少なくとも一部を覆うように設定する。
【0066】
第1の当たり判定用オブジェクト60aの表面とは、第1の当たり判定用オブジェクト60aを構成するポリゴン面のことである。第2の当たり判定用オブジェクト60bは、例えば、第1の当たり判定用オブジェクト60a内の任意の位置と、第2の当たり判定用オブジェクト60bの任意の位置と、を結ぶ線上に第1の当たり判定用オブジェクト60aの表面があるように配置される。
【0067】
別の言い方をすれば、第2の当たり判定用オブジェクト60bは、第1の当たり判定用オブジェクト60aの周囲に対応する位置に設定される。第1の当たり判定用オブジェクト60aの周囲に対応する位置とは、第1の当たり判定用オブジェクト60aの表面(外周面)を少なくとも含む領域内の位置のことである。即ち、第2の当たり判定用オブジェクト60bのポリゴン面の少なくとも一部が、第1の当たり判定用オブジェクト60aの外側にあるように第2の当たり判定用オブジェクト60bが設定される。
【0068】
本実施形態においては、例えば、第2の当たり判定用オブジェクト60bは、図4に示すように、第2の判定オブジェクトの表面が前記第1の判定オブジェクトを覆うように設定される場合を説明する。
【0069】
例えば、第1の当たり判定用オブジェクト60aは、円柱である。第2の当たり判定用オブジェクト60bは、第1の当たり判定用オブジェクトよりも半径(若しくは、断面積)の大きい円柱から、第1の当たり判定用オブジェクト60aを除いた筒状である。
【0070】
また、本実施形態においては、第1の当たり判定用オブジェクト60a及び第2の当たり判定用オブジェクト60bは、例えば、選手キャラクタ52(54)よりも少ないポリゴン数で構成されている。即ち例えば、図4に示すように、選手キャラクタ52(54)の脚に対応するポリゴンよりもポリゴン数が少ない形状の第1の当たり判定用オブジェクト60a及び第2の当たり判定用オブジェクト60bが設定される。
【0071】
なお、本実施形態においては、第1の当たり判定用オブジェクト60aが円柱形状であり、第2の当たり判定用オブジェクト60bが筒状である場合を説明するが、当たり判定用オブジェクト60の形状及び大きさは、本実施形態の例に限られない。他にも例えば、直方体等であってもよい。
【0072】
また、当たり判定用オブジェクト60は、例えば、選手キャラクタ52(54)と所定の位置関係を保つように、常にゲーム空間40に設定されるようにしてもよいし、選手キャラクタ52(54)とボール56との距離が所定範囲になった場合に設定されるようにしてもよい。即ち、当たり判定用オブジェクト60は、予め定められたタイミングで設定されるようにすればよい。
【0073】
[1−3−4.接触判定部]
接触判定部76は、制御部14を主として実現される。接触判定部76は、第1の当たり判定用オブジェクト60aの表面又は第2の当たり判定用オブジェクト60bの表面と移動物体(例えば、ボール56)とが接触するか否かを判定する。
【0074】
接触判定部76は、例えば、第1の当たり判定用オブジェクト60aの表面又は第2の当たり判定用オブジェクト60bの表面とボール56とが接触したか否かを、例えば、ボール56の現在の位置と移動方向に基づいて決定される仮位置と、第1の当たり判定用オブジェクト60a又は第2の当たり判定用オブジェクト60bと、の位置関係に基づいて判定する。
【0075】
なお、接触判定部76が、当たり判定用オブジェクト60の表面と、ボール56と、が接触するか否かを判定する方法は、公知の種々の接触判定(当たり判定)の手法を適用可能である。以降では、当たり判定用オブジェクト60の表面と、ボール56と、が接触することを、単に、「当たり判定用オブジェクト60と、ボール56と、が接触する」ともいう。
【0076】
[1−3−5.移動制御部]
移動制御部78は、制御部14を主として実現される。移動制御部78は、第1の当たり判定用オブジェクト60aの表面又は第2の当たり判定用オブジェクト60bの表面と移動物体(例えば、ボール56)とが接触する場合、移動物体の接触方向と、第1の当たり判定用オブジェクト60aの表面又は第2の当たり判定用オブジェクト60bの表面の接触位置に対応する法線方向と、に基づいて決定される接触後の移動方向に移動物体を移動させる。
【0077】
接触位置とは、先述のように、ボール56と接触した当たり判定用オブジェクト60のポリゴン面の位置のことである。即ち例えば、接触位置は、接触直前のボール56の位置と、この位置に基づいて算出されるボール56の仮位置と、を結んだ直線と交差する当たり判定用オブジェクト60の表面の位置のことである。
【0078】
また、本実施形態においては、「接触位置に対応する法線方向」とは、接触位置に関連付けられた法線の方向である。そして、「接触位置の法線方向」とは、接触位置のポリゴン面に直交する法線の方向である。即ち、本実施形態においては、「接触位置に対応する法線方向」と「接触位置の法線方向」とは異なる意である。接触位置に対応する法線方向は、法線マップによって接触位置に関連付けられたベクトルが示す方向であり、必ずしも、接触位置のポリゴン面に直交する方向とは限らない。
【0079】
本実施形態においては、例えば、移動制御部78は、第1の当たり判定用オブジェクト60aの表面又は第2の当たり判定用オブジェクト60bの表面と移動物体(例えば、ボール56)とが接触する場合、法線マップと、第1の当たり判定用オブジェクト60a又は第2の当たり判定用オブジェクト60bにおける移動物体との接触位置と、に基づいて接触位置に対応する法線方向を取得する手段を含む。即ち、法線マップによって関連付けられる法線方向に基づいて当たり判定用オブジェクト60と接触後のボール56の移動方向が決定される。
【0080】
図7は、ボール56と第1の当たり判定用オブジェクト60aとが接触した場合を示す図である。図7は、ボール56が第1の当たり判定用オブジェクト60aの接触位置Rに対応する法線方向n1に対して角度θ0で接触した場合を示す。即ち、接触前のボール56の移動方向(接触方向)Vbと、法線方向n1と、のなす角が、角度θ0である場合を示す。
【0081】
この場合、接触後のボール56の移動方向Va1は、第1の当たり判定用オブジェクト60bの法線マップによって関連付けられた法線方向n1に基づいて決定される。図7に示すように、ボール56と第1の当たり判定用オブジェクト60aとが接触する場合、接触後のボール56の移動方向Va1と法線方向n1とのなす角度θ1(例えば、0°〜90°)は、例えば、角度θ0と等しくなる。この場合、図3を参照して説明したように、例えば、ボール56がゴール50の枠と接触する場合と同様に、硬い物体に接触するような跳ね返り方をする。
【0082】
なお、第1の当たり判定用オブジェクト60aとの接触後のボール56の移動方向Va1の決定方法は、上記の例に限られない。予め定められた方法と、接触方向とVbと、法線方向n1と、に基づいて移動方向Va1が決定されればよい。
【0083】
また、移動制御部78は、第2の当たり判定用オブジェクト60bの表面と移動物体(例えば、ボール56)とが接触する場合、接触位置に対応する法線方向及び接触後の移動方向のなす角が、接触方向及び前記接触位置に対応する法線方向のなす角よりも大きくなり、かつ、接触方向と接触後の移動方向とのずれが、前記第1の当たり判定用オブジェクトの表面と前記移動物体とが接触する場合よりも小さくなるように、移動物体を移動させる手段を含む。
【0084】
別の言い方をすれば、移動制御部78は、例えば、第2の当たり判定用オブジェクト60bとボール56とが接触する場合、第1の当たり判定用オブジェクト60aとボール56とが接触する場合よりも、接触位置に対応する法線方向成分の変化の程度を小さくするように接触後の移動方向を決定する。
【0085】
図8は、ボール56と第2の当たり判定用オブジェクト60bとが接触する場合を示す図である。図8は、ボール56が接触位置に対して図7と同じ接触方向で接触する場合を示す。即ち、ボール56が第2の当たり判定用オブジェクト60bの接触位置に対応する法線方向n2に対して角度θ0で接触した場合を示す。
【0086】
接触後のボール56の移動方向Va2は、第2の当たり判定用オブジェクト60bの法線マップによって関連付けられた法線方向n2に基づいて決定される。例えば、法線方向n2と法線方向n1とが同じ方向である場合、接触後のボール56の移動方向Va2と法線方向n1とのなす角度θ2(>角度θ0、例えば、θ2は90°〜180°)は、角度θ1よりも大きい角度となる。
【0087】
つまり、移動方向Va2の方が、移動方向Va1よりも、法線方向n1,n2成分の変化が小さくなる。別の言い方をすれば、例えば、接触方向Vbと移動方向Va2との余弦は、接触方向Vbと移動方向Va1との余弦よりも大きくなる。
【0088】
このように、移動制御部78は、ボール56の第2の当たり判定用オブジェクト60aに対する接触方向と接触後の移動方向とのずれ(例えば、180°−θ2−θ0)が、ボール56の第1の当たり判定用オブジェクト60aに対する接触方向と接触後の移動方向とのずれ(例えば、180°−θ1−θ0)よりも小さくなるような移動方向Va2に対して、接触後のボール56を移動させる。
【0089】
本実施形態においては、図4に示すように、第2の当たり判定用オブジェクト60bの内部に第1の当たり判定用オブジェクト60aが設定されるので、ボール56と第2の当たり判定用オブジェクト60bとが接触した後、ボール56と第1の当たり判定用オブジェクト60aとが接触することになる。
【0090】
本実施形態のようにボール56の移動制御が行われることによって、柔らかい物体にめり込んだ後、硬い物体に跳ね返る様子を表現することができる。ここで、選手キャラクタ52(54)の脚(図4)にボール56が接触して跳ね返る様子について詳細に説明する。
【0091】
図9は、当たり判定用オブジェクト60に接触して移動するボール56の軌道を示す図である。図9は、ボール56が、選手キャラクタ52の脚に跳ね返る場合を示す。即ち、ボール56が選手キャラクタ52の脚に対応する当たり判定用オブジェクト60に接触する場合を示している。
【0092】
図9においては、ボール56が第1の当たり判定用オブジェクト60aには接触せず、第2の当たり判定用オブジェクト60bにのみ接触する場合(図9に示す軌道C1)と、ボール56が第1の当たり判定用オブジェクト60a,60bの両者に接触する場合(図9に示す軌道C2)と、の2通りを示している。
【0093】
まず、軌道C1について説明する。即ち、ボール56が比較的柔らかい第2の当たり判定用オブジェクト60bにのみ接触する場合について説明する。
【0094】
ここで、あるフレーム(k番目のフレームとする。)におけるボール56の位置を、位置P(k)とする。表示部32に次のフレーム(k+1番目のフレームとする。)が表示されるまでの間に、(k+1)番目のフレームにおいてボール56が移動すべき仮位置Q(k+1)が算出される。例えば、位置P(k)から、ボール56の移動方向V1kに対して移動速度S1kに応じた距離D1kだけ離れるように、仮位置Q(k+1)が算出される。
【0095】
仮位置Q(k+1)は、第2の当たり判定用オブジェクト60bの内部にあるので、k番目のフレームと(k+1)番目のフレームの間に、ボール56と選手キャラクタ52(54)とが接触する、と判定される。この場合、ボール56が選手キャラクタ52(54)の脚の筋肉と接触し、ボール56が筋肉にめり込むような移動制御が実行される。
【0096】
図8を参照して説明したように、まず、ボール56と接触した第2の当たり判定用オブジェクト60bの接触位置の法線マップが参照され、接触位置に対応する法線方向n2kが取得される。次いで、接触方向Vbkと法線方向n2kとのなす角度θ0kに基づいて、接触後の移動方向Va2kが決定される。ボール56と第2の当たり判定用オブジェクト60bの接触位置Rkから、この移動方向Va2kに対して所定距離D2kだけ離れた位置が、(k+1)番目のフレームにおけるボール56の位置P(k+1)として決定される。
【0097】
図9に戻り、(k+1)番目以降のフレームにおいては、ボール56は第1の当たり判定用オブジェクト60aと接触しないので、例えば、位置P(k+1)における移動方向Va2kを保ったまま、位置P(k+2),P(k+3)のようにボール56が移動することになる。
【0098】
次に軌道C2について説明する。即ち、ボール56が柔らかいオブジェクトに接触してめり込みながら、この柔らかいオブジェクトの中にある硬いオブジェクトに接触して跳ね返る場合について説明する。
【0099】
ここで、あるフレーム(i番目とする。)におけるボール56の位置を位置P(i)とする。表示部32に次のフレーム(i+1番目のフレームとする。)が表示されるまでの間に、(i+1)番目のフレームにおいてボール56が移動すべき仮位置Q(i+1)が算出される。例えば、位置P(i)から、ボール56の移動方向V1i(接触方向Vbi)に対して移動速度S1iに応じた距離D1iだけ離れるように、仮位置Q(i+1)が算出される。
【0100】
図9に示すように、仮位置Q(i+1)は、第2の当たり判定用オブジェクト60bの内部にあるので、i番目のフレームと(i+1)番目のフレームの間に、ボール56と選手キャラクタ52(54)とが接触する、と判定される。この場合、法線マップが参照され、第2の当たり判定用オブジェクト60bの接触位置R2iに対応する法線方向n2iに基づいて、(i+1)番目のフレームにおけるボール56の位置P(i+1)が決定される。
【0101】
具体的には、まず、ボール56と接触した第2の当たり判定用オブジェクト60bの接触位置の法線マップが参照され、接触位置に対応する法線方向n2iが取得される。次いで、接触方向Vbiと法線方向n2iとのなす角度θ0iに基づいて、接触後の移動方向Va2iが決定される。ボール56と第2の当たり判定用オブジェクト60bの接触位置R2iから、この移動方向Va2iに対して所定距離D2iだけ離れた位置が、(i+1)番目のフレームにおけるボール56の位置P(i+1)として決定される。
【0102】
次いで、移動方向Va2を保ったままボール56が移動するように、(i+2)番目のフレームにおいてボール56が移動すべき仮位置Q(i+2)が算出される。図9に示すように、仮位置Q(i+2)は、第1の当たり判定用オブジェクト60aの内部にあるので、ボール56と第1の当たり判定用オブジェクト60aとが接触した、と判定される。この場合、第1の当たり判定用オブジェクト60aの接触位置の法線方向n1iに基づいて接触後の移動方向Va3iが決定される。例えば、接触前の移動方向Va2iと法線方向n1iのなす角度と、接触後の移動方向Va3iと法線方向n1iのなす角度と、が等しくなるように、接触後の移動方向Va3iが決定される。
【0103】
ボール56と第1の当たり判定用オブジェクト60aの接触位置Rから、この移動方向Va1に対して所定距離D3だけ離れた位置が、(i+2)番目のフレームにおけるボール56の位置P(i+2)として決定される。図8に示すように、(i+3)番目以降のフレームは、他の当たり判定用オブジェクト60とボール56は接触しないので、例えば、ボール56は移動方向Va2を保ったまま、位置P(i+3),P(i+4)のように移動する。
【0104】
このように、軌道C2の場合、軌道C1とは異なり、ボール56の移動方向が2段階で変化することになる。このようにすることによって、柔らかい物体(筋肉やユニフォーム)の内部にある硬い物体(骨)に接触して跳ね返るような移動制御をゲーム空間において実現することができる。
【0105】
[1−4.ゲーム装置において実行される処理]
次に、ゲーム装置10で実行される処理について説明する。図10は、ゲーム装置10が所定時間(例えば、1/60秒)ごとに実行する処理を示すフロー図である。制御部14が、光ディスク36に記憶されたプログラムに従って、図10に示す処理を実行する。
【0106】
まず、図10に示すように、制御部14は、現在のフレームの次のフレームにおけるボール56の仮位置を算出する(S101)。例えば、S101においては、ゲームデータ記憶部70に記憶されたゲーム状況データが参照される。例えば、ゲーム状況データに格納されたボール56の位置、移動方向、及び移動速度に基づいて、次のフレームにおけるボール56の仮位置が算出される。
【0107】
制御部14(接触判定部76)は、S101で算出した仮位置に基づいてボール56が第1の当たり判定用オブジェクト60a又は第2の当たり判定用オブジェクト60bに接触するか否かを判定する(S102)。S102においては、例えば、ボール56の仮位置が、ゲーム空間40に設定される当たり判定用オブジェクト60の内部にあるか否かが判定される。
【0108】
ボール56が第1の当たり判定用オブジェクト60aに接触する場合(S102;第1)、制御部14は、第1の当たり判定用オブジェクト60aの接触位置に対応する法線方向と、ボール56の接触方向と、に基づいて第1の当たり判定用オブジェクト60aと接触後のボール56の移動方向を決定する(S103)。この場合、接触後の移動方向Va1が図7のようにして決定される。
【0109】
制御部14(移動制御部78)は、S103において決定された移動方向にボール56を移動させる(S104)。S104においては、ゲーム状況データに格納されたボール56の位置が更新される。即ち、次のフレームの表示処理が実行され、表示部32には、例えば、選手キャラクタ52(54)に接触したボール56が跳ね返るようなゲーム画面が表示される。
【0110】
ボール56が第2の当たり判定用オブジェクト60bに接触する場合(S102;第2)、制御部14は、接触フラグが既にオンになっているか否かを判定する(S105)。接触フラグとは、ボール56と第2の当たり判定用オブジェクト60bとが接触しているか否かを示すフラグである。接触フラグは、例えば、主記憶16(ゲームデータ記憶部70)に記憶される。
【0111】
接触フラグがオンになっていない場合(S105;N)、制御部14は、接触フラグをオンにし、第2の当たり判定用オブジェクト60bの接触位置に対応する法線方向と、ボール56の接触方向と、に基づいて第2の当たり判定用オブジェクト60bと接触後のボール56の移動方向を決定する(S106)。この場合、接触後の移動方向Va2が、図8のようにして決定される。制御部14(移動制御部78)は、S106において決定された移動方向にボール56を移動させる(S107)。
【0112】
一方、接触フラグが既にオンになっている場合(S105;Y)、制御部14は、移動方向を保ったまま、S101で算出された仮位置にボール56を移動させる(S108)。
【0113】
一方、ボール56が当たり判定用オブジェクト60に接触しない場合(S102;N)、制御部14は、接触フラグをオフにし、S101で算出された仮位置にボール56を移動させる(S109)。即ち、この場合には、ボール56が選手キャラクタ52(54)と接触しないので、ボール56がオブジェクトに接触して跳ね返るような移動制御は行われない。
【0114】
S107〜S109においても、S104と同様に、ゲーム状況データに格納されたボール56の位置が、S101で算出された仮位置に更新される。つまり、次のフレームの表示処理が実行される。
【0115】
以上説明したゲーム装置10によれば、選手キャラクタ52(54)に対応する当たり判定用オブジェクト60を用いて、ボール56と選手キャラクタ52(54)とが接触する様子を表現することができる。即ち、柔らかい物体にめり込みながら硬い物体に跳ね返る様子を表現することができるので、自然な印象をユーザに与えることができる。
【0116】
さらに、本実施形態のように、ポリゴン数が比較的少ない当たり判定用オブジェクト60を用いることによって、選手キャラクタ52(54)のポリゴンをそのまま接触判定に用いる場合に比べて、ゲーム装置10の処理負荷を軽減しつつ、ボール56とオブジェクトとが接触する様子を表現することができる。
【0117】
また例えば、本実施形態のように、ゲーム装置10が、法線マップを用いて接触後のボール56の移動方向を決定することによって、比較的簡易な形状の当たり判定用オブジェクト60を使用しても、種々の跳ね返り方を実現することができる。
【0118】
[2.変形例]
なお、本発明は、上記の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で適宜変更可能である。
【0119】
[2−1.変形例1]
実施形態においては、ボール56と第2の当たり判定用オブジェクト60bとが接触した場合の接触後の移動方向Va2が、ボール56と第1の当たり判定用オブジェクト60aとが接触した場合の接触後の移動方向Va1よりも、法線方向n1,n2成分の変化が弱くなるように決定される場合を説明したが、接触後のボール56の移動制御方法は、これに限られない。他にも例えば、以下のように接触後のボール56の移動が制御されることによって、ボール56が、第2の当たり判定用オブジェクト60bにめり込む様子を表現してもよい。
【0120】
[2−1−1.変形例1−1]
例えば、法線マップによって定まる法線方向を、接触方向に基づいて動的にずらすことによって、接触後のボール56の移動方向が決定されるようにしてもよい。例えば、第2の当たり判定用オブジェクト60bとボール56とが接触する場合、法線マップが示す法線方向n2を所定角度だけ接触方向側にずらすようにしてもよい。
【0121】
変形例1−1の場合、移動制御部78は、第2の当たり判定用オブジェクト60bと移動物体(例えば、ボール56)とが接触する場合、法線マップによって定義される法線方向を接触方向に対して所定角度回転させた方向に基づいて接触後の移動方向を決定する。
【0122】
図11は、変形例1−1における接触位置の拡大図である。図11に示すように、例えば、接触位置の法線マップが示す法線方向n2を、接触方向Vbの向きに角度αだけ回転させた方向n3に基づいて、接触後の移動方向Va2が決定されるようにしてもよい。変形例1−1においては、例えば、この方向n3に基づいて接触後のボール56の移動方向Va2が決定される。
【0123】
具体的には、ボール56が方向n3に対して角度θ3で接触した場合、方向n3と接触後の移動方向Va2のなす角度が、角度θ3となるように移動方向Va2が決定される。別の言い方をすれば、ボール56の移動方向Vbと方向n3とのなす角は角度(θ0+α)なので、方向n3から角度(θ0+α)だけ右回りに(接触方向回りに)回転した方向が、接触後の移動方向Va2として決定されることになる。
【0124】
[2−1−2.変形例1−2]
また例えば、接触後の移動方向Va2を決定する場合に、接触方向Vbを所定角度だけずらした方向に基づいて接触後の移動方向Va2を計算するようにしてもよい。
【0125】
変形例1−2の場合、移動制御部78は、第2の当たり判定用オブジェクト60bと移動物体(例えば、ボール56)とが接触する場合、接触方向Vbを、接触位置に対応する法線方向に対して所定角度回転させた方向Vcに基づいて接触後の移動方向を決定する。
【0126】
図12は、変形例1−2における接触位置の拡大図である。図12に示すように、接触方向Vbを所定角度βだけ法線方向n2に対して回転させた方向Vcに基づいて、接触後の移動方向Va2が計算される。例えば、方向Vcと法線方向n2とのなす角度を角度θ4とすると、法線方向n2と接触後の移動方向Va2のなす角度が角度θ4(>角度θ0)となるように接触後の移動方向Va2が計算されることになる。
【0127】
[2−1−3.変形例1−3]
また例えば、ボール56と第2の当たり判定用オブジェクト60bとが接触した場合、いったん第1の当たり判定用オブジェクト60aの場合と同様の方法で接触後の仮位置を算出し、この仮位置を所定方向にずらした位置に接触後のボール56を移動させるようにしてもよい。
【0128】
変形例1−3の場合、移動制御部78は、第2の当たり判定用オブジェクト60bと移動物体(例えば、ボール56)とが接触する場合、接触方向Vbと接触位置に対応する法線方向とに基づいて決定される仮位置から、当該法線方向の逆方向に対応する向きに対して所定距離だけ離れた位置に接触後の移動物体を移動させる。法線方向の逆方向とは、接触位置に対応する法線方向の逆ベクトルのことである。逆方向に対応する向きとは、この逆ベクトルとの余弦が所定範囲(例えば、0.7以上)となる向きのことである。
【0129】
図13は、変形例1−3における接触位置の拡大図である。図13に示すように、法線方向n2から角度θ0だけ回転した方向Va2’に対して、接触位置から所定距離だけ離れた位置を仮位置Qとする。方向Va2’は、例えば、図7の移動方向Va1と同じ方向である。即ち、この仮位置Qの決定方法は、ボール56と第1の当たり判定用オブジェクト60aとが接触した場合と同様である。
【0130】
変形例1−3の方法においては、この仮位置Qを、例えば、法線方向n2の逆方向に対応する向きVqpに対して所定距離だけ離れた位置Pを、接触後のボール56の位置とすることになる。
【0131】
[2−2.変形例2]
また例えば、ボール56と当たり判定用オブジェクト60とが接触した場合、ボール56の回転数や移動速度が変更されるようにしてもよい。ここで、ボール56の回転数及び移動速度は、例えば、相関関係があるようにしてよい。例えば、ボール56の回転数が増加すると移動速度が減少する。一方、例えば、ボール56の移動速度が増加すると回転数が減少する。
【0132】
変形例2の移動制御部78は、移動物体(例えば、ボール56)の移動速度又は回転数の少なくとも一方を示す移動状態データを記憶する手段(例えば、ゲームデータ記憶部70)から移動状態データを取得する手段を含む。移動状態データは、ゲーム状況データに含まれるデータのうち、ボール56の移動速度又は回転数の少なくとも一方を示すデータである。
【0133】
また、移動制御部78は、第1の当たり判定用オブジェクト60aの表面又は第2の当たり判定用オブジェクト60bの表面と移動物体(例えば、ボール56)とが接触する場合、移動物体の接触方向及び接触後の移動物体の移動方向のずれに基づいて移動状態データが示す移動物体の移動速度又は回転数の少なくとも一方を変更する手段を含む。この変更具合は、例えば、接触方向Vbと接触後の移動方向Vaとのずれ具合(なす角度。即ち、余弦の大きさ。)に基づいて決定される。
【0134】
例えば、接触方向Vbと接触後の移動方向Vaとのずれが少ないほど、接触後のボール56の移動速度が遅くなる。また例えば、接触方向Vbと接触後の移動方向Vaとのずれが少ないほど、接触後のボール56の回転数が増加する。このようにすることによって、ボール56が、サッカー選手の表面に摺って回転し、速度が落ちる様子を表現することができる。
【0135】
[2−3.変形例3]
また、実施形態においては、第1の当たり判定用オブジェクト60aと第2の当たり判定用オブジェクト60bとの位置関係を図4のような場合を例に挙げて説明したが、これらの位置関係は図4の例に限られない。
【0136】
ボール56と第2の当たり判定用オブジェクト60bとが接触した後に、ボール56と第1の当たり判定用オブジェクト60aとが接触するように、第1の当たり判定用オブジェクト60aと第2の当たり判定用オブジェクト60bとが設定されるようにすればよい。
【0137】
別の言い方をすれば、ボール56が選手キャラクタ52(54)に向かって移動してきたと仮定した場合、ボール56が第1の当たり判定用オブジェクト60aの表面に接触する前に第2の当たり判定用オブジェクト60bに接触するように、第1の当たり判定用オブジェクト60a及び第2の当たり判定用オブジェクト60bが配置されるようにすればよい。即ち、上記のようにして、ボール56が柔らかい物体にめり込んだ後に、硬い物体に当って跳ね返る様子を表現することができればよい。
【0138】
[2−3−1.変形例3−1]
例えば、第2の当たり判定用オブジェクト60bの表面(外周面)が、第1の当たり判定用オブジェクト60aの全体を覆わないように設定されるようにしてもよい。即ち、図4のように第2の当たり判定用オブジェクト60bの表面によって覆われる領域内に、第1の当たり判定用オブジェクト60aの一部又は全部が含まれるようにしなくてもよい。
【0139】
図14は、変形例3−1における当たり判定用オブジェクト60の位置関係を示す図である。図14に示すように、変形例3−1においては、第2の当たり判定用オブジェクト60bが、第1の当たり判定用オブジェクト60aの表面に隣接する位置に設定される場合について説明する。なお、第1の当たり判定用オブジェクト60aは、実施形態と同様の位置に設定される。
【0140】
変形例1のように当たり判定用オブジェクト60が設定された場合、例えば、第1の当たり判定用オブジェクト60aは、選手キャラクタ52(54)の頭部に相当する。第2の当たり判定用オブジェクト60bは、例えば、選手キャラクタ52(54)の髪の毛に相当する。
【0141】
即ち、変形例1においては、選手キャラクタ52(54)のうち、比較的硬い部位である頭部を、第1の当たり判定用オブジェクト60aとして表現することができる。一方、選手キャラクタ52(54)のうち、比較的柔らかい部位である髪の毛を、第2の当たり判定用オブジェクト60bとして表現することができる。
【0142】
なお、接触判定部76が接触判定を行う方法、及び、移動制御部78がボール56の移動制御を行う方法は、実施形態と同様である。また、本変形例においても、当たり判定用オブジェクト60には、法線マップが設定される。
【0143】
図15は、変形例3−1における当たり判定用オブジェクト60と接触するボール56の移動制御の一例を示す図である。図15に示す例では、ボール56が、当たり判定用オブジェクト60と接する様子を、3つの軌道を例に挙げて説明する。
【0144】
まず、ボール56が、第2の当たり判定用オブジェクト60bとは接触せずに、第1の当たり判定用オブジェクト60aのみと接触する場合(軌道C3という。)について説明する。この場合、ボール56が、図7に示す方法と同様の制御が行われ、硬いオブジェクトに跳ね返るように移動制御がなされる。即ち例えば、選手キャラクタ52(54)が、額でボール56をヘディングするような移動制御が行われる。
【0145】
次に、ボール56が、第1の当たり判定用オブジェクト60aとは接触せずに、第2の当たり判定用オブジェクト60bのみと接触する場合(軌道C4という。)、実施形態で説明した軌道C1と同様に、ボール56が、柔らかいオブジェクトにめり込むように移動制御がなされる。この場合、例えば、選手キャラクタ52(54)が、ヘディングを失敗して、ボール56が髪の毛にこすれたような軌道となる。
【0146】
最後に、ボール56が、第1の当たり判定用オブジェクト60aと第2の当たり判定用オブジェクト60bの両者と接触する場合(軌道C5という。)場合、実施形態の軌道C2と同様の移動制御が実行される。つまり、ボール56が、柔らかい第2の当たり判定用オブジェクト60bにめり込んだ後、硬い第1の当たり判定用オブジェクト60aに当って跳ね返る様子を表現することができる。軌道C5の場合、この場合、例えば、髪の毛の長いサッカー選手が、ボール56をヘディングする様子を表現することができる。
【0147】
変形例3−1のゲーム装置10によれば、硬い物体と柔らかい物体とが隣接しているようなオブジェクトに移動物体が接触して跳ね返る様子を表現することができる。
【0148】
[2−3−2.変形例3−2]
また例えば、第1の当たり判定用オブジェクト60aと第2の当たり判定用オブジェクト60bとの間に隙間があってもよい。つまり、実施形態においては、第1の当たり判定用オブジェクト60aが第2の当たり判定用オブジェクト60bに含まれており、変形例3−1においては、第1の当たり判定用オブジェクト60aと第2の当たり判定用オブジェクト60bとが互いに隣接する位置関係の場合を説明したが、第1の当たり判定用オブジェクト60aと第2の当たり判定用オブジェクト60bとは、互いに離れていてもよい。
【0149】
図16は、変形例3−2における第1の当たり判定用オブジェクト60aと第2の当たり判定用オブジェクト60bとの位置関係の一例を示す図である。図16のように、第1の当たり判定用オブジェクト60aが第2の当たり判定用オブジェクト60bに含まれておらず、第1の当たり判定用オブジェクト60aと第2の当たり判定用オブジェクト60bとの間が離れていてもよい。この場合も、第2の当たり判定用オブジェクト60bの表面によって第1の当たり判定用オブジェクト60aが含まれる。図16においては、実施形態と同様に(図9)、ボール56の移動制御がなされる。
【0150】
図17は、変形例3−2における第1の当たり判定用オブジェクト60aと第2の当たり判定用オブジェクト60bとの位置関係の一例を示す図である。図17のように、第1の当たり判定用オブジェクト60aと第2の当たり判定用オブジェクト60bとが互いに隣接する位置ではなく、第1の当たり判定用オブジェクト60aと第2の当たり判定用オブジェクト60bとの間が離れていてもよい。
【0151】
この場合も、第2の当たり判定用オブジェクト60bの表面は、第1の当たり判定用オブジェクト60aを含まないように設定されていることになる。図16においては、変形例3と同様に(図15)、ボール56の移動制御がなされる。
【0152】
[2−4.その他変形例]
なお、上記実施形態及び変形例の少なくとも2つ以上を組み合わせてもよい。
【0153】
また例えば、本発明は、サッカーゲーム以外のスポーツゲームを実行するゲーム装置にも適用することができる。つまり、本発明は、ゲーム空間を移動物体(パック等)が移動するゲームに適用できる。例えば、バスケットボールゲーム、アイスホッケーゲーム、又は、アメリカンフットボールゲームなどを実行するゲーム装置にも、本発明は、適用することができる。
【符号の説明】
【0154】
10 ゲーム装置、11 家庭用ゲーム機、12 バス、14 制御部、16 主記憶、18 画像処理部、20 入出力処理部、22 音声処理部、24 光ディスク再生部、26 ハードディスク、28 通信インタフェース、30 コントローラ、32 表示部、34 音声出力部、36 光ディスク、40 ゲーム空間、42 フィールド、50 ゴール、52,54 選手キャラクタ、56 ボール、58 仮想カメラ、60,60a,60b 当たり判定用オブジェクト、70 ゲームデータ記憶部、72 法線マップ取得部、74 当たり判定用オブジェクト設定部、76 接触判定部、78 移動制御部、n,n1,n2 法線方向、P 位置、Q 仮位置、R 接触位置、V1,Va 移動方向、Vb 接触方向、n3,Vc 方向、d 所定距離、C1,C2,C3,C4,C5 軌道、E 領域。
【特許請求の範囲】
【請求項1】
ゲーム空間内に配置されたオブジェクト及び移動物体を用いたゲームを実行するゲーム装置であって、
前記オブジェクトに対応する第1の当たり判定用オブジェクトを、前記オブジェクトの位置に基づいて決定される位置に設定し、前記オブジェクトに対応する第2の当たり判定用オブジェクトを、前記オブジェクトの位置に基づいて決定される位置であって、前記第1の当たり判定用オブジェクトの表面の少なくとも一部を覆うように設定する当たり判定用オブジェクト設定手段と、
前記第1の当たり判定用オブジェクトの表面又は前記第2の当たり判定用オブジェクトの表面と前記移動物体とが接触するか否かを判定する接触判定手段と、
前記第1の当たり判定用オブジェクトの表面又は前記第2の当たり判定用オブジェクトの表面と前記移動物体とが接触する場合、前記移動物体の接触方向と、前記第1の当たり判定用オブジェクトの表面又は前記第2の当たり判定用オブジェクトの表面の接触位置に対応する法線方向と、に基づいて決定される接触後の移動方向に前記移動物体を移動させる移動制御手段と、
を含み、
前記移動制御手段は、前記第2の当たり判定用オブジェクトの表面と前記移動物体とが接触する場合、前記接触位置に対応する法線方向及び前記接触後の移動方向のなす角が、前記接触方向及び前記接触位置に対応する法線方向のなす角よりも大きくなり、かつ、前記接触方向と前記接触後の移動方向とのずれが、前記第1の当たり判定用オブジェクトの表面と前記移動物体とが接触する場合よりも小さくなるように、前記移動物体を移動させる手段を含むことを特徴とするゲーム装置。
【請求項2】
前記ゲーム装置は、前記第1の当たり判定用オブジェクト及び前記第2の当たり判定用オブジェクトに対応する法線マップを記憶してなる手段から、前記法線マップを取得する法線マップ取得手段を含み、
前記移動制御手段は、前記第1の当たり判定用オブジェクトの表面又は前記第2の当たり判定用オブジェクトの表面と前記移動物体とが接触する場合、前記法線マップと、前記第1の当たり判定用オブジェクト又は前記第2の当たり判定用オブジェクトにおける前記移動物体との接触位置と、に基づいて前記接触位置に対応する法線方向を取得する手段を含むことを特徴とする請求項1に記載のゲーム装置。
【請求項3】
前記移動制御手段は、
前記移動物体の移動速度又は回転数の少なくとも一方を示す移動状態データを記憶する手段から前記移動状態データを取得する手段と、
前記第1の当たり判定用オブジェクトの表面又は前記第2の当たり判定用オブジェクトの表面と前記移動物体とが接触する場合、前記移動物体の接触方向及び接触後の前記移動物体の移動方向のずれに基づいて前記移動状態データが示す前記移動物体の移動速度又は回転数の少なくとも一方を変更する手段と、
を含むことを特徴とする請求項1又は2に記載のゲーム装置。
【請求項4】
ゲーム空間内に配置されたオブジェクト及び移動物体を用いたゲームを実行するゲーム装置の制御方法であって、
前記オブジェクトに対応する第1の当たり判定用オブジェクトを、前記オブジェクトの位置に基づいて決定される位置に設定し、前記オブジェクトに対応する第2の当たり判定用オブジェクトを、前記オブジェクトの位置に基づいて決定される位置であって、前記第1の当たり判定用オブジェクトの表面の少なくとも一部を覆うように設定する当たり判定用オブジェクト設定ステップと、
前記第1の当たり判定用オブジェクトの表面又は前記第2の当たり判定用オブジェクトの表面と前記移動物体とが接触するか否かを判定する接触判定ステップと、
前記第1の当たり判定用オブジェクトの表面又は前記第2の当たり判定用オブジェクトの表面と前記移動物体とが接触する場合、前記移動物体の接触方向と、前記第1の当たり判定用オブジェクトの表面又は前記第2の当たり判定用オブジェクトの表面の接触位置に対応する法線方向と、に基づいて決定される接触後の移動方向に前記移動物体を移動させる移動制御ステップと、
を含み、
前記移動制御ステップは、前記第2の当たり判定用オブジェクトの表面と前記移動物体とが接触する場合、前記接触位置に対応する法線方向及び前記接触後の移動方向のなす角が、前記接触方向及び前記接触位置に対応する法線方向のなす角よりも大きくなり、かつ、前記接触方向と前記接触後の移動方向とのずれが、前記第1の当たり判定用オブジェクトの表面と前記移動物体とが接触する場合よりも小さくなるように、前記移動物体を移動させるステップを含むことを特徴とするゲーム装置の制御方法。
【請求項5】
ゲーム空間内に配置されたオブジェクト及び移動物体を用いたゲームを実行するゲーム装置としてコンピュータを機能させるためのプログラムであって、
前記オブジェクトに対応する第1の当たり判定用オブジェクトを、前記オブジェクトの位置に基づいて決定される位置に設定し、前記オブジェクトに対応する第2の当たり判定用オブジェクトを、前記オブジェクトの位置に基づいて決定される位置であって、前記第1の当たり判定用オブジェクトの表面の少なくとも一部を覆うように設定する当たり判定用オブジェクト設定手段、
前記第1の当たり判定用オブジェクトの表面又は前記第2の当たり判定用オブジェクトの表面と前記移動物体とが接触するか否かを判定する接触判定手段、
前記第1の当たり判定用オブジェクトの表面又は前記第2の当たり判定用オブジェクトの表面と前記移動物体とが接触する場合、前記移動物体の接触方向と、前記第1の当たり判定用オブジェクトの表面又は前記第2の当たり判定用オブジェクトの表面の接触位置に対応する法線方向と、に基づいて決定される接触後の移動方向に前記移動物体を移動させる移動制御手段、
を含み、
前記移動制御手段は、前記第2の当たり判定用オブジェクトの表面と前記移動物体とが接触する場合、前記接触位置に対応する法線方向及び前記接触後の移動方向のなす角が、前記接触方向及び前記接触位置に対応する法線方向のなす角よりも大きくなり、かつ、前記接触方向と前記接触後の移動方向とのずれが、前記第1の当たり判定用オブジェクトの表面と前記移動物体とが接触する場合よりも小さくなるように、前記移動物体を移動させる手段を含むことを特徴とするゲーム装置として前記コンピュータを機能させるプログラム。
【請求項1】
ゲーム空間内に配置されたオブジェクト及び移動物体を用いたゲームを実行するゲーム装置であって、
前記オブジェクトに対応する第1の当たり判定用オブジェクトを、前記オブジェクトの位置に基づいて決定される位置に設定し、前記オブジェクトに対応する第2の当たり判定用オブジェクトを、前記オブジェクトの位置に基づいて決定される位置であって、前記第1の当たり判定用オブジェクトの表面の少なくとも一部を覆うように設定する当たり判定用オブジェクト設定手段と、
前記第1の当たり判定用オブジェクトの表面又は前記第2の当たり判定用オブジェクトの表面と前記移動物体とが接触するか否かを判定する接触判定手段と、
前記第1の当たり判定用オブジェクトの表面又は前記第2の当たり判定用オブジェクトの表面と前記移動物体とが接触する場合、前記移動物体の接触方向と、前記第1の当たり判定用オブジェクトの表面又は前記第2の当たり判定用オブジェクトの表面の接触位置に対応する法線方向と、に基づいて決定される接触後の移動方向に前記移動物体を移動させる移動制御手段と、
を含み、
前記移動制御手段は、前記第2の当たり判定用オブジェクトの表面と前記移動物体とが接触する場合、前記接触位置に対応する法線方向及び前記接触後の移動方向のなす角が、前記接触方向及び前記接触位置に対応する法線方向のなす角よりも大きくなり、かつ、前記接触方向と前記接触後の移動方向とのずれが、前記第1の当たり判定用オブジェクトの表面と前記移動物体とが接触する場合よりも小さくなるように、前記移動物体を移動させる手段を含むことを特徴とするゲーム装置。
【請求項2】
前記ゲーム装置は、前記第1の当たり判定用オブジェクト及び前記第2の当たり判定用オブジェクトに対応する法線マップを記憶してなる手段から、前記法線マップを取得する法線マップ取得手段を含み、
前記移動制御手段は、前記第1の当たり判定用オブジェクトの表面又は前記第2の当たり判定用オブジェクトの表面と前記移動物体とが接触する場合、前記法線マップと、前記第1の当たり判定用オブジェクト又は前記第2の当たり判定用オブジェクトにおける前記移動物体との接触位置と、に基づいて前記接触位置に対応する法線方向を取得する手段を含むことを特徴とする請求項1に記載のゲーム装置。
【請求項3】
前記移動制御手段は、
前記移動物体の移動速度又は回転数の少なくとも一方を示す移動状態データを記憶する手段から前記移動状態データを取得する手段と、
前記第1の当たり判定用オブジェクトの表面又は前記第2の当たり判定用オブジェクトの表面と前記移動物体とが接触する場合、前記移動物体の接触方向及び接触後の前記移動物体の移動方向のずれに基づいて前記移動状態データが示す前記移動物体の移動速度又は回転数の少なくとも一方を変更する手段と、
を含むことを特徴とする請求項1又は2に記載のゲーム装置。
【請求項4】
ゲーム空間内に配置されたオブジェクト及び移動物体を用いたゲームを実行するゲーム装置の制御方法であって、
前記オブジェクトに対応する第1の当たり判定用オブジェクトを、前記オブジェクトの位置に基づいて決定される位置に設定し、前記オブジェクトに対応する第2の当たり判定用オブジェクトを、前記オブジェクトの位置に基づいて決定される位置であって、前記第1の当たり判定用オブジェクトの表面の少なくとも一部を覆うように設定する当たり判定用オブジェクト設定ステップと、
前記第1の当たり判定用オブジェクトの表面又は前記第2の当たり判定用オブジェクトの表面と前記移動物体とが接触するか否かを判定する接触判定ステップと、
前記第1の当たり判定用オブジェクトの表面又は前記第2の当たり判定用オブジェクトの表面と前記移動物体とが接触する場合、前記移動物体の接触方向と、前記第1の当たり判定用オブジェクトの表面又は前記第2の当たり判定用オブジェクトの表面の接触位置に対応する法線方向と、に基づいて決定される接触後の移動方向に前記移動物体を移動させる移動制御ステップと、
を含み、
前記移動制御ステップは、前記第2の当たり判定用オブジェクトの表面と前記移動物体とが接触する場合、前記接触位置に対応する法線方向及び前記接触後の移動方向のなす角が、前記接触方向及び前記接触位置に対応する法線方向のなす角よりも大きくなり、かつ、前記接触方向と前記接触後の移動方向とのずれが、前記第1の当たり判定用オブジェクトの表面と前記移動物体とが接触する場合よりも小さくなるように、前記移動物体を移動させるステップを含むことを特徴とするゲーム装置の制御方法。
【請求項5】
ゲーム空間内に配置されたオブジェクト及び移動物体を用いたゲームを実行するゲーム装置としてコンピュータを機能させるためのプログラムであって、
前記オブジェクトに対応する第1の当たり判定用オブジェクトを、前記オブジェクトの位置に基づいて決定される位置に設定し、前記オブジェクトに対応する第2の当たり判定用オブジェクトを、前記オブジェクトの位置に基づいて決定される位置であって、前記第1の当たり判定用オブジェクトの表面の少なくとも一部を覆うように設定する当たり判定用オブジェクト設定手段、
前記第1の当たり判定用オブジェクトの表面又は前記第2の当たり判定用オブジェクトの表面と前記移動物体とが接触するか否かを判定する接触判定手段、
前記第1の当たり判定用オブジェクトの表面又は前記第2の当たり判定用オブジェクトの表面と前記移動物体とが接触する場合、前記移動物体の接触方向と、前記第1の当たり判定用オブジェクトの表面又は前記第2の当たり判定用オブジェクトの表面の接触位置に対応する法線方向と、に基づいて決定される接触後の移動方向に前記移動物体を移動させる移動制御手段、
を含み、
前記移動制御手段は、前記第2の当たり判定用オブジェクトの表面と前記移動物体とが接触する場合、前記接触位置に対応する法線方向及び前記接触後の移動方向のなす角が、前記接触方向及び前記接触位置に対応する法線方向のなす角よりも大きくなり、かつ、前記接触方向と前記接触後の移動方向とのずれが、前記第1の当たり判定用オブジェクトの表面と前記移動物体とが接触する場合よりも小さくなるように、前記移動物体を移動させる手段を含むことを特徴とするゲーム装置として前記コンピュータを機能させるプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【公開番号】特開2012−18650(P2012−18650A)
【公開日】平成24年1月26日(2012.1.26)
【国際特許分類】
【出願番号】特願2010−157314(P2010−157314)
【出願日】平成22年7月9日(2010.7.9)
【出願人】(506113602)株式会社コナミデジタルエンタテインメント (1,441)
【Fターム(参考)】
【公開日】平成24年1月26日(2012.1.26)
【国際特許分類】
【出願日】平成22年7月9日(2010.7.9)
【出願人】(506113602)株式会社コナミデジタルエンタテインメント (1,441)
【Fターム(参考)】
[ Back to top ]