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

ArchLinux, but that appears to have worked

hi, is this 2nd light map? before when I make some test in UE4 i just normally do UVEdit my model then import as fbx inside UE4 but I never had a chance to know that 2nd light map since ue4 is automatically made that for us, can you please explain if we can make a 2nd uv map inside blender before exporting to ue4 is beneficial or not? because 2nd light map in ue4 is a mess and sometimes people had problem with it.

Can you confirm that it works? If so, we should find what the problem was so that I can incorporate the fix in the github version.

Try this one:
file deleted

If you carefully create lightmap uvs in Blender instead of auto-generating it in UE4, most of the time you will be able to use lower lightmap resolution (faster light building!) without losing quality, that is if you know how to do it right.

default='PNG' works.
default=prefs.texture_format_override does not.

Looks to me like that’s potentially a loop condition? You should set the defaults in the #UI elements to the prefs, but the prefs themselves have to have an assigned default from the tuple. That will be preserved in user settings if it’s changed.

In AddonPreferences:

    texture_format_override = EnumProperty(
        name='Override',
        items=(
            ('TARGA', 'TGA', ''),
            ('PNG', 'PNG', ''),
            ('TIFF', 'TIFF', '')
            ),
        default='PNG')

Scene property (part of a PropertyGroup):

    texture_format_override = EnumProperty(
        name='Override',
        items=(
            ('TGA', 'TGA', ''),
            ('PNG', 'PNG', ''),
            ('TIFF', 'TIF', '')
            ),
        default=prefs.texture_format_override)

This structure works with all the other props.

This is interesting… I doesn’t like my prefs set to TGA. If I change that back to PNG it works either way.

Found it. In AddonPrefs it’s called ‘TARGA’, in the scene prop it’s ‘TGA’. (Just take a look at my previous post.) They should match, ‘TARGA’ is the string Blender Uses.

Try this:
file deleted

:+1:

Works! I forgot about that. Been a while since I checked the image strings.

Added the fix to github.

These seem to be very useful tools, I will test them the next time i need to export something.
Does the “pick bones to export” work with rigify? I know that the built in fbx option “export only deform bones” doesn’t really work well because how the deform bones are parented.
an other question: You used to an animation tools addon (that’s how i found out this page), but it’s no longer on github. If i get it rigth it used to have a function to retarget animation between the same armatures with different rest poses. Any plan to reupload this addon? it would be useful to me, thx.

  1. If you want to use it with rigify, uncheck export all bones, don’t pick any bones to export (leave the list empty) and define a simplified version of the skeleton in the Extra Bones list. Also, check Constraint To Source and Rename Vert Groups. Rigify creates rigs with a very complex hierarchy, bones have lot of in-between parents with a million constraints, those rigs can only be exported if you build a simplified version of the skeleton and constrain it to the Rigify rig, and that is exactly what the Extra Bones feature does for you every time you export.

  2. I reuploaded the GYAZ Animation Tools addon: https://github.com/helluvamesh/GYAZ-Animation-Tools.

2 Likes

Totally what I have been struggeling with. Just wanted to link to this comment, perhaps it’s something you can take into consideration?

Morph retarget as for skeletons… Actor/Character hierarchy

The general idea here is that the Actor/Character object hierarchy (in Unreal 4, that is) could be “extended” so you would have the option of more or less more advanced skeletons, riggings, animations and morphs (possibly more) - where you would enable reuse/refurbishing(sp?) of all these parts.

What seems to be missing is some general retargeting options where you would have parallel “ghost versions” of your actors… as such there should be no reason why you could not add your UR4 characters to be part of your MB-Lab - and then seamlessly go from UR4 to Blender and back again.

There are probably some rig/deformation issues etc. that needs to addressed, but with the prospect of having an expanding library of Actors it seems worth looking into…

It’s not clear what you want and I export morph targets and morph target animation to UE4 from Blender without any problem. Explain yourself better.

1 Like

I’m sure you do, but to make this even better, your efforts regarding renaming bones etc. appears to be like what is called animation retargeting in UR4.

Skeleton Assets: Anim Retargeting Different Skeletons | 03 | v4.8 Tutorial Series | Unreal Engine


So you can share animations between different skeleton, say you can use all of the Mixamo animations and combine them with those you make in Blender. You could have; native UR4, MB-Lab, Make Human, and homemade actors. side by side - and if you preserve the ‘retargeting information’ you would not need to do this over and over again, say for all your MB-Lab/Make human mesh … this is perhaps also what your tool does.

But add to this that you could get this even more! You can create your base characters-mesh (let’s call this template-meshes) on top of the UR4 actor/characters, and then when you import to that UR4 reference, you should inherit the full range of template-functions. You should not need to add any animations to your specific actors… you could though add animations/morphs/blueprints etc. to the templates and it should work at first shot! (However; I realize that I need to get a better understanding of the Actor/character class objects, in order to figure out if this would work! )

1 Like

If you mean the Extra Bones feature, no it’s not retargeting, it’s just a way to build a simplified skeleton on export from a complex one like a Rigify skeleton. Two skeletons having bones with matching names does not replace proper retargeting. The difference in the rest pose, in bone roll values and in bone lengths remain unchanged.

Well this is part of my point… I think - if you could export both: the simple skeleton ‘and’ the advanced one, then you could retarget in UR4 to get both? I don’t know if that makes sense… but in my attempts to export/import MB-Lab characters I get mixed results… getting the morphs but losing the skeleton - or getting morphs but losing the skeleton.

I better try it out… and get back if I can make my point!

I tried this addon, but only for static meshes, it works great. For skeletal meshes I have a similar script already which works well for rigify.
but to answer AssetDK: the idea is that the game engine only needs the deform bones and those deform bones are , like the main skeleton, very similar in all humanoid type, that’s why retarget works. The rest of the rig are the control and mechanic bones that help the animator making animations in blender but since those are not deform bones they are useless in ue4. The script stripes the control bones from the deform bones and exports only the latter.

Exporting morphs along the rig is usually not a problem, but there is one important setting in fbx: applying modifiers must be off (if I remember rigth). otherwise the morphs will not be exported.

1 Like

Thanks that explains a lot - I am getting sidetracked a lot of stuff in UE4… but I will get back to this as I go a long! (totally too much I really want to do, and too many options that I don’t know… yet… :wink: )

Would i make sense to keep the deform.bones thoug, perhaps for future use - say you can make UR4 update on the fly (Take a look at https://www.youtube.com/watch?v=yP4ygKHwlS0 or part 4). Should you simply keep have your work in sync, between the two always…

( It Looks like the developmers at UR4 have the same issues, incremental development where characters get more and more out of sync… as seen in that YT series - if you have such tools as MB-Lab, you should have no problems keeping skeleton-upgrades and retargeting in sync.? )

Sorry, I try this Using a MB-Lab generated character, and I think I did not mess with any of the options - but a message “Armature has no mesh children”… what am I doing wrong? (this is in 2.79 - i did not manage to install it in 2.8)