Maya Training

Creating characters In Maya and Zbrush

Maya Training

Creating character renders in Maya 2017 and Arnold

Maya Training

Spach-Alspaugh House the complete courseware
You are here > Home > SimplyMaya Community Forums

Welcome to Simply Maya

Please Sign in or Sign up for an account

Member Login

Lost your password?

Not a member yet? Sign Up!

Old 25-10-2005, 08:41 PM   #1
Grayth's Avatar
Join Date: Oct 2003
Location: Brantford Ontario Canada
Posts: 43
Thanks: 0
Thanked 0 Times in 0 Posts
Default Camera setup script finished..enjoy

here's a script I've been working on. It'll make camera animation alot easier. Some people have helped me create it when I got stuck on the coding, so if you like it use it.

What it will do is create a number of cameras with a name ou provide and create group transforms so you can animate easily for each transform node, as I lock out the non editable/animatable transforms you don't want..

here's the code...

//This script is inspired from Eric Hanson's Digital Sets DVd's
//Many thanks to alot of folks on cgtalk
//especially Andrew, aka Westimad and Robert Bateman
//Please distribute this script freely
global proc Procam()
//variable creation here
string $grp1 = "XYZ_Trans";
string $grp2 = "YRot_Pan";
string $grp3 = "XRot_Tilt";
string $grp4 = "ZRot_Roll";
string $winName = "ProCam";
string $camnode = "1NodeCam";
string $camnode2 = "2NodeCam";
string $camnode3 = "3NodeCam";

//window check
if(`window -exists $winName`)
deleteUI -window $winName;

windowPref -remove $winName;

//window creation Layout here
string $myWindow= `window -title "Pro Camera Setup"
-w 260 -h 185 -s 0 -mnb 0 -mxb 0

//Main window Controls
string $form = `formLayout -nd 260 myform`;
string $labl= `text -label "Camera Name"`;
string $cameraName = `textField -w 150 Newname`;
string $sep =`separator -st "single" -w 225 divider`;
string $checka = `checkBox -l $camnode onenode`;
string $checkb = `checkBox -l $camnode2 twonode`;
string $checkc = `checkBox -l $camnode3 threenode`;
string $butn = `button -label "Create Camera" -c "Values" mybutton`;

//embedded form layout here
string $newform =`frameLayout -l "Select Editable Nodes" -w 225 -h 65 -p myform
-la "top" -bs "etchedIn"
-cll 0 -cl 0 embedform`;

//child of embededform Controls
string $form1 =`formLayout -nd 225 -p embedform nodeform`;
string $check1 = `checkBox -l $grp1 xyztrans`;
string $check2 = `checkBox -l $grp2 yrot`;
string $check3 = `checkBox -l $grp3 xrot`;
string $check4 = `checkBox -l $grp4 zrot`;

//Layout for embeded form Controls here
formLayout -e -af $check1 "top" 8
-af $check1 "left" 15

-af $check2 "top" 24
-af $check2 "left" 15

-af $check3 "top" 8
-af $check3 "left" 135

-af $check4 "top" 24
-af $check4 "left" 135 nodeform;

//layout for main window Controls here
formLayout -e -af $labl "top" 10
-af $labl "left" 10

-af $cameraName "top" 7
-af $cameraName "left" 85

-af $checka "top" 35
-af $checka "left" 10

-af $checkb "top" 35
-af $checkb "left" 90

-af $checkc "top" 35
-af $checkc "left" 170

-af $sep "top" 55
-af $sep "left" 11

-af $newform "top" 60
-af $newform "left" 11

-af $butn "top" 130
-af $butn "left" 75 myform;

showWindow $winName;

//procedure to query all the values from the window
//and run tests for error messages
global proc Values()
//variable Creation
string $grp1 = "XYZ_Trans";
string $grp2 = "YRot_Pan";
string $grp3 = "XRot_Tilt";
string $grp4 = "ZRot_Roll";

//query the values of the controls from main form
string $CamName = `textField -q -tx Newname`;
string $xyz = `checkBox -q -v xyztrans`;
string $yrotate = `checkBox -q -v yrot`;
string $xrotate = `checkBox -q -v xrot`;
string $zrotate = `checkBox -q -v zrot`;
int $node1 = `checkBox -q -v onenode`;
int $node2 = `checkBox -q -v twonode`;
int $node3 = `checkBox -q -v threenode`;

//check for error messages
if($CamName == "")
error "You forgot to give the Camera a name";

int $totalnode = $node1 + $node2 + $node3;
if($totalnode <1)
error "You didn't select a Camera Type";

if($totalnode >1)
error "You selected more than one Camera Type";

string $editnode = $xyz + $yrotate + $xrotate + $zrotate;
if($editnode =="0000")
error "You didn't select any Editable Nodes";

//camera creation statements
string $attrsToLock[] = {"tx","ty","tz","sx","sy","sz","rx","ry","rz"};

if ($node1 ==1)

if ($node2 ==1)

if ($node3 ==1)

//selecting the top node in hypergraph
select -r $CamName;
pickWalk -d up;

//setting attrib of the zrot node
if ($zrotate =="1")

//setting attrib of the xrot node
if ($xrotate =="1")

//setting attrib of the yrot node
if ($yrotate =="1")

//setting attrib of the xyz translate node
if ($xyz =="1")

//creation procedure for the cameras
global proc camnode(string $CamName,int $val,string $attrsToLock[])
camera -centerOfInterest 5 -focalLength 35 -lensSqueezeRatio 1 -cameraScale 1 -horizontalFilmAperture 1.41732 -horizontalFilmOffset 0 -verticalFilmAperture 0.94488 -verticalFilmOffset 0 -filmFit Fill -overscan 1 -motionBlur 0 -shutterAngle 144 -nearClipPlane 0.01 -farClipPlane 1000 -orthographic 0 -orthographicWidth 30;
cameraMakeNode $val "";
rename $CamName;

//procedure to lock out the camera transforms
global proc doLockAttrs(string $CamName, string $attrsToLock[])
for( $attr in $attrsToLock )
setAttr -lock true ($CamName +"." + $attr);

//procedure for the zrotate node
global proc zrot(string $grp4)
group -name $grp4; xform -os -piv 0 0 0;
string $groupname = $grp4;
string $attrsToLock[] = {"tx","ty","tz","sx","sy","sz","rx","ry","v"};

//procedure for the xrotate node
global proc xrot(string $grp3)
group -name $grp3; xform -os -piv 0 0 0;
string $groupname = $grp3;
string $attrsToLock[] = {"tx","ty","tz","sx","sy","sz","ry","rz","v"};

//procedure for the yrotate node
global proc yrot(string $grp2)
group -name $grp2; xform -os -piv 0 0 0;
string $groupname = $grp2;
string $attrsToLock[] = {"tx","ty","tz","sx","sy","sz","rx","rz","v"};

//procedure for the xyz translate node
global proc xyztrans(string $grp1)
group -name $grp1; xform -os -piv 0 0 0;
string $groupname = $grp1;
string $attrsToLock[] = {"sx","sy","sz","rx","ry","rz","v"};

//procedure to lock attributes of group nodes
global proc dogroupLock(string $groupname, string $attrsToLock[])
for( $attr in $attrsToLock )
setAttr -lock true ($groupname +"." + $attr);
Think Twice Split Poly Once
Grayth is offline   Reply With Quote

A little bit about who we are
Links you might find useful
Catch up with SimplyMaya
SimplyMaya specialises in Maya tutorials. We offer over 1,000 individual Maya training videos, ranging from basic Maya tutorials through to intermediate Maya tutorials. Our tutorials are created by instructors with industry experience and are designed to get you up and running in Maya quickly without making it seem like hard work.

Copyright © 1999-2017 SimplyMaya - vBulletin® Copyright © 2000-2017, Jelsoft Enterprises Ltd.