Search Unity

Question How to copy one character's pose to another one via playble

Discussion in 'Animation' started by silver_gp, Jul 12, 2021.

  1. silver_gp

    silver_gp

    Joined:
    May 11, 2015
    Posts:
    10
    Here I have a problem.
    I have a skeleton imported by one fbx file, and I have a mesh imported from another fbx file. During the game's running, the animator animates the skeleton, and I put the skeleton's bones into the skinned mesh renderer of the mesh, so finally the animated skeleton drives the mesh.
    But I have a problem here, the number of bones needed by the mesh is more than the that of the skeleton. For example there are some pendants hanging on the cloth. That means there are two skeletons. One of each is the animated skeleton of character and the other one is the skeleton of the mesh. The subset of the bones in the mesh are the same with the animated skeleton of the character.
    For example, the character's animated skeleton looks like this:
    A --> B --> C
    And there is a kind of cloth for the character, whose skeleton looks like this:
    A' --> B' --> C'
    --> D' --> E'
    I want the bone transforms from the animated skeleton (A,B,C) are applied to the mesh (A',B',C'), and after that, I control the pendant bones (D',E') with some physics solvers.

    In the unreal engine, there is a node called 'Copy Pose From Mesh'. It copies the transforms of the bones in one skeleton to another skeleton by names.
    I know I can implement this feature via late update, but I still want to do it in the playable because of the multithread feature. So can I do it via playable system?

    Copy(A',B',C')-->Physics(D',E')-->Output
     
  2. Kybernetik

    Kybernetik

    Joined:
    Jan 3, 2013
    Posts:
    2,570
    KalOBrien likes this.
  3. silver_gp

    silver_gp

    Joined:
    May 11, 2015
    Posts:
    10