(57)【特許請求の範囲】
【請求項１】
画像生成を行うゲームシステムであって、
画面に表示される表示物の構成点の生成間隔を決めるための分割数を可変に制御する分割数制御手段と、
可変に制御される前記分割数と、表示物の形状を定義するための点である制御点とに基づき、前記分割数により決められる生成間隔で表示物の構成点をリアルタイムに生成する構成点生成手段とを含み、
前記分割数制御手段が、
表示物の分割数である第１の分割数の変化に応じて、表示物に対応する簡易オブジェクトの分割数である第２の分割数も変化するように、前記第１、第２の分割数を制御し、
前記構成点生成手段が、
可変に制御される前記第１、第２の分割数と、表示物の制御点とに基づき、前記第１、第２の分割数により決められる生成間隔で表示物、簡易オブジェクトの構成点をリアルタイムに生成することを特徴とするゲームシステム。
【請求項２】
画像生成を行うゲームシステムであって、
画面に表示される表示物の構成点の生成間隔を決めるための分割数を可変に制御する分割数制御手段と、
可変に制御される前記分割数と、表示物の形状を定義するための点である制御点とに基づき、前記分割数により決められる生成間隔で表示物の構成点をリアルタイムに生成する構成点生成手段とを含み、
前記分割数制御手段が、
表示物に対応する簡易オブジェクトの分割数である第２の分割数が、表示物の分割数である第１の分割数以下となるように、前記第１、第２の分割数を可変に制御し、
前記構成点生成手段が、
可変に制御される前記第１、第２の分割数と、表示物の制御点とに基づき、前記第１、第２の分割数により決められる生成間隔で表示物、簡易オブジェクトの構成点をリアルタイムに生成することを特徴とするゲームシステム。
【請求項３】
画像生成を行うゲームシステムであって、
画面に表示される表示物の構成点の生成間隔を決める分割数と、表示物の形状を定義するための点である制御点とに基づき、前記分割数により決められる生成間隔で表示物の構成点をリアルタイムに生成する構成点生成手段と、
所与の分割数と表示物の制御点とに基づき生成される簡易オブジェクトを、表示物に対応づけて用意する手段と、
表示物に対応づけられた前記簡易オブジェクトを用いて、表示物に対する所与の判定処理を行う手段と、を含み、
表示物の分割数である第１の分割数の変化に応じて、簡易オブジェクトの分割数である第２の分割数も変化することを特徴とするゲームシステム。
【請求項４】
画像生成を行うゲームシステムであって、
画面に表示される表示物の構成点の生成間隔を決める分割数と、表示物の形状を定義するための点である制御点とに基づき、前記分割数により決められる生成間隔で表示物の構成点をリアルタイムに生成する構成点生成手段と、
所与の分割数と表示物の制御点とに基づき生成される簡易オブジェクトを、表示物に対応づけて用意する手段と、
表示物に対応づけられた前記簡易オブジェクトを用いて、表示物に対する所与の判定処理を行う手段と、を含み、
簡易オブジェクトの分割数である第２の分割数が、表示物の分割数である第１の分割数以下になることを特徴とするゲームシステム。
【請求項５】
請求項３又は４のいずれかにおいて、
所与の分割数と表示物の制御点とに基づき生成された簡易オブジェクトのデータを情報記憶媒体から読み込む又はネットワークを介して読み込むことで、表示物の簡易オブジェクトが用意されることを特徴とするゲームシステム。
【請求項６】
請求項３又は４のいずれかにおいて、
所与の分割数と表示物の制御点とに基づき簡易オブジェクトをリアルタイムに生成することで、表示物の簡易オブジェクトが用意されることを特徴とするゲームシステム。
【請求項７】
請求項３乃至６のいずれかにおいて、
前記所与の判定処理がヒットチェック処理である場合には、所与の分割数と表示物の制御点とに基づき生成される点を構成点とするオブジェクトが、表示物の簡易オブジェクトとして用いられることを特徴とするゲームシステム。
【請求項８】
請求項３乃至６のいずれかにおいて、
前記所与の判定処理がクリッピング処理である場合には、所与の分割数と表示物の制御点とに基づき生成される点により求められるバウンディングボリュームが、表示物の簡易オブジェクトとして用いられることを特徴とするゲームシステム。
【請求項９】
請求項１乃至８のいずれかにおいて、
前記制御点のデータが、表示物のモデルデータの中に含まれ、
前記制御点のデータを含むモデルデータを、情報記憶媒体から読み込む又はネットワークを介して読み込む手段を含むことを特徴とするゲームシステム。
【請求項１０】
コンピュータが使用可能な情報記憶媒体であって、
画面に表示される表示物の構成点の生成間隔を決めるための分割数を可変に制御する分割数制御手段と、
可変に制御される前記分割数と、表示物の形状を定義するための点である制御点とに基づき、前記分割数により決められる生成間隔で表示物の構成点をリアルタイムに生成する構成点生成手段と、
を実行するためのプログラムを含み、
前記分割数制御手段が、
表示物の分割数である第１の分割数の変化に応じて、表示物に対応する簡易オブジェクトの分割数である第２の分割数も変化するように、前記第１、第２の分割数を制御し、
前記構成点生成手段が、
可変に制御される前記第１、第２の分割数と、表示物の制御点とに基づき、前記第１、第２の分割数により決められる生成間隔で表示物、簡易オブジェクトの構成点をリアルタイムに生成することを特徴とする情報記憶媒体。
【請求項１１】
コンピュータが使用可能な情報記憶媒体であって、
画面に表示される表示物の構成点の生成間隔を決めるための分割数を可変に制御する分割数制御手段と、
可変に制御される前記分割数と、表示物の形状を定義するための点である制御点とに基づき、前記分割数により決められる生成間隔で表示物の構成点をリアルタイムに生成する構成点生成手段と、
を実行するためのプログラムを含み、
前記分割数制御手段が、
表示物に対応する簡易オブジェクトの分割数である第２の分割数が、表示物の分割数である第１の分割数以下となるように、前記第１、第２の分割数を可変に制御し、
前記構成点生成手段が、
可変に制御される前記第１、第２の分割数と、表示物の制御点とに基づき、前記第１、第２の分割数により決められる生成間隔で表示物、簡易オブジェクトの構成点をリアルタイムに生成することを特徴とする情報記憶媒体。
【請求項１２】
コンピュータが使用可能な情報記憶媒体であって、
画面に表示される表示物の構成点の生成間隔を決める分割数と、表示物の形状を定義するための点である制御点とに基づき、前記分割数により決められる生成間隔で表示物の構成点をリアルタイムに生成する構成点生成手段と、
所与の分割数と表示物の制御点とに基づき生成される簡易オブジェクトを、表示物に対応づけて用意する手段と、
表示物に対応づけられた前記簡易オブジェクトを用いて、表示物に対する所与の判定処理を行う手段と、を実行するためのプログラムを含み、
表示物の分割数である第１の分割数の変化に応じて、簡易オブジェクトの分割数である第２の分割数も変化することを特徴とする情報記憶媒体。
【請求項１３】
コンピュータが使用可能な情報記憶媒体であって、
画面に表示される表示物の構成点の生成間隔を決める分割数と、表示物の形状を定義するための点である制御点とに基づき、前記分割数により決められる生成間隔で表示物の構成点をリアルタイムに生成する構成点生成手段と、
所与の分割数と表示物の制御点とに基づき生成される簡易オブジェクトを、表示物に対応づけて用意する手段と、
表示物に対応づけられた前記簡易オブジェクトを用いて、表示物に対する所与の判定処理を行う手段と、を実行するためのプログラムを含み、
簡易オブジェクトの分割数である第２の分割数が、表示物の分割数である第１の分割数以下になることを特徴とする情報記憶媒体。
【請求項１４】
請求項１２又は１３のいずれかにおいて、
所与の分割数と表示物の制御点とに基づき生成された簡易オブジェクトのデータを情報記憶媒体から読み込む又はネットワークを介して読み込むことで、表示物の簡易オブジェクトが用意されることを特徴とする情報記憶媒体。
【請求項１５】
請求項１２又は１３のいずれかにおいて、
所与の分割数と表示物の制御点とに基づき簡易オブジェクトをリアルタイムに生成することで、表示物の簡易オブジェクトが用意されることを特徴とする情報記憶媒体。
【請求項１６】
請求項１２乃至１５のいずれかにおいて、
前記所与の判定処理がヒットチェック処理である場合には、所与の分割数と表示物の制御点とに基づき生成される点を構成点とするオブジェクトが、表示物の簡易オブジェクトとして用いられることを特徴とする情報記憶媒体。
【請求項１７】
請求項１２乃至１５のいずれかにおいて、
前記所与の判定処理がクリッピング処理である場合には、所与の分割数と表示物の制御点とに基づき生成される点により求められるバウンディングボリュームが、表示物の簡易オブジェクトとして用いられることを特徴とする情報記憶媒体。
【請求項１８】
請求項１０乃至１７のいずれかにおいて、
前記制御点のデータが、表示物のモデルデータの中に含まれ、
前記制御点のデータを含むモデルデータが、情報記憶媒体から読み込む又はネットワークを介して読み込む手段を実行するためのプログラムを含むことを特徴とする情報記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ゲームシステム及び情報記憶媒体に関する。
【０００２】
【背景技術及び発明が解決しようとする課題】
従来より、仮想的な３次元空間であるオブジェクト空間内の所与の視点から見える画像を生成するゲームシステムが知られており、いわゆる仮想現実を体験できるものとして人気が高い。格闘ゲームを楽しむことができるゲームシステムを例にとれば、プレーヤ（操作者）は、キャラクタ（モデル）を操作し、他のプレーヤ又はコンピュータが操作するキャラクタと対戦させてゲームを楽しむ。
【０００３】
さて、このようなゲームシステムにおいては、キャラクタに対して、他のキャラクタのパンチが当たったか否かを判定するヒットチェック処理が必要になる。
【０００４】
そして、従来のゲームシステムでは、キャラクタを内包するバウンディングボックスを予め用意し、このバウンディングボックスに、他のキャラクタの拳がヒット（衝突）したか否かを判定することで、ヒットチェック処理を実現していた。
【０００５】
しかしながら、このようなバウンディングボックスはキャラクタよりも大きめに作られているため、実際には、キャラクタの体に他のキャラクタの拳が接していないのにもかかわらず、パンチが当たったと判定されてしまう問題点があった。
【０００６】
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、簡易オブジェクトを用いたヒットチェック等の判定処理を正確に行うことができるゲームシステム及び情報記憶媒体を提供することにある。
【０００７】
【課題を解決するための手段】
上記課題を解決するために、本発明は、画像生成を行うゲームシステムであって、画面に表示される表示物の構成点の生成間隔を決めるための分割数を可変に制御する分割数制御手段と、可変に制御される前記分割数と、表示物の形状を定義するための点である制御点とに基づき、前記分割数により決められる生成間隔で表示物の構成点をリアルタイムに生成する構成点生成手段とを含み、前記分割数制御手段が、表示物の分割数である第１の分割数の変化に応じて、表示物に対応する簡易オブジェクトの分割数である第２の分割数も変化するように、前記第１、第２の分割数を制御し、前記構成点生成手段が、可変に制御される前記第１、第２の分割数と、表示物の制御点とに基づき、前記第１、第２の分割数により決められる生成間隔で表示物、簡易オブジェクトの構成点をリアルタイムに生成することを特徴とする。また本発明に係る情報記憶媒体は、コンピュータにより使用可能な情報記憶媒体であって、上記手段を実行するためのプログラムを含むことを特徴とする。また本発明に係るプログラムは、コンピュータにより使用可能なプログラム（搬送波に具現化されるプログラムを含む）であって、上記手段を実行するための処理ルーチンを含むことを特徴とする。
【０００８】
本発明によれば、表示物の第１の分割数の変化に応じて簡易オブジェクトの第２の分割数が例えばシームレス（seamless)に変化する。そして、変化する第１、第２の分割数と表示物の制御点とに基づいて、表示物、簡易オブジェクトの構成点が生成される。従って、本発明によれば、表示物の分割数に応じた最適の分割数の簡易オブジェクトを得ることができる。この結果、例えばこの簡易オブジェクトを用いてヒットチェック処理などの判定処理を行った場合には、正確な判定処理を実現できるようになる。
【０００９】
なお、第１、第２の分割数は、視点との距離などのゲーム処理結果に応じて変化させることが望ましい。
【００１０】
また本発明は、画像生成を行うゲームシステムであって、画面に表示される表示物の構成点の生成間隔を決めるための分割数を可変に制御する分割数制御手段と、可変に制御される前記分割数と、表示物の形状を定義するための点である制御点とに基づき、前記分割数により決められる生成間隔で表示物の構成点をリアルタイムに生成する構成点生成手段とを含み、前記分割数制御手段が、表示物に対応する簡易オブジェクトの分割数である第２の分割数が、表示物の分割数である第１の分割数以下となるように、前記第１、第２の分割数を可変に制御し、前記構成点生成手段が、可変に制御される前記第１、第２の分割数と、表示物の制御点とに基づき、前記第１、第２の分割数により決められる生成間隔で表示物、簡易オブジェクトの構成点をリアルタイムに生成することを特徴とする。また本発明に係る情報記憶媒体は、コンピュータにより使用可能な情報記憶媒体であって、上記手段を実行するためのプログラムを含むことを特徴とする。また本発明に係るプログラムは、コンピュータにより使用可能なプログラム（搬送波に具現化されるプログラムを含む）であって、上記手段を実行するための処理ルーチンを含むことを特徴とする。
【００１１】
本発明によれば、簡易オブジェクトの第２の分割数が表示物の第１の分割数以下となるように、第１、第２の分割数が例えばシームレス（seamless)に変化する。そして、変化する第１、第２の分割数と表示物の制御点とに基づいて、表示物、簡易オブジェクトの構成点が生成される。従って、本発明によれば、表示物の簡易オブジェクトとして、最適な分割数の簡易オブジェクトを得ることができる。この結果、例えばこの簡易オブジェクトを用いてヒットチェック処理などの判定処理を行った場合には、正確な判定処理を実現できるようになる。
【００１２】
なお、第１、第２の分割数は、視点との距離などのゲーム処理結果に応じて変化させることが望ましい。
【００１３】
また本発明は、画像生成を行うゲームシステムであって、画面に表示される表示物の構成点の生成間隔を決める分割数と、表示物の形状を定義するための点である制御点とに基づき、前記分割数により決められる生成間隔で表示物の構成点をリアルタイムに生成する構成点生成手段と、所与の分割数と表示物の制御点とに基づき生成される簡易オブジェクトを、表示物に対応づけて用意する手段と、表示物に対応づけられた前記簡易オブジェクトを用いて、表示物に対する所与の判定処理を行う手段とを含むことを特徴とする。また本発明に係る情報記憶媒体は、コンピュータにより使用可能な情報記憶媒体であって、上記手段を実行するためのプログラムを含むことを特徴とする。また本発明に係るプログラムは、コンピュータにより使用可能なプログラム（搬送波に具現化されるプログラムを含む）であって、上記手段を実行するための処理ルーチンを含むことを特徴とする。
【００１４】
本発明によれば、所与の特定の分割数と表示物の制御点とに基づき生成される簡易オブジェクトが用意され、この簡易オブジェクトを用いて、例えばヒットチェック処理やクリッピング処理などの判定処理が行われる。この場合、簡易オブジェクトは、表示物の制御点に基づき生成されているため、表示物の形状に近い形状を持たせることができる。従って、このような簡易オブジェクトを利用することで、正確で適正な判定処理が可能になる。
【００１５】
また本発明に係るゲームシステム、情報記憶媒体及びプログラムは、所与の分割数と表示物の制御点とに基づき生成された簡易オブジェクトのデータを情報記憶媒体から読み込む又はネットワークを介して読み込むことで、表示物の簡易オブジェクトが用意されることを特徴とする。
【００１６】
このようにすれば、表示物の簡易オブジェクトをリアルタイムに生成する処理が不要になり、処理負荷を軽減化できる。
【００１７】
また本発明に係るゲームシステム、情報記憶媒体及びプログラムは、所与の分割数と表示物の制御点とに基づき簡易オブジェクトをリアルタイムに生成することで、表示物の簡易オブジェクトが用意されることを特徴とする。
【００１８】
このようにすれば、簡易オブジェクトのデータをモデルデータとして用意しなくて済むようになるため、情報記憶媒体やネットワークのリソースを有効利用できる。
【００１９】
また本発明に係るゲームシステム、情報記憶媒体及びプログラムは、表示物の分割数である第１の分割数の変化に応じて、簡易オブジェクトの分割数である第２の分割数も変化することを特徴とする。
【００２０】
このようにすれば、表示物の分割数に応じた最適な分割数の簡易オブジェクトを得ることができる。
【００２１】
また本発明に係るゲームシステム、情報記憶媒体及びプログラムは、簡易オブジェクトの分割数である第２の分割数が、表示物の分割数である第１の分割数以下になることを特徴とする。
【００２２】
このようにすれば、表示物の判定処理に最適な分割数の簡易オブジェクトを得ることができる。
【００２３】
また本発明に係るゲームシステム、情報記憶媒体及びプログラムは、前記所与の判定処理がヒットチェック処理である場合には、所与の分割数と表示物の制御点とに基づき生成される点を構成点とするオブジェクトが、表示物の簡易オブジェクトとして用いられることを特徴とする。
【００２４】
このようにすれば、バウンディングボリュームを用いる場合に比べて、正確なヒットチェック処理を実現できる。
【００２５】
また本発明に係るゲームシステム、情報記憶媒体及びプログラムは、前記所与の判定処理がクリッピング処理である場合には、所与の分割数と表示物の制御点とに基づき生成される点により求められるバウンディングボリュームが、表示物の簡易オブジェクトとして用いられることを特徴とする。
【００２６】
このようにすれば、ビューボリュームにおける表示物の内外判定処理に間違いが生じる事態を防止できる。
【００２７】
また本発明に係るゲームシステム、情報記憶媒体及びプログラムは、前記制御点のデータが、表示物のモデルデータの中に含まれ、前記制御点のデータを含むモデルデータを、情報記憶媒体から読み込む又はネットワークを介して読み込む手段（或いは該手段を実行するためのプログラム又は処理ルーチン）を含むことを特徴とする。
【００２８】
このようにすれば、情報記憶媒体の使用記憶容量やネットワークの通信データ量を少なく抑えることが可能になり、リソースを有効利用できる。
【００２９】
【発明の実施の形態】
以下、本発明の好適な実施形態について図面を用いて説明する。
【００３０】
なお、以下では、ＮＵＲＢＳ（Non Uniform Rational B-Spline）を用いて表示物の画像を生成する場合について主に説明する。しかしながら、本発明は、ＮＵＲＢＳ以外の自由曲面や、いわゆるサブディビジョンサーフェス（Sub Division Surface）を用いて表示物の画像を生成する場合などにも広く適用できる。
【００３１】
例えばサブディビジョンサーフェスを用いて制御点（サブディビジョン前のポリゴンの頂点に相当）から表示物の構成点（サブディビジョン後のポリゴンの頂点に相当）を生成すれば、ＮＵＲＢＳの場合と異なり制御点の配置位置に制約が無くなり、制御点の数や分割数を局所的に多くすることができるため、モデルのデザイン作業を大幅に効率化できる。
【００３２】
１．構成
図１に、本実施形態のゲームシステム（画像生成システム）のブロック図の一例を示す。なお同図において本実施形態は、少なくとも処理部１００を含めばよく（或いは処理部１００と記憶部１７０を含めばよく）、それ以外のブロックについては任意の構成要素とすることができる。
【００３３】
操作部１６０は、プレーヤが操作データを入力するためのものであり、その機能は、レバー、ボタン、マイク、或いは筺体などのハードウェアにより実現できる。
【００３４】
記憶部１７０は、処理部１００や通信部１９６などのワーク領域となるもので、その機能はＲＡＭなどのハードウェアにより実現できる。
【００３５】
情報記憶媒体１８０（コンピュータにより使用可能な記憶媒体）は、プログラムやデータなどの情報を格納するものであり、その機能は、光ディスク（ＣＤ、ＤＶＤ）、光磁気ディスク（ＭＯ）、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ（ＲＯＭ）などのハードウェアにより実現できる。処理部１００は、この情報記憶媒体１８０に格納される情報に基づいて本発明（本実施形態）の種々の処理を行う。即ち情報記憶媒体１８０には、本発明（本実施形態）の手段（特に処理部１００に含まれるブロック）を実行するための情報（プログラム或いはデータ）が格納される。
【００３６】
なお、情報記憶媒体１８０に格納される情報の一部又は全部は、システムへの電源投入時等に記憶部１７０に転送されることになる。また情報記憶媒体１８０には、本発明の処理を行うためのプログラム、画像データ、音データ、表示物の形状データ、本発明の処理を指示するための情報、或いはその指示に従って処理を行うための情報などを含ませることができる。
【００３７】
表示部１９０は、本実施形態により生成された画像を出力するものであり、その機能は、ＣＲＴ、ＬＣＤ、或いはＨＭＤ（ヘッドマウントディスプレイ）などのハードウェアにより実現できる。
【００３８】
音出力部１９２は、本実施形態により生成された音を出力するものであり、その機能は、スピーカなどのハードウェアにより実現できる。
【００３９】
携帯型情報記憶装置１９４は、プレーヤの個人データやゲームのセーブデータなどが記憶されるものであり、この携帯型情報記憶装置１９４としては、メモリカードや携帯型ゲーム装置などを考えることができる。
【００４０】
通信部１９６は、外部（例えばホスト装置や他のゲームシステム）との間で通信を行うための各種の制御を行うものであり、その機能は、各種プロセッサ、或いは通信用ＡＳＩＣなどのハードウェアや、プログラムなどにより実現できる。
【００４１】
なお本発明（本実施形態）の手段を実行するためのプログラム或いはデータは、ホスト装置（サーバー）が有する情報記憶媒体からネットワーク及び通信部１９６を介して情報記憶媒体１８０に配信するようにしてもよい。このようなホスト装置（サーバー）の情報記憶媒体の使用も本発明の範囲内に含まれる。
【００４２】
処理部１００（プロセッサ）は、操作部１６０からの操作データや所与のプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの各種の処理を行う。この処理部１００の機能は、各種プロセッサ（ＣＰＵ、ＤＳＰ等）又はＡＳＩＣ（ゲートアレイ等）などのハードウェアや、所与のプログラム（ゲームプログラム）により実現できる。
【００４３】
なお、処理部１００の機能は、その全てをハードウェアにより実現してもよいし、その全てをプログラムにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。
【００４４】
処理部１００は、ゲーム処理部１０２、モデルデータ読み込み部１１０、変形部１１２、アフィン変換部１１４、分割数制御部１２０、構成点生成部１３０（曲面演算部、テセレーション部）、簡易オブジェクト設定部１４０、ヒットチェック処理部１４２、クリッピング処理部１４４、描画部１５０を含む。
【００４５】
ゲーム処理部１０２は、操作部１６０からの操作データと所与のプログラム（ゲームプログラム）とに基づいて、種々のゲーム処理を行う。
【００４６】
ここで、ゲーム処理とは、各フレームにおいてゲーム画像やゲーム音を生成するために、その前段階の処理として行われるものある。即ち、処理部１００は、ゲーム処理部１０２でのゲーム処理結果に基づいて例えばオブジェクト空間内において所与の視点（仮想カメラ）から見えるゲーム画像を生成し、表示部１９０に出力する。また、処理部１００は、このゲーム処理結果に基づいて各種の音処理を行い、ＢＧＭ、効果音、又は音声などのゲーム音を生成し、音出力部１９２に出力する。
【００４７】
ゲーム処理部１０２が行うゲーム処理としては、具体的には、コイン（代価）の受け付け処理、各種モードの設定処理、ゲームの進行処理、選択画面の設定処理、オブジェクト（１又は複数のプリミティブ面）の位置や回転角度（Ｘ、Ｙ又はＺ軸回り回転角度）を求める処理、オブジェクトを動作させる処理（モーション処理）、視点の位置（仮想カメラの位置）や視線角度（仮想カメラの回転角度）を求める処理、マップオブジェクトなどのオブジェクトをオブジェクト空間へ配置する処理、ヒットチェック処理、ゲーム結果（成果、成績）を演算する処理、複数のプレーヤが共通のゲーム空間でプレイするための処理、或いはゲームオーバー処理などを考えることができる。
【００４８】
また、ゲーム処理部１０２でのゲーム処理結果としては、ゲーム処理における各種の判断の材料に使用されたり、ゲーム処理により更新される種々のパラメータの値などを考えることができる。或いは、ゲーム処理結果として、処理部１００（プロセッサ）の現在の処理負荷などを考えることもできる。
【００４９】
このゲーム処理結果としては、車ゲームを例にとれば、各フレームにおいて得られる車の位置や回転角度や速度や加速度、視点の位置や視線角度や画角、使用されたコースデータ、プレーヤが選択した車種などがある。ロールプレイングゲームを例にとれば、キャラクタのレベルや体力や攻撃力や守備力などのステータスパラメータ、プレーヤが取得したアイテム、発生したイベントの種類などがある。格闘ゲームを例にとれば、ゲームステージのクリア数、勝ち抜き数、繰り出しに成功した特殊技の数や種類などがある。
【００５０】
モデルデータ読み込み部１１０は、表示物の画像を生成するためのモデルデータを、情報記憶媒体１８０から読み込んだり、通信部１９６を用いてネットワーク（他のゲームシステムやホスト装置と接続するための伝送ライン、通信回線）を介して読み込んだりするための処理を行う。
【００５１】
ここで本実施形態では、表示物のモデルデータは、制御点のデータを含む。また、モデルデータは、表示物の画像を生成するための各種のアトリビュートデータ（色、テクスチャ、輝度、α値等）を含む。更に、表示物をＮＵＲＢＳなどの自由曲面で表す場合には、モデルデータは、ノットベクトルのデータも含む。
【００５２】
なお、簡易オブジェクトをリアルタイムに生成しない場合には、簡易オブジェクトのデータもモデルデータに含まれることになる。そして、この簡易オブジェクトのデータは、情報記憶媒体１８０から読み込まれたり、ネットワークを介して外部から読み込まれる。
【００５３】
本実施形態では、モデルデータに含ませる表示物の形状データとして、制御点データが使用される。制御点データはデータ量が少なく、データ量が表示物の精密度に左右されない。従って、モデルデータに含ませる形状データとして制御点データを使用することで、リソースの有効利用を図ることができる。より具体的には、情報記憶媒体１８０の使用記憶容量やネットワークの通信データ量を節約できるようになる。
【００５４】
変形部１１２は、表示物をリアルタイムに変形させるための処理を行う。これは、例えば、表示物の制御点間の相対的な位置関係を変化させることで実現できる。より具体的には、モーションデータに基づき、スケルトンモデルを構成する各骨（アーク）を動かし、この骨に追従するように制御点を動かす。或いは、ＮＵＲＢＳの場合には、各制御点に設定されたウェイト値を制御することで、表示物を変形させてもよい。
【００５５】
なお、表示物を変形させる場合には、表示物の変形に応じて表示物や簡易オブジェクトの分割数を変化させることが望ましい。より具体的には、表示物の曲げが大きいほど、表示物や簡易オブジェクトの分割数を多くする。
【００５６】
アフィン変換部１１４は、表示物の形状を定義する制御点、表示物の構成点、簡易オブジェクト（表示物を内包するバウンディングボリューム等）の構成点などに対してアフィン変換を行う。このアフィン変換により、例えば、ローカル座標系からワールド座標系への座標変換、ワールド座標系から視点座標系への座標変換、視点座標系からスクリーン座標系への座標変換（透視変換）などが可能になる。
【００５７】
分割数制御部１２０は、ゲーム処理部１０２でのゲーム処理結果に応じて表示物の分割数を可変に制御する処理を行う。
【００５８】
より具体的には、分割数制御部１２０は、表示物の分割数である第１の分割数の変化に応じて、表示物に対応する簡易オブジェクトの分割数である第２の分割数も変化するように、表示物及び簡易オブジェクトの分割数をシームレス（seamless)に変化させる。或いは、簡易オブジェクトの第２の分割数が、表示物の第１の分割数以下となるように、表示物及び簡易オブジェクトの分割数をシームレス（seamless)に変化させる。
【００５９】
なお、分割数とは、表示物の形状を定義する制御点から表示物の構成点を生成する際の、構成点の生成間隔を決めるパラメータである。別の言い方をすれば、制御点の個数とその制御点により生成される構成点の個数との比に相当するパラメータである。
【００６０】
表示物、簡易オブジェクトの第１、第２の分割数は、例えば視点からの距離に応じて変化させることが望ましい。この視点からの距離は、分割数制御部１２０が含む距離演算部１２２が演算する。
【００６１】
この場合、視点からの距離は、表示物の代表点と視点との距離でもよいし、表示物の制御点により特定される点（制御点から選択された点、制御点の代表点等）と視点との距離でもよい。或いは、表示物の簡易オブジェクト（バウンディングボリューム等）により特定される点（簡易オブジェクトの構成点から選択された点、簡易オブジェクトの構成点の代表点）でもよい。
【００６２】
また、視点からの距離は、視点からの直線距離でもよいし、奥行き距離でもよい。
【００６３】
なお、表示物、簡易オブジェクトの第１、第２の分割数は、視点からの距離以外のものに基づいて変化させることもできる。即ち、表示物、簡易オブジェクトの第１、第２の分割数は、ゲーム処理結果などに応じて変化させることができる。
【００６４】
例えば、表示物がロールプレイングゲームのキャラクタである場合には、キャラクタのレベルや体力や攻撃力や守備力などのステータスパラメータに応じて第１、第２の分割数を変化させてもよい。また、表示物が車ゲームにおける車オブジェクトである場合には、車の速度や加速度に応じて第１、第２の分割数を変化させてもよい。また表示物が格闘ゲームにおけるキャラクタである場合には、ゲームステージのクリア数、勝ち抜き数などに応じて第１、第２の分割数を変化させてもよい。
【００６５】
構成点生成部１３０は、分割数制御部１２０により可変に制御される分割数と、表示物の制御点とに基づき、分割数により決められる生成間隔で表示物の構成点をリアルタイムに生成する処理を行う。例えば、表示物がＮＵＲＢＳなどの自由曲面で表される場合には、パラメータを変化させながら自由曲面上の各構成点を順次求める処理を行う。なお、生成された構成点のデータは、主記憶部１７２に保存される。
【００６６】
この場合に本実施形態では、可変に制御される表示物、簡易オブジェクトの第１、第２の分割数と、表示物のモデルデータが含む制御点とに基づいて、表示物の構成点を生成する。このようにすることで、同一の制御点（モデルデータ）を用いながら、分割数がリアルタイムに変化する表示物の画像を生成できるようになる。また、表示物と同一の制御点を用いて、簡易オブジェクトを生成できるようになる。
【００６７】
簡易オブジェクト設定部１４０は、所与の特定の分割数と表示物の制御点とに基づき生成される簡易オブジェクトを、表示物に対応づけて用意するための処理を行う。
【００６８】
この場合に簡易オブジェクトは、表示物に対応する簡易オブジェクトのデータを、情報記憶媒体（又はネットワーク）を介して読み込むことで用意してもよいし、所与の特定の分割数と表示物の制御点とに基づき構成点生成部１３０が簡易オブジェクトをリアルタイムに生成することで用意してもよい。
【００６９】
また、簡易オブジェクトは、所与の分割数と表示物の制御点とに基づき生成される点を直接に構成点とするオブジェクトでもよい。例えば、ヒットチェック処理に用いる場合には、このような簡易オブジェクトが望ましい。
【００７０】
また、簡易オブジェクトは、所与の分割数と表示物の制御点とに基づき生成される点により求められるバウンディングボリューム（表示物を内包するものであり、狭義にはバウンディングボックス）でもよい。例えば、クリッピング処理に用いる場合には、このような簡易オブジェクトが望ましい。
【００７１】
ヒットチェック処理部１４２は、簡易オブジェクト設定部１４０により設定された簡易オブジェクトを用いて、表示物同士のヒットチェック処理（衝突判定）を行う。格闘ゲームを例にとれば、他のキャラクタの拳がキャラクタにヒットしたか否かを判定する。また、車ゲームを例にとれば、車が、他の車や壁にヒットしたか否かを判定する。
【００７２】
そして、ヒットしたと判定した場合には、ヒット時用に用意された処理を行う。格闘ゲームを例にとれば、ヒットされたキャラクタの体力パラメータの値を減少させたり、ヒットされた方向にキャラクタをよろけさせたりする処理を行う。車ゲームを例にとれば、他の車や壁との衝突により、車を変形させたり、衝突方向と逆方向に車を移動させたりする処理を行う。
【００７３】
クリッピング処理部１４４は、簡易オブジェクト設定部１４０により設定された簡易オブジェクトや、ビューボリュームを用いて、その簡易オブジェクトが対応づけられている表示物についてのクリッピング処理を行う。例えば、簡易オブジェクトがビューボリュームの外側にあると判定した場合には、表示物の描画（表示）を省略する。また、簡易オブジェクトがビューボリュームの境界と交差すると判定した場合には、ビューボリュームの外側にはみ出した表示物の部分を、切り取る処理を行う。また、簡易オブジェクトがビューボリューム内に完全に含まれると判定した場合には、その表示物を描画するようにする。
【００７４】
描画部１５０は、ジオメトリ処理後のプリミティブを描画領域１７４（フレームバッファ等）に描画するための処理を行う。より具体的には、構成点生成部１３０により生成された構成点を頂点とするポリゴンを生成し（自由曲面をポリゴンに変換するテセレーションを行い）、そのポリゴンを描画領域１７４に描画する。
【００７５】
但し、描画部１５０が、ポリゴンのみならず自由曲面も描画できる機能を有する場合には、生成された自由曲面を描画領域１７４に直接描画するようにしてもよい。
【００７６】
なお、本実施形態のゲームシステムは、１人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、このようなシングルプレーヤモードのみならず、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。
【００７７】
また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、１つの端末を用いて生成してもよいし、ネットワーク（伝送ライン、通信回線）などで接続された複数の端末を用いて生成してもよい。
【００７８】
２．本実施形態の特徴
２．１  Ｂスプライン及びＮＵＲＢＳ
まず、Ｂスプライン曲線について説明する。
【００７９】
４階（３次）のＢスプライン曲線は４つの制御点から生成される。各制御点をＱ0、Ｑ1、Ｑ2、Ｑ3とすると、Ｂスプライン曲線の式Ｐ（ｔ）は、
Ｐ(t)＝Ｎ0,4(t)Ｑ0＋Ｎ1,4(t)Ｑ1＋Ｎ2,4(t)Ｑ2＋Ｎ3,4(t)Ｑ3   …(１)
となる。
【００８０】
式（１）の中のＮ0,4〜Ｎ3,4は、混ぜ合わせ関数（Blending Function）と呼ばれ、４階のＢスプライン曲線の場合は下式のようになる。
【００８１】
【数１】
0004329965.tif 000002
【００８２】
混ぜ合わせ関数Ｎ0,4〜Ｎ3,4は、パラメータの節目を数値の列として与えるベクトルであるノットベクトルに基づき求められる。そして、ノットベクトルのノット間隔（ノットベクトルの隣り合う要素間の数値差）が一定である場合には、ユニフォーム（Uniform）な自由曲線（自由曲面）と呼ばれ、ノット間隔が一定でない場合は、ノンユニフォーム（Non Uniform）な自由曲線と呼ばれる。
【００８３】
例えば、制御点数が４個で４階のユニフォームなＢスプライン曲線のノットベクトルＴは下式のようになる。
【００８４】
Ｔ＝［−３  −２  −１  ０  １  ２  ３  ４］                …(３)
式（３）では、ノットベクトルの隣り合う要素間の数値差は常に１となっており、ユニフォームなノットベクトルになっている。
【００８５】
なお、ノットベクトルの要素数、制御点数、階数には、（要素数）＝（制御点数）＋（階数）の関係式が成り立つ。
【００８６】
図２（Ａ）に、制御点Ｑ0〜Ｑ3と上式（３）のノットベクトルに基づき形状が特定されるユニフォームなＢスプライン曲線の例を示す。Ｂスプライン曲線の式Ｐ（ｔ）のパラメータｔが０から１に変化することで、図２（Ａ）に示すような曲線が描かれる。
【００８７】
さて、Ｂスプラインの混ぜ合わせ関数は、下式のような再帰形表現の漸化式（DeBoorCoxの漸化式）により表すことができる。
【００８８】
【数２】
0004329965.tif 000003
【００８９】
ここで、ノットベクトルＴは一般的に、
Ｔ＝［ｔ0  ｔ1  ｔ2  …  ｔM+N-1］
Ｎ：制御点数
Ｍ：階数（次数＋１）              …(５)
と表される。
【００９０】
そして、混ぜ合わせ関数（基底関数）Ｎ0,M〜Ｎn,Mと制御点Ｑ0〜Ｑnより、Ｂスプライン曲線の式Ｐ（ｔ）は一般的に、
Ｐ(t)＝Ｎ0,M(t)Ｑ0＋Ｎ1,M(t)Ｑ1＋  …＋Ｎn,M(t)Ｑn          …(６)
と表される。
【００９１】
上式（６）から明らかなように、ｊ番目の制御点Ｑjは、混ぜ合わせ関数ＮJ,Mを持つ。そして、ＮJ,Mは、ノットｔjからＭ（階）区間にまたがる関数になる。
【００９２】
図２（Ｂ）に、制御点がＱ0〜Ｑ4でノットベクトルＴの要素数が８個の場合のＢスプライン曲線の例を示す。
【００９３】
曲線セグメント１０は、制御点Ｑ0〜Ｑ3とノットベクトルＴの要素ｔ0〜ｔ6により形状が特定され、パラメータｔがｔ3≦ｔ＜ｔ4の変域で変化することで、曲線セグメント１０上の各点が求められる。
【００９４】
一方、曲線セグメント１２は、制御点Ｑ1〜Ｑ4とノットベクトルＴの要素ｔ1〜ｔ7により形状が特定され、パラメータｔがｔ4≦ｔ＜ｔ5の変域で変化することで曲線セグメント１２上の各点が求められる。
【００９５】
ノンユニフォーム（Non Uniform）で、有理化（Rational）されたＢスプラインが、ＮＵＲＢＳ（Non Uniform Rational B-Spline）である。
【００９６】
即ち、ＮＵＲＢＳはノンユニフォームであるため、上式（５）のノットベクトルＴのノット間隔が一定にならない。従って、ノット間隔の比で曲線（曲面)の微分係数を補正できるのでと共に、Ｂスプライン以外の種々の曲線（ベジェ、エルミート等）も表現できるようになる。
【００９７】
また、ＮＵＲＢＳでは、有理化（同次座標を用いた中心投影）が行われているため、制御点に対するウェイト値を設定できる。従って、有利化されていないＢスプラインでは描くことができない真円なども描くことができるようになる。
【００９８】
２．２  係数マトリクス（ベースマトリクス）
混ぜ合わせ関数の値を求めるために使用される上記のDeBoorCoxの漸化式（４）は、再帰形表現になっている。従って、コンピュータに計算させるのには都合が良い。
【００９９】
しかしながら、その反面、漸化式（４）は、処理負荷の重い除算処理を多く含むと共に再帰ループのたびに条件判断が必要になる。従って、処理速度の低下を招くという問題点がある。
【０１００】
そこで、本実施形態では、漸化式（４）を敢えて再帰的に解かずに、４階という条件で一般３次式に展開し、これにより混ぜ合わせ関数の値を高速に求めることに成功している。
【０１０１】
このように漸化式（４）を一般３次式に展開することで、混ぜ合わせ関数は下式のようになる。
【０１０２】
Ｎ0,4＝ａｔ3＋ｂｔ2＋ｃｔ＋ｄ
Ｎ1,4＝ｅｔ3＋ｆｔ2＋ｇｔ＋ｈ
Ｎ2,4＝ｉｔ3＋ｊｔ2＋ｋｔ＋ｌ
Ｎ3,4＝ｍｔ3＋ｎｔ2＋ｏｔ＋ｐ                               …(７)
例えば、混ぜ合わせ関数Ｎ1,4の展開式は下式のようになる。
【０１０３】
【数３】
0004329965.tif 000004
【０１０４】
【数４】
0004329965.tif 000005
【０１０５】
上式（９）から明らかなように、ノットベクトルの要素ｔ1〜ｔ5の値を代入することで、混ぜ合わせ関数Ｎ1,4の係数セットｅ、ｆ、ｇ、ｈの値を予め求めておくことができる。
【０１０６】
同様に、混ぜ合わせ関数Ｎ0,4、Ｎ2,4、Ｎ3,4の係数セットａ、ｂ、ｃ、ｄ、ｉ、ｊ、ｋ、ｌ、ｍ、ｎ、ｏ、ｐも、ノットベクトルの要素の値を代入することで、予め求めておくことができる。
【０１０７】
上式（７）は、
【０１０８】
【数５】
0004329965.tif 000006
【０１０９】
というようにマトリクスの形で表記できる。これにより、混ぜ合わせ関数の値を高速なマトリクス演算で求めることができる。
【０１１０】
以降、上式（１０）のＭ1を、係数マトリクス（ベースマトリクス。広義には係数セット）と呼ぶことにする。
【０１１１】
この係数マトリクスＭ1と制御点Ｑ0（Ｑ0x、Ｑ0y、Ｑ0z）〜Ｑ3（Ｑ3x、Ｑ3y、Ｑ3z）に基づき、下式にしたがって自由曲線上の各点（Ｐx(t)、Ｐy(t)、Ｐz(t)）を求めることができる。
【０１１２】
Ｐx(t)＝Ｎ0,4(t)Ｑ0x＋Ｎ1,4(t)Ｑ1x＋Ｎ2,4(t)Ｑ2x＋Ｎ3,4(t)Ｑ3x
Ｐy(t)＝Ｎ0,4(t)Ｑ0y＋Ｎ1,4(t)Ｑ1y＋Ｎ2,4(t)Ｑ2y＋Ｎ3,4(t)Ｑ3y
Ｐz(t)＝Ｎ0,4(t)Ｑ0z＋Ｎ1,4(t)Ｑ1z＋Ｎ2,4(t)Ｑ2z＋Ｎ3,4(t)Ｑ3z
…(11)
さて、係数マトリクスＭ1の要素ａ〜ｐ（係数セット）は、各制御点に固有なものであり、ノットベクトルが変わらない限り不変である。
【０１１３】
そこで本実施形態では、表示物の構成点をリアルタイムに生成する処理の前段階の処理において、ノットベクトルに基づき係数マトリクスを予め求めておき（或いは情報記憶媒体やネットワークから読み出しておき）、構成点の生成処理時には係数マトリクスの演算を行わないようにしている。このようにすることで、構成点の生成処理の負荷を大幅に軽減でき、処理の高速化を図れる。
【０１１４】
２．３  有理化
同次座標を用いた中心投影を行い、制御点Ｑ（ｘ，ｙ，ｚ）にウェイト値ｗを持たせることができるのが有理化である。
【０１１５】
例えば上式(11)のｘ成分の式を有理化すると、下式のようになる。
【０１１６】
【数６】
0004329965.tif 000007
【０１１７】
ノットベクトルをノンユニフォームにし、有理化された式を用いることで、ＢスプラインをＮＵＲＢＳにすることができる。
【０１１８】
例えば、上式(11)を、上式(10)を用いてマトリクスの形で表記すると下式のようになる。
【０１１９】
【数７】
0004329965.tif 000008
【０１２０】
そして、上式(13)を有利化すると下式のようになる。
【０１２１】
【数８】
0004329965.tif 000009
【０１２２】
有理化を行った場合には、上式(14)に基づき各要素Ｐx（ｔ）Ｐw（ｔ）、Ｐy（ｔ）Ｐw（ｔ）、Ｐz（ｔ）Ｐw（ｔ）を求めた後に、これらの各要素をＰw（ｔ）で除算する処理が必要になる。
【０１２３】
但し、有理化が特に必要でない場合には、無理に有利化を行わなくてもよい。有理化を行わないことで、真円などを表現できなくなる反面、Ｐw（ｔ）による除算処理等が不要になるため、処理を高速化できる。
【０１２４】
２．４  曲面化について
以上は、説明を簡単にするために、曲線の場合の計算方法について主に説明した。曲面に拡張する場合には、曲線の場合と同様の処理を、パラメータｕ、ｖの各成分に対して行えばよい。
【０１２５】
例えば、パラメータｕ、ｖの各成分についての混ぜ合わせ関数は下式のようになる。
【０１２６】
【数９】
0004329965.tif 000010
【０１２７】
【数１０】
0004329965.tif 000011
【０１２８】
上式(15)、(16)において、Ｍｕはｕ成分についての係数（ベース）マトリクスであり、Ｍｖはｖ成分についての係数マトリクスである。
【０１２９】
上式(15)、(16)から、曲面上の点であるＰｕｖ（ｕ，ｖ）のｘ成分であるＰxｕｖ（ｕ，ｖ）は下式のように求められる。
【０１３０】
【数１１】
0004329965.tif 000012
【０１３１】
そして、有利化を行った場合（ＮＵＲＢＳ）には、曲線の場合の有理化と同様に、Ｐxｕｖ（ｕ，ｖ）Ｐwｕｖ（ｕ，ｖ）は下式のように求められる。
【０１３２】
【数１２】
0004329965.tif 000013
【０１３３】
曲面上の構成点を求める処理は、まとめると下記のようになる。
(処理Ａ)
ノットベクトルに基づいて、各制御点に対する混ぜ合わせ関数を求めるための係数マトリクスＭｕ、Ｍｖを求める。
(処理Ｂ)
制御点をアフィン変換する
(処理Ｃ)
係数マトリクスＭｕ、Ｍｖと、曲面の分割数に応じた値に設定されるパラメータｕ、ｖに基づいて、混ぜ合わせ関数Ｎｕ、Ｎｖを求める。
【０１３４】
これらの混ぜ合わせ関数は各制御点に固有なものであるが、分割数がアクティブに変化する場合には、分割数が変化するたびに混ぜ合わせ関数を求め直すようにする。
(処理Ｄ)
パラメータｕ、ｖに基づき、Ｐｕｖ（ｕ，ｖ）ＰWｕｖ（ｕ，ｖ）を求める。
(処理Ｅ)
使用する制御点セット（制御点の組み合わせ）が変化しない場合には、パラメータｕ、ｖを順次変化させながら、処理Ｄを繰り返す。
(処理Ｆ)
使用する制御点セットが変化した場合には、処理Ｃに戻る。
【０１３５】
図３に、本実施形態の手法により生成された曲面パッチ２０の例を示す。
【０１３６】
ここで、ｕ方向のノットベクトルをＵ［ｕ0，ｕ1，ｕ2…ｕ6，ｕ7…］とし、ｖ方向のノットベクトルをＶ［ｖ0，ｖ1，ｖ2…ｖ6，ｖ7…］とする。すると、曲面パッチ２０の生成に使用される係数マトリクスＭｕ、Ｍｖは、各々、ノットベクトルの要素ｕ0〜ｕ6、ｖ0〜ｖ6に基づき求められる。
【０１３７】
そして、上式(18)から明らかなように、曲面パッチ２０上の各点は、制御点Ｑ00〜Ｑ33と混ぜ合わせ関数Ｎｕ0,4〜Ｎｕ3,4、Ｎｖ0,4〜Ｎｖ3,4に基づき求められる。この場合、パラメータｕの変域はｕ3≦ｕ＜ｕ4となり、パラメータｖの変域はｖ3≦ｖ＜ｖ4になる。
【０１３８】
一方、曲面パッチ２２を生成する場合には、使用する制御点のセットが、Ｑ00〜Ｑ33からＱ01〜Ｑ34に変わる。そして、曲面パッチ２２上の各点は、制御点Ｑ01〜Ｑ34と混ぜ合わせ関数Ｎｕ1,4〜Ｎｕ4,4、Ｎｖ0,4〜Ｎｖ3,4に基づき求められる。この場合、パラメータｕの変域はｕ4≦ｕ＜ｕ5となり、パラメータｖの変域はｖ3≦ｖ＜ｖ4になる。
【０１３９】
本実施形態により生成された曲面パッチ２０の構成点は、ポリゴンの頂点に設定され、これらの頂点により構成されるポリゴンが画面上に表示されることになる。
【０１４０】
２．５  分割数の可変制御
さて、本実施形態では、例えば視点からの距離（広義にはゲーム処理結果）に応じて、表示物の分割数をシームレス（seamless）に変化させている。
【０１４１】
ここで、分割数とは、制御点に基づき構成点を生成する際の構成点の生成間隔を決めるパラメータである。本実施形態では、上式(17)においてパラメータｕ、ｖを順次変化させて自由曲面の各構成点を求める際における、パラメータｕ、ｖの微少変化量△ｕ、△ｖを、分割数のパラメータとして用いている。そして、これらの△ｕ、△ｖを視点からの距離等に応じてシームレスに変化させる。
【０１４２】
具体的には図４に示すように、視点からの距離等に応じて変化する分割数と、モデルデータに含まれる制御点とに基づいて、分割数（精密度）がシームレスに変化するように表示物の構成点を生成する。
【０１４３】
これにより、例えば、視点と表示物の距離が遠い場合には、図４のＡ１に示すような分割数が少ない表示物が表示され、中ぐらいの場合には、図４のＡ２に示すような分割数が中ぐらいの表示物が表示される。また、視点と表示物の距離が近い場合には、図４のＡ３に示すような分割数が多い表示物が表示される。
【０１４４】
例えば、従来のポリゴンモデルのＬＯＤにおいては、図５（Ａ）に示すように、表示物を表すモデルとして、近距離用、中距離用、遠距離用モデルというように複数のモデルを用意し、視点からの距離に応じて、使用するモデルを切り替えていた。
【０１４５】
しかしながら、この従来例では図５（Ｂ）に示すように、用意するモデルの数の分だけモデルデータが必要になる。従って、モデルデータの使用記憶容量が増大化してしまう。
【０１４６】
また、モデル切り替えの際の画面のショックが大きく、モデルが切り替わったことをプレーヤに気づかれてしまうという問題点もある。そして、この問題点を解決すべく、モデルの数を更に増やすと、モデルデータのデータ量の増大化の問題は更に深刻なものとなる。
【０１４７】
これに対して本実施形態では、図４のＡ１、Ａ２、Ａ３に示すような分割数（精密度）が異なる表示物の画像を、モデルデータが含む同一の制御点データに基づいて生成できる。従って、制御点データを含むモデルデータのデータ量を少なくすることが可能になり、モデルデータを記憶する情報記憶媒体やモデルデータを伝送するネットワークなどのリソースを効率的に使用できるようになる。
【０１４８】
また本実施形態によれば、分割数をシームレスに変化させることで、表示物の精密度をシームレスに変化させることができる。従って、図５（Ａ）の従来例と異なり、分割数が変化する際にも画面にショックが生じず、分割数が変化したことをプレーヤに気づかれなくて済む。また、このように分割数をシームレスに変化させた場合にも、制御点のデータ量は不変であるため、図５（Ｂ）に示すようなモデルデータのデータ量が極端に増加してしまうという問題も生じない。
【０１４９】
また、本実施形態によれば、分割数を多くすることで、非常に滑らかな曲面を持つ表示物の画像を生成できるようになる。特に、前述のように、ノンユニフォームな自由曲面（自由曲線）の関数の係数セット（係数マトリクス）を、パラメータを変化させながら自由曲面の各構成点を順次生成する処理の前段階において用意するようにすれば、構成点の生成処理を大幅に高速化できる。従って、従来のポリゴンモデルを用いたゲームシステムでは生成できなかった、高い精密度の表示物の画像を、リアルタイムに生成できるようになる。
【０１５０】
２．６  ヒットチェック
さて、従来のゲームシステムにおいては、表示物同士のヒットチェックを行う場合に、以下のような問題点があった。
【０１５１】
例えば図６（Ａ）において、表示物ＯＢ１（キャラクタ）に対して、表示物ＯＢ２（他のキャラクタ）のパンチが当たったか否かをチェックする場合に、従来では、表示物ＯＢ１を内包するバウンディングボックス（以下、ＢＢＯＸと呼ぶ）を表示物ＯＢ１に対応づけて予め用意しておく。そして、このＢＢＯＸにＯＢ２の拳がヒット（衝突）したか否かを判定することで、ヒットチェック処理を実現していた。
【０１５２】
しかしながら、図６（Ａ）から明らかなように、ＢＢＯＸは、表示物ＯＢ１よりも大きめに作られている。このため、実際には、表示物ＯＢ１の体に対して表示物ＯＢ２の拳が接していないのに、パンチが当たったと判定されてしまう。従って、プレーヤが不自然さを感じてしまい、プレーヤの仮想現実感を損ねてしまう。この場合、例えば、表示物の各パーツ毎にＢＢＯＸを設定する手法も考えられるが、この手法を採用しても、正確な判定処理を実現するのは難しい。
【０１５３】
そこで、本実施形態では図６（Ｂ）に示すように、ヒットチェック用の簡易オブジェクトとして、所与の特定の分割数と表示物ＯＢ１の制御点とにより生成される簡易オブジェクトＳＯＢを表示物に対応づけて用意する。そして、この簡易オブジェクトＳＯＢに対して表示物ＯＢ２の拳がヒットしたか否かを判定することで、ヒットチェック処理を実現する。
【０１５４】
このように簡易オブジェクトＳＯＢを、所与の分割数と表示物ＯＢ１の制御点とにより生成すれば、ＯＢ１の形状と近い形状を有する簡易オブジェクトＳＯＢを得ることができる。従って、図６（Ｂ）から明らかなように、表示物ＯＢ２の拳が表示物ＯＢ１の体に実際に接したときに、パンチが当たったと判定されるようになる。従って、プレーヤは不自然さを感じず、プレーヤの仮想現実感を高めることができる。
【０１５５】
さて、以上のような手法を採用した場合、簡易オブジェクトの分割数をどのようにして制御するかが１つの課題となる。
【０１５６】
そこで本実施形態では、表示物の第１の分割数の変化に応じて簡易オブジェクトの第２の分割数も変化するように、第１、第２の分割数を制御している。或いは、簡易オブジェクトの第２の分割数が、表示物の第１の分割数以下となるように、前記第１、第２の分割数を制御している。
【０１５７】
例えば、図７において表示物及びそれに対応する簡易オブジェクトは同一の制御点により、その構成点が生成されている。より具体的には、図１の構成点生成部１３０が、同一の制御点と、所与の分割数とに基づいて、表示物及び簡易オブジェクトの両方の構成点を生成している。
【０１５８】
そして、図７のＢ１に示すように表示物の分割数が中ぐらいの場合には、Ｂ２に示すような少ない分割数のオブジェクトを、表示物の簡易オブジェクトとして使用するようにする。
【０１５９】
一方、例えば視点と表示物との距離が近くなり、図７のＢ３に示すように表示物の分割数が多くなると、それに応じて、Ｂ４に示すように簡易オブジェクトの分割数も多くし、簡易オブジェクトの分割数を中ぐらいにする。
【０１６０】
視点と表示物との距離が近くなると、プレーヤは、相手の攻撃がヒットしたか否かを、より容易に見分けることができるようになる。このような場合に、図７のＢ２に示すような分割数の少ない簡易オブジェクトが使用されると、プレーヤの見た目にはヒットしていない相手の攻撃が、表示物に当たったと判定されてしまう。従って、プレーヤが不自然さを感じて、プレーヤの仮想現実感を損ねてしまう。
【０１６１】
本実施形態では、このように視点と表示物との距離が近くなり、図７のＢ３に示すように表示物の分割数が多くなると、それに連動してＢ４に示すように簡易オブジェクトの分割数も多くなるようにしている。従って、相手の攻撃とのヒットチェック処理も、Ｂ２に示す簡易オブジェクトを使用する場合に比べて、より正確に行われるようになる。この結果、プレーヤは不自然さを感じなくなり、プレーヤの仮想現実感を向上できる。
【０１６２】
一方、視点と表示物との距離が遠い場合には、図７のＢ２に示すような分割数の少ない簡易オブジェクトを使用しても、相手の攻撃のヒットの有無をプレーヤはどちらにせよ見分けることができないため、問題は生じない。
【０１６３】
また、視点と表示物との距離が遠い場合には、表示物及び簡易オブジェクトの分割数を共に少なくすることで、描画すべきプリミティブ面の数が少なくなるため、１フレーム内で全ての画像生成処理を完了するというリアルタイム処理の要請に応えることができる。
【０１６４】
なお、表示物の分割数の変化と簡易オブジェクトの分割数の変化を完全には連動させる必要はない。例えば、表示物の分割数がＮ１からＮ２に変化している際には、簡易オブジェクトの分割数を変化させずに、表示物の分割数がＮ２からＮ３に変化した場合に初めて簡易オブジェクトの分割数を変化させるようにしてもよい。
【０１６５】
また、表示物の分割数を変化させる処理条件と簡易オブジェクトを変化させる処理条件とを、各々独立に別々に設定してもよい。例えば、表示物の分割数を変化させるパラメータと簡易オブジェクトの分割数を変化させるパラメータとを異ならせ、表示物の分割数が変化するタイミングと簡易オブジェクトの分割数が変化するタイミングとをずらすようにしてもよい。
【０１６６】
また、簡易オブジェクトの分割数を表示物の分割数よりも常に少なくする必要はない。例えば、視点からの距離が遠い場合には、簡易オブジェクトの分割数と表示物の分割数を同一にし（例えば表示物自体を簡易オブジェクトとして使用する）、視点からの距離が近づいた場合に初めて、簡易オブジェクトの分割数を表示物の分割数がよりも少なくするようにしてもよい。
【０１６７】
また、特定の条件下において、逆に、簡易オブジェクトの分割数の方を表示物の分割数よりも多くするようにしてもよい。例えば、視点から遠い場合には、簡易オブジェクトの分割数を表示物の分割数よりも少なくする一方で、視点から近い場合には、簡易オブジェクトの分割数を表示物の分割数よりも多くするようにしてもよい。
【０１６８】
また、上記では、視点との距離に基づいて、表示物、簡易オブジェクトの分割数を変化させる場合について説明したが、視点との距離以外のゲーム処理結果に基づいて、表示物、簡易オブジェクトの分割数を変化させてもよい。
【０１６９】
２．７  簡易オブジェクトの設定
さて、本実施形態の１つの特徴は、所与の特定の分割数と表示物の制御点とに基づき生成される簡易オブジェクトを、表示物に対応づけて用意し、この簡易オブジェクトを利用して、表示物に関する種々の判定処理（ヒットチェック、クリッピング処理等）を行う点にある。
【０１７０】
この場合、簡易オブジェクトを用意する手法としては、以下のような手法を考えることができる。
【０１７１】
例えば図８では、Ｃ１に示すように所与の分割数と制御点とに基づいて表示物がリアルタイムに生成されている。ここで図８の表示物は、山などの地形（マップ）を表す表示物である。
【０１７２】
そして図８では、Ｃ２に示すように、所与の特定の分割数と表示物の制御点とに基づき生成される簡易オブジェクトのデータを、情報記憶媒体やネットワークから読み込むことで、簡易オブジェクトを用意する。そして、この用意された簡易オブジェクトを用いて、ヒットチェック、クリッピング処理などの表示物に関する種々の判定処理を行う。
【０１７３】
この場合、簡易オブジェクトは、表示物の制御点に基づき生成されているため、表示物の形状と近い形状を有することになる。従って、このような簡易オブジェクトを利用することで、より正確な判定処理が可能になる。
【０１７４】
なお、情報記憶媒体やネットワークのリソースを有効利用するためには、用意する簡易オブジェクトの分割数を、より少なくすることが望ましい。
【０１７５】
また図９では、Ｄ１に示すように制御点と所与の分割数とに基づき表示物がリアルタイムに生成されている。
【０１７６】
そして図９では、Ｄ２に示すように、所与の特定の分割数と表示物の制御点とに基づき簡易オブジェクトをリアルタイムに生成することで、簡易オブジェクトを用意する。そして、この用意された簡易オブジェクトを用いて、ヒットチェック、クリッピング処理などの表示物に関する種々の判定処理を行う。
【０１７７】
この場合、簡易オブジェクトは、表示物の形状と近い形状を有することになるため、より正確な判定処理が可能になる。
【０１７８】
なお、処理を高速化し、リアルタイム処理の要請に応えるためには、用意する簡易オブジェクトの分割数を、より少なくすることが望ましい。
【０１７９】
また、表示物の分割数の変化に応じて、簡易オブジェクトの分割数も変化させることが望ましい。また、簡易オブジェクトの分割数が、表示物の分割数以下になることが望ましい。
【０１８０】
例えば、図８で説明したように情報記憶媒体（ネットワーク）から簡易オブジェクトのデータを読み込む場合には、１つの表示物に対応づけて、分割数の異なる複数の簡易オブジェクトを用意する。そして、表示物の分割数の変化に応じて、使用する簡易オブジェクトを切り替えればよい。
【０１８１】
一方、図９で説明したように簡易オブジェクトをリアルタイムに生成する場合には、図７で説明したように、表示物の分割数の変化に応じて簡易オブジェクトの分割数をリアルタイムに変化させればよい。
【０１８２】
さて、簡易オブジェクトとしては、所与の分割数と表示物の制御点とに基づき生成される点を直接に構成点とするオブジェクトを用いてもよいし、所与の分割数と表示物の制御点とに基づき生成されるバウンディングボックスＢＢＯＸ（広義には、バウンディングボリューム）を用いてもよい。
【０１８３】
例えば図１０に示すように、簡易オブジェクトを用いてヒットチェック処理を行う場合には、Ｅ１に示すような所与の分割数と表示物の制御点とに基づき生成される点を直接に構成点とするオブジェクトを、簡易オブジェクトして用いることが望ましい。このような簡易オブジェクトを用いれば、図６（Ａ）、（Ｂ）で説明したように、ＢＢＯＸを用いる場合に比べて正確なヒットチェック処理を実現できるからである。
【０１８４】
なお、この場合には、情報記憶媒体やネットワークなどのリソースを有効利用するため、或いはリアルタイム処理の要請に応えるために、少ない分割数の簡易オブジェクトを用いることが望ましい。
【０１８５】
また図１１に示すように、簡易オブジェクトを用いてクリッピング処理を行う場合には、所与の分割数と表示物の制御点とに基づき生成されるＢＢＯＸを、簡易オブジェクトとして用いることが望ましい。クリッピング処理においては、ビューボリュームにおける表示物の内外判定処理に間違いが生じないように、表示物を完全に内包する簡易オブジェクトを用いることが望まれるからである。
【０１８６】
図１２に、ＢＢＯＸの生成手法の一例を示す。
【０１８７】
図１２では、まず、所与の分割数と制御点により生成された表示物の構成点のＸ、Ｙ、Ｚ座標の最大値ＸＭＡＸ、ＹＭＡＸ、ＺＭＡＸ、最小値ＸＭＩＮ、ＹＭＩＮ、ＺＭＩＮを求める。そして、これらの（ＸＭＡＸ、ＹＭＡＸ、ＺＭＡＸ）、（ＸＭＩＮ、ＹＭＩＮ、ＺＭＩＮ）を各座標成分に持つ８つの構成点ＢＰ０〜ＢＰ７を求めることで、図１２に示すような表示物を内包するＢＢＯＸを得る。
【０１８８】
なお、ＢＢＯＸは、図１１のＦ１に示すように、分割数が多い表示物の構成点に基づき生成することが望ましい。このようにすれば、表示物の分割数がシームレスに変化した場合にも、ＢＢＯＸの中に表示物が内包されることを保証できるようになるからである。
【０１８９】
但し、ＢＢＯＸをモデルデータの中に含ませるのではなく、得られた構成点に基づいてゲーム中にリアルタイムに生成する場合には、分割数が少ない表示物の構成点に基づいてＢＢＯＸを生成することが望ましい。分割数が少ない表示物は、その構成点の個数も少ないため、表示物の構成点からＢＢＯＸの構成点を求める処理の負担が少なく、リアルタイム処理の要請に応えることができるからである。
【０１９０】
また、ＢＢＯＸを、表示物の構成点ではなく、表示物の制御点に基づいて生成するようにしてもよい。このようにすれば、個数の少ない制御点に基づいてＢＢＯＸの構成点を求めることができるため、ＢＢＯＸの生成処理の負担を軽減化できる。
【０１９１】
３．本実施形態の処理
次に、本実施形態の詳細な処理例について、図１３〜図１７のフローチャートを用いて説明する。
【０１９２】
図１３は、表示物と簡易オブジェクトの分割数を可変に制御する処理に関するフローチャートである。
【０１９３】
まず、制御点データなどを含むモデルデータを読み込む（ステップＳ１）。そして、例えば制御点などに対するアフィン変換を行う（ステップＳ２）。
【０１９４】
次に、図７などで説明した手法により、表示物の分割数と簡易オブジェクトの分割数を決定する（ステップＳ３）。
【０１９５】
次に、ステップＳ３で決定された表示物の分割数と、アフィン変換後の表示物の制御点とに基づいて、表示物の構成点を生成する（ステップＳ４）。また、ステップＳ３で決定された簡易オブジェクトの分割数と、アフィン変換後の表示物の制御点とに基づいて、簡易オブジェクトの構成点を生成する（ステップＳ５）。
【０１９６】
次に、図１１で説明したように、ビューボリュームと簡易オブジェクト（ＢＢＯＸ等）を用いてクリッピング処理を行う（ステップＳ６）。そして、クリッピング処理により、表示物の一部又は全部がビューボリューム内にあると判定された場合には、表示物を描画領域（フレームバッファ）に描画する処理を行う（ステップＳ７）。
【０１９７】
次に、図６（Ｂ）、図１０で説明したように、簡易オブジェクトを用いて、他の表示物とのヒットチェック処理を行う（ステップＳ８）。そして、他の表示物とヒットしたか否かを判定し（ステップＳ９）、ヒットしたと判定された場合には、ヒット時用の処理（体力パラメータの値を減少させる処理、ヒット方向によろけさせる処理等）を行う（ステップＳ１０）。
【０１９８】
図１４は、図１３のステップＳ３の分割数を決定する処理に関するフローチャートである。
【０１９９】
まず、表示物と視点との距離Ｌを求める（ステップＳ１１）。この場合、視点との距離を求める対象となる点としては、表示物に予め設定された代表点、表示物の制御点により特定される点、或いは表示物の簡易オブジェクトにより特定される点などを考えることができる。
【０２００】
次に、ステップＳ１１で求められた距離Ｌに基づいて、表示物の分割数を表すパラメータである△ｕ０、△ｖ０を求める（ステップＳ１２）。次に、距離Ｌに基づいて、簡易オブジェクトの分割数を表すパラメータである△ｕ１、△ｖ１を求める（ステップＳ１３）。この場合、図７で説明したように、簡易オブジェクトの分割数が表示物の分割数以下になるように、△ｕ１≧△ｕ０、△ｖ１≧△ｖ０の関係式が成り立つようにする。
【０２０１】
図１５、図１６は、ＢＢＯＸの生成処理に関するフローチャートである。
【０２０２】
まず、Ｎ＝０に設定する（ステップＳ３２）。
【０２０３】
次に、Ｎ＝ＮＥＮＤか否かを判断し（ステップＳ３３）、ＮＥＮＤでない場合には、表示物の構成点Ｐ［Ｎ］の座標（Ｘ、Ｙ、Ｚ）を読み込む（ステップＳ３４）。
【０２０４】
次に、Ｎ＝０か否かを判断し（ステップＳ３５）、Ｎ＝０の場合には、ＸＭＡＸ＝ＸＭＩＮ＝Ｘ、ＹＭＡＸ＝ＹＭＩＮ＝Ｙ、ＺＭＡＸ＝ＺＭＩＮ＝Ｚに設定する（ステップＳ３６）。
【０２０５】
一方、Ｎ＝０でない場合には、ステップＳ３７に移行し、ＸＭＡＸ＜Ｘか否か、ＸＭＩＮ＞Ｘか否かを判断する。そして、ＸＭＡＸ＜Ｘの場合には、ＸＭＡＸ＝Ｘに設定し、ＸＭＩＮ＞Ｘの時にはＸＭＩＮ＝Ｘに設定する。そして、Ｙ、Ｚ座標についても同様の処理を行う。
【０２０６】
次に、Ｎを１だけインクリメントしてステップＳ３３〜Ｓ３８の処理を繰り返す（ステップＳ３８）。そして、ステップＳ３３でＮ＝ＮＥＮＤと判断された場合には、最終的に得られた（ＸＭＡＸ，ＹＭＡＸ，ＺＭＡＸ）、（ＸＭＩＮ，ＹＭＩＮ，ＺＭＩＮ）に基づき、以下のようにＢＢＯＸの構成点ＢＰ０〜ＢＰ７を求める（図１６のステップＳ３９）。
【０２０７】
ＢＰ０＝（ＸＭＡＸ，ＹＭＡＸ，ＺＭＡＸ）
ＢＰ１＝（ＸＭＡＸ，ＹＭＡＸ，ＺＭＩＮ）
ＢＰ２＝（ＸＭＡＸ，ＹＭＩＮ，ＺＭＡＸ）
ＢＰ３＝（ＸＭＡＸ，ＹＭＩＮ，ＺＭＩＮ）
ＢＰ４＝（ＸＭＩＮ，ＹＭＡＸ，ＺＭＡＸ）
ＢＰ５＝（ＸＭＩＮ，ＹＭＡＸ，ＺＭＩＮ）
ＢＰ６＝（ＸＭＩＮ，ＹＭＩＮ，ＺＭＡＸ）
ＢＰ７＝（ＸＭＩＮ，ＹＭＩＮ，ＺＭＩＮ）
以上のようにすることで、図１２で説明したように、表示物を内包するＢＢＯＸを生成できる。
【０２０８】
図１７は、表示物、簡易オブジェクト（自由曲面）の構成点を生成する処理（図１３のステップＳ４、Ｓ５）に関するフローチャートである。
【０２０９】
まず、パラメータｕ、ｖを、ｕ＝ｕｓｔａｒｔ、ｖ＝ｖｓｔａｒｔに設定する（ステップＳ４０）。図１８の例では、ｕｓｔａｒｔ＝ｕ3、ｖｓｔａｒｔ＝ｖ3になる。
【０２１０】
次に、ｖ＝ｖｅｎｄか否かを判断し、ｖ＝ｖｅｎｄでない場合には、ｕ＝ｕｅｎｄか否かを判断する（ステップＳ４１、Ｓ４２）。図１８の例では、ｕｅｎｄ＝ｕ6、ｖｅｎｄ＝ｖ6になる。
【０２１１】
ｕ＝ｕｅｎｄでない場合には、現在のｕ、ｖの値が属する変域に応じた係数マトリクス、制御点を読み出す（ステップＳ４３）。
【０２１２】
次に、前述の式(18)にしたがって、現在のｕ、ｖの値でのＮＵＲＢＳの構成点Ｐを求めるテセレーション処理を行う（ステップＳ４４）。
【０２１３】
次に、パラメータｕにｕ方向の分割数パラメータ△ｕを加算して、ｕを変化させ（ステップＳ４５）、ステップＳ４２に戻る。なお、この△ｕは、図１４のステップＳ１２、Ｓ１３で求められたものである（表示物では△ｕ＝△ｕ０、簡易オブジェクトでは△ｕ＝△ｕ１）。
【０２１４】
ステップＳ４２でｕ＝ｕｅｎｄと判断された場合には、ｕ＝ｕｓｔａｒｔに戻すと共に、パラメータｖに、ｖ方向の分割数パラメータ△ｖを加算して、ｖを変化させる（ステップＳ４６）。なお、この△ｖは、図１４のステップＳ１２、Ｓ１３で求められたものである（表示物では△ｖ＝△ｖ０、簡易オブジェクトでは△ｖ＝△ｖ１）。そして、ｖ＝ｖｅｎｄか否かを判断し（ステップＳ４１）、ｖ＝ｖｅｎｄになるまでステップＳ４２〜Ｓ４６の処理を繰り返す。
【０２１５】
例えば図１９のＧ１に示すようにｕ、ｖの変域がｕ3≦ｕ＜ｕ4、ｖ3≦ｖ＜ｖ4である場合には、ＮＵＲＢＳのオブジェクトデータから、制御点Ｑ00〜Ｑ33、係数マトリクスＭｕ０、Ｍｖ０のデータが読み出される。そして、これらの制御点Ｑ00〜Ｑ33、係数マトリクスＭｕ０、Ｍｖ０に基づいて、図２０に示す曲面パッチ３０の構成点が求められる。
【０２１６】
また図１９のＧ２に示すようにｕ、ｖの変域がｕ4≦ｕ＜ｕ5、ｖ3≦ｖ＜ｖ4である場合には、ＮＵＲＢＳのオブジェクトデータから、制御点Ｑ01〜Ｑ34、係数マトリクスＭｕ１、Ｍｖ０のデータが読み出される。そして、これらの制御点Ｑ01〜Ｑ34、係数マトリクスＭｕ１、Ｍｖ０に基づいて、図２０に示す曲面パッチ３２の構成点が求められる。
【０２１７】
また図１９のＧ３に示すように、ｕ、ｖの変域がｕ5≦ｕ＜ｕ6、ｖ3≦ｖ＜ｖ4である場合には、ＮＵＲＢＳのオブジェクトデータから、制御点Ｑ02〜Ｑ35、係数マトリクスＭｕ２、Ｍｖ０のデータが読み出される。そして、これらの制御点Ｑ02〜Ｑ35、係数マトリクスＭｕ２、Ｍｖ０に基づいて、図２０に示す曲面パッチ３４の構成点が求められる。
【０２１８】
以上のようにして、制御点Ｑ00〜Ｑ55により生成されるべき全ての曲面パッチ３０〜４６の構成点が求められることになる。
【０２１９】
４．ハードウェア構成
次に、本実施形態を実現できるハードウェアの構成の一例について図２１を用いて説明する。
【０２２０】
メインプロセッサ９００は、ＣＤ９８２（情報記憶媒体）に格納されたプログラム、通信インターフェース９９０を介して転送されたプログラム、或いはＲＯＭ９５０（情報記憶媒体の１つ）に格納されたプログラムなどに基づき動作し、ゲーム処理、画像処理、音処理などの種々の処理を実行する。
【０２２１】
コプロセッサ９０２は、メインプロセッサ９００の処理を補助するものであり、高速並列演算が可能な積和算器や除算器を有し、マトリクス演算（ベクトル演算）を高速に実行する。例えば、オブジェクトを移動させたり動作（モーション）させるための物理シミュレーションに、マトリクス演算などの処理が必要な場合には、メインプロセッサ９００上で動作するプログラムが、その処理をコプロセッサ９０２に指示（依頼）する。
【０２２２】
ジオメトリプロセッサ９０４は、座標変換、透視変換、光源計算、曲面生成などのジオメトリ処理を行うものであり、高速並列演算が可能な積和算器や除算器を有し、マトリクス演算（ベクトル演算）を高速に実行する。例えば、座標変換、透視変換、光源計算などの処理を行う場合には、メインプロセッサ９００で動作するプログラムが、その処理をジオメトリプロセッサ９０４に指示する。
【０２２３】
データ伸張プロセッサ９０６は、圧縮された画像データや音データを伸張するデコード処理を行ったり、メインプロセッサ９００のデコード処理をアクセレートする処理を行う。これにより、オープニング画面、インターミッション画面、エンディング画面、或いはゲーム画面などにおいて、ＭＰＥＧ方式等で圧縮された動画像を表示できるようになる。なお、デコード処理の対象となる画像データや音データは、ＲＯＭ９５０、ＣＤ９８２に格納されたり、或いは通信インターフェース９９０を介して外部から転送される。
【０２２４】
描画プロセッサ９１０は、ポリゴンや曲面などのプリミティブ面で構成されるオブジェクトの描画（レンダリング）処理を高速に実行するものである。オブジェクトの描画の際には、メインプロセッサ９００は、ＤＭＡコントローラ９７０の機能を利用して、オブジェクトデータを描画プロセッサ９１０に渡すと共に、必要であればテクスチャ記憶部９２４にテクスチャを転送する。すると、描画プロセッサ９１０は、これらのオブジェクトデータやテクスチャに基づいて、Ｚバッファなどを利用した陰面消去を行いながら、オブジェクトをフレームバッファ９２２に高速に描画する。また、描画プロセッサ９１０は、αブレンディング（半透明処理）、デプスキューイング、ミップマッピング、フォグ処理、トライリニア・フィルタリング、アンチエリアシング、シェーディング処理なども行うことができる。そして、１フレーム分の画像がフレームバッファ９２２に書き込まれると、その画像はディスプレイ９１２に表示される。
【０２２５】
サウンドプロセッサ９３０は、多チャンネルのＡＤＰＣＭ音源などを内蔵し、ＢＧＭ、効果音、音声などの高品位のゲーム音を生成する。生成されたゲーム音は、スピーカ９３２から出力される。
【０２２６】
ゲームコントローラ９４２からの操作データや、メモリカード９４４からのセーブデータ、個人データは、シリアルインターフェース９４０を介してデータ転送される。
【０２２７】
ＲＯＭ９５０にはシステムプログラムなどが格納される。なお、業務用ゲームシステムの場合には、ＲＯＭ９５０が情報記憶媒体として機能し、ＲＯＭ９５０に各種プログラムが格納されることになる。なお、ＲＯＭ９５０の代わりにハードディスクを利用するようにしてもよい。
【０２２８】
ＲＡＭ９６０は、各種プロセッサの作業領域として用いられる。
【０２２９】
ＤＭＡコントローラ９７０は、プロセッサ、メモリ（ＲＡＭ、ＶＲＡＭ、ＲＯＭ等）間でのＤＭＡ転送を制御するものである。
【０２３０】
ＣＤドライブ９８０は、プログラム、画像データ、或いは音データなどが格納されるＣＤ９８２（情報記憶媒体）を駆動し、これらのプログラム、データへのアクセスを可能にする。
【０２３１】
通信インターフェース９９０は、ネットワークを介して外部との間でデータ転送を行うためのインターフェースである。この場合に、通信インターフェース９９０に接続されるネットワークとしては、通信回線（アナログ電話回線、ＩＳＤＮ）、高速シリアルバスなどを考えることができる。そして、通信回線を利用することでインターネットを介したデータ転送が可能になる。また、高速シリアルバスを利用することで、他のゲームシステムとの間でのデータ転送が可能になる。
【０２３２】
なお、本発明の各手段は、その全てを、ハードウェアのみにより実行してもよいし、情報記憶媒体に格納されるプログラムや通信インターフェースを介して配信されるプログラムのみにより実行してもよい。或いは、ハードウェアとプログラムの両方により実行してもよい。
【０２３３】
そして、本発明の各手段をハードウェアとプログラムの両方により実行する場合には、情報記憶媒体には、本発明の各手段をハードウェアを利用して実行するためのプログラムが格納されることになる。より具体的には、上記プログラムが、ハードウェアである各プロセッサ９０２、９０４、９０６、９１０、９３０等に処理を指示すると共に、必要であればデータを渡す。そして、各プロセッサ９０２、９０４、９０６、９１０、９３０等は、その指示と渡されたデータとに基づいて、本発明の各手段を実行することになる。
【０２３４】
図２２（Ａ）に、本実施形態を業務用ゲームシステムに適用した場合の例を示す。プレーヤは、ディスプレイ１１００上に映し出されたゲーム画像を見ながら、レバー１１０２、ボタン１１０４等を操作してゲームを楽しむ。内蔵されるシステムボード（サーキットボード）１１０６には、各種プロセッサ、各種メモリなどが実装される。そして、本発明の各手段を実行するための情報（プログラム或いはデータ）は、システムボード１１０６上の情報記憶媒体であるメモリ１１０８に格納される。以下、この情報を格納情報と呼ぶ。
【０２３５】
図２２（Ｂ）に、本実施形態を家庭用のゲームシステムに適用した場合の例を示す。プレーヤはディスプレイ１２００に映し出されたゲーム画像を見ながら、ゲームコントローラ１２０２、１２０４を操作してゲームを楽しむ。この場合、上記格納情報は、本体システムに着脱自在な情報記憶媒体であるＣＤ１２０６、或いはメモリカード１２０８、１２０９等に格納されている。
【０２３６】
図２２（Ｃ）に、ホスト装置１３００と、このホスト装置１３００とネットワーク１３０２（ＬＡＮのような小規模ネットワークや、インターネットのような広域ネットワーク）を介して接続される端末１３０４-1〜１３０４-nとを含むシステムに本実施形態を適用した場合の例を示す。この場合、上記格納情報は、例えばホスト装置１３００が制御可能な磁気ディスク装置、磁気テープ装置、メモリ等の情報記憶媒体１３０６に格納されている。端末１３０４-1〜１３０４-nが、スタンドアロンでゲーム画像、ゲーム音を生成できるものである場合には、ホスト装置１３００からは、ゲーム画像、ゲーム音を生成するためのゲームプログラム等が端末１３０４-1〜１３０４-nに配送される。一方、スタンドアロンで生成できない場合には、ホスト装置１３００がゲーム画像、ゲーム音を生成し、これを端末１３０４-1〜１３０４-nに伝送し端末において出力することになる。
【０２３７】
なお、図２２（Ｃ）の構成の場合に、本発明の各手段を、ホスト装置（サーバー）と端末とで分散して実行するようにしてもよい。また、本発明の各手段を実行するための上記格納情報を、ホスト装置（サーバー）の情報記憶媒体と端末の情報記憶媒体に分散して格納するようにしてもよい。
【０２３８】
またネットワークに接続する端末は、家庭用ゲームシステムであってもよいし業務用ゲームシステムであってもよい。そして、業務用ゲームシステムをネットワークに接続する場合には、業務用ゲームシステムとの間で情報のやり取りが可能であると共に家庭用ゲームシステムとの間でも情報のやり取りが可能な携帯型情報記憶装置（メモリカード、携帯型ゲーム装置）を用いることが望ましい。
【０２３９】
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。
【０２４０】
例えば、本発明のうち従属請求項に係る発明においては、従属先の請求項の構成要件の一部を省略する構成とすることもできる。また、本発明の１の独立請求項に係る発明の要部を、他の独立請求項に従属させることもできる。
【０２４１】
また、本実施形態では、ＮＵＲＢＳの場合について主に説明したが、本発明は、ＮＵＲＢＳ以外の自由曲面や、サブディビジョンサーフェスなどにも適用できる。
【０２４２】
また、本実施形態では、視点からの距離に応じて表示物、簡易オブジェクトの分割数を変化させる場合について主に説明したが、本発明はこれに限定されず、ゲーム処理結果などに応じて表示物、簡易オブジェクトの分割数を変化させることもできる。
【０２４３】
また、ゲーム処理結果などに応じて、分割数と均等なパラメータを変化させる場合も本発明の範囲に含まれる。
【０２４４】
また、簡易オブジェクトを用いて行う判定処理としては、ヒットチェック処理、クリッピング処理などが特に望ましいが、本発明が適用される判定処理はこれに限定されない。
【０２４５】
また、簡易オブジェクトの設定手法や表示物の変形手法も、本実施形態で説明した手法が特に望ましいが、これに限定されるものではない。
【０２４６】
また、本実施形態では、求められた構成点をポリゴンの頂点に設定して画像を描画したが、求められた曲面の構成点を直接描画するようにしてもよい。
【０２４７】
また本発明は種々のゲーム（格闘ゲーム、シューティングゲーム、ロボット対戦ゲーム、スポーツゲーム、競争ゲーム、ロールプレイングゲーム、音楽演奏ゲーム、ダンスゲーム等）に適用できる。
【０２４８】
また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレーヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード等の種々のゲームシステム（画像生成システム）に適用できる。
【図面の簡単な説明】
【図１】本実施形態のゲームシステムのブロック図の例である。
【図２】図２（Ａ）、（Ｂ）は、Ｂスプライン曲線の例について示す図である。
【図３】本実施形態により生成される曲面パッチの例を示す図である。
【図４】視点からの距離に応じて表示物の分割数を変化させる手法について説明するための図である。
【図５】図５（Ａ）、（Ｂ）は、従来のポリゴンモデルを用いたＬＯＤの手法について説明するための図である。
【図６】図６（Ａ）は、従来のヒットチェック処理の問題点について説明するための図であり、図６（Ｂ）は、本実施形態のヒットチェック処理について説明するための図である。
【図７】表示物の分割数の変化に応じて簡易オブジェクトの分割数を変化させる手法について説明するための図である。
【図８】簡易オブジェクトのデータを情報記憶媒体又はネットワークから読み込むことで、表示物に対応する簡易オブジェクトを用意する手法について説明するための図である。
【図９】簡易オブジェクトをリアルタイムに生成することで、表示物に対応する簡易オブジェクトを用意する手法について説明するための図である。
【図１０】ヒットチェック処理に最適な簡易オブジェクトについて説明するための図である。
【図１１】クリッピング処理に最適な簡易オブジェクトについて説明するための図である。
【図１２】ＢＢＯＸの生成手法について説明するための図である。
【図１３】本実施形態の詳細な処理例について示すフローチャートである。
【図１４】本実施形態の詳細な処理例について示すフローチャートである。
【図１５】本実施形態の詳細な処理例について示すフローチャートである。
【図１６】本実施形態の詳細な処理例について示すフローチャートである。
【図１７】本実施形態の詳細な処理例について示すフローチャートである。
【図１８】制御点、係数マトリクス、ノットベクトルについて説明するための図である。
【図１９】パラメータの値が属する変域に基づいて、制御点、係数マトリクスを読み出す手法について説明するための図である。
【図２０】本実施形態により生成される曲面パッチの例について示す図である。
【図２１】本実施形態を実現できるハードウェアの構成の一例を示す図である。
【図２２】図２２（Ａ）、（Ｂ）、（Ｃ）は、本実施形態が適用される種々の形態のシステムの例を示す図である。
【符号の説明】
１０、１２  曲線セグメント
２０、２２  曲面パッチ
３０〜４６  曲面パッチ
ＯＢ１、ＯＢ２  表示物
ＳＯＢ  簡易オブジェクト
１００  処理部
１０２  ゲーム処理部
１１０  モデルデータ読み込み部
１１２  変形部
１１４  アフィン変換部
１２０  分割数制御部
１２２  距離演算部
１３０  構成点生成部
１４０  簡易オブジェクト設定部
１４２  ヒットチェック処理部
１４４  クリッピング処理部
１５０  描画部
１６０  操作部
１７０  記憶部
１７２  主記憶部
１７４  描画領域
１８０  情報記憶媒体
１９０  表示部
１９２  音出力部
１９４  携帯型情報記憶装置
１９６  通信部
【図１】
0004329965.tif 000014
【図２】
0004329965.tif 000015
【図３】
0004329965.tif 000016
【図４】
0004329965.tif 000017
【図５】
0004329965.tif 000018
【図６】
0004329965.tif 000019
【図７】
0004329965.tif 000020
【図８】
0004329965.tif 000021
【図９】
0004329965.tif 000022
【図１０】
0004329965.tif 000023
【図１１】
0004329965.tif 000024
【図１２】
0004329965.tif 000025
【図１３】
0004329965.tif 000026
【図１４】
0004329965.tif 000027
【図１５】
0004329965.tif 000028
【図１６】
0004329965.tif 000029
【図１７】
0004329965.tif 000030
【図１８】
0004329965.tif 000031
【図１９】
0004329965.tif 000032
【図２０】
0004329965.tif 000033
【図２１】
0004329965.tif 000034
【図２２】
0004329965.tif 000035