EP2156411A1 - Digital representation and animation of physical objects - Google Patents

Digital representation and animation of physical objects

Info

Publication number
EP2156411A1
EP2156411A1 EP08733753A EP08733753A EP2156411A1 EP 2156411 A1 EP2156411 A1 EP 2156411A1 EP 08733753 A EP08733753 A EP 08733753A EP 08733753 A EP08733753 A EP 08733753A EP 2156411 A1 EP2156411 A1 EP 2156411A1
Authority
EP
European Patent Office
Prior art keywords
attractor
state
digital
physical object
influencing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
EP08733753A
Other languages
German (de)
French (fr)
Inventor
André Villard
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xtranormal Technologie Inc
Original Assignee
Xtranormal Technologie Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Xtranormal Technologie Inc filed Critical Xtranormal Technologie Inc
Publication of EP2156411A1 publication Critical patent/EP2156411A1/en
Withdrawn legal-status Critical Current

Links

Classifications

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

Definitions

  • the present invention relates to the field of digital animation techniques .
  • Animation In television or motion picture filming, movement added to static objects, whereby inanimate objects appear to come to life, is known as animation.
  • Animation can be found in a wide variety of applications, such as film, video games, and virtual reality. Cartoons are just one of many examples of a type of animation. In a certain number of animation cases, the objective is to make the animation appear as realistic or as close to real-life as possible.
  • models are built using basic principles of physics. Characteristics such as mass and moment of inertia are used to represent an object. For a more complex object, such as the human body, other characteristics such as length and angular constraints are used to define and link multiple objects together.
  • a set of differential equations is then produced to represent the model being created.
  • a solution for the set of differential equations is calculated in order to determine, for one instant in time, the position and rotation of all elements in the model.
  • the differential equations are analog (for example, the variable representing time is continuous)
  • the solution calculated by a computer is digital (time is represented by an integer and therefore, not continuous) .
  • an analog to digital conversion is necessary to go from the real world to a computer world.
  • Various computer methods exist to perform mathematical computations on sets of differential equations, such as the "Runge-Kutta" method. However, these methods are complex and do not necessarily produce the desired result.
  • a method of creating a digital model of an object and generating a set of digital equations for the object in order to bypass an analog to digital conversion necessary in the prior art comprising: creating a digital model of the physical object by using digital characteristics to define the physical object; and generating at least one digital equation from the digital model for a position of the object at a state n+1, the at least one equation linking the position of the object at a state n+1 to a position of the object at a state n, a position at a state n-1 and at least one general attractor which represents a target position towards which the object is biased to move.
  • a method for animating a physical object comprising: creating a digital model of the physical object by using digital characteristics to define the physical object; providing a position of the physical object at a state n and a position of the physical object at a state n-1; providing at least one general attractor which represents a target position towards which the object is biased to move; generating at least one digital equation from the digital model for a position of the object at a state n+1, the at least one equation linking the position of the object at the state n+1 to the position of the object at the state n, the position at the state n-1 and the at least one general attractor; solving the at least one digital equation to obtain the position at the state n+1; and moving the physical object to the position at the state n+1.
  • a system for digitally animating a physical object comprising: a processor in a computer; and an application coupled to the processor, the application being configured for: generating at least one digital equation from a digital model of the physical object for a position of the object at a state n+1, the at least one equation linking the position of the object at a state n+1 to a position of the object at a state n, a position at a state n-1 and at least one general attractor which represents a target position towards which the object is biased to move, the digital model being characterized by- digital characteristics; solving the at least one digital equation to obtain the position at the state n+1; and moving the physical object to the position at the state n+1.
  • a system for representing a physical object for digital animation comprising: a digital modeling module adapted to create a digital model of the physical object by using digital characteristics to define the physical object; a position determining module adapted to generate at least one digital equation from the digital model for a position of the object at a state n+1, the at least one equation linking the position of the object at a state n+1 to a position of the object at a state n, a position at a state n-1 and at least one general attractor which represents a target position towards which the object is biased to move, and to solve the at least one digital equation to obtain the position at the state n+1; and a display unit for displaying the physical object as it is being displaced from the position at the state n to the position at the state n+1.
  • artificial physics is intended to mean principles of physics based on digital modeling and digital principles.
  • real physics is intended to mean principles of physics based on analog modeling and analog principles (i.e. real-world concepts). It should be understood that the concepts of artificial physics can be applied to the animation of any type of physical object and the principles used to described motion are not limited to living beings, but can also be used for moving objects, such as a bouncing ball, a moving car, a controlled camera, etc.
  • position G n is intended to be understood as a value characterizing the state n of the object which creates the animation of the object when varied, however this needs not necessarily be a point or position in space.
  • the position G n can be an actual position in space of the object, in which case the position is characterized by at least one coordinate. When the position in space of the object varies, the object moves and is animated. Alternately, the position G n can constitute one or more angles, a camera focal length, and the like. For example, if the object is rotated, the position G n is characterized by at least one angle. In the case of the rotation of an object, the term “orientation G n " can be used in replacement of the term "position G n " . In another example where the object to be animated is a camera, the position G n represents the focal length of the camera. By varying the position G n , i.e. the focal length, it is possible to zoom on a character for example.
  • position G n - 1 at a state n- 1 is intended to be understood as: an actual position G n-1 of an object at a state n-1; or a difference between a position G n of an object at a state n and a position G n - 1 of the object at a state n-1.
  • the position G n+I of an object at a state n+1 can be determined from the positions of the object at the states n and n-1, G n and G n -1 respectively, and other parameters
  • the position G n+ i of the object at a state n+1 can equally be determined from the position G n at a state n, the other parameters and a difference D n between the position G n of the object at a state n and the position G n .i of the object at a state n-1.
  • This difference D n is called the direction of the object at the state n.
  • Fig. 1 illustrates the steps used for digital animation as per the prior art
  • Fig. 2 is illustrates the steps used for digital animation in accordance with an embodiment of the present invention
  • Fig. 3 illustrates the interrelation between related significant elements and their attractors,-
  • Fig. 4 illustrates the interrelation between related significant elements and passive elements.
  • Fig. 5 is a graph representing the angle of rotation of a head according to a constant attractor as a function of n, in accordance with an embodiment
  • Fig. 6 is a graph representing the angle of rotation of a head according to a varying attractor as a function of n, in accordance with an embodiment
  • Fig. 7 is a graph representing the angle of rotation of a chest influenced by the rotation of a head as a function of n, in accordance with an embodiment
  • Fig. 8 is graph representing the position of a body when influenced by a single attractor as a function of n, in accordance with an embodiment
  • Fig. 9 is graph representing the position of a body under the influence of two attractors as a function of n, in accordance with an embodiment.
  • Fig. 10 illustrates a system for representing a physical object for digital animation, in accordance with an embodiment .
  • an object's movement is represented by a set of forces and torque applied thereon. Opposite forces are applied (either directly or by friction) and the classical laws of mechanics allow movement to be deduced.
  • An analog model of the object can be represented and expressed by differential equations. However, a conversion to digital equations is required in order to solve the differential computer, as illustrated in figure 1.
  • an attractor which is a point in space towards which the object is biased to move, specifies that the reason for the motion is in order to reach a given objective (the attractor) . Therefore, it is no longer a set of forces and torques that produce and control this motion, but an attractor (or a set of attractors) expressing a new state to be reached.
  • Using the attractor concept means associating a notion of "intent" to a moving object.
  • the model representing the object is digital and not analog as in real physics. Therefore, this model can be directly represented by digital equations and no analog-to-digital conversion of equations is required, as illustrated in figure 2.
  • the moving object is no longer a passive element that simply reacts to the laws of physics, but instead becomes an active element that actively pursues an objective. This technique avoids the divergence phenomenon usually encountered when digitizing a set of differential equations (such as in the Runge-Kutta method) .
  • the basis of artificial physics is to use digital characteristics to represent an object. For example, take the case of a human head (an object) having to rotate 45° to the right. In real physics, torque produces momentum for rotation and a moment of inertia slows down or stops the rotation. In artificial physics, the notion of torque is replaced by the notion of an attractor. The notion of moments of inertia is replaced by a normalized inertia coefficient Ki. The exact value of the moment of inertia is not what is important, since what matters is how the head reaches its target (in this case, the 45° rotation) , or the attractor.
  • a notion of normalized elasticity coefficient Ka may also be added to take into account more factors that affect the rotation of the head such as oscillations before reaching the attractor.
  • an object is characterized by at least two coefficients, namely the normalized inertia coefficient Ki and the normalized elasticity coefficient Ka.
  • Generating animation in real time consists in creating a certain number of images per second. This means calling x times per second an algorithm capable of going from image n (state n) to image n+1 (state n+1) . Therefore, an algorithm does not have the notion of time, it only knows what to do to go from state n to state n+1.
  • the direction D n can be interpreted as a digital speed of the object at state n.
  • the change of state from ⁇ n to ⁇ n + 1 is done using the following equation which expresses the state n+1 as a function of the position G n , the direction D n and an attractor A n+I .
  • the first part of the above statement represent the ⁇ state.
  • the second part of the statement represents the change of state (D n+ i & G n+1 ) .
  • the third part of the statement represents state ⁇ +1.
  • G n+ ⁇ can be expressed as a function of G n and G n-I .
  • more than one attractor may act on an object.
  • a first attractor Al represents a target point in space that the bowling ball has to reach while a second attractor A2 imposes a rotation on the ball to create the spin.
  • the first and the second attractor Al and A2 are combined to give a resulting attractor A tota i which represents both the translation towards the attractor Al and the rotation.
  • a set of digital equations is generated for each one the attractors and these sets of equations are solved simultaneously to obtain the position and orientation of the object at the state n+1.
  • the second attractor A2 may also represent a particular point through which the path of the ball has to pass.
  • any condition such as a condition on the path of the object, may be represented by an attractor.
  • a single attractor is defined for the object but the digital equations may include an influencing attractor generated by another object.
  • Earth is an example of an object generating an influencing attractor on another object.
  • an influencing attractor is defined to take into account earth's gravity which acts on the object.
  • the human body will be used to further illustrate the principles of artificial physics.
  • the human body is considered to be an articulated system (a system of joints hierarchically linked by articulations) .
  • Characteristics often used to model the human body as a set of differential equations are the angular constraints to these articulations and the physical traits of the joints.
  • the problem to be addressed when animating the human body is in which way the different elements that make up the body are synchronized.
  • Some individual elements of the human body have been categorized in the following table as either significant (those that must be under direct control) and passive (those that are controlled by other elements) .
  • Each significant element is characterized by normalized inertia and elasticity coefficients and is matched side-by-side with the passive elements that are associated therewith.
  • the state n of a passive element can be inferred from the state n of the significant elements in connection with the passive element.
  • Mathematical methods such as interpolation methods can be used to determine the state n of the passive element.
  • the neck of a body is connected to the head and the chest of this character.
  • the neck is considered as a passive element and its position and direction are dictated that the positions and directions of the head and chest, which are the significant elements linked to the neck. If the head and chest undergo a rotation, the neck will also undergo a rotation.
  • Lhn is the length between the head and the neck and Lnc is the length between the neck and the chest.
  • the significant elements are to be controlled and synchronized together. There are a lot less significant elements than the actual number of joints in the human body. These elements reflect the parts of the human body that are truly important in the body's relationship with the outside world, i.e. feet are for walking, eyes are for seeing, wrists and hands are for holding things, etc.
  • Relationships between the different significant elements are developed and are variable using normalized influencing coefficients. As an illustrative and non-exhaustive example, some relationships that may exist are as follows.
  • Relationship between eyes and head a rotation of the eyes brings about a rotation of the head in accordance with an influencing coefficient eyes ⁇ head.
  • Relationship between feet and eyes allows the eyes to be directed towards the direction in which the person is walking.
  • Relationship between wrists and head, chest, pelvis allows the person to bend over to pick up an item or to look at the item being picked up.
  • Each significant element has its own attractor. Controlling an element consists in triggering an action on the element at a given moment in time. Equations are then used to tend the element's position towards its attractor. During the attraction, other influencing factors related to preceding actions are superimposed.
  • a driving engine triggers the movement of the elements when a given set of conditions are met. Complex motion is therefore naturally reproduced.
  • the set of conditions used to trigger the motion and the elements themselves may be produced or generated by an external system, such as an artificial intelligence system.
  • Figure 3 illustrates how multiple elements of the human body may be controlled together.
  • a significant element is controlled by an attractor (A_0WN) and a set of influencing attractors (A_INF) resulting from the attractors of the other related significant elements.
  • the actual or total attractor (A_TOT) is a weighted sum of influencing coefficients and of A_0WN and A_INF.
  • K_INF_1 is the influencing coefficient of the head element with respect to the chest.
  • K_INF_2 is the influencing coefficient of the chest element with respect to the pelvis .
  • A_0WN an attractor
  • A_TOT The calculated total attractors (A_TOT) then become the input variables for the change of state equations defined above, where the normalized inertia coefficient Ki and the normalized elasticity coefficient Ka will express in what way the various elements will each reach their given attractor. Therefore, an action on one element can have an effect on all other related elements.
  • the total attractors of the chest and pelvis will also be affected in a manner which depends on the influencing coefficients of these elements. Motion resulting from the simple action of a head rotation will impact all related elements as a function of the influencing coefficients.
  • the elements HEAD, CHEST, and PELVIS from figure 3 are called "significant" because their attractors are affected either through direct control (A_0WN) or influence from others (A_INF) .
  • A_0WN direct control
  • A_INF influence from others
  • the driving engine controls the A_0WN input of a significant element, the action occurs as if it were also controlling the other significant elements thanks to the influencing coefficients.
  • the significant elements simulate the spine, which is made up of a large number of joints (vertebrae) . These joints are underlying to the significant elements and are called “passive elements” . These passive elements are not subject to a control via attractors and are not associated with the notion of inertial or elasticity coefficients, but are rather the result of the computation that occurs when the attractors are applied to the significant elements. The result of the computation is controllable by an influencing coefficient.
  • Figure 4 illustrates the passive elements (joints Jh, ..., Jc) that are the vertebrae existing between the HEAD and CHEST elements.
  • the influencing coefficient KinfJ is globally applied to the passive elements.
  • the human body comprises several significant elements such as a head, a chest, a pelvis and feet.
  • a general attractor acts on the whole body and applies to all significant elements.
  • at least one significant element, such as the head can have its own attractor.
  • the general attractor defines a target point towards which the whole body is biased to move. This general attractor applies to all significant elements of the body.
  • the head has a second attractor since the head has to rotate while the body moves towards the general attractor.
  • an influencing coefficient of the head with respect to the chest may exist and be taken into account while calculating the total attractor acting on the chest.
  • a simple example is represented by the rotation of an object such as the head of a human body. Assuming that the head of a human body has a single degree of freedom, namely the rotation around the vertical axis, the state n can be represented by G(n) and D(n), which are both angles.
  • the head is to be rotated by an angle of 63° in one second.
  • the normalized inertia coefficient Ki and the normalized elasticity coefficient Ka are equal to 0.1 and 0.6, respectively .
  • Figure 5 is a graph representing the values of the orientation G(n) as a function of n, for n varying from 0 to 25. These points illustrate the evolution in time of the angle of rotation of the head while the head is "attracted” by the attractor A.
  • the trajectory followed by the values of G depends on the values given to the normalized inertia coefficient Ki and the normalized elasticity coefficient Ka.
  • the normalized inertia coefficient directs the "speed" with which the the variable G reaches the attractor.
  • Ki By setting Ki to 0.01 instead of 0.1, the evolution of G towards the attractor A would be slower. Any trajectory can be given to the values of G by properly setting the values of Ki and Ka as this trajectory does not depend on the equations.
  • the head of a body is first rotated in a direction and then comes back to its initial position.
  • the initial conditions are the following:
  • n ⁇ 12 corresponds to the conditions of example 1.
  • the value of attractor A is changed to 0°, which corresponds to the initial angle of the head.
  • the values of the normalized inertia and elasticity coefficients are also varied.
  • the normalized inertia coefficient is increased from 0.1 to 0.15 which means that the angle of the head will tend faster towards the attractor A2 than it does towards the attractor Al .
  • Figure 6 is a graph of the angle of the head G as a function of n.
  • the value of the angle G decreases to reach the second value of the attractor.
  • Example 3 Rotation of the chest influenced by the rotation of the head.
  • This example repeats the movement of the head described in example 1 and describes the resulting rotation of the chest when K_INF is set to 0.5.
  • the attractor of the head A head is equal to 63° (see example 1)
  • the attractor of the chest Ache st is equal to 31.5°.
  • Figure 7 is a graph representing the values of G C hest as a function of n.
  • G Chest (n) is equal to half of the angle of the head element G(n) calculated in example 1.
  • the curve formed by the different values G Chest (n) has exactly the same shape as that formed by the values G(n) representing the angle of the head in example 1.
  • Example 4 Translation of a body.
  • the position of the body in a state n is represented by a point G(n) having (x,y) coordinates.
  • the normalized inertia and elasticity coefficients of the body are set to 0.15 and 0.6, repectively.
  • the attractor A towards which the body is biased to move is defined by the coordinates (0, 0.2) . All coordinates are in meters.
  • Figure 8 is a graphical representation of the points G(n) in the space (x,y) .
  • the movement described by the points g(n) is a spiral which emanates from the attractor A.
  • the shape of this movement is due to the specific values of Ka and Ki.
  • Example 5 Translation of a body with an imposed condition on the movement .
  • This example uses the same initial conditions, attractor and normalized coefficients as example 4, but a specific condition is imposed on the movement of the body.
  • the body has to reach the attractor with a trajectory tangential to the direction AZ .
  • the condition to have is tangential trajectory is that the angle ⁇ (n) between the vector and the vector AZ' tends towards zero.
  • G' (n) corresponds to the position of the body without taking into account the condition on the trajectory, i.e. G' (n) is the position as calculated in example 4.
  • the angle ⁇ (n) can be considered as a second attractor which is set to zero to obtain the condition of tangential trajectory.
  • G' (n) G(n-l) +D' (n) (Eq.2)
  • dG(n) rot(AG'(n),Ki x ⁇ (n)) - AG ⁇ n) (Eq.3)
  • Equations 1 and 2 enable to calculate G' (n) and D' (n) which correspond to G(n) and D(n) when no condition is applied on the trajectory (example 4).
  • dG(n) is a vector correction which
  • dG(n) is equal to the difference between the vector rot(AG'(n),Ki. ⁇ (n)) (resulting from the rotation of vector AP'( ⁇ ) of an angle of Ki. ⁇ ) and the vectorAF(n) .
  • dG(n) is then added to G' (n) and D' (n) to obtain the corrected values G(n) and D(n) .
  • G' (1) (-0.1675, 0.03) ;
  • example 5 refers to an object targeting an attractor with a specific trajectory, namely the trajectory being tangential to a direction, it could be imposed on the trajectory of the object to pass by a predefined point in space, for example.
  • the attractor A n can vary as a function of n, i.e. each state n can have a different attractor A n .
  • a physical object can be represented by first creating a digital model of the object and then generating a set of digital equations.
  • the object is modeled by a normalized inertia coefficient and a normalized elasticity coefficient. At least one attractor is defined to represent a target position towards which the object is biased to move.
  • the set of digital equations representing the object for digital animation comprises equation 1 or equations 2 and 3, depending on the initial conditions. If the initial conditions comprise the position of the object at a state n and the difference Dn, then equation 1 is used to determine the position of the object at a state n+1. If the position of the object at states n and n-1 is known, equations 2 and 3 are used to determine the next position.
  • a method for animating a physical object comprises the step of creating a digital model of the object by using normalized inertia and elasticity coefficients. If the object comprises several elements, a normalized inertia coefficient and a normalized elasticity coefficient are defined for each one of these elements.
  • initial conditions are provided. These initial conditions include the position of the object at state n and n-1. Alternatively, they can include the position at the state n and a difference D n .
  • at least one attractor which represents a position towards which the object is biased to move is provided.
  • a set of equations is generated by using either equation 1 or equations 2 and 3. These equations are solved in order to determine the position of the object at the state n+1.
  • the final step consists in moving the object in accordance with the calculated position at the state n+1.
  • a system for digitally animating a physical object includes a processor in a computer and an application coupled to the processor.
  • a user of the application chooses an object that he wants to animate.
  • the application can automatically define normalized inertia and elasticity coefficients for the object. Alternatively, the user may enter these coefficients.
  • the user can enter initial conditions for the object, including a position of the object at state n and n-1 or a position at a state n and a difference D n . Alternatively, the initial conditions can be generated by the application.
  • the application is configured for generating at least one digital equation from the digital model of the object for a position of the object at a state n+1.
  • the equation links the position of the object at the state n+1 to the position at a state n, the position at a state n-1 and the attractor (as described previously) .
  • Dn can be used to obtain the position at the state n+1.
  • the application is further adapted to solve the digital equation to obtain the position at the state n+1.
  • the object is displayed on a display at the position n and is moved to the position n+1.
  • the application also determined the direction of the object at the state n+1 using the vector G n G n+1 .
  • a first attractor may define a target position while the second attractor may define a condition on the path of the object or a rotation of the object.
  • the application is adapted to combine the different attractors to obtain a single attractor to be used in the digital equations.
  • a set of digital equations is generated for each one of these attractors and both sets of digital equations are solved simultaneously by the application in order to obtain the position and direction of the object at the state n+1.
  • the application can also be configured to determine if the movement of the object selected by the user is influenced by another object and generates an attractor to take this influence into account.
  • the user may define the influence of the second object on the first object.
  • the application is configured to use this influencing attractor when generating the digital equations and calculate the position of the first object at the state n+1.
  • the application is further configured to identify significant elements of the object of which the state n+1 has to be determined.
  • the user enters a second attractor for each significant element or the second attractor may be defined by the application according to influences existing between the significant elements.
  • the application generates a set of influencing attractors using the second attractors and uses them to generate the digital equations governing the movement of each one of the significant elements.
  • the application can also be configured to identify passive elements linked to the significant elements.
  • the application generates a set of relationships between the passive elements and the significant elements. Alternatively, these relationships may be defined by the user. These relationships are converted Toy the application in mathematical equations, using interpolation methods for example. These new equations are used by the application during the generation of the digital equations .
  • Figure 10 illustrates one embodiment of a system 100 for representing a physical object for digital animation.
  • System 100 comprises a digital modeling module 102, a position determining module 104 and a display unit 106.
  • the digital modeling module 102 receives model inputs from a user. These model inputs comprise an object to be animated, a normalized inertia coefficient and a normalized elasticity coefficient. The digital modeling module 102 creates a digital model from the model inputs.
  • the digital modeling module 102 is connected to the position determining module 104.
  • the position modeling module 104 receives initial conditions from the user, comprising the position of the object at states n and n-1 or the position of the object at a state n and a difference D n .
  • the user also enters a target position of the object for a state n+1. This target position is converted into an attractor by the module 104.
  • the digital position module receives the normalized inertia and elasticity coefficients from the digital modeling module 102. Using the initial conditions, the attractor and the normalized coefficients, the digital position module 104 generates a set of digital equations and solve the digital equations to calculate the position and direction of the object at the state n+1.
  • the state n+1 of the object is communicated to the display unit which displays the object as it is being displaced from the position n to the position n+1 .
  • the position determining module 104 is adapted to take into account multiple attractors while generating the digital equations .
  • the multiple attractors can be entered by the user or generated by the position determining module 104.
  • the multiple attractors can comprise a first attractor representing a target position and a second attractor representing a condition of the path of the object to reach the target position.
  • the module 104 can also take into account the influence of another object and generate an influencing attractor representative of this influence.
  • the position determining module 104 is adapted to use this influencing attractor when generating the digital equations and calculating the position of the first object at the state n+1.
  • the position determining module 104 is adapted to define significant elements and passive elements constituting the object. Alternatively, the module 104 can recognize these elements defined by the user.
  • the digital position module 104 is adapted to determine the position and direction of the passive elements from the position and direction of the significant elements using the methods previously described. It can also take into account influences existing between significant elements via the creation of influencing attractors in order to generate the digital equations.
  • the position determining module 104 transmits the state n+l of the object to the display unit 106 which displays the object while it is being displaced from the position n to the position n+1.
  • an object can be characterized by more than two normalized coefficients. Using the principles previously stated with respect to an object characterized by two coefficients, digital equations are generated from these coefficients, the previous positions of the object, and an attractor.
  • the present invention can be carried out as a method, can be embodied in a system, a computer readable medium or an electrical or electro-magnetic signal.

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Processing Or Creating Images (AREA)

Abstract

There is described a method of representing a physical object for digital animation, the method comprising: creating a digital model of the physical object by using digital characteristics to define the physical object; and generating at least one digital equation from the digital model for a position of the object at a state n+1, the at least one equation linking the position of the object at a state n+1 to a position of the object at a state n, a position at a state n-1 and at least one general attractor which represents a target position towards which the object is biased to move.

Description

DIGITAL REPRESENTATION AND ANIMATION OF PHYSICAL OBJECTS
CROSS-REFERENCE TO RELATED APPLICATIONS
The present application claims priority under 35USC paragraph 119 (e) of US Provisional Patent Application filed on April 12, 2007 and bearing serial number 60/907,644.
TECHNICAL FIELD'
The present invention relates to the field of digital animation techniques .
BACKGROUND OF THE INVENTION
In television or motion picture filming, movement added to static objects, whereby inanimate objects appear to come to life, is known as animation. Animation can be found in a wide variety of applications, such as film, video games, and virtual reality. Cartoons are just one of many examples of a type of animation. In a certain number of animation cases, the objective is to make the animation appear as realistic or as close to real-life as possible.
The process of giving the illusion of movement to drawings, models, or inanimate objects is a complex one, especially for the human body, where motion or movement is governed by very specific principles which are difficult to translate to computers. The real world is by nature analog, whereas computers are run by digital algorithms .
In order to translate real-life motion into digital animation, models are built using basic principles of physics. Characteristics such as mass and moment of inertia are used to represent an object. For a more complex object, such as the human body, other characteristics such as length and angular constraints are used to define and link multiple objects together. A set of differential equations is then produced to represent the model being created. A solution for the set of differential equations is calculated in order to determine, for one instant in time, the position and rotation of all elements in the model.
The differential equations are analog (for example, the variable representing time is continuous) , while the solution calculated by a computer is digital (time is represented by an integer and therefore, not continuous) . Hence, an analog to digital conversion is necessary to go from the real world to a computer world. Various computer methods exist to perform mathematical computations on sets of differential equations, such as the "Runge-Kutta" method. However, these methods are complex and do not necessarily produce the desired result.
There is therefore a need to provide a way to represent real- life objects digitally for the purposes of animation in order to improve the realism of the final product.
SUMMARY OF THE INVENTION There is provided herewith a method of creating a digital model of an object and generating a set of digital equations for the object in order to bypass an analog to digital conversion necessary in the prior art. In accordance with a first broad aspect, there is provided a method of representing a physical object for digital animation, the method comprising: creating a digital model of the physical object by using digital characteristics to define the physical object; and generating at least one digital equation from the digital model for a position of the object at a state n+1, the at least one equation linking the position of the object at a state n+1 to a position of the object at a state n, a position at a state n-1 and at least one general attractor which represents a target position towards which the object is biased to move.
In accordance with a second broad aspect, there is provided a method for animating a physical object comprising: creating a digital model of the physical object by using digital characteristics to define the physical object; providing a position of the physical object at a state n and a position of the physical object at a state n-1; providing at least one general attractor which represents a target position towards which the object is biased to move; generating at least one digital equation from the digital model for a position of the object at a state n+1, the at least one equation linking the position of the object at the state n+1 to the position of the object at the state n, the position at the state n-1 and the at least one general attractor; solving the at least one digital equation to obtain the position at the state n+1; and moving the physical object to the position at the state n+1.
In accordance with a third broad aspect, there is provided a system for digitally animating a physical object comprising: a processor in a computer; and an application coupled to the processor, the application being configured for: generating at least one digital equation from a digital model of the physical object for a position of the object at a state n+1, the at least one equation linking the position of the object at a state n+1 to a position of the object at a state n, a position at a state n-1 and at least one general attractor which represents a target position towards which the object is biased to move, the digital model being characterized by- digital characteristics; solving the at least one digital equation to obtain the position at the state n+1; and moving the physical object to the position at the state n+1.
In accordance with a fourth broad aspect, there is provided a system for representing a physical object for digital animation, the system comprising: a digital modeling module adapted to create a digital model of the physical object by using digital characteristics to define the physical object; a position determining module adapted to generate at least one digital equation from the digital model for a position of the object at a state n+1, the at least one equation linking the position of the object at a state n+1 to a position of the object at a state n, a position at a state n-1 and at least one general attractor which represents a target position towards which the object is biased to move, and to solve the at least one digital equation to obtain the position at the state n+1; and a display unit for displaying the physical object as it is being displaced from the position at the state n to the position at the state n+1.
In this specification, the term "artificial physics" is intended to mean principles of physics based on digital modeling and digital principles. The term "real physics" is intended to mean principles of physics based on analog modeling and analog principles (i.e. real-world concepts). It should be understood that the concepts of artificial physics can be applied to the animation of any type of physical object and the principles used to described motion are not limited to living beings, but can also be used for moving objects, such as a bouncing ball, a moving car, a controlled camera, etc.
It should be noted that the term "position Gn" is intended to be understood as a value characterizing the state n of the object which creates the animation of the object when varied, however this needs not necessarily be a point or position in space. The position Gn can be an actual position in space of the object, in which case the position is characterized by at least one coordinate. When the position in space of the object varies, the object moves and is animated. Alternately, the position Gn can constitute one or more angles, a camera focal length, and the like. For example, if the object is rotated, the position Gn is characterized by at least one angle. In the case of the rotation of an object, the term "orientation Gn" can be used in replacement of the term "position Gn" . In another example where the object to be animated is a camera, the position Gn represents the focal length of the camera. By varying the position Gn, i.e. the focal length, it is possible to zoom on a character for example.
It should be noted that the term "position Gn-1 at a state n- 1" is intended to be understood as: an actual position Gn-1 of an object at a state n-1; or a difference between a position Gn of an object at a state n and a position Gn-1 of the object at a state n-1. While the position Gn+I of an object at a state n+1 can be determined from the positions of the object at the states n and n-1, Gn and Gn-1 respectively, and other parameters, the position Gn+i of the object at a state n+1 can equally be determined from the position Gn at a state n, the other parameters and a difference Dn between the position Gn of the object at a state n and the position Gn.i of the object at a state n-1. This difference Dn is called the direction of the object at the state n.
BRIEF DESCRIPTION OF THE DRAWINGS Further features and advantages of the present invention will become apparent from the following detailed description, taken in combination with the appended drawings, in which:
Fig. 1 illustrates the steps used for digital animation as per the prior art;
Fig. 2 is illustrates the steps used for digital animation in accordance with an embodiment of the present invention;
Fig. 3 illustrates the interrelation between related significant elements and their attractors,-
Fig. 4 illustrates the interrelation between related significant elements and passive elements.
Fig. 5 is a graph representing the angle of rotation of a head according to a constant attractor as a function of n, in accordance with an embodiment;
Fig. 6 is a graph representing the angle of rotation of a head according to a varying attractor as a function of n, in accordance with an embodiment; Fig. 7 is a graph representing the angle of rotation of a chest influenced by the rotation of a head as a function of n, in accordance with an embodiment;
Fig. 8 is graph representing the position of a body when influenced by a single attractor as a function of n, in accordance with an embodiment;
Fig. 9 is graph representing the position of a body under the influence of two attractors as a function of n, in accordance with an embodiment; and
Fig. 10 illustrates a system for representing a physical object for digital animation, in accordance with an embodiment .
It will be noted that throughout the appended drawings, like features are identified by like reference numerals.
DETAILED DESCRIPTION
The principles used for artificial physics will be described in detail below.
In real physics, an object's movement is represented by a set of forces and torque applied thereon. Opposite forces are applied (either directly or by friction) and the classical laws of mechanics allow movement to be deduced. An analog model of the object can be represented and expressed by differential equations. However, a conversion to digital equations is required in order to solve the differential computer, as illustrated in figure 1. In artificial physics, the notion of an attractor, which is a point in space towards which the object is biased to move, specifies that the reason for the motion is in order to reach a given objective (the attractor) . Therefore, it is no longer a set of forces and torques that produce and control this motion, but an attractor (or a set of attractors) expressing a new state to be reached. Using the attractor concept means associating a notion of "intent" to a moving object. In artificial physics, the model representing the object is digital and not analog as in real physics. Therefore, this model can be directly represented by digital equations and no analog-to-digital conversion of equations is required, as illustrated in figure 2. The moving object is no longer a passive element that simply reacts to the laws of physics, but instead becomes an active element that actively pursues an objective. This technique avoids the divergence phenomenon usually encountered when digitizing a set of differential equations (such as in the Runge-Kutta method) .
The basis of artificial physics is to use digital characteristics to represent an object. For example, take the case of a human head (an object) having to rotate 45° to the right. In real physics, torque produces momentum for rotation and a moment of inertia slows down or stops the rotation. In artificial physics, the notion of torque is replaced by the notion of an attractor. The notion of moments of inertia is replaced by a normalized inertia coefficient Ki. The exact value of the moment of inertia is not what is important, since what matters is how the head reaches its target (in this case, the 45° rotation) , or the attractor. A notion of normalized elasticity coefficient Ka may also be added to take into account more factors that affect the rotation of the head such as oscillations before reaching the attractor. In artificial physics, an object is characterized by at least two coefficients, namely the normalized inertia coefficient Ki and the normalized elasticity coefficient Ka.
For artificial physics, what is considered in the case of a simple object which must reach a given attractor is the way in which this is done, and this is described using the normalized inertia and elasticity coefficients. These coefficients are said to be digital since they are directly and explicitly used in the digital equations described below.
Generating animation in real time consists in creating a certain number of images per second. This means calling x times per second an algorithm capable of going from image n (state n) to image n+1 (state n+1) . Therefore, an algorithm does not have the notion of time, it only knows what to do to go from state n to state n+1. In artificial physics, state n (denoted Ψn ) is defined by the positions Gn and Gn-1 of the object at states n and n-1, respectively. In other words, Ψn = (Gn, Gn-I). State n can also be defined using the direction Dn of the object at state n. The direction Dn is the difference between the position Gn and the position Gn-1 of the object, i.e. Dn=Gn-Gn-1. The direction Dn can also be represented by the vector Gn_xGn . This leads to the definition of state n as a function of position Gn and direction Dn, i.e. Ψn = (Gn, Dn) . By analogy with real physics, the direction Dn can be interpreted as a digital speed of the object at state n. The change of state from Ψn to Ψn + 1 is done using the following equation which expresses the state n+1 as a function of the position Gn, the direction Dn and an attractor An+I. Ψn = (Gπ ,/Λ) → A,+1 = kβDβ + kt(A - Gn YGn+, = Gn + Dn+1 → Ψπ+1 = (Gn+1 , Dn+1 ) Eq . 1
The first part of the above statement represent the Ψπ state. The second part of the statement represents the change of state (Dn+i & Gn+1) . The third part of the statement represents state Ψπ+1. These equations are not a digitization or an approximation of differential equations in real physics, but rather represent the basis for artificial physics. Variations for the above equation may exist wherein the same principles of artificial physics are applied.
By substituting Dn by Gn-Gn-I in the previous equation, Gn+χ can be expressed as a function of Gn and Gn-I.
A1+1 = K {Gn - Gn^ ) Λ- ki{An+λ - Gn ) = klA^ + Gn (ka - ki) - kaGn_] ; Eq . 2 Gn+i = Gn + Z) n+1 = M«+1 + Gn {ka - k, + 1) - kβn_x Eq . 3
By knowing Gn and Gn-1, which is equivalent to knowing Gn and Dn (Dn = Gn-Gn-I.) / the position and direction of the object at state n+1 is known by solving the equations 2 and 3. Alternatively, equation 1 can be solved.
It should be noted that more than one attractor may act on an object. For example, in order to represent a bowling ball linearly moving while spinning, two attractors can be used. A first attractor Al represents a target point in space that the bowling ball has to reach while a second attractor A2 imposes a rotation on the ball to create the spin. For each state n, the first and the second attractor Al and A2 are combined to give a resulting attractor Atotai which represents both the translation towards the attractor Al and the rotation. Alternatively, a set of digital equations is generated for each one the attractors and these sets of equations are solved simultaneously to obtain the position and orientation of the object at the state n+1. The second attractor A2 may also represent a particular point through which the path of the ball has to pass. A person skilled in the art will appreciate that any condition, such as a condition on the path of the object, may be represented by an attractor.
Alternatively, a single attractor is defined for the object but the digital equations may include an influencing attractor generated by another object. Earth is an example of an object generating an influencing attractor on another object. In this case, an influencing attractor is defined to take into account earth's gravity which acts on the object.
As an example, the human body will be used to further illustrate the principles of artificial physics. In real physics, the human body is considered to be an articulated system (a system of joints hierarchically linked by articulations) . Characteristics often used to model the human body as a set of differential equations are the angular constraints to these articulations and the physical traits of the joints. In reality, the problem to be addressed when animating the human body is in which way the different elements that make up the body are synchronized. Some individual elements of the human body have been categorized in the following table as either significant (those that must be under direct control) and passive (those that are controlled by other elements) . Each significant element is characterized by normalized inertia and elasticity coefficients and is matched side-by-side with the passive elements that are associated therewith.
The state n of a passive element can be inferred from the state n of the significant elements in connection with the passive element. Mathematical methods such as interpolation methods can be used to determine the state n of the passive element. For example, the neck of a body is connected to the head and the chest of this character. The neck is considered as a passive element and its position and direction are dictated that the positions and directions of the head and chest, which are the significant elements linked to the neck. If the head and chest undergo a rotation, the neck will also undergo a rotation. The angle GneCk(n) of the rotation of the neck for a state n is deduced by a linear interpolation between the angle of the head Ghead(n) and the angle of the chest GChest(n) for the same state n as described by the following equation:
Gneck (n) = (LhnxGhead (n) +LncxGchest (n) ) / (Lhn+Lnc)
where Lhn is the length between the head and the neck and Lnc is the length between the neck and the chest.
While this example refers to a linear interpolation to deduce the state n of a passive element, it should be understood that other mathematical techniques can be used.
The significant elements are to be controlled and synchronized together. There are a lot less significant elements than the actual number of joints in the human body. These elements reflect the parts of the human body that are truly important in the body's relationship with the outside world, i.e. feet are for walking, eyes are for seeing, wrists and hands are for holding things, etc.
Relationships between the different significant elements are developed and are variable using normalized influencing coefficients. As an illustrative and non-exhaustive example, some relationships that may exist are as follows.
Relationship between eyes and head: a rotation of the eyes brings about a rotation of the head in accordance with an influencing coefficient eyes → head.
Relationship between head and chest: a rotation of the head brings about a rotation of the chest in accordance with an influencing coefficient head → chest.
Relationship between feet and eyes: allows the eyes to be directed towards the direction in which the person is walking.
Relationship between wrists and head, chest, pelvis: allows the person to bend over to pick up an item or to look at the item being picked up.
Each significant element has its own attractor. Controlling an element consists in triggering an action on the element at a given moment in time. Equations are then used to tend the element's position towards its attractor. During the attraction, other influencing factors related to preceding actions are superimposed. A driving engine triggers the movement of the elements when a given set of conditions are met. Complex motion is therefore naturally reproduced. The set of conditions used to trigger the motion and the elements themselves may be produced or generated by an external system, such as an artificial intelligence system.
Figure 3 illustrates how multiple elements of the human body may be controlled together. In general, a significant element, is controlled by an attractor (A_0WN) and a set of influencing attractors (A_INF) resulting from the attractors of the other related significant elements. The actual or total attractor (A_TOT) is a weighted sum of influencing coefficients and of A_0WN and A_INF. K_INF_1 is the influencing coefficient of the head element with respect to the chest. K_INF_2 is the influencing coefficient of the chest element with respect to the pelvis .
The figure shows that an attractor (A_0WN) applied to the head element by a driving engine will have an influence on the chest and pelvis elements, and will be taken into account through A_INF in accordance with the values associated with K_INF_1 and K_INF_2. The calculated total attractors (A_TOT) then become the input variables for the change of state equations defined above, where the normalized inertia coefficient Ki and the normalized elasticity coefficient Ka will express in what way the various elements will each reach their given attractor. Therefore, an action on one element can have an effect on all other related elements. For example, if the driving engine triggers a 45° turn of the head towards the right, the total attractors of the chest and pelvis will also be affected in a manner which depends on the influencing coefficients of these elements. Motion resulting from the simple action of a head rotation will impact all related elements as a function of the influencing coefficients.
The elements HEAD, CHEST, and PELVIS from figure 3 are called "significant" because their attractors are affected either through direct control (A_0WN) or influence from others (A_INF) . When the driving engine controls the A_0WN input of a significant element, the action occurs as if it were also controlling the other significant elements thanks to the influencing coefficients. The controlled element, as well as those influenced by it, each attempt to reach their respective total attractors via their own system of equations for a change of state, i.e. with their own inertial and elasticity coefficient values.
The significant elements (HEAD, CHEST, PELVIS) simulate the spine, which is made up of a large number of joints (vertebrae) . These joints are underlying to the significant elements and are called "passive elements" . These passive elements are not subject to a control via attractors and are not associated with the notion of inertial or elasticity coefficients, but are rather the result of the computation that occurs when the attractors are applied to the significant elements. The result of the computation is controllable by an influencing coefficient. Figure 4 illustrates the passive elements (joints Jh, ..., Jc) that are the vertebrae existing between the HEAD and CHEST elements. The influencing coefficient KinfJ is globally applied to the passive elements.
In one embodiment, the human body comprises several significant elements such as a head, a chest, a pelvis and feet. A general attractor acts on the whole body and applies to all significant elements. Furthermore, at least one significant element, such as the head, can have its own attractor. By combining the general attractor and the particular attractor acting on the head, it is possible to determine the total attractor acting on the head. For example, the displacement of a human body, while turning the head, can be represented by two attractors. The general attractor defines a target point towards which the whole body is biased to move. This general attractor applies to all significant elements of the body. Furthermore, the head has a second attractor since the head has to rotate while the body moves towards the general attractor. By combining the general attractor and the attractor acting on the head, it is possible to determine the total attractor acting on the head. As illustrated above, an influencing coefficient of the head with respect to the chest may exist and be taken into account while calculating the total attractor acting on the chest.
Illustrated below are concrete examples of the application of the artificial physics. These examples are illustrative only.
Example 1: Simple rotation
A simple example is represented by the rotation of an object such as the head of a human body. Assuming that the head of a human body has a single degree of freedom, namely the rotation around the vertical axis, the state n can be represented by G(n) and D(n), which are both angles.
The head is to be rotated by an angle of 63° in one second. The initial state of the head is: G (n=0) =D (n=0) =0°. In this case, the attractor A is the target angle, i.e. A=63°. Assuming that the frame rate is 25 frames per second, it means that G(n=25) must be equal to A, i.e. G (25) =63°. The normalized inertia coefficient Ki and the normalized elasticity coefficient Ka are equal to 0.1 and 0.6, respectively .
The state (n+1) represented by G(n+1) and D(n+1) is determined by the following equations:
D (n+1) = KaxD(n) + Kix(A-G(n))
G(n+1) = G(n) + D(n+1)
By applying the previous algorithm, the following values of G and D are obtained :
n=l : D(l)=6.3°; G(l)=6.3°;
n=2: D(2)=9.45°; G (2 ) =15.75°;
n=3: D (3) =1.4°; G(3)=26.15°, etc.
Figure 5 is a graph representing the values of the orientation G(n) as a function of n, for n varying from 0 to 25. These points illustrate the evolution in time of the angle of rotation of the head while the head is "attracted" by the attractor A. The trajectory followed by the values of G depends on the values given to the normalized inertia coefficient Ki and the normalized elasticity coefficient Ka. In the previous example where Ki=O.1 and Ka=O.6, the values of G present a damped oscillation 50 before reaching its final position. By setting the normalized elasticity coefficient to 0, it is possible to suppress the damped oscillation. The normalized inertia coefficient directs the "speed" with which the the variable G reaches the attractor. By setting Ki to 0.01 instead of 0.1, the evolution of G towards the attractor A would be slower. Any trajectory can be given to the values of G by properly setting the values of Ki and Ka as this trajectory does not depend on the equations.
Example 2 : Double rotation
In this second example, the head of a body is first rotated in a direction and then comes back to its initial position. The initial state of the head is given by G(0)=D(0)=0°. The initial conditions are the following:
n≤12: A=A1=63°; Ki=O.1; Ka=O.6;
12<n≤25: A=A2=0°; Ki=O.15 and Ka=O.4.
The conditions for n≤12 corresponds to the conditions of example 1. Starting from n=13, the value of attractor A is changed to 0°, which corresponds to the initial angle of the head. The values of the normalized inertia and elasticity coefficients are also varied. The normalized inertia coefficient is increased from 0.1 to 0.15 which means that the angle of the head will tend faster towards the attractor A2 than it does towards the attractor Al . The combination of Ki=O.15 and Ka=O.4 describes an aperiodic regime.
Figure 6 is a graph of the angle of the head G as a function of n. For n<12, the head is directed towards the attractor A=63° with the conditions applied for example 1. As a result, the angle increases from 0° and reaches a value superior to that of the attractor for n=12 because of the damped oscillation phenomenon. Starting from n=13, the value of the angle G decreases to reach the second value of the attractor.
Example 3 : Rotation of the chest influenced by the rotation of the head.
In the case a movement of the head influences the chest, in artificial physics, the influencing coefficient of the head element with respect to the chest K_INF quantifies the impact of the rotation of the head on the chest. For example, if K_INF is set to zero, then the rotation of the head has no influence on the chest and does not imply a rotation of the chest. On the contrary, if K_INF is set to 1, then the chest follows the exact same movement as the head element. As a general rule, Achest=K_INFxAhead.
This example repeats the movement of the head described in example 1 and describes the resulting rotation of the chest when K_INF is set to 0.5. As the attractor of the head Ahead is equal to 63° (see example 1) , the attractor of the chest Achest is equal to 31.5°. The initial conditions for the chest are: Gchest (0) =DChest (0) =0° and the normalized inertia and elasticity coefficients Ki and Ka are set to 0.1 and 0.6, respectively (see example 1) .
By applying the equations of the artificial physics, the following values of Gchest are obtained:
n=l : Dchest(l)=3.15°; Gchest (D =3.15°;
n=2: Dchest (2) =4.725°; Gchest (2) =7.875°;
n=3: Dchest (3) =0.7°; Gchest (3) =26.15°, etc.
Figure 7 is a graph representing the values of GChest as a function of n. For each n, GChest(n) is equal to half of the angle of the head element G(n) calculated in example 1. As a result, the curve formed by the different values GChest(n) has exactly the same shape as that formed by the values G(n) representing the angle of the head in example 1.
Example 4: Translation of a body.
The position of the body in a state n is represented by a point G(n) having (x,y) coordinates. The normalized inertia and elasticity coefficients of the body are set to 0.15 and 0.6, repectively. The attractor A towards which the body is biased to move is defined by the coordinates (0, 0.2) . All coordinates are in meters.
Initial state of the body:
G(0) = (-0.25, 0) and D(O) = (0.15, 0).
By applying the algorithm of the artificial physics, the following values of G and D are calculated:
n=l: D(I) =KaxD(0) +Kix (A-G(O) ) =90.1275 , 0.030 ;
G(l)=G(0)+D(l)=(-0.1225, 0.03);
n=2: D(2) = (0.094875, 0.0435); G (2 ) = ( -0.027625 , 0.0735); n=3: D(3) = (0.06106875, 0.045075); G (3 ) = (0.03344375 , 0.118575) , etc.
Figure 8 is a graphical representation of the points G(n) in the space (x,y) . The movement described by the points g(n) is a spiral which emanates from the attractor A. The shape of this movement is due to the specific values of Ka and Ki.
Example 5: Translation of a body with an imposed condition on the movement .
This example uses the same initial conditions, attractor and normalized coefficients as example 4, but a specific condition is imposed on the movement of the body. The body has to reach the attractor with a trajectory tangential to the direction AZ .
As illustrated in figure 9, the condition to have is tangential trajectory is that the angle θ(n) between the vector and the vector AZ' tends towards zero. G' (n) corresponds to the position of the body without taking into account the condition on the trajectory, i.e. G' (n) is the position as calculated in example 4. The angle θ (n) can be considered as a second attractor which is set to zero to obtain the condition of tangential trajectory.
Taking into account this second attractor, the algorithm is described by the following equations:
D' (n) =KaxG(n-l) +Kix (A-G(n-l)) (Eq.1)
G' (n)=G(n-l) +D' (n) (Eq.2) dG(n) = rot(AG'(n),Ki x θ(n)) - AG\n) (Eq.3)
D(n)=D' (n)+dG(n) (Eq.4)
G(n)=G' (n)+dG(n) (Eq.5)
Equations 1 and 2 enable to calculate G' (n) and D' (n) which correspond to G(n) and D(n) when no condition is applied on the trajectory (example 4). dG(n) is a vector correction which
takes into account the second attractor θ (θ=0) . dG(n) is equal to the difference between the vector rot(AG'(n),Ki.θ(n)) (resulting from the rotation of vector AP'(ή) of an angle of Ki. θ) and the vectorAF(n) . dG(n) is then added to G' (n) and D' (n) to obtain the corrected values G(n) and D(n) .
Applying this algorithm, the following values are obtained:
n=l: D' (1) = (0.0825, 0.03) ;
G' (1) = (-0.1675, 0.03) ;
θ(l) = 134.6°, Ki.θ(l) =20.19;
Wt(AG(I),KW(I)) -(-0.098, -0.2184) ;
dG(l)=(0.069, -0.0474) ;
D(I) = (0.1514, -0.01736), G(I) = (-0.0985, -0.01736);
n=2: D' (2) = (0.0602, 0.02739), G' (2) = (-0.0383, 0.010038)
θ(2) = 101.4°, dP(2) = (0.05118, -0.00340)
D(2) = (0.1114, 0.02399), G(2) = (0.01285, 0.006636) 11=3: D' (3) = (0.03149, 0.03620) , G' (3) = (0.04434, 0.042839) θ(3) = 74.24°, dP(3) = (0.02951, 0.01152)
D(3) = (0.06101, 0.04772) , G(3) = (0.07386, 0.05436) , etc .
It should be understood that other conditions can be applied to the movement of an object. While example 5 refers to an object targeting an attractor with a specific trajectory, namely the trajectory being tangential to a direction, it could be imposed on the trajectory of the object to pass by a predefined point in space, for example.
It should be understood that the attractor An can vary as a function of n, i.e. each state n can have a different attractor An. Alternatively, the attractor An is constant, in which case An=A.
Using the principles of the artificial physics above described, a physical object can be represented by first creating a digital model of the object and then generating a set of digital equations. The object is modeled by a normalized inertia coefficient and a normalized elasticity coefficient. At least one attractor is defined to represent a target position towards which the object is biased to move. The set of digital equations representing the object for digital animation comprises equation 1 or equations 2 and 3, depending on the initial conditions. If the initial conditions comprise the position of the object at a state n and the difference Dn, then equation 1 is used to determine the position of the object at a state n+1. If the position of the object at states n and n-1 is known, equations 2 and 3 are used to determine the next position.
Using the principles of artificial physics, a method for animating a physical object can be established. This method comprises the step of creating a digital model of the object by using normalized inertia and elasticity coefficients. If the object comprises several elements, a normalized inertia coefficient and a normalized elasticity coefficient are defined for each one of these elements. Secondly, initial conditions are provided. These initial conditions include the position of the object at state n and n-1. Alternatively, they can include the position at the state n and a difference Dn. Furthermore, at least one attractor which represents a position towards which the object is biased to move is provided. A set of equations is generated by using either equation 1 or equations 2 and 3. These equations are solved in order to determine the position of the object at the state n+1. The final step consists in moving the object in accordance with the calculated position at the state n+1.
It should be understood that all particularities of artificial physics can be applied to the method of representing an object and to the method of animating an object. For example, several attractors can be applied to the object. These attractors can represent a target position to be reached or conditions on the path of the object. If the object comprises several elements, significant and passive elements can be defined. The passive elements are controlled via the significant elements according to the method above described. For example, the position of a passive element can be determined from the position of at least one significant element and may imply the use of mathematical methods such as interpolation methods. A significant element can have an influence on another significant element via an influencing coefficient .
In one embodiment, a system for digitally animating a physical object includes a processor in a computer and an application coupled to the processor. A user of the application chooses an object that he wants to animate. The application can automatically define normalized inertia and elasticity coefficients for the object. Alternatively, the user may enter these coefficients. The user can enter initial conditions for the object, including a position of the object at state n and n-1 or a position at a state n and a difference Dn. Alternatively, the initial conditions can be generated by the application. The application is configured for generating at least one digital equation from the digital model of the object for a position of the object at a state n+1. The equation links the position of the object at the state n+1 to the position at a state n, the position at a state n-1 and the attractor (as described previously) . Instead of the position n-1, Dn can be used to obtain the position at the state n+1. The application is further adapted to solve the digital equation to obtain the position at the state n+1. The object is displayed on a display at the position n and is moved to the position n+1. The application also determined the direction of the object at the state n+1 using the vector GnGn+1.
In one embodiment, several attractors acting on the object are entered by the user or defined by the application. For example, a first attractor may define a target position while the second attractor may define a condition on the path of the object or a rotation of the object. The application is adapted to combine the different attractors to obtain a single attractor to be used in the digital equations. Alternatively, a set of digital equations is generated for each one of these attractors and both sets of digital equations are solved simultaneously by the application in order to obtain the position and direction of the object at the state n+1.
The application can also be configured to determine if the movement of the object selected by the user is influenced by another object and generates an attractor to take this influence into account. Alternatively, the user may define the influence of the second object on the first object. The application is configured to use this influencing attractor when generating the digital equations and calculate the position of the first object at the state n+1.
In one embodiment, the application is further configured to identify significant elements of the object of which the state n+1 has to be determined. The user enters a second attractor for each significant element or the second attractor may be defined by the application according to influences existing between the significant elements. The application generates a set of influencing attractors using the second attractors and uses them to generate the digital equations governing the movement of each one of the significant elements. The application can also be configured to identify passive elements linked to the significant elements. The application generates a set of relationships between the passive elements and the significant elements. Alternatively, these relationships may be defined by the user. These relationships are converted Toy the application in mathematical equations, using interpolation methods for example. These new equations are used by the application during the generation of the digital equations .
Figure 10 illustrates one embodiment of a system 100 for representing a physical object for digital animation. System 100 comprises a digital modeling module 102, a position determining module 104 and a display unit 106.
The digital modeling module 102 receives model inputs from a user. These model inputs comprise an object to be animated, a normalized inertia coefficient and a normalized elasticity coefficient. The digital modeling module 102 creates a digital model from the model inputs.
The digital modeling module 102 is connected to the position determining module 104. The position modeling module 104 receives initial conditions from the user, comprising the position of the object at states n and n-1 or the position of the object at a state n and a difference Dn. The user also enters a target position of the object for a state n+1. This target position is converted into an attractor by the module 104. The digital position module receives the normalized inertia and elasticity coefficients from the digital modeling module 102. Using the initial conditions, the attractor and the normalized coefficients, the digital position module 104 generates a set of digital equations and solve the digital equations to calculate the position and direction of the object at the state n+1. The state n+1 of the object is communicated to the display unit which displays the object as it is being displaced from the position n to the position n+1 .
The position determining module 104 is adapted to take into account multiple attractors while generating the digital equations . The multiple attractors can be entered by the user or generated by the position determining module 104. For example, the multiple attractors can comprise a first attractor representing a target position and a second attractor representing a condition of the path of the object to reach the target position. The module 104 can also take into account the influence of another object and generate an influencing attractor representative of this influence. The position determining module 104 is adapted to use this influencing attractor when generating the digital equations and calculating the position of the first object at the state n+1.
The position determining module 104 is adapted to define significant elements and passive elements constituting the object. Alternatively, the module 104 can recognize these elements defined by the user. The digital position module 104 is adapted to determine the position and direction of the passive elements from the position and direction of the significant elements using the methods previously described. It can also take into account influences existing between significant elements via the creation of influencing attractors in order to generate the digital equations.
Once the position and direction of the object at the state n+l has been determined, the position determining module 104 transmits the state n+l of the object to the display unit 106 which displays the object while it is being displaced from the position n to the position n+1.
It should be understood that all of the principles of artificial physics apply to the method of representing a physical object for digital animation, the method for animating an object, the system for digitally animating an object and the system for representing an object for digital animation.
A person skilled in the art will appreciate that an object can be characterized by more than two normalized coefficients. Using the principles previously stated with respect to an object characterized by two coefficients, digital equations are generated from these coefficients, the previous positions of the object, and an attractor.
It should be noted that the present invention can be carried out as a method, can be embodied in a system, a computer readable medium or an electrical or electro-magnetic signal.
The embodiments of the invention described above are intended to be exemplary only. The scope of the invention is therefore intended to be limited solely by the scope of the appended claims.

Claims

I/WE CLAIM :
1. A method of representing a physical object for digital animation, the method comprising: creating a digital model of said physical object by using digital characteristics to define said physical object; and generating at least one digital equation from said digital model for a position of said object at a state n+1, said at least one equation linking said position of said object at a state n+1 to a position of said object at a state n, a position at a state n-1 and at least one general attractor which represents a target position towards which the object is biased to move.
2. The method as claimed in claim 1, further comprising determining a direction of said physical object at said state n+1 using said position at said state n and said position at said state n+1.
3. The method as claimed in claim 1, further comprising determining a direction of said physical object at said state n+1 using said position at said state n, said at least one general attractor, said digital characteristics and one of a direction of said physical object at said state n and said position of said physical object at said state n-1.
4. The method as claimed in claim 1, wherein said at least one general attractor comprises a first attractor and a second attractor both acting on said physical object.
5. The method as claimed in claim 4, wherein said second attractor is representative of a condition imposed on a path of said physical object.
6. The method as claimed in claim 1, further comprising: generating an influencing attractor on said physical object using an attractor of a second object; and using said influencing attractor when generating said at least one digital equation.
7. The method as claimed in claim 1, further comprising: identifying significant elements of said physical object, each being controlled by a corresponding attractor; generating at least one influencing attractor for each one of said significant elements, said at least one influencing attractor resulting from attractors of other significant elements; and using said at least one influencing attractor when generating said at least one digital equation.
8. The method as claimed in claim 5, further comprising: identifying passive elements which are indirectly controlled via said significant elements; generating a set of relationships using said significant elements and said passive elements; and using said relationships when generating said at least one digital equation.
9. The method as claimed in claim 1, wherein said position and said at least one general attractor are angles.
10. The method as claimed in claim 1, wherein said position and said at least one general attractor are represented by- points each defined by at least one coordinate.
11. A method for animating a physical object comprising: creating a digital model of said physical object by using digital characteristics to define said physical object; providing a position of said physical object at a state n and a position of said physical object at a state n-1; providing at least one general attractor which represents a target position towards which the object is biased to move,- generating at least one digital equation from said digital model for a position of said object at a state n+1, said at least one equation linking said position of said object at said state n+1 to said position of said object at said state n, said position at said state n-1 and said at least one general attractor; solving said at least one digital equation to obtain said position at said state n+1; and moving said physical object to said position at said state n+1.
12. The method as claimed in claim 11, further comprising determining a direction of said physical object at said state n+1 using said position at said state n and said position at said state n+1.
13. The method as claimed in claim 11, further comprising determining a direction of said physical object at said state n+1 using said position at said state n, said at least one general attractor, said digital characteristics and one of a direction of said physical object at said state n and said position of said physical object at said state n-1.
14. The method as claimed in claim 11, wherein said at least one general attractor comprises a first attractor and a second attractor both acting on said physical object.
15. The method as claimed in claim 14, wherein said second attractor is representative of a condition imposed on a path of said physical object.
16. The method as claimed in claim 11, further comprising: generating an influencing attractor on said physical object using an attractor of a second object; and using said influencing attractor when generating said at least one digital equation.
17. The method as claimed in claim 11, further comprising: identifying significant elements of said physical object, each being controlled by a corresponding attractor; generating at least one influencing attractor for each one of said significant elements, said at least one influencing attractor resulting from attractors of other significant elements; and using said at least one influencing attractor when generating said at least one digital equation.
18. The method as claimed in claim 17, further comprising: identifying passive elements which are indirectly controlled via said significant elements; generating a set of relationships using said significant elements and said passive elements; and using said relationships when generating said at least one digital equation.
19. The method as claimed in claim 11, wherein said position and said at least one general attractor are angles .
20. The method as claimed in claim 11, wherein said position and said at least one general attractor are represented by- points each defined by at least one coordinate.
21. A system for digitally animating a physical object comprising: a processor in a computer; and an application coupled to said processor, said application being configured for: generating at least one digital equation from a digital model of said physical object for a position of said object at a state n+1, said at least one equation linking said position of said object at a state n+1 to a position of said object at a state n, a position at a state n-1 and at least one general attractor which represents a target position towards which the object is biased to move, said digital model being characterized by digital characteristics; solving said at least one digital equation to obtain said position at said state n+1; and moving said physical object to said position at said state n+1.
22. The system as claimed in claim 21, wherein the application is further configured to determine a direction of said physical object at said state n+1 using said position at said state n and said position at said state n+1.
23. The system as claimed in claim 21, wherein the application is further configured to determine a direction of said physical object at said state n+1 using said position at said state n, said at least one general attractor, said digital characteristics and one of a direction of said physical object at said state n and said position of said physical object at said state n-1.
24. The system as claimed in claim 21, wherein said at least one general attractor comprises a first attractor and a second attractor both acting on said physical object.
25. The system as claimed in claim 24, wherein said second attractor is representative of a condition imposed on a path of said physical object.
26. The system as claimed in claim 21, wherein the application is further configured to generate an influencing attractor using an attractor of a second object and use said influencing attractor when generating said at least one digital equation.
27. The system as claimed in claim 21, wherein the application is further configured to identify significant elements of said physical object, each being controlled by a corresponding attractor, generate at least one influencing attractor for each one of said significant elements, said at least one influencing attractor resulting from attractors of other significant elements, and use said at least one influencing attractor when generating said at least one digital equation.
28. The system as claimed in claim 27, wherein the application is further configured to identify passive elements which are indirectly controlled via said significant elements, generate a set of relationships using said significant elements and said passive elements, and use said relationships when generating said at least one digital equation.
29. A system for representing a physical object for digital animation, the system comprising: a digital modeling module adapted to create a digital model of said physical object by using digital characteristics to define said physical object; a position determining module adapted to generate at least one digital equation from said digital model for a position of said object at a state n+1, said at least one equation linking said position of said object at a state n+1 to a position of said object at a state n, a position at a state n-1 and at least one general attractor which represents a target position towards which the object is biased to move, and to solve said at least one digital equation to obtain said position at said state n+1; and a display unit for displaying said physical object as it is being displaced from said position at said state n to said position at said state n+1.
30. The system as claimed in claim 29, wherein the position determining module is adapted to determine a direction of said physical object at said state n+1 using said position at said state n and said position at said state n+1.
31. The system as claimed in claim 29, wherein the position determining module is adapted to determine a direction of said physical object at said state n+1 using said position at said state n, said at least one general attractor, said digital characteristics and one of a direction of said physical object at said state n and said position of said physical object at said state n-1.
32. The system as claimed in claim 29, wherein said at least one general attractor comprises a first attractor and a second attractor both acting on said physical object.
33. The system as claimed in claim 32, wherein said second attractor is representative of a condition imposed on a path of said physical object.
34. The system as claimed in claim 29, wherein the position determining module is adapted to generate an influencing attractor using an attractor of a second object and to use said influencing attractor when generating said at least one digital equation.
35. The system as claimed in claim 29, wherein the position determining module is adapted to identify significant elements of said physical object, each being controlled by a corresponding attractor, generate at least one influencing attractor for each one of said significant elements, said at least one influencing attractor resulting from attractors of other significant elements, and use said at least one influencing attractor when generating said at least one digital equation.
36. The system as claimed in claim 35, wherein the position determining module is adapted to identify passive elements which are indirectly controlled via said significant elements, generate a set of relationships using said significant elements and said passive elements and use said relationships when generating said at least one digital equation.
EP08733753A 2007-04-12 2008-04-14 Digital representation and animation of physical objects Withdrawn EP2156411A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US90764407P 2007-04-12 2007-04-12
PCT/CA2008/000705 WO2008124941A1 (en) 2007-04-12 2008-04-14 Digital representation and animation of physical objects

Publications (1)

Publication Number Publication Date
EP2156411A1 true EP2156411A1 (en) 2010-02-24

Family

ID=39863208

Family Applications (1)

Application Number Title Priority Date Filing Date
EP08733753A Withdrawn EP2156411A1 (en) 2007-04-12 2008-04-14 Digital representation and animation of physical objects

Country Status (3)

Country Link
EP (1) EP2156411A1 (en)
JP (1) JP2010524098A (en)
WO (1) WO2008124941A1 (en)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10679283B1 (en) 2014-06-27 2020-06-09 Amazon Technologies, Inc. Providing digital representations based on physical items
US9597584B1 (en) 2014-06-27 2017-03-21 Amazon Technologies, Inc. Determining real-world effects from games
US10217185B1 (en) 2014-08-08 2019-02-26 Amazon Technologies, Inc. Customizing client experiences within a media universe
US10332311B2 (en) 2014-09-29 2019-06-25 Amazon Technologies, Inc. Virtual world generation engine
US11513658B1 (en) 2015-06-24 2022-11-29 Amazon Technologies, Inc. Custom query of a media universe database
US10970843B1 (en) 2015-06-24 2021-04-06 Amazon Technologies, Inc. Generating interactive content using a media universe database
US10938663B2 (en) 2018-05-07 2021-03-02 Servicenow, Inc. Discovery and management of devices

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6115053A (en) * 1994-08-02 2000-09-05 New York University Computer animation method and system for synthesizing human-like gestures and actions
GB0104995D0 (en) * 2001-02-28 2001-04-18 Isis Innovation Artificial morpho-functional multiped and motion controller therefor
US7490012B2 (en) * 2002-05-29 2009-02-10 Japan Science And Technology Agency Body dynamics calculation method, body dynamics model and model data thereof, and body-model generation method

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See references of WO2008124941A1 *

Also Published As

Publication number Publication date
WO2008124941A1 (en) 2008-10-23
JP2010524098A (en) 2010-07-15

Similar Documents

Publication Publication Date Title
JP7061238B2 (en) Reinforcement learning to train characters using heterogeneous target animation data
US11113860B2 (en) Particle-based inverse kinematic rendering system
JP7437327B2 (en) Method and system for interpolation of heterogeneous inputs
US20220198732A1 (en) Animation implementation method and apparatus, electronic device, and storage medium
Zhao et al. Robust realtime physics-based motion control for human grasping
Johnson Exploiting quaternions to support expressive interactive character motion
EP2156411A1 (en) Digital representation and animation of physical objects
Callennec et al. Interactive motion deformation with prioritized constraints
Feng et al. An example-based motion synthesis technique for locomotion and object manipulation
US11104001B2 (en) Motion transfer of highly dimensional movements to lower dimensional robot movements
CN112753007A (en) Gesture space dimension reduction for gesture space deformation of virtual characters
US11217001B2 (en) Systems and methods for supervised and unsupervised animation style transfer
WO2023088041A1 (en) Method and apparatus for generating walking animation of virtual character, and device and storage medium
Mousas Performance-driven dance motion control of a virtual partner character
WO2016188551A1 (en) Animating a virtual object in a virtual world
Alvarado et al. Generating Upper‐Body Motion for Real‐Time Characters Making their Way through Dynamic Environments
Shapiro et al. Practical character physics for animators
Wang et al. Encoder–decoder recurrent network model for interactive character animation generation
US8531466B2 (en) Methods for providing realistic animation of autonomous objects through improved animation control signal processing
Umenhoffer et al. Facial animation retargeting framework using radial basis functions
Kry et al. Inverse kinodynamics: Editing and constraining kinematic approximations of dynamic motion
Jones et al. Dynamic sprites: artistic authoring of interactive animations
JP3973995B2 (en) Animation creation system
Wang et al. A physically-based modeling and simulation framework for facial animation
WO2009006727A1 (en) Modeling the motion of an articulated object

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20091112

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MT NL NO PL PT RO SE SI SK TR

AX Request for extension of the european patent

Extension state: AL BA MK RS

DAX Request for extension of the european patent (deleted)
STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN

18D Application deemed to be withdrawn

Effective date: 20111101