(57)【特許請求の範囲】
【請求項１】
コントローラの傾きに応じて移動体が滑走面を滑走する画像を生成するためのプログラムであって、
前記コントローラの傾きに応じて変化する情報を検出する検出部の検出結果に基づいて、前記コントローラの傾きを示す傾き情報を取得する情報取得部と、
前記移動体の速度ベクトルの大きさと前記傾き情報とに基づきずらし角を求め、前記移動体の速度ベクトルの向きと前記ずらし角とに基づき前記移動体の前記滑走面上の向きを求めるずらし角演算部と、
前記傾き情報に基づいて、前記移動体の前記滑走面上の向きに対して前記滑走面上で直交する方向の第１の力ベクトルを求める第１の力ベクトル演算部と、
前記滑走面の斜度に基づいて、第２の力ベクトルを求める第２の力ベクトル演算部と、
前記第１の力ベクトルと前記第２の力ベクトルとを合成した合成力ベクトルを求める合成力ベクトル演算部と、
前記合成力ベクトルに基づき前記移動体の速度ベクトルを更新し、更新した速度ベクトルに基づき前記移動体の位置を更新する更新部と、
前記移動体を含む画像を生成する画像生成部としてコンピュータを機能させることを特徴とするプログラム。
【請求項２】
請求項１において、
前記第１の力ベクトル演算部は、
前記移動体の速度ベクトルの大きさと前記傾き情報とに基づいて、前記第１の力ベクトルを求めることを特徴とするプログラム。
【請求項３】
請求項１又は２において、
前記情報取得部は、
第１のコントローラと第２のコントローラの各コントローラの前記傾き情報を取得し、
前記ずらし角演算部は、
前記移動体の速度ベクトルの大きさと前記各コントローラの前記傾き情報とに基づき前記ずらし角を求め、
前記第１の力ベクトル演算部は、
前記各コントローラの前記傾き情報に基づき前記第１の力ベクトルを求めることを特徴とするプログラム。
【請求項４】
請求項３において、
前記情報取得部は、
前記傾き情報を、前記各コントローラの傾きの方向に応じて符号が異なる情報として取得し、
前記第１の力ベクトル演算部は、
前記各コントローラの前記傾き情報の符号に基づき前記第１の力ベクトルを求めることを特徴とするプログラム。
【請求項５】
請求項４において、
前記各コントローラの前記傾き情報の符号に基づいて、前記移動体が受ける空気抵抗を示す第３の力ベクトルを求める第３の力ベクトル演算部としてコンピュータを機能させ、
前記合成力ベクトル演算部は、
前記第３の力ベクトル演算部によって前記第３の力ベクトルが求められた場合には、前記第２の力ベクトルと前記第３の力ベクトルとを合成した合成力ベクトルを求めることを特徴とするプログラム。
【請求項６】
請求項４又は５において、
前記各コントローラの前記傾き情報の符号に基づいて、前記移動体が受ける摩擦力を示す第４の力ベクトルを求める第４の力ベクトル演算部としてコンピュータを機能させ、
前記合成力ベクトル演算部は、
前記第４の力ベクトル演算部によって前記第４の力ベクトルが求められた場合には、前記第２の力ベクトルと前記第４の力ベクトルとを合成した合成力ベクトルを求めることを特徴とするプログラム。
【請求項７】
請求項１乃至６のいずれかにおいて、
前記ずらし角演算部は、
前記傾き情報の値が所定の閾値に達していない場合には、前記移動体の速度ベクトルの大きさと前記傾き情報とに基づき前記ずらし角を第１の角度範囲内で変化させ、前記傾き情報の値が前記所定の閾値に達した場合には、前記ずらし角を前記第１の角度範囲外の所定の角度に変化させることを特徴とするプログラム。
【請求項８】
請求項１乃至７のいずれかにおいて、
前記移動体の速度ベクトルの大きさが所定の値以下となった場合に、前記移動体の状態を、前記移動体を移動させる滑走状態から前記移動体を移動させない停止状態に設定する状態設定部としてコンピュータを機能させることを特徴とするプログラム。
【請求項９】
請求項８において、
前記ずらし角演算部は、
前記停止状態において、前記移動体が位置する前記滑走面の斜度が所定角度以上であり、且つ前記移動体の前記滑走面上の向きが第２の角度範囲内である場合には、前記移動体の前記滑走面上の向きを前記第２の角度範囲外の所定の向きに変化させることを特徴とするプログラム。
【請求項１０】
請求項８又は９において、
仮想カメラの位置と向きとを制御する仮想カメラ制御部としてコンピュータを機能させ、
前記情報取得部は、
前記コントローラの動きに応じて変化する情報を検出する検出部の検出結果に基づいて、前記コントローラの動きを示す動き情報を取得し、
前記状態設定部は、
前記停止状態において、前記仮想カメラの向きと前記動き情報とに基づき前記移動体の状態を前記滑走状態に設定することを特徴とするプログラム。
【請求項１１】
請求項１乃至１０のいずれかにおいて、
前記情報取得部は、
前記コントローラの動きに応じて変化する情報を検出する検出部の検出結果に基づいて、前記コントローラの動きを示す動き情報を取得し、
前記第２の力ベクトル演算部は、
前記滑走面の斜度と前記動き情報とに基づいて、前記第２の力ベクトルを求めることを特徴とするプログラム。
【請求項１２】
請求項１乃至１１のいずれかにおいて、
前記移動体の動作を制御する動作制御部としてコンピュータを機能させ、
前記動作制御部は、
前記傾き情報の所定時間内における変化に基づき、前記移動体の動作を制御することを特徴とするプログラム。
【請求項１３】
請求項１乃至１２のいずれかにおいて、
前記移動体の動作を制御する動作制御部としてコンピュータを機能させ、
前記情報取得部は、
前記コントローラの動きに応じて変化する情報を検出する検出部の検出結果に基づいて、前記コントローラの動きを示す動き情報を取得し、
前記動作制御部は、
前記動き情報に基づき、前記移動体が前記滑走面から離れる方向に移動する動作を制御することを特徴とするプログラム。
【請求項１４】
請求項８、請求項８に従属する請求項９乃至１３のいずれかにおいて、
前記移動体の位置に基づき、所与のイベントを発生させるイベント発生部としてコンピュータを機能させ、
前記状態設定部は、
前記イベントの発生に基づき、前記移動体の状態を、前記移動体を通常バランスで移動させる通常状態から前記移動体を特殊バランスで移動させる特殊状態に設定することを特徴とするプログラム。
【請求項１５】
コントローラの傾きに応じて移動体が滑走面を滑走する画像を生成するためのゲーム装置であって、
前記コントローラの傾きに応じて変化する情報を検出する検出部の検出結果に基づいて、前記コントローラの傾きを示す傾き情報を取得する情報取得部と、
前記移動体の速度ベクトルの大きさと前記傾き情報とに基づきずらし角を求め、前記移動体の速度ベクトルの向きと前記ずらし角とに基づき前記移動体の前記滑走面上の向きを求めるずらし角演算部と、
前記傾き情報に基づいて、前記移動体の前記滑走面上の向きに対して前記滑走面上で直交する方向の第１の力ベクトルを求める第１の力ベクトル演算部と、
前記滑走面の斜度に基づいて、第２の力ベクトルを求める第２の力ベクトル演算部と、
前記第１の力ベクトルと前記第２の力ベクトルとを合成した合成力ベクトルを求める合成力ベクトル演算部と、
前記合成力ベクトルに基づき前記移動体の速度ベクトルを更新し、更新した速度ベクトルに基づき前記移動体の位置を更新する更新部と、
前記移動体を含む画像を生成する画像生成部と、
を含むことを特徴とするゲーム装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、情報記憶媒体、及びゲーム装置に関する。
【背景技術】
【０００２】
従来から、スキーシュミレーション装置のように、入力ボードを操作して擬似的にスキーを行えるゲーム装置が知られている。このようなゲーム装置では、入力ボードにおいて行われるスイング動作入力とエッジング動作入力によりスキーヤーの移動軌跡が決定されるものがある。かかる技術として、例えば特開平１０−２０７３４１号公報に開示される従来技術がある。
【特許文献１】特開平１０−２０７３４１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、従来のゲーム装置では、プレーヤは水平方向へのスイング動作入力と垂直方向へのエッジング動作入力という別個独立した操作入力を同時に行わなければならず、操作が複雑になってしまうといった問題点があった。
【０００４】
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、少ない操作入力により様々なスキーの挙動を再現することが可能なプログラム、情報記憶媒体、及びゲーム装置を提供することにある。
【課題を解決するための手段】
【０００５】
（１）本発明は、コントローラの傾きに応じて移動体が滑走面を滑走する画像を生成するためのプログラムであって、
前記コントローラの傾きに応じて変化する情報を検出する検出部の検出結果に基づいて、前記コントローラの傾きを示す傾き情報を取得する情報取得部と、
前記移動体の速度ベクトルの大きさと前記傾き情報とに基づきずらし角を求め、前記移動体の速度ベクトルの向きと前記ずらし角とに基づき前記移動体の前記滑走面上の向きを求めるずらし角演算部と、
前記傾き情報に基づいて、前記移動体の前記滑走面上の向きに対して前記滑走面上で直交する方向の第１の力ベクトルを求める第１の力ベクトル演算部と、
前記滑走面の斜度に基づいて、第２の力ベクトルを求める第２の力ベクトル演算部と、
前記第１の力ベクトルと前記第２の力ベクトルとを合成した合成力ベクトルを求める合成力ベクトル演算部と、
前記合成力ベクトルに基づき前記移動体の速度ベクトルを更新し、更新した速度ベクトルに基づき前記移動体の位置を更新する更新部と、
前記移動体を含む画像を生成する画像生成部としてコンピュータを機能させることを特徴とする。
【０００６】
また本発明は上記各部を含むゲーム装置に関係する。また本発明はコンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶した情報記憶媒体に関係する。
【０００７】
本発明において、移動体の速度ベクトルとは、移動体の単位時間あたりの仮想空間内における移動量と移動方向をいう。
【０００８】
また本発明において、ずらし角とは、移動体の速度ベクトルの向きと移動体の滑走面上の向きとがなす角をいう。
【０００９】
また本発明において、合成力ベクトルに基づき移動体の速度ベクトルを更新するとは、合成力ベクトルと移動体の更新前の速度ベクトルとに基づき新たな速度ベクトルを求めてもよいし、合成力ベクトルをそのまま移動体の新たな速度ベクトルとしてもよいし、合成力ベクトルを所定の関数に基づいて変換して移動体の新たな速度ベクトルを求めるようにしてもよい。
【００１０】
本発明では、進行方向（移動体の速度ベクトルの向き）に対する移動体の向きを規定するずらし角を変化させて、当該移動体の向きと直交する方向の第１の力ベクトルの向きを変化させている。ここでずらし角が小さい場合には第１の力ベクトルの向きは進行方向と直交する方向に近い向きになるから、第１の力ベクトルは移動体の進行方向を変える力の成分を多く含む力ベクトルとなる。またずらし角が大きい場合には第１の力ベクトルの向きは進行方向と逆の方向に近い向きになるから、第一の力ベクトルは移動体を減速させる力の成分を多く含む力ベクトルとなる。すなわちずらし角を変化させることにより移動体にかかる力のうち進行方向を変える力と移動体を減速させる力との比率を変化させることができる。
【００１１】
従って本発明によれば、コントローラから取得した傾き情報に基づいてずらし角を求め、コントローラから取得した傾き情報に基づいて移動体の向きと直交する方向の第１の力ベクトルを求めることで、コントローラを傾けるという1系統の入力のみで移動体の進行方向を変える力と移動体を減速させる力との比率と、これらの力を含む第１の力ベクトルの大きさを制御することができる。また移動体の速度ベクトルの大きさに基づきずらし角を求めることで、そのときの移動体の速さを移動体の進行方向を変える力と移動体を減速させる力との比率に反映させることができる。
【００１２】
（２）また本発明に係るプログラム及び情報記憶媒体では、
前記第１の力ベクトル演算部は、
前記移動体の速度ベクトルの大きさと前記傾き情報とに基づいて、前記第１の力ベクトルを求めることを特徴とする。
【００１３】
本発明によれば、そのときの移動体の速さを第１の力ベクトルの大きさに反映させることができる。
【００１４】
（３）また本発明に係るプログラム及び情報記憶媒体では、
前記情報取得部は、
第１のコントローラと第２のコントローラの各コントローラの前記傾き情報を取得し、
前記ずらし角演算部は、
前記移動体の速度ベクトルの大きさと前記各コントローラの前記傾き情報とに基づき前記ずらし角を求め、
前記第１の力ベクトル演算部は、
前記各コントローラの前記傾き情報に基づき前記第１の力ベクトルを求めることを特徴とする。
【００１５】
本発明によれば、２つのコントローラの各コントローラの前記傾き情報に基づきずらし角と第１の力ベクトルを求めることで、各コントローラを傾けるという１系統の入力のみで移動体の進行方向を変える力と移動体を減速させる力との比率と、これらの力を含む第１の力ベクトルの大きさを制御することができる。
【００１６】
（４）また本発明に係るプログラム及び情報記憶媒体では、
前記情報取得部は、
前記傾き情報を、前記各コントローラの傾きの方向に応じて符号が異なる情報として取得し、
前記第１の力ベクトル演算部は、
前記各コントローラの前記傾き情報の符号に基づき前記第１の力ベクトルを求めることを特徴とする。
【００１７】
本発明において、傾きの方向に応じて符号が異なる情報とは、各コントローラの基準向きからの同一軸まわりの傾きの方向によって、例えば＋と−の符号が異なる情報をいう。
【００１８】
本発明によれば、各コントローラの傾きの方向の組合せに応じて第１の力ベクトルを制御することができる。
【００１９】
（５）また本発明に係るプログラム及び情報記憶媒体では、
前記各コントローラの前記傾き情報の符号に基づいて、前記移動体が受ける空気抵抗を示す第３の力ベクトルを求める第３の力ベクトル演算部としてコンピュータを機能させ、
前記合成力ベクトル演算部は、
前記第３の力ベクトル演算部によって前記第３の力ベクトルが求められた場合には、前記第２の力ベクトルと前記第３の力ベクトルとを合成した合成力ベクトルを求めることを特徴とする。
【００２０】
本発明によれば、各コントローラの傾きの方向の組合せに応じて、空気抵抗により移動体を減速させる力を制御することができる。
【００２１】
（６）また本発明に係るプログラム及び情報記憶媒体では、
前記各コントローラの前記傾き情報の符号に基づいて、前記移動体が受ける摩擦力を示す第４の力ベクトルを求める第４の力ベクトル演算部としてコンピュータを機能させ、
前記合成力ベクトル演算部は、
前記第４の力ベクトル演算部によって前記第４の力ベクトルが求められた場合には、前記第２の力ベクトルと前記第４の力ベクトルとを合成した合成力ベクトルを求めることを特徴とする。
【００２２】
本発明によれば、各コントローラの傾きの方向の組合せに応じて、滑走面との摩擦力により移動体を減速させる力を制御することができる。
【００２３】
（７）また本発明に係るプログラム及び情報記憶媒体では、
前記ずらし角演算部は、
前記傾き情報の値が所定の閾値に達していない場合には、前記移動体の速度ベクトルの大きさと前記傾き情報とに基づき前記ずらし角を第１の角度範囲内で変化させ、前記傾き情報の値が前記所定の閾値に達した場合には、前記ずらし角を前記第１の角度範囲外の所定の角度に変化させることを特徴とする。
【００２４】
本発明によれば、傾き情報の値が所定範囲内である場合と所定の閾値に達した場合とで、異なるずらし角の制御を行うことができる。特に本発明によれば、傾き情報の値が所定の閾値に達した場合に、移動体を急激に減速させる力が発生するようにずらし角を制御することにより、移動体を停止させるように制御することができる。
【００２５】
（８）また本発明に係るプログラム及び情報記憶媒体では、
前記移動体の速度ベクトルの大きさが所定の値以下となった場合に、前記移動体の状態を、前記移動体を移動させる滑走状態から前記移動体を移動させない停止状態に設定する状態設定部としてコンピュータを機能させることを特徴とする。
【００２６】
本発明によれば、プレーヤが移動体を停止させたつもりでも滑走面の斜度等により移動体が移動してしまう不具合を解消することができる。
【００２７】
（９）また本発明に係るプログラム及び情報記憶媒体では、
前記ずらし角演算部は、
前記停止状態において、前記移動体が位置する前記滑走面の斜度が所定角度以上であり、且つ前記移動体の前記滑走面上の向きが第２の角度範囲内である場合には、前記移動体の前記滑走面上の向きを前記第２の角度範囲外の所定の向きに変化させることを特徴とする。
【００２８】
本発明において、第２の角度範囲とは、例えば滑走面の傾斜方向とその逆の方向を含む所定範囲の角度でもよい。また第２の角度範囲外の所定の向きとは、例えば滑走面の傾斜方向に対して直交する向きでもよい。
【００２９】
本発明によれば、停止状態にある移動体の滑走面上の向きを停止状態にふさわしい向きに変更することができる。
【００３０】
（１０）また本発明に係るプログラム及び情報記憶媒体では、
仮想カメラの位置と向きとを制御する仮想カメラ制御部としてコンピュータを機能させ、
前記情報取得部は、
前記コントローラの動きに応じて変化する情報を検出する検出部の検出結果に基づいて、前記コントローラの動きを示す動き情報を取得し、
前記状態設定部は、
前記停止状態において、前記仮想カメラの向きと前記動き情報とに基づき前記移動体の状態を前記滑走状態に設定することを特徴とする。
【００３１】
本発明によれば、停止状態における仮想カメラの向きに応じて移動体の状態を滑走状態にするか否かを決定することができる。
【００３２】
（１１）また本発明に係るプログラム及び情報記憶媒体では、
前記情報取得部は、
前記コントローラの動きに応じて変化する情報を検出する検出部の検出結果に基づいて、前記コントローラの動きを示す動き情報を取得し、
前記第２の力ベクトル演算部は、
前記滑走面の斜度と前記動き情報とに基づいて、前記第２の力ベクトルを求めることを特徴とする。
【００３３】
本発明によれば、コントローラから取得した動き情報によって移動体を進行方向に加速させる力を制御することができる。
【００３４】
（１２）また本発明に係るプログラム及び情報記憶媒体では、
前記移動体の動作を制御する動作制御部としてコンピュータを機能させ、
前記動作制御部は、
前記傾き情報の所定時間内における変化に基づき、前記移動体の動作を制御することを特徴とする。
【００３５】
本発明において、傾き情報の変化とは、傾きの方向の変化でもよいし、傾き情報の値の最大値から最小値への変化又は最小値から最大値までの変化でもよい。
【００３６】
本発明によれば、コントローラから取得した傾き情報によって移動体にかかる力に加えて移動体の動作を制御することができる。例えば、傾き情報の所定時間内における変化の回数や間隔などに応じて、移動体に連続動作を行わせるなどの制御を行うことができる。
【００３７】
（１３）また本発明に係るプログラム及び情報記憶媒体では、
前記移動体の動作を制御する動作制御部としてコンピュータを機能させ、
前記情報取得部は、
前記コントローラの動きに応じて変化する情報を検出する検出部の検出結果に基づいて、前記コントローラの動きを示す動き情報を取得し、
前記動作制御部は、
前記動き情報に基づき、前記移動体が前記滑走面から離れる方向に移動する動作を制御することを特徴とする。
【００３８】
本発明によれば、コントローラから取得した動き情報によって移動体がジャンプする動作を制御することができる。
【００３９】
（１４）また本発明に係るプログラム及び情報記憶媒体では、
前記移動体の位置に基づき、所与のイベントを発生させるイベント発生部としてコンピュータを機能させ、
前記状態設定部は、
前記イベントの発生に基づき、前記移動体の状態を、前記移動体を通常バランスで移動させる通常状態から前記移動体を特殊バランスで移動させる特殊状態に設定することを特徴とする。
【００４０】
本発明において、所与のイベントとは、例えば移動体が転倒するイベント、又は移動体が滑走面上の障害物又は他の移動体に接触するイベント、又は移動体がジャンプ後の着地で衝撃を受けるイベント等とすることができる。
【００４１】
本発明において、通常状態とは、例えば傾き情報に基づく第１の力ベクトルの演算を行う状態をいい、特殊状態とは、例えば傾き情報に基づく第１の力ベクトルの演算を行わない状態とすることができる。
【００４２】
本発明によれば、イベントの発生に応じて移動体の移動状態や動作状態を制御することができる。
【発明を実施するための最良の形態】
【００４３】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【００４４】
１．システム概略
図１は、本実施形態のゲームシステム１０の概略外観図である。本実施形態のゲームシステム１０は、表示画面１１にゲーム画像を表示させる表示部１２と、ゲーム処理等を行うゲーム機１４と、プレーヤＰが両手に把持して所定範囲内での位置、向きを任意に変更可能な第１のコントローラ１６、第２のコントローラ１８とを含む。本実施形態の第１のコントローラ１６、第２のコントローラ１８の各コントローラは、各コントローラの傾きや動きに応じて変化する情報を検出する検出部を内蔵しており、各コントローラ自体の傾きや動きに関する情報を取得できるようになっている。なお図１の例では、ゲーム機１４と第１のコントローラ１６との間では無線通信により情報を送受信し、第１のコントローラ１６と第２のコントローラ１８とがケーブルにより接続されている。
【００４５】
本実施形態では第１のコントローラ１６、第２のコントローラ１８の各コントローラは、その内部に３軸加速度センサ（検出部）を内蔵している。この加速度センサは、各コントローラの傾きの向きと傾きの大きさを各コントローラにかかる３軸それぞれの加速度ベクトル（傾き情報）として検出することができる。またこの加速度センサは、各コントローラ自体の動きに応じて各コントローラの速度、向きが一定時間にどの位変化したか、各コントローラ自体の動きを各コントローラにかかる３軸それぞれの加速度ベクトル（動き情報）として検出することができる。
【００４６】
そして図１に示すように、プレーヤＰが第１、第２のコントローラ１６、１８を把持しながら手を動かして、各コントローラ自体の傾き、動きを変化させると、かかる傾き、動きに応じて変化する情報に基づいて、表示画面１１に表示される移動体オブジェクトＭＯを制御することができる。即ちコントローラ１６自体の傾き、動きにより、移動体オブジェクトＭＯを操作することができる。
【００４７】
ここで本実施形態では、表示画面１１には滑走面を滑走してスキーを行う移動体オブジェクトＭＯが表示されている。移動体オブジェクトＭＯは滑走面を示すマップＭＰ上に設定された斜度に応じた速度でマップＭＰ上を移動している。本実施形態では、各コントローラを所定の方向に傾けたり振ったりすることにより、移動体オブジェクトＭＯのマップＭＰ上での移動方向、速度、又は動作を変化させる。
【００４８】
２．本実施形態の手法
次に本実施形態の手法について図面を用いて説明する。
【００４９】
図２〜図１７は、本実施形態の各コントローラの操作と移動体の制御について説明するための図である。
【００５０】
図２は、２つのコントローラを同じ方向に傾ける操作の一例について説明するための図である。図２の例では、第１のコントローラ１６と第２のコントローラ１８とをＺ軸回りに時計回りに傾ける操作を行っている。この様な操作が行われると重力によって＋Ｘ軸方向に加速度が生じ、各コントローラに内蔵された加速度センサのＸ軸出力から正の符号つきの傾きに応じた加速度情報が出力される。また図２の例とは逆に、第１のコントローラ１６と第２のコントローラ１８をＺ軸回りに反時計回りに傾ける操作が行われると重力によって−Ｘ軸方向に加速度が生じ、各加速度センサのＸ軸出力から負の符号つきの傾きに応じた加速度情報が出力される。なお、各加速度センサのＸ軸出力からの加速度情報の絶対値は、各コントローラをＺ軸回りに９０度傾けた場合に最大となる。
【００５１】
図３は、図２に示した操作が行われた場合の移動体の制御の一例について説明するための図である。本実施形態では、各コントローラの加速度センサのＸ軸出力から正の符号つきの加速度情報を取得した場合に、滑走面を滑走する移動体ＭＯを右方向にターンさせる制御を行う。なおここでは説明の便宜上移動体ＭＯを１枚のスキー板として示している。
【００５２】
本実施形態では、各コントローラの加速度センサのＸ軸出力から正の符号つきの加速度情報を取得した場合に、移動体ＭＯの進行方向（速度ベクトルＳの向き）に対する移動体の滑走面上の向きＤを規定するずらし角Ａを求める。ずらし角Ａは、各コントローラの加速度センサの加速度情報の値（各加速度センサの加速度情報の平均値又は加算値）と移動体ＭＯの現在の速度ベクトルＳの大きさに基づいて求められるが、ずらし角Ａの最大値は移動体ＭＯの速度ベクトルＳの大きさ（移動体の速さ）によって決まり、求めるずらし角Ａは各コントローラの加速度センサの加速度情報の値が大きいほど当該最大値を超えない範囲で大きな角度となる。
【００５３】
図４は、移動体の速さとずらし角の最大値との関係について説明するための図である。本実施形態では、移動体ＭＯの速さが速いほどずらし角Ａの最大値を小さくしており、移動体ＭＯの速さが所定速度以上になるとずらし角Ａを０度にしている。従って、その時点での移動体ＭＯの速度が遅い場合には、移動体ＭＯの速度が速い場合に比べてより小さい各コントローラの傾きで同じずらし角Ａを得ることができる。なお本実施形態では、ずらし角Ａの最大値を６０度以下の値としている。
【００５４】
次に、求めたずらし角Ａによって移動体の向きＤを規定し、この移動体の向きＤに対して滑走面上で直交する方向の第１の力ベクトルＰ１を求める。第１の力ベクトルＰ１は、各コントローラの加速度センサの加速度情報と移動体ＭＯの現在の速度ベクトルＳの大きさとに基づいて求められるが、第１の力ベクトルＰ１の最大値は、移動体ＭＯの速度ベクトルＳの大きさ（移動体の速さ）によって決まり、求める第１の力ベクトルＰ１は加速度情報の値が大きくなるほど当該最大値を超えない範囲で大きくなる。
【００５５】
図５は、移動体の速さと第１の力ベクトルＰ１の最大値との関係について説明するための図である。図５に示すように、移動体ＭＯの速さが速いほど第１の力ベクトルＰ１の最大値は大きくなっている。従って、その時点での移動体ＭＯの速度が速い場合には、移動体ＭＯの速度が遅い場合に比べてより小さい各コントローラの傾きで同じ大きさの第１の力ベクトルＰ１を得ることができる。
【００５６】
ここで図３に示すように、第１の力ベクトルＰ１は、速度ベクトルＳの向きと直交する方向の成分（移動体ＭＯの進行方向を変える力の成分）Ｐ１ａと、速度ベクトルＳの向きと逆の方向の成分（移動体ＭＯを減速させる力の成分）Ｐ１ｂとに分解することができる。そしてずらし角Ａが小さくなるほど第１の力ベクトルＰ１の向きは速度ベクトルＳの向きと直交する方向に近い向きになるから、第１の力ベクトルＰ１の成分Ｐ１ａは大きくなり、成分Ｐ１ｂは小さくなる。またずらし角Ａが大きくなるほど第１の力ベクトルＰ１の向きは進行方向と逆の方向に近い向きになるから、第１の力ベクトルＰ１の成分Ｐ１ａは小さくなり、成分Ｐ１ｂは大きくなる。このように本実施形態では、ずらし角Ａを変化させることにより移動体ＭＯにかかる力のうち進行方向を変える力と移動体を減速させる力との比率を変化させることができる。
【００５７】
次に、移動体ＭＯを傾斜方向に加速させる第２の力ベクトルＰ２を求める。第２の力ベクトルＰ２の向きは、滑走面の傾斜方向（斜度が最大となる方向）ＳＤと同一であり、第２の力ベクトルＰ２の大きさは、図６に示すようにマップＭＰ（滑走面）上の移動体ＭＯが位置する地点の斜度ＳＡに基づき求められ、当該斜度ＳＡが大きいほど第２の力ベクトルＰ２は大きくなる。
【００５８】
次に、図３に示すように、求めた第１の力ベクトルＰ１と第２の力ベクトルＰ２を合成した合成力ベクトルＰＳを求める。図３に示す例では、合成力ベクトルＰＳは移動体ＭＯを右方向にターンさせる力として働く。ここで第１の力ベクトルＰ１と第２の力ベクトルＰ２に加えて、移動体ＭＯが受ける空気抵抗を示す第３の力ベクトルと、移動体ＭＯが受ける摩擦力を示す第４の力ベクトルとを合成して合成力ベクトルＰＳを求めるようにしてもよい。そして、求めた合成力ベクトルＰＳと速度ベクトルＳとに基づき移動体ＭＯの新たな速度ベクトルＳ’を求め、新たな速度ベクトルＳ’に基づき移動体ＭＯの位置を更新する。
【００５９】
図７は、図２に示す例とは逆に、第１のコントローラ１６と第２のコントローラ１８をＺ軸回りに反時計回りに傾ける操作が行われた場合の移動体の制御の一例について説明するための図である。本実施形態では、各コントローラの加速度センサのＸ軸出力から負の符号つきの加速度情報を取得した場合には、図３に示す例とは異なり、移動体ＭＯの進行方向（速度ベクトルＳの向き）に対して、移動体の滑走面上の向きＤを左方向にずらすためのずらし角Ａを求める。ずらし角Ａの最大値は移動体ＭＯの速度ベクトルＳの大きさ（移動体の速さ）によって決まり、求めるずらし角Ａは各コントローラの加速度センサの加速度情報の値（各加速度センサの加速度情報の平均値又は加算値）の絶対値が大きいほど当該最大値を超えない範囲で大きな角度となる。
【００６０】
次に移動体の向きＤに対して滑走面上で直交する方向の第１の力ベクトルＰ１を求める。第１の力ベクトルＰ１の最大値は、移動体ＭＯの速度ベクトルＳの大きさ（移動体の速さ）によって決まり、求める第１の力ベクトルＰ１は各コントローラの加速度センサの加速度情報の絶対値が大きくなるほど当該最大値を超えない範囲で大きくなる。次に、図３に示す例と同様に合成力ベクトルＰＳを求める。図７に示す例では、合成力ベクトルＰＳは移動体ＭＯを左方向にターンさせる力として働く。このように本実施形態では、各コントローラを傾ける方向を変えることで移動体のターン方向を変えることができる。
【００６１】
図８は、移動体の速度が所定速度以上である場合の、移動体の制御の一例について説明するための図である。本実施形態では、図４に示したように移動体ＭＯの速度が所定速度以上である場合にずらし角Ａの最大値が０となるようにしている。従って、図８に示すように、第１のコントローラ１６と第２のコントローラ１８とをＺ軸回りに時計回りに傾けた場合であっても、移動体の速度ベクトルＳの大きさが所定値以上であればずらし角Ａは０となり、移動体の向きＤは速度ベクトルＳの向きと同じ向きとなる。従って第１の力ベクトルＰ１の向きは移動体の速度ベクトルＳの向きに対して直交する方向になり、第１の力ベクトルＰ１は、ターンによって移動体ＭＯの進行方向を変える成分Ｐ１ａのみを含み、ターンによって移動体を減速させる成分Ｐ１ｂを含まないベクトルとなる。従って図８に示す合成力ベクトルＰＳは、図３に示す合成力ベクトルＰＳとは異なり、ターンによる減速をさせずに移動体ＭＯを右方向にターンさせる力として働く。
【００６２】
このように本実施形態では、移動体ＭＯの速度が一定速度以上である場合にずらし角Ａを０とすることで、移動体ＭＯの速度によって、ターンによる減速を伴うターン（ドリフトターン）と、ターンによる減速を伴わないターン（カービングターン）という２種類のターンを切り替える制御を行うことができる。すなわち本実施形態では、移動体ＭＯの速度に応じて各コントローラの傾きに基づくずらし角の設定値を変化させることにより、各コントローラを傾けるという１系等の入力で、ドリフトターンとカービングターンを移動体に行わせることができる。
【００６３】
図９は、各コントローラの加速度センサの加速度情報の値が所定の閾値に達した場合の、移動体の制御の一例について説明するための図である。本実施形態では、各コントローラの加速度センサの加速度情報の平均値又は加算値の絶対値が所定の閾値に達していない場合には、加速度情報と移動体の速さに基づきずらし角Ａを０度から６０度の範囲（第１の角度範囲内）で求めるが、各加速度センサの加速度情報の平均値又は加算値の絶対値が所定の閾値に達した場合には、図９に示すようにずらし角Ａを９０度にする制御を行う。これにより移動体の向きＤは移動体の速度ベクトルＳの向きに対して直交する向きとなり、第１の力ベクトルＰ１の向きは速度ベクトルＳの向きと逆の向きになる。すなわち第１の力ベクトルＰ１は、移動体ＭＯを減速させる成分Ｐ１ｂのみを含むベクトルとなる。そして図９に示すように第１の力ベクトルＰ１が第２の力ベクトルＰ２より大きい場合には、第１の力ベクトルＰ１と第２の力ベクトルＰ２とを合成した合成力ベクトルＰＳの向きは速度ベクトルＳの向きと逆の向きになるため、移動体ＭＯを減速させることができる。
【００６４】
このように本実施形態では、各コントローラの加速度センサの加速度情報の値が、第１の閾値に達しない範囲内で各コントローラがＺ軸回り傾けられた場合には、移動体ＭＯを右ターン又は左ターンさせる制御を行い、第１の閾値に達するように各コントローラがＺ軸回りに傾けられた場合には、移動体ＭＯをブレーキ（ターンによるブレーキ）させる制御を行うことができる。
【００６５】
図１０は、２つのコントローラを異なる方向に傾ける操作の一例について説明するための図である。図１０の例では、第１のコントローラ１６をＺ軸回りに反時計回りに傾け、第２のコントローラ１８をＺ軸回りに時計回りに傾ける操作を行っている。この様な操作が行われると、第１のコントローラについては重力によって−Ｘ軸方向に加速度が生じ、第１のコントローラに内蔵された加速度センサのＸ軸出力から負の符号つきの加速度情報が出力され、第２のコントローラについては重力によって＋Ｘ軸方向に加速度が生じ、第２のコントローラに内蔵された加速度センサのＸ軸出力から正の符号つきの加速度情報が出力される。
【００６６】
図１１は、図１０に示した操作が行われた場合の移動体の制御の一例について説明するための図である。本実施形態では、第１のコントローラの加速度センサのＸ軸出力から負の符号つきの加速度情報を取得し、且つ第２のコントローラの加速度センサのＸ軸出力から正の符号つきの加速度情報を取得した場合に、移動体を減速（ボーゲンブレーキによる減速）させる制御を行う。本実施形態では、このような場合に移動体ＭＯが受ける滑走面との摩擦力を示す第４の力ベクトルＰ４の大きさを増加させる制御を行う。そして第４の力ベクトルＰ４を第２の力ベクトルＰ２より大きくすることで、第４の力ベクトルＰ４と第２の力ベクトルＰ２とを合成した合成力ベクトルＰＳの向きは速度ベクトルＳの向きと逆の向きになるため、移動体ＭＯを減速させることができる。なお、第４の力ベクトルＰ４の増加量は、所定の増加量としてもよいし、各コントローラの加速度センサの加速度情報の差分に基づき増加量を求めるようにしてもよい。
【００６７】
このように本実施形態によれば、プレーヤは、第１のコントローラ１６を把持した右手を反時計回りにねじり、第２のコントローラ１８を把持した左手を時計回りにねじる動作を行うことにより図１０に示す操作を行うことができ、あたかもスキー板をハの字にして内側のエッジを立てて外側に向けて力をかけるボーゲンブレーキを行っているような感覚で、移動体にボーゲンブレーキによる減速を行わせることができる。
【００６８】
図１２は、２つのコントローラを異なる方向に傾ける操作の一例について説明するための図である。図１２の例では、各コントローラを寝かせた状態（Ｙ軸を水平にした状態）で、第１のコントローラ１６をＹ軸回りに時計回りに傾け、第２のコントローラ１８をＹ軸回りに反時計回りに傾ける操作を行っている。この様な操作が行われると、第１のコントローラについては重力によって＋Ｘ軸方向に加速度が生じ、第１のコントローラに内蔵された加速度センサのＸ軸出力から正の符号つきの加速度情報が出力され、第２のコントローラについては重力によって−Ｘ軸方向に加速度が生じ、第２のコントローラに内蔵された加速度センサのＸ軸出力から負の符号つきの加速度情報が出力される。尚、図１０において、第１のコントローラ１６をＺ軸回りに時計回りに傾け、第２のコントローラ１８をＺ軸回りに時計回りに傾ける操作を行っても、図１２の例と同様の加速度情報を得ることができる。
【００６９】
図１３は、図１２に示した操作が行われた場合の移動体の制御の一例について説明するための図である。本実施形態では、第１のコントローラの加速度センサのＸ軸出力から正の符号つきの加速度情報を取得し、且つ第２のコントローラの加速度センサのＸ軸出力から負の符号つきの加速度情報を取得した場合に、移動体を加速（クラウチングスタイルによる加速）させる制御を行う。本実施形態では、このような場合に移動体ＭＯが受ける空気抵抗を示す第３の力ベクトルＰ３の大きさを減少させる制御を行う。そして第３の力ベクトルＰ３と第２の力ベクトルＰ２を合成した合成力ベクトルＰＳは、第３の力ベクトルＰ３が小さくなるほど、大きなベクトルとなるため、移動体ＭＯを加速させることができる。なお、第３の力ベクトルＰ３の減少量は、所定の減少量としてもよいし、各コントローラの各加速度センサの加速度情報の差分に基づき減少量を求めるようにしてもよい。
【００７０】
このように本実施形態によれば、プレーヤは、第１のコントローラ１６を把持した右手を時計回りにねじり、第２のコントローラ１８を把持した左手を反時計回りにねじる動作を行うことにより図１２に示す操作を行うことができ、あたかも両手に持ったストックを脇に抱え込みつつ前傾姿勢をとるクラウチングスタイルを行っているような感覚で、移動体にクラウチングスタイルによる加速を行わせることができる。
【００７１】
図１４は、２つのコントローラを振る（動かす）操作の一例について説明するための図である。図１４の例では、第１のコントローラ１６と第２のコントローラ１８とを＋Ｚ軸方向に動かす操作を行っている。このような操作が行われるとコントローラ自体の動きによって＋Ｚ軸方向に加速度が生じ、各コントローラに内蔵された加速度センサのＺ軸出力から正の符号付きの動きに応じた加速度情報が出力される。また図１４の例とは逆に、第１のコントローラ１６と第２のコントローラ１８とを−Ｚ軸方向に動かす操作が行われるとコントローラ自体の動きによって−Ｚ軸方向に加速度が生じ、各コントローラに内蔵された加速度センサのＺ軸出力から負の符号付きの動きに応じた加速度情報が出力される。
【００７２】
本実施形態では、各コントローラの加速度センサのＺ軸出力から正の符号つきの加速度情報の値を取得し、且つ取得した加速度情報の値（各加速度センサの加速度情報の平均値又は加算値）が所定の閾値を超えたと判断した場合（各コントローラが＋Ｚ軸方向に所定の強さで振られる操作が行われた場合）に、移動体を加速（スケーティングによる加速）させる制御を行う。本実施形態では、このような場合に、滑走面の斜度ＳＡに基づき求められる第２の力ベクトルＰ２を大きくする制御を行う。これによって斜度ＳＡから受ける力以上の力を移動体ＭＯに与えることができる。なお、求める第２の力ベクトルＰ２の大きさは、滑走面の斜度ＳＡに基づき求めた第２の力ベクトルＰ２に所定の値を加算して求めるようにしてもよいし、各加速度センサの加速度情報の平均値又は加算値に基づきベクトルの増加量を求めるようにしてもよい。
【００７３】
また本実施形態では、各コントローラの加速度センサのＺ軸出力から負の符号つきの加速度情報を取得し、且つ取得した加速度情報の値（各加速度センサの加速度情報の平均値又は加算値）が所定の閾値を超えたと判断した場合（各コントローラが−Ｚ軸方向に所定の強さで振られる操作が行われた場合）に、移動体が滑走面から離れる方向に移動する動作（移動体ＭＯがジャンプする動作）を制御する。
【００７４】
また本実施形態では、移動体ＭＯの位置に基づき移動体が滑走面上の障害物又は他の移動体に接触するイベント、又は移動体ＭＯがジャンプ後の着地で衝撃を受けるイベント等を発生させ、このようなイベントの発生に基づき移動体ＭＯを通常バランスで移動させる通常状態から移動体ＭＯを特殊バランスで移動させる特殊状態（よろけ状態、転倒状態）に設定する。そして本実施形態では、特殊状態において、各コントローラの加速度センサのＺ軸出力から負の符号つきの加速度情報を取得し、且つ取得した加速度情報の値（各加速度センサの加速度情報の平均値又は加算値）が所定の閾値を超えたと判断した場合（各コントローラが−Ｚ軸方向に所定の強さで振られる操作が行われた場合）に、移動体の状態を通常状態に設定する。
【００７５】
図１５は、停止状態に設定された移動体の向きを制御する一例について説明するための図である。本実施形態では、移動体ＭＯの速度ベクトルＳの大きさ（移動体ＭＯの速さ）が所定の値以下となった場合に、移動体ＭＯを移動させない停止状態に設定する。このとき停止状態となった移動体ＭＯの位置する地点の斜度ＳＡが所定角度以上であり、且つ移動体の滑走面上の向きＤが第２の角度範囲内である場合には、移動体の向きＤを所定の向きに変化させる。図１５の例では、第２の角度範囲Ａ２は、滑走面の傾斜方向ＳＤ（移動体が前向きに滑走してしまう方向）とその逆の方向（移動体が後ろ向きに滑走してしまう方向）を含む範囲に設定されている。ここで図１５の例では停止状態にある移動体の向きＤが第２の角度範囲Ａ２にあるため、移動体の向きＤが傾斜方向ＳＤに対して直交する向き（所定の向き）Ｄ２に変更される。このようにすることで、移動体ＭＯが停止状態にあるにもかかわらず、本来ならば移動体が滑走してしまうような傾斜方向ＳＤに向いている、又は傾斜方向ＳＤと逆の方向に向いているという不自然な状態を回避することができる。
【００７６】
図１６は、停止状態にある移動体の状態を変更する一例について説明するための図である。本実施形態では、移動体ＭＯが停止状態にある場合には、コントローラからの操作データに基づいて、仮想カメラが移動体ＭＯを中心とする円周上を移動するように仮想カメラの位置を制御している。また当該円周上を仮想カメラが移動しても常に移動体ＭＯの方を向くように仮想カメラの向きを制御している。これによりプレーヤはコントローラを操作して仮想カメラを移動させることにより、停止している移動体ＭＯの周囲の状況を確認することができる。
【００７７】
本実施形態では、停止状態において、各コントローラの加速度センサのＺ軸出力から正の符号つきの加速度情報の値を取得し、取得した加速度情報の値（各加速度センサの加速度情報の平均値又は加算値）が所定の閾値に達したと判断した場合（各コントローラが＋Ｚ軸方向に所定の強さで振られる操作が行われた場合）、且つ仮想カメラの向きＣＤが第３の角度範囲Ａ３にある場合（仮想カメラＶＣの位置が円弧ＡＣにある場合）に、移動体ＭＯの状態を滑走状態に変更する。図１６の例では第３の角度範囲Ａ３は、滑走面の傾斜方向ＳＤを含む範囲に設定されている。ここで図１６の例では仮想カメラの向きＣＤが第３の角度範囲Ａ３にあるため、各コントローラの加速度センサのＺ軸出力から取得した加速度情報の値が所定の閾値に達した場合に、移動体ＭＯの状態が滑走状態に変更され、移動体の向きＤを仮想カメラの向きＣＤに変更し、移動体ＭＯを仮想カメラの向きＣＤに滑り出させる制御が行われる。また本実施形態では、仮想カメラの向きＣＤが第３の角度範囲Ａ３にない場合（仮想カメラＶＣの位置が円弧ＡＣにない場合）には、移動体の状態は滑走状態に変更されない。このように仮想カメラの向きＶＣが傾斜方向を含む角度範囲にある場合のみに移動体ＭＯを仮想カメラの向きＶＣに滑り出させることで、移動体ＭＯが傾斜方向ＳＤに対して横方向あるいは反対の方向に滑り出すという不自然な状態を回避することができる。またプレーヤに移動体ＭＯが滑り出す方向の状況を確認させることができる。
【００７８】
ここで、移動体の向きＤが第３の角度範囲ＡＣにある場合に移動体ＭＯの状態を滑走状態に変更するようにしてもよい。図１６の例では停止状態にある移動体の向きＤが第３の角度範囲Ａ３にあるため、各コントローラの加速度センサのＺ軸出力から取得した加速度情報の値が所定の閾値に達した場合に、移動体ＭＯの状態が滑走状態に変更される。このようにすることで、停止状態において傾斜方向ＳＤに対して横方向あるいは反対の方向を向いている移動体ＭＯが滑り出すという不自然な状態を回避することができる。
【００７９】
図１７は、各コントローラの加速度センサのＸ軸出力から取得した加速度情報（傾き情報）の所定時間における変化に基づき、移動体ＭＯの動作を制御する一例について説明するための図である。図１７は、時間の経過に従って変化しているＸ軸の加速度情報の平均値を示している。ここで時間ｔ１、ｔ３は、Ｘ軸の加速度情報の平均値の符号が正から負に変化したとき（右ターン操作から左ターン操作へ変わったとき）の時間を示し、時間ｔ２、ｔ４は、Ｘ軸の加速度情報の平均値の符号が負から正に変化したとき（左ターン操作から右ターン操作へ変わったとき）の時間を示している。本実施形態では、このようなＸ軸の加速度情報の平均値の符号の変化が所定時間内に続けて発生したと判断した場合には、移動体ＭＯの動作を右ターンと左ターンとを断続的に行うパラレルターン動作から、右ターンと左ターンとを連続的に行うウェーデルン動作に変化させる制御を行う。
【００８０】
図２１は、滑走面を示すマップＭＰに凹凸がある場合の移動体ＭＯの動作を制御する一例について説明するための図である。本実施形態では、図２１に示すように、マップＭＰに凹凸が設けられたモーグルバーンＭＢが用意されており、移動体ＭＯがモーグルバーンＭＢを滑走する場合には、移動体ＭＯが体幹ＢＤを所定角度に保ったまま、モーグルバーンＭＢの凹凸に合わせて膝ＫＮを屈伸するモーグル動作を行うように移動体ＭＯの動作制御を行う。詳細には本実施形態では、図２１に示すように、モーグルバーンＭＢに対応するマップＭＰにモーグルバーンＭＢの傾斜に合わせた凹凸がない基準斜面ＳＢが配置されている。そして、移動体ＭＯがモーグルバーンＭＢを滑走する場合には、移動体ＭＯの上半身については、頭ＨＤの位置が基準斜面ＳＢと平行に移動するように頭ＨＤと体幹ＢＤの位置を決定する。一方、移動体ＭＯの下半身については、足裏ＳＬの位置がモーグルバーンＭＢの凹凸と平行に移動するように膝ＫＮの関節の回転角度を決定し、腿ＴＨと脛ＳＨの位置を決定する。なお、腕ＡＭについては、移動体ＭＯが凸部に位置することにより膝ＫＮを所定角度曲げる毎に、左右いずれかの腕ＡＭで凸部の上部をストックで突く動作を行う。また膝ＫＮの関節の回転角度に応じてモーグルバーンＭＢが移動体ＭＯから受ける荷重（曲がった膝ＫＮが反発する力）を求めて、求めた荷重が大きくなるほど第１の力ベクトルＰ１が大きくなるように制御するようにしてもよい。このようにすることで、移動体ＭＯが滑走する滑走面の凹凸に応じて移動体ＭＯをターンさせる力の大きさを制御することができる。
【００８１】
３．構成
次に、図１８を用いて本実施形態におけるゲームシステムの構成について説明する。図１８は、本実施形態におけるゲームシステムの機能ブロック図の一例である。なお、本実施形態のゲームシステムは、図１８の構成要素（各部）の一部を省略した構成としてもよい。
【００８２】
操作部１６０は、プレーヤが操作データを入力するためのものであり、特に本実施形態では、プレーヤが操作部１６０を把持して操作部１６０自体の位置、向きを任意に変更可能なものである。そして操作部１６０は、操作部１６０自体の傾きや動きに応じて変化する情報を検出する検出部１６２を内蔵する。従って本実施形態の操作部１６０は、操作部１６０自体の傾きや動きを操作データとして入力することができる。
【００８３】
検出部１６２は、加速度センサや姿勢方位センサやジャイロなど、加速度、角速度、速度により基準位置、基準向き（基準軸）からの位置、向きの変位を検出する。例えば加速度センサとしては、圧電型や動電式、歪みケージ式等のハードウェアにより実現できる。これにより検出部１６２は、操作部１６０自体の傾きや動きを連続的な値として検出することができる。
【００８４】
また操作部１６０は、レバー、ボタン、ステアリング、マイク、タッチパネル型ディスプレイなどを備えるようにして、種々の操作データを入力できるようにしてもよい。
【００８５】
記憶部１７０は、処理部１００や通信部１９６などのワーク領域となるもので、その機能はＲＡＭ（ＶＲＡＭ）などにより実現できる。そして、本実施形態の記憶部１７０は、ワーク領域として使用される主記憶部１７１と、最終的な表示画像等が記憶されるフレームバッファ１７２と、オブジェクトのモデルデータが記憶されるオブジェクトデータ記憶部１７３と、各オブジェクトデータ用のテクスチャが記憶されるテクスチャ記憶部１７４と、オブジェクトの画像の生成処理時にＺ値が記憶されるＺバッファ１７６と、を含む。なお、これらの一部を省略する構成としてもよい。
【００８６】
情報記憶媒体１８０（コンピュータにより読み取り可能な媒体）は、プログラムやデータなどを格納するものであり、その機能は、光ディスク（ＣＤ、ＤＶＤ）、光磁気ディスク（ＭＯ）、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ（ＲＯＭ）などにより実現できる。
【００８７】
この情報記憶媒体１８０には、処理部１００において本実施形態の種々の処理を行うためのプログラム（データ）が記憶されている。即ち、この情報記録媒体１８０には、本実施形態の各部としてコンピュータを機能させるためのプログラム（各部の処理をコンピュータに実行させるためのプログラム）が記憶されている。
【００８８】
表示部１９０は、本実施形態により生成された画像を出力するものであり、その機能は、ＣＲＴ、ＬＣＤ、タッチパネル型ディスプレイなどにより実現できる。
【００８９】
音出力部１９２は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
【００９０】
携帯型情報記憶装置１９４には、プレーヤの個人データやゲームのセーブデータなどが記憶されるものであり、この携帯型情報記憶装置１９４としては、メモリカードや携帯型ゲーム装置などがある。
【００９１】
通信部１９６は、外部（例えばホスト装置や他の画像生成システム）との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ＡＳＩＣなどのハードウェアや、プログラムなどにより実現できる。
【００９２】
なお、本実施形態の各部としてコンピュータを機能させるためのプログラム（データ）は、ホスト装置（サーバー）が有する情報記憶媒体からネットワーク及び通信部１９６を介して情報記憶媒体１８０（記憶部１７０）に配信してもよい。このようなホスト装置（サーバー）の情報記憶媒体の使用も本発明の範囲内に含めることができる。
【００９３】
処理部１００（プロセッサ）は、操作部１６０からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの処理を行う。ここで、ゲーム処理としては、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、キャラクタやマップなどのオブジェクトを配置する処理、オブジェクトを表示する処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などがある。この処理部１００は記憶部１７０をワーク領域として各種処理を行う。処理部１００の機能は各種プロセッサ（ＣＰＵ、ＤＳＰ等）、ＡＳＩＣ（ゲートアレイ等）などのハードウェアや、プログラムにより実現できる。
【００９４】
特に、本実施形態の処理部１００は、情報取得部１０８と、オブジェクト空間設定部１１０と、移動制御部１１２（ずらし角演算部、第１の力ベクトル演算部、第２の力ベクトル演算部、第３の力ベクトル演算部、第４の力ベクトル演算部、合成力ベクトル演算部、更新部）と、動作制御部１１４と、イベント発生部１１５と、状態設定部１１６と、表示制御部１１７と、音生成部１３０と、を含む。なお、これらの一部を省略する構成としてもよい。
【００９５】
情報取得部１０８は、操作部１６０の傾きに応じて変化する情報を検出する検出部１６２の検出結果に基づいて、操作部１６０の傾き情報を取得する。本実施形態では、操作部１６０に内蔵された検出部１６２の検出結果を１／２００秒ごとに取得する。
【００９６】
また情報取得部１０８は、第１の操作部１６０と第２の操作部１６０の各操作部１６０の傾き情報を取得する。
【００９７】
また情報取得部１０８は、操作部１６０の傾き情報を、傾きの方向に応じて符号が異なる情報として取得する。
【００９８】
また情報取得部１０８は、操作部１６０の動きに応じて変化する情報を検出する検出部１６２の検出結果に基づいて、操作部１６０の動き情報を取得する。
【００９９】
また情報取得部１０８は、操作部１６０に内蔵された加速度センサ（検出部）が検出した３軸（Ｘ軸、Ｙ軸、Ｚ軸）方向の加速度ベクトルに基づいて、操作部１６０自体の傾き、動き、速度を取得することができる。
【０１００】
オブジェクト空間設定部１１０は、移動体オブジェクト（移動体ＭＯ）やキャラクタオブジェクト、建物、樹木、柱、壁、マップ（滑走面を示すマップ）などの表示物を表す各種オブジェクト（ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブ面で構成されるオブジェクト）をオブジェクト空間に配置設定する処理を行う。即ち、オブジェクト空間設定部１１０は、ワールド座標系でのオブジェクト（モデルオブジェクト）の位置や回転角度（向き、方向と同義）を決定し、その位置（Ｘ、Ｙ、Ｚ）にその回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）でオブジェクトを配置する。
【０１０１】
移動制御部１１２は、移動体オブジェクトの移動演算（移動シミュレーション）を行う。即ち、この移動制御部１１２は、操作部１６０によりプレーヤが入力した操作データ、設定されたパラメータや属性又はプログラム（移動アルゴリズム）などに基づいて、移動体オブジェクトをオブジェクト空間内で移動させるための処理を行う。
【０１０２】
具体的には、本実施形態の移動制御部１１２は、オブジェクトの移動情報（位置、回転角度、速度、或いは加速度）を、１フレーム（例えば１／６０秒）毎に順次求めるシミュレーション処理を行う。ここでフレームとは、オブジェクトの移動処理（シミュレーション処理）や画像生成処理を行う時間の単位である。そして、本実施形態では、フレームレートは毎フレーム固定としてもよいし、処理負荷に応じて可変としてもよい。
【０１０３】
特に、本実施形態の移動制御部１１２は、移動体の速度ベクトルの大きさと操作部１６０の傾き情報とに基づきずらし角を求め、移動体の速度ベクトルの向きとずらし角とに基づき移動体の滑走面上の向きを求める処理を行い、操作部１６０の傾き情報に基づいて、移動体の滑走面上の向きに対して滑走面上で直交する方向の第１の力ベクトルを求める処理を行い、滑走面の斜度に基づいて、第２の力ベクトルを求める処理を行い、第１の力ベクトルと第２の力ベクトルとを合成した合成力ベクトルを求める処理を行い、合成力ベクトルに基づき移動体の速度ベクトルを更新し、更新した速度ベクトルに基づき移動体の位置を更新する処理を行う。
【０１０４】
また移動制御部１１２は、移動体の速度ベクトルの大きさと操作部１６０の傾き情報とに基づいて、第１の力ベクトルを求める処理を行う。
【０１０５】
また移動制御部１１２は、移動体の速度ベクトルの大きさと各操作部１６０の傾き情報とに基づきずらし角を求める処理を行い、各操作部１６０の傾き情報に基づき第１の力ベクトルを求める処理を行う。
【０１０６】
また移動制御部１１２は、各操作部１６０の傾き情報の符号に基づき第１の力ベクトルを求める処理を行う。
【０１０７】
また移動制御部１１２は、各操作部１６０の傾き情報の符号に基づいて、移動体が受ける空気抵抗を示す第３の力ベクトルを求める処理を行い、第２の力ベクトルと第３の力ベクトルとを合成した合成力ベクトルを求める処理を行う。
【０１０８】
また移動制御部１１２は、各操作部１６０の傾き情報の符号に基づいて、移動体が受ける摩擦力を示す第４の力ベクトルを求める処理を行い、第２の力ベクトルと第４の力ベクトルを合成した合成力ベクトルを求める処理を行う。
【０１０９】
また移動制御部１１２は、操作部１６０の傾き情報の値が所定の閾値に達していない場合には、移動体の速度ベクトルの大きさと操作部１６０の傾き情報とに基づきずらし角を第１の角度範囲内で変化させ、操作部１６０の傾き情報の値が所定の閾値に達した場合には、ずらし角を第１の角度範囲外の所定の角度に変化させる処理を行う。
【０１１０】
また移動制御部１１２は、停止状態において、移動体が位置する滑走面の斜度が所定角度以上であり、且つ移動体の滑走面上の向きが第２の角度範囲内である場合には、移動体の滑走面上の向きを第２の角度範囲外の所定の向きに変化させる処理を行う。
【０１１１】
また移動制御部１１２は、滑走面の斜度と操作部１６０の動き情報とに基づいて、第２の力ベクトルを求める処理を行う。
【０１１２】
動作制御部１１４は、移動体オブジェクトの動作演算（動作シミュレーション）を行う。即ち、この動作制御部１１４は、操作部１６０によりプレーヤが入力した操作データ、設定されたパラメータや属性又はプログラム（動作アルゴリズム）や各種データ（モーションデータ）などに基づいて、移動体オブジェクトの動作（モーション、アニメーション）を制御するための処理を行う。具体的には、本実施形態の動作制御部１１４は、オブジェクトの動作情報（各パーツオブジェクトの位置、或いは回転角度）を、１フレーム（例えば１／６０秒）毎に順次求めるシミュレーション処理を行う。
【０１１３】
特に、本実施形態の動作制御部１１４は、操作部１６０の傾き情報の所定時間内における変化に基づき、移動体の動作を制御する。
【０１１４】
また動作制御部１１４は、操作部１６０の動き情報に基づき、移動体が滑走面から離れる方向に移動する動作を制御する。
【０１１５】
イベント発生部１１５は、移動体の位置に基づき、所与のイベントを発生させる。
【０１１６】
状態設定部１１６は、移動体の速度ベクトルの大きさが所定の値以下となった場合に、移動体の状態を、移動体を移動させる滑走状態から移動体を移動させない停止状態に設定する。
【０１１７】
また状態設定部１１６は、停止状態において、仮想カメラ制御部１１８が求めた仮想カメラの向きと、操作部１６０の動き情報とに基づき移動体の状態を滑走状態に設定する。
【０１１８】
また状態設定部１１６は、停止状態において、移動体の滑走面上の向きが第３の角度範囲内である場合に、操作部１６０の動き情報に基づき移動体の状態を滑走状態に設定するようにしてもよい。
【０１１９】
また状態設定部１１６は、イベント発生部１１５によるイベントの発生に基づき、移動体の状態を、移動体を通常バランスで移動させる通常状態から移動体を特殊バランスで移動させる特殊状態に設定する。
【０１２０】
表示制御部１１７は、移動制御部１１２と動作制御部１１４が求めた移動体オブジェクトの位置、向きに基づいて、表示部１９０に移動体オブジェクトを表示させる処理を行う。そしてより詳細には表示制御部１１７は、仮想カメラ制御部１１８と描画部１２０とを含む。
【０１２１】
仮想カメラ制御部１１８は、オブジェクト空間内の所与（任意）の視点から見える画像を生成するための仮想カメラ（視点）の制御処理を行う。具体的には、仮想カメラの位置（Ｘ、Ｙ、Ｚ）又は回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）を制御する処理（視点位置や視線方向を制御する処理）を行う。
【０１２２】
なお本実施形態では、滑走状態において、移動体オブジェクトの位置又は回転の変化に仮想カメラが追従するように、仮想カメラの位置又は回転角度（仮想カメラの向き）を制御する。この場合には、移動制御部１１２で得られた移動体の位置、回転角度又は速度などの情報に基づいて、仮想カメラを制御できる。また停止状態において、操作部１６０からの操作データに基づき仮想カメラの位置又は向きを制御する。或いは、仮想カメラを、予め決められた回転角度で回転させたり、予め決められた移動経路で移動させる制御を行ってもよい。この場合には、仮想カメラの位置（移動経路）又は回転角度を特定するための仮想カメラデータに基づいて仮想カメラを制御する。なお、仮想カメラ（視点）が複数存在する場合には、それぞれの仮想カメラについて上記の制御処理が行われる。
【０１２３】
画像生成部１２０は、処理部１００で行われる種々の処理（ゲーム処理）の結果に基づいて描画処理を行い、これにより画像を生成し、表示部１９０に出力する。いわゆる３次元ゲーム画像を生成する場合には、本実施形態の画像生成部１２０は、まずオブジェクト（モデル）の各頂点の頂点データ（頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等）を含むオブジェクトデータ（モデルデータ）が入力され、入力されたオブジェクトデータに含まれる頂点データに基づいて、頂点処理が行われる。なお、頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理（テッセレーション、曲面分割、ポリゴン分割）を行うようにしてもよい。
【０１２４】
また、頂点処理では、頂点の移動処理や、座標変換（ワールド座標変換、カメラ座標変換）、クリッピング処理、透視変換、あるいは光源処理等のジオメトリ処理が行われ、その処理結果に基づいて、オブジェクトを構成する頂点群について与えられた頂点データを変更（更新、調整）する。そして、頂点処理後の頂点データに基づいてラスタライズ（走査変換）が行われ、ポリゴン（プリミティブ）の面とピクセルとが対応づけられる。そしてラスタライズに続いて、画像を構成するピクセル（表示画面を構成するフラグメント）を描画するピクセル処理（フラグメント処理）が行われる。
【０１２５】
ピクセル処理では、テクスチャの読出し（テクスチャマッピング）、色データの設定／変更、半透明合成、アンチエイリアス等の各種処理を行って、画像を構成するピクセルの最終的な描画色を決定し、透視変換されたオブジェクトの描画色をフレームバッファ１７２（ピクセル単位で画像情報を記憶できるバッファ。ＶＲＡＭ、レンダリングターゲット）に出力（描画）する。すなわち、ピクセル処理では、画像情報（色、法線、輝度、α値等）をピクセル単位で設定あるいは変更するパーピクセル処理を行う。
【０１２６】
これにより、オブジェクト空間内に設定された仮想カメラ（所与の視点）から見える画像が生成される。なお、仮想カメラ（視点）が複数存在する場合には、それぞれの仮想カメラから見える画像を分割画像として１画面に表示できるように画像を生成することができる。
【０１２７】
音生成部１３０は、処理部１００で行われる種々の処理の結果に基づいて音処理を行い、ＢＧＭ、効果音、又は音声などのゲーム音を生成し、音出力部１９２に出力する。
【０１２８】
なお、本実施形態の画像生成システムは、１人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。
【０１２９】
また、複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、１つの端末を用いて生成してもよいし、ネットワーク（伝送ライン、通信回線）などで接続された複数の端末（ゲーム機、携帯電話）を用いて分散処理により生成してもよい。
【０１３０】
４．本実施形態の処理
次に、本実施形態の処理の一例について図１９、図２０のフローチャートを用いて説明する。
【０１３１】
まず、移動体ＭＯの状態が滑走状態であるか否かを判断する（図１９のステップＳ１０）。ステップＳ１０において、滑走状態であると判断した場合には、第１のコントローラ１６と第２のコントローラ１８の各コントローラの加速度センサのＸ軸出力から取得した加速度情報（傾き情報）の符号が同じ符号か否かを判断する（ステップＳ１２）。ステップ１２において、同じ符号であると判断した場合には、各加速度センサのＸ軸出力から取得した加速度情報の平均値（の絶対値）が所定の閾値に達したか否かを判断する（ステップＳ１４）。ステップＳ１４において、所定の閾値に達したと判断した場合には、所定の角度（９０度）のずらし角Ａを求め、求めたずらし角Ａと移動体の速度ベクトルＳの向きとに基づき移動体の滑走面上の向きＤを求める（ステップＳ１６）。
【０１３２】
ステップＳ１４において、所定の閾値に達していないと判断した場合には、移動体の速度ベクトルＳの大きさと取得した各コントローラの加速度センサの加速度情報の平均値に基づきずらし角を求め、求めたずらし角と移動体の速度ベクトルＳの向きとに基づき移動体の向きＤを求める（ステップＳ１８）。ここでステップＳ１２、Ｓ１４において取得した加速度情報の平均値の符号が正である場合には、速度ベクトルＳの向きに対して、移動体の向きＤを右方向にずらすためのずらし角Ａを求め、加速度情報の平均値の符号が負である場合には、速度ベクトルＳの向きに対して、移動体の向きＤを左方向にずらすためのずらし角Ａを求める。
【０１３３】
次に、移動体の速度ベクトルＳの大きさと取得した各コントローラの加速度センサの加速度情報の平均値とに基づき移動体の向きＤに滑走面上で直交する方向の第１の力ベクトルＰ１を求める（ステップＳ２０）。
【０１３４】
ステップ１２において、異なる符号であると判断した場合には、第１のコントローラ１６の加速度センサのＸ軸出力から取得した加速度情報（傾き情報）の符号が正であるか否かを判断する（ステップＳ２２）。ステップＳ２２において、当該符号が正であると判断した場合には、移動体ＭＯがうける空気抵抗を示す第３の力ベクトルＰ３の減少量を求める（ステップＳ２４）。
【０１３５】
ステップＳ２２において、当該符号が負であると判断した場合には、移動体ＭＯが受ける摩擦力を示す第４の力ベクトルＰ４の増加量を求める（ステップＳ２６）。
【０１３６】
次に、滑走面の斜度ＳＡに基づいて第２の力ベクトルＰ２を求める（ステップＳ２８）。ここで各コントローラの加速度センサのＺ軸出力から正の符号つきの加速度情報の値を取得し、且つ取得した加速度情報の平均値が所定の閾値を超えたと判断した場合に、滑走面の斜度ＳＡとＺ軸出力から取得した各コントローラの加速度センサの加速度情報の平均値とに基づいて第２の力ベクトルＰ２を求めるようにしてもよい。
【０１３７】
次に、第３の力ベクトルＰ３と第４の力ベクトルＰ４を求める（ステップＳ２９）。ここで移動体ＭＯが受ける空気抵抗を示す第３の力ベクトルＰ３の大きさは、移動体ＭＯの種類等のパラメータに応じて求められるが、ステップＳ２４において第３の力ベクトルＰ３の減少量を求めた場合には、この減少量に基づき求めた第３の力ベクトルＰ３の大きさを減少させる制御を行う。また移動体ＭＯが受ける摩擦力を示す第４の力ベクトルＰ４の大きさは、スキー板の種類、雪面の状況等のパラメータに応じて求められるが、ステップＳ２６において第４の力ベクトルＰ４の増加量を求めた場合には、この増加量に基づき求めた第４の力ベクトルＰ４の大きさを増加させる制御を行う。
【０１３８】
次に、求めた力ベクトルを合成した合成力ベクトルＰＳを求める（ステップＳ３０）。ここでステップＳ２０において第１の力ベクトルＰ１を求めた場合には、第１の力ベクトルＰ１と第２の力ベクトルＰ２と第３の力ベクトルＰ３及び第４の力ベクトルＰ４とを合成して合成力ベクトルＰＳを求め、ステップＳ２４において第３の力ベクトルＰ３を求めた場合及びステップＳ２６において第４の力ベクトルＰ４を求めた場合には、第２の力ベクトルＰ２と第３の力ベクトルＰ３及び第４の力ベクトルＰ４とを合成して合成力ベクトルＰＳを求める。
【０１３９】
次に、求めた合成力ベクトルＰＳと移動体の速度ベクトルＳとに基づき速度ベクトルＳを更新し、更新した速度ベクトルＳに基づき移動体ＭＯの位置を更新する（ステップＳ３２）。
【０１４０】
次に、更新した移動体の速度ベクトルＳの大きさが所定の値以下になったか否かを判断する（ステップＳ３４）。ステップＳ３４において、所定の値以下になったと判断した場合には、移動体ＭＯの状態を停止状態に設定する（ステップＳ３６）。ステップＳ３４において、所定の値以下になっていないと判断した場合には、そのままステップＳ５０に進む。
【０１４１】
ステップＳ１０において、滑走状態でないと判断した場合（停止状態であると判断した場合）には、移動体ＭＯが位置する滑走面の斜度ＳＡが所定の角度以上であるか否かを判断する（図２０のステップＳ３８）。ステップＳ３８において、所定の角度以上であると判断した場合には、移動体の滑走面上の向きＤが第２の角度範囲Ａ２内であるか否かを判断する（ステップＳ４０）。ステップＳ４０において、第２の角度範囲Ａ２内であると判断した場合には、移動体の滑走面上の向きＤを所定の向きに変化させる（ステップＳ４２）。
【０１４２】
次に、各コントローラの加速度センサのＺ軸出力から正の符号つきの加速度情報の値を取得し、且つ取得した加速度情報の平均値が所定の閾値を超えたか否かを判断する（ステップＳ４４）。ステップＳ４４において、所定の閾値を越えたと判断した場合には、仮想カメラの向きＣＤが第３の角度範囲Ａ３内であるか否かを判断する（ステップＳ４６）。ステップＳ４６において、第３の角度範囲Ａ３内であると判断した場合には、移動体ＭＯの状態を滑走状態に設定する（ステップＳ４８）。
【０１４３】
次に、更新した移動体ＭＯの位置、向きに基づき描画処理を行い、画像を生成する（図１９のステップＳ５０）。
【０１４４】
次に、処理を続けるか否かを判断し（ステップＳ５２）、続けるのであればステップＳ１０に戻り、ステップＳ１０以下の処理を１／６０秒ごとに繰り返す。
【０１４５】
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。例えば、明細書又は図面中の記載において広義や同義な用語として引用された用語は、明細書又は図面中の他の記載においても広義や同義な用語に置き換えることができる。
【０１４６】
また本実施形態では、プレーヤが把持する第１のコントローラ１６と第２のコントローラ１８の各コントローラの傾きを示す傾き情報に基づいてずらし角Ａと第１の力ベクトルＰ１とを求める場合について説明したが、第３のコントローラ上のプレーヤの重心移動（体重移動）に応じて変化する情報を検出する検出部の検出結果に基づいて第３のコントローラ上のプレーヤの重心移動を示す重心移動情報を取得して、当該重心移動情報に基づき第１の力ベクトルＰ１を求め、第１、第２のコントローラの傾き情報に基づきずらし角Ａを求めるようにしてもよい。また第３のコントローラ上のプレーヤの重心移動を示す重心移動情報に基づきずらし角Ａを求め、第１、第２のコントローラの傾き情報に基づき第１の力ベクトルＰ１を求めるようにしてもよい。
【０１４７】
また本発明は、業務用ゲームシステム、家庭用ゲームシステム、携帯型ゲームシステム、ゲーム画像を生成するシステムボード等の種々のゲームシステムに適用できる。
【図面の簡単な説明】
【０１４８】
【図１】本実施形態のゲームシステムの概略外観の一例を示す図。
【図２】本実施形態の手法の説明図。
【図３】本実施形態の手法の説明図。
【図４】本実施形態の手法の説明図。
【図５】本実施形態の手法の説明図。
【図６】本実施形態の手法の説明図。
【図７】本実施形態の手法の説明図。
【図８】本実施形態の手法の説明図。
【図９】本実施形態の手法の説明図。
【図１０】本実施形態の手法の説明図。
【図１１】本実施形態の手法の説明図。
【図１２】本実施形態の手法の説明図。
【図１３】本実施形態の手法の説明図。
【図１４】本実施形態の手法の説明図。
【図１５】本実施形態の手法の説明図。
【図１６】本実施形態の手法の説明図。
【図１７】本実施形態の手法の説明図。
【図１８】本実施形態の機能ブロックの一例を示す図。
【図１９】本実施形態の処理の一例を示すフローチャート図。
【図２０】本実施形態の処理の一例を示すフローチャート図。
【図２１】本実施形態の手法の説明図。
【符号の説明】
【０１４９】
１６  第１のコントローラ
１８  第２のコントローラ
１００  処理部
１０８  情報取得部
１１０  オブジェクト空間設定部
１１２  移動制御部（ずらし角演算部、第１の力ベクトル演算部、第２の力ベクトル演算部、第３の力ベクトル演算部、第４の力ベクトル演算部、合成力ベクトル演算部、更新部）
１１４  動作制御部
１１５  イベント発生部
１１６  状態設定部
１１７  表示制御部
１１８  仮想カメラ制御部
１２０  画像生成部
１３０  音生成部
１６０  操作部
１６２  検出部
１７０  記憶部
１８０  情報記憶媒体
１９０  表示部
１９２  音出力部
１９４  携帯型情報記憶装置
１９６  通信部
【図１】
0005265159.tif 000002
【図２】
0005265159.tif 000003
【図３】
0005265159.tif 000004
【図４】
0005265159.tif 000005
【図５】
0005265159.tif 000006
【図６】
0005265159.tif 000007
【図７】
0005265159.tif 000008
【図８】
0005265159.tif 000009
【図９】
0005265159.tif 000010
【図１０】
0005265159.tif 000011
【図１１】
0005265159.tif 000012
【図１２】
0005265159.tif 000013
【図１３】
0005265159.tif 000014
【図１４】
0005265159.tif 000015
【図１５】
0005265159.tif 000016
【図１６】
0005265159.tif 000017
【図１７】
0005265159.tif 000018
【図１８】
0005265159.tif 000019
【図１９】
0005265159.tif 000020
【図２０】
0005265159.tif 000021
【図２１】
0005265159.tif 000022