// SCRIPT: quickAnimation v1.0 // AUTHOR: Joey Miller - Technical Artist // CONTACT: millerlight13@gmail.com // WEB: www.willanimateforsnickerdoodles.com // // ADDS RANDOM ANIMATION TO WHATEVER IS SELECTED global proc quickAnimation() { string $winstuf = "Quick_Animation"; if (`window -exists $winstuf`)deleteUI -window $winstuf; window -w 320 -h 275 -s 1 -title $winstuf $winstuf; columnLayout -adjustableColumn true; text -font "boldLabelFont" -label "Select controls for randomizing" -h 20; intFieldGrp -enable true -numberOfFields 1 -label "Keyframe every :" -value1 50 "keyevery"; checkBox -v true -label "Rotation" -align "left" "rotation"; checkBox -v true -label "Reset rotation" -align "left" "resetrot"; intFieldGrp -enable true -numberOfFields 1 -label "random min" "min"; intFieldGrp -enable true -numberOfFields 1 -label "random max" -value1 15 "max"; checkBox -v false -label "Transform" -align "left" "transform"; separator -height 10 -style "out"; button -label "Animate" -c ("keyanim();") -h 30; button -label "Delete all animations" -c ("deleanim();") -h 30; button -label "Select last selection" -c (" select -r $getsel;") -h 30; showWindow; } quickAnimation(); global string $kak[]; string $kak[]={}; string $kak[]=`ls -tr "*ctrl" `; global string $getsel[]; string $getsel[]={}; global proc keyanim() { playButtonStart; global string $getsel[]; string $kak[]={}; string $kak[]=`ls -tr "*ctrl" `; string $mysell[]=`ls -sl`; if (size($mysell)>=1) { print "selection on"; global string $getsel[]; string $getsel[]=$mysell; } if (size($mysell)<1) { print "list selection is on "; global string $getsel[]; string $getsel[]; } float $maxtime=`playbackOptions -q -maxTime`; float $curtime= `currentTime -q`; int $frms=`intFieldGrp -q -value1 "keyevery"`; int $rndmax=`intFieldGrp -q -value1 "max"`;; int $rndmin=-`intFieldGrp -q -value1 "min"`;; for ($eve in $getsel) { float $radPREVx=getAttr ($eve+".rotateX"); float $radPREVy=getAttr ($eve+".rotateY"); float $radPREVz=getAttr ($eve+".rotateZ"); currentTime $curtime; float $daddd=($maxtime/$frms); for ($i=0;$i<$daddd;$i++) { select -r $eve; setKeyframe -breakdown 0 -hierarchy none -controlPoints 0 -shape 0 {$eve}; if (`checkBox -q -v "rotation"`==1 && `checkBox -q -v "resetrot"`==1 ) { print "with reset"; select -r $eve; float $radx=rand($rndmin,$rndmax); float $rady=rand($rndmin,$rndmax); float $radz=rand($rndmin,$rndmax); setAttr ($eve+".rotateX") 0; setAttr ($eve+".rotateY") 0; setAttr ($eve+".rotateZ") 0; select -r $eve; rotate -r -os $radx $rady $radz ; setKeyframe -breakdown 0 -hierarchy none -controlPoints 0 -shape 0 {$eve}; } if (`checkBox -q -v "rotation"`==1 && `checkBox -q -v "resetrot"`==0 ) { setAttr ($eve+".rotateX") $radPREVx; setAttr ($eve+".rotateY") $radPREVy; setAttr ($eve+".rotateZ") $radPREVz; float $radx=rand($rndmin,$rndmax); float $rady=rand($rndmin,$rndmax); float $radz=rand($rndmin,$rndmax); rotate -r -os $radx $rady $radz ; setKeyframe -breakdown 0 -hierarchy none -controlPoints 0 -shape 0 {$eve}; } if (`checkBox -q -v "transform"`==1) { float $radx=rand($rndmin,$rndmax); float $rady=rand($rndmin,$rndmax); float $radz=rand($rndmin,$rndmax); setAttr ($eve+".translateX") 0; setAttr ($eve+".translateY") 0; setAttr ($eve+".translateZ") 0; select -r $eve; move -r $radx $rady $radz ; } currentTime ( `currentTime -q` + $frms ); } } select -r $getsel; keyTangent -itt spline -ott spline -animation objects graphEditor1FromOutliner; playButtonStart; } global proc deleanim() { string $allMysels[]= `ls -transforms`; for ($everySel in $allMysels) { string $ifKeys[] = `keyframe -q -name $everySel`; for ($everyAnimCurves in $ifKeys) delete $everyAnimCurves; } }