Jump to content

[Skyrim LE/SSE] Skin Partitions - Nif to CK


Recommended Posts

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.



You can see there are 3 Partitions in this mesh. If we expand the 3 partitions further we find the body parts.



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).



This confirms what we already know - that there are 3 Skin Partitions in this mesh. But how do I know what's what? Highlight the first "Skin Partition Blocks". This is the SBP_32_Body partition. See the yellow highlighted vertices? All those related vertices of your armor will be influenced by this partition.


Now look at the others. The calves are highlighted here so this is the SBP_38_Calves partition.


The forearms are highlighted here so this is the SBP_34_Forearms partition.



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.


In this case, the "body" of this mesh contains the same partitions as the malebody mesh (and always should).


The armor itself only contains one partition for the body, because it does not cover forearms or calves.



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.


Creation Kit;

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


ArmorAddon record;

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.



Here, when the player equips the hood, it will replace the hair/long hair/ears underneath.


Armor record;

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).



In this example, wearing a mage hood would block the player from wearing any circlets.


In Summary;

- 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.


Link to comment
Share on other sites

Now, what happens when the nif and the ArmorAddon partitions don't match? There's several ways this can go.


Scenario 1:

In this test, my outfit has a calves partition in the nif file, but does not have a calves partition in the ArmorAddon record.



Oops! The dreaded missing parts! The same would go for any other type of mismatch, ie; a new amulet having an amulet partition in the nif file, but a ring partition in the ArmorAddon record, the entire amulet would be invisible.


Scenario 2:

In this test it's the opposite, my nif file does not have a calves partition but there is a calves partition in the ArmorAddon record.



Oh, it works and it looks fine. Great.

Let's test it with another piece of equipment, boots.



It still looks fine. So, if you don't want to partition your meshes properly that's up to you. It only takes a few minutes.


Scenario 2 works but only because the mesh of the pants is skin tight and fits inside the boots nice and cozy and snug. Not all meshes are going to fit together this nicely. The following will demonstrate what was said above about partitions fitting over partitions to occlude the geometry underneath.

Taking the same outfit, I increased the volume of the bottom of the pants. They look like this;



Now when I equip the boots, the pants clip outside of them because there is no calves partition in my outfit nif.



Once I add the calves partition back into my outfit, clipping is gone, because the boots override the outfit.




Hopefully this tutorial has explained skin partitions and their relationships, and given a better understanding of how important they are. Please partition responsibly! :)


Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Create New...