- Home /
Blender to Unity: 3ds exports UV maps correctly, fbx doesn't. Why?
I've created a simple dragon model in Blender, rigged it, given it some animations in Blender's compositing screen, broken it up into <65K triangle sub-meshes so Unity won't automatically break it apart, and UV mapped all of the individual parts.
I'm now trying to export this model to Unity, but if I export it as a .fbx and then import it into my Unity scene, the resulting prefab seems to have lost its UV maps. Exporting as a .3ds preserves UV map information, but doesn't preserve the model's animations.
I believe this is intended behavior for .3ds files (that they don't carry animations with them), but I believe my .fbx export should preserve UV maps. I've succeeded in the past with .fbx exports preserving both animations and UV maps, and I've read online that they should do so.
For reference, here is a current image of my scene:
The dragon on the left was exported as a .fbx; the dragon on the right began as the same Blender model but exported as a .3ds. The back of the dragon's right wing illustrates the problem; the .fbx loses all detail and just shows a diffuse black color.
Are there any common reasons this might occur? I am just a hobbyist and there are still many things I do not know about Unity/Blender.
GENERAL SYSTEM/SOFTWARE INFO:
Windows 10
Unity 5.6b10 64-bit
Blender 2.78
FIXES ATTEMPTED:
started a new Unity project, problem persisted
exported in older 6.1 ASCII fbx format, problem persisted (this is the little dragon not centered in the above image; its right wing is occluded but looks identical to the centered fbx dragon on the left)
tried exports with original mesh without first breaking it up into <65K sub-objects in Blender; problem was present there too
exported as 3ds rather than fbx and UV maps were preserved, but this loses animation information so it's not a very good fix
directly imported .blend file; problem is present here as well
Answer by NeverConvex · May 08, 2017 at 10:19 AM
Figured this out about 18 hours after opening the question (was still under moderation at the time).
Turns out at some point in my repeated UV unwrapping attempts, a second UV map had been created in Blender; I'm not sure how this happened, as I never explicitly changed the UV map in the Data tab, but I'm suspicious there was a single default UV map and that my unwraps created a second UV map and I just kept overwriting that second map. Anyway, navigating to the Data tab on each of my wing objects and deleting the first, default, undesired UV maps fixed the problem.
This still leaves the interesting issue that 3ds picked up the UV map I intended it to pick up (the second/last UV map) rather than the 'default' UV map. My current guess is that this happened because 3ds indexes Blender's UV maps in reverse order and exports with the last UV map, while the other export types I tried (blend, fbx) index Blender's UV maps in the same order as Blender, and so exported with the first UV map. I'm not sure where to find the specifications for the various export types, but it would be neat if someone could confirm this.
Answer by termway · May 03, 2017 at 03:07 PM
You need to know exactly where the problem come from :
First,check if you have multiple materials. You may have forget to add your texture in the shader parameters in one of them.
Then you can check that your fbx file have uv value by reimporting it in blender or use a external fbx viewer.
Try using a checkboard texture, this can help you identify your problem (like aberrant scale)
Try to reproduce the problem on a simple model like a cube and post your unity scene here. If you want to, I can check your fbx file for you.
Thanks for your reply!
I actually figured out what the problem was about 18 hours after submitting this question; I kind've forgot I'd submitted it, I guess because moderation takes a fair bit of time here.
Anyway, the issue was that while unwrapping my objects, I guess there was a default UV mapping in Blender and most of my unwraps were adding and/or rewriting the second UV map. For some reason, 3ds seems to index the UV maps in reverse order to their listing in Blender, so it started with the latest map - the correct one - while fbx, blend, etc exported with indexing in the natural forward order, so they used the (incorrect) first UV map. Very strange.
Would love if someone could confirm my conjecture there that 3ds indexes UV maps in reverse order to fbx, blend etc. Outside of that, I'll probably close this question relatively soon.
Your answer
Follow this Question
Related Questions
Why do I have jittering or extraneous movements in my animation after importing from Blender? 1 Answer
Blender FBX model Importing Making Model Smooth 2 Answers
Unity 2018.4.5f1- Blender could not convert the .blend file to FBX file. 4 Answers
How do I get Unity to update all objects from an .FBX model update? 0 Answers
What's the best way to edit the mesh in an .fbx file I didn't create? 1 Answer