ObjectWorld Exercises
 
 
The ObjectWorld mel script was written to automatically find all objects in a scene, add random velocities to each object and group them all together. The bounding box of the group is used as walls so the moving objects to bounce off of them. The software is written in two procedures: "createObectWorld" sets up the objectWorld and "moveObject" is called by expressions and will calculate object movement on a frame by frame basis. Using Keith Wentzell's idea, "createObjectWorld" automatically creates an expression for each object in the scene and uses it to uniquely call "moveObject". We can write code easier and get it working better if we keep most of it in MEL and keep expressions to a minimum.
 
The exercises in this week's lab are designed to extend this "ObjectWorld" script so that it (1) accommodates a wide range of objects, (2) moves the objects in various ways and (3) improve the interactivity of the objects.
 
(1) The "ObjectWorld" script detects the objects in the scene using the "ls" command and then filters the list of objects by checking attributes and conditions and by passing the names of the objects that we really want from one array to another. For this exercise, open a scene of your own containing a number of complex objects, run the ObjectWorld script and see how it deals with it. Adjust the ObjectWorld script so that it gets the right objects into the final "$objs" array. Try this with bound skeletons with and without IK's. Include shaders, curves, lofted objects and locators. Use your own judgment as to what should bounce around and what shouldn't. Make a render of these objects bouncing around and hand it in as a quicktime. Include the mb file and a text file showing the MEL script with changes and explainations as to what you did.
 
(2) Every object in Maya which is a transform node has a bounding box. We used the group bounding box to form the walls of ObjectWorld. Use the bounding boxes of each selected object to detect collision so that every object bounces off every other object. Again render this and turn it in as above.
 
(3) Currently we are creating random initial velocity vectors to control the way these objects move. Change the way the initial velocity vectors are set. Experiment with other ways to manipulate the objects still using the velocity vectors. In other word, consider having all the objects move to the center and bounce off each other. Or consider having all the objects move out from the center and start bouncing off the walls. Maybe the objects are overcome by a gust of wind from one direction. Again render this and turn it in as above.
 
 

Please deposit your text files along with quicktimes and mb files into the class folder in mycourses.rit.edu.

Thank you.