Importing FBX with morphs taking forever (20 min per morph)

Hey guys- I’ve seen this issue arise on the forums before but there was never a definitive solution. I’m essentially trying to get a Gen4 Daz Studio Character into UE4 via FBX. I actually finally got this working with normals and materials but for some reason, UE4 takes forever to import Daz-specific FBX’s, approximately 15-20 minutes. The good news is my characters was fully functional and working.

Now however, I’m trying to import the FBX with morphs as well and each morph individually is taking between 15 minutes to a half hour to import. Initially the Daz character had close to 900 (granted unnecessary) morphs making this process completely impossible but I wilted it down to 95 and the import is looking manageable at around 2 and a half days, so long as it works. I can’t do this for every character though, especially considering I can’t do anything else while they import.

Is this still a bug or do you guys think this is something fixeable?

UPDATE: Total failure, UE4 immediately crashed on the import finishing. Also I noticed a huge spike in data on my C: and found the cause to be dozens of GB added to my DerivedDataCache.

UPDATE 2: Unbelievably I fixed this and killed two birds with one stone. Turns out this was directly tied into my DerivedDataCache. It was filling up my C: and then having to delete the cache in order to import more, making an endless loop of caching. By using the BaseEngine.ini file to update my Cache to another hard drive with more space everything imports as it should in a few minutes!

Thanks for any help or assistance.

what kind of morphs are those? Facial? Body transform?
Its quite strange that it takes so long to do morphs, I worked on a simple character (around 40k verts) that had a few facial morph, but it took only about 20 seconds to import. That was unreal 4.10 I recall.

I have to add tho that daz in my opinion isnt really a good option for anything but prototyping, and even then, the models are just horribly uncanny and lack any personaltiy/character, the topology is meh, the mesh itself seems quite buggy too depending on where you get it from, the deformation of their rigs isnt really good, etc. etc. and if things take that long to import, it kinda misses the purpose of “prototype” anyway. But I reckon everyone kinda knows that already. And if you have no other option… well if you have or dont have an other option I guess isnt relevant in this thread, UE just shouldnt take that long to import a friggin morph target.

Id also go to the answersHub and provide the files to @Epic guys so they can take a look and possibly file it as a bug. FBX importing in ue4 is terribly buggy still tbh. I havent worked in the enigne recently but I remember a handful of things that really ****** me off with import/export FBX.
Might give 4.12 a try, but Im afraid im not getting my hopes up.

Using a 11k character with 180 morphs it took 15 minutes ( considering that my pc is quite old also ).

900 morphs is mental, so avoid that completely.

If I remember correctly Daz characters share the same topology so this is what you can do is to delete the history on every other characters you need, and add the mesh as a morph target to the characters with the blend shapes.
By doing this you’ll be able to switch between characters ( using UMG sliders or by simply triggering float values ).

Alternatively you can add the characters as a morph target to the main one, set value 1 to the added character, extract all the blend shapes, add the extracted blend shapes to the added character, repeat for all the others.

Edit: In general the heavier the mesh is the longer it takes to import, since you can also see the blend shapes being imported, and it’s not super slow while importing them…I guess there is a kind of crunching phase while importing a mesh that the engine does behind the scene.

For a 200mb mechanical device with 250 parts I waited 2 hours…yeah! :smiley:

Thanks so much for the reply. They are all facial morphs - and I should add that everything is working. I just tested the model in Maya and all the morphs properly deform. At the moment I believe that waiting this out should yield the results I want, it really is just taking forever.

As far as Daz models, I’m an animator not a modeler so for me having customizable characters with conforming clothing and preset deformations for lip sync is totally worth the slight hit in quality I would get if I were to handmake every character. I can literally create my own animated movies so the headache is worth it.

Currently at about 70 of 95 morph targets imported. Should be ready to go in the morning. Thanks again for the reply!

My rig is:
Windows 7
28 GB RAM
AMD 8 Core @ 2.8HZ
Geforce GTX 970

Thanks for the reply. I have found that poly count has had no effect on the import time. The character is 200,000+ polys but I used the Daz Decimator to test a 15k version and that still took 15-20 min per morph to import. At that rate, I just stuck with the original anyway.

Once I get back in I’ll be able to test that as far as universal blend shapes.

Thanks again!

UPDATE: Total failure, UE4 immediately crashed on the import finishing. Also I noticed a huge spike in data on my C: and found the cause to be dozens of GB added to my DerivedDataCache.

UPDATE 2: Unbelievably I fixed this and killed two birds with one stone. Turns out this was directly tied into my DerivedDataCache. It was filling up my C: and then having to delete the cache in order to import more, making an endless loop of caching. By using the BaseEngine.ini file to update my Cache to another hard drive with more space everything imports as it should in a few minutes!

Long parsing time for morph targets is not unusual but only the tip of the iceberg as to problems that tend to grow exponentially over time which makes morphing a poor choice.

The real problem down the road though is how to author the require lip sync and the use of morphing can become a difficult task and high maintenance. For example the morph modifier in 3ds Max only supports 100 (0-99) targets and will crash if that limitation is exceeded.

I would recommend looking into doing cluster shaping instead. A lot less fussy.

Hey I have the same problem how did you do this???