Download

Clarifications Regarding FBX Workflow (3DS Max to UE4)

Hello,

I come from an artist’s perspective to UE4, I spend most of my time either creating or hacking models in 3DS Max and furthermore skin and rig them. I’d like to make some terminology clear here, whenever I say “Rig”, I am referring to the CONTROLLERS such as IK Chains and Helpers driving the bone hierarchy, not the bone/vertices weighing process.
As I jumped into UE4, I wanted to try the asset import process for Skeletal Meshes to plan out the extents of my protyping, but I have a hard time understanding what the Engine expects of me, primarily because the errors it throws are ambiguous. I believe I am misinterpreting how the engine works, as such I would be very grateful if someone can clarify the points below:

1) When exporting the SKELETAL MESH, it should be sufficient to select the model/body parts I am interested in, alongside the bone hierarchy that drives that mesh – it does NOT matter if there are other unused bones or models in the scene as long as I indicate “Export Selected”.

2) When exporting the animation, it should be sufficient to select the bones ONLY and export them (No need to select the mesh that is being driven). Moreover, I would assume that you should **BAKE **the animation in the FBX setting.

3) Most importantly (I believe this one is causing all my issues) – My model is already RIGGED in 3ds max; that is, the bones are linked to other controllers and helpers alongside some constraints that would help me animate inside the program. My understanding was, as long as I select the BONES only and ignore my controllers, Unreal Engine will simply take the hierarchy as is. And once I import my animation (that was produced using my controllers), it would simply interpret the movement of the bone hierarchy without really caring about what’s really moving them. This goes back to my point on why I assumed you should bake the animation as well. Am I violating something by exporting a model that is rigged with controllers and helpers? It is worth mentioning that bones like the Pelvis were re-linked to a controller in the process - perhaps that could break something?

So I’d like to know how accurate are the first 2 statement, and whether my workflow in the 3rd point is valid.

To summarize, here is what I am doing to get my skeletal meshes/animations to UE4:

Acquire a fully skinned model with a bone hierarchy -> Rig the model with controllers and helpers for help with future animations -> Select the mesh and bones (without the rig) and export as FBX -> In another file, animate my character using my rig and select the driven bones and export as a baked FBX animation.

Results: The model imports in the engine, I could see it in the viewer, however when attempting to save it, I get an error simply indicating “The Asset Failed to save ();” with an error log containing an empty " " . Moreover, when I import the animation FBX, I tried to target the skeleton I imported with the mesh (It appears in the drop-down) but clicking it does nothing - it simply refuses to select it.

1- Yes

2- Yes

3- I’d say most likely why you have an error is because of what you mention here… “It is worth mentioning that bones like the Pelvis were re-linked to a controller in the process - perhaps that could break something?”

In the case where you link a bone to a control object, if you export selected, meaning avoid the control object, there will still be some reference to that control object via the link, even though you don’t export it, it’ll end up basically sort of a null object and of course at that point also your skeleton hierarchy will also be broken.

So in a case where you want to just link something, in stead of using the link tool, use a Link Constraint. It will serve the same purpose but it will keep your hierarchy in tact and clean for game export.

Thanks, the Link Constraint is something to keep in mind for the future for sure. However, I don’t think that’s really where my problem lies. I deleted my entire rig from the skeletal mesh and kept the bones, hence the Pelvis bone should be at the top of hierarchy – in fact, I took a step further and relinked it to an unused root bone I had. Exported the mesh again, and upon importing, I get the same issue where the mesh fails to save. Notice that I didn’t even attempt to import and apply my animation yet, it’s purely a mesh definition problem.

Here is another interesting thing to note – my bone hierarchy is actually made up of helpers as shown in the picture. I suppose this CAN be a problem because FBX Export bombards me with errors regarding unsupported controller types, however, it is resolved by enabling “Bake Animation” … Am I doing something hacky here?
Capture.JPG

I also went into my scene hierarchy view and cleaned up some weird stuff (sub-meshes being linked to one another) with no result. I do not mind recreating the character using a fresh new start, but understanding this problem can go a long way to preventing it in the future after I fully commit to a project.

I can’t really say for sure what’s going wrong for you, since I’ve never had this problem, I don’t know what to look out for. You certainly can use dummy objects or whatever to build a skeleton, as long as you keep a clean hierarchy.

Really the bottom line is, for the stuff you export to the game, keep it simple, build the skeleton, skin it to the a clean mesh with no extra modifiers in the stack, just keep it simple. Build your rig separate from your skeleton. Just use some constraints to ultimately affect the skeleton with your rig.

Not that you have to do this, but really the best way to ensue a clean workflow is to use 2 skeletons, one for the game and one for the rig. Constrain the game skeleton to the rig and do whatever you like to the rig knowing it can not influence the game skeleton accept move it around, which is all you want in the end. The game skeleton stays clean and simple and the rig can be as complex as you want to make it and use as many tricks as you want to make it work.

I also like to know when something goes wrong exactly what causes it because that’s how you learn things. I can’t say what the problem is here and I can offer to look at it and try find the problem but not promise a real answer, but it would be good to know what’s going wrong for you. It’s always something very specific and could be a silly thing you did that normally won’t matter. That’s why over time I’ve just learned to keep things as simple and clean as possible and avoid anything unpredictable happening, on the stuff you ultimately export that is… :slight_smile:

  1. yes and no. You can add as many children you wish and either included or excluded them as long as they are not a parent of another bone with in the hierarchy.
  2. my habit is to export the complete character package and just select import animation only with in UE4. It’s a process of doing the same thing over and over again as a habit that decreases the chance of ever having a problem.
  3. as long as bake animations is selected in the FBX exporter the transform data is baked into the bone verbose.

A common problem I’ve found in Max is the tendency of the mesh becoming linked to the root of the skeletal rig becoming the primary root node and if excluded can and does generate all sort of errors.

Thanks for the advice!

Since I’ll be away from working with the engine for a while, I’d like to keep you further informed with what I probably did wrong.

First of all, I’d like to say that I tried exporting another model. The model was also rigged with controllers. I made sure the bone hierarchy is what I expect – having done the exact same steps I did for the failed model, I am surprised to say, it works!

However, regarding the model in my original question - it’s important to note that it was a model I hacked together from different models! So for instance, I deleted the lower half of the body and fitted it into a new body (still a seperate mesh). As you could imagine, that involved some nasty Edit Poly modifiers on top of the skin. This also meant that I merged and connected bones from 2 different bone hierachies into one. I understand that this is an unacceptable and gross approach, but I did make sure everything remains valid for a game export. In preperation for export, I collapsed all the modifiers and deleted all uneccessary bones.

Another thing I noticed is that my model’s xForms where not reset - based on my understanding, that shouldnt produce catastrophic errors aside from improper scaling and displaced positioning - Just thought I need to get it out there…

I’ll try to share the model for the sake of interest once I get the chance. I am confident that I can make it work if I reconstruct the whole thing, but the point of this experiment is to understand why a theoritically valid (yet questionable) model fails without a proper message in the log.

P.S: I think its clearly obvious by now that this model was not planned for a video game in mind, it’s just an experiment to see how far can I go in getting my hacked models into the engine. ( I have alot of those from back in the days)