[Closed] circular dependency in script controller
Hi guys,
I’m exploring vehicle rigging and am having problems with a script controller for keeping the wheel (a cylinder) on the ground (a plane with noise applied). I’ve created 2 variables within the script controller dialogue : g and w and assigned them to the 2 object nodes.
The expression is:
r = ray w.pos [0,0,-1]
c = (intersectRay g r)
c.pos + [0,0,(w.radius)]
this throws a ray out straight down from the wheel, calculates the intersection position and then shifts the wheel to sit on the ground. The scripted version of the code works fine on a single frame, but i keep getting dependency errors with the expression and I’m not sure why.
Any ideas? (not used expressions before so assume I know nothing!)
Hi Alex which max version are you using?
I made this in max 9 and it worked fine. Just a Plane ($ground) and a Cylinder ($Cyl) simulanting a wheel.
this is the scripted code in the Z controller of the cylinder
xRay = ray $Cyl.pos [0,0,-1]
xNewPos = (IntersectRay $ground xRay).pos
xNewPos.z + $Cyl.radius
Here´s a little demo
http://usuarios.cmg.com.br/~hp-mussarlz/xWheel.rar
hope it helps
Hi Fabio,
Thanks for your help. I had another look at it this weekend. I can get the script to work from the listener (mine not yours) when the wheel is an unattached object. In the position script I get a circular reference or if I create a hierarchy of dummies the transform of the wheel gets skewed. I think that this might be due to the coordinate space that the controller returns.
I should have added that the wheel is linked to a dummy (now 2 dummies) which has a path constraint applied.
I’m going to wade through the maxscript help for a bit and try to pin this down.
Alex