説明

プログラム、情報記憶媒体、及び、ゲーム機

【課題】オブジェクト空間におけるオブジェクトの重さを利用したオブジェクトを配置するゲームにおいて、処理負荷を軽減させたゲーム演算を行うことができるプログラム、情報記憶媒体、ゲーム機を提供する。
【解決手段】複数のオブジェクトそれぞれの重さに基づいて、軸に対して垂直な所与の面における単位面あたりの値を求め、求めた値に基づいて、複数のオブジェクトからなるオブジェクト群の傾きを算出する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラム、情報記憶媒体、及び、ゲーム機に関する。
【背景技術】
【0002】
従来から、仮想的な3次元空間であるオブジェクト空間(ゲーム空間)において所与の視点(仮想カメラ)から見える画像を生成するゲーム機(画像生成装置)が知られており、いわゆる仮想現実を体験できるものとして人気が高い。
【0003】
このようなゲーム機では、オブジェクト空間に存在するオブジェクトの重さを用いた演算処理を行う場合がある。
【0004】
例えば、仮想重力を設定し、仮想重力の方向に基づいて、可動ブロックを移動させてゲーム演算を行うものがある(特許文献1)。
【0005】
また、プレーヤからの入力情報に基づいて、地面の傾斜を制御して、物理的にキャラクタが地面を転がるまたは滑るようにキャラクタを制御するものがある(特許文献2)。
【0006】
しかし、オブジェクト空間におけるオブジェクトの重さを利用した演算処理は、処理負荷が高いという問題が生じていた。
【特許文献1】特開2003−260269号公報
【特許文献2】特開2007−75467号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
本発明は、従来の課題に鑑みたものであり、その目的は、オブジェクト空間におけるオブジェクトの重さを利用したオブジェクトを配置するゲームにおいて、演算処理の処理負荷を軽減させることができるプログラム、情報記憶媒体、ゲーム機を提供することにある。
【課題を解決するための手段】
【0008】
(1)本発明は、
オブジェクト空間に、予め所与の軸を設定して、オブジェクトを配置するゲームのためのプログラムであって、
プレーヤからの入力情報に基づき、オブジェクトを配置する処理を行うオブジェクト空間配置部と、
複数のオブジェクトからなるオブジェクト群の前記軸に対する傾きを、当該複数のオブジェクトそれぞれの重さに基づいて算出する傾き算出部と、
算出された傾きの大きさが所定値を超えたか否かに基づいて、ゲーム判定を行うゲーム演算部として、コンピュータを機能させることを特徴とするプログラムに関する。
【0009】
本発明は、上記プログラムを記憶した情報記憶媒体、上記各部として構成するゲーム機に関係する。
【0010】
本発明によれば、従来よりも処理負荷を軽減させて、オブジェクトの重さに基づいて演算処理を行うことができる。
【0011】
(2)また、本発明のプログラム、情報記憶媒体、ゲーム機は、
算出された傾きの方向を表示する表示制御部として、コンピュータを更に機能させるようにしてもよい。
【0012】
本発明によれば、傾き方向が表示されるので、プレーヤはどの方向にオブジェクトを配置すればよいのか瞬時に判断することができる。
【0013】
(3)また、本発明のプログラム、情報記憶媒体、ゲーム機は、
所与の条件に基づいて、前記オブジェクトを配置させることが可能か否かを判断する配置判断部と、
判断結果を表示させる制御を行う表示制御部として、コンピュータを更に機能させ、
前記オブジェクト空間配置部が、
配置させることが可能と判断された前記オブジェクトを、配置する処理を行うようにしてもよい。
【0014】
本発明によれば、プレーヤは、オブジェクトを配置させることが可能か否かを瞬時に把握することができる。
【発明を実施するための最良の形態】
【0015】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【0016】
1.構成
図1に本実施形態のゲーム機(画像生成装置)の機能ブロック図の例を示す。なお本実施形態のゲーム機は図1の構成要素(各部)の一部を省略した構成としてもよい。
【0017】
操作部160は、プレーヤがオブジェクト(椅子、机、キャラクタ、移動体等)の操作データを入力するためのものであり、その機能は、レバー、ボタン、ステアリング、マイク、タッチパネル型ディスプレイ、或いは筺体などにより実現できる。
【0018】
また、操作部160は、加速度センサや撮像部、或いは角速度を検出するジャイロセンサを備えた入力機器によってプレーヤからの入力データ(操作データ)を入力できるものでもよい。例えば、入力装置は、プレーヤが把持して動かすものであってもよいし、プレーヤが身につけて動かすものであってもよい。また、入力装置には、プレーヤが把持する刀型コントローラや銃型コントローラ、あるいはプレーヤが身につける(プレーヤが手に装着する)グローブ型コントローラなど実際の道具を模して作られたコントローラも含まれる。また入力装置には、入力装置と一体化されているゲーム装置、携帯型ゲーム装置、携帯電話なども含まれる。
【0019】
例えば、入力機器に備えられた加速度センサは、3軸(X軸、Y軸、Z軸)の加速度を検出する。すなわち、加速度センサは、上下方向、左右方向、及び、前後方向の加速度を検出することができる。なお、加速度センサは、5msec毎に加速度を検出している。また、加速度センサは、1軸、2軸、6軸の加速度を検出するものであってもよい。また、入力機器に備えられた加速度センサによって検出された加速度(例えば、重力加速度)に基づいて、入力機器の傾き(傾きの方向、大きさ)を求めてもよい。なお、加速度センサから検出された加速度は、入力機器の通信部によってゲーム装置(本体装置)に送信される。
【0020】
また、入力機器に備えられた撮像部は、赤外線フィルタ、レンズ、撮像素子(イメージセンサ)、画像処理回路を含む。赤外線フィルタは、入力装置の前方に配置され、表示部190に関連付けられて配置されている光源から入射する光から赤外線のみを通過させる。レンズは、赤外線フィルタを透過した赤外線を集光して撮像素子へ出射する。撮像素子は、例えば、CMOSセンサやCCDのような固体撮像素子であり、レンズが集光した赤外線を撮像して撮像画像を生成する。撮像素子で生成された撮像画像は、画像処理回路で処理される。例えば、撮像素子から得られた撮像画像を処理して高輝度部分を検知し、撮像画像における光源の位置情報(特定位置)を検出する。なお、光源が複数存在する場合には、撮像画像上の位置情報を複数検出する。また、複数の光源を利用して撮像画像上の位置情報を複数検出し、検出された位置情報の基準軸からの回転角度(傾き)を求め、光源に対する入力機器自体の傾きを求めてもよい。なお、検出した撮像画像上の位置情報は、通信部によって、本体装置に送信される。
【0021】
記憶部170は、処理部100や通信部196などのワーク領域となるもので、その機能はRAM(VRAM)などにより実現できる。なお、オブジェクトデータ記憶部176は、オブジェクトのオブジェクトデータが記憶される。
【0022】
情報記憶媒体180(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(CD、DVD)、光磁気ディスク(MO)、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ(ROM)などにより実現できる。処理部100は、情報記憶媒体180に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。情報記憶媒体180には、本実施形態の各部としてコンピュータを機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)を記憶することができる。
【0023】
表示部190は、本実施形態により生成された画像を出力するものであり、その機能は、CRT、LCD、タッチパネル型ディスプレイ、或いはHMD(ヘッドマウントディスプレイ)などにより実現できる。音出力部192は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
【0024】
通信部196は外部(例えば他のゲーム機)との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ASICなどのハードウェアや、プログラムなどにより実現できる。
【0025】
なお、サーバが有する情報記憶媒体や記憶部に記憶されている本実施形態の各部としてコンピュータを機能させるためのプログラムやデータを、ネットワークを介して受信し、受信したプログラムやデータを情報記憶媒体180や記憶部170に記憶してもよい。このようにプログラムやデータを受信してゲーム機を機能させる場合も本発明の範囲内に含む。
【0026】
処理部100(プロセッサ)は、操作部160からの入力情報(操作データ)やプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの処理を行う。ここでゲーム処理としては、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、キャラクタやマップなどのオブジェクトを配置する処理、オブジェクトを表示する処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などがある。
【0027】
この処理部100は記憶部170内の主記憶部172をワーク領域として各種処理を行う。処理部100の機能は各種プロセッサ(CPU、DSP等)、ASIC(ゲートアレイ等)などのハードウェアや、プログラムにより実現できる。
【0028】
処理部100は、オブジェクト空間配置部110、移動・動作処理部111、傾き算出部112、仮想カメラ制御部114、ゲーム演算部116、表示制御部118、配置判断部119、描画部120、音生成部130を含む。なおこれらの一部を省略する構成としてもよい。
【0029】
オブジェクト空間配置部110は、オブジェクト(机、椅子、等の積み上げ対象のオブジェクト)、フィールドオブジェクト(板、盤、床オブジェクト)の他に、キャラクタ、建物、球場、車、樹木、柱、壁、マップ(地形)などの表示物を表す各種オブジェクト(ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブで構成されるオブジェクト)をオブジェクト空間に配置設定する処理を行う。例えば、ワールド座標系でのオブジェクトの位置や回転角度(向き、方向と同義であり、例えば、ワールド座標系でのX、Y、Z軸の各軸の正方向からみて時計回りに回る場合における回転角度)を決定し、その位置(X、Y、Z)にその回転角度(X、Y、Z軸回りでの回転角度)でオブジェクトを配置する。
【0030】
本実施形態のオブジェクト空間配置部110は、オブジェクト空間に、プレーヤからの入力情報に基づいてオブジェクトを配置する処理を行う。
【0031】
オブジェクト空間配置部110は、例えば、第1のオブジェクト(例えば、フィールドオブジェクト)を予めオブジェクト空間に配置し、プレーヤからの入力情報に基づいて第2のオブジェクト(例えば、椅子オブジェクト)を配置するようにしてもよい。また、オブジェクト空間配置部110は、配置判断部119における判断結果に基づき配置可能と判断されたオブジェクトを配置する処理を行うようにしてもよい。
【0032】
移動・動作処理部111は、オブジェクトの移動・動作演算を行う。すなわち操作部160によりプレーヤが入力した入力情報(操作データ)や、プログラム(移動・動作アルゴリズム)や、各種データ(モーションデータ)などに基づいて、オブジェクトをオブジェクト空間内で移動させたり、オブジェクトを動作(モーション、アニメーション)させたりする処理を行う。具体的には、オブジェクトの移動情報(位置、回転角度、速度、或いは加速度)や動作情報(オブジェクトを構成する各パーツの位置、或いは回転角度)を、1フレーム(1/60秒)毎に順次求める処理を行う。なおフレームは、オブジェクトの移動・動作処理や画像生成処理を行う時間の単位である。
【0033】
傾き算出部112は、複数のオブジェクトからなるオブジェクト群(複数のオブジェクトからなるオブジェクト全体)の軸に対する傾きを、複数のオブジェクトそれぞれの重さに基づいて算出する。具体的には、傾き算出部112は、複数のオブジェクトそれぞれの軸に垂直な所定軸からの高さに基づいて、前記傾きを算出する。また、傾き算出部112は、複数のオブジェクトそれぞれの重さに基づいて、軸に対して垂直な所与の面における単位面あたりの値を求め、求めた値に基づいて、傾きを算出する。
【0034】
仮想カメラ制御部114は、オブジェクト空間内の所与(任意)の視点から見える画像を生成するための仮想カメラ(視点)の制御処理を行う。具体的には、ワールド座標系における仮想カメラの位置(X、Y、Z)又は回転角度(例えば、X、Y、Z軸の各軸の正方向からみて時計回りに回る場合における回転角度)を制御する処理を行う。要するに、視点位置、視線方向、画角を制御する処理を行う。
【0035】
つまり、本実施形態の仮想カメラ制御部114は、プレーヤからの入力情報に基づき、軸回りに仮想カメラを移動させると共に、仮想カメラの向きを制御するようにしてもよい。
【0036】
また、仮想カメラ制御部114は、仮想カメラを、予め決められた回転角度で回転させてもよい。この場合には、仮想カメラの位置又は回転角度を特定するための仮想カメラデータに基づいて仮想カメラを制御する。なお、仮想カメラ(視点)が複数存在する場合には、それぞれの仮想カメラについて上記の制御処理が行われる。
【0037】
ゲーム演算部116は、種々のゲーム演算処理を行う。例えば、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、ゲームステージ毎のクリア条件を満たすか否かを判定する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理、最終ステージをクリアした場合にはエンディングを進行させる処理などがある。特に、本実施形態のゲーム演算部116は、算出された傾きの大きさが所定値を超えたか否かに基づいて、ゲーム判定を行う。
【0038】
表示制御部118は、算出された傾きの方向を表示する。また、オブジェクトの配置が可能であるか否かの判断結果を表示させる制御を行う。
【0039】
配置判断部119は、所与の条件に基づいて、オブジェクトを配置させることが可能か否かを判断する。
【0040】
描画部120は、処理部100で行われる種々の処理(ゲーム処理)の結果に基づいて描画処理を行い、これにより画像を生成し、表示部190に出力する。いわゆる3次元ゲーム画像を生成する場合には、まずオブジェクト(モデル)の各頂点の頂点データ(頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等)を含むオブジェクトデータ(モデルデータ)が入力され、入力されたオブジェクトデータに含まれる頂点データに基づいて、頂点処理(頂点シェーダによるシェーディング)が行われる。なお頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理(テッセレーション、曲面分割、ポリゴン分割)を行うようにしてもよい。
【0041】
頂点処理では、頂点処理プログラム(頂点シェーダプログラム、第1のシェーダプログラム)に従って、頂点の移動処理や、座標変換、例えばワールド座標変換、視野変換(カメラ座標変換)、クリッピング処理、透視変換(投影変換)、ビューポート変換等のジオメトリ処理が行われ、その処理結果に基づいて、オブジェクトを構成する頂点群について与えられた頂点データを変更(更新、調整)する。
【0042】
そして、頂点処理後の頂点データに基づいてラスタライズ(走査変換)が行われ、ポリゴン(プリミティブ)の面とピクセルとが対応づけられる。そしてラスタライズに続いて、画像を構成するピクセル(表示画面を構成するフラグメント)を描画するピクセル処理(ピクセルシェーダによるシェーディング、フラグメント処理)が行われる。ピクセル処理では、ピクセル処理プログラム(ピクセルシェーダプログラム、第2のシェーダプログラム)に従って、テクスチャの読出し(テクスチャマッピング)、色データの設定/変更、半透明合成、アンチエイリアス等の各種処理を行って、画像を構成するピクセルの最終的な描画色を決定し、透視変換されたオブジェクトの描画色を描画バッファ174(ピクセル単位で画像情報を記憶できるバッファ。VRAM、レンダリングターゲット)に出力(描画)する。すなわち、ピクセル処理では、画像情報(色、法線、輝度、α値等)をピクセル単位で設定あるいは変更するパーピクセル処理を行う。これにより、オブジェクト空間内において仮想カメラ(所与の視点)から見える画像が生成される。なお、仮想カメラ(視点)が複数存在する場合には、それぞれの仮想カメラから見える画像を分割画像として1画面に表示できるように画像を生成することができる。
【0043】
なお頂点処理やピクセル処理は、シェーディング言語によって記述されたシェーダプログラムによって、ポリゴン(プリミティブ)の描画処理をプログラム可能にするハードウェア、いわゆるプログラマブルシェーダ(頂点シェーダやピクセルシェーダ)により実現される。プログラマブルシェーダでは、頂点単位の処理やピクセル単位の処理がプログラム可能になることで描画処理内容の自由度が高く、従来のハードウェアによる固定的な描画処理に比べて表現力を大幅に向上させることができる。
【0044】
そして描画部120は、オブジェクトを描画する際に、ジオメトリ処理、テクスチャマッピング、隠面消去処理、αブレンディング等を行う。
【0045】
ジオメトリ処理では、オブジェクトに対して、座標変換、クリッピング処理、透視投影変換、或いは光源計算等の処理が行われる。そして、ジオメトリ処理後(透視投影変換後)のオブジェクトデータ(オブジェクトの頂点の位置座標、テクスチャ座標、色データ(輝度データ)、法線ベクトル、或いはα値等)は、オブジェクトデータ記憶部176に保存される。
【0046】
テクスチャマッピングは、記憶部170のテクスチャ記憶部178に記憶されるテクスチャ(テクセル値)をオブジェクトにマッピングするための処理である。具体的には、オブジェクトの頂点に設定(付与)されるテクスチャ座標等を用いて記憶部170のテクスチャ記憶部178からテクスチャ(色(RGB)、α値などの表面プロパティ)を読み出す。そして、2次元の画像であるテクスチャをオブジェクトにマッピングする。この場合に、ピクセルとテクセルとを対応づける処理や、テクセルの補間としてバイリニア補間などを行う。
【0047】
隠面消去処理としては、描画ピクセルのZ値(奥行き情報)が格納されるZバッファ179(奥行きバッファ)を用いたZバッファ法(奥行き比較法、Zテスト)による隠面消去処理を行うことができる。すなわちオブジェクトのプリミティブに対応する描画ピクセルを描画する際に、Zバッファ179に格納されるZ値を参照する。そして参照されたZバッファ179のZ値と、プリミティブの描画ピクセルでのZ値とを比較し、描画ピクセルでのZ値が、仮想カメラから見て手前側となるZ値(例えば小さなZ値)である場合には、その描画ピクセルの描画処理を行うとともにZバッファ179のZ値を新たなZ値に更新する。
【0048】
αブレンディング(α合成)は、α値(A値)に基づく半透明合成処理(通常αブレンディング、加算αブレンディング又は減算αブレンディング等)のことである。
【0049】
なお、α値は、各ピクセル(テクセル、ドット)に関連づけて記憶できる情報であり、例えば色情報以外のプラスアルファの情報である。α値は、マスク情報、半透明度(透明度、不透明度と等価)、バンプ情報などとして使用できる。
【0050】
音生成部130は、処理部100で行われる種々の処理の結果に基づいて音処理を行い、BGM、効果音、又は音声などのゲーム音を生成し、音出力部192に出力する。
【0051】
なお、本実施形態のゲーム機は、1人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、1つの端末を用いて生成してもよいし、ネットワーク(伝送ライン、通信回線)などで接続された複数の端末(ゲーム機、携帯電話)を用いて分散処理を行ってもよい。
【0052】
2.本実施形態の手法
図2は、本実施形態のゲーム画面の一例を示す。本実施形態は、オブジェクト空間の中空に予めフィールドF(板、盤、床オブジェクト、第1のオブジェクト)を設定し、バランスの中心となる軸P(支軸)に対して重さのバランスを保ちながら、フィールドFから所定の高さ(例えば10マス)まで、椅子、机、ブロック等のオブジェクトOB(第2のオブジェクト)を次々と積み上げるゲームである。以下、具体的な処理内容について説明する。
【0053】
(1)オブジェクトを配置する手法
本実施形態では、複数のゲームステージが用意されている。各ステージの初期状態では、1又は複数のフィールドFが水平に設定され、フィールドFに対して垂直な軸Pが設定されている。
【0054】
そして、本実施形態では、プレーヤからの入力情報に基づき、オブジェクトOBの向き・位置を決定し、決定された向き・位置にオブジェクトOBを配置する処理を行っている。
【0055】
また、本実施形態のフィールドFの上面は、縦横のマス目からなり、オブジェクトOBは、複数のマスからなる3次元の立体(例えば、立方体)で構成される。そして、オブジェクトOBは、フィールドFや他のオブジェクトOB´のマス目に合うように配置される。
【0056】
また、本実施形態では、大きさや重さが異なる複数のオブジェクトOBを用意している。オブジェクトOBには、予め基準となる重さが設定されており、1マス(単位体積)あたりの重さが決められている。例えば、椅子オブジェクトOB1に対して、1マスあたりの重さを5に設定し、椅子オブジェクトOB1が縦2マス・横2マス・高さ2マスの立方体で構成されている場合には、椅子オブジェクトOB1の重さは30になる。
【0057】
オブジェクトOBの配布順は、コンピュータのアルゴリズムに基づきオブジェクトの重さの変化に規則性をもたせて決定される。例えば、重さ100のオブジェクトを第N番目に配布した場合には、第(N+1)番目に配布するオブジェクトの重さは40、第(N+2)番目に配布するオブジェクトの重さは20、第(N+3)番目に配布するオブジェクトは40とし、第(N+1)〜第(N+3)の各オブジェクトの重さが第Nのオブジェクトの重さよりも軽く、その合計の重さが、第N番目に配布した重さと同等になるように配布している。このようにすれば、プレーヤはバランスの調整を行いながら、オブジェクトを配置させることができるからである。
【0058】
また、本実施形態は、所定条件に基づいて、オブジェクトOBが配置可能か否かを判断している。例えば、他のオブジェクトOB´やフィールドFの上に、オブジェクトを配置する際には、オブジェクトOBの少なくとも1/3以上の面積が、他のオブジェクトOB´やフィールドFに接していることを条件としている。
【0059】
例えば、図3(A)に示すように、オブジェクトOBがフィールドFに接している面積が1/2である場合には、オブジェクトOBは配置可能と判断される。しかし、図3(B)に示すように、オブジェクトOBがフィールドFに接している面積が1/4である場合には、オブジェクトOBは配置不可能と判断される。
【0060】
なお、本実施形態ではオブジェクトが配置可能な場合には、オブジェクトOBを青色で表示させるようにし、配置不可能な場合には、オブジェクトOBを赤色で表示させるようにしている。プレーヤが、オブジェクトOBが配置可能か否かを瞬時に判断できるようにするためである。
【0061】
また、本実施形態では、図2に示すように、現在配布されているのオブジェクト(例えば、椅子オブジェクト)の次に配布されるオブジェクト(例えば、机オブジェクト)を表示するようにしている。
【0062】
(2)傾きベクトルの算出手法
本実施形態では、フィールドFの重さ、及び、オブジェクトOBの重さに基づいて、傾きベクトルVを算出している。なお、傾きベクトルVは、フィールドF及びオブジェクトOB全体の軸Pに対する傾きの大きさ(傾き度合い)、傾きの方向を示す。
【0063】
本実施形態では、傾きベクトルVを求めるために、図4に示すように、フィールドFの高さの位置に、面M(軸Pに垂直な面)を仮想的に設定し、面Mと軸Pとの交点が、面Mの中心点Oになるように、面Mを設定している。そして、本実施形態では、面Mにおける傾きベクトルVを求めている。なお、本実施形態では、中心点Oを原点とし、軸Pをy軸、面Mをxz平面に設定した3次元の座標系を設定している。
【0064】
つまり、本実施形態では、フィールドF及び、オブジェクトOBの重さに基づいて、x軸プラス方向のベクトルv1a、x軸マイナス方向のベクトルv1b、z軸プラス方向のベクトルv2a、z軸マイナス方向のベクトルv2bを求め、最終的に面M上の傾きベクトルVを求めている。
【0065】
例えば、フィールドFの重さが軸Pに対して均一である場合に、図4に示すように、重さのあるオブジェクトOBが配置されると、中心点OからオブジェクトOBの位置Qの方向が、傾きベクトルVの方向になる。なお、傾きベクトルVの方向は、中心点Oに対して点Qと点対称となる点Q´を示すものであってもよい。
【0066】
次に、具体的に、傾きベクトルVの算出手法について説明する。
【0067】
まず、本実施形態では、高さ係数K1を用いて面Mにおけるセル単位の重さ(1マス目×1マス目単位の重さ、単位面あたりの重さ)を求める。例えば、高さ係数K1は、面Mからのマス数(高さ)に比例する値である。本実施形態では、面Mからのマス数(高さ)の値に1.0を乗じた値を、高さ係数K1の値として設定している。この乗じる数を調節することで、高さによる傾きへの影響度を調整してもよい。
【0068】
つまり、面Mの各セルの重さは、下式(1)によって求める。
【0069】
セルの重さ=(第1の高さのセルの重さ×第1の高さの高さ係数K1)+・・・+(第Nの高さのセルの重さ×第Nの高さの高さ係数K1)・・・(1)
図5は、高さ係数K1を用いて面Mにおける各セルの重さを示した図である。
【0070】
図5の例によれば、x軸マイナス方向1マス目、z軸プラス方向1マス目のセルの重さは20であり、x軸プラス方向1マス目、z軸プラス方向1マス目のセルの重さは20であり、x軸プラス方向3マス目、z軸プラス方向1マス目のセルの重さは60である。
【0071】
次に、本実施形態では、x軸、z軸それぞれの軸に対する左側の傾き割合Lp、右側の傾き割合Rpの算出する。なお、左側は軸プラス方向から見て左であり、右側は、軸プラス方向から見て右であることを示す。
【0072】
まず、z軸に対する左側の傾き割合Lp、z軸に対する右側の傾き割合Rpを求める手法について図6を用いて説明する。
【0073】
本実施形態では、高さ係数K1を用いて、面Mの各セルの重さ計算した後に、水平係数K2を用いて、z軸に対する左側の全体重さLw(全体重さ左)、z軸に対する左側の中央部の重さLwa(中央部重さ左)、z軸に対する左側の全体重さLwから、z軸に対する左側の中央部の重さLwaを除いた重さLwb(中央部ヌキ重さ左)を求める。
【0074】
また、同様に、水平係数K2を用いて、z軸に対する右側の全体重さRw(全体重さ右)、z軸に対する右側の中央部の重さRwa(中央部重さ右)、z軸に対する右側の全体重さRwから、z軸に対する右側の中央部の重さRwaを除いた重さRwb(中央部ヌキ重さ右)を求める。なお、本実施形態では、z軸を中心に左右1マス目を、中央部に設定している。
【0075】
ここで、水平係数K2は、z軸からのセル数に比例する値である。本実施形態では、z軸からのセル数の値に0.2を乗じた値を水平係数K2の値として設定している。
【0076】
Lw、Lwa、Lwbは、下式(2)〜(4)によって求めることができる。
【0077】
Lw=z軸左側1マス目の重さ合計×z軸左側1マス目の水平係数+・・・+z軸左側Nマス目の重さ合計×z軸左側Nマス目の水平係数・・・(2)
Lwa=z軸左側1マス目の重さ合計×z軸左側1マス目の水平係数・・・(3)
Lwb=Lw−Lwa・・・(4)
同様に、Rw、Rwa、Rwbも、同様に下式(5)〜(7)によって求めることができる。
【0078】
Rw=z軸右側1マス目の重さ合計×z軸右側1マス目の水平係数+・・・+z軸右側Nマス目の重さ合計×z軸右側のNマス目の水平係数・・・(5)
Rwa=z軸右側1マス目の重さ合計×z軸右側1マス目の水平係数・・・(6)
Rwb=Rw−Rwa・・・(7)
具体的に、Lw、Lwa、Lwb、Rw、Rwa、Rwbの各重さを求める例を、図6を用いて説明する。
【0079】
図6に示す各セルに記載された数値は、高さ係数適用後のセルの重さ合計値を示す(空セルは0を示す)。
【0080】
例えば、Lw=(20+10)×0.2+60×0.6+60×0.8=90、Lwa=(20+10)×0.2=6、Lwb=Lw−Lwa=84として算出される。また、Rw=(20+10)×0.2+60×0.6+40×0.8=74、Rwa=(20+10)×0.2=6、Rwb=Rw−Rwa=68として算出される。
【0081】
そして、本実施形態では、Lw、Lwa、Lwb、Rw、Rwa、Rwbを用いて、中央部分を除く全体の重さに対する中央部の重さの割合を用いて、軸Pに対する傾き方向へ中央部の重さの一部が加算されるように傾き補正を行っている。このようにすれば、結果的に中央部の重さは、傾きに与える影響が強くなるので、中央部にだけバランスよく簡単に積み上げるという事態を防止することができるからである。
【0082】
具体的に、傾き補正について説明する。
【0083】
まず、中央部の重さの合計Wa(中央部重さ合計)を下式(8)、中央部分を除く全体の重さの合計値Wb(中央部ヌキ重さ合計)を、下式(9)によって求める。
【0084】
Wa=Lwa+Rwa・・・(8)
Wb=Lwb+Rwb・・・(9)
そして、中央部分を除く全体の重さに対する中央部の重さの割合Wpを下式(10)によって求める。
【0085】
Wp=Wa/Wb・・・(10)
そして、傾き補正倍率Kp´を用いて、下式(11)によって、中央部傾き補正係数Kpを求める。本実施形態では、傾き補正倍率Kp´は1.5に設定している。
【0086】
Kp=Wp×Kp´・・・(11)
なお、Kpは、最大値(0.3)以下(Kp≦0.3)になるように調整している。
【0087】
そして、重さを求めるための加算用の中央部の重さD(加算用中央部重さ)を、下式(12)によって求める。
【0088】
D=Wa×Kp・・・(12)
また、左側加算用の中央部の残り部分の重さLd(加算用中央部残り重さ左)、右側加算用の中央部の残り部分の重さRd(加算用中央部残り重さ右)を、下式(13)、(14)によって求める。
【0089】
Ld=Lwb×(1−Kp)・・・(13)
Rd=Rwb×(1−Kp)・・・(14)
次に、左側の重さ合計値Le(傾き強化前重さ合計値左)と、右側の重さ合計値Re(傾き強化前重さ合計値右)とを求める。本実施形態では、左右の全体重さLw、Rwを比較して、重いほうにDを加算してLe、Reを求める。
【0090】
例えば、左右の全体重さを比較して左側が重いと判定されると、左側の重さ合計値Leは、下式(15)によって求めることができる。
【0091】
Le=Lwb+D+Ld+Lf・・・(15)
また、右側の重さ合計値Reは、下式(16)によって求めることができる。
【0092】
Re=Rwb+Rd+Rf・・・(16)
なお、左側のフィールドFの重さLf(床重さ左)を加算対象とし、右側のフィールドFの重さRf(床重さ右)をReの加算対象としているのは、ゲーム開始直後の安定感や不安定感を意図的に生じさせてゲームの多様性を高めるためである。例えば、軸Pに対して重さが均一なフィールドFを設定した場合には、ゲーム開始直後の状態はバランスが安定する。一方、軸Pに対して重さが不均一なフィールドFを設定した場合には、ゲーム開始直後からフィールドFが傾いている状況が生じることになる。つまり、軸Pに対するフィールドFの形状やフィールドFの重さに応じて、ゲーム開始直後のフィールドFの傾きを変化させることができる。
【0093】
また、本実施形態では、このようにフィールドFの重さを用いて傾きベクトルVの算出しているが、面MはフィールドFの高さを基準に設定しているので、高さ係数K1に関わらず、予め設定されたフィールドFの重さを用いて演算を行っている。なお、複数のフィールドを設定した場合であって、各フィールドの高さが異なる場合には、低い方のフィールドの高さを面Mの基準の高さに設定する。かかる場合には、基準となるフィールド以外のフィールドの重さは、予め設定されたフィールドの重さに、面Mからの高さに応じた高さ係数K1を乗じてもよい。
【0094】
そして、最終的な左側の重さ合計値Lc(計算用重さ合計値左)、最終的な右側の重さ合計値Rc(計算用重さ合計値右)を求める。本実施形態では、Lw、Rwを比較し、重い方の重さ合計値に、傾き調整値Jを乗算する。調整値Jは、傾き度合いを強化するものである。
【0095】
例えば、Lw>Rwである場合には、Lc=Le×J、Rc=Reとなる。
【0096】
そして、求めたLc、Rcを用いて、z軸より左側の傾き割合Lp(傾き割合左)は下式(17)によって求まり、z軸より右側の傾き割合Rp(傾き割合右)は、下式(18)によって求まる。
【0097】
Lp=Lc/Rc・・・(17)
Rp=Rc/Lc・・・(18)
以上のように、z軸に対する左右の傾き割合Lp、Rpを求めることができる。
【0098】
また、本実施形態では同様に、x軸に対する左右の傾き割合Lp、Rpを求めている。かかる場合には、x軸を中心に左右1マス目を、中央部に設定している。また、z軸に対する左右の傾き割合Lp、Rpを求める場合と同様に、x軸からのセル数に比例して水平係数K3を設定している。つまりx軸からのセル数の値に0.2を乗じた値を水平係数K3の値として設定している。
【0099】
そして、最終的に傾きベクトルVを次のようにして求めている。
【0100】
まず、図7に示すように、ベクトルv1aの方向を、中心点Oからx軸プラス方向に設定し、ベクトルv1bの方向を、中心点Oからx軸マイナス方向に設定し、ベクトルv2aの方向を、中心点Oからz軸プラス方向に設定し、ベクトルv2bの方向を、中心点Oからz軸マイナス方向に設定する。
【0101】
そして、ベクトルv1aの値(大きさ)にz軸より右側傾き割合Rpを設定し、ベクトルv1bの値(大きさ)にz軸より左側傾き割合Lpを設定し、ベクトルv2aの値(大きさ)にx軸より右側傾き割合Rpを設定し、ベクトルv2bの値(大きさ)にx軸より左側傾き割合Lpを設定する。
【0102】
そして、ベクトルv1a、v1bの大きさを比較し、大きい方のベクトルから1を引いた大きさのベクトルをV1とする。また、ベクトルv2a、v2bの大きさを比較し、大きい方のベクトルから1を引いた大きさのベクトルをV2とする。
【0103】
そして、ベクトルV1、V2から傾きベクトルVの大きさ・方向を求める。例えば、傾きベクトルVの大きさは、ベクトルV1、V2を合成することによって求めている。具体的には、ベクトルV1、V2をそれぞれ2乗して得た値を加算して、平方することによって求めている。
【0104】
なお、本実施形態では、後述するゲーム演算処理のために、傾きベクトルVの値(大きさ)に所定値(例えば、100)を乗じている。
【0105】
本実施形態では、以上のように、フィールドFやオブジェクトOBの傾きを示す傾きベクトルVを求めているので、物理法則に基づくシミュレーション処理よりも処理負荷を軽減させることができる。
【0106】
(3)傾きベクトルを用いたゲーム演算処理
本実施形態では、算出された傾きベクトルVを用いて次のようにゲーム演算処理を行っている。
【0107】
まず、本実施形態では、図2に示すように、傾きベクトルVの方向を矢印Aで表示している。このようにすれば、プレーヤは、フィールドF及びオブジェクトOBが現在どの方向に傾こうとしているのかを瞬時に検知できる。なお、傾きベクトルVに基づいて、軸Pを支軸にフィールドFやオブジェクトOBを傾かせる画像を生成してもよい。なお、本実施形態では、傾きベクトルVの方向と逆方向を、矢印で表示するようにしてもよい。
【0108】
また、本実施形態では、傾きベクトルVの大きさに基づいて、フィールドFやオブジェクトOBの軸Pに対するバランス状態を示すモード表示を行っている。このようにすれば、プレーヤが瞬時にフィールドFやオブジェクトOBのバランス状態を認識することができる。
【0109】
例えば、傾きベクトルVの大きさが0〜5の範囲である場合には、レベル1のモードと判定し、レベル1の場合には矢印Aを表示しないように制御している。つまり、傾きベクトルVの大きさが0(零)、あるいは0と近似とみなせる数値(1〜5などの小さい数値)である場合には、バランスが安定していることをプレーヤが容易に認識できるように、矢印Aを表示しないようにしている。
【0110】
そして、傾きベクトルVの大きさが6〜17の範囲である場合には、レベル2のモードとして判定する。レベル2のモードでは、青色の矢印Aを表示する。また、傾きベクトルVの大きさが18〜23の範囲である場合には、レベル3のモードとして判定する。レベル3のモードの場合には、オレンジ色の矢印Aを表示する。そして、傾きベクトルVの大きさが23〜28の範囲である場合には、レベル4のモードとして判定する。レベル4のモードでは、オレンジ色の矢印Aを点滅させる表示制御を行う。また、傾きベクトルVの大きさが28以上である場合には、レベル5のモード、つまり危険モードと判定する。危険モードでは赤色の矢印Aを表示する。
【0111】
特に、本実施形態では、危険モードになってから所定期間(例えば、20秒間)経過した場合には、ゲームオーバーと判定している。例えば、危険モードになってから15秒経過した場合には、崩壊寸前とみなして、赤色の矢印Aを点滅させるようにしている。また、危険モードになってから所定期間内に、オブジェクトOBが適切に配置されレベル4以下のモードになったと判定された場合には、危険モードが解除される。
【0112】
また、本実施形態では、フィールドFから積み上げたオブジェクトOBの高さを求め、高さが所定値(例えば10マス)を超えたか否かを判定している。そして、フィールドFから積み上げたオブジェクトOBの高さが所定値を超えたと判定された場合には、モードがレベル2以下であることを条件に、ゲームステージをクリアする処理を行っている。なお、レベルに関係なくフィールドFから所定値(例えば10マス)まで積むことをクリア条件としてもよい。
【0113】
(4)仮想カメラの制御
本実施形態では、プレーヤからの入力情報に基づいて、自由に仮想カメラCの位置・向きを制御することができる。例えば、図8に示すように、プレーヤからの入力情報に基づき、軸Pを中心に(軸P回りに)仮想カメラCを回転移動させるようにしてもよい。また、仮想カメラCが、操作対象のオブジェクトOBの位置やフィールドFと軸Pの交点を向くように仮想カメラCの向きを制御するようにしてもよい。このようにすれば、適切な位置に基づいて仮想カメラから見える画像が生成されるので、プレーヤは配置位置、向きを適切に判断してオブジェクトOBを配置させることができる。
【0114】
3.フローチャート
次に、本実施形態の詳細な処理例について図9(A)(B)のフローチャートを用いて説明する。
【0115】
ゲームメインの処理について、図9(A)を用いて説明する。まずステージが開始されると(ステップS111)、メッセージイベントが有るか否かを判定し(ステップS112)、メッセージイベントが有ると判定された場合には(ステップS112のYes)、メッセージイベントを実行する(ステップS113)。
【0116】
そして、クリア条件を表示する処理を行い(ステップS114)、ゲームを開始する処理を行う(ステップS115)。
【0117】
次に、オブジェクトを配布する処理を行い(ステップS116)、キー入力の処理を行う(ステップS117)。なお、キー入力の処理については、具体的には、図9(B)を用いて後述する。
【0118】
そして、一定時間内にオブジェクトが配置されたか否かを判定し(ステップS118)、一定時間内にオブジェクトが配置されたと判定された場合には(ステップS118のYes)、傾きベクトルを計算する(ステップS119)。一方、一定時間内にオブジェクトが配置されていないと判定された場合には(ステップS118のNo)、危険モードを開始する処理を行う(ステップS121)。
【0119】
そして、傾きベクトルの大きさが所定値以上か否かを判断し(ステップS120)、傾きベクトルの大きさが所定値以上であると判断されると(ステップS120のYes)、危険モードを開始する処理を行う(ステップS121)。一方、傾きベクトルの大きさが所定値以上でないと判断されると(ステップS120のNo)、次のステップに進む。
【0120】
ステップS121の処理後に、一定時間内に傾きが回復したか否かを判定する処理を行う(ステップS122)。一定時間内に傾きが回復した場合には(ステップS122のYes)、危険モードを解除し(ステップS123)、次のステップに進む。
【0121】
ステップS120の処理において、傾きベクトルの大きさが所定値以上でないと判断された場合(ステップS120のNo)、あるいは、危険モードを解除する処理が行われると(ステップS123)、クリア条件を満たすか否かを判定する(ステップS124)。
【0122】
クリア条件を満たさないと判定されると(ステップS124のNo)、ステップS116に戻る。一方、クリア条件を満たすと判定されると(ステップS124)、ステージクリアの処理を行う(ステップS125)。そして、セレクトモードがONに設定されているか否かを判定し(ステップS126)、セレクトモードがONに設定されている場合には(ステップS126のYes)、ステージを選択する処理(ステップS129)に進み、選択したステージからゲームが開始される。一方、セレクトモードがONに設定されていない場合には(ステップS126のNo)、クリアしたステージが最終ステージか否かを判断し(ステップS127)、最終ステージであると判定されると(ステップS127のYes)、エンディングの処理を行い(ステップS128)処理を終了する。一方、最終ステージでないと判定されると(ステップS127のNo)、次のステージに進む。
【0123】
ステップS122において、一定時間内に傾きが回復しないと判断された場合には(ステップS122のNo)、ゲームオーバーの処理を行う(ステップS130)。そして、リトライするか否かを判断し(ステップS131)、リトライすると判断された場合には(ステップS131のYes)、同じステージの処理に進む。一方、リトライしないと判断された場合には(ステップS131のNo)、セレクトモードがONに設定されているか否かを判断し(ステップS132)、セレクトモードがONに設定されている場合には(ステップS132のYes)、ステージを選択する処理(ステップS129)に進み、選択したステージからゲームが開始される。一方、セレクトモードがONに設定されていない場合には(ステップS132のNo)、メニュー(タイトル表示)を行い、処理を終了する。
【0124】
次に、ゲームメインの処理における、キー入力の処理(ステップ117)について、より具体的に図9(B)を用いて説明する。
【0125】
キー入力があると判断されると(ステップS210)、入力データ(入力信号)に基づき次の処理を行う。
【0126】
まず、入力データInA(例えばスタートボタン)を受け付けた場合には、ポーズメニューを表示し(ステップS211)、入力持ちの処理に進む(ステップS212)、キャンセルが入力されると、処理が終了する。
【0127】
そして、「やり直し」が選択されると再確認処理を行い(ステップS213)、やり直す場合には(ステップS213のYes)、ゲームメイン処理の図9(A)に示すゲームメイン処理のAに戻る。一方、やり直さない場合には(ステップS213のNo)、キー入力処理のBに戻る。また、「タイトルへ」が選択されると、再確認処理を行い(ステップS214)、「タイトルに」戻る場合には(ステップS214のYes)、メニュー(タイトル表示)の処理を行う(ステップS215)。一方、タイトルに戻らない場合には(ステップS214のNo)、キー入力処理のBに戻る。
【0128】
次に、入力データInBを受け付けた場合には、次の処理を行う。まず、既にストックがあるか否かを判断する(ステップS216)、既にオブジェクトのストックがあると判断されると(ステップS216のYes)、オブジェクトのストックを入れ替える処理を行う(ステップS218)。一方、オブジェクトのストックがないと判断されると(ステップS216のNo)、オブジェクトをストックする処理を行う(ステップS217)。
【0129】
また、入力データInCを受け付けた場合には、オブジェクトの向きを変更する処理を行う(ステップS219)。
【0130】
また、入力データInD(十字キーによる上下左右いずれかの方向の入力データInDa〜InDd)を受け付けた場合には、オブジェクトの配置位置を、十字キーの方向に対応づけて変更する処理を行う(ステップS220)。
【0131】
そして、ステップS218、ステップS219、ステップ220の処理後、オブジェクトが配置可能か否かを判定し(ステップS221)、配置可能であると判断された場合には(ステップS221のYes)、青のボックスでオブジェクトを表示する処理を行う(ステップS223)、一方、配置不能であると判断された場合には(ステップS221のNo)、赤のボックスでオブジェクトを表示する処理を行う(ステップS222)。
【0132】
また、入力データInEを受け付けた場合には、オブジェクトが配置可能か否かを判断し(ステップS224)、オブジェクトが配置可能であると判断されると(ステップS224のYes)、オブジェクトを配置する処理を行う(ステップS226)、一方、オブジェクトが配置可能でないと判断されると(ステップS224のNo)、ブザーを鳴らす処理を行う(ステップS225)。以上で処理が終了し、ゲームメインの処理に戻る。
【0133】
4.応用例
(1)クリア条件・配置条件
本実施形態では、所定の範囲内にオブジェクトを隙間無く埋めることをクリア条件の少なくとも1つの条件としてもよいし、オブジェクト空間に目標点を設けて、目標点に向けてオブジェクトを積み上げることを、クリア条件の少なくとも1つの条件としてもよい。また、指定された個数のオブジェクトを積むことを、クリア条件の少なくとも1つの条件としてもよい。また、特定のオブジェクトの上には、常にオブジェクトを配置することができないように制御してもよい。
【0134】
(2)コントローラの傾き
加速度センサや、ジャイロセンサを備えるコントローラを用いて入力情報を取得する場合には、検出したコントローラの傾きベクトルCvを用いて、傾きベクトルVを求めてもよい。例えば、上述した軸Pと面Mとからなる3次元の座標軸と、コントローラの3次元の座標軸を対応付けて、傾きベクトルVに、コントローラの傾きベクトルCvを加算するようにする。また、危険モードの状態にあるときに限って、コントローラの傾きベクトルCvを、傾きベクトルVに加算するようにしてもよい。このようにすれば、プレーヤは、実際にコントローラを用いてバランス感覚を得るという面白味を体感することができる。また、瞬時に重さのバランスを図りたいときに、オブジェクトを配置するためのキー入力を行わずに、コントローラの傾きのみで、バランスを保つことができる。
【0135】
(3)フィールドの形状について
本実施形態では、フィールドの形状は種々の形状とすることができる。例えば、フィールドは、単位面積(マス)によって構成される三角形、四角形等の多角形の形状や、星型、円形、環状等、種々の形状とすることができる。また、フィールドの重心に軸Pを設定してもよいし、フィールドの重心以外の点に、軸Pを設定してもよい。例えば、軸Pに対して垂直な平面上に、軸Pと交差しないフィールドを設定してもよい。
【0136】
(4)その他
本実施形態では、3次元における積み上げゲームの例を説明したが、2次元における積み上げゲームにも応用してもよい。また、オブジェクトの基準となる重さは時間経過に応じて変化させるようにしてもよい。
【図面の簡単な説明】
【0137】
【図1】本実施形態のゲーム機の機能ブロック図の例。
【図2】本実施形態の表示画面の一例。
【図3】図3(A)(B)は、本実施形態のオブジェクトの配置に関する説明図。
【図4】図4は、本実施形態の傾きベクトルの説明図。
【図5】図5は、本実施形態の傾きベクトルの算出手法の説明図。
【図6】図6は、本実施形態の傾きベクトルの算出手法の説明図。
【図7】図7は、本実施形態の傾きベクトルの算出手法の説明図。
【図8】本実施形態の仮想カメラの制御の説明図。
【図9(A)】本実施形態の処理のフローチャート。
【図9(B)】本実施形態の処理のフローチャート。
【符号の説明】
【0138】
F フィールド、
OB オブジェクト、
V 傾きベクトル、
100 処理部、
110 オブジェクト空間配置部、
111 移動・動作処理部、
112 傾き算出部、
114 仮想カメラ制御部、
116 ゲーム演算部、
118 表示制御部、
119 配置判断部、
120 描画部、130 音生成部、
160 操作部、
170 記憶部、172 主記憶部、
174 描画バッファ、
176 オブジェクトデータ記憶部、
178 テクスチャ記憶部、
179 zバッファ、
180 情報記憶媒体、190 表示部、192 音出力部、196 通信部

【特許請求の範囲】
【請求項1】
オブジェクト空間に、予め所与の軸を設定して、オブジェクトを配置するゲームのためのプログラムであって、
プレーヤからの入力情報に基づき、オブジェクトを配置する処理を行うオブジェクト空間配置部と、
複数のオブジェクトからなるオブジェクト群の前記軸に対する傾きを、当該複数のオブジェクトそれぞれの重さに基づいて算出する傾き算出部と、
算出された傾きの大きさが所定値を超えたか否かに基づいて、ゲーム判定を行うゲーム演算部として、コンピュータを機能させることを特徴とするプログラム。
【請求項2】
請求項1において、
算出された傾きの方向を表示する表示制御部として、コンピュータを更に機能させることを特徴とするプログラム。
【請求項3】
請求項1又は2において、
所与の条件に基づいて、前記オブジェクトを配置させることが可能か否かを判断する配置判断部と、
判断結果を表示させる制御を行う表示制御部として、コンピュータを更に機能させ、
前記オブジェクト空間配置部が、
配置させることが可能と判断された前記オブジェクトを、配置する処理を行うことを特徴とするプログラム。
【請求項4】
コンピュータ読み取り可能な情報記憶媒体であって、請求項1〜3のいずれかのプログラムを記憶したことを特徴とする情報記憶媒体。
【請求項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(A)】
image rotate

【図9(B)】
image rotate


【公開番号】特開2009−201808(P2009−201808A)
【公開日】平成21年9月10日(2009.9.10)
【国際特許分類】
【出願番号】特願2008−48291(P2008−48291)
【出願日】平成20年2月28日(2008.2.28)
【出願人】(000134855)株式会社バンダイナムコゲームス (1,157)
【Fターム(参考)】