Hello again,
There are a few problems with alembic that came up in beta and still seems to be big issues.
1. The transform values from the alembic cache are relative to the existing values at any given frame. If the alembic is moving an object 1 unit starting at world center 0 the movement will put it at 1. If the user moves the unit 1(or any other value) the change will be +1 from that value. The change can not be undone or reset so unless the user knows the original starting point for the object it is impossible to return the object to the perfect, correct starting point. The undo passes over that movement and to whatever was done before that point. That is a very bad problem in any pipeline.
2.Once the alembic node has been moved from its starting point the extra transform is not accounted for during the scene scale. Original location at Geometry scale 1 <<0,0,1>> .1 <<0,0,.1>>, 10 <<0,0,10>>
If the user moves the object that extra transform is handled this way.
Geometry scale 1 <<0,0,1>> changed to <<,0,0,3>> will be very different at other scales.
Geometry scale .1 <<0,0,2.1>> (worse at small scale)
Geometry scale 10<<0,0,12>>
If this can’t be fixed at the very least I would like the option to lock the alembic nodes as done with SD files. Please let me know if there are any questions.
Bad Alembic issues
-
jesse nicodemus
- Posts: 23
- Joined: Fri Oct 07, 2011 8:23 pm
- Contact:
-
jesse nicodemus
- Posts: 23
- Joined: Fri Oct 07, 2011 8:23 pm
- Contact:
Re: Bad Alembic issues (temp fix)
I figured out a really rough temp fix exploiting the bug that doesn't account for scale of the extra transform a user might add.
A = original Position.X
B = unknown change to Position.X
C = current Value of Position.X
This takes the amount you expect from the amount you get and gives you the value to be removed to return Position.X to the correct place.
( ((A+B) * 10) - ((A * 10) + B) ) / 9 = B
A - B = C
I am running a clean up script for this on Position Prams for all alembic nodes to catch any changes.
While I am on the topic can we please get a getType() that will return if an Object is from an alembic and return what the connecting file is? It would help a lot to have that information for updating the scene and setup tools.
Thanks!
A = original Position.X
B = unknown change to Position.X
C = current Value of Position.X
This takes the amount you expect from the amount you get and gives you the value to be removed to return Position.X to the correct place.
( ((A+B) * 10) - ((A * 10) + B) ) / 9 = B
A - B = C
I am running a clean up script for this on Position Prams for all alembic nodes to catch any changes.
While I am on the topic can we please get a getType() that will return if an Object is from an alembic and return what the connecting file is? It would help a lot to have that information for updating the scene and setup tools.
Thanks!
- LuisMiguel
- Posts: 528
- Joined: Fri Jun 04, 2010 2:37 pm
Re: Bad Alembic issues
Hi Jesse,
We are taking a look at this. I¡ll tell you if we find something. Thanks for reporting.
luisM.
We are taking a look at this. I¡ll tell you if we find something. Thanks for reporting.
luisM.