dbr
Thesis Production and Technical Ramblings
Tuesday, April 24, 2012
Monday, April 16, 2012
RoboLunky First Cut
Well, it's taken me a week to recover from thesis output, but, I think I'm feeling pretty rested now! 10 hours of sleep a day will do that haha. Anyway, it was great to see everyone's thesis on the big screen last Friday. CONGRATS EVERYONE!
Here is the first cut of RoboLunky that played in the theatre. I'll be making some updates and fixing little quirks before the second thesis show and portfolio night.
roboLunky from Dan Bradham on Vimeo.
created by: Dan Bradham
composed by: Chris T Geehan
animation: Dan Bradham, Jon Burke, Albert Kim
layout: Dan Bradham, Arsen Arzumanyan
special thanks: Chris DeVito, Jon Lin, Laszlo L. Ujvari, Vic Fina, John Mcintosh, Danica Parry, JP Lavin, Mark Neumann, Artur Elson, Brendan Gallagher
special special thanks: Monami Nagai, Mom, Grandma and Grandpa
produced at: School of Visual Arts
Here is the first cut of RoboLunky that played in the theatre. I'll be making some updates and fixing little quirks before the second thesis show and portfolio night.
roboLunky from Dan Bradham on Vimeo.
created by: Dan Bradham
composed by: Chris T Geehan
animation: Dan Bradham, Jon Burke, Albert Kim
layout: Dan Bradham, Arsen Arzumanyan
special thanks: Chris DeVito, Jon Lin, Laszlo L. Ujvari, Vic Fina, John Mcintosh, Danica Parry, JP Lavin, Mark Neumann, Artur Elson, Brendan Gallagher
special special thanks: Monami Nagai, Mom, Grandma and Grandpa
produced at: School of Visual Arts
Labels:
RoboLunky
Saturday, April 14, 2012
Wednesday, April 11, 2012
Mel eval() and an undetermined amount of flags
Every once in awhile I run into a mel command that requires an undetermined amount of flags to be passed for evaluation. Here's a quick example of how to build and pass an array of flags to eval.
string $curvePoints;
string $myPointArray[];
int $tx;
int $ty;
int $tz;
for($i = 0; $i < 10; $i++)
{
$tx = $i;
$ty = $i;
$tz = $i;
$myPointArray[$i] = ("-p " + $tx + " " + $ty + " "+ $tz);
}
$curvePoints = stringArrayToString($myPointArray, " ");
print $curvePoints;
eval("curve -d 3" + $curvePoints)
Labels:
mel scripts
Wednesday, March 21, 2012
Post Production Snapshots
I'll be wrapping up rendering over the next week or so, meanwhile, I'm doing some test comps in Nuke. Here are some tentative snapshots.
Labels:
RoboLunky
Monday, March 12, 2012
Matte Passes Quick and Clean
There are a bunch of scripts to create matte passes for mental ray, but these tend to be on the more complicated end of the spectrum. So to speed up my workflow a little I wrote this script. Select some geo, go to the render layer you'd like to add the matte pass to, and type 'dbrMattePass("myName")' in the command line.
global proc dbrMattePass(string $name){
float $mayaVersion = `getApplicationVersionAsFloat` ;
//get selected objects
string $sel[] = `ls -sl`;
if (`size($sel)`){
//get current render layer and create new pass contribution map
string $curLayer = `editRenderLayerGlobals -q -currentRenderLayer`;
string $contMap = `createNode -ss -name ($name + "PCM") passContributionMap`;
connectAttr -na ($curLayer + ".passContributionMap") ($contMap + ".owner");
//create new 1 channel matte render pass and associate with current render layer and new PCM
if ($mayaVersion == 2012)
string $mattePass = `shadingNode -ss -name ($name + "Matte") -asRendering renderPass`;
else
string $mattePass = `createNode renderPass -name ($name + "Matte")`;
setRenderPassType -type "MATTE" ($name + "Matte");
setAttr -type "string" ($mattePass + ".passGroupName") ($name + "MatteGRP");
setAttr ($mattePass + ".numChannels") 1;
setAttr ($mattePass + ".frameBufferType") 256;
setAttr ($mattePass + ".useTransparency") 1;
setAttr ($mattePass + ".holdout") 1;
connectAttr -na ($curLayer + ".renderPass") ($mattePass + ".owner");
connectAttr -na ($mattePass + ".message")($contMap + ".renderPass");
//add selected objects to pass contribution map
for ($each in $sel){
connectAttr -na ($each + ".message") ($contMap + ".dagObjects");
}
}
else
{
print "Select some objects to create a matte.";
}
}
**Update: Didn't realize this initially because I hadn't reached post-production yet. Slipped right through my fingers, if you don't specify the values of hold-out and use transparency when creating pass contribution maps via mel, they will default to OFF. A huge error, hopefully nobody was relying on the previous code. The above represents working code.
Labels:
mel scripts
Wednesday, February 15, 2012
Wolf Larsen
Wolf Larsen, of Jack London's "Sea Wolf."
Testing out skin shaders and a paint over for final look development.
Concept by Zack Lydon (http://stillibreathe.net)
Testing out skin shaders and a paint over for final look development.
Concept by Zack Lydon (http://stillibreathe.net)
Tuesday, February 14, 2012
Wiggle Your Keys!
dbrWiggleKeys
This guy allows you to create a series of keyframes in a specified time range to any number of attributes using the random, sine, and cosine functions of mel. It works with multiple object/controller selections so you can do cool stuff like apply a sine curve with overlap to a tentacle. I got tired of manually creating sine curves in the graph editor for my jelly creatures tentacles so this is a pretty huge time saver, gives me a nice base curve to go in and modify.
I'll update this a bit in the near future to add a falloff option so that the keys fall off to a value of 0 + initial value over the time range.
download
This guy allows you to create a series of keyframes in a specified time range to any number of attributes using the random, sine, and cosine functions of mel. It works with multiple object/controller selections so you can do cool stuff like apply a sine curve with overlap to a tentacle. I got tired of manually creating sine curves in the graph editor for my jelly creatures tentacles so this is a pretty huge time saver, gives me a nice base curve to go in and modify.
- Amplitude: the maximum deviation from the current value of the attribute. If translateY is 10 and you use an amplitude 5, the keys will range from 5-15.
- Step Size: keyframe interval.
- Overlap Step: offsets sine curves when multiple controls or objects are selected. Selection order determines the order of overlap.
- Attributes: Use long or short names separated by commas. No spaces following the commas.
- ie: tx,ty,rz,visibility,translateZ
Wavelength of sine and cosine is: 4 * step size
I'll update this a bit in the near future to add a falloff option so that the keys fall off to a value of 0 + initial value over the time range.
download
Labels:
mel scripts
Camera Animation Broken on Batch Render
A few people at school have had issues with their cameras not animating when rendering on our farm. I think this happens when complex camera rigs are used, sometimes even one group above a camera with keys will not work. These rigs are a little bit more difficult to deal with but here is a quick script that bakes the overall camera animation to a new camera.
global proc dbr_bakeCamera(string $cam)
global proc dbr_bakeCamera(string $cam)
{
string $bakeCam[] = `camera -name ($cam + "_BAKE")`;
string $oCST[] = `orientConstraint $cam $bakeCam[0]`;
string $pCST[] = `pointConstraint $cam $bakeCam[0]`;
bakeResults -t "1:68" -at "tx" -at "ty" -at "tz" -at "rx" -at "ry" -at "rz" $bakeCam[0];
delete $oCST[0];
delete $pCST[0];
}
//usage: dbr_bakeCamera("camName") where camName is the name of the camera you'd like to bake.
Labels:
mel scripts
Subscribe to:
Posts (Atom)












