zax Posted June 5, 2014 Posted June 5, 2014 What if HDT Physics was based on Keywords of worn armor? So full plate armors wouldnt bounce like leather ones, which in other hand would behave differently than clothes and naked body. For example, by default it could be: cuirass.HasKeyword(ArmorLight) ;half strength cuirass.HasKeyword(ArmorHeavy) ;physics disabled cuirass.HasKeyword(ArmorClothing) ;full effect We could have full HDT Physics functionality without modyfing specific armors skin modifiers. No bouncy plate armors, with full scaling functionality retained (RaceMenu, pregnancy mods). Thoughts? Btw, it couldnt be implemented in papyrus I suppose, so its suggestion to HDT author mainly.
blabba Posted June 5, 2014 Posted June 5, 2014 I dunno if you could actually do this at all? It'd be nice, but Havok World offsets are global and apply to all physics within the world. I dunno if you can create a 'instance' of them for just PC's specific armour. You can achieve something similar by just customizing and hooking up your armour with different xml's for the specific armour type. And as for the 'strength' value. That should really be controlled by the armour weighting anyway. But most people and armour modders are too lazy and just copy over full bounce. edit: Forgot to mention that Hydrogen gives away full source of the plugin, so others could in theory make changes if they so wish.
pclp2014 Posted June 5, 2014 Posted June 5, 2014 Theoretically, this is perhaps feasible. Only fixed idea. Create three different xml. no_bounce.xml half_bounce.xml heavy_bounce.xml If you want to solve with Papyrus: Armor addon has keywords, ArmorLight, ArmorHeavy or ArmorClothing. If you can read this keywords of NPC, it also determines possible the mesh_0.nif and mesh_1.nif a NiStringExtraData "HDT Havok Path" with path to the correct xml by papyrus entered.
zax Posted June 5, 2014 Author Posted June 5, 2014 a NiStringExtraData "HDT Havok Path" with path to the correct xml by papyrus entered. I dont think that you can modify NiStringExtraData from papyrus. But even then, everyone is using different XML. It would be extremely annoying to set it three times manually, while the mod could do it for yourself internally. And as for the 'strength' value. That should really be controlled by the armour weighting anyway. The whole purpose of this idea was to make it compatible with everything hdt by default. We cant expect modders to adjust weighting in breast area of all their armors and possible conversions. I thought that, instead of setting everything manually, we could use what we have already to differentiate armor class -> Keywords
blabba Posted June 5, 2014 Posted June 5, 2014 The whole purpose of this idea was to make it compatible with everything hdt by default. We cant expect modders to adjust weighting in breast area of all their armors and possible conversions. I thought that, instead of setting everything manually, we could use what we have already to differentiate armor class -> Keywords Quality armour conversion to me: Metallic parts of armour or restricted tight bound parts of armour do not receive TBBP weighting to simulate 'Realistic Jiggle' It's literally anywhere from 2 - 3 minute fix in the armour creation process, and now with OS, even end users can fix what armour modders were either uninformed or just too plain lazy to do. The reason why I do not think the script approach is doable is because on load of nif mesh, the xml is read and applied to the mesh. You would first need to scan xml, apply a change and then force game to re-load mesh. Dunno if SKSE can do that (it probably can, but is it worth the effort?) Another approach could be a skyproc patcher (the easier way to implement changes) When in reality, if you want simulated 'realistic jiggle' on armour. Like say you have a metal bikini that covers part of the breasts but the rest is uncontained and thus in theory should be free to move, the only way to get quick quality results is weighting. Hell, it's not like you even need to be exact about it or be precise like for body weighting, it's simply remove weights from appropriate area. You cannot replicate the same results of partial jiggle with solely editing the hdt xml. You'd be stuck with either absolutely no jiggle, or full jiggle. This is why I think correct weighting is simply superior.
Monsto Brukes Posted June 6, 2014 Posted June 6, 2014 So the idea here, as I see it, is to have not only outfits (armors, clothing, etc) with a descriptor (bounce kit) but to use keywords to change the behaviour per type of outfit. metal armor > leather armor > clothing > nude behaving with greater bounce per group/keyword. Conceptually, generally, this is I think a slick idea. The problem is that something (skse? the script engine?) would be required to load all the different bounce kits and switch between them dynamically when a keyword is used. I wouldn't count on this being possible.
pclp2014 Posted June 6, 2014 Posted June 6, 2014 If it is not possible to enter in the mesh NiStringExtraData with papyrus, then do you prepare the entry before - without papyrus. Suppose there are three XML: Create 3 meshes, such as "HDT Havok Object" or "Havoc Breast Physic." In each case for no-bounce, less-bounce, full-bounce. In these meshes simply enter the NiStringExtraData for the corresponding xml. Papyrus then check if NPC already equipped.if so, then remove it, check keyword, add new and equip. This is necessary because NPC LeveledItems (different outfits) use. Lol, that reminds me, it goes without Papyrus: http://www.loverslab.com/topic/29830-havok-breast-physic-xml-files-for-beginners/ This mod adds each NPC an Object NiStringExtraData. It is also used LeveledItems. I have only used 1 Object. But it is of course also possible to use 3 different items. If you want, look at the mod and edit it. Presumably, however, it is less work, the mod rewrite. This method in the mod works 100% for each standard NPC and all standard outfits. Even when Repacer mesh are installed. PS: It is not possible at this time, different bounce effects without various XML to realize. Also NiStringExtraData is necessary for this. The Class ScanAndAdd (DLL) checks NPC on used skeleton and NiStringExtraData "HDT Havok Path". If BBP / TBBP Skletet and no "HDT Havok Path" is the default.xml used. Otherwise, xml is used from "HDT Havok Path".
Monsto Brukes Posted June 6, 2014 Posted June 6, 2014 If it is not possible to enter in the mesh NiStringExtraData with papyrus, then do you prepare the entry before - without papyrus. Suppose there are three XML: Create 3 meshes, such as "HDT Havok Object" or "Havoc Breast Physic." In each case for no-bounce, less-bounce, full-bounce. In these meshes simply enter the NiStringExtraData for the corresponding xml. Papyrus then check if NPC already equipped.if so, then remove it, check keyword, add new and equip. This is necessary because NPC LeveledItems (different outfits) use. Lol, that reminds me, it goes without Papyrus: http://www.loverslab.com/topic/29830-havok-breast-physic-xml-files-for-beginners/ This mod adds each NPC an Object NiStringExtraData. It is also used LeveledItems. I have only used 1 Object. But it is of course also possible to use 3 different items. If you want, look at the mod and edit it. Presumably, however, it is less work, the mod rewrite. This method in the mod works 100% for each standard NPC and all standard outfits. Even when Repacer mesh are installed. PS: It is not possible at this time, different bounce effects without various XML to realize. Also NiStringExtraData is necessary for this. The Class ScanAndAdd (DLL) checks NPC on used skeleton and NiStringExtraData "HDT Havok Path". If BBP / TBBP Skletet and no "HDT Havok Path" is the default.xml used. Otherwise, xml is used from "HDT Havok Path". Hmm sounds messy, but it'd likely work without problems.
pclp2014 Posted June 6, 2014 Posted June 6, 2014 Which approach is messy? Papyrus or LeveledItem? For LeveledItem I can say it is very neat. Because it is the routines and logic of Skyrim used. Just a lot of work in CK. Example Bandit: Bandits use LeveledItems, depending on player level. First hide armor, leather armor then, then iron armor for example. This LeveledItem-Lists can be extended in CK. With the DLC, there are exactly 503 adjustments. This is done once. Changes can be later edited in the object-meshes and the xml's. Actually clean solution. Only damn much work in CK.
zax Posted June 6, 2014 Author Posted June 6, 2014 The problem is that something (skse? the script engine?) would be required to load all the different bounce kits and switch between them dynamically when a keyword is used. It wouldnt need to switch between them, it could just simply modify their magnitudes. For example it reads Default.xml and before it applies its physics values on load or on equip it checks for keyword, if theres say ArmorLight keyword it filters and multiplies all or some selected values from Default.xml by 0.5 before applying them. Possible multipliers: 1.0 / 0.8 / 0.5 / 0.0 for naked / cloth / light / heavy respectively.
pclp2014 Posted June 6, 2014 Posted June 6, 2014 The problem is that something (skse? the script engine?) would be required to load all the different bounce kits and switch between them dynamically when a keyword is used. It wouldnt need to switch between them, it could just simply modify their magnitudes. For example it reads Default.xml and before it applies its physics values on load or on equip it checks for keyword, if theres say ArmorLight keyword it filters and multiplies all or some selected values from Default.xml by 0.5 before applying them. Possible multipliers: 1.0 / 0.8 / 0.5 / 0.0 for naked / cloth / light / heavy respectively. The DLL will process only those Default.xml and optional XML, if available with NiStringExtraData "HDT Havok Path". If you do not want to reprogram the DLL, fails the idea at runtime to change the parameters of the XML. Either the DLL from scratch must be newly written, or overwriting the values in the correct address range in RAM. Assuming it works: Only one multiplier is also not enough. It needs to be changed, the gravity, the values for Z-axis. Depending on XML additionally, the values for the X-axis, Y-axis and restitution. These are the basic parameters that would need to be changed. Multiplier for gravity is still conceivable. For axes and Restution a disaster. I described two approaches. A quick and dirty with papyrus, and a clean solution with OutfitSets and LeveledItems with more initial effort. Both should work. Edit. I forgot the third solution: For different armor (light, heavy, etc.) are different thick bone weight painting
zax Posted June 6, 2014 Author Posted June 6, 2014 I forgot the third solution: For different armor (light, heavy, etc.) are different thick bone weight painting I know, and as blabba mentioned already it would be most reallistic approach, but different weighting means different scalling, it would kill compatibility with RaceMenu and boobs scalling mods. The other methods, described by yourself, could work in theory, but they are clunky. Adding 500+ entries to leveled lists? Swapping ArmorAddons or model path on equip? Well, it could work probably, but its not so elegant solution either. What I suggested wouldnt give perfect result (in comparison to modified weight painting), but it would make every single armor that has boobs nodes compatible by default. No NiStringExtraData modyfing, no manual editing, everything adjusted on fly by the mod that adds physics (makes sense, doesnt it?). So today I'm using "Remodeled Armor", tomorrow "a little sexy apparel replacer" - everything could work on Default.xml + build-in DLL multipliers by default. No additional work, its win=win imo.
pclp2014 Posted June 6, 2014 Posted June 6, 2014 But as accurately Skyrim is constructed. find it more "clunky" to constantly let a script run in a loop to check NPC. Especially since the script must function in the cell. The other solution only in the Encounterzone. The edit of 500 + Forms is not a hobby of mine. It was an answer to many problems with HDT PE.Problems associated with it since 07.2013. Not with HDT PE, but with understanding of how it works. Almost 20,000 downloads without complaint in 8 weeks. For clunky? And, although most do not download because they already have alternatives. If you do not want basicly new develop the DLL, there are only two alternatives The right way-because actually Realistic - different bone weights Can you offer as a preset for body slide. The other way is different XML for each effect. This XMl must be part of the NPC.So either armor-mesh or optional mesh. How to add the optional mesh, I have tried to describe. As a loop in Papyrus loop only until all NPC are processed in the cell (array) Or about the logic of the game. About outfit sets and Leveleditems. Other solutions do not come to mind. Sorry.
Recommended Posts
Archived
This topic is now archived and is closed to further replies.