Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

hkx + exportkf + convertkf != hkx #1

Open
mlheur opened this issue Oct 14, 2015 · 1 comment
Open

hkx + exportkf + convertkf != hkx #1

mlheur opened this issue Oct 14, 2015 · 1 comment
Assignees

Comments

@mlheur
Copy link

mlheur commented Oct 14, 2015

If I take a vanilla skyrim hkx file, run it through exportkf, then take that kf file and run it through converkf again, it makes significant changes to final hkx file.

I took the vanilla and new hkx files, converted them both to XML to compare the differences.
So far I've found the following:

A. SoundPlay tracks are stripped.
In Vanilla

      <hkparam name="numberOfTransformTracks">99</hkparam>
      <hkparam name="numberOfFloatTracks">4</hkparam>
      <hkparam name="extractedMotion">null</hkparam>
      <hkparam name="annotationTracks" numelements="99">
          <hkobject>
              <hkparam name="trackName"></hkparam>
              <hkparam name="annotations" numelements="2">
                  <hkobject>
                      <hkparam name="time">1.800000</hkparam>
                      <hkparam name="text">SoundPlay.NPCHumanWoodPlace</hkparam>
                  </hkobject>
                  <hkobject>
                      <hkparam name="time">7.233334</hkparam>
                      <hkparam name="text">SoundPlay.NPCHumanWoodChop</hkparam>
                  </hkobject>
              </hkparam>
          </hkobject>
          <hkobject>
              <hkparam name="trackName"></hkparam>
              <hkparam name="annotations" numelements="0"></hkparam>
          </hkobject>

Changed to

      <hkparam name="annotationTracks" numelements="97">
          <hkobject>
              <hkparam name="trackName">&#9216;</hkparam>
              <hkparam name="annotations" numelements="0"></hkparam>
          </hkobject>

B. hkMemoryResourceContainer are stripped.
In Vanilla, gone entirely from new

  <hkobject name="#0046" class="hkMemoryResourceContainer" signature="0x4762f92a">
      <!-- memSizeAndFlags SERIALIZE_IGNORED -->
      <!-- referenceCount SERIALIZE_IGNORED -->
      <hkparam name="name"></hkparam>
      <!-- parent SERIALIZE_IGNORED -->
      <hkparam name="resourceHandles" numelements="0"></hkparam>
      <hkparam name="children" numelements="0"></hkparam>
  </hkobject>

C. Names (#nnnn) of multiple objects are changed, but signatures remain the same so I'm not sure what the impact will be; behavior files usually reference animations by name.
Vanilla

  <hkobject name="#0048" class="hkaSplineCompressedAnimation" signature="0x792ee0bb">

New

  <hkobject name="#0041" class="hkaSplineCompressedAnimation" signature="0x792ee0bb">

D. Anonymous tracks have names added, new names are &#nnnn instead of just #nnnn like other named elements
vanilla anonymous tracks

          <hkobject>
              <hkparam name="trackName"></hkparam>
              <hkparam name="annotations" numelements="0"></hkparam>
          </hkobject>

became

          <hkobject>
              <hkparam name="trackName">&#9216;</hkparam>
              <hkparam name="annotations" numelements="0"></hkparam>
          </hkobject>

E. A significant portion of the binary data is changed.

F. Not quite sure what to call it but what appears to be a framerate and frame duration have changed, like this:

vanilla was

      <hkparam name="numFrames">328</hkparam>
      <hkparam name="numBlocks">3</hkparam>
      <hkparam name="maxFramesPerBlock">128</hkparam>
      <hkparam name="maskAndQuantizationSize">400</hkparam>
      <hkparam name="blockDuration">4.233333</hkparam>
      <hkparam name="blockInverseDuration">0.236220</hkparam>
      <hkparam name="frameDuration">0.033333</hkparam>
      <hkparam name="blockOffsets" numelements="3">
          0 38000 79232
      </hkparam>
      <hkparam name="floatBlockOffsets" numelements="3">
          37984 41204 24472
      </hkparam>
      <hkparam name="transformOffsets" numelements="0"></hkparam>
      <hkparam name="floatOffsets" numelements="0"></hkparam>
      <hkparam name="data" numelements="103728">

exported/converted became

      <hkparam name="numFrames">327</hkparam>
      <hkparam name="numBlocks">2</hkparam>
      <hkparam name="maxFramesPerBlock">256</hkparam>
      <hkparam name="maskAndQuantizationSize">388</hkparam>
      <hkparam name="blockDuration">8.526073</hkparam>
      <hkparam name="blockInverseDuration">0.117287</hkparam>
      <hkparam name="frameDuration">0.033436</hkparam>
      <hkparam name="blockOffsets" numelements="2">
          0 76064
      </hkparam>
      <hkparam name="floatBlockOffsets" numelements="2">
          76056 23408
      </hkparam>
      <hkparam name="transformOffsets" numelements="0"></hkparam>
      <hkparam name="floatOffsets" numelements="0"></hkparam>
      <hkparam name="data" numelements="99472">

I'm willing to help work on this, I've gotten a copy of the code to work on, but if you could offer some hints on where to start that would be really helpful.

Here's the commands I used.
Vanilla to KF

hkxcmd exportkf -d:DEBUG "C:\Users\Marc\Documents\Skyrim - Animations_bsa\meshes\actors\character\character assets\skeleton.hkx" "C:\Users\Marc\Documents\Skyrim - Animations_bsa\meshes\actors\characte\animations\animobjectchoploop.hkx" "animobjectchoploop.kf"
Exporting '.\animobjectchoploop.kf'

KF to new HKX

hkxcmd convertkf -d:DEBUG -v:WIN32 -f SAVE_DEFAULT -f SAVE_SERIALIZE_IGNORED_MEMBERS "C:\Users\Marc\Documents\Skyrim - Animations_bsa\meshes\actors\character\character assets\skeleton.hkx" "C:\User\Marc\tmp\animobjectchoploop.kf" animobjectchoploop.hkx
Class Registered: 'BGSGamebryoSequenceGenerator' c8df2d77
Class Registered: 'BSBoneSwitchGenerator' f33d3eea
Class Registered: 'BSBoneSwitchGeneratorBoneData' c1215be6
Class Registered: 'BSComputeAddBoneAnimModifier' a67f8c46
Class Registered: 'BSCyclicBlendTransitionGenerator' 5119eb06
Class Registered: 'BSDecomposeVectorModifier' 31f6b8b6
Class Registered: 'BSDirectAtModifier' 19a005c0
Class Registered: 'BSDistTriggerModifier' b34d2bbd
Class Registered: 'BSEventEveryNEventsModifier' 6030970c
Class Registered: 'BSEventOnDeactivateModifier' 1062d993
Class Registered: 'BSEventOnFalseToTrueModifier' 81d0777a
Class Registered: 'BSGetTimeStepModifier' bda33bfe
Class Registered: 'BSIStateManagerModifier' 6cb24f2e
Class Registered: 'BSIStateManagerModifierBSIStateManagerStateListener' 99463586
Class Registered: 'BSIStateManagerModifierBSiStateData' 6b8a15fc
Class Registered: 'BSInterpValueModifier' 29adc802
Class Registered: 'BSIsActiveModifier' b0fde45a
Class Registered: 'BSLimbIKModifier' 8ea971e5
Class Registered: 'BSLookAtModifier' d756fc25
Class Registered: 'BSLookAtModifierBoneData' 29efee59
Class Registered: 'BSModifyOnceModifier' 1e20a97a
Class Registered: 'BSOffsetAnimationGenerator' b8571122
Class Registered: 'BSPassByTargetTriggerModifier' 703d7b66
Class Registered: 'BSRagdollContactListenerModifier' 8003d8ce
Class Registered: 'BSSpeedSamplerModifier' d297fda9
Class Registered: 'BSSynchronizedClipGenerator' d83bea64
Class Registered: 'BSTimerModifier' 531f3292
Class Registered: 'BSTweenerModifier' 0d2d9a04
Class Registered: 'BSiStateTaggingGenerator' f0826fc1
Class Registered: 'hkbAttachmentModifier' cc0aab32
Class Registered: 'hkbAttachmentSetup' 0774632b
Class Registered: 'hkbAttributeModifier' 1245d97d
Class Registered: 'hkbAttributeModifierAssignment' 48b8ad52
Class Registered: 'hkbAuxiliaryNodeInfo' ca0888ca
Class Registered: 'hkbBehaviorEventsInfo' 66840004
Class Registered: 'hkbBehaviorGraph' b1218f86
Class Registered: 'hkbBehaviorGraphData' 095aca5d
Class Registered: 'hkbBehaviorGraphInternalState' 8699b6eb
Class Registered: 'hkbBehaviorGraphInternalStateInfo' 645f898b
Class Registered: 'hkbBehaviorGraphStringData' c713064e
Class Registered: 'hkbBehaviorInfo' f7645395
Class Registered: 'hkbBehaviorInfoIdToNamePair' 35a0439a
Class Registered: 'hkbBehaviorReferenceGenerator' 0fcb5423
Class Registered: 'hkbBindable' 2c1432d7
Class Registered: 'hkbBlendCurveUtils' 23041af0
Class Registered: 'hkbBlenderGenerator' 22df7147
Class Registered: 'hkbBlenderGeneratorChild' e2b384b0
Class Registered: 'hkbBlenderGeneratorChildInternalState' ff7327c0
Class Registered: 'hkbBlenderGeneratorInternalState' 84717488
Class Registered: 'hkbBlendingTransitionEffect' fd8584fe
Class Registered: 'hkbBlendingTransitionEffectInternalState' b18c70c2
Class Registered: 'hkbBoneIndexArray' 00aa8619
Class Registered: 'hkbBoneWeightArray' cd902b77
Class Registered: 'hkbBoolVariableSequencedData' 37416fce
Class Registered: 'hkbBoolVariableSequencedDataSample' 514763dc
Class Registered: 'hkbCameraShakeEventPayload' 64136982
Class Registered: 'hkbCharacter' 3088a5c5
Class Registered: 'hkbCharacterAddedInfo' 3544e182
Class Registered: 'hkbCharacterControlCommand' 7a195d1d
Class Registered: 'hkbCharacterControllerControlData' 5b6c03d9
Class Registered: 'hkbCharacterControllerModifier' f675d6fb
Class Registered: 'hkbCharacterControllerModifierInternalState' f8dfec0d
Class Registered: 'hkbCharacterData' 300d6808
Class Registered: 'hkbCharacterDataCharacterControllerInfo' a0f415bf
Class Registered: 'hkbCharacterInfo' d9709ff2
Class Registered: 'hkbCharacterSetup' e5a2a413
Class Registered: 'hkbCharacterSkinInfo' 180d900d
Class Registered: 'hkbCharacterSteppedInfo' 2eda84f8
Class Registered: 'hkbCharacterStringData' 655b42bc
Class Registered: 'hkbClientCharacterState' a2624c97
Class Registered: 'hkbClipGenerator' 333b85b9
Class Registered: 'hkbClipGeneratorEcho' 750edf40
Class Registered: 'hkbClipGeneratorInternalState' 26ce5bf3
Class Registered: 'hkbClipTrigger' 7eb45cea
Class Registered: 'hkbClipTriggerArray' 59c23a0f
Class Registered: 'hkbCombineTransformsModifier' fd1f0b79
Class Registered: 'hkbCombineTransformsModifierInternalState' a92ed39f
Class Registered: 'hkbCompiledExpressionSet' 3a7d76cc
Class Registered: 'hkbCompiledExpressionSetToken' c6aaccc8
Class Registered: 'hkbComputeDirectionModifier' df358bd3
Class Registered: 'hkbComputeDirectionModifierInternalState' 6ac054d7
Class Registered: 'hkbComputeRotationFromAxisAngleModifier' 9b3f6936
Class Registered: 'hkbComputeRotationFromAxisAngleModifierInternalState' 71cd1eb0
Class Registered: 'hkbComputeRotationToTargetModifier' 47665f1c
Class Registered: 'hkbComputeRotationToTargetModifierInternalState' 71cd1eb0
Class Registered: 'hkbCondition' da8c7d7d
Class Registered: 'hkbContext' e0c4d4a7
Class Registered: 'hkbDampingModifier' 9a040f03
Class Registered: 'hkbDampingModifierInternalState' 508d3b36
Class Registered: 'hkbDefaultMessageLog' 7bd5c66f
Class Registered: 'hkbDelayedModifier' 8e101a7a
Class Registered: 'hkbDelayedModifierInternalState' 85fb0b80
Class Registered: 'hkbDetectCloseToGroundModifier' 981687b2
Class Registered: 'hkbDetectCloseToGroundModifierInternalState' 7b32d942
Class Registered: 'hkbEvaluateExpressionModifier' f900f6be
Class Registered: 'hkbEvaluateExpressionModifierInternalExpressionData' b8686f6b
Class Registered: 'hkbEvaluateExpressionModifierInternalState' b414d58e
Class Registered: 'hkbEvaluateHandleModifier' 79757102
Class Registered: 'hkbEvent' 3e0fd810
Class Registered: 'hkbEventBase' 76bddb31
Class Registered: 'hkbEventDrivenModifier' 7ed3f44e
Class Registered: 'hkbEventDrivenModifierInternalState' d14bf000
Class Registered: 'hkbEventInfo' 5874eed4
Class Registered: 'hkbEventPayload' da8c7d7d
Class Registered: 'hkbEventPayloadList' 3d2dbd34
Class Registered: 'hkbEventProperty' 0db38a15
Class Registered: 'hkbEventRaisedInfo' 00c02da3
Class Registered: 'hkbEventRangeData' 6cb92c76
Class Registered: 'hkbEventRangeDataArray' 330a56ee
Class Registered: 'hkbEventSequencedData' 76798eb8
Class Registered: 'hkbEventSequencedDataSequencedEvent' 9139b821
Class Registered: 'hkbEventsFromRangeModifier' bc561b6e
Class Registered: 'hkbEventsFromRangeModifierInternalState' cc47b48d
Class Registered: 'hkbExpressionCondition' 1c3c1045
Class Registered: 'hkbExpressionData' 6740042a
Class Registered: 'hkbExpressionDataArray' 4b9ee1a2
Class Registered: 'hkbExtractRagdollPoseModifier' 804dcbab
Class Registered: 'hkbFootIkControlData' a111b704
Class Registered: 'hkbFootIkControlsModifier' e5b6f544
Class Registered: 'hkbFootIkControlsModifierLeg' 9e17091a
Class Registered: 'hkbFootIkDriverInfo' c6a09dbf
Class Registered: 'hkbFootIkDriverInfoLeg' 224b18d1
Class Registered: 'hkbFootIkGains' a681b7f0
Class Registered: 'hkbFootIkModifier' ed8966c0
Class Registered: 'hkbFootIkModifierInternalLegData' e5ca3677
Class Registered: 'hkbFootIkModifierLeg' 9f3e3a04
Class Registered: 'hkbGenerator' 0d68aefc
Class Registered: 'hkbGeneratorOutputListener' da8c7d7d
Class Registered: 'hkbGeneratorSyncInfo' a3c341f8
Class Registered: 'hkbGeneratorSyncInfoSyncPoint' b597cf92
Class Registered: 'hkbGeneratorTransitionEffect' 5f771b12
Class Registered: 'hkbGeneratorTransitionEffectInternalState' d6692b5d
Class Registered: 'hkbGetHandleOnBoneModifier' 50c34a17
Class Registered: 'hkbGetUpModifier' 61cb7ac0
Class Registered: 'hkbGetUpModifierInternalState' d84cad4a
Class Registered: 'hkbGetWorldFromModelModifier' 873fc6f7
Class Registered: 'hkbGetWorldFromModelModifierInternalState' a92ed39f
Class Registered: 'hkbHandIkControlData' d72b8d17
Class Registered: 'hkbHandIkControlsModifier' 9f0488bb
Class Registered: 'hkbHandIkControlsModifierHand' 9c72e9e3
Class Registered: 'hkbHandIkDriverInfo' c299090a
Class Registered: 'hkbHandIkDriverInfoHand' 14dfe1dd
Class Registered: 'hkbHandIkModifier' ef8bc2f7
Class Registered: 'hkbHandIkModifierHand' 14dfe1dd
Class Registered: 'hkbHandle' d8b6401c
Class Registered: 'hkbIntEventPayload' ebbc1bd3
Class Registered: 'hkbIntVariableSequencedData' 7bfc518a
Class Registered: 'hkbIntVariableSequencedDataSample' be7ac63c
Class Registered: 'hkbKeyframeBonesModifier' 95f66629
Class Registered: 'hkbKeyframeBonesModifierKeyframeInfo' 72deb7a6
Class Registered: 'hkbLinkedSymbolInfo' 6a5094e3
Class Registered: 'hkbLookAtModifier' 3d28e066
Class Registered: 'hkbLookAtModifierInternalState' a14caba6
Class Registered: 'hkbManualSelectorGenerator' d932fab8
Class Registered: 'hkbManualSelectorGeneratorInternalState' 492c6137
Class Registered: 'hkbMessageLog' 26a196c5
Class Registered: 'hkbMirrorModifier' a9a271ea
Class Registered: 'hkbMirroredSkeletonInfo' c6c2da4f
Class Registered: 'hkbModifier' 96ec5ced
Class Registered: 'hkbModifierGenerator' 1f81fae6
Class Registered: 'hkbModifierList' a4180ca1
Class Registered: 'hkbModifierWrapper' 3697e044
Class Registered: 'hkbMoveCharacterModifier' 8f7492a0
Class Registered: 'hkbMoveCharacterModifierInternalState' 28f67ba0
Class Registered: 'hkbNamedEventPayload' 65bdd3a0
Class Registered: 'hkbNamedIntEventPayload' 3c99bda4
Class Registered: 'hkbNamedRealEventPayload' 9c99fd70
Class Registered: 'hkbNamedStringEventPayload' 6caa9113
Class Registered: 'hkbNode' 6d26f61d
Class Registered: 'hkbNodeInternalStateInfo' 7db9971d
Class Registered: 'hkbParticleSystemEventPayload' 9df46cd6
Class Registered: 'hkbPoseMatchingGenerator' 29e271b4
Class Registered: 'hkbPoseMatchingGeneratorInternalState' 552d9dd4
Class Registered: 'hkbPoweredRagdollControlData' 0f5ba21b
Class Registered: 'hkbPoweredRagdollControlsModifier' 7cb54065
Class Registered: 'hkbProjectData' 13a39ba7
Class Registered: 'hkbProjectStringData' 076ad60a
Class Registered: 'hkbProxyModifier' 8a41554f
Class Registered: 'hkbProxyModifierProxyInfo' 39de637e
Class Registered: 'hkbRaiseEventCommand' a0a7bf9c
Class Registered: 'hkbRealEventPayload' 9416affd
Class Registered: 'hkbRealVariableSequencedData' e2862d02
Class Registered: 'hkbRealVariableSequencedDataSample' bb708bbd
Class Registered: 'hkbReferencePoseGenerator' 26a5675a
Class Registered: 'hkbRegisteredGenerator' 58b1d082
Class Registered: 'hkbRigidBodyRagdollControlData' 1e0bc068
Class Registered: 'hkbRigidBodyRagdollControlsModifier' aa87d1eb
Class Registered: 'hkbRoleAttribute' 3eb2e082
Class Registered: 'hkbRotateCharacterModifier' 877ebc0b
Class Registered: 'hkbRotateCharacterModifierInternalState' dc40bf4a
Class Registered: 'hkbSenseHandleModifier' 2a064d99
Class Registered: 'hkbSenseHandleModifierRange' fb56b692
Class Registered: 'hkbSequence' 43182ca3
Class Registered: 'hkbSequenceInternalState' 419b9a05
Class Registered: 'hkbSequenceStringData' 6a5094e3
Class Registered: 'hkbSequencedData' da8c7d7d
Class Registered: 'hkbSetBehaviorCommand' e18b74b9
Class Registered: 'hkbSetLocalTimeOfClipGeneratorCommand' fab12b45
Class Registered: 'hkbSetNodePropertyCommand' c5160b64
Class Registered: 'hkbSetWordVariableCommand' f3ae5fca
Class Registered: 'hkbSetWorldFromModelModifier' afcfa211
Class Registered: 'hkbSimulationControlCommand' 2a241367
Class Registered: 'hkbSimulationStateInfo' a40822b4
Class Registered: 'hkbStateChooser' da8c7d7d
Class Registered: 'hkbStateListener' da8c7d7d
Class Registered: 'hkbStateMachine' 816c1dcb
Class Registered: 'hkbStateMachineActiveTransitionInfo' bb90d54f
Class Registered: 'hkbStateMachineDelayedTransitionInfo' 026d5499
Class Registered: 'hkbStateMachineEventPropertyArray' b07b4388
Class Registered: 'hkbStateMachineInternalState' bd1a7502
Class Registered: 'hkbStateMachineNestedStateMachineData' 7358f5da
Class Registered: 'hkbStateMachineProspectiveTransitionInfo' 3ab09a2e
Class Registered: 'hkbStateMachineStateInfo' 0ed7f9d0
Class Registered: 'hkbStateMachineTimeInterval' 60a881e5
Class Registered: 'hkbStateMachineTransitionInfo' cdec8025
Class Registered: 'hkbStateMachineTransitionInfoArray' e397b11e
Class Registered: 'hkbStateMachineTransitionInfoReference' 9810c2d0
Class Registered: 'hkbStringCondition' 5ab50487
Class Registered: 'hkbStringEventPayload' ed04256a
Class Registered: 'hkbTestStateChooser' c0fcc436
Class Registered: 'hkbTimerModifier' 338b4879
Class Registered: 'hkbTimerModifierInternalState' 83ec2d42
Class Registered: 'hkbTransformVectorModifier' f93e0e24
Class Registered: 'hkbTransformVectorModifierInternalState' 5ca91c99
Class Registered: 'hkbTransitionEffect' 945da157
Class Registered: 'hkbTwistModifier' b6b76b32
Class Registered: 'hkbVariableBindingSet' 338ad4ff
Class Registered: 'hkbVariableBindingSetBinding' 4d592f72
Class Registered: 'hkbVariableInfo' 9e746ba2
Class Registered: 'hkbVariableValue' 0b99bd6a
Class Registered: 'hkbVariableValueSet' 27812d8d
Class Registered: 'hkbWorldEnums' 25640b46
Class Registered: 'hkbWorldFromModelModeData' a3af8783
ExportAnimation('C:\Users\Marc\tmp','C:\Users\Marc\Documents\Skyrim - Animations_bsa\meshe\actors\character\character assets\skeleton.hkx','C:\Users\Marc\tmp\animobjectchoploop.hkx')
ExportAnimation Starting 'C:\Users\Marc\tmp\animobjectchoploop.kf'
ExportAnimation Reading 'C:\Users\Marc\tmp\animobjectchoploop.kf'
ExportAnimation Exporting 'C:\Users\Marc\tmp\animobjectchoploop.hkx'
Missing scaling data for NPC COM [COM ]
Missing rotation data for NPC Pelvis [Pelv]
Missing scaling data for NPC Pelvis [Pelv]
Missing scaling data for NPC L Thigh [LThg]
Missing scaling data for NPC L Calf [LClf]
Missing scaling data for NPC L Foot [Lft ]
Missing scaling data for NPC R Thigh [RThg]
Missing scaling data for NPC R Calf [RClf]
Missing scaling data for NPC R Foot [Rft ]
Missing scaling data for SkirtRBone01
Missing scaling data for SkirtRBone02
Missing scaling data for SkirtRBone03
Missing transform data for SkirtLBone01
Missing scaling data for SkirtLBone01
Missing scaling data for SkirtLBone02
Missing scaling data for SkirtLBone03
Missing scaling data for SkirtBBone01
Missing scaling data for SkirtBBone02
Missing scaling data for SkirtBBone03
Missing scaling data for SkirtFBone01
Missing scaling data for SkirtFBone02
Missing scaling data for SkirtFBone03
Missing scaling data for NPC Spine [Spn0]
Missing transform data for NPC Spine1 [Spn1]
Missing scaling data for NPC Spine1 [Spn1]
Missing transform data for NPC Spine2 [Spn2]
Missing scaling data for NPC Spine2 [Spn2]
Missing scaling data for NPC L Clavicle [LClv]
Missing transform data for NPC L UpperArm [LUar]
Missing scaling data for NPC L UpperArm [LUar]
Missing transform data for NPC L Forearm [LLar]
Missing scaling data for NPC L Forearm [LLar]
Missing scaling data for NPC R Clavicle [RClv]
Missing scaling data for NPC R UpperArm [RUar]
Missing scaling data for NPC R Forearm [RLar]
Missing scaling data for AnimObjectA
Missing scaling data for AnimObjectB
Missing scaling data for NPC Neck [Neck]
Missing scaling data for NPC Head [Head]
Missing scaling data for NPCEyeBone
Missing scaling data for NPC L Hand [LHnd]
Missing scaling data for NPC R Hand [RHnd]
Missing scaling data for AnimObjectL
Missing scaling data for AnimObjectR
Missing scaling data for Shield
Missing scaling data for Weapon
Missing scaling data for NPC L Pauldron
Missing scaling data for NPC R Pauldron
Missing scaling data for MagicEffectsNode
Missing rotation data for NPC L MagicNode [LMag]
Missing scaling data for NPC L MagicNode [LMag]
Missing scaling data for NPC R MagicNode [RMag]
Missing rotation data for NPC Head MagicNode [Hmag]
Missing scaling data for NPC Head MagicNode [Hmag]
Missing scaling data for NPC L Toe0 [LToe]
Missing scaling data for NPC R Toe0 [RToe]
Missing scaling data for NPC L ForearmTwist1 [LLt1]>
Missing scaling data for NPC L ForearmTwist2 [LLt2]
Missing scaling data for NPC L UpperarmTwist1 [LUt1]
Missing scaling data for NPC L UpperarmTwist2 [LUt2]
Missing scaling data for NPC R ForearmTwist1 [RLt1]
Missing scaling data for NPC R ForearmTwist2 [RLt2]
Missing transform data for NPC R UpperarmTwist1 [RUt1]
Missing scaling data for NPC R UpperarmTwist1 [RUt1]
Missing scaling data for NPC R UpperarmTwist2 [RUt2]
Missing scaling data for Quiver
Missing scaling data for WeaponAxe
Missing scaling data for WeaponBack
Missing scaling data for WeaponBow
Missing transform data for WeaponDagger
Missing scaling data for WeaponDagger
Missing scaling data for WeaponMace
Missing scaling data for WeaponSword
Missing transform data for NPC L Finger00 [LF00]
Missing scaling data for NPC L Finger00 [LF00]
Missing transform data for NPC L Finger01 [LF01]
Missing scaling data for NPC L Finger01 [LF01]
Missing transform data for NPC L Finger02 [LF02]
Missing scaling data for NPC L Finger02 [LF02]
Missing transform data for NPC L Finger10 [LF10]
Missing scaling data for NPC L Finger10 [LF10]
Missing scaling data for NPC L Finger11 [LF11]
Missing transform data for NPC L Finger12 [LF12]
Missing scaling data for NPC L Finger12 [LF12]
Missing transform data for NPC L Finger20 [LF20]
Missing scaling data for NPC L Finger20 [LF20]
Missing transform data for NPC L Finger21 [LF21]
Missing scaling data for NPC L Finger21 [LF21]
Missing transform data for NPC L Finger22 [LF22]
Missing scaling data for NPC L Finger22 [LF22]
Missing transform data for NPC L Finger30 [LF30]
Missing scaling data for NPC L Finger30 [LF30]
Missing transform data for NPC L Finger31 [LF31]
Missing scaling data for NPC L Finger31 [LF31]
Missing transform data for NPC L Finger32 [LF32]
Missing scaling data for NPC L Finger32 [LF32]
Missing scaling data for NPC L Finger40 [LF40]
Missing transform data for NPC L Finger41 [LF41]
Missing scaling data for NPC L Finger41 [LF41]
Missing transform data for NPC L Finger42 [LF42]
Missing scaling data for NPC L Finger42 [LF42]
Missing transform data for NPC R Finger00 [RF00]
Missing scaling data for NPC R Finger00 [RF00]
Missing scaling data for NPC R Finger01 [RF01]
Missing transform data for NPC R Finger02 [RF02]
Missing scaling data for NPC R Finger02 [RF02]
Missing transform data for NPC R Finger10 [RF10]
Missing scaling data for NPC R Finger10 [RF10]
Missing transform data for NPC R Finger11 [RF11]
Missing scaling data for NPC R Finger11 [RF11]
Missing transform data for NPC R Finger12 [RF12]
Missing scaling data for NPC R Finger12 [RF12]
Missing transform data for NPC R Finger20 [RF20]
Missing scaling data for NPC R Finger20 [RF20]
Missing transform data for NPC R Finger21 [RF21]
Missing scaling data for NPC R Finger21 [RF21]
Missing transform data for NPC R Finger22 [RF22]
Missing scaling data for NPC R Finger22 [RF22]
Missing transform data for NPC R Finger30 [RF30]
Missing scaling data for NPC R Finger30 [RF30]
Missing transform data for NPC R Finger31 [RF31]
Missing scaling data for NPC R Finger31 [RF31]
Missing transform data for NPC R Finger32 [RF32]
Missing scaling data for NPC R Finger32 [RF32]
Missing transform data for NPC R Finger40 [RF40]
Missing scaling data for NPC R Finger40 [RF40]
Missing transform data for NPC R Finger41 [RF41]
Missing scaling data for NPC R Finger41 [RF41]
Missing transform data for NPC R Finger42 [RF42]
Missing scaling data for NPC R Finger42 [RF42]
.\Animation\SplineCompressed\hkaSplineCompressedAnimationCtor.cpp(366): [0x36118E94] Report : Number of blocks: 2
.\Animation\SplineCompressed\hkaSplineCompressedAnimationCtor.cpp(367): [0x36118E94] Report : Size of largest block (PlayStation(R)3 SPU): 76224 bytes.
.\Animation\SplineCompressed\hkaSplineCompressedAnimationCtor.cpp(372): [0x36118E94] Report : Original Size: 2030016 bytes. Compressed Size: 99612 bytes.
.\Animation\SplineCompressed\hkaSplineCompressedAnimationCtor.cpp(373): [0x36118E94] Report : Compression Ratio: 20.379230:1.
Exporting 'C:\Users\Marc\tmp\animobjectchoploop.hkx'

XML conversions.

hkxcmd convert -v:XML -f SAVE_DEFAULT -f SAVE_SERIALIZE_IGNORED_MEMBERS -f SAVE_TEXT "C:\Users\Marc\tmp\animobjectchoploop.hkx" animobjectchoploop.xml
Converting '.\animobjectchoploop.hkx' ...
hkxcmd convert -v:XML -f SAVE_DEFAULT -f SAVE_SERIALIZE_IGNORED_MEMBERS -f SAVE_TEXT "C:\Users\Marc\tmp\animobjectchoploop-orig.hkx" animobjectchoploop-orig.xml
Converting '.\animobjectchoploop-orig.hkx' ...

P.S. After typing all this I figured to convertkf the KF file to XML, without going through convertkf to HKX first - it seems the items might be stripped/mangled in the exportkf process since the kf-xml exactly matches the new-hkx-xml file, and both differ from the vanilla-hkx-xml file.

@figment figment self-assigned this Oct 17, 2015
@figment
Copy link
Owner

figment commented Oct 17, 2015

Thats a bit of a wall of text. I'm currently working on 3ds max tools at the moment and have not looked at this code in several years. I will probably take a look at this in a couple of weeks depending on my time availability. More likely I will wait for Fallout 4 release and update only if that game uses similar techniques and I'll fix any issues then.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants