JP4229318B2 - 画像生成システム、プログラム及び情報記憶媒体 - Google Patents

画像生成システム、プログラム及び情報記憶媒体 Download PDF

Info

Publication number
JP4229318B2
JP4229318B2 JP2003133613A JP2003133613A JP4229318B2 JP 4229318 B2 JP4229318 B2 JP 4229318B2 JP 2003133613 A JP2003133613 A JP 2003133613A JP 2003133613 A JP2003133613 A JP 2003133613A JP 4229318 B2 JP4229318 B2 JP 4229318B2
Authority
JP
Japan
Prior art keywords
dimensional
approximate
vertex
distance
intersection
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 - Fee Related
Application number
JP2003133613A
Other languages
English (en)
Other versions
JP2004334802A (ja
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 JP2003133613A priority Critical patent/JP4229318B2/ja
Publication of JP2004334802A publication Critical patent/JP2004334802A/ja
Application granted granted Critical
Publication of JP4229318B2 publication Critical patent/JP4229318B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/64Methods for processing data by generating or executing the game program for computing dynamical parameters of game objects, e.g. motion determination or computation of frictional forces for a virtual car
    • A63F2300/643Methods for processing data by generating or executing the game program for computing dynamical parameters of game objects, e.g. motion determination or computation of frictional forces for a virtual car by determining the impact between objects, e.g. collision detection

Landscapes

  • Processing Or Creating Images (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、画像生成システム、プログラム及び情報記憶媒体に関する。
【0002】
【背景技術】
従来より、仮想的な3次元空間であるオブジェクト空間内において仮想カメラ(所与の視点)から見える画像を生成する画像生成システム(例えばゲームシステム)が知られており、いわゆる仮想現実を体験できるものとして人気が高い。
【0003】
このような画像生成システムを用いて例えばシューティングゲームやレースゲーム等の様々なゲームシステムを構築する場合、様々な場面でオブジェクト空間内のオブジェクト間のヒットチェックや交差位置の判定が必要となる場合がある。かかる場合従来は代表点によるヒットチェックや、単純なヒットチェックボックスを用いたヒットチェックを行っていた。
【0004】
【特許文献1】
特開平11−175747号
【0005】
【発明が解決しようとする課題】
しかし代表点によるヒットチェックや単純なヒットチェックボックスを用いたヒットチェックを行うだけだと、現実世界ではあり得ないオブジェクト同士のめりこみが発生するという不具合があった。
【0006】
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、オブジェクト同士のヒット時のめりこみによる不自然な画像が生成されるのを防止することが可能な画像生成システム、プログラム及び情報記憶媒体を提供することにある。
【0007】
【課題を解決するための手段】
(1)本発明は、画像生成を行う画像生成システムであって、
第1のオブジェクトと第2のオブジェクトが交差している場合に、
第1のオブジェクトの2次元近似オブジェクトと第2のオブジェクトの2次元近似オブジェクトの代表点を結ぶ方向ベクトルをもとめ、第1のオブジェクトの2次元近似オブジェクトと第2のオブジェクトの2次元近似オブジェクトの重複エリアに基づき、第1のオブジェクトの2次元近似オブジェクトと第2のオブジェクトの2次元近似オブジェクトの重複距離を決定し、決定した重複距離にもとづいて、両オブジェクトを引き離すために使用する補正距離を求め、前記補正距離及び前記方向ベクトルにもとづきオブジェクト空間における第1のオブジェクト及び第2のオブジェクトの少なくとも一方の位置を補正する位置補正手段と、
補正された位置に基づいて第1のオブジェクトと第2のオブジェクトの画像を生成する画像生成手段と、を含むことを特徴とする。
【0008】
また本発明に係るプログラムは、コンピュータにより実行可能なプログラム(情報記憶媒体又は搬送波に具現化されるプログラム)であって、上記手段をコンピュータに実現させる(上記手段としてコンピュータを機能させる)ことを特徴とする。また本発明に係る情報記憶媒体は、コンピュータにより読み取り可能(使用可能)な情報記憶媒体であって、上記手段をコンピュータに実現させる(上記手段としてコンピュータを機能させる)ためのプログラムを含むことを特徴としている。
【0009】
ここで第1のオブジェクト又は第2のオブジェクトの2次元近似オブジェクトは閉じた多角形でもよいし、開いた多角形でもよい。
【0010】
2次元近似オブジェクトの代表点とは、例えば2次元近似オブジェクトの重心でもよい。
【0011】
また例えば重複エリアの方向ベクトルの最も長い距離を重複距離として決定するようにしてもよい。
【0012】
補正距離に基づく補正は例えば第1のオブジェクト又は第2のオブジェクトのいずれか一方を前記方向ベクトルの方向に移動させるようにしてもよいし、第1のオブジェクト及び第2のオブジェクトを両方移動させて、補正距離だけ前記方向ベクトルの方向に引きはなすようにしてもよい。
【0013】
本発明によれば、第1のオブジェクト及び第2のオブジェクトがヒットした場合に、現実世界ではあり得ないオブジェクト同士のめりこみが発生し、不自然な画像が生成されるのを防止することが出来る。
【0014】
(2)また本発明に係る画像生成システム、プログラム及び情報記憶媒体は、
第1のオブジェクトの2次元近似オブジェクトと第2のオブジェクトの2次元近似オブジェクトの各辺について線分交差判定を行い、判定結果に基づき、第1のオブジェクトと第2のオブジェクトの交差の有無を判定する交差判定手段と、
をさらに含むことを特徴とする。
【0015】
(3)また本発明に係る画像生成システム、プログラム及び情報記憶媒体は、
前記位置補正手段が、
前記第1のオブジェクトの2次元近似オブジェクトの頂点から前記方向ベクトルに平行な直線を引いて、前記第1のオブジェクトの2次元近似オブジェクトの内部において前記第2のオブジェクトの2次元近似オブジェクトを構成する辺と交わる交点を求め当該交点と頂点の距離と、前記第2のオブジェクトの2次元近似オブジェクトの頂点から前記方向ベクトルに平行な直線を引いて、第2のオブジェクトの2次元近似オブジェクトの内部において第1のオブジェクトの2次元近似オブジェクトを構成する辺と交わる交点とをもとめ当該交点と頂点の距離とをもとめ、最も長い距離に基づき前記重複距離を決定することを特徴とする。
【0016】
(4)また本発明は、画像生成を行う画像生成システムであって、
時刻tからt+Δtにおける第1のオブジェクトの2次元近似オブジェクトの各頂点の移動軌跡と第2のオブジェクトの2次元近似オブジェクトが交差している場合に、交点から時刻t+Δtの第1のオブジェクトの2次元近似オブジェクトの頂点までの距離である重複距離にもとづいて、両オブジェクトを引き離すために使用する補正距離を求め、前記補正距離及び前記移動軌跡にもとづきオブジェクト空間における第1のオブジェクト及び第2のオブジェクトの少なくとも一方の位置を補正する手段と、
補正された位置に基づいて第1のオブジェクトと第2のオブジェクトの画像を生成する画像生成手段と、を含むことを特徴とする。
【0017】
また本発明に係るプログラムは、コンピュータにより実行可能なプログラム(情報記憶媒体又は搬送波に具現化されるプログラム)であって、上記手段をコンピュータに実現させる(上記手段としてコンピュータを機能させる)ことを特徴とする。また本発明に係る情報記憶媒体は、コンピュータにより読み取り可能(使用可能)な情報記憶媒体であって、上記手段をコンピュータに実現させる(上記手段としてコンピュータを機能させる)ためのプログラムを含むことを特徴としている。
【0018】
ここで移動しているものを第1のオブジェクトとし、静止しているものを第2のオブジェクトとしてもよい。また第1のオブジェクトも第2のオブジェクトも移動している場合でもよい。
【0019】
また第1のオブジェクト又は第2のオブジェクトの2次元近似オブジェクトは閉じた多角形でもよいし、開いた多角形でもよい
2次元近似オブジェクトの代表点とは、例えば2次元近似オブジェクトの重心でもよい。
【0020】
また交点から時刻t+Δtの第1のオブジェクトの2次元近似オブジェクトの頂点までの最も長い重複距離を補正距離として決定するようにしてもよい。
【0021】
補正距離に基づく補正は例えば第1のオブジェクト又は第2のオブジェクトのいずれか一方を前記方向ベクトルの方向に移動させるようにしてもよいし、第1のオブジェクト及び第2のオブジェクトを両方移動させて、補正距離だけ前記方向ベクトルの方向に引きはなすようにしてもよい。
【0022】
本発明によれば、第1のオブジェクトの2次元近似オブジェクトの頂点の移動軌跡(移動ベクトル)を用いて第2のオブジェクトの2次元近似オブジェクトとの交差を判定するので、フレーム間でオブジェクトのすり抜けが発生するのを防止することが出来る。
【0023】
また本発明によれば、第1のオブジェクト及び第2のオブジェクトがオブジェクトがヒットした場合に、現実世界ではあり得ないオブジェクト同士のめりこみが発生し、不自然な画像が生成されるのを防止することが出来る。
【0024】
なおまず最初にオブジェクト同士でヒットチェックを行ったあとに、さらにフレーム間のすり抜けを防止するために、第1のオブジェクトの2次元近似オブジェクトの頂点の移動軌跡(移動ベクトル)を用いて第2のオブジェクトの2次元近似オブジェクトとの交差を判定するようにしてもよい。
【0025】
(5)また本発明に係る画像生成システム、プログラム及び情報記憶媒体は、
第1のオブジェクトの2次元近似オブジェクトの各頂点の移動軌跡と第2のオブジェクトの2次元近似オブジェクトの辺について線分交差判定を行い、判定結果に基づき、第1のオブジェクトと第2のオブジェクトの交差の有無を判定する手段と、をさらに含むことを特徴とする。
【0026】
(6)また本発明に係る画像生成システム、プログラム及び情報記憶媒体は、
前記補正距離に基づき補正された位置に配置された第1のオブジェクトの2次元近似オブジェクトと第2のオブジェクトの2次元近似オブジェクトの各辺について線分交差判定を行い、交差している場合には、交差している第2のオブジェクトの2次元近似オブジェクトの頂点を特定し、当該頂点と第1のオブジェクトの2次元近似オブジェクトの距離に基づき、両オブジェクトを引き離すために使用する再補正距離を求め、当該再補正距離にもとづきオブジェクト空間における第1のオブジェクト及び第2のオブジェクトの少なくとも一方の位置を再度補正する再補正処理手段と、をさらに含み、
前記画像生成手段は、
前記再補正距離にもとづき再度補正された位置に基づいて第1のオブジェクトと第2のオブジェクトの画像を生成することを特徴とする。
【0027】
例えば、前記再補正処理手段が、
交差している第2のオブジェクトの2次元近似オブジェクトの頂点から第1のオブジェクトの移動ベクトル方向に平行な直線を引いて、第1のオブジェクトの2次元近似オブジェクトの辺と交わる交点とをもとめ当該交点から頂点までの距離であるにもとづいて(例えば最も長い距離に基づいて)、両オブジェクトを引き離すための再補正距離を求めるようにしてもよい。
【0028】
本発明によれば、例えば第2のオブジェクトの2次元近似オブジェクトの頂点が第1のオブジェクトの2次元近似オブジェクトの辺に接触した場合の補正漏れ等を防止することが出来る。
【0029】
(7)また本発明に係る画像生成システム、プログラム及び情報記憶媒体は、
オブジェクト空間における第1のオブジェクトと第2のオブジェクトを2次元平面に投影し、投影された第1のオブジェクト及び第2のオブジェクトをそれぞれ多角形で近似して第1のオブジェクト及び第2のオブジェクトの2次元近似オブジェクトを生成する2次元近似オブジェクト生成手段を含むことを特徴とする。
【0030】
(8)また本発明は、オブジェクト空間における第1のオブジェクトと第2のオブジェクトを2次元平面に投影し、投影された第1のオブジェクト及び第2のオブジェクトをそれぞれ多角形で近似して第1のオブジェクト及び第2のオブジェクトの2次元近似オブジェクトを生成する2次元近似オブジェクト生成手段と、第1のオブジェクト及び第2のオブジェクトの2次元近似オブジェクトに基づいて、両オブジェクトを引き離すために使用する補正距離を求め、前記補正距離にもとづきオブジェクト空間における第1のオブジェクト及び第2のオブジェクトの少なくとも一方の位置を補正する手段と、
補正された位置に基づいて第1のオブジェクトと第2のオブジェクトの画像を生成する画像生成手段とを含むことを特徴とする。
【0031】
また本発明に係るプログラムは、コンピュータにより実行可能なプログラム(情報記憶媒体又は搬送波に具現化されるプログラム)であって、上記手段をコンピュータに実現させる(上記手段としてコンピュータを機能させる)ことを特徴とする。また本発明に係る情報記憶媒体は、コンピュータにより読み取り可能(使用可能)な情報記憶媒体であって、上記手段をコンピュータに実現させる(上記手段としてコンピュータを機能させる)ためのプログラムを含むことを特徴としている。
【0032】
(9)また本発明は、画像生成を行う画像生成システムであって、
オブジェクト空間における第1のオブジェクトと第2のオブジェクトを2次元平面に投影し、投影された第1のオブジェクト及び第2のオブジェクトをそれぞれ多角形で近似して第1のオブジェクト及び第2のオブジェクトの2次元近似オブジェクトを生成する2次元近似オブジェクト生成手段と、
第1のオブジェクトの2次元近似オブジェクトと第2のオブジェクトの2次元近似オブジェクトの各辺について線分交差判定を行い、又は第1のオブジェクトの2次元近似オブジェクトの各頂点の移動軌跡と第2のオブジェクトの2次元近似オブジェクトの辺について線分交差判定を行い、いずれかの判定結果に基づき、第1のオブジェクトと第2のオブジェクトの交差の有無を判定する手段とを含むことを特徴とする。
【0033】
また本発明に係るプログラムは、コンピュータにより実行可能なプログラム(情報記憶媒体又は搬送波に具現化されるプログラム)であって、上記手段をコンピュータに実現させる(上記手段としてコンピュータを機能させる)ことを特徴とする。また本発明に係る情報記憶媒体は、コンピュータにより読み取り可能(使用可能)な情報記憶媒体であって、上記手段をコンピュータに実現させる(上記手段としてコンピュータを機能させる)ためのプログラムを含むことを特徴としている。
【0034】
(10)また本発明に係る画像生成システム、プログラム及び情報記憶媒体は、ゲーム状況に応じて、第1のオブジェクト及び第2のオブジェクトの少なくとも一方の2次元近似オブジェクトの頂点数を変化させる2次元近似オブジェクト変更手段を含むことを特徴とする。
【0035】
ヒットを取る相手方に応じて2次元近似オブジェクトの頂点数を変化させるようにしてもよい。例えばプレーヤ移動体とヒットをとる場合には2次元近似オブジェクトの頂点数を増やし、高精度の判定を行うようにしてもよい。
【0036】
本発明によればゲーム状況に応じて2次元近似オブジェクトの頂点数を変化させることで、ゲーム状況に応じて補正の精度を調節することが出来る。
【0037】
(11)また本発明に係る画像生成システム、プログラム及び情報記憶媒体は、
前記2次元近似オブジェクト変更手段が、
第1のオブジェクト又は第2のオブジェクトと仮想カメラ又はプレーヤキャラクタとの距離に応じて第1のオブジェクト又は第2のオブジェクトの2次元近似オブジェクトの頂点数を変化させることを特徴とする。
【0038】
(12)また本発明に係る画像生成システム、プログラム及び情報記憶媒体は、
前記2次元近似オブジェクト変更手段が、
オブジェクト空間の天候(雨、霧、もや)や視界状況又は応じて前記2次元近似オブジェクトの頂点数を変化させることを特徴とする。
【0039】
ここにおいてオブジェクト空間の天候とは、例えば晴れ、雨、霧、もや等であり、天候が悪い場合には前記2次元近似オブジェクトの頂点数を減らして、簡易な補正やヒットチェックを行うようにしてもよい。
【0040】
(13)また本発明に係る画像生成システム、プログラム及び情報記憶媒体は、
前記2次元近似オブジェクト変更手段が、
第1のオブジェクト又は第2のオブジェクトの視認性に応じて前記2次元近似オブジェクトの頂点数を変化させることを特徴とする。
【0041】
【発明の実施の形態】
以下、本発明の好適な実施形態について図面を用いて説明する。
【0042】
なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を何ら限定するものではない。また本実施形態で説明される構成の全てが本発明の解決手段として必須であるとは限らない。
【0043】
1. 構成
図1に、本実施形態の画像生成システム(例えばゲームシステム)の機能ブロック図の一例を示す。
【0044】
なお同図において本実施形態は、少なくとも処理部100を含めばよく(或いは処理部100と記憶部170、或いは処理部100と記憶部170と情報記憶媒体180を含めばよく)、それ以外のブロック(例えば操作部160、表示部190、音出力部192、携帯型情報記憶装置194、通信部196)については、任意の構成要素とすることができる。
【0045】
ここで処理部100は、システム全体の制御、システム内の各ブロックへの命令の指示、ゲーム処理、画像処理、又は音処理などの各種の処理を行うものであり、その機能は、各種プロセッサ(CPU、DSP等)、或いはASIC(ゲートアレイ等)などのハードウェアや、所与のプログラム(ゲームプログラム)により実現できる。
【0046】
操作部160は、プレーヤが操作データを入力するためのものであり、その機能は、レバー、ボタン、筐体などのハードウェアにより実現できる。
【0047】
記憶部170は、メインメモリ(主記憶部等)172やフレームバッファ(描画バッファ等)174等を含み、処理部100や通信部196などのワーク領域となるもので、その機能はRAMなどのハードウェアにより実現できる。
【0048】
情報記憶媒体(コンピュータにより使用可能な記憶媒体)180は、プログラムやデータなどの情報を格納するものであり、その機能は、光ディスク(CD、DVD)、光磁気ディスク(MO)、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ(ROM)などのハードウェアにより実現できる。処理部100は、この情報記憶媒体180に格納される情報に基づいて本発明(本実施形態)の種々の処理を行う。即ち情報記憶媒体180には、本発明(本実施形態)の手段(特に処理部100に含まれるブロック)を実行するための情報(プログラム或いはデータ)が格納される。
【0049】
なお、情報記憶媒体180に格納される情報の一部又は全部は、システムへの電源投入時等に記憶部170に転送されることになる。また情報記憶媒体180に記憶される情報は、本発明の処理を行うためのプログラム、画像データ、音データ、表示物の形状データ、テーブルデータ、リストデータ、本発明の処理を指示するための情報、その指示に従って処理を行うための情報等の少なくとも1つを含むものである。
【0050】
表示部190は、本実施形態により生成された画像を出力するものであり、その機能は、CRT、LCD、或いはHMD(ヘッドマウントディスプレイ)などのハードウェアにより実現できる。
【0051】
音出力部192は、本実施形態により生成された音を出力するものであり、その機能は、スピーカなどのハードウェアにより実現できる。
【0052】
携帯型情報記憶装置194は、プレーヤの個人データやセーブデータなどが記憶されるものであり、この携帯型情報記憶装置194としては、メモリカードや携帯型ゲーム装置などを考えることができる。
【0053】
通信部196は、外部(例えばホスト装置や他の画像生成システム)との間で通信を行うための各種の制御を行うものであり、その機能は、各種プロセッサ、或いは通信用ASICなどのハードウェアや、プログラムなどにより実現できる。
【0054】
なお本発明(本実施形態)の手段を実行するためのプログラム或いはデータは、ホスト装置(サーバ)が有する情報記憶媒体からネットワーク及び通信部196を介して情報記憶媒体180に配信するようにしてもよい。このようなホスト装置(サーバ)の情報記憶媒体の使用も本発明の範囲内に含まれる。
【0055】
処理部100は、ゲーム処理部110、交差部分検出処理部(シャドーボリューム処理部)120、画像生成部130、音生成部150を含む。
【0056】
ここでゲーム処理部110は、コイン(代価)の受け付け処理、各種モードの設定処理、ゲームの進行処理、選択画面の設定処理、オブジェクト(1又は複数のプリミティブ面)の位置や回転角度(X、Y又はZ軸回りの回転角度)を求める処理、オブジェクトを動作させる処理(モーション処理)、視点の位置(仮想カメラの位置)や視線角度(仮想カメラの回転角度)を求める処理、マップオブジェクトなどのオブジェクトをオブジェクト空間へ配置する処理、ヒットチェック処理、ゲーム結果(成果、成績)を演算する処理、複数のプレーヤが共通のゲーム空間でプレイするための処理、或いはゲームオーバ処理などの種々のゲーム処理を、操作部160からの操作データや、携帯型情報記憶装置194からの個人データ、保存データや、ゲームプログラムなどに基づいて行う。
【0057】
ゲーム処理部110は、2次元オブジェクト生成部112,線分交差判定処理部114、第1の位置補正処理部116、第2の位置補正処理部120、位置再補正処理部122、2次元オブジェクト変更処理部124、最終位置補正処理部126とを含む。
【0058】
2次元オブジェクト生成部112は,オブジェクト空間における第1のオブジェクトと第2のオブジェクトを2次元平面に投影し、投影された第1のオブジェクト及び第2のオブジェクトをそれぞれ多角形で近似して第1のオブジェクト及び第2のオブジェクトの2次元近似オブジェクトを生成する処理を行う。
【0059】
線分交差判定処理部114は、第1のオブジェクトの2次元近似オブジェクトと第2のオブジェクトの2次元近似オブジェクトの各辺について線分交差判定を行い、判定結果に基づき、第1のオブジェクトと第2のオブジェクトの交差の有無を判定する処理を行うようにしてもよい。
【0060】
また第1のオブジェクトの2次元近似オブジェクトの各頂点の移動軌跡と第2のオブジェクトの2次元近似オブジェクトの辺について線分交差判定を行い、判定結果に基づき、第1のオブジェクトと第2のオブジェクトの交差の有無を判定する処理を行うようにしてもよい。
【0061】
第1の位置補正処理部116は、第1のオブジェクトと第2のオブジェクトが交差している場合に、第1のオブジェクトの2次元近似オブジェクトと第2のオブジェクトの2次元近似オブジェクトの代表点を結ぶ方向ベクトルをもとめ、第1のオブジェクトの2次元近似オブジェクトと第2のオブジェクトの2次元近似オブジェクトの重複エリアに基づき、第1のオブジェクトの2次元近似オブジェクトと第2のオブジェクトの2次元近似オブジェクトの重複距離を決定し、決定した重複距離にもとづいて、両オブジェクトを引き離すために使用する補正距離を求め、前記補正距離及び前記方向ベクトルにもとづきオブジェクト空間における第1のオブジェクト及び第2のオブジェクトの少なくとも一方の位置を補正する処理を行う。
【0062】
また前記第1のオブジェクトの2次元近似オブジェクトの頂点から前記方向ベクトルに平行な直線を引いて、前記第1のオブジェクトの2次元近似オブジェクトの内部において前記第2のオブジェクトの2次元近似オブジェクトを構成する辺と交わる交点を求め当該交点と頂点の距離と、前記第2のオブジェクトの2次元近似オブジェクトの頂点から前記方向ベクトルに平行な直線を引いて、第2のオブジェクトの2次元近似オブジェクトの内部において第1のオブジェクトの2次元近似オブジェクトを構成する辺と交わる交点とをもとめ当該交点と頂点の距離とをもとめ、最も長い距離に基づき前記重複距離を決定するようにしてもよい。
【0063】
第2の位置補正処理部120は、時刻tからt+Δtにおける第1のオブジェクトの2次元近似オブジェクトの各頂点の移動軌跡と第2のオブジェクトの2次元近似オブジェクトが交差している場合に、交点から時刻t+Δtの第1のオブジェクトの2次元近似オブジェクトの頂点までの距離である重複距離にもとづいて、両オブジェクトを引き離すために使用する補正距離を求め、前記補正距離及び前記移動軌跡にもとづきオブジェクト空間における第1のオブジェクト及び第2のオブジェクトの少なくとも一方の位置を補正する処理を行う。
【0064】
位置再補正処理部122は、前記補正距離に基づき補正された位置に配置された第1のオブジェクトの2次元近似オブジェクトと第2のオブジェクトの2次元近似オブジェクトの各辺について線分交差判定を行い、交差している場合には、交差している第2のオブジェクトの2次元近似オブジェクトの頂点を特定し、当該頂点と第1のオブジェクトの2次元近似オブジェクトの距離に基づき、両オブジェクトを引き離すために使用する再補正距離を求め、当該再補正距離にもとづきオブジェクト空間における第1のオブジェクト及び第2のオブジェクトの少なくとも一方の位置を再度補正する処理を行う。
【0065】
2次元オブジェクト変更処理部124は、ゲーム状況に応じて、第1のオブジェクト及び第2のオブジェクトの少なくとも一方の2次元近似オブジェクトの頂点数を変化させる処理を行う。
【0066】
また第1のオブジェクト又は第2のオブジェクトと仮想カメラ又はプレーヤキャラクタとの距離に応じて第1のオブジェクト又は第2のオブジェクトの2次元近似オブジェクトの頂点数を変化させるようにしてもよい。
【0067】
またオブジェクト空間の天候や視界状況又は応じて前記2次元近似オブジェクトの頂点数を変化させるようにしてもよい。
【0068】
また第1のオブジェクト又は第2のオブジェクトの視認性に応じて前記2次元近似オブジェクトの頂点数を変化させるようにしてもよい。
【0069】
最終位置補正処理部126は、位置再補正処理後の第1のオブジェクトの2次元オブジェクトと第2のオブジェクトの2次元オブジェクトとの交差判定を行い、どれか1点でも交差すれば、第2のオブジェクトの2次元オブジェクトの法線方向について第1のオブジェクトの2次元オブジェクトとの距離を計算し、当該距離に基づいて再度第1のオブジェクト及び第2のオブジェクトの少なくとも一方の位置を補正する。
【0070】
画像生成部130は、ゲーム処理部110からの指示等にしたがって各種の画像処理を行い、例えばオブジェクト空間内で仮想カメラ(視点)から見える画像を生成して、表示部190に出力する。
【0071】
音生成部150は、ゲーム処理部110からの指示等にしたがって各種の音処理を行い、BGM、効果音、又は音声などの音を生成し、音出力部192に出力する。
【0072】
なお、ゲーム処理部110、画像生成部130、音生成部150の機能は、その全てをハードウェアにより実現してもよいし、その全てをプログラムにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。
【0073】
画像生成部130は、ジオメトリ処理部(3次元演算部)132、描画部(レンダリング部)140を含む。
【0074】
ここで、ジオメトリ処理部132は、座標変換、クリッピング処理、透視変換、或いは光源計算などの種々のジオメトリ処理(3次元演算)を行う。そして、本実施形態では、ジオメトリ処理後(透視変換後)のオブジェクトデータ(オブジェクトの頂点座標、頂点テクスチャ座標、或いは輝度データ等)は、記憶部170の主記憶部172に格納されて、保存される。
【0075】
描画部140は、ジオメトリ処理後(透視変換後)のオブジェクトデータと、記憶部170に記憶されるテクスチャとに基づいて、オブジェクトを描画バッファ174に描画する。これにより、オブジェクトが移動するオブジェクト空間において、仮想カメラ(視点)から見える画像が描画(生成)されるようになる。
【0076】
なお、本実施形態の画像生成システムは、1人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、このようなシングルプレーヤモードのみならず、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。
【0077】
また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、1つの端末を用いて生成してもよいし、ネットワーク(伝送ライン、通信回線)などで接続された複数の端末を用いて生成してもよい。
【0078】
2. 本実施の形態の適用例
2.1 車体ヒットチェックルーチンの概要
以下、第1のオブジェクト及び第2のオブジェクトが車(移動オブジェクトの一例)や壁(静止オブジェクトの一例)である場合を例にとり説明するがこれに限られない。
【0079】
図2は、本実施の形態のヒットチェックの概要について説明するための図である。
【0080】
本実施の形態では第1のオブジェクト(例えばプレーヤカー)と第2のオブジェクト(例えば敵車)が衝突したかどうかを判定し、衝突していたなら重複している部分を押し戻す補正(衝突後の動きを表すリアクションデータの計算)を行う。
【0081】
まずヒットチェックにかかるオブジェクトの外形線分データ(オブジェクトの2次元オブジェクトに関するデータ)を取得する(ステップS10)。
【0082】
次に取得したオブジェクトの外形線分データを用いて第1のオブジェクト(例えばプレーヤカー)と第2のオブジェクト(例えば敵車)の簡易ヒットチェックを行う(ステップS20)。
【0083】
簡易ヒットチェックでヒットが検出された場合には、取得したオブジェクトの外形線分データを用いて第1のオブジェクト(例えばプレーヤカー)と第2のオブジェクト(例えば敵車)のヒットチェックを行う(ステップS30)。
【0084】
ヒットしたかどうかの判定については簡易ヒットチェック及び通常のヒットチェックの2種類実行し、ヒットしないことを確認した時点で終了する。
【0085】
ここで例えば第1のオブジェクト又は第2のオブジェクトである車の1フレーム間の移動量が車体の大きさを超えてしまうと、車体をすり抜けてしまい正しく判定できない場合があるので、速度をチェックし、速すぎる場合はチェックポイントを複数に分けてすり抜けが起こらないようにすることが好ましい。
【0086】
そしてヒットチェックでヒットが検出された場合には、ヒット点を特定し(ステップS40)、リアクションデータを作成する(ステップS50)。
【0087】
2.2 2次元オブジェクト(外形線分データ)の生成処理
2次元オブジェクト生成部が行う2次元オブジェクト(外形線分データ)の生成の処理の一例について説明する。
【0088】
本実施の形態では複雑な形状の車体を、2次元平面に投影して凸型多角形に形状を近似した2次元オブジェクトを用いてヒットチェックを行う。本実施の形態ではヒットチェックはxz平面上で行うので、y座標は必要ない。また2次元オブジェクトは例えば8角形等の長方形(正方形も含む)以外の多角形にしてもよい。オブジェクトの種類(例えば車種)に応じて適当な多角形の2次元オブジェクトを生成するようにしてもよい。
【0089】
また同じオブジェクトについても、ゲーム状況に応じて生成する2次元オブジェクトの頂点数(角数)を変更するようにしてもよい。
【0090】
図3(A)(B)は、オブジェクトの2次元オブジェクト(外形線分データ)の一例を示した図である。
【0091】
図3(A)は車などのオブジェクトの2次元オブジェクト(外形線分データ)を示したものである。202は車などのオブジェクトを2次元平面に投影したときの形状であり、204は、当該オブジェクト202の2次元オブジェクト(外形線分データ)である。
【0092】
図3(B)は壁などの凹凸のあるオブジェクトの2次元オブジェクト(外形線分データ)を示したものである。206は壁などのオブジェクトを2次元平面に投影したときの形状であり、208は、当該オブジェクト206の2次元オブジェクト(外形線分データ)である。
【0093】
このように本実施の形態では、オブジェクトを2次元平面に投影したときの形状に近似する多角形を2次元近似オブジェクトとして生成する。なお2次元近似オブジェクトは閉じた多角形でもよいし、開いた多角形でもよい。
【0094】
また2次元近似オブジェクトを閉じた多角形として生成して、その一部の辺についてのみ使用するようにしてもよい。
【0095】
図4は、オブジェクトの2次元オブジェクト(外形線分データ)のデータの内容について説明するための図である。
【0096】
オブジェクトの2次元オブジェクトとして、オブジェクトのモデル作成の際に2次元平面に投影したオブジェクト(例えば車体形状)を近似した多角形を作成する。ここで頂点V0〜V7を順番に繋げば多角形が形成されるように作成するとよい(頂点は左回りに配置)。
【0097】
2次元オブジェクトを特定するために必要なデータ(外形線分データ)は、例えば、頂点数、頂点座標(例えば外接円の中心(又は車体の重心)からの相対座標)、頂点の成す角度θ、重心Gから最も遠い点までの距離l(簡易ヒットチェックに使用)等である。
【0098】
なおプレーヤカーのヒットチェックは、細かな形状の違いやリアクションに変化を持たせるために2次元オブジェクトの頂点数(角数)をおおくするようにしてもよいし、コンピュータカー同士のヒットチェックや、コンピュータカーと壁とのヒットチェックに精度はそれほど要求されないので2次元オブジェクトの頂点数(角数)を減らすようにしても良い。
【0099】
このように、プレーヤカーの関わらないヒットチェック用として、新たに頂点数のより少ない2次元オブジェクト(長方形など)を用意することにより処理を軽量化することが出来る。ヒットチェックは車体線分データの各線分ごとに行っているので、頂点数が減少すればその分処理は軽くなるからである。
【0100】
また1つのオブジェクトについても、ゲーム状況に応じて2次元オブジェクトの頂点数を変化させて、ゲーム状況に応じた処理負荷の調整を行うようにしてもよい。
【0101】
頂点のなす角度θは、頂点の両端の線分が成す角度であり、角度生成の方法としては、例えば頂点の座標データをもとに角度を計算(コンバート時に生成)するようにしてもよい。
【0102】
頂点の成す角度θは、衝突後のリアクションデータを生成するために用いる。頂点iの角度θiは、例えば図5に示すように、i番目とi-1番目の頂点を結んだ線分を基準として、i番目とi+1番目を結んだ線分との成す角度を求めるようにしてもよい。
この角度は「どれだけその頂点が鋭角か?」を表すデータで、0°〜180°(0〜π)までの値をとる。
【0103】
2.3 簡易ヒットチェック
全ての敵車に対して厳密なヒットチェックを行っていては処理に時間がかかってしまうので、簡単なチェックによりヒットチェックを取る敵車を限定することが望ましい。
【0104】
例えば自車、敵車の重心より一番遠い部分の距離の和を計算し、2車の重心間の距離がそれより大きなものは絶対にヒットしないので除外し、それ以外の敵車に対して厳密なヒットチェックを行うようにしてもよい。車の重心からの最大距離は、あらかじめデータ化しておくようにしてもよい。
【0105】
2.4 2次元オブジェクトを用いたヒットチェック
オブジェクト(例えば車体)の形状を近似した2次元オブジェクト(外形線分データ)を設定し、それを用いて2つのオブジェクト(2車)がヒットしたかどうかをチェックする処理について説明する。
【0106】
2次元オブジェクトの外形線分データとして、2次元オブジェクトの各頂点の座標、鋭角度情報(リアクションデータを生成するときに使用)などのパラメータも持つ。
【0107】
そして2車の外形線分データの線分毎に交差チェックを行い、1組でも交わるものがあればヒットしたとみなす。ヒットした場合は各頂点について2次元オブジェクトのめり込んだ距離を算出し(詳細は後述)、もっとも距離の長かった頂点をヒット点とする。2車の外形線分データの線分の全ての組み合わせについてチェックし、最終的に求めたヒット点に基づき位置を補正する。
【0108】
2.5 線分交差判定処理
ここで線分交差判定処理部が行う線分交差判定処理の一例について説明する。
【0109】
2本の線分が交差するかどうかの判別方法として、図6(A)に示すように線分ABの頂点A,Bが、線分CDの両側に位置し、かつ線分CDの頂点C,Dが、線分A,Bの両側に位置するとき2本の線分は交差するが、図6(B)(C)のような場合には2本の線分は交差しない。言い換えれば点A,Bが、点C,Dを通る直線を境界とした領域の両側に位置し,かつ点C,Dが点A,Bを通る直線を境界とした領域の両側に位置するとき、2本の線分は交差する。
【0110】
ここで点A,Bを通る直線(境界線L1)をy=ax+bとすると、それぞれの領域をy<ax+b、y>ax+bと表すことができ、境界線の方程式にX,Yを代入したときの値が正か負かによって領域を判別することができる。従って点C,Dの座標値を代入し、得られた答えの積が0または負の値(0のとき頂点は線上に存在する)であれば2線分は交差するといえる.
A,B,C,Dの座標値をそれぞれA(x1,y1)、B(x2,y2)、C(x3,y3)、D(x4,y4)、線分ABを通る直線をy=ax+bとする。
ここで、aは傾きなので、以下の式が成り立つ。
【0111】
【数1】
Figure 0004229318
また、bは直線のy軸との交点なので、以下の式が成り立つ。
【0112】
【数2】
Figure 0004229318
従って点A,Bを通る直線(境界線L1)をy=ax+bは以下の式で表すことが出来る。
【0113】
【数3】
Figure 0004229318
ここで除算は誤差の原因となるので両辺に(x1-x2)をかけ、さらにまとめると以下の式となる。
【0114】
【数4】
Figure 0004229318
この式に、頂点C,Dの値を代入することにより頂点C,Dが存在する領域を調べることができる。
【0115】
【数5】
Figure 0004229318
【0116】
ここで、tc×td≦0であればC,Dが異なる領域に存在しているといえるので、線分ABと線分CDは交差しているといえる。
【0117】
同様に頂点C,Dを通る直線の式に頂点A,Bの値を代入し、得られた値の積が0以下であれば、線分ABと線分CDは交差しているといえる。
【0118】
次に車体の内包チェックについて説明する。
【0119】
線分毎の交差チェックでは、図8に示すように一方の2次元オブジェクト260に他方の2次元オブジェクト250が入り込んだ場合に検知できない。このため、線分毎の交差チェックでヒットしなかった場合は各線分と重心を用いて内包チェックを行う必要がある。
【0120】
例えば各線分ベクトルと重心までのベクトルについて内積を求め、全ての計算結果が正ならば他方に2次元オブジェクトの重心が一方の2次元オブジェクトの内側にあると判定でき、この場合一方の2次元オブジェクトが他方の2次元オブジェクトを内包しているといえる。
【0121】
この計算方法を使う場合、全ての2次元オブジェクト(外形線分データ)の頂点リストの順番を、ベクトルが右(左)周りに繋がるように作成しておくとよい。
【0122】
図9は内包判定の簡易チェック方法について説明するための図である。270は第1のオブジェクトの2次元オブジェクトであり、272は第1のオブジェクトの2次元オブジェクトの重心であり、274は第1のオブジェクトの2次元オブジェクトの外接円(重心を中心として重心から最も遠い頂点までの距離を半径とする円)である。また280は第2のオブジェクトの2次元オブジェクトであり、282は第2のオブジェクトの2次元オブジェクトの重心である。また290は第3のオブジェクトの2次元オブジェクトであり、292は第3のオブジェクトの2次元オブジェクトの重心である。
【0123】
またd1は第1のオブジェクトの2次元オブジェクトの重心272と第2のオブジェクトの2次元オブジェクトの重心282の距離を示しており、d2は第1のオブジェクトの2次元オブジェクトの重心272と第3のオブジェクトの2次元オブジェクトの重心292の距離を示している。
【0124】
内包判定の簡易チェック方法としては、重心間の距離(図9ではd1,d2)が内包するオブジェクトの2次元オブジェクト(図9では、270)の最長距離(図9では第1のオブジェクト270の外接円274の半径)よりも大きい場合(図9ではd2のケース)は、内包している可能性がないとして内包チェックの対象外として、チェック対象を限定する。
【0125】
図10は、線分交差判定処理に関するフローチャート図である。
【0126】
まず敵車(第2のオブジェクト)の2次元オブジェクトの頂点データを自車(第1のオブジェクト)の座標系に変換する(ステップS110)。
【0127】
自車(第1のオブジェクト)及び敵車(第2のオブジェクト)の2次元オブジェクトの頂点データより自車(第1のオブジェクト)及び敵車(第2のオブジェクト)の2次元オブジェクトの線分データを算出する(ステップS120)。ここで2次元オブジェクトの線分データとは2次元オブジェクトの各辺の頂点座標等の線分公差判定に必要な情報を含む。
【0128】
次に自車(第1のオブジェクト)の2次元オブジェクトの線分に対する敵車(第2のオブジェクト)の2次元オブジェクトの頂点の領域を調べる(ステップS130)。
【0129】
図7(A)(B)で説明したように、自車(第1のオブジェクト)の2次元オブジェクトの2頂点A(x1’,y1’)、B(x2’,y2’)を通る直線で2領域に分割し、敵車(第2のオブジェクト)の2次元オブジェクトの線分の2頂点C(x3’,y3’)、D(x4’,y4’)がいずれの領域に存在するか調べる。例えば前記(5−A)(5−B)式のA(x1,y1)、B(x2,y2)に自車(第1のオブジェクト)の2次元オブジェクトの2頂点A(x1’,y1’)、B(x2’,y2’)のデータを代入して、前記(5−A)(5−B)式のC(x3,y3)、D(x4,y4)に、及び敵車(第2のオブジェクト)の2次元オブジェクトの線分の2頂点C(x3’,y3’)、D(x4’,y4’)のデータを代入して、tc×td≦0であるか否か調べるようにしてもよい。
【0130】
そして敵車(第2のオブジェクト)の2次元オブジェクトの線分の2頂点が別々の領域に存在する場合には、敵車(第2のオブジェクト)の2次元オブジェクトの線分に対する自車(第1のオブジェクト)の2次元オブジェクトの頂点の領域を調べる(ステップS150,S160)。図7(A)(B)で説明したように、敵車(第2のオブジェクト)の2次元オブジェクトの線分の2頂点C(x3,y3)、D(x4,y4)を通る直線で2領域に分割し、自車(第1のオブジェクト)の2次元オブジェクトの2頂点A(x1,y1)、B(x2,y2)がいずれの領域に存在するか調べる。例えば前記(5−A)(5−B)式のA(x1,y1)、B(x2,y2)、に敵車(第2のオブジェクト)の2次元オブジェクトの線分の2頂点C(x3’,y3’)、D(x4’,y4’)のデータを代入して、前記(5−A)(5−B)式のC(x3,y3)、D(x4,y4)に、自車(第1のオブジェクト)の2次元オブジェクトの2頂点A(x1’,y1’)、B(x2’,y2’)のデータを代入して、tc×td≦0であるか否か調べるようにしてもよい。
【0131】
そして自車(第1のオブジェクト)の2次元オブジェクトの2頂点が別々の領域に存在する場合にはヒットしたと判断する(ステップS160,S170)。
【0132】
敵車(第2のオブジェクト)の2次元オブジェクトの線分の2頂点が同じ領域に存在する場合又は自車(第1のオブジェクト)の2次元オブジェクトの線分の2頂点が同じ領域に存在する場合には、すべての線分について処理を終わっていない場合には、ステップS130に戻り自車(第1のオブジェクト)の次の線分についてステップS130〜S180の処理を繰り返す(ステップS140、S160,S180)。
【0133】
すべての線分について処理を終わっていない場合には、内包チェックを行う(ステップS190)。内包チェックは、例えば図8、図9で説明した処理を行うようにしてもよい。
【0134】
そして内包チェックにより内包状態を検出した場合には、ヒットしたと判断する(ステップS190、S170)。
【0135】
また内包チェックにより内包状態を検出しなかった場合には、ヒットしていないと判断する(ステップS190、S200)。
【0136】
2.6 第1の位置補正処理
次に第1の位置補正処理部が行う第1の位置補正処理の一例について説明する。
【0137】
まずにヒット点の特定について説明する。本実施の形態では、めり込んだ車体(オブジェクト)の押し戻し補正やリアクションデータの計算を行うため、車体(オブジェクト)の衝突した点を特定する。
【0138】
図11はヒット点の特定について説明するための図である。
【0139】
まず第1のオブジェクト(自車)の2次元オブジェクト310と第2のオブジェクト(敵車)の2次元オブジェクト320を、第1のオブジェクトの2次元オブジェクト310の重心312と第2のオブジェクトの2次元オブジェクト320の重心322を結んだ線330を座標軸(方向ベクトルに相当)とする空間に変換する。
【0140】
次に変化後の第1のオブジェクト(自車)の2次元オブジェクト310’と第2のオブジェクト(敵車)の2次元オブジェクト320’について、第1のオブジェクト(自車)の2次元オブジェクトの各頂点(例えば314’)より重心を結んだ線330’に平行な直線(例えば316’)を引き、第2のオブジェクト(敵車)の2次元オブジェクト320’と交差する点318’を割り出す。
【0141】
次に第2のオブジェクト(敵車)の2次元オブジェクト320’の頂点についても、同様の処理を行う。すなわち第2のオブジェクト(敵車)の2次元オブジェクトの各頂点(例えば324’)より重心を結んだ線330’に平行な直線(例えば326’)を引き、 第1のオブジェクト(自車)の2次元オブジェクト310’と交差する点328’を割り出す。
【0142】
次に頂点と線分の交点との距離が最も遠い点をヒット点とする。例えば線分316’が最も長い場合には314’と318’をヒット点とする。このヒット点間の距離が重複距離に相当する。
【0143】
頂点からの平行線(z=a)と線分の交差判定については以下のようにして行うようにしてもよい。
【0144】
重心を結ぶ線をx軸(z=0)として座標変換した場合、まず2次元オブジェクトの頂点のz座標を調べ、線分の両端のZ座標間に、aがなければ平行線z=aと交わらないのでチェックしない。 交わることが分かったものについては、平行線のz座標は一定なので、線分の傾きによって交点を求めることができる。
【0145】
図12はヒット点特定処理の流れについて説明するためのフローチャート図である。ここで第1のオブジェクトの2次元オブジェクトの外形線分データと第2のオブジェクトの2次元オブジェクトの外形線分データが入力され、ヒット点座標と位置補正データが出力される。
【0146】
まず第1のオブジェクトの2次元オブジェクトの重心と第2のオブジェクト(敵車)の2次元オブジェクトと重心を結ぶ直線の角度を求める(ステップS210)。
【0147】
次に第1のオブジェクト(自車)の2次元オブジェクトの重心と第2のオブジェクト(敵車)の2次元オブジェクトを第1のオブジェクトの2次元オブジェクトの重心と第2のオブジェクトの2次元オブジェクトの重心を結んだ線を座標軸(Z軸)とする空間に変換する(ステップS220)。
【0148】
次に第1のオブジェクトの2次元オブジェクトの頂点が、第2のオブジェクトの2次元オブジェクトの線分の範囲に入っているか否か調べる(ステップS230)。例えば第1のオブジェクトの2次元オブジェクトの頂点について頂点(i)のZ座標が、第2のオブジェクトの2次元オブジェクトの線分(j)の両端のZ座標の範囲に入っているか否か調べる。
【0149】
そして頂点が線分の範囲に入っていない場合には、jをインクリメントして第2のオブジェクトの2次元オブジェクトの次の線分(j)についてステップS220の処理を行う。また第1のオブジェクトの2次元オブジェクトの頂点(i)について、第2のオブジェクトの2次元オブジェクトのすべての線分についてステップS230の処理が終わった場合には、iをインクリメントして第1のオブジェクトの2次元オブジェクトの次の頂点(i)についてステップS230の処理を行う。
【0150】
そして第1のオブジェクトの2次元オブジェクトの頂点が、第2のオブジェクトの2次元オブジェクトの線分の範囲に入っている場合には、線分の傾きから頂点からの平行線と線分の交点の座標を求める(ステップS240)。
【0151】
求めた線分の交点と頂点の距離を求め、2点の距離と重複距離データを比較し、2点の距離が最長距離データより長い場合には、2点の距離で重複距離データを更新する(ステップS250、S260)。
【0152】
第1のオブジェクトの2次元オブジェクトの頂点からの平行線と、第2のオブジェクトの2次元オブジェクトの頂点からの平行線と他方のオブジェクトの線分とについて線分交差判定が終了したら(例えばステップS230の処理)、重複距離データに基づき車両位置補正データを計算する(ステップS290)。
【0153】
2.7 第2の位置補正処理
次に第2の位置補正処理部が行う第2の位置補正処理の一例について説明する第1のオブジェクトが移動体(例えば車)で、第2のオブジェクトが静止物(例えば壁)である場合を例にとり、第2の位置補正処理について説明する。
【0154】
第1のオブジェクトの2次元オブジェクトと第2のオブジェクトである走行領域両端の壁の形状を近似した2次元オブジェクト(開いた多角形である)とのヒットチェックを行う。
【0155】
基本的なヒットは第1のヒットチェック処理と同様、2次元オブジェクトの線分データを用いてチェックする。それに加えて、各頂点の移動ベクトルともチェックをかけることにより、壁のすり抜けを防止する。
【0156】
正確、かつ確実に位置補正を行うため、段階的に補正処理を行うとよい。
【0157】
まず第1のオブジェクトの2次元オブジェクトの各頂点の移動ベクトルと第2のオブジェクトの2次元オブジェクトとの線分交差判定によるヒットチェックを行う。
【0158】
次に第1のオブジェクトの2次元オブジェクトと第2のオブジェクトの2次元オブジェクトの線分交差判定と第2のオブジェクトの2次元オブジェクトの頂点方向への押し出しを行う。
【0159】
次に第1のオブジェクトの2次元オブジェクトと第2のオブジェクトの2次元オブジェクトの線分交差判定と壁線分の法線方向への押し出しを行う。
【0160】
以上の3項目を順に適用することにより、確実に位置を補正することが出来る。
【0161】
図13は、第1のオブジェクトの2次元オブジェクトの各頂点の移動ベクトルと第2のオブジェクトの2次元オブジェクトとの線分交差判定によるヒットチェックについて説明するための図である。
【0162】
410、410’は時刻t及び時刻t+Δtにおける第1のオブジェクトの2次元オブジェクトであり、411〜418、411’〜418’は時刻t及び時刻t+Δtにおける第1のオブジェクトの2次元オブジェクトの各頂点であり、421〜428は第1のオブジェクトの2次元オブジェクトの移動ベクトルである。430は第2のオブジェクトの2次元オブジェクトである。
【0163】
本実施の形態の第2の交差判定処理では、第1のオブジェクトの2次元オブジェクトの各頂点の移動ベクトル421〜428と第2のオブジェクトの2次元オブジェクト430との線分交差判定を行う。そして交差しているすべての交点について、交点から移動後の頂点までの距離(重複距離)を調べる。
【0164】
図14は、重複距離について説明するための図である。
【0165】
移動ベクトル423、424,425,426、427が、第2のオブジェクトの2次元オブジェクト430と交差しているので、その交点443、444,445,446、447と、交点から移動後の頂点までの距離(重複距離)453、454,455,456、457を調べ、この重複距離が最も長いものをヒットした点とする。例えば図14では重複距離454,455が最も長いのでこの重複距離に基づき位置補正を行う。
【0166】
2.8 位置再補正処理
次に位置再補正処理部が行う位置再補正処理の一例について説明する。
【0167】
図15は位置補正処理を行った後さらに再補正が必要な場合について説明するための図である。
【0168】
例えば時刻tにおける第1のオブジェクトの2次元オブジェクト510が、時刻t+Δtにおいて520まで移動したときに、移動ベクトル540と交点542に基づき算出された重複距離544が最も長い重複距離であった場合に、この重複距離に基づき、移動後の第1のオブジェクトの2次元オブジェクトを530の位置まで補正したとする。
【0169】
この場合、補正後もなお第1のオブジェクトの2次元オブジェクト530は、第2のオブジェクトの2次元オブジェクトにめり込んだ状態にあるため、さらに補正を施すこと(位置再補正処理)が好ましい。
【0170】
位置再補正処理は、第2の補正処理による補正後の各オブジェクトの2次元オブジェクトについて交差判定を行い、第2のオブジェクトの衝突した頂点を特定し、補正を行う。
【0171】
図16は、位置再補正処理について説明するための図である。
【0172】
まず第1のオブジェクトの2次元オブジェクト520の交差した辺522の両端の移動ベクトル540,560を補間して補正方向570を求める。ここで補間の割合は第1のオブジェクトの2次元オブジェクト520の交点からの左右の距離の割合とする。
【0173】
次に第2のオブジェクトの2次元オブジェクト550の頂点552から求めた補正方向570に線を延ばし、第1のオブジェクトの2次元オブジェクト520との交点554までの距離を求める
第2のオブジェクトの2次元オブジェクトの全てについてチェックし、最も距離の遠かった点(ヒット点)について、求めた方向・距離(例えばベクトル572)に基づき各オブジェクトの位置を補正する。例えば第1のオブジェクトの2次元オブジェクト520を、ベクトル572の大きさ、向きに押し戻すようにしてもよい。
【0174】
さらに以下に説明する最終位置補正処理を行うようにしてもよい。
【0175】
2.9 最終位置補正処理
次に最終位置補正処理部が行う最終位置補正処理の一例について説明する。
【0176】
図17は最終位置補正処理について説明するための図である。
【0177】
まず、位置再補正処理後の第1のオブジェクトの2次元オブジェクト610と第2のオブジェクトの2次元オブジェクト620との交差判定を行う。
【0178】
そしてどれか1点でも交差すれば、第2のオブジェクトの2次元オブジェクトの法線方向622について第1のオブジェクトの2次元オブジェクトとの距離を計算する。
【0179】
そして最も距離の遠かったものをヒット点とし、位置を補正する。
【0180】
上記処理を第2のオブジェクトの2次元オブジェクトの全てについて行う。
【0181】
なお第1のオブジェクトの移動ベクトルの隙間に入り込むぐらい小さい第2のオブジェクトはさけるようにすることが好ましい。
【0182】
図18は第1のオブジェクトの移動ベクトルと第2のオブジェクトのヒットチェック処理の一例について説明するためのフローチャート図である。
【0183】
まず第2の位置補正処理を行う(ステップS310)。
【0184】
次に位置再補正処理を行う(ステップS320)。
【0185】
第2の位置補正処理又は位置再補正処理でヒットした場合には最終位置補正処理を行う(ステップS330、S340)。
【0186】
図19は第2の位置補正処理の一例について説明するためのフローチャート図である。
【0187】
まず第1のオブジェクトの2次元オブジェクトの移動ベクトルを計算する(ステップS410)。そして第1のオブジェクトの2次元オブジェクトの移動ベクトル(i)と第2のオブジェクトの2次元オブジェクト(j)について線分交差判定を行う(ステップS420)。
【0188】
ヒットしている場合には、第1のオブジェクトの2次元オブジェクトの移動ベクトル(i)と第2のオブジェクトの2次元オブジェクト(j)の交点から第1のオブジェクトの2次元オブジェクトの頂点までの距離を演算する(ステップS420,S430)。
【0189】
第2のオブジェクトの2次元オブジェクト(j)について、第1のオブジェクトの2次元オブジェクトの移動ベクトル(i)のすべてとステップS420〜S430の処理を終了していない場合には、iをインクリメントして次の移動ベクトル(i)についてステップS420〜S440の処理を行う(ステップS440,S450)。
【0190】
また第2のオブジェクトの2次元オブジェクト(j)について、第1のオブジェクトの2次元オブジェクトの移動ベクトル(i)のすべてについてステップS420〜S430の処理を終了した場合であって、第2のオブジェクトの2次元オブジェクト(j)のすべてについてステップS420〜S440の処理が終了していない場合には、jをインクリメントして次の2次元オブジェクト(j)についてステップS420〜S460の処理を行う(ステップS460,S470)。
【0191】
また第1のオブジェクトの2次元オブジェクトの移動ベクトル(i)と第2のオブジェクトの2次元オブジェクト(j)のすべてについてステップS420〜S460の処理が終了した場合には、交点から第1のオブジェクトの2次元オブジェクトの頂点までの距離がマットも長かった頂点をヒット点として位置を補正する(ステップS460、S480)。
【0192】
図20は、位置再補正処理の一例について説明するためのフローチャート図である。
【0193】
まず第1のオブジェクトの2次元オブジェクトの線分(i)と第2のオブジェクトの2次元オブジェクトの線分(j)について線分交差判定を行う(ステップS510)。
【0194】
ヒットしている場合には、第1のオブジェクトの2次元オブジェクト(i)にめり込んでいる第2のオブジェクトの2次元オブジェクト(j)の頂点を判定する(ステップS520)。
【0195】
次に第2のオブジェクトの2次元オブジェクト(j)の両端の移動ベクトルと交点の位置から補正方向を決定する(ステップS530)。
【0196】
求めた補正方向について、第2のオブジェクトの2次元オブジェクト(j)と第1のオブジェクトの2次元オブジェクトの線分(i)の距離を求める(ステップS540)。
【0197】
第2のオブジェクトの2次元オブジェクト(j)について、第1のオブジェクトの2次元オブジェクトの線分(i)のすべてとステップS510〜S540の処理を終了していない場合には、iをインクリメントして次の第1のオブジェクトの2次元オブジェクトの線分(i)についてステップS510〜S540の処理を行う(ステップS550、S560)。
【0198】
また第2のオブジェクトの2次元オブジェクト(j)について、第1のオブジェクトの2次元オブジェクトの線分(i)のすべてについてステップS510〜S540の処理を終了した場合であって、第2のオブジェクトの2次元オブジェクト(j)のすべてについてステップS510〜S550の処理が終了していない場合には、jをインクリメントして次の2次元オブジェクト(j)についてステップS510〜S570の処理を行う(ステップS570,S580)。
【0199】
また第1のオブジェクトの2次元オブジェクトの線分(i)と第2のオブジェクトの2次元オブジェクト(j)のすべてについてステップS510〜S580の処理が終了した場合には、交点から第1のオブジェクトの2次元オブジェクトの頂点までの距離がもットも長かった頂点をヒット点として位置を補正する(ステップS570、S590)。
【0200】
図21は、最終補正処理の一例について説明するためのフローチャート図である。
【0201】
まず第1のオブジェクトの2次元オブジェクトの線分(i)と第2のオブジェクトの2次元オブジェクトの線分(j)について線分交差判定を行う(ステップS610)。
【0202】
ヒットしている場合には、第2のオブジェクトの2次元オブジェクトの線分(j)と、すべての第1のオブジェクトの2次元オブジェクトの線分(i)について、第2のオブジェクトの2次元オブジェクトの線分(j)の法線方向の距離を算出し(ステップS640)、最も距離の長かった頂点をヒット点として位置を補正する(ステップS650)。
【0203】
ヒットしていない場合、第1のオブジェクトの2次元オブジェクトの線分(i)すべてについてステップS610の処理を終えるまで、iをインクリメントしてステップS610を行う。
【0204】
2次元オブジェクトの線分(i)すべてについて、ステップS610の処理を終えた場合又は第2のオブジェクトの2次元オブジェクトの線分(j)についてヒットがあった場合には、第2のオブジェクトの2次元オブジェクトの線分(j)すべてについてステップS610〜S630の処理を終えるまで、jをインクリメントしてステップS610に戻る。
【0205】
4. ハードウェア構成
次に、本実施形態を実現できるハードウェアの構成の一例について図22を用いて説明する。
【0206】
メインプロセッサ900は、CD982(情報記憶媒体)に格納されたプログラム、通信インターフェース990を介して転送されたプログラム、或いはROM950(情報記憶媒体の1つ)に格納されたプログラムなどに基づき動作し、ゲーム処理、画像処理、音処理などの種々の処理を実行する。
【0207】
コプロセッサ902は、メインプロセッサ900の処理を補助するものであり、高速並列演算が可能な積和算器や除算器を有し、マトリクス演算(ベクトル演算)を高速に実行する。例えば、オブジェクトを移動させたり動作(モーション)させるための物理シミュレーションに、マトリクス演算などの処理が必要な場合には、メインプロセッサ900上で動作するプログラムが、その処理をコプロセッサ902に指示(依頼)する。
【0208】
ジオメトリプロセッサ904は、座標変換、透視変換、光源計算、曲面生成などのジオメトリ処理を行うものであり、高速並列演算が可能な積和算器や除算器を有し、マトリクス演算(ベクトル演算)を高速に実行する。例えば、座標変換、透視変換、光源計算などの処理を行う場合には、メインプロセッサ900で動作するプログラムが、その処理をジオメトリプロセッサ904に指示する。
【0209】
データ伸張プロセッサ906は、圧縮された画像データや音データを伸張するデコード処理を行ったり、メインプロセッサ900のデコード処理をアクセレートする処理を行う。これにより、オープニング画面、インターミッション画面、エンディング画面、或いはゲーム画面などにおいて、MPEG方式等で圧縮された動画像を表示できるようになる。なお、デコード処理の対象となる画像データや音データは、ROM950、CD982に格納されたり、或いは通信インターフェース990を介して外部から転送される。
【0210】
描画プロセッサ910は、ポリゴンや曲面などのプリミティブ(プリミティブ面)で構成されるオブジェクトの描画(レンダリング)処理を高速に実行するものである。オブジェクトの描画の際には、メインプロセッサ900は、DMAコントローラ970の機能を利用して、オブジェクトデータを描画プロセッサ910に渡すとともに、必要であればテクスチャ記憶部924にテクスチャを転送する。すると、描画プロセッサ910は、これらのオブジェクトデータやテクスチャに基づいて、Zバッファなどを利用した隠面消去を行いながら、オブジェクトをフレームバッファ922に高速に描画する。また、描画プロセッサ910は、αブレンディング(半透明処理)、デプスキューイング、ミップマッピング、フォグ処理、バイリニア・フィルタリング、トライリニア・フィルタリング、アンチエリアシング、シェーディング処理なども行うことができる。そして、1フレーム分の画像がフレームバッファ922に書き込まれると、その画像はディスプレイ912に表示される。
【0211】
サウンドプロセッサ930は、多チャンネルのADPCM音源などを内蔵し、BGM、効果音、音声などの高品位のゲーム音を生成する。生成されたゲーム音は、スピーカ932から出力される。
【0212】
ゲームコントローラ942(レバー、ボタン、筺体、パッド型コントローラ又はガン型コントローラ等)からの操作データや、メモリカード944からのセーブデータ、個人データは、シリアルインターフェース940を介してデータ転送される。
【0213】
ROM950にはシステムプログラムなどが格納される。なお、業務用ゲームシステムの場合には、ROM950が情報記憶媒体として機能し、ROM950に各種プログラムが格納されることになる。なお、ROM950の代わりにハードディスクを利用するようにしてもよい。
【0214】
RAM960は、各種プロセッサの作業領域として用いられる。
【0215】
DMAコントローラ970は、プロセッサ、メモリ(RAM、VRAM、ROM等)間でのDMA転送を制御するものである。
【0216】
CDドライブ980は、プログラム、画像データ、或いは音データなどが格納されるCD982(情報記憶媒体)を駆動し、これらのプログラム、データへのアクセスを可能にする。
【0217】
通信インターフェース990は、ネットワークを介して外部との間でデータ転送を行うためのインターフェースである。この場合に、通信インターフェース990に接続されるネットワークとしては、通信回線(アナログ電話回線、ISDN)、高速シリアルバスなどを考えることができる。そして、通信回線を利用することでインターネットを介したデータ転送が可能になる。また、高速シリアルバスを利用することで、他の画像生成システムとの間でのデータ転送が可能になる。
【0218】
なお、本発明の各手段は、その全てを、ハードウェアのみにより実現(実行)してもよいし、情報記憶媒体に格納されるプログラムや通信インターフェースを介して配信されるプログラムのみにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。
【0219】
そして、本発明の各手段をハードウェアとプログラムの両方により実現する場合には、情報記憶媒体には、本発明の各手段をハードウェアを利用して実現するためのプログラムが格納されることになる。より具体的には、上記プログラムが、ハードウェアである各プロセッサ902、904、906、910、930等に処理を指示するとともに、必要であればデータを渡す。そして、各プロセッサ902、904、906、910、930等は、その指示と渡されたデータとに基づいて、本発明の各手段を実現することになる。
【0220】
図23(A)に、本実施形態を業務用ゲームシステムに適用した場合の例を示す。プレーヤは、ディスプレイ1100上に映し出されたゲーム画像を見ながら、レバー1102、ボタン1104等を操作してゲームを楽しむ。内蔵されるシステムボード(サーキットボード)1106には、各種プロセッサ、各種メモリなどが実装される。そして、本発明の各手段を実行するための情報(プログラム或いはデータ)は、システムボード1106上の情報記憶媒体であるメモリ1108に格納される。以下、この情報を格納情報と呼ぶ。
【0221】
図23(B)に、本実施形態を家庭用のゲームシステムに適用した場合の例を示す。プレーヤはディスプレイ1200に映し出されたゲーム画像を見ながら、ゲームコントローラ1202、1204を操作してゲームを楽しむ。この場合、上記格納情報は、本体システムに着脱自在な情報記憶媒体であるCD1206、或いはメモリカード1208、1209等に格納されている。
【0222】
図23(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に伝送し端末において出力することになる。
【0223】
なお、図23(C)の構成の場合に、本発明の各手段を、ホスト装置(サーバ)と端末とで分散して実行するようにしてもよい。また、本発明の各手段を実行するための上記格納情報を、ホスト装置(サーバ)の情報記憶媒体と端末の情報記憶媒体に分散して格納するようにしてもよい。
【0224】
またネットワークに接続する端末は、家庭用ゲームシステムであってもよいし業務用ゲームシステムであってもよい。そして、業務用ゲームシステムをネットワークに接続する場合には、業務用ゲームシステムとの間で情報のやり取りが可能であるとともに家庭用ゲームシステムとの間でも情報のやり取りが可能な携帯型情報記憶装置(メモリカード、携帯型ゲーム装置)を用いることが望ましい。
【0225】
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。
【0226】
また、本発明のうち従属請求項に係る発明においては、従属先の請求項の構成要件の一部を省略する構成とすることもできる。また、本発明の1の独立請求項に係る発明の要部を、他の独立請求項に従属させることもできる。
【0227】
たとえは、本実施の形態では第1のオブジェクトが移動オブジェクト、第2のオブジェクトが地形オブジェクトで有る場合を例にとり説明したがこれに限られない。第1のオブジェクトと第2のオブジェクトの両方が移動するオブジェクトである場合でもよい。
【0228】
また、本発明は種々のゲーム(格闘ゲーム、シューティングゲーム、ロボット対戦ゲーム、スポーツゲーム、競争ゲーム、ロールプレイングゲーム、音楽演奏ゲーム、ダンスゲーム等)に適用できる。
【0229】
また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレーヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード等の種々の画像生成システム(ゲームシステム)に適用できる。
【図面の簡単な説明】
【図1】本実施形態の画像生成システム(例えばゲームシステム)の機能ブロック図の一例である。
【図2】本実施の形態のヒットチェックの概要について説明するための図である。
【図3】図3(A)(B)は、オブジェクトの2次元オブジェクト(外形線分データ)の一例を示した図である。
【図4】オブジェクトの2次元オブジェクト(外形線分データ)のデータの内容について説明するための図である。
【図5】オブジェクトの2次元オブジェクト(外形線分データ)の頂点の成す角度θについて説明するための図である。
【図6】線分交差判定処理について説明するための図である。
【図7】線分交差判定処理について説明するための図である。
【図8】車体の内包チェックについて説明するための図である。
【図9】内包判定の簡易チェック方法について説明するための図である。
【図10】線分交差判定処理に関するフローチャート図である。
【図11】ヒット点の特定について説明するための図である。
【図12】ヒット点特定処理の流れについて説明するためのフローチャート図である。
【図13】第1のオブジェクトの2次元オブジェクトの各頂点の移動ベクトルと第2のオブジェクトの2次元オブジェクトとの線分交差判定によるヒットチェックについて説明するための図である。
【図14】重複距離について説明するための図である。
【図15】位置補正処理を行った後さらに再補正が必要な場合について説明するための図である。
【図16】位置再補正処理について説明するための図である。
【図17】最終位置補正処理について説明するための図である。
【図18】第1のオブジェクトの移動ベクトルと第2のオブジェクトのヒットチェック処理の一例について説明するためのフローチャート図である。
【図19】第2の位置補正処理の一例について説明するためのフローチャート図である。
【図20】位置再補正処理の一例について説明するためのフローチャート図である。
【図21】最終補正処理の一例について説明するためのフローチャート図である。
【図22】本実施形態を実現できるハードウェアの構成の一例を示す図である。
【図23】図23(A)、(B)、(C)は、本実施形態が適用される種々の形態のシステムの例を示す図である。
【符号の説明】
100 処理部
110 ゲーム処理部
112 2次元オブジェクト生成部
114 線分交差判定部
116 第1の位置補正処理部
120 第2の位置補正処理部
122 位置再補正処理部
124 2次元オブジェクト変更部
126 最終位置補正処理部
130 画像生成部
132 ジオメトリ処理部
140 描画部
150 音生成部
160 操作部
170 記憶部
172 メインメモリ(主記憶部)
174 フレームバッファ(描画バッファ)
180 情報記憶媒体
190 表示部
192 音出力部
194 携帯型情報記憶装置
196 通信部

Claims (7)

  1. 画像生成を行う画像生成システムであって、
    第1のオブジェクトと第2のオブジェクトが交差している場合に、第1のオブジェクトの2次元近似オブジェクトと第2のオブジェクトの2次元近似オブジェクトの代表点を結ぶ方向ベクトルをもとめ、第1のオブジェクトの2次元近似オブジェクトの頂点から前記方向ベクトルに平行な直線を引いて、第1のオブジェクトの2次元近似オブジェクトの内部において第2のオブジェクトの2次元近似オブジェクトを構成する辺と交わる交点を求め当該交点と頂点の距離と、第2のオブジェクトの2次元近似オブジェクトの頂点から前記方向ベクトルに平行な直線を引いて、第2のオブジェクトの2次元近似オブジェクトの内部において第1のオブジェクトの2次元近似オブジェクトを構成する辺と交わる交点をもとめ当該交点と頂点の距離とをもとめ、最も長い距離を第1のオブジェクトの2次元近似オブジェクトと第2のオブジェクトの2次元近似オブジェクトの重複距離として決定し、オブジェクト空間における第1のオブジェクト及び第2のオブジェクトの少なくとも一方の位置を前記重複距離に基づき前記方向ベクトルの方向に移動させて補正する位置補正手段と、
    補正された位置に基づいて第1のオブジェクトと第2のオブジェクトの画像を生成する画像生成手段と、
    を含むことを特徴とする画像生成システム。
  2. 請求項1において、
    第1のオブジェクトの2次元近似オブジェクトと第2のオブジェクトの2次元近似オブジェクトの各辺について線分交差判定を行い、判定結果に基づき、第1のオブジェクトと第2のオブジェクトの交差の有無を判定する交差判定手段と、
    をさらに含むことを特徴とする画像生成システム。
  3. 請求項1又は2において、
    オブジェクト空間における第1のオブジェクトと第2のオブジェクトを2次元平面に投影し、投影された第1のオブジェクト及び第2のオブジェクトをそれぞれ多角形で近似して第1のオブジェクト及び第2のオブジェクトの2次元近似オブジェクトを生成する2次元近似オブジェクト生成手段を、含むことを特徴とする画像生成システム。
  4. コンピュータを、
    第1のオブジェクトと第2のオブジェクトが交差している場合に、第1のオブジェクトの2次元近似オブジェクトと第2のオブジェクトの2次元近似オブジェクトの代表点を結ぶ方向ベクトルをもとめ、第1のオブジェクトの2次元近似オブジェクトの頂点から前記方向ベクトルに平行な直線を引いて、第1のオブジェクトの2次元近似オブジェクトの内部において第2のオブジェクトの2次元近似オブジェクトを構成する辺と交わる交点を求め当該交点と頂点の距離と、第2のオブジェクトの2次元近似オブジェクトの頂点から前記方向ベクトルに平行な直線を引いて、第2のオブジェクトの2次元近似オブジェクトの内部において第1のオブジェクトの2次元近似オブジェクトを構成する辺と交わる交点をもとめ当該交点と頂点の距離とをもとめ、最も長い距離を第1のオブジェクトの2次元近似オブジェクトと第2のオブジェクトの2次元近似オブジェクトの重複距離として決定し、オブジェクト空間における第1のオブジェクト及び第2のオブジェクトの少なくとも一方の位置を前記重複距離に基づき前記方向ベクトルの方向に移動させて補正する位置補正手段と、
    補正された位置に基づいて第1のオブジェクトと第2のオブジェクトの画像を生成する画像生成手段と、
    して機能させることを特徴とするプログラム。
  5. 請求項において、
    第1のオブジェクトの2次元近似オブジェクトと第2のオブジェクトの2次元近似オブジェクトの各辺について線分交差判定を行い、判定結果に基づき、第1のオブジェクトと第2のオブジェクトの交差の有無を判定する交差判定手段と、
    して機能させることを特徴とするプログラム。
  6. 請求項4又は5において、
    オブジェクト空間における第1のオブジェクトと第2のオブジェクトを2次元平面に投影し、投影された第1のオブジェクト及び第2のオブジェクトをそれぞれ多角形で近似して第1のオブジェクト及び第2のオブジェクトの2次元近似オブジェクトを生成する2次元近似オブジェクト生成手段として機能させることを特徴とするプログラム。
  7. コンピュータにより読みとり可能な情報記憶媒体であって、請求項乃至のいずれかに記載のプログラムを記憶することを特徴とする情報記憶媒体。
JP2003133613A 2003-05-12 2003-05-12 画像生成システム、プログラム及び情報記憶媒体 Expired - Fee Related JP4229318B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003133613A JP4229318B2 (ja) 2003-05-12 2003-05-12 画像生成システム、プログラム及び情報記憶媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003133613A JP4229318B2 (ja) 2003-05-12 2003-05-12 画像生成システム、プログラム及び情報記憶媒体

Publications (2)

Publication Number Publication Date
JP2004334802A JP2004334802A (ja) 2004-11-25
JP4229318B2 true JP4229318B2 (ja) 2009-02-25

Family

ID=33508095

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003133613A Expired - Fee Related JP4229318B2 (ja) 2003-05-12 2003-05-12 画像生成システム、プログラム及び情報記憶媒体

Country Status (1)

Country Link
JP (1) JP4229318B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109690450A (zh) * 2017-11-17 2019-04-26 腾讯科技(深圳)有限公司 Vr场景下的角色模拟方法和终端设备

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4335160B2 (ja) 2005-03-02 2009-09-30 任天堂株式会社 衝突判定プログラムおよび衝突判定装置
US7928993B2 (en) * 2006-07-28 2011-04-19 Intel Corporation Real-time multi-resolution 3D collision detection using cube-maps

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109690450A (zh) * 2017-11-17 2019-04-26 腾讯科技(深圳)有限公司 Vr场景下的角色模拟方法和终端设备
CN109690450B (zh) * 2017-11-17 2020-09-29 腾讯科技(深圳)有限公司 Vr场景下的角色模拟方法和终端设备
US10953336B2 (en) 2017-11-17 2021-03-23 Tencent Technology (Shenzhen) Company Limited Role simulation method and terminal apparatus in VR scene

Also Published As

Publication number Publication date
JP2004334802A (ja) 2004-11-25

Similar Documents

Publication Publication Date Title
US7922584B2 (en) Image generation method and information storage medium with program for video game in which operation of the controller beyond a predetermined angle causes a character to attack
US7636087B2 (en) Program, information storage medium, image generation system, and image generation method
JP3707995B2 (ja) ゲームシステム及び情報記憶媒体
JP3747050B1 (ja) プログラム、情報記憶媒体、及び画像生成システム
JP4535604B2 (ja) ゲームシステム及びプログラム
US20040219978A1 (en) Image generation method, program, and information storage medium
JP4508918B2 (ja) 画像生成システム及び情報記憶媒体
US6890261B2 (en) Game system, program and image generation method
JP3656012B2 (ja) ゲームシステム及び情報記憶媒体
JP3442344B2 (ja) ゲームシステム及び情報記憶媒体
JP4229318B2 (ja) 画像生成システム、プログラム及び情報記憶媒体
JP4367804B2 (ja) 画像生成システム及び情報記憶媒体
JP3576126B2 (ja) 画像生成システム、プログラム及び情報記憶媒体
JP4266121B2 (ja) 画像生成システム、プログラム及び情報記憶媒体
JP4329965B2 (ja) ゲームシステム及び情報記憶媒体
JP2001167291A (ja) 画像生成システム及び情報記憶媒体
JP2003051024A (ja) 画像生成システム及び情報記憶媒体
JP5054908B2 (ja) プログラム、情報記憶媒体、及び画像生成システム
JP4497690B2 (ja) ゲームシステム及び情報記憶媒体
JP2001250128A (ja) ゲームシステム及び情報記憶媒体
JP4574058B2 (ja) 画像生成システム、プログラム及び情報記憶媒体
JP3614340B2 (ja) ゲームシステム及び情報記憶媒体
JP3377490B2 (ja) ゲームシステム及び情報記憶媒体
JP4641602B2 (ja) ゲームシステム及び情報記憶媒体
JP2005122479A (ja) プログラム、情報記憶媒体及び画像生成装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060327

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080827

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081021

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: 20081126

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: 20081127

R150 Certificate of patent or registration of utility model

Ref document number: 4229318

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: 20111212

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111212

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111212

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111212

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121212

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: 20121212

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131212

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

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

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees