def setFrameRangeData(): start_frame = float(os.getenv('FS')) end_frame = float(os.getenv('FE')) shot_id = os.getenv('FTRACK_SHOTID') shot = ftrack.Shot(id=shot_id) fps = shot.get('fps') if 'handles' in shot.keys(): handles = float(shot.get('handles')) else: handles = 0.0 print 'setting timeline to %s %s ' % (start_frame, end_frame) # add handles to start and end frame hsf = (start_frame - 1) - handles hef = end_frame + handles hou.setFps(fps) hou.setFrame(start_frame) try: if start_frame != end_frame: hou.hscript("tset {0} {1}".format((hsf) / fps, hef / fps)) hou.playbar.setPlaybackRange(start_frame, end_frame) except IndexError: pass
def _onNewHoudiniFile(self, name: str, file_dialog: re_project_manager.NewFileDialogUI): default_ext = HoudiniProjectManagerUI.getExtension() if not name.lower().endswith(default_ext): name = name + default_ext new_file_name = Path(name) if new_file_name.exists(): QtWidgets.QMessageBox.question( self, "File already exists!", "File with this name already exists!", QtWidgets.QMessageBox.Ok) else: hou.hipFile.clear() hou.hipFile.setName(new_file_name.as_posix()) hou.hscript("set -g HRES={}".format( re_project.get_project_default_rez()['x'])) hou.hscript("set -g VRES={}".format( re_project.get_project_default_rez()['y'])) hou.setFps(re_project.get_project_default_fps()) if file_dialog.asset_type == re_project_manager.NewFileDialogUI.ASSET_TYPE_SHOT: hou.playbar.setFrameRange(1001, 1200) hou.playbar.setPlaybackRange(1001, 1200) hou.setFrame(1001) hou.hscript("set -g NAME={}".format(file_dialog.asset_main_name)) hou.hipFile.save() self.statusBar.showMessage("New Houdini file {} created".format( new_file_name.name))
def init_setup_the_scene(fps, in_frame, out_frame): """ set the scene in Manual """ hou.setUpdateMode(hou.updateMode.Manual) """ set the timeline """ hou.setFps(fps) hou.hscript("tset `((%s-1)/$FPS)` `(%s/$FPS)`" % (in_frame, out_frame)) hou.playbar.setPlaybackRange(in_frame, out_frame) hou.setFrame(in_frame)
def set_project(kwargs): node = kwargs['node'] project_name = node.evalParm('proj') # project_name = kwargs['script_value'] node.parm('scene').set('') unset_all_scene_vars() data = read_json() if project_name == '-': hou.unsetenv('PROJECT') hou.unsetenv('CODE') hou.unsetenv('PROJ_FPS') hou.setFps(24) hou.unsetenv('PROJECT_PATH') hou.unsetenv('SCENES_PATH') hou.unsetenv('HDA_PATH') hou.unsetenv('SCRIPTS_PATH') node.cook(True) return try: project_data = data[project_name] except KeyError: util.error('Project Data not found') return hou.putenv('PROJECT', project_name) hou.putenv('CODE', project_data['CODE']) fps = project_data['FPS'] hou.putenv('PROJ_FPS', str(fps)) hou.setFps(fps) project_path = project_data['PATH'] hou.putenv('PROJECT_PATH', project_data['PATH']) create_folder_and_var('SCENES_PATH', util.fix_path(os.path.join(project_path, 'scenes'))) hda_path = util.fix_path(os.path.join(project_path, 'hda')) create_folder_and_var('HDA_PATH', hda_path) scripts_path = util.fix_path(os.path.join(project_path, 'scripts')) create_folder_and_var('SCRIPTS_PATH', scripts_path) hda_paths = [hda_path, ] scan_path = hou.getenv('HOUDINI_OTLSCAN_PATH') if scan_path: hda_paths += scan_path.split(';') hda_paths = list(set(hda_paths)) hou.putenv('HOUDINI_OTLSCAN_PATH', ';'.join(hda_paths)) hou.hda.reloadAllFiles() sys.path.append(scripts_path) node.cook(True)
def set_fps(self, fps=25): """sets the time unit of the environment """ if fps <= 0: return # keep the current start and end time of the time range start_frame, end_frame = self.get_frame_range() hou.setFps(fps) self.set_frame_range(start_frame, end_frame)
def setGlobalSettings(self): hou.setFps(self.FPS) start_frame = self.FStart end_frame = self.FEnd setGobalFrangeExpr = 'tset `(%d-1)/$FPS` `%d/$FPS`' % (start_frame, end_frame) hou.hscript(setGobalFrangeExpr) hou.playbar.setPlaybackRange(start_frame, end_frame) self.cameraNode.parm("resx").set(self.With) self.cameraNode.parm("resy").set(self.Hight)
def copyTimeSettings( projName, seqName, shotName ): """copy time settings from animation file""" proj = prj.Project( projName ) seq = proj.sequence( seqName ) sht = seq.shot( shotName ) tim = sht.animPath.time fpsVals = {'pal':25,'film':24} hou.setFps( fpsVals[tim['tim']] ) cmd = 'tset `('+ str( tim[ 'ast' ] ) +'-1)/$FPS` `'+ str( tim[ 'aet' ] )+'/$FPS`' hou.hscript(cmd) hou.playbar.setPlaybackRange( tim[ 'ast' ], tim[ 'aet' ])
def set_show_preferences(self, fields): show_prefs = preferences.Preferences( pref_file_name="show_preferences.yaml", role=fields.get("Step"), seq_override=fields.get("Sequence"), shot_override=fields.get("Shot")) try: hou.setFps(show_prefs["show_settings"]["fps"]) except KeyError as ke: warning_message = "Unable to find {} in show preferences. " \ "Not setting fps.".format(ke) self.parent.logger.warning(warning_message) QtGui.QMessageBox.warning(None, "FPS not set", warning_message)
def set_defaults(self): """ Automatically set some defaults from the shot settings for a new scene. """ startFrame = int(os.environ['IC_STARTFRAME']) endFrame = int(os.environ['IC_ENDFRAME']) fps = float(os.environ['IC_FPS']) startTime = (float(startFrame) - 1) / float(fps) endTime = float(endFrame) / float(fps) hou.setFps(fps) hou.hscript('tset %s %s' % (startTime, endTime)) hou.playbar.setPlaybackRange(startFrame, endFrame) # hou.setFrame(startFrame) self.set_hip_and_job_vars()
def fps_scene_opened(self): # get shotgun project fps project = self.context.project sg_filters = [['id', 'is', project['id']]] project_fps = self.sgtk.shotgun.find_one('Project', filters=sg_filters, fields=[self._shotgun_fps_field])[self._shotgun_fps_field] # force to self._default_fps if not defined in Shotgun if not project_fps: project_fps = self._default_fps self.log_warning("Shotgun project fps is not defined, assuming it should be {}".format(self._default_fps)) if project_fps != hou.fps(): # check if scene is not empty if len(hou.node('/obj').children()) != 0: self.log_info("Detected that Houdini fps does not match the Shotgun project fps!") # Prompt the user if they want to change the fps, return if negative if hou.ui.displayMessage("The current hip file fps ({}) does not match the Shotgun project fps ({})!\nChange FPS?".format(hou.fps(), project_fps), buttons=("Yes", "No")) != 0: return hou.setFps(project_fps)
def InitTask(self, taskPathName, projData): obj = hou.node("/obj") taskGrpName = btpVfxProject.TaskNodeNameByTaskPathName(taskPathName) taskNode = obj.createNode("geo", node_name=taskGrpName) fileObj = hou.node("/obj/%s/file1" % taskGrpName) fileObj.destroy() taskNode.addSpareParmTuple( hou.StringParmTemplate("taskPath", "taskPath", 1)) taskNode.addSpareParmTuple( hou.StringParmTemplate("version", "version", 1)) taskNode.addSpareParmTuple( hou.StringParmTemplate("projName", "projName", 1)) taskNode.setParms({ "taskPath": taskPathName, "projName": btpVfxProject.ProjName(), "version": "0" }) projInfo = btpVfxProject.ProjInfo() hou.setFps({"film": 24, "ntsc": 30, "pal": 25}[projInfo["fps"]]) taskCamNode = obj.createNode("cam", node_name="%s_Cam" % taskGrpName) taskCamNode.setParms({ "resx": float(projInfo["resW"]), "resy": float(projInfo["resH"]) })
hou.hscript("set -g BP_SHOTS_PATH = {0}".format(BP_SHOTS_PATH)) hou.hscript("set -g BP_HDRI_PATH = {0}".format(BP_HDRI_PATH)) hou.hscript("set -g BP_OTL_PATH = {0}".format(BP_OTL_PATH)) hou.hscript("set -g BP_RENDER_PATH = {0}".format(BP_RENDER_PATH)) hou.hscript("set -g JOB = {0}".format(BP_SCRIPTS_PATH)) print("Environment variables set.") except: print("Could not set environment variables.") # Set Scene Values # ----------------------------------------------------------------------------- # FPS hou.setFps(FPS) print("FPS set to {0}".format(FPS)) # Set Framerange if HIPNAME == "untitled": hou.hscript("tset `{0}/$FPS` `{1}/$FPS`".format(FSTART, FEND)) hou.playbar.setPlaybackRange(RFSTART, RFEND) hou.playbar.setRealTime(True) hou.setFrame(RFSTART) print("Default Framerange set.") # Success messages print("456.cmd successfully executed.") print("Welcome " + USER)
def _set_fps(fps): hou.setFps(fps)
hou.hscript('set -g BP_SHOT_NAME = {0}'.format(BP_SHOT_NAME)) hou.hscript('set -g BP_SHOTS_PATH = {0}'.format(BP_SHOTS_PATH)) hou.hscript('set -g BP_HDRI_PATH = {0}'.format(BP_HDRI_PATH)) hou.hscript('set -g BP_OTL_PATH = {0}'.format(BP_OTL_PATH)) hou.hscript('set -g BP_RENDER_PATH = {0}'.format(BP_RENDER_PATH)) hou.hscript('set -g JOB = {0}'.format(BP_SCRIPTS_PATH)) print('Environment variables set.') except: print("Could not set environment variables.") # Set Scene Values # ----------------------------------------------------------------------------- # FPS hou.setFps(FPS) print("FPS set to {0}".format(FPS)) # Set Framerange if (HIPNAME == 'untitled'): hou.hscript('tset `{0}/$FPS` `{1}/$FPS`'.format(FSTART, FEND)) hou.playbar.setPlaybackRange(RFSTART, RFEND) hou.playbar.setRealTime(True) hou.setFrame(RFSTART) print("Default Framerange set.") # Success messages print("456.cmd successfully executed.") print("Welcome " + USER)
def set_frame_rate(self, fps): import hou hou.setFps(fps)
def set_scene_fps(fps): hou.setFps(fps)
def setFPS(self, origin, fps): frange = self.getFrameRange(origin) hou.setFps(fps) self.setFrameRange(origin, frange[0], frange[1])
def buildShot_main(self, **connections): try: Shot = str(connections["Shot"]) except: Shot = "" try: Type = str(connections["Type"]) except: Type = "" try: Project = connections["Project"] except: Project = "" try: shotOverride = str(connections["shotOverride"]) except: shotOverride = "" try: oas_output = connections["oas_output"] except: oas_output = "version" try: Sequence = getSeq(Project, Shot) if str(geT(":" + Project + ":Movie:" + Sequence + ":" + Shot)) == "" or str( geT(":" + Project + ":Movie:" + Sequence + ":" + Shot)) == "0": return 0 hou.hipFile.clear() hou.node("/obj").createNode("null", "ShotData") path = "/obj/ShotData" hou.node(path).addSpareParmFolder("projectDB") hou.node(path).addSpareParmFolder("NotLoadedAssets") hou.node(path).addSpareParmFolder("Setupversions") hou.node(path).addSpareParmFolder("PassBelongings") hou.node(path).addSpareParmFolder("BuildBelongings") pp = hou.StringParmTemplate("dbProject", "dbProject", 1, (Project, )) hou.node(path).addSpareParmTuple(pp, ("projectDB", )) hou.node(path).parm("dbProject").lock(True) pt = hou.StringParmTemplate("dbShot", "dbShot", 1, (Shot, )) hou.node(path).addSpareParmTuple(pt, ("projectDB", )) hou.node(path).parm("dbShot").lock(True) pt = hou.StringParmTemplate("dbShotType", "dbShotType", 1, (Type, )) hou.node(path).addSpareParmTuple(pt, ("projectDB", )) hou.node(path).parm("dbShotType").lock(True) hou.node(path).setDisplayFlag(False) fps = getA(":" + Project + ".fps") hou.setFps(int(fps)) framerange = getFR(Project, Shot) hou.hscript("tset `" + str(int(framerange[0]) - 1) + "/$FPS` `" + str(framerange[1]) + "/$FPS`") hou.setFrame(int(framerange[0])) attribute = "" if shotOverride != "": if os.path.isfile(shotOverride): fl = open(shotOverride, "r") attribute = fl.read() attribute = attribute.strip() fl.close() else: attribute = getA(":" + Project + ":Movie:" + Sequence + ":" + Shot + ".shotsetup") if attribute == "" or attribute == 0: attribute = getA(":" + Project + ":Movie:" + Sequence + ".shotsetup") if attribute == "": return 0 parsed = [] for line in attribute.split("\n"): linearray = [] for entry in line.split("|"): linearray.append(entry.strip()) parsed.append(linearray) passes = [] for item in parsed: if item[1] == "Pass": passes.append(item[0]) allpass = "" for psa in passes: allpass += psa + "," try: if allpass[-1:] == ",": allpass = allpass[:-1] except: pass allbuild = "111" for item in parsed: try: psez = item[5] except: psez = allpass try: blls = item[6] except: blls = allbuild if item[3] == "0" or item[3] == "": item[3] = "v000" if item[4] == "0" or item[4] == "": item[4] = "v000" if item[1] == "Model": if loadORnot(Type, psez, blls) == 1: LHD(item[2], "Model", item[3], ":" + Project + ":Assets:Items:" + item[2], item[0]) hou.node("/obj/" + item[0]).matchCurrentDefinition() hou.node("/obj/" + item[0]).setDisplayFlag(False) else: pt = hou.StringParmTemplate( item[0] + "_nL", item[0], 1, (item[0] + "|" + item[1] + "|" + item[2] + "|" + item[3] + "|" + item[4] + "|" + item[5] + "|" + item[6], )) hou.node(path).addSpareParmTuple( pt, ("NotLoadedAssets", )) if item[1] == "Deform": if loadORnot(Type, psez, blls) == 1: LHD(item[2], "Deform", item[3], ":" + Project + ":Assets:Items:" + item[2], item[0]) hou.node("/obj/" + item[0]).matchCurrentDefinition() hou.node("/obj/" + item[0]).setDisplayFlag(False) else: pt = hou.StringParmTemplate( item[0] + "_nL", item[0], 1, (item[0] + "|" + item[1] + "|" + item[2] + "|" + item[3] + "|" + item[4] + "|" + item[5] + "|" + item[6], )) hou.node(path).addSpareParmTuple( pt, ("NotLoadedAssets", )) elif item[1] == "Setup": if loadORnot(Type, psez, blls) == 1: LHD(item[2], "Setup", item[3], ":" + Project + ":Assets:Items:" + item[2], item[0]) hou.node("/obj/" + item[0]).matchCurrentDefinition() hou.node("/obj/" + item[0]).setDisplayFlag(False) else: pt = hou.StringParmTemplate( item[0] + "_nL", item[0], 1, (item[0] + "|" + item[1] + "|" + item[2] + "|" + item[3] + "|" + item[4] + "|" + item[5] + "|" + item[6], )) hou.node(path).addSpareParmTuple( pt, ("NotLoadedAssets", )) elif item[1] == "Material": if loadORnot(Type, psez, blls) == 1: LHD(item[2], "Material", item[3], ":" + Project + ":Assets:Items:" + item[2], item[0]) hou.node("/obj/" + item[0]).matchCurrentDefinition() hou.node("/obj/" + item[0]).setDisplayFlag(False) else: pt = hou.StringParmTemplate( item[0] + "_nL", item[0], 1, (item[0] + "|" + item[1] + "|" + item[2] + "|" + item[3] + "|" + item[4] + "|" + item[5] + "|" + item[6], )) hou.node(path).addSpareParmTuple( pt, ("NotLoadedAssets", )) elif item[1] == "Engine": if loadORnot(Type, psez, blls) == 1: LHD(item[2], "Engine", item[3], ":" + Project + ":Assets:Engines:" + item[2], item[0]) hou.node("/obj/" + item[0]).matchCurrentDefinition() hou.node("/obj/" + item[0]).setDisplayFlag(False) else: pt = hou.StringParmTemplate( item[0] + "_nL", item[0], 1, (item[0] + "|" + item[1] + "|" + item[2] + "|" + item[3] + "|" + item[4] + "|" + item[5] + "|" + item[6], )) hou.node(path).addSpareParmTuple( pt, ("NotLoadedAssets", )) elif item[1] == "Camera": LHD(item[2], "Camera", item[3], ":General:Assets:CameraSetups:" + item[2], item[0]) hou.node("/obj/" + item[0]).matchCurrentDefinition() elif item[1] == "Misc": if loadORnot(Type, psez, blls) == 1: LHD( item[2], "Misc", item[3], ":" + Project + ":Movie:" + Sequence + ":" + Shot + ":Assets:Misc:" + item[2], item[0]) hou.node("/obj/" + item[0]).matchCurrentDefinition() hou.node("/obj/" + item[0]).setDisplayFlag(False) else: pt = hou.StringParmTemplate( item[0] + "_nL", item[0], 1, (item[0] + "|" + item[1] + "|" + item[2] + "|" + item[3] + "|" + item[4] + "|" + item[5] + "|" + item[6], )) hou.node(path).addSpareParmTuple( pt, ("NotLoadedAssets", )) elif item[1] == "Pass": if loadORnot(Type, psez, blls) == 1: LHD( item[2], "Pass", item[3], ":" + Project + ":Movie:" + Sequence + ":" + Shot + ":Assets:Passes:" + item[2], item[0]) hou.node("/obj/" + item[0]).setDisplayFlag(False) hou.node("/obj/" + item[0]).matchCurrentDefinition() else: pt = hou.StringParmTemplate( item[0] + "_nL", item[0], 1, (item[0] + "|" + item[1] + "|" + item[2] + "|" + item[3] + "|" + item[4] + "|" + item[5] + "|" + item[6], )) hou.node(path).addSpareParmTuple( pt, ("NotLoadedAssets", )) elif item[1] == "Lightrig": if loadORnot(Type, psez, blls) == 1: obj = ":" + Project + ":Movie:" + Sequence + ":" + Shot + ":Assets:LightSetups:" + item[ 2] + ":Lightrig" shotlevel = getVL(obj) if shotlevel == [] or shotlevel == 0: obj2 = ":" + Project + ":Movie:" + Sequence + ":Assets:LightSetups:" + item[ 2] + ":Lightrig" seqlevel = getVL(obj2) if seqlevel == [] or seqlevel == 0: obj3 = ":" + Project + ":Movie:Assets:LightSetups:" + item[ 2] + ":Lightrig" showlevel = getVL(obj3) if showlevel == [] or showlevel == 0: obj4 = ":General:Assets:LightSetups:" + item[ 2] + ":Lightrig" globallevel = getVL(obj4) if globallevel == [] or globallevel == 0: pt = hou.StringParmTemplate( item[0], item[0], 1, (item[0] + "|" + item[1] + "|" + item[2] + "|" + item[3] + "|" + item[4] + "|" + item[5] + "|" + item[6], )) hou.node(path).addSpareParmTuple( pt, ("NotLoadedAssets", )) hou.node(path).parm(item[0]).lock(True) else: LHD( item[2], "Lightrig", item[3], ":General:Assets:LightSetups:" + item[2], item[0]) hou.node("/obj/" + item[0]).setDisplayFlag(False) hou.node( "/obj/" + item[0]).matchCurrentDefinition() else: LHD( item[2], "Lightrig", item[3], ":" + Project + ":Movie:Assets:LightSetups:" + item[2], item[0]) hou.node("/obj/" + item[0]).setDisplayFlag(False) hou.node("/obj/" + item[0]).matchCurrentDefinition() else: LHD( item[2], "Lightrig", item[3], ":" + Project + ":Movie:" + Sequence + ":Assets:LightSetups:" + item[2], item[0]) hou.node("/obj/" + item[0]).setDisplayFlag(False) hou.node("/obj/" + item[0]).matchCurrentDefinition() else: LHD( item[2], "Lightrig", item[3], ":" + Project + ":Movie:" + Sequence + ":" + Shot + ":Assets:LightSetups:" + item[2], item[0]) hou.node("/obj/" + item[0]).setDisplayFlag(False) hou.node("/obj/" + item[0]).matchCurrentDefinition() else: pt = hou.StringParmTemplate( item[0] + "_nL", item[0], 1, (item[0] + "|" + item[1] + "|" + item[2] + "|" + item[3] + "|" + item[4] + "|" + item[5] + "|" + item[6], )) hou.node(path).addSpareParmTuple( pt, ("NotLoadedAssets", )) elif item[1] == "RenderSetup": if loadORnot(Type, psez, blls) == 1: obj = ":" + Project + ":Movie:" + Sequence + ":" + Shot + ":Assets:RenderSetups:" + item[ 2] + ":RenderSetup" shotlevel = getVL(obj) if shotlevel == [] or shotlevel == 0: obj2 = ":" + Project + ":Movie:" + Sequence + ":Assets:RenderSetups:" + item[ 2] + ":RenderSetup" seqlevel = getVL(obj2) if seqlevel == [] or seqlevel == 0: obj3 = ":" + Project + ":Movie:Assets:RenderSetups:" + item[ 2] + ":RenderSetup" showlevel = getVL(obj3) if showlevel == [] or showlevel == 0: obj4 = ":General:Assets:RenderSetups:" + item[ 2] + ":RenderSetup" globallevel = getVL(obj4) if globallevel == [] or globallevel == 0: pt = hou.StringParmTemplate( item[0], item[0], 1, (item[0] + "|" + item[1] + "|" + item[2] + "|" + item[3] + "|" + item[4] + "|" + item[5] + "|" + item[6], )) hou.node(path).addSpareParmTuple( pt, ("NotLoadedAssets", )) hou.node(path).parm(item[0]).lock(True) else: LHD( item[2], "RenderSetup", item[3], ":General:Assets:RenderSetups:" + item[2], item[0]) hou.node( "/obj/" + item[0]).matchCurrentDefinition() else: LHD( item[2], "RenderSetup", item[3], ":" + Project + ":Movie:Assets:RenderSetups:" + item[2], item[0]) hou.node("/obj/" + item[0]).matchCurrentDefinition() else: LHD( item[2], "RenderSetup", item[3], ":" + Project + ":Movie:" + Sequence + ":Assets:RenderSetups:" + item[2], item[0]) hou.node("/obj/" + item[0]).matchCurrentDefinition() else: LHD( item[2], "RenderSetup", item[3], ":" + Project + ":Movie:" + Sequence + ":" + Shot + ":Assets:RenderSetups:" + item[2], item[0]) hou.node("/obj/" + item[0]).matchCurrentDefinition() else: pt = hou.StringParmTemplate( item[0] + "_nL", item[0], 1, (item[0] + "|" + item[1] + "|" + item[2] + "|" + item[3] + "|" + item[4] + "|" + item[5] + "|" + item[6], )) hou.node(path).addSpareParmTuple( pt, ("NotLoadedAssets", )) elif item[1] == "Cache": if loadORnot(Type, psez, blls) == 1: or_nodename = item[0].rsplit("_", 1)[0].rsplit( item[2], 1)[0].rsplit("_", 1)[0] LHD( item[2], "Cache", item[3], ":" + Project + ":Movie:" + Sequence + ":" + Shot + ":Caches:" + or_nodename + ":" + item[2], item[0]) hou.node("/obj/" + item[0]).matchCurrentDefinition() hou.node("/obj/" + item[0]).setDisplayFlag(False) else: pt = hou.StringParmTemplate( item[0] + "_nL", item[0], 1, (item[0] + "|" + item[1] + "|" + item[2] + "|" + item[3] + "|" + item[4] + "|" + item[5] + "|" + item[6], )) hou.node(path).addSpareParmTuple( pt, ("NotLoadedAssets", )) if loadORnot(Type, psez, blls) == 1 or item[1] == "Camera": prcont = "" lv = glv(":" + Project + ":Movie:" + Sequence + ":" + Shot + ":Attributes:" + item[0]) if lv == 0 or lv == "": pass else: vpath = getVP(":" + Project + ":Movie:" + Sequence + ":" + Shot + ":Attributes:" + item[0] + "@" + item[4]) dir_content = os.listdir(vpath) attr = hou.StringParmTemplate(item[0], item[0], 1, (item[4], )) hou.node(path).addSpareParmTuple( attr, ("Setupversions", )) for desc_files in dir_content: if os.path.isfile(str(vpath + "/" + desc_files)) == True: if os.path.splitext( desc_files)[1][1:][:2] == "py": prfile = open( str(vpath + "/" + desc_files), "r") prcont = prfile.read() prfile.close() if prcont != "": try: exec(prcont) try: locals().pop("hou_node") except: print "hou_locale deletion problem" if len(locals() ["hou_parm"].keyframes()) > 0: for kf in locals( )["hou_parm"].keyframes(): kf.interpretAccelAsRatio(False) locals()["hou_parm"].setKeyframe( kf) hou.setFrame( locals()["hou_parm"].keyframes() [0].frame()) exec(prcont) try: locals().pop("hou_node") except: print "hou_locale deletion problem" except: print "There was some error while loading the attributes back!", desc_files, item[ 0] attr = hou.StringParmTemplate(item[0] + "_PassBelongings", item[0], 1, (psez, )) hou.node(path).addSpareParmTuple(attr, ("PassBelongings", )) attr = hou.StringParmTemplate(item[0] + "_BuildBelongings", item[0], 1, (blls, )) hou.node(path).addSpareParmTuple(attr, ("BuildBelongings", )) return 1 except: return 0
def set_project_settings(self, data, **kwargs): import ast data = ast.literal_eval(data) ################ "Houdini Vars" ################ current_framerange = hou.playbar.frameRange() current_fps = hou.fps() fps = data["sg_fps"] in_frame = data["sg_in_frame"] out_frame = data["sg_out_frame"] ############################### "Houdini Confirmation Panel" ############################### msg = """ The Following settings have been fetched from Shotgun and will be applied:\n FPS\n {} --> {} \n Framerange\n First frame: {} --> {}\n Last frame: {} --> {}\n Head handles: {} -- Tail handles: {} \n Apply? """.format(current_fps, fps, current_framerange[0], str(in_frame), current_framerange[1], str(out_frame), head_handles, tail_handles) res = hou.ui.displayConfirmation( msg, severity=hou.severityType.Message, help=None, title=None, details=None, details_label=None, suppress=hou.confirmType.OverwriteFile) if res == True: ########################################################## "Set FPS" ########################################################## try: print "Setting FPS to", fps hou.setFps(fps) except Exception as e: print e ########################################################## print "Setting Framerange to", in_frame, "-", out_frame ########################################################## hou.playbar.setUseIntegerFrames(True) hou.playbar.setFrameRange(in_frame, out_frame) hou.playbar.setPlaybackRange(in_frame, out_frame) hou.hscript("tset `((%s-1)/$FPS)` `(%s/$FPS)`" % (in_frame, out_frame)) hou.playbar.setUseIntegerFrames(False) time.sleep(2) hou.playbar.setUseIntegerFrames(True) hou.setFrame(in_frame)
''' 文件复制到 %HOMEPATH%\Documents\houdini17.0\scripts\456.py 或在 houdini.env 文件里加入 "HOUDINI_PATH = 路径",会自动读取路径里的 scripts\456.py ''' import hou import os hou.setFps(25) hou.appendSessionModuleSource('''hou.hscript("autosave off")''') def SetProjectPath(): ''' 从 $HIPFILE 路径后面往前,搜到带 "houdini" 就设置此路径为 $JOB ''' filePath = hou.hipFile.path() filePath = filePath.split('/') for i in range(len(filePath)): if 'houdini' in filePath[-1].lower(): break filePath.pop() prjPath = '/'.join(filePath) hou.putenv('JOB', prjPath) print('$' + 'JOB = ' + hou.getenv('JOB', 'None')) SetProjectPath() def Install_HDA(path, hdaFolderWhiteLists=['hda','otls'], hdaFolderBlacklists=['old','olds','backup','history'], hdaExtension=['.hda','.otl']): '''
def main(): hou.setFps(fps) cam = createCam(null) createMantra(cam)
def buildShot_main(self, **connections): try: Shot=str(connections["Shot"]) except: Shot="" try: Type=str(connections["Type"]) except: Type="" try: Project=connections["Project"] except: Project="" try: shotOverride=str(connections["shotOverride"]) except: shotOverride="" try: oas_output=connections["oas_output"] except: oas_output="version" try: Sequence=getSeq(Project,Shot) if str(geT(":"+Project+":Movie:"+Sequence+":"+Shot))=="" or str(geT(":"+Project+":Movie:"+Sequence+":"+Shot))=="0": return 0 hou.hipFile.clear() hou.node("/obj").createNode("null","ShotData") path="/obj/ShotData" hou.node(path).addSpareParmFolder("projectDB") hou.node(path).addSpareParmFolder("NotLoadedAssets") hou.node(path).addSpareParmFolder("Setupversions") hou.node(path).addSpareParmFolder("PassBelongings") hou.node(path).addSpareParmFolder("BuildBelongings") pp=hou.StringParmTemplate("dbProject","dbProject",1,(Project,)) hou.node(path).addSpareParmTuple(pp,("projectDB",)) hou.node(path).parm("dbProject").lock(True) pt=hou.StringParmTemplate("dbShot","dbShot",1,(Shot,)) hou.node(path).addSpareParmTuple(pt,("projectDB",)) hou.node(path).parm("dbShot").lock(True) pt=hou.StringParmTemplate("dbShotType","dbShotType",1,(Type,)) hou.node(path).addSpareParmTuple(pt,("projectDB",)) hou.node(path).parm("dbShotType").lock(True) hou.node(path).setDisplayFlag(False) fps=getA(":"+Project+".fps") hou.setFps(int(fps)) framerange=getFR(Project,Shot) hou.hscript("tset `"+str(int(framerange[0])-1)+"/$FPS` `"+str(framerange[1])+"/$FPS`") hou.setFrame(int(framerange[0])) attribute="" if shotOverride!="": if os.path.isfile(shotOverride): fl=open(shotOverride,"r") attribute=fl.read() attribute=attribute.strip() fl.close() else: attribute=getA(":"+Project+":Movie:"+Sequence+":"+Shot+".shotsetup") if attribute=="" or attribute==0: attribute=getA(":"+Project+":Movie:"+Sequence+".shotsetup") if attribute=="": return 0 parsed=[] for line in attribute.split("\n"): linearray=[] for entry in line.split("|"): linearray.append(entry.strip()) parsed.append(linearray) passes=[] for item in parsed: if item[1]=="Pass": passes.append(item[0]) allpass="" for psa in passes: allpass+=psa+"," try: if allpass[-1:]==",": allpass=allpass[:-1] except: pass allbuild="111" for item in parsed: try: psez= item[5] except: psez= allpass try: blls=item[6] except: blls= allbuild if item[3]=="0" or item[3]=="": item[3]="v000" if item[4]=="0" or item[4]=="": item[4]="v000" if item[1] == "Model": if loadORnot(Type,psez,blls)==1: LHD(item[2],"Model",item[3],":"+Project+":Assets:Items:"+item[2],item[0]) hou.node("/obj/"+item[0]).matchCurrentDefinition() hou.node("/obj/"+item[0]).setDisplayFlag(False) else: pt=hou.StringParmTemplate(item[0]+"_nL",item[0],1,(item[0]+"|"+item[1]+"|"+item[2]+"|"+item[3]+"|"+item[4]+"|"+item[5]+"|"+item[6],)) hou.node(path).addSpareParmTuple(pt,("NotLoadedAssets",)) if item[1] == "Deform": if loadORnot(Type,psez,blls)==1: LHD(item[2],"Deform",item[3],":"+Project+":Assets:Items:"+item[2],item[0]) hou.node("/obj/"+item[0]).matchCurrentDefinition() hou.node("/obj/"+item[0]).setDisplayFlag(False) else: pt=hou.StringParmTemplate(item[0]+"_nL",item[0],1,(item[0]+"|"+item[1]+"|"+item[2]+"|"+item[3]+"|"+item[4]+"|"+item[5]+"|"+item[6],)) hou.node(path).addSpareParmTuple(pt,("NotLoadedAssets",)) elif item[1] == "Setup": if loadORnot(Type,psez,blls)==1: LHD(item[2],"Setup",item[3],":"+Project+":Assets:Items:"+item[2],item[0]) hou.node("/obj/"+item[0]).matchCurrentDefinition() hou.node("/obj/"+item[0]).setDisplayFlag(False) else: pt=hou.StringParmTemplate(item[0]+"_nL",item[0],1,(item[0]+"|"+item[1]+"|"+item[2]+"|"+item[3]+"|"+item[4]+"|"+item[5]+"|"+item[6],)) hou.node(path).addSpareParmTuple(pt,("NotLoadedAssets",)) elif item[1] == "Material": if loadORnot(Type,psez,blls)==1: LHD(item[2],"Material",item[3],":"+Project+":Assets:Items:"+item[2],item[0]) hou.node("/obj/"+item[0]).matchCurrentDefinition() hou.node("/obj/"+item[0]).setDisplayFlag(False) else: pt=hou.StringParmTemplate(item[0]+"_nL",item[0],1,(item[0]+"|"+item[1]+"|"+item[2]+"|"+item[3]+"|"+item[4]+"|"+item[5]+"|"+item[6],)) hou.node(path).addSpareParmTuple(pt,("NotLoadedAssets",)) elif item[1] == "Engine": if loadORnot(Type,psez,blls)==1: LHD(item[2],"Engine",item[3],":"+Project+":Assets:Engines:"+item[2],item[0]) hou.node("/obj/"+item[0]).matchCurrentDefinition() hou.node("/obj/"+item[0]).setDisplayFlag(False) else: pt=hou.StringParmTemplate(item[0]+"_nL",item[0],1,(item[0]+"|"+item[1]+"|"+item[2]+"|"+item[3]+"|"+item[4]+"|"+item[5]+"|"+item[6],)) hou.node(path).addSpareParmTuple(pt,("NotLoadedAssets",)) elif item[1] == "Camera": LHD(item[2],"Camera",item[3],":General:Assets:CameraSetups:"+item[2],item[0]) hou.node("/obj/"+item[0]).matchCurrentDefinition() elif item[1] == "Misc": if loadORnot(Type,psez,blls)==1: LHD(item[2],"Misc",item[3],":"+Project+":Movie:"+Sequence+":"+Shot+":Assets:Misc:"+item[2],item[0]) hou.node("/obj/"+item[0]).matchCurrentDefinition() hou.node("/obj/"+item[0]).setDisplayFlag(False) else: pt=hou.StringParmTemplate(item[0]+"_nL",item[0],1,(item[0]+"|"+item[1]+"|"+item[2]+"|"+item[3]+"|"+item[4]+"|"+item[5]+"|"+item[6],)) hou.node(path).addSpareParmTuple(pt,("NotLoadedAssets",)) elif item[1] == "Pass": if loadORnot(Type,psez,blls)==1: LHD(item[2],"Pass",item[3],":"+Project+":Movie:"+Sequence+":"+Shot+":Assets:Passes:"+item[2],item[0]) hou.node("/obj/"+item[0]).setDisplayFlag(False) hou.node("/obj/"+item[0]).matchCurrentDefinition() else: pt=hou.StringParmTemplate(item[0]+"_nL",item[0],1,(item[0]+"|"+item[1]+"|"+item[2]+"|"+item[3]+"|"+item[4]+"|"+item[5]+"|"+item[6],)) hou.node(path).addSpareParmTuple(pt,("NotLoadedAssets",)) elif item[1] == "Lightrig": if loadORnot(Type,psez,blls)==1: obj=":"+Project+":Movie:"+Sequence+":"+Shot+":Assets:LightSetups:"+item[2]+":Lightrig" shotlevel=getVL(obj) if shotlevel==[] or shotlevel==0: obj2=":"+Project+":Movie:"+Sequence+":Assets:LightSetups:"+item[2]+":Lightrig" seqlevel=getVL(obj2) if seqlevel==[] or seqlevel==0: obj3=":"+Project+":Movie:Assets:LightSetups:"+item[2]+":Lightrig" showlevel=getVL(obj3) if showlevel==[] or showlevel==0: obj4=":General:Assets:LightSetups:"+item[2]+":Lightrig" globallevel=getVL(obj4) if globallevel==[] or globallevel==0: pt=hou.StringParmTemplate(item[0],item[0],1,(item[0]+"|"+item[1]+"|"+item[2]+"|"+item[3]+"|"+item[4]+"|"+item[5]+"|"+item[6],)) hou.node(path).addSpareParmTuple(pt,("NotLoadedAssets",)) hou.node(path).parm(item[0]).lock(True) else: LHD(item[2],"Lightrig",item[3],":General:Assets:LightSetups:"+item[2],item[0]) hou.node("/obj/"+item[0]).setDisplayFlag(False) hou.node("/obj/"+item[0]).matchCurrentDefinition() else: LHD(item[2],"Lightrig",item[3],":"+Project+":Movie:Assets:LightSetups:"+item[2],item[0]) hou.node("/obj/"+item[0]).setDisplayFlag(False) hou.node("/obj/"+item[0]).matchCurrentDefinition() else: LHD(item[2],"Lightrig",item[3],":"+Project+":Movie:"+Sequence+":Assets:LightSetups:"+item[2],item[0]) hou.node("/obj/"+item[0]).setDisplayFlag(False) hou.node("/obj/"+item[0]).matchCurrentDefinition() else: LHD(item[2],"Lightrig",item[3],":"+Project+":Movie:"+Sequence+":"+Shot+":Assets:LightSetups:"+item[2],item[0]) hou.node("/obj/"+item[0]).setDisplayFlag(False) hou.node("/obj/"+item[0]).matchCurrentDefinition() else: pt=hou.StringParmTemplate(item[0]+"_nL",item[0],1,(item[0]+"|"+item[1]+"|"+item[2]+"|"+item[3]+"|"+item[4]+"|"+item[5]+"|"+item[6],)) hou.node(path).addSpareParmTuple(pt,("NotLoadedAssets",)) elif item[1] == "RenderSetup": if loadORnot(Type,psez,blls)==1: obj=":"+Project+":Movie:"+Sequence+":"+Shot+":Assets:RenderSetups:"+item[2]+":RenderSetup" shotlevel=getVL(obj) if shotlevel==[] or shotlevel==0: obj2=":"+Project+":Movie:"+Sequence+":Assets:RenderSetups:"+item[2]+":RenderSetup" seqlevel=getVL(obj2) if seqlevel==[] or seqlevel==0: obj3=":"+Project+":Movie:Assets:RenderSetups:"+item[2]+":RenderSetup" showlevel=getVL(obj3) if showlevel==[] or showlevel==0: obj4=":General:Assets:RenderSetups:"+item[2]+":RenderSetup" globallevel=getVL(obj4) if globallevel==[] or globallevel==0: pt=hou.StringParmTemplate(item[0],item[0],1,(item[0]+"|"+item[1]+"|"+item[2]+"|"+item[3]+"|"+item[4]+"|"+item[5]+"|"+item[6],)) hou.node(path).addSpareParmTuple(pt,("NotLoadedAssets",)) hou.node(path).parm(item[0]).lock(True) else: LHD(item[2],"RenderSetup",item[3],":General:Assets:RenderSetups:"+item[2],item[0]) hou.node("/obj/"+item[0]).matchCurrentDefinition() else: LHD(item[2],"RenderSetup",item[3],":"+Project+":Movie:Assets:RenderSetups:"+item[2],item[0]) hou.node("/obj/"+item[0]).matchCurrentDefinition() else: LHD(item[2],"RenderSetup",item[3],":"+Project+":Movie:"+Sequence+":Assets:RenderSetups:"+item[2],item[0]) hou.node("/obj/"+item[0]).matchCurrentDefinition() else: LHD(item[2],"RenderSetup",item[3],":"+Project+":Movie:"+Sequence+":"+Shot+":Assets:RenderSetups:"+item[2],item[0]) hou.node("/obj/"+item[0]).matchCurrentDefinition() else: pt=hou.StringParmTemplate(item[0]+"_nL",item[0],1,(item[0]+"|"+item[1]+"|"+item[2]+"|"+item[3]+"|"+item[4]+"|"+item[5]+"|"+item[6],)) hou.node(path).addSpareParmTuple(pt,("NotLoadedAssets",)) elif item[1] == "Cache": if loadORnot(Type,psez,blls)==1: or_nodename=item[0].rsplit("_",1)[0].rsplit(item[2],1)[0].rsplit("_",1)[0] LHD(item[2],"Cache" ,item[3],":"+Project+":Movie:"+Sequence+":"+Shot+":Caches:"+or_nodename+":"+item[2],item[0]) hou.node("/obj/"+item[0]).matchCurrentDefinition() hou.node("/obj/"+item[0]).setDisplayFlag(False) else: pt=hou.StringParmTemplate(item[0]+"_nL",item[0],1,(item[0]+"|"+item[1]+"|"+item[2]+"|"+item[3]+"|"+item[4]+"|"+item[5]+"|"+item[6],)) hou.node(path).addSpareParmTuple(pt,("NotLoadedAssets",)) if loadORnot(Type,psez,blls)==1 or item[1] == "Camera": prcont="" lv=glv(":"+Project+":Movie:"+Sequence+":"+Shot+":Attributes:"+item[0]) if lv==0 or lv=="": pass else: vpath=getVP(":"+Project+":Movie:"+Sequence+":"+Shot+":Attributes:"+item[0]+"@"+item[4]) dir_content=os.listdir(vpath) attr=hou.StringParmTemplate(item[0],item[0],1,(item[4],)) hou.node(path).addSpareParmTuple(attr,("Setupversions",)) for desc_files in dir_content: if os.path.isfile(str(vpath+"/"+desc_files))==True: if os.path.splitext(desc_files)[1][1:][:2]=="py": prfile=open(str(vpath+"/"+desc_files),"r") prcont=prfile.read() prfile.close() if prcont!="": try: exec(prcont) try: locals().pop("hou_node") except: print "hou_locale deletion problem" if len(locals()["hou_parm"].keyframes())>0: for kf in locals()["hou_parm"].keyframes(): kf.interpretAccelAsRatio(False) locals()["hou_parm"].setKeyframe(kf) hou.setFrame(locals()["hou_parm"].keyframes()[0].frame()) exec(prcont) try: locals().pop("hou_node") except: print "hou_locale deletion problem" except: print "There was some error while loading the attributes back!", desc_files,item[0] attr=hou.StringParmTemplate(item[0]+"_PassBelongings",item[0],1,(psez,)) hou.node(path).addSpareParmTuple(attr,("PassBelongings",)) attr=hou.StringParmTemplate(item[0]+"_BuildBelongings",item[0],1,(blls,)) hou.node(path).addSpareParmTuple(attr,("BuildBelongings",)) return 1 except: return 0