diff options
author | Bartek Skorupa <bartekskorupa@bartekskorupa.com> | 2014-08-06 11:35:41 +0400 |
---|---|---|
committer | Bartek Skorupa <bartekskorupa@bartekskorupa.com> | 2014-08-06 11:35:41 +0400 |
commit | df7759e0359add33273f3d94822b9b10450c2278 (patch) | |
tree | 7d8134618ccdcb1c0600626ea05a5adeb07ae870 | |
parent | cc4a3674e44c18c4d7ed38033c981d949f90a0bd (diff) |
In "Merge Nodes" added "Alpha Over" option.
Added option to quickly merge selected nodes using "Alpha Over" nodes.
Keyboard shortcut: Ctrl-Alt-0.
-rw-r--r-- | node_efficiency_tools.py | 33 |
1 files changed, 24 insertions, 9 deletions
diff --git a/node_efficiency_tools.py b/node_efficiency_tools.py index a1ba9b12..4ac54d91 100644 --- a/node_efficiency_tools.py +++ b/node_efficiency_tools.py @@ -19,7 +19,7 @@ bl_info = { "name": "Node Wrangler (aka Nodes Efficiency Tools)", "author": "Bartek Skorupa, Greg Zaal", - "version": (3, 8), + "version": (3, 9), "blender": (2, 71, 0), "location": "Node Editor Properties Panel or Ctrl-Space", "description": "Various tools to enhance and speed up node-based workflow", @@ -1777,7 +1777,8 @@ class NWMergeNodes(Operator, NWBase): ('SHADER', 'Shader', 'Merge using ADD or MIX Shader'), ('MIX', 'Mix Node', 'Merge using Mix Nodes'), ('MATH', 'Math Node', 'Merge using Math Nodes'), - ('ZCOMBINE', 'Z-Combine Node', 'Merge using Z-Combine Nodes') + ('ZCOMBINE', 'Z-Combine Node', 'Merge using Z-Combine Nodes'), + ('ALPHAOVER', 'Alpha Over Node', 'Merge using Alpha Over Nodes'), ), ) @@ -1805,12 +1806,14 @@ class NWMergeNodes(Operator, NWBase): # Prevent trying to add Z-Combine in not 'COMPOSITING' node tree. # 'ZCOMBINE' works only if mode == 'MIX' # Setting mode to None prevents trying to add 'ZCOMBINE' node. - if merge_type == 'ZCOMBINE' and tree_type != 'COMPOSITING': - mode = None + if (merge_type == 'ZCOMBINE' or merge_type == 'ALPHAOVER') and tree_type != 'COMPOSITING': + merge_type = 'MIX' + mode = 'MIX' selected_mix = [] # entry = [index, loc] selected_shader = [] # entry = [index, loc] selected_math = [] # entry = [index, loc] selected_z = [] # entry = [index, loc] + selected_alphaover = [] # entry = [index, loc] for i, node in enumerate(nodes): if node.select and node.outputs: @@ -1838,6 +1841,7 @@ class NWMergeNodes(Operator, NWBase): ('MIX', [t[0] for t in blend_types], selected_mix), ('MATH', [t[0] for t in operations], selected_math), ('ZCOMBINE', ('MIX', ), selected_z), + ('ALPHAOVER', ('MIX', ), selected_alphaover), ): if merge_type == type and mode in types_list: dst.append([i, node.location.x, node.location.y, node.dimensions.x, node.hide]) @@ -1848,7 +1852,7 @@ class NWMergeNodes(Operator, NWBase): selected_mix += selected_math selected_math = [] - for nodes_list in [selected_mix, selected_shader, selected_math, selected_z]: + for nodes_list in [selected_mix, selected_shader, selected_math, selected_z, selected_alphaover]: if nodes_list: count_before = len(nodes) # sort list by loc_x - reversed @@ -1925,6 +1929,15 @@ class NWMergeNodes(Operator, NWBase): first = 0 second = 2 add.width_hidden = 100.0 + elif nodes_list == selected_alphaover: + add = nodes.new('CompositorNodeAlphaOver') + add.show_preview = False + add.hide = do_hide + if do_hide: + loc_y = loc_y - 50 + first = 1 + second = 2 + add.width_hidden = 100.0 add.location = loc_x, loc_y loc_y += offset_y add.select = True @@ -3006,6 +3019,9 @@ class NWMergeNodesMenu(Menu, NWBase): props = layout.operator(NWMergeNodes.bl_idname, text="Use Z-Combine Nodes") props.mode = 'MIX' props.merge_type = 'ZCOMBINE' + props = layout.operator(NWMergeNodes.bl_idname, text="Use Alpha Over Nodes") + props.mode = 'MIX' + props.merge_type = 'ALPHAOVER' class NWMergeShadersMenu(Menu, NWBase): @@ -3542,11 +3558,11 @@ kmi_defs = ( (('mode', 'GREATER_THAN'), ('merge_type', 'MATH'),), "Merge Nodes (Greater than)"), (NWMergeNodes.bl_idname, 'NUMPAD_PERIOD', True, False, False, (('mode', 'MIX'), ('merge_type', 'ZCOMBINE'),), "Merge Nodes (Z-Combine)"), - # NWMergeNodes with Ctrl Alt (MIX) + # NWMergeNodes with Ctrl Alt (MIX or ALPHAOVER) (NWMergeNodes.bl_idname, 'NUMPAD_0', True, False, True, - (('mode', 'MIX'), ('merge_type', 'MIX'),), "Merge Nodes (Color, Mix)"), + (('mode', 'MIX'), ('merge_type', 'ALPHAOVER'),), "Merge Nodes (Alpha Over)"), (NWMergeNodes.bl_idname, 'ZERO', True, False, True, - (('mode', 'MIX'), ('merge_type', 'MIX'),), "Merge Nodes (Color, Mix)"), + (('mode', 'MIX'), ('merge_type', 'ALPHAOVER'),), "Merge Nodes (Alpha Over)"), (NWMergeNodes.bl_idname, 'NUMPAD_PLUS', True, False, True, (('mode', 'ADD'), ('merge_type', 'MIX'),), "Merge Nodes (Color, Add)"), (NWMergeNodes.bl_idname, 'EQUAL', True, False, True, @@ -3758,4 +3774,3 @@ def unregister(): if __name__ == "__main__": register() - |