JP4861862B2 - Program, information storage medium, and image generation system - Google Patents

Program, information storage medium, and image generation system Download PDF

Info

Publication number
JP4861862B2
JP4861862B2 JP2007058903A JP2007058903A JP4861862B2 JP 4861862 B2 JP4861862 B2 JP 4861862B2 JP 2007058903 A JP2007058903 A JP 2007058903A JP 2007058903 A JP2007058903 A JP 2007058903A JP 4861862 B2 JP4861862 B2 JP 4861862B2
Authority
JP
Japan
Prior art keywords
movement
control area
motion
area
parameter
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.)
Active
Application number
JP2007058903A
Other languages
Japanese (ja)
Other versions
JP2008225571A (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 JP2007058903A priority Critical patent/JP4861862B2/en
Publication of JP2008225571A publication Critical patent/JP2008225571A/en
Application granted granted Critical
Publication of JP4861862B2 publication Critical patent/JP4861862B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Description

本発明は、プログラム、情報記憶媒体、及び、画像生成システムに関する。   The present invention relates to a program, an information storage medium, and an image generation system.

従来から、ゲームなどの移動体オブジェクトが設定されるオブジェクト空間(仮想的な3次元空間)内において仮想カメラ(所与の視点)から見える画像を生成する画像生成システムが知られており、いわゆる仮想現実を体験できるものとして人気が高い。このような画像生成システムでは、物体に対して気流の影響を受けるように移動・動作させる気流制御を行う場合がある。例えば、オブジェクト空間に存在する物体(例えば枯葉)が、移動体の移動により発生する気流の影響を受けて移動・動作する様子を表現する場合がある。
特開2001−286676号公報
Conventionally, an image generation system that generates an image that can be viewed from a virtual camera (a given viewpoint) in an object space (virtual three-dimensional space) in which a moving object such as a game is set is known. It is popular as a way to experience reality. In such an image generation system, there is a case where airflow control is performed to move and operate an object so as to be affected by the airflow. For example, there is a case where an object (for example, dead leaves) existing in the object space is expressed as moving and operating under the influence of an air flow generated by the movement of the moving body.
JP 2001-286676 A

しかしながら、従来の気流制御は、移動体の形状に左右されない領域に存在する物体に、気流の影響を与える移動・動作の演算を行う手法が採用されていた。しかし、この手法を採用すると、移動体の凹凸等の形状に応じたきめ細かい気流の様子を表現することができない。   However, the conventional airflow control employs a method of calculating movement / motion that affects the airflow on an object that exists in an area that is not affected by the shape of the moving body. However, when this method is employed, it is impossible to express a fine air current according to the shape of the unevenness of the moving body.

また、厳密に気流のシミュレーションの演算を行い、その演算結果に基づいて移動体の周囲に存在する物体の移動・動作の演算を厳密に行う手法も知られている。しかし、この手法は演算量が多く大きな処理負荷がかかる。   There is also known a method of performing a calculation of an air flow strictly and calculating a movement / motion of an object existing around the moving object based on the calculation result. However, this method requires a large processing load due to a large calculation amount.

本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、システムの処理負荷を抑えつつ、移動体の周囲に存在する物体が、気流の影響を受けて移動・動作する様子をリアルに表現するプログラム、情報記憶媒体、及び、画像生成システムを提供することにある。   The present invention has been made in view of the problems as described above. The object of the present invention is to suppress the processing load of the system while moving an object existing around the moving body under the influence of an air current. The object is to provide a program, an information storage medium, and an image generation system that realistically represent the operating state.

(1)本発明は、オブジェクト空間における所与の視点から見える画像を生成する画像生成システムであって、第1のオブジェクト及び第2のオブジェクトをオブジェクト空間に設定するオブジェクト空間設定部と、前記第1のオブジェクト及び前記第2のオブジェクトの移動及び動作の少なくとも一方を演算する移動・動作処理部と、前記第1のオブジェクトの位置に応じて制御エリアを設定するエリア設定部と、前記制御エリアに基づいて、制御エリア面を格子状に分割する複数の格子点のそれぞれに対応づけて移動・動作パラメータを設定するパラメータ設定部と、オブジェクト空間における所与の視点から見える画像を生成する描画部と、を含み、前記エリア設定部が、前記第1のオブジェクトの周囲の少なくとも一部を含むエリアを、前記制御エリアとして設定し、前記移動・動作処理部が、前記制御エリア内に存在する前記第2のオブジェクトの位置と、前記制御エリア面の各格子点に対応付けられる移動・動作パラメータとに基づいて、前記第2のオブジェクトの移動及び動作の少なくとも一方を演算することを特徴とする画像生成システムに関するものである。   (1) The present invention is an image generation system that generates an image that can be seen from a given viewpoint in an object space, and an object space setting unit that sets a first object and a second object in the object space; A movement / motion processing unit that calculates at least one of movement and motion of one object and the second object; an area setting unit that sets a control area according to the position of the first object; and A parameter setting unit that sets movement / motion parameters in association with each of a plurality of grid points that divide the control area surface into a grid, and a drawing unit that generates an image viewed from a given viewpoint in the object space, , And the area setting unit includes at least a part of the periphery of the first object The movement / motion processing unit is set as the control area, and the movement / motion processing unit determines the position of the second object existing in the control area and the movement / motion parameter associated with each grid point on the control area surface. The present invention relates to an image generation system that calculates at least one of movement and movement of the second object based on the above.

また本発明は、上記各部としてコンピュータを機能させるプログラム及びそのようなプログラムを記憶するコンピュータに読み取り可能な情報記憶媒体に関するものである。   The present invention also relates to a program that causes a computer to function as each of the above-described units and a computer-readable information storage medium that stores such a program.

本発明の「格子状」とは、所定間隔で区切られている状態をいう。また、本発明の「第1のオブジェクトの周囲の少なくとも一部」とは、第1のオブジェクトの周囲の上方、下方、前方、後方、左側方、及び右側方、の少なくとも一部のことをいう。   The “lattice” of the present invention refers to a state where the grid is divided at a predetermined interval. In the present invention, “at least part of the periphery of the first object” means at least part of the periphery of the first object, above, below, front, back, left side, and right side. .

本発明によれば、第1のオブジェクトの周囲の少なくとも一部を含むエリアを制御エリアとして設定し、制御エリア内に存在する第2の移動体オブジェクトに対して、移動・動作パラメータに基づく移動・動作の演算を行うことができるので、従来のように気流のシミュレーション演算を行い演算結果に基づいて第2のオブジェクトを移動・動作させる演算を行わなくても、簡易な演算で第1のオブジェクトの周囲の少なくとも一部を含むエリアに存在する第2のオブジェクトに対して、気流の影響を受けて移動・動作する様子を表現することができる。   According to the present invention, an area including at least a part of the periphery of the first object is set as the control area, and the second mobile object existing in the control area is moved / moved based on the movement / motion parameter. Since the operation can be calculated, it is possible to perform the calculation of the first object with a simple calculation without performing the calculation of the airflow simulation and the calculation of moving and operating the second object based on the calculation result as in the prior art. It is possible to express the movement and movement of the second object existing in the area including at least a part of the surroundings under the influence of the airflow.

例えば、移動体(第1のオブジェクトの一例)が移動することによって気流が発生する様子を表現する場合には、移動体の周囲の少なくとも一部を含むエリアを制御エリアとして設定し、制御エリアに基づいて移動・動作パラメータを設定するようにすれば、制御エリアに存在する枯葉(第2のオブジェクトの一例)に対して、設定された移動・動作パラメータに基づいて気流の影響を与えて移動・動作の演算を行うことができる。また、本発明によれば、第2のオブジェクトの位置に基づいて、制御エリア面の各格子点に対応付けられる移動・動作パラメータを取得することができるので、気流のシミュレーションを行う計算に比較して計算量が少なく画像処理システムの処理負荷を抑えることができる。   For example, when expressing a state in which an air flow is generated by moving a moving body (an example of a first object), an area including at least a part of the periphery of the moving body is set as a control area, If the movement / motion parameters are set based on the movement / motion parameters, the dead leaves (an example of the second object) existing in the control area are affected by the airflow based on the set movement / motion parameters. Operations can be calculated. Further, according to the present invention, since the movement / motion parameter associated with each grid point on the control area plane can be acquired based on the position of the second object, it is compared with the calculation for performing the air flow simulation. Therefore, the amount of calculation is small and the processing load of the image processing system can be suppressed.

(2)また、本発明の画像生成システム、プログラム及び情報記憶媒体では、前記エリア設定部が、前記第1のオブジェクトが占める範囲を含む補正エリアを設定し、前記移動・動作処理部が、前記第2のオブジェクトの位置が前記補正エリア外に位置するように、前記第2のオブジェクトの位置を補正する演算を行うようにしてもよい。   (2) In the image generation system, the program, and the information storage medium of the present invention, the area setting unit sets a correction area including a range occupied by the first object, and the movement / motion processing unit You may make it perform the calculation which correct | amends the position of a said 2nd object so that the position of a 2nd object may be located outside the said correction area.

本発明によれば、第1のオブジェクトが占める範囲を含む補正エリアを設定し、第2のオブジェクトの位置が補正エリア外に位置するように補正するので、第2のオブジェクトが第1のオブジェクトの中に存在したり、第2のオブジェクトが第1のオブジェクトにめり込むような不自然な画像を生成することを防ぐことができる。   According to the present invention, the correction area including the range occupied by the first object is set and the correction is performed so that the position of the second object is outside the correction area. It is possible to prevent the generation of an unnatural image that exists inside or the second object is embedded in the first object.

(3)また、本発明の画像生成システム、プログラム及び情報記憶媒体では、前記エリア設定部が、補正エリア面を格子状に分割する複数の格子点と、当該複数の格子点のそれぞれに対応付けられる補正パラメータとに基づいて、補正エリアを設定し、前記移動・動作処理部が、前記第2のオブジェクトの位置と、前記補正エリア面の各格子点とに対応付けられる前記補正パラメータとに基づいて、前記第2のオブジェクトの位置を補正する演算を行うようにしてもよい。   (3) In the image generation system, the program, and the information storage medium of the present invention, the area setting unit associates a plurality of lattice points that divide the correction area surface into a lattice shape and each of the plurality of lattice points. A correction area is set on the basis of the correction parameter, and the movement / motion processing unit is based on the correction parameter associated with the position of the second object and each grid point on the correction area surface. Then, a calculation for correcting the position of the second object may be performed.

本発明によれば、第2のオブジェクトの位置と、補正エリア面の各格子点との2次元の位置関係に基づいて補正パラメータを取得し、取得した補正パラメータに基づいて第2のオブジェクトの補正の演算を行うので、演算量を少なくしつつ、第2のオブジェクトが第1のオブジェクトにめり込まないような画像を生成することができる。例えば、第1のオブジェクトが凹凸のある複雑な形状を有するものであっても、画像生成システムの処理負荷をかけずに、簡易な計算で第2のオブジェクトが第1のオブジェクト外に存在するような自然な画像を生成することができる。   According to the present invention, the correction parameter is acquired based on the two-dimensional positional relationship between the position of the second object and each lattice point of the correction area surface, and the correction of the second object is performed based on the acquired correction parameter. Thus, it is possible to generate an image in which the second object does not sink into the first object while reducing the amount of calculation. For example, even if the first object has a complex shape with irregularities, the second object is present outside the first object with a simple calculation without applying the processing load of the image generation system. Natural images can be generated.

(4)また、本発明の画像生成システム、プログラム及び情報記憶媒体では、前記エリア設定部が、前記第1のオブジェクトを内包するボリュームを用いて前記補正エリアを設定し、前記移動・動作処理部が、前記第2のオブジェクトの少なくとも一部が前記ボリューム内に存在する場合には、前記第2のオブジェクトを前記ボリューム外に位置するように前記第2のオブジェクトの位置を補正する演算を行うようにしてもよい。   (4) In the image generation system, the program, and the information storage medium of the present invention, the area setting unit sets the correction area using a volume that includes the first object, and the movement / motion processing unit However, when at least a part of the second object exists in the volume, an operation is performed to correct the position of the second object so that the second object is located outside the volume. It may be.

本発明によれば、第1のオブジェクトを内包するボリュームを用いて補正する演算を行うので、第2のオブジェクトの少なくとも一部が第1のオブジェクト内に存在するか否かを厳密に計算する手法に比較して、容易に補正する演算を行うことができる。   According to the present invention, since a correction operation is performed using the volume that contains the first object, a technique for strictly calculating whether or not at least a part of the second object exists in the first object is used. Compared to the above, it is possible to easily perform a correction operation.

(5)また、本発明の画像生成システム、プログラム及び情報記憶媒体では、前記パラメータ設定部が、前記制御エリア面を格子状に分割した前記複数の格子点のそれぞれに対応づけて補正パラメータを設定し、前記移動・動作処理部が、前記第2のオブジェクトの位置と、前記制御エリア面の各格子点とに対応付けられる前記補正パラメータとに基づいて、前記第2のオブジェクトの位置を補正する演算を行うようにしてもよい。   (5) In the image generation system, program, and information storage medium of the present invention, the parameter setting unit sets correction parameters in association with each of the plurality of grid points obtained by dividing the control area surface into a grid. The movement / motion processing unit corrects the position of the second object based on the position of the second object and the correction parameter associated with each grid point of the control area surface. You may make it perform a calculation.

本発明によれば、制御エリア面を格子状に分割した複数の2次元の格子点のそれぞれに対応づけて、移動・動作パラメータだけでなく補正パラメータも予め設定するので、演算時には1つの格子点で移動・動作パラメータと補正パラメータとを参照することができ、演算処理の負荷を抑えることができる。   According to the present invention, not only the movement / operation parameters but also the correction parameters are set in advance in association with each of a plurality of two-dimensional lattice points obtained by dividing the control area surface into a lattice shape. Thus, the movement / operation parameter and the correction parameter can be referred to, and the processing load can be reduced.

(6)また、本発明の画像生成システム、プログラム及び情報記憶媒体では、前記移動・動作処理部が、前記第2のオブジェクトの移動及び動作の少なくとも一方を演算した後に、前記第2のオブジェクトの位置を補正する演算を行うようにしてもよい。   (6) In the image generation system, the program, and the information storage medium of the present invention, after the movement / motion processing unit calculates at least one of movement and motion of the second object, You may make it perform the calculation which correct | amends a position.

本発明によれば、第2のオブジェクトの移動及び動作の少なくとも一方を演算することによって、第2のオブジェクトの一部が第1のオブジェクトの中に位置することになっても、その後に第2のオブジェクトの位置を補正する演算を行うので、不自然な画像を生成することを防止することができる。つまり、本発明によれば、第2のオブジェクトが第1のオブジェクトにめり込むような不自然な画像を生成することを確実に防ぐことができ、常に自然な画像を生成することができる。   According to the present invention, even if a part of the second object is located in the first object by calculating at least one of the movement and movement of the second object, the second object is subsequently moved to the second object. Since the calculation for correcting the position of the object is performed, it is possible to prevent generation of an unnatural image. That is, according to the present invention, it is possible to reliably prevent an unnatural image such that the second object sinks into the first object, and to always generate a natural image.

(7)また、本発明の画像生成システム、プログラム及び情報記憶媒体では、前記エリア設定部が、前記第1のオブジェクトの周囲であって、前記制御エリア面と前記制御エリア面に対する垂直方向の所定範囲によって囲まれたエリアを、前記制御エリアとして設定してもよい。   (7) In the image generation system, the program, and the information storage medium of the present invention, the area setting unit is a predetermined area in a direction perpendicular to the control area surface and the control area surface, around the first object. An area surrounded by a range may be set as the control area.

本発明によれば、制御エリア内に存在する第2のオブジェクトにのみに、移動・動作パラメータに基づく移動・動作を行うので、演算量を抑えることができる。   According to the present invention, since the movement / motion based on the movement / motion parameter is performed only on the second object existing in the control area, the amount of calculation can be suppressed.

(8)また、本発明の画像生成システム、プログラム及び情報記憶媒体では、前記エリア設定部が、複数種類の前記第1のオブジェクトに対して共通の前記制御エリアを設定し、前記パラメータ設定部が、複数種類の前記第1のオブジェクトに対して、共通の前記制御エリア面を格子状に分割する前記複数の格子点のそれぞれに対応づけて共通の移動・動作パラメータを設定するようにしてもよい。   (8) In the image generation system, the program, and the information storage medium of the present invention, the area setting unit sets the common control area for a plurality of types of the first objects, and the parameter setting unit A common movement / motion parameter may be set in association with each of the plurality of grid points that divide the common control area surface into a grid for a plurality of types of the first objects. .

本発明によれば、複数種類の第1のオブジェクトごとに移動・動作パラメータを設定する必要がないので、複数種類の第1のオブジェクトごとに移動・動作パラメータを設定する場合に比較して記憶領域を節約することができる。   According to the present invention, since it is not necessary to set movement / motion parameters for each of a plurality of types of first objects, the storage area is compared with a case where movement / motion parameters are set for each of a plurality of types of first objects. Can be saved.

(9)また、本発明の画像生成システム、プログラム及び情報記憶媒体では、前記移動・動作処理部が、前記第2のオブジェクトの位置に基づいて前記各格子点に設定された前記移動・動作パラメータを補間し、補間した値に基づいて前記第2のオブジェクトの移動及び動作の少なくとも一方を演算するようにしてもよい。   (9) In the image generation system, the program, and the information storage medium of the present invention, the movement / motion processing unit sets the movement / motion parameters set at the respective grid points based on the position of the second object. And at least one of movement and movement of the second object may be calculated based on the interpolated value.

本発明によれば、各格子点に設定された移動・動作パラメータを補間した値に基づいて第2のオブジェクトの移動及び動作の少なくとも一方を演算することができるので、制御エリア面を粗く格子状に分割した複数の格子点それぞれに対応づけて移動・動作パラメータを設定することができる。そして、その結果、制御エリア面を細かく格子状に分割して密に格子点を設定する必要はないので、移動・動作パラメータのデータ量を削減することができ、記憶領域を節約することができる。   According to the present invention, since at least one of the movement and movement of the second object can be calculated based on the value obtained by interpolating the movement / motion parameter set at each grid point, the control area surface is roughly grid-like. The movement / operation parameters can be set in association with each of the plurality of grid points divided into the two. As a result, there is no need to finely divide the control area surface into a grid and set grid points densely, so the data amount of movement / operation parameters can be reduced, and the storage area can be saved. .

(10)また、本発明の画像生成システム、プログラム及び情報記憶媒体では、前記オブジェクト空間設定部が、前記第1のオブジェクトのローカル座標系における前記第1のオブジェクトの位置をオブジェクト空間を定義する座標系における位置に変換することによって、前記第1のオブジェクトを前記オブジェクト空間に設定し、前記エリア設定部が、前記制御エリアを前記ローカル座標系に設定し、前記パラメータ設定部が、前記制御エリア面を格子状に分割する複数の格子点を、前記ローカル座標系に設定し、前記移動・動作処理部が、前記オブジェクト空間に設定された前記第2のオブジェクトの位置を前記ローカル座標系に変換し、変換した位置に基づいて演算するようにしてもよい。   (10) In the image generation system, the program, and the information storage medium of the present invention, the object space setting unit is a coordinate that defines the position of the first object in the local coordinate system of the first object. The first object is set in the object space by converting it into a position in the system, the area setting unit sets the control area in the local coordinate system, and the parameter setting unit sets the control area plane. A plurality of lattice points that divide the image into a lattice shape are set in the local coordinate system, and the movement / motion processing unit converts the position of the second object set in the object space into the local coordinate system. The calculation may be performed based on the converted position.

本発明によれば、オブジェクト空間(ワールド座標系)における第1のオブジェクトの位置に左右されずに移動・動作パラメータを設定することができると共に、オブジェクト空間における第2のオブジェクトの位置を、第1のオブジェクトのローカル座標系に変換するだけで、第2のオブジェクトの移動・動作や補正の演算を簡易に行うことが可能になる。つまり、本発明によれば、オブジェクト空間で第1のオブジェクトが移動する度に制御エリアを設定し、第2のオブジェクトの移動・動作や補正を行う演算処理に対する煩雑さを回避することができるので、画像生成システムの処理負荷を抑えることが可能になる。   According to the present invention, the movement / motion parameter can be set regardless of the position of the first object in the object space (world coordinate system), and the position of the second object in the object space It is possible to easily calculate the movement / motion and correction of the second object simply by converting to the local coordinate system of the second object. In other words, according to the present invention, the control area is set every time the first object moves in the object space, and the complexity of the arithmetic processing for moving / moving or correcting the second object can be avoided. The processing load on the image generation system can be reduced.

1.構成
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
1. Configuration Hereinafter, the present embodiment will be described. In addition, this embodiment demonstrated below does not unduly limit the content of this invention described in the claim. In addition, all the configurations described in the present embodiment are not necessarily essential configuration requirements of the present invention.

図1に本実施形態の画像生成システム(ゲームシステム)の機能ブロック図の例を示す。なお本実施形態の画像生成システムは図1の構成要素(各部)の一部を省略した構成としてもよい。   FIG. 1 shows an example of a functional block diagram of an image generation system (game system) of the present embodiment. Note that the image generation system of the present embodiment may have a configuration in which some of the components (each unit) in FIG. 1 are omitted.

操作部160は、プレーヤが移動体の操作データを入力するためのものであり、その機能は、レバー、ボタン、ステアリング、マイク、タッチパネル型ディスプレイ、或いは筺体などにより実現できる。記憶部170は、処理部100や通信部196などのワーク領域となるもので、その機能はRAM(VRAM)などにより実現できる。   The operation unit 160 is used by the player to input operation data of the moving body, and the function thereof can be realized by a lever, a button, a steering wheel, a microphone, a touch panel display, a housing, or the like. The storage unit 170 serves as a work area for the processing unit 100, the communication unit 196, and the like, and its function can be realized by a RAM (VRAM) or the like.

記憶部170は、種々のデータを記憶する処理を行う。主記憶部172は、処理部100で用いるワーク領域として用いることができる。特に、本実施の主記憶部172は、パラメータ設定部116で設定される移動・動作パラメータ、補正パラメータを記憶することができる。また描画バッファ174は、画像情報を記憶することができる。   The storage unit 170 performs processing for storing various data. The main storage unit 172 can be used as a work area used in the processing unit 100. In particular, the main storage unit 172 of the present embodiment can store movement / operation parameters and correction parameters set by the parameter setting unit 116. The drawing buffer 174 can store image information.

また、オブジェクトデータ記憶部176は、オブジェクトデータを記憶することができる。特に、本実施形態のオブジェクトデータ記憶部176は、第1のオブジェクト(移動体)や、第2のオブジェクト(枯葉、雪、雨)のオブジェクトデータを記憶することができる。なお、第1のオブジェクトが移動体である場合には、複数種類の移動体を記憶することができる。   The object data storage unit 176 can store object data. In particular, the object data storage unit 176 of the present embodiment can store the object data of the first object (moving body) and the second object (dead leaves, snow, rain). Note that when the first object is a moving object, a plurality of types of moving objects can be stored.

情報記憶媒体180(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(CD、DVD)、光磁気ディスク(MO)、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ(ROM)などにより実現できる。処理部100は、情報記憶媒体180に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体180には、本実施形態の各部としてコンピュータを機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)が記憶される。   The information storage medium 180 (computer-readable medium) stores programs, data, and the like, and functions as an optical disk (CD, DVD), magneto-optical disk (MO), magnetic disk, hard disk, and magnetic tape. Alternatively, it can be realized by a memory (ROM). The processing unit 100 performs various processes of the present embodiment based on a program (data) stored in the information storage medium 180. That is, the information storage medium 180 stores a program for causing a computer to function as each unit of the present embodiment (a program for causing a computer to execute processing of each unit).

表示部190は、本実施形態により生成された画像を出力するものであり、その機能は、CRT、LCD、タッチパネル型ディスプレイ、或いはHMD(ヘッドマウントディスプレイ)などにより実現できる。音出力部192は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。   The display unit 190 outputs an image generated according to the present embodiment, and its function can be realized by a CRT, LCD, touch panel display, HMD (head mounted display), or the like. The sound output unit 192 outputs the sound generated by the present embodiment, and its function can be realized by a speaker, headphones, or the like.

携帯型情報記憶媒体194は、プレーヤの個人データやゲームのセーブデータなどが記憶されるものであり、この携帯型情報記憶媒体194としては、メモリカードや携帯型ゲーム装置などがある。通信部196は外部(例えばホスト装置や他の画像生成システム)との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ASICなどのハードウェアや、プログラムなどにより実現できる。   The portable information storage medium 194 stores player personal data, game save data, and the like. Examples of the portable information storage medium 194 include a memory card and a portable game device. The communication unit 196 performs various controls for communicating with the outside (for example, a host device or other image generation system), and functions thereof are hardware such as various processors or communication ASICs, programs, and the like. It can be realized by.

なお本実施形態の各部としてコンピュータを機能させるためのプログラム(データ)は、ホスト装置(サーバ)が有する情報記憶媒体からネットワーク及び通信部196を介して情報記憶媒体180(記憶部170)に配信してもよい。このようなホスト装置(サーバ)の情報記憶媒体の使用も本発明の範囲内に含めることができる。   Note that a program (data) for causing a computer to function as each unit of the present embodiment is distributed from the information storage medium of the host device (server) to the information storage medium 180 (storage unit 170) via the network and communication unit 196. May be. Use of the information storage medium of such a host device (server) can also be included in the scope of the present invention.

処理部100(プロセッサ)は、操作部160からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの処理を行う。処理部100は記憶部170内の主記憶部172をワーク領域として各種処理を行い、処理部100の機能は各種プロセッサ(CPU、DSP等)、ASIC(ゲートアレイ等)などのハードウェアや、プログラムにより実現できる。   The processing unit 100 (processor) performs processing such as game processing, image generation processing, or sound generation processing based on operation data and programs from the operation unit 160. The processing unit 100 performs various processes using the main storage unit 172 in the storage unit 170 as a work area. The functions of the processing unit 100 are hardware such as various processors (CPU, DSP, etc.), ASIC (gate array, etc.), and programs. Can be realized.

処理部100は、オブジェクト空間設定部110、移動・動作処理部112、エリア設定部114、パラメータ設定部116、描画部120、音生成部130を含む。なおこれらの一部を省略する構成としてもよい。   The processing unit 100 includes an object space setting unit 110, a movement / motion processing unit 112, an area setting unit 114, a parameter setting unit 116, a drawing unit 120, and a sound generation unit 130. Note that some of these may be omitted.

オブジェクト空間設定部110は、移動体、物体、粒子、枯葉、雪、雨、キャラクタ、建物、球場、車、飛行機、船、潜水艦、樹木、柱、壁、マップ(地形)などの表示物を表す各種オブジェクト(ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブで構成されるオブジェクト)をオブジェクト空間に配置設定する処理を行う。即ちワールド座標系でのオブジェクトの位置や回転角度(向き、方向と同義)を決定し、その位置(X、Y、Z)にその回転角度(X、Y、Z軸回りでの回転角度)でオブジェクトを配置する。特に、本実施形態では、記憶部170のオブジェクトデータ記憶部176に記憶される第1のオブジェクト(移動体)や、第2のオブジェクト(枯葉、雪、雨)をオブジェクト空間に配置する処理を行う。   The object space setting unit 110 represents display objects such as a moving object, an object, particles, dead leaves, snow, rain, a character, a building, a stadium, a car, an airplane, a ship, a submarine, a tree, a pillar, a wall, and a map (terrain). Various objects (objects composed of primitives such as polygons, free-form surfaces or subdivision surfaces) are arranged and set in the object space. In other words, the position and rotation angle of the object in the world coordinate system (synonymous with direction and direction) are determined, and the rotation angle (rotation angle around the X, Y, and Z axes) is determined at that position (X, Y, Z). Arrange objects. In particular, in the present embodiment, a process of placing the first object (moving body) and the second object (dead leaves, snow, rain) stored in the object data storage unit 176 of the storage unit 170 in the object space is performed. .

特に本実施形態のオブジェクト空間設定部110は、第1のオブジェクトのローカル座標系における第1のオブジェクトの位置をオブジェクト空間に変換することによって、第1のオブジェクトをオブジェクト空間に設定することができ、また、第2のオブジェクトのローカル座標系における第2のオブジェクトの位置をオブジェクト空間に変換することによって、第2のオブジェクトをオブジェクト空間に設定することができる。   In particular, the object space setting unit 110 of the present embodiment can set the first object in the object space by converting the position of the first object in the local coordinate system of the first object into the object space. Also, the second object can be set in the object space by converting the position of the second object in the local coordinate system of the second object into the object space.

移動・動作処理部112は、オブジェクト(車、電車又は飛行機、枯葉、雪、雨等)の移動・動作演算(移動・動作シミュレーション)を行う。すなわち操作部160によりプレーヤが入力した操作データや、プログラム(移動・動作アルゴリズム)や、各種データ(モーションデータ)などに基づいて、オブジェクトをオブジェクト空間内で移動させたり、オブジェクトを動作(モーション、アニメーション)させたりする処理を行う。具体的には、オブジェクトの移動情報(位置、回転角度、速度、或いは加速度)や動作情報(オブジェクトを構成する各パーツの位置、或いは回転角度)を、1フレーム(1/60秒)毎に順次求めるシミュレーション処理を行う。なおフレームは、オブジェクトの移動・動作処理(シミュレーション処理)や画像生成処理を行う時間の単位である。   The movement / motion processing unit 112 performs a movement / motion calculation (movement / motion simulation) of an object (car, train or airplane, dead leaves, snow, rain, etc.). That is, based on operation data input by the player through the operation unit 160, a program (movement / motion algorithm), various data (motion data), or the like, the object is moved in the object space, or the object is moved (motion, animation). ) Process. Specifically, object movement information (position, rotation angle, speed, or acceleration) and motion information (position or rotation angle of each part that constitutes the object) are sequentially transmitted every frame (1/60 seconds). Perform the required simulation process. A frame is a unit of time for performing object movement / motion processing (simulation processing) and image generation processing.

特に本実施形態では、第1のオブジェクト及び第2のオブジェクトの移動及び動作の少なくとも一方を演算する。具体的に説明すると、本実施形態の移動・動作処理部112は、エリア設定部114で設定された制御エリア内に存在する第2のオブジェクトの位置と、後述するパラメータ設定部116において設定される制御エリア面の各格子点に対応付けられる移動・動作パラメータとに基づいて、第2のオブジェクトの移動及び動作の少なくとも一方を演算する。   In particular, in the present embodiment, at least one of movement and movement of the first object and the second object is calculated. More specifically, the movement / motion processing unit 112 of the present embodiment is set by the position of the second object existing in the control area set by the area setting unit 114 and the parameter setting unit 116 described later. Based on the movement / motion parameter associated with each grid point on the control area surface, at least one of movement and motion of the second object is calculated.

また、本実施形態の移動・動作処理部112は、第2のオブジェクトの位置がエリア設定部114で設定された補正エリアの外に位置するように、第2のオブジェクトの位置を補正する演算を行う。具体的に説明すると、第2のオブジェクトの位置を補正する演算は、第2のオブジェクトの位置と、後述するパラメータ設定部116において設定される補正エリア面の各格子点とに対応付けられる補正パラメータとに基づいて、第2のオブジェクトの位置を補正する演算を行うことができる。なお、パラメータ設定部116において、制御エリア面を格子状に分割した複数の格子点のそれぞれに対応づけて補正パラメータを設定した場合には、第2のオブジェクトの位置と、制御エリア面の各格子点とに対応付けられる補正パラメータとに基づいて、前記第2のオブジェクトの位置を補正する演算を行うようにしてもよい。   In addition, the movement / motion processing unit 112 of the present embodiment performs a calculation for correcting the position of the second object so that the position of the second object is located outside the correction area set by the area setting unit 114. Do. More specifically, the calculation for correcting the position of the second object is a correction parameter associated with the position of the second object and each grid point of the correction area plane set in the parameter setting unit 116 described later. Based on the above, a calculation for correcting the position of the second object can be performed. In the parameter setting unit 116, when the correction parameter is set in association with each of a plurality of grid points obtained by dividing the control area surface into a grid, the position of the second object and each grid of the control area surface are set. An operation for correcting the position of the second object may be performed based on a correction parameter associated with a point.

また、本実施形態の移動・動作処理部112の第2のオブジェクトの位置を補正する演算は、エリア設定部114で第1のオブジェクトを内包するボリュームを用いて補正エリアを設定し、第2のオブジェクトの少なくとも一部がボリューム内に存在する場合には、第2のオブジェクトをボリューム外に位置するように第2のオブジェクトの位置を補正する演算を行うようにしてもよい。   Further, in the calculation for correcting the position of the second object of the movement / motion processing unit 112 of the present embodiment, the area setting unit 114 sets a correction area using the volume containing the first object, and the second object When at least a part of the object exists in the volume, an operation for correcting the position of the second object so that the second object is located outside the volume may be performed.

また、本実施形態の移動・動作処理部112は、第2のオブジェクトの移動及び動作の少なくとも一方を演算した後に、第2のオブジェクトの位置を補正する演算を行うようにしてもよい。   In addition, the movement / motion processing unit 112 according to the present embodiment may perform calculation for correcting the position of the second object after calculating at least one of movement and motion of the second object.

また、本実施形態の移動・動作処理部112は、第2のオブジェクトの位置に基づいて移動・動作パラメータを補間し、補間した値に基づいて第2のオブジェクトの移動及び動作の少なくとも一方を演算してもよい。   Further, the movement / motion processing unit 112 of the present embodiment interpolates movement / motion parameters based on the position of the second object, and calculates at least one of movement and motion of the second object based on the interpolated value. May be.

また、本実施形態の移動・動作処理部112は、オブジェクト空間に設定された第2のオブジェクトの位置を第1のオブジェクトのローカル座標系に変換し、変換した位置に基づいて第2のオブジェクトの移動・動作の演算や補正の演算を行うようにようにしてもよい。具体的に説明すると、第1のオブジェクトのローカル座標系の位置(座標値)を、オブジェクト空間(ワールド座標系)の位置(座標値)に変換するための行列式Mを用いて演算を行う。つまり、オブジェクト空間(ワールド座標系)に設定された第2のオブジェクトの位置(座標値)に、行列式Mの逆行列を乗算することによって、第1のオブジェクトのローカル座標系における第2のオブジェクトの位置(座標値)を求めることができる。そして、求めた位置に基づいて、簡易に第2のオブジェクトの移動・動作や補正の演算を行うことができる。つまり、オブジェクト空間上を第1のオブジェクトが移動する度に、オブジェクト空間上で第2のオブジェクトの移動・動作を制御する煩雑な演算処理に比較して格段に演算量を抑えることができる。   In addition, the movement / motion processing unit 112 of the present embodiment converts the position of the second object set in the object space into the local coordinate system of the first object, and based on the converted position, You may make it perform the calculation of a movement and operation | movement, and the calculation of correction | amendment. More specifically, the calculation is performed using the determinant M for converting the position (coordinate value) of the local coordinate system of the first object into the position (coordinate value) of the object space (world coordinate system). That is, the second object in the local coordinate system of the first object is multiplied by the inverse matrix of the determinant M by the position (coordinate value) of the second object set in the object space (world coordinate system). The position (coordinate value) can be obtained. Then, based on the obtained position, the second object can be simply moved / moved and corrected. That is, each time the first object moves in the object space, the amount of calculation can be remarkably reduced as compared with a complicated calculation process that controls the movement and movement of the second object in the object space.

エリア設定部114は、第1のオブジェクトの位置に応じて所与のエリアを設定する。特に、本実施形態のエリア設定部114は、第1のオブジェクトの位置に応じて制御エリアを設定する。例えば、第1のオブジェクトの周囲の少なくとも一部を含むエリアを制御エリアとして設定することができる。   The area setting unit 114 sets a given area according to the position of the first object. In particular, the area setting unit 114 of the present embodiment sets the control area according to the position of the first object. For example, an area including at least a part of the periphery of the first object can be set as the control area.

具体的には、第1のオブジェクトの周囲であって、制御エリア面と制御エリア面に対する垂直方向の所定範囲によって囲まれたエリアを、制御エリアとして設定することができる。また、第1のオブジェクトの周囲のうち進行方向に対して前方部分と側面部分とを制御エリアとして設定してもよい。また、第1のオブジェクトが車である場合には、車の周囲のうち、上昇気流が発生しやすい周囲の一部(例えば車のフロントガラス部分)を制御エリアとして設定してもよい。   Specifically, an area around the first object and surrounded by the control area plane and a predetermined range in the direction perpendicular to the control area plane can be set as the control area. Moreover, you may set a front part and a side part as a control area with respect to the advancing direction among the circumference | surroundings of a 1st object. Further, when the first object is a car, a part of the surroundings of the car where an upward air flow is likely to occur (for example, a windshield part of the car) may be set as the control area.

また、本実施形態のエリア設定部114は、複数種類の第1のオブジェクトに対して共通の制御エリアを設定することができる。例えば、第1のオブジェクトが車である場合には、乗用車、スポーツカー、バス、トラックなどの種々の車種に応じて、同じ制御エリアを設定するようにすることができる。このようにすれば、車種毎に制御エリアを設定する場合に比較して記憶領域を節約できるからである。   In addition, the area setting unit 114 of the present embodiment can set a common control area for a plurality of types of first objects. For example, when the first object is a car, the same control area can be set according to various types of cars such as a passenger car, a sports car, a bus, and a truck. This is because the storage area can be saved as compared with the case where the control area is set for each vehicle type.

また、本実施形態のエリア設定部114は、第1のオブジェクトが占める範囲を含む補正エリアを設定することができる。補正エリアは、補正エリア面を格子状に分割する複数の2次元の格子点と、当該複数の2次元の格子点のそれぞれに対応付けられる補正パラメータとに基づいて、補正エリアを設定することができる。また、補正エリアは、第1のオブジェクトを内包するボリュームを用いて補正エリアを設定するようにしてもよい。ここで、ボリュームとは、例えば、第1のオブジェクトを囲う球(バウンディングスフィア)や直方体(バウンディングボックス)などの簡単な形状をもつ立体とすることができる。なお、本実施形態のエリア設定部114は、第1のオブジェクトの概形を表すボリュームを用いて、補正エリアを設定してもよい。例えば、第1のオブジェクトが、「針の刺さった球」である場合には、針の部分を無視した球(バウンディングスフィア)のボリュームを用いて補正エリアを設定するようにしてもよい。   Further, the area setting unit 114 according to the present embodiment can set a correction area including a range occupied by the first object. The correction area may be set based on a plurality of two-dimensional lattice points that divide the correction area surface into a lattice shape and correction parameters associated with each of the plurality of two-dimensional lattice points. it can. The correction area may be set using a volume containing the first object. Here, the volume can be a solid having a simple shape such as a sphere (bounding sphere) or a rectangular parallelepiped (bounding box) surrounding the first object. Note that the area setting unit 114 of the present embodiment may set the correction area using a volume that represents the outline of the first object. For example, when the first object is a “sphere with a needle”, the correction area may be set using the volume of a sphere (bounding sphere) ignoring the needle portion.

また、本実施形態のエリア設定部114は、制御エリアを第1のオブジェクトのローカル座標系に設定することができる。つまり、本実施形態のオブジェクト空間設定部110は、第1のオブジェクトのローカル座標系における第1のオブジェクトの位置をオブジェクト空間に変換することによって、第1のオブジェクトをオブジェクト空間に設定する。そして、本実施形態のエリア設定部114は、その際のローカル座標系に制御エリアを設定する。このようにすれば、オブジェクト空間上で第2のオブジェクトの移動・動作を演算する必要がないので、演算量を抑えることができる。なお、補正エリアについても同様に、第1のオブジェクトのローカル座標系に補正エリア設定することによって、演算量を抑えるようにしてもよい。   Further, the area setting unit 114 of the present embodiment can set the control area in the local coordinate system of the first object. That is, the object space setting unit 110 of the present embodiment sets the first object in the object space by converting the position of the first object in the local coordinate system of the first object into the object space. Then, the area setting unit 114 of the present embodiment sets a control area in the local coordinate system at that time. In this way, since it is not necessary to calculate the movement / motion of the second object in the object space, the amount of calculation can be suppressed. Similarly, the calculation amount may be reduced by setting the correction area in the local coordinate system of the first object.

パラメータ設定部116は、処理部100が演算するために用いられるパラメータを設定する。例えば、第1のオブジェクトや第2のオブジェクトの移動・動作の演算に用いられるパラメータを設定する。   The parameter setting unit 116 sets parameters used for the processing unit 100 to calculate. For example, parameters used for calculating movement / motion of the first object and the second object are set.

特に本実施形態のパラメータ設定部116は、制御エリアに基づいて、制御エリア面を格子状に分割する複数の格子点のそれぞれに対応づけて移動・動作パラメータを設定することができる。ここで、制御エリア面とは2つの座標軸からなる所定範囲の面とすることができる。   In particular, the parameter setting unit 116 of the present embodiment can set movement / operation parameters in association with each of a plurality of grid points that divide the control area surface into a grid, based on the control area. Here, the control area plane can be a plane in a predetermined range composed of two coordinate axes.

特に本実施形態のパラメータ設定部116は、第1のオブジェクトのローカル座標系に設定された制御エリアに基づいて、制御エリア面を格子状に分割する複数の格子点を、第1のオブジェクトのローカル座標系に設定することができる。つまり、本実施形態のオブジェクト空間設定部110は、第1のオブジェクトのローカル座標系における第1のオブジェクトの位置をオブジェクト空間に変換することによって、第1のオブジェクトをオブジェクト空間に設定するが、その際のローカル座標系に制御エリア面を設定し、制御エリア面を格子状に分割する複数の格子点を設定する。このようにすれば、制御エリア内に存在する第2のオブジェクトの位置(X、Zの座標値)と、各格子点の位置(X、Zの座標値)とに基づいて、移動・動作パラメータを取得し、取得した移動・動作パラメータに基づいて、第2のオブジェクトの移動・動作を演算することができる。例えば、取得した移動・動作パラメータに基づいて第2のオブジェクトの移動速度を演算し、演算された移動速度に基づいて第2のオブジェクトを移動させる演算を行うようにすることができる。   In particular, the parameter setting unit 116 according to the present embodiment determines a plurality of grid points that divide the control area surface in a grid pattern based on the control area set in the local coordinate system of the first object. Can be set to coordinate system. That is, the object space setting unit 110 of the present embodiment sets the first object in the object space by converting the position of the first object in the local coordinate system of the first object into the object space. A control area plane is set in the local coordinate system, and a plurality of grid points that divide the control area plane into a grid are set. In this way, based on the position of the second object (X and Z coordinate values) existing in the control area and the position of each grid point (X and Z coordinate values), the movement / motion parameter is set. And the movement / motion of the second object can be calculated based on the obtained movement / motion parameters. For example, the moving speed of the second object can be calculated based on the acquired movement / motion parameter, and the second object can be moved based on the calculated moving speed.

また、本実施形態のパラメータ設定部116は、複数種類の第1のオブジェクトに対して、共通の制御エリア面を格子状に分割する複数の格子点のそれぞれに対応づけて共通の移動・動作パラメータを設定するようにしてもよい。このようにすれば、本実施の画像生成システムで使用する記憶領域を節約することができるからである。   In addition, the parameter setting unit 116 according to the present embodiment associates a plurality of types of first objects with a common movement / motion parameter corresponding to each of a plurality of grid points that divide a common control area surface into a grid pattern. May be set. This is because the storage area used in the image generation system of the present embodiment can be saved.

また、本実施形態のパラメータ設定部116は、補正エリア面を格子状に分割する複数の格子点のそれぞれに対応づけて、補正パラメータを設定することができる。ここで、補正エリア面とは2つの座標軸からなる所定範囲の面とすることができる。例えば、第1のオブジェクトのローカル座標系においてのX座標及びZ座標で構成される所定範囲の面とすることができる。補正エリア面は、第1のオブジェクトに基づいて設定することができる。例えば、第1のオブジェクトを構成する点(X,Z)を含むように設定することができる。   In addition, the parameter setting unit 116 according to the present embodiment can set the correction parameter in association with each of a plurality of grid points that divide the correction area surface into a grid. Here, the correction area plane can be a plane in a predetermined range composed of two coordinate axes. For example, it can be a plane in a predetermined range constituted by an X coordinate and a Z coordinate in the local coordinate system of the first object. The correction area surface can be set based on the first object. For example, it can be set to include a point (X, Z) constituting the first object.

特に本実施形態のパラメータ設定部116は、第2のオブジェクトの位置(X、Zの座標値)と、補正エリア面の各格子点の位置(X、Zの座標値)との位置関係に基づいて、第2のオブジェクトの位置を補正することができる。なお、補正エリア面を格子状に分割する場合には、制御エリア面を格子状に分割する場合と異なる手法で分割するようにしてもよい。例えば、補正エリア面は制御エリア面よりも細かく分割し、各格子点に対応づけて補正パラメータを格納するようにしてもよい。   In particular, the parameter setting unit 116 of the present embodiment is based on the positional relationship between the position of the second object (X and Z coordinate values) and the position of each lattice point (X and Z coordinate values) on the correction area surface. Thus, the position of the second object can be corrected. In addition, when dividing | segmenting a correction area surface into a grid | lattice form, you may make it divide | segment by the method different from the case where a control area plane is divided | segmented into a grid | lattice form. For example, the correction area surface may be divided more finely than the control area surface, and the correction parameter may be stored in association with each grid point.

また、本実施形態のパラメータ設定部116は、複数種類の第1のオブジェクトごとに補正パラメータを設定する場合には、共通の補正エリア面の格子点に対応づけて共通の補正パラメータを設定してもよいが、それぞれ異なる補正エリア面を用意し、第1のオブジェクトごとに格子状に分割した複数の格子点のそれぞれに対応づけて補正パラメータを設定することが望ましい。第1のオブジェクトの形状に応じて補正パラメータを設定した方が、第1のオブジェクトの形状に沿った補正を正確に行うことができるからである。   Further, when setting the correction parameter for each of the plurality of types of first objects, the parameter setting unit 116 of the present embodiment sets the common correction parameter in association with the grid points of the common correction area surface. However, it is desirable to prepare different correction area planes and set correction parameters in association with each of a plurality of grid points divided in a grid pattern for each first object. This is because the correction along the shape of the first object can be performed more accurately if the correction parameter is set according to the shape of the first object.

また、本実施形態のパラメータ設定部116は、補正エリア面を設定せずに、制御エリア面を用いて補正パラメータを設定することができる。つまり、制御エリア面の各格子点に対応づけて、移動・動作パラメータだけでなく、補正パラメータも設定するようにしてもよい。   In addition, the parameter setting unit 116 of the present embodiment can set the correction parameter using the control area surface without setting the correction area surface. That is, not only the movement / operation parameters but also the correction parameters may be set in association with each grid point on the control area surface.

仮想カメラ制御部は、オブジェクト空間内の所与(任意)の視点から見える画像を生成するための仮想カメラ(視点)の制御処理を行う。具体的には、仮想カメラの位置(X、Y、Z)又は回転角度(X、Y、Z軸回りでの回転角度)を制御する処理(視点位置、視線方向あるいは画角を制御する処理)を行う。   The virtual camera control unit performs control processing of the virtual camera (viewpoint) for generating an image that can be seen from a given (arbitrary) viewpoint in the object space. Specifically, processing for controlling the position (X, Y, Z) or rotation angle (rotation angle about the X, Y, Z axis) of the virtual camera (processing for controlling the viewpoint position, the line-of-sight direction or the angle of view) I do.

例えば仮想カメラによりオブジェクト(例えばキャラクタ、ボール、車)を後方から撮影する場合には、オブジェクトの位置又は回転の変化に仮想カメラが追従するように、仮想カメラの位置又は回転角度(仮想カメラの向き)を制御する。この場合には、移動・動作処理部112で得られたオブジェクトの位置、回転角度又は速度などの情報に基づいて、仮想カメラを制御できる。或いは、仮想カメラを、予め決められた回転角度で回転させる制御や、予め決められた移動経路で移動させる制御を行ってもよい。この場合には、仮想カメラの位置(移動経路)又は回転角度を特定するための仮想カメラデータに基づいて仮想カメラを制御する。なお、仮想カメラ(視点)が複数存在する場合には、それぞれの仮想カメラについて上記の制御処理が行われる。   For example, when an object (eg, character, ball, car) is photographed from behind using a virtual camera, the position or rotation angle of the virtual camera (the direction of the virtual camera is set so that the virtual camera follows changes in the position or rotation of the object. ) To control. In this case, the virtual camera can be controlled based on information such as the position, rotation angle, or speed of the object obtained by the movement / motion processing unit 112. Alternatively, control for rotating the virtual camera at a predetermined rotation angle or control for moving the virtual camera along a predetermined movement path may be performed. In this case, the virtual camera is controlled based on the virtual camera data for specifying the position (movement path) or rotation angle of the virtual camera. When there are a plurality of virtual cameras (viewpoints), the above control process is performed for each virtual camera.

描画部120は、処理部100で行われる種々の処理(ゲーム処理)の結果に基づいて描画処理を行い、これにより画像を生成し、表示部190に出力する。いわゆる3次元ゲーム画像を生成する場合には、まず表示物(オブジェクト、モデル)を定義する各頂点の頂点データ(頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等)を含む表示物データ(オブジェクトデータ、モデルデータ)が入力され、入力された表示物データに含まれる頂点データに基づいて、頂点処理が行われる。なお頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理(テッセレーション、曲面分割、ポリゴン分割)を行うようにしてもよい。頂点処理では、頂点の移動処理や、座標変換(ワールド座標変換、カメラ座標変換)、クリッピング処理、透視変換、あるいは光源処理等のジオメトリ処理が行われ、その処理結果に基づいて、表示物を構成する頂点群について与えられた頂点データを変更(更新、調整)する。そして、頂点処理後の頂点データに基づいてラスタライズ(走査変換)が行われ、ポリゴン(プリミティブ)の面とピクセルとが対応づけられる。そしてラスタライズに続いて、画像を構成するピクセル(表示画面を構成するフラグメント)を描画するピクセル処理(フラグメント処理)が行われる。ピクセル処理では、テクスチャの読出し(テクスチャマッピング)、色データの設定/変更、半透明合成、アンチエイリアス等の各種処理を行って、画像を構成するピクセルの最終的な描画色を決定し、透視変換されたオブジェクトの描画色を描画バッファ174(ピクセル単位で画像情報を記憶できるバッファ。VRAM、レンダリングターゲット)に出力(描画)する。すなわち、ピクセル処理では、画像情報(色、法線、輝度、α値等)をピクセル単位で設定あるいは変更するパーピクセル処理を行う。これにより、オブジェクト空間内に設定された仮想カメラ(所与の視点)から見える画像が生成される。なお、仮想カメラ(視点)が複数存在する場合には、それぞれの仮想カメラから見える画像を分割画像として1画面に表示できるように画像を生成することができる。   The drawing unit 120 performs drawing processing based on the results of various processing (game processing) performed by the processing unit 100, thereby generating an image and outputting the image to the display unit 190. When a so-called three-dimensional game image is generated, first, vertex data (vertex position coordinates, texture coordinates, color data, normal vector, α value, etc.) of each vertex defining a display object (object, model) is included. Display object data (object data, model data) is input, and vertex processing is performed based on vertex data included in the input display object data. When performing the vertex processing, vertex generation processing (tessellation, curved surface division, polygon division) for re-dividing the polygon may be performed as necessary. In vertex processing, geometry processing such as vertex movement processing, coordinate transformation (world coordinate transformation, camera coordinate transformation), clipping processing, perspective transformation, or light source processing is performed, and the display object is configured based on the processing result. The given vertex data is changed (updated, adjusted) for the vertex group. Then, rasterization (scan conversion) is performed based on the vertex data after the vertex processing, and the surface of the polygon (primitive) is associated with the pixel. Subsequent to rasterization, pixel processing (fragment processing) for drawing pixels constituting an image (fragments constituting a display screen) is performed. In pixel processing, various processes such as texture reading (texture mapping), color data setting / changing, translucent composition, anti-aliasing, etc. are performed to determine the final drawing color of the pixels that make up the image, and perspective transformation is performed. The drawing color of the object is output (drawn) to the drawing buffer 174 (buffer that can store image information in units of pixels; VRAM, rendering target). That is, in pixel processing, per-pixel processing for setting or changing image information (color, normal, luminance, α value, etc.) in units of pixels is performed. Thereby, an image that can be seen from the virtual camera (given viewpoint) set in the object space is generated. Note that when there are a plurality of virtual cameras (viewpoints), an image can be generated so that an image seen from each virtual camera can be displayed as a divided image on one screen.

なお描画部120が行う頂点処理やピクセル処理は、シェーディング言語によって記述されたシェーダプログラムによって、ポリゴン(プリミティブ)の描画処理をプログラム可能にするハードウェア、いわゆるプログラマブルシェーダ(頂点シェーダやピクセルシェーダ)により実現されてもよい。プログラマブルシェーダでは、頂点単位の処理やピクセル単位の処理がプログラム可能になることで描画処理内容の自由度が高く、ハードウェアによる固定的な描画処理に比べて表現力を大幅に向上させることができる。   The vertex processing and pixel processing performed by the drawing unit 120 are realized by hardware that enables polygon (primitive) drawing processing to be programmed by a shader program written in a shading language, so-called programmable shaders (vertex shaders and pixel shaders). May be. Programmable shaders can be programmed with vertex-level processing and pixel-level processing, so that the degree of freedom of rendering processing is high, and the expressive power can be greatly improved compared to fixed rendering processing by hardware. .

そして描画部120は、表示物を描画する際に、ジオメトリ処理、テクスチャマッピング、隠面消去処理、αブレンディング等を行う。   The drawing unit 120 performs geometry processing, texture mapping, hidden surface removal processing, α blending, and the like when drawing the display object.

ジオメトリ処理では、表示物に関して、座標変換、クリッピング処理、透視投影変換、或いは光源計算等の処理が行われる。そして、ジオメトリ処理後(透視投影変換後)の表示物データ(表示物の頂点の位置座標、テクスチャ座標、色データ(輝度データ)、法線ベクトル、或いはα値等)は、主記憶部172に保存される。   In the geometry processing, processing such as coordinate conversion, clipping processing, perspective projection conversion, or light source calculation is performed on the display object. Then, display object data after geometric processing (after perspective projection conversion) (position coordinates of vertex of the display object, texture coordinates, color data (luminance data), normal vector, α value, etc.) is stored in the main storage unit 172. Saved.

テクスチャマッピングは、記憶部170に記憶されるテクスチャ(テクセル値)を表示物にマッピングするための処理である。具体的には、表示物の頂点に設定(付与)されるテクスチャ座標等を用いて記憶部170からテクスチャ(色(RGB)、α値などの表面プロパティ)を読み出す。そして、2次元の画像であるテクスチャを表示物にマッピングする。この場合に、ピクセルとテクセルとを対応づける処理や、テクセルの補間としてバイリニア補間などを行う。   Texture mapping is a process for mapping a texture (texel value) stored in the storage unit 170 to a display object. Specifically, the texture (surface properties such as color (RGB) and α value) is read from the storage unit 170 using texture coordinates or the like set (given) at the vertex of the display object. Then, a texture that is a two-dimensional image is mapped to a display object. In this case, processing for associating pixels with texels, bilinear interpolation or the like is performed as texel interpolation.

隠面消去処理としては、描画ピクセルのZ値(奥行き情報)が格納されるZバッファ(奥行きバッファ)を用いたZバッファ法(奥行き比較法、Zテスト)による隠面消去処理を行うことができる。すなわちオブジェクトのプリミティブに対応する描画ピクセルを描画する際に、Zバッファに格納されるZ値を参照する。そして参照されたZバッファのZ値と、プリミティブの描画ピクセルでのZ値とを比較し、描画ピクセルでのZ値が、仮想カメラから見て手前側となるZ値(例えば小さなZ値)である場合には、その描画ピクセルの描画処理を行うとともにZバッファのZ値を新たなZ値に更新する。   As the hidden surface removal processing, hidden surface removal processing can be performed by a Z buffer method (depth comparison method, Z test) using a Z buffer (depth buffer) in which Z values (depth information) of drawing pixels are stored. . That is, when drawing pixels corresponding to the primitive of the object are drawn, the Z value stored in the Z buffer is referred to. Then, the Z value of the referenced Z buffer is compared with the Z value at the drawing pixel of the primitive, and the Z value at the drawing pixel is a Z value (for example, a small Z value) on the near side when viewed from the virtual camera. In some cases, the drawing process of the drawing pixel is performed and the Z value of the Z buffer is updated to a new Z value.

αブレンディング(α合成)は、α値(A値)に基づく半透明合成処理(通常αブレンディング、加算αブレンディング又は減算αブレンディング等)のことである。例えば、通常αブレンディングでは、α値を合成の強さとして線形補間を行うことにより2つの色を合成した色を求める処理を行う。   α blending (α synthesis) is a translucent synthesis process (usually α blending, addition α blending, subtraction α blending, or the like) based on an α value (A value). For example, in normal α blending, a process for obtaining a color obtained by combining two colors by performing linear interpolation with the α value as the strength of synthesis is performed.

なお、α値は、各ピクセル(テクセル、ドット)に関連づけて記憶できる情報であり、例えばRGBの各色成分の輝度を表す色情報以外のプラスアルファの情報である。α値は、マスク情報、半透明度(透明度、不透明度と等価)、バンプ情報などとして使用できる。   The α value is information that can be stored in association with each pixel (texel, dot), and is, for example, plus alpha information other than color information indicating the luminance of each RGB color component. The α value can be used as mask information, translucency (equivalent to transparency and opacity), bump information, and the like.

音生成部130は、処理部100で行われる種々の処理の結果に基づいて音処理を行い、BGM、効果音、又は音声などのゲーム音を生成し、音出力部192に出力する。   The sound generation unit 130 performs sound processing based on the results of various processes performed by the processing unit 100, generates game sounds such as BGM, sound effects, or sounds, and outputs the game sounds to the sound output unit 192.

なお、本実施形態の画像生成システムは、1人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、1つの端末を用いて生成してもよいし、ネットワーク(伝送ライン、通信回線)などで接続された複数の端末(ゲーム機、携帯電話)を用いて分散処理により生成してもよい。   Note that the image generation system of the present embodiment may be a system dedicated to the single player mode in which only one player can play, or may be a system having a multiplayer mode in which a plurality of players can play. 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 by distributed processing using a plurality of terminals (game machine, mobile phone).

2.本実施形態の手法
2.1 第2のオブジェクトの移動・動作の演算手法についての説明
本実施形態の画像生成システムでは、移動体(第1のオブジェクトの一例)の周囲の少なくとも一部を含むエリアを、制御エリアとして設定し、制御エリア内に存在する枯葉(第2のオブジェクトの一例)に対して、制御エリアに基づき設定される制御エリア面の各格子点に対応付けられる移動・動作パラメータに基づいて、移動・動作の演算を行う手法(移動及び動作の少なくとも一方を演算する手法)を採用する。このようにすれば、画像生成システムの処理負荷を抑えつつ、移動体の周囲に存在する枯葉が気流の影響を受けて移動・動作する様子をリアルに表現することができる。
2. 2.1 Method of Second Embodiment 2.1 Description of Second Object Movement / Motion Calculation Method In the image generation system of the present embodiment, an area including at least a part of the periphery of a moving object (an example of a first object) Is set as the control area, and for the dead leaves (an example of the second object) existing in the control area, the movement / motion parameter associated with each lattice point of the control area plane set based on the control area Based on this, a method for calculating movement / motion (a method for calculating at least one of movement and motion) is employed. In this way, it is possible to realistically represent how the dead leaves existing around the moving body move and operate under the influence of the air current while suppressing the processing load of the image generation system.

まず、制御エリアの設定例について説明する。制御エリアとは、第2のオブジェクトに対して移動・動作パラメータに基づく特別な処理を行うエリアである。本実施形態では、移動体の移動に伴い発生する気流の影響を受ける枯葉の移動・動作を表現するために、枯葉の移動・動作を制御するための制御エリアを設定する。   First, an example of setting a control area will be described. The control area is an area where special processing based on movement / motion parameters is performed on the second object. In the present embodiment, a control area for controlling the movement / motion of dead leaves is set in order to express the movement / motion of dead leaves affected by the airflow generated with the movement of the moving body.

本実施形態では、ローカル座標系における移動体の位置(座標値)を、オブジェクト空間(ワールド座標系)の位置(座標値)に変換することによって、移動体をオブジェクト空間に設定する。そして、その際の当該ローカル座標系において制御エリアを設定する。   In the present embodiment, the moving body is set in the object space by converting the position (coordinate value) of the moving body in the local coordinate system into the position (coordinate value) of the object space (world coordinate system). Then, a control area is set in the local coordinate system at that time.

ここで、本実施形態において、最終的に出力される画像を生成する過程におけるローカル座標系とオブジェクト空間(ワールド座標系)との関係を図2(A)(B)(C)を用いて説明すると、図2(A)(B)に示すように、ローカル座標系(モデリング座標系)に移動体や枯葉をはじめとするオブジェクトの各々を、シーン全体を表すオブジェクト空間(ワールド座標系)に変換する座標変換を行う。つまり、図2(A)(B)に示すように、移動体や枯葉のローカル座標系の座標値を、拡大縮小、回転、平行移動の座標変換を行い、図2(C)に示すようにワールド座標の座標値に変換する座標変換を行う。そして、オブジェクト空間(ワールド座標系)において、移動体や枯葉をはじめとするオブジェクトが配置され、オブジェクト空間における所与の視点から見える画像を生成する。   Here, in the present embodiment, the relationship between the local coordinate system and the object space (world coordinate system) in the process of generating an image to be finally output will be described with reference to FIGS. Then, as shown in FIGS. 2A and 2B, the local coordinate system (modeling coordinate system) converts each object including moving objects and dead leaves into an object space (world coordinate system) representing the entire scene. Perform coordinate transformation. That is, as shown in FIGS. 2A and 2B, the coordinate values of the local coordinate system of the moving object and dead leaves are subjected to coordinate conversion of enlargement / reduction, rotation, and translation, as shown in FIG. 2C. Perform coordinate conversion to convert to world coordinate values. Then, in the object space (world coordinate system), objects such as moving objects and dead leaves are arranged, and an image that can be seen from a given viewpoint in the object space is generated.

すなわち、本実施形態では、ワールド座標系に座標変換されることになる移動体のローカル座標系において制御エリアを設定するものである。このようにすれば、オブジェクト空間における移動体の位置に左右されずに制御エリアを設定することができる。つまり、移動体のローカル座標系において制御エリアを設定すれば、後述するローカル座標系の座標値で示される制御エリア面を格子状に分割した複数の格子点のそれぞれに対応づけて移動・動作パラメータを設定することができるので、結果的に、枯葉の移動・動作を制御するための移動・動作パラメータは、ワールド座標系(オブジェクト空間)における移動体の位置に関係なく一意に設定することができる。要するに、移動体がオブジェクト空間において移動する度に移動・動作パラメータを設定する煩わしさを回避することができる。   That is, in the present embodiment, the control area is set in the local coordinate system of the moving object to be coordinate-converted into the world coordinate system. In this way, the control area can be set regardless of the position of the moving body in the object space. In other words, if the control area is set in the local coordinate system of the moving object, the movement / operation parameter is associated with each of a plurality of grid points obtained by dividing the control area surface indicated by the coordinate values of the local coordinate system described later into a grid pattern. As a result, the movement / motion parameters for controlling the movement / motion of dead leaves can be uniquely set regardless of the position of the moving object in the world coordinate system (object space). . In short, it is possible to avoid the troublesomeness of setting the movement / motion parameters each time the moving body moves in the object space.

具体的に、ワールド座標系における例を示した図3(A)と、ローカル座標系における例を示した図3(B)を用いて説明する。   Concretely, it demonstrates using FIG. 3 (A) which showed the example in a world coordinate system, and FIG. 3 (B) which showed the example in a local coordinate system.

例えば、仮に、図3(A)に示すようにワールド座標系において、移動体OB1が坂の上(P点)又は、坂の下(Q点)の位置に応じて制御エリアCAを設定する場合には、移動体OB1のP点、Q点の位置に応じて、移動・動作パラメータを設定することになり、データ量や演算処理が多くなり、画像生成システムの処理負荷が高まることになる。   For example, as shown in FIG. 3A, in the world coordinate system, when the moving object OB1 sets the control area CA according to the position on the hill (point P) or the position on the hill (point Q). The movement / operation parameters are set according to the positions of the point P and the point Q of the moving object OB1, which increases the amount of data and calculation processing, and increases the processing load of the image generation system.

一方、図3(B)に示すように、移動体OB1のローカル座標系に制御エリアCAを設定すれば、移動体がワールド座標系において自由に移動したとしても移動・動作パラメータを一意に設定することができる。つまり、図3(A)でP点、Q点のいずれに移動体OB1が存在したとしても、移動・動作パラメータを設定し直す必要はなく、データ量や処理量を抑えることができる。   On the other hand, as shown in FIG. 3B, if the control area CA is set in the local coordinate system of the moving object OB1, even if the moving object freely moves in the world coordinate system, the movement / operation parameters are uniquely set. be able to. That is, even if the moving object OB1 exists at either the point P or the point Q in FIG. 3A, it is not necessary to reset the movement / operation parameters, and the data amount and the processing amount can be suppressed.

さらに、このように移動体のローカル座標系において制御エリアを設定すれば、オブジェクト空間(ワールド座標系)に存在する枯葉を、移動体のローカル座標系に逆変換することによって、気流制御のシミュレーション演算を容易に行うことができる。   Furthermore, if the control area is set in the local coordinate system of the moving body in this way, the simulation calculation of the airflow control is performed by inversely transforming the dead leaves existing in the object space (world coordinate system) into the local coordinate system of the moving body. Can be easily performed.

例えば、仮に、ワールド座標系で、制御エリアを設定する場合には、図3(A)に示すように、P点、Q点のいずれに移動体OB1が位置していたとしても、移動体OB1の位置に応じて設定された制御エリアCAを基準に、枯葉OB2に対して、制御エリアCA内に存在するか否かを判断し枯葉OB2が制御エリアCA内に存在する場合には移動・動作の演算を行うことになる。つまり、移動体OB1の位置が変化する度に、制御エリアCAの変化に応じて、枯葉OB2と制御エリアCAとの相対的な位置関係を演算して、枯葉OB2の移動・動作の演算を行うことになる。   For example, if the control area is set in the world coordinate system, as shown in FIG. 3A, the moving object OB1 may be located at either the P point or the Q point. Whether or not the dead leaf OB2 exists in the control area CA with respect to the dead leaf OB2 is determined based on the control area CA set according to the position of the moving area. Will be performed. That is, every time the position of the moving object OB1 changes, the relative positional relationship between the dead leaf OB2 and the control area CA is calculated according to the change in the control area CA, and the movement / operation of the dead leaf OB2 is calculated. It will be.

一方、本実施形態によれば、移動体OB1がP点、Q点のいずれの位置に存在していたとしても、単に枯葉OB2に対して、移動体OB1のローカル座標系における位置を求めれば、枯葉OB2が制御エリアCA内に存在するか否かの判断や移動・動作の演算を容易に行うことができる。要するに、オブジェクト空間における移動体OB1の位置の変化に左右されずに制御エリアCAを設定されるので、結果的に、枯葉OB2と制御エリアCAとの相対的な位置関係を演算する煩雑な処理を回避することができる。   On the other hand, according to the present embodiment, even if the moving object OB1 exists at either the P point or the Q point, if the position of the moving object OB1 in the local coordinate system is simply obtained with respect to the dead leaves OB2, It is possible to easily determine whether or not the dead leaf OB2 exists in the control area CA and to calculate the movement / operation. In short, since the control area CA is set without being influenced by the change in the position of the moving object OB1 in the object space, as a result, complicated processing for calculating the relative positional relationship between the dead leaves OB2 and the control area CA is performed. It can be avoided.

次に、図4を用いて、本実施形態の画像生成システムにおける制御エリアの設定手法について説明すると、制御エリアは、移動体の周囲の少なくとも一部を含むエリアに設定される。移動体の周囲の少なくとも一部とは、移動体の周囲の上方、下方、前方、後方、左側方、及び右側方、の少なくとも一部のことをいう。例えば、図4(A)(B)を用いて説明すると、移動体の周囲の上方とは、図4(A)(B)のAに示すエリアをいい、移動体の周囲の下方とは、図4(A)(B)のBに示すエリアをいい、移動体の周囲の前方とは図4(A)(B)のCに示すエリアをいい、移動体の周囲の後方とは、図4(A)(B)のDに示すエリアのことをいう。また、移動体の左側方とは図4(A)(B)のEに示すエリアをいい、移動体の右側方とは図4(A)(B)のFに示すエリアをいう。なお、図4に示すように、移動体の周囲の上方、下方、前方、後方、左側方、及び右側方の各境界部分は、多少のずれがあってもよいし、曖昧に設定してもよい。   Next, a control area setting method in the image generation system of the present embodiment will be described with reference to FIG. 4. The control area is set to an area including at least a part of the periphery of the moving body. At least a part of the periphery of the moving body means at least a part of the upper, lower, front, rear, left side, and right side of the periphery of the moving body. For example, with reference to FIGS. 4A and 4B, the upper area around the moving body refers to the area indicated by A in FIGS. 4A and 4B, and the lower area around the moving body refers to 4 (A) and 4 (B), the front of the periphery of the moving body means the area shown in C of FIGS. 4 (A) and 4 (B), and the back of the periphery of the moving body is the figure. This refers to the area indicated by D in 4 (A) and (B). Further, the left side of the moving body refers to the area indicated by E in FIGS. 4A and 4B, and the right side of the moving body refers to the area indicated by F in FIGS. 4A and 4B. As shown in FIG. 4, the upper, lower, front, rear, left side, and right side boundary portions around the moving body may be slightly shifted or may be set ambiguously. Good.

また、制御エリアは移動体の周囲のエリアとしてもよい。例えば、移動体の移動によって生じる移動体周囲の気流を表現したい場合には、図5の(A)(B)に示すように、移動体OB1の周囲に制御エリアCAを設定する。   The control area may be an area around the moving body. For example, when it is desired to express the airflow around the moving body generated by the movement of the moving body, a control area CA is set around the moving body OB1 as shown in FIGS.

また、図6(A)(B)に示すように、移動体の周囲のエリアであって、移動体OB1の後方部分の領域(移動体OB1の進行方向に対する後方部分である、いわゆるスリップストリーム領域SA)を除くエリアを制御エリアCAとして設定することができる。例えば、図6(A)(B)に示すように、移動体OB1が矢印方向に移動する場合には、通常、スリップストリーム領域SAは、空気抵抗が弱くなる部分であるので移動体OB1が移動することによって生じる気流が生じにくい。したがって、移動体の周囲の領域うちスリップストリーム領域を除く領域を制御エリアCAとして設定することができる。   Also, as shown in FIGS. 6A and 6B, an area around the moving body, which is a rear portion area of the moving body OB1 (a so-called slipstream area that is a rear portion with respect to the traveling direction of the moving body OB1). An area excluding SA) can be set as the control area CA. For example, as shown in FIGS. 6 (A) and 6 (B), when the moving body OB1 moves in the direction of the arrow, the slip stream area SA is usually a part where the air resistance becomes weak, so the moving body OB1 moves. The airflow generated by Therefore, the area excluding the slip stream area in the area around the moving body can be set as the control area CA.

次に、図7〜9を用いて制御エリア内に存在する第2のオブジェクトを移動・動作させるための移動・動作パラメータの設定手法について説明する。   Next, a method for setting a movement / motion parameter for moving / moving the second object existing in the control area will be described with reference to FIGS.

図7に示すように、移動体OB1のローカル座標系において、移動体OB1の周囲であって、0<=X<=3、0<=Y<=4、0<=Z<=5で囲まれたエリアを制御エリアCAとして設定する。   As shown in FIG. 7, in the local coordinate system of the moving object OB1, it is surrounded by the moving object OB1, and 0 <= X <= 3, 0 <= Y <= 4, and 0 <= Z <= 5. This area is set as the control area CA.

そして、移動体OB1のローカル座標系に設定された制御エリアCAに基づいて制御エリア面CPを設定する。図7に示すように、制御エリアCAは、移動体OB1の周囲であって、0<=X<=3、及び、0<=Z<=5で囲まれた(X,Z)を含む範囲であるので、制御エリア面CPは、図8(A)に示すように、0<=X<=3、及び、0<=Z<=5からなる面として設定する。なお、制御エリア面CPは、0<=X<=3、及び、0<=Z<=5よりも広い範囲で設定してもよい。   Then, the control area plane CP is set based on the control area CA set in the local coordinate system of the moving object OB1. As shown in FIG. 7, the control area CA is a range including (X, Z) surrounded by 0 <= X <= 3 and 0 <= Z <= 5 around the moving body OB1. Therefore, the control area plane CP is set as a plane including 0 <= X <= 3 and 0 <= Z <= 5 as shown in FIG. The control area plane CP may be set in a wider range than 0 <= X <= 3 and 0 <= Z <= 5.

次に、制御エリア面CPを格子状に分割する。例えば、図8(A)では、移動体OB1のローカル座標系のX軸、Z軸に対して大きさ「1」の間隔で格子状に分割する。なお、格子状に分割する場合には、所定間隔で分割することができれば間隔の大きさは問わない。例えば、大きさ「0.5」の間隔で分割してもよい。   Next, the control area plane CP is divided into a lattice shape. For example, in FIG. 8A, the moving object OB1 is divided in a grid pattern at intervals of a size “1” with respect to the X axis and the Z axis of the local coordinate system. In addition, when dividing | segmenting into a grid | lattice form, if it can divide | segment at a predetermined interval, the magnitude | size of an interval will not be ask | required. For example, it may be divided at intervals of size “0.5”.

そして、制御エリア面CPを格子状に分割した移動体OB1のローカル座標系の(X,Z)で示される各格子点(X,Z)に対応づけて移動・動作パラメータテーブルに、移動・動作パラメータ設定する。   The movement / motion parameter table is associated with each grid point (X, Z) indicated by (X, Z) in the local coordinate system of the moving object OB1 obtained by dividing the control area plane CP into a grid. Set parameters.

図9(A)は、枯葉OB2に対して高さ方向(Y軸方向)に移動させる高さ方向の速度パラメータ(移動・動作パラメータの一例)を設定した例を示す。   FIG. 9A shows an example in which speed parameters (an example of movement / motion parameters) in the height direction for moving in the height direction (Y-axis direction) with respect to the dead leaves OB2 are set.

例えば、図7に示すように移動体OB1のフロントガラス部分に上昇気流が発生したように枯葉OB2を移動させ、移動体OB1のフロントガラス以外の部分では、枯葉OB2が落下する様子を表現したい場合には、次のように移動・動作パラメータを設定する。   For example, as shown in FIG. 7, when the dead leaf OB2 is moved so that an updraft is generated in the windshield portion of the moving body OB1, and the dead leaf OB2 falls in a portion other than the windshield of the moving body OB1. The movement / operation parameters are set as follows.

まず、移動体OB1のローカル座標系において、移動体OB1のフロントガラス部分に対応する制御エリア面CPの格子点を特定する。図7の例では、移動体OB1のフロントガラス部分に対応する制御エリア面CPの格子点は、(X,Z)=(1,3)、(X,Z)=(2,3)である。   First, in the local coordinate system of the moving object OB1, the grid point of the control area plane CP corresponding to the windshield portion of the moving object OB1 is specified. In the example of FIG. 7, the lattice points of the control area plane CP corresponding to the windshield portion of the moving body OB1 are (X, Z) = (1, 3), (X, Z) = (2, 3). .

そして、制御エリア面CPの格子点に対応づけて、移動・動作パラメータテーブルに高さ方向の速度パラメータ(移動・動作パラメータの一例)を設定する。例えば、図9(A)に示すように、フロントガラス部分に対応する制御エリア面CPの格子点に対応する移動・動作パラメータテーブルの(X,Z)=(1,3)、(X,Z)=(2,3)の高さ方向の速度パラメータを「1」に設定する。そして、他の格子点(X,Z)に対応する高さ方向の速度パラメータを「0」に設定する。   Then, a velocity parameter in the height direction (an example of a movement / motion parameter) is set in the movement / motion parameter table in association with the grid points of the control area plane CP. For example, as shown in FIG. 9A, (X, Z) = (1, 3), (X, Z) of the movement / operation parameter table corresponding to the lattice points of the control area plane CP corresponding to the windshield portion. ) = (2, 3) The velocity parameter in the height direction is set to “1”. Then, the velocity parameter in the height direction corresponding to the other lattice point (X, Z) is set to “0”.

上述した移動・動作パラメータの例は、高さ方向の速度パラメータを設定する例を説明したが、例えば、速度ベクトル(移動・動作パラメータの一例)を設定するようにしてもよい。具体的に、図9(B)を用いて、移動・動作パラメータテーブルに速度ベクトルを設定する例を説明する。   In the example of the movement / motion parameter described above, the example of setting the velocity parameter in the height direction has been described. However, for example, a velocity vector (an example of the movement / motion parameter) may be set. Specifically, an example in which a velocity vector is set in the movement / motion parameter table will be described with reference to FIG.

例えば、図7に示すように移動体OB1のフロントガラス部分に上昇気流を発生する様子を表現したい場合、例えば、枯葉OB2を斜め上方向に移動させるようにし、移動体OB1のフロントガラス以外の部分では、枯葉OB2が落下する様子を表現したい場合には、次のように速度ベクトル(移動・動作パラメータの一例)を設定することができる。   For example, when it is desired to express a state in which an updraft is generated in the windshield portion of the moving body OB1 as shown in FIG. 7, for example, the dead leaf OB2 is moved obliquely upward, and the portion other than the windshield of the moving body OB1 Then, when it is desired to express how the dead leaf OB2 falls, a velocity vector (an example of a movement / operation parameter) can be set as follows.

図9(B)は、枯葉OB2が、斜め上方向に移動する場合の移動・動作パラメータを設定した例である。例えば、移動体OB1のフロントガラス部分に対応する格子点(X,Z)=(1,3)及び、(X,Z)=(2,3)に対応づけて速度ベクトルを設定する。例えば、格子点(X,Z)=(1,3)及び、(X,Z)=(2,3)に対応づける速度ベクトルの値を(x,y,z)=(0,1,−1)に設定する。一方、格子点(X,Z)=(1,3)及び、(X,Z)=(2,3)以外の格子点の速度ベクトルを0に設定する。   FIG. 9B shows an example in which movement / operation parameters are set when the dead leaf OB2 moves obliquely upward. For example, velocity vectors are set in association with lattice points (X, Z) = (1, 3) and (X, Z) = (2, 3) corresponding to the windshield portion of the moving object OB1. For example, the value of the velocity vector corresponding to the lattice point (X, Z) = (1, 3) and (X, Z) = (2, 3) is set to (x, y, z) = (0, 1, − Set to 1). On the other hand, velocity vectors of lattice points other than lattice point (X, Z) = (1, 3) and (X, Z) = (2, 3) are set to zero.

このように予め移動・動作パラメータ(図9(A)の例では高さ方向の速度パラメータ、図9(B)の例では速度ベクトル)を設定すれば、後で説明するように設定した移動・動作パラメータに基づいて枯葉OB2を簡易に演算することができるので、従来の厳密に気流のシミュレーションの演算を行う手法に比較して、処理負荷を抑えることができる。   Thus, if the movement / operation parameters (the velocity parameter in the height direction in the example of FIG. 9A and the velocity vector in the example of FIG. 9B) are set in advance, the movement / operation parameters set as described later are set. Since the dead leaf OB2 can be easily calculated based on the operation parameter, the processing load can be suppressed as compared with the conventional method of strictly calculating the airflow.

尚、図6の例に示すように、移動体OB1の周囲のエリアであって、スリップストリーム領域SAを除くエリアを制御エリアCAとして設定した場合には、制御エリアCAが占める(X,Z)の位置を含むように制御エリア面CPを設定し、制御エリア面CPの格子点のうち、制御エリアCAを構成する点(X,Z)に対応する格子点に移動・動作パラメータを設定し、制御エリアCAを構成する点(X,Z)に対応しない格子点に移動・動作パラメータを設定しないようにしてもよい。また、制御エリアCAを構成する点(X,Z)に対応しない格子点には、予め定められた所定値(NULL値や、デフォルト値)を設定してもよい。   As shown in the example of FIG. 6, when the area around the moving object OB1 and excluding the slip stream area SA is set as the control area CA, the control area CA occupies (X, Z). The control area plane CP is set so as to include the position of, and movement / operation parameters are set to the grid points corresponding to the points (X, Z) constituting the control area CA among the grid points of the control area plane CP. The movement / operation parameters may not be set at the lattice points that do not correspond to the points (X, Z) constituting the control area CA. Further, a predetermined value (NULL value or default value) may be set to grid points that do not correspond to the points (X, Z) constituting the control area CA.

次に、本実施形態の画像生成システムの移動・動作パラメータに基づく第2のオブジェクトの移動・動作の演算手法について説明する。   Next, a second object movement / motion calculation method based on the movement / motion parameters of the image generation system according to the present embodiment will be described.

具体的に説明すると、オブジェクト空間に存在する枯葉OB2(第2のオブジェクトの一例)を、移動体OB1のローカル座標系に逆変換して枯葉OB2の位置を求め、枯葉OB2の位置と、格子点に対応する移動・動作パラメータとに基づいて、枯葉OB2の現在の移動・動作の値を、移動・動作パラメータの値に近づける処理を行う。なお、枯葉OB2の現在の移動・動作の値に対して、移動・動作パラメータを加算、乗算するようにしてもよい。   More specifically, the dead leaf OB2 (an example of the second object) existing in the object space is inversely transformed into the local coordinate system of the moving object OB1, and the position of the dead leaf OB2 is obtained. On the basis of the movement / motion parameter corresponding to, the current movement / motion value of the dead leaf OB2 is approximated to the movement / motion parameter value. The movement / motion parameter may be added to and multiplied by the current movement / motion value of the dead leaf OB2.

ここで、本実施形態の移動・動作パラメータの値に近づけるとは、移動・動作パラメータの値に設定してもよいし、枯葉OB2の現在の移動・動作(例えば速度)の値と、移動・動作パラメータの値との差分を求め、求めた差分値に係数を乗算した値を、枯葉OB2の現在の値に加算する。   Here, approaching the value of the movement / motion parameter of the present embodiment may be set to the value of the movement / motion parameter, or the value of the current movement / motion (for example, speed) of the dead leaf OB2 A difference from the value of the operation parameter is obtained, and a value obtained by multiplying the obtained difference value by a coefficient is added to the current value of the dead leaf OB2.

例えば、図9(A)に示す高さ方向の速度パラメータを取得する場合を例に説明すると、図8(A)に示すように、枯葉OB2が(X,Z)=(2,3)の位置に存在する場合には、格子点(X,Z)=(2,3)に対応付けられる高さ方向の速度パラメータを移動・動作パラメータテーブルから取得する。例えば、図9(A)の例では、取得した速度パラメータの値が「1」であるので、「1」に近づける処理を行う。ここで、枯葉OB2の現在の上向き方向の速度が「0.5」である場合には、速度パラメータの値「1」と、枯葉OB2の現在の速度「0.5」の差分値「0.5」に係数「0.5」を乗算した値を求める。そして、求めた値「0.25」を、枯葉OB2の現在の速度「0.5」に加算した値である「0.75」が最終的に求められる枯葉OB2の速度になる。そして、枯葉OB2の速度「0.75」に基づいて、枯葉OB2を上向き方向に移動させる。その結果、例えば、図8(B)に示すように、枯葉OB2がV1方向(上向き方向)に移動・動作するように表現することができる。   For example, the case of acquiring the velocity parameter in the height direction shown in FIG. 9A will be described as an example. As shown in FIG. 8A, the dead leaf OB2 is (X, Z) = (2, 3). If it exists at the position, the velocity parameter in the height direction associated with the lattice point (X, Z) = (2, 3) is acquired from the movement / motion parameter table. For example, in the example of FIG. 9A, since the value of the acquired speed parameter is “1”, a process of approaching “1” is performed. When the current upward speed of the dead leaf OB2 is “0.5”, the difference value “0...” Between the speed parameter value “1” and the current speed “0.5” of the dead leaf OB2. 5 ”is multiplied by a coefficient“ 0.5 ”. Then, “0.75”, which is a value obtained by adding the obtained value “0.25” to the current speed “0.5” of the dead leaf OB2, is the speed of the dead leaf OB2 that is finally obtained. Then, based on the speed “0.75” of the dead leaf OB2, the dead leaf OB2 is moved upward. As a result, for example, as shown in FIG. 8B, it can be expressed that the dead leaf OB2 moves and operates in the V1 direction (upward direction).

また、図9(B)に示す速度ベクトルを取得する場合を例にとり説明すると、枯葉OB2が(X,Z)=(2,3)の位置に存在する場合には、格子点(X,Z)=(2,3)に対応付けられる速度ベクトルの値「(x,y,z)=(0,1,−1)」に近づける処理を行う。ここで、枯葉OB2の現在の速度ベクトルが(x,y,z)=(0,1,0)である場合には、「(x,y,z)=(0,1,−1)」に近づける処理を行う。具体的には、係数を「0.5」として求めた場合には、(x,y,z)=(0,1,−0.5)が枯葉OB2の速度ベクトルとして求まる。そして、枯葉OB2は、(x,y,z)=(0,1,−0.5)に基づいて、例えば、図8(B)に示すように、枯葉OB2がV2方向(斜め上方向)に移動・動作するように表現することができる。   Further, the case where the velocity vector shown in FIG. 9B is acquired will be described as an example. When the dead leaf OB2 exists at the position (X, Z) = (2, 3), the lattice point (X, Z ) = (2,3) is performed so as to approach the speed vector value “(x, y, z) = (0, 1, −1)”. Here, when the current velocity vector of the dead leaf OB2 is (x, y, z) = (0, 1, 0), “(x, y, z) = (0, 1, −1)”. Process to bring it close to. Specifically, when the coefficient is obtained as “0.5”, (x, y, z) = (0, 1, −0.5) is obtained as the velocity vector of the dead leaf OB2. The dead leaf OB2 is based on (x, y, z) = (0, 1, −0.5), for example, as shown in FIG. 8B, the dead leaf OB2 is in the V2 direction (obliquely upward direction). It can be expressed to move and operate.

このように、本実施形態の画像生成システムでは、移動体OB1のローカル座標系において、枯葉OB2の位置と、制御エリア面CPの各格子点との位置関係に基づいて、移動・動作パラメータを取得し、取得した移動・動作パラメータに基づいて、枯葉OB2の移動・動作の演算を行うので、従来の気流のシミュレーション演算に基づいて枯葉の移動・動作を演算する手法に比較して、簡易な計算で枯葉の気流によって生じる移動・動作の演算を行うことができる。例えば、移動体OB1のフロントガラス部分に上昇気流が発生したように枯葉OB2を移動させ、移動体OB1のフロントガラス以外の部分では、枯葉OB2が落下する様子をリアルに表現することができる。   As described above, in the image generation system of the present embodiment, the movement / operation parameters are acquired based on the positional relationship between the position of the dead leaf OB2 and each lattice point of the control area plane CP in the local coordinate system of the moving object OB1. Since the movement / motion of the dead leaf OB2 is calculated based on the acquired movement / motion parameter, the calculation is simpler than the conventional method for calculating the movement / motion of the dead leaf based on the simulation calculation of the airflow. It is possible to calculate movement and movement caused by the airflow of dead leaves. For example, the dead leaf OB2 is moved so that an ascending airflow is generated in the windshield portion of the moving body OB1, and the manner in which the dead leaf OB2 falls in a portion other than the windshield of the moving body OB1 can be realistically expressed.

なお、移動体OB1のローカル座標系に逆変換した枯葉の位置が、制御エリアCA外に存在する場合には、移動・動作パラメータに基づく移動・動作の演算を行わないようにするようにしてもよい。演算量を少なくして画像生成システムの処理負荷を抑えることができるからである。   In addition, when the position of the dead leaf reversely converted to the local coordinate system of the moving object OB1 exists outside the control area CA, the calculation of the movement / motion based on the movement / motion parameter may be prevented. Good. This is because the processing load of the image generation system can be suppressed by reducing the amount of calculation.

つまり、本実施形態では、移動体OB1のローカル座標系に逆変換した枯葉OB2の位置が、制御エリアCA内に存在するか否かを判断し、その後に、枯葉OB2の位置と、各格子点とに対応付けられる移動・動作パラメータとに基づいて、移動・動作の演算を行うようにする。   That is, in this embodiment, it is determined whether or not the position of the dead leaf OB2 inversely transformed into the local coordinate system of the moving object OB1 exists in the control area CA, and then the position of the dead leaf OB2 and each lattice point The movement / motion is calculated based on the movement / motion parameters associated with.

例えば、制御エリアCAが、図7に示すように、移動体OB1のローカル座標系において、移動体OB1の周囲であって、0<=X<=3、0<=Y<=4、0<=Z<=5で囲まれたエリアである場合には、Y>4に存在する枯葉OB2´は、制御エリアCA外であるので、移動・動作パラメータに基づく移動・動作の演算を行わないようにする。一方、枯葉OB2は、制御エリア内に存在するので、移動・動作パラメータに基づく移動・動作の演算を行う。   For example, as shown in FIG. 7, in the local coordinate system of the moving object OB1, the control area CA is around the moving object OB1, and 0 <= X <= 3, 0 <= Y <= 4, 0 < If the area is surrounded by = Z <= 5, the dead leaves OB2 ′ existing at Y> 4 are outside the control area CA, and therefore, the movement / motion calculation based on the movement / motion parameters is not performed. To. On the other hand, since the dead leaf OB2 exists in the control area, the movement / operation is calculated based on the movement / operation parameters.

また、本実施形態の制御エリアCAは、移動体の周囲の少なくとも一部に設定されているので、枯葉の位置が移動体の内部に存在する場合には、後述する補正演算を行うことによって枯葉の位置を適正な位置に補正した後に、移動・動作の演算を行うようにしてもよい。   In addition, since the control area CA of the present embodiment is set to at least a part of the periphery of the moving body, when the position of the dead leaf exists inside the moving body, the dead leaf is obtained by performing a correction calculation described later. After the position is corrected to an appropriate position, the movement / motion may be calculated.

また、枯葉OB2の位置(X,Z)が、制御エリア面CPのいずれかの格子点(X,Z)上に存在しない場合には、枯葉OB2の位置に基づいて、複数の移動・動作パラメータを補間し、補間した値に基づいて枯葉OB2の移動・動作の演算を行うようにしていもよい。このようにすれば、制御エリア面CPを粗く格子状に分割することによって、各格子点に対応付けられる移動・動作パラメータのデータ量を削減することができる。   If the position (X, Z) of the dead leaf OB2 does not exist on any grid point (X, Z) of the control area plane CP, a plurality of movement / operation parameters are based on the position of the dead leaf OB2. May be interpolated, and the movement / operation of the dead leaf OB2 may be calculated based on the interpolated value. In this way, by dividing the control area plane CP roughly in a grid pattern, it is possible to reduce the data amount of movement / operation parameters associated with each grid point.

具体的に説明すると、枯葉OB2の位置に基づいて移動・動作パラメータを取得し、線形補間した値を取得する。例えば、図10では、枯葉OB2の位置P0の制御エリア面に投影される座標値(XとZからなる値)と、複数の格子点P1〜P4にそれぞれ対応付けられる移動・動作パラメータを線形補間した値を求め、求められた値に基づいて、移動・動作の演算を行うようにしてもよい。   More specifically, the movement / operation parameter is acquired based on the position of the dead leaf OB2, and the value obtained by linear interpolation is acquired. For example, in FIG. 10, linear interpolation is performed on the coordinate values (values consisting of X and Z) projected on the control area surface of the position P0 of the dead leaves OB2 and the movement / motion parameters respectively associated with the plurality of grid points P1 to P4. The calculated value may be obtained, and the movement / motion may be calculated based on the obtained value.

また、上述した移動・動作パラメータテーブル例では、高さ方向の速度パラメータを格納する例、速度ベクトルを格納する例について説明したが、移動量のパラメータ、加速度のパラメータを格納してもよい。また、複数のパラメータ(速度パラメータ、加速度パラメータ等)ごとに、個別のテーブル(速度パラメータテーブル、加速度パラメータテーブル)を用いて格納してもよい。また、移動体の移動速度、移動方向、及び回転方向のうち少なくとも1つに基づいて移動・動作パラメータを設定してもよい。例えば、移動体が低速の場合と高速の場合とに分けて、移動・動作パラメータを設定してもよい。また、移動・動作パラメータも移動体がバックする場合には、移動体がバックに応じた移動・動作パラメータを設定してもよい。また、移動体がスピンする場合には、移動体の回転方向に応じた移動・動作パラメータを用意するようにしてもよい。例えば、移動体の重心を軸に回転するような速度ベクトルを制御エリア面の各格子点に対応づけて格納することができる。   In the example of the movement / motion parameter table described above, the example in which the velocity parameter in the height direction is stored and the example in which the velocity vector is stored have been described. However, the movement amount parameter and the acceleration parameter may be stored. Further, each of a plurality of parameters (speed parameter, acceleration parameter, etc.) may be stored using individual tables (speed parameter table, acceleration parameter table). Further, the movement / operation parameter may be set based on at least one of the moving speed, moving direction, and rotating direction of the moving body. For example, the movement / operation parameters may be set separately for a case where the moving body is low speed and a case where the mobile body is high speed. Further, when the moving body also moves and moves, the moving body may set movement / operation parameters corresponding to the back. Further, when the moving body spins, movement / operation parameters corresponding to the rotation direction of the moving body may be prepared. For example, a velocity vector that rotates about the center of gravity of the moving object can be stored in association with each lattice point on the control area surface.

2.2 第2のオブジェクトの位置の補正する演算手法についての説明
次に第2のオブジェクトの補正の演算を行う手法について説明する。本実施形態の画像生成システムでは、移動体(第1のオブジェクトの一例)の周囲の少なくとも一部を含むエリアを制御エリアとして設定し、制御エリア内に存在する枯葉(第2のオブジェクトの一例)に対して移動・動作を行う。しかし、制御エリア内に存在する枯葉に対して、移動・動作パラメータに基づいて画一的に処理を行うと、結果として枯葉の位置が不適切な位置に存在するような画像が表現されてしまう場合がある。
2.2 Description of Calculation Method for Correcting Position of Second Object Next, a method for calculating calculation of the second object will be described. In the image generation system of the present embodiment, an area including at least a part of the periphery of a moving body (an example of a first object) is set as a control area, and dead leaves (an example of a second object) existing in the control area Move and move with respect to. However, if the uniform processing is performed on dead leaves existing in the control area based on the movement / operation parameters, an image in which the position of the dead leaves exists at an inappropriate position is expressed. There is a case.

例えば、図11(A)に示すように、移動体OB1の中に、移動体OB2がめり込んでしまうような画像が生成されてしまう恐れがある。本来ならば、図11(B)に示すように、枯葉OB2が移動体OB1の外に位置した方が自然である。   For example, as shown in FIG. 11A, there is a possibility that an image in which the moving object OB2 is sunk in the moving object OB1 is generated. Originally, as shown in FIG. 11B, it is natural that the dead leaf OB2 is located outside the moving body OB1.

したがって、本実施形態の画像生成システムでは、枯葉OB2が、移動体OB1にめり込むような位置に枯葉OB2が存在する場合には、適正な位置に補正する処理を行うようにしている。   Therefore, in the image generation system of the present embodiment, when the dead leaf OB2 is present at a position where the dead leaf OB2 sinks into the moving body OB1, a process for correcting the dead leaf OB2 to an appropriate position is performed.

まず、補正パラメータに基づいて第2のオブジェクトの位置を補正する手法について説明する。図12に示すように、まず補正エリア面RPを設定する。補正エリア面RPは、移動体OB1に基づいて設定する。例えば、移動体OB1の占める位置(X,Z)が含むように設定する。なお、補正エリア面RPを設定せずに、制御エリア面CPの複数の格子点に対応づけて補正パラメータを設定してもよい。なお、補正エリア面RPも、制御エリア面CPと同様に、移動体OB1のローカル座標系に設定する。このようにすれば、オブジェクト空間における移動体の位置に関係なく、補正パラメータを設定することができ、補正の演算を簡易に行うことができるからである。   First, a method for correcting the position of the second object based on the correction parameter will be described. As shown in FIG. 12, first, a correction area plane RP is set. The correction area plane RP is set based on the moving object OB1. For example, the position (X, Z) occupied by the moving object OB1 is set. Note that the correction parameters may be set in association with a plurality of grid points on the control area plane CP without setting the correction area plane RP. Note that the correction area plane RP is also set in the local coordinate system of the moving object OB1, similarly to the control area plane CP. This is because the correction parameter can be set regardless of the position of the moving body in the object space, and the correction calculation can be easily performed.

次に、補正エリア面RPを格子状に分割した複数の格子点のそれぞれに対応づけて補正パラメータを設定する。なお、補正エリア面RPを格子状に分割する場合には、制御エリア面CPを格子状に分割する場合よりも詳細に分割してもよい。   Next, a correction parameter is set in association with each of a plurality of lattice points obtained by dividing the correction area surface RP into a lattice shape. Note that when the correction area surface RP is divided into a lattice, the control area surface CP may be divided in more detail than when the control area surface CP is divided into a lattice.

図13は、高さ方向(Y軸方向)の補正を行う高さパラメータ(補正パラメータの一例)を格納した補正パラメータテーブルの例を示す。   FIG. 13 shows an example of a correction parameter table storing height parameters (an example of correction parameters) for correcting in the height direction (Y-axis direction).

例えば、移動体OB1の形状に応じて補正エリア面の格子点に高さパラメータを設定する。例えば、補正エリア面の(X,Z)=(1,1)付近は、移動体OB1のルーフ部分であり、ルーフ部分の高さ(Yの値)が「2」である場合には、(X,Z)=(1,1)の高さパラメータに「2」を格納する。また、補正エリア面の(X,Z)=(1,3)付近は、移動体OB1のフロントガラス部分であり、フロントガラス部分の高さ(Yの値)が「1.5」である場合には、(X,Z)=(1,3)の高さパラメータに「1.5」を格納する。また、補正エリア面の(X,Z)=(1,4)付近は、移動体OB1のボンネット部分であり、ボンネット部分の高さ(Yの値)が「1」である場合には、(X,Z)=(1,4)の高さパラメータに「1」を格納する。   For example, the height parameter is set to the grid point on the correction area surface according to the shape of the moving object OB1. For example, the vicinity of (X, Z) = (1, 1) on the correction area surface is the roof portion of the moving object OB1, and when the height (Y value) of the roof portion is “2”, “2” is stored in the height parameter of (X, Z) = (1, 1). The vicinity of (X, Z) = (1, 3) on the correction area surface is the windshield portion of the moving object OB1, and the height (Y value) of the windshield portion is “1.5”. Stores “1.5” in the height parameter of (X, Z) = (1, 3). Further, the vicinity of (X, Z) = (1, 4) on the correction area surface is the bonnet portion of the moving object OB1, and when the height (Y value) of the bonnet portion is “1”, “1” is stored in the height parameter of (X, Z) = (1, 4).

そして、枯葉OB2の位置と、補正エリア面の各格子点に対応づけて設定された補正パラメータに基づいて、枯葉OB2を補正する演算を行う。具体的には、図13の高さパラメータに基づいて補正を行う場合には、枯葉OB2の高さ(Yの値)が、枯葉OB2の位置にある格子点の高さパラメータよりも低い場合には、高さパラメータの値に枯葉OB2の高さ(Yの値)を変更する演算を行う。   Then, a calculation for correcting the dead leaf OB2 is performed based on the position of the dead leaf OB2 and the correction parameter set in association with each lattice point on the correction area surface. Specifically, when correction is performed based on the height parameter of FIG. 13, the height (Y value) of the dead leaf OB2 is lower than the height parameter of the lattice point at the dead leaf OB2 position. Performs an operation of changing the height (Y value) of the dead leaves OB2 to the value of the height parameter.

例えば、図12に示すように、枯葉OB2が例えば、(X,Y,Z)=(1,0.9,4)の位置ある場合には、格子点(X,Z)=(1,4)の高さパラメータを取得する。つまり、図13の例では、格子点(X,Z)=(1,4)に対応付けられる高さパラメータ「1」を取得する。そして、枯葉OB2が、高さ(Yの値)が「0.9」であり、高さパラメータ「1」よりも低いので、移動体OB1にめり込まないように、枯葉OB2を(X,Z)=(1,4)の補正パラメータ値である「1」の高さに上げる補正処理を行う。   For example, as shown in FIG. 12, when the dead leaf OB2 is located at (X, Y, Z) = (1, 0.9, 4), for example, the lattice point (X, Z) = (1, 4 ) To get the height parameter. That is, in the example of FIG. 13, the height parameter “1” associated with the lattice point (X, Z) = (1, 4) is acquired. Since the dead leaf OB2 has a height (value of Y) of “0.9” and is lower than the height parameter “1”, the dead leaf OB2 is (X, A correction process is performed to raise the height to “1”, which is the correction parameter value of Z) = (1, 4).

また、枯葉OB2が、例えば、(X,Y,Z)=(2,3,2)の位置にある場合には、(X,Z)=(2,2)の補正エリア面RPの格子点に対応付けられる高さパラメータの値が「2」であるので、枯葉OB2は、補正パラメータ値よりも高い位置(Y=3の位置)にあるので、枯葉OB2の位置を変更しない。   Further, when the dead leaf OB2 is at the position of (X, Y, Z) = (2, 3, 2), for example, the lattice point of the correction area plane RP of (X, Z) = (2, 2) Since the value of the height parameter associated with is “2”, the dead leaf OB2 is at a position higher than the correction parameter value (Y = 3), so the position of the dead leaf OB2 is not changed.

以上の処理に基づいて、本実施形態の画像生成システムでは、枯葉OB2の補正の演算が行われる。このようにすれば、移動体OB1が凹凸のある複雑な形状を有する場合でも、枯葉OB2が移動体OB1にめり込むような不自然な画像を生成することを防止することができる。また、本実施形態の画像生成システムによれば、厳密に3次元空間で枯葉OB2を構成するポリゴンの頂点と、移動体OB1を構成するポリゴンの頂点との頂点演算を行って、枯葉OB2の位置を補正する演算を行う手法に比較して、少ない演算量で補正を行うことができる。   Based on the above processing, in the image generation system of the present embodiment, the calculation of correction of dead leaves OB2 is performed. In this way, even when the moving body OB1 has a complex shape with irregularities, it is possible to prevent the generation of an unnatural image in which the dead leaves OB2 sink into the moving body OB1. In addition, according to the image generation system of the present embodiment, the position of the dead leaf OB2 is calculated by performing a vertex calculation between the vertex of the polygon constituting the dead leaf OB2 and the vertex of the polygon constituting the moving body OB1 strictly in a three-dimensional space. Compared with the method of performing the calculation for correcting the correction, the correction can be performed with a small amount of calculation.

なお、第2のオブジェクトの位置を補正する演算は、前述の移動・動作パラメータを補間した場合と同様に、複数の補正パラメータを補間し、補間した値に基づいて補正の演算を行うようにしてもよい。なお、補正は第2のオブジェクトを補正エリア面に投影した点の周囲の複数の格子点に対応付けられる補正パラメータを線形補間してもよいし、例えば高さパラメータを取得する場合には複数の格子点に対応付けられる補正パラメータのうち最も大きな値の補正パラメータを取得するようにしてもよい。   Note that the calculation for correcting the position of the second object is performed by interpolating a plurality of correction parameters and performing the correction calculation based on the interpolated values, as in the case of interpolating the movement / motion parameters described above. Also good. The correction may be performed by linearly interpolating correction parameters associated with a plurality of grid points around the point where the second object is projected on the correction area surface. For example, when acquiring a height parameter, a plurality of correction parameters may be used. The correction parameter having the largest value among the correction parameters associated with the lattice points may be acquired.

次に、ボリュームを用いて第2のオブジェクトの位置を補正する演算する手法について説明する。   Next, a calculation method for correcting the position of the second object using the volume will be described.

図14は、バウンディングボックスを用いて補正する例を示した図である。移動体OB1が例えばバスのような略直方体の形状を特徴とするオブジェクトである場合には、直方体のバウンディングボックスBBを用いることができる。   FIG. 14 is a diagram illustrating an example in which correction is performed using a bounding box. When the moving body OB1 is an object characterized by a substantially rectangular parallelepiped shape such as a bus, for example, a rectangular parallelepiped bounding box BB can be used.

そして、枯葉OB2の一部がバウンディングボックスBBの中に存在するか否かを判断する。具体的には枯葉OB2を構成するポリゴンの頂点座標と、バウンディングボックスBBを構成するポリゴンの頂点座標に基づいて、枯葉OB2の一部が、バウンディングボックスBBの中に存在するか否かを判断する。   And it is judged whether a part of dead leaf OB2 exists in bounding box BB. Specifically, it is determined whether a part of the dead leaf OB2 exists in the bounding box BB based on the vertex coordinates of the polygon constituting the dead leaf OB2 and the vertex coordinates of the polygon constituting the bounding box BB. .

枯葉OB2の一部がバウンディングボックスBBの中に存在する場合には、枯葉OB2の位置をバウンディングボックスBBの外に位置するように枯葉OB2の位置を修正する。例えば、枯葉OB2の位置座標のY値を、バウンディングボックスBBの外に位置するように変更する。   When a part of the dead leaf OB2 is present in the bounding box BB, the position of the dead leaf OB2 is corrected so that the position of the dead leaf OB2 is located outside the bounding box BB. For example, the Y value of the position coordinate of the dead leaf OB2 is changed so as to be located outside the bounding box BB.

なお、枯葉OB2の位置を補正する演算は、制御エリア内の移動・動作パラメータに基づく枯葉OB2の移動・動作の演算を行う前に補正の演算を行ってもよい。また、制御エリア内の移動・動作パラメータに基づく枯葉OB2の移動・動作の演算を行った後には、決定された枯葉OB2の位置に基づいて補正の演算を行う方が望ましい。枯葉OB2が移動体OB1にめり込むような画像を生成することを確実に防止することができるからである。   The calculation for correcting the position of the dead leaf OB2 may be performed before the calculation of the movement / motion of the dead leaf OB2 based on the movement / motion parameter in the control area. In addition, after calculating the movement / motion of the dead leaf OB2 based on the movement / motion parameter in the control area, it is preferable to perform the correction calculation based on the determined position of the dead leaf OB2. This is because it is possible to reliably prevent the image of the dead leaf OB2 from being embedded in the moving object OB1.

3. 本実施形態の処理
次に図15を用いて、本実施形態の手法を実現する処理例を詳細に説明する。
3. Processing of the present embodiment Next, a processing example for realizing the method of the present embodiment will be described in detail with reference to FIG.

図15は、本実施形態の手法における枯葉の移動・動作、及び補正の演算を行うフローチャートである。   FIG. 15 is a flowchart for calculating dead leaf movement / motion and correction according to the method of the present embodiment.

まず、移動体の位置を演算する(ステップS110)。次に、移動体の位置に応じて制御エリアを設定する(ステップS120)。なお、制御エリアは、移動体のローカル座標系において設定される。そして、制御エリアに基づいて設定された制御エリア面を格子状に分割した複数の格子点に対応づけて移動・動作パラメータと補正パラメータとを設定する(ステップS130)。つまり、移動・動作パラメータと補正パラメータとは、制御エリア面を分割した移動体のローカル座標系における複数の格子点(X,Z)に対応づけて設定される。   First, the position of the moving body is calculated (step S110). Next, a control area is set according to the position of the moving body (step S120). The control area is set in the local coordinate system of the moving body. Then, a movement / operation parameter and a correction parameter are set in association with a plurality of grid points obtained by dividing the control area plane set based on the control area into a grid pattern (step S130). That is, the movement / operation parameter and the correction parameter are set in association with a plurality of lattice points (X, Z) in the local coordinate system of the moving object obtained by dividing the control area surface.

次に、移動体のローカル座標系における枯葉の位置を演算する(ステップS140)。枯葉の位置は、移動体をローカル座標系からワールド座標系に変換される行列式の逆行列を、ワールド座標系における枯葉の位置(座標)に乗算することによって求めることができる。そして、枯葉の位置と、制御エリア面の各格子点に対応付けられた移動・動作パラメータとに基づいて、枯葉の移動・動作を演算する(ステップS150)。   Next, the position of dead leaves in the local coordinate system of the moving object is calculated (step S140). The position of the dead leaf can be obtained by multiplying the position (coordinate) of the dead leaf in the world coordinate system by an inverse matrix of a determinant that converts the moving body from the local coordinate system to the world coordinate system. Then, based on the position of the dead leaf and the movement / motion parameter associated with each grid point on the control area surface, the movement / motion of the dead leaf is calculated (step S150).

次に、枯葉の位置が補正エリア内か否かを判断する(ステップS160)。なお、枯葉の少なくとも一部が補正エリア内に属するか否かを判断してもよい。枯葉の位置が補正エリア内であると判断される場合には(ステップS160のYes)、枯葉が補正エリア外に位置するように、補正パラメータに基づいて補正する演算を行う(ステップS170)。一方、枯葉の位置が補正エリア内であると判断されない場合には(ステップS160のNo)、次のステップに進む。   Next, it is determined whether or not the position of dead leaves is within the correction area (step S160). It may be determined whether at least a part of the dead leaves belong to the correction area. When it is determined that the position of the dead leaf is within the correction area (Yes in step S160), a calculation is performed based on the correction parameter so that the dead leaf is located outside the correction area (step S170). On the other hand, when it is not determined that the position of dead leaves is within the correction area (No in step S160), the process proceeds to the next step.

次に、制御エリア内に存在する全ての枯葉について演算を行ったか否かを判断し(ステップS180)、制御エリア内に存在する全ての枯葉について移動・動作の演算を行っていない場合には(ステップS180のNo)、移動・動作の演算を行っていない枯葉に対して、ステップS140〜ステップS180の処理を行う。一方、制御エリア内に存在する全ての枯葉について移動・動作の演算を行った場合には(ステップS180のYes)、処理を終了する。   Next, it is determined whether or not calculation has been performed for all dead leaves existing in the control area (step S180), and when movement and motion calculations have not been performed for all dead leaves existing in the control area ( The process of step S140 to step S180 is performed with respect to the dead leaf which has not performed the calculation of movement and operation | movement of step S180. On the other hand, if the movement / motion calculation has been performed for all dead leaves in the control area (Yes in step S180), the process ends.

4.応用例
(1)移動体が壁に衝突する場合の実施例
本実施形態の画像生成システムによれば、上述した枯葉の気流制御の他に、例えば、移動体が、壁(例えば、煉瓦等)に衝突する場合に、衝突したことによって、壁が崩れる様子を表現する画像を生成することができる。
4). Application Examples (1) Examples when a moving body collides with a wall According to the image generation system of the present embodiment, in addition to the above-described air flow control of dead leaves, for example, the moving body is a wall (for example, a brick). In the case of collision, an image expressing a state in which the wall collapses due to the collision can be generated.

移動体が煉瓦の壁に衝突する場合を例にとり説明すると、移動体の周囲に制御エリアを設定し、移動体が煉瓦に衝突することによって壊れた煉瓦の破片の速度ベクトル(移動・動作パラメータの一例)を、制御エリア面の各格子点に対応づけて移動・動作パラメータテーブルに予め設定する。そして、制御エリア内に存在する煉瓦の破片の位置と、制御エリア面の各格子点に対応づけられる速度ベクトルとに基づいて、煉瓦の破片に対して移動・動作の演算を行う。このようにすれば、厳密に煉瓦の破片の移動・動作のシミュレーション演算を行わなくても、簡易に移動・動作の演算を行うことができる。   For example, when a moving object collides with a brick wall, a control area is set around the moving object, and the velocity vector (of the movement and operation parameters of the broken bricks broken when the moving object collides with the brick). One example) is set in advance in the movement / operation parameter table in association with each grid point on the control area surface. Then, based on the position of the brick fragment existing in the control area and the velocity vector associated with each lattice point on the control area surface, the movement / operation is calculated for the brick fragment. In this way, it is possible to easily calculate the movement / motion without performing the simulation calculation of the movement / motion of the brick fragments strictly.

また、制御エリア面の各格子点に対応づけて設定された補正パラメータに基づいて、移動体の周囲に崩れ落ちる煉瓦の破片が移動体の中にめり込まないに補正する演算を行うことができる。このようにすれば、煉瓦の破片と、移動体との衝突判定を厳密に行わなくても簡易な演算で、壊れた煉瓦の破片が移動体の周囲に落ちる様子を表現することができる。   Further, based on the correction parameters set in association with the respective lattice points on the control area surface, it is possible to perform an operation for correcting the brick fragments that collapse around the moving body so as not to sink into the moving body. . In this way, it is possible to express a state in which broken brick fragments fall around the moving body with a simple calculation without strict judgment of collision between the brick fragments and the moving body.

(2)移動体が枝の下を通る場合の実施例
本実施形態の画像生成システムによれば、例えば木の枝が移動体の通過に伴って揺れる動作を表現することができる。
(2) Example when the moving body passes under a branch According to the image generation system of the present embodiment, for example, it is possible to express an operation in which a tree branch swings as the moving body passes.

例えば、移動体の周囲に制御エリアを設定し、制御エリア面の各格子点に対応づけて予め木の枝が揺れる動作を示すモーションデータ(移動・動作パラメータの一例)を制御エリア面の各格子点に対応づけて予め設定する。そして、制御エリア内に木の枝が存在する場合には、木の枝の位置と、制御エリア面の各格子点に対応付けられるモーションデータとに基づいて、木の枝が揺れる動作の演算を行う。モーションデータは、例えば、木の枝が移動体の進行方向に動いた後に弾性力によって元の位置に戻るという一連の動作とすることができる。このようにすれば、移動体の高さの近くに存在する木の枝の下を移動体が通過する場合には、木の枝が揺れる様子を表現することができる。   For example, a control area is set around a moving object, and motion data (an example of movement / motion parameters) indicating movement of a tree branch in advance is associated with each grid point on the control area plane. It is set in advance in association with a point. If a tree branch exists in the control area, the calculation of the movement of the tree branch is performed based on the position of the tree branch and the motion data associated with each lattice point on the control area surface. Do. The motion data can be, for example, a series of operations in which the tree branch moves in the traveling direction of the moving body and then returns to the original position by the elastic force. In this way, when the moving body passes under the tree branch existing near the height of the moving body, it is possible to express the state of the tree branch shaking.

(3)移動・動作パラメータを動的に変更する場合の実施例
本実施形態の画像生成システムでは、移動体の移動速度、移動方向に基づいて移動・動作パラメータを動的に変更してもよい。制御エリアに存在する枯葉の移動・動作を移動体のスピードや移動方向に応じて表現することができるからである。さらに、オブジェクト空間の天候や風力、他の移動体の移動によって発生する気流等に応じて、移動・動作パラメータを動的に変更してもよい。つまり、移動体が移動することによって生じる気流だけでなく、天候、風等の移動体以外の他の要因に基づいて生じる気流に応じて、移動・動作パラメータを動的に変更して、枯葉の移動・動作の演算を行ってもよい。要するに、本実施形態では、ゲーム状況(移動体の移動速度、移動方向、天候、風力等)に応じて、移動・動作パラメータを動的に変更してもよい。
(3) Example in which movement / motion parameter is dynamically changed In the image generation system according to the present embodiment, the movement / motion parameter may be dynamically changed based on the movement speed and movement direction of the moving body. . This is because the movement and movement of dead leaves existing in the control area can be expressed according to the speed and moving direction of the moving body. Furthermore, the movement / motion parameters may be dynamically changed according to the weather in the object space, wind power, airflow generated by the movement of another moving body, and the like. In other words, depending on not only the airflow generated by the moving body but also the airflow generated based on other factors other than the moving body such as weather, wind, etc. The movement / motion calculation may be performed. In short, in this embodiment, the movement / motion parameters may be dynamically changed according to the game situation (moving speed, moving direction, weather, wind power, etc. of the moving body).

このように、ゲーム状況に応じた気流制御を表現する場合には、補正パラメータを変更することなく、移動・動作パラメータテーブルに格納されている移動・動作パラメータのみを、動的に変更する。つまり、移動・動作パラメータは移動・動作パラメータテーブルに設定され、補正パラメータは補正パラメータテーブルに設定され、それぞれ異なるテーブルで設定されているので、移動・動作パラメータのみを変更すれば、ゲーム状況に応じた枯葉の気流制御を表現することができる。   Thus, when airflow control according to the game situation is expressed, only the movement / motion parameters stored in the movement / motion parameter table are dynamically changed without changing the correction parameters. In other words, the movement / motion parameters are set in the movement / motion parameter table, and the correction parameters are set in the correction parameter table, which are set in different tables. The air flow control of dead leaves can be expressed.

(4)移動体が変形する場合の実施例
本実施形態の画像生成システムでは、移動体が変形した場合には、変形後の移動体に基づいて、補正パラメータテーブルに格納される補正パラメータを変更してもよい。例えば、移動体が壁等に衝突して移動体の形状が変形する場合には、枯葉の位置は変形後の移動体の形状に応じて適切な位置に補正することが望ましいからである。
(4) Example when the moving body is deformed In the image generation system according to this embodiment, when the moving body is deformed, the correction parameters stored in the correction parameter table are changed based on the deformed moving body. May be. For example, when the moving body collides with a wall or the like and the shape of the moving body is deformed, it is desirable to correct the position of dead leaves to an appropriate position according to the shape of the moving body after deformation.

また、ボリュームを用いて枯葉の位置を補正する演算を行う場合には、変形後の移動体を内包したボリューム又は変更後の移動体の概形を表すボリュームを用いて、補正の演算を行うようにしてもよい。   In addition, when performing an operation for correcting the position of dead leaves using a volume, the correction operation is performed using a volume that includes the deformed moving body or a volume that represents the outline of the moving body after the change. It may be.

5.ハードウエア構成
図16に本実施形態を実現できるハードウェア構成の例を示す。メインプロセッサ900は、DVD982(情報記憶媒体。CDでもよい。)に格納されたプログラム、通信インターフェース990を介してダウンロードされたプログラム、或いはROM950に格納されたプログラムなどに基づき動作し、ゲーム処理、画像処理、音処理などを実行する。コプロセッサ902は、メインプロセッサ900の処理を補助するものであり、マトリクス演算(ベクトル演算)を高速に実行する。例えばオブジェクトを移動させたり動作(モーション)させる物理シミュレーションに、マトリクス演算処理が必要な場合には、メインプロセッサ900上で動作するプログラムが、その処理をコプロセッサ902に指示(依頼)する。
5. Hardware Configuration FIG. 16 shows an example of a hardware configuration capable of realizing this embodiment. The main processor 900 operates based on a program stored in a DVD 982 (information storage medium, which may be a CD), a program downloaded via the communication interface 990, a program stored in the ROM 950, or the like. Perform processing, sound processing, etc. The coprocessor 902 assists the processing of the main processor 900, and executes matrix operation (vector operation) at high speed. For example, when a matrix calculation process is required for a physical simulation for moving or moving an object, a program operating on the main processor 900 instructs (requests) the process to the coprocessor 902.

ジオメトリプロセッサ904は、メインプロセッサ900上で動作するプログラムからの指示に基づいて、座標変換、透視変換、光源計算、曲面生成などのジオメトリ処理を行うものであり、マトリクス演算を高速に実行する。データ伸張プロセッサ906は、圧縮された画像データや音データのデコード処理を行ったり、メインプロセッサ900のデコード処理をアクセレートする。これにより、オープニング画面やゲーム画面において、MPEG方式等で圧縮された動画像を表示できる。   The geometry processor 904 performs geometry processing such as coordinate conversion, perspective conversion, light source calculation, and curved surface generation based on an instruction from a program operating on the main processor 900, and executes matrix calculation at high speed. The data decompression processor 906 performs decoding processing of compressed image data and sound data, and accelerates the decoding processing of the main processor 900. Thereby, a moving image compressed by the MPEG method or the like can be displayed on the opening screen or the game screen.

描画プロセッサ910は、ポリゴンや曲面などのプリミティブ面で構成されるオブジェクトの描画(レンダリング)処理を実行する。オブジェクトの描画の際には、メインプロセッサ900は、DMAコントローラ970を利用して、描画データを描画プロセッサ910に渡すと共に、必要であればテクスチャ記憶部924にテクスチャを転送する。すると描画プロセッサ910は、描画データやテクスチャに基づいて、Zバッファなどを利用した隠面消去を行いながら、オブジェクトをフレームバッファ922に描画する。また描画プロセッサ910は、αブレンディング(半透明処理)、デプスキューイング、ミップマッピング、フォグ処理、バイリニア・フィルタリング、トライリニア・フィルタリング、アンチエイリアシング、シェーディング処理なども行う。頂点シェーダやピクセルシェーダなどのプログラマブルシェーダが実装されている場合には、シェーダプログラムに従って、頂点データの作成・変更(更新)やピクセル(あるいはフラグメント)の描画色の決定を行う。1フレーム分の画像がフレームバッファ922に書き込まれるとその画像はディスプレイ912に表示される。   The drawing processor 910 executes drawing (rendering) processing of an object composed of primitive surfaces such as polygons and curved surfaces. When drawing an object, the main processor 900 uses the DMA controller 970 to pass the drawing data to the drawing processor 910 and, if necessary, transfers the texture to the texture storage unit 924. Then, the drawing processor 910 draws the object in the frame buffer 922 while performing hidden surface removal using a Z buffer or the like based on the drawing data and texture. The drawing processor 910 also performs α blending (translucent processing), depth cueing, mip mapping, fog processing, bilinear filtering, trilinear filtering, anti-aliasing, shading processing, and the like. When a programmable shader such as a vertex shader or a pixel shader is installed, the vertex data is created / changed (updated) and the drawing color of a pixel (or fragment) is determined according to the shader program. When an image for one frame is written in the frame buffer 922, the image is displayed on the display 912.

サウンドプロセッサ930は、多チャンネルのADPCM音源などを内蔵し、BGM、効果音、音声などのゲーム音を生成し、スピーカ932を介して出力する。ゲームコントローラ942やメモリカード944からのデータはシリアルインターフェース940を介して入力される。   The sound processor 930 includes a multi-channel ADPCM sound source and the like, generates game sounds such as BGM, sound effects, and sounds, and outputs them through the speaker 932. Data from the game controller 942 and the memory card 944 is input via the serial interface 940.

ROM950にはシステムプログラムなどが格納される。業務用ゲームシステムの場合にはROM950が情報記憶媒体として機能し、ROM950に各種プログラムが格納される。なおROM950の代わりにハードディスクを利用してもよい。RAM960は各種プロセッサの作業領域となる。DMAコントローラ970は、プロセッサ、メモリ間でのDMA転送を制御する。DVDドライブ980(CDドライブでもよい。)は、プログラム、画像データ、或いは音データなどが格納されるDVD982(CDでもよい。)にアクセスする。通信インターフェース990はネットワーク(通信回線、高速シリアルバス)を介して外部との間でデータ転送を行う。   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. The RAM 960 is a work area for various processors. The DMA controller 970 controls DMA transfer between the processor and the memory. The DVD drive 980 (which may be a CD drive) accesses a DVD 982 (which may be a CD) in which programs, image data, sound data, and the like are stored. The communication interface 990 performs data transfer with the outside via a network (communication line, high-speed serial bus).

なお本実施形態の各部(各手段)の処理は、その全てをハードウェアのみにより実現してもよいし、情報記憶媒体に格納されるプログラムや通信インターフェースを介して配信されるプログラムにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。   The processing of each unit (each unit) in this embodiment may be realized entirely by hardware, or may be realized by a program stored in an information storage medium or a program distributed via a communication interface. Also good. Alternatively, it may be realized by both hardware and a program.

そして本実施形態の各部の処理をハードウェアとプログラムの両方により実現する場合には、情報記憶媒体には、ハードウェア(コンピュータ)を本実施形態の各部として機能させるためのプログラムが格納される。より具体的には、上記プログラムが、ハードウェアである各プロセッサ902、904、906、910、930に処理を指示すると共に、必要であればデータを渡す。そして、各プロセッサ902、904、906、910、930は、その指示と渡されたデータとに基づいて本発明の各部の処理を実現する。   When the processing of each part of this embodiment is realized by both hardware and a program, a program for causing the hardware (computer) to function as each part of this embodiment is stored in the information storage medium. More specifically, the program instructs the processors 902, 904, 906, 910, and 930, which are hardware, and passes data if necessary. Each processor 902, 904, 906, 910, 930 realizes the processing of each unit of the present invention based on the instruction and the passed data.

なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。例えば、明細書又は図面中の記載において広義や同義な用語として引用された用語は、明細書又は図面中の他の記載においても広義や同義な用語に置き換えることができる。また接触痕跡の表現手法も、本実施形態で説明したものに限定されず、これらと均等な手法も本発明の範囲に含まれる。   The present invention is not limited to that described in the above embodiment, and various modifications can be made. For example, terms cited as broad or synonymous terms in the description in the specification or drawings can be replaced with broad or synonymous terms in other descriptions in the specification or drawings. Further, the method of expressing the contact trace is not limited to that described in the present embodiment, and a method equivalent to these is also included in the scope of the present invention.

なお、本実施形態の画像生成システムでは、例えば移動体が、飛行機や、船である場合には、その移動体の形状に応じた制御エリアを設定し、移動・動作パラメータを設定することが望ましい。例えば、移動体が船である場合には、船の周囲の海面領域を制御エリアとして設定し、制御エリア内に存在する物体に対して海流の影響を与えるように移動・動作の演算を行うようにしてもよい。   In the image generation system of the present embodiment, for example, when the moving body is an airplane or a ship, it is desirable to set a control area according to the shape of the moving body and set the movement / operation parameters. . For example, when the moving body is a ship, the sea area around the ship is set as the control area, and the movement / motion calculation is performed so as to influence the ocean current on the objects existing in the control area. It may be.

本実施形態の画像生成システムでは、制御エリア面を格子状に分割する格子点に基づいて移動・動作パラメータや、補正パラメータを設定する例を説明したが、第2のオブジェクトに対する振る舞いを示すパラメータを設定するようにしてもよい。   In the image generation system according to the present embodiment, the example in which the movement / motion parameter and the correction parameter are set based on the grid points that divide the control area plane into a grid has been described. However, the parameter indicating the behavior for the second object You may make it set.

例えば、移動体(第1のオブジェクトの一例)が燃えて、枯葉(第2のオブジェクトの一例)が引火する様子を表現したい場合には、制御エリア面を格子状に分割する複数の格子点に対応づけて温度パラメータを設定するようにしてもよい。このようにすれば、例えば、枯葉の位置と、格子点に対応付けられる温度パラメータとに基づいて、枯葉に引火するか否かを判断し(例えば、温度パラメータと所与の閾値に基づいて判断し)、引火すると判断される場合には枯葉が引火されたような画像を生成するようにしてもよい。   For example, if you want to express how a moving object (an example of a first object) burns and a dead leaf (an example of a second object) ignites, a plurality of lattice points that divide the control area surface into a lattice shape Corresponding temperature parameters may be set. In this way, for example, it is determined whether or not the dead leaf is ignited based on the position of the dead leaf and the temperature parameter associated with the lattice point (for example, based on the temperature parameter and a given threshold). However, if it is determined to ignite, an image as if dead leaves were ignited may be generated.

また本発明は種々のゲーム(レーシングゲーム、格闘ゲーム、シューティングゲーム、ロボット対戦ゲーム、スポーツゲーム、競争ゲーム、ロールプレイングゲーム、音楽演奏ゲーム、ダンスゲーム等)に適用できる。また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレーヤが参加する大型アトラクションシステム、シミュレータ、パーソナルコンピュータ、マルチメディア端末、ゲーム画像を生成するシステムボード、携帯電話等の種々の画像生成システムに適用できる。   The present invention can be applied to various games (racing game, fighting game, shooting game, robot battle game, sports game, competition game, role playing game, music playing game, dance game, etc.). The present invention also provides various image generation 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 personal computer, a multimedia terminal, a system board for generating game images, a mobile phone, Applicable to the system.

本実施形態の画像生成システムの機能ブロック図の例。The example of a functional block diagram of the image generation system of this embodiment. 図2(A)(B)(C)は、ワールド座標系とローカル座標系の説明図。2A, 2B, and 2C are explanatory diagrams of a world coordinate system and a local coordinate system. 図3(A)(B)は制御エリアの説明図。3A and 3B are explanatory diagrams of the control area. 図4(A)(B)は制御エリアの説明図。4A and 4B are explanatory diagrams of the control area. 図5(A)(B)は制御エリアの説明図。5A and 5B are explanatory diagrams of the control area. 図6(A)(B)は制御エリアの説明図。6A and 6B are explanatory diagrams of the control area. 図7(A)(B)は移動・動作の演算手法の説明図。FIGS. 7A and 7B are explanatory diagrams of a calculation method of movement / motion. 図8(A)(B)は移動・動作パラメータの説明図。8A and 8B are explanatory diagrams of movement / operation parameters. 図9(A)(B)は制御エリアの説明図。9A and 9B are explanatory diagrams of the control area. 図10(A)(B)は、補間の説明図。10A and 10B are explanatory diagrams of interpolation. 図11(A)(B)は補正の演算手法の説明図。FIGS. 11A and 11B are explanatory diagrams of correction calculation methods. 補正の演算手法の説明図。Explanatory drawing of the calculation method of correction | amendment. 補正パラメータの説明図。Explanatory drawing of a correction parameter. 補正の演算手法の説明図。Explanatory drawing of the calculation method of correction | amendment. 本実施形態の処理のフローチャート。The flowchart of the process of this embodiment. ハードウェア構成例。Hardware configuration example.

符号の説明Explanation of symbols

OB1 第1のオブジェクト、OB2 第2のオブジェクト、
CA 制御エリア、CP 制御エリア面、RP 補正エリア面、
100 処理部、110 オブジェクト空間設定部、112 移動・動作処理部、
114 エリア設定部、116 パラメータ設定部、
120 描画部、130 音生成部、
160 操作部、170 記憶部、172 主記憶部、
174 描画バッファ、176 オブジェクトデータ記憶部、
180 情報記憶媒体、190 表示部、192 音出力部、
194 携帯型情報記憶装置、196 通信部、
OB1 first object, OB2 second object,
CA control area, CP control area surface, RP correction area surface,
100 processing unit, 110 object space setting unit, 112 movement / motion processing unit,
114 area setting section, 116 parameter setting section,
120 drawing units, 130 sound generation units,
160 operation unit, 170 storage unit, 172 main storage unit,
174 Drawing buffer, 176 Object data storage unit,
180 information storage medium, 190 display unit, 192 sound output unit,
194 portable information storage device, 196 communication unit,

Claims (8)

オブジェクト空間における所与の視点から見える画像を生成するプログラムであって、
第1のオブジェクト及び第2のオブジェクトをオブジェクト空間に設定するオブジェクト空間設定部と、
前記第1のオブジェクト及び前記第2のオブジェクトの移動及び動作の少なくとも一方を演算する移動・動作処理部と、
前記第1のオブジェクトの位置に応じて制御エリアを設定するエリア設定部と、
前記制御エリアに基づいて、制御エリア面を格子状に分割する複数の格子点のそれぞれに対応づけて移動・動作パラメータと補正パラメータとを設定するパラメータ設定部と、
オブジェクト空間における所与の視点から見える画像を生成する描画部としてコンピュータを機能させ、
前記エリア設定部が、
前記第1のオブジェクトの周囲の少なくとも一部を含むエリアを、前記制御エリアとして設定し、
前記移動・動作処理部が、
前記制御エリア内に存在する前記第2のオブジェクトの位置と、前記制御エリア面の各格子点に対応付けられる移動・動作パラメータとに基づいて、前記第2のオブジェクトの移動及び動作の少なくとも一方を演算し、前記第2のオブジェクトの位置と、前記制御エリア面の各格子点とに対応付けられる前記補正パラメータとに基づいて、前記第2のオブジェクトの位置を補正する演算を行うことを特徴とするプログラム。
A program for generating an image that can be seen from a given viewpoint in an object space,
An object space setting unit for setting the first object and the second object in the object space;
A movement / motion processing unit for calculating at least one of movement and motion of the first object and the second object;
An area setting unit for setting a control area according to the position of the first object;
Based on the control area, a parameter setting unit that sets a movement / operation parameter and a correction parameter in association with each of a plurality of grid points that divide the control area surface into a grid,
The computer functions as a drawing unit that generates an image that can be seen from a given viewpoint in the object space,
The area setting unit
An area including at least a part of the periphery of the first object is set as the control area;
The movement / motion processing unit
Based on the position of the second object existing in the control area and the movement / motion parameter associated with each grid point of the control area surface, at least one of movement and motion of the second object is determined. Calculating and correcting the position of the second object based on the position of the second object and the correction parameter associated with each grid point of the control area surface. Program to do.
請求項において、
前記移動・動作処理部が、
前記第2のオブジェクトの移動及び動作の少なくとも一方を演算した後に、前記第2のオブジェクトの位置を補正する演算を行うことを特徴とするプログラム。
In claim 1 ,
The movement / motion processing unit
A program for performing a calculation for correcting a position of the second object after calculating at least one of movement and movement of the second object.
請求項1又は2において、
前記エリア設定部が、
前記第1のオブジェクトの周囲であって、前記制御エリア面と前記制御エリア面に対する垂直方向の所定範囲によって囲まれたエリアを、前記制御エリアとして設定することを特徴とするプログラム。
In claim 1 or 2 ,
The area setting unit
An area surrounding the first object and surrounded by a predetermined range in a direction perpendicular to the control area surface and the control area surface is set as the control area.
請求項1〜のいずれかにおいて、
前記エリア設定部が、
複数種類の前記第1のオブジェクトに対して共通の前記制御エリアを設定し、
前記パラメータ設定部が、
複数種類の前記第1のオブジェクトに対して、共通の前記制御エリア面を格子状に分割する前記複数の格子点のそれぞれに対応づけて共通の移動・動作パラメータを設定することを特徴とするプログラム。
In any one of Claims 1-3 ,
The area setting unit
A common control area is set for a plurality of types of the first objects;
The parameter setting unit
A program for setting a common movement / operation parameter in association with each of the plurality of grid points that divide the common control area surface into a grid for a plurality of types of the first objects. .
請求項1〜のいずれかにおいて、
前記移動・動作処理部が、
前記第2のオブジェクトの位置に基づいて前記各格子点に設定された前記移動・動作パラメータを補間し、補間した値に基づいて前記第2のオブジェクトの移動及び動作の少なくとも一方を演算することを特徴とするプログラム。
In any one of Claims 1-4 ,
The movement / motion processing unit
Interpolating the movement / motion parameters set at each grid point based on the position of the second object, and calculating at least one of movement and motion of the second object based on the interpolated value. A featured program.
請求項1〜のいずれかにおいて、
前記オブジェクト空間設定部が、
前記第1のオブジェクトのローカル座標系における前記第1のオブジェクトの位置をオブジェクト空間を定義する座標系における位置に変換することによって、前記第1のオブジェクトを前記オブジェクト空間に設定し、
前記エリア設定部が、
前記制御エリアを前記ローカル座標系に設定し、
前記パラメータ設定部が、
前記制御エリア面を格子状に分割する複数の格子点を、前記ローカル座標系に設定し、
前記移動・動作処理部が、
前記オブジェクト空間に設定された前記第2のオブジェクトの位置を前記ローカル座標系に変換し、変換した位置に基づいて演算することを特徴とするプログラム。
In any one of Claims 1-5 ,
The object space setting unit
Setting the first object in the object space by converting the position of the first object in the local coordinate system of the first object to a position in a coordinate system defining an object space;
The area setting unit
Set the control area to the local coordinate system,
The parameter setting unit
A plurality of grid points that divide the control area surface into a grid are set in the local coordinate system,
The movement / motion processing unit
A program for converting the position of the second object set in the object space into the local coordinate system and calculating based on the converted position.
コンピュータにより読取可能な情報記憶媒体であって、請求項1〜のいずれかに記載のプログラムを記憶することを特徴とする情報記憶媒体。 An information storage medium readable by a computer, wherein the program according to any one of claims 1 to 6 is stored. オブジェクト空間における所与の視点から見える画像を生成する画像生成システムであって、
第1のオブジェクト及び第2のオブジェクトをオブジェクト空間に設定するオブジェクト空間設定部と、
前記第1のオブジェクト及び前記第2のオブジェクトの移動及び動作の少なくとも一方を演算する移動・動作処理部と、
前記第1のオブジェクトの位置に応じて制御エリアを設定するエリア設定部と、
前記制御エリアに基づいて、制御エリア面を格子状に分割する複数の格子点のそれぞれに対応づけて移動・動作パラメータと補正パラメータとを設定するパラメータ設定部と、
オブジェクト空間における所与の視点から見える画像を生成する描画部と、
を含み、
前記エリア設定部が、
前記第1のオブジェクトの周囲の少なくとも一部を含むエリアを、前記制御エリアとして設定し、
前記移動・動作処理部が、
前記制御エリア内に存在する前記第2のオブジェクトの位置と、前記制御エリア面の各格子点に対応付けられる移動・動作パラメータとに基づいて、前記第2のオブジェクトの移動及び動作の少なくとも一方を演算し、前記第2のオブジェクトの位置と、前記制御エリア面の各格子点とに対応付けられる前記補正パラメータとに基づいて、前記第2のオブジェクトの位置を補正する演算を行うことを特徴とする画像生成システム。
An image generation system for generating an image that can be seen from a given viewpoint in an object space,
An object space setting unit for setting the first object and the second object in the object space;
A movement / motion processing unit for calculating at least one of movement and motion of the first object and the second object;
An area setting unit for setting a control area according to the position of the first object;
Based on the control area, a parameter setting unit that sets a movement / operation parameter and a correction parameter in association with each of a plurality of grid points that divide the control area surface into a grid,
A drawing unit that generates an image viewed from a given viewpoint in the object space;
Including
The area setting unit
An area including at least a part of the periphery of the first object is set as the control area;
The movement / motion processing unit
Based on the position of the second object existing in the control area and the movement / motion parameter associated with each grid point of the control area surface, at least one of movement and motion of the second object is determined. Calculating and correcting the position of the second object based on the position of the second object and the correction parameter associated with each grid point of the control area surface. Image generation system.
JP2007058903A 2007-03-08 2007-03-08 Program, information storage medium, and image generation system Active JP4861862B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007058903A JP4861862B2 (en) 2007-03-08 2007-03-08 Program, information storage medium, and image generation system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007058903A JP4861862B2 (en) 2007-03-08 2007-03-08 Program, information storage medium, and image generation system

Publications (2)

Publication Number Publication Date
JP2008225571A JP2008225571A (en) 2008-09-25
JP4861862B2 true JP4861862B2 (en) 2012-01-25

Family

ID=39844164

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007058903A Active JP4861862B2 (en) 2007-03-08 2007-03-08 Program, information storage medium, and image generation system

Country Status (1)

Country Link
JP (1) JP4861862B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5155262B2 (en) * 2009-08-07 2013-03-06 株式会社コナミデジタルエンタテインメント Image generating apparatus, image generating method, and program
CN112562050B (en) * 2020-11-27 2023-07-18 成都完美时空网络技术有限公司 Virtual object wind animation generation method and device, storage medium and terminal

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1580695A3 (en) * 1996-06-05 2007-08-29 Sega Corporation Image processing for a game
JP4057760B2 (en) * 2000-04-10 2008-03-05 株式会社バンダイナムコゲームス GAME DEVICE AND INFORMATION STORAGE MEDIUM
JP3428562B2 (en) * 2000-04-25 2003-07-22 株式会社スクウェア Method and recording medium for processing movement of object, and game device
JP3958527B2 (en) * 2001-03-06 2007-08-15 独立行政法人科学技術振興機構 Wind simulation system

Also Published As

Publication number Publication date
JP2008225571A (en) 2008-09-25

Similar Documents

Publication Publication Date Title
JP2006318389A (en) Program, information storage medium, and image generation system
JP4804120B2 (en) Program, information storage medium, and image generation system
US7479961B2 (en) Program, information storage medium, and image generation system
JP4804122B2 (en) Program, texture data structure, information storage medium, and image generation system
JP4651527B2 (en) Program, information storage medium, and image generation system
JP2007164557A (en) Program, information recording medium and image generation system
JP3748451B1 (en) Program, information storage medium, and image generation system
JP4749198B2 (en) Program, information storage medium, and image generation system
JP4754384B2 (en) Program, information recording medium, and image generation system
JP2006252426A (en) Program, information storage medium, and image generation system
JP2009129167A (en) Program, information storage medium, and image generation system
JP4861862B2 (en) Program, information storage medium, and image generation system
JP4073031B2 (en) Program, information storage medium, and image generation system
JP4743770B2 (en) Image generation system, program, and information storage medium
JP2010055131A (en) Program, information storage medium, and image generation system
JP4528008B2 (en) Program, information storage medium, and image generation system
US7710419B2 (en) Program, information storage medium, and image generation system
JP4754385B2 (en) Program, information recording medium, and image generation system
US7724255B2 (en) Program, information storage medium, and image generation system
JP4476040B2 (en) Program, information storage medium, and image generation system
JP2006252423A (en) Program, information storage medium and image generation system
JP4521811B2 (en) Program, information storage medium, and image generation system
JP2007164736A (en) Image generation system, program and information storage medium
JP4641831B2 (en) Program, information storage medium, and image generation system
JP2006277488A (en) Program, information storage medium and image generation system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20091126

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110725

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110810

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111007

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

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

R150 Certificate of patent or registration of utility model

Ref document number: 4861862

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20141111

Year of fee payment: 3

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

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