説明

ゲーム装置、その制御方法、ならびに、プログラム

【課題】 仮想空間内に設定されたコース内でオブジェクトを移動させるゲーム装置等を提供する。
【解決手段】 仮想空間内のコースに沿ってオブジェクトを移動させるように操縦することが目的となるゲームを実現するゲーム装置201で、判定部207がコースの外にオブジェクトが出たために不正があったと判断した場合であっても直ちにゲームオーバーとはせずに、その旨を記憶部202に記憶させ、ゲームの試行が終了したときに成績部208が、当該試行の成績とともに、不正の回数を記録し、提示部209は、不正があった成績と、不正がなかった成績とを区別して表示して、たとえば練習の場合に、プレイヤーが効率良く練習できるようにする一方で、不正があった場合でもなかった場合でも要望に応じた成績の閲覧ができるようにする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、たとえばレーシングゲームで自動車が本来走行すべきでない場所を通過した場合であっても直ちにゲームオーバーとはせずに、プレイの練習を行うのに好適なゲーム装置、その制御方法、ならびに、これらをコンピュータにて実現するプログラムに関する。
【背景技術】
【0002】
従来から、プレイヤーに自動車を運転させるレーシングゲームや飛行機を操縦させるフライトシミュレータを実現するゲーム装置が種々提案されている。このような技術については、たとえば以下の文献に開示がある。
【特許文献1】特開2004−275253号公報
【0003】
このようなゲームにおいては、レーシング場のコースに沿って自動車を運転したり、管制塔から着陸の際に指示されるコースに沿って飛行機を操縦する過程をシミュレートするが、たとえば自動車の場合には、ヘアピンカーブがあったり見通しが悪かったりなど、当該コースの一部の区間の運転や操縦が難しいことがある。従来のゲームでは、このような区間で運転や操縦を誤り、コースを外れたりした場合は、直ちにゲームオーバーとなるのが一般的であった。
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかしながら、このような場合であっても、プレイヤーが練習を続けたいと考える場合は多い。また、コースを外れた場合であっても、ゲームのルールに応じた各種の成績を知りたいという要望もある。
本発明は、上記のような課題を解決するためになされたもので、たとえばレーシングゲームで自動車が本来走行すべきでない場所を通過した場合であっても直ちにゲームオーバーとはせずに、プレイの練習を行うのに好適なゲーム装置、その制御方法、ならびに、これらをコンピュータにて実現するプログラムを提供することを目的とする。
【課題を解決するための手段】
【0005】
以上の目的を達成するため、本発明の原理にしたがって、下記の発明を開示する。
本発明の第1の観点に係るゲーム装置は、オブジェクトを仮想空間内で移動させ、当該仮想空間内には、当該オブジェクトが移動すべきコースが設定され、当該ゲーム装置は試行モードに設定可能であり、記憶部、計算部、更新部、判定部、成績部、提示部を備え、以下のように構成する。
【0006】
ここで、記憶部は、当該仮想空間内における当該オブジェクトの現在の位置、速度、加速度を記憶する。
【0007】
このほか、当該オブジェクトの姿勢、角速度、角加速度等、種々の情報をさらに記憶することとしても良い。現在のオブジェクトの状態を記憶することによって、仮想空間内の様子をリアルタイムでシミュレートするのである。
【0008】
一方、計算部は、当該ゲーム装置が試行モードの場合、プレイヤーからの操縦入力に基づいて、当該仮想空間内における所定の微小時間後の当該オブジェクトの位置、速度、加速度を計算する。
【0009】
このほか、当該オブジェクトの姿勢、角速度、角加速度等、種々の情報をさらに計算することとしても良い。オブジェクトの状態が現在から微小時間経過後にどうなるか、をシミュレートするための計算を行うのである。
【0010】
また、ゲーム機が試行モードの場合は、プレイヤーの指示入力にしたがってオブジェクトを移動させる。たとえば、レーシングゲームの場合は、プレイヤーが用いるハンドルやブレーキ、アクセルなどを模したコントローラからの指示入力を用いて、オブジェクトの状態を変化させるのである。
【0011】
一方、更新部は、当該ゲーム装置が試行モードの場合、前回の更新から当該所定の微小時間後に計算された当該オブジェクトの位置、速度、加速度を記憶させて、記憶部を更新する。
【0012】
すなわち、更新部は、試行モードでは、計算部により計算された微小時間おきの位置、速度、加速度等を微小時間経過ごとに記憶部に記憶させて、オブジェクトを仮想空間内で移動させるのである。これが通常の動作である。
【0013】
さらに、判定部は、当該仮想空間内において当該オブジェクトの位置が当該コースから外れた場合、その履歴を不正走行として記憶部にさらに記憶させる。
【0014】
たとえばレーシングゲームの場合、ゲーム装置の性能上の制限から、コースを外れて走ったり、フェンスに衝突しながら走ったりする場合の不正走行の状況を必ずしも完全にシミュレートできない場合がある。このような場合、現実世界では、路面の状況から自動車が遅れたり、自動車そのものが故障したりして、成績が落ちるのであるが、上記のようにゲーム装置で完全なシミュレートが望めない場合等には、ひとまず不正走行である旨を記録する。そして、不正走行がある場合であっても、直ちにゲームオーバーとするのではなく、そのまま試行を続けさせるのである。
【0015】
一方、成績部は、当該ゲーム装置が試行モードから他のモードに移行すると、当該仮想空間内における当該オブジェクトの移動の履歴により、当該プレイヤーの成績を計算し、当該試行モード中に不正走行として記憶された履歴があれば、これに対応付けて記憶部にさらに記憶させる。
【0016】
たとえばレーシングゲームの場合、所定のコースをできるだけ短い時間で走行すると成績が良いこととなる。そこで、当該走行時間を成績とするのであるが、この際に、不正走行の記録があれば、これを今回の試行の成績と対応付けて記憶するのである。
【0017】
さらに、提示部は、記憶部に記憶された成績を、不正走行に対応付けられているか否かによって区別して当該プレイヤーに提示する。
【0018】
たとえば、まず不正走行の回数で昇順にソートし、同じ回数の場合には走行時間を降順にソートすれば、不正走行なしのランキング、不正走行1回のランキング、不正走行2回のランキング、…のように、成績が区別してプレイヤーに提示される。また、不正走行があった場合の走行時間と、なかった場合の走行時間とで、表示されるフォントの形状や色などを変更して提示する手法もありうる。
【0019】
本発明によれば、不正走行の有無によって、成績を区別して表示することにより、正しく走行した場合の成績を見ることもでき、たとえば一定回数までは不正走行をしても良いという条件で成績が良いものを調べることもでき、種々の成績の提示方法を工夫して、プレイヤーの要望に答えることができるようになる。
【0020】
また、本発明のゲーム装置において、当該コース内には自動区間と練習区間とが設定され、自動区間の終了端と練習区間の開始端とが一致し、当該ゲーム装置は、自動モードにさらに設定可能であり、設定部をさらに備え、以下のように構成することができる。
【0021】
すなわち、設定部は、プレイヤーが練習を選択するか否か、および、記憶される当該オブジェクトの位置により、当該ゲーム装置を自動モードもしくは試行モードに設定する。
【0022】
上記のように、試行モードではプレイヤーの指示入力に基づいてオブジェクトの移動が行われるが、後述するように、自動モードではプレイヤーの指示入力は無視した自動運転が行われる。ここで、試行モードとするか自動モードとするか、必要ならばさらに他のモードとするか、は、プレイヤーが練習を選択するか否か、典型的には、練習を選択するか、試行(成績を測定するためのプレイ)を選択するか、によるほか、オブジェクトが仮想空間内でどこにいるのか、によっても決定される。
【0023】
一方、計算部は、当該ゲーム装置が自動モードの場合、所定の操縦パラメータに基づいて、当該オブジェクトの位置、速度、加速度を計算する。
【0024】
ゲーム機が自動モードの場合は、指示入力の時系列をあらかじめ用意しておき、これを、現実のコントローラからの指示入力にかえて用いることによってオブジェクトの状態を変化させたり、位置、速度、加速度等の時系列をあらかじめ用意しておき、これを順次取得することによってオブジェクトの状態を変化させたりしても良い。また、あらかじめ用意する指示入力の時系列やあらかじめ用意する位置等の時系列としては、過去にプレイヤーが試行モードでプレイした際の履歴を用いることとしても良い。
【0025】
さらに、更新部は、当該オブジェクトが当該練習区間の終了端を通過した後、記憶部に記憶される当該オブジェクトの位置、速度、加速度のそれぞれとして所定の初期値を記憶させる。
【0026】
すなわち、通常は、計算部により計算された微小時間おきの位置、速度、加速度等を微小時間経過ごとに記憶部に記憶させて、オブジェクトを仮想空間内で移動させるのであるが、練習区間の終了端を通過した後は、典型的には直ちに、あるいは、後述するように、所定の時間が経過したり所定の自動運転を一定距離行ったりしてから、オブジェクトの位置、速度、加速度等の情報を「所定の初期値」に初期化する。ここで、当該オブジェクトの所定の初期値の位置は、当該自動区間の開始端にある。
【0027】
したがって、この初期化により、オブジェクトは、自動区間の開始端に移動するから、結局、自動区間の開始端→自動区間の終了端=練習区間の開始端→練習区間の終了端→(あれば適当な区間の移動)→自動区間の開始端→自動区間の終了端=練習区間の開始端→練習区間の終了端→……のように、コースの一部の区間を繰り返しオブジェクトが移動することになる。
【0028】
一方、設定部は、プレイヤーが練習を選択する場合、当該オブジェクトが当該自動区間の開始端を通過して後当該自動区間の終了端を通過するまでの間は、当該ゲーム装置を自動モードに、当該練習区間の開始端を通過して後当該練習区間の終了端を通過するまでの間は、当該ゲーム装置を試行モードに、それぞれ設定し、そうでない場合、当該ゲーム装置を試行モードに設定する。
【0029】
これによって、練習区間ではプレイヤーの操縦によりオブジェクトが移動し、それ以外の区間では自動運転によってオブジェクトが移動する。
【0030】
本発明によれば、コースの一部に過ぎない練習区間を繰り返し練習するのがプレイヤーにとって容易になるとともに、前回の練習区間の操縦の終わりから今回の練習区間の操縦の始まりとの間を自動運転によって処理するので、オブジェクトの状態の不連続性をプレイヤーに感じさせることがなく、自然に繰り返し練習ができるようになる。
【0031】
また、本発明のゲーム装置において、当該コース内には自動区間と練習区間と移行区間とが設定され、自動区間の終了端と練習区間の開始端とが一致し、練習区間の終了端と移行区間の開始端とが一致し、当該ゲーム装置は、自動モードにさらに設定可能であり、設定部をさらに備え以下のように構成することができる。
【0032】
ここで、上記発明では、繰り返しの際に、今回の練習区間の終わりから次回の自動区間の始めの間について、何らの限定を行っていないが、本発明では、練習区間に続いて移行区間が存在する旨を明らかにしている。
【0033】
さて、設定部は、プレイヤーが練習を選択するか否か、および、記憶される当該オブジェクトの位置により、当該ゲーム装置を自動モードもしくは試行モードに設定し、計算部は、当該ゲーム装置が自動モードの場合、所定の操縦パラメータに基づいて、当該オブジェクトの位置、速度、加速度を計算するが、これらの各部の機能は、上記発明と同様である。
【0034】
一方、更新部は、当該オブジェクトが当該移行区間の終了端を通過した後、記憶部に記憶される当該オブジェクトの位置、速度、加速度のそれぞれとして所定の初期値を記憶させ、当該オブジェクトの所定の初期値の位置は、当該自動区間の開始端にある。
【0035】
上記発明では、オブジェクトが練習区間の終了端を通過した後にオブジェクトの位置等を初期値に戻していたが、本発明では、「練習区間の終了端を通過した後」をさらに具体的にし、移行区間の終了端を通過した後、典型的には、移行区間の終了端に至った時に、オブジェクトの位置等を初期値に戻して、繰り返し練習を行うのである。
【0036】
さらに、設定部は、プレイヤーが練習を選択する場合、当該オブジェクトが当該自動区間の開始端を通過して後当該自動区間の終了端を通過するまでの間、および、当該移行区間の開始端を通過して後当該移行区間の終了端を通過するまでの間は、当該ゲーム装置を自動モードに、当該練習区間の開始端を通過して後当該練習区間の終了端を通過するまでの間は、当該ゲーム装置を試行モードに、それぞれ設定し、そうでない場合、当該ゲーム装置を試行モードに設定する。
【0037】
上記発明では、練習区間では試行モード、自動区間では自動モードとしていたが、本発明ではさらに、移行区間でも自動モードとしているのである。
【0038】
本発明によっても、コースの一部に過ぎない練習区間を繰り返し練習するのがプレイヤーにとって容易になるとともに、前回の練習区間の操縦の終わりから今回の練習区間の操縦の始まりとの間を自動運転によって処理するので、オブジェクトの状態の不連続性をプレイヤーに感じさせることがなく、自然に繰り返し練習ができるようになる。
【0039】
また、本発明のゲーム装置は、表示部をさらに備え、表示部は、当該オブジェクトが当該仮想空間内を移動する様子を表示し、当該オブジェクトが当該移行区間の開始端を通過して後当該移行区間の終了端を通過するまでの間、所定の表示効果を与えて表示するように構成することができる。
【0040】
たとえば、移行区間において、画面を次第に暗くしていくフェードアウト、画面を次第に明るくしていくホワイトアウト、レンズ絞りを適正値からクローズしていくアイリスアウトなどの表示効果や、画像の周囲から中央へ向かって細長い楔型が次第に伸びていき、最後には画面が楔型で覆われる表示効果を与えるのである。
【0041】
本発明によれば、移行区間の表示効果によってもう一度練習を始めることをプレイヤーに予告することができるようになり、繰り返し練習における区間の「ジャンプ」によってプレイヤーが受ける不自然さをなくして容易に繰り返し練習ができるようになる。
【0042】
また、本発明のゲーム装置は、表示部をさらに備え、表示部は、当該ゲーム装置が自動モードの場合、当該プレイヤーからの操縦入力と、これに対応する当該所定の操縦パラメータと、を対比して表示するように構成することができる。
【0043】
たとえばレーシングゲームの場合には、プレイヤーからの操縦入力に対応する表示として、タイヤやハンドルの傾き、エンジンの回転数、アクセルやブレーキの踏み具合などが表示されることが多い。そこで表示部では、自動運転の際に、自動運転におけるこれらの値を表示する一方で、コントローラ等から入力された値に基づいてこれらの表示されるパラメータを計算して、たとえば、メーターにおける針の色を別にして表示する。ただし、プレイヤーの操縦入力は、自動区間では、自動車(オブジェクト)の移動に反映させない。
【0044】
本発明によれば、自動運転中にもプレイヤーの操作がどのような影響をオブジェクトに与えるかを見ることができ、自動運転に合わせることができるようになるので、この対比表示に基づいて両者ができるだけ一致するようにプレイヤーが努めれば、自動運転から練習運転に移行する際にスムースに移行ができ、不自然さを感じさせずに容易に繰り返し練習を行うことができるようになる。
【0045】
また、本発明のゲーム装置において、記憶部は、当該プレイヤーからの過去の操縦入力の履歴をさらに記憶し、計算部は、当該ゲーム装置が自動モードの場合、当該所定の操縦パラメータとして、記憶されたプレイヤーからの過去の操縦入力の履歴を用いるように構成することができる。
【0046】
上記のように、自動運転のパラメータとしては、あらかじめゲーム装置のメーカーが提供するパラメータの他、当該プレイヤーが以前に自動運転区間を別のプレイにおいて操縦した際の操縦入力の履歴を用いることができる。本発明では、後者を採用するのである。
【0047】
本発明は、上記発明の好適実施形態の一つであり、プレイヤー自身の過去の履歴を採用して繰り返し練習を可能とするので、不自然さを感じさせずに容易に繰り返し練習を行うことができるようになる。
【0048】
また、本発明のゲーム装置において、記憶部は、当該オブジェクトの位置、速度、加速度の履歴をさらに記憶し、選択部をさらに備えるように構成することができる。
【0049】
ここで、選択部は、記憶された履歴において、当該オブジェクトが当該コースを移動する際に、当該オブジェクトの加速度の、当該オブジェクトの速度方向に直角な成分の大きさが、所定の加速度閾値よりも小さいという条件(以下「加速度条件」という。)区間を、当該自動区間の候補としてプレイヤーに提示して、当該候補から選択された区間を当該自動区間に設定し、当該選択された自動区間の終了端から開始される区間を当該練習区間の候補としてプレイヤーに提示して、当該候補から選択された区間を当該練習区間に設定する。
【0050】
たとえば自動車を運転している場合、カーブでは、自動車の進行方向に直角な方向、すなわち、右や左に加速度がかかる。自動運転から練習運転に移行する際には、このような横方向の加速度成分があると、スムースな移行が難しくなることも多い。
【0051】
そこで、本発明では、プレイヤーが繰り返し練習をする区間を自発的に決定する際に、横方向の加速度や、フライトシミュレータ等の場合にはさらに上下方向の加速度も考慮して、自動区間の候補を提示するのである。ある自動区間と別の自動区間との間が、左右や上下の加速度がかかる区間であり、一般には、このような区間は操縦や運転が難しい区間である。
【0052】
本発明では、自動区間として適した区間を抽出してプレイヤーに提示することによって、繰り返し練習を行う区間をプレイヤーに容易に選択させることができるようになる。
【0053】
また、本発明のゲーム装置において、選択部は、当該加速度条件を満たし、さらに、当該記憶された履歴において、当該オブジェクトが当該区間の開始端を通過してから当該オブジェクトが当該区間の終了端を通過するまでの時間が、所定の最小自動時間以上であるという条件(以下「区間長条件」という。)を満たす区間を、当該自動区間の候補とするように構成することができる。
【0054】
本発明では、上記発明の加速度条件に加えて、さらに、区間の長さが一定以上なければならない、という条件を課すものであり、上記発明の好適実施形態に相当するものである。
【0055】
このほか、自動区間の候補としてさらに種々の条件を設定することができる。たとえば、オブジェクトの角速度や角加速度が所定の閾値よりも小さい、として、オブジェクトができるだけ直進している区間を自動区間の候補としたり、オブジェクトの進行方向の加速度ができるだけ小さい、として、オブジェクトができるだけ等速で進んでいる区間を自動区間の候補とする等である。
【0056】
本発明では、自動区間として適した区間を抽出してプレイヤーに提示することによって、繰り返し練習を行う区間をプレイヤーに容易に選択させることができるようになる。
【0057】
本発明のその他の観点に係るゲーム装置の制御方法は、オブジェクトを仮想空間内で移動させるゲーム装置を制御し、当該仮想空間内には、当該オブジェクトが移動すべきコースが設定され、当該ゲーム装置は試行モードに設定可能であり、当該ゲーム装置は、記憶部、計算部、更新部、判定部、成績部、提示部を有し、記憶部は、当該仮想空間内における当該オブジェクトの現在の位置、速度、加速度を記憶し、計算工程、更新工程、判定工程、成績工程、提示工程を備え、以下のように構成する。
【0058】
すなわち、計算工程では、計算部が、当該ゲーム装置が試行モードの場合、プレイヤーからの操縦入力に基づいて、当該仮想空間内における所定の微小時間後の当該オブジェクトの位置、速度、加速度を計算する。
【0059】
一方、更新工程では、更新部が、当該ゲーム装置が試行モードの場合、前回の更新から当該所定の微小時間後に計算された当該オブジェクトの位置、速度、加速度を記憶させて、記憶部を更新する。
【0060】
さらに、判定工程では、判定部が、当該仮想空間内において当該オブジェクトの位置が当該コースから外れた場合、その履歴を不正走行として記憶部にさらに記憶させる。
【0061】
そして、成績工程では、成績部が、当該ゲーム装置が試行モードから他のモードに移行すると、当該仮想空間内における当該オブジェクトの移動の履歴により、当該プレイヤーの成績を計算し、当該試行モード中に不正走行として記憶された履歴があれば、これに対応付けて記憶部にさらに記憶させる。
【0062】
一方、提示工程では、提示部が、記憶部に記憶された成績を、不正走行に対応付けられているか否かによって区別して当該プレイヤーに提示する。
【0063】
本発明のその他の観点に係るプログラムは、コンピュータを上記のゲーム装置として機能させ、または、コンピュータに上記のゲーム装置の制御方法を実行させるように構成する。
また、本発明のプログラムは、コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、半導体メモリ等のコンピュータ読取可能な情報記憶媒体に記録することができる。
上記プログラムは、プログラムが実行されるコンピュータとは独立して、コンピュータ通信網を介して配布・販売することができる。また、上記情報記憶媒体は、コンピュータとは独立して配布・販売することができる。
【発明の効果】
【0064】
本発明によれば、たとえばレーシングゲームで自動車が本来走行すべきでない場所を通過した場合であっても直ちにゲームオーバーとはせずに、プレイの練習を行うのに好適なゲーム装置、その制御方法、ならびに、これらをコンピュータにて実現するプログラムを提供することができる。
【発明を実施するための最良の形態】
【0065】
以下に本発明の実施形態を説明する。以下では、理解を容易にするため、インターネット内の各種装置に本発明が適用される実施形態を説明するが、各種のコンピュータ、PDA(Personal Data Assistants)、携帯電話などの情報処理装置においても同様に本発明を適用することができる。すなわち、以下に説明する実施形態は説明のためのものであり、本願発明の範囲を制限するものではない。したがって、当業者であればこれらの各要素もしくは全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。
【実施例1】
【0066】
(情報処理装置)
図1は、本発明の実施形態の1つに係るゲーム装置が実現される情報処理装置の概要構成を示す説明図である。以下、本図を参照して説明する。
【0067】
情報処理装置100は、CPU 101と、ROM 102と、RAM 103と、インターフェイス104と、コントローラ105と、外部メモリ106と、画像処理部107と、DVD−ROMドライブ108と、NIC(Network Interface Card)109と、音声処理部110とを備える。
ゲーム用のプログラムおよびデータを記憶したDVD−ROMをDVD−ROMドライブ108に装着して、情報処理装置100の電源を投入することにより、当該プログラムが実行され、本実施形態のゲーム装置が実現される。
【0068】
CPU 101は、情報処理装置100全体の動作を制御し、各構成要素と接続され制御信号やデータをやりとりする。また、CPU 101は、レジスタ(図示せず)という高速アクセスが可能な記憶域に対してALU(Arithmetic Logic Unit)(図示せず)を用いて加減乗除等の算術演算や、論理和、論理積、論理否定等の論理演算、ビット和、ビット積、ビット反転、ビットシフト、ビット回転等のビット演算などを行うことができる。さらに、マルチメディア処理対応のための加減乗除等の飽和演算や、三角関数等、ベクトル演算などを高速に行えるように、CPU 101自身が構成されているものや、コプロセッサを備えて実現するものがある。
【0069】
ROM 102には、電源投入直後に実行されるIPL(Initial Program Loader)が記録され、これが実行されることにより、DVD−ROMに記録されたプログラムをRAM 103に読み出してCPU 101による実行が開始される。また、ROM 102には、情報処理装置100全体の動作制御に必要なオペレーティングシステムのプログラムや各種のデータが記録される。
【0070】
RAM 103は、データやプログラムを一時的に記憶するためのもので、DVD−ROMから読み出したプログラムやデータ、その他ゲームの進行やチャット通信に必要なデータが保持される。また、CPU 101は、RAM 103に変数領域を設け、当該変数に格納された値に対して直接ALUを作用させて演算を行ったり、RAM 103に格納された値を一旦レジスタに格納してからレジスタに対して演算を行い、演算結果をメモリに書き戻す、などの処理を行う。
【0071】
インターフェイス104を介して接続されたコントローラ105は、ユーザがレーシングゲームなどのゲーム実行の際に行う操作入力を受け付ける。
【0072】
インターフェイス104を介して着脱自在に接続された外部メモリ106には、対戦ゲーム等のプレイ状況(過去の成績等)を示すデータ、ゲームの進行状態を示すデータ、対戦に伴うチャット通信のログ(記録)のデータなどが書き換え可能に記憶される。ユーザは、コントローラ105を介して指示入力を行うことにより、これらのデータを適宜外部メモリ106に記録することができる。
【0073】
DVD−ROMドライブ108に装着されるDVD−ROMには、ゲームを実現するためのプログラムとゲームに付随する画像データや音声データ、動画情報データが記録される。CPU 101の制御によって、DVD−ROMドライブ108は、これに装着されたDVD−ROMに対する読み出し処理を行って、必要なプログラムやデータを読み出し、これらはRAM 103等に一時的に記憶される。
【0074】
画像処理部107は、DVD−ROMから読み出されたデータをCPU 101や画像処理部107が備える画像演算プロセッサ(図示せず)によって加工処理した後、これを画像処理部107が備えるフレームメモリ(図示せず)にバッファリング記録する。フレームメモリに記録された画像情報は、所定の同期タイミングでビデオ信号に変換され画像処理部107に接続されるモニタ(図示せず)へ出力される。これにより、各種の画像表示が可能となる。このような画像処理部107の処理は、CPU 101の演算処理とは並行して行うことができる。
画像演算プロセッサは、2次元の画像の重ね合わせ演算やαブレンディング等の透過演算、各種の飽和演算を高速に実行できる。
【0075】
また、仮想3次元空間に配置され、各種のテクスチャ情報が付加されたポリゴン情報を、Zバッファ法によりレンダリングして、所定の視点位置から仮想3次元空間に配置されたポリゴンを所定の視線の方向へ俯瞰したレンダリング画像を得る演算の高速実行も可能である。
さらに、CPU 101と画像演算プロセッサが協調動作することにより、文字の形状を定義するフォント情報にしたがって、文字列を2次元画像としてフレームメモリへ描画したり、各ポリゴン表面へ描画することが可能である。フォント情報は、ROM 102に記録されているが、DVD−ROMに記録された専用のフォント情報を利用することも可能である。
【0076】
このほか、DVD−ROMに記録された動画情報や、これをあらかじめRAM 103等に転送した場合の動画情報は、画像処理部107によって、画面の所定の領域にスーパーインポーズするような形式で、動画表示を行うことができる。
【0077】
さて、NIC 109は、情報処理装置100をインターネット等のコンピュータ通信網(図示せず)に接続するためのものであり、LAN(Local Area Network)を構成する際に用いられる10BASE−T/100BASE−T規格にしたがうものや、電話回線を用いてインターネットに接続するためのアナログモデム、ISDN(Integrated Services Digital Network)モデム、ADSL(Asymmetric Digital Subscriber Line)モデム、ケーブルテレビジョン回線を用いてインターネットに接続するためのケーブルモデム等と、これらとCPU 101との仲立ちを行うインターフェース(図示せず)により構成される。
【0078】
インターネット内のSNTPサーバにNIC 109を介して接続し、ここから情報を得ることによって現在の日時情報を得ることができる。また、各種のネットワークゲームのサーバ装置が、SNTPサーバと同様の機能を果たすように構成設定してもよい。
【0079】
音声処理部110は、DVD−ROMから読み出した音声データをアナログ音声信号に変換し、これに接続されたスピーカ(図示せず)から出力させる。また、CPU 101の制御の下、ゲームの進行の中で発生させるべき効果音や楽曲データを生成し、これに対応した音声をスピーカから出力させる。
音声処理部110では、DVD−ROMに記録された音声データがMIDIデータである場合には、これが有する音源データを参照して、MIDIデータをPCMデータに変換する。また、ADPCM形式やOgg Vorbis形式等の圧縮済音声データである場合には、これを展開してPCMデータに変換する。PCMデータは、そのサンプリング周波数に応じたタイミングでD/A(Digital/Analog)変換を行って、スピーカに出力することにより、音声出力が可能となる。
【0080】
さらに、情報処理装置100には、インターフェース104を介してマイク111を接続することができる。この場合、マイク111からのアナログ信号に対しては、適当なサンプリング周波数でA/D変換を行い、PCM形式のディジタル信号として、音声処理部110でのミキシング等の処理ができるようにする。情報処理装置100をゲーム装置として利用する場合には、マイク111から入力された音声データを指示入力データとして、コントローラ105のかわりに入力デバイスとして用いることも可能である。
【0081】
このほか、情報処理装置100は、ハードディスク等の大容量外部記憶装置を用いて、ROM 102、RAM 103、外部メモリ106、DVD−ROMドライブ108に装着されるDVD−ROM等と同じ機能を果たすように構成してもよい。
【0082】
また、ユーザからの文字列の編集入力を受け付けるためのキーボードや、各種の位置の指定および選択入力を受け付けるためのマウスなどを接続する形態も採用することができる。また、本実施形態の情報処理装置100にかえて、汎用のパーソナルコンピュータを利用することもできる。
【0083】
一般的なコンピュータは、上記情報処理装置100と同様に、CPU、RAM、ROM、DVD−ROMドライブ、および、NICを備え、ゲームにおける画面表示には必ずしも特化していない画像処理部を備え、外部記憶装置としてハードディスクを有する他、フレキシブルディスク、光磁気ディスク、磁気テープ等が利用できるようになっているのが一般的である。また、コントローラではなく、キーボードやマウスなどを入力装置として利用する。
したがって、このような一般的なコンピュータを、本発明のゲーム装置として動作させることも可能である。
【0084】
(ゲーム装置の概要構成)
図2は、本実施形態に係るゲーム装置の概要構成を示す模式図である。以下、本図を参照して説明する。なお、以下では、レーシングゲームを実現するゲーム装置を例として説明するが、これ以外のゲームであっても、本発明を適用することができる。
【0085】
本実施形態に係るゲーム装置201は、記憶部202、計算部203、更新部204、設定部205、表示部206、判定部207、成績部208、提示部209を備える。また、態様によっては選択部(図示せず)を備えることとしても良い。
【0086】
これらの各部は、上記の情報処理装置100のCPU 101が、DVD−ROMドライブ108に装着されたプログラムを実行する際に、情報処理装置100のRAM 103やコントローラ105、画像処理部107等と共働することによって実現される。
【0087】
レーシングゲームでは、仮想三次元空間に凹凸を設けた上で配置されるレース場で、自動車があらかじめ定めた回数周回をすることによって、1台で走行して走行時間を計測したり(たとえば、タイムアタック等。)、同時に複数台で走行して互いに競争しあったり等、種々の態様が考えられるが、理解を容易にするため、以下では、タイムアタックによるゲームを例にあげる。なお、タイムアタックでない場合には、自動車ごとの情報を複数用意するとともに、プレイヤーが運転する自動車以外は、コンピュータが所定のアルゴリズムにしたがって生成した操縦指示によって運転することとしたり、他のプレイヤーが操縦したりするものとすれば良い。
【0088】
ここで、記憶部202には、自動車の重心の位置、速度、加速度が記憶されるほか、その姿勢、角速度、角加速度などの、種々の情報が記憶される。リアルタイムで自動車レースをシミュレートするため、ここで記憶される値は、自動車レースが開催される仮想三次元空間における「現在」の値を次々と記憶することとなる。
【0089】
また、位置、速度、加速度、姿勢、角速度、角加速度の情報は、これと相互に変換可能な他の形式で記憶することとしても良い。たとえば、自動車の重心、自動車の先頭の中央の一点、自動車の天井の中央の一点のそれぞれの座標の位置、速度、加速度を記録することとすれば、姿勢や角速度、角加速度の情報を得ることができる。
【0090】
なお、自動車は仮想三次元空間で移動するので、自動車に対してかかる力(加速度)も三次元的となる。リアルなシミュレートを実現するためには、重心自体に係る力を考慮する必要があるほか、重心の廻りで自動車の向きを変えようとする力も考慮しなければならない。このために、姿勢、角速度、角加速度などの種々の情報を利用することになる。
【0091】
このほか、記憶部202には、プレイヤー自身の過去の操縦の履歴(時系列)や、自動車の位置等の情報の履歴(時系列)を記録することとしても良い。これらの情報は、自動車の運転の様子をリプレイしたり、自身の過去の運転を目標に競争するいわゆる「ゴーストカー」を実現するために利用することができる。また、後述するように、本実施形態の繰り返し練習を行うための区間を選定する際にも利用することができる。
【0092】
図3は、本実施形態に係るゲームにおけるレース場の様子を示す説明図である。以下、本図を参照して説明する。
【0093】
図3に示すように、レース場301には自動車が走行すべき周回状のコース302が設定されている。プレイヤーが運転操作する自動車は、このコース302内を所定の方向に走行することが求められるが、運転を誤った場合には、コース302の外側に自動車が出ることがありうる。ヘアピンカーブなどでは、自動車の運転を誤って曲がり切れずに、コース302からはみ出てしまい、そのままヘアピン部分を省略して「近道」をするような不正走行をしてしまうこともある。
【0094】
このようなコース302内には、運転が比較的容易な区間と、運転が難しい区間とがある。コース302を閉曲線として見たときに、各点の曲率(あるいは、曲率半径)を考えると、運転が容易な区間とは、小さい曲率(大きい曲率半径)のまま連続する区間であり、運転が困難な区間とは、曲率が大きい(曲率半径が小さい)点や、曲率(曲率半径)が激しく変化する区間である。本図では、運転が難しいと想定される区間には斜線を引いてある。
【0095】
このように、運転が難しいと想定される区間は、運転が優しいと想定される区間に区切られているが、レースにおいては、あらかじめ設定されたこのような区間のラップタイムを計測することがある。そこで、ある運転が優しい区間の中央付近から、運転が難しい区間を経て、次の運転が優しい区間の中央付近までを一つの時間計測区間(以下「セクション」と呼ぶ。)として考え、ラップタイムを計測することも多い。このようなセクションの区切りは、本図では破線によって描かれている。
【0096】
さて、レーシングゲームの上達を図ろうとするプレイヤーは、運転が難しい区間(苦手な区間)を繰り返し練習したいと考えるものである。そこで、本実施形態では、上記のセクションを単位として、運転が難しい区間とその前後の運転が優しい区間の一定距離とを組み合わせて練習の一単位とする。
【0097】
これらの区間を、自動車の移動方向に沿って、順に、
(a)自動区間311
(b)練習区間312
(c)移行区間313
と呼ぶこととし、自動車が自動区間311にいる間はゲーム装置201による自動運転が行われ、その後に自動車が練習区間312に入るとプレイヤーの運転操作にしたがって自動車が移動される。
【0098】
さらにその後に自動車が移行区間313に入るとまた自動運転が行われ、移行区間313の終了端に至ると、自動車は自動区間311の開始端に「ジャンプ」される。これによって、コース302の一部についての繰り返し練習が可能となるのである。
【0099】
本ゲーム装置201では、自動車の運転操作をプレイヤーの指示にしたがって行うモードを「試行モード」と呼び、ゲーム装置201のCPU 101等が所定のアルゴリズムに基づいて運転指示入力を生成したり、あらかじめ用意された(過去にセーブされたものでも良い)運転指示入力に基づいて自動車を運転するモードを「自動モード」と呼ぶ。すなわち、繰り返し練習を行う場合、自動区間311と移行区間313では自動モードとなり、練習区間312では試行モードとなる。また、練習を行わず競技を行う場合は、コース302の全域で試行モードとなる。
【0100】
このように、試行モードとするか自動モードとするか、必要ならばさらに他のモードとするか、は、プレイヤーが練習を選択するか否か、典型的には、練習を選択するか、競技を選択するか、によるほか、オブジェクトが仮想空間内でどこにいるのか、によって決定される。
【0101】
なお、ここでは、自動区間311、練習区間312、移行区間313は、本ゲームを提供するメーカー等によりあらかじめ設定されたものとして説明するが、後述するように、これらの区間をプレイヤーが自ら選択することができるようにしても良い。この場合には、繰り返しのつなぎめとなる移行区間313と自動区間311との間のほか、自動区間311と練習区間312との間をスムースにつなぐ必要があるため、所定の条件を満たす区間のみを自動区間311や移行区間313の候補とすることとなる。
【0102】
また、移行区間313は必ずしも用意しなくとも良い。すなわち、プレイヤーの操作する自動車が練習区間312の終了端に至ったら直ちに、自動車を自動区間311の開始端に「ジャンプ」させることとしても良い。ただし、一般的には、移行区間313を設け、ここを走行している間に画面表示に特殊な表示効果を与えることによって、プレイヤーに「ジャンプ」することを知らせることが望ましい。
【0103】
さて、このように設定されたコース302を自動車が移動するにあたっては、現実の自動車の走行をシミュレートする必要がある。このシミュレートの計算を行うのが、計算部203並びに更新部204である。
【0104】
計算部203は、ゲーム装置201が試行モードの場合、プレイヤーからの操縦入力に基づいて、記憶部202に記憶されている情報を参照しながら、仮想三次元空間を走行する自動車の、あらかじめ定めた微小時間後の、位置、速度、加速度、姿勢、角速度、角加速度等の、種々の情報を計算する。
【0105】
プレイヤーからの操縦入力は、ハンドル、ブレーキ、アクセルなどの形状を模したゲーム装置201に接続可能なコントローラを介して受け付けられる。また、通常のボタンやジョイスティックを操作するようなタイプのコントローラや、[特許文献1]に開示されるようなコントローラを利用することとしても良い。
【0106】
計算部203において計算される自動車のシミュレートについては、現実の自動車のエンジン、アクセル、ブレーキ、ダンパ、タイヤなどを適宜モデル化して、物理法則に基づいて計算する技術を適用することができる。また、微小時間は、シミュレートと現実とが乖離しない程度に短い時間が望ましく、CPU 101の計算能力などに応じて適宜設定することとなるが、垂直同期信号の周期を整数で割った時間とするのが適切である。
【0107】
上記のように、試行モードではプレイヤーの指示入力に基づいてオブジェクトの移動が行われるが、ゲーム装置201が自動モードの場合は、自動モードではプレイヤーの指示入力は無視した自動運転が行われる。
【0108】
自動運転を行う技術としては、指示入力の時系列をあらかじめ用意しておくのが最も容易である。ここで、時系列として、典型的には、過去に当該自動区間311や移行区間313をいずれかのプレイヤー(今回練習を行うプレイヤー本人でなくとも良い)が運転をした際の、各コントローラから入力された指示入力の数値の時系列を採用する。
【0109】
このほか、操作入力に基づくのではなく、過去に当該自動車をいずれかのプレイヤーが運転した際の、位置、速度、加速度、姿勢、角速度、角加速度等の履歴に基づいて、リプレイを行うように自動運転を行うこととしても良い。
【0110】
さて、上記のように、計算部203では、微小時間ごとの自動車の位置等の情報が計算されるので、更新部204は、通常は、微小時間ごとに、計算された結果を記憶部202の現在の自動車の情報を記憶する領域に上書きすることによって、記憶部202を更新する。
【0111】
これにより、記憶部202に記憶される自動車の位置、速度、加速度、姿勢、角速度、角加速度等の情報が、リアルタイムで変化することとなる。
【0112】
ただし、更新部204は、自動車が移行区間313の終了端を通過したことを検知すると、自動車を自動区間311の開始端に「ジャンプ」させる。したがって、記憶部202に記憶される現在の自動車の位置は、自動区間311の開始端のいずれかの地点、ということとなる。
【0113】
また、自動区間311の開始端から終了端までは、自動運転が行われるので、あらかじめ用意された速度、加速度、姿勢、角速度、角加速度などの初期値により、記憶部202を更新するとともに、あらかじめ用意された時系列によって、計算部203が自動車を自動的に移動させることとなる。
【0114】
この初期化により、オブジェクトは、自動区間の開始端に移動するから、結局、自動区間311の開始端→自動区間311の終了端=練習区間312の開始端→練習区間312の終了端=移行区間313の開始端→移行区間313の終了端→(ジャンプ)→自動区間311の開始端→自動区間311の終了端=練習区間312の開始端→練習区間312の終了端=移行区間313の開始端→ ……のように、コースの一部の区間を繰り返し自動車が移動することになる。
【0115】
なお、移行区間を設けない場合には、自動区間311の開始端→自動区間311の終了端=練習区間312の開始端→練習区間312の終了端→(ジャンプ)→自動区間311の開始端→自動区間311の終了端=練習区間312の開始端→ ……のように、繰り返しが行われる。
【0116】
さて、設定部205は、プレイヤーが練習を選択するか否か、および、記憶される当該オブジェクトの位置により、当該ゲーム装置201を自動モードもしくは試行モードに設定する。
【0117】
一方、設定部205は、ゲーム装置201のモードを以下のように設定する。
(1)プレイヤーが練習を選択する場合、
(a)自動車が自動区間311の開始端を通過して後、自動区間311の終了端を通過するまでの間は、ゲーム装置201を自動モードに設定する。
(b)自動車が練習区間312の開始端を通過して後、練習区間312の終了端を通過するまでの間は、当該ゲーム装置201を試行モードに設定する。
(c)移行区間313を採用する場合は、自動車が移行区間313の開始端を通過して後、移行区間313の終了端を通過するまでの間は、ゲーム装置201を自動モードに設定する。
(2)プレイヤーが競技を選択する場合、ゲーム装置201を試行モードに設定する。
【0118】
このように、プレイヤーが練習を選択した場合は、練習区間312ではプレイヤーの操縦により自動車が移動し、それ以外の区間では自動運転によって自動車が移動することとなる。
【0119】
このように、本実施形態によれば、コースの一部に過ぎない練習区間を繰り返し練習するのがプレイヤーにとって容易になるとともに、前回の練習区間の操縦の終わりから今回の練習区間の操縦の始まりとの間を自動運転によって処理するので、オブジェクトの状態の不連続性をプレイヤーに感じさせることがなく、自然に繰り返し練習ができるようになる。
【0120】
さて、これまではコースの難しい区間を繰り返し練習するために効果的な要素の実装について説明したが、以下では、特にこのような練習の場合に効果的な「不正走行があってもゲームオーバーとせず、プレイを続行させることによって、技倆を磨く機会をプレイヤーに適切に与える」ための要素について説明する。
【0121】
まず、判定部207は、仮想三次元空間内において自動車の位置がコース302から外れた場合、その旨の履歴を不正走行として記憶部202にさらに記憶させる。
【0122】
レーシングゲームの場合、ゲーム装置201の性能上の制限から、コース302を外れて走ったり、フェンスに衝突しながら走ったりする場合の不正走行の状況を必ずしも完全にシミュレートできない場合がある。このような場合、現実世界では、路面の状況から自動車が遅れたり、自動車そのものが故障したりして、成績が落ちるのであるが、上記のようにゲーム装置201で完全なシミュレートが望めない場合等には、ひとまず不正走行である旨を記録する。そして、不正走行がある場合であっても、直ちにゲームオーバーとするのではなく、そのまま試行を続けさせるのである。
【0123】
不正走行と判断する基準は、たとえば以下のようにする。
(1)自動車を天井から見たときの四隅のうち、三つの隅がコース302から外れた場合。この場合は、自動車の大半がコースから外れたこととなるので、不正走行とする。
(2)上記(1)のように外れている時間が、所定の最低時間以上継続した場合。計算誤差等から、一瞬だけコース302の外に出てしまうこともありうるため、所定の時間以上継続してコース302から出た場合に不正走行とする。
(3)特定の障害物と自動車が交差した場合。道路脇のフェンスや木々、電信柱などを表す多面体と自動車の形状を表す多面体とが、交差したり、一方が他方を包含するような場合には、現実世界では「衝突」が起きて、自動車が破損するか停止すると考えられるので、不正走行とする。
【0124】
通常の競技を行っている場合であっても、不正走行があった場合に直ちにゲームオーバーとするのではなく、その旨を考慮して成績順位を決めることとしても良い。
【0125】
特に、上記のような繰り返し練習を行っている場合には、不正走行があろうとなかろうと、とにかく繰り返して練習を行うことが重要な場合が多い。このような場合は、不正走行があった旨を記憶部202に記録しておき、プレイ自体はそのまま続行させる方が望ましい。
【0126】
一方、成績部208は、当該ゲーム装置201が試行モードから他のモードに移行すると、当該仮想空間内における当該オブジェクトの移動の履歴により、当該プレイヤーの成績を計算し、当該試行モード中に不正走行として記憶された履歴があれば、これに対応付けて記憶部202にさらに記憶させる。
【0127】
たとえばレーシングゲームの場合、所定のコースをできるだけ短い時間で走行すると成績が良いこととなる。そこで、当該走行時間を成績とするのであるが、この際に、不正走行の記録があれば、これを今回の試行の成績と対応付けて記憶するのである。
【0128】
試行モードから他のモードへ移動するときとは、上記の繰り返し練習の場合には、ある練習区間312の走行が終わったとき、である。したがって、ある練習区間312についてタイムアタックを繰り返し練習しているときには、練習区間312を走行するのに要した時間が成績となるが、その際に不正走行を行った回数を補足的な情報として追加することになる。
【0129】
さらに、提示部209は、記憶部202に記憶された成績を、不正走行に対応付けられているか否かによって区別して当該プレイヤーに提示する。
【0130】
提示部209がプレイヤーに成績を提示するのは、練習でも競技でもない成績表示の際である。まず不正走行の回数で昇順にソートし、同じ回数の場合には走行時間を降順にソートすれば、不正走行なしのランキング、不正走行1回のランキング、不正走行2回のランキング、…のように、成績が区別してプレイヤーに提示される。また、不正走行があった場合の走行時間と、なかった場合の走行時間とで、表示されるフォントの形状や色などを変更して提示する手法もありうる。
【0131】
図4には、このような成績表示を画面に行っている様子を示す。以下、本図を参照して説明する。
【0132】
画面に表示される成績表401には、順位番号覧402、プレイヤー名覧403、走行時間覧404、不正走行回数覧405があり、各行406が、あるプレイヤーのある試行や競技に対する成績を表す。
【0133】
本図(a)では、表401内の列が、左から右へ、プレイヤー名覧403、走行時間覧404、不正走行回数覧405の順に並んでいる。これは、画面表示を行う際のソートのキーの優先順位をこの順とすることを表している。また、各覧には、上向き三角形と下向き三角形の図形が描かれているが、これらは、それぞれ、昇順と降順にソートすることを意味している。
【0134】
プレイヤーは、覧名の部分をマウスやコントローラのボタンを利用してクリックや選択した後、カーソルキーなどを操作して移動させることにより、優先順位を変更することができる。また、プレイヤーは、三角形の部分をクリック・選択することにより、昇順と降順を切り替えることができる。そのようにして、ソートのキーや昇順・降順を切り替えた様子を本図(b)(c)に示す。
【0135】
本図(b)では、不正の多い順にソートされて成績が表示されているため、不正のある成績とない成績とが区別されて表示されることになる。本図(c)は、単純に走行時間が短い順にソートされており、不正の回数にかかわらず、タイムアタックの時間結果のみに着目してソートされている。
【0136】
なお、本図では、走行時間の後に不正がなかった場合は☆マークを描くことで、不正があった場合となかった場合とで成績表示の行の表示上の区別を行っているが、このほか、色を変更したり、フォントを変更するなどしても良い。
【0137】
このほか、各記録には、その試行が行われた日時等を付随情報として付加し、これをキーとしてソートが可能とするようにしても良い。
【0138】
このように、これらの要素を利用すれば、不正走行の有無によって、成績を区別して表示することにより、正しく走行した場合の成績を見ることもでき、たとえば一定回数までは不正走行をしても良いという条件で成績が良いものを調べることもでき、種々の成績の提示方法を工夫して、プレイヤーの要望に答えることができるようになる。
【0139】
また、コースの一部に過ぎない練習区間を繰り返し練習するのがプレイヤーにとって容易になるとともに、前回の練習区間の操縦の終わりから今回の練習区間の操縦の始まりとの間を自動運転によって処理するので、オブジェクトの状態の不連続性をプレイヤーに感じさせることがなく、自然に繰り返し練習ができるようになる。
【0140】
図5は、本ゲーム装置にて実行されるゲーム制御方法のおおまかな制御の流れを示すフローチャートである。以下、本図を参照して説明する。
【0141】
まず、ゲームが開始されると、ゲーム装置201はプレイヤーに対して、「競技」「練習」「成績表示」のいずれを行うか問い合わせ(ステップS501)、この問い合わせに対するプレイヤーからの応答を調べる(ステップS502)。「競技」が選択された場合(ステップS502;競技)、記憶部202に記憶される自動車の位置、速度、加速度、姿勢、角速度、角加速度などのパラメータを初期化し(ステップS503)、プレイヤーの操作入力を受け付けて(ステップS504)、計算部203が微小時間後の自動車の位置などを計算し(ステップS505)、更新部204が直前に更新した時点から微小時間が経過するまで待機した後に(ステップS506)、計算された値で記憶部202の内容を更新する(ステップS507)。
【0142】
なお、待機(ステップS507)の際には、他の処理を行うことができる。たとえば、表示部206が、記憶部202の情報を参照し、レースの様子を表す3次元グラフィックスを生成し、画像バッファに転送する等である。画像バッファに転送されたデータは、垂直同期割り込みごと参照され、モニタに表示されて、画面表示がなされることになる。
【0143】
さらに、判定部207が不正走行か否かを調べ(ステップS508)、不正走行でなければ(ステップS508;No)、ステップS510へ進み、不正走行であれば(ステップS508;Yes)、その旨を記録する(ステップS509)。
【0144】
そして、競技が終了したか否かを調べる(ステップS510)。競技が終了したか否かは、たとえば、自動車がコース302を所定の回数周回したか否か、競技を開始してから所定の時間が経過したか否か、等の条件を判断することによって決定される。終了していなければ(ステップS510;No)、ステップS504に戻る。一方、競技が終了していれば(ステップS510;Yes)、成績部208が、プレイの成績、たとえば、所定回数のコース302の周回に要した経過時間を、不正走行の回数の情報とあわせて、プレイヤーの名前に対応付けて記憶部202に記録し(ステップS511)、ステップS501に戻る。
【0145】
一方、プレイヤーが成績表示を選択した場合(ステップS502;成績表示)、提示部209は、現在のソートのキーの優先順位および降順・昇順にしたがって成績をソートして(ステップS521)、画面に表示し(ステップS522)、プレイヤーからの指示を待つ(ステップS523)。そしてその指示の種類を調べ(ステップS524)、成績表示を終了する旨の指示であれば(ステップS524;終了)、ステップS501に戻る。
【0146】
その指示が、ソートのキーの優先順位や降順・昇順を変更する旨の指示であれば(ステップS524;キー順変更)、提示部209は、指定されたものに設定を変更して(ステップS525)、ステップS521に戻る。これによって、新たなキーの優先順位や降順・昇順によって成績が表示される。
【0147】
一方、プレイヤーが練習を選択した場合(ステップS502;練習)、ゲーム装置201はプレイヤーにどの区間を練習するかを選択させ(ステップS531)、選択された区間の自動区間311、練習区間312、移行区間313をコース302内に設定して(ステップS532)、練習処理を行い(ステップS533)、ステップS501に戻る。
【0148】
図6は、練習処理(ステップS533)で行われる処理の制御の詳細な流れを示すフローチャートである。以下、本図を参照して説明する。
【0149】
本処理が開始されると、まず、ゲーム装置201は、自動車の位置、速度、加速度、姿勢、角速度、角加速度等を初期値に設定して(ステップS601)、自動車を自動区間311の開始端に移動させ、モードを自動モードに設定する(ステップS602)。
【0150】
そして、計算部203は、現在のモードが何かを調べ(ステップS603)、自動モードであれば(ステップS603;自動)、あらかじめ用意された操作入力を取得して(ステップS604)、これに基づいて微小時間後の自動車の位置等を計算し(ステップS605)、更新部204は、直前に更新した時点から微小時間が経過するまで待機した後に(ステップS606)、計算された値で記憶部202の内容を更新する(ステップS607)。
【0151】
そして、設定部205は、今回の更新によって自動車が自動区間311の終了端(練習区間312の開始端)を通過したか否かを調べ(ステップS608)、そうであれば(ステップS608;Yes)、ゲーム装置201のモードを試行モードに設定して(ステップS609)、練習を終了するか否かを判定し(ステップS610)、終了しない場合(ステップS610;No)、不正走行が生じているか否かを判定し(ステップS622)、不正がなければ(ステップS622;No)ステップS603に戻り、不正があれば(ステップS622;Yes)その旨を記録して(ステップS623)から、ステップS603に戻る。
【0152】
一方、終了する場合(ステップS610;Yes)は、今回の練習区間312の走行時間などの成績を、もし不正があればその情報も追加して、記録してから(ステップS621)、本処理を終了する。
【0153】
練習を終了するか否かの判断(ステップS610)は、上記の競技を終了するか否かの判断と同様に行うことができる。また、待機(ステップS606)の際に他の処理を行うことができるのも、上記と同様である。
【0154】
さらに、不正走行の判断(ステップS622)やその記録(ステップS623)、成績の記録(ステップS621)についても、上記と同様の処理を行う。これにより、繰り返しのそれぞれの一単位における成績が順次記録されるので、たとえば成績が向上したり(走行時間が短くなったり)、不正走行の回数が減っていったりする様子を確かめやすくなる。
【0155】
さて、現在のモードが試行モードであれば(ステップS603;試行)、プレイヤーからの操作入力を取得して(ステップS611)、これに基づいて微小時間後の自動車の位置等を計算し(ステップS612)、ステップS606に進む。
【0156】
一方、今回の更新によって自動車が自動区間311の終了端(練習区間312の開始端)を通過したのでなければ(ステップS608;No),自動車が練習区間312の終了端(移行区間313の開始端)を通過したか否かを調べ(ステップS613)、そうであれば(ステップS613;Yes)、ゲーム装置201のモードを自動モードに設定して(ステップS614)、ステップS610に進む。
【0157】
一方、そうでなければ(ステップS613;No)、自動車が移行区間313の終了端を通過したか否かを調べ(ステップS615)、そうであれば(ステップS615;Yes)、ステップS601に戻る。通過していなければ(ステップS615;No)、ステップS610に進む。このようにして、プレイヤーの繰り返し練習を可能にするのである。
【0158】
なお、ゲーム装置201の表示部206は、当該ゲーム装置201が自動モードの場合、特に、自動車が自動区間311にいる場合、当該プレイヤーからの操縦入力と、これに対応する当該所定の操縦パラメータと、を対比して表示する。図7は、このようなプレイヤーからの操縦入力と、これに対応する所定の操縦パラメータと、を対比して表示する様子を示す説明図である。
【0159】
上記のように、自動区間311では、自動車はほぼ直進し、自動車そのものを回転させようとする力はほとんどかからないように設定されている。したがって、自動運転用に用意された操縦パラメータで最も重要なのは、アクセルの踏み具合に基づくエンジンの回転数と考えられる。本図には、このようなエンジンの回転数を表示するメータが示されている。
【0160】
メータ701には、自動運転に基づくエンジンの回転数を表示する針702と、プレイヤーがコントローラを操作した指示が有効であるとした場合のエンジンの仮想的な回転数を表示する針703の、2つが表示されている。プレイヤーは、自動区間311内に自動車がいる場合でも、アクセルの形を模したコントローラを踏みしめて、2つの針702、703が重なるように操作することを目標とする。このようにすると、自動区間311から練習区間312に自動車が入ったときにも、スムースな移行ができるのである。
【0161】
このようにすれば、自動運転中にもプレイヤーの操作がどのような影響をオブジェクトに与えるかを見ることができ、自動運転に合わせることができるようになるので、この対比表示に基づいて両者ができるだけ一致するようにプレイヤーが努めれば、自動運転から練習運転に移行する際にスムースに移行ができ、不自然さを感じさせずに容易に繰り返し練習を行うことができるようになる。
【0162】
また、表示部206は、自動車が当該仮想空間内を移動する様子を表示し、自動車が当該移行区間313の開始端を通過して後当該移行区間313の終了端を通過するまでの間、所定の表示効果を与えて表示するのが望ましい。
【0163】
たとえば、移行区間313において、画面を次第に暗くしていくフェードアウト、画面を次第に明るくしていくホワイトアウト、レンズ絞りを適正値からクローズしていくアイリスアウトなどの表示効果や、画像の周囲から中央へ向かって細長い楔型が次第に伸びていき、最後には画面が楔型で覆われる表示効果を与えるのである。
【0164】
これにより、移行区間313の表示効果によってもう一度練習を始めることをプレイヤーに予告することができるようになり、繰り返し練習における区間の「ジャンプ」によってプレイヤーが受ける不自然さをなくして容易に繰り返し練習ができるようになる。
【0165】
以下では、プレイヤーに繰り返し練習する対象の区間を選択させる処理(ステップS531)の種々の態様について説明する。
【0166】
最も簡単な態様は、1つのコース302の中にあらかじめ自動区間311、練習区間312、移行区間313のセットを複数用意しておき、これらの中からいずれかをプレイヤーに選択させる、というものである。これは、現実のレースでラップタイムを図るセクションを決定するのと同様の手法で、決定することができる。
【0167】
この他の手法としては、競技を選択した場合に、記憶部202に自動車の位置、速度、加速度、姿勢、角速度、角加速度の現在の値のみならず、これらの履歴(時系列)を記憶させることとするものである。
【0168】
この履歴を吟味して、自動区間311とすることができる部分を候補とするのである。自動区間311とすることができる区間が満たすべき条件としては、以下のようなものを適宜選ぶことができる。
(a)自動車の速度方向に直角な方向の加速度成分の大きさが、所定の閾値よりも小さくなっている(横加速度条件)。
(b)条件(a)に加え、当該小さくなっている時間が連続して所定の閾値よりも長い(横加速度区間長条件)。
(c)自動車の角速度成分および角加速度成分の大きさが、所定の閾値よりも小さくなっている(角速度条件、角加速度条件)。
(d)条件(c)に加え、当該小さくなっている時間が連続して所定の閾値よりも長い(角速度区間長条件、角加速度区間長条件)。
(e)自動車の速度方向の加速度成分の大きさが、所定の閾値よりも小さくなっている(縦加速度条件)。
(f)条件(e)に加え、当該小さくなっている時間が連続して所定の閾値よりも長い(縦加速度区間長条件)。
(g)条件(a)〜(f)をすべて満たす。
なお、所定の閾値は、条件ごとに異なる値としても良い。
【0169】
選択部を備える態様では、選択部は、コース302からこのような区間を抽出する。この結果、たとえば、図3において、斜線が引かれていない部分が抽出されることになる。
【0170】
次に、選択部は、抽出された区間同士に挟まれている区間(図3における斜線の引かれた区間)から、いずれを練習するかをプレイヤーに問い合わせる。そして、問い合わせの結果選択された区間を、練習区間312とする。
【0171】
さらに、選択された練習区間312の前後にある抽出された区間を所定の長さ切り出して、これらをそれぞれ、自動区間311および移行区間313とするのである。自動区間311は、プレイヤーが自動運転から通常の運転に移行するまでの助走区間であるので、人間が適応するのに十分な長さが必要であるが、移行区間313は移行のための特殊効果を表示するための区間であるので、表示効果に合わせた長さとすれば良い。
【0172】
このようにすることによって、自動区間として適した区間を抽出してプレイヤーに提示することによって、繰り返し練習を行う区間をプレイヤーに容易に選択させることができるようになる。
【産業上の利用可能性】
【0173】
以上説明したように、本発明によれば、レーシングゲームやフライトシミュレータゲーム等において、プレイヤーが運転や操縦を練習するに好適なゲーム装置、その制御方法、ならびに、これらをコンピュータにて実現するプログラムを提供することができる。
【図面の簡単な説明】
【0174】
【図1】本発明の実施形態の1つに係るゲーム装置が実現される情報処理装置の概要構成を示す説明図である。
【図2】本実施形態に係るゲーム装置の概要構成を示す模式図である。
【図3】本実施形態に係るゲームにおけるレース場の様子を示す説明図である。
【図4】成績表示を画面に行っている様子を示す説明図である。
【図5】本ゲーム装置にて実行されるゲーム制御方法のおおまかな制御の流れを示すフローチャートである。
【図6】練習処理で行われる処理の制御の詳細な流れを示すフローチャートである。
【図7】プレイヤーからの操縦入力と、これに対応する所定の操縦パラメータと、を対比して表示する様子を示す説明図である。
【符号の説明】
【0175】
100 情報処理装置
101 CPU
102 ROM
103 RAM
104 インターフェイス
105 コントローラ
106 外部メモリ
107 画像処理部
108 DVD−ROMドライブ
109 NIC
110 音声処理部
111 マイク
201 ゲーム装置
202 記憶部
203 計算部
204 更新部
205 設定部
206 表示部
207 判定部
208 成績部
209 提示部
210 選択部
301 レース場
302 コース
311 自動区間
312 練習区間
313 移行区間
401 成績表
402 順位番号覧
403 プレイヤー名覧
404 走行時間覧
405 不正走行回数覧
406 行
701 メータ
702 針
703 針

【特許請求の範囲】
【請求項1】
オブジェクトを仮想空間内で移動させるゲーム装置であって、当該仮想空間内には、当該オブジェクトが移動すべきコースが設定され、当該ゲーム装置は試行モードに設定可能であり、
当該仮想空間内における当該オブジェクトの現在の位置、速度、加速度を記憶する記憶部、
当該ゲーム装置が試行モードの場合、プレイヤーからの操縦入力に基づいて、当該仮想空間内における所定の微小時間後の当該オブジェクトの位置、速度、加速度を計算する計算部、
当該ゲーム装置が試行モードの場合、前回の更新から当該所定の微小時間後に前記計算された当該オブジェクトの位置、速度、加速度を記憶させて、前記記憶部を更新する更新部、
当該仮想空間内において当該オブジェクトの位置が当該コースから外れた場合、その履歴を不正走行として前記記憶部にさらに記憶させる判定部、
当該ゲーム装置が試行モードから他のモードに移行すると、当該仮想空間内における当該オブジェクトの移動の履歴により、当該プレイヤーの成績を計算し、当該試行モード中に不正走行として記憶された履歴があれば、これに対応付けて前記記憶部にさらに記憶させる成績部、
前記記憶部に記憶された成績を、不正走行に対応付けられているか否かによって区別して当該プレイヤーに提示する提示部
を備えることを特徴とする物。
【請求項2】
請求項1に記載のゲーム装置であって、当該コース内には自動区間と練習区間とが設定され、自動区間の終了端と練習区間の開始端とが一致し、当該ゲーム装置は、自動モードにさらに設定可能であり、
プレイヤーが練習を選択するか否か、および、前記記憶される当該オブジェクトの位置により、当該ゲーム装置を自動モードもしくは試行モードに設定する設定部
をさらに備え、
前記計算部は、当該ゲーム装置が自動モードの場合、所定の操縦パラメータに基づいて、当該オブジェクトの位置、速度、加速度を計算し、
前記更新部は、当該オブジェクトが当該練習区間の終了端を通過した後、前記記憶部に記憶される当該オブジェクトの位置、速度、加速度のそれぞれとして所定の初期値を記憶させ、
前記設定部は、
(a)プレイヤーが練習を選択する場合、当該オブジェクトが当該自動区間の開始端を通過して後当該自動区間の終了端を通過するまでの間は、当該ゲーム装置を自動モードに、当該練習区間の開始端を通過して後当該練習区間の終了端を通過するまでの間は、当該ゲーム装置を試行モードに、それぞれ設定し、
(b)そうでない場合、当該ゲーム装置を試行モードに設定し、
当該オブジェクトの所定の初期値の位置は、当該自動区間の開始端にある
ことを特徴とするもの。
【請求項3】
請求項1に記載のゲーム装置であって、当該コース内には自動区間と練習区間と移行区間とが設定され、自動区間の終了端と練習区間の開始端とが一致し、練習区間の終了端と移行区間の開始端とが一致し、当該ゲーム装置は、自動モードにさらに設定可能であり、
プレイヤーが練習を選択するか否か、および、前記記憶される当該オブジェクトの位置により、当該ゲーム装置を自動モードもしくは試行モードに設定する設定部
をさらに備え、
前記計算部は、当該ゲーム装置が自動モードの場合、所定の操縦パラメータに基づいて、当該オブジェクトの位置、速度、加速度を計算し、
前記更新部は、当該オブジェクトが当該移行区間の終了端を通過した後、前記記憶部に記憶される当該オブジェクトの位置、速度、加速度のそれぞれとして所定の初期値を記憶させ、
前記設定部は、
(a)プレイヤーが練習を選択する場合、当該オブジェクトが当該自動区間の開始端を通過して後当該自動区間の終了端を通過するまでの間、および、当該移行区間の開始端を通過して後当該移行区間の終了端を通過するまでの間は、当該ゲーム装置を自動モードに、当該練習区間の開始端を通過して後当該練習区間の終了端を通過するまでの間は、当該ゲーム装置を試行モードに、それぞれ設定し、
(b)そうでない場合、当該ゲーム装置を試行モードに設定し、
当該オブジェクトの所定の初期値の位置は、当該自動区間の開始端にある
ことを特徴とするもの。
【請求項4】
請求項3に記載のゲーム装置であって、
当該オブジェクトが当該仮想空間内を移動する様子を表示し、当該オブジェクトが当該移行区間の開始端を通過して後当該移行区間の終了端を通過するまでの間、所定の表示効果を与えて表示する表示部
をさらに備えることを特徴とする物。
【請求項5】
請求項2または3に記載のゲーム装置であって、
当該ゲーム装置が自動モードの場合、当該プレイヤーからの操縦入力と、これに対応する当該所定の操縦パラメータと、を対比して表示する表示部
をさらに備えることを特徴とする物。
【請求項6】
請求項2から4のいずれか1項に記載のゲーム装置であって、
前記記憶部は、当該プレイヤーからの過去の操縦入力の履歴をさらに記憶し、
前記計算部は、当該ゲーム装置が自動モードの場合、当該所定の操縦パラメータとして、前記記憶されたプレイヤーからの過去の操縦入力の履歴を用いる
ことを特徴とする物。
【請求項7】
請求項2から6のいずれか1項に記載のゲーム装置であって、
前記記憶部は、当該オブジェクトの位置、速度、加速度の履歴をさらに記憶し、
前記記憶された履歴において、当該オブジェクトが当該コースを移動する際に、当該オブジェクトの加速度の、当該オブジェクトの速度方向に直角な成分の大きさが、所定の加速度閾値よりも小さいという条件(以下「加速度条件」という。)区間を、当該自動区間の候補としてプレイヤーに提示して、当該候補から選択された区間を当該自動区間に設定し、当該選択された自動区間の終了端から開始される区間を当該練習区間の候補としてプレイヤーに提示して、当該候補から選択された区間を当該練習区間に設定する選択部
をさらに備えることを特徴とするもの。
【請求項8】
請求項7に記載のゲーム装置であって、
前記選択部は、当該加速度条件を満たし、さらに、当該前記記憶された履歴において、当該オブジェクトが当該区間の開始端を通過してから当該オブジェクトが当該区間の終了端を通過するまでの時間が、所定の最小自動時間以上であるという条件(以下「区間長条件」という。)を満たす区間を、当該自動区間の候補とする
ことを特徴とするもの。
【請求項9】
オブジェクトを仮想空間内で移動させるゲーム装置を制御する制御方法であって、当該仮想空間内には、当該オブジェクトが移動すべきコースが設定され、当該ゲーム装置は試行モードに設定可能であり、当該ゲーム装置は、記憶部、計算部、更新部、判定部、成績部、提示部を有し、前記記憶部は、当該仮想空間内における当該オブジェクトの現在の位置、速度、加速度を記憶し、
前記計算部が、当該ゲーム装置が試行モードの場合、プレイヤーからの操縦入力に基づいて、当該仮想空間内における所定の微小時間後の当該オブジェクトの位置、速度、加速度を計算する計算工程、
前記更新部が、当該ゲーム装置が試行モードの場合、前回の更新から当該所定の微小時間後に前記計算された当該オブジェクトの位置、速度、加速度を記憶させて、前記記憶部を更新する更新工程、
前記判定部が、当該仮想空間内において当該オブジェクトの位置が当該コースから外れた場合、その履歴を不正走行として前記記憶部にさらに記憶させる判定工程、
前記成績部が、当該ゲーム装置が試行モードから他のモードに移行すると、当該仮想空間内における当該オブジェクトの移動の履歴により、当該プレイヤーの成績を計算し、当該試行モード中に不正走行として記憶された履歴があれば、これに対応付けて前記記憶部にさらに記憶させる成績工程、
前記提示部が、前記記憶部に記憶された成績を、不正走行に対応付けられているか否かによって区別して当該プレイヤーに提示する提示工程
を備えることを特徴とする方法。
【請求項10】
コンピュータを、オブジェクトを仮想空間内で移動させるゲーム装置としてプログラムであって、当該プログラムは、当該コンピュータにおいて、当該仮想空間内には、当該オブジェクトが移動すべきコースが設定され、当該ゲーム装置は試行モードに設定可能であるように機能させ、
当該プログラムは、当該コンピュータを、
当該仮想空間内における当該オブジェクトの現在の位置、速度、加速度を記憶する記憶部、
当該ゲーム装置が試行モードの場合、プレイヤーからの操縦入力に基づいて、当該仮想空間内における所定の微小時間後の当該オブジェクトの位置、速度、加速度を計算する計算部、
当該ゲーム装置が試行モードの場合、前回の更新から当該所定の微小時間後に前記計算された当該オブジェクトの位置、速度、加速度を記憶させて、前記記憶部を更新する更新部、
当該仮想空間内において当該オブジェクトの位置が当該コースから外れた場合、その履歴を不正走行として前記記憶部にさらに記憶させる判定部、
当該ゲーム装置が試行モードから他のモードに移行すると、当該仮想空間内における当該オブジェクトの移動の履歴により、当該プレイヤーの成績を計算し、当該試行モード中に不正走行として記憶された履歴があれば、これに対応付けて前記記憶部にさらに記憶させる成績部、
前記記憶部に記憶された成績を、不正走行に対応付けられているか否かによって区別して当該プレイヤーに提示する提示部
として機能させることを特徴とするプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate