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

3.15.3

Compare
Choose a tag to compare
@ynbot ynbot released this 28 Mar 15:53
· 7027 commits to develop since this release
3be0829

Full Changelog

🆕 New features

Blender: Extract Review #3616

Added Review to Blender.

This implementation is based on #3508 but made compatible for the current implementation of OpenPype for Blender.


Data Exchanges: Point Cloud for 3dsMax #4532

Publish PRT format with tyFlow in 3dsmax

Publish PRT format with tyFlow in 3dsmax and possibly set up loader to load the format too.

  • creator
  • extractor
  • validator
  • loader

Global: persistent staging directory for renders #4583

Allows configure if staging directory (stagingDir) should be persistent with use of profiles.

With this feature, users can specify a transient data folder path based on presets, which can be used during the creation and publishing stages. In some cases, these DCCs automatically add a rendering path during the creation stage, which is then used in publishing.One of the key advantages of this feature is that it allows users to take advantage of faster storages for rendering, which can help improve workflow efficiency. Additionally, this feature allows users to keep their rendered data persistent, and use their own infrastructure for regular cleaning.However, it should be noted that some productions may want to use this feature without persistency. Furthermore, there may be a need for retargeting the rendering folder to faster storages, which is also not supported at the moment.It is studio responsibility to clean up obsolete folders with data.Location of the folder is configured in project_anatomy/templates/others. ('transient' key is expected, with 'folder' key, could be more templates)Which family/task type/subset is applicable is configured in:project_settings/global/tools/publish/transient_dir_profiles


Kitsu custom comment template #4599

Kitsu allows to write markdown in its comment field. This can be something very powerful to deliver dynamic comments with the help the data from the instance.This feature is defaults to off so the admin have to manually set up the comment field the way they want.I have added a basic example on how the comment can look like as the comment-fields default value.To this I want to add some documentation also but that's on its way when the code itself looks good for the reviewers.


MaxScene Family #4615

Introduction of the Max Scene Family


🚀 Enhancements

Maya: Multiple values on single render attribute - OP-4131 #4631

When validating render attributes, this adds support for multiple values. When repairing first value in list is used.


Maya: enable 2D Pan/Zoom for playblasts - OP-5213 #4687

Setting for enabling 2D Pan/Zoom on reviews.


Copy existing or generate new Fusion profile on prelaunch #4572

Fusion preferences will be copied to the predefined ~/.openpype/hosts/fusion/prefs folder (or any other folder set in system settings) on launch.

The idea is to create a copy of existing Fusion profile, adding an OpenPype menu to the Fusion instance.By default the copy setting is turned off, so no file copying is performed. Instead the clean Fusion profile is created by Fusion in the predefined folder. The default locaion is set to ~/.openpype/hosts/fusion/prefs, to better comply with the other os platforms. After creating the default profile, some modifications are applied:

  • forced Python3
  • forced English interface
  • setup Openpype specific path maps.If the copy_prefs checkbox is toggled, a copy of existing Fusion profile folder will be placed in the mentioned location. Then they are altered the same way as described above. The operation is run only once, on the first launch, unless the force_sync [Resync profile on each launch] is toggled.English interface is forced because the FUSION16_PROFILE_DIR environment variable is not read otherwise (seems to be a Fusion bug).

Houdini: Create button open new publisher's "create" tab #4601

During a talk with @maxpareschi he mentioned that the new publisher in Houdini felt super confusing due to "Create" going to the older creator but now being completely empty and the publish button directly went to the publish tab.This resolves that by fixing the Create button to now open the new publisher but on the Create tab.Also made publish button enforce going to the "publish" tab for consistency in usage.@antirotor I think changing the Create button's callback was just missed in this commit or was there a specific reason to not change that around yet?


Clockify: refresh and fix the integration #4607

Due to recent API changes, Clockify requires user_id to operate with the timers. I updated this part and currently it is a WIP for making it fully functional. Most functions, such as start and stop timer, and projects sync are currently working. For the rate limiting task new dependency is added: https://pypi.org/project/ratelimiter/


Fusion publish existing frames #4611

This PR adds the function to publish existing frames instead of having to re-render all of them for each new publish.I have split the render_locally plugin so the review-part is its own plugin now.I also change the saver-creator-plugin's label from Saver to Render (saver) as I intend to add a Prerender creator like in Nuke.


Resolution settings referenced from DB record for 3dsMax #4652
  • Add Callback for setting the resolution according to DB after the new scene is created.
  • Add a new Action into openpype menu which allows the user to reset the resolution in 3dsMax

3dsmax: render instance settings in Publish tab #4658

Allows user preset the pools, group and use_published settings in Render Creator in the Max Hosts.User can set the settings before or after creating instance in the new publisher


scene length setting referenced from DB record for 3dsMax #4665

Setting the timeline length based on DB record in 3dsMax Hosts


Publisher: Windows reduce command window pop-ups during Publishing #4672

Reduce the command line pop-ups that show on Windows during publishing.


Publisher: Explicit save #4676

Publisher have explicit button to save changes, so reset can happen without saving any changes. Save still happens automatically when publishing is started or on publisher window close. But a popup is shown if context of host has changed. Important context was enhanced by workfile path (if host integration supports it) so workfile changes are captured too. In that case a dialog with confirmation is shown to user. All callbacks that may require save of context were moved to main window to be able handle dialog show at one place. Save changes now returns success so the rest of logic is skipped -> publishing won't start, when save of instances fails.Save and reset buttons have shortcuts (Ctrl + s and Ctrls + r).


CelAction: conditional workfile parameters from settings #4677

Since some productions were requesting excluding some workfile parameters from publishing submission, we needed to move them to settings so those could be altered per project.


Improve logging of used app + tool envs on application launch #4682

Improve logging of what apps + tool environments got loaded for an application launch.


Fix name and docstring for Create Workdir Extra Folders prelaunch hook #4683

Fix class name and docstring for Create Workdir Extra Folders prelaunch hookThe class name and docstring were originally copied from another plug-in and didn't match the plug-in logic.This also fixes potentially seeing this twice in your logs. Before:After:Where it was actually running both this prelaunch hook and the actual AddLastWorkfileToLaunchArgs plugin.


Application launch context: Include app group name in logger #4684

Clarify in logs better what app group the ApplicationLaunchContext belongs to and what application is being launched.Before:After:


increment workfile version 3dsmax #4685

increment workfile version in 3dsmax as if in blender and maya hosts.


🐛 Bug fixes

Maya: Fix getting non-active model panel. #2968

When capturing multiple cameras with image planes that have file sequences playing, only the active (first) camera will play through the file sequence.

___
Maya: Fix broken review publishing. #4549

Resolves #4547

___
Maya: Avoid error on right click in Loader if `mtoa` is not loaded #4616

Fix an error on right clicking in the Loader when mtoa is not a loaded plug-in.Additionally if mtoa isn't loaded the loader will now load the plug-in before trying to create the arnold standin.


Maya: Fix extract look colorspace detection #4618

Fix the logic which guesses the colorspace using arnold python library.

  • Previously it'd error if mtoa was not available on path so it still required mtoa to be available.
  • The guessing colorspace logic doesn't actually require mtoa to be loaded, but just the arnold python library to be available. This changes the logic so it doesn't require the mtoa plugin to get loaded to guess the colorspace.
  • The if/else branch was likely not doing what was intended cmds.loadPlugin("mtoa", quiet=True) returns None if the plug-in was already loaded. So this would only ever be true if it ends up loading the mtoa plugin the first time.
# Tested in Maya 2022.1
print(cmds.loadPlugin("mtoa", quiet=True))
# ['mtoa']
print(cmds.loadPlugin("mtoa", quiet=True))
# None

Maya: Maya Playblast Options overrides - OP-3847 #4634

When publishing a review in Maya, the extractor would fail due to wrong (long) panel name.


Bugfix/op 2834 fix extract playblast #4701

Paragraphs contain detailed information on the changes made to the product or service, providing an in-depth description of the updates and enhancements. They can be used to explain the reasoning behind the changes, or to highlight the importance of the new features. Paragraphs can often include links to further information or support documentation.


Bugfix/op 2834 fix extract playblast #4704

Paragraphs contain detailed information on the changes made to the product or service, providing an in-depth description of the updates and enhancements. They can be used to explain the reasoning behind the changes, or to highlight the importance of the new features. Paragraphs can often include links to further information or support documentation.


Maya: bug fix for passing zoom settings if review is attached to subset #4716

Fix for attaching review to subset with pan/zoom option.


Maya: tile assembly fail in draft - OP-4820 #4416

Tile assembly in Deadline was broken.

Initial bug report revealed other areas of the tile assembly that needed fixing.


Maya: Yeti Validate Rig Input - OP-3454 #4554

Fix Yeti Validate Rig Input

Existing workflow was broken due to this #3297.


Scene inventory: Fix code errors when "not found" entries are found #4594

Whenever a "NOT FOUND" entry is present a lot of errors happened in the Scene Inventory:

  • It started spamming a lot of errors for the VersionDelegate since it had no numeric version (no version at all).Error reported on Discord:
Traceback (most recent call last):
  File "C:\Users\videopro\Documents\github\OpenPype\openpype\tools\utils\delegates.py", line 65, in paint
    text = self.displayText(
  File "C:\Users\videopro\Documents\github\OpenPype\openpype\tools\utils\delegates.py", line 33, in displayText
    assert isinstance(value, numbers.Integral), (
AssertionError: Version is not integer. "None" <class 'NoneType'>
  • Right click menu would error on NOT FOUND entries, and thus not show. With this PR it will now disregard not found items for "Set version" and "Remove" but still allow actions.This PR resolves those.

Kitsu: Sync OP with zou, make sure value-data is int or float #4596

Currently the data zou pulls is a string and not a value causing some bugs in the pipe where a value is expected (like Set frame range in Fusion).

This PR makes sure each value is set with int() or float() so these bugs can't happen later on.

(A request to cgwire has also bin sent to allow force values only for some metadata columns, but currently the user can enter what ever they want in there)


Max: fix the bug of removing an instance #4617

fix the bug of removing an instance in 3dsMax


Global | Nuke: fixing farm publishing workflow #4623

After Nuke had adopted new publisher with new creators new issues were introduced. Those issues were addressed with this PR. Those are for example broken reviewable video files publishing if published via farm. Also fixed local publishing.


Ftrack: Ftrack additional families filtering #4633

Ftrack family collector makes sure the subset family is also in instance families for additional families filtering.


Ftrack: Hierarchical <> Non-Hierarchical attributes sync fix #4635

Sync between hierarchical and non-hierarchical attributes should be fixed and work as expected. Action should sync the values as expected and event handler should do it too and only on newly created entities.


bugfix for 3dsmax publishing error #4637

fix the bug of failing publishing job in 3dsMax


General: Use right validation for ffmpeg executable #4640

Use ffmpeg exec validation for ffmpeg executables instead of oiio exec validation. The validation is used as last possible source of ffmpeg from PATH environment variables, which is an edge case but can cause issues.


3dsmax: opening last workfile #4644

Supports opening last saved workfile in 3dsmax host.


Fixed a bug where a QThread in the splash screen could be destroyed before finishing execution #4647

This should fix the occasional behavior of the QThread being destroyed before even its worker returns from the run() function.After quiting, it should wait for the QThread object to properly close itself.


General: Use right plugin class for Collect Comment #4653

Collect Comment plugin is instance plugin so should inherit from InstancePlugin instead of ContextPlugin.


Global: add tags field to thumbnail representation #4660

Thumbnail representation might be missing tags field.


Integrator: Enforce unique destination transfers, disallow overwrites in queued transfers #4662

Fix #4656 by enforcing unique destination transfers in the Integrator. It's now disallowed to a destination in the file transaction queue with a new source path during the publish.


Hiero: Creator with correct workfile numeric padding input #4666

Creator was showing 99 in workfile input for long time, even if users set default value to 1001 in studio settings. This has been fixed now.


Nuke: Nukenodes family instance without frame range #4669

No need to add frame range data into nukenodes (backdrop) family publishes - since those are timeless.


TVPaint: Optional Validation plugins can be de/activated by user #4674

Added OptionalPyblishPluginMixin to TVpaint plugins that can be optional.


Kitsu: Slightly less strict with instance data #4678
  • Allow to take task name from context if asset doesn't have any. Fixes an issue with Photoshop's review instance not having task in data.
  • Allow to match "review" against both instance.data["family"] and instance.data["families"] because some instances don't have the primary family in families, e.g. in Photoshop and TVPaint.
  • Do not error on Integrate Kitsu Review whenever for whatever reason Integrate Kitsu Note did not created a comment but just log the message that it was unable to connect a review.

Publisher: Fix reset shortcut sequence #4694

Fix bug created in #4676 where key sequence is checked using unsupported method. The check was changed to convert event into QKeySequence object which can be compared to prepared sequence.


Refactor _capture #4702

Paragraphs contain detailed information on the changes made to the product or service, providing an in-depth description of the updates and enhancements. They can be used to explain the reasoning behind the changes, or to highlight the importance of the new features. Paragraphs can often include links to further information or support documentation.


Hiero: correct container colors if UpToDate #4708

Colors on loaded containers are now correctly identifying real state of version. Red for out of date and green for up to date.


🔀 Refactored code

Look Assigner: Move Look Assigner tool since it's Maya only #4604

Fix #4357: Move Look Assigner tool to maya since it's Maya only


Maya: Remove unused functions from Extract Look #4671

Remove unused functions from Maya Extract Look plug-in


Extract Review code refactor #3930

Trying to reduce complexity of Extract Review plug-in

  • Re-use profile filtering from lib
  • Remove "combination families" additional filtering which supposedly was from OP v2
  • Simplify 'formatting' for filling gaps
  • Use legacy_io.Session over os.environ
___
Maya: Replace last usages of Qt module #4610

Replace last usage of Qt module with qtpy. This change is needed for PySide6 support. All changes happened in Maya loader plugins.


Update tests and documentation for `ColormanagedPyblishPluginMixin` #4612

Refactor ExtractorColormanaged to ColormanagedPyblishPluginMixin in tests and documentation.


Improve logging of used app + tool envs on application launch (minor tweak) #4686

Use app.full_name for change done in #4682


📃 Documentation

Docs/add architecture document #4344

Add ARCHITECTURE.md document.

his document attemps to give a quick overview of the project to help onboarding, it's not an extensive documentation but more of a elevator pitch one-line descriptions of files/directories and what the attempt to do.


Documentation: Tweak grammar and fix some typos #4613

This resolves some grammar and typos in the documentation.Also fixes the extension of some images in after effects docs which used uppercase extension even though files were lowercase extension.


Docs: Fix some minor grammar/typos #4680

Typo/grammar fixes in documentation.


Merged pull requests

Maya: Implement image file node loader #4313

Implements a loader for loading texture image into a file node in Maya.

Similar to Maya's hypershade creation of textures on load you have the option to choose for three modes of creating:

  • Texture
  • Projection
  • StencilThese should match what Maya generates if you create those in Maya.
  • Load and manage file nodes
  • Apply color spaces after #4195
  • Support for either UDIM or image sequence - currently it seems to always load sequences as UDIM automatically.
  • Add support for animation sequences of UDIM textures using the <f>.<udim>.exr path format?

Maya Look Assigner: Don't rely on containers for get all assets #4600

This resolves #4044 by not actually relying on containers in the scene but instead just rely on finding nodes with cbId attributes. As such, imported nodes would also be found and a shader can be assigned (similar to when using get from selection).Please take into consideration the potential downsides belowPotential downsides would be:

  • IF an already loaded look has any dagNodes, say a 3D Projection node - then that will also show up as a loaded asset where previously nodes from loaded looks were ignored.
  • If any dag nodes were created locally - they would have gotten cbId attributes on scene save and thus the current asset would almost always show?

Maya: Unify menu labels for "Set Frame Range" and "Set Resolution" #4605

Fix #4109: Unify menu labels for "Set Frame Range" and "Set Resolution"This also tweaks it in Houdini from Reset Frame Range to Set Frame Range.


Resolve missing OPENPYPE_MONGO in deadline global job preload #4484

In the GlobalJobPreLoad plugin, we propose to replace the SpawnProcess by a sub-process and to pass the environment variables in the parameters, since the SpawnProcess under Centos Linux does not pass the environment variables.

In the GlobalJobPreLoad plugin, the Deadline SpawnProcess is used to start the OpenPype process. The problem is that the SpawnProcess does not pass environment variables, including OPENPYPE_MONGO, to the process when it is under Centos7 linux, and the process gets stuck. We propose to replace it by a subprocess and to pass the variable in the parameters.


Tests: Added setup_only to tests #4591

Allows to download test zip, unzip and restore DB in preparation for new test.


Maya: Arnold don't reset maya timeline frame range on render creation (or setting render settings) #4603

Fix #4429: Do not reset fps or playback timeline on applying or creating render settings


Bump @sideway/formula from 3.0.0 to 3.0.1 in /website #4609

Bumps @sideway/formula from 3.0.0 to 3.0.1.

Commits
Maintainer changes

This version was pushed to npm by marsup, a new releaser for @​sideway/formula since your current version.


Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
  • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
  • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
  • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

You can disable automated security fix PRs for this repo from the Security Alerts page.

___
Update artist_hosts_maya_arnold.md #4626

Correct Arnold docs.


Maya: Add "Include Parent Hierarchy" option in animation creator plugin #4645

Add an option in Project Settings > Maya > Creator Plugins > Create Animation to include (or not) parent hierarchy. This is to avoid artists to check manually the option for all create animation.


General: Filter available applications #4667

Added option to filter applications that don't have valid executable available in settings in launcher and ftrack actions. This option can be disabled in new settings category Applications. The filtering is by default disabled.


3dsmax: make sure that startup script executes #4695

Fixing reliability of OpenPype startup in 3dsmax.


Project Manager: Change minimum frame start/end to '0' #4719

Project manager can have frame start/end set to 0.