Answered

fbx model import and export

Anonymous 4 years ago updated 4 years ago 2

Hello,

I'm trying to import your Robot2.fbx to blender, export it again to fbx, and load exported model to your Robot_Kyle_1 prefab, but whole model seems to be broken after this procedure. I wanted to only change the mesh shape of the robot, but how could I do this without breaking whole model?

Image 590

Answer

Hi,
thank you very much for your support request.

Blender might be modifying the bones on import or export thus the new character is not compatible anymore with the original prefab anymore. I would recommend that you try and play with Blender's FBX import/export settings, use a 3D modeling application with better FBX support like 3DS Max or Maya (LT) or just life with it and create a new prefab for the new character.

Please let me know in case there is anything I can help you with.

Best regards,
Peter

Answered

I want to make running video, and I have done the left parts, how to copy and flip / invert key frame animation to right parts?

Restu 4 years ago updated 4 years ago 2

I want to make running video, and I have done the left parts, how to copy and flip / invert key frame animation to right parts?

Answer

Hi,
thank you very much for your support request.

Here is my workflow:

  1. Under "Animation" (pose editor) set "Auto Key" to "Generate".
  2. Go to the first key frame of your left leg bones.
  3. Select the left leg bones.
  4. Use the "Copy to Other Side" button (pose editor --> tools) to copy the left leg bones animation to the right.
  5. Move to the next key frame of your left leg bones and repeat step 4.
  6. Then you need to offset the keys of your right leg bones by the half duration of your run cycle.

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

Best regards,
Peter

Answered

Suitable project type for arm/hand only rig

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

Hello,

I've recently purchased UMotion Pro (I'm a newbie but want good tools to use from the get go) and I want to create animations for cartoonish arms and hands (left and right) with no other body parts. They are placed closely to a static object with no rig (jukebox) so it gives the feeling it owns those hands. I've added proper bones to both limbs but each arm bone hierarchy is not connected between them with a spine bone because I do not need to move anything else apart from each arm/hand. This will ultimately be used in a game called VRChat as an avatar.

Is the humanoid type project best for such scenario? I might add further bones down the line to make the object more lifelike (such as moving certain parts of it in a cartoonish matter) and increase complexity but I want a good foundation so any animation I will create doesn't get messed up.

Would there also be special considerations to have in mind?

Thank you and best regards.

Answer

Hi,
thank you very much for your support request.

Yes you are correct, generic is the way to go. The only real reason to ever use humanoid is when you want to use animation re-targeting (i.e. create an animation for humanoid character A but use it on other humanoid characters B, C, D...). More information about what makes humanoid special can be found in this blog post: https://blogs.unity3d.com/2014/05/26/mecanim-humanoids/

I might add further bones down the line to make the object more lifelike (such as moving certain parts of it in a cartoonish matter) and increase complexity but I want a good foundation so any animation I will create doesn't get messed up.

I highly recommend to add all bones that you need (or might need) before you start doing your animations and do not modify the skeleton afterwards. It's hard to re-use existing animations on a modified skeleton.

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

Best regards,
Peter

Answered

Animating generic in a humanoid

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

Hi, this says that I can animate the generic bones outside the human skeleton.

Image 586


Does it refer to this setup?

(VFX has the humanoid skeleton, and WeaponSlot is the foreign object.

Image 588

Because it shows this whenever I try to unlock the WeaponSlot object.

Image 589

Answer

Hi Asyl,

thank you very much for your support request.

Yes you can animate generic bones for humanoid models as long as they are a child of the "hips" bone of your character (that's what the error message is trying to say). The sentence in the manual is not correct, I have updated that paragraph shipping with the next patch release. Thank you very much for pointing that out.

Please note that generic bones are invisible by default in humanoid projects. You can make them visible by switching into config mode. Select the generic bone and under "Properties" set "Visibility" to "Show".

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

Best regards,

Peter

Answered

Conditions for generic model to be compatible with generic clip

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

Hi, when I try to import a generic clip in a generic umotion project it says about the hierarchy problems?

Should the model rig's name and an external clip's rig name be the same?

Does it care about multiple parenting or as long as the name is the same it doesn't care if it's way beyond the parent system? (just exaggerating)

And may I know other conditions that it checks so as to prevent this from appearing next time? Thanks

Image 585

Answer

Hi Asyl,

thank you very much for your support request.

Generic animation clips only work for the generic character they have originally been created for. You can not use a generic animation created for character A on character B. Simply renaming the hierarchy won't help (it would satisfy the error message you get, but the imported animation would be trash). Only Unity's humanoid animation system is capable of animation re-targeting (i.e. trying to match an animation created for character A on character B). More information about animation re-targeting and why it is necessary can be found in this blog post: https://blogs.unity3d.com/2014/05/26/mecanim-humanoids/

If you get this error message even though the animation you've imported was created for the exact same character, then make sure that you have not altered the hierarchy of your character. The animation clip references all bones/transforms using a so called transform path relative from the animator component (e.g. "Hips_01/Spine_01/Spine_02/Shoulder_R" <-- would reference a bone named "Shoulder_R"). So beginning with the animator component, there must not be any extra transforms or transforms that have been renamed or moved in the hierarchy.

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

Best regards,
Peter

Answered

VR IK

Jim 4 years ago updated by Peter - Soxware Developer 4 years ago 4

Lev,I would like to work on hand rotations/Grips on a two handed object that has been tracked in VR like for example a baseball bat. I can get the tracker data in by recording its movement and playing it back in unity whilst recording an anim of a humanoid being posed by Final IK's VRIK based on the trackers motion. I do not want to repeat this at runtime, but to perfect the animation in Umotion of wrists etc. Trouble is I cant seem to IK or parent the second hand to an object held in the other hand. Can you give me any hints ? I tried to find a way to copy the coordinates (Keys) of the bat held in one hand and pase them to FK/IK movement in the other hand's data, but when I paste the keys they only paste the X axis (Red Curve ) and lose the z axis and y axis data.on the keys I Cant understand why could this be a bug? Otherwise is there a way to copy the local positions on one hand and paste into  a new transform on the root object using the root's co ordinates? 

Answer

Hi Jim,

thank you very much for your support request.

Just assign a child-of constraint to the IK handle that you want to parent to the baseball bat.


In case you used the IK Setup Wizard to setup your IK constraints, a child-of constraint is already assigned to the IK handles (used for IK pinning). Just disable the IK pinning mode (go into config mode --> select the IK handle --> open the constraints tab --> scroll to the child-of constraint --> disable the check mark for the IK pinning mode).


With a child-of constraint, you can change the parenting during your animation. You can also parent the IK handle to the baseball bat directly in config mode via the "Parent" field in the "Properties" tab (this changes the hierarchy and is thus applied for the whole UMotion project).


For more information regarding the child-of constraint, please checkout the following video tutorials:


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


Best regards,

Peter

Answered

Object constrained to parent is Ok in editing but not on export

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

Hi, 

I have an object I constrain to my players hand. When I am building the animation, it's fine and in a good position.

When I export and use it in came on the same character prefab, the item I constrain isn't in the hand but a little way off. Any ideas?

Working (in editor): https://www.loom.com/share/1fbdb55738cc47ed8625c10199e4be89

On export and attach to the player:

 

Image 584

Answer

Hi,

thank you very much for your support request.

The child-of constraint calculates the position/rotation of the object as if it would have changed the parent, but in reality it does not change the parent. So what you get is a curve that is still in local space of the original parent. If you now export your animation, and the final animation is played a little bit different than the original (for humanoid, there are several reasons why this can happen like bad humanoid avatar setup, wrong root motion settings,...) then the offset doesn't match anymore.

An easy fix is to use generic, as it plays the animation "as it is". No humanoid "black magic" involved. It's less complicated then humanoid (in usage) and has better performance (due to no animation re-targeting) and better quality (humanoid's animation re-targeting is a lossy process that is always sacrificing quality a bit). The only benefit of humanoid is it's ability to use the same animation across different (humanoid) characters (which won't work anyway when you are using the child-of constraint). You can convert your animations to generic by creating a new UMotion project of type generic and import the humanoid project. That's what I would strongly recommend.

More information on humanoid: https://blogs.unity3d.com/2014/05/26/mecanim-humanoids/

Head is still static though.

There might be an issue with your humanoid setup. Check the humanoid configuration (rig tab of the inspector of your source model). Check that all bones are displayed in green. Changing the humanoid setup might require an update of your UMotion project (i.e. create a new humanoid project, assign the new character and then import the old project to keep all the animations you've made).

Another thing you can check: Select the exported *.anim and check the preview window in the inspector (it uses unity's default humanoid character as preview). Does the head preview correctly?

Best regards,
Peter

Answered

Loops and layer

Netpost 4 years ago updated 4 years ago 4

Is there a simple way to bake loops into a single longer animation?  If I try to copy all frames and paste them at the end of the first loop, no root motion are applied.  I have root motion enabled in the animator and the loop root motion work in the unity timeline.  

Often the duration of my base layer is not long enough for my new top layer and  I am not sure how to extend this base loop layer before adding the new layer. 

It would be amazing if Umotion Pro would bake the loop clip when loop is activated in the playback of Umotion Pro while exporting the clip. We would only need to extent the selection to the length of loop needed. This would be so useful.

I hope that make sense.  ;)

Thanks Peter!

Answer

Hi Netpost,

thank you very much for your support request.

Your approach is correct. In order to advance the root motion between the loop-seams, open the curve of the root motion driving animated position property. Then select all keys of the second loop and adjust their vertical position so that you get a continuous curve/motion.


In case you are also using a root rotation (that doesn't come back to it's initial rotation when the loop ends), I recommend changing the rotation mode of that rotation property to "euler rotation" (related video tutorial). Then you can do the same editing with the curves as you've just done with the root position curve.

Thanks for suggesting this automated workflow. Currently the playback settings in UMotion are only responsible for previewing the animation, but have no impact on the exported animation. That's also how it is communicated in the video tutorials and documentation. The behavior you suggested would be a breaking change (as the playback settings would suddenly have an impact on the output), I have to carefully think about if this has any negative side-effects. Anyway, as mentioned above, this automatic workflow would just save you a few seconds as adjusting the curves should be rather easy.

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

Best regards,
Peter

Answered

Prevent legs from crossing in 8-directional strafe animation?

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

I created a nice set of strafe animations, but when I put them into a blend tree, the legs end up crossing when blending between Back/Right/Forward/Left to the diagonal directions. Any tips for managing this?

Answer

Hi,
thank you very much for your support request.

Afaik, there is no easy fix for this. I think I've also seen this in AAA games from time to time. Maybe advanced machine learning based techniques like motion matching can handle this in a better way. Anyway, usually this is a very minor/subtle problem and it might be better investing your time in a more visible/important feature of your game.

Here are some tips I've found related to this: https://forum.unity.com/threads/movement-animset-pro-controller-added.220742/page-3#post-2385517

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

Best regards,

Peter

Not a bug

Could not load signature of something

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

Image 582

Can't remember what I did when this appeared, probably appeared few times in few days. I'm just ignoring it, but maybe there is something that needs to be done.

Answer

Hi,

thank you very much for your support request.

This is just a false alert generated by Unity in some situations. It has no negative impact on the functionality of UMotion or Unity and you can safely ignore that.

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

Best regards,
Peter