Jump to content

HDT Physics Extension Modding


Monsto Brukes

Recommended Posts

Stiff Spring constraint. Content tools cannot package/initialize motor data without calling havok functions :(. There are more things in the SDK than what the content tool can make, the only thing it is useful for is creating rigid bodies and preset constraints (ragdoll, hinge, limited hinge, spring, ballsocket), so things like generic/limited ragdoll/ballsocket/atoms or whatever else can't be made in HCT. Lots of parameters are missing from the sdk aren't available in HCT constraints.

Link to comment

Stiff Spring constraint. Content tools cannot package/initialize motor data without calling havok functions :(. There are more things in the SDK than what the content tool can make, the only thing it is useful for is creating rigid bodies and preset constraints (ragdoll, hinge, limited hinge, spring, ballsocket), so things like generic/limited ragdoll/ballsocket/atoms or whatever else can't be made in HCT. Lots of parameters are missing from the sdk aren't available in HCT constraints.

 

Oh ... I think you can try hkpRagdollConstraint.properties.motor

I export it successfully. : )

Only constraints support motors has this function.

Unfortuately it can't be modified directly in max : (

Link to comment

The only downside is that dampening cant be included on export, but it really isn't needed anyway. Spring constraints work fine as long as too much weight isn't on the skin modifier. Next test is something more friendly, Dovahdog?(I don't have an original name yet). I've never used pet followers before but I want this thing to carry lots of weight. I will make the bags swing and the helmet tilt back and fourth on the head like a silly hat. I spend way too much time in the adult section and it feels like I haven't released any actual mod before. I suck at texturing, but I know I'll manage to do something. I'd like to go and model a rottweiler, but I'll at least get this setup so that it uses that generic dog from the game for now. I'd also like to make these follow factions if possible (add a small banner/flag to the side of the bag showing which faction they ally to).

 

dogwip.jpg

 

I haven't tried rigging any weapons yet, but I am going to make a whip or a flail and see if they can pass off as something other than a mace or sword. It will probably look really nice to have them use dagger, mace or sword animations.

 

I also need to make a mirror script for the next video. Mirror tool breaks pivots and ik on bones and capsules, so everything needs to be manually rigged.

Link to comment

@canderes I've watched you work on 'various' things here and I have a couple questions.

 

What are you doing? (LOL!) Are you exploring the limitations of HDT physics? Are you "just trying to get it to work" in various contexts? Are you trying to refine parameters?

 

Since the demo garment works, have you attempted to put HDT together with a simple additional used in that context like, say, a cape? It seems Vioxsis was trying to add HDT to a circlet with dangly bits. (btw Vioxsis, how did that turn out?)

 

The foundation of my questions here are this: aside from making bouncy boobies where we know it works to a point, how well does HDT (even the older versions) work with practical application?

 

Thanks for putting up with me (=

Link to comment

These are the things I thought of. The most unstable being hair, but I'll figure out why it ctds eventually (probably something stupid I'm doing).

 

Boobs/Ass ( Most obvious, techincally it could work for pregnant bodies also because the amount of bounce varies as you setup the constraints, so not everything moves like jello. This works too if you want to rig animals to have more bodyparts)

 

Wings ( Haven't tried this yet.)

 

Cape ( Haven't tried this much. I had a low detail cape rigged with hinges, but it looks like garbage. I'll probably go back later and do this will ballsockets or ragdolls; latter is more stable)

 

Long hair (12+ rigid bodies, many ragdoll constraints, really unstable ctds. Likely that there are too many rigid bodies on a skeleton. Hinge constraints are really stable, but they don't look as realistic as ragdoll constraints)

 

Ripped clothing (Haven't tried it yet. I actually had an idea on how to make it look like characters are actually stripping; I'll get back to you on that if it works lol. Would probably help/encourage break undies a lot more)

 

Bags (I don't know why I thought of this. I wanted to have horses/mammoths/dogs/whatever be able to look like they can carry things. I just got the dog to load and it looks good. No actor backpacks yet, but I want to make it an object that increases stamina/carry weight.)

 

Static object details (Thinking of curtains, opening/closing drawers, dressers, beds with dynamic sheets, flags/banners. Haven't generated any gnd objects, but when something hits the ground the constraints do hold, so it would be possible to have things like books, pillows, boxes, whatever has a hinge pretty much.

 

Opening windows/doors (Could be open if there were a wheel/prism constraint to make them slide around.)

 

Cars(? We could do away with horses or extend the horse actor, remove the mesh, change the animations and have the wheel constraints for spinning tires. Still not sure if it would be able to detect collisions reliably with the ground for suspension. Nothing realistic obviously, but it could be there for screenshots or whatever. Damn stupid retarded idea if you ask me. seems like a ton of work.)

 

Dynamic helmets ( Nothing for this yet, but I suppose you could make armor with mouthpeices, breastplates, kneecaps, whatever slide and tilt independent of the actor. Alot of the armor that is supposed to be metallic flexes with the player/actor because it is skinned to the skeleton, it can be skinned to a set of bones that keep it rigid, but allow it to slide, tilt, or rotate. I'm sure there's a few armors here that could use it to reduce polygon stretching, and make it behave like a solid object.

 

That's about all I have right now. I haven't played with particles much, but I'm sure you could find a use for this with particles too.

 

The constraints work particularly well for organic objects. I was considering making baby/pet static objects that an actor can hold. Maybe like an object anim, but I don't see why we couldn't just use the weapon slots when they are free.

 

Secondary motion on clothing works well. Stuff like skirts and jackets are nice with this because they flap more with additional bones than just the ones on the vanilla skeleton.

 

Just trying to shy away from rigging boobs/ass/penis on everything. I know this is the adult section but there's a lot more you can do with this lol.

Link to comment

I normally just start making whatever I can think of, take it to the exporter then stop there, since it would take forever to get everything ingame; I'll upload the xmls for each thing from now on. As long as you have the preview tool you can see what the constraints and rigid bodies do. There's alot that this thing can do, but I just want to see what does/doesn't work. This is an amazing plugin, its just a shame that there isn't much support for it yet. I might put up short videos just showing the random crap I try to use this for.

 

It does transformations on the bones you specify. The animations can have bones missing/incomplete listing, so like you have the vanilla animations with no bones/keyframes for breasts, the plugin adds the bones, bypasses the skeleton.hkx and does transforms on the bones you list in the xmls. It doesn't look to the hkxs you generate for animation. It is completely separate from that, but you can use them to reduce the workload when you make an animation if you don't want to go and key every frame for breasts/butt/whatever else only needs jiggle/sliding/rotation movement.

Link to comment

9-28 is really clean. It works well with body mesh physics, appears to be bug free and has added a number of features. Well done! To be perfectly honest, I think it's complete enough to be called 1.0 and officially "released" as strictly BP (body physics). If you want to do some kind of separate release, i'll be happy to put it together for you.

 

So my question is this: what exactly does it take to make regular outfit use this plugin? Thalmor or Psiijic Robes are like open overcoats all the way to the floor and would be a nice example, I think.

 

Every skyrim pervert out there will download this because tits, that's why. I think however, that with a couple of practical examples and some documentation, mod authors would adapt the system and you'd see some really crazy uses in no time... the pack dog is a great example. (speaking of which i think you should call the dog "Vic" or "Blood" in reference to the movie "A Boy and his Dog", great movie, that one.)

 

I'll just reiterate my offer to be "editor in chief" of any written docs.

Link to comment

It doesn't take long to set it up actually. I am working on facial model for semen that hangs off the face. The texture I have from before is trash, but I'm happy with the model; it swings and rotates. I think to get it rigged up only took about 10-20 minutes. I have another video being uploaded 30~ minutes adding bones to the bottom of the thalmor robe. Its nothing crazy, but should be enough for any curious person to try it on their own armors. I'll try to have my semen thing up on here at the same time. I wasn't able to find any good texturing tutorials for jizz, so I looked at reference images for a while and I think I got a solid method for making them now maybe I'll add this as another tutorial later. Let me know what you guys think of the texture in the meantime:

 

jizztest.jpg

 

I don't know if its max or if my color depth is off so there's some noticeable banding  :(

 

It looks like this right now with my crappy stock texture:

 

semencirclet.jpg

 

I didn't think this was going to work because of the face morphs from the showracemenu sliders. It lined up pretty well, some floating, but I don't think that's much of a problem.

 

New video:

 

http://youtu.be/7pPgLmkVqyA

Link to comment

dude . . . I just had to lol and lol and lol. Can't say I was expecting a cumshot. Now I'm lolling again because I thought "how are you going to story that onto her face?"

 

Humor aside, the first texture is pretty good. from a design perspective, you're missing something... you've got the puddles, but it doesn't always puddle. It will land, then move/slide into puddles leaving a slug-like sheen but no puddle. So, in the first picture, you need some additional area, in spatter shapes, around the puddle, that is nothing but alpha (maybe 5% darker), slow-wave bumpmap and maxed specularity. Does that make sense?

 

in the 2nd pic i can see that it swings around, but it needs some vertical elasticity as well. a fast vertical drop but a slow return ascent.

 

And now I'm lolling again. Let me know when you have it complete . . . I just HAVE to show the wife.

 

I'm not much with max... i've used it some, and was ok about a year ago. Do you think I would be able to figure out a step by step from the Thalmor Robe video? Knowing how to add bones and set up their weight would be great.

Link to comment

This post mentions "choosing among flavors" which got me thinking about options and addons.

 

So I was curious: Since this is an skse plugin, would it be possible to have a separate skse script file, that is included by the HDT plugin, with properties that are read at game time?

 

It's my understanding that the physics objects in the model are fully built and setup in max, and that you can't change those parameters. But would it be possible to have a separate editable script that doesn't try to change the those values, but only runs a multiplier on them before sending the values to the game? This way, the plugin could set everything to some base number ("1") and the separate script would modify it.

 

 

As far as 'addons' are concerned, something like the thalmor robes and hair would benefit from wind, but there's obviously no wind in the game.

Could wind be simulated by having certain parameters 'magentized' towards/away-from fixed elements?

 

for example, the thalmor robe. Could bones in the robe be repelled from the knee and ankle bones? a long range but weak effect would kind of keep them bouncing around while you moved. It would add to the effect if the bones had a very short but strong radius of repulsion from each other. Additionally, and of course more work, a bit of scripting could vary the repulsion to give more of a buffeting effect. 

 

Another idea is a bit harder to explain: Could the math be changed so that neutral positioin is affected by some point in game space? It seems that everything is somehow aware of world origin, so continually attempting to move away from world origin might appear to be a stiff breeze. (It's also a pretty good analogy of wind in the first place.) Even if a marker had to be placed somewhere in the world in order to have an identifiable point, that's a fairly simple thing to do.

 

Am I jumping the gun here? Is there more to be done with the base plugin? Or are you tired of working on this? I think this release is very well done and could feasbily be called v1.0.

 

Last question: would you consider releasing the plugin source?

Link to comment

 

for example, the thalmor robe. Could bones in the robe be repelled from the knee and ankle bones? a long range but weak effect would kind of keep them bouncing around while you moved. It would add to the effect if the bones had a very short but strong radius of repulsion from each other. Additionally, and of course more work, a bit of scripting could vary the repulsion to give more of a buffeting effect.

 

 

If the mesh of the body comes into contact with the rigid body it should repel them, at least that is what happened in the first few tests i did.

 

The rest of your questions would need to be answered by hydrogen

Link to comment

 

I've had a look at the break undies framework and think HDT can make things a little more realistic. If you add a chain of bones and make all the rigid bodies on the chain debris instead of having one being keyframe quality to fix an object to an actor that piece will actually fall due to gravity. It's nothing fancy, and clips through the ground but technically we could use it to simulate other things like bullet shells, sparks, or broken fragments. It isn't something I have experimented with too much, but it works. There are fixed constraints which I have only used once or twice, but they are breakable. I still can't say whether they can be broken in skyrim but it is just  a heads up. I'd imagine it was the way they implemented breaking armor in soul calibur, but who knows if that is due to constraints or havok destruction.

 

I compiled the Havok version with latest Havok SDK(2013.1.0-r1).

I'm not sure if you can access Baidu disk....

http://pan.baidu.com/share/link?shareid=3435982268&uk=2619899231#dir/path=%2FhdtPhysicsExtensions

 

 

I just noticed while digging around in the .xml file. . . 

 

Does the plugin not affect the bones added by tbbp? You've got PreBreast and Breast but not Breast01.

Link to comment

 

 

I've had a look at the break undies framework and think HDT can make things a little more realistic. If you add a chain of bones and make all the rigid bodies on the chain debris instead of having one being keyframe quality to fix an object to an actor that piece will actually fall due to gravity. It's nothing fancy, and clips through the ground but technically we could use it to simulate other things like bullet shells, sparks, or broken fragments. It isn't something I have experimented with too much, but it works. There are fixed constraints which I have only used once or twice, but they are breakable. I still can't say whether they can be broken in skyrim but it is just  a heads up. I'd imagine it was the way they implemented breaking armor in soul calibur, but who knows if that is due to constraints or havok destruction.

 

I compiled the Havok version with latest Havok SDK(2013.1.0-r1).

I'm not sure if you can access Baidu disk....

http://pan.baidu.com/share/link?shareid=3435982268&uk=2619899231#dir/path=%2FhdtPhysicsExtensions

 

 

I just noticed while digging around in the .xml file. . . 

 

Does the plugin not affect the bones added by tbbp? You've got PreBreast and Breast but not Breast01.

 

 

yeah, breast01 are not effected because I don't know how they move and have no idea about how to create physics data

 

Link to comment

The hierarchy that has breast01 is damaged anyway. Those skeletons have the wrong things parented and it causes an uneven bounce as I've seen. The only reason they seem to work correctly when you use keyframe animation vs hdt is because the keyframe animation is not affected by the hierarchy, and the keyframe method puts all transforms in world space in a list instead of referencing movement of one bone relative to another bone. It's not worth fixing imo because the breast and breast01 bones overlap and would probably cause self collisions. It needs to be rebuilt to function correctly if you want to add 2 bones worth of jiggling.

Link to comment

The hierarchy that has breast01 is damaged anyway. Those skeletons have the wrong things parented and it causes an uneven bounce as I've seen. The only reason they seem to work correctly when you use keyframe animation vs hdt is because the keyframe animation is not affected by the hierarchy, and the keyframe method puts all transforms in world space in a list instead of referencing movement of one bone relative to another bone. It's not worth fixing imo because the breast and breast01 bones overlap and would probably cause self collisions. It needs to be rebuilt to function correctly if you want to add 2 bones worth of jiggling.

 

I'm no expert . . . but. . . (=

 

about a year ago i was trying to mess with tbbp and I could NEVER get it to load right in max in any way. I mean cherry's was a little broken in that there were warnings on import, but tbbp was completely unusable. It doesn't surprise me that, these days, it is unusable. 

 

Anyway, what I was thinking about was an animation set, but alas I am a moron and cannot make it happen.

 

I thought that a set of animations that only created 1-frame "knocks" in the appropriate direction would be perfect for HDT physics. So, for example, as the characters foot hits the ground, create 1 frame upwards (then in a few frames perhaps 1 frame downwards) of center in the breast bones. With HDT physics, I think this would create an effect that would be more than satisfactory. 

 

Currently, HDT effects rely on the animation, not the physics. In other words, animation effects tend to override physics movement. With the above animation scenario, any users HDT Parameters would be useful. It would be similar to a "hydrostatic-shock" effect running thru the body.

 

It would rely on the physics, not the animation, to create the visual effect.

Link to comment
 

Many people said they get crash by new version, but I didn't. I have no idea about what happen.

Source codes now uploaded.

Bad hook in NiOverride, I pushed a local stack register instead of a relative address from the stack pointer. I had to get parameters from the stack since the function I wanted to perform didn't have the variables I needed. Fixed it in RaceMenu 2.1.5.

 

 

Regarding head part manipulation (hair)

http://www.loverslab.com/topic/19451-hdt-support-unofficial-v9-28-body-physics-simple-install-works-in-crafting-menus-wip-but-best-yet/page-22?do=findComment&comment=530840

 

What you had was close, but that's mostly morph related and would only work for the player. I posted some more feasible hook areas.

Link to comment

 

 

Many people said they get crash by new version, but I didn't. I have no idea about what happen.

Source codes now uploaded.

Bad hook in NiOverride, I pushed a local stack register instead of a relative address from the stack pointer. I had to get parameters from the stack since the function I wanted to perform didn't have the variables I needed. Fixed it in RaceMenu 2.1.5.

 

 

Regarding head part manipulation (hair)

http://www.loverslab.com/topic/19451-hdt-support-unofficial-v9-28-body-physics-simple-install-works-in-crafting-menus-wip-but-best-yet/page-22?do=findComment&comment=530840

 

What you had was close, but that's mostly morph related and would only work for the player. I posted some more feasible hook areas.

 

 

Thank you very much for your suggestion. : )

I need to hook at where the headmesh skinning. Accroding to your advise, I found

void TESNPC::00569990(Actor* actor, BSFaceGenNiNode** pHead), where the head attached to the body

But It's not enough because it won't be called while showracemenu. : (

 

Oh! Maybe UINT BSFaceGenNiNode::005A83C0(NiNode* skeleton, NiGeometry* headpart, UINT unk).

 

btw, I think BSFaceGenModel should look like this:


class BSFaceGenModel : public NiRefObject
{
public:
	struct Data08
	{
		UInt32 unk00; // 00
		NiNode* meshRoot;
		NiGeometry* triShape;
		UInt32 unk0C; // 0C
		BSFaceGenMorphData * unk10; // 10
	};
	Data08 * unk08; // 08
	UInt32 unk0C; // 0C
};

and 005A60D0 fill the unk08->meshRoot and unk08->triShape.

It doesn't help for my plugin but at least it's a good signal to findout what address I really want. :)

Link to comment

Oh! Maybe UINT BSFaceGenNiNode::005A83C0(NiNode* skeleton, NiGeometry* headpart, UINT unk).

That could work, the call tree looks promising.

 

I haven't put a BP there to see but assuming the virtual function on the BSFaceGenNiNode is called when the head is created rather than only changed it should work. 005A83C0 stems back to both 005A88A0 (virtual member fn to BSFaceGenNiNode) and ChangeActorHeadPart (005AA4E0). The change head part function is called every time you remove or add a head part via the RaceMenu (or by SKSE means), it also makes calls to the morphing functions to apply the current morphs.

 

Edit: This would still only be player only though, NPCs have their whole head loaded, it's not necessary to change individual parts as these functions are for. This is why I suggested near the loading of the whole head. You would need to hook both places, for changing of parts, and for loading of the head. Just changing parts hook should be enough for the player since the head is generated.

Link to comment

 

 

 

I really hate to feature-creep if you're concentrating on other areas (like hair)

but would it be possible to make the variables in the xml file available to the skyrim console? Nevermind saving or writing it out, it would just be convenient. 

 

If it's a pain in the neck then forget I asked.

Link to comment
  • 4 weeks later...

Haven't had any updates in a while. This one covers how to setup a rig for hair. It uses HCT to add capsules for HDTPhysicsExtensions.

 

 

Gonna move onto the cloak next. I have to reweight the cloak (Romeozero) in the video (near the end) because the top is stuck to the neck and I want it to be more floaty. Then after that I want to find a use for prism/sliding constraints.

 

Minimum skeleton was made in Max2011 x64.

maxscripts1142013andskeleton.zip

Link to comment

Haven't had any updates in a while. This one covers how to setup a rig for hair. It uses HCT to add capsules for HDTPhysicsExtensions.

 

 

Gonna move onto the cloak next. I have to reweight the cloak (Romeozero) in the video (near the end) because the top is stuck to the neck and I want it to be more floaty. Then after that I want to find a use for prism/sliding constraints.

 

Minimum skeleton was made in Max2011 x64.

 

 

Man this is exactly what i'm looking for...

Porting some hairs will really need some effort from a lot o people.

 

Tutorials like that can speed up the process  ;)

 

Thanks a lot.

Link to comment

Archived

This topic is now archived and is closed to further replies.

  • 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