Answered

Mirror arm movement

Craig 3 years ago updated by Peter - Soxware Developer 3 years ago 1

I have a walk animation from the Kubold Female animation set, the walk animation has one arm swinging more than the other.  I'd like to mirror the arm swing from one side to the other so that it is more symetrical.  I've followed some tutorials that you posted on Pose Mirroring.  When I select Copy to Other side (Mirror Editing Off) and applied to all frames, the result is that both arms swing together and aren't asymetrical, ie both arms swing forward or backward at the same time.  If I select Mirror Editing On, the same happens.

I have Config for Mirror Mapping looks fine, all joints have their corresponding mirrors correct.

I've semi-solved the issue by offsetting the other arms dopesheet by 50% and moving the latter 1/2 to the front, however there is still some glitching when the arm reaches the 50% point.

I can't help but think that the mirroring isn't working properly, as you described it should in the video (Pose Mirroring @1:01)

Answer

Hi Craig,

thank you very much for your support request.

The mirroring feature works as expected. It just mirrors a pose from one side to the other. This creates a symmetrical arm swinging in your case.


I've semi-solved the issue by offsetting the other arms dopesheet by 50% and moving the latter 1/2 to the front, however there is still some glitching when the arm reaches the 50% point.

Yes that's the correct workflow. When done correctly, it should also loop seamlessly (as you are using the seamless animation of the "source" arm swing as a source animation for the other arm). Make sure that it loops seamlessly when the arms are still symmetrical. When offsetting, make sure that the keys keep the correct relative frame distance. If you are using euler angle rotation mode (you can also switch temporarily to it), you can check if the rotation curves of your arm bones have any seams.

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

Best regards,
Peter

Answered

humaniod clip greatly offset after exporting

Anonymous 3 years ago updated 3 years ago 2

Hello! I am using the free asset from this model which comes with some animations. After importing any animation into umotion and exporting it to .anim, playing the animation will cause the model position is offset greatly.

Details:

Model rig animation type: humaniod

Animation controller is not using root motion

I noticed after exporting, the .anim has a new property key called "Animator.Root T". Deleting it will reset my model into the ground.

I also noticed, in umotion editor clip, I have a property called "Hips:Position", which is root motion (and i cannot disable it?). Not sure if it is intended.


I've tried "Generate root motion curve (experimental)" and tried different combination of Bake Into Pose. But no luck

Image 528

Answer

Hi,
thank you very much for your support request. Also thanks for your detailed description, that helped me a lot in understanding/reproducing your situation.

The humanoid anim file generation seems to be wrong due to the scaling that is applied to the hips bone by the original model:


You can easily workaround this issue using one of the following two methods:

  1. If you have 3DS Max or Maya, you can correct the scaling of the hips. I have Maya and it was as easy as importing the FBX and re-exporting. Looks like the units in the FBX where set to meters instead of centimetres thus causing Unity to add the scaling of 0.01 on import. Maya is automatically changing the units to centimetres thus fixing the issue. I can also send you the corrected models if you like (in case you don't have Maya).
  2. You can export your animation into the FBX of the character. This lets Unity create the humanoid animation for you, and it seems to be correct even with the scaled hips. Here are the settings that I've been using (the "Destination File" should be the Golem.FBX file.):


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

Best regards,

Peter

Answered

Unique layered animations for characters sharing re-targeted animations

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

Quick question: We have multiple characters sharing the same animations through Humanoid re-targeting.  This works fine for the most part, but not perfectly.  Would your tool allow us to modify each character individually and apply the changes as a layer?

Answer

Hi,
thank you very much for your support request.

Yes, lets say you have humanoid animation "Clip1.anim".

  1. Then you would create a umotion project for character A and import "Clip1.anim". Do the changes, then export it as "Clip1_A.anim".
  2. Then you would create a umotion project for character B and import "Clip1.anim". Do the changes, then export it as "Clip1_B.anim". 
  3. And so forth.

Please note, that as Clip1_A and Clip1_B are still humanoid, there can still be little re-targeting artifacts. So if you're aiming for very accurate results, I would duplicate your characters and configure the duplicated ones as generic. Then work through them like this:

  1. Create a humanoid umotion project for humanoid character A and import "HumanoidClip1". Do your adjustments and export the corrected clip to FBX (I recommend configuring the FBX exporter to write the animation into the FBX of your generic character). Your animation then is generic and you can use your generic character at runtime.
  2. Repeat for all other characters.

This also comes with another benefit: You save some CPU performance because the animation re-targeting does not need to be executed at runtime. If you later on decide to switch to humanoid again, just configure your generic character as humanoid. All included animations are then humanoid again.

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

Best regards,

Peter

Answered

Can I create and bind rig to model inside unity?

ara17 3 years ago updated by Peter - Soxware Developer 3 years ago 1

Is it possible, for example, place non-rigged (without armature) model on the scene then create skeleton rig for it and bind it by automatic weight (like in blender) inside unity with this asset, or the only way is to create rig in 3d model software and import it into Unity?

Answer

Hi,

thank you very much for your support request.

Please check out this answer I gave to a similar question: https://support.soxware.com/en/communities/1/topics/12-is-possible-to-make-rigging-in-umotion-from-scratch#comment-4

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

Best regards,
Peter

Answered

Game tab don't work

SaintofBlood 3 years ago updated by Peter - Soxware Developer 3 years ago 3

When I'm looking at the animation at the scene tab, all works. 

Camera preview also shows animation playing correctly. 

But, when I switch to the Game tab, the animation is not playing, objects are kinda "freezed" . 

I've tried reimporting assets and Umotion Pro but this didn't work either.

What could cause this problem and how to resolve this?

Answer

Hi,
thank you very much for your support request.

The scene view tab needs to stay open, otherwise the Update() loop of UMotion isn't executed by Unity anymore (thus makes the animation preview freeze). An easy workaround would be to place the scene view tab next to the game tab so that both are open at the same time.

Why do you want to preview your animation with the game view instead of the scene view?

Best regards,
Peter

Answered

How to animate specific bones only

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

Trying to create my first animation and looking to animate only specific key frames so that they are 'added' on top of the currently playing animation.

Thank you.

Answer

Hi,

thank you very much for your support request.

You can add modifications on top of an existing animation using animation layers.


There are two animation layer types:

  1. "Additive" - This adds an offset to the existing animation curve.
  2. "Override" - Completely replaced the underlying existing animation curve with new created key frames. Similar as if you would delete all existing keys of that curve and add new ones.

For more information, click on the black info button next to "Layers" (see screenshot above) to open the related manual page. You can also check out this video tutorial, where I'm using animation layers to tweak existing animations:

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

Best regards,

Peter

Fixed

Export all clips reports I have a clip with no name

Alan Kent 3 years ago updated by Peter - Soxware Developer 3 years ago 4

Doing Export All Clips, I got a message about a clip not having a name. I might have deleted Clip1 before adding the clips I wanted (I could not find the rename clip so I just started again).

Note: I cannot copy the "log" text so tried to capture a screenshot instead.

Image 520

All the clips in the drop down list have names.

Image 521

It exported all the clips I can select in the drop down list, but failed for an extra 8th one which is not shown in the dropdown list.

Image 522

Not a big deal, just letting you know.

Answer

Fixed in UMotion V1.22p14. This patch release should be available on the asset store in the next few days.

Thanks again for reporting.

Best regards,
Peter

Under review

Unable to edit "Custom Property" name field sometimes.

Alan Kent 3 years ago updated by Peter - Soxware Developer 3 years ago 3

This feels like a bug. I created a "Generic" project, I created a dummy object and added the scripts I wanted to animate properties for. I set that is the pose object. It created the root transform/rotate/scale properties. In Configuration/Properties I set "Properties:" to "Nothing". That made transform/rotate/scale go away. I then added a Custom Property constraint.

The problem is sometimes it will not let me change the "Name:" field for the custom property, other times it does.


At first it felt like only every second one would let me change it. Then I wondered if it was it worked if I changed the value before setting "Mode:" to "Component Property" then it worked. Finally I gave up - it just feels random of whether it will let me change the "Name:" field. I just added 5 in a row and none of them let me change it.

After restarting Unity however it started behavior properly again... so reporting in case useful to you, but an easy workaround (restart Unity). May be its a Unity internal bug.


Answered

How to remove a property so it is not animated?

Alan Kent 3 years ago updated 3 years ago 5

I am making progress! But if I understand by looking at the exported clips in the Unity animation clip panel, it looks like clips are exported with all properties, not just the ones that are keyed in the clip. I want to create clips for different subsets of properties so I can have a clip "Eyes Left" which only animates the eyes. Then I can layer this on top of other clips so walking I can add "Eyes Left" and keep the rest of the normal clip.

I was wondering if the correct approach was to remove the unwanted properties, then "Save Reference Pose" (?), but I could not work out how to remove the properties that it picked up from the Humanoid bones.

I don't want to use a Generic project type as then I cannot load up my character and do the animations on it - it tells me I must use a humanoid project for humanoid characters. I guess I could try and trick it with a proxy object or something...?

For eyes, because I have a script controlling them (custom properties) I only want to capture the custom properties for the "Head" layer (that is where I added the custom constraints, alongside the other blendshapes). Oh, and I don't want the blendshapes included either - I want to create a separate set of clips for blendshape controls (for different facial expressions).

I am planning to create a project per layer of clips - e.g. on project for eye overrides, one for facial expressions (blendshapes and textures), one project for hand positions, etc. I am hoping I can then define different sets of properties per project (put all the hand position clips in the hand project, put all the eye clips in the eye project, etc).

Then the final timeline I pick a full body clip (e.g. walking or sitting, and start layering expressions, eye control, head turns, and hand pose etc clips in override tracks in the Unity timeline).

Is this possible?

Answer

Hi Alan,

thank you very much for your support request.

Humanoid always exports all humanoid bones. Humanoid doesn't work well when not "well-formed" (i.e. doesn't include all curves). Unity also only creates well-formed humanoid animations when creating them from imported animation. If you have no keys on humanoid bones, they are stored as "constant" curves in the humanoid animation (thus only add very little memory to the animation).


Generic bones on the other hand are only added to the animation if they have at least one key. You can completely remove generic bones from the "Animated Properties List" by setting their visibility to "Locked". This also ensures that they are not added to the animation even if you have previously created key frames for them.

I was wondering if the correct approach was to remove the unwanted properties, then "Save Reference Pose" (?), but I could not work out how to remove the properties that it picked up from the Humanoid bones.

Regarding the reference pose, please check out the following video tutorial: 

I don't want to use a Generic project type as then I cannot load up my character and do the animations on it - it tells me I must use a humanoid project for humanoid characters

You can configure a character as Humanoid, Generic or Legacy (in the Inspector "Rig" tab when selecting your character). Humanoid is Unity's animation re-targeting system. Generic is playing animations directly (without re-targeting). More information on humanoid: https://blogs.unity3d.com/2014/05/26/mecanim-humanoids/

For eyes, because I have a script controlling them (custom properties) I only want to capture the custom properties for the "Head" layer (that is where I added the custom constraints, alongside the other blendshapes). Oh, and I don't want the blendshapes included either - I want to create a separate set of clips for blendshape controls (for different facial expressions).

You could duplicate your character and configure it as generic. Use the duplicated version to animate all the none-humanoid bones. You can also remove the eyes from your humanoid avatar (Inspector of your character --> Rig tab --> Configure...) as you're driving the eyes from custom scripts anyway. Create a new UMotion humanoid project, now the eyes should not be included anymore.

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

Best regards,

Peter

Answered

Add Constraint button not active (so cannot add a custom property constraint)

Alan Kent 3 years ago updated 3 years ago 2

I found the section of the manual describing how to add custom component property constraints. But when I go to add a new constraint, the button is deactivated so I cannot add a new constraint. It did add all the blendshapes successfully when loading the character, but I cannot work out how to add a new one.

I create a new project of type Humanoid (because character is humanoid), import the FBX file, then in the Pose panel I go to Config Mode, under Configuration I pick "Constraints". The button is not active, so I cannot add a new one.

I have a component on the character with a float property I want to animate. I tried creating a "Generic" project, but then it refused to load the character saying it was humanoid.

Image 519

Answer

Hi,
thank you very much for your support request.

You need to select a valid transform in the "Rig Hierarchy" tree to which you want to add a constraint. I'm going to display a "No bone/transform selected" text in one of the next updates to make this more clear. Thanks for pointing that out.


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


Best regards,

Peter