memory leak / freeze on export
I'm finding that in unity 2018.3f and presumably later. that the latest version of umotion freezes on the export of generic animations. it gets to the end is doing the compiling constraints. but never actually finishes. in some cases, it causes a memory leak where it consumes ram until I have nothing left and causes unity to crash as a result. The original generic animation lasts 17 minutes and froze at this point every time it was attempted to be exported. splitting into 5 sections doesn't seem to alleviate the problem in a real capacity. It still freezes at the same point, right before finishing. I should mention though when it's this small there doesn't seem to be the memory leak, that was present before, it stays at an exactly constant amount of memory being used and fluctuating cpu%
I'm using a ryzen 9 300X
RTX 2070 super
64 gigs of ram.
Sending animation event
Hi
I'm not sure if this is a Playmaker issued but as I'm using uMotion I decided to ask here first.
I need to send animation event to Playmaker.
- Select the GameObject.
- Open the Animation Window: Main Menu > Window > Animation.
- Add or select an animation on the GameObject.
- Add an Animation Event to the timeline.
- Select the SendEvent(string) function.
- Enter the event to send.
I can get to the step 5 but SendEvent cannot be found from the list. I also noticed this:
What do I need to do to get access to the SendEvent event or is it even possible?
Hi,
thank you very much for your support request.
This warning is just informational. UMotion runs through all scripts that are not in a custom assembly (i.e. are not using an assembly definition file) and checks if it finds a method with the name that you've entered. If it does not find it, it shows this warning. Unity can still invoke this method if it is in a different assembly, it's just UMotion that doesn't check other assemblies.
In order for animation events to be triggered correctly, just make sure that you've assigned your script to the animated GameObject and that the event name and parameter type that you configured for the animation event in UMotion is exactly the same (case sensitive!) as in your script. When changing something in UMotion, you always need to re-export your animation.
Here is the UMotion animation event tutorial:
Please let me know in case you have any follow-up questions.
Best regards,
Peter
Invalid Driven Object
I'm trying to create a custom property that can be used to curl all fingers in a hierarchy, but I'm getting this error upon assigning Rotation X to it. I don't know what this means, or how I can solve the issue.
Hi,
thank you very much for your support request.
You need to change the rotation interpolation mode of your finger joints to "Euler Rotation".
By default, all joints use quaternions to represent the rotation (this is a 4 dimensional representation of an orientation, hard to imagine and thus makes no sense to manipulate one coordinate of it directly via a custom property constraint).
Here is a detailed video tutorial covering this topic:
Please let me know in case you have any follow-up questions.
Best regards,
Peter
Hi,
thank you very much for your support request.
Try the following:
- Click on "Clear" to remove the model from the UMotion Pose Editor.
- Try to find and select the same bone that you just selected in Unity's Hierarchy Window.
- Use the rotation tool to rotate that bone in Unity.
In case the arm's mesh also doesn't move with the bone, the bone you are trying to move has no vertices applied (i.e. it is not skinned). You need to fix this in a 3D modeling application.
In case the mesh moves with the bone now, please send the model to me (without textures if you want) so that I can further investigate as in that case it might be a UMotion bug. You can send it to me via the email support form.
Best regards,
Peter
Hide/Mute clip "Track"
Hi, I was not able to find a answer to my question so i'm posting here, sorry if someone already asked that.
How i can "mute"/hide a animation "track", while editing a clip? I mean, i want all transforms/bones stay in the first frame while i'm editing some specific bone.
Hi,
thank you very much for your support request.
If you move the keys of certain bones into an (override) animation layer you can mute/and even gradually fade the influence of the whole layer. Please note that muting means that the whole layer is disabled, thus also the first frame in that layer is disabled. UMotion is then going to apply the keys that are in the layers below (n case there are no other keys existent, the reference pose defined in Config Mode is applied).
Please let me know in case you have any follow-up questions.
Best regards,
Peter
Long animations list
Hi, there is a problem\idea. I have long animations list in UMotion clip editor and there is only one possible solution to scoll them, by click on little arrows.
1. The better way as i think is to use mouse wheel scroll.
2. When I open this dropdown list, by default it on the top of the list, the better way as i think is to open list on current clip.
Hi,
thank you very much for your support request.
This drop-down list is implemented by Unity (--> closed source) thus it's unfortunately not possible to change the behavior of the drop-down list itself (it would only be possible to replace it with a custom window which I consider for a future update).
One workaround that could help to improve your specific situation: Duplicate your UMotion project several times and then only keep the animation clips related to only one weapon per UMotion project.
Please let me know in case you have any follow-up questions.
Best regards,
Peter
Root Transform Position settings missing / Custom root node not working
I set a custom root node in my model rig settings but when I play animations generated with UMotion, the animator still uses the regular root node. So my character just continuously snaps back to its original position when at the end of the movement loop animation.
Before switching to this, I had the same problem on my older animations but I had these options:
And setting Root Transform Position (Y) -> Based Upon to "Root Node Position" would fix it.
The animations generated by UMotion don't have these options:
Is there a way to get them to accept the custom root node I set here?
Hi,
thank you very much for your support request.
You need to configure "Root/TransN" as root motion bone in UMotion. Click on the gear icon next to "TransN : Position"in the "Animated Property List" (Clip Editor) and select "Root Motion" in the context menu. Do the same for "TransN : Rotation" in case you want rotational root motion too. Then re-export your animation. The root motion settings should now show up in the inspector of your exported animation clip.
Here is the official UMotion root motion tutorial for further information:
Please let me know in case you have any follow-up questions.
Best regards,
Peter
Weird bug or incorrect approach.
I am doing an idle animation of my character. In UMotion my animation looks great, the feet are planted in one spot and the body/arms/head move like they are suppose to. Once i import it to my character, the body is nothing moving while the feet and the arms are moving around. Not sure what I am doing wrong here.
I also had spots were transitioning between two animations, my character jumps up a few unitys. not sure how to reset the animations location to zero so that I dont get that jump or any extra rotations.
Hi,
thank you very much for your support request.
Foot sliding is a common artifact of Unity's humanoid re-targeting algorithm. You can compensate foot sliding by enabling Foot IK on the Animator (you can preview the effect by toggling the IK button in the exported animation's preview window; see screenshot below). To enable Foot IK at runtime, you have to enable "IK Pass" in your Animator controller state machine and you have to enable IK for the feet via script (see https://docs.unity3d.com/Manual/InverseKinematics.html; you don't need to set the IK goal position like in the manual's example). Also make sure to adjust the root motion settings to your needs (these settings effect how movement of your animation is treated and can be related to your missing body movement).
Further information about why foot sliding happens with humanoid and why Foot IK is solving this issue: https://blogs.unity3d.com/2014/05/26/mecanim-humanoids/
Btw. if you use your animation only on one specific character, consider using "generic" instead of "humanoid". Generic plays your authored animation directly on your character (no such artifacts or black magic involved like with "humanoid"). Generic also has less CPU performance cost.
Please let me know in case you have any follow-up questions.
Best regards,
Peter
move tool copy position
I'll select a joint such as RightFoot : Position, select a frame where the position changes. I select the frame key and press ctrl-c (copy) and move to the next frame and select ctrl-v (paste) This does nothing, or the limb can go to a weird place.
If I select the first frame and use the Move Tool menu for copy position, then select the next frame and use the Move Tool paste position, the bone moves correctly.
Can we please have a short-cut for Move Tool->Copy/Paste position, as I'm having to do this far too often.
Hi Craig,
thank you very much for your support request.
I'll select a joint such as RightFoot : Position, select a frame where the position changes. I select the frame key and press ctrl-c (copy) and move to the next frame and select ctrl-v (paste) This does nothing, or the limb can go to a weird place.
I just ran a few quick tests, but copy and pasting position keys seems to work fine for me. Are you using a Child-Of constraint (or IK pinning) on that bone? Then you have to be careful of what transform space the key you copy is in (e.g. if you copy a key when the bone is currently parented to parent A and then paste the key at a frame where the bone is parented to parent B this will result in nonsense).
Also be careful when copy and pasting keys from one additive animation layer to another layer (or visa versa). Keys on an additive layer are an offset not an absolute position.
Can we please have a short-cut for Move Tool->Copy/Paste position, as I'm having to do this far too often
Yes that indeed sounds very useful. I've added this to my to-do list.
Best regards,
Peter
Problem with Avatar Masks when using Child-Of Constraint.
Hello. I have a problem with Avatar Masks when using Child-Of Constraint.
Basically i have a "itemPos" transform on my haracter prefab, that I animated using UMotion. I need to pass weapons from an hand to another in some animations, and it works correctly using child-of constraint.
Problem is, I need to apply an Avatar Mask to animate only the upper part of the body, so my character can move while for example reloading. This gives me issues since itemPos got masked too, and I have no idea how to include it on the Avatar Mask. Thank you for helping me in advice.
Hi Marco,
thank you very much for your support request.
The transform list in in your avatar mask is created based on the avatar definition of your character. This avatar is created when Unity imports your character. That means that only bones/transforms that are present in your original character are added to the avatar mask. I guess you have created the "itemPos" transform later in Unity, thus it has not been available when Unity imported your character thus is not included in the avatar and thus it is not added to the avatar mask's transform list.
I see two ways you can overcome this:
1) If you are familiar with 3D modeling applications, add the "itemPos" transform to your character's model. Make sure to use the same name and the same local position/rotation (otherwise your existing animation won't work correctly). After re-import, re-create your avatar mask's transform list based on the new avatar.
2) You could also export your character that contains the "itemPos" transform from Unity to *.fbx using Unity's FBX Exporter (get it via Unity's Package Manager, the Asset Store version is outdated). Probably the easier method.
Please let me know in case you have any follow-up questions.
Best regards,
Peter
Customer support service by UserEcho