|01 January 2005|
visibility based on 3D mask
hey guys. im trying to create a script that allows me to controll the visibility of an object based on whether or not a ray that is fired from its position hits an animated mesh above it.
here is an mov demonstrating what i mean - http://www.spinifexinteractive.com..../previewmp4.mov
however when i render after the first frame i get -
>> MAXScript Script Controller Exception: -- Runtime error: Illegal self-reference in controller script <<
my scene is basicly a huge array of hexagons (copies, not instances) with this script as a controller on a visibility track -
refsArray = (refs.dependents this)
scriptObj = undefined
for i in refsArray do(
if (isvalidnode i) then (
-- this is the code to create a variable that references the object running the script
d = ray scriptobj.pos [0, 0, 1]
if ((intersectray $hitobj d)!=undefined) then (
-- $hitobj can be any object by that name looming over the top (up the z axis). in this case it is a sphere.
scriptobj.wirecolor = [255,255,255]
) else (
scriptobj.wirecolor = [0,0,0]
so yeah its pretty straightforward, but i cant seem to get it to work on render or find what the illegal self refrence is.
if i get rid of that result variable at the end i get something like this -
which is cool for the first few frames, but then it messes up.
Does anyone know why is this occurring? is there a better way of doing this so that i dont have to have a seperate script for each object as well? it must be very inefficient.
Last edited by acgraham : 01 January 2005 at 11:35 PM. Reason: forgot something
|01 January 2006|
Thread automatically closed
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.
Note that as CGTalk Members, you agree to the terms and conditions of using this website.
|Thread Closed share thread|