説明

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

【課題】娯楽性の高いゲーム制御技術を提供する。
【解決手段】ゲーム装置10において、ゲーム制御部41は、ゲームフィールドに設けられた3次元空間内にオブジェクトを配置する。温度分布シミュレータ44は、分布データ保持部62を参照して、3次元空間を投影した2次元平面において物理現象をシミュレートする。ゲーム制御部41は、シミュレートされた物理現象を3次元空間内のオブジェクトに適用する。菌糸生長シミュレータ45も、同様にして、2次元平面において物理現象をシミュレートする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ゲーム制御技術に関し、とくに、ゲームフィールドにおいてオブジェクトを移動させるゲームを制御するゲーム制御プログラム、ゲーム装置、及びゲーム制御方法に関する。
【背景技術】
【0002】
ゲームフィールドに複数のオブジェクトを落下させ、所定の条件を満たすようにオブジェクトを並べて消去させる、いわゆる「落ち物パズル」ゲームが人気を博している。
【発明の開示】
【発明が解決しようとする課題】
【0003】
オブジェクトの形状や並べ方などに工夫を凝らした、様々なタイプの落ち物パズルゲームが提供されているが、より斬新で娯楽性の高い落ち物パズルライクなゲームが求められている。
【0004】
本発明はこうした状況に鑑みてなされたものであり、その目的は、より娯楽性の高いゲーム制御技術を提供することにある。
【課題を解決するための手段】
【0005】
本発明のある態様は、ゲーム制御プログラムに関する。このゲーム制御プログラムは、ゲームフィールドに設けられた3次元空間内にオブジェクトを配置する機能と、前記3次元空間を投影した2次元平面において物理現象をシミュレートする機能と、シミュレートされた物理現象を前記3次元空間内のオブジェクトに適用する機能と、をコンピュータに実現させることを特徴とする。
【0006】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【0007】
本発明によれば、より娯楽性の高いゲーム制御技術を提供することができる。
【発明を実施するための最良の形態】
【0008】
実施の形態に係るゲーム装置は、ゲームフィールドにおいて、オブジェクトを移動させて、オブジェクト同士を衝突させるゲームを提供する。このゲームにおいて、オブジェクトの移動や、衝突による変型などは、全て、オブジェクトの物理量とオブジェクトに作用する力を設定した上で、物理計算により計算される。
【0009】
実施の形態に係るゲームは、ゲームフィールド内にオブジェクトを落下させて積み上げていく、いわゆる「落ち物パズル」に類似しているが、種々の点で従来の落ち物パズルゲームとは異なる。まず、前述したように、オブジェクトの移動は全て物理計算により計算されるので、オブジェクトをゲームフィールド内で落下させている間から、落下後に積み上がっているときも含めて、オブジェクトは物理法則に支配される。ここで、オブジェクトがゲームフィールド内を落下しているときに、プレイヤーはオブジェクトを左右に移動させて落下位置を調整することができるが、物理計算によりオブジェクトを自然落下させると、落下速度が速過ぎてプレイヤーが操作することができない。したがって、本実施の形態では、オブジェクトの落下速度を調整するために、オブジェクトに対して仮想的な浮力を設定し、プレイヤーが操作可能な程度の速度に調整する。
【0010】
また、典型的な落ち物パズルでは、同種のオブジェクトを縦横に複数個並べたりすることでオブジェクトをゲームフィールドから消去させていくが、本実施の形態のゲームでは、オブジェクトを他のオブジェクトに衝突させることで、オブジェクトを分割したり小さく潰したりして体積を減少させる。また、オブジェクトを燃焼させたり、分解したりするためのアイテムを用意し、それらのアイテムを使ってオブジェクトをゲームフィールドから消去させていく。
【0011】
本実施の形態では、3次元のゲームフィールド内に、3次元のオブジェクトを堆積させていくので、オブジェクトの配置は物理計算により3次元的に決定されるが、オブジェクトの燃焼を制御するためにゲームフィールド内の温度分布をシミュレートする際には、奥行き方向の温度分布を無視して、2次元平面内で温度分布を計算する。これにより、ゲームへの影響は最小限に抑えつつ、計算の負荷を軽減させることができる。また、物理現象を単純化してシミュレートするので、プレイヤーにも分かりやすくすることができる。
【0012】
図1は、実施の形態に係るゲーム装置10の構成を示す。ゲーム装置10は、コントローラ20、入力受付部30、制御部40、オブジェクトデータベース60、分布データ保持部62、画面生成部66、及び表示装置68を備える。これらの構成は、ハードウエアコンポーネントでいえば、任意のコンピュータのCPU、メモリ、メモリにロードされたプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者には理解されるところである。
【0013】
入力受付部30は、プレイヤーが操作するコントローラ20から入力される制御信号を受け付ける。制御部40は、入力受付部30が受け付けたプレイヤーからの操作入力に基づいて、ゲームフィールド内でのオブジェクトの挙動を制御し、ゲームを進行させる。画面生成部66は、制御部40により制御されるゲームの画面を生成し、表示装置68に表示させる。
【0014】
図2は、表示装置に表示される画面の例を示す。画面中央付近には、ゴミ箱の形状をしたゲームフィールド91が設けられており、このゲームフィールド91の内部にオブジェクト93が積み上げられていく。画面右上には、次に落下するオブジェクトが順次運搬されてくる様子を表示するためのベルトコンベア92が表示されている。画面右下には、次に落下するオブジェクト93の情報を表示するオブジェクト情報欄97が設けられている。画面左上には、落下する順番になったオブジェクトを落下させずにいったん待避させるための待避場所94が設けられている。画面左下には、ゲームフィールド91の内部の温度を示す温度欄95と、酸素量を示す酸素欄96が設けられている。また、画面下方には、ゲームフィールド91の下方に存在するオブジェクトをゲームフィールド91の外部に取り出す機能を果たすキャラクタ98が表示されている。
【0015】
オブジェクトデータベース60は、ゲームフィールド内に配置されているオブジェクトのデータを格納する。図3は、オブジェクトデータベース60の内部データの例を示す。オブジェクトデータベース60には、オブジェクトID欄70、位置欄71、方向欄72、形状欄73、ステータス欄74が設けられている。オブジェクトID欄70は、ゲームフィールド91の内部に積み上げられたオブジェクトのIDを格納する。位置欄71は、オブジェクトの重心の位置を示す3次元座標を格納する。方向欄72は、オブジェクトが積み上がった状態におけるオブジェクトの方向を示す3次元ベクトルを格納する。形状欄73は、オブジェクトの形状を示すデータを格納する。前述したように、本実施の形態のゲームでは、オブジェクト同士の衝突によりオブジェクトを変形させるが、オブジェクトの形状を忠実にモデリングして物理計算により変形させると計算の負荷が非常に高くなるので、オブジェクトの形状データを変形の度合いに応じて予め数種類用意しておき、衝突により段階的に変形させる。ステータス欄74は、オブジェクトの状態を示すデータを格納する。オブジェクトのステータスとして、例えば、「通常」、「燃焼中」、「分解中」、「落下中」などがある。オブジェクトデータベース60は、その他、各オブジェクトの形状データ及び物理量、オブジェクトに作用する力のデータ、オブジェクトの物理量や力の調整量などのデータを格納する。
【0016】
分布データ保持部62は、ゲームフィールド内の物理量の分布などをシミュレートするためのデータを格納する。図4は、分布データ保持部62の内部データの例を示す。分布データ保持部62には、メッシュID欄80、位置欄81、温度欄82、及びステータス欄83が設けられている。メッシュID欄80は、3次元のゲームフィールド91を2次元平面に投影した2次元のゲームフィールドを、メッシュ状に分割したときのメッシュのIDを格納する。ここでは、図2に示した表示画面において表示される側面に平行な2次元平面に、ゲームフィールド91を投影したものを、2次元のゲームフィールドとする。すなわち、表示画面上で見えているものが、2次元のゲームフィールドである。位置欄81は、メッシュの位置を示す2次元座標を格納する。前述したように、本実施の形態では、温度分布をシミュレートする際に、3次元のゲームフィールド91のうち、奥行き方向の分布を無視するので、奥行き方向の座標は省略する。したがって、奥行き方向に重なっているオブジェクトは、同じ位置にあるものとみなされる。温度欄82は、メッシュの温度を格納する。メッシュの温度は、後述するように、温度分布シミュレータ44によりシミュレートされ更新される。ステータス欄83は、メッシュの状態を示すデータを格納する。メッシュのステータスとして、例えば、「燃焼中」、「水没」、「菌糸生長」などがある。
【0017】
ゲーム制御部41は、ゲームプログラムを実行し、ゲームの進行を制御する。具体的な動作については後述する。
【0018】
物理計算エンジン42は、オブジェクトの移動、回転、衝突などの運動を、運動方程式にしたがって計算する。物理計算エンジン42は、例えば、ベルトコンベア92に吊り下げられているオブジェクトや、ゲームフィールド91内を落下しているオブジェクトや、ゲームフィールド91内に積み上げられているオブジェクトについて、オブジェクトの重量、摩擦係数などの物理量をオブジェクトデータベース60から読み出し、重力や空気による抗力などを作用させて、オブジェクトの挙動を物理計算により算出する。
【0019】
物理量調整部43は、オブジェクトに対して、現実の物理法則とは異なる運動をさせる場合に、所望の運動が実現されるように、オブジェクトデータベース60を参照して、オブジェクトの物理量やオブジェクトに作用する力を調整する。具体的には、ゲーム制御部41が、オブジェクトをゲームフィールド91上方から落下させるときに、落下速度を所定の速度まで減少させ、かつ、一定の速度で落下させるために、オブジェクトに対して仮想的な鉛直上向きの力を作用させる。これは、オブジェクトに対して通常よりも大きな浮力又は抗力を作用させていると考えることもできるし、重力を通常よりも減少させていると考えることもできる。このとき、物理量調整部43は、空気による抗力を調整するために、オブジェクトの重量を所定値に変更する。また、物理量調整部43は、オブジェクトの浮力を調整するために、オブジェクトの体積を所定値に変更してもよい。
【0020】
従来のゲームでは、ゲームフィールド91内をオブジェクトが落下するときには、オブジェクトの静止画像を下方へ移動させて落下する様子を表現していたが、本実施の形態の技術によれば、オブジェクトが落下している間も物理計算によりオブジェクトの挙動を計算しているので、オブジェクトを左右に移動させたときに、オブジェクトが左右に揺れたり、他のオブジェクトに衝突して他のオブジェクトを移動させたり、オブジェクトを変形させたりすることができる。これにより、より現実感の高いオブジェクトの挙動を再現することができ、ゲームの娯楽性を向上させることができる。
【0021】
温度分布シミュレータ44は、ゲームフィールド91内の温度分布をシミュレートする。本実施の形態のゲームでは、ゲームフィールド91内に堆積したオブジェクトを燃焼させるための着火アイテムが用意されており、着火アイテムがゲームフィールド91内に配置されると、周囲のオブジェクトが所定の燃焼条件を満たしたときにオブジェクトが燃焼する。温度分布シミュレータ44は、着火アイテムやオブジェクトの燃焼によるゲームフィールド91内の温度分布の変化をシミュレートする。
【0022】
温度分布シミュレータ44は、オブジェクトデータベース60を参照して、着火アイテム又は燃焼しているオブジェクトなどの熱源の3次元位置を取得し、その位置に該当するメッシュの位置を特定する。温度分布シミュレータ44は、熱源があるメッシュの温度を所定の温度に設定する。
【0023】
温度分布シミュレータ44は、所定のタイミング、例えば、画面生成部66が画面を生成する間隔で、各メッシュの温度を算出して、分布データ保持部62のデータを更新する。温度分布シミュレータ44は、オブジェクトや空気などの温度伝播速度を設定して、物理計算により温度分布を計算してもよいし、より単純に、周囲のメッシュの温度の統計量などを計算して、当該メッシュの次のタイミングにおける温度としてもよい。
【0024】
温度分布シミュレータ44は、各メッシュの温度を算出すると、ゲームフィールド91内に配置されている各オブジェクトが燃焼するか否かを判定する。温度分布シミュレータ44は、オブジェクトデータベース60から各オブジェクトの3次元位置を取得し、その位置に該当するメッシュを特定する。温度分布シミュレータ44は、オブジェクトデータベース60から各オブジェクトの発火温度を取得し、該当するメッシュの温度が発火温度を超えているか否かを確認する。メッシュの温度が発火温度を超えており、かつ、ゲームフィールド91内の酸素量が所定値以上であれば、温度分布シミュレータ44は、そのオブジェクトが燃焼を開始したと判定し、オブジェクトデータベース60及び分布データ保持部62のステータスを更新する。オブジェクトの一部が燃焼を開始したときにオブジェクトの他の部分も燃焼を開始したとみなしてもよいし、メッシュごとにオブジェクトが燃焼するか否かを判定してもよい。
【0025】
ゲームフィールド91は3次元空間であるから、奥行き方向にも温度は分布しており、厳密には奥行き方向への温度の伝播も考慮しなければならないが、ゲーム画面においては、主に、ゲームフィールドを側方から見た状態が表示されるので、奥行き方向の温度分布はあまり重要ではない。ゲームフィールド91において、オブジェクトは、既に積み上げられているオブジェクトの上に積み上げられるだけでなく、オブジェクトの手前や奥に落ちることもあるので、奥行き方向に複数のオブジェクトが重なって配置されることもあるが、画面上では手前のオブジェクトしか表示されない。そのため、奥行き方向に温度を分布させても、いたずらに複雑になるばかりで、プレイヤーには分かりづらい。したがって、温度分布シミュレータ44は、奥行き方向は同じ温度であると仮定して、2次元平面で温度分布をシミュレートする。これにより、計算負荷を軽減させることができるとともに、プレイヤーに分かりやすく物理現象を表現することができる。
【0026】
菌糸生長シミュレータ45は、ゲームフィールド91内における菌糸の生長をシミュレートする。本実施の形態では、オブジェクトを分解する特殊な菌糸がゲームフィールド91内で生長し、菌糸に所定時間触れていたオブジェクトは分解されてゲームフィールド91から消去されるという設定になっている。ゲーム制御部41は、ゲームフィールド91内に堆積したオブジェクトを分解するための菌糸の胞子と、バケツなどの容器に入れられた水を所定の頻度でアイテムとしてゲームフィールド91に投下する。胞子アイテムがゲームフィールド91内に配置され、かつ、胞子が水に浸されていると、胞子から菌糸が生長し、菌糸によりオブジェクトが分解される。
【0027】
菌糸生長シミュレータ45は、所定のタイミング、例えば、画面生成部66が画面を生成する間隔で、菌糸の生長をメッシュごとに算出する。菌糸生長シミュレータ45は、ゲームフィールド91内の温度、酸素量、菌糸の生長速度などのパラメータに基づいて菌糸の生長を計算してもよいし、より単純に、例えば、胞子が水に浸されていれば、所定数フレームにつき1メッシュずつランダムな方向へ菌糸を生長させてもよい。
【0028】
菌糸生長シミュレータ45も、温度分布シミュレータ44と同様に、奥行き方向への菌糸の生長を無視し、2次元平面内で菌糸の生長をシミュレートする。これにより、ゲームへの影響を最小限に抑えつつ、計算負荷を軽減させることができる。
【0029】
つづいて、図面を参照しながら、ゲームの動作の詳細について説明する。図5は、表示装置に表示された画面の例を示す。ゲーム制御部41は、予め形状データが用意されているオブジェクトの中かから、所定の時間間隔でゲームフィールド91に落下させるオブジェクトを選択し、選択したオブジェクトを順次ベルトコンベア92に吊り下げ、ベルトコンベア92によりゲームフィールド91へ運搬される様子を表示する。ゲームフィールド91に落下する順番が到来したオブジェクト99は、ゲームフィールド91上方中央の位置に配置され、いったん停止される。オブジェクト99を落下させるタイミングが到来すると、ゲーム制御部41は、物理量調整部43に物理量を調整させた上で、物理計算エンジン42によりオブジェクト99が落下する様子を計算させ、画面生成部66に画面を生成させる。
【0030】
ゲーム制御部41は、オブジェクト99の落下中に、プレイヤーからの指示を受け付け、オブジェクト99を左右に移動させたり、回転させたりする。このときのオブジェクトの運動も、物理計算エンジン42により計算される。オブジェクト99が他のオブジェクトや、ゲームフィールド91の壁又は底面に接触して、所定の時間以上移動しない状態が続けば、ゲーム制御部41は、その位置にオブジェクトを固定させ、オブジェクトデータベース60に登録する。
【0031】
図6は、表示装置に表示された画面の例を示す。プレイヤーは、重いオブジェクト99を変形しやすいオブジェクト93に衝突させることで、オブジェクト93を変形させることができる。ゲーム制御部41は、オブジェクト99とオブジェクト93の衝突のエネルギーを算出し、エネルギーに応じてオブジェクトの変形の度合いを決定する。ゲーム制御部41は、決定された変形の度合いにしたがって、新たな形状データをオブジェクトデータベース60から読み出して、オブジェクトの画像を更新する。また、オブジェクトデータベース60の該当するオブジェクトの形状欄73と位置欄71を更新する。
【0032】
図7は、表示装置に表示された画面の例を示す。ゲームフィールド91内に着火アイテム87が配置されると、温度分布シミュレータ44は、ゲームフィールド91内の温度分布のシミュレートを開始する。各オブジェクトには発火温度が設定されており、オブジェクトが配置されているメッシュの温度が発火温度を超えると、図8に示すように、ゲーム制御部41はオブジェクト93を燃焼させ、オブジェクトデータベース60及び分布データ保持部62のステータス欄を更新する。ゲーム制御部41は、分布データ保持部62に格納されている温度をオブジェクトに適用する際に、表示画面に鉛直な方向は全て同じ温度であるとする。ゲーム制御部41は、ゲームフィールド91内のオブジェクトが燃焼しているとき、所定の速度でゲームフィールド91内の酸素量を減少させる。ゲーム制御部41は、ゲームフィールド91内の酸素量が所定値を下回ると、オブジェクトの燃焼を停止させる。
【0033】
図9は、表示装置に表示された画面の例を示す。ゲームフィールド91内に水が溜められた状態で胞子アイテム88が配置されると、菌糸生長シミュレータ45は、菌糸の生長のシミュレートを開始する。各オブジェクトには菌糸により分解される条件が設定されている。図10に示すように、オブジェクトが配置されているメッシュに菌糸89が生長し、所定の条件が満たされると、ゲーム制御部41はオブジェクトを分解し、ゲームフィールド91から消滅させる。
【0034】
ゲーム制御部41は、変形させたり消滅させてはいけない重要なアイテムを所定の頻度でゲームフィールド91内に落下させる。このアイテムが、ゲームフィールド91の下方で所定時間以上変形されずに残っていた場合、ゲーム制御部41は、キャラクタ98がそのアイテムをゲームフィールド91から持ち去る様子を表示し、オブジェクトデータベース60から削除する。このアイテムが、燃焼又は分解により消失すると、ゲーム制御部41は、ペナルティとして、同時に複数のオブジェクトをゲームフィールド91へ落下させる。
【0035】
以上、本発明を実施例をもとに説明した。この実施例は例示であり、その各構成要素や各処理プロセスの組合せにいろいろな変形が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【図面の簡単な説明】
【0036】
【図1】実施の形態に係るゲーム装置の構成を示す図である。
【図2】表示装置に表示される画面の例を示す図である。
【図3】オブジェクトデータベースの内部データの例を示す図である。
【図4】分布データ保持部の内部データの例を示す図である。
【図5】表示装置に表示された画面の例を示す図である。
【図6】表示装置に表示された画面の例を示す図である。
【図7】表示装置に表示された画面の例を示す図である。
【図8】表示装置に表示された画面の例を示す図である。
【図9】表示装置に表示された画面の例を示す図である。
【図10】表示装置に表示された画面の例を示す図である。
【符号の説明】
【0037】
10 ゲーム装置、20 コントローラ、30 入力受付部、40 制御部、41 ゲーム制御部、42 物理計算エンジン、43 物理量調整部、44 温度分布シミュレータ、45 菌糸生長シミュレータ、60 オブジェクトデータベース、62 分布データ保持部。

【特許請求の範囲】
【請求項1】
ゲームフィールドに設けられた3次元空間内にオブジェクトを配置する機能と、
前記3次元空間を投影した2次元平面において物理現象をシミュレートする機能と、
シミュレートされた物理現象を前記3次元空間内のオブジェクトに適用する機能と、
をコンピュータに実現させることを特徴とするゲーム制御プログラム。
【請求項2】
前記3次元空間を表示する画面を生成する機能を更にコンピュータに実現させ、
前記シミュレートする機能は、前記画面に平行な平面に前記3次元空間を投影した2次元平面において物理現象をシミュレートすることを特徴とする請求項1に記載のゲーム制御プログラム。
【請求項3】
前記シミュレートする機能は、前記2次元平面をメッシュ状に分割したそれぞれのメッシュの物理量を保持する保持部から、所定のタイミングで、あるメッシュとその周囲のメッシュの物理量を読み出し、周囲のメッシュの物理量をもとに当該メッシュの物理量を算出して前記保持部に格納することを特徴とする請求項1又は2に記載のゲーム制御プログラム。
【請求項4】
ゲームフィールドに設けられた3次元空間内にオブジェクトを配置する配置部と、
前記3次元空間を投影した2次元平面において物理現象をシミュレートするシミュレータと、
シミュレートされた物理現象を前記3次元空間内のオブジェクトに適用する制御部と、
を備えることを特徴とするゲーム装置。
【請求項5】
ゲームフィールドに設けられた3次元空間内にオブジェクトを配置するステップと、
前記3次元空間を投影した2次元平面において物理現象をシミュレートするステップと、
シミュレートされた物理現象を前記3次元空間内のオブジェクトに適用するステップと、
を備えることを特徴とするゲーム制御方法。
【請求項6】
請求項1から3のいずれかに記載のゲーム制御プログラムを記録したコンピュータ読み取り可能な記録媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2010−88693(P2010−88693A)
【公開日】平成22年4月22日(2010.4.22)
【国際特許分類】
【出願番号】特願2008−262293(P2008−262293)
【出願日】平成20年10月8日(2008.10.8)
【出願人】(395015319)株式会社ソニー・コンピュータエンタテインメント (871)
【Fターム(参考)】