Slim Ribbox Scripting V


return to main index

related links
   Slim Ribbox Scripting I
   Slim Ribbox Scripting II
   Slim Ribbox Scripting III
   Slim Ribbox Scripting IV
   Slim Ribbox Scripting VI


i n t r o d u c t i o n

This example of geometry substitution involves the use of a Maya particle emitter. The ribbox shown below querries the number of particles using the MEL command,

    particle -q -ct ...

and then steps over each using the command,

    getParticleAttr -at position ...

in order to querry the each particles xyz location. The positional data can be used for any purpose, for example, a blobby object. In the example shown below a long string is created that inserts a colored spheres into the scene. The final rib statement in the script, "Opacity 0 0 0", makes the actual particles invisible.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 
20
21
22
[
set pName   [clientcmd "listRelatives -parent $OBJNAME"]
set pName   [lindex $pName 0]
set pNum    [clientcmd "particle -q -ct $pName"]
expr srand(1)

set ribout  "Surface \"plastic\" \"Kd\" 1\n"

for {set n 0} {$n < $pNum} {incr n} {
    set pnt [clientcmd "getParticleAttr -at position $OBJNAME.pt\[$n\]"]
    set x   [lindex $pnt 0]
    set y   [lindex $pnt 1]
    set z   [lindex $pnt 2]
    append ribout "TransformBegin\n"
    append ribout "    Translate $x $y $z\n"
    append ribout "    Color [expr rand()] [expr rand()] [expr rand()]\n"
    append ribout "    Sphere 0.1 -0.1 0.1 360\n"
    append ribout "TransformEnd\n"
    }
append ribout "Opacity 0 0 0\n"
return "$ribout"
]

ribbox listing 1


Of course, inserting colored spheres as substitutes for the actual Maya particles is of no importance. However, the script could be quite easily adapted to render a blobby object (also) or to generate a procedural primitive via a helper application.


figure 1






© 2002-6 Malcolm Kesson. All rights reserved.