0 votes
asked in General Help by Expert (760 points)

Here's something that confuses me about UM. 

I will try to explain my question clearly:

Let's say I'm moving a foot.  There are three keyframes 1, 2, 3 at seconds 1.0, 2.0 and 3.0.

Qualities from the Editor which actually make it to the animation:

Of course, the many rotations etc are actually part of the final animation data.

Qualities from the Editor which DO NOT make it to the animation:

Say in the Editor, while entering the keyframes, I happen to change the size of the drawn bones, or the color indicators.  Of course, those qualities do not end up in the animation.  They'e just "local" to the editor.

Here's what confuses me:

Say in the editor I use the IK feature to move the right foot to some position for the keyframe at second 2.0.

Here's the position:

So that's the foot position for keyframe #2.

Let's be clear:  I could have moved the foot to that position (in the Editor) using the excellent IK features.  Or, I could have moved it there totally manually by just adjusting rotations along the skeleton, so not in any way using or even turning on the IK features of the editor.

But again let's say I did use the IK featues to get the foot in that position for keyframe 2.

My question!

In fact, is my use of IK actually used in any way in the actual animation?

obviously the animation has information such as:

rotation of item blah : blah

rotation of item blah: blah

and so on.

But does the animation even know about IK?

I find this very confusing.

Because the IK information (and indeed, the pinned/unpinned quality) is in fact in the timeline.

But does the animation even know about IK?

In a sense, I'm thinking that the IK information should not really be in the timeline - it's only local information used to create the keyframe positions.
Peter, does this make sense and what do you think?!

1 Answer

+1 vote
answered by Expert (148k points)
selected by
Best answer

Hi Fattie,
thanks for your support request.

I understand what you mean. An animation in Unity (*.anim) is only an array of curves that can animate the following properties:

  1. Local Transform Data: localPosition, localRotation, localScale
  2. Any numeric property of any of the components of your GameObject
    (Custom Property in "Component" mode in UMotion)
  3. Any numeric parameter that you defined for your Animator State Machine
    (Custom Property in Animator Parameter mode in UMotion)
  4. Any object reference of any of the components of your GameObject
    (This is not commonly used and not supported by UMotion)

The affect of the Child-Of constraint and the IK constraint thus has to be baked into the final animation by UMotion or in other words just the resulting localRotation values are stored in the exported animation. Other animation software like Blender, Maya, etc. behave the same (baking IK into the resulting animation). This reduces CPU processing as no IK needs to be calculated at runtime.

The IK/Child Of constraint's properties still have to be in the Timeline of UMotion's Clip Editor though because you can change those parameters inside your animation (e.g. you might want to blend from IK to FK at frame 160).

Runtime IK + UMotion is also possible (see "Pose Editor/Options/Extending UMotion" in the Manual).

I hope this makes sense to you, let me know if you have any follow-up questions.

Best regards,

commented by Expert (760 points)
It does make sense, thanks.

in a way the IK/ChildOf properties are "not really" the same as the properties which actually go to the final animation.  They are just "local" properties.  "Unbaked."

(Perhaps they should be indicated in a different way - blue background on the timeline, or such.)

thanks again!

Soxware Support

Here you get official product support by the developer and the community for all Soxware Products for Unity®.

Post as guest, login via Facebook or create an account.

Ask questions, report bugs or provide feedback. Please use the correct category and always post in english.

For private email support, please use the Support Form to create a support ticket.

Copyright © 2017 Soxware Interactive | All Rights Reserved | Impressum