Model geometry & flow
The model has a v shape because is better for skinning arms (not as high as they would be for a t pose) but is more difficult to position fingers joints.
Joint chains (parent / child) structures
Joints follow a hierarchy and joints are parented to the child if they are part of a structure in the outliner. When positioning the joint to align them to a model the rotate axes should not be used instead they can be positioned using “joint orient”. It is used to orient children of selected joints. When on, the Orient Joint Options affect all the joints below the current joint in the skeleton’s hierarchy. When off, only the current joint is affected by the Orient Joint Options.
When creating a list of joints the root joint has the translate values (to the world) and the children to that joint would have as translate values the distance to the root joint.
Joints & local rotations
Joints have world coordinates and local rotation axes. In a chain of joints the local rotation should be the same otherwise when rotating then they would behave incorrectly.
Ik handle always have a bend in the joint chain depending on the direction you want it to bend.
Finding joint positions in a model (locators marking & clusters)
In order to place the joints create first locators a point in the space on a different layer so to have a “clean” and precise base to after position the joint in the correct way.
The first locator I would create is at the centre of the pelvis holding the x key I have snapped it to the grid position it in the centre of the model, after I have duplicated three more locators for the spine of the model positioning the last where the chest is.
For the leg of the model I have created three locator which I have parented together to create a chain to keep the leg straight: one in the hip using the wire of the model as a guide; the second locator on the knee in the middle loop where they are concentrated and it does not need to be positioned in the centre since the knee, differently from the leg, does not bend to the right of left; I positioned the third one on ankle. rotating the root locator of the leg to be slight tilted to the ankle is going to establish the flexibility of it to better position the joint.
The feet locator have to be aligned to the ankle locator, so for the first one I snapped it to the ankle locator holding v and after to the grid holding x so that they were aligned. The second one should be where the toe bend, in the centre, and the third one to the end of the toe. I have created two more to be placed at both sides of the foot where the second locator is.
For the arms I placed one locator where the clavicle is to help more the shoulder. Just like I did for the leg I have created a chain of locators for the arm in order for them to be aligned to each other, the root locator positioned in the shoulder and the children in the elbow and in the wrist. I have placed the last two locators positioning them roughly where the end position was and in order for them to be aligned with the root I have rotated them using the root locator at the shoulder.
For the neck I have created two locators.
For the fingers I have created a chain as well. To position them I have used a cluster as a guide to find the centre of the loop of the model fingers and snap the locator. I have used constraint aim for the controller and controlled locators to align the individual fingers locators chain.
I after mirrored the locators of the arms and the legs to the right side of the model.
Creating a human body skeleton and keeping joints clean & straight using grid snapping & joint orient
I after started creating the joint using the locators I had previously created as a guide.
I started from the leg and I have created three joints chained together by snapping them to the grid using x.
Rotation vs joint orient
When creating a skeleton in order to maintain the joints of the legs, the arms, the feet and the fingers aligned instead of using the rotation on the channel box I have used the joint orient of the root joint to rotate them.
I after created the foot joint by aligning the two new joints to the ankle joint, snapping them to it using v and after snapping them to the grid using x and positioning them according them to the foot locators.
After I have created the spine chain joints by snapping them to the locators using v.
I have then modified the local rotation of the root joint to make the overall spine chain rotate correctly.
Following a similar process I have used for the legs joints I have created the arm joint chain
The fingers were the most tedious joints to create since that the fingers were slightly bent: I have first created the joint chain, adjusted the distance between them and used the joint orient of each parent to make their child orientation correct without compromising their alignment.
For the thumb in order to avoid gimbal lock I have firstly snapped the joint to the locators and for the end of the thumb joint I have zeroed out the joint orient values to alight the rotation of the joint chain.
Naming conventions
In the outliner I made sure that everything was organised by naming the joints accordingly to their position.
Mirroring joints
In the end I have mirrored the joints of the arms and the legs to the right side of the model using this options: