Answered

Is it possible to reduce variation in entire curves?

Anonymous 5 years ago updated 5 years ago 2

I'm relatively new to this, but I'm not asking for a tutorial!  I'm just not familiar enough with animating to be sure by reading UMotion's feature list.  To explain my needs, basically, I have a nice mocapped idle animation that I need to use in a VR game that by nature immobilizes the head/hands/feet of the character.  That means that the animation's movements make the body look a little jerky, since those parts don't follow along.


So, what I'm hoping to do is proportionally flatten the animation curves, to normalize them and reduce those movements.


Is this possible with UMotion Community or Pro?  I don't need a long explanation, since there's surely documentation to help with that part.  But I'm wary of digging through a tool I don't fully understand looking for a solution that might not exist.


Thanks so much!

Answer

Hi,

thank you very much for your support request.

From a game design perspective, I would recommend to completely decouple the VR camera (VR head) from the animated head bone so that the variations of the idle animation don't add artificial movement to the VR camera (this is going to make players nauseous). Jerky camera movement can make even the most experienced VR users nauseous (see climbing physics of "Boneworks").

In UMotion, you could scale down the curves to reduce the variations (make sure that your rotation curves are in euler rotation mode for this to work). Just select all keys of an animation curve, then use the box tool (i.e. the blue bar appearing next to the selected keys) to scale down the curve.

You are going to need UMotion Pro to import an existing animation.

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

Best regards,
Peter

Not a bug

Extra key frames added before the keyed frame for IK Feet and Hands. Bug?

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

Image 136

Is this a bug? I can ignore it but I would prefer if this was not there, makes the dopesheet look messier

Answer

Hi,
thank you very much for your support request.

This keys are automatically created by the Child-Of constraint (which is used by the IK Rig by default). Please check out the following two video tutorials to learn more (it also explains the purpose of this keys):

If you don't need the IK Pinning feature, you can remove the Child-Of constraints from your IK rig. No additional keys are going to be created in that case.

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

Best regards,
Peter

Answered

Is it possible to apply joint corrective blendshapes automatically?

Anonymous 5 years ago updated 5 years ago 2

I.e. when elbow is rotated 0-90 degrees, a blendshape (correctivemorph_elbow) is applied 0-100 according the rotation of the elbow

In blender this is done through drivers and maya probably has something similar.

Answer

Hi,
thank you very much for your support request.

There is currently no way to build a custom property controller that drives multiple channels at the same time (in your case the rotation of the elbow and the blend shape weight). You could either adjust the blend shape manually according to the current rotation value or you could write your own driver script that does that for you.

For the scripting approach, add a new MonoBehaviour to one of the transforms of your GameObject that looks something like that:


public class ElbowMorphDriver : MonoBehaviour

{

   public float InputValue = 0f; // Access this property via a "Custom Property" constraint from UMotion

   [SerializeField]private Transform ElbowJoint;

   [SerializeField]private SkinnedMeshRenderer BlendShapeSmr;

 

   // This method is going to be called every time UMotion re-calculates the current pose.

   public void UMotionCallback() // Let UMotion call this method (enter callback name at Pose Editor --> Options -->

                                                   // Extending UMotion --> Callback Name; check out manual by clicking on the black info button)

   {

      // According to the InputValue, set elbow joint rotation and blend shape weight

   }

}


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

Best regards,
Peter

Answered

Reference pose, bind pose and humanoid avatar

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

How exactly does the reference pose, bind pose and humanoid avatar interact (humanoid project)?

I definitely get different types of output depending on - for example - when I export 'update fbx' with an existing skeleton avatar and bindpose that matches the reference pose.

Answer

Hi,
thank you very much for your support request.

To learn more about the humanoid avatar, please read Unity's blog post about the humanoid animation system: https://blogs.unity3d.com/2014/05/26/mecanim-humanoids/

It basically defines the T-Pose for each character and uses that as the reference pose for all the animation re-targeting. The less accurate the T-Pose of your humanoid avatar is, the more re-targeting error you are going to get.

Bind-pose is the pose that your character had in the 3D modeling application when the bones have been bound to the mesh (skinning). The reference pose is just used internally by UMotion (it is used as initial pose when an empty animation clip is created or by the IK Setup wizard to correctly create the IK rig). When you're animation has keys for all bones, none of these poses is used when the animation is exported.

To get good results when working with Unity's humanoid system, make sure that your character's avatar is setup correctly. Try use some animations (that are working well) to test if everything re-targets nicely. Then use that character for creating/editing your animations (in UMotion). When exporting to *.FBX, always export using "Update Existing File" to write the animation into the *.FBX of your character. This ensures that Unity imports the animation with the correct humanoid avatar.

And always remember: If you don't need animation re-targeting, don't use "humanoid" (but "generic" instead). Re-targeting adds additional complexity and thus issues that you can simply avoid when using "generic" instead. "Generic" also has better performance (on the CPU).

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

Best regards,
Peter

Answered

Only avatars created by Unity model importer are supported UMotion

Xyth 5 years ago updated by Peter - Soxware Developer 3 years ago 19

I have a rigged, working Humanoid model in Unity 2019, its fully animated and works as expected, yet when i drag it onto the pose editor I get the above error message.  Any clues what I might need to change?  The model can be exported and imported into unity as is so i dont understand the error.

Answer

Hi,
thank you very much for your support request.

Please make sure that in the "Rig" tab of the import settings (shown in the Inspector when selecting your character's source file in the "Project Window"), you have set "Avatar Definition" to "Create from this model". This is to ensure that Unity generate's a humanoid avatar from your character.


UMotion requires a humanoid avatar that has been generated by Unity's model importer as it contains more information (needed to guarantee correct humanoid *.anim export) then a humanoid avatar generated via script.

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

Best regards,
Peter

Answered

Custom property Constrain issue

Faith 5 years ago updated by Peter - Soxware Developer 5 years ago 1

Image 134

I have a model, it has blendshapes, when trying to create an IK rig for it, I simply become locked out of unity. every time I get the error of the picture attached. stating that my blend shapes are already a custom constraint somewhere else and to fix it. I can't figure it out, any help would be appreciated. 

Answer

Hi,
thank you very much for your support request.

If you just started your UMotion Project, the easiest way would be to create a new one. Make sure that you only drag one character into the Pose Editor (per UMotion Project). Don't modify the hierarchy of your character's transforms afterwards.

If you need to fix your existing UMotion Project, try to delete the duplicated "custom properties". You can delete constraints in config mode by selecting the bone they have been assigned to and then under the "Constraints" tab, click on the "X" button.

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

Best regards,
Peter

Answered

Questions regarding FK/IK Rig Layer

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

Hi, I am having some real fun with your cool asset!
Would it be ok to ask a few questions:

See screenshot:

Image 132



I have converted the FK to IK, there are two colours of bones, light and darker grey. The light gey I can select but only have the option for rotation, the dark grey I cannot select at all, is there a way to select any bone?

What I am hoping to do to is position the spine bones (and the rest of the body moves with it) slightly down so it goes into a slight crouch pose while e.g. walking.
Should the rig layer be set to FK only (looks like I can then select any bone and position), but then the mesh does not move with it..?
Thanks in advance.

Answer

Hi,

thank you very much for your support request.

UMotion has two rig layers. The grey bones are on the Forward Kinematic (FK) rig layer. They can be selected and can only manipulated directly. Bones on a humanoid character can only be rotated (translation would mean that the bone would jump out of the joint, which is usually not preferred ^^).


The blue bones are on the Inverse Kinematics (IK) rig layer. These bones are driven by an IK constraint and can not be directly manipulated. To manipulate an IK bone you need to manipulate the IK Handle (the wired cube) or the IK Pole Target if existent.


To decide which rig layer the mesh should follow, use the "FK/IK Blend" channel (shown in the Channels view of each IK Target).


The quick start tutorial goes over this topic real quick, the IK video tutorial covers this topic in greater detail:



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

Best regards,
Peter

Working on fix

Tangents are not scaled when increasing FPS

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

Step 1: Import animation
Step 2: Increase FPS (from 30->60 for example)
Result: Stuttery animation

Problem: The original animation curve tangents are maintained. This means that the animation itself is not properly smoothed out.

Current solution: go through original curves and right click (Both Tangents->Clamped Auto).

This is not the case for umotion generated curves (for example IK curves, which are clamped auto by default).

Answered

Non humanoid characters

Michael 5 years ago updated 5 years ago 2

I'm making a game with a lot of non-humanoid characters. 4 legged robots, flying and wheeled vehicles for example. Assuming the models are rigged, would I be able to use this product to create and edit animations?

I know the description claims it works with generic models but all of the videos I've watched show manipulation of humanoid characters so I just wanted to be sure before I purchase. 

Answer

Hi,

thank you very much for your support request.

Yes you can animate any type of rigged model. If your model is not rigged, you can animate all the separate parts (i.e. all transforms you see in Unity's Hierarchy window).

Here is a video where I'm animating a gun that has no bones but is split into separate parts:

In this video tutorial UMotion is with 4 legged models (dog/cat):

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

Best regards,
Peter

Answered

Errors in Unity 2018.4.2.f1

Greg Acuna 5 years ago updated by anonymous 5 years ago 1

Getting the two following errors:


Assembly 'Assets/UMotionEditor/Plugins/Application/UMotionApplication.dll' will not be loaded due to errors:
Unable to resolve reference 'UMotionSourceApplication'. Is the assembly missing or incompatible with the current platform?
Reference validation can be disabled in the Plugin Inspector.

AND
Assembly 'Assets/UMotionEditor/Plugins/Editor/UMotionEditor.dll' will not be loaded due to errors:
Unable to resolve reference 'UMotionSourceApplication'. Is the assembly missing or incompatible with the current platform?
Reference validation can be disabled in the Plugin Inspector.
Unable to resolve reference 'UMotionSourceEditor'. Is the assembly missing or incompatible with the current platform?
Reference validation can be disabled in the Plugin Inspector.

Answer

Hi,
thank you very much for your support requests.

These errors are happening because in some cases Unity is validating *.dll referenes to script files before those script files finished compiling. They are false alerts and can be ignored.


If these errors annoy you, select the UMotion dlls and disable the "Validate References" checkbox in the Inspector. Then click "Apply".

upload_2019-12-23_9-7-31.png


The UMotion *.dlls can be found at:
"Assets/UMotionEditor/Plugins/Application"
"Assets/UMotionEditor/Plugins/Editor"

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

Best regards,
Peter