JP2009251887A - 画像生成システム、プログラム及び情報記憶媒体 - Google Patents
画像生成システム、プログラム及び情報記憶媒体 Download PDFInfo
- Publication number
- JP2009251887A JP2009251887A JP2008098587A JP2008098587A JP2009251887A JP 2009251887 A JP2009251887 A JP 2009251887A JP 2008098587 A JP2008098587 A JP 2008098587A JP 2008098587 A JP2008098587 A JP 2008098587A JP 2009251887 A JP2009251887 A JP 2009251887A
- Authority
- JP
- Japan
- Prior art keywords
- moving object
- primitive
- control unit
- primitive surface
- moving
- 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.)
- Withdrawn
Links
Images
Abstract
【課題】任意の地形上の群れて行動する移動体オブジェクトを、少ない処理負荷でリアルに表現できる画像生成システム、プログラム及び情報記憶媒体を提供する。
【解決手段】移動体オブジェクト制御部110は、オブジェクト空間における移動体オブジェクトを移動制御する。画像生成部120は、移動体オブジェクト制御部110によって移動制御された移動体オブジェクトの画像を生成する。移動体オブジェクト制御部110は、複数のプリミティブ面で構成されたマップ上を移動する移動体オブジェクトが第1のプリミティブ面から該第1のプリミティブ面に隣接する第2のプリミティブ面に移動するとき、移動体オブジェクトの移動ベクトルと第2のプリミティブ面の法線ベクトルとを用いて、移動体オブジェクトが第2のプリミティブ面にマッピングされる位置を求める。
【選択図】図2
【解決手段】移動体オブジェクト制御部110は、オブジェクト空間における移動体オブジェクトを移動制御する。画像生成部120は、移動体オブジェクト制御部110によって移動制御された移動体オブジェクトの画像を生成する。移動体オブジェクト制御部110は、複数のプリミティブ面で構成されたマップ上を移動する移動体オブジェクトが第1のプリミティブ面から該第1のプリミティブ面に隣接する第2のプリミティブ面に移動するとき、移動体オブジェクトの移動ベクトルと第2のプリミティブ面の法線ベクトルとを用いて、移動体オブジェクトが第2のプリミティブ面にマッピングされる位置を求める。
【選択図】図2
Description
本発明は、画像生成システム、プログラム及び情報記憶媒体に関する。
画像生成システムの処理速度が向上し、画面上により多くのキャラクタを表示できるようになっている。例えばゲーム画像において、エフェクト効果を表現するために動物や虫などの群れを表現した画像を表示することで、よりリアルさを高めることができる。
ところが、群れを表現する画像の生成にはリアルタイム性が要求されるため、群れを構成する複数のキャラクタをそれぞれ別個に処理すると、他の処理を圧迫してしまう。そのため、より少ない負荷で、リアルな群れを表現する画像を生成できることが望ましい。
例えば特許文献1には、より少ない処理負荷で群れを表現する技術が開示されている。この技術では、群れの中の1つのキャラクタをリーダーとして決定し、該群れの他のキャラクタをリーダーに追従させることで、処理負荷を軽減する。
ところで、3次元のオブジェクト空間において、山や谷等の起伏に富んだ地形や、別の物体が散乱した地形の上を、群れで行動する複数のキャラクタの動きを表現する場合がある。この場合、これら地形上をキャラクタが這うように表現することで、よりリアルの画像を提供できる。この場合も、群れを構成する各キャラクタを、より少ない処理負荷で地形上にマッピングできることが望ましい。
例えば特許文献2には、起伏に富んだ地形上に、キャラクタに相当する移動体オブジェクトをマッピングする技術が開示されている。この技術では、移動体オブジェクトを2次元の平面上で移動処理して2次元位置情報(X軸方向の座標、Z軸方向の座標)を求め、該2次元位置情報に最も近い距離の基準点の位置情報を読み出す。そして、該基準点の位置情報の高さ情報を用いて、当該移動体オブジェクトのY軸方向の座標を求め、求められた3次元位置情報に基づき当該移動体オブジェクトをオブジェクト空間にマッピングする。
特開2000−172868号公報
特開平7−116355号公報
しかしながら、特許文献1に開示された技術では、群れ全体の動きを表現できるものの、群れの中のキャラクタの個々の細かい動きを表現することが難しい。群れの中のキャラクタの個々の細かい動きを表現すれば、よりリアルな画像を生成できる。
また、特許文献2に開示された技術を、個々のキャラクタのマッピングの処理に適用すると、リアルタイム処理に必要な他の処理を圧迫してしまう。起伏に富んだ地形のみならず、天井を這う複数のキャラクタの画像を生成する場合、個々のキャラクタについて天井の表裏を判別する等の処理が必要となり、群れで行動するキャラクタ群の画像の生成がますます困難となる。
更に、群れて行動するキャラクタを表現できたとしても、キャラクタ同士が衝突した場合にすり抜けて動き回り、表現に違和感が残るという問題がある。その一方で、群れて行動するキャラクタ同士の衝突回避の処理をそれぞれ正確に行おうとすると、リアルタイム処理が困難となる。従って、衝突回避処理もより少ない処理負荷で実現することが望ましい。
このように、群れを表現する移動体オブジェクトの移動制御の個々の処理は、リアルな表現を行うために必要である。その反面、各処理の負荷を削減することが必須となる。
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、任意の地形上を群れて行動する移動体オブジェクトを、少ない処理負荷でリアルに表現できる画像生成システム、プログラム及び情報記憶媒体を提供することにある。
(1)本発明は、画像を生成するための画像生成システムであって、オブジェクト空間における移動体オブジェクトを移動制御する移動体オブジェクト制御部と、前記移動体オブジェクト制御部によって移動制御された前記移動体オブジェクトの画像を生成する画像生成部とを含み、前記移動体オブジェクト制御部が、複数のプリミティブ面で構成されたマップ上を移動する移動体オブジェクトが第1のプリミティブ面から該第1のプリミティブ面に隣接する第2のプリミティブ面に移動するとき、前記移動体オブジェクトの移動ベクトルと前記第2のプリミティブ面の法線ベクトルとを用いて、前記移動体オブジェクトが前記第2のプリミティブ面にマッピングされる位置を求める画像生成システムに関係する。また本発明は、上記各部としてコンピュータを機能させるプログラムに関係する。また本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶(記録)した情報記憶媒体に関係する。
ここで、第2のプリミティブ面にマッピングされる位置とは、第2のプリミティブ面上での移動体オブジェクトの位置を特定するものである。更に具体的には、第2のプリミティブ面に接する移動体オブジェクトの位置(代表位置)である。なお、第2のプリミティブ面にマッピングされる位置は、第2のプリミティブ面に接する位置から上方に所定距離だけ離れた位置としてもよい。
本発明においては、移動体オブジェクトの移動ベクトルと、当該移動体オブジェクトの移動先の第2のプリミティブ面の法線ベクトルとを用いて、第2のプリミティブ面上に移動体オブジェクトが移動した場合の位置を求める。従って、移動体オブジェクトが移動ベクトルに従って2次元的に移動した座標を、座標変換して3次元の位置情報を求めるといった処理が不要となり、移動先の第2のプリミティブ面での移動体オブジェクトの位置を少ない処理負荷で求めることができるようになる。
(2)また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記移動体オブジェクト制御部が、前記移動ベクトルに基づいて、前記移動体オブジェクトが前記第1のプリミティブ面から前記第2のプリミティブ面に移動するか否かを検出し、前記移動体オブジェクトが前記第2のプリミティブ面に移動すると検出されたことを条件に、前記移動体オブジェクトが前記第2のプリミティブ面にマッピングされる位置を求めてもよい。
本発明によれば、第2のプリミティブ面への移動が検出されたことを条件に、移動体オブジェクトの第2のプリミティブ面上の位置を求めるため、無駄にマッピングされる位置を求める必要がなくなり、移動体オブジェクトがマッピングされる位置を求める処理の負荷を軽減できる。
(3)また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記移動体オブジェクト制御部が、前記第1のプリミティブ面と前記第2のプリミティブ面との境界に設定された仮想プリミティブ面と、前記移動ベクトルとの交差判定を行うことによって、前記移動体オブジェクトが前記第1のプリミティブ面から前記第2のプリミティブ面に移動するか否かを検出してもよい。
本発明によれば、移動前のプリミティブ面と移動先のプリミティブ面とで特定される仮想プリミティブ面と、移動ベクトルとの交差判定により、移動先のプリミティブ面に移動したか否かを判別できるので、移動検出の判別と、移動先のプリミティブ面の特定とを簡素な処理で実現できる。
(4)また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記移動体オブジェクト制御部が、前記移動体オブジェクトが前記第2のプリミティブ面にマッピングされる位置として、前記移動ベクトルと前記法線ベクトルとを用いて生成される直線と、前記第2のプリミティブ面との交点を求めてもよい。
本発明によれば、移動ベクトルと移動先の第2のプリミティブ面の法線ベクトルとにより特定される直線と、第2のプリミティブ面との交点を求めるだけで、移動体オブジェクトの第2のプリミティブ面上の位置を求めることができるので、処理負荷を大幅に軽減できる。
(5)また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記移動体オブジェクト制御部が、前記直線を、前記移動ベクトルの終点を通り前記法線ベクトルに平行な直線として求めてもよい。
本発明によれば、移動先の第2のプリミティブ面の法線ベクトルの向きに関わらず、例えば天井を構成する第2のプリミティブ面にマッピングされる位置を、容易に求めることができるようになる。
(6)また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記移動体オブジェクト制御部が、前記移動体オブジェクトが前記第2のプリミティブ面に移動するとき、前記第2のプリミティブ面の状況に応じて移動後の前記移動体オブジェクトの移動制御を変化させてもよい。
(7)また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記移動体オブジェクト制御部が、前記移動体オブジェクトの特性に応じて、前記第2のプリミティブ面に移動後の前記移動体オブジェクトの移動制御を変化させてもよい。
本発明によれば、移動体オブジェクトが移動する地形を表現するマップや、移動体オブジェクトに応じて、移動制御を異ならせることができるので、よりリアルな移動体オブジェクトの動きを表現できる。
(8)また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記移動体オブジェクトがマッピングされるプリミティブ面を特定する情報を記憶するマッピング情報記憶部を含み、前記移動体オブジェクト制御部が、前記マッピング情報記憶部に記憶された情報に基づいて、当該移動体オブジェクトの移動先のプリミティブ面の候補を特定し、前記移動ベクトルに基づいて、前記移動先のプリミティブ面の候補の中から前記移動体オブジェクトの移動先のプリミティブ面を求めてもよい。
本発明によれば、移動先のプリミティブ面の候補を特定し、特定された候補の中から移動先のプリミティブ面を求めるようにしたので、移動検出処理の無駄を省き処理負荷を大幅に削減できる。
(9)また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記移動体オブジェクト制御部が、前記マッピング情報記憶部に記憶された情報に基づいて、当該移動体オブジェクトがマッピングされたプリミティブ面にマッピングされる移動体オブジェクト同士で衝突判定を行い、衝突判定の結果に基づいて、前記プリミティブ面にマッピングされた前記移動体オブジェクトの少なくとも1つの移動制御を行ってもよい。
本発明によれば、移動体オブジェクトがマッピングされたプリミティブ面にマッピングされる移動体オブジェクトを対象に衝突判定処理を行えばよいので、すべての移動体オブジェクトについて衝突判定処理を行う必要がなくなり、処理負荷を軽減できる。
(10)また本発明は、画像を生成するための画像生成システムであって、オブジェクト空間における移動体オブジェクトを移動制御する移動体オブジェクト制御部と、前記移動体オブジェクト制御部によって移動制御される前記移動体オブジェクトがマッピングされるプリミティブ面を特定する情報を記憶するマッピング情報記憶部と、前記移動体オブジェクトの画像を生成する画像生成部とを含み、前記移動体オブジェクト制御部が、前記マッピング情報記憶部に記憶された情報に基づいて、当該移動体オブジェクトがマッピングされたプリミティブ面にマッピングされる移動体オブジェクト同士で衝突判定を行い、衝突判定の結果に基づいて、前記プリミティブ面にマッピングされる前記移動体オブジェクトの少なくとも1つの移動制御を行う画像生成システムに関係する。また本発明は、上記各部としてコンピュータを機能させるプログラムに関係する。また本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶(記録)した情報記憶媒体に関係する。
本発明によれば、移動体オブジェクトがマッピングされたプリミティブ面にマッピングされる移動体オブジェクトを対象に衝突判定処理を行えばよいので、すべての移動体オブジェクトについて衝突判定処理を行う必要がなくなり、処理負荷を軽減できる。
(11)また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記移動体オブジェクト制御部が、前記移動体オブジェクトの特性に応じて、衝突判定を行う範囲を異ならせてもよい。
本発明においては、移動距離の長い移動体オブジェクトについては衝突判定を行う範囲を広くしたり、逆に移動距離の短い移動体オブジェクトについては衝突判定を行う範囲を狭くしたりできる。従って、移動体オブジェクトの動きを表現したいキャラクタの性格に応じた衝突回避処理を実現できる。また、衝突判定を行う範囲を調整して、この範囲を1つプリミティブ面内に収まる程度にすることで、衝突判定の対象となる移動体オブジェクトを容易に特定でき、処理負荷を軽減できる。
以下、本実施形態について説明する。
なお、以下に説明する実施の形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また以下で説明される構成の全てが本発明の必須構成要件であるとは限らない。
1. 構成
図1に本実施形態の画像生成システム(ゲームシステム)の機能ブロック図の例を示す。なお、本実施形態の画像生成システムは、図1の構成要素(各部)を全て含む必要はなく、その一部(例えば操作部160、携帯型情報記憶装置194又は通信部196等)を省略した構成としてもよい。
図1に本実施形態の画像生成システム(ゲームシステム)の機能ブロック図の例を示す。なお、本実施形態の画像生成システムは、図1の構成要素(各部)を全て含む必要はなく、その一部(例えば操作部160、携帯型情報記憶装置194又は通信部196等)を省略した構成としてもよい。
操作部160は、プレーヤが操作データを入力するためのものであり、その機能は、レバー、ボタン、ステアリング、シフトレバー、アクセルペダル、ブレーキペダル、マイク、センサ、タッチパネル型ディスプレイ、或いは筺体などのハードウェアにより実現できる。
記憶部170は、処理部100や通信部196などのワーク領域となるもので、その機能はRAMなどのハードウェアにより実現できる。
情報記憶媒体180(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(CD、DVD)、光磁気ディスク(MO)、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ(ROM)などのハードウェアにより実現できる。処理部100は、この情報記憶媒体180に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体180には、本実施形態の各部としてコンピュータを機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)が記憶(記録、格納)される。
表示部190は、本実施形態により生成された画像を出力するものであり、その機能は、CRT、LCD、タッチパネル型ディスプレイ、或いはHMD(ヘッドマウントディスプレイ)などのハードウェアにより実現できる。
音出力部192は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどのハードウェアにより実現できる。
携帯型情報記憶装置194は、プレーヤの個人データやゲームのセーブデータなどが記憶されるものであり、この携帯型情報記憶装置194としては、メモリカードや携帯型ゲーム装置などがある。
通信部196は、外部(例えばホスト装置や他の画像生成システム)との間で通信を行うための各種の制御を行うものであり、その機能は、各種プロセッサ又は通信用ASICなどのハードウェアや、プログラムなどにより実現できる。
なお本実施形態の各部としてコンピュータを機能させるためのプログラム(データ)は、ホスト装置(サーバー)が有する情報記憶媒体からネットワーク及び通信部196を介して情報記憶媒体180(記憶部170)に配信するようにしてもよい。このようなホスト装置(サーバー)の情報記憶媒体の使用も本発明の範囲内に含めることができる。
処理部100(プロセッサ)は、操作部160からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの各種の処理を行う。ここで処理部100が行うゲーム処理としては、ゲーム開始条件(コースやマップやキャラクタや参加プレーヤ人数の選択等)が満たされた場合にゲームを開始させる処理、ゲームを進行させる処理、キャラクタやマップなどのオブジェクトを配置する処理、オブジェクトを表示する処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了させる処理などがある。また処理部100は記憶部170をワーク領域として各種処理を行う。この処理部100の機能は、各種プロセッサ(CPU、DSP等)やASIC(ゲートアレイ等)などのハードウェアや、プログラム(ゲームプログラム)により実現できる。
処理部100は、移動体オブジェクト制御部110、画像生成部120、音生成部130を含む。なおこれらの一部を省略してもよい。
移動体オブジェクト制御部110は、オブジェクト空間における移動体オブジェクトを移動制御する処理を行う。オブジェクト空間には、処理部100によって、複数のポリゴン(広義にはプリミティブ面)で構成されたマップが設定される。移動体オブジェクト制御部110は、オブジェクト空間に設定されたマップ上に配置される複数の移動体オブジェクトの移動制御を行うことができる。そして、各移動体オブジェクトに付与されたパラメータ設定による同種の行動パターンに基づく移動制御を行い、より少ない処理負荷で、群れて行動する様子をリアルに実現できる。
また移動体オブジェクト制御部110は、移動体オブジェクトの移動情報(移動ベクトル、位置情報、方向情報、速度情報或いは加速度情報)を求める処理を行う。移動体オブジェクト制御部110は、操作部160によりプレーヤが入力した操作データやゲームプログラムなどに基づいて、移動体オブジェクトをオブジェクト空間内で移動させる処理を行う。
より具体的には、移動体オブジェクト制御部110は、求めた移動ベクトルに応じて、移動体オブジェクトの位置や回転角度(方向)を例えば1フレーム(1/60秒等)毎に変化させる。例えば(k−1)フレームでの移動体オブジェクトの位置(X、Y又はZ座標)、回転角度(X、Y又はZ軸回りの回転角度)をPk-1、θk-1とし、移動体オブジェクトの1フレームでの位置変化量(速度)、回転変化量(回転角度)をΔP、Δθとする。すると、kフレームでの移動体オブジェクトの位置Pk、回転角度θkは例えば下式(1)、(2)のように求められる。
Pk=Pk-1+ΔP (1)
θk=θk-1+Δθ (2)
なお移動体オブジェクト制御部110で行われる処理は、上式(1)、(2)の処理に限定されず、(1)、(2)式と均等な処理でもよい。
θk=θk-1+Δθ (2)
なお移動体オブジェクト制御部110で行われる処理は、上式(1)、(2)の処理に限定されず、(1)、(2)式と均等な処理でもよい。
また移動体オブジェクト制御部110は、複数のポリゴン(広義にはプリミティブ面)で構成されたマップ上を移動する移動体オブジェクトが第1のポリゴンから該第1のプリミティブ面に隣接する第2のポリゴンに移動するとき、当該移動体オブジェクトの移動ベクトルと第2のポリゴンの法線ベクトルとを用いて、当該移動体オブジェクトが第2のポリゴンにマッピングされる位置を求める。そして、当該移動体オブジェクトを、第2のポリゴン上の求めた位置に移動するように移動制御する。なお移動ベクトルは、移動体オブジェクト制御部110によって生成される。移動体オブジェクト制御部110は、例えばオブジェクト空間に配置されるターゲットの位置に向かう方向の移動ベクトルを生成してもよい。ここで、ターゲットは、処理部100によって、オブジェクト空間内に仮想的に配置される。処理部100は、操作部160からの操作データやプログラムに基づくゲーム処理の処理結果に応じた位置に、ターゲットを配置する。そして、例えば移動体オブジェクトの位置が、現在のターゲットの位置に向かう方向に該移動体オブジェクトの移動ベクトルを求めると共に、ターゲットの位置がゲーム処理の処理結果に応じた位置となるように該ターゲットの移動ベクトルを求める。求められた移動ベクトルに基づきそれぞれ移動制御された移動体オブジェクト及びターゲットの描画処理を行うことで、移動体オブジェクトがターゲットに追従する動きを表現する画像を生成できる。
移動体オブジェクト制御部110は、移動検出部112、マッピング位置算出部114、衝突回避処理部116を含む。なおこれらの一部を省略してもよい。
移動検出部112(広義には移動体オブジェクト制御部110)は、移動体オブジェクトが第1のポリゴン(第1のポリゴン上の位置)から第2のポリゴン(第2のポリゴン上の位置)に移動するか否かを検出する。より具体的には、移動検出部112は、移動体オブジェクトの移動ベクトルに基づいて、移動体オブジェクトが第1のポリゴンから第2のポリゴンに移動するか否かを検出する。更に具体的には、移動検出部112は、第1のポリゴンと第2のポリゴンとの境界に設定された仮想ポリゴン(広義には仮想プリミティブ面)と、移動体オブジェクトの移動ベクトルとの交差判定を行うことによって、移動体オブジェクトが第1のポリゴンから第2のポリゴンに移動するか否かを検出することができる。
マッピング位置算出部114は、移動体オブジェクトがマッピングされる位置を求める。より具体的には、移動検出部112によって移動体オブジェクトが第2のポリゴンに移動すると検出されたことを条件に、移動体オブジェクトが第2のポリゴンにマッピングされる位置を求める。
衝突回避処理部116(広義には移動体オブジェクト制御部110)は、移動体オブジェクト同士の衝突を回避する処理を行う。より具体的には、衝突回避処理部116は、移動体オブジェクトがマッピングされたポリゴンにマッピングされる移動体オブジェクト同士で衝突判定を行う。そして、移動体オブジェクト制御部110が、衝突判定の結果に基づいて、当該ポリゴンにマッピングされる移動体オブジェクトの少なくとも1つについて衝突を回避するような移動制御を行う。
更に具体的には、記憶部170のマッピング情報記憶部174は、移動体オブジェクト制御部110によって移動制御される移動体オブジェクトがマッピングされるポリゴンを特定するマッピング情報(情報)を記憶する。ここで、ポリゴンを特定するマッピング情報としては、ポリゴン番号がある。そして、衝突回避処理部116は、マッピング情報記憶部174に記憶されたマッピング情報(情報)に基づいて、当該移動体オブジェクトがマッピングされたポリゴンにマッピングされる移動体オブジェクト同士で衝突判定を行う。こうすることで、1つの移動体オブジェクトに対する衝突判定の対象となる他の移動体オブジェクトの数を大幅に削減でき、処理負荷を削減できるようになる。
衝突回避処理部116は、上述のように衝突判定を行い、衝突判定結果に基づいて衝突を回避するための処理を行う。例えば衝突回避処理部116は、当該フレームにおいて求められた移動ベクトル(第1の移動ベクトル)に従って移動した場合の当該移動体オブジェクト(第1の移動体オブジェクト)の位置が、他の移動体オブジェクト(第2の移動体オブジェクト)に対して設定された衝突感知エリア内にあるか否かを判定する。ここでフレームは、シミュレーション処理や画像処理を行う時間単位である。そして当該移動体オブジェクト(第1の移動体オブジェクト)の位置が、他の移動体オブジェクト(第2の移動体オブジェクト)に対して設定された衝突感知エリア内にあると判定されたとき、移動体オブジェクト制御部110が、移動ベクトル(第1の移動ベクトル)の方向と反対方向の反転移動ベクトル(第2の移動ベクトル)を求め、該反転移動ベクトル(第2の移動ベクトル)に基づいて当該移動体オブジェクト(第1の移動体オブジェクト)の移動制御を行う。こうすることで、非常に簡素な処理で、当該移動体オブジェクトと他の移動体オブジェクト(第1及び第2の移動体オブジェクト)の衝突を回避でき、群れの動きをリアルに表現できる。
画像生成部120は、処理部100で行われる種々の処理(ゲーム処理)の結果に基づいて描画処理を行い、これにより画像を生成し、表示部190に出力する。即ち、移動体オブジェクト制御部110の処理結果に基づいて、描画データ(プリミティブ面の頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等)が作成される。より具体的には、3次元画像を生成する場合には、まず座標変換(ワールド座標変換、カメラ座標変換)、クリッピング処理、透視変換、或いは光源処理等のジオメトリ処理を行って、その処理結果に基づいて、描画データが作成される。そして、この描画データ(プリミティブ面データ)に基づいて、透視変換後(ジオメトリ処理後)のオブジェクト(1又は複数のプリミティブ面)を、描画バッファ178(フレームバッファ、ワークバッファ等のピクセル単位で画像情報を記憶できるバッファ)に描画する。これにより、オブジェクト空間内において仮想カメラ(所与の視点)から見える画像が生成される。
音生成部130は、処理部100で行われる種々の処理の結果に基づいて音処理を行い、BGM、効果音、又は音声などのゲーム音を生成し、音出力部192に出力する。
なお、本実施形態の画像生成システムは、1人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、このようなシングルプレーヤモードのみならず、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。
また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、1つの端末を用いて生成してもよいし、ネットワーク(伝送ライン、通信回線)などで接続された複数の端末(ゲーム機、携帯電話)を用いて生成してもよい。
2. 本実施形態の手法
次に本実施形態の手法について図面を用いて説明する。
次に本実施形態の手法について図面を用いて説明する。
本実施形態では、移動体オブジェクト制御部110(狭義にはマッピング位置算出部114)が、移動体オブジェクトの移動ベクトルと、移動先のポリゴンの法線ベクトルとに基づいて、移動先のポリゴン上のマッピング位置を求める。
図2に、本実施形態におけるマッピング位置の算出処理の手法の説明図を示す。図2では、移動体オブジェクトが、オブジェクト空間に配置された第1〜第3のポリゴンPOLY1〜POLY3上を移動する移動体オブジェクトを模式的に示している。また、図2では、説明の便宜上、XY平面の断面を示す。
第1〜第3のポリゴンPOLY1〜POLY3は、それぞれ法線ベクトルNV1〜NV3を有している。
フレームf(fは自然数)において、移動体オブジェクトMOBJ_fは、第1のポリゴンPOLY1上の位置P−fにマッピングされている。移動体オブジェクトMOBJ_fは、移動ベクトルMV_fを有している。
フレーム(f+1)において、移動体オブジェクトが、第1のポリゴンPOLY1に隣接する第2のポリゴンPOLY2に移動するものとする。この場合、フレーム(f+1)における第2のポリゴンPOLY2上の位置P_f+1は、マッピング位置算出部114によって、移動ベクトルMV_fと、第2のポリゴンPOLY2の法線ベクトルNV2とを用いて求められる。そして、移動体オブジェクト制御部110(又は処理部100)は、フレーム(f+1)において、第2のポリゴンPOLY2上の位置P_f+1に、移動体オブジェクトMOBJ_f+1をマッピングする。
同様に、フレーム(f+2)において、移動体オブジェクトが、第2のポリゴンPOLY2に隣接する第3のポリゴンPOLY3に移動する場合、フレーム(f+2)における第3のポリゴンPOLY3上の位置P_f+2は、マッピング位置算出部114によって、移動ベクトルMV_f+1と、第3のポリゴンPOLY3の法線ベクトルNV3とを用いて求められる。そして、移動体オブジェクト制御部110(又は処理部100)は、フレーム(f+2)において、第3のポリゴンPOLY3上の位置P_f+2に、移動体オブジェクトMOBJ_f+2をマッピングする。
こうすることで、オブジェクト空間のXZ平面上で起伏に富んだ地形を表現するためのポリゴン上の位置に、移動体オブジェクトを少ない処理負荷でマッピングできる。しかも、第3のポリゴンPOLY3のような地形、例えば天井に、移動体オブジェクトをマッピングする場合でも、少ない処理負荷で実現できる。従って、群れを表現する複数の移動体オブジェクトの移動制御に好適である。
図3に、本実施形態における複数の移動体オブジェクトによる群れの画像の一例を示す。
各移動体オブジェクトは、例えば嗜好物に猪突猛進的に素早い動きで近付くスカラベの動きを実現する。図3に示すようにオブジェクト空間に設定され起伏に富んだ地形マップGMAP上に、ターゲットTGと複数の移動体オブジェクトを配置する。
この場合、ターゲットTGの位置に近付く群れを表現できる。例えば、ターゲットTGの位置を動かせば、各移動体オブジェクトがターゲットTGの位置に向かう方向に移動し、ターゲットTGを追跡する群れの動きを表現できる。
図4に、本実施形態における複数の移動体オブジェクトによる群れの画像の画の例を示す。
各移動体オブジェクトは、例えば海辺の岩等の上で群れをなして動くフナムシの動きを実現する。図4に示すようにオブジェクト空間に設定され起伏に富んだ地形マップGMAP上に、ターゲットTGと複数の移動体オブジェクトを配置する。
この場合、ターゲットTGの位置に近付かない群れを表現できる。例えば、ターゲットTGの位置を中心に所定のエリア内でのみ、ターゲットTGから移動体オブジェクトが遠ざかるようにすれば、図4に示すように所定のエリア内に近付かない群れの動きを表現できる。
以下、本実施形態における各処理の詳細について説明する。
2.1 移動検出処理
本実施形態では、起伏に富んだ地形上で移動制御される複数の移動体オブジェクトのうち、以下で説明する移動検出処理によって移動が検出された移動体オブジェクトに対して、移動先のマッピング位置の算出処理を行うことができる。また、移動検出処理によって移動が検出されずに、同じポリゴン内での移動の場合には、当該ポリゴン上でのマッピング位置の算出処理を行う。
本実施形態では、起伏に富んだ地形上で移動制御される複数の移動体オブジェクトのうち、以下で説明する移動検出処理によって移動が検出された移動体オブジェクトに対して、移動先のマッピング位置の算出処理を行うことができる。また、移動検出処理によって移動が検出されずに、同じポリゴン内での移動の場合には、当該ポリゴン上でのマッピング位置の算出処理を行う。
本実施形態では、移動体オブジェクトのマッピング情報を用いる。
図5に、本実施形態におけるマッピング情報の一例を示す。マッピング情報は、マッピング情報記憶部174に格納される。
マッピング情報は、図5に示すように、移動体オブジェクトに対応して、当該移動体オブジェクトがマッピングされるポリゴンを特定する情報を有する。ポリゴンを特定する情報としては、マップを構成する複数のポリゴンのそれぞれ固有に付与されるポリゴン番号がある。図5では、移動体オブジェクトMOBJ1に対応して、移動体オブジェクトMOBJ1がマッピングされる第1のポリゴンPOLY1を特定するためのポリゴン番号1が記憶される。また移動体オブジェクトMOBJ2に対応して、移動体オブジェクトMOBJ2がマッピングされる第9のポリゴンPOLY9を特定するためのポリゴン番号9が記憶される。
このようにマッピング情報を用いれば、移動体オブジェクトがマッピングされるポリゴンの周辺のポリゴンを特定することができる。したがって、これら周辺のポリゴンに対して移動したか否かを検出して、移動先のポリゴンと、移動先のポリゴンにマッピングされる位置を求めることで、起伏に富んだ地形を表現するポリゴンにマッピングされる複数の移動体オブジェクトの移動制御の処理負荷を大幅に軽減できる。
図6に、地形を構成するポリゴンを模式的に示す。各ポリゴンが3つの頂点(広義には定義点)により構成される複数のポリゴンにより、地形マップが表現されるものとする。ここで、各ポリゴンに付された番号は、ポリゴン番号である。
図6では、ポリゴン番号24で特定されるポリゴンに、移動体オブジェクトがマッピングされている。この場合、移動検出部112(広義には移動体オブジェクト制御部110)は、ポリゴン番号24で特定されるポリゴンの周辺のポリゴン(隣接するポリゴン)を検索する。
より具体的には、移動検出部112は、ポリゴン番号24で特定されるポリゴンの3つの頂点AP1〜AP3を共有する他のポリゴンのポリゴン番号を検索する。頂点AP1は、ポリゴン番号12、13、14、23、25により特定される各ポリゴンが共有している。頂点AP2は、ポリゴン番号22、23、33、34、35により特定される各ポリゴンが共有している。頂点AP3は、ポリゴン番号25、26、35、36、37により特定される各ポリゴンが共有している。従って、移動検出部112は、ポリゴン番号24で特定されるポリゴンの周辺のポリゴン(隣接するポリゴン)として、図6に示す斜線部分のポリゴンを移動先のポリゴン(プリミティブ面)の候補として検索し、これらポリゴンのポリゴン番号がリストアップされたポリゴンリストを作成する。
そして、ポリゴンリストに含まれるポリゴンの中から、移動体オブジェクトの移動ベクトルに基づいて、移動先のポリゴンを求める。より具体的には、ポリゴンリストに含まれる移動先のポリゴンの候補それぞれについて、移動するか否かを検出する。これにより、移動検出の処理負荷を削減できる。
図7に、本実施形態における移動検出処理の例を模式的に説明するための図を示す。
移動検出部112は、移動体オブジェクトMOBJが現在いるポリゴン(第1のポリゴン(第1のプリミティブ面))POLY24と、移動検出先のポリゴン(第2のポリゴン(第2のプリミティブ面))POLY25との境界に、仮想的に設定される仮想ポリゴンVPOLYを設ける。そして、仮想ポリゴンVPOLYと、移動体オブジェクトMOBJの移動ベクトルMVとの交差判定に基づいて、移動体オブジェクトMOBJが、移動検出先のポリゴンPOLY25に移動したか否かを検出する。
なお、交差判定は、例えば移動体オブジェクトMOBJが移動ベクトルMVで移動後の位置Pmとポリゴンの頂点AP1とを結ぶベクトルと、仮想ポリゴンVPOLYの法線ベクトルnvとの内積値を求めることで判定できる。この場合、内積値が0のとき、ポリゴンPOLY24とポリゴンPOLY25の境界上に位置Pmがあると判断できる。また内積値が正のとき、移動ベクトルMVで移動した移動体オブジェクトMOBJが仮想ポリゴンVPOLYを通過したと判断できる。更に内積値が負のとき、移動ベクトルMVで移動した移動体オブジェクトMOBJが仮想ポリゴンVPOLYを通過していないと判断できる。このような判定を頂点AP1〜AP3の各頂点ごとに行うことで、移動体オブジェクトMOBJが、どのポリゴンに移動したかを判別できる。
2.2 マッピング位置の算出処理
上述のようにして移動検出部112により移動検出処理が行われると、マッピング位置算出部114は、移動体オブジェクトをマッピングすべき位置の算出処理を行う。
上述のようにして移動検出部112により移動検出処理が行われると、マッピング位置算出部114は、移動体オブジェクトをマッピングすべき位置の算出処理を行う。
図8に、本実施形態におけるマッピング位置の算出処理を模式的に説明するための図を示す。ここでは、オブジェクト空間に第1のポリゴンPOLY1と該第1のポリゴンPOLY1に隣接する第2のポリゴンPOLY2とが配置され、第1のポリゴンPOLY1に対して傾斜するように第2のポリゴンPOLY2が設定されている。そして、第1のポリゴンPOLY1上の移動体オブジェクトMOBJが、第2のポリゴンPOLY2上に移動する場合を示している。
マッピング位置算出部114は、移動体オブジェクトMOBJの移動ベクトルMVと第2のポリゴン(プリミティブ面)POLY2の法線ベクトルNV2とを用いて、移動体オブジェクトMOBJの第2のポリゴンPOLY2にマッピングされる位置P2を求める。
より具体的には、マッピング位置算出部114(広義には移動体オブジェクト制御部110)が、移動体オブジェクトMOBJの第2のポリゴンPOLY2にマッピングされる位置P2として、移動ベクトルMVと法線ベクトルNV2とを用いて生成される直線LNと、第2のポリゴンPOLY2との交点を求める。そして、移動体オブジェクト制御部110(又は処理部100)が、この交点に、移動体オブジェクトMOBJをマッピングする。
こうすることで、移動体オブジェクトMOBJが移動ベクトルMVに従って2次元的に移動した座標を、座標変換して3次元の位置情報を求めるといった処理が不要となり、移動先の第2のポリゴンにマッピングされる位置P2を少ない処理負荷で求めることができる。
なお、マッピング位置算出部114(広義には移動体オブジェクト制御部110)が、直線LNは、MVの終点を通り法線ベクトルNV2に平行な直線としてもよい。こうすることで、法線ベクトルの向きに関わらず、例えば天井を構成する第2のポリゴンPOLY2にマッピングされる位置を、容易に求めることができるようになる。
なお、上述の移動検出処理により、第1のポリゴンPOLY1上の移動体オブジェクトMOBJが、地形を構成するマップの外部に移動することが検出されることがある。第1のポリゴンPOLY1がマップの境界部にある場合である。この場合、移動体オブジェクトを強制的にマップの外部に出ないように、移動制御することが望ましい。
図9に、第1のポリゴン上の移動体オブジェクトが、地形を構成するマップの外部に移動することが検出されたときの移動制御の例を模式的に示す。
第1のポリゴンPOLY1上の移動体オブジェクトMOBJが、第1のポリゴンPOLY1の外部に出て、かつマップの外部に移動することが検出されたときには、移動体オブジェクトMOBJの移動ベクトルMVを補正する。より具体的には、まず第1のポリゴンPOLY1の重心位置CPが求められる。第1のポリゴンPOLY1の重心位置CPは、第1のポリゴンPOLY1の3つの頂点AP1〜AP3により求められる。そして、移動体オブジェクトMOBJが、重心位置CPに向かう移動ベクトルMV´に従って移動制御される。
これにより、移動体オブジェクトMOBJの例外処理を簡素化でき、処理負荷を軽減できる。
図8において、第1及び第2のポリゴンPOLY1、POLY2のなす角度が鋭角の場合、直線LNと、第2のポリゴンPOLY2との交点が求められない。この場合、移動体オブジェクトMOBJは、移動前の第1のポリゴンPOLY1内に留まるものとして、図9に示したような移動制御を行えばよい。
2.3 衝突回避処理
本実施形態では、上述のようにマッピングされる移動体オブジェクトにより表現される群れをよりリアルに表現するため、移動体オブジェクト同士の衝突を回避する処理がマッピング前に行われていることが望ましい。この場合、衝突を回避する処理を同一ポリゴン上にマッピングされた移動体オブジェクト同士で行う。より具体的には、マッピング情報記憶部174に記憶されたマッピング情報(情報)に基づいて、当該移動体オブジェクトがマッピングされたプリミティブ面にマッピングされる移動体オブジェクト同士で衝突判定を行う。そして、移動体オブジェクト制御部110が、衝突判定の結果に基づいて、プリミティブ面にマッピングされた移動体オブジェクトの少なくとも1つの移動制御を行う。
本実施形態では、上述のようにマッピングされる移動体オブジェクトにより表現される群れをよりリアルに表現するため、移動体オブジェクト同士の衝突を回避する処理がマッピング前に行われていることが望ましい。この場合、衝突を回避する処理を同一ポリゴン上にマッピングされた移動体オブジェクト同士で行う。より具体的には、マッピング情報記憶部174に記憶されたマッピング情報(情報)に基づいて、当該移動体オブジェクトがマッピングされたプリミティブ面にマッピングされる移動体オブジェクト同士で衝突判定を行う。そして、移動体オブジェクト制御部110が、衝突判定の結果に基づいて、プリミティブ面にマッピングされた移動体オブジェクトの少なくとも1つの移動制御を行う。
こうすることで、キャラクタ同士がすり抜けて動き回り、表現に違和感が残るという問題を回避して、少ない処理負荷でリアルな群れを表現できる。
以下では、衝突回避処理の詳細について説明する。
図10に、本実施形態における衝突回避処理の説明図を示す。
図10では、第1及び第2の移動体オブジェクトMOBJ1、MOBJ2が同一ポリゴンにマッピングされ、これら移動体オブジェクト同士の衝突回避処理の例を示している。
第1の移動体オブジェクトMOBJ1が、当該フレームにおいて求められた第1の移動ベクトルMV1に従って移動した場合、当該フレームの次のフレームで位置P1に第1の移動体オブジェクトMOBJ1の画像が生成されるものとする。ここで第1の移動ベクトルMV1は、当該フレームにおいて求められた移動ベクトルである。
一方、第2の移動体オブジェクトMOBJ2には、衝突感知エリアARが設定される。衝突感知エリアARは、第2の移動体オブジェクトMOBJ2の位置を基準に、半径ResponseAreaの円内の範囲とすることができる。
半径ResponseAreaの長さは、第2の移動体オブジェクトMOBJ2の特性に関連付けて決めることが望ましい。即ち、衝突感知エリアARは、第2の移動体オブジェクトMOBJ2を基準に、第2の移動体オブジェクトMOBJ2の特性に関連付けられた大きさの範囲であることが望ましい。また、半径ResponseAreaの長さは、第1の移動体オブジェクトMOBJ1の特性に関連付けて決めてもよい。
当該フレームにおいて求められた第1の移動ベクトルMV1に従って移動した場合の第1の移動体オブジェクトMOBJ1の位置P1が、第2の移動体オブジェクトMOBJ2に対して設定された衝突感知エリアAR内にあるとき、衝突回避処理部116(広義には移動体オブジェクト制御部110)は、第1の移動ベクトルMV1の方向と反対方向の第2の移動ベクトルMV1Xに基づいて第1の移動体オブジェクトMOBJ1の移動制御を行う。従って、当該フレームの次のフレームでは、第2の移動体ベクトルMV1Xに従って移動制御された第1の移動体オブジェクトMOBJ1の画像が表示される。
一般的に、衝突判定処理には対象物の形状や位置及び移動ベクトルを使用して行われるが、本願実施形態では、上述のように第1及び第2の移動体オブジェクトMOBJ1,MOBJ2の衝突回避処理を、両者の位置及び移動ベクトルと衝突感知エリアを用いることで、処理負荷を大幅に軽減できる。特に、群れを構成する移動体オブジェクトの衝突回避処理を行う場合、処理負荷の軽減の効果は著しい。
また、キャラクタの動きを表現する移動体オブジェクトの特性に応じた範囲内で衝突回避処理を行うことでき、様々な群れの動きに合わせた衝突回避処理を実現できる。そして、移動体オブジェクト同士がすり抜けて動き回り、表現に違和感が残るという問題を解消できる。
なお、衝突回避処理部116(移動体オブジェクト制御部110)は、第1の移動体オブジェクトMOBJ1の特性に関連付けて、第2の移動ベクトルMV1Xの長さを変更することが望ましい。例えば第1の移動体オブジェクトMOBJ1に関連付けられた反応感度を示すパラメータResponse(0以上1以下の係数)により、第1の移動ベクトルMV1を反転し、該ベクトルの長さをパラメータResponseで補正した長さとする。これにより、第1の移動体オブジェクトMOBJ1の動きを表現したい群れの個々の性格(臆病、大胆不敵等)に応じて、衝突回避後の動きを表現できる。
本実施形態における移動体オブジェクトの衝突回避処理は、図10で説明したものに限定されるものではない。
図11に、本実施形態における衝突回避処理の他の例の説明図を示す。ただし、図10と同一部分には同一符号を付し、適宜説明を省略する。
図11では、衝突回避処理部116(広義には移動体オブジェクト制御部110)が、当該フレームにおける第1の移動体オブジェクトMOBJ1の第1の移動ベクトルMV1と、第2の移動体オブジェクトMOBJ2に対して設定された衝突感知エリアARの境界との交点Cを用いて第1の移動ベクトルMV1を補正した第2の移動ベクトルMV1Xを求める。より具体的には、第1の移動体オブジェクトMOBJ1の位置を始点とする第1の移動ベクトルMV1の始点と終点とを結ぶ線分と、衝突検知エリアARの境界(境界線)との交点Cを求める。そして、第2の移動体オブジェクトMOBJ2の位置P2と交点Cとを結ぶ直線上に、補正点Dを求める。位置P2と交点Cとの距離と、交点Cと補正点Dとの距離は等しい。第2の移動ベクトルMV1Xは、第1の移動体オブジェクトの位置Pと補正点Dとを結ぶ方向である。
そして、移動体オブジェクト制御部110は、第2の移動ベクトルMV1Xに基づいて、第1の移動体オブジェクトMOBJ1を移動制御する。
このように、図11では、第1の移動ベクトル(第1の移動ベクトルの始点と終点とを結ぶ線分)と、衝突感知エリアの境界との交点を求めることで、衝突の可能性が高いか否かを検出できる。更に、その交点を再利用して、第1の移動ベクトルを補正した第2の移動ベクトルを求めることで、1つの交点を求めるだけで衝突の検出と、その回避とを実現できる。
なお、移動体オブジェクト制御部110は、以下のように補正された第2の移動ベクトルに基づいて移動制御を行ってもよい。
図12に、本実施形態における衝突回避処理の更に他の例の説明図を示す。ただし、図11と同一部分には同一符号を付し、適宜説明を省略する。
図12では、衝突回避処理部116(広義には移動体オブジェクト制御部110)が、補正点Dと第1の移動体オブジェクトMOBJ1の位置Pとに基づいて求められる補正ベクトルMV3と、第1の移動ベクトルMV1とを、補間パラメータαに基づいて補間して、第2の移動ベクトルMV1Xを求める。
より具体的には、補正ベクトルMV3は、図11と同様にして求められる。そして、補間パラメータαを用いて、次の式で補間する。
MV2=α・MV3+(1−α)・MV1 (3)
そして、補間パラメータαは、第1又は第2の移動体オブジェクトの特性に関連付けられていることが望ましい。こうすることで、第1の移動ベクトルMOBJ1の正確に対応した動きに応じて、該第1の移動体オブジェクトMOBJ1の衝突回避後の移動ベクトルの向きを、少ない処理負荷でリアルに表現できる。
そして、補間パラメータαは、第1又は第2の移動体オブジェクトの特性に関連付けられていることが望ましい。こうすることで、第1の移動ベクトルMOBJ1の正確に対応した動きに応じて、該第1の移動体オブジェクトMOBJ1の衝突回避後の移動ベクトルの向きを、少ない処理負荷でリアルに表現できる。
なお、衝突回避処理部116(広義には移動体オブジェクト制御部110)は、図13に示すように、第1又は第2の移動体オブジェクトMOBJ1、MOBJ2の特性に応じて、衝突判定を行う範囲を異ならせてもよい。例えば、移動距離の長い移動体オブジェクトについては衝突判定を行う範囲を広くしたり、逆に移動距離の短い移動体オブジェクトについては衝突判定を行う範囲を狭くしたりできる。また、衝突判定を行う範囲を調整して、この範囲を1ポリゴン内に収まる程度にすることで、衝突判定の対象となる移動体オブジェクトを容易に特定でき、処理負荷を軽減できる。
2.4 その他の移動制御
なお移動体オブジェクト制御部110が行う移動制御には、種々の制御が考えられる。
なお移動体オブジェクト制御部110が行う移動制御には、種々の制御が考えられる。
例えば移動体オブジェクト制御部110が、移動体オブジェクトが第2のプリミティブ面に移動するとき、第2のポリゴンの状況に応じて移動後の前記移動体オブジェクトの移動制御を変化させてもよい。
第2のポリゴンの状況としては、例えば第1のポリゴンに対する第2のポリゴンの傾斜の度合いや、第2のポリゴンの滑りやすさを示す摩擦係数などが考えられる。このような第2のポリゴンの状況を含む各ポリゴンの状況は、記憶部170のプリミティブ面特性記憶部176に格納されるプリミティブ面特性情報として設定される。移動体オブジェクト制御部110は、移動先のポリゴンに対応してプリミティブ面特性記憶部176に記憶された当該ポリゴンの状況を示すプリミティブ面特性情報を読み出し、当該プリミティブ面特性情報に応じて以下のような移動制御を行う。
図14(A)〜(C)、図15(A)〜(C)に、移動先のポリゴンの状況に応じた移動制御の例を示す。
図14(A)では、第1のポリゴンPOLY1上の移動体オブジェクトMOBJが、第2のポリゴンPOLY2に移動するとき、第1のポリゴンPOLY1に対する第2のポリゴンPOLY2の傾斜がきつくて、移動体オブジェクトMOBJが第2のポリゴンPOLY2を登ることができず、次第に第1のポリゴンPOLY1上に戻るように移動制御される様子を示している。
図14(B)では、第1のポリゴンPOLY1に対して、第2のポリゴンPOLY2の傾斜がきつくて、移動体オブジェクトMOBJが第2のポリゴンPOLY2を登る場合に、第2のポリゴンPOLY2上の移動量が少なくなるように移動制御される様子を示している。
図14(C)では、第2のポリゴンPOLY2が滑りやすく、移動体オブジェクトMOBJが第2のポリゴンPOLY2を一旦登り始めたものの、移動体オブジェクトMOBJが第2のポリゴンPOLY2に沿って滑り降りるように移動制御される様子を示している。
図15(A)では、第1のポリゴンPOLY1から下る方向の第2のポリゴンPOLY2上を、移動体オブジェクトMOBJが移動したい方向に反して、第2のポリゴンPOLY2上を滑り降りるように移動制御される様子を示している。
図15(B)では、移動体オブジェクトMOBJが、第2のポリゴンPOLY2上を降りる速度を増しながら移動制御される様子を示している。
図15(C)では、移動体オブジェクトMOBJが、第2のポリゴンPOLY2上を転がり落ちるように移動制御される様子を示している。
なお、移動体オブジェクト制御部110が、移動体オブジェクトの特性に応じて、第2のポリゴンPOLY2に移動後の移動体オブジェクトの移動制御を変化させてもよい。即ち、図14(A)〜(C)、図15(A)〜(C)に示す移動制御を、移動体オブジェクトの特性に応じて変化させてもよい。例えば、図14(A)では、移動体オブジェクトに応じて第2のポリゴンPOLY2を登りやすくすることができ、図15(B)では、移動体オブジェクトに応じて第2のポリゴンPOLY2を滑り落ちるときの加速度を異ならせることができる。このような移動体オブジェクトの特性は、記憶部170のオブジェクト特性記憶部172に格納されるオブジェクト特性情報として設定される。移動体オブジェクト制御部110は、移動制御対象の移動体オブジェクトに対応してオブジェクト特性情報記憶部172に記憶されたオブジェクト特性情報を読み出し、オブジェクト特性情報に基づいて上述のような移動制御を行う。
3. 本実施形態の処理
次に、本実施形態の詳細な処理例についてフローチャートを用いて説明する。
次に、本実施形態の詳細な処理例についてフローチャートを用いて説明する。
本実施形態では、以下に示すような移動体オブジェクトの特性がパラメータ化された特性情報に基づいて移動制御が行われる。
図16に、移動体オブジェクトの特性情報の一例を示す。
このような特性情報は、記憶部170のオブジェクト特性記憶部172に記憶される。移動体オブジェクト制御部110は、オブジェクト特性記憶部172に記憶されたオブジェクト特性情報を読み出し、各キャラクタの動きを表現するための移動体オブジェクトの移動制御を行う。従って、キャラクタのいずれかの動きを実現するために、上述のパラメータの内容を変更すればよい。これにより、同じ処理をキャラクタの数だけ繰り返すだけでよく、処理の簡素化を実現できる。
衝突回避の度合いは、衝突回避度を示すパラメータ「Response」に設定される。衝突感知エリアの範囲は、衝突回避の反応エリアを示すパラメータ「ResponseArea」に設定される。
各移動体オブジェクトを、図16に示す特性情報に基づき、上述のような移動体オブジェクトの衝突回避処理を行うことで、処理の簡素化、プログラムやデータの容量の削減、移動体オブジェクトの表現の多様化を実現できる。
図17に、本実施形態における移動制御処理の一例のフローチャートを示す。
まず、処理部100は、移動体オブジェクトを特定するための変数iを0に初期化する(ステップS10)。
次に、変数iの値が、群れを表現するキャラクタ数より大きいか否かを判別する(ステップS11)。
変数iの値がキャラクタ数以上のとき(ステップS11:N)、一連の処理を終了する(エンド)。
一方、変数iの値がキャラクタ数より小さいとき(ステップS11:Y)、移動体オブジェクト制御部110が、マッピング情報記憶部174に記憶されたマッピング情報を読み出して、変数iで特定される移動体オブジェクト(当該移動体オブジェクト)がマッピングされるポリゴンを特定するためのポリゴン番号を特定する(ステップS12)。
続いて、移動体オブジェクト制御部110は、当該移動体オブジェクトの移動ベクトルであるrvecを求める(ステップS13)。移動体オブジェクト制御部110は、例えばランダム関数を用いて求めたベクトルに、当該移動体オブジェクトの過去のフレームにおける移動ベクトルである過去ベクトルを加算して、ベクトルrvecを求めてもよい。
次に、ステップS13で求められた移動ベクトルrvecによりオブジェクト空間に配置される移動体オブジェクトの位置が求められる。そして、求められた移動体オブジェクトの位置を用いて、衝突回避処理部116により、衝突回避処理が行われる(ステップS14)。これにより、上述したように、キャラクタ(移動体オブジェクト)同士の衝突が回避されるように移動ベクトルが求められる。
そして、マッピング位置算出部114が、ステップS13で求められた移動ベクトル、又はステップS14で求められた移動ベクトルに基づいて、当該ポリゴン又は移動先のポリゴン上でのマッピング位置を求める(ステップS15)。
次に、移動体オブジェクト制御部110は、マッピングされるポリゴンの法線ベクトルと、移動ベクトルと、ステップS15で求められたマッピング位置とを用いてマトリクスを生成する(ステップS16)。
そして、画像生成部120が、ステップS16で求めたマトリクスを用いて移動体オブジェクトの座標変換等のジオメトリ処理を行って、描画データを作成する(ステップS17)。この描画データに基づいて、ジオメトリ処理後のオブジェクトデータを、描画バッファ178に描画する。
その後、変数iをインクリメントして(ステップS18)、ステップS11に戻り、次の移動体オブジェクトについて同様の処理を繰り返す。
図18に、衝突回避処理例のフローチャートを示す。図18に示す処理は、図17のステップS14において行われる。なお図18では、上述した衝突回避処理のうち、図10に示す衝突回避処理を実現する。
まず、衝突回避処理部116は、まずオブジェクト特性記憶部172に記憶された当該移動体オブジェクトの特性情報の衝突回避度が設定されるパラメータ「Response」の値を読み出す(ステップS20)。
そして、読み出したパラメータ「Response」の値が0ではないとき(ステップS21:Y)、衝突回避処理対象の他の移動体オブジェクトを探索する(ステップS22)。衝突回避処理部116は、当該移動体オブジェクトがマッピングされるポリゴン上にマッピングされる他の移動体オブジェクトを探索することで、処理負荷を軽減できる。
次に、求めた他の移動体オブジェクトの位置と当該移動体オブジェクトの位置との距離(len)を求める(ステップS23)。
そして、求めた距離(len)が、当該移動体オブジェクトの特性情報のパラメータ「ResponseArea」に設定された値より大きいか否かを判別する(ステップS24)。距離(len)が、パラメータ「ResponseArea」に設定された値より大きいとき(ステップS24:Y)、当該移動体オブジェクトの移動ベクトル(第1の移動ベクトル)を反転し、当該移動体ベクトルと反対方向の移動ベクトル(第2の移動ベクトル)を求める(ステップS25)。
続いて、当該移動体オブジェクトの特性情報のパラメータ「Response」の値で、ステップS25で求めた移動ベクトルの長さを修正し(ステップS26)、一連の処理を終了する(エンド)。
一方、ステップS21でパラメータ「Response」に設定された値が0のとき(ステップS21:Y)、又はステップS24で距離(len)が、パラメータ「ResponseArea」に設定された値より大きくないとき(ステップS24:N)、一連の処理を終了する(エンド)。
図19に、マッピング位置の算出処理例のフローチャートを示す。図19に示す処理は、図17のステップS15において行われる。
まず、移動検出部112は、ステップS14までの処理で求められた移動ベクトルにより移動する場合のポリゴンを探索する(ステップS30)。移動検出部112は、図17のステップS12で特定されたポリゴン番号を用いて、図6で説明したように、該ポリゴン番号により特定されるポリゴンに隣接するポリゴンを探索する。そして、移動検出部112は、ポリゴンの各辺について、図7で説明した仮想ポリゴンを設定し、移動体オブジェクトが移動するポリゴンを求める。
その結果、隣りのポリゴンに移動することが検出されたとき(ステップS31:Y)、該隣りのポリゴンとの交点を求めるための直線を作成する(ステップS32)。この直線は、例えば図8で説明した直線LNに相当する。即ち、移動体オブジェクトの現在位置から移動ベクトルで移動した位置を起点に、移動先のポリゴンの法線ベクトルと、該法線ベクトルの反転ベクトルとにより、直線LNを生成する。
そして、マッピング位置算出部114は、ステップS32で求めた直線LNと、移動先のポリゴンとの交差点を求める(ステップS33)。
次に、この移動先のポリゴンを特定するポリゴン番号を、当該移動体オブジェクトがマッピングされるポリゴンとして、マッピング情報記憶部174に記憶されるマッピング情報を更新し(ステップS34)、一連の処理を終了する(エンド)。
ステップS31において、移動検出部112により、隣りのポリゴンに移動しないことが検出されたとき(ステップS31:N)、当該移動体オブジェクトが複数のポリゴンにより構成されるマップの外に移動するか否かを検出する(ステップS35)。
そして、マップの外に移動すると検出されたとき(ステップS35:Y)、図9に示したように、現在のポリゴン(第1のポリゴン)の重心位置を求める(ステップS36)。
次に、ステップS36で求めた重心位置への移動ベクトルを生成し(ステップS37)、この移動ベクトルにより移動する予定のポリゴンを探索する(ステップS38)。ステップS38におけるポリゴンの探索は、ステップS30におけるポリゴンの探索と同様の方法で実現できる。
その結果、隣りのポリゴンに移動することが検出されたとき(ステップS39:Y)、該隣りのポリゴンとの交点を求めるための直線を作成する(ステップS40)。この直線は、例ステップS32と同様の方法で求められる。
そして、マッピング位置算出部114は、ステップS40で求めた直線LNと、移動先のポリゴンとの交差点を求める(ステップS41)。
次に、この移動先のポリゴンを特定するポリゴン番号を、当該移動体オブジェクトがマッピングされるポリゴンとして、マッピング情報記憶部174に記憶されるマッピング情報を更新し(ステップS42)、一連の処理を終了する(エンド)。
一方、ステップS39において、移動検出部112により、隣りのポリゴンに移動しないことが検出されたとき(ステップS39:N)、当該移動体オブジェクトが複数のポリゴンにより構成されるマップの外に移動するか否かを検出する(ステップS43)。
そして、マップの外に移動すると検出されたとき(ステップS43:Y)、ステップS36で求められた当該ポリゴンの重心位置への移動ベクトルを生成し(ステップS44)、一連の処理を終了する(エンド)。
一方、ステップS43において、マップの外に移動しないと検出されたとき(ステップS43:N)、移動前のポリゴンと移動先のポリゴンが同一であると判断する。そして、移動前の現在のポリゴンとの交点を求めるための直線を作成する(ステップS45)。この直線LNは、例えば図8で説明した方法と同様に生成できる。
そして、マッピング位置算出部114は、ステップS45で求めた直線LNと、現在のポリゴンとの交差点を求め(ステップS46)、一連の処理を終了する(エンド)。
またステップS35において、マップの外に移動しないと検出されたとき(ステップS35:N)、ステップS43と同様に、移動前のポリゴンと移動先のポリゴンが同一であると判断する。そして、移動前の現在のポリゴンとの交点を求めるための直線を作成する(ステップS47)。この直線は、ステップS45と同様の方法で生成できる。
そして、マッピング位置算出部114は、ステップS47で求めた直線LNと、現在のポリゴンとの交差点を求め(ステップS48)、一連の処理を終了する(エンド)。
ステップS34、ステップS42では、移動先のポリゴン上でマッピングすべき位置が求められると共に、当該移動体オブジェクトのマッピング情報が更新される。そして、図17のステップS16で説明したように、移動先のポリゴンの法線ベクトルと、移動ベクトルと、ステップS33又はステップS41で求められたマッピング位置とを用いて座標変換を行うためのマトリクスが生成される。
ステップS44でマップの外に移動すると判別されて、移動ベクトルが求められると、図17のステップS16で説明したように、現在のポリゴンの法線ベクトルと、ステップS44で求められた移動ベクトルと、ステップS36で求められた重心位置(マッピング位置)とを用いて座標変換を行うためのマトリクスが生成される。
ステップS46、ステップS48では、現在のポリゴン上でマッピングすべき位置が求められる。そして、図17のステップS16で説明したように、現在のポリゴンの法線ベクトルと、移動ベクトルと、ステップS46又はステップS48で求められたマッピング位置とを用いて座標変換を行うためのマトリクスが生成される。
以上のようにして求められたマトリクスを用いて移動体オブジェクトを座標変換することで、より少ない処理負荷で起伏に富んだ地形上をマッピングすることができる。
4.ハードウェア構成
図20に本実施形態を実現できるハードウェア構成の例を示す。
図20に本実施形態を実現できるハードウェア構成の例を示す。
メインプロセッサ900は、CD982(情報記憶媒体)に格納されたプログラム、通信インターフェース990を介して転送されたプログラム、或いはROM950に格納されたプログラムなどに基づき動作し、ゲーム処理、画像処理、音処理などを実行する。
コプロセッサ902は、メインプロセッサ900の処理を補助するものであり、高速並列演算が可能な積和算器や除算器を有し、マトリクス演算(ベクトル演算)を高速に実行する。例えば、オブジェクトを移動させたり動作(モーション)させるための物理シミュレーションに、マトリクス演算などの処理が必要な場合には、メインプロセッサ900上で動作するプログラムが、その処理をコプロセッサ902に指示(依頼)する。
ジオメトリプロセッサ904は、座標変換、透視変換、光源計算、曲面生成などのジオメトリ処理を行うものであり、高速並列演算が可能な積和算器や除算器を有し、マトリクス演算(ベクトル演算)を高速に実行する。例えば、座標変換、透視変換、光源計算などの処理を行う場合には、メインプロセッサ900で動作するプログラムが、その処理をジオメトリプロセッサ904に指示する。
データ伸張プロセッサ906は、圧縮された画像データや音データのデコード(伸長)処理を行ったり、メインプロセッサ900のデコード処理をアクセレートする。これにより、オープニング画面、インターミッション画面、エンディング画面、或いはゲーム画面などにおいて、MPEG方式等で圧縮された動画像を表示できる。
描画プロセッサ910は、ポリゴンや曲面などのプリミティブ面で構成されるオブジェクトの描画(レンダリング)処理を高速に実行する。オブジェクトの描画の際には、メインプロセッサ900は、DMAコントローラ970を利用して、描画データを描画プロセッサ910に渡すと共に、必要であればテクスチャ記憶部924にテクスチャを転送する。すると描画プロセッサ910は、描画データやテクスチャに基づいて、Zバッファなどを利用した隠面消去を行いながら、オブジェクトをフレームバッファ922に描画する。また描画プロセッサ910は、αブレンディング(半透明処理)、デプスキューイング、ミップマッピング、フォグ処理、バイリニア・フィルタリング、トライリニア・フィルタリング、アンチエリアシング、シェーディング処理なども行う。そして1フレーム分の画像がフレームバッファ922に書き込まれると、その画像はディスプレイ912に表示される。
サウンドプロセッサ930は、多チャンネルのADPCM音源などを内蔵し、BGM、効果音、音声などのゲーム音を生成し、スピーカ932を介して出力する。ゲームコントローラ942からの操作データや、メモリカード944からのセーブデータ、個人データは、シリアルインターフェース940を介して入力される。
ROM950にはシステムプログラムなどが格納される。業務用ゲームシステムの場合にはROM950が情報記憶媒体として機能し、ROM950に各種プログラムが格納されることになる。なおROM950の代わりにハードディスクを利用してもよい。RAM960は各種プロセッサの作業領域となる。DMAコントローラ970は、メインプロセッサを介さずに、メモリ(RAM,VRAM,ROMやI/O装置間あるいは各種プロセッサ間でのデータ転送を制御する。CDドライブ980は、プログラム、画像データ、或いは音データなどが格納されるCD982にアクセスする処理を行う。
通信インターフェース990は、ネットワークを介して外部との間でデータ転送を行う。通信インターフェース990に接続されるネットワークとしては、通信回線(アナログ電話回線、ISDN)、高速シリアルバスなどがある。
なお本実施形態の各部(各手段)の処理は、その全てをハードウェアのみにより実現してもよいし、情報記憶媒体に格納されるプログラムや通信インターフェースを介して配信されるプログラムのみにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。
そして本実施形態の各部の処理をハードウェアとプログラムの両方により実現する場合には、情報記憶媒体には、ハードウェア(コンピュータ)を本実施形態の各部として機能させるためのプログラムが格納される。より具体的には、上記プログラムが、ハードウェアである各プロセッサ902、904、906、910、930等に処理を指示すると共に、必要であればデータを渡す。そして、各プロセッサ902、904、906、910、930等は、その指示と渡されたデータとに基づいて本発明の各部の処理を実現する。
図21(A)に業務用ゲームシステムへの本実施形態の適用例を示す。プレーヤは、ディスプレイ1100上に映し出されたゲーム画像を見ながら、操作部1102を操作してゲームを楽しむ。内蔵されるシステムボード1106にはプロセッサ、メモリなどが実装される。本実施形態の各部の処理を実現するためのプログラム(データ)は、システムボード1106上の情報記憶媒体であるメモリ1108に格納される。以下、このプログラムを格納プログラムと呼ぶ。
図21(B)に家庭用ゲームシステムへの本実施形態の適用例を示す。この場合、上記格納プログラム(格納情報)は、本体システムに着脱自在な情報記憶媒体であるCD1206、或いはメモリカード1208、1209に格納される。
図21(C)に、ホスト装置1300と、このホスト装置1300とネットワーク1302を介して接続される端末1304-1〜1304-n(ゲーム機、携帯電話)とを含むシステムへの本実施形態の適用例を示す。この場合、上記格納プログラムは、ホスト装置1300の情報記憶媒体1306(ハードディスク、磁気テープ装置等)に格納される。また本実施形態の各部の処理をホスト装置と端末の分散処理で実現してもよい。
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。
例えば、明細書又は図面中の記載において広義な用語として引用された用語は、明細書又は図面中の他の記載においても広義な用語に置き換えることができる。
また、本発明のうち従属請求項に係る発明においては、従属先の請求項の構成要件の一部を省略する構成とすることもできる。また、本発明の1の独立請求項に係る発明の要部を、他の独立請求項に従属させることもできる。
また、本発明は種々のゲーム(格闘ゲーム、競争ゲーム、シューティングゲーム、ロボット対戦ゲーム、スポーツゲーム、ロールプレイングゲーム等)に適用できる。
また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレーヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード等の種々の画像生成システム(ゲームシステム)に適用できる。
100 処理部、110 移動体オブジェクト制御部、112 移動検出部、
114 マッピング位置算出部、116 衝突回避処理部、
120 画像生成部、130 音生成部、160 操作部、
170 記憶部、172 オブジェクト特性記憶部、
174 マッピング情報記憶部、176 プリミティブ面特性記憶部、
178 描画バッファ、180 情報記憶媒体、190 表示部、
192 音出力部、194 携帯型情報記憶装置、196 通信部、
MOBJ_f、MOBJ_f+1、MOBJ_f+2 移動体オブジェクト、
MV_f、MV_f+1、MV_f+2 移動ベクトル、
NV1、NV2、NV3 法線ベクトル、
P−f、P_f+1、P_f+2 マッピング位置、
POLY1〜POLY3 第1〜第3のポリゴン
114 マッピング位置算出部、116 衝突回避処理部、
120 画像生成部、130 音生成部、160 操作部、
170 記憶部、172 オブジェクト特性記憶部、
174 マッピング情報記憶部、176 プリミティブ面特性記憶部、
178 描画バッファ、180 情報記憶媒体、190 表示部、
192 音出力部、194 携帯型情報記憶装置、196 通信部、
MOBJ_f、MOBJ_f+1、MOBJ_f+2 移動体オブジェクト、
MV_f、MV_f+1、MV_f+2 移動ベクトル、
NV1、NV2、NV3 法線ベクトル、
P−f、P_f+1、P_f+2 マッピング位置、
POLY1〜POLY3 第1〜第3のポリゴン
Claims (23)
- 画像を生成するための画像生成システムであって、
オブジェクト空間における移動体オブジェクトを移動制御する移動体オブジェクト制御部と、
前記移動体オブジェクト制御部によって移動制御された前記移動体オブジェクトの画像を生成する画像生成部と、
を含み、
前記移動体オブジェクト制御部が、
複数のプリミティブ面で構成されたマップ上を移動する移動体オブジェクトが第1のプリミティブ面から該第1のプリミティブ面に隣接する第2のプリミティブ面に移動するとき、前記移動体オブジェクトの移動ベクトルと前記第2のプリミティブ面の法線ベクトルとを用いて、前記移動体オブジェクトが前記第2のプリミティブ面にマッピングされる位置を求めることを特徴とする画像生成システム。 - 請求項1において、
前記移動体オブジェクト制御部が、
前記移動ベクトルに基づいて、前記移動体オブジェクトが前記第1のプリミティブ面から前記第2のプリミティブ面に移動するか否かを検出し、
前記移動体オブジェクトが前記第2のプリミティブ面に移動すると検出されたことを条件に、前記移動体オブジェクトが前記第2のプリミティブ面にマッピングされる位置を求めることを特徴とする画像生成システム。 - 請求項2において、
前記移動体オブジェクト制御部が、
前記第1のプリミティブ面と前記第2のプリミティブ面との境界に設定された仮想プリミティブ面と、前記移動ベクトルとの交差判定を行うことによって、前記移動体オブジェクトが前記第1のプリミティブ面から前記第2のプリミティブ面に移動するか否かを検出することを特徴とする画像生成システム。 - 請求項1乃至3のいずれかにおいて、
前記移動体オブジェクト制御部が、
前記移動体オブジェクトが前記第2のプリミティブ面にマッピングされる位置として、前記移動ベクトルと前記法線ベクトルとを用いて生成される直線と、前記第2のプリミティブ面との交点を求めることを特徴とする画像生成システム。 - 請求項4において、
前記移動体オブジェクト制御部が、
前記直線を、前記移動ベクトルの終点を通り前記法線ベクトルに平行な直線として求めることを特徴とする画像生成システム。 - 請求項1乃至5のいずれかにおいて、
前記移動体オブジェクト制御部が、
前記移動体オブジェクトが前記第2のプリミティブ面に移動するとき、前記第2のプリミティブ面の状況に応じて移動後の前記移動体オブジェクトの移動制御を変化させることを特徴とする画像生成システム。 - 請求項6において、
前記移動体オブジェクト制御部が、
前記移動体オブジェクトの特性に応じて、前記第2のプリミティブ面に移動後の前記移動体オブジェクトの移動制御を変化させることを特徴とする画像生成システム。 - 請求項1乃至7のいずれかにおいて、
前記移動体オブジェクトがマッピングされるプリミティブ面を特定する情報を記憶するマッピング情報記憶部を含み、
前記移動体オブジェクト制御部が、
前記マッピング情報記憶部に記憶された情報に基づいて、当該移動体オブジェクトの移動先のプリミティブ面の候補を特定し、
前記移動ベクトルに基づいて、前記移動先のプリミティブ面の候補の中から前記移動体オブジェクトの移動先のプリミティブ面を求めることを特徴とする画像生成システム。 - 請求項8において、
前記移動体オブジェクト制御部が、
前記マッピング情報記憶部に記憶された情報に基づいて、当該移動体オブジェクトがマッピングされたプリミティブ面にマッピングされる移動体オブジェクト同士で衝突判定を行い、
衝突判定の結果に基づいて、前記プリミティブ面にマッピングされた前記移動体オブジェクトの少なくとも1つの移動制御を行うことを特徴とする画像生成システム。 - 画像を生成するための画像生成システムであって、
オブジェクト空間における移動体オブジェクトを移動制御する移動体オブジェクト制御部と、
前記移動体オブジェクト制御部によって移動制御される前記移動体オブジェクトがマッピングされるプリミティブ面を特定する情報を記憶するマッピング情報記憶部と、
前記移動体オブジェクトの画像を生成する画像生成部と、
を含み、
前記移動体オブジェクト制御部が、
前記マッピング情報記憶部に記憶された情報に基づいて、当該移動体オブジェクトがマッピングされたプリミティブ面にマッピングされる移動体オブジェクト同士で衝突判定を行い、
衝突判定の結果に基づいて、前記プリミティブ面にマッピングされる前記移動体オブジェクトの少なくとも1つの移動制御を行うことを特徴とする画像生成システム。 - 請求項9又は10において、
前記移動体オブジェクト制御部が、
前記移動体オブジェクトの特性に応じて、衝突判定を行う範囲を異ならせることを特徴とする画像生成システム。 - 画像を生成するためのプログラムであって、
オブジェクト空間における移動体オブジェクトを移動制御する移動体オブジェクト制御部と、
前記移動体オブジェクト制御部によって移動制御された前記移動体オブジェクトの画像を生成する画像生成部としてコンピュータを機能させ、
前記移動体オブジェクト制御部が、
複数のプリミティブ面で構成されたマップ上を移動する移動体オブジェクトが第1のプリミティブ面から該第1のプリミティブ面に隣接する第2のプリミティブ面に移動するとき、前記移動体オブジェクトの移動ベクトルと前記第2のプリミティブ面の法線ベクトルとを用いて、前記移動体オブジェクトが前記第2のプリミティブ面にマッピングされる位置を求めることを特徴とするプログラム。 - 請求項12において、
前記移動体オブジェクト制御部が、
前記移動ベクトルに基づいて、前記移動体オブジェクトが前記第1のプリミティブ面から前記第2のプリミティブ面に移動するか否かを検出し、
前記移動体オブジェクトが前記第2のプリミティブ面に移動すると検出されたことを条件に、前記移動体オブジェクトが前記第2のプリミティブ面にマッピングされる位置を求めることを特徴とするプログラム。 - 請求項13において、
前記移動体オブジェクト制御部が、
前記第1のプリミティブ面と前記第2のプリミティブ面との境界に設定された仮想プリミティブ面と、前記移動ベクトルとの交差判定を行うことによって、前記移動体オブジェクトが前記第1のプリミティブ面から前記第2のプリミティブ面に移動するか否かを検出することを特徴とするプログラム。 - 請求項12乃至14のいずれかにおいて、
前記移動体オブジェクト制御部が、
前記移動体オブジェクトが前記第2のプリミティブ面にマッピングされる位置として、前記移動ベクトルと前記法線ベクトルとを用いて生成される直線と、前記第2のプリミティブ面との交点を求めることを特徴とするプログラム。 - 請求項15において、
前記移動体オブジェクト制御部が、
前記直線を、前記移動ベクトルの終点を通り前記法線ベクトルに平行な直線として求めることを特徴とするプログラム。 - 請求項12乃至16のいずれかにおいて、
前記移動体オブジェクト制御部が、
前記移動体オブジェクトが前記第2のプリミティブ面に移動するとき、前記第2のプリミティブ面の状況に応じて移動後の前記移動体オブジェクトの移動制御を変化させることを特徴とするプログラム。 - 請求項17において、
前記移動体オブジェクト制御部が、
前記移動体オブジェクトの特性に応じて、前記第2のプリミティブ面に移動後の前記移動体オブジェクトの移動制御を変化させることを特徴とするプログラム。 - 請求項12乃至18のいずれかにおいて、
前記移動体オブジェクトがマッピングされるプリミティブ面を特定する情報を記憶するマッピング情報記憶部としてコンピュータを機能させ、
前記移動体オブジェクト制御部が、
前記マッピング情報記憶部に記憶された情報に基づいて、当該移動体オブジェクトの移動先のプリミティブ面の候補を特定し、
前記移動ベクトルに基づいて、前記移動先のプリミティブ面の候補の中から前記移動体オブジェクトの移動先のプリミティブ面を求めることを特徴とするプログラム。 - 請求項19において、
前記移動体オブジェクト制御部が、
前記マッピング情報記憶部に記憶された情報に基づいて、当該移動体オブジェクトがマッピングされたプリミティブ面にマッピングされる移動体オブジェクト同士で衝突判定を行い、
衝突判定の結果に基づいて、前記プリミティブ面にマッピングされた前記移動体オブジェクトの少なくとも1つの移動制御を行うことを特徴とするプログラム。 - 画像を生成するためのプログラムであって、
オブジェクト空間における移動体オブジェクトを移動制御する移動体オブジェクト制御部と、
前記移動体オブジェクト制御部によって移動制御される前記移動体オブジェクトがマッピングされるプリミティブ面を特定する情報を記憶するマッピング情報記憶部と、
前記移動体オブジェクトの画像を生成する画像生成部としてコンピュータを機能させ、
前記移動体オブジェクト制御部が、
前記マッピング情報記憶部に記憶された情報に基づいて、当該移動体オブジェクトがマッピングされたプリミティブ面にマッピングされる移動体オブジェクト同士で衝突判定を行い、
衝突判定の結果に基づいて、前記プリミティブ面にマッピングされる前記移動体オブジェクトの少なくとも1つの移動制御を行うことを特徴とするプログラム。 - 請求項20又は21において、
前記移動体オブジェクト制御部が、
前記移動体オブジェクトの特性に応じて、衝突判定を行う範囲を異ならせることを特徴とするプログラム。 - コンピュータ読み取り可能な情報記憶媒体であって、請求項12乃至22のいずれかのプログラムを記憶したことを特徴とする情報記憶媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008098587A JP2009251887A (ja) | 2008-04-04 | 2008-04-04 | 画像生成システム、プログラム及び情報記憶媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008098587A JP2009251887A (ja) | 2008-04-04 | 2008-04-04 | 画像生成システム、プログラム及び情報記憶媒体 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009251887A true JP2009251887A (ja) | 2009-10-29 |
Family
ID=41312545
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008098587A Withdrawn JP2009251887A (ja) | 2008-04-04 | 2008-04-04 | 画像生成システム、プログラム及び情報記憶媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2009251887A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013202222A (ja) * | 2012-03-28 | 2013-10-07 | Square Enix Co Ltd | ゲーム装置 |
CN111589152A (zh) * | 2020-05-19 | 2020-08-28 | 腾讯科技(深圳)有限公司 | 虚拟攻击道具的控制方法和装置、存储介质及电子设备 |
CN111681221A (zh) * | 2020-06-05 | 2020-09-18 | 中国科学院空天信息创新研究院 | 一种基于基元矢量多角度描述彩色图像的方法 |
-
2008
- 2008-04-04 JP JP2008098587A patent/JP2009251887A/ja not_active Withdrawn
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013202222A (ja) * | 2012-03-28 | 2013-10-07 | Square Enix Co Ltd | ゲーム装置 |
CN111589152A (zh) * | 2020-05-19 | 2020-08-28 | 腾讯科技(深圳)有限公司 | 虚拟攻击道具的控制方法和装置、存储介质及电子设备 |
CN111681221A (zh) * | 2020-06-05 | 2020-09-18 | 中国科学院空天信息创新研究院 | 一种基于基元矢量多角度描述彩色图像的方法 |
CN111681221B (zh) * | 2020-06-05 | 2023-12-19 | 中国科学院空天信息创新研究院 | 一种基于基元矢量多角度描述彩色图像的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4651435B2 (ja) | プログラム、情報記憶媒体及び画像生成システム | |
EP2466445B1 (en) | Input direction determination terminal, method and computer program product | |
CN106575445B (zh) | 毛皮虚拟化身动画 | |
US9652063B2 (en) | Input direction determination system, terminal, server, network system, information storage medium, and input direction determination method | |
JP3989396B2 (ja) | 画像生成システム、プログラム及び情報記憶媒体 | |
JP4749198B2 (ja) | プログラム、情報記憶媒体及び画像生成システム | |
JP2009251887A (ja) | 画像生成システム、プログラム及び情報記憶媒体 | |
JP2009129167A (ja) | プログラム、情報記憶媒体、及び画像生成システム | |
JP4743770B2 (ja) | 画像生成システム、プログラム、及び情報記憶媒体 | |
JP5007633B2 (ja) | 画像処理用プログラム、当該プログラムを記録したコンピュータ読み取り可能な記録媒体、画像処理装置、画像処理方法 | |
JP2006323512A (ja) | 画像生成システム、プログラム及び情報記憶媒体 | |
JP4754384B2 (ja) | プログラム、情報記録媒体および画像生成システム | |
JP4651436B2 (ja) | プログラム、情報記憶媒体及び画像生成システム | |
JP2009169471A (ja) | プログラム、情報記憶媒体、及び画像生成システム | |
JP5063022B2 (ja) | プログラム、情報記憶媒体及び画像生成システム | |
JP2010033288A (ja) | 画像生成システム、プログラム及び情報記憶媒体 | |
JP4229316B2 (ja) | 画像生成システム、プログラム及び情報記憶媒体 | |
JP2009247555A (ja) | 画像生成システム、プログラム及び情報記憶媒体 | |
JP4662260B2 (ja) | プログラム、情報記憶媒体及び画像生成システム | |
JP6960968B2 (ja) | プログラム及びサーバ | |
JP2009251883A (ja) | 画像生成システム、プログラム及び情報記憶媒体 | |
JP4162125B2 (ja) | 画像生成システム、プログラム及び情報記憶媒体 | |
JP2006252423A (ja) | プログラム、情報記憶媒体及び画像生成システム | |
JP4786374B2 (ja) | プログラム、情報記憶媒体及び画像生成システム | |
JP2008198232A (ja) | 画像生成システム、プログラム及び情報記憶媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20110607 |