(57)【要約】【課題】娯楽性の高いゲーム制御技術を提供する。【解決手段】ゲーム装置１０は、ゲームフィールドに配置されたオブジェクトの物理量及びオブジェクトに作用する力をオブジェクトデータベース６０から読み出し、オブジェクトの運動を物理計算により算出する物理計算エンジン４２と、オブジェクトに、現実世界における運動とは異なる運動をさせるために、オブジェクトの物理量又は前記オブジェクトに作用する力を調整する物理量調整部４３と、を備える。【選択図】図１
2010088692.tif 000002
【特許請求の範囲】
【請求項１】
ゲームフィールドに配置されたオブジェクトの物理量及び前記オブジェクトに作用する力をメモリから読み出し、前記オブジェクトの運動を物理計算により算出する機能と、
前記オブジェクトに、現実世界における運動とは異なる運動をさせるために、前記オブジェクトの物理量又は前記オブジェクトに作用する力を調整する機能と、
をコンピュータに実現させることを特徴とするゲーム制御プログラム。
【請求項２】
前記調整する機能は、前記ゲームフィールドの上方から前記オブジェクトを落下させるときに、落下速度を現実の落下速度よりも遅くするために、前記オブジェクトに作用する重力を小さくするか、又は、前記オブジェクトに作用する浮力又は抗力を大きくすることを特徴とすることを特徴とする請求項１に記載のゲーム制御プログラム。
【請求項３】
ゲームフィールドに配置されたオブジェクトの物理量及び前記オブジェクトに作用する力をメモリから読み出し、前記オブジェクトの運動を物理計算により算出する物理計算エンジンと、
前記オブジェクトに、現実世界における運動とは異なる運動をさせるために、前記オブジェクトの物理量又は前記オブジェクトに作用する力を調整する調整部と、
を備えることを特徴とするゲーム装置。
【請求項４】
ゲームフィールドに配置されたオブジェクトの物理量及び前記オブジェクトに作用する力をメモリから読み出し、前記オブジェクトの運動を物理計算により算出するステップと、
前記オブジェクトに、現実世界における運動とは異なる運動をさせるために、前記オブジェクトの物理量又は前記オブジェクトに作用する力を調整するステップと、
を備えることを特徴とするゲーム制御方法。
【請求項５】
請求項１又は２に記載のゲーム制御プログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ゲーム制御技術に関し、とくに、ゲームフィールドにおいてオブジェクトを移動させるゲームを制御するゲーム制御プログラム、ゲーム装置、及びゲーム制御方法に関する。
【背景技術】
【０００２】
ゲームフィールドに複数のオブジェクトを落下させ、所定の条件を満たすようにオブジェクトを並べて消去させる、いわゆる「落ち物パズル」ゲームが人気を博している。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
オブジェクトの形状や並べ方などに工夫を凝らした、様々なタイプの落ち物パズルゲームが提供されているが、より斬新で娯楽性の高い落ち物パズルライクなゲームが求められている。
【０００４】
本発明はこうした状況に鑑みてなされたものであり、その目的は、より娯楽性の高いゲーム制御技術を提供することにある。
【課題を解決するための手段】
【０００５】
本発明のある態様は、ゲーム制御プログラムに関する。このゲーム制御プログラムは、ゲームフィールドに配置されたオブジェクトの物理量及び前記オブジェクトに作用する力をメモリから読み出し、前記オブジェクトの運動を物理計算により算出する機能と、前記オブジェクトに、現実世界における運動とは異なる運動をさせるために、前記オブジェクトの物理量又は前記オブジェクトに作用する力を調整する機能と、をコンピュータに実現させることを特徴とする。
【０００６】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【０００７】
本発明によれば、より娯楽性の高いゲーム制御技術を提供することができる。
【発明を実施するための最良の形態】
【０００８】
実施の形態に係るゲーム装置は、ゲームフィールドにおいて、オブジェクトを移動させて、オブジェクト同士を衝突させるゲームを提供する。このゲームにおいて、オブジェクトの移動や、衝突による変型などは、全て、オブジェクトの物理量とオブジェクトに作用する力を設定した上で、物理計算により計算される。
【０００９】
実施の形態に係るゲームは、ゲームフィールド内にオブジェクトを落下させて積み上げていく、いわゆる「落ち物パズル」に類似しているが、種々の点で従来の落ち物パズルゲームとは異なる。まず、前述したように、オブジェクトの移動は全て物理計算により計算されるので、オブジェクトをゲームフィールド内で落下させている間から、落下後に積み上がっているときも含めて、オブジェクトは物理法則に支配される。ここで、オブジェクトがゲームフィールド内を落下しているときに、プレイヤーはオブジェクトを左右に移動させて落下位置を調整することができるが、物理計算によりオブジェクトを自然落下させると、落下速度が速過ぎてプレイヤーが操作することができない。したがって、本実施の形態では、オブジェクトの落下速度を調整するために、オブジェクトに対して仮想的な浮力を設定し、プレイヤーが操作可能な程度の速度に調整する。
【００１０】
また、典型的な落ち物パズルでは、同種のオブジェクトを縦横に複数個並べたりすることでオブジェクトをゲームフィールドから消去させていくが、本実施の形態のゲームでは、オブジェクトを他のオブジェクトに衝突させることで、オブジェクトを分割したり小さく潰したりして体積を減少させる。また、オブジェクトを燃焼させたり、分解したりするためのアイテムを用意し、それらのアイテムを使ってオブジェクトをゲームフィールドから消去させていく。
【００１１】
本実施の形態では、３次元のゲームフィールド内に、３次元のオブジェクトを堆積させていくので、オブジェクトの配置は物理計算により３次元的に決定されるが、オブジェクトの燃焼を制御するためにゲームフィールド内の温度分布をシミュレートする際には、奥行き方向の温度分布を無視して、２次元平面内で温度分布を計算する。これにより、ゲームへの影響は最小限に抑えつつ、計算の負荷を軽減させることができる。また、物理現象を単純化してシミュレートするので、プレイヤーにも分かりやすくすることができる。
【００１２】
図１は、実施の形態に係るゲーム装置１０の構成を示す。ゲーム装置１０は、コントローラ２０、入力受付部３０、制御部４０、オブジェクトデータベース６０、分布データ保持部６２、画面生成部６６、及び表示装置６８を備える。これらの構成は、ハードウエアコンポーネントでいえば、任意のコンピュータのＣＰＵ、メモリ、メモリにロードされたプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者には理解されるところである。
【００１３】
入力受付部３０は、プレイヤーが操作するコントローラ２０から入力される制御信号を受け付ける。制御部４０は、入力受付部３０が受け付けたプレイヤーからの操作入力に基づいて、ゲームフィールド内でのオブジェクトの挙動を制御し、ゲームを進行させる。画面生成部６６は、制御部４０により制御されるゲームの画面を生成し、表示装置６８に表示させる。
【００１４】
図２は、表示装置に表示される画面の例を示す。画面中央付近には、ゴミ箱の形状をしたゲームフィールド９１が設けられており、このゲームフィールド９１の内部にオブジェクト９３が積み上げられていく。画面右上には、次に落下するオブジェクトが順次運搬されてくる様子を表示するためのベルトコンベア９２が表示されている。画面右下には、次に落下するオブジェクト９３の情報を表示するオブジェクト情報欄９７が設けられている。画面左上には、落下する順番になったオブジェクトを落下させずにいったん待避させるための待避場所９４が設けられている。画面左下には、ゲームフィールド９１の内部の温度を示す温度欄９５と、酸素量を示す酸素欄９６が設けられている。また、画面下方には、ゲームフィールド９１の下方に存在するオブジェクトをゲームフィールド９１の外部に取り出す機能を果たすキャラクタ９８が表示されている。
【００１５】
オブジェクトデータベース６０は、ゲームフィールド内に配置されているオブジェクトのデータを格納する。図３は、オブジェクトデータベース６０の内部データの例を示す。オブジェクトデータベース６０には、オブジェクトＩＤ欄７０、位置欄７１、方向欄７２、形状欄７３、ステータス欄７４が設けられている。オブジェクトＩＤ欄７０は、ゲームフィールド９１の内部に積み上げられたオブジェクトのＩＤを格納する。位置欄７１は、オブジェクトの重心の位置を示す３次元座標を格納する。方向欄７２は、オブジェクトが積み上がった状態におけるオブジェクトの方向を示す３次元ベクトルを格納する。形状欄７３は、オブジェクトの形状を示すデータを格納する。前述したように、本実施の形態のゲームでは、オブジェクト同士の衝突によりオブジェクトを変形させるが、オブジェクトの形状を忠実にモデリングして物理計算により変形させると計算の負荷が非常に高くなるので、オブジェクトの形状データを変形の度合いに応じて予め数種類用意しておき、衝突により段階的に変形させる。ステータス欄７４は、オブジェクトの状態を示すデータを格納する。オブジェクトのステータスとして、例えば、「通常」、「燃焼中」、「分解中」、「落下中」などがある。オブジェクトデータベース６０は、その他、各オブジェクトの形状データ及び物理量、オブジェクトに作用する力のデータ、オブジェクトの物理量や力の調整量などのデータを格納する。
【００１６】
分布データ保持部６２は、ゲームフィールド内の物理量の分布などをシミュレートするためのデータを格納する。図４は、分布データ保持部６２の内部データの例を示す。分布データ保持部６２には、メッシュＩＤ欄８０、位置欄８１、温度欄８２、及びステータス欄８３が設けられている。メッシュＩＤ欄８０は、３次元のゲームフィールド９１を２次元平面に投影した２次元のゲームフィールドを、メッシュ状に分割したときのメッシュのＩＤを格納する。ここでは、図２に示した表示画面において表示される側面に平行な２次元平面に、ゲームフィールド９１を投影したものを、２次元のゲームフィールドとする。すなわち、表示画面上で見えているものが、２次元のゲームフィールドである。位置欄８１は、メッシュの位置を示す２次元座標を格納する。前述したように、本実施の形態では、温度分布をシミュレートする際に、３次元のゲームフィールド９１のうち、奥行き方向の分布を無視するので、奥行き方向の座標は省略する。したがって、奥行き方向に重なっているオブジェクトは、同じ位置にあるものとみなされる。温度欄８２は、メッシュの温度を格納する。メッシュの温度は、後述するように、温度分布シミュレータ４４によりシミュレートされ更新される。ステータス欄８３は、メッシュの状態を示すデータを格納する。メッシュのステータスとして、例えば、「燃焼中」、「水没」、「菌糸生長」などがある。
【００１７】
ゲーム制御部４１は、ゲームプログラムを実行し、ゲームの進行を制御する。具体的な動作については後述する。
【００１８】
物理計算エンジン４２は、オブジェクトの移動、回転、衝突などの運動を、運動方程式にしたがって計算する。物理計算エンジン４２は、例えば、ベルトコンベア９２に吊り下げられているオブジェクトや、ゲームフィールド９１内を落下しているオブジェクトや、ゲームフィールド９１内に積み上げられているオブジェクトについて、オブジェクトの重量、摩擦係数などの物理量をオブジェクトデータベース６０から読み出し、重力や空気による抗力などを作用させて、オブジェクトの挙動を物理計算により算出する。
【００１９】
物理量調整部４３は、オブジェクトに対して、現実の物理法則とは異なる運動をさせる場合に、所望の運動が実現されるように、オブジェクトデータベース６０を参照して、オブジェクトの物理量やオブジェクトに作用する力を調整する。具体的には、ゲーム制御部４１が、オブジェクトをゲームフィールド９１上方から落下させるときに、落下速度を所定の速度まで減少させ、かつ、一定の速度で落下させるために、オブジェクトに対して仮想的な鉛直上向きの力を作用させる。これは、オブジェクトに対して通常よりも大きな浮力又は抗力を作用させていると考えることもできるし、重力を通常よりも減少させていると考えることもできる。このとき、物理量調整部４３は、空気による抗力を調整するために、オブジェクトの重量を所定値に変更する。また、物理量調整部４３は、オブジェクトの浮力を調整するために、オブジェクトの体積を所定値に変更してもよい。
【００２０】
従来のゲームでは、ゲームフィールド９１内をオブジェクトが落下するときには、オブジェクトの静止画像を下方へ移動させて落下する様子を表現していたが、本実施の形態の技術によれば、オブジェクトが落下している間も物理計算によりオブジェクトの挙動を計算しているので、オブジェクトを左右に移動させたときに、オブジェクトが左右に揺れたり、他のオブジェクトに衝突して他のオブジェクトを移動させたり、オブジェクトを変形させたりすることができる。これにより、より現実感の高いオブジェクトの挙動を再現することができ、ゲームの娯楽性を向上させることができる。
【００２１】
温度分布シミュレータ４４は、ゲームフィールド９１内の温度分布をシミュレートする。本実施の形態のゲームでは、ゲームフィールド９１内に堆積したオブジェクトを燃焼させるための着火アイテムが用意されており、着火アイテムがゲームフィールド９１内に配置されると、周囲のオブジェクトが所定の燃焼条件を満たしたときにオブジェクトが燃焼する。温度分布シミュレータ４４は、着火アイテムやオブジェクトの燃焼によるゲームフィールド９１内の温度分布の変化をシミュレートする。
【００２２】
温度分布シミュレータ４４は、オブジェクトデータベース６０を参照して、着火アイテム又は燃焼しているオブジェクトなどの熱源の３次元位置を取得し、その位置に該当するメッシュの位置を特定する。温度分布シミュレータ４４は、熱源があるメッシュの温度を所定の温度に設定する。
【００２３】
温度分布シミュレータ４４は、所定のタイミング、例えば、画面生成部６６が画面を生成する間隔で、各メッシュの温度を算出して、分布データ保持部６２のデータを更新する。温度分布シミュレータ４４は、オブジェクトや空気などの温度伝播速度を設定して、物理計算により温度分布を計算してもよいし、より単純に、周囲のメッシュの温度の統計量などを計算して、当該メッシュの次のタイミングにおける温度としてもよい。
【００２４】
温度分布シミュレータ４４は、各メッシュの温度を算出すると、ゲームフィールド９１内に配置されている各オブジェクトが燃焼するか否かを判定する。温度分布シミュレータ４４は、オブジェクトデータベース６０から各オブジェクトの３次元位置を取得し、その位置に該当するメッシュを特定する。温度分布シミュレータ４４は、オブジェクトデータベース６０から各オブジェクトの発火温度を取得し、該当するメッシュの温度が発火温度を超えているか否かを確認する。メッシュの温度が発火温度を超えており、かつ、ゲームフィールド９１内の酸素量が所定値以上であれば、温度分布シミュレータ４４は、そのオブジェクトが燃焼を開始したと判定し、オブジェクトデータベース６０及び分布データ保持部６２のステータスを更新する。オブジェクトの一部が燃焼を開始したときにオブジェクトの他の部分も燃焼を開始したとみなしてもよいし、メッシュごとにオブジェクトが燃焼するか否かを判定してもよい。
【００２５】
ゲームフィールド９１は３次元空間であるから、奥行き方向にも温度は分布しており、厳密には奥行き方向への温度の伝播も考慮しなければならないが、ゲーム画面においては、主に、ゲームフィールドを側方から見た状態が表示されるので、奥行き方向の温度分布はあまり重要ではない。ゲームフィールド９１において、オブジェクトは、既に積み上げられているオブジェクトの上に積み上げられるだけでなく、オブジェクトの手前や奥に落ちることもあるので、奥行き方向に複数のオブジェクトが重なって配置されることもあるが、画面上では手前のオブジェクトしか表示されない。そのため、奥行き方向に温度を分布させても、いたずらに複雑になるばかりで、プレイヤーには分かりづらい。したがって、温度分布シミュレータ４４は、奥行き方向は同じ温度であると仮定して、２次元平面で温度分布をシミュレートする。これにより、計算負荷を軽減させることができるとともに、プレイヤーに分かりやすく物理現象を表現することができる。
【００２６】
菌糸生長シミュレータ４５は、ゲームフィールド９１内における菌糸の生長をシミュレートする。本実施の形態では、オブジェクトを分解する特殊な菌糸がゲームフィールド９１内で生長し、菌糸に所定時間触れていたオブジェクトは分解されてゲームフィールド９１から消去されるという設定になっている。ゲーム制御部４１は、ゲームフィールド９１内に堆積したオブジェクトを分解するための菌糸の胞子と、バケツなどの容器に入れられた水を所定の頻度でアイテムとしてゲームフィールド９１に投下する。胞子アイテムがゲームフィールド９１内に配置され、かつ、胞子が水に浸されていると、胞子から菌糸が生長し、菌糸によりオブジェクトが分解される。
【００２７】
菌糸生長シミュレータ４５は、所定のタイミング、例えば、画面生成部６６が画面を生成する間隔で、菌糸の生長をメッシュごとに算出する。菌糸生長シミュレータ４５は、ゲームフィールド９１内の温度、酸素量、菌糸の生長速度などのパラメータに基づいて菌糸の生長を計算してもよいし、より単純に、例えば、胞子が水に浸されていれば、所定数フレームにつき１メッシュずつランダムな方向へ菌糸を生長させてもよい。
【００２８】
菌糸生長シミュレータ４５も、温度分布シミュレータ４４と同様に、奥行き方向への菌糸の生長を無視し、２次元平面内で菌糸の生長をシミュレートする。これにより、ゲームへの影響を最小限に抑えつつ、計算負荷を軽減させることができる。
【００２９】
つづいて、図面を参照しながら、ゲームの動作の詳細について説明する。図５は、表示装置に表示された画面の例を示す。ゲーム制御部４１は、予め形状データが用意されているオブジェクトの中かから、所定の時間間隔でゲームフィールド９１に落下させるオブジェクトを選択し、選択したオブジェクトを順次ベルトコンベア９２に吊り下げ、ベルトコンベア９２によりゲームフィールド９１へ運搬される様子を表示する。ゲームフィールド９１に落下する順番が到来したオブジェクト９９は、ゲームフィールド９１上方中央の位置に配置され、いったん停止される。オブジェクト９９を落下させるタイミングが到来すると、ゲーム制御部４１は、物理量調整部４３に物理量を調整させた上で、物理計算エンジン４２によりオブジェクト９９が落下する様子を計算させ、画面生成部６６に画面を生成させる。
【００３０】
ゲーム制御部４１は、オブジェクト９９の落下中に、プレイヤーからの指示を受け付け、オブジェクト９９を左右に移動させたり、回転させたりする。このときのオブジェクトの運動も、物理計算エンジン４２により計算される。オブジェクト９９が他のオブジェクトや、ゲームフィールド９１の壁又は底面に接触して、所定の時間以上移動しない状態が続けば、ゲーム制御部４１は、その位置にオブジェクトを固定させ、オブジェクトデータベース６０に登録する。
【００３１】
図６は、表示装置に表示された画面の例を示す。プレイヤーは、重いオブジェクト９９を変形しやすいオブジェクト９３に衝突させることで、オブジェクト９３を変形させることができる。ゲーム制御部４１は、オブジェクト９９とオブジェクト９３の衝突のエネルギーを算出し、エネルギーに応じてオブジェクトの変形の度合いを決定する。ゲーム制御部４１は、決定された変形の度合いにしたがって、新たな形状データをオブジェクトデータベース６０から読み出して、オブジェクトの画像を更新する。また、オブジェクトデータベース６０の該当するオブジェクトの形状欄７３と位置欄７１を更新する。
【００３２】
図７は、表示装置に表示された画面の例を示す。ゲームフィールド９１内に着火アイテム８７が配置されると、温度分布シミュレータ４４は、ゲームフィールド９１内の温度分布のシミュレートを開始する。各オブジェクトには発火温度が設定されており、オブジェクトが配置されているメッシュの温度が発火温度を超えると、図８に示すように、ゲーム制御部４１はオブジェクト９３を燃焼させ、オブジェクトデータベース６０及び分布データ保持部６２のステータス欄を更新する。ゲーム制御部４１は、分布データ保持部６２に格納されている温度をオブジェクトに適用する際に、表示画面に鉛直な方向は全て同じ温度であるとする。ゲーム制御部４１は、ゲームフィールド９１内のオブジェクトが燃焼しているとき、所定の速度でゲームフィールド９１内の酸素量を減少させる。ゲーム制御部４１は、ゲームフィールド９１内の酸素量が所定値を下回ると、オブジェクトの燃焼を停止させる。
【００３３】
図９は、表示装置に表示された画面の例を示す。ゲームフィールド９１内に水が溜められた状態で胞子アイテム８８が配置されると、菌糸生長シミュレータ４５は、菌糸の生長のシミュレートを開始する。各オブジェクトには菌糸により分解される条件が設定されている。図１０に示すように、オブジェクトが配置されているメッシュに菌糸８９が生長し、所定の条件が満たされると、ゲーム制御部４１はオブジェクトを分解し、ゲームフィールド９１から消滅させる。
【００３４】
ゲーム制御部４１は、変形させたり消滅させてはいけない重要なアイテムを所定の頻度でゲームフィールド９１内に落下させる。このアイテムが、ゲームフィールド９１の下方で所定時間以上変形されずに残っていた場合、ゲーム制御部４１は、キャラクタ９８がそのアイテムをゲームフィールド９１から持ち去る様子を表示し、オブジェクトデータベース６０から削除する。このアイテムが、燃焼又は分解により消失すると、ゲーム制御部４１は、ペナルティとして、同時に複数のオブジェクトをゲームフィールド９１へ落下させる。
【００３５】
以上、本発明を実施例をもとに説明した。この実施例は例示であり、その各構成要素や各処理プロセスの組合せにいろいろな変形が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【図面の簡単な説明】
【００３６】
【図１】実施の形態に係るゲーム装置の構成を示す図である。
【図２】表示装置に表示される画面の例を示す図である。
【図３】オブジェクトデータベースの内部データの例を示す図である。
【図４】分布データ保持部の内部データの例を示す図である。
【図５】表示装置に表示された画面の例を示す図である。
【図６】表示装置に表示された画面の例を示す図である。
【図７】表示装置に表示された画面の例を示す図である。
【図８】表示装置に表示された画面の例を示す図である。
【図９】表示装置に表示された画面の例を示す図である。
【図１０】表示装置に表示された画面の例を示す図である。
【符号の説明】
【００３７】
１０  ゲーム装置、２０  コントローラ、３０  入力受付部、４０  制御部、４１  ゲーム制御部、４２  物理計算エンジン、４３  物理量調整部、４４  温度分布シミュレータ、４５  菌糸生長シミュレータ、６０  オブジェクトデータベース、６２  分布データ保持部。
【図１】
2010088692.tif 000003
【図２】
2010088692.tif 000004
【図３】
2010088692.tif 000005
【図４】
2010088692.tif 000006
【図５】
2010088692.tif 000007
【図６】
2010088692.tif 000008
【図７】
2010088692.tif 000009
【図８】
2010088692.tif 000010
【図９】
2010088692.tif 000011
【図１０】
2010088692.tif 000012