説明

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

【課題】娯楽性の高いゲーム制御技術を提供する。
【解決手段】ゲーム装置10は、ごみとして掃除機により吸引すべきオブジェクトのデータを格納したオブジェクト管理テーブル60を参照して、ゲームフィールドに前記オブジェクトと前記掃除機を配置したゲーム画面を生成する画面生成部66と、ユーザの指示入力に応じて前記掃除機を移動させる掃除機制御部41と、ユーザから前記掃除機による吸引を指示されると、掃除機のヘッドの位置から所定の範囲に前記掃除機による吸引力を作用させ、前記オブジェクトごとに、オブジェクトを移動させるオブジェクト制御部43と、所定の条件に基づいて、掃除機のヘッドの近傍に存在するオブジェクトが、掃除機のヘッドに吸引されるか否かを判定する判定部44と、を備える。画面生成部66は、掃除機のヘッドに吸引されると判定されたオブジェクトを、以降、ゲームフィールドに表示されないようにする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ゲーム制御技術に関し、とくに、ゲームフィールドに配置されたオブジェクトを消去させるゲームを制御するゲーム制御プログラム、ゲーム装置、及びゲーム制御方法に関する。
【背景技術】
【0002】
ゲームフィールドにおいて複数のオブジェクトを落下させ、所定の条件を満たすようにオブジェクトを並べて消去させる、パズルゲームが人気を博している。
【発明の概要】
【発明が解決しようとする課題】
【0003】
本発明者らは、より幅広い層のユーザが気軽に楽しむことが可能なゲームを実現するために、より簡易な操作でオブジェクトを消去させるインタフェースを用いたゲームを想到した。
【0004】
本発明はこうした状況に鑑みてなされたものであり、その目的は、より娯楽性の高いゲーム制御技術を提供することにある。
【課題を解決するための手段】
【0005】
本発明のある態様は、ゲーム制御プログラムに関する。このゲーム制御プログラムは、ごみとして掃除機により吸引すべきオブジェクトのデータを格納したオブジェクト管理テーブルを参照して、ゲームフィールドに前記オブジェクトと前記掃除機を配置したゲーム画面を生成する機能と、ユーザの指示入力に応じて前記掃除機を移動させる機能と、ユーザから前記掃除機による吸引を指示されると、掃除機のヘッドの位置から所定の範囲に前記掃除機による吸引力を作用させる機能と、前記オブジェクトごとに、前記吸引力を作用させ、オブジェクトを移動させる機能と、所定の条件に基づいて、掃除機のヘッドの近傍に存在するオブジェクトが、掃除機のヘッドに吸引されるか否かを判定する機能と、掃除機のヘッドに吸引されると判定されたオブジェクトを、以降、ゲームフィールドに表示されないようにする機能と、をコンピュータに実現させることを特徴とする。
【0006】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【0007】
本発明によれば、より娯楽性の高いゲーム制御技術を提供することができる。
【図面の簡単な説明】
【0008】
【図1】実施の形態に係るゲーム装置の構成を示す図である。
【図2】表示装置に表示される画面の例を示す図である。
【図3】オブジェクト管理テーブルの内部データの例を示す図である。
【図4】オブジェクトデータベースの内部データの例を示す図である。
【図5】表示装置に表示された画面の例を示す図である。
【図6】表示装置に表示された画面の例を示す図である。
【図7】表示装置に表示された画面の例を示す図である。
【図8】表示装置に表示された画面の例を示す図である。
【図9】表示装置に表示された画面の例を示す図である。
【発明を実施するための形態】
【0009】
実施の形態に係るゲーム装置は、ゲームフィールドに配置された埃、空き缶、空き袋などのゴミを、掃除機を操作して吸引することにより、部屋を掃除するゲームを提供する。簡易な操作でゴミを吸引することができるユーザインタフェースを提供することにより、幅広い層のユーザが気軽に楽しめるゲームを実現する。
【0010】
図1は、実施の形態に係るゲーム装置10の構成を示す。ゲーム装置10は、コントローラ20、入力受付部30、制御部40、オブジェクト管理テーブル60、画面生成部66、及び表示装置68を備える。これらの構成は、ハードウエアコンポーネントでいえば、任意のコンピュータのCPU、メモリ、メモリにロードされたプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者には理解されるところである。
【0011】
入力受付部30は、プレイヤーが操作するコントローラ20から入力される制御信号を受け付ける。制御部40は、入力受付部30が受け付けたプレイヤーからの操作入力に基づいて、ゲームフィールド内のオブジェクトの配置などを制御し、ゲームを進行させる。画面生成部66は、制御部40により制御されるゲームの画面を生成し、表示装置68に表示させる。
【0012】
図2は、表示装置68に表示される画面の例を示す。表示画面70には、掃除機71と、ゴミとして掃除機71により吸引されるべきオブジェクトとして、紙くず75、空き缶76、及びペン77が表示されている。掃除機71は、ヘッド72と本体73とを含み、ヘッド72は本体73に対して回転可能に接続されている。本実施の形態では、より現実感のあるゲームを実現するために、画面生成部66は、仮想三次元空間内で掃除機71を把持した仮想ユーザの目の位置を視点位置とし、掃除機71のヘッド72のやや前方を見下ろす方向に視線方向を設定して、オブジェクトが配置されたゲームフィールドをレンダリングして表示画面70を生成する。表示画面70の左上には、掃除すべき部屋の平面図78が表示されており、掃除機71の現在位置と、吸引されずに残っているゴミの分布が表示されている。ユーザは、この平面図78により、部屋のどの部分を掃除すべきかを把握することができる。
【0013】
図3は、オブジェクト管理テーブル60の内部データの例を示す。オブジェクト管理テーブル60には、オブジェクトID欄80、位置欄81、方向欄82、種別欄83、及びステータス欄84が設けられている。オブジェクトID欄80は、オブジェクトのIDを格納する。位置欄81は、オブジェクトの位置を格納する。本実施の形態では、オブジェクトは全て床の上に配置されているので、高さ方向の座標は格納していないが、高さ方向の座標を更に格納してもよい。方向欄82は、オブジェクトの方向を格納する。種別欄83は、オブジェクトの種別を格納する。ステータス欄84は、オブジェクトのステータスを格納する。オブジェクトのステータスには、例えば、「静止中」、「移動中」、「吸引済」などがある。
【0014】
図4は、オブジェクトデータベース62の内部データの例を示す。オブジェクトデータベース62には、種別欄85、画像データ欄86、重量欄87、静止摩擦係数欄88、及び動摩擦係数欄89が設けられている。オブジェクトデータベース62は、オブジェクトの種別ごとに、オブジェクトの画像データと物理量を格納する。種別欄85は、オブジェクトの種別を格納する。画像データ欄86は、オブジェクトを表示する際に用いられる画像データのファイル名や格納場所などを格納する。重量欄87は、オブジェクトの重量を格納する。静止摩擦係数欄88は、オブジェクトの静止摩擦係数を格納する。動摩擦係数欄89は、オブジェクトの動摩擦係数を格納する。重量、静止摩擦係数、動摩擦係数は、掃除機の吸引力が作用したときのオブジェクトの移動を制御するために用いられるものであるが、必ずしも現実のオブジェクトの重量、静止摩擦係数、動摩擦係数を反映したものでなくてもよく、ゲームに関連する様々な事情を考慮して設定されてもよい。
【0015】
図1に戻り、制御部40の説明を続ける。掃除機制御部41は、掃除機のオンオフ及び移動を制御する。掃除機制御部41は、コントローラ20の所定のボタンが押下されている間、掃除機の吸引機能をオンにする。掃除機制御部41は、掃除機がオンになっている間、自動的に掃除機を前進させる。これにより、ユーザの操作を簡略化することができる。掃除機制御部41は、コントローラの所定のボタンが押下されていないときは、掃除機の吸引機能をオフにする。このとき、掃除機がオフになっていることをユーザが視覚的に把握できるように、掃除機を半透明にして表示するなど、掃除機がオンになっているときとは異なる表示態様にて表示してもよい。掃除機制御部41は、コントローラ20の十字キーの操作入力を受け付けて、掃除機のヘッドを前後左右に移動させる。掃除機制御部41は、掃除機のヘッドの移動に合わせて、表示画面を生成するための視点位置及び視線方向を変更し、画面生成部66へ通知する。
【0016】
ヘッド制御部42は、掃除機のヘッドの動きを制御する。前述したように、掃除機のヘッドは、本体に対して回転可能に接続されているので、ヘッドが障害物や壁などに接触したとき、ヘッド制御部42はヘッドを本体に対して回転させる。ヘッド制御部42は、オブジェクト管理テーブル60を参照して、ヘッドのバウンディングボックスと、障害物や壁などのオブジェクトとの間の接触判定を行い、接触していると判定された場合、接触位置に働く力の大きさからヘッドの回転モーメントを算出し、ヘッドを回転させる。ヘッドが壁に接触した場合、ヘッド制御部42は、ヘッドの本体とは逆側の辺が壁に接するようにヘッドを回転させる。このとき、掃除機制御部は、掃除機の移動速度から、ヘッドが接触している壁に平行な成分を算出し、ヘッドを壁に沿って移動させる。
【0017】
例えば、図5に示すように、掃除機71を壁74の近傍で移動させているときに、ヘッド72が壁74に接触すると、ヘッド制御部42は、図6に示すように、ヘッド72を本体73に対して回転させて、ヘッド72が壁74に沿って移動するようにする。これにより、現実の掃除機の挙動に類した挙動を実現することができるので、より現実感の高いゲームを提供することができる。
【0018】
オブジェクト制御部43は、オブジェクト管理テーブル60及びオブジェクトデータベース62を参照して、オブジェクトに掃除機による吸引力を作用させ、オブジェクトの移動を制御する。オブジェクト制御部43は、掃除機がオンになっている間、掃除機のヘッドの現在位置から所定の範囲内に存在するオブジェクトをオブジェクト管理テーブル60から抽出し、それらに対して掃除機による吸引力を作用させる。オブジェクト制御部43は、計算の負荷を軽減させるために、表示画面70に表示されているオブジェクトのみに吸引力を作用させてもよい。
【0019】
掃除機による吸引力は、ヘッドの位置を中心として、ヘッドからの距離が大きいほど小さくなるように作用させてもよい。例えば、距離又は距離の二乗に反比例する吸引力を作用させてもよい。また、掃除機による吸引力は、ヘッドの位置を中心として、全方向に同じ力を作用させてもよいし、方向に応じて異なる力を作用させてもよい。例えば、ヘッドの前方の所定の角度の範囲内のみに吸引力を作用させてもよいし、ヘッドの前方には強い吸引力を作用させ、側方や後方には弱い吸引力を作用させてもよい。
【0020】
オブジェクト制御部43は、オブジェクト管理テーブル60を参照して、ステータス欄が「静止中」のオブジェクトについては、オブジェクトの重量及び静止摩擦係数により算出される静止摩擦力と、掃除機による吸引力との大小を判定し、静止摩擦力よりも大きな吸引力が作用したときに、オブジェクトをヘッドの方向へ移動させる。このとき、オブジェクト制御部43は、オブジェクト管理テーブル60のステータス欄を「移動中」にするとともに、位置欄を更新する。オブジェクト制御部43は、オブジェクトの移動中にオブジェクトを回転させてもよい。この場合、オブジェクト制御部43は、オブジェクト管理テーブル60の方向欄を更新する。
【0021】
オブジェクト制御部43は、オブジェクト管理テーブル60のステータス欄が「移動中」のオブジェクトについては、オブジェクトの重量及び動摩擦係数により算出される動摩擦力と、掃除機による吸引力とから、オブジェクトに作用する力の大きさを算出し、オブジェクトの移動速度を算出して、オブジェクトを移動させる。オブジェクト制御部43は、オブジェクト管理テーブル60の位置欄を更新する。掃除機による吸引力の低下などにより、オブジェクトの移動速度がゼロになったときは、オブジェクト制御部43は、オブジェクト管理テーブル60のステータス欄を「静止中」にする。
【0022】
上記の例では、オブジェクトの現実の挙動をより忠実に再現するために、オブジェクトの重量、静止摩擦係数、及び動摩擦係数を参照してオブジェクトの挙動を算出したが、計算を簡略化するために、オブジェクト制御部43は、静止摩擦係数と動摩擦係数を区別せずに同じ値としてもよい。この場合、オブジェクト制御部43は、オブジェクトの重量及び摩擦係数により算出される摩擦力と、オブジェクトに作用する吸引力から、オブジェクトが移動するか否かを判定し、オブジェクトが移動し始めた後も、オブジェクトの重量及び摩擦係数により算出される摩擦力と、オブジェクトに作用する吸引力から、オブジェクトの移動速度を算出する。オブジェクト制御部43は、オブジェクトの重量のみを考慮してもよい。この場合、オブジェクト制御部43は、オブジェクトの重量とオブジェクトに作用する吸引力から、オブジェクトが移動するか否かを判定し、オブジェクトが移動し始めた後も、オブジェクトの重量とオブジェクトに作用する吸引力から、オブジェクトの移動速度を算出する。これにより、計算を簡略化することができるので、大量のオブジェクトを配置しても計算負荷の増大を抑えることができる。
【0023】
判定部44は、掃除機がオンになっているときに、ヘッドの近傍に存在するオブジェクトが掃除機のヘッドに吸引されるか否かを判定する。判定部44は、ヘッドの近傍に存在するオブジェクトのバウンディングボックスの長辺に平行な方向と、ヘッドの進行方向との間のなす角が所定の角度、例えば45度以下であるときに、オブジェクトがヘッドに吸引されると判定する。これにより、細長いごみがヘッドにはじかれて吸引できない様子を再現することができ、より現実感の高いゲームを提供することができる。判定部44は、一部のオブジェクトについてのみ吸引の可否を判定してもよい。この場合、オブジェクト管理テーブル60に、吸引の可否を判定するオブジェクトか否かを示すデータを格納しておいてもよい。
【0024】
図7において、ペン77のバウンディングボックスの長辺方向に平行な直線91と、ヘッドの進行方向に平行な直線90とのなす角は、45度よりも小さいので、ペン77はヘッドに吸引される。しかし、空き缶76のバウンディングボックスの長辺方向に平行な直線92と、ヘッドの進行方向に平行な直線90とのなす角は、45度よりも大きいので、空き缶76はヘッドに吸引されずにはじかれる。このとき、オブジェクト制御部43は、図8に示すように、空き缶76がヘッドに衝突し、はじかれて移動するように制御してもよい。オブジェクトデータベース62に、オブジェクトの反発係数を更に格納してもよく、その場合、オブジェクト制御部43は、空き缶76とヘッドの反発係数から衝突直後の空き缶76の挙動を算出してもよい。衝突後の空き缶76の挙動は、空き缶76の重量及び動摩擦係数を用いて、衝突前と同様に算出されてもよい。
【0025】
判定部44は、オブジェクトがヘッドに吸引されると判定した場合、オブジェクト管理テーブル60の吸引されたオブジェクトのステータス欄を「吸引済」に変更する。画面生成部66は、オブジェクト管理テーブル60を参照して、オブジェクトが配置されたゲームフィールドの画像を生成する際に、ステータス欄が「吸引済」であるオブジェクトはゲームフィールドに配置しない。これにより、掃除機のヘッドに吸引されたオブジェクトは、以降、画面に表示されなくなる。判定部44は、オブジェクト管理テーブル60の吸引されたオブジェクトのレコードを削除してもよい。
【0026】
オブジェクト制御部43は、オブジェクトがヘッドに吸引されなかった場合、掃除機がそれまでに吸引していたオブジェクトをヘッドから吐き出させてもよい。この場合、オブジェクト制御部43は、吐き出させるオブジェクトを決定し、そのオブジェクトのステータス欄を「静止中」又は「移動中」にし、位置欄にヘッドの近傍の位置を格納し、方向欄にランダムに設定した方向を格納する。
【0027】
また、オブジェクト制御部43は、オブジェクトがヘッドに吸引されなかった場合、図9に示すように、そのオブジェクトの内部に隠されていた別のオブジェクト79を外部に飛び出させてもよい。例えば、空き缶や空き袋から中身が飛び出す様子を再現してもよい。このような挙動を実現するために、オブジェクト管理テーブル60に、オブジェクトの内部に別のオブジェクトが隠されているか否かを示す情報と、隠されている別のオブジェクトの情報を格納しておく。オブジェクト制御部43は、オブジェクトがヘッドに衝突してはじかれたときに、オブジェクト管理テーブル60を参照して、そのオブジェクトの内部に別のオブジェクトが隠されているか否かを判定する。内部に別のオブジェクトが隠されていれば、オブジェクト制御部43は、隠されていた別のオブジェクトが外部に飛び出す(発生する)様子を表示させるとともに、飛び出した(発生した)オブジェクトのデータを新たにオブジェクト管理テーブル60に登録し、以降、吸引すべきオブジェクトとして画面に表示させる。
【0028】
オブジェクト制御部43は、オブジェクトがヘッドに吸引されるときに、そのオブジェクトの内部に隠されていた別のオブジェクトを外部に飛び出させてもよい。この場合も、オブジェクト制御部43は、飛び出したオブジェクトのデータを新たにオブジェクト管理テーブル60に登録し、以降、吸引すべきオブジェクトとして画面に表示させる。
【0029】
オブジェクト制御部43は、オブジェクトがヘッドに吸引される際に、オブジェクトの形状を変更してもよい。例えば、サイズが大きいオブジェクトがヘッドに吸引される際に、つぶれて小さくなる様子をブレンドシェイプアニメーションを用いて表現してもよい。
【0030】
以上、本発明を実施例をもとに説明した。この実施例は例示であり、その各構成要素や各処理プロセスの組合せにいろいろな変形が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【符号の説明】
【0031】
10 ゲーム装置、20 コントローラ、30 入力受付部、40 制御部、41 掃除機制御部、42 ヘッド制御部、43 オブジェクト制御部、44 判定部、60 オブジェクト管理テーブル、62 オブジェクトデータベース。

【特許請求の範囲】
【請求項1】
ごみとして掃除機により吸引すべきオブジェクトのデータを格納したオブジェクト管理テーブルを参照して、ゲームフィールドに前記オブジェクトと前記掃除機を配置したゲーム画面を生成する機能と、
ユーザの指示入力に応じて前記掃除機を移動させる機能と、
ユーザから前記掃除機による吸引を指示されると、掃除機のヘッドの位置から所定の範囲に前記掃除機による吸引力を作用させる機能と、
前記オブジェクトごとに、前記吸引力を作用させ、オブジェクトを移動させる機能と、
所定の条件に基づいて、掃除機のヘッドの近傍に存在するオブジェクトが、掃除機のヘッドに吸引されるか否かを判定する機能と、
掃除機のヘッドに吸引されると判定されたオブジェクトを、以降、ゲームフィールドに表示されないようにする機能と、
をコンピュータに実現させることを特徴とするゲーム制御プログラム。
【請求項2】
前記判定する機能は、前記オブジェクトの長辺方向と、前記掃除機のヘッドの進行方向との間のなす角度が、所定の角度よりも小さいときに、前記オブジェクトが掃除機のヘッドに吸引されると判定することを特徴とする請求項1に記載のゲーム制御プログラム。
【請求項3】
前記オブジェクトを移動させる機能は、前記判定する機能により、前記掃除機のヘッドに吸引されないと判定されたオブジェクトを、前記ヘッドに衝突してはじかれるように制御することを特徴とする請求項1又は2に記載のゲーム制御プログラム。
【請求項4】
オブジェクトが前記ヘッドに吸引されるとき、又は、オブジェクトが前記ヘッドに衝突してはじかれたときに、そのオブジェクトから別のオブジェクトが発生する様子を前記ゲーム画面に表示させるとともに、発生した別のオブジェクトのデータを前記オブジェクト管理テーブルに登録する機能を更にコンピュータに実現させることを特徴とする請求項1から3のいずれかに記載のゲーム制御プログラム。
【請求項5】
前記オブジェクト管理テーブルは、前記オブジェクトの重量、又は、前記オブジェクトの重量及び摩擦係数を表すデータを格納し、
前記オブジェクトを移動させる機能は、前記吸引力と、前記オブジェクトの重量、又は前記オブジェクトの重量及び摩擦係数とに基づいて、前記オブジェクトを移動させることを特徴とする請求項1から4のいずれかに記載のゲーム制御プログラム。
【請求項6】
ごみとして掃除機により吸引すべきオブジェクトのデータを格納したオブジェクト管理テーブルを参照して、ゲームフィールドに前記オブジェクトと前記掃除機を配置したゲーム画面を生成する画面生成部と、
ユーザの指示入力に応じて前記掃除機を移動させる掃除機制御部と、
ユーザから前記掃除機による吸引を指示されると、掃除機のヘッドの位置から所定の範囲に前記掃除機による吸引力を作用させ、前記オブジェクトごとに、オブジェクトを移動させるオブジェクト制御部と、
所定の条件に基づいて、掃除機のヘッドの近傍に存在するオブジェクトが、掃除機のヘッドに吸引されるか否かを判定する判定部と、を備え、
前記画面生成部は、掃除機のヘッドに吸引されると判定されたオブジェクトを、以降、ゲームフィールドに表示されないようにすることを特徴とするゲーム装置。
【請求項7】
ごみとして掃除機により吸引すべきオブジェクトのデータを格納したオブジェクト管理テーブルを参照して、ゲームフィールドに前記オブジェクトと前記掃除機を配置したゲーム画面を生成するステップと、
ユーザの指示入力に応じて前記掃除機を移動させるステップと、
ユーザから前記掃除機による吸引を指示されると、掃除機のヘッドの位置から所定の範囲に前記掃除機による吸引力を作用させるステップと、
前記オブジェクトごとに、前記吸引力を作用させ、オブジェクトを移動させるステップと、
所定の条件に基づいて、掃除機のヘッドの近傍に存在するオブジェクトが、掃除機のヘッドに吸引されるか否かを判定するステップと、
掃除機のヘッドに吸引されると判定されたオブジェクトを、以降、ゲームフィールドに表示されないようにするステップと、
を備えることを特徴とするゲーム制御方法。
【請求項8】
請求項1から5のいずれかに記載のゲーム制御プログラムを記録したコンピュータ読み取り可能な記録媒体。

【図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