Answered

Child-Of constraint problem with Mixamo Character in UMotion pro.

Gal Kinan 8 months ago updated 8 months ago 5

Image 1070




Image 1071



Hello There, I have just started to use UMotion with character from Mixamo. So far the rig and IK controller has worked really well. But when I got to creating Child-off Constraint it just does not let me do it. When selecting the Ball Game Object the Constraint Panel in Cinfig Mode does not let me add a child off Constraint like you show in the video Tutorial. Is there a reason for that ? Can I do it in any other way ?

UMotion Version:
UMotion Pro 1.28p01
Unity Version:
2021.2.9F1

Answer

Answer
Answered

Hi,

thank you very much for your support request.

Animations in Unity can only address things that are in the hierarchy below (i.e. a child) of the the Animator controller that is actually playing the animation. In other words, your sphere needs to be a child of your character (in case of humanoid, the sphere needs to be a child of the hips or something lower in the hierarchy).

In the UMotion Examples folder, there is an example scene included. The character on the very right in the example scene shows you how to use the child-of constraint.

PS: In case of picking up stuff from the scene, a common approach to circumvent this limitation is by using an empty transform as "mount point". The mount point is part of your character's hierarchy and can thus be manipulated by the animation. A custom script triggered by an animation event is using "Transform.SetParent()" to make picked up objects a child of the mount point at runtime.

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

Best regards,
Peter

BAD, I'M UNSATISFIED
Satisfaction mark by Gal Kinan 8 months ago
Answer
Answered

Hi,

thank you very much for your support request.

Animations in Unity can only address things that are in the hierarchy below (i.e. a child) of the the Animator controller that is actually playing the animation. In other words, your sphere needs to be a child of your character (in case of humanoid, the sphere needs to be a child of the hips or something lower in the hierarchy).

In the UMotion Examples folder, there is an example scene included. The character on the very right in the example scene shows you how to use the child-of constraint.

PS: In case of picking up stuff from the scene, a common approach to circumvent this limitation is by using an empty transform as "mount point". The mount point is part of your character's hierarchy and can thus be manipulated by the animation. A custom script triggered by an animation event is using "Transform.SetParent()" to make picked up objects a child of the mount point at runtime.

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

Best regards,
Peter

Hi thank you for your answer,

1). I have placed the cube game object inside the character hierarchy. 

2). I have then attached the Umotion rig to the character and went to config Mode.

3). In config Mode I can see the game object but it is still grayed and also have a yellow warning - "There are rig configuration in this project where the appropriate joint/transform cant be found in the current animated Game object" 

4). Also I can not select "Show" - when i do try - i get the following message "Animating generic object that have no Humanoid bone in their parents hierarchy is not supported" 

I dont know what I am doing wrong but I really need to be able to parent object to the hands of the character and would really appreciate a step by step help as it does not seem to work.

Thank you so much

Gal

 

There are rig configuration in this project where the appropriate joint/transform cant be found in the current animated Game object"

UMotion does not automatically remove references to bones/transforms that it once found in your characters hierarchy. So if you for example have your sphere at one place in your hierarchy, then assign your character to the pose editor it is going to add a reference to that sphere to the UMotion project. Then if you exit the pose editor, and move the sphere to a different place in your character's hierarchy, then assign the character to the pose editor again, UMotion says it can't find the sphere at the old location but it found a sphere at another location. So it adds a reference to the new sphere's location to the UMotion project and keeps the reference to where the old sphere was located. You need to manually press the "Cleanup" button in config mode to get rid of that old reference. Hope this makes sense.

Also I can not select "Show" - when i do try - i get the following message "Animating generic object that have no Humanoid bone in their parents hierarchy is not supported"

From my previous answer:

(in case of humanoid, the sphere needs to be a child of the hips or something lower in the hierarchy).

Exit pose editor by clicking on the "Clear" button, then move your sphere so that it is a child of the first humanoid bone (which usually is the hips bone). Then assign your character to the pose editor again. Open config mode, click on "Cleanup" to remove the reference to the old location of the sphere. Then select the sphere from the rig hierarchy, open the "Properties" tab and set "Visibility" to "Show". Then open the "Constraints" tab and add the child-of constraint.

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

Best regards,
Peter

PS: If you only need the sphere to be a child of the hand (and you don't want to change the parenting during the animation), you can just move the sphere below the wrist/hand bone in the hierarchy (outside of UMotion). Then assign the character to the pose editor again, press cleanup and set visibility to show (of the sphere so that you can reference it). No need to use the child-of constraint in that case.

Best regards,
Peter

Yes this time it worked so thank you for your explanations. 

Thank you !!!

Gal