maya tip: passing on deformed particle and geomtrie

nonlinear deformers or scuplting on geo/partilces are great to tweak your sims. but it will not written into the cache file. the deformation gets always added on top of the cache. this is little bumpy, example: if wanna use the deformed nParticle to emitt into a fluids container.
in this case, you can use the new node editor to plug the outGeometry of the deformer into you depending geo/nodes like the fluids emitters. easy !

Screenshot-1

Maya playblast tool2

here is an improved version of the playblast script. Jean Denis pointed out the playblasting of more cameras is sequential and parallel. (thanks for that!) which would extreme slow in heavy scene with complex characters or large cache file. the new version of the script capture all cameras on each frame at the same time.  this way, maya have evaluate once on each frame and not do extra evaluation for each camera.  this way you can playblast simulations with different camera without caching.

i am using the active viewport for each camera to keep resolution constant. (and it avoid maya viewport issues).

* just made a little update to free maya after player is showing up

** another update: i added 2 more botton’s for houdini “mplay” tool. if you have houdini installed (even the demo version) it will bring up a mplay app and play until 4 cameras simultaneity in one window. (row or quas view)
tip: with shortcut “s” you link all view together and zoom synchronously

*** you use rv tile option (menu tools–>tile) to view all cameras side by side. i set it to default in the script

**** bugfix with timerange

Screenshot
download it here

// written ny Heribert Raab heribertraab@gmail.com
// the tool create outliner with contain just cameras
// clicking on each camera switches through camera on your active viewport
// playblast botton will playblast all selected camera with aktiv viewport and load them into fcheck or rv

global proc playB(string $player)
{
string $select[] = `ls -sl`;

// setup playblast dir
//string $path = “/tmp/test/”;
string $frames2[] ;
string $fl[] = `renderSettings -firstImageName -fullPathTemp`;
string $f2[] = `renderSettings -firstImageName`;
string $path = substituteAllString($fl[0], $f2[0], “”);
int $min = `playbackOptions -q -minTime`;
int $max = `playbackOptions -q -maxTime`;
int $fr = $max – $min;

int $f;
string $all;
string $play;
string $scene = `file -q -sn -shn`;
string $scname = substituteAllString($scene, “.”, “_”);

for ($f=$min;$f <$max;$f++)
{
// playblast selected Cameras
$numInts = size($select);
$ridNum = $numInts +1;
int $i=0;
string $seq[];

for ($i=0;$i < $numInts; $i++)
{
lookThru ($select[$i]);
$frames2[$i] = $path+$scname+”_”+$select[$i];
//print ($frames2[$i]+”.”+$f+”\n”);
playblast -st $f -et $f -forceOverwrite -format image -fp 4 -compression “jpg” -f($frames2[$i]) -viewer 0 -offScreen -percent 100 -quality 70;
}
}
$all = stringArrayToString($frames2, “.* “);

//image player command
$play = ($player+” “+$all+”*”);

if ($player ==”mplay”) $play= ($player+” -V 2 2 -g “+$all+”* &”);
if ($player ==”mplay2″) $play= (“mplay -V 4 1 -g “+$all+”* &”);
if ($player ==”rv”) $play_rv = ($player+” -tile “+$all+”* &”);
if ($player ==”fcheck”) {$play = ($player+” -S “+$all+”* &”);}

print $play;print “\n”;
system( $play );
}

global proc look(){lookThru `ls -sl`;}

string $filterP = `itemFilter -byType camera `;

window cameras;
frameLayout -labelVisible false ;
string $panel = `outlinerPanel`;
columnLayout -adjustableColumn true;
button -label “Playblast selected Cams with RV” -command “playB rv”;
button -label “Playblast selected Cams with Fcheck” -command “playB fcheck”;
button -label “Playblast selected Cams with mPlay quad” -command “playB mplay”;
button -label “Playblast selected Cams with mPlay row” -command “playB mplay2”;

string $outliner = `outlinerPanel -query -outlinerEditor $panel`;
outlinerEditor -edit
-mainListConnection “worldList”
-selectionConnection “modelList”
-f $filterP
-selectCommand look
-showSetMembers true
-setFilter defaultSetFilter
$outliner;
showWindow;

new old waterfall designer tool

i had time to optimize my rig for old project:
this is a quick demo of realtime preview of my waterfall rig. the volume represents the implicitly volume rendering in renderman. i used couds shape to show in maya opengl the size and opacity of the implicit volume (renderman).

here example of my expressions setup for faking air pressure:

this is a screen of my adjustable volume emitter for my waterfall rig. i can fit the emitter to edge of the rocks and adjust the amount of water on each position with a ramp:
i hope i can post a video with all “water-structure” feature of my rig.

fire demon testshot

here quick testshot with the fire demon… to see how it works in production… still there are same bugs in rig to fix and the character needs a lot of fine tunning and i have working on look… the background was created with my own particle tools in maya which i build a couple weeks ago…

fire demon setup

i´ve started a private project… i trying to build a action scene with a heavenly fluids driven character. the Inspiration comes form concepts books of warcraft tradings card (by blizzard entertainment) and dungeon and dragons monster books. here is the rig for the character, the shape of body are complete created with maya fluids.

the rig controls every movment and extra keyable control´s for fire-speed, flamesize and extra release fire to get more expression out of the character. i´ve seperate the fire into 30 different fluids containers to keep the cache small and get more control over the character shapes, i also have reorganzied the caches-system to knock down the size of the caches files again for each shot. now, with cached fluids the character can easy animated and the viewport feedback is not too bad.

kill particles on special objects

add attr collisionGeometryIndex to you particle shape and :

 

int $idx = particleShape2.collisionGeometryIndex;

string $geoC[];
string $shape[];

if( $idx != -1 )
{

string $geoC[] = `listConnections particleShape2.collisionGeometry[$idx]`;
string $shape[] = `listConnections ( $geoC[0] + “.localGeometry” )`;
print( $shape[0] + “\n”);
if ($shape[0] == “killcube”) particleShape2.lifespanPP = 0;
}

download it here

waterfall 2.5

finally, i had finished sets of the nodes in nuke for my waterfalls. i can change the look of the waterfalls in realtime and place it in the 3d space in nuke. so i can fly around in 3d-space and place so many waterfalls i want… the rendertime takes about 5 seconds in nuke (incl. displacments) with this different waterrfalls. (all created with same base-layer).

waterfall mattepainting WIP 2



here another wip from my research-project…this (6K x 4k) 3d-matte painting and includes:

-one 2D animated matte paint (10k x 2k)
-one 2D still matte paint.
-five 3D rendered animated waterfall texture (2k x 1K)
-two real footage animated water-texture

there are lots of displaced objects in the 3d-space of nuke and workflow is still fast !

concept matte painting

here is quick test for concept 3d-matte painting…
the concept-painting was created by a great artist at softmachine, my job was to transform the painting into 3d and add the waterfall in the background.

i´ve created a little mask for the painting and projected and displaced it on a plane with
nuke´s 3d-features to create a more dynamic 3d-feeling picture in the camera movement.

the waterfall created in 10 mintes with default-settings of my dynamic-scripts (maya and renderman).

and here the lowres video:

here is behind the scene of the stereo comp: