The Script SOP runs a python script each time the Script SOP cooks. It can create, delete and modify points, primitives and their vertices. It can create custom attributes or built-in attributes like
N (normals). It can add polygons, bezier curves and meshes among others. It can combine multiple inputs. By default, the Script SOP is created with a docked DAT that contains three Python methods:
cook() method is run each time the Script SOP cooks. The
setupParameters() method is run whenever the Setup Parameter button on the Script page is pressed. The
onPulse() method is run whenever a custom pulse parameter is pushed.
Refer to Help -> Python Examples, and Help -> Operator Snippets.
Note: Because the Script SOP can get data from anywhere, it's difficult to determine what it procedurally depends on. So every time that a Script OP runs it will make a list of operators, parameters, nodes etc that it depends upon, and when they change, the Script OP will re-cook.
Parameters - Script Page
callbacks - Specifies the DAT which holds the callbacks. See scriptSOP_Class for usage.
setuppars - Clicking the button runs the
setupParameters() callback function.
These functions are included in the default script located in the docked node
# me is this DAT. # scriptOP is the OP which is cooking. # press 'Setup Parameters' in the OP to call this function to re-create the parameters. def setupParameters(scriptOP): scriptOP.appendParFloat('ValueA', page='Custom') scriptOP.appendParFloat('ValueB', page='Custom') return #called whenever custom pulse parameter is pushed def onPulse(par): return def cook(scriptOP): scriptOP.clear() return
- Input 0: -
Info CHOP Channels
Extra Information for the Script SOP can be accessed via an Info CHOP.
Common SOP Info Channels
- num_points - Number of points in this SOP.
- num_prims - Number of primitives in this SOP.
- num_particles - Number of particles in this SOP.
- last_vbo_update_time - Time spent in another thread updating geometry data on the GPU from the SOP's CPU data. As it is part of another thread, this time is not part of the usual frame time.
- last_meta_vbo_update_time - Time spent in another thread updating meta surface geometry data (such as metaballs or nurbs) on the GPU from the SOP's CPU data. As it is part of another thread, this time is not part of the usual frame time.
Common Operator Info Channels
- total_cooks - Number of times the operator has cooked since the process started.
- cook_time - Duration of the last cook in milliseconds.
- cook_frame - Frame number when this operator was last cooked relative to the component timeline.
- cook_abs_frame - Frame number when this operator was last cooked relative to the absolute time.
- cook_start_time - Time in milliseconds at which the operator started cooking in the frame it was cooked.
- cook_end_time - Time in milliseconds at which the operator finished cooking in the frame it was cooked.
- cooked_this_frame - 1 if operator was cooked this frame.
- warnings - Number of warnings in this operator if any.
- errors - Number of errors in this operator if any.