(57)【特許請求の範囲】
【請求項１】
プレイヤが操作する操作手段からの操作信号に応答して、仮想空間内に設けられたコースに沿ってオブジェクトを移動させて進行するゲームのプログラムを記憶した記憶手段から読み出して実行する制御手段と、前記仮想空間を仮想視点から見た前記ゲームの画像を表示する表示手段とを備えたゲーム装置であって、
前記記憶手段は、
前記コースを所定区間で区切ったブロック毎に、速度データと走行ラインを形成する位置データを記憶しており、
前記制御手段は、
前記ブロック毎に定められた前記位置データに基づいて前記コース上の走行ラインを形成し、前記走行ラインを含むゲーム画像を生成して前記表示手段に表示させ、
前記操作手段からの操作信号に基づいて前記オブジェクトを移動させ、前記オブジェクトが現在位置するブロックを判定し、前記移動するオブジェクトの現在の速度を算出し、
前記移動するオブジェクトが現在位置するブロックより先のブロックに対応付けされた速度データを前記記憶手段から読み出して、前記先のブロックの速度データと現在の速度とを比較し、
前記先のブロックの速度データの値が現在の速度を超えていない場合に、前記コースのうち前記先のブロックに対応する部分を変化させた表示態様で表示する走行ラインを形成する処理を実行することを特徴とするゲーム装置。
【請求項２】
プレイヤが操作する操作手段からの操作信号に応答して、仮想空間内に設けられたコースに沿ってオブジェクトを移動させて進行するゲームのプログラムを記憶した記憶手段から読み出して実行する制御手段と、前記仮想空間を仮想視点から見た前記ゲームの画像を表示する表示手段とを備えたゲーム装置であって、
前記記憶手段は、
前記コースを所定区間で区切ったブロック毎に、速度データとブレーキデータと走行ラインを形成する位置データを記憶しており、
前記制御手段は、
前記ブロック毎に定められた前記位置データに基づいて前記コース上の走行ラインを形成し、前記走行ラインを含むゲーム画像を生成して前記表示手段に表示させ、
前記操作手段からの操作信号に基づいて前記オブジェクトを移動させ、前記オブジェクトが現在位置するブロックを判定し、前記移動するオブジェクトの現在の速度を算出し、
前記移動するオブジェクトが現在位置するブロックより先のブロックに対応付けされた速度データを前記記憶手段から読み出して、前記先のブロックの速度データと現在の速度とを比較し、
前記先のブロックの速度データの値が現在の速度を超えていない場合に、前記先のブロックに対応付けされたブレーキデータを使用して前記オブジェクトの移動を制御し、前記コースのうち前記先のブロックに対応する部分を変化させた表示態様で表示する走行ラインを形成する処理を実行し、
前記先のブロックの速度データの値が現在の速度を超えている場合に、前記先のブロックに対応付けされたブレーキデータを修正した値を使用して前記オブジェクトの移動を制御し、前記先のブロックに定められた前記位置データに基づいて前記コース上の走行ラインを形成する処理を実行することを特徴とするゲーム装置。
【請求項３】
請求項１または２のいずれかに記載のゲーム装置において、
前記制御手段は、
前記現在の速度と比較すべき複数の先のブロックの各々について、該先のブロックの速度データと現在の速度データとを比較することを特徴とするゲーム装置。
【請求項４】
請求項３に記載のゲーム装置において、
前記制御手段は、前記現在の速度に基づいて、前記比較すべき先のブロックの個数を算出し、
算出した複数の先のブロックの各々について、該先のブロックの速度データと現在の速度データとを比較することを特徴とするゲーム装置。
【請求項５】
プレイヤが操作する操作手段と、仮想空間内に設けられたコースに沿ってオブジェクトを移動させて進行するゲームのプログラムを記憶した記憶手段と、前記操作手段からの操作信号に応答して前記記憶手段から前記プログラムを読み出して実行する制御手段と、前記仮想空間を仮想視点から見たゲームの画像を表示する表示手段とを備えたゲーム装置の制御方法であって、
前記記憶手段には、前記コースを所定区間で区切ったブロック毎に、速度データと走行ラインを形成する位置データが記憶され、
前記制御手段が、前記ブロック毎に定められた前記位置データに基づいて前記コース上の走行ラインを形成し、前記走行ラインを含むゲーム画像を生成して前記表示手段に表示するステップと、
前記制御手段が、前記操作手段からの操作信号に基づいて前記オブジェクトを移動させ、前記オブジェクトが現在位置するブロックを判定し、前記移動するオブジェクトの現在の速度を算出するステップと、
前記制御手段が、前記移動するオブジェクトが現在位置するブロックより先のブロックに対応付けされた速度データを前記記憶手段から読み出して、前記先のブロックの速度データと現在の速度とを比較するステップと、
前記制御手段が、前記先のブロックの速度データの値が現在の速度を超えていない場合に、前記先のブロックに対応付けされたブレーキデータを使用して前記オブジェクトの移動を制御し、前記コースのうち前記先のブロックに対応する部分を変化させた表示態様で表示する走行ラインを形成する処理を実行するステップと
を含むことを特徴とするゲーム装置の制御方法。
【請求項６】
プレイヤが操作する操作手段と、仮想空間内に設けられたコースに沿ってオブジェクトを移動させて進行するゲームのプログラムを記憶した記憶手段と、前記操作手段からの操作信号に応答して前記記憶手段から前記プログラムを読み出して実行する制御手段と、前記仮想空間を仮想視点から見たゲームの画像を表示する表示手段とを備えたゲーム装置の制御方法であって、
前記記憶手段は、前記コースを所定区間で区切ったブロック毎に、速度データとブレーキデータと走行ラインを形成する位置データが記憶され、
前記制御手段が、前記ブロック毎に定められた前記位置データに基づいて前記コース上の走行ラインを形成し、前記走行ラインを含むゲーム画像を生成して前記表示手段に表示するステップと、
前記制御手段が、前記操作手段からの操作信号に基づいて前記オブジェクトを移動させ、前記オブジェクトが現在位置するブロックを判定し、前記移動するオブジェクトの現在の速度を算出するステップと、
前記制御手段が、前記移動するオブジェクトが現在位置するブロックより先のブロックに対応付けされた速度データを前記記憶手段から読み出して、前記先のブロックの速度データと現在の速度とを比較するステップと、
前記制御手段が、前記先のブロックの速度データの値が現在の速度を超えていない場合に、前記先のブロックに対応付けされたブレーキデータを使用して前記オブジェクトの移動を制御し、前記コースのうち前記先のブロックに対応する部分を変化させた表示態様で表示する走行ラインを形成する処理を実行するステップと、
前記制御手段が、前記先のブロックの速度データの値が現在の速度を超えている場合に、前記先のブロックに対応付けされたブレーキデータを修正した値を使用して前記オブジェクトの移動を制御し、前記先のブロックに定められた前記位置データに基づいて前記コース上の走行ラインを形成する処理を実行するステップと
を含むことを特徴とするゲーム装置の制御方法。
【請求項７】
プレイヤが操作する操作手段と、仮想空間内に設けられたコースに沿ってオブジェクトを移動させて進行するゲームのプログラムを記憶した記憶手段と、前記操作手段からの操作信号に応答して前記記憶手段から前記プログラムを読み出して実行する制御手段と、前記仮想空間を仮想視点から見たゲームの画像を表示する表示手段とを備え、前記記憶手段には、前記コースを所定区間で区切ったブロック毎に、速度データと走行ラインを形成する位置データが記憶されたコンピュータに、
前記制御手段が、前記ブロック毎に定められた前記位置データに基づいて前記コース上の走行ラインを形成し、前記走行ラインを含むゲーム画像を生成して前記表示手段に表示するステップと、
前記制御手段が、前記操作手段からの操作信号に基づいて前記オブジェクトを移動させ、前記オブジェクトが現在位置するブロックを判定し、前記移動するオブジェクトの現在の速度を算出するステップと、
前記制御手段が、前記移動するオブジェクトが現在位置するブロックより先のブロックに対応付けされた速度データを前記記憶手段から読み出して、前記先のブロックの速度データと現在の速度とを比較するステップと、
前記制御手段が、前記先のブロックの速度データの値が現在の速度を超えていない場合に、前記先のブロックに対応付けされたブレーキデータを使用して前記オブジェクトの移動を制御し、前記コースのうち前記先のブロックに対応する部分を変化させた表示態様で表示する走行ラインを形成する処理を実行するステップと
を実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項８】
プレイヤが操作する操作手段と、仮想空間内に設けられたコースに沿ってオブジェクトを移動させて進行するゲームのプログラムを記憶した記憶手段と、前記操作手段からの操作信号に応答して前記記憶手段から前記プログラムを読み出して実行する制御手段と、前記仮想空間を仮想視点から見たゲームの画像を表示する表示手段とを備え、前記記憶手段は、前記コースを所定区間で区切ったブロック毎に、速度データとブレーキデータと走行ラインを形成する位置データが記憶されたコンピュータに、
前記制御手段が、前記ブロック毎に定められた前記位置データに基づいて前記コース上の走行ラインを形成し、前記走行ラインを含むゲーム画像を生成して前記表示手段に表示するステップと、
前記制御手段が、前記操作手段からの操作信号に基づいて前記オブジェクトを移動させ、前記オブジェクトが現在位置するブロックを判定し、前記移動するオブジェクトの現在の速度を算出するステップと、
前記制御手段が、前記移動するオブジェクトが現在位置するブロックより先のブロックに対応付けされた速度データを前記記憶手段から読み出して、前記先のブロックの速度データと現在の速度とを比較するステップと、
前記制御手段が、前記先のブロックの速度データの値が現在の速度を超えていない場合に、前記先のブロックに対応付けされたブレーキデータを使用して前記オブジェクトの移動を制御し、前記コースのうち前記先のブロックに対応する部分を変化させた表示態様で表示する走行ラインを形成する処理を実行するステップと、
前記制御手段が、前記先のブロックの速度データの値が現在の速度を超えている場合に、前記先のブロックに対応付けされたブレーキデータを修正した値を使用して前記オブジェクトの移動を制御し、前記先のブロックに定められた前記位置データに基づいて前記コース上の走行ラインを形成する処理を実行するステップと
を実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ゲーム装置に係わり、特に、仮想３次元空間において自動車などのオブジェクトを遊戯者の操作に応答して移動させる状態を画像表示するゲーム装置に関する。
【０００２】
【従来の技術】
近年のコンピュータグラフィックス技術の発達に伴い、業務用、家庭用を問わず、シミュレーション装置やゲーム装置が広く一般に普及するようになっている。これらの装置の一つのジャンルとして、仮想３次元空間（ゲーム空間）に設定したコース上をオブジェクトとしての自動車を移動させて周回時間を競うドライビング（カーレース）ゲームがあり、根強い人気を得ている。
【０００３】
このゲームを行なうシミュレーション装置又はゲーム装置（以下、ゲーム装置という）は、通常、予め記憶したゲームプログラムを実行するコンピュータ装置を内蔵した装置本体と、ゲームで表現させるオブジェクトの移動を指令する操作信号をコンピュータ装置に与える操作器と、コンピュータ装置でゲームプログラムが実行されることによるゲーム展開に伴う画像を表示するディスプレイと、ゲーム展開に伴う音響を発生させる音響装置とを備える。
【０００４】
このゲーム装置にあっては、遊戯者をドライバにみたてた自動車（オブジェクト）などがディスプレイに表示される。遊戯者は、操作器を操作して走行路、走行速度などの情報をコンピュータ装置に与える。コンピュータ装置は、この操作情報に応じて自動車の挙動をリアルタイムに計算して走行状態の画像データを求め、この画像データをディスプレイに表示させる。
【０００５】
このゲームの運転モードは、以下のようである。ディスプレイに表示させる画像には、遊戯者の自動車のみならず、道路標識なども背景とともに表示される。遊戯者は、ディスプレイに表示された走行路の曲がり具合、カーブなどを示す標識の内容、周りの景色の移動具合などから走行状態を読み取り、加速や減速を操作器（アクセルペダル、レバー、シフトレバーなど）を介して制御する。
【０００６】
【発明が解決しようとする課題】
しかしながら、従来のドライビングゲームにあっては、運転モードが１つであり、遊戯者は、表示される背景や道路標識などを見ながら走行状態を判断するのみであるから、熟練者にとってはその熟練度に応じて好成績が残せるからよいものの、初心者や運転が苦手や遊戯者にとってはなかなか成績が上がらず、その間にゲームへの興味が薄れてしまうという問題があった。
【０００７】
反対に、初心者でも容易に楽しめるようにゲーム内容、例えばコース（走行路）の難易度を下げておくこともできるが、それでは上級者や熟練者には物足りない走りとなる。このため、どうしてもコース設定など、ゲームの難易度は高くなりがちで、高い運転技術が要求され、上述のように初心者にはしきいの高いゲームとなっていた。運転技術の難しさだけではゲーム装置としての娯楽性に乏しく、この面への配慮も必要であった。
【０００８】
本発明は、このような従来技術が直面している状況に鑑みてなされたもので、初心者から上級者まで様々な運転技術レベルの遊戯者がゲーム性とシミュレーション性を両立させながら楽しむことができるドライビングゲームなどのゲームを提供することを、その目的とする。
【０００９】
【課題を解決するための手段】
上記各目的を達成させるため、本発明にゲーム装置は下記のように構成されている。
【００１０】
第1の発明は、プレイヤが操作する操作手段からの操作信号に応答して、仮想空間内に設けられたコースに沿ってオブジェクトを移動させて進行するゲームのプログラムを記憶した記憶手段から読み出して実行する制御手段と、前記仮想空間を仮想視点から見た前記ゲームの画像を表示する表示手段とを備えたゲーム装置であって、前記記憶手段は、前記コースを所定区間で区切ったブロック毎に速度データを記憶しており、前記制御手段は、前記操作手段からの操作信号に基づいて前記オブジェクトを移動させ、前記オブジェクトが現在位置するブロックを判定し、前記移動するオブジェクトの現在の速度を算出し、前記移動するオブジェクトが現在位置するブロックより先のブロックに対応付けされた速度データを前記記憶手段から読み出して、前記先のブロックの速度データと現在の速度とを比較し、前記先のブロックの速度データの値が現在の速度を超えていない場合と、前記先のブロックの速度データの値が現在の速度を超えている場合とで、前記表示手段に表示するゲーム画像の表示態様を異ならせる処理を実行することを特徴とする。
【００１１】
第２の発明は、プレイヤが操作する操作手段からの操作信号に応答して、仮想空間内に設けられたコースに沿ってオブジェクトを移動させて進行するゲームのプログラムを記憶した記憶手段から読み出して実行する制御手段と、前記仮想空間を仮想視点から見た前記ゲームの画像を表示する表示手段とを備えたゲーム装置であって、前記記憶手段は、前記コースを所定区間で区切ったブロック毎に、速度データと走行ラインを形成する位置データを記憶しており、前記制御手段は、前記ブロック毎に定められた前記位置データに基づいて前記コース上の走行ラインを形成し、前記走行ラインを含むゲーム画像を生成して前記表示手段に表示させ、前記操作手段からの操作信号に基づいて前記オブジェクトを移動させ、前記オブジェクトが現在位置するブロックを判定し、前記移動するオブジェクトの現在の速度を算出し、前記移動するオブジェクトが現在位置するブロックより先のブロックに対応付けされた速度データを前記記憶手段から読み出して、前記先のブロックの速度データと現在の速度とを比較し、前記先のブロックの速度データの値が現在の速度を超えていない場合に、前記コースのうち前記先のブロックに対応する部分を変化させた表示態様で表示する走行ラインを形成する処理を実行することを特徴とする。
【００１２】
第３の発明は、プレイヤが操作する操作手段からの操作信号に応答して、仮想空間内に設けられたコースに沿ってオブジェクトを移動させて進行するゲームのプログラムを記憶した記憶手段から読み出して実行する制御手段と、前記仮想空間を仮想視点から見た前記ゲームの画像を表示する表示手段とを備えたゲーム装置であって、前記記憶手段は、前記コースを所定区間で区切ったブロック毎に、速度データとブレーキデータと走行ラインを形成する位置データを記憶しており、前記制御手段は、前記ブロック毎に定められた前記位置データに基づいて前記コース上の走行ラインを形成し、前記走行ラインを含むゲーム画像を生成して前記表示手段に表示させ、前記操作手段からの操作信号に基づいて前記オブジェクトを移動させ、前記オブジェクトが現在位置するブロックを判定し、前記移動するオブジェクトの現在の速度を算出し、前記移動するオブジェクトが現在位置するブロックより先のブロックに対応付けされた速度データを前記記憶手段から読み出して、前記先のブロックの速度データと現在の速度とを比較し、前記先のブロックの速度データの値が現在の速度を超えていない場合に、前記先のブロックに対応付けされたブレーキデータを使用して前記オブジェクトの移動を制御し、前記コースのうち前記先のブロックに対応する部分を変化させた表示態様で表示する走行ラインを形成する処理を実行し、前記先のブロックの速度データの値が現在の速度を超えている場合に、前記先のブロックに対応付けされたブレーキデータを修正した値を使用して前記オブジェクトの移動を制御し、前記先のブロックに定められた前記位置データに基づいて前記コース上の走行ラインを形成する処理を実行することを特徴とする。
【００１３】
ここで、上記構成にあっては、前記制御手段は、前記現在の速度と比較すべき複数の先のブロックの各々について、該先のブロックの速度データと現在の速度データとを比較し、比較結果に基づき前記コース上の走行ラインを形成し、前記走行ラインを含むゲーム画像を生成して前記表示手段に表示させる態様が好ましい。
【００１４】
さらに、前記制御手段は、前記現在の速度に基づいて、前記比較すべき先のブロックの個数を算出し、算出した個数の先のブロックの各々について、該先のブロックの速度データと現在の速度データとを比較する態様がより好ましい。
ことを特徴とするゲーム装置。
【００１５】
また、本願のゲーム装置の制御方法に係る発明は、プレイヤが操作する操作手段と、前記操作手段からの操作信号に応答して、仮想空間内に設けられたコースに沿ってオブジェクトを移動させて進行するゲームのプログラムを記憶した記憶手段と、前記仮想空間を仮想視点から見たゲームの画像を表示する表示手段とを備えたゲーム装置の制御方法であって、前記記憶手段には、前記コースを所定区間で区切ったブロック毎に速度データが記憶され、前記操作手段からの操作信号に基づいて前記オブジェクトを移動させ、前記オブジェクトが現在位置するブロックを判定し、前記移動するオブジェクトの現在の速度を算出するステップと、前記移動するオブジェクトが現在位置するブロックより先のブロックに対応付けされた速度データを前記記憶手段から読み出して、前記先のブロックの速度データと現在の速度とを比較するステップと、前記先のブロックの速度データの値が現在の速度を超えていない場合と、前記先のブロックの速度データの値が現在の速度を超えている場合とで、前記表示手段に表示するゲーム画像の表示態様を異ならせるステップとを含むことを特徴とする。
【００１６】
また、本願の記録媒体に係る発明は、プレイヤが操作する操作手段と、前記操作手段からの操作信号に応答して、仮想空間内に設けられたコースに沿ってオブジェクトを移動させて進行するゲームのプログラムを記憶した記憶手段と、前記仮想空間を仮想視点から見たゲームの画像を表示する表示手段とを備え、前記記憶手段には、前記コースを所定区間で区切ったブロック毎に速度データが記憶されたコンピュータに、前記操作手段からの操作信号に基づいて前記オブジェクトを移動させ、前記オブジェクトが現在位置するブロックを判定し、前記移動するオブジェクトの現在の速度を算出するステップと、前記移動するオブジェクトが現在位置するブロックより先のブロックに対応付けされた速度データを前記記憶手段から読み出して、前記先のブロックの速度データと現在の速度とを比較するステップと、前記先のブロックの速度データの値が現在の速度を超えていない場合と、前記先のブロックの速度データの値が現在の速度を超えている場合とで、前記表示手段に表示するゲーム画像の表示態様を異ならせるステップとを実行させるためのプログラムを記録したことを特徴とする。
【００１７】
さらに本願の第4の発明によれば、仮想３次元空間でオブジェクトを操作者からの操作に応じて移動させ、このオブジェクトの移動状態の画面を生成するゲーム装置であって、前記オブジェクトのブレーキ操作タイミングを前記操作者に報知するブレーキタイミング報知モードを含む複数の移動モードを提供する移動モード提供手段と、前記操作者の選択により前記移動モードを選択する選択手段とを備え、前記ブレーキタイミング報知モードを実現する前記移動モード提供手段は、前記操作者が操作する前記オブジェクトの速度および位置に基づいてブレーキ操作が必要か否かを判断する判断手段と、この判断手段でブレーキ操作が必要であると判断された場合、前記操作者が操作する前記オブジェクトの速度および位置に基づいてブレーキタイミングを算出する算出手段と、この算出手段により算出されたブレーキタイミングに基づいて前記ブレーキ操作タイミングを前記操作者に報知する報知手段とを備えたことを特徴とする。
【００１８】
この場合、例えば、前記判断手段および算出手段は、前記操作者が操作する前記オブジェクトの速度および位置と、その位置に対応する参考データとに基づいてそれぞれ判断および算出する手段である。また例えば、前記報知手段は、前記オブジェクトの速度が大きいときは、その速度が小さいときに比べて、前記ブレーキ操作タイミングを早めに報知する手段である。
【００１９】
さらに本願の第５の発明によれば、実空間の路面を走行する車両のブレーキ力を制御する車両制動制御装置において、前記車両が走行する走行路のブレーキングに関するデータを予め記憶させた記憶手段と、前記車両の前記走行路上の位置を検出する車両位置検出手段と、前記記憶手段が記憶しているデータと前記車両位置検出手段が検出した位置とに基づいて前記車両の走行時のブレーキング状態を自動的に制御する制御手段とを備えたことを特徴とする。
【００２０】
【発明の実施の形態】
以下、本発明に係る実施の形態を添付図面に基づき説明する。
【００２１】
（第１の実施の形態）
第１の実施形態を、図１〜図２３を参照して説明する。
【００２２】
この実施形態で実施するゲーム装置は、周回コース（走行ライン）を走行してラップタイムを競うドライビングゲームを提供する。
【００２３】
図１に、このゲーム装置の電気的な概略ブロック図を示す。同図に示すように、ゲーム装置はゲーム処理ボード１０を備える。このゲーム処理ボード１０には、操作装置１１、ディスプレイ１２、スピーカ１３、外部拡張コネクタ１４などの装置が電気的に接続されている。遊戯者はディスプレイ１２に表示されるゲーム画面を見ながら、操作装置１１の各種デバイスを操作してドライビングゲームを行うことができる。
【００２４】
ゲーム処理ボード１０は、図示しないカウンタのほか、ＣＰＵ（中央処理装置）２１、ジオメトリプロセッサ２２、システムメモリ２３、プログラムデータ用ＲＯＭ２４、ブートメモリ２５、バスコントローラ用のバスアービタ２６、レンダリングプロセッサ２７、グラフィックメモリ２８、ビデオＤＡＣ２９、オーディオプロセッサ３０、オーディオメモリ３１、オーディオＤＡＣ３２を備え、これらの要素の一部同士がバスライン３３により互いに接続されている。
【００２５】
この内、ＣＰＵ２１は、バスライン３３を介してジオメトリプロセッサ２２およびシステムメモリ２３に接続されるとともに、バスアービタ２６およびバスライン３３を介して、その第１の系統はプログラムデータ用ＲＯＭ２４、ブートＲＯＭ２５に、その第２の系統はＩ／Ｏ３４を経由して操作装置１１に、その第３の系統は外部拡張コネクタ１４に、その第３の系統はオーディオプロセッサ３０に、その第４の系統はレンダリングプロセッサ２７にそれぞれ接続されている。またレンダリングプロセッサ２７はグラフィックメモリ２８およびビデオＤＡＣ２９に接続されている。オーディオプロセッサ３０はオーディオメモリ３１およびオーディオＤＡＣ３２に接続されている。
【００２６】
システムメモリ２３は、この装置の所定プログラムや画像処理プログラムを予め記憶している。またブートＲＯＭ２５はシステム立ち上げ用のプログラムを予め記憶している。
【００２７】
ＣＰＵ２１は、電源投入後、ブートＲＯＭ２５に記憶されている立ち上げ用プログラムを読み込んでシステムを起動し、その後はシステムメモリＲＯＭ２２に内蔵させたプログラムに基づいて各種の演算および制御に関わる処理を実行する。その処理には、予め設定した複数の運転モードから所望の運転モードを選択する処理、各運転モードに特有の処理、車両の挙動計算（シミュレーション）処理、および特殊効果の計算処理が含まれる。
【００２８】
挙動計算は、仮想３次元空間（ゲーム空間）での車両の動きをシミュレートするものである。これを実行するには、仮想３次元空間における車両のポリゴンの座標値が決定された後、この座標値を２次元視野座標系に変換するための変換マトリクスと形状データ（ポリゴンデータ）とがジオメトリプロセッサ２３に指定される。なお、ポリゴンデータとは、複数の頂点の集合からなるポリゴン（多角形：主に３角形、４角形）の各頂点の相対ないしは絶対座標の座標データ群を言う。
【００２９】
プログラムデータ用ＲＯＭ２４には、複数のポリゴンから成る形状データ（各頂点から成るキャラクタ、地形、背景などの３次元データ）が予め記憶されている。この形状データはジオメトリプロセッサ２２に渡される。ジオメトリプロセッサ２２はＣＰＵ２１から送られてくる変換マトリクスで、指定された形状データの透視変換を行い、３次元仮想空間での座標系から視野座標系に変換した形状データを得る。この形状データはレンダリングプロセッサ２７に送られる。
【００３０】
レンダリングプロセッサ２７は、グラフィックメモリ２８からテクスチャデータを読み出し、変換された視野座標系の形状データにこのテクスチャを貼り付け、ビデオＤＡＣ２９内のフレームバッファに出力する。フレームバッファに一時記憶された車両、地形（背景）などのポリゴン画面（シミュレーション結果）と文字情報などのスクロール画面とが指定プライオリティにしたがって合成され、最終的なフレーム画像データが一定タイミング毎に生成される。このフレーム画像データはＤ／Ａ変換されてディスプレイ１２に送られ、ゲーム画面としてリアルタイムに表示される。
【００３１】
オーディオプロセッサ３０はＣＰＵ２１からの指令に基づき音響データを生成し、このデータをオーディオＤＡＣ３２を介してスピーカ１３に出力する。これにより、音響データが電力増幅され、スピーカ１３から音響として出力される。
【００３２】
さらに操作装置１１には、遊戯者が操作する運転モード選択スイッチ１１ａ、ハンドル１１ｂ、アクセルペダル１１ｃ、ブレーキペダル１１ｄ、シフトレバー１１ｅ、ビューチャンジスイッチ１１ｆなどが装備されている。これにより、遊戯者はディスプレイ１２の表示画面を見ながら、運転モード選択情報、操舵角情報、加速情報、減速情報、変速機シフト位置情報、仮想３次元空間に置くカメラ視点の位置情報などのドライビング情報をＩ／Ｆ３４を介してＣＰＵ２１に与えることができる。
【００３３】
続いて、本実施形態のゲーム装置によるドライビングゲームの画像生成処理を説明する。ＣＰＵ２１は、ゲーム装置を起動させた後の定常状態として所定のメインプログラムを実行するとともに、その実行過程において、タイマ割込み処理として図２および図３の処理を実行する。
【００３４】
［運転モード選択処理］
図２の処理は、ＣＰＵ２１により一定時間Δｔ’毎に実行される、車両（自車）の運転モードを遊戯者が予め用意されている複数の運転モードから選択するための処理ルーチンである。この一定時間Δｔ’は、後述する図３の処理に対する割込み時間Δｔとは必ずしも同じでなくてもよい。
【００３５】
ＣＰＵ２１は、運転モード選択スイッチ１１ａのスイッチ情報を運転モード選択情報として読み込み（図２、ステップＳ１）、その情報に応じて４種類の運転モードの内の何れかを設定する（ステップＳ２）。
【００３６】
運転モードとして、本実施形態ではアシストモード、セミ・アシストモード、トレーニングモード、およびシミュレーションモードの４種類が用意されている。この４種類の運転モードは、車両を走行させる走行ラインはいずれも同じでありながら、遊戯者が仮想車両を走行させるための運転特性（ここでは、走行ラインと車両との間の物理的な運動関係に起因した運転操作のし易さをいう）を互いに違えたことに特徴を有する。車両の運転特性に影響する制御ファクタ（ＡＢＳ，ＴＲＣ，オートブレーキ制御など）をどの程度取り入れるかで、個々の運転特性を差別化し、その独自性を発揮させている。
【００３７】
アシストモードは、初心者向きのモードで、理想的な運転状態として採用した熟練者の運転状態（これを理想状態と仮定する）を示す参考データＤＡＴＡrefを基にしてその運転をアシストするモードである。アシスト内容としては、ブレーキングを自動的にアシストするためのアクセルペダル１１ｃの開度とブレーキペダル１１ｄの踏み込み量の制御（以下、必要に応じてオートブレーキ制御という）が中心となる。また、このアシストモードでは、ＡＢＳ（アンチスキッド）制御、ＴＲＣ（トラクションコントロール）などの制御も車両挙動演算の一つとして実行され、この結果、その運転特性も初心者向きに優しいものに自動制御される。
【００３８】
また、セミアシストモードは、運転に多少慣れた初心者に好適なモードで、上述したアシストモードからオートブレーキ制御の機能を外したモードである。運転特性は、オートブレーキ制御を外した分、運転者の技量が運転状態に反映し易くなっている。
【００３９】
さらに、トレーニングモードは上述したアシストモードと共に、本発明の要旨の１つを成すモードであり、これも初心者に好適な運転モードを提供する。とくに、初めてゲームをする遊戯者やドライビングゲームに不慣れな遊戯者を対象に熟練者の運転に関するデータ（参考データＤＡＴＡref）を基に、ゲーム中に音声および／または表示により運転操作の要所を指示（アドバイス）するモードである。このモードの運転特性それ自体は、セミアシストモードと同じであるが、運転操作に対する指示によって、遊戯者はセミアシストモードよりも運転は優しいという印象を持ち易くなっている。
【００４０】
さらにまた、シミュレーションモードは上級者や熟練者に適したモードであり、装置側から自動的に遊戯者の運転状態をアシストする機能や装置側から運転を指示する機能を一切、搭載せず、遊戯者（運転者）の生の運転技量をそのままシミュレートするモードであり、運転特性も一番、難しく設定される。
【００４１】
そこで、ＣＰＵ２１は、遊戯者の運転モード選択情報がアシストモードを選択しているときには、その選択状態を示す変数ＭＤ＝０に設定し、セミアシストモードを選択しているときには、変数ＭＤ＝１に設定する。また、トレーニングモードを選択しているときには、変数ＭＤ＝２に設定する一方、シミュレーションモードを選択しているときには、変数ＭＤ＝３に設定する（ステップＳ２）。
【００４２】
以上の運転モード選択処理は、一定時間Δｔ’毎に実行されるため、遊戯者が別の運転モードを選択したときには、その後のメインルーチンは更新した運転モードで処理がなされる。
【００４３】
［画像生成処理］
一方、図３は画像生成処理のメインルーチンを示す。このメインルーチンは例えば表示インターラプトに同期した１フィールド（Δｔ＝１／６０秒）毎にＣＰＵ２１により繰り返し実行される。
【００４４】
具体的には、上述した運転モード選択処理（図２）により現在設定されている変数ＭＤの値をチェックして運転モードを判断する（ステップＳ１１〜Ｓ１３）。この結果、変数ＭＤ＝０であり、アシストモードと判定されたときには、ステップＳ１４〜Ｓ１７の処理に移行する。変数ＭＤ＝１であり、セミアシストモードと判定されたときには、ステップＳ１８〜Ｓ２０の処理に移行する。さらに変数ＭＤ＝２であり、トレーニングモードと判定されたときには、ステップＳ２１〜Ｓ２４の処理に移行する。さらにまた、変数ＭＤ＝３であり、シミュレーションモードと判定されたときには、ステップＳ２５〜Ｓ２７の処理に移行する。
【００４５】
この運転モード別の処理を更に詳細に説明する。
【００４６】
１．アシストモード
まず、アシストモードの場合、操作器１１のハンドル１１ｂ，アクセルペダル１１ｃ，ブレーキペダル１１ｄ，およびシフトレバー１１ｅに対する現在の操作状態の情報（操舵角、アクセル開度、ブレーキ踏み込み量、シフトレバー位置）を読み込む（ステップＳ１４）。次いで、オートブレーキ制御の処理を行なう（ステップＳ１５）。
【００４７】
このオートブレーキ制御の処理は、図４に示すサブルーチンとして実行される。このオートブレーキ機能を作動開始させる基準は予め決められている。つまり、ゲームの運転に熟練した熟練者（上級者）が理想的な走りをしたときの速度データ、ブレーキデータ（ブレーキングの度合いを示すデータ）、走行ライン（位置）などの運転データ（これは、このゲーム装置で取り扱うコースにとって理想的な走りを表すデータであり、以下、「参考データＤＡＴＡref」と呼ぶ）をサンプリングして、これをデータテーブルの形でＲＯＭ１４に予め記憶させてある。この参考データＤＡＴＡrefは、各コースを所定間隔（例えば４ｍ〜８ｍ）で区切った区間（以下、ブロック）単位で与えられている（後述する図６（ａ）参照）。
【００４８】
参考データＤＡＴＡrefは、予め、参考データ作成ツールで作成される。参考データＤＡＴＡrefの全てを机上計算により作成可能であるが、これは非常に手間が掛かるし、また走行ラインを机上で想像して計算するのはリアリティに欠けるなどの問題がある。そこで、本実施形態では、熟練者がゲームで実際に走行した速度データ、ブレーキデータ、および走行ラインデータを含む参考データＤＡＴＡrefをバイナリーセーブしておいて、これを参考データ作成ツールでロードし、このデータを修正することにより参考データＤＡＴＡrefが作成される。
【００４９】
そこで、ＣＰＵ２１は、現在の車両速度と参考データＤＡＴＡrefを参照して得たサンプリングデータとから現在必要とする目標加速度を演算する（ステップＳ２１）。詳しくは、車両が現在、位置するブロックよりも１つ先のブロックの参考データＤＡＴＡrefをサンプリングした参考速度データＳＰrefと現在の車両速度Ｖと、それに、その１つ先のブロックまでの距離を用いて目標加速度を演算が演算される。
【００５０】
次いで、アクセルペダル１１ｃおよびブレーキペダル１１ｄの操作読み取り値から遊戯者が運転している車両（プレーヤカー）の次のブロックにおける加速度を予測する（ステップＳ２２）。次いで、ＣＰＵ２１は、目標加速度≧予測加速度か否かを判断する（ステップＳ２３）。
【００５１】
このステップＳ２３の比較判断でＹＥＳ（目標加速度≧予測加速度）となるときは、強制的なブレーキ制御は必要がないと判断し、アクセルペダル１１ｃおよびブレーキペダル１１ｄの操作量として、遊戯者が操作したままの値を設定する（ステップＳ２４、Ｓ２５）。これにより、後述する車両（プレーヤカー）の挙動計算およびゲーム処理には遊戯者の操作がそのまま反映される。
【００５２】
これに対して、ステップＳ２３の比較判断においてＮＯ（目標加速度＜予測加速度)となる場合、アクセル全閉時のエンジンブレーキとブレーキペダル１１ｄの現在の踏み込み量とから試算した加速度と目標加速度とを比較することで、ブレーキペダル１１ｄを更に踏み込む必要があるか否かを判断する（ステップＳ２６）。
【００５３】
この判断により更なるブレーキ踏み込みが不要なときは、目標加速度とブレーキ踏み込み量とからアクセル開度を逆算し、遊戯者が操作したアクセル開度をその逆算値で置き換える（ステップＳ２７）。しかし、ＣＰＵ２１は、ブレーキ踏み込み情報としては、遊戯者が操作した踏込み量をそのままにして車両挙動計算処理に使用させる（ステップＳ２８）。
【００５４】
上述のステップＳ２６において、ＹＥＳ（更なるブレーキ踏込みが必要）の比較判断が出たときには、ＣＰＵ２１はアクセル開度およびブレーキ踏込みの強制的な制御を行なう。すなわち、遊戯者が操作したアクセル開度をアクセル開度の全閉（開度＝０）で置き換える（ステップＳ２９）。さらに、目標加速度とエンジンブレーキとからブレーキ踏込み量を逆算して、遊戯者が操作した踏込み量をこの逆算値で置き換える（ステップＳ３０）。
【００５５】
このようにして遊戯者が運転している運転状態から予測した加速度を理想加速度（熟練者が運転したときの加速度）と比較する。この比較結果によりブレーキングが必要であることが示されたときには、自動的に、アクセル開度か、又は、アクセル開度及びブレーキ踏込み量のいずれかが理想値で強制的に制御される（つまりアシストされる）。
【００５６】
したがって、このオートブレーキ制御を行なうと、車両（自動車）のアクセルコントロールとブレーキングの操作を自動的に行なうことができる。遊戯者はアクセルペダル１１ｃを踏み込んだままハンドル１１ｂの操作のみでコースを周回することができ、また制限速度以下の速度で走行している場合、遊戯者はアクセルペダル１１ｃおよびブレーキペダル１１ｄを操作して自在に速度をコントロールすることができる。つまり、ドライビングコースを上級者向けとは別のものにすることなく、ゲームの難易度を下げて、初心者向けに調整することができる。
【００５７】
以上のようにオートブレーキ制御に関わるアクセル開度およびブレーキ踏込み量の設定が終わると、図３に戻って、ＣＰＵ２１は車両挙動を演算する（ステップＳ１６）。これにより、操作情報から車両（プレーヤカー）のヨーイング、ローリング、ピッチングなどに伴う車両姿勢が演算される。このとき、ピッチング演算に際しては、ＴＲＣやＡＢＳが加味される。
【００５８】
次いで、ＣＰＵ２１は、仮想３次元空間の座標系から２次元視野座標系に変換するための変換マトリクスを演算し、この変換マトリクスと形状データとをジオメトリプロセッサ２３に渡す。
【００５９】
この結果、更新した車両挙動を反映したポリゴン画像がディスプレイ１２に表示される。この表示を表示インターラプト毎に繰り返すことで、操作情報に反映し且つ必要に応じてアシストされた運転状態の画像がほぼリアルタイムに提供される。
【００６０】
２．セミアシストモード
図３に示すセミアシストモードの場合は、上述したオートブレーキ制御を行なわずに、操作情報に基づいた、同様の車両挙動計算および表示がなされる。
【００６１】
３．トレーニングモード
また、図３に示すトレーニングモードについて詳述する。このモードは、運転のトレーニングを目的としているので、運転中において事前に各種の指示（アドバイス）が表示および／または音声によりなされることを特徴とする。
【００６２】
つまり、ＣＰＵ２１により、現在の遊戯者の操作情報が読み込まれ（ステップＳ２１）、次いで指示処理ルーチンがＣＰＵ２１により以下のように実行される（ステップＳ２２）。
【００６３】
この指示処理ルーチンの概要を図５に示す。ＣＰＵ２１は、操作情報から、車両が位置する現在のブロックを判定し（ステップＳ４１）、さらに現在の車両速度Ｖを演算する（ステップＳ４２）。
【００６４】
次いで、ＣＰＵ２１は車両が現在、位置するブロックの参考データＤＡＴＡrefから参考速度データＳＰrefを読み出し（ステップＳ４３）、その参考速度データＳＰrefと実際の現在の車両速度Ｖとについて、ＳＰref＞Ｖか否かを比較判断する（ステップＳ４４）。この比較結果においてＹＥＳ、すなわちＳＰrer＞Ｖとなるときには、参考データＤＡＴＡrefのブレーキデータＤＢを修正する処理が後述する如く実行され、反対にＮＯ、すなわちＳＰref≦Ｖのときには、ブレーキデータの修正処理は実行されない（ステップＳ４５）。次いで、ＣＰＵ２１はこの修正処理が所定数のブロック（例えば周回コースの半周分のブロック（例えば３００〜４００個））について既に完了したか否かを判断し（ステップＳ４６）、未だ残っているブロックがある場合、このブロックを１個進めて（ステップＳ４７）、上述した同様の処理を繰り返す。車両前方の設定数分のブロック全部について、この処理が表示フレーム毎に実行される。
【００６５】
上述したステップＳ４１〜Ｓ４６の繰り返しによって達成されるこの修正処理の一例を図６に模式的に示す。いま同図（ａ）に示す如く、ゲーム中の車両がある時刻においてブロック０に位置し（現在位置のブロックを基準０として表す）、このときの車両前方に位置するブロック０，１，２，…の参考データＤＡＴＡrefが同図に示すようになっているものとする。車両がブロック０に居るときの速度をＶとする。ブロック０の参考速度データＳＰref＝２６３（単位は任意）であるので、現在の車両速度Ｖ＞２６３か否かの判断が行われ（ステップＳ４４参照）、ＹＥＳの場合はブレーキデータＤＢの修正処理は実行されない。すなわち、参考データＤＡＴＡrefとして与えられているブレーキデータＤＢがそのまま使用される。反対に、現在の車両速度Ｖ≦２６３の場合、ブレーキデータＤＢ＝０に設定（修正）する。この修正処理はフレーム毎に、所定数のブロックについて実行される。
【００６６】
このため、例えば、あるフレームにおいて、現在の車両速度Ｖ＝２４５であるとすると、ブロック０，１，２，３，…と順次検索され、Ｖ＝２４５＜ＳＰref＝２６３（ブロック０において）の条件が満たされるブロックについてはブレーキデータＤＢ＝０に修正される。図６（ａ）の場合、ブロック０〜７までの８ブロックについてかかる条件が満たされるので、ブレーキデータＤＢ＝０に修正される。ただし、かかる条件が満たされなくなったブロック８とのデータの繋ぎの滑らかさを考慮し、ステップＳ４５の修正処理において、ブロック８よりも１個手前のブロック７については、ブロック８のブレーキデータＤＢ＝２５５の１／２（＝１２７）の値に修正し、また２個手前のブロック６については、そのブレーキデータＤＢ＝２５５の１／３（＝８５）の値に修正するようになっている。したがって、ブロック０に位置する車両がその速度Ｖ＝２４５の場合、図６（ｂ）に示す如く、ブレーキデータＤＢが修正される。なお、この場合、ブロック８以降のブロックのブレーキデータＤＢは、参考データの値２５５に修正される。
【００６７】
このようにしてブレーキデータＤＢが修正されると、次いで、ＣＰＵ２１は、修正済みのブレーキデータＤＢに基づき、ブレーキデータＤＢが零でないブロックにある参考走行ラインの形状を変更する（ステップＳ４８）。そして、この変更したライン部分を含む参考走行ラインＬＮrefが表示される（ステップＳ４９）。
【００６８】
つまり、現在の車両速度Ｖと現在位置よりも所定数分、前方に在るブロックの参考速度データＳＰrefとが比較され、車両速度Ｖが参考速度データＳＰrefを上回っているブロックによるコース範囲（繋ぎめの２個のブロックを除く）についてはブレーキデータＤＢが変更されていない。したがって、このコース範囲に属するブロックの参考データＤＡＴＡrefの参考走行ラインＬＮrefがその形状などの変更の対象となる。これに対し、車両速度Ｖが参考速度データＳＰref以下であるブロックのブレーキデータＤＢは零に強制的に修正されているので、ブレーキデータＤＢ＝０を呈するブロックの参考走行ラインＬＮrefは、その形状などの変更の対象とはならない。
【００６９】
すなわち、このように修正（調整）後のブレーキデータＤＢが零でないブロックの範囲では、遊戯者はブレーキペダル１１ｄを踏込むことが望ましいため、参考走行ラインＬＮrefに沿ったブレーキデータＤＢ≠０に相当するブロック部分の形状などが変更され、かつ表示される。
【００７０】
この参考走行ラインＬＮrefは、参考データＤＡＴＡrefの走行ラインデータ（熟練者の走行経路データ）をポリゴンで表示することにより、遊戯者に提示される。これにより、理想的なライン取りが指示（アドバイス）される。具体的には、ポリゴンで参考走行ラインＬＮrefを表示するため、熟練者のブロック単位の車両位置データが参考データ作成ツールに掛けられ、幅３ｍの左右２点のｘ、ｙ、ｚ位置が予め算出されている。このとき、左右の２点のｙ位置は走行コースのポリゴン（平面）とｙ軸との交点として算出される。これらの計算は参考データ作成ツール上で予め済んでいるので、実際のゲームにおいて参考走行ラインＬＮrefをポリゴン表示するときのポリゴン頂点位置の演算に伴う演算負荷が軽減される。
【００７１】
ゲームにおいて、実際に参考走行ラインＬＮrefのポリゴンを表示する場合、このポリゴンが走行コースのポリゴンと重ならないように配慮されている。つまり、一例として、参考走行ラインＬＮrefのポリゴンのｙ位置をコース面から５０ｃｍ浮かせせる演算（ｙ位置＋５０ｃｍ）を行ない、このポリゴンを浮かせた状態で表示する。
【００７２】
参考走行ラインＬＮrefの具体的なライン形状の変更・表示は、図７〜２４に示すように種々の態様で実施できる。図７の参考走行ラインＬＮrefによれば、ブレーキングの指示領域ＢＫがラインと同一色（黄色）のかすれた塵状の集合体で表示される。図８の参走行ラインＬＮrefによれば、ブレーキ指示領域ＢＫがラインと同一色（黄色）の湾曲線で表示される。図９の参走行ラインＬＮrefによれば、ブレーキ指示領域ＢＫがラインとは異なる色（赤色）の湾曲線で表示される。図１０の参走行ラインＬＮrefによれば、ブレーキ指示領域ＢＫがラインとは異なる色（赤色）の丸マークの連続で表示される。図１１の参走行ラインＬＮrefでは、ブレーキ指示領域ＢＫがラインとは異なる色（赤色）のラインで表示される。さらに、図１２の参走行ラインＬＮrefは、カーブ手前から段階的に色を分けて表示され、ブレーキ指示領域ＢＫがラインとは異なる色（黄色）のラインで表示される。
【００７３】
さらに、図１３ではブレーキ指示領域ＢＫがラインとは別の色（黄色）の幅広のラインを付して表示され、図１４では矢印頭部記号の連続で表示される。図１５のそれは三角マークの連続で表示される。図１６のそれはライン上に別の色（黄色）のラインを付して表示される。図１７のそれはライン上に立体的な箱を所定間隔で置いて表示される。図１８のブレーキ指示領域ＢＫはライン途中に描画した文字で示される。図１９のそれは三角マークで示される。
【００７４】
さらに、図２０（ａ）、（ｂ）のブレーキ指示領域ＢＫは色変化（同図（ａ）では赤、同図（ｂ）では橙色に点滅）で表示される。図２１（ａ）、（ｂ）のブレーキ指示領域ＢＫは色変化（同図（ａ）では緑、同図（ｂ）では赤色に点滅）で表示される。
【００７５】
さらにまた、図２２のブレーキ指示領域ＢＫは別の色（赤色）の路面一杯の幅広の帯体をライン両横に付して表示される。図２３ではその帯体がオレンジ色である。
【００７６】
上述の如く適宜な態様で参考走行ラインＬＮrefの表示が終わると、ＣＰＵ２１はブレーキポイントの音声指示に入る（ステップＳ５０〜５２）。
【００７７】
すなわち、車両の現在の速度Ｖに関して、ブロック数Ｘ＝（Ｖ／５０）＋１を演算して、その値を求める（ステップＳ５０）。例えば、速度Ｖ＝２４５の場合、ブロック数Ｘ＝５となる。つまり、このブロック数Ｘは現在の車両速度Ｖを反映させた値になる。なお、このブロック数Ｘの演算式は適宜に変更してもよい。
【００７８】
次いで、車両が現在居るブロックからブロック数＝Ｘ個分、前方のブロックまでをブレーキデータ≠０か否かについてサーチする（ステップＳ５１）。次いで、Ｘ個分全てのブロックについてブレーキデータＤＢ≠０が成立するか否かを判断する（ステップＳ５２）。この判断でＹＥＳとなるときには（すなわち、前方にＸ個だけブロックを進めてもブレーキデータＤＢ≠０）、必ずブレーキを踏込む必要があるコース部分が目前に在ると認識される。そこで、ＣＰＵ２１は音声で「ブレーキングポイントである」旨の音声発生を指示する（ステップＳ５３）。
【００７９】
しかし、このブレーキデータＤＢ≠０が成立しないときには、かかる音声指示はなされない。このため、例えば、遊戯者が理想状態を示す熟練者の走行速度よりも低速で自車を走行させており、ブレーキを踏まずともコーナーを曲がれるときには、かかる音声指示は発生されることなく、遊戯者の運転に任される。
【００８０】
この後さらに、周回コースのコーナーの音声指示がなされる（ステップＳ５４、Ｓ５５）。ＣＰＵ２１は、参考データＤＡＴＡrefを基にして、遊戯者の車両がコーナー入口よりも所定数ブロック手前の所定ブロックに到達したか否かを判断する（ステップＳ５５）。この判断がＹＥＳとなるときには、ＣＰＵ２１はスピーカ１３を介して「次はカーブです」といった音声メッセージを発生させる（ステップ５６）。なお、このコーナー到達を示す所定ブロックの位置は、その時点の車両速度Ｖに応じて変更してもよい。このコーナーの音声指示によって、遊戯者は適正なタイミングでハンドルを切り出すことができるようになる。
【００８１】
さらに、コーナーリングシフトの指示を行なう（ステップＳ５６、Ｓ５７）。ＣＰＵ２１は、参考データＤＡＴＡrefを基にして、遊戯者の車両が所定のブロックに到達したかどうかを判断し（ステップＳ５６）、「このカーブは１速で」というように、予め設定してあるコーナーリングに最適なシフト位置（すなわち、熟練者が運転したときの理想状態でのシフト位置）をスピーカ１３を介して音声で指示する。これにより、遊戯者はシフトレバー１１ｅの位置を音声指示された位置に操作可能になる。
【００８２】
このようにして、図５のステップＳ２２に関わる、トレーニングモードでの種々の指示（アドバイス）が音声や画像によりなされる。このトレーニングモードでは、この後、ＣＰＵ２１により、操作状態や走行状態に応じた車両挙動を表すデータが演算され、さらに、車両や走行ライン（参考走行ラインを含む）のポリゴン表示ための透視変換処理や背景画像の処理などのゲーム処理が行われる（図５、ステップＳ２３、Ｓ２４）。この後、処理は次の表示インターラプトまでメインプログラムに戻される。
【００８３】
一方、図５のメインルーチンの処理において、ステップＳ１３でＮＯ、すなわち、選択された運転モードがシミュレーションモードであると判定されたときには、遊戯者による操作情報の読み込み、車両の挙動演算、およびゲーム処理が前述した如く順次実行される（ステップＳ２５〜Ｓ２７）。すなわち、このシミュレーションモードの場合には、トレーニングモードで行なった指示（アドバイス）は一切与えられない。つまり、ゲーム性が最小限に抑えられ、遊戯者の生の運転技量が試される、シミュレーション要素の度合いが一段と高いドライビングゲームが提供される。このシミュレーションモードはしたがって、運転に慣れている上級者に好適なものとなる。
【００８４】
本実施形態で提供されるゲーム装置では、以上のように、初心者から上級者まで楽しむことができるように、その運転技量に合わせて設定した複数の運転モードが用意されている。このため、１種類の走行コースでありながら様々な運転レベルの遊戯者が楽しめるので、コース難易度が異なる複数の走行コースを用意する必要がないから、トータルとして、走行コースのデータ量が抑えられ、メモリ領域の占有量が少なくて済む。
【００８５】
初心者はアシストモードを選択すれば、オートブレーキ制御に拠って、シミュレーション性よりもゲーム性を高めたドライビングゲームを行なうことができる。そして、上級者と同一の走行コースでありながら、相当なゲーム結果を残すことができ、仲間同士の競争という点でゲーム参加への興味感を維持できる。アシストモードで慣れた初心者はセミ・アシストモードを選択して、その上達度を試すことができる。
【００８６】
上級者は、トレーニングモードまたはシミュレーションモードを選択すればよい。これにより、シミュレーション性をより重視した、難易度の高いゲームにチャレンジすることができ、ゲームへの意欲を掻き立てることができる。上級者であっても、その運転レベルによっては、トレーニングモードを選択してトレーニングをしてからシミュレーションモードにチャレンジすることができる。トレーニングモードにあっては、理想的な走行ライン、ブレーキングポイント、コーナー、およびコーナーリングシフトが音声および／画像を通して指示されるので、その指示を取り入れながら運転技量を上げることができる。この場合、アシストモードのように、装置側からの走行状態への自動的な関与は全く無いので、それなりに自前の運転レベルの確認をすることができ、相当に高いシミュレーション性も確保され、ゲームへの興味感、期待感も維持される。
【００８７】
したがって、初心者から上級者まで様々な運転技術レベルの遊戯者がゲーム性とシミュレーション性を両立させながら楽しむことができるドライビングゲームを提供することができる。
【００８８】
（第２の実施の形態）
本発明の第２の実施形態に係るゲーム装置を図２４〜図２７に基づき説明する。なお、この実施形態に係るゲーム装置のハード的構成は、第１の実施形態と同一または同等に構成されている。
【００８９】
このゲーム装置は、前述した複数の運転モードによる運転に加えて、周回コース（走行ライン）上にタイヤのスピンやロックに伴うスリップ痕（またはタイヤマーク）を表示する処理（痕跡表示処理）を加えたことを特徴とする。
【００９０】
実空間の路面走行においては、一度路面に付いたスリップ痕跡は相当期間残っている。とくに、サーキットなどのコースでは、同じカーブで似たような走行状態になるから、スリップ痕も殆ど消えることなく残っている。このため、周回してきた車両はそのスリップ痕を参考にしてコース取りやブレーキングポイントを判断することができる。とくに、シミュレーションゲームの場合、リアリティを追求するため、ドライバの目線位置にカメラ視点を置くので、スリップ痕はゲームを進行させる上で貴重なシグナルとなる。そこで、このスリップ痕を、ゲーム処理にむやみな負荷を書けることなく表示させることが望ましていた。
【００９１】
このスリップ痕の表示処理は、ＣＰＵ２１が以下のようにソフトウエア処理を行なう。
【００９２】
ＣＰＵ２１はメインプログラムを実行する中で、各フレーム毎に、適宜なタイミングで図２４に示すスリップ痕を表すポリゴン（オブジェクト）の演算および保存処理を行なう。
【００９３】
最初に、スリップ痕（タイヤマーク）を発生させる走行状態か否かを判断する（ステップ６１）。これは車両の走行状態を表す加速度、減速度、ヨーイングなどのパラメータが一定条件を満たすか否かで判断される。この判断がＹＥＳとなるときには、次いで、車両のタイヤの各位置からグローバル座標を演算し、これに方向、スケールを掛けたオブジェクト（スリップ痕を表すポリゴン）のマトリクスを演算する（ステップ６２，６３）。
【００９４】
具体的には、オブジェクトのマトリクス［Ａ］は、モデリング変換式である
［Ａ］＝［コースの基本行列］×［ポリゴンの位置行列］×［ポリゴンの回転行列］×［ポリゴンの拡縮行列］
に基づき演算される。ポリゴンの位置行列は、配置されるポリゴンの絶対座標系における位置ｘ、ｙ、ｚの行列である。ポリゴンの回転行列は、配置されるポリゴンの回転成分を車体の傾きまたは路面の傾きαにより求めるための行列である。さらに、ポリゴンの拡縮行列は、車速、１フレーム間の車両の移動量、タイヤの幅によって決まるポリゴンのスケールを決める行列である。
【００９５】
さらに、この後、車両のパラメータからスリップ痕を表すポリゴンの表示上の濃さを演算する（ステップ６４）。
【００９６】
次いで、演算したマトリクス［Ａ］がオブジェクト（ポリゴン）と共にシステムメモリ２３内のＳＲＡＭ（図示せず）に保存される（ステップ６５）。なお、ＳＲＡＭに格納されるデータ（オブジェクトおよびそのマトリクス）が一定数に達してしまうと、それ以降のデータ保存時には、時系列上で最も古いデータが消去され、その代わりに最新のデータが保存される。この消去は、１マーク単位（１回のスピン、スリップなどで発生した一連の痕跡（マーク）の起端から終端まで）でなされる。この１マーク長さは予め決められている。
【００９７】
なお、ステップ６１でＮＯ、すなわちスリップ痕を表示しないとする判断のときは、上述したステップ６２〜６５の処理はスキップされる。
【００９８】
また、ＣＰＵ２１はメインプログラムを実行していく中で、ゲーム結果の表示処理に加えて、図２５の処理に基づきスリップ痕の表示をフレーム毎に且つ各タイヤ毎に指令する。
【００９９】
具体的には、システムメモリ２３内のＳＲＡＭから、指定された１つのタイヤに対するオブジェクト（スリップ痕を表すポリゴン）とそのマトリクスを読み出す（ステップ７１）。次いで、図２６の如く仮想的に設定されるカメラ視点からのｚ距離とその視点の視野角により、読み出したオブジェクトが視野内（表示エリア）に位置するか否を判断する。オブジェクトが視野内に位置するときは表示対象となり、視野外に位置するときはクリッピングされる（ステップ７２、７３）。
【０１００】
次いで、表示エリア内に位置するポリゴンに対して表示が指令される（ステップ７４）。具体的には、図２７に示す如く、１フレーム間に動いたポリゴンの前端点（ｘ２，ｙ２，ｚ２）と前回のその前端点（ｘ１，ｙ１，ｚ１）から現在のフレーム前端と後端とを決め、各ポリゴンをフレーム毎に空間的に続けて表示する。これにより、遊戯者にはタイヤからスリップ痕を表すポリゴンが伸長して見える。ただし、前述したように、１マーク単位の保存ポリゴン数は一定値に限定されているので、スリップ痕の伸長長さも所定距離内に制限される。
【０１０１】
次いで、ＣＰＵ２１は、未だ保存しているオブジェクトが在るか否かを判断し、ある場合にはステップ７１に戻り、上述した表示指令処理を繰り返す一方で、１フレーム分の保存データの表示指令が済んだ場合は、メインプログラムに処理を戻して次のフレームまで待機する（ステップ７５）。これにより、車両の４輪全てに対して且つ所定数内の周回走行に対して、スリップ痕の表示指令がフレーム毎に試みられる。
【０１０２】
つまり、４輪ともスリップしたり、ドリフトしている場合、４輪全部についてスリップ痕が表示されるし、４輪の内の前輪だけがそのような走行状態の場合、前輪の２輪についてスリップ痕が表示される。また、現在の走行を含めて所定数内の走行分についてスリップ痕が表示される。
【０１０３】
いま、例えば１周目にカメラ視点が車両斜め後方にあって、遊戯者の車両を斜め上空から追いかけているとする。そして、あるカーブでスリップさせる運転を遊戯者が行なったとすると、このスリップに伴うスリップ痕が演算され、ポリゴン表示される。すなわち、各輪についてスリップ痕のポリゴンが一定の長さ範囲内で演算され且つその濃度がスリップ状態の程度に応じて求められ、表示される。遊戯者は、これを画面を見ながら運転しているので、当然に、このスリップ痕を目視できる。この表示と共に、このスリップ痕を表すポリゴンおよびそのマトリクスはシステムメモリ２３内のＳＲＡＭに保存される。
【０１０４】
そして、２周目の周回走行において、カメラ視点を例えば車両内の運転者の目線位置に変更していたとする。このとき、前述したカーブに差し掛かると、前述した１回目のスリップ痕（各輪の１マーク単位のスリップ痕）が、既に１回目で演算されて記憶していたマトリクスを読み出して表示する。したがって、カメラ目線と同化している遊戯者は、１回目でのスリップ痕をコースの前方に見ることができるので、このスリップ痕を視覚的に参照してブレーキングのタイミングを計ることができる。これにより、よりリアリティの高い画面を提供でき、シミュレーション性およびゲーム性を向上させるとともに、遊戯者の運転技術の向上にも寄与できる。
【０１０５】
この２周目の走行でも、同一のカーブにおいてスリップ走行させたとすると、この走行に伴うスリップ痕が演算され、同様に保存されている。したがって、３周目においてもカメラ視点を運転者目線位置に置いていたとすると、１周目および２周目のスリップ痕が共にクリッピング処理において表示対象に組み込まれる。つまり、３周目で、かかるカーブに接近すると、１周目および２周目のスリップ痕が部分的に重ったスリップ痕として、または、完全に分離したスリップ痕として表示される。したがって、過去の走行状態を的確に把握して、今度のカーブ走行にそれを活かすことが可能になる。
【０１０６】
同様にして、この過去走行のスリップ痕の表示は、ＳＲＡＭに記憶させ得るマーク単位数の制限値一杯まで可能となる。
【０１０７】
このように走行時に計算したスリップ痕のマトリクスを保存し、その跡の周回走行では、改めて演算することなく、単に読み出して表示するだけで済む。したがって、過去のスリップ痕の表示させる場合でも、スリップ痕を表すポリゴンの演算および表示の処理を高速に行なうことができる。逆に言えば、ＣＰＵの演算負荷を増大させずに、過去のスリップ痕を長期間、画面上に残すというリアリティの高い画像を提供できる。また、保存するスリップ痕のポリゴンは、テクスチャが貼られた描画直前のデータ群（ポリゴンの位置、スケール、傾きが全て演算された後のデータ）であるので、通常の背景データと変わることなく、描画できるとともに、この保存に必要なメモリ容量も少なくて済む。
【０１０８】
従来では、スリップ痕を表示する場合、予定したメモリ容量を超えないように、最初に生成したポリゴンから順次、半透明処理されて、消失させていた。これに対して、本実施形態では、従来と比較して、メモリ容量をそれほど増大させずに、且つその他のゲーム処理に影響を与えずに（高速に）、コース上に残存するスリップ痕というシミュレーション性の高い画像を提供できる。この画像は、第１の実施形態で説明した種々の運転モードでそれぞれ提供でき、遊戯者には益々、ゲームへの興味を沸き立てるものとなる。
【０１０９】
なお、本発明は上述した実施形態のゲーム装置に限定されることなく、本発明のゲーム装置は、特許請求の範囲に記載の要旨の範囲内で種々に変形、変更できるものである。例えば、本発明のゲーム装置で実施できるゲーム内容は前述したように周回コースを走行してラップタイムを競うドライビングゲームに限定されない。複数の車両がタイムを競うカーレースであってもよい。また、車両に関係したオブジェクト以外にも、例えば水上スキー、雪上スキー、バイクレースなどであってもよい。
【０１１０】
また、前述した第１の実施形態は、本願発明の１つとしての仮想空間上を走行するドライビングゲーム装置を説明したが、本願発明ではまた、実空間における実際の路面を走行する車両（実車）に適用できる車両制動制御装置を提供することができる。この車両制動制御装置は、図２８に概念的に示す如く、ＧＰＳ受信装置１０１、ＲＯＭ１０２、コントローラ１０３、および制動装置１０４を車両に搭載する。ＲＯＭ１０２には、第１の実施形態で説明した車両位置（ブロック）毎の速度データおよびブレーキデータを参考データとして予め記憶させておく。この参考データはゲーム装置の場合と同じように、目的とする走行路を走行するときのブレーキングのモデルデータとなる。コントローラ１０３は、ＧＰＳ受信装置１０１からの位置データを受け、この位置データとこれに対応する参考データとを参照して前述のアシストモードにおけるオートブレーキ制御の指令を制動装置１０４に与える。これにより、実際の車両においても、実際の運転をブレーキ制御の観点からアシストすることができ、とくに運転にそれほど慣れきっていないドライバにとって多大な助力となることが期待される。この場合、上記参考データはＤＶＤやＣＤなどの記憶媒体に記憶させて、例えば国道４号線用、国道６号線用など、目的とする走行路毎に提供することが望ましい。また、参考データとして記憶させるデータはまた、位置毎の速度データおよびブレーキデータの組み合わせに限定されることなく、データ量を抑えるには、最低限のデータとして走行路の曲率（Ｒ）データだけでもよい。これにより、コントローラは、車両の位置毎にその速度を検出し、コーナでの限界速度をその曲率から演算し、その演算速度に応じて適宜なブレーキ量を制動装置に指令することでも、実際の車両に対するオートブレーキ制御を実行できる。
【０１１１】
【発明の効果】
以上説明したように、本発明にかかるゲーム装置によれば、第１に、遊戯者の運転技量（オブジェクトの移動技量）に合わせて設定した複数の運転モード（オブジェクトの移動モード）が用意されているので、初心者から上級者まで同一のコース上（移動路）でゲームを楽しむことができる。とくに、かかる運転モードの内、アシストモードではオートブレーキ機能が自動的に得られるので、初心者に適した運転状態となる。
【０１１２】
また、第２に、熟練者の参考データを基に運転の適切な指示が与えられるから、初心者から運転に相当に慣れた遊戯者まで、シミュレーション性をより重視した、難易度の高いゲームにチャレンジすることができ、ゲームへの意欲を掻き立てることができる。
【０１１３】
さらに、第３に、車両のスリップ痕など、オブジェクトの移動に伴う痕跡体がメモリ容量を大幅に増やすことなく、且つ、高速処理を維持して表示されるので、現実空間での車両走行などにマッチしたリアリティの高いオブジェクトの移動状態または移動した後の様子を表現でき、シミュレーション性を大幅にアップさせた画像を提供できる。
【０１１４】
さらに、第4に、上述したアシストモードでのオートブレーキ機能を実空間で走行する実際の車両に持たせることができ、運転にそれほど精通していない段階のドライバに適した運転状態を提供できる。
【図面の簡単な説明】
【図１】本発明の実施形態に係るゲーム装置のブロックである。
【図２】第１の実施形態における運転モードの選択処理を示す概略フローチャートである。
【図３】運転モード別の処理の流れを示す概略フローチャートである。
【図４】アシストモードにおけるオートブレーキ制御を示す概略フローチャートである。
【図５】トレーニングモードにおける指示制御を示す概略フローチャートである。
【図６】トレーニングモードにおけるブレーキデータの修正を説明する図である。
【図７】ブレーキポイントを指示する表示画面の一例である。
【図８】ブレーキポイントを指示する表示画面の一例である。
【図９】ブレーキポイントを指示する表示画面の一例である。
【図１０】ブレーキポイントを指示する表示画面の一例である。
【図１１】ブレーキポイントを指示する表示画面の一例である。
【図１２】ブレーキポイントを指示する表示画面の一例である。
【図１３】ブレーキポイントを指示する表示画面の一例である。
【図１４】ブレーキポイントを指示する表示画面の一例である。
【図１５】ブレーキポイントを指示する表示画面の一例である。
【図１６】ブレーキポイントを指示する表示画面の一例である。
【図１７】ブレーキポイントを指示する表示画面の一例である。
【図１８】ブレーキポイントを指示する表示画面の一例である。
【図１９】ブレーキポイントを指示する表示画面の一例である。
【図２０】ブレーキポイントを指示する表示画面の一例である。
【図２１】ブレーキポイントを指示する表示画面の一例である。
【図２２】ブレーキポイントを指示する表示画面の一例である。
【図２３】ブレーキポイントを指示する表示画面の一例である。
【図２４】第２の実施形態に係るスリップ痕（痕跡体）の処理を示す概略フローチャートである。
【図２５】スリップ痕（痕跡体）の表示を示す概略フローチャートである。
【図２６】スリップ痕のクリッピングを説明する図である。
【図２７】スリップ痕の表示を説明する図である。
【図２８】本発明の車両制動制御装置を概念的に表した構成図である。
【符号の説明】
１０  ゲーム処理ボード
１１  操作装置
１２  ディスプレイ
１３  スピーカ
２１  ＣＰＵ
２２  ジオメトリプロセッサ
２３  システムメモリ
２４  ＲＯＭ
２６  バスアービタ
２７  レンダリングプロセッサ
２８  グラフィックメモリ
２９  ビデオＤＡＣ
３０  オーディオプロセッサ
３１  オーディオメモリ
３２  オーディオＤＡＣ
１０１  ＧＰＳ受信装置
１０２  ＲＯＭ
１０３  コントローラ
１０４  制動装置
【図１】
0003972230.tif 000002
【図２】
0003972230.tif 000003
【図３】
0003972230.tif 000004
【図４】
0003972230.tif 000005
【図５】
0003972230.tif 000006
【図６】
0003972230.tif 000007
【図７】
0003972230.tif 000008
【図８】
0003972230.tif 000009
【図９】
0003972230.tif 000010
【図１０】
0003972230.tif 000011
【図１１】
0003972230.tif 000012
【図１２】
0003972230.tif 000013
【図１３】
0003972230.tif 000014
【図１４】
0003972230.tif 000015
【図１５】
0003972230.tif 000016
【図１６】
0003972230.tif 000017
【図１７】
0003972230.tif 000018
【図１８】
0003972230.tif 000019
【図１９】
0003972230.tif 000020
【図２０】
0003972230.tif 000021
【図２１】
0003972230.tif 000022
【図２２】
0003972230.tif 000023
【図２３】
0003972230.tif 000024
【図２４】
0003972230.tif 000025
【図２５】
0003972230.tif 000026
【図２６】
0003972230.tif 000027
【図２７】
0003972230.tif 000028
【図２８】
0003972230.tif 000029