Home Technical Talk

Maya Re-targeting Animation Issue

polycounter lvl 12
Offline / Send Message
Ricky polycounter lvl 12
Hey guys,
I'm currently working on a character project and as part of the outcome of the project I wanted to have motion capture from Mixamo applied.

My first method was to build a rig of my own in my character, very standard bones etc. Then bring in the motion capture rig, set up HumanIK's for them both and make my rig follow the mo-cap rig. If you know this process you're probably laughing at me. It didn't work.

My second attempt I brought in the mo-cap rig, duplicated it and stripped the duplicate of any animation data and history, then re-positioned it in my character. I figured this would give better results but actually the were worse, with loads of random rotations being applied to my model.

How can I do this with very few issues? Fundamentally my character is a standard T-pose character, while the mo-cap is in A-pose. How much of an issue will this be? (Seems to be...) My character is also bigger than the mo-cap skeleton, but I've seen this not being a problem in Maya's official videos.


Also how should I do this in future if I have really messed this up? Basically I want to be able to build my characters while knowing that in the end I can apply some basic motion capture animations to them through re-targeting to bring them to life.

Thanks,
- Ricky

Replies

  • antweiler
    Options
    Offline / Send Message
    antweiler polycounter lvl 8
    HumanIK retargeting should work well with differently sized characters (depends on the settings in ther HIK Properties, match source should be off).
    The T-Pose is imporant for retargeting, and whatever the joint rotations and bindpose are, it requires pose your character into a T-Pose, when you create a HIK character (characterizing).
  • Ricky
    Options
    Offline / Send Message
    Ricky polycounter lvl 12
    My motion capture data I downloaded was in A-pose but my model is in T-pose. Should I then set the 1st frame of the mo-cap data into T-pose to match my character?

    The joint rotations are all the same, although when I duplicated the skeleton from the mo-cap data and put that in my character to be sure, that was when I actually got a load of rotational issues for some reason.
  • GlowingPotato
    Options
    Offline / Send Message
    GlowingPotato polycounter lvl 10
    Hey Ricky! i'am very familiar with this workflow and I think I can help you.

    Using humanIk is pretty much straight forward.

    The first thing to know is that humanIK is designed to work with T-pose skeletons.

    So, grab your mocap data and put in a Tpose. How? Easy!

    First, select your Root joint of the mocap. Then, select the entire bone hierarchy (you can do it by simple selecting you root joint and running this command "select -hi" ).

    Then, with all that selected go to the channelBox, select Rotate X,Y and Z and zero the channels (put 0 in X,y and Z).

    Done! you mocap data is now T posed!Now... you need to store this pose in order to define the skeleton with the humanIK.

    So, select a frame after you animation, lets say -1, and key frame all those bones is that position.

    Now you just need to do the same with your custom RIG, and then use the mocap data as source to the retargeting system.

    let me know if you got it all!
  • Ricky
    Options
    Offline / Send Message
    Ricky polycounter lvl 12
    Thank you very much for the help! It appeared to be working better as when telling HumanIK which bone was which, everything was lit up green, with no yellow caution triangle saying the arms were not completely flat to the x axis.

    However when telling my character rig to follow the mo-cap data rig, this happened:
    issue2_zps93dca638.png

    The animation data seems like it is working correctly apart from this huge issue that I just cannot get to work.

    Notes:
    - - - - -
    I followed GlowingPotato's instructions and managed to get the mo-cap data into T-pose, keyframed on frame -1 as suggested.
    I then duplicated this skeleton in T-pose, deleted out my old skeleton again and used this duplicate with no animation in my own character. I had to stretch parts of the rig using only move (no rotating) to fit my character.
  • GlowingPotato
    Options
    Offline / Send Message
    GlowingPotato polycounter lvl 10
    The trick to make your character behave correctly, is to put the mocap data and you custom rig at the same world space position, align them by the hip, and scale the mocap reference group until it roughly matches your character.

    Then use the retargeting tool.

    And be sure that all your custom controls are parented correctly so it will follow the rig.
  • Ricky
    Options
    Offline / Send Message
    Ricky polycounter lvl 12
    Doing this is still giving me the same issue but the model is lower down.
    It seems to just randomly horribly rotate the pelvis and neck when the joints on both rigs are in the same orientation to begin with.

    Also another thing I've noticed that is wrong but might correct itself when I figure out what is happening here is the wrists are rotating on the animation when the elbows should be rotating for some reason. On both the HumanIKs they are set up as they should be though.
  • Ricky
    Options
    Offline / Send Message
    Ricky polycounter lvl 12
    Ok so getting annoyed with it not working I decided to start a new scene, and only bring in the motion capture file. I then did all the past stuff of making frame -1 the T-pose using the 0-ing method you just showed me.

    I then duplicated the skeleton, which keeps no animation data from it when doing so. I did not scale or translate any of the duplicate skeleton just in-case for the time being.

    I set up the Human IK for both skeletons, with 'Character1' being the mi-cap, and 'Character2' being my duplication. No problems or warning when building the skeletons in HumanIK.

    I then simply told Character2 to follow Character1 as a source. They are both in the same world space, directly ontop of eachother, although I've seen this not to be necessary before.

    Issue still remains. I've told all major joints to show their local rotation axis to be sure they are all right and the same, which they appear to be.

    This is both skeletons ontop of eachother with all the same joints showing local rotation axis:
    BothRiggsOntopofEachother_zps59e6e16c.png

    This is them after being told to follow the motion capture data:
    Broken_zpselyfifrr.gif
  • Ricky
    Options
    Offline / Send Message
    Ricky polycounter lvl 12
    Are the joint orientations wrong on the mo-cap skeleton, or does that even matter as long as the target skeleton matches them? Still no luck here.
  • GlowingPotato
    Options
    Offline / Send Message
    GlowingPotato polycounter lvl 10
    That's weird.

    Probably won't help but try grouping each skeleton and put the group as a reference in the humanIk skeleton definition.

    Could you upload this specific scene so i can help investigate the issue ?
  • Ricky
    Options
    Offline / Send Message
    Ricky polycounter lvl 12
    http://www.rickythomas.co.uk/mocapissue.zip

    Above is a link to the file I'm having an issue with, thanks for this! Let me know how it goes.
  • GlowingPotato
    Options
    Offline / Send Message
    GlowingPotato polycounter lvl 10
    Ok I gonna download it and reply to you soon.
  • Ricky
    Options
    Offline / Send Message
    Ricky polycounter lvl 12
    Any luck or insight into this issue? Did I simply just set the whole thing up wrong? Is there a trick I can do to the rig of the mo-cap data or something to make it work properly?
  • GlowingPotato
    Options
    Offline / Send Message
    GlowingPotato polycounter lvl 10
    Yes! i found the issue but didn't have time to fix it yet.

    Looks like your target skeleton is a duplicated skeleton from your source skeleton, and the issue is with it. Somehow the Hik detect that the hip joint is rotated and mess with everything. But there is a way to fix it. I'll look at it again today
  • Ricky
    Options
    Offline / Send Message
    Ricky polycounter lvl 12
    Ok thank you very much :) I used a duplicate of the mo-cap skeleton to try and make sure the source would match the target because when I tried this process with my own skeleton it failed to work even more for me :(

    Looking forward to your reply, and thanks again for this!
  • Redsett
    Options
    Offline / Send Message
    Redsett polycounter lvl 4
    Are you doing this to import into an engine? If so most big engines have tools built in for this.
  • Ricky
    Options
    Offline / Send Message
    Ricky polycounter lvl 12
    No this is for Maya and renders. It all needs to be working through Maya. Although I have experience doing similar stuff for UDK but mostly required me to build my character to the rig all of the animations were on instead of trying to re-target like this.
  • Ricky
    Options
    Offline / Send Message
    Ricky polycounter lvl 12
    I eventually figured this out but now have another question regarding my motion capture.

    How do I change limb length on my motion capture rig and make sure it always stays that new length throughout the animation? Is this even possible?
  • antweiler
    Options
    Offline / Send Message
    antweiler polycounter lvl 8
    You could simply try to scale your limbs, since I assume the scales are not keyed. Keep "Segment scale compensate" on the joints in mind.
    It would be cleaner to move the limbs into the new length. Even if translations are keyed, the animation should be static on mocap skeletons, so you can delete the keys, and modify the translations. With properly oriented joints, which have an axis pointed to the child joint, you only need to modify this axis.
Sign In or Register to comment.