1
\$\begingroup\$

My name is Jose and I'm pretty new to Game Art Development.

I know some intermediate UE4 (both C++ and Blueprints), but my weakest point has always been the workflow to import assets from Blender and Substance. Up to this point I have always bought external 3D assets.

As far as I know, the workflow is this (but I don't know if I'm correct):

  1. BLENDER: Create a 3D model in Blender. Create the materials I need for each part of the mesh. UV unwrap it. Export as .fbx
  2. SUBSTANCE PAINTER: Import the .fbx file into Substance Painter. Paint the 3D model. Export the .obj file AND the texture maps (albedo, roughness, metallic, normal, etc.)
  3. UNREAL ENGINE 4: Import the .obj file AND the texture maps. Create a material based on these maps. Apply the material to the model.

I have a few questions now:

  1. Is this workflow correct? Or is there something I'm misunderstanding?
  2. What model do I have to import into UE4? The .fbx from Blender? Or the .obj from Substance? Is there any difference between these two?
  3. When exporting the textures from Substance Painter, I can choose from a dropdown called config, to what game engine I'm exporting these textures to (Unity, Unreal, Lumberyard, Cryengine, etc.). What exactly does this option do? What is the fundamental difference in exporting textures to Unreal or to Unity, for example?
\$\endgroup\$
1
\$\begingroup\$

I'm also learning the ropes but here's how I figured so far.

Blender for modelling mesh, UV mapping, Sculpting
Substance Painter for Texturing, Map baking

Here's my workflow:

(!)At this point we have nothing.
1. Model mesh in detail(either subsurf or multires parts)
2. Sculpt details on multires parts(for organics generally)

(!)At this point we have high poly version of your mesh that cannot be used in a game.
3. Make low poly version of your High Poly mesh(Either by hand, by program or by shrinkwrap), this is called retopologizing which is your worst nightmare.
3.1. Go UV editing mode on LOW POLY mesh and Unwrap your model by seaming, you remember your worst nightmare? This is worster.

(!)At this point we have low poly version that can be put into a game but no textures. If your game isn't about grey people doing stuff in a grey world keep on reading.
4. Export your HIGH POLY mesh as fbx to folder WITH _high as suffix, mymesh_high.fbx
5. Export your LOW POLY mesh as fbx to folder WITH _low as suffix, mymesh_low.fbx
6. Open Substance Painter and make a new project with your LOW POLY fbx selected
7. Go to Bake Textures setting and select your HIGH POLY mesh(look up a youtube videos for the settings or just experiment)
8. Wait forever till textures bake
8.1. Use a smart material on ALL your materials to see bad parts. 8.2. Well, you see those warped and bad looking places on your textures? Go back to (STEP 3.1.) and seam better, you remember your worster nightmare? Welcome to an endlessly looping worster nightmare. Move on if you give up on correcting it and work with what's at hand.

(!At this point we start texturing)
9. Fail at making cool textures like you see online and make whatever you are able to.
10. Export your textures to a folder while trying not to be ashamed of your work.
IMPORTANT NOTE: You have to select your PLATFORM, I choose Unity you choose Unreal. Look up documentation for up-to-date selection.

(! At this point we have the textures and the mesh)
I don't know Unreal so I'll give the basis of what I do in Unity. I assume they're similar since it's basic work.
11. Open Unity, load project or make new.
12. Import your LOW POLY mesh into project.
13. Import your textures(albedo, metallic, normal in Unity), Substance should be creating the correct ones if you selected the PLATFORM correctly.
14. Apply your textures to material of your mesh.
15. End, you should be having your mesh and textured it in your platform.
16. Keep your chin up and try not to cry because of how horrid it looks.

These were my experiences, here's the answers to your questions.

  1. Workflow seems correct

  2. Use fbx from Blender

  3. Here are the same textures exported by selecting Unreal and Unity. The naming and coloring seems to me are the only differences. enter image description here

Oh, and if you don't want to work with cool looking game assets and instead make low poly trash use the workflow below:
1. Open blender make a box, do Smart UVing.
2. Select vertices and assign your colored materials on them, texturing DONE! Oh, you want to use Substance? Okay. Export to fbx.
2. Fire up Substance, load your mesh, bake to nothing, throw on fill layers, DONE.
3. Export textures, load everything into engine.
4. Make millions of dollars by making boxes float in mid-air.
5. Throw the money towards the sky while laughing at people who spent days on beautifully hand-painted or sculpt baked textures.

|improve this answer|||||
\$\endgroup\$
1
\$\begingroup\$

Is this workflow correct? Or is there something I'm misunderstanding?

This workflow seems correct, although I'm sure someone else could chime in on some sort of integration between Substance Painter and UE4 that makes this easier.

What model do I have to import into UE4? The .fbx from Blender? Or the .obj from Substance? Is there any difference between these two?

The OBJ from Substance Painter, since this program may affect the mesh data itself (such as UV maps). If possible, consider exporting as other more complex formats like FBX when possible. This may allow the FBX to hold references to the textures and auto-assign them, or even embed the textures inside the FBX.

When exporting the textures from Substance Painter, I can choose from a dropdown called config, to what game engine I'm exporting these textures to (Unity, Unreal, Lumberyard, Cryengine, etc.). What exactly does this option do? What is the fundamental difference in exporting textures to Unreal or to Unity, for example?

You should export with the option that is most applicable to your situation. In your case, Unreal.

Different engines use different shaders and different types of maps. The default Metallic workflow in Unity for example, uses a "Metallic Map" where the Red channel defines Metallic, and the Alpha channel defines Smoothness (the inverse of Roughness). Other engines like Unreal will have separate Metallic and Roughness maps. Using the correct export function will ensure that the textures are in the correct format.

|improve this answer|||||
\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.