Skyrim armor or clothing meshes use Skin Partitions to divide up the mesh into related body parts. This information can be found under the BSDismemberSkinInstance node of the NiTriShape (BSTriShape for SSE) in NifSkope and in the Armor and ArmorAddon records in the CK.
A Skin Partition is where a mesh is partitioned into submeshes such that each vertex of a submesh is influenced only by a limited and fixed number of bones. Huh? Ok, a skin partition is a collection of vertices ruled by certain bones.
These partitions are further defined by "Body Parts". Biped slots, Body slots, Armor slots, body part, partition, all mean the same thing. In Skyrim they are a virtual representation of any skinned/rigged mesh.
The Body Parts represent all the biped slots that can be used in the making of armor/clothing/jewelry, etc. A full list of all the body parts (or biped slots or nodes) can be found here; http://www.creationkit.com/Biped_Object. (I don't guarantee it's complete). There's also a list that can be seen in NifSkope if you hover over BSDismemberBodyPartType.
Every NiTriShape (BSTriShape for SSE), or object, in a skinned mesh requires a Partition. The number of partitions is dependent on how the mesh is set up but must have at least 1 Skin Partition.
Some pictures will help. Looking at the malebody_1.nif in NifSkope we can see the Skin Partitions defined under BSDismemberSkinInstance of it's NiTriShape.
The human body in Skyrim uses 3 partitions, and any armor/clothing made for it will require at least 1 of these partitions to match.
Let's look at these partitions more closely. You can see them in NifSkope by looking at the NiSkinPartion block (does not work for SSE nifs).
Another example, the Hide armor, to show the differences in each part of the overall mesh. Not all pieces of one mesh require the same partition, it depends on the mesh itself and what part of the body it covers.
General rules to follow regarding BSDismemberSkinPartition - Partitions;
- determines parts where the armor covers - (mainly 32 body, 34 forearms, 38 calves for armor/clothing pieces, 33 hands for gloves, 37 feet for boots)
- can be misc slots that aren't used by others when main slots are expected to be used
- partitions are made in either blender/3dsmax or Outfit Studio
- the partition is mirrored in the armoraddon in the CK
A mesh can also have a NiSkinInstance instead of a BSDismemberSkinPartition. This works in a similar fashion. It is still a partition except it doesn't identify a partition slot in the nif, it is identified in the armoraddon/armor records. In general practice a mesh should not use both of these types, use one or the other.
There are two types of records in the CK that are important and related to partitions;
ArmorAddon record - identifies parts where the armor covers Armor record - identifies the slot that will be blocked from anything else trying to use it
In the CK, the partitions (or Body Parts) identified in the nif are called Biped Slots. All the slots used in the nif should also be used when creating the ArmorAddon record or the end result won't turn out like expected (see 2nd post).
Taking the same example as above, looking at the Hide ArmorAddon record shows all 3 biped slots match the skin partitions of the mesh.
These partition slots are not absolute and multiple pieces of equipment with the same partition slot can override each other. The piece with the higher priority will render the underlying area invisible, to prevent clipping.
For example, armor with 38-calves partition and a pair of boots with 37-feet and 38-calves (because boots cover the calves), the boots will override the armor underneath. If the boots only used 37 feet but still had geometry over the calves, clipping might occur because it is not taking precedence over the calves (and in fact, I've fixed issues like this in USLEEP). See 2nd post for more on this.
Hoods and helmets are a good example of this.
All the slots used in the nif do not all have to be used in the Armor record, and shouldn't, because slots identified here are absolute, meaning two pieces with the same Armor slot cannot be used together because the armor slot is blocked. Only the slot that should be blocked should be identified here (body, hands, feet, head). At least one slot is required and it must match a slot used by the armoraddon.
Taking the same example as above, looking at the Hide Armor record shows it is using slot 32-body and equiping any other mesh that also uses this slot will be blocked.
However, more than one slot can be used if you want to intentionally block more than one slot (for example, block the ring slot in a gauntlets armor record).
- The mesh and the ArmorAddon record identify parts that it covers.
- The Armor record identifies slots that will be blocked.
- Every NiTriShape (BSTriShape in SSE) of a skinned mesh requires a BSDismemberSkinInstance and Skin Partitions, or a NiSkinInstance.
- A mesh must have at least 1 Skin Partition.
- Any partition defined in a mesh should be mirrored in the ArmorAddon record.
- At least 1 slot must be identified in the Armor record and that slot will be blocked.