WO2000048130A1 - Method and apparatus for animating two-dimensional and three-dimensional images - Google Patents

Method and apparatus for animating two-dimensional and three-dimensional images Download PDF

Info

Publication number
WO2000048130A1
WO2000048130A1 PCT/EP2000/001527 EP0001527W WO0048130A1 WO 2000048130 A1 WO2000048130 A1 WO 2000048130A1 EP 0001527 W EP0001527 W EP 0001527W WO 0048130 A1 WO0048130 A1 WO 0048130A1
Authority
WO
WIPO (PCT)
Prior art keywords
segment
target
quaternion
field
pseudo
Prior art date
Application number
PCT/EP2000/001527
Other languages
French (fr)
Inventor
André Villard
Hervé Lange
Original Assignee
Duran
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 EP99400342A external-priority patent/EP1028394A1/en
Application filed by Duran filed Critical Duran
Priority to AU28067/00A priority Critical patent/AU2806700A/en
Publication of WO2000048130A1 publication Critical patent/WO2000048130A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation

Definitions

  • the invention is generally concerned with generating two-dimensional or three-dimensional animated shapes. Although shapes, in particular three-dimensional shapes, can now be generated, animating them in real time still represents an unsolved technical problem.
  • Prior art methods in this field first generate three-dimensional shapes in a conventional way and then "add" motion, in the same way as when creating an animated drawing.
  • the prior art methods have little capacity for animation.
  • animation capability and motion are essential, much more so than is realism of the non-animated shape itself.
  • Software for approximating a real image by means of a skeleton is available. Such software has a "tree" structure. It is not applicable to real time transformation or to interactive fields.
  • Another aspect of the problem currently faced is that of three-dimensional models whose data can be sent via the Internet, including data for animating such models, and possibly audio data.
  • the Internet uses telephone lines with a low bit rate.
  • This information carrier is therefore unable to transmit data defining shapes, in particular moving shapes, which are conventionally defined by a large number of points.
  • the problem therefore arises of generating three-dimensional objects using code that is sufficiently optimized for transfer and control of information via the Internet, comprising information concerning the motion of the object concerned.
  • Another technical problem that arises, independently of the problem of transmission via the Internet is that of storing objects in the form of efficient and very compact data, in real time, with a low demand for memory.
  • the invention also concerns inverse kinematics. This technique is used to animate 3D models.
  • controlling a 3D universe and animating 3D characters in real time amounts to more than geometrical computations and fast display of textures. Enabling virtual beings to "live” and to be fully animated in real time requires complex algorithmic computations such as inverse kinematics.
  • Inverse kinematics is used to compute the motion of an object from the "target" of the motion, for example.
  • inverse kinematics is a method of controlling hierarchical structures in which the user determines the positions of the objects at the extremity of the hierarchy tree. The position and orientation of all the other objects of the tree are then determined.
  • Hierarchizing a skeleton begins with placing the highest objects in the hierarchy (the "parents") and then descending the hierarchy to position each "child”.
  • Inverse kinematics is a control method based on the concept of a target: a "child” is placed and then the positions and orientations of the "parents" are computed.
  • Inverse kinematic type computation techniques are used already (for example, the Jacobian method) , but in practice they cannot be used in real time unless very powerful computers are used.
  • One aim of the invention is therefore to make a contribution to these inverse kinematic methods to the extent that this is compatible with "real time” use.
  • Inverse kinematics in accordance with the invention are also used to model collisions.
  • "conventional" animation it is necessary to create animation keys for all the key points of the objects (for example, for the arm of a character: the shoulder, the forearm, the arm, the hand, etc.) .
  • the other intermediate positions of the character are then generated by interpolation. This obliges the animator to create all these keys manually.
  • each animation key is then stored in the form of a complete 3D model of the object or character, and all these models have to be stored, compressed and computed. Accordingly, 10 animations each with 10 keys necessitate the creation and storage of 100 different 3D models of the same object, which represents a vast amount of data, especially if the models are to be transmitted via the Internet. Even using the NURBS technology, this amounts to 500 kilobytes of data.
  • the problem therefore arises of finding an "inverse kinematic" type technique compatible with real time.
  • the problem also arises of finding an "inverse kinematic” type technique that is economical in terms of memory occupancy.
  • an image field function comprising: • an attractive component associated with the target angular orientation and of zero value for that orientation, and
  • the invention also concerns a method of sending animation data of an image comprising a chain of segments, between a pseudo-root segment and a pseudo-leaf end segment as defined above, each segment being defined by an orientation in space ( ⁇ , ⁇ , ⁇ ) , the pseudo-leaf segment having to reach a target angular orientation (o-targetr ⁇ targetr ⁇ target) / the method comprising the following steps:
  • an image field function comprising: • an attractive component associated with the target angular orientation and of zero value for that orientation, and
  • an image field value can be associated with any segment of a shape or skeleton to be animated, represented on the image, for any discrete time n.
  • the field is a vector function E defined for any segment of the shape or part of the shape and any orientation of the segment.
  • Any segment that is part of the shape can be identified in a system of angular coordinates by three angles ( ⁇ , ⁇ , ⁇ ) , for example.
  • the invention adds to these angular coordinates "influence" coordinates or parameters which in fact correspond to the value of the image field at the segment concerned having a defined orientation at the time n concerned. Consequently, with these additional coordinates, it is possible to define the influences to which each segment of the shape is subject and to determine the appropriate motion for the pseudo-leaf to reach its target.
  • a second embodiment adds to the field or potential coordinates dynamic coordinates ki and k a which are called respectively an "inertia" parameter and a "flexibility” parameter.
  • the flexibility (and therefore the coefficient k a ) represents the fact that the object at the point concerned is damped to a greater or lesser degree according to the degree to which it is influenced by other points or other parts of the object.
  • the inertia corresponds to the concept of inertia in classical dynamics (mathematical parameter) .
  • the description of the motion is therefore contained in the definition of the additional dynamic coordinates.
  • the description of the motion is therefore economical in terms of memory occupancy in a computing device implementing the method of the invention.
  • the method of the invention provides for immediate modification of the dynamic coordinates constituted by E n (the value of the field for a particular segment) or its potential and/or k a and/or ki (damping and inertia coefficients) . It therefore provides for a high level of interaction .
  • Each target to be reached can be determined by three angles C ( .t a rget r ⁇ t ⁇ irget / ⁇ t a rget •
  • each segment, or bone operates as if it were isolated from the others but makes its contribution to the pseudo-leaf reaching its target.
  • the action effected by a bone depends on the action effected by the other bones: if one bone tends towards an attractor, this modifies the attractor of the parent bones, and therefore modifies their action, although they have exactly the same mechanism.
  • the target of the father segment depends on the target of the son segment.
  • an image field quaternion comprising: • an attractive component associated with the target orientation, and • if constraints are imposed, a repulsive component associated with each constraint,
  • - Figure 1 represents an object point and a target point in a plane
  • - Figure 2 represents an object point, a target point and an obstacle in a plane
  • - Figure 3 shows a skeleton to be animated on a screen
  • - Figure 4 shows the evolution of the component of a field in accordance with an angular variable
  • FIG. 5 shows the relative motion of two segments, or bones, of an articulated chain to be animated
  • FIG. 6A and 6B are diagrammatic representations of two embodiments of a method of the invention
  • FIGS. 8 and 9 are diagrammatic representations of the relative position of two segments, or bones, of a skeleton to be animated
  • FIGS. 17A and 17B are diagrammatic representations of the structure of apparatus for implementing a method in accordance with the invention. Detailed description of embodiments of the invention The invention will doubtless be better understood after a description of a model developed by the inventors for animating points of an image represented in two dimensions (2D) or three dimensions.
  • a first example concerns a two-dimensional (2D) representation .
  • Figure 1 shows a reference plane (0, X, Y) .
  • An object or character (or point or pixel) P also referred to as the "animate" or object point, with coordinates (x, y) is initially at the origin 0 and is to move towards a target P B with coordinates (x B , y B ) .
  • the target generates an attractive field and thereby propagates its influence throughout space in accordance with a particular law.
  • E x - ( ⁇ V/dx)
  • E y - (dV/ ⁇ y) , etc.
  • a potential of this kind which is an increasing function of the distance I PP B I , represents the fact that the influence of the target increases with the distance of the object point from it.
  • the field lines generated by the target P B then constitute a bundle of straight-line segments passing through P B .
  • the field is radial and oriented toward P B . Its intensity is zero at P B and increases with distance.
  • the speed is zero also, and the character therefore stops (has no inertia) .
  • a field function is used that is zero at P B . This is achieved if the potential function is a minimum or a maximum at P B , for example .
  • the motion of a point P may be deemed to be possible only in "quantified” directions, i.e. "leftward”, “rightward”, “upward” or “downward”.
  • the motion appears continuous if seen “from afar", as is the case if the point P represents a pixel on a screen.
  • a motion algorithm needs only to look at the signs of the quantities (dx/dt) and (dy/dt), i.e. the signs of the quantities E x and E y . For example, if E x >0 and E y >0, the pixel must be moved “rightwards” and “downwards”. Until the target is reached, the signs of the quantities E x and E y are examined and the pixel is moved accordingly.
  • An obstacle P 0 generates a repulsive field whose influence decreases with distance and is higher locally, in the vicinity of the obstacle, for example.
  • a function of the above kind is not discontinuous at the influence barrier (which would produce an infinite field at that point) .
  • the gradient (the field) gives rise to a discontinuity and this can suddenly repulse the animate, or the point, as it crosses the influence barrier.
  • the total field E to which the character or the point is subject is the sum of the various fields (principle of additive fields) :
  • the object point has a variable inertia, for example inertia that is constant "far” from a target to be reached and that decreases as the target is approached. This "smoothes" the trajectory when avoiding obstacles (the animate is entrained by its inertia) and prevents any possibility of undefined oscillatory motion about a target since its inertia decreases to the point of becoming very low or even zero once the target has been reached (this has the same effect as progressive "friction”) .
  • a target P B has a characteristic distance di from which the inertia decreases.
  • the Actuator of the animate then has the following structure:
  • V n+1 k a . v n + E n
  • the elasticity or damping coefficient k a depends on the distance
  • k a 0 ⁇ k a ⁇ 1.
  • the universe in which a point or an object moves is represented in field terms. If the universe is made up of obstacles to be avoided, for example, the fields are repulsive fields.
  • the algorithm for moving an animate at the object point can be defined by the following rules.
  • This state comprises a set of kinematic data, for example, namely the position P n of the animate, its speed v n and its incremental movement ⁇ .
  • a chain of action (or "actuator") of the animate capable of producing its new state ⁇ n+ ⁇ at time n+1 as a function of the obstacles and the target to be reached has the following structure, for example:
  • Vn+1 k a V n + E n
  • k a (
  • ⁇ i and, for example , k a 1 otherwise .
  • Vn+1 k a V n + kiE n in which :
  • V n+ ⁇ and V n are respectively the speed at times n+1 and n
  • E n is the value of the field (with its attractive component (s) and/or repulsive components) at the location of the point at time n, and
  • • k a and ki are respectively a damping coefficient and an inertia coefficient.
  • the coefficient k (> 0 and generally in the range from 0 to 1) corresponds to inertia in classical physics (in the mathematical sense of the term) .
  • the model described above can be transposed to the problem of transforming or animating skeletons, in particular three-dimensional (3D) skeletons, which approximate a real image .
  • an image, or rather a skeleton schematically representing objects or shapes of an image can be considered or described as a set of articulated "bones" 2, 4, 6, 8, 10, 12 connected together by articulations.
  • the chain of bones is described as a series of relative geometrical transformations dTRF (1) .
  • the prefix d stands for "difference", and dTRF ) is the transformation of the bone B x relative to the frame of reference of the father bone (i-1) .
  • dTRF (O ) is the transformation of the bone B 0 in any
  • An orientation in space can be defined by three angles ⁇ , ⁇ and ⁇ .
  • ⁇ and ⁇ are the spherical coordinates of the rotation axis and ⁇ is the rotation angle about that axis.
  • the pseudo-leaf bone seeks to reach a
  • target orientation also defined by three angles ⁇ tar get ⁇ tcirget and ⁇ t a rget •
  • the pseudo-leaf is an angular point
  • the target ang lar point generates an attractor field E in the space of the angular points.
  • a bone cannot always take any orientation: there may be constraints on it. These constraints can be materialized by one or more angular points Paback creating a repulsive field E' at any point in the space .
  • V n K a V n -i + K ⁇ E n + E' n ) (13-1)
  • n is an integer which represents discrete time
  • P an is the angular position at a particular time
  • P a(n -i) is the angular position at the "preceding time”
  • V n is the "speed" vector of the angular point
  • E is the attractor vector field with components:
  • E' is the repulsive field, which is related, for example, to the fact that each parameter ⁇ , ⁇ and ⁇ can vary only within certain limits: ⁇ e[ ⁇ m m, o ma ⁇ ] ⁇ e [ ⁇ mii ⁇ maxl and ⁇ e [ ⁇ min, ⁇ max]- One or other of these parameters can reach a limit value.
  • E' ⁇ -K' . [ ⁇ - ( ⁇ m ⁇ n + r. ( ⁇ max - ⁇ n ) ) ] where K' is a "repulsor" coefficient (a value of a few units, is already a high value) .
  • Ki is the angular inertia coefficient of the bone influenced by the fields E and E' .
  • a low value of K x gives a high inertia (a strong field has less influence on a high inertia object) and vice versa.
  • a value is generally chosen such that 0 ⁇ ki ⁇ 1
  • K a is the angular damping coefficient of the bone influenced by the fields E and E' .
  • a value of K a equal to around 0.5 rapidly damps the process .
  • K a 1
  • the sum (E + E' ) is equal to the acceleration v n - v (n -i) and the particle does not stop if the total field applied to it is nil; in this case the damping is minimum.
  • the coefficient K a is an intrinsic characteristic of the bone subject to the influence of the field (likewise Ki) .
  • Ki the coefficient of the bone subject to the influence of the field.
  • a value is taken such that 0 ⁇ K a ⁇ 1.
  • equation (13-2) If
  • limit angular values are in fact not "thresholds" in the strict sense of the term. These limit values can be exceeded, in particular if the system is set up with a high inertia. This does not occur in practice if the precaution is taken of artificially limiting the "speed" of the particle in the same manner as described above in the case of large oscillations.
  • equation 13-1 can be represented graphically ( Figure 4) on one component only (for example ⁇ ) .
  • the graph shows that if ⁇ > ⁇ ta rget the variation is negative, which tends to reduce the difference ( ⁇ - ⁇ tar g et ) • Conversely, if ⁇ ⁇ ⁇ target the variation is positive, which tends to reduce the difference ( ⁇ t arg e t - ⁇ ) • The target is therefore a point of convergence.
  • Each ⁇ ROT (i) is associated with two angles ⁇ 0 and ⁇ o which indicate the position of the initial axis.
  • V ctors aml n ( Ctnun Pi ⁇ in / ⁇ min ) and C amax ( Ct ma ⁇ , Pme f ⁇ max ) which give the authorized limit values of the three angles ⁇ , ⁇ and ⁇ .
  • the orientation to be reached is set by the three angles ⁇ ta rget, ⁇ target and ⁇ target- given bone has its current orientation fixed by the three angles ⁇ , ⁇ and ⁇ .
  • the process of convergence minimizes the angular distance D a given by the equation
  • the pseudo-leaf of a chain of bones can reach a given point in space independently of its orientation.
  • a point in space can be reached by rotation of the bones of the chain and therefore with an angular attractor field.
  • this field is called a translation angular attractor field.
  • E (1 -n) is the end of bone number i and B x the point in space to be reached.
  • a rotation through angle ⁇ x about an axis perpendicular to the plane (E ⁇ . , E (1+D , B has the effect of moving E (1+D towards B ⁇ . .
  • the following equation is an expression for the vector EB in the absolute frame of reference :
  • TRL (N) and ROT (N, are the translation and rotation components of the transformation TRF (N) in the absolute frame of reference.
  • each bone contributes to the pseudo-leaf reaching the target B: each bone has the same work to do, namely effecting a rotation through angle ⁇ x .
  • the formula giving the expression for the vector EB in the frame of reference of bone number i_ is obtained in the following manner. In this frame of reference, let E ⁇ IJ B J . be the expression of the vector EB; then:
  • bone i is deduced from its father by the rotation dROT ) .
  • its end E( 1+D must effect a rotation d 2 ROTB U) , the matrix expressed in the frame of reference of the bone i.
  • each bone i_ sees its rotation dROT (1) relative to its father tend towards the rotation ⁇ ROTB ) .
  • K can yield an infinite value if the quantity ⁇ [ (E, 1+ ⁇ ,B 1 ) x ] 2 + [ (E u+ ⁇ ,B ⁇ ] 2 + [L,- (E , l) B,) z ] 2 ⁇ is too low.
  • the algorithm for the influence of a point in space can therefore be as follows:
  • ⁇ ROTB (1) dROT0 ⁇ 1 >*dROT ) *d 2 ROTB,-.>
  • This attraction direction constitutes a gravity field.
  • This attractor is called the gravity angular attractor.
  • the rotations of the bones are used to produce this effect; the root is as if fixed to a pivot (which does not react) and everything "falls” in the direction of the gravity field. If the articulations are unconstrained, the system "unwinds" and tends towards that direction.
  • the algorithm for the gravity angular attractor field is a simple one: the axis of each bone of the chain (the axis of the bone, not the rotation axis) tends to be oriented toward the gravity field "of its own accord" (independently of the others) .
  • the combination of the three attractor fields constitutes a global objective to be achieved.
  • E aR , E aT and E aG be the three attractor fields and E r the repulsive field.
  • Each attractor field E a has the following components :
  • Each bone of the chain corresponds to the pseudo- leaf reaching the given orientation.
  • the bones operate in a certain order .
  • Bone N-l operates first. Then the target of bone N- 2 is computed and it operates. Then the target of bone N-3 is computed and it operates, and so on, up to bone 0. This procedure is "linear upward” and gives good results. A different logic takes account of the operation of bone N-2 disturbing the previous operation of bone N, etc. It is then desirable to have bone N-l "react" to the operation of bone N-2, and thereafter to have only bone N-3 operate.
  • Figure 6B shows this alternate procedure . The consequence of each operation of bone _i is then a "downward" reaction on the successive bones i+1, i+2, ..., N-l.
  • each of them is influenced by the motion of the others.
  • Each bone adapts its operation not only to the target to be reached by the pseudo-leaf, of course, but also to the preceding operation of the other bones.
  • ROTB N is the orientation to be achieved by the pseudo-leaf
  • 1-1 - Compute ROTBx ROTB N * [ROT N ] "1 *ROT 1 .
  • TRLB N is the point in space to be reached by the pseudo-leaf
  • step 7 If the process has not terminated (another bone is to be subjected to an action) , return to step 1, but after updating the transformations TRF N and TRF X which have just been modified.
  • a quaternion dQ is a rotation through angle d ⁇ (spin or "inherent rotation") about an axis dA which is a vector entirely defined by two angles d ⁇ (right ascension or "bearing") and d ⁇ (declination or "azimuth”) .
  • the value of dP a determines that of dQ but the value of dQ gives two possible values for dP a because a change of sign of d ⁇ and a change of direction of the axis A give the same rotation.
  • Q En [Qm] _1 .QB (21)
  • equation 13-1 shows that the field E n is subject to scalar multiplication by an inertia angular coefficient k x .
  • this coefficient has the same meaning as explained above; preferably 0 ⁇ k x ⁇ 1.
  • the term k ⁇ En is replaced by the term:
  • Q' B is the quaternion spherically interpolated between Q ⁇ n and Q B in accordance with the coefficient k lf written
  • Q' B Q xn (° -.)QB
  • V n [Q 1 n] "1 [Q 1 n( 0 k 1 .)Q B ] • [Q ⁇ ( ⁇ a )V (n - ⁇ >]
  • k a is the angular damping coefficient (see above explanations on this subject) ; once again, a value is preferably taken such that 0 ⁇ k a ⁇ 1
  • the variation ⁇ Q Bn has the index n (which represents time) because it depends on dQ ( i- ⁇ )n , which is generally variable .
  • This algorithm repeated for all the bones of a chain from its end to be slaved (to be made to tend toward a fixed target) , working back to its other end, constitutes a new inverse kinematic algorithm.
  • the quaternion d Q is associated with an axis dA and a rotation through angle d 2 ⁇ about that axis and the quaternion d 2 Qo is associated with an axis d 2 A 0 and a rotation through angle d 2 ⁇ 0 about that axis.
  • d 2 Q can vary about d 2 Q 0 so that:
  • the axis d 2 A is entitled to be contained in a cone with axis d 2 A 0 and half-angle ⁇ , and
  • the angle d 2 ⁇ is entitled to vary about d 2 ⁇ o by ⁇ /2, where ⁇ /2 is the half-angle of variation authorized for d 2 ⁇ .
  • d 3 Ca ( ⁇ , ⁇ ) .
  • d 3 Q expresses the variations of a rotation about a rotation axis d 2 A 0 through angle d 2 ⁇ 0 .
  • dPa o d 2 Pa 0 , d 3 Ca and dPa.
  • d 2 A 0 and d 2 Qo are deduced from d 2 Pa 0
  • dQ 0 and d 3 Q are deduced from dPa 0 and d 3 Pa, respectively.
  • dQ 0 is deduced from d' Qo and dQ 0 .
  • the current rotation dQ of the bone Bi corresponds to a rotation through angle d 2 ⁇ about the axis d 2 A 0 .
  • the bone Bi is made to turn about the axis d 2 A 0 to define the extreme limits d 2 ⁇ M ⁇ N and d 2 ⁇ A of the angle d 2 ⁇ . These extreme limits define:
  • the axis of the cone is the rotation axis d 2 Ao. If the rotation axis is d 2 A 0 ' (see
  • an attractor (respectively repulsive) field of this type represents the fact that the pseudo-leaf must reach (respectively avoid) a given point in space; this type of field also concerns or describes translation type transformations;
  • an attractor (respectively repulsive) field of this type represents the fact that the pseudo-leaf must be oriented along (respectively avoid) a given direction; this is a spatial field for which the point to be reached (respectively avoided) is at infinity;
  • - rotational fields an attractor (respectively repulsive) field of this type represents the fact that the pseudo-leaf must reach (respectively avoid) a given orientation, i.e. a given rotation.
  • the algorithm is repeated as many times as required, for example indefinitely. Once the pseudo-leaf has reached the target, it may be useful to allow the algorithm to continue running. For example, if the quaternion dQi of a bone which is not the pseudo-leaf is forced to change when the target has been reached, the absolute quaternion Q (N - D of the pseudo-leaf is modified, unless the algorithm is still running. In other words, if the pseudo-leaf reaches its target, the loop 22 maintains it in that state.
  • a test is performed to determine if N f is equal to 0 (step 20-3) .
  • Step 20-4 computes the global field of the bone B lf which is a combination of the various fields. The computation is described in detail below with reference to Figure 15. Step 20-5 corresponds to computing the speed and the quaternion relating to the bone B x . This computation is described in detail below with reference to Figure 16.
  • the algorithm then moves on to the father bone B ⁇ i (step 20-6) .
  • a test is conducted (20-7) to determine if it is the pseudo-root that has just been processed. If i ⁇ 0, the algorithm stops.
  • This algorithm uses real time control (loop 22) .
  • loop 22 The conjoint use of quaternions, the theory of influence and real time control produces a functional and dynamic inverse kinematic.
  • Figure 11 shows the computation of the various fields of the bone B x (here for the attractor fields, the same diagram being valid for repulsive fields) .
  • the index j_ of a field of influence associated with the pseudo-leaf is initialized (step 30-1) .
  • a pointer pQ 0 is associated with the start of a table to be created; this table groups the structures each consisting of a (quaternion, intensity) combination. Each field of influence will be transformed into a structure of this kind.
  • step 30-4 determines if a field of influence of index j_ of the list of fields of influence associated with the pseudo-leaf exists or is not inhibited. If this field exists and is not inhibited, the type for field E of index j_ is then determined (step 30-5) : is it a rotational, directional or spatial field?
  • step 30-6 the algorithm then chooses one of the following processes (step 30-6) .
  • Step 30-6 is described in more detail below with reference to Figures 12 to 14.
  • variable f is incremented (step 30-7) and the algorithm moves onto the next element from the table (30-8) .
  • the next field of influence is associated with the pseudo-leaf (step 30- 9) . If j_ is equal to the number N f of fields of influence associated with the pseudo-leaf the algorithm stops.
  • Figure 12 shows in detail the computation of the variation ⁇ Q which applies in the case of a rotational field.
  • the rotational field of influence is defined by the absolute quaternion Q E that the pseudo-leaf must reach (or avoid) and its intensity I E .
  • Q E [Q N - I ] _1 Q ⁇ initializes an absolute quaternion Q.
  • Whether B has a father is then determined (step 40-2) :
  • step 40-4 If it has no father, the algorithm goes direct to step 40-4. - Otherwise, the quaternion Q is replaced by the quaternion Q U - D .Q (step 40-3).
  • Figure 13 shows in detail the computation of the variation ⁇ Q that applies in the case of a directional field.
  • the directional field of influence is defined by its intensity I E and an absolute vector V E toward whose axis the pseudo-leaf tends to become parallel.
  • the absolute vector V E can be characterized by two angles borrowed from astronomy: the right ascension A E and the declination D E .
  • the equations used to transform V E (step 50-1) are:
  • V E is then computed in the frame of reference of the bone B (step 50-2 ) .
  • step 50-3 the quaternion Q associated with the rotation through angle (Ai, V E ) about an axis perpendicular to the plane formed by A (axis of the bone Bi in its local frame of reference) and V E is sought.
  • this is a rotation that turns Ai until it is parallel to V E (the diagram would be similar with repulsive fields) .
  • the coordinates of A x are (0,0, -Li), L x being the length of the bone B x .
  • the symbol ® means: find the quaternion Q associated with the rotation defined above.
  • ⁇ Q E is obtained by the operations defined in 50-4 and 50-5.
  • ⁇ Q E and I E are then stored in the table to which pQ points.
  • Figure 14 shows in detail the computation of the variation ⁇ Q that applies in the case of a spatial field.
  • the spatial field of influence is defined by an absolute vector V E whose three coordinates are those a point in the 3D space and its intensity I E . It is the end of the pseudo-leaf that must reach (or avoid) V E .
  • TJ be the absolute translation component of the transformation of the bone B( N -i) (respectively B .
  • V A defined in step 60-2 is therefore the absolute vector whose origin is the origin of the bone B and whose end is the end of the bone B (N - D (the pseudo-leaf) .
  • V A is then completed in the local frame of reference of the bone B x (step 60-3) .
  • the absolute vector V B whose origin is the origin of the bone B x and whose extremity is the point V E in space to be reached is then computed (step 60-4) .
  • V E is then computed in the frame of reference local to the bone Bi (step 60-5) .
  • V A , V B The quaternion Q associated with rotation through an angle (V A , V B ) about an axis perpendicular to the plane formed by V A and V B is then deduced from V A and V B .
  • ⁇ Q E is obtained by the operations defined in 60-7 and 60-8 and ⁇ Q E and I E are stored in the table to which pQ points (step 60-9) .
  • Figure 15 shows in detail the computation of the global field of the bone Bi, which is a combination of various attractor or repulsive fields (step 20-4 from Figure 10) .
  • the array of structures ⁇ quaternion, intensity ⁇ contains a number of structures equal to N f . If m is the index of this array, the quaternion is written ⁇ Q (E( ⁇ ri )) and I E(m) is its intensity.
  • the aim of this "field Bi" block is to compute the global quaternion ⁇ Q E and the global intensity I E as a combination of the N f quaternions and elementary intensities ⁇ Q E ( . and I E ( m ) .
  • the index m is first initialized to 0 (step 70-1) .
  • ⁇ Q E is also initialized, to ⁇ Q E(0 ) (70-2) .
  • a coefficient k is also defined (step 70-3) .
  • the equation given in Figure 15 is one possible example, but other equations can be used.
  • Step 70-4 corresponds to spherical interpolation of coefficient k between the quaternions ⁇ Q E and ⁇ Q E(m+D (this interpolation is symbolized by the symbol (° k )) .
  • I E is then computed using the equation given in Figure 15 (step 70-5) . Again this is merely one example, and other combinations are possible. The arithmetic or geometric mean of I Ei can equally be used, for example.
  • step 70-6 m is incremented (step 70-6) and compared to N f (step 70-7) . If N f is reached, the algorithm stops. Otherwise it loops to step 70-3.
  • Figure 16 shows in detail the computation of the speed and the quaternion relating to the father bone (step 20-5 from Figure 10) .
  • a coefficient I can be computed which represents the intensity (of the global field) which allows for the inertia of the bone Bi.
  • Step 80-2 is a spherical interpolation of coefficient I between the quaternions ⁇ Q x and ⁇ Q E . This is, as it were, a step of taking account of the field.
  • the field ⁇ Q E which allows for the global intensity I E and the intensity u is then computed (step 80-3) .
  • the "speed" quaternion Q v of the quaternion ⁇ Q x is then computed (step 80-4) .
  • Spherical interpolation between the identity quaternion Q ⁇ and the previous speed (that at the previous time n-l) Q v determines the new speed.
  • the coefficient of this interpolation is k a ⁇ , the damping coefficient of the bone B .
  • Step 80-6 corresponds to computing the variation ⁇ Q x that results from the speed.
  • the variation dQ . is then computed (step 80-7) .
  • Any embodiment of the invention animates a character easily and quickly. Taking the character shown in Figure 3 as an example, it is sufficient in accordance with the invention to determine the position, or the target to be reached, for a few pseudo-leaves such as the hands, a foot, an eye, etc. It is not necessary to define the motions of each point of the character.
  • the technique in accordance with the invention is used to compute the motion of an object from fields of influence (attractor fields or repulsive fields) which define the environment of the object.
  • the motion depends on the various influences to which the various bones of the object are subject.
  • This process can also be combined with the model of animating points of an image explained at the beginning of this detailed description, in particular with reference to equations (1) through (12) .
  • Figure 17A represents a graphics workstation comprising a microcomputer 120 appropriately configured for generating and processing two-dimensional or three- dimensional graphics objects using a method in accordance with the invention, an output peripheral device 122 and control peripheral devices (keyboard 124 and mouse 125) .
  • the microcomputer 120 has a computation section with all the electronic, software and other components needed for generating images and processing or animating the images so obtained.
  • the system uses a PC type microcomputer of moderate power.
  • the microcomputer comprises a central processor unit 120 which comprises a microprocessor 126, a memory 128, an input peripheral device, for example of the hard disc type 132, connected to a bus 130.
  • An output peripheral device for example of the screen type 122, or display apparatus controlled by a video card is used to display information.
  • the microcomputer also has control peripheral devices, in this instance the keyboard 124 and the mouse 125.
  • the programming language used is the C++ language, together with the assembler language for Pentium microprocessors. Models are written to and read from a hard disk. The models are displayed on the screen 122 of the computer by means of the graphics subsystem, in other words :
  • a 3D card (able to display three-dimensional information), i.e. a card dedicated to displaying polygons rather than points; the 3D card thereafter converts the polygons into points to be displayed on behalf of the video card.
  • API controlling control software
  • the control peripheral devices are used to manipulate the objects, for example to select and move the various "bones" or segments of an articulated system, the morphic points in the 3D space represented on the screen, the attractive or repulsive fields of the articulated system, etc., or to show and clear a pull-down menu, i.e. a display area made up of parameters. These can also be varied using other keys of the keyboard 124.
  • the program comprises the following facilities, for example:
  • - displaying a model - determining, for example from splines, initial settings of their parameters and the algorithms of the method (for example, the parameters of the inverse kinematic) , the three-dimensional elements (polygon) .
  • a program for implementing the method of the invention is resident or stored on a storage medium (for example: diskette or CD-ROM or removable hard disk or magnetic storage medium) which can be read by a data processing system or by the microcomputer 120.
  • the shape or the points are displayed on the graphics screen 122 in real time.
  • the method of the invention enables the motion of the object to be displayed in real time.
  • the program comprises, for example, instructions commanding the microcomputer to:
  • the shape or the points are displayed on the graphics screen 122 in real time.
  • the method of the invention enables the motion of the object to be displayed in real time.
  • the program comprises, for example, instructions commanding the microcomputer to:
  • the microcomputer comprises means for computing and storing in memory potential or field values and/or values of k a and/or ki of the segments concerned or selected and the speed and new coordinates of the points. These values can be transmitted to a display control unit.
  • the microcomputer 120 can be programmed to generate
  • NURBS surfaces as described above. It can also be programmed for the generation or computer-aided design (CAD) of shapes.
  • CAD computer-aided design
  • the data relating to the shape, or the points that define it, in two or three dimensions, is stored in memory with the corresponding dynamic parameters .
  • the microcomputer 120 is also connected to other peripheral devices, for example printing devices (not shown in the figure) . It can be connected to an electronic communications network, of the Internet type, for example, for sending or receiving data relating to the shapes generated.
  • the microcomputer is equipped with means for connecting to the network, or input/output interface means for the network, for example a modem.
  • the data transmitted comprises data on the relative coordinates of the points defining the object and also data relating to the dynamics of the points and of the object itself and obtained by one of the methods in accordance with the invention.
  • the invention therefore also concerns the reception of such data, relating to the object or the chain or the skeleton and to its dynamics, and obtained by one of the methods described above.
  • the data of images and/or the data relating to the points or to the skeletons of objects can be stored in a memory area of the device 120 with the corresponding dynamic parameters.
  • the animation or the movement of the segments of the articulated system or of the chain can be displayed or the corresponding data (data on the segment and animation data) sent via a wide area communications network (WAN) or local area communications network (LAN) to other display apparatus or to other data processing or storage apparatus, also connected to the network.
  • WAN wide area communications network
  • LAN local area communications network
  • the invention can be applied to cinema film production, video games and methods of designing technical components where it is important not only to represent the components but also to be able to observe their behavior in response to simulated deformation.

Abstract

The invention concerns a method of animating an image comprising a chain of N segments i (i = 0, 1, 2, ..., N-1) between a pseudo-root segment 0 and a pseudo-leaf end segment N-1, each segment being defined by an orientation in space (α, β, γ, the pseudo-leaf segment having to reach a target angular orientation (αtarget, βtarget, γtarget), the method comprising the following steps: defining an image field function comprising: an attractive component associated with the target angular orientation and of zero value for that orientation, and if angular constraints are to be complied with, a repulsive component associated with each constraint, determining the motion of each segment from an equation of motion as a function of the field for the initial orientation of that segment, and animating the chain of segments in accordance with the motion thus determined. The method can be implemented using geometrical transformations or quaternions.

Description

METHOD AND APPARATUS FOR ANIMATING TWO-DIMENSIONAL AND THREE-DIMENSIONAL IMAGES
Technical field: prior art The invention is generally concerned with generating two-dimensional or three-dimensional animated shapes. Although shapes, in particular three-dimensional shapes, can now be generated, animating them in real time still represents an unsolved technical problem.
Various fields of activity, such as video games and cinema film production, require tools for generating shapes, in particular three-dimensional shapes, and simultaneously animating and/or modifying them in real time. Similarly, in the field of computer-aided design of technical components, it is important not only to be able to represent the components but also to be able to observe their behavior in the event of simulated deformation.
At present there is a great disparity between what is needed in the above fields and the solutions available.
"Real time" methods exist, but require the use of large computer systems .
Prior art methods in this field first generate three-dimensional shapes in a conventional way and then "add" motion, in the same way as when creating an animated drawing. The prior art methods have little capacity for animation. In a field like video games, animation capability and motion are essential, much more so than is realism of the non-animated shape itself. Software for approximating a real image by means of a skeleton is available. Such software has a "tree" structure. It is not applicable to real time transformation or to interactive fields.
Another aspect of the problem currently faced is that of three-dimensional models whose data can be sent via the Internet, including data for animating such models, and possibly audio data. The Internet uses telephone lines with a low bit rate. This information carrier is therefore unable to transmit data defining shapes, in particular moving shapes, which are conventionally defined by a large number of points. The problem therefore arises of generating three-dimensional objects using code that is sufficiently optimized for transfer and control of information via the Internet, comprising information concerning the motion of the object concerned. Another technical problem that arises, independently of the problem of transmission via the Internet, is that of storing objects in the form of efficient and very compact data, in real time, with a low demand for memory. The invention also concerns inverse kinematics. This technique is used to animate 3D models.
For example, controlling a 3D universe and animating 3D characters in real time, amounts to more than geometrical computations and fast display of textures. Enabling virtual beings to "live" and to be fully animated in real time requires complex algorithmic computations such as inverse kinematics.
Inverse kinematics is used to compute the motion of an object from the "target" of the motion, for example. To be more precise, inverse kinematics is a method of controlling hierarchical structures in which the user determines the positions of the objects at the extremity of the hierarchy tree. The position and orientation of all the other objects of the tree are then determined. Hierarchizing a skeleton begins with placing the highest objects in the hierarchy (the "parents") and then descending the hierarchy to position each "child". Inverse kinematics is a control method based on the concept of a target: a "child" is placed and then the positions and orientations of the "parents" are computed. Inverse kinematic type computation techniques are used already (for example, the Jacobian method) , but in practice they cannot be used in real time unless very powerful computers are used. One aim of the invention is therefore to make a contribution to these inverse kinematic methods to the extent that this is compatible with "real time" use. Inverse kinematics in accordance with the invention are also used to model collisions. Turning to another aspect, in "conventional" animation, it is necessary to create animation keys for all the key points of the objects (for example, for the arm of a character: the shoulder, the forearm, the arm, the hand, etc.) . The other intermediate positions of the character are then generated by interpolation. This obliges the animator to create all these keys manually.
Moreover, each animation key is then stored in the form of a complete 3D model of the object or character, and all these models have to be stored, compressed and computed. Accordingly, 10 animations each with 10 keys necessitate the creation and storage of 100 different 3D models of the same object, which represents a vast amount of data, especially if the models are to be transmitted via the Internet. Even using the NURBS technology, this amounts to 500 kilobytes of data.
The problem therefore arises of finding an "inverse kinematic" type technique compatible with real time. The problem also arises of finding an "inverse kinematic" type technique that is economical in terms of memory occupancy.
Summary of the invention First of all, the invention provides a method of animating an image comprising a chain of N segments i_ (i = 0, 1, 2, ..., N-l) between a segment 0 called a pseudo- root segment and an end segment N-l called a pseudo-leaf segment, each segment being defined by an orientation in space (α, β, ψ) , the pseudo-leaf segment having to reach a target angular orientation (αtargetr βtargetr ψtarget) , the method comprising the following steps:
- defining an image field function comprising: • an attractive component associated with the target angular orientation and of zero value for that orientation, and
• if angular constraints are to be complied with, a repulsive component associated with each constraint,
- determining the motion of each segment from an equation of motion as a function of the field for the initial orientation of that segment, and
- animating the chain of segments in accordance with the motion thus determined.
The invention also concerns a method of sending animation data of an image comprising a chain of segments, between a pseudo-root segment and a pseudo-leaf end segment as defined above, each segment being defined by an orientation in space (α, β, ψ) , the pseudo-leaf segment having to reach a target angular orientation (o-targetr βtargetr ψtarget) / the method comprising the following steps:
- defining an image field function comprising: • an attractive component associated with the target angular orientation and of zero value for that orientation, and
• if angular constraints have to be complied with, a repulsive component associated with each constraint,
- determining the motion of each segment from an equation of motion as a function of the field for the initial orientation of the segment, and
- sending over a communications network data relating to the segments (for example: angular orientations) and the motion thus determined.
In accordance with the invention, an image field value can be associated with any segment of a shape or skeleton to be animated, represented on the image, for any discrete time n. The field is a vector function E defined for any segment of the shape or part of the shape and any orientation of the segment. Any segment that is part of the shape can be identified in a system of angular coordinates by three angles (α, β, ψ) , for example. The invention adds to these angular coordinates "influence" coordinates or parameters which in fact correspond to the value of the image field at the segment concerned having a defined orientation at the time n concerned. Consequently, with these additional coordinates, it is possible to define the influences to which each segment of the shape is subject and to determine the appropriate motion for the pseudo-leaf to reach its target.
A second embodiment adds to the field or potential coordinates dynamic coordinates ki and ka which are called respectively an "inertia" parameter and a "flexibility" parameter. The flexibility (and therefore the coefficient ka) represents the fact that the object at the point concerned is damped to a greater or lesser degree according to the degree to which it is influenced by other points or other parts of the object. The inertia corresponds to the concept of inertia in classical dynamics (mathematical parameter) .
According to the invention, the description of the motion is therefore contained in the definition of the additional dynamic coordinates. The description of the motion is therefore economical in terms of memory occupancy in a computing device implementing the method of the invention.
The method of the invention provides for immediate modification of the dynamic coordinates constituted by En (the value of the field for a particular segment) or its potential and/or ka and/or ki (damping and inertia coefficients) . It therefore provides for a high level of interaction .
The invention also concerns a method of animating an image or for sending animation data of an image via a communications network, the image comprising a chain of N segments i (i = 0, 1, 2, ..., N-l) between a segment 0 called a pseudo-root segment and an end segment N-l called a pseudo-leaf segment, each segment i_ being identified relative to the father segment i-1 of the segment i_ by a geometrical transformation dTRF(1) = dTRF )*δTRF(1) made up of a rest transformation dTRF ) and a transformation δTRF(1) representing the motion, each of these transformations comprising an associated rotational component dROT(1), dROT0(1) and δROT(1); the method comprises the following steps: 1. determining a target to be reached for the pseudo-leaf,
2. selecting the pseudo-leaf as the current segment,
3. computing for the current segment the rotation δROTB(1) to reach the target fixed for that segment, 4. determining the target to be reached for the father segment of the current segment,
5. selecting the father segment of the current segment as the current segment and reiterating step 3,
6. moving the chain of segments as a function of the rotations thus determined, or for sending the data concerning the chain of segments and the rotations thus determined via a communications network.
Each target to be reached can be determined by three angles C(.target r βt≤irget / ψtarget • According to this method, each segment, or bone, operates as if it were isolated from the others but makes its contribution to the pseudo-leaf reaching its target. The action effected by a bone depends on the action effected by the other bones: if one bone tends towards an attractor, this modifies the attractor of the parent bones, and therefore modifies their action, although they have exactly the same mechanism.
According to this logic, which starts from the "pseudo-leaf" and works back to the pseudo-root, the target of the father segment depends on the target of the son segment.
The invention also provides a method of moving and/or animating an articulated system displayed on an image, the system comprising N segments i (i = 0, 1, 2, ..., N-l) between segment i = 0 called a root segment and an end-segment i = N-l called a pseudo-leaf segment and the segments being joined in pairs by articulations, a target orientation of the pseudo-leaf being determined, each segment i_ being identified relative to the father segment i-1 by a quaternion dQ_. and relative to an absolute frame of reference by a quaternion Qx, the target orientation to be reached being represented in the absolute frame of reference by a quaternion QB, the method comprising:
- for each section i , defining an image field quaternion comprising: • an attractive component associated with the target orientation, and • if constraints are imposed, a repulsive component associated with each constraint,
- computing the speed quaternion for each section i, and
- moving each section of the articulated system in the image as a function of the speed thus obtained, or sending the data concerning the articulated system and the speeds thus obtained via a communications network. Using quaternions solves the problems of discontinuities in the angles, i.e. sudden jumps in the motion, which can occur when using the previous embodiment .
Brief description of the drawings In any event, the features and advantages of the invention will become more apparent in the light of the following description. The description refers to embodiments given by way of explanatory and non-limiting example and refers to the accompanying drawings, in which:
- Figure 1 represents an object point and a target point in a plane, - Figure 2 represents an object point, a target point and an obstacle in a plane,
- Figure 3 shows a skeleton to be animated on a screen, - Figure 4 shows the evolution of the component of a field in accordance with an angular variable,
- Figure 5 shows the relative motion of two segments, or bones, of an articulated chain to be animated, - Figures 6A and 6B are diagrammatic representations of two embodiments of a method of the invention,
- Figure 7 illustrates the problem of angular discontinuities,
- Figures 8 and 9 are diagrammatic representations of the relative position of two segments, or bones, of a skeleton to be animated,
- Figures 10 to 16 show inverse kinematic algorithms using quaternions, and
- Figures 17A and 17B are diagrammatic representations of the structure of apparatus for implementing a method in accordance with the invention. Detailed description of embodiments of the invention The invention will doubtless be better understood after a description of a model developed by the inventors for animating points of an image represented in two dimensions (2D) or three dimensions.
A first example concerns a two-dimensional (2D) representation .
Figure 1 shows a reference plane (0, X, Y) . An object or character (or point or pixel) P, also referred to as the "animate" or object point, with coordinates (x, y) is initially at the origin 0 and is to move towards a target PB with coordinates (xB, yB) . In accordance with the invention, the target generates an attractive field and thereby propagates its influence throughout space in accordance with a particular law. A field E (vector) of this kind can derive from a potential V (scalar) using the equation E(P) = -W(P) where V is the "Gradient" operator.
This means that the components Ex, Ey, etc. of the vector E(P) are given by the equations:
Ex = - (δV/dx) , Ey = - (dV/δy) , etc.
The potential produced by the target is of the form VB(P) = k.|PPB)2, for example, where k has a non-zero value. A potential of this kind, which is an increasing function of the distance I PPB I , represents the fact that the influence of the target increases with the distance of the object point from it.
In field terms (in 2D) :
Ex = -(δVBx) = -2.k. (x-xB) , and Ey = -(δVB/5y) = -2.k.(y-yB)
The field lines generated by the target PB then constitute a bundle of straight-line segments passing through PB . In this example the field is radial and oriented toward PB. Its intensity is zero at PB and increases with distance.
The field E is proportional to the speed (dP/dt) of the point or of the object, for example. Under these conditions, the speed of the point is obtained, in the case of the above potential, from the equations: (dx/dt) = -λ. (x-xB) and (dy/dt) = -λ. (y-yB) (1)
If the field is zero, the speed is zero also, and the character therefore stops (has no inertia) . For this, for a target PB to be reached a field function is used that is zero at PB. This is achieved if the potential function is a minimum or a maximum at PB, for example .
Integrating the above equations yields : x (t ) = xB+B . exp (-λ . t ) and y (t ) = yB+B' . exp ( -λ . t ) in which B and B' are integration constants. Accordingly, the point reaches its attractive target. Its speed is initially high (it is equal to the vector of the components [λxB, λyB] on leaving the origin) and then decreases progressively toward 0.
In a variant the above equations could yield the direction of the point-, rather than the speed, the modulus of the speed being constant (or in any event controllable.) The modulus δ of the speed expresses the required incremental motion of the object point. For the speed norm to be made equal to δ, the following equations of motion apply, and can readily be generalized for three dimensions : (dx/dt) = (δ/||E||) .Ex and (dy/dt) = (δ/||E||).Ey (2)
In one particular embodiment, in some cases, the motion of a point P may be deemed to be possible only in "quantified" directions, i.e. "leftward", "rightward", "upward" or "downward". The motion appears continuous if seen "from afar", as is the case if the point P represents a pixel on a screen. Under these conditions, a motion algorithm needs only to look at the signs of the quantities (dx/dt) and (dy/dt), i.e. the signs of the quantities Ex and Ey. For example, if Ex>0 and Ey>0, the pixel must be moved "rightwards" and "downwards". Until the target is reached, the signs of the quantities Ex and Ey are examined and the pixel is moved accordingly.
The situation will now be described in which there is an obstacle centered at P0 (with coordinates (x0, yo) ) ι the point P having to reach the target by circumventing or avoiding the obstacle (Figure 2) .
An obstacle P0 generates a repulsive field whose influence decreases with distance and is higher locally, in the vicinity of the obstacle, for example. There can in particular be an area or a distance of influence around the obstacle beyond which the repulsive field of the obstacle has no effect. It is a potential field, for example : where || PPo| < di ( influence barrier at distance di from P0) :
V0 (P) = k' - ll PPoll "1 (3 ) elsewhere : Vo ( P) = k' . di"1 (a constant ) .
A function of the above kind is not discontinuous at the influence barrier (which would produce an infinite field at that point) . However, the gradient (the field) gives rise to a discontinuity and this can suddenly repulse the animate, or the point, as it crosses the influence barrier.
A function V0(P) of this kind takes an infinite value for PP0 = 0. However, in the case of an obstacle, it is in principle avoided and therefore never reached. In the area of influence, the gradient of the function V0(P) = k' . HPPol"1 gives a field: Eo(P) = + k' . PPo- ||PPo| 2
(the + sign indicates a repulsive field: k' must be greater than zero for the field to be a repulsive field) . To summarize, the field produced by the obstacle P0 is:
- for 0 < ||PPo|| < dl r E0 = k' .PP0.||PPo|r2
Figure imgf000013_0001
The total field E to which the character or the point is subject is the sum of the various fields (principle of additive fields) :
E = EB + Eo . Whence :
(dx/dt) = (δ/|(EB + Eo)||).(EB + E0)x (dy/dt) = (δ/|(EB + E0)||).(EB + E0) y (4)
(dz/dt) = (δ/||(EB + Eo)||).(EB + E0)z Consider therefore the most general case of the point P attempting to reach a target PB (generator of a potential VB(P) = k. ||PPB||2) in a universe (a 2D universe, for example) containing an obstacle P0. The influence of the obstacle (generator of a potential V0(P) = k' . ||PPB||_1) is represented by equations (5) :
(dx/dt) = (δ/|| (EB+Eo) ||) . [-k. (x-xB)+k' . (x-xo) . ||PP0||"2] (dy/dt) = (δ/ || (EB+E0) ||) . [-k. (y-yB)+k' . (y-y0) . i|PPo||"2] (5) For a qualitative analysis, only the signs of these quantities are considered:
Sgn (dx/dt) =Sgn[-k. (x-xB)+k' . (x-x0) .||PPo|"2] Sgn (dy/dt) =Sgn[-k. (y-yB)+k' . (y-y0) .||PPoH"2] (6) Because of the discontinuity of the field near the influence barrier of the obstacle, the moving point P can suffer a sudden change of trajectory there. There will then be the "surprise" of encountering an unexpected obstacle. This is understandable because the concept of action at a distance, inherent to the field concept, is eliminated beyond the influence barrier, given the definition of that barrier. The discontinuity of the field can be expressed as a vector ΔE with components:
ΔEX = (xd - x0) .d 2 and ΔEy = (y - y0) > dλ ~2 (7) where xd and yd are the components of the point P at the distance dx from P0 (at the influence barrier) . If the amplitude of the components ΔEX and ΔEy is such that Sgn (dx/dt) and Sgn (dy/dt) change, the situation is that of a kind of "impact" (although there is no contact), with a change of direction. Entering the influence area causes the trajectory to be deviated. In the case of a plurality of obstacles (N obstacles) P0ι, P02, -, Pot generalization yields the following equations (in which the value k' - is zero outside the area of influence of the obstacle PθD) :
(dx/dt)=N. {-k. (x-xB)+Σ(D-ι,N, [k'3. (x-x03) . ||PPo_||"2] > (dy/dt)=N.{-k. (y-yB)+Σ(D=1,N) [k':. (y-y0:) .||PPo3| 2] } (8)
(dz/dt)=N.{-k. (z-zB)+Σ(D=1,N) [k'D. (z-z0-) .||PP03| 2] } with N = (δ/|| (EB+∑(J-I,N) (E0D) ) ||) where EθD designates the field associated with the obstacle P0] . The model explained above ignores the influence of the inertia of an animate or a point. The corresponding trajectory is computed by deeming the total field E to which the point is subject to be directly proportional to the direction of its speed v. In mathematical terms, the speed vector v is given in this case by the equation: v = (δ/||E||)E in which the coefficient (δ/||E||) is intended to produce an incremental movement equal to δ.
The algorithm for computing Pn+ι as a function of Pn (also called the Actuator of the animate) is therefore as follows (Pn denotes the current position and Pn+ι the next position) :
Pn+ι = Pn + (δ/||En||)E„ (9) where En is the total field at Pn. In another embodiment the object point has a variable inertia, for example inertia that is constant "far" from a target to be reached and that decreases as the target is approached. This "smoothes" the trajectory when avoiding obstacles (the animate is entrained by its inertia) and prevents any possibility of undefined oscillatory motion about a target since its inertia decreases to the point of becoming very low or even zero once the target has been reached (this has the same effect as progressive "friction") .
To this end, a target PB has a characteristic distance di from which the inertia decreases. Also, the Actuator of the animate then has the following structure:
1 ) Vn+1 = ka . vn + En
2 ) Pn+ι = Pn + (δ/ || v„+1 || ) . vn+1 ( 10 )
The elasticity or damping coefficient ka depends on the distance ||PnPB||. If IPRPBH > di the value ka=l can be taken, for example. On approaching the target, ka falls to 0 so that the influence of the inertia is felt progressively less and less. The coefficient ka therefore progressively reduces the inertia of the animate as it approaches the target to be reached. If the value of ka is very low the field is practically proportional to the speed and if ka is very close to 1 the field is practically proportional to the acceleration. It can be shown that if ka = 0 the situation is as previously where the inertia is zero.
Generally, a value of ka is taken such that 0 < ka < 1. The cases in which ka = 0 or ka = 1 have already been commented on above. For ka > 1 the system diverges .
The law by which ka decreases as a function of ||Pn B|| is a parabolic law, for example: ka = (||pnpB||/dι) . [2-(||P„PB||/dι)] (11)
In a variant, an additional coefficient ki in the range from 0 to 1, for example, is introduced that is independent of the target and such that the speed of the animate is computed from the new equation (12) : Vn+1 = ϊ . kaVn + En ( 12 )
This provides greater flexibility in adjusting the inertia of the animate.
In the method of the invention, the universe in which a point or an object moves is represented in field terms. If the universe is made up of obstacles to be avoided, for example, the fields are repulsive fields.
The algorithm for moving an animate at the object point can be defined by the following rules.
At time n the animate is in state ψn. This state comprises a set of kinematic data, for example, namely the position Pn of the animate, its speed vn and its incremental movement δ.
A chain of action (or "actuator") of the animate capable of producing its new state ψn+ι at time n+1 as a function of the obstacles and the target to be reached has the following structure, for example:
1) Compute the total field En (attractive and repulsive component) at point Pn.
2) Compute the new speed using, for example, the equation:
Vn+1 = kaVn + En where ka = ( || P„PB|| /dι ) . [ 2 - ( || P„PB || /dι ) ] for II PRPB || < i and, for example , ka = 1 otherwise .
3 ) Compute the new position Pn+1 = Pn + (δ/ ||vn+1 || ) . vn+1 in a more general embodiment, the speed of the object point can be computed from the equation:
Vn+1 = kaVn + kiEn in which :
• Vn+ι and Vn are respectively the speed at times n+1 and n,
• En is the value of the field (with its attractive component (s) and/or repulsive components) at the location of the point at time n, and
• ka and ki are respectively a damping coefficient and an inertia coefficient.
The function of ka has already been explained. A value is generally taken such that 0 < ka < 1, the values ka = 0 or 1 also being possible. Once again, ka can be made dependent on the distance, for example using equation (11) above, with the same effects as already explained. The coefficient k (> 0 and generally in the range from 0 to 1) corresponds to inertia in classical physics (in the mathematical sense of the term) .
If ki is low, inertia is high (and vice versa) and if ka is low, damping is high (or "flexibility" is low) and vice versa.
Note that if ka = 0 the effect of the inertia is zero although the mathematical coefficient ki has a nonzero value.
Another coefficient ke can also be introduced, by means of the following equation: vn+ι = kekaVn + kiEn in which: ka and ki have the same meaning as above, ke is a multiplier coefficient for ka . The model described above can be transposed to the problem of transforming or animating skeletons, in particular three-dimensional (3D) skeletons, which approximate a real image .
To this end an image, or rather a skeleton schematically representing objects or shapes of an image (such as the representation of a character from Figure 3, for example) can be considered or described as a set of articulated "bones" 2, 4, 6, 8, 10, 12 connected together by articulations.
Each bone B has a father B^i . If it has no father, the bone B± is the root and i = 0. The chain of bones is described as a series of relative geometrical transformations dTRF(1). The prefix d stands for "difference", and dTRF ) is the transformation of the bone Bx relative to the frame of reference of the father bone (i-1) . In the case of B0, dTRF(O) is the transformation of the bone B0 in any
"absolute" frame of reference. In a frame of reference of this kind, each bone B-. has a transformation TRF(1) = TRF(1)*dTRF(1) with TRF(-i) = I (Identity) .
Consider first a kinematic chain, that is to say a series of "bones" connected by articulations. The end "bone" is called the pseudo-leaf.
An orientation in space can be defined by three angles α, β and ψ. α and β are the spherical coordinates of the rotation axis and ψ is the rotation angle about that axis. The pseudo-leaf bone seeks to reach a
"target" orientation also defined by three angles αtarget βtcirget and ψtarget •
A set of three angles constitutes a vector that defines an angular point Pa = (α, β, ψ) . For example, the pseudo-leaf is an angular point
Pa = (α, β, ψ) which must reach another angular point
Patarget = (0-target , βtarget, ψtarget ) • The target ang lar point generates an attractor field E in the space of the angular points. The field is a vector function E (α, β, ψ) defined at any angular point Pa = (α, β, ψ) or for any direction defined by three angles α, β, ψ. Pa moves in this space of angular points due to the effect of this field.
What is more, a bone cannot always take any orientation: there may be constraints on it. These constraints can be materialized by one or more angular points Paback creating a repulsive field E' at any point in the space .
Transposing the equations given above yields the following algorithm:
Vn = KaVn-i + K^En + E'n) (13-1)
{
Pan = P.(n-l) + n (13-2)
in which: n is an integer which represents discrete time, Pan is the angular position at a particular time, Pa(n-i) is the angular position at the "preceding time", Vn is the "speed" vector of the angular point, E is the attractor vector field with components:
E [ K ( αtarget ~ Ct (n-l ) ) ' K ( βtarget ~~ β (n-l ) ) / K ( ψtarget ~ ψ (n-l ) ) ] / K being the attractor coefficient (for example < 10"1, which is already a high value) ,
. E' is the repulsive field, which is related, for example, to the fact that each parameter α, β and ψ can vary only within certain limits: αe[αmm, omaχ] βe [βmii βmaxl and ψe [ψmin, ψmax]- One or other of these parameters can reach a limit value.
For example, if ψ < ψmιn + r. (ψmax - ψmιn) , ψ is said to be "close" to
Figure imgf000019_0001
£ being a proximity coefficient (which can be equal to 1/10, for example, or is typically in the range from 0 to 1) . There is then, for the component ψ of the particle, a repulsive field E'ψ in the direction of ψ whose (positive) value is:
E'ψ = -K' . [ψ - (ψmιn + r. (ψmax - ψ n) ) ] where K' is a "repulsor" coefficient (a value of a few units, is already a high value) .
Conversely, if ψ > ψmax - r. (ψ max - ψmιn) , ψ is "close" to ψ„a . This tendency is compensated by applying a repulsive field E'ψ in the direction of ψ whose (negative) value is: E'ψ = -K' . [ψ - (ψmax - r. (ψmax - ψ n) ) ]
. Ki is the angular inertia coefficient of the bone influenced by the fields E and E' . A low value of Kx gives a high inertia (a strong field has less influence on a high inertia object) and vice versa.
If kx is equal to 0, there can be no movement.
If ki is close to 0, a great deal of time is required for a bone to move from one position to the other (this is the problem of moving a body with high inertia) . k = 1 gives a low inertia, but this depends equally on the intensity of the vector E + E' , which is a variable parameter.
A value is generally chosen such that 0 < ki < 1
Ka is the angular damping coefficient of the bone influenced by the fields E and E' .
If Ka = 0 there is maximum damping, which means that vn = 0 if (E + E' ) = 0; or, in other words, the particle stops if the total field applied to it is nil.
A value of Ka equal to around 0.5 rapidly damps the process .
If Ka = 1, the sum (E + E' ) is equal to the acceleration vn - v(n-i) and the particle does not stop if the total field applied to it is nil; in this case the damping is minimum. The value of Ka = 1 causes the point to oscillate about its target, without ever reaching it.
If a value is taken such that Ka > 1, the point never reaches its target but moves away from it irrevocably. (In fact this is true only in the sense of this being a very high "probability") .
The coefficient Ka is an intrinsic characteristic of the bone subject to the influence of the field (likewise Ki) . For preference a value is taken such that 0 < Ka < 1.
For some degree of "reliability" of operation, for example in the case of large oscillations, whilst continuing to compute the speed vn from equation (13-1) it is possible to modify equation (13-2) slightly by introducing a limit speed vlim that the particle at "angular" position Pan must never exceed, or an angular speed that the bone must not exceed.
For this, the "norm" of the speed is computed:
|| Vn || = I Vαn I + I Vβn I + I Vψn I
If ||vn|| < vlιm, then equation (13-2) is unchanged. Otherwise, equation 13-2 is modified (to become equation 13-2') as follows:
Pan = Pa .n-l ) + Vn. Vlιm/ 1| Vn || ( 13 -2 ' )
The inertial properties are retained, because the speed vn is computed in the same manner; however, the particle "absorbs" the high speed fluctuations unless the system is damped too slowly.
This limitation of the speed also has a role if the system attempts to exceed limit values . The limit angular values are in fact not "thresholds" in the strict sense of the term. These limit values can be exceeded, in particular if the system is set up with a high inertia. This does not occur in practice if the precaution is taken of artificially limiting the "speed" of the particle in the same manner as described above in the case of large oscillations.
To illustrate the influence of the total field on the particle, equation 13-1 can be represented graphically (Figure 4) on one component only (for example ψ) . Projecting equation 13-1 onto the ψ axis yields: Vψn = Ka . Vψ (n-i ) + K_. . K ( ψtarget " ψ (n-l ) ) + KX . E , wi th :
• E ' ψ = E ' ψi = -K' . [ψ- (ψ n + r . (ψmax - ψπ n ) ) ] / if ψ < ψmιn + r . (ψmax - ψmιn) , and :
• E ' ψ = E ' ψ2 = -K' . [ψ- (ψmax - r . (ψmax - ψ n) ) ] if ψ > ψmax - r. (ψmax - ψmιn) . If Ka = 0, the field Eψ + E'ψ represents the variation vψn that must be imparted to ψ. The graph shows that if ψ > ψtarget the variation is negative, which tends to reduce the difference (ψ - ψtarget) • Conversely, if ψ < ψtarget the variation is positive, which tends to reduce the difference (ψtarget - ψ) • The target is therefore a point of convergence.
From the geometrical transformation point of view it may be said that, in an initial state, a chain of bones is a series of relative transformations that are fixed by construction. Let dTRF0(1) represent these "rest" transformations. When the chain moves, each transformation dTRF(1) is subject to a variation δTRF(1) about dTRF0(1) in accordance with the following law: dTRF ) = dTRF0(1)* δTRF )
Accordingly, it is the series of variations δTRF that produces the motion of the pseudo-leaf towards the required orientation.
For a complete description of the kinematic chain the constraints on δR0T(1) can be specified for each bone
(i) :
- First of all the initial rotation axis of δROT(1) is indicated. Each δROT(i) is associated with two angles α0 and βo which indicate the position of the initial axis.
In fact the initial rotation angle ψo about this axis is always nil because the initial variation of δROT0(1) gives the identity matrix. - Then the constraints are indicated by "angular
V ctors amln ( Ctnun Piαin / ψmin ) and Camax ( Ctmaχ , Pme f ψmax ) which give the authorized limit values of the three angles α, β and ψ.
For example, if αmιn = α0 - αmax and β n = β0 - βmaχ the maximum constraint is that on the position of the rotation axis, since it is prohibited from moving. For example, if ψmιn = ψ0 and ψmax = ψo + 90°, this means that the bone can turn about its fixed axis only through an angle ψ between its initial value ψ0 and the value ψo + 90°.
The convergence of an isolated bone toward an attractor can now be described in the following manner.
It is assumed that a bone i of the chain is isolated (and therefore that the bones are processed independently of each other) , this bone having to achieve an orientation ROTB(1) .
The algorithm enabling it to arrive there is as follows (ROTi designates the rotation associated with the bone i. in an absolute frame of reference) : 1 - Compute dROTB(1) to be reached from the equation: dROTB(1) = ROT"1,!-!,* ROTB{1); or dROTBU) = R0TB , if i = 0. 2 - Compute δROTB(1) to be reached from the equation: δROTB(1) = dROT0_1 (1)* dROTB , .
3 - From δROTB(1), compute the three angles αB, βB and ψB to be reached (equations 13-1 and 13-2 above) .
4 - From the field theory described above, compute the three angles αn, βn and ψn actually reached (using equations 13-1 and 13-2; these operations are "projected" onto the "axes" α, β, ψ) .
5 - From the three angles αn, βn and ψn, compute the resulting matrix δROTB(1) . 6 - Compute dROT(1) to be applied to the bone from the equation: dROT , = dROT0 )* δROTU). 7 - Repeat the process as many times as necessary.
The process described in the previous paragraph can be applied in exactly the same manner to all the bones of the chain. Each bone operates as if it were isolated from the others but makes its contribution to the pseudo- leaf reaching its target. The action of a bone depends on the action of the other bones: if a bone tends towards an attractor, this modifies the attractor of the parent bones and therefore modifies their action, although they have exactly the same mechanism.
The following algorithm applies for all the bones (assigning the index i = N to "the pseudo-leaf" of the chain) :
1- Compute all absolute rotations ROT(i) for ie [0, N] .
2- Create an index i = N defining the "active" bone.
3- Store the target ROTB(N) of "the pseudo-leaf" in a buffer ROTB. 4- Require bone number i to accomplish the algorithm described above by taking ROTB(x) = ROTB. 5- Set i=(i-l) to set the father bone. 5-1- If there is no father, return to step 1.
5-2- If there is a father, compute its target from the equation ROTB = ROTB*dROT"1 ) and return to step 4.
In this logic, which starts from "the pseudo-leaf and works back to the pseudo-root, the target of the father "agent" depends on the target of the son "agent" (this is the equation ROTB = ROTB*dROT"1 (1) ) .
The orientation to be reached is set by the three angles αtarget, βtarget and ψtarget- given bone has its current orientation fixed by the three angles α, β and ψ. In fact, the process of convergence minimizes the angular distance Da given by the equation
Da = | α-αtarget l + I β-βtarget I + I ψ " ψtarget I • α and β are the spherical coordinates of the rotation axis. For this axis to be able to travel through all of the space it is sufficient to take α € [-π, +π] and β e [-π/2, + π/2] .
The axis being given, it is not necessary for ψ to be able to vary by a complete rotation (ψ e [-π, +π] ) to express all possible rotations: to scan all rotations it is sufficient for ψ to be able to vary by a half- rotation, for example ψ € [0, +π] . Rotation through angle ψ about axis u is equivalent to rotation through angle -ψ about axis -u (the direction of the axis is changed) .
Thus there is always a choice of two possible angles for the same rotation. In particular, the three angles ^target? βtarget and ψtarget are equivalent to the three angles α' target / β ' target nd ψ ' target SUCh that : β ' target = ~βtarget and ψ ' target = "ψtβrget
O- target = Cttarget + 7t i f Ctterget < 0 Or O.' target = αtarget ~ π i f Cttarget > 0
This latter relation conserves α' target e [~π, +π] . To decide between the two possible combinations, the one is chosen which, relative to the current orientation α, β and ψ, gives the minimum angular distance Da.
The pseudo-leaf of a chain of bones can reach a given point in space independently of its orientation. A point in space can be reached by rotation of the bones of the chain and therefore with an angular attractor field. However, as the source of this field is here a point in space and not an orientation, this field is called a translation angular attractor field.
As shown in Figure 5, E(1-n) is the end of bone number i and Bx the point in space to be reached. A rotation through angle ψx about an axis perpendicular to the plane (E^., E(1+D, B has the effect of moving E(1+D towards B^..
Figure 5 shows the end E(N+i) of the pseudo-leaf in the process of attempting to reach the point BN if the number of the bone is i = N. To simplify the notation, let E(N+i) = E and BN = B . The following equation is an expression for the vector EB in the absolute frame of reference :
EB = OB - {TRL(N) + ROT(N) *[0, 0, -LN]T} (14) in which TRL(N) and ROT(N, are the translation and rotation components of the transformation TRF(N) in the absolute frame of reference.
Each bone contributes to the pseudo-leaf reaching the target B: each bone has the same work to do, namely effecting a rotation through angle ψx . The formula giving the expression for the vector EB in the frame of reference of bone number i_ is obtained in the following manner. In this frame of reference, let E^IJBJ. be the expression of the vector EB; then:
EnB, = [ROT(1)]-1*EB (15) where ROT ) is the component of the rotation of the bone i. in the absolute frame of reference.
At a given "time n", bone i is deduced from its father by the rotation dROT ) . For this bone i to contribute to the pseudo-leaf moving towards B, its end E(1+D must effect a rotation d2ROTBU), the matrix expressed in the frame of reference of the bone i.
Consequently, and relative to its father, the bone i is subject to a rotation dROTB ) = dROT(1) *d'ROTB(1) .
This rotation to be achieved is expressed, for bone i., in its construction frame of reference and as a function of reference (construction) transformations dROT0(1), in accordance with the following equation: δROTB(1) = dROT0"1 (1)*dROT(l)*d2ROTB(1)
In conclusion, each bone i_ sees its rotation dROT(1) relative to its father tend towards the rotation δROTB ) . This corresponds to three angles αB, βB and ψB which define the translation angular target.
It is therefore sufficient to compute d2ROTB(1). The rotation through angle ψ is about an axis u whose direction is given by the vector product:
Figure imgf000026_0001
In the frame of reference of the bone i_ the components of u are (ignoring a multiplier coefficient) :
Ux = (E +uB y, Uy = -(E,x+ι,B-.)x and Uz = 0
The Z axis component being nil, the matrix d2ROTB(1) is given by:
ux". (1-cosY) +COSΪ ux.uy. (1-cosY) uγ. sinY d'ROTB(l) ux.uγ. (1-cosY) uγ 2. (1-cosY) +cosY -ux.sinY
Uv. sinY ux.sinY cosY
Scalar product EIE(1+D .E(1+i)Bι is used to find cosψ: cosψ = K. [L1-(EB)lZ] where: K = {[(E(1+1)B X]2 + [(E(1+1)B1)y]2 + [ .-tEu.DB z]2}-1'2
Because sinψ = K. { [ (E(1+ι,B1) x] 2 + [ (E +1]BX ,]2}l/2 , there is no need to compute ux and uy, which are normalized at 1, explicitly, but the following coefficients of the matrix d2ROTB ! are found directly:
Figure imgf000026_0002
uY.sinY = - K. (EU+1)B X Also: ux 2. (l-cosY)+cosY = [K. (E +1)B1)Y]2/(l + cosY) + cosY uγ 2. (l-cosY)+cosY = [K. (E +1)B x]2/(l+cosY) + cosY ux.uγ. (1-cosY) = [-K. (E(1+1)B1)X] . [K. (E(1+1)B1)Y]/(l+cosY)
Thus all coefficients of the matrix d2R0TBU) have been computed.
The calculation of K can yield an infinite value if the quantity { [ (E,1+ι,B1) x] 2 + [ (Eu+ι,B γ]2 + [L,- (E ,l)B,) z] 2} is too low.
If [(E(1+ι,B1)x]2+[(E(1+1)B1)γ]2 « [LX-(E(1+1)B1)Z]2}, however, the angle ψ is either very close to 0 or very close to π. The comparison can therefore be done by taking a factor in the order of 10"5, which is largely sufficient in terms of accuracy and guarantees that K will always be a number. If [Lx- (E(1+i)Bι) z] > 0, the identity matrix is produced.
If [Li- (Ed+ijBi) z] < 0, there is more than one possible matrix because there is symmetry about an indeterminate axis. However, it is sufficient to take one of the possible matrices.
The algorithm for the influence of a point in space can therefore be as follows:
1 - compute all absolute rotations ROT(1) for ie[0, N] ,
2 - create an index I = N defining the number of the "agent" bone,
3 - compute EB from equation (14) above,
4 - compute Eu+uB. from equation (15) above,
5 - compute the matrix d2ROTB(1), as previously described,
6 - deduce from it the matrix: δROTB(1) = dROT0~1 >*dROT )*d2ROTB,-.>
7 - deduce the three angles αB, βB and ψB from the matrix δROTB(1),
8 - apply the field theory, regarding these three angles as an angular attractor field, and deduce δROT ) and then the rotation dROT(1) to applied to the bone (from the equation dROT ) = dROT0U)* δROT )),
9 - set (i-1) → i to select the father bone, 9-1 - if there is no father, return to step 1,
9-2 - if there is a father, recompute TRF(N) (which has just been modified) and then return to step 3.
How the pseudo-leaf and all the bones of the chain can be attracted in a common direction can now be described. This attraction direction constitutes a gravity field. This attractor is called the gravity angular attractor. The rotations of the bones are used to produce this effect; the root is as if fixed to a pivot (which does not react) and everything "falls" in the direction of the gravity field. If the articulations are unconstrained, the system "unwinds" and tends towards that direction.
The principle is the same as before except that the vector EB has three fixed components that do not depend on the position of the pseudo-leaf. In other words, the equation EB = OB - {TRL(N) + ROT(N)*[0, 0, -LN]T} is no longer to be used, because EB is a constant.
All the computations are exactly the same as before, except for finding cosψ, for which the scalar product EEji+D.Ex is used (rather than EiE(i+ι, .E(i+i)Bι) . This is equivalent to making the single modification Li = 0 in the above equations. In the scalar product EiEd+u .Ei, Ei is the expression of the gravity field E in the frame of reference of bone number i_, i.e. E = [ROT(i) ] _1*E .
The algorithm for the gravity angular attractor field is a simple one: the axis of each bone of the chain (the axis of the bone, not the rotation axis) tends to be oriented toward the gravity field "of its own accord" (independently of the others) .
The rotation (or orientation) components of the motion are assumed to be subject to the influence of the angular fields. It follows from what has been explained already that there are four different types of angular field:
1 - Rotation angular attractor fields. These fields correspond to an orientation that the pseudo-leaf must achieve .
2 - Translation angular attractor fields. These fields correspond to a point in space that the pseudo- leaf must reach. 3 - Gravity angular attractor fields. These fields correspond to a direction in space which all the bones of the chain must reach.
4 - Constraint angular repulsive fields. These fields correspond to the orientations that the various bones of the chain must avoid.
The combination of the three attractor fields constitutes a global objective to be achieved.
Let EaR, EaT and EaG be the three attractor fields and Er the repulsive field. The total field E is E = EaR + EaT + EaG + Er.
Each attractor field Ea has the following components :
Ea [ K . ( αtarget " Ot) , K . ( βtarget " β ) , K . (ψtarget " ψ ) ]
Accordingly, the components of the total field Ea are:
Ea=KR . ( atargetR-a ) + Kτ . ( atargetτ_a ) + KQ . ( atargetG-a ) + Era Eb =KR . (btargetR-b ) + Kp . (btargetT~b ) + KQ • (btargetG~b ) + Er Eγ=KR . ( YtargetR_Y ) + Kτ . ( YtargetT~Y ) + KG • ( YtargetG_Y ) + Erγ
The above equations show that the three objectives are combined in linear fashion with the possibility of weighting the three influence coefficients KR, Kτ and KG.
Each bone of the chain corresponds to the pseudo- leaf reaching the given orientation. In one embodiment (Figure 6A) , the bones operate in a certain order .
Bone N-l operates first. Then the target of bone N- 2 is computed and it operates. Then the target of bone N-3 is computed and it operates, and so on, up to bone 0. This procedure is "linear upward" and gives good results. A different logic takes account of the operation of bone N-2 disturbing the previous operation of bone N, etc. It is then desirable to have bone N-l "react" to the operation of bone N-2, and thereafter to have only bone N-3 operate. Figure 6B shows this alternate procedure . The consequence of each operation of bone _i is then a "downward" reaction on the successive bones i+1, i+2, ..., N-l.
Regardless of the order in which the bones are processed, each of them is influenced by the motion of the others. Each bone adapts its operation not only to the target to be reached by the pseudo-leaf, of course, but also to the preceding operation of the other bones.
Overall, results are better with this second procedure. The algorithm effects "micro-resolutions" which can be reviewed at each new iteration. This means the process is not limited to one solution at time n if another, more beneficial solution, emerges at time n+1.
This new approach indicates that the target of bone i-1 can be computed from the objective of bone i because the "linear upward" order is no longer valid. The target of any bone is therefore computed absolutely. The
Computation Of the angles (CttargetR, βtargetR/ ψtargetR) / ( CttargetT / βtargetT / ψtargetϊ1 ) and ( CttargetG/ βtβrgetG/- ψt rgetG ) for each of the three angular attractor fields is explained below.
1 - Rotation angular attractor field: (ROTBN is the orientation to be achieved by the pseudo-leaf) . 1-1 - Compute ROTBx = ROTBN* [ROTN] "1*ROT1.
1-2 - Compute dROTBx = [ROTB(1- ] "^ROTB.. or dROTBi = ROTB;,. if i = 0.
1-3 - Compute δROTBx = [dROTO -1*dROTBι .
1-4 - Deduce from δROTBx the angles (αtargetR, βtargetR-- ψtargetR) •
2 - Translation angular attractor field: (TRLBN is the point in space to be reached by the pseudo-leaf) .
2-1 - Compute EB = TRLBN - TRLN + ROTN *[0, 0, LN]T.
2-2 - Compute EB_. = [ROT '^EB and deduce d2ROTBx from it. 2 -3 - Compute δROTBi = [ dROTO "1*dROT1*d2ROTB1 .
2-4 - Deduce the angles (αtargetτ βtargetT ψtargetr) from δROTBx .
3 - Gravity angular attractor field: (EG is the direction to be reached by the pseudo-leaf) .
3-1 - Compute EGl = [ROT1]"1*EG and deduce d2ROTBx from it. 3-2 - Compute δROTBx
Figure imgf000031_0001
. 3-3 - Deduce the angles (ottargetc- βargetc^ ψtargetc) from δROTBx . When all the attractor angles have been computed, the total field E has also been computed. The remainder of the process that produces the action of bone i_ is written as follows:
4 - Compute from the field theory the angles (α, β, ψ) to be imparted to bone i_.
5 - Deduce the matrix δRO i from it.
6 - Deduce the matrix dROTi = dROT01*δROT1, which is the new rotation matrix of bone i , from the matrix δROTi .
7 - If the process has not terminated (another bone is to be subjected to an action) , return to step 1, but after updating the transformations TRF N and TRFX which have just been modified.
The process described above uses descriptions of the motion and positions in terms of angles. The equations given have the advantage of being linear. In fact, this can give rise to a number of problems, especially in the case of combining the two angles (α, β) which represent the rotation axis and in the case of interpolation between two pairs (cti, βi) and (α2, β2) in which the components α and β are interpolated linearly but separately. This can lead to discontinuities in the angles, i.e. to sudden jumps in the motion. As shown in Figure 7, a rotation can then be effected along a path 14 (clockwise in Figure 7) rather than along the other path 16 (counter-clockwise) , in a manner that is difficult to predict .
One solution to this problem is to use a description in terms of quaternions. A rotation is then represented not by angles but a unit quaternion Q. The disadvantage of this form of description is that the field equations are non-linear. As already explained, to each bone B_. there corresponds a transformation dTRFj.. The rotation part of this transformation is expressed in the form of a quaternion dQ_.. The theory of quaternions is explained in S.G. HOGGAR, "Mathematics for Computer Graphics", Cambridge University Press.
In physical terms, a quaternion dQ is a rotation through angle dψ (spin or "inherent rotation") about an axis dA which is a vector entirely defined by two angles dα (right ascension or "bearing") and dβ (declination or "azimuth") . Let dPa be the set of these three angles: dPa = (dα, dβ, dψ) (Pa signifying "angular point") . The value of dPa determines that of dQ but the value of dQ gives two possible values for dPa because a change of sign of dψ and a change of direction of the axis A give the same rotation.
In theory, to define the rotation between a bone and its father it sufficient to store dPa in a database.
It is equally possible to introduce a breakdown of the rotation dQx into a plurality of terms. In an initial state the chain of bones is a series of relative transformations set by construction. Let dTRF0(D represent these "rest" transformations. When the chain moves, each transformation dTRF(1) is subject to a variation δTRF(1) about dTRF0d. in accordance with the law: dTRF ) = dTRF0(ι)*δTRFu, . It is therefore the series of variations δTRF . that produces the motion. In terms of quaternions, this is written: dQ^. = dQo*δQ1.
In other words, the quaternion dQ_. is considered as the combination of an equilibrium quaternion dQl0 and a variation δQ written: dQx = dQiO.δQi (the product is here a product, or rather a combination, in the sense of this term in the theory of quaternions) . The quaternion dQx represents the orientation of Bj. relative to B(1-D and the orientation of x relative to an absolute frame of reference is represented by the absolute quaternion Qx in accordance with the recurrent equation Q = Q(ι-i)dQx. An additional breakdown leads to consideration of the rotation δQ as the product of two rotations: δQi = δQiθ*d3Q!, because the processing of the angular constraints imposes symmetry on the limit values of dψ (the minimum angle must be equal and opposite the maximum angle) .
In total, the absolute quaternion Qx is written:
Qi = dQ1-ι*δQl0*d3Q1 (16) Finally, d3Qx that can be considered as the true variable, dQ_. and δQl0 being merely variable "parameters", or imposed by construction or because of the constraints. This additional breakdown can also be interpreted in the following manner: the initial construction rotation dQo has now become the rotation d'Q0 = dQo*d2Qo which finally leads to the expression: dQ = d'Qo*d3Q. At a given time n, all the absolute quaternions of the articulated system can be calculated from the variations δQi using the above equations .
The variations δQx can be deduced from the absolute quaternions Q from the inverse equation: δQα. = [dQl0]_1. [Qu-i.r'.Qi (20)
Assume that bone Bx is attracted by an absolute orientation expressed by the quaternion QB. The rotation of the bone Bx (expressed by the quaternion Q ) is subject to the influence of an attractive rotation (expressed by an attractor quaternion QE) . QE has the same role as the field E from equation 13-1 and expresses the "intention" of the bone Bx to reach the orientation QB.
For a point, the expression of an attractor field at time n is written En = PB - Pn. However, for a quaternion, this difference is replaced by the following multiplication :
Q En = [Qm]_1.QB (21) For a quaternion: QEn = Qi (Identity) if Qιn = QB, which satisfies the equation QEn = [Qm] -1-QB.
However, equation 13-1 shows that the field En is subject to scalar multiplication by an inertia angular coefficient kx. Here this coefficient has the same meaning as explained above; preferably 0 < kx < 1. In the language of quaternions, the term k^En is replaced by the term:
Figure imgf000034_0001
Q'B is the quaternion spherically interpolated between Qιn and QB in accordance with the coefficient klf written Q'B = Qxn(° -.)QB
The symbol (\) represents the operator performing spherical interpolation of coefficient kx . Multiplication by a scalar is equivalent to spherical interpolation between quaternions and addition or subtraction is equivalent to multiplication of quaternions. The following field theory equations are therefore valid for quaternions: Vn = QEn. [Qι(°ka)V(n_1)] (23)
Figure imgf000034_0002
Based on equation (22) , the expanded expression for Vn is: Vn = [Q1n]"1[Q1n(0k1.)QB] • [Qι(\a)V(n-ι>] ka is the angular damping coefficient (see above explanations on this subject) ; once again, a value is preferably taken such that 0 < ka < 1
From an algorithmic point of view, the operations that can be effected for a bone B to tend towards an absolute attractor QB (like a system slaved in orientation) are:
1 - Compute the variation δQBn that must be imposed on the bone B for the attractor QB to be reached exactly, using equation (20) and replacing Q with QB:
Figure imgf000034_0003
The variation δQBn has the index n (which represents time) because it depends on dQ(i-ι)n, which is generally variable .
2 - Compute the resulting field, using equation (22) and replacing QBn by δQBn: δQEn = [Qin]"1- [Qm(°k)δQBn]
3 - Compute the speed quaternion Vn using equation (23) and replacing QEn by δQEn.
4 - Compute the quaternion δQιn using equation (24) and replacing Qin by δQin and Qi(n-i) by δQi(n-i) • 5- Compute the quaternion Qin = Qα-nn-dQio .δQin using equation (24) .
This algorithm, repeated for all the bones of a chain from its end to be slaved (to be made to tend toward a fixed target) , working back to its other end, constitutes a new inverse kinematic algorithm.
The angular constraints are defined in the following
9 9 manner: the quaternion d Q is associated with an axis dA and a rotation through angle d2ψ about that axis and the quaternion d2Qo is associated with an axis d2A0 and a rotation through angle d2ψ0 about that axis. d2Q can vary about d2Q0 so that:
- the axis d2A is entitled to be contained in a cone with axis d2A0 and half-angle γ, and
- the angle d2ψ is entitled to vary about d2ψo by ±Δψ/2, where Δψ/2 is the half-angle of variation authorized for d2ψ.
The angular constraints (denoted d3Ca) are therefore the set of two values γ and Δψ: d3Ca = (Δψ, γ) . d2Q is varied about d2Q0 by the quaternion d3Q in accordance with the equation d2Q = d2Q0*d3Q. Physically, d3Q expresses the variations of a rotation about a rotation axis d2A0 through angle d2ψ0.
To finish, all that needs to be stored in a database is the angles dPao, d2Pa0, d3Ca and dPa. d2A0 and d2Qo are deduced from d2Pa0, dQ0 and d3Q are deduced from dPa0 and d3Pa, respectively. Also dQ0 is deduced from d' Qo and dQ0. The axis d2A0 can be computed because it is used for the angular constraints. If the choice is made not to store the variation in the database (the rotation is stored for d3Q ='I), the need to store d3Pa in it can be avoided.
From the graphical point of view, consider two bones Bi and Bi-i (as shown in Figure 8) . The aim is to define the angular constraints at the articulation between the two bones . Consider the case in which the rotation about the articulation is a rotation about the axis d2A0, the constraint on which is maximum (i.e. this axis has no degree of freedom, in other words γ=0) .
The current rotation dQ of the bone Bi corresponds to a rotation through angle d2ψ about the axis d2A0. The bone Bi is made to turn about the axis d2A0 to define the extreme limits d2ψMιN and d2ψA of the angle d2ψ. These extreme limits define:
• The variation Δψ = 2ψMA - d2ψMiN/ which gives d3Ca = (Δψ, γ = 0) .
• The quaternion d2Q0, deduced from the axis d2A0 and the angle d2ψ0 = (d2ψMIN + d2ψMAx)/2. As for the axis, the two angles α and β which define it can be found, and d2Pao is also deduced from it. The "rest" position is that which corresponds to a nil variation (d3Q = I) . The bone Bi is made to turn about the axis d2A0 until this is obtained. The rotation dQ obtained in this way and from which dQo (or dPao) is deduced is dQ = d'Q0 = dQ0*dQ0. If the rotation axis d2A0 is free, this freedom is reflected in the possibility of the axis being within a cone with half-angle γ. The axis of the cone is the rotation axis d2A0. Also, regardless of the position of the rotation axis within the cone, the constraint on the angle d2ψ is always the same.
This means that the constraint on the angle d2ψ can be adjusted for any position of the axis d2Ao as indicated above .
Thereafter, for adjusting the angle γ, the cone may be visualized as shown in Figure 9.
As already stated, the axis of the cone is the rotation axis d2Ao. If the rotation axis is d2A0' (see
Figure 9) and the constraint on the axis is required not to be equally distributed within the cone in this way, the procedure required is as explained above, with the only difference that the "rest" rotation this time has the axis d2A0' not the axis d2A0.
A detailed algorithmic description of the inverse kinematic in accordance with the invention using quaternions will now be given with reference to Figures 10 to 16. Consider a chain of N "bones" B0 to B(N-i) . B(1-D is the father of Bx . B0 is called the "pseudo-root" and B(N-D the "pseudo-leaf". The bone B(N-i) is influenced by a set of fields consisting of a set of attractor fields that represent the target that it must reach and/or a set of repulsive fields that represent one or more obstacles to be avoided.
The set of fields is any combination of fields that can be classed in one of the following three categories:
- spatial fields: an attractor (respectively repulsive) field of this type represents the fact that the pseudo-leaf must reach (respectively avoid) a given point in space; this type of field also concerns or describes translation type transformations;
- directional fields: an attractor (respectively repulsive) field of this type represents the fact that the pseudo-leaf must be oriented along (respectively avoid) a given direction; this is a spatial field for which the point to be reached (respectively avoided) is at infinity; - rotational fields: an attractor (respectively repulsive) field of this type represents the fact that the pseudo-leaf must reach (respectively avoid) a given orientation, i.e. a given rotation.
The algorithm shown in Figure 10 explains how, at each time n, the pseudo-leaf attempts to reach its fixed target, in collaboration with all the other bones of the chain.
To be more precise, the algorithm produces for all the bones Bi of the chain values of the quaternion dQi relating to the father B -u . If there is no father (i = 0), dQi is identical to the absolute quaternion. On each pass of the algorithm the pseudo-leaf moves toward the fixed target at the same time as the other bones of the chain contribute to this result.
The algorithm is repeated as many times as required, for example indefinitely. Once the pseudo-leaf has reached the target, it may be useful to allow the algorithm to continue running. For example, if the quaternion dQi of a bone which is not the pseudo-leaf is forced to change when the target has been reached, the absolute quaternion Q(N-D of the pseudo-leaf is modified, unless the algorithm is still running. In other words, if the pseudo-leaf reaches its target, the loop 22 maintains it in that state.
In a first step 20-1, the value N-l (pseudo-leaf index) is assigned to i_ (bone index) . Then (step 20-2) the number Nf of attractor or repulsive fields of the bones Bi is computed: if Nf = 0, there is no field. The computation of these fields is described in detail below, with reference to Figure 11.
A test is performed to determine if Nf is equal to 0 (step 20-3) .
If Nf = 0 (no attractor or repulsive field) the dynamics of Bi (step 20-5) can nevertheless be computed to execute its transient relaxation conditions.
Step 20-4 computes the global field of the bone Blf which is a combination of the various fields. The computation is described in detail below with reference to Figure 15. Step 20-5 corresponds to computing the speed and the quaternion relating to the bone Bx. This computation is described in detail below with reference to Figure 16.
The algorithm then moves on to the father bone B^i (step 20-6) . A test is conducted (20-7) to determine if it is the pseudo-root that has just been processed. If i < 0, the algorithm stops.
This algorithm uses real time control (loop 22) . The conjoint use of quaternions, the theory of influence and real time control produces a functional and dynamic inverse kinematic.
Figure 11 shows the computation of the various fields of the bone Bx (here for the attractor fields, the same diagram being valid for repulsive fields) . First of all, the index j_ of a field of influence associated with the pseudo-leaf is initialized (step 30-1) .
Then (step 30-2) , a pointer pQ0 is associated with the start of a table to be created; this table groups the structures each consisting of a (quaternion, intensity) combination. Each field of influence will be transformed into a structure of this kind.
The number Nf of existing, or non-inhibited, fields stored in the table to which pQ0 points is then initialized (step 30-3) .
The next test (step 30-4) determines if a field of influence of index j_ of the list of fields of influence associated with the pseudo-leaf exists or is not inhibited. If this field exists and is not inhibited, the type for field E of index j_ is then determined (step 30-5) : is it a rotational, directional or spatial field?
Depending on the type determined, the algorithm then chooses one of the following processes (step 30-6) . During step 30-6, the variation δQ_. (also denoted dQEι) to be applied to the quaternion dQx = dQl0.δQ! for the pseudo-leaf to reach its target exactly, for example by a shorter path, is computed. Step 30-6 is described in more detail below with reference to Figures 12 to 14.
As soon as a field has been detected, the variable f is incremented (step 30-7) and the algorithm moves onto the next element from the table (30-8) . The next field of influence is associated with the pseudo-leaf (step 30- 9) . If j_ is equal to the number Nf of fields of influence associated with the pseudo-leaf the algorithm stops.
Figure 12 shows in detail the computation of the variation δQ which applies in the case of a rotational field.
The rotational field of influence is defined by the absolute quaternion QE that the pseudo-leaf must reach (or avoid) and its intensity IE. QE [QN-I] _1Qι initializes an absolute quaternion Q.
Whether B has a father is then determined (step 40-2) :
- If it has no father, the algorithm goes direct to step 40-4. - Otherwise, the quaternion Q is replaced by the quaternion QU-D.Q (step 40-3).
Step 40-4 computes the variation of the absolute quaternion QE: δQE = [dQ0]_1Q δQE and IE are then stored in the table to which pQ points (step 40-5) .
Figure 13 shows in detail the computation of the variation δQ that applies in the case of a directional field. The directional field of influence is defined by its intensity IE and an absolute vector VE toward whose axis the pseudo-leaf tends to become parallel. The absolute vector VE can be characterized by two angles borrowed from astronomy: the right ascension AE and the declination DE. The equations used to transform VE (step 50-1) are:
VE = (X,Y,Z) = (cosDE.sinAE, sinDE, cosDE. cosAE) .
VE is then computed in the frame of reference of the bone B ( step 50-2 ) .
Next (step 50-3) the quaternion Q associated with the rotation through angle (Ai, VE) about an axis perpendicular to the plane formed by A (axis of the bone Bi in its local frame of reference) and VE is sought. In other words, this is a rotation that turns Ai until it is parallel to VE (the diagram would be similar with repulsive fields) . In the local frame of reference of the bone Bl the coordinates of Ax are (0,0, -Li), Lx being the length of the bone Bx . In Figure 13, the symbol ® means: find the quaternion Q associated with the rotation defined above.
When Q has been obtained, δQE is obtained by the operations defined in 50-4 and 50-5. δQE and IE are then stored in the table to which pQ points.
Figure 14 shows in detail the computation of the variation δQ that applies in the case of a spatial field.
The spatial field of influence is defined by an absolute vector VE whose three coordinates are those a point in the 3D space and its intensity IE. It is the end of the pseudo-leaf that must reach (or avoid) VE.
Let A(N_i) be the axis of the bone B(N. (the pseudo- leaf) in its local frame of reference. Its coordinates are therefore: A(N-i) = (0, 0, -L(N-i) ) , L(N-D being the length of the bone B(N_i) . EE is the expression for A(N_i) in the absolute frame of reference.
Let T(N-i) (respectively TJ be the absolute translation component of the transformation of the bone B(N-i) (respectively B . VA defined in step 60-2 is therefore the absolute vector whose origin is the origin of the bone B and whose end is the end of the bone B(N-D (the pseudo-leaf) .
VA is then completed in the local frame of reference of the bone Bx (step 60-3) . The absolute vector VB whose origin is the origin of the bone Bx and whose extremity is the point VE in space to be reached is then computed (step 60-4) . VE is then computed in the frame of reference local to the bone Bi (step 60-5) .
The quaternion Q associated with rotation through an angle (VA, VB) about an axis perpendicular to the plane formed by VA and VB is then deduced from VA and VB.
Finally, δQE is obtained by the operations defined in 60-7 and 60-8 and δQE and IE are stored in the table to which pQ points (step 60-9) .
Figure 15 shows in detail the computation of the global field of the bone Bi, which is a combination of various attractor or repulsive fields (step 20-4 from Figure 10) .
At this point in the algorithm the array of structures {quaternion, intensity} contains a number of structures equal to Nf. If m is the index of this array, the quaternion is written δQ(E(ιri)) and IE(m) is its intensity. The aim of this "field Bi" block is to compute the global quaternion δQE and the global intensity IE as a combination of the Nf quaternions and elementary intensities δQE( . and IE(m) .
The index m is first initialized to 0 (step 70-1) . Then δQE is also initialized, to δQE(0) (70-2) . A coefficient k is also defined (step 70-3) . The equation given in Figure 15 is one possible example, but other equations can be used.
Step 70-4 corresponds to spherical interpolation of coefficient k between the quaternions δQE and δQE(m+D (this interpolation is symbolized by the symbol (°k)) . IE is then computed using the equation given in Figure 15 (step 70-5) . Again this is merely one example, and other combinations are possible. The arithmetic or geometric mean of IEi can equally be used, for example.
Then, m is incremented (step 70-6) and compared to Nf (step 70-7) . If Nf is reached, the algorithm stops. Otherwise it loops to step 70-3.
Figure 16 shows in detail the computation of the speed and the quaternion relating to the father bone (step 20-5 from Figure 10) .
In a first step, a coefficient I can be computed which represents the intensity (of the global field) which allows for the inertia of the bone Bi. Step 80-2 is a spherical interpolation of coefficient I between the quaternions δQx and δQE. This is, as it were, a step of taking account of the field.
The field δQE which allows for the global intensity IE and the intensity u is then computed (step 80-3) . The "speed" quaternion Qv of the quaternion δQx is then computed (step 80-4) . Spherical interpolation between the identity quaternion Qτ and the previous speed (that at the previous time n-l) Qv determines the new speed. The coefficient of this interpolation is k, the damping coefficient of the bone B .
The speed is multiplied (quaternion multiplication) by the field δQE (step 80-5) . Step 80-6 corresponds to computing the variation δQx that results from the speed. The variation dQ. is then computed (step 80-7) . Any embodiment of the invention animates a character easily and quickly. Taking the character shown in Figure 3 as an example, it is sufficient in accordance with the invention to determine the position, or the target to be reached, for a few pseudo-leaves such as the hands, a foot, an eye, etc. It is not necessary to define the motions of each point of the character.
The technique in accordance with the invention is used to compute the motion of an object from fields of influence (attractor fields or repulsive fields) which define the environment of the object. The motion depends on the various influences to which the various bones of the object are subject. This process can also be combined with the model of animating points of an image explained at the beginning of this detailed description, in particular with reference to equations (1) through (12) .
The method of processing or animating images in accordance with the invention can be implemented using apparatus like that shown in figures 17A and 17B.
Figure 17A represents a graphics workstation comprising a microcomputer 120 appropriately configured for generating and processing two-dimensional or three- dimensional graphics objects using a method in accordance with the invention, an output peripheral device 122 and control peripheral devices (keyboard 124 and mouse 125) . The microcomputer 120 has a computation section with all the electronic, software and other components needed for generating images and processing or animating the images so obtained.
To be more precise, the system uses a PC type microcomputer of moderate power. The microcomputer comprises a central processor unit 120 which comprises a microprocessor 126, a memory 128, an input peripheral device, for example of the hard disc type 132, connected to a bus 130. An output peripheral device, for example of the screen type 122, or display apparatus controlled by a video card is used to display information. The microcomputer also has control peripheral devices, in this instance the keyboard 124 and the mouse 125. The programming language used is the C++ language, together with the assembler language for Pentium microprocessors. Models are written to and read from a hard disk. The models are displayed on the screen 122 of the computer by means of the graphics subsystem, in other words :
- Either using a ray tracing algorithm which writes the points directly into the graphics memory of the computer so that they are displayed on the screen by the video card (hardware part of the graphics subsystem) .
- Or using algorithms controlling control software (API) of a 3D card (able to display three-dimensional information), i.e. a card dedicated to displaying polygons rather than points; the 3D card thereafter converts the polygons into points to be displayed on behalf of the video card.
The control peripheral devices, in particular the keyboard 124 or the mouse 125, are used to manipulate the objects, for example to select and move the various "bones" or segments of an articulated system, the morphic points in the 3D space represented on the screen, the attractive or repulsive fields of the articulated system, etc., or to show and clear a pull-down menu, i.e. a display area made up of parameters. These can also be varied using other keys of the keyboard 124.
From the software (application) , the object is loaded from the hard disk into the main memory of the computer and displayed on the screen. The manipulator then uses the controls (control peripheral devices) to carry out the required operations. The program comprises the following facilities, for example:
- initializing the application.
- loading a model described by the method.
- displaying a model: - determining, for example from splines, initial settings of their parameters and the algorithms of the method (for example, the parameters of the inverse kinematic) , the three-dimensional elements (polygon) .
- transforming the three-dimensional elements into two-dimensional elements which can thereafter be displayed on a screen (the two-dimensional space) .
- displaying the two-dimensional elements generated in this way, either using a ray tracing algorithm or using a library of functions and dedicated hardware cards commonly used in this field (3D cards) .
- manipulating the objects (bones or sections or morphic points or fields or textures or light) by modifying their parameters (texture coordinates, position, length, Ki, Ka, etc.). - quitting the application.
A program for implementing the method of the invention is resident or stored on a storage medium (for example: diskette or CD-ROM or removable hard disk or magnetic storage medium) which can be read by a data processing system or by the microcomputer 120. The program concerns, for example, a method of animating an image comprising a chain of N segments i. (i = 0, 1, 2, ..., N-l) between a root segment 0 and a pseudo-leaf end segment N-l, each of the segments being defined by an orientation in space (ct, β, ψ) , the pseudo-leaf segment having to reach a target angular orientation (αtarget/ βtargetr ψtarget) • It comprises, for example, instructions commanding the microcomputer to:
- define an image field function comprising:
• an attractive component associated with the target angular orientation and of zero value for that orientation, and
• if angular constraints are to be complied with, a repulsive component associated with each constraint,
- determine the motion of each segment from an equation of motion as a function of the field for the initial orientation of the segment, and
- possibly, animate the chain of segments in accordance with the motion thus determined.
The shape or the points are displayed on the graphics screen 122 in real time. The method of the invention enables the motion of the object to be displayed in real time.
Or the program concerns, for example, a method of animating an image comprising a chain of N segments i_ (i = 0, 1, 2, ..., N-l) between a root segment 0 and a pseudo-leaf end segment N-l, each segment i_ being identified relative to the father segment _i-l of the segment i by a geometrical transformation dTRF(1) = dTRF0(1)*δTRF(1) made up of a rest transformation dTRF0 ) and a transformation δTRF(1) representing the motion, each of these transformations comprising an associated rotational component dROT(1), dROT0(1) and δROT(1) . The program comprises, for example, instructions commanding the microcomputer to:
1. Determine a target to be reached for the pseudo- leaf . 2. Select the pseudo-leaf as the current segment.
3. compute, for the current segment, the rotation δROTB(i) to reach the target fixed for that segment.
4. Determine, for the father segment of the current segment, the target to be reached. 5. Select the father segment of the current segment as the current segment and reiterate step 3.
6. Possibly, move the chain of segments as a function of the rotations thus determined.
Again, the shape or the points are displayed on the graphics screen 122 in real time. The method of the invention enables the motion of the object to be displayed in real time.
Or the program concerns, for example, a method of moving and/or animating an articulated system displayed in an image, the system comprising N segments _i (i = 0, 1, 2, ..., N-l) between a root segment (i = 0) and a pseudo-leaf end segment (i = N-l) , and the segments being joined two by two by articulations, a target orientation of the pseudo-leaf being determined, each segment i. being identified, relative to the father segment i-1, by a quaternion dQi and, relative to an absolute frame of reference, by a quaternion Qi, the target orientation to be achieved being itself represented in the absolute frame of reference by a quaternion QB. The program comprises, for example, instructions commanding the microcomputer to:
- define, for each section i , an image field quaternion comprising:
• an attractive component associated with the target orientation, and
• if constraints are imposed, a repulsive component associated with each constraint. - compute the speed quaternion for each section _i, and
- possibly, move each section of the articulated system in the image as a function of the speed thus obtained.
Again, the shape or the points are displayed on the graphics screen 122 in real time. The method of the invention enables the motion of the object to be displayed in real time. The microcomputer comprises means for computing and storing in memory potential or field values and/or values of ka and/or ki of the segments concerned or selected and the speed and new coordinates of the points. These values can be transmitted to a display control unit. The microcomputer 120 can be programmed to generate
NURBS surfaces as described above. It can also be programmed for the generation or computer-aided design (CAD) of shapes. The data relating to the shape, or the points that define it, in two or three dimensions, is stored in memory with the corresponding dynamic parameters .
The microcomputer 120 is also connected to other peripheral devices, for example printing devices (not shown in the figure) . It can be connected to an electronic communications network, of the Internet type, for example, for sending or receiving data relating to the shapes generated. For this purpose the microcomputer is equipped with means for connecting to the network, or input/output interface means for the network, for example a modem. In accordance with the invention, the data transmitted comprises data on the relative coordinates of the points defining the object and also data relating to the dynamics of the points and of the object itself and obtained by one of the methods in accordance with the invention.
The invention therefore also concerns the reception of such data, relating to the object or the chain or the skeleton and to its dynamics, and obtained by one of the methods described above.
Generally, the data of images and/or the data relating to the points or to the skeletons of objects can be stored in a memory area of the device 120 with the corresponding dynamic parameters.
In accordance with the invention, the animation or the movement of the segments of the articulated system or of the chain can be displayed or the corresponding data (data on the segment and animation data) sent via a wide area communications network (WAN) or local area communications network (LAN) to other display apparatus or to other data processing or storage apparatus, also connected to the network. As already mentioned in the introduction, the invention can be applied to cinema film production, video games and methods of designing technical components where it is important not only to represent the components but also to be able to observe their behavior in response to simulated deformation.

Claims

1. A method of animating an image comprising a chain of N segments i. (i = 0, 1, 2, ..., N-l) between a pseudo-root segment 0 and a pseudo-leaf end segment N-l, each of the segments being defined by an orientation in space (α, β, ψ) , the pseudo-leaf segment having to reach a target angular orientation (αtarget, βtarget Ψtarget) . tne method comprising the following steps:
- defining an image field function comprising: • an attractive component associated with the target angular orientation and of zero value for that orientation, and • if angular constraints are to be complied with, a repulsive component associated with each constraint,
- determining the motion of each segment from an equation of motion as a function of the field for the initial orientation of that segment, and
- animating the chain of segments in accordance with the motion thus determined.
2. A method according to claim 1, further comprising computing the speed of each segment proportionately to the image field value for that segment , the segment being moved as a function of the computed speed.
3. A method according to claim 1, further comprising computing the speed of each segment from the equation
Vn = KaV^ + ^ (En + E'n) in which:
. n is an integer which represents (discrete) time, . Vn is the "speed" vector of the segment,
. En and E'n respectively represent the attractor field and repulsive vector fields at time n, and
. K and Ka are respectively an inertia coefficient and a damping coefficient of each segment influenced by the fields E and E' .
4. A method according to claim 3, wherein the field En is proportional to the vector with components :
(αtarget ~ α (n-l) ) ' ( βtarget ~ P (n-l) ) - (ψtarget " Ψ (n-l) ) ' where α^.^, β(n-D, and ψ(n.i) are the angular components of the orientation of the segment concerned at time n-l.
5. A method according to claim 3 or claim 4, wherein Ka is made less than 1.
6. A method according to claim 5, wherein Ka is equal to 0.
7. A method according to claim 3, wherein the repulsive field E'n represents the fact that each parameter ct, β and ψ can vary only within certain limits: α e [ctmin, ctmax] , β emin - Pma and ψ € [ψmin, ψmaχ] .
8. A method according to claim 1, where at least one of the segments i0 has a limit angular speed vlim that it may not exceed.
9. A method according to claim 8, wherein determining the motion of the segment i0 comprises the following steps:
- computing the "norm" of the speed:
|vn| = I ^ l + | vβn | + | vψn | , and if |vn| < vlim, determining the position of the segment from the equation an — ^ ain-l) in which : n is an integer that represents (discrete) time, Pan is the angular position at a certain time, and p a(n-i) is tne angular position at "the preceding time", or, otherwise, determining the position of the segment from the equation Pan = Pa (n-l) + Vn Nlim/ 1| Va || ( 13 - 2 ' )
10. A method of animating an image comprising a chain of N segments i (i = 0, 1, 2, ..., N-l) between a root segment 0 and a pseudo-leaf end segment N-l, each segment i. being identified relative to the father segment i-l of the segment i by a geometrical transformation dTRF(i) = dTRFO (i)* δTRF(i) made up of a rest transformation dTRFO {i) and a transformation δTRF(i) representing the motion, each of these transformations comprising an associated rotational component dROT(i)/ dROT0(i) and δROT(i) ; the method comprising the following steps:
1. determining a target to be reached for the pseudo-leaf ,
2. selecting the pseudo-leaf as the current segment, 3. computing for the current segment the rotation δROTB(i) to reach the target fixed of that segment,
4. determining the target to be reached for the father segment of the current segment,
5. selecting the father segment of the current segment as the current segment and reiterating step 3,
6. moving the chain of segments as a function of the rotations thus determined.
11. A method according to claim 10, wherein each target to be reached is determined by three angles ottarget, βtarget' Ψtarget •
12. A method according to claim 10 or claim 11, wherein the step of determining the rotation δROTB(i) for the current segment for reaching the target fixed for that segment comprises : - defining an image field function comprising:
• an attractive component associated with the angular orientation of the fixed target and of zero value for that orientation, and
• if angular constraints are to be complied with, a repulsive component associated with each constraint, and - determining the rotation δROTB(i) from an equation of motion as a function of the field for the initial orientation of the segment.
13. A method according to claim 12, further comprising computing the speed of each segment proportionately to the image field value for that segment.
14. A method according to claim 12, further comprising computing the speed of each segment from the equation
Figure imgf000053_0001
in which:
. n is an integer which represents (discrete) time
. Vn is the "speed" vector of the particle . En and E'n respectively represent the attractor field and repulsive vector fields at time n, and
. Ki and Ka are respectively an inertia coefficient and a damping coefficient of each segment influenced by the fields E and E' .
15. A method according to claim 14, wherein the field En is proportional to the vector with components :
( αtarget " α (n-l ) ) ' ( βtarget ~ P (n-l) ) - ( ψtarget " Ψ (n-l ) ) ' in which α(n.1), βfn-D, and ψ(n-D are the angular components of the orientation of the segment concerned at time n-l.
16. A method according to claim 14, wherein Ka is made less than 1.
17. A method according to claim 16, wherein Ka is equal to 0.
18. A method according to claim 10, further comprising a step of computing for each segment the additional rotation to be effected for the pseudo-leaf to reach a particular point in space.
19. A method according to claim 10, further comprising a step of computing for each segment the additional rotation to be effected for all the segments to be attracted or moved in a common direction.
20. A method according to claim 10, wherein the target and the rotation of each segment are computed in a linear upward order, from segment N-l to segment 0, the target to be reached for segment _i depending only on the target to be reached for segment i+1.
21. A method according to claim 10, wherein the target and the rotation of each segment i_ are computed absolutely .
22. A method of moving and/or animating an articulated system displayed on an image, the system comprising N segments i_ (i = 0, 1, 2, ..., N-l) between a root segment i = 0 and a pseudo-leaf end segment i=N-l, and the segments being joined in pairs by articulations, a target orientation of the pseudo-leaf being determined, each segment _i being identified relative to the father segment i-l by a quaternion dQx and relative to an absolute frame of reference by a quaternion Qx, the target orientation to be reached being represented in the absolute frame of reference by a quaternion QB, the method comprising:
- for each section _i, defining an image field quaternion comprising:
• an attractive component associated with the target orientation, and • if constraints are imposed, a repulsive component associated with each constraint,
- computing the speed quaternion for each section i, and - moving each section of the articulated system in the image as a function of the speed thus obtained.
23. A method according to claim 22, wherein the speed quaternion at a time n is computed by spherical interpolation between the identity quaternion and the speed at time n-l.
24. A method according to claim 22 or claim 23, further comprising a step of determining the quaternion dQi for each segment i .
25. A method according to claim 22, wherein the quaternion Vn is given by the equation:
Vn = QEn- [Qlka)V(n-1)] in which:
- n is an integer which represents (discrete) time, Qin being the quaternion Qi at time n,
- Vn is the "speed" quaternion of the segment i_ at time n,
- Q represents the field quaternion at time n comprising the attractive components and any repulsive components, and
- the symbol °Ka represents spherical interpolation of the coefficient Ka, the damping coefficient of each segment influenced by the fields E and E' .
26. A method according to claim 22, wherein each attractor field of each section is computed in the form of a unit attractor quaternion and a unit intensity and all of the elementary attractor fields are then combined to obtain a global attractor field in the form of a global attractor quaternion and a global intensity.
27. A method according to claim 26, wherein the global attractor quaternion is obtained by spherical interpolation between the various unit quaternions.
28. A method according to claim 26, wherein the global intensity is a linear combination of the unit intensities .
29. A method according to claim 22, wherein the attractor fields are of the spatial, directional or rotational type or a combination of two or three of these various types .
30. A method according to claim 29, wherein a directional field is defined by a vector and an intensity.
31. A method according to claim 29, wherein a spatial field is defined by an intensity and a vector whose three coordinates are those of a point in the 3D space.
32. A method according to claim 29, wherein a rotational field is defined by a quaternion and an intensity.
33. A method according to claim 29, further comprising, for each unit field, a step of computing the variation δQi to be applied to the quaternion dQ for the pseudo-leaf to reach its target.
34. Apparatus for animating an image comprising a chain of N segments i (i = 0, 1, 2, ..., N-l) between a root segment 0 and a pseudo-leaf end segment N-l, each segment being defined by an orientation in space (α, β, ψ) , the pseudo-leaf segment having to reach a target angular orientation (cttarget. βtarget' Ψtarget) the device comprising: - means for defining an image field function comprising:
• an attractive component associated with the target angular orientation and of zero value for that orientation, and
• if angular constraints are to be complied with, a repulsive component associated with each constraint,
- means for determining the motion of each segment from an equation of motion as a function of the field for the initial orientation of that segment, and
- means for animating the chain of segments in accordance with the motion thus determined.
35. Apparatus for animating an image comprising a chain of N segments i. (i = 0, 1, 2, ..., N-l) between a root segment 0 and a pseudo-leaf end segment N-l, each segment i. being identified relative to the father segment i-l of the segment i by a geometrical transformation dTRF(i) = dTRFO (i)*δTRF(i) made up of a rest transformation dTRFO (i) and a transformation δTRF(i) representing the motion, each transformation comprising an associated rotational component dROT(i), dROT0{i) and δROT(i) , the apparatus comprising means for:
1. determining a target to be reached for the pseudo-leaf , 2. selecting the pseudo-leaf as the current segment,
3. computing for the current segment the rotation δROTB(i) for reaching the target fixed for that segment,
4. determining the target to be reached for the father segment of the current segment, 5. selecting the father segment of the current segment as the current segment and reiterating step 3,
6. moving the chain of segments as a function of the rotations thus determined.
36. Apparatus for moving and/or animating an articulated system displayed on an image, the system comprising N segments i (i = 0, 1, 2, ..., N-l) between a root segment 0 and a pseudo-leaf end segment i = N-l, and the segments being joined in pairs by articulations, a target orientation of the pseudo-leaf being determined, each segment i being identified relative to the father segment i-l by a quaternion dQi and relative to an absolute frame of reference by a quaternion Q, the target orientation to be reached being represented in the absolute frame of reference by a quaternion QB, the apparatus comprising: - means for defining, for each section i., an image field quaternion comprising:
• an attractive component associated with the target orientation,
• if constraints are imposed, a repulsive component associated with each constraint,
- means for computing the speed quaternion for each section i., and
- means for moving each section of the articulated system in the image as a function of the speed thus obtained.
37. Apparatus according to claim 34, further comprising means for modifying the field function and/or the equation of motion.
38. Apparatus according to claim 35, further comprising means for modifying the computation of the rotation and/or the determination of the target to be reached.
39. Apparatus according to claim 36, further comprising means for modifying the field quaternion and/or the computation of the speed quaternion.
40. Apparatus according to claim 37, wherein the means for modifying the field function and/or the equation of motion modify them in real time.
41. Apparatus according to claim 38, wherein the means for modifying the computation of the rotation and/or the determination of the target to be reached modify them in real time.
42. Apparatus according to claim 39, wherein the means for modifying the field quaternion and/or the computation of the speed quaternion modify them in real time.
43. Apparatus according to any one of claims 34 to 36 connected to an electronic communications network.
44. A storage medium having instructions therein for causing a computer to perform a method according to any one of claims 1, 10 and 22.
45. A computer program, loadable into the internal memory of a computer, comprising software code portions performing a method according to any one of claims 1, 10 and 22.
PCT/EP2000/001527 1999-02-12 2000-02-14 Method and apparatus for animating two-dimensional and three-dimensional images WO2000048130A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU28067/00A AU2806700A (en) 1999-02-12 2000-02-14 Method and apparatus for animating two-dimensional and three-dimensional images

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
EP99400342.4 1999-02-12
EP99400342A EP1028394A1 (en) 1999-02-12 1999-02-12 Method and apparatus for bi-dimensional and three-dimensional image animation
US31655599A 1999-05-24 1999-05-24
US09/316,555 1999-05-24

Publications (1)

Publication Number Publication Date
WO2000048130A1 true WO2000048130A1 (en) 2000-08-17

Family

ID=26153639

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2000/001527 WO2000048130A1 (en) 1999-02-12 2000-02-14 Method and apparatus for animating two-dimensional and three-dimensional images

Country Status (2)

Country Link
AU (1) AU2806700A (en)
WO (1) WO2000048130A1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0520099A1 (en) * 1990-12-25 1992-12-30 Shukyohojin, Kongo Zen Sohonzan Shorinji Applied motion analysis and design
WO1997040471A1 (en) * 1996-04-04 1997-10-30 Katrix, Inc. Limb coordination system for interactive computer animation of articulated characters with blended motion data
EP0827115A2 (en) * 1996-08-02 1998-03-04 Microsoft Animation control apparatus and method

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0520099A1 (en) * 1990-12-25 1992-12-30 Shukyohojin, Kongo Zen Sohonzan Shorinji Applied motion analysis and design
WO1997040471A1 (en) * 1996-04-04 1997-10-30 Katrix, Inc. Limb coordination system for interactive computer animation of articulated characters with blended motion data
EP0827115A2 (en) * 1996-08-02 1998-03-04 Microsoft Animation control apparatus and method

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
BOULIC R ET AL: "COMPLEX CHARACTER POSITIONING BASED ON A COMPATIBLE FLOW MODEL OF MULTIPLE SUPPORTS", IEEE TRANSACTIONS ON VISUALIZATION AND COMPUTER GRAPHICS,US,IEEE SERVICE CENTER, PISCATAWAY, NJ, vol. 3, no. 3, 1 July 1997 (1997-07-01), pages 245 - 261, XP000702052, ISSN: 1077-2626 *
MATARIC E A: "MOVEMENT CONTROL METHODS FOR COMPLEX, DYNAMICALLY SIMULATED AGENTS: ADONIS DANCES THE MACARENA", PROCEEDINGS OF THE INTERNATIONAL CONFERENCE ON AUTONOMOUS AGENTS,US,NEW YORK, NY: ACM, 1998, pages 317 - 324-324, XP002104910, ISBN: 0-89791-983-1 *

Also Published As

Publication number Publication date
AU2806700A (en) 2000-08-29

Similar Documents

Publication Publication Date Title
US7058896B2 (en) System, method and computer program product for intuitive interactive navigation control in virtual environments
Boulic et al. 3d hierarchies for animation
Dachille et al. Haptic sculpting of dynamic surfaces
Kaul et al. Solid-interpolating deformations: construction and animation of PIPs
Ruspini et al. Haptic interaction in virtual environments
Zachmann et al. Natural and robust interaction in virtual assembly simulation
EP0957452B1 (en) Apparatus and method for checking interference of objects in computer
EP1040451A2 (en) Computer graphics animation method and device
Hildenbrand et al. Competitive Runtime Performance for Inverse Kinematics Algorithms using Conformal Geometric Algebra.
Zachmann VR-techniques for industrial applications
WO2000048130A1 (en) Method and apparatus for animating two-dimensional and three-dimensional images
Alvarado et al. Generating Upper‐Body Motion for Real‐Time Characters Making their Way through Dynamic Environments
Thalmann Motion control: From keyframe to task-level animation
Burelli et al. Dynamic Artificial Fields for Autonomous Camera Control
Luo et al. Using virtual reality technology to construct computer-aided animation material development
Thalmann et al. Models and techniques in computer animation
Badler Design of a human movement representation incorporating dynamics
Anthes et al. invrs–a framework for building interactive networked virtual reality systems
WO2000048129A1 (en) Method and apparatus for animating two-dimensional and three-dimensional images
Miao et al. Research on motion trajectory planning of the robotic arm of a robot
Carey et al. Why is 3-D interaction so hard and what can we really do about it?
Ryzhov et al. Guidelines for Performing Virtual Labs in Wolfram SystemModeler
Sung GPU-Based Fast Motion Synthesis of Large Crowds Based on Multi-joint Models
Fattal et al. Pose controlled physically based motion
Syamsuddin et al. Force Field-Based Control of Dynamic Particles with User-Specified Paths

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AL AM AT AU AZ BA BB BG BR BY CA CH CN CR CU CZ DE DK DM EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG US UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

122 Ep: pct application non-entry in european phase