def confirmWritePropReference(self, body=None): filepath = pm.sceneName() fileDir = os.path.dirname(filepath) project = Project() if not body: checkout = project.get_checkout(fileDir) bodyName = checkout.get_body_name() body = project.get_body(bodyName) if body.is_asset() and body.get_type() == AssetType.PROP: element = body.get_element(Department.MODEL) filepath = os.path.join(project.get_assets_dir(), element.get_cache_dir()) assemblies = pm.ls(assemblies=True) pm.select(pm.listCameras(), replace=True) cameras = pm.selected() pm.select([]) non_cameras = [ assembly for assembly in assemblies if assembly not in cameras ] self.exportPropJSON(filepath, non_cameras[0], isReference=False, name=body.get_name()) print("JSON references written successfully.")
def checkTransformations(*args, **kwargs): result = set() cameras = pm.listCameras() cameras = cameras if cameras else [] transforms = pm.ls(type='transform') transforms = [t for t in transforms if t not in cameras] if transforms else [] center = pm.dt.Vector([0.0, 0.0, 0.0]) for t in transforms: pivots = t.getPivots(worldSpace=True) tx = t.tx.get() ty = t.ty.get() tz = t.tz.get() rx = t.rx.get() ry = t.ry.get() rz = t.rz.get() sx = t.sx.get() sy = t.sy.get() sz = t.sz.get() if pivots[0] != center \ or pivots[1] != center \ or tx != 0.0 \ or ty != 0.0 \ or tz != 0.0 \ or rx != 0.0 \ or rz != 0.0 \ or sx != 0.0 \ or sy != 0.0 \ or sz != 0.0: result.add(t.name()) return list(result)
def exportCameras(self, cacheFolder, log): perspCameras = pm.listCameras(o=0, p=1) userCameras = [] for cam in perspCameras: if 'persp' not in cam: userCameras.append(cam) self.userCameras = userCameras for cam in userCameras: startTime = pm.playbackOptions(query=True, minTime=True) endTime = pm.playbackOptions(query=True, maxTime=True) pm.select(cam) fileName = cam + '.abc' fileName = os.path.join(cacheFolder, fileName).replace('\\', '/') jobstring = "AbcExport " jobstring += "-j \" -fr %d %d -worldSpace" % (startTime, endTime) jobstring += ' -root ' + cam jobstring += ' -file ' + fileName jobstring += '\"' print jobstring try: pm.hide(all=True) pm.select(cam) pm.showHidden(above=True) pm.mel.eval(jobstring) except: pm.warning('Could not export %s cam' % cam)
def refresh_allCam(self): self.allCam = pm.listCameras(o=False, p=True) pm.textScrollList(self.all_cams, edit=True, removeAll=True) pm.textScrollList( self.all_cams, edit=True, append=self.allCam, )
def __init__(self, **kwargs): self.version = "1.0.0" self.title = "adbrower - Cameras Tool" self.name = "CamTool_win" self.currentCam = pm.lookThru(q=1) self.allCam = pm.listCameras(o=False, p=True) self.ui()
def bdPopulateCameras(self): self.cameras = pm.listCameras(p=1) self.cameras.remove('persp') self.camerasTableWidget.setColumnCount(2) self.camerasTableWidget.setRowCount(len(self.cameras)) for i in range(len(self.cameras)): exportStatus = QtGui.QTableWidgetItem('True') exportStatus.setFlags(~QtCore.Qt.ItemIsEditable) self.camerasTableWidget.setItem(i, 0, exportStatus) cam = QtGui.QTableWidgetItem(self.cameras[i]) cam.setFlags(~QtCore.Qt.ItemIsEditable) self.camerasTableWidget.setItem(i, 1, cam)
def getCameras(self): allCameras = cmds.listCameras(perspective=True) selection = cmds.ls(sl=True) self.renderCameras = [i for i in allCameras if i in selection] for camera in allCameras: cmds.textScrollList( self.interface['Cameras'], edit=True, append=camera ) cmds.setAttr( getShapes(camera)[0] + '.renderable', 0) # cmds.menuItem( label=camera ) for camera in self.renderCameras: cmds.textScrollList( self.interface['Cameras'], edit=True, selectItem=camera) cmds.setAttr( getShapes(camera)[0] + '.renderable', 1)
def __init__(self, parent=None): super(cfxToolbox, self).__init__(parent=parent) self.currentCam = pm.lookThru(q=1) self.allCam = pm.listCameras(o=False, p=True) self.Original_startTime_value = 1001 self.Original_endTime = self.getCurrentTimeSlider() self.playbast_path = None self.setObjectName(self.UI_NAME) self.setWindowTitle('CFX Toolbox v{}'.format(VERSION)) self.setWindowFlags(QtCore.Qt.Tool) self.setAttribute(QtCore.Qt.WA_DeleteOnClose) self.resize(290, 900) # self.setFixedWidth(250) # ----------------------------- # --- Create scrollArea self.mainBox = QtWidgets.QVBoxLayout() self.mainBox.setContentsMargins(0, 0, 0, 0) self.scroll_layout = QtWidgets.QScrollArea() self.mainBox.addWidget(self.scroll_layout) self.setLayout(self.mainBox) self.scroll_layout.setContentsMargins(0, 0, 0, 0) self.scroll_layout.setWidgetResizable(True) self.scroll_layout.setFrameStyle(QtWidgets.QFrame.NoFrame) self.scroll_layout.setFrameShadow(QtWidgets.QFrame.Plain) self.scroll_widget = QtWidgets.QWidget() self.scroll_layout.setWidget(self.scroll_widget) # ----------------------------- # --- Main Layout self.main_layout = QtWidgets.QVBoxLayout() self.main_layout.setContentsMargins(2, 2, 4, 4) self.main_layout.setSpacing(2) self.setLayout(self.main_layout) self.widgetsAndLayouts() self.getOsDatas() self.getRootsData() self.create_Button() self.populate() self.buildMainLayout() self.scroll_widget.setLayout(self.main_layout)
def getCameras(self): allCameras = cmds.listCameras(perspective=True) selection = cmds.ls(sl=True) self.renderCameras = [i for i in allCameras if i in selection] for camera in allCameras: cmds.textScrollList(self.interface['Cameras'], edit=True, append=camera) cmds.setAttr(getShapes(camera)[0] + '.renderable', 0) # cmds.menuItem( label=camera ) for camera in self.renderCameras: cmds.textScrollList(self.interface['Cameras'], edit=True, selectItem=camera) cmds.setAttr(getShapes(camera)[0] + '.renderable', 1)
def exportProp(body): project = Project() element = body.get_element(Department.MODEL) filePath = os.path.join(project.get_assets_dir(), element.get_cache_dir()) assemblies = pm.ls(assemblies=True) pm.select(pm.listCameras(), replace=True) cameras = pm.selected() pm.select([]) non_cameras = [ assembly for assembly in assemblies if assembly not in cameras ] if len(non_cameras) > 0: exportPropJSON(filePath, non_cameras[0], isReference=False, name=body.get_name()) else: print "No non-camera assets found. Most likely this is a camera asset."
def checkTransformations(self): cameras = pm.listCameras() cameras = cameras if cameras else [] transforms = pm.ls(type='transform') transforms = [t for t in transforms if t not in cameras] if transforms else [] center = pm.dt.Vector([0.0, 0.0, 0.0]) self.data['report']['check transformations'] = [] with pm.uitypes.MainProgressBar(minValue=0, maxValue=len(transforms), interruptable=False) as bar: bar.setStatus('Check Transformations.') for t in transforms: bar.step(1) pivots = t.getPivots(worldSpace=True) tx = t.tx.get() ty = t.ty.get() tz = t.tz.get() rx = t.rx.get() ry = t.ry.get() rz = t.rz.get() sx = t.sx.get() sy = t.sy.get() sz = t.sz.get() if pivots[0] != center \ or pivots[1] != center \ or tx != 0.0 \ or ty != 0.0 \ or rx != 0.0 \ or ry != 0.0 \ or rz != 0.0 \ or sx != 0.0 \ or sy != 0.0 \ or sz != 0.0: t.name() in self.data['report']['check transformations'] \ or self.data['report']['check transformations'].append(t.name())
def get_top_level_nodes(): assemblies = pm.ls(assemblies=True) pm.select(pm.listCameras(), replace=True) cameras = pm.selected() pm.select([]) return [assembly for assembly in assemblies if assembly not in cameras]
def refreshCam(self): self.presetListLeft.clear() _allCam = pm.listCameras(o=False, p=True) [self.presetListLeft.addItem(cam) for cam in _allCam]
def getPerspectiveCameras(): pcamlist = pm.listCameras(perspective=True) return pcamlist