EDIT: Our latest project to use this plugin: Insurgent VR
The lab destruction sequence has ~10k rigid motion elements that were exported out of a dynamics sim from Maya into UE4 (minute 1:18):
Oops - posted in the wrong section. Please look at this thread: https://forums.unrealengine.com/showthread.php?50192-Project-Alembic-Importer-Plugin
We’re working on a project that requires a lot of deforming/destruction geometry so instead of writing our own format or trying to animate everything with bones, we decided to build an Alembic Importer Plugin.
After a couple of weeks, I finally have (a very basic) version of the entire pipeline working: (export from Maya -> compiled abc format -> importer in UE4 -> UAbcComponent for rendering)
The cube is an UAbcActor
Here are the high-level things on the roadmap over the next couple of weeks.
- Apply interpolation between frame samples. Right now it only animates the
- Multithread decoding as well as use a ring buffer to draw into the alembic vertex/index buffer
- Vertex compression. Right now each abc file stores 44 bytes per vertex.
- Import more data properties that come from Maya and convert to UE4 formats (normals, uvs, orthonormal tangents, rhs to lhs coordinate transform). Right now, everything is off
- Support rigid animation. Only deformable animation is supported at the moment.
Things that are not going to be added anytime in the foreseeable future:
- Mac/Linux Support
- Non-desktop targets
- SM4 or lower
Thanks to the Epic guys (Daniel Wright, NickP, JamesG, & Lina Halper) for answering my deep dive questions about the engine animation/rendering RHI interfaces. Will compile all the insight into a longer blog post once I’m done.
And thanks to Ehamloptiran & Rama for their plugin samples - was helpful in figuring out how to register a plugin and an importer.