I have a series of .HKX files that contain a variety of information. Some have rigs, some have animations, and some others are supposed to have collision data.
The code I'm using to load these files is pretty simple:
hkRootLevelContainer* container = hkSerializeUtil::loadObject<hkRootLevelContainer>(absolutePath);
However, I'm getting mixed results when loading these files. As far as I can tell, all of the rig and animation files load correctly, but it seems that every one of the files that are supposed to contain collision data are failing to load. So I made an hkSerializeUtil::ErrorDetails object to see what's happening - after a failed load, it contains the following information:
id: ERRORID_LOAD_FAILED
defaultMessage: "Failed to Load"
The documentation tells me "/// Stream was ok but some error in the data. " which doesn't much help me since I don't know the format of the binaries to check the validity of the data.
Looking at the files in a hex editor, both the working and non-working files contain the following version string: hk_2010.2.0-r1 -- The installation direction of my version tells me that I'm using hk2012_2_0_r1.
So a bunch of questions: Is there any combination of features or options that I need to be sure to enable so that havok will load these collision data files? Are there any known incompatibilities between the 2 versions? Should I be downloading the older version to work with these files? Is there some other way I can validate these files? I'm assuming that .HKX is a closed, proprietary format, but in case it isn't, is there documentation anywhere so that I can manually validate the data in the problem files? If the .HKX file contains data that can't be used by TryHavok (say, cloth), would that cause this error?