JP4210293B2 - Simulation apparatus, simulation method, and program - Google Patents

Simulation apparatus, simulation method, and program Download PDF

Info

Publication number
JP4210293B2
JP4210293B2 JP2006172207A JP2006172207A JP4210293B2 JP 4210293 B2 JP4210293 B2 JP 4210293B2 JP 2006172207 A JP2006172207 A JP 2006172207A JP 2006172207 A JP2006172207 A JP 2006172207A JP 4210293 B2 JP4210293 B2 JP 4210293B2
Authority
JP
Japan
Prior art keywords
support
mass point
posture
change amount
mass
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
JP2006172207A
Other languages
Japanese (ja)
Other versions
JP2008003824A (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.)
Konami Digital Entertainment Co Ltd
Original Assignee
Konami Digital Entertainment Co Ltd
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 Konami Digital Entertainment Co Ltd filed Critical Konami Digital Entertainment Co Ltd
Priority to JP2006172207A priority Critical patent/JP4210293B2/en
Publication of JP2008003824A publication Critical patent/JP2008003824A/en
Application granted granted Critical
Publication of JP4210293B2 publication Critical patent/JP4210293B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Processing Or Creating Images (AREA)
  • Image Generation (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Description

本発明は、仮想空間に配置された柔軟な布や紙など、形状可変なオブジェクトの形状の変化を簡易にシミュレートするのに好適なシミュレーション装置、シミュレーション方法、ならびに、これらをコンピュータにて実現するプログラムに関する。   The present invention realizes a simulation apparatus, a simulation method, and a computer suitable for easily simulating changes in the shape of a shape-variable object such as a flexible cloth or paper arranged in a virtual space. Regarding the program.

従来から、コンピュータグラフィックス(Computer Graphics;CG)において、人間のキャラクターが着ているマントやスカートなど、形状可変で柔軟な布や紙などをシミュレートする技術が提案されている。キャラクターの位置や姿勢(一般には、仮想空間においてキャラクターを構成する部材を表すオブジェクトの位置、および、姿勢。ここで、「姿勢」とは、基準となるある座標系の各座標軸に対する、当該キャラクターや当該オブジェクトに固定された座標系の各座標軸の向きの相違を意味する。)が変化すると、その縁等がキャラクターに連結された布等の形状も変化するからである。このような技術は、以下の文献に開示されている。
特開2005−099952号公報
2. Description of the Related Art Conventionally, in computer graphics (CG), a technique for simulating a flexible cloth or paper having a variable shape such as a cloak or a skirt worn by a human character has been proposed. Character position and posture (generally, the position and posture of an object representing a member constituting the character in the virtual space. Here, “posture” refers to the character or the position of each coordinate axis in a reference coordinate system. This means that when the coordinate axis of the coordinate system fixed to the object is different, the shape of the cloth or the like whose edges are connected to the character also changes. Such a technique is disclosed in the following document.
JP-A-2005-099952

[特許文献1]では、布・衣服・毛髪等の柔軟な物体を複数の四角形ポリゴンで構成し、その頂点を仮想的な質点として、隣り合う質点の間を仮想的なバネで連結したモデルにより、その形状を求めるクロスシミュレーション関連技術が開示されている。この際には、所定の更新間隔時間(典型的には、垂直同期割り込み周期)おきに微分方程式を数値積分して解くことになる。   [Patent Document 1] uses a model in which a flexible object such as cloth, clothes, and hair is composed of a plurality of quadrilateral polygons, the vertexes are virtual mass points, and adjacent mass points are connected by virtual springs. A cross-simulation related technique for obtaining the shape is disclosed. At this time, the differential equation is numerically integrated and solved every predetermined update interval time (typically, a vertical synchronization interrupt period).

ここで、更新間隔時間とは、数値積分の分野では「ステップ時間」「時間刻み幅」とも呼ばれ、微小時間であることが必要とされるが、「微小」の程度は適用分野に応じて様々であり、更新間隔時間を短かくすればするほど、シミュレーションの誤差は小さくなるが、数値積分に要する計算量が多くなる。   Here, the update interval time is also called “step time” or “time step size” in the field of numerical integration, and it is necessary to be a minute time, but the degree of “minute” depends on the application field. As the update interval time is shortened, the simulation error becomes smaller, but the calculation amount required for numerical integration increases.

また、クロスシミュレーションにおいては、質点の数を増やせば増やすほど、布等の形状をそれだけ正確にシミュレートできる、とも考えられるが、質点の数を増やせばそれだけ、数値積分に要する計算量が多くなる。   In cross simulations, it can be considered that the more the number of mass points, the more accurately the shape of the cloth can be simulated, but the more the number of mass points, the more computational complexity required for numerical integration. .

しかしながら、計算速度が遅く計算資源が限定された情報処理装置などにおいてこのようなシミュレーションを行う場合には、この更新間隔時間をできるだけ長くし、質点の数をできるだけ少くして、計算を簡易に済ませたいという要望は大きい。   However, when such a simulation is performed in an information processing apparatus with a slow calculation speed and limited calculation resources, the update interval time is made as long as possible and the number of mass points is made as small as possible to simplify the calculation. The desire to want is great.

一方で、更新間隔時間を長くしたり、質点の数を少なくしたりした場合に、プレイヤーなどに操作されるキャラクターに布などのオブジェクトが連結されている場合にキャラクターの動きが激しいと、バネが過度に長くなり、現実の布などの形状からかけ離れたものとなってしまう、という問題が生じる。   On the other hand, when the update interval time is lengthened or the number of mass points is decreased, and the object moved by the character etc. is connected to the character operated by the player etc. There is a problem that the length becomes excessively long, and the shape becomes far away from the shape of an actual cloth or the like.

このようなシミュレーションをリアルタイムに行う必要がないCG映画製作では、更新間隔時間をより短くしたり、質点の数を増やすことによってこの問題を解決することも不可能ではないが、ゲーム装置においてシミュレーションを行う場合には、リアルタイム性が必要となるため、更新間隔時間をより短くしたり質点の数を増やす手法を採用することはできず、新たな技術が求められている。   In CG movie production where there is no need to perform such simulation in real time, it is not impossible to solve this problem by shortening the update interval time or increasing the number of mass points. When performing, real time property is required, and therefore, it is not possible to adopt a method of shortening the update interval time or increasing the number of mass points, and a new technique is required.

本発明は、上記のような課題を解決するもので、仮想空間に配置された柔軟な布や紙など、形状可変なオブジェクトの形状の変化を簡易にシミュレートするのに好適なシミュレーション装置、シミュレーション方法、ならびに、これらをコンピュータにて実現するプログラムを提供することを目的とする。   The present invention solves the above-described problems, and is a simulation device and simulation suitable for easily simulating changes in the shape of a shape-variable object such as a flexible cloth or paper arranged in a virtual space. It is an object of the present invention to provide a method and a program for realizing the method on a computer.

以上の目的を達成するため、本発明の原理にしたがって、下記の発明を開示する。   In order to achieve the above object, the following invention is disclosed in accordance with the principle of the present invention.

本発明の第1の観点に係るシミュレーション装置は、記憶部、支持計算部、支持修正部、質点計算部、支持更新部、質点更新部を備え、以下のように構成する。   The simulation apparatus according to the first aspect of the present invention includes a storage unit, a support calculation unit, a support correction unit, a mass point calculation unit, a support update unit, and a mass point update unit, and is configured as follows.

ここで、シミュレーションの対象は、仮想空間内に配置される支持オブジェクトの位置および姿勢と、複数の質点オブジェクトの位置であり、当該仮想空間内において、複数の質点オブジェクトのそれぞれは、当該支持オブジェクトもしくは当該複数の質点オブジェクトのうち他の質点オブジェクトと仮想弾性体を介して連結されている。   Here, the targets of the simulation are the position and orientation of the support object arranged in the virtual space, and the positions of the plurality of mass point objects. In the virtual space, each of the plurality of mass point objects is the support object or Among the plurality of mass point objects, they are connected to other mass point objects via virtual elastic bodies.

また、記憶部は、仮想空間内に配置される支持オブジェクトの位置および姿勢と、複数の質点オブジェクトの位置と、を記憶する。   In addition, the storage unit stores the position and orientation of the support object arranged in the virtual space, and the positions of the plurality of mass point objects.

スカートをあらわす布等の物体は、仮想空間では、典型的には、仮想弾性体(仮想的なバネ等)によって互いに二次元面的に連結された質点オブジェクトにより表現され、その縁の一部は、キャラクターの胴体をあらわす支持オブジェクトに連結されている。   In a virtual space, an object such as a cloth representing a skirt is typically represented by a mass object that is two-dimensionally connected to each other by a virtual elastic body (virtual spring or the like), and a part of its edge is , Connected to a support object representing the character's torso.

人間がはいていない状態のスカートは、二次元平面としての広がりを有するが、人間がスカートをはくと、全体の形状は概ね円錐台の斜面の形状となり、しわやひだができて凹凸も生じるため、質点オブジェクトの位置は実際には三次元的な分布を呈する。   A skirt without a human being spreads as a two-dimensional plane, but when a human wears a skirt, the overall shape is roughly the shape of a truncated cone, resulting in wrinkles and folds and irregularities. Therefore, the position of the mass object actually exhibits a three-dimensional distribution.

すなわち、ここでいう「二次元面的」とは、ある基本状態において、ある質点オブジェクトは、その周囲に配置される質点オブジェクトとの間で仮想弾性体により連結される、という意味である。   That is, “two-dimensional surface” here means that in a certain basic state, a certain mass point object is connected to a mass point object arranged around it by a virtual elastic body.

ここで、支持オブジェクトについては、仮想空間内における位置および姿勢(向き)を記憶する必要があるが、質点オブジェクトについては、位置がわかれば十分なことが多い。もちろん、シミュレートされる物体の種類によっては、質点オブジェクトにもついて姿勢の情報をさらに管理することとしても良い。   Here, for the support object, it is necessary to store the position and orientation (orientation) in the virtual space, but for the mass object, it is often sufficient to know the position. Of course, depending on the type of object to be simulated, the posture information may be further managed for the mass object.

一方、支持計算部は、更新間隔時間の経過による当該支持オブジェクトの位置および姿勢の変化を表す支持変化量を計算する。   On the other hand, the support calculation unit calculates a support change amount representing a change in the position and posture of the support object with the elapse of the update interval time.

ここで考慮されるのは、支持オブジェクトに与えられる外力やユーザからの指示入力の種類などのパラメータであり、現実世界の物理法則に対応する法則に基づいて、物理シミュレーションを行って更新間隔時間後の支持オブジェクトの位置および姿勢を計算する。このときには、外力として、重力や風力などを想定することもありうる。   Here, parameters such as the external force applied to the support object and the type of instruction input from the user are taken into account, and a physical simulation is performed based on the law corresponding to the physical law of the real world, after the update interval time. Calculate the position and orientation of the support object. At this time, gravity, wind force, or the like may be assumed as the external force.

なお、質点オブジェクトと支持オブジェクトとを結ぶ仮想弾性体による弾性力は、一般には小さいと考えられるので、支持オブジェクトの位置および姿勢の変化を計算する場合には、当該弾性力を無視する手法を採用しても良いことが多い。   Note that the elastic force generated by the virtual elastic body connecting the mass point object and the support object is generally considered to be small. Therefore, when calculating changes in the position and orientation of the support object, a method of ignoring the elastic force is used. It is often good to do.

支持変化量としては、支持オブジェクトに固定される座標系の原点がグローバル座標系においてどれだけ移動するかを表す位置の変化量と、支持オブジェクトに固定される座標系の姿勢がグローバル座標系においてどれだけ回転するかを表す姿勢の変化量の2つを想定するのが典型的である。   The amount of change in support is the amount of change in the position that indicates how much the origin of the coordinate system fixed to the support object moves in the global coordinate system, and the amount of change in the coordinate system fixed to the support object in the global coordinate system. Typically, it is assumed that the amount of change in posture that represents only the rotation amount.

一方、支持修正部は、計算された支持変化量を所定の閾値を超えないように修正した支持修正量を計算する。   On the other hand, the support correction unit calculates a support correction amount in which the calculated support change amount is corrected so as not to exceed a predetermined threshold.

支持変化量の大きさが所定の閾値を超えた場合には、仮想弾性体の変形量がきわめて大きくなり、現実に即したシミュレーションができなくなる可能性が高い。そこで、仮想弾性体の変形量を抑えるために、支持変化量よりも小さい支持修正量を考え、これに基づいて、後述するように、クロスシミュレーションを行うのである。   When the magnitude of the support change amount exceeds a predetermined threshold value, the deformation amount of the virtual elastic body becomes extremely large, and there is a high possibility that a realistic simulation cannot be performed. Therefore, in order to suppress the deformation amount of the virtual elastic body, a support correction amount smaller than the support change amount is considered, and based on this, a cross simulation is performed as described later.

さらに、質点計算部は、記憶された当該支持オブジェクトの位置および姿勢から計算された支持修正量だけ移動した位置および姿勢と、記憶された当該複数の質点オブジェクトの位置と、から、当該複数の質点オブジェクトのそれぞれについて、
(a)当該質点オブジェクトが連結される仮想弾性体が当該質点オブジェクトに及ぼす力を計算し、
(b)当該更新間隔時間が経過した後の、当該支持オブジェクトに対する当該質点オブジェクトの相対的な位置を表す質点変化量を、当該計算された力から計算する。
Further, the mass point calculation unit calculates the plurality of mass points from the position and posture moved by the support correction amount calculated from the stored position and posture of the support object and the stored positions of the plurality of mass point objects. For each of the objects
(A) calculating the force exerted on the mass point object by the virtual elastic body to which the mass point object is connected;
(B) A mass change amount representing the relative position of the mass object with respect to the support object after the update interval time has elapsed is calculated from the calculated force.

すなわち、本来ならば大きく変化したはずの支持オブジェクトの位置と姿勢の変化を適宜修正してある程度の大きさに抑制し、抑制された位置および姿勢の変化に基づいて、各質点オブジェクト、特に、支持オブジェクトに連結される質点オブジェクトの位置の変化を計算する。支持オブジェクトの位置や姿勢が変化すると、支持オブジェクトと質点オブジェクトとを連結する仮想弾性体の長さも変化する。したがって、この長さの変化に応じた弾性力が質点オブジェクトに印加される。この際に、重力や風力を考慮にいれて計算を行うこともできる。また、質点変化量を計算するための座標系としては、支持オブジェクトに固定された座標系を採用することが望ましい。   In other words, changes in the position and orientation of the support object that should have changed greatly are appropriately corrected to suppress the size to a certain extent, and each mass point object, in particular, the support, based on the suppressed change in position and orientation. Calculate the change in position of the mass object connected to the object. When the position and orientation of the support object change, the length of the virtual elastic body that connects the support object and the mass point object also changes. Accordingly, an elastic force corresponding to the change in length is applied to the mass point object. At this time, the calculation can be performed in consideration of gravity and wind power. Further, it is desirable to adopt a coordinate system fixed to the support object as the coordinate system for calculating the mass change amount.

一方、支持更新部は、記憶部に記憶される支持オブジェクトの位置および姿勢から計算された支持変化量だけ移動した位置および姿勢で、当該支持オブジェクトの位置および姿勢を更新する。   On the other hand, the support update unit updates the position and posture of the support object with the position and posture moved by the support change amount calculated from the position and posture of the support object stored in the storage unit.

支持オブジェクトについては、計算された支持変化量に基づいて、その位置および姿勢を更新する、というものである。   For the support object, the position and orientation are updated based on the calculated support change amount.

さらに、質点更新部は、記憶部に記憶される複数の質点オブジェクトの位置のそれぞれを、位置および姿勢が更新された当該支持オブジェクトの位置から、当該質点オブジェクトに対して計算された質点変化量だけ移動した位置で、当該質点オブジェクトの位置を更新する。   Further, the mass point updating unit converts each of the positions of the plurality of mass point objects stored in the storage unit from the position of the supporting object whose position and orientation are updated by the amount of mass point change calculated for the mass point object. The position of the mass point object is updated with the moved position.

質点オブジェクトについては、まず支持変化量だけ移動することにより、支持オブジェクトに固定される座標系における座標を変化させないままに移動する。そして、当該支持オブジェクトに固定される座標系において、その質点オブジェクトについて計算された質点変化量に基づいて、その質点オブジェクトの位置を移動させるのである。   The mass point object is moved without changing the coordinates in the coordinate system fixed to the support object by first moving by the support change amount. Then, in the coordinate system fixed to the support object, the position of the mass point object is moved based on the mass point change amount calculated for the mass point object.

本発明によれば、支持オブジェクトと質点オブジェクトを連結する仮想弾性体の長さが長くなりすぎるためにシミュレーション結果が不自然になることを防止し、クロスシミュレーションの時間単位である更新間隔時間がある程度長くとも、適切なクロスシミュレーションを行うことができるようになる。   According to the present invention, it is possible to prevent the simulation result from becoming unnatural due to the length of the virtual elastic body that connects the support object and the mass point object being too long, and the update interval time that is the time unit of the cross simulation is to some extent. Even at the longest, an appropriate cross simulation can be performed.

また、本発明のシミュレーション装置において、支持修正部は、計算された支持変化量を、単調増加し極限が当該所定の閾値以下である内分関数に適用して、当該支持修正量を計算するように構成することができる。   In the simulation apparatus of the present invention, the support correction unit calculates the support correction amount by applying the calculated support change amount to an internal function whose monotonously increases and the limit is equal to or less than the predetermined threshold. Can be configured.

たとえば、支持変化量のうち位置に係る変化量について考えた場合には、支持オブジェクトの現在の位置と、現在の位置に当該位置に係る変化量だけ加算した位置と、を内分する位置が、現在の位置に支持修正量の位置に係る部分だけ加算した位置と一致するようにする。   For example, when considering the change amount related to the position among the support change amounts, the position that internally divides the current position of the support object and the position obtained by adding the change amount related to the position to the current position, The current position is matched with the position obtained by adding only the portion related to the position of the support correction amount.

また、支持変化量のうち姿勢に係る変化量について考えた場合には、当該変化量は、ある軸のまわりをある回転角度だけ回転させることとして表現されるが、修正量に係る回転角度を0度と当該角度を内分する角度にすることによって、内分を行うことができる。   Further, when considering the change amount related to the posture among the support change amounts, the change amount is expressed as rotating around a certain axis by a certain rotation angle, but the rotation angle relating to the correction amount is set to 0. The internal division can be performed by setting the angle and the angle to internally divide the angle.

本発明は、上記発明の好適実施形態に係るものであり、支持修正量を支持変化量から求める際に、適切な関数を選択することで、所定の閾値を超えないように計算することができるようになる。   The present invention relates to a preferred embodiment of the invention described above, and can be calculated so as not to exceed a predetermined threshold by selecting an appropriate function when determining the support correction amount from the support change amount. It becomes like this.

また、本発明のシミュレーション装置において、支持修正部における内分関数は、当該支持変化量のうち位置の変化量に対して適用される位置内分関数と、当該支持変化量のうち姿勢の変化量に対して適用される姿勢内分関数と、からなり、当該位置内分関数は、当該位置の変化量の上限値に0以上1以下の係数を乗じる単調増加関数であり、当該姿勢内分関数は、当該姿勢の変化に係る軸周りの回転角の上限値に0以上1以下の係数を乗じる単調増加関数であるように構成することができる。   In the simulation apparatus of the present invention, the internal division function in the support correction unit includes a position internal function applied to a position change amount among the support change amounts and a posture change amount among the support change amounts. The position internal function is a monotonically increasing function that multiplies the upper limit of the change amount of the position by a coefficient of 0 or more and 1 or less, and the position internal function Can be configured to be a monotonically increasing function by multiplying the upper limit value of the rotation angle around the axis related to the change in the posture by a coefficient of 0 or more and 1 or less.

本発明は、上記発明の好適実施形態にかかるものであり、支持変化量に対して0と1との間の係数を乗じることで、支持修正量を求めるため、容易に支持修正量を計算することができるようになる。   The present invention is according to a preferred embodiment of the invention described above, and by calculating a support correction amount by multiplying a support change amount by a coefficient between 0 and 1, the support correction amount is easily calculated. Will be able to.

また、本発明のシミュレーション装置において、質点計算部は、当該位置内分関数に係る係数の逆数もしくは当該係数の逆数の自乗を当該仮想弾性体の弾性係数に乗じて、当該質点変化量を計算するように構成することができる。   In the simulation device of the present invention, the mass point calculation unit calculates the amount of change in the mass point by multiplying the elastic coefficient of the virtual elastic body by the reciprocal of the coefficient relating to the position internal function or the square of the reciprocal of the coefficient. It can be constituted as follows.

シミュレーションの適用分野によっては、上記発明で十分な精度のシミュレーションができる場合も多いが、上記発明では、質点オブジェクトの移動についての時間の進みは、シミュレーション時間に対して遅くなるものと考えられる。そこで、質点オブジェクトに印加される外力に対して、修正のための係数の逆数等を乗じることにより、外力の大きさを大きくし、質点オブジェクトの移動を速くして、シミュレーション時間に対する遅れを補償するものである。   Depending on the field of application of the simulation, the above invention can often perform a simulation with sufficient accuracy. However, in the above invention, it is considered that the advance of the time for the movement of the mass object is delayed with respect to the simulation time. Therefore, by multiplying the external force applied to the mass object by the reciprocal of the coefficient for correction, the magnitude of the external force is increased, the movement of the mass object is accelerated, and the delay with respect to the simulation time is compensated. Is.

外力としては、仮想弾性体による弾性力を想定するが、重力や風力などが印加される場合には、当該重力や風力についても同様に係数の逆数等を乗じることにより、遅れを補償することとしても良い。   As an external force, an elastic force due to a virtual elastic body is assumed, but when gravity or wind force is applied, the gravity and wind force are similarly multiplied by the inverse of the coefficient to compensate for the delay. Also good.

本発明によれば、質点オブジェクトに印加される外力に係数の逆数等を乗じることにより、質点オブジェクトの移動の時間的な遅れを補償して、よりリアルな運動をさせることができるようになる。   According to the present invention, by multiplying the external force applied to the mass point object by the reciprocal of the coefficient or the like, it becomes possible to compensate for the time delay of the movement of the mass point object and to make a more realistic motion.

また、本発明のシミュレーション装置は、画像生成部を備え、画像生成部は、記憶される複数の質点オブジェクトを頂点とするポリゴンに所定のテクスチャを貼り込んで、当該支持オブジェクトと、当該支持オブジェクトに連結される可変形オブジェクトと、の画像を生成するように構成することができる。   The simulation apparatus according to the present invention further includes an image generation unit, and the image generation unit pastes a predetermined texture on a polygon having a plurality of stored mass point objects as vertices, and adds the support object and the support object. It can be configured to generate an image of a deformable object to be connected.

本発明は、上記発明の好適実施形態に係るものであり、質点オブジェクトを頂点とするポリゴンがスカートなどの形状に合わせて定義されており、当該ポリゴンに布などの表面の質感を表すテクスチャを貼り込むことにより、柔らかに形状を変化させる可変形オブジェクトを生成することができるようになる。   The present invention relates to a preferred embodiment of the above invention, wherein a polygon having a mass point object as a vertex is defined in accordance with a shape such as a skirt, and a texture representing a texture of a surface such as a cloth is attached to the polygon. As a result, it becomes possible to generate a deformable object whose shape is softly changed.

本発明のその他の観点に係るシミュレーション方法は、仮想空間内に配置される支持オブジェクトの位置および姿勢と、複数の質点オブジェクトの位置をシミュレーションの対象とし、複数の質点オブジェクトのそれぞれは、当該支持オブジェクトもしくは当該複数の質点オブジェクトのうち他の質点オブジェクトと仮想弾性体を介して連結されている。   In the simulation method according to another aspect of the present invention, the position and orientation of the support object arranged in the virtual space and the positions of the plurality of mass point objects are to be simulated, and each of the plurality of mass point objects is the support object. Alternatively, it is connected to another mass point object among the plurality of mass point objects via a virtual elastic body.

そして、当該シミュレーション方法は、支持オブジェクトの位置および姿勢と、複数の質点オブジェクトの位置と、を記憶する記憶部、支持計算部、支持修正部、質点計算部、支持更新部、質点更新部を備えるシミュレーション装置にて実行され、支持計算工程、支持修正工程、質点計算工程、支持更新工程、質点更新工程を備え、以下のように構成する。   The simulation method includes a storage unit, a support calculation unit, a support correction unit, a mass point calculation unit, a support update unit, and a mass point update unit that store the position and orientation of the support object and the positions of a plurality of mass point objects. It is executed by the simulation apparatus and includes a support calculation process, a support correction process, a mass point calculation process, a support update process, and a mass point update process, and is configured as follows.

すなわち、支持計算工程では、支持計算部が、更新間隔時間の経過による当該支持オブジェクトの位置および姿勢の変化を表す支持変化量を計算する。   That is, in the support calculation step, the support calculation unit calculates a support change amount representing a change in the position and posture of the support object with the elapse of the update interval time.

一方、支持修正工程では、支持修正部が、計算された支持変化量を所定の閾値を超えないように修正した支持修正量を計算する。   On the other hand, in the support correction step, the support correction unit calculates a support correction amount in which the calculated support change amount is corrected so as not to exceed a predetermined threshold.

さらに、質点計算工程では、質点計算部が、記憶された当該支持オブジェクトの位置および姿勢に計算された支持修正量だけ移動した位置および姿勢と、記憶された当該複数の質点オブジェクトの位置と、から、当該複数の質点オブジェクトのそれぞれについて、当該質点オブジェクトが連結される仮想弾性体が当該質点オブジェクトに及ぼす力による当該更新間隔時間の経過による当該質点オブジェクトの当該支持オブジェクトを基準とする相対的な位置を表す質点変化量を計算する。   Further, in the mass point calculation step, the mass point calculation unit is based on the position and posture moved by the support correction amount calculated for the stored position and posture of the support object, and the stored positions of the plurality of mass point objects. , For each of the plurality of mass point objects, the relative position of the mass point object with respect to the support object as a result of the lapse of the update interval time due to the force exerted on the mass point object by the virtual elastic body to which the mass point object is connected The change in mass point representing is calculated.

そして、支持更新工程では、支持更新部が、記憶部に記憶される支持オブジェクトの位置および姿勢から計算された支持変化量だけ移動した位置および姿勢で、当該支持オブジェクトの位置および姿勢を更新する。   Then, in the support update step, the support update unit updates the position and posture of the support object with the position and posture moved by the support change amount calculated from the position and posture of the support object stored in the storage unit.

一方、質点更新工程では、質点更新部が、記憶部に記憶される複数の質点オブジェクトの位置のそれぞれに対して、当該位置から計算された支持変化量だけ移動し、さらに当該質点オブジェクトに対して計算された質点変化量だけ当該位置および姿勢が更新された支持オブジェクトを基準に移動した位置で、当該質点オブジェクトの位置を更新する。   On the other hand, in the mass point updating step, the mass point updating unit moves to each of the positions of the plurality of mass point objects stored in the storage unit by the support change amount calculated from the position, and further to the mass point object. The position of the mass point object is updated at a position moved with reference to the support object whose position and orientation are updated by the calculated mass point change amount.

本発明のその他の観点に係るプログラムは、コンピュータを上記のシミュレーション装置として機能させ、コンピュータに上記のシミュレーション方法を実行させるように構成する。   A program according to another aspect of the present invention is configured to cause a computer to function as the simulation apparatus and to cause the computer to execute the simulation method.

また、本発明のプログラムは、コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、半導体メモリ等のコンピュータ読取可能な情報記憶媒体に記録することができる。   The program of the present invention can be recorded on a computer-readable information storage medium such as a compact disk, flexible disk, hard disk, magneto-optical disk, digital video disk, magnetic tape, and semiconductor memory.

上記プログラムは、プログラムが実行されるコンピュータとは独立して、コンピュータ通信網を介して配布・販売することができる。また、上記情報記憶媒体は、コンピュータとは独立して配布・販売することができる。   The above program can be distributed and sold via a computer communication network independently of the computer on which the program is executed. The information storage medium can be distributed and sold independently from the computer.

本発明によれば、仮想空間に配置された柔軟な布や紙など、形状可変なオブジェクトの形状の変化を簡易にシミュレートするのに好適なシミュレーション装置、シミュレーション方法、ならびに、これらをコンピュータにて実現するプログラムを提供することができる。   According to the present invention, a simulation apparatus, a simulation method, and a computer suitable for easily simulating changes in the shape of a shape-variable object such as a flexible cloth or paper arranged in a virtual space, A program to be realized can be provided.

以下に本発明の実施形態を説明する。以下では、理解を容易にするため、ゲーム用の情報処理装置を利用して本発明が実現される実施形態を説明するが、以下に説明する実施形態は説明のためのものであり、本願発明の範囲を制限するものではない。したがって、当業者であればこれらの各要素もしくは全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。   Embodiments of the present invention will be described below. In the following, for ease of understanding, an embodiment in which the present invention is realized using a game information processing device will be described. However, the embodiment described below is for explanation, and the present invention is described. It does not limit the range. Therefore, those skilled in the art can employ embodiments in which each or all of these elements are replaced with equivalent ones, and these embodiments are also included in the scope of the present invention.

図1は、プログラムを実行することにより、本発明のシミュレーション装置の機能を果たす典型的な情報処理装置の概要構成を示す模式図である。以下、本図を参照して説明する。   FIG. 1 is a schematic diagram showing a schematic configuration of a typical information processing apparatus that functions as a simulation apparatus of the present invention by executing a program. Hereinafter, a description will be given with reference to FIG.

情報処理装置100は、CPU(Central Processing Unit)101と、ROM(Read Only Memory) 102と、RAM(Random Access Memory)103と、インターフェイス104と、コントローラ105と、外部メモリ106と、画像処理部107と、DVD−ROM(Digital Versatile Disc ROM)ドライブ108と、NIC(Network Interface Card)109と、音声処理部110と、マイク111と、を備える。   The information processing apparatus 100 includes a CPU (Central Processing Unit) 101, a ROM (Read Only Memory) 102, a RAM (Random Access Memory) 103, an interface 104, a controller 105, an external memory 106, and an image processing unit 107. A DVD-ROM (Digital Versatile Disc ROM) drive 108, a NIC (Network Interface Card) 109, an audio processing unit 110, and a microphone 111.

ゲーム用のプログラムおよびデータを記憶したDVD−ROMをDVD−ROMドライブ108に装着して、情報処理装置100の電源を投入することにより、当該プログラムが実行され、本実施形態のシミュレーション装置が実現される。   A DVD-ROM storing a game program and data is loaded into the DVD-ROM drive 108 and the information processing apparatus 100 is turned on to execute the program, thereby realizing the simulation apparatus of the present embodiment. The

CPU 101は、情報処理装置100全体の動作を制御し、各構成要素と接続され制御信号やデータをやりとりする。また、CPU 101は、レジスタ(図示せず)という高速アクセスが可能な記憶域に対してALU(Arithmetic Logic Unit)(図示せず)を用いて加減乗除等の算術演算や、論理和、論理積、論理否定等の論理演算、ビット和、ビット積、ビット反転、ビットシフト、ビット回転等のビット演算などを行うことができる。さらに、マルチメディア処理対応のための加減乗除等の飽和演算や、三角関数等、ベクトル演算などを高速に行えるように、CPU 101自身が構成されているものや、コプロセッサを備えて実現するものがある。   The CPU 101 controls the overall operation of the information processing apparatus 100 and is connected to each component to exchange control signals and data. Further, the CPU 101 uses arithmetic operations such as addition / subtraction / multiplication / division, logical sum, logical product, etc. using an ALU (Arithmetic Logic Unit) (not shown) for a storage area called a register (not shown) that can be accessed at high speed. , Logic operations such as logical negation, bit operations such as bit sum, bit product, bit inversion, bit shift, and bit rotation can be performed. In addition, the CPU 101 itself is configured so that saturation operations such as addition / subtraction / multiplication / division for multimedia processing, vector operations such as trigonometric functions, etc. can be performed at a high speed, and those provided with a coprocessor. There is.

ROM 102には、電源投入直後に実行されるIPL(Initial Program Loader)が記録され、これが実行されることにより、DVD−ROMに記録されたプログラムをRAM 103に読み出してCPU 101による実行が開始される。また、ROM 102には、情報処理装置100全体の動作制御に必要なオペレーティングシステムのプログラムや各種のデータが記録される。   The ROM 102 records an IPL (Initial Program Loader) that is executed immediately after the power is turned on, and when this is executed, the program recorded on the DVD-ROM is read out to the RAM 103 and execution by the CPU 101 is started. The The ROM 102 stores an operating system program and various data necessary for operation control of the entire information processing apparatus 100.

RAM 103は、データやプログラムを一時的に記憶するためのもので、DVD−ROMから読み出したプログラムやデータ、その他ゲームの進行やチャット通信に必要なデータが保持される。また、CPU 101は、RAM 103に変数領域を設け、当該変数に格納された値に対して直接ALUを作用させて演算を行ったり、RAM 103に格納された値を一旦レジスタに格納してからレジスタに対して演算を行い、演算結果をメモリに書き戻す、などの処理を行う。   The RAM 103 is for temporarily storing data and programs, and holds programs and data read from the DVD-ROM and other data necessary for game progress and chat communication. Further, the CPU 101 provides a variable area in the RAM 103 and performs an operation by directly operating the ALU on the value stored in the variable, or temporarily stores the value stored in the RAM 103 in the register. Perform operations such as performing operations on registers and writing back the operation results to memory.

インターフェイス104を介して接続されたコントローラ105は、ユーザがゲーム実行の際に行う操作入力を受け付ける。   The controller 105 connected via the interface 104 receives an operation input performed when the user executes the game.

インターフェイス104を介して着脱自在に接続された外部メモリ106には、ゲーム等のプレイ状況(過去の成績等)を示すデータ、ゲームの進行状態を示すデータ、ネットワーク対戦の場合のチャット通信のログ(記録)のデータなどが書き換え可能に記憶される。ユーザは、コントローラ105を介して指示入力を行うことにより、これらのデータを適宜外部メモリ106に記録することができる。   The external memory 106 detachably connected via the interface 104 stores data indicating game play status (past results, etc.), data indicating game progress, and log of chat communication in the case of a network match ( Data) is stored in a rewritable manner. The user can record these data in the external memory 106 as appropriate by inputting an instruction via the controller 105.

DVD−ROMドライブ108に装着されるDVD−ROMには、ゲームを実現するためのプログラムとゲームに付随する画像データや音声データが記録される。CPU 101の制御によって、DVD−ROMドライブ108は、これに装着されたDVD−ROMに対する読み出し処理を行って、必要なプログラムやデータを読み出し、これらはRAM 103等に一時的に記憶される。   A DVD-ROM mounted on the DVD-ROM drive 108 stores a program for realizing the game and image data and audio data associated with the game. Under the control of the CPU 101, the DVD-ROM drive 108 performs a reading process on the DVD-ROM loaded therein, reads out necessary programs and data, and these are temporarily stored in the RAM 103 or the like.

画像処理部107は、DVD−ROMから読み出されたデータをCPU 101や画像処理部107が備える画像演算プロセッサ(図示せず)によって加工処理した後、これを画像処理部107が備えるフレームメモリ(図示せず)に記録する。フレームメモリに記録された画像情報は、所定の同期タイミングでビデオ信号に変換され画像処理部107に接続されるモニタ(図示せず)へ出力される。これにより、各種の画像表示が可能となる。   The image processing unit 107 processes the data read from the DVD-ROM by an image arithmetic processor (not shown) included in the CPU 101 or the image processing unit 107, and then processes the processed data on a frame memory ( (Not shown). The image information recorded in the frame memory is converted into a video signal at a predetermined synchronization timing and output to a monitor (not shown) connected to the image processing unit 107. Thereby, various image displays are possible.

画像演算プロセッサは、2次元の画像の重ね合わせ演算やαブレンディング等の透過演算、各種の飽和演算を高速に実行できる。   The image calculation processor can execute a two-dimensional image overlay calculation, a transmission calculation such as α blending, and various saturation calculations at high speed.

また、仮想3次元空間に配置され、各種のテクスチャ情報が付加されたポリゴン情報を、Zバッファ法によりレンダリングして、所定の視点位置から仮想3次元空間に配置されたポリゴンを所定の視線の方向へ俯瞰したレンダリング画像を得る演算の高速実行も可能である。   Also, polygon information arranged in the virtual three-dimensional space and added with various texture information is rendered by the Z buffer method, and the polygon arranged in the virtual three-dimensional space from the predetermined viewpoint position is determined in the direction of the predetermined line of sight It is also possible to perform high-speed execution of operations for obtaining rendered images.

さらに、CPU 101と画像演算プロセッサが協調動作することにより、文字の形状を定義するフォント情報にしたがって、文字列を2次元画像としてフレームメモリへ描画したり、各ポリゴン表面へ描画することが可能である。   Further, the CPU 101 and the image arithmetic processor operate in a coordinated manner, so that a character string can be drawn as a two-dimensional image in a frame memory or drawn on the surface of each polygon according to font information that defines the character shape. is there.

NIC 109は、情報処理装置100をインターネット等のコンピュータ通信網(図示せず)に接続するためのものであり、LAN(Local Area Network)を構成する際に用いられる10BASE−T/100BASE−T規格にしたがうものや、電話回線を用いてインターネットに接続するためのアナログモデム、ISDN(Integrated Services Digital Network)モデム、ADSL(Asymmetric Digital Subscriber Line)モデム、ケーブルテレビジョン回線を用いてインターネットに接続するためのケーブルモデム等と、これらとCPU 101との仲立ちを行うインターフェース(図示せず)により構成される。   The NIC 109 is used to connect the information processing apparatus 100 to a computer communication network (not shown) such as the Internet, and is based on the 10BASE-T / 100BASE-T standard used when configuring a LAN (Local Area Network). To connect to the Internet using an analog modem, ISDN (Integrated Services Digital Network) modem, ADSL (Asymmetric Digital Subscriber Line) modem, or cable television line. A cable modem or the like and an interface (not shown) that mediates between these and the CPU 101 are configured.

音声処理部110は、DVD−ROMから読み出した音声データをアナログ音声信号に変換し、これに接続されたスピーカ(図示せず)から出力させる。また、CPU 101の制御の下、ゲームの進行の中で発生させるべき効果音や楽曲データを生成し、これに対応した音声をスピーカから出力させる。   The audio processing unit 110 converts audio data read from the DVD-ROM into an analog audio signal and outputs the analog audio signal from a speaker (not shown) connected thereto. Further, under the control of the CPU 101, sound effects and music data to be generated during the progress of the game are generated, and sound corresponding to this is output from the speaker.

音声処理部110では、DVD−ROMに記録された音声データがMIDIデータである場合には、これが有する音源データを参照して、MIDIデータをPCMデータに変換する。また、ADPCM形式やOgg Vorbis形式等の圧縮済音声データである場合には、これを展開してPCMデータに変換する。PCMデータは、そのサンプリング周波数に応じたタイミングでD/A(Digital/Analog)変換を行って、スピーカに出力することにより、音声出力が可能となる。   When the audio data recorded on the DVD-ROM is MIDI data, the audio processing unit 110 refers to the sound source data included in the audio data and converts the MIDI data into PCM data. If the compressed audio data is in ADPCM format or Ogg Vorbis format, it is expanded and converted to PCM data. The PCM data can be output by performing D / A (Digital / Analog) conversion at a timing corresponding to the sampling frequency and outputting it to a speaker.

さらに、情報処理装置100には、インターフェイス104を介してマイク111を接続することができる。この場合、マイク111からのアナログ信号に対しては、適当なサンプリング周波数でA/D変換を行い、PCM形式のディジタル信号として、音声処理部110でのミキシング等の処理ができるようにする。   Furthermore, a microphone 111 can be connected to the information processing apparatus 100 via the interface 104. In this case, the analog signal from the microphone 111 is subjected to A / D conversion at an appropriate sampling frequency so that processing such as mixing in the sound processing unit 110 can be performed as a PCM format digital signal.

このほか、情報処理装置100は、ハードディスク等の大容量外部記憶装置を用いて、ROM 102、RAM 103、外部メモリ106、DVD−ROMドライブ108に装着されるDVD−ROM等と同じ機能を果たすように構成してもよい。   In addition, the information processing apparatus 100 uses a large-capacity external storage device such as a hard disk so as to perform the same function as the ROM 102, the RAM 103, the external memory 106, the DVD-ROM mounted on the DVD-ROM drive 108, and the like. You may comprise.

以上で説明した情報処理装置100は、いわゆる「コンシューマ向けテレビゲーム装置」に相当するものであるが、仮想空間を表示するような画像処理を行うものであれば本発明を実現することができる。したがって、携帯電話、携帯ゲーム機器、カラオケ装置、一般的なビジネス用コンピュータなど、種々の計算機上で本発明を実現することが可能である。   The information processing apparatus 100 described above corresponds to a so-called “consumer video game apparatus”, but the present invention can be realized as long as it performs image processing to display a virtual space. Therefore, the present invention can be realized on various computers such as a mobile phone, a portable game device, a karaoke apparatus, and a general business computer.

たとえば、一般的なコンピュータは、上記情報処理装置100と同様に、CPU、RAM、ROM、DVD−ROMドライブ、および、NICを備え、情報処理装置100よりも簡易な機能を備えた画像処理部を備え、外部記憶装置としてハードディスクを有する他、フレキシブルディスク、光磁気ディスク、磁気テープ等が利用できるようになっている。また、コントローラ105ではなく、キーボードやマウスなどを入力装置として利用する。   For example, a general computer, like the information processing apparatus 100, includes an image processing unit that includes a CPU, RAM, ROM, DVD-ROM drive, and NIC and has simpler functions than the information processing apparatus 100. In addition to having a hard disk as an external storage device, a flexible disk, a magneto-optical disk, a magnetic tape, and the like can be used. Further, not the controller 105 but a keyboard or a mouse is used as an input device.

図2は、仮想空間内に配置される支持オブジェクト、質点オブジェクト、仮想弾性体および各座標系の関係を示す説明図である。以下、本図を参照して説明する。   FIG. 2 is an explanatory diagram showing a relationship between a support object, a mass point object, a virtual elastic body, and each coordinate system arranged in the virtual space. Hereinafter, a description will be given with reference to FIG.

本図に示すように、キャラクターの胴体に相当する支持オブジェクト201には、連結点212に仮想弾性体211の一端が連結され、仮想弾性体211の他端は、質点オブジェクト206に連結されている。また、質点オブジェクト206同士も仮想弾性体211を介して連結されている。このようにして、互いに質点オブジェクト206同士は、全体としてスカートやマントの布のような形状をなしている。   As shown in the figure, one end of a virtual elastic body 211 is connected to a connection point 212 and the other end of the virtual elastic body 211 is connected to a mass point object 206 to the support object 201 corresponding to the character's body. . The mass point objects 206 are also connected to each other via the virtual elastic body 211. In this way, the mass point objects 206 form a shape like a skirt or a cloak as a whole.

仮想空間231内には、グローバル座標系236のほか、支持オブジェクト201に固定されているローカル座標系241が用意されており、グローバル座標系236とローカル座標系241との間の変換は、原点の移動と座標系の回転の2つに還元することができる。   In the virtual space 231, in addition to the global coordinate system 236, a local coordinate system 241 fixed to the support object 201 is prepared, and conversion between the global coordinate system 236 and the local coordinate system 241 is performed at the origin. It can be reduced to two: movement and rotation of the coordinate system.

支持オブジェクト201は、ユーザの指示入力等に基づいて移動したり、情報処理装置100が所定のアルゴリズムに基づいて制御するキャラクターに相当するものである。したがって、仮想空間231内を適宜移動したり、その姿勢(グローバル座標系236に対してローカル座標系241がどの軸廻りにどれだけ回転しているか、に相当する。)を変化させることができる。またこの際に、仮想空間231内に想定された物理法則にしたがうこととし、重力や風力、摩擦力などの影響を受けるようにモデル化することができる。   The support object 201 corresponds to a character that moves based on a user's instruction input or the like, or that the information processing apparatus 100 controls based on a predetermined algorithm. Accordingly, it is possible to appropriately move in the virtual space 231 and change its posture (corresponding to how much the local coordinate system 241 rotates about which axis with respect to the global coordinate system 236). At this time, it is possible to model in accordance with the physical laws assumed in the virtual space 231 and to be influenced by gravity, wind force, frictional force, and the like.

質点オブジェクト206は、布の単位面積あたりの質量をモデル化するものであり、質点オブジェクト206が均等に分布されている場合には、それぞれに布全体の質量を質点オブジェクト206の個数で割った質量が割り当てられる。もっとも、割り当てる質量は、質点オブジェクト206の分布密度やモデル化の対象となる布の形状などの特徴によって適宜変更が可能である。   The mass point object 206 models the mass per unit area of the cloth. When the mass point objects 206 are evenly distributed, the mass obtained by dividing the mass of the entire cloth by the number of the mass point objects 206, respectively. Is assigned. However, the mass to be assigned can be appropriately changed according to characteristics such as the distribution density of the mass object 206 and the shape of the cloth to be modeled.

さて、このような仮想弾性体211には、自然長が割り当てられている。自然長とは、もっとも自然な形状のときの長さであり、スカートの布などを表現する場合には、平面状に均等に布を広げた場合の質点オブジェクト206同士の距離を、その質点オブジェクト206同士を連結する仮想弾性体211の自然長とするのが一般的である。   A natural length is assigned to such a virtual elastic body 211. The natural length is the length of the most natural shape. When expressing a skirt cloth or the like, the distance between the mass point objects 206 when the cloth is evenly spread in a flat shape is represented by the mass point object. Generally, the natural length of the virtual elastic body 211 that connects the two 206 is used.

仮想弾性体211の長さ(当該仮想弾性体211が連結する質点オブジェクト206同士の距離)が自然長より長くなると、その長くなった距離に所定のバネ定数を乗じた力の弾性力(質点オブジェクト206同士を引き寄せる方向の引力)が発生する。一方、自然長より短くなると、その短くなった距離に所定のバネ定数を乗じた力の弾性力(質点オブジェクト206同士を遠ざける方向の反発力)が発生する。   When the length of the virtual elastic body 211 (the distance between the mass point objects 206 connected to the virtual elastic body 211) is longer than the natural length, the elastic force (mass point object) obtained by multiplying the long distance by a predetermined spring constant. (Attractive force in the direction of pulling 206 together) occurs. On the other hand, when the length becomes shorter than the natural length, an elastic force (repulsive force in a direction in which the mass object 206 is moved away) is generated by multiplying the shortened distance by a predetermined spring constant.

支持オブジェクト201と質点オブジェクト206を連結する仮想弾性体211は、支持オブジェクト201の移動にともなって質点オブジェクト206群を移動させるための弾性力を発生させる点で、重要な役割を果たす。一方、仮想空間231内の物理法則をシミュレートする際の時間の刻み幅(更新間隔時間)が長いと、当該仮想弾性体211の長さが異常に長くなってしまい、このような場合には、モデル化された布の表現が極めて不自然になってしまう。本実施形態では、このような状況を簡易に抑制する手法を採用する。   The virtual elastic body 211 that connects the support object 201 and the mass point object 206 plays an important role in that it generates an elastic force for moving the mass point object 206 group as the support object 201 moves. On the other hand, if the time interval (update interval time) when simulating the physical law in the virtual space 231 is long, the length of the virtual elastic body 211 becomes abnormally long. In such a case, The expression of the modeled cloth becomes extremely unnatural. In the present embodiment, a method for easily suppressing such a situation is employed.

なお、本図に示す例では、スカートを表現するため、質点オブジェクト206を扇形状に仮想弾性体211が連結しているが、適用分野や形状によって、その他の連結手法を用いることとしても良い。   In the example shown in the figure, the virtual elastic body 211 is connected in a fan shape to the mass point object 206 in order to express the skirt, but other connection methods may be used depending on the application field and shape.

図3は、仮想弾性体と質点オブジェクトの種々の連結の様子を示す説明図である。以下、本図を参照して説明する。   FIG. 3 is an explanatory diagram showing various connection states of the virtual elastic body and the mass point object. Hereinafter, a description will be given with reference to FIG.

本図(a)に示す例では、格子点状に質点オブジェクト206が配置され、仮想弾性体211が質点オブジェクト206を頂点とする正方形の辺の位置に配置されて、隣り合う質点オブジェクト206同士を連結している。最も単純な連結手法の一例である。   In the example shown in FIG. 4A, the mass point objects 206 are arranged in a lattice point shape, and the virtual elastic body 211 is arranged at the position of the square side having the mass point object 206 as a vertex so that the adjacent mass point objects 206 are arranged. It is connected. It is an example of the simplest connection method.

本図(b)に示す例では、本図(a)に示す例において、さらに、正方形の対角する頂点の間(対角線)も仮想弾性体211が連結している。本図(a)に示す連結手法にくらべて、斜め方向の変形がより自然となるという特徴を有する。   In the example shown in this figure (b), in the example shown in this figure (a), the virtual elastic bodies 211 are also connected between diagonal vertices (diagonal lines) of the square. Compared to the connection method shown in FIG. 5A, the deformation in the oblique direction is more natural.

本図(c)に示す例は、質点オブジェクト206同士を連結する仮想弾性体211が三角形の辺をなすようにするものであり、有限要素法におけるメッシュの区切り方に類似するものである。形状が正方形に限定されないため、布が任意の形状となるような場合にも適用が可能である。   The example shown in this figure (c) is such that the virtual elastic body 211 connecting the mass object 206 forms a triangular side, and is similar to the method of dividing the mesh in the finite element method. Since the shape is not limited to a square, the present invention can be applied to a case where the cloth has an arbitrary shape.

以下では、支持オブジェクト201および質点オブジェクト206の物理モデルについて、簡単に説明する。図4は、支持オブジェクト201や質点オブジェクト206等の、一般的なオブジェクトに関する位置や姿勢の変化のシミュレートの手法を示す説明図である。以下、本図を参照して説明する。   Hereinafter, the physical models of the support object 201 and the mass point object 206 will be briefly described. FIG. 4 is an explanatory diagram showing a method for simulating changes in position and orientation of general objects such as the support object 201 and the mass point object 206. Hereinafter, a description will be given with reference to FIG.

ある時点tにおいて、質量m(t)のオブジェクト401には、重心402に対して印加される重力451 m(t)gのほか、仮想弾性体211等により重心402から離れた位置に印加される外力452 f1(t),…, fN(t)が、影響を与える。 At a certain point in time t, the object 401 having the mass m (t) is applied to a position away from the center of gravity 402 by the virtual elastic body 211 and the like in addition to the gravity 451 m (t) g applied to the center of gravity 402. The external force 452 f 1 (t),..., F N (t) has an influence.

これらの重力451や複数の外力452のベクトル総和F(t)は、
F(t) = m(t)g + Σi=1 N fi(t)
The vector sum F (t) of these gravity 451 and a plurality of external forces 452 is
F (t) = m (t) g + Σ i = 1 N f i (t)

であるから、これをオブジェクト401の質量m(t)で割ると、オブジェクト401の加速度ベクトル
a(t) = F(t)/m(t)
が求められる。
Therefore, when this is divided by the mass m (t) of the object 401, the acceleration vector of the object 401 is
a (t) = F (t) / m (t)
Is required.

ある時点tにおけるオブジェクト401の重心402の位置ベクトルr(t)(基準点403を基準とする。)と速度ベクトルv(t)が判明している場合には、これより更新間隔時間Δtだけ後の時刻t+Δtにおける速度ベクトルv(t+Δt)は、
v(t+Δt) = v(t) + a(t)Δt
と近似表現することができる。また、位置ベクトルr(t+Δt)は、
r(t+Δt) = (v(t) + v(t+Δt))Δt/2
のように近似計算できる。この計算を繰り返すことにより、任意の時点rでのオブジェクト401の重心の位置r(t)をシミュレートすることができる。
When the position vector r (t) (based on the reference point 403) and the velocity vector v (t) of the center of gravity 402 of the object 401 at a certain time t are known, the update interval time Δt is later than this. The velocity vector v (t + Δt) at time t + Δt of
v (t + Δt) = v (t) + a (t) Δt
Can be approximated. The position vector r (t + Δt) is
r (t + Δt) = (v (t) + v (t + Δt)) Δt / 2
Approximate calculation can be performed as follows. By repeating this calculation, the position r (t) of the center of gravity of the object 401 at an arbitrary time point r can be simulated.

一方、姿勢の変化については、重心から離れた位置に印加される外力452を考慮する。すなわち、時刻tにおけるオブジェクト401の角速度ベクトルω(t)は、当該回転ベクトルω(t)を軸に、単位時間あたり|ω(t)|の角度だけ、オブジェクト401が回転しようとしていることをあらわす。また、オブジェクト401の姿勢ベクトルθ(t)は、角速度ベクトルω(t)を積分したものと考えることができる。   On the other hand, regarding the posture change, an external force 452 applied to a position away from the center of gravity is considered. That is, the angular velocity vector ω (t) of the object 401 at time t represents that the object 401 is about to rotate by an angle of | ω (t) | per unit time with the rotation vector ω (t) as an axis. . The posture vector θ (t) of the object 401 can be considered as an integration of the angular velocity vector ω (t).

なお、グローバル座標系236にローカル座標系241の各軸の方向を一致させた後に、この姿勢ベクトルθ(t)を軸に、角度|θ(t)|だけ回転させると、時刻tにおけるローカル座標系241の姿勢が得られるのである。   If the orientation of each axis of the local coordinate system 241 is made to coincide with the global coordinate system 236 and then rotated by the angle | θ (t) | about the orientation vector θ (t), the local coordinates at time t The posture of the system 241 is obtained.

一方、複数の外力452をベクトルf1(t),…, fN(t)とし、重心402から、外力452が印加される場所への変位453をベクトルs1(t),…, sN(t)とすると、当該オブジェクト401に対する与えられるトルクL(t)は、
L(t) = Σi=1 N si(t)×fi(t)
と表現することができ、オブジェクト401の慣性モーメント行列をM(t)とすると、
L(t) = M(t)(ω(t+Δt) - ω(t))/Δt
が成立するから、
ω(t+Δt) = ω(t) + M(t)-1L(t)Δt
と近似表現することができる。また、姿勢ベクトルn(t+Δt)についても同様に、
n(t+Δt) = (ω(t+Δt) + ω(t))Δt/2
と近似計算が可能である。
On the other hand, a plurality of external forces 452 are set as vectors f 1 (t),..., F N (t), and a displacement 453 from the center of gravity 402 to a place where the external force 452 is applied is expressed as vectors s 1 (t) ,. Assuming (t), the torque L (t) applied to the object 401 is
L (t) = Σ i = 1 N s i (t) × f i (t)
If the moment of inertia matrix of the object 401 is M (t),
L (t) = M (t) (ω (t + Δt)-ω (t)) / Δt
Because
ω (t + Δt) = ω (t) + M (t) -1 L (t) Δt
Can be approximated. Similarly, the posture vector n (t + Δt)
n (t + Δt) = (ω (t + Δt) + ω (t)) Δt / 2
Approximate calculation is possible.

一般に、位置ベクトルrを軸ベクトルc = (cx,cy,cz)の周りで角度ψだけ回転させた結果r'を求めるには、クォータニオンを利用したり、回転行列を利用することが可能である。以下では、クォータニオンを用いる手法について説明する。 In general, to obtain the result r ′ obtained by rotating the position vector r around the axis vector c = (c x , c y , c z ) by an angle ψ, it is possible to use a quaternion or a rotation matrix. Is possible. Hereinafter, a method using quaternions will be described.

さて、この回転を表すクォータニオンCは、
C = (cxsin(ψ/2),cysin(ψ/2),czsin(ψ/2),cos(ψ/2))
と表現することができる。
Now, the quaternion C representing this rotation is
C = (c x sin (ψ / 2), cy sin (ψ / 2), c z sin (ψ / 2), cos (ψ / 2))
It can be expressed as

また、位置ベクトルr = (rx,ry,rz)に対するクォータニオンRは、
R = (rx,ry,rz,0)
と表現することができる。
The quaternion R for the position vector r = (r x , r y , r z ) is
R = (r x , r y , r z , 0)
It can be expressed as

すると、クォータニオンCによって、クォータニオンRを回転させる演算は、位置ベクトルr'に対するクォータニオンをR'としたとき、
R' = C R C*
と表現できる。ここで・*はクォータニオンの共役である。
R' = (rx',ry',rz',rw')
であれば、
r' = (rx',ry',rz')
である。このほか、回転行列を用いる手法を利用しても良い。
Then, the operation for rotating the quaternion R by the quaternion C is as follows:
R '= CRC *
Can be expressed as Where * is the quaternion conjugate.
R '= (r x ', r y ', r z ', r w ')
If,
r '= (r x ', r y ', r z ')
It is. In addition, a method using a rotation matrix may be used.

以下、ベクトルcを軸にベクトルrを角度|c|だけ回転させる演算を、spin(c,r)のように表記するものとする。   Hereinafter, an operation for rotating the vector r about the vector c by an angle | c | is expressed as spin (c, r).

さて、図5は、上記のような物理モデルにしたがって、位置や姿勢の変化が計算されたときの様子を示す説明図である。以下、本図を参照して説明する。   Now, FIG. 5 is an explanatory diagram showing a state when a change in position and posture is calculated according to the physical model as described above. Hereinafter, a description will be given with reference to FIG.

本図には、支持オブジェクト201と質点オブジェクト206のそれぞれの位置の関係を図示する。ここでは、理解を容易にするため、質点オブジェクト206は支持オブジェクト201に仮想弾性体211を介して直接連結されているもの1つだけを図示し、縮尺率を適宜変更して、大袈裟に記載している。   This figure illustrates the relationship between the positions of the support object 201 and the mass point object 206. Here, for ease of understanding, only one of the mass point objects 206 that are directly connected to the support object 201 via the virtual elastic body 211 is illustrated, and the scale factor is appropriately changed and described in Oiso. ing.

また、理解を容易にするため、グローバル座標系236のZ軸とローカル座標系241のz軸は平行であり、支持オブジェクト201は、グローバル座標系236のX−Y平面(ローカル座標系241のx−y平面)内を移動して位置を変化させ、z軸(Z軸)まわりに回転して姿勢を変化させた場合を例にあげる。また、連結点212は、ローカル座標系241におけるx軸上に配置されているものとする。   Further, for ease of understanding, the Z axis of the global coordinate system 236 and the z axis of the local coordinate system 241 are parallel, and the support object 201 has the XY plane of the global coordinate system 236 (the x of the local coordinate system 241). As an example, the position is changed by moving in the (−y plane) and rotated around the z axis (Z axis). Further, it is assumed that the connection point 212 is arranged on the x axis in the local coordinate system 241.

上記のように、支持オブジェクト201について、時刻tにおける状況から時刻t+Δtにおける状況を近似計算すれば、本図に示すように、支持オブジェクト201の時刻tにおける位置r(t)および姿勢θ(t)と時刻t+Δtにおける位置r(t+Δt)および姿勢θ(t+Δt)が判明する。これらの差が、支持変化量である。   As described above, if the situation at the time t + Δt is approximately calculated from the situation at the time t with respect to the support object 201, the position r (t) and the posture θ ( The position r (t + Δt) and the posture θ (t + Δt) at time t + Δt are found. These differences are the amount of support change.

本図では、時刻tと時刻t+Δtにおける支持オブジェクト201における位置の差のベクトルをΔr、姿勢(回転ベクトルであるため、回転する角で図示している。)の差のベクトルをΔθと表している。   In this figure, the vector of the difference in position on the supporting object 201 at time t and time t + Δt is represented by Δr, and the vector of the difference in posture (represented by a rotation angle because it is a rotation vector) is represented by Δθ. ing.

すると、連結点212の時刻t+Δtにおける位置q(t+Δt)は、以下のように、時刻t+Δtにおけるローカル座標系241の原点(支持オブジェクト201の位置)から見て、ローカル座標系241の原点まわりにΔθだけ回転した位置、ということになる。
q(t+Δt) = r(t) + Δr + spin(Δθ,q(t)-r(t))
Then, the position q (t + Δt) of the connection point 212 at time t + Δt is as follows from the origin of the local coordinate system 241 (position of the support object 201) at time t + Δt as follows. That is, a position rotated by Δθ around the origin of 241.
q (t + Δt) = r (t) + Δr + spin (Δθ, q (t) -r (t))

ここで、質点オブジェクト206の位置p(t)から位置p(t+Δt)を求める場合の状況を考える。質点オブジェクト206に印加される弾性力の大きさおよび向きは、質点オブジェクト206(位置p(t))から連結点212(位置q(t))への変位ベクトル(q(t)-p(t))によって定まる、とするのが、従来のシミュレーションの手法である。   Here, consider a situation where the position p (t + Δt) is obtained from the position p (t) of the mass point object 206. The magnitude and direction of the elastic force applied to the mass point object 206 is determined by the displacement vector (q (t) −p (t) from the mass point object 206 (position p (t)) to the connection point 212 (position q (t)). )) Is determined by the conventional simulation method.

しかしながら、この変位ベクトルが、時刻tと時刻t+Δtとで、大きく異なると、すなわち、q(t+Δt)-p(t+Δt)とq(t)-p(t)が大きく異なると、シミュレーションが不自然になってしまう。このような状況が生じる場合として、ΔrやΔθが大きい場合が考えられる。そこで、本実施形態では、以下のような手法を採用する。   However, if this displacement vector differs greatly between time t and time t + Δt, that is, q (t + Δt) -p (t + Δt) and q (t) -p (t) differ greatly. The simulation becomes unnatural. As a case where such a situation occurs, a case where Δr and Δθ are large can be considered. Therefore, in this embodiment, the following method is adopted.

まず、|Δr|および|Δθ|の大きさに対して、それぞれ上限値Rおよび上限値Θを定めておく。これらの値は、シミュレーションが不自然にならないような適切な値を、たとえば実際に模擬実験を行うことによって定めることができる。   First, an upper limit value R and an upper limit value Θ are determined for the magnitudes of | Δr | and | Δθ |, respectively. These values can be determined as appropriate values so that the simulation does not become unnatural, for example, by actually performing a simulation experiment.

つぎに、値域が0から1に向かって単調に増加する関数h(・)を用意する。すなわち、h(・)は、以下のような性質を見たす関数である。
h(0) = 0
limx→∞ h(x) = 1
a<b ⇒ h(a)≦h(b)
Next, a function h (·) whose value range monotonously increases from 0 to 1 is prepared. That is, h (·) is a function that looks at the following properties.
h (0) = 0
lim x → ∞ h (x) = 1
a <b ⇒ h (a) ≦ h (b)

このような関数としては、
h(x) = x (0≦x≦1)
= 1 (1<x)
や、適当な定数Hを用いた
h(x) = 2・arctan(H・x)/π
などのほか、階段状に変化する関数を採用することもできる。
Such functions include:
h (x) = x (0 ≦ x ≦ 1)
= 1 (1 <x)
Or using an appropriate constant H
h (x) = 2 ・ arctan (H ・ x) / π
In addition to the above, it is also possible to adopt a function that changes stepwise.

そして、支持修正量のうち、位置に係る支持修正量Δsおよび姿勢に係る支持修正量Δψを
Δs = R h(|Δr|) Δr/|Δr|
Δψ = Θ h(|Δθ|) Δθ/|Δθ|
のように定める。Δs,Δψは、それぞれ、Δr,Δθのそれぞれと原点の間を内分するベクトル、すなわち、Δr,Δθのそれぞれの方向ベクトルにΔr/|Δr|,Δθ/|Δθ|に上限値R,Θを乗じ、さらに0以上1以下の係数を乗じたものである。
Then, among the support correction amounts, the support correction amount Δs related to the position and the support correction amount Δψ related to the posture are expressed as Δs = R h (| Δr |) Δr / | Δr |
Δψ = Θ h (| Δθ |) Δθ / | Δθ |
It is determined as follows. Δs and Δψ are vectors that internally divide between Δr and Δθ and the origin, that is, Δr / | Δr | and Δθ / | Δθ | are upper limit values R and Θ, respectively. Multiplied by a coefficient of 0 or more and 1 or less.

そして、支持オブジェクト201が、位置r(t)+Δs、姿勢θ(t)+Δψにあるものと仮想的に考えて、このときの仮想連結点501の位置Q(t)を求める。すなわち、
Q(t) = r(t) + Δs + spin(Δψ,q(t)-r(t))
となる。
Then, assuming that the support object 201 is at the position r (t) + Δs and the posture θ (t) + Δψ, the position Q (t) of the virtual connection point 501 at this time is obtained. That is,
Q (t) = r (t) + Δs + spin (Δψ, q (t) -r (t))
It becomes.

仮想連結点501の位置Q(t)は、時刻tにおける連結点212の位置と、時刻t+Δtにおける連結点212の位置と、を、内分する位置(線分上で内分する場合もあるし、曲線上で内分する場合もある。)と考えることができる。   The position Q (t) of the virtual connection point 501 is a position that internally divides the position of the connection point 212 at time t and the position of the connection point 212 at time t + Δt (in some cases, the position is divided internally on the line segment). Yes, it may be divided internally on the curve.)

そして、質点オブジェクト206の時刻tにおける位置p(t)から、時刻t+Δtにおける位置p(t+Δt)を求める際には、質点オブジェクト206は仮想弾性体211によって仮想連結点501と連結されている、と考えるのである。すなわち、q(t)-p(t)でもq(t+Δt)-p(t)でもなく、Q(t)-p(t)に基づいて質点オブジェクト206に対する当該仮想弾性体211による弾性力を求めるのである。   When the position p (t + Δt) at time t + Δt is obtained from the position p (t) at time t of the mass point object 206, the mass object 206 is connected to the virtual connection point 501 by the virtual elastic body 211. I think. That is, it is not q (t) -p (t) or q (t + Δt) -p (t), but based on Q (t) -p (t), the elastic force by the virtual elastic body 211 on the mass object 206 Is demanded.

Q(t)の位置はq(t+Δt)の位置よりもq(t)に近いから、支持オブジェクト201の位置が大きく変化してしまったとしても、Q(t)-p(t)の変化はある程度抑制することができる。したがって、仮想弾性体211が不自然に長く伸びてしまうような状況は防止できるのである。   Since the position of Q (t) is closer to q (t) than the position of q (t + Δt), even if the position of the support object 201 has changed greatly, Q (t) -p (t) The change can be suppressed to some extent. Therefore, the situation where the virtual elastic body 211 extends unnaturally long can be prevented.

このように、仮想連結点501に基づいて質点オブジェクト206に対する外力を求めることとする。本図では、仮想連結点501に連結される仮想弾性体211による外力511と、他の質点オブジェクト206に連結される仮想弾性体211による外力512、513、514とが表示されている。   Thus, the external force for the mass point object 206 is obtained based on the virtual connection point 501. In this figure, an external force 511 by the virtual elastic body 211 connected to the virtual connection point 501 and an external force 512, 513, 514 by the virtual elastic body 211 connected to another mass point object 206 are displayed.

上記の物理モデルと、質点オブジェクト206の位置p(t)と、これらの外力から、時刻t+Δtにおける仮想的な位置を求めることができる。これは、支持オブジェクト201が少ししか動いていない、と仮想的に考えた場合の、質点オブジェクト206の移動先に相当する。この移動先の仮想的な位置521をu(t+Δt)とする。   From the above physical model, the position p (t) of the mass point object 206, and these external forces, a virtual position at time t + Δt can be obtained. This corresponds to the movement destination of the mass point object 206 when it is virtually considered that the support object 201 is moving only a little. The virtual position 521 of the movement destination is u (t + Δt).

しかしながら、支持オブジェクト201の本来の移動を考えれば、位置u(t+Δt)をそのままp(t+Δt)とするのでは、支持オブジェクト201と離れすぎてしまうこととなる。そこで、以下のような考え方を採用する。   However, considering the original movement of the support object 201, if the position u (t + Δt) is set to p (t + Δt) as it is, the support object 201 is too far away. Therefore, the following concept is adopted.

まず、質点オブジェクト206の支持オブジェクト201に対する位置(質点変化量)は、
u(t+Δt) - (r(t)+Δs)
First, the position of the mass point object 206 with respect to the support object 201 (mass point change amount) is
u (t + Δt)-(r (t) + Δs)

と表現することができる。   It can be expressed as

時刻t+Δtには、支持オブジェクト201の重心自体は、
r(t+Δt) = r(t) + Δr
に移動しており、しかも、
Δθ
だけ回転しているのであるから、
p(t+Δt) = r(t) + Δr + spin(Δθ,u(t+Δt)-(r(t)+Δs))
を、新たな質点オブジェクト206の位置とする。これが本実施形態の特徴の一つである。
At time t + Δt, the center of gravity of the support object 201 itself is
r (t + Δt) = r (t) + Δr
Have moved to
Δθ
Because it ’s just spinning.
p (t + Δt) = r (t) + Δr + spin (Δθ, u (t + Δt)-(r (t) + Δs))
Is the position of the new mass point object 206. This is one of the features of this embodiment.

このとき、質点オブジェクト206の更新間隔時間後の速度は、
(p(t+Δt)-p(t))/Δt
とすれば良い。
At this time, the speed of the mass object 206 after the update interval time is
(p (t + Δt) -p (t)) / Δt
What should I do?

本実施形態によれば、更新間隔時間Δtが少々長い場合や、質点オブジェクト206の数が少ない場合であっても、不自然でないクロスシミュレーションを実現することができる。   According to the present embodiment, a cross simulation that is not unnatural can be realized even when the update interval time Δt is a little long or the number of mass point objects 206 is small.

なお、本実施形態では、質点オブジェクト206と支持オブジェクト201との間のインタラクションが実質的に小さくなっている。そこで、用途によっては、これを簡易に補償したい場合もある。   In the present embodiment, the interaction between the mass point object 206 and the support object 201 is substantially reduced. Therefore, depending on the application, it may be desired to compensate for this easily.

このような場合には、質点オブジェクト206と支持オブジェクト201とを連結している仮想弾性体211のバネ係数にh(|Δr|)やh(|Δr|)2等を乗じて、仮想弾性体211の弾性力を仮想的に大きくすることとしても良い。 In such a case, the virtual elastic body 211 is multiplied by h (| Δr |), h (| Δr |) 2, etc., by the spring coefficient of the virtual elastic body 211 that connects the mass point object 206 and the support object 201. The elastic force 211 may be increased virtually.

本手法によれば、支持オブジェクト201の位置や視線の変化量を仮想的に小さくしたことを、バネ定数を仮想的に大きくすることで、埋め合わせることができるようになる。   According to this method, it is possible to make up for the fact that the position of the support object 201 and the amount of change in the line of sight are virtually reduced by virtually increasing the spring constant.

本実施形態によれば、従来から広く用いられている剛体や質点、バネなどの物理モデルの計算を簡易に修正して、時間の刻み幅が大きな場合や質点の数を減らした場合であっても、リアルに運動のシミュレーションを行うことができるようになる。以下では、具体的なシミュレーション装置の構成について説明する。   According to this embodiment, the calculation of physical models such as rigid bodies, mass points, and springs that have been widely used in the past can be easily corrected to reduce the number of mass points when the time increment is large. Even now, you will be able to perform realistic motion simulations. Hereinafter, a specific configuration of the simulation apparatus will be described.

図6は、本実施形態に係るシミュレーション装置の概要構成を示す説明図である。以下、本図を参照して説明する。   FIG. 6 is an explanatory diagram showing a schematic configuration of the simulation apparatus according to the present embodiment. Hereinafter, a description will be given with reference to FIG.

本実施形態に係るシミュレーション装置701は、記憶部702、支持計算部703、支持修正部704、質点計算部705、支持更新部706、質点更新部707、画像生成部708を備える。   A simulation apparatus 701 according to this embodiment includes a storage unit 702, a support calculation unit 703, a support correction unit 704, a mass point calculation unit 705, a support update unit 706, a mass point update unit 707, and an image generation unit 708.

ここで、記憶部702は、RAM 103等によって実現され、
支持オブジェクト201の現在時刻における位置、速度、姿勢、角速度、質量、慣性モーメント、
複数の質点オブジェクト206の現在時刻における位置、速度、質量、
複数の仮想弾性体211のそれぞれが連結する質点オブジェクト206同士の関係、もしくは、質点オブジェクト206と支持オブジェクト201の連結点の位置、
複数の仮想弾性体211の自然長、バネ定数、
重力や風力などの外力の分布、
現在の時刻、時刻の刻み幅(更新間隔時間)、
支持オブジェクト201の表面や質点オブジェクト206のメッシュを構成するポリゴンと、当該ポリゴンに貼り付けられるテクスチャ
などの情報を記憶する。
Here, the storage unit 702 is realized by the RAM 103 or the like,
The position, velocity, posture, angular velocity, mass, moment of inertia of the support object 201 at the current time,
The position, speed, mass, and current position of the mass point objects 206 at the current time
The relationship between the mass object 206 connected to each of the plurality of virtual elastic bodies 211, or the position of the connection point between the mass object 206 and the support object 201;
Natural lengths, spring constants of a plurality of virtual elastic bodies 211,
Distribution of external forces such as gravity and wind power,
Current time, time increment (update interval time),
Information such as the polygons constituting the surface of the support object 201 and the mesh of the mass object 206 and the texture pasted on the polygons is stored.

図7は、本シミュレーション装置701にて実行されるシミュレーション処理の制御の流れを示すフローチャートである。以下、本図を参照して説明する。   FIG. 7 is a flowchart showing a flow of control of simulation processing executed by the simulation apparatus 701. Hereinafter, a description will be given with reference to FIG.

処理が開始されると、CPU 101は、RAM 103に用意された記憶部702を初期化して、適切な初期値を与える(ステップS801)。   When the process is started, the CPU 101 initializes the storage unit 702 prepared in the RAM 103 and gives an appropriate initial value (step S801).

ついで、支持計算部703は、支持オブジェクト201の現在の位置r(t)および姿勢θ(t)や、各種の外力の状況等から、上記の計算手法に基づいて、支持変化量Δr,Δθを求める(ステップS802)。したがって、CPU 101は、RAM 103と共働して、支持計算部703として機能する。   Next, the support calculation unit 703 calculates the support change amounts Δr and Δθ based on the above calculation method from the current position r (t) and posture θ (t) of the support object 201, various external force conditions, and the like. Obtained (step S802). Therefore, the CPU 101 functions as the support calculation unit 703 in cooperation with the RAM 103.

さらに、支持修正部704は、求められたΔr,Δθ等から、上記の計算手法に基づいて、支持修正量Δs,Δψを求める(ステップS803)。したがって、CPU 101は、RAM 103と共働して、支持修正部704として機能する。   Further, the support correction unit 704 calculates the support correction amounts Δs and Δψ from the calculated Δr, Δθ, and the like based on the above calculation method (step S803). Therefore, the CPU 101 functions as the support correction unit 704 in cooperation with the RAM 103.

さらに、質点計算部705は、各質点オブジェクトについて(ステップS804)、上記のように求められたΔs,Δψ等から、上記の計算手法に基づいて、それぞれの質点オブジェクト206に対する質点変化量u(t+Δt)を求める(ステップS805)処理を繰り返す(ステップS806)。この際に、他の質点オブジェクト206とのみ連結され、支持オブジェクト201とは連結されていない質点オブジェクト206については、通常のクロスシミュレーションによる計算と同様の手法を採用する。したがって、CPU 101は、RAM 103と共働して、質点計算部705として機能する。   Further, for each mass point object (step S804), the mass point calculation unit 705 determines the mass point change amount u (t) for each mass point object 206 based on the above calculation method from Δs, Δψ and the like obtained as described above. + Δt) (step S805) is repeated (step S806). At this time, for the mass object 206 that is connected only to the other mass point object 206 and not connected to the support object 201, the same method as the calculation by the normal cross simulation is adopted. Therefore, the CPU 101 functions as the mass point calculation unit 705 in cooperation with the RAM 103.

ついで、支持更新部706は、求められた支持変化量Δr,Δθ等に基づいて記憶部702に記憶される支持オブジェクト201の位置や姿勢、速度や角速度の情報を、上記のような計算によって得られたr(t+Δt),θ(t+Δt),v(t+Δt),ω(t+Δt)の値に更新する(ステップS807)。したがって、CPU 101は、RAM 103と共働して、支持更新部706として機能する。   Next, the support update unit 706 obtains information on the position, posture, speed, and angular velocity of the support object 201 stored in the storage unit 702 based on the obtained support change amounts Δr, Δθ, and the like by the above calculation. The values r (t + Δt), θ (t + Δt), v (t + Δt), and ω (t + Δt) are updated (step S807). Therefore, the CPU 101 functions as the support update unit 706 in cooperation with the RAM 103.

質点更新部707は、それぞれの質点オブジェクト206に対して(ステップS808)、記憶部702に記憶される当該質点オブジェクト206の位置、速度の情報を、上記のような計算によって得られた更新間隔時間後の位置p(t+Δt)、および、質点オブジェクト速度(p(t+Δt)-p(t))/Δtの値に更新する(ステップS809)ことを繰り返す(ステップS810)。したがって、CPU 101は、RAM 103と共働して、質点更新部707として機能する。   The material point update unit 707 updates the position and speed information of the mass point object 206 stored in the storage unit 702 with respect to each of the mass point objects 206 (step S808). The subsequent position p (t + Δt) and the mass point object speed (p (t + Δt) −p (t)) / Δt are updated (step S809) repeatedly (step S810). Therefore, the CPU 101 functions as the mass point update unit 707 in cooperation with the RAM 103.

さらに、画像生成部708は、RAM 103内の情報に基づいて、支持オブジェクト201の表面や質点オブジェクト206を頂点とするポリゴンに、テクスチャ情報を貼り付けて、仮想空間231の様子を表す画像をRAM 103内のフレームバッファに生成する(ステップS811)。したがって、CPU 101は、画像処理部107およびRAM 103と共働して、画像生成部708として機能する。本処理については、各種の3次元グラフィックスの技術を適用することが可能である。   Further, the image generation unit 708 pastes texture information on a polygon having the surface of the support object 201 or the mass point object 206 as a vertex based on the information in the RAM 103, and displays an image representing the state of the virtual space 231 in the RAM. The frame is generated in the frame buffer 103 (step S811). Therefore, the CPU 101 functions as the image generation unit 708 in cooperation with the image processing unit 107 and the RAM 103. Various three-dimensional graphics techniques can be applied to this processing.

そして、垂直同期割り込みが生じるまで待機する(ステップS812)。この間は、他の処理をコルーチン的に実行することが可能である。   Then, the process waits until a vertical synchronization interrupt occurs (step S812). During this time, other processes can be executed in a coroutine manner.

垂直同期割り込みが発生したら、仮想空間231における時刻を、更新間隔時間(垂直同期割り込み周期)だけ増やして、時刻を更新する(ステップS813)。なお、画像生成については、適宜間引くことも可能である。このときは、時刻の更新における更新間隔時間も、間引いた数に応じて調整する。   When the vertical synchronization interrupt occurs, the time in the virtual space 231 is increased by the update interval time (vertical synchronization interrupt cycle), and the time is updated (step S813). Note that image generation can be thinned out as appropriate. At this time, the update interval time in the time update is also adjusted in accordance with the thinned number.

そして、画像処理部107は、CPU 101の制御の下、フレームバッファの内容をフレームメモリに転送して、生成された画像を画面に表示し(ステップS814)、ステップS802に戻る。   Then, under the control of the CPU 101, the image processing unit 107 transfers the contents of the frame buffer to the frame memory, displays the generated image on the screen (step S814), and returns to step S802.

このような処理を行うことにより、本実施形態のシミュレーション装置701は、更新間隔時間の幅が長い場合や質点オブジェクト206の数を少なくした場合であっても、簡易な計算によってクロスシミュレーションを行うことができるようになる。   By performing such processing, the simulation apparatus 701 of the present embodiment performs cross simulation by simple calculation even when the width of the update interval time is long or the number of mass point objects 206 is reduced. Will be able to.

なお、上記実施形態では、支持変化量を計算すると(ステップS802)、必ず支持修正量を計算する(ステップS803)こととした上で、仮想連結点501の位置を求め、ローカル座標系241基準の質点変化量を計算することとしているが(ステップS805)、常にこのような処理を行うのではなく、従来の手法と適宜使い分けることも可能である。   In the above embodiment, when the support change amount is calculated (step S802), the support correction amount is always calculated (step S803), the position of the virtual connection point 501 is obtained, and the local coordinate system 241 reference is calculated. The mass point change amount is calculated (step S805), but such processing is not always performed, and it is possible to appropriately use the conventional method.

すなわち、支持変化量を計算した後、当該支持変化量が所定の閾値より大きければ、上記実施形態の処理を行うが、そうでなければ、仮想連結点501の位置を求める処理などは行わず、従来のクロスシミュレーションの技術を適用する、というものである。すなわち、後者の場合には、グローバル座標系236基準で現在の質点オブジェクト206の位置と更新間隔時間経過後の連結点212の位置との差から、仮想弾性体211による弾性力を求めて、質点オブジェクト206の位置を更新する。ここで、前者の処理は計算量が多く、後者の処理は計算量が少ない。   That is, after calculating the support change amount, if the support change amount is larger than a predetermined threshold value, the process of the above embodiment is performed, but if not, the process of obtaining the position of the virtual connection point 501 is not performed. The conventional cross simulation technique is applied. That is, in the latter case, the elastic force by the virtual elastic body 211 is obtained from the difference between the current position of the mass point object 206 and the position of the connection point 212 after the update interval time has passed on the basis of the global coordinate system 236, and the mass point Update the position of the object 206. Here, the former process has a large amount of calculation, and the latter process has a small amount of calculation.

したがって、このような態様を採用した場合には、更新間隔時間を短くしたり質点オブジェクト206の数を減らしたことによる影響が大きくなると想定される場合(支持変化量が所定の閾値より大きい場合)のみ、ローカル座標系241基準の処理を行い、そうでなければ、計算量が少ないグローバル座標系236基準の処理を行うことによって、情報処理装置100における処理速度を適切に高速に保つことができるようになる。   Therefore, when such an aspect is adopted, it is assumed that the effect of shortening the update interval time or reducing the number of mass point objects 206 will increase (when the support change amount is larger than a predetermined threshold). Only the processing based on the local coordinate system 241 is performed, and otherwise, the processing based on the global coordinate system 236 based on a small amount of calculation is performed, so that the processing speed in the information processing apparatus 100 can be appropriately kept high. become.

以上説明したように、本発明によれば、仮想空間に配置された柔軟な布や紙など、形状可変なオブジェクトの形状の変化を簡易にシミュレートするのに好適なシミュレーション装置、シミュレーション方法、ならびに、これらをコンピュータにて実現するプログラムを提供することができる。   As described above, according to the present invention, a simulation device, a simulation method, and a simulation method suitable for easily simulating a change in shape of a shape-variable object such as a flexible cloth or paper arranged in a virtual space, and A program for realizing these by a computer can be provided.

プログラムを実行することにより、本発明のシミュレーション装置の機能を果たす典型的な情報処理装置の概要構成を示す模式図である。It is a schematic diagram which shows the outline | summary structure of the typical information processing apparatus which performs the function of the simulation apparatus of this invention by running a program. 仮想空間内に配置される支持オブジェクト、質点オブジェクト、仮想弾性体および各座標系の関係を示す説明図である。It is explanatory drawing which shows the relationship between the support object, mass object, virtual elastic body, and each coordinate system which are arrange | positioned in virtual space. 仮想弾性体と質点オブジェクトの種々の連結の様子を示す説明図である。It is explanatory drawing which shows the mode of various connection of a virtual elastic body and a mass point object. 支持オブジェクトや質点オブジェクト等の、一般的なオブジェクトに関する位置や姿勢の変化のシミュレートの手法を示す説明図である。It is explanatory drawing which shows the technique of simulating the change of the position and attitude | position regarding general objects, such as a support object and a mass point object. 物理モデルにしたがって、位置や姿勢の変化が計算されたときの様子を示す説明図である。It is explanatory drawing which shows a mode when the change of a position or attitude | position is calculated according to a physical model. 本実施形態に係るシミュレーション装置の概要構成を示す説明図である。It is explanatory drawing which shows schematic structure of the simulation apparatus which concerns on this embodiment. 本シミュレーション装置にて実行されるシミュレーション方法の処理の流れを示すフローチャートである。It is a flowchart which shows the flow of a process of the simulation method performed with this simulation apparatus.

符号の説明Explanation of symbols

100 情報処理装置
101 CPU
102 ROM
103 RAM
104 インターフェイス
105 コントローラ
106 外部メモリ
107 画像処理部
108 DVD−ROMドライブ
109 NIC
110 音声処理部
111 マイク
201 支持オブジェクト
206 質点オブジェクト
211 仮想弾性体
212 連結点
231 仮想空間
236 グローバル座標系
241 ローカル座標系
401 オブジェクト
402 重心
403 基準点
451 重力
452 外力
453 変位
501 仮想連結点
511 外力
512 外力
513 外力
514 外力
701 シミュレーション装置
702 記憶部
703 支持計算部
704 支持修正部
705 質点計算部
706 支持更新部
707 質点更新部
708 画像生成部
100 Information processing apparatus 101 CPU
102 ROM
103 RAM
104 Interface 105 Controller 106 External Memory 107 Image Processing Unit 108 DVD-ROM Drive 109 NIC
DESCRIPTION OF SYMBOLS 110 Sound processing part 111 Microphone 201 Support object 206 Mass point object 211 Virtual elastic body 212 Connection point 231 Virtual space 236 Global coordinate system 241 Local coordinate system 401 Object 402 Center of gravity 403 Reference point 451 Gravity 452 External force 453 Displacement 501 Virtual connection point 511 External force 512 External force 513 External force 514 External force 701 Simulation device 702 Storage unit 703 Support calculation unit 704 Support correction unit 705 Mass point calculation unit 706 Support update unit 707 Mass point update unit 708 Image generation unit

Claims (7)

仮想空間に配置される支持オブジェクトの位置および姿勢、ならびに、複数の質点オブジェクトの位置をシミュレートするシミュレーション装置であって、
当該仮想空間において、当該複数の質点オブジェクトのそれぞれは、当該支持オブジェクトもしくは当該複数の質点オブジェクトのうち他の質点オブジェクトと仮想弾性体を介して連結され、
当該支持オブジェクトの位置および姿勢と、当該複数の質点オブジェクトの位置と、を記憶する記憶部、
更新間隔時間の経過による当該支持オブジェクトの位置および姿勢の変化を表す支持変化量を計算する支持計算部、
前記計算された支持変化量を所定の閾値を超えないように修正した支持修正量を計算する支持修正部、
前記記憶された当該支持オブジェクトの位置および姿勢から前記計算された支持修正量だけ移動した位置および姿勢と、前記記憶された当該複数の質点オブジェクトの位置と、から、当該複数の質点オブジェクトのそれぞれについて、
(a)当該質点オブジェクトが連結される仮想弾性体が当該質点オブジェクトに及ぼす力を計算し、
(b)当該更新間隔時間が経過した後の、当該支持オブジェクトに対する当該質点オブジェクトの相対的な位置を表す質点変化量を、当該計算された力から計算する
質点計算部、
前記記憶部に記憶される支持オブジェクトの位置および姿勢から前記計算された支持変化量だけ移動した位置および姿勢で、当該支持オブジェクトの位置および姿勢を更新する支持更新部、
前記記憶部に記憶される複数の質点オブジェクトの位置のそれぞれを、前記位置および姿勢が更新された当該支持オブジェクトの位置から、当該質点オブジェクトに対して前記計算された質点変化量だけ移動した位置で、当該質点オブジェクトの位置を更新する質点更新部
とを備えるシミュレーション装置。
A simulation device for simulating the position and posture of a support object arranged in a virtual space and the positions of a plurality of mass point objects,
In the virtual space, each of the plurality of mass point objects is connected to the support object or another mass point object among the plurality of mass point objects via a virtual elastic body,
A storage unit for storing the position and orientation of the support object and the positions of the plurality of mass point objects;
A support calculation unit for calculating a support change amount representing a change in the position and posture of the support object with the elapse of the update interval time;
A support correction unit for calculating a support correction amount obtained by correcting the calculated support change amount so as not to exceed a predetermined threshold;
For each of the plurality of mass point objects, from the position and posture moved by the calculated support correction amount from the stored position and posture of the support object and the stored positions of the plurality of mass point objects ,
(A) calculating the force exerted on the mass point object by the virtual elastic body to which the mass point object is connected;
(B) a mass point calculation unit that calculates a mass change amount representing the relative position of the mass object relative to the support object after the update interval time has elapsed, from the calculated force;
A support update unit for updating the position and posture of the support object with the position and posture moved by the calculated support change amount from the position and posture of the support object stored in the storage unit;
Each of the positions of the plurality of mass point objects stored in the storage unit is moved from the position of the support object whose position and orientation are updated by the calculated mass point change amount with respect to the mass point object. And a mass point updating unit for updating the position of the mass point object.
請求項1に記載のシミュレーション装置であって、
前記支持修正部は、前記計算された支持変化量を、単調増加し極限が当該所定の閾値以下である内分関数に適用して、当該支持修正量を計算する
ことを特徴とするシミュレーション装置。
The simulation apparatus according to claim 1,
The support correction unit calculates the support correction amount by applying the calculated support change amount to an internal division function that monotonously increases and the limit is equal to or less than the predetermined threshold value.
請求項2に記載のシミュレーション装置であって、
前記支持修正部における内分関数は、当該支持変化量のうち位置の変化量に対して適用される位置内分関数と、当該支持変化量のうち姿勢の変化量に対して適用される姿勢内分関数と、からなり、
当該位置内分関数は、当該位置の変化量の上限値に0以上1以下の係数を乗じる単調増加関数であり、
当該姿勢内分関数は、当該姿勢の変化に係る軸周りの回転角の上限値に0以上1以下の係数を乗じる単調増加関数である
ことを特徴とするシミュレーション装置。
The simulation apparatus according to claim 2,
The internal division function in the support correction unit includes a position internal function applied to a position change amount of the support change amount, and a posture internal function applied to a posture change amount of the support change amount. A fractional function,
The position internal function is a monotonically increasing function that multiplies the upper limit value of the change amount of the position by a coefficient of 0 or more and 1 or less,
The posture internal function is a monotonically increasing function that multiplies the upper limit value of the rotation angle around the axis related to the change in the posture by a coefficient of 0 or more and 1 or less.
請求項3に記載のシミュレーション装置であって、
前記質点計算部は、当該位置内分関数に係る係数の逆数もしくは当該係数の逆数の自乗を当該仮想弾性体の弾性係数に乗じて、当該質点変化量を計算する
ことを特徴とするシミュレーション装置。
The simulation apparatus according to claim 3,
The said mass point calculation part multiplies the elastic coefficient of the said virtual elastic body by the reciprocal number of the coefficient which concerns on the said position division function, or the square of the reciprocal number of the said coefficient, and calculates the said mass point change amount.
請求項1から4のいずれか1項に記載のシミュレーション装置であって、
前記記憶される複数の質点オブジェクトを頂点とするポリゴンに所定のテクスチャを貼り込んで、当該支持オブジェクトと、当該支持オブジェクトに連結される可変形オブジェクトと、の画像を生成する画像生成部
をさらに備えることを特徴とするシミュレーション装置。
The simulation apparatus according to any one of claims 1 to 4, wherein:
An image generation unit configured to generate an image of the support object and a deformable object connected to the support object by pasting a predetermined texture on the polygon having the plurality of mass point objects stored as vertices; A simulation apparatus characterized by that.
仮想空間に配置される支持オブジェクトの位置および姿勢、ならびに、複数の質点オブジェクトの位置をシミュレートするシミュレーション方法であって、
当該支持オブジェクトの位置および姿勢と、当該複数の質点オブジェクトの位置と、を記憶する記憶部、支持計算部、支持修正部、質点計算部、支持更新部、質点更新部を備えるシミュレーション装置にて実行され、
当該仮想空間において、当該複数の質点オブジェクトのそれぞれは、当該支持オブジェクトもしくは当該複数の質点オブジェクトのうち他の質点オブジェクトと仮想弾性体を介して連結され、
前記支持計算部が、更新間隔時間の経過による当該支持オブジェクトの位置および姿勢の変化を表す支持変化量を計算する支持計算工程、
前記支持修正部が、前記計算された支持変化量を所定の閾値を超えないように修正した支持修正量を計算する支持修正工程、
前記質点計算部が、前記記憶された当該支持オブジェクトの位置および姿勢から前記計算された支持修正量だけ移動した位置および姿勢と、前記記憶された当該複数の質点オブジェクトの位置と、から、当該複数の質点オブジェクトのそれぞれについて、
(a)当該質点オブジェクトが連結される仮想弾性体が当該質点オブジェクトに及ぼす力を計算し、
(b)当該更新間隔時間が経過した後の、当該支持オブジェクトに対する当該質点オブジェクトの相対的な位置を表す質点変化量を、当該計算された力から計算する
質点計算工程、
前記支持更新部が、前記記憶部に記憶される支持オブジェクトの位置および姿勢から前記計算された支持変化量だけ移動した位置および姿勢で、当該支持オブジェクトの位置および姿勢を更新する支持更新工程、
前記質点更新部が、前記記憶部に記憶される複数の質点オブジェクトの位置のそれぞれを、当該位置および姿勢が更新された支持オブジェクトの位置から、当該質点オブジェクトに対して前記計算された質点変化量だけ移動した位置で、当該質点オブジェクトの位置を更新する質点更新工程
とを備えるシミュレーション方法。
A simulation method for simulating the position and orientation of a support object arranged in a virtual space and the positions of a plurality of mass point objects,
Executed by a simulation device including a storage unit, a support calculation unit, a support correction unit, a mass point calculation unit, a support update unit, and a mass point update unit that store the positions and postures of the support objects and the positions of the plurality of mass point objects And
In the virtual space, each of the plurality of mass point objects is connected to the support object or another mass point object among the plurality of mass point objects via a virtual elastic body,
A support calculation step in which the support calculation unit calculates a support change amount representing a change in the position and orientation of the support object with the lapse of the update interval time;
A support correction step of calculating a support correction amount in which the support correction unit corrects the calculated support change amount so as not to exceed a predetermined threshold;
The mass point calculation unit is configured to calculate a plurality of the plurality of mass point objects from the positions and postures moved by the calculated support correction amount from the stored positions and postures of the support objects, and the plurality of stored mass point objects. For each of the mass point objects
(A) calculating the force exerted on the mass point object by the virtual elastic body to which the mass point object is connected;
(B) a mass point calculating step of calculating a mass point change amount representing a relative position of the mass point object with respect to the support object after the update interval time has elapsed, from the calculated force;
A support update step in which the support update unit updates the position and posture of the support object at a position and posture moved by the calculated support change amount from the position and posture of the support object stored in the storage unit;
The mass point update unit calculates each of the positions of the plurality of mass point objects stored in the storage unit from the position of the support object whose position and orientation are updated, with respect to the calculated mass point change amount for the mass point object. And a mass point updating step of updating the position of the mass point object at a position that has been moved by a distance.
仮想空間に配置される支持オブジェクトの位置および姿勢、ならびに、複数の質点オブジェクトの位置をコンピュータにシミュレートさせるプログラムであって、
当該仮想空間において、当該複数の質点オブジェクトのそれぞれは、当該支持オブジェクトもしくは当該複数の質点オブジェクトのうち他の質点オブジェクトと仮想弾性体を介して連結され、
当該プログラムは、当該コンピュータを、
仮想空間内に配置される支持オブジェクトの位置および姿勢と、複数の質点オブジェクトの位置と、を記憶する記憶部、
更新間隔時間の経過による当該支持オブジェクトの位置および姿勢の変化を表す支持変化量を計算する支持計算部、
前記計算された支持変化量を所定の閾値を超えないように修正した支持修正量を計算する支持修正部、
前記記憶された当該支持オブジェクトの位置および姿勢から前記計算された支持修正量だけ移動した位置および姿勢と、前記記憶された当該複数の質点オブジェクトの位置と、から、当該複数の質点オブジェクトのそれぞれについて、
(a)当該質点オブジェクトが連結される仮想弾性体が当該質点オブジェクトに及ぼす力を計算し、
(b)当該更新間隔時間が経過した後の、当該支持オブジェクトに対する当該質点オブジェクトの相対的な位置を表す質点変化量を、当該計算された力から計算する
質点計算部、
前記記憶部に記憶される支持オブジェクトの位置および姿勢から前記計算された支持変化量だけ移動した位置および姿勢で、当該支持オブジェクトの位置および姿勢を更新する支持更新部、
前記記憶部に記憶される複数の質点オブジェクトの位置のそれぞれを、当該位置および姿勢が更新された支持オブジェクトの位置から、当該質点オブジェクトに対して前記計算された質点変化量だけ移動した位置で、当該質点オブジェクトの位置を更新する質点更新部
として機能させることを特徴とするプログラム。
A program for causing a computer to simulate the position and posture of a support object arranged in a virtual space and the positions of a plurality of mass point objects,
In the virtual space, each of the plurality of mass point objects is connected to the support object or another mass point object among the plurality of mass point objects via a virtual elastic body,
The program runs the computer
A storage unit for storing the positions and postures of the supporting objects arranged in the virtual space and the positions of the plurality of mass point objects;
A support calculation unit for calculating a support change amount representing a change in the position and posture of the support object with the elapse of the update interval time;
A support correction unit for calculating a support correction amount obtained by correcting the calculated support change amount so as not to exceed a predetermined threshold;
For each of the plurality of mass point objects, from the position and posture moved by the calculated support correction amount from the stored position and posture of the support object and the stored positions of the plurality of mass point objects ,
(A) calculating the force exerted on the mass point object by the virtual elastic body to which the mass point object is connected;
(B) a mass point calculation unit that calculates a mass change amount representing the relative position of the mass object relative to the support object after the update interval time has elapsed, from the calculated force;
A support update unit for updating the position and posture of the support object with the position and posture moved by the calculated support change amount from the position and posture of the support object stored in the storage unit;
Each of the positions of the plurality of mass point objects stored in the storage unit is moved from the position of the support object whose position and posture are updated by the calculated mass point change amount with respect to the mass point object. A program that functions as a mass point updating unit for updating the position of the mass point object.
JP2006172207A 2006-06-22 2006-06-22 Simulation apparatus, simulation method, and program Active JP4210293B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006172207A JP4210293B2 (en) 2006-06-22 2006-06-22 Simulation apparatus, simulation method, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006172207A JP4210293B2 (en) 2006-06-22 2006-06-22 Simulation apparatus, simulation method, and program

Publications (2)

Publication Number Publication Date
JP2008003824A JP2008003824A (en) 2008-01-10
JP4210293B2 true JP4210293B2 (en) 2009-01-14

Family

ID=39008154

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006172207A Active JP4210293B2 (en) 2006-06-22 2006-06-22 Simulation apparatus, simulation method, and program

Country Status (1)

Country Link
JP (1) JP4210293B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5431173B2 (en) * 2008-02-18 2014-03-05 株式会社島精機製作所 Dressing simulation device and simulation program
JP5301590B2 (en) * 2011-03-03 2013-09-25 株式会社コナミデジタルエンタテインメント GAME DEVICE, GAME DEVICE CONTROL METHOD, AND PROGRAM

Also Published As

Publication number Publication date
JP2008003824A (en) 2008-01-10

Similar Documents

Publication Publication Date Title
US9990754B1 (en) System for rendering using position based finite element simulation
JP4519883B2 (en) Character display device, character display method, and program
US8538737B2 (en) Curve editing with physical simulation of mass points and spring forces
JP4037889B2 (en) Image generating apparatus, image generating method, and program
KR100898671B1 (en) Image processor, image processing method, and computer-readable information recording medium having a program recorded thereon
JP4425890B2 (en) Simulation apparatus, simulation method, and program
JP4210293B2 (en) Simulation apparatus, simulation method, and program
JP4199764B2 (en) Skin control point position calculation device, calculation method, and program
JP2009020874A (en) Hair simulation method, and device therefor
JP4815521B2 (en) Image processing apparatus, image processing method, and program
JP4244352B2 (en) Image generating apparatus, image generating method, and program
JP4457099B2 (en) Image processing apparatus, image processing method, and program
JP5155262B2 (en) Image generating apparatus, image generating method, and program
JP4113179B2 (en) Simulation apparatus, simulation method, and program
JP4563461B2 (en) Image generating apparatus, image generating method, and program
WO1997031338A1 (en) Image generator, image generating method and image recording medium
JP4229316B2 (en) Image generation system, program, and information storage medium
JP4068093B2 (en) Simulation apparatus, simulation method, and program
JP4641602B2 (en) GAME SYSTEM AND INFORMATION STORAGE MEDIUM
JP4287479B2 (en) Image generating apparatus, image generating method, and program
JP4391633B2 (en) Image generation system and information storage medium
JP2007087030A (en) Program, information storage medium, and image generation system
JP4480322B2 (en) GAME SYSTEM AND INFORMATION STORAGE MEDIUM
JP2006252423A (en) Program, information storage medium and image generation system
JP4345996B2 (en) Image generation system and information storage medium

Legal Events

Date Code Title Description
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: 20081021

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

R150 Certificate of patent or registration of utility model

Ref document number: 4210293

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20121031

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20131031

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250