Skip to content

🏛️Product base types: settings for creators and usage - #266

Merged
antirotor merged 15 commits into
developfrom
feature/add-product-type-settings
Jun 5, 2026
Merged

🏛️Product base types: settings for creators and usage#266
antirotor merged 15 commits into
developfrom
feature/add-product-type-settings

Conversation

@antirotor

@antirotor antirotor commented Feb 18, 2026

Copy link
Copy Markdown
Member

Changelog Description

Changing the usage of product_type to product_base_type and adding support to customize product type in creator settings.

Additional notes:

There is lot to be refactored, like imprint functions on the loaders, how render instances are created on-the-fly, etc.

Testing notes:

Warning

You'll need ynput/ayon-core 1.8 and higher

  • Publishing and loading should work as before
  • When you define new product type in the settings, you should be able to see new items in the publisher.
  • Product name should work ok, you should be able to see changes if/when appropriate token is used in the template
  • Publishing of instances created with new product type and loading them should work

@antirotor antirotor self-assigned this Feb 18, 2026
@antirotor antirotor added type: enhancement Improvement of existing functionality or minor addition sponsored This is directly sponsored by a client or community member bump minor labels Feb 18, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This pull request migrates the codebase from using product_type to product_base_type as part of a broader architectural change to support customizable product types in creator settings. The PR updates the AYON Core dependency to version 1.8.0 or higher and AYON Server to version 1.10.0 or higher, which are required for this functionality.

Changes:

  • Added ProductTypeItemModel to server settings for configuring custom product types in creator plugins
  • Migrated all loader and creator plugins to use product_base_type instead of product_type
  • Updated version requirements for AYON Core (>=1.8.0), AYON Server (>1.10.0), and AYON Deadline (>=0.7.0)

Reviewed changes

Copilot reviewed 24 out of 24 changed files in this pull request and generated 10 comments.

Show a summary per file
File Description
server/creators.py Added ProductTypeItemModel and product_type_items field to BasicCreatorModel for customizable product types
package.py Updated version requirements for core, server, and deadline addons
client/ayon_unreal/plugins/publish/extract_layout.py Changed product_type to product_base_type in JSON element data
client/ayon_unreal/plugins/publish/create_farm_render_instances.py Updated to use product_base_type and productBaseType
client/ayon_unreal/plugins/publish/collect_render_files.py Updated to use product_base_type and productBaseType
client/ayon_unreal/plugins/load/load_yeticache.py Added product_base_types attribute with backward compatibility alias
client/ayon_unreal/plugins/load/load_uasset.py Added product_base_types with backward compatibility, updated imprint calls
client/ayon_unreal/plugins/load/load_staticmesh_fbx.py Refactored imprint method with type hints, docstring, and product_base_type support
client/ayon_unreal/plugins/load/load_staticmesh_abc.py Refactored imprint method with type hints, docstring, and product_base_type support
client/ayon_unreal/plugins/load/load_skeletalmesh_fbx.py Refactored imprint method with type hints, docstring, and product_base_type support
client/ayon_unreal/plugins/load/load_skeletalmesh_abc.py Refactored imprint method with type hints, docstring, and product_base_type support
client/ayon_unreal/plugins/load/load_layout_existing.py Updated to use product_base_type with fallback pattern for backward compatibility
client/ayon_unreal/plugins/load/load_layout.py Updated to use product_base_type with fallback pattern for backward compatibility
client/ayon_unreal/plugins/load/load_image_png.py Refactored imprint method with type hints, docstring, and product_base_type support
client/ayon_unreal/plugins/load/load_geometrycache_abc.py Refactored imprint method with type hints, docstring, and product_base_type support
client/ayon_unreal/plugins/load/load_camera.py Refactored imprint method with type hints and docstring
client/ayon_unreal/plugins/load/load_animation.py Refactored imprint method with type hints, docstring, and product_base_type support
client/ayon_unreal/plugins/load/load_alembic_animation.py Refactored imprint method with type hints, docstring, and product_base_type support
client/ayon_unreal/plugins/create/create_uasset.py Added product_base_type attribute with backward compatibility alias
client/ayon_unreal/plugins/create/create_staticmeshfbx.py Added product_base_type attribute with backward compatibility alias
client/ayon_unreal/plugins/create/create_render.py Added product_base_type attribute with backward compatibility alias
client/ayon_unreal/plugins/create/create_layout.py Added product_base_type attribute with backward compatibility alias
client/ayon_unreal/plugins/create/create_camera.py Added product_base_type attribute with backward compatibility alias
client/ayon_unreal/api/plugin.py Updated to use product_base_type, refactored caching logic for products, and added type hints

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread client/ayon_unreal/plugins/load/load_image_png.py Outdated
Comment thread client/ayon_unreal/plugins/load/load_skeletalmesh_fbx.py Outdated
Comment thread client/ayon_unreal/api/plugin.py Outdated
Comment thread client/ayon_unreal/plugins/load/load_image_png.py Outdated
Comment thread client/ayon_unreal/plugins/load/load_camera.py Outdated
Comment thread client/ayon_unreal/plugins/load/load_camera.py Outdated
Comment thread client/ayon_unreal/plugins/load/load_animation.py Outdated
Comment thread client/ayon_unreal/plugins/load/load_alembic_animation.py
Comment thread client/ayon_unreal/plugins/load/load_skeletalmesh_abc.py Outdated
Comment thread server/creators.py Outdated
Comment thread client/ayon_unreal/api/plugin.py Outdated
Comment thread client/ayon_unreal/api/plugin.py Outdated
Comment thread client/ayon_unreal/api/plugin.py Outdated
antirotor and others added 2 commits April 1, 2026 18:36
fix loaders and imprint renaming, support for legacy instances without product base type
Comment thread client/ayon_unreal/api/plugin.py Outdated
@antirotor
antirotor marked this pull request as ready for review June 2, 2026 13:20
@antirotor
antirotor requested a review from LiborBatek June 2, 2026 13:39
Comment thread client/ayon_unreal/api/plugin.py Outdated
Comment thread client/ayon_unreal/plugins/load/load_alembic_animation.py Outdated
Comment thread client/ayon_unreal/plugins/load/load_animation.py
Comment thread client/ayon_unreal/plugins/load/load_camera.py
Comment thread client/ayon_unreal/plugins/load/load_geometrycache_abc.py
Comment thread client/ayon_unreal/plugins/load/load_image_png.py
Comment thread client/ayon_unreal/plugins/load/load_layout.py Outdated
Comment thread client/ayon_unreal/plugins/load/load_layout_existing.py Outdated
Comment thread client/ayon_unreal/plugins/load/load_skeletalmesh_abc.py
Comment thread client/ayon_unreal/plugins/load/load_skeletalmesh_fbx.py
Comment thread client/ayon_unreal/plugins/load/load_staticmesh_abc.py
Comment thread client/ayon_unreal/plugins/load/load_staticmesh_fbx.py
Comment thread client/ayon_unreal/plugins/load/load_uasset.py
Comment thread client/ayon_unreal/plugins/load/load_yeticache.py
Comment thread client/ayon_unreal/plugins/publish/collect_render_files.py
Comment thread client/ayon_unreal/plugins/load/load_alembic_animation.py
Comment thread client/ayon_unreal/plugins/load/load_alembic_animation.py Outdated
Comment thread client/ayon_unreal/plugins/load/load_alembic_animation.py Outdated
@antirotor
antirotor requested review from iLLiCiTiT and moonyuet June 4, 2026 07:30
Comment thread client/ayon_unreal/api/plugin.py

@iLLiCiTiT iLLiCiTiT left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤞 approving

@LiborBatek LiborBatek left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am able to define and see my product types withing the Publisher UI...

Image

On the Layout note, I was able to succesfully load the Layout product following with Camera Animation so all good atm...

There are some errors in the console (enclosing but not sure if related at all)

LogEditorAssetSubsystem: Error: FindAssetData failed: Can't convert the path '/Game/Ayon/assets/' because it doesn't contain an asset name.
LogEditorAssetSubsystem: Error: FindAssetData failed: Can't convert the path '/Game/Ayon/assets/char/' because it doesn't contain an asset name.
LogEditorAssetSubsystem: Error: FindAssetData failed: Can't convert the path '/Game/Ayon/assets/char/combat_mech/' because it doesn't contain an asset name.
LogEditorAssetSubsystem: Error: FindAssetData failed: Can't convert the path '/Game/Ayon/assets/char/combat_mech/modelMain_v008/' because it doesn't contain an asset name.
LogEditorAssetSubsystem: Error: FindAssetData failed: Can't convert the path '/Game/Ayon/assets/char/spartan_halo/' because it doesn't contain an asset name.
LogEditorAssetSubsystem: Error: FindAssetData failed: Can't convert the path '/Game/Ayon/assets/char/spartan_halo/rigMain_v003/' because it doesn't contain an asset name.
LogEditorAssetSubsystem: Error: FindAssetData failed: Can't convert the path '/Game/Ayon/assets/char/star_fury/' because it doesn't contain an asset name.
LogEditorAssetSubsystem: Error: FindAssetData failed: Can't convert the path '/Game/Ayon/assets/char/star_fury/modelMain_v006/' because it doesn't contain an asset name.
LogEditorAssetSubsystem: Error: FindAssetData failed: Can't convert the path '/Game/Ayon/assets/enviro/' because it doesn't contain an asset name.
LogEditorAssetSubsystem: Error: FindAssetData failed: Can't convert the path '/Game/Ayon/assets/enviro/MainChamber/' because it doesn't contain an asset name.
LogEditorAssetSubsystem: Error: FindAssetData failed: Can't convert the path '/Game/Ayon/assets/enviro/MainChamber/modelMain_v003/' because it doesn't contain an asset name.
LogEditorAssetSubsystem: Error: FindAssetData failed: Can't convert the path '/Game/Ayon/assets/props/' because it doesn't contain an asset name.
LogEditorAssetSubsystem: Error: FindAssetData failed: Can't convert the path '/Game/Ayon/assets/props/container/' because it doesn't contain an asset name.
LogEditorAssetSubsystem: Error: FindAssetData failed: Can't convert the path '/Game/Ayon/assets/props/container/modelMain_v012/' because it doesn't contain an asset name.
LogEditorAssetSubsystem: Error: FindAssetData failed: Can't convert the path '/Game/Ayon/assets/props/container_military/' because it doesn't contain an asset name.
LogEditorAssetSubsystem: Error: FindAssetData failed: Can't convert the path '/Game/Ayon/assets/props/container_military/modelMain_v003/' because it doesn't contain an asset name.
LogEditorAssetSubsystem: Error: FindAssetData failed: Can't convert the path '/Game/Ayon/assets/props/container_scifi_01/' because it doesn't contain an asset name.
LogEditorAssetSubsystem: Error: FindAssetData failed: Can't convert the path '/Game/Ayon/assets/props/container_scifi_01/modelMain_v002/' because it doesn't contain an asset name.
LogEditorAssetSubsystem: Error: FindAssetData failed: Can't convert the path '/Game/Ayon/assets/props/container_scifi_02/' because it doesn't contain an asset name.
LogEditorAssetSubsystem: Error: FindAssetData failed: Can't convert the path '/Game/Ayon/assets/props/container_scifi_02/modelMain_v005/' because it doesn't contain an asset name.
LogEditorAssetSubsystem: Error: FindAssetData failed: Can't convert the path '/Game/Ayon/assets/props/power_generator/' because it doesn't contain an asset name.
LogEditorAssetSubsystem: Error: FindAssetData failed: Can't convert the path '/Game/Ayon/assets/props/power_generator/modelMain_v011/' because it doesn't contain an asset name.
LogEditorAssetSubsystem: Error: FindAssetData failed: Can't convert the path '/Game/Ayon/AyonPublishInstances/' because it doesn't contain an asset name.
LogEditorAssetSubsystem: Error: FindAssetData failed: Can't convert the path '/Game/Ayon/episodes/' because it doesn't contain an asset name.
LogEditorAssetSubsystem: Error: FindAssetData failed: Can't convert the path '/Game/Ayon/episodes/ep01/' because it doesn't contain an asset name.
LogEditorAssetSubsystem: Error: FindAssetData failed: Can't convert the path '/Game/Ayon/episodes/ep01/sq01/' because it doesn't contain an asset name.
LogEditorAssetSubsystem: Error: FindAssetData failed: Can't convert the path '/Game/Ayon/episodes/ep01/sq01/sh010/' because it doesn't contain an asset name.
LogEditorAssetSubsystem: Error: FindAssetData failed: Can't convert the path '/Game/Ayon/episodes/ep01/sq01/sh010/animationspartan_halo_rigMain_01__v008/' because it doesn't contain an asset name.
LogEditorAssetSubsystem: Error: FindAssetData failed: Can't convert the path '/Game/Ayon/episodes/ep01/sq01/sh010/cameraMain_v009/' because it doesn't contain an asset name.

I was able to publish and test it for staticMesh and render with custom productName succesfully...

so basically apart form those logs above it seems its working fine.

@antirotor let me know if I should approve then...

@LiborBatek
LiborBatek self-requested a review June 4, 2026 13:56

@LiborBatek LiborBatek left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Works for me. I have defined some product aliases, and tested the overall functionality and also succesfully published few product types...including render and all good!

Here you can see succesful publish of custom product name for render product

Image

@antirotor

Copy link
Copy Markdown
Member Author

Those log messages are probably unrelated, but something to keep an eye on. Lets merge it and observe

@antirotor
antirotor merged commit 2f0bb4b into develop Jun 5, 2026
1 check passed
@antirotor
antirotor deleted the feature/add-product-type-settings branch June 5, 2026 07:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bump minor sponsored This is directly sponsored by a client or community member type: enhancement Improvement of existing functionality or minor addition

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants