Animation mismatch after setting rig to humanoid

I’m trying to learn Blender animation for Unity and have come across a frustrating problem. After importing a rig, mesh, and animation from Blender into Unity, the animation in the preview menu looks fine. However, once I change the avatar definition from “Generic” to “Humanoid,” and select “Create from this model” for the avatar definition, the animation changes. Specifically, the finger positions become mismatched from the blender animation.

I have tried turning off animation compression, and messing with the avatar configuration, but nothing seems to work. After messing around with the constraints in the “Muscles and Settings” tab of the avatar configuration, I have a feeling that the problem might have something to do with those; If you look at the character’s left wrist in the pictures below, the generic rig preview has the wrist contorted, while the humanoid rig seems more straight. After seeing this, I created an animation in blender that had a less contorted wrist, but the problem has persisted.

Any help would be appreciated.

Finger Position in Blender:

Finger Position Before Setting Rig to Humanoid: (Correct Finger Locations):

Finger Position After Setting Rig to Humanoid (Incorrect Finger Locations):

Have you tried adjusting the Upper/LowerArmTwist in “Muscle & Settings” to 1.0, applying it, and then seeing if the animation changes?

That didn’t seem to do anything.

I looked at your screenshot carefully again. Is it that the rotation of the fingers is different? In fact, the degree of freedom of the fingers of the humanoid is very low (you can notice that in the Muscle&Settings) because it needs to avoid the occurrence of artifacts. During the conversion from Rotation to Muscle DoF, a part will be lost. This is also why your original fingers become the normal human appearance after being converted to humanoid.