Page MenuHome

Alembic does not import children of cameras correctly
Closed, ResolvedPublicBUG

Description

System Information
Operating system: Linux-3.10.0-327.el7.x86_64-x86_64-with-centos-7.2.1511-Core 64 Bits
Graphics card: GeForce GTX 1070 Ti/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 390.77

Blender Version
Broken: version: 2.81 (sub 16), branch: master, commit date: 2019-11-20 14:27, hash: rB26bd5ebd42e3

Short description of error
Alembic does not import object inside a group correcty

Exact steps for others to reproduce the error
Import this alembic file

in blender and you can see the problem which is not there on maya or nuke.

It should be aligned like that:

Maya

Nuke

Event Timeline

Vincent Girès (VincentG) renamed this task from Alembic does import object inside a group correcty to Alembic does not import object inside a group correcty.Jan 20 2020, 9:56 PM
Vincent Girès (VincentG) updated the task description. (Show Details)
Philipp Oeser (lichtwerk) changed the task status from Needs Triage to Confirmed.Tue, Feb 11, 3:51 PM

Can confirm the behavior.
Not sure how this looks from the inside, will check abcecho...

Sybren A. Stüvel (sybren) changed the subtype of this task from "Report" to "Bug".

In the example Alembic file there are three cameras in a hierarchy. CAM_C is the parent, with children CAM_R and CAM_L.

On top of the whole Y=up (Alembic) vs. Z=up (Blender), cameras in Alembic have a different coordinate system than cameras in Blender. After the conversion to Blender's Z=up, this difference remains:

  • Blender camera: looks towards -Z by default
  • Alembic camera: looks towards -Y by default

As a result, we have to apply yet another rotation to get the cameras to match; let's call this the "correction rotation". This is done for every Alembic camera, and as a result the children of such a camera are rotated as well. This is what you see when importing the example file.

I think the solution would be to put the inverse of this rotation in the inverse parent matrix of any object that is a child of a camera.

Sybren A. Stüvel (sybren) renamed this task from Alembic does not import object inside a group correcty to Alembic does not import children of cameras correctly.Fri, Feb 14, 3:44 PM

Thank you. This is working great in the last build and also for geometry shapes!