JP4815521B2 - Image processing apparatus, image processing method, and program - Google Patents

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

Info

Publication number
JP4815521B2
JP4815521B2 JP2009216332A JP2009216332A JP4815521B2 JP 4815521 B2 JP4815521 B2 JP 4815521B2 JP 2009216332 A JP2009216332 A JP 2009216332A JP 2009216332 A JP2009216332 A JP 2009216332A JP 4815521 B2 JP4815521 B2 JP 4815521B2
Authority
JP
Japan
Prior art keywords
polygon
control point
bone
vertex
polygons
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
JP2009216332A
Other languages
Japanese (ja)
Other versions
JP2011065492A (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 JP2009216332A priority Critical patent/JP4815521B2/en
Publication of JP2011065492A publication Critical patent/JP2011065492A/en
Application granted granted Critical
Publication of JP4815521B2 publication Critical patent/JP4815521B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、仮想空間に配置される複数のポリゴンからなるオブジェクトをある分割面で分割した様子を表す画像を生成するのに好適な画像処理装置、画像処理方法、ならびに、これらをコンピュータにて実現するプログラムに関する。   The present invention provides an image processing apparatus, an image processing method, and a computer that are suitable for generating an image representing a state in which an object composed of a plurality of polygons arranged in a virtual space is divided by a division plane. Related to the program.

従来から、仮想空間内に配置されるオブジェクトの外観を表す画像を生成する技術が種々提案されている。たとえば、特許文献1に開示される技術では、オブジェクトの形状が、ボーン、制御点、頂点、ポリゴンを用いて形成される。   Conventionally, various techniques for generating an image representing the appearance of an object arranged in a virtual space have been proposed. For example, in the technique disclosed in Patent Document 1, the shape of an object is formed using bones, control points, vertices, and polygons.

ボーンは、人間でいう骨に相当するものであり、ボーン同士は、連結点で互いに連結される。隣接するボーン同士の相対的な位置や向きを変化させると、オブジェクトの概形が変形する。   A bone corresponds to a bone in humans, and the bones are connected to each other at a connection point. Changing the relative position and orientation of adjacent bones will change the outline of the object.

典型的には、ボーンは、ボーンをノードとする木構造的な階層によって管理される。木構造の根ノードに対するボーン(以下「根ボーン」という。)の位置や向きは、仮想空間におけるオブジェクト全体の位置や向きを表す。親ノードのボーン(以下「親ボーン」という。)と子ノードのボーン(以下「子ボーン」という。)は直接連結されており、親ボーンに対する子ボーンの向きを変化させることで、ボーン同士の相対的な位置や向きを変化させる。   Typically, bones are managed by a tree-like hierarchy having bones as nodes. The position and orientation of the bone (hereinafter referred to as “root bone”) with respect to the root node of the tree structure represent the position and orientation of the entire object in the virtual space. The bone of the parent node (hereinafter referred to as “parent bone”) and the bone of the child node (hereinafter referred to as “child bone”) are directly connected, and by changing the direction of the child bone relative to the parent bone, Change relative position and orientation.

オブジェクトの外観は、ボーンの変形に伴って移動する頂点を結ぶポリゴンにテクスチャを貼ることによって形成される。このポリゴンによって形成される表面をスキンと呼ぶ。   The appearance of the object is formed by attaching a texture to a polygon that connects vertices that move as the bone deforms. The surface formed by this polygon is called a skin.

各ボーンには、複数の制御点が対応付けられており、これらの制御点は、そのボーンと連動して動作する。すなわち、ボーンが位置や向きを変えたとしても、制御点のボーンに対する相対的な位置は、変化しない。   Each bone is associated with a plurality of control points, and these control points operate in conjunction with the bone. That is, even if the bone changes its position and orientation, the relative position of the control point to the bone does not change.

各頂点は、複数の制御点に重み付きで対応付けられている。ボーンが位置や向きを変化させたときの各頂点の位置は、その頂点に対応付けられた制御点の位置に、重みを付けて平均した位置とする。   Each vertex is associated with a plurality of control points with weights. The position of each vertex when the position or orientation of the bone is changed is a position obtained by weighting and averaging the position of the control point associated with the vertex.

また、各ボーンには初期位置、初期向きが定められており、ボーンが初期位置、初期向きをとるときには、各頂点と、その頂点に対応付けられる制御点と、が、同じ位置で重なるように構成するのが典型的である。   In addition, each bone has an initial position and initial orientation. When the bone takes the initial position and initial orientation, each vertex and the control point associated with that vertex overlap at the same position. Typically, it is configured.

このような処理を行うことで、オブジェクトが変形したときに、スキンに不自然なくびれや潰れが生じることを防止することができる。   By performing such processing, when the object is deformed, it is possible to prevent the skin from being unnaturally crushed or crushed.

このようなオブジェクトは、仮想空間内に配置されるキャラクターやモンスターが互いに戦闘するようなゲーム等において、キャラクターやモンスターの外観を表す際にも使用されている。   Such an object is also used to represent the appearance of a character or monster in a game or the like in which characters and monsters arranged in a virtual space battle each other.

特許第4011285号公報Japanese Patent No. 40111285

ここで、現実世界においては、とかげの尻尾を切断した場合には、とかげ本体も切断された尻尾単体も、そのまま動き続けることがある。ゲームにおいても、キャラクターがモンスターを刀で攻撃した場合に、同様の表現を行いたい、という要望がある。   Here, in the real world, when the tail of the lizard is cut, the tail itself having the cut lizard body may continue to move as it is. Even in the game, there is a demand for a similar expression when a character attacks a monster with a sword.

一般に、仮想空間に配置されたオブジェクトが分割面(切断面)によって分割(切断)される際に、分割されて互いに離間することとなった複数のオブジェクトの様子を、適切に画像表現できるようにしたい、という要望は強い。   In general, when an object placed in a virtual space is divided (cut) by a dividing plane (cutting plane), the state of a plurality of objects that are divided and separated from each other can be appropriately imaged. The desire to do is strong.

さらに、オブジェクトが分割された場合であっても、必要な情報はできるだけ再利用して、メモリ使用量を抑制したい、という要望もある。   Furthermore, even when an object is divided, there is a demand for reusing necessary information as much as possible to reduce memory usage.

本発明は、上記のような課題を解決するもので、仮想空間に配置される複数のポリゴンからなるオブジェクトをある分割面で分割した様子を表す画像を生成するのに好適な画像処理装置、画像処理方法、ならびに、これらをコンピュータにて実現するプログラムを提供することを目的とする。   The present invention solves the above-described problems, and is an image processing apparatus and image suitable for generating an image representing a state in which an object composed of a plurality of polygons arranged in a virtual space is divided by a certain division plane. It is an object of the present invention to provide a processing method and a program that implements these on a computer.

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

本発明の第1の観点に係る画像処理装置は、記憶部、ボーン移動部、制御点移動部、配置部、選択部、分割部、生成部、グループ移動部を備え、以下のように構成する。   An image processing apparatus according to a first aspect of the present invention includes a storage unit, a bone moving unit, a control point moving unit, an arrangement unit, a selecting unit, a dividing unit, a generating unit, and a group moving unit, and is configured as follows. .

すなわち、記憶部には、以下の情報が記憶される。
(a)互いに連結された複数のボーンの初期位置および初期向き。
(b)複数の制御点の初期位置。
(c)複数の制御点のそれぞれが複数のボーンのそれぞれに依存する重みを表す依存情報。
(d)複数のポリゴンのそれぞれが複数の制御点のいずれを頂点とするかを表す頂点情報。
(e)複数のポリゴンのそれぞれがいずれのグループに属するかを表すグループ情報。
(f)グループのそれぞれに対する仮想空間内の基準位置および基準向き。
That is, the following information is stored in the storage unit.
(A) Initial positions and initial orientations of a plurality of bones connected to each other.
(B) Initial positions of a plurality of control points.
(C) Dependency information representing a weight at which each of the plurality of control points depends on each of the plurality of bones.
(D) Vertex information indicating which of a plurality of control points each of a plurality of polygons has as a vertex.
(E) Group information indicating to which group each of the plurality of polygons belongs.
(F) The reference position and reference orientation in the virtual space for each of the groups.

ここで、分割前のオブジェクトの外観は、1つのグループに属するポリゴンによって形成されるが、このオブジェクトが2つに分割されると、ポリゴンが属するグループも2つになる。また、切断された各部分が独立して移動できるようにするため、グループごとに、基準位置と基準向きが定められる。   Here, the appearance of the object before division is formed by polygons belonging to one group, but when this object is divided into two, there are also two groups to which the polygon belongs. In addition, a reference position and a reference orientation are determined for each group so that each cut portion can move independently.

一方で、各情報が分類されて記憶されることにより、後述するように、オブジェクトが分割された場合であっても、各情報のコピーや削除、書き換えをできるだけしないようにする。   On the other hand, each information is classified and stored, so that, as will be described later, even when an object is divided, each information is not copied, deleted, or rewritten as much as possible.

一方、ボーン移動部は、複数のボーンが互いに連結される相対的な向きを変化させるときの、複数のボーンのそれぞれの初期位置および初期向きからの位置ならびに向きの変化量(以下「ボーン変化量」という。)を求める。   On the other hand, the bone moving unit changes the initial position of each of the plurality of bones and the amount of change in the position and orientation from the initial direction (hereinafter referred to as “bone change amount”) when the relative direction in which the plurality of bones are connected to each other is changed. ").

ボーンの移動は、ユーザの指示に基づいて行われることもあるし、時間経過にあらかじめ対応付けられた変化量に基づいて行われることもあるし、あるアルゴリズムや乱数にしたがって行われることもある。各ボーンについてボーン変化量を決定する手法には、たとえば以下に掲げる手法等、種々の態様を採用することができる。
(a)木構造において、親ボーンから子ボーンへ、の方向に位置や向きの変化量が伝播していくフォワードキネマティクス法。
(b)木構造において、葉ノードのボーン(以下「葉ボーン」という。)を目的位置に移動させ、根ボーンに向かって位置や向きの変化量を伝播させるインバースキネマティクス法。
The movement of the bone may be performed based on an instruction from the user, may be performed based on a change amount associated with the passage of time in advance, or may be performed according to a certain algorithm or a random number. As a method for determining the bone change amount for each bone, various modes such as the following methods can be adopted.
(A) A forward kinematics method in which the amount of change in position and orientation propagates from the parent bone to the child bone in the tree structure.
(B) Inverse kinematics method in which a bone of a leaf node (hereinafter referred to as “leaf bone”) is moved to a target position in a tree structure, and a change in position and orientation is propagated toward the root bone.

複数のボーンから構成されるオブジェクト全体の仮想空間内における位置や向きは、オブジェクト全体に対応するグループの基準位置や基準向きにより表現される。   The position and orientation in the virtual space of the entire object composed of a plurality of bones are expressed by the reference position and reference orientation of the group corresponding to the entire object.

また、基準位置や基準向きは、仮想空間内における根ボーンの位置や向きを表す情報でもある。   Further, the reference position and the reference orientation are information representing the position and orientation of the root bone in the virtual space.

したがって、ボーン変化量として、根ボーンに固定された座標系における各ボーンの座標値そのものを利用することも可能である。   Therefore, the coordinate value itself of each bone in the coordinate system fixed to the root bone can be used as the bone change amount.

さらに、制御点移動部は、以下の機能を果たす。
(a)複数の制御点のそれぞれについて、複数のボーンのそれぞれが求められた変化量だけ移動するのに連動して、当該制御点の位置を記憶される初期位置から移動するときの、当該制御点の位置の変化量(以下「連動変化量」という。)を求める。
(b)当該求められた連動変化量のそれぞれに、当該制御点が当該ボーンに依存する重みを適用して重み付き平均をとることにより、当該制御点の位置の変化量(以下「制御点変化量」という。)を求める。
Furthermore, the control point moving unit performs the following functions.
(A) For each of the plurality of control points, the control when the position of the control point is moved from the stored initial position in conjunction with the movement of each of the plurality of bones by the obtained change amount. The amount of change in the position of the point (hereinafter referred to as “linked change amount”) is obtained.
(B) A weighted average is applied to each of the obtained interlocking change amounts by applying a weight depending on the bone to which the control point depends, whereby a change amount of the position of the control point (hereinafter referred to as “control point change”). Called "quantity").

たとえば、制御点がN個、ボーンがM個用意されている状況を考える。j番目のボーンが移動したときに、j番目のボーンに対する相対的な位置が変化しないように、i番目の制御点を移動したときの連動変化量を表すベクトルをr[i,j]とする。また、i番目の制御点がj番目のボーンに依存する重みをw[i,j]とする。   For example, consider a situation where N control points and M bones are prepared. Let r [i, j] be the vector that represents the amount of change when the i-th control point is moved so that the relative position with respect to the j-th bone does not change when the j-th bone moves. . Also, let w [i, j] be the weight at which the i-th control point depends on the j-th bone.

すると、i番目の制御点の制御点変化量は、
〔Σj=1 M w[i,j]r[i,j]〕/〔Σj=1 M w[i,j]〕
のように計算することができる。
Then, the control point change amount of the i-th control point is
j = 1 M w [i, j]] / [Σ j = 1 M w [i, j]]
It can be calculated as follows.

制御点変化量は、その制御点に対応付けられる頂点の位置や向きの変化を表すベクトルである。   The control point change amount is a vector that represents a change in the position or orientation of the vertex associated with the control point.

なお、w[i,j] = 0の場合、i番目の制御点はj番目のボーンに依存しないこととなるので、この場合にはr[i,j]を求める必要はない。   Note that when w [i, j] = 0, the i-th control point does not depend on the j-th bone, and in this case, it is not necessary to obtain r [i, j].

多くの場合、制御点が依存するボーンの数は、1個〜4個程度とすれば十分である。そこで、後述するように、制御点が依存するボーンの数には、上限を設けるのが典型的である。   In many cases, it is sufficient that the number of bones on which the control points depend is about 1 to 4. Therefore, as will be described later, it is typical to set an upper limit on the number of bones on which the control points depend.

さらに、配置部は、複数のポリゴンのそれぞれについて、当該ポリゴンが属するグループに対する基準位置および基準向きに対する当該ポリゴンの頂点の相対的な位置を、当該頂点に対する制御点について求められた制御点変化量とすることにより、当該ポリゴンを当該仮想空間内に配置する。   Further, the placement unit determines, for each of the plurality of polygons, the reference position with respect to the group to which the polygon belongs and the relative position of the vertex of the polygon with respect to the reference orientation, and the control point change amount obtained for the control point with respect to the vertex. As a result, the polygon is arranged in the virtual space.

制御点変化量は、基準位置および基準向きに対する相対的な位置および向きに相当する情報である。また、上記のように、基準位置および基準向きは、ポリゴンが属するグループごとに定められる。   The control point change amount is information corresponding to a relative position and orientation with respect to the reference position and the reference orientation. Further, as described above, the reference position and the reference direction are determined for each group to which the polygon belongs.

そこで、あるポリゴンを仮想空間内に配置する際には、まず、そのポリゴンが属するグループを調べ、そのグループの基準位置および基準向きを取得する。ついで、そのポリゴンの頂点に対する制御点を調べ、その制御点の制御点変化量を取得する。   Therefore, when placing a polygon in the virtual space, first, a group to which the polygon belongs is examined, and a reference position and a reference orientation of the group are acquired. Next, the control point for the vertex of the polygon is examined, and the control point change amount of the control point is acquired.

すると、仮想空間内の頂点の位置および向きは、
(a)基準位置および基準向きと、
(b)頂点の初期位置および初期向きと、
(c)制御点変化量と、
を座標変換することによって得られることになる。
Then, the position and orientation of the vertex in the virtual space is
(A) a reference position and a reference orientation;
(B) the initial position and orientation of the vertex;
(C) Control point change amount;
Is obtained by transforming the coordinates.

なお、上記のように、頂点の初期位置および初期向きを、根ボーンの初期位置および初期向きと一致させる手法もありうる。この場合は、基準位置および基準向きに制御点変化量を加算すれば、仮想空間内における位置および向きが得られる。   As described above, there may be a method of matching the initial position and initial direction of the vertex with the initial position and initial direction of the root bone. In this case, the position and orientation in the virtual space can be obtained by adding the control point change amount to the reference position and the reference orientation.

1つの頂点は、一般には、複数のポリゴンで共有される。また、ある頂点を共有するポリゴンは、同じグループに属する場合が殆どである。したがって、
(a)どのグループを基準として頂点の位置を得たか、の情報と、
(b)得られた頂点の位置と、
を対応付けてキャッシュすることにより、計算量を抑制することができる。
One vertex is generally shared by a plurality of polygons. Further, polygons that share a certain vertex mostly belong to the same group. Therefore,
(A) Information on which group the position of the vertex was obtained as a reference;
(B) the position of the obtained vertex;
By associating and caching, the amount of calculation can be suppressed.

上記の構成によって、グループごとに分類されたポリゴンが、仮想空間内に配置されることになるので、後述するように、仮想空間内の様子をあらわす画像を生成することができる。   With the above configuration, the polygons classified for each group are arranged in the virtual space, so that an image representing the state in the virtual space can be generated as will be described later.

複数のボーン全体の情報をあるグループのポリゴンと、別のグループのポリゴンと、が、共有することもできる。たとえば、2つに分離可能なオブジェクトを考える。   Information on the whole of a plurality of bones can be shared by a polygon in one group and a polygon in another group. For example, consider an object that can be separated into two.

当該オブジェクトの概形は、一群のボーン情報によって表現される。このオブジェクトが分離している場合には、各グループの基準位置と基準向きが異なる。このオブジェクトが分離しておらず一体となっている場合には、各グループの基準位置と基準向きが一致している。   The outline of the object is represented by a group of bone information. When this object is separated, the reference position and the reference orientation of each group are different. When the objects are not separated but are integrated, the reference position and the reference direction of each group match.

すなわち、オブジェクトが分割されているか否かに関わらず、ボーンに関する情報そのものを、追加したり削除したり分離したり複製したりする必要がない。これは、本発明の特徴の一つである。   That is, it is not necessary to add, delete, separate, or duplicate the information about the bone itself regardless of whether the object is divided or not. This is one of the features of the present invention.

そして、選択部は、複数のポリゴンのうち、同じグループに属するポリゴンについて、当該ポリゴンの有する辺が仮想空間に配置された分割面と交差するポリゴンを選択する。   Then, the selection unit selects a polygon that intersects a divided surface in which a side of the polygon belongs to the virtual space, among the plurality of polygons belonging to the same group.

同じグループに属するポリゴンは、互いの相対的な位置を変化させることはあるものの、仮想空間内を一体となって移動する。分割面は、これらのポリゴンを、複数のグループに分割する。   Polygons belonging to the same group move together in the virtual space, although their relative positions may change. The dividing plane divides these polygons into a plurality of groups.

分割面は、仮想空間内に配置されているポリゴンと交差するのであるから、分割面が切断するのは、基準位置・基準姿勢ならびに初期位置・初期姿勢のオブジェクトの表面を構成するポリゴンではなく、仮想空間内で移動したり変形したりしたオブジェクトの表面を構成するポリゴンである。   Since the dividing plane intersects with the polygons arranged in the virtual space, the dividing plane cuts not the polygons that constitute the surface of the object at the reference position / reference posture and the initial position / initial posture, It is a polygon that forms the surface of an object that has moved or deformed in the virtual space.

たとえば、敵キャラクターのオブジェクトが刀によって切断された場合を考える。この場合、刀の移動の軌跡が分割面に相当し、分割面と交差するポリゴンは、刀と衝突して切り裂かれた皮膚の部位に相当する。   For example, consider a case where an enemy character object is cut by a sword. In this case, the trajectory of the movement of the sword corresponds to the dividing surface, and the polygon that intersects the dividing surface corresponds to the part of the skin that has been cut by colliding with the sword.

なお、分割面の形状を仮想空間内に配置される円や扇型あるいは平面等、平らな形状とすれば、交差判定の計算を容易にすることができる。   If the shape of the dividing surface is a flat shape such as a circle, a fan shape, or a flat surface arranged in the virtual space, the calculation of the intersection determination can be facilitated.

一方、分割部は、以下の機能を果たす。
(a)選択されたポリゴンにおいて、分割面と交差する辺の交点が、当該辺の頂点の間を内分する内分比を求める。
(b)当該辺の頂点とされる制御点について記憶部に記憶される初期位置の間を、当該求められた内分比で内分する位置(以下「内分位置」という。)を求める。
(c)当該求められた内分位置を新たな制御点の初期位置として、記憶部に記憶させる。
(d)当該辺の頂点とされる制御点に対する依存情報を当該混合して、当該混合した結果を、当該新たな制御点に対する依存情報として、記憶部に記憶させる。
(e)選択されたポリゴンに対する頂点情報を、記憶部から削除することにより、分割されたポリゴンを消去する。
(f)選択されたポリゴンを分割面により分割することにより得られる新たなポリゴンの頂点を、分割面により分割されない辺の頂点とされる制御点ならびに分割面により分割される辺の交点に対する制御点とする頂点情報を、記憶部に記憶させることにより、新たなポリゴンを生成する。
(g)記憶部に記憶される分割面と交差するポリゴンが属するグループに対するグループ情報を、分割面に対して当該ポリゴンの頂点がいずれの側にあるか、ならびに、当該ポリゴンが共通する辺を有することにより連結されているか、により、複数のグループ情報に分割する。
(h)当該複数のグループ情報に対する基準位置および基準向きを、当該分割前のグループ情報に対する基準位置および基準向きとする。
On the other hand, the dividing unit performs the following functions.
(A) In the selected polygon, an internal division ratio at which the intersection of the side that intersects the dividing plane internally divides between the vertices of the side is obtained.
(B) A position (hereinafter referred to as an “internal division position”) is obtained that internally divides between the initial positions stored in the storage unit with respect to the control point that is the vertex of the side by the obtained internal division ratio.
(C) The obtained internal division position is stored in the storage unit as the initial position of a new control point.
(D) The dependency information on the control point that is the vertex of the side is mixed, and the mixed result is stored in the storage unit as dependency information on the new control point.
(E) The vertex information for the selected polygon is deleted from the storage unit, thereby deleting the divided polygon.
(F) A control point for a vertex of a new polygon obtained by dividing the selected polygon by the dividing plane to be a vertex of a side not divided by the dividing plane and an intersection of the sides divided by the dividing plane Is stored in the storage unit to generate a new polygon.
(G) Group information for a group to which a polygon that intersects with a division plane stored in the storage unit belongs, which side the vertex of the polygon is on the division plane, and a common side of the polygon It is divided into a plurality of group information depending on whether they are connected.
(H) The reference position and reference direction for the plurality of group information are set as the reference position and reference direction for the group information before the division.

上記(a)において選択されたポリゴンとは、分割面と交差したポリゴンのことである。ポリゴンが凸な多角形で構成されており、分割面が平面状の形状である場合、ポリゴンの辺のうち2つが分割面と交差する。また、その交点を結ぶ線分が、分割面とポリゴンとが交差する線分に相当する。   The polygon selected in (a) above is a polygon that intersects with the dividing plane. When the polygon is formed of a convex polygon and the dividing surface has a planar shape, two of the sides of the polygon intersect the dividing surface. Further, the line segment connecting the intersection points corresponds to the line segment where the dividing plane and the polygon intersect.

なお、ポリゴンの頂点が交点と偶然一致した場合には、当該頂点から伸びる2つの辺のうちいずれか一方を任意に選択し、当該交点は選択された辺を0対1に内分する、と考えれば良い。   When the vertex of the polygon coincides with the intersection, any one of the two sides extending from the vertex is arbitrarily selected, and the intersection internally divides the selected side into 0: 1. Think about it.

上記(b)では、オブジェクトが移動・変形した後のポリゴンが分割面と交差する割合に基づいて、変形後のポリゴンの交点が、変形前のポリゴンのどの位置に相当するか、を求めている。   In (b) above, based on the rate at which the polygon after the object has moved / deformed intersects the split surface, the position of the intersection of the polygon after deformation corresponds to the position of the polygon before deformation. .

上記のように、ポリゴンの頂点の位置は、1つまたは複数のボーン変化量に依存する。したがって、ここで得られる内分位置は、変形前のポリゴンの辺が切断される位置を近似するものである。   As described above, the position of the vertex of the polygon depends on one or more bone change amounts. Therefore, the internal division position obtained here approximates the position at which the side of the polygon before deformation is cut.

上記(c)では、内分位置を初期位置とする新たな制御点を追加しており、上記(d)では、追加される制御点が、どのような重みでどのボーンに依存するか、を定めている。   In (c) above, a new control point having an internal position as an initial position is added. In (d) above, it is determined which bone depends on which bone with the added control point. It has established.

新たな制御点の位置は、ポリゴンの辺を、上記(a)で得られた内分比で内分することによって得られる。   The position of the new control point is obtained by internally dividing the sides of the polygon by the internal ratio obtained in (a) above.

また、新たな制御点がj番目のボーンに依存する重みを求めるためには、後述する内分比を用いる手法のほか、以下のような手法を混合に用いることができる。
(1)新たな制御点が内分する2つの頂点のうち、当該内分点に近い方の頂点の重みをそのまま利用する手法。
(2)ボーンごとに、新たな制御点が内分する2つの頂点の重みの平均を用いる手法。
(3)ボーンごとに、新たな制御点が内分する2つの頂点の重みのうち大きい方を、採用する手法。
(4)ボーンごとに、新たな制御点が内分する2つの頂点の重みのいずれかを、ランダムに採用する手法。
Further, in order to obtain a weight at which a new control point depends on the j-th bone, the following method can be used for mixing in addition to the method using the internal division ratio described later.
(1) A method in which the weight of a vertex closer to the inner dividing point among the two vertices divided by the new control point is used as it is.
(2) A method using the average of the weights of two vertices divided by a new control point for each bone.
(3) A method of adopting the larger of the weights of two vertices internally divided by a new control point for each bone.
(4) A method of randomly adopting one of the weights of two vertices internally divided by a new control point for each bone.

上記(e)では、分割面と交差するポリゴンの頂点情報を削除している。一方で、分割面と交差するポリゴンの頂点情報は、変更する必要がない。   In (e) above, the vertex information of the polygon that intersects the split surface is deleted. On the other hand, it is not necessary to change the vertex information of the polygon that intersects the dividing plane.

上記(f)では、削除されたポリゴンにかえて、上記(c)で追加された制御点を頂点に含むようなポリゴンを追加することとしている。   In (f) above, a polygon that includes the control point added in (c) above at the vertex is added instead of the deleted polygon.

したがって、上記(e)と上記(f)により、分割面に交差するポリゴンが、複数のポリゴンに分割されることになる。   Therefore, according to the above (e) and (f), the polygon intersecting the division plane is divided into a plurality of polygons.

上記(g)は、ポリゴンのグループ分けを行うものである。本発明は、1つのグループに属するポリゴンが分割面により分離される状況を考えている。多くの場合は、分割面によって、1つのグループが2つのグループに分割される。   (G) performs polygon grouping. The present invention contemplates a situation in which polygons belonging to one group are separated by a dividing surface. In many cases, one group is divided into two groups by the dividing plane.

ただし、分割面の大きさや形状によっては、1つのグループが3つ以上のグループに分割されることもありうるし、切断されたとしても、全体として1つのグループのまま、ということもありうる。   However, depending on the size and shape of the dividing surface, one group may be divided into three or more groups, or even if it is cut, it may remain as one group as a whole.

そこで、共通する辺を持つ2つのポリゴンは、互いに連結されている、と考えることとし、この連結性によって、ポリゴンが属するグループを決めることとする。   Therefore, it is assumed that two polygons having a common side are connected to each other, and a group to which the polygon belongs is determined by this connectivity.

なお、分割面との交差によって新たに追加された制御点を頂点とする辺は、ポリゴン同士の連結性の判定の対象にはしない。   Note that a side having a vertex at a control point newly added by the intersection with the dividing plane is not a target for determining connectivity between polygons.

上記(h)は、グループごとに基準位置と基準向きを定めるものである。切断の直後は、切断後のグループの基準位置と基準向きは一致するので、切断後のグループは、分割面を境界に、互いに密着することになる。   (H) defines the reference position and reference direction for each group. Immediately after cutting, the reference position and reference direction of the group after cutting coincide with each other, so that the group after cutting comes into close contact with each other with the division plane as a boundary.

本発明によれば、オブジェクトが移動・変形した後に切断された状況に基づいて、移動・変形がされる前の状況において一部のポリゴンを分割し、ポリゴン全体のグループ分けを再度行うことにより、オブジェクトの位置や形状を定める種々の情報の複製・削除・変更等をできるだけ抑制するとともに、簡易な計算によってオブジェクトの切断をシミュレートすることができるようになる。   According to the present invention, based on the situation where the object is cut after moving / deforming, by dividing some polygons in the situation before being moved / deformed, and performing grouping of the whole polygon again, It is possible to suppress duplication / deletion / change of various information that determines the position and shape of the object as much as possible and to simulate the cutting of the object by simple calculation.

また、本発明の画像生成装置は、グループ移動部、生成部をさらに備え、以下のように構成することができる。   The image generation apparatus of the present invention further includes a group moving unit and a generation unit, and can be configured as follows.

すなわち、グループ移動部は、記憶部に記憶されるグループ情報のそれぞれに対する基準位置および基準向きを変化させ、配置部に複数のポリゴンを再度配置させる。   That is, the group moving unit changes the reference position and the reference direction for each of the group information stored in the storage unit, and again arranges the plurality of polygons in the arranging unit.

たとえば、時間の経過とともに、両者のずれが大きく変化すると、オブジェクトの切断された部位同士が次第に離間していく状況が再現できる。   For example, when the deviation between the two changes greatly with the passage of time, it is possible to reproduce a situation in which the cut parts of the object are gradually separated.

一方、生成部は、仮想空間に配置された複数のポリゴンを、当該仮想空間に配置される視点から当該仮想空間に配置される視線の方向に見た様子を表す画像を生成する。   On the other hand, the generation unit generates an image representing a state in which a plurality of polygons arranged in the virtual space are viewed from the viewpoint arranged in the virtual space in the direction of the line of sight arranged in the virtual space.

なお、一旦形成されたグループを新たな分割面によって切断する場合にも、上記の構成がそのまま利用できる。たとえば、ゲームにおいてプレイヤーが敵キャラクターに何回も刀を振り下ろして、敵キャラクターを細切れにするような状況に適用することも可能である。   In addition, when the group once formed is cut by a new dividing surface, the above-described configuration can be used as it is. For example, the present invention can be applied to a situation in which a player swings down a sword many times on an enemy character in the game and chops the enemy character.

画像の生成が所定の時間間隔で繰り返し行われ、生成されるごとに画像が画面に表示されると、オブジェクトが切断される様子を表す動画が提示されることになる。   When an image is repeatedly generated at predetermined time intervals and the image is displayed on the screen every time it is generated, a moving image representing how the object is cut is presented.

本発明によれば、オブジェクトが分割された状況において、グループごとにポリゴンを移動することによって、オブジェクトが切断された様子を表す画像を生成することができるようになる。   According to the present invention, in a situation where an object is divided, it is possible to generate an image representing a state in which the object is cut by moving the polygon for each group.

また、本発明の画像生成装置であって、分割部は、分割面と交差する辺の頂点に対する依存情報のそれぞれの重みを内分比で内分することにより当該依存情報を混合して、当該内分された結果の依存情報を新たな制御点に対する依存情報とするように構成することができる。   Further, in the image generation device of the present invention, the dividing unit mixes the dependency information by dividing the weights of the dependency information with respect to the vertices of the sides intersecting the dividing plane by an internal ratio, It is possible to configure the dependency information of the internally divided result as dependency information for a new control point.

すなわち、内分される辺の頂点がそれぞれp番目、q番目であり、内分比がA:Bであるとする。すると、新たな制御点がj番目のボーンに依存する重みは、
〔B×w[p,j] + A×w[q,j]〕/〔A + B〕
のように計算することができる。
That is, it is assumed that the vertices of the sides to be internally divided are p-th and q-th, respectively, and the internal ratio is A: B. Then the weight that the new control point depends on the jth bone is
[B × w [p, j] + A × w [q, j]] / [A + B]
It can be calculated as follows.

本発明によれば、分割面が辺を切断する内分比に基づいて、内分点をなす新たな制御点の重みを計算することにより、簡易な計算で重みを得ることができるようになる。   According to the present invention, it is possible to obtain a weight by a simple calculation by calculating the weight of a new control point forming an internal dividing point based on the internal division ratio at which the divided surface cuts the side. .

また、本発明の画像生成装置において、依存情報のそれぞれにおいて、非0である重みの個数には上限があり、内分された結果の依存情報において非0である重みの個数が当該上限を超える場合、当該重みが小さい順に、当該重みを0に修正して、混合結果の依存情報における非0である重みの個数を当該上限とするように構成することができる。   Further, in the image generation device of the present invention, there is an upper limit for the number of non-zero weights in each piece of dependency information, and the number of non-zero weights in the internally divided dependency information exceeds the upper limit. In this case, the weight can be corrected to 0 in the order of increasing weight, and the number of non-zero weights in the dependency information of the mixing result can be set as the upper limit.

上記のように、ある制御点が依存するボーンの数に上限を設けた場合、新たな制御点が依存するボーンの数も、その上限を超えないようにしなければならない。   As described above, when an upper limit is set for the number of bones on which a certain control point depends, the number of bones on which a new control point depends must not exceed the upper limit.

そこで、1番目のボーンに依存する重みからM番目のボーンに依存する重みまでのM個の重みを、大きいものから順に上限の個数まで選ぶことにするのである。   Therefore, M weights from the weight depending on the first bone to the weight depending on the Mth bone are selected from the largest to the upper limit.

ここで、当該上限をL個とした場合を考える。すると、新たな制御点に対して内分計算によって得られる重みのうち、非0となる重みの個数は、L個〜2×L個のいずれかとなる。   Here, consider the case where the upper limit is L. Then, among the weights obtained by the internal division calculation for the new control point, the number of non-zero weights is any of L to 2 × L.

そこで、これらの中から、重みの値が大きい順にL個を選択し、残りについては、重みを0に修正することになる。   Therefore, L items are selected in descending order of the weight value, and the remaining weights are corrected to zero.

なお、ある制御点がM個のボーンに依存する重みは、M個の要素を持つベクトルと考えることができるが、このベクトルの要素の値のほとんどは0である。すなわち、このベクトルは、疎なベクトルである。したがって、このベクトルは、M個の要素を持つ1次元配列として実装するのではなく、非0の重みのインデックスと、そのインデックスに対応する重みと、の対がL個含まれる配列で表現することにより、メモリの使用量を抑制することが可能である。   A weight at which a certain control point depends on M bones can be considered as a vector having M elements, but most of the values of the elements of this vector are zero. That is, this vector is a sparse vector. Therefore, this vector is not implemented as a one-dimensional array having M elements, but expressed as an array including L pairs of non-zero weight indices and weights corresponding to the indices. Thus, it is possible to suppress the amount of memory used.

本発明によれば、制御点が依存するボーンの数を適切に抑制して、計算量やメモリの使用量を抑制することができるようになる。   According to the present invention, it is possible to appropriately suppress the number of bones on which control points depend, thereby reducing the amount of calculation and the amount of memory used.

また、本発明の画像生成装置において、複数のポリゴンはいずれも三角形であり、選択されたポリゴンが、点A、B、Cを頂点とする三角形ABCであり、辺ABが、交点Dで分割され、辺ACが、交点Eで分割され、角EDCと角DCBの和が角DEBと角EBCの和以下である場合、新たなポリゴンを、三角形ADE、三角形DEB、三角形EBCとするように構成することができる。   In the image generating apparatus of the present invention, the plurality of polygons are all triangles, the selected polygon is a triangle ABC having points A, B, and C as vertices, and the side AB is divided at the intersection D. If the side AC is divided at the intersection E and the sum of the corners EDC and DCB is less than or equal to the sum of the corners DEB and EBC, the new polygon is configured to be a triangle ADE, a triangle DEB, and a triangle EBC. be able to.

仮想空間内に配置されるオブジェクトの表面を形成するポリゴンは、三角形もしくは四角形で構成されるのが一般的であるが、本発明では、ポリゴンの形状を三角形に限定することとしている。   The polygon forming the surface of the object arranged in the virtual space is generally composed of a triangle or a quadrangle, but in the present invention, the shape of the polygon is limited to a triangle.

ここで、三角形の形状が細長くなると、画像を生成した際に、不自然なくびれや潰れが生じやすくなる。   Here, when the triangular shape is elongated, unnatural constriction and collapse are likely to occur when an image is generated.

そこで、本発明では、ある三角形を分割して3つの三角形を得る際に、三角形が細長くならないようにするため、頂点を挟む辺同士の角度を利用する。   Therefore, in the present invention, when a certain triangle is divided to obtain three triangles, the angle between the sides sandwiching the vertex is used in order to prevent the triangle from becoming elongated.

本発明によれば、ポリゴンを分割する際に、分割後のポリゴンの形状を適切に選択することにより、生成される画像が不自然になることをできるだけ防止することが可能となる。   According to the present invention, when a polygon is divided, it is possible to prevent the generated image from becoming unnatural as much as possible by appropriately selecting the shape of the polygon after the division.

また、本発明の画像生成装置は、以下のように構成することができる。   Further, the image generation apparatus of the present invention can be configured as follows.

すなわち、複数のボーンは、各ボーンをノードとし、連結された2つのボーンのうち、一方のボーンを親ノードに、他方のボーンを子ノードに、それぞれ割り当てた木構造に階層化される。   That is, a plurality of bones are hierarchized into a tree structure in which each bone is a node and one of the two connected bones is assigned as a parent node and the other bone as a child node.

そして、親ノードのボーン(以下「親ボーン」という。)に固定された座標系における子ノードのボーン(以下「子ボーン」という。)が当該親ボーンに連結される連結点の座標、ならびに、当該子ボーンの向きを表すオイラー角もしくはクォータニオンにより、当該子ボーンの初期位置および初期向きが表現される。   Then, the coordinates of the connection point where the child node bone (hereinafter referred to as “child bone”) in the coordinate system fixed to the parent node bone (hereinafter referred to as “parent bone”) is connected to the parent bone, and The Euler angle or quaternion representing the orientation of the child bone represents the initial position and initial orientation of the child bone.

さらに、ボーン移動部は、子ボーンの向きを表すオイラー角もしくはクォータニオンを変化させることにより、当該親ボーンに対する当該子ボーンの相対的な向きを変化させる。   Further, the bone moving unit changes the relative direction of the child bone with respect to the parent bone by changing the Euler angle or the quaternion representing the direction of the child bone.

本発明は、上記発明の好適実施形態に係るもので、単体のボーンの位置や姿勢は、そのボーンの親となるボーンに対する相対的な位置や姿勢によって定められる、とするものである。   The present invention relates to a preferred embodiment of the above invention, and the position and posture of a single bone are determined by the relative position and posture with respect to the bone that is the parent of the bone.

本発明によれば、ボーンを階層的に管理することで、フォワードキネマティクスやインバースキネマティクスに基づいてオブジェクトの概形を適切に変化させることができるようになる。   According to the present invention, it is possible to appropriately change the outline of an object based on forward kinematics and inverse kinematics by managing bones hierarchically.

本発明のその他の観点に係る画像処理方法は、記憶部、ボーン移動部、制御点移動部、配置部、選択部、分割部、生成部、グループ移動部を有する画像処理装置が実行する。   An image processing method according to another aspect of the present invention is executed by an image processing apparatus having a storage unit, a bone moving unit, a control point moving unit, an arrangement unit, a selecting unit, a dividing unit, a generating unit, and a group moving unit.

そして、本発明の画像処理方法は、ボーン移動工程、制御点移動工程、配置工程、選択工程、分割工程を備える。   The image processing method of the present invention includes a bone movement process, a control point movement process, an arrangement process, a selection process, and a division process.

ここで、記憶部には、互いに連結された複数のボーンの初期位置および初期向きと、複数の制御点の初期位置と、当該複数の制御点のそれぞれが複数のボーンのそれぞれに依存する重みを表す依存情報と、複数のポリゴンのそれぞれが複数の制御点のいずれを頂点とするかを表す頂点情報と、複数のポリゴンのそれぞれがいずれのグループに属するかを表すグループ情報と、グループのそれぞれに対する仮想空間内の基準位置および基準向きと、が記憶される。   Here, in the storage unit, initial positions and initial orientations of a plurality of bones connected to each other, initial positions of the plurality of control points, and weights that the plurality of control points depend on each of the plurality of bones. Dependency information to be represented, vertex information indicating which of the control points each of the plurality of polygons has as a vertex, group information indicating to which group each of the plurality of polygons belongs, and each of the groups A reference position and a reference orientation in the virtual space are stored.

一方、ボーン移動工程では、ボーン移動部が、複数のボーンが互いに連結される相対的な向きを変化させるときの、複数のボーンのそれぞれの初期位置および初期向きからの位置ならびに向きの変化量(以下「ボーン変化量」という。)を求める。   On the other hand, in the bone moving step, when the bone moving unit changes the relative direction in which the plurality of bones are connected to each other, the initial position of each of the plurality of bones, the position from the initial direction, and the amount of change in the direction ( Hereinafter referred to as “bone change amount”).

さらに、制御点移動工程では、制御点移動部が、複数の制御点のそれぞれについて、複数のボーンのそれぞれが求められた変化量だけ移動するのに連動して、当該制御点の位置を記憶される初期位置から移動するときの、当該制御点の位置の変化量(以下「連動変化量」という。)を求め、当該求められた連動変化量のそれぞれに、当該制御点が当該ボーンに依存する重みを適用して重み付き平均をとることにより、当該制御点の位置の変化量(以下「制御点変化量」という。)を求める。   Further, in the control point moving step, the control point moving unit stores the position of the control point in association with the movement of each of the plurality of bones by the obtained change amount for each of the plurality of control points. The amount of change in the position of the control point when moving from the initial position (hereinafter referred to as “linked change amount”) is obtained, and the control point depends on the bone for each of the obtained linked change amounts. A change amount of the position of the control point (hereinafter referred to as “control point change amount”) is obtained by applying a weight and taking a weighted average.

そして、配置工程では、配置部が、複数のポリゴンのそれぞれについて、当該ポリゴンが属するグループに対する基準位置および基準向きに対する当該ポリゴンの頂点の相対的な位置を、当該頂点に対する制御点について求められた制御点変化量とすることにより、当該ポリゴンを当該仮想空間内に配置する。   In the placement step, the placement unit determines, for each of the plurality of polygons, the relative position of the vertex of the polygon with respect to the reference position and the reference direction with respect to the group to which the polygon belongs, with respect to the control point for the vertex. By setting the point change amount, the polygon is arranged in the virtual space.

一方、選択工程では、選択部が、複数のポリゴンのうち、同じグループに属するポリゴンについて、当該ポリゴンの有する辺が仮想空間に配置された分割面と交差するポリゴンを選択する。   On the other hand, in the selection step, the selection unit selects a polygon that intersects a division plane in which a side of the polygon is arranged in the virtual space, among polygons belonging to the same group among a plurality of polygons.

さらに、分割工程では、分割部が、選択されたポリゴンにおいて、分割面と交差する辺の交点が、当該辺の頂点の間を内分する内分比を求め、当該辺の頂点とされる制御点について記憶部に記憶される初期位置の間を、当該求められた内分比で内分する位置(以下「内分位置」という。)を求め、当該求められた内分位置を新たな制御点の初期位置として、記憶部に記憶させ、当該辺の頂点とされる制御点に対する依存情報を当該混合して、当該混合した結果を、当該新たな制御点に対する依存情報として、記憶部に記憶させ、選択されたポリゴンに対する頂点情報を、記憶部から削除することにより、分割されたポリゴンを消去し、選択されたポリゴンを分割面により分割することにより得られる新たなポリゴンの頂点を、分割面により分割されない辺の頂点とされる制御点ならびに分割面により分割される辺の交点に対する制御点とする頂点情報を、記憶部に記憶させることにより、新たなポリゴンを生成し、記憶部に記憶される分割面と交差するポリゴンが属するグループに対するグループ情報を、分割面に対して当該ポリゴンの頂点がいずれの側にあるか、ならびに、当該ポリゴンが共通する辺を有することにより連結されているか、により、複数のグループ情報に分割し、当該複数のグループ情報に対する基準位置および基準向きを、当該分割前のグループ情報に対する基準位置および基準向きとする。   Further, in the dividing step, the dividing unit obtains an internal division ratio in which the intersection of the side intersecting the dividing plane in the selected polygon is internally divided between the vertices of the side, and is controlled as the vertex of the side A position that internally divides between the initial positions stored in the storage unit for the points at the determined internal ratio (hereinafter referred to as “internal divided position”) is obtained, and the determined internal divided position is newly controlled. The initial position of the point is stored in the storage unit, the dependency information on the control point that is the vertex of the side is mixed, and the mixed result is stored in the storage unit as dependency information on the new control point. By deleting the vertex information for the selected polygon from the storage unit, the divided polygon is deleted, and the vertex of a new polygon obtained by dividing the selected polygon by the dividing surface is displayed on the dividing surface. By minutes By storing in the storage unit the vertex information that is the control point that is the vertex of the non-performed side and the control point for the intersection point of the side that is divided by the dividing plane, a new polygon is generated and the division that is stored in the storage unit The group information for the group to which the polygon that intersects the surface belongs is determined depending on which side the vertex of the polygon is on the split surface and whether the polygon is connected by having a common side. The reference position and reference direction for the plurality of group information are set as the reference position and reference direction for the group information before the division.

本発明のその他の観点に係るプログラムは、コンピュータを上記の画像処理装置として機能させるように構成する。   A program according to another aspect of the present invention is configured to cause a computer to function as the above-described image processing apparatus.

また、本発明のプログラムは、コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、半導体メモリ等のコンピュータ読取可能な情報記憶媒体に記録することができる。   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.

本発明によれば、仮想空間に配置される複数のポリゴンからなるオブジェクトをある分割面で分割した様子を表す画像を生成するのに好適な画像処理装置、画像処理方法、ならびに、これらをコンピュータにて実現するプログラムを提供することができる。   ADVANTAGE OF THE INVENTION According to this invention, the image processing apparatus suitable for producing | generating the image showing a mode that the object which consists of the some polygon arrange | positioned in virtual space was divided | segmented by a certain division plane, an image processing method, and these are made into a computer. Can be provided.

典型的な情報処理装置の概要構成を示す模式図である。It is a schematic diagram which shows schematic structure of a typical information processing apparatus. 本実施形態の画像処理装置にて処理されるオブジェクトのボーン、制御点、頂点の様子を示す説明図である。It is explanatory drawing which shows the mode of the bone of the object processed by the image processing apparatus of this embodiment, a control point, and a vertex. 本実施形態の画像処理装置にて処理されるオブジェクトのボーン、制御点、頂点の様子を示す説明図である。It is explanatory drawing which shows the mode of the bone of the object processed by the image processing apparatus of this embodiment, a control point, and a vertex. 本実施形態の画像処理装置にて処理されるオブジェクトのスキンをなすポリゴンと頂点の様子を示す説明図である。It is explanatory drawing which shows the mode of the polygon which makes the skin of the object processed with the image processing apparatus of this embodiment, and a vertex. 本実施形態の画像処理装置にて処理されるオブジェクトのスキンをなすポリゴンと頂点の様子を示す説明図である。It is explanatory drawing which shows the mode of the polygon which makes the skin of the object processed with the image processing apparatus of this embodiment, and a vertex. オブジェクトが分割面によって切断される状況を表す説明図である。It is explanatory drawing showing the condition where an object is cut | disconnected by a division surface. オブジェクトが分割面によって切断される状況を表す説明図である。It is explanatory drawing showing the condition where an object is cut | disconnected by a division surface. 変形後に切断されることにより生じた新たなポリゴンと頂点の様子を示す説明図である。It is explanatory drawing which shows the mode of the new polygon and vertex which arose by having been cut | disconnected after a deformation | transformation. 切断されて生じたポリゴンと頂点の基本姿勢における様子を示す説明図である。It is explanatory drawing which shows the mode in the basic posture of the polygon and vertex produced | generated by cut | disconnecting. オブジェクトの分割後のポリゴンと頂点の基本姿勢における様子を示す説明図である。It is explanatory drawing which shows the mode in the basic posture of the polygon after the division | segmentation of an object, and a vertex. 仮想空間内において各グループが異なる位置、向きに配置された場合の様子を示す説明図である。It is explanatory drawing which shows a mode when each group is arrange | positioned in a different position and direction in virtual space. 仮想空間内において各グループが異なる位置、向きに配置された場合の様子を示す説明図である。It is explanatory drawing which shows a mode when each group is arrange | positioned in a different position and direction in virtual space. 本実施形態に係る画像処理装置の概要構成を示す模式図である。1 is a schematic diagram illustrating a schematic configuration of an image processing apparatus according to the present embodiment. 本実施形態に係る画像処理装置が実行する画像処理の制御の流れを示すフローチャートである。It is a flowchart which shows the flow of control of the image processing which the image processing apparatus which concerns on this embodiment performs. 複雑な形状のオブジェクトが切断される様子を示す説明図である。It is explanatory drawing which shows a mode that the object of a complicated shape is cut | disconnected. 複雑な形状のオブジェクトが切断される様子を示す説明図である。It is explanatory drawing which shows a mode that the object of a complicated shape is cut | disconnected. 複雑な形状のオブジェクトが切断される様子を示す説明図である。It is explanatory drawing which shows a mode that the object of a complicated shape is cut | disconnected. ポリゴンが分離される場合に、どのような分離が考えられるか、を示す説明図である。It is explanatory drawing which shows what kind of separation is considered when a polygon is isolate | separated. ポリゴンが分離される場合に、どのような分離が考えられるか、を示す説明図である。It is explanatory drawing which shows what kind of separation is considered when a polygon is isolate | separated.

以下に本発明の実施形態を説明する。以下では、理解を容易にするため、ゲーム用の情報処理装置を利用して本発明が実現される実施形態を説明するが、以下に説明する実施形態は説明のためのものであり、本願発明の範囲を制限するものではない。   Embodiments of the present invention will be described below. In the following, for ease of understanding, an embodiment in which the present invention is realized using a game information processing device will be described. However, the embodiment described below is for explanation, and the present invention is described. It does not limit the range.

したがって、当業者であればこれらの各要素もしくは全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。   Therefore, those skilled in the art can employ embodiments in which each or all of these elements are replaced with equivalent ones, and these embodiments are also included in the scope of the present invention.

図1は、プログラムを実行することにより、本実施形態の画像処理装置として機能しうる典型的な情報処理装置の概要構成を示す模式図である。以下、本図を参照して説明する。   FIG. 1 is a schematic diagram illustrating a schematic configuration of a typical information processing apparatus that can function as the image processing apparatus according to the present embodiment by executing a program. Hereinafter, a description will be given with reference to FIG.

本図に示す情報処理装置100は、いわゆるコンシューマゲーム機に相当するもので、CPU(Central Processing Unit)101、ROM(Read Only Memory)102、RAM(Random Access Memory)103、インターフェース104、コントローラ105、外部メモリ106、画像処理部107、DVD−ROM(Digital Versatile Disc ROM)ドライブ108、NIC(Network Interface Card)109、音声処理部110、マイク111、ハードディスク(Hard Disk;HD)121を有する。各種の入出力装置は、適宜省略することができる。   An information processing apparatus 100 shown in the figure corresponds to a so-called consumer game machine, and includes a central processing unit (CPU) 101, a read only memory (ROM) 102, a random access memory (RAM) 103, an interface 104, a controller 105, An external memory 106, an image processing unit 107, a DVD-ROM (Digital Versatile Disc ROM) drive 108, a NIC (Network Interface Card) 109, an audio processing unit 110, a microphone 111, and a hard disk (HD) 121 are included. Various input / output devices can be omitted as appropriate.

情報処理装置100を典型的なコンシューマゲーム機として機能させる場合には、ゲーム用プログラムおよびデータを記憶したDVD−ROMをDVD−ROMドライブ108に装着し、電源を投入する。すると、当該ゲームプログラムが実行され、ゲームをプレイすることができるようになる。   When the information processing apparatus 100 is caused to function as a typical consumer game machine, a DVD-ROM storing a game program and data is mounted on the DVD-ROM drive 108 and the power is turned on. Then, the game program is executed and the game can be played.

ただし、本実施形態においては、典型的には、DVD−ROMドライブ108に装着されたDVD−ROMから、アプリケーションをHD 121にインストールする。そして、当該HD 121に記憶されたプログラムを実行することによって、ゲームを含む各種のアプリケーションを実行することとする。   However, in the present embodiment, typically, an application is installed in the HD 121 from a DVD-ROM attached to the DVD-ROM drive 108. Then, by executing the program stored in the HD 121, various applications including a game are executed.

なお、携帯型のゲーム装置においては、携帯可能とするために、DVD−ROMドライブ108を利用するのではなく、ROMカセット用スロットにEEPROM(Electrically Erasable Programmable ROM)カセットを装着して、HD 121を省略したりすることも可能である。この場合、アプリケーション用プログラムをEEPROMカセットに書き込んだ上で、当該プログラムを実行することとなる。このほか、外部メモリ106にアプリケーション用プログラムをインストールすることも可能である。   In order to make the portable game device portable, the DVD-ROM drive 108 is not used, but an EEPROM (Electrically Erasable Programmable ROM) cassette is mounted in the ROM cassette slot and the HD 121 is mounted. It can also be omitted. In this case, the application program is written in the EEPROM cassette and then the program is executed. In addition, an application program can be installed in the external memory 106.

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

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

なお、コントローラ105は、必ずしも情報処理装置100に対して外付けにされている必要はなく、一体に形成されていても良い。携帯可能な端末装置のコントローラ105は、各種のボタンやスイッチから構成され、これらの押圧操作を操作入力として扱う。このほか、タッチスクリーンを利用した情報処理装置100では、ユーザがペンや指を利用してタッチスクリーンをなぞった軌跡を操作入力として扱う。   The controller 105 does not necessarily have to be externally attached to the information processing apparatus 100, and may be formed integrally. The controller 105 of the portable terminal device includes various buttons and switches, and handles these pressing operations as operation inputs. In addition, in the information processing apparatus 100 using the touch screen, the user traces the trace of the touch screen using a pen or a finger as an operation input.

インターフェース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 the progress of the game, and log of chat communication in a network battle ( 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.

上述の通り、アプリケーションプログラムを外部メモリ106にインストールして実行するような形態を採用することもできる。これは、外部メモリ106が大容量である場合に好適である。   As described above, it is possible to adopt a form in which the application program is installed in the external memory 106 and executed. This is suitable when the external memory 106 has a large capacity.

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

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

携帯可能な端末装置のモニタとしては、小型の液晶ディスプレイを利用するのが典型的であり、コントローラ105としてタッチスクリーンを利用する場合には、当該タッチスクリーンの表示パネルがモニタとして機能する。自宅で遊ぶための端末装置やネットワークゲームのサーバ装置のモニタとしては、CRT(Cathode Ray Tube)やプラズマディスプレイなどの表示装置を利用することも可能である。   As a monitor of a portable terminal device, a small liquid crystal display is typically used. When a touch screen is used as the controller 105, the display panel of the touch screen functions as a monitor. A display device such as a CRT (Cathode Ray Tube) or a plasma display can be used as a monitor for a terminal device for playing at home or a server device for a network game.

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

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

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

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

また、NIC 109経由でコンピュータ通信網から入手した情報を元に、HD 121等にアプリケーションプログラムをインストールすることも可能である。   An application program can be installed in the HD 121 or the like based on information obtained from the computer communication network via the NIC 109.

音声処理部110は、HD 121やDVD−ROMから読み出した音声データをアナログ音声信号に変換し、これに接続されたスピーカ(図示せず)から出力させる。また、CPU 101の制御の下、ゲームの進行の中で発生させるべき効果音や楽曲データを生成し、これに対応した音声をスピーカや、ヘッドホン(図示せず)、イヤフォン(図示せず)から出力させる。   The audio processing unit 110 converts audio data read from the HD 121 or 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 the corresponding sound is output from a speaker, headphones (not shown), and earphones (not shown). Output.

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

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

本実施形態で利用する情報処理装置100は、上述のように、HD 121等の大容量外部記憶装置を用いるのが典型的である。HD 121は、ROM 102、RAM 103、外部メモリ106、DVD−ROMドライブ108に装着されるDVD−ROM等と同じ機能を果たすこともできる。   As described above, the information processing apparatus 100 used in the present embodiment typically uses a large-capacity external storage device such as the HD 121. The HD 121 can also perform the same functions as a DVD-ROM or the like mounted on the ROM 102, RAM 103, external memory 106, DVD-ROM drive 108, and the like.

このほか、ユーザからの文字列の編集入力を受け付けるためのキーボードや、各種の位置の指定および選択入力を受け付けるためのマウスなどを接続する形態も採用することができる。また、本実施形態の情報処理装置100にかえて、汎用のパーソナルコンピュータやサーバ用コンピュータ等を利用することもできる。   In addition, it is possible to adopt a form in which a keyboard for accepting a character string editing input from a user, a mouse for accepting various position designations and selection inputs, and the like are connected. In addition, a general-purpose personal computer, a server computer, or the like can be used instead of the information processing apparatus 100 of the present embodiment.

以上で説明した情報処理装置100は、コンシューマ向けゲーム装置に相当するものであるが、各種の入出力処理が可能な電子機器であれば、本発明の端末装置やサーバ装置を実現することができる。したがって、携帯電話、携帯ゲーム機器、カラオケ装置、一般的なビジネス用コンピュータなど、種々の計算機上で本発明の端末装置やサーバ装置を実現することが可能である。   The information processing apparatus 100 described above corresponds to a consumer game apparatus, but the terminal apparatus and server apparatus of the present invention can be realized as long as the electronic apparatus can perform various input / output processes. . Therefore, the terminal device and server device of the present invention can be realized on various computers such as a mobile phone, a mobile game device, a karaoke device, and a general business computer.

たとえば、ビジネス用コンピュータは、上記情報処理装置100と同様に、CPU、RAM、ROM、DVD−ROMドライブ、および、NIC、HDを構成要素として有するほか、情報処理装置100よりも簡易な機能を備えた画像処理部を備え、外部記憶装置としてフレキシブルディスク、光磁気ディスク、磁気テープ等が利用できるようになっており、コントローラ105ではなく、キーボードやマウスなどを入力装置として利用するのが典型的である。   For example, similarly to the information processing apparatus 100, the business computer has a CPU, RAM, ROM, DVD-ROM drive, NIC, and HD as constituent elements, and has simpler functions than the information processing apparatus 100. In addition, a flexible disk, a magneto-optical disk, a magnetic tape, etc. can be used as an external storage device, and it is typical to use a keyboard or mouse as an input device instead of the controller 105. is there.

図2、図3は、本実施形態の画像処理装置にて処理されるオブジェクトのボーン、制御点、頂点の様子を示す説明図であり、図4、図5は、本実施形態の画像処理装置にて処理されるオブジェクトのスキンをなすポリゴンと頂点の様子を示す説明図である。以下、これらの図を参照して説明する。   2 and 3 are explanatory diagrams showing the state of bones, control points, and vertices of an object processed by the image processing apparatus of the present embodiment. FIGS. 4 and 5 are image processing apparatuses of the present embodiment. It is explanatory drawing which shows the mode of the polygon which makes the skin of the object processed by, and a vertex. Hereinafter, description will be given with reference to these drawings.

これらの図においては、理解を容易にするため、オブジェクトとして、棒状の形状を有するものを想定している。たとえば、シャクトリムシのようなモンスターを表すものと考えても良いし、人間の上腕から下腕まで、あるいは、腿から脛までを表すものと考えることもできる。   In these drawings, in order to facilitate understanding, an object having a rod-like shape is assumed. For example, it may be considered to represent a monster such as a longhorn beetle, or may represent a human upper arm to lower arm, or a thigh to shin.

オブジェクト201は、3本のボーン211、212、213によってその概形が定められる。ボーン211とボーン212は、両者の端点で連結され、ボーン212とボーン213は、両者の端点で連結されている。   The outline of the object 201 is defined by three bones 211, 212, and 213. The bone 211 and the bone 212 are connected at their endpoints, and the bone 212 and the bone 213 are connected at their endpoints.

一般に、キャラクターやモンスターなど、仮想空間に配置される変形するオブジェクトのデザインを行うデザイナーは、そのオブジェクトの最も自然な形状を基本姿勢として採用する。ここで、最も自然な形状とは、一般には、関節の曲がりが少なく、ボーン同士の距離が近付き過ぎないような姿勢で、オブジェクトが人間のような姿態を持つ場合には、両手両足を真っ直に広げた形状を採用することが多い。   In general, a designer who designs a deformable object such as a character or a monster that is arranged in a virtual space adopts the most natural shape of the object as a basic posture. Here, the most natural shape is generally a posture in which the joints are not bent and the distance between the bones is not too close, and when the object has a human-like appearance, both hands and feet are straightened. In many cases, a widened shape is used.

図2、図4は、オブジェクト201の基本姿勢に相当するものである。図2を見ればわかるように、ボーン211、212、213は、ほぼ一直線上に並んでいる。   2 and 4 correspond to the basic posture of the object 201. FIG. As can be seen from FIG. 2, the bones 211, 212, and 213 are substantially aligned.

図3、図5は、オブジェクト201が、基本姿勢から変形したものである。図3を見ればわかるように、ボーン211そのものの傾きが変化している他、ボーン212はボーン211に対して傾いており、ボーン213はボーン212に対して、同じ方向に傾いている。したがって、オブジェクト201を全体として見ると、山形に曲がっていることになる。   3 and FIG. 5, the object 201 is deformed from the basic posture. As can be seen from FIG. 3, the inclination of the bone 211 itself is changed, the bone 212 is inclined with respect to the bone 211, and the bone 213 is inclined with respect to the bone 212 in the same direction. Therefore, when the object 201 is viewed as a whole, it is bent in a mountain shape.

ボーン211、212、213には、以下のように、制御点221乃至229が対応付けられている。なお、本図では、制御点221乃至229は、×印で表記されている。
(a)制御点221、222は、ボーン211のみに依存する。
(b)制御点223、224は、ボーン211、212に依存する。
(c)制御点225は、ボーン211、212、213に依存する。
(d)制御点226、227は、ボーン212、213に依存する。
(e)制御点228、229は、ボーン213に依存する。
Control points 221 to 229 are associated with the bones 211, 212, and 213 as follows. In the figure, the control points 221 to 229 are indicated by x marks.
(A) The control points 221 and 222 depend only on the bone 211.
(B) The control points 223 and 224 depend on the bones 211 and 212.
(C) The control point 225 depends on the bones 211, 212, and 213.
(D) The control points 226 and 227 depend on the bones 212 and 213.
(E) The control points 228 and 229 depend on the bone 213.

ここで「ある制御点がある1つのボーンに依存する」とは、基本姿勢のときの制御点のボーンに対する相対的な位置が、ボーンの位置や向きが変わったあともそのまま維持されることを意味する。   Here, “depending on one bone with a certain control point” means that the relative position of the control point with respect to the bone in the basic posture is maintained even after the bone position and orientation change. means.

また、「ある制御点がある複数のボーンに依存する」とは、基本姿勢のときの制御点が各ボーンに対して分裂して、分裂後の制御点のボーンに対する相対的な位置がボーンの位置や向きが変わったあともそのまま維持されることを意味する。   Also, “depending on multiple bones with a certain control point” means that the control point in the basic posture is split for each bone, and the relative position of the split control point to the bone is It means that the position and orientation are maintained as they are.

図2と図3を比較すると、制御点221、222は、分裂はしておらず、制御点223は、制御点223a、223bの2つに分裂しており、制御点224は、制御点224a、224bの2つに分裂しており、制御点225は、制御点225a、225b、225cの3つに分裂しており、制御点226は、制御点226b、226cの2つに分裂しており、制御点227は、制御点227b、227cの2つに分裂しており、制御点228、229は、分裂していない。   Comparing FIG. 2 and FIG. 3, the control points 221 and 222 are not split, the control point 223 is split into two control points 223a and 223b, and the control point 224 is the control point 224a. The control point 225 is split into three control points 225a, 225b, and 225c, and the control point 226 is split into two control points 226b and 226c. The control point 227 is split into two control points 227b and 227c, and the control points 228 and 229 are not split.

たとえば、2つのボーン211、212に依存する制御点223を考えたとき、図3における制御点223aとボーン211の相対的な位置関係は、図2における制御点223とボーン211の相対的な位置関係と一致している。また、図3における制御点223bとボーン212の相対的な位置関係は、図2における制御点223とボーン212の相対的な位置関係と一致している。   For example, when a control point 223 that depends on two bones 211 and 212 is considered, the relative positional relationship between the control point 223a and the bone 211 in FIG. 3 is the relative position between the control point 223 and the bone 211 in FIG. Consistent with the relationship. In addition, the relative positional relationship between the control point 223b and the bone 212 in FIG. 3 matches the relative positional relationship between the control point 223 and the bone 212 in FIG.

このように、基本姿勢からボーンの位置や向きが変わった場合に、そのボーンに依存する制御点が、そのボーンに連動して移動した先を求めるのである。   In this way, when the position or orientation of a bone changes from the basic posture, the control point that depends on the bone finds the destination moved in conjunction with the bone.

さらに、各制御点はポリゴンの頂点に対応付けられている。具体的には、制御点221は、頂点231に、制御点222は、頂点232に、制御点223(223a、223b)は、頂点233に、制御点224(224a、224b)は、頂点234に、制御点225(225a、225b、225c)は、頂点235に、制御点226(226b、226c)は、頂点236に、制御点227(227b、227c)は、頂点237に、制御点228は、頂点238に、制御点229は、頂点239に、それぞれ対応付けられている。   Further, each control point is associated with a vertex of the polygon. Specifically, the control point 221 is at the vertex 231, the control point 222 is at the vertex 232, the control point 223 (223a, 223b) is at the vertex 233, and the control point 224 (224a, 224b) is at the vertex 234. The control point 225 (225a, 225b, 225c) is at the vertex 235, the control point 226 (226b, 226c) is at the vertex 236, the control point 227 (227b, 227c) is at the vertex 237, and the control point 228 is The control point 229 is associated with the vertex 238 and the vertex 239, respectively.

そして、制御点が分裂しない場合は、制御点と同じ位置に頂点が配置され、制御点が分裂する場合には、制御点の位置の重み付き平均の位置に頂点が配置される。本図では、重みはいずれも等しく設定された状態を想定しているので、2つの制御点に分裂した場合には、その中点、3つの制御点に分裂した場合には、制御点を頂点とする三角形の重心が頂点の位置となる。   If the control point does not split, the vertex is placed at the same position as the control point. If the control point splits, the vertex is placed at the weighted average position of the control point position. In this figure, it is assumed that the weights are set equal to each other. Therefore, if the control point is divided into two control points, the middle point is divided into three control points. The center of gravity of the triangle is the vertex position.

図4、図5は、頂点231乃至239により、ポリゴンを配置した様子を表す説明図である。以下、本図を参照して説明する。   4 and 5 are explanatory diagrams showing a state in which polygons are arranged by vertices 231 to 239. Hereinafter, a description will be given with reference to FIG.

本図に示すように、ポリゴン241は、頂点231、232、234を有する三角形であり、ポリゴン242は、頂点231、233、234を有する三角形であり、ポリゴン243は、頂点233、234、235を有する三角形であり、ポリゴン244は、頂点233、235、236を有する三角形であり、ポリゴン245は、頂点235、236、237を有する三角形であり、ポリゴン246は、頂点236、237、238を有する三角形であり、ポリゴン247は、頂点237、238、239を有する三角形である。   As shown in the figure, the polygon 241 is a triangle having vertices 231, 232, 234, the polygon 242 is a triangle having vertices 231, 233, 234, and the polygon 243 has vertices 233, 234, 235. The polygon 244 is a triangle having vertices 233, 235, 236, the polygon 245 is a triangle having vertices 235, 236, 237, and the polygon 246 is a triangle having vertices 236, 237, 238. The polygon 247 is a triangle having vertices 237, 238, 239.

このようにして、オブジェクトが変形した場合であっても、不自然なくびれや潰れが生じないようにして、自然な変形を実現することができるのである。   In this way, even when the object is deformed, natural deformation can be realized without causing unnatural constriction or collapse.

なお、オブジェクトを構成するボーンの数、制御点の数、ポリゴンの数、ポリゴンとしてどのような多角形を選択するか、制御点とボーンとの重みは、用途に応じて任意に変更が可能である。   Note that the number of bones that make up the object, the number of control points, the number of polygons, what polygons to select as polygons, and the weights of control points and bones can be arbitrarily changed according to the application. is there.

また、これらのポリゴンは、すべて1つのグループに属しており、仮想空間内では一体となって移動する。   These polygons all belong to one group and move together in the virtual space.

さて、このように変形されたオブジェクト201が平面状の分割面により切断される状況を考える。図6、図7は、オブジェクト201が分割面によって切断される状況を表す説明図である。以下、本図を参照して説明する。   Now, let us consider a situation where the object 201 deformed in this way is cut by a planar dividing surface. 6 and 7 are explanatory diagrams showing a situation in which the object 201 is cut by the dividing plane. Hereinafter, a description will be given with reference to FIG.

図6に示す例では、分割面301とポリゴン244、245が交差している。すなわち、ポリゴン244、245は、いずれも、切断によって、複数のポリゴンに分割されることになる。   In the example shown in FIG. 6, the dividing surface 301 and the polygons 244 and 245 intersect each other. That is, the polygons 244 and 245 are both divided into a plurality of polygons by cutting.

また、分割面301に交差するポリゴン244、245を除去して考えると、図7に示すように、ポリゴン241、242、243の一群と、ポリゴン246、247の一群と、は、分離している。   When the polygons 244 and 245 intersecting the dividing plane 301 are removed, the group of polygons 241, 242, and 243 and the group of polygons 246 and 247 are separated as shown in FIG. .

これは、分割面301から見て異なる側に配置されているとともに、ポリゴン241、242、243は、辺を共有することで連結されており、ポリゴン246、247は、辺を共有することで連結されているからである。   The polygons 241, 242, and 243 are connected by sharing sides, and the polygons 246 and 247 are connected by sharing sides. Because it is.

一方、ポリゴン244、245は、分割面301と交差することによって、いずれも2つの新たなポリゴンに分割されている。図8は、変形後に切断されることにより生じた新たなポリゴンと頂点の様子を示す説明図である。以下、本図を参照して説明する。   On the other hand, the polygons 244 and 245 are both divided into two new polygons by intersecting the dividing plane 301. FIG. 8 is an explanatory diagram showing a state of new polygons and vertices generated by cutting after deformation. Hereinafter, a description will be given with reference to FIG.

本図に示すように、分割面301とポリゴン244、245の辺が交差した交点に、新たな頂点431、432、433が配置されており、ポリゴン441、442、443、444が形成されることとなっている。   As shown in this figure, new vertices 431, 432, and 433 are arranged at intersections where the split surface 301 and the sides of the polygons 244 and 245 intersect, and polygons 441, 442, 443, and 444 are formed. It has become.

上記のように、本実施形態においては、
(a)基本姿勢において頂点と重なる位置に制御点を配置し、
(b)制御点が依存する各ボーンが移動すると、そのボーンに連動して制御点が移動した先を求め、
(c)制御点の移動先を、依存する重みによって平均化した位置を、変形後の頂点の位置とする。
As described above, in this embodiment,
(A) A control point is arranged at a position overlapping the vertex in the basic posture,
(B) As each bone on which the control point depends moves, the destination to which the control point has moved in conjunction with the bone is obtained.
(C) A position obtained by averaging the movement destinations of the control points with the dependent weight is set as the position of the vertex after the deformation.

したがって、切断によって新たに生じた頂点431、432、433が、基本姿勢においてどの位置となるのか、を定める必要がある。   Therefore, it is necessary to determine the position of the vertexes 431, 432, and 433 newly generated by cutting in the basic posture.

本実施形態では、新たに定められる頂点が切断された辺を内分する内分比が変形後と基本姿勢とで一致するようにして、基本姿勢における頂点の位置を求める。   In the present embodiment, the position of the vertex in the basic posture is obtained so that the internal ratio that internally divides the side where the newly defined vertex is cut coincides with the basic posture.

図9は、切断されて生じたポリゴンと頂点の基本姿勢における様子を示す説明図である。以下、本図を参照して説明する。   FIG. 9 is an explanatory diagram illustrating a state in which the polygon and the vertex generated by cutting are in a basic posture. Hereinafter, a description will be given with reference to FIG.

図8と図9とで、頂点431は、頂点233、236を結ぶ辺を内分しているが、その内分比は基本姿勢と変形後で共通している。頂点432は、頂点235、236を結ぶ辺を内分しているが、その内分比は基本姿勢と変形後で共通している。頂点433は、頂点235、237を結ぶ辺を内分しているが、その内分比は基本姿勢と変形後で共通している。   In FIG. 8 and FIG. 9, the vertex 431 internally divides the side connecting the vertices 233 and 236, but the internal ratio is common to the basic posture and after deformation. The vertex 432 internally divides the side connecting the vertices 235 and 236, but the internal ratio is common to the basic posture and after deformation. The vertex 433 internally divides the side connecting the vertices 235 and 237, and the internal ratio is common to the basic posture and after deformation.

なお、頂点431、432、433は、一つの平面(分割面301をなす平面)上にあったため、図8では一直線上に並んでいるが、基本姿勢を示す図9では、一直線上に並ぶとは限らない。   Since the vertices 431, 432, and 433 are on one plane (the plane that forms the dividing surface 301), they are arranged in a straight line in FIG. 8, but in FIG. 9 showing the basic posture, they are arranged in a straight line. Is not limited.

図10は、オブジェクトの分割後のポリゴンと頂点の基本姿勢における様子を示す説明図である。以下、本図を参照して説明する。   FIG. 10 is an explanatory diagram showing a state in which the polygon and the vertex in the basic posture after the division of the object. Hereinafter, a description will be given with reference to FIG.

本図に示すように、分割によって、
(a)分割面と交差したポリゴン244、245が削除され、
(b)新たな制御点431、432、433が追加され
(c)新たな制御点431、432、433を頂点の一部とするポリゴン441、442、443、444が追加される
こととなっている。
As shown in this figure,
(A) Polygons 244 and 245 intersecting with the dividing plane are deleted,
(B) New control points 431, 432, and 433 are added. (C) Polygons 441, 442, 443, and 444 having new control points 431, 432, and 433 as part of the vertices are added. Yes.

また、図4では、ポリゴン241乃至247は一つのグループをなし、一体となっていたが、切断によって、図10においては、ポリゴン241、242、243、441、443が第1のグループを、ポリゴン442、444、246、247が第2のグループを、それぞれなすこととなっている。   In FIG. 4, the polygons 241 to 247 form one group and are united. However, by cutting, the polygons 241, 242, 243, 441, and 443 change the first group and the polygon in FIG. 10. 442, 444, 246, and 247 form the second group, respectively.

第1のグループにおいては、ポリゴン241、242が、共通の辺231−234を有し、ポリゴン242、243が、共通の辺233−234を有し、ポリゴン243、441が、共通の辺233−235を有し、ポリゴン441、443が、共通の辺235−432を有している。   In the first group, the polygons 241 and 242 have a common side 231-234, the polygons 242 and 243 have a common side 233-234, and the polygons 243 and 441 have a common side 233-. 235 and polygons 441 and 443 have common sides 235-432.

第2のグループにおいては、ポリゴン442、444が、共通の辺236−432を有し、ポリゴン444、246が、共通の辺236−237を有し、ポリゴン246、247が、共通の辺237−238を有している。   In the second group, polygons 442 and 444 have a common side 236-432, polygons 444 and 246 have a common side 236-237, and polygons 246 and 247 have a common side 237-. 238.

そして、両グループは、切断によって新たに生じた辺431−432、辺432−433を介して接している。   Both groups are in contact with each other through sides 431-432 and 432-433 newly generated by cutting.

すなわち、既存の頂点同士を結ぶ辺、もしくは、既存の頂点と新たな頂点を結ぶ辺によって隣接するポリゴンを次々とたどることによって、グループを定めることができる。   That is, a group can be defined by following adjacent polygons one after the other by the side connecting existing vertices or the side connecting existing vertices and new vertices.

また、新たな頂点同士を結ぶ辺によって隣接するポリゴンは、分割面を介して対峙するポリゴンであり、切断によって異なるグループに属することとなる。   In addition, polygons that are adjacent by a side connecting new vertices are polygons that confront each other via the dividing plane, and belong to different groups due to cutting.

さて、各グループのポリゴンが変形する状況は、従来と同様に、ボーン211、212、213によって定められる。すなわち、本実施形態においては、ボーンを分割する必要はない。これは、オブジェクトを形成するための情報を記憶する領域の更新をできるだけ少なくし、メモリの使用量を抑制するのに役立つ。   The situation in which the polygons of each group are deformed is determined by the bones 211, 212, and 213 as in the conventional case. That is, in the present embodiment, it is not necessary to divide the bone. This is useful for minimizing the update of the area for storing information for forming the object and suppressing the memory usage.

一方、仮想空間における位置や向きを各グループに対して割り当てることとすれば、あるグループに属するポリゴンは一体として移動し、グループ同士は独立して移動することが可能となる。   On the other hand, if the position and orientation in the virtual space are assigned to each group, the polygons belonging to a certain group move together, and the groups can move independently.

さて、新たな頂点431、432、433の位置と、これらに対する制御点の位置は、基本姿勢では重なるように定められる。したがって、あとは、制御点がいずれのボーンにどのような重みで依存するか、を定めれば、既存の制御点と新たな制御点を区別する必要がなくなる。   Now, the positions of the new vertices 431, 432, and 433 and the positions of the control points relative to these are determined so as to overlap in the basic posture. Accordingly, if it is determined what weight the control point depends on which bone, it is not necessary to distinguish the existing control point from the new control point.

たとえば、頂点431は、頂点233と頂点236を内分している。そして、頂点233に対する制御点223は、ボーン211、212に依存し、頂点236に対する制御点226は、ボーン212、213に依存する。そこで、本実施形態では、頂点431に対する制御点は、ボーン211、212、213に依存するものとする。   For example, the vertex 431 internally divides the vertex 233 and the vertex 236. The control point 223 for the vertex 233 depends on the bones 211 and 212, and the control point 226 for the vertex 236 depends on the bones 212 and 213. Therefore, in this embodiment, it is assumed that the control point for the vertex 431 depends on the bones 211, 212, and 213.

すなわち、分割により生じた頂点の制御点に対する各ボーンの重みは、分割された辺の頂点の制御点に対する各ボーンの重みを、分割の際の内分比で内分したものとするのである。   In other words, the weight of each bone with respect to the control point of the vertex generated by the division is obtained by dividing the weight of each bone with respect to the control point of the vertex of the divided side by the internal ratio at the time of division.

たとえば、制御点223のボーン211、212に対する重みをw11,w12とし、制御点226のボーン212、213に対する重みをw22,w23とする。制御点223はボーン213に依存しないから、制御点223のボーン213に対する重みは、0である。同様に、制御点226のボーン211に対する重みも、0である。   For example, the weights of the control point 223 for the bones 211 and 212 are w11 and w12, and the weights of the control point 226 for the bones 212 and 213 are w22 and w23. Since the control point 223 does not depend on the bone 213, the weight of the control point 223 with respect to the bone 213 is zero. Similarly, the weight of the control point 226 with respect to the bone 211 is also zero.

そして、頂点431が、頂点233(制御点223)と頂点236(制御点223)との間をA対Bに内分するとする。   Then, it is assumed that the vertex 431 internally divides between the vertex 233 (control point 223) and the vertex 236 (control point 223) into A to B.

すると、頂点431に対する制御点の
(a)ボーン211に対する重みは、〔B×w11 + A×0〕/〔A+B〕であり、
(b)ボーン212に対する重みは、〔B×w12 + A×w22〕/〔A+B〕であり、
(c)ボーン213に対する重みは、〔B×0 + A×w23〕/〔A+B〕である。
Then, the weight of the control point for the vertex 431 (a) the bone 211 is [B × w11 + A × 0] / [A + B],
(B) The weight for the bone 212 is [B × w12 + A × w22] / [A + B],
(C) The weight for the bone 213 is [B × 0 + A × w23] / [A + B].

このように、ボーンは分割せずに新たな頂点、制御点、重みを定めることで、オブジェクトを分割した後のポリゴンの形状を、自然に保つことができるようになるのである。   In this way, by defining new vertices, control points, and weights without dividing the bone, the shape of the polygon after dividing the object can be maintained naturally.

図11、図12は、仮想空間内において各グループが異なる位置、向きに配置された場合の様子を示す説明図である。以下、本図を参照して説明する。   FIG. 11 and FIG. 12 are explanatory diagrams showing a state when the groups are arranged at different positions and orientations in the virtual space. Hereinafter, a description will be given with reference to FIG.

図11は、ボーン211、212、213の相対的な位置関係が、図2、図4、図10と同じ状況において、グループごとの基本位置が異なる場合の、オブジェクト201の様子を示す図である。   FIG. 11 is a diagram illustrating the state of the object 201 when the relative positions of the bones 211, 212, and 213 are the same as those in FIGS. 2, 4, and 10, and the basic positions of the groups are different. .

図11は、ボーン211、212、213の相対的な位置関係が、図3、図5、図6と同じ状況において、グループごとの基本位置が異なる場合の、オブジェクト201の様子を示す図である。   FIG. 11 is a diagram illustrating the state of the object 201 when the relative positions of the bones 211, 212, and 213 are the same as those in FIGS. 3, 5, and 6, and the basic positions of the groups are different. .

これらの図に示すように、各グループごとにオブジェクト201の概形をなすポリゴンは、ポリゴン241、242、243、441、443が第1のグループを、ポリゴン442、444、246、247が第2のグループを、なしており、それぞれが一体となっている。   As shown in these figures, polygons 241, 242, 243, 441, 443 are the first group, and polygons 442, 244, 246, 247 are the second polygons that form the outline of the object 201 for each group. Group, and each is united.

このように、ボーンの相対的な位置や向きの情報は、切断前と切断後とで変わりなく、一体となったまま処理をするが、ポリゴンは、グループごとに位置を定める点が、本発明の特徴の一つである。   As described above, the information on the relative positions and orientations of the bones does not change before and after the cutting, and is processed while being integrated. However, the polygon is determined in each group. Is one of the features.

以下では、上記の技術を適用した画像処理装置の詳細について、説明する。   Details of the image processing apparatus to which the above technique is applied will be described below.

図13は、本実施形態に係る画像処理装置の概要構成を示す模式図であり、図14は、当該画像処理装置が実行する画像処理の制御の流れを示すフローチャートである。以下、これらの図を参照して説明する。   FIG. 13 is a schematic diagram illustrating a schematic configuration of the image processing apparatus according to the present embodiment, and FIG. 14 is a flowchart illustrating a flow of control of image processing executed by the image processing apparatus. Hereinafter, description will be given with reference to these drawings.

本実施形態の画像処理装置801は、記憶部802、ボーン移動部803、制御点移動部804、配置部805、選択部806、分割部807、生成部808、グループ移動部809を備え、情報処理装置100にプログラムを実行させることにより実現される。   The image processing apparatus 801 of this embodiment includes a storage unit 802, a bone moving unit 803, a control point moving unit 804, an arrangement unit 805, a selecting unit 806, a dividing unit 807, a generating unit 808, and a group moving unit 809. This is realized by causing the apparatus 100 to execute a program.

ここで、記憶部802は、RAM 103等により構成され、ボーン、制御点、頂点、ポリゴンの情報が記憶される。   Here, the storage unit 802 is configured by the RAM 103 and the like, and information on bones, control points, vertices, and polygons is stored.

また、ボーン移動部803は、ボーンを移動させる機能を果たす。   The bone moving unit 803 performs a function of moving the bone.

一方、制御点移動部804は、ボーンの移動に連動させて制御点を移動させる。   On the other hand, the control point moving unit 804 moves the control point in conjunction with the movement of the bone.

さらに、配置部805は、移動した制御点の位置からポリゴンの頂点の位置を定める。   Furthermore, the arrangement unit 805 determines the position of the vertex of the polygon from the position of the moved control point.

そして、選択部806は、仮想空間内の分割面と交差するポリゴンを選択する。   Then, the selection unit 806 selects a polygon that intersects with the division plane in the virtual space.

一方、分割部807は、記憶部802に記憶される情報を、変更、修正、追加、削除などをできるだけしないように工夫しつつ、更新することによって、分割面に基づいてポリゴンを分割し、ポリゴンのグループ分けを行う。   On the other hand, the dividing unit 807 updates the information stored in the storage unit 802 so as not to change, modify, add, delete, etc. as much as possible, thereby dividing the polygon based on the dividing plane, Perform grouping.

グループ移動部809は、ポリゴンの位置を定めるための基準位置をグループ単位で移動させる。   A group moving unit 809 moves a reference position for determining the position of the polygon in units of groups.

これら、ボーン移動部803、制御点移動部804、配置部805、選択部806、分割部807、グループ移動部809は、RAM 103等に記憶される情報を参照してCPU 101や画像処理部107が計算を行うことにより実現される。   These bone moving unit 803, control point moving unit 804, placing unit 805, selecting unit 806, dividing unit 807, and group moving unit 809 refer to information stored in the RAM 103 or the like and refer to the CPU 101 or the image processing unit 107. Is realized by performing calculation.

一方、生成部808は、仮想空間内にポリゴンが配置される位置に基づいて、画像を生成するもので、CPU 101の制御の下、画像処理部107により実現される。   On the other hand, the generation unit 808 generates an image based on the position where the polygon is arranged in the virtual space, and is realized by the image processing unit 107 under the control of the CPU 101.

以下、画像処理装置801が実行する画像処理の制御の流れを、さらに詳細に説明する。   Hereinafter, the flow of image processing control executed by the image processing apparatus 801 will be described in more detail.

本処理が開始されると、CPU 100は、RAM 103を初期化する(ステップS901)。ここで、RAM 103により実現される記憶部802には、以下の情報が記憶される。   When this process is started, the CPU 100 initializes the RAM 103 (step S901). Here, the storage unit 802 realized by the RAM 103 stores the following information.

(a)互いに連結された複数のボーンの初期位置および初期向き。すなわち、オブジェクトが基本姿勢をとっているときの、複数のボーンの位置および向き。   (A) Initial positions and initial orientations of a plurality of bones connected to each other. That is, the position and orientation of multiple bones when the object is in a basic posture.

典型的には、複数のボーンは、木構造に階層化されて管理される。木構造の各ノードには、各ボーンが割り当てられる。連結された2つのボーンのうち、一方のボーンを親ノードに、他方のボーンを子ノードに、割り当てられる。   Typically, a plurality of bones are managed in a hierarchy in a tree structure. Each bone is assigned to each node of the tree structure. Of the two connected bones, one bone is assigned to the parent node and the other bone is assigned to the child node.

本実施形態では、親ノードのボーン(以下「親ボーン」という。)に固定された座標系における子ノードのボーン(以下「子ボーン」という。)が当該親ボーンに連結される連結点の座標、ならびに、当該子ボーンの向きを表すオイラー角もしくはクォータニオンにより、当該子ボーンの初期位置および初期向きが表現される。   In this embodiment, the coordinates of the connection point at which the bone of the child node (hereinafter referred to as “child bone”) in the coordinate system fixed to the bone of the parent node (hereinafter referred to as “parent bone”) is connected to the parent bone. , And the Euler angle or quaternion representing the direction of the child bone, the initial position and the initial direction of the child bone are represented.

このほか、親ボーンに固定された座標系と、子ボーンに固定された座標系と、の位置関係の差分によって、初期位置および初期向きを表現する手法を採用しても良い。   In addition, a method of expressing the initial position and the initial orientation by a difference in positional relationship between the coordinate system fixed to the parent bone and the coordinate system fixed to the child bone may be employed.

また、木構造の根ノードのボーン(以下「根ボーン」という。)に固定された座標系における、各ボーンの位置や向きを、上記の手法によって表現することで、初期位置や初期向きを表現することもできる。   In addition, by expressing the position and orientation of each bone in the coordinate system fixed to the bone of the root node of the tree structure (hereinafter referred to as “root bone”), the initial position and initial orientation are expressed. You can also

(b)複数の制御点の初期位置。これは、オブジェクトが基本姿勢をとっているときの頂点の位置に重なるものである。   (B) Initial positions of a plurality of control points. This overlaps with the position of the vertex when the object is in the basic posture.

(c)複数の制御点のそれぞれが複数のボーンのそれぞれに依存する重みを表す依存情報。   (C) Dependency information representing a weight at which each of the plurality of control points depends on each of the plurality of bones.

概念的には、依存情報は、制御点が依存しないボーンに対しては重みを0として、各重みを並べたベクトルと考えることができる。ただし、殆どの場合、このベクトルは疎なベクトルである。したがって、ベクトルの添字、すなわち、各ボーンを区別するための番号から重みへのペアの配列、あるいは、ハッシュなどの構造を採用して記憶すると、メモリの利用効率が良くなる。   Conceptually, the dependency information can be considered as a vector in which the weights are arranged with the weight set to 0 for a bone on which the control point does not depend. However, in most cases this vector is a sparse vector. Therefore, if a vector subscript, that is, an array of pairs from numbers to weights for distinguishing each bone, or a structure such as a hash is adopted and stored, the use efficiency of the memory is improved.

(d)複数のポリゴンのそれぞれが複数の制御点のいずれを頂点とするかを表す頂点情報。   (D) Vertex information indicating which of a plurality of control points each of a plurality of polygons has as a vertex.

ポリゴンの形状を定義するものであり、ポリゴンの識別番号と、所定個数の制御点の識別番号と、のペアの配列等によって表現することができる。なお、後述するように、ポリゴンを三角形に限定したり、三角形と四角形に限定することで、計算を簡易化することができる。   The shape of the polygon is defined, and can be expressed by an array of pairs of identification numbers of polygons and identification numbers of a predetermined number of control points. As will be described later, the calculation can be simplified by limiting the polygon to a triangle, or to a triangle and a quadrangle.

(e)複数のポリゴンのそれぞれがいずれのグループに属するかを表すグループ情報。   (E) Group information indicating to which group each of the plurality of polygons belongs.

ポリゴンが同じグループに属する、ということは、それらのポリゴンは一体となって仮想空間内を移動することを意味する。すなわち、それらのポリゴンは、まだ切断されていない、ということを意味する。   That the polygons belong to the same group means that these polygons move together in the virtual space. That is, the polygons have not been cut yet.

(f)グループのそれぞれに対する仮想空間内の基準位置および基準向き。   (F) The reference position and reference orientation in the virtual space for each of the groups.

各グループに属するポリゴンの位置は、根ボーンに固定された座標系に対する相対的な座標により表現される。そこで、根ボーンの位置と向きを、ポリゴンが属するグループの基準位置および基準向きに設定することで、仮想空間内におけるポリゴンの頂点の絶対的な位置を求めることができる。   The position of the polygon belonging to each group is expressed by coordinates relative to the coordinate system fixed to the root bone. Thus, by setting the position and orientation of the root bone to the reference position and reference direction of the group to which the polygon belongs, the absolute position of the vertex of the polygon in the virtual space can be obtained.

グループごとに基準位置および基準向きが設定されるので、同じグループに属するポリゴンは一体となって移動する。   Since the reference position and reference direction are set for each group, polygons belonging to the same group move together.

このほか、RAM 103には、各ボーンの現在の位置および向き、各ボーンの移動に連動して移動する制御点の位置および向き、各頂点の現在の位置および向きなどの情報も記憶される。   In addition, the RAM 103 also stores information such as the current position and orientation of each bone, the position and orientation of a control point that moves in conjunction with the movement of each bone, and the current position and orientation of each vertex.

ついで、CPU 101は、ユーザがコントローラ105などを指示操作して行う指示や時間経過、所定のアルゴリズム、乱数などに基づいて、RAM 103内に記憶される各ボーンの現在の位置や向きを更新する(ステップS902)。この際の変化量を「ボーン変化量」と呼ぶ。   Next, the CPU 101 updates the current position and orientation of each bone stored in the RAM 103 based on an instruction given by the user operating the controller 105 or the like, a passage of time, a predetermined algorithm, a random number, or the like. (Step S902). The amount of change at this time is called “bone change amount”.

各ボーンについてボーン変化量を決定する手法には、たとえば以下に掲げる手法等、種々の態様を採用することができる。   As a method for determining the bone change amount for each bone, various modes such as the following methods can be adopted.

(a)木構造において、親ボーンから子ボーンへ、の方向に位置や向きの変化量が伝播していくフォワードキネマティクス法。   (A) A forward kinematics method in which the amount of change in position and orientation propagates from the parent bone to the child bone in the tree structure.

フォワードキネマティクスは、あらかじめ定めたアルゴリズムやモーションキャプチャデータを利用してオブジェクトを変形させる場合によく使われる手法である。たとえば、キャラクターに決められた振り付けのダンスを踊らせたり、必殺技や勝ち名乗りの決めポーズをとらせるような場合である。   Forward kinematics is a technique often used when deforming an object using a predetermined algorithm or motion capture data. For example, it may be a case where a choreographic dance determined by a character is performed, or a determined pose of a special move or winning rider is taken.

(b)木構造において、葉ノードのボーン(以下「葉ボーン」という。)を目的位置に移動させ、根ボーンに向かって位置や向きの変化量を伝播させるインバースキネマティクス法。   (B) Inverse kinematics method in which a bone of a leaf node (hereinafter referred to as “leaf bone”) is moved to a target position in a tree structure, and a change in position and orientation is propagated toward the root bone.

インバースキネマティクスは、たとえば、キャラクターに何らかの物体を拾わせたりするような場合によく使われる。このような場合では、目的位置が動的に変化するので、腕をどのように伸ばしてから縮めれば良いか、を求める必要がある。   Inverse kinematics is often used, for example, to let a character pick up some object. In such a case, since the target position changes dynamically, it is necessary to find out how to extend and contract the arm.

なお、ボーン変化量の表現法もさまざまであり、初期位置や初期向きからの変位で表現しても良いし、根ボーンに固定された座標系に対する当該ボーンに固定された座標系の、現在の位置および向きにより表現しても良い。   There are various ways to express bone changes, and it may be expressed by the displacement from the initial position or initial direction, or the current coordinate system fixed to the bone relative to the coordinate system fixed to the root bone. You may express by a position and direction.

なお、ボーン変化量によるボーンの変形は、図2から図3に至るまでのボーン211、212、213の相対的な位置の変化に相当する。   Note that the deformation of the bone due to the bone change amount corresponds to a change in the relative position of the bones 211, 212, and 213 from FIG. 2 to FIG.

さらに、CPU 101は、制御点のそれぞれについて、以下の処理を繰り返す(ステップS903〜ステップS909)。   Further, the CPU 101 repeats the following processing for each control point (steps S903 to S909).

まず、制御点が依存するボーン、すなわち、制御点のボーンに対する重みが非0であるようなボーンのそれぞれについて、当該ボーンに対する制御点の位置が相対的に変化しないように、制御点を移動する(ステップS904)。ここでの移動量を「連動変化量」と呼ぶ。   First, for each of the bones on which the control point depends, that is, each bone having a non-zero weight for the bone of the control point, the control point is moved so that the position of the control point relative to the bone does not change relatively. (Step S904). The amount of movement here is referred to as “linked change amount”.

これは、図2から図3に至るまでの図中の×印を、それぞれ求めることに相当し、制御点が複数のボーンに依存する場合には、移動先も複数箇所となる。   This corresponds to obtaining each of the X marks in the drawings from FIG. 2 to FIG. 3, and when the control point depends on a plurality of bones, there are a plurality of destinations.

次に、制御点の移動先を、そこへ移動する原因となったボーンの重みをつけて、平均をとる(ステップS905)。この結果が「制御点変化量」である。   Next, the destination of the control point is averaged by assigning the weight of the bone that caused the movement to the control point (step S905). This result is the “control point change amount”.

制御点変化量を求める処理は、図2から図3に至るまでの図中の○印をそれぞれ求めることに相当する。   The process of obtaining the control point change amount corresponds to obtaining each of the circles in the drawings from FIG. 2 to FIG.

たとえば、制御点がN個、ボーンがM個用意されている状況を考える。j番目のボーンが移動したときに、j番目のボーンに対する相対的な位置が変化しないように、i番目の制御点を移動したときの連動変化量を表すベクトルをr[i,j]とする。また、i番目の制御点がj番目のボーンに依存する重みをw[i,j]とする。   For example, consider a situation where N control points and M bones are prepared. Let r [i, j] be the vector that represents the amount of change when the i-th control point is moved so that the relative position with respect to the j-th bone does not change when the j-th bone moves. . Also, let w [i, j] be the weight at which the i-th control point depends on the j-th bone.

連動変化量は、オブジェクトが   The amount of change

すると、i番目の制御点の制御点変化量は、
〔Σj=1 M w[i,j]r[i,j]〕/〔Σj=1 M w[i,j]〕
のように計算することができる。
Then, the control point change amount of the i-th control point is
j = 1 M w [i, j]] / [Σ j = 1 M w [i, j]]
It can be calculated as follows.

制御点変化量は、その制御点に対応付けられる頂点の位置や向きの変化を表すベクトルである。   The control point change amount is a vector that represents a change in the position or orientation of the vertex associated with the control point.

なお、w[i,j] = 0の場合、i番目の制御点はj番目のボーンに依存しないこととなるので、この場合にはr[i,j]を求める必要はない。   Note that when w [i, j] = 0, the i-th control point does not depend on the j-th bone, and in this case, it is not necessary to obtain r [i, j].

ついで、CPU 101は、当該制御点が属するグループを調べ(ステップS906)、当該グループの基準位置および基準向きを取得し(ステップS907)、当該制御点に対応付けられる頂点の、仮想空間内における絶対的な位置を計算する(ステップS908)。   Next, the CPU 101 checks the group to which the control point belongs (step S906), obtains the reference position and reference direction of the group (step S907), and the vertexes associated with the control point are absolute in the virtual space. A specific position is calculated (step S908).

すると、仮想空間内の頂点の位置および向きは、
(a)基準位置および基準向きと、
(b)頂点の初期位置および初期向きと、
(c)制御点変化量と、
を座標変換すれば得られる。
Then, the position and orientation of the vertex in the virtual space is
(A) a reference position and a reference orientation;
(B) the initial position and orientation of the vertex;
(C) Control point change amount;
Can be obtained by converting the coordinates.

なお、頂点の初期位置および初期向きを、根ボーンの初期位置および初期向きと一致させる手法、すなわち、制御点変化量を、根ボーンに固定される座標系における制御点の座標で表現する手法もありうる。   In addition, there is also a method of matching the initial position and initial direction of the vertex with the initial position and initial direction of the root bone, that is, a method of expressing the control point change amount by the coordinate of the control point in the coordinate system fixed to the root bone. It is possible.

この場合は、単純に、基準位置および基準向きに基づいて、制御点変化量を平行移動および回転すれば、仮想空間内における位置および向きが得られる。   In this case, simply by translating and rotating the control point change amount based on the reference position and the reference orientation, the position and orientation in the virtual space can be obtained.

1つの頂点は、一般には、複数のポリゴンで共有される。また、ある頂点を共有するポリゴンは、同じグループに属する場合が殆どである。したがって、
(a)どのグループを基準として頂点の位置を得たか、の情報と、
(b)得られた頂点の位置と、
を対応付けてキャッシュすることにより、計算量を抑制することができる。
One vertex is generally shared by a plurality of polygons. Further, polygons that share a certain vertex mostly belong to the same group. Therefore,
(A) Information on which group the position of the vertex was obtained as a reference;
(B) the position of the obtained vertex;
By associating and caching, the amount of calculation can be suppressed.

なお、切断されていないオブジェクトを構成するポリゴンは、1つのグループに属するので、基準位置と基準向きが一致している。   Since the polygons constituting the object that is not cut belong to one group, the reference position and the reference orientation coincide with each other.

一方、オブジェクトが切断されると、そのオブジェクトを構成するポリゴンは、複数のグループのいずれかに属することとなる。各グループの基準位置と基準向きは、一般には異なるので、同じグループに属するポリゴンは一体となって移動するが、異なるグループに属するポリゴンは別個に移動することになる。   On the other hand, when an object is cut, polygons constituting the object belong to one of a plurality of groups. Since the reference position and reference direction of each group are generally different, polygons belonging to the same group move together, but polygons belonging to different groups move separately.

このようにして、全制御点から頂点の位置を得る処理を繰り返す(〜ステップS909)。   In this way, the process of obtaining the vertex positions from all the control points is repeated (˜step S909).

全頂点の位置が得られたら、CPU 101は、画像処理部107を駆動して、仮想空間内に配置されたポリゴンを所定の視点位置から所定の視線方向に見た様子を表す画像を、3次元グラフィックス技術によって生成する(ステップS910)。   When the positions of all the vertices are obtained, the CPU 101 drives the image processing unit 107 to display an image representing a state in which the polygons arranged in the virtual space are viewed from a predetermined viewpoint position in a predetermined visual line direction. It is generated by a dimensional graphics technique (step S910).

すなわち、オブジェクトが分割されているか否かに関わらず、ボーンに関する情報そのものを、追加したり削除したり分離したり複製したりする必要がない。これは、本発明の特徴の一つである。   That is, it is not necessary to add, delete, separate, or duplicate the information about the bone itself regardless of whether the object is divided or not. This is one of the features of the present invention.

ついで、CPU 101は、垂直同期割込が発生するまで待機し(ステップS911)、垂直同期割込みが発生したら、画像処理部107を制御して、生成した画像をモニタの画面に表示させる(ステップS912)。   Next, the CPU 101 waits until a vertical synchronization interrupt occurs (step S911). When a vertical synchronization interrupt occurs, the CPU 101 controls the image processing unit 107 to display the generated image on the monitor screen (step S912). ).

本実施形態では、以降の処理を実行した後にステップS902に戻ることとしているので、モニタ画面に表示される画像は、垂直同期割込周期ごとに更新されることになる。このため、オブジェクトが変形している場合には、その様子が動画表示されることになる。   In the present embodiment, since the subsequent processing is executed and the process returns to step S902, the image displayed on the monitor screen is updated every vertical synchronization interrupt cycle. For this reason, when the object is deformed, the state is displayed as a moving image.

なお、待機中(ステップS911)には、他の計算処理をコルーチン的に並行して実行することや、以降の計算を先行して行うことも可能である。   During standby (step S911), other calculation processes can be executed in a coroutine manner in parallel, and subsequent calculations can be performed in advance.

さらに、CPU 101は、仮想空間内に分割面が配置されたか否かを判定する(ステップS913)。分割面が配置される状況とは、ユーザがコントローラ105などを指示操作して切断を指定した場合や、所定のアルゴリズムに基づく場合など、種々の態様を採用することができる。分割面の配置は、上記の待機中(ステップS911)に行っても良いし、ステップS913において、コントローラ105等の押圧操作状況を監視することにより行っても良い。   Further, the CPU 101 determines whether or not a divided surface is arranged in the virtual space (step S913). Various situations can be adopted as the situation in which the division plane is arranged, such as when the user designates cutting by operating the controller 105 or the like, or based on a predetermined algorithm. The arrangement of the divided surfaces may be performed during the above-described standby (step S911), or may be performed by monitoring the pressing operation status of the controller 105 or the like in step S913.

さて、分割面が配置されていない場合(ステップS913;No)、ステップS921に進む。一方、分割面が配置されている場合(ステップS913;Yes)、CPU 101は、現在仮想空間内に配置されている全ポリゴンのうち、当該分割面と交差するポリゴンを選択する(ステップS914)。   Now, when the division surface is not arrange | positioned (step S913; No), it progresses to step S921. On the other hand, when the division plane is arranged (step S913; Yes), the CPU 101 selects a polygon that intersects with the division plane among all the polygons currently arranged in the virtual space (step S914).

この処理は、図6において分割面301と交差するポリゴン244、245を選択する処理に相当する。   This process corresponds to the process of selecting the polygons 244 and 245 that intersect the dividing plane 301 in FIG.

たとえば、プレイヤーが刀をコントローラ105で操作し、仮想空間内で姿勢を変化させながら移動する敵キャラクターのオブジェクトを切断する場合を考える。   For example, consider a case where a player operates a sword with the controller 105 to cut an object of an enemy character that moves while changing the posture in the virtual space.

この場合、刀の移動の軌跡が分割面に相当し、分割面と交差するポリゴンは、刀と衝突して切り裂かれる皮膚の部位に相当する。   In this case, the trajectory of the movement of the sword corresponds to the dividing surface, and the polygon that intersects the dividing surface corresponds to a portion of the skin that collides with the sword and is torn.

分割面の形状を仮想空間内に配置される円や扇型あるいは平面等、平らな形状とすれば、交差判定の計算を容易にすることができる。   If the shape of the dividing surface is a flat shape such as a circle, a fan shape, or a flat surface arranged in the virtual space, the calculation of the intersection determination can be facilitated.

ついで、CPU 101は、選択された各ポリゴンにおいて、分割面と交差する辺の交点が、当該辺の頂点の間を内分する内分比を求める(ステップS915)。   Next, in the selected polygon, the CPU 101 obtains an internal division ratio at which the intersection of the sides intersecting the division plane internally divides between the vertices of the side (step S915).

これは、図8において、頂点431、432、433が、辺232−236、235−236、235−237を内分する内分比を求める処理に相当する。   In FIG. 8, this corresponds to processing for obtaining an internal division ratio in which the vertices 431, 432, and 433 internally divide the sides 232-236, 235-236, and 235-237.

さらに、CPU 101は、当該辺の頂点とされる制御点について記憶部802に記憶される初期位置の間を、当該求められた内分比で内分する位置(以下「内分位置」という。)を求める(ステップS916)。   Further, the CPU 101 internally divides between the initial positions stored in the storage unit 802 for the control points that are the vertices of the side by the determined internal division ratio (hereinafter referred to as “internal division position”). ) Is obtained (step S916).

これは、図9において、頂点431、432、433の位置を計算する処理に相当する。   This corresponds to the process of calculating the positions of the vertices 431, 432, and 433 in FIG.

ついで、CPU 101は、当該求められた内分位置を新たな制御点の初期位置として、記憶部802に記憶させる。   Next, the CPU 101 stores the obtained internal division position in the storage unit 802 as the initial position of a new control point.

これにより、図10に示すように、新たな頂点431、432、433が、オブジェクト202のスキンを定義するための制御点として採用されることになる。   As a result, as shown in FIG. 10, new vertices 431, 432, and 433 are adopted as control points for defining the skin of the object 202.

さらに、CPU 101は、当該辺の頂点とされる制御点に対する依存情報を当該混合して、当該混合した結果を、当該新たな制御点に対する依存情報として、記憶部802に記憶させる。   Furthermore, the CPU 101 mixes the dependency information on the control point that is the vertex of the side, and stores the mixed result in the storage unit 802 as dependency information on the new control point.

これは、上記のように、頂点431、432、433が、ボーン211、212、213に依存する重みを内分によって計算した処理に相当する。   As described above, this corresponds to the processing in which the vertices 431, 432, and 433 calculate the weights depending on the bones 211, 212, and 213 by internal division.

そして、CPU 101は、選択されたポリゴンに対する頂点情報を、記憶部802から削除することにより、分割されたポリゴンを消去する(ステップS917)。   Then, the CPU 101 deletes the divided polygons by deleting the vertex information for the selected polygons from the storage unit 802 (step S917).

この処理により、図2に示されていたポリゴン244、245が消去されることになる。   By this processing, the polygons 244 and 245 shown in FIG. 2 are deleted.

さらに、CPU 101は、選択されたポリゴンを分割面により分割することにより得られる新たなポリゴンの頂点を、分割面により分割されない辺の頂点とされる制御点ならびに分割面により分割される辺の交点に対する制御点とする頂点情報を、記憶部802に記憶させることにより、新たなポリゴンを生成する(ステップS918)。   Further, the CPU 101 determines that the vertex of a new polygon obtained by dividing the selected polygon by the division plane is the control point that is the vertex of the side that is not divided by the division plane, and the intersection of the sides that are divided by the division plane By storing the vertex information as control points for the in the storage unit 802, a new polygon is generated (step S918).

この処理により、図10に示されるポリゴン441、442、443、444が生成されることになる。   By this processing, polygons 441, 442, 443, and 444 shown in FIG. 10 are generated.

ついで、CPU 101は、記憶部802に記憶される分割面と交差するポリゴンが属するグループに対するグループ情報を、分割面に対して当該ポリゴンの頂点がいずれの側にあるか、ならびに、当該ポリゴンが共通する辺を有することにより連結されているか、により、複数のグループに分割する(ステップS919)。   Next, the CPU 101 stores group information for the group to which the polygon intersecting the division plane stored in the storage unit 802 belongs, on which side the vertex of the polygon is located with respect to the division plane, and the polygon is common. It is divided into a plurality of groups depending on whether they are connected by having a side to be connected (step S919).

上記の例では、ポリゴン241、242、243、441、443が1つのグループに、ポリゴン442、444、246、247が他のグループに、それぞれ属することとなる。   In the above example, the polygons 241, 242, 243, 441, and 443 belong to one group, and the polygons 442, 444, 246, and 247 belong to the other group.

なお、上記のように、辺を介してポリゴンが連結されることを基準に切断の判定を行うと、一回の切断によって、複雑な姿勢に変形したオブジェクトが多数のオブジェクトに分離されるような場合であっても、正しくグループ分けを行うことができる。   As described above, when cutting is determined based on the fact that polygons are connected via sides, an object deformed into a complicated posture is separated into many objects by one cutting. Even in this case, grouping can be performed correctly.

そして、CPU 101は、当該複数のグループ情報に対する基準位置および基準向きを、当該分割前のグループ情報に対する基準位置および基準向きに、初期化して設定する(ステップS920)。   Then, the CPU 101 initializes and sets the reference position and reference direction for the plurality of group information to the reference position and reference direction for the group information before the division (step S920).

切断の直後は、切断後のグループの基準位置と基準向きは一致するので、図6、図10に示すように、切断直後のグループは、分割面を境界に、互いに密着することになる。   Immediately after cutting, the reference position and reference direction of the group after cutting coincide with each other, so that the groups immediately after cutting are in close contact with each other with the dividing plane as a boundary, as shown in FIGS.

また、切断されて時間が経過すると、一般には、各グループの基準位置や基準向きは変化する。したがって、図11、図12に示すように、各グループは分離するが、グループ内のポリゴンは一体に移動する。   In addition, when time elapses after cutting, the reference position and reference direction of each group generally change. Therefore, as shown in FIGS. 11 and 12, the groups are separated, but the polygons in the group move together.

図15、図16、図17は、複雑な形状のオブジェクトが切断される様子を示す説明図である。以下、本図を参照して説明する。   FIGS. 15, 16, and 17 are explanatory diagrams showing a state in which an object having a complicated shape is cut. Hereinafter, a description will be given with reference to FIG.

図15は、敵キャラクターのオブジェクトが両手を下に下げている状態で、右上から左下に刀で切断されたときの様子を示す説明図である。なお、本図では、理解を容易にするため、分割面から離れるように、各ポリゴンを移動している。   FIG. 15 is an explanatory diagram showing a state in which the enemy character object is cut with a sword from the upper right to the lower left in a state where both hands are lowered. In this figure, each polygon is moved away from the dividing plane for easy understanding.

本図に示すように、一つの分割面によって、オブジェクトは3つの部分に分離されている。また、分割面が平面状であることもわかる。   As shown in the figure, the object is separated into three parts by one dividing plane. It can also be seen that the dividing surface is planar.

図16は、図15のオブジェクトの基本姿勢に相当する様子を示す説明図である。本図でも、理解を容易にするため、分割面から離れるように、各ポリゴンを移動している。   FIG. 16 is an explanatory diagram showing a state corresponding to the basic posture of the object of FIG. Also in this figure, in order to facilitate understanding, each polygon is moved away from the dividing plane.

本図を見ると、基本姿勢における分割面は、複雑な折れ曲がり形状を持っていることがわかる。   From this figure, it can be seen that the divided surface in the basic posture has a complicated bent shape.

図17は、分割面により切断されたポリゴンを強調して表示する説明図である。   FIG. 17 is an explanatory diagram that highlights and displays the polygons cut by the dividing plane.

本図を見ると、切断されたポリゴンの数は、切断されていないポリゴンの数に比べて、かなり少ないことがわかる。   From this figure, it can be seen that the number of polygons cut is considerably smaller than the number of polygons not cut.

しかも、本実施形態では、基本姿勢においてポリゴンを分割しているため、分割面と交差しないポリゴンについては、以前と同じデータをそのまま利用できる。このため、記憶部802の書き換えが少なくてすみ、メモリの利用効率が向上する。   In addition, in the present embodiment, since the polygon is divided in the basic posture, the same data as before can be used as it is for the polygon that does not intersect the divided surface. For this reason, it is possible to reduce the rewriting of the storage unit 802 and improve the memory utilization efficiency.

さて、このようにポリゴンのグループ分けが済んだら、CPU 101は、物理シミュレーション計算やユーザの指示入力等に基づいて、各グループの基準位置や基準向きを変化させ(ステップS921)、ステップS902に戻る。   When the polygons are grouped in this way, the CPU 101 changes the reference position and reference direction of each group based on physical simulation calculation and user instruction input (step S921), and the process returns to step S902. .

この処理によって、再度ポリゴンが仮想空間内に配置され、画像が生成される処理が繰り返されることになる。   By this process, the polygon is again arranged in the virtual space, and the process of generating an image is repeated.

物理シミュレーションによって、時間の経過とともに、両者のずれが大きくなるように変化すると、オブジェクトの切断された部位同士が次第に離間していく状況が再現できる。   When the physical simulation changes so that the deviation between the two becomes larger with time, the situation where the cut portions of the object are gradually separated can be reproduced.

このように、本実施形態では、分割面によって切断される一部のポリゴンに関係する情報のみを書き換えることとしている。また、書き換えた後の情報は、さらなる切断が可能となっている。たとえば、ゲームにおいてプレイヤーが敵キャラクターに何回も刀を振り下ろして、敵キャラクターを細切れにするような状況に適用することも可能である。   As described above, in the present embodiment, only information related to a part of polygons cut by the dividing plane is rewritten. Further, the information after rewriting can be further cut. For example, the present invention can be applied to a situation in which a player swings down a sword many times on an enemy character in the game and chops the enemy character.

また、画像の生成や画像の表示が所定の時間間隔で繰り返し行われるので、オブジェクトが切断される様子を表す動画が提示されることになる。   In addition, since image generation and image display are repeatedly performed at predetermined time intervals, a moving image representing how the object is cut is presented.

本発明によれば、オブジェクトが移動・変形した後に切断された状況に基づいて、移動・変形がされる前の状況において一部のポリゴンを分割し、ポリゴン全体のグループ分けを再度行うことにより、オブジェクトの位置や形状を定める種々の情報の複製・削除・変更等をできるだけ抑制するとともに、簡易な計算によってオブジェクトの切断をシミュレートすることができるようになる。   According to the present invention, based on the situation where the object is cut after moving / deforming, by dividing some polygons in the situation before being moved / deformed, and performing grouping of the whole polygon again, It is possible to suppress duplication / deletion / change of various information that determines the position and shape of the object as much as possible and to simulate the cutting of the object by simple calculation.

上記実施形態では、辺を内分する内分点を新たな頂点とするときに、辺の元の頂点に割り当てられた重みを、内分比で内分することによって、新たな制御点の重みを得ることとしていた。   In the above embodiment, when an internal dividing point that internally divides an edge is used as a new vertex, the weight assigned to the original vertex of the edge is internally divided by the internal ratio, thereby creating a new control point weight. Was going to get.

たとえば、制御点がN個、ボーンがM個用意されている状況で、i番目の制御点がj番目のボーンに依存する重みをw[i,j]とし、内分される辺の頂点がそれぞれp番目、q番目であり、内分比がA:Bであるとしたとき、新たな制御点がj番目のボーンに依存する重みは、
〔B×w[p,j] + A×w[q,j]〕/〔A + B〕
のように計算することができる。
For example, in a situation where N control points and M bones are prepared, the weight that the i-th control point depends on the j-th bone is w [i, j], and the vertices of the internally divided edges are Assuming that the pth and qth respectively and the internal ratio is A: B, the weight that the new control point depends on the jth bone is
[B × w [p, j] + A × w [q, j]] / [A + B]
It can be calculated as follows.

しかしながら一般には、制御点が依存するボーンの数は1個〜4個程度とすることが多い。ここで、制御点が依存するボーンの数の上限をL個とすると、w[p,1],w[p,2],…,w[p,M]のうち、非0の要素は多くともL個しかない。w[q,1],w[q,2],…,w[q,M]についても、同様に、非0の要素は多くともL個しかない。   However, in general, the number of bones on which control points depend is often about 1 to 4. Here, if the upper limit of the number of bones on which the control point depends is L, there are many non-zero elements in w [p, 1], w [p, 2], ..., w [p, M]. There are only L pieces. Similarly for w [q, 1], w [q, 2],..., w [q, M], there are at most L non-zero elements.

このため、新たな制御点に対する各ボーンの重み
〔B×w[p,1] + A×w[q,1]〕/〔A + B〕,
〔B×w[p,2] + A×w[q,2]〕/〔A + B〕,
… ,
〔B×w[p,M] + A×w[q,M]〕/〔A + B〕
のうち、非0の要素は、多くとも2L個となる。
For this reason, the weight of each bone for the new control point [B × w [p, 1] + A × w [q, 1]] / [A + B],
[B × w [p, 2] + A × w [q, 2]] / [A + B],
…,
[B × w [p, M] + A × w [q, M]] / [A + B]
Of these, there are at most 2L non-zero elements.

そこで、得られた重みのうち非0の重みがL個を超える場合には、重みが大きい順からL個だけを選び、それ以外の重みを0にクリアする。   Therefore, when the non-zero weights among the obtained weights exceed L, only the L weights are selected in descending order of the weights, and the other weights are cleared to zero.

すると、制御点は、選ばれた重みを持つL個のボーンには依存するが、それ以外のボーンには依存しない、ということになる。   Then, the control point depends on the L bones having the selected weight, but does not depend on the other bones.

この構成は、ボーンに対する依存性を近似するものである。また、既存の3次元グラフィックスライブラリやハードウェアにおいては、制御点が依存するボーンの数に上限を設けていることが殆どである。本発明は、このようなライブラリ・ハードウェアを有効活用することができる。   This configuration approximates the dependence on the bone. In addition, in the existing three-dimensional graphics library and hardware, there is almost an upper limit on the number of bones on which control points depend. The present invention can effectively utilize such library hardware.

なお、ボーンに対する重みは、M個の要素を持つ1次元配列として実装するのではなく、非0の重みのインデックスと、そのインデックスに対応する重みと、の対がL個含まれる配列で表現することにより、メモリの使用量を抑制することが可能である。   The weights for bones are not implemented as a one-dimensional array having M elements, but are represented by an array including L pairs of non-zero weight indices and weights corresponding to the indices. As a result, the amount of memory used can be reduced.

本発明によれば、制御点が依存するボーンの数を適切に抑制して、計算量やメモリの使用量を抑制することができるようになる。   According to the present invention, it is possible to appropriately suppress the number of bones on which control points depend, thereby reducing the amount of calculation and the amount of memory used.

上記実施形態では、ポリゴンが分割面で分離された後は、分離されたポリゴンをそのまま利用していた。本実施形態では、ポリゴンの形状として、三角形のみを採用することとする。   In the above-described embodiment, after the polygons are separated on the dividing plane, the separated polygons are used as they are. In this embodiment, only a triangle is adopted as the shape of the polygon.

図18、図19は、ポリゴンが分離される場合に、どのような分離が考えられるか、を示す説明図である。以下、本図を参照して説明する。   18 and 19 are explanatory diagrams showing what kind of separation can be considered when polygons are separated. Hereinafter, a description will be given with reference to FIG.

これらの図において、分割面と交差するポリゴンは、点A、B、Cを頂点とする三角形ABCである。分割面と交差することにより、辺ABが、交点Dで分割され、辺ACが、交点Eで分割されている。   In these figures, the polygon that intersects the dividing plane is a triangle ABC having points A, B, and C as vertices. By intersecting the dividing plane, the side AB is divided at the intersection D, and the side AC is divided at the intersection E.

すべてのポリゴンを三角形にするためには、四角形DBCEを対角線BEもしくは対角線CDで分割する必要がある。   In order to make all the polygons triangular, it is necessary to divide the quadrangle DBCE by the diagonal line BE or the diagonal line CD.

ここで、三角形の形状が細長くなると、画像を生成した際に、不自然なくびれや潰れが生じやすくなる。   Here, when the triangular shape is elongated, unnatural constriction and collapse are likely to occur when an image is generated.

そこで、本実施形態では、頂点を挟む辺同士の角度を利用する。   Therefore, in this embodiment, the angle between the sides sandwiching the vertex is used.

すなわち、角EDCと角DCBの和(図18)と、角DEBと角EBCの和(図19)と、を比較する。すると、前者の方が、和が大きい。   That is, the sum of the corner EDC and the corner DCB (FIG. 18) is compared with the sum of the corner DEB and the corner EBC (FIG. 19). Then, the former is larger.

そこで、新たなポリゴンを、図16に基づいて、三角形ADE、三角形DEC、三角形EDCとするのである。   Therefore, the new polygons are defined as a triangle ADE, a triangle DEC, and a triangle EDC based on FIG.

本実施形態によれば、ポリゴンを分割する際に、分割後のポリゴンの形状を適切に選択することにより、生成される画像が不自然になることをできるだけ防止することが可能となる。   According to the present embodiment, when a polygon is divided, it is possible to prevent the generated image from becoming unnatural as much as possible by appropriately selecting the shape of the polygon after the division.

以上説明したように、本発明によれば、仮想空間に配置される複数のポリゴンからなるオブジェクトをある分割面で分割した様子を表す画像を生成するのに好適な画像処理装置、画像処理方法、ならびに、これらをコンピュータにて実現するプログラムを提供することができる。   As described above, according to the present invention, an image processing apparatus, an image processing method, and an image processing apparatus suitable for generating an image representing a state in which an object composed of a plurality of polygons arranged in a virtual space is divided on a certain division plane, In addition, it is possible to provide a program that realizes these on a computer.

100 情報処理装置
101 CPU
102 ROM
103 RAM
104 インターフェース
105 コントローラ
106 外部メモリ
107 画像処理部
108 DVD−ROMドライブ
109 NIC
110 音声処理部
111 マイク
121 HD
201 オブジェクト
211 ボーン
212 ボーン
213 ボーン
221 制御点
222 制御点
223 制御点
224 制御点
225 制御点
226 制御点
227 制御点
228 制御点
229 制御点
231 頂点
232 頂点
233 頂点
234 頂点
235 頂点
236 頂点
237 頂点
238 頂点
239 頂点
241 ポリゴン
242 ポリゴン
243 ポリゴン
244 ポリゴン
245 ポリゴン
246 ポリゴン
247 ポリゴン
431 頂点
432 頂点
433 頂点
441 ポリゴン
442 ポリゴン
443 ポリゴン
444 ポリゴン
801 画像処理装置
802 記憶部
803 ボーン移動部
804 制御点移動部
805 配置部
806 選択部
807 分割部
808 生成部
809 グループ移動部
100 Information processing apparatus 101 CPU
102 ROM
103 RAM
104 Interface 105 Controller 106 External Memory 107 Image Processing Unit 108 DVD-ROM Drive 109 NIC
110 Audio processing unit 111 Microphone 121 HD
201 Object 211 Bone 212 Bone 213 Bone 221 Control point 222 Control point 223 Control point 224 Control point 225 Control point 226 Control point 227 Control point 228 Control point 229 Control point 231 Vertex 232 Vertex 233 Vertex 234 Vertex 236 Vertex 236 Vertex 237 Vertex 238 Vertex 239 Vertex 241 Polygon 242 Polygon 243 Polygon 244 Polygon 245 Polygon 246 Polygon 247 Polygon 431 Vertex 432 Vertex 433 Vertex 441 Polygon 442 Polygon 443 Polygon 444 Polygon 801 Image processor 802 Storage unit 803 Bone moving unit 804 Bone moving unit 804 806 selection unit 807 division unit 808 generation unit 809 group movement unit

Claims (8)

互いに連結された複数のボーンの初期位置および初期向きと、複数の制御点の初期位置と、当該複数の制御点のそれぞれが前記複数のボーンのそれぞれに依存する重みを表す依存情報と、複数のポリゴンのそれぞれが前記複数の制御点のいずれを頂点とするかを表す頂点情報と、前記複数のポリゴンのそれぞれがいずれのグループに属するかを表すグループ情報と、前記グループのそれぞれに対する仮想空間内の基準位置および基準向きと、が記憶される記憶部、
前記複数のボーンが互いに連結される相対的な向きを変化させるときの、前記複数のボーンのそれぞれの前記初期位置および前記初期向きからの位置ならびに向きの変化量(以下「ボーン変化量」という。)を求めるボーン移動部、
前記複数の制御点のそれぞれについて、前記複数のボーンのそれぞれが前記求められた変化量だけ移動するのに連動して、当該制御点の位置を前記記憶される初期位置から移動するときの、当該制御点の位置の変化量(以下「連動変化量」という。)を求め、当該求められた連動変化量のそれぞれに、当該制御点が当該ボーンに依存する重みを適用して重み付き平均をとることにより、当該制御点の位置の変化量(以下「制御点変化量」という。)を求める制御点移動部、
前記複数のポリゴンのそれぞれについて、当該ポリゴンが属するグループに対する基準位置および基準向きに対する当該ポリゴンの頂点の相対的な位置を、当該頂点に対する制御点について前記求められた制御点変化量とすることにより、当該ポリゴンを当該仮想空間内に配置する配置部、
前記複数のポリゴンのうち、同じグループに属するポリゴンについて、当該ポリゴンの有する辺が前記仮想空間に配置された分割面と交差するポリゴンを選択する選択部、
前記選択されたポリゴンにおいて、前記分割面と交差する辺の交点が、当該辺の頂点の間を内分する内分比を求め、当該辺の頂点とされる制御点について前記記憶部に記憶される初期位置の間を、当該求められた内分比で内分する位置(以下「内分位置」という。)を求め、当該求められた内分位置を新たな制御点の初期位置として、前記記憶部に記憶させ、当該辺の頂点とされる制御点に対する依存情報を当該混合して、当該混合した結果を、当該新たな制御点に対する依存情報として、前記記憶部に記憶させ、前記選択されたポリゴンに対する頂点情報を、前記記憶部から削除することにより、分割されたポリゴンを消去し、前記選択されたポリゴンを前記分割面により分割することにより得られる新たなポリゴンの頂点を、前記分割面により分割されない辺の頂点とされる制御点ならびに前記分割面により分割される辺の交点に対する制御点とする頂点情報を、前記記憶部に記憶させることにより、新たなポリゴンを生成し、前記記憶部に記憶される分割面と交差するポリゴンが属するグループに対するグループ情報を、前記分割面に対して当該ポリゴンの頂点がいずれの側にあるか、ならびに、当該ポリゴンが共通する辺を有することにより連結されているか、により、複数のグループ情報に分割し、当該複数のグループ情報に対する基準位置および基準向きを、当該分割前のグループ情報に対する基準位置および基準向きとする分割部
を備えることを特徴とする画像生成装置。
An initial position and an initial orientation of a plurality of bones connected to each other, an initial position of a plurality of control points, dependency information representing weights on which each of the plurality of control points depends on each of the plurality of bones, and a plurality of Vertex information indicating which of the plurality of control points each of the polygons has as a vertex, group information indicating which group each of the plurality of polygons belongs to, and a virtual space for each of the groups A storage unit for storing a reference position and a reference orientation;
When the relative direction in which the plurality of bones are connected to each other is changed, the initial position of each of the plurality of bones, the position from the initial direction, and the amount of change in the direction (hereinafter referred to as “bone change amount”). Bone moving part for
For each of the plurality of control points, the position of the control point is moved from the stored initial position in conjunction with the movement of each of the plurality of bones by the obtained change amount. A change amount of the position of the control point (hereinafter referred to as “linked change amount”) is obtained, and a weighted average is obtained by applying a weight that the control point depends on the bone to each of the obtained linked change amounts. A control point moving unit for obtaining a change amount of the position of the control point (hereinafter referred to as “control point change amount”),
For each of the plurality of polygons, the relative position of the vertex of the polygon relative to the reference position and the reference orientation with respect to the group to which the polygon belongs is set as the control point change amount obtained for the control point with respect to the vertex. An arrangement unit for arranging the polygon in the virtual space;
A selection unit that selects polygons whose sides of the polygons intersect with the division planes arranged in the virtual space, among the plurality of polygons belonging to the same group,
In the selected polygon, the intersection of the sides intersecting with the dividing plane is obtained as an internal ratio for internally dividing between the vertices of the side, and the control points that are the vertices of the side are stored in the storage unit. A position (hereinafter referred to as “internal division position”) that internally divides between the initial positions obtained by the obtained internal division ratio, and the obtained internal division position is set as the initial position of a new control point. Storing in the storage unit, mixing the dependency information for the control point to be the vertex of the side, storing the mixed result as dependency information for the new control point in the storage unit, and selecting the selected By deleting the vertex information for the selected polygon from the storage unit, the divided polygon is deleted, and the vertex of a new polygon obtained by dividing the selected polygon by the dividing surface is changed to the dividing surface. By storing in the storage unit vertex information as control points that are vertices of sides that are not further divided and intersection points of sides that are divided by the dividing plane, a new polygon is generated, and the storage unit The group information for the group to which the polygon intersecting the division plane stored in is connected by the side where the vertex of the polygon is on the division plane and the side having the common polygon. Or a division unit that divides the information into a plurality of pieces of group information and sets the reference position and reference direction for the plurality of group information as the reference position and reference direction for the group information before the division. Generator.
請求項1に記載の画像生成装置であって、
前記記憶部に記憶されるグループ情報のそれぞれに対する基準位置および基準向きを変化させ、前記配置部に前記複数のポリゴンを再度配置させるグループ移動部、
前記仮想空間に配置された複数のポリゴンを、当該仮想空間に配置される視点から当該仮想空間に配置される視線の方向に見た様子を表す画像を生成する生成部
をさらに備えることを特徴とする画像生成装置。
The image generation apparatus according to claim 1,
A group moving unit that changes a reference position and a reference orientation for each of the group information stored in the storage unit, and re-arranges the plurality of polygons in the arrangement unit;
And a generation unit that generates an image representing a state in which the plurality of polygons arranged in the virtual space are viewed from the viewpoint arranged in the virtual space in the direction of the line of sight arranged in the virtual space. An image generating device.
請求項1または2に記載の画像生成装置であって、
前記分割部は、前記分割面と交差する辺の頂点に対する依存情報のそれぞれの重みを前記内分比で内分することにより当該依存情報を混合して、当該内分された結果の依存情報を前記新たな制御点に対する依存情報とする
ことを特徴とする画像生成装置。
The image generating apparatus according to claim 1 or 2,
The dividing unit mixes the dependency information by internally dividing the respective weights of the dependency information with respect to the vertices of the sides intersecting the dividing plane by the internal division ratio, and obtains the dependency information as a result of the internal division. An image generating apparatus characterized in that the information is dependent information on the new control point.
請求項3に記載の画像生成装置であって、
前記依存情報のそれぞれにおいて、非0である重みの個数には上限があり、前記内分された結果の依存情報において非0である重みの個数が当該上限を超える場合、当該重みが小さい順に、当該重みを0に修正して、前記混合結果の依存情報における非0である重みの個数を当該上限とする
ことを特徴とする画像生成装置。
The image generation device according to claim 3,
In each of the dependency information, there is an upper limit for the number of non-zero weights, and when the number of non-zero weights in the internally divided result dependency information exceeds the upper limit, the weights are in ascending order. The image generation apparatus, wherein the weight is corrected to 0 and the number of non-zero weights in the dependency information of the mixing result is set as the upper limit.
請求項1から4のいずれか1項に記載の画像生成装置であって、
前記複数のポリゴンはいずれも三角形であり、
前記選択されたポリゴンが、点A、B、Cを頂点とする三角形ABCであり、辺ABが、交点Dで分割され、辺ACが、交点Eで分割され、角EDCと角DCBの和が角DEBと角EBCの和以下である場合、前記新たなポリゴンを、三角形ADE、三角形DEB、三角形EBCとする
ことを特徴とする画像生成装置。
The image generation apparatus according to any one of claims 1 to 4, wherein:
Each of the plurality of polygons is a triangle,
The selected polygon is a triangle ABC having points A, B, and C as vertices, the side AB is divided at the intersection D, the side AC is divided at the intersection E, and the sum of the angles EDC and DCB is obtained. The image generating apparatus according to claim 1, wherein the new polygon is a triangle ADE, a triangle DEB, or a triangle EBC when the angle is less than or equal to a sum of a corner DEB and a corner EBC.
請求項1から5のいずれか1項に記載の画像生成装置であって、
前記複数のボーンは、各ボーンをノードとし、連結された2つのボーンのうち、一方のボーンを親ノードに、他方のボーンを子ノードに、それぞれ割り当てた木構造に階層化され、親ノードのボーン(以下「親ボーン」という。)に固定された座標系における子ノードのボーン(以下「子ボーン」という。)が当該親ボーンに連結される連結点の座標、ならびに、当該子ボーンの向きを表すオイラー角もしくはクォータニオンにより、当該子ボーンの初期位置および初期向きが表現され、
前記ボーン移動部は、前記子ボーンの向きを表すオイラー角もしくはクォータニオンを変化させることにより、当該親ボーンに対する当該子ボーンの相対的な向きを変化させる
ことを特徴とする画像生成装置。
The image generation apparatus according to any one of claims 1 to 5,
The plurality of bones are hierarchized into a tree structure in which each bone is a node and one of the two connected bones is assigned as a parent node and the other bone as a child node. The coordinates of the connection point where the bone of the child node (hereinafter referred to as “child bone”) in the coordinate system fixed to the bone (hereinafter referred to as “parent bone”) is connected to the parent bone, and the direction of the child bone The initial position and orientation of the child bone are represented by Euler angles or quaternions representing
The bone moving unit changes the relative direction of the child bone with respect to the parent bone by changing an Euler angle or a quaternion representing the direction of the child bone.
互いに連結された複数のボーンの初期位置および初期向きと、複数の制御点の初期位置と、当該複数の制御点のそれぞれが前記複数のボーンのそれぞれに依存する重みを表す依存情報と、複数のポリゴンのそれぞれが前記複数の制御点のいずれを頂点とするかを表す頂点情報と、前記複数のポリゴンのそれぞれがいずれのグループに属するかを表すグループ情報と、前記グループのそれぞれに対する仮想空間内の基準位置および基準向きと、が記憶される記憶部、ボーン移動部、制御点移動部、配置部、選択部、分割部、を有する画像処理装置が実行する画像処理方法であって、
前記ボーン移動部が、前記複数のボーンが互いに連結される相対的な向きを変化させるときの、前記複数のボーンのそれぞれの前記初期位置および前記初期向きからの位置ならびに向きの変化量(以下「ボーン変化量」という。)を求めるボーン移動工程、
前記制御点移動部が、前記複数の制御点のそれぞれについて、前記複数のボーンのそれぞれが前記求められた変化量だけ移動するのに連動して、当該制御点の位置を前記記憶される初期位置から移動するときの、当該制御点の位置の変化量(以下「連動変化量」という。)を求め、当該求められた連動変化量のそれぞれに、当該制御点が当該ボーンに依存する重みを適用して重み付き平均をとることにより、当該制御点の位置の変化量(以下「制御点変化量」という。)を求める制御点移動工程、
前記配置部が、前記複数のポリゴンのそれぞれについて、当該ポリゴンが属するグループに対する基準位置および基準向きに対する当該ポリゴンの頂点の相対的な位置を、当該頂点に対する制御点について前記求められた制御点変化量とすることにより、当該ポリゴンを当該仮想空間内に配置する配置工程、
前記選択部が、前記複数のポリゴンのうち、同じグループに属するポリゴンについて、当該ポリゴンの有する辺が前記仮想空間に配置された分割面と交差するポリゴンを選択する選択工程、
前記分割部が、前記選択されたポリゴンにおいて、前記分割面と交差する辺の交点が、当該辺の頂点の間を内分する内分比を求め、当該辺の頂点とされる制御点について前記記憶部に記憶される初期位置の間を、当該求められた内分比で内分する位置(以下「内分位置」という。)を求め、当該求められた内分位置を新たな制御点の初期位置として、前記記憶部に記憶させ、当該辺の頂点とされる制御点に対する依存情報を当該混合して、当該混合した結果を、当該新たな制御点に対する依存情報として、前記記憶部に記憶させ、前記選択されたポリゴンに対する頂点情報を、前記記憶部から削除することにより、分割されたポリゴンを消去し、前記選択されたポリゴンを前記分割面により分割することにより得られる新たなポリゴンの頂点を、前記分割面により分割されない辺の頂点とされる制御点ならびに前記分割面により分割される辺の交点に対する制御点とする頂点情報を、前記記憶部に記憶させることにより、新たなポリゴンを生成し、前記記憶部に記憶される分割面と交差するポリゴンが属するグループに対するグループ情報を、前記分割面に対して当該ポリゴンの頂点がいずれの側にあるか、ならびに、当該ポリゴンが共通する辺を有することにより連結されているか、により、複数のグループ情報に分割し、当該複数のグループ情報に対する基準位置および基準向きを、当該分割前のグループ情報に対する基準位置および基準向きとする分割工程
を備えることを特徴とする画像生成方法。
An initial position and an initial orientation of a plurality of bones connected to each other, an initial position of a plurality of control points, dependency information representing weights on which each of the plurality of control points depends on each of the plurality of bones, and a plurality of Vertex information indicating which of the plurality of control points each of the polygons has as a vertex, group information indicating which group each of the plurality of polygons belongs to, and a virtual space for each of the groups An image processing method executed by an image processing apparatus having a storage unit in which a reference position and a reference orientation are stored, a bone moving unit, a control point moving unit, an arrangement unit, a selecting unit, and a dividing unit,
When the bone moving unit changes the relative direction in which the plurality of bones are connected to each other, the initial position of each of the plurality of bones, the position from the initial direction, and the amount of change in the direction (hereinafter, “ Bone movement process to obtain the bone change amount)
The control point moving unit moves the position of the control point to the stored initial position in conjunction with the movement of each of the plurality of bones by the calculated change amount for each of the plurality of control points. The amount of change in the position of the control point when moving from the position (hereinafter referred to as “linked change amount”) is calculated, and the weight that the control point depends on the bone is applied to each of the calculated change amounts Then, by taking a weighted average, a control point moving step for obtaining a change amount of the position of the control point (hereinafter referred to as “control point change amount”);
For each of the plurality of polygons, the placement unit calculates a reference position with respect to a group to which the polygon belongs and a relative position of the vertex of the polygon with respect to a reference orientation, and the control point variation obtained for the control point with respect to the vertex. An arrangement step of arranging the polygon in the virtual space,
A selection step in which the selection unit selects, among the plurality of polygons, polygons belonging to the same group, polygons whose sides of the polygons intersect with a division plane arranged in the virtual space;
In the selected polygon, the dividing unit obtains an internal ratio by which the intersection of the sides intersecting the dividing plane internally divides between the vertices of the side, and the control points that are the vertices of the side A position (hereinafter referred to as an “internal division position”) that internally divides between the initial positions stored in the storage unit at the obtained internal division ratio is obtained, and the obtained internal division position is determined as a new control point. The initial position is stored in the storage unit, the dependency information on the control point that is the vertex of the side is mixed, and the mixed result is stored in the storage unit as dependency information on the new control point. And deleting the vertex information for the selected polygon from the storage unit, thereby deleting the divided polygon and dividing the selected polygon by the dividing plane to obtain a new polygon vertex. , By storing in the storage unit the control point that is the vertex of the side that is not divided by the division plane and the vertex information that is the control point for the intersection of the side that is divided by the division plane, thereby generating a new polygon , Group information for a group to which a polygon intersecting the division plane stored in the storage unit belongs, on which side the vertex of the polygon is located with respect to the division plane, and the polygon has a common side A division step of dividing the plurality of group information into a reference position and a reference orientation for the group information before the division. A featured image generation method.
コンピュータを、
互いに連結された複数のボーンの初期位置および初期向きと、複数の制御点の初期位置と、当該複数の制御点のそれぞれが前記複数のボーンのそれぞれに依存する重みを表す依存情報と、複数のポリゴンのそれぞれが前記複数の制御点のいずれを頂点とするかを表す頂点情報と、前記複数のポリゴンのそれぞれがいずれのグループに属するかを表すグループ情報と、前記グループのそれぞれに対する仮想空間内の基準位置および基準向きと、が記憶される記憶部、
前記複数のボーンが互いに連結される相対的な向きを変化させるときの、前記複数のボーンのそれぞれの前記初期位置および前記初期向きからの位置ならびに向きの変化量(以下「ボーン変化量」という。)を求めるボーン移動部、
前記複数の制御点のそれぞれについて、前記複数のボーンのそれぞれが前記求められた変化量だけ移動するのに連動して、当該制御点の位置を前記記憶される初期位置から移動するときの、当該制御点の位置の変化量(以下「連動変化量」という。)を求め、当該求められた連動変化量のそれぞれに、当該制御点が当該ボーンに依存する重みを適用して重み付き平均をとることにより、当該制御点の位置の変化量(以下「制御点変化量」という。)を求める制御点移動部、
前記複数のポリゴンのそれぞれについて、当該ポリゴンが属するグループに対する基準位置および基準向きに対する当該ポリゴンの頂点の相対的な位置を、当該頂点に対する制御点について前記求められた制御点変化量とすることにより、当該ポリゴンを当該仮想空間内に配置する配置部、
前記複数のポリゴンのうち、同じグループに属するポリゴンについて、当該ポリゴンの有する辺が前記仮想空間に配置された分割面と交差するポリゴンを選択する選択部、
前記選択されたポリゴンにおいて、前記分割面と交差する辺の交点が、当該辺の頂点の間を内分する内分比を求め、当該辺の頂点とされる制御点について前記記憶部に記憶される初期位置の間を、当該求められた内分比で内分する位置(以下「内分位置」という。)を求め、当該求められた内分位置を新たな制御点の初期位置として、前記記憶部に記憶させ、当該辺の頂点とされる制御点に対する依存情報を当該混合して、当該混合した結果を、当該新たな制御点に対する依存情報として、前記記憶部に記憶させ、前記選択されたポリゴンに対する頂点情報を、前記記憶部から削除することにより、分割されたポリゴンを消去し、前記選択されたポリゴンを前記分割面により分割することにより得られる新たなポリゴンの頂点を、前記分割面により分割されない辺の頂点とされる制御点ならびに前記分割面により分割される辺の交点に対する制御点とする頂点情報を、前記記憶部に記憶させることにより、新たなポリゴンを生成し、前記記憶部に記憶される分割面と交差するポリゴンが属するグループに対するグループ情報を、前記分割面に対して当該ポリゴンの頂点がいずれの側にあるか、ならびに、当該ポリゴンが共通する辺を有することにより連結されているか、により、複数のグループ情報に分割し、当該複数のグループ情報に対する基準位置および基準向きを、当該分割前のグループ情報に対する基準位置および基準向きとする分割部
として機能させることを特徴とするプログラム。
Computer
An initial position and an initial orientation of a plurality of bones connected to each other, an initial position of a plurality of control points, dependency information representing weights on which each of the plurality of control points depends on each of the plurality of bones, and a plurality of Vertex information indicating which of the plurality of control points each of the polygons has as a vertex, group information indicating which group each of the plurality of polygons belongs to, and a virtual space for each of the groups A storage unit for storing a reference position and a reference orientation;
When the relative direction in which the plurality of bones are connected to each other is changed, the initial position of each of the plurality of bones, the position from the initial direction, and the amount of change in the direction (hereinafter referred to as “bone change amount”). Bone moving part for
For each of the plurality of control points, the position of the control point is moved from the stored initial position in conjunction with the movement of each of the plurality of bones by the obtained change amount. A change amount of the position of the control point (hereinafter referred to as “linked change amount”) is obtained, and a weighted average is obtained by applying a weight that the control point depends on the bone to each of the obtained linked change amounts. A control point moving unit for obtaining a change amount of the position of the control point (hereinafter referred to as “control point change amount”),
For each of the plurality of polygons, the relative position of the vertex of the polygon relative to the reference position and the reference orientation with respect to the group to which the polygon belongs is set as the control point change amount obtained for the control point with respect to the vertex. An arrangement unit for arranging the polygon in the virtual space;
A selection unit that selects polygons whose sides of the polygons intersect with the division planes arranged in the virtual space, among the plurality of polygons belonging to the same group,
In the selected polygon, the intersection of the sides intersecting with the dividing plane is obtained as an internal ratio for internally dividing between the vertices of the side, and the control points that are the vertices of the side are stored in the storage unit. A position (hereinafter referred to as “internal division position”) that internally divides between the initial positions obtained by the obtained internal division ratio, and the obtained internal division position is set as the initial position of a new control point. Storing in the storage unit, mixing the dependency information for the control point to be the vertex of the side, storing the mixed result as dependency information for the new control point in the storage unit, and selecting the selected By deleting the vertex information for the selected polygon from the storage unit, the divided polygon is deleted, and the vertex of a new polygon obtained by dividing the selected polygon by the dividing surface is changed to the dividing surface. By storing in the storage unit vertex information as control points that are vertices of sides that are not further divided and intersection points of sides that are divided by the dividing plane, a new polygon is generated, and the storage unit The group information for the group to which the polygon intersecting the division plane stored in is connected by the side where the vertex of the polygon is on the division plane and the side having the common polygon. Is divided into a plurality of group information, and the reference position and reference direction for the plurality of group information are made to function as a dividing unit that sets the reference position and reference direction for the group information before the division. program.
JP2009216332A 2009-09-18 2009-09-18 Image processing apparatus, image processing method, and program Active JP4815521B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009216332A JP4815521B2 (en) 2009-09-18 2009-09-18 Image processing apparatus, image processing method, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009216332A JP4815521B2 (en) 2009-09-18 2009-09-18 Image processing apparatus, image processing method, and program

Publications (2)

Publication Number Publication Date
JP2011065492A JP2011065492A (en) 2011-03-31
JP4815521B2 true JP4815521B2 (en) 2011-11-16

Family

ID=43951652

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009216332A Active JP4815521B2 (en) 2009-09-18 2009-09-18 Image processing apparatus, image processing method, and program

Country Status (1)

Country Link
JP (1) JP4815521B2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102311957B1 (en) * 2015-07-29 2021-10-13 주식회사 넥슨코리아 Apparatus for providing game and method thereof
JP6487083B1 (en) * 2018-03-07 2019-03-20 株式会社スクウェア・エニックス Skinning decomposition acceleration method and skinning decomposition acceleration program considering locality of weight map
CN117274449B (en) * 2023-11-15 2024-02-09 唯物(杭州)科技有限公司 Method and system for generating bones based on model

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4053078B2 (en) * 1996-07-03 2008-02-27 株式会社バンダイナムコゲームス 3D game device and information storage medium
JP3340970B2 (en) * 1998-11-26 2002-11-05 株式会社スクウェア Game device, image processing method, and computer-readable information recording medium recording program
JP4632596B2 (en) * 2001-09-10 2011-02-16 株式会社バンダイナムコゲームス Image generation system, program, and information storage medium
JP4199764B2 (en) * 2005-11-29 2008-12-17 株式会社コナミデジタルエンタテインメント Skin control point position calculation device, calculation method, and program
JP4408910B2 (en) * 2007-03-16 2010-02-03 株式会社コナミデジタルエンタテインメント Character display device, character display method, and program

Also Published As

Publication number Publication date
JP2011065492A (en) 2011-03-31

Similar Documents

Publication Publication Date Title
JP4519883B2 (en) Character display device, character display method, and program
JP4037889B2 (en) Image generating apparatus, image generating method, and program
US20100231590A1 (en) Creating and modifying 3d object textures
JP2006122241A (en) Game device and game program
JP4612031B2 (en) Image generating apparatus, image generating method, and program
JP4976473B2 (en) Image generating apparatus, image generating method, and program
JP4187748B2 (en) Image generating apparatus, image generating method, and program
KR20210142200A (en) Modification of animated characters
JP4019095B2 (en) Audio processing apparatus, audio processing method, and program
JP4815521B2 (en) Image processing apparatus, image processing method, and program
JP4267646B2 (en) Image generating apparatus, image generating method, and program
JP4199764B2 (en) Skin control point position calculation device, calculation method, and program
JP4244352B2 (en) Image generating apparatus, image generating method, and program
JP4563461B2 (en) Image generating apparatus, image generating method, and program
JP4468974B2 (en) Image generating apparatus, image generating method, and program
JP4579964B2 (en) Image generating apparatus, image generating method, and program
JP5155262B2 (en) Image generating apparatus, image generating method, and program
JP4159060B2 (en) Image generating apparatus and information storage medium
JP4287479B2 (en) Image generating apparatus, image generating method, and program
JP4113179B2 (en) Simulation apparatus, simulation method, and program
JP4726355B2 (en) Image processing apparatus and image processing program
JP2005293259A (en) Three-dimensional tree form generating device and program, and recording medium
JP4068093B2 (en) Simulation apparatus, simulation method, and program
KIM DESIGN AND EVALUATION OF A MOBILE 3D ARCADE GAME WITH MESH CLIPPING
JP2006271705A (en) Processing device and processing method of numeric value group, and program

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110725

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

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

R150 Certificate of patent or registration of utility model

Ref document number: 4815521

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

Year of fee payment: 3

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

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250