Maya Alembic to Unreal - Correct method to allow re-applying materials?

Hi, I’m very new to Unreal so hope someone can help.

I am exporting animated characters from Maya to Unreal as alembic caches as I’m only using it for real time rendering for film.
I wondered if anyone could describe the correct method of exporting and importing the alembic so that it at least recognises the materials slots from Maya.

I know I have to re-apply them in Unreal, but I’m mostly just getting one material slot, so when I apply a material in unreal it applies it to the whole character.
I need to be able to apply a new material to the skin, the clothes, hair , eyes etc.

After reading as much info as I can find online, I have the export settings in Maya to include Face sets, UV sets and Write UV’s
This didn’t work straight away, But then I only got it to work in Maya by actually going into face selection component mode of each object, selecting all poly faces, then > create set.

Is this really the ONLY way of getting it all to work?

To do this for every part of the character for every scene each time would be a nightmare.
Maybe I’m missing something? … Is there is an easier way to set Material face Id’s in maya for Unreal?

The only other thought was to export all the body parts as separate alembic files, and piece the characters back together in Unreal piece by piece, but again this is going to become messy tedious with multiple characters and scenes.

Unity imports alembics and recognises all materials etc no problem, its really easy to reapply your shaders, But I obviously much prefer to use Unreal

Many thanks for any help, :slight_smile:

Anyone? … I’m still really struggling with this and cannot find any information online
Many thanks

I’m not sure what you are doing exactly, but unreal definitely supports multiple materials on the same mesh. There is no questioning that.

Naturally you do have to define the different areas of the mesh as a different material. I’m sure you are already doing that if it works with the unity import.

Normally, or I should say “for my workflows”, I name my materials with a MI_ preceding the material name and set the engine to look for the existing material on FBX import.
MI stands for material instance - not that that matters. It works fine and the import often finds the correct material within my material folder assuming it exists. Or doesn’t create one and leaves the world grid material.

Anyway, review all your FBX import settings. The normals, the scene, the materials, etc.

Or you can use some of those live link tools and see if they don’t just do everything for you as they are supposed to. From what I hear they are very good. I would expect them to import and create the materials for you to match the Maya version if you have them defined correctly…

Hi [USER=“3140864”]MostHost LA[/USER] thanks so much for replying. Sorry I am referring to Alembic files only… NOT fbx.

my FBX files are working perfectly from Maya to unreal. My issue is with “Alembic” files

Any idea on this?
Many thanks

Hey Full Rotation,

I’m gonna take a crack at it. It might be easier to debug if you include a sample alembic file. But let’s see if this works for you.

In Maya, if you are converting NURBS/Paint effects to Polygons, select a face and assign a material to it. Otherwise, it might give you only one material id. Also, the following configurations might make a difference.

Export

When you are exporting from Maya, under the Advanced tab, make sure UV Write and Write Face Sets are checked.

Import

Next, when you import the file to UE, test with different import types (e.g. Static Mesh, Geometry Cache, or Skeletal Mesh).

Thanks so much @rooseveltrp I did actually manage to get a test working with basic primitives as you say checking write face sets and uvs in maya
I followed this: https://docs.unrealengine.com/en-US/Engine/Content/AlembicImporter/index.html

But it didn’t mention that you need to select the faces in Maya then go > create set, for every object. This is the only way I got it working…

…but my issue is this is a LOT of hassle…

imagine I will have dozens of different shots with multiple characters… Do I really have to go through every part of each character, create face sets for every single shot before exporting?
This will take hours and just seems a crazy method,

In unity you just import and done, I’ve tested it, no making face sets or anything. I wrote this post as I was sure I’m maybe missing something as it cant be this long winded in Unreal?
… but I would much rather use Unreal as I prefer it… its just the alembic feature seems to be clunky so far.

Thanks again for any advice, I thought there would be much more documentation on this, as it appears alembic is becoming big for non game - high end character and film projects real time rendering.

“Do I really have to go through every part of each character, create face sets for every single shot before exporting?”
What I was getting at is:
Isn’t this exactly the same as you would normally need to do with UV mapping? / to be done along with and during the same uv mapping process?

Another question that may give you something to try. Can you import to Unity, export back out, and import straight into UE4? (if unity automated the process of setting those face sets based on material and writes them to file, it might just work?)

And have you tried this? The docs say nothing about alembic stuff unfortunately.

Hey everyone, after trying everything possible, reading every article I could find I fixed it!!!.. and you don’t even need to create ANY face sets in maya, you just need materials applied , which I already had.

It was down to one single checkbox, and this devil should NEVER be on by default but Unreal decided to do this , hell knows why?
… it is a simple checkbox on import “Flatten Tracks” TURN THIS CHECKBOX FROM HELL OFF!

I’ve spent weeks on this, and it was all down to this one single checkbox
Now all my material slots are there, and you just apply the materials back to the alembic

3 Likes

Hi Full Rotation, thank you for your solution!
I just face the same problem right now and come across your thread by chance.
You save me a lot of time figuring out. Really appreciate it that you post your answer to the problem. Thanks!

OMGGGG I was struggling with the same problem for days, and no solutions, YOU ROCK Full Rotation, thank you soooo fn much! :slight_smile:

good god sir, how did you figure that out! THANKS A MILLION!

[USER=“3405991”]Full Rotation[/USER] Unfortunately, i am still struggling with that, can you please share with me the export settings for the alembic export and the import settings, some tutorials were saying that i need to combine everything together to become as a one mesh, but you have not mentioned that, and also regarding the set creating, do i still do it? let me know please,
​​​​​​​Thanks in advance

Hi sorry for late reply, I do not get sent notifications from this forum. You do not need to combine anything.
When you export as alembic, make sure you have write uv sets and face sets selected.

I made a short video tutorial on the whole process here: Export Alembic Animations to Unreal Engine the correct way (WITH MATERIALS) - YouTube

Thanks

Great!!! NOW IS WORKING HERE!!!
Flatten tracking was killing for hours

Hey people, I have a bit of an update to this thread, the flatten tracks should absolutely be on. I made a little video tutorial on how to go about getting materials to work and auto apply on import. For those of you that want a quick answer the steps are, in your 3D package, be sure to apply materials at the face level (not the object/shape level) and then export your alembics with the face sets checkbox turned on, along with all the others that you would need. then be sure to have materials in Unreal made that match your material shader group (Maya) and then on import be sure to leave flatten tracks turned ON along with the find materials checkbox as well. this will import your alembic flattened to a single geometry while keeping its materials and as a bonus it will auto apply those materials so you won’t have to do that.