(57)【要約】【課題】  第１の移動面よりも高い位置に設けられた比較的狭幅の第２の移動面にプレーヤキャラクタを移乗させ易くすること。【解決手段】  レール８に設定されている基準滑走方向ベクトルＶｎをプレーヤキャラクタ２の速度ベクトルＶと同じ大きさに補正した目標ベクトルＶｎ’を求める。目標ベクトルＶｎ’と速度ベクトルＶとのベクトル差ΔＶを求め、プレーヤキャラクタ２の速度ベクトルＶとレール８に設定されている基準滑走方向ベクトルＶｎとの相対角度θ、及び速度ベクトルＶの大きさ（速さ｜Ｖ｜）を引数とする関数ｇ（θ、｜Ｖ｜）で大きさを加減して、支援力ベクトルＶｓを決定する。そして、速度ベクトルＶと支援力ベクトルＶｓのベクトル和を求め、これを補正された新たな速度ベクトルＶｒとし、プレーヤキャラクタ２の移動を制御する。【選択図】図７
2010082341.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、重力成分を含む所定の擬似物理法則に従い、三次元仮想空間中に配置された移動面に沿って移動体を移動制御して所定のゲームを実行させるためのプログラムであって、
第１の移動面と、前記第１の移動面よりも高い位置に基準方向を有する第２の移動面とを前記三次元仮想空間に配置する移動面配置手段、
前記所定の擬似物理法則に従って前記移動体の移動ベクトルを算出し、前記移動体を前記第１の移動面又は前記第２の移動面に沿って移動制御する移動制御手段、
前記移動体の前記第２の移動面上への移乗を支援するか否かを判定する移乗支援判定手段、
前記移乗支援判定手段による肯定判定された場合に、前記第２の移動面の基準方向に基づいて前記移動体を前記第２の移動面上に移乗させる支援力を算出する支援力算出手段、
として前記コンピュータを機能させるとともに、
前記移動制御手段が、前記支援力を用いて前記移動ベクトルを補正して前記移動体の移動を制御するように前記コンピュータを機能させるためのプログラム。
【請求項２】
前記移動支援判定手段が、前記移動体の位置と前記移動ベクトルと前記第２の移動面の高さ位置とを用いて前記第２の移動面上への移乗を支援するか否かを判定するように前記コンピュータを機能させるための請求項１に記載のプログラム。
【請求項３】
前記移動支援判定手段が、前記移動体の移動方向と前記第２の移動面の基準方向との成す角度を用いて前記第２の移動面上への移乗を支援するか否かを判定するように前記コンピュータを機能させるための請求項２に記載のプログラム。
【請求項４】
前記支援力算出手段が、前記移動ベクトルと前記第２の移動面の基準方向との成す角度に応じて前記支援力を可変して算出するように前記コンピュータを機能させるための請求項１〜３の何れか一項に記載のプログラム。
【請求項５】
前記支援力算出手段が、前記成す角度が所定角度以下の場合には当該角度が大きくなるほど前記支援力を大きく算出し、当該所定角度を超える場合には前記支援力を無しとして算出するように前記コンピュータを機能させるための請求項４に記載のプログラム。
【請求項６】
前記支援力算出手段が、前記移動体の移動速度に応じて前記支援力を可変して算出するように前記コンピュータを機能させるための請求項１〜５の何れか一項に記載のプログラム。
【請求項７】
前記支援力算出手段が、ゲームプレイ状態を示すパラメータに基づいて前記支援力を可変して算出するように前記コンピュータを機能させる、
ための請求項１〜６の何れか一項に記載のプログラム。
【請求項８】
プレーヤの操作入力に応じて前記移動体に所定のアクションを行わせる動作制御手段として前記コンピュータを機能させ、
前記支援力算出手段が、前記移動体が前記所定のアクション実行中であるか否かに応じて前記支援力を可変して算出するように前記コンピュータを機能させる、
ための請求項１〜７の何れか一項に記載のプログラム。
【請求項９】
前記移動体の所持アイテムを設定するアイテム設定手段として前記コンピュータを機能させ、
前記支援力算出手段が、前記移動体の所定アイテムに応じて前記支援力を可変して算出するように前記コンピュータを機能させる、
ための請求項１〜８の何れか一項に記載のプログラム。
【請求項１０】
前記移動体のレベルを設定するレベル設定手段として前記コンピュータを機能させ、
前記支援力算出手段が、前記移動体のレベルに応じて前記支援力を可変して算出するように前記コンピュータを機能させる、
ための請求項１〜９の何れか一項に記載のプログラム。
【請求項１１】
前記支援力算出手段が、前記移動ベクトルの向きを変更する回転力として前記支援力を算出するように前記コンピュータを機能させるための請求項１〜１０の何れか一項に記載のプログラム。
【請求項１２】
前記移動面配置手段が、前記第１の移動面から前記移動体の高さ以上高い位置に前記第２の移動面を配置するように前記コンピュータを機能させ、
前記第２の移動面の上方に非表示の壁オブジェクトを設定する壁オブジェクト設定手段、
前記移動体の移動方向前方に前記移動体に付随するように基準位置を設定する基準位置設定手段、
前記基準位置の直下の移動面が前記第１の移動面の場合に前記壁オブジェクトとのヒット判定を有効に設定し、前記第２の移動面の場合に無効に設定する壁ヒット有効無効設定手段、
として前記コンピュータを機能させ、
更に、
前記移動制御手段が、前記壁ヒット有効無効設定手段による設定に従って、前記移動体と前記壁オブジェクトとのヒット判定を行って前記移動体を移動制御するように前記コンピュータを機能させるための請求項１〜１１の何れか一項に記載のプログラム。
【請求項１３】
請求項１〜１２の何れか一項に記載のプログラムを記憶したコンピュータ読み取り可能な情報記憶媒体。
【請求項１４】
重力成分を含む所定の擬似物理法則に従い、三次元仮想空間中に配置された移動面に沿って移動体を移動制御して所定のゲームを実行するゲーム装置であって、
第１の移動面と前記第１の移動面よりも高い位置に基準方向を有する第２の移動面とを前記三次元仮想空間に配置する移動面配置手段と、
前記所定の擬似物理法則に従って前記移動体の移動ベクトルを算出し、前記移動体を前記第１の移動面又は前記第２の移動面に沿って移動制御する移動制御手段と、
前記移動体の前記第２の移動面上への移乗を支援するか否かを判定する移乗支援判定手段と、
前記移乗支援判定手段による肯定判定された場合に、前記第２の移動面の基準方向に基づいて前記移動体を前記第２の移動面上に移乗させる支援力を算出する支援力算出手段と、
を備え、
前記移動制御手段が、前記支援力を用いて前記移動ベクトルを補正して前記移動体の移動を制御するゲーム装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、三次元仮想空間中に配置された移動面に沿って移動体を移動制御して所定のゲームを実行させるためのプログラム等に関する。
【背景技術】
【０００２】
近年のビデオゲームの多くは、三次元仮想空間中に背景のオブジェクトを配置してゲーム空間を形成し、そこにプレーヤキャラクタやＮＰＣ（ノンプレイアブルキャラクタ）のオブジェクトを配置する。そして、それらキャラクタのオブジェクトをプレーヤによる操作入力や所定の思考ルーチンに基づくＡＩ制御によって移動・動作制御する。その様子を仮想カメラで撮影した画像をレンダリングして得たゲーム空間画像が、ゲーム画面の元となる。
【０００３】
キャラクタの移動制御については、飛行タイプのキャラクタを除けば、地面や甲板、屋根などの移動面に沿って移動するように制御される。このとき、キャラクタと移動面との間でヒット判定が行われ、移動面とヒットしたと判定されるとそのキャラクタは移動面の向こう側には移動できなくなる。これによって、キャラクタが地面に潜り込むように配置されないようにしている。こうしたキャラクタと移動面とのヒット判定は、「床ヒット判定」と呼ばれる。
【０００４】
また、キャラクタの移動制御では、キャラクタが建造物の壁面や崖などの立面に衝突してそれ以上先に進めないように制御されるが、これは「壁ヒット判定」と呼ばれる。
壁ヒット判定を容易にするために、移動面を、高さ方向をＹ軸とするゲーム空間座標系のＺＸ平面に見立て、ＺＸの座標で壁ヒット判定される境界を定義した「ヒットチェックマップ」とよばれるものを利用する手法が知られている。ヒットチェックマップを用いた壁ヒット判定では、プレーヤキャラクタ等のＺＸ座標値とヒットチェックマップに定義されている境界との衝突判定が行われる。見方を変えると、ＺＸの座標で移動面上の位置が定義されたＹ軸方向に無限の高さを有するヒット判定用の板状のモデルが配置されているとも言える。
この場合、Ｙ軸方向成分は衝突判定外となるので、プレーヤキャラクタがジャンプしたり、魔法やアイテムの作用で地面から浮かんでいる状態であっても、壁ヒット判定を行い所定の境界線より先には移動できないようにできる。
【０００５】
公知の技術では、このヒットチェックマップをテクスチャとして貼り付けたオブジェクトを配置して、ゲーム空間内におけるプレーヤキャラクタの相対位置を把握するための所謂「レーダー画面」として見せる技術も知られるところである（例えば、特許文献１を参照）。
【特許文献１】特許第３２１５３０６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
さてここで、重力成分を含む所定の擬似物理法則に従い、三次元仮想空間中に配置された移動面に沿って移動体を移動制御することを前提として、ブロック塀のように標準移動面（地面）よりも高い位置に第２の移動面を設定し、ここにもプレーヤキャラクタ等が飛び乗ることができるゲームを考えると、第２の移動面の幅が狭いために上手くプレーヤキャラクタをブロック塀に乗せるのが難しくなるといった問題がある。
【０００７】
また、プレーヤキャラクタの移動範囲を制限する技術として、ＺＸ座標のみで境界を定義したり、Ｙ軸方向（高さ方向）に無限長の板モデルを設定する手法は、ヒットチェックマップやヒット判定に利用するデータ量が低減できることから大変優れていると言える。しかし、ブロック塀のように標準移動面（地面）よりも高い位置に第２の移動面を設定し、ここにもプレーヤキャラクタ等が飛び乗ることができるようにしたい場合に問題が生じる。
すなわち、ブロック塀の側面にキャラクタがぶつかった場合にきちんと跳ね返されるようにするためにブロック塀の側面周りに従来技術のように境界（見えない壁）を設けると、高さ方向（Ｙ軸方向）無限遠まで進入できなくなるので、ブロック塀に飛び乗ろうとしても壁ヒット判定で進入できず、決して乗れないことになってしまう。
【０００８】
本発明は、こうした事情を鑑みてなされたものであり、その目的とするところは、第１の移動面よりも高い位置に設けられた比較的狭幅の第２の移動面にプレーヤキャラクタを移乗させ易くすることである。望むらくは、更に、ＺＸ座標のみで境界を定義したり高さ方向に無限長の板モデルを設定する手法を前提にした場合でも、プレーヤキャラクタが第２の移動面に乗れるように制御することである。
【課題を解決するための手段】
【０００９】
上記の課題を解決する第１の発明は、コンピュータに、重力成分を含む所定の擬似物理法則に従い、三次元仮想空間中に配置された移動面に沿って移動体を移動制御して所定のゲームを実行させるためのプログラムであって、
第１の移動面（例えば、図２の雪面６）と前記第１の移動面よりも高い位置に基準方向を有する第２の移動面（例えば、図２のレール８の上面）とを前記三次元仮想空間に配置する移動面配置手段（例えば、図９の処理部２００、ゲーム演算部２１０、ゲーム空間設定データ５１０、図１２のステップＳ２）、
前記所定の擬似物理法則に従って前記移動体の移動ベクトルを算出し、前記移動体を前記第１の移動面又は前記第２の移動面に沿って移動制御する移動制御手段（例えば、図９の処理部２００、ゲーム演算部２１０、図１２のステップＳ１２）、
前記移動体の前記第２の移動面上への移乗を支援するか否かを判定する移乗支援判定手段（例えば、図９の処理部２００、ゲーム演算部２１０、図１１のＯＮレールフラグ５４２、図１２のステップＳ３０〜Ｓ３２、図１３のステップＳ３４〜Ｓ３６、ステップＳ５０〜Ｓ５４）、
前記移乗支援判定手段による肯定判定された場合に、前記第２の移動面の基準方向に基づいて前記移動体を前記第２の移動面上に移乗させる支援力を算出する支援力算出手段（例えば、図９の処理部２００、ゲーム演算部２１０、速度ベクトル補正部２１６、図１３のステップＳ５６）、として前記コンピュータを機能させるとともに、
前記移動制御手段が、前記支援力を用いて前記移動ベクトルを補正して前記移動体の移動を制御するように前記コンピュータを機能させるためのプログラムである。
【００１０】
また、別の形態として、重力成分を含む所定の擬似物理法則に従い、三次元仮想空間中に配置された移動面に沿って移動体を移動制御して所定のゲームを実行するゲーム装置であって、第１の移動面と前記第１の移動面よりも高い位置に基準方向を有する第２の移動面とを前記三次元仮想空間に配置する移動面配置手段（例えば、図１の制御ユニット１２１０、図９の処理部２００、ゲーム演算部２１０、ゲーム空間設定データ５１０、図１２のステップＳ２）と、
前記所定の擬似物理法則に従って前記移動体の移動ベクトルを算出し、前記移動体を前記第１の移動面又は前記第２の移動面に沿って移動制御する移動制御手段（例えば、図１の制御ユニット１２１０、図９の処理部２００、ゲーム演算部２１０、図１２のステップＳ１２）と、
前記移動体の前記第２の移動面上への移乗を支援するか否かを判定する移乗支援判定手段（例えば、図１の制御ユニット１２１０、図９の処理部２００、ゲーム演算部２１０、図１１のＯＮレールフラグ５４２、図１２のステップＳ３０〜Ｓ３２、図１３のステップＳ３４〜Ｓ３６）と、
前記移乗支援判定手段による肯定判定された場合に、前記第２の移動面の基準方向に基づいて前記移動体を前記第２の移動面上に移乗させる支援力を算出する支援力算出手段（図１の制御ユニット１２１０、図９の処理部２００、ゲーム演算部２１０、速度ベクトル補正部２１６、図１３のステップＳ５６）と、を備え、
前記移動制御手段が、前記支援力を用いて前記移動ベクトルを補正して前記移動体の移動を制御するゲーム装置として実現しても良い。
【００１１】
ここで言う「基準方向」とは、第２の移動面の形状的な特徴方向（例えば、長手方向や、適用するテクスチャに方向指示の図柄が含まれる場合にはその方向）や、ゲーム上適当と判断される移動体の標準的な移動方向（例えば、手すりであれば下り方向、スノーボードパークのレールやファンボックスならば斜面下向き或いは傾斜方向）を含む意味である。
【００１２】
第１の発明によれば、所定の擬似物理法則に従って移動体の移動ベクトルを算出することを前提として、移動体の第２の移動面上への移乗を支援するか否かを判定し、必要ならば第２の移動面の基準方向に基づいて移動体を第２の移動面上に移乗させる支援力を算出
し、移動ベクトルを補正することができる。
よって、第２の移動面が、ブロック塀のように幅の狭い面であってもプレーヤキャラクタをその上面に乗せ易くすることができる。
【００１３】
第２の発明は、第１の発明のプログラムであって、前記移動支援判定手段が、前記移動体の位置と前記移動ベクトルと前記第２の移動面の高さ位置とを用いて前記第２の移動面上への移乗を支援するか否かを判定するように前記コンピュータを機能させるためのプログラムである。
【００１４】
第２の発明によれば、第１の発明と同様の効果を奏するとともに、プレーヤキャラクタが第２の移動面に接近した場合に、移動体の位置と移動ベクトルと第２の移動面の高さ位置とをパラメータにして、支援力に基づく速度ベクトルの補正の実行／非実行を分けることができる。
よって、例えば、移動体をスノーボーダキャラクタとし、第２の移動面をレールやファンボックスのようにゲレンデの局所に設けられた構造物とするならば、スノーボーダーがレールに接近したらいつでもその上に乗れてしまうのではなく、有る程度の高さや相対位置が揃わなければ乗れないようにすることができる。勿論、条件が揃わなければレールの側面に衝突することになる。つまり、プレイの補助とゲームのリアリティを適度に調整することができる。
【００１５】
第３の発明は、第２の発明のプログラムであって、前記移動支援判定手段が、前記移動体の移動方向と前記第２の移動面の基準方向との成す角度を用いて前記第２の移動面上への移乗を支援するか否かを判定するように前記コンピュータを機能させるためのプログラムである。
【００１６】
第３の発明によれば、第２の発明と同様の効果を奏するとともに、移動体が第２の移動面へのアプローチ角度を移乗支援の要否判定のパラメータとすることができる。よって、所定のアイテムや所定のキャラクタを使用することを条件に、どんな角度からアプローチしても絶対に第２の移動面に乗ることができるファンタジックな設定を設けてゲーム内容に多様性を設けたり、ゲーム開始前にプレーヤにゲーム難易度を選択させ、高難易度設定の場合には角度条件を厳しくし、低難易度設定の場合には角度条件を緩くするといったこともできる。
【００１７】
第４の発明は、第１〜第３の何れかの発明のプログラムであって、前記支援力算出手段が、前記移動ベクトルと前記第２の移動面の基準方向との成す角度に応じて前記支援力を可変して算出するように前記コンピュータを機能させるためのプログラムである。
【００１８】
第４の発明によれば、第１〜第３の発明の何れかと同様の効果を奏するとともに、移動体の第２の移動面に対するアプローチ角度に応じて支援力を可変できるので、状況に応じた適度な移乗支援を実現できる。
【００１９】
第５の発明は、第４の発明のプログラムであって、前記支援力算出手段が、前記成す角度が所定角度以下の場合には当該角度が大きくなるほど前記支援力を大きく算出し、当該所定角度を超える場合には前記支援力を無しとして算出するように前記コンピュータを機能させるためのプログラムである。
【００２０】
第５の発明によれば、第４の発明と同様の効果を奏するとともに、アプローチ角度が有る程度大きくなると移乗支援の効果が発揮されないようにできる。
【００２１】
第６の発明は、第１〜第５の何れかの発明のプログラムであって、前記支援力算出手段が、前記移動体の移動速度に応じて前記支援力を可変して算出するように前記コンピュータを機能させるためのプログラムである。
【００２２】
第６の発明によれば、第１〜第５の発明の何れかと同様の効果を奏するとともに、移動体の第２の移動面へのアプローチ速度に応じて支援力を可変できる。例えば、アプローチ速度が大きい程支援力を大きくして、第２の移動面上を通過してしまわないように移乗支援をより確実なものにできる。反対に、アプローチ速度が極端に大きい場合には、支援力を小さくして、第２の移動面を飛び越えるといったシチュエーションも可能にすることができる。
【００２３】
第７の発明は、第１〜第６の何れかの発明のプログラムであって、前記支援力算出手段が、ゲームプレイ状態を示すパラメータに基づいて前記支援力を可変して算出するように前記コンピュータを機能させるためのプログラムである。
【００２４】
ここで言う「ゲームプレイ状態を示すパラメータ」とは、プレーヤのゲーム開始から現在までのプレイ状況や過去のプレイ履歴に基づいて決定されるプレーヤキャラクタのパラメータやプレーヤに設定されるパラメータを含む。
第７の発明によれば、第１〜第６の発明の何れかと同様の効果を奏するとともに、支援力を可変できるので、ゲームプレイに多様性を持たせることができる。
【００２５】
なお、第８の発明のように、第１〜第７の何れかの発明のプログラムであって、プレーヤの操作入力に応じて前記移動体に所定のアクションを行わせる動作制御手段（例えば、図９の処理部２００、ゲーム演算部２１０、ＰＣ動作制御部２１２、図１２のステップＳ１８〜Ｓ２２）として前記コンピュータを機能させ、前記支援力算出手段が、前記移動体が前記所定のアクション実行中であるか否かに応じて前記支援力を可変して算出するように前記コンピュータを機能させるためのプログラムとすることもできる。
【００２６】
第８の発明によれば、第１〜第７の発明の何れかと同様の効果を奏するとともに、所定のアクション実行中であるか否かに応じて支援力を可変できる。例えば、スノーボーダーをプレーヤキャラクタとするゲームでは、インディ、トゥウィーク、ワンエイティなどのスノーボードの技を所定のアクションとして設定し支援力を高くするように設定すれば、派手なトリックを決めながらレールなどに乗るといった豪快な合わせ技を容易に実現可能にして、ゲームの爽快感を高めることができる。
【００２７】
また、第９の発明のように、第１〜第８の何れかの発明のプログラムであって、前記移動体の所持アイテムを設定するアイテム設定手段（例えば、図９の処理部２００、ゲーム演算部２１０、アイテム設定データ５１８、図１２のステップＳ６、ステップＳ２４〜Ｓ２６）、として前記コンピュータを機能させ、前記支援力算出手段が、前記移動体の所定アイテムに応じて前記支援力を可変して算出するように前記コンピュータを機能させるためのプログラムとすることもできる。
【００２８】
第９の発明によれば、第１〜第８の発明の何れかと同様の効果を奏するとともに、移動体が第２の移動面に対してアプローチしている時のアイテム所持状況に応じて支援力を可変することができる。例えば、特定のアイテムを所持していると、通常より高い支援力が設定されるとしても良く、アイテムに基づいて支援力を変更することでゲームの楽しみをより豊かにできる。
【００２９】
更には、第１０の発明のように、第１〜第９の何れかの発明のプログラムであって、前記移動体のレベルを設定するレベル設定手段として前記コンピュータを機能させ、前記支援力算出手段が、前記移動体のレベルに応じて前記支援力を可変して算出するように前記コンピュータを機能させるためのプログラムとすることもできる。
【００３０】
第１０の発明によれば、第１〜第９の発明の何れかと同様の効果を奏するとともに、移動体のレベルに応じて支援力を変更することができる。ここで言う「移動体のレベル」としては、移動体のゲーム内での成長段階を示すレベルや、特定技能の習得レベル、ゲーム結果から決定されるプレーヤの習熟度から求められるレベルなどが適宜設定できる。例えば、移動体のレベルをプレーヤの習熟度のレベルとするならば、これに応じて支援力を可変できるので、ゲームに習熟し上級レベルのプレーヤがプレイする場合には、速度ベクトルＶの補正を意図的に弱めることで、相対的にゲームの難易度を高めて、プレーヤの技量に応じた「やりごたえ」を設定することが可能になる。
【００３１】
第１１の発明は、第１〜第１０の何れかの発明のプログラムであって、前記支援力算出手段が、前記移動ベクトルの向きを変更する回転力として前記支援力を算出するように前記コンピュータを機能させるためのプログラムである。
【００３２】
第１１の発明によれば、第１〜第１０の発明の何れかと同様の効果を奏するとともに、速度ベクトルの方向を補正することができるので、移動体の移動の勢いのまま自然に移動体が第２の移動面に乗るように見せるといったことができる。
【００３３】
第１２の発明は、第１〜第１１の何れかの発明のプログラムであって、
前記移動面配置手段が、前記第１の移動面から前記移動体の高さ以上高い位置に前記第２の移動面を配置するように前記コンピュータを機能させ、
前記第２の移動面の上方に非表示の壁オブジェクト（例えば、図３の壁ヒット判定モデル３０）を設定する壁オブジェクト設定手段（例えば、図９の処理部２００、ゲーム演算部２１０、図１２のステップＳ２）、
前記移動体の移動方向前方に前記移動体に付随するように基準位置（例えば、図５の判定基準点４２）を設定する基準位置設定手段（例えば、図９の処理部２００、ゲーム演算部２１０、図１２のステップＳ２８）、
前記基準位置の直下の移動面が前記第１の移動面の場合に前記壁オブジェクトとのヒット判定を有効に設定し、前記第２の移動面の場合に無効に設定する壁ヒット有効無効設定手段（例えば、図９の処理部２００、ゲーム演算部２１０、図１３のステップＳ３８）、
として前記コンピュータを機能させ、
更に、
前記移動制御手段が、前記壁ヒット有効無効設定手段による設定に従って、前記移動体と前記壁オブジェクトとのヒット判定を行って前記移動体を移動制御するように前記コンピュータを機能させるためのプログラムである。
【００３４】
第１２の発明によれば、第１〜第１１の発明の何れかと同様の効果を奏するとともに、第２の移動面の上方に非表示の壁オブジェクトを設けることができる。その一方で、移動体の移動方向前方に移動体に付随するように基準位置を設定し、この基準位置の直下の移動面が第１の移動面の場合には、移動体が第２の移動面の上方を移動しようとしているわけではないと判断して、壁オブジェクトとのヒット判定を有効に設定し、第２の移動面の場合には移動体が第２の移動面の上方を移動或いは第２の移動面に着地しようとしていると判断して、ヒット判定を無効に設定することができる。そして、壁オブジェクトとのヒット有効／無効の設定に従って、移動体と壁オブジェクトとのヒット判定を行って移動体を移動制御することができる。
よって、移動体が第２の移動面の上方を通過或いは第２の移動面に着地できるような適切な相対位置関係にある場合には、壁ヒット判定を無効にして第２の移動面の上方を通過或いは第２の移動面に乗れるようにする一方で、移動体が第２の移動面の上方を通過或いは第２の移動面に着地できないような相対位置関係にある場合には、壁ヒットを有効にして通過或いは移乗をできなくすることができる。
【００３５】
更に、壁オブジェクトを第２移動面の上方のみならず下方にも設けるならば、第２の移動面の上方を通過或いは着地できないような相対位置関係にあるときは、第２移動面を有する構造物（例えば、ブロック塀や、スノーボード競技におけるファンボックスやレール）の側面に衝突する現象を再現できるようになる。
【００３６】
第１３発明は、第１〜第１２の発明の何れかのプログラムを記憶したコンピュータ読取可能な情報記憶媒体である。ここで言う「情報記憶媒体」とは、例えば磁気ディスクや光学ディスク、ＩＣメモリなどを含む。第１３の発明によれば、第１〜第１２の発明の何れかのプログラムをコンピュータに読み取らせて実行させることによって、コンピュータに第１〜第１２の発明の何れかと同様の効果を発揮させることができる。
【発明を実施するための最良の形態】
【００３７】
〔第１実施形態〕
次に、第１実施形態として、本発明を適用したゲーム装置として家庭用ゲーム装置を挙げ、スノーボードゲームを実行する例を説明する。
【００３８】
［ゲーム装置の構成］
図１は、本実施形態における家庭用ゲーム装置の構成例を説明するシステム構成図である。同図に示すように、家庭用ゲーム装置１２００は、ゲーム装置本体１２０１と、ゲームコントローラ１２３０と、ビデオモニタ１２２０とを備える。
【００３９】
ゲーム装置本体１２０１は、例えばＣＰＵや画像処理用ＬＳＩ、ＩＣメモリ等が実装された制御ユニット１２１０と、光学ディスク１２０２やメモリカード１２０４といった情報記憶媒体の読み取り装置１２０６，１２０８とを備える。そして、家庭用ゲーム装置１２００は、光学ディスク１２０２やメモリカード１２０４からゲームプログラム及び各種設定データを読み出し、ゲームコントローラ１２３０に為される操作入力に基づいて制御ユニット１２１０が各種のゲーム演算を実行してビデオゲームを実行する。
【００４０】
制御ユニット１２１０は、ＣＰＵ（Central Processing Unit）やＧＰＵ（Graphics Processing Unit）及びＤＳＰ（Digital Signal Processor）などの各種マイクロプロセッサ、ＡＳＩＣ(Application Specific Integrated Circuit)、ＩＣメモリなどの電気電子機器を備え家庭用ゲーム装置１２００の各部を制御する。また、制御ユニット１２１０は、インターネットやＬＡＮ（Local Area Network）、ＷＡＮ（Wide Area Network）と言った通信回線１と接続して外部装置との間でデータ通信を実現する通信装置１２１２を備える。
【００４１】
ゲームコントローラ１２３０は、選択の決定やキャンセル、タイミングの入力などに用いられるコントローラ上面に設けられたプッシュボタン１２３２と、左右の前側面に設けられたプッシュボタン１２３３Ｒ，１２３３Ｌと、図で言うところの上下左右の各方向を単独入力するための方向入力キー１２３４と、右アナログレバー１２３６Ｒと、左アナログレバー１２３６Ｌとを備える。
【００４２】
右アナログレバー１２３６Ｒ及び左アナログレバー１２３６Ｌは、図で言うところの上下方向と左右方向の２軸方向を同時入力可能な方向入力デバイスである。通常はゲームコントローラ１２３０を左右の手で把持し、レバーにそれぞれ親指を添えて操作する。レバーを倒すことによって２軸成分を含む任意の方向入力と、レバーの傾倒量に応じた任意操作量を入力することができる。また、何れのアナログレバーも、操作入力していない中立状態からレバーの軸方向に押し込むことでプッシュスイッチとして使用することもできる。
【００４３】
本実施形態では、プッシュボタン１２３２でプレーヤキャラクタであるスキーヤの加速や減速操作を入力し、方向入力キー１２３４或いは左アナログレバー１２３６Ｌの方向入力で左右のターン操作を入力する。
【００４４】
ゲーム装置本体１２０１の制御ユニット１２１０は、ゲームコントローラ１２３０から受信した検出信号や操作入力信号に基づいてゲーム画像やゲーム音を生成してビデオゲームを実行する。生成されたゲーム画像やゲーム音は、信号ケーブル１２０９で接続されたビデオモニタ１２２０（ディスプレイモニタ）に出力される。ビデオモニタ１２２０には、画像を表示するフラットパネルディスプレイ１２２２と音声を放音するスピーカ１２２４とが備えられており、プレーヤはフラットパネルディスプレイ１２２２に映し出されるゲーム画像を見ながら、スピーカ１２２４から放音されるゲーム音を聞きつつゲームをプレイする。
【００４５】
尚、本実施形態では、必要なプログラムや各種設定データを光学ディスク１２０２やメモリカード１２０４から読み出す構成としているが、制御ユニット１２１０の通信装置１２１２でインターネットやＬＡＮ（Local Area Network）、ＷＡＮ（Wide Area Network）などの有線／無線の通信回線１に接続して外部の装置からダウンロードする構成としても良い。
【００４６】
［ゲームの概要の説明］
次に、図２は本実施形態におけるスノーボードゲームの概要を説明するための図である。本実施形態におけるスノーボードゲームでは、３次元仮想空間内にゲーム空間として仮想のスキー場或いはスノーボードパークが形成されており、プレーヤはその中でスノーボーダのプレーヤキャラクタ２を操作して、雪面６やレール８を滑ってバーチャルスノーボードを楽しむことができる。雪面６の所々には、スペシャルアイテム９も設定される。プレーヤキャラクタ２をスペシャルアイテム９に当てると、そのアイテムを取得することができる。本実施形態では、スペシャルアイテム９を取得するとレール８に乗り易くなる（移乗し易くなる）効果が得られる。
【００４７】
レール８は、雪面６（第１の移動面）よりも局所的に高い人工的な滑走面（第２の移動面）を形成する構造体であり、雪面６の随所に局所的に設けられている。レール８の外形は、その名が示す通り斜面下り方向に長いが幅が狭く、上面が平坦なブロック塀に類似する。レール８の上面位置は、斜面の上流側では雪面６に殆ど等しく、斜面下流側では雪面６よりプレーヤキャラクタ２の身長程高い位置にある。スノーボード用語では「ハンドレール」や「ファンボックス」などと呼ばれる構造物に相当する。尚、本実施形態ではレール８を上面視矩形或いは帯状の長尺構造体としているが、上面視正方形や円などの対象形であっても良いのは勿論である。更には、第２の移動面を設けるオブジェクトは、レール８のような固定構造体という設定に限らず、牛や馬、人、トラックの荷台など可動或いは可動する可能性のあるものに設定することもできる。
【００４８】
プレーヤキャラクタ２をレール８の上で滑らせるには、図２中のルート１０のように、レール８の上流側で雪面６からレール８上に滑り降りるようにしてプレーヤキャラクタ２を乗せるか、ルート１２の様に、レール８の側方からアプローチしてタイミング良くプレーヤキャラクタ２にジャンプをさせて乗せるかする必要がある。尚、側方よりアプローチしても、ジャンプしなければルート１４のようにレール８の側面に衝突することとなる。
【００４９】
［レールに係るヒット判定］
図３は、本実施形態におけるレール８に係るモデルの構成と配置の例を示す概略斜視図である。同図に示すように、高さ方向をＹ軸とするＸＹＺの直交３軸を有するゲーム空間座標には、雪面６の斜面を形成する表示用モデルである雪面モデル２０がＺＸ平面方向に設けられ、その上面には、プレーヤキャラクタ２が雪面６の上を滑走する際の位置を決定するための不可視（非表示）の通常床ヒット判定モデル２２が設定されている。プレーヤキャラクタ２は、通常床ヒット判定モデル２２に当たることで、それ以上下方には移動されず、見かけ上は雪面６にもぐりこまないようになっている。尚、図中では、見易くするために両者の間に意図的に間隙を設けて表示しているが、実際には雪面モデル２０の上面と通常床ヒット判定モデル２２とは同じ高さに設定されているものとする。
【００５０】
雪面モデル２０の上面には、レール８の表示用モデルであるレールモデル２４が配置されており、その上面にはレールモデル２４の上面と同サイズで不可視（非表示）のレール床ヒット判定モデル２８が設定される。レール床ヒット判定モデル２８は、プレーヤキャラクタ２がレール８に乗っているか否かの判定に使用される。レール床ヒット判定モデル２８は、図の見易さの観点からレールモデル２４の上面からやや浮いた位置に図示しているが、実際にはレールモデル２４の上面と同じ高さに設けられているものとする。
【００５１】
また、レールモデル２４の前後左右の外周面に沿って、壁ヒット判定モデル３０がそれぞれ設けられている。壁ヒット判定モデル３０は、それぞれ寄り沿っているレールモデル２４の各外周面の横幅と同じであるが、雪面モデル２０の上面からの高さが無限遠に設定されている。つまり、プレーヤキャラクタ２のゲーム空間座標系のＸ座標及びＺ座標が、壁ヒット判定モデル３０が設定されているＸ座標及びＺ座標と比較され、もしヒットしていると判定された場合には、プレーヤキャラクタ２の雪面６からの高さ如何にかかわらず、その壁ヒット判定モデル３０を超えてその先へは進む事ができないことになる。尚、壁ヒット判定モデル３０も、図の見易さの観点からレールモデル２４の側面からやや離した位置に図示しているが、実際には側面と密着する位置に立設されているものとする。
【００５２】
さて、高さ方向無限遠の壁ヒット判定モデル３０がレールモデル２４の外周を囲繞しているので、このままではプレーヤキャラクタ２はレールモデル２４の上に乗れないことになる。そこで、本実施形態ではプレーヤキャラクタ２とレール床ヒット判定モデル２８との相対位置関係に基づいて、壁ヒット判定モデル３０の有効／無効を切り換える制御を行う。
【００５３】
図４〜図６は、壁ヒット判定モデル３０の切り換えの概念を説明するための図であって、レール８の縦断面とともに横からプレーヤキャラクタ２の様子を表した図である。
【００５４】
図４では、プレーヤキャラクタ２はレール８の側方（傾斜方向に向いて左側）より雪面６の上を滑走してきている。因みに、図２の例では、ルート１４に沿って滑走した状態がこれに相当する。
壁ヒット判定モデル３０の有効／無効を切り換える制御のために、先ずプレーヤキャラクタ２の現在の代表点Ｇから所定半径のヒット判定エリア４０を設定し、このヒット判定エリア４０と速度ベクトルＶの延長線との交点を判定基準点４２として求める。すなわち、判定基準点４２は、プレーヤキャラクタ２の進行方向前方に、プレーヤキャラクタ２に付随するように設定される位置に定められる。
そして、判定基準点４２の直下（ゲーム空間座標系Ｙ軸マイナス方向）にある最寄りのヒット判定モデルを検索する。同図の状況では、通常床ヒット判定モデル２２が検索される。そして、通常床ヒット判定モデル２２が検索された場合、壁ヒット判定モデル３０は「有効」とされる。
その結果、図４の状況ではプレーヤキャラクタ２はレールモデル２４の左側面に設定されている壁ヒット判定モデル３０とのヒット判定によってはじかれる。ゲーム画面上は、プレーヤキャラクタ２はレール８の構造体に衝突して転倒することになるであろう。
【００５５】
一方、図５では、プレーヤキャラクタ２はレール８の手前でジャンプし、滑空しながらレール８の側方より接近してきている。図２の例では、ルート１２がこれに該当する。
この場合、判定基準点４２の直下の最寄りのヒット判定モデルとしてレール床ヒット判定モデル２８が検索されることになり、壁ヒット判定モデル３０が「無効」に設定される。この結果、プレーヤキャラクタ２がそのまま移動してもレールモデル２４の左側面に設定されている壁ヒット判定モデル３０とのヒット判定ではじかれることはなく、図６に示すように、レールモデル２４の上に乗ることが可能になる。
【００５６】
［移乗支援による速度ベクトルの補正の原理］
また、本実施形態では、プレーヤキャラクタ２の速度ベクトルＶを補正して、レール８に乗り易くする移乗支援機能を備える。
具体的には、図５に示すように、判定基準点４２がレール床ヒット判定モデル２８の上方に存在した場合、レール８の上面への移乗を支援する必要が有ると判断し、支援要否を示す情報としてＯＮレールフラグを「１（支援要）」に設定する（尚、ＯＮレールフラグは、プレーヤキャラクタ２がレール８から落ちるまで「１」とされ、プレーヤキャラクタ２の代表点Ｇ及び判定基準点４２のＺＸ座標位置がレール床ヒット判定モデル２８の外に出た場合に「０」に戻される。）。
尚、レール８の上面から上方所定高さ範囲までを速度補正実行範囲４６として設定し、判定基準点４２の高さ位置がこの速度補正実行範囲４６内であることを移乗支援するための更なる条件として付加してもよい。
【００５７】
そして、移乗支援が要の状態では、図７に示すように、現在の速度ベクトルＶを、速度ベクトルＶｒに補正する。速度ベクトルＶｒは、速度ベクトルＶよりもベクトルの方向がレール８固有に設定される基準滑走方向ベクトルＶｎの方向に近づけられたものである。
【００５８】
基準滑走方向ベクトルＶｎは、レール８の上面を滑走する基準方向を示すベクトルである。本実施形態では、スキー場に設営されたスノーボード用のレールやボックスなどを想定しているので、レール８上面の長手方向（基準方向）を向き、且つ斜面下方を向いたベクトルとなる。
【００５９】
つまり、速度ベクトルＶが基準滑走方向ベクトルＶｎ（基準方向に向いたベクトル）に対して相対的に右方向を向いていれば、速度ベクトルＶの方向を左方向に補正し、速度ベクトルＶが相対的に左方向を向いていれば右方向に補正することができる。よって、プレーヤキャラクタ２のレール８へのアプローチ角度が深くて、通常ならばレール８を越えてしまってアプローチ側の反対側へ落ちてしまうところを、速度ベクトルＶの方向を基準滑走方向ベクトルＶｎの方向に近づけるように補正する処理を毎フレーム時間（例えば１／６０秒）間隔で繰り返すことで、プレーヤキャラクタ２がレール８の上方に達した頃には、速度ベクトルＶの方向が基準滑走方向ベクトルＶｎの方向に一層近づいた状態或いは同一となり、見かけ上、スムーズにレール８の上に着地するように表現される。
【００６０】
より具体的には、先ず、基準滑走方向ベクトルＶｎの大きさを速度ベクトルＶと同じ大きさに補正した目標ベクトルＶｎ’と、速度ベクトルＶとのベクトル差（ΔＶ）を求める。次いで、このベクトル差ΔＶに、相対角度θ及び速度ベクトルＶの大きさ（速さ｜Ｖ｜）を引数とする所定の関数ｇ（θ，｜Ｖ｜）の関数値を乗算し、更に、プレーヤキャラクタの状態に応じて決定される係数ｋ１，ｋ２を乗算して、方向はそのままに大きさをベクトル差ΔＶよりも小さくして支援力ベクトルＶｓとする。
【００６１】
関数ｇ（θ、｜Ｖ｜）は、例えば図８（ａ）の様に、相対角度θについては補正が実行される補正実行上限値（例えば、６０°）を設け、これ未満ならば相対角度θが大きくなる程大きくなるように設定し、補正実行上限値より大きければ「０」になるように設定する。また、速度ベクトルＶの速さ｜Ｖ｜については、図８（ｂ）に示すように、速さ｜Ｖ｜が大きい程大きくなるように設定する。但し、上限値｜Ｖｍ｜以上では関数値ｇ（θ，｜Ｖ｜）は頭打ちとなるようにすると良い。なお、関数ｇ（θ，｜Ｖ｜）＝関数ｇ１（θ）×関数ｇ２（｜Ｖ｜）として、相対角度θの関数と速度ベクトルＶの大きさの関数とに分けて定めてもよい。
【００６２】
プレーヤキャラクタの状態を示すパラメータとして、本実施形態では動作状態としてのトリックアクション（インディ、トゥウィーク、ワンエイティなどのスノーボードの技）の実行状況と、装備状態としてのスペシャルアイテム９の所持状態を使用する。
【００６３】
トリックアクションの実行状況については、トリックアクション動作制御の実行を検出し、実行時の係数値が非実行時の係数値より大きくなるように係数ｋ１を決定し乗算する。例えば、実行時は係数ｋ１＝１．０、非実行時は係数ｋ１＝０．８とする。
つまりトリックアクションをしながらレール８にアプローチすると、支援力ベクトルＶｓが大きくなり、より補正強度が高まりレール８により乗り易く補正される。尚、係数ｋ１は、一つに限らず、トリックアクションの種類や難易度に応じて異なる値を用意しておくこともできる。
【００６４】
アイテムの所持状況については、本実施形態では雪面６の所々に配置されるスペシャルアイテム９に滑走するプレーヤキャラクタ２を当てると、当該アイテムが取得状態となる。そこで、スペシャルアイテム９の所持状態に応じて、取得状態の係数値が未取得状態の係数値より大きくなるように係数ｋ２を決定し乗算する。例えば、取得状態の係数ｋ２＝０．９、未取得状態の係数ｋ２＝０．７とする。
つまり、スペシャルアイテム９を取得した状態でレール８にアプローチすると、支援力ベクトルＶｓが大きくなり、補正強度がより一層増し、レール８により乗りやすく補正される。尚、係数ｋ２は、一つに限らず取得したアイテムの種類に応じて異なる値を用意しておくこともできる。更には、係数ではなく、取得からの経過時間に応じた関数など所定の関数で定義しておくこともできる。
【００６５】
そして、支援力ベクトルＶｓが求められたならば、支援力ベクトルＶｓを、速度ベクトルＶを代表点Ｇ周りに基準滑走方向ベクトルＶｎの方向へ回転させる回転力として適用する。具体的には速度ベクトルＶと支援力ベクトルＶｓのベクトル和を求める。これが補正後の速度ベクトルＶｒとなる。
【００６６】
尚、図７の例では、基準滑走方向ベクトルＶｎを、単一のベクトルであるかのように記しているが、レール８が雪面６に沿って左右に蛇行する構造の場合には、レール８の上面位置毎に異なる基準滑走方向ベクトルＶｎを予め定義しておくと良い。
【００６７】
［機能ブロックの説明］
次に、上述のようなゲームを実現するための具体的な構成について説明する。
図９は、本実施形態における家庭用ゲーム装置１２００の機能構成の一例を示す機能ブロック図である。同図に示すように本実施形態では、操作入力部１００と、処理部２００と、音出力部３５０と、画像表示部３６０と、通信部３７０と、記憶部５００とを備える。
【００６８】
操作入力部１００は、プッシュボタンや、レバー、タッチパッド、ダイヤル、キーボード、マウス、各種ポインタ、加速度センサ、傾斜センサなどの入力デバイスやセンサ類によって実現され、プレーヤによって為された各種の操作入力に応じて操作入力信号を処理部２００に出力する。図１のゲームコントローラ１２３０が操作入力部１００に該当する。
【００６９】
処理部２００は、例えばマイクロプロセッサやＡＳＩＣ（特定用途向け集積回路）、ＩＣメモリなどの電子部品によって実現され、各機能部との間でデータの入出力を行うとともに所定のプログラムやデータ及び操作入力部１００からの操作入力信号に基づいて各種の演算処理を実行して、家庭用ゲーム装置１２００の動作を制御する。図１では、ゲーム装置本体１２０１に内蔵された制御ユニット１２１０が処理部２００に該当する。
【００７０】
そして、本実施形態における処理部２００は、ゲーム演算部２１０と、音生成部２５０と、画像生成部２６０と、通信制御部２７０とを備える。
【００７１】
ゲーム演算部２１０は、ゲームの進行に係る処理を実行する。例えば、雪面６やレール８、スペシャルアイテム９などのオブジェクトを配置したり壁ヒット判定モデル３０などの不可視のヒット判定モデルを配置するなどして３次元仮想空間中にゲーム空間を形成する処理を行う。また、ゲーム空間中に配置されたオブジェクトの動作制御処理、ヒット判定処理、物理演算処理、ゲーム結果の判定処理が実行対象に含まれる。
【００７２】
より具体的には、本実施形態のゲーム演算部２１０は、ＰＣ（プレーヤキャラクタ）動作制御部２１２と、壁ヒット判定部２１４と、速度ベクトル補正部２１６と、を含んでいる。
【００７３】
ＰＣ動作制御部２１２は、操作入力部１００に為された操作入力に基づいてプレーヤキャラクタ２の加速・減速・ターン・ジャンプ・トリックアクションといった動作制御を行う。本実施形態は、プレーヤキャラクタ２はスノーボードを履くので、トリックアクションとしては、インディ、トゥウィーク、ワンエイティなどがこれに当たる。
【００７４】
壁ヒット判定部２１４は、ＺＸ座標を比較してヒット判定する所謂「壁ヒット処理」を行う。本実施形態では、プレーヤキャラクタ２の現在の代表点Ｇから速度ベクトルＶの延長線上に判定基準点４２を設定する。そして、この定基準点４２の直下の最寄りのヒット判定モデルが通常床ヒット判定モデル２２であれば壁ヒット判定モデル３０を「有効」とし、直下の最寄りのヒット判定モデルがレール床ヒット判定モデル２８であれば壁ヒット判定モデル３０を「無効」として壁ヒット判定処理を行う。
勿論、壁ヒット判定処理で「ヒット有り」の判定が成されると、公知のビデオゲームと同様に、プレーヤキャラクタ２は当たり判定されたヒット判定モデルより先には進めないように処理される。
【００７５】
速度ベクトル補正部２１６は、プレーヤキャラクタ２がレール８の上面に乗り易くするように速度ベクトルＶの方向をレール８の基準滑走方向ベクトルＶｎの方向に近づけるように補正する。
本実施形態は、第１に、判定基準点４２がレール壁ヒット判定モデル２８の上方に存在するか否かを判定して、移乗支援の要否を判定する機能を有する。
第２に、速度ベクトルＶとレール８の基準滑走方向ベクトルＶｎとの相対角度θ及び速度ベクトルＶの速さ｜Ｖ｜に基づいて、速度ベクトルＶを補正するための支援力ベクトルＶｓを算出する機能を有する。具体的には、基準滑走方向ベクトルＶｎの大きさ（速さ）を速度ベクトルＶの大きさ（速さ）｜Ｖ｜と等しく補正した目標ベクトルＶｎ’を算出し、この目標ベクトルＶｎ’と速度ベクトルVとの差ΔＶの大きさを、所定の関数ｇ（θ，｜Ｖ｜）と、トリックアクションの実行状況で決定される係数ｋ１と、スペシャルアイテム９の所持状態で決定される係数ｋ２を乗算して、小さくして支援力ベクトルＶｓとする。尚、本実施形態の関数ｇ（θ，｜Ｖ｜）は、相対角度θが大きくなる程大きい関数値が算出され、速さ｜Ｖ｜が大きい程大きく算出される関数としているが、これに限定されるものではない。また、関数ｇ（θ，｜Ｖ｜）はゲームバランスを考慮してゲーム制作者が適宜設定する。
【００７６】
音生成部２５０は、例えばデジタルシグナルプロセッサ（ＤＳＰ）などのプロセッサやその制御プログラムなどの公知技術によって実現され、ゲーム演算部２１０による処理結果に基づいてゲームに係る効果音やＢＧＭ、各種操作音の音信号を生成し、音出力部３５０に出力する。
【００７７】
音出力部３５０は、音生成部２５０から入力される音信号に基づいて効果音やＢＧＭ等を音出力する装置によって実現される。図１ではビデオモニタ１２２０のスピーカ１２２４がこれに該当する。
【００７８】
画像生成部２６０は、例えば、デジタルシグナルプロセッサ（ＤＳＰ）などのプロセッサ、その制御プログラム、フレームバッファ等の描画フレーム用ＩＣメモリ等の公知技術によって実現される。例えば画像生成部２６０は、ゲーム演算部２１０による処理結果に基づいて１フレーム時間（１／６０秒）で１枚のゲーム画像を生成し、生成したゲーム画像の画像信号を画像表示部３６０に出力する。
【００７９】
画像表示部３６０は、画像生成部２６０から入力される画像信号に基づいて各種ゲーム画像を表示する。例えば、フラットパネルディスプレイ、ブラウン管（ＣＲＴ）、プロジェクター、ヘッドマウントディスプレイといった画像表示装置によって実現できる。図１ではビデオモニタ１２２０のフラットパネルディスプレイ１２２２が該当する。
【００８０】
通信制御部２７０は、データ通信に係るデータ処理を実行し、通信部３７０を介して外部装置とのデータのやりとりを実現する。
【００８１】
通信部３７０は、通信回線１と接続して通信を実現する。例えば、無線通信機、モデム、ＴＡ（ターミナルアダプタ）、有線用の通信ケーブルのジャックや制御回路等によって実現され、図１では通信装置１２１２がこれに該当する。
【００８２】
記憶部５００は、予め定義されたプログラムやデータを記憶するとともに、処理部２００の作業領域として用いられて処理部２００が各種プログラムに従って実行した演算結果や操作入力部１００から入力される入力データ等を一時的に記憶する。この機能は、例えばＲＡＭやＲＯＭなどのＩＣメモリ、ハードディスク等の磁気ディスク、ＣＤ−ＲＯＭやＤＶＤなどの光学ディスクなどによって実現される。
【００８３】
本実施形態における記憶部５００は、処理部２００にゲーム装置１２００を統合的に制御させるための諸機能を実現するためのシステムプログラム５０２や、ゲームを実行させるために必要なゲームプログラム５０４、並びに各種データ等を記憶する。処理部２００がゲームプログラム５０４を読み出して実行することによって、処理部２００にゲーム演算部２１０としての機能を実現させることができる。
【００８４】
また記憶部５００には、予め用意されるデータとしてゲーム空間設定データ５１０と、キャラクタ初期設定データ５２８を記憶する。更にゲームの進行に伴って生成され、随時書き換えられるデータとして、キャラクタステータスデータ５３０が記憶される。また、ゲームの進行に係る処理を実行するに当たり必要となる情報として、例えば仮想カメラを制御するための画角・視線方向・姿勢情報などのデータ、各種制限時間のカウントデータなどが適宜記憶される。
【００８５】
ゲーム空間設定データ５１０には、３次元仮想空間にゲーム空間を形成するための背景オブジェクトやゲーム空間内に配置されるアイテムのオブジェクト等に係る各種データが格納されている。例えば、雪面モデルデータ５１２と、通常床ヒット判定モデルデータ５１４と、レール８毎に用意されたレール設定データ５１６と、スペシャルアイテム９のモデルデータやテクスチャデータ、設定値などを格納するアイテム設定データ５１８とを格納している。
【００８６】
レール設定データ５１６は、例えば図１０に示すように、レールモデルデータ５２０と、壁ヒット判定モデルデータ５２２と、レール床ヒット判定モデルデータ５２４と、レール上面の長手方向を表す基準滑走方向ベクトル５２６とを格納している。その他、適宜テクスチャであったり、可動式のレールという設定であれば、モーションデータなどを格納する。
【００８７】
尚、格納される基準滑走方向ベクトル５２６は、単一のベクトルに限らない。例えば、レール８が蛇行する構成の場合、レール８の傾斜上流側からの距離に応じた複数の区画を設定し、区画毎にベクトルを対応づけて格納する構成としても良い。或いは、ベクトルの代わりに曲線関数を格納し、曲線の接線を求めることで基準滑走方向ベクトルを取得する構成としても良い。
【００８８】
キャラクタ初期設定データ５２８には、プレーヤキャラクタ２の初期設定データが格納されている。具体的には、表示用モデル、テクスチャ、初期配置位置座標、最高速度や最高加速度、最大操舵角、ブレーキ性能などの能力パラメータ値の初期値が格納されている。プレーヤキャラクタ２のトリックアクションのモーションデータもここに含まれている。
【００８９】
キャラクタステータスデータ５３０は、プレーヤキャラクタ２の現在の状態を表す情報が格納されている。例えば図１１に示すように、キャラクタＩＤ５３２と、現在位置５３４と、速度ベクトル５３６と、トリックアクションの動作制御に係るトリックの識別情報や実行中のモーションフレーム情報などを含むトリック制御データ５３８と、所持アイテムリスト５４０と、ＯＮレールフラグ５４２と、壁ヒット有効設定フラグ５４４とを含む。
【００９０】
スペシャルアイテム９を取得した場合には、所持アイテムリスト５４０に、該当するアイテムの識別情報が格納される。
【００９１】
壁ヒット有効設定フラグ５４４は、壁ヒット判定部２１４によって壁ヒット判定モデル３０を有効に設定する場合には「１」が設定され、無効に設定する場合には「０」が設定される。尚、ゲーム開始時点での初期設定値は「１」である。
【００９２】
［処理の流れの説明］
次に、本実施形態における処理の流れについて説明する。ここで説明する処理は、処理部２００がシステムプログラム５０２及びゲームプログラム５０４を実行することによって実現される。尚、ゲーム音に関する制御は公知のビデオゲームと同様に実現することができるので、ここでは説明を省略する。
【００９３】
図１２〜図１３は、本実施形態における主たる処理の流れについて説明するためのフローチャートである。処理部２００は、先ずゲーム空間設定データ５１０を参照して３次元仮想空間内に雪面６やレール８といった背景オブジェクトを配置してゲーム空間を形成する（ステップＳ２：図２参照）。雪面６及びレール８に関しては、付属する不可視のヒット判定モデルも同時に設定される（図３参照）。
【００９４】
次に、処理部２００は、キャラクタ初期設定データ５２８を参照し、プレーヤキャラクタ２と仮想カメラを初期位置に配置する（ステップＳ４）。仮想カメラは、以降、プレーヤキャラクタ２を自動追尾して撮影するように自動制御されることとし、説明を省略する。
【００９５】
次に、処理部２００はスペシャルアイテム９などのプレーヤキャラクタ２が取得可能なアイテムのオブジェクトをゲーム空間に配置し（ステップＳ６）、壁ヒット有効設定フラグ５４４を初期値の「１（有効）」に設定し、ＯＮレールフラグ５４２を初期値の「０」に設定する（ステップＳ８）。
【００９６】
ゲームがスタートされたならば（ステップＳ１０のＹＥＳ）、処理部２００はステップＳ１２〜Ｓ６２を画像表示部３６０のリフレッシュレート以下の制御サイクルで、ゲーム終了条件を満たすまで繰り返し実行する。
【００９７】
具体的には、処理部２００は先ず所定の疑似物理法則に従ってプレーヤキャラクタ２の移動ベクトルＶを算出する（ステップＳ１２）。つまり、雪面６やレール８の上面に乗ったプレーヤキャラクタ２が自重で徐々に加速しながら斜面を滑る速度ベクトルＶを、仮想の重力環境下を想定してシミュレーションする。
【００９８】
次に、処理部２００は、操作入力部１００から加速・減速・ターン・ジャンプ等の操作入力が有れば（ステップＳ１４のＹＥＳ）、その操作入力に応じて速度ベクトルＶを修正する（ステップＳ１６）。
更に、トリックアクションの操作入力が有れば（ステップＳ１８のＹＥＳ）、操作入力に応じて所定のモーションデータに基づく動作制御が今回の制御サイクル分だけ実行される（ステップＳ２２）。次に制御サイクルでトリックアクションの操作入力が無くとも（ステップＳ１８のＮＯ）、実行中のトリックアクションが残っていれば（ステップＳ２０のＹＥＳ）、引き続き実行中のトリックアクションの動作制御をその制御サイクルの分だけ実行する。
【００９９】
次に、処理部２００はプレーヤキャラクタ２が雪面６に配置されたアイテムのオブジェクトに接触したか否かを判定する（ステップＳ２４）。接触した場合（ステップＳ２４のＹＥＳ）、プレーヤキャラクタ２がアイテムの取得に成功したと判定して、アイテム取得処理を実行する（ステップＳ２６）。例えば、アイテムを拾い上げる動作をプレーヤキャラクタ２にさせたり、アイテム取得を知らせるアイコンのオブジェクトをゲーム空間に所定時間配置するなどである。この時取得したアイテムの識別情報は、取得アイテムリスト５４０に格納される。
【０１００】
次いで、処理部２００はプレーヤキャクタ２のＯＮレールフラグ５４２の設定処理を行う（ステップＳ２８〜Ｓ３６）。
すなわち、現在の代表点Ｇを基準に、所定半径のヒット判定エリア４０を設定し、現在の速度ベクトルＶの延長線とヒット判定エリア４０との交点を算出して判定基準点４２を求める（ステップＳ２８）。そして、この判定基準点４２がレール８の上方にあるか否かを判定する（ステップＳ３０）。判定基準点４２のＺＸ座標値がレール床ヒット判定モデル２８の範囲に含まれれば、レール８の上方に有ると判定し（ステップＳ３０のＹＥＳ）、ＯＮレールフラグ５４２を「１」に設定する（ステップＳ３２）。
【０１０１】
反対に、プレーヤキャラクタ２の判定基準点４２及び代表点ＧのＺＸ座標値がレール床ヒット判定モデル２８の範囲外にある場合（ステップＳ３４のＹＥＳ）、つまり判定基準点４２も代表点Ｇもレール８の上に無ければ、処理部２００はＯＮレールフラグ５４２を「０」に設定する（ステップＳ３６）。
【０１０２】
次に、処理部２００は壁ヒット判定有効無効切り換え処理を実行する（ステップＳ３８）。同処理は、現在のプレーヤキャラクタ２とレールモデル２４との相対位置関係に基づいて、壁ヒット判定モデル３０の有効／無効の設定を切り換える処理である。
【０１０３】
図１４に示すように、同処理では先ず、処理部２００は判定基準点４２のゲーム空間での直下、本実施形態ではゲーム空間座標Ｙ軸方向の直下に設定されている最寄りのヒット判定モデルを検索する。
検索された最寄りのヒット判定モデルが、通常床ヒット判定モデル２２で（ステップＳ８４の「通常床」）、且つＯＮレールフラグ５４２が「０」であり、プレーヤキャラクタ２が雪面６を滑っていると判定される場合には（ステップＳ８６のＹＥＳ）、処理部２００は記憶部５００の壁ヒット有効設定フラグ５４４を「１」に設定して、壁ヒット判定モデル３０を有効化する（ステップＳ８８）。そして、壁ヒット判定有効無効切り換え処理を終了する。
反対に、検索された最寄りのヒット判定モデルが、レール床ヒット判定モデル２８の場合（ステップＳ８４の「レール床」）、処理部２００は壁ヒット有効設定フラグ５４４を「０」に設定して、壁ヒット判定モデル３０を無効化する（ステップＳ９２）。そして、壁ヒット判定有効無効切り換え処理を終了する。
【０１０４】
壁ヒット判定有効無効切り換え処理を終了したならば、図１３のフローチャートに戻って、次に処理部２００は、壁ヒット有効設定フラグ５４４を参照して、有効／無効の設定に基づいてプレーヤキャラクタ２と壁ヒット判定モデル３０とのヒット判定処理を実行し（ステップＳ４０）、そのヒット判定をプレーヤキャラクタ２の動作制御に反映させる（ステップＳ４２）。例えば、プレーヤキャラクタ２がレール８の側面に衝突して減速したり、転倒したりといったリアクションの動作制御を実行させると良い。
【０１０５】
次に、処理部２００はＯＮレールフラグ５４２が「１」で有る場合（ステップＳ５０のＹＥＳ）、更に判定基準点４２が、レール８の上面から上方所定高さ範囲として設定される速度補正実行範囲４６の内側に位置するかを判定する（ステップＳ５２：図５参照）。
判定基準点４２がレール８の上方の速度補正実行範囲４６の内側に位置する場合（ステップＳ５２のＹＥＳ）、処理部２００は更にプレーヤキャラクタ２の代表点Ｇがレール８の上方から外側に有るか否かを判定する（ステップＳ５４）。そして、代表点ＧのＺＸ座標値がレール床ヒット判定モデル２８の範囲外に位置すればレール８の上方から外側にあると判定して（ステップＳ５４のＹＥＳ）、移動体の第２の移動面上への移乗を支援する必要があると判断する。そして、支援力ベクトルＶｓを算出して、支援力ベクトルＶｓと現在の速度ベクトルＶとのベクトル和を求め、求めたベクトル和で速度ベクトルＶを更新する（ステップＳ５６：図７、図８参照）。つまり、プレーヤキャラクタ２がレール８の上面に着地し易くなるように速度ベクトルＶを補正する。
【０１０６】
処理部２００は次に、仮想カメラでゲーム空間中のプレーヤキャラクタ２の様子を撮影したゲーム空間画像をレンダリングして生成し、必要に応じてゲーム開始からの経過時間等の情報表示を合成してゲーム画面を生成する。そして、画像表示部３６０に表示させる（ステップＳ５８）。そして、ゲーム結果の算出を行う（ステップＳ６０）。ゲーム結果の算出では、プレーヤキャラクタ２が所定のゴール位置に到達した否かの判定や、上面を滑走できたレール８の数のカウントなどを行う。
【０１０７】
ゲーム結果が所定のゲーム終了条件を満たしていなければ（ステップＳ６２のＮＯ）、ステップＳ１０に戻る。一方、ゲーム結果がゲーム終了条件と満たしていれば（ステップＳ６２のＹＥＳ）、処理部２００は所定のゲーム終了の演出処理などを実行して（ステップＳ６４）、一連の処理を終了する。
【０１０８】
以上、本実施形態によれば、プレーヤキャラクタ２の速度ベクトルＶを、レール８に着地し易いように補正することができるので、スノーボードのレールアクションのように、現実世界では相当な難易度のアクションを気軽に楽しめるようにできる。
【０１０９】
また、そうした速度ベクトルＶの補正強度は、プレーヤキャラクタ２の状態に応じて調整することができる。例えば、スペシャルアイテム９を所持していれば非所持状態よりも、一層レール８に乗り易くなるように補正強度を強めて補正する。また、特殊動作（例えば、スノーボードのトリックアクション）を実行している場合も、よりレール８に乗り易くなるように補正強度を強めて補正する。
【０１１０】
〔変形例〕
以上、本発明を適用した実施形態について説明したが、本発明の適用形態がこれに限定されるものではない。
【０１１１】
例えば、第２の移動面（レール８）にかかる壁ヒット判定モデルをモデルデータとして持たずに、第１の移動面（雪面）に沿ったＺＸ座標で定義する方式であっても実現することができる。
【０１１２】
また、例えば、家庭用ゲーム装置１２００でビデオゲームを実行する構成を例に挙げたが、業務用のゲーム装置（例えば、株式会社セガ製「ＳＥＧＡ  ＳＫＩ  ＳＵＰＥＲ  Ｇ」と同様のゲーム装置）やパソコン、携帯型ゲーム装置などでゲームを実行することもできる。また、ゲームはスタンドアローンのゲーム装置で実行される場合に限らず、ネットワークゲーム（オンラインゲーム）であっても良い。
【０１１３】
また、ゲーム内容は、スノーボードを題材としたゲームに限らず、通常の移動面（第１の移動面）上に、局所的な高床の副移動面（第２の移動面）を設け、プレーヤキャラクタが通常移動面から副移動面へ移動する面を移すシチュエーションが含まれるゲームならば、自動車レースゲームや、ＲＰＧでも良い。図１５に示すように、ゲームフィールド７上に点在するコイン５をプレーヤキャラクタ３で集めてまわるアクションゲームなどに同様に適用できる。
【０１１４】
また、上記実施形態では、判定基準点４２（図５参照）がレール床ヒット判定モデル２８の上方で、速度補正実行範囲４６内に含まれる場合に移乗支援が要と判定する構成である。つまり、プレーヤキャラクタ２とレール８の相対高さとＺＸ平面方向の相対位置に基づいて判定しているが、これに限らない。
例えば、ステップＳ５０〜Ｓ５６の間に（図１３参照）、速度ベクトルＶと基準滑走方向ベクトルＶｎとの相対角度θが所定の基準角度未満であるか否かを判定するステップを設け、肯定判定した場合にステップＳ５６に進むことができる構成としても良い。つまり、プレーヤキャラクタ２とレール８の相対高さと、相対位置と、相対角度とに基づいて移乗支援の要否を判定する構成としても良い。この場合、基準角度を適宜調整することで、基準角度を超過する急角度（例えばレール８に直交するような角度）でレール８にアプローチした場合には速度ベクトルＶの補正を行わないようにするといった具合にゲーム内容を調整することができる。例えば、所定のアイテムや所定のキャラクタを使用することを条件に、どんな角度からアプローチしても絶対に第２の移動面に乗ることができるファンタジックな設定を設けてゲーム内容に多様性を設けるのにも利用できる。また、ゲーム開始前にプレーヤにゲーム難易度を選択させ、高難易度設定の場合には角度条件を厳しくし、低難易度設定の場合には角度条件を緩くすることで、プレーヤ補助機能とゲームのリアリティのバランス点を拡充させるのにも利用できる。
【０１１５】
また、上記実施形態では、支援力ベクトルＶｓを算出して速度ベクトルＶとのベクトル和を求めることで、補正後の速度ベクトルＶｒを求める構成としているが（図７参照）、速度ベクトルＶの方向を基準滑走方向ベクトルＶｎの方向に近づけるように補正できるならばその他の方法でもかまわない。
例えば、図１６に示すように、速度ベクトルＶと基準滑走方向ベクトルＶｎとの相対角度θと、速度ベクトルＶの速さ｜Ｖ｜とを変数とする所定の関数ｆ（θ，｜Ｖ｜）で、回転角度Δθｖの基本値を算出し、これに係数ｋ１及び係数ｋ２を乗算して適用値を求める構成としても良い。そして、速度ベクトルＶが基準滑走方向ベクトルＶｎとなす相対方向と反対向き（基準滑走方向ベクトルＶｎに近づける方向）に、回転角度Δθｖだけ代表点Ｇまわりに速度ベクトルＶを回転させて、補正後の速度ベクトルＶｒを求める構成にできる。尚、関数ｆ（θ，｜Ｖ｜）は、前出の関数値ｇ（θ，｜Ｖ｜）と同様の性質を有するものとする。
【０１１６】
また、係数ｋ１や係数ｋ２を決定するのに利用したプレーヤキャラクタの状態を示すパラメータとしては、キャラクタのレベル（成長段階を示すレベルや、特定技能の習得レベル、ゲーム結果から決定されるプレーヤの習熟度から求められるレベルなど）、キャラクタの種類（性別、年齢、種族）、キャラクタの心理状態（例えば、標準／興奮など）を適宜利用することができる。
【０１１７】
例えば、キャラクタのレベルを適用する場合には、ステップＳ６４のゲーム終了処理（図１３参照）で、公知のビデオゲームと同様にして、今回のゲームプレイの結果を基にプレーヤキャラクタのレベルを決定し、ゲームプレイ履歴データとして記憶部５００に記憶保存する構成とする。加えて、ステップＳ１０の前にこのプレイ履歴データを参照するステップを設ける。そして、キャラクタステップを支援力ベクトルＶｓ或いは回転角度Δθｖを算出する際、参照したプレーヤキャラクタのレベルに応じて係数ｋ３を決定し、係数ｋ１や係数ｋ２と同様に乗算する。係数ｋ３は、例えば所定の上級判定レベルに達していなければｋ３＝０．９、上級判定レベルに達していればｋ３＝０．６とする。
よって、ゲームに習熟し上級レベルのプレーヤがプレイする場合には、速度ベクトルＶの補正を意図的に弱めることで、相対的にゲームの難易度を高めて、プレーヤの技量に応じた「やりごたえ」を設定することができる。
【０１１８】
勿論、係数ｋ１や係数ｋ２を決定するのに利用したパラメータはプレーヤキャラクタの状態に限らない。例えば、特定操作入力の有無で係数値を変える構成としたり、プレーヤに操作課題を提示して課題をクリアできたか否かで係数値を変える構成とすることもできる。具体的には、前者の場合では、ステップＳ５６の前に、所定のプッシュスイッチ１２３２の連打入力や、右アナログレバー１２３６Ｒや左アナログレバー１２３６Ｌのすりこぎ運動入力といった特定操作入力の有無を判定するステップと、特定操作入力が有った場合には係数ｋ１を「１．２」とし、無い場合には係数ｋ１を「１．０」と決定するステップとを挿入すれば良い。また、後者の場合には、ステップＳ５０の前に、プレーヤキャラクタ２の前方所定範囲にレール８が有ることを検出するステップと、検出された場合に所定の課題（例えば、「５秒以内に１０回連打入力せよ！」）をゲーム画面に提示するステップと、課題提示後に課題のクリア可否を判定するステップとを設ける。そして、ステップＳ５６の前に、課題クリアできたならば係数ｋ１を「１．２」とし、クリアできなかった場合には「１．０」と決定するステップを挿入すれば良い。
【０１１９】
また、判定基準点４２を、ヒット判定エリア４０と速度ベクトルＶの延長線との交点としたが、例えば、プレーヤキャラクタ２の中心（例えば腰位置）からプレーヤキャラクタ２の体の向きに所定距離（例えば１ｍ）離れた位置に判定基準点を定めても良い。
【０１２０】
また、設定する基準滑走方向ベクトルＶｎの方向は、一つに限らず複数設定することもできる。その場合には、ステップＳ５６の前に、複数設定されている基準滑走方向ベクトルＶｎの中から速度ベクトルＶと方向が近いベクトルを選択するステップを設け、ステップＳ５６ではこの選択されたベクトルを用いることとすればよい。
【図面の簡単な説明】
【０１２１】
【図１】家庭用ゲーム装置の構成例を示すシステム構成図。
【図２】スノーボードゲームのゲーム画面例を示す図。
【図３】レールに係るモデルの構成と配置の例を示す概略斜視図。
【図４】壁ヒット判定モデルの切り換えの概念を説明するための図。
【図５】壁ヒット判定モデルの切り換えの概念を説明するための図。
【図６】壁ヒット判定モデルの切り換えの概念を説明するための図。
【図７】速度ベクトルの補正原理を説明するための図。
【図８】補正角度の基本値の算出例を示すグラフ。
【図９】機能構成例を示す機能ブロック図。
【図１０】レール設定データのデータ構成例を示す図。
【図１１】キャラクタステータスデータのデータ構成例を示す図。
【図１２】主たる処理の流れを説明するためのフローチャート。
【図１３】図１２から続くフローチャート。
【図１４】壁ヒット判定有効無効切り換え処理の流れを説明するためのフローチャート。
【図１５】本発明を適用したゲームの変形例を説明するための図。
【図１６】速度ベクトルの補正手法の変形例を説明するための図。
【符号の説明】
【０１２２】
２    プレーヤキャラクタ（ＰＣ）
６    雪面
８    レール
９    スペシャルアイテム
２０  雪面モデル
２２  通常床ヒット判定モデル
２４  レールモデル
２８  レール床ヒット判定モデル
３０  壁ヒット判定モデル
４０  ヒット判定エリア
４２  判定基準点
５０  前端頂点
１００  操作入力部
２００  処理部
２１０  ゲーム演算部
２１２  ＰＣ（プレーヤキャラクタ）動作制御部
２１４  壁ヒット判定部
２１６  速度ベクトル補正部
２６０  画像生成部
３６０  画像表示部
５００  記憶部
５０４  ゲームプログラム
５１０  ゲーム空間設定データ
５１２  雪面モデルデータ
５１４  通常床ヒット判定モデルデータ
５１６  レール設定データ
５２０  レールモデルデータ
５２２  壁ヒット判定モデルデータ
５２４  レール床ヒット判定モデルデータ
５２６  基準滑走方向ベクトル
５２８  キャラクタ初期設定データ
５３０  キャラクタステータスデータ
５３６  速度ベクトル
５３８  トリック制御データ
５４０  所持アイテムリスト
５４２  ＯＮレールフラグ
５４４  壁ヒット有効設定フラグ
Ｖ  速度ベクトル
Ｖｎ  基準滑走方向ベクトル
Ｖｒ  （補正後の）速度ベクトル
Ｖｓ  支援力ベクトル
【図１】
2010082341.tif 000003
【図２】
2010082341.tif 000004
【図３】
2010082341.tif 000005
【図４】
2010082341.tif 000006
【図５】
2010082341.tif 000007
【図６】
2010082341.tif 000008
【図７】
2010082341.tif 000009
【図８】
2010082341.tif 000010
【図９】
2010082341.tif 000011
【図１０】
2010082341.tif 000012
【図１１】
2010082341.tif 000013
【図１２】
2010082341.tif 000014
【図１３】
2010082341.tif 000015
【図１４】
2010082341.tif 000016
【図１５】
2010082341.tif 000017
【図１６】
2010082341.tif 000018