-
Notifications
You must be signed in to change notification settings - Fork 3
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
Load Alembic cache and manage as datablock #57
base: develop
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I tested with some files sent by Libor
It works, only thing which is not working is the switch function but I dont think we need to have that for the load alembic cache.
I believe we can remove the load_cache and load_camera_abc and simply use this loader to load camera and cache?
https://github.com/user-attachments/assets/58ef022c-6f4b-499c-adf3-3734d6a0d021
I'll need to test that switching. Did it actually error? or just fail to show any changes to the scene? I suspect the "old" objects stop moving? (because their object paths are not found in the new alembic, likely objects are named differently in the other file?) And the new geometry does not get loaded? If so, then yes - new geometry does not get 'created' currently on update or switch. It should be doable, I'm just not sure how trivial and sensible it would be. As in, I'm not sure if it'd be 100% reliable and if sometimes it'd then start creating objects that maybe the user deleted on purpose. :D |
It doesn't error and it does switch but the object in the scene does not get correctly updated. And it is supposed to be working for that switch function since the update function of the filepath works as expected.
|
I have tested Also my finding is that every node within Alembic gets Once overriden by turning the influence to zero, it holds the transforms user edit even when performing |
Thanks - yes. I actually wanted to do potentially do a few more things:
|
I got your points...sounds reasonable! One note tho: we are facing opposite issue with super long names which got unneccessary loong once asset got loaded - something which should be taken care of - this been issue mostly when going for nested scenes as the names got clipped off. So aiming for short and clear naming been the top priority speaking of blender integration... I will give some more info/ example of those issue connected asap. Also unnecessary grouping (via locators/ empties) occurs a lot making lot of cluttering in the outliner... |
Both valid points - then I'd be happy to keep it as barebones as is if there is no actual need in production for more uniqueness? |
Even tho its a bit off topic I will share it here...u can blame me later for sure :D For e.g creating its quite long as it uses This start to be an issue when loading such asset into So imho just optimizing it a bit could help a lot as this can be quite painful to navigate in. |
Changelog Description
Load an Alembic and manage the datablock instead of containerizing the root object.
Additional info
This simplifies the loading logic a lot since we do not need to take care of the hierarchy of the objects and keep track of which are children, etc.
Also, on load I enable that it ALWAYS add a cache reader using
always_add_cache_reader=True
. This may be less performant (so beware) but it massively simplifies code and improves reliability to what the user may expect when "updating" the cache. It means that even if object transforms of mesh vertex caches didn't animate at first, but do animate (or have moved) in the updated alembic they actually follow along. This also fixes that on update non-animated objects will get their transforms updated if they (even though static) have moved between the alembic versions.This PR is solely to test the concept - and discuss good things about this; and of course I'm looking forward to all the issues one may have with this. So, feedback is welcome!
Thanks to Pete Addington from The Line for derailing me to start fiddling with this.
Testing notes:
Load Cache Data
loader for Alembics.Resolves #60