Click a question to show the answer.
It works for biped characters only, the model must be in T-Pose (45° tolerance for the arms orientation, however it works best with the arms, hands and fingers horizontally aligned). It detects the feet, legs, spine, arms, fingers position. Depending on the character, some manual
correction may be required. The facial bones (mouth, eyelids, eyebrows...) are not yet supported, they have to be positionned manually.
The algortihm finds the vertices in the markers neighbourhood, compute the depth, position of each part, then analyze the datas to place the bone according to the standard human proportions. And if the model is too special and does not meet these requirement, you can skip the auto-detection feature and simply place the reference bone manually.
Make sure auto-run python scripts is enabled in the preferences (Ctrl-Alt-U > File) or 'Trusted Source' when loading the file. Some dependencies such as drivers and scripts execution rely on it.
Unfortunately, there are a few cases where the binding may fail. This is due to the current limitation of the Blender automatic weight solver. Hopefully there are workarounds to get it work perfectly! Unbind the character, try one of the following, and bind again.
1) Unit scale: If the character is too small or the vertices too close to each other (high poly meshes), the distance between vertices may be too short and the solver will dramatically fail. To fix this, scale up the character and the rig (x10), bind the mesh, then scale it down (x0,1) to reset to the inital scale.
2) Coordinates are not initialized: Make sure you initialized the mesh rotation and position by pressing Ctrl-A
3) Non-manifold vertices : Make sure the mesh has no serious deficient topology by pressing Shift-Ctrl-Alt-M to select the non-manifold vertices. If you can see a lot of vertices selected all around the mesh (excluding boundaries), perform a 'Remove Double' by pressing W > Remove Double.
4) The body mesh is splitted into multiple non-connected parts (eg. The head vertices are not linked to the neck). Either connect them to get one single mesh, or separate them (Alt-P) into several objects that you will bind individually. Then, join all the meshes together (Ctrl-J) to get one single object again.
5) The mesh contains custom normals: Imported files (.obj, .fbx) may contain complex/dirty normal datas that the binding solver does not appreciate. Delete them and select all vertices, Ctrl-N to recalculate the normals.
6) Others : If it still doesn't work, as weird as it may sound, the mesh is likely subject to an unindentified internal Blender bug that can be strangely fixed by adding a subsurf modifier. Add the subsurf modifier (level 1 is fastest), bind the mesh then delete the modifier.
When using very high poly meshes (~80.000 faces) the Blender automatic weight solver may become slightly buggy on the edges...
A simple way to fix this is switching to Weight Paint mode, and add a little negative level offset to the weight groups. And if more accuracy is needed, just paint over the automatic weights.
Make sure the scene units are set to 1.0 scale. You'll be able to change it later (e.g. Unreal export) but the smart feature only works with 1.0 scale units.