remove prints

0.2.4

- fix: scene world transfer
- code: remove prints
main
Pullusb 2021-09-15 19:36:06 +02:00
parent d52960acb9
commit a3ab7644a7
6 changed files with 34 additions and 39 deletions

View File

@ -9,6 +9,11 @@ OR always duplicate (safe but heavy scenes...)
if duplicate, need to "connect" with namespace ('_duprender') or something if duplicate, need to "connect" with namespace ('_duprender') or something
--> -->
0.2.4
- fix: scene world transfer
- code: remove prints
0.2.3 0.2.3
- fix: ui errors - fix: ui errors

View File

@ -68,7 +68,7 @@ def merge_layers(rlayers, obname=None, active=None, disconnect=True):
ng_name += '_02' # if not ending with a number add _02 ng_name += '_02' # if not ending with a number add _02
ng_name = re.sub(r'(\d+)(?!.*\d)', lambda x: str(int(x.group(1))+1).zfill(len(x.group(1))), ng_name) ng_name = re.sub(r'(\d+)(?!.*\d)', lambda x: str(int(x.group(1))+1).zfill(len(x.group(1))), ng_name)
print(f'create merge nodegroup {ng_name}') # print(f'create merge nodegroup {ng_name}')
ngroup = bpy.data.node_groups.new(ng_name, 'CompositorNodeTree') ngroup = bpy.data.node_groups.new(ng_name, 'CompositorNodeTree')
ng = fn.create_node('CompositorNodeGroup', tree=node_tree, location=(fn.real_loc(rlayers[0]).x + 1900, fn.real_loc(rlayers[0]).y - 200), width=400) ng = fn.create_node('CompositorNodeGroup', tree=node_tree, location=(fn.real_loc(rlayers[0]).x + 1900, fn.real_loc(rlayers[0]).y - 200), width=400)
ng.node_tree = ngroup ng.node_tree = ngroup
@ -121,11 +121,10 @@ class GPEXP_OT_merge_selected_dopesheet_layers(bpy.types.Operator):
# merge_selected_layers() # function to merge from GP dopesheet # merge_selected_layers() # function to merge from GP dopesheet
ob = bpy.context.object ob = bpy.context.object
layer_names = [l.info for l in ob.data.layers if l.select and not l.hide] layer_names = [l.info for l in ob.data.layers if l.select and not l.hide]
print("layer_names", layer_names)#Dbg
if len(layer_names) < 2: if len(layer_names) < 2:
print(f'Should select multiple layers for merging') self.report({'ERROR'}, f'Should select multiple layers for merging')
return return {"CANCELLED"}
render = bpy.data.scenes.get('Render') render = bpy.data.scenes.get('Render')
if render: if render:
@ -163,8 +162,8 @@ class GPEXP_OT_merge_selected_viewlayer_nodes(bpy.types.Operator):
def execute(self, context): def execute(self, context):
render = bpy.data.scenes.get('Render') render = bpy.data.scenes.get('Render')
if not render: if not render:
print('No render scene') self.report({'ERROR'}, 'No render scene')
return return {"CANCELLED"}
nodes = render.node_tree.nodes nodes = render.node_tree.nodes
selection = [n for n in nodes if n.select and n.type == 'R_LAYERS'] selection = [n for n in nodes if n.select and n.type == 'R_LAYERS']
@ -175,7 +174,7 @@ class GPEXP_OT_merge_selected_viewlayer_nodes(bpy.types.Operator):
# should be from the same object: # should be from the same object:
if not all(selection[0].layer.split('.')[0] == n.layer.split('.')[0] for n in selection): if not all(selection[0].layer.split('.')[0] == n.layer.split('.')[0] for n in selection):
print('Merge -> Not every nodes start with the same object') print('/!\ Merge -> Not every nodes start with the same object')
# obname = selection[0].layer.split('.')[0] # obname = selection[0].layer.split('.')[0]
merge_layers(selection, active=nodes.active, disconnect=self.disconnect) merge_layers(selection, active=nodes.active, disconnect=self.disconnect)

View File

@ -31,7 +31,7 @@ class GPEXP_OT_number_outputs(bpy.types.Operator):
continue continue
if self.mode == 'SELECTED' and not fo.select: if self.mode == 'SELECTED' and not fo.select:
continue continue
print(f'numbering {fo.name}') # print(f'numbering {fo.name}')
ct += 1 ct += 1
if self.ctrl: if self.ctrl:
fn.delete_numbering(fo) fn.delete_numbering(fo)

23
fn.py
View File

@ -44,12 +44,14 @@ def copy_settings(obj_a, obj_b):
try: try:
val = getattr(obj_a, attr) val = getattr(obj_a, attr)
except AttributeError: except AttributeError:
print(f'cant get {attr}') # print(f'cant get {attr}')
pass
try: try:
setattr(obj_b, attr, val) setattr(obj_b, attr, val)
except: except:
print(f"can't set {attr}") # print(f"can't set {attr}")
pass
def set_settings(scene=None): def set_settings(scene=None):
@ -79,7 +81,9 @@ def get_render_scene():
if ob.type in ('CAMERA', 'LIGHT'): if ob.type in ('CAMERA', 'LIGHT'):
render.collection.objects.link(ob) render.collection.objects.link(ob)
# use same cam and world
render.camera = current.camera render.camera = current.camera
render.world = current.world
# set adapted render settings (no AA) # set adapted render settings (no AA)
set_settings(render) set_settings(render)
@ -220,7 +224,8 @@ def rearrange_frames(node_tree):
print('no frame found') print('no frame found')
return return
print([f.name for f in frame_d.keys()]) # print([f.name for f in frame_d.keys()])
## order the dict by frame.y location ## order the dict by frame.y location
frame_d = {key: value for key, value in sorted(frame_d.items(), key=lambda pair: pair[1][0].y - pair[1][1].y, reverse=True)} frame_d = {key: value for key, value in sorted(frame_d.items(), key=lambda pair: pair[1][0].y - pair[1][1].y, reverse=True)}
frames = [[f, v[0], v[1].y] for f, v in frame_d.items()] # [frame_node, real_loc, real dimensions] frames = [[f, v[0], v[1].y] for f, v in frame_d.items()] # [frame_node, real_loc, real dimensions]
@ -325,7 +330,6 @@ def clean_nodegroup_inputs(ng, skip_existing_pass=True):
ngroup = ng.node_tree ngroup = ng.node_tree
rl_nodes = [n.layer for n in ng.id_data.nodes if n.type == 'R_LAYERS'] rl_nodes = [n.layer for n in ng.id_data.nodes if n.type == 'R_LAYERS']
for i in range(len(ng.inputs))[::-1]: for i in range(len(ng.inputs))[::-1]:
print(i)
if not ng.inputs[i].is_linked: if not ng.inputs[i].is_linked:
if skip_existing_pass and any(ng.inputs[i].name == x for x in rl_nodes): if skip_existing_pass and any(ng.inputs[i].name == x for x in rl_nodes):
# a render layer of this name still exists # a render layer of this name still exists
@ -446,11 +450,9 @@ def renumber_keep_existing(fo, offset=10):
prev = None prev = None
prev_num = None prev_num = None
for idx, fs in enumerate(fsl): for idx, fs in enumerate(fsl):
print('-->', idx, fs.path) # print('-->', idx, fs.path)
if idx == last_idx: # handle last if idx == last_idx: # handle last
print('last >>', fs.path)
print(ct)
if idx > 0: if idx > 0:
prev = fsl[idx-1] prev = fsl[idx-1]
num = get_num(prev) num = get_num(prev)
@ -471,11 +473,9 @@ def renumber_keep_existing(fo, offset=10):
# analyse all next slots until there is numbered # analyse all next slots until there is numbered
divider = 0 divider = 0
print(f'range(1, {len(fsl) - idx}') # print(f'range(1, {len(fsl) - idx}')
for i in range(1, len(fsl) - idx): for i in range(1, len(fsl) - idx):
print('i >> idx + i', i, idx + i)
next_num = get_num(fsl[idx + i]) next_num = get_num(fsl[idx + i])
print('next_num: ', next_num)
if next_num is not None: if next_num is not None:
divider = i+1 divider = i+1
break break
@ -503,12 +503,9 @@ def renumber_keep_existing(fo, offset=10):
add_fileslot_number(fs, ct) add_fileslot_number(fs, ct)
else: else:
print('divider: ', divider)
if prev_num is not None: if prev_num is not None:
print('in updater')
# iterate rename # iterate rename
gap_inc = int((next_num - prev_num) / divider) gap_inc = int((next_num - prev_num) / divider)
print('gap_inc: ', gap_inc)
if gap_inc < 1: # same values ! if gap_inc < 1: # same values !
print(f'cannot insert a median value at {fs.path} between {prev_num} and {next_num}') print(f'cannot insert a median value at {fs.path} between {prev_num} and {next_num}')
continue continue

View File

@ -94,7 +94,6 @@ def connect_render_layer(rlayer, ng=None, out=None, frame=None):
ng_out = fn.create_node('NodeGroupOutput', tree=ngroup, location=(600,0)) ng_out = fn.create_node('NodeGroupOutput', tree=ngroup, location=(600,0))
else: else:
print(f'found group node {ng.name}')
ngroup = ng.node_tree ngroup = ng.node_tree
ng_in = ngroup.nodes.get('Group Input') ng_in = ngroup.nodes.get('Group Input')
ng_out = ngroup.nodes.get('Group Output') ng_out = ngroup.nodes.get('Group Output')
@ -103,14 +102,13 @@ def connect_render_layer(rlayer, ng=None, out=None, frame=None):
if not rlayer.outputs['Image'].is_linked: if not rlayer.outputs['Image'].is_linked:
sockin = ng.inputs.get(vl_name) sockin = ng.inputs.get(vl_name)
if not sockin: if not sockin:
print('creating socket', vl_name)
sockin = ng.inputs.new('NodeSocketColor', vl_name) sockin = ng.inputs.new('NodeSocketColor', vl_name)
sockin = ng.inputs[-1] sockin = ng.inputs[-1]
links.new(rlayer.outputs['Image'], sockin) links.new(rlayer.outputs['Image'], sockin)
## get nodes from frame ## get nodes from frame
rl_nodes = [n for n in nodes if n.type == 'R_LAYERS' and n.layer != 'View Layer' and n.parent == frame] # rl_nodes = [n for n in nodes if n.type == 'R_LAYERS' and n.layer != 'View Layer' and n.parent == frame]
# auto clean : if an input exists but is not linked and name not exists in rlayers of current frame # auto clean : if an input exists but is not linked and name not exists in rlayers of current frame
for s in reversed(ng.inputs): for s in reversed(ng.inputs):
@ -138,16 +136,14 @@ def connect_render_layer(rlayer, ng=None, out=None, frame=None):
ng.update() ng.update()
if not connected: if not connected:
print('need to connect')
# add AA and connect # add AA and connect
aa = fn.new_aa_node(ngroup) aa = fn.new_aa_node(ngroup)
groupout = ng.outputs.get(vl_name) groupout = ng.outputs.get(vl_name)
if not groupout: if not groupout:
print('create group out-socket')
ng.outputs.new('NodeSocketColor', vl_name) # assigning direcly doesn't link well ng.outputs.new('NodeSocketColor', vl_name) # assigning direcly doesn't link well
groupout = ng.outputs[-1] groupout = ng.outputs[-1]
print('ng_out.inputs.get(vl_name): ', ng_out.inputs.get(vl_name)) # print('ng_out.inputs.get(vl_name): ', ng_out.inputs.get(vl_name))
# ng_in.outputs[vl_name] # ng_in.outputs[vl_name]
ngroup.links.new(ng_in.outputs[vl_name], aa.inputs[0]) # node_tree ngroup.links.new(ng_in.outputs[vl_name], aa.inputs[0]) # node_tree
ngroup.links.new(aa.outputs[0], ng_out.inputs[vl_name]) # node_tree ngroup.links.new(aa.outputs[0], ng_out.inputs[vl_name]) # node_tree
@ -197,7 +193,7 @@ def connect_render_layer(rlayer, ng=None, out=None, frame=None):
if not out_input: if not out_input:
out.file_slots.new(slot_name) out.file_slots.new(slot_name)
out_input = out.inputs[-1] # assigning directly above doesn't link afterwards out_input = out.inputs[-1] # assigning directly above doesn't link afterwards
print(f'new filouput entry: {out_input}') # print(f'new filouput entry: {out_input}')
# link to FileOut # link to FileOut
links.new(groupout, out_input) links.new(groupout, out_input)
@ -221,7 +217,9 @@ def get_set_viewlayer_from_gp(ob, l, scene=None):
in_rds = scene.collection.all_objects.get(ob.name) in_rds = scene.collection.all_objects.get(ob.name)
if not in_rds: if not in_rds:
# TODO : link with a ob.data copy if its a multiuser object !
scene.collection.objects.link(ob) scene.collection.objects.link(ob)
ob.hide_viewport = ob.hide_render = False
# create viewlayer # create viewlayer
vl_name = f'{ob.name} / {l.info}' vl_name = f'{ob.name} / {l.info}'
@ -239,10 +237,10 @@ def get_set_viewlayer_from_gp(ob, l, scene=None):
for f in nodes if f.type == 'FRAME'} for f in nodes if f.type == 'FRAME'}
# debug print # debug print
for k,v in frame_dic.items(): # for k,v in frame_dic.items():
print('-', k) # print('-', k)
for n in v: # for n in v:
print('---', n.layer) # print('---', n.layer)
if rlayer_list: # rlayer exists if rlayer_list: # rlayer exists
print(f'{len(rlayer_list)} nodes using {vl_name}') print(f'{len(rlayer_list)} nodes using {vl_name}')
@ -268,16 +266,13 @@ def get_set_viewlayer_from_gp(ob, l, scene=None):
all_frames = [n for n in nodes if n.type == 'FRAME'] all_frames = [n for n in nodes if n.type == 'FRAME']
# all_rl_x = [n.location.x for n in nodes if n.type == 'R_LAYERS' and n.layer != 'View Layer'] # all_rl_x = [n.location.x for n in nodes if n.type == 'R_LAYERS' and n.layer != 'View Layer']
if all_frames: if all_frames:
print
# all_frames.sort(key=lambda x: x.location.y, reverse=True) # all_frames.sort(key=lambda x: x.location.y, reverse=True)
# loc.y - dim.y # loc.y - dim.y
y_loc = min(fn.get_frame_transform(f, node_tree)[0].y - fn.get_frame_transform(f, node_tree)[1].y for f in all_frames) y_loc = min(fn.get_frame_transform(f, node_tree)[0].y - fn.get_frame_transform(f, node_tree)[1].y for f in all_frames)
print('y_loc: ', y_loc)
loc = (0, y_loc) loc = (0, y_loc)
else: else:
loc = (0,0) loc = (0,0)
print('loc: ', loc)
# create frame at new rl position # create frame at new rl position
frame = nodes.new('NodeFrame') frame = nodes.new('NodeFrame')
frame.label = ob.name frame.label = ob.name
@ -309,7 +304,6 @@ def get_set_viewlayer_from_gp(ob, l, scene=None):
# get nodes order to insert # get nodes order to insert
rl_nodes.sort(key=lambda n: fn.real_loc(n).y, reverse=True) # descending rl_nodes.sort(key=lambda n: fn.real_loc(n).y, reverse=True) # descending
top_loc = fn.real_loc(rl_nodes[0]) top_loc = fn.real_loc(rl_nodes[0])
print('top_loc: ', top_loc)
else: else:
top_loc = fn.get_frame_transform(frame[1], node_tree) - 60 top_loc = fn.get_frame_transform(frame[1], node_tree) - 60
@ -327,10 +321,10 @@ def get_set_viewlayer_from_gp(ob, l, scene=None):
rl_nodes.sort(key=lambda x : names.index(x.layer.split(' / ')[1])) # Sort True layer name from rl rl_nodes.sort(key=lambda x : names.index(x.layer.split(' / ')[1])) # Sort True layer name from rl
offset = 0 offset = 0
print(f'number of nodes in frame: {len(rl_nodes)}') # print(f'number of nodes in frame: {len(rl_nodes)}')
ref_node = rl_nodes[0] ref_node = rl_nodes[0]
print('ref_node: ', ref_node.name, ref_node.location) # print('ref_node: ', ref_node.name, ref_node.location)
for n in rl_nodes: for n in rl_nodes:
# set x loc from first node in list (maybe use leftmost ?) # set x loc from first node in list (maybe use leftmost ?)
n.location = Vector((fn.real_loc(ref_node)[0], top_loc[1] - offset)) - n.parent.location n.location = Vector((fn.real_loc(ref_node)[0], top_loc[1] - offset)) - n.parent.location

View File

@ -424,7 +424,7 @@ def connect_render_layer(rlayer, ng=None, out=None, frame=None):
if not out_input: if not out_input:
out.file_slots.new(slot_name) out.file_slots.new(slot_name)
out_input = out.inputs[-1] # assigning directly above doesn't link afterwards out_input = out.inputs[-1] # assigning directly above doesn't link afterwards
print(f'new filouput entry: {out_input}') # print(f'new filouput entry: {out_input}')
# link to FileOut # link to FileOut
links.new(groupout, out_input) links.new(groupout, out_input)