canderes Posted April 22, 2013 Posted April 22, 2013 After playing with havok for hours and hours I finally understand why some bodies have serious or minor crush issues. When a custom ragdoll and skeleton are created using the havok content tools there are ragdoll mappings that must be assigned before export. Since we aren't able to recreate everything for a particular skeleton (not able to recreate any havok destruction data) the new bones must be pasted to the vanilla skeleton, unless you plan on using your own skeleton.hkx out of the exporter. So what is going on? Those new bones don't exist in the unused bone list and are being pulled down by gravity. If you go the route of pasting bone data from your custom skeleton to the vanilla skeleton, the skeleton mapper must be updated to list bones that the ragdoll capsules are not hooked to. If you have a skeleton like the one created by xp32 or dragonfly you can convert it over to xml form and look for the unmapped bones entry: http://skyrim.nexusmods.com/mods/1797 Use hkxcmd.exe convert skeleton_female.hkx skeleton_female.xml (or whatever skeleton you want to convert to xml) I am using Dragonfly's skeleton for this. Or if your lazy you can just open the skeleton_female.hkx in wordpad\notepad. Try it this way first. You still need to use hkxcmd.exe to convert your file though. hkxcmd.exe convert skeleton_female.hkx will generate a file called skeleton_female-out.hkx. Just rename your file when you finish to test it for the game. </hkobject> </hkparam> <hkparam name="chainMappings" numelements="0" /> <hkparam name="unmappedBones" numelements="81">0 1 2 3 5 12 13 14 15 16 17 18 19 20 21 22 23 27 30 33 34 37 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98</hkparam> <hkparam name="extractedMotionMapping">(0.000000 0.000000 0.000000)(0.000000 0.000000 0.000000 1.000000)(1.000000 1.000000 1.000000)</hkparam> <hkparam name="keepUnmappedLocal">true</hkparam> <hkparam name="mappingType">HK_RAGDOLL_MAPPING</hkparam> </hkobject> The vanilla skeleton map only lists bones starting from NPC Root (bone number 0) to Camera Control (bone number 98). Luckily the bone numbers can be added to the list. Every bone past 98 must be in the list if the ragdoll is to react correctly on death, so to prevent the current xp32 skeleton from having any crush or bone misplacement issues all 200 some bones after 98 must be added to the list. I was able to stop the butt and breast sagging problems by listing up to 108. Also update the numelements=81 to include your new bones so mine would be 91 since I added 10 bones. </hkobject> </hkparam> <hkparam name="chainMappings" numelements="0" /> <hkparam name="unmappedBones" numelements="91">0 1 2 3 5 12 13 14 15 16 17 18 19 20 21 22 23 27 30 33 34 37 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108</hkparam> <hkparam name="extractedMotionMapping">(0.000000 0.000000 0.000000)(0.000000 0.000000 0.000000 1.000000)(1.000000 1.000000 1.000000)</hkparam> <hkparam name="keepUnmappedLocal">true</hkparam> <hkparam name="mappingType">HK_RAGDOLL_MAPPING</hkparam> </hkobject> This keeps you from having to go edit the skeleton.nif and locks all the bones from translating or rotating out of place keeping the skeleton hierarchy intact. You can look at the bone order of the vanilla skeleton and the one I am using to understand what is going on: SaidenStorms rig file (Full list for vanilla skeleton) NPC Root [Root] x_NPC LookNode [Look] x_NPC Translate [Pos ] x_NPC Rotate [Rot ] NPC COM [COM ] NPC Pelvis [Pelv] NPC L Thigh [LThg] NPC L Calf [LClf] NPC L Foot [Lft ] NPC R Thigh [RThg] NPC R Calf [RClf] NPC R Foot [Rft ] SkirtRBone01 SkirtRBone02 SkirtRBone03 SkirtLBone01 SkirtLBone02 SkirtLBone03 SkirtBBone01 SkirtBBone02 SkirtBBone03 SkirtFBone01 SkirtFBone02 SkirtFBone03 NPC Spine [Spn0] NPC Spine1 [Spn1] NPC Spine2 [Spn2] NPC L Clavicle [LClv] NPC L UpperArm [LUar] NPC L Forearm [LLar] NPC R Clavicle [RClv] NPC R UpperArm [RUar] NPC R Forearm [RLar] AnimObjectA AnimObjectB NPC Neck [Neck] NPC Head [Head] NPCEyeBone NPC L Hand [LHnd] NPC R Hand [RHnd] AnimObjectL AnimObjectR SHIELD WEAPON NPC L Pauldron NPC R Pauldron MagicEffectsNode NPC L MagicNode [LMag] NPC R MagicNode [RMag] NPC Head MagicNode [Hmag] NPC L Toe0 [LToe] NPC R Toe0 [RToe] NPC L ForearmTwist1 [LLt1] NPC L ForearmTwist2 [LLt2] NPC L UpperarmTwist1 [LUt1] NPC L UpperarmTwist2 [LUt2] NPC R ForearmTwist1 [RLt1] NPC R ForearmTwist2 [RLt2] NPC R UpperarmTwist1 [RUt1] NPC R UpperarmTwist2 [RUt2] QUIVER WeaponAxe WeaponBack WeaponBow WeaponDagger WeaponMace WeaponSword NPC L Finger00 [LF00] NPC L Finger01 [LF01] NPC L Finger02 [LF02] NPC L Finger10 [LF10] NPC L Finger11 [LF11] NPC L Finger12 [LF12] NPC L Finger20 [LF20] NPC L Finger21 [LF21] NPC L Finger22 [LF22] NPC L Finger30 [LF30] NPC L Finger31 [LF31] NPC L Finger32 [LF32] NPC L Finger40 [LF40] NPC L Finger41 [LF41] NPC L Finger42 [LF42] NPC R Finger00 [RF00] NPC R Finger01 [RF01] NPC R Finger02 [RF02] NPC R Finger10 [RF10] NPC R Finger11 [RF11] NPC R Finger12 [RF12] NPC R Finger20 [RF20] NPC R Finger21 [RF21] NPC R Finger22 [RF22] NPC R Finger30 [RF30] NPC R Finger31 [RF31] NPC R Finger32 [RF32] NPC R Finger40 [RF40] NPC R Finger41 [RF41] NPC R Finger42 [RF42] Camera3rd [Cam3] Camera Control My rig file (Incomplete Dragonfly skeleton listing) NPC Root [Root] x_NPC LookNode [Look] x_NPC Translate [Pos ] x_NPC Rotate [Rot ] NPC COM [COM ] NPC Pelvis [Pelv] NPC L Thigh [LThg] NPC L Calf [LClf] NPC L Foot [Lft ] NPC R Thigh [RThg] NPC R Calf [RClf] NPC R Foot [Rft ] SkirtRBone01 SkirtRBone02 SkirtRBone03 SkirtLBone01 SkirtLBone02 SkirtLBone03 SkirtBBone01 SkirtBBone02 SkirtBBone03 SkirtFBone01 SkirtFBone02 SkirtFBone03 NPC Spine [Spn0] NPC Spine1 [Spn1] NPC Spine2 [Spn2] NPC L Clavicle [LClv] NPC L UpperArm [LUar] NPC L Forearm [LLar] NPC R Clavicle [RClv] NPC R UpperArm [RUar] NPC R Forearm [RLar] AnimObjectA AnimObjectB NPC Neck [Neck] NPC Head [Head] NPCEyeBone NPC L Hand [LHnd] NPC R Hand [RHnd] AnimObjectL AnimObjectR SHIELD WEAPON NPC L Pauldron NPC R Pauldron MagicEffectsNode NPC L MagicNode [LMag] NPC R MagicNode [RMag] NPC Head MagicNode [Hmag] NPC L Toe0 [LToe] NPC R Toe0 [RToe] NPC L ForearmTwist1 [LLt1] NPC L ForearmTwist2 [LLt2] NPC L UpperarmTwist1 [LUt1] NPC L UpperarmTwist2 [LUt2] NPC R ForearmTwist1 [RLt1] NPC R ForearmTwist2 [RLt2] NPC R UpperarmTwist1 [RUt1] NPC R UpperarmTwist2 [RUt2] QUIVER WeaponAxe WeaponBack WeaponBow WeaponDagger WeaponMace WeaponSword NPC L Finger00 [LF00] NPC L Finger01 [LF01] NPC L Finger02 [LF02] NPC L Finger10 [LF10] NPC L Finger11 [LF11] NPC L Finger12 [LF12] NPC L Finger20 [LF20] NPC L Finger21 [LF21] NPC L Finger22 [LF22] NPC L Finger30 [LF30] NPC L Finger31 [LF31] NPC L Finger32 [LF32] NPC L Finger40 [LF40] NPC L Finger41 [LF41] NPC L Finger42 [LF42] NPC R Finger00 [RF00] NPC R Finger01 [RF01] NPC R Finger02 [RF02] NPC R Finger10 [RF10] NPC R Finger11 [RF11] NPC R Finger12 [RF12] NPC R Finger20 [RF20] NPC R Finger21 [RF21] NPC R Finger22 [RF22] NPC R Finger30 [RF30] NPC R Finger31 [RF31] NPC R Finger32 [RF32] NPC R Finger40 [RF40] NPC R Finger41 [RF41] NPC R Finger42 [RF42] Camera3rd [Cam3] Camera Control NPC L PreBreast NPC L Breast NPC R PreBreast NPC R Breast NPC L PreButt NPC R PreButt NPC L Butt NPC R Butt NPC L Breast01 NPC R Breast01 NPC Hair01 NPC BHair01 NPC BHair02 NPC BHair03 NPC BHair04 NPC BHair05 NPC BHair06 NPC BHair07 NPC BHair08 NPC BHair09 NPC BHair10 NPC BHair11 NPC BHair12 NPC BHair13 NPC BHair14 NPC BHair15 NPC BHair16 NPC BLHair01 NPC BLHair02 NPC BLHair03 NPC BLHair04 NPC BLHair05 NPC BLHair06 NPC BLHair07 NPC BLHair08 NPC BLHair09 NPC BLHair10 NPC BLHair11 NPC BLHair12 NPC BLHair13 NPC BLHair14 NPC BLHair15 ... This one is the one I use to export the animations. It is unfinished because there around 300 bones on the xp32 skeleton and I haven't bothered to add them all yet. The vanilla skeleton also counts up from 0, starting at NPC Root but ends at Camera Control (bone 98 if your counting from 0). In the animation folder there is a file named deathanimationa.hkx. To keep the crush issue from occurring add the bone numbers like above to the skeleton.xml (get this by using hkxcmd.exe on your skeleton.hkx) use wordpad and add all the bones after 98. After you have all of the bones added to the xml you MUST import your skeleton.nif, deathanimation.kf and export using havok content tools with a full list of the bones on your skeleton. If you are only going to add for the butt and breasts then stop at 108. If you are using wings or animated hair or anything like that then all of the bones must be added to the list.
xp32 Posted April 25, 2013 Posted April 25, 2013 Well, Literally, I do this to my skeleton_female.hkx (XPMS) or at UNPB mod before TBBP come out.
canderes Posted April 25, 2013 Author Posted April 25, 2013 Ahh sorry I forgot to mention that yours ends at 106 and I forgot to mention that adding up to node 114 fixes the butt issue for xpms on the meshes with a weighted butt. I was looking at a bunch of skeletons when I did this so I didn't remember exactly what was in yours vs dragonfly (only requires bones up to 108 to be added) vs vanilla (don't even use this, if you are experimenting then you already know what needs to be changed if any). Thanks for the clarification. xpms: <hkparam name="name">NPC L PreBreast</hkparam> 99 <hkparam name="lockTranslation">false</hkparam> </hkobject> <hkobject> <hkparam name="name">NPC L Breast</hkparam> 100 <hkparam name="lockTranslation">false</hkparam> </hkobject> <hkobject> <hkparam name="name">NPC R PreBreast</hkparam> 101 <hkparam name="lockTranslation">false</hkparam> </hkobject> <hkobject> <hkparam name="name">NPC R Breast</hkparam> 102 <hkparam name="lockTranslation">false</hkparam> </hkobject> <hkobject> <hkparam name="name">NPC L Pussy01</hkparam> 103 <hkparam name="lockTranslation">false</hkparam> </hkobject> <hkobject> <hkparam name="name">NPC L Pussy02</hkparam> 104 <hkparam name="lockTranslation">false</hkparam> </hkobject> <hkobject> <hkparam name="name">NPC R Pussy01</hkparam> 105 <hkparam name="lockTranslation">false</hkparam> </hkobject> <hkobject> <hkparam name="name">NPC R Pussy02</hkparam> 106 <hkparam name="lockTranslation">false</hkparam> </hkobject> <hkobject> <hkparam name="name">NPC L Breast01</hkparam> 107 <hkparam name="lockTranslation">false</hkparam> </hkobject> <hkobject> <hkparam name="name">NPC R Breast01</hkparam> 108 <hkparam name="lockTranslation">false</hkparam> </hkobject> <hkobject> <hkparam name="name">NPC L PreButt0</hkparam> 109 <hkparam name="lockTranslation">false</hkparam> </hkobject> <hkobject> <hkparam name="name">NPC L PreButt</hkparam> 110 <hkparam name="lockTranslation">false</hkparam> </hkobject> <hkobject> <hkparam name="name">NPC L Butt</hkparam> 111 <hkparam name="lockTranslation">false</hkparam> </hkobject> <hkobject> <hkparam name="name">NPC R PreButt0</hkparam> 112 <hkparam name="lockTranslation">false</hkparam> </hkobject> <hkobject> <hkparam name="name">NPC R PreButt</hkparam> 113 <hkparam name="lockTranslation">false</hkparam> </hkobject> <hkobject> <hkparam name="name">NPC R Butt</hkparam> 114 <hkparam name="lockTranslation">false</hkparam> </hkobject>
Archer1234 Posted May 15, 2013 Posted May 15, 2013 I have tried to modify the skeleton_female.hkx as suggested - but I do not get a fixed breast and butt sagging problem - I get immobile female characters. A little more help would be appreciated as I don't normally play with XML files. Whether I open the above mentioned file in notepad (quick and dirty) or Liquid XML Studio (slower and extensive) my code looks different from yours not the characters themselves but how they are arranged. And however I do the editing the result remains disappointingly constant: Immobile female characters. Paralyzed from the neck and down so to speak. I have also tried to copy your code and paste it in the correct position. What xml editor do you use? And do you have any ideas about what I do wrong? Oh, yeah I also use Dragonflys TBBP skeleton... Archer1234
pokute Posted June 7, 2013 Posted June 7, 2013 To clarify, editing deathanimationa.hkx is only necessary if I'm using XP32? If I'm using dragonfly 1.01 then I only have to edit skeleton_female.hkx?
Recommended Posts
Archived
This topic is now archived and is closed to further replies.