JP4329965B2 - GAME SYSTEM AND INFORMATION STORAGE MEDIUM - Google Patents

GAME SYSTEM AND INFORMATION STORAGE MEDIUM Download PDF

Info

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
Application number
JP2000059382A
Other languages
Japanese (ja)
Other versions
JP2001250129A (en
Inventor
直宏 斎藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Namco Ltd
Bandai Namco Entertainment Inc
Original Assignee
Namco Ltd
Namco Bandai Games Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Namco Ltd, Namco Bandai Games Inc filed Critical Namco Ltd
Priority to JP2000059382A priority Critical patent/JP4329965B2/en
Publication of JP2001250129A publication Critical patent/JP2001250129A/en
Application granted granted Critical
Publication of JP4329965B2 publication Critical patent/JP4329965B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Landscapes

  • Processing Or Creating Images (AREA)
  • Image Generation (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、ゲームシステム及び情報記憶媒体に関する。
【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】

Figure 0004329965
【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】
Figure 0004329965
【0089】
ここで、ノットベクトルTは一般的に、
T=[t012 … 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】
0,4=at3+bt2+ct+d
1,4=et3+ft2+gt+h
2,4=it3+jt2+kt+l
3,4=mt3+nt2+ot+p …(7)
例えば、混ぜ合わせ関数N1,4の展開式は下式のようになる。
【0103】
【数3】
Figure 0004329965
【0104】
【数4】
Figure 0004329965
【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】
Figure 0004329965
【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】
x(t)=N0,4(t)Q0 x+N1,4(t)Q1 x+N2,4(t)Q2 x+N3,4(t)Q3 x
y(t)=N0,4(t)Q0 y+N1,4(t)Q1 y+N2,4(t)Q2 y+N3,4(t)Q3 y
z(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】
Figure 0004329965
【0117】
ノットベクトルをノンユニフォームにし、有理化された式を用いることで、BスプラインをNURBSにすることができる。
【0118】
例えば、上式(11)を、上式(10)を用いてマトリクスの形で表記すると下式のようになる。
【0119】
【数7】
Figure 0004329965
【0120】
そして、上式(13)を有利化すると下式のようになる。
【0121】
【数8】
Figure 0004329965
【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】
Figure 0004329965
【0127】
【数10】
Figure 0004329965
【0128】
上式(15)、(16)において、Muはu成分についての係数(ベース)マトリクスであり、Mvはv成分についての係数マトリクスである。
【0129】
上式(15)、(16)から、曲面上の点であるPuv(u,v)のx成分であるPxuv(u,v)は下式のように求められる。
【0130】
【数11】
Figure 0004329965
【0131】
そして、有利化を行った場合(NURBS)には、曲線の場合の有理化と同様に、Pxuv(u,v)Pwuv(u,v)は下式のように求められる。
【0132】
【数12】
Figure 0004329965
【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 通信部[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a game system and an information storage medium.
[0002]
[Background Art and Problems to be Solved by the Invention]
Conventionally, a game system that generates an image that can be seen from a given viewpoint in an object space that is a virtual three-dimensional space is known, and is popular as a device that can experience so-called virtual reality. Taking a game system that can enjoy a fighting game as an example, a player (operator) operates a character (model) and plays against another character or a character operated by a computer to enjoy the game.
[0003]
Now, in such a game system, it is necessary to perform a hit check process for determining whether or not a character has been punched by another character.
[0004]
In the conventional game system, a bounding box containing the character is prepared in advance, and hit check processing is realized by determining whether or not another character's fist has hit (collision) in this bounding box. It was.
[0005]
However, since such a bounding box is made larger than the character, it is actually determined that the punch has been hit even though the fist of another character is not in contact with the character's body. There was a problem.
[0006]
The present invention has been made in view of the above-described problems, and an object of the present invention is to provide a game system and an information storage medium capable of accurately performing a determination process such as a hit check using a simple object. It is to provide.
[0007]
[Means for Solving the Problems]
In order to solve the above-mentioned problems, the present invention is a game system for generating an image, and a division number control means for variably controlling the number of divisions for determining a generation interval of constituent points of a display object displayed on a screen And generating the constituent points of the display object in real time at the generation interval determined by the division number based on the number of divisions variably controlled and the control point that is a point for defining the shape of the display object And a second number of divisions that is the number of divisions of the simple object corresponding to the display object according to a change in the number of first divisions that is the number of divisions of the display object. The first and second division numbers are controlled so as to change, and the component point generating means is based on the first and second division numbers variably controlled and the control points of the display object, The generation interval determined by the first and second division numbers示物, and generating the configuration point of the simple objects in real time. The information storage medium according to the present invention is an information storage medium that can be used by a computer, and includes a program for executing the above means. The program according to the present invention is a program (including a program embodied in a carrier wave) that can be used by a computer, and includes a processing routine for executing the above means.
[0008]
According to the present invention, the second division number of the simple object changes, for example, seamlessly according to the change in the first division number of the display object. Based on the first and second division numbers and the control points of the display object that change, the constituent points of the display object and the simple object are generated. Therefore, according to the present invention, it is possible to obtain a simple object having an optimum number of divisions according to the number of divisions of a display object. As a result, for example, when determination processing such as hit check processing is performed using this simple object, accurate determination processing can be realized.
[0009]
It should be noted that the first and second division numbers are desirably changed according to the game processing result such as the distance to the viewpoint.
[0010]
In addition, the present invention is a game system that performs image generation, and is variably controlled with division number control means for variably controlling the number of divisions for determining the generation interval of the constituent points of the display object displayed on the screen. Based on the number of divisions and a control point that is a point for defining the shape of the display object, comprising a component point generation means for generating the constituent points of the display object in real time at a generation interval determined by the number of divisions, The first and second division numbers control means controls the first and second division numbers so that the second division number, which is the division number of the simple object corresponding to the display object, is not more than the first division number, which is the division number of the display object. And the component point generating means controls the first and second division numbers based on the first and second division numbers variably controlled and the control points of the display object. The composition of display objects and simple objects at the generation interval determined by And generating a point in real time. The information storage medium according to the present invention is an information storage medium that can be used by a computer, and includes a program for executing the above means. The program according to the present invention is a program (including a program embodied in a carrier wave) that can be used by a computer, and includes a processing routine for executing the above means.
[0011]
According to the present invention, the first and second division numbers change, for example, seamlessly so that the second division number of the simple object is equal to or less than the first division number of the display object. Based on the first and second division numbers and the control points of the display object that change, the constituent points of the display object and the simple object are generated. Therefore, according to the present invention, it is possible to obtain a simple object having an optimal number of divisions as a simple object of a display object. As a result, for example, when determination processing such as hit check processing is performed using this simple object, accurate determination processing can be realized.
[0012]
It should be noted that the first and second division numbers are desirably changed according to the game processing result such as the distance to the viewpoint.
[0013]
Further, the present invention is a game system for generating an image, and includes a number of divisions that determine a generation interval of constituent points of a display object displayed on a screen, and a control point that is a point for defining the shape of the display object. Based on the composition point generation means for generating the constituent points of the display object in real time at the generation interval determined by the number of divisions, and the simple object generated based on the given division number and the control points of the display object, And a means for performing a given determination process on the display object using the simple object associated with the display object. The information storage medium according to the present invention is an information storage medium that can be used by a computer, and includes a program for executing the above means. The program according to the present invention is a program (including a program embodied in a carrier wave) that can be used by a computer, and includes a processing routine for executing the above means.
[0014]
According to the present invention, a simple object generated based on a given specific number of divisions and a control point of a display object is prepared, and determination processing such as hit check processing and clipping processing is performed using the simple object. Done. In this case, since the simple object is generated based on the control point of the display object, it can have a shape close to the shape of the display object. Therefore, accurate and appropriate determination processing can be performed by using such a simple object.
[0015]
In addition, the game system, information storage medium, and program according to the present invention can read simple object data generated based on a given number of divisions and control points of a display object from an information storage medium or via a network. A simple object of a display object is prepared.
[0016]
In this way, processing for generating a simple object of a display object in real time becomes unnecessary, and the processing load can be reduced.
[0017]
In addition, the game system, information storage medium, and program according to the present invention provide that a simple object of a display object is prepared by generating a simple object in real time based on a given number of divisions and a control point of the display object. Features.
[0018]
In this way, it is not necessary to prepare simple object data as model data, so that information storage media and network resources can be used effectively.
[0019]
The game system, information storage medium and program according to the present invention also change the second division number which is the division number of the simple object in accordance with the change of the first division number which is the division number of the display object. Features.
[0020]
In this way, it is possible to obtain a simple object having an optimum number of divisions according to the number of divisions of the display object.
[0021]
The game system, information storage medium, and program according to the present invention are characterized in that the second division number that is the division number of the simple object is equal to or less than the first division number that is the division number of the display object.
[0022]
In this way, it is possible to obtain a simple object with the optimal number of divisions for the display object determination process.
[0023]
Further, the game system, information storage medium, and program according to the present invention, when the given determination process is a hit check process, the points generated based on the given division number and the control point of the display object. An object as a constituent point is used as a simple object of a display object.
[0024]
In this way, an accurate hit check process can be realized as compared with the case where a bounding volume is used.
[0025]
In addition, the game system, information storage medium, and program according to the present invention are obtained by a point generated based on a given number of divisions and a control point of a display object when the given determination process is a clipping process. The bounding volume to be displayed is used as a simple object of a display object.
[0026]
In this way, it is possible to prevent a situation in which an error occurs in the inside / outside determination processing of the display object in the view volume.
[0027]
In the game system, information storage medium, and program according to the present invention, the control point data is included in model data of a display object, and the model data including the control point data is read from the information storage medium. It includes a means for reading via a network (or a program or processing routine for executing the means).
[0028]
In this way, it is possible to reduce the used storage capacity of the information storage medium and the amount of network communication data, and resources can be used effectively.
[0029]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, preferred embodiments of the present invention will be described with reference to the drawings.
[0030]
In the following, a case where an image of a display object is generated using NURBS (Non Uniform Rational B-Spline) will be mainly described. However, the present invention can be widely applied to a case where an image of a display object is generated using a free-form surface other than NURBS or a so-called subdivision surface.
[0031]
For example, if the composition point of the display object (corresponding to the vertex of the polygon after subdivision) is generated from the control point (corresponding to the vertex of the polygon before subdivision) using the subdivision surface, unlike the case of NURBS, Since there are no restrictions on the arrangement position and the number of control points and the number of divisions can be increased locally, the design work of the model can be greatly improved.
[0032]
1. Constitution
FIG. 1 shows an example of a block diagram of the game system (image generation system) of this embodiment. In this figure, the present embodiment only needs to include at least the processing unit 100 (or include the processing unit 100 and the storage unit 170), and the other blocks can be optional components.
[0033]
The operation unit 160 is for a player to input operation data, and the function can be realized by hardware such as a lever, a button, a microphone, or a housing.
[0034]
The storage unit 170 serves as a work area such as the processing unit 100 or the communication unit 196, and its function can be realized by hardware such as a RAM.
[0035]
An information storage medium 180 (storage medium usable by a computer) stores information such as programs and data, and functions thereof are an optical disk (CD, DVD), a magneto-optical disk (MO), a magnetic disk, and a hard disk. It can be realized by hardware such as a magnetic tape or a memory (ROM). The processing unit 100 performs various processes of the present invention (this embodiment) based on information stored in the information storage medium 180. That is, the information storage medium 180 stores information (program or data) for executing the means of the present invention (this embodiment) (particularly, the blocks included in the processing unit 100).
[0036]
Part or all of the information stored in the information storage medium 180 is transferred to the storage unit 170 when the system is powered on. The information storage medium 180 also includes a program for performing the processing of the present invention, image data, sound data, shape data of the display object, information for instructing the processing of the present invention, or processing in accordance with the instructions. Information etc. can be included.
[0037]
The display unit 190 outputs an image generated according to the present embodiment, and the function thereof can be realized by hardware such as a CRT, LCD, or HMD (head mounted display).
[0038]
The sound output unit 192 outputs the sound generated by the present embodiment, and its function can be realized by hardware such as a speaker.
[0039]
The portable information storage device 194 stores player personal data, game save data, and the like. As the portable information storage device 194, a memory card, a portable game device, and the like can be considered.
[0040]
The communication unit 196 performs various controls for communicating with the outside (for example, a host device or other game system), and functions thereof are various processors, hardware such as a communication ASIC, It can be realized by a program.
[0041]
The program or data for executing the means of the present invention (this embodiment) may be distributed from the information storage medium of the host device (server) to the information storage medium 180 via the network and the communication unit 196. Good. Use of such an information storage medium of the host device (server) is also included in the scope of the present invention.
[0042]
The processing unit 100 (processor) performs various processes such as a game process, an image generation process, or a sound generation process based on operation data from the operation unit 160, a given program, or the like. The functions of the processing unit 100 can be realized by hardware such as various processors (CPU, DSP, etc.) or ASIC (gate array, etc.) and a given program (game program).
[0043]
Note that all of the functions of the processing unit 100 may be realized by hardware, or all of them may be realized by a program. Alternatively, it may be realized by both hardware and a program.
[0044]
The processing unit 100 includes a game processing unit 102, a model data reading unit 110, a deformation unit 112, an affine transformation unit 114, a division number control unit 120, a component point generation unit 130 (a curved surface calculation unit, a tessellation unit), and a simple object setting unit. 140, a hit check processing unit 142, a clipping processing unit 144, and a drawing unit 150.
[0045]
The game processing unit 102 performs various game processes based on operation data from the operation unit 160 and a given program (game program).
[0046]
Here, the game process is performed as a process in the previous stage in order to generate a game image or a game sound in each frame. That is, the processing unit 100 generates a game image that can be seen from a given viewpoint (virtual camera) in the object space, for example, based on the game processing result in the game processing unit 102 and outputs the game image to the display unit 190. In addition, the processing unit 100 performs various sound processing based on the game processing result, generates game sound such as BGM, sound effect, or sound, and outputs the game sound to the sound output unit 192.
[0047]
Specifically, the game processing performed by the game processing unit 102 includes coin (price) acceptance processing, various mode setting processing, game progress processing, selection screen setting processing, and object (one or more primitive surfaces). Processing for determining the position and rotation angle (rotation angle around the X, Y or Z axis), processing for moving the object (motion processing), viewpoint position (virtual camera position) and line-of-sight angle (virtual camera rotation angle) Processing to find, processing to place objects such as map objects in the object space, hit check processing, processing to calculate game results (results, results), processing for multiple players to play in a common game space, or game over Processing can be considered.
[0048]
In addition, as a game processing result in the game processing unit 102, various parameter values that are used as materials for various determinations in the game processing or updated by the game processing can be considered. Alternatively, the current processing load of the processing unit 100 (processor) can be considered as a game processing result.
[0049]
As a result of this game processing, for example, in the case of a car game, the position, rotation angle, speed and acceleration of the car obtained in each frame, the position of the viewpoint, the viewing angle, the angle of view, the used course data, and the player select There are car models. Taking a role playing game as an example, there are status parameters such as character level, physical strength, attack power, and defense power, items acquired by the player, types of events that occurred, and the like. Taking a fighting game as an example, there are the number of game stages cleared, the number of wins, the number and types of special techniques that have been successfully delivered.
[0050]
The model data reading unit 110 reads model data for generating an image of a display object from the information storage medium 180 or uses a communication unit 196 to transmit a network (a transmission line for connecting to another game system or a host device). And processing for reading via the communication line).
[0051]
Here, in the present embodiment, the model data of the display object includes control point data. The model data includes various attribute data (color, texture, brightness, α value, etc.) for generating an image of the display object. Further, when the display object is represented by a free-form surface such as NURBS, the model data includes knot vector data.
[0052]
If the simple object is not generated in real time, the data of the simple object is also included in the model data. The simple object data is read from the information storage medium 180 or read from the outside via the network.
[0053]
In the present embodiment, control point data is used as the shape data of the display object included in the model data. The control point data has a small amount of data, and the amount of data does not depend on the precision of the display object. Therefore, the resource can be effectively used by using the control point data as the shape data included in the model data. More specifically, the used storage capacity of the information storage medium 180 and the amount of network communication data can be saved.
[0054]
The deformation unit 112 performs processing for deforming the display object in real time. This can be realized, for example, by changing the relative positional relationship between the control points of the display object. More specifically, based on the motion data, each bone (arc) constituting the skeleton model is moved, and the control point is moved so as to follow this bone. Alternatively, in the case of NURBS, the display object may be deformed by controlling the weight value set at each control point.
[0055]
When the display object is deformed, it is desirable to change the number of divisions of the display object or the simple object according to the deformation of the display object. More specifically, the greater the bending of the display object, the greater the number of divisions of the display object or simple object.
[0056]
The affine transformation unit 114 performs affine transformation on control points that define the shape of the display object, constituent points of the display object, constituent points of a simple object (such as a bounding volume that contains the display object), and the like. This affine transformation enables, for example, coordinate transformation from the local coordinate system to the world coordinate system, coordinate transformation from the world coordinate system to the viewpoint coordinate system, coordinate transformation from the viewpoint coordinate system to the screen coordinate system (perspective transformation), etc. Become.
[0057]
The division number control unit 120 performs processing for variably controlling the number of divisions of the display object in accordance with the game processing result in the game processing unit 102.
[0058]
More specifically, the division number control unit 120 changes the second division number, which is the division number of the simple object corresponding to the display object, in accordance with the change in the first division number, which is the division number of the display object. Thus, the division number of the display object and the simple object is changed seamlessly. Alternatively, the division number of the display object and the simple object is changed seamlessly so that the second division number of the simple object is equal to or less than the first division number of the display object.
[0059]
Note that the number of divisions is a parameter that determines a generation interval of component points when generating component points of a display object from control points that define the shape of the display object. In other words, it is a parameter corresponding to the ratio between the number of control points and the number of component points generated by the control points.
[0060]
It is desirable to change the first and second division numbers of the display object and the simple object according to, for example, the distance from the viewpoint. The distance from this viewpoint is calculated by the distance calculation unit 122 included in the division number control unit 120.
[0061]
In this case, the distance from the viewpoint may be the distance between the representative point of the display object and the viewpoint, or a point specified by the control point of the display object (a point selected from the control point, a representative point of the control point, etc.) It may be the distance from the viewpoint. Alternatively, it may be a point (a point selected from a constituent point of the simple object, a representative point of the constituent point of the simple object) specified by a simple object (bounding volume or the like) of the display object.
[0062]
Further, the distance from the viewpoint may be a linear distance from the viewpoint or a depth distance.
[0063]
Note that the first and second division numbers of the display object and the simple object can be changed based on things other than the distance from the viewpoint. That is, the first and second division numbers of the display object and the simple object can be changed according to the game processing result.
[0064]
For example, when the display object is a role playing game character, the first and second division numbers may be changed according to status parameters such as the character's level, physical strength, attack power, and defense power. When the display object is a car object in the car game, the first and second division numbers may be changed according to the speed and acceleration of the car. In addition, when the display object is a character in a fighting game, the first and second division numbers may be changed according to the number of cleared game stages, the number of winners, and the like.
[0065]
The composition point generation unit 130 generates the constituent points of the display object in real time at the generation interval determined by the number of divisions based on the division number variably controlled by the division number control unit 120 and the control points of the display object. I do. For example, when the display object is represented by a free-form surface such as NURBS, a process of sequentially obtaining each constituent point on the free-form surface while changing the parameters is performed. Note that the data of the generated component points is stored in the main storage unit 172.
[0066]
In this case, in the present embodiment, the constituent points of the display object are generated based on the display object to be variably controlled, the first and second division numbers of the simple object, and the control points included in the model data of the display object. To do. By doing so, it is possible to generate an image of a display object in which the number of divisions changes in real time while using the same control point (model data). In addition, a simple object can be generated using the same control points as the display object.
[0067]
The simple object setting unit 140 performs a process for preparing a simple object that is generated based on a given specific number of divisions and a control point of the display object in association with the display object.
[0068]
In this case, the simple object may be prepared by reading the data of the simple object corresponding to the display object via the information storage medium (or network), or control the given specific number of divisions and the display object. The constituent point generation unit 130 may generate the simple object based on the points in real time.
[0069]
Further, the simple object may be an object having a point directly generated as a constituent point based on a given number of divisions and a control point of the display object. For example, such a simple object is desirable when used for hit check processing.
[0070]
In addition, the simple object may be a bounding volume (which includes a display object and, in a narrow sense, a bounding box) obtained from a point generated based on a given number of divisions and a control point of the display object. For example, such a simple object is desirable when used for clipping processing.
[0071]
The hit check processing unit 142 performs hit check processing (collision determination) between display objects using the simple object set by the simple object setting unit 140. Taking a fighting game as an example, it is determined whether or not another character's fist hits the character. Taking a car game as an example, it is determined whether or not the car hits another car or a wall.
[0072]
If it is determined that a hit has occurred, processing prepared for hitting is performed. Taking a fighting game as an example, processing is performed to decrease the value of the physical strength parameter of the hit character or to stagger the character in the hit direction. Taking a car game as an example, a process of deforming a car or moving a car in a direction opposite to the collision direction due to a collision with another car or a wall is performed.
[0073]
The clipping processing unit 144 uses the simple object set by the simple object setting unit 140 or the view volume to perform a clipping process on a display object associated with the simple object. For example, when it is determined that the simple object is outside the view volume, drawing (display) of the display object is omitted. When it is determined that the simple object intersects the boundary of the view volume, a process of cutting off the portion of the display object that protrudes outside the view volume is performed. When it is determined that the simple object is completely included in the view volume, the display object is drawn.
[0074]
The drawing unit 150 performs processing for drawing the primitive after geometry processing in the drawing area 174 (frame buffer or the like). More specifically, a polygon having the component point generated by the component point generation unit 130 as a vertex is generated (performation for converting a free-form surface into a polygon is performed), and the polygon is drawn in the drawing area 174.
[0075]
However, when the drawing unit 150 has a function of drawing not only polygons but also free-form surfaces, the generated free-form surfaces may be directly drawn in the drawing area 174.
[0076]
Note that the game system according to the present embodiment may be a system dedicated to the single player mode in which only one player can play, and not only such a single player mode but also a multiplayer mode in which a plurality of players can play. A system may be provided.
[0077]
Further, when a plurality of players play, game images and game sounds to be provided to the plurality of players may be generated using one terminal, or connected via a network (transmission line, communication line) or the like. Alternatively, it may be generated using a plurality of terminals.
[0078]
2. Features of this embodiment
2.1 B-splines and NURBS
First, the B spline curve will be described.
[0079]
The fourth-order (third-order) B-spline curve is generated from four control points. Q for each control point0, Q1, Q2, QThreeThen, the formula of the B spline curve P (t) is
P (t) = N0,4(t) Q0+ N1,4(t) Q1+ N2,4(t) Q2+ N3,4(t) QThree   ... (1)
It becomes.
[0080]
N in equation (1)0,4~ N3,4Is called a blending function, and in the case of a 4th-order B-spline curve,
[0081]
[Expression 1]
Figure 0004329965
[0082]
Mixing function N0,4~ N3,4Is obtained based on a knot vector, which is a vector that gives parameter nodes as a sequence of numerical values. And when the knot interval of the knot vector (the numerical difference between adjacent elements of the knot vector) is constant, it is called a uniform free curve (free curved surface), and when the knot interval is not constant, This is called a non-uniform free curve.
[0083]
For example, a knot vector T of a uniform B-spline curve having four control points and a fourth floor is represented by the following equation.
[0084]
T = [− 3 −2 −1 0 1 2 3 4] (3)
In Expression (3), the numerical difference between adjacent elements of the knot vector is always 1, which is a uniform knot vector.
[0085]
It should be noted that the number of elements, the number of control points, and the rank of the knot vector hold a relational expression of (number of elements) = (number of control points) + (rank).
[0086]
FIG. 2A shows the control point Q.0~ QThreeAn example of a uniform B-spline curve whose shape is specified based on the knot vector of the above equation (3) is shown. When the parameter t of the B-spline curve expression P (t) is changed from 0 to 1, a curve as shown in FIG. 2A is drawn.
[0087]
The blending function of the B-spline can be expressed by a recursive expression recurrence formula (DeBoorCox recurrence formula) as shown below.
[0088]
[Expression 2]
Figure 0004329965
[0089]
Where the knot vector T is generally
T = [t0  t1  t2  ... tM + N-1]
N: Number of control points
M: rank (order +1) (5)
It is expressed.
[0090]
And the mixing function (basis function) N0, M~ Nn, MAnd control point Q0~ QnTherefore, the equation P (t) for the B-spline curve is generally
P (t) = N0, M(t) Q0+ N1, M(t) Q1+… + Nn, M(t) Qn          ... (6)
It is expressed.
[0091]
As apparent from the above equation (6), the j-th control point QjIs the mixing function NJ, Mhave. And NJ, MIs the knot tjTo M (floor) interval.
[0092]
In FIG. 2B, the control point is Q.0~ QFourAn example of a B-spline curve when the number of elements of the knot vector T is 8 is shown.
[0093]
Curve segment 10 has control point Q0~ QThreeAnd the element t of the knot vector T0~ T6Identifies the shape and the parameter t is tThree≦ t <tFourEach point on the curve segment 10 is obtained by changing in the range of.
[0094]
On the other hand, the curve segment 12 has a control point Q.1~ QFourAnd the element t of the knot vector T1~ T7Identifies the shape and the parameter t is tFour≦ t <tFiveEach point on the curve segment 12 is obtained by changing in the range of.
[0095]
Non Uniform and Rationalized B-splines are NURBS (Non Uniform Rational B-Spline).
[0096]
That is, since NURBS is non-uniform, the knot interval of the knot vector T in the above equation (5) is not constant. Therefore, the differential coefficient of the curve (curved surface) can be corrected by the knot interval ratio, and various curves (Bezier, Hermite, etc.) other than the B-spline can be expressed.
[0097]
In NURBS, since rationalization (center projection using homogeneous coordinates) is performed, a weight value for a control point can be set. Therefore, it becomes possible to draw a perfect circle or the like that cannot be drawn by the B spline that is not advantageous.
[0098]
2.2 Coefficient matrix (base matrix)
The above-mentioned DeBoorCox recursion formula (4) used for obtaining the value of the blending function is a recursive expression. Therefore, it is convenient to make a computer calculate.
[0099]
On the other hand, the recurrence formula (4) includes many division processes with a heavy processing load and requires a condition judgment for each recursive loop. Therefore, there is a problem that the processing speed is reduced.
[0100]
Therefore, in the present embodiment, the recurrence formula (4) is not recursively solved, but is expanded into a general cubic equation under the condition of the fourth floor, thereby succeeding in obtaining the value of the blending function at high speed. ing.
[0101]
Thus, by expanding the recurrence formula (4) into a general cubic formula, the blending function becomes the following formula.
[0102]
N0,4= AtThree+ Bt2+ Ct + d
N1,4= EtThree+ Ft2+ Gt + h
N2,4= ItThree+ Jt2+ Kt + 1
N3,4= MtThree+ Nt2+ Ot + p (7)
For example, the blending function N1,4The expansion formula is as follows.
[0103]
[Equation 3]
Figure 0004329965
[0104]
[Expression 4]
Figure 0004329965
[0105]
As apparent from the above equation (9), the knot vector element t1~ TFiveBy substituting the value of, the mixing function N1,4The values of the coefficient sets e, f, g, and h can be obtained in advance.
[0106]
Similarly, the mixing function N0,4, N2,4, N3,4The coefficient sets a, b, c, d, i, j, k, l, m, n, o, and p can be obtained in advance by substituting the values of the knot vector elements.
[0107]
The above formula (7) is
[0108]
[Equation 5]
Figure 0004329965
[0109]
It can be expressed in the form of a matrix. Thereby, the value of the mixing function can be obtained by high-speed matrix calculation.
[0110]
Thereafter, M in the above formula (10)1Is called a coefficient matrix (base matrix; coefficient set in a broad sense).
[0111]
This coefficient matrix M1And control point Q0(Q0 x, Q0 y, Q0 z) ~ QThree(QThree x, QThree y, QThree z), Each point on the free curve (Px(t), Py(t), Pz(t)) can be obtained.
[0112]
Px(t) = N0,4(t) Q0 x+ N1,4(t) Q1 x+ N2,4(t) Q2 x+ N3,4(t) QThree x
Py(t) = N0,4(t) Q0 y+ N1,4(t) Q1 y+ N2,4(t) Q2 y+ N3,4(t) QThree y
Pz(t) = N0,4(t) Q0 z+ N1,4(t) Q1 z+ N2,4(t) Q2 z+ N3,4(t) QThree z
… (11)
Now, coefficient matrix M1The elements a to p (coefficient set) are unique to each control point, and are unchanged as long as the knot vector does not change.
[0113]
Therefore, in the present embodiment, a coefficient matrix is obtained in advance based on a knot vector (or read from an information storage medium or a network) in the process before the process of generating the constituent points of the display object in real time, and the constituent points The coefficient matrix is not calculated during the generation process. By doing so, it is possible to greatly reduce the load of the generation process of the constituent points, and to increase the processing speed.
[0114]
2.3 Rationalization
It is rational that the center point projection using homogeneous coordinates can be performed and the control point Q (x, y, z) can have a weight value w.
[0115]
For example, when the expression of the x component of the above expression (11) is rationalized, the following expression is obtained.
[0116]
[Formula 6]
Figure 0004329965
[0117]
By making the knot vector non-uniform and using a rationalized expression, the B-spline can be made NURBS.
[0118]
For example, when the above equation (11) is expressed in the form of a matrix using the above equation (10), the following equation is obtained.
[0119]
[Expression 7]
Figure 0004329965
[0120]
When the above equation (13) is made advantageous, the following equation is obtained.
[0121]
[Equation 8]
Figure 0004329965
[0122]
In the case of rationalization, each element P based on the above equation (14)x(T) Pw(T), Py(T) Pw(T), Pz(T) PwAfter determining (t), each of these elements is denoted by PwA process of dividing by (t) is required.
[0123]
However, if rationalization is not particularly necessary, it is not necessary to force the advantage. Without rationalization, it becomes impossible to express a perfect circle etc.wSince the division processing by (t) is not necessary, the processing can be speeded up.
[0124]
2.4 Curved surface
In the above, in order to simplify the description, the calculation method in the case of a curve has been mainly described. When expanding to a curved surface, the same processing as in the case of a curve may be performed for each component of the parameters u and v.
[0125]
For example, the mixing function for each component of the parameters u and v is expressed by the following equation.
[0126]
[Equation 9]
Figure 0004329965
[0127]
[Expression 10]
Figure 0004329965
[0128]
In the above equations (15) and (16), Mu is a coefficient (base) matrix for the u component, and Mv is a coefficient matrix for the v component.
[0129]
From the above equations (15) and (16), P which is the x component of Puv (u, v) which is a point on the curved surface.xuv (u, v) is obtained by the following equation.
[0130]
## EQU11 ##
Figure 0004329965
[0131]
Then, when the advantage is made (NURBS), as in the rationalization in the case of the curve, Pxuv (u, v) Pwuv (u, v) is obtained by the following equation.
[0132]
[Expression 12]
Figure 0004329965
[0133]
The process for obtaining the constituent points on the curved surface is summarized as follows.
(Process A)
Based on the knot vector, coefficient matrices Mu and Mv for obtaining a blending function for each control point are obtained.
(Process B)
Affine transformation of control points
(Process C)
Based on the coefficient matrices Mu and Mv and the parameters u and v set to values according to the number of divisions of the curved surface, the blending functions Nu and Nv are obtained.
[0134]
These mixing functions are unique to each control point. However, when the number of divisions changes actively, the mixing function is obtained again each time the number of divisions changes.
(Process D)
Based on the parameters u and v, Puv (u, v) PWFind uv (u, v).
(Process E)
If the set of control points to be used (control point combination) does not change, the process D is repeated while the parameters u and v are sequentially changed.
(Process F)
If the control point set to be used has changed, the process returns to process C.
[0135]
FIG. 3 shows an example of the curved surface patch 20 generated by the method of the present embodiment.
[0136]
Here, the k vector in the u direction is expressed as U [u0, U1, U2... u6, U7...] and the k-direction vector in the v direction is V [v0, V1, V2... v6, V7…]. Then, coefficient matrices Mu and Mv used for generating the curved patch 20 are knot vector elements u, respectively.0~ U6, V0~ V6It is required based on.
[0137]
As is apparent from the above equation (18), each point on the curved patch 20 is a control point Q.00~ Q33And mixing function Nu0,4~ Nu3,4, Nv0,4~ Nv3,4It is required based on. In this case, the domain of the parameter u is uThree≦ u <uFourAnd the domain of parameter v is vThree≦ v <vFourbecome.
[0138]
On the other hand, when generating the curved patch 22, the set of control points to be used is Q00~ Q33To Q01~ Q34Changes to. Each point on the curved patch 22 is a control point Q.01~ Q34And mixing function Nu1,4~ Nu4,4, Nv0,4~ Nv3,4It is required based on. In this case, the domain of the parameter u is uFour≦ u <uFiveAnd the domain of parameter v is vThree≦ v <vFourbecome.
[0139]
The constituent points of the curved surface patch 20 generated by the present embodiment are set at the vertices of the polygon, and the polygon constituted by these vertices is displayed on the screen.
[0140]
2.5 Variable control of the number of divisions
In the present embodiment, for example, according to the distance from the viewpoint (game processing result in a broad sense), the division number of the display object is changed seamlessly.
[0141]
Here, the number of divisions is a parameter that determines the generation interval of component points when generating component points based on control points. In the present embodiment, when the constituent points of the free-form surface are obtained by sequentially changing the parameters u and v in the above equation (17), the slight changes Δu and Δv of the parameters u and v are used as the parameter of the number of divisions. It is used as. These Δu and Δv are seamlessly changed according to the distance from the viewpoint.
[0142]
Specifically, as shown in FIG. 4, the division number (precision) changes seamlessly based on the division number that changes according to the distance from the viewpoint and the control points included in the model data. A constituent point of the display object is generated.
[0143]
Thus, for example, when the distance between the viewpoint and the display object is long, a display object with a small number of divisions as shown in A1 of FIG. 4 is displayed, and in the middle case, as shown in A2 of FIG. A display with a medium number of divisions is displayed. Further, when the distance between the viewpoint and the display object is short, a display object having a large number of divisions as shown in A3 of FIG.
[0144]
For example, in the LOD of the conventional polygon model, as shown in FIG. 5A, a plurality of models such as a short distance model, a medium distance model, and a long distance model are prepared as models representing a display object, The model used was switched according to the distance from the viewpoint.
[0145]
However, in this conventional example, as shown in FIG. 5B, model data is required for the number of models to be prepared. Therefore, the used storage capacity of the model data increases.
[0146]
There is also a problem that the screen is shocked when the model is switched and the player notices that the model has been switched. If the number of models is further increased in order to solve this problem, the problem of increasing the amount of model data becomes more serious.
[0147]
On the other hand, in the present embodiment, images of display objects having different numbers of divisions (precision levels) as shown in A1, A2, and A3 in FIG. 4 can be generated based on the same control point data included in the model data. Accordingly, it is possible to reduce the amount of model data including control point data, and resources such as an information storage medium that stores model data and a network that transmits model data can be used efficiently.
[0148]
Moreover, according to this embodiment, the precision of a display object can be changed seamlessly by changing the number of divisions seamlessly. Therefore, unlike the conventional example of FIG. 5A, no shock occurs on the screen even when the number of divisions changes, and the player does not have to notice that the number of divisions has changed. In addition, even when the number of divisions is changed seamlessly in this way, the data amount of the control point is not changed, so that the data amount of the model data as shown in FIG. 5B is extremely increased. There is no problem.
[0149]
Further, according to the present embodiment, an image of a display object having a very smooth curved surface can be generated by increasing the number of divisions. In particular, as described above, a coefficient set (coefficient matrix) of a function of a non-uniform free-form surface (free-form curve) is prepared at a stage prior to the process of sequentially generating each constituent point of the free-form surface while changing parameters. By doing so, the generation process of the constituent points can be greatly speeded up. Accordingly, it is possible to generate an image of a display object with high precision in real time, which cannot be generated by a conventional game system using a polygon model.
[0150]
2.6 Hit check
The conventional game system has the following problems when performing a hit check between display objects.
[0151]
For example, in FIG. 6A, when it is checked whether the display object OB1 (character) is hit by the display object OB2 (other character), conventionally, a bounding box containing the display object OB1 is used. (Hereinafter referred to as BBOX) is prepared in advance in association with the display object OB1. Then, the hit check process is realized by determining whether or not the fist of OB2 hits (collision) the BBOX.
[0152]
However, as is apparent from FIG. 6A, the BBOX is made larger than the display object OB1. Therefore, in practice, it is determined that the punch has been hit even though the fist of the display object OB2 is not in contact with the body of the display object OB1. Therefore, the player feels unnatural and the virtual reality of the player is impaired. In this case, for example, a method of setting BBOX for each part of the display object is also conceivable, but even if this method is adopted, it is difficult to realize accurate determination processing.
[0153]
Therefore, in this embodiment, as shown in FIG. 6B, a simple object SOB generated by a given specific number of divisions and a control point of the display object OB1 is used as a display object as a simple object for hit check. Prepare it in correspondence. Then, the hit check process is realized by determining whether or not the fist of the display object OB2 has hit the simple object SOB.
[0154]
Thus, if the simple object SOB is generated with a given number of divisions and the control points of the display object OB1, a simple object SOB having a shape close to the shape of OB1 can be obtained. Therefore, as apparent from FIG. 6B, when the fist of the display object OB2 actually comes into contact with the body of the display object OB1, it is determined that the punch has been hit. Therefore, the player does not feel unnatural and can increase the player's virtual reality.
[0155]
Now, when the method as described above is adopted, one problem is how to control the number of divisions of the simple object.
[0156]
Therefore, in the present embodiment, the first and second division numbers are controlled so that the second division number of the simple object also changes in accordance with the change in the first division number of the display object. Alternatively, the first and second division numbers are controlled so that the second division number of the simple object is equal to or less than the first division number of the display object.
[0157]
For example, in FIG. 7, the display object and the simple object corresponding to the display object are generated by the same control point. More specifically, the constituent point generation unit 130 of FIG. 1 generates constituent points of both the display object and the simple object based on the same control point and a given number of divisions.
[0158]
When the number of divisions of the display object is medium as shown in B1 of FIG. 7, an object with a small number of divisions as shown in B2 is used as a simple object of the display object.
[0159]
On the other hand, for example, when the distance between the viewpoint and the display object becomes short and the number of divisions of the display object increases as shown in B3 of FIG. 7, the number of divisions of the simple object increases accordingly as shown in B4. Set the number of object divisions to medium.
[0160]
When the distance between the viewpoint and the display object is short, the player can more easily recognize whether or not the opponent's attack has hit. In such a case, if a simple object with a small number of divisions as shown in B2 of FIG. 7 is used, it is determined that the opponent's attack that does not hit the player's appearance hits the display object. Therefore, the player feels unnatural and detracts from the player's virtual reality.
[0161]
In the present embodiment, when the distance between the viewpoint and the display object is reduced as described above, and the number of divisions of the display object increases as shown in B3 of FIG. 7, the number of divisions of the simple object is linked as shown in B4. Also try to increase. Therefore, the hit check process with the opponent's attack is also performed more accurately than when the simple object shown in B2 is used. As a result, the player does not feel unnatural and can improve the player's virtual reality.
[0162]
On the other hand, when the distance between the viewpoint and the display object is long, even if a simple object with a small number of divisions as shown in B2 of FIG. 7 is used, the player can determine whether the opponent's attack hits or not. This is not a problem.
[0163]
When the distance between the viewpoint and the display object is long, the number of primitive surfaces to be drawn is reduced by reducing the number of divisions of the display object and the simple object. It is possible to respond to a request for real-time processing to complete processing.
[0164]
The change in the number of divisions of the display object and the change in the number of divisions of the simple object do not need to be completely linked. For example, when the display object division number is changed from N1 to N2, the simple object division is not performed until the display object division number is changed from N2 to N3 without changing the simple object division number. The number may be changed.
[0165]
Further, the processing condition for changing the number of divisions of the display object and the processing condition for changing the simple object may be set independently of each other. For example, the parameter for changing the number of divisions of the display object is different from the parameter for changing the number of divisions of the simple object, and the timing when the number of divisions of the display object changes and the timing when the division number of the simple object changes are shifted. May be.
[0166]
Further, it is not always necessary to make the number of divisions of the simple object smaller than the number of divisions of the display object. For example, when the distance from the viewpoint is far, the number of divisions of the simple object is equal to the number of divisions of the display object (for example, the display object itself is used as a simple object), and only when the distance from the viewpoint approaches, You may make it make the division | segmentation number of a simple object smaller than the division | segmentation number of a display thing.
[0167]
On the other hand, the number of divisions of the simple object may be made larger than the number of divisions of the display object under specific conditions. For example, if it is far from the viewpoint, the number of divisions of the simple object is made smaller than the number of divisions of the display object, while if it is close to the viewpoint, the division number of the simple object is made larger than the division number of the display object. It may be.
[0168]
In the above description, the display object and the simple object are divided based on the distance from the viewpoint. However, the display object and the simple object are divided based on the game processing result other than the distance from the viewpoint. The number may be changed.
[0169]
2.7 Simple object settings
One feature of the present embodiment is that a simple object generated based on a given specific number of divisions and a control point of a display object is prepared in association with the display object, and this simple object is used. In other words, various determination processes (hit check, clipping process, etc.) relating to the display object are performed.
[0170]
In this case, as a method for preparing a simple object, the following method can be considered.
[0171]
For example, in FIG. 8, a display object is generated in real time based on a given number of divisions and control points as indicated by C1. Here, the display object in FIG. 8 is a display object representing a topography (map) such as a mountain.
[0172]
In FIG. 8, as shown in C <b> 2, a simple object is prepared by reading simple object data generated based on a given specific number of divisions and a display object control point from an information storage medium or network. To do. Then, using the prepared simple object, various determination processes relating to the display object such as hit check and clipping process are performed.
[0173]
In this case, since the simple object is generated based on the control points of the display object, the simple object has a shape close to the shape of the display object. Therefore, more accurate determination processing can be performed by using such a simple object.
[0174]
In order to effectively use information storage media and network resources, it is desirable to reduce the number of simple objects to be prepared.
[0175]
Moreover, in FIG. 9, the display thing is produced | generated in real time based on the control point and the given division | segmentation number, as shown to D1.
[0176]
In FIG. 9, as shown in D <b> 2, a simple object is prepared in real time by generating a simple object based on a given specific number of divisions and a display object control point. Then, using the prepared simple object, various determination processes relating to the display object such as hit check and clipping process are performed.
[0177]
In this case, since the simple object has a shape close to the shape of the display object, more accurate determination processing can be performed.
[0178]
In order to increase the processing speed and meet the demand for real-time processing, it is desirable to reduce the number of simple objects to be prepared.
[0179]
Further, it is desirable to change the number of divisions of the simple object in accordance with the change in the number of divisions of the display object. Further, it is desirable that the number of divisions of the simple object is equal to or less than the number of divisions of the display object.
[0180]
For example, when simple object data is read from an information storage medium (network) as described with reference to FIG. 8, a plurality of simple objects having different numbers of divisions are prepared in association with one display object. Then, the simple object to be used may be switched according to the change in the number of divisions of the display object.
[0181]
On the other hand, when the simple object is generated in real time as described in FIG. 9, as described in FIG. 7, if the number of divisions of the simple object is changed in real time according to the change in the number of divisions of the display object. Good.
[0182]
As a simple object, an object having a point directly generated based on a given number of divisions and a display object control point may be used, or a given number of divisions and display object control may be used. A bounding box BBOX (bounding volume in a broad sense) generated based on the points may be used.
[0183]
For example, as shown in FIG. 10, when the hit check process is performed using a simple object, the points generated based on the given number of divisions and the control points of the display object as shown in E1 are directly composed points. It is desirable to use the object as a simple object. This is because if such a simple object is used, as described with reference to FIGS. 6A and 6B, an accurate hit check process can be realized as compared with the case of using BBOX.
[0184]
In this case, it is desirable to use a simple object with a small number of divisions in order to effectively use resources such as an information storage medium and a network, or to meet a request for real-time processing.
[0185]
Also, as shown in FIG. 11, when clipping processing is performed using a simple object, it is desirable to use a BBOX generated based on a given number of divisions and control points of a display object as a simple object. This is because in the clipping process, it is desired to use a simple object that completely contains the display object so that an error does not occur in the inside / outside determination process of the display object in the view volume.
[0186]
FIG. 12 shows an example of a BBOX generation method.
[0187]
In FIG. 12, first, the maximum values XMAX, YMAX, ZMAX, and the minimum values XMIN, YMIN, ZMIN of the constituent points of the display object generated by the given number of divisions and control points are obtained. Then, by obtaining eight component points BP0 to BP7 having these (XMAX, YMAX, ZMAX) and (XMIN, YMIN, ZMIN) in each coordinate component, a BBOX containing a display object as shown in FIG. 12 is obtained. obtain.
[0188]
Note that it is desirable to generate the BBOX based on the constituent points of the display object having a large number of divisions, as indicated by F1 in FIG. This is because it is possible to guarantee that the display object is included in the BBOX even when the number of divisions of the display object changes seamlessly.
[0189]
However, when the BBOX is not included in the model data but is generated in real time during the game based on the obtained component points, the BBOX is generated based on the component points of the display object with a small number of divisions. It is desirable. This is because a display object with a small number of divisions has a small number of constituent points, so that the processing load for obtaining a BBOX constituent point from the constituent points of the display object is small, and a request for real-time processing can be met.
[0190]
Further, the BBOX may be generated based on the control points of the display object, not the constituent points of the display object. In this way, since the constituent points of the BBOX can be obtained based on a small number of control points, the burden of the BBOX generation process can be reduced.
[0191]
3. Processing of this embodiment
Next, a detailed processing example of the present embodiment will be described with reference to the flowcharts of FIGS.
[0192]
FIG. 13 is a flowchart relating to processing for variably controlling the number of divisions between the display object and the simple object.
[0193]
First, model data including control point data is read (step S1). Then, for example, affine transformation is performed on a control point or the like (step S2).
[0194]
Next, the division number of the display object and the division number of the simple object are determined by the method described with reference to FIG. 7 and the like (step S3).
[0195]
Next, a constituent point of the display object is generated based on the division number of the display object determined in step S3 and the control point of the display object after the affine transformation (step S4). Further, based on the number of divisions of the simple object determined in step S3 and the control points of the display object after the affine transformation, a simple object composing point is generated (step S5).
[0196]
Next, as described with reference to FIG. 11, clipping processing is performed using a view volume and a simple object (such as BBOX) (step S6). When it is determined by clipping processing that a part or all of the display object is in the view volume, a process of drawing the display object in the drawing area (frame buffer) is performed (step S7).
[0197]
Next, as described with reference to FIGS. 6B and 10, a hit check process with another display object is performed using a simple object (step S8). Then, it is determined whether or not the other display object has been hit (step S9). If it is determined that the hit has been made, the process for hitting (the process of decreasing the value of the physical strength parameter, the direction of the hit is changed) Process) (step S10).
[0198]
FIG. 14 is a flowchart relating to the process of determining the number of divisions in step S3 of FIG.
[0199]
First, the distance L between the display object and the viewpoint is obtained (step S11). In this case, the points for which the distance from the viewpoint is obtained include a representative point preset in the display object, a point specified by the control point of the display object, or a point specified by the simple object of the display object. Can think.
[0200]
Next, Δu0 and Δv0 which are parameters indicating the number of divisions of the display object are obtained based on the distance L obtained in step S11 (step S12). Next, Δu1 and Δv1, which are parameters indicating the number of divisions of the simple object, are obtained based on the distance L (step S13). In this case, as described with reference to FIG. 7, the relational expressions Δu1 ≧ Δu0 and Δv1 ≧ Δv0 are established so that the number of divisions of the simple object is equal to or less than the number of divisions of the display object.
[0201]
15 and 16 are flowcharts related to the BBOX generation processing.
[0202]
First, N = 0 is set (step S32).
[0203]
Next, it is determined whether or not N = NEND (step S33). If not NEND, the coordinates (X, Y, Z) of the constituent point P [N] of the display object are read (step S34).
[0204]
Next, it is determined whether or not N = 0 (step S35). If N = 0, XMAX = XMIN = X, YMAX = YMIN = Y, and ZMAX = ZMIN = Z are set (step S36).
[0205]
On the other hand, if N is not 0, the process proceeds to step S37 to determine whether XMAX <X or XMIN> X. When XMAX <X, XMAX = X is set. When XMIN> X, XMIN = X is set. The same processing is performed for the Y and Z coordinates.
[0206]
Next, N is incremented by 1 and the processing of steps S33 to S38 is repeated (step S38). If it is determined in step S33 that N = NEND, based on the finally obtained (XMAX, YMAX, ZMAX), (XMIN, YMIN, ZMIN), BBOX component points BP0 to BP0 are as follows. BP7 is obtained (step S39 in FIG. 16).
[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)
By doing so, as described with reference to FIG. 12, a BBOX containing a display object can be generated.
[0208]
FIG. 17 is a flowchart regarding processing (steps S4 and S5 in FIG. 13) for generating constituent points of a display object and a simple object (free curved surface).
[0209]
First, parameters u and v are set to u = usstart and v = vstart (step S40). In the example of FIG. 18, start = uThree, Vstart = vThreebecome.
[0210]
Next, it is determined whether or not v = vend. If not v = vend, it is determined whether or not u = uend (steps S41 and S42). In the example of FIG. 18, uend = u6, Vend = v6become.
[0211]
If u = uend is not satisfied, a coefficient matrix and control points corresponding to the domain to which the current u and v values belong are read (step S43).
[0212]
Next, tessellation processing is performed for obtaining the NURBS constituent point P at the current values of u and v in accordance with the aforementioned equation (18) (step S44).
[0213]
Next, the division number parameter Δu in the u direction is added to the parameter u to change u (step S45), and the process returns to step S42. Note that Δu is obtained in steps S12 and S13 of FIG. 14 (Δu = Δu0 for a display object, Δu = Δu1 for a simple object).
[0214]
If u = uend is determined in step S42, the process returns to u = start, and the parameter v in the v direction is added to the parameter v to change v (step S46). Note that Δv is obtained in steps S12 and S13 of FIG. 14 (Δv = Δv0 for a display object, Δv = Δv1 for a simple object). Then, it is determined whether or not v = vend (step S41), and the processes of steps S42 to S46 are repeated until v = vend.
[0215]
For example, as shown in G1 of FIG.Three≦ u <uFour, VThree≦ v <vFourThe control point Q from the NURBS object data.00~ Q33The data of the coefficient matrices Mu0 and Mv0 are read out. And these control points Q00~ Q33Based on the coefficient matrices Mu0 and Mv0, the constituent points of the curved surface patch 30 shown in FIG. 20 are obtained.
[0216]
Further, as shown in G2 of FIG.Four≦ u <uFive, VThree≦ v <vFourThe control point Q from the NURBS object data.01~ Q34The data of the coefficient matrices Mu1 and Mv0 are read out. And these control points Q01~ Q34Based on the coefficient matrices Mu1 and Mv0, the constituent points of the curved patch 32 shown in FIG. 20 are obtained.
[0217]
As shown in G3 of FIG. 19, the domain of u and v is uFive≦ u <u6, VThree≦ v <vFourThe control point Q from the NURBS object data.02~ Q35The data of the coefficient matrices Mu2 and Mv0 are read out. And these control points Q02~ Q35Based on the coefficient matrices Mu2 and Mv0, the constituent points of the curved surface patch 34 shown in FIG. 20 are obtained.
[0218]
As described above, the control point Q00~ Q55Thus, the constituent points of all the curved surface patches 30 to 46 to be generated are obtained.
[0219]
4). Hardware configuration
Next, an example of a hardware configuration capable of realizing the present embodiment will be described with reference to FIG.
[0220]
The main processor 900 operates based on a program stored in the CD 982 (information storage medium), a program transferred via the communication interface 990, or a program stored in the ROM 950 (one of information storage media). Various processes such as processing, image processing, and sound processing are executed.
[0221]
The coprocessor 902 assists the processing of the main processor 900, has a product-sum calculator and a divider capable of high-speed parallel calculation, and executes matrix calculation (vector calculation) at high speed. For example, if a physical simulation for moving or moving an object requires processing such as matrix operation, a program operating on the main processor 900 instructs (requests) the processing to the coprocessor 902. )
[0222]
The geometry processor 904 performs geometry processing such as coordinate transformation, perspective transformation, light source calculation, and curved surface generation, has a product-sum calculator and a divider capable of high-speed parallel computation, and performs matrix computation (vector computation). Run fast. For example, when processing such as coordinate transformation, perspective transformation, and light source calculation is performed, a program operating on the main processor 900 instructs the geometry processor 904 to perform the processing.
[0223]
The data decompression processor 906 performs a decoding process for decompressing the compressed image data and sound data, and a process for accelerating the decoding process of the main processor 900. As a result, a moving image compressed by the MPEG method or the like can be displayed on the opening screen, the intermission screen, the ending screen, or the game screen. Note that the image data and sound data to be decoded are stored in the ROM 950 and the CD 982 or transferred from the outside via the communication interface 990.
[0224]
The drawing processor 910 performs drawing (rendering) processing of an object composed of primitive surfaces such as polygons and curved surfaces at high speed. When drawing an object, the main processor 900 uses the function of the DMA controller 970 to pass the object data to the drawing processor 910 and transfer the texture to the texture storage unit 924 if necessary. Then, the rendering processor 910 renders the object in the frame buffer 922 at high speed while performing hidden surface removal using a Z buffer or the like based on the object data and texture. The drawing processor 910 can also perform α blending (translucent processing), depth cueing, mip mapping, fog processing, trilinear filtering, anti-aliasing, shading processing, and the like. When an image for one frame is written in the frame buffer 922, the image is displayed on the display 912.
[0225]
The sound processor 930 includes a multi-channel ADPCM sound source and the like, and generates high-quality game sounds such as BGM, sound effects, and sounds. The generated game sound is output from the speaker 932.
[0226]
Operation data from the game controller 942, save data from the memory card 944, and personal data are transferred via the serial interface 940.
[0227]
The ROM 950 stores system programs and the like. In the case of an arcade game system, the ROM 950 functions as an information storage medium, and various programs are stored in the ROM 950. A hard disk may be used instead of the ROM 950.
[0228]
The RAM 960 is used as a work area for various processors.
[0229]
The DMA controller 970 controls DMA transfer between the processor and memory (RAM, VRAM, ROM, etc.).
[0230]
The CD drive 980 drives a CD 982 (information storage medium) in which programs, image data, sound data, and the like are stored, and enables access to these programs and data.
[0231]
The communication interface 990 is an interface for transferring data to and from the outside via a network. In this case, as a network connected to the communication interface 990, a communication line (analog telephone line, ISDN), a high-speed serial bus, or the like can be considered. By using a communication line, data transfer via the Internet becomes possible. Further, by using the high-speed serial bus, data transfer with other game systems becomes possible.
[0232]
All of the means of the present invention may be executed by hardware alone, or may be executed only by a program stored in an information storage medium or a program distributed via a communication interface. Alternatively, it may be executed by both hardware and a program.
[0233]
When each means of the present invention is executed by both hardware and a program, a program for executing each means of the present invention using hardware is stored in the information storage medium. Become. More specifically, the program instructs each processor 902, 904, 906, 910, 930, etc., which is hardware, and passes data if necessary. Each processor 902, 904, 906, 910, 930, etc. executes each means of the present invention based on the instruction and the passed data.
[0234]
FIG. 22A shows an example in which the present embodiment is applied to an arcade game system. The player enjoys the game by operating the lever 1102, the button 1104, and the like while viewing the game image displayed on the display 1100. Various processors and various memories are mounted on the built-in system board (circuit board) 1106. Information (program or data) for executing each means of the present invention is stored in a memory 1108 which is an information storage medium on the system board 1106. Hereinafter, this information is referred to as storage information.
[0235]
FIG. 22B shows an example in which the present embodiment is applied to a home game system. The player enjoys the game by operating the game controllers 1202 and 1204 while viewing the game image displayed on the display 1200. In this case, the stored information is stored in a CD 1206 or a memory card 1208, 1209, which is an information storage medium that is detachable from the main system.
[0236]
FIG. 22C shows a host device 1300 and terminals 1304-1 to 1304-n connected to the host device 1300 via a network 1302 (a small-scale network such as a LAN or a wide area network such as the Internet). An example of applying this embodiment to a system including In this case, the storage information is stored in an information storage medium 1306 such as a magnetic disk device, a magnetic tape device, or a memory that can be controlled by the host device 1300, for example. When the terminals 1304-1 to 1304-n can generate game images and game sounds stand-alone, the host device 1300 receives a game program and the like for generating game images and game sounds from the terminal 1304-. 1 to 1304-n. On the other hand, if it cannot be generated stand-alone, the host device 1300 generates a game image and a game sound, which is transmitted to the terminals 1304-1 to 1304-n and output at the terminal.
[0237]
In the case of the configuration shown in FIG. 22C, each unit of the present invention may be executed in a distributed manner between the host device (server) and the terminal. The storage information for executing each means of the present invention may be distributed and stored in the information storage medium of the host device (server) and the information storage medium of the terminal.
[0238]
The terminal connected to the network may be a home game system or an arcade game system. A portable information storage device capable of exchanging information with the arcade game system and exchanging information with the arcade game system when the arcade game system is connected to the network. It is desirable to use (memory card, portable game device).
[0239]
The present invention is not limited to that described in the above embodiment, and various modifications can be made.
[0240]
For example, in the invention according to the dependent claims of the present invention, a part of the constituent features of the dependent claims can be omitted. Moreover, the principal part of the invention according to one independent claim of the present invention can be made dependent on another independent claim.
[0241]
Although the present embodiment mainly describes the case of NURBS, the present invention can also be applied to free-form surfaces other than NURBS, subdivision surfaces, and the like.
[0242]
In the present embodiment, the case where the number of divisions of the display object and the simple object is changed according to the distance from the viewpoint has been mainly described. However, the present invention is not limited to this, and the display is performed according to the game processing result or the like. The number of divisions of objects and simple objects can be changed.
[0243]
In addition, a case where a parameter equivalent to the number of divisions is changed according to the game processing result or the like is also included in the scope of the present invention.
[0244]
In addition, as the determination processing performed using the simple object, hit check processing, clipping processing, and the like are particularly desirable, but the determination processing to which the present invention is applied is not limited thereto.
[0245]
Further, the method described in the present embodiment is also particularly desirable for the simple object setting method and the display object deformation method, but the method is not limited to this.
[0246]
In the present embodiment, the obtained component point is set as the vertex of the polygon and the image is drawn. However, the obtained curved surface component point may be directly drawn.
[0247]
The present invention can also be applied to various games (such as fighting games, shooting games, robot fighting games, sports games, competitive games, role playing games, music playing games, dance games, etc.).
[0248]
The present invention is also applicable to various game systems (image generation systems) such as a business game system, a home game system, a large attraction system in which a large number of players participate, a simulator, a multimedia terminal, and a system board for generating game images. Applicable.
[Brief description of the drawings]
FIG. 1 is an example of a block diagram of a game system according to the present embodiment.
FIGS. 2A and 2B are diagrams showing examples of B-spline curves. FIG.
FIG. 3 is a diagram illustrating an example of a curved patch generated according to the present embodiment.
FIG. 4 is a diagram for explaining a method of changing the number of divisions of a display object according to a distance from a viewpoint.
FIGS. 5A and 5B are diagrams for explaining a conventional LOD method using a polygon model. FIGS.
FIG. 6A is a diagram for explaining a problem of conventional hit check processing, and FIG. 6B is a diagram for explaining hit check processing of the present embodiment. .
FIG. 7 is a diagram for explaining a technique for changing the number of divisions of a simple object in accordance with a change in the number of divisions of a display object.
FIG. 8 is a diagram for explaining a method of preparing a simple object corresponding to a display object by reading simple object data from an information storage medium or a network.
FIG. 9 is a diagram for explaining a method of preparing a simple object corresponding to a display object by generating a simple object in real time.
FIG. 10 is a diagram for explaining a simple object optimal for hit check processing;
FIG. 11 is a diagram for describing a simple object that is optimal for clipping processing;
FIG. 12 is a diagram for explaining a BBOX generation method;
FIG. 13 is a flowchart illustrating a detailed processing example of the present embodiment.
FIG. 14 is a flowchart illustrating a detailed processing example of the present embodiment.
FIG. 15 is a flowchart illustrating a detailed processing example of the present embodiment.
FIG. 16 is a flowchart illustrating a detailed processing example of the present embodiment.
FIG. 17 is a flowchart showing a detailed processing example of the present embodiment.
FIG. 18 is a diagram for explaining control points, a coefficient matrix, and a knot vector.
FIG. 19 is a diagram for explaining a method of reading out control points and a coefficient matrix based on a domain to which a parameter value belongs.
FIG. 20 is a diagram illustrating an example of a curved patch generated according to the present embodiment.
FIG. 21 is a diagram illustrating an example of a hardware configuration capable of realizing the present embodiment.
FIGS. 22A, 22B, and 22C are diagrams illustrating examples of various types of systems to which the present embodiment is applied.
[Explanation of symbols]
10, 12 Curve segment
20, 22 Curved patch
30-46 curved patch
OB1, OB2 display
SOB simple object
100 processor
102 Game processor
110 Model data reading section
112 Deformation part
114 Affine transformation unit
120 Number of division control unit
122 Distance calculator
130 Component point generator
140 Simple object setting section
142 Hit Check Processing Unit
144 Clipping processing unit
150 Drawing part
160 Operation unit
170 Storage unit
172 Main memory
174 Drawing area
180 Information storage medium
190 Display
192 sound output section
194 Portable information storage device
196 Communication Department

Claims (18)

画像生成を行うゲームシステムであって、
画面に表示される表示物の構成点の生成間隔を決めるための分割数を可変に制御する分割数制御手段と、
可変に制御される前記分割数と、表示物の形状を定義するための点である制御点とに基づき、前記分割数により決められる生成間隔で表示物の構成点をリアルタイムに生成する構成点生成手段とを含み、
前記分割数制御手段が、
表示物の分割数である第1の分割数の変化に応じて、表示物に対応する簡易オブジェクトの分割数である第2の分割数も変化するように、前記第1、第2の分割数を制御し、
前記構成点生成手段が、
可変に制御される前記第1、第2の分割数と、表示物の制御点とに基づき、前記第1、第2の分割数により決められる生成間隔で表示物、簡易オブジェクトの構成点をリアルタイムに生成することを特徴とするゲームシステム。
A game system for generating images,
A division number control means for variably controlling the number of divisions for determining the generation interval of the constituent points of the display object displayed on the screen;
Component point generation that generates component points of a display object in real time at a generation interval determined by the number of divisions based on the number of divisions variably controlled and a control point that is a point for defining the shape of the display object Means,
The division number control means is
The first and second division numbers so that the second division number, which is the division number of the simple object corresponding to the display object, also changes according to the change in the first division number, which is the division number of the display object. Control
The component point generating means is
Based on the first and second division numbers variably controlled and the display object control points, the constituent points of the display object and the simple object are generated in real time at the generation interval determined by the first and second division numbers. A game system characterized in that it is generated.
画像生成を行うゲームシステムであって、
画面に表示される表示物の構成点の生成間隔を決めるための分割数を可変に制御する分割数制御手段と、
可変に制御される前記分割数と、表示物の形状を定義するための点である制御点とに基づき、前記分割数により決められる生成間隔で表示物の構成点をリアルタイムに生成する構成点生成手段とを含み、
前記分割数制御手段が、
表示物に対応する簡易オブジェクトの分割数である第2の分割数が、表示物の分割数である第1の分割数以下となるように、前記第1、第2の分割数を可変に制御し、
前記構成点生成手段が、
可変に制御される前記第1、第2の分割数と、表示物の制御点とに基づき、前記第1、第2の分割数により決められる生成間隔で表示物、簡易オブジェクトの構成点をリアルタイムに生成することを特徴とするゲームシステム。
A game system for generating images,
A division number control means for variably controlling the number of divisions for determining the generation interval of the constituent points of the display object displayed on the screen;
Component point generation that generates component points of a display object in real time at a generation interval determined by the number of divisions based on the number of divisions variably controlled and a control point that is a point for defining the shape of the display object Means,
The division number control means is
The first and second division numbers are variably controlled so that the second division number that is the division number of the simple object corresponding to the display object is equal to or less than the first division number that is the division number of the display object. And
The component point generating means is
Based on the first and second division numbers variably controlled and the display object control points, the constituent points of the display object and the simple object are generated in real time at the generation interval determined by the first and second division numbers. A game system characterized in that it is generated.
画像生成を行うゲームシステムであって、
画面に表示される表示物の構成点の生成間隔を決める分割数と、表示物の形状を定義するための点である制御点とに基づき、前記分割数により決められる生成間隔で表示物の構成点をリアルタイムに生成する構成点生成手段と、
所与の分割数と表示物の制御点とに基づき生成される簡易オブジェクトを、表示物に対応づけて用意する手段と、
表示物に対応づけられた前記簡易オブジェクトを用いて、表示物に対する所与の判定処理を行う手段と、を含み、
表示物の分割数である第1の分割数の変化に応じて、簡易オブジェクトの分割数である第2の分割数も変化することを特徴とするゲームシステム。
A game system for generating images,
Based on the number of divisions that determine the generation interval of the constituent points of the display object displayed on the screen and the control points that are the points for defining the shape of the display object, the composition of the display object is determined at the generation interval determined by the number of divisions. Component point generating means for generating points in real time;
Means for preparing a simple object generated based on a given number of divisions and a control point of a display object in association with the display object;
Means for performing a given determination process on the display object using the simple object associated with the display object ,
A game system characterized in that the second division number, which is the division number of the simple object, also changes in accordance with the change in the first division number, which is the division number of the display object .
画像生成を行うゲームシステムであって、
画面に表示される表示物の構成点の生成間隔を決める分割数と、表示物の形状を定義するための点である制御点とに基づき、前記分割数により決められる生成間隔で表示物の構成点をリアルタイムに生成する構成点生成手段と、
所与の分割数と表示物の制御点とに基づき生成される簡易オブジェクトを、表示物に対応づけて用意する手段と、
表示物に対応づけられた前記簡易オブジェクトを用いて、表示物に対する所与の判定処理を行う手段と、を含み、
簡易オブジェクトの分割数である第2の分割数が、表示物の分割数である第1の分割数以下になることを特徴とするゲームシステム。
A game system for generating images,
Based on the number of divisions that determine the generation interval of the constituent points of the display object displayed on the screen and the control points that are the points for defining the shape of the display object, the composition of the display object is determined at the generation interval determined by the number of divisions. Component point generating means for generating points in real time;
Means for preparing a simple object generated based on a given number of divisions and a control point of a display object in association with the display object;
Means for performing a given determination process on the display object using the simple object associated with the display object ,
A game system , wherein a second division number that is a division number of a simple object is equal to or less than a first division number that is a division number of a display object .
請求項3又は4のいずれかにおいて、
所与の分割数と表示物の制御点とに基づき生成された簡易オブジェクトのデータを情報記憶媒体から読み込む又はネットワークを介して読み込むことで、表示物の簡易オブジェクトが用意されることを特徴とするゲームシステム。
In any of claims 3 or 4 ,
A simple object of a display object is prepared by reading data of a simple object generated based on a given number of divisions and a control point of the display object from an information storage medium or via a network. Game system.
請求項3又は4のいずれかにおいて、
所与の分割数と表示物の制御点とに基づき簡易オブジェクトをリアルタイムに生成することで、表示物の簡易オブジェクトが用意されることを特徴とするゲームシステム。
In any of claims 3 or 4 ,
A game system characterized in that a simple object of a display object is prepared by generating a simple object in real time based on a given number of divisions and a control point of the display object.
請求項3乃至のいずれかにおいて、
前記所与の判定処理がヒットチェック処理である場合には、所与の分割数と表示物の制御点とに基づき生成される点を構成点とするオブジェクトが、表示物の簡易オブジェクトとして用いられることを特徴とするゲームシステム。
In any one of Claims 3 thru | or 6 .
When the given determination process is a hit check process, an object having a point generated based on the given number of divisions and the control point of the display object is used as a simple object of the display object. A game system characterized by that.
請求項3乃至のいずれかにおいて、
前記所与の判定処理がクリッピング処理である場合には、所与の分割数と表示物の制御点とに基づき生成される点により求められるバウンディングボリュームが、表示物の簡易オブジェクトとして用いられることを特徴とするゲームシステム。
In any one of Claims 3 thru | or 6 .
When the given determination process is a clipping process, the bounding volume obtained from the points generated based on the given number of divisions and the control point of the display object is used as a simple object of the display object. Feature game system.
請求項1乃至のいずれかにおいて、
前記制御点のデータが、表示物のモデルデータの中に含まれ、
前記制御点のデータを含むモデルデータを、情報記憶媒体から読み込む又はネットワークを介して読み込む手段を含むことを特徴とするゲームシステム。
In any one of claims 1 to 8,
The control point data is included in the display object model data,
A game system comprising means for reading model data including data of the control points from an information storage medium or via a network.
コンピュータが使用可能な情報記憶媒体であって、
画面に表示される表示物の構成点の生成間隔を決めるための分割数を可変に制御する分割数制御手段と、
可変に制御される前記分割数と、表示物の形状を定義するための点である制御点とに基づき、前記分割数により決められる生成間隔で表示物の構成点をリアルタイムに生成する構成点生成手段と、
を実行するためのプログラムを含み、
前記分割数制御手段が、
表示物の分割数である第1の分割数の変化に応じて、表示物に対応する簡易オブジェクトの分割数である第2の分割数も変化するように、前記第1、第2の分割数を制御し、
前記構成点生成手段が、
可変に制御される前記第1、第2の分割数と、表示物の制御点とに基づき、前記第1、第2の分割数により決められる生成間隔で表示物、簡易オブジェクトの構成点をリアルタイムに生成することを特徴とする情報記憶媒体。
An information storage medium usable by a computer,
A division number control means for variably controlling the number of divisions for determining the generation interval of the constituent points of the display object displayed on the screen;
Component point generation that generates component points of a display object in real time at a generation interval determined by the number of divisions based on the number of divisions variably controlled and a control point that is a point for defining the shape of the display object Means,
Including a program to execute
The division number control means is
The first and second division numbers so that the second division number, which is the division number of the simple object corresponding to the display object, also changes according to the change in the first division number, which is the division number of the display object. Control
The component point generating means is
Based on the first and second division numbers variably controlled and the display object control points, the constituent points of the display object and the simple object are generated in real time at the generation interval determined by the first and second division numbers. An information storage medium characterized by being generated.
コンピュータが使用可能な情報記憶媒体であって、
画面に表示される表示物の構成点の生成間隔を決めるための分割数を可変に制御する分割数制御手段と、
可変に制御される前記分割数と、表示物の形状を定義するための点である制御点とに基づき、前記分割数により決められる生成間隔で表示物の構成点をリアルタイムに生成する構成点生成手段と、
を実行するためのプログラムを含み、
前記分割数制御手段が、
表示物に対応する簡易オブジェクトの分割数である第2の分割数が、表示物の分割数である第1の分割数以下となるように、前記第1、第2の分割数を可変に制御し、
前記構成点生成手段が、
可変に制御される前記第1、第2の分割数と、表示物の制御点とに基づき、前記第1、第2の分割数により決められる生成間隔で表示物、簡易オブジェクトの構成点をリアルタイムに生成することを特徴とする情報記憶媒体。
An information storage medium usable by a computer,
A division number control means for variably controlling the number of divisions for determining the generation interval of the constituent points of the display object displayed on the screen;
Component point generation that generates component points of a display object in real time at a generation interval determined by the number of divisions based on the number of divisions variably controlled and a control point that is a point for defining the shape of the display object Means,
Including a program to execute
The division number control means is
The first and second division numbers are variably controlled so that the second division number that is the division number of the simple object corresponding to the display object is equal to or less than the first division number that is the division number of the display object. And
The component point generating means is
Based on the first and second division numbers variably controlled and the display object control points, the constituent points of the display object and the simple object are generated in real time at the generation interval determined by the first and second division numbers. An information storage medium characterized by being generated.
コンピュータが使用可能な情報記憶媒体であって、
画面に表示される表示物の構成点の生成間隔を決める分割数と、表示物の形状を定義するための点である制御点とに基づき、前記分割数により決められる生成間隔で表示物の構成点をリアルタイムに生成する構成点生成手段と、
所与の分割数と表示物の制御点とに基づき生成される簡易オブジェクトを、表示物に対応づけて用意する手段と、
表示物に対応づけられた前記簡易オブジェクトを用いて、表示物に対する所与の判定処理を行う手段と、を実行するためのプログラムを含み、
表示物の分割数である第1の分割数の変化に応じて、簡易オブジェクトの分割数である第2の分割数も変化することを特徴とする情報記憶媒体。
An information storage medium usable by a computer,
Based on the number of divisions that determine the generation interval of the constituent points of the display object displayed on the screen and the control points that are the points for defining the shape of the display object, the composition of the display object is determined at the generation interval determined by the number of divisions. Component point generating means for generating points in real time;
Means for preparing a simple object generated based on a given number of divisions and a control point of a display object in association with the display object;
A means for performing a given determination process for the display object using the simple object associated with the display object ,
An information storage medium characterized in that the second division number, which is the division number of the simple object, also changes in accordance with the change in the first division number, which is the division number of the display object .
コンピュータが使用可能な情報記憶媒体であって、
画面に表示される表示物の構成点の生成間隔を決める分割数と、表示物の形状を定義するための点である制御点とに基づき、前記分割数により決められる生成間隔で表示物の構成点をリアルタイムに生成する構成点生成手段と、
所与の分割数と表示物の制御点とに基づき生成される簡易オブジェクトを、表示物に対応づけて用意する手段と、
表示物に対応づけられた前記簡易オブジェクトを用いて、表示物に対する所与の判定処理を行う手段と、を実行するためのプログラムを含み、
簡易オブジェクトの分割数である第2の分割数が、表示物の分割数である第1の分割数以下になることを特徴とする情報記憶媒体。
An information storage medium usable by a computer,
Based on the number of divisions that determine the generation interval of the constituent points of the display object displayed on the screen and the control points that are the points for defining the shape of the display object, the composition of the display object is determined at the generation interval determined by the number of divisions. Component point generating means for generating points in real time;
Means for preparing a simple object generated based on a given number of divisions and a control point of a display object in association with the display object;
A means for performing a given determination process for the display object using the simple object associated with the display object ,
An information storage medium , wherein a second division number that is a division number of a simple object is equal to or less than a first division number that is a division number of a display object .
請求項12又は13のいずれかにおいて、
所与の分割数と表示物の制御点とに基づき生成された簡易オブジェクトのデータを情報記憶媒体から読み込む又はネットワークを介して読み込むことで、表示物の簡易オブジェクトが用意されることを特徴とする情報記憶媒体。
Oite to claim 12 or 13,
A simple object of a display object is prepared by reading data of a simple object generated based on a given number of divisions and a control point of the display object from an information storage medium or via a network. Information storage medium.
請求項12又は13のいずれかにおいて、
所与の分割数と表示物の制御点とに基づき簡易オブジェクトをリアルタイムに生成することで、表示物の簡易オブジェクトが用意されることを特徴とする情報記憶媒体。
Oite to claim 12 or 13,
An information storage medium, wherein a simple object of a display object is prepared by generating a simple object in real time based on a given number of divisions and control points of the display object.
請求項12乃至15のいずれかにおいて、
前記所与の判定処理がヒットチェック処理である場合には、所与の分割数と表示物の制御点とに基づき生成される点を構成点とするオブジェクトが、表示物の簡易オブジェクトとして用いられることを特徴とする情報記憶媒体。
In any of claims 12 to 15 ,
When the given determination process is a hit check process, an object having a point generated based on the given number of divisions and the control point of the display object is used as a simple object of the display object. An information storage medium characterized by the above.
請求項12乃至15のいずれかにおいて、
前記所与の判定処理がクリッピング処理である場合には、所与の分割数と表示物の制御点とに基づき生成される点により求められるバウンディングボリュームが、表示物の簡易オブジェクトとして用いられることを特徴とする情報記憶媒体。
In any of claims 12 to 15 ,
When the given determination process is a clipping process, the bounding volume obtained from the points generated based on the given number of divisions and the control point of the display object is used as a simple object of the display object. A characteristic information storage medium.
請求項10乃至17のいずれかにおいて、
前記制御点のデータが、表示物のモデルデータの中に含まれ、
前記制御点のデータを含むモデルデータが、情報記憶媒体から読み込む又はネットワークを介して読み込む手段を実行するためのプログラムを含むことを特徴とする情報記憶媒体。
In any of claims 10 to 17 ,
The control point data is included in the display object model data,
An information storage medium characterized in that the model data including the control point data includes a program for executing means for reading from the information storage medium or via a network.
JP2000059382A 2000-03-03 2000-03-03 GAME SYSTEM AND INFORMATION STORAGE MEDIUM Expired - Lifetime JP4329965B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000059382A JP4329965B2 (en) 2000-03-03 2000-03-03 GAME SYSTEM AND INFORMATION STORAGE MEDIUM

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000059382A JP4329965B2 (en) 2000-03-03 2000-03-03 GAME SYSTEM AND INFORMATION STORAGE MEDIUM

Publications (2)

Publication Number Publication Date
JP2001250129A JP2001250129A (en) 2001-09-14
JP4329965B2 true JP4329965B2 (en) 2009-09-09

Family

ID=18579840

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000059382A Expired - Lifetime JP4329965B2 (en) 2000-03-03 2000-03-03 GAME SYSTEM AND INFORMATION STORAGE MEDIUM

Country Status (1)

Country Link
JP (1) JP4329965B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2002230169A1 (en) * 2002-02-06 2003-09-02 Digital Process Ltd. Three-dimensional shape displaying program, three-dimensional shae displaying method, and three-dimensional shape displaying device
JP4569390B2 (en) * 2005-06-02 2010-10-27 トヨタ自動車株式会社 Apparatus and method for collision detection between objects
JP5766540B2 (en) * 2011-07-29 2015-08-19 株式会社バンダイナムコエンターテインメント Program and game system
JP6679523B2 (en) * 2017-03-01 2020-04-15 任天堂株式会社 Image processing program, image processing system, image processing apparatus, and image processing method
JP6947560B2 (en) 2017-07-14 2021-10-13 グリー株式会社 Game processing program, game processing method and game processing device
JP2021162993A (en) * 2020-03-31 2021-10-11 ソニーグループ株式会社 Information processing apparatus, information processing method and information processing program

Cited By (1)

* Cited by examiner, † Cited by third party
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 (en) 2001-09-14

Similar Documents

Publication Publication Date Title
JP4079410B2 (en) Image generation system, program, and information storage medium
US7015908B2 (en) Image generation system and information storage medium
JP4610748B2 (en) Image generation system, program, and information storage medium
JP4329965B2 (en) GAME SYSTEM AND INFORMATION STORAGE MEDIUM
JP2001319244A (en) Game system and information storage medium
JP3280355B2 (en) Image generation system and information storage medium
JP4167358B2 (en) Image generation system and information storage medium
US6890261B2 (en) Game system, program and image generation method
JP2001250128A (en) Game system and information storage medium
JP4367804B2 (en) Image generation system and information storage medium
JP3297410B2 (en) Image generation system and information storage medium
JP2001229403A (en) Game system and information storage medium
JP3377488B2 (en) GAME SYSTEM AND INFORMATION STORAGE MEDIUM
JP4518643B2 (en) GAME SYSTEM AND INFORMATION STORAGE MEDIUM
JP3614340B2 (en) GAME SYSTEM AND INFORMATION STORAGE MEDIUM
JP3292713B2 (en) Image generation system and information storage medium
JP3420987B2 (en) GAME SYSTEM AND INFORMATION STORAGE MEDIUM
JP4123524B2 (en) Image processing apparatus and method, and program
JP4229318B2 (en) Image generation system, program, and information storage medium
JP3377489B2 (en) GAME SYSTEM AND INFORMATION STORAGE MEDIUM
JP2003162734A (en) Game system and information storage medium
JP2002216165A (en) Image generation system, program and information storage medium
JP4391633B2 (en) Image generation system and information storage medium
JP2001250125A (en) Game system and information storage medium
JP4632521B2 (en) GAME SYSTEM AND INFORMATION STORAGE MEDIUM

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