1. Added Parent Soft Constraint.
2. Added Scale Soft Constraint.
3. Fixed bug with translation (maintain offset and direct link "ON")
4.Made indirect link independent of scale.
This script creates a series of dynamic soft constraints (expression nodes) similar to that of XSI between two or more objects. It DOES NOT depend on the timeline or interactive playback, it calculates the softness with the movement of the parent object on realtime basis, using an inner timer function that determines the speed and hence the softness .
It can be applied on both translation and rotation , with or without maintaining the offset .
It has two modes of opperation :
A. Direct link : where the attributes (translation or rotation) are directly manipulated by a connection with the expression node and are "purple" expression driven. In this mode the constrained objects cannot be moved or rotated manually.
B.Indirect link: where a fake link is made with the object so that the expression will always evealuate , but the object remains free from any attribute locking . Both modes work with or without maintaing offset.
this determines the softness of the constraint (0 is the softest) (1 resembles a normal maya constraint)
Each constrained object will have two new atributes :
A. Tsoft_eval (or Rsoft_eval) : is an integer attribute (0 or 1) to determine whether to evaluate the soft constraint . If it turns 0 the object will hold its current position.
B.Tfactor (or Rfactor):is to adjust the Rigidness factor after the creation of the constraint .
a good example to show the effectiveness of the script is to make a snake effect with multiple cubes each soft-t-constrained to the one beside it.
The link is non-circulating on parents; e.g. group1->obj1 , group2->obj2 . if obj1 soft constrain group2 and obj2 soft constrain group1 there will be NO-double transformation and will yield a perfect real time bi-directional soft constrain .
copy the softCon.mel file in the maya/x.0/scripts/ folder and type softCon in the command line and drag it to the shelf to create a button.
select the first object (the affector) shift select the second (the affected) and press the type of constraint you need.
for feedback please email me at firstname.lastname@example.org