GYAZ Export Tools (Seamless Blender To Unreal/Unity (FBX))

My guess would be that you have to apply scale (CTRL + A).

In a correct character setup the armature and the meshes have no transformation (location: 0, 0, 0; rotation: 0, 0, 0; scale: 1, 1, 1). The addon clears transformations to ensure there’s no accidental transform that could ruin things on import, that’s why the mesh gets resized.

So, you should apply all transforms on all objects of the character, I’ll PM you the corrected file. Take note of the character standing right on the floor facing -Y axis (Blender forward axis).

Just had the time to look into this topic again and got my skeletal mesh with some animations into UE4 properly this time. Works nicely!

Would it be possible to have an option to export children meshes in the same fbx as the parent you export?
Also maybe a way to exclude a certain type of object from export? In my case I don’t want boolean cutters (that are children objects) to be exported. Maybe check if they are set to wire display, or hidden?

It’s been there since day 1.
pack_objects

Use the Export Filter panel to exclude objects from being exported.

Pack object requires you to select all the children before exporting, I was wondering if it could be done automatically when selecting only the parent.

Export filters do exactly what I wanted, sorry for asking… I was under the impression these were not persistent and would reset after exporting, my bad.

When exporting skeletal meshes, children of the armature are gathered automatically but when exporting static meshes, they’re not. So, yeah there could be an option to gather children or all objects from the same collection.

1 Like

Hi!

Really great add-on with lots of comfort functions. One thing that does not work for me, though, are the prefixes as I prefer to use suffixes except for Textures (see my style guide here based on Allar’s work). Do you think it would be possible to add the option to decide per asset type whether it’s a prefix or suffix?

If that’s too much of a hassle for you, having the general option of using suffixes instead of prefixes would also save me some time already. :slight_smile:

In any case, keep up the good work!

Update 2.80.11:

  • An asset prefix is now used as a suffix, if it starts with an underscore:

    • SM_ --> SM_Name
    • _SM --> Name_SM
    • prefixes are defined in Edit > Preferences > Addons
      (asked by @zaha)
  • New options to gather objects from the collection of the active object including or excluding nested collections

    • Asset Type > Static Meshes / Rigid Animations > Active Collection, Nested Collections
    • The Export Filter panel sets a flag that is still respected in this mode.
      (asked by @chafouin)
3 Likes

Awesome, man. Thanks a lot! :slight_smile:

Why version for 2.79 not working with latest 2.79 e045fe53f1b0

Traceback (most recent call last):
  File "C:\progs\blender2797\2.79\scripts\addons\gyaz\export_tools.py", line 2763, in execute
    checks_plus_main ()
  File "C:\progs\blender2797\2.79\scripts\addons\gyaz\export_tools.py", line 2667, in checks_plus_main
    main (asset_type, image_info, image_set, ori_ao, ori_ao_name, ori_sel_objs, mesh_children, meshes_to_export, root_folder, pack_objects, action_export_mode, pack_name, lod_info, lods, export_collision, collision_info, export_sockets)
  File "C:\progs\blender2797\2.79\scripts\addons\gyaz\export_tools.py", line 2200, in main
    export_info = export_objects (filepath, objects = [final_rig, child])    
  File "C:\progs\blender2797\2.79\scripts\addons\gyaz\export_tools.py", line 2100, in export_objects
    ex ()
  File "C:\progs\blender2797\2.79\scripts\addons\gyaz\export_tools.py", line 2094, in ex
    bpy.ops.export_scene.fbx (filepath=filepath, version=version, use_selection=use_selection, global_scale=global_scale, apply_unit_scale=apply_unit_scale, apply_scale_options=apply_scale_options, axis_forward=axis_forward, axis_up=axis_up, object_types=object_types, bake_space_transform=bake_space_transform, use_custom_props=use_custom_props, path_mode=path_mode, batch_mode=batch_mode, use_mesh_modifiers=use_mesh_modifiers, use_mesh_modifiers_render=use_mesh_modifiers_render, mesh_smooth_type=mesh_smooth_type, use_mesh_edges=use_mesh_edges, use_tspace=use_tspace, use_armature_deform_only=use_armature_deform_only, add_leaf_bones=add_leaf_bones, primary_bone_axis=primary_bone_axis, secondary_bone_axis=secondary_bone_axis, armature_nodetype=armature_nodetype, bake_anim=bake_anim, bake_anim_use_all_bones=bake_anim_use_all_bones, bake_anim_use_nla_strips=bake_anim_use_nla_strips, bake_anim_use_all_actions=bake_anim_use_all_actions, bake_anim_force_startend_keying=bake_anim_force_startend_keying, bake_anim_step=bake_anim_step, bake_anim_simplify_factor=bake_anim_simplify_factor )               
  File "C:\progs\blender2797\2.79\scripts\modules\bpy\ops.py", line 197, in __call__
    ret = op_call(self.idname_py(), None, kw)
TypeError: Converting py args to operator properties: : keyword "version" unrecognized

location: <unknown location>:-1


That version is of Blender is considered EXPERIMENTAL = UNSTABLE, they are making undocumented changes to it every day. Addons should be considered to work with the stable releases.

latest 2.79 stable release:
https://download.blender.org/release/Blender2.79/
latest 2.80 stable release:

1 Like

i know it, but in that version additions to weight paint mode, thats why i use it, it’s sad that your addon doesn’t work in it

I’m maintaining 7 huge Blender addons, so I can’t support experimental versions too. Updating all of them from 2.79 to 2.80 was no fun.

Something a friend of mine noticed today: The “root” bone has to be named in all lowercase. Can you make this case insensitive or, in case UE4 requires it to be all lowercase (think I read this somewhere but I’m not sure), maybe explicitly state this in the documentation?

May save some people a lot of time and headaches. :wink:

You are expecting this dev to keep up with simultaneous experimental branches. There are the release versions, and 2 experimental branches of 2.79 and 2.81 I hope you understand that trying to keep up with this kind of thing is a lot of work. Not just that but this makes versioning so hard. Basically this dev needs to release 4 different versions at the moment or turn their code into pasta to keep up w all those versions independently.

Relax tough guy, i’m not expecting anything.

Why version for 2.79 not working with latest 2.79 e045fe53f1b0

It sounds like you actually do. In any case you got the message from the original dev.

The code is open, feel free to fix it the way you need and make a release for 2.79 nightly.

Update 2.80.12

From now on, the root bone does not have to be called “root”, the name should be specified manually in the Export Bones panel and is saved into the armature preset. The default root bone name is still “root” as before.

Why not auto-detect?
In Blender the actual root of the bones is the object, so if you create a root bone for hand animation, it’s up to you to make it the top of the hierarchy, so the root bone can’t be safely detected since there can be any number of bones at the top of the hierarchy. That’s why it has to be identified by name.

1 Like

I stumbled today over the question of polygon budget for game engines and how to measure it (triangles vs vertex count). Vertex count seems to be the better metric here, but Blender does not show the “real” vertex count as it matters for game engines. I quickly found an outdated add-on that shows the game-engine relevant vertex count:

Do you think it might make sense to integrate this into your export tools? Maybe not on a real-time basis as done in the add-on as this seems to be quite taxing and freeze up Blender, but as a button for on-demand statistics.