3.15.1
3.15.1
馃啎 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: 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
f2d0db0
Bump version 0.7.33a6140a1
Remove unsafe regex in trim() functiona886604
Fix #605 - Identify Macintosh as Apple deviceb814bcd
Merge pull request #606 from rileyjshaw/patch-17f71024
Fix documentationc239ac5
Merge pull request #604 from obecerra3/master8d3c2d3
Add new browser: Cobaltd11fc47
Bump version 0.7.32b490110
Merge branch 'develop' of github.com:faisalman/ua-parser-jscb5da5e
Merge pull request #600 from moekm/develop- Additional commits viewable in compare view
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.