@SimGuruModSquad
I've figured out most of the HotSpotControl, but am wondering about a part of it. The last section consists of a list specifying which SimModifiers to use from different viewing angles - front, side, and back. The first byte of each entry appears to be a bitmask of the viewing angles as follows:
enum ViewAngle : byte
{
None = 0,
Front = 1,
Unknown1 = 1 << 1,
Unknown2 = 1 << 2,
Unknown3 = 1 << 3,
Side = 1 << 4,
Back = 1 << 5,
Unknown4 = 1 << 6
}
I see the 'unknown' bits being used consistently, but they don't seem to have any effect. Could you explain what they do, if anything?
Second, in the SimModifier, in version 0x90 there's a new field between LinkTag and the BonePoseKey. I've only seen two values: 0x30000001 if the SimModifier uses a Blend, and 0x00000000 if it doesn't. If it's not right the slider doesn't work. Could you explain what this field (or maybe fields) means?
Thanks so much for all your help!
cmarNYC on MTS.
Comments
Will need to get back to you on the first question.
For the second question, the new field in v0x90 is actually between the region and the linktag fields. It's a reserved uint32 field, currently always 0. The 0x30000001 data you are seeing is actually the linktag, which is a reference to the blend geometry key.
-SGMS
Regarding the HotSpotControl bit flags, these are the values:
FRONT = 1<<0
THREEQUARTER_RIGHT = 1<<1
THREEQUARTER_LEFT = 1<<2
PROFILE_RIGHT = 1<<3
PROFILE_LEFT = 1<<4
BACK = 1<<5
The 1<<6 bit should not be used, are you sure you are seeing that one?
-SGMS
You're right of course about the 1<<5 bit - I must have been confused. In testing, I can apply different morphs to the right and left sides as described, but I don't seem to get a separate morph for the 3/4 views unless it's only in micro mode which I haven't yet tested - it seems to go right from front to side to back. That's not important, though, this info is very useful for working custom morphs into the existing HotSpotControls. Thanks!