Jump to content
  • entries
    4
  • comments
    16
  • views
    965

Finding CBPC And SMP Physics Presets


traison

954 views

1. Foreword

 

This is intended solely for locating physics preset files in both CBPC and SMP. This does not contain anything about how to configure these files.

 

2. Definitions

 

Wildcards:

Windows systems have supported wildcards in file names since the early DOS days.

  • An asterisk (*) matches any number of characters: he*.txt will match the following: hello.txt, help.txt and he.txt
  • A question mark (?) matches any single character: he?.txt will match the following: hey.txt and hen.txt
  • More.

Optional syntax:

Square brackets are typcally enclosing an optional component. In the following example, the commandline for program.exe requires "file" and will accept "file2" if is specified: program.exe file [file2]

 

Armor:

The naked body is considered armor, just like your hat or shoes.

 

Virtual collision meshes:

Used by SMP to provide more customizable collision management. This is also armor, except that it's invisible.

 

NiNode:

A nif (mesh) data point; could for example be a bone or shader settings. This is a base type for (most likely) all other node types, but it can also be used as-is. Wherever this guide refers to an NiNode and you can't find it, don't assume you're literally looking for an NiNode. Your mesh might be using a BSFadeNode instead for instance.

 

(XML) Elements:

Always starts with a less than symbol, and ends with a greater than symbol: <element>

 

3. Finding Meshes

  1. Go get More Informative Console.
  2. Start the game, load a save.
  3. Open the console.
  4. prid 14 OR select an actor you want to inspect.
  5. Locate the RACE's naked skin armor mesh:
    • Race -> Skin -> Armor Addon -> * -> Model * -> Model Path
  6. Locate worn armor meshes:
    • Inventory -> * -> Armor Addon -> * -> Model * -> Model Path
    • It should also be possible to use the Equipment list in MIC. This may be more convenient if your pockets are full of questionable vibrating items.

4. Finding Mesh Information

 

4.1 Mesh BSTriShape Names

 

Mainly used by SMP.

  1. Open your mesh in NifSkope.
  2. Go through each BSTriShape node that is a direct child of the root NiNode.
  3. The name of the shape can be found either in the Value column, or in the Name field below.

4.2 Bone (NiNode) Names

 

Mainly used by CBPC.

  1. Open your mesh in Outfit Studio, either from BodySlide if it's already a project or by importing it as a nif into a new project.
  2. Select the Bones -tab on the right.
  3. View the weightpainted areas to find the bone you're looking for.

4.3 SMP Hints

 

Used only by SMP.

  1. Open your mesh in NifSkope.
  2. Click on the root NiNode.
  3. Expand the Extra Data List field.
  4. Locate the list entry called "HDT Skinned Mesh Physics Object".
  5. Click on the blue arrow next to it.
  6. The String Data field contains the physics preset file name.

5. Finding Physics Presets

 

5.1 CBPC

 

All CBPC config files are in one location: SKSE\Plugins\*.txt

  1. Go through all CBPCMasterConfig*.txt files.
  2. Under the Node Definitions section you'll find the bone to physics preset mapping: bone=preset[=conditions]
    Note that the preset does not apply to your character if the conditions do not pass.

Once you've located your physics preset names:

  1. Go through all CBPConfig*.txt files.
  2. Find the physics preset you're looking for in the prefix of the value names: preset.gravityBias value
    Note that (usually) at the top there may be conditions defined for this file. The file does not apply to your character if the conditions do not pass.

5.2 SMP

  1. Find all meshes you're currently wearing in-game, make a list of these.
  2. Do the same with the RACE naked skin armor as well.
  3. Open each of these meshes in NifSkope and make a list of all SMP hints. Add all BSTriShape names to a 3rd list.
  4. Open the current SKSE\Plugins\hdtSkinnedMeshConfigs\defaultBBPs.xml.
    1. Go through your BSTriShape list and see if it has an entry in this file. If it does, add its physics preset file name to your SMP hint list.
  5. Go through each physics preset in your SMP hint list.
    1. Find the per-triangle-shape or per-vertex-shape element that's attached (by name) to your BSTriShape(s).
    2. Find the bone element that's attached (by name) to your bones.
    3. Find the generic-constraint that's attached (bodyA or bodyB) to your bones. Remember to check for generic-constraint-default elements defined above for inherited settings.

Edited by traison

1 Comment


Recommended Comments

Skooma_bodyshots

Posted

Hey thanks for posting, some great info here. So after exploring a bit and examining configs and cock models with correclty working physics like my tng dicks. Theres a generic naming convention for the bones that drive dicks and balls but you have to tell a cpbd config to tie them to a certain model, look for those bones and then i'm pretty sure you can just set the physics after that by writing your own config and telling it how you want it to behave. Exactly how to do this is infuriatingly obtuse on the cbpc creators page. 

So here's the bone names for my tng dick which required me to get 3ba to get the proper dick physics. These are the same bone names as on that gargoyle. (Image 1)

3ba came with an SOSmasterconfig and various other configs. and this is what's in it. (Image 2) 
I'm not entirely sure what exactly this is doing, i'm assuming it's defining the existence of those bones and their parameters? There's nothing remarkable about the tng bones vs the gargoyle bones that i can see. 
 
Then lastly we have the cbpc config that is directing the behavior of the physics onto those bones (file.) 

So it seems like  all i need to do is write a config ot look for those bones in the gargoyle .nif then another config to dictate it's behavior. It seems like this only requires 3 things. 

A config map within the master config. That...somehow identifies the bones  and what to apply them to and i think the lag function? (SOS i think?)
A line...somewhere probably the master config giving a command to do a behavior too specifically for the gargoyles copy of those bones? 
The cbpc config itself with the name assigned to the bones and all thel ines that dictates their behavior. 

It SEEMS like now that i have identified a config with proper working dick physics which also has the same bone names all i have to do is tell it to also apply it to the gargoyles bones of the same name and order. 

Does that sound right to you? 
 

Screenshot 2026-07-22 020855.png

Screenshot 2026-07-22 021644.png

CBPConfig_SOS.txt

×
×
  • Create New...