(57)【要約】【課題】第１キャラクタオブジェクトが第２キャラクタオブジェクトの衣服オブジェクトを掴んで引っ張る様子を比較的簡易な処理で表現できるようになるゲーム装置を提供すること。【解決手段】本発明では、第２キャラクタオブジェクトの位置から前記第１キャラクタオブジェクトの位置への方向が取得される。そして、その取得された方向に基づいて、衣服オブジェクトの少なくとも一部の頂点の位置が変化される（Ｓ２０５）。また、その取得された方向に基づいて、第１キャラクタオブジェクトの部位のうち、衣服オブジェクトを引っ張るために用いられる所定部位の位置が変化される（Ｓ２０６）。【選択図】図１２
2008295970.tif 000002
【特許請求の範囲】
【請求項１】
仮想３次元空間に配置された第１キャラクタオブジェクトが、前記仮想３次元空間に配置された第２キャラクタオブジェクトに含まれる衣服オブジェクトを引っ張る様子を表示するゲーム装置において、
前記第２キャラクタオブジェクトの位置から前記第１キャラクタオブジェクトの位置への方向を取得する方向取得手段と、
前記衣服オブジェクトの少なくとも一部の頂点の位置を、前記方向取得手段によって取得された方向に基づいて変化させる衣服オブジェクト制御手段と、
前記第１キャラクタオブジェクトの部位のうちの、前記衣服オブジェクトを引っ張るために用いられる所定部位の位置を、前記方向取得手段によって取得された方向に基づいて変化させる第１キャラクタオブジェクト制御手段と、
を含むことを特徴とするゲーム装置。
【請求項２】
請求項１に記載のゲーム装置において、
前記衣服オブジェクトの前記少なくとも一部の頂点は、前記仮想３次元空間に設定される基準点に従動し、
前記衣服オブジェクト制御手段は、前記基準点の位置を前記方向取得手段によって取得された方向に基づいて変化させる、
ことを特徴とするゲーム装置。
【請求項３】
請求項１又は２に記載のゲーム装置において、
前記第１キャラクタオブジェクト制御手段は、前記衣服オブジェクトの前記少なくとも一部の頂点の位置に基づいて、前記所定部位の位置を変化させることを特徴とするゲーム装置。
【請求項４】
請求項１乃至３のいずれかに記載のゲーム装置において、
前記第２キャラクタオブジェクトの位置と前記第１キャラクタオブジェクトの位置との間の距離を取得する距離取得手段を含み、
前記衣服オブジェクト制御手段は、前記衣服オブジェクトの前記少なくとも一部の頂点の位置を、前記方向取得手段によって取得された方向と、前記距離取得手段によって取得された距離と、に基づいて変化させる、
ことを特徴とするゲーム装置。
【請求項５】
請求項４に記載のゲーム装置において、
前記衣服オブジェクト制御手段は、前記衣服オブジェクトの前記少なくとも一部の頂点の位置を、前記方向取得手段によって取得された方向と、前記距離取得手段によって取得された距離に係数を乗じることによって得られる距離と、に基づいて変化させ、
前記衣服オブジェクト制御手段は、前記係数を時間経過に伴って変化させる手段を含む、
ことを特徴とするゲーム装置。
【請求項６】
請求項４に記載のゲーム装置において、
前記第１キャラクタオブジェクトが前記衣服オブジェクトを引っ張る際の前記所定部位の基本動作を示すモーションデータを記憶するモーションデータ記憶手段と、
前記モーションデータに基づいて特定される前記第１キャラクタオブジェクトの前記所定部位の位置を取得する所定部位位置手段と、を含み、
前記距離取得手段は、前記第２キャラクタオブジェクトの位置と、前記第１キャラクタオブジェクトの前記所定部位の位置と、の間の距離を取得する、
ことを特徴とするゲーム装置。
【請求項７】
請求項６に記載のゲーム装置において、
前記方向取得手段は、前記第２キャラクタオブジェクトの位置から前記第１キャラクタオブジェクトの前記所定部位の位置への方向を取得することを特徴とするゲーム装置。
【請求項８】
仮想３次元空間に配置された第１キャラクタオブジェクトが、前記仮想３次元空間に配置された第２キャラクタオブジェクトに含まれる衣服オブジェクトを引っ張る様子を表示するゲーム装置の制御方法において、
前記第２キャラクタオブジェクトの位置から前記第１キャラクタオブジェクトの位置への方向を取得する方向取得ステップと、
前記衣服オブジェクトの少なくとも一部の頂点の位置を、前記方向取得ステップによって取得された方向に基づいて変化させる衣服オブジェクト制御ステップと、
前記第１キャラクタオブジェクトの部位のうちの、前記衣服オブジェクトを引っ張るために用いられる所定部位の位置を、前記方向取得ステップによって取得された方向に基づいて変化させる第１キャラクタオブジェクト制御ステップと、
を含むことを特徴とするゲーム装置の制御方法。
【請求項９】
仮想３次元空間に配置された第１キャラクタオブジェクトが、前記仮想３次元空間に配置された第２キャラクタオブジェクトに含まれる衣服オブジェクトを引っ張る様子を表示するゲーム装置としてコンピュータを機能させるためのプログラムであって、
前記第２キャラクタオブジェクトの位置から前記第１キャラクタオブジェクトの位置への方向を取得する方向取得手段、
前記衣服オブジェクトの少なくとも一部の頂点の位置を、前記方向取得手段によって取得された方向に基づいて変化させる衣服オブジェクト制御手段、及び、
前記第１キャラクタオブジェクトの部位のうちの、前記衣服オブジェクトを引っ張るために用いられる所定部位の位置を、前記方向取得手段によって取得された方向に基づいて変化させる第１キャラクタオブジェクト制御手段、
として前記コンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はゲーム装置、ゲーム装置の制御方法及びプログラムに関する。
【背景技術】
【０００２】
仮想３次元空間を所与の視点から見た様子を表すゲーム画面を表示するゲーム装置が知られている。例えば、サッカー選手を表す複数の選手オブジェクトが配置された仮想３次元空間を所与の視点から見た様子を表すゲーム画面を表示することによって、サッカーゲームを提供するゲーム装置が知られている。
【特許文献１】特開２００５−３４２１２０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ところで、現実のサッカー等の試合では、他の選手のプレイを妨害するために、選手が他の選手のユニフォームを掴んで引っ張ることがある。このため、例えば、上記のサッカーゲームにおいても、選手オブジェクトが他の選手オブジェクトのユニフォームを掴んで引っ張る様子を表現できれば、サッカーゲームのリアリティを向上することができる。また、選手オブジェクトが他の選手オブジェクトのユニフォームを掴んで引っ張る様子を表現するにあたっては、その処理負荷が重くならないように図る必要がある。
【０００４】
本発明は上記課題に鑑みてなされたものであって、その目的は、第１キャラクタオブジェクトが第２キャラクタオブジェクトの衣服オブジェクトを掴んで引っ張る様子を比較的簡易な処理で表現できるようになるゲーム装置、ゲーム装置の制御方法及びプログラムを提供することにある。
【課題を解決するための手段】
【０００５】
上記課題を解決するために、本発明に係るゲーム装置は、仮想３次元空間に配置された第１キャラクタオブジェクトが、前記仮想３次元空間に配置された第２キャラクタオブジェクトに含まれる衣服オブジェクトを引っ張る様子を表示するゲーム装置において、前記第２キャラクタオブジェクトの位置から前記第１キャラクタオブジェクトの位置への方向を取得する方向取得手段と、前記衣服オブジェクトの少なくとも一部の頂点の位置を、前記方向取得手段によって取得された方向に基づいて変化させる衣服オブジェクト制御手段と、前記第１キャラクタオブジェクトの部位のうちの、前記衣服オブジェクトを引っ張るために用いられる所定部位の位置を、前記方向取得手段によって取得された方向に基づいて変化させる第１キャラクタオブジェクト制御手段と、を含むことを特徴とする。
【０００６】
また、本発明に係るゲーム装置の制御方法は、仮想３次元空間に配置された第１キャラクタオブジェクトが、前記仮想３次元空間に配置された第２キャラクタオブジェクトに含まれる衣服オブジェクトを引っ張る様子を表示するゲーム装置の制御方法において、前記第２キャラクタオブジェクトの位置から前記第１キャラクタオブジェクトの位置への方向を取得する方向取得ステップと、前記衣服オブジェクトの少なくとも一部の頂点の位置を、前記方向取得ステップによって取得された方向に基づいて変化させる衣服オブジェクト制御ステップと、前記第１キャラクタオブジェクトの部位のうちの、前記衣服オブジェクトを引っ張るために用いられる所定部位の位置を、前記方向取得ステップによって取得された方向に基づいて変化させる第１キャラクタオブジェクト制御ステップと、を含むことを特徴とする。
【０００７】
また、本発明に係るプログラムは、仮想３次元空間に配置された第１キャラクタオブジェクトが、前記仮想３次元空間に配置された第２キャラクタオブジェクトに含まれる衣服オブジェクトを引っ張る様子を表示するゲーム装置として、例えば家庭用ゲーム機、携帯用ゲーム機、携帯電話機、携帯情報端末（ＰＤＡ）又はパーソナルコンピュータ等のコンピュータを機能させるためのプログラムであって、前記第２キャラクタオブジェクトの位置から前記第１キャラクタオブジェクトの位置への方向を取得する方向取得手段、前記衣服オブジェクトの少なくとも一部の頂点の位置を、前記方向取得手段によって取得された方向に基づいて変化させる衣服オブジェクト制御手段、及び、前記第１キャラクタオブジェクトの部位のうちの、前記衣服オブジェクトを引っ張るために用いられる所定部位の位置を、前記方向取得手段によって取得された方向に基づいて変化させる第１キャラクタオブジェクト制御手段、として前記コンピュータを機能させるためのプログラムである。
【０００８】
また、本発明に係る情報記憶媒体は、上記プログラムを記録したコンピュータ読み取り可能な情報記憶媒体である。また、本発明に係るプログラム配信装置は、上記プログラムを記録した情報記憶媒体を備え、当該情報記憶媒体から上記プログラムを読み出し、配信するプログラム配信装置である。また、本発明に係るプログラム配信方法は、上記プログラムを記録した情報記憶媒体から上記プログラムを読み出し、配信するプログラム配信方法である。
【０００９】
本発明は、仮想３次元空間に配置された第１キャラクタオブジェクトが、第２キャラクタオブジェクトに含まれる衣服オブジェクトを引っ張る様子を表示するゲーム装置に関するものである。本発明では、第２キャラクタオブジェクトの位置から第１キャラクタオブジェクトの位置への方向が取得される。そして、その取得された方向に基づいて、衣服オブジェクトの少なくとも一部の頂点の位置が変化する。また、その取得された方向に基づいて、第１キャラクタオブジェクトの部位のうちの、衣服オブジェクトを引っ張るために用いられる所定部位の位置が変化する。本発明によれば、第１キャラクタオブジェクトが第２キャラクタオブジェクトの衣服オブジェクトを掴んで引っ張る様子を比較的簡易な処理で表現できるようになる。
【００１０】
また、本発明の一態様では、前記衣服オブジェクトの前記少なくとも一部の頂点は、前記仮想３次元空間に設定される基準点に従動し、前記衣服オブジェクト制御手段は、前記基準点の位置を前記方向取得手段によって取得された方向に基づいて変化させるようにしてもよい。
【００１１】
また、本発明の一態様では、前記第１キャラクタオブジェクト制御手段は、前記衣服オブジェクトの前記少なくとも一部の頂点の位置に基づいて、前記所定部位の位置を変化させるようにしてもよい。
【００１２】
また、本発明の一態様では、前記第２キャラクタオブジェクトの位置と前記第１キャラクタオブジェクトの位置との間の距離を取得する距離取得手段を含み、前記衣服オブジェクト制御手段は、前記衣服オブジェクトの前記少なくとも一部の頂点の位置を、前記方向取得手段によって取得された方向と、前記距離取得手段によって取得された距離と、に基づいて変化させるようにしてもよい。
【００１３】
また、本発明の一態様では、前記衣服オブジェクト制御手段は、前記衣服オブジェクトの前記少なくとも一部の頂点の位置を、前記方向取得手段によって取得された方向と、前記距離取得手段によって取得された距離に係数を乗じることによって得られる距離と、に基づいて変化させ、前記衣服オブジェクト制御手段は、前記係数を時間経過に伴って変化させる手段を含むようにしてもよい。
【００１４】
また、本発明の一態様では、前記第１キャラクタオブジェクトが前記衣服オブジェクトを引っ張る際の前記所定部位の基本動作を示すモーションデータを記憶するモーションデータ記憶手段と、前記モーションデータに基づいて特定される前記第１キャラクタオブジェクトの前記所定部位の位置を取得する所定部位位置手段と、を含み、前記距離取得手段は、前記第２キャラクタオブジェクトの位置と、前記第１キャラクタオブジェクトの前記所定部位の位置と、の間の距離を取得するようにしてもよい。
【００１５】
また、本発明の一態様では、前記方向取得手段は、前記第２キャラクタオブジェクトの位置から前記第１キャラクタオブジェクトの前記所定部位の位置への方向を取得するようにしてもよい。
【発明を実施するための最良の形態】
【００１６】
以下、本発明の実施形態の一例について図面に基づき詳細に説明する。本発明の実施形態に係るゲーム装置は、例えば家庭用ゲーム機、携帯用ゲーム機、携帯電話機、携帯情報端末（ＰＤＡ）又はパーソナルコンピュータ等によって実現される。ここでは、本発明の実施形態に係るゲーム装置を家庭用ゲーム機によって実現する場合について説明する。
【００１７】
図１は、本発明の実施形態に係るゲーム装置の全体構成を示す図である。図１に示すゲーム装置１０は、家庭用ゲーム機１１、ＤＶＤ−ＲＯＭ２５、メモリカード２８、モニタ１８、スピーカ２２を含んでいる。ＤＶＤ−ＲＯＭ２５及びメモリカード２８は情報記憶媒体であり、家庭用ゲーム機１１に装着される。モニタ１８及びスピーカ２２は家庭用ゲーム機１１に接続される。モニタ１８としては例えば家庭用テレビ受像機が用いられる。スピーカ２２としては例えば家庭用テレビ受像機に内蔵されたスピーカが用いられる。
【００１８】
家庭用ゲーム機１１は公知のコンピュータゲームシステムである。家庭用ゲーム機１１は、バス１２、マイクロプロセッサ１４、画像処理部１６、音声処理部２０、ＤＶＤ−ＲＯＭ再生部２４、主記憶２６、入出力処理部３０及びコントローラ３２を含んでいる。コントローラ３２以外の構成要素は家庭用ゲーム機１１の筐体内に収容される。
【００１９】
バス１２はアドレス及びデータを家庭用ゲーム機１１の各部でやり取りするためのものである。マイクロプロセッサ１４、画像処理部１６、主記憶２６及び入出力処理部３０は、バス１２によって相互データ通信可能に接続される。
【００２０】
マイクロプロセッサ１４は、図示しないＲＯＭに格納されるオペレーティングシステム、ＤＶＤ−ＲＯＭ２５から読み出されるプログラム及びデータや、メモリカード２８から読み出されるデータに基づいて、家庭用ゲーム機１１の各部を制御する。主記憶２６は、例えばＲＡＭを含んでいる。主記憶２６には、ＤＶＤ−ＲＯＭ２５又はメモリカード２８から読み出されたプログラムやデータが必要に応じて書き込まれる。主記憶２６はマイクロプロセッサ１４の作業用としても用いられる。
【００２１】
画像処理部１６はＶＲＡＭを含んでいる。画像処理部１６は、マイクロプロセッサ１４から送られる画像データに基づいてＶＲＡＭ上にゲーム画面を描画する。そして、画像処理部１６は、そのゲーム画面をビデオ信号に変換して所定のタイミングでモニタ１８に出力する。
【００２２】
入出力処理部３０は、マイクロプロセッサ１４が音声処理部２０、ＤＶＤ−ＲＯＭ再生部２４、メモリカード２８及びコントローラ３２にアクセスするためのインタフェースである。入出力処理部３０には、音声処理部２０、ＤＶＤ−ＲＯＭ再生部２４、メモリカード２８及びコントローラ３２が接続される。
【００２３】
音声処理部２０はサウンドバッファを含んでいる。サウンドバッファには、ＤＶＤ−ＲＯＭ２５から読み出されたゲーム音楽、ゲーム効果音、メッセージ等の各種音声データが記憶される。音声処理部２０は、サウンドバッファに記憶された各種音声データを再生してスピーカ２２から出力する。
【００２４】
ＤＶＤ−ＲＯＭ再生部２４はマイクロプロセッサ１４からの指示に従ってＤＶＤ−ＲＯＭ２５に記録されたプログラムを読み取る。なお、ここではプログラムを家庭用ゲーム機１１に供給するためにＤＶＤ−ＲＯＭ２５を用いることとするが、ＣＤ−ＲＯＭやＲＯＭカード等、他のあらゆる情報記憶媒体を用いるようにしてもよい。また、例えばインターネット等の通信ネットワークを介して遠隔地からプログラムを家庭用ゲーム機１１に供給するようにしてもよい。
【００２５】
メモリカード２８は不揮発性メモリ（例えばＥＥＰＲＯＭ等）を含んでいる。家庭用ゲーム機１１はメモリカード２８を装着するためのメモリカードスロットを複数備えている。メモリーカード２８には例えばセーブデータなどの各種ゲームデータが記憶される。
【００２６】
コントローラ３２は、ユーザが各種ゲーム操作の入力をするための汎用操作入力手段である。入出力処理部３０は一定周期毎（例えば１／６０秒毎）にコントローラ３２の各部の状態をスキャンする。そして、入出力処理部３０はそのスキャン結果を表す操作信号をバス１２を介してマイクロプロセッサ１４に渡す。マイクロプロセッサ１４はその操作信号に基づいてユーザのゲーム操作を判定する。家庭用ゲーム機１１には複数のコントローラ３２を接続することが可能である。マイクロプロセッサ１４は各コントローラ３２から入力される操作信号に基づいてゲーム制御を実行する。
【００２７】
上記の構成を備えるゲーム装置１０では、ＤＶＤ−ＲＯＭ２５から読み出されたゲームプログラムが実行されることによって、例えばサッカーゲームが実行される。
【００２８】
ゲーム装置１０の主記憶２６には仮想３次元空間が構築される。図２は仮想３次元空間の一例を示している。図２に示すように、仮想３次元空間４０には、サッカーのフィールドを表すフィールドオブジェクト４２と、ゴールを表すゴールオブジェクト４４と、が配置される。図２では省略されているが、フィールドオブジェクト４２上には、ユニフォームを着たサッカー選手を表す選手オブジェクトと、サッカーボールを表すボールオブジェクトと、が配置される。
【００２９】
図３は選手オブジェクトの一例を示している。図３に示すように、選手オブジェクト５０はユニフォームオブジェクト５２を含んでいる。選手オブジェクト５０は複数のポリゴンを含んで構成される。ユニフォームオブジェクト５２も複数のポリゴンを含んで構成される。
【００３０】
選手オブジェクト５０の内部にはスケルトン（ボーン及びジョイント）が設定される。図４及び図５は選手オブジェクト５０に設定されるスケルトンの一例を示している。図４及び図５に示す例では、頭５４、首５６、胸５８、腰６０、左腿６２ｌ，右腿６２ｒ、左脛６４ｌ、右脛６４ｒ、左足６６ｌ、右足６６ｒ、左上腕６８ｌ、右上腕６８ｒ、左前腕７０ｌ、右前腕７０ｒ、左手７２ｌ、右手７２ｒのスケルトンが選手オブジェクト５０に設定されている。
【００３１】
これらのスケルトンは、図５に示すような、腰６０をルートとする階層構造で管理される。あるスケルトン（ボーン）が回転した場合、そのスケルトンの下の階層のスケルトンも連動する。例えば、右上腕６８ｒが回転した場合、右上腕６８ｒの下の階層のスケルトンである右前腕７０ｒや右手７２ｒが右上腕６８ｒの回転に合わせて動く。また、最下層のスケルトンの位置はそのスケルトンよりも上の階層のスケルトンの状態（回転角度等）によって特定される。例えば、右手７２ｒの位置は右上腕６８ｒや右前腕７０ｒ等の回転角度等によって特定される。また、最下層のスケルトンの位置に基づいて、そのスケルトンよりも上の階層のスケルトンの状態（回転角度等）を特定することも可能である（インバースキネマティクス法）。例えば、右手７２ｒの位置に基づいて右上腕６８ｒや右前腕７０ｒ等の回転角度を特定することも可能である。
【００３２】
選手オブジェクト５０に設定されたスケルトン（ボーン）と、選手オブジェクト５０を構成するポリゴンの頂点と、は対応づけられている。そして、スケルトン（ボーン）が回転した場合にはそのスケルトンに対応づけられたポリゴンの頂点が従動する。その結果、スケルトンの回転に合わせて、選手オブジェクト５０の形状（姿勢）が変化する。
【００３３】
また、仮想３次元空間４０には仮想カメラ４６が配置される。この仮想カメラ４６から仮想３次元空間４０を見た様子を表すゲーム画面がモニタ１８に表示される。
【００３４】
主記憶２６には、仮想３次元空間４０に配置される各選手オブジェクト５０の状態（位置、姿勢、移動速度や移動方向等）を示す情報が記憶される。例えば、選手オブジェクト５０の姿勢は選手オブジェクト５０の各スケルトンの状態（回転角度等）によって特定されるため、主記憶２６には、選手オブジェクト５０の姿勢を示す情報として、選手オブジェクト５０の各スケルトンの状態を示す情報が記憶される。また主記憶２６には、ボールオブジェクトの状態（位置、移動速度や移動方向等）や仮想カメラ４６の状態（位置、視線方向や画角等）を示す情報も記憶される。主記憶２６に記憶されるこれらの情報は所定時間（本実施の形態では１／３０秒）ごとに更新される。また、これらの情報に基づいて、ゲーム画面が所定時間（本実施の形態では１／３０秒）ごとに更新される。
【００３５】
なお本明細書では、主記憶２６に記憶される、選手オブジェクト５０、ボールオブジェクトや仮想カメラ４６の状態を示す情報を更新することを「選手オブジェクト５０、ボールオブジェクトや仮想カメラ４６の状態を更新する」というように記載する。
【００３６】
以下、サッカーゲームにおいて、選手オブジェクト５０が敵チームに属する選手オブジェクト５０（以下、「敵選手オブジェクト」と記載する。）のユニフォームオブジェクト５２を掴んで引っ張る様子を好適に表現するための技術について説明する。
【００３７】
ゲーム装置１０では、敵選手オブジェクトのユニフォームオブジェクト５２を掴む動作（以下、「掴み動作」と記載する。）を開始するための条件を選手オブジェクト５０が満足したかが否かが判定される。選手オブジェクト５０が掴み動作の開始条件を満足したか否かをマイクロプロセッサ１４は下記に説明するようにして判定する。
【００３８】
まずマイクロプロセッサ１４は、選手オブジェクト５０の前方の所定領域に、いずれかの敵選手オブジェクトの掴み対象点が含まれるか否かを判定する。
【００３９】
図６は選手オブジェクト５０の前方の所定領域について説明するための図である。図６に示すように、選手オブジェクト５０の前方の所定領域７８は、選手オブジェクト５０の正面方向７６との間の角度が基準角度θ１以下となる領域であって、かつ、選手オブジェクト５０からの距離が基準距離Ｒ以下となる領域である。
【００４０】
図７は掴み対象点について説明するための図である。図７に示すように、掴み対象点８０は各選手オブジェクト５０の腰の背中側に設定される。なお、各選手オブジェクト５０には複数の掴み対象点８０が設定されるようにしてもよい。例えば、各選手オブジェクト５０の腰の背中側の左右に２つの掴み対象点８０が設定されるようにしてもよい。
【００４１】
選手オブジェクト５０の前方の所定領域７８に、いずれかの敵選手オブジェクトの掴み対象点８０が含まれると判定された場合、マイクロプロセッサ１４は、その敵選手オブジェクトが選手オブジェクト５０に背中を向けているか否かを判定する。図８は、敵選手オブジェクトが選手オブジェクト５０に背中を向けているか否かの判定方法について説明するための図である。マイクロプロセッサ１４は、選手オブジェクト５０の正面方向７６と敵選手オブジェクト５０ｅの正面方向７６ｅとの間の角度θ２が基準角度以下であるか否かを判定する。そして、選手オブジェクト５０の正面方向７６と敵選手オブジェクト５０ｅの正面方向７６ｅとの間の角度θ２が基準角度以下である場合、敵選手オブジェクト５０ｅは選手オブジェクト５０に背中を向けているとマイクロプロセッサ１４は判断する。一方、選手オブジェクト５０の正面方向７６と敵選手オブジェクト５０ｅの正面方向７６ｅとの間の角度θ２が基準角度以下でない場合、敵選手オブジェクト５０ｅは選手オブジェクト５０に背中を向けていないとマイクロプロセッサ１４は判断する。
【００４２】
選手オブジェクト５０の前方の所定領域７８に敵選手オブジェクトの掴み対象点８０が含まれ、かつ、その敵選手オブジェクトが選手オブジェクト５０に背中を向けている場合、その選手オブジェクト５０が掴み動作の開始条件を満足しているとマイクロプロセッサ１４は判断する。そして、マイクロプロセッサ１４は、その敵選手オブジェクトのユニフォームオブジェクト５２を掴む動作をその選手オブジェクト５０に開始させる。
【００４３】
次に、選手オブジェクト５０が敵選手オブジェクトのユニフォームオブジェクト５２を掴む様子を表示するために実行される処理について説明する。図９は、選手オブジェクト５０が掴み動作の開始条件を満足したと判定された後、所定時間（本実施の形態では１／３０秒）ごとに実行される処理を示すフロー図である。マイクロプロセッサ１４は図９に示す処理をＤＶＤ−ＲＯＭ２５から読み出されたプログラムに従って実行する。
【００４４】
なお以下では、掴み動作の開始条件を満足したと判定された選手オブジェクト５０、すなわちユニフォームオブジェクト５２を掴む選手オブジェクト５０のことを「第１選手オブジェクト」と記載する。また、第１選手オブジェクトによってユニフォームオブジェクト５２を掴まれる敵選手オブジェクトのことを「第２選手オブジェクト」と記載する。また、第１選手オブジェクト（第１キャラクタオブジェクト）は第２選手オブジェクト（第２キャラクタオブジェクト）のユニフォームオブジェクト５２（衣服オブジェクト）を右手で掴みにいくこととして説明する。
【００４５】
図９に示す処理は、ＤＶＤ−ＲＯＭ２５（モーションデータ記憶手段）に記憶されるモーションデータに基づいて実行される。モーションデータは選手オブジェクト５０の各種動作を再現するためのデータである。より具体的には、モーションデータは、選手オブジェクト５０が各種動作を行う間の各フレームにおける各スケルトンの状態（回転角度等）を示すデータである。選手オブジェクト５０が他の選手オブジェクト５０のユニフォームオブジェクト５２を掴みに行く際の基本動作を再現するためのモーションデータ（以下、「掴み動作のモーションデータ」と記載する。）もＤＶＤ−ＲＯＭ２５に記憶されている。
【００４６】
なお以下では、掴み動作のモーションデータには、第１フレーム（掴み動作の開始フレーム）から第１０フレーム（掴み動作の終了フレーム）の各フレームにおける各スケルトン（右上腕６８ｒ、右前腕７０ｒや手７２ｒ等）の状態（回転角度等）が定められていることとして説明する。また、１フレームあたりの時間は１／３０秒であることとして説明する。
【００４７】
図９に示すように、まずマイクロプロセッサ１４は変数ｎの値に１を加算する（Ｓ１０１）。なお、変数ｎの値は、第１選手オブジェクトが掴み動作を開始する際に０に初期化されている。このため、変数ｎは、第１選手オブジェクトが掴み動作を開始してからのフレーム数を示す数値となっている。
【００４８】
その後、マイクロプロセッサ１４は、第１選手オブジェクト以外の選手オブジェクト５０、ボールオブジェクトや仮想カメラ４６の状態を更新する（Ｓ１０２）。また、マイクロプロセッサ１４は第１選手オブジェクトの状態（姿勢を除く）を更新する（Ｓ１０３）。そして、マイクロプロセッサ１４は、第１選手オブジェクトの姿勢を更新するための処理（Ｓ１０４〜Ｓ１０６）を実行する。
【００４９】
まず、マイクロプロセッサ１４は、第ｎフレームにおける第１選手オブジェクトの右手７２ｒの先端７４の原位置を取得する（Ｓ１０４）。すなわち、マイクロプロセッサ１４は、第ｎフレームにおける各スケルトンの状態を掴み動作のモーションデータから読み出す。そして、マイクロプロセッサ１４は、第ｎフレームにおける各スケルトンの状態から特定される右手７２ｒの先端７４の位置（原位置）を取得する。
【００５０】
また、マイクロプロセッサ１４は、Ｓ１０４で取得された、第ｎフレームにおける第１選手オブジェクトの右手７２ｒの先端７４の原位置を補正することによって、第ｎフレームにおける第１選手オブジェクトの右手７２ｒの先端７４の位置（補正位置）を取得する（Ｓ１０５）。
【００５１】
第１選手オブジェクトと第２選手オブジェクトとの位置関係はその都度異なる。このため、第１選手オブジェクトの各スケルトン（右上腕６８ｒ、右前腕７０ｒや右手７２ｒ等）を掴み動作のモーションデータに従って動かしただけでは、第１選手オブジェクトの右手７２ｒの先端７４が第２選手オブジェクトの掴み対象点８０に到達しない場合がある。そこで、マイクロプロセッサ１４は第１選手オブジェクトの右手７２ｒの先端７４の位置を補正する。
【００５２】
図１０は、第１選手オブジェクトの右手７２ｒの先端７４の位置の補正方法について説明するための図である。図１０において、符号７４ｏ−１，７４ｏ−２，７４ｏ−ｎ，７４ｏ−８，７４ｏ−９，７４ｏ−１０は、第１，２，ｎ，８，９，１０フレームにおける選手オブジェクト５０の右手７２ｒの先端７４の原位置をそれぞれ示している。また、符号７４−１，７４−２，７４−ｎ，７４−８，７４−９，７４−１０は、第１，２，ｎ，８，９，１０のフレームにおける第１選手オブジェクトの右手７２ｒの先端７４の補正位置をそれぞれ示している。
【００５３】
Ｓ１０５において、マイクロプロセッサ１４は、第１選手オブジェクトの右手７２ｒの先端７４の補正位置７４−ｎとして、Ｓ１０４で取得された原位置７４ｏ−ｎから第２選手オブジェクトの掴み対象点８０までの直線８２−ｎをｎ：（１０−ｎ）に分割する位置を取得する。
【００５４】
例えば、変数ｎが１である場合、第１選手オブジェクトの右手７２ｒの先端７４の補正位置７４−１として、原位置７４ｏ−１から第２選手オブジェクトの掴み対象点８０までの直線８２−１を１：９に分割する位置が取得される。また例えば、変数ｎが８である場合、第１選手オブジェクトの右手７２ｒの先端７４の補正位置７４−８として、原位置７４ｏ−８から第２選手オブジェクトの掴み対象点８０までの直線８２−８を８：２に分割する位置が取得される。そして、変数ｎが１０である場合、第１選手オブジェクトの右手７２ｒの先端７４の補正位置７４−１０として、原位置７４ｏ−１０から第２選手オブジェクトの掴み対象点８０までの直線８２−１０を１０：０に分割する位置、すなわち、第２選手オブジェクトの掴み対象点８０の位置が取得される。
【００５５】
第１選手オブジェクトの右手７２ｒの先端７４の補正位置が取得された後、マイクロプロセッサ１４は、第１選手オブジェクトの各スケルトンの状態（回転角度）を更新する（Ｓ１０６）。すなわち、マイクロプロセッサ１４は、右手７２ｒの先端７４の補正位置に基づいて、右手７２ｒよりも上位の階層のスケルトンである右上腕６８ｒや右前腕７０ｒ等の状態を決定する。この処理には公知のインバースキネマティクスアルゴリズムが用いられる。またマイクロプロセッサ１４は、例えば走行動作のモーションデータ等に基づいて、第１選手オブジェクトの他のスケルトンの状態も決定する。
【００５６】
その後、マイクロプロセッサ１４はゲーム画面をＶＲＡＭ上に生成する（Ｓ１０７）。このとき、マイクロプロセッサ１４は選手オブジェクト５０を構成するポリゴンを各スケルトンの状態に基づいて変形する。すなわち、マイクロプロセッサ１４は選手オブジェクト５０を構成するポリゴンの頂点の位置を各スケルトンの状態に基づいて設定する。ＶＲＡＭ上に生成されたゲーム画面は所定のタイミングでモニタ１８に出力される。
【００５７】
その後、マイクロプロセッサ１４は変数ｎの値が１０であるか否かを判定する（Ｓ１０８）。ここで、値「１０」は、掴み動作のモーションデータの全フレーム数である。変数ｎの値が１０でない場合、所定時間（本実施の形態では１／３０秒）後に、図９に示す処理が再び実行される。一方、変数ｎの値が１０である場合は掴み動作が完了した場合である。この場合、マイクロプロセッサ１４は、第２選手オブジェクトのユニフォームオブジェクト５２を引っ張る動作（以下、「引っ張り動作」と記載する。）を第１選手オブジェクトに開始させる。この場合、所定時間（本実施の形態では１／３０秒）後に、図９に示す処理に代えて、第１選手オブジェクトが第２選手オブジェクトのユニフォームオブジェクト５２を引っ張る様子を表示するための処理（図１２参照）が実行される。
【００５８】
上記に説明した処理（図９）が所定時間ごとにが繰り返し実行されることによって、第１選手オブジェクトが第２選手オブジェクトのユニフォームオブジェクト５２（掴み対象点８０）を掴む様子がゲーム画面に表される。
【００５９】
本実施の形態では、第１選手オブジェクトの右手７２ｒの先端７４の位置が図１０に示す方法によって補正されることによって、掴み動作の完了フレーム（第１０フレーム）において第１選手オブジェクトの右手７２ｒの先端７４が第２選手オブジェクトの掴み対象点８０に到達するようになる。また、第１選手オブジェクトの右手７２ｒの先端７４の位置は徐々に補正されるため、第１選手オブジェクトの右手の動きが不自然にならないように図ることが可能になる。
【００６０】
なお、選手オブジェクト５０の右手７２ｒの先端７４の位置は他の方法で補正するようにしてもよい。図１１は選手オブジェクト５０の手７２の先端７４の位置の他の補正方法について説明するための図である。図１１においても、符号７４ｏ−１，７４ｏ−２，７４ｏ−ｎ，７４ｏ−８，７４ｏ−９，７４ｏ−１０は、第１，２，ｎ，８，９，１０フレームにおける第１選手オブジェクトの右手７２ｒの先端７４の原位置をそれぞれ示している。また、符号７４−１，７４−２，７４−ｎ，７４−８，７４−９，７４−１０は、第１，２，ｎ，８，９，１０のフレームにおける第１選手オブジェクトの右手７２ｒの先端７４の補正位置をそれぞれ示している。
【００６１】
この場合、Ｓ１０５において、マイクロプロセッサ１４は、原位置７４ｏ−ｎに（ｎ／１０）＊ΔＰ１を加算することによって、第１選手オブジェクトの右手７２ｒの先端７４の補正位置７４−ｎを取得する。なお、ΔＰ１は、掴み動作の完了フレーム（第１０フレーム）における第１選手オブジェクトの右手７２ｒの先端７４の原位置７４ｏ−１０と、第２選手オブジェクトの掴み対象点８０と、の差を示している。
【００６２】
例えば、変数ｎの値が１である場合、原位置７４ｏ−１に対して（１／１０）＊ΔＰ１を加算することによって、第１選手オブジェクトの右手７２ｒの先端７４の補正位置７４−１が取得される。また例えば、変数ｎの値が８である場合、原位置７４ｏ−８に対して（８／１０）＊ΔＰ１を加算することによって、第１選手オブジェクトの右手７２ｒの先端７４の補正位置７４−８が取得される。そして、変数ｎの値が１０である場合、原位置７４ｏ−１０に対して（１０／１０）＊ΔＰ１を加算することによって、第１選手オブジェクトの右手７２ｒの先端７４の補正位置７４−１０が取得される。すなわち、第２選手オブジェクトの掴み対象点８０の位置が補正位置７４−１０として取得される。
【００６３】
このようにしても、掴み動作の完了フレーム（第１０フレーム）において第１選手オブジェクトの右手７２ｒの先端７４が第２選手オブジェクトの掴み対象点８０に到達するようになる。また、第１選手オブジェクトの右手の動きが不自然にならないように図ることが可能になる。
【００６４】
ところで、図１０に示す補正方法を用いた場合、第１フレームや第２フレームにおける第１選手オブジェクトの右手７２ｒの移動距離が第９フレームや第１０フレームにおける第１選手オブジェクトの右手７２ｒの移動距離に比べて大きくなってしまう。この点、図１１に示す補正方法を用いれば、そのような移動距離の相違の発生を抑えることが可能になる。その結果として、第１選手オブジェクトの右手の動きの自然さをより向上することが可能になる。
【００６５】
次に、第１選手オブジェクトが第２選手オブジェクトのユニフォームオブジェクト５２を引っ張る様子を表示するための処理について説明する。図１２は、第１選手オブジェクトが第２選手オブジェクトのユニフォームオブジェクト５２を引っ張る様子を表示するために、所定時間（本実施の形態では１／３０秒）ごとに実行される処理を示すフロー図である。マイクロプロセッサ１４は図１２に示す処理をＤＶＤ−ＲＯＭ２５から読み出されるプログラムに従って実行する。
【００６６】
図１２に示すように、まずマイクロプロセッサ１４は変数ｍの値に１を加算する（Ｓ２０１）。なお、変数ｍの値は、第１選手オブジェクトが引っ張り動作を開始する際に０に初期化されている。このため、変数ｍは、第１選手オブジェクトが引っ張り動作を開始してからのフレーム数を示す数値となっている。
【００６７】
その後、マイクロプロセッサ１４は、第１選手オブジェクト以外の選手オブジェクト５０、ボールオブジェクトや仮想カメラ４６の状態を更新する（Ｓ２０２）。また、マイクロプロセッサ１４は第１選手オブジェクトの状態（姿勢を除く）を更新する（Ｓ２０３）。そして、マイクロプロセッサ１４は、第１選手オブジェクトの姿勢を更新するための処理（Ｓ２０４〜Ｓ２０６）を実行する。
【００６８】
まずマイクロプロセッサ１４は、第２選手オブジェクトの変形制御点（基準点）の位置を決定する（Ｓ２０４）。変形制御点は、ユニフォームオブジェクト５２の変形制御の基礎とされる点である。本実施の形態では、各選手オブジェクト５０に対して掴み対象点８０とともに変形制御点が設定されている。変形制御点には、選手オブジェクト５０のユニフォームオブジェクト５２を構成するポリゴンの頂点の一部が対応づけられており、変形制御点に対応づけられた頂点は変形制御点に従動する。詳細については後述する（図１５及び図１６参照）。
【００６９】
選手オブジェクト５０のユニフォームオブジェクト５２が他の選手オブジェクト５０に引っ張られていない状態では、選手オブジェクト５０の変形制御点の位置は所定の基本位置に設定される。基本位置は例えば掴み対象点８０の位置である。一方、選手オブジェクト５０のユニフォームオブジェクト５２が他の選手オブジェクト５０に引っ張られる状態では、選手オブジェクト５０の変形制御点の位置は下記に説明するようにして決定される。
【００７０】
マイクロプロセッサ１４は、第２選手オブジェクトの変形制御点の位置を、第１選手オブジェクトと第２選手オブジェクトとの位置関係に基づいて決定する。図１３及び図１４は第２選手オブジェクトの変形制御点の位置の決定方法について説明するための図である。
【００７１】
まずマイクロプロセッサ１４（方向取得手段）は、第２選手オブジェクト５０ｂの位置（例えば足元位置）から、第１選手オブジェクト５０ａの位置（例えば足元位置）への方向Ｄ１を取得する（図１３参照）。また、マイクロプロセッサ１４（距離取得手段）は、第２選手オブジェクト５０ｂの位置から第１選手オブジェクト５０ａの位置までの距離Ｌ１を取得する（図１３参照）。
【００７２】
そしてマイクロプロセッサ１４（衣服オブジェクト制御手段）は、第２選手オブジェクト５０ｂの変形制御点８２の基本位置８２ａ（掴み対象点８０）から、方向Ｄに、距離Ｌだけ移動した位置に、第２選手オブジェクト５０ｂの変形制御点８２の位置を設定する（図１４参照）。なお、方向Ｄは方向Ｄ１と平行な方向である。また、距離Ｌは下記の式（１）によって決定される。
【００７３】
Ｌ＝Ｌ１＊｜ｓｉｎ（（ｍ／１０）＊２π）｜・・・（１）
【００７４】
上記のように、距離Ｌは、第２選手オブジェクト５０ｂの位置から第１選手オブジェクト５０ａの位置までの距離Ｌ１に、時間経過に伴って変化する係数（ｓｉｎ（（ｍ／１０）＊２π）の絶対値）を乗じることによって算出される。このため、仮に、第２選手オブジェクト５０ｂの位置から第１選手オブジェクト５０ａの位置までの距離Ｌ１が変化しない状態が一定時間継続したとしても、上記距離Ｌは時間経過に伴って変化し、その結果として、第２選手オブジェクト５０ｂの変形制御点８２の位置も時間経過に伴って変化するようになっている。
【００７５】
第２選手オブジェクトの変形制御点８２の位置が決定された後、マイクロプロセッサ１４（衣服オブジェクト制御手段）は、第２選手オブジェクトの変形制御点８２の位置に基づいて、第２選手オブジェクトのユニフォームオブジェクト５２を変形する（Ｓ２０５）。
【００７６】
図１５及び図１６は第２選手オブジェクトのユニフォームオブジェクト５２の変形について説明するための図である。図１５及び図１６には、第２選手オブジェクトのユニフォームオブジェクト５２の一部が表されている。図１５は変形されていない状態のユニフォームオブジェクト５２を示している。図１６は変形された状態のユニフォームオブジェクト５２を示している。図１５及び図１６における複数の点（符号８６）は第２選手オブジェクトのユニフォームオブジェクト５２を構成するポリゴンの頂点を示している。また、符号８６ａは、第２選手オブジェクトのユニフォームオブジェクト５２を構成するポリゴンの頂点のうちで、第２選手オブジェクトの変形制御点８２の基本位置８２ａ（掴み対象点８０）に最も近い頂点（以下、「代表頂点」と記載する。）を示している。
【００７７】
マイクロプロセッサ１４は、第２選手オブジェクトのユニフォームオブジェクト５２の代表頂点８６ａ及びその周辺の頂点８６を、第２選手オブジェクトの変形制御点８２に従動させる。具体的には、マイクロプロセッサ１４は、第２選手オブジェクトの変形制御点８２の基本位置８２ａからＳ２０４において決定された変形制御点８２の現在位置への方向８４と平行に、第２選手オブジェクトのユニフォームオブジェクト５２の代表頂点８６ａ及びその周辺の頂点８６を移動させる。このとき、頂点８６の移動距離はその頂点８６と代表頂点８６ａとの間の距離に基づいて決定される。具体的には、頂点８６と代表頂点８６ａとの間の距離が大きくなるにつれて、その頂点８６の移動距離は小さくなるように設定される。
【００７８】
なお、代表頂点８６ａ及びその周辺の頂点８６は第２選手オブジェクトの胸５８や腰６０等のスケルトンにも対応づけられている。このため、第２選手オブジェクトが前方に移動することによって、第２選手オブジェクトの胸５８や腰６０のスケルトンが前方に移動した場合、代表頂点８６ａ及びその周辺の頂点８６は、第２選手オブジェクトの移動方向（前方方向）にも引っ張られることになる。このため、代表頂点８６ａ及びその周辺の頂点８６の移動距離は、第２選手オブジェクトの変形制御点８２の移動と、第２選手オブジェクト自体の移動と、の両方に基づいて決定される。
【００７９】
第２選手オブジェクトのユニフォームオブジェクト５２の変形処理が完了した後、マイクロプロセッサ１４は第１選手オブジェクト５０の各スケルトンの状態（回転角度等）を、第２選手オブジェクトのユニフォームオブジェクト５２の代表頂点８６ａの位置に基づいて更新する（Ｓ２０６）。
【００８０】
まず、マイクロプロセッサ１４は第１選手オブジェクトの右手７２ｒの先端７４の位置を、第２選手オブジェクトのユニフォームオブジェクト５２の代表頂点８６ａの位置に設定する。その後、マイクロプロセッサ１４は、右手７２ｒの先端７４の位置に基づいて、右手７２ｒよりも上位の階層のスケルトンである右上腕６８ｒや右前腕７０ｒ等の状態を更新する。この処理には公知のインバースキネマティクスアルゴリズムが用いられる。またマイクロプロセッサ１４は、例えば走行動作のモーションデータに基づいて、第１選手オブジェクトの他のスケルトンの状態を更新する。
【００８１】
その後、マイクロプロセッサ１４はゲーム画面をＶＲＡＭ上に生成する（Ｓ２０７）。このとき、マイクロプロセッサ１４は、選手オブジェクト５０を構成するポリゴンを各スケルトンの状態（回転角度）に基づいて変形する。すなわち、マイクロプロセッサ１４は選手オブジェクト５０を構成するポリゴンの頂点の位置を各スケルトンの状態に基づいて設定する。ＶＲＡＭ上に生成されたゲーム画面は所定のタイミングでモニタ１８に出力される。
【００８２】
その後、マイクロプロセッサ１４は、第１選手オブジェクトと第２選手オブジェクトとの間の距離が所定距離以上であるか否かを判定する（Ｓ２０８）。第１選手オブジェクトと第２選手オブジェクトとの間の距離が所定距離以上である場合、マイクロプロセッサ１４は、第２選手オブジェクトが第１選手オブジェクトを振り切ったと判断して、第１選手オブジェクトの第２選手オブジェクトに対する引っ張り動作を終了させる（Ｓ２１０）。
【００８３】
一方、第１選手オブジェクトと第２選手オブジェクトとの間の距離が所定距離未満である場合、マイクロプロセッサ１４は変数ｍの値が１０であるか否かを判定する（Ｓ２０９）。変数ｍの値が１０である場合、マイクロプロセッサ１４は第１選手オブジェクトの第２選手オブジェクトに対する引っ張り動作を終了させる（Ｓ２１０）。このように、本実施の形態では、第１選手オブジェクトの第２選手オブジェクトに対する引っ張り動作は１／３（＝１０／３０）秒間継続したら終了するようになっている。なお、第１選手オブジェクトの第２選手オブジェクトに対する引っ張り動作の継続時間はもっと長くしてもよい。
【００８４】
上記に説明した処理（図１２）が所定時間ごとに繰り返し実行されることによって、第１選手オブジェクトが第２選手オブジェクトのユニフォームオブジェクトを引っ張る様子と、その引っ張り動作によって第２選手オブジェクトのユニフォームオブジェクト５２が変形する様子と、がゲーム画面に表される。
【００８５】
第２選手オブジェクトのユニフォームオブジェクト５２が第１選手オブジェクトによって引っ張られることによって変形する様子を表示することは、物理シミュレーション演算を行うことによって実現することも考えられる。しかしながら、その場合には処理が複雑になり、処理負荷が重くなってしまう。この点、本実施の形態によれば、第２選手オブジェクトのユニフォームオブジェクト５２が第１選手オブジェクトによって引っ張られることによって変形する様子を表示することが、第２選手オブジェクトの変形基準点８２の位置を第１選手オブジェクトと第２選手オブジェクトとの位置関係（上記方向Ｄ１及び距離Ｌ１）に基づいて変化させるという比較的簡易な処理によって実現できるようになる。
【００８６】
また本実施の形態では、仮に、第２選手オブジェクトの位置から第１選手オブジェクトの位置までの距離Ｌ１（図１３参照）が変化しない状態が一定時間継続したとしても、第２選手オブジェクトの変形制御点８２の位置が変化するようになっている。このため、仮に、第２選手オブジェクトの位置から第１選手オブジェクトの位置までの距離Ｌ１（図１３参照）が変化しない状態が一定時間継続したとしても、第２選手オブジェクトのユニフォームオブジェクト５２の変形の程度が変化するようになっている。その結果として、第２選手オブジェクトのユニフォームオブジェクト５２が第１選手オブジェクトによって引っ張られることによって変形する様子のリアリティが向上されている。
【００８７】
また本実施の形態では、第２選手オブジェクトのユニフォームオブジェクト５２が、変形制御点８２の位置と、第２選手オブジェクトの胸５８や腰６０等のスケルトンの回転と、を考慮して変形された後、そのユニフォームオブジェクト５２の変形具合に合わせて、第１選手オブジェクトの右手７２ｒの位置が決定される。そして、右手７２ｒの位置に基づいて、第１選手オブジェクトの姿勢（各スケルトンの状態）が決定される。本実施の形態によれば、第２選手オブジェクトのユニフォームオブジェクト５２が第１選手オブジェクトによって引っ張られることによって変形する様子を表現する場合に、第２選手オブジェクト自体の動き（移動等）も考慮して、第２選手オブジェクトのユニフォームオブジェクト５２が変形する様子を表現することが可能になる。その結果として、第２選手オブジェクトのユニフォームオブジェクト５２が第１選手オブジェクトによって引っ張られることによって変形する様子のリアリティが向上される。
【００８８】
なお、第２選手オブジェクトの変形制御点８２（上記方向Ｄ及び距離Ｌ）は、他の選手オブジェクト５０のユニフォームオブジェクト５２を掴んだ右手を選手オブジェクト５０が引く動作のモーションデータを用いて決定されるようにしてもよい。以下、この決定方法について説明する。なお以下では、上記のモーションデータには、第１フレーム（動作開始フレーム）から第１０フレーム（動作完了フレーム）までの各フレームにおける選手オブジェクト５０の各スケルトンの状態（回転角度等）が定められていることとして説明する。
【００８９】
この場合、Ｓ２０４において、まずマイクロプロセッサ１４は、第ｍフレームにおける各スケルトンの状態を上記のモーションデータから読み出す。そして、マイクロプロセッサ１４は、第ｍフレームにおける各スケルトンの状態から特定される第１選手オブジェクトの右手７２ｒ（所定部位）の先端７４の位置（原位置）を取得する。その後、マイクロプロセッサ１４（所定部位位置取得手段）は、その取得された原位置を下記に説明する方法によって補正してなる位置（補正位置）を取得する。
【００９０】
図１７は、取得された原位置の補正方法について説明するための図である。図１７において、符号７４ｏ−１，７４ｏ−２，７４ｏ−３，７４ｏ−ｍ，７４ｏ−９，７４ｏ−１０は、第１，２，３，ｍ，９，１０フレームにおける原位置をそれぞれ示している。また、符号７４−１，７４−２，７４−３，７４−ｍ，７４−９，７４−１０は、第１，２，３，ｍ，９，１０のフレームにおける補正位置をそれぞれ示している。
【００９１】
マイクロプロセッサ１４は、補正位置７４−ｍとして、原位置７４ｏ−ｍから第２選手オブジェクトの変形制御点８２の基本位置８２ａ（掴み対象点８０）までの直線８２−ｍを（１０−ｍ＋１）：（ｍ−１）に分割する位置を取得する。
【００９２】
例えば、変数ｍが２である場合、補正位置７４−２として、原位置７４ｏ−２から第２選手オブジェクトの変形制御点８２の基本位置８２ａまでの直線８２−２を９：１に分割する位置が取得される。また例えば、変数ｎが９である場合、補正位置７４−９として、原位置７４ｏ−９から第２選手オブジェクトの変形制御点８２の基本位置８２ａまでの直線８２−９を２：８に分割する位置が取得される。
【００９３】
図１８は、取得された原位置の他の補正方法について説明するための図である。図１８においても、図１７と同様に、符号７４ｏ−１，７４ｏ−２，７４ｏ−３，７４ｏ−ｍ，７４ｏ−９，７４ｏ−１０は、第１，２，３，ｍ，９，１０フレームにおける原位置をそれぞれ示している。また、符号７４−１，７４−２，７４−３，７４−ｍ，７４−９，７４−１０は、第１，２，３，ｎ，９，１０のフレームにおける補正位置をそれぞれ示している。
【００９４】
この場合、マイクロプロセッサ１４は、原位置７４ｏ−ｍに対して（（１０−ｍ＋１）／１０）＊ΔＰ２を加算することによって補正位置７４−ｍを取得する。なお、ΔＰ２は、第１フレームにおける原位置７４ｏ−１と、第２選手オブジェクトの変形制御点８２の基本位置８２ａ（掴み対象点８０）と、の差を示している。
【００９５】
例えば、変数ｍが２である場合、原位置７４ｏ−２に対して（９／１０）＊ΔＰ２を加算することによって補正位置７４−２が取得される。また例えば、変数ｎが９である場合、原位置７４ｏ−９に対して（２／１０）＊ΔＰ２を加算することによって補正位置７４−９が取得される。
【００９６】
図１７又は図１８に示す方法によって補正位置７４−ｍが取得された後、マイクロプロセッサ１４は、その補正位置７４−ｍに基づいて、第２選手オブジェクトの変形制御点８２の位置を決定する。
【００９７】
図１９は、第２選手オブジェクトの変形制御点８２の位置の決定方法について説明するための図である。まずマイクロプロセッサ１４（方向取得手段）は、第２選手オブジェクトの変形制御点８２の基本位置８２ａ（掴み対象点８０）から補正位置７４−ｍへの方向Ｄ２を取得する。またマイクロプロセッサ１４（距離取得手段）は、第２選手オブジェクトの変形制御点８２の基本位置８２ａ（掴み対象点８０）から補正位置７４−ｍまでの距離Ｌ２を取得する。
【００９８】
そしてマイクロプロセッサ１４（衣服オブジェクト制御手段）は、第２選手オブジェクト５０ｂの変形制御点８２の基本位置８２ａ（掴み対象点８０）から、方向Ｄに、距離Ｌだけ移動した位置に、第２選手オブジェクトの変形制御点８２の位置を設定する（図１４参照）。ここで、方向Ｄは方向Ｄ２と平行な方向である。また、距離Ｌは距離Ｌ２である。
【００９９】
このようにすれば、第１選手オブジェクトがユニフォームオブジェクト５２を引っ張る際の右手の動きを考慮して、第２選手オブジェクトの変形制御点８２の位置を決定することが可能になる。その結果、第１選手オブジェクトがユニフォームオブジェクト５２を引っ張る際の右手の動きを考慮して、第２選手オブジェクトのユニフォームオブジェクト５２を変形できるようになる。また、このようにしても、第２選手オブジェクトのユニフォームオブジェクト５２が第１選手オブジェクトによって引っ張られることによって変形する様子を表示することが、比較的簡易な処理によって実現できるようになる。
【０１００】
なお、上記方向Ｄ（図１４参照）は上記方向Ｄ１（図１３参照）に平行な方向とし、上記距離Ｌ（図１４参照）は上記距離Ｌ２（図１９参照）として、第２選手オブジェクトの変形制御点８２の位置を決定するようにしてもよい。
【０１０１】
このようにしても、第１選手オブジェクトがユニフォームオブジェクト５２を引っ張る際の右手の動きを考慮して、第２選手オブジェクトの変形制御点８２の位置を決定することが可能になる。その結果、第１選手オブジェクトがユニフォームオブジェクト５２を引っ張る際の右手の動きを考慮して、第２選手オブジェクトのユニフォームオブジェクト５２を変形できるようになる。
【０１０２】
また、変形制御点８２は、例えば、第１フレームにおける補正位置７４−１に基づいて決定された位置と、第３フレームにおける補正位置７４−３に基づいて決定された位置と、の間を往復するようにしてもよい。すなわち、変形制御点８２は、補正位置７４−１に基づいて決定された位置から、補正位置７４−２に基づいて決定された位置を経て、補正位置７４−３に基づいて決定された位置まで移動した場合、補正位置７４−２に基づいて決定された位置を経て、補正位置７４−１に基づいて決定された位置に戻るようにしてもよい。また、変形制御点８２は、補正位置７４−１に基づいて決定された位置に戻った場合、補正位置７４−２に基づいて決定された位置を経て、補正位置７４−３に基づいて決定された位置まで再び移動するようにしてもよい。
【０１０３】
このようにすれば、第１選手オブジェクトの第２選手オブジェクトに対する引っ張り動作を継続させることが可能になる。例えば、第１選手オブジェクトがユーザの操作対象の選手オブジェクト５０である場合には、ユーザが所定操作（例えばボタンの連打）を継続する間、第１選手オブジェクトの第２選手オブジェクトに対する引っ張り動作を継続させることも可能になる。
【０１０４】
以上説明したゲーム装置１０によれば、選手オブジェクト５０が敵チームに属する選手オブジェクト５０のユニフォームオブジェクト５２を掴んで引っ張る様子を比較的簡易な処理で表現できるようになる。
【０１０５】
なお、本発明は以上に説明した実施の形態に限定されるものではない。
【０１０６】
例えば、第１選手オブジェクトが第２選手オブジェクトのユニフォームオブジェクト５２を引っ張った場合、第２選手オブジェクトの能力を示すパラメータの値が、第２選手オブジェクトの能力が低くなるように補正されるようにしてもよい。例えば、第２選手オブジェクトの移動速度が遅くなるようにしてもよい。
【０１０７】
また例えば、ゲーム装置１０で実行されるサッカーゲーム以外のスポーツゲームであってもよい。本発明は、例えば、選手同士の接触プレイが発生し得るバスケットボール等のゲームに適用することができる。また、ゲーム装置１０で実行されるゲームは、スポーツゲーム以外のゲームであってもよい。
【０１０８】
また例えば、以上の説明では、プログラムを情報記憶媒体たるＤＶＤ−ＲＯＭ２５から家庭用ゲーム機１１に供給するようにしたが、通信ネットワークを介してプログラムを家庭等に配信するようにしてもよい。図２０は、通信ネットワークを用いたプログラム配信システムの全体構成を示す図である。図２０に基づいて本発明に係るプログラム配信方法を説明する。図２０に示すように、このプログラム配信システム１００は、ゲームデータベース１０２、サーバ１０４、通信ネットワーク１０６、パソコン１０８、家庭用ゲーム機１１０、ＰＤＡ（携帯情報端末）１１２を含んでいる。このうち、ゲームデータベース１０２とサーバ１０４とによりプログラム配信装置１１４が構成される。通信ネットワーク１０６は、例えばインターネットやケーブルテレビネットワークを含んで構成されている。このシステムでは、ゲームデータベース（情報記憶媒体）１０２に、ＤＶＤ−ＲＯＭ２５の記憶内容と同様のプログラムが記憶されている。そして、パソコン１０８、家庭用ゲーム機１１０又はＰＤＡ１１２等を用いて需要者がゲーム配信要求をすることにより、それが通信ネットワーク１０６を介してサーバ１０４に伝えられる。そして、サーバ１０４はゲーム配信要求に応じてゲームデータベース１０２からプログラムを読み出し、それをパソコン１０８、家庭用ゲーム機１１０、ＰＤＡ１１２等、ゲーム配信要求元に送信する。ここではゲーム配信要求に応じてゲーム配信するようにしたが、サーバ１０４から一方的に送信するようにしてもよい。また、必ずしも一度にゲームの実現に必要な全てのプログラムを配信（一括配信）する必要はなく、ゲームの局面に応じて必要な部分を配信（分割配信）するようにしてもよい。このように通信ネットワーク１０６を介してゲーム配信するようにすれば、プログラムを需要者は容易に入手することができるようになる。
【図面の簡単な説明】
【０１０９】
【図１】本実施の形態に係るゲーム装置のハードウェア構成を示す図である。
【図２】仮想３次元空間の一例を示す図である。
【図３】選手オブジェクトの一例を示す図である。
【図４】選手オブジェクトに設定されるスケルトンの一例を示す図である。
【図５】選手オブジェクトに設定されるスケルトンの階層構造の一例を示す図である。
【図６】選手オブジェクトの前方の所定領域について説明するための図である。
【図７】掴み対象点について説明するための図である。
【図８】敵選手オブジェクトが選手オブジェクトに背中を見せているか否かの判定方法について説明するための図である。
【図９】第２選手オブジェクトのユニフォームオブジェクトを第１選手オブジェクトが掴む様子を表示するための処理を示すフロー図である。
【図１０】第１選手オブジェクトの右手の先端の位置の補正方法について説明するための図である。
【図１１】第１選手オブジェクトの右手の先端の位置の他の補正方法について説明するための図である。
【図１２】第２選手オブジェクトのユニフォームオブジェクトを第１選手オブジェクトが引っ張る様子を表示するための処理を示すフロー図である。
【図１３】第２選手オブジェクトの変形制御点の位置の決定方法について説明するための図である。
【図１４】第２選手オブジェクトの変形制御点の位置の決定方法について説明するための図である。
【図１５】第２選手オブジェクトのユニフォームオブジェクトの変形について説明するための図である。
【図１６】第２選手オブジェクトのユニフォームオブジェクトの変形について説明するための図である。
【図１７】第１選手オブジェクトの右手の先端の位置の補正方法について説明するための図である。
【図１８】第１選手オブジェクトの右手の先端の位置の他の補正方法について説明するための図である。
【図１９】第２選手オブジェクトの変形制御点の位置の他の決定方法について説明するための図である。
【図２０】本発明の他の実施形態に係るプログラム配信システムの全体構成を示す図である。
【符号の説明】
【０１１０】
１０  ゲーム装置、１１，１１０  家庭用ゲーム機、１２  バス、１４  マイクロプロセッサ、１６  画像処理部、１８  モニタ、２０  音声処理部、２２  スピーカ、２４  ＤＶＤ−ＲＯＭ再生部、２５  ＤＶＤ−ＲＯＭ、２６  主記憶、２８  メモリカード、３０  入出力処理部、３２  コントローラ、４０  仮想３次元空間、４２  フィールドオブジェクト、４４  ゴールオブジェクト、４６  仮想カメラ、５０  選手オブジェクト、５０ａ  第１選手オブジェクト、５０ｂ  第２選手オブジェクト、５０ｅ  敵選手オブジェクト、５２  ユニフォームオブジェクト、５４  頭、５６  首、５８  胸、６０  腰、６２ｌ  左腿、６２ｒ  右腿、６４ｌ  左脛、６４ｒ  右脛、６６ｌ  左足、６６ｒ  右足、６８ｌ  左上腕、６８ｒ  右上腕、７０ｌ  左前腕、７０ｒ  右前腕、７２ｌ  左手、７２ｒ  右手、７４  先端、７４ｏ−１，７４ｏ−２，７４ｏ−３，７４ｏ−ｎ，７４ｏ−ｍ，７４ｏ−８，７４ｏ−９，７４ｏ−１０  原位置、７４−１，７４−２，７４−３，７４−ｎ，７４−ｍ，７４−８，７４−９，７４−１０  補正位置、７６，７６ｅ  正面方向、７８  所定領域、８０  掴み対象点、８２  変形制御点、８２ａ  基準位置、８６  頂点、８６ａ  基準頂点、１００  プログラム配信システム、１０２  ゲームデータベース、１０４  サーバ、１０６  通信ネットワーク、１０８  パソコン、１１２  携帯情報端末（ＰＤＡ）、１１４  プログラム配信装置。
【図１】
2008295970.tif 000003
【図２】
2008295970.tif 000004
【図３】
2008295970.tif 000005
【図４】
2008295970.tif 000006
【図５】
2008295970.tif 000007
【図６】
2008295970.tif 000008
【図７】
2008295970.tif 000009
【図８】
2008295970.tif 000010
【図９】
2008295970.tif 000011
【図１０】
2008295970.tif 000012
【図１１】
2008295970.tif 000013
【図１２】
2008295970.tif 000014
【図１３】
2008295970.tif 000015
【図１４】
2008295970.tif 000016
【図１５】
2008295970.tif 000017
【図１６】
2008295970.tif 000018
【図１７】
2008295970.tif 000019
【図１８】
2008295970.tif 000020
【図１９】
2008295970.tif 000021
【図２０】
2008295970.tif 000022