Пример #1
0
def version_dialog(lib='PySide', logging_level=logging.WARNING, parent=None):
    """Helper function for version_dialog UI for Fusion

    It uses with PySide by default you can opt to use PyQt4 instead by setting
    the ``lib`` argument to "PyQt4".

    :param str lib: choose a lib, one of ["PySide", "PyQt4"]
    :param logging_level:
    :return: None
    """
    # connect to db
    from anima.utils import do_db_setup
    do_db_setup()

    from anima.ui import SET_PYSIDE, SET_PYQT4
    if lib == 'PySide':
        SET_PYSIDE()
    elif lib == 'PyQt4':
        SET_PYQT4()

    from anima.env import fusion
    reload(fusion)
    fusion_env = fusion.Fusion()
    fusion_env.name = 'Fusion'

    from anima.ui import version_dialog
    logger.setLevel(logging_level)
    version_dialog.UI(environment=fusion_env, parent=parent)
Пример #2
0
    def loader_report(cls):
        """returns the loaders in this comp
        """
        from anima.env import fusion
        fs = fusion.Fusion()
        comp = fs.comp

        paths = []

        all_loader_nodes = comp.GetToolList(False, 'Loader').values()
        for loader_node in all_loader_nodes:
            node_input_list = loader_node.GetInputList()
            for input_entry_key in node_input_list.keys():
                input_entry = node_input_list[input_entry_key]
                input_id = input_entry.GetAttrs()['INPS_ID']
                if input_id == 'Clip':
                    # value = node_input_list[input_entry_key]
                    # input_entry[0] = value
                    # break
                    value = input_entry[0]
                    if value != '' or value is not None:
                        paths.append(value)

        for path in sorted(paths):
            print(path)
Пример #3
0
 def range_from_shot(cls):
     """sets the range from the shot
     """
     from anima.utils import do_db_setup
     do_db_setup()
     from anima.env import fusion
     fusion_env = fusion.Fusion()
     version = fusion_env.get_current_version()
     fusion_env.set_range_from_shot(version)
Пример #4
0
 def pass_through_all_savers(cls):
     """disables all saver nodes in the current comp
     """
     from anima.env import fusion
     fusion_env = fusion.Fusion()
     comp = fusion_env.comp
     saver_nodes = comp.GetToolList(False, 'Saver').values()
     for node in saver_nodes:
         node.SetAttrs({"TOOLB_PassThrough": True})
Пример #5
0
 def update_savers(cls):
     """updates savers, creates missing ones
     """
     from anima.utils import do_db_setup
     do_db_setup()
     from anima.env import fusion
     fusion_env = fusion.Fusion()
     v = fusion_env.get_current_version()
     fusion_env.create_main_saver_node(version=v)
Пример #6
0
 def shot_from_range(cls):
     """updates the Shot.cut_in and Shot.cut_out attributes from the current range
     """
     from anima.utils import do_db_setup
     do_db_setup()
     from anima.env import fusion
     fusion_env = fusion.Fusion()
     version = fusion_env.get_current_version()
     try:
         fusion_env.set_shot_from_range(version)
     except BaseException as e:
         QtWidgets.QMessageBox.critical(None, "Error", "%s" % e)
     finally:
         QtWidgets.QMessageBox.information(None, "Success", "Shot Range has been updated successfully!")
Пример #7
0
    def update_secondary_savers(cls):
        """Updates Savers which are not a Main Saver node
        """
        # get all saver nodes
        from anima.env import fusion
        fusion_env = fusion.Fusion()
        comp = fusion_env.comp

        all_saver_nodes = fusion_env.comp.GetToolList(False, 'Saver').values()

        # filter all Main Saver nodes
        main_savers = fusion_env.get_main_saver_node()
        secondary_savers = [
            node for node in all_saver_nodes if node not in main_savers
        ]
Пример #8
0
    def version_creator(cls, **args):
        """version creator
        """
        # from anima.ui.scripts import fusion
        # fusion.version_creator(*args)
        from anima.utils import do_db_setup
        do_db_setup()
        from anima.env import fusion
        fusion_env = fusion.Fusion()
        fusion_env.name = 'Fusion'

        from anima.ui import version_creator

        ui_instance = version_creator.MainDialog(environment=fusion_env,
                                                 **args)
        ui_instance.show()
        ui_instance.center_window()
Пример #9
0
    def insert_pipe_router_to_selected_node(cls):
        """inserts a Pipe Router node between the selected node and the nodes
        connected to its output
        """
        from anima.env import fusion
        fusion_env = fusion.Fusion()
        comp = fusion_env.comp

        # get active node
        node = comp.ActiveTool

        # get all node outputs
        output = node.FindMainOutput(1)
        connected_inputs = output.GetConnectedInputs()

        # create pipe router
        pipe_router = comp.PipeRouter({"Input": node})

        # connect it to the other nodes
        for connected_input in connected_inputs.values():
            connected_input.ConnectTo(pipe_router)
Пример #10
0
    def loader_from_saver(cls):
        """creates a loader from the selected saver node
        """
        from anima.env import fusion
        fusion_env = fusion.Fusion()
        comp = fusion_env.comp

        node = comp.ActiveTool
        flow = comp.CurrentFrame.FlowView
        x, y = flow.GetPosTable(node).values()

        node_input_list = node.GetInputList()

        path = ''
        key = 'Clip'
        for input_entry_key in node_input_list.keys():
            input_entry = node_input_list[input_entry_key]
            input_id = input_entry.GetAttrs()['INPS_ID']
            if input_id == key:
                path = input_entry[0]
                break

        comp.Lock()
        loader_node = comp.AddTool('Loader')
        comp.Unlock()

        node_input_list = loader_node.GetInputList()
        for input_entry_key in node_input_list.keys():
            input_entry = node_input_list[input_entry_key]
            input_id = input_entry.GetAttrs()['INPS_ID']
            if input_id == key:
                input_entry[0] = path
                break

        # set position near to the saver node
        flow.SetPos(loader_node, x, y + 1.0)
        flow.Select(node, False)
        flow.Select(loader_node, True)
        comp.SetActiveTool(loader_node)