Jump to content

[Unofficial] Hdt Physics Extension Tutorials - Under Construction


Recommended Posts

HDT_Guide_Page.png

 

PURPOSE:

 

This thread is geared towards providing guides/tutorials and support for beginners to the wonderful world of HDT physics modding.

 

This guide will be broken up into two posts, the first main post will be geared towards end users, contain FAQ, Resource links and support tips.

The second post will contain tutorials/guides and other miscellaneous resources and info for modders.

 

CREDITS:

 

HydrogensaysHDT - Creator of HDT plugins

 

Monsto Brukes - Creator/Moderator of HDT Subforums

 

Canderes - Contributor to HDT physics, click on name for his guides & resources

 

Yoo - Contributor to HDT physics modding, click on name for his latest project

 

Groovtama - Resident Skeleton Wizard and provider of HDT Rig Map Fix.

 

Enskyment - For Making a kick-ass guide for newbie end users!

 

Special thanks to: Vioxsis, b00marrows, jacques00, Daiemonic, Stevierage, clp2011 and others for contributing to the HDT physics scene :)

 

RESOURCES:

 

HDT Download 14-28

 

Havok Physics SDK Feature Guide

 

TERMINOLOGY:

Read this section if you are new or unfamiliar with some of the terms in the guides and/or feedback from other users

 

 

Stable - Usually refers to the last version of the HDT plugin, this is the SUGGESTED download for inexperienced beginners

 

Latest - Refers to latest version of HDT plugin, commonly found under HydrogensaysHDT's baidu link.

 

Just For Fun (JFF) - A tweak program made by HydrogensaysHDT for tweaking & creating Havok physics parameters, the tool reads packed and unpacked xml files. Also known as hdtHavokModifier.

 

HDT PE - Shorthand for HDT Physics Extension

 

Rig Map - The skeleton_female.hkx file, this file contains information for the Havok Animation System to match data from the animation file to the skeleton.

 

Collision - The effect of having an object (such as breasts) transform when being affected by another object (such as hands)

 

Bounce Kit - The hdtPhysicsExtensionsDefaultBBP.xml file. This can be changed via the JFF (Just For Fun) program to build a physics profile for a particular mesh, whether body, hair, cape, etc.

 

 

 

GUIDE 0: For Absolutely New to HDT:

Click the above link for an awesome guide made by Enskyment meant to quickly get you up to speed with all of this stuff!

 

GUIDE 1: Basic HDT Physics Installation (No Pics Yet):

 

 

This guide will teach new users how best to properly setup a basic HDT PE installation

 

Step 0: Prerequisites to installing:

              A.  You have a BBP/TBBP enabled body (More specifically, your body replacer has Breast Bone Weights, and/or Butt Bone Weights)

              B.  You have a proper skeleton file (More Specifically, your skeleton has NPC Breast bones and NPC Butt Bones) Recommended Skeleton

              C.   If not using  the aforementioned skeleton file, make sure you at least use the patched up Rig Map file from Groovtama, so you will not get weird Breast & Butt issues.

 

Step 1: Download the hdtPhysicsExtensions.dll & hdtPhysicsExtensionsDefaultBBP.xml files

NOTE: The latest versions of HDT PE have these additional files as well: hdtPhysicsExtensions.ini, hdtSkyrimMemPatch.dll, hdtSkyrimMemPatch.ini

 

Step 2: Manually Place the above mentioned files into your 'Data\SKSE\Plugins' Folder

NOTE: If using Mod Organizer, It is still preferred you put these files  MANUALLY  into your REAL Skyrim install folder 

 

(Optional) Step 3: Tweak your Skyrim.ini settings to optimize the Havok engine if you have a multi-core processor

 

(Optional) Step 4: If using older versions of HDT PE, tweak your enblocal.ini for better visual effect.

 

(Optional) Step 5: Tweak your hdtPhysicsExtensions.ini & hdtSkyrimMemPatch.ini

 

 

 

 

GUIDE 2: Adding Collision to your HDT PE Installation (Manually) (On Hold):

 

 

See Guide 0 link for now :)

 

 

 

FAQ:

 

Q: I heard deleting the skeleton_female.hkx (Rig Map) file helps fix things with HDT Physics?
A: NO, stop it. That piece of information is old and even then it was a horrible 'workaround'. DO NOT DELETE THIS FILE. Instead use the attached Groovtama's Rig Map file for maximum HDT Compatibility.

 

Q: I do use my own custom skeleton and use HDT Physics, anything further I need to do?
A: Yes, Download and install Groovtama's custom Rig Map, be warned though that if you are using a custom skeleton that has a new non-standard bone used for animation that is not already included in the XPMS skeleton, that this Rig Map will not contain the animation data for that new bone and you will need to add it yourself.

 

Permissions:
 
Feel free to copy/paste or link this guide
Feel free to translate the guide.
Feel free to make your own guide :), I've attached the images to help you! (They'll be updated for revisions/changes)

Groovtama HDT Rig Map.rar

Link to comment

JFF Guide 1: Getting Started:

 

 

This guide is geared towards beginners getting setup with the Just For Fun (JFF) Tool to tweak settings for their character

 

Step 1: Download the JFF tool from LL here, or download from Baidu.

 

(Optional) Step 2: If you cannot run JFF or missing .dll error comes up, make sure you have the latest version of Microsoft's C++ Libraries

 

Step 3: Load up JFF tool by double clicking hdtHavokModifier.exe

 

Step 4: Click the Load button and navigate to and select the .xml file you want to edit

             A. If editing bounce, typically the name of the file is hdtPhysicsExtensionsDefaultBBP.xml

             B. If editing collision, typically the name of the file is hdt.xml (for males it is called hdtm.xml)

             C. If using an 'All-in-One' then step A also loads up the collision as well as bounce data (only for females, see step B for males).

 

 

 

 

JFF Guide 2: Generic Properties:

 

 

The purpose of this guide is to get you familiar with the feilds within the first two boxes of JFF.

 

Step 1: Double click on which Object you would like to edit.

 

Step 2: The Name Field should match the skeleton.nif/skeleton_female.nif bone name word for word.

 

Step 3: The Motion Type field tells the program how to handle the object

             A. Motion Dynamic - The Object will be controlled exclusively by Havok Physics Data (Unknown Effect)

             B. Motion Sphere Inertia - The Object will adopt the physical properties of a sphere and be controlled by Havok Physics Data (Sphere Physics)

             C. Motion Box Inertia - The Object will adopt the physical properties of a box and be controlled by Havok Physics Data (Cuboid Physics)

             D. Motion Keyframed - The Object will follow normal animation path and should not make use of Physics Data

             E. Motion Fixed - The Object is fixed and does not move via animation or physics data

             F. Motion Thin Box Inertia - The Object adopts the physical properties of a 'Thin Box' (Unsure of what physics equations used)

             G. Motion Character - (Unknown Effect)

 

Step 4: Friction Constant to be used in friction equations depending on which Motion Type you chose. This field effects how much of a 'Drag' effect you see.

             A. If using Fixed or Keyframed this field only applies in collision equations and effects the property of the Physics enabled object (IE: The hand touching the breasts, the breasts will be affected by the hands friction)

 

Step 5: Restitution field refers to how Elastic or Inelastic collisions will be. Value of 1 is completely Elastic and Value of 0 is completely Inelastic.

             A. If using Fixed or Keyframed Objects, then during collision this field will only effect the other object visually that uses the Physics Data

 

 

 

JFF Guide 3: Advanced Properties:

 

 

This guide will focus on the details of the advanced property box in JFF and tell what they affect.

 

Step 1: Linear Damping refers to how much linear movement is 'lost' after the first 'bounce' or movement of the object. Value of 1 means virtually no consecutive movements. Value of 0 means no movement loss on consecutive 'bounces'. It is tied to the linear constraint limits.

 

Step 2: Angular Damping refers to how much rotational movement is 'lost' after the first 'bounce' or movement of the object. Value of 1 means virtually no consecutive movements. Value of 0 means no movement loss. It is tied to the angular constraint limits.

 

Step 3: Gravity Factor refers to how much the world's gravity amount affects the object. In HDT physics world, gravity is set to 9.8 exactly. Any values are possible.

 

Step 4: Time Factor refers to the ΔT of the physics engine's Impulse calculation. In layman's terms it can speed up or slowdown movement as well as collision effects (while also altering how accurate the collisions are).

 

 

 

JFF Guide 4: Mass Properties:

 

 

This guide will focus on the details of the Mass properties box in JFF and tell what they affect.

 

Step 1: Mass(kg) refers to the assigned mass of the virtual object. Changing this value will affect movement.

 

 

 

 

 

 

Reserved post for the modder's guides/resources

 

If your wondering why this thread is half-assed currently, it's because I'm still working on it Thank You very much.

 

Need to update links for all credited people first and work on how best to make end user install guides with gifs and all that, so please be patient and bear with me :)

 

Link to comment

when tweaking these HDT settings, what is the best way to test them. Loading up the game etc takes a while just to test a small change. Is there a recommended way to optimize the workflow?

 

Quitting to main menu and re-loading the save usually works for me.

Or moving into a new cell.

 

There's a few other ways I'll write about as well when I get the time.

 

Link to comment

Added to the News and Info post Tutorial section as an In-Depth Guide.

 

Thanks man. Nice job.

 

[edit] oh btw . . . that "Latest" download link will always be valid. I decided that changing the one post will be better for posterior because links to "Latest" will never b

Link to comment

OH BTW... might add this to the terms:

 

Bounce Kit: The hdtPhysicsExtensionsDefaultBBP.xml file. This can be changed via the JFF (Just For Fun) program to build a physics profile for a particular mesh, whether body, hair, cape, etc.

Link to comment

OH BTW... might add this to the terms:

 

Bounce Kit: The hdtPhysicsExtensionsDefaultBBP.xml file. This can be changed via the JFF (Just For Fun) program to build a physics profile for a particular mesh, whether body, hair, cape, etc.

 

Thanks, and added ;)

 

Let me know if any other terms/corrections or anything else needs to be added (aside from the obvious WIP guides/pics I'll need to add to after I finish my Unibody Project :) )

 

Link to comment

In JFF, does anyone know if there's a way to effect duration? Like when coming to a stop after movement and the parts jiggle.

Is there a way to effect how long after stopping that they'll continue moving before coming to a total stop?

 

hmm... not 100% sure but:

 

Linear dampening + angular dampening = how quickly the bouncing ends.... hard to explain...reduces the time it takes to stop bouncing

(lower=slower)

 

Time factor = the speed the selected rigdibodies works at 1=normal 0.1 = slow motion

Link to comment

 

In JFF, does anyone know if there's a way to effect duration? Like when coming to a stop after movement and the parts jiggle.

Is there a way to effect how long after stopping that they'll continue moving before coming to a total stop?

 

hmm... not 100% sure but:

 

Linear dampening + angular dampening = how quickly the bouncing ends.... hard to explain...reduces the time it takes to stop bouncing

(lower=slower)

 

Time factor = the speed the selected rigdibodies works at 1=normal 0.1 = slow motion

 

 

Thanks a lot. Its not perfect of course, but changes to those helped a load :)

 

Link to comment
  • 4 weeks later...
  • 2 weeks later...
  • 4 weeks later...
  • 3 weeks later...

What does "drag" mean in the final outcome? Does friction only affect collision or is that also modeling air friction? If it's the former and not the latter then I would expect a moving object (a flag, let's say) would not be distorted by movement, only whatever inertia the mass lets it have, but if friction creates a sense of drag then the moving flag would constantly flap even after inertia bled off. Or, am I off-base and friction only affects whether the flag would flow over a hand like water, or flow over a hand like a piece of cloth being lightly tugged by the friction of the object touching it?

 

I would sure like some more elaboration on "Changing [mass] will affect movement." In what way? What's the center of mass do, and the inertia tensor? What is the orientation of each axis when looking at an object, and if it can't be obvious (for instance, an earring) how can you determine that? How much mass is "lots" or is there some sort of way to tell how a change to mass will affect an object? Is mass all relative, or does a 10-ton dress basically not move when the wearer does?

Link to comment

What does "drag" mean in the final outcome? Does friction only affect collision or is that also modeling air friction? If it's the former and not the latter then I would expect a moving object (a flag, let's say) would not be distorted by movement, only whatever inertia the mass lets it have, but if friction creates a sense of drag then the moving flag would constantly flap even after inertia bled off. Or, am I off-base and friction only affects whether the flag would flow over a hand like water, or flow over a hand like a piece of cloth being lightly tugged by the friction of the object touching it?

 

I would sure like some more elaboration on "Changing [mass] will affect movement." In what way? What's the center of mass do, and the inertia tensor? What is the orientation of each axis when looking at an object, and if it can't be obvious (for instance, an earring) how can you determine that? How much mass is "lots" or is there some sort of way to tell how a change to mass will affect an object? Is mass all relative, or does a 10-ton dress basically not move when the wearer does?

 

In terms of HDT, friction only refers to how one collision object interacts with another.

The HDT physics world (in this case) doesn't have 'air'.

 

Changing mass will effect movement in that, virtually all physics equations require a mass.

Depending on the calculations, and the the constraint limits as well as other factors, the difference might be a lot or not.

It's required for this value to be greater than 0 if you want to see any movement though (otherwise you would the physics calculations and end up with a static object)

 

Inertia tensors do exactly as what they state, the y control the inertia amounts in the various directions, I feel like I posted a wiki link explaining how it works.

 

I found out that trying to figure out the orientation of each axis manually in JFF is impossible. As the xml's do not store bone pivots.

All I can say is, you'd need to load up the mesh in 3dsMax or Blender, select the bone, and see which way the pivot point is facing.

 

Mass is relative to all the other constraints and limits.

Link to comment

If I may, I would like one simple tutorial; what do each of the axes correspond to? I know it's Cartesian, but the alignment is not from the front it would seem. Or maybe it is, and I'm missing it. So I'm looking for a simple x=?, y=?, z=? explanation. In other words, at the level of "increase x for more front/back bounce", etc.

Link to comment

If I may, I would like one simple tutorial; what do each of the axes correspond to? I know it's Cartesian, but the alignment is not from the front it would seem. Or maybe it is, and I'm missing it. So I'm looking for a simple x=?, y=?, z=? explanation. In other words, at the level of "increase x for more front/back bounce", etc.

 

Which is virtually impossible for me to tell you because the axis can be pointing any which way depending on how the original author rotated and moved the pivot of the object.

 

Now usually, the pivot is facing the same way as the bone's in nifskope and dependant on the constraint type.Maybe Daiemonic or CLP2011 might know for the default BBP .xml on which way the pivots are pointing.

Link to comment

To clarify a bit, I'm just looking for bodies. Are you saying that, for example, the breast and prebreast bones can have pivots in multiple directions?

 

They can be any which way yes,

 

If I remember correctly though, the stuff for breasts was standard math coordinate system.

 

 

So, Z is up/down, X is right/left, and Y is in/out.

 

Though this could be different per file or skeleton.

To be 100% sure just look up the bone pivot axis on the skeletonfemale.nif and it'll follow those directions.

 

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