How does one create a physics asset? Importing the skeletal mesh with ‘Create Physics Asset’ selected, or right clicking the Skeletal mesh and clicking Create > Physics Asset > Create, both result in the error message:
The bone size is too small to create Physics Asset '{0}' from Skeletal Mesh '{1}'. You will have to create physics asset manually.
Not explaining how to create a physics asset manually. I assume they mean the right click approach, which is kind of mean. This happens on a rig that’s 1 kilometer long, and also on bones even 1000 times larger than that. Regardless of MinBone Size, Whether or not “Walk past small bones” is enabled or not, and regardless of min weld size settings.
It looks like it emits this error message regardless of what causes CreateFromSkeletalMeshInternal to fail, and it’s unclear to me what causes that failure. Would it work if someone copy pastes some physics asset here so I can at least modify it work with the rigs I need? Because it doesn’t even get to the point where I can use any of the physics asset UI. It just cancels out.
The thing I really wanted to fix was cut off shadows. According to the documentation per object shadows require a physics asset, when it comes to skeletal meshes, to calculate bounds, which would explain the gaps in the shadows. But I can’t test that theory until I have a physicsAsset.
In fact, even if I try to create a physics asset for Unreal’s manequin hand it says: “The bone size is too small to create Physics Asset ‘UE4ManequinHand’ from Skeletal Mesh ‘MannequinHand_Right’. You will have to create physics asset manually.”.
I’m stepping through the code and it looks like the suggestions are indeed resulting in bones of different sizes, but that the physics asset creation still results in 0 bodies on the skeletal mesh actor (whatever that does), resulting in the error message (which assumes 0 bodies can only be the result of bones that are too small). I have not yet figured out why it fails like that.
So… it turns out I CAN create a physics asset in a pre-built version of the engine, rather than one built from source. But given that I haven’t modified anything in the source-built version, this strikes me as odd. At least I now have a work-around of importing assets in a different project, then exporting them to the project where I need them.
I remember having to finagle the scale in Blender before exporting and as soon as that was working, saving the blender startup file so I never had to mess with it again. But now I’m working on new hardware and don’t have my old computer so I get to do it again.
As your issue is working with a large scaled Rig already, maybe your approach should be to scale down the import, then scale it up in the level? At 1km, I’d suggest a 0.001 scale (1m) on import, then scale the instance to 1000.0 in the level.
The source file is a pair of hands, so they’re just 10cm. The reference to a kilometer was a petty response of mine towards the error message that claimed the bones were too small. I scaled the mesh and rig to various sizes to make sure it wasn’t scale related. And when I step through the code, I do see a difference in the values, and they make it most of the way through the code, until it gets assigned to a newly created skeleton asset. Then something goes wrong that I don’t understand yet.
Long story short: the error message doesn’t just appear for small assets, it’s also shown when anything else goes wrong when creating the physics asset, resulting in 0 collision bodies.
I think the error message is a holdover from a time when scale was the most common issue. By now Blender’s FBX exporter even seems to export assets at the correct scale.