//Author : Walter Behrnes //Contact: waldo_27@hotmail.com //Script Name: Shaker //Version: 1.0 //Description: Create a camera which shakes //1 copy to script directory //2 in script editor or command line type in ShakeyCam(); ////////////////////////////////////////////////////////////// // Please do not edit above this line // Edit at your own risk below this line ////////////////////////////////////////////////////////////// global proc ShakeyCam() { if( `objExists CameraShake` ) { string $result = `confirmDialog -title "Confirm" -message "Delete old Shakey Camera?" -button "Yes" -button "No" -defaultButton "Yes" -cancelButton "No" -dismissString "No"`; if ($result == "Yes") { delete CameraShake; } else { error "CameraShake already exist :: Exiting script";} } camera -n SteadyCam -p 0 0 0; spaceLocator -p 0 0 -2 -n shakelocator; addAttr -ln MinShakeX -sn MnSX -at "float" -min -10.000 -max 10.000 -dv 0.000 -keyable 1; addAttr -ln MaxShakeX -sn MxSX -at "float" -min -10.000 -max 10.000 -dv 0.500 -keyable 1; addAttr -ln MinShakeY -sn MnSY -at "float" -min -10.000 -max 10.000 -dv 0.000 -keyable 1; addAttr -ln MaxShakeY -sn MxSY -at "float" -min -10.000 -max 10.000 -dv 0.500 -keyable 1; addAttr -ln MinShakeZ -sn MnSZ -at "float" -min -10.000 -max 10.000 -dv 0.000 -keyable 1; addAttr -ln MaxShakeZ -sn MxSZ -at "float" -min -10.000 -max 10.000 -dv 0.500 -keyable 1; addAttr -ln TimeOffset -sn TO -min 1 -max 10 -dv 3 -keyable 1; setAttr -keyable off shakelocator.rotateY; setAttr -keyable off shakelocator.rotateX; setAttr -keyable off shakelocator.rotateZ; setAttr -keyable off shakelocator.translateY; setAttr -keyable off shakelocator.translateX; setAttr -keyable off shakelocator.translateZ; setAttr -keyable off shakelocator.scaleY; setAttr -keyable off shakelocator.scaleX; setAttr -keyable off shakelocator.scaleZ; setAttr -keyable off shakelocator.visibility; group -r -n CameraShake SteadyCam1 shakelocator; expression -o "CameraShake" -s "float $currentFrame =`currentTime -q`; \n int $offSet = CameraShake|shakelocator.TimeOffset; \n int $go = `fmod $currentFrame $offSet`; \n if ($go == 0){ \n float $rX = gauss(shakelocator.MnSX, shakelocator.MxSX); \n float $rY = gauss(shakelocator.MnSY, shakelocator.MxSY); \n float $rZ = gauss(shakelocator.MnSZ, shakelocator.MxSZ); \n rx = SteadyCam1.rotateX - (SteadyCam1.rotateX - $rX); \n ry = SteadyCam1.rotateY - (SteadyCam1.rotateY - $rY); \n rz = SteadyCam1.rotateZ - (SteadyCam1.rotateZ - $rZ); \n };"; }