Jump to content

Recommended Posts

This is gonna be kinda rough so if anyone notices me make a mistake please jump in.

 

@Gromilla

 

This section is for telling things what they can and cannot collide with. The default is "collide with everything that has SMP enabled", in some cases this is fine in others it is less than optimal. As an example, if you are working with a tail and you let it collide with your body than both the tail and your butt will spaz out. So you have to create a "collision shape", or a fake static butt, for your tail to collide with and tell it not to collide with your body. I posted a tail nif earlier in the thread, page 25 post #602, if you want to look at an example of what I'm talking about. To do this you first have to single out what shape your talking about and whether you want it to be a per-triangle or a per-vertex, so it will either look like this

<per-vertex-shape name="Insert the name of your shape as it is spelled in nifskope or outfit studio">

or this

<per-triangle-shape name="Insert the name of your shape as it is spelled in nifskope or outfit studio">

And when I say spelled as it is in nifskope or outfit studio, I mean EXACTLY as it is spelled. Even if its spelled wrong they should both be spelled exactly the same. In general use per-vertex if the shape is going to be moving, like a tail or wig, and per-triangle if the shape is going to be still or a "base shape", your main body or a static collisions shape. Next is the "margin" which looks like this

<margin>0</margin>

You replace the "0" with any number and this line tells SMP at what distance to start applying your shapes collisions. Think of it like a bubble or force field around your shape that other things will run into. Next is "penetration" which will look like this

<penetration>0</penetration>

Again replace the "0" with a number. This line tells SMP how far into another shape your shape can go and still have the rules you set for it applied. If you think of it as a banana going into jello this line says how "hard" the banana is. Next is "prenetration" which will look like this

<prenetration>0</prenetration>

Again replace the "0" with a number of your choosing. This line tells SMP how far into your shape other things can go and still have your shapes rules applied to them. Going back to the banana and jello analogy, this line says how "soft" the jello is. It should be mentioned that whether this line actually does anything is still being argued over. Next is the "tag" which looks like this

<tag>"TAG"</tag>

Replace the "TAG" with whatever you want SMP to call your shape. This line identifies what SMP will call this particular shape from now on. You'll need it for the next part, the "no-collide-with-tag". Which looks like this

<no-collide-with-tag>"TAG"</no-collide-with-tag>

Replace "TAG" with things you don't want this shape to collide with. As an example, you should almost always prevent a shape from colliding with itself. So in most cases the first "no-collide-with-tag" will be the same name as the tag for the shape your working on. You can use both "tag" and "bone" names for this line as needed. In most cases you'll have a number of this line, each naming a different shape, tag, or bone. Lastly, at least as far as I know, is the "weight-threshold" line. Which looks like this

<weight-threshold bone="Insert name of bone here">0</weight-threshold>

Replace the "0" with a number of your choice. This line tells SMP how much force the bone you name needs to have applied to it before it will begin moving.

 

 

4 hours ago, Gromilla said:

Where did these Lbreast Rbreast parts come from? 

Or where did the penis.xml (CBBE original config) file come from and what is it described for?

%-(

I managed to somehow make the bounce work for CBBE-Special, UUNP, COS and some other old type bodies , but I do not understand until the end how to make the collisions work (as usual the chest and arms, legs, and others part :smile: ) on  these bodies. 

Thank you in advance! This topic has helped me a lot.

 

The "Lbreast" and "Rbreast" are bones from the base UUNP shape. Why they needed to be given their own "no-collide" tag when the body shape is all ready tagged "no-collide" I don't know, but things seem to work better if they are. Almost every base body shape I've ever seen has them. The "penis.xml" is in case you ever use one of the fine schlong mods out there. It provides the schlong with SMP and some collision tags. To get collisions working each shape that could collide, like hands or feet, needs its own xml that accurately references the shape name used in the nif. Then that xml needs to be added to the "defaultBBP's.xml" if its a body part or added directly to the nif with nifskope if its something equipable, like a wig or armor. Attaching the xml directly to the nif is pretty much the same as it was with Oldrims HDT-PE, but if you need help with it I recommend these guides 

https://forums.nexusmods.com/index.php?/topic/3800385-a-guide-to-hdt-smp-usersmodders/page-1

https://www.loverslab.com/topic/68070-tutorial-how-to-make-hdt-meshes-work-with-hdt-smp/

 

However the CBBE SMP files from the CBBE page should already have this covered for all male and female body parts. Or at least I haven't changed them and my girls, guys, and futa all have proper physics and collisions.

Link to comment
1 hour ago, DarkFireTim said:

<per-triangle-shape name="Insert the name of your shape as it is spelled in nifskope or outfit studio">

And when I say spelled as it is in nifskope or outfit studio, I mean EXACTLY as it is spelled. Even if its spelled wrong they should both be spelled exactly the same.

Sometimes it is better to actually change the reference body shape name in the mesh rather than declare non-standard shape names. I have found that most armor that contains a reference shape (which is all body-slot 32 items), especially converted armor from Skyrim, has the existing reference shape named weirdly- like "BillyBodyCM7" or similarly unhelpful names. The fix is to delete that shape and load your reference body (UUNP-Special in my case) whereupon the reference body shape becomes "UUNP" which is exactly what my UUNP.xml needs for physics and/or collisions. If you leave the existing oddly-named reference body in the mesh, neither physics nor collisions will work until you declare that shape in the xml as you have shown above.

 

I guess what I'm saying is that getting stuff to work becomes a lot less tedious if all your chest-covering items have the same reference body shape name, so copying weird body-shape names into your xml may not always be the best idea.

 

What about renaming armor shapes to get consistency and minimize xml sizes and complexity? For example, renaming all shapes with breast bones "torso" so that's the only shape name you need to declare to get breast collisions. Seems like that would work.

Link to comment

Wow! I'll go read and understand. Thank you Thank you very much! 

 

UPD. 

Quote

Going back to the banana and jello analogy

This is the best analogy that I could imagine for explaining the physics of collisions! At least I understood everything  :smile:

Quote

This is the best tutorial (yet) in physics SMP,  but you can better explain the necessary little things. It is wonderful!

Quote

The "Lbreast" and "Rbreast" are bones from the base UUNP shape. Why they needed to be given their own "no-collide" tag when the body shape is all ready tagged "no-collide" I don't know, but things seem to work better if they are. Almost every base body shape I've ever seen has them. 

useful quote:

Quote

You most likely do not have a collision object set up that represents your characters 'body'.
 
There are a few ways to set up a collision object to represent your character. One is to add an entry to your defaultBBPs.xml which creates an object like so (this is the easier one):


<!-- defaultBBPs.xml -->
<default-bbps>
  <map shape="MyBodyShapesName" file="SKSE\Plugins\hdtSkinnedMeshConfigs\body-collision.xml" />
</default-bbps>



<!-- New xml file (e.g. body-collision.xml) -->
<per-triangle-shape name="MyBodyShapesName">
  <margin>0</margin>					
  <penetration>0.25</penetration>
  <tag>body</tag>		
  <no-collide-with-tag>body</no-collide-with-tag>
</per-triangle-shape>

Linking this xml file to the name of your chosen body mod (CBBE in the case of CBBE for SSE).
 
Advantages:

  • Easy

Disadvantages:

  • You are making your entire body a collision object, and in CBBE's case that is a lot of geometry (Performance)
  • This will not work if the body object with the name CBBE is not present (As will be the case for most armor)

While you could go through all your armor files and add a collision definition for each entry, this will most likely end up in hideous tedium.
 
The second option is to create a proxy objects that approximate your characters body that the hair is likely to interact with, these objects can be built as a part of the hair nif itself.
 
These proxies would be skinned / mapped to the appropriate skeleton nodes so they move properly and interact with the hair, our proxy objects only need to be as complex as desired for the accuracy of simulation intended (these end up being invisible in game).
 
Advantages:

  • Lower object complexity (Performance)
  • No need to re-declare every armor you use as a collision object
  • Can tailor these proxies to get a collision simulation that works well enough for all use cases or that works specifically for your use case
  • Can add the proxy objects definition to the file that comes with the hair (HDTHair.xml), no need to mess around with linking files through defaultBBPs.xml

Disadvantages:

  • Learning curve for the creation of mesh & skinning in the context of nif files, 3D modeling and weight mapping are not something I cover in this guide.

This technique is employed by the above wedding dress file for interactions with the players legs / ground etc.

proxies.png

And further in the text...

 

thanks again!!!

Link to comment

Has anyone looked a this person stuff yet for more ideas?

https://www.patreon.com/laosiji

 

OMG the amount of bones in the body is insane alone.

 

Unzip the file BODY Files, replace the attached .xml file in the fomod folder to get a loosely translated install package. Rezip the directory, install with a mod manger. Laugh while reading the translation but you get an idea on what you are installing.

 

ModuleConfig.xml

Link to comment
10 hours ago, DarkFireTim said:

This is gonna be kinda rough so if anyone notices me make a mistake please jump in.

 

@Gromilla

 

This section is for telling things what they can and cannot collide with. The default is "collide with everything that has SMP enabled", in some cases this is fine in others it is less than optimal. As an example, if you are working with a tail and you let it collide with your body than both the tail and your butt will spaz out. So you have to create a "collision shape", or a fake static butt, for your tail to collide with and tell it not to collide with your body. I posted a tail nif earlier in the thread, page 25 post #602, if you want to look at an example of what I'm talking about. To do this you first have to single out what shape your talking about and whether you want it to be a per-triangle or a per-vertex, so it will either look like this


<per-vertex-shape name="Insert the name of your shape as it is spelled in nifskope or outfit studio">

or this


<per-triangle-shape name="Insert the name of your shape as it is spelled in nifskope or outfit studio">

And when I say spelled as it is in nifskope or outfit studio, I mean EXACTLY as it is spelled. Even if its spelled wrong they should both be spelled exactly the same. In general use per-vertex if the shape is going to be moving, like a tail or wig, and per-triangle if the shape is going to be still or a "base shape", your main body or a static collisions shape. Next is the "margin" which looks like this


<margin>0</margin>

You replace the "0" with any number and this line tells SMP at what distance to start applying your shapes collisions. Think of it like a bubble or force field around your shape that other things will run into. Next is "penetration" which will look like this


<penetration>0</penetration>

Again replace the "0" with a number. This line tells SMP how far into another shape your shape can go and still have the rules you set for it applied. If you think of it as a banana going into jello this line says how "hard" the banana is. Next is "prenetration" which will look like this


<prenetration>0</prenetration>

Again replace the "0" with a number of your choosing. This line tells SMP how far into your shape other things can go and still have your shapes rules applied to them. Going back to the banana and jello analogy, this line says how "soft" the jello is. It should be mentioned that whether this line actually does anything is still being argued over. Next is the "tag" which looks like this


<tag>"TAG"</tag>

Replace the "TAG" with whatever you want SMP to call your shape. This line identifies what SMP will call this particular shape from now on. You'll need it for the next part, the "no-collide-with-tag". Which looks like this


<no-collide-with-tag>"TAG"</no-collide-with-tag>

Replace "TAG" with things you don't want this shape to collide with. As an example, you should almost always prevent a shape from colliding with itself. So in most cases the first "no-collide-with-tag" will be the same name as the tag for the shape your working on. You can use both "tag" and "bone" names for this line as needed. In most cases you'll have a number of this line, each naming a different shape, tag, or bone. Lastly, at least as far as I know, is the "weight-threshold" line. Which looks like this


<weight-threshold bone="Insert name of bone here">0</weight-threshold>

Replace the "0" with a number of your choice. This line tells SMP how much force the bone you name needs to have applied to it before it will begin moving.

 

 

 

The "Lbreast" and "Rbreast" are bones from the base UUNP shape. Why they needed to be given their own "no-collide" tag when the body shape is all ready tagged "no-collide" I don't know, but things seem to work better if they are. Almost every base body shape I've ever seen has them. The "penis.xml" is in case you ever use one of the fine schlong mods out there. It provides the schlong with SMP and some collision tags. To get collisions working each shape that could collide, like hands or feet, needs its own xml that accurately references the shape name used in the nif. Then that xml needs to be added to the "defaultBBP's.xml" if its a body part or added directly to the nif with nifskope if its something equipable, like a wig or armor. Attaching the xml directly to the nif is pretty much the same as it was with Oldrims HDT-PE, but if you need help with it I recommend these guides 

https://forums.nexusmods.com/index.php?/topic/3800385-a-guide-to-hdt-smp-usersmodders/page-1

https://www.loverslab.com/topic/68070-tutorial-how-to-make-hdt-meshes-work-with-hdt-smp/

 

However the CBBE SMP files from the CBBE page should already have this covered for all male and female body parts. Or at least I haven't changed them and my girls, guys, and futa all have proper physics and collisions.

I kept reading how to make hdt meshes work with HDT SMP then I stopped @_@ I think if I was a video I would learn it much easier! Also I don't have Nifscope.....

Link to comment
10 hours ago, ddavin said:

Has anyone looked a this person stuff yet for more ideas?

https://www.patreon.com/laosiji

 

OMG the amount of bones in the body is insane alone.

 

Unzip the file BODY Files, replace the attached .xml file in the fomod folder to get a loosely translated install package. Rezip the directory, install with a mod manger. Laugh while reading the translation but you get an idea on what you are installing.

 

ModuleConfig.xml

 

Super! This is a very interesting variant of the body for research. There is an option for SE https://www.patreon.com/file?h=18316615&i=2099807

Link to comment
16 hours ago, Vyxenne said:

What about renaming armor shapes to get consistency and minimize xml sizes and complexity? For example, renaming all shapes with breast bones "torso" so that's the only shape name you need to declare to get breast collisions. Seems like that would work.

I've run into problems with some wigs naming their collision shape "body" or creating unnecessary collision shapes that, due to how SMP handles collisions, are now messing with every thing else I had running. So I agree at some point some one will need to make a "SMP Standard" if you will. Something that says what shapes are in different nifs, like all shoes having virtual ground, and what those shapes are called so its easier to make "plug and play" mods. I don't think it will happen soon tho, were still figuring out what shapes actually need to go where. That being said it might not be a bad idea for someone to make, and upkeep, a running list of what people have found.

Link to comment
1 hour ago, DarkFireTim said:

I've run into problems with some wigs naming their collision shape "body" or creating unnecessary collision shapes that, due to how SMP handles collisions, are now messing with every thing else I had running.

Yeah, um, sorry if I was unclear- "body" would only be used to denote the entire body as a collision shape, and the "UUNP" (or, I assume, "CBBE") body shape inside an armor or clothing nif would only exist for Biped Slot 32 items, which are customarily the only items that contain a reference body shape. For wigs, they contain a collision "head" and their xml declares it. I was not suggesting in any way that we would want to name any shape in a wig nif "body."

Link to comment
17 hours ago, Gromilla said:

There are a few ways to set up a collision object to represent your character. One is to add an entry to your defaultBBPs.xml which creates an object like so (this is the easier one):


<!-- defaultBBPs.xml -->
<default-bbps>
  <map shape="MyBodyShapesName" file="SKSE\Plugins\hdtSkinnedMeshConfigs\body-collision.xml" />
</default-bbps>



<!-- New xml file (e.g. body-collision.xml) -->
<per-triangle-shape name="MyBodyShapesName">
  <margin>0</margin>					
  <penetration>0.25</penetration>
  <tag>body</tag>		
  <no-collide-with-tag>body</no-collide-with-tag>
</per-triangle-shape>

The strategy posted above did not work for me because I ended up declaring my body shape - "UUNP" - twice in DefaultBBPs.xml- once to point to body-collision.xml as directed in the above "guide" and another to point to my main body file, "UUNP.xml." So what I ended up having to do was to remove the per-triangle-shape element from body-collision.xml and place it directly into my UUNP.xml because there was no way to declare it in DefaultBBPs.xml as this guide specifies.

 

If you look back a page or two in this thread, you will see where @R246 and @DarkFireTim both corrected my error which I got from the above guide. So I strongly suggest that you take "guides" with a grain of salt, especially old ones like the above.

Link to comment
2 hours ago, Vyxenne said:

Yeah, um, sorry if I was unclear- "body" would only be used to denote the entire body as a collision shape, and the "UUNP" (or, I assume, "CBBE") body shape inside an armor or clothing nif would only exist for Biped Slot 32 items, which are customarily the only items that contain a reference body shape. For wigs, they contain a collision "head" and their xml declares it. I was not suggesting in any way that we would want to name any shape in a wig nif "body."

Sorry this ones my bad. I was giving an example that I felt supported the point I thought your comment was leading to. Thus the bit about a standardized SMP system, I thought that was where you were going when you pointed out that it would be a better idea to rename the body shape.

Link to comment
1 hour ago, DarkFireTim said:

Sorry this ones my bad. I was giving an example that I felt supported the point I thought your comment was leading to. Thus the bit about a standardized SMP system, I thought that was where you were going when you pointed out that it would be a better idea to rename the body shape.

Well, you are right, a somewhat-standardized SMP system is what I was suggesting... if your body-collision shape is named "UUNP" in the xml but the body shape in a Slot-32 nif is not named "UUNP" then yes, I was suggesting that you rename it (or replace it with a new UUNP reference shape) so that your collision-object declaration for the "UUNP" body will apply when you are wearing that particular item- thereby saving you from having to write multiple declarations, one for each cockamamie reference body shape name (e.g. "BillyBobSuperFapOohLaLaBody" :classic_biggrin: ) in various armor and clothing meshes ... because when you put on that particular armor you are no longer "using" your default body, you are using whatever body is in the armor mesh. So even if my body shape is, for example, "UNP-Slim," if I put on an armor item containing a 7B "SuperMelonsCleavage" shape, I will become the SuperMelonsCleavage girl and my body collision object will no longer apply because I declared it as "UUNP."

Link to comment

I don't know if anyone is interested in a High Poly UNP based body with SMP collisions and jiggle. I figured I'd share the body I'm using now so I can get some feedback on it for refinement. I plan to package this as a complete body when finished for ease of install. 

 

Disclaimer: This is a WIP but 90% done so with that if you don't know what or how to install this then your most likely better off not doing it. THIS IS NOT A NOOB FRIENDLY MOD! But if you have a basic knowledge you should be fine. If you message me with "This gives CTD fix it" with no log files or detailed explanation YOU WILL BE IGNORED! I will try to help those that make an effort or show a willingness to learn.

 

Enjoy 

 

EDIT: Dead project now.

 

SMP HIGH POLY TEST.mp4

489830_20180420192551_1.png

HIGHPOLY BODY.PNG

 

UUNP permissions.PNG

Link to comment

@scipher99 The Hi-Poly idea interests me a lot, but the lack of any sliders (look at the Outfit Studio view) is a game-stopper. I would need to be able to build that body to a shape I like a lot better than that one, and then tweak it too. But without body-part ("areola size" etc.) and body-shape ("UNPB-High UNPB-Low" etc) I couldn't use it. Plus, if that's the one somebody said had a lot of extra bones (compared to UUNP or CBBE) then all my armor and clothes would have to be rebuilt to accommodate the new bones.

Link to comment

@scipher99

 

Great Work!

 

Checking on your xml I'm assuming that the tag name for body should be assigned in the default bbps, I would suggest that you add that file when packaging your body and use generic tag names like body | hands | feet whatever, as you maybe know we can use those tags in clothes and stuff to make collitions work so would be great if we have some kind of standard names.

 

Link to comment
2 hours ago, Vyxenne said:

@scipher99 The Hi-Poly idea interests me a lot, but the lack of any sliders (look at the Outfit Studio view) is a game-stopper. I would need to be able to build that body to a shape I like a lot better than that one, and then tweak it too. But without body-part ("areola size" etc.) and body-shape ("UNPB-High UNPB-Low" etc) I couldn't use it. Plus, if that's the one somebody said had a lot of extra bones (compared to UUNP or CBBE) then all my armor and clothes would have to be rebuilt to accommodate the new bones.

Use the UUNP SMP collision Bodyslide file into Data\CalienteTools\BodySlide\ShapeData and you will have all of those sliders. This is NOT the body with all of the extra bones it has standard bones. The screenshot was just a basic import of the nifs for a wireframe shot so no BS data was loaded that is why no sliders are present.

Link to comment
3 minutes ago, t3h0th3r said:

Did anyone get to check out the new CBBE SMP from the official Nexus site? It should feature collisions. 

Thanks didn't know I'm going to load these onto my second PC for testing. For me its hard to switch to CBBE because I have 15GB+ of converted UUNP SMP armors and clothes. Plus I spent a stupid amount of time getting a high poly UUNP body working with collisions and SMP everything lol.

Link to comment

 

3 hours ago, scipher99 said:

Thanks didn't know I'm going to load these onto my second PC for testing. For me its hard to switch to CBBE because I have 15GB+ of converted UUNP SMP armors and clothes. Plus I spent a stupid amount of time getting a high poly UUNP body working with collisions and SMP everything lol.

I was a diehard UUNP fan for oldrim and actually also helped BTN and cell/ousnius to optimize it, but CBBE SSE uses a higher poly base than even UUNP, and also ousnius isn't willing to keep supporting UUNP for SSE, so i switched. And i kind of urge you all to do the same, since the body-divide was bad enough in oldrim :smile:

 

There's the The Book of UUNP (CBBE SE Conversion) that may alleviate the pain that comes from switching...

 

In your nifs, i noticed you added a separate collision shape, what made you do that? I mean, is there a technical reason not to use the shape itself for collisions? I'm just curious, because collisions used to work with the oldrim UUNP special that had no such extra shapes.

 

 

Link to comment
4 hours ago, t3h0th3r said:

 

I was a diehard UUNP fan for oldrim and actually also helped BTN and cell/ousnius to optimize it, but CBBE SSE uses a higher poly base than even UUNP, and also ousnius isn't willing to keep supporting UUNP for SSE, so i switched. And i kind of urge you all to do the same, since the body-divide was bad enough in oldrim :smile:

 

There's the The Book of UUNP (CBBE SE Conversion) that may alleviate the pain that comes from switching...

 

In your nifs, i noticed you added a separate collision shape, what made you do that? I mean, is there a technical reason not to use the shape itself for collisions? I'm just curious, because collisions used to work with the oldrim UUNP special that had no such extra shapes.

 

 

The poly count on this body is around 26,000 where UUNP comes in at 9,500. I'm mostly doing this as a self teaching tool using various 3d software. As far as the shapes i couldnt get the UUNP shapes to work right due to all were written for HDT-PE and they were not playing nice for SMP. I tried out CBBE SSE on my second gaming PC and it works great I might switch over sooner then I thought. 

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