ynput / ayon-core Goto Github PK
View Code? Open in Web Editor NEWLicense: Apache License 2.0
License: Apache License 2.0
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.
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
.
We could add that list to Settings but then we just change the place where we maintain list of product types.
No response
[cuID:AY-4138]
We are missing the same validator that was already made for Maya and Max (#58).
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.
No response
No response
[cuID:AY-3641]
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.
The container can stores the assets even after their renames.
1.0.0
Windows
No response
No response
[cuID:AY-5160]
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.
Manage functions should work as expected and not producing any unwanted entities in the active workfile.
1.0.0
Windows
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)
No response
No response
[cuID:AY-3686]
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.
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.
No response
No response
[cuID:AY-3895]
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'
No response
1.0.0
Windows
No response
No response
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.
Image planes (and the rest of the scene) should remain as they were before to the publish.
1.0.0
Windows
No response
No response
When nothing is selected in hiero timeline ls
function does crash.
It should not crash.
1.0.0
Windows
from ayon_core.hosts.hiero.api import ls
ls()
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'
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:
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.
It should be reported once - not twice.
No response
No response
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.
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.
No response
No response
[cuID:AY-2539]
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
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.
No response
No response
When using Extract Geometry (Alembic)
as Optional it is not shown in the Publisher UI so user cant modify it (for ie disable it)
When seen in the Publisher on the model
publish and camera
instances
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.
1.0.0
Windows
Extract Geometry (Alembic)
Optional
Model
and Camera
No response
No response
[cuID:AY-3685]
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
.
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
I have no suggestions.
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
Windows
No response
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]
asdfasdfasdf
asdfasdfasddf
1.0.0
Linux / Ubuntu
adasdfasd
asdfasdf
asdfasdf
[cuID:AY-1816]
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.
It's hard for me to tell how it should be implemented but instead let me show some experiments and how to reproduce them.
Firstly, Remove this line
To reproduce this one:
raise PublishValidationError("Render failed or interrupted",
title="Failed to render {}".format(ropnode),
description="## Render failed or interrupted",
detail="{}".format(exc)
)
Another test with VDB extraction
To reproduce this one:
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)
)
On the other hand interrupting VDB export doesn't raise error as the pervious example.
KnownPublishError
update the report labelI 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
I'm not aware of how this should be done but I was only trying to create the following proof of concept.
No response
No response
It'd be nice if Houdini nodes and publisher attributes are in sync.
Currently, I have no simple suggestions.
There was an experimental PR #418 but it increased the complexity of the plugin.
No response
This issue showed up in this comment #328 (comment)
and it blocked #328 PR.
[cuID:AY-5020]
Sometimes context is not changed when changing context with workfile tool
It should change the asset context.
Launcher 1.0.3-dev.1
Ayon Core 0.3.0-dev.1
Ayon Server 1.0.4+202402231406
Windows
No response
I'm not sure if this problem happens because I'm constantly testing new PRs and updating my ayon-core
clone.
[cuID:AY-3851]
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])
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.
1.0.0
Windows
No response
No response
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.
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.
A button that selects the current folder. The user should still have to press OK in the window.
No response
No response
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:
ayon-core/client/ayon_core/plugins/publish/extract_color_transcode.py
Lines 89 to 90 in 39816e4
also this can skip it:
ayon-core/client/ayon_core/plugins/publish/extract_color_transcode.py
Lines 98 to 100 in 39816e4
but this will trigger on all representations in the instance no matter if they were processed or not:
ayon-core/client/ayon_core/plugins/publish/extract_color_transcode.py
Lines 208 to 211 in 39816e4
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.
1.0.0
Windows
Enable and configure plugin like this (it doesn't really matter as long as it triggers in publishing):
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
No response
Note
OpenPype issue ynput/OpenPype#6255 - we should backport this fix
[cuID:AY-4205]
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.
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.
1.0.0
Windows
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.
No response
[cuID:AY-4795]
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
Reviewable files will have appropriate ODT reflecting colorspace baked into pixels.
1.0.0
Windows, Linux / Centos, Linux / Ubuntu, Linux / RedHat, MacOS
{colorspace}
token as part of anatomy publish templatereview
product type or add review
to your product publishing instance familiesNo response
No response
[cuID:OP-8380]
Similar to #361 but for global loaders/actions like Copy File
.
See #361
No response
No response
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.
No errors.
1.0.0
Windows
(Tested in Maya 2024)
# 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'
No response
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)
Here's an example by BigRoy
#123 (comment)
No response
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]
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:
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.
1.0.0
Windows
DEBUG: Top group of animated skeleton not found in ['robot_rigMain_01_:rigMain_skeletonAnim_SET'].
Skipping fbx animation extraction.
No response
[cuID:AY-4757]
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).
Since attributes are defined in individual plugins there are few things that needs to be implemented to overcome this:
No response
[cuID:AY-2420]
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.
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).
Kill it just on our end (commenting those lines of code or alike)
No response
It should be possible to completely remove all occurrences of SiteSync from integrate.py
.
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.
No response
No response
[cuID:AY-4218]
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
No response
1.0.0
Windows
Add a delivery preset.
Try to deliver something in the Tray Loader
No response
No response
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
)
LoadPlaceholder should be replaced by loaded item, CreatePlaceholder should be replaced by new created instance.
1.0.0
Windows
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 use
Build Workfile from template` in AE extension menu
No response
No response
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.
Add a "note", "comment" or "artist note" field in the dialog shown above.
Alternative is to save first, then specify the artist note manually after.
Noticed a comment field in this video and figured we were lacking that.
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)
Not sure if this should depend on Site Sync, or on Roots
tab values in Ayon server.
No response
No response
[cuID:OP-8381]
> 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)
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
.
Collector shouldn't crash and it should use the correct name. These lines are expecting rs_
prefixed layer name:
ayon-core/client/ayon_core/hosts/maya/plugins/publish/collect_inputs.py
Lines 183 to 185 in 7356863
But it is getting it from here:
and it is now producing not prefixed name.
1.0.0
Windows
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.
This happended during testing of #113 but I don't think it is related
[cuID:AY-2541]
With attributes, there is no way to know if artist changed value on them from default.
This could be easily shown just by changing font-face or color. Something like:
foo: [bar] (default)
foo: [goo] (overriden)
No response
No response
[cuID:AY-2614]
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]>
It should set the correct frame ranges in render settings and timeline.
1.0.0
Windows
Set Frame Range
Set Frame Range
Validate Frame Range
Validate Frame Range
turning onNo response
No response
[cuID:OP-8383]
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):
And when rendered and published (containing the "_beauty" suffix which cant be turned off)
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
No response
No response
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.
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.
No response
No response
[cuID:AY-4796]
We need to be able to display more information on instance label in publisher than just it's name.
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]
Missing port of ynput/OpenPype#6126
No response
1.0.0
Windows
See original PR
No response
No response
Need to investigate whether farm publishing still work for alembics in Maya.
Ideally with a test as well.
No response
1.0.0
Windows
farm
enabled.No response
No response
When publishing a rig, if the out_SET
is empty it can cause issues when publishing the animation.
We could either put in a validator for the rig publishing or allow an empty out_SET
when publishing the animation.
No response
No response
[cuID:OP-8382]
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.
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
1.0.0
Windows
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
No response
No response
[cuID:AY-4794]
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.
I'd expect no errors, and transparency algorithm should be applied correctly.
1.0.0
Windows
The publish will succeed - but the mentioned 'error' line will be visible in script editor.
Cannot setAttr ('hardwareRenderingGlobals.transparencyAlgorithm', 'preset')!
No response
Some attributes are best visualized as lists.
Could be a collection of fields whose amount can be dynamically changed.
No response
No response
When disabling any Creator
s it is still available in the Publisher
even tho it shouldnt.
When disabling all of the Creators
in Maya
host it still shows these even tho it should not.
When Creator
set to OFF
, it should not be available for creation in the Publisher
within a host app.
1.0.0
Windows
Create
tool in Ayon
toolsetNo response
No response
[cuID:AY-3809]
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.
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.
1.0.0
Windows
No response
No response
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)
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.
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)
1.0.0
Windows
No response
No response
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).
Add a Project Setting to enable or disable the "compress" argument, likely keeping the default off for backwards compatibility.
No response
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.