Skip to content
This repository has been archived by the owner on Sep 20, 2024. It is now read-only.

Maya: Collect instances preserve handles even if frameStart + frameEnd matches context #3437

Conversation

BigRoy
Copy link
Collaborator

@BigRoy BigRoy commented Jun 29, 2022

Brief description

This removes the fallback to context handleStart and handleEnd if instance frameStart and frameEnd matches context.

Description

Now it will always inherit handleStart and handleEnd from the context (current working asset's handles in project manager) unless the instance explicitly sets values for the handles.

This means that for a pointcache instance it will never match the context because the pointcache instance has its own handleStart and handleEnd attribute on the publish instance. (This is true for all time based instances in Maya that use the collect_animation_data which I think is all time based instances in Maya!) We might be off improving that more so that by default on creating an instance it takes the handles and its values from the current working context.

If we really want to keep some of the old behavior we could add an extra attribute on publish instances that toggles the use of the handleStart/handleEnd from the instance, like useCustomHandles or handlesFromInstance or something like which can e.g. have a default value in settings so studios can decide whether it's more up to the artists or not.

Additional info

Without this change the artist could never set custom start/end handles if the start and end frame would match that of the asset in the project manager.

Testing notes:

  1. Check whether publish frames for instances now work as expected.

…`frameStart` and `frameEnd` matches context
@BigRoy BigRoy requested a review from mkolar June 29, 2022 14:57
@mkolar
Copy link
Member

mkolar commented Jun 29, 2022

I remember discussing this at quite some length with a client at the time when this was implemented. The general issue at hand was, how to differentiate between the cases, where the range should be validated against the DB, so we don't produce BS data, vs allowing the artist to bypass it somehow reasonably per instance.

The intended workflow was that if the artist is customizing the frame range, it is best to simply set different start and end, whether we have handles or not, if they want to override.

Truth be told, the only reason this is there is the fact that the publishing GUI is not very friendly towards choosing to validate one instance, but skip another. This would be trivial to change and make it proper in the new published GUI, unfortunately, we're failing to find the time to start converting maya families to it.

@mkolar
Copy link
Member

mkolar commented Jun 29, 2022

After quite some time in production, I agree that it's probably more intuitive to allow the override anytime, but then the validation of frame range is completely useless

@BigRoy
Copy link
Collaborator Author

BigRoy commented Jun 29, 2022

I agree that it's probably more intuitive to allow the override anytime, but then the validation of frame range is completely useless

Actually - not necessarily. If that plug-in is optional then it would validate by default unless the Artist would explicitly say "ignore this check for this instance". It's unfortunate however that once disabled for an instance it's not 'remembered' for future runs by default like "Hey, last time you had this ticked off manually. Would you like to preserve it?"

Kind of like "Validate Containers". You can publish with outdated content in the scene but most likely you don't want to in most cases.

Truth be told, the only reason this is there is the fact that the publishing GUI is not very friendly towards choosing to validate one instance, but skip another. This would be trivial to change and make it proper in the new published GUI, unfortunately, we're failing to find the time to start converting maya families to it.

Yes - that would help even more.

@mkolar
Copy link
Member

mkolar commented Jun 29, 2022

If that plug-in is optional then it would validate by default unless the Artist would explicitly say "ignore this check for this instance"

That's exactly the issue. You can only ignore it per full publish. not per instance. But I don't think that's actually a large problem.

@mkolar
Copy link
Member

mkolar commented Jul 1, 2022

Just a note that we haven't forgotten about this at all, just considering if it can nastily influence anything in production.

@BigRoy
Copy link
Collaborator Author

BigRoy commented Aug 5, 2022

Should this get another "test" some time soon for consideration?

@BigRoy
Copy link
Collaborator Author

BigRoy commented Sep 25, 2022

Just pinging once more here to check on what's the best way to get this in.

@BigRoy
Copy link
Collaborator Author

BigRoy commented Oct 13, 2022

Before merging this PR note that Collect Render should actually be fixed too since it does the same thing here

Still - any update on how we'd want to merge this PR?

Copy link
Member

@LiborBatek LiborBatek left a comment

Choose a reason for hiding this comment

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

Had been tested and it keeps the custom frame handles for pointcache family intact and works as expected. Other subset matches frame ranges with handles from DB values.

image

and DB values
image

Works ok.

@antirotor antirotor merged commit 23b8edd into ynput:develop Jan 16, 2023
@github-actions github-actions bot added this to the next-patch milestone Jan 16, 2023
@jakubjezek001 jakubjezek001 modified the milestones: next-patch, 3.15.0 Jan 25, 2023
@BigRoy BigRoy deleted the maya_collect_instance_remove_handles_fallback_to_context branch March 20, 2024 15:21
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants