Answered

How can I use Umotion with Final-IK?

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

How do I use Umotion with Final-IK?

Other people have asked this, but the answer was to use "UMotion callback system (see manual at chapter "Pose Editor / Options" headline "Extending UMotion")."

The documentation doesn't help at all.

How do I set it up?

Can you please make a video tutorial to show how to use the better IK system from Final-IK with the animation editor from Umotion?

Maybe I'm stupid, but the documentation just says: "C# Example:
private void MyUMotionCallback() { Debug.Log("Hello World!"); }"

Which function do I call? When? How?

What code do I write? So many questions.

Maybe it is absolutely trivial to you, but I don't even know how to start.

Could you make a tutorial about it? Just like 5 minutes video how to link both systems together.

Answer

Hi,
thank you very much for your support request.


The function name that should be used for Final IK is mentioned in the manual chapter you've already mentioned at the very bottom:

Integrating Final IK
If you want to use Final IK components in your animation (and maybe bake their result into the exported animation clip to reduce CPU load), use "UpdateSolver" as callback name. This method is defined by all Final IK solver components and executes the IK solver calculations.

That means that "UpdateSolver" is the name you should use:

You can use "Bake Into Exported Clip" to bake the results of Final IK into the final animation (that way you can remove the Final IK component from your model and save some CPU performance).

Furthermore, you need to define empty transforms (when your character is not assigned to UMotion) and use those as IK end effectors in Final IK:

Then assign the character to UMotion and configure the empty transform to be visualized to your desire:

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

Best regards,
Peter

Answered

"Root Motion Node" setting supported by Unity, not by UMotion?

FuseBoxGames 4 years ago updated by Arlorean 2 years ago 6

Hi,

we have several animations where the artist authored the root motion as the movement of a specific transform, setup as the parent of the entire rig. This lets us define arbitrary position/rotation for the model (including its hips node), but have independant control of the actual gameobject's transform. This capability is essential for our control scheme, as it allows for example a spinning animation while keeping the object's forward direction constant, which is in turn used to interpret and move the player avatar.

The way this works in Unity is by specifying the "Root Motion Node" parameter of the Animation importer to the transform manipulated by our artist. Unity will correctly generate root motion curves from this transform.

We've recently decided to by UMotion so other team members can make small corrections to the anims without burdening the artist. But I can't find any way to replicate this behaviour? The manual says that humanoid rigs are constrained to generating root motion from the hips, which fits with the behaviour I'm seeing from the UMotion clip editor. However, it says that this is a limitation caused by the Unity engine, which seems false - unless I've very badly misunderstood what we've been doing all this time, or it's a feature that's been removed in later versions (we're frozen on 2019.1.8f1).

Here are two screenshots for our current setup:

- rig: http://u.cubeupload.com/tiktiktock/RootMotionRig.png

- importer: http://u.cubeupload.com/tiktiktock/RootMotionSettings.png

How can we keep/edit our root motion curves when using UMotion? This is completely negating the benefits we expected from its integration into our workflow. Is there something obvious we missed that would resolve this?

[EDIT] Forgot to mention, this is of course for a Humanoid rig. Converting to a Generic rig would bring its own set of problems, especially as we use Unity's retargeting via avatars quite heavily.

Answer

Hi,

thank you very much for your support request.


This is indeed a limitation of the current way how UMotion allows you to author root motion for humanoid characters.


Here is a different workflow that might work for you:

  1. A more direct way to edit your animation is to temporarily changing it to generic (just for the purpose of editing). You could even duplicate the *.fbx and set the duplicated version to generic. That way you don't loose your humanoid import settings.
  2. (Optional) If the fbx does not include the character's mesh, you also need to duplicate the character's fbx and set that one to generic too.
  3. Now you can use a generic UMotion project to edit all transforms as you wish.
  4. Once you're done, export your changes back into the animation's source (humanoid) fbx file (set "Write Mode" to "Update Existing File" in the UMotion export settings).

This is the most direct way you can edit animations in UMotion (the humanoid workflow always has 2 re-targeting steps in between).

    Please let me know if this works for you.


    Best regards,
    Peter

    Answered

    Export only Range of Animation Clip

    Swan 4 years ago updated 3 years ago 7

    Dear Peter,

    first of all: I just LOVE UMotion - it's incredibly valuable for my VR workflow!

    Now I'd like to only export a certain range of an Animation Clip. How would I go about this?

    Thanks in advance and have a good day,

    Felix from Berlin

    Answer

    Hi,
    thank you very much for your support request and for your nice words.

    You can use the crop tool, to extract only the desired part of your animation clip:

    The export feature is always exporting the animation clip in it's current length (it's not possible to let the exporter export only a part of an animation clip). However, if you export to *.fbx, you can use Unity's animation import settings (shown in the Inspector) to define multiple animation clips with different start/end frames (thus split a longer animation into several smaller ones). Please check out the FAQ in the manual when using the FBX export feature, there are some common pitfalls.

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

    Best regards,
    Peter

    Answered

    Warning on clip import: Hand IK curves not found. Hand IK not applied.

    PaleHorse 4 years ago updated by Peter - Soxware Developer 4 years ago 1

    The IK setup gave no errors or warning prior to importing a clip. What is the fix for this?

    Answer

    Hi,
    thank you very much for your support request.

    This only means that the animation you are trying to import has no "Humanoid Animator Hand IK" curves. This has nothing to do with the IK you've setup in UMotion. Instead, the IK mentioned in this warning is part of Unity's animation re-targeting system known as "humanoid". For more information about this humanoid IK feature, check out the following blog post (headline "Original hands and feet position"): https://blogs.unity3d.com/2014/05/26/mecanim-humanoids/

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

    Best regards,
    Peter

    Answered

    Editing the hierachy of a GameObject

    MrX 4 years ago updated 3 days ago 6

    I get the following error.

    Editing the hierachy of a GameObject that is currently used as UMotion preview object is not allowed. The GameObject is going to be removed as UMotion preview Object.

    https://i.imgur.com/puy04Dm.png

    When trying to add my player prefab from the scene to the PoseEditor. 

    Do you have any idea what might be causing this?

    Answer

    Hi,
    thank you very much for your support request.

    I guess you've created a prefab of your player character while it was assigned to UMotion. That means that the prefab still has the "UMotion Lock" component in it.


    To fix this, either open the prefab and remove the "UMotion Lock" component manually.

    Or if you have the prefab in your scene, click on "Clear" in the pose editor and then save all current changes of the prefab instance to the prefab (UMotion removed the component automatically for you in that case).

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

    Best regards,

    Peter

    Under review

    Humanoid hip bone break when i create the configuration rig

    ramiro142694 4 years ago updated by Peter - Soxware Developer 4 years ago 1

    Hey! Thank you for your time. I hope you can help me with this problem. The problem is that when i create the Umotion Humanoid project and then select the model and create configuration the hips break like that. In the avatar tab the model works find and i imported to mixamo too and it works fine too. 

    Image 458

    Under review

    Bug when importing animation clip

    Anonymous 4 years ago updated 4 years ago 2

    Hey guys, I do enjoy Umotion but a bug i keep coming across using Umotion Pro in 2019.4Final is that sometimes if it doesn't like a clip import, it just removes it from your project altogether lol. Any ideas?

    Answered

    Animationclip selection window could be way handier

    Anonymous 4 years ago updated 4 years ago 2

    Image 456

    I am talking about the window that pops up when you click the name of your current Animation clip, when you want to switch to another one.

    When I am working with a big project with say 80+ animations the list gets very long and unhandy. When I have to do a pass on all of the clips to add animation events for example or just change a small thing in every animation the process of switching to the right clip is very slow.

    Image 457

    I think part of the reason is that this window doesn't have a scroll bar and the scroll wheel also doesn't work for me (at least on windows, on mac the scroll seems to work). The only way to scroll further down is to click down on the tiny arrow and the list slowly advances. When working down a long list from top to bottom this process becomes even slower because when opening the window the list doesn't focus on the currently open animation clip but always goes back to the top.

    So a reliable way to scroll with the scroll wheel and a scroll bar plus remembering the last selected position in the list would be a great improvement for larger projects I think. I hope I explained it well enough!

    Keep up the great work and thank you for this plugin!

    Answer

    Hi,
    thank you very much for sharing your thoughts. I really appreciate that.

    The list is an OS dependent implementation made by Unity. Thus I don't have access to modify/improve the list's functionality like you requested (it's implemented in the C++ part of Unity). I could implement my own window with custom GUI instead, but that requires quite some effort (and might come in a future update but no ETA yet).


    What you can do as a workaround is to split your single project into multiple smaller projects (e.g. á 20 clips per project). That is also improving editing performance a bit (depending on the size of your animation clips). You can do this by duplicating your project file several times and then remove the animations you don't want to have in that "sub project". Group them in a meaningful way (e.g. all walking variations in one project, all shooting animations in another,...).

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

    Best regards,
    Peter

    Answered

    Animation Driver And Locking Rotation

    Dai 4 years ago updated 4 years ago 2

    Hi there! As a blender user, I love the possibilites of UMotion. I do have a few questions

    1) How would I use Custom Properties to control the blend shapes of a mesh

    2) Is there a way to lock the rotation of my character's head so that way, no matter how much the spine is rotated, it keep facing the direction it's looking at?

    Answer

    Hi Dai,

    thank you very much for your support request and for your nice words.


    1) How would I use Custom Properties to control the blend shapes of a mesh

    If you assign a model that has blend shapes to UMotion for the first time, UMotion is going to ask you if you want it to automatically generate the custom properties for the blend shapes for you:


    Of course you can also do this manually. Just create a custom property constraint on any bone/transform you like. Then set it to "Component Property" mode, select the GameObject that contains the (skinned) mesh renderer component. Then select the blend shape property:

    Constrain the input if desired:

    2) Is there a way to lock the rotation of my character's head so that way, no matter how much the spine is rotated, it keep facing the direction it's looking at?

    There is no built in "Look-At" constraint, but you can extend UMotion with your own. By using UMotion's callback system, you can let UMotion execute your custom scripts every time UMotion samples a new pose for your character. Please check out the manual at "Pose Editor / Options / Extending UMotion".


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

    Best regards,
    Peter

    Answered

    Parenting to root doesn't match tutorial.

    David Banks 4 years ago updated by Peter - Soxware Developer 4 years ago 3

    IK Tutorial.webm

    I'm following the tutorial at 

    Youtube video

    However even though my custom IK handle is parented to the root object it still moves with the body.

    What am I missing?

    Answer

    Hi,

    sorry for overseeing your attached video in the first place. That explains your situation very well.

    When you're using the IK setup wizard for setting up IK, it automatically set's it up with respect to IK pinning. That means the IK targets by default move with the rig, if you then select the IK target and enable the "IK Pinned" checkbox in the "Channels" view, the IK target is pinned to world space:


    If you setup your IK targets manually and you want them to always be world locked, you shouldn't have chosen "Root" as parent bone (which is counter intuitively the bone used as "hips" in the robot kyle humanoid setup). As of instead you need to choose "Robot Kyle" which really is the root of the character (you need to remove the Child-Of constraint/disable IK Pinning before doing this).


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


    Best regards,

    Peter