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)
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)
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)
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})
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)
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!")
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 ]
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()
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)
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)