# Changelog


<!-- TODO
- need to let user choose output settings

if objects has multiple user without being linked in render scene :
    duplicate the object insteat of linking
OR always duplicate (safe but heavy scenes...)

if duplicate, need to "connect" with namespace ('_duprender') or something

Activate / deactivate layer opacity according to prefix
Activate / deactivate all masks using MA layers
-->

1.8.17

- changed: in autobuild, skip object that are not visible in scene or with render toggle off

1.8.16

- fixed: Better reorder socket. Still not perfect, can have bad result if there some unconnected sockets on both sides.

1.8.15

- changed: exclude background GP by default in autobuild (`is_background` is a custom property set on some GP by the addon "Background Plane Manager")
- added: autobuild bool argument `exclude_background_gp` (Default to True).
- fixed: clean name in file output gernerator

1.8.14

- fixed: error when trying remove a viewlayer

1.8.13

- changed: improve `connect to fileoutput` feature:
  - possible to choose `node_name + socket name` or `node name` instead of `socket name` only
  - default is now `node_name_socket_name`
  - added some exception behavior:
    - if a node has single output : write the node name only
    - render layers use `scene_viewlayer` as node_name intead of "Render Layer"
    - interface shows source node label (with source node name in parenthesis)
    - interface shows render layer scene/viewlayer name (with name in parenthesis)

- fixed: a potential name overlapping bug in connect to fileoutput

1.8.12

- changed: Use GP_RENDER_FILE_FORMAT env var to set file output nodes

1.8.11

- fixed: cleaning materials duplication checked against name without checking material GP type

1.8.10

- fixed: node not deleted after a merge using (compo scene not referenced correctly to point node_trees)

1.8.9

- fixed: error when setting object active at the end of autobuild

1.8.8

- added: Add `export transformation to AE` in export menu:
 - export camera
 - export objects transformation 
 - export exposition (object, GPencil keys, etc)

1.8.7

- changed: Layer `channel_colors` have _value component_ clamped to 0.65 when transfered to compo node to limit color flashyness (eye care update)

1.8.6

- changed: removed mask terms from exclude export list `MA, MASK, mask, MSK, msk` (still excluded when opacity is at 0)

1.8.5

- changed: `group adjacent prefix` prefix pattern now ignore case

1.8.4

- fix: select node from layer
- changed: Check for problems: object numbering check does not list as error if parent part has number prefix (previously checked only for last part)

1.8.3

- changed: for layer with 0 opacity, do not send to render and keep opacity
- removed: `GP` prefix exclusion to send GP to render
- added: more default prefix exclusion for _layer to render_ and _skip opacity reset_ (`MASK, mask, MSK, msk`)
- added: option to restore layer state from json (commit by Christophe.S)

1.8.2

- added: `Reset Layer State` (Check layer) in Autobuild
- added: environment variable `GP_RENDER_LAYER_GROUP_PATTERN` for layer merging regex pattern

1.8.1

- added: transfer timeline marker to render scene
- fix: scene viewport switch when using autobuild manually

1.8.0

- added: Allow to rename output on the fly using `connect selection to output`

1.7.4

- removed: Restriction to use default scene "Scene"
- added: autobuild choice to change active scene:
  - `NONE` : No change
  - `RENDER`: Go to render scene containing GP
  - `NODES` : Go to compo scene scene holding nodes

1.7.3

- added: Optional string templates for fileoutputs
  - add `base_path, file_slot, layer_slot` arguments to operators
  - possible keywords are as follow:
    - '{object}' : Set object name
    - '{gplayer}' : Set Gp layer name
  - Default template when not passed:
    base_path = `//render/{object}`
    (for multilayer exr, default to `//render/{object}/{object}_`)
    file_slot = `{gplayer}/{gplayer}_`
    layer_slot = `{gplayer}`

1.7.2

- added: selectable output popup in `connect to file output` operator

1.7.1

- fix: file output base path depending on file format
- fix: problem when connecting render layers

1.7.0

- fix: problem when removing render layers
- changed: node distribution refactor, allow separate compositing scene
  - Compositing scene (holding nodes) can be separated from render scene (holding GP objects and related viewlayers)
  - Default render named changed from `Render` to `RenderGP`
  - New properties in exposed Dopesheet N panel to manually set Render scene and Compo scene
  - Operator expose a `node_scene` parameter to separate where to send nodes
  - Switch scene button can have an extra button to go in compo scene if found

1.6.4

- changed: remove poll checking gp active on some operators limiting use in script call

1.6.3

- changed: remove poll check on autobuild operator

1.6.2

- changed: Default fileout format changed from `OPEN_EXR` to `OPEN_EXR_MULTILAYER` (a `FILE_FORMAT` env variable can be set to specify nodes format)
- changed: Default compression changed from `ZIP` to `PIZ`
- changed: Rename/renumber function consider OPEN_EXR_MULTILAYER to affect `layer_slots` instead of `file_slots`

1.6.1

- fixed: preview output for Blender 4.0+

1.6.0

- added: Connect selection to new or existing fileout

1.5.0

- added: swf export (include binary for linux and windows)
- added: pdf single multipage file exports


1.4.1

- added: expose button for output file de-numbering
- changed: denumbering and exclude layer based on current scene instead of render scene only

1.4.0

- added: split selection to scenes individually

1.3.6

- added: scene resolution in json crop pixels information, per objects
- changed: fixed name `crop_infos.json` for exported crop pixels information
- changed: auto-crop ignore `MA_` prefixed layers

1.3.5

- added: button to exclude viewlayers and nodes by selection or by hided layers
- fixed: `delete view layer` error in merge, when fusing multiple view layer

1.3.4

- added: multi object merge
- changed: little tweak on GP render startup

1.3.3

- fixed: problem evaluating broken modifier target
- added: normalize layer name now convert points to underscore

1.3.2

- fixed: compatibility with blender 3.5 (nodegroup socket API change)

1.3.1

- added: preview generation in autobuild

1.3.0

- added: Preview with a combined alpha over of all render layer available
- added: button to clear preview nodes

1.2.3

- added: autobuild set each gp objects data to single user

1.2.2

- changed: autobuild disabled merge adjacent layer by default

1.2.1

- added: bundle app_template to load "GR Render" workspace from it
- added: ui button in dopesheet to load GP render workspace

1.2.0

- changed: enabled when launched in background
- added: autobuild: hide "invisible" material
- removed: timer to setup render scene

1.1.4

- changed: force set color by prefix if autobuild option swiched on
- fixed: problem with auto merge adjacent layers

1.1.3

- added: clean material stack in auto-build

1.1.2

- added: popup panel with options for autobuild

1.1.1

- changed: autobuild beta
- added: autobuild: fix layer name with empty desc (only prefix)
- added: autobuild: Set layer color autoamtically (if not some already there)

1.1.0

- added: `autobuild` button (partial auto-buildfor now)
- added: make sent object selected

1.0.3

- fixed: Send to render layer compatibility with blender 3.4
- added: clear default nodes when creating new render scene

1.0.2

- added: GP object with name starting with `.` are ignored from "all objects" operation (renaming, numbering, sending to render scene)
  - temporarily, layer named `note` (case insensitive) are ignored as well. This should be removed in later version to keep only dot exculsion rule.

1.0.1

- fix: `Export Camera 2D Position To AE` file format not working on windows when export from linux (add CRLF terminator to generated text file)

1.0.0

- fix: activate Z pass on newly created viewlayers

0.9.9

- fix: `Export Camera 2D Position To AE` use tab again instead of space in key clipboard format. otherwise paste doesn't work in After-Effect

0.9.8

- feat: `Export Camera 2D Position To AE` to export 'anim cam' (or selected cam) frame center pixel coordinate within scene camera.
  - write txt file as after effects postion clipboard data

0.9.7

- feat: `Select Nodes` added in Dopesheet. Select nodes associated with selected gp layers and report if there are errors

0.9.6

- added: `Check layers` disable multiframe-edit in all gp data. Seemed to cause artifacts on some renders (tested on 2.93.5)

0.9.5

- added: `check for problems` button also propose to run GP toolbox's file checker (if addon is enabled) to perform generic file checks
- changed: `check for problems` skip check for opacity on 'MA_' prefixed layers

0.9.4

- feat: `Renumber files on disk` option using number in file outputs (under advanced gp render options)
- feat: new `Check for problems` button, check if problem in layer state, missing file out, broken gp modifier target and report
- added: clean nodes now also rearrange inside nodegroup
- changed: `Check layers` now trigger `export layer infos` automatically.
- fix: `export layer infos`:
  - create render folder if necessary
  - masks list in json file use name as keys instead of sub-value

0.9.3

- feat: export a json with layers info for compo. Masks, opacity, blend mode

0.9.2

- feat: add button to check if and which layers have masks

0.9.1

- change: stop reporting all use light disable on `check layer` (too many messages)

0.9.0

- feat: Renumber objects prefix according to origin point depth, and button to remove
- ui: improve dopesheet panel readability

0.8.0

- feat: Select a file output node. Set active file slot path and settings to main Scene output.
  - Button in GP render panel with `Advanced` options active.
  - Or search operator label `Set Active File Output To Composite`
  - if Composite is already linked, pop-up ask if link should be replaced

0.7.0

- feat: `clean nodes` ops now delete gaps in renderlayer nodes within frames

0.6.9

- fix: shift correction error

0.6.8

- feat: New multi-scene viewlayer inspection button
- fix: revert back export json crop to use GP names when available with better check

0.6.7

- fix: export json crop use scene name instead of first found GP.
- fix: scene.name lowercased when set in outputfile name (using reset settings operator)

0.6.6

- fix: problem when creating Json
- ui: add gp render extras panel in scene prop (closed by default)

0.6.5

- feat: AE key exporter (not exposed).
    - Add a basic 2D positions-keyframes exporter (in camera view space). export 2d position of selected object origin to copy-paste on AE layer.
- feat: If 'Camera Overscan' addon is activated, append a button to fix camera shift.

0.6.4

- ui: render selected scene has hints on popup panekl like gen batch
- changed: always re-export crop info when using render all scene and generate batch
- changed: batch file has minutes at the end of the name
- fix: windows dynamic batch problem

0.6.3

- fix: show in ui when there is an active dopesheet layer that is not in active object

0.6.2

- fix: problem sending all visible GP

0.6.1:

- fix: in generated bat use %Username% variable (still limited to studio path model)
- fix: error when creating render scene

0.6.0:

- feat: button to generate a background rendering script to batch multi-scene
- fix: exposed checkbox to change scene AA settings, should be on except if there are NG_merges. (auto-off when using merge nodes buttons)
- fix: default generated scene have native AA
- fix: adding layers from object in other scene use active scene (stop always rerouting to 'Render' scene)

0.5.9

- feat: Select which scene to render
- ui: `replaced render all sub-scene` by `Render Selected Scenes`

0.5.8

- fix: skipping when rendering multiscene

0.5.7

- added: timeout on scene plit and autocrop border to avoid freezing blender
- ui: minor correction

0.5.6

- feat: `check layers` new `clear frame out of range` option (Disabled by default)
- ui: `check layers` show the number of targeted GP objects

0.5.5

- ui: add a _total count_ output file to display when output is muted

0.5.4

- feat: button to popup a floating panel with viewlayer list for easy check/toggle

0.5.3

- fix: manage output : activate only some viewlayer take context.scene instead of render.scene

0.5.2

- fix: `rename lowercase` also change modifier layer target names (else target was broken)

0.5.1

- feat: reconnect existing sockets inside nodegroups with clean nodes > re-order

0.5.0

- feat: add a render operator that render all scene
- feat: split selected object to a separated scene
- feat: crop border to objects
- feat: export AE position coordinates to replace layers
- change: ops gp.clean_compo_tree now take context.scene
- fix: tick `use_compositing` and untick `sequencer` in new scenes

0.4.1

- fix: pdf output not skiiping muted nodes

0.4.0

- feat: render as pdf
- ui: advanced options (prefs, disabled by default)
- feat: check numbers of muted outputs
- code: added addon prefs

0.3.7

- fix: set render scene res at 100% at creation
- fix: exclude VL assignation
- feat: delete a render_layer (and add concerned gp layers to exclude)
- feat: reactivate all viewlayers
- feat: activate only selected viewlayer for fast re-render
- ui: rearrange + new buttons

0.3.6

- change: output settings switch from PNG to EXR
- fix: set render scene output (preview) to jpeg fast to write
- fix: correct copy output format ops

0.3.5:

- feat: set full opacity -> skip chosen prefix (MA by default)

0.3.4:

- feat: swap cams button, code copied from `bg_plane_manager`

0.3.3:

- fix: norm name : lowercase first (else bad naming break prefix)

0.3.2

- code: grouped output management ops
- fix: name dash to underscore (normalize)

0.3.1

- fix: renumbering in the right order (since top layers are at bottom of file output)
- fix: renumering error for the last index

0.3.0

- fix: viewlayer exclude attribution error
- fix: force PNG 8bit 15% compression for output settings
- change: GP dopesheet merge ops -> viewlayer merge instead of creating alphaover node
- feat: batch to_lower name
- feat: copy active output node format to selected

0.2.8

- fix: added AA nodegroup
- fix: added exclude viewlayer for unused layers
- fix: added preview as main output (else main composite output go anywhere !)

0.2.7

- feat: check layer states (check use light, opacity, blend mode) and correct if needed
- ui: added chennel group color switch
- feat: added color from active layer on merge ops

0.2.6

- ui: name changes
- ui: dedicated tab in Node editor too
- addon: rename addon from "GP export" to "GP Render"

0.2.5

- ui: removed menu above layer stack
- ui: All function in gp dopesheet new tab GP Render
- fix: node rearrange
- fix: merge from dopesheet
- feat: merge can also create the Render scene
- feat: multi-user warning with mini tutorial procedure

0.2.4

- fix: scene world transfer
- code: remove prints

0.2.3

- fix: ui errors
- fix: scene settings
- fix: clean nodes

0.2.2

- feat: quick scene switch with a button in `node_editor > view`
- fix: re-arrange frames tiny offset
- fix: renumering ignored selection
- ui: gp dopesheet > send multiple layers button

0.2.1

- feat: renumbering with keep existing values

0.2.0

- feat: merge selected viewlayer
- feat: mute/unmute all output nodes
- feat: cleaning options
- feat: renumbering / denumbering

0.1.1

- ui: show number of selected obj
- ui: show panels in dopesheet and node windows

0.1.0

first WIP usable version