View Full Version : Transfering SDK's from one side to the other?

05 May 2003, 07:56 AM
Proly been asked a million times already...and i've proly even answered this question a million times it even/ever going to be possible to do all my SDK's on say one hands controller and then duplicate it over onto the other hands controller, so I only need to do all my SDK's on one hand??????? Proly not huh? :shrug:

05 May 2003, 06:26 PM
there are two options

the quickest way to do this would be to export the hand with SDK and then reimport it, group it to itself and give it a scale of negative one. the only drawback is that some of the rotations would be reversed which is confusing especially if you have other folks handling the rig.

the long road around would be as described by Alex Alverez (i'm pretty sure this is the complete workflow but then again i'm doing this from memory)

with SDK keys of the driven object selected in the channel box go to edit keys > copy keys > check driven channels > copy
with the mirrored SDK object selected go to paste keys > select the time range to be 'clip board' > select 'preserve replace entire curve' > paste

with the mirrored driven object selected go to the hypergraph > show dependecies. you will see that the driven object does have the keys on the channels but that it isn't connected to the driver.

in the connection editor > connect the driver output > into the input of the driven's channels (compare the graph of the original SDK to the mirrored SDK if you need a referrence)

when you complete making the connections you may encounter a problem where the mirror SDK is acting funky. the way to correct this problem is to use a reverse utility:

in the hypergraph create a reverse utility. disconnect translate nodes from the driven object and connect them to the reverse utility (x, y, z inputs respectively... you may also have to switch them around to get the correct behavior). then connect the out put of the reverse utility to the translates of the driven object.
reverse out put to translate.

finally since the reverse utility adds a value of 1 to all the translate keys you may have to adjust the value of the keys by shifting them down a value of one in the graph editor.

once you get use to the workflow described above it isn't that bad and it doesn't take too long either but you have to weigh what is more efficient (or effective)... the first method, A.Alverez's method or just redoing the SDK's from scratch.

-mental :surprised

05 May 2003, 10:55 PM
I deleted my earlier posts. I really hadn't considered doing what mental has illustrated. It is a possible way of going about it though. I've never had so many SDK's on a single object that it was necessary to do what Mr. Alvarez explains, but I could see the value of taking the time to learn it if you need it.

Good luck.

05 May 2003, 12:32 AM

05 May 2003, 01:20 AM
this is a perfect example of where scripting something like this would come in handy.. use mel to your advantage!

it's much easier to change things & use 'em again if you script the creation of the setDrivenKeys.. then if you need to put 'em on another character it's super simple!


05 May 2003, 02:01 AM
I'm not that familiar with mel though. I need to figure it out one of these days. I know how to make buttons etc for a shelf, or selection orders etc etc. But that's kids play. Or are you suggesting that I clear the history, then create the SDK's, then copy all that info down, change some names, and then re-execute?

05 May 2003, 02:35 AM
yep, you can use that as a start.. the problem is that the setDrivenKeyframe command in the script editor doesn't actually set the driver value.. it uses the current values to set it. So the best thing to do is actually look at the setDrivenKeyframe command and then set the values with that..

I don't have maya in front of me, but something like:

select finger_1;
setDrivenKeyframe -driverValue 0 -value 0 -attribute rotateX -driver finger_control.curl;
setDrivenKeyframe -driverValue 1 -value 40 -attribute rotateX -driver finger_control.curl;


05 May 2003, 02:55 AM
i c . makes sense. Thanks! I'll test that out for a few and hopefully learn from there. :D

CGTalk Moderation
01 January 2006, 02:00 AM
This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.