Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Representation dependency of loaded rig can go "out of sync" when updating #7

Open
BigRoy opened this issue Jun 27, 2017 · 4 comments

Comments

@BigRoy
Copy link
Contributor

BigRoy commented Jun 27, 2017

Issue

When a rig is loaded using the RigLoader it automatically adds an instance for publishing the animation and adds a "dependency" attribute linking to the representation it houses (the rig).

The problem there is that if the animator later updates the rig this dependency is not updated along, since it's not triggering the RigLoader again. As such, the representation id that is set in the dependency might not match correctly when the rig is updated.

Example issue

With the representation dependency going out of sync the CurvesLoader might try to load the wrong (older) rig version for the published animation.

@mottosso
Copy link
Member

Could the update mechanism handle updating this too?

@BigRoy
Copy link
Contributor Author

BigRoy commented Jun 27, 2017

Could the update mechanism handle updating this too?

Maybe. Would that only be possible if the "Loader" would also be used to decide how it updates? As such update is implemented on the Loaders?

Because we wouldn't know "what" needs "additional updating".

@mottosso
Copy link
Member

Interesting. That could be an option. Let's investigate that.

@mottosso
Copy link
Member

mottosso commented Jun 27, 2017

On a related, but separate note, I was thinking of making methods on plug-ins into event callbacks.

class MyLoader(...):
  def on_load(self):
    pass
  def on_update(self):
    pass

It'd mean readability is improved, where you know when things are called (and not called), and make room for more events to be implemented, such as update.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants