Answered

How to attach props to prop bones without adding them to the project?

Quintin 3 years ago updated 3 years ago 2

Our project has prop bones set up in our skeleton (eg. RightHandPropBone) and we attach props (eg. Sword) to that prop bone at runtime.

When creating animations with Umotion, it's very useful to be able to attach the actual prop to the prop bone at edit time (in this example, parenting Sword to RightHandPropBone) so that we can animate RightHandPropBone with the correct visual in the editor.

However when the sword is attached in this way, UMotion wants to add Sword to the project file the moment I drag the character into the Pose Editor. I don't want to add Sword to the project because it's not actually a bone (it's just a prop parented to a bone). There's also hundreds of props and a dozen characters, so I definitely don't want to add all those props to each of the project files.

How can this be resolved? Thanks!

Answer

Hi Quintin,

thank you very much for your support request.

You can set "visibility" to "locked" in the config mode (for the props). This ensures that the props are not included in the exported animation data and that there is no visible representation of the props transform in the UMotion editor.

If you really don't want it to be included in the project, then you can use the UMotion callback system to write a short script that just moves the prop as if it would be parented to the hand (but is not an actual child in the hierarchy). More information regarding the callback system can be found in the manual at "Pose Editor --> Options" headline "Extending UMotion".

public class PropPreview : MonoBehaviour
{
    public Transform Prop = null;
    
    private void UMotionUpdate() // <== Use this name in the UMotion callback settings
    {
        Prop.SetPositionAndRotation(transform.position, transform.rotation);
    }
}

(Wrote the script out of my head --> untested.)


Assign this script to your UMotion prop anchor and assign the prop you want to preview to the "Prop" field. Make sure that the prop is a separate GameObject and NOT a child of the actual character. Feel free to further improve this preview script (e.g. to contain references to all props and show them as needed).


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

Best regards,
Peter

Answered

Ignoring Component Property Error

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

I'm trying to export an animation with blendshapes as an FBX Binary, but I keep getting a yellow "ignoring component property" error on all the blendshapes in the base layer, everything previews fine, what should I do to fix this? 

Answer

Hi David,

thank you very much for your support request.

Please refer to the UMotion manual at "Clip Editor --> Import/Export". There is a nice table that compares the features each animation format supports. As you can see on the table, the FBX file format does not support animating Unity specific component properties (like the blend shape weights which are a sub property of Unity's renderer components).

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

Best regards,
Peter

Not reproducible

Not all of the animation edits I made in Layer 1 of the Clip Editor are being exported

Owen Nelson 3 years ago updated by Peter - Soxware Developer 3 years ago 12

I've made edits to the head, thigh and calf rotation in a clip using the Clip Editor.  When I export the clip and apply it to the exact same humanoid game object in a timeline as I used in the Clip Editor, only the head rotation changes show up, and not the thigh and calf rotation changes.  What's gone wrong?

Thanks for your help,

Owen

Answer
Owen Nelson 3 years ago

Hi Peter,

Many thanks you for your kind offer of additional help.  I finally had time to get back to this project today, and I find that I am unable to recreate the problem.  This means that either I am unknowingly doing something different that's critical to getting it right, or the latest update of Unity has somehow had a positive impact on clearing up the problem.  If I find myself having this "problem" again, I will re-check this post for advice and ask for your kind help if needed.

Regards - Owen

Answered

please help! i like to edit an existing animation and apply it after changing

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

the struggle is.... i use the universal shooter kit from the unity store, and they use more then one animation in one file 

"SubmachineGun_Animations" file. so i would like to change the animation auto_Shoot and save the changes that i made.

How can i do that ?

ps. extra info:.. the PLAYER that uses this animation will be spawned into the game-scene. !!!

Image 618

Answer

Hi,
thank you very much for your support request.

This is very easy:

  1. Create a new UMotion project for your sub machine gun. Usually you would just temporarily create an instance of your sub machine gun in your Unity scene. Then create a new "generic" UMotion project and drag & drop the sub machine gun (scene instance) into the pose editor's "Animated GameObject" field.
  2. Import the animations you want to edit into UMotion ("File --> Import Clips"). You can either select the whole *.fbx and then use the ticks next to each animation clip to select which animation you want to import. You can also drag & drop separate animation clips from Unity's Project Window into UMotion's import window.
  3. Edit the animation to your liking.
  4. Open the settings by clicking on the gear icon. Change export type to FBX (binary or ascii is totally up to you). Set "Write Mode" to "Update Existing File". Then under "Destination File" select the "SubmachineGun_Animations.fbx" file.
  5. Export your animations ("File --> Export --> ..."). The changes are automatically written into the *.fbx file.

Here are some related video tutorials for completeness:


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

Best regards,
Peter

Answered

Key conflict with script execution order

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

There is a dictionary conflict with the + button at the bottom of the script execution order screen and a umotion key.  This means I can't add new scripts to the script execution order manifest while I have uMotion installed.

ArgumentException: An item with the same key has already been added. Key: Assets/Plugins/UMotionEditor/Plugins/Application/UMotionApplication.dll.meta

System.Collections.Generic.Dictionary`2[TKey,TValue].TryInsert (TKey key, TValue value, System.Collections.Generic.InsertionBehavior behavior) (at <9577ac7a62ef43179789031239ba8798>:0)

System.Collections.Generic.Dictionary`2[TKey,TValue].Add (TKey key, TValue value) (at <9577ac7a62ef43179789031239ba8798>:0)

UnityEditor.ScriptExecutionOrderInspector.ShowScriptPopup (UnityEngine.Rect r) (at :0)

Answer

Hi Kev,

thank you very much for reporting.

This seems to be a Unity bug in older releases of Unity 2020.2. Please update to the latest Unity 2020.2 release (I just verified that this issue does not appear in Unity 2020.2.6f1).

Please let me know in case you need any further assistance.

Best regards,
Peter

Answered

All keys lost after changing properties

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

I just upgraded uMotion to the latest version (from 1.22p11 to 1.24p01).

I changed some properties in my rig (I disabled the scale property in setup for some transforms).  I set all keys for all properties, then went back into config to re-enable the scale properties (I wanted to see if it just hides the property or outright disables it).  It disabled the property as the transform had keys for position and rotation but not scale.  Satisfied I went back into config and disabled scale again.

When I returned to config mode, all my animation keys were gone.  So I loaded another clip and that too was wiped.  So I checked the others and every clip is blank.

I tried mashing undo, which was able to re-enable the scale properties, but it could not get my animation keys back.  I did not edit the other clips, yet they are also blank.

I tried recovering to a backup.  An old copy wouldn't load (wrong uMotion version), but a more recent backup had a timestamp from before I started working so I loaded it.  Still blank.

I might be able to recover some data by importing my exported clips, but most of my data is now gone.

Is there any way to recover my lost animation work?

Answered

Can't update from 1.22p11 to 1.24p01

Anonymous 3 years ago updated 3 years ago 2

I've tried twice.  Unity package manager says I've got 1.24 with no option to update (latest is supposed to be 1.24p01.

I tried deleting the uMotion folder from my project, then installing the update.  It thinks I've got 1.22p11 installed.

I tried closing all uMotion windows, then deleting both the uMotion folder and the uMotion examples folder, then installing the latest again from package manager.  Still says I have 1.22p11.  Package manager says I've got 1.24 downloaded.

Are there other folders I need to clean out manually in Windows explorer before updating?

Answer

Hi,
thank you very much for your support request.

This is a common issue of the asset store/package manager (doesn't really relate to a specific asset). What you can do is to delete the affected asset (in this case UMotion) from the cache folder of the package manager: https://docs.unity3d.com/Manual/upm-cache.html

Then re-download the asset again, remove the existing "UMotionEditor" folder from your project and then install it again.

Let me know if you need any further assistance.

Best regards,
Peter

Under review

Crash in Unity 2018.4

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

Hello I noticed That Your asset totally crash unity 2018.4.30 . The only way to turn on project again, was removing Umotion folder

Answered

Motion Paths

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

Hello,

Is there a feature like Motion Paths in Blender or Trajectories in 3DSMax?

This feature is very useful. I really hope UMotion has it.

Answer

Hi,
thank you very much for your support request.

Unfortunately UMotion does not support motion paths. I've took a note on my "ideas for the future" list but can't promise anything as of right now.

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

Best regards,
Peter

Answered

picking up items

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

Hi, I'm trying to create a point n click adventure with objects to take and interact with and also interaction with other characters with objects. I would like to have a hint how to create the interactions. The questions are:

  1. How to pick up items - If a glass is on table, should I have a connected but pinned glass object or instantiate a new one in the hand when taking takes place or parent the one on table with the hand?
  2. Putting the object away - I already have an animation where the character puts object in the back pocket (no matter how big the object is) and I wish to use it - should I have the objects parented to an empty back pocket object and turn then visible and parent them to hand when picked or have them parented in the hand and turn them on after picking them or instantiate them when picking up and parenting to hand?
  3. Giving object to another - When giving (or giving like throwing a knife) an object, should I have both characters have the similar object hidden waiting for the exchange or swap the parent of the object to another when interacting? (I assume here the Timeline sync is needed.)

Or do you have some other great idea how to approach my needs?

regs

eetu

Answer

Hi,

thank you very much for reaching out.

All methods that you described are feasible, it's probably more a thing you can decide based on your person preferences (and how it fits into the other systems you use in your game). A few things to consider:

  1.  Re-parenting is usually faster than Instantiating/Destroying and also allocates less memory garbage. But as you're doing it at a very slow interval (only when the user clicks something), you won't notice the performance benefits.
  2. If your objects store some internal states/variables, re-parenting might be easier (as all states are kept). If you switch between new instances, you might have to copy those states.
  3. If the offset between the player and the object you want to interact with can be different due to player input, you might need a runtime IK solution to adjust your pre-made animation to reach the target object correctly. UMotion's IK is baked into the animation, so it can't serve you in this situation.
  4. Make sure your animation is not directly referencing a picked up object that you are then removing (either because it is re-parented or because it is destroyed). This makes the animation point to a transform that doesn't exist anymore. You can instead use an empty GameObject as "anchor" transform that always exists. Parent picked-up objects to this anchor. Move the anchor in your animations, instead of the picked-up object.

Please let me know if there is anything else you want to know.

Best regards,
Peter