Releases: ynput/ayon-nuke
Release list
0.3.10
Changelog
π Enhancement
Publish: Use new workfiles API to increment current workfile. - #133
When incrementing the workfile during publish, use the new context-based workfile API so that the current author information is stored with the saved file.
Create Backdrop: Remove `maintain_selection` attribute. - #127
Remove maintain_selection attribute. It does nothing.
0.3.9
0.3.8
Changelog
π Enhancement
AY-7997_Extract Render Local: Raise `PublishError` on render failure - #125
Extract Render Local: Raise PublishError on render failure to execute the node for rendering so that more meaningful hint is given in publisher UI.
π Bug
Load: Handles on version can be unset - #130
Alllow handleStart and handleEnd to be None on version.
0.3.7
Changelog
π Enhancement
Settings: Refactor `conditionalEnum` -> `conditional_enum` - #121
Refactor conditionalEnum -> conditional_enum
π Bug
Fix wrong frame being integrated as slate frame - #124
Issue comes from the following line:
slate_frame = collected_frames[0].replace(
frame_start_str, frame_slate_str)
Since collected_frames was not sorted, the first element (collected_frames[0]) does not match the value of frame_start_str (which in our case corresponds to 1001). Therefore, replacing that value did not work and the following line collected_frames.insert(0, slate_frame) introduced whichever element is at collected_frames[0].
For instance, in our test, the first element was frame 1017 and collected_frames ended up being like this:
COLLECTED FRAMES -> ['renderScanCheckMain.1017.exr', 'renderScanCheckMain.1017.exr', 'renderScanCheckMain.1051.exr', ... ]
We now look for frame_start_str inside collected_frames, get its index and use it in the replace function.
0.3.6
Changelog
π Enhancement
Chore: Don't use deprecated workfile method - #113
Use get_current_workfile instead of current_workfile, open_workfile instead of open_file and save_workfile instead of save_file.
Remove some legacy terminology in codebase - #104
Remove some avalon/openpype references in codebase.
π Bug
Fix exposed knobs on Write nodes. - #112
resolve #71
Changes:
- Remove exposed knobs from
validate_write_nodesplugin - Ensure exposed knobs related to colorspace are not overwritten by Nuke callbacks on write_nodes
Allow rendering slate to the sequence with range limit - #99
Nuke slate fails to render, Nuke doesn't allow to execute write node outside set frame range limits.
This PR temporarily disables the write node limit for slate render.
0.3.5
Changelog
π Enhancement
AY-7619 Fill gaps in extract review - Nuke - #107
This PR contains Nuke specific handling of missing frames in review.
Only selected frames could be rendered in Deadline, Nuke review process needs to handle missing frames somehow.
0.3.4
0.3.3
Changelog
π Enhancement
Load GeoImport/GeoReference: Add support for loading USD or Alembic using `GeoImport` and `GeoReference` - #93
Add support for loading into Nuke's New 3D System USD-Based Nodes, specifically GeoImport and GeoReference nodes currently in Beta.
Load Geo: Support loading all file formats `ReadGeo` supports, add `fbx`, `obj` and `usd` support - #92
Add support for the Read Geo loader to load any of its supported file types aside of Alembic. It now also supports fbx, obj and usd files as listed in the Nuke documentation for ReadGeo
Allow Camera instance on any version of `Camera` node class - #91
Allow Camera instance on any version of Camera node class
Do not collect 'version' to script data and not to `context.data` - #90
Do not collect 'version' to script data and not to context.data
add settings conversion for #85 - #88
#85 was merged before settings conversion could be added. This is adding conversion function that converts subsets to product_names so project overrides can be copyied.
Settings: Improve docstrings / clarity of settings - #83
Add tooltips/descriptions to the Nuke settings for some aspects that aren't really clear without them.
AY-7442 Dissociate file_type and ext knob computation (SXR and JPG extension support). - #81
Changes to ensure SXR (exr) and JPG (jpeg) can be rendered out of our Render write nodes through AYON settings.
Needs to be tested with ynput/ayon-core#1165 to ensure loader is OK.
AY-7475 - Define default render targets through settings. - #80
Resolve: #74
Add new settings to be able to define default render targets for Render, Image and Prerender creators
π Bug
Fix: remove unnecessary logger import - #95
PR #88 introduced debug log to conversion function utilizing logger from server backend. This unfortunately created dependency to new server version just because of this. This PR is removing this import so it stays as much compatible as possible with older versions.
Fix support for Optional state of `IncrementScriptVersion` from settings - #94
IncrementScriptVersion should show up as optional toggle in Context in Publisher UI if set to optional in settings.
Add custom node classes and change subset to product - #85
Re-adding possibility to to specify custom node classes in node overrides. #43 turned node classes to enum but that removed ability to specify any other class than those listed there. Also changed usage of "subset" to "product" as mentioned in #70
Replace render path in write nodes from stagingDir - #58
Custom stagingDir (ayon+settings://core/tools/publish/custom_staging_dir_profiles) could use dynamic portion, using {version} or some unique descriptor. Render path of write nodes sets this stagingDir path only during creation time (eg. it stays static), this updates each publish run.
New publish plugin was created in Other section which updates version in render path to matching work workfile version (which got just bumped up step before). That way renders subfolders would be unique.
This plugin is optional and by default its disabled.

0.3.2
Changelog
π Enhancement
Make ocioLook loader handle multiple chained LUTs. - #77
Changes on the Nuke ociolook loader:
- Ensure multiple chained LUT published are properly loaded
- Fix the
invert_directionLUT attribute for theOCIOFileTransformnuke node
Easier `Gizmo Menu` settings - #47
resolve #46
- Enhance gizmo settings
ayon+settings://nuke/gizmo - Enhance loading logic here.
- Implement Setting Conversion.
- Support using template keys and environment variables.
[!Note]
Changes in this PR are inspired by the UX of theShelves Managerin Houdini addon settings.
I've realize that Houdini docs are abit old.
π Bug
Applying correctly viewer colorspace from settings - #79
Viewer settings is now correctly applied even for Nuke 13.2 verison.
Improve selection handling in NukeWriteCreator - #65
- Added early return for no selection case.
- Simplified logic to raise error only if selected nodes are missing.
- Handled headless mode by defaulting pre_create_data when absent.
closes #56
Update colorspace retrieval logic - #64
- Enhanced colorspace fetching to prioritize new data structure.
- Added fallback options for backward compatibility.
- Improved logging for better debugging of colorspace sources
Fix retime gathering from Nuke (freeze frame, linear speed and TimeWarp) - #61
Resolve: ynput/ayon-hiero#12
Resolve: ynput/ayon-hiero#29
Adjusted:
- Fix linear speed gathering and freeze frames
- Ensure timewarps are properly retrieved
Fix returned colorspace list in `get_colorspace_list` - AY-7415 - #60
In ACES 1.3 some of the colorspaces returned by nuke.getColorspaceList are in the form of a single string containing the colorspace name and its aliases separated by the tab character "\t" or a comma. E.g. "ACES2065-1\t\taces2065_1,ACES - ACES2065-1,lin_ap0". This was not being taken in to account when adding colorspaces to the results list.
For instance, here some of the resulting colorspace list without the fix:
[
"default (Gamma2.2)",
"aces_interchange",
"cie_xyz_d65_interchange",
"color_picking",
"color_timing",
"compositing_log",
"data",
"matte_paint",
"scene_linear",
"texture_paint",
"ACES2065-1\t\taces2065_1,ACES - ACES2065-1,lin_ap0",
"ACEScc\t\tACES - ACEScc,acescc_ap1",
"ACEScct\t\tACES - ACEScct,acescct_ap1",
"ACEScg\t\tACES - ACEScg,lin_ap1",
...
]This makes function colorspace_exists_on_node to always return False if we set a colorspace by using its name in file rules instead of a role. return "ACES2065-1" in get_colorspace_list(colorspace_knob, node) won't match as the in operator in list expects a full match, unlike strings where a substring would match.
With the change, the resulting list is something like:
[
"default",
"aces_interchange",
"cie_xyz_d65_interchange",
"color_picking",
"color_timing",
"compositing_log",
"data",
"matte_paint",
"scene_linear",
"texture_paint",
"ACES2065-1",
"ACEScc",
"ACEScct",
"ACEScg",
...
]Fixing the issue.

