Skip to content

3.15.1

Compare
Choose a tag to compare
@ynbot ynbot released this 20 Feb 09:41
· 8270 commits to develop since this release
9875185

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 / maya ) - #4414

Brief description

Skip workfile lock check if current scene is 'Untitled'.


Maya: fps rounding - OP-2549 (3d / maya ) - #4424

Brief description

When FPS is registered in for example Ftrack and round either down or up (floor/ceil), comparing to Maya FPS can fail. Example:23.97 (Ftrack/Mongo) != 23.976023976023978 (Maya)

Description

Since Maya only has a select number of supported framerates, I've taken the approach of converting any fps to supported framerates in Maya. We validate the input fps to make sure they are supported in Maya in two ways:Whole Numbers - are validated straight against the supported framerates in Maya.Demical Numbers - we find the closest supported framerate in Maya. If the difference to the closest supported framerate, is more than 0.5 we'll throw an error.If Maya ever supports arbitrary framerates, then we might have a problem but I'm not holding my breath...


Strict Error Checking Default (3d / maya ) - #4457

Brief description

Provide default of strict error checking for instances created prior to PR.


Create: Enhance instance & context changes (3d / houdini,after effects,3dsmax ) - #4375

Brief description

Changes of instances and context have complex, hard to get structure. The structure did not change but instead of complex dictionaries are used objected data.

Description

This is poposal of changes data improvement for creators. Implemented TrackChangesItem which handles the changes for us. The item is creating changes based on old and new value and can provide information about changed keys or access to full old or new value. Can give the values on any "sub-dictionary".Used this new approach to fix change in houdini and 3ds max and also modified one aftereffects plugin using changes.


Houdini: hotfix condition (3d / houdini ) - #4391

Hotfix

This is fixing bug introduced int #4374


Houdini: Houdini shelf tools fixes (3d / houdini ) - #4428

Brief description

Fix Houdini shelf tools.

Description

Use label as mandatory key instead of name. Changed how shelves are created. If the script is empty it is gracefully skipping it instead of crashing.


3dsmax: startup fixes (3d / 3dsmax ) - #4412

Brief description

This is fixing various issues that can occur on some of the 3dsmax versions.

Description

On displays with +4K resolution UI was broken, some 3dsmax versions couldn't process PYTHONPATH correctly. This PR is forcing sys.path and disabling QT_AUTO_SCREEN_SCALE_FACTOR


Fix features for gizmo menu (2d / nuke ) - #4280

Brief description

Fix features for the Gizmo Menu project settings (shortcut for python type of usage and file type of usage functionality)


Photoshop: fix missing legacy io for legacy instances (2d / photoshop,after effects ) - #4467

Brief description

legacy_io import was removed, but usage stayed.

Description

Usage of legacy_io should be eradicated, in creators it should be replaced by self.create_context.get_current_project_name/asset_name/task_name.


Fix - addSite loader handles hero version (other / sitesync ) - #4359

Brief description

If adding site to representation presence of hero version is checked, if found hero version is marked to be donwloaded too.Replacing #4191


Remove OIIO build for macos (other ) - #4381

Fix

Since we are not able to provide OpenImageIO tools binaries for macos, we should remove the item from th pyproject.toml. This PR is taking care of it.

It is also changing the way fetch_thirdparty_libs script works in that it doesn't crash when lib cannot be processed, it only issue warning.

Resolves #3858


General: Attribute definitions fixes (other ) - #4392

Brief description

Fix possible issues with attribute definitions in publisher if there is unknown attribute on an instance.

Description

Source of the issue is that attribute definitions from creator plugin could be "expanded" during CreatedInstance initialization. Which would affect all other instances using the same list of attributes -> literally object of list. If the same list object is used in "BaseClass" for other creators it would affect all instances (because of 1 instance). There had to be implemented other changes to fix the issue and keep behavior the same.Object of CreatedInstance can be created without reference to creator object. CreatedInstance is responsible to give UI attribute definitions (technically is prepared for cases when each instance may have different attribute definitions -> not yet).Attribute definition has added more conditions for __eq__ method and have implemented __ne__ method (which is required for Py 2 compatibility). Renamed AbtractAttrDef to AbstractAttrDef (fix typo).


Ftrack: Don't force ftrackapp endpoint (other / ftrack ) - #4411

Brief description

Auto-fill of ftrack url don't break custom urls. Custom urls couldn't be used as ftrackapp.com is added if is not in the url.

Description

The code was changed in a way that auto-fill is still supported but before ftrackapp is added it will try to use url as is. If the connection works as is it is used.


Fix: DL on MacOS (other ) - #4418

Brief description

This works if DL Openpype plugin Installation Directories is set to level of app bundle (eg. '/Applications/OpenPype 3.15.0.app')


Photoshop: make usage of layer name in subset name more controllable (other ) - #4432

Brief description

Layer name was previously used in subset name only if multiple instances were being created in single step. This adds explicit toggle.

Description

Toggling this button allows to use layer name in created subset name even if single instance is being created.This follows more closely implementation if AE.


SiteSync: fix dirmap (other ) - #4436

Brief description

Fixed issue in dirmap in Maya and Nuke

Description

Loads of error were thrown in Nuke console about dictionary value.AttributeError: 'dict' object has no attribute 'lower'


General: Ignore decode error of stdout/stderr in run_subprocess (other ) - #4446

Brief description

Ignore decode errors and replace invalid character (byte) with escaped byte character.

Description

Calling of run_subprocess may cause crashes if output contains some unicode character which (for example Polish name of encoder handler).


Publisher: Fix reopen bug (other ) - #4463

Brief description

Use right name of constant 'ActiveWindow' -> 'WindowActive'.


Publisher: Fix compatibility of QAction in Publisher (other ) - #4474

Brief description

Fix QAction for older version of Qt bindings where QAction requires a parent on initialization.

Description

This bug was discovered in Nuke 11. Fixed by creating QAction when QMenu is already available and can be used as parent.


馃攢 Refactored code

General: Remove 'openpype.api' (other ) - #4413

Brief description

PR is removing openpype/api.py file which is causing a lot of troubles and cross-imports.

Description

I wanted to remove the file slowly function by function but it always reappear somewhere in codebase even if most of the functionality imported from there is triggering deprecation warnings. This is small change which may have huge impact.There shouldn't be anything in openpype codebase which is using openpype.api anymore so only possible issues are in customized repositories or custom addons.


馃搩 Documentation

docs-user-Getting Started adjustments (other ) - #4365

Brief description

Small typo fixes here and there, additional info on install/ running OP.


Merged pull requests

Renderman support for sample and display filters (3d / maya ) - #4003

Brief description

User can set up both sample and display filters in Openpype settings if they are using Renderman as renderer.

Description

You can preset which sample and display filters for renderman , including the cryptomatte renderpass, in Openpype settings. Once you select which filters to be included in openpype settings and then create render instance for your camera in maya, it would automatically tell the system to generate your selected filters in render settings.The place you can find for setting up the filters: Maya > Render Settings > Renderman Renderer > Display Filters/ Sample Filters


Maya: Create Arnold options on repair. (3d / maya ) - #4448

Brief description

When validating/repairing we previously required users to open render settings to create the Arnold options. This is done through code now.


Update Asset field of creator Instances in Maya Template Builder (3d / maya ) - #4470

Brief description

When we build a template with Maya Template Builder, it will update the asset field of the sets (creator instances) that are imported from the template.

Description

When building a template, we also want to define the publishable content in advance: create an instance of a model, or look, etc., to speed up the workflow and reduce the number of questions we are asked. After building a work file from a saved template that contains pre-created instances, the template builder should update the asset field to the current asset.


Blender: fix import workfile all families (3d / blender ) - #4405

Brief description

Having this feature related to workfile available for any family is absurd.


Nuke: update rendered frames in latest version (2d / nuke ) - #4362

Brief description

Introduced new field to insert frame(s) to rerender only.

Description

Rendering is expensive, sometimes it is helpful only to re-render changed frames and reuse existing.Artists can in Publisher fill which frame(s) should be re-rendered.If there is already published version of currently publishing subset, all representation files are collected (currently for render family only) and then when Nuke is rendering (locally only for now), old published files are copied into into temporary render folder where will be rewritten only by frames explicitly set in new field.That way review/burnin process could also reuse old files and recreate reviews/burnins.New version is produced during this process!


Feature: Keep synced hero representations up-to-date. (other ) - #4343

Brief description

Keep previously synchronized sites up-to-date by comparing old and new sites and adding old sites if missing in new ones.Fix #4331


Maya: Fix template builder bug where assets are not put in the right hierarchy (other ) - #4367

Brief description

When buiding scene from template, the assets loaded from the placeholders are not put in the hierarchy. Plus, the assets are loaded in double.


Bump ua-parser-js from 0.7.31 to 0.7.33 in /website (other ) - #4371

Bumps ua-parser-js from 0.7.31 to 0.7.33.

Changelog

Sourced from ua-parser-js's changelog.

Version 0.7.31 / 1.0.2

  • Fix OPPO Reno A5 incorrect detection
  • Fix TypeError Bug
  • Use AST to extract regexes and verify them with safe-regex

Version 0.7.32 / 1.0.32

  • Add new browser : DuckDuckGo, Huawei Browser, LinkedIn
  • Add new OS : HarmonyOS
  • Add some Huawei models
  • Add Sharp Aquos TV
  • Improve detection Xiaomi Mi CC9
  • Fix Sony Xperia 1 III misidentified as Acer tablet
  • Fix Detect Sony BRAVIA as SmartTV
  • Fix Detect Xiaomi Mi TV as SmartTV
  • Fix Detect Galaxy Tab S8 as tablet
  • Fix WeGame mistakenly identified as WeChat
  • Fix included commas in Safari / Mobile Safari version
  • Increase UA_MAX_LENGTH to 350

Version 0.7.33 / 1.0.33

  • Add new browser : Cobalt
  • Identify Macintosh as an Apple device
  • Fix ReDoS vulnerability

Version 0.8

Version 0.8 was created by accident. This version is now deprecated and no longer maintained, please update to version 0.7 / 1.0.

Commits

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.

___
Docs: Question about renaming in Kitsu (other ) - #4384

Brief description

To keep memory of this discussion: https://discord.com/channels/517362899170230292/563751989075378201/1068112668491255818


New Publisher: Fix Creator error typo (other ) - #4396

Brief description

Fixes typo in error message.


Chore: pyproject.toml version because of Poetry (other ) - #4408

Brief description

Automatization injects wrong format


Fix - remove minor part in toml (other ) - #4437

Brief description

Causes issue in create_env and new Poetry


General: Add project code to anatomy (other ) - #4445

Brief description

Added attribute project_code to Anatomy object.

Description

Anatomy already have access to almost all attributes from project anatomy except project code. This PR changing it. Technically Anatomy is everything what would be needed to get fill data of project.


{

    "project": {

        "name": anatomy.project_name,

        "code": anatomy.project_code

    }

}


Maya: Arnold Scene Source overhaul - OP-4865 (other / maya ) - #4449

Brief description

General overhaul of the Arnold Scene Source (ASS) workflow.

Description

This originally was to support static files (non-sequencial) ASS publishing, but digging deeper whole workflow needed an update to get ready for further issues. During this overhaul the following changes were made:

  • Generalized Arnold Standin workflow to a single loader.

  • Support multiple nodes as proxies.

  • Support proxies for pointcache family.

  • Generalized approach to proxies as resources, so they can be the same file format as the original.This workflow should allow further expansion to utilize operators and eventually USD.