本発明は上述した従来の状況に鑑みてなされたもので、その目的の1つは、モーターボート、ジェットスキーなどの対象体が航行する水面などの揺動するフィールドをよりリアルにかつ豊かに表現でき、船に関するゲームの興味感を高めることができる画像処理装置、画像処理方法、およびゲーム装置を提供することである。
また、本発明の第2の目的は、3次元仮想空間における水面と船との当り(接触)具合を的確に判定でき、これにより水面と船との高さ処理に誤りなきよう的確な画像処理を実施できるようにすることである。
更に、本発明の第3の目的は、航跡や水中に没している物体などを、演算量を押さえた状態で的確に表現できる画像処理法を提供することである。
更に、本発明の第4の目的は、プレーヤは自分が乗っている乗り物が水面を航行しているのだという仮想現実感を十分に体験できるゲーム装置を提供することである。
更に、本発明の第5の目的は、操舵とともに遊戯者の乗る揺動部材が体重移動で適切に傾動し、実際の乗り物の旋回に近い現実的な感覚を得ることができる乗り物遊戯機を提供することである。
上記の目的を達成するべく、本発明の画像処理装置は、3次元仮想空間のフィールド上で対象体を移動させる画像のデータを処理する画像処理装置において、前記フィールドの表面の同一位置の高さを時間経過とともに変更するフィールド揺動手段と、前記対象体を前記フィールド上に関与させながら移動させる対象体移動手段とを備える。
この画像処理装置の前記フィールド揺動手段は、前記フィールドの基準となる2次元平面上の、同一位置の高さの値を時間経過とともに変更し、前記対象体移動手段は、前記高さの値に応じて、前記対象体の位置する高さの値を演算するように構成することもできる。
また、この画像処理装置の前記フィールドは前記3次元仮想空間に設定した水面であり、前記対象体はその水面上を航行するジェットスキー、ボート等の船舶であってもよい。
また、この画像処理装置の前記フィールド揺動手段は、前記フィールドの基準となる2次元平面上に設定された波の高さの値を記憶する記憶手段と、前記波の高さの値に基づき、2次元的に波動する面の動きを前記波の高さの値に対するサイン波とコサイン波との合成によって演算する演算手段とを備えてもよい。
また、この画像処理装置の前記フィールド揺動手段は、前記3次元仮想空間の基準となる2次元面上の2次元位置に対応して予め設定された2次元分布のうねり高さデータを記憶している記憶手段と、前記対象体の現在の前記2次元位置を定期的に認識する認識手段と、その認識した2次元位置に対応した前記うねり高さデータを前記記憶手段から読み出す読出手段と、その読み出したうねり高さデータに基づいて前記2次元面上を2次元的に波動する水面のうねりデータを定期的に演算する演算手段と備えてもよい。
また、この画像処理装置の前記記憶手段は、前記基準面を分割した複数のブロックに前記うねり高さデータを割り当てており、その内の少なくとも2つのブロックの前記うねり高さデータの数値は異なるように設定してもよい。
また、この画像処理装置の前記記憶手段は、前記基準面を分割した複数のブロックに前記うねり高さデータを割り当てており、それぞれのブロックについて前記波の高さの値を設定してもよい。
また、この画像処理装置の前記記憶手段は、複数階層構造のメモリを有し、このメモリの階層毎に異なる種類の前記うねり高さデータを格納してもよい。
また、この画像処理装置の前記演算手段は、サイン波とコサイン波の合成波から成る周期的に変動するうねりデータを演算する手段であってもよい。
また、この画像処理装置の前記演算手段は、前記合成波を複数個のグリッド位置に相当するポリゴンのそれぞれについて演算する手段とすることもできる。
また、この画像処理装置の前記フィールド揺動手段は、前記複数個のポリゴンを1つのオブジェクトデータとして複数の表示エリアを設定する設定手段と、その複数の表示エリアの中の視野内に入る前記ポリゴンを表示ポリゴンとして特定する特定手段とを備えてもよい。
また、この画像処理装置の前記演算手段は、今回読み出された現在の対象体の2次元位置に相当する前記うねり高さデータが前回のうねり高さデータと所定値以上異なるか否かを判断する判断手段と、この判断手段により所定値以上異なると判断された場合、その前回と今回のうねり高さデータの差分に応じて前回のうねり高さデータを微増減させたうねり高さデータを作成する作成手段とを備えてもよい。
また、この画像処理装置は、前記対象体の前記フィールド上への関与を表す関与体のデータを作成する関与体作成手段を備えてもよい。
また、この画像処理装置の前記フィールドは前記3次元仮想空間に設定した水面であり、前記対象体はその水面上を航行するジェットスキー、ボートなどの船舶であり、さらに前記関与体はその船が水面上につくる航跡であってもよい。
また、この画像処理装置の前記関与体作成手段は、前記3次元空間の基準となる2次元面上の対象体の移動位置および進み角度に応じて伸長する移動跡ポリゴンのデータを前記関与体のデータとして形成するデータ形成手段を備えてもよい。
また、この画像処理装置の前記データ形成手段は、前記移動跡ポリゴンの伸長長さ、伸長している時間、または前記進み角度に応じて当該移動跡ポリゴンを切断する手段を備えてもよい。
また、この画像処理装置の前記データ形成手段は、前記対象体が前記基準面から所定距離浮き上がったときに前記移動跡ポリゴンの描画を停止させる手段を備えてもよい。
また、この画像処理装置の前記関与体作成手段は、前記移動跡ポリゴンが切断されたときは当該移動跡ポリゴンをその後に一定時間描画させるとともに、その一定時間の描画の後はその移動跡ポリゴンの長さを縮めながら描画させる指令を行う指令手段を備えてもよい。
また、この画像処理装置は、前記対象体と前記フィールドの表面との当り状態を判定する当り判定手段を備えてもよい。
また、この画像処理装置は、前記判定手段の判定結果に基づき対象体の位置を修正する修正手段を備えてもよい。
また、この画像処理装置の前記修正手段は、前記対象体の前記3次元仮想空間における基準となる2次元面の垂直方向の高さ位置に関する前記対象体の量を前記当り判定手段の判定結果に応じて修正するように構成してもよい。
また、この画像処理装置の前記修正手段は、前記判定手段により前記フィールド表面の方が前記対象体よりも高い高さ位置であると判定されたときには、前記対象体の排水量に応じてその対象体を前記垂直方向の上方向に移動させ、前記判定手段により前記フィールド表面の方が前記対象体よりも低い高さ位置であると判定されたときには、前記対象体の自由落下によりその対象体を前記垂直方向の上方向に移動させる手段であってもよい。
また、この画像処理装置は、前記2次元面上の2次元位置での前記フィールド表面の傾きに応じて前記対象体の前記3次元仮想空間内での傾きを修正する傾き修正手段を備えてもよい。
また、この画像処理装置の前記傾き修正手段は、前記対象体の傾きを前記フィールド表面の傾きに向けて一定時間毎に徐々に近付ける処理を行う手段であってもよい。
また、この画像処理装置の前記フィールドは前記3次元仮想空間に設定した水面であり、前記対象体はその水面上を航行するジェットスキー、ボートなどの船舶としてもよい。
本発明の描画方法は、3次元仮想空間に設定した水面を描画する描画方法において、水面下の物体の画像に透過処理を施し、表示画面に対し水面下の物体の画像が水面の画像よりも手前に描画するものである。
本発明における他の画像処理装置は、3次元仮想空間に設定した水面を表示する画像データを作成する第1の手段と、この水面に少なくとも一部が没している物体の水中部分を水面上から透視したときの画像データを作成する第2の手段とを備え、この第2の手段は、前記水中部分に水中に没したときの色を付与するとともにメッシュ処理を施して前記物体の前記画像データを作成する手段である。
本発明の他の画像処理方法は、3次元仮想空間のフィールド上で対象体を移動させる画像のデータを処理する画像処理方法において、前記フィールドの表面の同一位置の高さを時間経過とともに変更し、前記対象体を前記フィールド上に関与させながら移動させる中で、前記対象体の前記フィールドの表面の当り状態を判定し、この当り判定結果に応じて前記対象体の前記3次元仮想空間における基準となる2次元面の垂直方向の高さ位置に関する前記対象体の量を修正する。
この画像処理方法における前記フィールドは前記3次元仮想空間に設定した水面であり、前記対象体はその水面上を航行するジェットスキー、ボート等の船舶としてもよい。
本発明のゲーム装置は、実空間にて前記プレーヤが乗って操作情報を提供できる手段と揺動可能に支持された筐体とを備えた乗り物と、3次元仮想空間のフィールド上で前記乗り物を表したキャラクタを前記操作情報に応答して移動させる画像データを作成する画像処理装置と、を組み合わせたゲーム装置において、前記フィールドの表面の同一位置の高さを時間経過とともに変更するフィールド揺動手段と、このフィールド揺動手段による前記フィールド表面の高さ変更に応答して前記乗り物の筐体を揺動させる筐体揺動手段とを備える。
このゲーム装置における前記フィールド表面は前記3次元仮想空間に設定した水面であり、前記乗り物はその水面上を航行するジェットスキー、ボート等の船舶としてもよい。
本発明の更に他の画像処理装置は、3次元仮想空間のフィールド上で対象体を移動させる画像のデータを処理する画像処理装置において、前記対象体を前記フィールド上に関与させながら移動させる対象体移動手段と、前記対象体の前記フィールド上への関与を表す関与体のデータを作成する関与体作成手段とを備える。
この画像処理装置は、前記対象体と前記フィールドの表面との当り状態を判定する当り判定手段を備え、この判定結果に応じて前記関与体作成手段が関与体のデータを作成してもよい。
また、この画像処理装置における前記フィールドは前記3次元仮想空間に設定した水面であり、前記対象体はその水面上を航行するジェットスキー、ボートなどの船舶であり、さらに前記関与体はその船が水面上につくる航跡であってもよい。
また、この画像処理装置の前記関与体作成手段は、前記3次元空間の基準となる2次元面上の対象体の移動位置および進み角度に応じて伸長する移動跡ポリゴンのデータを前記関与体のデータとして形成するデータ形成手段を備えてもよい。
また、この画像処理装置の前記データ形成手段は、前記移動跡ポリゴンの伸長長さ、伸長している時間、または前記進み角度に応じて当該移動跡ポリゴンを切断する手段を備えてもよい。
また、この画像処理装置の前記データ形成手段は、前記対象体が前記基準面から所定距離浮き上がったときに前記移動跡ポリゴンの描画を停止させる手段を備えてもよい。
また、この画像処理装置の前記関与体作成手段は、前記移動跡ポリゴンが切断されたときは当該移動跡ポリゴンをその後に一定時間描画させるとともに、その一定時間の描画の後はその移動跡ポリゴンの長さを縮めながら描画させる指令を行う指令手段を備えてもよい。
本発明の乗り物遊戯機は、遊戯者が乗る揺動部材と、前記揺動部材に設けられた操舵手段と、前記操舵手段の舵角を検出する舵角検出手段と、前記揺動部材を傾動自在に支持する支持手段と、前記揺動部材の左右の傾動平衡を保つよう作用する左右傾動シリンダと、前記舵角検出手段の検出信号に基づき左右傾動シリンダに加える圧力を制御する圧力制御手段と、上記画像処理装置との間で所定の制御信号の伝達をする制御手段とを備える。
この乗り物遊戯機の前記左右傾動シリンダは、2つのシリンダを直列に連結した構成とし、一方のシリンダを伸長し他方のシリンダを収縮した状態で前記揺動部材を水平に保ち、前記圧力制御手段は、前記舵角検出手段の検出舵角方向により前記2つのシリンダの一方を選択し、同選択したシリンダに作用する圧力を前記検出舵角に応じて小さくしてもよい。
また、この乗り物遊戯機は、前記揺動部材の左右の傾斜角を検出する傾斜角検出手段と、同傾斜角検出手段の検出傾斜角と前記舵角検出手段の検出舵角に基づきゲ−ム上の旋回半径を決定する旋回半径決定手段とを備えてもよい。
また、この乗り物遊戯機は、前記揺動部材に設けられた加速操作手段と、同加速操作手段の操作状態を検知する加速操作検知手段とを備え、前記旋回半径決定手段は、前記傾斜角検出手段の検出傾斜角と前記舵角検出手段の検出舵角および前記加速操作検知手段が検知した加速操作状態とに基づきゲーム上の旋回半径を決定するように構成してもよい。
また、この乗り物遊戯機は、前記揺動部材を前後に傾動する前後傾動シリンダを備え、前記揺動部材の左右の傾動とともに前後の傾動も可能としてもよい。
また、この乗り物遊戯機は、前記揺動部材の前方に動画表示手段を配設し、前記揺動部材に乗った遊戯者が同動画表示手段に表示される動画を見ながら操縦できるように構成してもよい。
本発明のゲーム措置は、仮想空間を所定の位置から捉えた画像を表示するゲーム装置であって、仮想空間を移動する移動体の移動痕跡を描画する描画手段と、前期移動痕跡を時間の経過に応じて消去する消去手段とを備える。
本発明の他の形態に係わるゲーム装置は、仮想ゲーム空間を移動する移動体を表示するゲーム装置であって、前記移動体が前記仮想空間に残す移動痕跡を描画する描画手段と、前記移動痕跡の表示面積を時間の経過とともに減少させる面積現象手段とを備える。
上記のゲーム装置は、移動体の現在位置を読み取る読取手段を備え、前記描画手段は、前記現在位置から所定の範囲で前記移動体の移動痕跡を描画するように構成してもよい。
以上、説明したように、本発明の画像処理装置および画像処理方法によれば、フィールドの表面の同一位置の高さを時間経過と伴に変更し、対象体を前記フィールド上に関与させながら移動させるようにするし、とくに、対象体のフィールド上への関与を表す関与体(例えば航跡)のデータの作成、対象体のフィールドの表面の当り状態の判定、フィールド表面の傾きに応じて対象体の傾きを修正できるようにし、また一方では、3次元仮想空間にて水中に一部が没している物体の表示をメッシュ処理を利用して行うようにしたことから、モーターボート、ジェットスキーなどの対象体が航行する水面などの揺動するフィールドをよりリアルにかつ豊かに表現できる。また、3次元仮想空間における水面とジェットスキーなどとの当り(接触)具合を的確に判定でき、これにより対象体の高さを正確に画像に反映できる。さらに、航跡や水中に没している物体などを、演算量を押さえた状態で的確に表現できる。
また、本発明のゲーム装置によれば、実空間にて前記プレーヤが乗って操作情報を提供できる手段と揺動可能に支持された筐体とを備えた乗り物と、3次元仮想空間のフィールド上で前記乗り物を表したキャラクタを前記操作情報に応答して移動させる画像データを作成する画像処理装置と、を組み合わせたゲーム装置において、前記フィールドの表面の同一位置の高さを時間経過と伴に変更するフィールド揺動手段と、このフィールド揺動手段による前記フィールド表面の高さ変更に応答して前記乗り物の筐体を揺動させる筐体揺動手段とを備えたことから、プレーヤは自分が乗っている乗り物が水面を航行しているという感覚を十分に体験でき、ゲームの臨場感および興味感を高めることができる。
また、本発明の本乗り物遊戯機は、少ないシリンダで船体を様々に揺動させることができるとともに、実際のジェットスキーの操作と同じような操作により同じように揺動させることが可能であり、モニターテレビの映像と相まって遊戯者は実際にジェットスキーを操縦しているかのようなエキサイティングなプレーを楽しむこができる。
また、移動体の移動痕跡を描画し、これを時間の経過に応じて消去するようにしたので、描画にかかる負担を軽減することができる。また、描画された移動痕跡が適宜消去されるので、遊戯種者の視界を邪魔しないようにしながら演出効果を上げることができる。
本発明の実施例について図面を参照して説明する。実施の形態1では図1乃至図5を参照して本発明の乗り物遊戯機の第1の構造を説明した後、図6乃至図21を参照して本発明の画像処理について説明する。更に、実施の形態2では図22乃至図32を参照して乗り物遊戯機の第2の構造を説明する。
実施の形態1.
[乗り物遊戯機の第1の構造の説明]
まず、図1乃至図5を参照しながら、本発明の画像処理装置との間で所定の制御信号の伝達がなされ、画面に表示されるキャラクタ(例えば、ジェットスキー)と同じ動きをするように構成された乗り物遊戯機の第1の形態の構造を説明する。
図1は、一実施形態に係るゲーム装置の外観斜視図である。このゲ−ム装置はジェットスキーのレースをゲ−ム内容する装置である。図示していないが、図1に示す相互通信可能なジェットスキーのゲ−ム装置を複数台設置して複数のプレーヤが3次元仮想空間に構築した水上レース場で互いに競争したり、単独のプレーヤがプレイする場合は、装置側で用意したプログラム上の競争相手(敵船)と競争することができるようになっている。なお、この実施形態のゲ−ム装置はジェットスキーを対象とするが、本発明はこれ以外にもモーターボートなどの船舶に係るゲ−ム装置にも同様に実施できる。
図1に示すジェットスキーのゲ−ム装置は、プレーヤが乗る筐体部1と、この筐体部1の機構を稼動させるデータ処理部2とを備える。
筐体部1は、図2に詳述するように、その下部に固定のメカ・ベース11を備え、このメカ・ベース11の上側にサスペンション機構としてのシリンダ12乃至16およびクランク17を介してムービング・ベース18が設置されている。つまり、ムービング・ベース18はメカ・ベース11に対して可動可能になっている。ムービング・ベース18の上側にはプレーヤが跨がるサドル部20が固設されるとともに、そのサドル部20の先端前側にはハンドル部21が所定角度範囲で回動可能に設置されている。このハンドル部21には前記データ処理部2へのプレーヤの操作情報入力用としてハンドル21A、アクセル21B、ビューチェンジスイッチ21Cなどが設置されている。
プレーヤはゲ−ム中に、ハンドル21Aを回転させることにより自分のジェットスキー(自船)が進む角度の、アクセル21Bを操作することにより自船の航行する速度の信号をデータ処理部2に出力できる。また、ビューチェンジスイッチ2を操作すると、自船の前方を見た視点および自船を斜め後方から見た視点の間でのビューチェンジの信号をデータ処理部2に出力できる。
筐体部1のメカ・ベース11とムービング・ベース18との間には、図2に示すように、エア型のセンターシリンダ12、左右のリンクロッド・シリンダ13、14、左右のセンタリング・シリンダ15、16、および前側のクランク17が介挿されている。センターシリンダ12はメカ・ベース11の横(左右)方向の中心の位置で前後方向にかつ横置きに設置され、メカ・ベース11の後方側の所定位置とクランク17の所定位置との間に伸縮可能になっている(図4、5参照)。クランク17はメカ・ベース11の前側の所定位置に立設した支持部材の上部所定位置に回動自在に取り付けられている。この上部所定位置がクランク回転中心をなす。クランク17とムービング・ベース18との間は球面軸受を介してジョイントされている。
センターシリンダ12は詳細には図3の配管図に示すように、前後に同一ストロークのエアシリンダを直列に連結したもので、後部の上下圧力室には伸び側に一定圧力を掛け、前部の上下圧力室のそれぞれには電気式圧力制御器(電空レギュレータ)25が接続されている。伸び側に一定圧力を掛けているので、ムービング・ベース18に荷重が掛かってシリンダ縮み方向に力が加わっても、その力とのバランスをとることができ、ムービング・ベース18の位置は変わらない。このため、プレーヤが跨がって荷重が掛かっていても、前部の上下圧力室への少ない空気量だけでセンターシリンダ12の伸縮を動作させることができる。これにより比較的小パワーの電気式圧力制御器25が使用可能になっている。なお、図3において、26a、26bが4ポート弁を示し、27a乃至27cが2ポート弁を示し、28が空気タンクを示す。
電気式圧力制御器25は図3に示すように実際には2個の圧力制御ユニットから成り、データ処理部2から受ける電気量の圧力制御信号に応じて前部の上下圧力室の圧力を制御できる。この圧力制御に応じてセンターシリンダ12のストローク位置およびストローク速度が制御できる。
この制御例を図4、5に示す。図4に示すように、センターシリンダ12が伸びると、クランク17が押され、クランク17がその回転中心の回りに回転する。クランク17とムービング・ベース18は球面軸受で結合されているため、ムービング・ベース18の先端側が上に持ち上げられる。ムービング・ベース18の後部を支持しているリンク・ロッド・シリンダ13、14は後方に傾く。このため、ムービング・ベース18全体は前方が上がり、後方が下がるピッチング方向の運動をする。図5に示すように、センターシリンダ12が縮む場合は反対向きのピッチング運動となる。つまり、電気式圧力制御器25に与える圧力制御信号を制御することで、サドル部20にピッチング方向の動きを与えることができ、サドル部20に乗っているプレーヤはピッチング方向の運動を体感できる。
左右のリンクロッド・シリンダ13、14は図2に示すようにメカ・ベース11の最後方の位置に斜め内向きに介挿されており、台形型の4節リンク部を形成している。このリンクロッド・シリンダ13、14には通常伸び側に圧力が掛かっており、荷重が加わっても縮まないようになっている。ムービング・ベース18にロール方向の力が加わった場合、ムービング・ベース18の中心位置が下がりながらずれるロール運動と、ムービング・ベース18が先端の球面軸受けを中心とした円弧運動とが合成された動きになり、3次元的なねじれの動きが可能になる。
また左右のセンタリング・シリンダ15、16は図2に示すように、リンクロッド・シリンダ13、14の前側の位置に斜め内向きに介挿されており、ばねの機能を果たすようになっている。このため、ムービング・ベース18への外力が解除されると、このセンタリング・シリンダ15、16のばね力によりムービング・ベース18はセンタリングされる。
[本発明の画像処理の説明]
続いて、本発明の画像処理を図6乃至図22を参照しながら、「回路構成」と「動作原理」に分けて説明する。
[回路構成]
まず、データ処理部2を図6に基づいて説明する。このデータ処理部2は処理本体30、TVモニタ31、及びスピーカ32を備えている。TVモニタ31はジェットスキーのレースゲ−ムの画像を表示するもので、このTVモニタの代わりにプロジェクタを使ってもよい。
処理本体30は、CPU(中央演算処理装置)101を有するとともに、ROM102、RAM103、サウンド装置104、入出力インターフェース106、スクロールデータ演算装置107、コ・プロセッサ(補助演算処理装置)108、地形デ−タROM109、ジオメタライザ110、形状デ−タROM111、描画装置112、テクスチャデ−タROM113、テクスチャマップRAM114、フレームバッファ115、画像合成装置116、D/A変換器117を備えている。
また、画像表示にはポリゴンを使用しており、ポリゴンデータとは、複数の頂点の集合からなるポリゴン(多角形)の各頂点の相対ないしは絶対座標のデータ群を云う。
地形データROM109には、後述する船と水面の当り判定を実行する上で足りる、比較的粗く設定されたポリゴンのデータが格納されている。これに対して、形状データROM111には、船、水面、背景などの画面を構成する形状に関する、より緻密に設定されたポリゴンのデータが格納されている。
CPU101は、バスラインを介して所定のプログラムなどを記憶したROM102、デ−タを記憶するRAM103、サウンド装置104、入出力インターフェース106、スクロールデータ演算装置107、コ・プロセッサ108、及びジオメタライザ110に接続されている。RAM103はバッファ用として機能させるもので、ジオメタライザ110に対する各種コマンドの書込み(オブジェクトの表示など)、変換マトリクス演算時のマトリクス書込み(スケーリングなど)などが行われる。
入出力インターフェース106は前記入力装置21及び電気式圧力制御器25、各種ランプ類などの出力装置に接続されており、これにより入力装置21のハンドルなどの操作信号がデジタル量としてCPU101に取り込まれるとともに、CPU101などで生成された制御信号を圧力制御器25に出力できる。サウンド装置104は電力増幅器105を介してスピーカ14に接続されており、サウンド装置で生成された音響信号が電力増幅の後、スピーカ32に与えられる。
CPU101は本実施例では、ROM102に内蔵したプログラムに基づいて入力装置21からの操作信号及び地形デ−タROM109からの地形デ−タ、または形状データROM111からの形状データ(「自船、他船などのオブジェクト」、「水面、空、島、木、岩などの背景」などの3次元データ)を読み込んで、船の挙動処理のほか、水面の波のうねり表現・処理、水面(波)と船の当り(接触)判定・処理、航跡の描画処理、および水中の物体の表現処理を少なくとも行うようになっている。
船の挙動処理は、入力装置21からのプレーヤの操作信号により3次元仮想空間での船の動きをシミュレートするもので、3次元仮想空間での座標値が決定された後、この座標値を視野座標系に変換するための変換マトリクスと、形状デ−タ(船、地形など)とがジオメタライザ110に指定される。コ・プロセッサ108には地形デ−タROM109が接続され、予め定めた地形デ−タがコ・プロセッサ108及びCPU101に渡される。コ・プロセッサ108は、主として水面と船との当たりの判定を行うものであり、この判定や船の挙動計算時に、主に、浮動小数点の演算を引き受けるようになっている。この結果、コ・プロセッサ108により船と水面との当り判定が実行され、その判定結果がCPU101に与えられる。これにより、CPU101の演算負荷が低減され、当り判定が迅速に実行される。
ジオメタライザ110は形状デ−タROM111及び描画装置112に接続されている。形状デ−タROM111には予めポリゴンの形状デ−タ(各頂点から成る船、水面、背景などの3次元デ−タ)が記憶されており、この形状デ−タがジオメタライザ110に渡される。ジオメタライザ110はCPU101から送られてくる変換マトリクスで指定形状デ−タを透視変換し、3次元仮想空間での座標系から視野座標系に変換したデ−タを得る。
描画装置112は変換した視野座標系の形状デ−タにテクスチャを貼り合わせフレームバッファ115に出力する。このテクスチャの貼り付けを行うため、描画装置112はテクスチャデ−タROM113及びテクスチャマップRAM114に接続されるとともに、フレームバッファ115に接続されている。
スクロールデ−タ演算装置107は文字などのスクロール画面のデ−タを演算するもので、この演算装置107と前記フレームバッファ115とが画像合成装置116及びD/A変換器117を介してTVモニタ13に至る。これにより、フレームバッファ115に一時記憶された船、水面、背景などのポリゴン画面とスピード値、ラップタイムなどの文字情報のスクロール画面とが指定されたプライオリティにしたがって合成され、最終的なフレーム画像デ−タが生成される。この画像デ−タはD/A変換器117でアナロク信号に変換されてTVモニタ13に送られ、船のレースゲ−ムの画像がリアルタイムに表示される。
尚、本発明の画像処理に必要なプログラム及びデータは、図6に示すように、画像処理プログラム等が格納されているROM102、地形データROM109及び111、テクスチャデータROM113に格納されているが、これらROMに限られず、何等かの形態で提供される記録媒体に上記プログラム及びデータを格納し、この記録媒体を本発明の画像処理装置に適用することもできる。
ここで云う記録媒体とは、何等かの物理的手段により情報が記録されているものであって、本発明の画像処理装置に所定の画像処理を行わせることができるものである。即ち、本発明の記録媒体は、本明細書で述べる画像処理、ゲームのための処理を全部或いは一部を実現するためのプログラムを記録している。
例えば、CD−ROM、DVD、ROMカートリッジ、CD−R、バッテリバックアップ付きのRAMメモリカートリッジ、フラッシュメモリカートリッジ、不揮発性RAMカートリッジ、ゲームカートリッジ、フロッピーディスク、ハードディスク、磁気テープ、光磁気ディスク等を含む。
また、電話回線等の有線通信媒体、マイクロ波回線等の無線通信媒体等の通信媒体を含む。インターネットもここでいう通信媒体に含まれる。
[動作原理]
続いて、このゲ−ム装置の動作原理を図7乃至図21を参照して説明する。まず、図7を参照しながらCPU101により処理される全体処理を説明した後、図8乃至図21を参照しながら各処理内容を説明する。
[全体の処理内容(ステップ201〜ステップ212)]
ゲ−ム装置が起動すると、CPU101は1フレームの周期に相当する一定時間Δt毎のタイマ割込み処理によって同図に示す処理を開始する。
まず、所定の変数等が初期化済みか否かを判断する(ステップ201)。この判断は図示しないが、例えばフラグ処理により行う。初期化が未だ済んでいない、つまりこの図7の処理に始めて入る場合は、初期化処理を実施する(ステップ202)。
次いでCPU101は、プレーヤが入力装置21を操作することによる、ジェットスキーの運転に関わる操作情報(ここではハンドルの切角度、アクセル開度、ビューチェンジスイッチの信号)を入出力インターフェイス106を介してデジタル量として読み込む(ステップ201)。そしてCPU101はその操作情報の内の切角度(すなわち進行方向)およびアクセル開度(すなわちジェットスキーの進行速度)に基づいて3次元仮想空間における2次元面の位置(x,z)を今回の割込み時の自船位置として演算する(ステップ204)。ここで、3次元仮想空間におけるx−z平面は水面を表現するフィールドの平面を意味するものとする。従って、y軸方向は波の高さ方向を表す。
この現在位置(x,z)が分かると、CPU101は順次、水面の波のうねり高さの演算を行い(ステップ205)、波と自船との当り判定・処理を行い(ステップ206)、波の傾きに応じた自船の傾き処理を行い(ステップ207)、航跡の表現処理を行い(ステップ208)、および筐体部1の揺動処理を行う(ステップ209)。これらの処理は本発明の特徴の要部の一つを成すもので後に詳述する。なお、上述した処理の中のステップ205からステップ207の処理は適宜な順番で実施でき、必ずしもこの順番で行う必要はない。
これらの一連の処理が終わると、ビューチェンジスイッチ21Cにより指令されている視点に応じた、船の挙動処理を含む形状データ(ポリゴンデータ)の描画のための処理を行う(ステップ210)。なお、この処理には、後述する水中に没している岩などの物体の簡易的な表現処理も含まれる。
さらに、CPU101は3次元の形状デ−タを視野座標系に透視変換するための透視変換マトリクスを作成する(ステップ211)。そして、このマトリクスと形状デ−タとをRAM103を介して前述したジオメタライザ110に渡す(ステップ212)。
この一連の処理がTVモニタ31のフレーム期間毎に実施される。
[うねり表現処理(ステップ205)]
次に、上述したステップ205に係る波のうねり高さの表現処理を図8乃至図10に基づき詳述する。
CPU101は、プレーヤの操作するジェットスキーの位置を表す2次元座標(x,z)に応じた新たなうねった波の高さ(以下、「波のうねり高さ」と云う。)設定値Hを予めROM102に格納してあるテーブルから読み出す(ステップ205−1)。このうねり高さ設定値のテーブルは模式的には図9のように表される。仮想3次元空間のx−z面に対応して所定広さの水面のレース場130が設定される。このレース場130はさらに複数のブロックBKに分割され、この各ブロックBKにうねり高さ設定値Hが割り当てられている。模式的なこのレース場130内の斜線部分は陸地を表している。このため、陸地と陸地との間は入江と見立てて、そのような入江部分のブロックには比較的低目のうねり高さ設定値を割り当てている。反対に外洋とみなせるような部分には高めのうねり高さ設定値を割り当てている。このため、ジェットスキーが図9中の矢印のように航行した場合、あるフレーム時刻t1での位置座標(x,z)が右上端のブロックBKに入っているので、うねり高さ設定値H=0.5mが読み出され、時刻t2ではその横のブロックBKに移っているので、H=0.6mが読み出され、時刻t3ではその下のブロックBKに移動しており、H=0.4mが読み出される。
次いで、CPU101は、前回の割り込む時の(フレーム期間に対応した所定時間毎の)うねり高さ設定値H'と今回の割り込み時にジェットスキーの位置するブロックのうねり高さ設定値Hとを比較する(ステップ205−2)。この比較結果がH<H'又はH>H'である場合、HにH'+(H−H')・kの演算結果を代入する(ステップ205−3)。係数kの値は例えば0.05程度である。これにより、別のブロックに移動したことにより、うねり高さ設定値が前回と今回とで相違する場合であっても、フレームを繰り返す間に以前のブロックで読み出したうねり高さの値が次第に現在のブロックで読み出した値になる。つまり、うねり高さ設定値の急変を回避でき、ブロックからブロックへ波のうねり高さを滑らかに変化させることができる。
ステップ205−2で「NO」の判断の後または上述のステップ205−3の処理が実施された後では、ステップ205−4以降の処理が順次実行される。まず、波を進める(波動させる)ために設定してある速度カウンタに予め定めた一定値が加算される(ステップ205−4)。また予め1つのオブジェクトデータを構成するように定めてある所定数(例えば100個)のポリゴンのグリッド(1オブジェクトとして扱うオブジェクトデータを構成するもの)の位置(x,z)が読み出される(ステップ205−5)。
さらに、その所定数のポリゴンの各位置(x,z)(例:ポリゴンの重心或いは各頂点の位置、ジェットスキーの現在位置から求めたポリゴンの各位置)の波のうねりの高さYpを、全部のポリゴンについて次式から演算する(ステップ205−6,205−7)。
Yp=cos(CNT・2n+(int)(x・WR))・H+sin(CNT+(int)(x・WR)+CNT・2n+(int)(z・WR))・H・cここで、CNT:毎フレーム毎に一定数をアップさせる波の速度カウンタWR:ポリゴンサイズ当たり(例えば20m)のウェーブレートx,z:3次元仮想空間(グローバル座標系)でのx,z位置H:高さの最大値となる値(現在のうねり高さ設定値)
c:特定方向の波を縮小させるための係数(例えばc=0.04)
n:正の整数値(2nはタイリング要素)
cos,sin:cos関数、sin関数である。
尚、ウェーブレートとは、波のうねりの周期と高さを計算するためのレート(例えば、定数)である。また、タイリング要素とは、所定数(例えば、100個)のポリゴンから作られる波のオブジェクトをいい、ゲーム画面上に縦n個、横n個配置され、海面や陸地等を形成する。
上式により、サイン波とコサイン波との合成波が、1つのオブジェクトデータを構成する例えば100個のポリゴンについて個別に演算される。
なお、このうねり高さYpを求める式は必ずしも上述したものに限定されるものではなく、もっと単純にサイン波とコサイン波とを合成してもよいし、場合によってはサイン波またはコサイン波だけの成分によるうねりデータを演算してもよい。
このうねり計算が終わると、計算した例えば100個のポリゴンのうねり高さデータをRAM103に格納する(ステップ205−8)。これにより、この例えば100個のポリゴンのうねり高さデータを一つのオブジェクトデータとして使用可能になる。
次いで、所定数の表示エリア(例えば4×4のオブジェクトデータ:1オブジェクトデータは、例えば100ポリゴンからなる。)のそれぞれにオブジェクトデータ、すなわち例えば100個のポリゴンのうねり高さデータを書き込む(ステップ205−9)。これにより、例えば図10に示すように、4×4の表示エリアに合計1600個の表示ポリゴンが書き込まれる。
次いで、所定数の表示エリア(例えば4×4)の例えば中心Oに視点カメラを置いたと想定したときの視野範囲θに入るポリゴンが特定される(ステップ205−10)。結局、この視野範囲に入るポリゴンのみが表示されることになる。このように処理することによって、従来の固定された走行路、背景などとは異なる水面の感覚を的確に表現することができ、水上ゲームの臨場感を盛り上げ、ゲーム性を高めることができる。
[当り判定/処理(ステップ206)]
続いて、図7のステップ206で実施される波のうねりとジェットスキーとの当り判定およびその後の処理を図11および図12に基づいて説明する。
CPU101はまず、今回の割込みに伴うジェットスキーの位置(x,z)に対応した波のうねりの高さYp=f(x,z)を前述した式を使って求める(ステップ206−1)。図12には1次元xでの例を示す。次いで、その時点のジェットスキーの高さをbとして、この高さbとうねりの高さYp=f(x,z)との比較を、Yp=f(x,z)>bか否かの判断で行う(ステップ206−2)。ジェットスキーの高さbは例えばワールド座標系y=0の位置から採ったジェットスキーの重心位置までの高さである。
この当り判断で「NO」、すなわちYp=f(x,z)≦bのときは、ジェットスキーが波よりも高い位置に居るときである。このときは、重力加速度gによる自由落下の式に基づいて、ジェットスキーを波面に当てる(接触させる)ための新しいジェットスキーの高さbを演算する(ステップ206−3)。
これに対してステップ206−2の当り判断で「YES」のときは、ジェットスキーが波に接しているかまたは水中に沈んでいる状態であるから、別の一連の処理をステップ206−4乃至8のように実施する。すなわち、沈んでいる深さd=f(x,z)−bを演算し(ステップ206−4)、沈んでいる深さに応じた排水量V=d・Sを演算する(ステップ206−5)。Sはジェットスキーの底面積である。さらに、この排水量Vに因ってジェットスキーが受ける浮力による上下方向の加速度GyをGy=(V−F)/m=(V−m・g)/mの式から演算する(ステップ206−6)。ここで、mはジェットスキーの質量、gは重力加速度である。さらに、ジェットスキーの上下方向の速度にこの加速度Gyを加算して新たなジェットスキーの上下方向の速度を演算し、この速度から新たなジェットスキーの高さbを演算する(ステップ206−8)。この高さ演算は、V・gとm・gが釣り合うまで行われる(ステップ206−7)。
以上の当り判定およびその後のジェットスキーの高さ処理より、水上を航行する様子を的確に表現することができる。従来の固定された走行路、背景との当り判定とは異なり、比較的簡単なアルゴリズムでありながら、精度の高い当り判定を実施でき、ゲームの臨場感を一層向上させることができる。
尚、この当たり判定は、船の底面(投影面が二等辺三角形とする)の三頂点と波の所定点(波の先端、後端或はこの間)とを基準に行う。
[ジェットスキーの傾き処理(ステップ207)]
続いて、図7のステップ207で実施されるジェットスキーの傾き処理を図13および図14に基づいて説明する。このジェットスキーの傾き処理は波の傾きが刻々変わることに対応して実施される。
CPU101はまず、今回の割込みに伴うジェットスキーの位置(x,z)における波のうねりの1次微分値f'(x,z)を演算する(ステップ207−1)。次いで、その1次微分値f'(x,z)を使って波の角度α=tan-1f'(x,z)を演算する(ステップ207−2:図14参照)。
これが済むと、前回(現在)のジェットスキーの角度β、すなわちジェットスキーの前後方向の軸が成す角度(基準座標系(ワールド座標)のx,z面に対して成す角度(上下角))をメモリから読み出す(ステップ207−3)。そして、α−β=Eの演算を行って角度差Eを求め(ステップ207−4)、予め定めた微小角度ΔEを使ってE'=E−ΔEを演算する(ステップ207−5)。さらに、β=β+E'を演算し、その演算値βを次回の割込み時のために記憶する(ステップ207−6、7)。
この処理を波の波動よりも早い一定時間Δt毎に繰り返すことにより、ジェットスキーの角度βが波の角度αに徐々に滑らかに近つけられる。この結果、ジェットスキーと波の角度関係に違和感が生じることもなく、ジェットスキーが常に波の傾きに沿ってかつ乗っているように表現される。
[航跡の表現処理(ステップ208)]
続いて、図7のステップ208で実施される航跡の表現処理を図15乃至図19に基づいて説明する。ここでは、ジェットスキー(自船、他船)が航行することにより水面に残る航跡を残像のように表現しようとするものである。なお、航跡は多数のポリゴンの連結で表現される。この航跡を形成する1つずつのポリゴンを航跡ポリゴンと呼ぶことにする。
CPU101は今回のフレームに伴う割込に入ると、まず、前回処理してあるフラグ(前回起ててあるフラグ)を使って現在処理中の航跡ポリゴンの表示を伸長中か否かを判断する(ステップ208−1)。この判断で「NO」となるときのみ、すなわち新しく航跡ポリゴンを描画させるとき、現在のジェットスキーの進行位置および進行角度を、描画しようとする航跡ポリゴン末端の位置および角度として指定(コピー)する(ステップ208−2)。現在の船の進行位置および進行角度は、航跡ポリゴンが消滅するまで記憶手段において記憶されている。
この末端の処理が済むと、今度は、現在のジェットスキーの進行位置および進行角度を、描画しようとする航跡ポリゴン先端の位置および角度として指定(コピー)する(ステップ208−3)。
次いで、航跡ポリゴンの伸長を止める(切る)条件が発生したか否かを判断する(ステップ208−4)。この条件として、ここでは、1)航跡ポリゴンが設定時間の間、伸長し続けている、または、設定距離まで伸長した(図17参照)、2)航跡ポリゴンの末端と先端の間の角度が設定角度になった、すなわち末端中心から延びる垂線(中心線)同士が設定角度以上になったとき(図18参照)、3)ジェットスキー(航跡発生源)が航跡の残る空間あるいは面(L)から設定値以上離れた(図19参照)、ことが挙げられている。このステップ208−4で「YES」の判断のときは3つの条件の内のいずれかが成立した状態であるので、次いで、この3つの条件の内の3番目の条件が発生したのか否かを特別に判断する(ステップ208−5)。
上記2つの判断で、いずれの切る条件も発生しない(ステップ208−4で「NO」)、または、切る条件は発生したが、3番目の高さの条件ではない(ステップ208−5で「NO」)のときは、続いて、既に伸長が終わり、保持している航跡ポリゴンが有るか否かを判断する(ステップ208−6)。この判断で「NO」のときは、ステップ208−3の先端コピーの処理を通じて今まで伸長をさせてきた航跡ポリゴンを保持し、それ以上の伸長を中止させる(ステップ208−7)。既に保持している航跡ポリゴンがある場合、このステップ208−7の処理は飛ばされる。
次いで、いま保持している航跡ポリゴンの保持開始から一定時間が経過したかどうかを判断する(ステップ208−8)。この判断で「YES」となるときは、その航跡ポリゴンの表示の役目を終えたことと、演算量の増大を回避するため、その航跡ポリゴンを縮み処理をその完了まで行う(ステップ208−9,10)。これにより、それまで一定長さに保持されていたポリゴンがフレーム毎に縮んで、最後には画面から消える。すなわち、1フレーム毎(1/60秒毎)に航跡ポリゴンの長さを所定の割合、その他の手法等により徐々に短くして行く。これにより、やがては消えていく航跡の残像感を現すことができる。
なお、これに換えて、航跡ポリゴンに貼られるテクスチャーを航跡が消えて行くような柄に変える、或いはこのようになるように航跡ポリゴンに半透明処理を行う。半透明処理とは、航跡ポリゴンのカラーデータを水面のカラーデータと合わせて新たなカラーデータを作成すること等を意味する。これにより、フレーム毎にこの半透明処理を行うことにより、航跡ポリゴンの色は徐々に水面(フィールド)の色に近づいて行く。
本発明においてフィールドとは水面であるが、これに限定されない。例えば、車の運転をシミュレートするテレビゲームでは、地面、レース場のコース等がフィールドとなる。また、格闘ゲームの場合には、フィールドとは背景画である。要するに、フィールドとは、航跡や残像を付与する相手となる、背景である。このように、対象体の移動跡を形成することは、航跡の表現に限られることなく、車のスリップ痕や、足跡にも適用可能である。
前述したステップ208−5で「YES」の判断になるときは、例えばジェットスキーが水面から大きくジャンプした場合であるから、そのようなときは航跡ポリゴンは物理的にも出ない。そこで、航跡ポリゴンの描画停止が指令される(ステップ209−11)。
そして、このように処理した航跡ポリゴン(現在伸長中の航跡ポリゴン、または/および、現在保持している航跡ポリゴン(縮み処理中のもの含む))の描画に必要なデータを与える。これには、航跡ポリゴンの先端および末端のそれぞれの端部方向の2点を決するための特定距離も含まれるので、この4点を結ぶ4角形が航跡ポリゴンとなる。この4角形には先端と末端の模様が繋がるように、描画装置112でテクスチャが貼られる。
この図15の処理はフレーム毎に繰り返される。このため、例えば図17に示すように、航跡ポリゴンは時刻t=tsで伸長を開始したとすると、t=tmaxまで同一の航跡ポリゴンS0が伸長し(すなわち、伸長するように、毎フレーム毎書き換えられる)、その時刻t=tmaxで切れるとともに、次の航跡ポリゴンがS1の伸長が開始される。切られた航跡ポリゴンS0は所定時間表示された後、末端側より縮んで画面から消失する。また航跡ポリゴンの長さによっても同様に切られる。このため、ジェットスキーの速度が早い場合でも、航跡ポリゴンが無闇に伸びてしまうことがなく、違和感の無い航跡ポリゴン処理がなされる。
図16には3つの航跡ポリゴンS0〜S2が繋がって描画されている状態を示す。時間的にはS0,S1,S2の順に新しいから、古い方の航跡ポリゴンS0やがて末端側より短縮されながら、画面から消えていく運命にある。同図において、v0は航跡ポリゴンS0の末端方向、v1は航跡ポリゴンS0の先端方向および航跡ポリゴンS1の末端方向、ならびに、v2は航跡ポリゴンS1の先端方向および航跡ポリゴンS2の末端方向をそれぞれ示すベクトルである。最初の航跡ポリゴンS0は四角形Pr0Pl0Pl1Pr1を、2番目の航跡ポリゴンS1は四角形Pr1Pl1Pl2Pr2を、さらに、3番目の航跡ポリゴンS2は四角形Pr2Pl2Pl3Pr3をそれぞれ描画することなる。
また図18に示すように、ジェットスキーBの進行方向v1と航跡ポリゴンSの末端の角度を示す方向v0との開き角度θが、航跡ポリゴンを曲げて描画できる限界値θmaxを越えると、自動的に航跡ポリゴンSが切られ、また新たな航跡ポリゴンが作成される。これにより、ジェットスキーBが所定値以上の曲率で曲がる場合、これに適宜に追従して違和感の少ない航跡ポリゴンが描画される。
さらに、図19に示すように、ジェットスキーBが航跡の残る空間あるいは面Lから所定高さhmax以上浮く場合、その浮いている間の航跡の表示は中断されることになる。
このように、航跡ポリゴンは遊戯者(プレーヤ)にとって伸びたり縮んだりしているように表現される。即ち、移動体の進行に従って(或いは時間の経過に伴って)、痕跡ポリゴンの端点座標を変更し、伸び縮みして見えるようにインタラプト毎に描き換えているのである。
更に、航跡を徐々に消すことでプレーヤ(遊戯者)の視界を邪魔せずにゲームの演出効果を上げることができる。
[筐体部の揺動処理(ステップ209)]
続いて図7のステップ209で実施する筐体部1の揺動処理を説明する。
この実施形態では、同図ステップ206でジェットスキーの当り判定/処理が実施されているが、その中でジェットスキーの現在の高さbが一定時間毎Δtに演算されている。この高さbは波のうねり高さに呼応して制御されている。また同図ステップ207ではジェットスキーの傾きも演算されており、この傾きも波のうねり高さに連動している。
そこで、CPU101はこのステップ209の段階になると、その時点で演算されているジェットスキーの高さbおよび傾きに対応した電気量の圧力制御信号を生成し、この信号を筐体部1の電気式圧力制御器25に送る。
この結果、電気式圧力制御器25が制御信号値に対応してセンターシリンダ12の全部の上下圧力室の圧力を調整する。これにより、センターシリンダ12のストロークが伸びまたは縮むから、前述した図4または5で示すように筐体部1、すなわちサドル部20がピッチング方向に揺れる。
この揺動処理は一定時間Δt毎に実施される。一方で、波のうねり高さは逐一、独立して演算され、処理されている。つまり、サドル部20の揺動処理にも必然的にその波のうねり高さの要因が反映される。
この結果、ジェットスキーが航行していないときでも、波のうねり高さはサイン波とコサイン波の合成波により変動しているから、サドル部20は常に小刻みに揺動し、プレーヤは水上の乗り物に乗っていることを体感できる。また航行しているときもうねり高さや角度は変わるから、この値に応じてサドル部20のピッチング方向の運動が適度なピッチング範囲およびその速度で制御される。これによって、プレーヤは波の大きさやスピード感を体感でき、ゲームのリアル性を高めることができる。
[水中に没している物体の表示処理(ステップ210)]
図7のステップ210では、ジェットスキーの挙動に伴う形状データ(ポリゴンデータ)処理の中で、水中に没している物体を表示するためのポリゴンデータ処理が図20及び21の如く行われる。
CPU101は、まず水面WLを表すポリゴンを描画する(図20のステップ210−1)。続いて、その上に、例えば岩RKのポリゴンを描画する(ステップ212−1)。この岩RKの描画においては、岩RKの内の計算座標が水に沈んでいる部分RK´に、水中に沈んでいることを表す色(例えば茶色がかった青色)で予め描くとともに、それに予めメッシュ処理を施しておく。
このようにモデル化した岩のポリゴンを予め作っておくことにより、Zバッファを使わなくても、モデル化した岩のポリゴンを描画するだけで、簡単に水中に没した部分を有する岩を表現できる。これは半透明の表示機能を持っていないデータ処理部(ボード)であっても、そのような表示を、Zバッファに比べて比較的少ない演算量で簡単に行えるので、非常に便利である。すなわち、常に水中の物体の方より水面を先に描画することで、Zソートにおけるソーティングの手間が省ける。
尚、上記実施形態では本発明をジェットスキー、モーターボートなどの水上乗り物に適用する形態について説明してきたが、必ずしもそのようなものに限定されることなく、水中のゲーム、航空機のゲームなどにも適用できる。その場合、時間的に位置的に変化するフィールドは水中の水の流れ、空中の気流の流れなどである。
また、ここまでの説明において、図3のROMはアプリケーションソフトが記憶された記憶媒体に相当するものである。
実施の形態2.
[乗り物遊戯機の第2の構造の説明]
次に、図22乃至図32を参照しながら、本発明の画像処理装置との間で所定の制御信号の伝達がなされ、画面に表示されるキャラクタ(例えば、ジェットスキー)と同じ動きをするように構成された乗り物遊戯機の第2の形態の構造を説明する。
図22はその乗り物遊戯機100の全体外観図である。偏平な基台2000の上にジエットスキーを模した船体3000が揺動自在に支持されており、船体3000の前方にモニターテレビ900が配設され、同モニターテレビ900の画面900aは、船体3000に乗った遊戯者が目の前にする鉛直平面をなす大きな画面である。
船体3000の船体カバー4000は、前後に長尺で、船体前部に棒状の操舵ハンドル500が突設され、ステアリング軸には舵角を検出する舵角センサー1000が備えつけられており、同操舵ハンドル500の左右端のグリップ500a,500bの一方はアクセル操作が可能であり、回動角を検出するアクセル操作センサー110が備えつけられている。
この操舵ハンドル500の後方に前後に長尺のシート600が延びており、遊戯者は同シート600に跨がるようにして着座し、左右側方の足載せ部700に足を載せるようになっている。
船体3000は、前後に延びた平行な2本のメインフレーム200にクロスメンバー210を介して左右に幅広の枠フレーム220が一体に連結されており、同フレーム200,220に船体カバー4000が被せられる。メインフレーム200の前部下方で基台2000の前部中央には、左右一対の軸受板250,250が立設され、両者間に支軸260が架設され、同支軸260にクランク部材270が上端において枢支されている。
そして基台2000上で軸受板250,250の後方に立設された支持板280に、球面軸受290を介して後端が支持されたフロントエアシリンダ300が前方へ延びており、同フロントエアシリンダ300の前方へ突出した伸縮自在のロッド300aの先端が前記クランク部材270にピン310により軸支されている。
一方メインフレーム200の前端には下方に前側ブラケット230が垂設され、同前側ブラケット230の下端と前記クランク部材270の前端とが球面軸受320を介して連結されている。
したがってフロントエアシリンダ300のロッド300aを伸縮させると、クランク部材270が揺動して前側ブラケット230を介してメインフレーム200を上下に揺動させることができる(図23および図26参照)。なおフロントエアシリンダ300は、ロッド300aを共通にして前後2つのシリンダを直列に連結したものである。
一方基台2000の後部には左右に立設された一対の軸受板350,350間に支軸360が架設され、支軸360に下端を枢支され前後に揺動自在の揺動支持体370が上方に延出し、同揺動支持体370の上端に球面軸受380が突設されている。そしてメインフレーム200の後部において下方へ垂設された後側ブラケット240の上部中央から支軸390が後方へ突設され、同支軸390が前記球面軸受380に連結されている。
こうしてメインフレ−ム200の後部は、揺動支持体370に球面軸受380,支軸390を介して支持されており、メインフレーム200は揺動支持体370により前後への移動が許容され、支軸390を中心に左右への傾動を自在としている。
前記後側ブラケット240は、図25に示すように左側に偏って垂設され、その下端に支軸400が設けられている。そして後側ブラケット240の下方に背中合わせに直列に結合された2つのリヤエアシリンダ410,420が配設されており、一方のリヤエアシリンダ410のロッド410aの先端が前記支軸400に球面軸受430を介して連結され、他方のリヤエアシリンダ420のロッド420aの先端が球面軸受440を介して基台2000の右側縁近傍のブラケット450に支持されている。
したがってリヤエアシリンダ410,420は、上側ロッド410aの先端がメインフレームと一体の後側ブラケット240の左に偏った球面軸受430に連結され、下側ロッド420aの先端が基台2000の右側縁近傍のブラケット450に突設された球面軸受440に達結され、図25に示すように傾斜した姿勢にある。
直列に結合されたリヤエアシリンダ410,420は、図25および図27に図示するように船体3000が左右水平状態にあるときは、一方のリヤエアシリンダ410がロッド410aを収縮し他方のリヤエアシリンダ420がロッド420aを伸長した状態にある。
そして図28に図示するようにフレーム200,220が右側を下げ右傾状態となると、収縮していたリヤエアシリンダ410のロッド410aが伸長し、両リヤエアシリンダ410,420が伸長状態になる。
逆に図29に図示するようにフレーム200,220が左側を下げ左傾状態になると、伸長していたリヤエアシリンダ420のロッド420aが収縮し、両リヤエアシリンダ410,420が収縮状態になる。
この両リヤエアシリンダ410,420には、電気信号により空気圧が制御される電空レギュレータ(電気式圧力制御器)により加えられる圧力を可変としており、圧力が高ければ外力によりロッド410a,420aを伸縮させるのが困難となり、逆に圧力が低ければロッド410a,420aを伸縮させるのは容易となる。
すなわち船体3000に乗った遊戯者が左右に体重を移動したときに、圧力が低い程容易に船体3000を傾動させることができる。なおこの船体3000の左右への傾動は、傾斜センサー120により検出されるようになっている。
上記のように遊戯者の体重移動により船体3000を傾動させることができるとともに、リヤエアシリンダ410,420を積極的に駆動させることで強制的に船体3000を傾動させることも当然可能である。
以上のような乗り物遊戯機100の制御系の概略ブロック図を図30に示す。本乗り物遊戯機100の全体を統括して制御するメインボード500が、ゲームを進行させ、制御ボード510が前記フロントエアシリンダ300やリヤエアシリンダ410,420の駆動を制御する。
メインボード500には、前記舵角センサー1000,アクセル操作センサー110,傾斜センサー120等の検出信号が入力され、舵角センサー1000と傾斜センサー120の検出信号は、別途直接制御ボ−ド510に入力されている。メインボード500から制御ボード510には、ゲーム進行過程において船体3000を揺動させる指示信号が出力され、逆に制御ボード510からはメインボード500に船体3000の制御状態信号を出力している。
本乗り物遊戯機100は、ジェットスキーを模したものであるからモニターテレビ900には海上の様子が映像として映し出され、船体3000に乗った遊戯者はかかる映像を見てあたかも実際に海上にジェットスキーに乗って浮かんでいるかのような感覚を得ることができる。
メインボード500は、ゲームの進行に沿って画像指示信号を画像処理装置520に出力し、画像処理装置520が画像指示信号を処理してモニターテレビ900に画像信号を出力して映像を映し出す。
一方制御ボード510は、舵角センサー1000,傾斜センサー120からの検出信号とともにメインボード500からの指示信号を入力して、空気圧回路530の各種電磁弁および電空レギュレータ等を制御してフロントエアシリンダ300やリヤエアシリンダ410,420を駆動する。
空気圧回路530を図31に示す。空気圧は、止め弁600,フィルタ610を介して減圧弁620,630でそれぞれ減圧され、一方の減圧弁620は、分岐した2ルートのそれぞれで電空レギュレータ640,700に接続されている。
その−方の電空レギュレータ640は、5ポート3位置切換弁650の1ポートに接続され、5ポート3位置切換弁650の他の2ポートはマフラーに繋がり、さらに他の2ポートは、それぞれ2ポート2位置切換弁660,670の各ポートに接続されて、この2ポート2位置切換弁660,670の他のポートがそれぞれ前記フロントエアシリンダ300の前側シリンダの両ポートにそれぞれ接続されている。
また前記減圧弁630は、2ポート2位置切換弁680を介して該フロントエアシリング300の後側シリンダのヘッド側ポートに接続され、後側シリンダのロッド側ポートは、別の2ポート2位置切換弁690に接続されている。
フロントエアシリンダ300は、前記したように共通のロツド300aを有する前後2つのシリンダからなり、後側シリンダに伸長側に2ポート2位置切換弁680,690を介して一定の圧力を加えて常時維持しておき、遊戯者が乗った船体3000の重量による収縮側に作用する力との平衡をとるようにすることで、船体3000は通常でも安定しており、その際エアスプリング作用があり、他方のシリンダを駆動して船体3000を揺動させる場合も低い空気圧で可能である。
また前側シリンダの両ポ−トには電空レギュレータ640により圧力制御された空気圧が、5ポート3位置切換弁650により切り換え制御され2ポート2位置切換弁660,670を介して加えられるので、ロッド300aのストロークの位置および移動速度の制御が可能である。
一方前記減圧弁620から分岐した他方のルートにおける電空レギュレータ700は、4ポート2位置切換弁710と2ポート2位置切換弁720を介してリヤエアシリンダ410,420の一方のリヤエアシリンダ410のロッド側ポートに接続されるとともに、並列に4ポート2位置切換弁730と2ポ−ト2位置切換弁740を介して他方のリヤエアシリンダ420のロッド側ポートに接続されている。
リヤエアシリンダ410,420の各ヘッド側ポートはそれぞれ2ポート2位置切換弁750,760に接続され、両2ポート2位置切換弁750,760の他ポートは1つに連結されて流量調整弁770に接続されている。
該リヤエアシリンダ410,420は、フロントエアシリンダ300とは異なり、共通のロッドを有せず、それぞれロッド410a,420aを有する独立したリヤエアシリンダ410,420であり、別の電空レギュレータ700により圧力制御される。
いま図27に示すように船体3000が水平状態にあり、アクセル操作である速度で走行しているとすると、図32に示すような舵角φに応じた空気圧Pの制御がなされる。図32は、縦軸が空気圧Pで原点に対して右横軸が右方向への舵角φであり、左横軸が左方向への舵角である。
遊戯者が操舵ハンドル500を右方向に操作したとすると、右舵角が大きくなる程シリンダ410(図32において実線)の空気圧Pが低くなり、リヤエアシリンダ420(図32において破線)の方は一定空気圧P0が維持される。したがって図27の状態においてリヤエアシリンダ410がロッド410aを伸縮容易となり、遊戯者が体重を右側に移動すると図28に示すように船体3000を右に傾けることが容易となり、それも右舵角φが大きい程船体3000の右傾が容易となる。
逆に操舵ハンドル500を左方向に操作し左舵角φを大きくすると、リヤエアシリンダ410は一定空気圧P0が維持され、リヤエアシリンダ420の空気圧Pが低くなってリヤエアシリンダ420のロッド420aが伸縮容易となり、遊戯者が体重を左側に移動すると図29に示すように船体3000を左に傾けることが容易となり、それも左舵角φが大きい程船体3000の左傾が容易となる。
舵角と船体3000の傾きは、ゲーム上の船体3000の旋回半径を決定し、メインボード500が舵角センサー1000と傾斜センサ−120の検出信号から舵角とともに船体の傾きを入力して、これら値が大きい程旋回半径を小さく設定する。すなわち急旋回を可能とする。
以上の制御は、ある走行速度における例であり、アクセル操作により速度を変えると、図32のリヤエアシリンダ410とリヤエアシリンダ420の傾斜した空気圧特性線の傾斜角度が変化し、高速になるほど傾斜が緩くなり、よって体重移動により船体を傾けることが困難となる。
そこで遊戯者は、ハンドル操作とともに左右への体重移動をアクセル操作に合わせて適切に行うことで所望の旋回を円滑に行うことができるが、ハンドル操作と体重移動が適切でないと、思うような旋回ができず技巧を要する処である。この技巧を要する処が興趣をそそられる点であり、繰り返しプレーすることで、技巧が進歩しプレーが益々面白くなる。
尚、本乗り物遊戯機100は、ゲーム上で走行路には種々の障害物があったり、波も大波から小波まで生じるよう設定されて、これらはモニターテレビ900に映し出されるとともに、波等により船体3000が揺動させられるようになっている。その際フロントエアシリンダ300の駆動で船体3000は上下に揺動してピッチングを生じさせるとともに、リヤエアシリンダ410,420を積極的に駆動させて船体3000を左右に揺動させローリングを生じさせこともできる。