Skip to content
This repository has been archived by the owner on Sep 20, 2024. It is now read-only.

Releases: ynput/OpenPype

3.16.7

19 Sep 15:32
Compare
Choose a tag to compare

Full Changelog

🆕 New features

Maya: Extract active view as thumbnail when no thumbnail set #5426

This sets the Maya instance's thumbnail to the current active view if no thumbnail was set yet.


Maya: Implement USD publish and load using native `mayaUsdPlugin` #5573

Implement Creator and Loaders for extraction and loading of USD files using Maya's own mayaUsdPlugin.Also adds support to load a usd file into an Arnold Standin (aiStandin) and assigning looks to it.


AYON: Ignore separated modules #5619

Do not load already separated modules from default directory.


🚀 Enhancements

Maya: Reduce amount of code for Collect Looks #5253
  • Refactor get_file_node_files because popping from paths by index should have been done in reversed order anyway. It's now changed to not need popping at all.
  • Removed unused RENDERER_NODE_TYPES and if-branch which collected node_attrs list which was unused + collected members which was also done outside of the if branch and thus generated no extra data.
  • Collected all materials from look set attributes at once instead of multiple queries
  • Collected all file nodes in history from a single query instead of per type
  • Restructured assignment of instance.data["resources"] to be more readable
  • Cached PXR_NODES only ones (Note: plugin load is checked on discovery of the collect look plugin) instead of querying plugin load and its nodes per file node per attribute
  • Removed some debug logs or combined some messages

AYON: Mark deprecated settings in Maya #5627

Added deprecated info to docstrings of maya colormanagement settings.Resolves: #5556


Max: switching versions of maxScene maintain parentage/links with the loaders #5424

When using scene inventory to manage or update the version of the loading objects, the linked modifiers or parentage of the objects would be kept.Meanwhile, loaded objects from all loaders no longer parented to the container with OP Data.


3ds max: small tweaks to obj extractor and model publishing flow #5605

There migh be situation where OBJ Extractor passes without failure, but no obj file is produced. This is adding simple check directly into the extractor to catch it earlier then in the integration phase. Also switched Validate USD Plugin to optional, because it was always run no matter if the Extract USD was enabled or not, hindering testing (and publishing).


TVPaint: Plugin can be reopened #5610

TVPaint plugin can be reopened.


Maya: Remove context prompt #5632

More of a plea than a PR, but could we please remove the context prompt in Maya when switching tasks?


General: Create a desktop icon is checked #5636

In OP Installer Create a desktop icon is checked by default.


🐛 Bug fixes

Maya: Extract look is not AYON compatible - OP-5375 #5341

The textures that would use hardlinking are going through texture processors. Currently all texture processors are hardcoded to copy texture instead of respecting the settings of forcing to copy.The texture processors were last modified 4 months ago, so effectively all clients that are on any pipeline updated in the last 4 months wont be utilizing hardlinking at all, since the hardcoded texture processors will copy texture no matter the OS.This opts for completely disabling the hardlinking feature, while we figure out what to do about it.


Maya: Multiverse USD Override inherit from correct new style creator #5566

Fix Creator for Multiverse USD Override by inheriting from correct new style creator class type


Max: Bug Fix Alembic Loaders with Ornatrix #5434

Bugfix the alembic loader with both ornatrix alembic and max alembic supportsAdd the ornatrix alembic loaders for loading the alembic with Ornatrix-related modifiers.


AYON: Avoid creation of duplicated links #5593

Handle cases when an existing link should be recreated and do not create the same link multitple times during single publishing.


Extract Review: Multilayer specification for ffmpeg #5613

Extract review is specifying layer name when exr is multilayer.


Fussion: added support for Fusion 17 #5614

Fusion 17 still uses Python 3.6 which causes issues with some our delivered libraries. Vendorized necessary set for Python 3.6


Publisher: Fix screenshot widget #5615

Use correct super method name.EDITED:Removed fade animation which is not triggered at some cases, e.g. in Nuke the animation does not start. I do expect that is caused by exec_ on the dialog, which blocks event processing to the animation, even when I've added the window as parent it still didn't trigger registered callback.Modified how the "empty" space is not filled by using paths instead of clear mode on painter. Added render hints to add antialiasing.


Photoshop: auto_images without alpha will not fail #5620

ExtractReview caused issue on auto_image instance without alpha channel, this fixes it.


Fix - _id key used instead of id in get_last_version_by_subset_name #5626

Just 'id' is not returned because value in fields. Caused KeyError.


Bugfix: create symlinks for ssl libs on Centos 7 #5633

Docker build was missing libssl.1.1.so and libcrypto.1.1.so symlinks needed by the executable itself, because Python is now explicitly built with OpenSSL 1.1.1


📃 Documentation

Documentation/local settings #5102

I completed the "Working with local settings" page. I updated the screenshot, wrote an explanation for each empty category, and if available, linked the more detailed pages already existing. I also added the "Environments" category.


3.16.6

12 Sep 14:37
Compare
Choose a tag to compare

Full Changelog

🆕 New features

Workfiles tool: Refactor workfiles tool (for AYON) #5550

Refactored workfiles tool to new tool. Separated backend and frontend logic. Refactored logic is AYON-centric and is used only in AYON mode, so it does not affect OpenPype.


AfterEffects: added validator for missing files in FootageItems #5590

Published composition in AE could contain multiple FootageItems as a layers. If FootageItem contains imported file and it doesn't exist, render triggered by Publish process will silently fail and no output is generated. This could cause failure later in the process with unclear reason. (In ExtractReview).This PR adds validation to protect from this.


🚀 Enhancements

Maya: Yeti Cache Include viewport preview settings from source #5561

When publishing and loading yeti caches persist the display output and preview colors + settings to ensure consistency in the view


Houdini: validate colorspace in review rop #5322

Adding a validator that checks if 'OCIO Colorspace' parameter on review rop was set to a valid value.It is a step towards managing colorspace in review ropvalid values are the ones in the dropdown menuthis validator also provides some helper actions This PR is related to #4836 and #4833


Colorspace: adding abstraction of publishing related functions #5497

The functionality of Colorspace has been abstracted for greater usability.


Nuke: removing redundant workfile colorspace attributes #5580

Nuke root workfile colorspace data type knobs are long time configured automatically via config roles or the default values are also working well. Therefore there is no need for pipeline managed knobs.


Ftrack: Less verbose logs for Ftrack integration in artist facing logs #5596
  • Reduce artist-facing logs for component integration for Ftrack
  • Avoid "Comment is not set" log in artist facing report for Kitsu and Ftrack
  • Remove info log about ffprobe inspecting a file (changed to debug log)
  • interesting to see however that it ffprobes the same jpeg twice - but maybe once for thumbnail?

🐛 Bug fixes

Maya: Fix rig validators for new out_SET and controls_SET names #5595

Fix usage of out_SET and controls_SET since #5310 because they can now be prefixed by the subset name.


TrayPublisher: set default frame values to sequential data #5530

We are inheriting default frame handles and fps data either from project or setting them to 0. This is just for case a production will decide not to injest the sequential representations with asset based metadata.


Publisher: Screenshot opacity value fix #5576

Fix opacity value.


AfterEffects: fix imports of image sequences #5581

#4602 broke imports of image sequences.


AYON: Fix representation context conversion #5591

Do not fix "folder" key in representation context until it is needed.


ayon-nuke: default factory to lists #5594

Default factory were missing in settings schemas for complicated objects like lists and it was causing settings to be failing saving.


Maya: Fix look assigner showing no asset if 'not found' representations are present #5597

Fix Maya Look assigner failing to show any content if it finds an invalid container for which it can't find the asset in the current project. (This can happen when e.g. loading something from a library project).There was logic already to avoid this but there was a bug where it used variable _id which did not exist and likely had to be asset_id.I've fixed that and improved the logged message a bit, e.g.:

// Warning: openpype.hosts.maya.tools.mayalookassigner.commands : Id found on 22 nodes for which no asset is found database, skipping '641d78ec85c3c5b102e836b0'

Example not found representation in Loader:The issue isn't necessarily related to NOT FOUND representations but in essence boils down to finding nodes with asset ids that do not exist in the current project which could very well just be local meshes in your scene.**Note:**I've excluded logging the nodes themselves because that tends to be a very long list of nodes. Only downside to removing that is that it's unclear which nodes are related to that id. If there are any ideas on how to still provide a concise informational message about that that'd be great so I could add it. Things I had considered:

  • Report the containers, issue here is that it's about asset ids on nodes which don't HAVE to be in containers - it could be local geometry
  • Report the namespaces, issue here is that it could be nodes without namespaces (plus potentially not about ALL nodes in a namespace)
  • Report the short names of the nodes; it's shorter and readable but still likely a lot of nodes.@tokejepsen @LiborBatek any other ideas?

Photoshop: fixed blank Flatten image #5600

Flatten image is simplified publishing approach where all visible layers are "flatten" and published together. This image could be used as a reference etc.This is implemented by auto creator which wasn't updated after first publish. This would result in missing newly created layers after auto_image instance was created.


Blender: Remove Hardcoded Subset Name for Reviews #5603

Fixes hardcoded subset name for Reviews in Blender.


TVPaint: Fix tool callbacks #5608

Do not wait for callback to finish.


🔀 Refactored code

Chore: Remove unused variables and cleanup #5588

Removing some unused variables. In some cases the unused variables seemed like they should've been used - maybe? so please double check the code whether it doesn't hint to an already existing bug.Also tweaked some other small bugs in code + tweaked logging levels.


Merged pull requests

Chore: Loader log deprecation warning for 'fname' attribute #5587

Since #4602 the fname attribute on the LoaderPlugin should've been deprecated and set for removal over time. However, no deprecation warning was logged whatsoever and thus one usage appears to have sneaked in (fixed with this PR) and a new one tried to sneak in with a recent PR


3.16.5

06 Sep 08:00
Compare
Choose a tag to compare

Full Changelog

🆕 New features

Attribute Definitions: Multiselection enum def #5547

Added multiselection option to EnumDef.


🚀 Enhancements

Farm: adding target collector #5494

Enhancing farm publishing workflow.


Maya: Optimize validate plug-in path attributes #5522
  • Optimize query (use cmds.ls once)
  • Add Select Invalid action
  • Improve validation report
  • Avoid "Unknown object type" errors

Maya: Remove Validate Instance Attributes plug-in #5525

Remove Validate Instance Attributes plug-in.


Enhancement: Tweak logging for artist facing reports #5537

Tweak the logging of publishing for global, deadline, maya and a fusion plugin to have a cleaner artist-facing report.

  • Fix context being reported correctly from CollectContext
  • Fix ValidateMeshArnoldAttributes: fix when arnold is not loaded, fix applying settings, fix for when ai attributes do not exist

AYON: Update settings #5544

Updated settings in AYON addons and conversion of AYON settings in OpenPype.


Chore: Removed Ass export script #5560

Removed Arnold render script, which was obsolete and unused.


Nuke: Allow for knob values to be validated against multiple values. #5042

Knob values can now be validated against multiple values, so you can allow write nodes to be exr and png, or 16-bit and 32-bit.


Enhancement: Cosmetics for Higher version of publish already exists validation error #5190

Fix double spaces in message.Example output after the PR:


Nuke: publish existing frames on farm #5409

This PR proposes adding a fourth option in Nuke render publish called "Use Existing Frames - Farm". This would be useful when the farm is busy or when the artist lacks enough farm licenses. Additionally, some artists prefer rendering on the farm but still want to check frames before publishing.By adding the "Use Existing Frames - Farm" option, artists will have more flexibility and control over their render publishing process. This enhancement will streamline the workflow and improve efficiency for Nuke users.


Unreal: Create project in temp location and move to final when done #5476

Create Unreal project in local temporary folder and when done, move it to final destination.


TrayPublisher: adding audio product type into default presets #5489

Adding Audio product type into default presets so anybody can publish audio to their shots.


Global: avoiding cleanup of flagged representation #5502

Publishing folder can be flagged as persistent at representation level.


General: missing tag could raise error #5511
  • avoiding potential situation where missing Tag key could raise error

Chore: Queued event system #5514

Implemented event system with more expected behavior of event system. If an event is triggered during other event callback, it is not processed immediately but waits until all callbacks of previous events are done. The event system also allows to not trigger events directly once emit_event is called which gives option to process events in custom loops.


Publisher: Tweak log message to provide plugin name after "Plugin" #5521

Fix logged message for settings automatically applied to plugin attributes


Houdini: Improve VDB Selection #5523

Improves VDB selection if selection is SopNode: return the selected sop nodeif selection is ObjNode: get the output node with the minimum 'outputidx' or the node with display flag


Maya: Refactor/tweak Validate Instance In same Context plug-in #5526
  • Chore/Refactor: Re-use existing select invalid and repair actions
  • Enhancement: provide more elaborate PublishValidationError report
  • Bugfix: fix "optional" support by using OptionalPyblishPluginMixin base class.

Enhancement: Update houdini main menu #5527

This PR adds two updates:

  • dynamic main menu
  • dynamic asset name and task

Houdini: Reset FPS when clicking Set Frame Range #5528

Similar to Maya, Make Set Frame Range resets FPS, issue #5516


Enhancement: Deadline plugins optimize, cleanup and fix optional support for validate deadline pools #5531
  • Fix optional support of validate deadline pools
  • Query deadline webservice only once per URL for verification, and once for available deadline pools instead of for every instance
  • Use deadlineUrl in instance.data when validating pools if it is set.
  • Code cleanup: Re-use existing requests_get implementation

Chore: PowerShell script for docker build #5535

Added PowerShell script to run docker build.


AYON: Deadline expand userpaths in executables list #5540

Expande ~ paths in executables list.


Chore: Use correct git url #5542

Fixed github url in README.md.


Chore: Create plugin does not expect system settings #5553

System settings are not passed to initialization of create plugin initialization (and apply_settings).


Chore: Allow custom Qt scale factor rounding policy #5555

Do not force PassThrough rounding policy if different policy is defined via env variable.


Houdini: Fix outdated containers pop-up on opening last workfile on launch #5567

Fix Houdini not showing outdated containers pop-up on scene open when launching with last workfile argument


Houdini: Improve errors e.g. raise PublishValidationError or cosmetics #5568

Improve errors e.g. raise PublishValidationError or cosmeticsThis also fixes the Increment Current File plug-in since due to an invalid import it was previously broken


Fusion: Code updates #5569

Update fusion code which contains obsolete code. Removed switch_ui.py script from fusion with related script in scripts.


🐛 Bug fixes

Maya: Validate Shape Zero fix repair action + provide informational artist-facing report #5524

Refactor to PublishValidationError to allow the RepairAction to work + provide informational report message


Maya: Fix attribute definitions for `CreateYetiCache` #5574

Fix attribute definitions for CreateYetiCache


Max: Optional Renderable Camera Validator for Render Instance #5286

Optional validation to check on renderable camera being set up correctly for deadline submission.If not being set up correctly, it wont pass the validation and user can perform repair actions.


Read more

3.16.4

22 Aug 14:41
Compare
Choose a tag to compare

Full Changelog

🆕 New features

Feature: Download last published workfile specify version #4998

Setting workfile_version key to hook's self.launch_context.data allow you to specify the workfile version you want sync service to download if none is matched locally. This is helpful if the last version hasn't been correctly published/synchronized, and you want to recover the previous one (or some you'd like).Version could be set in two ways:

  • OP's absolute version, matching the version index in DB.
  • Relative version in reverse order from the last one: -2, -3...I don't know where I should write documentation about that.

🚀 Enhancements

Maya: allow not creation of group for Import loaders #5427

This PR enhances previous one. All ReferenceLoaders could not wrap imported products into explicit group.Also Import Loaders have same options. Control for this is separate in Settings, eg. Reference might wrap loaded items in group, Import might not.


3dsMax: Settings for Ayon #5388

Max Addon Setting for Ayon


General: Navigation to Folder from Launcher #5404

Adds an action in launcher to open the directory of the asset.


Chore: Default variant in create plugin #5429

Attribute default_variant on create plugins always returns string and if default variant is not filled other ways how to get one are implemented.


Publisher: Thumbnail widget enhancements #5439

Thumbnails widget in Publisher has new 3 options to choose from: Paste (from clipboard), Take screenshot and Browse. Clear button and new options are not visible by default, user must expand options button to show them.


AYON: Update ayon api to '0.3.5' #5460

Updated ayon-python-api to 0.3.5.


🐛 Bug fixes

AYON: Apply unknown ayon settings first #5435

Settings of custom addons are available in converted settings.


Maya: Fix wrong subset name of render family in deadline #5442

New Publisher is creating different subset names than previously which resulted in duplication of render string in final subset name of render family published on Deadline.This PR solves that, it also fixes issues with legacy instances from old publisher, it matches the subset name as was before.This solves same issue in Max implementation.


Maya: Fix setting of version to workfile instance #5452

If there are multiple instances of renderlayer published, previous logic resulted in unpredictable rewrite of instance family to 'workfile' if Sync render version with workfile was on.


Maya: Context plugin shouldn't be tied to family #5464

Maya Current File collector was tied to workfile unnecessary. It should run even if workile instance is not being published.


Unreal: Fix loading hero version for static and skeletal meshes #5393

Fixed a problem with loading hero versions for static ans skeletal meshes.


TVPaint: Fix 'repeat' behavior #5412

Calculation of frames for repeat behavior is working correctly.


AYON: Thumbnails cache and api prep #5437

Moved thumbnails cache from ayon python api to OpenPype and prepare AYON thumbnail resolver for new api functions. Current implementation should work with old and new ayon-python-api.


Nuke: Name of the Read Node should be updated correctly when switching versions or assets. #5444

Bug fixing of the read node's name not being updated correctly when setting version or switching asset.


Farm publishing: asymmetric handles fixed #5446

Handles are now set correctly on farm published product version if asymmetric were set to shot attributes.


Scene Inventory: Provider icons fix #5450

Fix how provider icons are accessed in scene inventory.


Fix typo on Deadline OP plugin name #5453

Surprised that no one has hit this bug yet... but it seems like there was a typo on the name of the OP Deadline plugin when submitting jobs to it.


AYON: Fix version attributes update #5472

Fixed updates of attribs in AYON mode.


Merged pull requests

Added missing defaults for import_loader #5447
Bug: Local settings don't open on 3.14.7 #5220

Before posting a new ticket, have you looked through the documentation to find an answer?

Yes I have

Have you looked through the existing tickets to find any related issues ?

Not yet

Author of the bug

@FadyFS

Version

3.15.11-nightly.3

What platform you are running OpenPype on?

Linux / Centos

Current Behavior:

the previous behavior (bug) :
image

Expected Behavior:

image

What type of bug is it ?

Happened only once in a particular configuration

Which project / workfile / asset / ...

open settings with 3.14.7

Steps To Reproduce:

  1. Run openpype on the 3.15.11-nightly.3 version
  2. Open settings in 3.14.7 version

Relevant log output:

No response

Additional context:

No response


Tests: Add automated targets for tests #5443

Without it plugins with 'automated' targets won't be triggered (eg CloseAE etc.)


3.16.3

11 Aug 08:54
a9d8e57
Compare
Choose a tag to compare

Full Changelog

🆕 New features

AYON: 3rd party addon usage #5300

Prepare OpenPype code to be able use ayon-third-party addon which supply ffmpeg and OpenImageIO executables. Because they both can support to define custom arguments (more than one) a new functions were needed to supply.New functions are get_ffmpeg_tool_args and get_oiio_tool_args. They work similar to previous but instead of string are returning list of strings. All places using previous functions get_ffmpeg_tool_path and get_oiio_tool_path are now using new ones. They should be backwards compatible and even with addon if returns single argument.


AYON: Addon settings in OpenPype #5347

Moved settings addons to OpenPype server addon. Modified create package to create zip files for server for each settings addon and for openpype addon.


AYON: Add folder to template data #5417

Added folder to template data, so {folder[name]} can be used in templates.


Option to start versioning from 0 #5262

This PR adds a settings option to start all versioning from 0.This PR will replace #4455.


Ayon: deadline implementation #5321

Quick implementation of deadline in Ayon. New Ayon plugin added for Deadline repository


AYON: Remove AYON launch logic from OpenPype #5348

Removed AYON launch logic from OpenPype. The logic is outdated at this moment and is replaced by ayon-launcher.


🚀 Enhancements

Bug: Error on multiple instance rig with maya #5310

I change endswith method by startswith method because the set are automacaly name out_SET, out_SET1, out_SET2 ...


Applications: Use prelaunch hooks to extract environments #5387

Environment variable preparation is based on prelaunch hooks. This should allow to pass OCIO environment variables to farm jobs.


Applications: Launch hooks cleanup #5395

Use set instead of list for filtering attributes in launch hooks. Celaction hooks dir does not contain __init__.py. Celaction prelaunch hook is reusing CELACTION_ROOT_DIR. Launch hooks are using full import from openpype.lib.applications.


Applications: Environment variables order #5245

Changed order of set environment variables. First are set context environment variables and then project environment overrides. Also asset and task environemnt variables are optional.


Autosave preferences can be read after Nuke opens the script #5295

Looks like I need to open the script in Nuke to be able to correctly load the autosave preferences.This PR reads the Nuke script in context, and offers owerwriting the current script with autosaved one if autosave exists.


Resolve: Update with compatible resolve version and latest docs #5317

Missing information about compatible Resolve version and latest docs from https://github.com/ynput/OpenPype/tree/develop/openpype/hosts/resolve


Chore: Remove deprecated functions #5323

Removed functions/classes that are deprecated and marked to be removed.


Nuke Render and Prerender nodes Process Order - OP-3555 #5332

This PR exposes control over the order of processing of the instances, by sorting the instances created. The sorting happens on the render_order and subset name. If the knob render_order is found on the instance, we'll sort by that first before sorting by subset name.render_order instances are processed before nodes without render_order. This could be extended in the future by querying other knobs but I dont know of a usecase for this.Hardcoded the creator order attribute of the prerender class to be before the render. Could be exposed to the user/studio but dont know of a use case for this.


Unreal: Python Environment Improvements #5344

Automatically set UE_PYTHONPATH as PYTHONPATH when launching Unreal.


Unreal: Custom location for Unreal Ayon Plugin #5346

Added a new environment variable AYON_BUILT_UNREAL_PLUGIN to set an already existing and built Ayon Plugin for Unreal.


Unreal: Better handling of Exceptions in UE Worker threads #5349

Implemented a new UEWorker base class to handle exception during the execution of UE Workers.


Houdini: Add farm toggle on creation menu #5350

Deadline Farm publishing and Rendering for Houdini was possible with this PR #4825 farm publishing is enabled by default some ROP nodes which may surprise new users (like me).I think adding a toggle (on by default) on creation UI is better so that users will be aware that there's a farm option for this publish instance.ROPs Modified :

  • Mantra ROP
  • Karma ROP
  • Arnold ROP
  • Redshift ROP
  • Vray ROP

Ftrack: Sync to avalon settings #5353

Added roles settings for sync to avalon action.


Chore: Schemas inside OpenPype #5354

Moved/copied schemas from repository root inside openpype/pipeline.


AYON: Addons creation enhancements #5356

Enhanced AYON addons creation. Fix issue with Pattern typehint. Zip filenames contain version. OpenPype package is skipping modules that are already separated in AYON. Updated settings of addons.


AYON: Update staging icons #5372

Updated staging icons for staging mode.


Enhancement: Houdini Update pointcache labels #5373

To me it's logical to find pointcaches types listed one after another, but they were named differentlySo, I made this PR to update their labels


nuke: split write node product instance features #5389

Improving Write node product instances by allowing precise activation of specific features.


Max: Use the empty modifiers in container to store AYON Parameter #5396

Instead of adding AYON/OP Parameter along with other attributes inside the container, empty modifiers would be created to store AYON/OP custom attributes


AfterEffects: Removed unused imports #5397

Removed unused import from extract local render plugin file.


Nuke: adding BBox knob type to settings #5405

Nuke knob types in settings having new Box type for reposition nodes like Crop or Reformat.


SyncServer: Existence of module is optional #5413

Existence of SyncServer module is optional and not required. Added sync_server module back to ignored modules when openpype addon is created for AYON. Command syncserver is marked as deprecated and redirected to sync server cli.


Webpublisher: Self contain test publish logic #5414

Moved test logic of publishing to webpublisher. Simplified remote_publish to remove webpublisher specific logic.


Webpublisher: Cleanup targets #5418

Removed remote target from webpublisher and replaced it with 2 targets webpublisher and ...

Read more

3.16.2

25 Jul 14:09
Compare
Choose a tag to compare

Full Changelog

🆕 New features

Fusion - Set selected tool to active #5327

When you run the action to select a node, this PR makes the node-flow show the selected node + you'll see the nodes controls in the inspector.


🚀 Enhancements

Maya: All base create plugins #5326

Prepared base classes for each creator type in Maya. Extended MayaCreatorBase to have default implementations of common logic with instances which is used in each type of plugin.


Windows: Support long paths on zip updates. #5265

Support long paths for version extract on Windows.Use case is when having long paths in for example an addon. You can install to the C drive but because the zip files are extracted in the local users folder, it'll add additional sub directories to the paths and quickly get too long paths for Windows to handle the zip updates.


Blender: Added setting to set resolution and start/end frames at startup #5338

This PR adds set_resolution_startupand set_frames_startup settings. They automatically set respectively the resolution and start/end frames and FPS in Blender when opening a file or creating a new one.


Blender: Support for ExtractBurnin #5339

This PR adds support for ExtractBurnin for Blender, when publishing a Review.


Blender: Extract Camera as Alembic #5343

Added support to extract Alembic Cameras in Blender.


🐛 Bug fixes

Maya: Validate Instance In Context #5335

Missing new publisher error so the repair action shows up.


Settings: Fix default settings #5311

Fixed defautl settings for shotgrid. Renamed FarmRootEnumEntity to DynamicEnumEntity and removed doubled ABC metaclass definition (all settings entities have abstract metaclass).


Deadline: missing context argument #5312

Updated function arguments


Qt UI: Multiselection combobox PySide6 compatibility #5314
  • The check states are replaced with the values for PySide6
  • QtCore.Qt.ItemIsUserTristate is used instead of QtCore.Qt.ItemIsTristate to avoid crashes on PySide6

Docker: handle openssl 1.1.1 for centos 7 docker build #5319

Move to python 3.9 has added need to use openssl 1.1.x - but it is not by default available on centos 7 image. This is fixing it.


houdini: fix typo in redshift proxy #5320

I believe there's a typo in create_redshift_proxy.py ( extra ` ) in filename, and I made this PR to suggest a fix


Houdini: fix wrong creator identifier in pointCache workflow #5324

FIxing a bug in publishing alembics, were invalid creator identifier caused missing family association.


Fix colorspace compatibility check #5334

for some reason a user may have PyOpenColorIO installed to his machine, _in my case it came with renderman._it can trick the compatibility check as import PyOpenColorIO won't raise an error however it may be an old version _like my case_Beforecompatibility check was true and It used wrapper directly After Fix It will use wrapper via subprocess instead


Merged pull requests

Remove forgotten dev logging #5315

3.16.1

18 Jul 07:09
8445fa3
Compare
Choose a tag to compare

Full Changelog

🆕 New features

Royal Render: Maya and Nuke support #5191

Basic working implementation of Royal Render support in Maya.It expects New publisher implemented in Maya.


Blender: Blend File Family #4321

Implementation of the Blend File family analogue to the Maya Scene one.

___
Houdini: simple bgeo publishing #4588

Support for simple publishing of bgeo files.

This is adding basic support for bgeo publishing in Houdini. It will allow publishing bgeo in all supported formats (selectable in the creator options). If selected node has output on sop level, it will be used automatically as path in file node.


🚀 Enhancements

General: delivery action add renamed frame number in Loader #5024

Frame Offset options for delivery in Openpype loader


Enhancement/houdini add path action for abc validator #5237

Add a default path attribute Action.it's a helper action more than a repair action, which used to add a default single value.


Nuke: auto apply all settings after template build #5277

Adding auto run of Apply All Settings after template is builder is finishing its process. This will apply Frame-range, Image size, Colorspace found in context of a task shot.


Harmony:Removed loader settings for Harmony #5289

It shouldn't be configurable, it is internal logic. By adding additional extension it wouldn't start to work magically.


🐛 Bug fixes

AYON: Make appdirs case sensitive #5298

Appdirs for AYON are case sensitive for linux and mac so we needed to change them to match ayon launcher. Changed 'ayon' to 'AYON' and 'ynput' to 'Ynput'.


Traypublisher: Fix plugin order #5299

Frame range collector for traypublisher was moved to traypublisher plugins and changed order to make sure assetEntity is filled in instance.data.


Deadline: removing OPENPYPE_VERSION from some host submitters #5302

Removing deprecated method of adding OPENPYPE_VERSION to job environment. It was leftover and other hosts have already been cleared.


AYON: Fix args for workfile conversion util #5308

Workfile update conversion util function have right expected arguments.


🔀 Refactored code

Maya: Refactor imports to `lib.get_reference_node` since the other function… #5258

Refactor imports to lib.get_reference_node since the other function is deprecated.


3.16.0

13 Jul 13:18
3.16.0
7bbea01
Compare
Choose a tag to compare

⚠️ Unstable Release: Please refrain from using this version in a production environment. ⚠️

Full Changelog

🆕 New features

General: Reduce usage of legacy io #4723

Replace usages of legacy_io with getter methods or reuse already available information. Create plugins using CreateContext are using context from CreateContext object. Loaders are usign getter function from context tools. Publish plugin are using information instance.data or context.data. In some cases were pieces of code refactored a little e.g. fps getter in maya.


Documentation: API docs reborn - yet again #4419

Feature

Add functional base for API Documentation using Sphinx and AutoAPI.

After unsuccessful #2512, #834 and #210 this is yet another try. But this time without ambition to solve the whole issue. This is making Shinx script to work and nothing else. Any changes and improvements in API docs should be made in subsequent PRs.

How to use it

You can run:

cd .\docs
make.bat html

or

cd ./docs
make html

This will go over our code and generate .rst files in /docs/source/autoapi and from those it will generate full html documentation in /docs/build/html.

During the build you'll see tons of red errors that are pointing to our issues:

  1. Wrong imports
    Invalid import are usually wrong relative imports (too deep) or circular imports.

  2. Invalid doc-strings
    Doc-strings to be processed into documentation needs to follow some syntax - this can be checked by running
    pydocstyle that is already included with OpenPype

  3. Invalid markdown/rst files
    md/rst files can be included inside rst files using .. include:: directive. But they have to be properly formatted.

Editing rst templates

Everything starts with /docs/source/index.rst - this file should be properly edited, Right now it just includes readme.rst that in turn include and parse main README.md. This is entrypoint to API documentation. All templates generated by AutoAPI are in /docs/source/autoapi. They should be eventually commited to repository and edited too.

Steps for enhancing API documentation

  1. Run /docs/make.bat html
  2. Read the red errors/warnings - fix it in the code
  3. Run /docs/make.bat html again until there are not red lines
  4. Edit rst files and add some meaningfull content there

Note
This can (should) be merged as is without doc-string fixes in the code or changes in templates. All additional improvements on API documentation should be made in new PRs.

Warning
You need to add new dependencies to use it. Run create_venv.

Connected to #2490


Global: custom location for OP local versions #4673

This provides configurable location to unzip Openpype version zips. By default, it was hardcoded to artist's app data folder, which might be problematic/slow with roaming profiles.Location must be accessible by user running OP Tray with write permissions (so Program Files might be problematic)


AYON: Update settings conversion #4837

Updated conversion script of AYON settings to v3 settings. PR is related to changes in addons repository ynput/ayon-addons-settings#6 . Changed how the conversion happens -> conversion output does not start with openpype defaults but as empty dictionary.


AYON: Implement integrate links publish plugin #4842

Implemented entity links get/create functions. Added new integrator which replaces v3 integrator for links.


General: Version attributes integration #4991

Implemented unified integrate plugin to update version attributes after all integrations for AYON. The goal is to be able update attribute values in a unified way to a version when all addon integrators are done, so e.g. ftrack can add ftrack id to matching version in AYON server etc.The can be stored under "versionAttributes" key.


AYON: Staging versions can be used #4992

Added ability to use staging versions in AYON mode.


AYON: Preparation for products #5038

Prepare ayon settings conversion script for product settings conversion.


Loader: Hide inactive versions in UI #5101

Added support for active argument to hide versions with active set to False in Loader UI when in AYON mode.


General: CLI addon command #5109

Added addon alias for module in OpenPype cli commands.


AYON: OpenPype as server addon #5199

OpenPype repository can be converted to AYON addon for distribution. Addon has defined dependencies that are required to use it and are not in base ayon-launcher (desktop application).


General: Runtime dependencies #5206

Defined runtime dependencies in pyproject toml. Moved python ocio and otio modules there.


AYON: Bundle distribution #5209

Since AYON server 0.3.0 are addon versions defined by bundles which affects how addons, dependency packages and installers are handled. Only source of truth, about any version of anything that should be used, is server bundle.


Feature/blender handle q application #5264

This edit is to change the way the QApplication is run for Blender. It calls in the singleton (QApplication) during the register. This is made so that other Qt applications and addons are able to run on Blender. In its current implementation, if a QApplication is already running, all functionality of OpenPype becomes unavailable.


🚀 Enhancements

Maya: Refactor to new publisher #4388 Refactor Maya to use the new publisher with new creators.
General: Connect to AYON server (base) #3924

Initial implementation of being able use AYON server in current OpenPype client. Added ability to connect to AYON server and use base queries.

AYON mode has it's own executable (and start script). To start in AYON mode just replace start.py with ayon_start.py (added tray start script to tools). Added constant AYON_SERVER_ENABLED to openpype/__init__.py to know if ayon mode is enabled. In that case Mongo is not used at all and any attempts will cause crashes.I had to modify ~/openpype/client content to be able do this switch. Mongo implementation was moved to mongo subfolder and use "star imports" in files from where current imports are used. Logic of any tool or query in code was not changed at all. Since functions were based on mongo queries they don't use full potential of AYON server abilities.ATM implementation has login UI, distribution of files from server and replacement of mongo queries. For queries is used ayon_api module. Which is in live development so the versions may change from day to day.


Enhancement kitsu note with exceptions #4537

Adding a setting to choose some exceptions to IntegrateKitsuNote task status changes.


General: Environment variable for default OCIO configs #4670

Define environment variable which lead to root of builtin ocio configs to be able change the root without changing settings. For the path in settings was used "{OPENPYPE_ROOT}/vendor/bin/ocioconfig/OpenColorIOConfig" which disallow to change the root somewhere else. That will be needed in AYON where configs won't be part of desktop application but downloaded from server.


AYON: Editorial hierarchy creation #4699

Implemented extract hierarchy to AYON plugin which created entities in AYON using ayon api.


AYON: Vendorize ayon api #4753

Vendorize ayon api into openpype vendor directory. The reason is that ayon-python-api is in live development and will fix/add features often in next few weeks/months, and because update of dependency requires new release -> new build, we want to avoid the need of doing that as it would af...

Read more

3.15.12

10 Jul 15:27
Compare
Choose a tag to compare

Full Changelog

🆕 New features

Tray Publisher: User can set colorspace per instance explicitly #4901

With this feature a user can set/override the colorspace for the representations of an instance explicitly instead of relying on the File Rules from project settings or alike. This way you can ingest any file and explicitly say "this file is colorspace X".


Review Family in Max #5001

Review Feature by creating preview animation in 3dsmax(The code is still cleaning up so there is going to be some updates until it is ready for review)


AfterEffects: support for workfile template builder #5163

This PR add functionality of templated workfile builder. It allows someone to prepare AE workfile with placeholders as for automatically loading particular representation of particular subset of particular asset from context where workfile is opened.Selection from multiple prepared workfiles is provided with usage of templates, specific type of tasks could use particular workfile template etc.Artists then can build workfile from template when opening new workfile.


CreatePlugin: Get next version helper #5242

Implemented helper functions to get next available versions for create instances.


🚀 Enhancements

Maya: Improve Templates #4854

Use library method for fetching reference node and support parent in hierarchy.


Bug: Maya - xgen sidecar files arent moved when saving workfile as an new asset workfile changing context - OP-6222 #5215

This PR manages the Xgen files when switching context in the Workfiles app.


node references to check for duplicates in Max #5192

No duplicates for node references in Max when users trying to select nodes before publishing


Tweak profiles logging to debug level #5194

Tweak profiles logging to debug level since they aren't artist facing logs.


Enhancement: Reduce more visual clutter for artists in new publisher reports #5208

Got this from one of our artists' reports - figured some of these logs were definitely not for the artist, reduced those logs to debug level.


Cosmetics: Tweak pyblish repair actions (icon, logs, docstring) #5213
  • Add icon to RepairContextAction
  • logs to debug level
  • also add attempt repair for RepairAction for consistency
  • fix RepairContextAction docstring to mention correct argument name

Additional info

We should not forget to remove this "deprecated" actions.py file in 3.16 (next-minor)

Testing notes:

  1. Run some fabulous repairs!

Maya: fix save file prompt on launch last workfile with color management enabled + restructure `set_colorspace` #5225
  • Only set configFilePath when OCIO env var is not set since it doesn't do anything if OCIO var is set anyway.
  • Set the Maya 2022+ default OCIO path using the resources path instead of "" to avoid Maya Save File on new file after launch
  • Bugfix: This is what fixes the Save prompt on open last workfile feature with Global color management enabled
  • Move all code related to applying the maya settings together after querying the settings
  • Swap around the if use_workfile_settings since the check was reversed
  • Use get_current_project_name() instead of environment vars

Enhancement: More descriptive error messages for Loaders #5227

Tweak raised errors and error messages for loader errors.


Houdini: add select invalid action for ValidateSopOutputNode #5231

This PR adds SelectROPAction action to houdini\api\action.pyand it's used in Validate Output Node``SelectROPAction is used to select the associated ROPs with the errored instances.


Remove new lines from the delivery template string #5235

If the delivery template has a new line symbol at the end, say it was copied from the text editor, the delivery process will fail with OSError due to incorrect destination path. To avoid that I added rstrip() to the delivery_path processing.


Houdini: better selection on pointcache creation #5250

Houdini allows ObjNode path as sop_path in the ROP unlike OP/ Ayon require sop_path to be set to a sop node path explicitly In this code, better selection is used to filter out invalid selections from OP/ Ayon point of viewValid selections are

  • SopNode that has parent of type geo or subnet
  • ObjNode of type geo that has
  • SopNode of type output
  • SopNode with render flag on (if no Sopnode of type output)this effectively filter
  • empty ObjNode
  • ObjNode(s) of other types like cam and dopnet
  • SopNode(s) that thier parents of other types like cam and sop solver

Update scene inventory even if any errors occurred during update #5252

When selecting many items in the scene inventory to update versions and one of the items would error out the updating stops. However, before this PR the scene inventory would also NOT refresh making you think it did nothing.Also implemented as method to allow some code deduplication.


🐛 Bug fixes

Maya: Convert frame values to integers #5188

Convert frame values to integers.


Maya: fix the register_event_callback correctly collecting workfile save after #5214

fixing the bug of register_event_callback not being able to collect action of "workfile_save_after" for lock file action


Maya: aligning default settings to distributed aces 1.2 config #5233

Maya colorspace setttings defaults are set the way they align our distributed ACES 1.2 config file set in global colorspace configs.


RepairAction and SelectInvalidAction filter instances failed on the exact plugin #5240

RepairAction and SelectInvalidAction actually filter to instances that failed on the exact plugin - not on "any failure"


Maya: Bugfix look update nodes by id with non-unique shape names (query with `fullPath`) #5257

Fixes a bug where updating attributes on nodes with assigned shader if shape name existed more than once in the scene due to cmds.listRelatives call not being done with the fullPath=True flag.Original error:

# Traceback (most recent call last):
#   File "E:\openpype\OpenPype\openpype\tools\sceneinventory\view.py", line 264, in <lambda>
#     lambda: self._show_version_dialog(items))
#   File "E:\openpype\OpenPype\openpype\tools\sceneinventory\view.py", line 722, in _show_version_dialog
#     self._update_containers(items, version)
#   File "E:\openpype\OpenPype\openpype\tools\sceneinventory\view.py", line 849, in _update_containers
#     update_container(item, item_version)
#   File "E:\openpype\OpenPype\openpype\pipeline\load\utils.py", line 502, in update_container
#     return loader.update(container, new_representation)
#   File "E:\openpype\OpenPype\openpype\hosts\maya\plugins\load\load_look.py", line 119, in update
#     nodes_by_id[lib.get_id(n)].append(n)
#   File "E:\openpype\OpenPype\openpype\hosts\maya\api\lib.py", line 1420, in get_id
#     sel.add(node)

Nuke: Create nodes with inpanel=False #5051

This PR is meant to remove the annoyance of the UI changing focus to the properties window just for the property window of the newly created node to disappear. Instead of using node.hideControlPanel I'm implementing the concealment during the creation of the node which will not change the focus of the current window.


Fix the reset frame range not sett...
Read more

3.15.11

26 Jun 14:28
Compare
Choose a tag to compare

Full Changelog

🆕 New features

Ftrack: Task status during publishing #5123

Added option to change task status during publishing for 3 possible cases: "sending to farm", "local integration" and "on farm integration".


Nuke: Allow for more complex temp rendering paths #5132

When changing the temporary rendering template (i.e., add {asset} to the path) to something a bit more complex the formatting was erroring due to missing keys.


Blender: Add support for custom path for app templates #5137

This PR adds support for a custom App Templates path in Blender by setting the BLENDER_USER_SCRIPTS environment variable to the path specified in OPENPYPE_APP_TEMPLATES_PATH. This allows users to use their own custom app templates in Blender.


TrayPublisher & StandalonePublisher: Specify version #5142

Simple creators in TrayPublisher can affect which version will be integrated. Standalone publisher respects the version change from UI.


🚀 Enhancements

Workfile Builder UI: Workfile builder window is not modal #5131

Workfile Templates Builder:

  • Create dialog is not a modal dialog
  • Create dialog remains open after create, so you can directly create a new placeholder with similar settings
  • In Maya allow to create root level placeholders (no selection during create) - this felt more like a bugfix than anything else.

3dsmax: Use custom modifiers to hold instance members #4931

Moving logic to handle members of publishing instance from children/parent relationship on Container to tracking via custom attribute on modifier. This eliminates limitations where you couldn't have one node multiple times under one Container and because it stores those relationships as weak references, they are easily transferable even when original nodes are renamed.


Add height, width and fps setup to project manager #5075

Add Width, Height, FPS, Pixel Aspect and Frame Start/End to the Project creation dialogue in the Project Manager.I understand that the Project manager will be replaced in the upcoming Ayon, but for the time being I believe setting new project with these options available would be more fun.


Nuke: connect custom write node script to the OP setting #5113

Allows user to customize the values of knobs attribute in the OP setting and use it in custom write node


Keep `publisher.create_widget` variant when creating subsets #5119

Whenever a person is creating a subset to publish, the "creator" widget resets (where you choose the variant, product, etc.) so if the person is publishing several images of the a variant which is not the default one, they have to keep selecting the correct one after every "create".

This commit resets the original variant upon successful creation of a subset for publishing.

Demo:
Screencast from 2023-06-08 10-46-40.webm

Testing notes:

  1. Launch AYON/OP
  2. Launch the publisher (select a project, shot, etc.)
  3. Crete a publish type (any works)
  4. Choose a variant for the publish that is not the default
  5. "Create >>"

The Variant fields should still have the variant you choose.


Color Management- added color management support for simple expected files on Deadline #5122

Running of ExtractOIIOTranscode during Deadline publish was previously implemented only on DCCs with AOVs (Maya, Max).This PR extends this for other DCCs with flat structure of expected files.


hide macos dock icon on build #5133

Set LSUIElement to 1 in the Info.plist to hide OP icon from the macos dock by default.


Pack project: Raise exception with reasonable message #5145

Pack project crashes with relevant message when destination directory is not set.


Allow "inventory" actions to be supplied by a Module/Addon. #5146

Adds "inventory" as a possible key to the plugin paths to be returned from a module.


3dsmax: make code compatible with 3dsmax 2022 #5164

Python 3.7 in 3dsmax 2022 is not supporting walrus operator. This is removing it from the code for the sake of compatibility


🐛 Bug fixes

Maya: Support same attribute names on different node types. #5054

When validating render settings attributes, support same attribute names on different node types.


Maya: bug fix the standin being not loaded when they are first loaded #5143

fix the bug of raising error when the first two standins are loaded through the loaderThe bug mentioned in the related issue: https://github.com/ynput/OpenPype/issues/5129For some reason, defaultArnoldRenderOptions.operator is not listed in the connection node attribute even if cmds.loadPlugin("mtoa", quiet=True) executed before loading the object as standins for the first time.But if you manually turn on mtoa through plugin preference and load the standins for the first time, it won't raise the related defaultArnoldRenderOptions.operator error.


Maya: bug fix arnoldExportAss unable to export selected set members #5150

See #5108 fix the bug arnoldExportAss being not able to export and error out during extraction.


Maya: Xgen multiple descriptions on single shape - OP-6039 #5160

When having multiple descriptions on the same geometry, the extraction would produce redundant duplicate geometries.


Maya: Xgen export of Abc's during Render Publishing - OP-6206 #5167

Shading assignments was missing duplicating the setup for Xgen publishing and the exporting of patches was getting the end frame incorrectly.


Maya: Include handles - OP-6236 #5175

Render range was missing the handles.


OCIO: Support working with single frame renders #5053

When there is only 1 file, the datamember files on the representation should be a string.


Burnins: Refactored burnins script #5094

Refactored list value for burnins and fixed command length limit by using temp file for filters string.


Nuke: open_file function can open autosave script #5107

Fix the bug of the workfile dialog being unable to open autosave nuke script


ImageIO: Minor fixes #5147

Resolve few minor fixes related to latest image io changes from PR.


Publisher: Fix save shortcut #5148

Save shortcut should work for both PySide2 and PySide6.


Pack Project: Fix files packing #5154

Packing of project with files does work again.


Maya: Xgen version mismatch after publish - OP-6204 #5161

Xgen was not updating correctly when for example adding or removing descriptions. This resolve the issue by overwritting the workspace xgen file.


Publisher: Edge case fixes #5165

Fix few edge case issues that may cause issues in Publisher UI.


Colorspace: host config path backward compatibility
Read more