Jump to content

A Guide to HDT-SMP Users/Modders


treota

Recommended Posts

Hi guys.

 

I have been converting a lot of armors to CBBE SE and 3BBB lately. My latest is a Nun/Sister outfit and I've been trying to get the old HDT working again on the veil/habit. I've got it working, but getting strange results I don't understand. Conversions I can do no probs, but I'm only a newbie with SSE SMP HDT.

 

The veil/habit is somehow splitting into two when moving as you can see in the picture.

 

 

 

 

 

Does anyone know why this is happening? Obviously the mesh is marked as double sided texture-wise, but it's still a single mesh I believe.

 

I would really love some help with this. I don't know where else to ask.

 

Appreciated,

 

S.

 

EDIT: I found the issue. The veil had Hair AND Circlet marked in the esp. This was causing the double mesh.

Link to comment
Share on other sites

  • 1 month later...
  • Replies 234
  • Created
  • Last Reply

Top Posters In This Topic

I'm having a weird issue with SMP Constraints and initial positions of bones on a piece of armor.

 

Logically, I would have thought that the initial position (i.e. the position at which the constraint considers the distance to be zero) would be dictated by the bones' relative position in the NIF file. However that's not the case. It looks like the initial position of the bones is their position when the armor is equiped by an actor. Is there a way to fix this?

 

Kind of hard to explain this. The armor I am working on is the HDT-enabled leg chain from ZAP 8.0, which consists of 2 shackles around the left and right ankle, connected by a chain. My SMP conversion has the chain split in 2 parts: one on the left ankle, one on the right, with each link connected by an SMP constraint. The basic physics of this work fine with SMP.

 

When I load my game with this chain equiped, the 2 ends of the chain are connected and line up properly, presumably because during loading the game, my avatar is in T-Pose, which matches the leg positions in the chain's NIF exactly. However if I equip the chain while playing, the ends of the chain do not line up, though they are still linked by SMP physics. This is because when equiping the item, my legs are not in T-Pose position, causing an offset in what SMP considers to be the right relative position of the 2 chain halves.

 

This seems like a bug in SMP to me, I would think the initial position should be whatever the NIF dictates, not whatever place my avatar's limbs happen to be in when I equip the armor. Is tehre a way around this?

Link to comment
Share on other sites

@Musjes

Are you willing to send me what you have so far? I can try having a play with it.

If you believe that this is a bug with the SMP engine then the best thing to do is raise an issue on the github repository (assuming you are using the SSE version), I don't really know how much time the author has to look into bugs though.

 

https://github.com/HydrogensaysHDT/hdt-skyrimse-mods/issues

https://github.com/aers/hdtSMP64 (author has issues disabled :shrug:)

https://www.nexusmods.com/skyrimspecialedition/mods/30872?tab=bugs (nexus bug tracker)

Edited by treota
Link to comment
Share on other sites

@Musjes

 

Are you willing to send me what you have so far? I can try having a play with it.

 

If you believe that this is a bug with the SMP engine then the best thing to do is raise an issue on the github repository (assuming you are using the SSE version), I don't really know how much time the author has to look into bugs though.

 

I can send you the files but this forum won't let me attach Nif or Zip files.

 

It might not actually be a bug, but more of a limitation of SMP and the way it relies on parent / child hierarchies.

Link to comment
Share on other sites

  • 2 weeks later...

Sometimes I feel like I got HDT working (as it works fine on several armors I've made) but then I'm back to square one with new HDT mesh. I made a dress that has a skirt that goes all the way to the bottom of the ground. No matter what settings I choose in my XML the dress never collides with the virtual body that includes low poly thighs, legs, and feet. However If my character crouches the dress perfectly collides with the virtual ground, also doing any movement or fancy spinning the dress physics look great, it just collision with the lower body that isn't working. Is it important what name I choose as the tag in my XML for the virtual body collision? I just have it as a generic tag of <tag>body</tag> and the name of the mesh in my nif file is called name="VirtualCBBE" so I would assume when my character crouches the dress will deform to the shape of the legs but instead the dress mesh just goes straight through but it collides with the ground as expected. The dress meshes do not have any '<no-collide-with-tag>' for the body so technically it should be colliding with the legs just like the ground right? I have the XML associated in the nif too and since ground collision works I know its 'working' but some reason the body collision just seems to be ignored every time.

 

I don't need to be using the <can-collide-with-tag> for this to work right? Meshes by default should collide as long as they don't have the <no-collide-with-tag> associated with eachother?

 

EDIT: I should make note the hdtSMP64.log shows no errors for my XML or HDT setup, I always check to resolve any errors for my HDT meshes if the log show anything so I know all the bones are present and working for my HDT.

Link to comment
Share on other sites

From what I recall (it has been a long time since I did any work with SMP), if you have a collision object set (per-triangle or per-vertex) then you should be good to go.

<per-triangle-shape name="VirtualCBBE">
...
</per-triangle-shape>

One of these days I'll dig into the source code now that it is available and find out how the xml is actually parsed, I do recall having issues sometimes getting body collisions working.

 

I guess the nuclear option would be to rename your proxy collision mesh to something else to see if there is some sort of naming conflict happening, I would also usually apply some debug texture to the proxy objects to make sure they were not flying off in space somewhere unexpected.

Edited by treota
Link to comment
Share on other sites

Thanks for reply. Yeah I definitely have it set as per-triangle-shape. Think I've tried a couple different names but I'll try one more.

 

If that doesn't work I'll try adding a texture shader to it like you said and seeing if it actually where it belongs (I am assuming it would be considering all my other custom meshes are and I check the nif data that transforms in the skin are not anywhere else but 0,0,0).

Link to comment
Share on other sites

OK so here is a better visual for you to see I have the collision mesh in the nif and XML are the exact same:

tTDReqS.jpg

 

Then the dress itself:

2yOVnkW.jpg

 

Top left is my custom HDT bones and the dress, I feel nothing with the bones or paint weight would be an issue there, its far away enough from the legs I don't see it having issue when it does need to collide, everything is painted where outfit studio does not give any errors about weighting missing or anything. Top middle image is expected, just character standing in place. Top right is the misery I currently find myself in. Bottom left is showing the dress does flatten like a pancake when it collides with the ground. And lastly on the bottom right is the collision legs with a texture so it is indeed in the right location, covers the cbbe legs, and deforms when needed.

 

I've tried just about everything from double checking the Skin Transform is not off center, all the mesh data is similar to other HDT modders meshes (vertex | UV's | Normals | Tangenets | Skinned) and (flags is 2, 3, 4, and 19 (no anim sync (S)). Tried my XMl with and without weight threshold too (looks worse without the weights)

Link to comment
Share on other sites

Hmm without having the actual files to do some debugging with I am not sure I can help any further, everything looks fine.

 

My only suggestions would be to use ridiculous values in your xml to try and prove that the collisions are working at all, like using a massive margin, you could also try removing unused strings on your mesh, that has sometimes caused issues for me `Nifskope spells > optimize > remove unused strings`

 

If you send me a PM with your xml config I can try looking for issues with it.

Edited by treota
Link to comment
Share on other sites

Yeah I once had bumped the margin as high as 20 and it just makes the dress spaz out more but legs seemed to still pass through. I removed bogus nodes and removed unused strings when I first made the nif as well to keep things clean so don't think that unfortunately was ever an issue.

 

I sent you the files to take as look, thanks again for looking into it.

 

I'm really hoping its just something I set wrong in the nif or the XML, I'd love to see the legs finally collide with the dress so it looks good in game. Who knew a simple dress with HDT could be such a pain, I've spent more hours this week trying to debug the HDT issue than it took me to model, texture, and rig it lol. I've never run across an issue in all my years of modding Fallout 4, Skyrim, and other games that I couldn't eventually solve so I don't want to have to admit defeat now.

 

Edit:

So I've been messing around with the XML and nif and still no concrete answers. I've played around with the margin/penetration/weight threshold values more, changed the tag names to different things, reordered the collision bstrishape nodes in the nif file to be a higher number than my HDT meshes, changed the partition number I had that was 46 for all the meshes to generic 32 body, moved in the XML my leg collision section to different areas and still no major difference. By adjusting the penetration, weight threshold, and margin the feet seem to now make the bottom of the dress move. However the legs and knee area still will clip though without a care and crouching they pass through still.

 

Edit 2:

In continued process of elimination I even went so far as to create my own custom ground collision just to see if it was something wrong with the custom collision meshes I was making from scratch (virtual ground I was using before was a shared resourced not made by me, thought there might be some special nif setting it had compared to the ones I made). I made a hexagon virtual ground and even named it 'ground_v2' just so it was as different as possible to the original one. It worked perfect in-game as expected so I am not sure why my legs virtual collision still wouldn't be affected by the dress the same way. So far the only conclusions I currently have is:
- Something with non-static collision meshes isn't working
- I'm missing some super obscure XML combination of values
- My dress bones are too close to legs so collision will never properly work (I highly doubt this could be it though, the dress is nearly touching the virtual ground and it interacts fine so why would it be any different with the legs being somewhat close?)
- Possibly some form of constraint is needed for the legs and front of the dress so the dress bones always stay in front of the legs? (even though I've seen no such evidence of this being needed in other XML files from other HDT armor authors)

- Something inherently wrong with my HDT dress/bones (but this also begs the question if it works well with the virtual ground and bends fine why couldn't it work with virtual legs the same way?)

 

vd5OBoj.png

 

Edit 3: I believe I have finally found the absolute solution. I do want to make sure I get my HDT 100% good in game first for a result I'd accept as quality before I post the answer and realize its not actually a real fix and I feel really confident I found the answer at last.

Link to comment
Share on other sites

  • Recently Browsing   1 member


×
×
  • Create New...