Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP4579964B2 - Image generating apparatus, image generating method, and program - Google Patents
[go: Go Back, main page]

JP4579964B2 - Image generating apparatus, image generating method, and program - Google Patents

Image generating apparatus, image generating method, and program Download PDF

Info

Publication number
JP4579964B2
JP4579964B2 JP2007321757A JP2007321757A JP4579964B2 JP 4579964 B2 JP4579964 B2 JP 4579964B2 JP 2007321757 A JP2007321757 A JP 2007321757A JP 2007321757 A JP2007321757 A JP 2007321757A JP 4579964 B2 JP4579964 B2 JP 4579964B2
Authority
JP
Japan
Prior art keywords
coordinate system
bone
sub
main
control point
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
JP2007321757A
Other languages
Japanese (ja)
Other versions
JP2009146103A (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 JP2007321757A priority Critical patent/JP4579964B2/en
Publication of JP2009146103A publication Critical patent/JP2009146103A/en
Application granted granted Critical
Publication of JP4579964B2 publication Critical patent/JP4579964B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Processing Or Creating Images (AREA)

Description

本発明は、仮想空間内のオブジェクトを変形させた画像を容易に生成するために好適な画像生成装置、画像生成方法、ならびに、プログラムに関する。   The present invention relates to an image generation apparatus, an image generation method, and a program suitable for easily generating an image obtained by deforming an object in a virtual space.

従来から、コンピュータグラフィックスにおいて人物や動物などのキャラクターを表現する際に、その骨格をボーン(あるいはスケルトンとも呼ばれる)という線分状オブジェクトで抽象化し、各ボーンの回りにボーンに対して位置が固定される点の位置によって、皮膚の形状を抽象化したスキンという面形状を求める技術が提案されている。   Traditionally, when representing characters such as people and animals in computer graphics, the skeleton is abstracted with line-shaped objects called bones (also called skeletons), and the positions of the bones around each bone are fixed. There has been proposed a technique for obtaining a surface shape called a skin obtained by abstracting the shape of the skin depending on the positions of the points to be formed.

ここで、ボーンやスキンは、3次元グラフィックスのモデリング技法で用いられる概念である。ボーンは、位置と姿勢が定まるリンク(線分状オブジェクト)であって、手足の関節のような部分で回転移動できる回転軸や回転角に制限を設けたものをいう。このように、回転移動に制限を設けた線分状オブジェクトは、「リンク」とも呼ばれる。   Here, bones and skins are concepts used in 3D graphics modeling techniques. A bone is a link (line-segmented object) whose position and orientation are determined, and has a rotation axis and a rotation angle that can be rotated at a portion such as a joint of a limb. As described above, the line-shaped object in which the rotational movement is limited is also referred to as “link”.

また、3次元空間内に配置される面形状の断面図(リブ)を並べ、これらをつなぎ合わせて複雑な曲面からなる形状が作られるが、この面形状をスキンと呼ぶ。   In addition, cross-sectional views (ribs) of surface shapes arranged in a three-dimensional space are arranged, and these are connected to form a complicated curved surface. This surface shape is called a skin.

一般に、リブはボーンに固定されているので、ボーンが位置や姿勢を変更すると、これとともにリブの位置や姿勢も変更される。したがって、リブの形状を決める頂点(リブが多角形の場合)や、各種の制御点(リブが曲線による形状の場合)も、ボーンに固定されている。   Generally, since the rib is fixed to the bone, when the bone changes its position and posture, the rib position and posture are also changed. Therefore, vertices that determine the shape of the rib (when the rib is polygonal) and various control points (when the rib is curved) are also fixed to the bone.

ボーンやスキンを用いたモデリング技法において、モデルをより自然に表現するために様々な工夫がなされている。例えば特許文献1には、連結される2つのボーンの連結点付近のスキンの形状をできるだけ自然に変化させることができる装置が開示されている。これによれば、人間や動物の骨格における肘や膝などを捻ったとき、肘や膝付近のスキンが不自然に細くなってしまうことはない。   In the modeling technique using bones and skins, various ideas have been made to express the model more naturally. For example, Patent Document 1 discloses an apparatus that can change the shape of a skin near the connection point of two bones to be connected as naturally as possible. According to this, when an elbow or knee in a human or animal skeleton is twisted, the skin near the elbow or knee is not unnaturally thinned.

また、例えば特許文献2には、ポリゴンの頂点に複数のボーンを関連付け、このポリゴンの頂点に、関連付けられたボーンに対する関連度合いに相当する比重値を持たせて、キャラクターを高速に表示できる手法が開示されている。
特開2007−148856号公報 特開2002−92644号公報
Further, for example, Patent Document 2 discloses a technique that can display a character at high speed by associating a plurality of bones with a vertex of a polygon and giving the vertex of the polygon a specific gravity value corresponding to the degree of association with the associated bone. It is disclosed.
JP 2007-148856 A JP 2002-92644 A

オブジェクトの外形となるスキンを変形させるためには、ボーンの位置や姿勢を変化させ、そしてボーンに対して固定された制御点の位置を、ボーンの位置や姿勢の変化に合わせて変化させる。しかしながら、部分的にスキンの形状を変化させたい場合、従来の技術をそのまま適用しようとすると、変化させたいスキンを構成する制御点が関連付けられたボーン全体の位置や姿勢を変えなければならず、変形させたくない部分のスキンまでも変形してしまうという問題があった。   In order to deform the skin that is the outer shape of the object, the position and posture of the bone are changed, and the position of the control point fixed to the bone is changed in accordance with the change of the bone position and posture. However, if you want to change the shape of the skin partially, if you try to apply the conventional technology as it is, you must change the position and posture of the entire bone associated with the control points that make up the skin you want to change, There was a problem that even the part of the skin that was not desired to be deformed was deformed.

また、現実の粘土などを用いたいわゆるクレイアニメーションにおいて、キャラクタを部分的にもしくは全体的にぺしゃんこに変形させてコミカルに表現する手法があるが、これを従来の技術によって仮想空間内で表現しようとすると、ボーンを細かく分けて繋げたり逆に少なくしたりしなければならず、変形させたいオブジェクトの基本骨格を変える必要が出てくる。一方で、クレイアニメーションでも変形させるときと変形させないときがあり、変形させないときには従来の3次元(3D)アニメーションと同様の構成としてデザイナーの設計上の負担を低減したいという要望もある。また、ボーン同士を繋げる関節部分は、曲がることが想定されるところにのみ配置したいのが実情であるため、オブジェクトの基本骨格は変えたくないという要望もある。そのため、デザイナーへの負担を軽減しつつも、オブジェクトの形状を簡単に変えることができる技術が望まれている。   In addition, in so-called clay animation using real clay, there is a method to express a character comically by transforming a character partially or entirely into a mess, but trying to express this in virtual space using conventional technology Then, it is necessary to divide the bones into small pieces and connect them or reduce them, and it is necessary to change the basic skeleton of the object to be deformed. On the other hand, clay animation may be deformed or not deformed, and when it is not deformed, there is also a demand for reducing the design burden of the designer as a configuration similar to a conventional three-dimensional (3D) animation. In addition, since it is a fact that the joint portion that connects the bones is desired to be placed only where it is supposed to bend, there is also a demand for not changing the basic skeleton of the object. Therefore, there is a demand for a technique that can easily change the shape of an object while reducing the burden on the designer.

本発明はこのような課題を解決するものであり、仮想空間内のオブジェクトを変形させた画像を容易に生成するために好適な画像生成装置、画像生成方法、ならびに、プログラムを提供することを目的とする。   The present invention solves such a problem, and an object thereof is to provide an image generation apparatus, an image generation method, and a program suitable for easily generating an image obtained by deforming an object in a virtual space. And

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

本発明の第1の観点に係る画像生成装置は、記憶部、計算部、画像生成部、更新部を有する。
記憶部は、仮想空間に配置される座標系(以下「親座標系」という。)における主ボーンの位置と、当該主ボーンに固定された座標系(以下「主座標系」という。)における副ボーンの位置と、当該副ボーンに固定された座標系(以下「副座標系」という。)における当該副ボーンに関連付けられた制御点の位置と、を記憶する。
計算部は、当該主ボーンの当該親座標系における位置と、当該副ボーンの当該主座標系における位置と、当該制御点の当該副座標系における位置とに基づいて、当該制御点の当該親座標系における位置を計算する。
画像生成部は、計算された制御点の位置により、スキンの形状を定め、当該仮想空間に配置される当該スキンの形状を表す画像を生成する。
更新部は、当該副ボーンの当該主座標系における位置を更新して、当該スキンの形状を変化させる。
An image generation apparatus according to a first aspect of the present invention includes a storage unit, a calculation unit, an image generation unit, and an update unit.
The storage unit includes a position of a main bone in a coordinate system (hereinafter referred to as “parent coordinate system”) arranged in the virtual space, and a subordinate in a coordinate system (hereinafter referred to as “main coordinate system”) fixed to the main bone. The position of the bone and the position of the control point associated with the sub bone in the coordinate system (hereinafter referred to as “sub coordinate system”) fixed to the sub bone are stored.
The calculation unit calculates the parent coordinates of the control point based on the position of the main bone in the parent coordinate system, the position of the sub bone in the main coordinate system, and the position of the control point in the sub coordinate system. Calculate the position in the system.
The image generation unit determines the shape of the skin based on the calculated position of the control point, and generates an image representing the shape of the skin arranged in the virtual space.
The update unit updates the position of the sub-bone in the main coordinate system to change the shape of the skin.

ここで、仮想空間内に配置されるキャラクタオブジェクトの画像は、主ボーン、副ボーン、制御点、スキンを用いて表現される。
ボーンは、キャラクタオブジェクトの骨格となる線分状オブジェクトであり、ボーンの位置や向きが変化することによってキャラクタオブジェクトの基本的な位置や姿勢が変化する。本発明では、主ボーンと副ボーンの2種類のボーンを定義する。主ボーンはキャラクタオブジェクトの骨格であり、主ボーンが結合する際の主ボーン同士の対応関係と、主ボーンの形状は不変であるが、主ボーンの親座標系(仮想空間に固定された座標系)における位置は可変である。
主ボーンには、主ボーン上の所定位置を初期位置として副ボーンが配置される。主ボーンと副ボーンとの対応関係と、副ボーンの形状は不変であるが、副ボーンの主座標系(主ボーンに固定された座標系)における位置は可変である。
副ボーンには1つ以上の制御点が関連付けられる。例えば主座標系における制御点の位置を不変とすると、副ボーンの位置が変化したとき、制御点の位置も同じ変化量だけ位置が変化する。
各制御点を頂点としたポリゴンの集合によって表される面がスキンである。キャラクタオブジェクトの表面はスキンによって覆われる。制御点の位置が変化すればスキンの形状も変化する。つまり、キャラクタオブジェクトの形状を変化させる場合、画像生成装置は、まず主座標系における副ボーンの位置を移動させる。次に副ボーンの位置の変化量に基づいて制御点の位置も移動させる。このとき、移動後の制御点の位置は、副座標系から主座標系に、更に主座標系から親座標系に座標変換を施すことにより、親座標系における位置として計算される。すなわち、主座標系における副ボーンの位置を移動させれば、親座標系における制御点の位置が移動し、その結果スキンの形状が変化することになる。
Here, the image of the character object arranged in the virtual space is expressed using a main bone, a sub bone, a control point, and a skin.
A bone is a line-shaped object that serves as a skeleton of a character object, and the basic position and orientation of the character object change as the position and orientation of the bone change. In the present invention, two types of bones, a main bone and a sub bone, are defined. The main bone is the skeleton of the character object, and the correspondence between the main bones when the main bones are joined and the shape of the main bone are unchanged, but the main coordinate system of the main bone (the coordinate system fixed in the virtual space) The position at) is variable.
Sub-bones are arranged in the main bone with a predetermined position on the main bone as an initial position. The correspondence between the main bone and the sub bone and the shape of the sub bone are unchanged, but the position of the sub bone in the main coordinate system (the coordinate system fixed to the main bone) is variable.
A secondary bone is associated with one or more control points. For example, assuming that the position of the control point in the main coordinate system is unchanged, when the position of the secondary bone changes, the position of the control point also changes by the same amount of change.
A surface represented by a set of polygons having each control point as a vertex is a skin. The surface of the character object is covered with a skin. If the position of the control point changes, the shape of the skin also changes. That is, when changing the shape of the character object, the image generating apparatus first moves the position of the sub-bone in the main coordinate system. Next, the position of the control point is also moved based on the change amount of the position of the secondary bone. At this time, the position of the control point after movement is calculated as a position in the parent coordinate system by performing coordinate transformation from the sub-coordinate system to the main coordinate system and from the main coordinate system to the parent coordinate system. That is, if the position of the sub-bone in the main coordinate system is moved, the position of the control point in the parent coordinate system is moved, and as a result, the shape of the skin changes.

本発明によれば、キャラクタオブジェクト全体のうち変化させたい部分のスキンを構成する制御点が関連付けられた副ボーンのみについて位置を変化させれば、変化させたい部分のスキンだけが変化し、キャラクタオブジェクトが変形する。すなわち、キャラクタオブジェクトの所望の部分だけを容易に変形させることができ、変形させたくない部分には影響しない(変形しない)。
例えば、いわゆるクレイアニメーション等でキャラクタの一部分(例えば手のひらなど)もしくは全部が押し潰されてぺしゃんこになってしまうようなコミカルな表現手法があるが、3次元仮想空間においても容易に同じような表現が可能になる。つまり、キャラクタオブジェクトを構成する主ボーンに複数の副ボーンを予め関連付け、さらに各副ボーンに制御点を関連付けておくと、変形させたい部分付近の副ボーンの位置を変化させるだけで、キャラクタオブジェクトの所望の部分だけを変形させることができる。
According to the present invention, if the position of only the secondary bone associated with the control point that constitutes the skin of the portion of the character object that is to be changed is changed, only the skin of the portion to be changed is changed. Is deformed. That is, only a desired portion of the character object can be easily deformed, and the portion that is not desired to be deformed is not affected (not deformed).
For example, there is a comical expression method in which a part of the character (for example, palm) or all of the character is crushed by so-called clay animation, etc. It becomes possible. In other words, if you associate multiple secondary bones in advance with the main bones that make up the character object, and then associate control points with each secondary bone, you can simply change the position of the secondary bone near the part you want to deform. Only the desired part can be deformed.

例えば、当該副ボーンに関連付けられた当該制御点の当該副座標系における位置は一定としてもよい。
本発明によれば、常に副ボーンの移動量と同じ量だけ制御点の位置を移動させることになるので、より簡単にスキンを変形させることができるようになる。例えば、ある移動対象の副ボーンに複数の制御点が予め関連付けられているとき、その副ボーンに関連付けられた制御点はすべて同じ移動量だけ移動させればよい。そして、その副ボーンに関連付けられた制御点のみから構成されるポリゴンについては、形状を変化させずに位置を移動させるだけで済み、より簡単にキャラクタオブジェクトを変形させることができる。
For example, the position of the control point associated with the secondary bone in the secondary coordinate system may be constant.
According to the present invention, since the position of the control point is always moved by the same amount as the movement amount of the secondary bone, the skin can be deformed more easily. For example, when a plurality of control points are associated in advance with a certain sub-bone to be moved, all the control points associated with the sub-bone may be moved by the same movement amount. Then, for a polygon composed only of control points associated with the sub-bone, it is only necessary to move the position without changing the shape, and the character object can be deformed more easily.

例えば、当該主ボーンには複数の当該副ボーンが関連付けられ、当該副ボーンのそれぞれに異なる制御点が関連付けられる。
また、記憶部は、当該副ボーンのそれぞれについて、当該副ボーンに固定された副座標系における当該副ボーンに関連付けられた制御点の位置を記憶する。
そして、計算部は、当該主ボーンの当該親座標系における位置と、当該副ボーンの当該主座標系におけるそれぞれの位置と、当該副ボーンのそれぞれに関連付けられた当該制御点の当該副座標系における位置とに基づいて、当該制御点の当該親座標系におけるそれぞれの位置を計算してもよい。
本発明によれば、1つの副ボーンには複数の制御点が関連付けられるので、一度に多くの制御点の位置を変えることができる。すなわち、複数のポリゴンの集合をまとめて移動することができ、より広いスキンを一度に変形できる。
For example, a plurality of sub-bones are associated with the main bone, and different control points are associated with the sub-bones.
In addition, the storage unit stores the position of the control point associated with the sub bone in the sub coordinate system fixed to the sub bone for each of the sub bones.
Then, the calculation unit calculates the position of the main bone in the parent coordinate system, the position of the sub bone in the main coordinate system, and the control point associated with each of the sub bones in the sub coordinate system. Each position of the control point in the parent coordinate system may be calculated based on the position.
According to the present invention, since a plurality of control points are associated with one sub-bone, the positions of many control points can be changed at a time. That is, a set of a plurality of polygons can be moved together, and a wider skin can be deformed at a time.

計算部は、当該副ボーンの移動方向を正とする軸をもつ1次元座標系(以下「移動座標系」という。)における座標値が最も大きい制御点(以下「先端制御点」という。)の移動量が、
(a)所定値より小さい場合、当該副ボーンに関連付けられた当該制御点の当該副座標系における位置が一定になるように、当該制御点のそれぞれを移動させた位置を計算し、
(b)所定値より大きい場合、当該先端制御点の当該副座標系における位置を一定にし、当該先端制御点以外の制御点の当該副座標系における位置を移動させた位置を計算する、
ようにしてもよい。
例えば、変形させるキャラクタオブジェクトが立体的な形状をもっていて、その形状が可変であり、そのキャラクタオブジェクトが固い壁や床などの面に押し潰されてぺしゃんこになる様子を表す画像を生成するとする。この例では、所定値とは、キャラクタオブジェクトから面までの最短距離のことである。制御点の中には、最も面に近いもの(つまり先端制御点)、次に面に近いもの、…、最も面に遠いものがある。
キャラクタオブジェクトが面のある向きに移動するとき、キャラクタオブジェクトが面に接するまでの間(つまり上記(a)の場合)、制御点の位置の変化量は、副ボーンの位置の変化量と同じである。例えば副ボーンが平行移動すれば、制御点も同じ変位だけ平行移動する。例えば副ボーンが回転移動すれば、制御点も同じ角度だけ回転移動する。
さらにキャラクタオブジェクトが面のある向きに移動し続けると、やがてキャラクタオブジェクトは面と衝突する。言い換えれば、先端制御点が面と接触する。キャラクタオブジェクトが面と衝突すると(つまり上記(b)の場合)、副座標系における先端制御点の位置はそれ以上変化せず固定される。他の制御点は引き続き同じ移動方向に移動する。やがて2番目に面に近い制御点が面と接触すると、2番目の制御点の位置はそれ以上変化せず固定される。同様にして3番目、4番目…に近い制御点の位置もやがて固定され、最終的には移動対象の副ボーンに関連付けられた制御点の位置はすべて固定される。キャラクタオブジェクトが面より奥にめり込んでしまうことはない。したがって、立体的な形状をもったキャラクタオブジェクトを、クレイアニメーションでぺしゃんこになるような表現手法と同じように変化させることが可能になる。
The calculation unit is a control point (hereinafter referred to as “tip control point”) having the largest coordinate value in a one-dimensional coordinate system (hereinafter referred to as “movement coordinate system”) having an axis whose positive direction is the movement direction of the sub-bone. The amount of movement is
(A) If smaller than a predetermined value, calculate the position where each of the control points is moved so that the position of the control point associated with the sub-bone in the sub-coordinate system is constant,
(B) If larger than a predetermined value, the position of the tip control point in the sub-coordinate system is made constant, and the position of the control point other than the tip control point moved in the sub-coordinate system is calculated.
You may do it.
For example, it is assumed that the character object to be deformed has a three-dimensional shape, the shape is variable, and an image is generated that shows how the character object is crushed by a hard wall or floor. In this example, the predetermined value is the shortest distance from the character object to the surface. Some of the control points are closest to the surface (ie, the tip control point), next closest to the surface, and most distant from the surface.
When the character object moves in a certain direction of the surface, the amount of change in the position of the control point is the same as the amount of change in the position of the sub-bone until the character object touches the surface (that is, in the case of (a) above). is there. For example, if the secondary bone is translated, the control point is also translated by the same displacement. For example, if the secondary bone rotates, the control point also rotates by the same angle.
Further, if the character object continues to move in the direction with the plane, the character object eventually collides with the plane. In other words, the tip control point contacts the surface. When the character object collides with the surface (that is, in the case of (b) above), the position of the tip control point in the sub-coordinate system is fixed without changing any more. Other control points continue to move in the same direction of movement. When the control point closest to the surface eventually comes into contact with the surface, the position of the second control point is fixed without changing any more. Similarly, the positions of the control points close to the third, fourth, etc. are eventually fixed, and finally the positions of the control points associated with the sub-bone to be moved are all fixed. The character object does not sink deeper than the surface. Therefore, it is possible to change a character object having a three-dimensional shape in the same manner as an expression method that makes a mess in clay animation.

計算部は、さらに、
(b1)当該先端制御点以外の制御点の当該移動座標系における位置が、当該先端制御点の当該移動座標系における位置と等しくなった場合、当該先端制御点以外の制御点の当該副座標系における位置も一定としてもよい。
本発明によれば、面に最も近い制御点(先端制御点)、2番目に面に近い制御点など、各制御点が固定される位置は、面と接する位置である。すなわち、移動対象の副ボーンに関連付けられた制御点は面に沿って平らに変形する。したがって、立体的な形状をもったキャラクタオブジェクトは面に沿って平らに変形することになり、クレイアニメーションでぺしゃんこになるような表現手法と同じような形状変化が可能になる。
The calculation unit
(B1) When the position of the control point other than the tip control point in the moving coordinate system becomes equal to the position of the tip control point in the moving coordinate system, the sub-coordinate system of the control point other than the tip control point The position at may also be constant.
According to the present invention, the position where each control point is fixed, such as the control point closest to the surface (tip control point), the control point closest to the surface, and the like is a position in contact with the surface. That is, the control points associated with the secondary bone to be moved are deformed flat along the surface. Therefore, the character object having a three-dimensional shape is deformed flat along the surface, and the shape change can be performed in the same manner as an expression method that becomes a mess in clay animation.

記憶部は、当該主ボーンの当該親座標系における向きと、当該副ボーンの当該主座標系における向きと、をさらに記憶してもよい。
そして、計算部は、当該主ボーンの当該親座標系における位置及び向きと、当該副ボーンの当該主座標系における位置及び向きと、当該制御点の当該副座標系における位置とに基づいて、当該制御点の当該親座標系における位置を計算してもよい。
本発明によれば、副ボーンは任意に姿勢を変えられるボーンとして定義できるようになる。例えば、副ボーンの形状は、点や、任意の長さをもった線分や曲線などとすることができる。また、平面、曲面などのような2次元の形状でもよいし、円柱、角柱、円錐、角錐、球形、多面体などのような3次元の形状でもよい。したがって、副ボーンを平行移動させるだけでなく、回転移動させることもできるようになり、スキンを様々な形状に変化させることが可能になる。
The storage unit may further store the orientation of the main bone in the parent coordinate system and the orientation of the sub-bone in the main coordinate system.
Then, the calculation unit, based on the position and orientation of the main bone in the parent coordinate system, the position and orientation of the sub bone in the main coordinate system, and the position of the control point in the sub coordinate system, The position of the control point in the parent coordinate system may be calculated.
According to the present invention, the secondary bone can be defined as a bone whose posture can be arbitrarily changed. For example, the shape of the secondary bone can be a point, a line segment or a curve having an arbitrary length, or the like. Further, it may be a two-dimensional shape such as a plane or a curved surface, or may be a three-dimensional shape such as a cylinder, a prism, a cone, a pyramid, a sphere, or a polyhedron. Accordingly, the secondary bone can be rotated as well as translated, and the skin can be changed into various shapes.

更新部は、当該副ボーンの当該主座標系における位置を、平行移動と回転移動とのうち少なくともいずれか一方により移動させて、当該位置を更新してもよい。
本発明によれば、画像生成装置は、副ボーンを平行移動させたり回転移動させたりすることができる。例えば副座標系における制御点の位置を固定にすると、副ボーンの平行移動又は回転移動による移動量と同じ量だけ制御点の位置も移動する。したがって、キャラクタオブジェクトを部分的にもしくは全体的に平らにすることができるほか、所望の部分に窪みをつけたり捻ったりすることもできる。なお、回転移動には、ある点を中心に回転させる中心点回転移動(腕をぐるぐる回すような回転移動)だけでなく、ある軸を中心に回転させる軸回転移動(筒をころころ転がすような回転移動)も含まれる。
The updating unit may update the position by moving the position of the sub-bone in the main coordinate system by at least one of parallel movement and rotational movement.
According to the present invention, the image generating apparatus can translate or rotate the secondary bone. For example, if the position of the control point in the sub-coordinate system is fixed, the position of the control point is also moved by the same amount as the movement amount due to the parallel or rotational movement of the sub-bone. Therefore, the character object can be partially or entirely flattened, and a desired portion can be recessed or twisted. In addition, in the rotational movement, not only the central point rotational movement that rotates around a certain point (rotational movement that rotates around the arm), but also the axial rotational movement that rotates around a certain axis (rotation that rolls the cylinder with rollers) Move).

記憶部は、当該副ボーンに関連付けて当該副座標系における位置が固定されたバウンディングエリアの位置と、障害物オブジェクトの当該親座標系における位置と、をさらに記憶してもよい。
また、画像生成装置は、当該主ボーンの当該親座標系における位置と、当該副ボーンの当該主座標系における位置と、当該バウンディングエリアが割り当てられた当該副座標系における当該バウンディングエリアの位置と、当該親座標系における当該障害物オブジェクトの位置と、に基づいて、当該バウンディングエリアと当該障害物オブジェクトとが衝突するか否かを判定する衝突判定部をさらに備えることができる。
そして、更新部は、当該障害物オブジェクトと衝突すると判定されたバウンディングエリアの位置を、当該バウンディングエリアと当該障害物オブジェクトが衝突しなくなるまで、当該障害物オブジェクトから遠ざけるように移動させてもよい。
ここで、バウンディングエリアは、キャラクタオブジェクトと障害物オブジェクトとの衝突判定に用いられ、予め設定された位置に配置される。副ボーンに固定された副座標系におけるバウンディングエリアの位置は不変である。典型的には、バウンディングエリアは、キャラクタオブジェクトの表面と同じか、もしくは表面より外側に覆うように、配置される。例えばバウンディングエリアの形状をキャラクタオブジェクトの表面と同じ形状にすると、スキンをそのままバウンディングエリアとして扱うことができる。障害物オブジェクトがバウンディングエリアに接したとき、もしくはバウンディングエリア内に入ったとき、キャラクタオブジェクトは障害物オブジェクトと衝突したものと判定される。
キャラクタオブジェクトが障害物オブジェクトと衝突したと判定されると、バウンディングエリアの位置は障害物オブジェクトから遠ざかるように移動する。副座標系におけるバウンディングエリアの位置は不変であるから、副ボーンも障害物オブジェクトから遠ざかるように移動する。つまり、副ボーンの移動に合わせて、関連付けられた制御点の位置も移動し、スキンの形状が変化する。
本発明によれば、画像生成装置は、キャラクタオブジェクトを変形させるとき、変形する側のキャラクタオブジェクトを、変形させる側の(相手の)キャラクタオブジェクトの形状に合わせるように、変形させることができる。バウンディングエリアの形状をスキンの形状に合わせるようにすれば、よりリアリティのある変形のさせ方が可能になる。また、バウンディングエリアの形状を簡略化すれば、デフォルメされた変形のさせ方が可能になる。
The storage unit may further store the position of the bounding area where the position in the sub-coordinate system is fixed in association with the sub-bone and the position of the obstacle object in the parent coordinate system.
In addition, the image generation device, the position of the main bone in the parent coordinate system, the position of the sub-bone in the main coordinate system, the position of the bounding area in the sub-coordinate system to which the bounding area is assigned, A collision determination unit that determines whether or not the bounding area and the obstacle object collide based on the position of the obstacle object in the parent coordinate system can be further provided.
Then, the update unit may move the position of the bounding area determined to collide with the obstacle object so as to be away from the obstacle object until the bounding area and the obstacle object no longer collide.
Here, the bounding area is used for determination of a collision between the character object and the obstacle object, and is arranged at a preset position. The position of the bounding area in the secondary coordinate system fixed to the secondary bone is unchanged. Typically, the bounding area is arranged to be the same as the surface of the character object or to cover the outside of the surface. For example, if the shape of the bounding area is the same as the surface of the character object, the skin can be handled as it is as a bounding area. When the obstacle object touches the bounding area or enters the bounding area, it is determined that the character object has collided with the obstacle object.
If it is determined that the character object has collided with the obstacle object, the position of the bounding area moves away from the obstacle object. Since the position of the bounding area in the secondary coordinate system is unchanged, the secondary bone also moves away from the obstacle object. That is, as the secondary bone moves, the position of the associated control point also moves, and the shape of the skin changes.
According to the present invention, when the character object is deformed, the image object can be deformed so that the deforming character object matches the shape of the deforming (opposite) character object. If the shape of the bounding area is matched to the shape of the skin, more realistic deformation can be achieved. Also, if the shape of the bounding area is simplified, the deformed deformation can be performed.

記憶部は、当該主ボーンの当該親座標系における向きと、当該副ボーンの当該主座標系における向きと、当該バウンディングエリアの当該副座標系における向きと、当該障害物オブジェクトの当該親座標系における向きと、をさらに記憶してもよい。
そして、衝突判定部は、当該主ボーンの当該親座標系における位置及び向きと、当該副ボーンの当該主座標系における位置及び向きと、当該バウンディングエリアが割り当てられた当該副ボーンに固定された副座標系における当該バウンディングエリアの位置及び向きと、当該障害物オブジェクトの当該親座標系における位置及び向きと、に基づいて、当該バウンディングエリアと当該障害物オブジェクトとが衝突するか否かを判定してもよい。
本発明によれば、バウンディングエリアは任意に姿勢を変えられるエリアとして定義できるようになる。バウンディングエリアは、平行移動、回転移動、もしくはこれらの移動の組み合わせを用いて移動することができる。つまり、副ボーンが様々な移動方法で移動し、スキンは様々な形状に変化する。例えば、障害物オブジェクトの形状に合わせて、スキンの一部もしくは全部を押したり引っ張ったりして変形することもできるし、回転させたり捻ったりして変形することもできる。
The storage unit includes a direction of the main bone in the parent coordinate system, a direction of the sub-bone in the main coordinate system, a direction of the bounding area in the sub-coordinate system, and the obstacle object in the parent coordinate system. The direction may be further stored.
The collision determination unit then fixes the position and orientation of the main bone in the parent coordinate system, the position and orientation of the sub bone in the main coordinate system, and the sub bone fixed to the sub bone to which the bounding area is assigned. Based on the position and orientation of the bounding area in the coordinate system and the position and orientation of the obstacle object in the parent coordinate system, it is determined whether the bounding area and the obstacle object collide. Also good.
According to the present invention, the bounding area can be defined as an area whose posture can be arbitrarily changed. The bounding area can be moved using parallel movement, rotational movement, or a combination of these movements. That is, the secondary bone moves in various ways, and the skin changes into various shapes. For example, it can be deformed by pushing or pulling part or all of the skin according to the shape of the obstacle object, or can be deformed by rotating or twisting.

当該バウンディングエリアは、当該バウンディングエリアが割り当てられた副ボーンに関連付けられた複数の制御点と、当該副ボーンとの距離の平均値、もしくは、最大値を半径とし、当該副ボーンの位置を中心とする球であってもよい。
バウンディングエリアとして球の形状を採用すると、キャラクタオブジェクトと障害物オブジェクトとの衝突判定が簡略化される。また、衝突後のスキンの変形のさせ方も簡略化される。例えば、バウンディングエリアと障害物オブジェクトが衝突するとき、障害物オブジェクトの形状も部分的に球体として近似すると、衝突判定と衝突前後の形状変化は、剛体の球体同士の衝突モデルに置き換えることが可能になる。また、衝突モデルとして扱う際、古典力学における完全弾性衝突に仮定したり、これらの球体の質量を同じに、もしくはどちらか片方の質量を圧倒的に大きいものと仮定したりすれば、衝突後の球体の位置の計算は容易になる。すなわち、衝突後の制御点の位置計算は簡略化され、スキンを簡単に変形させることができるようになる。
The bounding area is an average value or a maximum value of the distances between a plurality of control points associated with the secondary bone to which the bounding area is assigned and the secondary bone, and the center is the position of the secondary bone. It may be a sphere.
When a sphere shape is adopted as the bounding area, the collision determination between the character object and the obstacle object is simplified. In addition, the deformation of the skin after the collision is simplified. For example, when a bounding area and an obstacle object collide, if the shape of the obstacle object is also partially approximated as a sphere, the collision determination and shape change before and after the collision can be replaced with a collision model between rigid spheres Become. Also, when treating it as a collision model, if it is assumed that it is a completely elastic collision in classical mechanics, or if these spheres have the same mass or one of them is overwhelmingly large, Calculation of the position of the sphere is easy. That is, the calculation of the position of the control point after the collision is simplified, and the skin can be easily deformed.

計算部は、当該主座標系と当該副座標系のスケールを変更し、当該主ボーンの当該親座標系における位置と、当該副ボーンの当該スケールを変更した主座標系における位置と、当該制御点の当該スケールを変更した副座標系における位置とに基づいて、当該制御点の当該親座標系における位置を計算してもよい。
例えば、主座標系と副座標系のスケールをそれぞれ同じ量だけ変えると、主ボーンは形状を変えずに大きさが拡大又は縮小する。座標系として、一般的には3次元座標系が用いられるが、いずれの1つ又は2つの次元についてスケールを変えることとしてもよく、この場合、主ボーンの大きさだけでなく、あるいは主ボーンの大きさに変えて、主ボーンの形状も変化する。
本発明によれば、副ボーンの位置を移動させるだけでなく主ボーンの大きさや形状を変えることによってスキンを変化させることができる。すなわち、キャラクタオブジェクトの変化の仕方にバリエーションを持たせることができる。例えば、キャラクタオブジェクトの一部分もしくは全部が拡大・縮小するように変形させることができる。
The calculation unit changes the scale of the main coordinate system and the sub coordinate system, the position of the main bone in the parent coordinate system, the position of the sub bone in the main coordinate system where the scale is changed, and the control point The position of the control point in the parent coordinate system may be calculated based on the position in the sub-coordinate system where the scale is changed.
For example, if the scales of the main coordinate system and the sub-coordinate system are changed by the same amount, the size of the main bone is enlarged or reduced without changing the shape. As a coordinate system, a three-dimensional coordinate system is generally used, but the scale may be changed for any one or two dimensions. In this case, not only the size of the main bone but also the main bone The shape of the main bone changes with the size.
According to the present invention, the skin can be changed not only by moving the position of the secondary bone but also by changing the size and shape of the main bone. That is, it is possible to provide variations in the way the character object changes. For example, a part or all of the character object can be deformed so as to be enlarged or reduced.

本発明のその他の観点に係る画像生成方法は、記憶部、計算部、画像生成部、更新部を有する画像生成装置にて実行される画像生成方法であって、計算ステップ、画像生成ステップ、更新ステップを備える。
記憶部には、仮想空間に配置される座標系(以下「親座標系」という。)における主ボーンの位置と、当該主ボーンに固定された座標系(以下「主座標系」という。)における副ボーンの位置と、当該副ボーンに固定された座標系(以下「副座標系」という。)における当該副ボーンに関連付けられた制御点の位置と、が記憶される。
計算ステップは、計算部が、当該主ボーンの当該親座標系における位置と、当該副ボーンの当該主座標系における位置と、当該制御点の当該副座標系における位置とに基づいて、当該制御点の当該親座標系における位置を計算する。
画像生成ステップは、画像生成部が、計算された制御点の位置により、スキンの形状を定め、当該仮想空間に配置される当該スキンの形状を表す画像を生成する。
更新ステップは、更新部が、当該副ボーンの当該主座標系における位置を更新して、当該スキンの形状を変化させる。
本発明によれば、オブジェクトの変形させたくない部分は変形させず、所望の部分だけを変形させた画像を、容易に生成することができる。
An image generation method according to another aspect of the present invention is an image generation method executed by an image generation apparatus having a storage unit, a calculation unit, an image generation unit, and an update unit, and includes a calculation step, an image generation step, and an update Comprising steps.
In the storage unit, the position of the main bone in the coordinate system (hereinafter referred to as “parent coordinate system”) arranged in the virtual space and the coordinate system (hereinafter referred to as “main coordinate system”) fixed to the main bone. The position of the secondary bone and the position of the control point associated with the secondary bone in a coordinate system fixed to the secondary bone (hereinafter referred to as “sub-coordinate system”) are stored.
In the calculation step, the calculation unit is configured to control the control point based on the position of the main bone in the parent coordinate system, the position of the sub-bone in the main coordinate system, and the position of the control point in the sub-coordinate system. Is calculated in the parent coordinate system.
In the image generation step, the image generation unit determines the shape of the skin based on the calculated position of the control point, and generates an image representing the shape of the skin arranged in the virtual space.
In the update step, the update unit updates the position of the sub-bone in the main coordinate system to change the shape of the skin.
According to the present invention, it is possible to easily generate an image in which only a desired portion is deformed without deforming a portion that the object does not want to deform.

本発明のその他の観点に係るプログラムは、コンピュータを、記憶部、計算部、画像生成部、更新部として機能させる。
記憶部は、仮想空間に配置される座標系(以下「親座標系」という。)における主ボーンの位置と、当該主ボーンに固定された座標系(以下「主座標系」という。)における副ボーンの位置と、当該副ボーンに固定された座標系(以下「副座標系」という。)における当該副ボーンに関連付けられた制御点の位置と、を記憶する。
計算部は、当該主ボーンの当該親座標系における位置と、当該副ボーンの当該主座標系における位置と、当該制御点の当該副座標系における位置とに基づいて、当該制御点の当該親座標系における位置を計算する。
画像生成部は、計算された制御点の位置により、スキンの形状を定め、当該仮想空間に配置される当該スキンの形状を表す画像を生成する。
更新部は、当該副ボーンの当該主座標系における位置を更新して、当該スキンの形状を変化させる。
本発明によれば、オブジェクトの変形させたくない部分は変形させず、所望の部分だけを変形させた画像を、容易に生成することができる。
A program according to another aspect of the present invention causes a computer to function as a storage unit, a calculation unit, an image generation unit, and an update unit.
The storage unit includes a position of a main bone in a coordinate system (hereinafter referred to as “parent coordinate system”) arranged in the virtual space, and a subordinate in a coordinate system (hereinafter referred to as “main coordinate system”) fixed to the main bone. The position of the bone and the position of the control point associated with the sub bone in the coordinate system (hereinafter referred to as “sub coordinate system”) fixed to the sub bone are stored.
The calculation unit calculates the parent coordinates of the control point based on the position of the main bone in the parent coordinate system, the position of the sub bone in the main coordinate system, and the position of the control point in the sub coordinate system. Calculate the position in the system.
The image generation unit determines the shape of the skin based on the calculated position of the control point, and generates an image representing the shape of the skin arranged in the virtual space.
The update unit updates the position of the sub-bone in the main coordinate system to change the shape of the skin.
According to the present invention, it is possible to easily generate an image in which only a desired portion is deformed without deforming a portion that the object does not want to deform.

また、本発明のプログラムは、コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、半導体メモリ等のコンピュータ読取可能な情報記憶媒体に記録することができる。
上記プログラムは、プログラムが実行されるコンピュータとは独立して、コンピュータ通信網を介して配布・販売することができる。また、上記情報記憶媒体は、コンピュータとは独立して配布・販売することができる。
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, an image obtained by deforming an object in a virtual space can be easily generated.

本発明の実施形態を説明する。以下では、理解を容易にするため、ゲーム用の情報処理装置を利用して本発明が実現される実施形態を説明するが、以下の実施形態は説明のためのものであり、本願発明の範囲を制限するものではない。したがって、当業者であればこれらの各要素もしくは全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。   An embodiment of the present invention will be described. In the following, for ease of understanding, an embodiment in which the present invention is realized using an information processing apparatus for games will be described. However, the following embodiment is for explanation, and the scope of the present invention There is no limit. 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は、プログラムを実行することにより、本発明の画像生成装置の機能を果たす典型的な情報処理装置100の概要構成を示す模式図である。以下、本図を参照して説明する。   FIG. 1 is a schematic diagram showing a schematic configuration of a typical information processing apparatus 100 that performs the function of the image generation 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と、DVD−ROM(Digital Versatile Disk - Read Only Memory)ドライブ107と、画像処理部108と、音声処理部109と、NIC(Network Interface Card)110と、を備える。   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, a DVD-ROM ( A digital versatile disk-read only memory (107) drive 107, an image processing unit 108, an audio processing unit 109, and a NIC (Network Interface Card) 110 are provided.

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

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 a game such as a dance game or a soccer 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 game chat communication using the network ( 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ドライブ107に装着されるDVD−ROMには、ゲームを実現するためのプログラムとゲームに付随する画像データや音声データが記録される。CPU 101の制御によって、DVD−ROMドライブ107は、これに装着されたDVD−ROMに対する読み出し処理を行って、必要なプログラムやデータを読み出し、これらはRAM 103等に一時的に記憶される。   A DVD-ROM mounted on the DVD-ROM drive 107 stores a program for realizing the game and image data and sound data associated with the game. Under the control of the CPU 101, the DVD-ROM drive 107 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.

画像処理部108は、DVD−ROMから読み出されたデータをCPU 101や画像処理部108が備える画像演算プロセッサ(図示せず)によって加工処理した後、これを画像処理部108が備えるフレームメモリ(図示せず)に記録する。フレームメモリに記録された画像情報は、所定の同期タイミングでビデオ信号に変換され画像処理部108に接続されるモニター(図示せず)へ出力される。これにより、各種の画像表示が可能となる。   The image processing unit 108 processes the data read from the DVD-ROM by the CPU 101 or an image arithmetic processor (not shown) included in the image processing unit 108, 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 108. Thereby, various image displays are possible.

画像演算プロセッサは、2次元の画像の重ね合わせ演算やアルファブレンディング等の透過演算、各種の飽和演算を高速に実行できる。   The image calculation processor can execute a two-dimensional image overlay calculation, a transparency calculation such as alpha 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 defining the character shape. is there.

また、ゲームの画像などの情報をDVD−ROMに用意しておき、これをフレームメモリに展開することによって、ゲームの様子などを画面に表示することができるようになる。   Further, by preparing information such as game images in a DVD-ROM and expanding the information in a frame memory, the state of the game can be displayed on the screen.

音声処理部109は、DVD−ROMから読み出した音声データをアナログ音声信号に変換し、これに接続されたスピーカ(図示せず)から出力させる。また、CPU 101の制御の下、ゲームの進行の中で発生させるべき効果音や楽曲データを生成し、これに対応した音声をスピーカから出力させる。   The audio processing unit 109 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.

音声処理部109では、DVD−ROMに記録された音声データがMIDIデータである場合には、これが有する音源データを参照して、MIDIデータをPCMデータに変換する。また、ADPCM(Adaptive Differential Pulse Code Modulation)形式やOgg Vorbis形式等の圧縮済音声データである場合には、これを展開してPCMデータに変換する。PCMデータは、そのサンプリング周波数に応じたタイミングでD/A(Digital/Analog)変換を行って、スピーカに出力することにより、音声出力が可能となる。   When the audio data recorded on the DVD-ROM is MIDI data, the audio processing unit 109 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 (Adaptive Differential Pulse Code Modulation) 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.

NIC 110は、情報処理装置100をインターネット等のコンピュータ通信網(図示せず)に接続するためのものであり、LAN(Local Area Network)を構成する際に用いられる10BASE−T/100BASE−T規格にしたがうものや、電話回線を用いてインターネットに接続するためのアナログモデム、ISDN(Integrated Services Digital Network)モデム、ADSL(Asymmetric Digital Subscriber Line)モデム、ケーブルテレビジョン回線を用いてインターネットに接続するためのケーブルモデム等と、これらとCPU 101との仲立ちを行うインターフェース(図示せず)により構成される。   The NIC 110 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.

このほか、情報処理装置100は、ハードディスク等の大容量外部記憶装置を用いて、ROM 102、RAM 103、外部メモリ106、DVD−ROMドライブ107に装着される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 attached to the DVD-ROM drive 107, and the like. You may comprise.

次に、本実施形態の画像生成装置200の機能的な構成について説明する。
図2は、画像生成装置200の機能的な構成を示す図である。本図に示すように、画像生成装置200は、記憶部201、計算部202、画像生成部203、更新部204を備える。
Next, a functional configuration of the image generation apparatus 200 according to the present embodiment will be described.
FIG. 2 is a diagram illustrating a functional configuration of the image generation apparatus 200. As shown in the figure, the image generation apparatus 200 includes a storage unit 201, a calculation unit 202, an image generation unit 203, and an update unit 204.

図3は、ボーン、制御点、スキンを用いたオブジェクトの仮想空間モデルの一例を表す図である。仮想空間にはグローバルな座標系311が定義され、以下、この座標系311を「親座標系」311と呼ぶことにする。例えば親座標系311にはデカルト座標系が用いられる。   FIG. 3 is a diagram illustrating an example of a virtual space model of an object using bones, control points, and skins. A global coordinate system 311 is defined in the virtual space. Hereinafter, this coordinate system 311 is referred to as a “parent coordinate system” 311. For example, a Cartesian coordinate system is used as the parent coordinate system 311.

この仮想空間には、主ボーン301(本図中では301A、301Bの2つ)が配置されている。主ボーン301の長さと形状は一定である。主ボーン301の位置と向きは可変である。つまり主ボーン301の姿勢は変化する。主ボーン301Aの端点305A2は、主ボーン301Bの端点305B1に連結されている。例えば、主ボーン301Bは、端点305B1を回転中心にして、主ボーン301Aに対して回転することができる。   In this virtual space, main bones 301 (two in the figure, 301A and 301B) are arranged. The length and shape of the main bone 301 are constant. The position and orientation of the main bone 301 are variable. That is, the posture of the main bone 301 changes. The end point 305A2 of the main bone 301A is connected to the end point 305B1 of the main bone 301B. For example, the main bone 301B can rotate with respect to the main bone 301A with the end point 305B1 as the center of rotation.

主ボーン301の位置は、親座標系311における座標値として表すことができる。また、主ボーン301の向きも、親座標系311における方向ベクトルとして表すことができる。主ボーン301の形状は任意である。   The position of the main bone 301 can be expressed as a coordinate value in the parent coordinate system 311. The orientation of the main bone 301 can also be expressed as a direction vector in the parent coordinate system 311. The shape of the main bone 301 is arbitrary.

主ボーン301Aは、図示しない他の主ボーンと端点305A1で連結されていてもよい。同様に、主ボーン301Bは、図示しない他の主ボーンと端点305B2で連結されていてもよい。本発明をより理解しやすくするため、2つの主ボーン301A,301Bから構成されるモデルを用いて説明する。   The main bone 301A may be connected to another main bone (not shown) at the end point 305A1. Similarly, the main bone 301B may be connected to another main bone (not shown) at the end point 305B2. In order to make the present invention easier to understand, a description will be given using a model composed of two main bones 301A and 301B.

主ボーン301Aには、主ボーン301Aに固定された座標系312が定義され、以下、この座標系312を「主座標系」312と呼ぶ。主座標系312の原点の位置は、主ボーン301Aの端点305A1の位置と一致する。同様に、主ボーン301Bにも別の主座標系(図示せず)を定義することができる。例えば主座標系312には極座標系が用いられる。   A coordinate system 312 fixed to the main bone 301A is defined for the main bone 301A. Hereinafter, this coordinate system 312 is referred to as a “main coordinate system” 312. The position of the origin of the main coordinate system 312 matches the position of the end point 305A1 of the main bone 301A. Similarly, another main coordinate system (not shown) can be defined for the main bone 301B. For example, a polar coordinate system is used for the main coordinate system 312.

例えば、主ボーン301Aに固定された主座標系312における回転量を与えることにより、一方の主ボーン301Aに対する他方の主ボーン301Bの相対的な姿勢が一意に定まることになる。主ボーン301Bの運動は、主座標系312から親座標系311に座標変換することにより、親座標系311における運動として記述できる。なお、ここで言う回転には、「ある1つの軸を中心に回転する」の意味だけでなく、「ある1つの点を中心に回転する」の意味も含まれる。   For example, by giving a rotation amount in the main coordinate system 312 fixed to the main bone 301A, the relative posture of the other main bone 301B with respect to the one main bone 301A is uniquely determined. The motion of the main bone 301B can be described as a motion in the parent coordinate system 311 by performing coordinate conversion from the main coordinate system 312 to the parent coordinate system 311. The rotation mentioned here includes not only the meaning of “rotating about a certain axis” but also the meaning of “rotating about a certain point”.

主ボーン301には、副ボーン302(本図中では302A、302B、302Cの3つ)が関連付けられている。副ボーン302の初期位置(オブジェクトを変形させる前の位置)は、主ボーン301上の所定の位置である。それぞれの副ボーン302には、1つ以上の制御点303が関連付けられている。本図中では、副ボーン302Aには制御点303A1〜303A6が、副ボーン302Bには制御点303B1〜303B6が、副ボーン302Cには制御点303C1〜303C6が、それぞれ関連付けられている。以下、図中では、この関連付けを点線で表現している。   The main bone 301 is associated with sub-bones 302 (three in the figure, 302A, 302B, and 302C). The initial position of the secondary bone 302 (the position before the object is deformed) is a predetermined position on the main bone 301. Each secondary bone 302 is associated with one or more control points 303. In the figure, control points 303A1 to 303A6 are associated with the secondary bone 302A, control points 303B1 to 303B6 are associated with the secondary bone 302B, and control points 303C1 to 303C6 are associated with the secondary bone 302C. Hereinafter, in the figure, this association is expressed by a dotted line.

つまり、制御点303は、従来のように主ボーン301に関連付けられるのではなく、副ボーン302に関連付けられる。1つの制御点303は、いずれか1つの副ボーン302に関連付けられる。1つの副ボーン302に複数の制御点303を関連付けてもよい。   That is, the control point 303 is not associated with the main bone 301 as in the prior art, but is associated with the secondary bone 302. One control point 303 is associated with any one secondary bone 302. A plurality of control points 303 may be associated with one secondary bone 302.

副ボーン302の位置と向きは、主座標系312を用いて、それぞれ主ボーンに対する相対座標と相対ベクトルとして表すことができる。主座標系312から親座標系311に座標変換することにより、主座標系312を用いた副ボーン302の位置と向きは、それぞれ親座標系311を用いた座標とベクトルとして表すことができる。   The position and orientation of the secondary bone 302 can be expressed as relative coordinates and relative vectors with respect to the main bone, respectively, using the main coordinate system 312. By performing coordinate conversion from the main coordinate system 312 to the parent coordinate system 311, the position and orientation of the sub-bone 302 using the main coordinate system 312 can be expressed as coordinates and vectors using the parent coordinate system 311, respectively.

副ボーン302Aには、副ボーン302Aに固定された座標系313が定義され、以下、この座標系313を「副座標系」313と呼ぶ。副座標系313の原点の位置は、副ボーン302の位置と一致する。同様に、副ボーン302B,302Cにもそれぞれ副座標系(図示せず)を定義することができる。例えば副座標系313には極座標系が用いられる。   In the secondary bone 302A, a coordinate system 313 fixed to the secondary bone 302A is defined. Hereinafter, this coordinate system 313 is referred to as a “sub coordinate system” 313. The position of the origin of the secondary coordinate system 313 matches the position of the secondary bone 302. Similarly, a secondary coordinate system (not shown) can be defined for each of the secondary bones 302B and 302C. For example, a polar coordinate system is used for the sub-coordinate system 313.

親座標系311又は主座標系312における制御点303の位置は可変であるが、副座標系313における制御点303の位置(言い換えれば、制御点303の副ボーン302に対する相対的位置)は不変である。   The position of the control point 303 in the parent coordinate system 311 or the main coordinate system 312 is variable, but the position of the control point 303 in the sub-coordinate system 313 (in other words, the relative position of the control point 303 with respect to the sub-bone 302) is unchanged. is there.

副ボーン302の形状は任意である。本図では、副ボーン302A,302B,302Cはいずれも角柱の形状をしているが、これは本発明を理解しやすいように便宜的に記したものである。典型的には、副ボーン302は長さも太さもゼロの架空のボーンとすることができる。副ボーン302は制御点303の位置の制御のために用いるものであって、画像生成装置200が生成する画像には副ボーン302は描かれない。   The shape of the secondary bone 302 is arbitrary. In this figure, the secondary bones 302A, 302B, and 302C are all in the shape of prisms, but this is shown for convenience in understanding the present invention. Typically, the secondary bone 302 can be an imaginary bone that is zero in length and thickness. The secondary bone 302 is used for controlling the position of the control point 303, and the secondary bone 302 is not drawn in the image generated by the image generation apparatus 200.

座標変換により制御点303の親座標系311における位置が決まると、制御点303の位置に基づいてスキン304の形状を決めることができる。本実施形態では、スキン304は、微小な多角形(典型的には三角形や四角形など)のポリゴン(プリミティブ)の集合体であり、予め決められた対応付けで制御点303をポリゴンの頂点としている。スキン304の形状は、ポリゴンに分割され数値データ化されて表される。   When the position of the control point 303 in the parent coordinate system 311 is determined by coordinate conversion, the shape of the skin 304 can be determined based on the position of the control point 303. In the present embodiment, the skin 304 is a collection of polygons (primitives) of minute polygons (typically triangles, quadrangles, etc.), and the control points 303 are vertexes of the polygons in a predetermined association. . The shape of the skin 304 is represented by being divided into polygons and converted into numerical data.

制御点303をポリゴンの頂点としてスキン304の形状を定める手法のほか、各制御点303に重みを割り振ることによって定義されるNURBS(Non Uniform Rational B Spline)曲面をスキンとする手法を用いてもよい。この手法では、制御点303の数をさらに増やすことも可能である。この場合には、2つのパラメータu,vの有理多項式によりスキン304内の点の座標値が定められ、スキン304の形状が定まることとなる。   In addition to the method of determining the shape of the skin 304 using the control points 303 as the vertices of polygons, a method of using NURBS (Non Uniform Rational B Spline) curved surfaces defined by assigning weights to the control points 303 as skins may be used. . In this method, the number of control points 303 can be further increased. In this case, the coordinate value of the point in the skin 304 is determined by the rational polynomial of the two parameters u and v, and the shape of the skin 304 is determined.

図2に戻り、記憶部201は、主ボーン情報251、副ボーン情報252、制御点情報253を記憶する。RAM 103とCPU 101が協働して記憶部201として機能する。   Returning to FIG. 2, the storage unit 201 stores main bone information 251, sub bone information 252, and control point information 253. The RAM 103 and the CPU 101 cooperate to function as the storage unit 201.

主ボーン情報251は、仮想空間に配置される親座標系311における主ボーン301の位置と向きを示す情報である。複数の主ボーン301が存在する場合には、それぞれの主ボーン301の位置と向きを示す主ボーン情報251が記憶部201に記憶される。位置は、親座標系311を用いた座標値として表される。向きは、親座標系311を用いた方向ベクトルとして表される。ただし、主ボーン301の向きが不変である(もしくは不変を見なせる)モデルの場合、主ボーン情報251は、主ボーン301の向きを示す情報を含まなくてもよい。   The main bone information 251 is information indicating the position and orientation of the main bone 301 in the parent coordinate system 311 arranged in the virtual space. When there are a plurality of main bones 301, main bone information 251 indicating the position and orientation of each main bone 301 is stored in the storage unit 201. The position is expressed as a coordinate value using the parent coordinate system 311. The direction is represented as a direction vector using the parent coordinate system 311. However, in the case of a model in which the orientation of the main bone 301 is invariable (or can be regarded as invariant), the main bone information 251 may not include information indicating the orientation of the main bone 301.

副ボーン情報252は、主ボーン301に固定された主座標系312における副ボーン302の位置と向きを示す情報である。複数の副ボーン302が存在する場合には、それぞれの副ボーン302の位置と向きを示す副ボーン情報252が記憶部201に記憶される。位置と向きは、それぞれ主座標系312を用いた座標値と方向ベクトルとして表される。また、位置と向きは、主座標系312から親座標系311に座標変換することにより、それぞれ親座標系311を用いた座標値と方向ベクトルとして表すことができる。ただし、副ボーン302の向きが不変である(もしくは不変を見なせる)モデルの場合、副ボーン情報252は、副ボーン302の向きを示す情報を含まなくてもよい。   The secondary bone information 252 is information indicating the position and orientation of the secondary bone 302 in the main coordinate system 312 fixed to the main bone 301. When there are a plurality of secondary bones 302, secondary bone information 252 indicating the position and orientation of each secondary bone 302 is stored in the storage unit 201. The position and orientation are expressed as coordinate values and direction vectors using the main coordinate system 312, respectively. The position and orientation can be expressed as coordinate values and direction vectors using the parent coordinate system 311 by converting the coordinates from the main coordinate system 312 to the parent coordinate system 311. However, in the case of a model in which the orientation of the secondary bone 302 is not changed (or can be regarded as unchanged), the secondary bone information 252 may not include information indicating the orientation of the secondary bone 302.

制御点情報253は、副ボーン302のそれぞれについて、副ボーン302に固定された副座標系313における、副ボーン302に予め割り当てられた制御点303の位置を示す情報である。複数の制御点303が存在する場合には、それぞれの制御点303の位置を示す制御点情報253が記憶部201に記憶される。ある副ボーン302に固定された副座標系313における、その副ボーン302に関連付けられた制御点303の位置は、一定である。制御点303の位置は、副座標系313から主座標系312に座標変換することにより、主座標系312を用いた座標値として表される。さらに制御点303の位置は、主座標系312から親座標系311に座標変換することによって、親座標系311を用いた座標値として表わされる。   The control point information 253 is information indicating the position of the control point 303 previously assigned to the secondary bone 302 in the secondary coordinate system 313 fixed to the secondary bone 302 for each secondary bone 302. When there are a plurality of control points 303, control point information 253 indicating the position of each control point 303 is stored in the storage unit 201. The position of the control point 303 associated with the secondary bone 302 in the secondary coordinate system 313 fixed to the secondary bone 302 is constant. The position of the control point 303 is expressed as a coordinate value using the main coordinate system 312 by performing coordinate conversion from the sub-coordinate system 313 to the main coordinate system 312. Further, the position of the control point 303 is expressed as a coordinate value using the parent coordinate system 311 by performing coordinate conversion from the main coordinate system 312 to the parent coordinate system 311.

計算部202は、記憶部201に記憶された主ボーン情報251と副ボーン情報252と制御点情報253とに基づいて、各制御点303の親座標系311における位置を計算する。つまり、計算部202は、副座標系313における制御点303の位置を、副座標系313から主座標系312に座標変換し、更に主座標系312から親座標系311に座標変換することによって、副座標系313における位置を親座標系311における位置に変換する。CPU 101と画像処理部108が協働して計算部202として機能する。   The calculation unit 202 calculates the position of each control point 303 in the parent coordinate system 311 based on the main bone information 251, the sub bone information 252, and the control point information 253 stored in the storage unit 201. That is, the calculation unit 202 converts the position of the control point 303 in the sub-coordinate system 313 from the sub-coordinate system 313 to the main coordinate system 312, and further converts the coordinates from the main coordinate system 312 to the parent coordinate system 311. The position in the sub coordinate system 313 is converted into the position in the parent coordinate system 311. The CPU 101 and the image processing unit 108 cooperate to function as the calculation unit 202.

画像生成部203は、計算部202により計算された制御点303の親座標系311における位置に基づいて、スキン304の形状を求め、仮想空間に配置されるスキン304の形状を表す画像を生成する。画像生成部203は、予め決められた対応付けで各制御点303を頂点としたポリゴンを配置することによって、スキン304を配置した画像を生成する。例えば、後述する更新部204により副ボーン302の主座標系における位置又は向きが更新されると、画像生成部203は、計算部202によって計算された更新後の制御点303の位置に基づいて新たなスキン304を配置した画像を生成する。CPU 101と画像処理部108が協働して画像生成部203として機能する。   The image generation unit 203 obtains the shape of the skin 304 based on the position of the control point 303 calculated by the calculation unit 202 in the parent coordinate system 311 and generates an image representing the shape of the skin 304 arranged in the virtual space. . The image generation unit 203 generates an image in which the skin 304 is arranged by arranging polygons having the control points 303 as vertices in a predetermined association. For example, when the position or orientation of the sub-bone 302 in the main coordinate system is updated by the update unit 204 to be described later, the image generation unit 203 performs a new operation based on the updated position of the control point 303 calculated by the calculation unit 202. An image in which various skins 304 are arranged is generated. The CPU 101 and the image processing unit 108 cooperate to function as the image generation unit 203.

更新部204は、記憶部201に記憶された、副ボーン302の主座標系312における位置と向きを更新することによって、スキン304の形状を変化させる。CPU 101と画像処理部108とRAM 103が協働して、画像生成部203として機能する。   The update unit 204 changes the shape of the skin 304 by updating the position and orientation of the sub-bone 302 in the main coordinate system 312 stored in the storage unit 201. The CPU 101, the image processing unit 108, and the RAM 103 cooperate to function as the image generation unit 203.

図4(a)と(b)は、仮想空間に配置された主ボーン301、副ボーン302、制御点303、スキン304を簡略化して表した図である。図4(a)は更新部204による更新前であり、図4(b)は更新部204による更新後である。副ボーン302は、長さも太さもゼロのボーン、すなわち形状が「点」のボーンとすることができる。   FIGS. 4A and 4B are simplified views of the main bone 301, the sub bone 302, the control point 303, and the skin 304 arranged in the virtual space. 4A is before update by the update unit 204, and FIG. 4B is after update by the update unit 204. The secondary bone 302 may be a bone having a length and thickness of zero, that is, a bone having a “point” shape.

デカルト座標系を用いて説明すると、更新部204は、例えば副ボーン302Bの位置をX軸方向にΔLX、Y軸方向にΔLY、Z軸方向にΔLZだけ平行移動させる。このとき、それぞれの制御点303の位置は、予め関連付けられた副ボーン302に対して所定の位置に固定されているため、更新部204は、副ボーン302Bに関連付けられた制御点303B1,303B2,303B3の位置も、X軸方向にΔLX、Y軸方向にΔLY、Z軸方向にΔLZだけ平行移動させる。各座標値の変化量ΔLX,ΔLY,ΔLZの大きさは任意である。   For example, the update unit 204 translates the position of the secondary bone 302B by ΔLX in the X-axis direction, ΔLY in the Y-axis direction, and ΔLZ in the Z-axis direction. At this time, since the position of each control point 303 is fixed to a predetermined position with respect to the secondary bone 302 associated in advance, the update unit 204 controls the control points 303B1, 303B2, associated with the secondary bone 302B. The position of 303B3 is also translated by ΔLX in the X-axis direction, ΔLY in the Y-axis direction, and ΔLZ in the Z-axis direction. The magnitudes of the change amounts ΔLX, ΔLY, ΔLZ of the coordinate values are arbitrary.

この平行移動の結果、図4(a)に示される各制御点303を頂点とするポリゴンで表現されるスキン304の形状は、図4(b)に示すように、副ボーン302に関連付けられた制御点303B1,303B2,303B3が主ボーン301側にへこんだ形状になる。例えば、皮膚を指で押してへこむ様子を表す画像を生成することができる。   As a result of this translation, the shape of the skin 304 represented by a polygon having each control point 303 as a vertex shown in FIG. 4A is associated with the secondary bone 302 as shown in FIG. 4B. The control points 303B1, 303B2, and 303B3 are indented toward the main bone 301 side. For example, it is possible to generate an image representing a state where the skin is depressed by pressing the skin with a finger.

なお、更新部204は、複数の副ボーン302についてそれぞれ別個に、任意の位置に移動させることができる。   Note that the update unit 204 can move the plurality of sub-bones 302 to arbitrary positions separately.

副ボーン302の移動は、平行移動に限られない。
図5(a)と(b)は、仮想空間に配置された主ボーン301、副ボーン302、制御点303、スキン304を簡略化して表した図である。図5(a)は更新部204による更新前を表し、図5(b)は更新部204による更新後を表している。副ボーン302は、長さも太さもゼロのボーンである。この例では、更新部204は、副ボーン302Bに固定された副座標系において副ボーン302Bの位置と向きの両方を変化させることによって、制御点303B1〜303B3をX軸方向にΔLX、Y軸方向にΔLY、Z軸方向にΔLZだけ平行移動させ、且つ、1つの軸を中心に角度Δθだけ回転移動(軸回転移動)させている。勿論、更新部204は、回転移動のみ行ってもよい。角度Δθ(回転量)の大きさは任意である。
The movement of the secondary bone 302 is not limited to parallel movement.
FIGS. 5A and 5B are simplified views of the main bone 301, the sub bone 302, the control point 303, and the skin 304 arranged in the virtual space. FIG. 5A shows before update by the update unit 204, and FIG. 5B shows after update by the update unit 204. The secondary bone 302 is a bone that is zero in length and thickness. In this example, the update unit 204 changes the control points 303B1 to 303B3 in the X-axis direction by ΔLX and Y-axis directions by changing both the position and orientation of the secondary bone 302B in the secondary coordinate system fixed to the secondary bone 302B. Are translated by ΔLY and ΔLZ in the Z-axis direction, and are rotated by an angle Δθ about one axis (axial rotation movement). Of course, the update unit 204 may perform only rotational movement. The magnitude of the angle Δθ (rotation amount) is arbitrary.

この軸回転移動の結果、図5(a)に示すスキン304の形状は、図5(b)に示すような副ボーン302B付近が盛り上がって且つねじれた形状に変化する。例えば、皮膚を指でつまみつつ、ねじったときの様子を表す画像を生成することができる。   As a result of this rotational movement of the shaft, the shape of the skin 304 shown in FIG. 5 (a) changes to a shape in which the vicinity of the secondary bone 302B is raised and twisted as shown in FIG. 5 (b). For example, it is possible to generate an image representing a state where the skin is twisted while pinching the skin with a finger.

回転移動は、1つの軸を中心に回転させる移動だけに限らず、1つの点(典型的には副ボーン302の位置)を中心に回転させる移動(中心点回転移動)でもよい。図6(a)は、図5(a)の状態から更新部204によって更新された後の状態を示す図である。副ボーン302は、長さも太さもゼロのボーンである。この例では、更新部204は、副ボーン302Bに固定された副座標系において、副ボーン302Bの位置を固定し、副ボーン302Bの向きを変化させることによって、制御点303B1〜303B3を、1つの点(副ボーン302Bの位置)を中心に角度Δφだけ回転移動させている。勿論、更新部204は、平行移動と軸回転移動の少なくともいずれか一方と共に、中心点回転させてもよい。角度Δφ(回転量)の大きさは任意である。   The rotational movement is not limited to a movement that rotates around one axis, but may be a movement that rotates around one point (typically the position of the secondary bone 302) (center point rotational movement). FIG. 6A is a diagram illustrating a state after being updated by the update unit 204 from the state of FIG. The secondary bone 302 is a bone that is zero in length and thickness. In this example, the update unit 204 fixes the control points 303B1 to 303B3 by fixing the position of the secondary bone 302B and changing the direction of the secondary bone 302B in the secondary coordinate system fixed to the secondary bone 302B. The point (the position of the secondary bone 302B) is rotated about the angle Δφ. Of course, the update unit 204 may rotate the center point together with at least one of parallel movement and axial rotation movement. The magnitude of the angle Δφ (rotation amount) is arbitrary.

この中心点回転移動の結果、図5(a)に示すスキン304の形状は、図6(a)に示すような副ボーン302B付近がねじれた形状に変化する。例えば、雑巾を絞ったときの様子を表す画像を生成することができる。   As a result of the rotational movement of the center point, the shape of the skin 304 shown in FIG. 5A changes to a shape in which the vicinity of the secondary bone 302B is twisted as shown in FIG. 6A. For example, it is possible to generate an image representing a state when the dust cloth is narrowed down.

副ボーン302の長さと太さは、いずれもゼロでない値であってもよい。言い換えれば、副ボーン302の形状は「点」に限られず、任意の長さをもった線分や曲線などでもよい。また、平面、曲面などのような任意の2次元の形状でもよいし、円柱、角柱、円錐、角錐、球形、多面体などのような任意の3次元の形状でもよい。   The length and thickness of the secondary bone 302 may both be non-zero values. In other words, the shape of the secondary bone 302 is not limited to “points”, and may be a line segment or a curve having an arbitrary length. Further, it may be an arbitrary two-dimensional shape such as a plane or a curved surface, or an arbitrary three-dimensional shape such as a cylinder, a prism, a cone, a pyramid, a sphere, or a polyhedron.

例えば、図6(b)では、副ボーン302A,302B,302Cはいずれも角柱の形状をしている。そして、副ボーン302Aに関連付けられた制御点303A1〜303A3は、副ボーン302Aの異なる部分で関連付けられて(結ばれて)いる。本図では、制御点303A1は副ボーン302Aの中央部分と、制御点303A2は副ボーン302Aの上端部分と、制御点303A3は副ボーン302Aの下端部分と、それぞれ結ばれている。副ボーン302B,302Cについても同様である。ただし、制御点303を副ボーン302のどの場所と結ぶかは自由である。   For example, in FIG. 6B, the sub-bones 302A, 302B, and 302C all have a prismatic shape. The control points 303A1 to 303A3 associated with the secondary bone 302A are associated with (connected to) different parts of the secondary bone 302A. In this figure, the control point 303A1 is connected to the central portion of the secondary bone 302A, the control point 303A2 is connected to the upper end portion of the secondary bone 302A, and the control point 303A3 is connected to the lower end portion of the secondary bone 302A. The same applies to the secondary bones 302B and 302C. However, it is free to connect the control point 303 to which location of the secondary bone 302.

副ボーン302に点ではない形状をもたせたとしても、各制御点303が副ボーン302の同一部分で関連付けて(結んで)平行移動・軸回転移動・中心点回転移動させる場合には、更新後のスキン304の形状は、上述のように副ボーン302を点の形状としたときと実質的に同じになる。   Even if the secondary bone 302 has a shape other than a point, if each control point 303 is associated (connected) with the same portion of the secondary bone 302 and is translated, rotated axially, or rotated centrally, it is updated. The shape of the skin 304 is substantially the same as that when the secondary bone 302 has a point shape as described above.

なお、更新部204は、上記のように副ボーン302を移動させることによって制御点303の位置を変える制御ができるほか、主座標系312における副ボーン302の位置を変えずに親座標系311における主ボーン301の位置を変える制御や、主座標系312における副ボーン302の位置を変えずに直接制御点303の位置を変える制御といった、従来と同じ制御もできる。更新部204は、ゲーム毎に、あるいはゲームのシーン毎に、これらの制御を使い分ける。   The update unit 204 can control the position of the control point 303 by moving the secondary bone 302 as described above, and can also be used in the parent coordinate system 311 without changing the position of the secondary bone 302 in the primary coordinate system 312. Controls that change the position of the main bone 301 and controls that directly change the position of the control point 303 without changing the position of the sub-bone 302 in the main coordinate system 312 can also be performed. The update unit 204 uses these controls for each game or each game scene.

次に、画像生成装置200の上記各部が実行する画像生成処理について、図7のフローチャートを用いて説明する。この画像生成処理によって、スキン304の形状が変化した画像が生成される。例えば、画像生成装置200の各部は、垂直同期(VSync)などの所定のタイミングで画像生成処理を繰り返し実行する。   Next, image generation processing executed by the above-described units of the image generation apparatus 200 will be described with reference to the flowchart of FIG. By this image generation process, an image in which the shape of the skin 304 is changed is generated. For example, each unit of the image generation apparatus 200 repeatedly executes the image generation process at a predetermined timing such as vertical synchronization (VSync).

以下の説明では、例えば図8に示すように、ヘビ型のキャラクタオブジェクト800が配置される仮想空間モデルを考える。キャラクタオブジェクト800の表面は、複数の制御点303によって決まるポリゴンの集合から構成されるスキン304で覆われている。主ボーン301(例えば背骨)の形状に沿って、副ボーン302(本図中では302A,302B,302Cの3つ)を配置する。それぞれの副ボーン302には、1個以上の制御点303(本図中では、副ボーン302Aに関連付けられた制御点303A(○印で表現),副ボーン302Bに関連付けられた制御点303B(×印で表現),副ボーン302Cに関連付けられた制御点303C(□印で表現)、の3種類)が関連付けられる。   In the following description, for example, as shown in FIG. 8, a virtual space model in which a snake character object 800 is arranged is considered. The surface of the character object 800 is covered with a skin 304 composed of a set of polygons determined by a plurality of control points 303. Sub-bones 302 (three in the figure, 302A, 302B, and 302C) are arranged along the shape of the main bone 301 (for example, the spine). Each secondary bone 302 has at least one control point 303 (in the figure, control point 303A (represented by a circle) associated with the secondary bone 302A) and control point 303B (×) associated with the secondary bone 302B. 3) (represented by a mark) and a control point 303C (represented by a □ mark) associated with the secondary bone 302C.

まず、画像生成部203は、記憶部201に記憶されている主ボーン情報251と副ボーン情報252と制御点情報253とを読み出す(ステップS701)。上述のように、主ボーン情報251は、親座標系311における主ボーン301の位置を示す情報である。副ボーン情報252は、主座標系312における副ボーン302の位置を示す情報である。制御点情報253は、副座標系313における副ボーン302に割り当てられた制御点303の位置を示す情報である。なお、主ボーン301の向きと副ボーン302の向きを一定としている。   First, the image generation unit 203 reads out main bone information 251, sub bone information 252, and control point information 253 stored in the storage unit 201 (step S701). As described above, the main bone information 251 is information indicating the position of the main bone 301 in the parent coordinate system 311. The secondary bone information 252 is information indicating the position of the secondary bone 302 in the main coordinate system 312. The control point information 253 is information indicating the position of the control point 303 assigned to the secondary bone 302 in the secondary coordinate system 313. Note that the orientation of the main bone 301 and the orientation of the sub bone 302 are constant.

計算部202は、副座標系313における各制御点303の位置を計算する(ステップS702)。例えば、計算部202は、キャラクタオブジェクト800が移動したり姿勢を変えたりするとき、変化後の各制御点303の位置を計算する。なお、計算部202は、親座標系311における主ボーン301の位置と、主座標系312における副ボーン302の位置も計算するが、主ボーン301と副ボーン302の位置が変わらないのであれば、これらの計算を省略してもよい。   The calculation unit 202 calculates the position of each control point 303 in the sub-coordinate system 313 (step S702). For example, the calculation unit 202 calculates the position of each control point 303 after the change when the character object 800 moves or changes its posture. The calculation unit 202 also calculates the position of the main bone 301 in the parent coordinate system 311 and the position of the sub bone 302 in the main coordinate system 312, but if the positions of the main bone 301 and the sub bone 302 are not changed, These calculations may be omitted.

例えば図9に示すように、キャラクタオブジェクト800が車オブジェクト(図示せず)のタイヤに轢かれたとき、画像生成部203は地面820にタイヤ痕900を配置し、更新部204はキャラクタオブジェクト800を構成する制御点303のうち、タイヤに轢かれた部分に含まれる制御点303Bに関連付けられた副ボーン302Bの副座標系313における位置を、地面820に向かって垂直な方向に平行移動させる。   For example, as shown in FIG. 9, when the character object 800 is hit by a tire of a car object (not shown), the image generation unit 203 places a tire mark 900 on the ground 820, and the update unit 204 displays the character object 800. Of the control points 303 to be configured, the position of the sub-bone 302B associated with the control point 303B included in the portion that is beaten by the tire is translated in the direction perpendicular to the ground 820.

すると、各制御点303Bの副座標系313における位置を一定としているため、各制御点303Bの主座標系312における位置も、副ボーン302と同じ方向に平行移動することになる。   Then, since the position of each control point 303B in the sub-coordinate system 313 is fixed, the position of each control point 303B in the main coordinate system 312 is also translated in the same direction as the sub-bone 302.

計算部202は、副座標系313における各制御点303の位置を、親座標系311に座標変換する(ステップS703)。   The calculation unit 202 converts the position of each control point 303 in the sub-coordinate system 313 to the parent coordinate system 311 (step S703).

画像生成部203は、ポリゴンの頂点と制御点303との間に予め決定された対応関係に基づいて、ステップS703で計算された各制御点303の位置から、スキン304の形状を計算する(ステップS704)。この対応関係は、例えば制御点303の識別番号とポリゴンの識別番号とを対応付けるデータとしてテーブル形式等で記述され、予め記憶部201に記憶されている。   The image generation unit 203 calculates the shape of the skin 304 from the position of each control point 303 calculated in step S703, based on the correspondence previously determined between the vertex of the polygon and the control point 303 (step S703). S704). This correspondence relationship is described in, for example, a table format as data for associating the identification number of the control point 303 with the polygon identification number, and is stored in the storage unit 201 in advance.

更新部204は、主ボーン情報251と副ボーン情報252と制御点情報253とを更新する(ステップS705)。つまり、更新部204は、計算部202がステップS702で計算した主ボーン301の位置と、副ボーン302の位置と、制御点303の位置とを新たな位置とした、主ボーン情報251と副ボーン情報252と制御点情報253とを生成して、記憶部201を更新する。   The update unit 204 updates the main bone information 251, the sub bone information 252, and the control point information 253 (step S705). That is, the update unit 204 sets the main bone information 251 and the sub bones with the positions of the main bone 301, the sub bone 302, and the control point 303 calculated by the calculation unit 202 in step S702 as new positions. Information 252 and control point information 253 are generated, and the storage unit 201 is updated.

そして、画像生成部203は、更新された各制御点303の位置を各ポリゴンの頂点として、スキン304の形状を決定し、スキン304の形状を表す画像を生成する(ステップS706)。画像生成部203は、移動させる副ボーン302Bに対応付けられた制御点303Bのみから構成されるポリゴン(タイヤに轢かれた部分のポリゴン)を平行移動させ、頂点の一部に制御点303Bが含まれるポリゴン(タイヤ痕810の両際の部分)の形状を変化させるだけでよい。   Then, the image generation unit 203 determines the shape of the skin 304 using the updated position of each control point 303 as the vertex of each polygon, and generates an image representing the shape of the skin 304 (step S706). The image generation unit 203 translates a polygon (polygon of a portion worn by the tire) composed only of the control point 303B associated with the secondary bone 302B to be moved, and includes the control point 303B at a part of the vertex. It is only necessary to change the shape of the polygon (the portion on both ends of the tire mark 810).

本実施形態によれば、画像生成装置200は、すべてのスキン304の位置と形状を計算し直す必要はなく、移動させる制御点303のみから構成されるポリゴンについては形状を変化させずに移動させるだけでよいので、より簡単にオブジェクトを変形させた画像を生成できるようになる。   According to the present embodiment, the image generation apparatus 200 does not need to recalculate the positions and shapes of all the skins 304, and moves polygons that are formed only of the control points 303 to be moved without changing the shape. Therefore, an image obtained by deforming an object can be generated more easily.

例えば、被写体が粘土で作成されているクレイアニメーションでは、キャラクタが何かにぶつかったときや落ちたときなどに、キャラクタをぺしゃんこにするコミカルな表現手法が用いられるが、本発明によれば、直接制御点303の位置を制御する代わりに副ボーン302の位置が向きを変化させることにより、3次元仮想空間においてまるでクレイアニメーションであるかのようにキャラクタを変形させた画像を簡単に生成することができる。例えば図8のように地面を這っているキャラクタオブジェクト800が車に轢かれて、図9に示すようにぺしゃんこになってしまった様子を表す画像を簡単に生成できる。   For example, in a clay animation in which the subject is made of clay, a comical expression method that makes a character sneak up when the character hits something or falls is used. By changing the direction of the position of the secondary bone 302 instead of controlling the position of the control point 303, it is possible to easily generate an image in which the character is deformed as if it is a clay animation in the three-dimensional virtual space. it can. For example, as shown in FIG. 8, it is possible to easily generate an image representing a state where a character object 800 stroking the ground is hit by a car and becomes crushed as shown in FIG.

(実施形態2)
次に、本発明のその他の実施形態について説明する。上述の実施形態では、副ボーン302に固定された副座標系313における制御点303の位置は一定としているが、本実施形態は、制御点303の位置の移動量がしきい値より小さければ不変とし、大きければ可変としている点で異なる。
(Embodiment 2)
Next, other embodiments of the present invention will be described. In the above-described embodiment, the position of the control point 303 in the sub-coordinate system 313 fixed to the sub-bone 302 is constant, but this embodiment does not change if the movement amount of the position of the control point 303 is smaller than the threshold value. It is different in that it is variable if it is large.

図10〜13は、本実施形態で扱う仮想空間モデルの主ボーン301、副ボーン302、制御点303、スキン304を表す図である。スキン304が表す面と、衝突面(典型的には地面や壁など)1020とは、ゼロでない角度Δψをなす。更新部204は、衝突面1020への向きを移動方向として、副ボーン302を移動させる。なお、本発明をより理解しやすくするために、移動開始前の各制御点303が等間隔αのマス目状に配置されているものとする。   10 to 13 are diagrams showing the main bone 301, the sub bone 302, the control point 303, and the skin 304 of the virtual space model handled in the present embodiment. The surface represented by the skin 304 and the collision surface (typically, the ground, a wall, etc.) 1020 form a non-zero angle Δψ. The update unit 204 moves the secondary bone 302 with the direction toward the collision surface 1020 as the movement direction. In addition, in order to make the present invention easier to understand, it is assumed that the control points 303 before the start of movement are arranged in a grid of equally spaced α.

本実施形態では、一例として副ボーン302A〜302Cのうち副ボーン302Bのみを平行移動させる。副ボーン302Bには、衝突面1020に近い順に、制御点303B1,303B2,303B3の3種類がある。言い換えれば、副ボーン302の移動方向を正の向きとする軸を持つ1次元座標系(以下「移動座標系」と言う。)314において、座標値が大きい順に、制御点303B1,303B2,303B3が配置される。移動座標系314において「衝突面1020に最も近い」とは、移動座標系314における位置の座標値が最も大きいということである。   In the present embodiment, as an example, only the secondary bone 302B among the secondary bones 302A to 302C is translated. The sub-bone 302B has three types of control points 303B1, 303B2, and 303B3 in the order closer to the collision surface 1020. In other words, in a one-dimensional coordinate system (hereinafter referred to as “moving coordinate system”) 314 having an axis with the moving direction of the secondary bone 302 as a positive direction, the control points 303B1, 303B2, and 303B3 are in descending order of coordinate values. Be placed. In the movement coordinate system 314, “closest to the collision surface 1020” means that the coordinate value of the position in the movement coordinate system 314 is the largest.

図14は、上述のステップS702の処理の詳細を説明するためのフローチャートである。   FIG. 14 is a flowchart for explaining details of the process in step S702 described above.

上述のステップS702において、計算部202は、移動座標系314における副ボーン302Bの移動量と同じ量だけ移動させた、各制御点303B1〜B3の位置を計算する。そして、移動座標系314から副座標系313に座標変換して、副座標系313における各制御点303の位置を計算する(ステップS1401)。   In step S702 described above, the calculation unit 202 calculates the positions of the control points 303B1 to B3 that have been moved by the same amount as the movement amount of the secondary bone 302B in the movement coordinate system 314. Then, the coordinate transformation from the moving coordinate system 314 to the sub-coordinate system 313 is performed, and the position of each control point 303 in the sub-coordinate system 313 is calculated (step S1401).

なお、副座標系313の1つの軸と、移動座標系314の軸とを一致させれば、この移動座標系314から副座標系313への座標変換を省略することができる。   Note that if one axis of the sub-coordinate system 313 and the axis of the moving coordinate system 314 are matched, coordinate conversion from the moving coordinate system 314 to the sub-coordinate system 313 can be omitted.

次に更新部204は、衝突面1020に最も近い制御点303B1(先端制御点)の移動量が所定のしきい値Δλより小さいか否かを判別する(ステップS1402)。   Next, the updating unit 204 determines whether or not the movement amount of the control point 303B1 (tip control point) closest to the collision surface 1020 is smaller than a predetermined threshold value Δλ (step S1402).

ここで、図11は、制御点303B1をしきい値Δλだけ移動させたときの仮想空間モデルを表す図である。所定のしきい値Δλは、典型的には、移動開始前のスキン304と衝突面1020との距離の最小値である。例えば、あるキャラクタオブジェクトが地面の上に落ちていくとき、衝突面1020は地面であり、落ちていくキャラクタオブジェクトの表面と地面との最短距離がΔλになる。   Here, FIG. 11 is a diagram illustrating a virtual space model when the control point 303B1 is moved by the threshold value Δλ. The predetermined threshold value Δλ is typically the minimum value of the distance between the skin 304 and the collision surface 1020 before starting movement. For example, when a certain character object falls on the ground, the collision plane 1020 is the ground, and the shortest distance between the surface of the falling character object and the ground is Δλ.

制御点303B1の移動量(あるいは副ボーン302Bの移動量)がしきい値Δλより小さい場合(ステップS1402;YES)、更新部204は、ステップS1401に戻り引き続き副ボーン302Bを移動方向1050に移動させる。計算部202は、副ボーン302の移動量と同じ量だけ、移動する副ボーン302に関連付けられた制御点303も移動させる。   When the movement amount of the control point 303B1 (or the movement amount of the secondary bone 302B) is smaller than the threshold value Δλ (step S1402; YES), the update unit 204 returns to step S1401 and continuously moves the secondary bone 302B in the movement direction 1050. . The calculation unit 202 moves the control point 303 associated with the moving secondary bone 302 by the same amount as the movement amount of the secondary bone 302.

制御点303B1の移動量(あるいは副ボーン302Bの移動量)がしきい値Δλより小さくない場合(ステップS1402;NO)、計算部202は、衝突面1020に最も近い制御点303B1を現在の位置に固定させる(ステップS1403)。すなわち、制御点303B1をそれ以上移動させない。例えば、あるキャラクタオブジェクトが地面の上に落ちていくとき、キャラクタオブジェクトの衝突面1020に最も近い部分が地面に接すると、地面に接した部分はその位置で固定され、地面にめり込むことはない。   When the movement amount of the control point 303B1 (or the movement amount of the secondary bone 302B) is not smaller than the threshold value Δλ (step S1402; NO), the calculation unit 202 sets the control point 303B1 closest to the collision surface 1020 to the current position. It is fixed (step S1403). That is, the control point 303B1 is not moved any further. For example, when a character object falls on the ground and the part closest to the collision surface 1020 of the character object touches the ground, the part in contact with the ground is fixed at that position and does not sink into the ground.

そして更新部204は副ボーン302Bを移動させ、計算部202は固定していない他の制御点303B2,303B3を移動方向1050に移動させる(ステップS1404)。計算部202は、移動座標系314における副ボーン302Bの移動量と同じ量だけ移動させた、制御点303B2,303B3の位置を計算する。そして、移動座標系314から副座標系313に座標変換して、副座標系313における各制御点303の位置を計算する。   Then, the update unit 204 moves the secondary bone 302B, and the calculation unit 202 moves the other control points 303B2 and 303B3 that are not fixed in the movement direction 1050 (step S1404). The calculation unit 202 calculates the positions of the control points 303B2 and 303B3 that are moved by the same amount as the movement amount of the secondary bone 302B in the movement coordinate system 314. Then, the coordinate transformation from the moving coordinate system 314 to the sub-coordinate system 313 is performed, and the position of each control point 303 in the sub-coordinate system 313 is calculated.

図12は、制御点303B1を固定し、他の制御点303B2,303B3をさらに移動させたときの仮想空間モデルを表す図である。この時点で制御点303B1はΔλだけ移動しているが、303B2,303B3は、次の[数1]で表す量だけ移動することになる。   FIG. 12 is a diagram illustrating a virtual space model when the control point 303B1 is fixed and the other control points 303B2 and 303B3 are further moved. At this time, the control point 303B1 has moved by Δλ, but 303B2 and 303B3 have moved by the amount represented by the following [Equation 1].

移動量 = Δλ+Δα×sinΔψ ・・・[数1]   Movement amount = Δλ + Δα × sin Δψ [Equation 1]

さらに計算部202は、次に衝突面1020に近い制御点303B2の位置が、固定した制御点303B1(先端制御点)の移動座標系314における位置と同じか否かを判別する(ステップS1405)。つまり、制御点303B2が衝突面1020に接したか否かを判別する。   Further, the calculation unit 202 determines whether or not the position of the control point 303B2 next to the collision surface 1020 is the same as the position of the fixed control point 303B1 (tip control point) in the moving coordinate system 314 (step S1405). That is, it is determined whether or not the control point 303B2 is in contact with the collision surface 1020.

移動座標系314における制御点303B2の位置が制御点303B1の位置と同じでない場合、すなわち制御点303B2が衝突面と接していない場合(ステップS1405;NO)、更新部204は、ステップS1404に戻り引き続き副ボーン302Bを移動方向1050に移動させる。計算部202は、固定されていない各制御点303も副ボーン302と同じ移動量だけ移動させる。つまり、副ボーン302Bに関連付けられた制御点303B1,303B2,303B3のうち、既にステップS1403で固定した制御点303B1は移動させない。   If the position of the control point 303B2 in the moving coordinate system 314 is not the same as the position of the control point 303B1, that is, if the control point 303B2 is not in contact with the collision surface (step S1405; NO), the updating unit 204 returns to step S1404 and continues. The secondary bone 302B is moved in the movement direction 1050. The calculation unit 202 moves each control point 303 that is not fixed by the same movement amount as that of the secondary bone 302. That is, among the control points 303B1, 303B2, and 303B3 associated with the secondary bone 302B, the control point 303B1 that has already been fixed in step S1403 is not moved.

一方、同じである場合(ステップS1405;YES)、計算部202は、移動対象の副ボーン302Bに関連付けられたすべての制御点303B1,303B2,303B3を固定したか否かを判別する(ステップS1406)。図12では制御点303B2,303B3がまだ固定されていない。   On the other hand, if they are the same (step S1405; YES), the calculation unit 202 determines whether or not all the control points 303B1, 303B2, and 303B3 associated with the movement-target secondary bone 302B have been fixed (step S1406). . In FIG. 12, the control points 303B2 and 303B3 are not yet fixed.

すべての制御点303がまだ固定されていない場合(ステップS1406;NO)、計算部202は、次に衝突面1020に近い制御点303B2の移動座標系314における位置を、現在の位置に固定する(ステップS1407)。   When all the control points 303 are not yet fixed (step S1406; NO), the calculation unit 202 fixes the position of the control point 303B2 next to the collision surface 1020 in the moving coordinate system 314 to the current position ( Step S1407).

そして、更新部204は、ステップS1404に戻り、副ボーン302Bをさらに移動させ、計算部202は、固定していない他の制御点303B3を移動方向1050に同じ量だけ移動させる。すなわち、計算部202は、移動座標系314における副ボーン302Bの移動量と同じ量だけ移動させた、制御点303B3の位置を計算する。そして、移動座標系314から副座標系313に座標変換して、副座標系313における各制御点303の位置を計算する。   Then, the update unit 204 returns to step S1404 to further move the secondary bone 302B, and the calculation unit 202 moves the other unfixed control point 303B3 by the same amount in the movement direction 1050. That is, the calculation unit 202 calculates the position of the control point 303B3 that has been moved by the same amount as the movement amount of the secondary bone 302B in the movement coordinate system 314. Then, the coordinate transformation from the moving coordinate system 314 to the sub-coordinate system 313 is performed, and the position of each control point 303 in the sub-coordinate system 313 is calculated.

すべての制御点303の位置を固定するまでステップS1404〜S1407の処理を繰り返す結果、各制御点303の移動座標系314における移動量は、次の[数2]〜[数4]で表される。   As a result of repeating the processing of steps S1404 to S1407 until the positions of all the control points 303 are fixed, the movement amount of each control point 303 in the movement coordinate system 314 is expressed by the following [Equation 2] to [Equation 4]. .

制御点303B1(先端制御点)の移動量= Δλ ・・・[数2]
制御点303B2の移動量= Δλ+Δα×sinΔψ ・・・[数3]
制御点303B3の移動量= Δλ+2×Δα×sinΔψ ・・・[数4]
Movement amount of control point 303B1 (tip control point) = Δλ (Equation 2)
Movement amount of control point 303B2 = Δλ + Δα × sin Δψ (Equation 3)
Movement amount of control point 303B3 = Δλ + 2 × Δα × sin Δψ [Equation 4]

図13は、副ボーン302Bに関連付けられたすべての制御点303Bを移動した後の仮想空間モデルを表す図である。移動開始前に衝突面1020に対して角度Δψだけ傾いていたスキン304の形状のうち、副ボーン302Bに関連付けられた制御点303Bのみから構成されるポリゴンで表される部分は、移動終了後には衝突面1020に対して平行に重なっている。   FIG. 13 is a diagram illustrating the virtual space model after moving all the control points 303B associated with the secondary bone 302B. Of the shape of the skin 304 that is inclined by the angle Δψ with respect to the collision surface 1020 before the start of movement, a portion represented by a polygon composed only of the control point 303B associated with the secondary bone 302B is It overlaps parallel to the collision surface 1020.

衝突面1020は平面に限られず、任意の形状の曲面などでもよい。更新後のスキン304は、任意の形状の曲面に沿った(曲面の形に合うように変形した)形状になる。また、衝突面1020は、任意の形状をもったキャラクタオブジェクトの一部分を構成する面でもよい。   The collision surface 1020 is not limited to a flat surface, and may be a curved surface having an arbitrary shape. The updated skin 304 has a shape along a curved surface of an arbitrary shape (deformed to match the shape of the curved surface). Further, the collision surface 1020 may be a surface constituting a part of a character object having an arbitrary shape.

なお、変形させたキャラクタオブジェクトを元の形状に戻す場合には、更新部204は、副ボーン302の位置と向きを主ボーン301上の所定の初期位置に戻せばよい。例えば、上述の各ステップを逆の順番に実行すれば、まるで現実世界の立体絵本(飛び出す絵本、しかけ絵本)を開くように、ぺしゃんこになったキャラクタオブジェクトを逆モーションで元に戻すことができる。   When the deformed character object is returned to the original shape, the updating unit 204 may return the position and orientation of the sub bone 302 to a predetermined initial position on the main bone 301. For example, if the above steps are executed in the reverse order, the scrambled character object can be returned to the original by reverse motion as if to open a real-world 3D picture book (a picture book that pops out and a picture book).

本実施形態によれば、画像生成装置200は、複雑な計算を要することなく、立体的な形状をもった任意のキャラクタオブジェクトを、まるでクレイアニメーションで表現しているかのように容易に変形させることができる。   According to the present embodiment, the image generating apparatus 200 can easily deform an arbitrary character object having a three-dimensional shape as if it is expressed by clay animation without requiring complicated calculation. Can do.

例えば、図15(a)に示すように3次元仮想空間内に配置された立体的なキャラクタオブジェクト1510が地面1520に向かう移動方向1530に落下しているとする。キャラクタオブジェクト1510の表面は、複数の制御点303によって定義される複数のポリゴンから構成されるスキン304で覆われている。キャラクタオブジェクト1510が地面1520にぶつかるまでの落下中、主ボーン301、副ボーン302、制御点303、スキン304は移動方向1520に平行移動する。キャラクタオブジェクト1510が地面1520にぶつかると、更新部204は副ボーン303を移動方向1530に少しずつ移動させ、計算部202は副ボーン302に関連付けられた制御点303を[数2]〜[数4]のように異なる移動量だけそれぞれ移動させる。その結果、スキン304の形状は地面1520に沿って平らな形状になり、キャラクタオブジェクト1510は図15(b)に示すように地面1520の上でぺしゃんこになる。   For example, assume that a three-dimensional character object 1510 arranged in a three-dimensional virtual space is falling in a moving direction 1530 toward the ground 1520 as shown in FIG. The surface of the character object 1510 is covered with a skin 304 composed of a plurality of polygons defined by a plurality of control points 303. During the fall until the character object 1510 hits the ground 1520, the main bone 301, the secondary bone 302, the control point 303, and the skin 304 move in parallel in the movement direction 1520. When the character object 1510 hits the ground 1520, the update unit 204 moves the secondary bone 303 little by little in the moving direction 1530, and the calculation unit 202 sets the control point 303 associated with the secondary bone 302 to [Equation 2] to [Equation 4]. ] And move them by different movement amounts. As a result, the shape of the skin 304 becomes a flat shape along the ground 1520, and the character object 1510 is squashed on the ground 1520 as shown in FIG.

(実施形態3)
次に、本発明のその他の実施形態について説明する。上述の実施形態ではキャラクタオブジェクトと面との衝突を考えているが、本実施形態では、あるキャラクタオブジェクトと、他のキャラクタオブジェクト(以下「障害物オブジェクト」という。)との衝突を考える。
(Embodiment 3)
Next, other embodiments of the present invention will be described. In the above-described embodiment, a collision between a character object and a plane is considered, but in this embodiment, a collision between a certain character object and another character object (hereinafter referred to as an “obstacle object”) is considered.

図16は、本実施形態の画像生成装置200の機能的な構成を示す図である。画像生成装置200は、衝突判定部205をさらに備える。   FIG. 16 is a diagram illustrating a functional configuration of the image generation apparatus 200 according to the present embodiment. The image generation device 200 further includes a collision determination unit 205.

図17(a)は、本実施形態において扱われる仮想空間モデルを表す図である。仮想空間には、例えばボクシングのサンドバッグの形をしたキャラクタオブジェクト1710と、ボクサーのグローブの形をした障害物オブジェクト1720とが配置される。障害物オブジェクト1720が移動方向1730に移動すると、やがてキャラクタオブジェクト1710と障害物オブジェクト1720は衝突することになる。   FIG. 17A is a diagram illustrating a virtual space model handled in the present embodiment. In the virtual space, for example, a character object 1710 in the shape of a boxing sandbag and an obstacle object 1720 in the shape of a boxer's glove are arranged. When the obstacle object 1720 moves in the movement direction 1730, the character object 1710 and the obstacle object 1720 eventually collide.

キャラクタオブジェクト1710は、主ボーン301に沿って配置される副ボーン302に関連付けられた複数の制御点303を頂点とするポリゴンから構成されるスキン304で覆われている。   The character object 1710 is covered with a skin 304 composed of polygons whose apexes are a plurality of control points 303 associated with the sub-bones 302 arranged along the main bone 301.

図17(b)は、図17(a)の円内を拡大した図である。バウンディングエリア1750は、キャラクタオブジェクト1710と障害物オブジェクト1720が衝突するか否かを判別するために予め設定される領域である。典型的には、バウンディングエリア1750の形状は、キャラクタオブジェクト1710の形状の一部又は全部と一致する。ただし、バウンディングエリア1750は、キャラクタオブジェクト1710の外形よりやや大きく、スキン304を外側から覆うような概略的な形状でもよいし、キャラクタオブジェクト1710のおおよその形状を表すデフォルメした形状でもよい。バウンディングエリア1750の副座標系313における位置は一定である。本図では、バウンディングエリア1750の形状は、スキン304の形状の一部分と一致している。   FIG. 17 (b) is an enlarged view of the circle in FIG. 17 (a). The bounding area 1750 is an area set in advance to determine whether or not the character object 1710 and the obstacle object 1720 collide. Typically, the shape of bounding area 1750 matches part or all of the shape of character object 1710. However, the bounding area 1750 is slightly larger than the outer shape of the character object 1710, and may have a schematic shape that covers the skin 304 from the outside, or a deformed shape that represents the approximate shape of the character object 1710. The position of the bounding area 1750 in the sub-coordinate system 313 is constant. In this figure, the shape of the bounding area 1750 coincides with a part of the shape of the skin 304.

記憶部201は、障害物情報254とバウンディングエリア情報255をさらに記憶する。   The storage unit 201 further stores obstacle information 254 and bounding area information 255.

障害物情報254は、仮想空間に配置される親座標系311における障害物オブジェクト1720の位置と向きを示す情報である。位置は、親座標系311を用いた座標値として表される。向きは、親座標系311を用いた方向ベクトルとして表される。ただし、障害物オブジェクト1720の向きが不変である(もしくは不変を見なせる)モデルの場合、障害物情報254は、障害物オブジェクト1720の向きを示す情報を含まなくてもよい。   The obstacle information 254 is information indicating the position and orientation of the obstacle object 1720 in the parent coordinate system 311 arranged in the virtual space. The position is expressed as a coordinate value using the parent coordinate system 311. The direction is represented as a direction vector using the parent coordinate system 311. However, in the case of a model in which the orientation of the obstacle object 1720 is unchanged (or can be regarded as unchanged), the obstacle information 254 may not include information indicating the orientation of the obstacle object 1720.

バウンディングエリア情報255は、副ボーン302に関連付けて副座標系313における位置が固定されたバウンディングエリア1750の位置と向きを示す情報である。ただし、バウンディングエリア1750の向きが不変である(もしくは不変を見なせる)モデルの場合、バウンディングエリア情報255は、バウンディングエリア1750の向きを示す情報を含まなくてもよい。   The bounding area information 255 is information indicating the position and orientation of the bounding area 1750 in which the position in the secondary coordinate system 313 is fixed in association with the secondary bone 302. However, in the case of a model in which the direction of the bounding area 1750 is unchanged (or can be regarded as unchanged), the bounding area information 255 may not include information indicating the direction of the bounding area 1750.

衝突判定部205は、主ボーン情報251と、副ボーン情報252と、障害物情報254と、バウンディングエリア情報255とに基づいて、バウンディングエリア1750と障害物オブジェクト1720が衝突するか否かを判定する。例えば、障害判定部205は、バウンディングエリア1750内に含まれる所定の代表点(図示せず)のいずれかの座標値が障害物オブジェクト1750内(障害物オブジェクト1720の表面を構成するスキンによって囲まれる領域内)にあるか否かによって判別する。図17(b)のように、バウンディングエリア1750の形状をスキン304の形状の一部分と一致させる場合には、所定の代表点として制御点303を用いればよい。   The collision determination unit 205 determines whether or not the bounding area 1750 and the obstacle object 1720 collide based on the main bone information 251, the sub bone information 252, the obstacle information 254, and the bounding area information 255. . For example, in the obstacle determination unit 205, any coordinate value of a predetermined representative point (not shown) included in the bounding area 1750 is surrounded by the skin that forms the surface of the obstacle object 1750 (the surface of the obstacle object 1720). It is determined by whether or not it is in the area. As shown in FIG. 17B, when the shape of the bounding area 1750 coincides with a part of the shape of the skin 304, the control point 303 may be used as a predetermined representative point.

更新部204は、障害物オブジェクト1720と衝突すると判定されたバウンディングエリア1750の位置を、バウンディングエリア1750と障害物オブジェクト1720が衝突しなくなるまで、障害物オブジェクト1720から遠ざけるように移動させる。つまり、更新部204は、障害物オブジェクト1720が占める空間とバウンディングエリア1750が占める空間とに重なりがないように、バウンディングエリア1750を移動させる。副座標系313におけるバウンディングエリア1750の位置は一定であるので、更新部204は副ボーン302も同じ移動量だけ移動させることになる。   The update unit 204 moves the position of the bounding area 1750 that has been determined to collide with the obstacle object 1720 so as to move away from the obstacle object 1720 until the bounding area 1750 and the obstacle object 1720 no longer collide. That is, the update unit 204 moves the bounding area 1750 so that the space occupied by the obstacle object 1720 and the space occupied by the bounding area 1750 do not overlap. Since the position of the bounding area 1750 in the secondary coordinate system 313 is constant, the update unit 204 moves the secondary bone 302 by the same movement amount.

図18(a)は、衝突判定部205によってバウンディングエリア1750と障害物オブジェクト1720が衝突すると判別されたときに、更新部204が図17(a)に示す状態から副ボーン302を移動させた様子を表す図である。図18(b)は、図18(a)の円内を拡大した図である。更新部204は、バウンディングエリア1750と障害物オブジェクト1720が衝突しなくなるまで、副ボーン302を移動させる。図18(a)では、更新部204は、副ボーン302B,302C,302Dを、移動座標系314の正の向きにΔξだけ、それぞれ平行移動させている。制御点303の副座標系313における位置は一定であるので、制御点303B,303C,303DもΔξだけ平行移動される。   FIG. 18A shows a state in which the update unit 204 moves the secondary bone 302 from the state shown in FIG. 17A when the collision determination unit 205 determines that the bounding area 1750 and the obstacle object 1720 collide. FIG. FIG. 18B is an enlarged view of the circle in FIG. The update unit 204 moves the secondary bone 302 until the bounding area 1750 and the obstacle object 1720 do not collide. In FIG. 18A, the update unit 204 translates the secondary bones 302B, 302C, and 302D by Δξ in the positive direction of the moving coordinate system 314, respectively. Since the position of the control point 303 in the sub-coordinate system 313 is constant, the control points 303B, 303C, and 303D are also translated by Δξ.

ただし、更新部204は、副ボーン302を障害物オブジェクト1720の進行方向に平行移動させるのではなく、他の方向に平行移動させてもよい。   However, the update unit 204 may translate the secondary bone 302 in another direction instead of translating it in the traveling direction of the obstacle object 1720.

例えば図19(a)と(b)に示すように、副ボーン302Dの位置を中心とする球形のバウンディングエリア1750と、障害物オブジェクト1720を部分的に球形で近似してできる近似障害物1725とを定義し、バウンディングエリア1750と近似障害物1725との球体衝突モデルを考える。ここで、更新部204は、バウンディングエリア1750と近似障害物1725を共に剛体として扱う。バウンディングエリア1750を表す球の半径は、例えばバウンディングエリア1750が割り当てられた副ボーン302Dに関連付けられた制御点303Dと、副ボーン302Dとの距離の平均値もしくは最大値である。近似障害物1725を表す球の半径は、例えば予め決められた値、もしくは、バウンディングエリア1750を表す球の半径と同じ値にする。   For example, as shown in FIGS. 19A and 19B, a spherical bounding area 1750 centered on the position of the secondary bone 302D, and an approximate obstacle 1725 that can be obtained by approximating the obstacle object 1720 partially in a sphere. And a spherical collision model between the bounding area 1750 and the approximate obstacle 1725 is considered. Here, the update unit 204 treats both the bounding area 1750 and the approximate obstacle 1725 as rigid bodies. The radius of the sphere representing the bounding area 1750 is, for example, the average or maximum value of the distance between the control point 303D associated with the secondary bone 302D to which the bounding area 1750 is assigned and the secondary bone 302D. The radius of the sphere representing the approximate obstacle 1725 is set to a predetermined value or the same value as the radius of the sphere representing the bounding area 1750, for example.

剛体の球体衝突モデルを考えるにあたり、衝突前後のバウンディングエリア1750と近似障害物1725のそれぞれの位置の計算を簡単にするために、バウンディングエリア1750を表す球の質量μAを近似障害物1725を表す球の質量μBと同じにし(μA=μB)、且つ、近似障害物1725を表す球の半径γBをバウンディングエリア1750を表す球の半径γAと同じ値にする(γA=γB)と良い。   In considering the rigid sphere collision model, in order to simplify the calculation of the positions of the bounding area 1750 and the approximate obstacle 1725 before and after the collision, the mass μA of the sphere representing the bounding area 1750 is represented by the sphere representing the approximate obstacle 1725. And the radius γB of the sphere representing the approximate obstacle 1725 is preferably set to the same value as the radius γA of the sphere representing the bounding area 1750 (γA = γB).

あるいは、近似障害物1725を表す球の質量μBを、バウンディングエリア1750を表す球の質量μAより十分に(圧倒的に)大きくし(μA<<μB)、且つ、近似障害物1725を表す球の半径γBをバウンディングエリア1750を表す球の半径γAと同じ値にする(γA=γB)と良い。この場合、衝突後も障害物オブジェクト1720の移動方向1730は不変であるとみなすことができる。   Alternatively, the mass μB of the sphere representing the approximate obstacle 1725 is sufficiently (overwhelmingly) larger than the mass μA of the sphere representing the bounding area 1750 (μA << μB), and the sphere representing the approximate obstacle 1725 The radius γB is preferably set to the same value as the radius γA of the sphere representing the bounding area 1750 (γA = γB). In this case, the moving direction 1730 of the obstacle object 1720 can be regarded as unchanged after the collision.

バウンディングエリア1750と近似障害物1725が衝突すると、計算部202は、副ボーン302Dの主座標系312における位置を、一般に古典力学で扱う剛体の球体衝突モデルを用いて計算する。そして、計算部202は、副座標系313から親座標系311に座標変換することにより、制御点303の親座標系311における位置を計算する。例えば、衝突後の副ボーン302Dの位置は、図面の横方向にΔξ1、縦方向にΔξ2だけ移動する。同様に、副ボーン302Dに関連付けられた各制御点302Dの位置も、図面の横方向にΔξ1、縦方向にΔξ2だけ移動する。   When the bounding area 1750 and the approximate obstacle 1725 collide, the calculation unit 202 calculates the position of the secondary bone 302D in the main coordinate system 312 using a rigid sphere collision model that is generally handled by classical mechanics. Then, the calculation unit 202 calculates the position of the control point 303 in the parent coordinate system 311 by performing coordinate conversion from the sub-coordinate system 313 to the parent coordinate system 311. For example, the position of the secondary bone 302D after the collision moves by Δξ1 in the horizontal direction and Δξ2 in the vertical direction. Similarly, the position of each control point 302D associated with the secondary bone 302D is also moved by Δξ1 in the horizontal direction and Δξ2 in the vertical direction.

計算部202は、すべての副ボーン302について剛体の球体衝突モデルを適用し、同様にしてすべての制御点303の位置を計算する。   The calculation unit 202 applies the rigid sphere collision model to all the secondary bones 302 and calculates the positions of all the control points 303 in the same manner.

なお、更新部204は、平行移動の代わりに、もしくは平行移動に加えて、副ボーン302を軸回転移動や中心点回転移動で移動させてもよい。   Note that the update unit 204 may move the secondary bone 302 by axial rotation movement or center point rotation movement instead of or in addition to the parallel movement.

衝突前の近似障害物1725を表す球の占める全領域は、障害物オブジェクト1720の表面に対してバウンディングエリア1750の反対側にあることが望ましい。   The entire area occupied by the sphere representing the approximate obstacle 1725 before the collision is preferably on the opposite side of the bounding area 1750 with respect to the surface of the obstacle object 1720.

本実施形態によれば、画像生成装置200は、任意の形状をもったオブジェクト同士の衝突前後を表す画像、特に衝突後にオブジェクトが変形した画像を容易に生成できるようになる。従来のように主ボーン301に制御点を関連付けて主ボーン301の位置を移動させると、オブジェクトの変形させたくない部分までも変形してしまうが、本発明のように副ボーン302に制御点を関連付けて副ボーン302の位置を移動させると、オブジェクトの変形させたい部分のみを変形させ、変形させたくない部分はそのまま変形させないようにすることができる。   According to the present embodiment, the image generation apparatus 200 can easily generate images representing before and after the collision between objects having arbitrary shapes, particularly an image in which the object is deformed after the collision. When the position of the main bone 301 is moved by associating the control point with the main bone 301 as in the prior art, the part of the object that is not desired to be deformed is also deformed. When the position of the secondary bone 302 is moved in association with each other, it is possible to deform only the portion of the object that is desired to be deformed and not to deform the portion that is not desired to be deformed.

図20(a)は、従来技術をそのまま適用し、主ボーン301を1本から5本に変えて骨格を構成した場合の仮想空間モデルを表す図である。例えばオブジェクトの真ん中付近がへこむように変形させると、図20(b)のように、パンチした所だけでなくオブジェクト全体がしなるように変形する。これは、より現実世界の現象に近い表現手法と言える。しかし、クレイアニメーションなどのように、現実世界ではあり得ないようにわざとキャラクタを平らにして表現することによって、変形した部分をより強調できるケースや、大げさにおもしろおかしく表現できるケースもある。本発明はこのようなケースで用いると特に効果的である。   FIG. 20A is a diagram illustrating a virtual space model in the case where the skeleton is configured by applying the conventional technique as it is and changing the main bone 301 from one to five. For example, when the object is deformed so as to be recessed near the middle, the object is deformed so that the entire object is bent as well as the punched part as shown in FIG. This can be said to be an expression technique closer to the phenomenon in the real world. However, there are cases, such as clay animation, in which the deformed part can be emphasized more by expressing the character flatly so that it cannot be in the real world, and there are cases where it can be expressed interestingly exaggeratedly. The present invention is particularly effective when used in such a case.

(実施形態4)
次に、本発明のその他の実施形態について説明する。上述の各実施形態では、主ボーン301を一定の形状としている。しかし、主ボーン301の大きさ、長さ、形状などを可変にしてもよい。以下詳述する。
(Embodiment 4)
Next, other embodiments of the present invention will be described. In each of the above-described embodiments, the main bone 301 has a fixed shape. However, the size, length, shape, etc. of the main bone 301 may be variable. This will be described in detail below.

本実施形態の記憶部201は、主ボーン情報251として、仮想空間に配置される親座標系311における主ボーン301の位置と向きを示す情報に加えて、主ボーン301の拡縮率Pを示す情報を更に記憶する。   The storage unit 201 according to the present embodiment stores, as main bone information 251, information indicating the enlargement / reduction ratio P of the main bone 301 in addition to information indicating the position and orientation of the main bone 301 in the parent coordinate system 311 arranged in the virtual space. Is further memorized.

例えば、オブジェクトが他のオブジェクトに接触したり衝突したりしていない状態(通常状態)では、主ボーン301の拡縮率Pを1とする。一方、オブジェクトが他のオブジェクトに接触したり衝突したりした状態(接触状態・衝突状態)では、計算部202は、拡縮率Pを変化させる。ただし、P>0とする。   For example, when the object is not in contact with or collided with another object (normal state), the enlargement / reduction ratio P of the main bone 301 is set to 1. On the other hand, in a state where the object is in contact with or collides with another object (contact state / collision state), the calculation unit 202 changes the scaling ratio P. However, P> 0.

図21は、通常状態にある仮想空間モデルを表す図である。ヘビ型オブジェクト2100は、領域2110内に3つの主ボーン301A,301B,301Cを含み、それぞれの主ボーン301には1つ以上の副ボーン302が対応付けられている。例えば主ボーン301Bには3つの副ボーン302B1,302B2,302B3が対応付けられている。さらにそれぞれの副ボーン302には1つ以上の制御点303が割り当てられている。例えば副ボーン302Bには3つの制御点303B1,303B2,303B3が割り当てられている。   FIG. 21 is a diagram illustrating a virtual space model in a normal state. The snake object 2100 includes three main bones 301A, 301B, and 301C in a region 2110, and each main bone 301 is associated with one or more sub-bones 302. For example, three sub-bones 302B1, 302B2, and 302B3 are associated with the main bone 301B. Furthermore, one or more control points 303 are assigned to each secondary bone 302. For example, three control points 303B1, 303B2, and 303B3 are assigned to the secondary bone 302B.

図22は、掃除機のような吸引口と接触状態にある仮想空間モデルを表す図である。ヘビ型オブジェクト2100は、吸引口に吸い込まれるように変形する。このとき、計算部202は、外力2120(この場合には引力)の大きさに応じて主ボーン301の拡縮率Pを変化させる。例えば外力2120が大きいほど拡縮率を小さくする。つまり、吸引口に強く引き込まれるほど、主ボーン301の大きさを小さくする。本図では、計算部202は、主ボーン301BをP倍に縮小し、且つ、副ボーン302B1,302B2,302B3の主座標系312における位置を上方に平行移動させている。その結果、ヘビ型オブジェクト2100は、吸引口に近づくほど大きくすぼむ(引っ張られる)ように変形する。   FIG. 22 is a diagram illustrating a virtual space model in contact with a suction port such as a vacuum cleaner. The snake object 2100 is deformed so as to be sucked into the suction port. At this time, the calculation unit 202 changes the expansion / contraction rate P of the main bone 301 according to the magnitude of the external force 2120 (in this case, attractive force). For example, the larger the external force 2120, the smaller the expansion / contraction rate. That is, the size of the main bone 301 is reduced as it is drawn more strongly into the suction port. In this figure, the calculation unit 202 reduces the main bone 301B by P times and translates the positions of the sub-bones 302B1, 302B2, and 302B3 in the main coordinate system 312 upward. As a result, the snake object 2100 is deformed so as to sag (pull) as it approaches the suction port.

ただし、主ボーン301に対する副ボーン302の相対的な位置関係は不変とし、計算部202は、主座標系312全体のスケールを拡縮させる。また、副ボーン302に対する制御点303の相対的な位置関係は不変とし、計算部202は、副座標系313全体のスケールを同じ量だけ拡縮させる。計算部202は、上述のステップS703において、主座標系312と副座標系313のスケールを変えるとともに、各制御点303の副座標系313における位置を親座標系311に座標変換すればよい。   However, the relative positional relationship of the sub-bone 302 with respect to the main bone 301 is not changed, and the calculation unit 202 enlarges / reduces the scale of the entire main coordinate system 312. Further, the relative positional relationship of the control point 303 with respect to the secondary bone 302 is not changed, and the calculation unit 202 expands or contracts the scale of the entire secondary coordinate system 313 by the same amount. In step S703 described above, the calculation unit 202 may change the scales of the main coordinate system 312 and the sub-coordinate system 313 and coordinate-convert the position of each control point 303 in the sub-coordinate system 313 to the parent coordinate system 311.

勿論、外力2120の向き、大きさ、種類は任意に変えることができる。また、オブジェクトにかかる力の大きさに応じて拡縮率を変える代わりに、オブジェクト等の移動する速度、加速度に応じて拡縮率を変えてもよい。   Of course, the direction, size, and type of the external force 2120 can be arbitrarily changed. Further, instead of changing the enlargement / reduction ratio according to the magnitude of the force applied to the object, the enlargement / reduction ratio may be changed according to the moving speed or acceleration of the object or the like.

本実施形態では、主座標系312全体、あるいは副座標系313全体のスケールを変えているが、座標系全体ではなく一部のスケールを変えるようにしてもよい。例えば、デカルト座標系を用いる場合、X軸方向とY軸方向のスケールは不変とする一方、Z軸方向のスケールのみ拡縮させてもよい。   In the present embodiment, the scale of the entire main coordinate system 312 or the entire sub-coordinate system 313 is changed, but a part of the scale may be changed instead of the entire coordinate system. For example, when a Cartesian coordinate system is used, the scales in the X-axis direction and the Y-axis direction are not changed, but only the scale in the Z-axis direction may be scaled.

本実施形態によれば、副ボーン302の主座標系312における位置を変化させるだけでなく主ボーン301の大きさや形状を変えることができるので、オブジェクトの変形のさせ方に様々なバリエーションを作ることができる。   According to the present embodiment, not only the position of the secondary bone 302 in the main coordinate system 312 can be changed, but also the size and shape of the main bone 301 can be changed, so that various variations can be made in how to deform the object. Can do.

本発明は、上述した実施形態に限定されず、種々の変形及び応用が可能である。また、上述した実施形態の各構成要素を自由に組み合わせることも可能である。   The present invention is not limited to the above-described embodiments, and various modifications and applications are possible. Moreover, it is also possible to freely combine the constituent elements of the above-described embodiments.

画像生成装置200を装置の全部又は一部として動作させるためのプログラムを、メモリカード、CD−ROM、DVD、MO(Magneto Optical disk)などのコンピュータ読み取り可能な記録媒体に格納して配布し、これを別のコンピュータにインストールし、上述の手段として動作させ、あるいは、上述の工程を実行させてもよい。   A program for operating the image generating apparatus 200 as all or part of the apparatus is stored and distributed in a computer-readable recording medium such as a memory card, CD-ROM, DVD, or MO (Magneto Optical disk). May be installed in another computer and operated as the above-described means, or the above-described steps may be executed.

さらに、インターネット上のサーバ装置が有するディスク装置等にプログラムを格納しておき、例えば、搬送波に重畳させて、コンピュータにダウンロード等するものとしてもよい。   Furthermore, the program may be stored in a disk device or the like included in a server device on the Internet, and may be downloaded onto a computer by being superimposed on a carrier wave, for example.

以上説明したように、本発明によれば、仮想空間内のオブジェクトを変形させた画像を容易に生成するために好適な画像生成装置、画像生成方法、ならびに、プログラムを提供することができる。   As described above, according to the present invention, it is possible to provide an image generation apparatus, an image generation method, and a program suitable for easily generating an image obtained by deforming an object in a virtual space.

本実施形態の画像生成装置が実現される典型的な情報処理装置の概要構成を示す図である。It is a figure which shows schematic structure of the typical information processing apparatus with which the image generation apparatus of this embodiment is implement | achieved. 画像生成装置の機能的な構成を説明するための図である。It is a figure for demonstrating the functional structure of an image generation apparatus. 実施形態1における仮想空間モデルの主ボーン、副ボーン、制御点、スキンを説明するための図である。FIG. 6 is a diagram for explaining main bones, sub bones, control points, and skins of the virtual space model in the first embodiment. (a)更新部が副ボーンを移動させる前の様子を表す画像の例である。(b)更新部が副ボーンを平行移動させた後の様子を表す画像の例である。(A) It is an example of the image showing a mode before an update part moves a subbone. (B) It is an example of the image showing a mode after the update part translated the subbone. (a)更新部が副ボーンを移動させる前の様子を表す画像の例である。(b)更新部が副ボーンを平行移動させ且つ軸回転移動させた後の様子を表す画像の例である。(A) It is an example of the image showing a mode before an update part moves a subbone. (B) It is an example of the image showing a mode after an update part moves a secondary bone in parallel and axially moves it. (a)更新部が副ボーンを中心点回転移動させた後の様子を表す画像の例である。(b)副ボーンの形状を角柱とした場合の、更新部が副ボーンを中心点回転移動させた後の様子を表す画像の例である。(A) It is an example of the image showing the mode after an update part rotationally moves the subbone center point. (B) It is an example of the image showing a mode after the renewal part rotated and moved the secondary bone center point when the shape of the secondary bone is a prism. 画像生成処理を説明するためのフローチャートである。It is a flowchart for demonstrating an image generation process. 更新部による更新前の、主ボーン、副ボーン、制御点、スキンを表す図である。It is a figure showing the main bone, the subbone, the control point, and the skin before the update by the update part. 更新部による更新後の、主ボーン、副ボーン、制御点、スキンを表す図である。It is a figure showing the main bone, the subbone, the control point, and the skin after the update by the update part. 実施形態2における仮想空間モデル(その1)を説明するための図である。FIG. 10 is a diagram for explaining a virtual space model (part 1) in the second embodiment. 実施形態2における仮想空間モデル(その2)を説明するための図である。It is a figure for demonstrating the virtual space model (the 2) in Embodiment 2. FIG. 実施形態2における仮想空間モデル(その3)を説明するための図である。It is a figure for demonstrating the virtual space model (the 3) in Embodiment 2. FIG. 実施形態2における仮想空間モデル(その4)を説明するための図である。It is a figure for demonstrating the virtual space model (the 4) in Embodiment 2. FIG. 更新部が制御点の位置を更新する処理を説明するためのフローチャートである。It is a flowchart for demonstrating the process in which an update part updates the position of a control point. (a)地面に向かって落下中のキャラクタオブジェクトを表す図である。(b)地面に落下後のキャラクタオブジェクトを表す図である。(A) It is a figure showing the character object falling toward the ground. (B) It is a figure showing the character object after falling on the ground. 実施形態3の画像生成装置の機能的な構成を説明するための図である。FIG. 10 is a diagram for describing a functional configuration of an image generation apparatus according to a third embodiment. (a)と(b)は実施形態3における衝突前の仮想空間モデルを説明するための図である。(A) And (b) is a figure for demonstrating the virtual space model before the collision in Embodiment 3. FIG. (a)と(b)は実施形態3における衝突後の仮想空間モデルを説明するための図である。(A) And (b) is a figure for demonstrating the virtual space model after the collision in Embodiment 3. FIG. (a)と(b)は実施形態3において剛体の球体衝突モデルを採用した仮想空間モデルを説明するための図である。(A) And (b) is a figure for demonstrating the virtual space model which employ | adopted the rigid spherical collision model in Embodiment 3. FIG. (a)と(b)は従来の手法を用いた仮想空間モデルを説明するための図である。(A) And (b) is a figure for demonstrating the virtual space model using the conventional method. 実施形態4における通常状態の仮想空間モデルを説明するための図である。FIG. 10 is a diagram for explaining a virtual space model in a normal state according to a fourth embodiment. 実施形態4における接触状態の仮想空間モデルを説明するための図である。It is a figure for demonstrating the virtual space model of the contact state in Embodiment 4. FIG.

符号の説明Explanation of symbols

100 情報処理装置
101 CPU
102 ROM
103 RAM
104 インターフェース
105 コントローラ
106 外部メモリ
107 DVD−ROMドライブ
108 画像処理部
109 音声処理部
110 NIC
200 画像生成装置
201 記憶部
202 計算部
203 画像生成部
204 更新部
205 衝突判定部
251 主ボーン情報
252 副ボーン情報
253 制御点情報
254 障害物情報
255 バウンディングエリア情報
301 主ボーン
302 副ボーン
303 制御点
304 スキン
311 親座標系
312 主座標系
313 副座標系
314 移動座標系
100 Information processing apparatus 101 CPU
102 ROM
103 RAM
104 Interface 105 Controller 106 External Memory 107 DVD-ROM Drive 108 Image Processing Unit 109 Audio Processing Unit 110 NIC
200 Image Generation Device 201 Storage Unit 202 Calculation Unit 203 Image Generation Unit 204 Update Unit 205 Collision Determination Unit 251 Main Bone Information 252 Secondary Bone Information 253 Control Point Information 254 Obstacle Information 255 Bounding Area Information 301 Main Bone 302 Sub Bone 303 Control Point 304 Skin 311 Parent Coordinate System 312 Main Coordinate System 313 Sub Coordinate System 314 Moving Coordinate System

Claims (14)

仮想空間に配置される座標系(以下「親座標系」という。)における主ボーンの位置と、当該主ボーンに固定された座標系(以下「主座標系」という。)における副ボーンの位置と、当該副ボーンに固定された座標系(以下「副座標系」という。)における当該副ボーンに関連付けられた制御点の位置と、当該副ボーンに関連付けて当該副座標系における位置が固定されたバウンディングエリアの位置と、障害物オブジェクトの当該親座標系における位置と、を記憶する記憶部と、
当該主ボーンの当該親座標系における位置と、当該副ボーンの当該主座標系における位置と、当該バウンディングエリアが割り当てられた当該副座標系における当該バウンディングエリアの位置と、当該親座標系における当該障害物オブジェクトの位置と、に基づいて、当該バウンディングエリアと当該障害物オブジェクトとが衝突するか否かを判定する衝突判定部と、
当該主ボーンの当該親座標系における位置と、当該副ボーンの当該主座標系における位置と、当該制御点の当該副座標系における位置とに基づいて、当該制御点の当該親座標系における位置を計算する計算部と、
前記計算された制御点の位置により、スキンの形状を定め、当該仮想空間に配置される当該スキンの形状を表す画像を生成する画像生成部と、
当該副ボーンの当該主座標系における位置を更新して、当該スキンの形状を変化させ、当該障害物オブジェクトと衝突すると判定されたバウンディングエリアの位置を、当該障害物オブジェクトが衝突しなくなるまで、当該障害物オブジェクトから遠ざけるように、当該副ボーンとともに移動する更新部と、
を備えることを特徴とする画像生成装置。
The position of the main bone in the coordinate system (hereinafter referred to as “parent coordinate system”) arranged in the virtual space, and the position of the sub bone in the coordinate system fixed to the main bone (hereinafter referred to as “main coordinate system”) The position of the control point associated with the sub-bone in the coordinate system fixed to the sub-bone (hereinafter referred to as “sub-coordinate system”) and the position in the sub-coordinate system associated with the sub-bone are fixed. A storage unit for storing the position of the bounding area and the position of the obstacle object in the parent coordinate system ;
The position of the main bone in the parent coordinate system, the position of the sub bone in the main coordinate system, the position of the bounding area in the sub coordinate system to which the bounding area is assigned, and the obstacle in the parent coordinate system A collision determination unit that determines whether or not the bounding area and the obstacle object collide based on the position of the object object;
Based on the position of the main bone in the parent coordinate system, the position of the sub bone in the main coordinate system, and the position of the control point in the sub coordinate system, the position of the control point in the parent coordinate system is determined. A calculation unit for calculating,
An image generation unit that determines the shape of the skin according to the calculated position of the control point, and generates an image representing the shape of the skin arranged in the virtual space;
Update the position of the secondary bone in the main coordinate system, change the shape of the skin, and change the position of the bounding area determined to collide with the obstacle object until the obstacle object no longer collides. as away from the obstacle object, an update unit you move along with the auxiliary bones,
An image generation apparatus comprising:
請求項1に記載の画像生成装置であって、
当該副ボーンに関連付けられた当該制御点の当該副座標系における位置は一定である、
ことを特徴とする画像生成装置。
The image generation apparatus according to claim 1,
The position of the control point associated with the secondary bone in the secondary coordinate system is constant,
An image generation apparatus characterized by that.
請求項1に記載の画像生成装置であって、
当該主ボーンには複数の当該副ボーンが関連付けられ、
当該副ボーンのそれぞれに異なる制御点が関連付けられ、
前記記憶部は、当該副ボーンのそれぞれについて、当該副ボーンに固定された副座標系における当該副ボーンに関連付けられた制御点の位置を記憶し、
前記計算部は、当該主ボーンの当該親座標系における位置と、当該副ボーンの当該主座標系におけるそれぞれの位置と、当該副ボーンのそれぞれに関連付けられた当該制御点の当該副座標系における位置とに基づいて、当該制御点の当該親座標系におけるそれぞれの位置を計算する、
ことを特徴とする画像生成装置。
The image generation apparatus according to claim 1,
A plurality of sub-bones are associated with the main bone,
A different control point is associated with each of the secondary bones,
The storage unit stores, for each of the sub-bones, a position of a control point associated with the sub-bone in a sub-coordinate system fixed to the sub-bone.
The calculation unit calculates the position of the main bone in the parent coordinate system, the position of the sub bone in the main coordinate system, and the position of the control point associated with each of the sub bones in the sub coordinate system. And calculating the respective position of the control point in the parent coordinate system based on
An image generation apparatus characterized by that.
請求項3に記載の画像生成装置であって、
前記計算部は、当該副ボーンの移動方向を正とする軸をもつ1次元座標系(以下「移動座標系」という。)における座標値が最も大きい制御点(以下「先端制御点」という。)の移動量が、
(a)所定値より小さい場合、当該副ボーンに関連付けられた当該制御点の当該副座標系における位置が一定になるように、当該制御点のそれぞれを移動させた位置を計算し、
(b)所定値より大きい場合、当該先端制御点の当該副座標系における位置を一定にし、当該先端制御点以外の制御点の当該副座標系における位置を移動させた位置を計算する、
ことを特徴とする画像生成装置。
The image generation device according to claim 3,
The calculation unit has a control point (hereinafter referred to as “tip control point”) having the largest coordinate value in a one-dimensional coordinate system (hereinafter referred to as “movement coordinate system”) having an axis whose positive direction is the movement direction of the secondary bone. The amount of movement is
(A) If smaller than a predetermined value, calculate the position where each of the control points is moved so that the position of the control point associated with the sub-bone in the sub-coordinate system is constant,
(B) If larger than a predetermined value, the position of the tip control point in the sub-coordinate system is made constant, and the position of the control point other than the tip control point moved in the sub-coordinate system is calculated.
An image generation apparatus characterized by that.
請求項4に記載の画像生成装置であって、
前記計算部は、さらに、
(b1)当該先端制御点以外の制御点の当該移動座標系における位置が、当該先端制御点の当該移動座標系における位置と等しくなった場合、当該先端制御点以外の制御点の当該副座標系における位置も一定とする、
ことを特徴とする画像生成装置。
The image generation apparatus according to claim 4,
The calculation unit further includes:
(B1) When the position of the control point other than the tip control point in the moving coordinate system becomes equal to the position of the tip control point in the moving coordinate system, the sub-coordinate system of the control point other than the tip control point The position at is also constant,
An image generation apparatus characterized by that.
請求項1乃至5のいずれか1項に記載の画像生成装置であって、
前記記憶部は、当該主ボーンの当該親座標系における向きと、当該副ボーンの当該主座標系における向きと、をさらに記憶し、
前記計算部は、当該主ボーンの当該親座標系における位置及び向きと、当該副ボーンの当該主座標系における位置及び向きと、当該制御点の当該副座標系における位置とに基づいて、当該制御点の当該親座標系における位置を計算する、
ことを特徴とする画像生成装置。
The image generation apparatus according to any one of claims 1 to 5,
The storage unit further stores the orientation of the main bone in the parent coordinate system and the orientation of the sub-bone in the main coordinate system,
The calculation unit performs the control based on the position and orientation of the main bone in the parent coordinate system, the position and orientation of the sub bone in the main coordinate system, and the position of the control point in the sub coordinate system. Calculate the position of the point in the parent coordinate system,
An image generation apparatus characterized by that.
請求項6に記載の画像生成装置であって、
前記更新部は、当該副ボーンの当該主座標系における位置を、平行移動と回転移動とのうち少なくともいずれか一方により移動させて、当該位置を更新する、
ことを特徴とする画像生成装置。
The image generation apparatus according to claim 6,
The update unit updates the position by moving the position of the sub-bone in the main coordinate system by at least one of parallel movement and rotational movement.
An image generation apparatus characterized by that.
請求項に記載の画像生成装置であって、
前記記憶部は、当該主ボーンの当該親座標系における向きと、当該副ボーンの当該主座標系における向きと、当該バウンディングエリアの当該副座標系における向きと、当該障害物オブジェクトの当該親座標系における向きと、をさらに記憶し、
前記衝突判定部は、当該主ボーンの当該親座標系における位置及び向きと、当該副ボーンの当該主座標系における位置及び向きと、当該バウンディングエリアが割り当てられた当該副ボーンに固定された副座標系における当該バウンディングエリアの位置及び向きと、当該障害物オブジェクトの当該親座標系における位置及び向きと、に基づいて、当該バウンディングエリアと当該障害物オブジェクトとが衝突するか否かを判定する、
ことを特徴とする画像生成装置。
The image generation apparatus according to claim 1 ,
The storage unit includes an orientation of the main bone in the parent coordinate system, an orientation of the sub bone in the main coordinate system, an orientation of the bounding area in the sub coordinate system, and the parent coordinate system of the obstacle object. Remember the orientation of
The collision determination unit includes the position and orientation of the main bone in the parent coordinate system, the position and orientation of the sub bone in the main coordinate system, and the sub coordinates fixed to the sub bone to which the bounding area is assigned. Determining whether or not the bounding area and the obstacle object collide based on the position and orientation of the bounding area in the system and the position and orientation of the obstacle object in the parent coordinate system;
An image generation apparatus characterized by that.
請求項1又は8に記載の画像生成装置であって、
当該バウンディングエリアは、当該バウンディングエリアが割り当てられた副ボーンに関連付けられた複数の制御点と、当該副ボーンとの距離の平均値、もしくは、最大値を半径とし、当該副ボーンの位置を中心とする球である、
ことを特徴とする画像生成装置。
The image generation apparatus according to claim 1 , wherein:
The bounding area is an average value or a maximum value of the distances between a plurality of control points associated with the secondary bone to which the bounding area is assigned and the secondary bone, and the center is the position of the secondary bone. Is a sphere,
An image generation apparatus characterized by that.
請求項1乃至のいずれか1項に記載の画像生成装置であって、
前記計算部は、当該主座標系と当該副座標系のスケールを変更し、当該主ボーンの当該親座標系における位置と、当該副ボーンの当該スケールを変更した主座標系における位置と、当該制御点の当該スケールを変更した副座標系における位置とに基づいて、当該制御点の当該親座標系における位置を計算する、
ことを特徴とする画像生成装置。
The image generation apparatus according to any one of claims 1 to 9 ,
The calculation unit changes the scale of the main coordinate system and the sub coordinate system, the position of the main bone in the parent coordinate system, the position of the sub bone in the main coordinate system where the scale is changed, and the control Calculating the position of the control point in the parent coordinate system based on the position of the point in the sub-coordinate system with the scale changed;
An image generation apparatus characterized by that.
請求項1乃至10のいずれか1項に記載の画像生成装置であって、  The image generation device according to any one of claims 1 to 10,
前記記憶部は、当該主ボーンの拡縮率を示す情報を更に記憶し、  The storage unit further stores information indicating a scaling rate of the main bone,
前記計算部は、当該バウンディングエリアと当該障害物オブジェクトとが衝突すると判定された場合に、前記記憶される拡縮率を変化させることにより、当該主ボーンを拡縮するとともに、当該副ボーンを当該変化した拡縮率を用いて拡縮させる、  When it is determined that the bounding area and the obstacle object collide, the calculation unit expands / contracts the main bone and changes the sub bone by changing the stored expansion / contraction ratio. Scale using the scaling factor,
ことを特徴とする画像生成装置。  An image generation apparatus characterized by that.
請求項1乃至10のいずれか1項に記載の画像生成装置であって、  The image generation device according to any one of claims 1 to 10,
前記記憶部は、当該主ボーンの拡縮率を示す情報を更に記憶し、  The storage unit further stores information indicating a scaling rate of the main bone,
前記計算部は、当該バウンディングエリアが設定されるオブジェクトに作用する外力の大きさに応じて、前記記憶される拡縮率を変化させることにより、当該主ボーンを拡縮するとともに、当該副ボーンを当該変化した拡縮率を用いて拡縮させる、  The calculation unit expands / contracts the main bone and changes the sub-bone according to the magnitude of the external force acting on the object for which the bounding area is set, Scaling using the scaled rate,
ことを特徴とする画像生成装置。  An image generation apparatus characterized by that.
記憶部、衝突判定部、計算部、画像生成部、更新部を有する画像生成装置にて実行される画像生成方法であって、
前記記憶部は、仮想空間に配置される座標系(以下「親座標系」という。)における主ボーンの位置と、当該主ボーンに固定された座標系(以下「主座標系」という。)における副ボーンの位置と、当該副ボーンに固定された座標系(以下「副座標系」という。)における当該副ボーンに関連付けられた制御点の位置と、当該副ボーンに関連付けて当該副座標系における位置が固定されたバウンディングエリアの位置と、障害物オブジェクトの当該親座標系における位置と、が記憶され
前記衝突判定部が、当該主ボーンの当該親座標系における位置と、当該副ボーンの当該主座標系における位置と、当該バウンディングエリアが割り当てられた当該副座標系における当該バウンディングエリアの位置と、当該親座標系における当該障害物オブジェクトの位置と、に基づいて、当該バウンディングエリアと当該障害物オブジェクトとが衝突するか否かを判定する衝突判定ステップと、
前記計算部が、当該主ボーンの当該親座標系における位置と、当該副ボーンの当該主座標系における位置と、当該制御点の当該副座標系における位置とに基づいて、当該制御点の当該親座標系における位置を計算する計算ステップと、
前記画像生成部が、前記計算された制御点の位置により、スキンの形状を定め、当該仮想空間に配置される当該スキンの形状を表す画像を生成する画像生成ステップと、
前記更新部が、当該副ボーンの当該主座標系における位置を更新して、当該スキンの形状を変化させ、当該障害物オブジェクトと衝突すると判定されたバウンディングエリアの位置を、当該障害物オブジェクトが衝突しなくなるまで、当該障害物オブジェクトから遠ざけるように、当該副ボーンとともに移動する更新ステップと、
を備えることを特徴とする画像生成方法。
An image generation method executed by an image generation apparatus having a storage unit, a collision determination unit, a calculation unit, an image generation unit, and an update unit,
In the storage unit , the position of the main bone in a coordinate system (hereinafter referred to as “parent coordinate system”) arranged in the virtual space, and a coordinate system fixed to the main bone (hereinafter referred to as “main coordinate system”). And the position of the control point associated with the sub-bone in the coordinate system fixed to the sub-bone (hereinafter referred to as “sub-coordinate system”) and the sub-coordinate system associated with the sub-bone. the position of the bounding area whose position is fixed at a position in the parent coordinate system of the obstacle objects, is stored,
The collision determination unit includes: a position of the main bone in the parent coordinate system; a position of the sub bone in the main coordinate system; a position of the bounding area in the sub coordinate system to which the bounding area is assigned; A collision determination step for determining whether or not the bounding area and the obstacle object collide based on the position of the obstacle object in the parent coordinate system;
The calculation unit determines the parent of the control point based on the position of the main bone in the parent coordinate system, the position of the sub-bone in the main coordinate system, and the position of the control point in the sub-coordinate system. A calculation step for calculating a position in the coordinate system;
The image generation unit determines the shape of the skin according to the calculated position of the control point, and generates an image representing the shape of the skin arranged in the virtual space;
The updating unit updates the position of the secondary bone in the main coordinate system, changes the shape of the skin, and the obstacle object collides with the position of the bounding area determined to collide with the obstacle object. until no, so away from the obstacle objects, and update step you move along with the auxiliary bones,
An image generation method comprising:
コンピュータを、
仮想空間に配置される座標系(以下「親座標系」という。)における主ボーンの位置と、当該主ボーンに固定された座標系(以下「主座標系」という。)における副ボーンの位置と、当該副ボーンに固定された座標系(以下「副座標系」という。)における当該副ボーンに関連付けられた制御点の位置と、当該副ボーンに関連付けて当該副座標系における位置が固定されたバウンディングエリアの位置と、障害物オブジェクトの当該親座標系における位置と、を記憶する記憶部、
当該主ボーンの当該親座標系における位置と、当該副ボーンの当該主座標系における位置と、当該バウンディングエリアが割り当てられた当該副座標系における当該バウンディングエリアの位置と、当該親座標系における当該障害物オブジェクトの位置と、に基づいて、当該バウンディングエリアと当該障害物オブジェクトとが衝突するか否かを判定する衝突判定部と、
当該主ボーンの当該親座標系における位置と、当該副ボーンの当該主座標系における位置と、当該制御点の当該副座標系における位置とに基づいて、当該制御点の当該親座標系における位置を計算する計算部、
前記計算された制御点の位置により、スキンの形状を定め、当該仮想空間に配置される当該スキンの形状を表す画像を生成する画像生成部、
当該副ボーンの当該主座標系における位置を更新して、当該スキンの形状を変化させ、当該障害物オブジェクトと衝突すると判定されたバウンディングエリアの位置を、当該障害物オブジェクトが衝突しなくなるまで、当該障害物オブジェクトから遠ざけるように、当該副ボーンとともに移動する更新部、
として機能させることを特徴とするプログラム。
Computer
The position of the main bone in the coordinate system (hereinafter referred to as “parent coordinate system”) arranged in the virtual space, and the position of the sub bone in the coordinate system fixed to the main bone (hereinafter referred to as “main coordinate system”) The position of the control point associated with the sub-bone in the coordinate system fixed to the sub-bone (hereinafter referred to as “sub-coordinate system”) and the position in the sub-coordinate system associated with the sub-bone are fixed. A storage unit for storing the position of the bounding area and the position of the obstacle object in the parent coordinate system ;
The position of the main bone in the parent coordinate system, the position of the sub bone in the main coordinate system, the position of the bounding area in the sub coordinate system to which the bounding area is assigned, and the obstacle in the parent coordinate system A collision determination unit that determines whether or not the bounding area and the obstacle object collide based on the position of the object object;
Based on the position of the main bone in the parent coordinate system, the position of the sub bone in the main coordinate system, and the position of the control point in the sub coordinate system, the position of the control point in the parent coordinate system is determined. Calculation part to calculate,
An image generation unit that determines the shape of the skin according to the calculated position of the control point and generates an image representing the shape of the skin arranged in the virtual space;
Update the position of the secondary bone in the main coordinate system, change the shape of the skin, and change the position of the bounding area determined to collide with the obstacle object until the obstacle object no longer collides. as away from the obstacle object updater move along with the auxiliary bones,
A program characterized by functioning as
JP2007321757A 2007-12-13 2007-12-13 Image generating apparatus, image generating method, and program Active JP4579964B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007321757A JP4579964B2 (en) 2007-12-13 2007-12-13 Image generating apparatus, image generating method, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007321757A JP4579964B2 (en) 2007-12-13 2007-12-13 Image generating apparatus, image generating method, and program

Publications (2)

Publication Number Publication Date
JP2009146103A JP2009146103A (en) 2009-07-02
JP4579964B2 true JP4579964B2 (en) 2010-11-10

Family

ID=40916650

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007321757A Active JP4579964B2 (en) 2007-12-13 2007-12-13 Image generating apparatus, image generating method, and program

Country Status (1)

Country Link
JP (1) JP4579964B2 (en)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4882012B2 (en) * 2010-03-05 2012-02-22 株式会社コナミデジタルエンタテインメント Image processing apparatus, image processing apparatus control method, and program
CN111223171B (en) * 2020-01-14 2025-06-27 腾讯科技(深圳)有限公司 Image processing method, device, electronic device and storage medium
CN112169337B (en) * 2020-10-13 2024-08-23 网易(杭州)网络有限公司 Control method and device for serpentine virtual object, storage medium and electronic equipment
CN113112576A (en) * 2021-04-15 2021-07-13 华强方特(深圳)动漫有限公司 Method for automatically disassembling Maya large bone total weight to fine differentiated bone
CN114332317B (en) * 2021-12-29 2025-02-18 天津亚克互动科技有限公司 Animation data processing method, device, program product, medium and electronic equipment
US11922576B2 (en) * 2022-01-04 2024-03-05 Triangulate Labs, Inc. System and method for mapping the skin
CN115797510A (en) * 2022-11-23 2023-03-14 珠海金山数字网络科技有限公司 Skeleton model update method and device

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10188028A (en) * 1996-10-31 1998-07-21 Konami Co Ltd Animation image generating device by skeleton, method for generating the animation image and medium storing program for generating the animation image
JP4144017B2 (en) * 1999-12-23 2008-09-03 株式会社セガ VIDEO GAME DEVICE, IMAGE DISPLAY DEVICE AND METHOD, MOVIE DISPLAY DEVICE AND METHOD, AND RECORDING MEDIUM
AU2003269986A1 (en) * 2003-05-14 2004-12-13 Pixar Statistical dynamic collisions method and apparatus
JP2005222491A (en) * 2004-02-09 2005-08-18 Ricoh Co Ltd Movie image composition processing apparatus, movie image composition processing method, and program for causing computer to execute the method

Also Published As

Publication number Publication date
JP2009146103A (en) 2009-07-02

Similar Documents

Publication Publication Date Title
JP4579964B2 (en) Image generating apparatus, image generating method, and program
CN102665837B (en) Visual target tracking
JP3568861B2 (en) Three-dimensional object transformation method and video game apparatus in video game, and computer-readable recording medium on which video game program is recorded
US8498849B1 (en) Wrinkle simulation on fabric based on three arm joint angles
EP1505546B1 (en) Method for drawing a three-dimensional image by modeling a second object connected to a first object
JP4053078B2 (en) 3D game device and information storage medium
JP2007334443A (en) Avatar motion control system, program and method thereof
US7012608B1 (en) Simulation device
JP3957363B2 (en) 3D game device and information storage medium
JP4815521B2 (en) Image processing apparatus, image processing method, and program
Lee et al. Realistic human hand deformation
JP4287479B2 (en) Image generating apparatus, image generating method, and program
JP4113179B2 (en) Simulation apparatus, simulation method, and program
JP2011095935A (en) Program, information storage medium, and image generation system
JPH11272157A (en) Object gripping motion simulation device
JP4199764B2 (en) Skin control point position calculation device, calculation method, and program
JP4068093B2 (en) Simulation apparatus, simulation method, and program
JP4229316B2 (en) Image generation system, program, and information storage medium
JP4989697B2 (en) GAME DEVICE, GAME PROCESSING METHOD, AND PROGRAM
JP2010532895A (en) How to model connected object motion
JP4361878B2 (en) Statistical mechanical modeling method and apparatus
JP4786389B2 (en) Program, information storage medium, and image generation system
Wan et al. A 4-layer flexible virtual hand model for haptic interaction
JP5155262B2 (en) Image generating apparatus, image generating method, and program
JP5378027B2 (en) GAME PROGRAM, STORAGE MEDIUM, AND COMPUTER DEVICE

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100520

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100601

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100728

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

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

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

Free format text: PAYMENT UNTIL: 20130903

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4579964

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20140903

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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