iSaeko Posted February 16, 2015 Posted February 16, 2015 So, I set up HDT on a hair from "My type of hair" in 3ds and got everything working fine in the Havok preview tool. Exported the nif and made the needed changes, then went to export the xml. I found that I couldn't export as an XML Packfile, only as a Binary Packfile or XML Tagfile. I went ahead and exported as XML Tagfile to see if it would work. The hair shows up in game, and appears to point to the XML file correctly, but the physics isn't working and there's a weird 'duplicate' bug. Does anyone know how to solve the issue with exporting the XML? Or if it's caused by something else. Images of the bug As you can see, there's a kind of weird ghost ponytail that is transparent. Never seen this before. First few lines of XML file. Full file attached. <?xml version="1.0" encoding="ascii"?> <hktagfile version="2" sdkversion="hk_2014.1.0-r1" maxpredicate="21" predicates="20"> <!-- hasRootLevelContainer, --> <class name="hkRootLevelContainer" version="0"> <member name="namedVariants" type="struct" array="true" class="hkRootLevelContainerNamedVariant"/> </class> <class name="hkRootLevelContainerNamedVariant" version="1"> <member name="name" type="string"/> <member name="className" type="string"/> <member name="variant" type="ref" class="hkReferencedObject"/> </class> <class name="hkBaseObject" version="0"> </class> <class name="hkReferencedObject" version="0" parent="hkBaseObject"> <member name="memSizeAndRefCount" type="void"/> </class> <class name="hkpPhysicsData" version="0" parent="hkReferencedObject"> <member name="worldCinfo" type="ref" class="hkpWorldCinfo"/> <member name="systems" type="ref" array="true" class="hkpPhysicsSystem"/> </class> <class name="hkpWorldCinfo" version="18" parent="hkReferencedObject"> <member name="gravity" type="vec4"/> <member name="broadPhaseQuerySize" type="int"/> <member name="contactRestingVelocity" type="real"/> <member name="broadPhaseType" type="int"/> <member name="broadPhaseBorderBehaviour" type="int"/> <member name="mtPostponeAndSortBroadPhaseBorderCallbacks" type="byte"/> <member name="broadPhaseWorldAabb" type="struct" class="hkAabb"/> <member name="collisionTolerance" type="real"/> <member name="collisionFilter" type="ref" class="hkpCollisionFilter"/> <member name="convexListFilter" type="ref" class="hkpConvexListFilter"/> <member name="expectedMaxLinearVelocity" type="real"/> <member name="sizeOfToiEventQueue" type="int"/> <member name="expectedMinPsiDeltaTime" type="real"/> <member name="memoryWatchDog" type="ref" class="hkWorldMemoryAvailableWatchDog"/> <member name="broadPhaseNumMarkers" type="int"/> <member name="contactPointGeneration" type="int"/> <member name="allowToSkipConfirmedCallbacks" type="byte"/> <member name="solverTau" type="real"/> <member name="solverDamp" type="real"/> <member name="solverIterations" type="int"/> <member name="solverMicrosteps" type="int"/> <member name="maxConstraintViolation" type="real"/> <member name="forceCoherentConstraintOrderingInSolver" type="byte"/> <member name="snapCollisionToConvexEdgeThreshold" type="real"/> <member name="snapCollisionToConcaveEdgeThreshold" type="real"/> <member name="enableToiWeldRejection" type="byte"/> <member name="enableDeprecatedWelding" type="byte"/> <member name="iterativeLinearCastEarlyOutDistance" type="real"/> <member name="iterativeLinearCastMaxIterations" type="int"/> <member name="deactivationNumInactiveFramesSelectFlag0" type="byte"/> <member name="deactivationNumInactiveFramesSelectFlag1" type="byte"/> <member name="deactivationIntegrateCounter" type="byte"/> <member name="shouldActivateOnRigidBodyTransformChange" type="byte"/> <member name="deactivationReferenceDistance" type="real"/> <member name="toiCollisionResponseRotateNormal" type="real"/> <member name="useCompoundSpuElf" type="byte"/> <member name="maxSectorsPerMidphaseCollideTask" type="int"/> <member name="maxSectorsPerNarrowphaseCollideTask" type="int"/> <member name="processToisMultithreaded" type="byte"/> <member name="maxEntriesPerToiMidphaseCollideTask" type="int"/> <member name="maxEntriesPerToiNarrowphaseCollideTask" type="int"/> <member name="maxNumToiCollisionPairsSinglethreaded" type="int"/> <member name="numToisTillAllowedPenetrationSimplifiedToi" type="real"/> <member name="numToisTillAllowedPenetrationToi" type="real"/> <member name="numToisTillAllowedPenetrationToiHigher" type="real"/> <member name="numToisTillAllowedPenetrationToiForced" type="real"/> <member name="enableDeactivation" type="byte"/> <member name="simulationType" type="int"/> <member name="enableSimulationIslands" type="byte"/> <member name="minDesiredIslandSize" type="int"/> <member name="processActionsInSingleThread" type="byte"/> <member name="allowIntegrationOfIslandsWithoutConstraintsInASeparateJob" type="byte"/> <member name="frameMarkerPsiSnap" type="real"/> <member name="fireCollisionCallbacks" type="byte"/> </class> pigtail.xml
blabba Posted February 16, 2015 Posted February 16, 2015 There is no such thing as xml packfile. (Pack file = information compressed and packed into smallest filesize possible, which is only possible in binary) The ghost ponytail may be from the hair's hairline mesh which is usually a copy of the main mesh and used for underwater/transparency stuff.
iSaeko Posted February 16, 2015 Author Posted February 16, 2015 There is no such thing as xml packfile. (Pack file = information compressed and packed into smallest filesize possible, which is only possible in binary) The ghost ponytail may be from the hair's hairline mesh which is usually a copy of the main mesh and used for underwater/transparency stuff. Hmm, okay. Thanks. In various HDT tutorials, they say export as XML packfile using the Havok tools in 3ds max. Not sure if that's just a converted HKX file or something, but the structure and contents of the Tagfile XML I exported is very different from those I've looked at with HDT hairs. I know there are some HKX pack file converters, but they only seem to work with 2010 Havok.
blabba Posted February 17, 2015 Posted February 17, 2015 2010-2013 Havok Tagfile structure is kept the same. HKX Tagfile = .XML file renamed HKX Packfile = Binary Packfile Everything in vanilla skyrim is in packfile form. Figment's converter takes packfiles and converts them into tagfiles (basically XML) so they may be viewed in Havok tools and further converted to .KF etc... The xml you posted is incorrect because you didn't setup your export filters correctly. From what I see you left world data and other extra information that you should have culled. Apply a prune types filter and make sure you cull all the extra data and re-export your xml.
iSaeko Posted February 17, 2015 Author Posted February 17, 2015 2010-2013 Havok Tagfile structure is kept the same. HKX Tagfile = .XML file renamed HKX Packfile = Binary Packfile Everything in vanilla skyrim is in packfile form. Figment's converter takes packfiles and converts them into tagfiles (basically XML) so they may be viewed in Havok tools and further converted to .KF etc... The xml you posted is incorrect because you didn't setup your export filters correctly. From what I see you left world data and other extra information that you should have culled. Apply a prune types filter and make sure you cull all the extra data and re-export your xml. I got the export and XML to work properly (I think), but still struggling to get it working in game. If I just replace the "hairxx.nif" file, I just have a static hair that's the same as the original. If I edit the "hairlinexx,nif" file, the hair doesn't show at all. New XML.xml
Recommended Posts
Archived
This topic is now archived and is closed to further replies.