Jump to content

Prepacked HDT-SM - HDT Skinned Mesh Physics with Modding Guide


Recommended Posts

bump

 

Someone?  Anyone?

 

A guide on exactly how to add hand/breast collision? If I can see an example of that one, I could figure out ... or at least have more confidence in trying to figure out... other collisions like SoS, etc.

 

This isn't hand/breast collision but may point you in the direction of it as it is the hair/body collision setup. I've been wanting to get the collision going as well but haven't had time to play around with it yet.  

http://www.loverslab.com/topic/44803-hdt-smp-ks-pony-hair/?do=findComment&comment=1119912

Link to comment

 

bump

 

Someone?  Anyone?

 

A guide on exactly how to add hand/breast collision? If I can see an example of that one, I could figure out ... or at least have more confidence in trying to figure out... other collisions like SoS, etc.

 

This isn't hand/breast collision but may point you in the direction of it as it is the hair/body collision setup. I've been wanting to get the collision going as well but haven't had time to play around with it yet.  

http://www.loverslab.com/topic/44803-hdt-smp-ks-pony-hair/?do=findComment&comment=1119912

 

 

Thanks. Yeah, I read that, but I still can't see how to get a simple hand/breast collision.

I simply installed all of the SMP files into the folder structure as described. I am using a CBBE HDT body and everything just sort of works out of the box as far as boob jiggle and bounce. I didn't edit body meshes in NifScope or anything.

 

So I'm still stuck. Do I need to edit hand meshes? Or do I simply need to add something to the cbbe-tbbp.xml?

A good example would be invaluable here. :)

Link to comment

So.... I've been looking at examples of clothing and hair .... but I can't tell what's colliding with what. 

LOGIC tells me that I need to somehow declare the hands and then provide the information necessary to to have them collide with the breasts.

But I'm still at a loss for how to construct that piece of xml and then where to put it. As in... what file does it go in? 

 

I'm seeing per-triangle shapes and per-vertex shapes and not confident that I know the difference. I do remember struggling a bit to get a grasp on HDT-PE, but eventually enough information became available that I was able to achieve a satisfactory result. So I'm hoping that eventually, SMP will get easier as well.

 

SOMEONE out there has to know how to do this :)

 

 

Link to comment

I reversed engineer the suggested link above, and have limited collision, but there are still things not working such as two mesh bone-paints that reside side-by-side (mesh sharing weight paint) will just crash performance (-30 fps) being in conflict if the *no-collide-with-tag* is not used per bone (weights) ; or alternatively, you want collision side-by-side so then need to use the *weight-threshold bone="x_Bone"..* which allows prioritizing of collision bone/mesh-paint.

 

Collision for non supported mesh/nif/bones (not provided in default xmls) need the NiStringExtraData path added as shown in the hair mod. And, create an xml. Example for SoS Light mesh:

 

SoS.xml

 

 

<?xml version="1.0" encoding="UTF-8"?>
<system xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="description.xsd">

	<bone name="NPC GenitalsBase [GenBase]"/>
	<bone name="NPC GenitalsScrotum [GenScrot]"/>
	<bone name="NPC Genitals01 [Gen01]"/>
	<bone name="NPC Genitals02 [Gen02]"/>
	<bone name="NPC Genitals03 [Gen03]"/>
	<bone name="NPC Genitals04 [Gen04]"/>
	<bone name="NPC Genitals05 [Gen05]"/>
	<bone name="NPC Genitals06 [Gen06]"/>
   

  <per-vertex-shape name="MaleGenitals Regular">
    <margin>0.8</margin>
    <priority>1</priority>
    <tag>MaleGenitals</tag>
    <no-collide-with-tag>MaleGenitals</no-collide-with-tag>
  </per-vertex-shape>
  
</system>

 

 

 

...no idea what *prenetration* is or means, and log says unrecognized, so left it out. Also, triangle or vertex seems to work for this additional mesh xml. Don't know advantages/disadvantages as both work for the above, but not the below. Perhaps vertex is more precise, being bullets for collision are smaller than triangle-sized bullets -- perhaps combining the two works best? And, that triangle requires 1/3 less resources, best for big mesh?

 

Most important, add this to your default/preferred body xml (the mesh -in nif- for body you use in-game; I'm using CBBE, so the mesh in nif is "BaseShape") : 

 

 


 

	<per-triangle-shape name="BaseShape">
		<margin>0.8</margin>
		<priority>1</priority>
		<prenetration>1</prenetration>
		<tag>body</tag>
		<no-collide-with-tag>body</no-collide-with-tag>
		
		<weight-threshold bone="HDT Pussy BackLeft 2">0.09</weight-threshold>
		<weight-threshold bone="HDT Pussy BackRight 2">0.09</weight-threshold>
		<weight-threshold bone="HDT Pussy FrontLeft 2">0.09</weight-threshold>
		<weight-threshold bone="HDT Pussy FrontRight 2">0.09</weight-threshold>
		<weight-threshold bone="NPC L Butt">0.56</weight-threshold>
		<weight-threshold bone="NPC R Butt">0.56</weight-threshold>		
		<weight-threshold bone="NPC L Breast">0.56</weight-threshold>
		<weight-threshold bone="NPC R Breast">0.56</weight-threshold>
		<weight-threshold bone="NPC Belly">0.56</weight-threshold>
		
		<no-collide-with-bone>NPC Spine [Spn0]</no-collide-with-bone>
		<no-collide-with-bone>NPC Spine1 [Spn1]</no-collide-with-bone>
		<no-collide-with-bone>NPC Spine2 [Spn2]</no-collide-with-bone>
		<no-collide-with-bone>NPC R Clavicle [RClv]</no-collide-with-bone>
		<no-collide-with-bone>NPC R UpperArm [RUar]</no-collide-with-bone>
		<no-collide-with-bone>NPC R Forearm [RLar]</no-collide-with-bone>
		<no-collide-with-bone>NPC R ForearmTwist1 [RLt1]</no-collide-with-bone>
		<no-collide-with-bone>NPC R ForearmTwist2 [RLt2]</no-collide-with-bone>
		<no-collide-with-bone>NPC R UpperarmTwist1 [RUt1]</no-collide-with-bone>
		<no-collide-with-bone>NPC R UpperarmTwist2 [RUt2]</no-collide-with-bone>
		<no-collide-with-bone>NPC L Clavicle [LClv]</no-collide-with-bone>
		<no-collide-with-bone>NPC L UpperArm [LUar]</no-collide-with-bone>
		<no-collide-with-bone>NPC L Forearm [LLar]</no-collide-with-bone>
		<no-collide-with-bone>NPC L ForearmTwist1 [LLt1]</no-collide-with-bone>
		<no-collide-with-bone>NPC L ForearmTwist2 [LLt2]</no-collide-with-bone>
		<no-collide-with-bone>NPC L UpperarmTwist1 [LUt1]</no-collide-with-bone>
		<no-collide-with-bone>NPC L UpperarmTwist2 [LUt2]</no-collide-with-bone>
		<no-collide-with-bone>NPC Pelvis [Pelv]</no-collide-with-bone>
		<no-collide-with-bone>NPC L Thigh [LThg]</no-collide-with-bone>
		<no-collide-with-bone>NPC L Calf [LClf]</no-collide-with-bone>
		<no-collide-with-bone>NPC R Thigh [RThg]</no-collide-with-bone>
		<no-collide-with-bone>NPC R Calf [RClf]</no-collide-with-bone>
		
	</per-triangle-shape>

 

 

 

^^ this is where you'll create your collisions, by adding removing  *no-collide-with...* and "weight-threshold-bone...* (I'm speculating, guessing on all of this). You'll need to find the bone (painted to mesh) that corresponds to the collision you want. (Or choose a bone from xpmse skelly and add new nodes to your nif and nif mesh). You may also need to do edits to the provided "hand" xmls to get hand to collide with physics bone/mesh.

 

That's all I know, and am likely getting half or more wrong. Read the output log, it is very helpful -- for Mod Organizer find in Overwrites - SKSE logs.

 

edit, you also obviously need to set up the physics for the parts that jiggle and wobble.

Link to comment

hmmmm...

I tried adding this to my cbbe-tbbp.xml and..... no hand/breast collision. I'm using a cbbe body as well and the body nif uses Baseshape.

The bounce and jiggle works.... but no collisions. So.... I'll keep trying and/or waiting for an example of how to get it working.

 

Link to comment

What goes IN the hand.xml?

The default one doesn't appear to have any collision information in it at all.

And do I have to add extra data to my hand meshes?

 

correction.... the hand.xml has a lot of no-collide-with-bone..... lines.

But none of those lines are breast "bones".

 

**edit**

When I open the femalehands_0.nif, the NiTriShape is called "Hands"

 

In the default directory/file structure, there's a file named hands_1.xml, so I copied it to a new file named hands.xml.

I guess I'm trying to figure out what to put in there so that "hand" pushes "breast" and not the other way around. When the hand comes in contact with a breast, I want the breast to move. Not the hand giving way to the breast..... if that makes sense...

 

 

 

 

Link to comment

What goes IN the hand.xml?

The default one doesn't appear to have any collision information in it at all.

And do I have to add extra data to my hand meshes?

 

correction.... the hand.xml has a lot of no-collide-with-bone..... lines.

But none of those lines are breast "bones".

 

**edit**

When I open the femalehands_0.nif, the NiTriShape is called "Hands"

 

In the default directory/file structure, there's a file named hands_1.xml, so I copied it to a new file named hands.xml.

I guess I'm trying to figure out what to put in there so that "hand" pushes "breast" and not the other way around. When the hand comes in contact with a breast, I want the breast to move. Not the hand giving way to the breast..... if that makes sense...

 

After a little messing around thanks to the info from crusher and looking into the hair example I got this to work for the hands, still no joy getting body to body collisions though.

<?xml version="1.0" encoding="UTF-8"?>

<system xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="description.xsd">

	<bone name="NPC L Hand [LHnd]"/>	
	<bone name="NPC R Hand [RHnd]"/>
	
  <per-vertex-shape name="DemonicaHand">
    <margin>0</margin>  
	<priority>0</priority>	
	<prenetration>1</prenetration>     
    <tag>hand</tag>
	<no-collide-with-tag>hand</no-collide-with-tag>

   </per-vertex-shape>
</system>
Link to comment

LiquidPinky,

Did you have to put extra data in your hand mesh and point it to the xml file you're using?

 

And I assume from the code you posted that the NiTriShape name of the hand in your mesh is DemonicHand?

 

Yep, I added the extra data to point to the xml and the handmesh Nitrishape is indeed DemonicaHand in my case. Just rename in the xml to what your one is named.

Remember to name the string data as HDT Skinned Mesh Physics Object as well.

Link to comment

Well.... I got it to work but the collision was a thing of ugliness. As her hand got to her boob, it deformed and pushed it in ways that were not pretty. 

Clearly I need to look more closely at this and see what kinds of setting options are available. For now I'm going to run it without collision until I can figure out what needs to be adjusted.

 

Link to comment

Consolidating info posted by AproKrytia: http://www.loverslab.com/topic/44960-hdt-skinned-mesh-physics-tutorial/ (info I had missed on first read through)

 

some snips with comments taken from AproKritia's tutorial and wig1.xmls (ignore edits I'm using, may be wrong per rules)

 

 

 

		<centerOfMassTransform> <!-- alternation of the bones' relative coordinate (parent). The acquiescent parameter means a unit alternation-->

			<basis x="0" y="0" z="0" w="1"/> <!--The quaternion settings: basis -- the acquiescent parameter is x=0, y=0, z=0, w=1. Basis can be replace by basis-axis-angle -->
			<origin x="0" y="0" z="0"/> <!--The triaxiality settings: origin -- the acquiescent parameter is x=0, y=0, z=0 --> 

		</centerOfMassTransform>

		<linearDamping>0.8</linearDamping> <!-- from 0 to 1: the linear speed at the next second; v'=v*(1 - linearDamping) -->
 
		<angularDamping>0.4</angularDamping> <!-- from 0 to 1: the angular speed at the next second; r'=r*(1 - angularDamping) --> 

		<friction>0.2</friction> <!-- acquiescent parameter is 0.5 Similar to Friction Factor in real world. -->

		<rollingFriction>0</rollingFriction> <!-- the acquiescent parameter is 0 -->

		<restitution>1</restitution> <!-- Rebound Coefficient: acquiescent parameter is 0. The ratio of rebound speed; zero means that there is no rebound -->

 

 

 

 


		<frameInB> <!-- frameInX: means the place of anchor point on body X(X -- A or  -->
			<basis x="0" y="0" z="0" w="1"/> <!-- quaternion settings of anchor point, revises datum of rotation -->
			<origin x="0" y="0" z="0"/> <!-- triaxiality settings of anchor point -->
		</frameInB>

		<useLinearReferenceFrameA>false</useLinearReferenceFrameA> <!-- "true" means use linear reference FrameA; "false" means use linear reference FrameB -->

		<linearUpperLimit x="4" y="1" z="0"/> <!-- based on relative coordinate (parent). The parameter is radian (the acquiescent parameter is x=-1, y=-1, z=-1). If parameter of lower limit is bigger than upper limit, it means that there is no linear limit. But there will be disconnection between body A and body B without linear limit --> 
		<linearLowerLimit x="-4" y="-1" z="0"/> <!-- linear lower limit based on relative coordinate (parent). The parameter is radian (the acquiescent parameter is x=1, y=1, z=1) -->
		
		<angularUpperLimit x="0" y="0" z="0.01"/> <!-- based on relative coordinate (parent). The parameter is radian (the acquiescent parameter is x=-1, y=-1, z=-1)-->
		<angularLowerLimit x="0" y="0" z="-0.01"/>  <!-- based on relative coordinate (parent). The parameter is radian (the acquiescent parameter is x=1, y=1 ,z=1) -->
		
		<linearStiffness x="400" y="400" z="0"/> <!-- from 0 to ∞, bigger parameter means more stiff --> 
		<angularStiffness x="0" y="0" z="600"/> <!-- from 0 to ∞, bigger parameter means more stiff -->
		
		<linearDamping x="9" y="10" z="0"/> <!-- from 0 to ∞, bigger parameter means bigger degree of decay-->
		<angularDamping x="0" y="0" z="8"/> <!-- from 0 to ∞, bigger parameter means bigger degree of decay-->
		
		<linearEquilibrium x="0" y="0" z="0"/> <!-- establish center of spring -linear- (the acquiescent parameter is x=0, y=0, z=0) **very helpful for lifting/re-positioning a sagging/flat mesh per bone** -->
		<angularEquilibrium x="0" y="0" z="0"/> <!-- establish center of spring -angular- (the acquiescent parameter is x=0, y=0, z=0) **helpful for rotating/shaping/pointing mesh shape per bone** -->
		

 

 

 

 

 

	<per-triangle-shape name="BaseShape"> <!-- name of the ShapeData appointed as collision (mesh -NiTriShape- found in nif) -->

		<margin>0.8</margin> <!-- bigger parameter means bigger margin -- zero means margin is the same as shape data -->

		<priority>1</priority> <!-- from -2147483648 to 2147483647. Ensure your physics part's parameter is bigger (As for body, 0 is enough .As for ground,-2147483648 is best) -->

		<prenetration>1</prenetration> <!-- (per-triangle-shape only) similar as one setting in 3dsmax cloth modifier. For resolving the crossing the border. Great parameter can reduce crossing the border -->

		<tag>body</tag> <!-- add tag to the collision (For separate collision) -->

		<no-collide-with-tag>body</no-collide-with-tag> <!-- means the collision can not collide with collision with this tag -->
		
		<weight-threshold bone="HDT Pussy BackLeft 2">0.08</weight-threshold> <!-- vertex weight greater than the parameter interact as -rigid body- (too many rigid body will reduce efficiency) -->
		
		<no-collide-with-bone>NPC Spine [Spn0]</no-collide-with-bone> <!-- the collision can not collide with the rigid body which effect by this bone (per-triangle-shape means every triangle create a rigid body) -->
		

 

 

 

Notes:
 
<per-vertex-shape name="xxxx">  + <margin>xxx</margin>  means the margin of every cell, the cell is limited in 5*5*5, so margin should not be bigger than 2.5 (per-vertex-shape means every vertex creates a rigid body, so the margin can not be 0.)
 
-- Add NiStringExtraData to .nif pointing to additional .xml (if xml (with referenced nifs) are not already part of default package) 
-- Name of NiStringExtraData: HDT Skinned Mesh Physics Object
-- String Data is the file path of xml, example: meshes\clothes\NPRChinaDress\NPRChinaDress.xml,(do not need 'data' in path)
-- Please ensure the collision is between per-triangle-shape and per-vertex-shape, or per-vertex-shape and per-vertex-shape. Collision between per-triangle-shape and per-triangle-shape will reduce efficiency.
-- Ensure proper anchor point (relative to bones with HDT physics (parent bone?)). 
 
 
**Use Bodyslide for Weight Painting (numeric values per vertex would be a nice feature) and NifScope to view default skeleton bones (xpmse) and relative mesh bone locations
 
** there is more information in the comments of wig1.xml for setting up Generic attributes common to batch groups, but I've not gotten that far. Take a look. 
Link to comment

Hi! Thanks for the explanation. I have been trying to get collision between hands and breasts to work, but can't seem to get it right. Anyone know what I have done wrong?

I have physics to breast, butt and belly.

Made a new .xml called "Hands.xml" because that is what the nitrishape is called in femalehands_0 and femalehands_1 and placed it in:\Skyrim\Data\SKSE\Plugins\hdtSkinnedMeshConfigs\Hands.xml

 

Added this link in femalehands_0 and 1 string data:  Data\SKSE\Plugins\hdtSkinnedMeshConfigs\Hands.xml (also added name: HDT Skinned Mesh Physics Object)

 

This is how my hands.xml looks:

<?xml version="1.0" encoding="UTF-8"?>


<system xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="description.xsd">


<bone name="NPC L Hand [LHnd]"> 
<bone name="NPC R Hand [RHnd]">


  <per-vertex-shape name="Hands">
    <margin>0.5</margin>  
<priority>1</priority> 
<tag>hand</tag>
<no-collide-with-tag>hand</no-collide-with-tag>


    </per-vertex-shape>
</system>

For me it seems like I am missing some sort of decalaration of the breasts in the hands.xml??

 

Link to comment

I reversed engineer the suggested link above, and have limited collision, but there are still things not working such as two mesh bone-paints that reside side-by-side (mesh sharing weight paint) will just crash performance (-30 fps) being in conflict if the *no-collide-with-tag* is not used per bone (weights) ; or alternatively, you want collision side-by-side so then need to use the *weight-threshold bone="x_Bone"..* which allows prioritizing of collision bone/mesh-paint.

 

Collision for non supported mesh/nif/bones (not provided in default xmls) need the NiStringExtraData path added as shown in the hair mod. And, create an xml. Example for SoS Light mesh:

 

SoS.xml

 

 

<?xml version="1.0" encoding="UTF-8"?>
<system xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="description.xsd">

	<bone name="NPC GenitalsBase [GenBase]"/>
	<bone name="NPC GenitalsScrotum [GenScrot]"/>
	<bone name="NPC Genitals01 [Gen01]"/>
	<bone name="NPC Genitals02 [Gen02]"/>
	<bone name="NPC Genitals03 [Gen03]"/>
	<bone name="NPC Genitals04 [Gen04]"/>
	<bone name="NPC Genitals05 [Gen05]"/>
	<bone name="NPC Genitals06 [Gen06]"/>
   

  <per-vertex-shape name="MaleGenitals Regular">
    <margin>0.8</margin>
    <priority>1</priority>
    <tag>MaleGenitals</tag>
    <no-collide-with-tag>MaleGenitals</no-collide-with-tag>
  </per-vertex-shape>
  
</system>

 

 

 

...no idea what *prenetration* is or means, and log says unrecognized, so left it out. Also, triangle or vertex seems to work for this additional mesh xml. Don't know advantages/disadvantages as both work for the above, but not the below. Perhaps vertex is more precise, being bullets for collision are smaller than triangle-sized bullets -- perhaps combining the two works best? And, that triangle requires 1/3 less resources, best for big mesh?

 

Most important, add this to your default/preferred body xml (the mesh -in nif- for body you use in-game; I'm using CBBE, so the mesh in nif is "BaseShape") : 

 

 

 

 

	<per-triangle-shape name="BaseShape">
		<margin>0.8</margin>
		<priority>1</priority>
		<prenetration>1</prenetration>
		<tag>body</tag>
		<no-collide-with-tag>body</no-collide-with-tag>
		
		<weight-threshold bone="HDT Pussy BackLeft 2">0.09</weight-threshold>
		<weight-threshold bone="HDT Pussy BackRight 2">0.09</weight-threshold>
		<weight-threshold bone="HDT Pussy FrontLeft 2">0.09</weight-threshold>
		<weight-threshold bone="HDT Pussy FrontRight 2">0.09</weight-threshold>
		<weight-threshold bone="NPC L Butt">0.56</weight-threshold>
		<weight-threshold bone="NPC R Butt">0.56</weight-threshold>		
		<weight-threshold bone="NPC L Breast">0.56</weight-threshold>
		<weight-threshold bone="NPC R Breast">0.56</weight-threshold>
		<weight-threshold bone="NPC Belly">0.56</weight-threshold>
		
		<no-collide-with-bone>NPC Spine [Spn0]</no-collide-with-bone>
		<no-collide-with-bone>NPC Spine1 [Spn1]</no-collide-with-bone>
		<no-collide-with-bone>NPC Spine2 [Spn2]</no-collide-with-bone>
		<no-collide-with-bone>NPC R Clavicle [RClv]</no-collide-with-bone>
		<no-collide-with-bone>NPC R UpperArm [RUar]</no-collide-with-bone>
		<no-collide-with-bone>NPC R Forearm [RLar]</no-collide-with-bone>
		<no-collide-with-bone>NPC R ForearmTwist1 [RLt1]</no-collide-with-bone>
		<no-collide-with-bone>NPC R ForearmTwist2 [RLt2]</no-collide-with-bone>
		<no-collide-with-bone>NPC R UpperarmTwist1 [RUt1]</no-collide-with-bone>
		<no-collide-with-bone>NPC R UpperarmTwist2 [RUt2]</no-collide-with-bone>
		<no-collide-with-bone>NPC L Clavicle [LClv]</no-collide-with-bone>
		<no-collide-with-bone>NPC L UpperArm [LUar]</no-collide-with-bone>
		<no-collide-with-bone>NPC L Forearm [LLar]</no-collide-with-bone>
		<no-collide-with-bone>NPC L ForearmTwist1 [LLt1]</no-collide-with-bone>
		<no-collide-with-bone>NPC L ForearmTwist2 [LLt2]</no-collide-with-bone>
		<no-collide-with-bone>NPC L UpperarmTwist1 [LUt1]</no-collide-with-bone>
		<no-collide-with-bone>NPC L UpperarmTwist2 [LUt2]</no-collide-with-bone>
		<no-collide-with-bone>NPC Pelvis [Pelv]</no-collide-with-bone>
		<no-collide-with-bone>NPC L Thigh [LThg]</no-collide-with-bone>
		<no-collide-with-bone>NPC L Calf [LClf]</no-collide-with-bone>
		<no-collide-with-bone>NPC R Thigh [RThg]</no-collide-with-bone>
		<no-collide-with-bone>NPC R Calf [RClf]</no-collide-with-bone>
		
	</per-triangle-shape>

 

 

 

^^ this is where you'll create your collisions, by adding removing  *no-collide-with...* and "weight-threshold-bone...* (I'm speculating, guessing on all of this). You'll need to find the bone (painted to mesh) that corresponds to the collision you want. (Or choose a bone from xpmse skelly and add new nodes to your nif and nif mesh). You may also need to do edits to the provided "hand" xmls to get hand to collide with physics bone/mesh.

 

That's all I know, and am likely getting half or more wrong. Read the output log, it is very helpful -- for Mod Organizer find in Overwrites - SKSE logs.

 

edit, you also obviously need to set up the physics for the parts that jiggle and wobble.

 

 

 

Hi! Thanks for the explanation. I have been trying to get collision between hands and breasts to work, but can't seem to get it right. Anyone know what I have done wrong?

I have physics to breast, butt and belly.

Made a new .xml called "Hands.xml" because that is what the nitrishape is called in femalehands_0 and femalehands_1 and placed it in:\Skyrim\Data\SKSE\Plugins\hdtSkinnedMeshConfigs\Hands.xml

 

Added this link in femalehands_0 and 1 string data:  Data\SKSE\Plugins\hdtSkinnedMeshConfigs\Hands.xml (also added name: HDT Skinned Mesh Physics Object)

 

This is how my hands.xml looks:

<?xml version="1.0" encoding="UTF-8"?>


<system xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="description.xsd">


<bone name="NPC L Hand [LHnd]"> 
<bone name="NPC R Hand [RHnd]">


  <per-vertex-shape name="Hands">
    <margin>0.5</margin>  
<priority>1</priority> 
<tag>hand</tag>
<no-collide-with-tag>hand</no-collide-with-tag>


    </per-vertex-shape>
</system>

For me it seems like I am missing some sort of decalaration of the breasts in the hands.xml??

 

 

Did you also add the data from Crusher's earlier post into the xml for the bodytype you are using.

Also make sure that the "Hands" matches the actual hand models name,

<per-vertex-shape name="Hands">

I am guessing from you post that it should actuall read "femalehands_0" in your case.

You will probably have to add an additional copy of the code for "femalehands_1" as well.

<?xml version="1.0" encoding="UTF-8"?>


<system xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="description.xsd">


<bone name="NPC L Hand [LHnd]"> 
<bone name="NPC R Hand [RHnd]">


  <per-vertex-shape name="femalehands_0">
    <margin>0.5</margin>  
<priority>1</priority> 
<tag>hand0</tag>
<no-collide-with-tag>hand0</no-collide-with-tag>
  </per-vertex-shape>

  <per-vertex-shape name="femalehands_1">
    <margin>0.5</margin>  
<priority>2</priority>
<tag>hand1</tag>
<no-collide-with-tag>hand1</no-collide-with-tag>
    </per-vertex-shape>
</system>

Make sure the name matches what you see in nif file exactly, may or may not be case sensitive.

 

Even easier is to rename the hand models to the same thing in the .nif files in Nifscope and stick with the origonal code.

Link to comment

Thanks! I will try that out. I haven't added the info in the cbbe-tbbp.xml (body is cbbe-hdt).

The reason why I named it "Hands" in the xml

per-vertex-shape name="Hands">
    <margin>0.5</margin>  
<priority>1</priority> 
<tag>hand</tag>
<no-collide-with-tag>hand</no-collide-with-tag>

is because when I open femalehands_0.nif and femalehands_1.nif in nifscope, the value in NiTriShape is "Hands [17]"

Not sure if I am opening the correct .nif's since none of you have that name??

 
Link to comment

yes, name="hands" if that is the mesh name (NiTriShape) in the nif you are using. You'll need to find which hand nif you are using; easy to navigate to if using Mod Organizer in "Data Tab": mesh/actors/character/character assets/ (your hand nifs)

 

Maybe try : SKSE\Plugins\hdtSkinnedMeshConfigs\Hands.xml for the NiStringExtraData -- leave off the "Data\... " in the path.

 

 

edit, for some reason if I have comments <!-- in my xml, physics stops working.. shrug.

Link to comment

ok, so this is my setup.

 

in this folder: \Data\meshes\actors\character\character assets\ I have the following two files: femalehands_0 and femalehands_1

in nifscope the NiTrishape value is "Hands" for both the files. So after establishing this I made a xml file named "Hands.xml" the Hands.xml should look like this in my mind:

<?xml version="1.0" encoding="UTF-8"?>

<system xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="description.xsd">


<bone name="NPC L Hand [LHnd]"/> 
<bone name="NPC R Hand [RHnd]"/>


  <per-vertex-shape name="Hands">
    <margin>0</margin>  
<priority>0</priority> 
<prenetration>1</prenetration>     
    <tag>hand</tag>
<no-collide-with-tag>hand</no-collide-with-tag>


   </per-vertex-shape>
</system>

in femalehands_0 and femalehands_1 I added NiStringExtraData with name:HDT Skinned Mesh Physics Object and link: SKSE\Plugins\hdtSkinnedMeshConfigs\Hands.xml

 

In cbbe-tbbp.xml (using cbbe-HDT body) I added this:

<per-triangle-shape name="BaseShape"><margin>0.8</margin>
<priority>1</priority>
<prenetration>1</prenetration>
<tag>body</tag>
<no-collide-with-tag>body</no-collide-with-tag>


<weight-threshold bone="NPC L Butt">0.56</weight-threshold>
<weight-threshold bone="NPC R Butt">0.56</weight-threshold> 
<weight-threshold bone="NPC L Breast">0.56</weight-threshold>
<weight-threshold bone="NPC R Breast">0.56</weight-threshold>
<weight-threshold bone="NPC Belly">0.56</weight-threshold>


<no-collide-with-bone>NPC Spine [Spn0]</no-collide-with-bone>
<no-collide-with-bone>NPC Spine1 [Spn1]</no-collide-with-bone>
<no-collide-with-bone>NPC Spine2 [Spn2]</no-collide-with-bone>
<no-collide-with-bone>NPC R Clavicle [RClv]</no-collide-with-bone>
<no-collide-with-bone>NPC R UpperArm [RUar]</no-collide-with-bone>
<no-collide-with-bone>NPC R Forearm [RLar]</no-collide-with-bone>
<no-collide-with-bone>NPC R ForearmTwist1 [RLt1]</no-collide-with-bone>
<no-collide-with-bone>NPC R ForearmTwist2 [RLt2]</no-collide-with-bone>
<no-collide-with-bone>NPC R UpperarmTwist1 [RUt1]</no-collide-with-bone>
<no-collide-with-bone>NPC R UpperarmTwist2 [RUt2]</no-collide-with-bone>
<no-collide-with-bone>NPC L Clavicle [LClv]</no-collide-with-bone>
<no-collide-with-bone>NPC L UpperArm [LUar]</no-collide-with-bone>
<no-collide-with-bone>NPC L Forearm [LLar]</no-collide-with-bone>
<no-collide-with-bone>NPC L ForearmTwist1 [LLt1]</no-collide-with-bone>
<no-collide-with-bone>NPC L ForearmTwist2 [LLt2]</no-collide-with-bone>
<no-collide-with-bone>NPC L UpperarmTwist1 [LUt1]</no-collide-with-bone>
<no-collide-with-bone>NPC L UpperarmTwist2 [LUt2]</no-collide-with-bone>
<no-collide-with-bone>NPC Pelvis [Pelv]</no-collide-with-bone>
<no-collide-with-bone>NPC L Thigh [LThg]</no-collide-with-bone>
<no-collide-with-bone>NPC L Calf [LClf]</no-collide-with-bone>
<no-collide-with-bone>NPC R Thigh [RThg]</no-collide-with-bone>
<no-collide-with-bone>NPC R Calf [RClf]</no-collide-with-bone>


</per-triangle-shape>

So now I have physics working fine, but there is absolutely no collision between hands and breasts, or hands and belly for that matter...

Seems that no matter what goes in the Hand.xml it has no effect whatsoever on the collision. I am out of ideas at the time.. Anyone has a functioning setup with collision and cbbe body that could paste their settings here, or an idea of what is wrong in my setup?

Link to comment

in the comments I consolidated above apparently per-vertex-shape needs a *margin* value greater than zero and *prenetration* is used only for per-triangle-shapes. Try using 5 for priority at hands and reduce the *weight-threshold=0.56* for breasts to 0.056.

Link to comment

Hmm..no luck. In cbb-tbbp.xml

<per-triangle-shape name="BaseShape">
<margin>0</margin>
<priority>1</priority>
<prenetration>1</prenetration>
<tag>body</tag>
<no-collide-with-tag>body</no-collide-with-tag>


<weight-threshold bone="NPC L Butt">0.056</weight-threshold>
<weight-threshold bone="NPC R Butt">0.056</weight-threshold> 
<weight-threshold bone="NPC L Breast">0.056</weight-threshold>
<weight-threshold bone="NPC R Breast">0.056</weight-threshold>
<weight-threshold bone="NPC Belly">0.056</weight-threshold>

For hands.xml



<bone name="NPC L Hand [LHnd]"> 
<bone name="NPC R Hand [RHnd]">


  <per-vertex-shape name="Hands">
    <margin>1</margin>
    <priority>5</priority>
    <tag>hand</tag>
    <no-collide-with-tag>hand</no-collide-with-tag>


</per-vertex-shape>
</system>

no collisions between hands and breast...So this is all that is going in the hands.xml? I think I will have to wait until someone else figures out this collision stuff :dodgy:

 

Link to comment

 

Hmm..no luck. In cbb-tbbp.xml

<per-triangle-shape name="BaseShape">
<margin>0</margin>
<priority>1</priority>
<prenetration>1</prenetration>
<tag>body</tag>
<no-collide-with-tag>body</no-collide-with-tag>


<weight-threshold bone="NPC L Butt">0.056</weight-threshold>
<weight-threshold bone="NPC R Butt">0.056</weight-threshold> 
<weight-threshold bone="NPC L Breast">0.056</weight-threshold>
<weight-threshold bone="NPC R Breast">0.056</weight-threshold>
<weight-threshold bone="NPC Belly">0.056</weight-threshold>

For hands.xml



<bone name="NPC L Hand [LHnd]"> 
<bone name="NPC R Hand [RHnd]">


  <per-vertex-shape name="Hands">
    <margin>1</margin>
    <priority>5</priority>
    <tag>hand</tag>
    <no-collide-with-tag>hand</no-collide-with-tag>


</per-vertex-shape>
</system>

no collisions between hands and breast...So this is all that is going in the hands.xml? I think I will have to wait until someone else figures out this collision stuff :dodgy:

 

 

Another trick, Open up BodySlide, load outfit nif --hand.nif-- discover which bones in the hand.nif are 'weight painted': these are the bones you want to declare - set up for collision at breasts. It is the weight paint for each bone that adds collision. You may only have to do palm-bone to get the collision you want. 

 

 

Link to comment

ok, so I finally got the hand- breast collision to work

 

I had to:

  • add the connection to the defaultBBPs.xml  in femalebody_0 .nif and femalbody_1.nif, add value of 1 in the:Num Extra Data List and then the number (1)for HDT Skinned mesh physics
  • add the connection to the hands.xml in femalehands_0.nif and femalehands_1.nif, add value of 1 in the:Num Extra Data List and then the number (1)for HDT Skinned mesh physics
  • <per-vertex-shape name="Hands"> <!--is correct for cbbe-hdt body for my hands.xml-->

I still couldn't get the physic to work, but then I lowered the values here:

<weight-threshold bone="NPC L Breast">0.056</weight-threshold>
<weight-threshold bone="NPC R Breast">0.056</weight-threshold>

But the physics behaved erratically, meaning breasts jumped all over the place when in contact with hands. Had to edit these values to fix that:

<generic-constraint bodyA="NPC L Breast" bodyB="NPC L PreBreast">
<frameInB>
<basis x="0" y="0" z="0" w="1"/>
<origin x="0" y="0" z="0"/>
</frameInB>
<useLinearReferenceFrameA>false</useLinearReferenceFrameA>
<linearLowerLimit x="-10" y="-0.5" z="-30"/>
<linearUpperLimit x="10" y="20" z="30"/>
<angularLowerLimit x="0" y="-0.1" z="-0.4"/>
<angularUpperLimit x="0" y="0.1" z="0.4"/>
<linearStiffness x="250" y="250" z="250"/>
<angularStiffness x="800" y="800" z="800"/>
<linearDamping x="3" y="3" z="3"/>
<angularDamping x="0" y="0" z="6"/>
<linearEquilibrium x="0" y="0" z="-3"/>
<angularEquilibrium x="0" y="0" z="0"/>
</generic-constraint>

Also the values for the : 

<generic-constraint bodyA="NPC L Breast01" bodyB="NPC L PreBreast">

Now the breasts follow the hands perfectly- much better than the old HDT.

However I have one problem....when hands are getting close to the breasts, the framerate drops to about 1-2 fps then goes back to 40-50 fps when hands are away from breasts. 

 

 

Link to comment

ok, fixed the framerate issue by changing the collision in "baseshape" to per-vertex.

<per-vertex-shape name="BaseShape">
<margin>0.2</margin>
<priority>1</priority>
<!--<prenetration>1</prenetration>-->
<tag>body</tag>
<no-collide-with-tag>body</no-collide-with-tag>


<weight-threshold bone="NPC L Butt">0.05</weight-threshold>
<weight-threshold bone="NPC R Butt">0.05</weight-threshold> 
<weight-threshold bone="NPC L Breast">0.05</weight-threshold>
<weight-threshold bone="NPC R Breast">0.05</weight-threshold>
<weight-threshold bone="NPC L Breast01">0.05</weight-threshold>
<weight-threshold bone="NPC R Breast01">0.05</weight-threshold>
<!--<weight-threshold bone="NPC Belly">0.05</weight-threshold>-->

changed the collision in "hands.xml" to per-triangle and changed prenetration to 3

per-triangle-shape name="Hands">
    <margin>0</margin>
    <priority>1</priority>
<prenetration>3</prenetration>
    <tag>hand</tag>
    <no-collide-with-tag>hand</no-collide-with-tag>

Now I have pretty good collision between hands-breasts with no framerate lost.

 

 

Link to comment

@ Farass, interesting, mind posting the full .xml's when you're done so we can get on the action? :P

 

I too would like to take a look at them. I did get it to work but for some reason is only working while I'm in racemenu, otherwise its acting all erratic. I do think that is something else messing with it but I'd rather compare files before I try tracking down else where.

Link to comment

Hi! this is my "baseshape.xml" for cbbe-hdt. Mostly suited for big breasts. I have working collision between hands-breasts, hands-belly and partly hands-butt collision. Butt collision works fine if I change to per-triangle in baseshape.xml. In fact, all collisions work better and more precise if I change to per-triangle in baseshape, but at the cost of massive framerate drops. I have some problems with breast behaving erratically when hands are touching them.And still can't seem to get SOS genitals-body collision.So consider this a work in progress ;)

<?xml version="1.0" encoding="utf-8"?>
<system>
<bone name="NPC L PreBreast">
<mass>0.000000</mass>
<inertia x="0" y="0" z="0"/>
<centerOfMassTransform>
<basis x="0" y="0" z="0" w="1"/>
<origin x="0" y="0" z="0"/>
</centerOfMassTransform>
<linearDamping>0</linearDamping>
<angularDamping>0</angularDamping>
<friction>0</friction>
<rollingFriction>0</rollingFriction>
<restitution>0</restitution>
</bone>


<bone name="NPC R PreBreast">
<mass>0.000000</mass>
<inertia x="0" y="0" z="0"/>
<centerOfMassTransform>
<basis x="0" y="0" z="0" w="1"/>
<origin x="0" y="0" z="0"/>
</centerOfMassTransform>
<linearDamping>0</linearDamping>
<angularDamping>0</angularDamping>
<friction>0</friction>
<rollingFriction>0</rollingFriction>
<restitution>0</restitution>
</bone>


<bone name="NPC L Breast">
<mass>1.30000</mass>
<inertia x="3.5" y="3.5" z="3.5"/>
<centerOfMassTransform>
<basis x="0" y="0" z="0" w="1"/>
<origin x="0" y="2" z="0"/>
</centerOfMassTransform>
<linearDamping>0.2</linearDamping>
<angularDamping>0.4</angularDamping>
<friction>0</friction>
<rollingFriction>0</rollingFriction>
<restitution>0</restitution>
</bone>


<bone name="NPC R Breast">
<mass>1.30000</mass>
<inertia x="3.5" y="3.5" z="3.5"/>
<centerOfMassTransform>
<basis x="0" y="0" z="0" w="1"/>
<origin x="0" y="2" z="0"/>
</centerOfMassTransform>
<linearDamping>0.2</linearDamping> <!-- from 0 to 1: the linear speed at the next second; v'=v*(1 - linearDamping) -->
<angularDamping>0.4</angularDamping> <!-- from 0 to 1: the angular speed at the next second; r'=r*(1 - angularDamping) --> 
<friction>0</friction> <!-- acquiescent parameter is 0.5 Similar to Friction Factor in real world. -->
<rollingFriction>0</rollingFriction>
<restitution>0</restitution> <!-- Rebound Coefficient: acquiescent parameter is 0. The ratio of rebound speed; zero means that there is no rebound -->
</bone>




<generic-constraint bodyA="NPC L Breast" bodyB="NPC L PreBreast">
<frameInB>
<basis x="0" y="0" z="0" w="1"/>
<origin x="0" y="0" z="0"/>
</frameInB>
<useLinearReferenceFrameA>false</useLinearReferenceFrameA>
<linearLowerLimit x="-10" y="0" z="-30"/>
<linearUpperLimit x="10" y="20" z="30"/>
<angularLowerLimit x="0" y="0" z="-0.3"/> <!-- based on relative coordinate (parent). The parameter is radian (the acquiescent parameter is x=-1, y=-1, z=-1)-->
<angularUpperLimit x="0" y="0" z="0.3"/>
<linearStiffness x="30" y="100" z="250"/> <!-- from 0 to 8000, bigger parameter means more stiff --> 
<angularStiffness x="10" y="10" z="300"/>
<linearDamping x="2" y="2" z="2"/>
<angularDamping x="5" y="5" z="5"/> <!-- from 0 to 8000, bigger parameter means bigger degree of decay-->
<linearEquilibrium x="0" y="0" z="-3"/> <!-- establish center of spring -linear- (the acquiescent parameter is x=0, y=0, z=0) **very helpful for lifting/re-positioning a sagging/flat mesh per bone** -->
<angularEquilibrium x="0" y="0" z="0"/>
</generic-constraint>


<generic-constraint bodyA="NPC R Breast" bodyB="NPC R PreBreast">
<frameInB>
<basis x="0" y="0" z="0" w="1"/>
<origin x="0" y="0" z="0"/>
</frameInB>
<useLinearReferenceFrameA>false</useLinearReferenceFrameA>
<linearLowerLimit x="-10" y="0" z="-30"/>
<linearUpperLimit x="10" y="20" z="30"/>
<angularLowerLimit x="0" y="0" z="-0.3"/>
<angularUpperLimit x="0" y="0" z="0.3"/>
<linearStiffness x="30" y="100" z="250"/>
<angularStiffness x="10" y="10" z="300"/>
<linearDamping x="2" y="2" z="2"/>
<angularDamping x="5" y="5" z="5"/>
<linearEquilibrium x="0" y="0" z="-3"/>
<angularEquilibrium x="0" y="0" z="0"/>
</generic-constraint>




<bone name="NPC Belly">
<mass>1.00000</mass>
<inertia x="50" y="50" z="50"/>
<centerOfMassTransform>
<basis x="0" y="0" z="0" w="1"/>
<origin x="0" y="0" z="0"/>
</centerOfMassTransform>
<linearDamping>0.6</linearDamping>
<angularDamping>0.4</angularDamping>
<friction>0</friction>
<rollingFriction>0</rollingFriction>
<restitution>0</restitution>
</bone>


<bone name="HDT Belly">
<mass>0.0</mass>
<inertia x="0" y="0" z="0"/>
<centerOfMassTransform>
<basis x="0" y="0" z="0" w="1"/>
<origin x="0" y="0" z="0"/>
</centerOfMassTransform>
<linearDamping>0</linearDamping>
<angularDamping>0</angularDamping>
<friction>0</friction>
<rollingFriction>0</rollingFriction>
<restitution>0</restitution>
</bone>


<generic-constraint bodyA="NPC Belly" bodyB="HDT Belly">
<frameInB>
<basis x="0" y="0" z="0" w="1"/>
<origin x="0" y="0" z="0"/>
</frameInB>
<useLinearReferenceFrameA>false</useLinearReferenceFrameA>
<linearLowerLimit x="-0.01" y="3" z="-4"/>
<linearUpperLimit x="0.01" y="8" z="8"/>
<angularLowerLimit x="-0.01" y="-0.01" z="-0.1"/>
<angularUpperLimit x="0.01" y="0.01" z="0.1"/>
<linearStiffness x="300" y="300" z="300"/>
<angularStiffness x="900" y="900" z="900"/>
<linearDamping x="3" y="3" z="3"/>
<angularDamping x="0" y="0" z="6"/>
<linearEquilibrium x="0" y="0" z="0"/>
<angularEquilibrium x="0" y="0" z="0"/>
</generic-constraint>




<bone name="NPC L PreButt">
<mass>0.000000</mass>
<inertia x="0" y="0" z="0"/>
<centerOfMassTransform>
<basis x="0" y="0" z="0" w="1"/>
<origin x="0" y="0" z="0"/>
</centerOfMassTransform>
<linearDamping>0</linearDamping>
<angularDamping>0</angularDamping>
<friction>0</friction>
<rollingFriction>0</rollingFriction>
<restitution>0</restitution>
</bone>


<bone name="NPC R PreButt">
<mass>0.000000</mass>
<inertia x="0" y="0" z="0"/>
<centerOfMassTransform>
<basis x="0" y="0" z="0" w="1"/>
<origin x="0" y="0" z="0"/>
</centerOfMassTransform>
<linearDamping>0</linearDamping>
<angularDamping>0</angularDamping>
<friction>0</friction>
<rollingFriction>0</rollingFriction>
<restitution>0</restitution>
</bone>


<bone name="NPC L Butt">
<mass>1.000000</mass>
<inertia x="10" y="10" z="10"/>
<centerOfMassTransform>
<basis x="0" y="2" z="0" w="1"/>
<origin x="0" y="0" z="0"/>
</centerOfMassTransform>
<linearDamping>0.2</linearDamping>
<angularDamping>0.4</angularDamping>
<friction>0.5</friction>
<rollingFriction>0</rollingFriction>
<restitution>1.0</restitution>
</bone>


<bone name="NPC R Butt">
<mass>1.000000</mass>
<inertia x="10" y="10" z="10"/>
<centerOfMassTransform>
<basis x="0" y="2" z="0" w="1"/>
<origin x="0" y="0" z="0"/>
</centerOfMassTransform>
<linearDamping>0.2</linearDamping>
<angularDamping>0.4</angularDamping>
<friction>0.5</friction>
<rollingFriction>0</rollingFriction>
<restitution>1.0</restitution>
</bone>


<per-vertex-shape name="BaseShape">
<margin>0.8</margin> 
<priority>1</priority>
<!--<prenetration>2</prenetration>-->
<tag>body</tag>
<no-collide-with-tag>body</no-collide-with-tag>


<weight-threshold bone="NPC L Butt">0.0</weight-threshold>
<weight-threshold bone="NPC R Butt">0.0</weight-threshold> 
<weight-threshold bone="NPC L Breast">0.05</weight-threshold>
<weight-threshold bone="NPC R Breast">0.05</weight-threshold>
<weight-threshold bone="NPC Belly">0.05</weight-threshold>


<!--<no-collide-with-bone>NPC Spine [Spn0]</no-collide-with-bone> 
<no-collide-with-bone>NPC Spine1 [Spn1]</no-collide-with-bone>
<no-collide-with-bone>NPC Spine2 [Spn2]</no-collide-with-bone>
<no-collide-with-bone>NPC R Clavicle [RClv]</no-collide-with-bone>
<no-collide-with-bone>NPC R UpperArm [RUar]</no-collide-with-bone>
<no-collide-with-bone>NPC R Forearm [RLar]</no-collide-with-bone>
<no-collide-with-bone>NPC R ForearmTwist1 [RLt1]</no-collide-with-bone>
<no-collide-with-bone>NPC R ForearmTwist2 [RLt2]</no-collide-with-bone>
<no-collide-with-bone>NPC R UpperarmTwist1 [RUt1]</no-collide-with-bone>
<no-collide-with-bone>NPC R UpperarmTwist2 [RUt2]</no-collide-with-bone>
<no-collide-with-bone>NPC L Clavicle [LClv]</no-collide-with-bone>
<no-collide-with-bone>NPC L UpperArm [LUar]</no-collide-with-bone>
<no-collide-with-bone>NPC L Forearm [LLar]</no-collide-with-bone>
<no-collide-with-bone>NPC L ForearmTwist1 [LLt1]</no-collide-with-bone>
<no-collide-with-bone>NPC L ForearmTwist2 [LLt2]</no-collide-with-bone>
<no-collide-with-bone>NPC L UpperarmTwist1 [LUt1]</no-collide-with-bone>
<no-collide-with-bone>NPC L UpperarmTwist2 [LUt2]</no-collide-with-bone>
<no-collide-with-bone>NPC Pelvis [Pelv]</no-collide-with-bone>
<no-collide-with-bone>NPC L Thigh [LThg]</no-collide-with-bone>
<no-collide-with-bone>NPC L Calf [LClf]</no-collide-with-bone>
<no-collide-with-bone>NPC R Thigh [RThg]</no-collide-with-bone>
<no-collide-with-bone>NPC R Calf [RClf]</no-collide-with-bone>-->


</per-vertex-shape>


<generic-constraint bodyA="NPC L Butt" bodyB="NPC L PreButt">
<frameInB>
<basis x="0" y="0" z="0" w="1"/>
<origin x="0" y="0" z="0"/>
</frameInB>
<useLinearReferenceFrameA>false</useLinearReferenceFrameA>
<linearLowerLimit x="-0.1" y="-0.5" z="-8"/>
<linearUpperLimit x="0.1" y="0.5" z="8"/>
<angularLowerLimit x="-0.2" y="-0.1" z="-0.5"/>
<angularUpperLimit x="0.2" y="0.1" z="0.5"/>
<linearStiffness x="100.00" y="300.00" z="300.00"/>
<angularStiffness x="200" y="200" z="400"/>
<linearDamping x="2" y="2" z="2"/>
<angularDamping x="2" y="2" z="2"/>
<linearEquilibrium x="0" y="0" z="3"/>
<angularEquilibrium x="0" y="0" z="0"/>
</generic-constraint>


<generic-constraint bodyA="NPC R Butt" bodyB="NPC R PreButt">
<frameInB>
<basis x="0" y="0" z="0" w="1"/>
<origin x="0" y="0" z="0"/>
</frameInB>
<useLinearReferenceFrameA>false</useLinearReferenceFrameA>
<linearLowerLimit x="-0.1" y="-0.5" z="-8"/>
<linearUpperLimit x="0.1" y="0.5" z="8"/>
<angularLowerLimit x="-0.2" y="-0.1" z="-0.5"/>
<angularUpperLimit x="0.2" y="0.1" z="0.5"/>
<linearStiffness x="100.00" y="300.00" z="300.00"/>
<angularStiffness x="200" y="200" z="400"/>
<linearDamping x="2" y="2" z="2"/>
<angularDamping x="2" y="2" z="2"/>
<linearEquilibrium x="0" y="0" z="3"/>
<angularEquilibrium x="0" y="0" z="0"/>
</generic-constraint>
</system>

Hands.xml

<?xml version="1.0" encoding="UTF-8"?>
<system xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="description.xsd">


<per-triangle-shape name="Hands">
    <margin>0.2</margin>
    <priority>1</priority>
<prenetration>3</prenetration>
    <tag>hand</tag>
    <no-collide-with-tag>hand</no-collide-with-tag>
    <no-collide-with-tag>ground</no-collide-with-tag>
  
    </per-triangle-shape>
</system>

 

Link to comment

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
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more information, see our Privacy Policy & Terms of Use