(57)【要約】【課題】仮想空間内に配置されるオブジェクトの位置や姿勢をスムーズな動きで制御する。【解決手段】測定部３０２はゲーム装置３００に接続されるコントローラの位置と姿勢を測定する。更新部３０３は測定部３０２により測定されたコントローラの位置と姿勢に基づいて、仮想空間内の姿勢制御の対象となる目的オブジェクトの周囲に囲みオブジェクトを配置する。更新部３０３は目的オブジェクトの基準位置・基準姿勢に近づけようとする牽引力と、目的オブジェクトの速度と反対方向の減衰力とに基づいて目的オブジェクトの位置と姿勢を変化させる。更新部３０３は囲みオブジェクトに対する目的オブジェクトの位置と姿勢のずれの大きさに比例して牽引力を大きくし、目的オブジェクトの速度に比例して減衰力を大きくさせる。更新部３０３は目的オブジェクトの位置、姿勢、速度、加速度を求めて記憶部３０１に記憶させる。【選択図】図３
2008113825.tif 000002
【特許請求の範囲】
【請求項１】
仮想空間内に配置される目的オブジェクトの姿勢を制御するゲーム装置であって、
（ａ）当該目的オブジェクトの姿勢、角速度、
（ｂ）当該目的オブジェクトの周囲に設定する囲みオブジェクトの姿勢、
（ｃ）当該囲みオブジェクトに対する当該目的オブジェクトの基準姿勢、
のそれぞれを記憶する記憶部と、
当該囲みオブジェクトの姿勢の変化を測定する測定部と、
当該測定された当該囲みオブジェクトの姿勢の変化に応じて、
（ｘ）当該囲みオブジェクトに対する当該目的オブジェクトの姿勢を、当該基準姿勢に近づけようとする牽引力、
（ｙ）当該目的オブジェクトの角速度と反対の向きの減衰力、
に基づいて当該目的オブジェクトの姿勢を求めて前記記憶部を更新する更新部と、
を備えることを特徴とするゲーム装置。
【請求項２】
仮想空間内に配置される目的オブジェクトの位置と姿勢を、ユーザが把持するコントローラの位置と姿勢に基づいて制御するゲームを行うゲーム装置であって、
（ａ）当該目的オブジェクトの位置、姿勢、速度、角速度、質量、
（ｂ）当該目的オブジェクトの周囲に設定する囲みオブジェクトの位置と姿勢、
（ｃ）当該囲みオブジェクトに対する当該目的オブジェクトの基準位置と基準姿勢、
のそれぞれを記憶する記憶部と、
当該コントローラの位置と姿勢を測定する測定部と、
当該測定されたコントローラの位置と姿勢の変化に応じて、当該囲みオブジェクトの位置と姿勢を求め、更に、
（ｘ）当該囲みオブジェクトに対する当該目的オブジェクトの位置と姿勢を、当該基準位置と当該基準姿勢に近づけようとする牽引力、
（ｙ）当該目的オブジェクトの速度又は角速度と反対の向きの減衰力、
に基づいて当該目的オブジェクトの位置と姿勢を求めて前記記憶部を更新する更新部と、
を備えることを特徴とするゲーム装置。
【請求項３】
請求項２に記載のゲーム装置であって、
前記更新部は、当該測定されたコントローラの位置の変化量を所定倍率だけ乗じた量だけ当該囲みオブジェクトの位置を変化させ、当該測定されたコントローラの姿勢の変化量だけ当該囲みオブジェクトの姿勢を変化させて、当該囲みオブジェクトの位置と姿勢を求める
ことを特徴とするゲーム装置。
【請求項４】
請求項１又は２に記載のゲーム装置であって、
前記更新部は、当該囲みオブジェクトに対する当該目的オブジェクトの位置と姿勢のずれの大きさに比例して大きくなる当該牽引力に基づいて、当該目的オブジェクトの位置と姿勢を求める
ことを特徴とするゲーム装置。
【請求項５】
請求項１又は２に記載のゲーム装置であって、
前記更新部は、当該目的オブジェクトの速度又は角速度に比例して大きくなる当該減衰力に基づいて、当該目的オブジェクトの位置と姿勢を求める
ことを特徴とするゲーム装置。
【請求項６】
請求項１に記載のゲーム装置であって、
前記記憶部は、当該目的オブジェクトの質量をさらに記憶し、
前記更新部は、さらに、当該目的オブジェクトの速度又は角速度と逆向きで、当該目的オブジェクトの質量に比例して大きくなる摩擦力に基づいて、当該目的オブジェクトの位置と姿勢を求める
ことを特徴とするゲーム装置。
【請求項７】
請求項２乃至５のいずれか１項に記載のゲーム装置であって、
前記更新部は、さらに、当該目的オブジェクトの速度又は角速度と逆向きで、当該目的オブジェクトの質量に比例して大きくなる摩擦力に基づいて、当該目的オブジェクトの位置と姿勢を求める
ことを特徴とするゲーム装置。
【請求項８】
請求項１乃至７のいずれか１項に記載のゲーム装置であって、
前記更新部は、当該目的オブジェクトの種類に応じて大きさと向きが変わる当該牽引力に基づいて、当該囲みオブジェクトの位置と姿勢を求める
ことを特徴とするゲーム装置。
【請求項９】
請求項１乃至７のいずれか１項に記載のゲーム装置であって、
前記更新部は、当該ゲーム装置が行うゲームの進行状況と、当該ゲームのプレイヤーに関する情報とのいずれか１つ又は両方に応じて大きさと向きが変わる当該牽引力に基づいて、当該囲みオブジェクトの位置と姿勢を求める
ことを特徴とするゲーム装置。
【請求項１０】
請求項１乃至９いずれか１項に記載のゲーム装置であって、
当該囲みオブジェクトは、当該ゲーム装置が行うゲームに表示されない非表示オブジェクトである
ことを特徴とするゲーム装置。
【請求項１１】
記憶部、測定部、更新部を有し、仮想空間内に配置される目的オブジェクトの姿勢を制御するゲーム装置にて実行されるゲーム処理方法であって、
前記記憶部は、
（ａ）当該目的オブジェクトの姿勢、角速度、
（ｂ）当該目的オブジェクトの周囲に設定する囲みオブジェクトの姿勢、
（ｃ）当該囲みオブジェクトに対する当該目的オブジェクトの基準姿勢、
のそれぞれを記憶し、
前記測定部が、当該囲みオブジェクトの姿勢の変化を測定する測定ステップと、
前記更新部が、当該測定された当該囲みオブジェクトの姿勢の変化に応じて、
（ｘ）当該囲みオブジェクトに対する当該目的オブジェクトの姿勢を、当該基準姿勢に近づけようとする牽引力、
（ｙ）当該目的オブジェクトの角速度と反対の向きの減衰力、
に基づいて当該目的オブジェクトの姿勢を求めて前記記憶部を更新する更新ステップと、
を備えることを特徴とするゲーム処理方法。
【請求項１２】
記憶部、測定部、更新部を有し、仮想空間内に配置される目的オブジェクトの位置と姿勢を、ユーザが把持するコントローラの位置と姿勢に基づいて制御するゲームを行うゲーム装置にて実行されるゲーム処理方法であって、
前記記憶部は、
（ａ）当該目的オブジェクトの位置、姿勢、速度、角速度、質量、
（ｂ）当該目的オブジェクトの周囲に設定する囲みオブジェクトの位置と姿勢、
（ｃ）当該囲みオブジェクトに対する当該目的オブジェクトの基準位置と基準姿勢、
のそれぞれを記憶し、
前記測定部が、当該コントローラの位置と姿勢を測定する測定ステップと、
前記更新部が、当該測定されたコントローラの位置と姿勢の変化に応じて、当該囲みオブジェクトの位置と姿勢を求め、更に、
（ｘ）当該囲みオブジェクトに対する当該目的オブジェクトの位置と姿勢を、当該基準位置と当該基準姿勢に近づけようとする牽引力、
（ｙ）当該目的オブジェクトの速度又は角速度と反対の向きの減衰力、
に基づいて当該目的オブジェクトの位置と姿勢を求めて前記記憶部を更新する更新ステップと、
を備えることを特徴とするゲーム処理方法。
【請求項１３】
仮想空間内に配置される目的オブジェクトの姿勢を制御するコンピュータを、
（ａ）当該目的オブジェクトの姿勢、角速度、
（ｂ）当該目的オブジェクトの周囲に設定する囲みオブジェクトの姿勢、
（ｃ）当該囲みオブジェクトに対する当該目的オブジェクトの基準姿勢、
のそれぞれを記憶する記憶部、
当該囲みオブジェクトの姿勢の変化を測定する測定部、
当該測定された当該囲みオブジェクトの姿勢の変化に応じて、
（ｘ）当該囲みオブジェクトに対する当該目的オブジェクトの姿勢を、当該基準姿勢に近づけようとする牽引力、
（ｙ）当該目的オブジェクトの角速度と反対の向きの減衰力、
に基づいて当該目的オブジェクトの姿勢を求めて前記記憶部を更新する更新部、
として機能させることを特徴とするプログラム。
【請求項１４】
仮想空間内に配置される目的オブジェクトの位置と姿勢を、ユーザが把持するコントローラの位置と姿勢に基づいて制御するゲームを行うコンピュータを、
（ａ）当該目的オブジェクトの位置、姿勢、速度、角速度、質量、
（ｂ）当該目的オブジェクトの周囲に設定する囲みオブジェクトの位置と姿勢、
（ｃ）当該囲みオブジェクトに対する当該目的オブジェクトの基準位置と基準姿勢、
のそれぞれを記憶する記憶部、
当該コントローラの位置と姿勢を測定する測定部、
当該測定されたコントローラの位置と姿勢の変化に応じて、当該囲みオブジェクトの位置と姿勢を求め、更に、
（ｘ）当該囲みオブジェクトに対する当該目的オブジェクトの位置と姿勢を、当該基準位置と当該基準姿勢に近づけようとする牽引力、
（ｙ）当該目的オブジェクトの速度又は角速度と反対の向きの減衰力、
に基づいて当該目的オブジェクトの位置と姿勢を求めて前記記憶部を更新する更新部、
として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想空間内に配置されるオブジェクトの位置や姿勢をスムーズな動きで制御するために好適なゲーム装置、ゲーム処理方法、ならびに、プログラムに関する。
【背景技術】
【０００２】
三次元仮想空間内における多くのゲームでは、仮想空間内に存在するキャラクタオブジェクト（以下、単に「オブジェクト」と呼ぶ）を移動させる場合、仮想的な重力等の引力、反発力、摩擦力などを考慮してオブジェクトの姿勢制御を行うことがある。例えば、特許文献１に開示されるように、ユーザが手にはめて動作指示できるグローブ型コントローラが一般に知られているが、このグローブ型コントローラは、手や指の動きをセンサーで読み取ることによってユーザからの動作指示を取得し、操作対象のオブジェクトの位置や姿勢の制御を行うことができる。このような姿勢制御は、グローブ型コントローラを用いるものに限らず、様々なオブジェクトの自由運動、落下運動等を表現する際に行われる。
【特許文献１】特開２００２−１５３６７３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかし、上述のグローブ型コントローラのように、従来のゲーム装置では、コントローラの位置や姿勢を測定し、この測定結果により仮想空間内でのオブジェクトの移動や姿勢制御ができるものの、ユーザによる細かな動きや手ぶれなどによって必ずしも意図通りに操作できなかったり過敏に動いてしまったりすることがあり、スムーズなオブジェクトの姿勢制御に支障を来すことがあった。
【０００４】
また、ゲーム内容やシーンによって、オブジェクトの位置や姿勢をゆっくり変化させる必要のある場面もあれば急に変化させる必要のある場面もあるが、従来技術では、コントローラによらず仮想空間内のオブジェクトの位置や姿勢を変化させる際においても、これらの変化の度合いに応じたスムーズな（滑らかな）動きで変化させることは難しかった。
【０００５】
本発明はこのような課題を解決するものであり、仮想空間内に配置されるオブジェクトの位置や姿勢をスムーズな動きで制御するために好適なゲーム装置、ゲーム処理方法、ならびに、プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
以上の目的を達成するため、本発明の原理にしたがって、下記の発明を開示する。
【０００７】
本発明の第１の観点に係るゲーム装置は、仮想空間内に配置される目的オブジェクトの姿勢を制御するゲーム装置であって、記憶部、測定部、更新部を備える。
記憶部は、（ａ）当該目的オブジェクトの姿勢、角速度、（ｂ）当該目的オブジェクトの周囲に設定する囲みオブジェクトの姿勢、（ｃ）当該囲みオブジェクトに対する当該目的オブジェクトの基準姿勢、のそれぞれを記憶する。
測定部は、当該囲みオブジェクトの姿勢の変化を測定する。
更新部は、当該測定された当該囲みオブジェクトの姿勢の変化に応じて、（ｘ）当該囲みオブジェクトに対する当該目的オブジェクトの姿勢を、当該基準姿勢に近づけようとする牽引力、（ｙ）当該目的オブジェクトの角速度と反対の向きの減衰力、に基づいて当該目的オブジェクトの姿勢を求めて記憶部を更新する。
この結果、ゲーム装置は、仮想空間内のキャラクタオブジェクトに仮想的な力が作用するのに応じて、キャラクタオブジェクトの位置や姿勢をスムーズな動きで制御することができる。
【０００８】
本発明のその他の観点に係るゲーム装置は、仮想空間内に配置される目的オブジェクトの位置と姿勢を、ユーザが把持するコントローラの位置と姿勢に基づいて制御するゲームを行うゲーム装置であって、記憶部、測定部、更新部を備える。
記憶部は、（ａ）当該目的オブジェクトの位置、姿勢、速度、角速度、質量、（ｂ）当該目的オブジェクトの周囲に設定する囲みオブジェクトの位置と姿勢、（ｃ）当該囲みオブジェクトに対する当該目的オブジェクトの基準位置と基準姿勢、のそれぞれを記憶する。
測定部は、当該コントローラの位置と姿勢を測定する。
更新部は、当該測定されたコントローラの位置と姿勢の変化に応じて、当該囲みオブジェクトの位置と姿勢を求め、更に、（ｘ）当該囲みオブジェクトに対する当該目的オブジェクトの位置と姿勢を、当該基準位置と当該基準姿勢に近づけようとする牽引力、（ｙ）当該目的オブジェクトの速度又は角速度と反対の向きの減衰力、に基づいて当該目的オブジェクトの位置と姿勢を求めて前記記憶部を更新する。
この結果、ゲーム装置は、ユーザがコントローラの位置を変えたり姿勢を変えたりするのに応じて、ゲーム内のキャラクタオブジェクトの位置や姿勢をスムーズな動きで制御することができる。
【０００９】
更新部は、当該測定されたコントローラの位置の変化量を所定倍率だけ乗じた量だけ当該囲みオブジェクトの位置を変化させ、当該測定されたコントローラの姿勢の変化量だけ当該囲みオブジェクトの姿勢を変化させて、当該囲みオブジェクトの位置と姿勢を求めてもよい。
この結果、ゲーム装置は、現実空間におけるコントローラの位置の変化量に予め対応づけられた量だけ、仮想空間におけるキャラクタオブジェクトの位置を変化させる。また、現実空間におけるコントローラの姿勢の変化量と同じ量だけ、仮想空間におけるキャラクタオブジェクトの姿勢を変化させる。ゲーム装置はコントローラの動きに合わせてスムーズにキャラクタオブジェクトの位置や姿勢を制御することができる。
【００１０】
更新部は、当該囲みオブジェクトに対する当該目的オブジェクトの位置と姿勢のずれの大きさに比例して大きくなる当該牽引力に基づいて、当該目的オブジェクトの位置と姿勢を求めてもよい。
ことを特徴とするゲーム装置。
この結果、ゲーム装置は、プレイヤーが操作するコントローラの、元の位置や姿勢からのずれが大きければ大きいほど、制御対象のキャラクタオブジェクトを元の位置や姿勢により強く戻そうとする。ゲーム装置は、キャラクタオブジェクトの位置や姿勢をスムーズな動きで制御できる。
【００１１】
更新部は、当該目的オブジェクトの速度又は角速度に比例して大きくなる当該減衰力に基づいて、当該目的オブジェクトの位置と姿勢を求めてもよい。
ことを特徴とするゲーム装置。
この結果、ゲーム装置は、プレイヤーが操作するコントローラの速度又は角速度が大きければ大きいほど、制御対象のキャラクタオブジェクトの位置や姿勢の変化の度合いを大きくする。ゲーム装置は、キャラクタオブジェクトの位置や姿勢をスムーズな動きで制御できる。
【００１２】
記憶部は、当該目的オブジェクトの質量をさらに記憶してもよい。
更新部は、さらに、当該目的オブジェクトの速度又は角速度と逆向きで、当該目的オブジェクトの質量に比例して大きくなる摩擦力に基づいて、当該目的オブジェクトの位置と姿勢を求めてもよい。
この結果、ゲーム装置は、振幅がだんだんと小さくなるような振動をさせながら、キャラクタオブジェクトの位置や姿勢を制御できる。ゲーム装置は、キャラクタオブジェクトの位置や姿勢の制御に、より現実感を与えることができる。
【００１３】
更新部は、当該目的オブジェクトの種類に応じて大きさと向きが変わる当該牽引力に基づいて、当該囲みオブジェクトの位置と姿勢を求めてもよい。
この結果、ゲーム装置は、キャラクタオブジェクトによって、位置や姿勢の制御の仕方を使い分けることができる。
【００１４】
更新部は、当該ゲーム装置が行うゲームの進行状況と、当該ゲームのプレイヤーに関する情報とのいずれか１つ又は両方に応じて大きさと向きが変わる当該牽引力に基づいて、当該囲みオブジェクトの位置と姿勢を求めてもよい。
この結果、ゲーム装置は、例えば経過時間、残り時間、ゲーム中に発生するイベント、シーン、ゲームで獲得したアイテム等といったゲームの進行状況や、例えばクリアしたステージ数、獲得スコア、累積ゲーム時間、上達度等といったプレイヤーに関する情報によって、キャラクタオブジェクトの位置や姿勢の制御の仕方を使い分けることができる。
【００１５】
当該囲みオブジェクトは、当該ゲーム装置が行うゲームに表示されない非表示オブジェクトにすることができる。
この結果、ゲーム装置は、位置や姿勢を変化させたキャラクタオブジェクトをユーザに違和感なく見せることができる。
【００１６】
本発明のその他の観点に係るゲーム処理方法は、記憶部、測定部、更新部を有し、仮想空間内に配置される目的オブジェクトの姿勢を制御するゲーム装置であって、測定ステップ、更新ステップを備える。
記憶部は、（ａ）当該目的オブジェクトの姿勢、角速度、（ｂ）当該目的オブジェクトの周囲に設定する囲みオブジェクトの姿勢、（ｃ）当該囲みオブジェクトに対する当該目的オブジェクトの基準姿勢、のそれぞれを記憶する。
測定ステップは、測定部が、当該囲みオブジェクトの姿勢の変化を測定する。
更新ステップは、更新部が、当該測定された当該囲みオブジェクトの姿勢の変化に応じて、（ｘ）当該囲みオブジェクトに対する当該目的オブジェクトの姿勢を、当該基準姿勢に近づけようとする牽引力、（ｙ）当該目的オブジェクトの角速度と反対の向きの減衰力、に基づいて当該目的オブジェクトの姿勢を求めて前記記憶部を更新する。
この結果、このゲーム処理方法を用いたゲーム装置は、仮想空間内のキャラクタオブジェクトに仮想的な力が作用するのに応じて、キャラクタオブジェクトの位置や姿勢をスムーズな動きで制御することができる。
【００１７】
本発明のその他の観点に係るゲーム処理方法は、記憶部、測定部、更新部を有し、仮想空間内に配置される目的オブジェクトの位置と姿勢を、ユーザが把持するコントローラの位置と姿勢に基づいて制御するゲームを行うゲーム装置にて実行されるゲーム処理方法であって、測定ステップ、更新ステップを備える。
記憶部は、（ａ）当該目的オブジェクトの位置、姿勢、速度、角速度、質量、（ｂ）当該目的オブジェクトの周囲に設定する囲みオブジェクトの位置と姿勢、（ｃ）当該囲みオブジェクトに対する当該目的オブジェクトの基準位置と基準姿勢、のそれぞれを記憶する。
測定ステップは、測定部が、当該コントローラの位置と姿勢を測定する。
更新ステップは、更新部が、当該測定されたコントローラの位置と姿勢の変化に応じて、当該囲みオブジェクトの位置と姿勢を求め、更に、（ｘ）当該囲みオブジェクトに対する当該目的オブジェクトの位置と姿勢を、当該基準位置と当該基準姿勢に近づけようとする牽引力、（ｙ）当該目的オブジェクトの速度又は角速度と反対の向きの減衰力、に基づいて当該目的オブジェクトの位置と姿勢を求めて前記記憶部を更新する。
この結果、このゲーム処理方法を用いたゲーム装置は、ユーザがコントローラの位置を変えたり姿勢を変えたりするのに応じて、ゲーム内のキャラクタオブジェクトの位置や姿勢をスムーズな動きで制御することができる。
【００１８】
本発明のその他の観点に係るプログラムは、仮想空間内に配置される目的オブジェクトの姿勢を制御するコンピュータを、記憶部、測定部、更新部として機能させる。
記憶部は、（ａ）当該目的オブジェクトの姿勢、角速度、（ｂ）当該目的オブジェクトの周囲に設定する囲みオブジェクトの姿勢、（ｃ）当該囲みオブジェクトに対する当該目的オブジェクトの基準姿勢、のそれぞれを記憶する。
測定部は、当該囲みオブジェクトの姿勢の変化を測定する。
更新部は、当該測定された当該囲みオブジェクトの姿勢の変化に応じて、（ｘ）当該囲みオブジェクトに対する当該目的オブジェクトの姿勢を、当該基準姿勢に近づけようとする牽引力、（ｙ）当該目的オブジェクトの角速度と反対の向きの減衰力、に基づいて当該目的オブジェクトの姿勢を求めて前記記憶部を更新する。
この結果、このプログラムを実行するコンピュータは、仮想空間内のキャラクタオブジェクトに仮想的な力が作用するのに応じて、キャラクタオブジェクトの位置や姿勢をスムーズな動きで制御することができる装置として機能する。
【００１９】
本発明のその他の観点に係るプログラムは、仮想空間内に配置される目的オブジェクトの位置と姿勢を、ユーザが把持するコントローラの位置と姿勢に基づいて制御するゲームを行うコンピュータを、記憶部、測定部、更新部として機能させる。
記憶部は、（ａ）当該目的オブジェクトの位置、姿勢、速度、角速度、質量、（ｂ）当該目的オブジェクトの周囲に設定する囲みオブジェクトの位置と姿勢、（ｃ）当該囲みオブジェクトに対する当該目的オブジェクトの基準位置と基準姿勢、のそれぞれを記憶する。
測定部は、当該コントローラの位置と姿勢を測定する。
更新部は、当該測定されたコントローラの位置と姿勢の変化に応じて、当該囲みオブジェクトの位置と姿勢を求め、更に、（ｘ）当該囲みオブジェクトに対する当該目的オブジェクトの位置と姿勢を、当該基準位置と当該基準姿勢に近づけようとする牽引力、（ｙ）当該目的オブジェクトの速度又は角速度と反対の向きの減衰力、に基づいて当該目的オブジェクトの位置と姿勢を求めて前記記憶部を更新する。
この結果、このプログラムを実行するコンピュータは、ユーザがコントローラの位置を変えたり姿勢を変えたりするのに応じて、ゲーム内のキャラクタオブジェクトの位置や姿勢をスムーズな動きで制御することができる装置として機能する。
【００２０】
また、本発明のプログラムは、コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、半導体メモリ等のコンピュータ読取可能な情報記憶媒体に記録することができる。
上記プログラムは、プログラムが実行されるコンピュータとは独立して、コンピュータ通信網を介して配布・販売することができる。また、上記情報記憶媒体は、コンピュータとは独立して配布・販売することができる。
【発明の効果】
【００２１】
本発明によれば、仮想空間内に配置されるオブジェクトの位置や姿勢をスムーズな動きで制御するために好適なゲーム装置、ゲーム処理方法、ならびに、プログラムを提供することができる。
【発明を実施するための最良の形態】
【００２２】
以下に本発明の実施形態を説明する。以下では、理解を容易にするため、ゲーム用の情報処理装置を利用して本発明が実現される実施形態を説明するが、以下に説明する実施形態は説明のためのものであり、本願発明の範囲を制限するものではない。したがって、当業者であればこれらの各要素もしくは全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。
【００２３】
（実施例１）
図１は、プログラムを実行することにより、本発明の実施形態に係る装置の機能を果たす典型的な情報処理装置の概要構成を示す模式図である。以下本図を参照して説明する。
【００２４】
情報処理装置１００は、ＣＰＵ（Central Processing Unit）１０１と、ＲＯＭ  １０２と、ＲＡＭ（Random Access Memory）１０３と、インターフェイス１０４と、コントローラ１０５と、外部メモリ１０６と、画像処理部１０７と、ＤＶＤ−ＲＯＭ（Digital Versatile Disc ROM）ドライブ１０８と、ＮＩＣ（Network Interface Card）１０９と、音声処理部１１０と、マイク１１１と、を備える。
【００２５】
ゲーム用のプログラムおよびデータを記憶したＤＶＤ−ＲＯＭをＤＶＤ−ＲＯＭドライブ１０８に装着して、情報処理装置１００の電源を投入することにより、当該プログラムが実行され、本実施形態に係る装置が実現される。
【００２６】
ＣＰＵ  １０１は、情報処理装置１００全体の動作を制御し、各構成要素と接続され制御信号やデータをやりとりする。また、ＣＰＵ  １０１は、レジスタ（図示せず）という高速アクセスが可能な記憶域に対してＡＬＵ（Arithmetic Logic Unit）（図示せず）を用いて加減乗除等の算術演算や、論理和、論理積、論理否定等の論理演算、ビット和、ビット積、ビット反転、ビットシフト、ビット回転等のビット演算などを行うことができる。さらに、マルチメディア処理対応のための加減乗除等の飽和演算や、三角関数等、ベクトル演算などを高速に行えるように、ＣＰＵ  １０１自身が構成されているものや、コプロセッサを備えて実現するものがある。
【００２７】
ＲＯＭ  １０２には、電源投入直後に実行されるＩＰＬ（Initial Program Loader）が記録され、これが実行されることにより、ＤＶＤ−ＲＯＭに記録されたプログラムをＲＡＭ  １０３に読み出してＣＰＵ  １０１による実行が開始される。また、ＲＯＭ  １０２には、情報処理装置１００全体の動作制御に必要なオペレーティングシステムのプログラムや各種のデータが記録される。
【００２８】
ＲＡＭ  １０３は、データやプログラムを一時的に記憶するためのもので、ＤＶＤ−ＲＯＭから読み出したプログラムやデータ、その他ゲームの進行やチャット通信に必要なデータが保持される。また、ＣＰＵ  １０１は、ＲＡＭ  １０３に変数領域を設け、当該変数に格納された値に対して直接ＡＬＵを作用させて演算を行ったり、ＲＡＭ  １０３に格納された値を一旦レジスタに格納してからレジスタに対して演算を行い、演算結果をメモリに書き戻す、などの処理を行う。
【００２９】
インターフェイス１０４を介して接続されたコントローラ１０５は、ユーザがゲーム実行の際に行う操作入力を受け付ける。なお、コントローラ１０５の詳細については後述する。
【００３０】
インターフェイス１０４を介して着脱自在に接続された外部メモリ１０６には、ゲーム等のプレイ状況（過去の成績等）を示すデータ、ゲームの進行状態を示すデータ、ネットワーク対戦の場合のチャット通信のログ（記録）のデータなどが書き換え可能に記憶される。ユーザは、コントローラ１０５を介して指示入力を行うことにより、これらのデータを適宜外部メモリ１０６に記録することができる。
【００３１】
ＤＶＤ−ＲＯＭドライブ１０８に装着されるＤＶＤ−ＲＯＭには、ゲームを実現するためのプログラムとゲームに付随する画像データや音声データが記録される。ＣＰＵ  １０１の制御によって、ＤＶＤ−ＲＯＭドライブ１０８は、これに装着されたＤＶＤ−ＲＯＭに対する読み出し処理を行って、必要なプログラムやデータを読み出し、これらはＲＡＭ  １０３等に一時的に記憶される。
【００３２】
画像処理部１０７は、ＤＶＤ−ＲＯＭから読み出されたデータをＣＰＵ  １０１や画像処理部１０７が備える画像演算プロセッサ（図示せず）によって加工処理した後、これを画像処理部１０７が備えるフレームメモリ（図示せず）に記録する。フレームメモリに記録された画像情報は、所定の同期タイミングでビデオ信号に変換され画像処理部１０７に接続されるモニタ（図示せず）へ出力される。これにより、各種の画像表示が可能となる。
【００３３】
画像演算プロセッサは、２次元の画像の重ね合わせ演算やαブレンディング等の透過演算、各種の飽和演算を高速に実行できる。
【００３４】
また、仮想空間が３次元にて構成される場合には、当該３次元空間内に配置され、各種のテクスチャ情報が付加されたポリゴン情報を、Ｚバッファ法によりレンダリングして、所定の視点位置から仮想空間に配置されたポリゴンを所定の視線の方向へ俯瞰したレンダリング画像を得る演算の高速実行も可能である。
【００３５】
さらに、ＣＰＵ  １０１と画像演算プロセッサが協調動作することにより、文字の形状を定義するフォント情報にしたがって、文字列を２次元画像としてフレームメモリへ描画したり、各ポリゴン表面へ描画することが可能である。
【００３６】
ＮＩＣ  １０９は、情報処理装置１００をインターネット等のコンピュータ通信網（図示せず）に接続するためのものであり、ＬＡＮ（Local Area Network）を構成する際に用いられる１０ＢＡＳＥ−Ｔ／１００ＢＡＳＥ−Ｔ規格にしたがうものや、電話回線を用いてインターネットに接続するためのアナログモデム、ＩＳＤＮ（Integrated Services Digital Network）モデム、ＡＤＳＬ（Asymmetric Digital Subscriber Line）モデム、ケーブルテレビジョン回線を用いてインターネットに接続するためのケーブルモデム等と、これらとＣＰＵ  １０１との仲立ちを行うインターフェイス（図示せず）により構成される。
【００３７】
音声処理部１１０は、ＤＶＤ−ＲＯＭから読み出した音声データをアナログ音声信号に変換し、これに接続されたスピーカ（図示せず）から出力させる。また、ＣＰＵ  １０１の制御の下、ゲームの進行の中で発生させるべき効果音や楽曲データを生成し、これに対応した音声をスピーカから出力させる。
【００３８】
音声処理部１１０では、ＤＶＤ−ＲＯＭに記録された音声データがＭＩＤＩデータである場合には、これが有する音源データを参照して、ＭＩＤＩデータをＰＣＭデータに変換する。また、ADPCM形式やOgg Vorbis形式等の圧縮済音声データである場合には、これを展開してＰＣＭデータに変換する。ＰＣＭデータは、そのサンプリング周波数に応じたタイミングでＤ／Ａ（Digital/Analog）変換を行って、スピーカに出力することにより、音声出力が可能となる。
【００３９】
さらに、情報処理装置１００には、インターフェイス１０４を介してマイク１１１を接続することができる。この場合、マイク１１１からのアナログ信号に対しては、適当なサンプリング周波数でＡ／Ｄ変換を行い、ＰＣＭ形式のディジタル信号として、音声処理部１１０でのミキシング等の処理ができるようにする。
【００４０】
このほか、情報処理装置１００は、ハードディスク等の大容量外部記憶装置を用いて、ＲＯＭ  １０２、ＲＡＭ  １０３、外部メモリ１０６、ＤＶＤ−ＲＯＭドライブ１０８に装着されるＤＶＤ−ＲＯＭ等と同じ機能を果たすように構成してもよい。
【００４１】
以上で説明した情報処理装置１００は、いわゆる「コンシューマ向けテレビゲーム装置」に相当するものであるが、仮想空間を表示するような画像処理を行うものであれば本発明を実現することができる。したがって、携帯電話、携帯ゲーム機器、カラオケ装置、一般的なビジネス用コンピュータなど、種々の計算機上で本発明を実現することが可能である。
【００４２】
例えば、一般的なコンピュータは、上記情報処理装置１００と同様に、ＣＰＵ、ＲＡＭ、ＲＯＭ、ＤＶＤ−ＲＯＭドライブ、および、ＮＩＣを備え、情報処理装置１００よりも簡易な機能を備えた画像処理部を備え、外部記憶装置としてハードディスクを有する他、フレキシブルディスク、光磁気ディスク、磁気テープ等が利用できるようになっている。また、コントローラ１０５ではなく、キーボードやマウスなどを入力装置として利用する。
【００４３】
本実施形態では、現実の空間における位置や姿勢などの種々のパラメータが測定できるようなコントローラ１０５を採用する。
【００４４】
図２は、現実の空間における位置や姿勢などの種々のパラメータが測定できるようなコントローラ１０５と情報処理装置１００との外観を示す説明図である。以下、本図を参照して説明する。
【００４５】
コントローラ１０５は、把持モジュール２０１と発光モジュール２５１との組合せからなっており、把持モジュール２０１は無線通信によって情報処理装置１００と通信可能に接続されており、発光モジュール２５１は、有線で情報処理装置１００と通信可能に接続されている。情報処理装置１００の処理結果の音声および画像は、テレビジョン装置２９１によって出力表示される。
【００４６】
把持モジュール２０１は、テレビジョン装置２９１のリモートコントローラと類似した外観をしており、その先端には、ＣＣＤカメラ２０２が配置されている。
【００４７】
一方発光モジュール２５１は、テレビジョン装置２９１の上部に固定されている。発光モジュール２５１の両端には、発光ダイオード２５２が配置されており、情報処理装置１００からの電源供給によって発光する。
【００４８】
把持モジュール２０１のＣＣＤカメラ２０２は、この発光モジュール２５１の様子を撮影する。
【００４９】
撮影された画像の情報は、情報処理装置１００に送信され、情報処理装置１００は、当該撮影された画像内において発光ダイオード２５２が撮影された位置に基づいて、発光モジュール２５１に対する把持モジュール２０１の位置を取得する。
【００５０】
このほか、把持モジュール２０１内には、加速度センサ、角加速度センサ、傾きセンサ等が内蔵されており、把持モジュール２０１そのものの姿勢を測定することが可能となっている。この測定結果も、情報処理装置１００に送信される。
【００５１】
把持モジュール２０１の上面には、十字形キー２０３が配置されており、プレイヤは、十字形キー２０３を押し込み操作することによって、各種の方向指示入力を行うことができる。また、Ａボタン２０４ほか、各種ボタン２０６も上面に配置されており、当該ボタンに対応付けられた指示入力を行うことができる。
【００５２】
一方、Ｂボタン２０５は、把持モジュール２０１の下面に配置されており、把持モジュール２０１の下面に窪みが構成されていることとあいまって、拳銃やマジックハンドにおける引き金を模したものとなっている。典型的には、仮想空間内における拳銃による発砲やマジックハンドによる把持の指示入力は、Ｂボタン２０５を用いて行われる。
【００５３】
また、把持モジュール２０１の上面のインジケータ２０７は、把持モジュール２０１の動作状況や情報処理装置１００との無線通信状況などをプレイヤに提示する。
【００５４】
把持モジュール２０１の上面に用意された電源ボタン２０８は、把持モジュール２０１そのものの動作のオン・オフを行うもので、把持モジュール２０１は内蔵された電池（図示せず）によって動作する。
【００５５】
このほか、把持モジュール２０１内部には、バイブレータ（図示せず）が用意されており、情報処理装置１００からの指示に基づいて、振動の有無や強弱を制御することができるようになっている。
【００５６】
以下では、把持モジュール２０１と発光モジュール２５１との組合せからなるコントローラ１０５を用いて、コントローラ１０５の現実世界における位置や姿勢を測定することを前提に説明する。ただし、上記のような形態によらず、たとえば超音波や赤外線通信、ＧＰＳ（Global Positioning System）等を利用してコントローラ１０５の現実世界における位置や姿勢を測定するとした場合であっても、本発明の範囲に含まれる。
【００５７】
次に、本実施形態のゲーム装置３００が行う処理について説明する。
図３は、本実施形態のゲーム装置３００の構成を説明するための図である。図３に示すように、ゲーム装置３００は、記憶部３０１、測定部３０２、更新部３０３を備える。
図４は、本実施形態において、仮想空間内に配置されるオブジェクトと、そのオブジェクトの位置と姿勢の制御について説明するための図である。
【００５８】
目的オブジェクト４０１は、ゲーム装置３００が姿勢制御を行う対象となるオブジェクトである。仮想空間内に配置されるすべてのオブジェクトが目的オブジェクト４０１となり得る。ゲーム装置３００のＣＰＵ  １０１は、目的オブジェクト４０１の姿勢制御を行うにあたり、目的オブジェクト４０１の周囲に囲みオブジェクト４０２を配置する。本実施形態では、囲みオブジェクト４０２は、ゲーム画面には表示されないオブジェクトである。囲みオブジェクト４０２は、目的オブジェクト４０１から所定距離だけ離れた位置に、目的オブジェクト４０１を囲むようにして配置される。図４に示すように、本実施形態では、囲みオブジェクト４０２の形状は円形をしている。なお、囲みオブジェクト４０２は、ゲーム画面に表示されるオブジェクトであってもよい。
【００５９】
目的オブジェクト４０１と囲みオブジェクト４０２は、仮想的な３つのバネ４０３（図中では４０３Ａ、４０３Ｂ、４０３Ｃと表記する）で接続される。目的オブジェクト４０１と各々の仮想的なバネ４０３とが接続される場所はそれぞれ異なり、典型的には目的オブジェクト４０１の表面上の異なる接続点で繋がっている。これらの仮想的なバネ４０３は、後述する位置・姿勢制御を行うために仮想的に設定されるものであり、ゲーム装置３００に接続されるモニターに映し出される出力画面には含まれない。すなわち、ゲーム装置３００は、仮想的なバネ４０３をモニターに表示しない。仮想的なバネ４０３は、位置・姿勢制御処理を行うために仮想的に設定されるものであり、図示するようなバネの形状をした目視できるオブジェクトが存在するわけではない。伸縮自在なゴムひものようなものでもよい。あるいはバネで接続された場合と等価な力学的な「場」でもよい。
【００６０】
なお、本実施形態では、目的オブジェクト４０１が球状の形であり、囲みオブジェクト４０２が円の形であるが、これらは一例に過ぎず、他の任意の形状にすることもできる。また、仮想的なバネ４０３の個数は３つとしているが、他の任意の個数にすることもできる。ただし、目的オブジェクト４０１の姿勢制御をスムーズに行うためには、３つ以上であることが望ましい。
【００６１】
記憶部３０１は、（ａ）目的オブジェクト４０１の位置、姿勢、速度ｖ、角速度ω、質量ｍ、（ｂ）囲みオブジェクト４０２の位置と姿勢、（ｃ）囲みオブジェクト４０２に対する目的オブジェクト４０１の基準位置と基準姿勢、のそれぞれを示す情報を記憶する。記憶部３０１は、これらの情報をＲＡＭ  １０３内の所定の記憶領域に記憶する。ＣＰＵ  １０１とＲＡＭ  １０３が協働して動作することにより、記憶部３０１として機能する。外部メモリ１０６にこれらの情報を記憶するように構成してもよい。
【００６２】
詳細には、位置は、この仮想空間内に予め定義された空間座標を用いて表される。座標系の決め方は任意であり、例えば、互いに直交する３軸による直交座標系を用いることができるほか、１個の動径と２個の偏角を用いた球座標のような極座標系を用いることもできる。
【００６３】
姿勢は、仮想空間内に目的オブジェクト４０１をどのような体勢で配置するかを示す情報である。図５（ａ）に示すように、姿勢は、例えば、目的オブジェクト４０１ごとに設定される方向ベクトル５０１と、矢印５０３で示す方向の回転運動の角速度ωによって定義される。方向ベクトル５０１の長さは任意であるが、ここでは単位ベクトルとする。方向ベクトル５０１の向きは任意に設定できる。回転の向きを示す矢印５０３は、方向ベクトル５０１の向きに右ネジを回転させて進む方向とする。他の方向に回転したり、同時に複数方向に回転したりしてもよいが、本発明の理解を容易にするため、本実施形態では１方向にのみ回転するものとする。
【００６４】
例えば、目的オブジェクト４０１が人型オブジェクトである場合、人の頭部から足下への向きに姿勢の基準となる方向ベクトル５０１を設定しておく。本図では、地面オブジェクト５０２に向かって垂直に方向ベクトルが設定されており、この状態は人型オブジェクト５０１が地面オブジェクト５０２に垂直に立っている姿勢を表す。目的オブジェクト４０１にゲーム画面を映し出すための視点（仮想カメラや仮想の目など）を設け、この視点からの視線方向を示すベクトルを方向ベクトル５０１として用いてもよい。
【００６５】
この方向ベクトル５０１と角速度ωを用いて、目的オブジェクト４０１の様々な姿勢を表すことができる。例えば図５（ｂ）は、目的オブジェクト４０１が地面オブジェクト５０２に対して約４５度の角度で斜めに、且つ、矢印５０３の向きに回転して配置された姿勢を表す。また、姿勢は、目的オブジェクト４０１に限らず、囲みオブジェクト４０２などの他のオブジェクトについても定義される。位置と姿勢が決まれば、仮想空間内におけるオブジェクトの配置の仕方を決めることができる。なお、目的オブジェクト４０１は、必ずしも回転運動を伴わなくてもよい。また、位置や姿勢によって目的オブジェクト４０１の形状を変えてもよい。例えば図５（ｃ）のように、目的オブジェクト４０１が地面オブジェクト５０２に対して斜めになった姿勢では、人型オブジェクトの手足部分を地面オブジェクト５０２の向きあるいは仮想重力の向きに配置して、より自然に見えるようにしてもよい。
【００６６】
速度ｖは、目的オブジェクト４０１が仮想空間内を移動する速さであり、単位時間あたりの位置の変化量として表される。角速度ωは、目的オブジェクト４０１が回転（自転）するときの回転の速さであり、単位時間あたりの角度の変化量として表される。目的オブジェクト４０１は仮想空間内で移動可能であり、速度ｖと角速度ωを用いて目的オブジェクト４０１の行う運動を表現できる。質量ｍは、目的オブジェクト４０１ごとに予め設定される。仮想空間内には仮想重力が存在する。
【００６７】
目的オブジェクト４０１の基準位置は、目的オブジェクト４０１が移動・回転など何らかの運動をしていない状態における位置である。言い換えれば、仮想的なバネ４０３Ａ乃至４０３Ｃによって力学的なつり合いがとれた状態における位置である。また、目的オブジェクト４０１の基準姿勢は、目的オブジェクト４０１が移動・回転など何らかの運動をしていない状態における姿勢である。言い換えれば、仮想的なバネ４０３Ａ乃至４０３Ｃによって力学的なつり合いがとれた状態における姿勢である。目的オブジェクト４０１は、何らかの力が働いて移動・回転すると、仮想的なバネ４０３によって元の基準位置・基準姿勢に戻ろうとする。
【００６８】
目的オブジェクト４０１には、（ｘ）囲みオブジェクト４０２に対する目的オブジェクト４０１の位置と姿勢とを、仮想的なバネ４０３によって基準位置と基準姿勢とに近づけようとする牽引力６０１と、（ｙ）速度又は角速度と反対方向の減衰力６０２と、が働く。図６（ａ）〜（ｃ）は、仮想的なバネ４０３の１つに注目して牽引力６０１と減衰力６０２を示した図である。牽引力６０１は、すべての仮想的なバネ４０３による弾性力の合計である。なお、仮想的なバネ４０３は１つだけではなく複数個存在するが、本発明をより理解しやすいように本図では他の仮想的なバネ４０３を省略している。囲みオブジェクト４０２は本図ではその一部のみを記載している。また、目的オブジェクト４０１の速度の向きは、仮想的なバネ４０３の軸の向き（本図の左右方向）であるとする。
【００６９】
ここで、目的オブジェクト４０１の位置と姿勢について、詳しく説明する。
まず、目的オブジェクト４０１の位置について図６を用いて説明する。本図は、囲みオブジェクト４０２に対する目的オブジェクト４０１の相対運動を示すものとする。
【００７０】
図６（ａ）は、目的オブジェクト４０１が基準位置にある状態を示す図である。例えば、ユーザによる指示入力がコントローラ１０５に入力されないなど、目的オブジェクト４０１に仮想的なバネ４０３による弾性力以外の外力が加わっていないとき、すべての仮想的なバネ４０３から目的オブジェクト４０１にかかる力はつり合い状態になり、本図のような基準位置・基準姿勢になる。ただし、目的オブジェクト４０１の角速度ωはゼロ、すなわち、回転運動はしていないものとする。
【００７１】
目的オブジェクト４０１が基準位置にあるときに、把持モジュール２０１の位置が変化すると、ＣＰＵ  １０１は把持モジュール２０１の位置の変化量に応じて囲みオブジェクト４０２の位置を変化させる。囲みオブジェクト４０２の変化量の詳細については後述する。囲みオブジェクト４０２の位置が変化すると、仮想的なバネ４０３で繋がれた目的オブジェクト４０１の位置も変化することになる。
【００７２】
例えば、ユーザが現実空間で把持モジュール２０１を移動させて、仮想空間内の目的オブジェクト４０１の位置と姿勢をコントロールさせたいとする。把持モジュール２０１の移動によって、囲みオブジェクト４０２の移動量の矢印Ｙ１方向成分が存在すると、目的オブジェクト４０１には、図６（ｂ）に示すように、仮想的なバネ４０３Ａ乃至４０３Ｃが目的オブジェクト４０１を基準位置に近づけようとする（戻そうとする）牽引力６０１が働く。具体的には、牽引力６０１は、基準位置からの変位に比例した力である。この比例定数は一般にバネ定数と呼ばれ、予め決められた値である。牽引力６０１は、目的オブジェクト４０１の変位の方向を正として次の［式１］で表される。
【００７３】
ＦＡ  ＝  −ｋ・ｘ      ・・・［式１］
ただし、ＦＡは牽引力６０１の大きさ、ｋは予め決められたバネ定数、ｘは基準位置からの変位である。牽引力６０１の大きさは定数ｋと変位ｘとの積で表される。
【００７４】
また、目的オブジェクト４０１には、図６（ｂ）に示すように、矢印Ｙ１方向の速度ｖと反対の向きの減衰力６０２が働く。減衰力６０２は、［式２］のように表される。
【００７５】
ＦＢ  ＝  −ρ・ｖ        ・・・［式２］
ただし、ＦＢは減衰力６０２の大きさ、ρは比例定数、ｖは速度である。減衰力６０２の大きさは比例定数ρと速度ｖとの積で表される。
【００７６】
図６（ｂ）において、さらに矢印Ｙ１方向に目的オブジェクト４０１が移動し続けると、矢印Ｙ１方向に移動できる限界点（図示せず）に達し、一旦静止する。そして、目的オブジェクト４０１は矢印Ｙ２方向に移動し始める。目的オブジェクト４０１が矢印Ｙ２方向に移動するとき、減衰力６０２は矢印Ｙ１方向に働く。やがて、図６（ｃ）に示すように、矢印Ｙ２方向に目的オブジェクト４０１が移動し続けると、矢印Ｙ２方向に移動できる限界点（図示せず）に達し、一旦静止する。そして、目的オブジェクト４０１は再び矢印Ｙ１方向に移動し始める。このように目的オブジェクト４０１は往復運動（振動）する。なお、目的オブジェクト４０１の変位ｘは、仮想的なバネ４０３の矢印Ｙ１方向及び矢印Ｙ２方向の比例限界を超えないものとする。
【００７７】
目的オブジェクト４０１は仮想的なバネ４０３の向きの弾性の往復運動を行う。この運動を示す運動方程式は、他に目的オブジェクト４０１にかかる力が無ければ、［式１］と［式２］を用いて次のように表すことができる。
【００７８】
ｍ・α  ＝  −ｋ・ｘ  −  ρ・ｖ      ・・・［式３］
【００７９】
また、さらに重力や摩擦力などの外力がある場合には、この外力をＦとして次の［式４］のように表される。
【００８０】
ｍ・α  ＝  −ｋ・ｘ  −  ρ・ｖ  ＋  Ｆ      ・・・［式４］
【００８１】
変位ｘの１階時間微分が速度ｖであり、変位ｘの２階時間微分が加速度αである。この微分方程式を解けば、変位ｘは時間ｔの関数として表すことができる。一般に、この微分方程式の解は、振幅が指数関数的に減衰する正弦関数で表される。すなわち、目的オブジェクト４０１の変位ｘの振幅の絶対値が時間の経過と共に減少しながら振動し、目的オブジェクト４０１の位置はだんだんと基準位置に収束していく。
【００８２】
なお、図６（ａ）〜（ｃ）に図示しない他の仮想的なバネ４０３（本実施形態ではあと２つ）による反発力などを無視する近似を行い、仮想的なバネ４０３ごとに上述の計算を行い、それぞれの仮想的なバネ４０３の方向への変位を求め、それらを合成することによって目的オブジェクト４０１の位置を求めてもよい。
【００８３】
目的オブジェクト４０１の速度ｖの向きが、仮想的なバネ４０３の軸の向きと一致しない場合には、速度ｖの軸向きの成分を考慮すればよい。各々の仮想的なバネ４０３はそれぞれ異なったバネ定数などの特性をもっていてもよいが、本実施形態のように同じであることが望ましい。仮想的なバネ４０３は、等間隔に配置されることが望ましい。典型的には、目的オブジェクト４０１の基準位置は、囲みオブジェクト４０２の重心の位置と同じである。
【００８４】
次に、目的オブジェクト４０１の姿勢につい説明する。
目的オブジェクト４０１は、図７（ａ）や図７（ｂ）のように、角速度ωで矢印Ｙ３方向の回転運動をすることもできる。矢印Ｙ３方向に回転運動をするとき、目的オブジェクト４０１には、基準姿勢に近づこうとする（戻ろうとする）牽引力６０１と、回転と反対の向きの減衰力６０２とが働く。
【００８５】
本実施形態では、この牽引力６０１も［式１］で、また、この減衰力６０２も［式２］で近似する。ただし、ｋは比例定数、ｘは矢印Ｙ３方向への角度変位とする。αは角加速度であり、角速度ωの時間微分である。角速度ωは、角度変位の時間微分である。したがって、［式３］または［式４］の微分方程式を解けば、角度変位ｘは時間ｔの関数として表すことができ、目的オブジェクト４０１の回転運動を表す近似式を得ることができる。一方、目的オブジェクト４０１の向きを示す方向ベクトル５０１は、後述する測定部３０２により得られる。そして、得られた方向ベクトル５０１と角度変位ｘ（もしくは角速度ω）によって、目的オブジェクト４０１の姿勢を示す情報を得ることができる。
【００８６】
本実施形態のように、仮想的なバネ４０３が３本以上の場合には、バネ自体のねじれ等による影響を考慮しなくてもよいとする近似を行うことができる。詳細には、現実世界のバネでは、変位ｘの方向以外の他の方向にバネ自体がねじれることもある。このねじれによってバネが変形する影響を考慮して目的オブジェクト４０１の位置や姿勢をより現実世界に則して制御しようとすると、計算量が膨大になり、家庭用ゲーム機や携帯端末のように高性能のハードウェアを搭載することが難しいケースでは適用が困難になることがある。しかし、本実施形態では、このようなバネのねじれがあっても、上述のように牽引力６０１と減衰力６０２とを考慮した弾性の運動として近似することができる。例えば、図４に示す仮想的なバネ４０３Ａを軸方向を中心にねじると、他の仮想的なバネ４０３Ｂと４０３Ｃによりねじれを元に戻す力が働く。この力によって基準姿勢に戻ろうとする運動を、上述の［式１］〜［式４］で近似する。このように、本実施形態によれば、姿勢の制御を容易に行うことができる。
【００８７】
なお、上述の位置と同様に、図７（ａ）や図７（ｂ）に図示しない他の仮想的なバネ４０３による反発力などを無視する近似を行い、仮想的なバネ４０３の軸方向７０１ごとに上述の計算を行い、それぞれの角度変位を求め、それらを合成することによって目的オブジェクト４０１の姿勢を求めてもよい。
【００８８】
図３に戻り、測定部３０２は、現実の空間におけるコントローラ１０５の把持モジュール２０１の位置と姿勢を測定する。測定部３０２は、測定した位置と姿勢を示す情報をＲＡＭ  １０３の所定記憶領域に記憶する。ユーザは、発光モジュール２５１の近くで把持モジュール２０１を握りながら各種ボタン２０６などを押下してゲームをする。把持モジュール２０１は、ユーザによるプレイに応じて現実空間内を上下・左右・前後に移動し、また、回転などによって姿勢が変化することになるが、測定部３０２は把持モジュール２０１の位置と姿勢を、加速度センサ、角加速度センサ、傾きセンサを用いて所定の時間間隔（例えばモニターの垂直同期割り込みの間隔など）で測定する。ＣＰＵ  １０１とコントローラ１０５が協働して動作することにより、測定部３０２として機能する。
【００８９】
更新部３０３は、測定部３０２によって測定された把持モジュール２０１の位置と姿勢の変化に応じて、囲みオブジェクト４０２の位置と姿勢を求める。そして、牽引力６０１と減衰力６０２に基づいて、目的オブジェクト４０１の位置と姿勢を求めて、記憶部３０１に記憶する。ＣＰＵ  １０１と画像処理部１０７が協働して動作することにより、更新部３０３として機能する。
【００９０】
具体的には、更新部３０３は、測定部３０２によって測定された把持モジュール２０１の位置の変化量を所定倍率だけ乗じて、囲みオブジェクト４０２の位置を更新する。すなわち、仮想空間内における単位距離は、現実の空間内における単位距離のＮ倍（Ｎは正の数）に予め設定されている。言い換えれば、仮想空間と現実空間との間の縮小率（あるいは拡大率）が予め設定されている。そして、現実空間内で把持モジュール２０１の位置が変化すると、更新部３０３は、現実空間内における変化量をＮ倍した量を、仮想空間内における変化量として、囲みオブジェクト４０２の位置を決める。更新部３０３は、求めた囲みオブジェクト４０２の位置を示す情報を記憶部３０１に記憶する。あるいは、記憶部３０１に既に記憶された、囲みオブジェクト４０２の位置を示す情報を、求めた位置を示す情報で更新する。
【００９１】
また、更新部３０３は、現在の囲みオブジェクト４０２の姿勢に、測定部３０２によって測定された把持モジュール２０１の姿勢の変化量だけ加えて、囲みオブジェクト４０２の姿勢を決める。すなわち、現実空間と仮想空間は予め対応づけられており、現実空間内で把持モジュール２０１のＣＣＤカメラ２０２の向きが変わると、仮想空間内で囲みオブジェクト４０２の方向ベクトル５０１の向きを同じ量だけ変化させる。また、把持モジュール２０１に内蔵される加速度センサ、角加速度センサ、傾きセンサ等によって、把持モジュール２０１の加速度、角加速度、傾きなどの姿勢の変化が検出されると、更新部３０３は、仮想空間内で囲みオブジェクト４０２の加速度、角加速度、傾きなどを同じ量だけ変化させる。更新部３０３は、求めた囲みオブジェクト４０２の姿勢を示す情報を記憶部３０１に記憶する。あるいは、記憶部３０１に既に記憶された、囲みオブジェクト４０２の姿勢を示す情報を、求めた姿勢を示す情報で更新する。
【００９２】
なお、更新部３０３は、測定部３０２によって測定された把持モジュール２０１の姿勢の変化量を所定倍率だけ乗じて、囲みオブジェクト４０２の姿勢を求めてもよい。例えば、更新部３０３は、把持モジュール２０１がある角度だけ回転すると、その角度の変化量または角速度または角加速度をＭ倍（Ｍは正の数）して囲みオブジェクト４０２を回転させたり、把持モジュール２０１のＣＣＤカメラ２０２の向きがある量だけ変化すると、その変化量をＭ倍して囲みオブジェクト４０２の方向ベクトル５０１の向きを変化させたりしてもよい。
【００９３】
さらに、更新部３０３は、囲みオブジェクト４０２の位置や姿勢が変化することによって目的オブジェクト４０１に働く上述の牽引力６０１と減衰力６０２とに基づいて、目的オブジェクト４０１の位置と姿勢を求める。すなわち、把持モジュール２０１に内蔵される加速度センサ、角加速度センサ、傾きセンサ等によって、加速度、角加速度、傾き等の変化が検出されると、更新部３０３は、上述の［式１］〜［式４］に基づいて、仮想空間内における加速度と角加速度から、それらの時間積分である速度ｖと角速度ωを求め、さらにそれらの時間積分である位置の変位と姿勢の変位を求める。このようにして、更新部３０３は、目的オブジェクト４０１の位置と姿勢を求めることができる。更新部３０３は、求めた目的オブジェクト４０１の位置、姿勢、速度、角速度を示す情報を記憶部３０１に記憶する。あるいは、記憶部３０１に既に記憶された、目的オブジェクト４０１の位置、姿勢、速度、角速度を示す情報を、求めた値で更新する。
【００９４】
次に、本実施形態のゲーム装置３００の各部が行う処理（以下、「位置・姿勢制御処理」と呼ぶ）について、図８のフローチャートを用いて説明する。この位置・姿勢制御処理は、垂直同期割り込みなどの所定の定期的なタイミングで行われる。本実施形態では、コントローラ１０５の把持モジュール２０１をユーザが現実空間で自由に動かして、予め把持モジュール２０１に対応づけられた仮想空間内の目的オブジェクト４０１の位置や姿勢を変化させる場面を想定して説明する。ただし、これは一例に過ぎず、本発明の範囲を限定するものではない。以下詳述する。
【００９５】
まず、測定部３０２は、把持モジュール２０１の位置と姿勢を測定し（ステップＳ８０１）、記憶部３０１に記憶する。すなわち、発光モジュール２５１の様子をＣＣＤカメラ２０２が撮影し、撮影された画像情報を把持モジュール２０１がゲーム装置３００に送信する。ゲーム装置３００の測定部３０１は、撮影された画像内において発光ダイオード２５２が撮影された位置に基づいて、発光モジュール２５１に対する把持モジュール２０１の位置を取得する。また、把持モジュール２０１に内蔵された加速度センサ、角加速度センサ、傾きセンサ等が把持モジュール２０１の姿勢を測定し、この測定結果もゲーム装置３００に送信する。この測定結果には、把持モジュール２０１の加速度、角加速度が含まれる。このように、測定部３０２は位置と姿勢の測定結果を取得する。
【００９６】
更新部３０３は、測定部３０２によって測定された把持モジュール２０１の位置と姿勢を示す情報に基づいて、囲みオブジェクト４０２の位置と姿勢を求める（ステップＳ８０２）。また、更新部３０２は、測定された加速度と角加速度の時間積分から、囲みオブジェクト４０２の速度と角速度を求め、速度と角速度の時間積分から、位置と姿勢を求める。そして、更新部３０３は、図４に示すように目的オブジェクト４０１の周りを囲むような形状の囲みオブジェクト４０２を、求めた位置に求めた姿勢で配置する。
【００９７】
ここで、記憶部３０１は、測定部３０２によって測定された把持モジュール２０１の位置と姿勢を示す情報の履歴を記憶しておき、更新部３０３は、この履歴に基づいて位置及び／又は姿勢が変化したと判断した場合に、ステップＳ８０２で囲みオブジェクト４０２の位置と姿勢を求めるようにしてもよい。そして、位置と姿勢のいずれも変化しないと判断した場合に、ステップＳ８０２の処理を行わないようにしてもよい。これにより、更新部３０３が行う処理の負荷を軽減させることができる。また、例えば、いわゆるチャタリング対策として、位置及び／又は姿勢の測定結果の履歴が所定回数以上続けて現在と異なる値である場合に、位置及び／又は姿勢が変化したと判断することもできる。
【００９８】
更新部３０３は、囲みオブジェクト４０２の位置と姿勢に基づいて、目的オブジェクト４０１の位置と姿勢を求める（ステップＳ８０３）。すなわち、更新部３０３は、図４に示すように目的オブジェクト４０１と囲みオブジェクト４０２を繋ぐ仮想的なバネ４０３を設定し、各々の仮想的なバネ４０３によって目的オブジェクト４０１に作用する牽引力６０１と減衰力６０２を考慮して、目的オブジェクト４０１の位置、姿勢を求める。また、加速度、角加速度を時間積分して、それぞれ速度、角速度を求める。
【００９９】
更新部３０３は、記憶部３０１に記憶された、目的オブジェクト４０１の位置・姿勢・速度・角速度と、囲みオブジェクト４０２の位置・姿勢を、ステップＳ８０３で求めた値で更新する（ステップＳ８０４）。なお、上述のように、更新部３０３はこれらの情報の所定回数分の履歴を記憶部３０１に記憶するように構成してもよい。
【０１００】
このようにして求められた各値に基づいて仮想空間内に配置された目的オブジェクト４０１を含む画像データは、画像処理部１０７に接続されたモニターに出力される。なお、モニターに出力される画像には、囲みオブジェクト４０２や仮想的なバネ４０３は含まれない。
【０１０１】
例えば、目的オブジェクト４０１の速度あるいは角速度がゼロでないとき、この姿勢制御処理を所定の間隔で繰り返し行うことで、目的オブジェクト４０１は牽引力６０１と減衰力６０２による振動運動を行う。
【０１０２】
なお、［式１］〜［式４］によれば、目的オブジェクト４０１は所定の周期で振動を繰り返すことになるが、目的オブジェクト４０１の行う運動に［式４］のように更に仮想的な摩擦力などの外力を考慮して、目的オブジェクト４０１の位置・姿勢等を求めてもよい。典型的には、目的オブジェクト４０１の速度あるいは角速度と逆向きで質量に比例して大きくなる動摩擦力を設定する。この場合にも、目的オブジェクト４０１は、振動を開始してから徐々に振幅が小さくなり、ある時間が経過すると基準位置と基準姿勢になって運動が止まる。また、更新部３０３は、目的オブジェクト４０１にかかる外力と逆向きで質量に比例して大きくなる静摩擦力を設定することもできる。この場合、目的オブジェクト４０１は、所定量以上の大きさの外力が働くと振動を始めることになる。すなわち、把持モジュール２０１が所定量以上あるいは所定の加速度以上で動いたときに目的オブジェクト４０１の位置や姿勢が変化する。これらの動摩擦力や静摩擦力を考慮すると、目的オブジェクト４０１の運動方程式の解は更に複雑な形になるが、積分区間を幾つかに分けてそれぞれの区間での面積を順次足していく数値積分によって近似して変位ｘを求めることができる。
【０１０３】
このように、本実施形態によれば、ゲーム装置３００は、仮想空間内に配置されるオブジェクトの姿勢制御を容易に行うことができる。ユーザが把持モジュール２０１を握って目的オブジェクト４０１を移動させたい場合、ゲーム装置３００は、直接、把持モジュール２０１の位置や姿勢の変化に対応づけて目的オブジェクト４０１の位置や姿勢を変化させるのではなく、目的オブジェクト４０１の周囲に設定したユーザには見えない囲みオブジェクト４０２を移動させて仮想的なバネ４０３によって目的オブジェクト４０１の位置や姿勢を変化させるので、把持モジュール２０１に手ぶれなどによる本来意図しない細かい動きがあっても、過敏に目的オブジェクト４０１の位置や姿勢が変わってしまうことがない。本実施形態は、特に、目的オブジェクト４０１の位置や姿勢を１つの平面内で変化させて姿勢制御する際に適している。
【０１０４】
（実施例２）
次に、本発明の他の実施形態について説明する。図９は、本実施形態における目的オブジェクト４０１、囲みオブジェクト４０２、仮想的なバネ４０３とを示す図である。本図に示すように、囲みオブジェクト４０２は四面体（三角錐）の形状をしている。目的オブジェクト４０１は、四面体である囲みオブジェクト４０２の各頂点を接続点として４つの仮想的なバネ４０３（図中では４０３Ｄ乃至４０３Ｇと表記）で繋がれている。
【０１０５】
更新部３０３は、上述の実施形態と同様に、囲みオブジェクト４０２と各々の仮想的なバネ４０３による目的オブジェクト４０１の位置と姿勢の変化をそれぞれ求め、その後合成して、目的オブジェクト４０１の位置と姿勢を決める。仮想的なバネ４０３の設定の仕方が異なるほかは、上述の実施例１と同様である。なお、各々の仮想的なバネ４０３は同じ特性をもち、囲みオブジェクト４０２は正四面体であることが望ましい。この場合、目的オブジェクト４０１の基準位置は、囲みオブジェクト４０２の重心位置と同じになる。本実施形態は、目的オブジェクト４０１の位置や姿勢を仮想空間内で３次元的に変化させて姿勢制御する際に適している。
【０１０６】
（実施例３）
次に、本発明の他の実施形態について説明する。図１０は、本実施形態における目的オブジェクト４０１、囲みオブジェクト４０２、仮想的なバネ４０３とを示す図である。本図に示すように、囲みオブジェクト４０２は六面体の形状をしている。目的オブジェクト４０１は、六面体である囲みオブジェクト４０２の各面の重心を接続点として６つの仮想的なバネ４０３（図中では４０３Ｈ乃至４０３Ｍと表記）で繋がれている。仮想的なバネ４０３の設定の仕方が異なるほかは、上述の実施例１と同様である。なお、各々の仮想的なバネ４０３は同じ特性をもち、囲みオブジェクト４０２は立方体であることが望ましい。この場合、目的オブジェクト４０１の基準位置は、立方体である囲みオブジェクト４０２の重心位置と同じになる。目的オブジェクト４０１の形状に合わせて、立方体や直方体等を使い分けてもよい。本実施形態は、目的オブジェクト４０１の位置や姿勢を仮想空間内で３次元的に変化させて姿勢制御する際に適している。
【０１０７】
（実施例４）
次に、本発明の他の実施形態について説明する。図１１は、本実施形態における目的オブジェクト４０１、囲みオブジェクト４０２、仮想的なバネ４０３とを示す図である。本図に示すように、囲みオブジェクト４０２は同様に六面体の形状をしている。目的オブジェクト４０１は、六面体である囲みオブジェクト４０２の各頂点を接続点として８つの仮想的なバネ４０３（図中では４０３Ｐ乃至４０３Ｗと表記）で繋がれている。仮想的なバネ４０３の設定の仕方が異なるほかは、上述の実施形態と同様である。なお、各々の仮想的なバネ４０３は同じ特性をもち、囲みオブジェクト４０２は立方体であることが望ましい。この場合、目的オブジェクト４０１の基準位置は、立方体である囲みオブジェクト４０２の重心位置と同じになる。本実施形態は、目的オブジェクト４０１の位置や姿勢を仮想空間内で３次元的に変化させて姿勢制御する際に適している。
【０１０８】
（実施例５）
次に、本発明の他の実施形態について説明する。図１２は、本実施形態における目的オブジェクト４０１、囲みオブジェクト４０２、仮想的なバネ４０３とを示す図である。本図に示すように、囲みオブジェクト４０２は直方体の形状をしている。目的オブジェクト４０１は、直方体である囲みオブジェクト４０２の対面する２つの面の重心を接続点として２つの仮想的なバネ４０３（図中では４０３Ｘ、４０３Ｙと表記）で繋がれている。仮想的なバネ４０３の設定の仕方が異なるほかは、上述の実施形態と同様である。なお、各々の仮想的なバネ４０３は同じ特性をもつことが望ましい。本実施形態は、例えば目的オブジェクト４０１が電車のレールの上に乗って左右に動くような１次元的な位置の移動を伴う姿勢制御をする際に適している。例えば、レールの延びる方向に仮想的なバネ４０３を設定し、レールの上で（レールに沿って）目的オブジェクト４０１を動かすときの姿勢制御に用いることができる。なお、本実施形態では、囲みオブジェクト４０２の形状は、円柱、角柱などでもよい。
【０１０９】
本発明は、上述した実施形態に限定されず、種々の変形及び応用が可能である。また、上述した実施形態の各構成要素を自由に組み合わせることも可能である。
【０１１０】
上述の各実施形態では、予め把持モジュール２０１による制御対象の目的オブジェクト４０１を定めておき、把持モジュール２０１の位置と姿勢の変化に囲みオブジェクト４０２の位置と姿勢の変化を連動させた上で、目的オブジェクト４０１の位置と姿勢を制御する場面を想定して説明したが、本発明はこれに限られない。例えば、仮想空間内に置かれた目的オブジェクト４０１に、把持モジュール２０１の位置と姿勢の変化に関係なく、仮想的な力（例えば風、地震による揺れなど）が働くことによる位置と姿勢の制御を行う場合にも適用できる。この場合、測定部３０２は、把持モジュール２０１の位置と姿勢を測定する代わりに、もしくは、これらの測定に加えて、目的オブジェクト４０１に働く仮想的な力の向きと大きさを測定し（仮想空間にて生じた仮想的な力を計算により求めることを含む。）、これが直接目的オブジェクト４０１に作用するのではなく、囲みオブジェクト４０２に作用するものとして、囲みオブジェクト４０２の位置と姿勢の変化量を求め、この変化量が小さくなる向きに目的オブジェクト４０１に対して牽引力６０１が作用するものとして構成すればよい。
【０１１１】
上述した目的オブジェクト４０１、囲みオブジェクト４０２、仮想的なバネ４０３の形状は一例に過ぎず、形状を任意に変更した実施形態を採用することもできるが、このような変形例も本発明の範囲に含まれる。また、仮想的なバネ４０３の数や、仮想的なバネ４０３の繋げ方、繋げる位置を任意に変更した変形例を採用することもできる。
【０１１２】
囲みオブジェクト４０２は目的オブジェクト４０１を取り囲むように所定距離だけ離れた位置に配置されるが、この所定距離は任意に変更できる。目的オブジェクト４０１と囲みオブジェクト４０２は、目的オブジェクト４０１の位置や姿勢の変化を、上述のように仮想的なバネ４０３による振動運動として近似できる程度に離れていればよい。各々の仮想的なバネ４０３の長さやバネ定数といった特性は異なっていてもよい。
【０１１３】
変形例の一つとして、更新部３０３は、目的オブジェクト４０１の位置を振動させて変化させる場合、把持モジュール２０１にかかる加速度又は角加速度が大きければ大きいほど、振動の変位の最大量（最大振幅）を大きくしてもよい。
【０１１４】
変形例の一つとして、更新部３０３は、目的オブジェクト４０１の種類ごとに、囲みオブジェクト４０２の形状を変えたり、仮想的なバネ４０３の数や配置の仕方を変えてもよい。例えば、目的オブジェクト４０１によっては、その大きさや質量に関係なく、ゲーム設定上、位置や姿勢をあまり大きく変化させたくないものもある。そのような場合、あまり大きく変化させたくないオブジェクトには囲みオブジェクト４０２として図１２に示すような一次元的な位置や姿勢の変化のみ可能なものにしたり、図４に示すような二次元的な位置や姿勢の変化のみ可能なものにしたりする。一方、大きく変化させてもよいオブジェクトには、図９乃至図１１のような三次元的な位置や姿勢の変化が可能なものにする。すなわち、更新部３０３は、目的オブジェクト４０１の種類に応じて、牽引力６０１の大きさや向きを変える。このように、ゲーム装置３００は、オブジェクトの種類、形状、大きさなどに応じて、囲みオブジェクト４０２の形状や仮想的なバネ４０３の繋げ方を変えて、位置や姿勢の制御の仕方を容易に変えることができる。目的オブジェクト４０１に対応づけた質量によって囲みオブジェクト４０２の形状や仮想的なバネ４０３の繋げ方を変えてもよい。
【０１１５】
また、ゲームの進行状況（経過時間、残り時間、ゲーム中に発生するイベント、シーン、ゲームで獲得したアイテムなど）や、ゲームのプレイヤーに関する情報（クリアしたステージ数、獲得スコア、累積ゲーム時間、上達度など）に応じて、囲みオブジェクト４０２の形状や仮想的なバネ４０３の繋げ方を変化させて、目的オブジェクト４０１の位置や姿勢の制御を行うこともできる。
【０１１６】
上述の各実施形態では、目的オブジェクト４０１の位置と姿勢の両方を制御しているが、位置のみ、あるいは、姿勢のみを制御するように構成してもよい。
【０１１７】
ゲーム装置３００を装置の全部又は一部として動作させるためのプログラムを、メモリカード、ＣＤ−ＲＯＭ、ＤＶＤ、ＭＯ（Magneto Optical disk）などのコンピュータ読み取り可能な記録媒体に格納して配布し、これを別のコンピュータにインストールし、上述の手段として動作させ、あるいは、上述の工程を実行させてもよい。
【０１１８】
さらに、インターネット上のサーバ装置が有するディスク装置等にプログラムを格納しておき、例えば、搬送波に重畳させて、コンピュータにダウンロード等するものとしてもよい。
【０１１９】
以上説明したように、本発明によれば、仮想空間内に配置されるオブジェクトの位置や姿勢をスムーズな動きで制御するために好適なゲーム装置、ゲーム処理方法、ならびに、プログラムを提供することができる。
【図面の簡単な説明】
【０１２０】
【図１】本発明のゲーム装置が実現される典型的な情報処理装置の概要構成を示す図である。
【図２】本実施形態にて利用されるコントローラと情報処理装置の外観を示す説明図である。
【図３】ゲーム装置の各部が行う処理を説明するための図である。
【図４】目的オブジェクトと囲みオブジェクトと仮想的なバネとの関係を示す図である。
【図５】（ａ）乃至（ｃ）はオブジェクトの姿勢を説明するための図である。
【図６】（ａ）乃至（ｃ）はオブジェクトの位置を説明するための図である。
【図７】（ａ）と（ｂ）はオブジェクトの姿勢を説明するための図である。
【図８】本実施例のゲーム装置が行う処理を説明するためのフローチャートである。
【図９】実施例２において、目的オブジェクトと囲みオブジェクトと仮想的なバネとの関係を示す図である。
【図１０】実施例３において、目的オブジェクトと囲みオブジェクトと仮想的なバネとの関係を示す図である。
【図１１】実施例４において、目的オブジェクトと囲みオブジェクトと仮想的なバネとの関係を示す図である。
【図１２】実施例５において、目的オブジェクトと囲みオブジェクトと仮想的なバネとの関係を示す図である。
【符号の説明】
【０１２１】
１００  情報処理装置
１０１  ＣＰＵ
１０２  ＲＯＭ
１０３  ＲＡＭ
１０４  インターフェイス
１０５  コントローラ
１０６  外部メモリ
１０７  画像処理部
１０８  ＤＶＤ−ＲＯＭドライブ
１０９  ＮＩＣ
１１０  音声処理部
２０１  把持モジュール
２０２  ＣＣＤカメラ
２０３  十字形キー
２０４  Ａボタン
２０５  Ｂボタン
２０６  各種ボタン
２０７  インジケータ
２０８  電源ボタン
２５１  発光モジュール
２５２  発光ダイオード
２９１  テレビジョン装置
３００  ゲーム装置
３０１  記憶部
３０２  測定部
３０３  更新部
４０１  目的オブジェクト
４０２  囲みオブジェクト
４０３  仮想的なバネ
５０１  方向ベクトル
５０２  地面オブジェクト
６０１  牽引力
６０２  減衰力
７０１  仮想的なバネの軸方向
【図１】
2008113825.tif 000003
【図２】
2008113825.tif 000004
【図３】
2008113825.tif 000005
【図４】
2008113825.tif 000006
【図５】
2008113825.tif 000007
【図６】
2008113825.tif 000008
【図７】
2008113825.tif 000009
【図８】
2008113825.tif 000010
【図９】
2008113825.tif 000011
【図１０】
2008113825.tif 000012
【図１１】
2008113825.tif 000013
【図１２】
2008113825.tif 000014