PDA

View Full Version : attributes unified and controlled as one


Bucket
10-27-2006, 01:59 PM
Basically. I want translate x for cube1 to be translate y for cube2. So that both attributes are seen as the same attribute.

I know I could just do something like..


cube1.translateX=cube2.translateY

But that isn't the same

I want to be able to manipulate translate x for cube1 and have it effect translate y for cube2. I want to be able to manipulate translate y for cube2 and have it effect translate x for cube1. Keyframing cube1.translateX will give cube2.translateY same keyframe. If I selected the keyframe for cube2.translateY and deleted it or moved it or modified it somehow, cube1.translateX would be effected identically.

Essenitially. They need to be able to be manipulated as a single attribute with different names that have the ability to control a different attribute. Both attributes need to become an inseperable pare. One cannot be without the other, one cannot have a different value than the other one. One cannot be manipulated seperately from the other in either direction. To manipulate one is to manipulate the other. To keyframe one is to keyframe the other. To adjust keyframes for one is to adjust keyframes for the other. To delete keyframes for one is to delete keyframes for the other. It is not a hierarchal structure, they both control each other.

It can be done somehow.. Just how? Help help Help help please.. Help please.

hibigibees
10-27-2006, 02:47 PM
hi,

I dont know how much I am correct with the following tips, but I am just telling my opinion and sharing my knowledge with you !
letme tell what i learned from maya so far in general...
- its a one way road (I think this is one of the main reasons for maya to be stable)
- its a node based architecture
- and so many other pluses and a very few minuses...

You can attempt that using
- script job (dont ask me how, i forgot this method but its productive to a level... but its slow, i mean the scene becomes slower to navigate..etc.)
- writing you own api c++ node which does this job for you !

If you need a interactive realtime update then thats possible by writing your own node in maya which does the job for you ...
In maya ... node1.plug1 can be connected to node2.plug2 which is based on plug types and if u want the reverse connection to happen, and if you try to attempt it somehow using some expressions or utility nodes etc... maya considers it as a cycle...

Your requirment is good, but the best way is to write you own code for it.
A mel button in the shelf can do the job, it it own't be interactive and its based on how many times u r hitting the button... { just imagine this... buy 2 mouse devices and connect on of em to ps2 and other to some serial port using convertors, now if someone can hit that mel button as u increase a attribute, its a real time solution... haha . My genious plan will work, but u need one more mouse and one more person near u to c it happenning... just kidding !)

For IK FK switching, we use a helper attibute driven expression which makes iK fk switching on hitting mel buttons or setting a attribute from a to b !
I am learning too, Lets c what others have to say regarding this !

sriram...

NateH
10-27-2006, 07:43 PM
He's right, any thing like that would create a cylce. you cant have something control something thats controlling it. For something like what your asking i think you could use the hierarchy to get around it. If you used a direct connection from translateX of Cube1 to translateY of a group above cube2, and the translateY of cube2 to the translateX of a group above cube1.

Theres not really any way to directly connect two atttributes without locking the controlled one out sadly. You can kinda get around that as well if you use getAttr and setAttr, in combination with a scriptjob/expression. For an example of this look up the softConstraint script on highend3d.com.

CGTalk Moderation
10-27-2006, 07:43 PM
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.