JP4329965B2 - ゲームシステム及び情報記憶媒体 - Google Patents
ゲームシステム及び情報記憶媒体 Download PDFInfo
- Publication number
- JP4329965B2 JP4329965B2 JP2000059382A JP2000059382A JP4329965B2 JP 4329965 B2 JP4329965 B2 JP 4329965B2 JP 2000059382 A JP2000059382 A JP 2000059382A JP 2000059382 A JP2000059382 A JP 2000059382A JP 4329965 B2 JP4329965 B2 JP 4329965B2
- Authority
- JP
- Japan
- Prior art keywords
- display object
- divisions
- points
- division
- division number
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Images
Landscapes
- Processing Or Creating Images (AREA)
- Image Generation (AREA)
Description
【発明の属する技術分野】
本発明は、ゲームシステム及び情報記憶媒体に関する。
【0002】
【背景技術及び発明が解決しようとする課題】
従来より、仮想的な3次元空間であるオブジェクト空間内の所与の視点から見える画像を生成するゲームシステムが知られており、いわゆる仮想現実を体験できるものとして人気が高い。格闘ゲームを楽しむことができるゲームシステムを例にとれば、プレーヤ(操作者)は、キャラクタ(モデル)を操作し、他のプレーヤ又はコンピュータが操作するキャラクタと対戦させてゲームを楽しむ。
【0003】
さて、このようなゲームシステムにおいては、キャラクタに対して、他のキャラクタのパンチが当たったか否かを判定するヒットチェック処理が必要になる。
【0004】
そして、従来のゲームシステムでは、キャラクタを内包するバウンディングボックスを予め用意し、このバウンディングボックスに、他のキャラクタの拳がヒット(衝突)したか否かを判定することで、ヒットチェック処理を実現していた。
【0005】
しかしながら、このようなバウンディングボックスはキャラクタよりも大きめに作られているため、実際には、キャラクタの体に他のキャラクタの拳が接していないのにもかかわらず、パンチが当たったと判定されてしまう問題点があった。
【0006】
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、簡易オブジェクトを用いたヒットチェック等の判定処理を正確に行うことができるゲームシステム及び情報記憶媒体を提供することにある。
【0007】
【課題を解決するための手段】
上記課題を解決するために、本発明は、画像生成を行うゲームシステムであって、画面に表示される表示物の構成点の生成間隔を決めるための分割数を可変に制御する分割数制御手段と、可変に制御される前記分割数と、表示物の形状を定義するための点である制御点とに基づき、前記分割数により決められる生成間隔で表示物の構成点をリアルタイムに生成する構成点生成手段とを含み、前記分割数制御手段が、表示物の分割数である第1の分割数の変化に応じて、表示物に対応する簡易オブジェクトの分割数である第2の分割数も変化するように、前記第1、第2の分割数を制御し、前記構成点生成手段が、可変に制御される前記第1、第2の分割数と、表示物の制御点とに基づき、前記第1、第2の分割数により決められる生成間隔で表示物、簡易オブジェクトの構成点をリアルタイムに生成することを特徴とする。また本発明に係る情報記憶媒体は、コンピュータにより使用可能な情報記憶媒体であって、上記手段を実行するためのプログラムを含むことを特徴とする。また本発明に係るプログラムは、コンピュータにより使用可能なプログラム(搬送波に具現化されるプログラムを含む)であって、上記手段を実行するための処理ルーチンを含むことを特徴とする。
【0008】
本発明によれば、表示物の第1の分割数の変化に応じて簡易オブジェクトの第2の分割数が例えばシームレス(seamless)に変化する。そして、変化する第1、第2の分割数と表示物の制御点とに基づいて、表示物、簡易オブジェクトの構成点が生成される。従って、本発明によれば、表示物の分割数に応じた最適の分割数の簡易オブジェクトを得ることができる。この結果、例えばこの簡易オブジェクトを用いてヒットチェック処理などの判定処理を行った場合には、正確な判定処理を実現できるようになる。
【0009】
なお、第1、第2の分割数は、視点との距離などのゲーム処理結果に応じて変化させることが望ましい。
【0010】
また本発明は、画像生成を行うゲームシステムであって、画面に表示される表示物の構成点の生成間隔を決めるための分割数を可変に制御する分割数制御手段と、可変に制御される前記分割数と、表示物の形状を定義するための点である制御点とに基づき、前記分割数により決められる生成間隔で表示物の構成点をリアルタイムに生成する構成点生成手段とを含み、前記分割数制御手段が、表示物に対応する簡易オブジェクトの分割数である第2の分割数が、表示物の分割数である第1の分割数以下となるように、前記第1、第2の分割数を可変に制御し、前記構成点生成手段が、可変に制御される前記第1、第2の分割数と、表示物の制御点とに基づき、前記第1、第2の分割数により決められる生成間隔で表示物、簡易オブジェクトの構成点をリアルタイムに生成することを特徴とする。また本発明に係る情報記憶媒体は、コンピュータにより使用可能な情報記憶媒体であって、上記手段を実行するためのプログラムを含むことを特徴とする。また本発明に係るプログラムは、コンピュータにより使用可能なプログラム(搬送波に具現化されるプログラムを含む)であって、上記手段を実行するための処理ルーチンを含むことを特徴とする。
【0011】
本発明によれば、簡易オブジェクトの第2の分割数が表示物の第1の分割数以下となるように、第1、第2の分割数が例えばシームレス(seamless)に変化する。そして、変化する第1、第2の分割数と表示物の制御点とに基づいて、表示物、簡易オブジェクトの構成点が生成される。従って、本発明によれば、表示物の簡易オブジェクトとして、最適な分割数の簡易オブジェクトを得ることができる。この結果、例えばこの簡易オブジェクトを用いてヒットチェック処理などの判定処理を行った場合には、正確な判定処理を実現できるようになる。
【0012】
なお、第1、第2の分割数は、視点との距離などのゲーム処理結果に応じて変化させることが望ましい。
【0013】
また本発明は、画像生成を行うゲームシステムであって、画面に表示される表示物の構成点の生成間隔を決める分割数と、表示物の形状を定義するための点である制御点とに基づき、前記分割数により決められる生成間隔で表示物の構成点をリアルタイムに生成する構成点生成手段と、所与の分割数と表示物の制御点とに基づき生成される簡易オブジェクトを、表示物に対応づけて用意する手段と、表示物に対応づけられた前記簡易オブジェクトを用いて、表示物に対する所与の判定処理を行う手段とを含むことを特徴とする。また本発明に係る情報記憶媒体は、コンピュータにより使用可能な情報記憶媒体であって、上記手段を実行するためのプログラムを含むことを特徴とする。また本発明に係るプログラムは、コンピュータにより使用可能なプログラム(搬送波に具現化されるプログラムを含む)であって、上記手段を実行するための処理ルーチンを含むことを特徴とする。
【0014】
本発明によれば、所与の特定の分割数と表示物の制御点とに基づき生成される簡易オブジェクトが用意され、この簡易オブジェクトを用いて、例えばヒットチェック処理やクリッピング処理などの判定処理が行われる。この場合、簡易オブジェクトは、表示物の制御点に基づき生成されているため、表示物の形状に近い形状を持たせることができる。従って、このような簡易オブジェクトを利用することで、正確で適正な判定処理が可能になる。
【0015】
また本発明に係るゲームシステム、情報記憶媒体及びプログラムは、所与の分割数と表示物の制御点とに基づき生成された簡易オブジェクトのデータを情報記憶媒体から読み込む又はネットワークを介して読み込むことで、表示物の簡易オブジェクトが用意されることを特徴とする。
【0016】
このようにすれば、表示物の簡易オブジェクトをリアルタイムに生成する処理が不要になり、処理負荷を軽減化できる。
【0017】
また本発明に係るゲームシステム、情報記憶媒体及びプログラムは、所与の分割数と表示物の制御点とに基づき簡易オブジェクトをリアルタイムに生成することで、表示物の簡易オブジェクトが用意されることを特徴とする。
【0018】
このようにすれば、簡易オブジェクトのデータをモデルデータとして用意しなくて済むようになるため、情報記憶媒体やネットワークのリソースを有効利用できる。
【0019】
また本発明に係るゲームシステム、情報記憶媒体及びプログラムは、表示物の分割数である第1の分割数の変化に応じて、簡易オブジェクトの分割数である第2の分割数も変化することを特徴とする。
【0020】
このようにすれば、表示物の分割数に応じた最適な分割数の簡易オブジェクトを得ることができる。
【0021】
また本発明に係るゲームシステム、情報記憶媒体及びプログラムは、簡易オブジェクトの分割数である第2の分割数が、表示物の分割数である第1の分割数以下になることを特徴とする。
【0022】
このようにすれば、表示物の判定処理に最適な分割数の簡易オブジェクトを得ることができる。
【0023】
また本発明に係るゲームシステム、情報記憶媒体及びプログラムは、前記所与の判定処理がヒットチェック処理である場合には、所与の分割数と表示物の制御点とに基づき生成される点を構成点とするオブジェクトが、表示物の簡易オブジェクトとして用いられることを特徴とする。
【0024】
このようにすれば、バウンディングボリュームを用いる場合に比べて、正確なヒットチェック処理を実現できる。
【0025】
また本発明に係るゲームシステム、情報記憶媒体及びプログラムは、前記所与の判定処理がクリッピング処理である場合には、所与の分割数と表示物の制御点とに基づき生成される点により求められるバウンディングボリュームが、表示物の簡易オブジェクトとして用いられることを特徴とする。
【0026】
このようにすれば、ビューボリュームにおける表示物の内外判定処理に間違いが生じる事態を防止できる。
【0027】
また本発明に係るゲームシステム、情報記憶媒体及びプログラムは、前記制御点のデータが、表示物のモデルデータの中に含まれ、前記制御点のデータを含むモデルデータを、情報記憶媒体から読み込む又はネットワークを介して読み込む手段(或いは該手段を実行するためのプログラム又は処理ルーチン)を含むことを特徴とする。
【0028】
このようにすれば、情報記憶媒体の使用記憶容量やネットワークの通信データ量を少なく抑えることが可能になり、リソースを有効利用できる。
【0029】
【発明の実施の形態】
以下、本発明の好適な実施形態について図面を用いて説明する。
【0030】
なお、以下では、NURBS(Non Uniform Rational B-Spline)を用いて表示物の画像を生成する場合について主に説明する。しかしながら、本発明は、NURBS以外の自由曲面や、いわゆるサブディビジョンサーフェス(Sub Division Surface)を用いて表示物の画像を生成する場合などにも広く適用できる。
【0031】
例えばサブディビジョンサーフェスを用いて制御点(サブディビジョン前のポリゴンの頂点に相当)から表示物の構成点(サブディビジョン後のポリゴンの頂点に相当)を生成すれば、NURBSの場合と異なり制御点の配置位置に制約が無くなり、制御点の数や分割数を局所的に多くすることができるため、モデルのデザイン作業を大幅に効率化できる。
【0032】
1.構成
図1に、本実施形態のゲームシステム(画像生成システム)のブロック図の一例を示す。なお同図において本実施形態は、少なくとも処理部100を含めばよく(或いは処理部100と記憶部170を含めばよく)、それ以外のブロックについては任意の構成要素とすることができる。
【0033】
操作部160は、プレーヤが操作データを入力するためのものであり、その機能は、レバー、ボタン、マイク、或いは筺体などのハードウェアにより実現できる。
【0034】
記憶部170は、処理部100や通信部196などのワーク領域となるもので、その機能はRAMなどのハードウェアにより実現できる。
【0035】
情報記憶媒体180(コンピュータにより使用可能な記憶媒体)は、プログラムやデータなどの情報を格納するものであり、その機能は、光ディスク(CD、DVD)、光磁気ディスク(MO)、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ(ROM)などのハードウェアにより実現できる。処理部100は、この情報記憶媒体180に格納される情報に基づいて本発明(本実施形態)の種々の処理を行う。即ち情報記憶媒体180には、本発明(本実施形態)の手段(特に処理部100に含まれるブロック)を実行するための情報(プログラム或いはデータ)が格納される。
【0036】
なお、情報記憶媒体180に格納される情報の一部又は全部は、システムへの電源投入時等に記憶部170に転送されることになる。また情報記憶媒体180には、本発明の処理を行うためのプログラム、画像データ、音データ、表示物の形状データ、本発明の処理を指示するための情報、或いはその指示に従って処理を行うための情報などを含ませることができる。
【0037】
表示部190は、本実施形態により生成された画像を出力するものであり、その機能は、CRT、LCD、或いはHMD(ヘッドマウントディスプレイ)などのハードウェアにより実現できる。
【0038】
音出力部192は、本実施形態により生成された音を出力するものであり、その機能は、スピーカなどのハードウェアにより実現できる。
【0039】
携帯型情報記憶装置194は、プレーヤの個人データやゲームのセーブデータなどが記憶されるものであり、この携帯型情報記憶装置194としては、メモリカードや携帯型ゲーム装置などを考えることができる。
【0040】
通信部196は、外部(例えばホスト装置や他のゲームシステム)との間で通信を行うための各種の制御を行うものであり、その機能は、各種プロセッサ、或いは通信用ASICなどのハードウェアや、プログラムなどにより実現できる。
【0041】
なお本発明(本実施形態)の手段を実行するためのプログラム或いはデータは、ホスト装置(サーバー)が有する情報記憶媒体からネットワーク及び通信部196を介して情報記憶媒体180に配信するようにしてもよい。このようなホスト装置(サーバー)の情報記憶媒体の使用も本発明の範囲内に含まれる。
【0042】
処理部100(プロセッサ)は、操作部160からの操作データや所与のプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの各種の処理を行う。この処理部100の機能は、各種プロセッサ(CPU、DSP等)又はASIC(ゲートアレイ等)などのハードウェアや、所与のプログラム(ゲームプログラム)により実現できる。
【0043】
なお、処理部100の機能は、その全てをハードウェアにより実現してもよいし、その全てをプログラムにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。
【0044】
処理部100は、ゲーム処理部102、モデルデータ読み込み部110、変形部112、アフィン変換部114、分割数制御部120、構成点生成部130(曲面演算部、テセレーション部)、簡易オブジェクト設定部140、ヒットチェック処理部142、クリッピング処理部144、描画部150を含む。
【0045】
ゲーム処理部102は、操作部160からの操作データと所与のプログラム(ゲームプログラム)とに基づいて、種々のゲーム処理を行う。
【0046】
ここで、ゲーム処理とは、各フレームにおいてゲーム画像やゲーム音を生成するために、その前段階の処理として行われるものある。即ち、処理部100は、ゲーム処理部102でのゲーム処理結果に基づいて例えばオブジェクト空間内において所与の視点(仮想カメラ)から見えるゲーム画像を生成し、表示部190に出力する。また、処理部100は、このゲーム処理結果に基づいて各種の音処理を行い、BGM、効果音、又は音声などのゲーム音を生成し、音出力部192に出力する。
【0047】
ゲーム処理部102が行うゲーム処理としては、具体的には、コイン(代価)の受け付け処理、各種モードの設定処理、ゲームの進行処理、選択画面の設定処理、オブジェクト(1又は複数のプリミティブ面)の位置や回転角度(X、Y又はZ軸回り回転角度)を求める処理、オブジェクトを動作させる処理(モーション処理)、視点の位置(仮想カメラの位置)や視線角度(仮想カメラの回転角度)を求める処理、マップオブジェクトなどのオブジェクトをオブジェクト空間へ配置する処理、ヒットチェック処理、ゲーム結果(成果、成績)を演算する処理、複数のプレーヤが共通のゲーム空間でプレイするための処理、或いはゲームオーバー処理などを考えることができる。
【0048】
また、ゲーム処理部102でのゲーム処理結果としては、ゲーム処理における各種の判断の材料に使用されたり、ゲーム処理により更新される種々のパラメータの値などを考えることができる。或いは、ゲーム処理結果として、処理部100(プロセッサ)の現在の処理負荷などを考えることもできる。
【0049】
このゲーム処理結果としては、車ゲームを例にとれば、各フレームにおいて得られる車の位置や回転角度や速度や加速度、視点の位置や視線角度や画角、使用されたコースデータ、プレーヤが選択した車種などがある。ロールプレイングゲームを例にとれば、キャラクタのレベルや体力や攻撃力や守備力などのステータスパラメータ、プレーヤが取得したアイテム、発生したイベントの種類などがある。格闘ゲームを例にとれば、ゲームステージのクリア数、勝ち抜き数、繰り出しに成功した特殊技の数や種類などがある。
【0050】
モデルデータ読み込み部110は、表示物の画像を生成するためのモデルデータを、情報記憶媒体180から読み込んだり、通信部196を用いてネットワーク(他のゲームシステムやホスト装置と接続するための伝送ライン、通信回線)を介して読み込んだりするための処理を行う。
【0051】
ここで本実施形態では、表示物のモデルデータは、制御点のデータを含む。また、モデルデータは、表示物の画像を生成するための各種のアトリビュートデータ(色、テクスチャ、輝度、α値等)を含む。更に、表示物をNURBSなどの自由曲面で表す場合には、モデルデータは、ノットベクトルのデータも含む。
【0052】
なお、簡易オブジェクトをリアルタイムに生成しない場合には、簡易オブジェクトのデータもモデルデータに含まれることになる。そして、この簡易オブジェクトのデータは、情報記憶媒体180から読み込まれたり、ネットワークを介して外部から読み込まれる。
【0053】
本実施形態では、モデルデータに含ませる表示物の形状データとして、制御点データが使用される。制御点データはデータ量が少なく、データ量が表示物の精密度に左右されない。従って、モデルデータに含ませる形状データとして制御点データを使用することで、リソースの有効利用を図ることができる。より具体的には、情報記憶媒体180の使用記憶容量やネットワークの通信データ量を節約できるようになる。
【0054】
変形部112は、表示物をリアルタイムに変形させるための処理を行う。これは、例えば、表示物の制御点間の相対的な位置関係を変化させることで実現できる。より具体的には、モーションデータに基づき、スケルトンモデルを構成する各骨(アーク)を動かし、この骨に追従するように制御点を動かす。或いは、NURBSの場合には、各制御点に設定されたウェイト値を制御することで、表示物を変形させてもよい。
【0055】
なお、表示物を変形させる場合には、表示物の変形に応じて表示物や簡易オブジェクトの分割数を変化させることが望ましい。より具体的には、表示物の曲げが大きいほど、表示物や簡易オブジェクトの分割数を多くする。
【0056】
アフィン変換部114は、表示物の形状を定義する制御点、表示物の構成点、簡易オブジェクト(表示物を内包するバウンディングボリューム等)の構成点などに対してアフィン変換を行う。このアフィン変換により、例えば、ローカル座標系からワールド座標系への座標変換、ワールド座標系から視点座標系への座標変換、視点座標系からスクリーン座標系への座標変換(透視変換)などが可能になる。
【0057】
分割数制御部120は、ゲーム処理部102でのゲーム処理結果に応じて表示物の分割数を可変に制御する処理を行う。
【0058】
より具体的には、分割数制御部120は、表示物の分割数である第1の分割数の変化に応じて、表示物に対応する簡易オブジェクトの分割数である第2の分割数も変化するように、表示物及び簡易オブジェクトの分割数をシームレス(seamless)に変化させる。或いは、簡易オブジェクトの第2の分割数が、表示物の第1の分割数以下となるように、表示物及び簡易オブジェクトの分割数をシームレス(seamless)に変化させる。
【0059】
なお、分割数とは、表示物の形状を定義する制御点から表示物の構成点を生成する際の、構成点の生成間隔を決めるパラメータである。別の言い方をすれば、制御点の個数とその制御点により生成される構成点の個数との比に相当するパラメータである。
【0060】
表示物、簡易オブジェクトの第1、第2の分割数は、例えば視点からの距離に応じて変化させることが望ましい。この視点からの距離は、分割数制御部120が含む距離演算部122が演算する。
【0061】
この場合、視点からの距離は、表示物の代表点と視点との距離でもよいし、表示物の制御点により特定される点(制御点から選択された点、制御点の代表点等)と視点との距離でもよい。或いは、表示物の簡易オブジェクト(バウンディングボリューム等)により特定される点(簡易オブジェクトの構成点から選択された点、簡易オブジェクトの構成点の代表点)でもよい。
【0062】
また、視点からの距離は、視点からの直線距離でもよいし、奥行き距離でもよい。
【0063】
なお、表示物、簡易オブジェクトの第1、第2の分割数は、視点からの距離以外のものに基づいて変化させることもできる。即ち、表示物、簡易オブジェクトの第1、第2の分割数は、ゲーム処理結果などに応じて変化させることができる。
【0064】
例えば、表示物がロールプレイングゲームのキャラクタである場合には、キャラクタのレベルや体力や攻撃力や守備力などのステータスパラメータに応じて第1、第2の分割数を変化させてもよい。また、表示物が車ゲームにおける車オブジェクトである場合には、車の速度や加速度に応じて第1、第2の分割数を変化させてもよい。また表示物が格闘ゲームにおけるキャラクタである場合には、ゲームステージのクリア数、勝ち抜き数などに応じて第1、第2の分割数を変化させてもよい。
【0065】
構成点生成部130は、分割数制御部120により可変に制御される分割数と、表示物の制御点とに基づき、分割数により決められる生成間隔で表示物の構成点をリアルタイムに生成する処理を行う。例えば、表示物がNURBSなどの自由曲面で表される場合には、パラメータを変化させながら自由曲面上の各構成点を順次求める処理を行う。なお、生成された構成点のデータは、主記憶部172に保存される。
【0066】
この場合に本実施形態では、可変に制御される表示物、簡易オブジェクトの第1、第2の分割数と、表示物のモデルデータが含む制御点とに基づいて、表示物の構成点を生成する。このようにすることで、同一の制御点(モデルデータ)を用いながら、分割数がリアルタイムに変化する表示物の画像を生成できるようになる。また、表示物と同一の制御点を用いて、簡易オブジェクトを生成できるようになる。
【0067】
簡易オブジェクト設定部140は、所与の特定の分割数と表示物の制御点とに基づき生成される簡易オブジェクトを、表示物に対応づけて用意するための処理を行う。
【0068】
この場合に簡易オブジェクトは、表示物に対応する簡易オブジェクトのデータを、情報記憶媒体(又はネットワーク)を介して読み込むことで用意してもよいし、所与の特定の分割数と表示物の制御点とに基づき構成点生成部130が簡易オブジェクトをリアルタイムに生成することで用意してもよい。
【0069】
また、簡易オブジェクトは、所与の分割数と表示物の制御点とに基づき生成される点を直接に構成点とするオブジェクトでもよい。例えば、ヒットチェック処理に用いる場合には、このような簡易オブジェクトが望ましい。
【0070】
また、簡易オブジェクトは、所与の分割数と表示物の制御点とに基づき生成される点により求められるバウンディングボリューム(表示物を内包するものであり、狭義にはバウンディングボックス)でもよい。例えば、クリッピング処理に用いる場合には、このような簡易オブジェクトが望ましい。
【0071】
ヒットチェック処理部142は、簡易オブジェクト設定部140により設定された簡易オブジェクトを用いて、表示物同士のヒットチェック処理(衝突判定)を行う。格闘ゲームを例にとれば、他のキャラクタの拳がキャラクタにヒットしたか否かを判定する。また、車ゲームを例にとれば、車が、他の車や壁にヒットしたか否かを判定する。
【0072】
そして、ヒットしたと判定した場合には、ヒット時用に用意された処理を行う。格闘ゲームを例にとれば、ヒットされたキャラクタの体力パラメータの値を減少させたり、ヒットされた方向にキャラクタをよろけさせたりする処理を行う。車ゲームを例にとれば、他の車や壁との衝突により、車を変形させたり、衝突方向と逆方向に車を移動させたりする処理を行う。
【0073】
クリッピング処理部144は、簡易オブジェクト設定部140により設定された簡易オブジェクトや、ビューボリュームを用いて、その簡易オブジェクトが対応づけられている表示物についてのクリッピング処理を行う。例えば、簡易オブジェクトがビューボリュームの外側にあると判定した場合には、表示物の描画(表示)を省略する。また、簡易オブジェクトがビューボリュームの境界と交差すると判定した場合には、ビューボリュームの外側にはみ出した表示物の部分を、切り取る処理を行う。また、簡易オブジェクトがビューボリューム内に完全に含まれると判定した場合には、その表示物を描画するようにする。
【0074】
描画部150は、ジオメトリ処理後のプリミティブを描画領域174(フレームバッファ等)に描画するための処理を行う。より具体的には、構成点生成部130により生成された構成点を頂点とするポリゴンを生成し(自由曲面をポリゴンに変換するテセレーションを行い)、そのポリゴンを描画領域174に描画する。
【0075】
但し、描画部150が、ポリゴンのみならず自由曲面も描画できる機能を有する場合には、生成された自由曲面を描画領域174に直接描画するようにしてもよい。
【0076】
なお、本実施形態のゲームシステムは、1人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、このようなシングルプレーヤモードのみならず、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。
【0077】
また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、1つの端末を用いて生成してもよいし、ネットワーク(伝送ライン、通信回線)などで接続された複数の端末を用いて生成してもよい。
【0078】
2.本実施形態の特徴
2.1 Bスプライン及びNURBS
まず、Bスプライン曲線について説明する。
【0079】
4階(3次)のBスプライン曲線は4つの制御点から生成される。各制御点をQ0、Q1、Q2、Q3とすると、Bスプライン曲線の式P(t)は、
P(t)=N0,4(t)Q0+N1,4(t)Q1+N2,4(t)Q2+N3,4(t)Q3 …(1)
となる。
【0080】
式(1)の中のN0,4〜N3,4は、混ぜ合わせ関数(Blending Function)と呼ばれ、4階のBスプライン曲線の場合は下式のようになる。
【0081】
【数1】
【0082】
混ぜ合わせ関数N0,4〜N3,4は、パラメータの節目を数値の列として与えるベクトルであるノットベクトルに基づき求められる。そして、ノットベクトルのノット間隔(ノットベクトルの隣り合う要素間の数値差)が一定である場合には、ユニフォーム(Uniform)な自由曲線(自由曲面)と呼ばれ、ノット間隔が一定でない場合は、ノンユニフォーム(Non Uniform)な自由曲線と呼ばれる。
【0083】
例えば、制御点数が4個で4階のユニフォームなBスプライン曲線のノットベクトルTは下式のようになる。
【0084】
T=[−3 −2 −1 0 1 2 3 4] …(3)
式(3)では、ノットベクトルの隣り合う要素間の数値差は常に1となっており、ユニフォームなノットベクトルになっている。
【0085】
なお、ノットベクトルの要素数、制御点数、階数には、(要素数)=(制御点数)+(階数)の関係式が成り立つ。
【0086】
図2(A)に、制御点Q0〜Q3と上式(3)のノットベクトルに基づき形状が特定されるユニフォームなBスプライン曲線の例を示す。Bスプライン曲線の式P(t)のパラメータtが0から1に変化することで、図2(A)に示すような曲線が描かれる。
【0087】
さて、Bスプラインの混ぜ合わせ関数は、下式のような再帰形表現の漸化式(DeBoorCoxの漸化式)により表すことができる。
【0088】
【数2】
【0089】
ここで、ノットベクトルTは一般的に、
T=[t0 t1 t2 … tM+N-1]
N:制御点数
M:階数(次数+1) …(5)
と表される。
【0090】
そして、混ぜ合わせ関数(基底関数)N0,M〜Nn,Mと制御点Q0〜Qnより、Bスプライン曲線の式P(t)は一般的に、
P(t)=N0,M(t)Q0+N1,M(t)Q1+ …+Nn,M(t)Qn …(6)
と表される。
【0091】
上式(6)から明らかなように、j番目の制御点Qjは、混ぜ合わせ関数NJ,Mを持つ。そして、NJ,Mは、ノットtjからM(階)区間にまたがる関数になる。
【0092】
図2(B)に、制御点がQ0〜Q4でノットベクトルTの要素数が8個の場合のBスプライン曲線の例を示す。
【0093】
曲線セグメント10は、制御点Q0〜Q3とノットベクトルTの要素t0〜t6により形状が特定され、パラメータtがt3≦t<t4の変域で変化することで、曲線セグメント10上の各点が求められる。
【0094】
一方、曲線セグメント12は、制御点Q1〜Q4とノットベクトルTの要素t1〜t7により形状が特定され、パラメータtがt4≦t<t5の変域で変化することで曲線セグメント12上の各点が求められる。
【0095】
ノンユニフォーム(Non Uniform)で、有理化(Rational)されたBスプラインが、NURBS(Non Uniform Rational B-Spline)である。
【0096】
即ち、NURBSはノンユニフォームであるため、上式(5)のノットベクトルTのノット間隔が一定にならない。従って、ノット間隔の比で曲線(曲面)の微分係数を補正できるのでと共に、Bスプライン以外の種々の曲線(ベジェ、エルミート等)も表現できるようになる。
【0097】
また、NURBSでは、有理化(同次座標を用いた中心投影)が行われているため、制御点に対するウェイト値を設定できる。従って、有利化されていないBスプラインでは描くことができない真円なども描くことができるようになる。
【0098】
2.2 係数マトリクス(ベースマトリクス)
混ぜ合わせ関数の値を求めるために使用される上記のDeBoorCoxの漸化式(4)は、再帰形表現になっている。従って、コンピュータに計算させるのには都合が良い。
【0099】
しかしながら、その反面、漸化式(4)は、処理負荷の重い除算処理を多く含むと共に再帰ループのたびに条件判断が必要になる。従って、処理速度の低下を招くという問題点がある。
【0100】
そこで、本実施形態では、漸化式(4)を敢えて再帰的に解かずに、4階という条件で一般3次式に展開し、これにより混ぜ合わせ関数の値を高速に求めることに成功している。
【0101】
このように漸化式(4)を一般3次式に展開することで、混ぜ合わせ関数は下式のようになる。
【0102】
N0,4=at3+bt2+ct+d
N1,4=et3+ft2+gt+h
N2,4=it3+jt2+kt+l
N3,4=mt3+nt2+ot+p …(7)
例えば、混ぜ合わせ関数N1,4の展開式は下式のようになる。
【0103】
【数3】
【0104】
【数4】
【0105】
上式(9)から明らかなように、ノットベクトルの要素t1〜t5の値を代入することで、混ぜ合わせ関数N1,4の係数セットe、f、g、hの値を予め求めておくことができる。
【0106】
同様に、混ぜ合わせ関数N0,4、N2,4、N3,4の係数セットa、b、c、d、i、j、k、l、m、n、o、pも、ノットベクトルの要素の値を代入することで、予め求めておくことができる。
【0107】
上式(7)は、
【0108】
【数5】
【0109】
というようにマトリクスの形で表記できる。これにより、混ぜ合わせ関数の値を高速なマトリクス演算で求めることができる。
【0110】
以降、上式(10)のM1を、係数マトリクス(ベースマトリクス。広義には係数セット)と呼ぶことにする。
【0111】
この係数マトリクスM1と制御点Q0(Q0 x、Q0 y、Q0 z)〜Q3(Q3 x、Q3 y、Q3 z)に基づき、下式にしたがって自由曲線上の各点(Px(t)、Py(t)、Pz(t))を求めることができる。
【0112】
Px(t)=N0,4(t)Q0 x+N1,4(t)Q1 x+N2,4(t)Q2 x+N3,4(t)Q3 x
Py(t)=N0,4(t)Q0 y+N1,4(t)Q1 y+N2,4(t)Q2 y+N3,4(t)Q3 y
Pz(t)=N0,4(t)Q0 z+N1,4(t)Q1 z+N2,4(t)Q2 z+N3,4(t)Q3 z
…(11)
さて、係数マトリクスM1の要素a〜p(係数セット)は、各制御点に固有なものであり、ノットベクトルが変わらない限り不変である。
【0113】
そこで本実施形態では、表示物の構成点をリアルタイムに生成する処理の前段階の処理において、ノットベクトルに基づき係数マトリクスを予め求めておき(或いは情報記憶媒体やネットワークから読み出しておき)、構成点の生成処理時には係数マトリクスの演算を行わないようにしている。このようにすることで、構成点の生成処理の負荷を大幅に軽減でき、処理の高速化を図れる。
【0114】
2.3 有理化
同次座標を用いた中心投影を行い、制御点Q(x,y,z)にウェイト値wを持たせることができるのが有理化である。
【0115】
例えば上式(11)のx成分の式を有理化すると、下式のようになる。
【0116】
【数6】
【0117】
ノットベクトルをノンユニフォームにし、有理化された式を用いることで、BスプラインをNURBSにすることができる。
【0118】
例えば、上式(11)を、上式(10)を用いてマトリクスの形で表記すると下式のようになる。
【0119】
【数7】
【0120】
そして、上式(13)を有利化すると下式のようになる。
【0121】
【数8】
【0122】
有理化を行った場合には、上式(14)に基づき各要素Px(t)Pw(t)、Py(t)Pw(t)、Pz(t)Pw(t)を求めた後に、これらの各要素をPw(t)で除算する処理が必要になる。
【0123】
但し、有理化が特に必要でない場合には、無理に有利化を行わなくてもよい。有理化を行わないことで、真円などを表現できなくなる反面、Pw(t)による除算処理等が不要になるため、処理を高速化できる。
【0124】
2.4 曲面化について
以上は、説明を簡単にするために、曲線の場合の計算方法について主に説明した。曲面に拡張する場合には、曲線の場合と同様の処理を、パラメータu、vの各成分に対して行えばよい。
【0125】
例えば、パラメータu、vの各成分についての混ぜ合わせ関数は下式のようになる。
【0126】
【数9】
【0127】
【数10】
【0128】
上式(15)、(16)において、Muはu成分についての係数(ベース)マトリクスであり、Mvはv成分についての係数マトリクスである。
【0129】
上式(15)、(16)から、曲面上の点であるPuv(u,v)のx成分であるPxuv(u,v)は下式のように求められる。
【0130】
【数11】
【0131】
そして、有利化を行った場合(NURBS)には、曲線の場合の有理化と同様に、Pxuv(u,v)Pwuv(u,v)は下式のように求められる。
【0132】
【数12】
【0133】
曲面上の構成点を求める処理は、まとめると下記のようになる。
(処理A)
ノットベクトルに基づいて、各制御点に対する混ぜ合わせ関数を求めるための係数マトリクスMu、Mvを求める。
(処理B)
制御点をアフィン変換する
(処理C)
係数マトリクスMu、Mvと、曲面の分割数に応じた値に設定されるパラメータu、vに基づいて、混ぜ合わせ関数Nu、Nvを求める。
【0134】
これらの混ぜ合わせ関数は各制御点に固有なものであるが、分割数がアクティブに変化する場合には、分割数が変化するたびに混ぜ合わせ関数を求め直すようにする。
(処理D)
パラメータu、vに基づき、Puv(u,v)PWuv(u,v)を求める。
(処理E)
使用する制御点セット(制御点の組み合わせ)が変化しない場合には、パラメータu、vを順次変化させながら、処理Dを繰り返す。
(処理F)
使用する制御点セットが変化した場合には、処理Cに戻る。
【0135】
図3に、本実施形態の手法により生成された曲面パッチ20の例を示す。
【0136】
ここで、u方向のノットベクトルをU[u0,u1,u2…u6,u7…]とし、v方向のノットベクトルをV[v0,v1,v2…v6,v7…]とする。すると、曲面パッチ20の生成に使用される係数マトリクスMu、Mvは、各々、ノットベクトルの要素u0〜u6、v0〜v6に基づき求められる。
【0137】
そして、上式(18)から明らかなように、曲面パッチ20上の各点は、制御点Q00〜Q33と混ぜ合わせ関数Nu0,4〜Nu3,4、Nv0,4〜Nv3,4に基づき求められる。この場合、パラメータuの変域はu3≦u<u4となり、パラメータvの変域はv3≦v<v4になる。
【0138】
一方、曲面パッチ22を生成する場合には、使用する制御点のセットが、Q00〜Q33からQ01〜Q34に変わる。そして、曲面パッチ22上の各点は、制御点Q01〜Q34と混ぜ合わせ関数Nu1,4〜Nu4,4、Nv0,4〜Nv3,4に基づき求められる。この場合、パラメータuの変域はu4≦u<u5となり、パラメータvの変域はv3≦v<v4になる。
【0139】
本実施形態により生成された曲面パッチ20の構成点は、ポリゴンの頂点に設定され、これらの頂点により構成されるポリゴンが画面上に表示されることになる。
【0140】
2.5 分割数の可変制御
さて、本実施形態では、例えば視点からの距離(広義にはゲーム処理結果)に応じて、表示物の分割数をシームレス(seamless)に変化させている。
【0141】
ここで、分割数とは、制御点に基づき構成点を生成する際の構成点の生成間隔を決めるパラメータである。本実施形態では、上式(17)においてパラメータu、vを順次変化させて自由曲面の各構成点を求める際における、パラメータu、vの微少変化量△u、△vを、分割数のパラメータとして用いている。そして、これらの△u、△vを視点からの距離等に応じてシームレスに変化させる。
【0142】
具体的には図4に示すように、視点からの距離等に応じて変化する分割数と、モデルデータに含まれる制御点とに基づいて、分割数(精密度)がシームレスに変化するように表示物の構成点を生成する。
【0143】
これにより、例えば、視点と表示物の距離が遠い場合には、図4のA1に示すような分割数が少ない表示物が表示され、中ぐらいの場合には、図4のA2に示すような分割数が中ぐらいの表示物が表示される。また、視点と表示物の距離が近い場合には、図4のA3に示すような分割数が多い表示物が表示される。
【0144】
例えば、従来のポリゴンモデルのLODにおいては、図5(A)に示すように、表示物を表すモデルとして、近距離用、中距離用、遠距離用モデルというように複数のモデルを用意し、視点からの距離に応じて、使用するモデルを切り替えていた。
【0145】
しかしながら、この従来例では図5(B)に示すように、用意するモデルの数の分だけモデルデータが必要になる。従って、モデルデータの使用記憶容量が増大化してしまう。
【0146】
また、モデル切り替えの際の画面のショックが大きく、モデルが切り替わったことをプレーヤに気づかれてしまうという問題点もある。そして、この問題点を解決すべく、モデルの数を更に増やすと、モデルデータのデータ量の増大化の問題は更に深刻なものとなる。
【0147】
これに対して本実施形態では、図4のA1、A2、A3に示すような分割数(精密度)が異なる表示物の画像を、モデルデータが含む同一の制御点データに基づいて生成できる。従って、制御点データを含むモデルデータのデータ量を少なくすることが可能になり、モデルデータを記憶する情報記憶媒体やモデルデータを伝送するネットワークなどのリソースを効率的に使用できるようになる。
【0148】
また本実施形態によれば、分割数をシームレスに変化させることで、表示物の精密度をシームレスに変化させることができる。従って、図5(A)の従来例と異なり、分割数が変化する際にも画面にショックが生じず、分割数が変化したことをプレーヤに気づかれなくて済む。また、このように分割数をシームレスに変化させた場合にも、制御点のデータ量は不変であるため、図5(B)に示すようなモデルデータのデータ量が極端に増加してしまうという問題も生じない。
【0149】
また、本実施形態によれば、分割数を多くすることで、非常に滑らかな曲面を持つ表示物の画像を生成できるようになる。特に、前述のように、ノンユニフォームな自由曲面(自由曲線)の関数の係数セット(係数マトリクス)を、パラメータを変化させながら自由曲面の各構成点を順次生成する処理の前段階において用意するようにすれば、構成点の生成処理を大幅に高速化できる。従って、従来のポリゴンモデルを用いたゲームシステムでは生成できなかった、高い精密度の表示物の画像を、リアルタイムに生成できるようになる。
【0150】
2.6 ヒットチェック
さて、従来のゲームシステムにおいては、表示物同士のヒットチェックを行う場合に、以下のような問題点があった。
【0151】
例えば図6(A)において、表示物OB1(キャラクタ)に対して、表示物OB2(他のキャラクタ)のパンチが当たったか否かをチェックする場合に、従来では、表示物OB1を内包するバウンディングボックス(以下、BBOXと呼ぶ)を表示物OB1に対応づけて予め用意しておく。そして、このBBOXにOB2の拳がヒット(衝突)したか否かを判定することで、ヒットチェック処理を実現していた。
【0152】
しかしながら、図6(A)から明らかなように、BBOXは、表示物OB1よりも大きめに作られている。このため、実際には、表示物OB1の体に対して表示物OB2の拳が接していないのに、パンチが当たったと判定されてしまう。従って、プレーヤが不自然さを感じてしまい、プレーヤの仮想現実感を損ねてしまう。この場合、例えば、表示物の各パーツ毎にBBOXを設定する手法も考えられるが、この手法を採用しても、正確な判定処理を実現するのは難しい。
【0153】
そこで、本実施形態では図6(B)に示すように、ヒットチェック用の簡易オブジェクトとして、所与の特定の分割数と表示物OB1の制御点とにより生成される簡易オブジェクトSOBを表示物に対応づけて用意する。そして、この簡易オブジェクトSOBに対して表示物OB2の拳がヒットしたか否かを判定することで、ヒットチェック処理を実現する。
【0154】
このように簡易オブジェクトSOBを、所与の分割数と表示物OB1の制御点とにより生成すれば、OB1の形状と近い形状を有する簡易オブジェクトSOBを得ることができる。従って、図6(B)から明らかなように、表示物OB2の拳が表示物OB1の体に実際に接したときに、パンチが当たったと判定されるようになる。従って、プレーヤは不自然さを感じず、プレーヤの仮想現実感を高めることができる。
【0155】
さて、以上のような手法を採用した場合、簡易オブジェクトの分割数をどのようにして制御するかが1つの課題となる。
【0156】
そこで本実施形態では、表示物の第1の分割数の変化に応じて簡易オブジェクトの第2の分割数も変化するように、第1、第2の分割数を制御している。或いは、簡易オブジェクトの第2の分割数が、表示物の第1の分割数以下となるように、前記第1、第2の分割数を制御している。
【0157】
例えば、図7において表示物及びそれに対応する簡易オブジェクトは同一の制御点により、その構成点が生成されている。より具体的には、図1の構成点生成部130が、同一の制御点と、所与の分割数とに基づいて、表示物及び簡易オブジェクトの両方の構成点を生成している。
【0158】
そして、図7のB1に示すように表示物の分割数が中ぐらいの場合には、B2に示すような少ない分割数のオブジェクトを、表示物の簡易オブジェクトとして使用するようにする。
【0159】
一方、例えば視点と表示物との距離が近くなり、図7のB3に示すように表示物の分割数が多くなると、それに応じて、B4に示すように簡易オブジェクトの分割数も多くし、簡易オブジェクトの分割数を中ぐらいにする。
【0160】
視点と表示物との距離が近くなると、プレーヤは、相手の攻撃がヒットしたか否かを、より容易に見分けることができるようになる。このような場合に、図7のB2に示すような分割数の少ない簡易オブジェクトが使用されると、プレーヤの見た目にはヒットしていない相手の攻撃が、表示物に当たったと判定されてしまう。従って、プレーヤが不自然さを感じて、プレーヤの仮想現実感を損ねてしまう。
【0161】
本実施形態では、このように視点と表示物との距離が近くなり、図7のB3に示すように表示物の分割数が多くなると、それに連動してB4に示すように簡易オブジェクトの分割数も多くなるようにしている。従って、相手の攻撃とのヒットチェック処理も、B2に示す簡易オブジェクトを使用する場合に比べて、より正確に行われるようになる。この結果、プレーヤは不自然さを感じなくなり、プレーヤの仮想現実感を向上できる。
【0162】
一方、視点と表示物との距離が遠い場合には、図7のB2に示すような分割数の少ない簡易オブジェクトを使用しても、相手の攻撃のヒットの有無をプレーヤはどちらにせよ見分けることができないため、問題は生じない。
【0163】
また、視点と表示物との距離が遠い場合には、表示物及び簡易オブジェクトの分割数を共に少なくすることで、描画すべきプリミティブ面の数が少なくなるため、1フレーム内で全ての画像生成処理を完了するというリアルタイム処理の要請に応えることができる。
【0164】
なお、表示物の分割数の変化と簡易オブジェクトの分割数の変化を完全には連動させる必要はない。例えば、表示物の分割数がN1からN2に変化している際には、簡易オブジェクトの分割数を変化させずに、表示物の分割数がN2からN3に変化した場合に初めて簡易オブジェクトの分割数を変化させるようにしてもよい。
【0165】
また、表示物の分割数を変化させる処理条件と簡易オブジェクトを変化させる処理条件とを、各々独立に別々に設定してもよい。例えば、表示物の分割数を変化させるパラメータと簡易オブジェクトの分割数を変化させるパラメータとを異ならせ、表示物の分割数が変化するタイミングと簡易オブジェクトの分割数が変化するタイミングとをずらすようにしてもよい。
【0166】
また、簡易オブジェクトの分割数を表示物の分割数よりも常に少なくする必要はない。例えば、視点からの距離が遠い場合には、簡易オブジェクトの分割数と表示物の分割数を同一にし(例えば表示物自体を簡易オブジェクトとして使用する)、視点からの距離が近づいた場合に初めて、簡易オブジェクトの分割数を表示物の分割数がよりも少なくするようにしてもよい。
【0167】
また、特定の条件下において、逆に、簡易オブジェクトの分割数の方を表示物の分割数よりも多くするようにしてもよい。例えば、視点から遠い場合には、簡易オブジェクトの分割数を表示物の分割数よりも少なくする一方で、視点から近い場合には、簡易オブジェクトの分割数を表示物の分割数よりも多くするようにしてもよい。
【0168】
また、上記では、視点との距離に基づいて、表示物、簡易オブジェクトの分割数を変化させる場合について説明したが、視点との距離以外のゲーム処理結果に基づいて、表示物、簡易オブジェクトの分割数を変化させてもよい。
【0169】
2.7 簡易オブジェクトの設定
さて、本実施形態の1つの特徴は、所与の特定の分割数と表示物の制御点とに基づき生成される簡易オブジェクトを、表示物に対応づけて用意し、この簡易オブジェクトを利用して、表示物に関する種々の判定処理(ヒットチェック、クリッピング処理等)を行う点にある。
【0170】
この場合、簡易オブジェクトを用意する手法としては、以下のような手法を考えることができる。
【0171】
例えば図8では、C1に示すように所与の分割数と制御点とに基づいて表示物がリアルタイムに生成されている。ここで図8の表示物は、山などの地形(マップ)を表す表示物である。
【0172】
そして図8では、C2に示すように、所与の特定の分割数と表示物の制御点とに基づき生成される簡易オブジェクトのデータを、情報記憶媒体やネットワークから読み込むことで、簡易オブジェクトを用意する。そして、この用意された簡易オブジェクトを用いて、ヒットチェック、クリッピング処理などの表示物に関する種々の判定処理を行う。
【0173】
この場合、簡易オブジェクトは、表示物の制御点に基づき生成されているため、表示物の形状と近い形状を有することになる。従って、このような簡易オブジェクトを利用することで、より正確な判定処理が可能になる。
【0174】
なお、情報記憶媒体やネットワークのリソースを有効利用するためには、用意する簡易オブジェクトの分割数を、より少なくすることが望ましい。
【0175】
また図9では、D1に示すように制御点と所与の分割数とに基づき表示物がリアルタイムに生成されている。
【0176】
そして図9では、D2に示すように、所与の特定の分割数と表示物の制御点とに基づき簡易オブジェクトをリアルタイムに生成することで、簡易オブジェクトを用意する。そして、この用意された簡易オブジェクトを用いて、ヒットチェック、クリッピング処理などの表示物に関する種々の判定処理を行う。
【0177】
この場合、簡易オブジェクトは、表示物の形状と近い形状を有することになるため、より正確な判定処理が可能になる。
【0178】
なお、処理を高速化し、リアルタイム処理の要請に応えるためには、用意する簡易オブジェクトの分割数を、より少なくすることが望ましい。
【0179】
また、表示物の分割数の変化に応じて、簡易オブジェクトの分割数も変化させることが望ましい。また、簡易オブジェクトの分割数が、表示物の分割数以下になることが望ましい。
【0180】
例えば、図8で説明したように情報記憶媒体(ネットワーク)から簡易オブジェクトのデータを読み込む場合には、1つの表示物に対応づけて、分割数の異なる複数の簡易オブジェクトを用意する。そして、表示物の分割数の変化に応じて、使用する簡易オブジェクトを切り替えればよい。
【0181】
一方、図9で説明したように簡易オブジェクトをリアルタイムに生成する場合には、図7で説明したように、表示物の分割数の変化に応じて簡易オブジェクトの分割数をリアルタイムに変化させればよい。
【0182】
さて、簡易オブジェクトとしては、所与の分割数と表示物の制御点とに基づき生成される点を直接に構成点とするオブジェクトを用いてもよいし、所与の分割数と表示物の制御点とに基づき生成されるバウンディングボックスBBOX(広義には、バウンディングボリューム)を用いてもよい。
【0183】
例えば図10に示すように、簡易オブジェクトを用いてヒットチェック処理を行う場合には、E1に示すような所与の分割数と表示物の制御点とに基づき生成される点を直接に構成点とするオブジェクトを、簡易オブジェクトして用いることが望ましい。このような簡易オブジェクトを用いれば、図6(A)、(B)で説明したように、BBOXを用いる場合に比べて正確なヒットチェック処理を実現できるからである。
【0184】
なお、この場合には、情報記憶媒体やネットワークなどのリソースを有効利用するため、或いはリアルタイム処理の要請に応えるために、少ない分割数の簡易オブジェクトを用いることが望ましい。
【0185】
また図11に示すように、簡易オブジェクトを用いてクリッピング処理を行う場合には、所与の分割数と表示物の制御点とに基づき生成されるBBOXを、簡易オブジェクトとして用いることが望ましい。クリッピング処理においては、ビューボリュームにおける表示物の内外判定処理に間違いが生じないように、表示物を完全に内包する簡易オブジェクトを用いることが望まれるからである。
【0186】
図12に、BBOXの生成手法の一例を示す。
【0187】
図12では、まず、所与の分割数と制御点により生成された表示物の構成点のX、Y、Z座標の最大値XMAX、YMAX、ZMAX、最小値XMIN、YMIN、ZMINを求める。そして、これらの(XMAX、YMAX、ZMAX)、(XMIN、YMIN、ZMIN)を各座標成分に持つ8つの構成点BP0〜BP7を求めることで、図12に示すような表示物を内包するBBOXを得る。
【0188】
なお、BBOXは、図11のF1に示すように、分割数が多い表示物の構成点に基づき生成することが望ましい。このようにすれば、表示物の分割数がシームレスに変化した場合にも、BBOXの中に表示物が内包されることを保証できるようになるからである。
【0189】
但し、BBOXをモデルデータの中に含ませるのではなく、得られた構成点に基づいてゲーム中にリアルタイムに生成する場合には、分割数が少ない表示物の構成点に基づいてBBOXを生成することが望ましい。分割数が少ない表示物は、その構成点の個数も少ないため、表示物の構成点からBBOXの構成点を求める処理の負担が少なく、リアルタイム処理の要請に応えることができるからである。
【0190】
また、BBOXを、表示物の構成点ではなく、表示物の制御点に基づいて生成するようにしてもよい。このようにすれば、個数の少ない制御点に基づいてBBOXの構成点を求めることができるため、BBOXの生成処理の負担を軽減化できる。
【0191】
3.本実施形態の処理
次に、本実施形態の詳細な処理例について、図13〜図17のフローチャートを用いて説明する。
【0192】
図13は、表示物と簡易オブジェクトの分割数を可変に制御する処理に関するフローチャートである。
【0193】
まず、制御点データなどを含むモデルデータを読み込む(ステップS1)。そして、例えば制御点などに対するアフィン変換を行う(ステップS2)。
【0194】
次に、図7などで説明した手法により、表示物の分割数と簡易オブジェクトの分割数を決定する(ステップS3)。
【0195】
次に、ステップS3で決定された表示物の分割数と、アフィン変換後の表示物の制御点とに基づいて、表示物の構成点を生成する(ステップS4)。また、ステップS3で決定された簡易オブジェクトの分割数と、アフィン変換後の表示物の制御点とに基づいて、簡易オブジェクトの構成点を生成する(ステップS5)。
【0196】
次に、図11で説明したように、ビューボリュームと簡易オブジェクト(BBOX等)を用いてクリッピング処理を行う(ステップS6)。そして、クリッピング処理により、表示物の一部又は全部がビューボリューム内にあると判定された場合には、表示物を描画領域(フレームバッファ)に描画する処理を行う(ステップS7)。
【0197】
次に、図6(B)、図10で説明したように、簡易オブジェクトを用いて、他の表示物とのヒットチェック処理を行う(ステップS8)。そして、他の表示物とヒットしたか否かを判定し(ステップS9)、ヒットしたと判定された場合には、ヒット時用の処理(体力パラメータの値を減少させる処理、ヒット方向によろけさせる処理等)を行う(ステップS10)。
【0198】
図14は、図13のステップS3の分割数を決定する処理に関するフローチャートである。
【0199】
まず、表示物と視点との距離Lを求める(ステップS11)。この場合、視点との距離を求める対象となる点としては、表示物に予め設定された代表点、表示物の制御点により特定される点、或いは表示物の簡易オブジェクトにより特定される点などを考えることができる。
【0200】
次に、ステップS11で求められた距離Lに基づいて、表示物の分割数を表すパラメータである△u0、△v0を求める(ステップS12)。次に、距離Lに基づいて、簡易オブジェクトの分割数を表すパラメータである△u1、△v1を求める(ステップS13)。この場合、図7で説明したように、簡易オブジェクトの分割数が表示物の分割数以下になるように、△u1≧△u0、△v1≧△v0の関係式が成り立つようにする。
【0201】
図15、図16は、BBOXの生成処理に関するフローチャートである。
【0202】
まず、N=0に設定する(ステップS32)。
【0203】
次に、N=NENDか否かを判断し(ステップS33)、NENDでない場合には、表示物の構成点P[N]の座標(X、Y、Z)を読み込む(ステップS34)。
【0204】
次に、N=0か否かを判断し(ステップS35)、N=0の場合には、XMAX=XMIN=X、YMAX=YMIN=Y、ZMAX=ZMIN=Zに設定する(ステップS36)。
【0205】
一方、N=0でない場合には、ステップS37に移行し、XMAX<Xか否か、XMIN>Xか否かを判断する。そして、XMAX<Xの場合には、XMAX=Xに設定し、XMIN>Xの時にはXMIN=Xに設定する。そして、Y、Z座標についても同様の処理を行う。
【0206】
次に、Nを1だけインクリメントしてステップS33〜S38の処理を繰り返す(ステップS38)。そして、ステップS33でN=NENDと判断された場合には、最終的に得られた(XMAX,YMAX,ZMAX)、(XMIN,YMIN,ZMIN)に基づき、以下のようにBBOXの構成点BP0〜BP7を求める(図16のステップS39)。
【0207】
BP0=(XMAX,YMAX,ZMAX)
BP1=(XMAX,YMAX,ZMIN)
BP2=(XMAX,YMIN,ZMAX)
BP3=(XMAX,YMIN,ZMIN)
BP4=(XMIN,YMAX,ZMAX)
BP5=(XMIN,YMAX,ZMIN)
BP6=(XMIN,YMIN,ZMAX)
BP7=(XMIN,YMIN,ZMIN)
以上のようにすることで、図12で説明したように、表示物を内包するBBOXを生成できる。
【0208】
図17は、表示物、簡易オブジェクト(自由曲面)の構成点を生成する処理(図13のステップS4、S5)に関するフローチャートである。
【0209】
まず、パラメータu、vを、u=ustart、v=vstartに設定する(ステップS40)。図18の例では、ustart=u3、vstart=v3になる。
【0210】
次に、v=vendか否かを判断し、v=vendでない場合には、u=uendか否かを判断する(ステップS41、S42)。図18の例では、uend=u6、vend=v6になる。
【0211】
u=uendでない場合には、現在のu、vの値が属する変域に応じた係数マトリクス、制御点を読み出す(ステップS43)。
【0212】
次に、前述の式(18)にしたがって、現在のu、vの値でのNURBSの構成点Pを求めるテセレーション処理を行う(ステップS44)。
【0213】
次に、パラメータuにu方向の分割数パラメータ△uを加算して、uを変化させ(ステップS45)、ステップS42に戻る。なお、この△uは、図14のステップS12、S13で求められたものである(表示物では△u=△u0、簡易オブジェクトでは△u=△u1)。
【0214】
ステップS42でu=uendと判断された場合には、u=ustartに戻すと共に、パラメータvに、v方向の分割数パラメータ△vを加算して、vを変化させる(ステップS46)。なお、この△vは、図14のステップS12、S13で求められたものである(表示物では△v=△v0、簡易オブジェクトでは△v=△v1)。そして、v=vendか否かを判断し(ステップS41)、v=vendになるまでステップS42〜S46の処理を繰り返す。
【0215】
例えば図19のG1に示すようにu、vの変域がu3≦u<u4、v3≦v<v4である場合には、NURBSのオブジェクトデータから、制御点Q00〜Q33、係数マトリクスMu0、Mv0のデータが読み出される。そして、これらの制御点Q00〜Q33、係数マトリクスMu0、Mv0に基づいて、図20に示す曲面パッチ30の構成点が求められる。
【0216】
また図19のG2に示すようにu、vの変域がu4≦u<u5、v3≦v<v4である場合には、NURBSのオブジェクトデータから、制御点Q01〜Q34、係数マトリクスMu1、Mv0のデータが読み出される。そして、これらの制御点Q01〜Q34、係数マトリクスMu1、Mv0に基づいて、図20に示す曲面パッチ32の構成点が求められる。
【0217】
また図19のG3に示すように、u、vの変域がu5≦u<u6、v3≦v<v4である場合には、NURBSのオブジェクトデータから、制御点Q02〜Q35、係数マトリクスMu2、Mv0のデータが読み出される。そして、これらの制御点Q02〜Q35、係数マトリクスMu2、Mv0に基づいて、図20に示す曲面パッチ34の構成点が求められる。
【0218】
以上のようにして、制御点Q00〜Q55により生成されるべき全ての曲面パッチ30〜46の構成点が求められることになる。
【0219】
4.ハードウェア構成
次に、本実施形態を実現できるハードウェアの構成の一例について図21を用いて説明する。
【0220】
メインプロセッサ900は、CD982(情報記憶媒体)に格納されたプログラム、通信インターフェース990を介して転送されたプログラム、或いはROM950(情報記憶媒体の1つ)に格納されたプログラムなどに基づき動作し、ゲーム処理、画像処理、音処理などの種々の処理を実行する。
【0221】
コプロセッサ902は、メインプロセッサ900の処理を補助するものであり、高速並列演算が可能な積和算器や除算器を有し、マトリクス演算(ベクトル演算)を高速に実行する。例えば、オブジェクトを移動させたり動作(モーション)させるための物理シミュレーションに、マトリクス演算などの処理が必要な場合には、メインプロセッサ900上で動作するプログラムが、その処理をコプロセッサ902に指示(依頼)する。
【0222】
ジオメトリプロセッサ904は、座標変換、透視変換、光源計算、曲面生成などのジオメトリ処理を行うものであり、高速並列演算が可能な積和算器や除算器を有し、マトリクス演算(ベクトル演算)を高速に実行する。例えば、座標変換、透視変換、光源計算などの処理を行う場合には、メインプロセッサ900で動作するプログラムが、その処理をジオメトリプロセッサ904に指示する。
【0223】
データ伸張プロセッサ906は、圧縮された画像データや音データを伸張するデコード処理を行ったり、メインプロセッサ900のデコード処理をアクセレートする処理を行う。これにより、オープニング画面、インターミッション画面、エンディング画面、或いはゲーム画面などにおいて、MPEG方式等で圧縮された動画像を表示できるようになる。なお、デコード処理の対象となる画像データや音データは、ROM950、CD982に格納されたり、或いは通信インターフェース990を介して外部から転送される。
【0224】
描画プロセッサ910は、ポリゴンや曲面などのプリミティブ面で構成されるオブジェクトの描画(レンダリング)処理を高速に実行するものである。オブジェクトの描画の際には、メインプロセッサ900は、DMAコントローラ970の機能を利用して、オブジェクトデータを描画プロセッサ910に渡すと共に、必要であればテクスチャ記憶部924にテクスチャを転送する。すると、描画プロセッサ910は、これらのオブジェクトデータやテクスチャに基づいて、Zバッファなどを利用した陰面消去を行いながら、オブジェクトをフレームバッファ922に高速に描画する。また、描画プロセッサ910は、αブレンディング(半透明処理)、デプスキューイング、ミップマッピング、フォグ処理、トライリニア・フィルタリング、アンチエリアシング、シェーディング処理なども行うことができる。そして、1フレーム分の画像がフレームバッファ922に書き込まれると、その画像はディスプレイ912に表示される。
【0225】
サウンドプロセッサ930は、多チャンネルのADPCM音源などを内蔵し、BGM、効果音、音声などの高品位のゲーム音を生成する。生成されたゲーム音は、スピーカ932から出力される。
【0226】
ゲームコントローラ942からの操作データや、メモリカード944からのセーブデータ、個人データは、シリアルインターフェース940を介してデータ転送される。
【0227】
ROM950にはシステムプログラムなどが格納される。なお、業務用ゲームシステムの場合には、ROM950が情報記憶媒体として機能し、ROM950に各種プログラムが格納されることになる。なお、ROM950の代わりにハードディスクを利用するようにしてもよい。
【0228】
RAM960は、各種プロセッサの作業領域として用いられる。
【0229】
DMAコントローラ970は、プロセッサ、メモリ(RAM、VRAM、ROM等)間でのDMA転送を制御するものである。
【0230】
CDドライブ980は、プログラム、画像データ、或いは音データなどが格納されるCD982(情報記憶媒体)を駆動し、これらのプログラム、データへのアクセスを可能にする。
【0231】
通信インターフェース990は、ネットワークを介して外部との間でデータ転送を行うためのインターフェースである。この場合に、通信インターフェース990に接続されるネットワークとしては、通信回線(アナログ電話回線、ISDN)、高速シリアルバスなどを考えることができる。そして、通信回線を利用することでインターネットを介したデータ転送が可能になる。また、高速シリアルバスを利用することで、他のゲームシステムとの間でのデータ転送が可能になる。
【0232】
なお、本発明の各手段は、その全てを、ハードウェアのみにより実行してもよいし、情報記憶媒体に格納されるプログラムや通信インターフェースを介して配信されるプログラムのみにより実行してもよい。或いは、ハードウェアとプログラムの両方により実行してもよい。
【0233】
そして、本発明の各手段をハードウェアとプログラムの両方により実行する場合には、情報記憶媒体には、本発明の各手段をハードウェアを利用して実行するためのプログラムが格納されることになる。より具体的には、上記プログラムが、ハードウェアである各プロセッサ902、904、906、910、930等に処理を指示すると共に、必要であればデータを渡す。そして、各プロセッサ902、904、906、910、930等は、その指示と渡されたデータとに基づいて、本発明の各手段を実行することになる。
【0234】
図22(A)に、本実施形態を業務用ゲームシステムに適用した場合の例を示す。プレーヤは、ディスプレイ1100上に映し出されたゲーム画像を見ながら、レバー1102、ボタン1104等を操作してゲームを楽しむ。内蔵されるシステムボード(サーキットボード)1106には、各種プロセッサ、各種メモリなどが実装される。そして、本発明の各手段を実行するための情報(プログラム或いはデータ)は、システムボード1106上の情報記憶媒体であるメモリ1108に格納される。以下、この情報を格納情報と呼ぶ。
【0235】
図22(B)に、本実施形態を家庭用のゲームシステムに適用した場合の例を示す。プレーヤはディスプレイ1200に映し出されたゲーム画像を見ながら、ゲームコントローラ1202、1204を操作してゲームを楽しむ。この場合、上記格納情報は、本体システムに着脱自在な情報記憶媒体であるCD1206、或いはメモリカード1208、1209等に格納されている。
【0236】
図22(C)に、ホスト装置1300と、このホスト装置1300とネットワーク1302(LANのような小規模ネットワークや、インターネットのような広域ネットワーク)を介して接続される端末1304-1〜1304-nとを含むシステムに本実施形態を適用した場合の例を示す。この場合、上記格納情報は、例えばホスト装置1300が制御可能な磁気ディスク装置、磁気テープ装置、メモリ等の情報記憶媒体1306に格納されている。端末1304-1〜1304-nが、スタンドアロンでゲーム画像、ゲーム音を生成できるものである場合には、ホスト装置1300からは、ゲーム画像、ゲーム音を生成するためのゲームプログラム等が端末1304-1〜1304-nに配送される。一方、スタンドアロンで生成できない場合には、ホスト装置1300がゲーム画像、ゲーム音を生成し、これを端末1304-1〜1304-nに伝送し端末において出力することになる。
【0237】
なお、図22(C)の構成の場合に、本発明の各手段を、ホスト装置(サーバー)と端末とで分散して実行するようにしてもよい。また、本発明の各手段を実行するための上記格納情報を、ホスト装置(サーバー)の情報記憶媒体と端末の情報記憶媒体に分散して格納するようにしてもよい。
【0238】
またネットワークに接続する端末は、家庭用ゲームシステムであってもよいし業務用ゲームシステムであってもよい。そして、業務用ゲームシステムをネットワークに接続する場合には、業務用ゲームシステムとの間で情報のやり取りが可能であると共に家庭用ゲームシステムとの間でも情報のやり取りが可能な携帯型情報記憶装置(メモリカード、携帯型ゲーム装置)を用いることが望ましい。
【0239】
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。
【0240】
例えば、本発明のうち従属請求項に係る発明においては、従属先の請求項の構成要件の一部を省略する構成とすることもできる。また、本発明の1の独立請求項に係る発明の要部を、他の独立請求項に従属させることもできる。
【0241】
また、本実施形態では、NURBSの場合について主に説明したが、本発明は、NURBS以外の自由曲面や、サブディビジョンサーフェスなどにも適用できる。
【0242】
また、本実施形態では、視点からの距離に応じて表示物、簡易オブジェクトの分割数を変化させる場合について主に説明したが、本発明はこれに限定されず、ゲーム処理結果などに応じて表示物、簡易オブジェクトの分割数を変化させることもできる。
【0243】
また、ゲーム処理結果などに応じて、分割数と均等なパラメータを変化させる場合も本発明の範囲に含まれる。
【0244】
また、簡易オブジェクトを用いて行う判定処理としては、ヒットチェック処理、クリッピング処理などが特に望ましいが、本発明が適用される判定処理はこれに限定されない。
【0245】
また、簡易オブジェクトの設定手法や表示物の変形手法も、本実施形態で説明した手法が特に望ましいが、これに限定されるものではない。
【0246】
また、本実施形態では、求められた構成点をポリゴンの頂点に設定して画像を描画したが、求められた曲面の構成点を直接描画するようにしてもよい。
【0247】
また本発明は種々のゲーム(格闘ゲーム、シューティングゲーム、ロボット対戦ゲーム、スポーツゲーム、競争ゲーム、ロールプレイングゲーム、音楽演奏ゲーム、ダンスゲーム等)に適用できる。
【0248】
また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレーヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード等の種々のゲームシステム(画像生成システム)に適用できる。
【図面の簡単な説明】
【図1】本実施形態のゲームシステムのブロック図の例である。
【図2】図2(A)、(B)は、Bスプライン曲線の例について示す図である。
【図3】本実施形態により生成される曲面パッチの例を示す図である。
【図4】視点からの距離に応じて表示物の分割数を変化させる手法について説明するための図である。
【図5】図5(A)、(B)は、従来のポリゴンモデルを用いたLODの手法について説明するための図である。
【図6】図6(A)は、従来のヒットチェック処理の問題点について説明するための図であり、図6(B)は、本実施形態のヒットチェック処理について説明するための図である。
【図7】表示物の分割数の変化に応じて簡易オブジェクトの分割数を変化させる手法について説明するための図である。
【図8】簡易オブジェクトのデータを情報記憶媒体又はネットワークから読み込むことで、表示物に対応する簡易オブジェクトを用意する手法について説明するための図である。
【図9】簡易オブジェクトをリアルタイムに生成することで、表示物に対応する簡易オブジェクトを用意する手法について説明するための図である。
【図10】ヒットチェック処理に最適な簡易オブジェクトについて説明するための図である。
【図11】クリッピング処理に最適な簡易オブジェクトについて説明するための図である。
【図12】BBOXの生成手法について説明するための図である。
【図13】本実施形態の詳細な処理例について示すフローチャートである。
【図14】本実施形態の詳細な処理例について示すフローチャートである。
【図15】本実施形態の詳細な処理例について示すフローチャートである。
【図16】本実施形態の詳細な処理例について示すフローチャートである。
【図17】本実施形態の詳細な処理例について示すフローチャートである。
【図18】制御点、係数マトリクス、ノットベクトルについて説明するための図である。
【図19】パラメータの値が属する変域に基づいて、制御点、係数マトリクスを読み出す手法について説明するための図である。
【図20】本実施形態により生成される曲面パッチの例について示す図である。
【図21】本実施形態を実現できるハードウェアの構成の一例を示す図である。
【図22】図22(A)、(B)、(C)は、本実施形態が適用される種々の形態のシステムの例を示す図である。
【符号の説明】
10、12 曲線セグメント
20、22 曲面パッチ
30〜46 曲面パッチ
OB1、OB2 表示物
SOB 簡易オブジェクト
100 処理部
102 ゲーム処理部
110 モデルデータ読み込み部
112 変形部
114 アフィン変換部
120 分割数制御部
122 距離演算部
130 構成点生成部
140 簡易オブジェクト設定部
142 ヒットチェック処理部
144 クリッピング処理部
150 描画部
160 操作部
170 記憶部
172 主記憶部
174 描画領域
180 情報記憶媒体
190 表示部
192 音出力部
194 携帯型情報記憶装置
196 通信部
Claims (18)
- 画像生成を行うゲームシステムであって、
画面に表示される表示物の構成点の生成間隔を決めるための分割数を可変に制御する分割数制御手段と、
可変に制御される前記分割数と、表示物の形状を定義するための点である制御点とに基づき、前記分割数により決められる生成間隔で表示物の構成点をリアルタイムに生成する構成点生成手段とを含み、
前記分割数制御手段が、
表示物の分割数である第1の分割数の変化に応じて、表示物に対応する簡易オブジェクトの分割数である第2の分割数も変化するように、前記第1、第2の分割数を制御し、
前記構成点生成手段が、
可変に制御される前記第1、第2の分割数と、表示物の制御点とに基づき、前記第1、第2の分割数により決められる生成間隔で表示物、簡易オブジェクトの構成点をリアルタイムに生成することを特徴とするゲームシステム。 - 画像生成を行うゲームシステムであって、
画面に表示される表示物の構成点の生成間隔を決めるための分割数を可変に制御する分割数制御手段と、
可変に制御される前記分割数と、表示物の形状を定義するための点である制御点とに基づき、前記分割数により決められる生成間隔で表示物の構成点をリアルタイムに生成する構成点生成手段とを含み、
前記分割数制御手段が、
表示物に対応する簡易オブジェクトの分割数である第2の分割数が、表示物の分割数である第1の分割数以下となるように、前記第1、第2の分割数を可変に制御し、
前記構成点生成手段が、
可変に制御される前記第1、第2の分割数と、表示物の制御点とに基づき、前記第1、第2の分割数により決められる生成間隔で表示物、簡易オブジェクトの構成点をリアルタイムに生成することを特徴とするゲームシステム。 - 画像生成を行うゲームシステムであって、
画面に表示される表示物の構成点の生成間隔を決める分割数と、表示物の形状を定義するための点である制御点とに基づき、前記分割数により決められる生成間隔で表示物の構成点をリアルタイムに生成する構成点生成手段と、
所与の分割数と表示物の制御点とに基づき生成される簡易オブジェクトを、表示物に対応づけて用意する手段と、
表示物に対応づけられた前記簡易オブジェクトを用いて、表示物に対する所与の判定処理を行う手段と、を含み、
表示物の分割数である第1の分割数の変化に応じて、簡易オブジェクトの分割数である第2の分割数も変化することを特徴とするゲームシステム。 - 画像生成を行うゲームシステムであって、
画面に表示される表示物の構成点の生成間隔を決める分割数と、表示物の形状を定義するための点である制御点とに基づき、前記分割数により決められる生成間隔で表示物の構成点をリアルタイムに生成する構成点生成手段と、
所与の分割数と表示物の制御点とに基づき生成される簡易オブジェクトを、表示物に対応づけて用意する手段と、
表示物に対応づけられた前記簡易オブジェクトを用いて、表示物に対する所与の判定処理を行う手段と、を含み、
簡易オブジェクトの分割数である第2の分割数が、表示物の分割数である第1の分割数以下になることを特徴とするゲームシステム。 - 請求項3又は4のいずれかにおいて、
所与の分割数と表示物の制御点とに基づき生成された簡易オブジェクトのデータを情報記憶媒体から読み込む又はネットワークを介して読み込むことで、表示物の簡易オブジェクトが用意されることを特徴とするゲームシステム。 - 請求項3又は4のいずれかにおいて、
所与の分割数と表示物の制御点とに基づき簡易オブジェクトをリアルタイムに生成することで、表示物の簡易オブジェクトが用意されることを特徴とするゲームシステム。 - 請求項3乃至6のいずれかにおいて、
前記所与の判定処理がヒットチェック処理である場合には、所与の分割数と表示物の制御点とに基づき生成される点を構成点とするオブジェクトが、表示物の簡易オブジェクトとして用いられることを特徴とするゲームシステム。 - 請求項3乃至6のいずれかにおいて、
前記所与の判定処理がクリッピング処理である場合には、所与の分割数と表示物の制御点とに基づき生成される点により求められるバウンディングボリュームが、表示物の簡易オブジェクトとして用いられることを特徴とするゲームシステム。 - 請求項1乃至8のいずれかにおいて、
前記制御点のデータが、表示物のモデルデータの中に含まれ、
前記制御点のデータを含むモデルデータを、情報記憶媒体から読み込む又はネットワークを介して読み込む手段を含むことを特徴とするゲームシステム。 - コンピュータが使用可能な情報記憶媒体であって、
画面に表示される表示物の構成点の生成間隔を決めるための分割数を可変に制御する分割数制御手段と、
可変に制御される前記分割数と、表示物の形状を定義するための点である制御点とに基づき、前記分割数により決められる生成間隔で表示物の構成点をリアルタイムに生成する構成点生成手段と、
を実行するためのプログラムを含み、
前記分割数制御手段が、
表示物の分割数である第1の分割数の変化に応じて、表示物に対応する簡易オブジェクトの分割数である第2の分割数も変化するように、前記第1、第2の分割数を制御し、
前記構成点生成手段が、
可変に制御される前記第1、第2の分割数と、表示物の制御点とに基づき、前記第1、第2の分割数により決められる生成間隔で表示物、簡易オブジェクトの構成点をリアルタイムに生成することを特徴とする情報記憶媒体。 - コンピュータが使用可能な情報記憶媒体であって、
画面に表示される表示物の構成点の生成間隔を決めるための分割数を可変に制御する分割数制御手段と、
可変に制御される前記分割数と、表示物の形状を定義するための点である制御点とに基づき、前記分割数により決められる生成間隔で表示物の構成点をリアルタイムに生成する構成点生成手段と、
を実行するためのプログラムを含み、
前記分割数制御手段が、
表示物に対応する簡易オブジェクトの分割数である第2の分割数が、表示物の分割数である第1の分割数以下となるように、前記第1、第2の分割数を可変に制御し、
前記構成点生成手段が、
可変に制御される前記第1、第2の分割数と、表示物の制御点とに基づき、前記第1、第2の分割数により決められる生成間隔で表示物、簡易オブジェクトの構成点をリアルタイムに生成することを特徴とする情報記憶媒体。 - コンピュータが使用可能な情報記憶媒体であって、
画面に表示される表示物の構成点の生成間隔を決める分割数と、表示物の形状を定義するための点である制御点とに基づき、前記分割数により決められる生成間隔で表示物の構成点をリアルタイムに生成する構成点生成手段と、
所与の分割数と表示物の制御点とに基づき生成される簡易オブジェクトを、表示物に対応づけて用意する手段と、
表示物に対応づけられた前記簡易オブジェクトを用いて、表示物に対する所与の判定処理を行う手段と、を実行するためのプログラムを含み、
表示物の分割数である第1の分割数の変化に応じて、簡易オブジェクトの分割数である第2の分割数も変化することを特徴とする情報記憶媒体。 - コンピュータが使用可能な情報記憶媒体であって、
画面に表示される表示物の構成点の生成間隔を決める分割数と、表示物の形状を定義するための点である制御点とに基づき、前記分割数により決められる生成間隔で表示物の構成点をリアルタイムに生成する構成点生成手段と、
所与の分割数と表示物の制御点とに基づき生成される簡易オブジェクトを、表示物に対応づけて用意する手段と、
表示物に対応づけられた前記簡易オブジェクトを用いて、表示物に対する所与の判定処理を行う手段と、を実行するためのプログラムを含み、
簡易オブジェクトの分割数である第2の分割数が、表示物の分割数である第1の分割数以下になることを特徴とする情報記憶媒体。 - 請求項12又は13のいずれかにおいて、
所与の分割数と表示物の制御点とに基づき生成された簡易オブジェクトのデータを情報記憶媒体から読み込む又はネットワークを介して読み込むことで、表示物の簡易オブジェクトが用意されることを特徴とする情報記憶媒体。 - 請求項12又は13のいずれかにおいて、
所与の分割数と表示物の制御点とに基づき簡易オブジェクトをリアルタイムに生成することで、表示物の簡易オブジェクトが用意されることを特徴とする情報記憶媒体。 - 請求項12乃至15のいずれかにおいて、
前記所与の判定処理がヒットチェック処理である場合には、所与の分割数と表示物の制御点とに基づき生成される点を構成点とするオブジェクトが、表示物の簡易オブジェクトとして用いられることを特徴とする情報記憶媒体。 - 請求項12乃至15のいずれかにおいて、
前記所与の判定処理がクリッピング処理である場合には、所与の分割数と表示物の制御点とに基づき生成される点により求められるバウンディングボリュームが、表示物の簡易オブジェクトとして用いられることを特徴とする情報記憶媒体。 - 請求項10乃至17のいずれかにおいて、
前記制御点のデータが、表示物のモデルデータの中に含まれ、
前記制御点のデータを含むモデルデータが、情報記憶媒体から読み込む又はネットワークを介して読み込む手段を実行するためのプログラムを含むことを特徴とする情報記憶媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000059382A JP4329965B2 (ja) | 2000-03-03 | 2000-03-03 | ゲームシステム及び情報記憶媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000059382A JP4329965B2 (ja) | 2000-03-03 | 2000-03-03 | ゲームシステム及び情報記憶媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001250129A JP2001250129A (ja) | 2001-09-14 |
JP4329965B2 true JP4329965B2 (ja) | 2009-09-09 |
Family
ID=18579840
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000059382A Expired - Lifetime JP4329965B2 (ja) | 2000-03-03 | 2000-03-03 | ゲームシステム及び情報記憶媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4329965B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8763816B2 (en) | 2010-03-30 | 2014-07-01 | Asahi Kasei Medical Co., Ltd. | Filter for processing blood |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2003067527A1 (fr) * | 2002-02-06 | 2003-08-14 | Digital Process Ltd. | Programme d'affichage de forme tridimensionnelle, procede d'affichage de forme tridimensionnelle et dispositif d'affichage de forme tridimensionnelle |
JP4569390B2 (ja) * | 2005-06-02 | 2010-10-27 | トヨタ自動車株式会社 | 物体間衝突判定装置及び方法 |
JP5766540B2 (ja) * | 2011-07-29 | 2015-08-19 | 株式会社バンダイナムコエンターテインメント | プログラム及びゲームシステム |
JP6679523B2 (ja) | 2017-03-01 | 2020-04-15 | 任天堂株式会社 | 画像処理プログラム、画像処理システム、画像処理装置および画像処理方法 |
JP6947560B2 (ja) | 2017-07-14 | 2021-10-13 | グリー株式会社 | ゲーム処理プログラム、ゲーム処理方法及びゲーム処理装置 |
JP2021162993A (ja) * | 2020-03-31 | 2021-10-11 | ソニーグループ株式会社 | 情報処理装置、情報処理方法および情報処理プログラム |
-
2000
- 2000-03-03 JP JP2000059382A patent/JP4329965B2/ja not_active Expired - Lifetime
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8763816B2 (en) | 2010-03-30 | 2014-07-01 | Asahi Kasei Medical Co., Ltd. | Filter for processing blood |
Also Published As
Publication number | Publication date |
---|---|
JP2001250129A (ja) | 2001-09-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4079410B2 (ja) | 画像生成システム、プログラム及び情報記憶媒体 | |
US7015908B2 (en) | Image generation system and information storage medium | |
JP4610748B2 (ja) | 画像生成システム、プログラム及び情報記憶媒体 | |
JP4329965B2 (ja) | ゲームシステム及び情報記憶媒体 | |
JP2001319244A (ja) | ゲームシステム及び情報記憶媒体 | |
JP3280355B2 (ja) | 画像生成システム及び情報記憶媒体 | |
JP4167358B2 (ja) | 画像生成システム及び情報記憶媒体 | |
US6890261B2 (en) | Game system, program and image generation method | |
JP2001250128A (ja) | ゲームシステム及び情報記憶媒体 | |
JP4367804B2 (ja) | 画像生成システム及び情報記憶媒体 | |
JP3297410B2 (ja) | 画像生成システム及び情報記憶媒体 | |
JP2001229403A (ja) | ゲームシステム及び情報記憶媒体 | |
JP3377488B2 (ja) | ゲームシステム及び情報記憶媒体 | |
JP4518643B2 (ja) | ゲームシステム及び情報記憶媒体 | |
JP3614340B2 (ja) | ゲームシステム及び情報記憶媒体 | |
JP3292713B2 (ja) | 画像生成システム及び情報記憶媒体 | |
JP3420987B2 (ja) | ゲームシステム及び情報記憶媒体 | |
JP4123524B2 (ja) | 画像処理装置及び方法並びにプログラム | |
JP4229318B2 (ja) | 画像生成システム、プログラム及び情報記憶媒体 | |
JP3377489B2 (ja) | ゲームシステム及び情報記憶媒体 | |
JP2003162734A (ja) | ゲームシステム及び情報記憶媒体 | |
JP2002216165A (ja) | 画像生成システム、プログラム及び情報記憶媒体 | |
JP4391633B2 (ja) | 画像生成システム及び情報記憶媒体 | |
JP2001250125A (ja) | ゲームシステム及び情報記憶媒体 | |
JP4632521B2 (ja) | ゲームシステム及び情報記憶媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070205 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090318 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090518 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20090610 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20090611 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4329965 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120626 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120626 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120626 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130626 Year of fee payment: 4 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130626 Year of fee payment: 4 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
R360 | Written notification for declining of transfer of rights |
Free format text: JAPANESE INTERMEDIATE CODE: R360 |
|
R360 | Written notification for declining of transfer of rights |
Free format text: JAPANESE INTERMEDIATE CODE: R360 |
|
R370 | Written measure of declining of transfer procedure |
Free format text: JAPANESE INTERMEDIATE CODE: R370 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |