Blender to UE4 FBX morph targets

Shape keys in Blender (Morph Targets in UE4) are incredibly useful but there are still some issues with the Blender to UE4 pipeline to be aware of.

Selecting “Faces” for smoothing in the FBX export can result in UE4 crashing, selecting “Normals” works around this (but obviously may cause you other problems with smoothing) – apparently it was fixed in Blender a couple of months ago but doesn’t seem to have made it into the version I’m using (2.74) as I am getting UE4 crashing. So you may find this unnecessary.

“Apply Modifiers” can apparently cause issues with shape keys.

Scaling a group of vertices down to 0 so they overlap at exactly the same coordinates can cause the shape keys to not work in UE4, scaling to something very very small like 0.01 will make them practically invisible without breaking the morph targets in UE4.


Blueprint Return Node behaviour

I’ve just discovered the hard way that if:

  1. You call a blueprint function that returns a value.
  2. You call the same function but the logic results in it not returning a value.

It will return the value it returned the first time. It will continue to return that value every time you call the function until the logic explicitly hits the ReturnNode and returns a new value.

It’s not entirely unreasonable behaviour it’s just not what I’d expected it to do (I thought it would return None).

The moral of the story is:

Always connect all of your logic paths to the ReturnNode.


UE4 Instanced Static Mesh and NavMesh

Having just spent hours on this problem I’m posting here.

I have a simple square made up of Instanced Static Meshes, I’m then trying to run around on them and it just won’t move even though seemingly everything is working. I can see the NavMesh is not generating anything on them, and it will if I put some other static mesh in there, but I don’t know why.

Having beat my head against this one and tried everything ever suggested on the subject I did the obviously-not-going-to-work-but-clutching-at-straws-thing of restarting UE4. It now works.