Answered

Create new humanoid animation programmatically from existing data

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

Hi Peter,

I am a bit confused with a task I have now and I wonder if i can achieve it through umotion: I have a load of skeleton data in text files. I can read it all in c# in unity but I am stuck on how to convert that into keyframes in your animation system. Is there a way I can set up keyframes programmatically?

Thank you!

Answer

Hi Andrew,
thank you very much for your support request.

Have you already checked the UMotion API: https://www.soxware.com/umotion-manual/UMotionAPI.html. The method TrySetFkLocalRotation(Transform transform, Quaternion localRotation, string undoMessage, bool createKey) might be exactly what you're looking for.


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

Best regards,
Peter

Answered

Hips, Sitting and standing.

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

When I try to set up the IK for Hips, my rig gets all messed up. Also when I try to do an adaptive layers, I cant check IK pinned for the feet.. Using an override layer and IK pinned for the feet, jacks the pose up and locks the feet to a different position. How can I set IK up for the hips so i can move the hips (Pelvis) bone up and down, rotate left and right and it moves accordantly. For example, if I move the hips down, it should bend the player at the knees. 


Please do not refer my to one of the outdated videos, Iv watched them all and they are terrible for a paid asset. please explain how to get what I am asking. Iv also search the questions here on the site, nothing with what im looking for.  

Answer

Hi,
thank you very much for your support request.


When I try to set up the IK for Hips, my rig gets all messed up

You do not need to setup IK for the hips for what you are trying to do. Here is how to achieve what you are trying to do:

  1. Create a UMotion project file of type humanoid or generic depending on what your character is configured as
  2. Assign your character to the UMotion Pose editor by dragging and dropping it from the Unity's hierarchy window to the according field in the UMotion Pose Editor
  3. Confirm the appearing dialogs
  4. Select "Config Mode" in the Pose Editor
  5. Click on "IK Setup Wizard"
  6. Confirm the orientation of the character by clicking OK
  7. If your character is humanoid, simply click "OK". All fields are correctly pre-filled. If you are using generic, you need to assign the correct bones for the missing fields under "human IK" (and then click OK).
  8. Click on "Pose Mode"
  9. Now select the IK handles of your feet and enable "IK Pinning" in the "Channels" view of the pose editor. Then also make sure to set "FK/IK Blend" to one (= IK). If you now select the hips and move them, feet stay at there position and knees are bent accordingly.
Please do not refer my to one of the outdated videos

All videos are up to date. You can find a great overview of all available video tutorials in the UMotion manual: https://www.soxware.com/umotion-manual/VideoTutorials.html

so when I try to do an adaptive layers, I cant check IK pinned for the feet

An additive layer means you use an existing animation in the base layer and add an offset on top of it (i.e. a mathematical addition). E.g. if a bone in the base layer has an angle of 10° and you create an offset of 5° in the additive layer, the end result is 15°.

It's mathematically not possible to "accumulate" IK Pinning.

Instead, simply enable IK Pinning in the base layer.


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


Best regards,
Peter

Answered

Editor laging when using umotion pro

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

I get this massive stutter lags when using Umotion pro. Also each time play my game from editor I get a ~20 sec loading screen with some prompt "running code in the unity.dll..." and i believe this is due to Umotion pro.

Is there any tips and tricks to avoid this? 

Answer

Hi Sam,
thank you very much for your support request.

Make sure you hide the UMotion Windows when you do not need UMotion. In that case, UMotion doesn't need to be reloaded with every assembly reload (e.g. when starting play mode). Also UMotion doesn't consume any resources when both UMotion windows are hidden.

The time UMotion takes for loading, depends on the PC you have and the size/number of key frames of the UMotion project you currently have loaded. 

Also make sure, that your on the latest UMotion version.


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

Best regards,
Peter

Not a bug

Curl error 28: Failed to connect to service.soxware.com port 443 after 21044 ms: Timed out

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

What is this bug in console log?

Thank you, great Umotion.

Answer

Hi,
thank you very much for your support request.


UMotion checks if there are any new notifications to show (e.g. if there are new updates available etc.) and that web request failed in your case most probably due to a problem with the internet connection (maybe some firewall or proxy is blocking something). This error message is purely informative. This isn't a bug and shouldn't have any negative impact on functionality.

You can disable notifications under Edit --> Preferences --> Settings in case the error message is annoying to you (and you're not able to fix the problem of your internet setup):


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

Best regards,
Peter

Answered

The IK setup wizard cannot be processed

yelu tong 2 years ago updated by Peter - Soxware Developer 2 years ago 4

When I try to use the IK setup wizard to create IK setting, it popped up a message said "The 'Human IK --> Right Hand' target bone has not enough parents". I am just new to UMotion, cannot understand what happened here. What should I do to resolve it?

Answer

Hi,
thank you very much for your support request.


The hand needs to have at least 3 parent bones in the hierarchy (usually the lower arm bone and upper arm bone and then a shoulder bone or a spine bone). This seems not to be the case for your character, that's why you get this error message.

If you need further assistance, please post a screenshot of the hierarchy of your right hand (as shown in the hierarchy window in UMotion's config mode). Also please show me a screenshot of your character and of the IK setup wizard.

Thank you very much.

Best regards,
Peter

Answered

Sync keeps resetting when changing projects

Miley Hollenberg 2 years ago updated by Peter - Soxware Developer 2 years ago 1

I'm currently working on some animations between 3 separate objects, one is an airhockey table with 2 paddles and a puck and the other two are two characters playing the game. I have 1 project for the airhockey table and 1 project for the two characters. I'm using the timeline in order to see all animations at the same time and more easily be able to make changes by enabling the sync on the timeline window.

My problem is that everytime I switch between the airhockey and characters project it forgets that I want to keep the animations synced to the timeline window. Is there a way to keep this active?

And separate question related to this, what is the recommended way of working with multiple objects and animations? I need my 3 objects to remain separate from each other so I can't combine them all into one project (the pose editor target is also separate for all 3 of them)

Answered

How to adjust root motion direction

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

Hello, new to Umotion and liking it. I saw that if you have a character facing the wrong direction at the start of the clip, you can change the offset in the Root Motion transform options before importing...but that seems inefficient to keep adjusting and reimporting to get the correct rotation at start. It seems there should be a way within Umotion but I can't seem to figure it out. If I add a layer and rotate the character, he is now facing the correct position but the hips root motion position is still moving as if he is still facing the original position. Any suggestions?

Answer

Hi,
thank you very much for your support request and I'm glad to hear that you like working with UMotion so far.


but that seems inefficient to keep adjusting and reimporting to get the correct rotation at start.

You can preview the result of your applied offset in the inspector of your animation. There is a small preview window at the bottom:

If you do not see the preview window, you have to click on this bar (at the bottom of the inspector) to make it visible:

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

Best regards,
Peter

Answered

Add and animate generic child object in already existing avatar fbx, object won't appear in final animation clip

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

I have created several voiceline animation clips of a character that I motion captured. The character's t-pose fbx in humanoid is being used as the avatar. During gameplay, the character transitions from an idle state to a specific animation triggered by certain events. However, as the project has progressed, the character now has a voiceline where they grab a letter from the player, look at it, and put it behind their back. The goal is to make the letter visible at the right moment, move along with the character's hand, and disappear when it is put behind their back.

To achieve this, I am using Umotion to match the letter's movement with the character's hand and set its scale to 0 when it should be invisible. The envelope has been added as a child object of the hand bone in the character's prefab.

While the animation is working fine, when I export the clip, I only have the humanoid rig animation, and the letter is missing. The letter is visible and functioning correctly in the Umotion project, but not in the exported clip.

Question: How can I include an animated gameobject in the exported clip of my character's voiceline animation?

Answer

Hi,
thank you very much for your support request.

Question: How can I include an animated gameobject in the exported clip of my character's voiceline animation?

If you have created key frames for your extra game object in UMotion, and then hit export, UMotion should include those extra keys into the exported animation. You can check this, by opening the exported *.anim file with Unity's built in Animation Window. On the left side of the Animation Window, you should see the transforms of your extra game object listed that you've created key frames for.

To further debug, why the animation isn't played correctly in your scene, first verify that you've assigned the correct animation to your character.
Then select your character while you have the Unity Animation window open. Are there any transforms displayed in yellow? That would mean that the animation clip can't find those transforms (this can happen if this transforms/game objects are at a different position at the time you animate via UMotion vs at the time you play your animation).

Best regards,
Peter

Not a bug

IK Rig won't conform to FK, causing problems

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

Image 1301

Answer

Hi,
thank you very much for your support request.

Due to the IK rig using an IK solver, it is more constrained in the number of ways it can be transformed/rotated. 
IK for example, does not allow rotating bones around their own axis. That's the difference seen in the screenshot you posted.

For the rotation around the bones own axis, the IK solver by default uses the rotation the bone has in the reference pose in config mode. If you want, you can switch the IK solver to use the rotation of the FK pose instead:

Image 1302

Find more information about that setting in the related page in the manual: https://www.soxware.com/umotion-manual/InverseKinematics.html

So to sum up, IK by it's nature is more constrained. FK on the other hand is completely free-form and allows any possible rotation. It's in the nature of FK and IK to not be 100% equal. There is usually no practical reason why they need to be 100% identical as they usually serve different purposes.

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

Best regards,
Peter

Answer

Hi,
thank you very much for your support request.

Unity's humanoid animation system does not support moving/translation on humanoid bones. Furthermore moving a bone  would look as if that person broke its bone (because a movement on a bone means that you move the joint of the bone out of the parents bone, resulting in a really awkward looking deformation).

If you want to move the entire character, you need to select the hips bone.

Best regards,
Peter