Alembic (.abc) Tips and Tricks

This article will present some tips and tricks as well as a bit of troubleshooting for alembic imports

This article covers 

  • importing animated cameras and objects
  • dealing with errors like
    • error code 7
    • artifacted geometry
    • cannot load mesh file *name*.luxT
  • adding fuzz/geometry nodes to a deformable mesh
  • motion blur

Prerequisites

  • 3D modelling software to export alembic files
  • KeyShot Pro

Importing animated cameras/objects

It is important to note that as of now, KeyShot always requires at least one 3D object to be present in a file when importing.
Even if only one camera is supposed to be imported, some 3D geometry needs to be exported with the camera (e.g. a plane or a cube, etc.) in order for KeyShot to import it.

For the animation to be properly, it's best to bake all channels of the action. This also includes baking any possible Constraints as well as Parents.

This means that depending on the setup, instead of just baking all Channels, it might be required to Bake it as a Simulation depending on the software. The example image is from Blender.

Artifacted models or import errors

When trying to import an alembic file, you might discover that it's either not importing at all resulting in

Error Code 7

or it loads with an error message like

Normals count does not match number of triangles 1031178 vs 857592UV index count does not match triangle count

This is likely caused KeyShot 11, 2023 and 2024 being more sensitive to n-gons for alembic files than other software or previous versions. 
Please make sure to triangulate the mesh or use a Triangulate modifier/Construction/Turn to Poly History/Deformer/Generator of your 3D modelling software.

If there is an error like 

Cannot load mesh file ".../*name*.luxT"

this can imply that KeyShot has trouble interpreting the name.
Please make sure that the Mesh Data/Shape Node/Tag name (not just the Object name) does not have Cyrillic letters or other kind of special characters.

Fuzz on deformable meshes (for versions 2024.1 and prior)

In versions before 2024.2, the geometry nodes do not update on deformable meshes.
In order to mitigate that, a workaround is to add an animation to the material that is plugged into the geometry node, but does nothing (e.g. changes from a HSV value of 0.1 to 0.1). In the example the Roughness is animated but does not change. 

Please note: while it will render the animation correctly, it will not automatically update in the real-time view. You will have to manually click the Refresh Geometry Nodes button.

Motion Blur on deformable meshes

KeyShot calculates the Motion blur, by blurring sub-steps between frames.
Since deformation animations will not have any subframes in KeyShot, the motion blur will not work.

The current workaround is not ideal and will result in very large files.
It involves creating the sub-steps by stretching the animation.
Stretching it by x32 provides fairly decent results. x16 might be enough.
This means if an animation has a length of 60 frames, it can be stretched by x32 to 1920 frames before exporting. Once imported, the duration needs to be scaled back to be 60 frames. With that method KeyShot will have 30 sub-steps to work with.

In the image below, the original 60 frames animation is in the middle with very visible steps.
On the right, the animation was stretched x5 to 300 frames and the individual steps are still very visible.
On the left it's the same animation stretched x32 to 1920 frames and provides a decent result.

Know Issues

  • Currently, the motion blur does not work on Fuzz/Geometry nodes that are moved by a deformable mesh.