/* Author: Walter Behrnes Script Name: AnimateObjSequence.mel Script Version: 1.0 Maya Version: 8.5+ usage: create a sequence of .obj files with no frame padding using naming sceme of name.#.obj to start run: source "C:/Documents and Settings/USERNAME/My Documents/maya/scripts/AnimatedObjSequence.mel";aosMakeWin(); or source script and run aosMakeBlendShape("Path To Objects","Object Name",Start Frame, EndFrame); */ global proc aosMakeWin() { string $aoswindow = `window -title "IMPORT OBJ SEQUENCE CONVERT TO BLENDSHAPE" -w 300 -h 200`; columnLayout -adj true; text -label "PATH"; textField -tx "C:/PATH/TO/TEXT/" path; text -label "NAME"; textField -tx "Object name MINUS number and extention" name; text -label "START FRAME "; intSliderGrp -field true -field true -minValue -10 -maxValue 240 -fieldMinValue -10000 -fieldMaxValue 10000 -value 1 start; text -label "LAST FRAME "; intSliderGrp -field true -minValue -10 -maxValue 240 -fieldMinValue -10000 -fieldMaxValue 10000 -value 240 end; button -label "DO IT" -align "center" -c "aosGetValues()" ; showWindow $aoswindow; } global proc aosGetValues() { //GET VALUES string $path = `textField -q -tx path`; string $objName = `textField -q -tx name`; int $startFrame = `intSliderGrp -q -value start`; int $totalFrames = `intSliderGrp -q -value end`; //CALL MAIN LOOP aosMakeBlendShape($path,$objName,$startFrame,$totalFrames); } global proc aosMakeBlendShape(string $path,string $objName,int $startFrame, int $totalFrames) { //string $path = "C:\\Temp\\"; //string $objName = "blob"; //int $startFrame = 1; //int $totalFrames = 60; string $before[]; string $after[]; string $diff[]; string $objects[]; print "IMPORTING OBJECTS..."; for($i = $startFrame;$i<=$totalFrames;$i++) { //IMPORT OBJECT string $importObj = $path+$objName+"."+$i+".obj"; string $currentObject = $objName+$i; //GET NAME OF OBJECTS IN SCENE $before = `ls -as`; //IMPORT FILE file -import -type "OBJ" -options "mo=1" $importObj; //UPDATED NAMES OF OBJECT IN SCENE $after = `ls -as`; //GET NEWEST ITEM $diff = stringArrayRemoveExact($before,$after); //RENAME CURRENT ITEM rename $diff[0] $currentObject; //FOR EVERY ITEM THAT IS NOT THE FIRST ITEM ADD TO ARRAY if($i != $startFrame) { hide $currentObject; string $objectAdd[]; $objectAdd[0] = $currentObject; $objects = stringArrayCatenate($objects , $objectAdd ); } } print "\n"; //CREATE BLENDSHAPE AND DELETE TARGETS select -r $objects; select -add ($objName+$startFrame); blendShapeDeleteTarget "blendShape"; print "SETTING KEY FRAMES"; //SET KEY FRAMES ON CURRENT BLENDSHAPE PER SHAPE PER FRAME for($i = ($startFrame+1);$i<=$totalFrames;$i++) { //CREATE A NAME VAR FOR REFERENCING BLENDSHAPE string $bName = ("blendShape1."+$objName+$i); //SET TO 0 FRAME BEFORE currentTime -update no ($i-1) ; setAttr $bName 0; setKeyframe $bName; //SET TO 1 FOR FRAME currentTime -update no ($i); setAttr $bName 1; setKeyframe $bName; //SET TO 0 FRAME AFTER currentTime -update no ($i+1) ; setAttr $bName 0; setKeyframe $bName; } Print "\nDONE"; }