(57)【特許請求の範囲】
【請求項１】
キャラクタオブジェクトが体の向きを変えながら所定部位を目標位置まで移動させる様子を表示する画像処理装置において、
前記キャラクタオブジェクトが前記体の向きを変えながら前記所定部位を基本目標位置まで移動させる場合の各フレームにおける、前記キャラクタオブジェクトの正面方向と、
前記所定部位の位置と、を取得するためのモーションデータを記憶するモーションデータ記憶手段と、
実際目標位置を取得する実際目標位置取得手段と、
前記基本目標位置から前記実際目標位置への方向と、前記キャラクタオブジェクトの前記正面方向と、の間の方向差と、前記基本目標位置と前記実際目標位置との間の位置差と、を示す差データを取得する差データ取得手段と、
前記キャラクタオブジェクトが前記体の向きを変えながら前記所定部位を前記実際目標位置まで移動させる様子を、前記モーションデータと、前記差データと、に基づいて表示する表示制御手段と、
を含み、
前記表示制御手段は、前記キャラクタオブジェクトが前記体の向きを変えながら前記所定部位を前記実際目標位置まで移動させる場合の各フレームにおける前記所定部位の位置を、前記キャラクタオブジェクトが前記体の向きを変えながら前記所定部位を前記基本目標位置まで移動させる場合の各フレームにおける前記所定部位の位置から、該フレームにおける前記キャラクタオブジェクトの前記正面方向と前記差データが示す前記方向差とに基づいて決定される方向に、前記差データが示す前記位置差に基づいて決定される距離だけ移動した位置に設定する、
ことを特徴とする画像処理装置。
【請求項２】
請求項１に記載の画像処理装置において、
前記差データ取得手段は、
前記基本目標位置から前記実際目標位置への方向と、前記基本目標位置から前記実際目標位置までの距離と、をワールド座標系で示す第１のベクトルデータを取得する手段と、
前記ワールド座標系の基準方向を前記キャラクタオブジェクトの前記正面方向まで回転させるための行列式の逆行列と前記第１のベクトルデータとを乗算することによって得られる第２のベクトルデータを前記差データとして取得する手段と、を含み、
前記表示制御手段は、前記キャラクタオブジェクトが前記体の向きを変えながら前記所定部位を前記実際目標位置まで移動させる場合の各フレームにおける前記所定部位の位置を、該位置から、前記ワールド座標系の前記基準方向を該フレームにおける前記キャラクタオブジェクトの前記正面方向まで回転させるための行列式と前記第２のベクトルデータとの乗算に基づいて決定される方向に、前記第２のベクトルデータが示す距離に基づいて決定される距離だけ移動した位置に設定する、
ことを特徴とする画像処理装置。
【請求項３】
マイクロプロセッサを含み、キャラクタオブジェクトが体の向きを変えながら所定部位を目標位置まで移動させる様子を表示する画像処理装置の制御方法において、
前記マイクロプロセッサが、前記キャラクタオブジェクトが前記体の向きを変えながら前記所定部位を基本目標位置まで移動させる場合の各フレームにおける、前記キャラクタオブジェクトの正面方向と、前記所定部位の位置と、を取得するためのモーションデータを記憶してなるモーションデータ記憶手段に記憶される前記モーションデータを読み出すステップと、
前記マイクロプロセッサが、実際目標位置を取得する実際目標位置取得ステップと、
前記マイクロプロセッサが、前記基本目標位置から前記実際目標位置への方向と、前記キャラクタオブジェクトの前記正面方向と、の間の方向差と、前記基本目標位置と前記実際目標位置との間の位置差と、を示す差データを取得する差データ取得ステップと、
前記マイクロプロセッサが、前記キャラクタオブジェクトが前記体の向きを変えながら前記所定部位を前記実際目標位置まで移動させる様子を、前記モーションデータと、前記差データと、に基づいて表示手段に表示させる表示制御ステップと、
を含み、
前記表示制御ステップにおいて、前記マイクロプロセッサは、前記キャラクタオブジェクトが前記体の向きを変えながら前記所定部位を前記実際目標位置まで移動させる場合の各フレームにおける前記所定部位の位置を、前記キャラクタオブジェクトが前記体の向きを変えながら前記所定部位を前記基本目標位置まで移動させる場合の各フレームにおける前記所定部位の位置から、該フレームにおける前記キャラクタオブジェクトの前記正面方向と前記差データが示す前記方向差とに基づいて決定される方向に、前記差データが示す前記位置差に基づいて決定される距離だけ移動した位置に設定する、
ことを特徴とする画像処理装置の制御方法。
【請求項４】
キャラクタオブジェクトが体の向きを変えながら所定部位を目標位置まで移動させる様子を表示する画像処理装置としてコンピュータを機能させるためのプログラムであって、
前記キャラクタオブジェクトが前記体の向きを変えながら前記所定部位を基本目標位置まで移動させる場合の各フレームにおける、前記キャラクタオブジェクトの正面方向と、前記所定部位の位置と、を取得するためのモーションデータを記憶してなるモーションデータ記憶手段に記憶されるモーションデータを読み出す手段、
実際目標位置を取得する実際目標位置取得手段、
前記基本目標位置から前記実際目標位置への方向と、前記キャラクタオブジェクトの前記正面方向と、の間の方向差と、前記基本目標位置と前記実際目標位置との間の位置差と、を示す差データを取得する差データ取得手段、及び、
前記キャラクタオブジェクトが前記体の向きを変えながら前記所定部位を前記実際目標位置まで移動させる様子を、前記モーションデータと、前記差データと、に基づいて表示する表示制御手段、
として前記コンピュータを機能させ、
前記表示制御手段は、前記キャラクタオブジェクトが前記体の向きを変えながら前記所定部位を前記実際目標位置まで移動させる場合の各フレームにおける前記所定部位の位置を、前記キャラクタオブジェクトが前記体の向きを変えながら前記所定部位を前記基本目標位置まで移動させる場合の各フレームにおける前記所定部位の位置から、該フレームにおける前記キャラクタオブジェクトの前記正面方向と前記差データが示す前記方向差とに基づいて決定される方向に、前記差データが示す前記位置差に基づいて決定される距離だけ移動した位置に設定する、
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像処理装置、画像処理装置の制御方法及びプログラムに関する。
【背景技術】
【０００２】
キャラクタオブジェクトが体の向きを変えながら所定部位を目標位置まで移動させる様子を表示する画像処理装置が知られている。例えばサッカーゲーム装置では、サッカー選手を表すキャラクタオブジェクトが一方の足を軸として体の向きを変えながら、他方の足（所定部位）でボールオブジェクト（目標位置）を蹴る様子が表示される。
【０００３】
例えばサッカーゲーム装置では、キック動作を行う場合のキャラクタオブジェクトの姿勢変化（体の向きや足の位置の変化）を定めたモーションデータが用意される。そして、そのモーションデータに従ってキャラクタオブジェクトの姿勢を変化させることによって、キック動作を行うキャラクタオブジェクトが表示される。
【０００４】
【特許文献１】特開２００７−１６４７２１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
例えばサッカーゲーム装置では、キャラクタオブジェクトがボールオブジェクトを蹴ろうとする度に、キャラクタオブジェクトとボールオブジェクトとの位置関係が異なる。このため、キック動作のモーションデータで想定されているキック位置と、実際のボールオブジェクトの位置と、が離れている場合がある。したがって、キック動作のモーションデータが一種類しか用意されていない場合、キャラクタオブジェクトとボールオブジェクトとの位置関係によっては、キャラクタオブジェクトの足がボールオブジェクトに当たらないおそれがある。
【０００６】
この対処方法としては、キック動作のモーションデータの再生終了時にキャラクタオブジェクトの足をボールオブジェクトまで強制的に移動させてしまう方法が考えられる。しかしながら、この方法を採用した場合、キック動作の自然さが損なわれ、その結果、ユーザに違和感を感じさせてしまう。
【０００７】
また、他の対処方法としては、キャラクタオブジェクトとボールオブジェクトとの位置関係を考慮して、キック動作のモーションデータを多数用意しておく方法も考えられる。しかしながら、この方法を採用した場合、多数のモーションデータを用意しなければならないため、モーションデータのデータ量や、モーションデータの作成の作業量が増大してしまう。
【０００８】
本発明は上記課題に鑑みてなされたものであって、その目的は、キャラクタオブジェクトが体の向きを変えながら所定部位を目標位置まで移動させる様子を表示することを、キャラクタオブジェクトの動作の自然さが損なわれないように図りつつ、かつ、データ量及び作業量の軽減を図りつつ実現できるようになる画像処理装置、画像処理装置の制御方法及びプログラムを提供することにある。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、本発明に係る画像処理装置は、キャラクタオブジェクトが体の向きを変えながら所定部位を目標位置まで移動させる様子を表示する画像処理装置において、前記キャラクタオブジェクトが前記体の向きを変えながら前記所定部位を基本目標位置まで移動させる場合の各フレームにおける、前記キャラクタオブジェクトの代表方向と、前記所定部位の位置と、を取得するためのモーションデータを記憶するモーションデータ記憶手段と、実際目標位置を取得する実際目標位置取得手段と、前記基本目標位置から前記実際目標位置への方向と、前記キャラクタオブジェクトの前記代表方向と、の間の方向差と、前記基本目標位置と前記実際目標位置との間の位置差と、を示す差データを取得する差データ取得手段と、前記キャラクタオブジェクトが前記体の向きを変えながら前記所定部位を前記実際目標位置まで移動させる様子を、前記モーションデータと、前記差データと、に基づいて表示する表示制御手段と、を含み、前記表示制御手段は、前記キャラクタオブジェクトが前記体の向きを変えながら前記所定部位を前記実際目標位置まで移動させる場合の各フレームにおける前記所定部位の位置を、前記キャラクタオブジェクトが前記体の向きを変えながら前記所定部位を前記基本目標位置まで移動させる場合の各フレームにおける前記所定部位の位置から、該フレームにおける前記キャラクタオブジェクトの前記代表方向と前記差データが示す前記方向差とに基づいて決定される方向に、前記差データが示す前記位置差に基づいて決定される距離だけ移動した位置に設定することを特徴とする。
【００１０】
また、本発明に係る画像処理装置の制御方法は、キャラクタオブジェクトが体の向きを変えながら所定部位を目標位置まで移動させる様子を表示する画像処理装置の制御方法において、前記キャラクタオブジェクトが前記体の向きを変えながら前記所定部位を基本目標位置まで移動させる場合の各フレームにおける、前記キャラクタオブジェクトの代表方向と、前記所定部位の位置と、を取得するためのモーションデータを記憶してなるモーションデータ記憶手段に記憶される前記モーションデータを読み出すステップと、実際目標位置を取得する実際目標位置取得ステップと、前記基本目標位置から前記実際目標位置への方向と、前記キャラクタオブジェクトの前記代表方向と、の間の方向差と、前記基本目標位置と前記実際目標位置との間の位置差と、を示す差データを取得する差データ取得ステップと、前記キャラクタオブジェクトが前記体の向きを変えながら前記所定部位を前記実際目標位置まで移動させる様子を、前記モーションデータと、前記差データと、に基づいて表示する表示制御ステップと、を含み、前記表示制御ステップは、前記キャラクタオブジェクトが前記体の向きを変えながら前記所定部位を前記実際目標位置まで移動させる場合の各フレームにおける前記所定部位の位置を、前記キャラクタオブジェクトが前記体の向きを変えながら前記所定部位を前記基本目標位置まで移動させる場合の各フレームにおける前記所定部位の位置から、該フレームにおける前記キャラクタオブジェクトの前記代表方向と前記差データが示す前記方向差とに基づいて決定される方向に、前記差データが示す前記位置差に基づいて決定される距離だけ移動した位置に設定するステップを含むことを特徴とする。
【００１１】
また、本発明に係るプログラムは、キャラクタオブジェクトが体の向きを変えながら所定部位を目標位置まで移動させる様子を表示する画像処理装置として、例えば家庭用ゲーム機、携帯用ゲーム機、携帯電話機、携帯情報端末（ＰＤＡ）又はパーソナルコンピュータ等のコンピュータを機能させるためのプログラムであって、前記キャラクタオブジェクトが前記体の向きを変えながら前記所定部位を基本目標位置まで移動させる場合の各フレームにおける、前記キャラクタオブジェクトの代表方向と、前記所定部位の位置と、を取得するためのモーションデータを記憶してなるモーションデータ記憶手段に記憶されるモーションデータを読み出す手段、実際目標位置を取得する実際目標位置取得手段、前記基本目標位置から前記実際目標位置への方向と、前記キャラクタオブジェクトの前記代表方向と、の間の方向差と、前記基本目標位置と前記実際目標位置との間の位置差と、を示す差データを取得する差データ取得手段、及び、前記キャラクタオブジェクトが前記体の向きを変えながら前記所定部位を前記実際目標位置まで移動させる様子を、前記モーションデータと、前記差データと、に基づいて表示する表示制御手段、として前記コンピュータを機能させ、前記表示制御手段は、前記キャラクタオブジェクトが前記体の向きを変えながら前記所定部位を前記実際目標位置まで移動させる場合の各フレームにおける前記所定部位の位置を、前記キャラクタオブジェクトが前記体の向きを変えながら前記所定部位を前記基本目標位置まで移動させる場合の各フレームにおける前記所定部位の位置から、該フレームにおける前記キャラクタオブジェクトの前記代表方向と前記差データが示す前記方向差とに基づいて決定される方向に、前記差データが示す前記位置差に基づいて決定される距離だけ移動した位置に設定することを特徴とするプログラムである。
【００１２】
また、本発明に係る情報記憶媒体は、上記プログラムを記録したコンピュータ読み取り可能な情報記憶媒体である。また、本発明に係るプログラム配信装置は、上記プログラムを記録した情報記憶媒体を備え、当該情報記憶媒体から上記プログラムを読み出し、配信するプログラム配信装置である。また、本発明に係るプログラム配信方法は、上記プログラムを記録した情報記憶媒体から上記プログラムを読み出し、配信するプログラム配信方法である。
【００１３】
本発明は、キャラクタオブジェクトが体の向きを変えながら所定部位を目標位置まで移動させる様子を表示する画像処理装置に関する。本発明では、キャラクタオブジェクトが体の向きを変えながら所定部位を基本目標位置まで移動させる場合の各フレームにおける、キャラクタオブジェクトの代表方向と、所定部位の位置と、を取得するためのモーションデータが記憶される。また本発明では実際目標位置が取得される。基本目標位置から実際目標位置への方向と、キャラクタオブジェクトの代表方向と、の間の方向差と、基本目標位置と実際目標位置との間の位置差と、を示す差データが取得される。キャラクタオブジェクトが体の向きを変えながら所定部位を実際目標位置まで移動させる様子を、モーションデータと、差データと、に基づいて表示される。キャラクタオブジェクトが体の向きを変えながら所定部位を実際目標位置まで移動させる場合の各フレームにおける所定部位の位置が、キャラクタオブジェクトが体の向きを変えながら所定部位を基本目標位置まで移動させる場合の各フレームにおける所定部位の位置から、該フレームにおけるキャラクタオブジェクトの代表方向と上記の差データが示す方向差とに基づいて決定される方向に、上記の差データが示す位置差に基づいて決定される距離だけ移動した位置に設定される。本発明によれば、キャラクタオブジェクトが体の向きを変えながら所定部位を目標位置まで移動させる様子を表示することを、キャラクタオブジェクトの動作の自然さが損なわれないように図りつつ、かつ、データ量及び作業量の軽減を図りつつ実現できるようになる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明の実施形態の一例について図面に基づき詳細に説明する。ここでは、画像処理装置の一態様であるゲーム装置に本発明を適用した例について説明する。なお、ゲーム装置は、例えば家庭用ゲーム機、携帯用ゲーム機、携帯電話機、携帯情報端末（ＰＤＡ）又はパーソナルコンピュータ等によって実現される。ここでは、ゲーム装置が家庭用ゲーム機によって実現する場合について説明する。
【００１５】
図１は、本発明の実施形態に係るゲーム装置（画像処理装置）の全体構成を示す図である。図１に示すゲーム装置１０は、家庭用ゲーム機１１、モニタ３２、スピーカ３４、光ディスク３６を含んでいる。モニタ３２及びスピーカ３４は家庭用ゲーム機１１に接続される。モニタ３２としては例えば家庭用テレビ受像機が用いられる。スピーカ３４としては例えば家庭用テレビ受像機に内蔵されたスピーカが用いられる。光ディスク３６は情報記憶媒体であり、家庭用ゲーム機１１に装着される。
【００１６】
家庭用ゲーム機１１は公知のコンピュータゲームシステムである。家庭用ゲーム機１１は、バス１２、マイクロプロセッサ１４、主記憶１６、画像処理部１８、入出力処理部２０、音声処理部２２、光ディスク読み取り部２４、ハードディスク２６、通信インタフェース２８及びコントローラ３０を含んでいる。コントローラ３０以外の構成要素は家庭用ゲーム機１１の筐体内に収容される。
【００１７】
バス１２はアドレス及びデータを家庭用ゲーム機１１の各部でやり取りするためのものである。マイクロプロセッサ１４、主記憶１６、画像処理部１８及び入出力処理部２０は、バス１２によって相互データ通信可能に接続される。
【００１８】
マイクロプロセッサ１４は図示しないＲＯＭに格納されるオペレーティングシステム、光ディスク３６又はハードディスク２６から読み出されるプログラム及びデータに基づいて、家庭用ゲーム機１１の各部を制御する。主記憶１６は例えばＲＡＭを含んでいる。主記憶１６には光ディスク３６又はハードディスク２６から読み出されたプログラム及びデータが必要に応じて書き込まれる。主記憶１６はマイクロプロセッサ１４の作業用メモリとしても用いられる。
【００１９】
画像処理部１８はＶＲＡＭを含んでいる。画像処理部１８はマイクロプロセッサ１４から送られる画像データに基づいてＶＲＡＭ上にゲーム画面を描画する。そして、画像処理部１８はＶＲＡＭ上に描画されたゲーム画面をビデオ信号に変換して所定のタイミングでモニタ３２に出力する。
【００２０】
入出力処理部２０はマイクロプロセッサ１４が音声処理部２２、光ディスク読み取り部２４、ハードディスク２６、通信インタフェース２８及びコントローラ３０にアクセスするためのインタフェースである。入出力処理部２０には、音声処理部２２、光ディスク読み取り部２４、ハードディスク２６、通信インタフェース２８及びコントローラ３０が接続される。
【００２１】
音声処理部２２はサウンドバッファを含んでいる。サウンドバッファには光ディスク３６又はハードディスク２６から読み出されたゲーム音楽、ゲーム効果音、メッセージ等の各種音声データが記憶される。音声処理部２２はサウンドバッファに記憶された各種音声データを再生してスピーカ３４から出力する。
【００２２】
光ディスク読み取り部２４はマイクロプロセッサ１４からの指示に従って光ディスク３６に記録されたプログラムやデータを読み取る。なお、ここではプログラムやデータを家庭用ゲーム機１１に供給するために光ディスク３６を用いることとするが、ＲＯＭカード等、他の情報記憶媒体を用いるようにしてもよい。また、例えばインターネット等の通信ネットワークを介して遠隔地からプログラムやデータを家庭用ゲーム機１１に供給するようにしてもよい。
【００２３】
ハードディスク２６は一般的なハードディスク装置（補助記憶装置）である。ハードディスク２６にはプログラムやデータが記憶される。通信インタフェース２８はインターネット等の通信ネットワークに家庭用ゲーム機１１を有線又は無線接続するためのインタフェースである。
【００２４】
コントローラ３０はユーザが各種ゲーム操作を入力するための汎用操作入力手段である。入出力処理部２０は一定周期毎（例えば１／６０秒ごと）にコントローラ３０の各部の状態をスキャンする。そして、入出力処理部２０はそのスキャン結果を表す操作信号をバス１２を介してマイクロプロセッサ１４に渡す。マイクロプロセッサ１４はその操作信号に基づいてプレイヤのゲーム操作を判定する。家庭用ゲーム機１１には複数のコントローラ３０を接続することが可能である。マイクロプロセッサ１４は各コントローラ３０から入力される操作信号に基づいてゲーム制御を実行する。
【００２５】
上記の構成を備えるゲーム装置１０では、光ディスク３６から読み出されたゲームプログラムが実行されることによって、例えばサッカーゲームが実行される。
【００２６】
主記憶１６には仮想３次元空間が構築される。図２は仮想３次元空間の一例を示している。図２に示すように、サッカーのフィールドを表すフィールドオブジェクト４２が仮想３次元空間４０に配置される。フィールドオブジェクト４２上には、ゴールを表すゴールオブジェクト４４と、サッカー選手を表すキャラクタオブジェクト４６と、サッカーボールを表すボールオブジェクト４８と、が配置される。これらのオブジェクトは複数のポリゴンを含んで構成される。なお、図２では各オブジェクトが簡略化して表されている。図２では省略されているが、フィールドオブジェクト４２上には２２体のキャラクタオブジェクト４６が配置される。
【００２７】
また、仮想３次元空間４０には仮想カメラ４９が配置される。この仮想カメラ４９から仮想３次元空間４０を見た様子を表すゲーム画面がモニタ３２に表示される。ユーザはこのゲーム画面を見ながら操作対象のキャラクタオブジェクト４６を操作する。操作対象のキャラクタオブジェクト４６はユーザによって指示された動作を行う。その他のキャラクタオブジェクト４６は所定の行動指示アルゴリズムによって指示された動作を行う。
【００２８】
本実施の形態では、キャラクタオブジェクト４６の姿勢を制御するためのスケルトンがキャラクタオブジェクト４６の内部に設定される。スケルトンは、関節に相当するジョイントと、ジョイント間を接続するボーンと、を含んで構成される。図３はキャラクタオブジェクト４６に設定されるスケルトンの一例を示している。図３に示す例では、腰スケルトン５０、胸スケルトン５２、首スケルトン５４、頭スケルトン５６、左上腕スケルトン５８ｌ、右上腕スケルトン５８ｒ、左前腕スケルトン６０ｌ、右前腕スケルトン６０ｒ、左手スケルトン６２ｌ、右手スケルトン６２ｒ、左腿スケルトン６４ｌ，右腿スケルトン６４ｒ、左脛スケルトン６６ｌ、右脛スケルトン６６ｒ、左足スケルトン６８ｌ、右足スケルトン６８ｒがキャラクタオブジェクト４６に設定されている。これらのスケルトンは腰スケルトン５０をルートとする階層構造で管理される。あるスケルトン（ボーン又はジョイント）の状態（回転角度や位置等）が変化した場合、そのスケルトンの下の階層のスケルトンも連動する。例えば、右腿スケルトン６４ｒが回転した場合、右腿スケルトン６４ｒの下の階層のスケルトンである右脛スケルトン６６ｒや右足スケルトン６８ｒが右腿スケルトン６４ｒの回転に合わせて動く。このため、最下層のスケルトンの位置はそのスケルトンよりも上の階層のスケルトンの状態（回転角度や位置等）によって特定される。例えば、右足スケルトン６８ｒの位置は、腰スケルトン５０、右腿スケルトン６４ｒや右脛スケルトン６６ｒの状態によって特定される。なお、最下層のスケルトンの位置に基づいて、そのスケルトンよりも上の階層のスケルトンの状態（回転角度や位置等）を特定することも可能である（インバースキネマティクス法）。例えば、右足スケルトン６８ｒの位置に基づいて、腰スケルトン５０、右腿スケルトン６４ｒや右脛スケルトン６６ｒの状態を特定することも可能である。
【００２９】
キャラクタオブジェクト４６に設定された各スケルトンには、キャラクタオブジェクト４６に含まれるポリゴンの頂点が関連づけられる。そして、スケルトンの状態が変化した場合には、そのスケルトンに関連づけられたポリゴンの頂点がそのスケルトンの状態変化に従って移動する。その結果として、キャラクタオブジェクト４６の姿勢が変化する。
【００３０】
ゲーム装置１０では、ユーザや行動指示アルゴリズムによって指示された動作をキャラクタオブジェクト４６に行わせるためにモーションデータが用いられる。モーションデータは、キャラクタオブジェクト４６が各種動作を行う場合の各フレーム（例えば１／６０秒）ごとのキャラクタオブジェクト４６の姿勢変化を定めたデータである。より具体的には、モーションデータは、キャラクタオブジェクト４６が各種動作を行う場合の各フレームごとの各スケルトンの状態変化を定めたデータである。ゲーム装置１０は、モーションデータに従ってキャラクタオブジェクト４６の姿勢を変化させることによって、ユーザや行動指示アルゴリズムによって指示された動作をキャラクタオブジェクト４６が行う様子を表示する。なお以下では、モーションデータに従ってキャラクタオブジェクト４６の姿勢を変化させることを「モーションデータを再生する」と記載する。
【００３１】
ゲーム装置１０は、例えば走行動作、ドリブル動作、ヘディング動作やボレーキック動作等のモーションデータを記憶する。「ボレーキック動作」とは、キャラクタオブジェクト４６が一方の足（ここでは左足とする。）を軸として体をひねりながら、他方の足（ここでは右足とする。）で、空中に浮いたボールオブジェクト４８をキックする動作である。
【００３２】
ここで、ボレーキック動作のモーションデータ（以下、「ボレーキックモーションデータ」と記載する。）が示すキャラクタオブジェクト４６の姿勢変化について説明する。図４は、ボレーキックモーションデータの再生開始時のキャラクタオブジェクト４６の姿勢を示す。図５は、ボールオブジェクト４８をボレーキックする瞬間のキャラクタオブジェクト４６の姿勢を示す。なお、以下では、ボレーキックモーションデータの再生が開始されてから（すなわち、キャラクタオブジェクト４６がボレーキック動作を開始してから）、Ｎ番目のフレーム（以下、「第Ｎフレーム」というように記載する。）で、キャラクタオブジェクト４６の姿勢が図５に示す姿勢になることとして説明する。
【００３３】
図４及び図５に示すように、ボレーキックモーションデータが再生された場合、キャラクタオブジェクト４６は左足７１ｌを軸として体の正面方向７２（代表方向）を方向Ｄ０から方向ＤＮに変えながら、右足７１ｒ（所定部位）をキック目標位置７４にめがけて振り上げる。キック目標位置７４は、キャラクタオブジェクト４６と所定の位置関係を有する位置に設定される。例えば、キック目標位置７４は、キャラクタオブジェクト４６の正面方向７２にある位置であって、かつ、キャラクタオブジェクト４６の代表点７０からの距離が所定距離である位置に設定される。
【００３４】
図６は、ボレーキックモーションデータが再生された場合におけるキャラクタオブジェクト４６の体の正面方向７２の変化と、右足７１ｒ（右足スケルトン６８ｒ）の位置の変化と、を上方（Ｙｗ軸正方向側）から見た様子を示す。図６において、方向Ｄ０はボレーキックモーションデータの再生開始時におけるキャラクタオブジェクト４６の体の正面方向７２を示す。方向Ｄｎは第ｎフレームにおけるキャラクタオブジェクト４６の体の正面方向７２を示し、方向ＤＮは第Ｎフレームにおけるキャラクタオブジェクト４６の体の正面方向７２を示す。また、軌道８０はキャラクタオブジェクト４６の右足７１ｒ（右足スケルトン６８ｒ）の軌道を示す。そして、軌道８０上の位置ＰＯ０は、ボレーキックモーションデータの再生開始時におけるキャラクタオブジェクト４６の右足７１ｒ（右足スケルトン６８ｒ）の位置を示す。また、位置ＰＯｎは、第ｎフレームにおけるキャラクタオブジェクト４６の右足７１ｒ（右足スケルトン６８ｒ）の位置を示し、位置ＰＯＮは第Ｎフレームにおけるキャラクタオブジェクト４６の右足７１ｒ（右足スケルトン６８ｒ）の位置を示す。位置ＰＯＮはキック目標位置７４に一致する。なお、説明を分かりやすくするため、方向Ｄ０はＺｗ軸負方向に平行な方向であり、方向ＤＮはＸｗ軸正方向に平行な方向であることとする。
【００３５】
以上のように、ボレーキックモーションデータは、キャラクタオブジェクト４６と所定の位置関係を有するキック目標位置７４にあるボールオブジェクト４６をキャラクタオブジェクト４６がボレーキックする場合を想定して生成されている。しかしながら、キャラクタオブジェクト４６とボールオブジェクト４８との位置関係は一定ではない。例えば、キャラクタオブジェクト４６に向かって飛んで来るボールオブジェクト４８を該キャラクタオブジェクト４６にボレーキックさせる場合、ボールオブジェクト４８はキック目標位置７４からずれた位置に飛んで来ることもある。この場合、ボレーキックモーションデータを単に再生しただけでは、キャラクタオブジェクト４６の右足７１ｒがボールオブジェクト４８に当たらなくなる。
【００３６】
この場合の対処方法としては、第Ｎフレームにおいてキャラクタオブジェクト４６の右足７１ｒ（右足スケルトン６８ｒ）をボールオブジェクト４８の位置まで強制的に移動させてしまう方法が考えられる。しかしながら、この方法を採用した場合、ボレーキック動作の自然さが損なわれ、その結果、ユーザに違和感を感じさせてしまうおそれがある。
【００３７】
また、他の対処方法としては、キック目標位置７４の異なる多数のボレーキックモーションデータをあらかじめ用意しておく方法も考えられる。この場合、キャラクタオブジェクト４６とボールオブジェクト４８との位置関係に応じて、該多数のボレーキックモーションデータのうちのいずれかを再生するようにすれば、キャラクタオブジェクト４６の右足７１ｒがボールオブジェクト４８に当たるようにすることが可能になる。しかしながら、この方法を採用した場合、多数のボレーキックモーションデータを用意しなければならなくなるため、ボレーキックモーションデータのデータ量やボレーキックモーションデータを作成するための作業量が増大してしまう。
【００３８】
以下、ボレーキック動作の自然さが損なわれないように図りつつ、かつ、ボレーキックモーションデータに係るデータ量や作業量の軽減を図りつつ、キャラクタオブジェクト４６のボレーキック動作を好適に表示するための技術について説明する。
【００３９】
まず、ゲーム装置１０に記憶されるデータについて説明する。下記に説明するデータのうち、光ディスク３６に記憶されるデータはハードディスク２６に記憶されていてもよい。
【００４０】
光ディスク３６は、仮想３次元空間４０に配置される各オブジェクトのモデルデータを記憶する。また、光ディスク３６（モーションデータ記憶手段）は、キャラクタオブジェクト４６の各種動作のモーションデータを記憶する。光ディスク３６は、例えば、図４に示すキック目標位置７４にあるボールオブジェクト４６をキャラクタオブジェクト４６がボレーキックする場合を想定して生成されたボレーキックモーションデータを記憶する。
【００４１】
また、主記憶１６はゲームの現在の状況を示すゲーム状況データを記憶する。図７はゲーム状況データのデータ構成の一例を示す図である。図７に示すゲーム状況データは、ボールオブジェクト４８の現在の状態（位置、移動方向、移動速度等）を示すデータと、各キャラクタオブジェクト４６の現在の状態を示すデータと、を含む。キャラクタオブジェクト４６の現在の状態を示すデータは、例えば、キャラクタオブジェクト４６の「位置」データ、「姿勢」データ、「スケルトン状態」データ、「操作対象フラグ」、「再生中モーションデータＩＤ」、「現在フレーム番号」等を含む。「位置」データはキャラクタオブジェクト４６の現在位置を示す。「姿勢」データはキャラクタオブジェクト４６の現在の姿勢（体の正面方向７２等）を示す。「スケルトン状態」データは各スケルトンの状態（回転角度や位置等）を示すデータである。「操作対象フラグ」はキャラクタオブジェクト４６がユーザの操作対象であるか否かを示すデータである。「再生中モーションデータＩＤ」は再生中のモーションデータを示すデータである。「現在フレーム番号」はモーションデータの何番目のフレームが再生中であるかを示すデータである。なお図７では省略されているが、ゲーム状況データには例えば各チームの得点状況等の試合経過を示すデータも含まれる。
【００４２】
次に、ゲーム装置１０で実行される処理について説明する。図８及び図９はゲーム装置１０で実行される処理を示すフロー図である。マイクロプロセッサ１４は光ディスク３６に記憶されるプログラムに従って、図８又は図９に示す処理を実行する。
【００４３】
図８は、キャラクタオブジェクト４６にボレーキック動作を開始させる場合にゲーム装置１０で実行される処理を示している。図８の処理は、例えば、ユーザの操作対象のキャラクタオブジェクト４６に向かってボールオブジェクト４８が飛んで来る状態において、ユーザがボレーキック指示ボタンを押下した場合に実行される。
【００４４】
図１０は図８に示す処理を説明するための図である。図１０は、ボールオブジェクト４８がキック目標位置７４よりもＸｗ軸負方向側に飛んで来ている場合を示している。すなわち、図１０は、実際のキック目標位置７４ａが、ボレーキックモーションデータで想定されているキック目標位置７４よりもＸｗ軸負方向にずれている場合を示している。なお以下では、ボレーキックモーションデータで想定されているキック目標位置７４のことを「基本目標位置」と記載する。一方、実際のキック目標位置７４ａのことを「実際目標位置」と記載する。
【００４５】
図８に示すように、まずマイクロプロセッサ１４（実際目標位置取得手段）は実際目標位置を取得する（Ｓ１０１）。マイクロプロセッサ１４は、キャラクタオブジェクト４６とボールオブジェクト４８との位置関係に基づいて、実際目標位置を取得する。すなわち、マイクロプロセッサ１４は、キャラクタオブジェクト４６の位置と、ボールオブジェクト４８の位置や移動方向と、に基づいて、実際目標位置を取得する。
【００４６】
その後、マイクロプロセッサ１４（差データ取得手段）は、基本目標位置と実際目標位置との差を示すベクトルΔＰＮを取得する（Ｓ１０２）。ベクトルΔＰＮは、基本目標位置から実際目標位置までの方向と、基本目標位置から実際目標位置までの距離と、をワールド座標系（図２に示すＸｗＹｗＺｗ座標系）で示すベクトルである。なお、基本目標位置は、キャラクタオブジェクト４６の位置や姿勢（体の正面方向７２）に基づいて算出される。図１０に示す例の場合、基本目標位置及び実際目標位置のワールド座標を（ｘ，ｙ，ｚ）及び（ｘ−Δｘ，ｙ，ｚ）とすると、ベクトルΔＰＮとして（−Δｘ，０，０）が取得される。
【００４７】
その後、マイクロプロセッサ１４（差データ取得手段）は、ボールオブジェクト４８をボレーキックする際のキャラクタオブジェクト４６の体の正面方向７２（方向ＤＮ）を表す行列式ＭＮを取得する（Ｓ１０３）。ここで、行列式ＭＮは、ワールド座標系の基準方向を、ボールオブジェクト４８をボレーキックする際のキャラクタオブジェクト４６の体の正面方向７２まで回転させる行列式である。なお、ボールオブジェクト４８をボレーキックする際のキャラクタオブジェクト４６の体の正面方向７２は、ボレーキックモーションデータに基づいて取得することができる。すなわち、ボールオブジェクト４８をボレーキックする際のキャラクタオブジェクト４６の体の正面方向７２は、キャラクタオブジェクト４６の現在の姿勢に基づいてボレーキックモーションデータを第Ｎフレームまで内部的に再生することによって取得することができる。
【００４８】
その後、マイクロプロセッサ１４（差データ取得手段）は、下記の式（１）に示すように、Ｓ１０３で取得された行列式ＭＮの逆行列と、Ｓ１０２で取得されたベクトルΔＰＮと、を乗算することによってベクトルＬ（差データ）を算出する（Ｓ１０４）。なお、本明細書において「＊」は乗算演算子を示している。
【００４９】
Ｌ＝ＭＮ−１＊ΔＰＮ  ・・・  （１）
【００５０】
上記の式（１）において、「ＭＮ−１」は、ボールオブジェクト４８をボレーキックする際のキャラクタオブジェクト４６の体の正面方向７２（方向ＤＮ）をワールド座標系の基準方向まで回転させる行列式に相当する。このため、ベクトルＬは、キャラクタオブジェクト４６の体の正面方向７２を基準方向とした場合のベクトルΔＰＮを示す。すなわち、ベクトルＬは、「基本目標位置から実際目標位置への方向と、キャラクタオブジェクト４６の体の正面方向７２と、の間の方向差」と、「基本目標位置と実際目標位置との間の位置差（距離）」と、を示すベクトルになる。さらに言い換えれば、ベクトルＬは、実際目標位置が、基本目標位置から、キャラクタオブジェクト４６の体の正面方向７２に対してどの方向に、どの程度ずれているかを示す。図１０に示す例の場合、基本目標位置（キック目標位置７４）から実際目標位置（キック目標位置７４ａ）への方向（Ｘｗ軸負方向）は、ボールオブジェクト４８をボレーキックする際のキャラクタオブジェクト４６の体の正面方向７２（方向ＤＮ：Ｘｗ軸正方向）の逆方向になっている。このため、ベクトルＬは、実際目標位置が、基本目標位置から、キャラクタオブジェクト４６の体の正面方向７２の逆方向（背面方向）に、Δｘずれていることを示すことになる。
【００５１】
その後、マイクロプロセッサ１４は、Ｓ１０４で算出されたベクトルＬを主記憶１６に保存する（Ｓ１０５）。そして、マイクロプロセッサ１４（表示制御手段）は、キャラクタオブジェクト４６にボレーキック動作を開始させる（Ｓ１０６）。この場合、キャラクタオブジェクト４６の「再生中モーションデータＩＤ」にボレーキックモーションデータのＩＤがセットされるとともに、「現在フレーム番号」に例えば０がセットされる。そして、図９に示す処理の実行が開始される。図９に示す処理は、例えばボレーキック動作が完了するまでの間、所定時間（例えば１／６０秒）ごとに繰り返し実行される。
【００５２】
ここで、図９に示す処理について説明する。図１１は図９に示す処理を説明するための図である。
【００５３】
図９に示すように、まずマイクロプロセッサ１４（表示制御手段）はキャラクタオブジェクト４６の「現在フレーム番号（ｎ）」に１を加算する（Ｓ２０１）。すなわち、マイクロプロセッサ１４は現在フレームを１フレーム進める。
【００５４】
その後、マイクロプロセッサ１４（表示制御手段）は、第ｎフレーム（現在フレーム）におけるキャラクタオブジェクト４６の体の正面方向７２（方向Ｄｎ）表す行列式Ｍｎを取得する（Ｓ２０２）。ここで、行列式Ｍｎは、ワールド座標系の基準方向を、第ｎフレームにおけるキャラクタオブジェクト４６の体の正面方向７２まで回転させる行列式である。なお、第ｎフレームにおけるキャラクタオブジェクト４６の体の正面方向７２は、前フレーム（第ｎ−１フレーム）におけるキャラクタオブジェクト４６の姿勢（体の正面方向７２）と、ボレーキックモーションデータに保持された「第ｎ−１フレームと第ｎフレームとの間のキャラクタオブジェクト４６の各スケルトンの状態変化」と、に基づいて取得することができる。
【００５５】
その後、マイクロプロセッサ１４（表示制御手段）は第ｎフレームにおけるキャラクタオブジェクト４６の右足スケルトン６８ｒの基本位置ＰＯｎを取得する（Ｓ２０３）。ここでは、ボレーキックモーションデータを再生した場合の第ｎフレームにおける右足スケルトン６８ｒの位置ＰＯｎ（図６参照）のことを「基本位置ＰＯｎ」と記載している。なお、基本位置ＰＯｎはボレーキックモーションデータを内部的に再生することによって取得することができる。また、基本位置ＰＯｎはワールド座標系の位置として取得される。
【００５６】
その後、マイクロプロセッサ１４（表示制御手段）は基本位置ＰＯｎを下記の式（２）に従って補正することによって、第ｎフレームにおけるキャラクタオブジェクト４６の右足スケルトン６８ｒの実際位置Ｐｎを取得する（Ｓ２０４）。実際位置Ｐｎもワールド座標系の位置として取得される。
【００５７】
Ｐｎ＝（Ｍｎ＊Ｌ＊（ｎ／Ｎ））＋ＰＯｎ  ・・・  （２）
【００５８】
図１０に示す例では、ベクトルΔＰＮの方向は、ボールオブジェクト４８をボレーキックする際のキャラクタオブジェクト４６の体の正面方向７２（方向ＤＮ）の逆方向と平行な方向になっている。この場合、実際位置Ｐｎは、基本位置ＰＯｎから、第ｎフレームにおけるキャラクタオブジェクト４６の体の正面方向７２（方向Ｄｎ）の逆方向８４と平行な方向８６に移動した位置に設定される。また、基本位置ＰＯｎから実際位置Ｐｎまでの距離は、現在までのフレーム数（ｎ）を、右足スケルトン６８ｒが実際のキック目標位置７４ａに到達するまでのフレーム数（Ｎ）で除算することによって得られる値（ｎ／Ｎ）を、基本目標位置と実際目標位置との間の距離（Δｘ）に対して乗算することによって得られる距離になる。
【００５９】
なお、現在フレームが第Ｎフレームである場合の実際位置Ｐｎは、下記の式（３）のように算出されるため、実際位置Ｐｎは実際のキック目標位置７４ａ（ＰＯＮ＋ΔＰＮ）に一致する。すなわち、キャラクタオブジェクト４６の右足７１ｒが実際のキック目標位置７４ａに移動することになる。その結果、キャラクタオブジェクト４６の右足７１ｒがボールオブジェクト４８に当たるようになる。
【００６０】
Ｐｎ＝（ＭＮ＊ＭＮ−１＊ΔＰＮ＊（Ｎ／Ｎ））＋ＰＯＮ  ・・・  （３）
【００６１】
第ｎフレームにおける右足スケルトン６８ｒの実際位置Ｐｎが算出された後、マイクロプロセッサ１４（表示制御手段）は、キャラクタオブジェクト４６の各スケルトンの状態（回転角度や位置等）を更新する（Ｓ２０５）。例えば、マイクロプロセッサ１４は、右足スケルトン６８ｒの上の階層の右脛スケルトン６６ｒ、右腿スケルトン６４ｒや腰スケルトン５０の状態を、右足スケルトン６８ｒの実際位置Ｐｎに基づいて決定する。この場合、公知のインバースキネマティクス法のアルゴリズムが用いられる。また例えば、マイクロプロセッサ１４は、他のスケルトンの状態をボレーキックモーションデータに従って決定する。そして、マイクロプロセッサ１４はキャラクタオブジェクト４６の「スケルトン状態」データを更新する。なお、図９では省略されているが、Ｓ２０５の処理が実行されるとともに、例えばボールオブジェクト４８の状態データを更新する処理や、ユーザの操作対象でないキャラクタオブジェクト４６の状態データを更新する処理も実行される。
【００６２】
その後、マイクロプロセッサ１４及び画像処理部１８（表示制御手段）はゲーム状況データに基づいてゲーム画面を更新する（Ｓ２０６）。すなわち、マイクロプロセッサ１４及び画像処理部１８は、「キャラクタオブジェクト４６やボールオブジェクト４８がゲーム状況データに基づいて配置された仮想３次元空間４０」を仮想カメラ４９から見た様子を表すゲーム画面をＶＲＡＭ上に生成する。ＶＲＡＭ上に生成されたゲーム画面は所定のタイミングでモニタ３２に表示出力される。
【００６３】
上記に説明した処理（図９）が所定時間ごとに繰り返し実行されることによって、キャラクタオブジェクト４６がボレーキック動作を行う様子がゲーム画面に表される。
【００６４】
以上説明したゲーム装置１０では、上記に説明したようにしてキャラクタオブジェクト４６の右足７１ｒ（右足スケルトン６８ｒ）の位置が補正されることによって、ボレーキックモーションデータで想定されているキック目標位置７４からずれた位置にボールオブジェクト４８が飛んで来た場合にもキャラクタオブジェクト４６の右足７１ｒがボールオブジェクト４８に当たるようになる。
【００６５】
またゲーム装置１０では、キャラクタオブジェクト４６の右足スケルトン６８ｒの基本位置ＰＯｎと実際位置Ｐｎとの間の距離は、現在フレーム番号（ｎ）の増加（すなわち、ボレーキック動作が開始されてからの時間経過）に伴って徐々に大きくなる（上記式（２）参照）。すなわち、キャラクタオブジェクト４６の右足７１ｒが実際のキック目標位置７４ａに到達するように、キャラクタオブジェクト４６の右足７１ｒの位置が徐々に補正されるようになっている。その結果、キャラクタオブジェクト４６の右足７１ｒの動きが不自然にならないように図られており、ボレーキック動作が不自然であるとの印象をユーザに感じさせないように図られている。
【００６６】
またゲーム装置１０では、キック目標位置７４の異なる多数のボレーキックモーションデータを用意する必要がない。このため、ボレーキックモーションデータに関するデータ量や作業量の増大が抑制される。
【００６７】
ところで、キャラクタオブジェクト４６の右足スケルトン６８ｒの位置を補正する方法としては次のような方法も考えられる。図１２は右足スケルトン６８ｒの位置の他の補正方法を説明するための図である。図１２に示す補正方法では、第ｎフレームにおける右足スケルトン６８ｒの基本位置ＰＯｎが下記の式（４）に従って補正されることによって、右足スケルトン６８ｒの実際位置Ｐｎが取得される。
【００６８】
Ｐｎ＝ΔＰＮ＊（ｎ／Ｎ）＋ＰＯｎ  ・・・  （４）
【００６９】
この場合、右足スケルトン６８ｒの位置はキャラクタオブジェクト４６の姿勢（体の正面方向７２）とは関係なく補正される。また、この場合、右足スケルトン６８ｒの軌道は図１２に示す軌道８８になる。このようにしても、ボレーキックモーションデータで想定されているキック目標位置７４からずれた位置にボールオブジェクト４８が飛んで来た場合に、キャラクタオブジェクト４６の右足７１ｒがボールオブジェクト４８に当たるようになる。また、ボレーキックモーションデータに関するデータ量や作業量の増大を抑制することが可能になる。
【００７０】
しかしながら、本実施の形態における右足スケルトン６８ｒの軌道８２と、ボレーキックモーションデータをそのまま再生した場合の右足スケルトン６８ｒの軌道８０と、の相違は、図１２に示す方法を採用した場合の右足スケルトン６８ｒの軌道８８と、軌道８０と、の相違に比較して小さくなる。すなわち、本実施の形態によれば、キャラクタオブジェクト４６の姿勢（体の正面方向７２）を考慮して右足スケルトン６８ｒの位置が補正される結果として、ボレーキックモーションデータをそのまま再生した場合の右足スケルトン６８ｒの軌道８０との類似度が向上される。一般的に、ボレーキックモーションデータの作成者は、ボレーキック動作（右足７１ｒの軌道）ができる限り自然な動きとなるように考慮してボレーキックモーションデータを作成すると考えられる。このため、ボレーキックモーションデータをそのまま再生した場合の右足スケルトン６８ｒの軌道８０との類似度が高まるということは、ボレーキック動作がより自然な動きになることを意味している。すなわち、本実施の形態によれば、図１２に示す方法に比べて、ボレーキック動作の自然さを向上することが可能になる。
【００７１】
なお、本発明は以上に説明した実施の形態に限定されるものではない。
【００７２】
例えば、本発明は、キャラクタオブジェクト４６がボレーキック動作以外の動作を行う場合にも適用できる。また、本発明はサッカーゲーム以外のゲームにも適用できる。例えば、本発明は、キャラクタオブジェクトが体の向きを変えながら他のキャラクタオブジェクトに対してパンチやキックを行う格闘ゲームにも適用できる。例えば、本発明は、キャラクタオブジェクトが敵キャラクタオブジェクトに対して回し蹴りを行う様子を表示する場合にも適用できる。また、本発明はゲーム装置１０以外の画像処理装置にも適用できる。
【００７３】
また例えば、以上の説明では、プログラムを情報記憶媒体たる光ディスク３６から家庭用ゲーム機１１に供給するようにしたが、通信ネットワークを介してプログラムを家庭等に配信するようにしてもよい。図１３は、通信ネットワークを用いたプログラム配信システムの全体構成を示す図である。図１３に基づいて本発明に係るプログラム配信方法を説明する。図１３に示すように、このプログラム配信システム１００は、ゲームデータベース１０２、サーバ１０４、通信ネットワーク１０６、パソコン１０８、家庭用ゲーム機１１０、ＰＤＡ（携帯情報端末）１１２を含んでいる。このうち、ゲームデータベース１０２とサーバ１０４とによりプログラム配信装置１１４が構成される。通信ネットワーク１０６は、例えばインターネットやケーブルテレビネットワークを含んで構成されている。このシステムでは、ゲームデータベース（情報記憶媒体）１０２に、光ディスク３６の記憶内容と同様のプログラムが記憶されている。そして、パソコン１０８、家庭用ゲーム機１１０又はＰＤＡ１１２等を用いて需要者がゲーム配信要求をすることにより、それが通信ネットワーク１０６を介してサーバ１０４に伝えられる。そして、サーバ１０４はゲーム配信要求に応じてゲームデータベース１０２からプログラムを読み出し、それをパソコン１０８、家庭用ゲーム機１１０、ＰＤＡ１１２等、ゲーム配信要求元に送信する。ここではゲーム配信要求に応じてゲーム配信するようにしたが、サーバ１０４から一方的に送信するようにしてもよい。また、必ずしも一度にゲームの実現に必要な全てのプログラムを配信（一括配信）する必要はなく、ゲームの局面に応じて必要な部分を配信（分割配信）するようにしてもよい。このように通信ネットワーク１０６を介してゲーム配信するようにすれば、プログラムを需要者は容易に入手することができるようになる。
【図面の簡単な説明】
【００７４】
【図１】本実施の形態に係るゲーム装置（画像処理装置）のハードウェア構成を示す図である。
【図２】仮想３次元空間の一例を示す図である。
【図３】キャラクタオブジェクトに設定されるスケルトンの一例を示す図である。
【図４】ボレーキック動作の一例を示す図である。
【図５】ボレーキック動作の一例を示す図である。
【図６】ボレーキック動作を行う場合のキャラクタオブジェクトの体の向きや右足の位置の変化を示す図である。
【図７】ゲーム状況データの一例を示す図である。
【図８】キャラクタオブジェクトにボレーキック動作を開始させる場合にゲーム装置で実行される処理を示すフロー図である。
【図９】キャラクタオブジェクトにボレーキック動作を行っている間にゲーム装置で実行される処理を示すフロー図である。
【図１０】キャラクタオブジェクトにボレーキック動作を開始させる場合にゲーム装置で実行される処理について説明するための図である。
【図１１】キャラクタオブジェクトにボレーキック動作を行っている間にゲーム装置で実行される処理について説明するための図である。
【図１２】右足スケルトンの位置の他の補正方法を説明するための図である。
【図１３】本発明の実施形態に係るプログラム配信システムの全体構成を示す図である。
【符号の説明】
【００７５】
１０  ゲーム装置、１１，１１０  家庭用ゲーム機、１２  バス、１４  マイクロプロセッサ、１６  主記憶、１８  画像処理部、２０  入出力処理部、２２  音声処理部、２４  光ディスク読み取り部、２６  ハードディスク、２８  通信インタフェース、３０  コントローラ、３２  モニタ、３４  スピーカ、３６  光ディスク、４０  仮想３次元空間、４２  フィールドオブジェクト、４４  ゴールオブジェクト、４６  キャラクタオブジェクト、４８  ボールオブジェクト、４９  仮想カメラ、５０  腰スケルトン、５２  胸スケルトン、５４  首スケルトン、５６  頭スケルトン、５８ｌ  左上腕スケルトン、５８ｒ  右上腕スケルトン、６０ｌ  左前腕スケルトン、６０ｒ  右前腕スケルトン、６２ｌ  左手スケルトン、６２ｒ  右手スケルトン、６４ｌ  左腿スケルトン、６４ｒ  右腿スケルトン、６６ｌ  左脛スケルトン、６６ｒ  右脛スケルトン、６８ｌ  左足スケルトン、６８ｒ  右足スケルトン、７０  キャラクタオブジェクトの代表点、７１ｌ  左足、７１ｒ  右足、７２  キャラクタオブジェクトの体の正面方向、７４，７４ａ  キック目標位置、８０，８２，８８  軌道、１００  プログラム配信システム、１０２  ゲームデータベース、１０４  サーバ、１０６  通信ネットワーク、１０８  パソコン、１１２  携帯情報端末（ＰＤＡ）、１１４  プログラム配信装置。
【図１】
0004892454.tif 000002
【図２】
0004892454.tif 000003
【図３】
0004892454.tif 000004
【図４】
0004892454.tif 000005
【図５】
0004892454.tif 000006
【図６】
0004892454.tif 000007
【図７】
0004892454.tif 000008
【図８】
0004892454.tif 000009
【図９】
0004892454.tif 000010
【図１０】
0004892454.tif 000011
【図１１】
0004892454.tif 000012
【図１２】
0004892454.tif 000013
【図１３】
0004892454.tif 000014