Blender imported animation is smaller than the mesh

Hello, I’ve successfully imported my mesh with no animation to UE4 but when I import an animation it’s about 100 times smaller than the mesh. I’ve tried everything, renaming “armature” to something else, setting the scale to 100 in the FBX export settings, changing the units to 0.01, scaling up my mesh in blender.
The only thing that works is changing the uniform import scale in the UE4 importer, this works but I’d like to fix this issue. Anyone has a clue ?

1 Like

You are probably neglecting to apply loc rot scale after import.

You should change the overall scale to be in cm so that it matches unreal.
You can try my plugin - when you import the rig the first time it sets the scale to what it needs to be.
http://mosthostla.com/gamedev/bonebreaker/

After the first import, delete everything from the scene and save your start file.
next time you import something the scale will remain set.

applying loc / rot / scale only matters of you scale rotate or move the armature.

2 Likes

My scale is already in meters, how do you apply transform after import ? Do you do this in unreal ?

2 Likes

No. In blender. Ctrl A I think. F3 and search for apply if not. Sure it’ll come up.

2 Likes

Sorry I couldn’t get back to you sooner.

So as you can see in the picture my transforms are applied but the issue remains the same. Scaling the model on import is problematic since i’m using translation on some of the bones which results in incorrect values in UE4

1 Like

Not sure what you are doing exaclty. Try to just import the animation with a new skeleton instead of selecting the one already in the engine for the mesh.
if that helps it means you renamed a bone or changed something in the other skeleton.

If you are still at it the only way to figure it out is to share the blender or FBX file.

1 Like

If you using Blender 2.8, keep all default settings.

  1. **Just select your armature **
  2. **scale it to 100 (all axes) **
  3. go to "Object -> Apply - Scale"
  4. **scale it back (0.01) **

On fbx export just deselect unwanted stuff like this leaf bones.

Thats all, works perfect for me.

5 Likes

The metric measurements are just a layer that sit on top of the actual units in Blender. The comparison in scale is that Blender units are metres and Unreal units are centimetres. I’ve been struggling with this myself and I’m at the point where I think I’m going to disable any of the measurement overlays, work in pure units and just export a character that is 200 units high so it comes out 2m tall in Unreal with no FBX scaling nonsense.

and there are a few more but I’m not sure about pegging my workflow to any one of them yet since I’m not sure they work completely. But they do seem to fix the mis-scaling problem with animations.

I think the real problem is that the FBX exporter is wobbly and doesn’t deal with scale very well. Other programs will just allow you to set scale to 100 or .01 and go but it’s such a garbage format.

The problem with the work in raw units workflow is that some of the viewport stuff seems to be configured for a scene where 1 blender unit = 1 metre; you need to adjust camera clipping and other things; and the Solid AO doesn’t even seem to work at larger scales.

It would be amazing if we could get a Blender to UE4 bridge going; I mean, they’re both open source.

1 Like

Recorded a short video how simpel you can export/import a animated mesh to ue4.
Opened a blank new file, change no settings, just gave the starting cube a cheap animation.

1 Like

Appreciate the effort you went to @EvilReFlex but doing that every time I need to export something would be too onerous for me personally, and I am not sure it would be compatible with the bulk exporters like FBX Bundle which I’m going to use for environment work probably. Working at a 1 Blender Unit = 1cm scale just ensures there will never be any scaling necessary, one click export workflow and compatibility with other workflows.

1 Like

Why every time? Just do it on the beginning and it works all the time. Changing to CM never worked for me in Blender 2.8.

1 Like

As I explained in an earlier post, changing the metric/imperial values does nothing to the actual blender unit; it is just an overlay for convenience’s sake. What I mean is working in pure units, such that 100 raw blender units are a metre in scale. A character that is 6 feet tall will be 183 in actual blender units. That is the only way to ensure a 1-1 scale with Unreal and not have to do any scaling in between I know of.

1 Like

Changin to pure units also not work for me. Are you still using an old blender version?

1 Like

I’m on 2.80, my export settings look like this at the moment:
20190913-11_20_37.jpg

1 Like

This does not help.

Edit: Nope, does also not work, even with cm or raw units.

Edit2: Made a simple script to scale the armature like in the video


import bpy

item='ARMATURE'
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.object.select_by_type(type=item)

bpy.ops.transform.resize(value=(100.0, 100.0, 100.0))

bpy.ops.object.transform_apply(location = False, scale = True, rotation = False)

bpy.ops.transform.resize(value=(0.01, 0.01, 0.01))

1 Like

I think you all are making problems where no problems exist.

If you set the 2 scales to match and save up your start file anything you make will have the correct scale.

For speed sake, and because I honestly can’t remember where to do it, my plugin does this for you.
install, import a mannequin, delete everything, save your start file. Trash the plugin.
http://mosthostla.com/gamedev/bonebreaker/

after that’s done open the old document with the character that is not scaled, a to select all, copy it.
open a fresh blender document, paste, and scale up by 100 or whatever looks right.

if you already see it big enough then the scaling was never the issue. Nonetheless anything you make will still import correctly 100% of the time - scale wise ofc.

1 Like

I’ve tried scaling my armature to 100, apply and scale it back to .01 but it still doesn’t work, my mesh is now stretched along the Z axis (to about the correct height I think) but the X and Y axes aren’t scaled up

1 Like

That’s fine and all but what if you first import your mesh & armature as a skeletal mesh and import the animation separately ? I don’t have any issue when I import the mesh and the animation together

1 Like

I really think scaling is a terrible idea when you need to have as seamless a workflow as possible between two programs, and having objects scaled within a program is pretty bad practice as well, if you have any kind of advanced rigging going on, it can turn into a nightmare fairly quickly.

@Agln I’ve been testing out different workflows and I’ve come to my own decision about what to do about this. For characters, the best solution I can see for exporting characters with custom rigs, it is GitHub - helluvamesh/GYAZ-Export-Tools: Seamless Blender To Unreal/Unity (FBX Export).

It does a few things quite nicely, one of which is to put the bone origins in the right place for handling constraints, so even if your constraints are pointing the wrong way due to Blender’s Y bone orientation, you can Q swizzle them around and reset them to the right location without issue. I’ve done some simple tests with physics and it has solved the Cthulu nightmare results I was getting and all seems pretty sound. It also gets the scaling right so you can export from Blender’s natural metre based scale.

I’ve talked to the developer, and he says it would be possible expose the bone orientation settings but that a Blender skeleton will never work with mannequin retargeting in UE regardless so there might not be much point to it, I don’t know.

@MostHostLA I’ve just downloaded bonebreaker but I can’t tell from the documentation whether it would be possible to use it to retarget my own rig to a UE mannequin animation in Blender? That would be pretty swish if so and would solve the Blender bone orientation issue for in-engine retargeting. Also don’t know what the exporter is like for my workflow but will give it a go at some point.

I think the main point here is not to trust the vanilla FBX exporter. Try another exporter that is designed to work with UE4 and I think you’ll have better luck. One day FBX as a format will die and we can all rejoice, but until that day, we have to make do with addons I think.

1 Like

I’m also no fan of this ■■■■ with scaling… but its the ONLY way what work for me.
After import in UE4 all meshes are right, physics work, animation work, static mesh work. absolutely no problem.

1 Like