U.S. patent application number 11/134653 was filed with the patent office on 2006-11-23 for transfer of motion between animated characters.
Invention is credited to Michael Isner.
Application Number | 20060262119 11/134653 |
Document ID | / |
Family ID | 36675895 |
Filed Date | 2006-11-23 |
United States Patent
Application |
20060262119 |
Kind Code |
A1 |
Isner; Michael |
November 23, 2006 |
Transfer of motion between animated characters
Abstract
Motion may be transferred between portions of two characters if
those portions have a minimum topological similarity. The elements
of the topology that are similar are referred to as basic elements.
To transfer motion between the source and target characters, the
motion associated with the basic elements of the source character
is determined. This motion is retargetted to the basic elements of
the target character. The retargetted motion is then attached to
the basic elements of the target character. As a result, the
animation of the basic elements in the topology of the target
character effectively animates the target character with motion
that is similar to that of the source character.
Inventors: |
Isner; Michael; (Santa
Monica, CA) |
Correspondence
Address: |
PETER J. GORDON, PATENT COUNSEL
AVID TECHNOLOGY, INC.
ONE PARK WEST
TEWKSBURY
MA
01876
US
|
Family ID: |
36675895 |
Appl. No.: |
11/134653 |
Filed: |
May 20, 2005 |
Current U.S.
Class: |
345/473 |
Current CPC
Class: |
G06T 13/40 20130101 |
Class at
Publication: |
345/473 |
International
Class: |
G06T 15/70 20060101
G06T015/70; G06T 13/00 20060101 G06T013/00 |
Claims
1. A method for transferring motion for a source character having a
source topology to a target character having a target topology,
wherein the source topology is different from the target topology,
comprising: identifying corresponding basic elements between the
source topology and the target topology; retargetting motion from
the basic elements of the source topology to corresponding basic
element in the target topology; and attaching the retargetted
motion to the basic elements of the target topology.
2. The method of claim 1, wherein retargetting comprises:
retargetting the motion for the basic elements of the source
topology to a canonical topology to provide normalized motion
data.
3. The method of claim 2, wherein retargetting further comprises:
retargetting the normalized motion data from the canonical topology
to the basic elements of the target topology.
4. A computer program product, comprising: a computer readable
medium; computer program instructions stored on the computer
readable medium that, when processed by a computer, instruct the
computer to perform a method for transferring motion for a source
character having a source topology to a target character having a
target topology, wherein the source topology is different from the
target topology, the method comprising: receiving inputs
identifying corresponding basic elements between the source
topology and the target topology; retargetting motion from the
basic elements of the source topology to corresponding basic
element in the target topology; and attaching the retargetted
motion to the basic elements of the target topology.
5. The computer program product of claim 4, wherein retargetting
comprises: retargetting the motion for the basic elements of the
source topology to a canonical topology to provide normalized
motion data.
6. The computer program product of claim 5, wherein retargetting
further comprises: retargetting the normalized motion data from the
canonical topology to the basic elements of the target
topology.
7. A method for generating normalized motion data for a class of
characters, wherein each character has a topology, wherein the
topology of each character includes a set of basic elements common
among the characters, the method comprising: receiving inputs
identifying basic elements in a topology of a source character in
the class of characters; defining a canonical topology and
associated reference pose of a combination of the basic elements
for the class of characters; retargetting motion from the basic
elements of the topology of the source character to the canonical
topology using the reference pose; and storing the retargetted
motion in a database.
8. A computer program product, comprising: a computer readable
medium; computer program instructions stored on the computer
readable medium that, when processed by a computer, instruct the
computer to perform a method for generating normalized motion data
for a class of characters, wherein each character has a topology,
wherein the topology of each character includes a set of basic
elements common among the characters, the method comprising:
receiving inputs identifying basic elements in a topology of a
source character in the class of characters; defining a canonical
topology and associated reference pose of a combination of the
basic elements for the class of characters; retargetting motion
from the basic elements of the topology of the source character to
the canonical topology using the reference pose; and storing the
retargetted motion in a database.
9. A method for transferring normalized motion data, stored in a
database and associated with basic elements of a canonical topology
representing a class of characters, to a topology of a target
character, comprising: identifying, in the database, normalized
motion data associated with the canonical topology wherein the
basic elements of the canonical topology match basic elements of
the topology of the target character; and retargetting the
identified normalized motion data to the basic elements of the
topology of the target character; and attaching the retargetted
motion data to the basic elements of the topology of the target
character.
10. A computer program product, comprising: a computer readable
medium; computer program instructions stored on the computer
readable medium that, when processed by a computer, instruct the
computer to perform a method for transferring normalized motion
data, stored in a database and associated with basic elements of a
canonical topology representing a class of characters, to a
topology of a target character, comprising: identifying, in the
database, normalized motion data associated with a canonical
topology wherein the basic elements of the canonical topology match
basic elements of the topology of the target character; and
retargetting the identified normalized motion data to the basic
elements of the topology of the target character; and attaching the
retargetted motion data to the basic elements of the topology of
the target character.
Description
BACKGROUND
[0001] In computer animation, a character generally is defined by a
topology, often called a skeleton, and an associated geometry,
often called a skin or envelope. The topology includes a number of
interconnected elements. Each element in the topology is defined in
three dimensions by a position and orientation, which may include
direction and rotation. Various algorithms control the relationship
between the topology and the geometry to produce the look of a
character.
[0002] Various techniques may be used to manipulate a character to
provide the appearance of animation. Generally, such techniques
involve associating one or more animation controls with one or more
elements of the topology in a process called rigging. One technique
is to specify a series of key frames that describe motion of the
character over time, using a combination of inverse and forward
kinematics and character rigging techniques. Another technique is
to use motion capture data representing the position and
orientation of selected elements of the topology of a character
over time. For example, motion may be captured using sensors
attached to a live actor. The motion capture data may be used to
derive the topology of a character representing the live actor. The
motion capture data then is used to animate that character. Other
techniques include using constraints, scripts or expressions.
[0003] Motion capture data for one character may be reused with
another character using a process called motion retargetting.
Motion retargetting algorithms generally require that the source
character and target character have identical structures, or that
the target character has a simpler structure than the source
character. With these constraints, motion retargetting can be
performed between characters having the same structure but
different proportions. See, for example, "Retargetting Motion to
New Characters," by Michael Gleicher, in Proceedings of SIGGRAPH
98, pages 33-42, July 1998. In practice, motion retargetting is
restricted to retargetting motion capture data to pre-defined rig
structures, and in limited cases moving animations from one
pre-defined rig to another, due to the narrow constraints of
current methods.
SUMMARY
[0004] In practice, it would be desirable to transfer motion from
one character to another character of an arbitrarily different
topology. It also would be desirable to transfer motion in such a
way that an animator can use animation controls in a familiar
manner, instead of requiring the animator to manipulate dense
motion data.
[0005] Motion can be transferred between characters of different
topologies if those characters have a minimum topological
similarity. Motion also may be transferred between portions of two
characters if those portions have a minimum topological similarity.
In particular, motion can be transferred from a source character to
a target character if a subset of elements of the topology of the
source character is homotopic with a subset of the elements of the
topology of the target character. The elements of the topology that
form these subsets are called herein "basic elements." All
characters having such homotopic subsets among them may be
considered a class of characters. In other words, all characters
having the same set of basic elements are in the same class of
characters. An example class of characters is biped characters.
[0006] To transfer motion between the source and target characters,
the motion associated with the basic elements of the source
character is determined. This motion is retargetted to the basic
elements of the target character. The retargetted motion is then
attached to the basic elements of the target character. As a
result, the animation of the basic elements in the topology of the
target character effectively animates the target character with
motion that is similar to that of the source character.
[0007] Ideally, the basic elements of the target character also are
associated with animation controls that control the animation of
the target character. For example, a character may be rigged such
that hip and chest elements control the animation of elements in a
spine connected between the hip and the chest. If the hip and chest
elements also are the basic elements of the target character, then
motion transferred from the corresponding hip and chest elements of
the source character can be used to animate the elements of the
spine of the target character.
[0008] In one embodiment of retargetting, a set of vector maps is
defined to represent the orientations of the basic elements of the
characters. One vector map represents the basic elements of the
source character. Another vector map represents the basic elements
of the target character. Yet another vector map can be used to
represent a set of basic elements of a canonical topology in a
default orientation. The vector map representing this set of
canonical basic elements may be understood as defining a canonical
topology, and the default orientation may be understood as a
reference pose.
[0009] Because the frames of reference of the source and target
characters and the canonical reference pose may be different,
transformations among these frames of reference are computed. In
one embodiment, the source character and the target character are
placed in the same pose as the canonical reference pose by the user
through a graphical user interface. A transformation between the
frames of reference of the source and target characters is
determined. The motion of the basic elements of the source
character is retargetted to the basic elements of the target
character using this transformation and the vector maps
representing the set of basic elements of source and target
characters. Alternatively, a transformation between the frame of
reference for the source character and the frame of reference of
the canonical reference pose may be computed. This transformation
may be stored with the source character. The motion of the basic
elements of the source character is retargetted to the canonical
reference pose using this transformation and the vector maps
representing the set of basic elements of the source character and
the canonical reference pose. In this embodiment, the result is a
normalized representation of the motion of the basic elements of
the source character. This normalized motion can be stored, along
with a representation of the canonical reference pose to which it
corresponds, thus providing the capability of building a library or
database of motion for different classes of characters which can be
reused for many different target characters. Another transformation
between the frame of reference of a target character of the same
class and the frame of reference of the canonical reference pose is
computed. This transformation can be stored with the target
character. Given a set of source characters and target characters
of the same class, these transformations normalize orientations
across the class of characters. Stored normalized motion then can
be retargetted to the basic elements of the target character using
this transformation and the vector maps representing the set of
basic elements of the target character and the canonical reference
pose.
BRIEF DESCRIPTION OF THE DRAWINGS
[0010] FIG. 1 is a data flow diagram of an embodiment of a system
for transferring motion from a source character to a target
character.
[0011] FIG. 2 is a flow chart describing an embodiment of a
workflow for transferring motion from a source character to a
target character.
[0012] FIG. 3 is a data flow diagram describing an embodiment of
retargetting motion.
DETAILED DESCRIPTION
[0013] Referring now to FIG. 1, a source character 100 is defined
by a topology 102 and an associated geometry. Various algorithms
control the relationship between the topology and the geometry to
produce the look of a character. Similarly, a target character 150
is defined by a topology 152 and an associated geometry.
[0014] Various techniques may have been used to define motion for
the source character. Generally, such techniques involve
associating one or more animation controls with one or more
elements of the topology in a process called rigging. One technique
is to specify a series of key frames that describe motion of the
character over time, using a combination of inverse and forward
kinematics and character rigging techniques. Another technique is
to use motion capture data representing the position and
orientation of selected elements of the topology of a character
over time. For example, motion may be captured using sensors
attached to a live actor. The motion capture data may be used to
derive the topology of a character representing the live actor. The
motion capture data then is used to animate that character. Other
techniques include using constraints, scripts or expressions. The
target character also may be rigged in a manner that will improve
its ability to be animated through motion transferred from the
source character.
[0015] Motion 104 that is defined for a source character can be
transferred from the source character 100 to a target character
150, even if they have different topologies, if these characters
have a minimum topological similarity. Motion also may be
transferred between a portion of a source character and a portion
of the target character, if these portions have a minimum
topological similarity. In particular, motion can be transferred
from a source character to a target character if a subset of
elements of the topology of the source character is homotopic with
a subset of the elements of the topology of the target character.
The elements of the topology that form these subsets are called
herein "basic elements." All characters having such homotopic
subsets among them may be considered a class of characters. In
other words, all characters having the same set of basic elements
are in the same class of characters. An example class of characters
is biped characters. Two different biped characters may have, on
the surface, very different topologies; but, these characters each
may have the same primary skeletal elements. For example, any biped
likely has elements representing a head, neck, chest, arms, spine,
hips and legs. Motion can be transferred to the elements in a
target topology that match elements in the source topology.
[0016] In one embodiment, the user may identify the basic elements
of the source and target characters through a textual or graphical
user interface. In particular, the topology of each character is
tagged, by tagging modules 106, 156 in response to user input, to
indicate which elements are the basic elements, to provide tagged
characters 108, 158. For example, a user interface may be provided
to permit a user to select an element of a topology of a character
and to associate a name with it. Elements with the same name in
different topologies can be deemed to be corresponding elements for
the purposes of motion transfer.
[0017] Ideally, the basic elements of the target character also are
associated with animation controls that control the animation of
the target character. For example, a character may be rigged such
that the hip and chest elements control the animation of elements
in a spine connected between the hip and the chest. If the hip and
chest elements also are the basic elements of the target character,
then motion transferred from the corresponding hip and chest
elements of the source character can be used to animate the
elements of the spine of the target character.
[0018] To transfer motion between the source and target characters,
the motion 104 associated with the basic elements of the source
character is determined. In particular, the motion data (i.e., the
position and orientation for each frame of the animation) for each
basic element of the source character is derived from the animation
controls, motion capture data and any other information used to
animate the character.
[0019] Using the basic elements as identified by the tagged source
character 108 and the tagged target character 158 and the motion
104, a retargetting module 120 retargets motion 104 to obtain
retargetted motion 154. For example, conventional motion
retargetting techniques can be used to retarget the motion of the
set of basic elements of the source character to its corresponding
set of basic elements of the target character. A particular
embodiment of retargetting is described in more detail below.
Motion 104 associated with the basic elements of the source
character is retargetted on a frame by frame basis to the basic
elements of the target character.
[0020] The retargetted motion 154 is then attached to the basic
elements of target character 150. As a result, the animation of the
basic elements in the topology of the target character animates the
target character with motion that is similar to that of the source
character. To the extent that the basic elements of the target
character are associated with animation controls for manipulating
other parts of the target character topology, more usable motion
transfer can be achieved.
[0021] Referring now to FIG. 2, a flow chart describing one
embodiment of a workflow using a system as shown in FIG. 1 will now
be described.
[0022] Given a source character and a target character, the
topologies of these characters is displayed (200) to the user. The
user indicates what elements in the source and target characters
correspond to each other. This indication may be provided by
tagging the basic elements in the source character (202) and in the
target character (204), by providing user input to the tagging
module as described above. After both the target and the source
characters are tagged, the computer retargets (206) the motion from
the basic elements of the source character to the basic elements of
the target character. After the motion is retargetted, the
retargetted motion is attached (208) to the target character.
[0023] Referring now to FIG. 3, one embodiment of retargetting will
now be described. A set of vector maps is defined to represent the
orientations of the basic elements of the characters. One vector
map 300 represents the basic elements of the source character.
Another vector map 302 represents the basic elements of the target
character. Yet another vector map 304 can be used to represent a
set of basic elements of a canonical topology in a default
orientation. The vector map representing this set of canonical
basic elements may be understood as defining a canonical topology,
and the default orientation may be understood as a reference pose.
Because the frames of reference of the source and target characters
and the canonical reference pose may be different, transformations
among these frames of reference are computed.
[0024] In one embodiment, the source character and the target
character are placed in the same pose by the user through a
graphical user interface. A source-to-target transformation 308
between the frames of reference of the source and target characters
is computed by a transformation computation module 306 given these
known orientations of the source and target characters. The direct
retargetting module 310 retargets the motion 312 of the basic
elements of the source character to the basic elements of the
target character using this transformation and the vector maps
representing the set of basic elements of the source and target
characters, resulting in retargetted motion 314.
[0025] Alternatively, the source character is placed in the same
pose as the reference pose for the canonical topology, by the user
through a graphical user interface. A source-to-canonical
transformation 320 between the frame of reference of the source
character and the frame of reference for the canonical topology may
be computed. This transformation may be stored with the source
character. The normalizing retargetting module 322 retargets the
motion 312 of the basic elements of the source character to the
canonical topology using this transformation 320 and the vector
maps representing the set of basic elements of the source character
and the canonical topology.
[0026] In this embodiment, the result is a normalized
representation of the motion 324 of the basic elements of the
source character. This normalized motion can be stored along with a
representation of the canonical topology to which it corresponds,
for example in database 326. The database 326 thus may provide the
capability of building a library or database of motion for
different classes of characters which can be reused for many
different target characters. Such a database could be used, for
example, by selecting a normalized motion and by matching elements
of the topology of the target character to the canonical topology
associated with the selected normalized motion. The database also
could be searched by matching selected elements of a target
character to canonical reference poses referenced in the database
to identify motions corresponding to the selected elements of the
target character.
[0027] For any target character having a subset of elements that is
homotopic with a subset of elements of the canonical topology, the
normalized motion can be transferred from the canonical topology to
the target character. The target character is placed in the same
pose as the reference pose for the canonical topology, by the user
through a graphical user interface. A target-to-canonical
transformation 328 between the frame of reference of a target
character and frame of reference of the canonical topology is
computed. This transformation may be stored with the target
character. Given a set of source characters and target characters
of the same class, these transformations normalize orientations
across the class of characters. An indirect retargetting module 330
receives stored normalized motion 324 and retargets it from the
canonical topology to the basic elements of the target character
using transformation 328 and the vector maps representing the set
of basic elements of the target character and the canonical
topology, resulting in retargetted motion 314.
[0028] In these embodiments, if the transformations among the
various frames of reference are known, they need not be
computed.
[0029] The various components of the system described herein may be
implemented as a computer program using a general-purpose computer
system. Such a computer system typically includes a main unit
connected to both an output device that displays information to a
user and an input device that receives input from a user. The main
unit generally includes a processor connected to a memory system
via an interconnection mechanism. The input device and output
device also are connected to the processor and memory system via
the interconnection mechanism.
[0030] One or more output devices may be connected to the computer
system. Example output devices include, but are not limited to, a
cathode ray tube (CRT) display, liquid crystal displays (LCD) and
other video output devices, printers, communication devices such as
a modem, and storage devices such as disk or tape. One or more
input devices may be connected to the computer system. Example
input devices include, but are not limited to, a keyboard, keypad,
track ball, mouse, pen and tablet, communication device, and data
input devices. The invention is not limited to the particular input
or output devices used in combination with the computer system or
to those described herein.
[0031] The computer system may be a general purpose computer system
which is programmable using a computer programming language, a
scripting language or even assembly language. The computer system
may also be specially programmed, special purpose hardware. In a
general-purpose computer system, the processor is typically a
commercially available processor. The general-purpose computer also
typically has an operating system, which controls the execution of
other computer programs and provides scheduling, debugging,
input/output control, accounting, compilation, storage assignment,
data management and memory management, and communication control
and related services.
[0032] A memory system typically includes a computer readable
medium. The medium may be volatile or nonvolatile, writeable or
nonwriteable, and/or rewriteable or not rewriteable. A memory
system stores data typically in binary form. Such data may define
an application program to be executed by the microprocessor, or
information stored on the disk to be processed by the application
program. The invention is not limited to a particular memory
system.
[0033] A system such as described herein may be implemented in
software or hardware or firmware, or a combination of the three.
The various elements of the system, either individually or in
combination may be implemented as one or more computer program
products in which computer program instructions are stored on a
computer readable medium for execution by a computer. Various steps
of a process may be performed by a computer executing such computer
program instructions. The computer system may be a multiprocessor
computer system or may include multiple computers connected over a
computer network. The components shown in FIG. 1 may be separate
modules of a computer program, or may be separate computer
programs, which may be operable on separate computers. The data
produced by these components may be stored in a memory system or
transmitted between computer systems.
[0034] Having now described an example embodiment, it should be
apparent to those skilled in the art that the foregoing is merely
illustrative and not limiting, having been presented by way of
example only. Numerous modifications and other embodiments are
within the scope of one of ordinary skill in the art and are
contemplated as falling within the scope of the invention.
* * * * *