How to create a physics asset?

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.

Hi @RC-1290! Check out this thread from the forums that has a fix for the same error you are receiving:

How do I manually create a physics asset on a mesh with a small bone size?

I believe that thread holds the answer to your issue!

Thanks @Quetzalcodename, it is indeed the same error I am receiving, but it does not solve the issue, as they’re using an exporter from this thread from 6 years ago (The trials and tribulations of Blender & Skeletal Meshes), which doesn’t play nice with newer versions of Blender.

For what it’s worth, I did search for solutions before posting this thread:
The suggestion in this thread (Bone size too small to create physics asset - #12 by pickersZ) don’t work either.
This one didn’t even get a reply (Bone size is too small to create physics assets)
This video makes it look simple ( Tip: Fix "The bone size is too small to create Physics Asset" [Blender2.8 to Unreal Engine4] - YouTube), but unfortunately makes no difference.
This thread suggests using Send to Unreal (Bone size too small to create physics asset? - #5 by NotSoAccurateNo1), but besides requiring python, and enabling remote code execution, it still results in skeletal meshesh that won’t let you create a physics assets because “bone size is too small”.
This thread (The bone size is too small to create Physic manually) points at the documentation, which assumes you can create a physics asset in the first place, and unfortunately I haven’t yet found another way to make the Physics Asset Editor appear.

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.

1 Like

I’m here because of the link mention.

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.

1 Like

Thanks for the recommendation to scale it down.

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.