WO2014119524A1 - 三次元オブジェクトの多視点描画装置、方法、及びプログラム - Google Patents

三次元オブジェクトの多視点描画装置、方法、及びプログラム Download PDF

Info

Publication number
WO2014119524A1
WO2014119524A1 PCT/JP2014/051722 JP2014051722W WO2014119524A1 WO 2014119524 A1 WO2014119524 A1 WO 2014119524A1 JP 2014051722 W JP2014051722 W JP 2014051722W WO 2014119524 A1 WO2014119524 A1 WO 2014119524A1
Authority
WO
WIPO (PCT)
Prior art keywords
vertex
pseudo
image
node
viewpoint
Prior art date
Application number
PCT/JP2014/051722
Other languages
English (en)
French (fr)
Inventor
宇都木 契
陽介 川上
兼太郎 山口
Original Assignee
株式会社セルシス
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
Priority claimed from JP2013018911A external-priority patent/JP5792210B2/ja
Priority claimed from JP2013018912A external-priority patent/JP5792211B2/ja
Application filed by 株式会社セルシス filed Critical 株式会社セルシス
Publication of WO2014119524A1 publication Critical patent/WO2014119524A1/ja
Priority to US14/815,004 priority Critical patent/US9881417B2/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/10Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • G06T13/403D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/02Non-photorealistic rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/20Perspective computation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/20Perspective computation
    • G06T15/205Image-based rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/04Indexing scheme for image data processing or generation, in general involving 3D image data

Definitions

  • the present invention relates to a technique for drawing a three-dimensional object by projecting from a plurality of viewpoints.
  • FIG. 1 shows an example in which exaggerated images are compared. Comparing the images of FIG. 1 (A) and FIG. 1 (B), FIG. 1 (B) shows that the foot tip 102 is drawn larger than the foot tip 101 of FIG. The depth expression is clear and impressive. The image rendered with the correct perspective projection is shown in FIG. On the other hand, the image of FIG. 1B is an image in which the depth expression is exaggerated by enlarging the difference in the size of the appearance of the toes protruding forward. In this specification, such an image is referred to as an “exaggerated image”.
  • Non-Patent Document 1 Non-Patent Document 2, Non-Patent Document 3, and Non-Patent Document 4.
  • the purpose is to draw exaggerated images easily from 3D models.
  • an apparatus for rendering a three-dimensional model including a plurality of nodes existing in a three-dimensional space using a plurality of viewpoints, and each of the plurality of nodes and the plurality of viewpoints.
  • Drawing information including correspondence with each, the degree of influence of each of the plurality of nodes regarding the drawing position of each vertex of the plurality of polygons constituting the three-dimensional model, and drawing parameters of each of the plurality of viewpoints
  • a CPU for converting the three-dimensional model into an image by the plurality of polygons using the drawing information, wherein the CPU is configured to store vertexes of the plurality of polygons. For each, the drawing position of the vertex is calculated using the viewpoint corresponding to the node to which the vertex belongs, and the calculated drawing position of the vertex is calculated based on the degree of influence. Forward, the drawing device is provided.
  • the exaggerated image can be easily drawn from the 3D model.
  • FIG. It is a figure which shows the example of a joint and an envelope. It is a figure which shows the flow of conversion of the vertex of the polygon which considered the influence degree of the bone. It is a figure which shows the flow of the conversion of the vertex by the modification of Example 2.
  • FIG. It is the figure which showed the example which overlap arises in drawing. It is a figure which shows the example which avoids the superimposition which the expansion of the image by exaggerated drawing brings. It is a figure which shows the example of the flow which avoids a superimposition. It is a figure which shows the movement of the target point by the movement of the two-dimensional image of a pseudo viewpoint position. It is a figure which shows the processing flow for animation smoothing. It is a figure which shows the flow of the setting of the exaggeration parameter to each site
  • a 3D model may be called an object.
  • a part of the 3D model (object) may be called a partial object.
  • the shape data of the CG model can be composed of a large number of triangular surfaces, for example.
  • the vertex data of each triangle is held as a set of three-dimensional floating point data (three-dimensional vector (x, y, z)).
  • FIG. 2 shows a vector conversion process.
  • FIG. 2A shows an example in which the vector v 0 is rotated to the vector v 1 by an angle ⁇ around the x axis by the rotation matrix R.
  • FIG. 2B shows an example in which the vector v 0 is translated into the vector v 2 by t x in the x-axis direction, t y in the y-axis direction, and t z in the z-axis direction by the movement matrix T. ing.
  • This conversion process can be expressed as follows.
  • FIG. 2C shows an example in which the vector v 0 is enlarged or reduced to the vector v 3 by the scaling transformation matrix S.
  • a conversion process that is enlarged or reduced by s x in the x-axis direction, s y in the y-axis direction, and s z in the z-axis direction can be expressed as follows.
  • M is expressed as follows.
  • Equation 3.5 if the order of multiplication of the matrices is different, a different conversion result is obtained. Further, in the following description, it is described using an abbreviated notation such as vx when the x component of the vector v is used and v.xy when the x component and the y component of the vector v are used. Further, when a matrix is multiplied like Mv.xy, it represents (Mv) .xy.
  • the entire model can be decomposed as a collection of subelements.
  • the “partial element” may be referred to as a “bone”.
  • a set of vertex data belonging to a certain subelement is called a segment.
  • a model in which each partial element is connected to an adjacent partial element at a “joint point” (“joint point”) and does not deform other than rotating around each other at the joint point is called a rigid joint model.
  • a unit of a group composed of joints and segments is called a “node”.
  • the modeling matrix of the node whose ID number that identifies the subelement is m is described as M m .
  • a joint point of node m (a point connected to a parent in the following parent-child relationship) is denoted as “joint m”, and a vector representing the position is denoted as j m .
  • FIG. 3 shows a rigid joint model of the human body.
  • a rigid joint model will be described as an example for easy understanding.
  • the present invention is not limited to the rigid joint model.
  • FIG. 3A in the rigid joint model, it is desirable to set a parent-child relationship between nodes connected to each other.
  • FIG. 3B it is expressed by a tree structure that is continuous from the highest parent node (root node).
  • Such a methodology for controlling a joint model that can be calculated in order from the top in a simple tree structure is called forward kinematics.
  • the parent node 302 (node n)
  • the child node 304 (node m) can have only a rotational motion around the joint m as a degree of freedom.
  • a viewpoint matrix V and a projection matrix P are used.
  • the viewpoint matrix represents the position and direction of the camera (viewpoint), and the projection matrix represents a rule for projecting three-dimensional information into two dimensions.
  • the viewpoint matrix V is defined by combining a parallel movement that converts the viewpoint position e 0 to the origin and a rotation matrix that sets the camera direction ⁇ 0 as the Z axis.
  • Projection matrix P is a matrix of the following format, for example.
  • FIG. 4 shows an example of a process for creating a CG image. This process example is specifically configured as follows.
  • step 402 conditions for placing the character model in the scene and the pose of the joint model are determined.
  • step 404 camera parameters are given and the viewpoint position, direction, and / or angle of view are set.
  • step 406 the coordinates of each vertex constituting the model are calculated, and projective transformation is performed.
  • step 408 the pixel on the surface stretched on the vertex is filled (rasterization is performed).
  • each of a plurality of nodes Correspondence between each of a plurality of nodes and each of a plurality of viewpoints, the degree of influence each of the plurality of nodes has on the drawing position of each vertex of a plurality of polygons constituting the three-dimensional model, and each of the plurality of viewpoints Information including drawing parameters is called drawing information.
  • the node positions are determined in the order of connection from the parent node.
  • Node m is connected to its parent node n by joint m.
  • the position of the joints m in elementary pose j 0 m, the position of the joint m after rotating reads pose a j m.
  • the modeling matrix M m of this node is determined as follows (FIG. 5B).
  • the transformation M m p is a process for applying pose information to the point p associated with the node m.
  • the transformation M m p is an operation for rotating the joint m by R m around the joint m, and the position j m of the joint m (depending on the transformation M n of the parent node). Obtained from).
  • Ie: j m M n j 0 m
  • R m R 0 m
  • R n M m p R m (pj 0 m ) + M n j 0 m (C)
  • the operation (b) can be repeated from the parent node to the child node to obtain the modeling matrix M for all the nodes.
  • Step 404 Camera Arrangement (Camera Parameter Setting)] Camera parameters (viewpoint position e, camera direction ⁇ , angle of view) are set, and a viewpoint matrix V and a projection matrix P are created from these information. The angle of view corresponds to the focal length of the camera lens.
  • the matrix of the above-mentioned format is set as follows.
  • p 00 and p 11 are respectively the horizontal and vertical field angles (the reciprocal of half the tangent).
  • Step 406 Vertex Conversion
  • the vertex is finally mapped to a point (x / w, y / w) on the 2D image.
  • the depth value z / w is obtained from this calculation. This depth value is used for sorting to compare the depth order of the surfaces. Details of this point will be described later.
  • Step 408 Filling in pixels] Fill the pixels on the two-dimensional image (perform rasterization).
  • the drawing order becomes important.
  • the surfaces are sorted using the depth value z / w obtained by the vertex conversion, and the drawing is performed from the farthest surface and overwritten with the near surface.
  • the above standard drawing method performs geometric projection from 3D to 2D by the perspective projection matrix P.
  • an exaggerated video generation method will be described in comparison with this video generation procedure.
  • Shape processing As an example of realizing the former method of processing the part of the CG model, there is an example of a Pencil + 3 perspective modification modifier (for example, see Non-Patent Document 1).
  • This example creates an image that gives different lens parameters depending on the Z depth of CG. Since the model shape is processed in accordance with the Z depth, when an object other than a character, for example, a background model is shown in the same scene, the model at the corresponding depth may be distorted.
  • This MPR creates a video by combining image fragments from different viewpoints into a single picture.
  • Patent Document 1 proposes a method of reducing parallax by enlarging and expressing an object that has popped out from the display surface table of a stereoscopic image using this method.
  • non-patent literature 3 and non-patent literature 4 propose examples of the above-described method for creating an exaggerated image using MPR.
  • FIG. 6 shows an example of a cylindrical perspective exaggeration expression.
  • a cylinder corresponding to node m and its central axis are drawn.
  • FIG. 6A shows a normal perspective.
  • FIG. 6B the difference in the apparent enlargement ratio depending on the distance (difference between the circle 602 and the circle 604) can be greatly exaggerated.
  • a central axis is set on the cylinder, and its end points are used as feature points.
  • a three-dimensional point at the base of the cylinder is a joint m, and its position is a point j m .
  • the three-dimensional point at the tip of the cylinder is called “target m”, and its position is t m .
  • FIG. 7 shows the perspective control by the movement of the camera and the view angle operation. It is the schematic diagram which showed the relationship between the camera and the angle of view in this process. While the camera position is moved from d 2 to d 1 and the angle of view (half) is increased from ⁇ 2 to ⁇ 1 , the top surface t m of the cylinder is shown large, but the plane including the bottom surface j m of the cylinder It is possible to prevent the appearance from changing substantially.
  • FIG. 8 is a schematic diagram when a joint model is drawn by this method. As shown in FIG. 8, a dedicated camera is prepared for each of the parts delimited by the joints, and these are called “pseudo cameras”. These pseudo cameras are arranged at different positions, and each part is photographed. FIG. 8B to FIG. 8D are images of the same pose model taken by three different pseudo cameras. FIG. 8A shows an exaggerated image created by connecting these three types of images at the joints, as indicated by arrows 802, 804, and 806.
  • FIG. 8 shows an example of exaggerated expression of the joint model.
  • the pose balance on the two-dimensional image may be lost if each of the pseudo cameras is brought close to the model.
  • the line segment from j m to t m indicating the axis of the cylinder occupies the same position in two dimensions, and the visual perspective around point t m increases. Can be made. Note that the present invention is not limited to the above-described method.
  • the node part holds the following data:
  • (A) Information that is preferably stored in advance is as follows. -Target point position t 0 m in the basic pose -Joint point position j 0 m in the basic pose ⁇ Exaggeration factor ⁇ m -Link n to parent node
  • (A) Information dynamically determined is as follows. ⁇ Current target point position t m ⁇ Current joint point position j m ⁇ Modeling matrix M m ⁇ Pseudo viewpoint position e m ⁇ Pseudo viewpoint matrix V m ⁇ Pseudo projection matrix P m
  • the configuration of each vertex is as follows.
  • (C) Information preferably stored in advance is as follows.
  • Vertex position p 0 [x, y, z, 1] T in the basic pose
  • the drawing process of the basic method is similar to that shown in FIG. 4, but the following example will be described on the assumption that the following basic method is used.
  • the present invention is not limited to this basic method. It is desirable to prepare and use a plurality of viewpoint matrices and projection matrices in camera placement (step 404) and vertex conversion (step 406). Hereinafter, the details will be described with reference to FIG. 4 again.
  • Step 402 Determination of Pause
  • Step 404 Arrange Camera
  • basic camera parameters viewpoint position e 0 , camera direction ⁇ 0 , angle of view
  • a viewpoint matrix V 0 and a projection matrix P 0 are created.
  • a matrix having the format described above is set.
  • p 00 and p 11 are respectively the horizontal and vertical field angles (the reciprocal of half the tangent).
  • camera parameters For each segment m, camera parameters (viewpoint position, camera direction, angle of view) are set. From these pieces of information, a viewpoint matrix V m and a projection matrix P m are created.
  • Step 404-1 Determine the temporary position of the pseudo viewpoint] Determine the position of the pseudo viewpoint.
  • this ratio is called “exaggeration coefficient” and the value is ⁇ m .
  • the degree of exaggeration can be adjusted by the exaggeration coefficient. The greater the exaggeration factor, the higher the degree of exaggeration. If the exaggeration coefficient is 0, it is equal to the image seen from the pseudo viewpoint of the parent hierarchy.
  • the direction of the pseudo camera is preferably the same as the direction of the basic camera (non-pseudo camera).
  • a pseudo projection matrix P ′ m in which only the angle of view is corrected is created as follows.
  • the (0, 2) component and the (1, 2) component are corrected as follows with respect to the pseudo projection matrix P ′ m before setting the shift amount, and this is defined as P m .
  • pseudo cameras can be arranged in order from the parent node in a top-down manner.
  • Step 406 Vertex Conversion
  • Look up the node m corresponding to each vertex of the model (position coordinate in the basic pose is p 0 ), and use the pseudo viewpoint matrix and pseudo projection matrix of that node, and the field space in exaggerated expression by the following formula Calculate the position of. [x, y, z, w] T P m V m M m p 0
  • the vertex is mapped to a point (x / w, y / w) on the two-dimensional image.
  • Step 408 Filling in pixels
  • the pixels in the area surrounded by the vertices are filled.
  • the depth value z 0 / w 0 is drawn from the farthest surface and overwritten on the near surface.
  • Example 1 Smooth joining of joint parts
  • Example 2 Elimination of exaggeration inconsistency
  • Example 3 Smoothing processing of animation
  • Example 4 Setting of exaggeration coefficient pamelata
  • Example 5 Dynamic adjustment of exaggeration amount
  • Example 6 Picking process
  • a technique for expressing such a model a technique called skin mesh or envelope may be used.
  • a non-display object may be prepared, and the shape of the model may be changed according to the deformation.
  • a non-display rigid object called a skeleton or bone is set as a skeleton inside the model, and the pose is expressed by moving the skeleton.
  • FIG. 9 is an example of a bone 900 applied to a humanoid model.
  • the position of each vertex on the model surface is determined according to the rotation and movement of the bone.
  • a point that is influenced by two or more bones and interpolates each position determined according to the transformation of each bone may be set as the vertex position.
  • the following is an example of a method for creating a video for a model to which envelope processing is applied.
  • the viewpoint matrix and projection matrix are applied to the vertices to create a four-dimensional vector value of the homogeneous expression, and then divided by the w value. It is desirable to convert it into position information on the two-dimensional image. After that, it is desirable to perform an interpolation process according to the degree of influence.
  • FIG. 10 shows examples of joints and envelopes.
  • the three-dimensional model 1002 is composed of, for example, a large number of triangular surfaces (polygons), and holds the vertex data of each triangle as a three-dimensional vector.
  • the bone has a range that affects the vertex.
  • the geometric data for indicating the range in which the bone 1004 affects is called an envelope.
  • An inner boundary surface 1010 is set around the bone, and an outer boundary surface 1020 is set around the inner boundary surface 1010.
  • the degree of influence q from the bone to the vertex is 1.0 for the vertex inside the inner boundary surface 1010, 0.0 for the vertex outside the outer boundary surface 1020, and the distance from the two boundary surfaces for the vertex in between.
  • An interpolated value (polygon vertex value) may be given according to
  • one vertex is given an influence from a plurality of envelopes.
  • (A) Node configuration The information that is preferably stored in advance is as follows. -Target point position t 0 m in the basic pose -Joint point position j 0 m in the basic pose ⁇ Geometric model showing inner boundary surface (set of invisible vertices) -Geometric model showing external boundary surface (set of invisible vertices) ⁇ Exaggeration factor ⁇ m -Link n to parent node
  • the dynamically defined information is as follows.
  • the information that is preferably stored in advance is as follows.
  • ⁇ Vertex position p 0 in the basic pose Link to node (list) [m 0 , m 1 , m 2 ,..., m K-1 ]
  • Influence (list) [q 0 , q 1 , q 2 ,..., q K-1 ]
  • the dynamically defined information is as follows.
  • Step 402 Determination of Pause
  • This specific method may be executed in accordance with the basic embodiment described above.
  • Step 404 Arrange Camera
  • Camera parameters viewpoint position, camera direction, angle of view
  • a viewpoint matrix V m and a projection matrix P m are created. This specific method may be executed in accordance with the basic embodiment described above.
  • Vertex Conversion Vertex conversion may also be performed in accordance with the basic embodiment. Note that changes may be made in the following points.
  • FIG. 11 shows the details of the polygon vertex conversion flow that takes into account the influence of bones.
  • step 1102 it reads the position coordinates p 0 of the vertices of the polygon in the elementary pose.
  • step 110 parameters are initialized.
  • step 1106 a list of bones [m 0 , m 1 , m 2 ,..., M K-1 ] associated with each vertex of the polygon and the degree of influence [q 0 , q 1 , q 2 ,. , q K-1 ].
  • K represents the number of bones affecting the vertex, and each vertex has a unique value.
  • step 1110 the vertices are mapped to points on the two-dimensional image, and multiplied by the degree of influence. ( ⁇ q k (x k / w k ), ⁇ q k (y k / w k ))
  • Step 1112 and Step 1120 it is repeated K times.
  • step 1112 the depth value is calculated with a normal projection matrix by the following calculation formula, and z 0 / w 0 is set as the depth depth value.
  • [x 0 , y 0 , z 0 , w 0 ] T PV ⁇ q k M mk p 0
  • step 1116 the vertex coordinates x, y and z of the polygon are synthesized.
  • step 1118 the above calculation is repeated for all vertices of the polygon.
  • Step 408 Filling in pixels
  • the pixels in the area surrounded by the vertices are filled.
  • the depth value z 0 / w 0 is drawn from the farthest surface and overwritten on the near surface. (It may be similar to the method described above.)
  • FIG. 12 shows a flow of vertex conversion according to a modification of the second embodiment.
  • step 406 vertex conversion phase in the method of the first embodiment, the calculation may be performed as follows.
  • step 1202 it reads the position coordinates p 0 of the vertices of the polygon in the elementary pose.
  • step 1204 parameters are initialized.
  • step 1206 a list of bones [m 0 , m 1 , m 2 ,..., M K-1 ] associated with each vertex of the polygon and the degree of influence [q 0 , q 1 , q 2 ,. , q K-1 ].
  • step 1212 the vertex conversion result is mapped to a point on the two-dimensional image, for example, by the following calculation formula. ( ⁇ q k (x k / w k ), ⁇ q k (y k / w k )) Steps 1214 and 1220 are repeated K times.
  • step 1216 the depth value is calculated with the normal projection matrix by the following calculation formula, and z 0 / w 0 is set as the depth depth value.
  • [x 0 , y 0 , z 0 , w 0 ] T PV ⁇ q k M mk p 0
  • step 1218 the vertex coordinates x, y and z of the polygon are synthesized.
  • step 1219 the above calculation is repeated for all the vertices of the polygon.
  • the interpolation work based on the influence q k is performed twice for the modeling matrix and the viewpoint / projection matrix.
  • the second embodiment shown below can improve the problems that occur because different projection matrices are applied to the respective parts.
  • an image is created with different camera parameters for each joint part. For this reason, a contradiction may occur in the positional relationship of the exaggerated parts.
  • FIG. 13 shows an example in which overlapping occurs in drawing.
  • An image without the perspective exaggeration (FIG. 13 (A)) and an image (FIG. 13 (B)) in which the drawing of both hands is overlapped by the processing of the perspective exaggeration are shown.
  • the image without Perth exaggeration FIG. 13 (A)
  • FIG. 13B the objects (both hand tips) are exaggerated and displayed as a large image, and as a result, they may be displayed overlapping each other. This is because the camera parameters set for the right hand and the left hand are created independently, and thus the hand image overlaps in the completed exaggerated image.
  • FIG. 13C shows an example in which processing for avoiding this overlap is performed.
  • the discomfort may be alleviated by moving the camera position to a three-dimensional center of gravity.
  • the moving operation since the amount by which the camera is moved cannot be specified, the moving operation may be repeated until the overlap can be avoided.
  • appropriate camera parameters may not be obtained.
  • the result changes depending on the initial condition of the iteration. For this reason, a result that satisfies the constraints on the image is not always obtained.
  • this method is applied to animation, even images of frames that are temporally continuous may not be continuous with each other and may become unnatural images. (This will be described later in Example 3)
  • Example 2 shown below can cope with such a problem.
  • FIG. 14 shows an example in which superimposition caused by image expansion by exaggerated drawing is avoided.
  • FIG. 14A shows a state in which drawing is overlapped due to exaggeration.
  • the position t m of the first target point and the position t k of the second target point are displayed.
  • a collision radius is defined in advance for each target point.
  • FIG. 14A shows a collision radius 1408 when exaggeration is not performed.
  • the other collision radii are similarly defined (not shown).
  • a collision area 1404 and a collision area 1414 when no exaggerated display is performed are shown.
  • a collision area 1406 and a collision area 1416 in the case of exaggerated display are shown, and both are drawn in an overlapping manner.
  • the reason for superimposing drawing is that the two points are exaggerated using two different viewpoints (two cameras).
  • FIG. 14B shows an example in which the operation of shifting the positions of the target point t m and the target point t k on the image by the vector 1450 and the vector 1460, respectively, is performed by changing the positions of the two viewpoints. Yes. Details of this operation will be described later.
  • the image 1406 moves to the image 1426
  • the image 1416 moves to the image 1436.
  • the exaggerated image 1426 and the exaggerated image 1436 are drawn without colliding.
  • a viewpoint matrix can be determined from this position and direction.
  • the angle of view information of the video is determined.
  • a projection matrix is determined from this angle of view.
  • the information on the viewpoint position, direction, and angle of view can be determined by the user according to the input information, or can be determined by information stored in advance. Changes in the image due to these changes are called so-called camera animation.
  • the node configuration is defined as follows.
  • the information that is preferably stored in advance is as follows. -Target point position t 0 m in the basic pose -Joint point position j 0 m in the basic pose ⁇ Collision radius r m ⁇ Exaggeration factor ⁇ m -Link n to parent node
  • the dynamically defined information is as follows.
  • Step 402 Determination of Pause
  • Step 404 Arrange Camera
  • step 1500 the joint and target positions are set.
  • the rotation angle information R m of each joint m read, oriented and position of the segment to determine the pose of the character. These pieces of information are applied to the basic method described above to create a matrix M m that performs movement transformation of each segment m.
  • the direction of the pseudo camera is preferably the same as the direction of the basic camera (non-pseudo camera).
  • a pseudo projection matrix P ′ m in which only the angle of view is corrected is created as follows.
  • the shift amount is set so that the images captured by the pseudo projection matrix of the nodes match.
  • step 1504 various information in the pseudo projection matrix is obtained. In order to examine whether the images collide with each other, the following values are calculated for the pseudo projection matrix of each node.
  • the two-dimensional image position of the target point is calculated.
  • the coordinates (x, y) on the screen imaged by the pseudo projection process P m V m are -1 ⁇ x ⁇ 1, -1 ⁇ y ⁇ 1.
  • a two-dimensional coordinate value in which the aspect ratio of the screen is adjusted with respect to this value and -1 ⁇ x ⁇ 1, -S a ⁇ y ⁇ S a is referred to as a two-dimensional image.
  • Sa is the aspect ratio (vertical size / horizontal size) of the screen.
  • t ′ m be a two-dimensional image of the target point t m .
  • t ′ m be a two-dimensional image of the target point t m .
  • t ′ m be a two-dimensional image of the target point t m .
  • t ′ m be a two-dimensional image of the target point t m .
  • t ′ m be a two-dimensional image of the target point t m . t ′ m is obtained by the following equation.
  • the size of the two-dimensional image around the target point is calculated.
  • ⁇ m (t m ) be the radius of a two-dimensional image of a small three-dimensional sphere (radius ⁇ , ⁇ ⁇ 1) centered on the target point, and calculate ⁇ m (t m ). You may approximate using the amount of movement of the two-dimensional image when the target point is moved by ⁇ in the x direction of the viewpoint coordinate system.
  • ⁇ m (t m ) [P m (V m t m + [ ⁇ , 0,0,0] T ) .x / P m (V m t m + [ ⁇ , 0,0,0] T ).
  • the position of the joint point on the image is kept constant by adjusting the amount of oblique correction.
  • the target point is [V m (j m -t m ) .z / V m (j m -e m ) .z] ⁇ m (j m ) ⁇ Just move.
  • FIG. 16 shows the movement of the target point by the movement of the pseudo viewpoint position.
  • a point 1610 indicates the position of the image of the target point when the original pseudo viewpoint position is used.
  • the point 1620 shows the position of the image of the target point when the pseudo viewpoint is moved by ⁇ .
  • step 1505 collision determination is performed between nodes of the exaggerated image. It is checked whether or not a collision has occurred on the exaggerated image with respect to a pair of combinations of all nodes of the exaggerated image.
  • the pseudo viewpoint position before correction is denoted as e ′ m and will be described in detail below.
  • d 0 ((t ' m .x-t' k .x) 2 + (t ' m .y-t' k .y) 2 ) 1/2
  • the size of the collision radius of each node on the two-dimensional plane is ⁇ m (t m ) r m , ⁇ k (t k ), where r m and r k are the collision radii of the target points. r k .
  • This sum d 1 ⁇ m (t m ) r m + ⁇ k (t k ) r k
  • d 1 ⁇ m (t m ) r m + ⁇ k (t k ) r k
  • step (1505-2) If d 0 ⁇ d 1 , that is, the sum of the collision radius on the two-dimensional plane is greater than the distance on the two-dimensional plane, it may be considered that a collision is occurring on the two-dimensional plane. . Then, the process proceeds to the following step (1505-2).
  • the collision avoidance amount is calculated.
  • the amount by which each two-dimensional image should be moved is calculated.
  • the moving distance on the two-dimensional image necessary for avoiding the collision can be calculated as d 1 -d 0 by the variable in (1505-1).
  • a weight may be set in advance for each node, and the movement amount may be distributed using this weight.
  • the weights of the nodes m and k are ⁇ m and ⁇ k , respectively.
  • the movement amount of the target point t m on the two-dimensional image may be a required movement distance multiplied by ⁇ m / ( ⁇ m + ⁇ k ).
  • step 1506 the zoom correction amount of the projection matrix is recalculated according to the corrected pseudo viewpoint.
  • step 1507 the oblique correction amount of the projection matrix is recalculated according to the corrected pseudo viewpoint. Correcting the pseudo viewpoint position in this way means correcting parameters for drawing.
  • Step 406 Vertex Conversion
  • vertex conversion is performed in step 406.
  • [x, y, z, w] T P m V m M n p 0 is calculated.
  • the vertex is finally mapped to a point (x / w, y / w) on the 2D image.
  • Step 408 Filling in pixels] Fill the pixels on the two-dimensional image (perform rasterization).
  • the camera in the depth direction (z direction of the viewpoint coordinate system), but in a direction parallel to the projection plane (xy plane of the viewpoint coordinate system).
  • the camera may be moved.
  • the ratio of the amount by which the pseudo viewpoint position is moved in the direction parallel to the projection plane and the amount by which the object appears to move on the image is calculated in advance. Using this ratio, the pseudo viewpoint position is moved by an amount necessary for avoiding object superimposition on the image.
  • a temporary position e ′ m (f) of the pseudo viewpoint is determined.
  • a process of correcting the display position may occur in the middle of the animation because the objects collide and approach each other. For example, such modifications frames f c detected in advance to be performed, the correction amount before and after the frame f c + 1, f c -1 , close to the amount of correction of frame f c. If this correction process is repeated N times, the correction amount is propagated and smoothing can be performed.
  • the information on the viewpoint position, direction, and angle of view can be determined by the user according to the input information, or can be determined by information stored in advance. Changes in the image due to these changes are called camera animation.
  • the viewpoint matrix V and the projection matrix P are functions of the frame f, respectively.
  • An animation accompanying a change in character pose is called a pose animation.
  • the modeling matrix M m is a function of the frame f.
  • the node configuration is shown below.
  • the information that is preferably stored in advance is as follows.
  • -Target point position t 0 m in the basic pose -Joint point position j 0 m in the basic pose ⁇ Collision radius r m ⁇ Exaggeration factor ⁇ m -Link n to parent node
  • the dynamically defined information is as follows.
  • Step 402 Determination of Pause
  • Step 404 Arrange Camera
  • the arrangement of the camera may be determined through the following process procedure based on the processing in the second embodiment, for example.
  • Step 1500 to Step 1504 in the second embodiment a value corresponding to the frame f is calculated and stored. Also, in the “determination of collision between nodes of exaggerated image” in step 1505, the following processes 1505-a1 to 1505-a4 are performed for the smoothing process between frames.
  • FIG. 17 shows a processing flow for animation smoothing.
  • parts different from the second embodiment will be described with reference to FIGS. 15 and 17.
  • step 1704 Collision confirmation
  • step 1706 it is confirmed whether or not a collision in the xy direction occurs in the frame f. Further, it is confirmed whether or not the frame f is within the collision range in the z direction (step 1708). If the collision, in 1505-a1-1-2 ⁇ m (f) , setting the ⁇ k (f).
  • step 1714 an adjacent node is selected.
  • step 1716 the correction amount ⁇ n (f) is smoothed between frames. The following processing 1505-a2-1 and 1505-a2-2 is performed for each frame f.
  • the correction amount ⁇ m (f) of the frame f is smoothed by the following equation (m is a node number).
  • This equation serves to close the value of ⁇ m (f) .xy in ⁇ m (f-1) .xy and ⁇ m (f + 1) .xy .
  • An example of the value of ⁇ is 0.5.
  • the present invention is not limited to this value.
  • the correction amount set in 1505-a1-1 may be reduced by this smoothing, the correction is performed again by repeating the following 1505-a4.
  • step 1718 for all combinations (k, m) of nodes, the collision on the image of frame f is again performed using the routine processing of 1505-a1-1-1. It is determined whether it has occurred (step 1722). If there is a collision, the correction amount smoothing of the frame f may be canceled (step 1720). Then, the process proceeds to the next frame.
  • step 1726 Repetition of correction In step 1726, the processing of 1505-a1 to 1505-a3 is repeated. Repeat a total of N times.
  • Step 406 Vertex Conversion
  • Step 408 Filling in pixels
  • For each frame f pixels on the two-dimensional image are filled (a rasterization process may be performed).
  • the drawing order becomes important.
  • the parameter of the exaggeration coefficient can be set by analogy by selecting a basic shape type even for a new model in which the exaggeration coefficient is not defined.
  • a standard shape model (standard envelope) is used. Assume that an appropriate exaggeration factor is already set for a particular model. By adjusting the pose of the standard envelope (or model) or the size of each part, the joint position of the model and the corresponding joint position of the standard envelope can be substantially matched. In this state, for example, for each vertex of the standard envelope, the value of the exaggeration coefficient associated with the closest target point is stored as the exaggeration coefficient of that vertex.
  • the standard envelope in which the value of the exaggeration coefficient is saved can be saved in the database, and the information of this standard envelope can be called and used when creating a new model.
  • the nearest vertex of the standard envelope is found, and the value of the exaggeration coefficient of that vertex is set as the exaggeration coefficient of the target point.
  • Model shape / joint structure / standard envelope model Examples of vertex data of the standard envelope model include the following.
  • Vertex position and exaggeration coefficient [Overall flow] The overall flow can be broadly divided into two steps: a process for copying an exaggeration coefficient to an envelope from a model to which an exaggeration coefficient has been assigned, and a process for copying an exaggeration coefficient from an envelope to a model to which no exaggeration coefficient has been assigned.
  • FIG. 18 is a diagram showing a flow of setting exaggerated parameters for each part of the model.
  • FIG. 18A shows an example of the flow of the standard envelope creation stage.
  • FIG. 18B shows an example of a flow of copying the exaggeration coefficient to the new model. Details of the fourth embodiment will be described below.
  • FIG. 19 shows the superposition of the 3D character and the envelope. It is assumed that the exaggeration coefficient has already been set for the 3D character 1902.
  • a standard envelope 1904 which is a simple shape model representing a human standard form, is read.
  • the standard envelope 1904 is composed of a plurality of vertices, but may be made coarser (the number of vertices is smaller) than the 3D character 1902.
  • the joint position is fitted. Specifically, a process of making the joint points of the 3D character 1902 and the joint points of the standard envelope 1904 (for example, the joint position 1906 of the envelope) substantially coincide with each other may be performed.
  • the position of the joint point of the standard envelope 1904 may be moved to the position of the joint point of the 3D character 1902. If the correspondence between the joints is incorrect, or if an appropriate joint does not exist, the operator may be prompted to move the position of the joint point.
  • the vertex p of the standard envelope 1904 is moved in accordance with the joint point position 1906 in the following procedure.
  • the position (j 0 , j 1 , j 2 ,..., J K-1 ) of the joint point of the 3D character near the vertex P of the standard envelope 1904 is extracted, and the distance from the vertex P to the position of the joint point ( d 0 , d 1 , d 2 ,..., d K-1 ) are calculated.
  • the movement amount v of the vertex P may be determined as follows.
  • step 1916 the exaggeration coefficient is copied. For each vertex p of the envelope, find only the top N nearby target points. The target point in the vicinity of the apex p is (t 0 , t 1 , t 2 , ..., t N-1 ), and the distance from the p to the target point (d 0 , d 1 , d 2 , ..., d N- 1 ) Calculate.
  • the exaggeration coefficient ⁇ may be determined as follows by interpolating the exaggeration coefficients ( ⁇ 0 , ⁇ 1 , ⁇ 2 ,..., ⁇ N-1 ) of these target points.
  • the envelope data is saved.
  • the joint position may be changed, and information on each vertex of the envelope (exaggeration coefficient, 3D information, distance from the target point to the vertex) may be stored in the database.
  • the image of the 3D character as the copy source, the name of the creator, or text information describing the intention of the setting concept may be stored together.
  • how to set the degree of exaggeration does not necessarily have an optimum value, but varies depending on the type of model (male character / female character / robot / stuffed animal, etc.) or the individuality of the artist. Therefore, as a concept for setting the exaggeration coefficient, for example, when simulating the style of a specific animation company or a specific writer, the name of the writer who became the simulation model is used as text information describing the intention of the setting concept. It may be described.
  • the exaggeration coefficient can be copied in the following procedure for a 3D character model for which an exaggeration coefficient has not yet been specified.
  • step 1832 the standard envelope saved in step 1818 is called. If multiple standard envelopes are prepared, select an appropriate one according to the character type (body type, etc.). An example of the selection method is given.
  • the existing standard envelope information stored in the database and the 3D character image used to create the envelope are called from the database and presented on the list screen. At this time, the distance ratio between the joints may be sorted and arranged in order from the closest to the current model. At this time, text information describing the name of the creator or the intention of the setting concept may also be displayed.
  • the user designates one model from this list and calls the saved standard envelope.
  • a mechanism for manually manipulating the influence degree of the interpolation data may be prepared.
  • the display screen describes the original information of the model, and stores the exaggeration coefficient setting concept.
  • matching with a character may be performed using pattern recognition technology.
  • the nearest standard envelope may be read out using a predetermined pattern recognition technique.
  • a plurality of types of standard envelopes close to the character may be taken out and displayed so that they can be selected. The operator may be prompted to select one standard envelope from multiple types of envelopes.
  • step 1834 fitting of joint positions is performed. Move the joint position of the standard envelope to the joint position of the 3D character. Using the above method, move the joint position of the envelope to the corresponding joint position of the model, and move the envelope vertex from the amount of movement of joint points (v 0 , v 1 , v 2 , ..., v K-1 )
  • the quantity v may be determined as follows:
  • the vertex of the envelope may be moved based on this movement amount v.
  • step 1836 the extension count is copied.
  • For the target point of the current 3D character find the top N vertices of the nearest standard envelope.
  • the distance from the N vertices to the target point and the exaggeration coefficient of the vertices are respectively (d 0 , d 1 , d 2 ,..., D N-1 ) and ( ⁇ 0 , ⁇ 1 , ⁇ 2 ,. ⁇ N-1 ).
  • the N exaggeration coefficients may be interpolated to determine a new exaggeration coefficient ⁇ as follows. However, ⁇ k on the right side is an exaggeration coefficient of the vertex of the standard envelope, and ⁇ on the left side is an exaggeration coefficient stored at the target point of the new 3D model.
  • ⁇ h, k on the right side is an exaggeration coefficient called from the envelope
  • ⁇ on the left side is an exaggeration coefficient stored at the target point of the new 3D model.
  • a standard bone model may be prepared instead of the standard envelope.
  • An exaggeration factor may be stored in each bone of the standard bone model.
  • a correspondence relationship may be established between bones (multiple-to-multiple) of corresponding parts with the standard bone model.
  • the exaggeration coefficient may be copied from the standard bone for each target point of the character.
  • Example 5 shows an example in which a function for automatically using whether or not to use an exaggeration operation according to each situation is realized.
  • each node may be determined whether each node satisfies a specific semantic condition, and the exaggeration coefficient may be changed according to the result.
  • the following three conditions can be used as judgment criteria.
  • an auxiliary branch may be added on the exaggerated control graph. Then, an exaggeration coefficient may be propagated in the graph to procure a distance that satisfies the constraint condition.
  • the distance used for controlling the exaggerated amount is called a pseudo viewpoint distance.
  • Pseudo point distance is the vector from the basic viewpoint position e 0 to the pseudo view point e m, are defined as z-direction component in the viewpoint coordinate system, which is referred to as e zm.
  • the point to be compared with the exaggeration amount may be set freely without being limited to the parent node. This point is called a comparison mother point, and the ID of the node including the comparison mother point is expressed by b.
  • the position of the pseudo viewpoint is set using an exaggeration coefficient that represents the ratio at the upper node.
  • a pseudo point distance e zm V 0 (e m -e 0) determined .z to the first, it moves the pseudo viewpoint position to reflect this value.
  • an operation for controlling the distance between the camera and the subject to adjust the apparent size of the specific area causing the mismatch is performed independently of the operation for adjusting the camera position along the screen plane. You may go.
  • Node configuration Information that should be stored in advance is as follows. -Target point position t 0 m in the basic pose -Joint point position j 0 m in the basic pose ⁇ Collision radius r m Exaggerated distance coefficient ⁇ m ⁇ Link to parent node n 0 ⁇ Link b to the node containing the comparison mother point ⁇ Comparison point position j 0 b in basic pose
  • the dynamically defined information is as follows.
  • Position coordinate p 0 [x, y, z, 1] T in the basic pose ⁇
  • Current position p M m p 0
  • the pose (joint angle) pattern (pose c) is as follows. Node ID number [m 0 , m 1 , m 2 , ..., m K-1 ] ⁇ Node (joint) angle [R 0 , R 1 , R 2 , ..., R K-1 ] Exaggerated distance adjustment factor ⁇ c [Drawing process] [Overall flow]
  • semantic conditions such as collision determination with an object in the 3D model, motion pattern, and direction of the line of sight are determined.
  • the pseudo viewpoint distance is changed according to the value.
  • the flow of processing will be described using the flow of FIG. 4 again. In order to avoid redundant description, the changes specific to the present embodiment will be mainly described.
  • Step 402 Determination of Pause] 1-1 Setting the modeling matrix Place an object in the scene.
  • a pose is set for each joint model.
  • the rotation angle data R m is called, and the modeling matrix M m is set for each node m based on the method based on the forward kinematics described above.
  • Object Connection Determination is performed on the combination of nodes (m 0 , m 1 ) in the scene.
  • nodes m 0 and m 1 As an example assumed as the nodes m 0 and m 1 , m 0 is a body part (for example, a hand) and m 1 is an object (for example, a handgun).
  • the value ⁇ c may be registered in association with some special objects, and the exaggerated distance coefficient of the contacted node may be changed to ⁇ m ⁇ ⁇ m ⁇ c .
  • the exaggerated distance coefficient of the contacted node may be changed to ⁇ m ⁇ ⁇ m ⁇ c .
  • Direction Indication Determination It may be determined whether the direction from the base point b 0 to the target point m 0 is toward the specific object m 1 .
  • the joint of the base node b 0 is a shoulder
  • the target of the node m 0 is a fingertip
  • the target of the node m 1 is a treasure box
  • node m 1 is registered in the temporary connection node list of node m 0 .
  • the temporary connection of node m 1, may be registered nodes m 0.
  • the value ⁇ c may be registered in association with some special objects, and the exaggerated distance coefficient may be changed as ⁇ m ⁇ ⁇ m ⁇ c .
  • Pose Determination It may be determined whether some joint angles of the model are close to preset joint angles. For example, the joint angles [R 1 , R 2 , R 3 ,...] Of the peace sign pose are registered in advance for the node joint information [m 1 , m 2 , m 3 ,. If it is close to this angle, it may be determined that the pose is a peace sign.
  • the exaggerated distance coefficient ⁇ m of the model node is multiplied by the value ⁇ c registered in association with the pose, and ⁇ m ⁇ ⁇ m ⁇ c adjust. For example, when it is desired to give an impact to a specific pose such as a peace sign or a guts pose, it is effective to perform such processing.
  • the exaggerated distance coefficient ⁇ m can be adjusted using the gaze direction influence value ⁇ .
  • a generating point suitable for expressing the characteristic direction of the node is set on the node. For example, when the target point of the node corresponding to the forearm is set at the wrist position, the mother point is set near the elbow. Then, the direction from the mother point to the target point represents which direction the forearm is facing.
  • the angle ⁇ formed by the direction t m -j b from the generating point to the target point and the direction e 0 -j b from the generating point to the viewpoint position is calculated.
  • [nu m positive, multiplying the [nu m exaggerated distance factor [psi m, it may be adjusted as ⁇ m ⁇ ⁇ m ⁇ m.
  • the pseudo viewpoint distance e zm can be determined as follows.
  • Pseudo-viewpoint distance can be propagated so that the distance to the pseudo-viewpoint is inconsistent and the size of the image does not vary. For example, since it is unnatural if the exaggerated amount of the hand and the exaggerated amount of the object held in the hand are greatly different, the exaggerated amount of both can be adjusted.
  • the correction value ⁇ m for the pseudo viewpoint distance is given to the value e zm set in the above 1-7.
  • ⁇ m may be adjusted so as to minimize the following evaluation function ⁇ , where C is a combination of nodes that are in a parent-child relationship or satisfy a condition registered as a temporary connection node.
  • the first term on the right side of this equation has the effect of making the degree of exaggeration of both the nodes (m 0 and m 1 ) in the parent-child relationship or the temporary connection relationship as similar as possible.
  • the second term on the right side has the effect of making the correction amount ⁇ m itself as small as possible.
  • is a parameter for adjusting the strength of both effects (ratio of both).
  • Step 404 Arrange Camera
  • basic camera parameters viewpoint position e 0 , camera direction ⁇ 0 , angle of view
  • a viewpoint matrix V 0 and a projection matrix P 0 are created.
  • p 00 and p 11 are respectively the horizontal and vertical field angles (the reciprocal of half the tangent).
  • camera parameters viewpoint position, camera direction, angle of view
  • a viewpoint matrix V m and a projection matrix P m may be created.
  • a pseudo projection matrix P ′ m in which only the angle of view is corrected is created as follows.
  • the shift amount is set so that the image projected with the pseudo-projection matrix and the image projected with the pseudo-projection matrix of this node substantially coincide.
  • the (0,2,) component and the (1,2) component are corrected as follows with respect to the pseudo projection matrix P ′ m before setting the shift amount, and this is defined as P m .
  • the pseudo cameras are arranged in order from the parent node in a top-down manner.
  • Step 408 Filling in pixels
  • the pixels on the two-dimensional image are filled (rasterization processing).
  • the drawing order becomes important.
  • the surface is sorted using the depth value z 0 / w 0 obtained by the vertex conversion, and the drawing is performed starting from the farthest surface and overwriting the nearest surface. Go.
  • the evaluation function ⁇ in “Step 1-8 Propagation of pseudo viewpoint distance” is a term representing the variation in the frame.
  • optimization process may be performed by changing as follows.
  • the picking process is a process for recognizing which object is pointed when a part of a three-dimensional object displayed on the screen is pointed by a pointing device or a finger.
  • the position information of the bones and joints may be stored in the storage unit.
  • a point on the screen it may be determined that the bone or joint closest to the point is selected.
  • a buffer area for storing the two-dimensional image is given to each vertex of the polygon.
  • the picking process may be recognized by storing information on a two-dimensional position at the time of rendering in this buffer area.
  • FIG. 20 shows a hardware configuration example of a system 2000 that implements various embodiments described in this specification.
  • a system 2000 includes a CPU 2001, a display 2002, a touch screen 2004, a keyboard 2006, a mouse 2008, a ROM 2010, a RAM 2012, an external memory interface 2014 for reading and writing a portable recording medium 2015, a communication interface 2016 for communicating with a network, and each hardware. Including a bus 2020 for connecting the two.
  • the input / output devices such as the display 2002, the touch screen 2004, the keyboard 2006, and the mouse 2008 are examples, and need not include all of them. It goes without saying that other input / output devices may be used.
  • the portable recording medium 2015 refers to one or more non-transitory storage media.
  • Illustrative examples of the portable recording medium 816 include a magnetic recording medium, an optical disk, a magneto-optical recording medium, and a nonvolatile memory.
  • Magnetic recording media include HDDs, flexible disks (FD), magnetic tapes (MT) and the like.
  • Examples of the optical disc include DVD (Digital Versatile Disc), DVD-RAM, CD-ROM (Compact Disc-Read Only Memory), CD-R (Recordable) / RW (ReWriteable), and the like.
  • Magneto-optical recording media include MO (Magneto-Optical disk). All or a part of the embodiments of the present invention can be implemented by reading a program stored in a portable recording medium and executing it by a processor.
  • the present invention includes a case where a program such as firmware or BIOS performs part or all of the actual processing and the functions of the embodiments are realized by the processing.
  • each component of the various embodiments of the present invention may be realized by a plurality of physically separated hardware.
  • each component of the various embodiments of the present invention may be implemented by operating on one or more servers.
  • the present invention can also be implemented in other devices including at least a CPU and a memory, such as general-purpose computers, laptop computers, handheld computers, mobile phones, televisions, and game machines.
  • a drawing apparatus comprising: The CPU In response to a predetermined event, the drawing information is changed, For each of the vertices of the plurality of polygons, the drawing position of the vertex is calculated using the viewpoint corresponding to the node to which the vertex belongs based on the changed drawing information.
  • Drawing device (Appendix 2) If the predetermined event is an event that receives selection of a template model from an operator, The CPU performs processing for changing the drawing information, Associating each of the plurality of nodes of the three-dimensional model with each of the plurality of nodes of the template model, The drawing information of the template model is stored in the memory as drawing information of the three-dimensional model.
  • the drawing apparatus according to appendix 1.
  • (Appendix 7) A method of drawing a three-dimensional model including a plurality of nodes existing in a three-dimensional space using a plurality of viewpoints, The influence of each of the plurality of nodes on the correspondence relationship between each of the plurality of nodes and each of the plurality of viewpoints and the drawing position of each vertex of the plurality of polygons constituting the three-dimensional model stored in the memory Using the drawing information including the degree and drawing parameters of each of the plurality of viewpoints, the CPU Changing the drawing information in response to a predetermined event; For each of the vertices of the plurality of polygons, calculating a drawing position of the vertex using a viewpoint corresponding to a node to which the vertex belongs based on the changed drawing information; A drawing method comprising: (Appendix 8) The step of changing the drawing information includes: If the predetermined event is an event that receives selection of a template model from an operator, Associating each of the plurality of nodes of the three-dimensional model with each of the pluralit

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Architecture (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Processing Or Creating Images (AREA)

Abstract

【課題】 誇張画像を3Dモデルから簡便に描画することを目的とする。 【解決手段】 本発明の一側面によれば、三次元空間に存在する、複数のノードを含む三次元モデルを複数の視点を用いて描画する装置であって、前記複数のノードの各々と前記複数の視点の各々との対応関係、前記三次元モデルを構成する複数のポリゴンの各頂点の描画位置に関して前記複数のノードの各々が与える影響度、及び前記複数の視点の各々が持つ描画パラメータを含む、描画情報を格納するメモリと、前記描画情報を用いて、前記複数のポリゴンによって、前記三次元モデルを画像に変換するCPUと、を有する描画装置であって、前記CPUは、前記複数のポリゴンの頂点の各々に対して、前記頂点が属しているノードに対応する視点を用いて前記頂点の描画位置を算出し、前記影響度に基づいて、算出された前記頂点の前記描画位置を修正する、描画装置が提供される。

Description

三次元オブジェクトの多視点描画装置、方法、及びプログラム
 本発明は、三次元オブジェクトを複数の視点からの射影によって、描画を行う技術に関する。
 従来の手書きのアニメ及びマンガには、強い臨場感、又は迫力を与えるために、透視図法(パース)において、遠い部分と近い部分の見た目の大きさの差を過剰に誇張した表現が多く用いられている。
 図1は、誇張された画像を比較した例を示している。図1(A)と図1(B)の画像を比べると、図1(B)は、足先102が、図1(A)の足先101と比較して、大きく表描画されており、奥行き表現がはっきりして印象的である。正確な透視投影図法でレンダリングした画像は図1(A)である。これに対し、図1(B)の画像は前に突き出した足先の見た目の大きさの差を拡大することで、奥行表現が誇張された画像になっている。本明細書では、このような画像を「誇張画像」と呼ぶ。
 たとえばロボットアニメ、又はスポーツなど、迫力を必要とする場面において、パースを極端に誇張する表現が多用されてきた。だが、このような柔軟な二次元表現は、手書きでは自由に描画できるが、カメラパラメータと3Dモデルから構成されるCG(コンピュータグラフィックス)の映像では表現に困難を伴う場合がある。このため、手書きの映像とCGの映像を合成する際に、相互の描画の手法の矛盾が露呈して違和感を与えることもあった。
 立体映像のディスプレイ面表から飛び出した物体を拡大して表現することで、視差を削減させる技術がある(たとえば、特許文献1参照)。
 複数の視点(カメラ)からの画像を合成して、二次元平面にレンダリングする技術が存在する(たとえば、非特許文献1、非特許文献2、非特許文献3、非特許文献4参照)。
 本出願は、2013年2月1日に出願した日本国特許出願第2013-018911号、及び日本国特許出願第2013-018912号に基づく優先権を主張するものであり、これらの出願の全内容は、本国際出願に盛り込まれる。
特開2006-293792号公報(US2006/0232584 (A1))
CGWORLD.jp日本アニメCGの新たな原動力 Autodesk 3ds Max 2011×PSOFT Pencil+3(第4回)http://cgworld.jp/feature/review/pencil+3-vol4.html Multi-perspective Modeling, Rendering, and Imaging SIGGRAPH ASIA 2008 Course Note, http://www.csbio.unc.edu/mcmillan/pubs/siga08-yu.pdf E-IMPACT ~日本のアニメーションにおける誇張表現を模した3DCG~ 特集・最新のディジタルコンテンツ制作技術、映像情報メディア学会誌2012年2月号、66(2), 102-105 "E-IMPACT: Exaggerated Illustrations using Multi-perspective Animation Control Tree Structure", ACE 2011 -International Conference on Advances in Computer Entertainment Technology and DIMEA 2011 - Digital Interactive Media Entertainment and Arts Conference (Nov 08 - Nov 11 2011).http://dl.acm.org/citation.cfm?id=2071502
 誇張画像を3Dモデルから簡便に描画することを目的とする。
 本発明の一側面によれば、三次元空間に存在する、複数のノードを含む三次元モデルを複数の視点を用いて描画する装置であって、前記複数のノードの各々と前記複数の視点の各々との対応関係、前記三次元モデルを構成する複数のポリゴンの各頂点の描画位置に関して前記複数のノードの各々が与える影響度、及び前記複数の視点の各々が持つ描画パラメータを含む、描画情報を格納するメモリと、前記描画情報を用いて、前記複数のポリゴンによって、前記三次元モデルを画像に変換するCPUと、を有する描画装置であって、前記CPUは、前記複数のポリゴンの頂点の各々に対して、前記頂点が属しているノードに対応する視点を用いて前記頂点の描画位置を算出し、前記影響度に基づいて、算出された前記頂点の前記描画位置を修正する、描画装置が提供される。
 実施例によれば、誇張画像を3Dモデルから簡便に描画することができる。
誇張画像の例を示す図である。 ベクトルの変換処理を示す図である。 人体の剛体関節モデル示す図である。 CG映像作成の工程を示す図である。 Forward Kinematicsによるアニメーションの例を示す図である。 円筒のパース誇張表現の例を示す図である。 カメラの移動と画角操作によるパースの制御を示す図である。 関節モデルの誇張表現の例を示す図である。 人間型モデルへ適用したボーンの例を示す図である。 ジョイントとエンベロープの例を示す図である。 ボーンの影響度を加味したポリゴンの頂点の変換のフローを示す図である。 実施例2の変形例による頂点の変換のフローを示す図である。 描画において、重なりが生じる例を示した図である。 誇張描画による像の拡張がもたらす重畳を回避する例を示す図である。 重畳を回避するフローの例を示す図である。 疑似視点位置の二次元像の移動によるターゲット点の移動を示す図である。 アニメーション平滑化のための処理フローを示す図である。 モデルの各部位への誇張パラメータの設定のフローを示す図である。 3Dモデルとエンベロープの重ね合わせを示す図である。 ハードウエアの構成例を示す図である。
 本発明の実施例の基本的な作業工程を説明するため、通常の映像生成と、誇張画像表現について以下に記述する。なお、本明細書では、以下の手法及び表記に従うが、本発明の各実施例は、これらの手法及び表記に限定されるものではない点に留意すべきである。
 まず、比較対象として通常のCGでの映像描画手法を説明する。続いて映像誇張の具体的事例を説明し、その中で本発明の実施例に共通する基本実施例として、マルチカメラを用いた誇張描画の仕組みの例について説明する。
 本明細書では、3Dモデルをオブジェクトと呼ぶ場合がある。また、3Dモデル(オブジェクト)の一部を部分オブジェクトと呼ぶ場合がある。
 [基本実施例]
 [頂点と行列変換]
 CGモデルの形状データは、たとえば、多数の三角形面で構成ことができる。各三角形の頂点データは三次元の浮動小数点データの組(三次元ベクトル(x,y,z))として保持される。以下の説明では、OpenGL又はDirect3DなどのCG処理機構に準拠する。三次元ベクトル(x,y,z)に四次元めの要素w=1を追加した列ベクトル[x,y,z,1]Tとして表記し(「T」は行列の転置を意味し、ここでは行ベクトルの転置で列ベクトルを表している)、変換処理を4×4行列で表現する。これは三次元ベクトルに対する移動・回転・サイズ変換と射影変換の処理をアフィン変換のみで表現できる。
 図2は、ベクトルの変換処理を示している。図2(A)は、回転行列Rにより、ベクトルv0がベクトルv1にx軸周りに角度θだけ回転している例を示している。この変換処理は、v0=[x,y,z,1]Tとすれば、以下のように表せる。
Figure JPOXMLDOC01-appb-M000001
 図2(B)は、移動行列Tにより、ベクトルv0がベクトルv2に、x軸方向にtx、y軸方向にty、z軸方向にtzだけ平行移動している例を示している。この変換処理は、以下のように表せる。
Figure JPOXMLDOC01-appb-M000002
 図2(C)は、スケーリング変換行列Sにより、ベクトルv0がベクトルv3に、拡大又は縮小される例を示している。x軸方向にsx、y軸方向にsy、z軸方向にszだけ拡大又は縮小される変換処理は、以下のように表せる。
Figure JPOXMLDOC01-appb-M000003
 これらの処理を統合した結果は、物体の位置、及び形状を変形することに相当するため、モデリング行列Mと呼ぶ。たとえばMは、以下のように表現される。
  M=TRS     (3.5)
 なお、上記の式3.5において、行列の掛け合わせる順番が異なれば、異なる変換結果となる点に留意すべきである。また、以下の説明では、ベクトルvのx成分を用いる場合にはv.x、ベクトルvのx成分とy成分を用いる場合にはv.xyのように、省略記法を用いて記述する。さらに、Mv.xyのように行列を掛けた場合は、(Mv).xyを表すものする。
 [関節構造]
 CGモデルがジョイント(関節)構造を持っている場合には、モデル全体は部分要素の集まりとして分解できる。なお、本明細書では、「部分要素」を「ボーン」と呼ぶ場合がある。ある部分要素に属する頂点データの集合をセグメントと呼ぶ。各部分要素は隣接する部分要素と「ジョイント点」(「関節点」)で繋がっており、ジョイント点で互いのまわりを回転する以外には変形しないモデルを、剛体関節モデルと呼ぶ。本明細書では、ジョイントとセグメントで構成されるひとかたまりの単位を「ノード」と呼ぶ。特定の部分要素を示すときには、下付きのサフィックスで表現する。たとえば、部分要素を特定するID番号がmであるノードのモデリング行列はMmと記述する。また、ノードmのジョイント点(下記の親子関係における親と繋がる点)を「ジョイントm」とし、その位置を表すベクトルをjmと表記する。
 図3は、人体の剛体関節モデルを示している。本明細書では、説明を分かりやすくするために剛体関節モデルを例にして説明する。なお、本発明は剛体関節モデルに限定されるものではない。図3(A)に示すように、剛体関節モデルにおいては、互いに繋がったノードの間には親子関係を設定することが望ましい。図3(B)に示すように最上位の親ノード(ルートノード)から連なる木構造で表現する。このように単純な木構造で上位から順に計算できる関節モデルを制御する方法論は順運動学(Forward Kinematics)と呼ばれる。該当ノードのID番号をm、親ノードのID番号をn、移動前の基本姿勢におけるジョイント点(ジョイントm)の位置を表すベクトルをj0 mとするとき、親ノード302(ノードn)でのモデリング行列Mnが定まると、ジョイントmの位置jmはjm=Mnj0 mとして一意に定まる。子ノード304(ノードm)はこのジョイントmを中心とした回転運動のみを自由度として持ち得る。
 [視点行列と射影行列]
 三次元位置を二次元画像に変換するために、視点行列Vと射影行列Pが用いられる。視点行列はカメラ(視点)の位置と方向をあらわすものであり、射影行列は三次元情報を二次元に射影するためのルールを示すものである。
 視点行列Vは、視点の位置e0を原点に変換する平行移動と、カメラの方向θ0をZ軸に設定する回転行列を合成することで定義する。
 射影行列Pは、たとえば以下の形式の行列である。
Figure JPOXMLDOC01-appb-M000004
この行列で頂点座標を変換した結果[x,y,z,w]Tを、wの値で割って正規化した量[x/w,y/w,z/w,1]Tは、視野空間と呼ばれる。x/w,y/wはそれぞれ二次元画像上での座標位置に対応し、-1<x/w<1,-1<y/w<1,0<z/w<1は描画対象を示す四角錐の領域になる。この射影行列の作成についてはhttp://www.terathon.com/gdc07_lengyel.pdfなどの参考文献に記載されている。
 [描画工程]
 CG映像で、毎フレーム行う描画処理の工程は、以下のようになる。
 図4は、CG映像作成の工程例を示している。 この工程例は、具体的には、以下のように構成される。
 ステップ402において、シーンにキャラクタモデルを配置する条件と、関節モデルのポーズを定める。
 ステップ404において、カメラパラメータを与え、視点位置、方向、及び/又は画角を設定する。
 ステップ406において、モデルを構成する各頂点の座標を計算し、射影変換を行う。
 ステップ408において、頂点に張られた面の画素を塗り潰す(ラスタライズを行う)。
 複数のノードの各々と複数の視点の各々との対応関係、三次元モデルを構成する複数のポリゴンの各頂点の描画位置に関して複数のノードの各々が与える影響度、及び複数の視点の各々が持つ描画パラメータを含む情報を、描画情報と呼ぶ。
 [ステップ402:ポーズの決定]
 図5は、Forward Kinematicsによるアニメーションの例を示している。順運動学の手順に基づいて、各ノードのモデリング行列を決定する。
(なお、この決定手順は、例えば、以下の参考文献に例示されている。http://www.tmps.org/index.php?%BD%E7%B1%BF%C6%B0%B3%D8)
 (ア)キャラクタのポーズを決定するために、各ノードの向きを定める(図5(A))。全てのノード(m=0,1,2,…,M-1)について、ジョイント部(m)での回転角度の情報R0 mを読み出す。
 (イ)親のノードから連結している順に、ノードの位置を定めてゆく。ノードmが、その親であるノードnに、ジョイントmによってつながっている。基本ポーズでのジョイントmの位置をj0 m、ポーズを読み込んで回転した後のジョイントmの位置をjmとする。親のモデリング行列Mnがすでに定まっているとき、このノードのモデリング行列Mmを以下のように定める(図5(B))。
 変換Mmpは、ノードmに付随する点pにポーズ情報を適用する処理であり、ジョイントmを中心としてRmだけ回転させる操作と、ジョイントmの位置jm(親ノードの変換Mnによって定められる)から得られる。すなわち:
jm=Mnj0 m
Rm=R0 mRn
Mmp=Rm(p-j0 m)+Mnj0 m
 (ウ)操作(イ)を、親ノードから子ノードに繰り返し、全てのノードについてモデリング行列Mを求めることができる。
 [ステップ404:カメラの配置(カメラパラメータの設定)]
 カメラパラメータ(視点の位置e、カメラの方向θ、画角)を設定し、これらの情報から、視点行列V、射影行列Pを作成する。画角は、カメラのレンズにおける焦点距離に対応する。
 視点行列Vは、視点位置eを原点とする移動行列T(pをp-eに平行移動する)と、視線方向θをZ軸に回転する回転行列RによってV=RTとして定義される。
 射影行列には、既に述べた形式の行列を以下のように設定する。
Figure JPOXMLDOC01-appb-M000005
このときp00,p11が、それぞれ水平方向・垂直方向の画角(その半分の正接の逆数)になる。
 [ステップ406:頂点の変換]
 モデルの各頂点(変形前の位置座標をpとする)に対し、変形後の位置を計算する。頂点が属しているノードをmとするとき、[x,y,z,w]T=PVMmpを計算する。
 頂点は、最終的に二次元画像上の点(x/w,y/w)に写像される。
 またこの計算から深度値z/wを得る。この深度値は面の奥行き順序を比較するソートに用いられる。この点についての詳細は後述する。
 [ステップ408:画素の塗り潰し]
 二次元画像上の画素を塗り潰す(ラスタライズ処理を行う)。
 この塗り潰しにおいては、最終的に手前の三角形の色が見えなければならないので、描画順序が重要になる。この描画の奥行き順序を守るために、頂点の変換によって得られた深度値z/wを用いて面をソートしておき、最も遠い面から描き、近い面で上書きしながら描画してゆく。
 ソートされた各三角形面について、構成される三つの頂点を参照する。それらの頂点で囲まれた領域の画素を、面に指定された色に塗り潰す。
 上記の標準的な描画手法は、透視投影行列Pによって、三次元から二次元への幾何射影を行っている。次に、この映像の生成手順と比較して、誇張映像の生成手法を説明する。
 [誇張映像の生成について]
 誇張画像を生成するには、おもに、二種類の手法がある。一つ目はCGモデルの当該個所の形状自体を大きくする手法であり、もうひとつは遠近法を生み出すカメラパラメータを加工する技法Multi-perspective Rendering (MPR)を用いる手法である。
 「1.形状加工」
 前者のCGモデルの当該個所を加工する方法の実現例には、Pencil+3パース変形モディファイヤの例などが存在する(たとえば、非特許文献1参照)。
 この例は、CGのZ深度に応じて異なるレンズパラメータを与えたような映像を作成する。なお、Z深度に応じてモデル形状を加工するため、キャラクタ以外の物体、たとえば背景モデルなどが同じシーンの中に写っている場合には、該当する深度のモデルがひずんでしまう可能性がある。
 [2.マルチパースペクティブ]
 後者のMPRは異なる透視投影の効果を一枚の絵に合成する方式である。MPRの既存技術の詳細は、非特許文献2に、例示されている。
 このMPRは、異なった視点からの画像の断片を、一枚の絵の中に合成して映像を作る。モデルの各部がひずんで接合され、キュービズムの絵画のような映像を作る例などが先行事例として挙げられている。
 また特許文献1では、この手法を用いて立体映像のディスプレイ面表から飛び出した物体を拡大して表現することで、視差を削減させる方法が提案されている。
 また、MPRを用いて、上記の誇張画像を作成する手法は、非特許文献3及び非特許文献4によって、その例が提案されている。
 [マルチパースペクティブ合成による誇張画像]
 非特許文献1の例では形状を変化させることで誇張表現を行うのに対して、非特許文献3及び非特許文献4で示された誇張描画アルゴリズムは透視投影Pを適用する段階でパースの効果を誇張する。
 [基本概念]
 図6は、円筒のパース誇張表現の例を示している。ノードmに相当する円筒と、その中心軸を描いたものである。図6(A)は通常のパースである。これに対し、図6(B)では、距離による見た目の拡大率の差(円602と円604との差)を大きく誇張できる。円筒に中心軸を設定し、その両端点を特徴点とする。円筒の根元にある三次元の点をジョイントmとし、その位置を点jmとする。また、円筒先端の三次元の点を「ターゲットm」と呼び、その位置をtmとする。
 このように、親の疑似視点パラメータで作成した画像と、子の疑似視点パラメータが、互いにジョイント点とターゲット点を共有するようにカメラパラメータを定めることで、最終画像上で互いの軸がなす角度が不自然にならないようになる。
 図7は、カメラの移動と画角操作によるパースの制御を示している。この処理におけるカメラと画角の関係を示した模式図である。カメラの位置をd2からd1に接近させ、画角(の半分)をθ2からθ1に広げて、円筒の上面tmを大きく見せつつも、円筒の底面jmを含んだ平面の見え方が略変わらないようにすることができる。
 [多段階の合成]
 図8はこの手法によって関節モデルを描画した場合の模式図である。図8のように、関節で区切られた部位それぞれに専用のカメラを用意し、それらを「疑似カメラ」と呼ぶ。これらの疑似カメラをそれぞれ異なる位置に配置し、各部位を撮影する。図8(B)~図8(D)は、同じポーズのモデルを、三つの異なる疑似カメラで撮影したものである。図8(A)は、矢印802、804、及び806に示すように、これらの3種類の画像を関節部分でつなぎ合わせて作成した誇張画像である。
 図8は、関節モデルの誇張表現の例を示している。このようなパースの異なる画像をつなぎ合わせて、手書きアニメでの誇張表現を実現できる。このようなMPRを用いると、パースの誇張表現は「形状変化」ではなく「距離変化」として記述できる。このことにより、パースの誇張表現がより自然に表現できるようになる。
 [制約条件]
 それぞれの疑似カメラをモデルに近づけるだけでは、二次元画像上でのポーズのバランスが崩れてしまう場合がある。二次元画像上のポーズの印象を残したまま、パースの遠小近大の表現だけを変化させるためには、それぞれの疑似カメラの配置場所を連携させることが望ましい。この場合、以下の制約条件を満たすように、疑似射影行列Pmと疑似視点行列Vmを作成するのが望ましい。
 [制約条件1]
 ジョイントmの近傍では、ノードmの疑似カメラの画像と親ノードnの疑似カメラの画像の間で、位置とサイズを略一致させることが望ましい。この制約により、関節が「つながって」見える。
 ジョイント点jmを含み、視線方向に垂直な平面をL(m,n)とする。このL(m,n)上の点pについて、親階層(ノードn)の疑似射影処理PnVnによって、点pが写される二次元座標と、この階層(ノードm)の疑似射影処理PmVmによって、点pが写される二次元座標が一致する。
 すなわち、式の関係が成立する。
Figure JPOXMLDOC01-appb-M000006
 [制約条件2]
 ターゲットmが射影される二次元位置が略一致するようにすることが望ましい。この制約により、オブジェクトの向きが一致して見える.
 ターゲット点tmについて、親階層(ノードn)の疑似射影処理PnVnによって、点pが写される平面上の位置と、この階層(ノードm)の疑似射影処理PmVmによって、点pが写される平面上の位置とが略一致する。
 すなわち、式の関係が成立する。
Figure JPOXMLDOC01-appb-M000007
 これらの制約条件を満たした場合、円筒の軸を示すjmからtmに向かう線分が、二次元的には同じ位置を占めたままで、点tmの周りの見た目のパースが大きくなる映像を作ることができる。なお、本発明は、上述の手法に限定されるものではない。
 [描画手法の構成要素]
 描画手法によって映像を描画する際に必要となるデータ構成要素について以下に説明する。
 ノード部は以下のデータを保持する:
 (ア)あらかじめ保存されていることが望ましい情報は以下の通りである。
・基本ポーズにおけるターゲット点の位置t0 m
・基本ポーズにおけるジョイント点の位置j0 m
・誇張係数ηm
・親ノードへのリンクn 
 (イ)動的に定められる情報は以下の通りである。
・現在のターゲット点の位置tm
・現在のジョイント点の位置jm
・モデリング行列Mm
・疑似視点位置em
・疑似視点行列Vm
・疑似射影行列Pm
 各頂点の構成は以下の通りである。 
 (ウ)あらかじめ保存されていることが望ましい情報は以下の通りである。
・基本ポーズにおける頂点位置p0=[x,y,z,1]T
・ノードへのリンクm
 (エ)動的に定められる情報は以下の通りである。
・現在の頂点位置p=Mmp0
 [基本手法の描画工程]
 本発明における描画工程の基本手法では、以下のような手順を用いてもよい。
 基本手法の描画工程は、図4に類似しているが、以下に示す実施例においては、以下に示す基本的手法を用いることを前提に説明する。なお、本発明は、この基本的手法に限定されるものではない。
カメラの配置(ステップ404)と、頂点の変換(ステップ406)において、複数の視点行列と射影行列を用意し、使用することが望ましい。以下、この詳細について、図4を再度用いて説明する。
 [ステップ402:ポーズの決定]
 先に述べた手法に基づき、各ノードmに、モデリング行列Mmを設定する。また、このモデリング行列によって変換されたターゲット点の現在位置tm=Mmt0 mと、ジョイント点の現在位置jm=Mmj0 mとをそれぞれ計算する。
 [ステップ404:カメラの配置]
 まず、基本となるカメラパラメータ(視点の位置e0、カメラの方向θ0、画角)を設定する。これらの情報から、視点行列V0、射影行列P0を作成する。
 視点行列V0は、視点位置e0を原点とする移動行列T(pをp-e0に平行移動する)と、視線方向θをZ軸に回転する回転行列R0によってV0=R0T0として定義される。
射影行列には、既に記載した形式の行列を設定する。
Figure JPOXMLDOC01-appb-M000008
 このときp00,p11が、それぞれ水平方向・垂直方向の画角(その半分の正接の逆数)になる。
 各セグメントmに、カメラパラメータ(視点の位置、カメラ方向、画角)を設定する。これらの情報から、視点行列Vm、射影行列Pmを作成する。
 [ステップ404その1:擬似視点の仮位置を定める]
 疑似視点の位置を定める。
 親階層の疑似視点位置enとtmを結んだ直線の上に、疑似視点位置emを設定する。
em=(enmtm)/(1+ηm)
本明細書では、この比率を「誇張係数」と呼び、値をηmとする。この値には、ノード構造体にあらかじめ保存されている定数パラメータを読み出して利用することが望ましい。誇張係数によって、誇張される度合いを調整することができる。誇張係数が大きくなるほど、誇張される度合いが高くなる。誇張係数が0であれば、親階層の擬似視点から見える画像と等しくなる。
 疑似視点位置emとカメラ方向から、疑似視点行列Vmを作る。疑似カメラの方向は基本カメラ(疑似でないカメラ)の方向と同じ方向にすることが望ましい。
 [ステップ404その2:擬似射影行列のズーム補正量を決定する]
 疑似射影行列の画角(カメラのレンズの焦点距離に相当する)を補正し、ジョイント点jm含む平面z=Vnjm.z(en視点座標系)において、親ノードの疑似射影行列で写した画像のスケールと、このノードの疑似射影行列で写した画像のスケールが、一致するようにする。
 親ノードの疑似射影行列Pnが既に確定しており、
Figure JPOXMLDOC01-appb-M000009
であるとする。これを元に、ノードmの射影行列Pmを求める。Pmの成分は次のとおりとする。
Figure JPOXMLDOC01-appb-M000010
 まず、以下のように画角のみを修正した疑似射影行列P’mを作る。
Figure JPOXMLDOC01-appb-M000011
 [ステップ404その3:擬似射影行列の斜め補正量を決定する]
 疑似射影行列の斜め補正量を修正し、ジョイント点jmを含む平面z=Vnjm.z(en視点座標系)において、親ノードの疑似射影行列で写した画像と、このノードの疑似射影行列で写した画像が、一致するようにシフト量を設定する。
 シフト量を設定する前の疑似射影行列P’mに対して、(0,2)成分及び(1,2)成分を以下のように修正し、これをPmとする。
Figure JPOXMLDOC01-appb-M000012
 以上のステップ404のその1~ステップ404その3の手順に従って、トップダウンで親ノードから順に疑似カメラを配置することができる。
 [ステップ406:頂点の変換]
 モデルの各頂点(基本ポーズにおける位置座標をp0とする)に対し対応するノードmを検索し、そのノードの疑似視点行列と疑似射影行列を用いて、以下の式によって誇張表現での視野空間の位置を計算する。
[x,y,z,w]T=PmVmMmp0
 頂点は、二次元画像上の点(x/w,y/w)に写像される。
 また、別途通常の視点行列と射影行列を用いて、通常の視野空間の位置(基本カメラを使って射影変換された座標値)
[x0,y0,z0,w0]T=PVMmp0
の値を計算し、z0/w0を奥行き深度の値とすることが望ましい。これは、異なる疑似カメラで描画されたオブジェクト間の深度値比較に、一貫性を持たせるためである。この奥行きの深度の値は、たとえばZバッファを用いて、以下のステップ408において、塗りつぶすべき手前にある画像を描画するときに用いてもよい。
 [ステップ408:画素の塗り潰し]
 各面について、頂点で囲まれた領域の画素を塗り潰す。またその際、深度値z0/w0が最も遠い面から描き、近い面で上書きしながら描画する。
 これらの手順に従って描画することで、パースの効果を誇張した映像生成が行われる。
 以上、基本実施例として、誇張映像の描画方法について説明した。この技法を発展させて、更に以下の実施例を開示する。
 実施例1:関節部位の滑らかな接合
 実施例2:誇張の非整合の解消
 実施例3:アニメーションの平滑処理
 実施例4:誇張係数パメラータの設定
 実施例5:誇張量の動的な調整
 実施例6:ピッキング処理
[関節部位の滑らかな接合]
 剛体関節モデルに特定のポーズをとらせる場合には、各部位ごとに回転と移動をすれば良い。しかしながら、人間又は動物のようなモデルの関節部位の結合を自然に見せるためには、関節が曲がってもそれを覆う皮膚を滑らかに接合させることが望ましい。
 このようなモデルを表現する手法として、スキンメッシュ又はエンベロープと呼ばれる技法を用いてもよい。
 これらの技法では、非表示のオブジェクトを用意し、その変形にあわせてモデルの形状を変化させてもよい。たとえば、人型のモデルをスキンメッシュで稼働させる場合には、モデルの内部にスケルトン又はボーンと呼ばれる非表示の剛体オブジェクトを骨組み(ボーン)として設定し、この骨組みを動かしてポーズを表現する。
図9は、人間型モデルへ適用したボーン900の例である。
 ボーンの回転変換と移動変換にあわせて、モデル表面の各頂点の位置が定められる。特にセグメントの間にある関節周辺の頂点では、二つ以上のボーンから影響を受け、各ボーンの変換に従って定められるそれぞれの位置を補間した点を頂点の位置としてもよい。
 エンベロープ処理を適用したモデルに対して映像を作成するための手法を以下に例示する。
 誇張表現においてもこの動作を実現するため、各頂点が影響を受けるボーンと影響度の重み付け値を保持することが望ましい。
 [処理の概要]
 スキンメッシュ処理を用いるモデルに対しては、前述の基本技法のみではマルチカメラを用いた誇張描画を実現することが困難な場合がある。そこで、スキンメッシュを用いたオブジェクトに誇張描画を行うための処理として、頂点に視点行列と射影行列を適用して同次表現の四次元ベクトルの値を作った後、w値で除算して通常の二次元画像上の位置情報に変換することが望ましい。そのあとで、影響度に合わせた補間処理を行うことが望ましい。
 [構成要素]
 図10にジョイントとエンベロープの例を示す。既に述べたように、三次元のモデル1002は、たとえば多数の三角形面(ポリゴン)で構成されており、各三角形の頂点データを三次元ベクトルとして保持している。
 ボーンは頂点に影響を与える範囲を持つ。本明細書では、このボーン1004が影響を与える範囲を示すための幾何データを、エンベロープと呼ぶ。
 エンベロープによる影響範囲の設定例を以下に説明する。ボーンの周辺に内部境界面1010、その周りに外部境界面1020を設定する。ボーンから頂点への影響度qとして、内部境界面1010の内側にある頂点には1.0、外部境界面1020の外側にある頂点には0.0、その間にある頂点には、二つの境界面からの距離に応じて補間した値(ポリゴンの頂点の値)を与えてもよい。
 関節の周辺部においては、一つの頂点が、複数のエンベロープから影響度が与えられる。各頂点は、参照すべきノード(ボーン)のID番号をリスト化したデータ[m0,m1,m2,…,mK-1]と、それぞれのノードが頂点に与える影響度をリスト化したデータ[q0,q1,q2,…,qK-1]をもつ。影響度の総和は1、すなわちΣqk=1に設定することが望ましい。以下の説明では影響度の総和を1とする。
 (ア)ノードの構成:
 あらかじめ保存されていることが望ましい情報は以下の通りである。
・基本ポーズにおけるターゲット点の位置t0 m
・基本ポーズにおけるジョイント点の位置j0 m
・内部境界面を示す幾何モデル(非可視頂点の集合)
・外部境界面を示す幾何モデル(非可視頂点の集合)
・誇張係数ηm
・親ノードへのリンクn
 動的に定められる情報は以下の通りである。
・現在のターゲット点の位置tm
・現在のジョイント点の位置jm
・内部境界面を示す幾何モデルの現在姿勢(非可視頂点の集合)
・外部境界面を示す幾何モデルの現在姿勢(非可視頂点の集合)
・モデリング行列Mm
・疑似視点位置em
・疑似視点行列Vm
・疑似射影行列Pm
 (イ)頂点の構成は以下の通りである。
 あらかじめ保存されていることが望ましい情報は以下の通りである。
・基本ポーズにおける頂点位置p0
・ノードへのリンク(リスト)[m0,m1,m2,…,mK-1]
・影響度(リスト)[q0,q1,q2,…,qK-1]
 動的に定められる情報は以下の通りである。
・現在の頂点位置ΣqkMmkp0
 [描画工程]
 描画のための工程全体の例を以下に示す。図4のフローを用いて説明する。
 [全体の流れ]
 本実施例の工程全体の流れは、他の実施例とほぼ同様の構成となる(図4)。ただし、ステップ406「頂点の変換」には主要な変更が加えられている点に留意すべきである。
 [ステップ402:ポーズの決定]
 先に述べた手法に基づき、各ノードmに、モデリング行列Mmを設定する。また、このモデリング行列によって変換されたターゲット点の現在位置tm=Mmt0 mと、ジョイント点の現在位置jm=Mmj0 mとをそれぞれ計算する。この具体方法については前述の基本実施例に準じて実行してもよい。
 [ステップ404:カメラの配置]
 各ノードmに、カメラパラメータ(視点の位置、カメラ方向、画角)を設定する。これらの情報から、視点行列Vm、射影行列Pmを作成する。この具体方法については前述の基本実施例に準じて実行してもよい。
 [ステップ406:頂点の変換]
 頂点の変換についても基本実施例に準じて実行してもよい。なお、以下の点で変更を加えてもよい。
 図11は、ボーンの影響度を加味したポリゴンの頂点の変換のフローの詳細を示している。
 ステップ1102において、基本ポーズにおけるポリゴンの頂点の位置座標p0を読み込む。
 ステップ1104において、パラメータを初期化する。
 ステップ1106において、ポリゴンの各頂点に、関連付けられたボーンのリスト[m0,m1,m2,…,mK-1]と頂点に与える影響度[q0,q1,q2,…,qK-1]を呼び出す。Kは、頂点に影響を与えるボーンの数を表し、頂点ごとに固有の値を持っている。
 ステップ1108において、mk(k=0,1,…,K-1)のそれぞれについて、頂点の座標変換を計算する。
[xk,yk,zk,wk]T=PmkVmkMmkp0
 ステップ1110において、頂点を、二次元画像上の点に写像し、影響度を掛けて足し合わせる。
(Σqk(xk/wk),Σqk(yk/wk))
 ステップ1112、及びステップ1120において、K回繰り返す。
 ステップ1112において、以下の計算式により、通常の射影行列で深度値を計算し、z0/w0を奥行き深度の値とする。
[x0,y0,z0,w0]T=PVΣqkMmkp0
 ステップ1116において、ポリゴンの頂点座標のx,yとzを合成。
 ステップ1118において、ポリゴンの全頂点において、上記の計算を繰り返す。
 [ステップ408:画素の塗り潰し]
 各面について、頂点で囲まれた領域の画素を塗り潰す。またその際、深度値z0/w0が最も遠い面から描き、近い面で上書きしながら描画する。(前述の手法と同様であってもよい。)
 [実施例1の変形例]
 誇張表現の描画における頂点の補間処理を、異なるバリエーションで実現する例を以下に挙げる。
 図12は、実施例2の変形例による頂点の変換のフローを示している。
 前述の実施例1の手法における「ステップ406:頂点の変換」フェーズにおいて、以下のように計算を行ってもよい。
 ステップ1202において、基本ポーズにおけるポリゴンの頂点の位置座標p0を読み込む。
 ステップ1204において、パラメータを初期化する。
 ステップ1206において、ポリゴンの各頂点に、関連付けられたボーンのリスト[m0,m1,m2,…,mK-1]と頂点に与える影響度[q0,q1,q2,…,qK-1]を呼び出す。
 ステップ1208において、頂点に影響を与えるノード[m0,m1,m2,…,mK-1]のそれぞれについて、通常のスキンメッシュと同様に補間した座標位置p’を、たとえば下記の計算式により計算する。
p’=ΣqkMmkp0
 ステップ1210において、このp’を用いて、mk(k=0,1,…,K-1)のそれぞれについて、疑似視点行列と疑似射影行列を適用した誇張視野空間の座標を、たとえば下記の計算式により計算する。
[xk,yk,zk,wk]T=PmkVmkp’
 ステップ1212において、この頂点の変換結果を、たとえば下記の計算式により二次元画像上の点に写像する。
(Σqk(xk/wk),Σqk(yk/wk))
 ステップ1214、ステップ1220において、K回繰り返す。
 ステップ1216において、以下の計算式により、通常の射影行列で深度値を計算し、z0/w0を奥行き深度の値とする。
[x0,y0,z0,w0]T=PVΣqkMmkp0
 ステップ1218において、ポリゴンの頂点座標のx,yとzを合成する。
 ステップ1219において、ポリゴンの全頂点において、上記の計算を繰り返す。
 すなわち、この変形例の場合には、影響度qkによる補間作業は、モデリング行列と、視点・射影行列の二回行われることになる。
[誇張の非整合の解消]
 以下に示す実施例2は、それぞれのパーツに異なる射影行列を適用するために起こる不具合を改善することができる。基本技法では、関節部位のそれぞれに対して異なるカメラパラメータで映像を作る。このため、誇張されたパーツの位置関係に矛盾を生じることがある。
 図13は、描画において、重なりが生じる例を示している。パース誇張なしの画像(図13(A))と、パース誇張の処理により、両手先の描画が重なってしまった画像(図13(B))とが示されている。 パース誇張なしの画像(図13(A))では、近接して両手を前に出している場合などにおいて、本来は重ならない。しかしなら、図13(B)では、物体(両手先)が誇張されて大きく表示される結果、互いに重なって表示されることがある。この理由は、右手と左手に設定されたカメラのパラメータがそれぞれ独立に作成されたため、出来上がった誇張画像では手の画像が重なってしまうからである。図13(C)は、この重なりを回避する処理を施した例である。
 カメラの位置を三次元的な重心点に動かして違和感を緩和させてもよい。この場合は、カメラを移動させる量が特定できないため、重なりを回避できるまで移動操作を繰り返せばよい。なお、この場合、画面内の見た目の大きさと配置位置が同時に制御されるため、適切なカメラパラメータが求められないことがある。そして、反復の初期条件によって結果が変化する。このため、必ずしも画像上の制約を満たす結果をもたらすとは限らない。さらに、この手法をアニメーションに適用した場合には、時間的に連続したフレームの映像であっても、映像的には互いに連続したものにならず不自然な映像となることがある。(この点については、実施例3で後述する)
 以下に示す実施例2は、このような課題にも対応できる。
 [処理の概要]
 以下に詳述する実施例3では、たとえば視線方向に対して垂直な方向へ疑似視点位置を移動させる方法を用いる。また、疑似視点位置の移動量に対する、画面上での像の移動量の比率を計算し、仮配置したオブジェクトが重畳しているのに合わせて疑似視点の移動距離を算出する。
 [構成要素]
 図14は、誇張描画による像の拡張がもたらす重畳を回避する例を示している。図14を用いて、画像の重畳を回避する例を概念的に説明する。図14(A)は、誇張を行ったために、描画が重なってしまった状態を表している。第1のターゲット点の位置tmと、第2のターゲット点の位置tkが表示されている。各ターゲット点には、予め衝突半径が定義されているものとする。図14(A)においては、誇張を行わない場合の衝突半径1408が示されている。その他の衝突半径についても、同様に定義されている(不図示)。そして、誇張表示を行わない場合の衝突領域1404と、衝突領域1414が示されている。また、誇張表示を行った場合の衝突領域1406と衝突領域1416が示されており、両者は重畳して描画されている。重畳して描画される理由は、両者の点に対して、異なる2つの視点(2つのカメラ)を用いて誇張を行っているためである。
 図14(B)は、2つの視点の位置等を変更して、画像上のターゲット点tmとターゲット点tkの位置を、それぞれベクトル1450及びベクトル1460だけずらす操作を行った例を示している。この操作の詳細は後述する。この操作によって、画像1406は画像1426に移動し、画像1416は画像1436に移動する。その結果、誇張された画像1426と誇張された画像1436は、衝突しない状態で描画される。
 以下に、画像の重畳を回避する具体例を説明する。
 シーン内には、頂点データで構成された3Dモデルが配置される。頂点データは特定のノードに関連づけられており、ノードの配置の変化に応じてアニメーションする場合を想定する。
 また、シーンを観察する基本視点位置と方向が決められているとする。この位置と方向から視点行列を定めることができる。また、映像の画角情報が決められている。この画角から射影行列が定められる。これらの視点位置、方向、及び画角の情報は、入力情報に応じてユーザーが決定するか、又はあらかじめ保存された情報によって決定され得る。これらの変化による画像の変化をいわゆるカメラアニメーションと呼ぶ。
 ノードの構成を以下のように定める。
 あらかじめ保存されていることが望ましい情報は以下の通りである。
・基本ポーズにおけるターゲット点の位置t0 m
・基本ポーズにおけるジョイント点の位置j0 m
・衝突半径rm
・誇張係数ηm
・親ノードへのリンクn
 動的に定められる情報は以下の通りである。
・現在のターゲット点の位置tm
・現在のジョイント点の位置jm
・モデリング行列Mm
・疑似視点位置em
・疑似視点行列Vm
・疑似射影行列Pm
・点座標pに対する誇張画像内での見た目の拡大率ρm(p)
・画像内でのターゲット点の衝突半径rmρm(tm)
 頂点の構成は以下の通りである。
・基本ポーズにおける位置座標p0=[x,y,z,1]T
・現在の位置座標p=Mmp0
・ノードへのリンクm
 [描画工程]
 描画のための工程全体を以下に説明する。
 [全体の流れ]
 工程全体の流れは、既に説明した実施例とほぼ同様の構成となる。なお、以下に説明するように、疑似視点位置の配置計算方法に主要変形を加えることが望ましい。図4に示したステップを用いて説明する。
 [ステップ402:ポーズの決定]
 先に述べた手法に基づき、各ノードmに、モデリング行列Mmを設定する。また、このモデリング行列によって変換されたターゲット点の現在位置tm=Mmt0 mと、ジョイント点の現在位置jm=Mmj0 mとをそれぞれ計算する。
 [ステップ404:カメラの配置]
 この実施例2では、既に述べた手法によってカメラ配置方法に基づいて射影中心を一旦設定し、その後にカメラ位置の修正を行うことが望ましい。
 上記の制約条件を満たすPmVmは、図に15示す手順で作成することができる。
 ステップ1500において、ジョイントとターゲットの位置を設定する。
 読み出した各ジョイントmの回転角度情報Rm等によって、セグメントの向きと位置を定め、キャラクタのポーズを決定する。これらの情報を前述の基本手法に適用し、各セグメントmの移動変換を行う行列Mmを作成する。
 ステップ1501において、疑似視点の仮位置を定める。親階層の疑似視点位置enと自分のターゲット点位置tmとを結んだ直線の上に、以下の式を用いて、疑似視点位置emを設定する。
em=(enmtm)/(1+ηm)
本実施例では、ηmには、ノード構造体にあらかじめ保存されている定数パラメータを読み出して利用する。
 疑似視点位置emとカメラ方向から、疑似視点行列Vmを作る。疑似カメラの方向は基本カメラ(疑似でないカメラ)の方向と同じ方向にすることが望ましい。
 ステップ1502において、疑似射影行列のズーム補正量を決定する。疑似射影行列の画角を補正し、ジョイント点jmを含む平面z=Vnjm.z(en視点座標系)において、親ノードの疑似射影行列で写した画像のスケール(射影された画像の置きさ)と、このノードの疑似射影行列で写した画像のスケール(射影された画像の大きさ)とが、略一致するようにする。
 親ノードの疑似射影行列Pnが既に確定しており、
Figure JPOXMLDOC01-appb-M000013
であるとする。これを元に、ノードmの射影行列Pmを求める。Pmの成分は次のとおりとする。
Figure JPOXMLDOC01-appb-M000014
まず、以下のように画角のみを修正した疑似射影行列P’mを作る。
Figure JPOXMLDOC01-appb-M000015
 ステップ1503において、疑似射影行列の斜め補正量を決定する。すなわち、疑似射影行列の斜め補正量を修正し、ジョイント点jmを含む平面z=Vnjm.z(en視点座標系)において、親ノードの疑似射影行列で写した画像と、このノードの疑似射影行列で写した画像が、一致するようにシフト量を設定する。
 シフト量を設定する前の疑似射影行列であるP’mに対して、(0,2)及び(1,2)成分を以下のように修正し、これをPmとする。
Figure JPOXMLDOC01-appb-M000016
 ステップ1504において、疑似射影行列での各種情報を求める。画像が互いに衝突していないかを検討するために、各ノードの疑似射影行列について、以下の値を計算する。
 (1504-1)ターゲット点の二次元像位置を計算する。疑似射影処理PmVmによって写された画面上の座標(x,y)は、-1<x<1,-1<y<1となっている。この値に対して画面の縦横比を調整し、-1<x<1,-Sa<y<Saにした二次元座標値を二次元像と呼ぶことにする。ただし、Saは画面の縦横比(縦サイズ/横サイズ)である。
 ターゲット点tmの二次元像をt'mとする。t'mは次式により求められる。
t'm.x=PmVmtm.x/PmVmtm.w
t'm.y=[PmVmtm.y/PmVmtm.w]Sa
 (1504-2)ターゲット点の周りの二次元像のサイズを計算する。ターゲット点を中心とする微小三次元球(半径δ、δ<<1とする)の、二次元像の半径をρm(tm)δとし、このρm(tm)を計算する。ターゲット点を視点座標系のx方向にδだけ移動させたときの二次元像の移動量を使って近似してもよい。
ρm(tm)=[Pm(Vmtm+[δ,0,0,0]T).x/Pm(Vmtm+[δ,0,0,0]T).w-PmVmtm.x/PmVmtm.w]/δ
=Pm[δ,0,0,0]T.x/PmVmtm.w/δ
=pm00/PmVmtm.w
このρm(tm)をターゲット点の周りでの二次元像の拡大率と呼ぶ。
 (1504-3)擬似視点位置の移動に対する、二次元像の移動比率を求める。疑似視点位置emがem視点座標系のx方向に微小量(δ,0,0)だけ移動した場合に、画像上でターゲット点が移動する量を計算する。射影行列Pmを固定したまま、ジョイント点jmが(δ,0,0)だけ微小移動した場合に、ジョイント点の二次元像が移動する量は、ジョイント点の周りでの二次元像の拡大率ρm(jm)を用いて、ρm(jm)δと表現できる。したがって視点位置が(-δ,0,0)だけ移動した場合にも、ジョイント点はρm(jm)δだけ移動することとなる。
 疑似射影行列では、斜め補正の量を調整することで、ジョイント点の画像上の位置を一定に保つ。この斜め補正を行った場合、ターゲット点は
[Vm(jm-tm).z/Vm(jm-em).z]ρm(jm
だけ移動する。したがって、疑似視点位置emが視点座標系のx方向に微小量(δ,0,0)だけ移動した場合には、ターゲット点は画像上で
S(tm)δ=-ρm(jm)[Vm(jm-tm).z/Vm(jm-em).z]δ
だけ移動することとなる。この
S(tm)=-ρm(jm)[Vm(jm-tm).z/Vm(jm-em).z]
を、疑似視点位置の移動に対するターゲット点の二次元像の移動比率として保存しておくことが望ましい。
 図16は、疑似視点位置の移動によるターゲット点の移動を示している。
 点1610が、元の擬似視点位置を用いた場合のターゲット点の像の位置を示している。そして、点1620が擬似視点をδだけ移動した場合のターゲット点の像の位置を示している。
 図15に戻る。
 ステップ1505において、誇張画像のノード間で衝突判定を行う。誇張画像の全てのノードの組み合わせのペアに対して、誇張画像上で衝突が起こっていないかをチェックする。修正前の疑似視点位置を、e'mと表記して、詳細を以下に説明する。
 (1505-1)XY方向での衝突が起こっているか否かの判断を行う。この判断は、以下のようにして行ってもよい。
 二つのセグメントのペアを選び出す。それぞれのノード番号をm,kとする。それらのセグメントのターゲット点の二次元像t'm、t'kに対して、二次元平面上での距離を調べる。
    d0=((t'm.x-t'k.x)2+(t'm.y-t'k.y)2)1/2
 また、各ノードの衝突半径の、二次元平面上での大きさは、ターゲット点の衝突半径をそれぞれrm,rkとしたとき、ρm(tm)rm、ρk(tk)rkとなる。この和を
d1m(tm)rmk(tk)rk
とする。
 d0<d1、すなわち衝突半径の、二次元平面上での大きさの和が二次元平面上での距離よりも大きいならば、二次元平面上で衝突が起こっているとみなしてもよい。そして、以下のステップ(1505-2)に進む。
 (1505-2)Z方向で衝突範囲にあるかを確認する。ノードの奥行き方向の差をd2=|Vmtm.z-Vmtk.z|と設定する。
d2<rm+rk、すなわち奥行きの差が衝突半径の和よりも小さいならば、奥行き方向について衝突が起こりうるものとみなし、ステップ(1505-3)に進む。
 (1505-3)衝突の回避量を計算する。衝突を回避するために、それぞれの二次元像を移動させるべき量を計算する。衝突の回避に必要な二次元画像上で移動距離は、上記(1505-1)における変数によってd1-d0として計算できる。
 ノードごとにあらかじめ重さを設定しておき、この重さを使って移動量を配分してもよい。ノードm,kの重さを、それぞれαm、αkとする。ターゲット点tmの二次元画像上での移動量は、必要な移動距離にαm/(αmk)を掛けたものにしてもよい。
 二次元画像上でのターゲット点tmの移動方向(単位長の二次元ベクトル)は、
τ0m=(t'm-t'k)/|t'm-t'k|
で表せる。
 これに移動量を掛け、ターゲット点tmの二次元画像上の移動量(二次元ベクトル)は、
τ1m=(d1-d0)(αm/(αmk))τ0m
となる。
 この画像上の移動量τ1mを実現する疑似視点位置の修正量(視点座標系)をμmとし、これを次式により求めることができる。
μm.xy=[τ1m/S(tm)].xy
μm.zw=(0,0)
 (1505-4)擬似視点位置を修正する。最終的な修正後の疑似視点位置は、次式を満たすemとなる。
Vmem=Vme'mm
得られたemを使ってVmを作り直す。この修正を行うことによって、各セグメントのターゲット点の周辺物体が、不自然に重なり合うことを回避する。
 ステップ1506において、修正された疑似視点に合わせて射影行列のズーム補正量を再計算する。 ステップ1507において、修正された疑似視点に合わせて射影行列の斜め補正量を再計算する。このように擬似視点位置を修正することは、描画のためのパラメータの修正を意味する。
 [ステップ406:頂点の変換]
 図4に戻り、ステップ406において頂点の変換を行う。モデルの各頂点(基本ポーズにおける位置座標をp0とする)に対し対応するノードmを検索し、そのノードの疑似視点行列と疑似射影行列を用いて、誇張表現での視野空間の位置を計算する。
[x,y,z,w]T=PmVmMnp0を計算する。
 頂点は、最終的に二次元画像上の点(x/w,y/w)に写像される。
 また、別途通常の視点行列と射影行列を用いて、通常の視野空間の位置(基本カメラを使って射影変換された座標値)
[x0,y0,z0,w0]T=PVMmp0
の値を計算し、z0/w0を奥行き深度の値とする。
 [ステップ408:画素の塗り潰し]
 二次元画像上の画素を塗り潰す(ラスタライズ処理を行う)。
 この塗り潰しにおいては、最終的に手前の三角形の色が見えなければならないので、描画順序が重要になる。この描画の奥行き順序を守るために、頂点の変換によってえられた深度値z0/w0を用いて面をソートしておき、最も遠い面から描き、近い面で上書きしながら描画してもよい。
 上述の実施例2の手法による物体の重畳回避では、奥行き方向(視点座標系のz方向)のカメラの移動を行わなくてもよく、射影面に平行な方向(視点座標系のxy面)にカメラの移動を行ってもよい。またこの際、たとえば、射影面に平行な方向に疑似視点位置を動かす量と、画像上でオブジェクトが動いて見える量の比率をあらかじめ計算している。この比率を用いて、画像上でのオブジェクト重畳の回避に必要な量だけ疑似視点位置を動かしている。
 [その他の変形例について]上記実施例2の手法以外に、セグメントが衝突した場合、二つの疑似視点位置em,ekを、三次元的な重心(em+ek)/2の方向に向けてそれぞれ移動させてもよい。なお、この場合、移動量が不確定なため、微小量の移動を問題が解決するまで反復させることが望ましい。
[アニメーションの平滑処理]
 実施例2で取り上げた誇張描画の手法をアニメーションに用いた場合には、アニメーションの一部のフレームで、急激な姿勢の移動が起こる場合がある。これは、見た目上の重畳が起こった場合にのみ修正処理の調整効果が加わることに起因する。
 この場合、以下の手順を導入することで、アニメーションにおいて、よりスムーズにオブジェクトの重畳を回避することができる。
 実施例3の以下の説明は、冗長を避けるために、実施例2と異なる部分を中心に説明する。
 [処理の概要]
 アニメーションの各フレームfについて、疑似視点の仮位置e'm(f)を定める。この時、アニメーションの途中で、物体同士が衝突・接近したために表示位置を修正する処理が発生することがある。たとえば、このような修正が行われるフレームfcをあらかじめ検出し、その前後のフレームfc+1,fc-1の修正量を、フレームfcの修正量に近づける。この補正処理をN回反復処理して繰り返すと、修正量が伝播されて平滑化を行うことができる。
 [構成要素]
 視点位置・方向・画角の情報は、入力情報に応じてユーザーが決定するか、又はあらかじめ保存された情報によって決定され得る。これらの変化による画像の変化をカメラアニメーションと呼ぶ。カメラアニメーションにおいては、視点行列Vと射影行列Pが、それぞれフレームfの関数になる。
 また、キャラクタのポーズの変化に伴うアニメーションを、ポーズアニメーションと呼ぶ。ポーズアニメーションではモデリング行列Mmがフレームfの関数になる。
 ノードの構成を以下に示す。
あらかじめ保存されていることが望ましい情報は以下の通りである。
・基本ポーズにおけるターゲット点の位置t0 m
・基本ポーズにおけるジョイント点の位置j0 m
・衝突半径rm
・誇張係数ηm
・親ノードへのリンクn
動的に定められる情報は以下の通りである。
・現在のターゲット点の位置tm=Mm(f)t0 m
・現在のジョイント点の位置jm=Mm(f)j0 m
・モデリング行列Mm(f)
・疑似視点位置em(f)
・疑似視点行列Vm(f)
・疑似射影行列Pm(f)
・時間フレーム数に比例した疑似視点距離のデータ
 頂点の構成は以下の通りである。
・基本ポーズにおける位置座標p0=[x,y,z,1]T
・現在の位置座標p=Mm(f)p0
 [描画工程]
 描画のための工程全体を示す。
 [全体の流れ]
 工程全体の流れは先の実施例とほぼ同様の構成となるが、アニメーション時間に応じてフレーム数だけのパラメータを生成し、互いの影響を考慮することが望ましい。また、後述するように、疑似視点位置の修正を伝播させる計算を導入することが望ましい。他の実施例と同様に、図4を用いて処理の流れを順に説明する。
 [ステップ402:ポーズの決定]
 各フレームfごとに、全ノードmのモデリング行列Mmを設定する。また、このモデリング行列によって変換されたターゲット点の位置tm(f)=Mm(f)t0 mと、ジョイント点の位置jm(f)=Mm(f)j0 mとをそれぞれ計算する。
 [ステップ404:カメラの配置]
 カメラの配置は、たとえば実施例2での処理に基づき、以下の工程手順を経て決定してもよい。
 ただし、実施例2におけるステップ1500~ステップ1504の各処理工程では、フレームfに応じた値をそれぞれ計算し、保存する。また、ステップ1505の「誇張画像のノード間での衝突判定」においては、フレーム間の平滑化処理のために以下の1505-a1~1505-a4の各処理を行う。
 図17は、アニメーション平滑化のための処理フローを示している。以下では、図15及び図17を用いて実施例2と異なる部分について説明を行う。
 (1505-a1)
 全フレームに渡って以下の1505-a1の詳細処理を行い、修正量μn(f)を設定する(fはフレーム番号、nはノード番号)。
 (1505-a1-0)修正量の初期値の代入
 ステップ1702において、初期値の代入を行う。すなわち、
μn(f).xy=(0,0)
とする。
 (1505-a1-1)修正量の設定
 ステップ1704ないしステップ1712によって、全てのノードの組み合わせ(k,m)について、以下の1505-a1-1-1~1505-a1-1-2の処理を行う。
 (1505-a1-1-1)衝突確認
 ステップ1704において、ノードの対の選択を行う。そして、ステップ1706において、フレームfでxy方向での衝突が起こっているかを確認する。また、フレームfで、z方向で衝突範囲にあるかを確認する(ステップ1708)。衝突していれば、1505-a1-1-2でμm(f)、μk(f)を設定する。
 (1505-a1-1-2)修正量の計算
 フレームfで衝突を回避するための、疑似視点位置(視点座標系)の修正量μm(f)を計算する。μk(f)についても同様に計算を行うことができる(ステップ1710)。
τ0m=(t'm-t'k)/|t'm-t'k|
τ1m=(d1-d0)(αm/(αmk))τ0m
μm(f).xy=[τ1m/S(tm)].xy
μm(f).zw=(0,0)
 (1505-a2)フレーム間修正量の平滑化
 ステップ1714で隣接ノードを選択する。そして、ステップ1716において、フレーム間で、修正量μn(f)の平滑化処理を行う。各フレームfに対して、以下の1505-a2-1及び1505-a2-2の処理を行う。
 (1505-a2-1)修正量の平滑化
 全てのノードについて、次式によって、フレームfの修正量μm(f)を平滑化する(mはノード番号)。
μm(f).xy←μm(f).xy+σ(μm(f+1).xy-μm(f).xy)+σ(μm(f-1).xy-μm(f).xy)
 この式は、μm(f).xyの値をμm(f-1).xy及びμm(f+1).xyに近づける働きをする。σの値としては例えば0.5が挙げられる。本発明は、この値に限定されるものではない。この平滑化によって、1505-a1-1で設定した修正量が減ることも起こり得るが、下記1505-a4の反復により再度修正が行われる。
 (1505-a2-2)衝突再判定
 ステップ1718において、全てのノードの組み合わせ(k,m)について、1505-a1-1-1のルーチン処理を用いて、フレームfの画像上での衝突が再び発生していないかを判定する(ステップ1722)。衝突している場合、フレームfの修正量平滑化をキャンセルしてもよい(ステップ1720)。そして、次のフレームに処理を進める。
 (1505-a3)擬似視点位置を修正する
 修正量μm(f)に基づいて、以下の式を利用して、疑似視点位置を修正する。
Vm(f)em(f)=Vm(f)e'm(f)+μm(f)
 以上の処理を全隣接ノードに対して行う(ステップ1724)。
 (1505-a4)修正の反復
 ステップ1726において、上記の1505-a1~1505-a3の処理を繰り返す。計N回反復する。
 以上の処理によって、カメラ位置の移動量が決定される(ステップ1728)。 [ステップ406:頂点の変換]
 各フレームfに対して、頂点の変換を行う。
 モデルの各頂点(基本ポーズにおける位置座標をp0とする)に対し対応するノードmを検索し、そのノードの疑似視点行列と疑似射影行列を用いて、誇張表現での視野空間の位置を計算する。
[x,y,z,w]T=Pm(f)Vm(f)Mm(f)p0
頂点は、最終的に二次元画像上、別途通常の視点行列と射影行列を用いて、他の実施例と同様に、通常の視野空間の位置(基本カメラを使って射影変換された座標値)を求めればよい。すなわち、
[x0,y0,z0,w0]T=P(f)V(f)Mm(f)p0
の値を計算し、z0/w0を奥行き深度の値とすることができる。
 [ステップ408:画素の塗り潰し]
 各フレームfに対して、二次元画像上の画素を塗り潰す(ラスタライズ処理を行ってもよい)。この塗り潰しにおいては、最終的に手前の三角形の色が見えなければならないので、描画順序が重要になる。この描画の奥行き順序を守るために、頂点の変換によってえられた深度値z0/w0を用いて面をソートしておき、最も遠い面から描き、近い面で上書きしながら描画してゆくことが望ましい。
[誇張係数パメラータの設定]
 以上の実施例では、関節部位のそれぞれに対して、カメラの位置を制御するためのパラメータ(誇張係数)をあらかじめ設定することが望ましい。なお、類似のモデルを既に作成した場合には、誇張係数として同じ値、又は略同じ値を用いることで作業を効率化することが期待できる。しかしながら、新しいモデルを作成したときに、以下のような理由でパラメータの流用が困難な場合が想定される。
(1)全てのモデルで関節部位が一対一に対応しているとは限らない。例えば、スカートのような洋服の部位、長い髪の毛等にもボーンを設定し、ポーズを定められるようにしたモデルがある。このような場合に、各部位に対してそれぞれ誇張係数を定める場合には、調整の手間が大きい。
(2)異なる体型の人型物体のモデルを作成した場合には、適切なパラメータを新たに設定しなければならない場合がある。
 以下に述べる実施例4は、誇張係数が定められていない新たなモデルに対しても、基本となる形状タイプを選択することによって誇張係数のパラメータが類推されて設定され得る。
 [処理の概要]
 標準的な形状のモデル(標準エンベロープ)を用いる。ある特定のモデルに、既に適切な誇張係数が設定されていると仮定する。標準エンベロープ(あるいはモデル)のポーズ又は各部位寸法を調整することで、モデルの関節位置と標準エンベロープの対応する関節位置を概ね一致させることができる。その状態で、たとえば、標準エンベロープの各頂点に対して、最も近いターゲット点に関連付けられた誇張係数の値を、その頂点の誇張係数として保存する。
 誇張係数の値が保存された標準エンベロープをデータベースに保存し、新規モデル作成時に、この標準エンベロープの情報を呼び出して使うことができる。
 たとえば、新しいモデルの各ターゲット点に対して、標準エンベロープの最も近い頂点を探し、その頂点の誇張係数の値をターゲット点の誇張係数とする。
 標準エンベロープは、キャラクタの種類(体型など)に応じて複数用意してもよい。
 構成要素として、たとえば以下のものが挙げられる。
・モデル形状
・関節構造
・標準エンベロープモデル
 標準エンベロープモデルの頂点データとして、たとえば以下のものが挙げられる。
・頂点の位置
・誇張係数
 [全体の流れ]
 全体の流れは、誇張係数を割り当て済みのモデルから、エンベロープに誇張係数をコピーする工程と、誇張係数が割り当てられていないモデルに、エンベロープから誇張係数をコピーする工程の二つに大きく分けられる。
 図18は、モデルの各部位への誇張パラメータの設定のフローを示す図である。図18(A)は、標準エンベロープ作成段階のフローの例を示している。図18(B)は、新規モデルへの誇張係数のコピーのフローの例を示している。以下、実施例4の詳細を説明する。
 [A.エンベロープ作成段階]
 図19は、3Dキャラクタとエンベロープの重ね合わせを示している。3Dキャラクタ1902は、すでに誇張係数が設定されていると仮定する。
 ステップ1812において、人間の標準形態を表す簡易形状のモデルである標準エンベロープ1904を読み込む。この標準エンベロープ1904は、複数の頂点から構成されているが、3Dキャラクタ1902よりは粗い(頂点数が少ない)作りであってもよい。
 ステップ1814において、関節点の位置のフィットが行われる。具体的には、3Dキャラクタ1902の関節点と、標準エンベロープ1904の関節点(たとえば、エンベロープの間節位置1906)の位置を略一致させる処理を行ってもよい。標準エンベロープ1904の関節点と同じ名前の関節点が3Dキャラクタ1902に設定されている場合には、標準エンベロープ1904の関節点の位置を3Dキャラクタ1902の関節点の位置に移動してもよい。関節の対応関係が誤りである場合、又は適切な関節が存在していない場合には、オペレータに関節点の位置を動かすよう促してもよい。
 標準エンベロープ1904の頂点pは、以下の手順で関節点の位置1906に合わせて移動させる。まず、標準エンベロープ1904の頂点Pの近傍の3Dキャラクタの関節点の位置(j0,j1,j2,…,jK-1)を抽出し、頂点Pから関節点の位置までの距離(d0,d1,d2,…,dK-1)を計算する。それらの関節点の移動量(v0,v1,v2,…,vK-1)を補間して、頂点Pの移動量vを以下のように決定してもよい。
Figure JPOXMLDOC01-appb-M000017
 ステップ1916において、誇張係数のコピーを行う。エンベロープの各頂点pについて、近傍のターゲット点を上位N個だけ探す。頂点pの近傍にあるターゲット点を(t0,t1,t2,…,tN-1)とし、pからターゲット点までの距離(d0,d1,d2,…,dN-1)を計算する。
 それらのターゲット点の誇張係数(η012,…,ηN-1)を補間して、誇張係数ηを以下のように決定してもよい。
Figure JPOXMLDOC01-appb-M000018
 ステップ1818において、エンベロープデータの保存が行われる。関節位置を変更し、エンベロープの各頂点の情報(誇張係数、3D情報、ターゲット点から頂点までの距離)を、データベースに保存してもよい。またこの際に、コピー元となった3Dキャラクタの画像と、作成者の名前、又は設定コンセプトの意図を記したテキスト情報も併せて保存してもよい。
 一般に、誇張の度合いをどのように設定するかについては必ずしも最適値がある訳ではなく、モデルの種類(男性キャラクタ/女性キャラクタ/ロボット/ぬいぐるみなど)、又は作家の個性などによってばらつきがある。そこで、誇張係数を設定するコンセプトとして、たとえば特定のアニメーション会社、又は特定の作家の作風をシミュレーションした場合には、シミュレーションのモデルとなった作家の名前を、設定コンセプトの意図を記したテキスト情報として記載してもよい。
 [B.新規モデルへの誇張係数のコピー]
 まだ誇張係数が指定されていない3Dキャラクタのモデルに対して、以下の手順で誇張係数をコピーすることができる。
 ステップ1832において、前記のステップ1818で保存した標準エンベロープを呼び出す。標準エンベロープが複数用意されている場合には、キャラクタの種類(体型など)に応じて適切なものを選ぶ。選択の方法の一例を挙げる。データベースに蓄えられた既存の標準エンベロープ情報と、そのエンベロープ作成時に使われた3Dキャラクタの画像をデータベースから呼び出して、一覧画面上に提示する。この際、関節間の距離の比率が現在のモデルに近いものから順にソートして並べてもよい。またこの際に、作成者の名前、又は設定コンセプトの意図を記したテキスト情報も併せて表示してもよい。
 利用者はこの一覧の中から一つのモデルを指定し、その保存された標準エンベロープを呼び出す。複数の候補がある場合には、補間データの影響度を手動で操作する機構を用意してもよい。表示画面には、モデルの元情報が記載されており、誇張係数の設定コンセプトが保存されている。手動入力画面を用いることで、複数の選択肢の中から、状況に有った誇張パラメータを選び出すことができる。
 或いは、パターン認識技術を利用して、キャラクタとのマッチングを行ってもよい。所定のパターン認識技術を用いて、最も近い標準エンベロープを読み出してもよい。或いは、キャラクタに近い複数種類の標準エンベロープを取り出して、選択できるように表示してもよい。オペレータに複数種類のエンベロープから、1つの標準エンベロープを選択するよう促してもよい。
 ステップ1834において、関節位置のフィットを行う。標準エンベロープの関節位置を3Dキャラクタの関節位置に移動する。上述の手法を持用いて、エンベロープの関節位置をモデルの対応する関節位置に移動し、関節点の移動量(v0,v1,v2,…,vK-1)からエンベロープ頂点の移動量vを以下のように決定してもよい。
Figure JPOXMLDOC01-appb-M000019
この移動量vに基づいて、エンベロープの頂点を移動させてもよい。
 ステップ1836において、拡張計数のコピーを行う。現在の3Dキャラクタのターゲット点について、もっとも近傍にある標準エンベロープの頂点を上位N個だけ探す。このN個の頂点からターゲット点までの距離及び頂点の誇張係数を、それぞれ(d0,d1,d2,…,dN-1)、及び(η012,…,ηN-1)とする。このN個の誇張係数を補間して、新しい誇張係数ηを以下のように決定してもよい。ただし、右辺のηkは標準エンベロープの頂点の誇張係数、左辺のηは新しい3Dモデルのターゲット点に保存される誇張係数である。
Figure JPOXMLDOC01-appb-M000020
 [複数モデルの混合]
 また、複数のモデルを指定して読み込むことが必要になる場合がある。たとえば現在のモデルが長い髪の毛のボーンなどを保持しており、コピー対象としたいエンベロープにおいては対応するパーツが存在しない場合がある。この場合、その部分だけは別のモデルから誇張係数を呼び出して用いたいという要望が想定される。この場合に、以下のような処理を行ってもよい。
「ステップ1832のエンベロープの選択と読込」の工程において、複数(H個)のエンベロープデータと、それぞれの影響度q0,q1,q2,…,qH-1を入力する。
「ステップ1836の誇張係数のコピー」の工程において、以下のように誇張係数を計算してもよい。
Figure JPOXMLDOC01-appb-M000021
 ただし、右辺のηh,kはエンベロープから呼び出された誇張係数であり、左辺のηは新しい3Dモデルのターゲット点に保存される誇張係数である。この処理によって、関節点の近くにあるデータがより大きな重みづけをされるようになるため、参照するデータのうちで対応するボーンが存在しないモデルからの影響が小さくなる。
 [ボーンの利用]
 ボーン構造を持った3Dキャラクタを扱う場合には、エンベロープの替わりにボーンを使う方法も可能である。標準エンベロープの替わりに標準ボーンモデルを用意してもよい。標準ボーンモデルの各ボーンに誇張係数を保存しておいてもよい。新しいキャラクタモデルを使う際には、まず標準ボーンモデルとの間で対応する部位のボーンどうし(複数対複数)に対応関係を付けてもよい。次にキャラクタの各ターゲット点に対して標準ボーンから誇張係数をコピーしてもよい。
 また、ブレンド比率を手動入力する機構を付与することによって、作家の誇張作風をブレンドするシミュレーションを行うこともできるようになる。
[誇張量の動的な調整]
 上述の基本技法では、関節部位の位置だけで、誇張の量が自動的に決まってしまう。しかしながら、実際にはパースの誇張を行いたい場合と行いたくない場合が存在することがある。例えば、視点に向けて手を突き出している場合には誇張を行う方がインパクトのある映像が作れるが、目の前のペン(誇張されていない物体)に手を伸ばしている場合にはパースの誇張表現を行わない方が、ペンと手の大きさの矛盾が顕著とならない。
 また、画面奥方向に向かって伸びている物体に対しては、パースの誇張を用いる作風と用いない作風がある。また特に画面奥行き方向に誇張する場合にも、例えば地面と足が接している場所では矛盾が生じることもある。
 実施例5では、このよう各状況に応じて、誇張操作を用いるか用いないかを自動で使い分ける機能を実現する例を示す。
 [処理の概要]
 実施例5では、各ノードが特定の意味条件を満たしているかを判断し、その結果に応じて誇張係数を変動させてもよい。たとえば、以下の三条件を判断基準とすることができる。
(1)物体の近接判定:ターゲット点が、特定の物体と接近しているか。
(2)方向指示の判定:ジョイント点からターゲット点に向かう方向が、特定の物体に向いているか。
(3)ポーズの判定:モデルの関節構造が、あらかじめ定められたポーズと類似しているか。
 この条件の何れかを満たしているノードの組み合わせが有った場合、誇張量の制御グラフ上に補助枝を追加してもよい。そして、グラフ内で誇張係数を伝播させて、制約条件を満たすような距離を調達してもよい。この誇張量を制御するために用いる距離を、疑似視点距離と呼ぶ。
 疑似視点距離は、基本視点位置e0から疑似視点位置emに向かうベクトルの、視点座標系におけるz方向成分として定義され、これをezmとする。この疑似視点距離の設定に際しては、誇張量の比較対象となる点を親ノードに限らずに自由に設定してもよい。この点を比較母点とよび、比較母点を含むノードのIDをbで表現する。
 基本技法では、疑似視点の位置は、上段ノードでの比率をあらわす誇張係数を用いて設定された。この実施例では、たとえば、疑似視点距離ezm=V0(em-e0).zを先に決定し、この値に合わせて疑似視点位置を移動させる。
 以下に述べる実施例では、カメラと被写体の距離を制御して非整合を起こしている特定領域の見た目の大きさを調整する操作を、スクリーン平面に沿ったカメラ位置を調整する操作とは独立に行ってもよい。
 [構成要素]
 ノードの構成
 あらかじめ保存されていることが望ましい情報は以下の通りである。
・基本ポーズにおけるターゲット点の位置t0 m
・基本ポーズにおけるジョイント点の位置j0 m
・衝突半径rm
・誇張距離係数ψm
・親ノードへのリンクn0
・比較母点を含むノードへのリンクb
・基本ポーズにおける比較母点の位置j0 b
 動的に定められる情報は以下の通りである。
・現在のターゲット点の位置tm
・現在のジョイント点の位置jm
・現在の比較母点の位置jb
・一時接続ノードへのリンク[n1,n2,n3,…]
・一時接続ノードへの影響度[q1,q2,q3,…]
・疑似視点位置em
・疑似視点行列Vm
・疑似射影行列Pm
・視線方向の影響値νm
 頂点の構成は以下の通りである。
・基本ポーズにおける位置座標p0=[x,y,z,1]T
・現在位置p=Mmp0
 ポーズ(関節の角度)のパターン(ポーズc)は以下の通りである。
・ノードのID番号[m0,m1,m2,…,mK-1]
・ノード(関節)の角度[R0,R1,R2,…,RK-1]
・誇張距離調整係数φc
 [描画工程]
 [全体の流れ]
 本実施例では、ポーズ決定時に、3Dモデルにおける物体との衝突判定、モーションのパターン、視線との向きなどの意味条件を判別する。たとえば、その値に応じて、疑似視点距離を変更する。以下、図4のフローを再度用いて、処理の流れを説明する。なお、重複した説明を避けるため、本実施例に特有の変更点を主に説明する。
 [ステップ402:ポーズの決定]
 1-1 モデリング行列の設定
 シーンに物体を配置する。関節モデルについては、ポーズをそれぞれ設定する。各ノードmについて、回転角度のデータRmを呼び出し、先に述べた順運動学に基づいた手法に基づき、ノードmごとに、モデリング行列Mmを設定する。
 1-2 ターゲット点、ジョイント点の確定
 モデリング行列によって変換されたターゲット点の現在位置tm=Mmt0 mと、ジョイント点の現在位置jm=Mmj0 mとを計算する。
 1-3 物体の接続判定
 シーン内にあるノードの組み合わせ(m0,m1)について、たとえば、接触判定を行う。ノードm0,m1として想定される例としては、m0が身体部位(例えば手)で、m1が物体(例えば拳銃)、が挙げられる。
 ノードのターゲット点の距離|tm0-tm1|が、衝突距離rm0+rm1より小さい場合には、接触がある(例えば拳銃を手に持っている)とみなし、ノードm0の一時接続ノードリストに、ノードm1を登録する。またノードm1の一時接続ノードリストに、ノードm0を登録することが望ましい。
 この際、いくつかの特別な物体には、たとえば、値φcを関連付けて登録しておき、接触したノードの誇張距離係数をψm←ψmφcと変化させてもよい。これにより、物体に接触した場合にパースの誇張を更に強調することができる。たとえば、拳銃、日本刀など、保持するポーズにインパクトを与えたいオブジェクトについては、このような処理を行うと効果的である。
 1-4 方向指示の判定
 母点b0からターゲット点m0に向かう方向が、特定の物体m1に向いているかの判定を行ってもよい。想定される例としては、母点ノードb0のジョイントが肩、ノードm0のターゲットが指先、ノードm1のターゲットが宝箱である場合が挙げられる。たとえば、方向tm0-jb0(例えば肩から指先に向かう方向)と、方向tm1-jb0(例えば肩から宝箱に向かう方向)のなす角度が閾値角度以下であった場合には、特定の物体に向いている(例えば宝箱を指さしている)とみなす。そして、ノードm0の一時接続ノードリストに、ノードm1を登録する。またノードm1の一時接続ノードリストに、ノードm0を登録してもよい。
 この際、いくつかの特別な物体には、たとえば、値φcを関連付けて登録しておき、誇張距離係数をψm←ψmφcと変化させてもよい。これにより、身体部位の方向が特定の物体に向いている場合、例えば宝箱を指さすなどの動作が行われた場合に、パースの誇張を強調して行うことができる。
 1-5 ポーズの判定
 モデルの一部の関節角度が、あらかじめ設定された関節角度に近いかを判定してもよい。たとえば、手首から先のノード関節情報[m1,m2,m3,…]について、あらかじめピースサインのポーズの関節角度[R1,R2,R3,…]を登録しておく。この角度に近い場合にはピースサインのポーズであると判定してもよい。
 特定のポーズであると判定された場合には、たとえば、モデルのノードの誇張距離係数ψmに、そのポーズに関連付けて登録されていた値φcを掛け合わせ、ψm←ψmφcと調整する。たとえば、ピースサイン、ガッツポーズなど、特定のポーズにインパクトを与えたい場合は、このような処理を行うと効果的である。
 1-6 視線方向の影響による調整
 視線方向影響値νを使って、誇張距離係数ψmを調整することができる。ノードの特徴的な方向を表すのに適した母点を、ノード上に設定しておく。例えば、前腕に相当するノードのターゲット点が手首の位置に設定されているときに、肘付近に母点を設定する。すると、母点からターゲット点に向かう方向が、前腕がどの方向を向いているかを表すことになる。
 たとえば、母点からターゲット点に向かう方向tm-jbと、母点から視点位置への方向e0-jbとのなす角度θを計算する。cosθが正、すなわち対象ノードが視点の方向を向いている場合にはνm=cosθ、そうでない場合にはνm=0を保存する。そして、νmが正の場合、誇張距離係数ψmにνmを掛け合わせ、ψm←ψmνmと調整してもよい。
 1-7 擬似視点距離の導出
 モデルのノードに対して、たとえば、以下のように疑似視点距離ezmを定めることができる。
Figure JPOXMLDOC01-appb-M000022
 1-8 擬似視点距離の伝搬
 疑似視点までの距離に矛盾が生じて、画像上での大きさの狂いが生まれないように、疑似視点距離を伝播させることができる。例えば、手の誇張量と手に持った物の誇張量が大きく異なると不自然であるため、両者の誇張量を調整することができる。
 上述の1-7で設定した値ezmに対して、疑似視点距離の補正値ζmを与える。互いに親子関係にあるか、一時接続ノードとして登録されている条件を満たしたノードの組み合わせをCとしたとき、以下の評価関数Φを最小化するようにζmを調整してもよい。
Figure JPOXMLDOC01-appb-M000023
この式の右辺第1項は、親子関係又は一時接続関係にあるノード(m0とm1)について、両者の誇張程度をなるべく同程度にする効果を持つ。また右辺第2項は、修正量ζm自体をなるべく小さくする効果を持つ。βは、両効果の強さ(両者の比)を調整するパラメータである。
 得られたζmを使って、以下のようにしてezmを調整することができる。
    ezm←ezm+ζm
 [ステップ404:カメラの配置]
 他の実施例との変更点を主として説明する。たとえば、基本となるカメラパラメータ(視点の位置e0、カメラの方向θ0、画角)を設定する。これらの情報から、視点行列V0、射影行列P0を作成する。視点行列V0は、視点位置e0を原点とする移動行列T(pをp-e0に平行移動する)と、視線方向θをz軸に回転する回転行列R0によってV0=R0T0として定義される。
 射影行列には、既に説明した形式の行列を以下のように設定する。
Figure JPOXMLDOC01-appb-M000024
このときp00,p11が、それぞれ水平方向・垂直方向の画角(その半分の正接の逆数)になる。たとえば、各セグメントmに、カメラパラメータ(視点の位置、カメラ方向、画角)を設定する。これらの情報から、視点行列Vm、射影行列Pmを作成してもよい。
 2-1 擬似視点の位置を定める
 疑似視点距離ezmを使って、疑似視点の位置を定める。たとえば、親階層の疑似視点位置enと自分のターゲット点位置tmとを結んだ直線の上に、以下のように疑似視点位置emを設定する。
Figure JPOXMLDOC01-appb-M000025
 2-2 擬似射影行列のズーム補正量を決定する
 疑似射影行列の画角を補正し、ジョイント点jmを含む平面z=Vnjm.z(en視点座標系)において、親ノードの疑似射影行列で写した画像のスケールと、このノードの疑似射影行列で写した画像のスケールが、略一致するようにする。
親ノードの疑似射影行列Pnが以下のように既に確定しており、
Figure JPOXMLDOC01-appb-M000026
であるとする。これを元に、ノードmの射影行列Pmを求める。Pmの成分は次のとおりとする。
Figure JPOXMLDOC01-appb-M000027
まず、以下のように画角のみを修正した疑似射影行列P’mを作る。
Figure JPOXMLDOC01-appb-M000028
 2-3 擬似射影行列の斜め補正量を決定する
 疑似射影行列の斜め補正量を修正し、ジョイント点jmを含む平面z=Vnjm.z(en視点座標系)において、親ノードの疑似射影行列で写した画像と、このノードの疑似射影行列で写した画像が、略一致するようにシフト量を設定する。
 シフト量を設定する前の疑似射影行列P’mに対して、(0,2,)成分及び(1,2)成分を以下のように修正し、これをPmとする。
Figure JPOXMLDOC01-appb-M000029
 以上の2-1から2-3の手順に従って、たとえば、トップダウンで親ノードから順に疑似カメラを配置してゆく。
 [ステップ406:頂点の変換]
 モデルの各頂点(基本ポーズにおける位置座標をp0とする)に対し対応するノードmを検索し、そのノードの疑似視点行列と疑似射影行列を用いて、誇張表現での視野空間の位置を以下の式により計算してもよい。
[x,y,z,w]T=PmVmMmp0
頂点は、最終的に二次元画像上の点(x/w,y/w)に写像される。また、別途通常の視点行列と射影行列を用いて、通常の視野空間の位置(基本カメラを使って射影変換された座標値)
[x0,y0,z0,w0]T=PVMmp0
の値を計算し、z0/w0を奥行き深度の値とする。
 [ステップ408:画素の塗り潰し]
 二次元画像上の画素を塗り潰す(ラスタライズ処理)。この塗り潰しにおいては、最終的に手前の三角形の色が見えなければならないので、描画順序が重要になる。この描画の奥行き順序を守るために、たとえば、頂点の変換によってえられた深度値z0/w0を用いて面をソートしておき、最も遠い面から描き、近い面で上書きしながら描画してゆく。
 [アニメーションとの組合せ]
 実施例3に記載したようなアニメーションに対する平滑化処理を適用する場合には、「工程1-8 疑似視点距離の伝播」での評価関数Φに、フレーム内の変動をあらわす項として、
Figure JPOXMLDOC01-appb-M000030
を加え、以下のように変化させて、最適化処理の処理を行ってもよい。
Figure JPOXMLDOC01-appb-M000031
[ピッキング処理]
 ピッキング処理とは、画面上に表示された三次元オブジェクトの一部をポインティングデバイス、又は指等によってポイントした場合に、どのオブジェクトがポイントされたかを認識する処理を言う。
 上述の各種実施例においては、三次元オブジェクトが複数のカメラによって二次元にレンダリングされているため、ピッキング処理における対処が必要となる。ピッキングの処理を実現させる実装例としては、以下のものが挙げられる。
(a)ボーン、又は関節等を選択してオブジェクトのポーズを変えるもの。
(b)メッシュを選択してオブジェクトの細部を調整するもの。
 上記(a)の場合には、実際のオブジェクトのボーン、及び関節の数には、限りがあるため、ボーン及び関節の位置情報を記憶部に記憶させておいてもよい。そして、画面上の点がポイントされた場合には、そのポイント点に最も近いボーン又は関節が選択されたと判定してもよい。
 上記(b)の場合には、たとえば、ポリゴンの各頂点に対して画像上の二次元を保存するバッファ領域を与える。このバッファ領域にレンダリング時の二次元位置の情報を保存することで、ピッキング処理の認識を行うようにしてもよい。
 図20は、本明細書において説明した各種の実施例をインプリメントするシステム2000のハードウエアの構成例を示している。システム2000は、CPU2001、ディスプレイ2002、タッチスクリーン2004、キーボード2006、マウス2008、ROM2010、RAM2012、可搬記録媒体2015を読み書きする外部メモリインターフェース2014、ネットワークとの通信を行う通信インターフェース2016、及び各ハードウエアを接続するバス2020を含む。なお、ディスプレイ2002、タッチスクリーン2004、キーボード2006、マウス2008などの入力出力デバイスは、例示であり、これらの全てを含む必要はない。また、他の入出力デバイスが利用されてもよいことは言うまでもない。
 なお、本実施例の全部又は一部はプログラムによってインプリメントされ得る。このプログラムは、可搬記録媒体2015に格納することができる。可搬記録媒体2015とは、1つ以上の非一時的(non-transitory)な記憶媒体を言う。例示として、可搬記録媒体816としては、磁気記録媒体、光ディスク、光磁気記録媒体、不揮発性メモリなどがある。磁気記録媒体には、HDD、フレキシブルディスク(FD)、磁気テープ(MT)などがある。光ディスクには、DVD(Digital Versatile Disc)、DVD-RAM、CD-ROM(Compact Disc-Read Only Memory)、CD-R(Recordable)/RW(ReWritable)などがある。また、光磁気記録媒体には、MO(Magneto-Optical disk)などがある。可搬型記録媒体に格納されたプログラムが読み込まれ、プロセッサによって実行されることにより、本発明の実施例の全部又は一部が実施され得る。
 なお、本明細書の[発明を実施するための形態]及び[実施例]の項に記載した上述の記載は、発明を理解するためのものであり、本発明の範囲を限定するためのものではない点に留意すべきである。また、上述の複数の[発明を実施するための形態]及び[実施例]に記載された内容は、相互に排他的なものではない。したがって、矛盾が生じない限り、異なる箇所に記載された各要素を組み合わせることも意図されていることに留意すべきである。また、請求項に記載された方法、及びプログラムに係る発明は、矛盾のない限り処理の順番を入れ替えてもよい。あるいは、複数の処理を同時に実行してもよい。そして、これらの実施例も、請求項に記載された発明の技術的範囲に包含されることは言うまでもない。
 また、コンピュータが読み出したプログラムコードを実行することにより、上述の実施例の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS、仮想マシンモニタVMM、ファームウエア、BIOSなどのプログラムが実際の処理の一部又は全部を行ない、その処理によって実施例の機能が実現される場合も、本発明に含まれることは言うまでもない。
 また、本発明の各種実施例のそれぞれの構成要素は、物理的に分離された複数のハードウエアで実現されてもよい。また、本発明の各種実施例のそれぞれの構成要素は、1つ以上のサーバ上で動作することによって実現されてもよい。また、本発明に係るプログラムを実行するCPUは複数であってもよく、また、各CPUは複数のコアを含んでいてもよい。
 また、本発明は、汎用コンピュータ、ラップトップコンピュータ、ハンドヘルドコンピュータ、携帯電話、テレビジョン、ゲーム機器など、少なくともCPUとメモリとを具備するその他の装置にインプリメントすることができる。
 以上の実施形態に関し、以下の付記を開示する。
(付記1)
 三次元空間に存在する、複数のノードを含む三次元モデルを複数の視点を用いて描画する装置であって、
 前記複数のノードの各々と前記複数の視点の各々との対応関係、前記三次元モデルを構成する複数のポリゴンの各頂点の描画位置に関して前記複数のノードの各々が与える影響度、及び前記複数の視点の各々が持つ描画パラメータを含む、描画情報を格納するメモリと、
 前記描画情報を用いて、前記複数のポリゴンによって、前記三次元モデルを画像に変換するCPUと、
 を有する描画装置であって、
 前記CPUは、
  所定のイベントに応答して、前記描画情報を変更し、
  前記複数のポリゴンの頂点の各々に対して、変更された前記描画情報に基づいて、前記頂点が属しているノードに対応する視点を用いて前記頂点の描画位置を算出する、
 描画装置。
(付記2)
 前記所定のイベントが、オペレータからテンプレートモデルの選択を受け取るイベントである場合、
 前記CPUは、前記描画情報を変更する処理として、
 前記三次元モデルの複数のノードの各々と、前記テンプレートモデルの複数のノードの各々を対応付け、
 前記テンプレートモデルの描画情報を、前記三次元モデルの描画情報として、前記メモリに格納する、
 付記1記載の描画装置。
(付記3)
 前記所定のイベントが、オペレータから複数のテンプレートモデルの選択を受け取るイベントである場合、
 前記CPUは、前記描画情報を変更する処理として、
 前記複数のテンプレートモデルから、パターン認識に基づき、前記三次元モデルに最も類似するテンプレートモデルを選択し、
 選択された前記テンプレートモデルの描画情報を、前記三次元モデルの描画情報として、前記メモリに格納する、
 付記1又は2記載の描画装置。
(付記4)
 前記所定のイベントが、所定のノードが、所定の位置の範囲に存在するイベントである場合、
 前記CPUは、前記描画情報を変更する処理として、
 前記描画情報の所定の項目を所定の値に変更する、
 付記1ないし3のうちいずれか1項記載の描画装置。
(付記5)
 前記所定のイベントが、所定の1以上のノードが所定の形状を形成したことを認識するイベントである場合、
 前記CPUは、前記描画情報を変更する処理として、
 前記描画情報の所定の項目を所定の値に変更する、
 付記1ないし4のうちいずれか1項記載の描画装置。
(付記6)
 前記所定のイベントが、所定の複数のノード間で衝突が発生したことを認識するイベントである場合、
 前記CPUは、前記描画情報を変更する処理として、
 前記描画情報の所定の項目を所定の値に変更する、
 付記1ないし5のうちいずれか1項記載の描画装置。
(付記7)
 三次元空間に存在する、複数のノードを含む三次元モデルを複数の視点を用いて描画する方法であって、
 メモリに格納された、前記複数のノードの各々と前記複数の視点の各々との対応関係、前記三次元モデルを構成する複数のポリゴンの各頂点の描画位置に関して前記複数のノードの各々が与える影響度、及び前記複数の視点の各々が持つ描画パラメータを含む、描画情報を用いて、CPUが、
 所定のイベントに応答して、前記描画情報を変更するステップと、
 前記複数のポリゴンの頂点の各々に対して、変更された前記描画情報に基づいて、前記頂点が属しているノードに対応する視点を用いて前記頂点の描画位置を算出するステップと、
 を有する描画方法。
(付記8)
 前記描画情報を変更するステップは、
 前記所定のイベントが、オペレータからテンプレートモデルの選択を受け取るイベントである場合、
 前記三次元モデルの複数のノードの各々と、前記テンプレートモデルの複数のノードの各々を対応付けるステップと、
 前記テンプレートモデルの描画情報を、前記三次元モデルの描画情報として、前記メモリに格納するするステップと、
 を更に有する付記7記載の描画方法。
(付記9)
 前記描画情報を変更するステップは、
 前記所定のイベントが、オペレータから複数のテンプレートモデルの選択を受け取るイベントである場合、
 前記複数のテンプレートモデルから、パターン認識に基づき、前記三次元モデルに最も類似するテンプレートモデルを選択するステップと、
 選択された前記テンプレートモデルの描画情報を、前記三次元モデルの描画情報として、前記メモリに格納するステップと、
 を更に有する付記7又は8記載の描画方法。
(付記10)
 前記描画情報を変更するステップは、
 前記所定のイベントが、所定のノードが、所定の位置の範囲に存在するイベントである場合、
 前記描画情報の所定の項目を所定の値に変更するステップ、
 を更に有する付記7ないし9のうちいずれか1項記載の描画方法。
(付記11)
 前記描画情報を変更するステップは、
 前記所定のイベントが、所定の1以上のノードが所定の形状を形成したことを認識するイベントである場合、
 前記描画情報の所定の項目を所定の値に変更するステップ、
 を更に有する付記7ないし10のうちいずれか1項記載の描画方法。
(付記12)
 前記描画情報を変更するステップは、
 前記所定のイベントが、所定の複数のノード間で衝突が発生したことを認識するイベントである場合、
 前記描画情報の所定の項目を所定の値に変更するステップ、
 を更に有する付記7ないし11のうちいずれか1項記載の描画方法。
(付記13)
 付記7ないし12のうち何れか1項記載の方法を、コンピュータに実行させるプログラム。
(付記14)
 付記13記載のプログラムを格納した非一時的な記憶媒体。
402 ポーズの決定
404 カメラの配置
406 頂点の変換
408 画像の塗り潰し

Claims (8)

  1.  三次元空間に存在する、複数のノードを含む三次元モデルを複数の視点を用いて描画する装置であって、
     前記複数のノードの各々と前記複数の視点の各々との対応関係、前記三次元モデルを構成する複数のポリゴンの各頂点の描画位置に関して前記複数のノードの各々が与える影響度、及び前記複数の視点の各々が持つ描画パラメータを含む、描画情報を格納するメモリと、
     前記描画情報を用いて、前記複数のポリゴンによって、前記三次元モデルを画像に変換するCPUと、
     を有する描画装置であって、
     前記CPUは、前記複数のポリゴンの頂点の各々に対して、
      前記頂点が属しているノードに対応する視点を用いて前記頂点の描画位置を算出し、
      前記影響度に基づいて、算出された前記頂点の前記描画位置を修正する、
     描画装置。
  2.  前記CPUは、
     前記修正された描画位置を用いて、前記三次元モデルの画像に衝突があるか否かを判定し、
     衝突があると判定された場合には、前記描画パラメータを修正し、
     前記修正された前記描画パラメータに基づいて、前記三次元モデルを画像に変換する、
     請求項1記載の描画装置。
  3.  アニメーションを構成する複数のフレーム画像のうちの特定のフレームにおいて、前記衝突があると判断された場合、前記特定のフレームに対して時間的に前及び/又は後の所定の数のフレームに対して、修正された前記描画パラメータの修正前後の差分値を、前記特定のフレームから所定のフレーム数のフレームのそれぞれに対して、フレームの位置に応じて補間した値を適用することによって、前記複数のフレームの各々に平滑化された修正値を与える、
     請求項2記載の描画装置。
  4.  三次元空間に存在する、複数のノードを含む三次元モデルを複数の視点を用いて描画する方法であって、
     メモリに保存された、前記複数のノードの各々と前記複数の視点の各々との対応関係、前記三次元モデルを構成する複数のポリゴンの各頂点の描画位置に関して前記複数のノードの各々が与える影響度、及び前記複数の視点の各々が持つ描画パラメータを含む、描画情報を用いて、CPUが、前記複数のポリゴンの頂点の各々に対して、
     前記頂点が属しているノードに対応する視点を用いて前記頂点の描画位置を算出するステップと、
     前記影響度に基づいて、算出された前記頂点の前記描画位置を修正するステップと、
     を有する描画方法。
  5.  前記修正された描画位置を用いて、前記三次元モデルの画像に衝突があるか否かを判定するステップと、
     衝突があると判定された場合には、前記描画パラメータを修正するステップと、
     前記修正された前記描画パラメータに基づいて、前記三次元モデルを画像に変換するステップと、
     を更に有する請求項4記載の描画方法。
  6.  アニメーションを構成する複数のフレーム画像のうちの特定のフレームにおいて、前記衝突があると判断された場合、前記特定のフレームに対して時間的に前及び/又は後の所定の数のフレームに対して、修正された前記描画パラメータの修正前後の差分値を、前記特定のフレームから所定のフレーム数のフレームのそれぞれに対して、フレームの位置に応じて補間した値を適用することによって、前記複数のフレームの各々に平滑化された修正値を与えるステップ、
     を更に有する請求項5記載の描画方法。
  7.  請求項4ないし6のうち何れか1項記載の方法を、コンピュータに実行させるプログラム。
  8.  請求項7記載のプログラムを格納した非一時的な記憶媒体。
PCT/JP2014/051722 2013-02-01 2014-01-27 三次元オブジェクトの多視点描画装置、方法、及びプログラム WO2014119524A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US14/815,004 US9881417B2 (en) 2013-02-01 2015-07-31 Multi-view drawing apparatus of three-dimensional objects, and method

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2013018911A JP5792210B2 (ja) 2013-02-01 2013-02-01 三次元オブジェクトの多視点描画装置、方法、及びプログラム
JP2013-018911 2013-02-01
JP2013-018912 2013-02-01
JP2013018912A JP5792211B2 (ja) 2013-02-01 2013-02-01 三次元オブジェクトの誇張描画装置、方法、及びプログラム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US14/815,004 Continuation US9881417B2 (en) 2013-02-01 2015-07-31 Multi-view drawing apparatus of three-dimensional objects, and method

Publications (1)

Publication Number Publication Date
WO2014119524A1 true WO2014119524A1 (ja) 2014-08-07

Family

ID=51262238

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2014/051722 WO2014119524A1 (ja) 2013-02-01 2014-01-27 三次元オブジェクトの多視点描画装置、方法、及びプログラム

Country Status (2)

Country Link
US (1) US9881417B2 (ja)
WO (1) WO2014119524A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105488834A (zh) * 2015-12-01 2016-04-13 网易(杭州)网络有限公司 角色面部朝向的调整方法及装置
WO2023084783A1 (ja) * 2021-11-15 2023-05-19 涼平 山中 投影プログラム、投影方法、投影システム、およびコンピュータ可読媒体

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10635777B2 (en) * 2016-02-16 2020-04-28 Bayerische Motoren Werke Aktiengesellschaft Method for generating and using a two-dimensional drawing having three-dimensional orientation information
US10169903B2 (en) * 2016-06-12 2019-01-01 Apple Inc. Animation techniques for mobile devices
CN108282449B (zh) * 2017-01-06 2020-10-09 华为技术有限公司 一种应用于虚拟现实技术的流媒体的传输方法和客户端
US20180225858A1 (en) * 2017-02-03 2018-08-09 Sony Corporation Apparatus and method to generate realistic rigged three dimensional (3d) model animation for view-point transform
JP6771435B2 (ja) * 2017-07-20 2020-10-21 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置および位置情報取得方法
US10834413B2 (en) * 2018-08-24 2020-11-10 Disney Enterprises, Inc. Fast and accurate block matching for computer generated content
KR102105592B1 (ko) * 2019-06-12 2020-04-28 주식회사 네비웍스 충돌영역생성장치 및 그 동작 방법
KR102403256B1 (ko) * 2021-12-29 2022-05-30 주식회사 리콘랩스 기계학습을 위한 프리핸드 스케치 이미지 생성 방법 및 시스템

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000242811A (ja) * 1999-02-23 2000-09-08 Sega Enterp Ltd 画像処理方法、その画像処理装置及びそれに利用する一体整形モデルデータ及び画像処理プログラムを記録した記録媒体
JP2005141545A (ja) * 2003-11-07 2005-06-02 Matsushita Electric Ind Co Ltd 一体整形モデルデータを利用した画像処理方法及び記録媒体

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6993462B1 (en) * 1999-09-16 2006-01-31 Hewlett-Packard Development Company, L.P. Method for motion synthesis and interpolation using switching linear dynamic system models
JP4555722B2 (ja) 2005-04-13 2010-10-06 株式会社 日立ディスプレイズ 立体映像生成装置
US8384714B2 (en) * 2008-05-13 2013-02-26 The Board Of Trustees Of The Leland Stanford Junior University Systems, methods and devices for motion capture using video imaging
US20150178988A1 (en) * 2012-05-22 2015-06-25 Telefonica, S.A. Method and a system for generating a realistic 3d reconstruction model for an object or being
US9536338B2 (en) * 2012-07-31 2017-01-03 Microsoft Technology Licensing, Llc Animating objects using the human body

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000242811A (ja) * 1999-02-23 2000-09-08 Sega Enterp Ltd 画像処理方法、その画像処理装置及びそれに利用する一体整形モデルデータ及び画像処理プログラムを記録した記録媒体
JP2005141545A (ja) * 2003-11-07 2005-06-02 Matsushita Electric Ind Co Ltd 一体整形モデルデータを利用した画像処理方法及び記録媒体

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
KEI UTSUGI ET AL.: "Nippon no Animation ni Okeru Kocho Hyogen o Moshita 3D CG ''E-IMPACT'' no Jisso", THE VIRTUAL REALITY SOCIETY OF JAPAN KENKYU HOKOKU, CYBERSPACE TO KASO TOSHI KENKYUKAI, vol. 17, no. CS -1,, 12 April 2012 (2012-04-12), pages 23 - 28 *
KEI UTSUGI ET AL.: "Special Issue New Technologies for Production of Digital Contents E-IMPACT : Multiperspective rendering for anime-like exaggeration of CG models", THE JOURNAL OF THE INSTITUTE OF IMAGE INFORMATION AND TELEVISION ENGINEERS, vol. 66, no. 2, 1 February 2012 (2012-02-01), pages 102 - 105 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105488834A (zh) * 2015-12-01 2016-04-13 网易(杭州)网络有限公司 角色面部朝向的调整方法及装置
CN105488834B (zh) * 2015-12-01 2019-03-19 网易(杭州)网络有限公司 角色面部朝向的调整方法及装置
WO2023084783A1 (ja) * 2021-11-15 2023-05-19 涼平 山中 投影プログラム、投影方法、投影システム、およびコンピュータ可読媒体

Also Published As

Publication number Publication date
US9881417B2 (en) 2018-01-30
US20150339850A1 (en) 2015-11-26

Similar Documents

Publication Publication Date Title
WO2014119524A1 (ja) 三次元オブジェクトの多視点描画装置、方法、及びプログラム
CN112150638B (zh) 虚拟对象形象合成方法、装置、电子设备和存储介质
US9754410B2 (en) System and method for three-dimensional garment mesh deformation and layering for garment fit visualization
US10489956B2 (en) Robust attribute transfer for character animation
Hornung et al. Character animation from 2d pictures and 3d motion data
US9202309B2 (en) Methods and apparatus for digital stereo drawing
CN110163942B (zh) 一种图像数据处理方法和装置
CN113924600A (zh) 基于单个图像的实时身体动画
CA3034058C (en) Real-time hand modeling and tracking using sphere-mesh models
CN104661010A (zh) 三维立体模型的建立方法和装置
JP2011521357A (ja) ビデオ画像を利用したモーションキャプチャのシステム、方法、及び装置
US9892485B2 (en) System and method for mesh distance based geometry deformation
US10319133B1 (en) Posing animation hierarchies with dynamic posing roots
JP5792210B2 (ja) 三次元オブジェクトの多視点描画装置、方法、及びプログラム
KR101687484B1 (ko) 이형 공간간의 인간형 객체 모션 리타게팅 방법 및 시스템
CN112868052A (zh) 用于提供具有六个自由度的至少部分内容的方法和系统
JP5792211B2 (ja) 三次元オブジェクトの誇張描画装置、方法、及びプログラム
Mattos et al. 3D linear facial animation based on real data
KR20170061294A (ko) 3d 가상 캐릭터의 어깨 움직임 정보 생성방법
Li et al. Animating cartoon faces by multi‐view drawings
Utsugi et al. E-IMPACT: Exaggerated illustrations using multi-perspective animation control tree structure
JP5413188B2 (ja) 三次元画像処理装置、三次元画像処理方法および三次元画像処理プログラムを記録した媒体
Akgunduz et al. Two-step 3-dimensional sketching tool for new product development
JP2005322097A (ja) 対象物像モデルのアニメーション表示装置、対象物像モデルのアニメーション表示方法および対象物像モデルのアニメーション表示プログラム
奥屋武志 Real-Time Rendering Method for Reproducing the Features of Cel Animations

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 14745773

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 14745773

Country of ref document: EP

Kind code of ref document: A1