hi
I'm seeing a difference in xform for objects in maya vs an exported alembic scene
simplified scene contains just two objects - renderGeo_208 and renderGeo_766
there's a couple of levels of grouping, but all objects have an offset of 0 from their parent
ABC
|--GRP_glass
| `--Geometry
| `--anim_on_geo
| |--renderGeo_208
| | `--renderGeo_Shape208
| `--renderGeo_766
| `--renderGeo_Shape766
|--front
| `--frontShape
|--persp
| `--perspShape
|--persp1
| `--perspShape2
|--side
| `--sideShape
`--top
`--topShape
maya timeine is frames 237 -> 333 (97 frames)
export cmdline:
AbcExport -verbose -j "-frameRange 237 333 -uvWrite -file x:/tmp/test.abc";
here's the h5dump for object 208 on sample 89 (the last frame on which the object moves):
ATTRIBUTE "0089" {
DATATYPE H5T_IEEE_F64LE
DATASPACE SIMPLE { ( 18 ) / ( 18 ) }
DATA {
(0): -1375.97, -166.102, 5.92368, -0.650441,
(4): -0.694336, 21.9868, 90.0118, 0.0137763,
(8): 123.641, 0.650441, 0.694336, -21.9868,
(12): -0.650441, -0.694336, 21.9868, 0.650441,
(16): 0.694336, -21.9868
}
}
there's 8 ops here:
op0 kTranslate
[0] -1375.9688590344488
[1] -166.10157023745637
[2] 5.9236813602364187
op1 kTranslate
[0] -0.65044063497043680
[1] -0.69433593750000000
[2] 21.986816406250000
op2 kRotateZ
op3 kRotateY
[0] 0.013776324999999650
op4 kRotateX
[0] 123.64102000000001
op5 kTranslate
[0] 0.65044063497043680
[1] 0.69433593750000000
[2] -21.986816406250000
op6 kTranslate
[0] -0.65044063497043680
[1] -0.69433593750000000
[2] 21.986816406250000
op7 kTranslate
[0] 0.65044063497043680
[1] 0.69433593750000000
[2] -21.986816406250000
the translation from the first one matches the offset in maya - and the rotate ops match what's going on in maya
presumably they're pre-multiplied in as they're applied, so we're translating to object center, rotating, then translating back before translating out into the world
but there looks to be too many local space translates and the net result of them all being applied causes the object to not line up with where maya says it ends up
maya: -13.76, -1.6661, 0.059
first op:
op0 kTranslate
[0] -1375.9688590344488 = -13.75968
[1] -166.10157023745637 = -1.1661
[2] 5.9236813602364187 = 0.059
our dump (ie. all the ops applied)
: frame 96 : pos -13.945 -1.6614 0.04066
which is close, but not correct
does anyone have any thoughts on what's causing the difference ?
thanks
Jonny