Jump to content

Issue with HDT hair "frozen" in game.


iSaeko

Recommended Posts

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 

 

 

2015_02_16_00001.jpg

 

2015_02_16_00004.jpg

 

 

 

 

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

Link to comment

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.

Link to comment

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. 

Link to comment

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.

Link to comment

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

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