Answered

Copy IK keyframes between UMotion projects

maxvinopaldev 6 months ago updated by Peter - Soxware Developer 6 months ago 1

Hello, Id like to ask you if it is possible to copy keyframes between clips in different project. 

Why do I need this  - I have 2 Umotion projects, one humnoid and one generic. I have IK setup on both. In theory, it should be possible to copy keyframes between them and then just adjust rest of the animation. However now it seems that when I copy the keyframes and then switch UMotion projects, the copied keyframes are lost and cannot be pasted. Is there any otherway to achieve this, or could it be added as a feature? It would greatly help me as I cannot turn this rig into humanoid and I need to transfer animations from humanoid rig. 

Thanks

MVD

UMotion Version:
Unity Version:

Answer

Answer
Answered

Hi,

thank you very much for your support request.

Key frames are addressed using transform paths. An example of a transform path would be: "Root/Hips/Spine0/Spine1/ShoulderL". This path would address a bone/transform named "ShoulderL" that has a parent named "Spine1". If you copy a key frame in one project and try to paste it in another, the transform paths must match in order for the pasting to be successful. Otherwise UMotion cannot know, where the key frames belong to.


What you could try, if you do know a bit about Unity C# scripting is using the UMotion API to craft a tailored solution for your situation:

  1. In the first step, create a script that loops through the whole animation clip and stores all the world space position/rotation values of the IK handles.
  2. In a second step, create another script that then writes the previously stored world space position/rotation values to the other model's IK handles. Simply hardcode the names of the IK handles in your script to map them correctly.

Here is some further information regarding the UMotion API: https://www.soxware.com/umotion-manual/UMotionAPI.html

https://forum.unity.com/threads/umotion-animation-editor.490618/page-13#post-7801521

Please let me know in case you have any follow-up questions.

Best regards,
Peter

Answer
Answered

Hi,

thank you very much for your support request.

Key frames are addressed using transform paths. An example of a transform path would be: "Root/Hips/Spine0/Spine1/ShoulderL". This path would address a bone/transform named "ShoulderL" that has a parent named "Spine1". If you copy a key frame in one project and try to paste it in another, the transform paths must match in order for the pasting to be successful. Otherwise UMotion cannot know, where the key frames belong to.


What you could try, if you do know a bit about Unity C# scripting is using the UMotion API to craft a tailored solution for your situation:

  1. In the first step, create a script that loops through the whole animation clip and stores all the world space position/rotation values of the IK handles.
  2. In a second step, create another script that then writes the previously stored world space position/rotation values to the other model's IK handles. Simply hardcode the names of the IK handles in your script to map them correctly.

Here is some further information regarding the UMotion API: https://www.soxware.com/umotion-manual/UMotionAPI.html

https://forum.unity.com/threads/umotion-animation-editor.490618/page-13#post-7801521

Please let me know in case you have any follow-up questions.

Best regards,
Peter