Not reproducible

Click and drag keyframe not working

Satchmoe77 2 years ago updated by Peter - Soxware Developer 1 year ago 3

I've saved a "Umotion" layout in Unity for animation editing purposes.  I've noticed that I cannot click and drag keys to different frames when I load the layout.  To fix this, I always have to close out the Clip Editor window, reopen it and reload the project.  It doesn't work just by reloading a project, the Clip Editor window has to be closed out and reopened.

Answered

Add a shortcut to close the current project and load the last closed project

RichardL 2 years ago updated by Peter - Soxware Developer 2 years ago 2

Would it be possible to implement a shortcut that can close the current project?

And a shortcut to load the most recent closed project

Answer

Hi Richard,

thank you very much for your feature request.


I've added this to my to-do list for the next update. If you know a little bit about Unity C# scripting, you can already implement something like this yourself using the UMotion API. Just write a script that triggers ClipEditor.CloseProject() or ClipEditor.LoadProject() when a Unity "[MenuItem()]" is triggered by the shortcut you've assigned to "[MenuItem()]".


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

Best regards,
Peter

Answered

Is there no way to convert a humanoid animation to a generic with a custom rig/hierarchy?

Anonymous 2 years ago updated 2 years ago 4

I have a custom rig. in Unity I can import it as humanoid, configure the avatar and have humanoid animations work. So I know the animation can work on the rig.


However, if I import the custom rig as generic and convert a humanoid animation to generic, it won't work because the bone hierarchy is doesn't match. If I modify the generic animation paths to match my custom rig, it animates, but is all distorted.


What are the issues preventing this from being possible? If Unity can map this custom rig to humanoid and play humanoid animations on it, then why can't it go the other way? I'm assuming it has something to do with the muscle/twist bones? Is there no way to configure a generic avatar?


Thanks

Answer

Hi,
thank you very much for your support request.

For applying a generic animation to a generic character, the rig hierarchy of the rig in the animation and the rig hierarchy of the rig of your character needs to be a perfect fit (exact same naming/path for each bone, same initial rotation and initial position etc.).

With UMotion you can convert humanoid animations correctly to generic if your character is compatible with humanoid. Maybe you haven't converted the animation correctly? Here is how it should work (you can use any of the two methods):


  1. Create a humanoid UMotion project for your humanoid version of your character. Import the humanoid animation into UMotion. Then export the animation into your character's FBX file using the FBX export feature of UMotion. Close UMotion and configure your character as generic. The animation inside of your character's FBX file is now also generic and works with your character.
  2. Or by using this method: https://www.soxware.com/umotion-manual/ImportExport.html#ConversionHumanoidGeneric

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

Best regards,
Peter

Answered

Unable to animate a generic object (Quest 2 controllers)

airoll 2 years ago updated by giantkiller 2 years ago 2

Hello I am trying to animate a generic object, which are virtual reality controllers for the Oculus Quest 2.  The model has been rigged already but I am having problems trying to animate them with UMotion.

My goal is to develop simple animations such as button presses.  I have imported the fbx file into Unity, and set the rig settings as below.

Image 1233

I can verify that the rig transforms are positioned correctly (e.g. the x transform is positioned correctly in the image below).

Image 1234



However, when I try to create a new UMotion Project (Generic), all these squares appear for each bone of the rig, and they are not positioned correctly (e.g. see how the x transform is displaced from the x button).

Image 1235

Furthermore, when I try to modify the position of these bones (or rotation or scale), nothing happens at all.  I have verified that I can create the animation I'm looking for in Blender by modifying the position of these bones, but it will not work in UMotion.  Can you help me identify what I'm doing wrong?

Here's the link to the FBX: Quest2LeftController.fbx

Answer

Hi,
thank you very much for your support request.

The issue is the "Strip Bones" checkmark you have set in the import setting of your FBX. This removes the bones that actually animate the buttons (not sure why they use a skinned mesh for this purpose instead of separate objects, one for each button).

The transforms you tried to move are called e.g. "grip_end" and are just some empty transforms without any mesh (probably to define an end point for a hand animation or something?).

When configured correctly, your model should look something like this:

Select an end joint to move/animate the actual buttons.


You can improve the visualization of the bones by going into config mode and under "Properties" set "Parent Link" to hidden. You can also hide the unnecessary "..._end" transforms by setting their "Visibility" to "Lock".

More information about bone styling: https://www.soxware.com/umotion-manual/Configuration.html#Properties

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

Best regards,
Peter

Answered

Does Umotion allow turning a animation into a a Umotion then then Exporting with my character riggged?

Anonymous 2 years ago updated 2 years ago 2

Does Umotion allow turning a animation into a a Umotion then then Exporting with my character rigged?

For example, 
If I purchase a animation from the Unity Asset store and then connect my character to the rig. Can I export the FBX and animation using UMotion? 

Answer

Hi,
thank you very much for your support request.

Yes, the workflow would be like this:

  1. Create a new UMotion project.
  2. Assign your character to the UMotion Pose Editor
  3. Import your animation. Please note that if the animation wasn't made specifically for your character, both your character and your animation need to be of type humanoid in order to make use of Unity's animation re-targeting.
  4. Export your animation using UMotion's FBX exporter. Select your character's *.fbx file (or a duplication of it) as destination file. This is going to write the animation into the character's FBX resulting in a file that contains the rig and mesh of your character plus the desired animation. You can switch that FBX to generic or even use the FBX in other software like Maya etc.

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

Best regards,
Peter

Answered

I'll make sure every animator using Unity will have UMotion under their toolbelt if you add these things Peter

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

Gonna hit all social media with feature videos and tutorials

These are primarily tiny workflow features and QOL improvements

Let's get this out of the way first:

"Q" should be the default for "Select" the way "W, E and R" enable the other ones. This shortcut is heavily used because frequently the manipulator tool will be in the way of selecting things. We always keep a finger on "Q".

Image 1220


It would also be nice to be able to save your preferences to a file.

These are the impovements, some of them I've mentioned before:

  • Filter to show selected objects only 
  • Select keyframes under slider of selected objects
  • Skip to Next/Previous keyframe of selected object
  • "Set FK to IK" Bake Start/End

I'll give detailed explanations with screenshots tomorrow or soon

Answered

How to zero properties in bulk, and other QoL requests

Nightkin 2 years ago updated 2 years ago 3

Hello!

I am in the process of creating facial expressions for my DAZ character. Each expression is an animation placed in an Additive layer of the character's animator (not an additive layer of UMotion, just to be clear), which means that all animations need a first frame with all the used blendshapes set to 0, before the other frames in the animation animate those blendshapes.

Problem is, I have nearly 300 blendshapes and I'm adding more. They are essentially shape morphs, expression morphs, correction morphs, detail morphs and pressure morphs and yes, I need them all. An expression animation typically uses 10-20 blendshapes (lips, eyes, jaw, nose etc) so all of them need to be set to 0 in the first frame if I want the additive layer to do its job correctly since the first frame seems to serve as the "offset" for all the subsequent frames in the animation.

But only those blendshapes, and no other! Otherwise, the character's other blendshapes are overwritten by this animation even though it is supposed to be additive. Don't ask me why.

For example, my female character's glutes contract when she walks. If I zeroed all the properties (blendshapes and bones) in the first frame of my expression animations, there would be a conflict, the glutes would reset and it would look bad. So I need to zero only the blendshapes I use in my expressions, and not the glutes. This means I have to carefully select the appropriate blendshapes in the clip editor every time I want to make an animation, which is a very error-prone process.

In UMotion Pro, I would like to simply copy-paste the keys from one of the existing keyframes to the first frame, and to click on something to zero those pasted keys. I have looked pretty much everywhere and did not find such an option, but it would be very handy! Right now I have to manually reset those keys in the pose editor by dragging all the sliders to 0 one by one. It's tedious and time-consuming.

My second request would be to be able to export animations that have only one keyframe. Right now, when exporting an animation, UMotion refuses if it doesn't have at least two keyframes, but would it be possible to export it anyway by automatically copying (at export time) the last existing keyframe to the last frame of the animation? After all, we already specify a duration for the animation in the clip editor, I believe it is 1s by default. It would be great to not have to do a copy-paste of the keyframes ourselves so we don't risk inconsistency and unwanted movements when changing one key and forgetting to copy it to the end of the animation.

Likewise, it would be great if we could specify somewhere that we want the animation to loop, without having to manually copy the first keyframe to the last frame (like we have to do in Blender too, it's not just UMotion). Once again for the sake of keeping things consistent and avoiding copying data.

Another request, since I'm working with blendshapes. I noticed that it is difficult to enter a number for one blendshape in the pose editor's channels part then Tab to the next. Usually, that focuses on the "config mode" button and hides the "pose mode" panel, which is confusing. It does not do this by shift-tabbing (going backwards) so for the sake of consistency, it would be great if we could Tab from one property to the next.


Oh, and another request! Could we have the ability to set a blendshape to a negative number or to a number beyond 100, please? Unity allows this but apparently not UMotion. Sometimes it is very handy to use a blendshape with a value that is outside its envelope. For example, DAZ has a "cheek puff" blendshape but not a "cheek sink", which could be simulated with a negative "cheek puff" value.

Thanks and keep up the good work, UMotion is a tool I can't work without, and a tool I know I can rely on.

Answer

Hi,
thank you very much for your support request.


In UMotion Pro, I would like to simply copy-paste the keys from one of the existing keyframes to the first frame, and to click on something to zero those pasted keys. I have looked pretty much everywhere and did not find such an option, but it would be very handy!

You can do this in the curves view in the clip editor. With all your keys selected, switch into "Curves" view. Then right click on one of the keys and click on "Edit Keys". Then enter 0 to the value field, hit enter and all keys are going to be set to 0.

My second request would be to be able to export animations that have only one keyframe. Right now, when exporting an animation, UMotion refuses if it doesn't have at least two keyframes, but would it be possible to export it anyway by automatically copying (at export time) the last existing keyframe to the last frame of the animation? After all, we already specify a duration for the animation in the clip editor, I believe it is 1s by default. It would be great to not have to do a copy-paste of the keyframes ourselves so we don't risk inconsistency and unwanted movements when changing one key and forgetting to copy it to the end of the animation.

You could use the UMotion API to add a button to UMotion that does that for you. The UMotion API might also be handy for other situations of your very specific problem. Docs: https://www.soxware.com/umotion-manual/UMotionAPI.html

Another request, since I'm working with blendshapes. I noticed that it is difficult to enter a number for one blendshape in the pose editor's channels part then Tab to the next. Usually, that focuses on the "config mode" button and hides the "pose mode" panel, which is confusing. It does not do this by shift-tabbing (going backwards) so for the sake of consistency, it would be great if we could Tab from one property to the next.

Tab is the shortcut for switching between pose mode and config mode. If you have a text field selected, it correctly selects the next text field. So chances are, you might have deselected the text field prio to pressing tab (e.g. by pressing enter). You can adjust the shortcuts in the "Edit --> Preferences" menu of the clip editor in case you want to disable the tab shortcut.

Oh, and another request! Could we have the ability to set a blendshape to a negative number or to a number beyond 100, please? Unity allows this but apparently not UMotion. Sometimes it is very handy to use a blendshape with a value that is outside its envelope. For example, DAZ has a "cheek puff" blendshape but not a "cheek sink", which could be simulated with a negative "cheek puff" value.

That is possible if you change the min/max limits of the blend shape's custom property constraint in config mode.


PS: It looks like Mecanim isn't the most optimal solution to your problem. Instead of using Mecanim/Animator, you could also write your own little animation state machine code that updates the blend shape values in a way that it's more suitable for your needs. You could still use *.anim files as an input for your code but then use your own math to combine the poses and write the end results to the blend shapes.

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


Best regards,
Peter

Fixed

Animating Texture offset

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

Hi, I have a computer screen with a texture on it with different states of the screen. In umotion editor I added a custom property Main TEX ST x and y, to animate the offset of the texture. In Umotion editor the animation looks like it should but when I export it, the property for animating the screen switches from offset to tilling. Any easy fix for this?


Here is the animation in Umotion editor

Image 1212

Here is the exported animation

Image 1213

Here you can see the animated property of the main texture after export

Image 1214

Answered

A way to pre-filter GameObjects by name to reduce need for unique GameObject names.

Schema Rob 2 years ago updated by Peter - Soxware Developer 2 years ago 1

Hello,

I was wondering if there is way to exclude certain Game Objects from the configuration when dragging an Object into the UMotion Pose Editor. My Main Game object has different things like clothes, multiple versions of hair, brows, etc on it. In this example, the hair variants all have child objects with the name names I cannot change (the name is generated by unity's new hair system).

Being able to pre-filter a hierarchy on import would also make it cleaner and more consistent for me. 

Answer

Hi Rob,

thank you very much for your support request.

You can exclude bones/transforms or some of their properties (position/rotation/scale ...) from your UMotion project via config mode. Click on the config mode tab in the pose editor, then select a bone/transform you want to adjust. Under "Properties" you can set the "Visibility" to "Lock" to exclude the entire bone/transform. Use the "Properties" enum field to only exclude certain properties.

Link to related page in the manual: https://www.soxware.com/umotion-manual/Configuration.html#Properties

There is currently no other way to filter/exclude bones/transforms in UMotion.

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

Best regards,
Peter

Answered

Animating generic objects that have no humanoid bone in their parent hierarchy is not supported

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

I'm not able to show the bones of an object that the player should be using, a sword. When I click on config mode, on the sword object of the rig hierachy that message appears "Animating generic objects that have no humanoid bone in their parent hierarchy is not supported"

Please help, I'm new to Umotion

Answer

Hi,
thank you very much for your support request.

Make sure that the sword is at least a child of the hips bone (or deeper down the hierarchy). To adjust the hierarchy, make sure that you have first removed the character from UMotion (by clicking the "Clear" button in the pose editor). Either create a new Umotion project then or if you want to continue using the existing project, click on the "Cleanup" button in config mode after re-assigning your character to UMotion.

Furthermore iIn order to make generic object's animate-able in UMotion, select the generic object in config mode's rig hierarhcy and under "Properties" set "Visibility" to "Show".

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

Best regards,
Peter