Answered

Bake With Frame Step Option (Crucial for Mocap)

ytGameDevDave 2 years ago updated by Peter - Soxware Developer 2 years ago 3

Hi Peter, 

This is a feature request for Motion Capture cleaning. The ability to bake keyframes with an arbitrary number of frames skipped. This is so we can get rid of Jitter and have more control over the animation. 

This would be already very useful if it's just for the whole skeleton, could just override the old animation with the newly baked animation.

This would be incredibly handy to have now with UMotion... 

And a "Smart Bake" perhaps for in the future: the ability to bake specific bones and specific curves and the ability to keep the shape of the curves by automatically estimating and modifying the tangents. 

Image 1143

Image 1144



This would be amazing. 

UMotion Version:
v1.28
Unity Version:
2021.3.6f1

Answer

Answer
Answered

Hi Dave,

thank you very much for sharing your idea.

This is more or less already possible, but you need to work directly on the animation data (not via the humanoid format as humanoid always requires re-sampling on import/export which is introducing keys for each frame again).

  1. Decide on a character you want to use to do your mocap clean-up.
  2. Convert your mocap animation to generic (for that character):
    a) Configure your character and mocap anim as humanoid.
    b) Create a humanoid UMotion project for that character and import the animation.
    c) Export the animation into your character's *.FBX file.
    d) Configure your character as generic.
  3. In the animation tab of your character's FBX settings you now have exactly those options you described in your idea.

  4. Create a new UMotion project of type generic and edit your animation. You are now working directly on the animation data (due to the use of generic), no re-sampling required when importing or exporting the animation. Data-wise, this is equal to editing the mocap animation in motion builder, maya or similar.

With humanoid, you do not have the level of control over the animation's data that would be needed.


PS: Step 1 and 2 are not necessary if your mocap animations can already be used as generic because they where all exported using the same standard character model (by your mocap software).


Hope this makes sense to you. Please let me know in case you have any follow-up questions.

Best regards,
Peter


GOOD, I'M SATISFIED

Perfect, thank you for clarifying :)

Satisfaction mark by ytGameDevDave 2 years ago
Answer
Answered

Hi Dave,

thank you very much for sharing your idea.

This is more or less already possible, but you need to work directly on the animation data (not via the humanoid format as humanoid always requires re-sampling on import/export which is introducing keys for each frame again).

  1. Decide on a character you want to use to do your mocap clean-up.
  2. Convert your mocap animation to generic (for that character):
    a) Configure your character and mocap anim as humanoid.
    b) Create a humanoid UMotion project for that character and import the animation.
    c) Export the animation into your character's *.FBX file.
    d) Configure your character as generic.
  3. In the animation tab of your character's FBX settings you now have exactly those options you described in your idea.

  4. Create a new UMotion project of type generic and edit your animation. You are now working directly on the animation data (due to the use of generic), no re-sampling required when importing or exporting the animation. Data-wise, this is equal to editing the mocap animation in motion builder, maya or similar.

With humanoid, you do not have the level of control over the animation's data that would be needed.


PS: Step 1 and 2 are not necessary if your mocap animations can already be used as generic because they where all exported using the same standard character model (by your mocap software).


Hope this makes sense to you. Please let me know in case you have any follow-up questions.

Best regards,
Peter


Hmm, so if I would input 2 on those attributes that are on 0.5 in your image, the animation (generic) would import into Umotion Clip Editor with a framestep of 2? Meaning a full bake but with the keyframes on 2's animation wise?

And just to confirm: Humanoid has Anim. Compression as well, but it doesn't work because Humanoid animations get baked fully at all times? Generic gives you more control. 

Thank you Peter

Hmm, so if I would input 2 on those attributes that are on 0.5 in your image, the animation (generic) would import into Umotion Clip Editor with a framestep of 2?

UMotion is not involved at this time. Unity takes the original animation inside the *.FBX and creates a *.anim out of it. With these settings, you can decide how precise it should re-sample the curves. Less precision means less keyframes. For more information regarding these settings, please consult the Unity manual.


UMotion then imports the resulting (generic) *.anim 1:1 as is.


And just to confirm: Humanoid has Anim. Compression as well, but it doesn't work because Humanoid animations get baked fully at all times? Generic gives you more control.

Yes, on every import/export in/from UMotion, UMotion has to re-sample the humanoid animation. This is not needed when working with generic (data stays the same on import/export).


Best regards,
Peter