3D Animation Workshop: Lesson 92: Thinking in Pulse 3D
Lesson 92 - Thinking in Pulse 3D - Part 3
The basic choice is between the Character class and the Poly class. Character class objects can be assigned behaviors and can be rotated by dragging. Poly class objects have no interactivity, and only follow the Behaviors they inherit from their parent objects. This explains why the BOX element is assigned the open and close Behaviors even though only the HINGE is given the keyframed animation. The BOX is made a Character class object and the HINGE is a Poly class object. Thus the entire hierarchy can be rotated by dragging the mouse, and the HINGE is animated as part of the BOX behavior. If this kind of thinking seems complex to you, you're not alone. It makes excellent sense, but it's not something you can understand without some concentration and practical experience. This is typical of many of the principles you'll find in Pulse.
But the main element of user interactivity applies to the LID. We want to be able to click on the LID to open or close it. We also want to be able to change the color of the LID from yellow to red as the user passes the cursor over it, as a signal that this is a "hot" object. To add this element of interactivity, the LID must be assigned to the SmartPart class. The SmartPart class allows you to use mouse input on an object to trigger Behaviors.
Here is the Properties window for the LID. Note how it has been assigned to the SmartPart class. See how the four Behaviors have been assigned to trigger events. The LID will call its MakeRedLID Behavior when the cursor is passed over the LID (an event called "hiliteOn"). It will call the MakeYellowLID Behavior as the cursor leaves (hiliteOff). "activeOn" and activeOff" trigger the open and close Behaviors on alternating mouse clicks over the LID.
This brings us to the subject of Scripts. Pulse has created its own scripting language, called JoeScript. From what I can tell, this language is intended to be used primarily by Pulse's own in-house engineering team as a way of adding functionality. It does not seem to be intended for the direct use of outside content developers. JoeScript shows up all over the place. For example, it seems that all the classes (like Character, Poly and SmartPart) are JoeScripts. But JoeScript is also used to create Behaviors. In this project, the BeColor script was used as the Behavior that changed the color of the LID. Behaviors can therefore be composed of multiple elements. A single Behavior might involve keyframed animation, a Behavior Script (like a color change) and the playing of a Sound. For example, the opening and closing Behaviors for the LID incorporated both keyframed rotation of the HINGE and the playing of a Sound. The Behavior Editor allows these different elements to be coordinated in time.
We're just scratching the surface here. The Pulse team has obviously done a lot of visionary thinking about large issues facing Web 3D, including efficient delivery and the merger of interactivity and animation. As with all of the current leaders in Web 3D, the in-house content developers at Pulse have a huge advantage over outsiders because the technology is new and user documentation and tutorial materials are sketchy and incomplete. This is powerful technology based on new ideas, offering very important opportunities. But be prepared for some serious thinking and exploration.
|To Return to Parts 1 and 2, Use Arrow Buttons||
Created: May 9, 2000
Revised: May 9, 2000