Wednesday, July 29, 2009

Dynamic Nightmares

Well. In order to please the customer more and make a few new poses for my cuffs (bringing the total up to nine) I made "Pony Hands". You know the pose, it's not over breast but it's wrists drawn up and chained to the elbows. I thought my system was ready for it, I was wrong.

It catastrophically crashed my scripts as the left side fought for control and the right side sat on it's proverbial behind ignoring me.

The issue stood thus: both the Left Wrist and Left Elbow cuffs were designed as the Sources, that is to say that the particle chain emitted from them and targeted the right side. Because of this when I tried to run Pony Hands and chain Left Wrist to Left Elbow it crashed (don't ask me why it just did) the Left Elbow cuff. The Right Elbow and Wrist cuffs did nothing because they had only been programed as targets, containing little more then scripts to get their UUID and having no knowledge of the commands needed to create particle chain.

Basically, I had to re-write the entire chain system so that all cuffs are Sources and Targets. What does this mean? It means LWrist to LElbow is now possible, as is RWrist to RElbow; it also mean you can do RElbow to LElbow if the direction of the chain matters to you.

Previously both LW>RW and RW>LW would draw a chain from LW to RW, now the second code will draw a chain from RW to LW. This is of course purely for visual continuity, we don't really need the chain between elbows going left to right and the wrist chain going right to left, it just looks odd.

To summarize:
  • The code found in the anims names now is strictly Source>Target
  • Any cuff may be Source and any cuff may be Target
  • You may still only have one Source but unlimited Targets (eg. You can't make RE the Source twice it will only take the last one. However you can make RE the Target for two chains)
And that's about it. I've averted issues with this one, goodness knows someone would have made themselves a nice anim that tried to use a more dynamic chain system then my cuffs previously supported and ended up crashing the scripts. Now they won't have that issue, all tests are (so far) all working as intended.

The only down side, this unexpected (major) issue ate up the day I'd intended to use to finish the Lockpick system.

No comments:

Post a Comment