Fix problem when viewlayer name reach character limit
parent
7fa914e438
commit
2251313794
|
@ -164,10 +164,10 @@ class GPEXP_OT_render_auto_build(bpy.types.Operator):
|
||||||
|
|
||||||
render_scn = fn.get_render_scene(create=False)
|
render_scn = fn.get_render_scene(create=False)
|
||||||
if self.scene:
|
if self.scene:
|
||||||
render_scn = bpy.data.scenes.get(self.scene)
|
if bpy.data.scenes.get(self.scene):
|
||||||
if render_scn:
|
self.report({'ERROR'}, f'Abort, scene "{self.scene}" already exists')
|
||||||
self.report({'ERROR'}, f'Abort, scene "{render_scn.name}" already exists')
|
|
||||||
return {'CANCELLED'}
|
return {'CANCELLED'}
|
||||||
|
render_scn = fn.get_render_scene(scene_name=self.scene, create=True)
|
||||||
|
|
||||||
if self.node_scene:
|
if self.node_scene:
|
||||||
node_scene = fn.get_compo_scene(scene_name=self.node_scene, create=True) # create if not exists
|
node_scene = fn.get_compo_scene(scene_name=self.node_scene, create=True) # create if not exists
|
||||||
|
|
20
README.md
20
README.md
|
@ -5,3 +5,23 @@ Organise export of gp layers through compositor output
|
||||||
### Environment variables
|
### Environment variables
|
||||||
|
|
||||||
`FILE_FORMAT` : Define file_format used for output. If not specified, use `OPEN_EXR_MULTILAYER` (set `OPEN_EXR` for separate sequences)
|
`FILE_FORMAT` : Define file_format used for output. If not specified, use `OPEN_EXR_MULTILAYER` (set `OPEN_EXR` for separate sequences)
|
||||||
|
|
||||||
|
|
||||||
|
### Notable operator arguments for automatisation
|
||||||
|
|
||||||
|
- `scene` (str) Define scene where GP object will be linked and rendered, if ommited scene use name `renderGP` (create scene if needed)
|
||||||
|
- `node_scene` (str) Define scene where renderlayer nodes are addes and connected (create scene if needed), if ommited use `scene` arg above
|
||||||
|
|
||||||
|
Following string template can be set to customize file-output paths : base_path, file_slot, layer_slot.
|
||||||
|
- `base_path` : file output base path
|
||||||
|
- `file_slot` : file output slots
|
||||||
|
- `layer_slot`: file output slots when using multilayer EXR (EXR layer names)
|
||||||
|
|
||||||
|
Available template keywords:
|
||||||
|
- {object} : Object name
|
||||||
|
- {gplayer} : GP layer name
|
||||||
|
|
||||||
|
Default template if nothing is passed:
|
||||||
|
- `base_path` = `//render/{object}` (if using multilayer-EXR: `//render/{object}/{object}_`)
|
||||||
|
- `file_slot` = `{gplayer}/{gplayer}_`
|
||||||
|
- `layer_slot` = `{gplayer}`
|
||||||
|
|
|
@ -334,8 +334,8 @@ def get_set_viewlayer_from_gp(ob, l, scene=None, node_scene=None,
|
||||||
scene = scene or fn.get_render_scene()
|
scene = scene or fn.get_render_scene()
|
||||||
node_scene = node_scene or fn.get_compo_scene() or scene
|
node_scene = node_scene or fn.get_compo_scene() or scene
|
||||||
|
|
||||||
print('Viewlayer Scene: ', scene.name)
|
# print('Viewlayer Scene:', scene.name) #Dbg
|
||||||
print('Compo Scene: ', node_scene.name)
|
# print('Compo Scene:', node_scene.name) #Dbg
|
||||||
|
|
||||||
## If not passed, identical to scene holding viewlayers
|
## If not passed, identical to scene holding viewlayers
|
||||||
|
|
||||||
|
@ -468,10 +468,15 @@ def get_set_viewlayer_from_gp(ob, l, scene=None, node_scene=None,
|
||||||
|
|
||||||
# cp.location = (top_loc[0], top_loc[1] + 100) # temp location to adjust x loc
|
# cp.location = (top_loc[0], top_loc[1] + 100) # temp location to adjust x loc
|
||||||
|
|
||||||
# list of layer names in nodes order
|
|
||||||
rl_names = [n.layer.split(' / ')[1] for n in rl_nodes] # get True layer name from rl
|
# List of layer names in nodes order
|
||||||
# names with the right order WITH the new layer included
|
rl_names = [n.layer.split(' / ')[1] for n in rl_nodes] # Get True layer name from rl
|
||||||
names = [lay.info for lay in ob.data.layers if lay.info in rl_names or lay == l]
|
|
||||||
|
## Names with the right order WITH the new layer included
|
||||||
|
# names = [lay.info for lay in ob.data.layers if lay.info in rl_names or lay == l] # <- Character limit problem
|
||||||
|
## Consider viewlayer name length of 63 char max
|
||||||
|
char_limit = 63 - len(ob.name + ' / ')
|
||||||
|
names = [lay.info[:char_limit] for lay in ob.data.layers if lay.info[:char_limit] in rl_names or lay == l]
|
||||||
|
|
||||||
rl_nodes.append(cp)
|
rl_nodes.append(cp)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue