Answered

Looking for a way to offset position of multiple keys

unwargame 2 years ago updated by Peter - Soxware Developer 2 years ago 1

Hi,
I need to offset hand positions of multiple keys (ex. handIK +0.1 of global x position from frame 10~20).
I can do this by clicking every key and clicking the property, typing the value in the Move Tool and repeat.
This taking a long time (I have multiple animations I need to offset) and I feel like there's got to be a way to automate this.
Is there any way to apply offset to multiple keys?

Image 1027

Answer

Hi,
thank you very much for your support request.

Yes, what you're looking for is called an "additive layer".

In this video tutorial, an additive animation layer is used to correct the hand IK targets (relevant part starts at 1:54): 

The manual page explaining the layers UI: https://www.soxware.com/umotion-manual/Layers.html

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

Best regards,
Peter

Answered

Missing animations in Clip editor

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

Hi, 
So I opened my project to continue working on a character and then I noticed that 2 of my animations are empty, even though I finished them the previous day. I tried the backup files but no luck. Any ideas what could have happened and where things  went wrong?

Answer

Hi,
thank you very much for your support request.


Have you forcefully closed Unity or shutdown your PC without closing and saving in Unity first? Or maybe clicked "no" when Unity asked you to save your changes when you closed Unity? In these cases, changes in the UMotion project file (*.asset) are not written to disk by Unity and are thus not saved.

The backup files are a 1:1 copy of the current UMotion project state created at the time interval set in the UMotion preferences. If your animation existed at the time a backup was created, it should also be in the backup. What exactly happens when you try to load the backup file?

If you want you can send me your project file (and maybe also the backup files) via the email support form and I can take a quick look.

Best regards,
Peter


Answered

Transfer objects between rigs

kingtom14 2 years ago updated by Peter - Soxware Developer 2 years ago 1

I have two rigs, and I want Human 1 to give Human 2 an object. Now that object is a child of Human 1, how can I transfer it to Human 2, so it can have a parent from Human 2?

Answer

Hi,
thank you very much for your support request.

If you want to do this in one single animation without any scripting, the only option is to make both characters "generic". Add them below one parent empty GameObject and add an animator to that GameObject. Then you can control both characters and the holding object from a single animation. This would be a good approach if you need this in a cut-scene, but wouldn't be suitable for an in-game mechanic.


If this is not an option for you, then things get a bit more complicated. This would require a mix of scripting and pre-made animations maybe even runtime IK on top of it:


  1. You create a "giving object" animation and a "receiving object" animation in UMotion (just the arm movement).
  2. Now create a script that plays the "giving object" animation on human A and the "receiving object" animation on human B at the same time.
    Use UMotion to place an animation event in the "giving object" animation that calls a scrit method in the right moment that uses transform.SetParent() to change the parent of the item from human A's hand to human B's hand. This would teleport the item from one human to the other.
  3. If you want a complex but more realistic behavior, where the hands actually meet no matter how the humans stand relative to each other, you would need to use runtime IK (e.g. Unity's animation rigging or FinalIK from the asset store). Unless this is THE core mechanic in your game, I wouldn't go so far though.

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

Best regards,
Peter

Answered

I see that the new API also works for IK handles, but how do we know if we have a bone selected or an IK handle?

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

I see that the new API also works for IK handles, but how do we know if we have a bone selected or an IK handle?

Answered

Edit clip settings for all clips

Anonymous 2 years ago updated by Peter - Soxware Developer 2 years ago 1

Is there a way to edit clip export settings, specifically the Root Motion(experimental) checkboxes for all clips instead of going one by one?

Answer

Hi,
thank you very much for your support request.

Unfortunately this is currently not possible.

As a workaround, you could edit the project file directly with a text editor:

  1. Close the UMotion project (File --> Close Project in the clip editor)
  2. In Unity click on File --> Save Project.
  3. Backup your UMotion project file (*.asset).
  4. Open the *.asset file with a text editor that's capable of editing huge text files.
  5. Scroll to the end of the file (or use the search function to search for the specific strings):
  6. Change the "valueInternal" to 1 to enable the checkbox on a corresponding setting.
  7. Save the file after you made the changes.
  8. Open the project file with UMotion again and check your changes.

I hope this helps. Let me know in case you have any follow-up questions.


Beste regards,
Peter

Answered

New API misses 2 crucial things

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

Here are 2 requests:

  • Select Bone & Select Hierarchy (So we only have to select the hand to get all the fingers for example)
  • GetTotalKeyframes (the total amount of keyframes of a clip, good for a loop & automation)
Answer

Thanks for the clarification. I've added this to my ideas for the future list and might add that in a future UMotion update.

Best regards,
Peter

Answered

Can't load old animation files (1.28 - 1.26)

eetu 2 years ago updated by Peter - Soxware Developer 2 years ago 5

I updated Umotion to 1.28 and now I can no longer use 1.26 version files.

Answer

This sounds like an issue with the Unity import pipeline / the importing procedure with Blender. Importing stuff can be challenging as there are a lot of different settings involved especially when working with "humanoid".

I'm rather sure that this is the root cause of the issue, as there have been no changes in UMotion's code regarding animation import that would explain a different behavior between V1.26 and V1.28.

Best regards,
Peter

Answered

Hi, the new API looks great, can you please write us a copy pose script to show us an elaborate example?

Anonymous 2 years ago updated by Peter - Soxware Developer 2 years ago 1

It would be nice to see this in action. It takes quite a while going through the trial and error and it would help a lot to see some actual functionality carried out by the new API in conjunction with the pose/clip editors.

Answer

Hi,

thank you very much for your support request.

With PoseEditor.GetSelectedTransforms() you can get access to the current selection. Just iterate over the transforms and store the local position, rotation and/or scale values.

List<transform> transformsList = new List<transform>();
PoseEditor.GetSelectedTransforms(transformsList);

List<Quaternion> copiedLocalRotations = new List<Quaternion>();
foreach (Transform transform in transformsList)
{
   copiedLocalRotations.Add(transform.localRotation);
}


To apply the saved pose use PoseEditor.TrySetFkLocalPosition/Rotation/Scale().

for (int index = 0; index < transformsList.Count; index++)
{
   PoseEditor.TrySetFkLocalRotation(transformsList[index], copiedLocalRotations[index], "Paste Pose", false);
}


A complete documentation of the UMotion API can be found here: https://www.soxware.com/umotion-manual/UMotionAPI.html

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


Best regards,
Peter

Answered

how to combine animations using script API

mb1 2 years ago updated by Peter - Soxware Developer 2 years ago 1

I need to concatenate multiple clips together and export them, can this be done using UMotion Pro API?

Answer

Hi,

thank you very much for your support request.

Similar to your other request about scaling the timing of the animation, this would require having quite a few more things exposed by the clip editor API. At the moment, the necessary things are not yet available from the clip editor API but I might add that in future versions.

You could concatenate multiple clips using Unity's regular editor API though (combine several animation clips into one *.anim file).

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

Best regards,
Peter

Answered

how to change animation speed from script

mb1 2 years ago updated by Peter - Soxware Developer 2 years ago 1

Is there a way for me to change the speed of animation (specifically rescaling the keys in time) using the UMotion API?

Answer

Hi,
thank you very much for your support request.

Unfortunately, this is currently not possible yet. I've put this on my "ideas for the future" list to consider this in a future update. 

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

Best regards,

Peter