説明

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

【課題】 第1の移動面よりも高い位置に設けられた比較的狭幅の第2の移動面にプレーヤキャラクタを移乗させ易くすること。
【解決手段】 レール8に設定されている基準滑走方向ベクトルVnをプレーヤキャラクタ2の速度ベクトルVと同じ大きさに補正した目標ベクトルVn’を求める。目標ベクトルVn’と速度ベクトルVとのベクトル差ΔVを求め、プレーヤキャラクタ2の速度ベクトルVとレール8に設定されている基準滑走方向ベクトルVnとの相対角度θ、及び速度ベクトルVの大きさ(速さ|V|)を引数とする関数g(θ、|V|)で大きさを加減して、支援力ベクトルVsを決定する。そして、速度ベクトルVと支援力ベクトルVsのベクトル和を求め、これを補正された新たな速度ベクトルVrとし、プレーヤキャラクタ2の移動を制御する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、三次元仮想空間中に配置された移動面に沿って移動体を移動制御して所定のゲームを実行させるためのプログラム等に関する。
【背景技術】
【0002】
近年のビデオゲームの多くは、三次元仮想空間中に背景のオブジェクトを配置してゲーム空間を形成し、そこにプレーヤキャラクタやNPC(ノンプレイアブルキャラクタ)のオブジェクトを配置する。そして、それらキャラクタのオブジェクトをプレーヤによる操作入力や所定の思考ルーチンに基づくAI制御によって移動・動作制御する。その様子を仮想カメラで撮影した画像をレンダリングして得たゲーム空間画像が、ゲーム画面の元となる。
【0003】
キャラクタの移動制御については、飛行タイプのキャラクタを除けば、地面や甲板、屋根などの移動面に沿って移動するように制御される。このとき、キャラクタと移動面との間でヒット判定が行われ、移動面とヒットしたと判定されるとそのキャラクタは移動面の向こう側には移動できなくなる。これによって、キャラクタが地面に潜り込むように配置されないようにしている。こうしたキャラクタと移動面とのヒット判定は、「床ヒット判定」と呼ばれる。
【0004】
また、キャラクタの移動制御では、キャラクタが建造物の壁面や崖などの立面に衝突してそれ以上先に進めないように制御されるが、これは「壁ヒット判定」と呼ばれる。
壁ヒット判定を容易にするために、移動面を、高さ方向をY軸とするゲーム空間座標系のZX平面に見立て、ZXの座標で壁ヒット判定される境界を定義した「ヒットチェックマップ」とよばれるものを利用する手法が知られている。ヒットチェックマップを用いた壁ヒット判定では、プレーヤキャラクタ等のZX座標値とヒットチェックマップに定義されている境界との衝突判定が行われる。見方を変えると、ZXの座標で移動面上の位置が定義されたY軸方向に無限の高さを有するヒット判定用の板状のモデルが配置されているとも言える。
この場合、Y軸方向成分は衝突判定外となるので、プレーヤキャラクタがジャンプしたり、魔法やアイテムの作用で地面から浮かんでいる状態であっても、壁ヒット判定を行い所定の境界線より先には移動できないようにできる。
【0005】
公知の技術では、このヒットチェックマップをテクスチャとして貼り付けたオブジェクトを配置して、ゲーム空間内におけるプレーヤキャラクタの相対位置を把握するための所謂「レーダー画面」として見せる技術も知られるところである(例えば、特許文献1を参照)。
【特許文献1】特許第3215306号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
さてここで、重力成分を含む所定の擬似物理法則に従い、三次元仮想空間中に配置された移動面に沿って移動体を移動制御することを前提として、ブロック塀のように標準移動面(地面)よりも高い位置に第2の移動面を設定し、ここにもプレーヤキャラクタ等が飛び乗ることができるゲームを考えると、第2の移動面の幅が狭いために上手くプレーヤキャラクタをブロック塀に乗せるのが難しくなるといった問題がある。
【0007】
また、プレーヤキャラクタの移動範囲を制限する技術として、ZX座標のみで境界を定義したり、Y軸方向(高さ方向)に無限長の板モデルを設定する手法は、ヒットチェックマップやヒット判定に利用するデータ量が低減できることから大変優れていると言える。しかし、ブロック塀のように標準移動面(地面)よりも高い位置に第2の移動面を設定し、ここにもプレーヤキャラクタ等が飛び乗ることができるようにしたい場合に問題が生じる。
すなわち、ブロック塀の側面にキャラクタがぶつかった場合にきちんと跳ね返されるようにするためにブロック塀の側面周りに従来技術のように境界(見えない壁)を設けると、高さ方向(Y軸方向)無限遠まで進入できなくなるので、ブロック塀に飛び乗ろうとしても壁ヒット判定で進入できず、決して乗れないことになってしまう。
【0008】
本発明は、こうした事情を鑑みてなされたものであり、その目的とするところは、第1の移動面よりも高い位置に設けられた比較的狭幅の第2の移動面にプレーヤキャラクタを移乗させ易くすることである。望むらくは、更に、ZX座標のみで境界を定義したり高さ方向に無限長の板モデルを設定する手法を前提にした場合でも、プレーヤキャラクタが第2の移動面に乗れるように制御することである。
【課題を解決するための手段】
【0009】
上記の課題を解決する第1の発明は、コンピュータに、重力成分を含む所定の擬似物理法則に従い、三次元仮想空間中に配置された移動面に沿って移動体を移動制御して所定のゲームを実行させるためのプログラムであって、
第1の移動面(例えば、図2の雪面6)と前記第1の移動面よりも高い位置に基準方向を有する第2の移動面(例えば、図2のレール8の上面)とを前記三次元仮想空間に配置する移動面配置手段(例えば、図9の処理部200、ゲーム演算部210、ゲーム空間設定データ510、図12のステップS2)、
前記所定の擬似物理法則に従って前記移動体の移動ベクトルを算出し、前記移動体を前記第1の移動面又は前記第2の移動面に沿って移動制御する移動制御手段(例えば、図9の処理部200、ゲーム演算部210、図12のステップS12)、
前記移動体の前記第2の移動面上への移乗を支援するか否かを判定する移乗支援判定手段(例えば、図9の処理部200、ゲーム演算部210、図11のONレールフラグ542、図12のステップS30〜S32、図13のステップS34〜S36、ステップS50〜S54)、
前記移乗支援判定手段による肯定判定された場合に、前記第2の移動面の基準方向に基づいて前記移動体を前記第2の移動面上に移乗させる支援力を算出する支援力算出手段(例えば、図9の処理部200、ゲーム演算部210、速度ベクトル補正部216、図13のステップS56)、として前記コンピュータを機能させるとともに、
前記移動制御手段が、前記支援力を用いて前記移動ベクトルを補正して前記移動体の移動を制御するように前記コンピュータを機能させるためのプログラムである。
【0010】
また、別の形態として、重力成分を含む所定の擬似物理法則に従い、三次元仮想空間中に配置された移動面に沿って移動体を移動制御して所定のゲームを実行するゲーム装置であって、第1の移動面と前記第1の移動面よりも高い位置に基準方向を有する第2の移動面とを前記三次元仮想空間に配置する移動面配置手段(例えば、図1の制御ユニット1210、図9の処理部200、ゲーム演算部210、ゲーム空間設定データ510、図12のステップS2)と、
前記所定の擬似物理法則に従って前記移動体の移動ベクトルを算出し、前記移動体を前記第1の移動面又は前記第2の移動面に沿って移動制御する移動制御手段(例えば、図1の制御ユニット1210、図9の処理部200、ゲーム演算部210、図12のステップS12)と、
前記移動体の前記第2の移動面上への移乗を支援するか否かを判定する移乗支援判定手段(例えば、図1の制御ユニット1210、図9の処理部200、ゲーム演算部210、図11のONレールフラグ542、図12のステップS30〜S32、図13のステップS34〜S36)と、
前記移乗支援判定手段による肯定判定された場合に、前記第2の移動面の基準方向に基づいて前記移動体を前記第2の移動面上に移乗させる支援力を算出する支援力算出手段(図1の制御ユニット1210、図9の処理部200、ゲーム演算部210、速度ベクトル補正部216、図13のステップS56)と、を備え、
前記移動制御手段が、前記支援力を用いて前記移動ベクトルを補正して前記移動体の移動を制御するゲーム装置として実現しても良い。
【0011】
ここで言う「基準方向」とは、第2の移動面の形状的な特徴方向(例えば、長手方向や、適用するテクスチャに方向指示の図柄が含まれる場合にはその方向)や、ゲーム上適当と判断される移動体の標準的な移動方向(例えば、手すりであれば下り方向、スノーボードパークのレールやファンボックスならば斜面下向き或いは傾斜方向)を含む意味である。
【0012】
第1の発明によれば、所定の擬似物理法則に従って移動体の移動ベクトルを算出することを前提として、移動体の第2の移動面上への移乗を支援するか否かを判定し、必要ならば第2の移動面の基準方向に基づいて移動体を第2の移動面上に移乗させる支援力を算出
し、移動ベクトルを補正することができる。
よって、第2の移動面が、ブロック塀のように幅の狭い面であってもプレーヤキャラクタをその上面に乗せ易くすることができる。
【0013】
第2の発明は、第1の発明のプログラムであって、前記移動支援判定手段が、前記移動体の位置と前記移動ベクトルと前記第2の移動面の高さ位置とを用いて前記第2の移動面上への移乗を支援するか否かを判定するように前記コンピュータを機能させるためのプログラムである。
【0014】
第2の発明によれば、第1の発明と同様の効果を奏するとともに、プレーヤキャラクタが第2の移動面に接近した場合に、移動体の位置と移動ベクトルと第2の移動面の高さ位置とをパラメータにして、支援力に基づく速度ベクトルの補正の実行/非実行を分けることができる。
よって、例えば、移動体をスノーボーダキャラクタとし、第2の移動面をレールやファンボックスのようにゲレンデの局所に設けられた構造物とするならば、スノーボーダーがレールに接近したらいつでもその上に乗れてしまうのではなく、有る程度の高さや相対位置が揃わなければ乗れないようにすることができる。勿論、条件が揃わなければレールの側面に衝突することになる。つまり、プレイの補助とゲームのリアリティを適度に調整することができる。
【0015】
第3の発明は、第2の発明のプログラムであって、前記移動支援判定手段が、前記移動体の移動方向と前記第2の移動面の基準方向との成す角度を用いて前記第2の移動面上への移乗を支援するか否かを判定するように前記コンピュータを機能させるためのプログラムである。
【0016】
第3の発明によれば、第2の発明と同様の効果を奏するとともに、移動体が第2の移動面へのアプローチ角度を移乗支援の要否判定のパラメータとすることができる。よって、所定のアイテムや所定のキャラクタを使用することを条件に、どんな角度からアプローチしても絶対に第2の移動面に乗ることができるファンタジックな設定を設けてゲーム内容に多様性を設けたり、ゲーム開始前にプレーヤにゲーム難易度を選択させ、高難易度設定の場合には角度条件を厳しくし、低難易度設定の場合には角度条件を緩くするといったこともできる。
【0017】
第4の発明は、第1〜第3の何れかの発明のプログラムであって、前記支援力算出手段が、前記移動ベクトルと前記第2の移動面の基準方向との成す角度に応じて前記支援力を可変して算出するように前記コンピュータを機能させるためのプログラムである。
【0018】
第4の発明によれば、第1〜第3の発明の何れかと同様の効果を奏するとともに、移動体の第2の移動面に対するアプローチ角度に応じて支援力を可変できるので、状況に応じた適度な移乗支援を実現できる。
【0019】
第5の発明は、第4の発明のプログラムであって、前記支援力算出手段が、前記成す角度が所定角度以下の場合には当該角度が大きくなるほど前記支援力を大きく算出し、当該所定角度を超える場合には前記支援力を無しとして算出するように前記コンピュータを機能させるためのプログラムである。
【0020】
第5の発明によれば、第4の発明と同様の効果を奏するとともに、アプローチ角度が有る程度大きくなると移乗支援の効果が発揮されないようにできる。
【0021】
第6の発明は、第1〜第5の何れかの発明のプログラムであって、前記支援力算出手段が、前記移動体の移動速度に応じて前記支援力を可変して算出するように前記コンピュータを機能させるためのプログラムである。
【0022】
第6の発明によれば、第1〜第5の発明の何れかと同様の効果を奏するとともに、移動体の第2の移動面へのアプローチ速度に応じて支援力を可変できる。例えば、アプローチ速度が大きい程支援力を大きくして、第2の移動面上を通過してしまわないように移乗支援をより確実なものにできる。反対に、アプローチ速度が極端に大きい場合には、支援力を小さくして、第2の移動面を飛び越えるといったシチュエーションも可能にすることができる。
【0023】
第7の発明は、第1〜第6の何れかの発明のプログラムであって、前記支援力算出手段が、ゲームプレイ状態を示すパラメータに基づいて前記支援力を可変して算出するように前記コンピュータを機能させるためのプログラムである。
【0024】
ここで言う「ゲームプレイ状態を示すパラメータ」とは、プレーヤのゲーム開始から現在までのプレイ状況や過去のプレイ履歴に基づいて決定されるプレーヤキャラクタのパラメータやプレーヤに設定されるパラメータを含む。
第7の発明によれば、第1〜第6の発明の何れかと同様の効果を奏するとともに、支援力を可変できるので、ゲームプレイに多様性を持たせることができる。
【0025】
なお、第8の発明のように、第1〜第7の何れかの発明のプログラムであって、プレーヤの操作入力に応じて前記移動体に所定のアクションを行わせる動作制御手段(例えば、図9の処理部200、ゲーム演算部210、PC動作制御部212、図12のステップS18〜S22)として前記コンピュータを機能させ、前記支援力算出手段が、前記移動体が前記所定のアクション実行中であるか否かに応じて前記支援力を可変して算出するように前記コンピュータを機能させるためのプログラムとすることもできる。
【0026】
第8の発明によれば、第1〜第7の発明の何れかと同様の効果を奏するとともに、所定のアクション実行中であるか否かに応じて支援力を可変できる。例えば、スノーボーダーをプレーヤキャラクタとするゲームでは、インディ、トゥウィーク、ワンエイティなどのスノーボードの技を所定のアクションとして設定し支援力を高くするように設定すれば、派手なトリックを決めながらレールなどに乗るといった豪快な合わせ技を容易に実現可能にして、ゲームの爽快感を高めることができる。
【0027】
また、第9の発明のように、第1〜第8の何れかの発明のプログラムであって、前記移動体の所持アイテムを設定するアイテム設定手段(例えば、図9の処理部200、ゲーム演算部210、アイテム設定データ518、図12のステップS6、ステップS24〜S26)、として前記コンピュータを機能させ、前記支援力算出手段が、前記移動体の所定アイテムに応じて前記支援力を可変して算出するように前記コンピュータを機能させるためのプログラムとすることもできる。
【0028】
第9の発明によれば、第1〜第8の発明の何れかと同様の効果を奏するとともに、移動体が第2の移動面に対してアプローチしている時のアイテム所持状況に応じて支援力を可変することができる。例えば、特定のアイテムを所持していると、通常より高い支援力が設定されるとしても良く、アイテムに基づいて支援力を変更することでゲームの楽しみをより豊かにできる。
【0029】
更には、第10の発明のように、第1〜第9の何れかの発明のプログラムであって、前記移動体のレベルを設定するレベル設定手段として前記コンピュータを機能させ、前記支援力算出手段が、前記移動体のレベルに応じて前記支援力を可変して算出するように前記コンピュータを機能させるためのプログラムとすることもできる。
【0030】
第10の発明によれば、第1〜第9の発明の何れかと同様の効果を奏するとともに、移動体のレベルに応じて支援力を変更することができる。ここで言う「移動体のレベル」としては、移動体のゲーム内での成長段階を示すレベルや、特定技能の習得レベル、ゲーム結果から決定されるプレーヤの習熟度から求められるレベルなどが適宜設定できる。例えば、移動体のレベルをプレーヤの習熟度のレベルとするならば、これに応じて支援力を可変できるので、ゲームに習熟し上級レベルのプレーヤがプレイする場合には、速度ベクトルVの補正を意図的に弱めることで、相対的にゲームの難易度を高めて、プレーヤの技量に応じた「やりごたえ」を設定することが可能になる。
【0031】
第11の発明は、第1〜第10の何れかの発明のプログラムであって、前記支援力算出手段が、前記移動ベクトルの向きを変更する回転力として前記支援力を算出するように前記コンピュータを機能させるためのプログラムである。
【0032】
第11の発明によれば、第1〜第10の発明の何れかと同様の効果を奏するとともに、速度ベクトルの方向を補正することができるので、移動体の移動の勢いのまま自然に移動体が第2の移動面に乗るように見せるといったことができる。
【0033】
第12の発明は、第1〜第11の何れかの発明のプログラムであって、
前記移動面配置手段が、前記第1の移動面から前記移動体の高さ以上高い位置に前記第2の移動面を配置するように前記コンピュータを機能させ、
前記第2の移動面の上方に非表示の壁オブジェクト(例えば、図3の壁ヒット判定モデル30)を設定する壁オブジェクト設定手段(例えば、図9の処理部200、ゲーム演算部210、図12のステップS2)、
前記移動体の移動方向前方に前記移動体に付随するように基準位置(例えば、図5の判定基準点42)を設定する基準位置設定手段(例えば、図9の処理部200、ゲーム演算部210、図12のステップS28)、
前記基準位置の直下の移動面が前記第1の移動面の場合に前記壁オブジェクトとのヒット判定を有効に設定し、前記第2の移動面の場合に無効に設定する壁ヒット有効無効設定手段(例えば、図9の処理部200、ゲーム演算部210、図13のステップS38)、
として前記コンピュータを機能させ、
更に、
前記移動制御手段が、前記壁ヒット有効無効設定手段による設定に従って、前記移動体と前記壁オブジェクトとのヒット判定を行って前記移動体を移動制御するように前記コンピュータを機能させるためのプログラムである。
【0034】
第12の発明によれば、第1〜第11の発明の何れかと同様の効果を奏するとともに、第2の移動面の上方に非表示の壁オブジェクトを設けることができる。その一方で、移動体の移動方向前方に移動体に付随するように基準位置を設定し、この基準位置の直下の移動面が第1の移動面の場合には、移動体が第2の移動面の上方を移動しようとしているわけではないと判断して、壁オブジェクトとのヒット判定を有効に設定し、第2の移動面の場合には移動体が第2の移動面の上方を移動或いは第2の移動面に着地しようとしていると判断して、ヒット判定を無効に設定することができる。そして、壁オブジェクトとのヒット有効/無効の設定に従って、移動体と壁オブジェクトとのヒット判定を行って移動体を移動制御することができる。
よって、移動体が第2の移動面の上方を通過或いは第2の移動面に着地できるような適切な相対位置関係にある場合には、壁ヒット判定を無効にして第2の移動面の上方を通過或いは第2の移動面に乗れるようにする一方で、移動体が第2の移動面の上方を通過或いは第2の移動面に着地できないような相対位置関係にある場合には、壁ヒットを有効にして通過或いは移乗をできなくすることができる。
【0035】
更に、壁オブジェクトを第2移動面の上方のみならず下方にも設けるならば、第2の移動面の上方を通過或いは着地できないような相対位置関係にあるときは、第2移動面を有する構造物(例えば、ブロック塀や、スノーボード競技におけるファンボックスやレール)の側面に衝突する現象を再現できるようになる。
【0036】
第13発明は、第1〜第12の発明の何れかのプログラムを記憶したコンピュータ読取可能な情報記憶媒体である。ここで言う「情報記憶媒体」とは、例えば磁気ディスクや光学ディスク、ICメモリなどを含む。第13の発明によれば、第1〜第12の発明の何れかのプログラムをコンピュータに読み取らせて実行させることによって、コンピュータに第1〜第12の発明の何れかと同様の効果を発揮させることができる。
【発明を実施するための最良の形態】
【0037】
〔第1実施形態〕
次に、第1実施形態として、本発明を適用したゲーム装置として家庭用ゲーム装置を挙げ、スノーボードゲームを実行する例を説明する。
【0038】
[ゲーム装置の構成]
図1は、本実施形態における家庭用ゲーム装置の構成例を説明するシステム構成図である。同図に示すように、家庭用ゲーム装置1200は、ゲーム装置本体1201と、ゲームコントローラ1230と、ビデオモニタ1220とを備える。
【0039】
ゲーム装置本体1201は、例えばCPUや画像処理用LSI、ICメモリ等が実装された制御ユニット1210と、光学ディスク1202やメモリカード1204といった情報記憶媒体の読み取り装置1206,1208とを備える。そして、家庭用ゲーム装置1200は、光学ディスク1202やメモリカード1204からゲームプログラム及び各種設定データを読み出し、ゲームコントローラ1230に為される操作入力に基づいて制御ユニット1210が各種のゲーム演算を実行してビデオゲームを実行する。
【0040】
制御ユニット1210は、CPU(Central Processing Unit)やGPU(Graphics Processing Unit)及びDSP(Digital Signal Processor)などの各種マイクロプロセッサ、ASIC(Application Specific Integrated Circuit)、ICメモリなどの電気電子機器を備え家庭用ゲーム装置1200の各部を制御する。また、制御ユニット1210は、インターネットやLAN(Local Area Network)、WAN(Wide Area Network)と言った通信回線1と接続して外部装置との間でデータ通信を実現する通信装置1212を備える。
【0041】
ゲームコントローラ1230は、選択の決定やキャンセル、タイミングの入力などに用いられるコントローラ上面に設けられたプッシュボタン1232と、左右の前側面に設けられたプッシュボタン1233R,1233Lと、図で言うところの上下左右の各方向を単独入力するための方向入力キー1234と、右アナログレバー1236Rと、左アナログレバー1236Lとを備える。
【0042】
右アナログレバー1236R及び左アナログレバー1236Lは、図で言うところの上下方向と左右方向の2軸方向を同時入力可能な方向入力デバイスである。通常はゲームコントローラ1230を左右の手で把持し、レバーにそれぞれ親指を添えて操作する。レバーを倒すことによって2軸成分を含む任意の方向入力と、レバーの傾倒量に応じた任意操作量を入力することができる。また、何れのアナログレバーも、操作入力していない中立状態からレバーの軸方向に押し込むことでプッシュスイッチとして使用することもできる。
【0043】
本実施形態では、プッシュボタン1232でプレーヤキャラクタであるスキーヤの加速や減速操作を入力し、方向入力キー1234或いは左アナログレバー1236Lの方向入力で左右のターン操作を入力する。
【0044】
ゲーム装置本体1201の制御ユニット1210は、ゲームコントローラ1230から受信した検出信号や操作入力信号に基づいてゲーム画像やゲーム音を生成してビデオゲームを実行する。生成されたゲーム画像やゲーム音は、信号ケーブル1209で接続されたビデオモニタ1220(ディスプレイモニタ)に出力される。ビデオモニタ1220には、画像を表示するフラットパネルディスプレイ1222と音声を放音するスピーカ1224とが備えられており、プレーヤはフラットパネルディスプレイ1222に映し出されるゲーム画像を見ながら、スピーカ1224から放音されるゲーム音を聞きつつゲームをプレイする。
【0045】
尚、本実施形態では、必要なプログラムや各種設定データを光学ディスク1202やメモリカード1204から読み出す構成としているが、制御ユニット1210の通信装置1212でインターネットやLAN(Local Area Network)、WAN(Wide Area Network)などの有線/無線の通信回線1に接続して外部の装置からダウンロードする構成としても良い。
【0046】
[ゲームの概要の説明]
次に、図2は本実施形態におけるスノーボードゲームの概要を説明するための図である。本実施形態におけるスノーボードゲームでは、3次元仮想空間内にゲーム空間として仮想のスキー場或いはスノーボードパークが形成されており、プレーヤはその中でスノーボーダのプレーヤキャラクタ2を操作して、雪面6やレール8を滑ってバーチャルスノーボードを楽しむことができる。雪面6の所々には、スペシャルアイテム9も設定される。プレーヤキャラクタ2をスペシャルアイテム9に当てると、そのアイテムを取得することができる。本実施形態では、スペシャルアイテム9を取得するとレール8に乗り易くなる(移乗し易くなる)効果が得られる。
【0047】
レール8は、雪面6(第1の移動面)よりも局所的に高い人工的な滑走面(第2の移動面)を形成する構造体であり、雪面6の随所に局所的に設けられている。レール8の外形は、その名が示す通り斜面下り方向に長いが幅が狭く、上面が平坦なブロック塀に類似する。レール8の上面位置は、斜面の上流側では雪面6に殆ど等しく、斜面下流側では雪面6よりプレーヤキャラクタ2の身長程高い位置にある。スノーボード用語では「ハンドレール」や「ファンボックス」などと呼ばれる構造物に相当する。尚、本実施形態ではレール8を上面視矩形或いは帯状の長尺構造体としているが、上面視正方形や円などの対象形であっても良いのは勿論である。更には、第2の移動面を設けるオブジェクトは、レール8のような固定構造体という設定に限らず、牛や馬、人、トラックの荷台など可動或いは可動する可能性のあるものに設定することもできる。
【0048】
プレーヤキャラクタ2をレール8の上で滑らせるには、図2中のルート10のように、レール8の上流側で雪面6からレール8上に滑り降りるようにしてプレーヤキャラクタ2を乗せるか、ルート12の様に、レール8の側方からアプローチしてタイミング良くプレーヤキャラクタ2にジャンプをさせて乗せるかする必要がある。尚、側方よりアプローチしても、ジャンプしなければルート14のようにレール8の側面に衝突することとなる。
【0049】
[レールに係るヒット判定]
図3は、本実施形態におけるレール8に係るモデルの構成と配置の例を示す概略斜視図である。同図に示すように、高さ方向をY軸とするXYZの直交3軸を有するゲーム空間座標には、雪面6の斜面を形成する表示用モデルである雪面モデル20がZX平面方向に設けられ、その上面には、プレーヤキャラクタ2が雪面6の上を滑走する際の位置を決定するための不可視(非表示)の通常床ヒット判定モデル22が設定されている。プレーヤキャラクタ2は、通常床ヒット判定モデル22に当たることで、それ以上下方には移動されず、見かけ上は雪面6にもぐりこまないようになっている。尚、図中では、見易くするために両者の間に意図的に間隙を設けて表示しているが、実際には雪面モデル20の上面と通常床ヒット判定モデル22とは同じ高さに設定されているものとする。
【0050】
雪面モデル20の上面には、レール8の表示用モデルであるレールモデル24が配置されており、その上面にはレールモデル24の上面と同サイズで不可視(非表示)のレール床ヒット判定モデル28が設定される。レール床ヒット判定モデル28は、プレーヤキャラクタ2がレール8に乗っているか否かの判定に使用される。レール床ヒット判定モデル28は、図の見易さの観点からレールモデル24の上面からやや浮いた位置に図示しているが、実際にはレールモデル24の上面と同じ高さに設けられているものとする。
【0051】
また、レールモデル24の前後左右の外周面に沿って、壁ヒット判定モデル30がそれぞれ設けられている。壁ヒット判定モデル30は、それぞれ寄り沿っているレールモデル24の各外周面の横幅と同じであるが、雪面モデル20の上面からの高さが無限遠に設定されている。つまり、プレーヤキャラクタ2のゲーム空間座標系のX座標及びZ座標が、壁ヒット判定モデル30が設定されているX座標及びZ座標と比較され、もしヒットしていると判定された場合には、プレーヤキャラクタ2の雪面6からの高さ如何にかかわらず、その壁ヒット判定モデル30を超えてその先へは進む事ができないことになる。尚、壁ヒット判定モデル30も、図の見易さの観点からレールモデル24の側面からやや離した位置に図示しているが、実際には側面と密着する位置に立設されているものとする。
【0052】
さて、高さ方向無限遠の壁ヒット判定モデル30がレールモデル24の外周を囲繞しているので、このままではプレーヤキャラクタ2はレールモデル24の上に乗れないことになる。そこで、本実施形態ではプレーヤキャラクタ2とレール床ヒット判定モデル28との相対位置関係に基づいて、壁ヒット判定モデル30の有効/無効を切り換える制御を行う。
【0053】
図4〜図6は、壁ヒット判定モデル30の切り換えの概念を説明するための図であって、レール8の縦断面とともに横からプレーヤキャラクタ2の様子を表した図である。
【0054】
図4では、プレーヤキャラクタ2はレール8の側方(傾斜方向に向いて左側)より雪面6の上を滑走してきている。因みに、図2の例では、ルート14に沿って滑走した状態がこれに相当する。
壁ヒット判定モデル30の有効/無効を切り換える制御のために、先ずプレーヤキャラクタ2の現在の代表点Gから所定半径のヒット判定エリア40を設定し、このヒット判定エリア40と速度ベクトルVの延長線との交点を判定基準点42として求める。すなわち、判定基準点42は、プレーヤキャラクタ2の進行方向前方に、プレーヤキャラクタ2に付随するように設定される位置に定められる。
そして、判定基準点42の直下(ゲーム空間座標系Y軸マイナス方向)にある最寄りのヒット判定モデルを検索する。同図の状況では、通常床ヒット判定モデル22が検索される。そして、通常床ヒット判定モデル22が検索された場合、壁ヒット判定モデル30は「有効」とされる。
その結果、図4の状況ではプレーヤキャラクタ2はレールモデル24の左側面に設定されている壁ヒット判定モデル30とのヒット判定によってはじかれる。ゲーム画面上は、プレーヤキャラクタ2はレール8の構造体に衝突して転倒することになるであろう。
【0055】
一方、図5では、プレーヤキャラクタ2はレール8の手前でジャンプし、滑空しながらレール8の側方より接近してきている。図2の例では、ルート12がこれに該当する。
この場合、判定基準点42の直下の最寄りのヒット判定モデルとしてレール床ヒット判定モデル28が検索されることになり、壁ヒット判定モデル30が「無効」に設定される。この結果、プレーヤキャラクタ2がそのまま移動してもレールモデル24の左側面に設定されている壁ヒット判定モデル30とのヒット判定ではじかれることはなく、図6に示すように、レールモデル24の上に乗ることが可能になる。
【0056】
[移乗支援による速度ベクトルの補正の原理]
また、本実施形態では、プレーヤキャラクタ2の速度ベクトルVを補正して、レール8に乗り易くする移乗支援機能を備える。
具体的には、図5に示すように、判定基準点42がレール床ヒット判定モデル28の上方に存在した場合、レール8の上面への移乗を支援する必要が有ると判断し、支援要否を示す情報としてONレールフラグを「1(支援要)」に設定する(尚、ONレールフラグは、プレーヤキャラクタ2がレール8から落ちるまで「1」とされ、プレーヤキャラクタ2の代表点G及び判定基準点42のZX座標位置がレール床ヒット判定モデル28の外に出た場合に「0」に戻される。)。
尚、レール8の上面から上方所定高さ範囲までを速度補正実行範囲46として設定し、判定基準点42の高さ位置がこの速度補正実行範囲46内であることを移乗支援するための更なる条件として付加してもよい。
【0057】
そして、移乗支援が要の状態では、図7に示すように、現在の速度ベクトルVを、速度ベクトルVrに補正する。速度ベクトルVrは、速度ベクトルVよりもベクトルの方向がレール8固有に設定される基準滑走方向ベクトルVnの方向に近づけられたものである。
【0058】
基準滑走方向ベクトルVnは、レール8の上面を滑走する基準方向を示すベクトルである。本実施形態では、スキー場に設営されたスノーボード用のレールやボックスなどを想定しているので、レール8上面の長手方向(基準方向)を向き、且つ斜面下方を向いたベクトルとなる。
【0059】
つまり、速度ベクトルVが基準滑走方向ベクトルVn(基準方向に向いたベクトル)に対して相対的に右方向を向いていれば、速度ベクトルVの方向を左方向に補正し、速度ベクトルVが相対的に左方向を向いていれば右方向に補正することができる。よって、プレーヤキャラクタ2のレール8へのアプローチ角度が深くて、通常ならばレール8を越えてしまってアプローチ側の反対側へ落ちてしまうところを、速度ベクトルVの方向を基準滑走方向ベクトルVnの方向に近づけるように補正する処理を毎フレーム時間(例えば1/60秒)間隔で繰り返すことで、プレーヤキャラクタ2がレール8の上方に達した頃には、速度ベクトルVの方向が基準滑走方向ベクトルVnの方向に一層近づいた状態或いは同一となり、見かけ上、スムーズにレール8の上に着地するように表現される。
【0060】
より具体的には、先ず、基準滑走方向ベクトルVnの大きさを速度ベクトルVと同じ大きさに補正した目標ベクトルVn’と、速度ベクトルVとのベクトル差(ΔV)を求める。次いで、このベクトル差ΔVに、相対角度θ及び速度ベクトルVの大きさ(速さ|V|)を引数とする所定の関数g(θ,|V|)の関数値を乗算し、更に、プレーヤキャラクタの状態に応じて決定される係数k1,k2を乗算して、方向はそのままに大きさをベクトル差ΔVよりも小さくして支援力ベクトルVsとする。
【0061】
関数g(θ、|V|)は、例えば図8(a)の様に、相対角度θについては補正が実行される補正実行上限値(例えば、60°)を設け、これ未満ならば相対角度θが大きくなる程大きくなるように設定し、補正実行上限値より大きければ「0」になるように設定する。また、速度ベクトルVの速さ|V|については、図8(b)に示すように、速さ|V|が大きい程大きくなるように設定する。但し、上限値|Vm|以上では関数値g(θ,|V|)は頭打ちとなるようにすると良い。なお、関数g(θ,|V|)=関数g1(θ)×関数g2(|V|)として、相対角度θの関数と速度ベクトルVの大きさの関数とに分けて定めてもよい。
【0062】
プレーヤキャラクタの状態を示すパラメータとして、本実施形態では動作状態としてのトリックアクション(インディ、トゥウィーク、ワンエイティなどのスノーボードの技)の実行状況と、装備状態としてのスペシャルアイテム9の所持状態を使用する。
【0063】
トリックアクションの実行状況については、トリックアクション動作制御の実行を検出し、実行時の係数値が非実行時の係数値より大きくなるように係数k1を決定し乗算する。例えば、実行時は係数k1=1.0、非実行時は係数k1=0.8とする。
つまりトリックアクションをしながらレール8にアプローチすると、支援力ベクトルVsが大きくなり、より補正強度が高まりレール8により乗り易く補正される。尚、係数k1は、一つに限らず、トリックアクションの種類や難易度に応じて異なる値を用意しておくこともできる。
【0064】
アイテムの所持状況については、本実施形態では雪面6の所々に配置されるスペシャルアイテム9に滑走するプレーヤキャラクタ2を当てると、当該アイテムが取得状態となる。そこで、スペシャルアイテム9の所持状態に応じて、取得状態の係数値が未取得状態の係数値より大きくなるように係数k2を決定し乗算する。例えば、取得状態の係数k2=0.9、未取得状態の係数k2=0.7とする。
つまり、スペシャルアイテム9を取得した状態でレール8にアプローチすると、支援力ベクトルVsが大きくなり、補正強度がより一層増し、レール8により乗りやすく補正される。尚、係数k2は、一つに限らず取得したアイテムの種類に応じて異なる値を用意しておくこともできる。更には、係数ではなく、取得からの経過時間に応じた関数など所定の関数で定義しておくこともできる。
【0065】
そして、支援力ベクトルVsが求められたならば、支援力ベクトルVsを、速度ベクトルVを代表点G周りに基準滑走方向ベクトルVnの方向へ回転させる回転力として適用する。具体的には速度ベクトルVと支援力ベクトルVsのベクトル和を求める。これが補正後の速度ベクトルVrとなる。
【0066】
尚、図7の例では、基準滑走方向ベクトルVnを、単一のベクトルであるかのように記しているが、レール8が雪面6に沿って左右に蛇行する構造の場合には、レール8の上面位置毎に異なる基準滑走方向ベクトルVnを予め定義しておくと良い。
【0067】
[機能ブロックの説明]
次に、上述のようなゲームを実現するための具体的な構成について説明する。
図9は、本実施形態における家庭用ゲーム装置1200の機能構成の一例を示す機能ブロック図である。同図に示すように本実施形態では、操作入力部100と、処理部200と、音出力部350と、画像表示部360と、通信部370と、記憶部500とを備える。
【0068】
操作入力部100は、プッシュボタンや、レバー、タッチパッド、ダイヤル、キーボード、マウス、各種ポインタ、加速度センサ、傾斜センサなどの入力デバイスやセンサ類によって実現され、プレーヤによって為された各種の操作入力に応じて操作入力信号を処理部200に出力する。図1のゲームコントローラ1230が操作入力部100に該当する。
【0069】
処理部200は、例えばマイクロプロセッサやASIC(特定用途向け集積回路)、ICメモリなどの電子部品によって実現され、各機能部との間でデータの入出力を行うとともに所定のプログラムやデータ及び操作入力部100からの操作入力信号に基づいて各種の演算処理を実行して、家庭用ゲーム装置1200の動作を制御する。図1では、ゲーム装置本体1201に内蔵された制御ユニット1210が処理部200に該当する。
【0070】
そして、本実施形態における処理部200は、ゲーム演算部210と、音生成部250と、画像生成部260と、通信制御部270とを備える。
【0071】
ゲーム演算部210は、ゲームの進行に係る処理を実行する。例えば、雪面6やレール8、スペシャルアイテム9などのオブジェクトを配置したり壁ヒット判定モデル30などの不可視のヒット判定モデルを配置するなどして3次元仮想空間中にゲーム空間を形成する処理を行う。また、ゲーム空間中に配置されたオブジェクトの動作制御処理、ヒット判定処理、物理演算処理、ゲーム結果の判定処理が実行対象に含まれる。
【0072】
より具体的には、本実施形態のゲーム演算部210は、PC(プレーヤキャラクタ)動作制御部212と、壁ヒット判定部214と、速度ベクトル補正部216と、を含んでいる。
【0073】
PC動作制御部212は、操作入力部100に為された操作入力に基づいてプレーヤキャラクタ2の加速・減速・ターン・ジャンプ・トリックアクションといった動作制御を行う。本実施形態は、プレーヤキャラクタ2はスノーボードを履くので、トリックアクションとしては、インディ、トゥウィーク、ワンエイティなどがこれに当たる。
【0074】
壁ヒット判定部214は、ZX座標を比較してヒット判定する所謂「壁ヒット処理」を行う。本実施形態では、プレーヤキャラクタ2の現在の代表点Gから速度ベクトルVの延長線上に判定基準点42を設定する。そして、この定基準点42の直下の最寄りのヒット判定モデルが通常床ヒット判定モデル22であれば壁ヒット判定モデル30を「有効」とし、直下の最寄りのヒット判定モデルがレール床ヒット判定モデル28であれば壁ヒット判定モデル30を「無効」として壁ヒット判定処理を行う。
勿論、壁ヒット判定処理で「ヒット有り」の判定が成されると、公知のビデオゲームと同様に、プレーヤキャラクタ2は当たり判定されたヒット判定モデルより先には進めないように処理される。
【0075】
速度ベクトル補正部216は、プレーヤキャラクタ2がレール8の上面に乗り易くするように速度ベクトルVの方向をレール8の基準滑走方向ベクトルVnの方向に近づけるように補正する。
本実施形態は、第1に、判定基準点42がレール壁ヒット判定モデル28の上方に存在するか否かを判定して、移乗支援の要否を判定する機能を有する。
第2に、速度ベクトルVとレール8の基準滑走方向ベクトルVnとの相対角度θ及び速度ベクトルVの速さ|V|に基づいて、速度ベクトルVを補正するための支援力ベクトルVsを算出する機能を有する。具体的には、基準滑走方向ベクトルVnの大きさ(速さ)を速度ベクトルVの大きさ(速さ)|V|と等しく補正した目標ベクトルVn’を算出し、この目標ベクトルVn’と速度ベクトルVとの差ΔVの大きさを、所定の関数g(θ,|V|)と、トリックアクションの実行状況で決定される係数k1と、スペシャルアイテム9の所持状態で決定される係数k2を乗算して、小さくして支援力ベクトルVsとする。尚、本実施形態の関数g(θ,|V|)は、相対角度θが大きくなる程大きい関数値が算出され、速さ|V|が大きい程大きく算出される関数としているが、これに限定されるものではない。また、関数g(θ,|V|)はゲームバランスを考慮してゲーム制作者が適宜設定する。
【0076】
音生成部250は、例えばデジタルシグナルプロセッサ(DSP)などのプロセッサやその制御プログラムなどの公知技術によって実現され、ゲーム演算部210による処理結果に基づいてゲームに係る効果音やBGM、各種操作音の音信号を生成し、音出力部350に出力する。
【0077】
音出力部350は、音生成部250から入力される音信号に基づいて効果音やBGM等を音出力する装置によって実現される。図1ではビデオモニタ1220のスピーカ1224がこれに該当する。
【0078】
画像生成部260は、例えば、デジタルシグナルプロセッサ(DSP)などのプロセッサ、その制御プログラム、フレームバッファ等の描画フレーム用ICメモリ等の公知技術によって実現される。例えば画像生成部260は、ゲーム演算部210による処理結果に基づいて1フレーム時間(1/60秒)で1枚のゲーム画像を生成し、生成したゲーム画像の画像信号を画像表示部360に出力する。
【0079】
画像表示部360は、画像生成部260から入力される画像信号に基づいて各種ゲーム画像を表示する。例えば、フラットパネルディスプレイ、ブラウン管(CRT)、プロジェクター、ヘッドマウントディスプレイといった画像表示装置によって実現できる。図1ではビデオモニタ1220のフラットパネルディスプレイ1222が該当する。
【0080】
通信制御部270は、データ通信に係るデータ処理を実行し、通信部370を介して外部装置とのデータのやりとりを実現する。
【0081】
通信部370は、通信回線1と接続して通信を実現する。例えば、無線通信機、モデム、TA(ターミナルアダプタ)、有線用の通信ケーブルのジャックや制御回路等によって実現され、図1では通信装置1212がこれに該当する。
【0082】
記憶部500は、予め定義されたプログラムやデータを記憶するとともに、処理部200の作業領域として用いられて処理部200が各種プログラムに従って実行した演算結果や操作入力部100から入力される入力データ等を一時的に記憶する。この機能は、例えばRAMやROMなどのICメモリ、ハードディスク等の磁気ディスク、CD−ROMやDVDなどの光学ディスクなどによって実現される。
【0083】
本実施形態における記憶部500は、処理部200にゲーム装置1200を統合的に制御させるための諸機能を実現するためのシステムプログラム502や、ゲームを実行させるために必要なゲームプログラム504、並びに各種データ等を記憶する。処理部200がゲームプログラム504を読み出して実行することによって、処理部200にゲーム演算部210としての機能を実現させることができる。
【0084】
また記憶部500には、予め用意されるデータとしてゲーム空間設定データ510と、キャラクタ初期設定データ528を記憶する。更にゲームの進行に伴って生成され、随時書き換えられるデータとして、キャラクタステータスデータ530が記憶される。また、ゲームの進行に係る処理を実行するに当たり必要となる情報として、例えば仮想カメラを制御するための画角・視線方向・姿勢情報などのデータ、各種制限時間のカウントデータなどが適宜記憶される。
【0085】
ゲーム空間設定データ510には、3次元仮想空間にゲーム空間を形成するための背景オブジェクトやゲーム空間内に配置されるアイテムのオブジェクト等に係る各種データが格納されている。例えば、雪面モデルデータ512と、通常床ヒット判定モデルデータ514と、レール8毎に用意されたレール設定データ516と、スペシャルアイテム9のモデルデータやテクスチャデータ、設定値などを格納するアイテム設定データ518とを格納している。
【0086】
レール設定データ516は、例えば図10に示すように、レールモデルデータ520と、壁ヒット判定モデルデータ522と、レール床ヒット判定モデルデータ524と、レール上面の長手方向を表す基準滑走方向ベクトル526とを格納している。その他、適宜テクスチャであったり、可動式のレールという設定であれば、モーションデータなどを格納する。
【0087】
尚、格納される基準滑走方向ベクトル526は、単一のベクトルに限らない。例えば、レール8が蛇行する構成の場合、レール8の傾斜上流側からの距離に応じた複数の区画を設定し、区画毎にベクトルを対応づけて格納する構成としても良い。或いは、ベクトルの代わりに曲線関数を格納し、曲線の接線を求めることで基準滑走方向ベクトルを取得する構成としても良い。
【0088】
キャラクタ初期設定データ528には、プレーヤキャラクタ2の初期設定データが格納されている。具体的には、表示用モデル、テクスチャ、初期配置位置座標、最高速度や最高加速度、最大操舵角、ブレーキ性能などの能力パラメータ値の初期値が格納されている。プレーヤキャラクタ2のトリックアクションのモーションデータもここに含まれている。
【0089】
キャラクタステータスデータ530は、プレーヤキャラクタ2の現在の状態を表す情報が格納されている。例えば図11に示すように、キャラクタID532と、現在位置534と、速度ベクトル536と、トリックアクションの動作制御に係るトリックの識別情報や実行中のモーションフレーム情報などを含むトリック制御データ538と、所持アイテムリスト540と、ONレールフラグ542と、壁ヒット有効設定フラグ544とを含む。
【0090】
スペシャルアイテム9を取得した場合には、所持アイテムリスト540に、該当するアイテムの識別情報が格納される。
【0091】
壁ヒット有効設定フラグ544は、壁ヒット判定部214によって壁ヒット判定モデル30を有効に設定する場合には「1」が設定され、無効に設定する場合には「0」が設定される。尚、ゲーム開始時点での初期設定値は「1」である。
【0092】
[処理の流れの説明]
次に、本実施形態における処理の流れについて説明する。ここで説明する処理は、処理部200がシステムプログラム502及びゲームプログラム504を実行することによって実現される。尚、ゲーム音に関する制御は公知のビデオゲームと同様に実現することができるので、ここでは説明を省略する。
【0093】
図12〜図13は、本実施形態における主たる処理の流れについて説明するためのフローチャートである。処理部200は、先ずゲーム空間設定データ510を参照して3次元仮想空間内に雪面6やレール8といった背景オブジェクトを配置してゲーム空間を形成する(ステップS2:図2参照)。雪面6及びレール8に関しては、付属する不可視のヒット判定モデルも同時に設定される(図3参照)。
【0094】
次に、処理部200は、キャラクタ初期設定データ528を参照し、プレーヤキャラクタ2と仮想カメラを初期位置に配置する(ステップS4)。仮想カメラは、以降、プレーヤキャラクタ2を自動追尾して撮影するように自動制御されることとし、説明を省略する。
【0095】
次に、処理部200はスペシャルアイテム9などのプレーヤキャラクタ2が取得可能なアイテムのオブジェクトをゲーム空間に配置し(ステップS6)、壁ヒット有効設定フラグ544を初期値の「1(有効)」に設定し、ONレールフラグ542を初期値の「0」に設定する(ステップS8)。
【0096】
ゲームがスタートされたならば(ステップS10のYES)、処理部200はステップS12〜S62を画像表示部360のリフレッシュレート以下の制御サイクルで、ゲーム終了条件を満たすまで繰り返し実行する。
【0097】
具体的には、処理部200は先ず所定の疑似物理法則に従ってプレーヤキャラクタ2の移動ベクトルVを算出する(ステップS12)。つまり、雪面6やレール8の上面に乗ったプレーヤキャラクタ2が自重で徐々に加速しながら斜面を滑る速度ベクトルVを、仮想の重力環境下を想定してシミュレーションする。
【0098】
次に、処理部200は、操作入力部100から加速・減速・ターン・ジャンプ等の操作入力が有れば(ステップS14のYES)、その操作入力に応じて速度ベクトルVを修正する(ステップS16)。
更に、トリックアクションの操作入力が有れば(ステップS18のYES)、操作入力に応じて所定のモーションデータに基づく動作制御が今回の制御サイクル分だけ実行される(ステップS22)。次に制御サイクルでトリックアクションの操作入力が無くとも(ステップS18のNO)、実行中のトリックアクションが残っていれば(ステップS20のYES)、引き続き実行中のトリックアクションの動作制御をその制御サイクルの分だけ実行する。
【0099】
次に、処理部200はプレーヤキャラクタ2が雪面6に配置されたアイテムのオブジェクトに接触したか否かを判定する(ステップS24)。接触した場合(ステップS24のYES)、プレーヤキャラクタ2がアイテムの取得に成功したと判定して、アイテム取得処理を実行する(ステップS26)。例えば、アイテムを拾い上げる動作をプレーヤキャラクタ2にさせたり、アイテム取得を知らせるアイコンのオブジェクトをゲーム空間に所定時間配置するなどである。この時取得したアイテムの識別情報は、取得アイテムリスト540に格納される。
【0100】
次いで、処理部200はプレーヤキャクタ2のONレールフラグ542の設定処理を行う(ステップS28〜S36)。
すなわち、現在の代表点Gを基準に、所定半径のヒット判定エリア40を設定し、現在の速度ベクトルVの延長線とヒット判定エリア40との交点を算出して判定基準点42を求める(ステップS28)。そして、この判定基準点42がレール8の上方にあるか否かを判定する(ステップS30)。判定基準点42のZX座標値がレール床ヒット判定モデル28の範囲に含まれれば、レール8の上方に有ると判定し(ステップS30のYES)、ONレールフラグ542を「1」に設定する(ステップS32)。
【0101】
反対に、プレーヤキャラクタ2の判定基準点42及び代表点GのZX座標値がレール床ヒット判定モデル28の範囲外にある場合(ステップS34のYES)、つまり判定基準点42も代表点Gもレール8の上に無ければ、処理部200はONレールフラグ542を「0」に設定する(ステップS36)。
【0102】
次に、処理部200は壁ヒット判定有効無効切り換え処理を実行する(ステップS38)。同処理は、現在のプレーヤキャラクタ2とレールモデル24との相対位置関係に基づいて、壁ヒット判定モデル30の有効/無効の設定を切り換える処理である。
【0103】
図14に示すように、同処理では先ず、処理部200は判定基準点42のゲーム空間での直下、本実施形態ではゲーム空間座標Y軸方向の直下に設定されている最寄りのヒット判定モデルを検索する。
検索された最寄りのヒット判定モデルが、通常床ヒット判定モデル22で(ステップS84の「通常床」)、且つONレールフラグ542が「0」であり、プレーヤキャラクタ2が雪面6を滑っていると判定される場合には(ステップS86のYES)、処理部200は記憶部500の壁ヒット有効設定フラグ544を「1」に設定して、壁ヒット判定モデル30を有効化する(ステップS88)。そして、壁ヒット判定有効無効切り換え処理を終了する。
反対に、検索された最寄りのヒット判定モデルが、レール床ヒット判定モデル28の場合(ステップS84の「レール床」)、処理部200は壁ヒット有効設定フラグ544を「0」に設定して、壁ヒット判定モデル30を無効化する(ステップS92)。そして、壁ヒット判定有効無効切り換え処理を終了する。
【0104】
壁ヒット判定有効無効切り換え処理を終了したならば、図13のフローチャートに戻って、次に処理部200は、壁ヒット有効設定フラグ544を参照して、有効/無効の設定に基づいてプレーヤキャラクタ2と壁ヒット判定モデル30とのヒット判定処理を実行し(ステップS40)、そのヒット判定をプレーヤキャラクタ2の動作制御に反映させる(ステップS42)。例えば、プレーヤキャラクタ2がレール8の側面に衝突して減速したり、転倒したりといったリアクションの動作制御を実行させると良い。
【0105】
次に、処理部200はONレールフラグ542が「1」で有る場合(ステップS50のYES)、更に判定基準点42が、レール8の上面から上方所定高さ範囲として設定される速度補正実行範囲46の内側に位置するかを判定する(ステップS52:図5参照)。
判定基準点42がレール8の上方の速度補正実行範囲46の内側に位置する場合(ステップS52のYES)、処理部200は更にプレーヤキャラクタ2の代表点Gがレール8の上方から外側に有るか否かを判定する(ステップS54)。そして、代表点GのZX座標値がレール床ヒット判定モデル28の範囲外に位置すればレール8の上方から外側にあると判定して(ステップS54のYES)、移動体の第2の移動面上への移乗を支援する必要があると判断する。そして、支援力ベクトルVsを算出して、支援力ベクトルVsと現在の速度ベクトルVとのベクトル和を求め、求めたベクトル和で速度ベクトルVを更新する(ステップS56:図7、図8参照)。つまり、プレーヤキャラクタ2がレール8の上面に着地し易くなるように速度ベクトルVを補正する。
【0106】
処理部200は次に、仮想カメラでゲーム空間中のプレーヤキャラクタ2の様子を撮影したゲーム空間画像をレンダリングして生成し、必要に応じてゲーム開始からの経過時間等の情報表示を合成してゲーム画面を生成する。そして、画像表示部360に表示させる(ステップS58)。そして、ゲーム結果の算出を行う(ステップS60)。ゲーム結果の算出では、プレーヤキャラクタ2が所定のゴール位置に到達した否かの判定や、上面を滑走できたレール8の数のカウントなどを行う。
【0107】
ゲーム結果が所定のゲーム終了条件を満たしていなければ(ステップS62のNO)、ステップS10に戻る。一方、ゲーム結果がゲーム終了条件と満たしていれば(ステップS62のYES)、処理部200は所定のゲーム終了の演出処理などを実行して(ステップS64)、一連の処理を終了する。
【0108】
以上、本実施形態によれば、プレーヤキャラクタ2の速度ベクトルVを、レール8に着地し易いように補正することができるので、スノーボードのレールアクションのように、現実世界では相当な難易度のアクションを気軽に楽しめるようにできる。
【0109】
また、そうした速度ベクトルVの補正強度は、プレーヤキャラクタ2の状態に応じて調整することができる。例えば、スペシャルアイテム9を所持していれば非所持状態よりも、一層レール8に乗り易くなるように補正強度を強めて補正する。また、特殊動作(例えば、スノーボードのトリックアクション)を実行している場合も、よりレール8に乗り易くなるように補正強度を強めて補正する。
【0110】
〔変形例〕
以上、本発明を適用した実施形態について説明したが、本発明の適用形態がこれに限定されるものではない。
【0111】
例えば、第2の移動面(レール8)にかかる壁ヒット判定モデルをモデルデータとして持たずに、第1の移動面(雪面)に沿ったZX座標で定義する方式であっても実現することができる。
【0112】
また、例えば、家庭用ゲーム装置1200でビデオゲームを実行する構成を例に挙げたが、業務用のゲーム装置(例えば、株式会社セガ製「SEGA SKI SUPER G」と同様のゲーム装置)やパソコン、携帯型ゲーム装置などでゲームを実行することもできる。また、ゲームはスタンドアローンのゲーム装置で実行される場合に限らず、ネットワークゲーム(オンラインゲーム)であっても良い。
【0113】
また、ゲーム内容は、スノーボードを題材としたゲームに限らず、通常の移動面(第1の移動面)上に、局所的な高床の副移動面(第2の移動面)を設け、プレーヤキャラクタが通常移動面から副移動面へ移動する面を移すシチュエーションが含まれるゲームならば、自動車レースゲームや、RPGでも良い。図15に示すように、ゲームフィールド7上に点在するコイン5をプレーヤキャラクタ3で集めてまわるアクションゲームなどに同様に適用できる。
【0114】
また、上記実施形態では、判定基準点42(図5参照)がレール床ヒット判定モデル28の上方で、速度補正実行範囲46内に含まれる場合に移乗支援が要と判定する構成である。つまり、プレーヤキャラクタ2とレール8の相対高さとZX平面方向の相対位置に基づいて判定しているが、これに限らない。
例えば、ステップS50〜S56の間に(図13参照)、速度ベクトルVと基準滑走方向ベクトルVnとの相対角度θが所定の基準角度未満であるか否かを判定するステップを設け、肯定判定した場合にステップS56に進むことができる構成としても良い。つまり、プレーヤキャラクタ2とレール8の相対高さと、相対位置と、相対角度とに基づいて移乗支援の要否を判定する構成としても良い。この場合、基準角度を適宜調整することで、基準角度を超過する急角度(例えばレール8に直交するような角度)でレール8にアプローチした場合には速度ベクトルVの補正を行わないようにするといった具合にゲーム内容を調整することができる。例えば、所定のアイテムや所定のキャラクタを使用することを条件に、どんな角度からアプローチしても絶対に第2の移動面に乗ることができるファンタジックな設定を設けてゲーム内容に多様性を設けるのにも利用できる。また、ゲーム開始前にプレーヤにゲーム難易度を選択させ、高難易度設定の場合には角度条件を厳しくし、低難易度設定の場合には角度条件を緩くすることで、プレーヤ補助機能とゲームのリアリティのバランス点を拡充させるのにも利用できる。
【0115】
また、上記実施形態では、支援力ベクトルVsを算出して速度ベクトルVとのベクトル和を求めることで、補正後の速度ベクトルVrを求める構成としているが(図7参照)、速度ベクトルVの方向を基準滑走方向ベクトルVnの方向に近づけるように補正できるならばその他の方法でもかまわない。
例えば、図16に示すように、速度ベクトルVと基準滑走方向ベクトルVnとの相対角度θと、速度ベクトルVの速さ|V|とを変数とする所定の関数f(θ,|V|)で、回転角度Δθvの基本値を算出し、これに係数k1及び係数k2を乗算して適用値を求める構成としても良い。そして、速度ベクトルVが基準滑走方向ベクトルVnとなす相対方向と反対向き(基準滑走方向ベクトルVnに近づける方向)に、回転角度Δθvだけ代表点Gまわりに速度ベクトルVを回転させて、補正後の速度ベクトルVrを求める構成にできる。尚、関数f(θ,|V|)は、前出の関数値g(θ,|V|)と同様の性質を有するものとする。
【0116】
また、係数k1や係数k2を決定するのに利用したプレーヤキャラクタの状態を示すパラメータとしては、キャラクタのレベル(成長段階を示すレベルや、特定技能の習得レベル、ゲーム結果から決定されるプレーヤの習熟度から求められるレベルなど)、キャラクタの種類(性別、年齢、種族)、キャラクタの心理状態(例えば、標準/興奮など)を適宜利用することができる。
【0117】
例えば、キャラクタのレベルを適用する場合には、ステップS64のゲーム終了処理(図13参照)で、公知のビデオゲームと同様にして、今回のゲームプレイの結果を基にプレーヤキャラクタのレベルを決定し、ゲームプレイ履歴データとして記憶部500に記憶保存する構成とする。加えて、ステップS10の前にこのプレイ履歴データを参照するステップを設ける。そして、キャラクタステップを支援力ベクトルVs或いは回転角度Δθvを算出する際、参照したプレーヤキャラクタのレベルに応じて係数k3を決定し、係数k1や係数k2と同様に乗算する。係数k3は、例えば所定の上級判定レベルに達していなければk3=0.9、上級判定レベルに達していればk3=0.6とする。
よって、ゲームに習熟し上級レベルのプレーヤがプレイする場合には、速度ベクトルVの補正を意図的に弱めることで、相対的にゲームの難易度を高めて、プレーヤの技量に応じた「やりごたえ」を設定することができる。
【0118】
勿論、係数k1や係数k2を決定するのに利用したパラメータはプレーヤキャラクタの状態に限らない。例えば、特定操作入力の有無で係数値を変える構成としたり、プレーヤに操作課題を提示して課題をクリアできたか否かで係数値を変える構成とすることもできる。具体的には、前者の場合では、ステップS56の前に、所定のプッシュスイッチ1232の連打入力や、右アナログレバー1236Rや左アナログレバー1236Lのすりこぎ運動入力といった特定操作入力の有無を判定するステップと、特定操作入力が有った場合には係数k1を「1.2」とし、無い場合には係数k1を「1.0」と決定するステップとを挿入すれば良い。また、後者の場合には、ステップS50の前に、プレーヤキャラクタ2の前方所定範囲にレール8が有ることを検出するステップと、検出された場合に所定の課題(例えば、「5秒以内に10回連打入力せよ!」)をゲーム画面に提示するステップと、課題提示後に課題のクリア可否を判定するステップとを設ける。そして、ステップS56の前に、課題クリアできたならば係数k1を「1.2」とし、クリアできなかった場合には「1.0」と決定するステップを挿入すれば良い。
【0119】
また、判定基準点42を、ヒット判定エリア40と速度ベクトルVの延長線との交点としたが、例えば、プレーヤキャラクタ2の中心(例えば腰位置)からプレーヤキャラクタ2の体の向きに所定距離(例えば1m)離れた位置に判定基準点を定めても良い。
【0120】
また、設定する基準滑走方向ベクトルVnの方向は、一つに限らず複数設定することもできる。その場合には、ステップS56の前に、複数設定されている基準滑走方向ベクトルVnの中から速度ベクトルVと方向が近いベクトルを選択するステップを設け、ステップS56ではこの選択されたベクトルを用いることとすればよい。
【図面の簡単な説明】
【0121】
【図1】家庭用ゲーム装置の構成例を示すシステム構成図。
【図2】スノーボードゲームのゲーム画面例を示す図。
【図3】レールに係るモデルの構成と配置の例を示す概略斜視図。
【図4】壁ヒット判定モデルの切り換えの概念を説明するための図。
【図5】壁ヒット判定モデルの切り換えの概念を説明するための図。
【図6】壁ヒット判定モデルの切り換えの概念を説明するための図。
【図7】速度ベクトルの補正原理を説明するための図。
【図8】補正角度の基本値の算出例を示すグラフ。
【図9】機能構成例を示す機能ブロック図。
【図10】レール設定データのデータ構成例を示す図。
【図11】キャラクタステータスデータのデータ構成例を示す図。
【図12】主たる処理の流れを説明するためのフローチャート。
【図13】図12から続くフローチャート。
【図14】壁ヒット判定有効無効切り換え処理の流れを説明するためのフローチャート。
【図15】本発明を適用したゲームの変形例を説明するための図。
【図16】速度ベクトルの補正手法の変形例を説明するための図。
【符号の説明】
【0122】
2 プレーヤキャラクタ(PC)
6 雪面
8 レール
9 スペシャルアイテム
20 雪面モデル
22 通常床ヒット判定モデル
24 レールモデル
28 レール床ヒット判定モデル
30 壁ヒット判定モデル
40 ヒット判定エリア
42 判定基準点
50 前端頂点
100 操作入力部
200 処理部
210 ゲーム演算部
212 PC(プレーヤキャラクタ)動作制御部
214 壁ヒット判定部
216 速度ベクトル補正部
260 画像生成部
360 画像表示部
500 記憶部
504 ゲームプログラム
510 ゲーム空間設定データ
512 雪面モデルデータ
514 通常床ヒット判定モデルデータ
516 レール設定データ
520 レールモデルデータ
522 壁ヒット判定モデルデータ
524 レール床ヒット判定モデルデータ
526 基準滑走方向ベクトル
528 キャラクタ初期設定データ
530 キャラクタステータスデータ
536 速度ベクトル
538 トリック制御データ
540 所持アイテムリスト
542 ONレールフラグ
544 壁ヒット有効設定フラグ
V 速度ベクトル
Vn 基準滑走方向ベクトル
Vr (補正後の)速度ベクトル
Vs 支援力ベクトル

【特許請求の範囲】
【請求項1】
コンピュータに、重力成分を含む所定の擬似物理法則に従い、三次元仮想空間中に配置された移動面に沿って移動体を移動制御して所定のゲームを実行させるためのプログラムであって、
第1の移動面と、前記第1の移動面よりも高い位置に基準方向を有する第2の移動面とを前記三次元仮想空間に配置する移動面配置手段、
前記所定の擬似物理法則に従って前記移動体の移動ベクトルを算出し、前記移動体を前記第1の移動面又は前記第2の移動面に沿って移動制御する移動制御手段、
前記移動体の前記第2の移動面上への移乗を支援するか否かを判定する移乗支援判定手段、
前記移乗支援判定手段による肯定判定された場合に、前記第2の移動面の基準方向に基づいて前記移動体を前記第2の移動面上に移乗させる支援力を算出する支援力算出手段、
として前記コンピュータを機能させるとともに、
前記移動制御手段が、前記支援力を用いて前記移動ベクトルを補正して前記移動体の移動を制御するように前記コンピュータを機能させるためのプログラム。
【請求項2】
前記移動支援判定手段が、前記移動体の位置と前記移動ベクトルと前記第2の移動面の高さ位置とを用いて前記第2の移動面上への移乗を支援するか否かを判定するように前記コンピュータを機能させるための請求項1に記載のプログラム。
【請求項3】
前記移動支援判定手段が、前記移動体の移動方向と前記第2の移動面の基準方向との成す角度を用いて前記第2の移動面上への移乗を支援するか否かを判定するように前記コンピュータを機能させるための請求項2に記載のプログラム。
【請求項4】
前記支援力算出手段が、前記移動ベクトルと前記第2の移動面の基準方向との成す角度に応じて前記支援力を可変して算出するように前記コンピュータを機能させるための請求項1〜3の何れか一項に記載のプログラム。
【請求項5】
前記支援力算出手段が、前記成す角度が所定角度以下の場合には当該角度が大きくなるほど前記支援力を大きく算出し、当該所定角度を超える場合には前記支援力を無しとして算出するように前記コンピュータを機能させるための請求項4に記載のプログラム。
【請求項6】
前記支援力算出手段が、前記移動体の移動速度に応じて前記支援力を可変して算出するように前記コンピュータを機能させるための請求項1〜5の何れか一項に記載のプログラム。
【請求項7】
前記支援力算出手段が、ゲームプレイ状態を示すパラメータに基づいて前記支援力を可変して算出するように前記コンピュータを機能させる、
ための請求項1〜6の何れか一項に記載のプログラム。
【請求項8】
プレーヤの操作入力に応じて前記移動体に所定のアクションを行わせる動作制御手段として前記コンピュータを機能させ、
前記支援力算出手段が、前記移動体が前記所定のアクション実行中であるか否かに応じて前記支援力を可変して算出するように前記コンピュータを機能させる、
ための請求項1〜7の何れか一項に記載のプログラム。
【請求項9】
前記移動体の所持アイテムを設定するアイテム設定手段として前記コンピュータを機能させ、
前記支援力算出手段が、前記移動体の所定アイテムに応じて前記支援力を可変して算出するように前記コンピュータを機能させる、
ための請求項1〜8の何れか一項に記載のプログラム。
【請求項10】
前記移動体のレベルを設定するレベル設定手段として前記コンピュータを機能させ、
前記支援力算出手段が、前記移動体のレベルに応じて前記支援力を可変して算出するように前記コンピュータを機能させる、
ための請求項1〜9の何れか一項に記載のプログラム。
【請求項11】
前記支援力算出手段が、前記移動ベクトルの向きを変更する回転力として前記支援力を算出するように前記コンピュータを機能させるための請求項1〜10の何れか一項に記載のプログラム。
【請求項12】
前記移動面配置手段が、前記第1の移動面から前記移動体の高さ以上高い位置に前記第2の移動面を配置するように前記コンピュータを機能させ、
前記第2の移動面の上方に非表示の壁オブジェクトを設定する壁オブジェクト設定手段、
前記移動体の移動方向前方に前記移動体に付随するように基準位置を設定する基準位置設定手段、
前記基準位置の直下の移動面が前記第1の移動面の場合に前記壁オブジェクトとのヒット判定を有効に設定し、前記第2の移動面の場合に無効に設定する壁ヒット有効無効設定手段、
として前記コンピュータを機能させ、
更に、
前記移動制御手段が、前記壁ヒット有効無効設定手段による設定に従って、前記移動体と前記壁オブジェクトとのヒット判定を行って前記移動体を移動制御するように前記コンピュータを機能させるための請求項1〜11の何れか一項に記載のプログラム。
【請求項13】
請求項1〜12の何れか一項に記載のプログラムを記憶したコンピュータ読み取り可能な情報記憶媒体。
【請求項14】
重力成分を含む所定の擬似物理法則に従い、三次元仮想空間中に配置された移動面に沿って移動体を移動制御して所定のゲームを実行するゲーム装置であって、
第1の移動面と前記第1の移動面よりも高い位置に基準方向を有する第2の移動面とを前記三次元仮想空間に配置する移動面配置手段と、
前記所定の擬似物理法則に従って前記移動体の移動ベクトルを算出し、前記移動体を前記第1の移動面又は前記第2の移動面に沿って移動制御する移動制御手段と、
前記移動体の前記第2の移動面上への移乗を支援するか否かを判定する移乗支援判定手段と、
前記移乗支援判定手段による肯定判定された場合に、前記第2の移動面の基準方向に基づいて前記移動体を前記第2の移動面上に移乗させる支援力を算出する支援力算出手段と、
を備え、
前記移動制御手段が、前記支援力を用いて前記移動ベクトルを補正して前記移動体の移動を制御するゲーム装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate


【公開番号】特開2010−82341(P2010−82341A)
【公開日】平成22年4月15日(2010.4.15)
【国際特許分類】
【出願番号】特願2008−256905(P2008−256905)
【出願日】平成20年10月1日(2008.10.1)
【出願人】(000134855)株式会社バンダイナムコゲームス (1,157)
【Fターム(参考)】