Skip to content

Releases: ynput/OpenPype

3.15.9

31 May 13:44
Compare
Choose a tag to compare

Full Changelog

🆕 New features

Blender: Implemented Loading of Alembic Camera #4990

Implemented loading of Alembic cameras in Blender.


Unreal: Implemented Creator, Loader and Extractor for Levels #5008

Creator, Loader and Extractor for Unreal Levels have been implemented.


🚀 Enhancements

Blender: Added setting for base unit scale #4987

A setting for the base unit scale has been added for Blender.The unit scale is automatically applied when opening a file or creating a new one.


Unreal: Changed naming and path of Camera Levels #5010

The levels created for the camera in Unreal now include _camera in the name, to be better identifiable, and are placed in the camera folder.


Settings: Added option to nest settings templates #5022

It is possible to nest settings templates in another templates.


Enhancement/publisher: Remove "hit play to continue" label on continue #5029

Remove "hit play to continue" message on continue so that it doesn't show anymore when play was clicked.


Ftrack: Limit number of ftrack events to query at once #5033

Limit the amount of ftrack events received from mongo at once to 100.


General: Small code cleanups #5034

Small code cleanup and updates.


Global: collect frames to fix with settings #5036

Settings for Collect Frames to Fix will allow disable per project the plugin. Also Rewriting latest version attribute is hiddable from settings.


General: Publish plugin apply settings can expect only project settings #5037

Only project settings are passed to optional apply_settings method, if the method expects only one argument.


🐛 Bug fixes

Maya: Load Assembly fix invalid imports #4859

Refactors imports so they are now correct.


Maya: Skipping rendersetup for members. #4973

When publishing a rendersetup, the objectset is and should be empty.


Maya: Validate Rig Output IDs #5016

Absolute names of node were not used, so plugin did not fetch the nodes properly.Also missed pymel command.


Deadline: escape rootless path in publish job #4910

If the publish path on Deadline job contains spaces or other characters, command was failing because the path wasn't properly escaped. This is fixing it.


General: Company name and URL changed #4974

The current records were obsolete in inno_setup, changed to the up-to-date.


Unreal: Fix usage of 'get_full_path' function #5014

This PR changes all the occurrences of get_full_path functions to alternatives to get the path of the objects.


Unreal: Fix sequence frames validator to use correct data #5021

Fix sequence frames validator to use clipIn and clipOut data instead of frameStart and frameEnd.


Unreal: Fix render instances collection to use correct data #5023

Fix render instances collection to use frameStart and frameEnd from the Project Manager, instead of the sequence's ones.


Resolve: loader is opening even if no timeline in project #5025

Loader is opening now even no timeline is available in a project.


nuke: callback for dirmapping is on demand #5030

Nuke was slowed down on processing due this callback. Since it is disabled by default it made sense to add it only on demand.


Publisher: UI works with instances without label #5032

Publisher UI does not crash if instance don't have filled 'label' key in instance data.


Publisher: Call explicitly prepared tab methods #5044

It is not possible to go to Create tab during publishing from OpenPype menu.


Ftrack: Role names are not case sensitive in ftrack event server status action #5058

Event server status action is not case sensitive for role names of user.


Publisher: Fix border widget #5063

Fixed border lines in Publisher UI to be painted correctly with correct indentation and size.


Unreal: Fix Commandlet Project and Permissions #5066

Fix problem when creating an Unreal Project when Commandlet Project is in a protected location.


Unreal: Added verification for Unreal app name format #5070

The Unreal app name is used to determine the Unreal version folder, so it is necessary that if follows the format x-x, where x is any integer. This PR adds a verification that the app name follows that format.


📃 Documentation

Docs: Display wrong image in ExtractOIIOTranscode #5045

Wrong image display in https://openpype.io/docs/project_settings/settings_project_global#extract-oiio-transcode.


Merged pull requests

Drop-down menu to list all families in create placeholder #4928

Currently in the create placeholder window, we need to write the family manually. This replace the text field by an enum field with all families for the current software.


add sync to specific projects or listen only #4919

Extend kitsu sync service with additional arguments to sync specific projects.


3.15.8

24 May 10:22
Compare
Choose a tag to compare

Full Changelog

🆕 New features

Publisher: Show instances in report page #4915

Show publish instances in report page. Also added basic log view with logs grouped by instance. Validation error detail now have 2 colums, one with erro details second with logs. Crashed state shows fast access to report action buttons. Success will show only logs. Publish frame is shrunked automatically on publish stop.


Fusion - Loader plugins updates #4920

Update to some Fusion loader plugins:The sequence loader can now load footage from the image and online family.The FBX loader can now import all formats Fusions FBX node can read.You can now import the content of another workfile into your current comp with the workfile loader.


Fusion: deadline farm rendering #4955

Enabling Fusion for deadline farm rendering.


AfterEffects: set frame range and resolution #4983

Frame information (frame start, duration, fps) and resolution (width and height) is applied to selected composition from Asset Management System (Ftrack or DB) automatically when published instance is created.It is also possible explicitly propagate both values from DB to selected composition by newly added menu buttons.


Publish: Enhance automated publish plugin settings #4986

Added plugins option to define settings category where to look for settings of a plugin and added public helper functions to apply settings get_plugin_settings and apply_plugin_settings_automatically.


🚀 Enhancements

Load Rig References - Change Rig to Animation in Animation instance #4877

We are using the template builder to build an animation scene. All the rig placeholders are imported correctly, but the automatically created animation instances retain the rig family in their names and subsets. In our example, we need animationMain instead of rigMain, because this name will be used in the following steps like lighting.Here is the result we need. I checked, and it's not a template builder problem, because even if I load a rig as a reference, the result is the same. For me, since we are in the animation instance, it makes more sense to have animation instead of rig in the name. The naming is just fine if we use create from the Openpype menu.


Enhancement: Resolve prelaunch code refactoring and update defaults #4916

The main reason of this PR is wrong default settings in openpype/settings/defaults/system_settings/applications.json for Resolve host. The bin folder should not be a part of the macos and Linux RESOLVE_PYTHON3_PATH variable.The rest of this PR is some code cleanups for Resolve prelaunch hook to simplify further development.Also added a .gitignore for vscode workspace files.


Unreal: 🚚 move Unreal plugin to separate repository #4980

To support Epic Marketplace have to move AYON Unreal integration plugins to separate repository. This is replacing current files with git submodule, so the change should be functionally without impact.New repository lives here: https://github.com/ynput/ayon-unreal-plugin


General: Lib code cleanup #5003

Small cleanup in lib files in openpype.


Allow to open with djv by extension instead of representation name #5004

Filter open in djv action by extension instead of representation.


DJV open action `extensions` as `set` #5005

Change extensions attribute to set.


Nuke: extract thumbnail with multiple reposition nodes #5011

Added support for multiple reposition nodes.


Enhancement: Improve logging levels and messages for artist facing publish reports #5018

Tweak the logging levels and messages to try and only show those logs that an artist should see and could understand. Move anything that's slightly more involved into a "debug" message instead.


🐛 Bug fixes

Bugfix/frame variable fix #4978

Renamed variables to match OpenPype terminology to reduce confusion and add consistency.


Global: plugins cleanup plugin will leave beauty rendered files #4790

Attempt to mark more files to be cleaned up explicitly in intermediate renders folder in work area for farm jobs.


Fix: Download last workfile doesn't work if not already downloaded #4942

Some optimization condition is messing with the feature: if the published workfile is not already downloaded, it won't download it...


Unreal: Fix transform when loading layout to match existing assets #4972

Fixed transform when loading layout to match existing assets.


fix the bug of fbx loaders in Max #4977

bug fix of fbx loaders for not being able to parent to the CON instances while importing cameras(and models) which is published from other DCCs such as Maya.


AfterEffects: allow returning stub with not saved workfile #4984

Allows to use Workfile app to Save first empty workfile.


Blender: Fix Alembic loading #4985

Fixed problem occurring when trying to load an Alembic model in Blender.


Unreal: Addon Py2 compatibility #4994

Fixed Python 2 compatibility of unreal addon.


Nuke: fixed missing files key in representation #4999

Issue with missing keys once rendering target set to existing frames is fixed. Instance has to be evaluated in validation for missing files.


Unreal: Fix the frame range when loading camera #5002

The keyframes of the camera, when loaded, were not using the correct frame range.


Fusion: fixing frame range targeting #5013

Frame range targeting at Rendering instances is now following configured options.


Deadline: fix selection from multiple webservices #5015

Multiple different DL webservice could be configured. First they must by configured in System Settings., then they could be configured per project in project_settings/deadline/deadline_servers.Only single webservice could be a target of publish though.


Merged pull requests

3dsmax: Refactored publish plugins to use proper implementation of pymxs #4988

3.15.7

16 May 08:44
Compare
Choose a tag to compare

Full Changelog

🆕 New features

Addons directory #4893

This adds a directory for Addons, for easier distribution of studio specific code.


Kitsu - Add "image", "online" and "plate" to review families #4923

This PR adds "image", "online" and "plate" to the review families so they also can be uploaded to Kitsu.It also adds the Add review to Kitsu tag to the default png review. Without it the user would manually need to add it for single image uploads to Kitsu and might confuse users (it confused me first for a while as movies did work).


Feature/remove and load inv action #4930

Added the ability to remove and load a container, as a way to reset it.This can be useful in cases where a container breaks in a way that can be fixed by removing it, then reloading it.Also added the ability to add InventoryAction plugins by placing them in openpype/plugins/inventory.


🚀 Enhancements

Maya template builder - preserve all references when importing a template #4797

When building a template with Maya template builder, we import the template and also the references inside the template file. This causes some problems:

  • We cannot use the references to version assets imported by the template.
  • When we import the file, the internal reference files are also imported. As a side effect, Maya complains about a reference that no longer exists.// Error: file: /xxx/maya/2023.3/linux/scripts/AETemplates/AEtransformRelated.mel line 58: Reference node 'turntable_mayaSceneMain_01_RN' is not associated with a reference file.

Unreal: Renaming the integration plugin to Ayon. #4646

Renamed the .h, and .cpp files to Ayon. Also renamed the classes to with the Ayon keyword.


3dsMax: render dialogue needs to be closed #4729

Make sure the render setup dialog is in a closed state for the update of resolution and other render settings


Maya Template Builder - Remove default cameras from renderable cameras #4815

When we build an asset workfile with build workfile from template inside Maya, we load our turntable camera. But then we end up with 2 renderables camera : persp the one imported from the template.We need to remove the persp camera (or any other default camera) from renderable cameras when building the work file.


Validators for Frame Range in Max #4914

Switch Render Frame Range Type to 3 for specific ranges (initial setup for the range type is 4)Reset Frame Range will also set the frame range for render settingsRender Collector won't take the frame range from context data but take the range directly from render settingAdd validators for render frame range type and frame range respectively with repair action


Fusion: Saver creator settings #4943

Adding Saver creator settings and enhanced rendering path with template.


General: Project Anatomy on creators #4962

Anatomy object of current project is available on CreateContext and create plugins.


🐛 Bug fixes

Maya: Validate shader name - OP-5903 #4971

Running the plugin would error with:

// TypeError: 'str' object cannot be interpreted as an integer
Fixed and added setting active.


Houdini: Fix slow Houdini launch due to shelves generation #4829

Shelf generation during Houdini startup would add an insane amount of delay for the Houdini UI to launch correctly. By deferring the shelf generation this takes away the 5+ minutes of delay for the Houdini UI to launch.


Fusion - Fixed "optional validation" #4912

Added OptionalPyblishPluginMixin and is_active checks for all publish tools that should be optional


Bug: add missing `pyblish.util` import #4937

remote publishing was missing import of remote_publish. This is adding it back.


Unreal: Fix missing 'object_path' property #4938

Epic removed the object_path property from AssetData. This PR fixes usages of that property.Fixes #4936


Remove obsolete global validator #4939

Removing Validate Sequence Frames validator from global plugins as it wasn't handling correctly many things and was by mistake enabled, breaking functionality on Deadline.


General: fix build_workfile get_linked_assets missing project_name arg #4940

Linked assets collection don't work within build_workfile because get_linked_assets function call has a missing project_nameargument.

  • Added the project_name arg to the get_linked_assets function call.

General: fix Scene Inventory switch version error dialog missing parent arg on init #4941

QuickFix for the switch version error dialog to set inventory widget as parent.


Unreal: Fix camera frame range #4956

Fix the frame range of the level sequence for the Camera in Unreal.


Unreal: Fix missing parameter when updating Alembic StaticMesh #4957

Fix an error when updating an Alembic StaticMesh in Unreal, due to a missing parameter in a function call.


Unreal: Fix render extraction #4963

Fix a problem with the extraction of renders in Unreal.


Unreal: Remove Python 3.8 syntax from addon #4965

Removed Python 3.8 syntax from addon.


Ftrack: Fix editorial task creation #4966

Fix key assignment on instance data during editorial publishing in ftrack hierarchy integration.


Merged pull requests

Add "shortcut" to Scripts Menu Definition #4927

Add the possibility to associate a shorcut for an entry in the script menu definition with the key "shortcut"


3.15.6

04 May 13:40
Compare
Choose a tag to compare

Full Changelog

🆕 New features

Substance Painter Integration #4283

This implements a part of #4205 by implementing a Substance Painter integration

Status:

  • Implement Host
  • start substance with last workfile using AddLastWorkfileToLaunchArgs prelaunch hook
  • Implement Qt tools
  • Implement loaders
  • Implemented a Set project mesh loader (this is relatively special case because a Project will always have exactly one mesh - a Substance Painter project cannot exist without a mesh).
  • Implement project open callback
  • On project open it notifies the user if the loaded model is outdated
  • Implement publishing logic
  • Workfile publishing
  • Export Texture Sets
  • Support OCIO using #4195 (draft brach is set up - see comment)
  • Likely needs more testing on the OCIO front
  • Validate all outputs of the Export template are exported/generated
  • Allow validation to be optional (issue: there's no API method to detect what maps will be exported without doing an actual export to disk)
  • Support extracting/integration if not all outputs are generated
  • Support multiple materials/texture sets per instance
  • Add validator that can enforce only a single texture set output if studio prefers that.
  • Implement Export File Format (extensions) override in Creator
  • Add settings so Admin can choose which extensions are available.

Data Exchange: Geometry in 3dsMax #4555

Introduces and updates a creator, extractors and loaders for model family

Introduces new creator, extractors and loaders for model family while adding model families into the existing max scene loader and extractor

  • creators
  • adding model family into max scene loader and extractor
  • fbx loader
  • fbx extractor
  • usd loader
  • usd extractor
  • validator for model family
  • obj loader(update function)
  • fix the update function of the loader as #4675
  • Add documentation

AfterEffects: add review flag to each instance #4884

Adds mark_for_review flag to the Creator to allow artists to disable review if necessary.Exposed this flag in Settings, by default set to True (eg. same behavior as previously).


🚀 Enhancements

Houdini: Fix Validate Output Node (VDB) #4819
  • Removes plug-in that was a duplicate of this plug-in.
  • Optimize logging of many prims slightly
  • Fix error reporting like #4818 did

Houdini: Add null node as output indicator when using TAB search #4834
Houdini: Don't error in collect review if camera is not set correctly #4874

Do not raise an error in collector when invalid path is set as camera path. Allow camera path to not be set correctly in review instance until validation so it's nicely shown in a validation report.


Project packager: Backup and restore can store only database #4879

Pack project functionality have option to zip only project database without project files. Unpack project can skip project copy if the folder is not found.Added helper functions to openpype.client.mongo that can be also used for tests as replacement of mongo dump.


Houdini: ExtractOpenGL for Review instance not optional #4881

Don't make ExtractOpenGL optional for review instance optional.


Publisher: Small style changes #4894

Small changes in styles and form of publisher UI.


Houdini: Workfile icon in new publisher #4898

Fix icon for the workfile instance in new publisher


Fusion: Simplify creator icons code #4899

Simplify code for setting the icons for the Fusion creators


Enhancement: Fix PySide 6.5 support for loader #4900

Fixes PySide 6.5 support in Loader.


🐛 Bug fixes

Maya: Validate Attributes #4917

This plugin was broken due to bad fetching of data and wrong repair action.


Fix: Locally copied version of last published workfile is not incremented #4722

Fix 1

When copied, the local workfile version keeps the published version number, when it must be +1 to follow OP's naming convention.

Fix 2

Local workfile version's name is built from anatomy. This avoids to get workfiles with their publish template naming.

Fix 3

In the case a subset has at least two tasks with published workfiles, for example Modeling and Rigging, launching Rigging was getting the first one with the next and trying to find representations, therefore workfileModeling and trying to match the current task_name (Rigging) with the representation["context"]["task"]["name"] of a Modeling representation, which was ending up to a workfile_representation to None, and exiting the process.

Trying to find the task_name in the subset['name'] fixes it.

Fix 4

Fetch input dependencies of workfile.

Replacing #4102 for changes to bring this home.


Maya: soft-fail when pan/zoom locked on camera when playblasting #4929

When pan/zoom enabled attribute on camera is locked, playblasting with pan/zoom fails because it is trying to restore it. This is fixing it by skipping over with warning.


Merged pull requests

Maya Load References - Add Display Handle Setting #4904

When we load a reference in Maya using OpenPype loader, display handle is checked by default and prevent us to select easily the object in the viewport. I understand that some productions like to keep this option, so I propose to add display handle to the reference loader settings.


Photoshop: add autocreators for review and flat image #4871

Review and flatten image (produced when no instance of image family was created) were created somehow magically. This PRintroduces two new auto creators which allow artists to disable review or flatten image.For all image instances Review flag was added to provide functionality to create separate review per image instance. Previously was possible only to have separate instance of review family.Review is not enabled on image family by default. (Eg. follows original behavior)Review auto creator is enabled by default as it was before.Flatten image creator must be set in Settings in project_settings/photoshop/create/AutoImageCreator.


3.15.5

24 Apr 15:42
Compare
Choose a tag to compare

Full Changelog

🚀 Enhancements

Maya: Playblast profiles #4777

Support playblast profiles.This enables studios to customize what playblast settings should be on a per task and/or subset basis. For example modeling should have Wireframe On Shaded enabled, while all other tasks should have it disabled.


Maya: Support .abc files directly for Arnold standin look assignment #4856

If .abc file is loaded into arnold standin support look assignment through the cbId attributes in the alembic file.


Maya: Hide animation instance in creator #4872
  • Hide animation instance in creator
  • Add inventory action to recreate animation publish instance for loaded rigs

Unreal: Render Creator enhancements #4477

Improvements to the creator for render family

This PR introduces some enhancements to the creator for the render family in Unreal Engine:

  • Added the option to create a new, empty sequence for the render.
  • Added the option to not include the whole hierarchy for the selected sequence.
  • Improvements of the error messages.

Unreal: Added settings for rendering #4575

Added settings for rendering in Unreal Engine.

Two settings has been added:

  • Pre roll frames, to set how many frames are used to load the scene before starting the actual rendering.
  • Configuration path, to allow to save a preset of settings from Unreal, and use it for rendering.

Global: Optimize anatomy formatting by only formatting used templates instead #4784

Optimization to not format full anatomy when only a single template is used. Instead format only the single template instead.


Patchelf version locked #4853

For Centos dockerfile it is necessary to lock the patchelf version to the older, otherwise the build process fails.


Houdini: Implement `switch` method on loaders #4866

Implement switch method on loaders


Code: Tweak docstrings and return type hints #4875

Tweak docstrings and return type hints for functions in openpype.client.entities.


Publisher: Clear comment on successful publish and on window close #4885

Clear comment text field on successful publish and on window close.


Publisher: Make sure to reset asset widget when hidden and reshown #4886

Make sure to reset asset widget when hidden and reshown. Without this the asset list would never refresh in the set asset widget when changing context on an existing instance and thus would not show new assets from after the first time launching that widget.


🐛 Bug fixes

Maya: Fix nested model instances. #4852

Fix nested model instance under review instance, where data collection was not including "Display Lights" and "Focal Length".


Maya: Make default namespace naming backwards compatible #4873

Namespaces of loaded references are now by default back to what they were before #4511


Nuke: Legacy convertor skips deprecation warnings #4846

Nuke legacy convertor was triggering deprecated function which is causing a lot of logs which slows down whole process. Changed the convertor to skip all nodes without AVALON_TAB to avoid the warnings.


3dsmax: move startup script logic to hook #4849

Startup script for OpenPype was interfering with Open Last Workfile feature. Moving this loggic from simple command line argument in the Settings to pre-launch hook is solving the order of command line arguments and making both features work.


Maya: Don't change time slider ranges in `get_frame_range` #4858

Don't change time slider ranges in get_frame_range


Maya: Looks - calculate hash for tx texture #4878

Texture hash is calculated for textures used in published look and it is used as key in dictionary. In recent changes, this hash is not calculated for TX files, resulting in None value as key in dictionary, crashing publishing. This PR is adding texture hash for TX files to solve that issue.


Houdini: Collect `currentFile` context data separate from workfile instance #4883

Fix publishing without an active workfile instance due to missing currentFile data.Now collect currentFile into context in houdini through context plugin no matter the active instances.


Nuke: fixed broken slate workflow once published on deadline #4887

Slate workflow is now working as expected and Validate Sequence Frames is not raising the once slate frame is included.


Add fps as instance.data in collect review in Houdini. #4888

fix the bug of failing to publish extract review in HoudiniOriginal error:

  File "OpenPype\build\exe.win-amd64-3.9\openpype\plugins\publish\extract_review.py", line 516, in prepare_temp_data
    "fps": float(instance.data["fps"]),
KeyError: 'fps'

TrayPublisher: Fill missing data for instances with review #4891

Fill required data to instance in traypublisher if instance has review family. The data are required by ExtractReview and it would be complicated to do proper fix at this moment! The collector does for review instances what did #4383


Publisher: Keep track about current context and fix context selection widget #4892

Change selected context to current context on reset. Fix bug when context widget is re-enabled.


Scene inventory: Model refresh fix with cherry picking #4895

Fix cherry pick issue in scene inventory.


Nuke: Pre-render and missing review flag on instance causing crash #4897

If instance created in nuke was missing review flag, collector crashed.


Merged pull requests

After Effects: fix handles KeyError #4727

Sometimes when publishing with AE (we only saw this error on AE 2023), we got a KeyError for the handles in the "Collect Workfile" step. So I did get the handles from the context if ther's no handles in the asset entity.


3.15.4

14 Apr 15:15
Compare
Choose a tag to compare

Full Changelog

🆕 New features

Maya: Cant assign shaders to the ass file - OP-4859 #4460

Support AiStandIn nodes for look assignment.

Using operators we assign shaders and attribute/parameters to nodes within standins. Initially there is only support for a limited mount of attributes but we can add support as needed;

primaryVisibility
castsShadows
receiveShadows
aiSelfShadows
aiOpaque
aiMatte
aiVisibleInDiffuseTransmission
aiVisibleInSpecularTransmission
aiVisibleInVolume
aiVisibleInDiffuseReflection
aiVisibleInSpecularReflection
aiSubdivUvSmoothing
aiDispHeight
aiDispPadding
aiDispZeroValue
aiStepSize
aiVolumePadding
aiSubdivType
aiSubdivIterations

Maya: GPU cache representation #4649

Implement GPU cache for model, animation and pointcache.


Houdini: Implement review family with opengl node #3839

Implements a first pass for Reviews publishing in Houdini. Resolves #2720

Uses the opengl ROP node to produce PNG images.


Maya: Camera focal length visible in review - OP-3278 #4531

Camera focal length visible in review.

Support camera focal length in review; static and dynamic.Resolves #3220


Maya: Defining plugins to load on Maya start - OP-4994 #4714

Feature to define plugins to load on Maya launch.


Nuke, DL: Returning Suspended Publishing attribute #4715

Old Nuke Publisher's feature for suspended publishing job on render farm was added back to the current Publisher.


Settings UI: Allow setting a size hint for text fields #4821

Text entity have minimum_lines_count which allows to change minimum size hint of UI input.


TrayPublisher: Move 'BatchMovieCreator' settings to 'create' subcategory #4827

Moved settings for BatchMoviewCreator into subcategory create in settings. Changes are made to match other hosts settings chema and structure.


🚀 Enhancements

Maya looks: support for native Redshift texture format #2971

Add support for native Redshift textures handling. Closes #2599

Uses Redshift's Texture Processor executable to convert textures being used in renders to the Redshift ".rstexbin" format.


Maya: custom namespace for references #4511

Adding an option in Project Settings > Maya > Loader plugins to set custom namespace. If no namespace is set, the default one is used.

___
Maya: Set correct framerange with handles on file opening #4664

Set the range of playback from the asset data, counting handles, to get the correct data when calling the "collect_animation_data" function.


Maya: Fix camera update #4751

Fix resetting any modelPanel to a different camera when loading a camera and updating.


Maya: Remove single assembly validation for animation instances #4840

Rig groups may now be parented to others groups when includeParentHierarchy attribute on the instance is "off".


Maya: Optional control of display lights on playblast. #4145

Optional control of display lights on playblast.

Giving control to what display lights are on the playblasts.


Kitsu: note family requirements #4551

Allowing to add family requirements to IntegrateKitsuNote task status change.

Adds a Family requirements setting to Integrate Kitsu Note, so you can add requirements to determine if kitsu task status should be changed based on which families are published or not. For instance you could have the status change only if another subset than workfile is published (but workfile can still be included) by adding an item set to Not equal and workfile.


Deactivate closed Kitsu projects on OP #4619

Deactivate project on OP when the project is closed on Kitsu.


Maya: Suggestion to change capture labels. #4691

Change capture labels.


Houdini: Change node type for OpenPypeContext `null` -> `subnet` #4745

Change the node type for OpenPype's hidden context node in Houdini from null to subnet. This fixes #4734


General: Extract burnin hosts filters #4749

Removed hosts filter from ExtractBurnin plugin. Instance without representations won't cause crash but just skip the instance. We've discovered because Blender already has review but did not create burnins.


Global: Improve speed of Collect Custom Staging Directory #4768

Improve speed of Collect Custom Staging Directory.


General: Anatomy templates formatting #4773

Added option to format only single template from anatomy instead of formatting all of them all the time. Formatting of all templates is causing slowdowns e.g. during publishing of hundreds of instances.


Harmony: Handle zip files with deeper structure #4782

External Harmony zip files might contain one additional level with scene name.


Unreal: Use common logic to configure executable #4788

Unreal Editor location and version was autodetected. This easied configuration in some cases but was not flexible enought. This PR is changing the way Unreal Editor location is set, unifying it with the logic other hosts are using.


Github: Grammar tweaks + uppercase issue title #4813

Tweak some of the grammar in the issue form templates.


Houdini: Allow creation of publish instances via Houdini TAB menu #4831

Register the available Creator's as houdini tools so an artist can add publish instances via the Houdini TAB node search menu from within the network editor.


🐛 Bug fixes

Maya: Fix Collect Render for V-Ray, Redshift and Renderman for missing colorspace #4650

Fix Collect Render not working for Redshift, V-Ray and Renderman due to missing colorspace argument to RenderProduct dataclass.


Maya: Xgen fixes #4707

Fix for Xgen extraction of world parented nodes and validation for required namespace.


Maya: Fix extract review and thumbnail for Maya 2020 #4744

Fix playblasting in Maya 2020 with override viewport options enabled. Fixes #4730.


Maya: local variable 'arnold_standins' referenced before assignment - OP-5542 #4778

MayaLookAssigner erroring when MTOA is not loaded:

# Traceback (most recent call last):
#   File "\openpype\hosts\maya\tools\mayalookassigner\app.py", line 272, in on_process_selected
#     nodes = list(set(item["nodes"]).difference(arnold_standins))
# UnboundLocalError: local variable 'arnold_standins' referenced before assignment

Maya: Fix getting view and display in Maya 2020 - OP-5035 #4795

The view_transform returns a different format in Maya 2020. Fixes #4540 (hopefully).


</...

Read more

3.15.3

28 Mar 15:53
3be0829
Compare
Choose a tag to compare

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
Read more

3.15.2

13 Mar 14:31
Compare
Choose a tag to compare

Full Changelog

🆕 New features

maya gltf texture convertor and validator #4261

Continuity of the gltf extractor implementation

Continuity of the gltf extractor https://github.com/pypeclub/OpenPype/pull/4192UPDATE:**Validator for GLSL Shader**: Validate whether the mesh uses GLSL Shader. If not it will error out. The user can choose to perform the repair action and it will help to assign glsl shader. If the mesh with Stringray PBS, the repair action will also check to see if there is any linked texture such as Color, Occulsion, and Normal Map. If yes, it will help to relink the related textures to the glsl shader.*****If the mesh uses the PBS Shader,


Unreal: New Publisher #4370

Implementation of the new publisher for Unreal.

The implementation of the new publisher for Unreal. This PR includes the changes for all the existing creators to be compatible with the new publisher.The basic creator has been split in two distinct creators:

  • UnrealAssetCreator, works with assets in the Content Browser.
  • UnrealActorCreator that works with actors in the scene.

Implementation of a new splash screen #4592

Implemented a new splash screen widget to reflect a process running in the background. This widget can be used for other tasks than UE. Also fixed the compilation error of the AssetContainer.cpp when trying to build the plugin in UE 5.0


Deadline for 3dsMax #4439

Setting up deadline for 3dsmax

Setting up deadline for 3dsmax by setting render outputs and viewport camera


Nuke: adding nukeassist #4494

Adding support for NukeAssist

For support of NukeAssist we had to limit some Nuke features since NukeAssist itself Nuke with limitations. We do not support Creator and Publisher. User can only Load versions with version control. User can also set Framerange and Colorspace.


🚀 Enhancements

Maya: OP-2630 acescg maya #4340

Resolves #2712

___
Default Ftrack Family on RenderLayer #4458

With default settings, renderlayers in Maya were not being tagged with the Ftrack family leading to confusion when doing reviews.

___
Maya: Maya Playblast Options - OP-3783 #4487

Replacement PR for #3912. Adds more options for playblasts to preferences/settings.

Adds the following as options in generating playblasts, matching viewport settings.

  • Use default material
  • Wireframe on shaded
  • X-ray
  • X-ray Joints
  • X-ray active component

Maya: Passing custom attributes to alembic - OP-4111 #4516

Passing custom attributes to alembic

This PR makes it possible to pass all user defined attributes along to the alembic representation.


Maya: Options for VrayProxy output - OP-2010 #4525

Options for output of VrayProxy.

Client requested more granular control of output from VrayProxy instance. Exposed options on the instance and settings for vrmesh and alembic.


Maya: Validate missing instance attributes #4559

Validate missing instance attributes.

New attributes can be introduced as new features come in. Old instances will need to be updated with these attributes for the documentation to make sense, and users do not have to recreate the instances.


Refactored Generation of UE Projects, installation of plugins moved to the engine #4369

Improved the way how OpenPype works with generation of UE projects. Also the installation of the plugin has been altered to install into the engine

OpenPype now uses the appropriate tools to generate UE projects. Unreal Build Tool (UBT) and a "Commandlet Project" is needed to properly generate a BP project, or C++ code in case that dev_mode = True, folders, the .uproject file and many other resources.On the plugin's side, it is built seperately with the UnrealAutomationTool (UAT) and then it's contents are moved under the Engine/Plugins/Marketplace/OpenPype directory.


Unreal: Use client functions in Layout loader #4578

Use 'get_representations' instead of 'legacy_io' query in layout loader.

This is removing usage of find_one called on legacy_io and use rather client functions as preparation for AYON connection. Also all representations are queried at once instead of one by one.


General: Support for extensions filtering in loaders #4492

Added extensions filtering support to loader plugins.

To avoid possible backwards compatibility break is filtering exactly the same and filtering by extensions is enabled only if class attribute 'extensions' is set.


Nuke: multiple reformat in baking review profiles #4514

Added support for multiple reformat nodes in baking profiles.

Old settings for single reformat node is supported and prioritised just in case studios are using it and backward compatibility is needed. Warnings in Nuke terminal are notifying users to switch settings to new workflow. Settings are also explaining the migration way.


Nuke: Add option to use new creating system in workfile template builder #4545

Nuke workfile template builder can use new creators instead of legacy creators.

Modified workfile template builder to have option to say if legacy creators should be used or new creators. Legacy creators are disabled by default, so Maya has changed the value.


Global, Nuke: Workfile first version with template processing #4579

Supporting new template workfile builder with toggle for creation of first version of workfile in case there is none yet.

___
Fusion: New Publisher #4523

This is an updated PR for @BigRoy 's old PR (#3892 have merged it with code from OP 3.15.1-nightly.6 and made sure it works as expected.This converts the old publishing system to the new one. It implements Fusion as a new host addon.

- Create button removed in OpenPype menu in favor of the new Publisher - Draft refactor validations to raise PublishValidationError - Implement Creator for New Publisher - Implement Fusion as Host addon
TVPaint: Use Publisher tool #4471

Use Publisher tool and new creation system in TVPaint integration.

Using new creation system makes TVPaint integration a little bit easier to maintain for artists. Removed unneeded tools Creator and Subset Manager tools. Goal is to keep the integration work as close as possible to previous integration. Some changes were made but primarilly because they were not right using previous system.All creators create instance with final family instead of changing the family during extraction. Render passes are not related to group id but to render layer instance. Render layer is still related to group. Workfile, review and scene render instances are created using autocreators instead of auto-collection during publishing. Subset names are fully filled during publishing but instance labels are filled on refresh with the last known right value. Implemented basic of legacy convertor which should convert render layers and render passes.


TVPaint: Auto-detect render creation #4496

Create plugin which will create Render Layer and Render Pass instances based on information in the scene.

Added new creator that must be triggered by artist. The create plugin will first create Render Layer instances if were not created yet. For variant is used color group name. The creator has option to rename color groups by template defined in settings -> Template may use index of group by it's usage in scene (from botto...

Read more

3.15.1

20 Feb 09:41
9875185
Compare
Choose a tag to compare

3.15.1

Full Changelog

🆕 New features

Maya: Xgen (3d / maya ) - #4256

Brief description

Initial Xgen implementation.

Description

Client request of Xgen pipeline.


Data exchange cameras for 3d Studio Max (3d / 3dsmax ) - #4376

Brief description

Add Camera Family into the 3d Studio Max

Description

Adding Camera Extractors(extract abc camera and extract fbx camera) and validators(for camera contents) into 3dMaxAlso add the extractor for exporting 3d max raw scene (which is also related to 3dMax Scene Family) for camera family


🚀 Enhancements

Adding path validator for non-maya nodes (3d / maya ) - #4271

Brief description

Adding a path validator for filepaths from non-maya nodes, which are created by plugins such as Renderman, Yeti and abcImport.

Description

As File Path Editor cannot catch the wrong filenpaths from non-maya nodes such as AlembicNodes, It is neccessary to have a new validator to ensure the existence of the filepaths from the nodes.


Deadline: Allow disabling strict error check in Maya submissions (3d / maya / deadline ) - #4420

Brief description

DL by default has Strict error checking, but some errors are not fatal.

Description

This allows to set profile based on Task and Subset values to temporarily disable Strict Error Checks.Subset and task names should support regular expressions. (not wildcard notation though).


Houdini: New publisher code tweak (3d / houdini ) - #4374

Brief description

This is cosmetics only - the previous code to me felt quite unreadable due to the lengthy strings being used.

Description

Code should do roughly the same, but just be reformatted.


3dsmax: enhance alembic loader update function (3d / 3dsmax ) - #4387

Enhancement

This PR is adding update/switch ability to pointcache/alembic loader in 3dsmax and fixing wrong tool shown when clicking on "Manage" item on OpenPype menu, that is now correctly Scene Inventory (but was Subset Manager).

Alembic update has still one caveat - it doesn't cope with changed number of object inside alembic, since loading alembic in max involves creating all those objects as first class nodes. So it will keep the objects in scene, just update path to alembic file on them.


Global: supporting `OPENPYPE_TMPDIR` in staging dir maker (editorial / hiero ) - #4398

Brief description

Productions can use OPENPYPE_TMPDIR for staging temp publishing directory

Description

Studios were demanding to be able to configure their own shared storages as temporary staging directories. Template formatting is also supported with optional keys formatting and following anatomy keys: - root[work | ] - project[name | code]


General: Functions for current context (other ) - #4324

Brief description

Defined more functions to receive current context information and added the methods to host integration so host can affect the result.

Description

This is one of steps to reduce usage of legacy_io.Session. This change define how to receive current context information -> call functions instead of accessing legacy_io.Session or os.environ directly. Plus, direct access on session or environments is unfortunatelly not enough for some DCCs where multiple workfiles can be opened at one time which can heavily affect the context but host integration sometimes can't affect that at all.HostBase already had implemented get_current_context, that was enhanced by adding more specific methods get_current_project_name, get_current_asset_name and get_current_task_name. The same functions were added to ~/openpype/pipeline/cotext_tools.py. The functions in context tools are calling host integration methods (if are available) otherwise are using environent variables as default implementation does. Also was added get_current_host_name to receive host name from registered host if is available or from environment variable.


Houdini: Do not visualize the hidden OpenPypeContext node (other / houdini ) - #4382

Brief description

Using the new publisher UI would generate a visible 'null' locator at the origin. It's confusing to the user since it's supposed to be 'hidden'.

Description

Before this PR the user would see a locator/null at the origin which was the 'hidden' /obj/OpenPypeContext node. This null would suddenly appear if the user would've ever opened the Publisher UI once.After this PR it will not show:Nice and tidy.


Maya + Blender: Pyblish plugins removed unused `version` and `category` attributes (other ) - #4402

Brief description

Once upon a time in a land far far away there lived a few plug-ins who felt like they didn't belong in generic boxes and felt they needed to be versioned well above others. They tried, but with no success.

Description

Even though they now lived in a universe with elaborate version and category attributes embedded into their tiny little plug-in DNA this particular deviation has been greatly unused. There is nothing special about the version, nothing special about the category.It does nothing.


General: Fix original basename frame issues (other ) - #4452

Brief description

Treat {originalBasename} in different way then standard files processing. In case template should use {originalBasename} the transfers will use them as they are without any changes or handling of frames.

Description

Frames handling is problematic with original basename because their padding can't be defined to match padding in source filenames. Also it limits the usage of functionality to "must have frame at end of fiename". This is proposal how that could be solved by simply ignoring frame handling and using filenames as are on representation. First frame is still stored to representation context but is not used in formatting part. This way we don't have to care about padding of frames at all.


Publisher: Report also crashed creators and convertors (other ) - #4473

Brief description

Added crashes of creators and convertos discovery (lazy solution).

Description

Report in Publisher also contains information about crashed files caused during creator plugin discovery and convertor plugin discovery. They're not separated into categroies and there is no other information in the report about them, but this helps a lot during development. This change does not need to change format/schema of the report nor UI logic.


🐛 Bug fixes

Maya: Fix Validate Attributes plugin (3d / maya ) - #4401

Brief description

Code was broken. So either plug-in was unused or it had gone unnoticed.

Description

Looking at the commit history of the plug-in itself it seems this might have been broken somewhere between two to three years. I think it's broken since two years since this commit.Should this plug-in be removed completely?@tokejepsen Is there still a use case where we should have this plug-in? (You created the original one)


Maya: Ignore workfile lock in Untitled scene (3d
Read more

3.15.0

25 Jan 15:31
Compare
Choose a tag to compare

3.15.0

Full Changelog

Deprecated:

  • General: Fill default values of new publish template profiles #4245

📖 Documentation

  • documentation: Split tools into separate entries #4342
  • Documentation: Fix harmony docs #4301
  • Remove staging logic set by OpenPype version #3979

🆕 New features

  • General: Push to studio library #4284
  • Colorspace Management and Distribution #4195
  • Nuke: refactor to latest publisher workfow #4006
  • Update to Python 3.9 #3546

🚀 Enhancements

  • Unreal: Don't use mongo queries in 'ExistingLayoutLoader' #4356
  • General: Loader and Creator plugins can be disabled #4310
  • General: Unbind poetry version #4306
  • General: Enhanced enum def items #4295
  • Git: add pre-commit hooks #4289
  • Tray Publisher: Improve Online family functionality #4263
  • General: Update MacOs to PySide6 #4255
  • Build: update to Gazu in toml #4208
  • Global: adding imageio to settings #4158
  • Blender: added project settings for validator no colons in name #4149
  • Dockerfile for Debian Bullseye #4108
  • AfterEffects: publish multiple compositions #4092
  • AfterEffects: make new publisher default #4056
  • Photoshop: make new publisher default #4051
  • Feature/multiverse #4046
  • Tests: add support for deadline for automatic tests #3989
  • Add version to shortcut name #3906
  • TrayPublisher: Removed from experimental tools #3667

🐛 Bug fixes

  • Houdini: Fix loader not working in Houdini #4372
  • change 3.7 to 3.9 in folder name #4354
  • PushToProject: Fix hierarchy of project change #4350
  • Fix photoshop workfile save-as #4347
  • Nuke Input process node sourcing improvements #4341
  • New publisher: Some validation plugin tweaks #4339
  • Harmony: fix unable to change workfile on Mac #4334
  • Global: fixing in-place source publishing for editorial #4333
  • General: Use class constants of QMessageBox #4332
  • TVPaint: Fix plugin for TVPaint 11.7 #4328
  • Exctract OTIO review has improved quality #4325
  • Ftrack: fix typos causing bugs in sync #4322
  • General: Python 2 compatibility of instance collector #4320
  • Slack: user groups speedup #4318
  • Maya: Bug - Multiverse extractor executed on plain animation family #4315
  • Fix run_documentation.ps1 #4312
  • Nuke: new creators fixes #4308
  • General: missing comment on standalone and tray publisher #4303
  • AfterEffects: Fix for audio from mp4 layer #4296
  • General: Update gazu in poetry lock #4247
  • Bug: Fixing version detection and filtering in Igniter #3914
  • Bug: Create missing version dir #3903

🔀 Refactored code

  • Remove redundant export_alembic method. #4293
  • Igniter: Use qtpy modules instead of Qt #4237

Merged pull requests:

  • Sort families by alphabetical order in the Create plugin #4346
  • Global: Validate unique subsets #4336
  • Maya: Collect instances preserve handles even if frameStart + frameEnd matches context #3437