Answered

Export only humanoid bones

Anonymous 3 years ago updated 1 year ago 8

Hello I bought Your system :)

Its really cool, but I have 2 questions:
1. How to export only humanoid bones when exporting animation to fbx. I want to export only what is necessary for animation, no additional empty game objects of my object. I know System is basing on what is in Character that I edit. But basically, if that is humanoid It And I have dozens of animations (mainly we use only skeleton if fbx with animation ) I dont like the thing that system dont have option like: "Export Only motion for humanoid" or something like that.

2.How to get rid of the need of renaming all objects if they are called the same? Cant it be done automatic way on export like changing it to some 1,2,3 etc if there is problem with fbx

3.I exported my animation to actual fbx, but it seems like it is connected to old one animation in the same fbx, when I choose that animation both animation are chosen at once, some problem with meta files or something? Overall my workflow is to keep in the same fbx animation of old anim (I rename it to OLD or something like that) and new animation, everything would be good if not the thing I described that when selecting one anim unity select both of them so replacing it is impossible.

UMotion Version:
Unity Version:
Answered

Hi,
thank you very much for purchasing UMotion Pro.

How to export only humanoid bones when exporting animation to fbx

In order for your animation to stay compatible with the humanoid animation system, you need to use the "update existing file" method when exporting to FBX. In other words your animation needs to be written into the FBX file of your character (or a duplicated version of it). This ensures that your humanoid avatar configuration is exactly matching the one of your character.

If you would export your animation as a separate file (without the mesh data of your character), you typically get animation re-targeting issues.


2.How to get rid of the need of renaming all objects if they are called the same? Cant it be done automatic way on export like changing it to some 1,2,3 etc if there is problem with fbx

It could be done automatically but then your animation will use the new generated names and your character still has the old names thus your animations won't work. I would rather suggest to follow a clean approach: Open the fbx file in a 3D modeling application of your choice and give all bones/transforms unique names. Once you have that, start animating.


3.I exported my animation to actual fbx, but it seems like it is connected to old one animation in the same fbx, when I choose that animation both animation are chosen at once, some problem with meta files or something? Overall my workflow is to keep in the same fbx animation of old anim (I rename it to OLD or something like that) and new animation, everything would be good if not the thing I described that when selecting one anim unity select both of them so replacing it is impossible.

Please further elaborate what you mean by this. What do you mean by chosen? When and where are two animations chosen?


Some background information: All animation clips / takes that are actually inside an FBX file are considered to lay one after another (like one huge animation) by Unity. In Unity's model import setting, you can now define which part of that huge animation you want to import as separate animation clip. These slices are defined by start/end frames relative to this "huge" animation. When exporting into an existing FBX file, UMotion automatically creates a "slice" for your new animation.

So in other words, you can import a completely different number/combination of animation clips from an FBX file as there are actually in it. Check the start/end frame times of your "slices", maybe they are wrong and thus your animation contains not the correct data.


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

Best regards,
Peter

1.Yes but I dont care retargeting slightly problems, that is how humanoid works :) We use Your system to mocap animations fixing, for example we have male humanoid animation that is broken in some parts, It is only a specific skeleton that we want to keep (skeleton without any other meshes or bones So I cant use it for previewing it in u motion) Then this animation is used on many characters so slightly retargeting issues are ok, This is why we use humanoid animation to retarget it in another case we would use generic.   So I would like to just fix many of that mocap animations and keep them in the same structures and when I use any of my characters it don't keep that animation structure but it keeps that character setup that I don't want. So Let me know if there is an option to export only edited humanoid skeleton animation not all elements of character additional bones etc that I dont need. What I describe is most often the workflow when devs do mocap, All mocap animations are kept with only skeleton without mesh textures and additional bones cause it takes place in the project and complicate things.  So It would be great to be able to save it the same way


2. Here we again back with humanoid, That characters prefabs are complicated they contain not only what is in FBX also there is no problem with bones named the same, but The problem is with some LOD meshes etc. So Maybe When the project is set to Humanoid animation, You should consider Here only Humanoid bones? and there will be no problem in most cases. I mean I understand that humanoid bones should have different names and they have, but in actual workflow to preview animation with only skeleton I need that character prefab even If I want to export only skeleton from my animation


3. Yes I know it should be full long anim, but after exporting fbx from Your system, there is no animation after animation. It just add dropdown list, where animation Shows when You change it so the old anim is first position on that list, and the new anim is in the second position (It is called "take") and in the editor where I try to select one animation it selects both of them so they are in some way connected.



Overall I think Your system is really Professional and awesome I just wonder about this kind of mocap animation fix:


1.Load Skeleton animation to U motion without any mesh (Like most dev use with mocap)

2.Show U motion on what character on the scene should it retarget that animation so we have a preview of thet animation on any humanoid prefab we want.

3.Edit animation and fix problem

4. Export that skeleton animation but basing not on a character preview that we actually retarget but on skeletonal animation that we imported.

5. This way we would keep exactly the same skeletonal animation structure as we imported without any additional stuff, we dont have then problem with doubling names of fbx. basically all problems are gone.


Do You think this kind of workflow is possible with Your system?  That would be deal-breaker for people who work with humanoid mocap anims.  Cause this is how mocap workflow is, You use only skeleton and anim files, and this is why there is a problem with previewing and editing it. In Your software everything works great, but You focused on exporting the structure of the character You are previewing animation, not on imported animation skeleton structure and that's a problem when working with mocap.


I Hope I explained it well. :)

Ok I get your point.


Unfortunately it's not possible to edit the mocap FBX while live-previewing the changes on a humanoid character. It's also not possible to edit the mocap animation on character A and then directly export it back to the mocap FBX file. It is doable though with an re-targeting step:


  1. Import and edit your animation on an arbitrary character (this re-targets the mocap animation to your character).
  2. Export the humanoid animation either as *.anim or as *.FBX (but into your character's FBX file).
  3. Drag & drop your mocap FBX file into the scene to create an instance of the skeleton the mocap FBX used
  4. Create a new humanoid UMotion project and assign the mocap skeleton from the scene to the pose editor.
  5. Import the previously exported humanoid animation in UMotion. This is now re-targeting the animation from your "editing" character back to the mocap skeleton.
  6. Export your animation using the FBX exporter. I recommend using the "Update Existing File" mode and select the original mocap FBX file as destination.

Another possible method would be to create a character/mesh that is using the exact same skeleton (a duplication) as the mocap files. Then you could use that character for your editing. As the mocap skeleton and the characters skeleton are equal, you can now export directly back into the mocap file.


I hope this helps. Let me know if you have any follow-up questions.

Best regards,
Peter

Hello

Second way is much simpler. The problem is that it probably still will export mesh and other object here. IT would be great to have such an option like "Export humanoid animation only" and then You export only bones that humanoid use notghing more. I think that would be not so hard to implement? What do You think. That would help a lot here, Cause then as You said I could prepare preview character with exactly same skeleton like mocap, but with that option it would not export mesh or mesh game objects with it (we have characters that have diferent meshes like hair, clothes etc and even if it dont export meshes it still export its empty gameobject) Let me know if implementing this option would be possible.


Regards

The problem is that it probably still will export mesh and other object here.

No mesh data would be included in method 2: Create a character that only has the identical bones of the mocap file (aka only the humanoid bones), without any additional bones for clothing or things like that. Use that character for your UMotion project. Edit your animations and then export the animation back into the FBX file of the mocap (that has no mesh data). UMotion does not add any mesh data to FBX files on export (it only would keep them if they are already within the FBX file).

Please note that for this method to work, the mesh needs to be skinned to exactly the same (= a duplicate version) of the skeleton the mocap FBX files are using.

Hope this makes sense. Let me know if you have any further questions.

Best regards,

Peter

Thanks for the reply I just don't understand that part of Your explanation:

"UMotion does not add any mesh data to FBX files on export (it only would keep them if they are already within the FBX file)."

You earlier said that I should use exactly the same skeleton that I use with mocap with only necessary elements, But even if We use only Body mesh, it will be exported as an empty object in fbx or even as mesh  cause You said  "(it only would keep them if they are already within the FBX file)"   

Or You mean we should override actual fbx? Could You clarify that.

UMotion has no code that can write mesh data to fbx file. If you use the "Update Existing File" method, it just writes animation curves into an existing FBX file. If this file contains a mesh, then the mesh is kept in the file. If the file does not contain a mesh, then UMotion is also not going to add one to it.

You can also use the "Update as new file" method, in that case only skeleton data and animation data is written into the fbx file (again, no mesh data).

When working with humanoid, it's recommended to use the "Update Existing File" method!


In case of method 2 that we discussed earlier, use the "Update Existing File" method and select the mocap FBX file (or an exact duplication of it) as destination file. Please note that this only works when you have used a character that is using precisely the same skeleton as the one found in the mocap file.

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

Best regards,
Peter