(57)【特許請求の範囲】
【請求項１】
画像生成を行う画像生成システムであって、
モデルオブジェクトにモーションを行わせるモーション処理を行う手段と、
モデルオブジェクトを構成するパーツオブジェクトが地形面に潜り込まないように、モーション処理により特定されるモデルオブジェクトの形状を、起伏を有する地形の形状に応じて変形させる手段と、
オブジェクト空間内の所与の視点での画像を生成する手段とを含み、
モーション処理により特定されるモデルオブジェクトの形状において最も低い位置にあるパーツオブジェクトから所与の高さ範囲内にあるパーツオブジェクトを候補パーツオブジェクトとして選択し、選択された候補パーツオブジェクトのうち、その配置位置での地形の高さが最も低い候補パーツオブジェクトが地形面に接地する高さに、モデルオブジェクトを配置し、該配置により他のパーツオブジェクトが地形面に潜り込んだ場合に、該他のパーツオブジェクトが地形面に接地するようにモデルオブジェクトの形状を変形させることを特徴とする画像生成システム。
【請求項２】
請求項１において、
モデルオブジェクトを配置する高さを、地形の高さに応じて変化させると共に、
モデルオブジェクトが空中移動状態である場合にも、空中移動の軌道を、モデルオブジェクトの位置での地形の高さに応じて変化させることを特徴とする画像生成システム。
【請求項３】
請求項１又は２において、
モデルオブジェクトを配置する高さを、地形の高さに応じて変化させると共に、
モデルオブジェクトが、そのパーツオブジェクトを地形面に接地させながら移動する通常移動状態である場合には、パーツオブジェクトの配置位置での地形の高さに応じて、モデルオブジェクトの高さを変化させ、
モデルオブジェクトが空中移動状態である場合には、モデルオブジェクトの高さを決定するための判断点をモデルオブジェクトの代表点に固定し、該代表点の位置での地形の高さに応じて、モデルオブジェクトの高さを変化させることを特徴とする画像生成システム
。
【請求項４】
請求項１乃至３のいずれかにおいて、
モデルオブジェクトを配置する高さを、地形の高さに応じて変化させると共に、
地形の高さの変化率よりも低い変化率で、モデルオブジェクトの高さを変化させることを特徴とする画像生成システム。
【請求項５】
請求項１乃至４のいずれかにおいて、
モデルオブジェクトが、ゲームに登場するキャラクタであり、
モデルオブジェクトを配置する高さを、地形の高さに応じて変化させると共に、
地形の高さに基づき得られた高さにモデルオブジェクトを配置した時にモデルオブジェクトの腰パーツオブジェクトが地形面に潜り込んでいる場合には、腰パーツオブジェクトが地形面に接地するように、モデルオブジェクトの高さを高くすることを特徴とする画像生成システム。
【請求項６】
請求項５において、
腰パーツオブジェクト以外のパーツオブジェクトの高さが、腰パーツオブジェクトの高さよりも低くなるように、モデルオブジェクトの形状を変形することを特徴とする画像生成システム。
【請求項７】
モデルオブジェクトにモーションを行わせるモーション処理を行う手段と、
モデルオブジェクトを構成するパーツオブジェクトが地形面に潜り込まないように、モーション処理により特定されるモデルオブジェクトの形状を、起伏を有する地形の形状に応じて変形させる手段と、
オブジェクト空間内の所与の視点での画像を生成する手段として、
コンピュータを機能させるプログラムであって、
モーション処理により特定されるモデルオブジェクトの形状において最も低い位置にあるパーツオブジェクトから所与の高さ範囲内にあるパーツオブジェクトを候補パーツオブジェクトとして選択し、選択された候補パーツオブジェクトのうち、その配置位置での地形の高さが最も低い候補パーツオブジェクトが地形面に接地する高さに、モデルオブジェクトを配置し、該配置により他のパーツオブジェクトが地形面に潜り込んだ場合に、該他のパーツオブジェクトが地形面に接地するようにモデルオブジェクトの形状を変形させることを特徴とするプログラム。
【請求項８】
請求項７において、
モデルオブジェクトを配置する高さを、地形の高さに応じて変化させると共に、
モデルオブジェクトが空中移動状態である場合にも、空中移動の軌道を、モデルオブジェクトの位置での地形の高さに応じて変化させることを特徴とするプログラム。
【請求項９】
請求項７又は８において、
モデルオブジェクトを配置する高さを、地形の高さに応じて変化させると共に、
モデルオブジェクトが、そのパーツオブジェクトを地形面に接地させながら移動する通常移動状態である場合には、パーツオブジェクトの配置位置での地形の高さに応じて、モデルオブジェクトの高さを変化させ、
モデルオブジェクトが空中移動状態である場合には、モデルオブジェクトの高さを決定するための判断点をモデルオブジェクトの代表点に固定し、該代表点の位置での地形の高さに応じて、モデルオブジェクトの高さを変化させることを特徴とするプログラム。
【請求項１０】
請求項７乃至９のいずれかにおいて、
モデルオブジェクトを配置する高さを、地形の高さに応じて変化させると共に、
地形の高さの変化率よりも低い変化率で、モデルオブジェクトの高さを変化させることを特徴とするプログラム。
【請求項１１】
請求項７乃至１０のいずれかにおいて、
モデルオブジェクトが、ゲームに登場するキャラクタであり、
モデルオブジェクトを配置する高さを、地形の高さに応じて変化させると共に、
地形の高さに基づき得られた高さにモデルオブジェクトを配置した時にモデルオブジェクトの腰パーツオブジェクトが地形面に潜り込んでいる場合には、腰パーツオブジェクトが地形面に接地するように、モデルオブジェクトの高さを高くすることを特徴とするプログラム。
【請求項１２】
請求項１１において、
腰パーツオブジェクト以外のパーツオブジェクトの高さが、腰パーツオブジェクトの高さよりも低くなるように、モデルオブジェクトの形状を変形することを特徴とするプログラム。
【請求項１３】
コンピュータ読み取り可能な情報記憶媒体であって、請求項７乃至１２のいずれかのプログラムを記憶したことを特徴とする情報記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像生成システム、プログラム及び情報記憶媒体に関する。
【０００２】
【背景技術及び発明が解決しようとする課題】
従来より、仮想的な３次元空間であるオブジェクト空間内において仮想カメラ（所与の視点）から見える画像を生成する画像生成システム（ゲームシステム）が知られており、いわゆる仮想現実を体験できるものとして人気が高い。格闘ゲームを楽しむことができる画像生成システムを例にとれば、プレーヤは、ゲームコントローラ（操作手段）を用いて自キャラクタ（モデルオブジェクト）を操作し、相手プレーヤやコンピュータが操作する敵キャラクタと対戦することでゲームを楽しむ。
【０００３】
さて、従来、このような格闘ゲームでは、自キャラクタと敵キャラクタとが、起伏の無い平らな地形面（地面）上で対峙して対戦するのが一般的であった。従って、地形の起伏の影響をゲームに反映させることができず、生成される画像のリアル度を今ひとつ向上できなかった。
【０００４】
また、この種の格闘ゲームでは、予め用意されたモーションを再生することにより、キャラクタの手足等の動きを表現している。例えば、キャラクタを前に歩かせる操作をプレーヤが行った場合には、前歩き用に用意されたモーションが再生され、キャラクタをジャンプさせる操作を行った場合には、ジャンプ用に用意されたモーションが再生される。
【０００５】
しかしながら、このように予め用意されたモーションを単に再生することのみでキャラクタの動きを表現しようとすると、キャラクタの動きが現実世界とは異なる不自然なものになってしまう場合がある。特に、起伏を有する地形面上でのキャラクタの動きを表現しようとすると、キャラクタの足が地面に潜り込んでしまうなどの不具合が生じることが判明した。
【０００６】
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、モデルオブジェクトの自然な動きを少ない処理負荷で表現できる画像生成システム、プログラム及び情報記憶媒体を提供することにある。
【０００７】
【課題を解決するための手段】
上記課題を解決するために、本発明は、画像生成を行う画像生成システムであって、モデルオブジェクトにモーションを行わせるモーション処理を行う手段と、モデルオブジェクトを構成するパーツオブジェクトが地形面に潜り込まないように、モーション処理により特定されるモデルオブジェクトの形状を、起伏を有する地形の形状に応じて変形させる手段と、オブジェクト空間内の所与の視点での画像を生成する手段とを含むことを特徴とする。また本発明に係るプログラムは、上記手段としてコンピュータを機能させることを特徴とする。また本発明に係る情報記憶媒体は、コンピュータ読み取り可能な情報記憶媒体であって、上記手段としてコンピュータを機能させるためのプログラムを記憶（記録）したことを特徴とする。
【０００８】
本発明によれば、モーション処理（モーション再生、モーション生成）によりモデルオブジェクトの形状（基準形状、各フレームでの形状）が特定される。そして、パーツオブジェクトが地形面の下に潜り込まないように（埋まらないように）、この特定されたモデルオブジェクトの形状が地形の形状（地形データ）に応じて変形される（モーションが変化する）。従って本発明によれば、モーション処理によりモデルオブジェクトにモーションを行わせながら、モデルオブジェクトの形状を、地形の形状に適合するように変形させることができ、地形の形状を反映させたモデルオブジェクトの画像を生成できる。
【０００９】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体は、モデルオブジェクトを構成するパーツオブジェクトのうち、その配置位置での地形の高さが低いパーツオブジェクトが地形面に接地する高さに、モデルオブジェクトを配置し、該配置により他のパーツオブジェクトが地形面に潜り込んだ場合に、該他のパーツオブジェクトが地形面に接地するようにモデルオブジェクトの形状を変形させることを特徴とする。
【００１０】
このようにすれば、配置位置（配置位置の真下）での地形の高さが他のパーツオブジェクトに比べて低いパーツオブジェクトを確実に地形面に接地させながら、配置位置での地形の高さが高い他のパーツオブジェクトが地形面の下に潜り込むのを防止できる。そして、配置位置での地形の高さが高い他のパーツオブジェクトが、地形面に接地できなくなるような事態を防止でき、より自然で矛盾の無い画像を生成できる。
【００１１】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体は、モーション処理により特定されるモデルオブジェクトの形状において最も低い位置にあるパーツオブジェクトから所与の高さ範囲内にあるパーツオブジェクトを候補パーツオブジェクトとして選択し、選択された候補パーツオブジェクトのうち、その配置位置での地形の高さが最も低い候補パーツオブジェクトが地形面に接地する高さに、モデルオブジェクトを配置することを特徴とする。
【００１２】
このようにすれば、地形面に接地させるべきではないパーツオブジェクトが地形面に接地されてしまう事態等を防止できる。
【００１３】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体は、モデルオブジェクトを配置する高さを、地形の高さに応じて変化させると共に、モデルオブジェクトが空中移動状態である場合にも、空中移動の軌道を、モデルオブジェクトの位置での地形の高さに応じて変化させることを特徴とする。
【００１４】
このようにすれば、空中移動状態（ジャンプ状態、攻撃を受けて飛んだ状態又は高い場所から落下している状態等）にあるモデルオブジェクトを、適正な着地モーションで地形面に着地させること等が可能になる。
【００１５】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体は、モデルオブジェクトを配置する高さを、地形の高さに応じて変化させると共に、モデルオブジェクトが、そのパーツオブジェクトを地形面に接地させながら移動する通常移動状態である場合には、パーツオブジェクトの配置位置での地形の高さに応じて、モデルオブジェクトの高さを変化させ、モデルオブジェクトが空中移動状態である場合には、モデルオブジェクトの高さを決定するための判断点をモデルオブジェクトの代表点に固定し、該代表点の位置での地形の高さに応じて、モデルオブジェクトの高さを変化させることを特徴とする。
【００１６】
このようにすれば、モデルオブジェクトの高さを決定するための判断点（地形データを地形データ記憶部から読み出すための点）が、次々に変わってしまう事態を防止でき、処理の簡素化を図れる。
【００１７】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体は、モデルオブジェクトを配置する高さを、地形の高さに応じて変化させると共に、地形の高さの変化率よりも低い変化率で、モデルオブジェクトの高さを変化させることを特徴とする。
【００１８】
このようにすれば、地形の高さが急激に変化した場合にそれに応じてモデルオブジェクトの配置高さが急激に変化してしまう事態を防止でき、起伏のある地形面上でのモデルオブジェクトのスムーズな移動を実現できる。
【００１９】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体は、モデルオブジェクトが、ゲームに登場するキャラクタであり、モデルオブジェクトを配置する高さを、地形の高さに応じて変化させると共に、地形の高さに基づき得られた高さにモデルオブジェクトを配置した時にモデルオブジェクトの腰パーツオブジェクトが地形面に潜り込んでいる場合には、腰パーツオブジェクトが地形面に接地するように、モデルオブジェクトの高さを高くすることを特徴とする。
【００２０】
このようにすれば、モデルオブジェクトであるキャラクタが寝転がっている場合等において、その腰パーツオブジェクトが地形面の下に潜り込んでしまう事態を防止できる。
【００２１】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体は、腰パーツオブジェクト以外のパーツオブジェクトの高さが、腰パーツオブジェクトの高さよりも低くなるように、モデルオブジェクトの形状を変形することを特徴とする。
【００２２】
このようにすれば、モデルオブジェクトであるキャラクタが寝転がっている場合等において、モデルオブジェクトの形状を、地形面の形状に適合するように変形させることが可能になる。
【００２３】
また本発明は、画像生成を行う画像生成システムであって、モデルオブジェクトを配置する高さを、地形の高さに応じて変化させる手段と、モデルオブジェクトにモーションを行わせるモーション処理を行う手段と、オブジェクト空間内の所与の視点での画像を生成する手段とを含み、モデルオブジェクトが空中移動状態である場合にも、空中移動の軌道を、モデルオブジェクトの位置での地形の高さに応じて変化させることを特徴とする。また本発明に係るプログラムは、上記手段としてコンピュータを機能させることを特徴とする。また本発明に係る情報記憶媒体は、コンピュータ読み取り可能な情報記憶媒体であって、上記手段としてコンピュータを機能させるためのプログラムを記憶（記録）したことを特徴とする。
【００２４】
本発明によれば、モーション処理によるモーションを行わせながら、モデルオブジェクトを空中移動させることができる。そして、この空中移動状態のモデルオブジェクトを、適正な着地モーションで地形面に着地させること等が可能になり、よりリアルで自然な画像を生成できる。
【００２５】
また本発明は、画像生成を行う画像生成システムであって、モデルオブジェクトを配置する高さを、地形の高さに応じて変化させる手段と、モデルオブジェクトにモーションを行わせるモーション処理を行う手段と、オブジェクト空間内の所与の視点での画像を生成する手段とを含み、モデルオブジェクトが、パーツオブジェクトを地形面に接地させながら移動する通常移動状態である場合には、パーツオブジェクトの配置位置での地形の高さに応じて、モデルオブジェクトの高さを変化させ、モデルオブジェクトが空中移動状態である場合には、モデルオブジェクトの高さを決定するための判断点をモデルオブジェクトの代表点に固定し、該代表点の位置での地形の高さに応じて、モデルオブジェクトの高さを変化させることを特徴とする。また本発明に係るプログラムは、上記手段としてコンピュータを機能させることを特徴とする。また本発明に係る情報記憶媒体は、コンピュータ読み取り可能な情報記憶媒体であって、上記手段としてコンピュータを機能させるためのプログラムを記憶（記録）したことを特徴とする。
【００２６】
本発明によれば、モデルオブジェクトが通常移動状態である場合には、パーツオブジェクト（地形面に最初に接地させるパーツオブジェクト、配置位置の地形の高さが低いパーツオブジェクト）の配置位置での地形の高さに応じて、モデルオブジェクトの高さが決められる。
【００２７】
一方、モデルオブジェクトが空中移動状態（一定の期間に亘ってパーツオブジェクトのいずれもが地形面に接地しない状態）である場合には、モデルオブジェクトの高さを決めるための判断点が、オブジェクトの代表点に固定される。そして、この判断点である代表点の位置（真下）での地形の高さに応じて、モデルオブジェクトの高さが決められる。従って、判断点が次々に変わってしまう事態を防止できる共に、オブジェクトの高さ（空中移動の軌道）を、代表点の位置（真下）での地形の高さに応じて変化させることが可能になる。
【００２８】
【発明の実施の形態】
以下、本実施形態について図面を用いて説明する。
【００２９】
なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を何ら限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【００３０】
１．構成
図１に、本実施形態の画像生成システム（ゲームシステム）の機能ブロック図の一例を示す。なお同図において本実施形態は、少なくとも処理部１００を含めばよく（或いは処理部１００と記憶部１７０を含めばよく）、それ以外のブロックについては任意の構成要素とすることができる。
【００３１】
操作部１６０は、プレーヤが操作データを入力するためのものであり、その機能は、レバー、ボタン、マイク、センサー或いは筺体などのハードウェアにより実現できる。
【００３２】
記憶部１７０は、処理部１００や通信部１９６などのワーク領域となるもので、その機能はＲＡＭなどのハードウェアにより実現できる。
【００３３】
情報記憶媒体１８０（コンピュータにより読み取り可能な媒体）は、プログラムやデータなどを格納するものであり、その機能は、光ディスク（ＣＤ、ＤＶＤ）、光磁気ディスク（ＭＯ）、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ（ＲＯＭ）などのハードウェアにより実現できる。処理部１００は、この情報記憶媒体１８０に格納されるプログラム（データ）に基づいて本発明（本実施形態）の種々の処理を行う。即ち情報記憶媒体１８０には、本発明（本実施形態）の各手段（特に処理部１００に含まれるブロック）としてコンピュータを機能させるためのプログラム（各手段をコンピュータに実現させるためのプログラム）が記憶（記録、格納）される。
【００３４】
なお、情報記憶媒体１８０に格納される情報の一部又は全部は、システムへの電源投入時等に記憶部１７０に転送されることになる。また情報記憶媒体１８０には、本発明の処理を行うためのプログラム、画像データ、音データ、表示物の形状データなどを含ませることができる。
【００３５】
表示部１９０は、本実施形態により生成された画像を出力するものであり、その機能は、ＣＲＴ、ＬＣＤ、或いはＨＭＤ（ヘッドマウントディスプレイ）などのハードウェアにより実現できる。
【００３６】
音出力部１９２は、本実施形態により生成された音を出力するものであり、その機能は、スピーカなどのハードウェアにより実現できる。
【００３７】
携帯型情報記憶装置１９４は、プレーヤの個人データやゲームのセーブデータなどが記憶されるものであり、この携帯型情報記憶装置１９４としては、メモリカードや携帯型ゲーム装置などを考えることができる。
【００３８】
通信部１９６は、外部（例えばホスト装置や他の画像生成システム）との間で通信を行うための各種の制御を行うものであり、その機能は、各種プロセッサ、或いは通信用ＡＳＩＣなどのハードウェアや、プログラムなどにより実現できる。
【００３９】
なお本発明（本実施形態）の各手段としてコンピュータを機能させるためのプログラム（データ）は、ホスト装置（サーバー）が有する情報記憶媒体からネットワーク及び通信部１９６を介して情報記憶媒体１８０に配信するようにしてもよい。このようなホスト装置（サーバー）の情報記憶媒体の使用も本発明の範囲内に含まれる。
【００４０】
処理部１００（プロセッサ）は、操作部１６０からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの各種の処理を行う。この場合、処理部１００は、記憶部１７０内の主記憶部１７２をワーク領域として使用して、各種の処理を行う。
【００４１】
ここで、処理部１００が行う処理としては、コイン（代価）の受け付け処理、各種モードの設定処理、ゲームの進行処理、選択画面の設定処理、オブジェクト（１又は複数のプリミティブ）の位置や回転角度（Ｘ、Ｙ又はＺ軸回り回転角度）を求める処理、オブジェクトを動作させる処理（モーション処理）、視点の位置（仮想カメラの位置）や視線角度（仮想カメラの回転角度）を求める処理、マップオブジェクトなどのオブジェクトをオブジェクト空間へ配置する処理、ヒットチェック処理、ゲーム結果（成果、成績）を演算する処理、複数のプレーヤが共通のゲーム空間でプレイするための処理、或いはゲームオーバー処理などを考えることができる。
【００４２】
処理部１００は、移動処理部１１０、モーション処理部１１２、画像生成部１２０、音生成部１３０を含む。なお、処理部１００は、これらの全ての機能ブロックを含む必要はない。
【００４３】
ここで、移動処理部１１０は、モデルオブジェクト（キャラクタ、ロボット、車又は戦車等の移動オブジェクト）の移動を制御する処理を行うものである。
【００４４】
より具体的には、移動処理部１１０は、モデルオブジェクトをオブジェクト空間（ゲーム空間）で移動（並進移動、回転移動）させる処理を行う。そして、このモデルオブジェクトの移動処理は、操作部１６０からの操作データ（プレーヤからの入力データ）や前のフレーム（１／６０秒、１／３０秒等）でのモデルオブジェクトの位置、回転角度（方向）等に基づいて、現在のフレーム（インター）でのモデルオブジェクトの位置、回転角度を求めることで実現できる。例えば（ｋ−１）フレームでのモデルオブジェクトの位置、回転角度をＰk-1、θk-1とし、モデルオブジェクトの１フレームでの位置変化量（速度）、回転変化量（回転速度）を△Ｐ、△θとする。するとｋフレームでのモデルオブジェクトの位置Ｐk、回転角度θkは例えば下式（１）、（２）のように求められる。
【００４５】
Ｐk＝Ｐk-1＋△Ｐ              （１）
θk＝θk-1＋△θ              （２）
モーション処理部１１２は、モデルオブジェクト（キャラクタ）にモーション（アニメーション）を行わせる処理（モーション再生、モーション生成）を行う。そして、このモデルオブジェクトのモーション処理は、モデルオブジェクトのモーションを、モーションデータ記憶部１７６に記憶されているモーションデータに基づいて再生することで実現できる。
【００４６】
より具体的には、モーションデータ記憶部１７６には、モデルオブジェクト（スケルトン）を構成する各パーツオブジェクト（スケルトンを構成する骨）の位置又は回転角度等を含むモーションデータが記憶されている。モーション処理部１１２は、このモーションデータを読み出し、このモーションデータに基づいてモデルオブジェクトを構成する各パーツオブジェクト（骨）を動かすことで（モデルオブジェクトのスケルトン形状を変形させることで）、モデルオブジェクトのモーションを再生する。
【００４７】
なお、モーションデータ記憶部１７６に記憶されるモーションデータは、現実世界の人にセンサをつけてモーションキャプチャを行うことで作成したものであることが望ましいが、モーションデータを、物理シミュレーション（物理計算を利用したシミュレーション。擬似的な物理計算でもよい）などによりリアルタイムに生成するようにしてもよい。
【００４８】
また、少ないモーションデータ量でリアルなモーションを再生するために、モーション補間やインバース・キネマティクスを用いてモーション再生を行うことが望ましい。
【００４９】
さて、本実施形態では、モデルオブジェクト（キャラクタ）が移動するフィールド面である地形面（地面、建物の面、ゲームフィールド面）に起伏を持たせている。このため、地形データ記憶部１７８が、地形（建物などの人工的な地形も含む。以下の説明でも同様）の形状を特定するための地形データ（狭義には高さデータ）を記憶している。
【００５０】
そして本実施形態では、地形データ記憶部１７８に記憶される地形データに基づいて、モデルオブジェクトの移動処理、モーション処理を行っている。
【００５１】
より具体的には、モデルオブジェクトの高さを決定するための判断点（重心）を各オブジェクトに設定する。この判断点としては、モデルオブジェクトを構成するパーツオブジェクトのうち、その配置位置での地形の高さが低いパーツオブジェクトの位置（関節）や、モデルオブジェクトの代表点（モデルオブジェクトの位置を代表的に表す点）などを用いることができる。
【００５２】
そして本実施形態では、この判断点の位置（ワールド座標系のＸ、Ｚ座標）での地形の高さデータ（ワールド座標系のＹ座標）を、地形データ記憶部１７８から読み出す。そして、この高さデータ（高さオフセット）により特定される高さに、モデルオブジェクトを配置する。このようにすることで、モデルオブジェクトの配置高さを、地形の高さに応じて変化させることができ、モデルオブジェクトを地形面の形状に沿って移動させることが可能になる。
【００５３】
また本実施形態ではモーション処理部１１２が含むモーション変形部１１４が、モデルオブジェクトの形状（スケルトン形状）を変形する処理を行う。
【００５４】
より具体的には、モデルオブジェクトを構成するパーツオブジェクト（骨、関節）が地形面（地面、ゲームフィールド面）の下に潜り込まないように（埋まらないように）、モーション処理（モーション再生、モーション生成）により特定されるモデルオブジェクトの形状（モーションデータで特定される基準形状）を、地形の形状に応じて変形する。即ち、モデルオブジェクトを構成するパーツオブジェクト（足、脚、手、腕、首、胸、腰等のパーツオブジェクト）のうち、その配置位置（Ｘ、Ｚ座標）での地形の高さ（Ｙ座標）が低いパーツオブジェクト（例えば左足パーツオブジェクト）が地形面に接地するような高さに、モデルオブジェクトを配置する。そして、この配置により、他のパーツオブジェクト（例えば右足パーツオブジェクト）が地形面の下に潜り込んだ場合には、その他のパーツオブジェクトが地形面に接地するように、例えば公知のインバース・キネマティクス手法を用いて、モデルオブジェクトの形状を変形させる。
【００５５】
例えばモーションデータにより特定される形状のモデルオブジェクト（代表点）を、オブジェクト空間に仮配置した場合（例えばＸ、Ｚ座標が操作データにより特定され、Ｙ座標が所定値（零）となる位置に配置した場合）に、モデルオブジェクトの左足パーツオブジェクトの位置（Ｘ、Ｚ座標）での地形面の高さ（Ｙ座標）が最も低くなったとする。すると、この場合には、この左足パーツオブジェクト（左足首）が地形面に接地するような高さに、モデルオブジェクトを配置する。そして、この配置により例えば右足パーツオブジェクトが地形面に潜り込んだ場合には、右足パーツオブジェクトが地形面に接地するように、モデルオブジェクトを変形させる。即ち、インバース・キネマティクスにより、モデルオブジェクトの右膝の位置（関節位置）等を変更する。
【００５６】
このようにすることで、モデルオブジェクトのモーション（モーションデータにより特定されるモーション）が、地形面の形状に応じて変化するようになり、よりリアルな画像を生成できる。
【００５７】
画像生成部１２０は、処理部１００で行われる種々の処理の結果に基づいて画像処理を行い、ゲーム画像を生成し、表示部１９０に出力する。例えば、いわゆる３次元のゲーム画像を生成する場合には、まず、座標変換、クリッピング処理、透視変換、或いは光源計算等のジオメトリ処理が行われ、その処理結果に基づいて、描画データ（プリミティブ面の頂点（構成点）に付与される位置座標、テクスチャ座標、色（輝度）データ、法線ベクトル或いはα値等）が作成される。そして、この描画データ（プリミティブ面データ）に基づいて、ジオメトリ処理後のオブジェクト（１又は複数プリミティブ面）の画像が、描画バッファ１７４（フレームバッファ、ワークバッファ等のピクセル単位で画像情報を記憶できるバッファ）に描画される。これにより、オブジェクト空間内において仮想カメラ（所与の視点）から見える画像が生成されるようになる。
【００５８】
音生成部１３０は、処理部１００で行われる種々の処理の結果に基づいて音処理を行い、ＢＧＭ、効果音、又は音声などのゲーム音を生成し、音出力部１９２に出力する。
【００５９】
なお、本実施形態の画像生成システムは、１人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、このようなシングルプレーヤモードのみならず、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。
【００６０】
また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、１つの端末を用いて生成してもよいし、ネットワーク（伝送ライン、通信回線）などで接続された複数の端末（ゲーム機、携帯電話）を用いて生成してもよい。
【００６１】
２．本実施形態の特徴
次に本実施形態の特徴について図面を用いて説明する。なお、以下では、格闘ゲームに本実施形態を適用した場合を主に例にとり説明するが、本実施形態は、格闘ゲーム以外の他のゲームにも広く適用できる。
【００６２】
２．１  地形の形状に応じたモーションの変化
さて、本実施形態では、図２に示すように、モデルオブジェクトＭＯＢ（キャラクタ）が、複数のパーツオブジェクト（腰１２、胸１４、首１６、頭１８、右上腕２０、右前腕２２、右手２４、左上腕２６、左前腕２８、左手３０、右股３２、右すね３４、右足３６、左股３８、左すね４０、左足４２）により構成されている。そして、これらのパーツオブジェクト（部位）の位置や回転角度（方向）は、スケルトンモデルを構成する関節Ｊ０〜Ｊ１５の位置や骨Ｂ０〜Ｂ１９の回転角度（親の骨に対する子の骨の相対的な回転角度）により特定される。なお、これらの関節、骨は仮想的なものであり、現実に表示されるオブジェクトではない。
【００６３】
本実施形態では、モデルオブジェクトＭＯＢを構成するパーツオブジェクト（骨、関節）が親子（階層）構造を有している。例えば、手２４、３０の親は前腕２２、２８となり、前腕２２、２８の親は上腕２０、２６となる。また、上腕２０、２６の親は胸１４となり、胸１４の親は腰１２となる。また、足３６、４２の親はすね３４、４０となり、すね３４、４０の親は股３２、３８となり、股３２、３８の親は腰１２となる。
【００６４】
モーションデータ記憶部には、これらのパーツオブジェクト（関節、骨）の位置及び回転角度が、モーションデータとして記憶されている。例えば、歩きモーションが、ＭＰ０、ＭＰ１、ＭＰ２・・・・ＭＰＮという基準モーション（各フレームでのモーション）により構成されているとする。するとこれらの各基準モーションＭＰ０、ＭＰ１、ＭＰ２・・・・ＭＰＮでの各パーツオブジェクトの位置及び回転角度が、モーションデータとして予め記憶されている。そして、例えば基準モーションＭＰ０の各パーツオブジェクトの位置及び回転角度を読み出し、次に基準モーションＭＰ１の各パーツオブジェクトの位置及び回転角度を読み出すというように、基準モーションのモーションデータを時間経過に伴い順次読み出すことで、モーション再生が実現される。
【００６５】
なお、モーションデータ記憶部に記憶するモーションデータは、一般的には、モーションキャプチャにより取得したり、デザイナが作成する。また、パーツオブジェクト（関節、骨）の位置、回転角度は、親のパーツオブジェクトの位置、回転角度に対する相対的な位置、相対的な回転角度（３軸周りの回転角度）で表される。
【００６６】
また、図２においてＲＰはモデルオブジェクトＭＯＢの代表点であり、このＲＰは例えば腰（Ｊ０）の真下の位置（高さ零の位置）に設定されている。
【００６７】
そして本実施形態では、モデルオブジェクトを構成するパーツオブジェクトが地形面（ゲームフィールド面）に潜り込まないように、モデルオブジェクトのモーションを地形（建物などの人工的な地形も含む）の形状に応じて変化させている。
【００６８】
例えば、図３（Ａ）では、モデルオブジェクトＭＯＢの左足パーツオブジェクトが地形面の下に潜り込んでいる。即ち、モーションデータは、平らな地形面の移動において矛盾が生じないようなデータになっている。従って、図３（Ａ）に示すような坂道の地形面上でモーションデータを再生すると、モデルオブジェクトＭＯＢの足パーツオブジェクトの一部が地形面の下に潜り込んでしまう事態が生じる。
【００６９】
このような事態を解決する１つの手法として、例えば平地用のモーションと坂道用のモーションを別に用意する手法が考えられる。しかし、この手法によるとモーションデータの量が膨大になってしまい、メモリの使用記憶容量が圧迫されてしまうという問題を招く。
【００７０】
そこで本実施形態では図３（Ｂ）に示すように、パーツオブジェクトが地形面の下に潜り込まないように、モデルオブジェクトＭＯＢの形状を変形させる。より具体的には、潜り込んだ左足パーツオブジェクトが地形面に接地するように、左足・左すね・左股の位置や回転角度等を変化させる（インバース・キネマティクスの手法を用いて求める）。これにより、足が地形面に接地した矛盾の無い自然な画像を、少ないデータ量と少ない処理負荷で得ることができる。
【００７１】
２．２  配置位置での地形の高さが低いパーツオブジェクトの接地
さて、本実施形態では、図３（Ｂ）に示すような矛盾の無い画像を生成するために、配置位置での地形（ゲームフィールド）の高さが低いパーツオブジェクトを先に接地し、その後に、配置位置での地形の高さが高いパーツオブジェクトが接地するように、モデルオブジェクトの形状を変形する手法を採用している。
【００７２】
即ち、図４（Ａ）に示すように現在のフレームでのモーションデータ（基準モーション）により特定される形状のモデルオブジェクトＭＯＢを、図４（Ｂ）に示すように高さ（Ｙ座標。高さ方向に沿った第２の軸の第２の座標）が零（所定値）になる位置に仮配置する。なお、この場合に、モデルオブジェクトＭＯＢの位置のＸ、Ｚ座標（第２の軸と直交する第１、第３の軸の第１、第３の座標）については、前のフレームでのモデルオブジェクトＭＯＢの位置と、操作部を用いてプレーヤにより入力される操作データにより特定される。
【００７３】
次に、図４（Ｃ）に示すように、モデルオブジェクトＭＯＢを構成するパーツオブジェクト（関節）のうち、その配置位置（Ｘ、Ｚ座標）の真下での地形の高さ（Ｙ座標）が低いパーツオブジェクト（右足）が地形面に接地するように、モデルオブジェクトＭＯＢの高さを変更する。即ち、そのパーツオブジェクト（右足）が地形面に接地するような高さオフセット（Ｈ１）で、モデルオブジェクトＭＯＢを上方向に移動する。
【００７４】
そして、図４（Ｄ）に示すように、このような高さの変更（上方向への移動）により地形面に接地しなくなったパーツオブジェクト（左足）が生じた場合には、そのパーツオブジェクト（左足）が地形面に接地するように、インバース・キネマティクスによりモデルオブジェクトＭＯＢの一部（左脚）の形状を変形する。このようにすることで、図４（Ｄ）に示すように矛盾の無い自然な画像を生成できる。
【００７５】
即ち図５（Ａ）に示すように、配置位置での地形の高さ（Ｈ２）が高いパーツオブジェクト（左足）を先に接地してしまうと、配置位置での地形の高さ（Ｈ１）が低いパーツオブジェクト（右足）がインバース・キネマティクスを行っても地形面に接地しなくなってしまう事態や、モデルオブジェクトＭＯＢの一部の形状（右脚全体）が延びきった不自然な画像が生成されてしまう事態が生じる。
【００７６】
本実施形態によれば図４（Ｃ）に示すように、配置位置での地形の高さ（Ｈ１）が低いパーツオブジェクト（右足）が先に接地され、その後に、配置位置での地形の高さ（Ｈ２）が高いパーツオブジェクト（左足）が形状変形により接地される。従って図４（Ｄ）に示すように、配置位置での地形の高さ（Ｈ２）が高いパーツオブジェクト（左足）をインバース・キネマティクスにより確実に地形面に接地できるようになると共に、モデルオブジェクトＭＯＢの一部の形状が延びきってしまう事態も防止できる。
【００７７】
なお、本実施形態では、モーション処理（モーションデータ）により特定されるモデルオブジェクトＭＯＢの形状（図４（Ａ））において最も低い位置にあるパーツオブジェクト（右足）から所与の高さ範囲内（０〜ＨＴＨ）にあるパーツオブジェクト（右足、左足）を候補パーツオブジェクトとして選択する（図４（Ｂ））。そして、選択された候補パーツオブジェクト（右足、左足）のうち、その配置位置での地形の高さが最も低い候補パーツオブジェクト（右足）が地形面に接地する高さに、モデルオブジェクトＭＯＢを配置する（図４（Ｃ））。
【００７８】
このような手法を採用すれば、例えば図５（Ｂ）に示すようにモデルオブジェクトＭＯＢが逆立ちしたような場合（或いは寝転がった場合）にも、低い位置のパーツオブジェクト（手）を確実に地形面に接地させることができる。また、図５（Ｃ）に示すように、明らかに高い位置にあり接地すべきでないパーツオブジェクト（左足）が接地してしまうような事態を防止できる。
【００７９】
即ち図５（Ｃ）では、モデルオブジェクトＭＯＢは、左足パーツオブジェクトを接地させずに上方に蹴り上げるモーション（キックモーション）を行っている。その一方で図５（Ｃ）では、左足パーツオブジェクトの配置位置での地形の高さＨ２の方が、右足パーツオブジェクトの配置位置での高さＨ１よりも低い。従って、配置位置での地形の高さが低い方のパーツオブジェクトを単純に接地させる手法を採用してしまうと、左足パーツオブジェクトを蹴り上げるモーションを行っているのにもかかわらず、その左足パーツオブジェクトが接地してしまうという不自然な事態が生じてしまう。
【００８０】
本実施形態によれば図４（Ｂ）に示すように、最も低い位置にある右足パーツオブジェクトから所与の高さ範囲内（０〜ＨＴＨ）のパーツオブジェクトだけが、地形面に最初に接地させる候補パーツオブジェクトとして選択される。従って、図５（Ｃ）に示すように明らかに高い位置にあり接地されるべきではない左足パーツオブジェクトについては、候補パーツオブジェクトとして選択されないようになる。この結果、この左足パーツオブジェクトが地形面に接地してしまうような不自然な事態を防止できる。
【００８１】
なお、本実施形態では図６（Ａ）、（Ｂ）に示すように、配置位置での地形の高さが高いパーツオブジェクト（左足）を地形面に接地させる際に、インバース・キネマティクスを利用してモデルオブジェクトＭＯＢ（左脚全体）の形状を変形させている。
【００８２】
より具体的には、まず、配置位置での地形の高さが高いパーツオブジェクト（関節Ｊ１５、骨Ｂ１９）を地形面に接地させる（上方向に移動させる）。そして、接地後の関節Ｊ１５（足首）の位置と、モーションデータにより特定される関節Ｊ１３（股関節）の位置と、モーションデータに含まれるポリシー・データ（骨Ｂ１７、Ｂ１８を含む平面を一意に特定するためのデータ）とに基づいて、関節Ｊ１４（膝）の位置を求める。このようにすれば、モデルオブジェクトの形状変形後においても、骨Ｂ１７、Ｂ１８を含む平面の方向については変化しないようになり、より自然な形状変形を実現できる。
【００８３】
なお、例えば、関節Ｊ１３、１４の位置や骨Ｂ１７、Ｂ１８の回転角度（方向）の変化が最小になるように、モデルオブジェクトを変形するインバース・キネマティクス手法を採用してもよい。
【００８４】
図７（Ａ）〜図１１（Ｂ）に、本実施形態により生成されるゲーム画像の例を示す。
【００８５】
図７（Ａ）は、モデルオブジェクトＭＯＢが平らな地形面で立っている時のゲーム画像であり、図７（Ｂ）は、ＭＯＢの右足が一段上の壇上に上がった時のゲーム画像である。また、図８（Ａ）は、図７（Ｂ）の状態よりも更にモデルオブジェクトＭＯＢが後退した時のゲーム画像であり、図８（Ｂ）は、ＭＯＢの両足が共に一段上の壇上に上がった時のゲーム画像である。
【００８６】
また図９（Ａ）は、モデルオブジェクトＭＯＢの両足が平らな地形面に立っている時のゲーム画像であり、図９（Ｂ）、図１０（Ａ）は、ＭＯＢの右足、左足が地形面の高さに応じて上方に上がっている様子を示すゲーム画像である。
【００８７】
また図１０（Ｂ）は、モデルオブジェクトＭＯＢが平らな地形面上に寝ている時のゲーム画像であり、図１１（Ａ）、図１１（Ｂ）は、ＭＯＢの上半身部、下半身部が地形の高さに応じて上方に上がっている様子を示すゲーム画像である。
【００８８】
図７（Ａ）〜図１１（Ｂ）に示すように、本実施形態によれば、地形の形状を反映させたモデルオブジェクトＭＯＢのモーション処理を実現できるようになり、よりリアルな画像を生成できる。また、モデルオブジェクトＭＯＢのパーツオブジェクト（足、腰等）が地形面（地面）の下に潜り込むような事態を防止でき、より自然な画像を生成できる。
【００８９】
２．３  ジャンプ中の処理
さて、本実施形態では、モデルオブジェクトがジャンプ状態（広義には、攻撃を受けて飛ばされた場合なども含む空中移動状態。以下の説明でも同様）の場合に、次のような処理を行っている。
【００９０】
例えば図１２（Ａ）では、平らな地形面上でモデルオブジェクトＭＯＢがジャンプを行っており、Ａ１の地点からジャンプを開始し、Ａ２の地点に着地している。
【００９１】
一方、図１２（Ｂ）では、起伏（段差）のある地形面上でモデルオブジェクトＭＯＢがジャンプを行っている。
【００９２】
そして、図１２（Ｂ）の場合にモデルオブジェクトＭＯＢのジャンプ軌道が地形の起伏の影響を何ら受けないとすると、ＭＯＢのジャンプ軌道は図１２（Ａ）のＡ３に示す軌道と同じになり、Ａ４に示すようになる。
【００９３】
しかしながら、このようなＡ４に示す軌道では、モデルオブジェクトＭＯＢの着地点は、地形の起伏の影響を受けて、図１２（Ａ）のＡ２よりも手前のＡ５の位置になってしまう。
【００９４】
そして、この種の格闘ゲームでは、モデルオブジェクトＭＯＢのジャンプモーションは、図１２（Ａ）のように平らな地形面でのジャンプを想定して作成されている。即ち、Ａ１の位置でジャンプモーションを開始し、Ａ２の地点で着地姿勢になるモーションとなっており、Ａ１からＡ２までに要するモーション再生時間（フレーム数）は地形面の形状に依らず一定になる。
【００９５】
従って、モデルオブジェクトＭＯＢが図１２（Ｂ）のＡ５の位置に着地してしまうと、ＭＯＢが着地姿勢になっていないのに地形面に着地してしまう事態が生じ、生成される画像が不自然になってしまう。
【００９６】
そこで本実施形態では、モデルオブジェクトＭＯＢがジャンプ状態（空中移動状態）である場合にも、ジャンプ（空中移動）軌道を、ＭＯＢの位置（真下の位置）での地形の高さ（ＭＯＢの代表点のＸ、Ｚ座標で指定される地形面のＹ座標）に応じて変化させている。
【００９７】
例えば、図１２（Ｂ）ではＡ６に示すような段差を地形面が有するため、この段差の影響を受けて、ジャンプ軌道がＡ７に示すように変化する。即ち、地形が高くなるとジャンプの軌道も高くなり、地形が低くなるとジャンプの軌道も低くなる。これにより、モデルオブジェクトＭＯＢは、Ａ８の地点からジャンプを開始し、Ａ９の地点に着地するモーションを行うことになる。従って、モデルオブジェクトＭＯＢの着地点は、Ａ２、Ａ９を比較すれば明らかなように、ほぼ同じ位置になり、ジャンプに要する時間もほぼ同じになる。この結果、Ａ９の位置に着地する際にモデルオブジェクトＭＯＢのモーション再生が丁度終了するようになり、ＭＯＢが適正な着地姿勢で着地するようになる。
【００９８】
なお本実施形態では、Ａ６に示すように地形面の高さが急激に変化した場合にも、ジャンプの軌道はＡ７に示すような滑らかに変化する軌道になっている。これは、地形の高さの変化率よりも低い変化率で、モデルオブジェクトＭＯＢのジャンプ軌道の高さを変化させることで実現できる。
【００９９】
また本実施形態では図１３（Ａ）に示すように、モデルオブジェクトＭＯＢのジャンプ（空中移動）時においては、ＭＯＢの高さを決定するための判断点を、モデルオブジェクトＭＯＢの代表点ＲＰに固定している。そして、この代表点ＲＰの位置（真下の位置）での地形の高さ（ＲＰのＸ、Ｚ座標で指定される地形面のＹ座標）に応じて、モデルオブジェクトＭＯＢの高さを変化させ、ジャンプ軌道を変化させている（図１２（Ｂ）参照）。
【０１００】
即ち、この種の格闘ゲームでは、モデルオブジェクトＭＯＢ（キャラクタ）が、図１３（Ｂ）に示すように体を回転させながらジャンプするモーションを行う場合がある。このような場合に、図４（Ａ）〜（Ｄ）のように、配置位置での地形の高さが低いパーツオブジェクト（右足）の位置をＭＯＢの高さの判断点（地形の高さを読み出すための点）に設定してしまうと、ＭＯＢが回転するにつれて判断点が次々に変わってしまう事態が生じ、処理が煩雑化する。
【０１０１】
本実施形態では、図１３（Ａ）に示すように、ジャンプ状態時においてはモデルオブジェクトＭＯＢの高さの判断点がＭＯＢの代表点ＲＰに固定される。従って、図１３（Ｂ）に示すような回転ジャンプモーションをモデルオブジェクトＭＯＢが行った場合にも、判断点が次々と変化する事態が生じなくなり、処理を簡素化できる。そして、この判断点である代表点ＲＰの位置での地形の高さに応じて、図１２（Ｂ）に示すようにモデルオブジェクトＭＯＢのジャンプ軌道が変化するため、地形に起伏がある場合にもＭＯＢが適正な着地姿勢で着地できるようになる。
【０１０２】
２．４  高さの変化率の制御
さて、本実施形態では、モデルオブジェクトＭＯＢの配置高さを地形の高さに応じて変化させており、これにより地形の形状に沿ってＭＯＢを移動させることに成功している。
【０１０３】
しかしながら、この場合に、地形の高さの変化率と全く同じ変化率で、モデルオブジェクトＭＯＢの高さを変化させると、不自然な画像が生成されるおそれがある。例えば、地形が図１４（Ａ）のＢ１に示すような急な段差を有する場合に、この段差の高さの変化率と同じ変化率でモデルオブジェクトＭＯＢの高さを変化させると、Ｂ２に示すようにＭＯＢの高さも段差付近で急激に変化してしまう。従って、モデルオブジェクトＭＯＢの移動軌跡が不自然なものになってしまう。
【０１０４】
そこで本実施形態では、地形の高さの変化率（１フレームでの高さの変化）よりも低い変化率で、モデルオブジェクトＭＯＢの高さを変化させている（高さの変化を減衰させている）。これにより、図１４（Ｂ）、（Ｃ）のＢ３やＢ４に示すような段差があった場合にも、Ｂ５、Ｂ６に示すようにモデルオブジェクトＭＯＢの移動軌跡がスムーズになり、より自然な画像を生成できる。
【０１０５】
例えば、図１４（Ｂ）のＢ３に示すように、地形の高さが高くなる方向に変化した場合に、モデルオブジェクトＭＯＢの高さオフセットＨＯＦＦ（仮配置されたＭＯＢの高さ方向の移動量）は下式のように求めることができる。
【０１０６】
ＨＯＦＦ＝（１ーβ）×ＨＫ＋β×ＨＬ      （３）
ここで、ＨＫは前のフレームでの地形の高さであり、ＨＬは現在のフレームでの地形の高さであり、β（０＜β＜１）はＨＫとＨＬのブレンド率である。このようにすれば、ＨＬを越えない高さオフセットＨＯＦＦをモデルオブジェクトＭＯＢの高さに加算することができ、地形の高さの変化率（ＨＬーＨＫ）よりも低い変化率（ＨＯＦＦ）で、モデルオブジェクトＭＯＢの高さを変化させることが可能になる。
【０１０７】
一方、図１４（Ｃ）のＢ４に示すように、地形の高さが低くなる方向に変化した場合には、モデルオブジェクトＭＯＢの高さオフセットＨＯＦＦは下式のように求めることができる。
【０１０８】
ＨＯＦＦ＝ＨＫ＋ＶＨ（Ｇ）      （４）
（但し、ＨＯＦＦ＜ＨＬとなるようにＨＯＦＦを制限）
ここで、ＶＨ（Ｇ）は、重力Ｇにより加速される高さ方向の速度であり、地形を下って行く時間（フレーム）が長くなるほど、重力Ｇが次々と加算され、ＶＨ（Ｇ）は増えることになる。これにより、重力ＧによりモデルオブジェクトＭＯＢが加速しながら下に落ちて行く様子（例えば坂道をＭＯＢが下って行く様子）を表現でき、生成される画像のリアル度を増すことができる。また、ＨＯＦＦの上限値はＨＬに制限されるため、地形の高さの変化率よりも低い変化率で、モデルオブジェクトＭＯＢの高さを変化させることも可能になる。
【０１０９】
２．５  腰の高さの調整
さて、この種の格闘ゲームでは、図１０（Ｂ）、図１１（Ａ）、（Ｂ）に示すようにモデルオブジェクトＭＯＢが寝た状態（倒れた状態）になる場合がある。このような場合に図４（Ａ）〜（Ｄ）の手法で足等の位置を基準にしてモデルオブジェクトＭＯＢの配置位置を決定しても、図１５（Ａ）のようにＭＯＢの腰が地形面の下に潜り込んでしまう事態が生じる可能性がある。
【０１１０】
そこで本実施形態では、図１５（Ａ）のような事態の場合に、モデルオブジェクトＭＯＢの高さ（高さオフセット）を高くする手法を採用している。即ち、地形の高さに基づき得られた高さにモデルオブジェクトＭＯＢを配置した時に図１５（Ｂ）のようにＭＯＢの腰パーツオブジェクトが地形面に潜り込んでいる場合には、図１５（Ｂ）に示すように、腰パーツオブジェクト（腰の関節）が地形面に接地するようにＭＯＢの高さを高くする。これにより、腰パーツオブジェクトが地形面の下に潜り込む事態を防止できる。
【０１１１】
また、この場合に、モデルオブジェクトの全体の高さを単純に高くしただけでは、図１５（Ｂ）に示すように、手、足、頭の位置もそれに応じて高くなってしまい、手、足、頭が浮いた状態に見えてしまう。
【０１１２】
そこで本実施形態では、腰パーツオブジェクト以外のパーツオブジェクト（手、足、頭等）の高さが、腰パーツオブジェクトの高さよりも低くなるように、モデルオブジェクトＭＯＢの形状を変形する手法を更に採用している。即ち、図１５（Ｃ）に示すように、ＭＯＢの形状を「く」の字になるように変形する。これにより、手、足、頭等のパーツオブジェクトが地形面に接地するようになる。
【０１１３】
以上のようにすることで、図１１（Ａ）、（Ｂ）に示すように、モデルオブジェクトＭＯＢの腰が地形面の下に潜り込むのを防止できると共に、寝た状態のＭＯＢの形状が地形面の形状に適合するように変形するようになるため、より自然でリアルな画像を生成できる。
【０１１４】
３．本実施形態の処理
次に、本実施形態の処理の詳細例について、図１６、図１７のフローチャートを用いて説明する。
【０１１５】
まず、モーションデータにより特定される形状のモデルオブジェクトを、高さが零の位置に仮配置し、ワールド座標系での各パーツオブジェクト（骨、関節）の位置（及び方向）を求める（ステップＳ１。図４（Ａ）参照）。即ち、前のフレームでのモデルオブジェクトの位置とプレーヤが入力した操作データとに基づいて、現在のフレームでのモデルオブジェクト（代表点）のワールド座標系でのＸ、Ｚ座標ＸＬ、ＺＬを求め、位置（ＸＬ、０、ＺＬ）にモデルオブジェクト（代表点）を仮配置する。そして、この仮配置位置とモーションデータに基づいて、各パーツオブジェクトのワールド座標系での位置を求める。
【０１１６】
次に、モデルオブジェクトがジャンプ（空中移動）中か否かを判断する（ステップＳ２）。そして、ジャンプ中の場合には、モデルオブジェクトの代表点（腰の真下）を、モデルオブジェクトの高さの判断点（重心）に設定する（ステップＳ３。図１３（Ａ）参照）。
【０１１７】
一方、ジャンプ中ではない場合には、パーツオブジェクトを位置（Ｙ座標）が低い順に並び替えたリストを作成する（ステップＳ４）。そして、そのリスト中において、最も低い位置のパーツオブジェクトを第１候補に設定し、そのパーツオブジェクトの位置（真下）での地形の高さを求めておく（ステップＳ５。図４（Ｂ）参照）。
【０１１８】
次に、リスト中の次のパーツオブジェクトを調べる（ステップＳ６）。そして、そのパーツオブジェクトの高さと、最も低いパーツオブジェクトの高さとの差が、ＨＴＨ以上か否かを判断する（ステップＳ７。図４（Ｂ）参照）。そして、ＨＴＨ以上の場合には、現在の第１候補のパーツオブジェクト（関節）の位置を、モデルオブジェクトの高さの判断点に設定する（ステップＳ８）。一方、ＨＴＨよりも小さい場合には、調査中のパーツオブジェクトの位置（真下）での地形の高さが、現在の第１候補のパーツオブジェクトの位置での地形の高さよりも低いか否かを判断する（ステップＳ９）。そして、低い場合には、調査中のパーツオブジェクトを第１候補に設定して（ステップＳ１０）、ステップＳ６に戻る。一方、高い場合には、現在の第１候補を変えずに、ステップＳ６に戻る。
【０１１９】
ステップＳ３、ステップＳ８で判断点を設定した後、現在のフレームが初期化（ゲーム開始）直後か否かを判断する（ステップＳ１１）。そして、初期化直後である場合には、ステップＳ３、Ｓ８で設定された判断点の位置（真下）での地形の高さを、そのままモデルオブジェクトの高さオフセットに設定する（ステップＳ１２）。
【０１２０】
一方、初期化直後でない場合には、現在のフレームにおける判断点での地形の高さ（高さオフセット）が、前のフレームでの高さよりも大きいか否かを判断する（ステップＳ１３）。そして、大きい場合には、その変化率が低くなるように高さオフセットを補正する（ステップＳ１４。図１４（Ｂ）参照）。一方、小さい場合には、重力による加速度を加味しながら、その変化率が低くなるように高さオフセットを補正する（ステップＳ１５。図１４（Ｃ）参照）。
【０１２１】
次に、決定した高さオフセットでモデルオブジェクトを配置した場合に、腰パーツオブジェクトが地形面の下に潜り込むか否かを判断する（ステップＳ１６。図１５（Ａ）参照）。そして、潜り込んでいる場合には、腰パーツオブジェクトが潜り込んだ分の高さを、高さオフセットに加算する（ステップＳ１７。図１５（Ｂ）参照）。そして、モデルオブジェクトを腰を中心に「く」の字に変形させる（ステップＳ１８。図１５（Ｃ）参照）。
【０１２２】
次に、決定した高さオフセットでモデルオブジェクトを配置する（ステップＳ１９）。そして、首、頭、手、足のパーツオブジェクトが地形面の下に潜り込んでいた場合には、これらのパーツオブジェクトが地形面に接地するように、首、頭、手、足の順でインバース・キネマティクスを用いて上に押し上げる（ステップＳ２０。図４（Ｄ）参照）。即ち、まず、首が潜り込んでいるかを判断し、潜り込んでいる場合には首を押し上げ、次に、頭が潜り込んでいるかを判断し、潜り込んでいる場合は頭を押し上げる。次に、手が潜り込んでいるかを判断し、潜り込んでいる場合には手を押し上げ、次に、足が潜り込んでいるかを判断し、潜り込んでいる場合は足を押し上げる。
【０１２３】
以上のようにすることで、モデルオブジェクトのモーションの形状を、地形の形状に適合するように変形させることが可能となり、より自然でリアルな画像を生成できる。
【０１２４】
４．ハードウェア構成
次に、本実施形態を実現できるハードウェアの構成の一例について図１８を用いて説明する。
【０１２５】
メインプロセッサ９００は、ＣＤ９８２（情報記憶媒体）に格納されたプログラム、通信インターフェース９９０を介して転送されたプログラム、或いはＲＯＭ９５０（情報記憶媒体の１つ）に格納されたプログラムなどに基づき動作し、ゲーム処理、画像処理、音処理などの種々の処理を実行する。
【０１２６】
コプロセッサ９０２は、メインプロセッサ９００の処理を補助するものであり、高速並列演算が可能な積和算器や除算器を有し、マトリクス演算（ベクトル演算）を高速に実行する。例えば、オブジェクトを移動させたり動作（モーション）させるための物理シミュレーションに、マトリクス演算などの処理が必要な場合には、メインプロセッサ９００上で動作するプログラムが、その処理をコプロセッサ９０２に指示（依頼）する。
【０１２７】
ジオメトリプロセッサ９０４は、座標変換、透視変換、光源計算、曲面生成などのジオメトリ処理を行うものであり、高速並列演算が可能な積和算器や除算器を有し、マトリクス演算（ベクトル演算）を高速に実行する。例えば、座標変換、透視変換、光源計算などの処理を行う場合には、メインプロセッサ９００で動作するプログラムが、その処理をジオメトリプロセッサ９０４に指示する。
【０１２８】
データ伸張プロセッサ９０６は、圧縮された画像データや音データを伸張するデコード処理を行ったり、メインプロセッサ９００のデコード処理をアクセレートする処理を行う。これにより、オープニング画面、インターミッション画面、エンディング画面、或いはゲーム画面などにおいて、ＭＰＥＧ方式等で圧縮された動画像を表示できるようになる。なお、デコード処理の対象となる画像データや音データは、ＲＯＭ９５０、ＣＤ９８２に格納されたり、或いは通信インターフェース９９０を介して外部から転送される。
【０１２９】
描画プロセッサ９１０は、ポリゴンや曲面などのプリミティブ（プリミティブ面）で構成されるオブジェクトの描画（レンダリング）処理を高速に実行するものである。オブジェクトの描画の際には、メインプロセッサ９００は、ＤＭＡコントローラ９７０の機能を利用して、オブジェクトデータを描画プロセッサ９１０に渡すと共に、必要であればテクスチャ記憶部９２４にテクスチャを転送する。すると、描画プロセッサ９１０は、これらのオブジェクトデータやテクスチャに基づいて、Ｚバッファなどを利用した陰面消去を行いながら、オブジェクトをフレームバッファ９２２に高速に描画する。また、描画プロセッサ９１０は、αブレンディング（半透明処理）、デプスキューイング、ミップマッピング、フォグ処理、バイリニア・フィルタリング、トライリニア・フィルタリング、アンチエリアシング、シェーディング処理なども行うことができる。そして、１フレーム分の画像がフレームバッファ９２２に書き込まれると、その画像はディスプレイ９１２に表示される。
【０１３０】
サウンドプロセッサ９３０は、多チャンネルのＡＤＰＣＭ音源などを内蔵し、ＢＧＭ、効果音、音声などの高品位のゲーム音を生成する。生成されたゲーム音は、スピーカ９３２から出力される。
【０１３１】
ゲームコントローラ９４２（レバー、ボタン、筺体、パッド型コントローラ又はガン型コントローラ等）からの操作データや、メモリカード９４４からのセーブデータ、個人データは、シリアルインターフェース９４０を介してデータ転送される。
【０１３２】
ＲＯＭ９５０にはシステムプログラムなどが格納される。なお、業務用ゲームシステムの場合には、ＲＯＭ９５０が情報記憶媒体として機能し、ＲＯＭ９５０に各種プログラムが格納されることになる。なお、ＲＯＭ９５０の代わりにハードディスクを利用するようにしてもよい。
【０１３３】
ＲＡＭ９６０は、各種プロセッサの作業領域として用いられる。
【０１３４】
ＤＭＡコントローラ９７０は、プロセッサ、メモリ（ＲＡＭ、ＶＲＡＭ、ＲＯＭ等）間でのＤＭＡ転送を制御するものである。
【０１３５】
ＣＤドライブ９８０は、プログラム、画像データ、或いは音データなどが格納されるＣＤ９８２（情報記憶媒体）を駆動し、これらのプログラム、データへのアクセスを可能にする。
【０１３６】
通信インターフェース９９０は、ネットワークを介して外部との間でデータ転送を行うためのインターフェースである。この場合に、通信インターフェース９９０に接続されるネットワークとしては、通信回線（アナログ電話回線、ＩＳＤＮ）、高速シリアルバスなどを考えることができる。そして、通信回線を利用することでインターネットを介したデータ転送が可能になる。また、高速シリアルバスを利用することで、他の画像生成システムとの間でのデータ転送が可能になる。
【０１３７】
なお、本発明の各手段は、その全てを、ハードウェアのみにより実現してもよいし、情報記憶媒体に格納されるプログラムや通信インターフェースを介して配信されるプログラムのみにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。
【０１３８】
そして、本発明の各手段をハードウェアとプログラムの両方により実現する場合には、情報記憶媒体には、ハードウェア（コンピュータ）を本発明の各手段として機能させるためのプログラムが格納されることになる。より具体的には、上記プログラムが、ハードウェアである各プロセッサ９０２、９０４、９０６、９１０、９３０等に処理を指示すると共に、必要であればデータを渡す。そして、各プロセッサ９０２、９０４、９０６、９１０、９３０等は、その指示と渡されたデータとに基づいて、本発明の各手段を実現することになる。
【０１３９】
図１９（Ａ）に、本実施形態を業務用ゲームシステム（画像生成システム）に適用した場合の例を示す。プレーヤは、ディスプレイ１１００上に映し出されたゲーム画像を見ながら、コントローラ１１０２などを操作してゲームを楽しむ。内蔵されるシステムボード（サーキットボード）１１０６には、各種プロセッサ、各種メモリなどが実装される。そして、本発明の各手段を実現するためのプログラム（データ）は、システムボード１１０６上の情報記憶媒体であるメモリ１１０８に格納される。以下、このプログラムを格納プログラム（格納情報）と呼ぶ。
【０１４０】
図１９（Ｂ）に、本実施形態を家庭用のゲームシステム（画像生成システム）に適用した場合の例を示す。プレーヤはディスプレイ１２００に映し出されたゲーム画像を見ながら、コントローラ１２０２、１２０４などを操作してゲームを楽しむ。この場合、上記格納プログラム（格納情報）は、本体システムに着脱自在な情報記憶媒体であるＣＤ１２０６、或いはメモリカード１２０８、１２０９などに格納されている。
【０１４１】
図１９（Ｃ）に、ホスト装置１３００と、このホスト装置１３００とネットワーク１３０２（ＬＡＮのような小規模ネットワークや、インターネットのような広域ネットワーク）を介して接続される端末１３０４-１〜１３０４-n（ゲーム機、携帯電話）とを含むシステムに本実施形態を適用した場合の例を示す。この場合、上記格納プログラム（格納情報）は、例えばホスト装置１３００が制御可能な磁気ディスク装置、磁気テープ装置、メモリなどの情報記憶媒体１３０６に格納されている。端末１３０４-１〜１３０４-nが、スタンドアロンでゲーム画像、ゲーム音を生成できるものである場合には、ホスト装置１３００からは、ゲーム画像、ゲーム音を生成するためのゲームプログラム等が端末１３０４-１〜１３０４-nに配送される。一方、スタンドアロンで生成できない場合には、ホスト装置１３００がゲーム画像、ゲーム音を生成し、これを端末１３０４-１〜１３０４-nに伝送し端末において出力することになる。
【０１４２】
なお、図１９（Ｃ）の構成の場合に、本発明の各手段を、ホスト装置（サーバー）と端末とで分散して実現するようにしてもよい。また、本発明の各手段を実現するための上記格納プログラム（格納情報）を、ホスト装置（サーバー）の情報記憶媒体と端末の情報記憶媒体に分散して格納するようにしてもよい。
【０１４３】
またネットワークに接続する端末は、家庭用ゲームシステムであってもよいし業務用ゲームシステムであってもよい。そして、業務用ゲームシステムをネットワークに接続する場合には、業務用ゲームシステムとの間で情報のやり取りが可能であると共に家庭用ゲームシステムとの間でも情報のやり取りが可能なセーブ用情報記憶装置（メモリカード、携帯型ゲーム装置）を用いることが望ましい。
【０１４４】
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。
【０１４５】
例えば、モデルオブジェクトの形状を変形する手法は、本実施形態で説明した手法に限定されず、公知のインバース・キネマティクス等を利用した種々の手法を採用できる。
【０１４６】
また、モデルオブジェクトの配置高さを地形の高さに応じて変化させる手法も、本実施形態で説明した手法に限定されず、種々の変形実施が可能である。
【０１４７】
また、本発明のうち従属請求項に係る発明においては、従属先の請求項の構成要件の一部を省略する構成とすることもできる。また、本発明の１の独立請求項に係る発明の要部を、他の独立請求項に従属させることもできる。
【０１４８】
また、本発明は種々のゲーム（格闘ゲーム、シューティングゲーム、ロボット対戦ゲーム、スポーツゲーム、競争ゲーム、ロールプレイングゲーム、音楽演奏ゲーム、ダンスゲーム等）に適用できる。
【０１４９】
また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレーヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード等の種々の画像生成システム（ゲームシステム）に適用できる。
【図面の簡単な説明】
【図１】本実施形態の画像生成システムの機能ブロック図の例である。
【図２】複数のパーツオブジェクトで構成されるモデルオブジェクトの例を示す図である。
【図３】図３（Ａ）、（Ｂ）は、モデルオブジェクトの形状を、起伏を有する地形の形状に応じて変化させる手法について説明するための図である。
【図４】図４（Ａ）、（Ｂ）、（Ｃ）、（Ｄ）は、配置位置での地形の高さが低いパーツオブジェクトが地形面に接地するようにモデルオブジェクトの高さを変化させ、配置位置での地形の高さが高いパーツオブジェクトが地形面に接地するようにモデルオブジェクトの形状を変形させる手法について説明するための図である。
【図５】図５（Ａ）、（Ｂ）、（Ｃ）は、図４（Ａ）、（Ｂ）、（Ｃ）、（Ｄ）と異なる手法を用いた場合の問題点等を説明するための図である。
【図６】図６（Ａ）、（Ｂ）は、インバース・キネマティクスについて説明するための図である。
【図７】図７（Ａ）、（Ｂ）は、本実施形態により生成されるゲーム画像の例である。
【図８】図８（Ａ）、（Ｂ）も、本実施形態により生成されるゲーム画像の例である。
【図９】図９（Ａ）、（Ｂ）も、本実施形態により生成されるゲーム画像の例である。
【図１０】図１０（Ａ）、（Ｂ）も、本実施形態により生成されるゲーム画像の例である。
【図１１】図１１（Ａ）、（Ｂ）も、本実施形態により生成されるゲーム画像の例である。
【図１２】図１２（Ａ）、（Ｂ）は、モデルオブジェクトがジャンプ状態の場合の本実施形態の処理について説明するための図である。
【図１３】図１３（Ａ）、（Ｂ）も、モデルオブジェクトがジャンプ状態の場合の本実施形態の処理について説明するための図である。
【図１４】図１４（Ａ）、（Ｂ）、（Ｃ）は、モデルオブジェクトの高さの変化率を地形の高さの変化率よりも低くする手法について説明するための図である。
【図１５】図１５（Ａ）、（Ｂ）、（Ｃ）は、モデルオブジェクトの腰パーツオブジェクトが地形面の下に潜り込むのを防止する手法について説明するための図である。
【図１６】本実施形態の処理の詳細例について示すフローチャートである。
【図１７】本実施形態の処理の詳細例について示すフローチャートである。
【図１８】本実施形態を実現できるハードウェアの構成の一例を示す図である。
【図１９】図１９（Ａ）、（Ｂ）、（Ｃ）は、本実施形態が適用される種々の形態のシステムの例を示す図である。
【符号の説明】
ＭＯＢ  モデルオブジェクト
１００  処理部
１１０  移動処理部
１１２  モーション処理部
１１４  モーション変形部
１２０  画像生成部
１３０  音生成部
１６０  操作部
１７０  記憶部
１７２  主記憶部
１７４  描画バッファ
１７６  モーションデータ記憶部
１７８  地形データ記憶部
１８０  情報記憶媒体
１９０  表示部
１９２  音出力部
１９４  携帯型情報記憶装置
１９６  通信部
【図１】
0004704622.tif 000002
【図２】
0004704622.tif 000003
【図３】
0004704622.tif 000004
【図４】
0004704622.tif 000005
【図５】
0004704622.tif 000006
【図６】
0004704622.tif 000007
【図７】
0004704622.tif 000008
【図８】
0004704622.tif 000009
【図９】
0004704622.tif 000010
【図１０】
0004704622.tif 000011
【図１１】
0004704622.tif 000012
【図１２】
0004704622.tif 000013
【図１３】
0004704622.tif 000014
【図１４】
0004704622.tif 000015
【図１５】
0004704622.tif 000016
【図１６】
0004704622.tif 000017
【図１７】
0004704622.tif 000018
【図１８】
0004704622.tif 000019
【図１９】
0004704622.tif 000020