Giter Site home page Giter Site logo

ayon-core's People

Contributors

2-rec avatar 64qam avatar aardschok avatar antirotor avatar bigroy avatar clementhector avatar davidlatwe avatar dependabot[bot] avatar dmo-j-cube avatar emberlightvfx avatar fabiaserra avatar github-actions[bot] avatar icyvapor avatar illicitit avatar jakubjezek001 avatar kalisp avatar karimmozilla avatar liborbatek avatar minkiu avatar mkolar avatar moonyuet avatar movalex avatar mustafajafar avatar sharkitty avatar simonebarbieri avatar sponge96 avatar tilix4 avatar tokejepsen avatar ynbot avatar zhoub avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ayon-core's Issues

Drop explicit product type list from integrator

Is there an existing issue for this?

  • I have searched the existing issues.

Please describe the feature you have in mind and explain what the current shortcomings are?

CUrrently, we have explicit list of product types (families) defined in integrate.py global integrator that is limiting on what instances this integrator runs. If you add your new product type no matter how simple it is, you need to change code in ayon-core to integrate it.

How would you imagine the implementation of the feature?

We should drop this list completely and use integrate = True/False on instance to determine if it should be integrated or not to unbind it from the host specific and workflow specific definitions. This needs to be done before we split to multiple repositories otherwise any addition to host addon will need also change in ayon-core.

Are there any labels you wish to add?

  • I have added the relevant labels to the enhancement request.

Describe alternatives you've considered:

We could add that list to Settings but then we just change the place where we maintain list of product types.

Additional context:

No response

[cuID:AY-4138]

Houdini: Instance in current context validator

Is there an existing issue for this?

  • I have searched the existing issues.

Please describe the feature you have in mind and explain what the current shortcomings are?

We are missing the same validator that was already made for Maya and Max (#58).

How would you imagine the implementation of the feature?

It should have the same functionality - optional validator that can be disabled per host/task type (to allow easy mutli-shot workflows) with repair action that will set the context to the current one.

Note

Some of it is touched by OpenPype PR ynput/OpenPype#6207.

Are there any labels you wish to add?

  • I have added the relevant labels to the enhancement request.

Describe alternatives you've considered:

No response

Additional context:

No response

[cuID:AY-3641]

Max: The asset isn't added into AYON/OP Data parameter after rename

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior:

The current modifier built for AYON/OP specific data, which stores all the publishing data, has some limitations to store the assets correctly after the object being renamed.

Expected Behavior:

The container can stores the assets even after their renames.

Version

1.0.0

What platform you are running on?

Windows

Steps To Reproduce:

  1. Create any instance in Max with some assets
  2. rename these assets
  3. Click add to container or delete from container
  4. The renamed assets are always in both add-object and delete-object dialog
  5. When you publish the instances, they will error out collect_instances because of "None" object is in the list of member instance.

Are there any labels you wish to add?

  • I have added the relevant labels to the bug report.

Relevant log output:

No response

Additional context:

No response

[cuID:AY-5160]

Bug: 3dsmax - Manage / Set Version malfunctioning

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior:

When loaded asset (max scene loader) in particular version in the active workfile and user wanting to change the version to any other existing it Set Version action perform the change but also produce duplicate of the asset leading to unwanted objects appearing in the scene.

Screenshot 2024-03-06 160038

Expected Behavior:

Manage functions should work as expected and not producing any unwanted entities in the active workfile.

Version

1.0.0

What platform you are running on?

Windows

Steps To Reproduce:

1.Load any Asset like model (maxScene Loader)
2. Manage> Set Version (change version to other)
3. If all fine, load another Asset and perform Manage version again
4. Your scene will have unwanted duplicates of assets (as on the screenshot above)

Are there any labels you wish to add?

  • I have added the relevant labels to the bug report.

Relevant log output:

No response

Additional context:

No response

[cuID:AY-3686]

Unreal: Representation priority on Layout loading

Is there an existing issue for this?

  • I have searched the existing issues.

Please describe the feature you have in mind and explain what the current shortcomings are?

When loading layouts to DCC, representations of assets referenced there might not be optimal for it. Imagine layout published from Maya, where assets have both alembic and FBX representations, but alembics are used during the publishing.

How would you imagine the implementation of the feature?

When you load such layout into Unreal for example, alembics are used, but it might be better to use FBX representation then (or any other, based on needed workdlows). Right now, you can either re-publish this layout with different loaded representations or change them after layout is loaded, but that adds unnecessary steps into it. It would be nice to have settings for the Layout loader where you could specify preferred Loader plugin and representation (if exist). That in itself could be helpful even on other load pipepelines.

Are there any labels you wish to add?

  • I have added the relevant labels to the enhancement request.

Describe alternatives you've considered:

No response

Additional context:

No response

[cuID:AY-3895]

Resolve: Update container errors

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior:

Updating a container in the manager errors with:

Traceback (most recent call last):
  File "C:\Users\tokejepsen\ayon-core\client\ayon_core\tools\sceneinventory\view.py", line 236, in <lambda>
    lambda: self._update_containers(items, version=-1)
  File "C:\Users\tokejepsen\ayon-core\client\ayon_core\tools\sceneinventory\view.py", line 819, in _update_containers
    update_container(item, item_version)
  File "C:\Users\tokejepsen\ayon-core\client\ayon_core\pipeline\load\utils.py", line 517, in update_container
    return Loader().update(container, context)
  File "C:\Users\tokejepsen\ayon-core\client\ayon_core\hosts\resolve\plugins\load\load_clip.py", line 82, in update
    self.set_item_color(timeline_item, version=context["version"])
  File "C:\Users\tokejepsen\ayon-core\client\ayon_core\hosts\resolve\plugins\load\load_clip.py", line 130, in set_item_color
    version["parent"],
KeyError: 'parent'

Expected Behavior:

No response

Version

1.0.0

What platform you are running on?

Windows

Steps To Reproduce:

  1. Load a clip (EXR) into a timeline in Resolve.
  2. Switch version in the Manager.

Are there any labels you wish to add?

  • I have added the relevant labels to the bug report.

Relevant log output:

No response

Additional context:

No response

Maya: Camera Publish resets image plane to default view size

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior:

If you publish a camera instance then currently any image planes that are attached to the camera are detached during the extraction and re-attached afterwards. This re-attaching has the side effect that Maya resets the image plane to the default "fit to view" sizes and position.

The issue basically occurs on this line of code:

cmds.imagePlane(image_plane, edit=True, camera=camera)

As the maya docs state:

When the image plane is attached to a camera, the image plane's transform node will be set identity.

Expected Behavior:

Image planes (and the rest of the scene) should remain as they were before to the publish.

Version

1.0.0

What platform you are running on?

Windows

Steps To Reproduce:

  1. Apply an image plane to the camera
  2. Change the Placement > "size" of the image plane
  3. Publish the camera
  4. The image plane's placement has now been reset due to the publish.

Are there any labels you wish to add?

  • I have added the relevant labels to the bug report.

Relevant log output:

No response

Additional context:

No response

Bug: Hiero ls crashes if nothing is selected

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior:

When nothing is selected in hiero timeline ls function does crash.

Expected Behavior:

It should not crash.

Version

1.0.0

What platform you are running on?

Windows

Steps To Reproduce:

  1. Open empty scene in hiero
  2. Open script editor and call
from ayon_core.hosts.hiero.api import ls

ls()

Are there any labels you wish to add?

  • I have added the relevant labels to the bug report.

Relevant log output:

  File "C:\Users\qam\AppData\Local\Ynput\AYON\addons\core_0.3.0-dev.1\ayon_core\tools\loader\ui\window.py", line 515, in _on_folders_refresh
    self._products_widget.refresh()
  File "C:\Users\qam\AppData\Local\Ynput\AYON\addons\core_0.3.0-dev.1\ayon_core\tools\loader\ui\products_widget.py", line 230, in refresh
    self._refresh_model()
  File "C:\Users\qam\AppData\Local\Ynput\AYON\addons\core_0.3.0-dev.1\ayon_core\tools\loader\ui\products_widget.py", line 274, in _refresh_model
    self._selected_folder_ids
  File "C:\Users\qam\AppData\Local\Ynput\AYON\addons\core_0.3.0-dev.1\ayon_core\tools\loader\ui\products_model.py", line 384, in refresh
    sender=PRODUCTS_MODEL_SENDER_NAME
  File "C:\Users\qam\AppData\Local\Ynput\AYON\addons\core_0.3.0-dev.1\ayon_core\tools\loader\control.py", line 188, in get_product_items
    project_name, folder_ids, sender)
  File "C:\Users\qam\AppData\Local\Ynput\AYON\addons\core_0.3.0-dev.1\ayon_core\tools\loader\models\products.py", line 229, in get_product_items
    project_name, folder_ids_to_update, sender)
  File "C:\Users\qam\AppData\Local\Ynput\AYON\addons\core_0.3.0-dev.1\ayon_core\tools\loader\models\products.py", line 616, in _refresh_product_items
    folder_items=folder_items
  File "C:\Users\qam\AppData\Local\Ynput\AYON\addons\core_0.3.0-dev.1\ayon_core\tools\loader\models\products.py", line 534, in _query_product_items_by_ids
    project_name, products, versions, folder_items=folder_items
  File "C:\Users\qam\AppData\Local\Ynput\AYON\addons\core_0.3.0-dev.1\ayon_core\tools\loader\models\products.py", line 462, in _create_product_items
    loaded_product_ids = self._controller.get_loaded_product_ids()
  File "C:\Users\qam\AppData\Local\Ynput\AYON\addons\core_0.3.0-dev.1\ayon_core\tools\loader\control.py", line 351, in get_loaded_product_ids
    for container in containers:
  File "C:\Users\qam\AppData\Local\Ynput\AYON\addons\core_0.3.0-dev.1\ayon_core\hosts\hiero\api\pipeline.py", line 128, in ls
    all_items = lib.get_track_items()
  File "C:\Users\qam\AppData\Local\Ynput\AYON\addons\core_0.3.0-dev.1\ayon_core\hosts\hiero\api\lib.py", line 247, in get_track_items
    tracks = list(sequence.audioTracks()) + list(sequence.videoTracks())
AttributeError: 'NoneType' object has no attribute 'audioTracks'

Fusion: Validate Unique Products double validation

Is there an existing issue for this?

  • I have searched the existing issues.

Please describe the feature you have in mind and explain what the current shortcomings are?

In Fusion, if two publish instances are set to the same folder and product name the validation report catches it. But it catches it twice:

image
image

This is due to there being one Fusion plug-in, and one global plug-in.

The fusion specific one does have "Select invalid" making it sligthly nicer so there is something to say about keeping that somehow - because I'm not sure how we could expose that in the global plug-in.

How would you imagine the implementation of the feature?

It should be reported once - not twice.

Are there any labels you wish to add?

  • I have added the relevant labels to the enhancement request.

Describe alternatives you've considered:

No response

Additional context:

No response

Enhancement: Filtering shown creator plugins based on preset / settings profile

Is there an existing issue for this?

  • I have searched the existing issues.

Please describe the feature you have in mind and explain what the current shortcomings are?

For certain workflows and pipeline steps, it would be easier to limit number of creators presented in Publisher UI. For example, modeler willl probably never need to publish VDBs, etc. This is highly workflow specific so it needs to be customizable by the studio itself.

How would you imagine the implementation of the feature?

There are two ways (or more):

Preset
Define sets of creators in lists and show those list as preset selector in the Publisher

Profiles
Define list of creators per host on project level with set of task type/task name/asset or even user role?

All of it needs button in publisher to ignore and show all anyway.

Are there any labels you wish to add?

  • I have added the relevant labels to the enhancement request.

Describe alternatives you've considered:

No response

Additional context:

No response

[cuID:AY-2539]

Publisher: Optional "This is not your fault" gif

Is there an existing issue for this?

  • I have searched the existing issues.

Please describe the feature you have in mind and explain what the current shortcomings are?

The This is not your fault page in the publisher, is not but fun enough, so we need to enhance it with an optional gif from "Good Will Hunting".

https://tenor.com/en-GB/view/its-not-your-fault-supportive-crying-not-your-fault-gif-3707453

How would you imagine the implementation of the feature?

Some QT magic to include the GIF on the page. Setting for making it optional.

Obviously will get a copyright take down of the repository, but its worth it.

Are there any labels you wish to add?

  • I have added the relevant labels to the enhancement request.

Describe alternatives you've considered:

No response

Additional context:

No response

Bug: 3dsmax - Extract Geometry (Alembic) / Optional Switch not visible in the Publisher UI

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior:

When using Extract Geometry (Alembic) as Optional it is not shown in the Publisher UI so user cant modify it (for ie disable it)

Screenshot 2024-03-08 105009

When seen in the Publisher on the model publish and camera instances

Screenshot 2024-03-08 105030 Screenshot 2024-03-08 105304

Expected Behavior:

The extractor should be visible in the Publisher UI if set in the Ayon Settings to be as Optional so user could tweak its state if desired.

Version

1.0.0

What platform you are running on?

Windows

Steps To Reproduce:

  1. Open Max Addon Extractors settings and locate Extract Geometry (Alembic)
  2. Set it as Enabled for Optional
  3. Create / Inspect existing publish instance in Max in the active workfile for Model and Camera
  4. It wont be displayed to user so tweaking the sate of this extractor is not possible.

Are there any labels you wish to add?

  • I have added the relevant labels to the bug report.

Relevant log output:

No response

Additional context:

No response

[cuID:AY-3685]

Houdini: `folderPath` letter case

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior:

Case changed.. In this screenshot the publisher expects the folderPath to be /Assets/Character/roboangry
However, when I create new instances, they are created with the correct folderPath.

image

Another Example: my actual file path (existed sometime before the latest refactoring )
\\storage\work\ayon_projects\Robo\Assets\Character\BigRobo\work\cfx
while ayon launcher recognizes it as
\\storage\work\ayon_projects\Robo\Assets\Character\bigrobo\work\cfx

Expected Behavior:

I have no suggestions.

Version

AYON server 1.0.4+202402231406
Launcher 1.0.3-dev.1
Ayon Core 0.3.0-dev.1

Also,
AYON server 1.0.4+202402231406
Launcher 1.0.0-rc.2
OpenPype 3.18.6-nightly.1

What platform you are running on?

Windows

Steps To Reproduce:

  1. Open a little old workfiles before letter case to change (I'm not sure when that starts to occur but my file was created 2 month ago.)
  2. Open Publisher

Are there any labels you wish to add?

  • I have added the relevant labels to the bug report.

Relevant log output:

No response

Additional context:

I doubt this could be happening because I'm using the same project with openpype addon.
I tested it with OP addon and I faced the same problem. Could it be on ayon server side ?

Also, I'm not sure if this problem happens because I'm constantly testing new PRs and updating my ayon-core clone.

[cuID:AY-3849]

Bug: testing issue asdfasdfasdf

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior:

asdfasdfasdf

Expected Behavior:

asdfasdfasddf

Version

1.0.0

What platform you are running on?

Linux / Ubuntu

Steps To Reproduce:

adasdfasd

Are there any labels you wish to add?

  • I have added the relevant labels to the bug report.

Relevant log output:

asdfasdf

Additional context:

asdfasdf

[cuID:AY-1816]

User Friendly Error Reporting

Is there an existing issue for this?

  • I have searched the existing issues.

Please describe the feature you have in mind and explain what the current shortcomings are?

Idea 1: Making KnownPublishError change the main_label and report_label in the CrashWidget where we can pass some arguments to the KnownPublishError and uses these arguments to update the dedicated labels text.

Idea 2: Adding a Generic PublishError that works in a similar fashion to PublishValidationError which is a better user friendly way to raise and show errors from pyblish plugins like extractors or even from lib.py files.

How would you imagine the implementation of the feature?

It's hard for me to tell how it should be implemented but instead let me show some experiments and how to reproduce them.

Houdini: Render failed or interrupted

Firstly, Remove this line
To reproduce this one:

  1. Replace this line with the following code (Don't forget to import PublishValidationError at the top of the file)
        raise PublishValidationError("Render failed or interrupted",
                                     title="Failed to render {}".format(ropnode),
                                     description="## Render failed or interrupted",
                                     detail="{}".format(exc)
                                     )
  1. Create a mantra IFD (using this PR #75), turn off farm submission, publish and interrupt render.

image

Another test with VDB extraction
To reproduce this one:

  1. add this snippet after output = instance.data["frames"]
missing_frames = [
            frame
            for frame in instance.data["frames"]
            if not os.path.exists(
                os.path.normpath(os.path.join(staging_dir, frame)))
        ]
        if missing_frames:
            self.log.error("Failed to complete VDB extraction.")
            raise PublishValidationError(
                                    "Export failed or interrupted",
                                     title="Failed to render {}".format(ropnode),
                                     description="## Export failed or interrupted",
                                     detail="Missing output files: {}".format(missing_frames)
                                     )
  1. Craete a VDB instance, publish and interrupt render

On the other hand interrupting VDB export doesn't raise error as the pervious example.
image

Make KnownPublishError update the report label

I did some ugly code modifications in order to set the text of ReportPageWidget.ReportsWidget.CrashWidget.report_label using the self._controller.publish_error_msg inside

def _on_publish_stop(self):

I'm not aware of how this should be done but I was only trying to create the following proof of concept.

image

Are there any labels you wish to add?

  • I have added the relevant labels to the enhancement request.

Describe alternatives you've considered:

No response

Additional context:

No response

Houdini: Update node parameters when creator attributes change

Is there an existing issue for this?

  • I have searched the existing issues.

Please describe the feature you have in mind and explain what the current shortcomings are?

It'd be nice if Houdini nodes and publisher attributes are in sync.

How would you imagine the implementation of the feature?

Currently, I have no simple suggestions.
There was an experimental PR #418 but it increased the complexity of the plugin.

Are there any labels you wish to add?

  • I have added the relevant labels to the enhancement request.

Describe alternatives you've considered:

No response

Additional context:

This issue showed up in this comment #328 (comment)
and it blocked #328 PR.

[cuID:AY-5020]

Houdini: workfile tool doesn't switch context properly

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior:

Sometimes context is not changed when changing context with workfile tool

image

Expected Behavior:

It should change the asset context.

Version

Launcher 1.0.3-dev.1
Ayon Core 0.3.0-dev.1
Ayon Server 1.0.4+202402231406

What platform you are running on?

Windows

Steps To Reproduce:

  1. Open Houdini
  2. Use workfile tool to open a workfile of another asset

Are there any labels you wish to add?

  • I have added the relevant labels to the bug report.

Relevant log output:

No response

Additional context:

I'm not sure if this problem happens because I'm constantly testing new PRs and updating my ayon-core clone.

[cuID:AY-3851]

Bug: Workfiles tool deselecting a task will leave "Browse" and "Save As" button enabled

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior:

Currently in Workfiles tool when deselecting a task the Save As and Browse buttons remain enabled.

Clicking Save As also gives an error, e.g.:

Traceback (most recent call last):
  File "E:\dev\ayon-core\client\ayon_core\tools\workfiles\widgets\files_widget.py", line 253, in _on_workarea_save_clicked
    result = self._exec_save_as_dialog()
  File "E:\dev\ayon-core\client\ayon_core\tools\workfiles\widgets\files_widget.py", line 175, in _exec_save_as_dialog
    dialog.update_context()
  File "E:\dev\ayon-core\client\ayon_core\tools\workfiles\widgets\save_as_dialog.py", line 254, in update_context
    self._extension_combobox.addItems(data["extensions"])
TypeError: 'PySide2.QtWidgets.QComboBox.addItems' called with wrong argument types:
  PySide2.QtWidgets.QComboBox.addItems(NoneType)
Supported signatures:
  PySide2.QtWidgets.QComboBox.addItems(typing.Sequence[str])

Expected Behavior:

Whenever there's no valid context (e.g. no folder + task selected) it should deactivate the irrelevant buttons.
The browse button is technically also invalid, since you wouldn't be able to open the file in a 'valid context' if you wouldn't have a task selected in the UI.

Version

1.0.0

What platform you are running on?

Windows

Steps To Reproduce:

  1. Open workfiles tool
  2. Deselect task

image

Are there any labels you wish to add?

  • I have added the relevant labels to the bug report.

Relevant log output:

No response

Additional context:

No response

Add "Use current folder" to Tray Publisher's select folder dialog

Is there an existing issue for this?

  • I have searched the existing issues.

Please describe the feature you have in mind and explain what the current shortcomings are?

I often copy node trees that includes savers from other comps in Fusion.
I then need to change those savers Folders to the current comps folder. This task can take quite some time as I need to fiddle around in the tree view of the Select folder dialog.

2024-03-27_11-48-17

It would be super great if the dialog window would have a "Use current folder" button like scene inventory's Switch selected items dialog have that automatically would select the current folder.

2024-03-27_11-48-43

How would you imagine the implementation of the feature?

A button that selects the current folder. The user should still have to press OK in the window.

Are there any labels you wish to add?

  • I have added the relevant labels to the enhancement request.

Describe alternatives you've considered:

No response

Additional context:

No response

Bug: transcode color spaces deleting unprocessed representations

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior:

Whenever there is something preventing Transcode color spaces plugin (extract_color_transcode.py or Extract OIIO Transcode in the Settings) to run on representation and the conditions are set, that representation will be deleted by this plugin without it being replaced by transcoded representation.

For example this will skip processing the representation based on some conditions:

if not self._repre_is_valid(repre):
continue

also this can skip it:

if not config_path or not os.path.exists(config_path):
self.log.warning("Config file doesn't exist, skipping")
continue

but this will trigger on all representations in the instance no matter if they were processed or not:

for repre in tuple(instance.data["representations"]):
tags = repre.get("tags") or []
if "delete" in tags and "thumbnail" not in tags:
instance.data["representations"].remove(repre)

Expected Behavior:

If representation cannot be processed for some reason, it should either crash (ideally on validator and not extractor) explaining what needs to be done to artist (wrong profile configuration for example). Or if it is "soft-fail" it shouldn't definitely delete unprocessed representation as it cannot be then used later on.

In this specific case, if you publish review attached to model and you have configuration that will skip processing of playblast representation, this plugin will delete it and so Extract Review cannot process it anymore.

Also, I would unify naming of the plugin file / label / settings name.

Version

1.0.0

What platform you are running on?

Windows

Steps To Reproduce:

Enable and configure plugin like this (it doesn't really matter as long as it triggers in publishing):

image

Force condition like this:

// pyblish.ExtractOIIOTranscode : repre (2): `png`
// pyblish.ExtractOIIOTranscode : Representation '{}' has no colorspace data. Skipped.

(btw we should also fix debug output of these messages)

Then if you create model in maya, attach review to it and publish, playblast will be extracted, but Extract Review won't see it because pyblish.ExtractOIIOTranscode will delete it even if Skipped

Are there any labels you wish to add?

  • I have added the relevant labels to the bug report.

Relevant log output:

No response

Additional context:

Note

OpenPype issue ynput/OpenPype#6255 - we should backport this fix

[cuID:AY-4205]

Houdini: Better support for single frame outputs

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior:

A lot of extractor seems to rely on instance.data["frames"] to be a list of files:

However it's a single file if the instance has no frame range data.

If it has frame range data but a it's a single frame then I believe these extractors end up setting a single file list like: representation["files"] = ["single_file.1001.exr"] - which the integrator does not tend to like.

For example, a single frame COP2 image publish errors with the following report:

publish-report-240325-17-47.json

The integrator wants single files to be a single filename instead of a list.

Expected Behavior:

There should be simple consistency across the API, so I suppose instance.data["frames"] should at best always be a list. We should then however just restructure the representation["files"] to be a single filename instead of the list of files.

Version

1.0.0

What platform you are running on?

Windows

Steps To Reproduce:

  1. Publish a single frame of a sequenced product type, e.g. image sequence (COP2), bgeo, vdb

Are there any labels you wish to add?

  • I have added the relevant labels to the bug report.

Relevant log output:

Traceback (most recent call last):
  File "C:\Users\User\AppData\Local\Ynput\AYON\dependency_packages\ayon_2403061937_windows.zip\dependencies\pyblish\plugin.py", line 527, in __explicit_process
    runner(*args)
  File "E:\dev\ayon-core\client\ayon_core\plugins\publish\integrate.py", line 232, in process
    six.reraise(*sys.exc_info())
  File "C:\Program Files\Side Effects Software\Houdini 20.0.590\python310\lib\site-packages\six.py", line 719, in reraise
    raise value
  File "E:\dev\ayon-core\client\ayon_core\plugins\publish\integrate.py", line 219, in process
    self.register(instance, file_transactions, filtered_repres)
  File "E:\dev\ayon-core\client\ayon_core\plugins\publish\integrate.py", line 412, in register
    op_session.commit()
  File "C:\Program Files\Ynput\AYON 1.0.2\dependencies\ayon_api\operations.py", line 701, in commit
    self._con.send_batch_operations(
  File "C:\Program Files\Ynput\AYON 1.0.2\dependencies\ayon_api\server_api.py", line 6575, in send_batch_operations
    raise FailedOperations((
ayon_api.exceptions.FailedOperations: Operation "6ec98b42-d9db-4f78-8830-ff13b2f0af7a" failed with data:
{
    "id": "6ec98b42-d9db-4f78-8830-ff13b2f0af7a",
    "type": "create",
    "entityType": "representation",
    "entityId": "7372cb33eac711eeab71a3d64c91bc2b",
    "data": {
        "id": "7372cb33eac711eeab71a3d64c91bc2b",
        "versionId": "7366107deac711ee9003a3d64c91bc2b",
        "files": [
            {
                "id": "737e65b5eac711ee9c30a3d64c91bc2b",
                "name": "ynts_char_hero_imagesequenceMain_v003.",
                "path": "{root[work]}/ayontest/asset/char_hero/publish/imagesequence/imagesequenceMain/v003/ynts_char_hero_imagesequenceMain_v003.",
                "size": 66396,
                "hash": "ynts_char_hero_imagesequenceMain_v003,|1711385284,74326|66396",
                "hash_type": "op3"
            }
        ],
        "name": "",
        "data": {
            "context": {
                "root": {
                    "work": "C:/projects"
                },
                "project": {
                    "name": "ayontest",
                    "code": "ynts"
                },
                "hierarchy": "asset",
                "folder": {
                    "name": "char_hero"
                },
                "product": {
                    "name": "imagesequenceMain",
                    "type": "imagesequence"
                },
                "version": 3,
                "ext": "",
                "asset": "char_hero",
                "task": {
                    "name": "modeling",
                    "type": "Modeling",
                    "short": "mdl"
                },
                "subset": "imagesequenceMain",
                "family": "imagesequence",
                "representation": "",
                "username": "admin",
                "user": "admin"
            }
        },
        "attrib": {
            "path": "C:\\projects\\ayontest\\asset\\char_hero\\publish\\imagesequence\\imagesequenceMain\\v003\\ynts_char_hero_imagesequenceMain_v003.",
            "template": "{root[work]}/{project[name]}/{hierarchy}/{folder[name]}/publish/{product[type]}/{product[name]}/v{version:0>3}/{project[code]}_{folder[name]}_{product[name]}_v{version:0>3}<_{output}><.{frame:0>4}><_{udim}>.{ext}"
        }
    }
}
Detail: 1 validation error for RepresentationPostModel
name
  string does not match regex "^[a-zA-Z0-9_]([a-zA-Z0-9_\.\-]*[a-zA-Z0-9_])?$" (type=value_error.str.regex; pattern=^[a-zA-Z0-9_]([a-zA-Z0-9_\.\-]*[a-zA-Z0-9_])?$).

This is an example where e.g. the extractor fails to retrieve the extension because it's expecting a list of files, not a string.

Additional context:

No response

[cuID:AY-4795]

Bug: Wrong colorspace value in colorspace anatomy template token

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior:

Originally metioned on Discord channel here

Olivier Osotimehin (FixStudio): the only thing is that the transcoded element (mp4, thumbnail jpg ) will get the colorspace of the original source and not the transcoded colorsapce
[19:16]Olivier Osotimehin (FixStudio): so it's a start : )
[19:17]Olivier Osotimehin (FixStudio): i suppose it's the same thing in ayon
[19:21]Olivier Osotimehin (FixStudio): we will have this kind of naming : /Assets/test/publish/render/renderSurfaceMainbeauty/v010/test_surf_renderSurfaceMain_beauty_h264_exr_ACES-_ACEScg_v010_h264.mp4

Expected Behavior:

Reviewable files will have appropriate ODT reflecting colorspace baked into pixels.

Version

1.0.0

What platform you are running on?

Windows, Linux / Centos, Linux / Ubuntu, Linux / RedHat, MacOS

Steps To Reproduce:

  1. activate Colormanagement on core adon with ACES config
  2. Add {colorspace} token as part of anatomy publish template
  3. publish anything set as review product type or add review to your product publishing instance families
  4. notice that colorspace in name of file is reflecting original colorspace of used image sequence source.

Are there any labels you wish to add?

  • I have added the relevant labels to the bug report.

Relevant log output:

No response

Additional context:

No response

[cuID:OP-8380]

Expose loaders enabled state to settings

Is there an existing issue for this?

  • I have searched the existing issues.

Please describe the feature you have in mind and explain what the current shortcomings are?

Similar to #361 but for global loaders/actions like Copy File.

How would you imagine the implementation of the feature?

See #361

Are there any labels you wish to add?

  • I have added the relevant labels to the enhancement request.

Describe alternatives you've considered:

No response

Additional context:

No response

Workfiles: Saving artist note workfile_info id error

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior:

In workfiles tool when saving an artist note I sometimes get this error:

# Traceback (most recent call last):
#   File "E:\dev\ayon-core\client\ayon_core\tools\workfiles\widgets\side_panel.py", line 107, in _on_save_click
#     self._controller.save_workfile_info(
#   File "E:\dev\ayon-core\client\ayon_core\tools\workfiles\control.py", line 448, in save_workfile_info
#     self._workfiles_model.save_workfile_info(
#   File "E:\dev\ayon-core\client\ayon_core\tools\workfiles\models\workfiles.py", line 702, in save_workfile_info
#     self._entities_model.save_workfile_info(
#   File "E:\dev\ayon-core\client\ayon_core\tools\workfiles\models\workfiles.py", line 547, in save_workfile_info
#     workfile_info["id"],
# KeyError: 'id'

It does seem to save the note - but it does error.

Expected Behavior:

No errors.

Version

1.0.0

What platform you are running on?

Windows

Steps To Reproduce:

  1. Open Workfile tool
  2. Press "Save As" to create a new save.
  3. For the new workfile, save an artist note.

(Tested in Maya 2024)

Are there any labels you wish to add?

  • I have added the relevant labels to the bug report.

Relevant log output:

# Traceback (most recent call last):
#   File "E:\dev\ayon-core\client\ayon_core\tools\workfiles\widgets\side_panel.py", line 107, in _on_save_click
#     self._controller.save_workfile_info(
#   File "E:\dev\ayon-core\client\ayon_core\tools\workfiles\control.py", line 448, in save_workfile_info
#     self._workfiles_model.save_workfile_info(
#   File "E:\dev\ayon-core\client\ayon_core\tools\workfiles\models\workfiles.py", line 702, in save_workfile_info
#     self._entities_model.save_workfile_info(
#   File "E:\dev\ayon-core\client\ayon_core\tools\workfiles\models\workfiles.py", line 547, in save_workfile_info
#     workfile_info["id"],
# KeyError: 'id'

Additional context:

No response

Houdini: Add 'AYON_' prefix to all instance keys

Is there an existing issue for this?

  • I have searched the existing issues.

Please describe the feature you have in mind and explain what the current shortcomings are?

While testing #113 a conflict happened with Ayon parameters as one of the parameters productName was used natively in Karma ROP node. more info read #113 (comment)

So, the problem was solved but we should consider prefixing all parameters as mentioned by @BigRoy
#115 (comment)

How would you imagine the implementation of the feature?

Here's an example by BigRoy
#123 (comment)

Are there any labels you wish to add?

  • I have added the relevant labels to the enhancement request.

Describe alternatives you've considered:

No response

Additional context:

These PRs were made to address this issue.. But, I'm making this issue as it took longer than I thought and needed a lot of testing.
#123
#124

[cuID:AY-2542]

Maya: Animation FBX Export feedback

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior:

When publishing animation from Maya, if FBX extraction is enabled but rig isn't set properly (content of sets), Extract Animation FBX (ExtractFBXAnimation) will just inform you in the log, but that is all and the publishing will continue. Result is, that your version is missing FBX representation then and you never know until someone tries to use it.

These are the problematic lines:

self.log.debug(
"Top group of animated skeleton not found in "
"{}.\nSkipping fbx animation extraction.".format(skeleton_set))
return

Expected Behavior:

There should be validator that will trigger on this condition that is now causing "skipping' behaviour in the Extractor. And if it is really soft-fail condition, then it should at least produce warning.

Version

1.0.0

What platform you are running on?

Windows

Steps To Reproduce:

  1. Create rig in Maya that fulfills this condition (top group is not found)
  2. Publish animation with that rig with FBX workflow enabled.

Are there any labels you wish to add?

  • I have added the relevant labels to the bug report.

Relevant log output:

DEBUG: Top group of animated skeleton not found in ['robot_rigMain_01_:rigMain_skeletonAnim_SET'].
Skipping fbx animation extraction.

Additional context:

No response

[cuID:AY-4757]

Enhancement: Callbacks and groups with Publisher attributes

Is there an existing issue for this?

  • I have searched the existing issues.

Please describe the feature you have in mind and explain what the current shortcomings are?

In publisher, both creator and publish plugins can define attributes that can be set to control specifics of the publishing process. Right now, all those attributes are basically standalone without having any connection to others.

We need to define relationship between individual attributes, so changing value of one can affect the whole group (or other groups, or other controls).

How would you imagine the implementation of the feature?

Since attributes are defined in individual plugins there are few things that needs to be implemented to overcome this:

  • attribute identifier: to be able to reference one attribute from somewhere else
  • callbacks: ability for plugin to define custom callback to be called when some attribute state is changed (connected to event system). Those callbacks should be able to report back to UI - for example to report invalid state.
  • labeling: show what controls belongs together, either plugin-wise, or logical group related

Are there any labels you wish to add?

  • I have added the relevant labels to the enhancement request.

Describe alternatives you've considered:

No response

Additional context:

Rreferences

ynput/ayon-workgroups#4

[cuID:AY-2420]

Loader: Optimize refresh - slowdown due to site sync queries per product

Is there an existing issue for this?

  • I have searched the existing issues.

Please describe the feature you have in mind and explain what the current shortcomings are?

Compared to the OpenPype loader the AYON loader is much slower to refresh.

I traced a big part of the issue for us to these lines of code.

For many products under a folder this is what makes the loader very slow for me compared to OpenPype's loader. It's because these get called per product, one by one. Resulting in many queries.

One call to _set_version_data_to_product_item for me takes +/-0.126 seconds (or at least anywhere between 0.11 and 0.15 seconds) and for folders with e.g. 40 products (which isn't unlikely) this takes a whopping 40x 0.126 seconds = 5 seconds.

Note that even without these calls there are quite a few calls made to the database but resolving this reduces it by quite a large percentage already - but especially shaves of most of the time spent. I think the other remaining logic for me takes approx. 0.5s or so.

How would you imagine the implementation of the feature?

  1. If Site Sync is disabled do not make these queries that are all site sync related
  2. If Site Sync is enabled do not query these one by one but in full
  • But even better, relay these to a secondary thread that only refreshes this data in a batch after the initial load, since it's not necessarily the primary data of concern for the loader.

Also, preferably this logic is inside the Site Sync addon or alike and 'provided' by the addon as data to the loader for visualizing - so that an addon can extend the Loader UI. However, that's a much bigger effort than just streamlining the queries - and especially disabling them to begin with when site sync is not enabled (or even installed).

Are there any labels you wish to add?

  • I have added the relevant labels to the enhancement request.

Describe alternatives you've considered:

Kill it just on our end (commenting those lines of code or alike)

Additional context:

No response

Remove SiteSync from integrate.py

Is there an existing issue for this?

  • I have searched the existing issues.

Please describe the feature you have in mind and explain what the current shortcomings are?

It should be possible to completely remove all occurrences of SiteSync from integrate.py.

How would you imagine the implementation of the feature?

It should be possible to move logic to integrate_site_sync as we know published instances there.

Maybe it would be necessary to keep explicit set studio in integrate.py (as Site Sync might not be enabled at all and not sure if presence of studio is not expected, or it could be more complicated to set Sync later on running project. If the studio is there, all artists could download assets if the Sync would be configured. Without it there would be need to seed running project.

Are there any labels you wish to add?

  • I have added the relevant labels to the enhancement request.

Describe alternatives you've considered:

No response

Additional context:

No response

[cuID:AY-4218]

Delivery not working in 0.3.0-dev.1

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior:

I have a delivery setup like this:

{
  "name": "main",
  "directory": "{root[work]}/{project[name]}/delivery/{yyyy}-{mm}-{dd}/{hierarchy}/{folder[name]}/",
  "file": "{project[code]}_{folder[name]}_{task[short]}_{@version}<_{output}><.{@frame}>.{ext}"
}

but when I try to delivery I'm getting this error:

  File "C:\Users\jacob\Syncthing\Projekt\Ayon\ayon-core\client\ayon_core\plugins\load\delivery.py", line 285, in _get_templates
    path_template = value["path"]
KeyError: 'path'

It looks like path should be directory from what I can see in the code https://github.com/ynput/ayon-core/blob/85e58545af4b4784b0f73e9126434bfb0fe30263/client/ayon_core/plugins/load/delivery.py#L288C24-L288C37
If I change it path to directory I'm now getting this error:

Traceback (most recent call last):
  File "C:\Users\jacob\Syncthing\Projekt\Ayon\ayon-core\client\ayon_core\plugins\load\delivery.py", line 49, in load
    dialog = DeliveryOptionsDialog(contexts, self.log)
  File "C:\Users\jacob\Syncthing\Projekt\Ayon\ayon-core\client\ayon_core\plugins\load\delivery.py", line 166, in __init__
    self._update_template_value()
  File "C:\Users\jacob\Syncthing\Projekt\Ayon\ayon-core\client\ayon_core\plugins\load\delivery.py", line 345, in _update_template_value
    self.template_label.setText(template_value)
TypeError: 'PySide2.QtWidgets.QLabel.setText' called with wrong argument types:
  PySide2.QtWidgets.QLabel.setText(dict)
Supported signatures:
  PySide2.QtWidgets.QLabel.setText(str)

So if I change self.template_label.setText(template_value) to self.template_label.setText(template_value["directory"]) in https://github.com/ynput/ayon-core/blob/85e58545af4b4784b0f73e9126434bfb0fe30263/client/ayon_core/plugins/load/delivery.py#L353C32-L353C49 the delivery ui works as expected

Expected Behavior:

No response

Version

1.0.0

What platform you are running on?

Windows

Steps To Reproduce:

Add a delivery preset.
Try to deliver something in the Tray Loader

Are there any labels you wish to add?

  • I have added the relevant labels to the bug report.

Relevant log output:

No response

Additional context:

No response

Templated Workfile build doesn't work for AE

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior:

AE can add Create and Load placeholders for Templated Workfile builder, but it doesn't seem to be able to resolve them (during Build Workfile from template)

Expected Behavior:

LoadPlaceholder should be replaced by loaded item, CreatePlaceholder should be replaced by new created instance.

Version

1.0.0

What platform you are running on?

Windows

Steps To Reproduce:

Build Workfile template in AE menu via Create placeholder ![image](https://github.com/ynput/ayon-core/assets/4457962/f8d4066b-1a72-4c66-a07d-89e63d2f475e) Save it somewhere and update ayon+settings://aftereffects/templated_workfile_build/profiles Start AE on non-existent workfile, or useBuild Workfile from template` in AE extension menu

Are there any labels you wish to add?

  • I have added the relevant labels to the bug report.

Relevant log output:

No response

Additional context:

No response

Workfiles: Save As, add Comment / Artist Note field

Is there an existing issue for this?

  • I have searched the existing issues.

Please describe the feature you have in mind and explain what the current shortcomings are?

Currently, on existing workfiles an artist can save "Artist notes" however they remain largely unused because you rarely touch that for files that previously existed. However, it would be very useful when 'saving a new version' to also be able to specify the artist note.

E.g somewhere in this dialog:
image

How would you imagine the implementation of the feature?

Add a "note", "comment" or "artist note" field in the dialog shown above.

Are there any labels you wish to add?

  • I have added the relevant labels to the enhancement request.

Describe alternatives you've considered:

Alternative is to save first, then specify the artist note manually after.

Additional context:

Noticed a comment field in this video and figured we were lacking that.

Enhancement: Implement site overrides for dirmap

Is there an existing issue for this?

  • I have searched the existing issues.

Please describe the feature you have in mind and explain what the current shortcomings are?

Dirmap functionality depended on overrides from Local settings which are not fully implemented in Ayon. (see https://github.com/ynput/ayon-core/pull/83/files#diff-23cb788c41b1cc298c79a12671cc578dbda848dab29181a199ee8f1304d8b75dR184)

How would you imagine the implementation of the feature?

Not sure if this should depend on Site Sync, or on Roots tab values in Ayon server.

Are there any labels you wish to add?

  • I have added the relevant labels to the enhancement request.

Describe alternatives you've considered:

No response

Additional context:

No response

[cuID:OP-8381]

Substance Painter: Customize setting for the artist

          > It's necessary for the manager/TD to align the project settings so that it is more unified when the texture exported from substance and used it in other DCCs

I guess fine with me - then maybe later I might expose a setting that allows to enable customization by the artist instead of picking from presets.

Originally posted by @BigRoy in #400 (comment)

Bug: Publishing renders from Maya fails

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior:

Creating simple rendering instance and publishing will result in Collect Inputs crashing (see log below).

This stems from Maya classic - naming of render layers: rs_Main vs. Main.

Expected Behavior:

Collector shouldn't crash and it should use the correct name. These lines are expecting rs_ prefixed layer name:

members = cmds.editRenderLayerMembers(renderlayer,
query=True,
fullNames=True) or []

But it is getting it from here:

and it is now producing not prefixed name.

Version

1.0.0

What platform you are running on?

Windows

Steps To Reproduce:

  1. Run Maya 2024
  2. Create render instance (I've didn't created any render layers beforhand, just relied on default Main)
  3. Publish

Are there any labels you wish to add?

  • I have added the relevant labels to the bug report.

Relevant log output:

File "C:\Users\annat\AppData\Local\Ynput\AYON\dependency_packages\ayon_2402271655_windows.zip\dependencies\pyblish\plugin.py", line 527, in __explicit_process
    runner(*args)
  File "C:\Users\annat\Documents\Projects\Ayon\ayon-core\client\ayon_core\hosts\maya\plugins\publish\collect_inputs.py", line 131, in process
    containers = self._collect_renderlayer_inputs(scene_containers,
  File "C:\Users\annat\Documents\Projects\Ayon\ayon-core\client\ayon_core\hosts\maya\plugins\publish\collect_inputs.py", line 184, in _collect_renderlayer_inputs
    query=True,
RuntimeError: 'Main' is not a render layer.

Additional context:

This happended during testing of #113 but I don't think it is related

[cuID:AY-2541]

Enhancement: Display overriden vs. default values of attributes in publisher UI

Is there an existing issue for this?

  • I have searched the existing issues.

Please describe the feature you have in mind and explain what the current shortcomings are?

With attributes, there is no way to know if artist changed value on them from default.

How would you imagine the implementation of the feature?

This could be easily shown just by changing font-face or color. Something like:

foo: [bar] (default)
foo: [goo] (overriden)

Are there any labels you wish to add?

  • I have added the relevant labels to the enhancement request.

Describe alternatives you've considered:

No response

Additional context:

No response

[cuID:AY-2614]

Bug: Timeline reset doesn't work expected in 3dmax when reset frame range is performed

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior:

When accessing the AYON menu and clicking Set Frame Range, it only sets the frame ranges in render settings correctly while it doesn't set timeline accordingly to the database.
As it doesn't perform correctly, the repair action of the validator to check on frame range is broken and can't reset the frame range as expected.
The excerpt shows the errors after using repair action in validate frame range.

DEBUG:pyblish.pyblish.plugin.Action:Finding failed instances..
DEBUG:pyblish.pyblish.plugin.Action:Attempting repair for instance: pointcacheMain ...
DEBUG:GlobalServerAPI:Response <RestApiResponse [200]>
DEBUG:pyblish.pyblish.plugin.Action:Attempting repair for instance: reviewMain ...
DEBUG:GlobalServerAPI:Response <RestApiResponse [200]>

Expected Behavior:

It should set the correct frame ranges in render settings and timeline.

Version

1.0.0

What platform you are running on?

Windows

Steps To Reproduce:

Set Frame Range

  1. Launch Max via AYON
  2. Go to AYON menu
  3. Click Set Frame Range
  4. It sets the frame range in render setting correctly but not the timeline

Validate Frame Range

  1. Create pointcache/render/tycache/review instance
  2. Make sure Validate Frame Range turning on
  3. When performing validation and the frame range in the scene doesn't match with the DB, it will error out
  4. Use repair action to fix but fails to fix the frame range

Are there any labels you wish to add?

  • I have added the relevant labels to the bug report.

Relevant log output:

No response

Additional context:

No response

[cuID:OP-8383]

Maya: Rendering multilayer EXR images always resulting into names with "_beauty" suffix

Is there an existing issue for this?

  • I have searched the existing issues.

Please describe the feature you have in mind and explain what the current shortcomings are?

When rendering from maya host in Deadline and having set merge AOVs option leading to single image file containing all AOVs results into rendered image with <filename>_beauty.exr even tho there is no reason to append the _beauty suffix as it contains all RGBA data not just beauty component.

Currently there is now way to produce renders without _beauty suffix for multilayer EXR.

Here are staged files when rendering (all seems normal):

Screenshot 2024-04-22 135914

And when rendered and published (containing the "_beauty" suffix which cant be turned off)

Screenshot 2024-04-22 140357

How would you imagine the implementation of the feature?

When rendering into multilayer EXR containing all AOVs (merged) there should not be appended _beauty suffix at all. But only when multiple files being produced and such file might contain just the beauty component.

There should be Template naming used for such a task as now it is not ...being somewhat hardcoded as seen here

Are there any labels you wish to add?

  • I have added the relevant labels to the enhancement request.

Describe alternatives you've considered:

No response

Additional context:

No response

Houdini: Load Alembic - disable automatic unpacking

Is there an existing issue for this?

  • I have searched the existing issues.

Please describe the feature you have in mind and explain what the current shortcomings are?

Loading an Alembic into Houdini via the loader automatically adds an "Unpack" and "Normal" node which a long time ago was added for ease of access to the data (by artists at our studio).

However, @fabiaserra stated here that it might not be a good idea to keep that around and instead rely on automating less and instead leave it up to Houdini artists to manage the data. In essence, not creating those additional nodes on load.

How would you imagine the implementation of the feature?

Since it has been there for so long we might want to consider backwards compatibility. Just removing the logic for creation of those nodes should still work fine with existing loaded entries (they will just keep the nodes around) so it should be trivial to be 'forward' compatible.

The real question becomes, do we ever still want to keep the logic that it automatically creates it for you.

We could add it as "Options" on the Loader (little option box on the loader) or could make it a Project Settings to enable/disable the logic.

Are there any labels you wish to add?

  • I have added the relevant labels to the enhancement request.

Describe alternatives you've considered:

No response

Additional context:

No response

[cuID:AY-4796]

Promote information to be shown on instance label in Publisher

We need to be able to display more information on instance label in publisher than just it's name.

image

In this case for example renderCompositingMain could show there also frame range or some badge that review will be created.

What information shown there could be decided by plugins themselves. But how to solve conflicting interests, available ways to show things, etc. is up to the implementation.

[cuID:AY-2474]

Resolve Clip Load - Slate support

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior:

Missing port of ynput/OpenPype#6126

Expected Behavior:

No response

Version

1.0.0

What platform you are running on?

Windows

Steps To Reproduce:

See original PR

Are there any labels you wish to add?

  • I have added the relevant labels to the bug report.

Relevant log output:

No response

Additional context:

No response

Maya: Alembic farm publishing working?

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior:

Need to investigate whether farm publishing still work for alembics in Maya.

Ideally with a test as well.

Expected Behavior:

No response

Version

1.0.0

What platform you are running on?

Windows

Steps To Reproduce:

  1. Publish animation/pointcache in Maya with farm enabled.
  2. Verify the alembic is extracted on the farm.

Are there any labels you wish to add?

  • I have added the relevant labels to the bug report.

Relevant log output:

No response

Additional context:

No response

Enhancement: Empty `out_SET` in Maya.

Is there an existing issue for this?

  • I have searched the existing issues.

Please describe the feature you have in mind and explain what the current shortcomings are?

When publishing a rig, if the out_SET is empty it can cause issues when publishing the animation.

How would you imagine the implementation of the feature?

We could either put in a validator for the rig publishing or allow an empty out_SET when publishing the animation.

Are there any labels you wish to add?

  • I have added the relevant labels to the enhancement request.

Describe alternatives you've considered:

No response

Additional context:

No response

[cuID:OP-8382]

Houdini: Combination of two extensions for loaders in pointcache product type

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior:

In Houdini, we are publishing the pointcache in either bgeo or abc format. We have two loaders(bgeo and abc) to load the cache in different formats respectively. These cause the issues of updating or switching assets if we dont have both bgeo or abc format published. The issues also block publishing assets with the asset, which is not at the latest version, where the validator (Validate Outdated Container) would check on the outdated container to ensure the version is at the latest.

Expected Behavior:

We expect to have just one loader plugin for pointcache product type which loads bgeo or abc format for the scene inventory tools to be concise on which format they are going to update/switch in pointcache product type

Version

1.0.0

What platform you are running on?

Windows

Steps To Reproduce:

  1. Publish pointcache(bgeo) wihout pointcache(abc)
  2. Publish pointcache(abc) without pointcache(bgeo)
  3. Have a new scene
  4. Load the pointache product type
  5. Go to Manage
  6. Update or Change Versions of the assets
  7. You will get the error below
Traceback (most recent call last):
  File "D:\ayon-core\client\ayon_core\tools\sceneinventory\view.py", line 250, in <lambda>
    lambda: self._update_containers(items, version=-1)
  File "D:\ayon-core\client\ayon_core\tools\sceneinventory\view.py", line 822, in _update_containers
    update_container(item, item_version)
  File "D:\ayon-core\client\ayon_core\pipeline\load\utils.py", line 508, in update_container
    repre_name
ValueError: Representation 'abc' wasn't found on requested version

or

Traceback (most recent call last):
  File "D:\ayon-core\client\ayon_core\tools\sceneinventory\view.py", line 250, in <lambda>
    lambda: self._update_containers(items, version=-1)
  File "D:\ayon-core\client\ayon_core\tools\sceneinventory\view.py", line 822, in _update_containers
    update_container(item, item_version)
  File "D:\ayon-core\client\ayon_core\pipeline\load\utils.py", line 508, in update_container
    repre_name
ValueError: Representation 'bgeo' wasn't found on requested version

Are there any labels you wish to add?

  • I have added the relevant labels to the bug report.

Relevant log output:

No response

Additional context:

No response

[cuID:AY-4794]

Maya: Extracting Review or Thumbnail can't set transparency to "preset"

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior:

Creating a review from Maya will show this in the script editor:

Cannot setAttr ('hardwareRenderingGlobals.transparencyAlgorithm', 'preset')!

This hints at that the "preset" value is not correctly converted to the relevant Maya value for whatever is the 'preset' defined in settings.

Expected Behavior:

I'd expect no errors, and transparency algorithm should be applied correctly.

Version

1.0.0

What platform you are running on?

Windows

Steps To Reproduce:

  1. Create camera with review instance
  2. Publish

The publish will succeed - but the mentioned 'error' line will be visible in script editor.

Are there any labels you wish to add?

  • I have added the relevant labels to the bug report.

Relevant log output:

Cannot setAttr ('hardwareRenderingGlobals.transparencyAlgorithm', 'preset')!

Additional context:

No response

Publisher: Support list attributes.

Is there an existing issue for this?

  • I have searched the existing issues.

Please describe the feature you have in mind and explain what the current shortcomings are?

Some attributes are best visualized as lists.

How would you imagine the implementation of the feature?

Could be a collection of fields whose amount can be dynamically changed.

Are there any labels you wish to add?

  • I have added the relevant labels to the enhancement request.

Describe alternatives you've considered:

No response

Additional context:

No response

Bug: Disable Creators in the Ayon Settings does not work for all creators (aka publish types)

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior:

When disabling any Creators it is still available in the Publisher even tho it shouldnt.
image

When disabling all of the Creators in Maya host it still shows these even tho it should not.

Screenshot 2024-03-13 101553

Expected Behavior:

When Creator set to OFF, it should not be available for creation in the Publisher within a host app.

Version

1.0.0

What platform you are running on?

Windows

Steps To Reproduce:

  1. Disable all Creators in the host app settings aka addon
  2. Launch DCC host app and use Create tool in Ayon toolset
  3. You should not see any available creators

Are there any labels you wish to add?

  • I have added the relevant labels to the bug report.

Relevant log output:

No response

Additional context:

No response

[cuID:AY-3809]

Workfiles tool: Workfile selected in different task/folder is unreliable (not picking latest file)

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior:

When switching in the workfiles tool from one folder or task to another and the user previously had a workfile selected it will also selected a workfile in the new context you've switched to. However, it seems to pick one somewhat randomly?

If I select e.g. v001 file in modeling and go to lookdev - then it selects a different file than if I had say v004 selected in modeling and switch to lookdev. It's a bit unclear why it picks which file, but it being inconsistent is bad.

The issue we're facing is that quite frequently artists click into another task/folder assuming the file picked there automatically is the latest, click open - but only a little later after working for a bit they realize they are actually in a much older file.

Expected Behavior:

Preferably the behavior is consistent.

But even better if it automatically selects what you expect it to select, which is usually the latest modified file. I believe that's also the behavior the way it was in OpenPype workfiles tool.

Version

1.0.0

What platform you are running on?

Windows

Steps To Reproduce:

  1. Switch between different folders and tasks with a workfile selected.

Are there any labels you wish to add?

  • I have added the relevant labels to the bug report.

Relevant log output:

No response

Additional context:

No response

Workfiles tool: Does not refresh on reopen, displays old data

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior:

When reopening the workfiles tool the files on disk aren't refreshed and e.g. still show the older time stamps for the current file than your last save (e.g. pressing CTRL+S or saving via other tools)

image

Note how my workfile is v016 after the incrementing due to doing a publish - but the workfiles tool not showing it after reopening the UI.

Expected Behavior:

Re-opening the workfiles tool should directly display the latest, because after closing down the Workfiles tool once the user isn't really anticipating it later still showing that outdated data. (e.g. when opening it a few hours later)

Version

1.0.0

What platform you are running on?

Windows

Steps To Reproduce:

  1. Open workfiles tool
  2. Close it
  3. Create an extra file in the workfiles folder (or increment your current file by publishing, or update date modified by pressing control + S)
  4. New files or updated timestamps do not display until manually refreshing.

Are there any labels you wish to add?

  • I have added the relevant labels to the bug report.

Relevant log output:

No response

Additional context:

No response

Blender: Extract Blend allow to "compress" the output file

Is there an existing issue for this?

  • I have searched the existing issues.

Please describe the feature you have in mind and explain what the current shortcomings are?

When we publish something from Blender, I just realized that the resulting .blend file is a lot bigger than the workfile from which it originates.
It's because the extractor uses default arguments from bpy.data.libraries.write, which means the file is written as uncompressed.

Could you please add an option to enable compression ?

See:

So basically exposing the compress argument to be either True or False.

Does that influence anything else?

Both compressed and uncompressed blend files are non-ascii (not human readable) but one is (likely) slower to read/write whereas the other has a better filesize.

So companies may prefer the current uncompressed way. So the perfect solution would be to have an option in Studio Settings-->Blender so that we can enable or disable that compression.

As Alain Xerri states on Discord:

Without compression it's still a binary, so we cannot read it anyway in case there is a problem.
So I don't know why Blender decided to have uncompressed as a default (but on some forums people argue that compressed files take longer to be written by Blender, so maybe speed is the reason for uncompressed as default).


How would you imagine the implementation of the feature?

Add a Project Setting to enable or disable the "compress" argument, likely keeping the default off for backwards compatibility.

Are there any labels you wish to add?

  • I have added the relevant labels to the enhancement request.

Describe alternatives you've considered:

No response

Additional context:

Discord conversation where Alain Xerri requested this

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.