Answered

Can we please have a world position copy/paste, this is so crucial...

ytGameDevDave 2 years ago updated 2 years ago 4

Copy world position > Paste world position > rebuild solvers

So we can have it paste correctly in Layers too

Please Peter

UMotion Version:
1.28p04
Unity Version:
2021.3.6 LTS

Answer

Answer

Thank you very much for your detailed description (in your answer below).

So if I understood you correctly, you primarily need this in order to copy IK handle's world space positions around. You can already do this:

  1. Select the bone/transform of which you want to copy the world space position.
  2. Select the move tool and set pivot to global.
  3. Click on the menu button in the upper right corner of the move tool assistant and select "Copy Position".
    This copies the world space position.


    PS: Via the preferences menu of UMotion you can even assign a shortcut to this.

  4. Move the frame cursor to the desired position and/or select the destination bone/transform and "Paste Position" (via the tool assistant menu again).

Limitation: Only works with one transform at a time (having multiple transforms selected copies the center position).

I can offer setting the world space position/rotation via the UMotion API in the future. I've put an entry on my "extending API" todo list.

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

Best regards,
Peter

GOOD, I'M SATISFIED

Wow... Thank you so much Peter!

Satisfaction mark by ytGameDevDave 2 years ago
Answered

Hi Dave,

thank you very much for your feature request.

Can you give me a few more insights in what exactly you are trying to achieve with that copy paste feature? The more detailed the better as it ensures that this feature ends up in a way that it is actually useful for you.

Best regards,
Peter

It would make my work quicker at a significant amount... Using an override layer and deleting keyframes is a good solution for certain situations... Using IK pinning and updating the position on it is a good solution for certain situations... But they take too long to set up for this simple problem... In some cases copy/pasting a keyframe works but its persistence is lost when dealing with multiple clips or additive layers.

These aforementioned solutions feel like arduous and time-consuming workarounds in this situation that don't even work every time... If in the situation all I want to do is to give an IK a specific world position, then why am I not just able to do that? It is the simple matter of just giving an object the correct coordinates in 3D world space... With bone hierarchy I get it, but IK's are literally objects in 3D space that I can put in the desired position manually, so why can't I do that automatically? Manually it's never perfect, always off and time-consuming... Copy pasting it would take 1 second and give the 'perfect' result... 

So far in the API we have a TrySetFKLocal Pos/Rot/Sca, but it's only for FK and understandable why it's local. 

A TrySetIKWorld Pos/Rot/Sca would be perfect. 

I know that with additive layers there are a lot of 'offsets' to take into account, but adapting offsets might not be the right approach to this problem since it would compromise the user's previous work. 


It is simply allowing the user the freedom to give an exact position & rotation to an IK handle independent of the setup and letting it be keyframed in whatever setup the user has built... 


If we can do this manually, then why can't it be automated?

If you can give unity a little bit of access towards UMotion objects and let UMotion take care of the rest, I think the fix might be very easy. 

Let me know what you think and thank you as always Peter :) 

Answer

Thank you very much for your detailed description (in your answer below).

So if I understood you correctly, you primarily need this in order to copy IK handle's world space positions around. You can already do this:

  1. Select the bone/transform of which you want to copy the world space position.
  2. Select the move tool and set pivot to global.
  3. Click on the menu button in the upper right corner of the move tool assistant and select "Copy Position".
    This copies the world space position.


    PS: Via the preferences menu of UMotion you can even assign a shortcut to this.

  4. Move the frame cursor to the desired position and/or select the destination bone/transform and "Paste Position" (via the tool assistant menu again).

Limitation: Only works with one transform at a time (having multiple transforms selected copies the center position).

I can offer setting the world space position/rotation via the UMotion API in the future. I've put an entry on my "extending API" todo list.

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

Best regards,
Peter