説明

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

【課題】プレーヤの体重といった荷重を計測する計測部を利用した新たな入力方法の実現。
【解決手段】入力装置であるボード型コントローラ1300は、十字に四等分割した各領域にかかった圧力を計測する4つの圧力センサ1302を内蔵する。プレーヤPLは、このボード型コントローラ1300上に乗り、伸び上がる動作や下方に踏み込む動作といった予め定められた動作を行うと、圧力センサ1302の計測値は瞬間的に大きく変化する。この計測値の瞬間的な変化を検出することで、上記定められた動作がなされたことを検出する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンピュータに、ゲーム空間に配置されたプレーヤキャラクタを表示制御させて所定のゲームを実行させるためのプログラム等に関する。
【背景技術】
【0002】
アーケードゲーム装置は実行するゲーム専用の筐体を有しており、家庭用ゲーム装置に比較して体感型のゲームを楽しめる点で人気がある。そこで、家庭用ゲーム装置の入力装置においても体感的な入力ができる装置が開発されている。そのような体感的な入力装置の1つとして、プレーヤの体重を入力要素とする装置が知られている。例えば、体重測定回路が内蔵された重心検出装置を用いて被験者の重心位置を測定して運動能力を評価する装置(特許文献1)や、ゲーム装置の入力装置としてプレーヤの重心移動を検出する入力装置(特許文献2)である。
【特許文献1】特開2002−253534号公報
【特許文献2】特開平10−31552号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
特許文献1や特許文献2の入力装置は、入力装置の上に乗ったプレーヤの重心移動を検出してゲーム等に利用する。すなわち、プレーヤは、入力装置に乗って前後左右に体重を移動させ、体の重心位置を変化させることをもって所望の入力をすることになる。しかしながら、体感的な入力方法として、重心位置の変化以外の入力方法も望まれるところであった。そこで、本発明は、プレーヤの体重といった荷重を計測する計測部を利用した新たな入力方法を実現することを目的としてなされたものである。
【課題を解決するための手段】
【0004】
上述した課題を解決するための第1の発明は、
プレーヤの体重等の荷重を計測する計測部(例えば、図1のボード型コントローラ1300)と無線通信又は有線通信により接続されたコンピュータ(例えば、図1の本体装置1100)に、ゲーム空間に配置されたプレーヤキャラクタを表示制御させて所定のゲームを実行させるためのプログラム(例えば、図14のゲームプログラム710)であって、
前記計測部の計測値から静止荷重を判定する静止荷重判定手段(例えば、図14のゲーム演算部310;図18のステップA1)、
前記静止荷重判定手段により判定された静止荷重からの増加量閾値及び減少量閾値それぞれに達する計測値変化が交互に瞬間的に発生したことを検出する変化検出手段(例えば、図14の操作検出部312;図18のステップA15)、
前記変化検出手段の検出に応じて、当該検出時に行う動作として予め定められた所定動作を前記プレーヤキャラクタに行わせる動作制御手段(例えば、図14のプレーヤキャラ制御部314;図18のステップA33)、
として前記コンピュータを機能させるためのプログラムである。
【0005】
また、他の発明として、
ゲーム空間に配置されたプレーヤキャラクタを表示制御させて所定のゲームを実行するゲーム装置(例えば、図1のゲームシステム1000)であって、
プレーヤの体重等の荷重を計測する計測部(例えば、図1のボード型コントローラ1300)と、
前記計測部の計測値から静止荷重を判定する静止荷重判定手段(例えば、図14のゲーム演算部310)と、
前記静止荷重判定手段により判定された静止荷重からの増加量閾値及び減少量閾値それぞれに達する計測値変化が交互に瞬間的に発生したことを検出する変化検出手段(例えば、図14の操作検出部312)と、
前記変化検出手段の検出に応じて、当該検出時に行う動作として予め定められた所定動作を前記プレーヤキャラクタに行わせる動作制御手段(例えば、図14のプレーヤキャラ制御部314)と、
を備えたゲーム装置を構成しても良い。
【0006】
この第1の発明等によれば、計測部がプレーヤの体重等の荷重を計測するが、その計測値から静止荷重を判定し、静止荷重からの増加量閾値及び減少量閾値それぞれに達する計測値変化が交互に瞬間的に発生したことを検出することで、プレーヤキャラクタに予め定められた所定動作を行わせることができる。従って、プレーヤは、計測部に乗って、体重をプッシュダウンさせる動作や伸び上がる動作といった計測部の計測値を瞬間的に変化させ得るような身体的動作を行うといった興趣ある新しい入力方法で、表示されているプレーヤキャラクタの動作を制御することができる。また、計測値変化が交互に瞬間的に発生したことを検出することで、プレーヤが計測部から下りた瞬間や、他のプレーヤが計測部に更に乗った瞬間といった不正な計測値変化を除外して、プレーヤが自身の身体的運動によって正しく計測値を瞬間的に変化せしめたことを検出できる。
【0007】
また、第2の発明として、第1の発明のプログラムであって、
前記静止荷重判定手段により判定された静止荷重に基づいて、前記増加量閾値及び前記減少量閾値を変更する閾値変更手段(例えば、図14のゲーム演算部310;図18のステップA3)として前記コンピュータを機能させるためのプログラムを構成しても良い。
【0008】
この第2の発明によれば、増加量閾値及び減少量閾値を静止荷重に応じた適度な閾値に変更・設定できる。
【0009】
この場合、第3の発明として、
前記閾値変更手段が、前記静止荷重判定手段により判定された静止荷重が重いほど、前記増加量閾値を高くし、且つ、前記減少量閾値を低くするようにするとより好適である。
【0010】
また、第4の発明として、第1〜第3の何れかの発明のプログラムであって、
表示及び/又は出力音声を制御してプレーヤに対して計測値の瞬間的な変化の試行を促し、試行時のプレーヤの計測値変化を計測する試行計測手段(例えば、図14のゲーム演算部310)、
前記試行計測手段により計測された計測値変化に基づいて、前記増加量閾値及び前記減少量閾値を調整する閾値調整手段(例えば、図14のゲーム演算部310)、
として前記コンピュータを機能させるためのプログラムを構成しても良い。
【0011】
プレーヤは老若男女様々であり、身体的能力も様々である。そのため、計測値の瞬間的な変化を引き起こすための身体的動作をしたとしても、その変化量はプレーヤによって千差万別となり得る。そこで、第5の発明によれば、この問題を解決することが可能である。すなわち、第5の発明によれば、プレーヤに対して計測値の瞬間的な変化の試行を促し、試行時の計測値変化をもとに、増加量閾値及び減少量閾値を、計測値の瞬間的な変化を確実に検出し得る適度な値とすることができるからである。
【0012】
第5の発明として、第1〜第4の何れかの発明のプログラムであって、
前記動作制御手段が、前記変化検出手段が検出した際の計測値の変化量に基づき、前記所定動作による動きを調整して前記プレーヤキャラクタを制御するように前記コンピュータを機能させるためのプログラムを構成しても良い。
【0013】
この第5の発明によれば、計測値の変化量に基づいて、プレーヤキャラクタの所定動作による動きを調整することが可能となる。このため、単に計測値を瞬間的に変化させるように身体的動作をするだけでなく、計測値の変化量の大小によってプレーヤキャラクタの動きも変化するため、一層興趣のある入力方法とすることができる。
【0014】
具体的には、第6の発明として、第1〜第5の何れかの発明のプログラムであって、
前記動作制御手段が、前記所定動作として前記プレーヤキャラクタのジャンプ動作を制御し、前記プレーヤキャラクタのジャンプの高さを前記変化検出手段が検出した際の計測値の変化量に基づき調整するように前記コンピュータを機能させるためのプログラムを構成しても良い。
【0015】
この第6の発明によれば、プレーヤキャラクタに所定動作としてジャンプ動作を行わせ、このジャンプの高さを計測値の変化量に基づいて調整することが可能となる。
【0016】
第7の発明として、第1〜第6の何れかの発明のプログラムであって、
前記計測部は異なる位置に設けられた複数の圧力センサ(例えば、図1の圧力センサ1302)を有し、
前記複数の圧力センサそれぞれの検知結果を用いて荷重バランスを検出する荷重バランス検出手段(例えば、図14の操作検出部312;図18のステップA13)として前記コンピュータを機能させ、
前記動作制御手段が、前記荷重バランス検出手段により検出された荷重バランスを用いて、前記プレーヤキャラクタの前記所定動作の動作方向を制御する(例えば、図10の作用重心ベクトルR2の作用)ように前記コンピュータを機能させる、
ためのプログラムを構成しても良い。
【0017】
この第7の発明によれば、複数の圧力センサそれぞれの検知結果から検出された荷重バランスによって、プレーヤキャラクタの所定動作の動作方向を制御することが可能となる。このため、単に計測値を瞬間的に変化させるように身体的動作をするだけでなく、更に、そのときの荷重バランスによってプレーヤキャラクタの動作が変化するため、一層興趣のある入力方法とすることができる。
【0018】
第8の発明として、第7の発明のプログラムであって、
前記プレーヤキャラクタの向きとプレーヤが乗っている前記計測部の向きとの対応関係をプレーヤの操作入力に基づいて設定する向き設定手段(例えば、図14のゲーム演算部310;図18のステップA5)として前記コンピュータを機能させ、
前記動作制御手段が、前記荷重バランス検出手段により検出された荷重バランスと、前記向き設定手段により設定された対応関係とを用いて、前記プレーヤキャラクタの前記所定動作の動作方向を制御する(例えば、図11の作用重心ベクトルR2の決定)ように前記コンピュータを機能させる、
ためのプログラムを構成しても良い。
【0019】
この第8の発明によれば、計測部に対するプレーヤの相対的な向きを正しく認知・設定することができ、荷重バランスを変化させたプレーヤの意図通りの方向へプレーヤキャラクタをジャンプさせることができるようになる。
【0020】
第9の発明として、第7又は第8の発明のプログラムであって、
前記プレーヤキャラクタは、前記ゲーム空間に設定された地形上を移動する移動体(例えば、図2〜図5のプレーヤキャラクタPC)であり、
前記動作制御手段が、前記所定動作として前記プレーヤキャラクタのジャンプ動作を制御し、前記荷重バランス検出手段により検出された荷重バランスを用いて、前記プレーヤキャラクタのジャンプの飛距離を制御する(例えば、図10の作用重心ベクトルR2の決定)ように前記コンピュータを機能させるためのプログラムを構成しても良い。
【0021】
この第9の発明によれば、プレーヤキャラクタに所定動作としてジャンプ動作を行わせ、荷重バランスによってプレーヤキャラクタのジャンプの飛距離を変化させるため、一層興趣のある入力方法を実現できる。
【0022】
第10の発明として、第1〜第9の何れかの発明のプログラムであって、
前記動作制御手段が、前記所定動作として前記プレーヤキャラクタのジャンプ動作を制御するように前記コンピュータを機能させ、
前記プレーヤキャラクタが前記動作制御手段によるジャンプ動作によって着地する際に前記変化検出手段による検出がなされたか否かを判定し、なされたと判定した場合に前記プレーヤキャラクタに所定の着地アクションを行わせる着地アクション発動制御手段(例えば、図14のプレーヤキャラ制御部314;図18のステップA55)として前記コンピュータを機能させるための請求項1〜9のプログラムを構成しても良い。
【0023】
この第10の発明によれば、計測値の瞬間的な変化によってプレーヤキャラクタに所定動作としてジャンプ動作をさせるが、そのジャンプ動作の着地の際にも計測値の瞬間的な変化が検出されたならば、プレーヤキャラクタに所定の着地アクションを行わせることとなり、1つの入力方法に対してバラエティのあるアクション制御を実現できる。
【0024】
第11の発明として、第1〜第10の何れかの発明のプログラムであって、
前記計測部による計測値が、前記静止荷重判定手段により判定された静止荷重から所定重量以上減少している状態が所定時間継続した場合に、前記ゲームの進行を停止させて所定のエラー表示を行うエラー表示制御手段として前記コンピュータを機能させるためのプログラムを構成しても良い。
【0025】
例えばプレーヤが計測部から下りた場合、今後のゲーム進行においてプレーヤキャラクタの動作制御ができなくなってしまう。このような場合に対処するため、第11の発明によれば、ゲームを一旦停止させ、エラー表示によりその旨を報知することができる。
【0026】
第12の発明として、第1〜第11の何れかの発明のプログラムを記憶したコンピュータ読み取り可能な情報記憶媒体(例えば、図14の記憶部700)を構成しても良い。ここでいう「情報記憶媒体」とは、例えば磁気ディスクや光学ディスク、ICメモリなどを含む。従って、この第12の発明によれば、第1〜第11の何れか一つの発明のプログラムをコンピュータに読み取らせて実行させることによって、第1〜11の何れかの発明と同様の効果を奏することができる。
【発明を実施するための最良の形態】
【0027】
以下、図面を参照して、本発明の好適な実施形態を説明する。なお、以下では、スノーボードゲームを実行する家庭用ゲーム装置に本発明を適用した場合を説明するが、本発明の適用可能な実施形態がこれに限定されるものではない。
【0028】
[ゲームシステムの構成]
図1(a)は、本実施形態のゲームシステム1000の構成図である。同図(a)によれば、ゲームシステム1000は、本体装置1100と、ビデオモニタ1200と、ボード型コントローラ1300とを備える。
【0029】
本体装置1100は、例えばCPUや画像処理用LSI、ICメモリ等が実装された制御ユニット1110と、光学ディスク1102やメモリカード1104といった情報記憶媒体の読取装置1106,1108とを備える。
【0030】
制御ユニット1110は、CPU(Central Processing Unit)やGPU(Graphics Processing Unit)、DSP(Digital Signal Processor)などの各種マイクロプロセッサ、ASIC(Application Specific Integrated Circuit)、ICメモリなどの電気電子機器を備え、ゲームシステム1000の各部を制御する。
【0031】
また、制御ユニット1110は、インターネットやLAN(Local Area Network)、WAN(Wide Area Network)と言った通信回線Nと有線又は無線接続し、外部装置との間でデータ通信を実現する通信装置1112を備える。更に、制御ユニット1110は、近距離無線通信モジュール1114を備え、近距離無線を介してボード型コントローラ1300との間でデータの送受信を実現する。近距離無線の形式としては、例えばBluetooth(登録商標)やUWB(超広帯域無線)、無線LANなどが適宜適用可能である。
【0032】
そして、制御ユニット1110は、光学ディスク1102やメモリカード1104から読み出したゲームプログラム及び各種設定データ、ボード型コントローラ1300から受信したデータ等に基づいて各種のゲーム演算を実行し、ゲーム画像やゲーム音を生成する。そして、生成されたゲーム画像やゲーム音は、信号ケーブルで接続されたビデオモニタ1200(ディスプレイモニタ)に出力される。ビデオモニタ1200には、画像を表示するディスプレイ1202と音声を放音するスピーカ1204とが備えられており、プレーヤはディスプレイ1202に映し出されるゲーム画像を見ながら、スピーカ1204から放音されるゲーム音を聞きつつゲームをプレイすることができる。
【0033】
ボード型コントローラ1300は、プレーヤがその上面に立つことができる程度の大きさの略長方形状の板状に形成されており、プレーヤは、その上面に乗って所定の身体的動作をすることで操作入力を行う。また、このボード型コントローラ1300は、同図(b)の平面図に示すように、長方形状の四隅それぞれに合計4つの圧力センサ1302を内蔵しており、プレーヤの体重等の荷重を計測する計測部(体重計)の機能を有する。なお、ボード型コントローラ1300ではプレーヤの重心位置を算出できれば良く、圧力センサ1300の数やその配置位置はこれに限らない。
【0034】
また、ボード型コントローラ1300は、制御ユニット1310を内蔵している。制御ユニット1310は、例えばCPUやローカルバス回路におけるデータ通信を制御するバスコントローラICなどの各種マイクロチップやICメモリなどの電子部品、本体装置1100の近距離無線通信モジュール1114との近距離無線通信を実現する無線通信装置を搭載しており、この近距離無線通信を介して圧力センサ1302による計測値が本体装置に送信される。なお、本体装置1100とボード型コントローラ1300とは通信ケーブルで有線接続され、この通信ケーブルを介してデータの送受信を行うことにしても良い。
【0035】
なお、ゲームシステム1000は、更に、プレーヤの指示操作を入力するための他の入力装置として、プレーヤが片手に把持して操作するスティック型コントローラを備えることにしても良い。このスティック型コントローラは、CPUやICメモリ等を搭載した制御ユニットや、本体装置1100との間で有線/無線通信を実現するための通信装置を内蔵するとともに、プレーヤが指で操作するためのボタンスイッチを有する。この場合、プレーヤは、ボード型コントローラ1300の上で所定の身体的動作をすることで操作入力を行うとともに、手に把持したスティック型コントローラによっても操作入力を行う。
【0036】
[ゲーム概要]
ゲームシステム1000では、スノーボードゲームが実行される。図2は、本実施形態におけるゲーム画面及びプレーヤの操作姿勢を示す図である。本実施形態のゲームでは、三次元仮想空間に、雪面2等の地形オブジェクトに樹木等の背景オブジェクトが配置されてゲレンデであるゲーム空間が形成され、このゲーム空間内にプレーヤキャラクタPCやノン・プレーヤキャラクタ(NPC)である他のキャラクタが配置される。そして、プレーヤキャラクタPCの後方に追従するように設けられた仮想カメラからゲーム空間を見た画像が、ゲーム画面として表示される。従って、ゲーム画面には、同図上側に示すように、雪面2を滑走するプレーヤキャラクタPCの後ろ姿が表示される。
【0037】
プレーヤPLは、同図下側に示すように、長手方向をディスプレイ1202に向けて縦向きに配置したボード型コントローラ1300の上に、ディスプレイ1202に対して横向きに乗り、顔をディスプレイ1202に向けた姿勢を取る。なお、同図では、プレーヤPLの左足を前側においた姿勢としているが、逆でも構わない。そして、ボード型コントローラ1300上で、スノーボードの要領で、左右の足にかける体重(荷重)を移動させることで、加速や減速、左右のターンといった操作入力を行い、雪面2上のプレーヤキャラクタPCの動作を制御する。
【0038】
ここで、入力装置として更にスティック型コントローラを用いる場合、このスティック型コントローラの操作によって、例えば、転倒したプレーヤキャラクタPCが起き上がる動作の指示や、仮想カメラや表示画面、BGMの切替指示といった補助的な操作入力を行うことにしても良い。
【0039】
具体的には、プレーヤPLが行う操作の1つとして、加速や減速、左右のターンを行うための重心移動操作がある。図3は、重心移動操作を説明する図である。図中、上側はゲーム画面を示し、下側はプレーヤPLの動作を示している。重心移動操作は、プレーヤPLの体を傾けて重心(荷重)を移動させることで、プレーヤキャラクタPCに対する加速や減速、左右のターンを指示するための操作である。
【0040】
例えば、同図に示すように、プレーヤPLが右方向に体を傾けて荷重をつま先側に移動させると、プレーヤキャラクタPCが右方向にターンする。逆に、プレーヤPLが左方向に体を傾けて荷重をかかと側に移動させると、プレーヤキャラクタPCは左方向にターンする。また、プレーヤPLが前方向に体を傾けて荷重を前足に移動させると、プレーヤキャラクタPCの移動速度が減速する。逆に、プレーヤPLが後ろ方向に体を傾けて荷重を後ろ足に移動させると、プレーヤキャラクタPCの移動速度が加速する。
【0041】
また、プレーヤキャラクタPCが雪面2を滑走中、図4に示すように、プレーヤPLが「ジャンプ指示操作」を行うと、ゲーム画面中のプレーヤキャラクタPCがジャンプする。すなわち、ジャンプ指示操作は、同図下側に示すように、その場でジャンプするかのように、上体を上方に伸ばす(伸び上がる)動作である。但し、両足はボード型コントローラ1300上に置いたままとする。すると、同図上側に示すように、プレーヤキャラクタPCがジャンプする。
【0042】
そして、ジャンプ指示操作によってプレーヤキャラクタPCがジャンプした後、着地するタイミング(或いは、着地直前のタイミング)で、図5に示す「着地指示操作」を行うと、プレーヤキャラクタPCが雪面2に着地した際に、所定の「着地動作(着地アクション)」を行う。すなわち、着地指示操作は、同図下側に示すように、上述のジャンプ指示操作とは逆に、プレーヤPLが下方に踏み込む(プッシュダウンする)動作である。すると、同図上側に示すように、プレーヤキャラクタPCが、例えば着地に成功してポーズを決めるといった特別な着地動作(同図では、「ガッツポーズ」)を行う。なお、着地指示操作を行わなかった場合には、プレーヤキャラクタPCは、特別な着地動作を行わずに通常の着地動作を行う。
【0043】
[原理]
(A)プレーヤ操作の検出
先ず、ボード型コントローラ1300にてなされたプレーヤ操作の検出原理を説明する。ボード型コントローラ1300にてなされたプレーヤ操作は、内蔵する4つの圧力センサ1302それぞれの計測値をもとに検出される。
【0044】
(A−1)重心移動操作
重心移動操作は、該操作によるプレーヤの重心位置Rとして検出される。図6は、プレーヤの重心位置Rの算出を説明する図であり、ボード型コントローラ1300の平面図を示している。同図に示すように、圧力センサ1302それぞれの計測値から、荷重バランスの一種としてプレーヤの重心位置Rを算出する。本実施形態では、図2に示したように、ボード型コントローラ1300は、その長手方向をディスプレイ1202に向けて配置される。そして、重心位置Rは、ボード型コントローラ1300の長手方向をYc軸に、短手方向をXc軸にそれぞれ一致させた二次元の入力座標系(Xc,Yc)で表現される。また、入力座標系(Xc,Yc)の原点Oは、4つの圧力センサ1302の計測値が全て等しい状態での重心位置Rに相当する基準位置Oに一致する。
【0045】
(A−2)ジャンプ指示操作及び着地指示操作
ジャンプ指示操作及び着地指示操作は、圧力センサ1302の計測値の変化から検出される。ところで、ジャンプ指示操作及び着地指示操作は、何れもプレーヤが急激に動く動作であり、圧力センサ1302の計測値が瞬間的に変化する。また、その計測値の変化の様子は、どちらの操作であってもほぼ同じとなる。つまり、計測値の変化だけでは、プレーヤがジャンプ指示操作及び着地指示操作のどちらを行ったかを区別できない。このため、本実施形態では、プレーヤキャラクタPCの状況に応じて、ジャンプ指示操作及び着地指示操作のどちらがなされたかを判断する。すなわち、プレーヤキャラクタPCの滑走中はジャンプ指示操作がなされたと判断し、ジャンプ中は着地指示操作がなされたと判断する。なお、「滑走中」とはプレーヤキャラクタPCが滑走面2上に位置している状態であり、停止している状態(移動速度がゼロの状態)も含む。
【0046】
図7は、プレーヤがジャンプ指示操作を行った際の圧力センサ1302の計測値の変化の一例を示す図である。なお、着地指示操作を行った際も、略同様の計測値の変化となる。同図に示すように、プレーヤがジャンプ指示操作を行うと、計測値が瞬間的に変化してパルスが発生する。具体的には、短時間の間に、増加方向へのパルス(増加パルス)及び減少方向へのパルス(減少パルス)の両方向へのパルスが交互に瞬間的に発生する。このような両方向へのパルスの瞬間的な発生は、伸び上がる動作(ジャンプ指示操作に該当)や踏み込むような動作(着地指示操作に該当)に特有の現象である。仮に、ボード型コントローラ1300上でプレーヤPLがジャンプすると、計測値がゼロとなる期間が発生するとともに、一方向のみへのパルスが発生する。また、ボード型コントローラ1300からプレーヤPLが下りた場合も同様である。
【0047】
なお、パルスの発生には、プレーヤの動作のくせによって次の2パターンがある。すなわち、同図(a)に示すように、計測値が瞬間的に増加した後、減少するパターン、つまり、増加パルスが発生した後、減少パルスが発生するパターンと、同図(b)に示すように、計測値が瞬間的に減少した後、増加するパターン、つまり、減少パルスが発生した後、増加パルスが発生するパターンと、の2つのパターンである。具体的には、伸び上がろうとする際に、勢いを付けるために一瞬踏み込んでから伸び上がる人と、そのまま伸び上がる人とによって、パルスの発生パターンが異なる。また、踏み込む場合も同様である。そこで、本実施形態では、検出条件として「所定時間内に増加パルス及び減少パルスの両方向のパルスが検出」された場合に、ジャンプ指示操作或いは着地指示操作(以下、両方の操作を含めて「ジャンプ/着地指示操作」という)が検出されるものとする。
【0048】
パルスの検出は、プレーヤの静止体重(静止荷重)Wを基準とした閾値THaを設定し、計測値がこの閾値THaに達したことを検出することで行う。すなわち、パルス検出用の閾値THaとして、プレーヤの静止体重Wより増減基準量ΔWaだけ大きい増加量閾値THa、及び、増減基準量ΔWaだけ小さい減少量閾値THa−1が設定される。そして、計測値が増加量閾値THa以上となったことで増加パルスを検出し、減少量閾値THa−1以下となったことで減少パルスを検出する。増減基準量ΔWaは、プレーヤの静止体重Wをもとに、静止体重Wが大きい(重い)ほど大きくなるように設定される。具体的には、静止体重Wの所定割合(例えば、20%)の値として定められる。
【0049】
また、所定時間内に両方向のパルスを検出したことを判定するため、計測値がパルス検出用閾値THa,THa−1の一方に達した時点(1つ目のパルスの検出時点)を期間の開始時点とした次パルス検出期間T1が定められる。そして、この次パルス検出期間T1内に、計測値がパルス検出用閾値THa,THa−1の他方に達すると(2つ目のパルスの検出)、ジャンプ/着地指示操作の検出条件(ジャンプ/着地指示検出条件)が満たされたとして、ジャンプ/着地指示操作が検出される。
【0050】
例えば、同図(a)では、計測値が増加量閾値THaに達した時刻t1において、増加パルス(1つ目のパルス)の発生が検出される。そして、この時刻t1を開始時点とする次パルス検出期間T1が定められ、この次パルス検出期間T1内の時刻t2において計測値が減少量閾値THa−1に達すると、減少パルス(2つ目のパルス)の発生が検出されるとともに、この時点においてジャンプ/着地指示操作が検出される。また、同図(b)では、計測値が減少量閾値THa−1に達した時刻t4において、減少パルス(1つ目のパルス)の発生が検出され、この時刻t4を開始時点とする次パルス検出期間T1が定められる。そして、この次パルス検出期間T1内の時刻t5において計測値が増加量閾値THaに達すると、増加パルス(2つ目のパルス)の発生を検出されるともに、この時点においてジャンプ/着地指示操作が検出される。
【0051】
(B)キャラクタ制御
次いで、検出されたプレーヤ操作に基づくプレーヤキャラクタPCの制御について説明する。プレーヤキャラクタPCの制御は、所定の制御サイクル(例えば、1/60秒)毎に、ボード型コントローラ1300にてなされたとして検出されたプレーヤ操作等をもとに現在の速度ベクトルV0を補正し、補正後の速度ベクトルV1に従って行われる。
【0052】
(B−1)滑走時
先ず、プレーヤキャラクタPCの滑走中は、重心移動操作によるプレーヤの重心位置Rをもとに、次の速度ベクトルV1が算出される。
【0053】
図8は、滑走時の速度ベクトルV1の算出を説明する図である。同図(a)は、滑走面(雪面)2を上方から見た図であり、同図(b)は、現在の速度ベクトルV0に沿った滑走面2の鉛直断面図である。同図に示すように、現在位置P0のプレーヤキャラクタPCに作用する力は、現在の速度ベクトルV0、重力G及び作用重心ベクトルR1である。速度ベクトルV0は、滑走面2に沿った向きに定められている。重力Gは、鉛直下向きに作用する。作用重心ベクトルR1は、プレーヤによる重心移動操作の作用を表現するベクトルであり、重心位置Rをもとに定められる。この作用重心ベクトルR1は、滑走面2に沿った向きに作用する。そして、現在の速度ベクトルV0、作用重心ベクトルR1及び重力Gの斜面成分の和が、次の速度ベクトルV1とされる。つまり、次の速度ベクトルV1の向きは滑走面2に沿った向きとなり、プレーヤキャラクタPCは、速度ベクトルVに従って滑走面2を移動(滑走)することになる。
【0054】
図9は、重心位置Rに基づく作用重心ベクトルR1の決定を説明する図である。同図(a)に示すように、ボード型コントローラ1300における入力座標系(Xc,Yc)において、重心位置Rと、Xc軸を対象軸として線対称の位置を重心位置R1とする。次いで、この重心位置R,R1それぞれを、同図(b)に示すように、座標変換によってゲーム空間中の位置に変換する。このとき、入力座標系であるXc−Yc平面を、ゲーム空間における滑走面2に一致させる。また、入力座標系(Xc,Yc)の原点OをプレーヤキャラクタPCの現在位置P0に一致させるとともに、Yc軸正方向をプレーヤキャラクタPCの向きに一致させる。
【0055】
そして、同図(b)に示すように、ゲーム空間において、プレーヤの現在位置P0から重心位置Rに向かうベクトルを入力重心ベクトルR0とし、現在位置P0から重心位置R1に向かうベクトルを作用重心ベクトルR1とする。
【0056】
つまり、重心位置Rに応じて作用重心ベクトルR1が変化し、その結果、現在の速度ベクトルV0に対する次の速度ベクトルV1の向きや大きさが変化する。これにより、プレーヤキャラクタPCが、その移動方向を変えたり(ターン)、加速や減速をしながら滑走することになる。
【0057】
(B−2)ジャンプ指示操作
また、滑走中にジャンプ指示操作が検出されると、プレーヤキャラクタPCをジャンプ動作させるジャンプ制御が行われる。
【0058】
図10は、ジャンプ指示操作がなされた際の速度ベクトルV1の算出を説明する図である。同図(a)は、滑走面2を上方から見た図であり、同図(b)は、現在の速度ベクトルV0に沿った滑走面2の鉛直断面図である。同図に示すように、ジャンプ指示操作の検出時にプレーヤキャラクタPCに作用する力は、重力G、作用重心ベクトルR2及びジャンプベクトルHである。現在の速度ベクトルV0は、滑走面2に沿った向きに作用している。重力Gは、鉛直下向きに作用する。
【0059】
作用重心ベクトルR2は、ジャンプ指示操作の検出時のプレーヤの重心位置Rの作用を表現するベクトルであり、ジャンプ指示操作の検出時の重心位置Rをもとに定められる。この作用重心ベクトルR2は、滑走面2に沿った向きに作用する。ジャンプベクトルHは、プレーヤによるジャンプ指示操作の作用を表現するベクトルであり、ジャンプ指示操作の検出時の圧力センサ1302の計測値をもとに調整して定められる。このジャンプベクトルHは、滑走面2に対して垂直上向きに作用する。
【0060】
そして、速度ベクトルV0、作用重心ベクトルR2、重力Gの斜面成分、ジャンプベクトルHの和が、次の速度ベクトルV1とされる。つまり、次の速度ベクトルV1は、滑走面2に対して上向きのベクトルとなる。このため、プレーヤキャラクタPCは、滑走面2から離れて上方にジャンプすることになる。
【0061】
図11は、作用重心ベクトルR2の算出を説明する図である。同図(a)に示す、ボード型コントローラ1300における入力座標系(Xc,Yc)で定義された重心位置Rを、同図(b)に示すように、所定の座標変換によってゲーム空間中の位置に変換する。このとき、図9に示した滑走時の場合と同様に、入力座標系であるXc−Yc平面を、ゲーム空間における滑走面2に一致させる。また、入力座標系(Xc,Yc)の原点OをプレーヤキャラクタPCの現在位置P0に一致させるとともに、Yc軸正方向をプレーヤキャラクタPCの向きに一致させる。そして、図11(b)に示すように、プレーヤキャラクタPCの現在位置P0から重心位置Rに向かうベクトルを、作用重心ベクトルR2とする。
【0062】
このように、重心位置Rに応じて作用重心ベクトルR2が変化し、その結果、現在の速度ベクトルV0に対する速度ベクトルV1の向きや大きさが変化する。これにより、プレーヤキャラクタPCのジャンプ方向が現在の移動方向に対して左右に変化したり、飛距離が変化したりする。
【0063】
ジャンプベクトルHの向きは、滑走面2に対して垂直上向きである。また、ジャンプベクトルHの大きさはジャンプ指示操作によって生じた圧力センサ1302の計測値の変化量に応じて決まり、この変化量が大きいほど、ジャンプベクトルHの大きさが大きく定められる。本実施形態では、ジャンプ指示操作による計測値の変化量として、計測値のパルスのピーク値(大きさ)を用いる。
【0064】
図12は、ジャンプ指示操作の検出時の圧力センサ1302の計測値の一例を示す図である。同図に示すように、パルスのピーク値を検出するために複数のピーク検出用閾値THbを定め、これらのうち、計測値が達したピーク検出用閾値THbが該パルスのピーク値とされる。閾値THbそれぞれの間隔である基準増減量ΔWbは、静止体重Wをもとに、例えば静止体重Wの所定割合(例えば、5%)の値として定められる。そして、2つのパルスそれぞれのピーク値のうち絶対値が大きい方(すなわち、計測値が達したピーク検出用の閾値THbのうち、絶対値が最も大きい閾値THb)が、ジャンプ指示操作による計測値の変化量とされる。
【0065】
同図では、ピーク検出用の閾値THbとして、増加パルス検出用の増加量閾値THaより大きい閾値THb〜THbと、減少パルス検出用の減少量閾値THa−1より小さい閾値THb−1〜THb−3とが設定されている。先ず、時刻t11において、計測値が一方のパルス検出用閾値THaに達して増加パルス(1つ目のパルス)が検出される。また、計測値はピーク検出用閾値THb,THbに達している。従って、増加パルスのピーク値はピーク検出用閾値THbである。次いで、時刻t12において、計測値が他方のパルス検出用閾値THa−1に達して減少パルス(2つ目のパルス)が検出される。また、計測値はピーク検出用閾値THb−1〜THb−3に達している。従って、減少パルスのピーク値はピーク検出用閾値THb−3である。そして、増加パルス及び減少パルスそれぞれのピーク値のうち、絶対値が大きいほうのピーク値である閾値THb−3が、ジャンプ指示操作による計測値の変化量とされる。なお、パルスがピーク検出用閾値THbに達しない場合には、該当するパルス検出用閾値THaが該パルスのピーク値とされる。
【0066】
このように、ジャンプ指示操作による計測値の変化量に応じてジャンプベクトルHの大きさを調整して変化させ、その結果、現在の速度ベクトルV0に対する次の速度ベクトルV1の大きさや滑走面2に対する角度(仰角)が変化する。そして、ジャンプベクトルHの大きさが大きいほど、或いは、速度ベクトルV1の滑走面2に対する角度が大きいほど、プレーヤキャラクタPCのジャンプ高さが高くなる。
【0067】
このように次の速度ベクトルV1が算出されると、図13に示すように、この速度ベクトルV1をもとに、ジャンプしたプレーヤキャラクタPCの空中での移動軌道が公知の物理演算によって算出される。すなわち、制御サイクル時間Δt間隔の各時刻tにおける位置Pが算出されるとともに、移動軌道に沿って移動した際の滑走面2に着地(到達)する着地予定時刻tn及び到達予定位置Pnが算出される。次いで、この到着予定時刻tnを含む着地操作指示の受付期間T3が設定される。プレーヤキャラクタPCは、この移動軌道に沿って移動(飛行)することで、ジャンプが実現される。
【0068】
そして、着地操作受付期間T3内に着地指示操作が検出されると、プレーヤキャラクタPCが、滑走面2の着地時に、例えば図5に示した「ガッツポーズ」のような特別な着地アクションを行う。一方、着地操作受付期間T3内に着地指示操作が検出されない場合には、プレーヤキャラクタPCは、滑走面2への着地時に、通常の着地アクションを行う。
【0069】
ここで、ジャンプ指示操作が検出された後は、着地操作受付期間T3以前の期間においては、パルス検出用閾値THa,THa−1に達する圧力センサ1302の計測値の変化が検出されたとしても、ジャンプ指示操作及び着地指示操作の何れもなされたとみなさない。これにより、短時間にジャンプ指示操作が連続して検出され、ジャンプ中のプレーヤキャラクタPCに対して更なるジャンプ動作が行われるといった誤動作を防止できる。
【0070】
[機能構成]
図14は、ゲームシステム1000の機能構成図である。同図によれば、ゲームシステム1000は、機能的には、操作入力部100と、計測部200と、処理部300と、通信部400と、画像表示部500と、音出力部600とを備えて構成される。
【0071】
操作入力部100は、プレーヤによる操作入力を受け付け、操作に応じた操作信号を処理部300に出力する。この操作入力部100によって、プレーヤによるゲームの開始/終了指示、キャラクタやコースの選択等の指示が入力される。この機能は、例えばプッシュボタンやレバー、タッチパッド、ダイヤル、キーボード、マウス等の入力装置によって実現される。図1では、本体装置1100に接続されてプレーヤPLが手で把持して操作する不図示のスティック型のコントローラ等が該当する。
【0072】
計測部200は、プレーヤの体重等の荷重を計測し、計測値を処理部300に出力する。図1では、ボード型コントローラ1300がこれに該当し、体重(荷重)を計測するための複数の圧力センサ(例えば、図1(b)の4つの圧力センサ1302)を有している。
【0073】
処理部300は、記憶部700から読み出したプログラムやデータ、操作入力部100から入力された操作信号等に基づいて、ゲームシステム1000の全体制御やゲーム進行、画像生成等の各種演算処理を行う。この機能は、例えばCPUやGPU等のマイクロプロセッサ、ASIC(特定用途向け集積回路)、ICメモリ等によって実現される。図1では、制御ユニット1110がこれに該当する。また、処理部300は、ゲーム演算部310と、画像生成部350と、音生成部360とを有する。
【0074】
ゲーム演算部310は、ゲームの進行にかかる処理を実行する。例えば、三次元仮想空間に雪面(滑走面)2や樹木等のオブジェクトを配置してゲレンデであるゲーム空間を形成する処理や、このゲーム空間中にプレーヤキャラクタPCを配置する処理、キャラクタの移動や攻撃といった制御処理、オブジェクト間のヒット判定処理、物理演算処理、ゲーム結果の算出処理といった各種の演算処理が含まれる。また、本実施形態では、ゲーム演算部310は、操作検出部312と、プレーヤキャラ制御部314とを有する。
【0075】
操作検出部312は、計測部200から入力される計測値をもとに、プレーヤによってなされた操作(プレーヤ操作)を検出する。具体的には、重心移動操作として、計測部200から入力される各圧力センサ1302の計測値から、プレーヤの重心位置Rを算出する。検出された重心位置Rは、重心位置データ733に格納される。
【0076】
また、操作検出部312は、計測部200からの計測値の変化からジャンプ/着地指示操作を検出する。ここで、ジャンプ/着地指示操作の検出の判断対象とする計測値は各圧力センサ1302の計測値の総和とするが、平均値としても良い。
【0077】
すなわち、図7に示したように、プレーヤの静止体重Wをもとに、計測値の増減基準量ΔWaを算出してパルス検出用の閾値THaを設定する。また、図12に示したように、静止体重Wをもとに、計測値の増減基準量ΔWbを算出してピーク検出用の閾値THbを設定する。設定した閾値THa,THbは、閾値データ731に格納される。
【0078】
図15に、閾値データ731のデータ構成の一例を示す。同図によれば、閾値データ731は、プレーヤキャラクタPCの静止体重(W)731aと、増減基準量(ΔWa,ΔWb)731b,731cと、パルス検出用の閾値(THa)731dと、ピーク検出用の閾値(THb)731eとを格納している。
【0079】
そして、操作検出部312は、図12に示したように、計測値がパルス検出用閾値THa及びピーク検出用閾値THbそれぞれに達したかを判定する。ここで、計測値が各閾値THa,THbに達したかの判定結果は、到達閾値判定データ732に格納される。
【0080】
図16に、到達閾値判定データ732のデータ構成の一例を示す。同図によれば、到達閾値判定データ732は、パルス検出用閾値THa及びピーク検出用閾値THbの各閾値732aについて、計測値が達したかの判定結果732bを対応付けて格納している。
【0081】
操作検出部312は、計測値が一方のパルス検出用閾値THaに達すると、1つ目のパルスを検出したとし、この時点を開始時点とする次パルス検出期間T1を設定する。次いで、この次パルス検出期間T1内に、計測値が他方のパルス検出用閾値THaに達すると、2つ目のパルスを検出したとし、ジャンプ/着地指示検出条件が満たされたと判定する。このとき、プレーヤキャラクタPCが滑走中ならば、なされた操作はジャンプ指示操作であると判断し、プレーヤキャラクタPCがジャンプ中ならば、なされた操作は着地指示操作であると判断する。
【0082】
また、ジャンプ指示操作がなされたと判断した場合には、このジャンプ指示操作による計測値の変化量としてパルスのピーク値を検出する。すなわち、図12に示すように、次パルス判定期間T1において、計測値が達した閾値THa,THbのうち、その絶対値が最も大きい閾値THを、検出したジャンプ指示操作による計測値の変更量とする。
【0083】
プレーヤキャラ制御部314は、操作検出部312によって検出されたプレーヤ操作等に従ってプレーヤキャラクタPCを制御する。ここで、プレーヤキャラクタPCについてのデータは、プレーヤキャラデータ722に格納されている。このプレーヤキャラデータ722には、プレーヤキャラクタPCのモデルデータやモーションデータ(特別着地動作のモーションを含む)、位置Pや向き、速度ベクトルV等のデータが含まれている。
【0084】
具体的には、プレーヤキャラクタPCの滑走中は、図9に示したように、重心移動操作として検出されたプレーヤの重心位置Rをもとに、作用重心ベクトルR1を決定する。次いで、図8に示したように、現在の速度ベクトルV0、重力Gの斜面方向成分及び作用重心ベクトルR1の和ベクトルを算出し、次の速度ベクトルV1とする。そして、算出した速度ベクトルV1に従ってプレーヤキャラクタPCの次の位置P1を算出し、算出した位置P1に向かって移動させる移動制御を行う。それとともに、位置Pの変化に応じた動作をプレーヤキャラクタPCに行わせる動作制御を行う。
【0085】
また、滑走中にジャンプ指示操作が検出されたならば、図11に示したように、ジャンプ指示操作の検出時の重心位置Rをもとに、作用重心ベクトルR2を決定する。
【0086】
また、検出されたジャンプ指示操作による計測値の変化量をもとに、ジャンプベクトル設定テーブル723を参照して、ジャンプベクトルHの大きさを決定する。図17に、ジャンプベクトル設定テーブル723のデータ構成の一例を示す。同図によれば、ジャンプベクトル設定テーブル723は、パルス検出用閾値THa及びピーク検出用閾値THbの各閾値723aそれぞれについて、ジャンプベクトルHの大きさ723bを対応付けて格納している。操作検出部312は、ジャンプ操作指示による計測値の変化量として検出された閾値THに対応する大きさを、ジャンプベクトルHの大きさとして決定する。
【0087】
次いで、図10に示したように、現在の速度ベクトルV0、重力Gの斜面方向成分、作用重心ベクトルR2及びジャンプベクトルHの和ベクトルを算出し、次の速度ベクトルV1とする。
【0088】
続いて、算出した速度ベクトルV1に従った移動軌道を算出する。また、この移動軌道に沿って移動した場合に、滑走面2に着地する着地予定時刻tn及び着地予定位置Pnを算出し、着地予定時刻tnを含む着地操作受付期間T3を設定する。ここで算出された移動軌道のデータは、ジャンプ時移動データ734に格納される。そして、算出した移動軌道に沿って、プレーヤキャラクタPCを移動(ジャンプ)させる。その後、設定した着地操作受付期間T3内において着地指示操作が検出されたならば、滑走面2への着地時に、特別の着地動作をプレーヤキャラクタPCに行わせ、着地指示操作が検出されないならば、通常の着地動作を行わせる。
【0089】
図14に戻り、画像生成部350は、例えばGPU(Graphics Processing Unit)やデジタルシグナルプロセッサ(DSP)などのプロセッサ、ビデオ信号IC、ビデオコーデックなどのプログラム、フレームバッファ等の描画フレーム用ICメモリ等によって実現される。画像生成部350は、ゲーム演算部310による処理結果に基づいて所定の制御サイクル時間(例えば、1/60秒)間隔で1枚のゲーム画像を生成し、生成したゲーム画像の画像信号を画像表示部500に出力する。
【0090】
画像表示部500は、画像生成部350からの画像信号に基づいて、所定の制御サイクル時間(例えば1/60秒)毎に1フレームの画像を再描画しながらゲーム画面を表示する。この機能は、例えばCRTやLCD、ELD、PDP等の表示装置によって実現される。図1では、ディスプレイ1202がこれに該当する。
【0091】
音生成部360は、例えばデジタルシグナルプロセッサ(DSP)や音声合成ICなどのプロセッサ、音声ファイル再生可能なオーディオコーデックによって実現され、ゲーム演算部310による処理結果に基づいてゲームに係る効果音やBGM、各種操作音の音信号を生成し、音出力部600に出力する。
【0092】
音出力部600は、音生成部360から入力される音信号に基づいてBGMや効果音等のゲーム音声を出力する。この機能は、例えばスピーカ等の音声出力装置によって実現される。図1では、スピーカ1204がこれに該当する。
【0093】
通信部400は、通信回線Nと接続して通信を実現する。この機能は、例えば無線通信機、モデム、TA(ターミナルアダプタ)、有線用の通信ケーブルのジャックや制御回路等によって実現される。図1では、通信装置1112がこれに該当する。
【0094】
記憶部700は、処理部300にゲームシステム1000を統合的に制御させるための諸機能を実現するためのシステムプログラムや、ゲームを実行させるために必要なゲームプログラム、各種データ等を記憶する。また、処理部300の作業領域として用いられ、処理部300が各種プログラムに従って実行した演算結果や、操作入力部100や計測部200から入力される入力データ等を一時的に記憶する。この機能は、例えばRAMやROMなどのICメモリ、ハードディスク等の磁気ディスク、CD−ROMやDVDなどの光学ディスクなどによって実現される。図1では、光学ディスク1102やメモリカード1104、制御ユニット1110に搭載されるICメモリ等がこれに該当する。本実施形態では、記憶部700には、プログラムとして、ゲームプログラム710が記憶されるとともに、データとして、コースデータ721と、プレーヤキャラデータ722と、ジャンプベクトル設定テーブル723と、閾値データ731と、到達閾値判定データ732と、重心位置データ733と、ジャンプ時移動データ734とが記憶される。
【0095】
[処理の流れ]
図18は、ゲーム処理の流れを説明するフローチャートである。同図によれば、ゲーム演算部310は、先ず、初期設定として、プレーヤの静止体重(静止荷重)Wを測定する。すなわち、例えば画面表示や音声出力等によって、プレーヤに、計測部200であるボード型コントローラ1300の上に立って静止させる。そして、このときの計測部200からの計測値をもとに、プレーヤの静止体重Wを算出する(ステップA1)。次いで、この静止体重Wをもとに、パルス検出用閾値THa及びピーク検出用閾値THbそれぞれを設定する(ステップA3)。
【0096】
また、ボード型コントローラ1300の向きとプレーヤを基準とした向きとの対応関係を設定する。すなわち、例えば画面表示や音声出力等によって、プレーヤに、ボード型コントローラ1300上で所定方向への重心移動操作を行わせ、そのときの計測部200からの計測値をもとに、プレーヤにとっての前後左右方向と、ボード型コントローラ1300の向きとの対応関係を判断する(ステップA5)。また、仮想三次元空間にゲレンデであるゲーム空間を設定し、このゲーム空間にプレーヤキャラクタPC等の各種キャラクタを配置する(ステップA7)。その後、ゲームを開始する(ステップA9)。
【0097】
ゲーム中は、プレーヤキャラクタPCが滑走中か否かを判断し、滑走中ならば(ステップA11:YES)、操作検出部312が、計測部200による計測値をもとにプレーヤの重心位置Rを算出する(ステップA13)。また、この計測値をもとに、ジャンプ指示操作が検出されたかを判定する(ステップA15)。
【0098】
ジャンプ指示操作が検出されていないならば(ステップA17:NO)、プレーヤキャラ制御部314が、算出された重心位置Rをもとに作用重心ベクトルR1を決定し(ステップA35)、決定した作用重心ベクトルR1をもとに、次の速度ベクトルV1を算出する(ステップA37)。そして、算出した速度ベクトルV1に従って、プレーヤキャラクタPCを制御する(ステップA39)。
【0099】
一方、ジャンプ指示操作が検出されたならば(ステップA17:YES)、操作検出部312が、このジャンプ指示操作による計測値の変化量を検出し(ステップA19)。次いで、プレーヤキャラ制御部314は、算出された重心位置Rをもとに作用重心ベクトルR2を決定する(ステップA21)。また、ジャンプ指示操作による計測値の変化量に基づいてジャンプベクトルHを決定する(ステップA23)。そして、決定した作用重心ベクトルR2及びジャンプベクトルHをもとに、次の速度ベクトルV1を算出する(ステップA25)。
【0100】
続いて、算出した速度ベクトルV1をもとに、該速度ベクトルV1に従ってジャンプさせた場合のプレーヤキャラクタPCの移動軌道を算出する(ステップA27)。また、算出した移動軌道に沿って移動(ジャンプ)したときの着地予定時刻tn及び着地予定位置Pnを算出し(ステップA29)、着地予定時刻tnを含む着地操作受付期間T3を設定する(ステップA31)。その後、算出した移動軌道に沿ったプレーヤキャラクタPCのジャンプ動作を開始する(ステップA33)。
【0101】
そして、プレーヤキャラクタPCがジャンプ中ならば(ステップA11:NO)、プレーヤキャラ制御部314は、算出した移動軌道に沿ったキャラクタの移動制御を行う(ステップA41)。
【0102】
また、現在時刻が着地操作受付期間T3内ならば(ステップA43:YES)、操作検出部312が、計測部200による計測値をもとに着地指示操作が検出されたかを判定する(ステップA45)。着地指示操作が検出されたならば(ステップA47:YES)、プレーヤキャラ制御部314は、着地動作フラグを「1」に設定する(ステップA49)。
【0103】
そして、現在時刻が着地予定時刻tnに達したならば(ステップA51:YES)、着地指示フラグを判断し、着地動作フラグが「1」に設定されているならば(ステップA53:YES)、プレーヤキャラクタPCに特別着地動作を行わせる(ステップA55)。一方、着地動作フラグが「0」に設定されているならば(ステップA53:NO)、プレーヤキャラクタPCに通常着地動作を行わせる(ステップA57)。続いて、着地動作フラグを「0」に設定(クリア)する(ステップA59)。
【0104】
その後、ゲームを終了するかを判断し、終了しないならば(ステップA61:NO)、ステップA11に戻り、終了するならば(ステップA61)、ゲーム処理を終了する。
【0105】
[変形例]
なお、本発明の適用可能な実施形態は、上述の実施形態に限定されることなく、本発明の趣旨を逸脱しない範囲で適宜変更可能なのは勿論である。
【0106】
(A)ジャンプ/着地指示操作の検出
例えば、静止体重Wを中心とする計測値の変動を、ジャンプ/着地指示操作として検出しても良い。具体的には、静止体重Wを基準とした変化量が増減基準量ΔWaに達する計測値の変化が、増加方向及び減少方向に交互に発生する現象である計測値の振動が所定時間の間継続したことを、ジャンプ/着地指示操作として検出する。
【0107】
(B)基準増減量ΔWa
また、パルス検出用の閾値THa1,THa−1を設定するための基準増減量ΔWaを、計測値の増加方向と減少方向とで異なることにしても良い。具体的には、計測値の増加方向の基準増減量ΔWを増減基準量ΔWaとし、減少方向の基準増減量ΔWを減少基準量ΔWaとする。そして、パルス検出用の閾値THaとして、静止体重Wより基準増加量ΔWaだけ大きい増加量閾値THaを設定するとともに、基準減少量ΔWaだけ小さい減少量閾値THa−1を設定する。
【0108】
(C)重心移動指示操作
また、上述の実施形態では、荷重バランスの1つとしてプレーヤの重心位置Rを検出することにしたが、重心以外であっても良い。例えば、4つの圧力センサ1302それぞれの計測値の相対的な大小から重心の偏りの方向を判定する。具体的には、ボード型コントローラ1300の基準位置Oから、計測値が最大のセンサ1302の位置に向かう方向を重心の偏りの方向とする。更に、その計測値が最大のセンサ1302の計測値を偏りの大きさ(程度)としても良いし、最小の計測値と最大の計測値との差を偏りの大きさとしても良い。或いは、計測値が最小のセンサ1032の位置から最大のセンサ1302の位置に向かう方向を重心の偏りの方向としても良い。そして、荷重バランスをもとに作用重心ベクトルR1,R2を決定する際には、作用重心ベクトルR1については、重心の偏りの方向をボード型コントローラ1300の入力座標系(Xc,Yc)のXc軸に対して線対称とした方向をその向きとし、偏りの大きさをその大きさ(長さ)とする。また、作用重心ベクトルR2については、重心の偏りの向きをその向きとし、偏りの大きさをその大きさ(長さ)とする。
【0109】
(D)プレーヤ操作の試行
また、ゲーム開始に先立ち、プレーヤに対してジャンプ指示操作及び着地指示操作を含むプレーヤ操作の試行を行わせ、このときの計測値に応じてパルス判定用閾値THaを設定することにしても良い。
【0110】
具体的には、プレーヤ操作の試行は、例えばプレーヤがすべき動作の手本を動画表示するとともに、動作のポイントを音声出力し、ゲーム開始前の練習としてプレーヤに行わせる。そして、このときの圧力センサ1302の計測値に発生したパルスのピーク値(大きさ)をもとに、パルス判定用閾値THaを設定する。すなわち、大人や子供といったプレーヤによっては、同じ動作を行っても、その体重や動作の大きさの違いから計測値に発生するパルスのピーク値(大きさ)が異なる。このため、計測値パルスのピーク値が大きい場合には、増減基準量ΔWaを大きくして、パルス検出用閾値THaをプレーヤの静止体重Wから離れた値に設定する。逆に、計測値のパルスのピーク値が小さい場合には、増減基準量ΔWaを小さくして、パルス検出用閾値THaを静止体重Wに近い値に設定し、パルスの検出感度を上げるといったようにする。これにより、プレーヤに関わらず、ジャンプ指示操作及び着地指示操作を確実に検出可能となる。
【0111】
更に、このとき、プレーヤ操作の試行時の圧力センサ1302の計測値に応じて、ピーク用閾値Tbを設定することにしても良い。すなわち、計測値パルスのピーク値が大きい場合には、増減基準量ΔWbを大きくして、ピーク検出用閾値THbそれぞれの間隔を広くし、逆に、計測値のパルスのピーク値が小さい場合には、増減基準量ΔWbを小さくして、ピーク検出用閾値THbそれぞれの間隔を狭くする。
【0112】
(E)エラー報知
また、ゲーム中にプレーヤPLがボード型コントローラ1300上でジャンプしたことや下りたことを検出した場合には、ゲームの進行を停止させることにしても良い。プレーヤがボード型コントローラ1300の上でジャンプしたり、その上から下りたりすると、圧力センサ1302の計測値が急激に減少する。具体的には、ジャンプした場合或いは両足を離して完全に降りた場合には、計測値はほぼゼロとなり、片足を降ろした場合には、計測値が両足で乗っている場合に比較して半減する。
【0113】
このため、ゼロに近い値(例えば、10kg)或いは静止体重Wの所定割合(例えば、40%)を、警告時の閾値THcとして設定する。そして、圧力センサ1302の計測値がこの閾値THcを下回った時間が所定時間(例えば、0.5秒)に達すると、ボード型コントローラ1300上でプレーヤがジャンプした、或いはボード型コントローラ1300から下りたと判断し、進行中のゲームを停止させるとともに、画面表示や音声出力等によって所定の警告メッセージを出力する。
【0114】
また、ボード型コントローラ1300に他のプレーヤが更に乗ったことを検出した場合にも、ゲームの進行を停止させることにしても良い。ボード型コントローラ1300に他のプレーヤが更に乗ると、圧力センサ1302の計測値が急激に増加する(倍増する)ともに、この計測値が増加した期間が継続する。このため、プレーヤの静止体重Wの2倍程度の値を警告時の閾値THdとして設定する。そして、圧力センサ1302の計測値がこの閾値THdを超える時間が所定時間(例えば、2.0秒)に達すると、ボード型コントローラ1300上に更に他のプレーヤが乗ったと判断し、進行中のゲームを停止させるとともに、画面表示や音声出力等によって所定の警告メッセージを出力する。
【0115】
(F)適用するプレーヤキャラクタの動作とゲームの種類
上述した実施形態では、ジャンプ操作指示に応じてプレーヤキャラクタがジャンプ動作することとして説明したが、ジャンプ動作以外の動作であっても勿論よい。例えば、プレーヤキャラクタを野球ゲームの投手として、プレーヤキャラクタがボールを投げる動作に本発明を適用し、上述した実施形態で述べた「ジャンプ操作指示」に相当する「操作指示」の入力に応じて、プレーヤキャラクタにボールを投げる動作を行わせる。プレーヤキャラクタが投じたボールの速度や移動方向等は、上述した実施形態と同様の方法により算出することが可能である。すなわち「操作指示」がなされた際の荷重バランスによって投じるボールの移動方向を制御し、圧力センサ1302の計測値の大きさでボールの速度を変えるように調整する、といった制御が可能である。勿論、上述した実施形態のスノーボードゲームに類似した、スケートボードゲームやスキーゲーム、ローラースケートボードといったゲームに本発明を適用し、「ジャンプ操作指示」に相当する「操作指示」に応じてプレーヤキャラクタに各種のトリック動作を発動させるように制御してもよい
【0116】
(G)適用するゲーム装置
また、上述の実施形態では、本発明を家庭用ゲーム装置に適用した場合を説明したが、業務用ゲーム装置にも同様に適用可能である。
【図面の簡単な説明】
【0117】
【図1】ゲームシステムの構成図。
【図2】ゲーム画面及びプレーヤの操作姿勢の一例。
【図3】重心移動操作の説明図。
【図4】ジャンプ指示操作の説明図。
【図5】着地指示操作の説明図。
【図6】重心位置の算出の説明図。
【図7】ジャンプ指示操作がなされた際の計測値の一例。
【図8】滑走時の移動ベクトルV1の算出の説明図。
【図9】滑走時の作用重心ベクトルR1の決定の説明図。
【図10】ジャンプ操作指示の検出時の移動ベクトルV1の算出の説明図。
【図11】ジャンプ操作指示の検出時の作用重心ベクトルR2の算出の説明図。
【図12】ジャンプ指示操作がなされた際の計測値の一例。
【図13】移動ベクトルV1に基づく移動軌道の算出の説明図。
【図14】ゲームシステムの機能構成図。
【図15】閾値データのデータ構成例。
【図16】到達閾値判定データのデータ構成例。
【図17】ジャンプベクトル設定テーブルのデータ構成例。
【図18】ゲーム処理のフローチャート。
【符号の説明】
【0118】
1000 ゲームシステム
100 操作入力部、200 計測部
300 処理部
310 ゲーム演算部、312 操作検出部、314 プレーヤキャラ制御部
400 通信部、500 画像表示部、600 音出力部
700 記憶部
710 ゲームプログラム
721 コースデータ、722 プレーヤキャラデータ
723 ジャンプベクトル設定テーブル
731 閾値データ、732 到達閾値判定データ
733 重心位置データ、734 ジャンプ時移動データ

【特許請求の範囲】
【請求項1】
プレーヤの体重等の荷重を計測する計測部と無線通信又は有線通信により接続されたコンピュータに、ゲーム空間に配置されたプレーヤキャラクタを表示制御させて所定のゲームを実行させるためのプログラムであって、
前記計測部の計測値から静止荷重を判定する静止荷重判定手段、
前記静止荷重判定手段により判定された静止荷重からの増加量閾値及び減少量閾値それぞれに達する計測値変化が交互に瞬間的に発生したことを検出する変化検出手段、
前記変化検出手段の検出に応じて、当該検出時に行う動作として予め定められた所定動作を前記プレーヤキャラクタに行わせる動作制御手段、
として前記コンピュータを機能させるためのプログラム。
【請求項2】
前記静止荷重判定手段により判定された静止荷重に基づいて、前記増加量閾値及び前記減少量閾値を変更する閾値変更手段として前記コンピュータを機能させるための請求項1に記載のプログラム。
【請求項3】
前記閾値変更手段が、前記静止荷重判定手段により判定された静止荷重が重いほど、前記増加量閾値を高くし、且つ、前記減少量閾値を低くするように前記コンピュータを機能させるための請求項2に記載のプログラム。
【請求項4】
表示及び/又は出力音声を制御してプレーヤに対して計測値の瞬間的な変化の試行を促し、試行時のプレーヤの計測値変化を計測する試行計測手段、
前記試行計測手段により計測された計測値変化に基づいて、前記増加量閾値及び前記減少量閾値を調整する閾値調整手段、
として前記コンピュータを機能させるための請求項1〜3の何れか一項に記載のプログラム。
【請求項5】
前記動作制御手段が、前記変化検出手段が検出した際の計測値の変化量に基づき、前記所定動作による動きを調整して前記プレーヤキャラクタを制御するように前記コンピュータを機能させるための請求項1〜4の何れか一項に記載のプログラム。
【請求項6】
前記動作制御手段が、前記所定動作として前記プレーヤキャラクタのジャンプ動作を制御し、前記プレーヤキャラクタのジャンプの高さを前記変化検出手段が検出した際の計測値の変化量に基づき調整するように前記コンピュータを機能させるための請求項1〜5の何れか一項に記載のプログラム。
【請求項7】
前記計測部は異なる位置に設けられた複数の圧力センサを有し、
前記複数の圧力センサそれぞれの検知結果を用いて荷重バランスを検出する荷重バランス検出手段として前記コンピュータを機能させ、
前記動作制御手段が、前記荷重バランス検出手段により検出された荷重バランスを用いて、前記プレーヤキャラクタの前記所定動作の動作方向を制御するように前記コンピュータを機能させる、
ための請求項1〜6の何れか一項に記載のプログラム。
【請求項8】
前記プレーヤキャラクタの向きとプレーヤが乗っている前記計測部の向きとの対応関係をプレーヤの操作入力に基づいて設定する向き設定手段として前記コンピュータを機能させ、
前記動作制御手段が、前記荷重バランス検出手段により検出された荷重バランスと、前記向き設定手段により設定された対応関係とを用いて、前記プレーヤキャラクタの前記所定動作の動作方向を制御するように前記コンピュータを機能させる、
ための請求項7に記載のプログラム。
【請求項9】
前記プレーヤキャラクタは、前記ゲーム空間に設定された地形上を移動する移動体であり、
前記動作制御手段が、前記所定動作として前記プレーヤキャラクタのジャンプ動作を制御し、前記荷重バランス検出手段により検出された荷重バランスを用いて、前記プレーヤキャラクタのジャンプの飛距離を制御するように前記コンピュータを機能させるための請求項7又は8に記載のプログラム。
【請求項10】
前記動作制御手段が、前記所定動作として前記プレーヤキャラクタのジャンプ動作を制御するように前記コンピュータを機能させ、
前記プレーヤキャラクタが前記動作制御手段によるジャンプ動作によって着地する際に前記変化検出手段による検出がなされたか否かを判定し、なされたと判定した場合に前記プレーヤキャラクタに所定の着地アクションを行わせる着地アクション発動制御手段として前記コンピュータを機能させるための請求項1〜9の何れか一項に記載のプログラム。
【請求項11】
前記計測部による計測値が、前記静止荷重判定手段により判定された静止荷重から所定重量以上減少している状態が所定時間継続した場合に、前記ゲームの進行を停止させて所定のエラー表示を行うエラー表示制御手段として前記コンピュータを機能させるための請求項1〜10の何れか一項に記載のプログラム。
【請求項12】
請求項1〜11の何れか一項に記載のプログラムを記憶したコンピュータ読み取り可能な情報記憶媒体。
【請求項13】
ゲーム空間に配置されたプレーヤキャラクタを表示制御させて所定のゲームを実行するゲーム装置であって、
プレーヤの体重等の荷重を計測する計測部と、
前記計測部の計測値から静止荷重を判定する静止荷重判定手段と、
前記静止荷重判定手段により判定された静止荷重からの増加量閾値及び減少量閾値それぞれに達する計測値変化が交互に瞬間的に発生したことを検出する変化検出手段と、
前記変化検出手段の検出に応じて、当該検出時に行う動作として予め定められた所定動作を前記プレーヤキャラクタに行わせる動作制御手段と、
を備えたゲーム装置。

【図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

【図17】
image rotate

【図18】
image rotate