(57)【要約】      （修正有）【課題】オブジェクトが着地する際の様子を簡易な方法で表現することができるとともに、オブジェクトが着地する向きとその向きの着地しやすさとを自由に設定することができるゲームプログラムおよびゲーム装置を提供する。【解決手段】オブジェクトには、その向きおよびその先端の位置がオブジェクトに対して固定的に設定されるベクトルが複数設定されている。ゲーム装置は、３次元ゲーム空間においてオブジェクトを移動させる。また、オブジェクトの一部が所定面に接したか否かを判定する。オブジェクトの一部が所定面に接したと判定されたとき、複数のベクトルのうちでその先端が最も所定方向の側に位置するベクトルが特定される。また、オブジェクトの一部が所定面に接したと判定されたとき、ゲーム装置は、特定されたベクトルが所定面の方向を向きかつ当該ベクトルが所定面に垂直になる姿勢でオブジェクトを所定面に着地させる。【選択図】図４
2006149767.tif 000002
【特許請求の範囲】
【請求項１】
仮想の３次元ゲーム空間において、オブジェクトが所定面に着地する様子を表示装置に表示させる処理をゲーム装置に実行させるゲームプログラムであって、
前記オブジェクトには、その向きおよびその先端の位置が前記オブジェクトに対して固定的に設定されるベクトルが複数設定されており、
前記３次元ゲーム空間において前記オブジェクトを移動させる移動制御手段と、
前記オブジェクトの一部が前記所定面に接したか否かを判定する判定手段と、
前記判定手段によって前記オブジェクトの一部が前記所定面に接したと判定されたとき、複数の前記ベクトルのうちでその先端が最も所定方向の側に位置するベクトルを特定する特定手段と、
前記特定手段によって特定されたベクトルが前記所定面の方向を向きかつ当該ベクトルが前記所定面に垂直になる姿勢で前記オブジェクトを前記所定面に着地させる着地手段として前記ゲーム装置のコンピュータを機能させるためのゲームプログラム。
【請求項２】
前記オブジェクトは複数の面によって構成され、各面には点が設定されており、
前記判定手段は、前記オブジェクトの面に設定された点のいずれかが前記所定面に接したことに応じて、前記オブジェクトの一部が前記所定面に接したと判定する、請求項１に記載のゲームプログラム。
【請求項３】
前記判定手段は、前記ベクトルのうちのいずれかのベクトルの先端が前記所定面に接したことに応じて、前記オブジェクトの一部が前記所定面に接したと判定する、請求項１に記載のゲームプログラム。
【請求項４】
前記オブジェクトは複数の面によって構成され、
前記ベクトルは、前記オブジェクトの各面について１つずつ設定され、当該面と垂直な向きに設定される、請求項１に記載のゲームプログラム。
【請求項５】
前記オブジェクトの中心から各前記ベクトルの先端までの長さは、そのベクトルが対応する面の面積に応じて長くなるように設定される、請求項４に記載のゲームプログラム。
【請求項６】
前記着地手段は、
前記特定手段によって特定されたベクトルが前記所定面の方向を向きかつ前記所定面に垂直になるように前記オブジェクトを回転させる回転手段と、
前記回転手段によって回転された後の前記オブジェクトが前記所定方向の逆側で前記所定面に接するように当該オブジェクトを平行移動させる平行移動手段とを含む、請求項１に記載のゲームプログラム。
【請求項７】
前記判定手段によって前記オブジェクトの一部が前記所定面に接したと判定されたとき、前記オブジェクトが前記所定面に接した時点における前記オブジェクトの移動速度を算出する速度算出手段として前記コンピュータをさらに機能させ、
前記着地手段は、前記速度算出手段による算出結果が予め定められた所定の速度以下であるときにのみ前記オブジェクトを前記所定面に着地させる、請求項１に記載のゲームプログラム。
【請求項８】
仮想の３次元ゲーム空間において、オブジェクトが所定面に着地する様子を表示装置に表示させるゲーム装置であって、
前記オブジェクトには、その向きおよびその先端の位置が前記オブジェクトに対して固定的に設定されるベクトルが複数設定されており、
前記３次元ゲーム空間において前記オブジェクトを移動させる移動制御手段と、
前記オブジェクトの一部が前記所定面に接したか否かを判定する判定手段と、
前記判定手段によって前記オブジェクトの一部が前記所定面に接したと判定されたとき、複数の前記ベクトルのうちでその先端が最も所定方向の側に位置するベクトルを特定する特定手段と、
前記特定手段によって特定されたベクトルが前記所定面の方向を向きかつ当該ベクトルが前記所定面に垂直になる姿勢で前記オブジェクトを前記所定面に着地させる着地手段とを備える、ゲーム装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ゲームプログラムおよびゲーム装置に関し、特に例えば、仮想ゲーム空間内においてオブジェクトが地面に着地する際の挙動を表示するゲームプログラムおよびゲーム装置に関する。
【背景技術】
【０００２】
従来のテレビゲームでは、仮想の３次元空間を落下するオブジェクトが地面に着地する様子を表現することがある。例えば、サイコロのようなオブジェクトが投げられて地面に落下し、地面でバウンドしたり転がったりした後、地面上で静止する様子を表現することがある。このような様子を表現する具体的な方法として、以下に示す第１および第２の方法が考えられる。
【０００３】
第１の方法としては、実際の物理挙動に基づく方法が考えられる。すなわち、落下するオブジェクトの一部が地面に接した時に、接した位置やオブジェクトの速度に基づいて跳ね返りの力を計算する。さらに、跳ね返りの力に基づいてオブジェクトの各頂点についてその後の挙動を計算する。この挙動に基づいて、地面に接したオブジェクトがバウンドしたり転がったりする挙動が表現される。そして、オブジェクトの一部が次に地面に接した時には、上記と同様に跳ね返りの力を計算し、オブジェクトの各頂点の挙動を計算する。以降、オブジェクトが停止するまで上記の計算を繰り返すことによって、オブジェクトが地面上に停止するまでの挙動を計算することができる。第１の方法によれば、オブジェクトの挙動をリアルに表現することができる。
【０００４】
また、第２の方法としては、地面に最も近い面をオブジェクトの着地面として決定する方法が考えられる。この方法では、オブジェクトが地面に接した時に、地面に最も近い面（例えば、地面とのなす角が最も小さい面）を算出し、その面をオブジェクトの着地面とする。図１４は、落下してきたオブジェクトが地面に接した時の様子を示す図である。なお、図１４は地面を真横から見た図である。図１４においては、オブジェクト９１の面ＡＢＣＤが地面に最も近い（地面とのなす角が最も小さい）と判断されるので、面ＡＢＣＤが着地面に決定される。したがって、図１５に示すように、オブジェクトは面ＡＢＣＤが地面に接する姿勢で停止する。第２の方法によれば、オブジェクトが最終的に着地する面を少ない処理量で計算することができ、オブジェクトの挙動を比較的簡易な処理で表現することができる。
【０００５】
なお、仮想空間内におけるオブジェクトに衝撃が加わった場合に当該オブジェクトのその後の挙動を計算する方法は、例えば特許文献１および特許文献２に記載されている。特許文献１に記載の方法においては、回転軸が予め設定されているオブジェクトに衝撃が加わった場合、当該オブジェクトに衝撃が加わった位置および衝撃ベクトルを計算する。そして、オブジェクトの回転軸または回転中心と当該位置との距離および衝撃ベクトルに基づいてオブジェクトの回転動作を行う。これによって、オブジェクトの回転動作をリアルに表現することができる。また、特許文献２に記載の方法は、プレイヤキャラクタの武器と敵キャラクタの武器とが衝突した際に武器弾き動作を行わせるものである。この方法においては、プレイヤキャラクタの武器と敵キャラクタの武器とが衝突した場合、各武器の衝突前の移動方向等に基づいて各武器の衝突後の移動方向を計算する。
【特許文献１】特開２００１−４３３９７号公報
【特許文献２】特開平１１−２１６２６９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上記第１の方法では、オブジェクトが着地する様子をリアルに表現することができるものの、計算量が膨大になるという課題がある。ゲーム装置の中には処理能力が高くないものも多くあることを鑑みれば、ゲーム処理として第１の方法を採用することは難しい。
【０００７】
一方、上記第２の方法では、オブジェクトが停止した時の着地面は、オブジェクトが地面に接した時の着地面が地面に最も近い面に決定される。上記図１４および図１５の例で言えば、オブジェクト９１の着地面は、地面に最も近い面ＡＢＣＤに決まる。このように、上記第２の方法では、オブジェクトは各面のいずれかで着地し、各面における着地のしやすさは同じである。ここで、ゲームにおいてオブジェクトが地面に着地する様子を表現する場合、ゲームの内容によってはオブジェクトが地面に着地する向きとその向きの着地しやすさとを自由に設定することが好ましいことがある。例えば、オブジェクトが自然に着地する様子を表現する場合、図１４および図１５の例で言えば、面ＢＣＧＦが着地面となるようにするのが自然であり望ましい。しかし、第２の方法では、オブジェクトの着地面は、オブジェクトが地面に接した時における地面とのなす角に基づいて一義的に決まってしまい、オブジェクトの各面の着地しやすさを自由に設定することができなかった。また、ゲームの内容によっては、頂点を真下にした向き（頂点が地面にささったような向き）でオブジェクト９１が着地することが望ましい場合も考えられる。しかし、第２の方法では、オブジェクト９１の形状によってオブジェクトの着地可能な向きが決まるので、頂点で立つような向きで着地させることはできない。また、第２の方法では、曲面を有するオブジェクトについては着地する向きを決定することができない。以上のように、第２の方法では、オブジェクトが着地可能な向きおよびその向きにおける着地しやすさはオブジェクトの形状によって一義的に決定されてしまい、ゲーム製作者の意図通りに決めることができない場合がある。
【０００８】
なお、特許文献１は、回転軸が予め設定されているオブジェクトに関する計算方法である。地面に落下するオブジェクトのように、回転軸が設定されていないオブジェクトに対しては特許文献１に記載の方法を適用することはできない。また、特許文献２は、移動している２つのオブジェクトが衝突した場合に、衝突後において各オブジェクトがどの方向に移動するかを計算する方法である。この方法では、各オブジェクトが衝突後に移動することが前提であり、２つのオブジェクトが接した状態で停止することは考慮されていない。さらに言えば、接した状態で停止した場合に各オブジェクトがどのような姿勢となるか（どの向きで停止するか）については考慮されていない。したがって、一方のオブジェクトを地面と考え、他方のオブジェクトを落下するオブジェクトと考えても、落下するオブジェクトが着地する際の挙動を表現する処理に対して特許文献２の方法を適用することはできない。
【０００９】
それ故、本発明の目的は、オブジェクトが着地する際の様子を簡易な方法で表現することができるとともに、オブジェクトが着地する向きとその向きの着地しやすさとを自由に設定することができるゲームプログラムおよびゲーム装置を提供することである。
【課題を解決するための手段】
【００１０】
本発明は、上記の課題を解決するために、以下の構成を採用した。なお、この欄における括弧内の参照符号および補足説明等は、本発明の理解を助けるために後述の実施形態との対応関係を示したものであって、本発明を何ら限定するものではない。
第１の発明は、仮想の３次元ゲーム空間において、オブジェクト（４０，５０，６０）が所定面（地面）に着地する様子を表示装置（第１のＬＣＤ１１）に表示させる処理をゲーム装置（１０）に実行させるゲームプログラムである。ゲームプログラムは、移動制御手段（ステップＳ６を実行するＣＰＵコア２１等。以下、単にステップ番号のみを示す。）と、判定手段（Ｓ７またはＳ３２）と、特定手段（Ｓ１１）と、着地手段（Ｓ１２）としてゲーム装置のコンピュータ（ＣＰＵコア２１等）を機能させる。なお、オブジェクトには、その向きおよびその先端の位置がオブジェクトに対して固定的に設定されるベクトル（４１〜４６，５１〜５４，６１〜６６）が複数設定されている。移動制御手段は、３次元ゲーム空間においてオブジェクトを移動させる。判定手段は、オブジェクトの一部が所定面に接したか否かを判定する。特定手段は、判定手段によってオブジェクトの一部が所定面に接したと判定されたとき、複数のベクトルのうちでその先端が最も所定方向（重力方向）の側に位置するベクトルを特定する。着地手段は、判定手段によってオブジェクトの一部が所定面に接したと判定されたとき、特定手段によって特定されたベクトルが所定面の方向を向きかつ当該ベクトルが所定面に垂直になる姿勢でオブジェクトを所定面に着地させる。
【００１１】
また、第２の発明においては、オブジェクトは複数の面によって構成され、各面には点が設定されていてもよい。このとき、判定手段は、オブジェクトの面に設定された点のいずれかが所定面に接したことに応じて、オブジェクトの一部が所定面に接したと判定する。
【００１２】
また、第３の発明においては、判定手段は、ベクトルのうちのいずれかのベクトルの先端が所定面に接したことに応じて、オブジェクトの一部が所定面に接したと判定してもよい。
【００１３】
また、第４の発明においては、オブジェクトは複数の面によって構成されていてもよい。このとき、ベクトルは、オブジェクトの各面について１つずつ設定され、当該面と垂直な向きに設定される（図３参照）。
【００１４】
また、第５の発明においては、オブジェクトの中心から各ベクトルの先端までの長さは、そのベクトルが対応する面の面積に応じて長くなるように設定されてもよい。
【００１５】
また、第６の発明においては、着地手段は、回転手段（Ｓ２１）と、平行移動手段（Ｓ２３）とを含んでいてもよい。このとき、回転手段は、特定手段によって特定されたベクトルが所定面の方向を向きかつ所定面に垂直になるようにオブジェクトを回転させる。平行移動手段は、回転手段によって回転された後のオブジェクトが所定方向の逆側で所定面に接するように当該オブジェクトを平行移動させる。
【００１６】
また、第７の発明においては、ゲームプログラムは、速度算出手段（Ｓ８）としてコンピュータをさらに機能させてもよい。速度算出手段は、判定手段によってオブジェクトの一部が所定面に接したと判定されたとき、オブジェクトが所定面に接した時点におけるオブジェクトの移動速度を算出する。このとき、着地手段は、速度算出手段による算出結果が予め定められた所定の速度以下であるときにのみオブジェクトを所定面に着地させる。
【００１７】
また、本発明は、上記各手段の機能を有するゲーム装置の形態で提供されてもよい。
【発明の効果】
【００１８】
第１の発明によれば、オブジェクトに設定されるベクトルの向きおよび先端の位置を用いて、オブジェクトが着地する向きおよびその向きの着地しやすさを決定することができる。すなわち、オブジェクトが着地する向きはオブジェクトの形状とは無関係に設定できるので、オブジェクトの形状による制限を受けずに着地面を自由に決定することができる。また、各ベクトルの先端の位置は着地する向きを特定するために用いられるので、着地する向きの着地しやすさを自由に決定することができる。さらに、各ベクトルの先端の位置を判断することのみによって着地する向きを決定することができるので、オブジェクトが着地する向きを簡単な計算で決定することができる。
【００１９】
第２の発明によれば、オブジェクトが着地する挙動を表現する際に、オブジェクトが所定面に不自然にめり込んで表示されることがないので、オブジェクトが着地する様子をより自然に表現することができる。また、オブジェクトの一部が所定面に接したか否かを簡単に判断することができる。
【００２０】
第３の発明によれば、オブジェクトの一部が所定面に接したか否かを簡単に判断することができる。
第４の発明によれば、オブジェクトを構成する複数の面のそれぞれについて、各面と垂直な向きにベクトルを設定することができる。
【００２１】
第５の発明によれば、面の面積に応じて着地のしやすさを示すベクトルの先端までの長さが決定されるので、オブジェクトが所定面に落ちたときの着地動作をリアルに表現することができる。
【００２２】
第６の発明によれば、多面体のオブジェクトが各面のいずれかで着地する様子を簡単な方法で表現することができる。
【００２３】
第７の発明によれば、オブジェクトの移動速度が所定の速度よりも大きい場合には、オブジェクトは着地動作を行わない（この場合、典型的にはオブジェクトは所定面でバウンドする動作を行う。）。したがって、オブジェクトの速度がある程度遅い場合にのみ着地動作が行われるので、オブジェクトが所定面に着地する際の挙動をよりリアルに表現することができる。
【発明を実施するための最良の形態】
【００２４】
以下、本発明の一実施形態に係るゲーム装置の構成および動作を説明する。
【００２５】
（第１の実施形態）
図１は、本発明の第１の実施形態に係るゲーム装置の外観図である。図１において、ゲーム装置１０は、第１のＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ：液晶表示装置）１１および第２のＬＣＤ１２を含む。ハウジング１３は上側ハウジング１３ａと下側ハウジング１３ｂとによって構成されており、第１のＬＣＤ１１は上側ハウジング１３ａに収納され、第２のＬＣＤ１２は下側ハウジング１３ｂに収納される。第１のＬＣＤ１１および第２のＬＣＤ１２の解像度はいずれも２５６ｄｏｔ×１９２ｄｏｔである。なお、第１の実施形態では表示装置としてＬＣＤを用いているが、例えばＥＬ（Ｅｌｅｃｔｒｏ  Ｌｕｍｉｎｅｓｃｅｎｃｅ：電界発光）を利用した表示装置など、他の任意の表示装置を利用することができる。また任意の解像度のものを利用することができる。
【００２６】
上側ハウジング１３ａには、後述する１対のスピーカ（図２の３０）からの音を外部に放出するための音抜き孔１８ａおよび１８ｂが形成されている。
【００２７】
下側ハウジング１３ｂには、入力装置として、十字スイッチ１４ａ、スタートスイッチ１４ｂ、セレクトスイッチ１４ｃ、Ａボタン１４ｄ、Ｂボタン１４ｅ、Ｘボタン１４ｆ、Ｙボタン１４ｇ、Ｌボタン１４ＬおよびＲボタン１４Ｒが設けられている。また、さらなる入力装置として、第２のＬＣＤ１２の画面上にタッチパネル１５（図１に示す２点鎖線）が装着されている。また、下側ハウジング１３ｂには、電源スイッチ１９や、メモリカード１７やスティック１６を収納するための挿入口（図１に示す一点鎖線）も設けられている。
【００２８】
タッチパネル１５としては、例えば抵抗膜方式や光学式（赤外線方式）や静電容量結合式など、任意の方式のものを利用することができる。タッチパネル１５は、その表面をスティック１６で触れると、その接触位置に対応する座標データを出力する機能を有している。なお、以下ではプレイヤがタッチパネル１５をスティック１６で操作するものとして説明を行うが、スティック１６の代わりにペン（スタイラスペン）や指でタッチパネル１５を操作することももちろん可能である。第１の実施形態では、タッチパネル１５として、第２のＬＣＤ１２の解像度と同じく２５６ｄｏｔ×１９２ｄｏｔの解像度（検出精度）のものを利用する。ただし、必ずしもタッチパネル１５の解像度と第２のＬＣＤ１２の解像度が一致している必要はない。
【００２９】
メモリカード１７はゲームプログラムを記録した記録媒体であり、下部ハウジング１３ｂに設けられた挿入口に着脱自在に装着される。
【００３０】
次に、図２を参照してゲーム装置１０の内部構成を説明する。図２において、ハウジング１３に収納される電子回路基板２０には、ＣＰＵコア２１が実装される。ＣＰＵコア２１には、バス２２を介して、コネクタ２３が接続されるとともに、入出力インターフェース回路（図面ではＩ／Ｆ回路と記す）２５、第１ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２６、第２ＧＰＵ２７、ＲＡＭ２４およびＬＣＤコントローラ３１が接続される。コネクタ２３には、メモリカード１７が着脱自在に接続される。メモリカード１７は、ゲームプログラムを記憶するＲＯＭ１７１と、バックアップデータを書き換え可能に記憶するＲＡＭ１７２を搭載する。メモリカード１７のＲＯＭ１７１に記憶されたゲームプログラムはＲＡＭ２４にロードされ、ＲＡＭ２４にロードされたゲームプログラムがＣＰＵコア２１によって実行される。ＲＡＭ２４には、ゲームプログラムの他にも、ＣＰＵコア２１がゲームプログラムを実行して得られる一時的なデータや、ゲーム画像を生成するためのデータが記憶される。Ｉ／Ｆ回路２５には、タッチパネル１５と、スピーカ３０と、図１の十字スイッチ１４ａやＡボタン１４ｄ等からなる操作スイッチ部１４とが接続される。スピーカ３０は、音抜き孔１８ａおよび１８ｂの内側に配置される。
【００３１】
第１ＧＰＵ２６には、第１ＶＲＡＭ（Ｖｉｄｅｏ  ＲＡＭ）２８が接続され、第２ＧＰＵ２７には、第２ＶＲＡＭ２９が接続される。第１ＧＰＵ２６は、ＣＰＵコア２１からの指示に応じて、ＲＡＭ２４に記憶されているゲーム画像を生成するためのデータに基づいて第１のゲーム画像を生成し、第１ＶＲＡＭ２８に描画する。第２ＧＰＵ２７は、同様にＣＰＵコア２１からの指示に応じて第２のゲーム画像を生成し、第２ＶＲＡＭ２９に描画する。第１ＶＲＡＭ２８および第２ＶＲＡＭ２９はＬＣＤコントローラ３１に接続されている。
【００３２】
ＬＣＤコントローラ３１はレジスタ３２を含む。レジスタ３２はＣＰＵコア２１からの指示に応じて０または１の値を記憶する。ＬＣＤコントローラ３１は、レジスタ３２の値が０の場合は、第１ＶＲＡＭ２８に描画された第１のゲーム画像を第１のＬＣＤ１１に出力し、第２ＶＲＡＭ２９に描画された第２のゲーム画像を第２のＬＣＤ１２に出力する。また、レジスタ３２の値が１の場合は、第１ＶＲＡＭ２８に描画された第１のゲーム画像を第２のＬＣＤ１２に出力し、第２ＶＲＡＭ２９に描画された第２のゲーム画像を第１のＬＣＤ１１に出力する。
【００３３】
なお、上記のようなゲーム装置１０の構成は単なる一例に過ぎず、本発明は、少なくとも１つの表示装置を有する任意のコンピュータシステムに適用することができる。また、本発明のゲームプログラムは、メモリカード１７などの外部記憶媒体を通じてコンピュータシステムに供給されるだけでなく、有線または無線の通信回線を通じてコンピュータシステムに供給されてもよいし、さらにはコンピュータシステム内部の不揮発性記憶装置に予め記録されていてもよい。
【００３４】
以下、ゲーム装置１０において行われるゲームについて説明する。本ゲームは、仮想の３次元ゲーム空間において地面およびオブジェクトが登場するゲームである。ゲームのジャンルはどのようなものであってもよい。本ゲームでは、仮想の３次元ゲーム空間において当該オブジェクトが投げられて地面に着地する様子が第１のＬＣＤ１１に表示される。また、オブジェクトの形状はどのような形状であってもよいが、第１の実施形態においては、直方体のオブジェクトを例として説明する。
【００３５】
図３は、第１の実施形態におけるオブジェクトを示す図である。図３に示すように、オブジェクト４０には複数のベクトル４１〜４６が設定される。なお、図３においては、図面を見やすくする目的で、オブジェクト４０の内部にある部分については各ベクトル４１〜４６を点線で示している。各ベクトル４１〜４６は、オブジェクト４０の中心を始点とするベクトルである。各ベクトル４１〜４６は、オブジェクト４０を構成する各面にそれぞれ対応するように設定される。具体的には、ベクトルは、オブジェクト４０の中心からそのベクトルが伸びる方向に存在する面に対応する。例えば、ベクトル４１は、オブジェクト４０の中心から面ＡＢＣＤの方へ伸びるベクトルであるので、面ＡＢＣＤと対応する。これと同様に、ベクトル４２は面ＥＦＧＨと対応し、ベクトル４３は面ＡＥＨＤと対応し、ベクトル４４は面ＢＦＧＣと対応し、ベクトル４５は面ＡＢＦＥと対応し、ベクトル４６は面ＣＧＨＤと対応する。また、第１の実施形態では、ベクトルは、対応する面に対して垂直な方向を向くように設定される。第１の実施形態では、ベクトルは、オブジェクトを構成する各面について１つ設定され、当該面と垂直な向きに設定される。なお、ベクトルはオブジェクトに仮想的に設定されるものであり、オブジェクトが第１のＬＣＤ１１に表示されている場合であってもベクトルは第１のＬＣＤ１１に表示されない。
【００３６】
各ベクトル４１〜４６の長さは、直方体であるオブジェクト４０の各辺の長さに基づいて設定される。オブジェクト４０の辺ＡＢの長さをｘとし、辺ＡＤの長さをｙとし、辺ＡＥの長さをｚとすると、各ベクトル４１〜４６の長さは次の式（１）に従って決定される。
（ベクトル４１の長さ）＝（ベクトル４２の長さ）＝ｘ・ｙ／２ｚ
（ベクトル４３の長さ）＝（ベクトル４４の長さ）＝ｙ・ｚ／２ｘ
（ベクトル４５の長さ）＝（ベクトル４６の長さ）＝ｘ・ｚ／２ｙ  …（１）
式（１）のように、各ベクトル４１〜４６の長さは、そのベクトルが対応する面の面積とそのベクトルに平行な辺の長さとに基づいて算出される。なお、詳細は後述するが、ベクトルの長さは、オブジェクトが着地する際における、そのベクトルに対応する面での着地しやすさ（立ちやすさ）を示している。
【００３７】
各ベクトル４１〜４６は、ゲーム中においてオブジェクト４０が投げられたタイミングで設定される。すなわち、ゲーム装置１０は、ゲーム中においてオブジェクト４０が投げられたことに応じて各ベクトル４１〜４６の向きおよび長さを決定する。上述したように、各ベクトル４１〜４６の向きは、そのベクトルが対応する面と垂直な向きに設定される。各ベクトル４１〜４６の長さは、上記式（１）に従って設定される。第１の実施形態では、各ベクトル４１〜４６の始点はオブジェクト４０の中心であることが予め定められているので、各ベクトル４１〜４６は、オブジェクト４０の中心からそのベクトルの先端までの３次元ベクトル（ｘ，ｙ，ｚ）として表現することができる。なお、他の実施形態においては、各ベクトル４１〜４６は、オブジェクト４０に対して予め設定されていてもよい。つまり、各ベクトル４１〜４６を示すデータは、オブジェクト４０を示すデータとともにゲームデータとしてメモリカード１７のＲＯＭ１７１に記憶されていてもよい。
【００３８】
各ベクトル４１〜４６は、オブジェクト４０に対して固定的に設定される。オブジェクト４０がゲーム空間を移動する場合であっても、オブジェクト４０と各ベクトル４１〜４６との相対的な位置関係は変化しない。つまり、オブジェクト４０の３次元ゲーム空間における座標が変化すれば、各ベクトル４１〜４６の３次元ゲーム空間における座標は、オブジェクト４０の座標の変化分だけ変化する。また、オブジェクト４０の３次元ゲーム空間における姿勢（向き）が変化すれば、各ベクトル４１〜４６の３次元ゲーム空間における向きは、オブジェクト４０の姿勢が変化した角度だけ変化する。
【００３９】
なお、第１の実施形態では、各ベクトル４１〜４６の始点をオブジェクト４０の中心とした。ここで、他の実施形態においては、各ベクトル４１〜４６は、その向きおよび先端の位置がオブジェクト４０に対して固定的に設定されていればよく、始点の位置はどの位置にあってもよい。例えば、各ベクトル４１〜４６の始点の位置はそのベクトルが対応する面の中心（あるいは面上の任意の位置）であってもよい。ただし、第１の実施形態のように、各ベクトル４１〜４６の始点の位置を同一の位置にすることによって、複数のベクトル４１〜４６を簡単に表すことができるというメリットがある。
【００４０】
ゲーム中において、上記オブジェクト４０は３次元ゲーム空間を移動する。例えば、プレイヤが操作するプレイヤキャラクタ（図示しない）が３次元ゲーム空間に登場するゲームにおいては、当該プレイヤキャラクタがオブジェクト４０を掴んでオブジェクト４０を投げることによってオブジェクト４０が移動する。オブジェクト４０が投げられるとゲーム装置１０は、３次元ゲーム空間の予め定められた所定方向に働く仮想的な重力を考慮してオブジェクト４０の移動を制御する。すなわち、オブジェクト４０は仮想的な重力に基づく落下運動を行う。なお、第１の実施形態においては上記所定方向は地面に垂直な下方向であるとするが、他の実施形態においては当該所定方向は下方向に限らない。仮想的な重力が働く方向は、ゲームの内容に応じて適宜設定されればよい。オブジェクト４０が落下運動を行った結果、オブジェクト４０が地面に接すると、オブジェクト４０が着地する挙動が以下に示す方法で計算される。
【００４１】
図４は、図３に示すオブジェクトが地面に接した状態を示す図である。オブジェクト４０が落下運動（図４に示す一点鎖線の矢印参照。）を行う間、ゲーム装置１０は、オブジェクト４０の一部が地面に接したか否かを判定する。オブジェクト４０の一部が地面に接したか否かの判定は、どのような方法であってもよい。第１の実施形態では、オブジェクト４０の各面の中心のいずれかが地面に接したことによって、オブジェクト４０の一部が地面に接したと判定する。なお、オブジェクト４０の一部が地面に接したか否かの判定は、オブジェクト４０のいずれかの頂点が地面に接したか否かによって行ってもよい。また、この判定は、オブジェクト４０の各面に予め設定された点（面の中心に限らない）のいずれかが地面に接したか否かによって行ってもよい。図４では、面ＡＢＦＥの中心が接したことによって、オブジェクト４０の一部が地面に接したと判定される。なお、図４は、地面に平行な視線で３次元ゲーム空間を見たときの図である。
【００４２】
オブジェクト４０の一部が地面に接したと判定されたとき、ゲーム装置１０は、ベクトル４１〜４６のうちで、先端が最も下側に位置するベクトルを特定する。ここで特定されるベクトルは、オブジェクト４０に設定されている他の全てのベクトルよりも先端が下側に位置するベクトルである。図４の例においては、ベクトル４４がゲーム装置１０によって特定される。
【００４３】
ベクトルが特定されると、ゲーム装置１０は、地面に接した状態（図４に示す状態）のオブジェクト４０を地面に着地させる。具体的には、オブジェクト４０の一部が地面に接したと判定されたとき、ゲーム装置１０は、特定されたベクトルが地面に垂直に下向きになる姿勢でオブジェクト４０を地面に着地させて停止させる。つまり、特定されたベクトルに対応する面が着地面に決定され、オブジェクト４０は、着地面が地面に面する状態で着地される。図５は、図４に示すオブジェクト４０が着地した状態を示す図である。図５は、地面の上方から斜め下向きの視線で３次元ゲーム空間を見たときの図である。図４においてはベクトル４４が特定されるので、ベクトル４４が地面に垂直に下向きになる状態でオブジェクトが着地される。したがって、オブジェクト４０の着地時の着地面は、ベクトル４４に対応する面ＢＦＧＣとなる。
【００４４】
図４からわかるように、オブジェクト４０の一部が地面に接した時点において先端が最も下側に位置するベクトルは、地面に接したときのオブジェクトの向きと各ベクトルの長さ（または各ベクトルの先端の位置）に応じて変化する。例えば、ベクトル４２やベクトル４５の長さが図４に示した長さより長ければ、図４において先端が最も下側に位置するベクトルは、ベクトル４４ではなくベクトル４２またはベクトル４５となる可能性もある。ベクトルの先端が最も下側になる確率は、そのベクトルの長さに応じて変化し、そのベクトルの長さが長いほど高くなる。したがって、オブジェクトの各面の着地しやすさ（その面が着地面となるなりやすさ）は、その面に対応するベクトルの長さによって決まる。したがって、第１の実施形態によれば、オブジェクトに設定される各ベクトルの長さを設定することによって、オブジェクトの各面の着地しやすさを自由に設定することができる。さらに、第１の実施形態によれば、オブジェクトの各面の着地しやすさはオブジェクトの形状に起因しないので、ゲーム製作者は、オブジェクトの各面の着地しやすさを、オブジェクトの形状によって制限されずに自由に設定することができる。
【００４５】
例えば、オブジェクト４０の形状に則したリアルな着地の挙動を表現することを望む場合、ゲーム製作者は、オブジェクト４０の形状に則した着地しやすさに応じて、各ベクトル４１〜４６の長さを決定すればよい。具体的には、各ベクトル４１〜４６の長さを、対応する面の面積に応じた長さとすることによって、オブジェクト４０の着地時の挙動をリアルに表現することができる。つまり、面積の大きな面に対応するベクトルは長く設定し、面積の小さな面に対応するベクトルは短く設定することによって、広い面ほど着地しやすくなるように設定することができる。従って、オブジェクトの狭い面が容易に着地面となってしまうような不自然さをなくし、オブジェクトの着地時の挙動が自然になるように表現することができる。また例えば、ある特定の面の着地しやすさを他の面よりも高くしたい場合、ゲーム製作者は、その特定の面に対応するベクトルの長さを長く設定すればよい。例えば、オブジェクト４０について面ＡＢＦＥで立ちやすいような設定（例えば、オブジェクト４０の内部における面ＡＢＦＥの側に錘が入っているような設定）にしたければ、面ＡＢＦＥに対応するベクトル４５を他のベクトルよりも長くすればよい。以上のように、第１の実施形態によれば、ベクトルの長さを変更することによって、オブジェクトの各面の着地しやすさを容易に変更することができる。
【００４６】
次に、ゲーム装置１０がメモリカード１７のゲームプログラムを実行することによって行われるゲーム処理の詳細について説明する。ゲーム装置１０の電源が投入されると、ゲーム装置１０のＣＰＵコア２１はメモリカード１７に格納されているゲームプログラムを実行し、それによってゲーム処理が開始される。以下、図６および図７を参照してゲーム処理の詳細について説明する。
【００４７】
図６は、ゲーム装置１０において実行されるゲーム処理の流れを示すメインフローチャートである。ゲーム処理が開始されると、まず、ステップＳ１において、プレイヤの操作に基づくゲーム処理が行われる。このゲーム処理は、プレイヤの操作によってゲーム空間に何らかの事象を生じさせ、その様子を表示する処理である。ここで言うゲーム処理とは、投げられたオブジェクトが着地する様子を表示する処理以外のゲーム処理を指し、このゲーム処理の詳細な内容はどのようなものであってもよい。
【００４８】
ステップＳ１の次のステップＳ２においては、上記立方体のオブジェクト４０が投げられる対象として選択されたか否かが判定される。第１の実施形態では、ＣＰＵコア２１は、プレイヤキャラクタがオブジェクト４０を掴んだ場合、オブジェクト４０が投げられる対象として選択されたと判定する。なお、プレイヤキャラクタがオブジェクト４０を掴む動作は、例えば、当該動作を指示するゲーム操作をプレイヤが行ったことに応じて行われる。ステップＳ２の判定において、オブジェクト４０が選択されていないと判定された場合、ステップＳ１の処理が再度行われる。以降、オブジェクト４０が選択されるまでステップＳ１およびＳ２の処理が繰り返される。
【００４９】
一方、ステップＳ２の判定において、オブジェクト４０が選択されたと判定された場合、ステップＳ３の処理が行われる。すなわち、ステップＳ３において、ステップＳ２で選択されたオブジェクト４０に対してベクトルが設定される。具体的には、オブジェクト４０の中心から各面を向く方向であってかつ各面に垂直な方向であり、上記式（１）に従ってその長さが算出される６つのベクトル４１〜４６が設定される（図３参照）。
【００５０】
ステップＳ３の次のステップＳ４において、ステップＳ３でベクトルが設定されたオブジェクト４０が投げられたか否かが判定される。すなわち、第１の実施形態においては、プレイヤキャラクタがオブジェクト４０を投げる動作が行われた否かが判定される。なお、この動作は、例えばプレイヤが所定のゲーム操作を行うことに応じて行われる。
【００５１】
ステップＳ４の判定において、オブジェクト４０が投げられていないと判定された場合、ステップＳ５の処理が行われる。すなわち、ステップＳ５において、オブジェクト４０の選択がキャンセルされたか否かが判定される。具体的には、ＣＰＵコア２１は、プレイヤキャラクタがオブジェクト４０を離した場合、オブジェクト４０の選択がキャンセルされたと判定する。ステップＳ５の判定において、オブジェクト４０の選択がキャンセルされたと判定された場合、処理はステップＳ１に戻り、ステップＳ１の処理が再度実行される。一方、ステップＳ５の判定において、オブジェクト４０の選択がキャンセルされていないと判定された場合、処理はステップＳ４に戻り、ステップＳ４の処理が再度実行される。
【００５２】
一方、ステップＳ４の判定において、オブジェクト４０が投げられたと判定された場合、ステップＳ６の処理が行われる。すなわち、ステップＳ６において、プレイヤキャラクタによって投げられたオブジェクト４０が３次元ゲーム空間を移動する様子が第１のＬＣＤ１１に表示される。具体的には、ＣＰＵコア２１は、次に表示すべきフレームでのオブジェクト４０の位置を計算し、計算した結果得られた位置にオブジェクト４０を移動させる。そして、移動後の位置にあるオブジェクト４０を第１のＬＣＤ１１に表示させる。なお、ステップＳ６の処理において、ＣＰＵコア２１は、仮想の重力を考慮してオブジェクト４０の挙動（移動速度の大きさおよび向き）を計算する。また、ステップＳ６でオブジェクト４０の位置が計算される際には、オブジェクト４０に設定される各ベクトル４１〜４６の位置（第１の実施形態では、ベクトルの先端の位置によって表される。）も計算される。
【００５３】
ステップＳ６の次のステップＳ７においては、オブジェクト４０の各面の中心のうちのいずれかが地面に接したか否かが判定される。ステップＳ７の判定処理は、オブジェクト４０の一部が地面に接したか否かを判定するために行われる処理である。ステップＳ７の判定において、オブジェクト４０の全ての面の中心が地面に接していないと判定された場合、ステップＳ６の処理が再度実行される。ステップＳ６およびＳ７の処理は、単位時間（例えば１フレーム）毎に実行される。つまり、ステップＳ６およびＳ７においては、移動するオブジェクト４０の位置が単位時間毎に計算されて表示され、オブジェクト４０の一部が地面に接したか否かが単位時間毎に判定される。
【００５４】
一方、ステップＳ７の判定において、オブジェクト４０の各面の中心のうちのいずれかが地面に接したと判定された場合、ステップＳ８の処理が行われる。すなわち、ステップＳ８において、オブジェクト４０の移動速度の大きさおよび向きが算出される。ここで算出される移動速度は、オブジェクト４０の一部が地面に接した時点におけるオブジェクト４０の移動速度であり、３次元のベクトルで表される。第１の実施形態では、オブジェクト４０の移動速度は、オブジェクト４０全体としての移動速度、すなわち、オブジェクト４０の中心の移動速度であるとする。
【００５５】
ステップＳ８の次のステップＳ９において、ステップＳ８で算出された移動速度の大きさが予め定められた所定値以下であるか否かが判定される。ステップＳ９の判定処理は、オブジェクト４０のその後の挙動を決定する処理であり、具体的には、オブジェクト４０をバウンドさせるかそれとも着地させるかを決定するための処理である。ステップＳ９の判定において、移動速度の大きさが上記所定値以下でないと判定された場合、ステップＳ１０以降の処理が行われる。ステップＳ１０以降の処理は、オブジェクト４０をバウンドさせる処理である。一方、ステップＳ９の判定において、移動速度の大きさが上記所定値以下であると判定された場合、ステップＳ１１およびＳ１２の処理が行われる。ステップＳ１１およびＳ１２の処理は、オブジェクト４０を地面に着地させる処理である。
【００５６】
ステップＳ１０においては、オブジェクト４０のバウンド後の移動速度の大きさおよび向きが算出される。バウンド後の移動速度は、バウンド前の移動速度、すなわち、ステップＳ８で算出された移動速度に基づいて算出される。具体的には、３次元ゲーム空間における座標系をＸＹＺ座標系とし、地面をＸＺ平面（Ｘ＝０、かつ、Ｚ＝０の平面）とした場合、バウンド後の移動速度（ｖ２ｘ，ｖ２ｙ，ｖ２ｚ）は以下の式（２）に従って算出される。なお、式（２）では、バウンド前の移動速度を（ｖ１ｘ，ｖ１ｙ，ｖ１ｚ）とする。
ｖ２ｘ＝ｖ１ｘ×Ｎｘ
ｖ２ｙ＝ｖ１ｙ×Ｒｙ
ｖ２ｘ＝ｖ１ｚ×Ｎｚ  …（２）
ここで、ＮｘはＸ方向に関する摩擦係数であり、０＜Ｎｘ＜１の範囲の定数である。ＲｙはＹ方向に関する反射係数であり、−１＜Ｒｙ＜０の範囲の定数である。ＮｚはＺ方向に関する摩擦係数であり、０＜Ｎｚ＜１の範囲の定数である。
【００５７】
なお、ステップＳ１０の後、ステップＳ６およびＳ７のループ処理が実行される。このループ処理では、その一部が地面に接したオブジェクト４０がバウンドする挙動が上記バウンド後の移動速度に基づいて計算され、オブジェクト４０がバウンドする様子が第１のＬＣＤ１１に表示される。そして、ステップＳ７でオブジェクト４０の一部が地面に接したと判定されるまで、ステップＳ６およびＳ７の処理が繰り返される。
【００５８】
ステップＳ１１においては、オブジェクト４０に設定されている各ベクトル４１〜４６のうち、先端が最も下側に位置するベクトルが特定される（図４参照）。ステップＳ１１の処理は、具体的には、直前のステップＳ６で算出された各ベクトル４１〜４６の先端の位置に基づいて行われる。ここで、第１の実施形態においては、地面がＸＺ平面であり、かつ、重力方向（仮想的な重力が働く方向）は地面に垂直な下向き方向であるので、重力方向はＹ軸の負方向である。したがって、ベクトルの先端の位置を示す座標のＹ座標値が最も小さいベクトルが、ステップＳ１１で特定されるベクトルである。
【００５９】
ステップＳ１１の次のステップＳ１２においては、着地処理が行われる。着地処理は、オブジェクトの一部が地面に接したと判定された場合において、ステップＳ１２で特定されたベクトルが地面の方向を向きかつ当該ベクトルが地面に垂直になるようにオブジェクト４０を地面に着地させる処理である。以下、図７を用いて着地処理の詳細を説明する。
【００６０】
図７は、図６に示すステップＳ１２の着地処理の詳細を示すフローチャートである。なお、図７に示すステップＳ２１〜Ｓ２５のループ処理は所定の単位時間（例えば１フレーム）毎に行われる処理である。着地処理においては、まず、ステップＳ２１において、オブジェクト４０を所定角度だけ回転させた位置が計算される。この所定角度は、上記所定の単位時間の間にオブジェクト４０が回転する角度である。所定角度は、予め定められた値であってもよいし、上記ステップＳ１１で特定されたベクトルの現在の向きと地面に垂直な下向き方向との角度の差を整数で割ることによって着地処理の度に算出されてもよい。また、ステップＳ２１でオブジェクト４０が回転移動した位置が計算される際には、回転移動に応じた各ベクトル４１〜４６の位置が計算される。
【００６１】
ステップＳ２１の次のステップＳ２２において、ステップＳ２１で計算されたオブジェクト４０の新たな位置について、各面の中心のいずれかが地面の下側に位置するか否かが判定される。ステップＳ２２の判定において、各面の中心のいずれかが地面の下側に位置すると判定された場合、ステップＳ２３の処理が行われる。すなわち、ステップＳ２３において、オブジェクト４０を上側に平行移動させた位置が計算される。具体的には、地面の下側に位置している中心が地面に接する位置となるようにオブジェクト４０の位置を上側に平行移動させた位置が計算される。なお、ステップＳ２３でオブジェクト４０が平行移動した位置が計算される際には、平行移動に応じた各ベクトル４１〜４６の位置が計算される。
【００６２】
なお、ステップＳ２１でオブジェクト４０を回転させると、オブジェクト４０の各面の中心のいずれかが地面よりも下側に位置することがあり、その結果、オブジェクト４０が地面にめり込んだように表示されることがある。そこで、第１の実施形態では、回転された後のオブジェクト４０が地面上で接した位置となるように、ステップＳ２３でオブジェクト４０を上側に平行移動するのである。これによって、オブジェクト４０は地面上に表示されることとなる。つまり、上記ステップＳ２２およびステップＳ２３の処理は、オブジェクト４０が地面にめり込んだように表示されることを防止するための処理である。
【００６３】
一方、ステップＳ２２の判定において、オブジェクト４０の全ての面の中心が地面の上側に位置すると判定された場合、ステップＳ２３の処理はスキップされ、ステップＳ２４の処理が行われる。また、ステップＳ２３の処理の後、ステップＳ２４の処理が行われる。ステップＳ２４においては、ステップＳ２１およびＳ２３で計算された位置でオブジェクト４０が第１のＬＣＤ１１に表示される。続くステップＳ２５においては、ステップＳ１１で特定されたベクトルの方向が地面に垂直になったか否かが判定される。なお、上記ステップＳ２１における所定角度が予め定められた角度である場合、当該ベクトルと地面に垂直な方向とが完全に一致しないことがある。したがって、この場合には、当該ベクトルと地面に垂直な方向とがほぼ一致していれば（具体的には、当該ベクトルと地面に垂直な方向との角度の差が所定値以下であれば）、両者が一致していると判定するようにしてもよい。ステップＳ２５の判定において、当該ベクトルの方向が地面に垂直になっていないと判定される場合、さらにオブジェクト４０を回転移動させる必要があるので、ステップＳ２１の処理が行われる。以降、当該ベクトルの方向が地面に垂直な方向に一致するまでステップＳ２１〜Ｓ２５の処理が繰り返される。一方、ステップＳ２５の判定において、当該ベクトルの方向が地面に垂直になったと判定される場合、ＣＰＵコア２１は着地処理を終了する。
【００６４】
図６の説明に戻り、ステップＳ１２の次のステップＳ１３において、ゲームを終了するか否かが判定される。この判定は、ゲームがクリアされたか否か、ゲームオーバーになったか否か、および、ゲームを終了する指示がプレイヤによって行われたか否か等に基づいて行われる。ステップＳ１３の判定において、ゲームを終了しないと判定された場合、ステップＳ１の処理が再度行われる。以降、ゲームが終了するまで、ステップＳ１〜Ｓ１３の処理が繰り返される。一方、ステップＳ１３の判定において、ゲームを終了すると判定された場合、ＣＰＵコア２１は、図６に示すゲーム処理を終了する。
【００６５】
以上のように、第１の実施形態によれば、着地処理を行う対象となるオブジェクトにベクトルを設定することによって、当該ベクトルを用いて着地面を決定することができる。したがって、従来のようにオブジェクトの形状を考慮して着地面を決定する必要がないので、オブジェクトの形状の制限を受けずに着地面を自由に決定することができる。また、着地面を決定する際には、オブジェクトに設定された各ベクトルの先端の位置を判断するのみであるので、着地面の計算を簡単に行うことができる。
【００６６】
（第２の実施形態）
次に、本発明の第２の実施形態について説明する。第２の実施形態に係るゲーム装置は、図１および図２に示した構成と同じであるので、第２の実施形態に係るゲーム装置の外観図およびブロック図は省略する。以下、第２の実施形態について第１の実施形態との相違点を中心に説明する。
【００６７】
図８は、第２の実施形態におけるオブジェクトを示す図である。図８に示すオブジェクト５０は、断面が楕円形の柱状の立体である。また、この柱状のオブジェクト５０は、断面の楕円形の径が一方の端に行くに従って小さくなっている形状である。本発明における着地処理の対象となるオブジェクトは、上述した直方体のオブジェクトに限らず、オブジェクト５０のような曲面を含むオブジェクトであってもよい。また、後述する図１３に示すように曲面のみからなる（平面を含まない）オブジェクトであってもよい。
【００６８】
図８に示すオブジェクト５０については、第１ベクトル５１、第２ベクトル５２、第３ベクトル５３、および第４ベクトル５４という４つのベクトル５１〜５４が設定される。図８に示す例においては、ベクトル５１および５２は、オブジェクト５０の断面である楕円形の短径方向に平行な向きのベクトルである。ベクトル５３および５４は、オブジェクト５０の断面である楕円形に垂直な向きのベクトルである。なお、各ベクトル５１〜５４の始点の位置は、上記第１の実施形態と同様、オブジェクト５０の中心である。
【００６９】
なお、図８においては、第３ベクトル５３は円柱状のオブジェクト５０の底面のうちの面積が大きい方の底面に対応しており、ベクトル５４は円柱状のオブジェクト５０の底面のうちの面積が小さい方の底面に対応していると言える。しかし、ベクトル５１および５２については対応する平面がない。このように、本発明におけるベクトルは、オブジェクトのいずれかの平面に必ずしも対応している必要はない。換言すれば、本発明は、曲面を有するオブジェクトについても適用することができ、曲面を有するオブジェクトについても着地位置を容易に計算することができるというメリットがある。
【００７０】
第２の実施形態においては、各ベクトル５１〜５４は、予め用意されたベクトル設定テーブルを参照することによって、その向きおよび先端の位置が決定される。図９は、ベクトル設定テーブルの一例を示す図である。図９に示すように、ベクトル設定テーブルには、長さおよび方向を示すデータがベクトル毎に関連付けられている。例えば、第１ベクトル５１については、長さが“２０”であり、方向が“（ｘａ，ｙａ，ｚａ）”である。この方向は、オブジェクトの中心からの方向である。なお、各オブジェクトの始点の位置が予め決まっている場合には、ベクトル設定テーブルにおいてベクトルの先端の位置のみをベクトル毎に格納するようにしてもよい。このようなベクトル設定テーブルによっても、ベクトルの先端の位置とベクトルの方向とを一義的に定めることができる。
【００７１】
以上の図８および図９に示したように、第２の実施形態においては、オブジェクト５０にベクトルが設定される際、このベクトル設定テーブルに基づいて各ベクトル５１〜５４が設定される。上記第１の実施形態では各ベクトルの長さを直方体の各辺の長さを用いて算出するようにしたが、第２の実施形態のように、予め各ベクトルの長さを設定しておいてもよい。第２の実施形態の場合でも、第１の実施形態と同様、オブジェクトに対して自由にベクトルを設定することができ、オブジェクトの各位置での着地しやすさを自由に設定することができる。なお、ベクトル設定テーブルは、ゲームプログラムとともにメモリカード１７に予め記憶しておけばよい。また、ゲームの内容に応じて、または、プレイヤによる指示に応じて、ベクトル設定テーブルの内容を後から変更できるようにしてもよい。
【００７２】
次に、オブジェクト５０の一部が地面に接したか否かの判定方法について説明する。第２の実施形態においては、オブジェクト５０の一部が地面に接したか否かの判定において、各ベクトル５１〜５４が用いられる。具体的には、オブジェクト５０が投げられると、ゲーム装置１０は、各ベクトル５１〜５４のいずれかの先端が地面に接したか否かによって、オブジェクト５０の一部が地面に接したか否かを判定する。図１０は、図８に示すオブジェクト５０が地面に接した状態を示す図である。図１０においては、第２ベクトル５２の先端が地面に接しているので、オブジェクト５０は地面に接していると判断される。
【００７３】
また、第２の実施形態においても第１の実施形態と同様、オブジェクト５０の一部が地面に接したと判定されたとき、各ベクトル５１〜５４のうちで、先端が最も下側に位置するベクトルが特定される。ここで特定されるベクトルは、その先端が地面に接しているベクトル、すなわち、第２ベクトル５２となる。したがって、オブジェクト５０は、第２ベクトル５２が地面に対して垂直でかつ下向きになる姿勢で着地するように移動制御される。図１１は、図８に示すオブジェクト５０が着地した状態を示す図である。
【００７４】
図１２は、第２の実施形態におけるゲーム処理の流れを示すメインフローチャートである。図１２に示すフローチャートは、ステップＳ３に代えてステップＳ３１の処理、および、ステップＳ７に代えてステップＳ３２の処理が実行される点以外は図６に示すフローチャートと同様である。したがって、図６に示す各ステップと同様の処理を行うステップについては同じステップ番号を付し、詳細な説明を省略する。
【００７５】
第２の実施形態においては、ステップＳ２の判定が肯定（ＹＥＳ）であった場合、ステップＳ３１の処理が行われる。ステップＳ３１においては、ベクトル設定テーブルを参照してオブジェクト５０に各ベクトル５１〜５４が設定される。また、第２の実施形態においては、ステップＳ６の次にステップＳ３２が実行される。ステップＳ３２においては、オブジェクト５０に設定された各ベクトル５１〜５４のいずれかの先端が地面に接したか否かが判定される。３次元ゲーム空間における座標系をＸＹＺ座標系とし、地面をＸＺ平面（Ｘ＝０、かつ、Ｚ＝０の平面）とした場合、ステップＳ３２の判定は、各ベクトル５１〜５４の先端の位置座標のＹ成分が０以下となったか否かによって行われる。ステップＳ３２の判定において、各ベクトル５１〜５４のいずれかの先端が地面に接したと判定された場合、ステップＳ８の処理が行われる。一方、ステップＳ３２の判定において、各ベクトル５１〜５４の全ての先端が地面に接していないと判定された場合、ステップＳ６の処理が再度行われる。
【００７６】
なお、図１２においては、図６に示すステップＳ７に代えてステップＳ３２の処理を行うこととしたが、第２の実施形態においても第１の実施形態と同様にステップＳ７の処理を行うようにしてもよい。
【００７７】
以上のように、第２の実施形態によっても、オブジェクトに各ベクトルを自由に設定することができるので、オブジェクトの形状の制限を受けずに着地面を自由に決定することができ、第１の実施形態と同様の効果を得ることができる。
【００７８】
なお、上記第１および第２の実施形態においては、オブジェクトの形状を直方体または円柱状の立体として説明したが、本発明は、オブジェクトの形状によらず適用することができる。例えば形状が複雑なオブジェクトについても本発明を適用することが可能であり、上記実施形態と同様の効果を得ることができる。
【００７９】
図１３は、他の実施形態におけるオブジェクトおよびそれに設定されるベクトルの一例を示す図である。図１３に示すように、本発明は、人型のオブジェクト６０のような複雑な形状のオブジェクトについても適用することが可能である。また、図１３では、６つのベクトル６１〜６６がオブジェクト６０に設定されているが、オブジェクト６０に設定するベクトルの数は、オブジェクト６０を着地させたい向きの数だけ設定すればよい。例えば、人型のオブジェクト６０の頭が下になる向き、または、足が下になる向きのいずれかを向くようにオブジェクト６０を着地させたければ、ベクトル６５および６６のみを残し、後のベクトル６１〜６４を設定しないようにすればよい。また、各ベクトル６１〜６６の長さは、そのベクトルの向きで着地する着地しやすさに応じて適宜設定すればよい。同様に、各ベクトル６１〜６６の向きも、着地させたい向きに応じて適宜設定すればよい。ベクトルをどのように設定しても、上述の実施形態で説明した処理によって、オブジェクト６０がどの向きで着地するかを簡単に決定することができる。
【００８０】
なお、他の実施形態においては、オブジェクトに設定されるベクトルは、その先端の位置（オブジェクトに対して相対的に決まる位置）および向きが定められるものであれば、どのような形で表されるものであってもよい。例えば、オブジェクトが平面で構成される多面体である場合、オブジェクトに設定されるベクトルは、各面に関連付けて設定される点として表されてもよい。この場合、設定される点の位置はベクトルの先端の位置を示し、点からその点に関連付けられる面に下ろした垂線の向きがベクトルの向きを示す。このように、オブジェクトに設定されるベクトルは、その向きと先端の位置を示すベクトルデータとして表される必要はなく、オブジェクトに対して相対的に決まる位置を示す座標データとして表されるものであってもよい。
【００８１】
また、上記実施形態では、重力方向が下方向であるとして説明したが、重力方向はゲームの内容や進行に応じて適宜設定されればよく、どの方向であっても本発明を適用することが可能である。例えば、重力方向が上方向であり、オブジェクトが天井に転がる様子を表現する場合にも本発明を適用することができる。また、上記実施形態では、地面は重力方向に垂直な面である場合を説明したが、地面の向きは重力方向に垂直でなくてもよい。地面が重力方向に対して斜めに設定されている場合であっても、上述の実施形態で説明した処理によって、オブジェクトが着地する様子を表現することができる。
【図面の簡単な説明】
【００８２】
【図１】第１の実施形態に係るゲーム装置の外観図
【図２】ゲーム装置の内部構成図
【図３】第１の実施形態におけるオブジェクトを示す図
【図４】図３に示すオブジェクトが地面に接した状態を示す図
【図５】図４に示すオブジェクト４０が着地した状態を示す図
【図６】ゲーム装置１０において実行されるゲーム処理の流れを示すメインフローチャート
【図７】図６に示すステップＳ１２の着地処理の詳細を示すフローチャート
【図８】第２の実施形態におけるオブジェクトを示す図
【図９】ベクトル設定テーブルの一例を示す図
【図１０】図８に示すオブジェクト５０が地面に接した状態を示す図
【図１１】図８に示すオブジェクト５０が着地した状態を示す図
【図１２】第２の実施形態におけるゲーム処理の流れを示すメインフローチャート
【図１３】他の実施形態におけるオブジェクトおよびそれに設定されるベクトルの一例を示す図
【図１４】従来の方法における、落下してきたオブジェクトが地面に接した時の様子を示す図
【図１５】図１４に示すオブジェクトが着地した状態を示す図
【符号の説明】
【００８３】
１０  ゲーム装置
１１，１２  ＬＣＤ
２１  ＣＰＵコア
２４  ＲＡＭ
４０，５０，６０  オブジェクト
４１〜４６，５１〜５４，６１〜６６  ベクトル
【図１】
2006149767.tif 000003
【図２】
2006149767.tif 000004
【図３】
2006149767.tif 000005
【図４】
2006149767.tif 000006
【図５】
2006149767.tif 000007
【図６】
2006149767.tif 000008
【図７】
2006149767.tif 000009
【図８】
2006149767.tif 000010
【図９】
2006149767.tif 000011
【図１０】
2006149767.tif 000012
【図１１】
2006149767.tif 000013
【図１２】
2006149767.tif 000014
【図１３】
2006149767.tif 000015
【図１４】
2006149767.tif 000016
【図１５】
2006149767.tif 000017