Upcoming "Send to Unreal" add-on for Blender Feedback

To improve the Blender to Unreal Engine workflow we’re developing a “Send to Unreal” add-on for Blender.

Please provide feature requests and notes to this thread!

**CURRENT FEATURES

Validations:**
Check if asset has geometry
Check if asset has unused materials
Check texture references
Check asset LOD names
Check LOD vertex budget
Check if actions are stashed
Check if actions are mutedOn

Export actions:
Stash and unmute all animations(this makes sure that your active animation and all your stashed strips are always exported)
FBX Mesh smoothing optionsUnreal

Import Options:
Import Materials
Import Textures
Import Animations
Import LODS

**Launch Import UI **(allows you to set all fbx import options in the UI for a unique import)

Mesh import path within the local project from the open editor
Animation import path within the local project from the open editor
Paste in the copied reference to an existsing skeleton in your unreal project

Glad to see the work. This is long overdue. I can not wait to enjoy this addon!

Hello!

Nice stream today. I am really excited with this addons that you are working on.

Here is what I would suggest.

Possibility to:

  1. Export custom hand made collision from blender to UE4.
  2. Export check box to use the pivot point of the asset during export instead of the scene 0,0,0 location.
  • Take the mesh location in a variable.

  • Place it at the 0,0,0 of the scene.

  • Export it to UE4.

  • Place the mesh back to is original location in Blender.

Keep up the great work and can’t wait to be able to try out our awesome tool! :slight_smile:

Really needs support for exporting collision meshes in my opinion. Unreal’s automatic collision mesh generation leaves a lot to be desired…

There are also a couple of MaxScripts created for advanced material effects, namely PivotPainterand the Vertex Animation Tool which are exceptionally useful (to the point where its almost a necessity in my opinion) for getting highly dynamic worlds with good performance. As I recall from previous demos, Fortnite is using both of these. I hope you’ll consider porting these to Blender and integrating them with your addon. There are currently third party ports of these scripts but it would be nice to have them integrated into the Send to Unreal addon so that they’re actually maintained and don’t have to be exported/imported separately from multiple addons.

First of all, I really love the idea of a tight integration from Blender to UE as shown in the livestream. Many thanks to and Kaye for putting in the hard work, keep it coming!

In the livestream it was said that the add-on set’s the unit scale to 0.01. As Workman mentioned in the Blender to Unreal Engine livestream in October this causes some things (physics, lighting, …) to become weird in Blender. From my own experience and what I heard a lot, it’s best to keep Blender in the default scale. It would be a great achievement for Blender with UE if this add-on could get rigs, animations and sockets to work with Blender in the default scale of 1.0 to steer clear from any of these issues.

It would also be nice to see an option to export what’s selected in Blender instead of using fixed collections. That’s the common approach for most export addons I’ve seen so far, but that would be icing on top. The scale issue is crucial IMHO.

Anim curves please like how maya exports it

Why exactly is it that they can’t just release the add-on already if it’s already working?

Hey, it’s author of Mr Mannequins Tools! https://forums.unrealengine.com/comm…rials/1661319/

For me personally there’s a few (almost) essential settings in order to be able to stop supporting my Mr Mannequin compatibility export and use only a “Send To Unreal” button. These are settings i would require for a pipeline regardless of my add-on.

  1. Dynamic scaling for any unit scale (even just as an option). Using a scale of 0.01 while accurate to UE4 makes for a bunch of incompatibilities with animation and physics within Blender, things like cloth simulation can sometimes become almost impossible below a scale of 1.0. I already support this in Mr Mannequins Tools for exporting animation, meshes and armatures, the math for it is pretty straight forward: object scale on x y and z * (100 * bpy.context.scene.unit_settings.scale_length) while doing this can sometimes lead to very tiny errors it makes no noticeable difference although doing it to animations does require iterating through and scaling keyframed locations through the fcurves prior to firing the export and after scaling the armature.

  2. “Use Only Deform Bones” FBX export option. This is not about exporting only bones with weight it’s a simple and easy way of excluding bones that are not needed within the engine such as pole targets, IK targets and various other bones used for more intricate animation techniques in Blender.

  3. “Export Only Selected” option is also a must for anyone that wants to have control over what’s being exported. Especially in scenes with many objects.

  4. All the FBX export options relating to animation! They all have uses although some of them are niche, many people do not like messing around with the NLA editor (especially beginners) so being able to ignore the NLA stack and simply export the active animation as it is would be some great functionality.

To be quite honest it would probably be for the best to expose all the FBX export settings and simply keep your preferred defaults as many more advanced users will be needing access to them.

Thanks for the amazing stream and i can’t wait to see more! If you guys really can fix the bone orientation both to and from Unreal Engine it would mean a lot less time on coding and support for me and i would be able to really focus on making advanced rigging techniques easy to use, as well as continuing the work i’ve started in the coming update 1.3 which covers retargeting animation within Blender and modular DIY rigging.

I cannot wait for the source code to be available i will help out as much as i possibly can!

Edit: I (and many others) would love to see sockets both exported and imported to and from unreal engine with Blender :wink:

I’m not a good programmer and I do not understand how FBX work (I mean inside, deep on base coding) but what think is on my minde. If Blender and UE use same format file (FBX) but one join bones by head and other one by tail… is not possible to make and loop event for every bone to unbinde that bone, rotate it and binde it back? Or deep, inside coding is not a option to translate tail as head and vice-versa? Because some how two different software use same file format but thei fliped tail and head bone =]]

Sory for my english, in not my first language. And also sorry if this question is stupid/dump but I never got with programing inside 3D models or rigs area.

nice to see blender getting some love, i always wished someone would have just made a .blend file importer/exporter add-on for UE4, would of been sweet :).

​​​

you wanna hear something funny, the whole having to use 0.01 is all down to blender users because they just had to have the “m” next to the numbers showing size/location…ect, if they had left the units and unit scale alone(so the original default settings) and then just used the default blender units as cm nobody would have to deal with it as it is now.

pretty much shot themselves in the foot

I was actually looking at the Python API for Unreal Engine last night and was checking out the code here: GitHub - 20tab/UnrealEnginePython: Embed Python in Unreal Engine 4

I think importing from a blend file could actually be possible! Or rather it would be more re-creating the contents of a .blend inside UE4 as .uassets not so much importing a usable file format :wink:

I might put some time into attempting this, though i’d really rather let these amazing people at Epic do the import/export stuff as they have a more intimate knowledge of the UE4 side code.

And yeah the whole 0.01 scale thing is kind of crazy, like internally Blender functions in meters and radians and has built in conversion functions already, otherwise they wouldn’t be able to show degrees and centimetres in the interface at all. It’s also super mad that some people even say you need to set Blender to centimetres in the scene settings! Like that’s a purely cosmetic thing haha.

2 Likes

well, importers/exporters are essentially file converters so other apps can read/use the data so i’m sure it could be done.

yes and no.

originally blenders units were set to none by default and 1 blender unit just happened to be the exact same size as 1 unreal unit so for years blender had a 1 to 1 scale export but when you set blender to metric(like everyone did after UE4 released because they found out unit scale in unreal was set to 1 UU = 1cm and they all thought they had to do the same in blender) you were basically telling blender to use 1 blender unit as 1M so if you made a model 10M tall (aka, 10 blender units tall) and exported with scale set to 1 your 10M tall model would only be 10cm tall in unreal because blender had exported it as 10 blender units tall. That’s when the workarounds of setting the unit scale to 0.01 and exporting with scale of 100 started(partly my fault for telling everyone what to do if they wanted to set blender to metric) and then at some point between blender 2.74 and 2.79b the blender devs either changed the unit scale in blender or fudged the fbx exporter so you didn’t have to scale X100 during export because blender automatically scaled it up by 100 and those changes are still there now.

TLDR: blender had a 1 to 1 scale export for years but peoples insistence on setting blender to metric just so it showed the “m” next to values is why everyone has to still deal with the scaling nonsense after all these years :slight_smile:

except for me because I’ll be sticking with 2.79b(don’t like 2.8+) and my tweaked old exporter that still has the 1 to 1 scale export for static/skeletal meshes and animations ;).

oops, derailed the thread a smidge, my bad :o.

back on topic:

if I were to use blender 2.8 and the “send to unreal” tool i would be happy with the following features.

for static meshes:
the meshes/objects with smoothing(obviously and already there but felt wrong not to type it:D)
materials with at least the diffuse hooked up already.
multiple custom collision meshes.
and LOD’s.

for skeletal meshes:
again meshes/ objects with smoothing/mats and diffuse (still felt wrong,lol).
individual or multiple animations at their set lengths
morph targets plus anim’s(if they have any)
LOD’s
the sockets mentioned above would be good
the export settings mentioned above would also be helpful
not sure if it would be possible but maybe custom physics asset through some kind of naming convention like UCX for SM’s

other:
cameras(including animated cameras), could be useful for games and cut screens/cinematic’s.
maybe lights too, could be useful in some circumstances.

not sure how many of those are already there as I didn’t see the stream but that’s my 2 cents anyway

I’m most interested in animation/shapekey export/import. I don’t have anything specific to request except that please take a look at Mr Mannequin addon, which is the dedicated work by Jim Kroovy. I think it is on the way to be the best option for rigging/retargeting characters from ue4.

I’m just adding to the chorus of 1000 voices telling you folks at Unreal that you need to drop the FBX idea and make your own importer/exporter to actually allow for everything.

Currently, unless you use my plugin that modifies FBX export to include animation curves (http://mosthostla.com/gamedev/ue4curves) you won’t have the possibility to just export an animation inclusive of animation curves.
You may want to try it out @dandezign

Likewise, because the FBX export in blender does not implement vertex paint correctly, you won’t be able to vertex paint a mesh and import it to UE4. (guess I’ll get back to trying to patch the FBX export to include those…)

Last but not least, IF you won’t or cannot make your own import/export system and file format, then you need to give users the ability to select a different FBX export then the stock one.
Since it seems rather clear that the stock FBX export will never cater just to Unreal -rightfully so, blender needs to support any application- a specific one can/has already/and will be built to handle the way unreal does certain things.
Users should be able to choose which export script to use.

Additionally, the whole “move this to that collection” thing you currently have going on feels troublesome to say the least.
Meshes usually NEED to be parented to the Armature. The process makes the rig and the mesh One object. Splitting them apart is a bad idea for consistency imho.

Setting a mesh to using complex collision is a BAD substitute for allowing to export proper UCX UCB etc. Parts of the assets.
Which also brings back to LODs.

traditionally LODs are handled by associating the mesh to the LOD via an empty.
the way the plugin works now is opposite to that.

How is it going to work with a mesh that has 5 or 6 LODs to go along with when the user needs to move the item around?

It won’t. Or you’ll have to hand select the appropriate meshes to do so, they’ll be split across collections, possibly sub collections, and that’s yet another reason I see having the collection split thing as a horrible idea.

With 1 empty that contains them all the problem is solved.

If anything, the way the empty works should be extended to also handle the collision meshes.
it’s not uncommon to have 30 UCX meshes for simple collision on a cylindrical object of some sort.
if you pair them all up within the same empty you can move the item around freely…

This could not be more accurate! We need something better than the FBX export Blender has to offer above everything else.

And LODs are currently pretty easy with the export as it is right now for both static and skeletal meshes… assign an empty, do some naming, add a custom property and they go right in!

Collision can also currently be sent through in a similar way for static meshes but i have no idea about skeletal ones…

I don’t know if this was mentioned towards the end of the stream as I skipped that part but are there plans on having a toolbar or something like that inside blender. From what I see right now to change settings, skeletal mesh to use for the animation exporting and the directories you have to go to the add-on setting every time which seems inconvenient and a toolbar like for example the one Mr Mannequin Tools has (https://i.imgur.com/qkkDPnw.png) would make the workflow when working with multiple models or just switching between them a lot faster

Great job with the addon, thank you for working on it!

The new 4.24 hair system is advertised to work with alembic grooms from e.g. Maya, but there’s nothing about Blender.
Now I know that the add-on is .FBX based, but having a way to easily import Blender hair into the new UE hair system would be an awesome addition.

I’m now interested in learning and mastering Blender lol

Skeletal ones generate the PHAT in engine - usually dependent on the bones. I’m not sure IF you can actually add custom collisions to it - I really never tried it.

The main problem here is that we have no real content example to see what is what.
IF we did, I’d have probably added an exporter for it to my plugin already. Since I have never seen the kind of file they use I’m at a total loss when reading the information the docs released. (read as: I can’t even get it to work with Maya or Z brush, both of which the epic team uses as shown in various talks for the DigitalHuman stuff ).
So while it is related, particularly to what I was saying about moving away from FBX entirely - I don’t really see the plugin as being the solution to it.

At my shop do a lot of work with blender and UE 4.2x, but the part that is consistently the biggest trouble for us is rigging. Blender rigging isn’t quite as simple as Maya, and setting up the rigging in Blender for UE4 produces all manner of headaches.