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))
Example #3
0
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)
Example #4
0
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)
Example #5
0
    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)
Example #7
0
    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)
Example #8
0
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)
Example #10
0
    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()
Example #11
0
 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)
Example #12
0
 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"])
     })
Example #13
0
    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)
Example #15
0
    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)
Example #16
0
 def set_frame_rate(self, fps):
     import hou
     hou.setFps(fps)
Example #17
0
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])
Example #19
0
    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)
Example #21
0
'''
文件复制到 %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']):
    '''
Example #22
0
def main():
    hou.setFps(fps)
    cam = createCam(null)
    createMantra(cam)
Example #23
0
	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