For those curious, here’s what I’ve found.
Welcome to the rabbit hole.
Warning #1
This means that there is a bone placed between two common “Humanoid” hierarchy bones. It’s probably a twist / stretch bone. You can fix this a few ways, all of which include removing the bone from the inline chain of the Humanoid hierarchy path.
-
Remove the bone indicated
-
Move the bone to be in the same level as it’s current parent (side by side, has some caveats)
-
Don’t use Humanoid
The problem is that Humainoid wants a clear, uninterrupted path up and down the hierarchy with items that it is absolutely familiar with so it can guarantee mapping and animation accuracy. Fair enough.
Warning #2
I’m speculating that this is an issue when you retarget to a different avatar but the orientations don’t line up perfectly. This is due to some auto-magic way that Unity interprets the orientations of bones in order to align them into T-Pose and thus map them to other animations using Humanoid. Is it whatever is at frame 0? Is it an average of the pose? Who knows! It’s not documented officially anywhere.
T-Pose required
Your file must contain a T-Pose at frame 1. This was discovered by a user, and isn’t officially confirmed as far as I can tell. Officially, the T-Pose is just… “used”, and your rig must be in a T-Pose somewhere, but it’s not documented where or when.
No length correction
Mecanim Humanoid doesn’t account for limb length. Thinking about it now, I suppose that’s understandable.
Hierarchy rules
This is the hierarchy Mecanim Humanoid expects. Anything in between is ignored. The naming assumptions are undocumented, so we have no way of knowing how it automatically finds these bones to assist with importing automation. You simply have to import, see what hooks up and go from there.
For example - Maya Advanced Skeleton calls the shoulder “Scapula”, and the Upper Arm bone “Shoulder”. This automatically breaks the mapping and you have to either rename the bone in your rig or retarget the bone manually in the Avatar Configuration.
In the end
It may not be worth it, and generic starts looking really attractive as it’s significantly closer to lossless animation while Humanoid is often unstable in even basic scenarios. Due to the way it interpolates things to get remapped results there is an unknown level of inaccuracy which you absolutely cannot control and are not guaranteed to get consistent results.