1. A computer-implemented method for transferring motion from a source character having a source topology to a target character having a target topology, comprising: receiving a user input that identifies basic elements in the source topology and basic elements in the target topology, wherein the source topology is arbitrarily different than the target topology, the basic elements in the source topology comprise a subset of elements in the source topology, the basic elements in the target topology comprise a subset of elements in the target topology, and the basic elements in the source topology are homotopic with the basic elements in the target topology; computing a source-to-canonical transformation between a frame of reference of the source topology and a frame of reference of a canonical topology, wherein the frame of reference of the source topology and the frame of reference of the canonical topology are different; retargetting motion from the basic elements of the source topology to the canonical topology using the source-to-canonical transformation to produce a normalized representation of the motion of the basic elements of the source topology; computing a target-to-canonical transformation between a frame of reference of the target topology and the frame of reference of the canonical topology, wherein the frame of reference of the target topology and the frame of reference of the canonical topology are different; retargeting the normalized representation of the motion of the basic elements of the source topology to the target topology using the target-to-canonical transformation to produce retargeted motion of the basic elements of the target topology; storing in a memory a representation of the target topology with the attached retargeted motion of the basic elements of the target topology; and storing in the memory the normalized representation of the motion and the canonical topology in a database of motion for reuse with different target characters.