Important information: this site is currently scheduled to go offline indefinitely by end of the year.

Havok binary files

Post questions about game models here, or help out others!
HunterAP
advanced
Posts: 43
Joined: Mon Aug 10, 2015 7:03 am
Has thanked: 14 times
Been thanked: 5 times

Re: Havok binary files

Post by HunterAP »

Loomy wrote:
HunterAP wrote:After all this time I'm also trying to get some newer formats of HKX working. Right now, Volfin's hkt2smd is crashing because newer formats report that for a variable used in the code, there is over 1.5 billion elements in an array (AKA way too much to work with), and I'm not sure how to go about patching it.

Also, interestingly, trying to use hkt2smd on Dark Souls 1 has a similar error but in a different section.
can u post here sample of both assets ur trying to parse ? i can take a look.
Of course. I'm including two files: one is the player skeleton from Dark Souls 2, and the other is the player skeleton from Dark Souls 3.
You do not have the required permissions to view the files attached to this post.
Loomy
advanced
Posts: 41
Joined: Sat Sep 12, 2015 2:16 am
Location: South Africa
Has thanked: 20 times
Been thanked: 6 times

Re: Havok binary files

Post by Loomy »

In meanwhile, i came across this hkx2xml converter.https://github.com/Dexesttp/hkxpack. it looks promising. Iiirc its easier and there are couple of tools to convert raw HKxmlTagFile to a couple of formats.



Still trying to fix up volfins awesome project. (its just a matter of few extra trash/padding bytes + some random extra info,

still not sure about the HeaderFlags PointerSize if it has any bearing.. older files usually have value of 4 here, these 2014 / dk files have pointer 8. Think it has something to do with calculating the section / data block total sizes.. this java project above seems to give some clues.

Anyway here is output of DK3 file. (dk2 file only spat out seemingly broken file with only 5 attachments/bones) and no refpose/indices info

Does this look right ? or do u maybe have an smd or other version of DK2 / 3 skeleton to use as ref ?

Code: Select all

<?xml version="1.0" encoding="ASCII" standalone="no"?>
<hkpackfile classversion="11" contentsversion="hk_2014.1.0-r1">
    <hksection name="__data__">
        <hkobject class="hkRootLevelContainer" name="#90" signature="0x2772c11e">
            <hkparam name="namedVariants" numelements="1">
                <hkobject>
                    <hkparam name="name">Merged Animation Container</hkparam>
                    <hkparam name="className">hkaAnimationContainer</hkparam>
                    <hkparam name="variant">#91</hkparam>
                </hkobject>
            </hkparam>
        </hkobject>
        <hkobject class="hkaAnimationContainer" name="#91" signature="0x26859f4c">
            <!-- memSizeAndRefCount SERIALIZE_IGNORED -->
            <hkparam name="skeletons" numelements="1">#92</hkparam>
            <hkparam name="animations" numelements="0"></hkparam>
            <hkparam name="bindings" numelements="0"></hkparam>
            <hkparam name="attachments" numelements="0"></hkparam>
            <hkparam name="skins" numelements="0"></hkparam>
        </hkobject>
        <hkobject class="hkaSkeleton" name="#92" signature="0xfec1cedb">
            <!-- memSizeAndRefCount SERIALIZE_IGNORED -->
            <hkparam name="name">Master</hkparam>
            <hkparam name="parentIndices" numelements="110">
65535 0 1 2 0 4 5 0 7 8 8 10 11 11 11 11 15 15 10 10 10 10 10 8
8 8 25 26 26 26 26 30 30 25 25 25 25 25 8 7 39 40 41 42 43 43 43
43 43 48 48 50 50 52 52 52 55 56 57 55 59 60 55 62 63 55 65 66
55 68 69 55 55 50 50 43 43 43 77 43 79 79 81 81 83 83 83 86 87
88 86 90 91 86 93 94 86 96 97 86 99 100 86 86 81 81 43 43 42 42</hkparam>
            <hkparam name="bones" numelements="110">
                <hkobject>
                    <hkparam name="name">Master</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">L_Foot_Target2</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">L_Foot_Target1</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">L_Foot_Target</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">R_Foot_Target2</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">R_Foot_Target1</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">R_Foot_Target</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">RootPos</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">Pelvis</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">L_Hip</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">L_Thigh</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">L_Calf</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">L_Calf_Skirt</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">L_CalfTwist</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">L_CalfTwist1</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">L_Foot</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">L_FootTwist</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">L_Toe0</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">L_Knee</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">L_Knee_Skirt</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">L_Thigh_Skirt</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">L_ThighTwist</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">L_ThighTwist1</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">L_Wepon_Case</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">R_Hip</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">R_Thigh</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">R_Calf</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">R_Calf_Skirt</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">R_CalfTwist</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">R_CalfTwist1</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">R_Foot</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">R_FootTwist</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">R_Toe0</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">R_Knee</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">R_Knee_Skirt</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">R_Thigh_Skirt</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">R_ThighTwist</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">R_ThighTwist1</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">R_Wepon_Case</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">RootRotY</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">RootRotXZ</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">Spine</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">Spine1</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">Spine2</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">B_Wepon_Case</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">B_Wepon_Case0_L</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">B_Wepon_Case0_R</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">Collar</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">L_Clavicle</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">L_Shoulder</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">L_UpperArm</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">L_Elbow</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">L_Forearm</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">L_ForeArmTwist</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">L_ForeArmTwist1</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">L_Hand</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">L_Finger0</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">L_Finger01</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">L_Finger02</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">L_Finger1</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">L_Finger11</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">L_Finger12</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">L_Finger2</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">L_Finger21</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">L_Finger22</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">L_Finger3</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">L_Finger31</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">L_Finger32</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">L_Finger4</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">L_Finger41</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">L_Finger42</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">L_Shield</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">L_Weapon</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">L_UpArmTwist</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">L_UpArmTwist1</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">L_Pectoral</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">L_Po</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">Neck</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">Head</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">R_Clavicle</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">R_Shoulder</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">R_UpperArm</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">R_Elbow</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">R_Forearm</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">R_ForeArmTwist</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">R_ForeArmTwist1</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">R_Hand</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">R_Finger0</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">R_Finger01</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">R_Finger02</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">R_Finger1</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">R_Finger11</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">R_Finger12</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">R_Finger2</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">R_Finger21</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">R_Finger22</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">R_Finger3</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">R_Finger31</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">R_Finger32</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">R_Finger4</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">R_Finger41</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">R_Finger42</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">R_Shield</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">R_Weapon</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">R_UpArmTwist</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">R_UpArmTwist1</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">R_Pectoral</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">R_Po</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">SpineArmor1</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
                <hkobject>
                    <hkparam name="name">SpineArmor2</hkparam>
                    <hkparam name="lockTranslation">false</hkparam>
                </hkobject>
            </hkparam>
            <hkparam name="referencePose" numelements="110">

(0.0 0.0 0.0 1.0)(0.0 0.7071061730384827 0.0 0.7071073055267334)(0.9999998211860657 0.9999999403953552 0.9999998211860657 1.0)
(-0.06271867454051971 0.9761797189712524 0.10334890335798264 -0.9761798977851868)(-0.49987614154815674 0.4998769462108612 -0.5001237988471985 0.5001230835914612)(0.9999997019767761 0.9999997615814209 1.0000001192092896 0.0)
(0.4433634281158447 0.0 1.2665987014770508E-6 0.9758566617965698)(-7.783820166196165E-8 -1.1212688377781888E-6 1.19486983862771E-7 1.0)(0.9999997019767761 1.0 0.9999997019767761 0.0)
(0.42329806089401245 -1.4901161193847656E-7 -9.164214134216309E-7 1.0418891906738281E-4)(2.4693511659279466E-4 -1.729398500174284E-4 1.6194296392768592E-7 -0.9999998807907104)(1.000000238418579 1.0 1.0000004768371582 0.0)
(-0.06271988898515701 0.9761797785758972 -0.10334904491901398 -0.9761799573898315)(-0.5010172128677368 0.5010135769844055 -0.49898040294647217 0.49898460507392883)(0.9999995827674866 0.999998927116394 0.9999993443489075 0.0)
(0.4433632493019104 6.332993507385254E-7 6.9141387939453125E-6 0.9796545505523682)(-2.2538009147865523E-7 -4.222733423375757E-6 -9.79873817641419E-8 0.9999999403953552)(0.9999998807907104 0.9999998807907104 0.9999999403953552 0.0)
(0.4232977628707886 -9.015202522277832E-7 -1.7292797565460205E-5 -8.538961410522461E-4)(-0.0020329768303781748 -1.8076931883115321E-4 -1.1241216668622656E-7 -0.9999979138374329)(1.0 1.000000238418579 1.0000004768371582 0.0)
(0.0 0.9699996113777161 0.0 -0.9699997901916504)(0.0 -0.7071061730384827 0.0 0.7071073055267334)(1.0000001192092896 1.0 1.0000001192092896 0.0)
(0.0 6.556510925292969E-7 0.0 -0.9699976444244385)(0.7071061730384827 0.7071073055267334 1.6493457906108233E-6 1.6493461316713365E-6)(0.9999998211860657 0.9999998211860657 0.9999996423721313 0.0)
(-2.384185791015625E-7 0.10334886610507965 -0.004999629687517881 -3.814697265625E-6)(-0.004983692429959774 -2.0406770636327565E-4 -0.9999874830245972 2.81304301097407E-6)(1.0000001192092896 1.0 1.0000001192092896 0.0)
(-2.384185791015625E-7 0.10334903001785278 3.828472472378053E-7 -3.814697265625E-6)(-0.00996700394898653 2.0000154563604156E-6 -0.9999502897262573 1.1557366406123037E-6)(1.0000005960464478 1.0000004768371582 1.000000238418579 0.0)
(0.44336360692977905 -1.043081283569336E-7 3.725290298461914E-9 -0.01285165548324585)(3.9115556660362927E-7 0.09475500136613846 -3.323658290810272E-7 0.9955005645751953)(0.999998927116394 0.9999991059303284 0.9999993443489075 0.0)
(0.005000710487365723 -5.289912223815918E-7 9.685754776000977E-8 0.07964915037155151)(1.0430816388407038E-7 1.1175874448099421E-8 9.080398655214594E-9 1.0)(0.9999999403953552 1.0 0.9999997019767761 0.0)
(0.19473174214363098 -3.0547380447387695E-7 8.195638656616211E-8 0.06361275911331177)(-6.518663722090423E-4 -7.450582373280668E-9 6.984921085972928E-9 -0.9999997615814209)(0.9999998807907104 1.000000238418579 1.0000003576278687 0.0)
(0.005000710487365723 -3.7997961044311523E-7 9.685754776000977E-8 0.07964915037155151)(-3.260561206843704E-4 3.725291186640334E-9 -5.1688413549300094E-8 -0.9999998807907104)(0.9999998807907104 1.0000001192092896 0.9999995827674866 0.0)
(0.423298180103302 -1.564621925354004E-7 3.725290298461914E-8 0.04429394006729126)(6.184566192501961E-10 -0.08465617150068283 2.8226178727663864E-8 0.9964102506637573)(1.000000238418579 1.0000001192092896 1.000000238418579 0.0)
(0.11036860942840576 -7.82310962677002E-7 3.714114427566528E-5 2.2232532501220703E-4)(-1.2516978813437163E-6 -0.7054907083511353 6.599295261366933E-7 0.7087191343307495)(1.0000003576278687 1.000000238418579 1.0000004768371582 0.0)
(0.11032231897115707 -4.470348358154297E-7 0.1347428858280182 2.2232532501220703E-4)(-5.960465898624534E-8 -0.7072290778160095 -5.392941204718227E-8 0.7069844007492065)(1.0 1.0 1.0000001192092896 0.0)
(0.4438374638557434 -5.9604644775390625E-8 0.004977501928806305 -0.012847363948822021)(-8.940698990045348E-7 -0.04743093624711037 4.4140335830888944E-7 -0.9988745450973511)(0.9999988079071045 0.9999984502792358 0.9999992251396179 0.0)
(0.4433634281158447 -4.470348358154297E-8 6.332993507385254E-8 -0.01285165548324585)(3.7066646996208874E-7 0.04743088036775589 -3.46757673241882E-7 0.9988745450973511)(0.999999463558197 0.9999997019767761 0.9999997615814209 0.0)
(-1.7881393432617188E-7 -5.9604644775390625E-8 1.862645149230957E-9 -0.01727050542831421)(-1.183711447083624E-6 1.0244551873483942E-8 -1.3722824121487065E-7 1.0)(0.9999993443489075 0.9999991059303284 0.9999996423721313 0.0)
(0.004999816417694092 -8.195638656616211E-8 -1.862645149230957E-9 -0.017220675945281982)(6.877884152345359E-4 -8.381904947896146E-9 -3.1286626067661416E-10 0.9999997615814209)(1.0 0.9999998211860657 1.000000238418579 0.0)
(0.2290000319480896 -4.470348358154297E-8 1.6763806343078613E-8 -0.014988124370574951)(3.4371772198937833E-4 -9.313227966600834E-10 -3.262540246851131E-7 0.9999999403953552)(1.000000238418579 1.0000009536743164 1.0000003576278687 0.0)
(0.035256266593933105 0.18546460568904877 0.005854020826518536 -4.0531158447265625E-6)(-0.23517447710037231 0.6817288994789124 -0.646933913230896 -0.24782048165798187)(0.9999999403953552 0.9999998807907104 1.0000005960464478 0.0)
(-1.0192394256591797E-4 -0.10334472358226776 -0.0050003682263195515 -3.337860107421875E-6)(0.004983412567526102 -2.0755900186486542E-4 0.9999874830245972 1.2996783880225848E-6)(0.9999997615814209 0.9999996423721313 0.9999997615814209 0.0)
(0.0 -0.10334891080856323 -3.0311957743833773E-7 -3.337860107421875E-6)(0.009967002086341381 3.2130635929661366E-8 0.9999502897262573 -8.27911208034493E-7)(1.0000001192092896 1.0000001192092896 1.0000008344650269 0.0)
(0.4433634281158447 3.650784492492676E-7 1.4901161193847656E-8 -0.016976237297058105)(1.6614800415482023E-6 -0.09475644677877426 1.1728847937320097E-7 -0.9955005049705505)(0.999999463558197 0.9999995231628418 0.9999988079071045 0.0)
(0.005000650882720947 -5.587935447692871E-7 8.195638656616211E-8 0.11868458986282349)(5.5879368687783426E-8 -8.195640788244418E-8 4.656613761255812E-9 1.0)(0.9999998211860657 0.9999999403953552 0.9999998211860657 0.0)
(0.19473588466644287 -4.246830940246582E-7 7.450580596923828E-8 0.10264760255813599)(-6.515683489851654E-4 -1.4901164746561335E-8 9.196812555956058E-8 0.9999998211860657)(1.0 1.000000238418579 0.9999998211860657 0.0)
(0.005000412464141846 -5.066394805908203E-7 7.450580596923828E-8 0.11868464946746826)(-3.2591455965302885E-4 -1.4901164746561335E-8 4.982576840006914E-8 0.9999999403953552)(0.9999996423721313 0.9999994039535522 0.9999992847442627 0.0)
(0.42329829931259155 -3.203749656677246E-7 5.9604644775390625E-8 0.08332878351211548)(3.787137003996577E-8 0.08465758711099625 1.2449393693714228E-7 -0.996410071849823)(1.000000238418579 1.0 1.000000238418579 0.0)
(0.11036861687898636 -3.0547380447387695E-7 3.807246685028076E-5 -0.03433758020401001)(-2.98023280720372E-7 -0.7054906487464905 -2.1587771570352743E-8 0.7087191939353943)(1.0000005960464478 1.000000238418579 1.0000004768371582 0.0)
(0.11032214760780334 -2.5331974029541016E-7 0.13474291563034058 -0.03433758020401001)(-2.980233304583635E-8 0.7072291374206543 -3.918832192084665E-8 -0.7069844007492065)(0.9999998807907104 0.9999998807907104 1.0 0.0)
(0.44383734464645386 3.5762786865234375E-7 0.0049771517515182495 -0.016971945762634277)(5.625189487545867E-7 -0.04743184521794319 1.6763809895792292E-8 -0.9988744854927063)(1.000000238418579 0.9999989867210388 0.9999999403953552 0.0)
(0.44336366653442383 3.5762786865234375E-7 -3.557652235031128E-7 -0.016976237297058105)(-1.583248945280502E-7 0.047431580722332 -1.9962324415701005E-7 0.9988744854927063)(0.9999995231628418 0.9999995231628418 0.9999997019767761 0.0)
(-1.7881393432617188E-7 0.0 1.862645149230957E-8 -0.02139604091644287)(3.9329761420958675E-6 -9.313227966600834E-10 -2.478373630765418E-7 -0.9999999403953552)(0.9999997615814209 0.9999993443489075 0.9999988675117493 0.0)
(0.004999876022338867 -1.4901161193847656E-8 5.587935447692871E-9 -0.021346211433410645)(-6.89333479385823E-4 6.612391700855369E-8 -1.0350779433565549E-7 0.9999997615814209)(1.000000238418579 0.9999999403953552 0.9999994039535522 0.0)
(0.2289811372756958 2.0116567611694336E-7 -4.0978193283081055E-8 -0.01911342144012451)(-3.4494567080400884E-4 5.401672353855247E-8 -1.0858641985578288E-7 0.9999999403953552)(1.0000005960464478 0.9999997019767761 0.9999999403953552 0.0)
(0.03525662422180176 -0.18499965965747833 0.005852219648659229 -3.2186508178710938E-6)(0.24782225489616394 -0.6469369530677795 0.6817261576652527 0.23517277836799622)(0.9999996423721313 0.9999999403953552 1.0 0.0)
(0.0 5.960464477539062E-7 0.0 -0.9699976444244385)(0.0 0.7071061730384827 0.0 0.7071073055267334)(0.9999998211860657 0.9999999403953552 0.9999998211860657 0.0)
(0.0 0.0 0.0 -1.9399993419647217)(0.0 8.940698847936801E-8 0.0 1.0)(0.9999998807907104 0.9999998807907104 0.9999998807907104 0.0)
(1.4781122445128858E-5 0.09297889471054077 1.1921142117898853E-7 -2.032978057861328)(0.5008527040481567 0.5004714131355286 0.49914610385894775 0.4995279908180237)(0.9999998807907104 0.9999997019767761 0.9999997615814209 0.0)
(0.08824312686920166 -2.384153958701063E-7 -6.734335329383612E-5 0.09506207704544067)(0.0012430419446900487 -1.6616193533991463E-5 -3.969018052885076E-6 0.9999991655349731)(1.0000003576278687 1.0000001192092896 1.0000003576278687 0.0)
(0.08824539184570312 1.2678037819569E-7 -1.7670518718659878E-4 0.0030153989791870117)(-0.0025665792636573315 -0.007100915536284447 2.2918244212633E-5 0.9999714493751526)(0.999999463558197 1.0 0.9999995231628418 0.0)
(-0.0198361873626709 -2.8836686396971345E-4 -0.15860965847969055 -0.0238226056098938)(0.003198340767994523 0.0058908844366669655 0.47714802622795105 0.8787973523139954)(1.0000001192092896 0.9999996423721313 0.9999998211860657 0.0)
(-0.019836068153381348 0.09706246107816696 -0.1586097925901413 -0.024552524089813232)(-0.7070885300636292 -0.7070885896682739 0.005075222812592983 0.0050757816061377525)(1.0 1.0 1.000000238418579 0.0)
(-0.0198361873626709 -0.09706015884876251 -0.1586095243692398 -0.023096978664398193)(-0.7070885300636292 -0.7070885896682739 0.005075222812592983 0.0050757816061377525)(1.0 1.0 1.000000238418579 0.0)
(0.22450745105743408 -1.5800912933627842E-7 -0.03411300852894783 -0.025649964809417725)(7.398753950838E-5 3.986101073678583E-4 1.5451513172592968E-4 0.9999998807907104)(1.0000001192092896 1.0 0.9999999403953552 0.0)
(0.15122711658477783 0.021774835884571075 -0.03602876514196396 -0.025263845920562744)(-0.7071065902709961 -0.7071067690849304 2.821679809130728E-4 2.809754223562777E-4)(1.000000238418579 0.9999998211860657 1.0 0.0)
(0.1517028659582138 0.004615187644958496 -2.354457974433899E-4 -0.01840841770172119)(-0.022500373423099518 0.007598421070724726 -0.19506095349788666 0.980503499507904)(0.9999997615814209 0.9999998807907104 1.0000001192092896 0.0)
(0.1497916728258133 1.1920928955078125E-7 -3.725290298461914E-9 -0.01843559741973877)(0.010970291681587696 -0.007931319065392017 -0.382723867893219 0.923763632774353)(1.000000238418579 1.0000001192092896 0.9999998807907104 0.0)
(0.2823597192764282 3.5762786865234375E-7 0.0049918703734874725 0.10059946775436401)(-6.007032027355308E-8 0.028380651026964188 -1.1920931797249068E-7 0.9995971918106079)(0.9999993443489075 0.9999988675117493 0.9999999403953552 0.0)
(0.28207600116729736 5.960464477539062E-7 -1.1175870895385742E-8 0.09707248210906982)(-5.308540096393699E-8 0.05673839896917343 -5.960465898624534E-8 0.9983890056610107)(0.9999995827674866 0.9999996423721313 1.0 0.0)
(0.10107529163360596 -4.76837158203125E-7 -1.4901161193847656E-8 -0.2206215262413025)(0.040611632168293 -2.2351748896198842E-8 -1.192093321833454E-7 0.9991750121116638)(0.9999995827674866 0.9999998807907104 1.000000238418579 0.0)
(0.005000472068786621 -1.1920928955078125E-7 9.685754776000977E-8 -0.21599024534225464)(0.020393889397382736 -1.1175874448099421E-8 -1.192093321833454E-7 0.9997919797897339)(0.9999997019767761 0.9999998807907104 1.0 0.0)
(0.23172274231910706 -1.1920928955078125E-7 4.470348358154297E-8 -0.2269192934036255)(0.706383466720581 -0.03198031708598137 0.031980182975530624 0.7063829302787781)(0.9999997615814209 0.9999996423721313 0.9999998211860657 0.0)
(0.018261641263961792 -0.019700229167938232 0.002788543701171875 -0.21448227763175964)(-0.6146956086158752 0.07776301354169846 -0.2999844253063202 0.7253355383872986)(1.0000001192092896 1.0000001192092896 1.0 0.0)
(0.05320483446121216 1.7881393432617188E-7 -5.9604644775390625E-8 -1.0618152618408203)(4.470350489782504E-8 1.4901168299275014E-8 -5.960467319710006E-8 1.0)(1.0 0.9999998807907104 0.9999998807907104 0.0)
(0.03606909513473511 5.9604644775390625E-8 2.9802322387695312E-8 -0.979928195476532)(-2.980233304583635E-8 0.013146941550076008 5.96046660916727E-8 0.9999135136604309)(0.9999999403953552 0.9999997615814209 1.0 0.0)
(0.10058736801147461 -0.0345129519701004 -0.00377655029296875 -0.2922293543815613)(0.02760077826678753 1.2290483573451638E-4 9.633605077397078E-5 0.9996190667152405)(0.9999998211860657 1.000000238418579 1.0000001192092896 0.0)
(0.044240087270736694 -8.940696716308594E-8 0.0 -0.4000392556190491)(5.96046660916727E-8 0.0 -1.4901166522918174E-8 1.0)(0.9999997615814209 0.9999998211860657 0.9999998211860657 0.0)
(0.03024597465991974 2.9802322387695312E-8 2.384185791015625E-7 -0.43798696994781494)(0.0 0.0 1.4901166522918174E-8 1.0)(0.9999999403953552 1.0 0.9999998807907104 0.0)
(0.10080927610397339 -0.010271385312080383 -0.004487276077270508 -0.2841809391975403)(0.027600867673754692 1.2390321353450418E-4 9.681288793217391E-5 0.9996190667152405)(0.9999995827674866 1.0000001192092896 0.9999997019767761 0.0)
(0.04669712483882904 -8.940696716308594E-8 1.1920928955078125E-7 -0.3889474868774414)(0.0 -1.4901166522918174E-8 -2.980233304583635E-8 0.9999999403953552)(1.0 1.0 0.9999998211860657 0.0)
(0.031089022755622864 0.0 -1.1920928955078125E-7 -0.42975372076034546)(-2.980233659855003E-8 0.0 1.4901168299275014E-8 1.0)(1.0 0.9999999403953552 1.0 0.0)
(0.097603440284729 0.013259053230285645 -0.0025795698165893555 -0.27253928780555725)(0.027601340785622597 1.2364987924229354E-4 9.663406672189012E-5 0.9996190071105957)(1.0000003576278687 1.0 1.0000005960464478 0.0)
(0.04489700496196747 -2.9802322387695312E-8 0.0 -0.36790913343429565)(-2.980233304583635E-8 0.0 -1.4901166522918174E-8 1.0)(0.9999999403953552 0.9999999403953552 1.0 0.0)
(0.03146611154079437 0.0 0.0 -0.40874916315078735)(-2.980233304583635E-8 0.0 2.980233304583635E-8 1.0)(0.9999995827674866 0.9999997019767761 0.9999995231628418 0.0)
(0.09500029683113098 0.03574499487876892 -5.257129669189453E-5 -0.26156097650527954)(0.027510059997439384 1.266003237105906E-4 2.1457681214087643E-6 0.999621570110321)(1.0000001192092896 1.0 1.0 0.0)
(0.039303138852119446 2.9802322387695312E-8 0.0 -0.34494131803512573)(5.96046660916727E-8 -1.6391282997574308E-7 -1.4901166522918174E-8 0.9999999403953552)(0.9999998211860657 0.9999998211860657 0.9999997615814209 0.0)
(0.019024088978767395 0.0 1.1920928955078125E-7 -0.3724498748779297)(-2.980233659855003E-8 0.0 -1.4901168299275014E-8 0.9999999403953552)(1.0000003576278687 1.0 0.9999999403953552 0.0)
(0.0899820625782013 0.001641497015953064 0.012756586074829102 -0.26473286747932434)(-6.556513199029723E-7 -0.13052663207054138 2.0861632776814076E-7 0.9914448261260986)(1.0000003576278687 0.9999990463256836 0.9999997615814209 0.0)
(0.0899820625782013 0.001641497015953064 0.012756586074829102 -0.26473286747932434)(-1.0 -2.384186927884002E-7 -2.384186927884002E-7 -9.536747711536009E-7)(0.9999998807907104 0.9999998807907104 0.9999999403953552 0.0)
(0.005000114440917969 5.960464477539062E-7 -3.3527612686157227E-8 0.09933030605316162)(-0.059619080275297165 -1.0244550985305523E-8 2.0861631355728605E-7 0.9982211589813232)(0.9999992847442627 0.9999994039535522 1.0000001192092896 0.0)
(0.13166868686676025 5.960464477539062E-7 -5.21540641784668E-8 0.0982980728149414)(-0.029822934418916702 0.0 -2.980232949312267E-8 0.9995551705360413)(0.9999992847442627 0.9999998807907104 0.9999997615814209 0.0)
(0.13633787631988525 0.020000051707029343 0.07568766176700592 -0.025132596492767334)(-0.6774513721466064 -0.7202507853507996 0.10649914294481277 -0.10467228293418884)(1.0015506744384766 0.9999998807907104 1.0000001192092896 0.0)
(0.06180167198181152 0.0798998698592186 0.06078160181641579 -0.02502363920211792)(-0.7070889472961426 -0.7070890069007874 0.0050207702443003654 0.005022003315389156)(1.000000238418579 0.9999999403953552 1.0000001192092896 0.0)
(0.22450745105743408 -1.5800912933627842E-7 -0.03411300852894783 -0.025649964809417725)(-3.469410330581013E-6 2.773013534351776E-7 6.994621071498841E-5 1.0)(1.0000003576278687 0.9999997615814209 1.0 0.0)
(0.06800031661987305 1.15914735943079E-5 -5.4176896810531616E-5 -5.224943161010742E-4)(3.9931042010721285E-6 0.007499575614929199 -6.986159132793546E-5 0.999971866607666)(0.9999995231628418 1.0 0.9999998211860657 0.0)
(0.15122711658477783 -0.021775124594569206 -0.036028649657964706 -0.024937331676483154)(-0.7071067690849304 0.7071066498756409 2.8026843210682273E-4 -2.828749711625278E-4)(1.0 0.9999995827674866 1.0 0.0)
(0.1517029106616974 -0.004614114761352539 -2.3495405912399292E-4 0.020531415939331055)(0.02250034548342228 0.007598401978611946 0.19506101310253143 0.9805035591125488)(0.9999995827674866 0.9999995827674866 1.0000004768371582 0.0)
(0.14979174733161926 -1.1920928955078125E-7 -1.862645149230957E-8 0.020531415939331055)(-0.010970259085297585 -0.007931292988359928 0.382724404335022 0.9237634539604187)(0.9999997615814209 0.9999997615814209 1.0000001192092896 0.0)
(0.2823590040206909 -2.384185791015625E-7 0.004992775619029999 0.04150569438934326)(-8.10250853078287E-8 0.028380470350384712 -1.7881397695873602E-7 0.9995971918106079)(1.0000007152557373 1.0000005960464478 1.0000005960464478 0.0)
(0.2820759415626526 -2.384185791015625E-7 1.6763806343078613E-8 0.03797346353530884)(3.864989039925604E-8 0.05673839524388313 -4.1723257027115324E-7 0.9983890056610107)(1.0000001192092896 1.0 0.9999997019767761 0.0)
(0.10114264488220215 -1.1920928955078125E-7 1.3187527656555176E-6 0.00645291805267334)(-0.04044368490576744 3.166497464235363E-8 0.0 0.9991818070411682)(1.0000007152557373 1.0000007152557373 1.000000238418579 0.0)
(0.005000054836273193 -2.384185791015625E-7 1.1064112186431885E-6 0.009520351886749268)(-0.02022607810795307 -1.9557779395995567E-8 2.980232949312267E-8 0.9997953772544861)(1.0000009536743164 1.000000238418579 1.0000005960464478 0.0)
(0.231722891330719 -1.1920928955078125E-7 2.9802322387695312E-8 0.002285599708557129)(0.7063834071159363 0.03198035806417465 0.03198026865720749 -0.7063829898834229)(1.0000001192092896 0.9999999403953552 0.9999999403953552 0.0)
(0.018261224031448364 0.01970021426677704 0.0027886629104614258 -0.9029252529144287)(0.6146954894065857 0.07776302099227905 0.29998457431793213 0.7253355383872986)(0.9999997615814209 0.9999999403953552 0.9999997615814209 0.0)
(0.053204894065856934 -1.7881393432617188E-7 2.9802322387695312E-8 0.21487027406692505)(-5.215407838932151E-8 2.2351747119842003E-8 -8.940698847936801E-8 0.9999999403953552)(1.0000001192092896 0.9999998211860657 1.0000001192092896 0.0)
(0.03606909513473511 1.1920928955078125E-7 -5.9604644775390625E-8 0.14948266744613647)(1.4901164746561335E-8 0.013146894983947277 1.1920931797249068E-7 0.9999135136604309)(1.0000001192092896 1.0000001192092896 0.9999998807907104 0.0)
(0.1005869209766388 0.03451305627822876 -0.0037763118743896484 -0.8984594345092773)(-0.027600953355431557 1.2290482118260115E-4 -9.629134001443163E-5 0.9996190667152405)(0.9999993443489075 1.000000238418579 0.9999995827674866 0.0)
(0.04424005746841431 5.9604644775390625E-8 -2.384185791015625E-7 -0.22814559936523438)(-2.980232594040899E-8 0.0 1.4901162970204496E-8 0.9999999403953552)(0.9999999403953552 0.9999999403953552 1.0 0.0)
(0.03024590015411377 -7.450580596923828E-8 0.0 -0.05336880683898926)(-5.96046660916727E-8 0.0 2.980233304583635E-8 1.0)(0.9999997019767761 0.9999997615814209 0.9999997615814209 0.0)
(0.1008090078830719 0.010271534323692322 -0.004487156867980957 -0.8900254964828491)(-0.027600975707173347 1.238584954990074E-4 -9.682778181741014E-5 0.9996190071105957)(0.9999993443489075 1.0000003576278687 0.9999995231628418 0.0)
(0.04669696092605591 -8.940696716308594E-8 -2.384185791015625E-7 -0.2253413200378418)(-2.2351747119842003E-8 1.1920931797249068E-7 4.4703494239684005E-8 0.9999999403953552)(0.9999998807907104 0.9999999403953552 0.9999999403953552 0.0)
(0.031088978052139282 2.086162567138672E-7 3.5762786865234375E-7 -0.052474141120910645)(5.960467319710006E-8 -1.043081780949251E-7 -2.980233659855003E-8 1.0)(0.9999998807907104 0.9999998211860657 0.9999998807907104 0.0)
(0.09760302305221558 -0.01325899362564087 -0.002579212188720703 -0.8814303874969482)(-0.02760154753923416 1.236498646903783E-4 -9.652974404161796E-5 0.9996189475059509)(1.0000001192092896 1.0 1.000000238418579 0.0)
(0.04489696025848389 1.4901161193847656E-8 -1.1920928955078125E-7 -0.22307193279266357)(9.685756907629184E-8 1.4901164746561335E-8 -2.980232949312267E-8 0.9999999403953552)(0.9999999403953552 0.9999999403953552 0.9999999403953552 0.0)
(0.031465888023376465 7.450580596923828E-8 0.0 -0.0518721342086792)(7.450584149637507E-9 0.0 0.0 1.0)(0.9999998211860657 0.9999998807907104 0.9999999403953552 0.0)
(0.09500008821487427 -0.03574506938457489 -5.221366882324219E-5 -0.8729028701782227)(-0.027510175481438637 1.2660030915867537E-4 -2.130866732841241E-6 0.999621570110321)(0.9999999403953552 1.000000238418579 0.9999998211860657 0.0)
(0.039302945137023926 -5.9604644775390625E-8 0.0 -0.22158098220825195)(0.0 2.980232949312267E-8 0.0 0.9999999403953552)(0.9999998807907104 0.9999998807907104 1.0000001192092896 0.0)
(0.01902410387992859 4.470348358154297E-8 0.0 -0.0534520149230957)(5.297364623402245E-6 -2.4288901840918697E-6 2.950431053250213E-6 0.9999999403953552)(1.0000001192092896 0.9999999403953552 0.9999997019767761 0.0)
(0.08998164534568787 -0.0016420930624008179 0.012753963470458984 -0.8813233375549316)(1.4901166878189542E-7 -0.1305263340473175 -1.0430816388407038E-7 0.9914448857307434)(1.0 0.9999999403953552 0.9999998807907104 0.0)
(0.08998188376426697 -0.0016420632600784302 0.012754082679748535 -0.8813232183456421)(1.713633963618122E-7 -1.7881397695873602E-7 -1.6391281576488836E-7 0.9999999403953552)(0.9999999403953552 0.9999999403953552 0.9999997615814209 0.0)
(0.004999935626983643 -3.5762786865234375E-7 7.599592208862305E-7 0.035716116428375244)(0.059619270265102386 -7.078052277620372E-8 0.0 0.9982211589813232)(0.9999997615814209 0.9999998807907104 1.0 0.0)
(0.13199996948242188 -3.5762786865234375E-7 1.1175870895385742E-8 0.03675049543380737)(0.029822908341884613 -3.2596297216969106E-8 2.980232949312267E-8 0.999555230140686)(1.0000001192092896 1.0000003576278687 1.0 0.0)
(0.1363372802734375 -0.02000001259148121 0.0756877064704895 -0.02483266592025757)(0.10320363938808441 0.10845133662223816 -0.7122749090194702 0.6857490539550781)(1.0015547275543213 1.0000003576278687 0.9999998807907104 0.0)
(0.061802029609680176 -0.0798998773097992 0.060781802982091904 -0.023825466632843018)(-0.7070889472961426 -0.7070890069007874 0.0050207702443003654 0.005022003315389156)(1.000000238418579 0.9999999403953552 1.0000001192092896 0.0)
(0.23924338817596436 1.0543494681769516E-6 -3.090009558945894E-4 0.003342926502227783)(-0.0024852673523128033 4.043487206217833E-5 4.730349701276282E-6 0.9999968409538269)(0.9999996423721313 1.0 0.9999998807907104 0.0)
(0.23924338817596436 1.054348103934899E-6 -3.0900142155587673E-4 0.003342926502227783)(-0.0024956935085356236 7.048349652905017E-5 4.5977512854733504E-6 0.9999968409538269)(0.9999991655349731 0.9999996423721313 0.9999997019767761 0.0)</hkparam>
            <hkparam name="referenceFloats" numelements="0"/>
            <hkparam name="floatSlots" numelements="0"/>
            <hkparam name="localFrames" numelements="0"/>
            <hkparam name="partitions" numelements="0"/>
        </hkobject>
    </hksection>
</hkpackfile>
JohnHudeski
mega-veteran
mega-veteran
Posts: 177
Joined: Wed Mar 02, 2011 10:38 pm
Has thanked: 10 times
Been thanked: 58 times

Re: Havok binary files

Post by JohnHudeski »

IS anyone still working on this?
And would anyone know where i can still download the Havok animation to or creation tools?
User avatar
shakotay2
MEGAVETERAN
MEGAVETERAN
Posts: 4283
Joined: Fri Apr 20, 2012 9:24 am
Location: Nexus, searching for Jim Kirk
Has thanked: 1146 times
Been thanked: 2242 times

Re: Havok binary files

Post by shakotay2 »

not really, but here's the skeleton (as .smd) from the DarkSouls3 hkx the HunterAP uploaded:

Code: Select all

# DarkSouls3.HKX
version 1
nodes
0 "Master" -1
1 "L_Foot_Target2" 0
2 "L_Foot_Target1" 1
3 "L_Foot_Target" 2
4 "R_Foot_Target2" 0
5 "R_Foot_Target1" 4
6 "R_Foot_Target" 5
7 "RootPos" 0
8 "Pelvis" 7
9 "L_Hip" 8
10 "L_Thigh" 8
11 "L_Calf" 10
12 "L_Calf_Skirt" 11
13 "L_CalfTwist" 11
14 "L_CalfTwist1" 11
15 "L_Foot" 11
16 "L_FootTwist" 15
17 "L_Toe0" 15
18 "L_Knee" 10
19 "L_Knee_Skirt" 10
20 "L_Thigh_Skirt" 10
21 "L_ThighTwist" 10
22 "L_ThighTwist1" 10
23 "L_Wepon_Case" 8
24 "R_Hip" 8
25 "R_Thigh" 8
26 "R_Calf" 25
27 "R_Calf_Skirt" 26
28 "R_CalfTwist" 26
29 "R_CalfTwist1" 26
30 "R_Foot" 26
31 "R_FootTwist" 30
32 "R_Toe0" 30
33 "R_Knee" 25
34 "R_Knee_Skirt" 25
35 "R_Thigh_Skirt" 25
36 "R_ThighTwist" 25
37 "R_ThighTwist1" 25
38 "R_Wepon_Case" 8
39 "RootRotY" 7
40 "RootRotXZ" 39
41 "Spine" 40
42 "Spine1" 41
43 "Spine2" 42
44 "B_Wepon_Case" 43
45 "B_Wepon_Case0_L" 43
46 "B_Wepon_Case0_R" 43
47 "Collar" 43
48 "L_Clavicle" 43
49 "L_Shoulder" 48
50 "L_UpperArm" 48
51 "L_Elbow" 50
52 "L_Forearm" 50
53 "L_ForeArmTwist" 52
54 "L_ForeArmTwist1" 52
55 "L_Hand" 52
56 "L_Finger0" 55
57 "L_Finger01" 56
58 "L_Finger02" 57
59 "L_Finger1" 55
60 "L_Finger11" 59
61 "L_Finger12" 60
62 "L_Finger2" 55
63 "L_Finger21" 62
64 "L_Finger22" 63
65 "L_Finger3" 55
66 "L_Finger31" 65
67 "L_Finger32" 66
68 "L_Finger4" 55
69 "L_Finger41" 68
70 "L_Finger42" 69
71 "L_Shield" 55
72 "L_Weapon" 55
73 "L_UpArmTwist" 50
74 "L_UpArmTwist1" 50
75 "L_Pectoral" 43
76 "L_Po" 43
77 "Neck" 43
78 "Head" 77
79 "R_Clavicle" 43
80 "R_Shoulder" 79
81 "R_UpperArm" 79
82 "R_Elbow" 81
83 "R_Forearm" 81
84 "R_ForeArmTwist" 83
85 "R_ForeArmTwist1" 83
86 "R_Hand" 83
87 "R_Finger0" 86
88 "R_Finger01" 87
89 "R_Finger02" 88
90 "R_Finger1" 86
91 "R_Finger11" 90
92 "R_Finger12" 91
93 "R_Finger2" 86
94 "R_Finger21" 93
95 "R_Finger22" 94
96 "R_Finger3" 86
97 "R_Finger31" 96
98 "R_Finger32" 97
99 "R_Finger4" 86
100 "R_Finger41" 99
101 "R_Finger42" 100
102 "R_Shield" 86
103 "R_Weapon" 86
104 "R_UpArmTwist" 81
105 "R_UpArmTwist1" 81
106 "R_Pectoral" 43
107 "R_Po" 43
108 "SpineArmor1" 42
109 "SpineArmor2" 42
end
skeleton
time 0
0 0.000000 0.000000 0.000000 0.000000 1.570308 0.000000
1 -0.062719 0.976180 0.103349 -1.570302 0.000000 -1.570798
2 0.443363 0.000000 0.000001 -0.000000 -0.000002 0.000000
3 0.423298 -0.000000 -0.000001 -0.000494 0.000346 -0.000000
4 -0.062720 0.976180 -0.103349 -1.574862 0.000001 -1.570789
5 0.443363 0.000001 0.000007 -0.000000 -0.000008 -0.000000
6 0.423298 -0.000001 -0.000017 0.004066 0.000362 0.000001
7 0.000000 0.970000 0.000000 0.000000 -1.570308 0.000000
8 0.000000 0.000001 0.000000 3.141588 0.000000 1.570798
9 -0.000000 0.103349 -0.005000 0.000408 -0.009967 -3.141589
10 -0.000000 0.103349 0.000000 -0.000004 -0.019934 -3.141590
11 0.443364 -0.000000 0.000000 0.000001 0.189795 -0.000001
12 0.005001 -0.000001 0.000000 0.000000 0.000000 0.000000
13 0.194732 -0.000000 0.000000 0.001304 0.000000 -0.000000
14 0.005001 -0.000000 0.000000 0.000652 -0.000000 0.000000
15 0.423298 -0.000000 0.000000 -0.000000 -0.169515 0.000000
16 0.110369 -0.000001 0.000037 -0.000593 -1.566216 0.000592
17 0.110322 -0.000000 0.134743 -3.141570 -1.570308 3.141569
18 0.443837 -0.000000 0.004978 0.000002 0.094897 -0.000001
19 0.443363 -0.000000 0.000000 0.000001 0.094897 -0.000001
20 -0.000000 -0.000000 0.000000 -0.000002 0.000000 -0.000000
21 0.005000 -0.000000 -0.000000 0.001376 -0.000000 -0.000000
22 0.229000 -0.000000 0.000000 0.000687 -0.000000 -0.000001
23 0.035256 0.185465 0.005854 -1.623162 -0.697335 -3.141588
24 -0.000102 -0.103345 -0.005000 -0.000415 -0.009967 3.141592
25 0.000000 -0.103349 -0.000000 0.000000 -0.019934 -3.141591
26 0.443363 0.000000 0.000000 -0.000003 0.189798 -0.000001
27 0.005001 -0.000001 0.000000 0.000000 -0.000000 0.000000
28 0.194736 -0.000000 0.000000 -0.001303 -0.000000 0.000000
29 0.005000 -0.000001 0.000000 -0.000652 -0.000000 0.000000
30 0.423298 -0.000000 0.000000 -0.000000 -0.169518 -0.000000
31 0.110369 -0.000000 0.000038 -0.000086 -1.566216 0.000085
32 0.110322 -0.000000 0.134743 -3.141554 -1.570451 3.141554
33 0.443837 0.000000 0.004977 -0.000001 0.094899 -0.000000
34 0.443364 0.000000 -0.000000 -0.000000 0.094899 -0.000000
35 -0.000000 0.000000 0.000000 -0.000008 0.000000 0.000000
36 0.005000 -0.000000 0.000000 -0.001379 0.000000 -0.000000
37 0.228981 0.000000 -0.000000 -0.000690 0.000000 -0.000000
38 0.035257 -0.185000 0.005852 -1.518443 -0.697336 -3.141587
39 0.000000 0.000001 0.000000 0.000000 1.570308 0.000000
40 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
41 0.000015 0.092979 0.000000 1.573446 0.000002 1.570033
42 0.088243 -0.000000 -0.000067 0.002486 -0.000033 -0.000008
43 0.088245 0.000000 -0.000177 -0.005134 -0.014202 0.000082
44 -0.019836 -0.000288 -0.158610 0.011244 0.007302 0.994879
45 -0.019836 0.097062 -0.158610 -3.127237 -0.000001 1.570796
46 -0.019836 -0.097060 -0.158610 -3.127237 -0.000001 1.570796
47 0.224507 -0.000000 -0.034113 0.000148 0.000797 0.000309
48 0.151227 0.021775 -0.036029 -3.140796 0.000002 1.570797
49 0.151703 0.004615 -0.000235 -0.047106 0.006123 -0.392896
50 0.149792 0.000000 -0.000000 0.026342 -0.006256 -0.785644
51 0.282360 0.000000 0.004992 -0.000000 0.056769 -0.000000
52 0.282076 0.000001 -0.000000 -0.000000 0.113538 -0.000000
53 0.101075 -0.000000 -0.000000 0.081246 -0.000000 -0.000000
54 0.005000 -0.000000 0.000000 0.040791 -0.000000 -0.000000
55 0.231723 -0.000000 0.000000 1.570797 -0.090485 -0.000000
56 0.018262 -0.019700 0.002789 -1.328216 -0.258871 -0.581257
57 0.053205 0.000000 -0.000000 0.000000 0.000000 -0.000000
58 0.036069 0.000000 0.000000 -0.000000 0.026295 0.000000
59 0.100587 -0.034513 -0.003777 0.055209 0.000240 0.000199
60 0.044240 -0.000000 0.000000 0.000000 0.000000 -0.000000
61 0.030246 0.000000 0.000000 0.000000 -0.000000 0.000000
62 0.100809 -0.010271 -0.004487 0.055209 0.000242 0.000200
63 0.046697 -0.000000 0.000000 0.000000 -0.000000 -0.000000
64 0.031089 0.000000 -0.000000 -0.000000 0.000000 0.000000
65 0.097603 0.013259 -0.002580 0.055210 0.000242 0.000200
66 0.044897 -0.000000 0.000000 -0.000000 -0.000000 -0.000000
67 0.031466 0.000000 0.000000 -0.000000 0.000000 0.000000
68 0.095000 0.035745 -0.000053 0.055027 0.000253 0.000011
69 0.039303 0.000000 0.000000 0.000000 -0.000000 -0.000000
70 0.019024 0.000000 0.000000 -0.000000 -0.000000 -0.000000
71 0.089982 0.001641 0.012757 -0.000001 -0.261800 0.000001
72 0.089982 0.001641 0.012757 3.141591 -0.000000 0.000000
73 0.005000 0.000001 -0.000000 -0.119309 0.000000 0.000000
74 0.131669 0.000001 -0.000000 -0.059655 -0.000000 -0.000000
75 0.136338 0.020000 0.075688 -3.129461 0.299536 1.633850
76 0.061802 0.079900 0.060782 -3.127390 -0.000002 1.570796
77 0.224507 -0.000000 -0.034113 -0.000007 0.000001 0.000140
78 0.068000 0.000012 -0.000054 0.000007 0.014999 -0.000140
79 0.151227 -0.021775 -0.036029 3.140796 -0.000004 -1.570796
80 0.151703 -0.004614 -0.000235 0.047106 0.006123 0.392896
81 0.149792 -0.000000 -0.000000 -0.026342 -0.006256 0.785645
82 0.282359 -0.000000 0.004993 -0.000000 0.056769 -0.000000
83 0.282076 -0.000000 0.000000 0.000000 0.113538 -0.000001
84 0.101143 -0.000000 0.000001 -0.080909 0.000000 -0.000000
85 0.005000 -0.000000 0.000001 -0.040455 -0.000000 0.000000
86 0.231723 -0.000000 0.000000 -1.570797 -0.090485 0.000000
87 0.018261 0.019700 0.002789 1.328216 -0.258871 0.581258
88 0.053205 -0.000000 0.000000 -0.000000 0.000000 -0.000000
89 0.036069 0.000000 -0.000000 0.000000 0.026295 0.000000
90 0.100587 0.034513 -0.003776 -0.055209 0.000240 -0.000199
91 0.044240 0.000000 -0.000000 -0.000000 0.000000 0.000000
92 0.030246 -0.000000 0.000000 -0.000000 0.000000 0.000000
93 0.100809 0.010272 -0.004487 -0.055209 0.000242 -0.000200
94 0.046697 -0.000000 -0.000000 -0.000000 0.000000 0.000000
95 0.031089 0.000000 0.000000 0.000000 -0.000000 -0.000000
96 0.097603 -0.013259 -0.002579 -0.055210 0.000242 -0.000200
97 0.044897 0.000000 -0.000000 0.000000 0.000000 -0.000000
98 0.031466 0.000000 0.000000 0.000000 -0.000000 0.000000
99 0.095000 -0.035745 -0.000052 -0.055027 0.000253 -0.000011
100 0.039303 -0.000000 0.000000 0.000000 0.000000 0.000000
101 0.019024 0.000000 0.000000 0.000011 -0.000005 0.000006
102 0.089982 -0.001642 0.012754 0.000000 -0.261800 -0.000000
103 0.089982 -0.001642 0.012754 0.000000 -0.000000 -0.000000
104 0.005000 -0.000000 0.000001 0.119309 -0.000000 -0.000000
105 0.132000 -0.000000 0.000000 0.059655 -0.000000 0.000000
106 0.136337 -0.020000 0.075688 -0.013558 0.300251 -1.610790
107 0.061802 -0.079900 0.060782 -3.127390 -0.000002 1.570796
108 0.239243 0.000001 -0.000309 -0.004971 0.000081 0.000009
109 0.239243 0.000001 -0.000309 -0.004991 0.000141 0.000009
end
DarkSouls3_skel.jpg
You do not have the required permissions to view the files attached to this post.
Tuts: a) Bigchillghost, viewtopic.php?f=29&t=17889
b) Extracting simple models: http://forum.xentax.com/viewtopic.php?f=29&t=10894
"Quoting the whole thing. Would u ever stop this nonsense?"
dibe91
mega-veteran
mega-veteran
Posts: 223
Joined: Tue Jul 29, 2014 9:06 am
Has thanked: 3 times
Been thanked: 14 times

Re: Havok binary files

Post by dibe91 »

you can help me? with bloodborne the skeleton of monsters has problems when I try to convert it on sfm alchune bones are strangely related. and then there is the problem of the physics of cloaks, hairs etc..i as an editor use 3d studio max would it be possible to create a script?
User avatar
shakotay2
MEGAVETERAN
MEGAVETERAN
Posts: 4283
Joined: Fri Apr 20, 2012 9:24 am
Location: Nexus, searching for Jim Kirk
Has thanked: 1146 times
Been thanked: 2242 times

Re: Havok binary files

Post by shakotay2 »

dibe91 wrote:as an editor use 3d studio max would it be possible to create a script?
I don't have access to 3dsmax since about a year now; so sorry, no.

Also this thread is about hkx files, Havok tools and a C# source from volfin.

Noone did care for a maxscript so far, iirc.
(All I know is that you could use Havok Content Tools with 3dsmax.)

You might upload your bloodborne monster skeleton hkx, though, if any.
Tuts: a) Bigchillghost, viewtopic.php?f=29&t=17889
b) Extracting simple models: http://forum.xentax.com/viewtopic.php?f=29&t=10894
"Quoting the whole thing. Would u ever stop this nonsense?"
dibe91
mega-veteran
mega-veteran
Posts: 223
Joined: Tue Jul 29, 2014 9:06 am
Has thanked: 3 times
Been thanked: 14 times

Re: Havok binary files

Post by dibe91 »

so if I understand correctly you want the original skeleton. perfect I can do it but I give you all the skeletons of the monsters because it happens to everyone.
JohnHudeski
mega-veteran
mega-veteran
Posts: 177
Joined: Wed Mar 02, 2011 10:38 pm
Has thanked: 10 times
Been thanked: 58 times

Re: Havok binary files

Post by JohnHudeski »

I need to ask what is the difference between file version 11 and 9 (2013.3.0-r1 and 2011.1.0-r1). It seems like extra padding in places you least expect

AssetCc can convert file type 9 but not type 11
I am trying to write a converter (required a lot of address recalculations and pad removals). I haven't completed this yet but it became obvious that some classes were larger in later representations
has anyone successfully converted a file later than 2012 to an older format?

This is what i ended up with

Code: Select all

//Cheat string
typedef struct
{
    string s<hidden=true>;
}TempStr<read=ReadTemStr, optimize=false>;
string ReadTemStr(TempStr& t)
{
    return t.s;
}

typedef struct 
{
    //ubyte[4]  LayoutRules
    ubyte uk;// no.# Flags ?  = 4
    ubyte uk1;
    ubyte Endianness; // 01 = BE 00 = LE  (Bool)
    ubyte Platform; // ?? 01 = PS3 (Couldbe wrong, or swap with one of above flag)
    
}hkHdrFlags; //Header flags

typedef struct
{
    char Magic[8]; 
	/// This is a user settable tag.
	int32 m_userTag;
		
	/// Binary file version. Currently 9 or 11
	int32 m_fileVersion;
		
	/// The structure layout rules used by this file.
	hkHdrFlags m_layoutRules;
				
	/// Number of packfilesections following this header.
	int32 m_numSections;
		
	/// Where the content's data structure is (section and offset within that section).
	int32 m_contentsSectionIndex;
	int32 m_contentsSectionOffset;

	/// Where the content's class name is (section and offset within that section).
	int32 m_contentsClassNameSectionIndex;
    /// nameSection.AbsAddr + this offset = hkRootLevelContainer
    int32 m_contentsClassNameSectionOffset; 
        
    /// Future expansion
	char m_contentsVersion[16];

    if(m_fileVersion == 9)
    {
        int32 misc;
        int pad[1];
    }
    else
    {
        int32 misc;
        short m_maxPredicates;
        short unkn;
    
        int pad[4];
    }
    
}HavokHdr<bgcolor=cLtGray>;


typedef struct(int padSz) //64
{
    ///
	char sectionHdr[19]; //m_sectionTag[19];
    ///
	char m_nullByte;
    /// Absolute file offset of where this sections data begins.
	unsigned int m_absoluteDataStart;
    /// Offset of local fixups from absoluteDataStart.
	unsigned int m_localFixupsOffset;
    /// Offset of global fixups from absoluteDataStart.
	unsigned int m_globalFixupsOffset;
    /// Offset of virtual fixups from absoluteDataStart.
	unsigned int m_virtualFixupsOffset;
    /// Offset of exports from absoluteDataStart.
	unsigned int m_exportsOffset;
    /// Offset of imports from absoluteDataStart.
	unsigned int m_importsOffset;
    /// Offset of the end of section. Also the section size.
	unsigned int m_endOffset;
    char padding[padSz];
}hkxSection <bgcolor=cLtGreen, read=readSecName>;
string readSecName(hkxSection& s)
{
    string ss = StringToWString(s.sectionHdr,CHARSET_ANSI );
    SPrintf(ss, "%s - Abs: %d, (Off: %d)", ss, s.m_absoluteDataStart, s.m_localFixupsOffset);
    return ss;
}


typedef struct 
{
    uint signature;
    char nine;
    string name;
}CLASSNAME <read=ReadClassName>;
string ReadClassName( CLASSNAME& cn)
{
    return cn.name;
}

HavokHdr header;
local int padSz = 0;
if (header.m_fileVersion == 11)
    padSz = 16;
hkxSection section(padSz)[header.m_numSections]<optimize=false>;

//Use to identify typese
local int currAdd= 0;
while(FTell() < section[1].m_absoluteDataStart-1 )
{
    CLASSNAME classNames;
}

local int objID = 0;
local string tmpName = "";

//A data position descriptor aimed at the current section
//Direct Address
//Non-empty members linker from DATA (used when the next memebr to read is a direct member)
typedef struct
{
	//The data parent, in the current section.	
	int from;	
	//The data position, in the current section.	
	int to;
} DataInternal; //DirectAddress; __Data__1

//A data position descriptor aimed at a given section.
//External Address (pointers)
//Pointer linker from DATA (used when the next memebr to read is a pointer)
typedef struct
{
	//The data parent, in the current section.
	int from;	
	//The section the data is in.
	int section;	
	//The data position, in the given section.
	int to;
} DataExternal<read=PointerAddr>; //ExternalAddress __Data__2&3
string PointerAddr(DataExternal& d2)
{
	string addr ="";  
	//if(d2.from != -1) 
    //    SPrintf( addr, "%d", section[d2.section].m_absoluteDataStart + d2.from );
    return addr;
}

typedef struct
{
    int size;
    byte content[size];
} DataDirectMember<optimize=false>;

typedef struct(int size)
{
    local int sz= size;
    byte a[size];
}DataChunk<optimize=false, read=ReadDataChunk>;
string ReadDataChunk(DataChunk& dc)
{
    string s;
    SPrintf(s, "Addr: %d, Size: %d", FTell(), dc.sz);
    return s;
}


FSeek(section[2].m_absoluteDataStart + section[2].m_localFixupsOffset);
local int data1Size = (section[2].m_globalFixupsOffset - section[2].m_localFixupsOffset);
DataInternal _data_1[data1Size/8]<bgcolor=cLtRed>; //Not objects in the type section? but what?

local int j =0;
local int add2= section[2].m_absoluteDataStart;
for( j =0; j < data1Size/8; j++)
{
    Printf("\nAddr: %d", add2 +  _data_1[j].from);
    FSeek(add2 +  _data_1[j].from);
    Printf("\t[%d]:(%d, %d)", j, _data_1[j].from, _data_1[j].to);
    DataChunk dataChunk(_data_1[j].to - _data_1[j].from)<bgcolor=0x01FF10>;
    if(ReadByte() != '\0' )
        TempStr extraName<bgcolor=0x000000, fgcolor=0xffffff>; //hack    
}


FSeek(section[2].m_absoluteDataStart + section[2].m_globalFixupsOffset);
data1Size = (section[2].m_virtualFixupsOffset - section[2].m_globalFixupsOffset);
//params array pointers
DataExternal params[ (data1Size/12)] <bgcolor=cLtPurple>;


//The actual hkobjects
FSeek(section[2].m_absoluteDataStart + section[2].m_virtualFixupsOffset);
data1Size = (section[2].m_exportsOffset - section[2].m_virtualFixupsOffset);

//How Do we map var to the nodes?
local int nodeCount = (data1Size/12);
DataExternal dataNodes[ nodeCount]<bgcolor=cLtBlue, hidden=false>;
for( j =0; j < nodeCount; j++)
{
    FSeek(section[dataNodes[j].section].m_absoluteDataStart +  dataNodes[j].to);
    TempStr nodeName;

    //IGNORE THIS COMMENT
    //Not all have param Arrays (First one Deosnt? Cos it is a container?)
    if(j > 0)
    {
        FSeek(section[params[j-1].section].m_absoluteDataStart +  params[j-1].to);
        DataChunk ParamArray(4)<bgcolor=0xFFFF00>;
    }

    //FSeek(section[dataNodes[j].section].m_absoluteDataStart +  dataNodes[j].from);
    //Some Data - Class Specific
}
Cannot do any more from within the template as the serialization is far more involved
I looked through 56 .h files and converted xmls to figure out what gets serialized and how. There are some annoying defaults involved
but the whole process seems straight forward from here but very tedious to recreate the classes and write the xml converter. except for the arrays

I did not touch the animation and skinning classes yet only the base hkObjects and HavokBehaviour objects
My plan is to write a converter so the project can be reloaded into havok animation and we can see/modify the blend trees
the behaviour template files are also in xml but seem a bit tedious.
JohnHudeski
mega-veteran
mega-veteran
Posts: 177
Joined: Wed Mar 02, 2011 10:38 pm
Has thanked: 10 times
Been thanked: 58 times

Re: Havok binary files

Post by JohnHudeski »

This does not make sense
The data does not align
Untitlffed.png
//According to the xml conversion

Code: Select all

//name="#0005" class="hkClass" signature="0x33d42383"
public class hkRootLevelContainer  //"parent" null
{
	//objectSize 12
	
	//numImplementedInterfaces=0
	//declaredEnums numelements="0"
	//declaredMembers numelements="1"
	hkArray<hkRootLevelContainerNamedVariant> namedVariants; //TYPE_ARRAY:TYPE_STRUCT "offset"=0 class=#0002	

}

//name="#0002" class="hkClass" signature="0x33d42383"
public class hkRootLevelContainerNamedVariant  //"parent" null
{
	//objectSize 12
		
	//numImplementedInterfaces=0
	//declaredEnums numelements="0"
	//declaredMembers numelements="3"
	TYPE_STRINGPTR name; //"offset" 0	
	TYPE_STRINGPTR className; // "offset" 4	
	hkRefPtr<hkReferencedObject> variant; // TYPE_POINTER:TYPE_STRUCT "offset" 8 class=#0003
			
	//"describedVersion" 1
}
Where is there a gap of 12 bytes between the hkArray and the first hkString
The String a vtable and a char*
You do not have the required permissions to view the files attached to this post.
Last edited by JohnHudeski on Tue Jun 05, 2018 11:27 am, edited 1 time in total.
User avatar
dropoff
veteran
Posts: 140
Joined: Sun Dec 18, 2016 3:32 am
Has thanked: 34 times
Been thanked: 28 times

Re: Havok binary files

Post by dropoff »

Hi,could somebody help me to get collision meshes from hkx files? I want to extract collision meshes from bloodborne here is example files:
https://mega.nz/#F!V9ciUIoB!zD-1YAEA7iLeKhdtHt-tIQ

I included also nav meshes just in case. Also these files should be in big endian.
Last edited by dropoff on Wed Jun 06, 2018 5:43 pm, edited 1 time in total.
JohnHudeski
mega-veteran
mega-veteran
Posts: 177
Joined: Wed Mar 02, 2011 10:38 pm
Has thanked: 10 times
Been thanked: 58 times

Re: Havok binary files

Post by JohnHudeski »

Turns out I do not have a clue how the direct and external data work.
The mapping of data is a bit confusing (indirections)
JohnHudeski
mega-veteran
mega-veteran
Posts: 177
Joined: Wed Mar 02, 2011 10:38 pm
Has thanked: 10 times
Been thanked: 58 times

Re: Havok binary files

Post by JohnHudeski »

I think I'm just trying to ask how you do you bind the data to class. The offsetting seem a bit odd. There are gaps I did not expect.
ronwall
ultra-n00b
Posts: 1
Joined: Sat Oct 17, 2020 4:54 am
Been thanked: 1 time

Re: Havok binary files

Post by ronwall »

JohnHudeski wrote: Mon Jun 04, 2018 2:44 am IS anyone still working on this?
This thread is the top google search on Havok Spline Animation format
and the aswer is in the source code of HavokLib by Lukas Cone

memberlist.php?mode=viewprofile&u=45121

https://github.com/PredatorCZ/HavokLib/ ... ressor.hpp

Also i read this one that is in python to undertand better the havok formats(no spline animation), well if you go to the xml you can skip this
https://github.com/krenyy/botw_havok


I'm also writing something near to a spec of this (cuz im using kaitai)
SergeantJoe
mega-veteran
mega-veteran
Posts: 242
Joined: Fri Aug 30, 2013 5:39 am
Has thanked: 57 times
Been thanked: 20 times

Re: Havok binary files

Post by SergeantJoe »

Gee, if only we had this information back in 2015 when it actually mattered. Thanks anyway I suppose.
JohnHudeski
mega-veteran
mega-veteran
Posts: 177
Joined: Wed Mar 02, 2011 10:38 pm
Has thanked: 10 times
Been thanked: 58 times

Re: Havok binary files

Post by JohnHudeski »

SergeantJoe wrote: Thu Oct 29, 2020 6:12 am Gee, if only we had this information back in 2015 when it actually mattered. Thanks anyway I suppose.
🤣🤣🤣🤣🤣🤣
Post Reply