def doPlayblast(self, camera): G.TU_movie = None G.TU_audioFile = None G.TU_audioOffsetSec = None winName = 'playblastWindow' overscan = cmds.getAttr("%s.overscan"%camera) audioTrack = cmds.timeControl(G.playBackSliderPython, query=True, sound=True) rangeVisible = cmds.timeControl(G.playBackSliderPython, query=True, rangeVisible=True ) widthHeight = utilMod.getRenderResolution() if cmds.window(winName, query=True, exists=True): cmds.deleteUI(winName) window = cmds.window(winName, widthHeight=widthHeight) form = cmds.formLayout() editor = cmds.modelEditor() column = cmds.columnLayout('true') cmds.formLayout( form, edit=True, attachForm=[(column, 'top', 0), (column, 'left', 0), (editor, 'top', 0), (editor, 'bottom', 0), (editor, 'right', 0)], attachNone=[(column, 'bottom'), (column, 'right')], attachControl=(editor, 'left', 0, column)) cmds.modelEditor(editor, edit=True, camera=camera, activeView=True) cmds.showWindow( window ) cmds.window( winName, edit=True, topLeftCorner=(0, 0), widthHeight=[200,200]) utilMod.cameraViewMode(editor) cmds.setAttr("%s.overscan"%camera, 1) if rangeVisible: range = animMod.getTimelineRange(float=False) rFrom = range[0] rTo = range[1]-1 else: rFrom = cmds.playbackOptions(query=True, minTime=True) rTo = cmds.playbackOptions(query=True, maxTime=True) if G.currentStudio == None: G.TU_movie = cmds.playblast(format="qt", sound=audioTrack, startTime=rFrom ,endTime=rTo , viewer=1, showOrnaments=0, offScreen=True, fp=4, percent=50, compression="png", quality=70, widthHeight=widthHeight, clearCache=True) else: fps = mel.eval("currentTimeUnitToFPS") if audioTrack: G.TU_audioFile = cmds.sound(audioTrack, query=True, file=True) audioOffset = cmds.sound(audioTrack, query=True, offset=True) G.TU_audioOffsetSec = str((rFrom - audioOffset)/-fps) movieName = cmds.playblast(format="image", startTime=rFrom ,endTime=rTo , viewer=0, showOrnaments=0, offScreen=True, fp=4, percent=50, compression="jpg", quality=70, widthHeight=widthHeight, clearCache=True) if movieName: G.TU_movie = "%s.%s-%s#.jpg"%(movieName.split(".")[0], int(rFrom), int(rTo)) if audioTrack: G.TU_audioOffsetSec = audioOffset self.playMovie(G.TU_movie, G.TU_audioFile, G.TU_audioOffsetSec) if cmds.window(winName, query=True, exists=True): cmds.deleteUI(winName) cmds.setAttr("%s.overscan"%camera, overscan) if not G.TU_movie: return save = aToolsMod.getUserPref("saveAfterPlayblasting", default=True) if save and not rangeVisible: cmds.file(save=True)
def populateMenu(self, menu, *args): uiMod.clearMenuItems(menu) cmds.radioMenuItemCollection(parent=menu) #populate list for loopCamera in utilMod.getAllCameras(): radioSelected = (animMod.getShotCamera() == loopCamera) cameraName = cmds.listRelatives(loopCamera, allParents=True)[0] cmds.menuItem("menu_%s"%loopCamera, label=str(cameraName), radioButton=radioSelected, parent=menu, command=lambda x, loopCamera=loopCamera, *args: aToolsMod.saveInfoWithScene(STORE_NODE, CAMERA_ATTR, loopCamera)) # last playblast menu cmds.menuItem(divider=True, parent=menu) checkBoxSelected = aToolsMod.getUserPref("saveAfterPlayblasting", default=True) cmds.menuItem("saveAfterPlayblastingMenu", label='Save Maya File After Playblasting', checkBox=checkBoxSelected, command=self.setSaveAfterPlayblastingPref, parent=menu) cmds.menuItem(divider=True, parent=menu) cmds.menuItem (label="Duplicate Selected Camera", command=self.duplicateCamera, parent=menu) cmds.menuItem (label="Playblast Viewport", command=self.playblastViewport, parent=menu) cmds.menuItem (label="Play Last Playblast", command=self.playLastPlayblast, parent=menu)
def populateMenu(self, menu, *args): uiMod.clearMenuItems(menu) cmds.radioMenuItemCollection(parent=menu) #populate list for loopCamera in utilMod.getAllCameras(): radioSelected = (animMod.getShotCamera() == loopCamera) cameraName = cmds.listRelatives(loopCamera, allParents=True)[0] cmds.menuItem( "menu_%s" % loopCamera, label=str(cameraName), radioButton=radioSelected, parent=menu, command=lambda x, loopCamera=loopCamera, *args: aToolsMod. saveInfoWithScene(STORE_NODE, CAMERA_ATTR, loopCamera)) # last playblast menu cmds.menuItem(divider=True, parent=menu) checkBoxSelected = aToolsMod.getUserPref("saveAfterPlayblasting", default=True) cmds.menuItem("saveAfterPlayblastingMenu", label='Save Maya File After Playblasting', checkBox=checkBoxSelected, command=self.setSaveAfterPlayblastingPref, parent=menu) cmds.menuItem(divider=True, parent=menu) cmds.menuItem(label="Duplicate Selected Camera", command=self.duplicateCamera, parent=menu) cmds.menuItem(label="Playblast Viewport", command=self.playblastViewport, parent=menu) cmds.menuItem(label="Play Last Playblast", command=self.playLastPlayblast, parent=menu)
def doPlayblast(self, camera): G.TU_movie = None G.TU_audioFile = None G.TU_audioOffsetSec = None winName = 'playblastWindow' overscan = cmds.getAttr("%s.overscan" % camera) audioTrack = cmds.timeControl(G.playBackSliderPython, query=True, sound=True) rangeVisible = cmds.timeControl(G.playBackSliderPython, query=True, rangeVisible=True) widthHeight = utilMod.getRenderResolution() if cmds.window(winName, query=True, exists=True): cmds.deleteUI(winName) window = cmds.window(winName, widthHeight=widthHeight) form = cmds.formLayout() editor = cmds.modelEditor() column = cmds.columnLayout('true') cmds.formLayout(form, edit=True, attachForm=[(column, 'top', 0), (column, 'left', 0), (editor, 'top', 0), (editor, 'bottom', 0), (editor, 'right', 0)], attachNone=[(column, 'bottom'), (column, 'right')], attachControl=(editor, 'left', 0, column)) cmds.modelEditor(editor, edit=True, camera=camera, activeView=True) cmds.showWindow(window) cmds.window(winName, edit=True, topLeftCorner=(0, 0), widthHeight=[200, 200]) utilMod.cameraViewMode(editor) cmds.setAttr("%s.overscan" % camera, 1) if rangeVisible: range = animMod.getTimelineRange(float=False) rFrom = range[0] rTo = range[1] - 1 else: rFrom = cmds.playbackOptions(query=True, minTime=True) rTo = cmds.playbackOptions(query=True, maxTime=True) if G.currentStudio == None: G.TU_movie = cmds.playblast(format="qt", sound=audioTrack, startTime=rFrom, endTime=rTo, viewer=1, showOrnaments=0, offScreen=True, fp=4, percent=50, compression="png", quality=70, widthHeight=widthHeight, clearCache=True) else: fps = mel.eval("currentTimeUnitToFPS") if audioTrack: G.TU_audioFile = cmds.sound(audioTrack, query=True, file=True) audioOffset = cmds.sound(audioTrack, query=True, offset=True) G.TU_audioOffsetSec = str((rFrom - audioOffset) / -fps) movieName = cmds.playblast(format="image", startTime=rFrom, endTime=rTo, viewer=0, showOrnaments=0, offScreen=True, fp=4, percent=50, compression="jpg", quality=70, widthHeight=widthHeight, clearCache=True) if movieName: G.TU_movie = "%s.%s-%s#.jpg" % (movieName.split(".")[0], int(rFrom), int(rTo)) if audioTrack: G.TU_audioOffsetSec = audioOffset self.playMovie(G.TU_movie, G.TU_audioFile, G.TU_audioOffsetSec) if cmds.window(winName, query=True, exists=True): cmds.deleteUI(winName) cmds.setAttr("%s.overscan" % camera, overscan) if not G.TU_movie: return save = aToolsMod.getUserPref("saveAfterPlayblasting", default=True) if save and not rangeVisible: cmds.file(save=True)