macroScript autoKeyer_OLD category: "SniperScripts" toolTip: "autoKeyer v1.0 by Sniper_OLD" buttonText: "autoKeyer_OLD" ( rollout info "info" rolledUp:true ( hyperLink myAddress "http://www.axadius.deviantart.com" color:white hoverColor:red visitedColor:yellow address: "http://www.axadius.deviantart.com" align:#center label allRightsReserved2 "Axadius2010" ) rollout alignObjects "Objects" ( label label5 "Choose object which will be aligned" pickbutton alignSource "pick object" label label6 "Choose object to match previous one to" pickbutton alignDest "pick object" on alignSource picked obj1 do ( global object1 = obj1 alignSource.text = obj1.name ) on alignDest picked obj2 do ( global object2 = obj2 alignDest.text = obj2.name ) ) rollout choose_controllers "Controllers and range" ( label label3 "Check desired controllers" checkbox selPosition "position" align: #center across:3 checkbox selRotation "rotation" align: #center checkbox selScale "scale" align: #center label albel1 "----------------------" align:#center label label4 "Set range of time (frames)" spinner startFrame "startF" type:#integer across:2 align:#center range:[0, 999999, 0] spinner endFrame "endF" type:#integer range:[0, 999999, 0] label label2 "" button runScriptBtn "run script" progressBar progress color:red value:0 label done " " on runScriptBtn pressed do ( startFrame.value = (startFrame.value - 1 ) endFrame.value = endFrame.value done.text = "computing..." sliderTime = startFrame.value ------------------------------------------------------------ if selPosition.checked do addNewKey object1.position.controller startFrame.value if selRotation.checked do addNewKey object1.rotation.controller startFrame.value if selScale.checked do addNewKey object1.scale.controller startFrame.value startFrame.value += 1 sliderTime += 1 progress.value = ( 100 * startFrame.value ) / endFrame.value ------------------------------------------------------------ set animate on startValue = ( startFrame.value ) prevRot = object2.rotation while startFrame.value <= endFrame.value do ( if selRotation.checked do ( in coordsys world x = object1.rotation in coordsys world y = object2.rotation in coordsys local object1.rotation = y - x ) if selScale.checked do ( object1.scale = object2.scale ) if selPosition.checked do ( object1.pos = object2.pivot ) if selPosition.checked do addNewKey object1.position.controller startFrame.value if selRotation.checked do addNewKey object1.rotation.controller startFrame.value if selScale.checked do addNewKey object1.scale.controller startFrame.value startFrame.value += 1 sliderTime += 1 progress.value = ( 100 * startFrame.value ) / endFrame.value ) sliderTime = endFrame.value startFrame.value = startValue set animate off progress.value = 100 progress.color = green done.text = "finished" ) ) rollout RotateSpineArms "Rotate Spine&Arms" ( local obj button btnRotatePel "RotateSpine" pos:[117,0] button btnRotateArm "RotateArms" pos:[40,0] fn rotateSpine= ( in coordsys local rotate selection (angleaxis -115 [1,0,0]) ) fn rotateArms= ( in coordsys local rotate selection (angleaxis -90 [1,0,0]) ) -- Event Handlers on btnRotatePel pressed do rotateSpine(); on btnRotateArm pressed do rotateArms(); ) ( try( CloseRolloutFloater pluginWindow ) catch() pluginWindow = newRolloutFloater "autoKeyer" 245 410 100 350 addRollout info pluginWindow addRollout alignObjects pluginWindow addRollout RotateSpineArms pluginWindow addRollout choose_controllers pluginWindow ) )