Jump to content
3DCoat Forums
rooattack

[Solved] Import as FBX file crashes 3D coat

Recommended Posts

If I import any fbx file for Per Pixel Painting that was generated by 3D Coat, no matter how large the file is, 3D Coat crashes instantly. But, it only happens with fbx files that 3D coat has created. This forum won't let me start a new topic in the bug forum so I have to do it here. I need to be able to import fbx files because it's the only thing that supports multiple uv sets. 

Share this post


Link to post
Share on other sites

Hi

If possible, could you upgrade to version 4.5.33 and to test again ?
 
Take care, the new version have several drawbacks:
- Old shaders are disabled because shaders system was completely re-made.
- Old panoramas are disabled, you will need to add them as HDR or EXR files from scratch.
 
ty

Share this post


Link to post
Share on other sites

Okay, I've just grabbed your FBX from the other thread.

 

I think I know what the issue is. The objects you create in the sculpt room do not have UV's, and you're trying to then bring that data into the per-pixel room where it's expecting UV's.

 

Granted, 3dc could handle this a bit better by applying some arbitrary mapping on import, but ultimately you're dealing with a flawed pipeline from the get go.#

 

If I import your fbx into 3ds max it gives a bit more information on the issue, and unlike 3d coat, 3ds max will apply "some" mapping info onto the mesh that will allow it to import. Though its worth noting that the mapping it applies is basically redundant.

 

post-28483-0-94975500-1460125994_thumb.j

 

post-28483-0-77544200-1460126001_thumb.j

 

If you look closely at the second image there, in the UV window you'll see a very small orange cross in the bottom left, this is me selecting all of the UV's for that chest/abs piece. The same result is applied on all other pieces. Because they did not have any mapping information to begin with.

 

You should really look into the auto retopo tools within 3d coat, as this is typically the best way to get a voxel sculpt into the realms of a normal UV mapped mesh for per-pixel painting. Your workflow at the moment is a pretty bad one.

  • Like 1

Share this post


Link to post
Share on other sites

Okay, I've just grabbed your FBX from the other thread.

 

I think I know what the issue is. The objects you create in the sculpt room do not have UV's, and you're trying to then bring that data into the per-pixel room where it's expecting UV's.

 

Granted, 3dc could handle this a bit better by applying some arbitrary mapping on import, but ultimately you're dealing with a flawed pipeline from the get go.#

 

If I import your fbx into 3ds max it gives a bit more information on the issue, and unlike 3d coat, 3ds max will apply "some" mapping info onto the mesh that will allow it to import. Though its worth noting that the mapping it applies is basically redundant.

 

attachicon.gifBad.jpg

 

attachicon.gifbad2.jpg

 

If you look closely at the second image there, in the UV window you'll see a very small orange cross in the bottom left, this is me selecting all of the UV's for that chest/abs piece. The same result is applied on all other pieces. Because they did not have any mapping information to begin with.

 

You should really look into the auto retopo tools within 3d coat, as this is typically the best way to get a voxel sculpt into the realms of a normal UV mapped mesh for per-pixel painting. Your workflow at the moment is a pretty bad one.

Thanks for your advice!

 

The whole reason I am trying to import the fbx file is so that I can UV map it ;). Are you saying I have to retopo every model I work with? I literally don't have time to do that with 200 models I am creating (we are creating high poly models and rendering 2D sprites out of them, so we have no need to retopo anything ). The thing is, it works fine for OBJ files and I can go in and at least maintain texture ID's so Substance Painter can use it, but then I lose the ability of multiple UV sets when I use OBJ. I think 3D coat should be able to import what it exports regardless, especially if it handles one file but not the other. At least remain consistent. 

Edited by rooattack

Share this post


Link to post
Share on other sites

Okay, I've just grabbed your FBX from the other thread.

 

I think I know what the issue is. The objects you create in the sculpt room do not have UV's, and you're trying to then bring that data into the per-pixel room where it's expecting UV's.

 

Granted, 3dc could handle this a bit better by applying some arbitrary mapping on import, but ultimately you're dealing with a flawed pipeline from the get go.#

3D-Coat's import to PPP does seem to apply an arbitrary UV mapping to geometry that does not have it.

 

I imported this FBX to Houdini. It threw some warnings:

 

post-12523-0-90583700-1460156079_thumb.p

 

The FBX does not have any UVs. Understandable, because they were never created. I exported the object as FBX from Houdini, without adding any UVs.

 

And it loaded properly in the paint room. With many materials and without crashing.

 

post-12523-0-38522700-1460156379_thumb.j

 

So I assume that 3D-Coat automatically generates UVs in the Paint Room when they're not present (if the file is imported directly for Paint Room's PPP):

 

post-12523-0-55039300-1460156471_thumb.j

 

Unless Houdini's FBX exporter automatically applies UVs on export. This I don't know. ;)

Share this post


Link to post
Share on other sites

Well, auto-retopo is only a few clicks, and you can set the estimated poly count to be high enough so that you retain all of your sculpted detail. I suppose a drawback of this is you would need to do it for each piece in order to retain multiple UV sets, or rather independent UV sets for multiple objects. But again, this is just few clicks per separate object. That said, you could also look into 1 UV set but using multiple objects, PBR materials in 3dc and substance I believe can work on a per-object basis rather than worrying about a dozen texture sheets for each of your models. I realise I'm being vague here, but we can look into it more if you reckon it's a path worth walking.

 

One thing that might make your life easier as well is to perhaps ditch the use of substance painter? 3dc is more than capable of dealing with the PBR workflow.

 

The obj difference is intriguing though, could you perhaps upload an obj you're having issues with, rooattack? If obj's have UV's created automatically on export from 3dc, then I wonder if it's treating it as multiple objects = 1 UV set, and the confusion is coming from painting on a per-object basis in substance? Rather than multiple UV's, without looking under the hood you wouldn't really be able to know the difference.

 

@ajz3d, yeah, I would assume that the modo export has probably created those UV's, or the import to modo + export is what's causing it. Either way we know the original export from 3dc has no UV's, which seems to be the issue 3dc has in importing it straight back in. Admittedly, I did not test with importing his FBX to the UV room directly (is this even an option?) I imagine it might throw the same crash back though.

  • Like 1

Share this post


Link to post
Share on other sites

Well, auto-retopo is only a few clicks (...)

Rooattack, try this experimental software out: http://3dcoat.com/forum/index.php?showtopic=18576&hl=%2Binstant+%2Bmeshes

AUTOPO is a nice tool to use, and it saved my bacon more than once, but it is also quite slow. If you have thick and watertight meshes, like in that FBX, it should work okay and you'll get the result pretty fast. Of course, you will have to tweak and reduce your retopo mesh afterwards a bit (in retopo room).

Share this post


Link to post
Share on other sites

Well, auto-retopo is only a few clicks, and you can set the estimated poly count to be high enough so that you retain all of your sculpted detail. I suppose a drawback of this is you would need to do it for each piece in order to retain multiple UV sets, or rather independent UV sets for multiple objects. But again, this is just few clicks per separate object. That said, you could also look into 1 UV set but using multiple objects, PBR materials in 3dc and substance I believe can work on a per-object basis rather than worrying about a dozen texture sheets for each of your models. I realise I'm being vague here, but we can look into it more if you reckon it's a path worth walking.

 

One thing that might make your life easier as well is to perhaps ditch the use of substance painter? 3dc is more than capable of dealing with the PBR workflow.

 

The obj difference is intriguing though, could you perhaps upload an obj you're having issues with, rooattack? If obj's have UV's created automatically on export from 3dc, then I wonder if it's treating it as multiple objects = 1 UV set, and the confusion is coming from painting on a per-object basis in substance? Rather than multiple UV's, without looking under the hood you wouldn't really be able to know the difference.

 

@ajz3d, yeah, I would assume that the modo export has probably created those UV's, or the import to modo + export is what's causing it. Either way we know the original export from 3dc has no UV's, which seems to be the issue 3dc has in importing it straight back in. Admittedly, I did not test with importing his FBX to the UV room directly (is this even an option?) I imagine it might throw the same crash back though.

 

 

1. Great advice, both of you! I'm very impressed by the user engagement. It helps people more than you can imagine. I honestly can never get auto-retopo to work right. I watch tutorials over and over and think im doing strokes correctly, but just comes out being a mess. I am trying to find something that helps me really understand strokes, rather than just the few points like not putting them close together or intersecting. 

 

2. Anyway, Substance in my honest opinion (and I'm sure you have your reasons for loving PPP instead) is much more powerful than 3DC for painting and so much easier to use; it is of course the entire purpose of the product. 3DC is so much more tedious in my opinion. They can do similar things but 3DC makes it way more difficult to perform a simple task. Painter just feels like Photoshop and has a really easy to use interface. Plus the rendering is amazing ;)

 

As for the OBJ file, this is what 3DC does. I make a model with layers > export the model to obj > import to per pixel painting > export that as an fbx or obj file > then import to Painter. 3DC only recognizes a single UV set when I import the OBJ, but Painter recognizes the actual layers that were originally in my 3DC project, so I am able to use those layers as sort of a mask when I'm painting. I can also turn on/off those objects of the model if I dont want them rendered. The reason I can't separate these objects into multiple files and paint them separately is because i need to be able to render the model as a single transparent PNG. The next comment below is the reason why.

 

So background on our video game in case you care and why this is such a huge issue: Our video game is a completely 2D sprite environment. However, we trick the viewer by creating everything in 3D and using parallaxing, then rendering out high poly 3D sprites. I still have yet to find an application that will render out 3D animations into transparent PNG's. This is why I use painter. I model everything in 3DC, get the texture down just right in painter, and render out my model (but i have to replace the model over and over with the new model from the next animated key frame in the animation). 

post-40222-0-49268100-1460164042_thumb.p

Edited by rooattack

Share this post


Link to post
Share on other sites

Here's an enemy that we used. You can imagine trying to retopo this. We have 200 enemies in the game and 2 weeks before we launch. Having to retopo all of this would be a nightmare. Auto retopo just seems to not work no matter what I do with these things. I end up having to manually topo it. I really just want to pay someone to topo these enemies for me ;) or just pay someone to train me correctly on the auto-retopo.

post-40222-0-34125600-1460164558_thumb.j

Share this post


Link to post
Share on other sites

Rooattack, try this experimental software out: http://3dcoat.com/forum/index.php?showtopic=18576&hl=%2Binstant+%2Bmeshes

AUTOPO is a nice tool to use, and it saved my bacon more than once, but it is also quite slow. If you have thick and watertight meshes, like in that FBX, it should work okay and you'll get the result pretty fast. Of course, you will have to tweak and reduce your retopo mesh afterwards a bit (in retopo room).

 

 

I just used this tool last night, but again, it removes my uv sets. When i export from Substance, i get multiple texture files (I.e. normal_map_head and normal_map_legs). How do i combine all my textures into a single model with one UV? Man, this is getting so complicated! ha

Share this post


Link to post
Share on other sites
As for the OBJ file, this is what 3DC does. I make a model with layers > export the model to obj > import to per pixel painting > export that as an fbx or obj file > then import to Painter. 3DC only recognizes a single UV set when I import the OBJ, but Painter recognizes the actual layers that were originally in my 3DC project, so I am able to use those layers as sort of a mask when I'm painting. I can also turn on/off those objects of the model if I dont want them rendered.

 

 

I think this might be where the initial confusion is. When you import to substance you're able to work on a per-object level, 3dc has this as well but my guess is that you've not noticed it in the UI.

 

Just did a little test. Created 3 spheres in the sculpt room. Exported the scene as .obj. Imported this obj into the paint room.

 

The result is 3 separate models with auto-UV's. They are using a single texture sheet though. This is what's causing a hiccup with you I think.

 

[theory]You're then exporting to substance, and painting per-object, assuming it's multiple UV's, but it isn't, and when you bring it back into 3dc, you're looking for multiple UV sets that didn't actually exist in the first place.[/theory]

 

in 3dc paint room, you should have a "paint objects" window/tab (if not you can access it from the "Windows > Popups" menu), this is where you'll see all of your separate objects as "layers", the same as what substance sees.

Share this post


Link to post
Share on other sites

You're right! Wow I knew I was doing something wrong. So basically I have to retopo each object (layer) at a time? Meaning I retopo one layer, click on the next layer, retopo that and so on? How does auto retopo handle multiple of these or does it combine it all?

Edited by rooattack

Share this post


Link to post
Share on other sites

It will only combine them if you combine them in the sculpt room first, I believe.

 

All that aside, your pipeline has me a bit confused. You sculpt in 3dc, export out as obj (which auto-UV's) to texture them in substance, and then bring them back into 3dc? I don't understand why you'd be bringing them back in.

  • Like 1

Share this post


Link to post
Share on other sites

I'm have actually not been bringing them back into 3DC after painting. Painter was my last step. I export the object from 3DC, then import it into the UV room to UV map it, then I export that to an fbx or obj file so I can paint it in painter. Painter is my last and only step. Then I render it from there.

However, I did want to see if I could bring my model back into 3DC even after painting it because 'rendering' is a whole separate issue in itself. I sometimes have to apply my textures I created from Substance Designer or Painter into a separate program like Marmoset. Rendering is really the last most important thing as it's the thing people see in the end. So I am exploring every application for that to see which one performs the best render. There is a very unique way I have to perform these renders based on the way our video game works. (3D > animation > 2D Sprite sheet). Painter has the best bloom and painting effects. 3D coat is best for modeling. Marmoset allows me to replace and fbx file with a new model that is saved in an animated frame. They all have certain purposes. My goal is to rid myself of Marmoset and even Painter for rendering.

Edited by rooattack

Share this post


Link to post
Share on other sites

How are you handling the animation and render? I realise it's a bit off-topic but I've not seen you mention anything like maya/max/blender/modo etc? I'm hoping you're going to have rigged and animated objects before you reach the rendering stage?

Marmoset would be a strange use of rendering out animated 3d sprites, but I'll admit the thought is pretty interesting since it can handle animated exports. Whenever I've had to do sprites from 3d objects in the past I would always have 3ds max as my last port of call, that way if an animation had to change, I'd just change some keyframes and render off the sequence again, nice and easy. Very good for iteration.

  • Like 1

Share this post


Link to post
Share on other sites

why not to use retoporoom for uvmap ?

or paint the high poly directly in paint room ?

 

Do you export the highpoly object from 3DC sculpt room to another app ?

 

a step by step workflow could help to understand your pipeline

  • Like 1

Share this post


Link to post
Share on other sites

How are you handling the animation and render? I realise it's a bit off-topic but I've not seen you mention anything like maya/max/blender/modo etc? I'm hoping you're going to have rigged and animated objects before you reach the rendering stage?

Marmoset would be a strange use of rendering out animated 3d sprites, but I'll admit the thought is pretty interesting since it can handle animated exports. Whenever I've had to do sprites from 3d objects in the past I would always have 3ds max as my last port of call, that way if an animation had to change, I'd just change some keyframes and render off the sequence again, nice and easy. Very good for iteration.

So this is how we have to do it, right now at least. We animate in maya, but Maya does a terrible job importing textures from painter and making them look exactly like it did in painter. It's not very good at PBR and takes years to render. So we have to actually save multiple versions of the model as they are stuck in a new position in the animation. Like saving it in key frame #4 then a new one at #5 and so on. Marmoset allows me to replace the model with a model in that new key frame without repositioning the model's angle that I was last at in key frame #1 for example. So I can screenshot that position then pack them all into a Sprite and voila! Seamless animation. It is tedious and I hate marmoset but it works.

I don't know how 3DS max handles importing PBR and exporting animated transparent screenshots, but if that works that omg I will be picking that up and you just saved us 1,000s of hrs, really. My life would be complete

why not to use retoporoom for uvmap ?

or paint the high poly directly in paint room ?

Do you export the highpoly object from 3DC sculpt room to another app ?

a step by step workflow could help to understand your pipeline

This is all explained up top in the above thread of comments we made previously :)

Share this post


Link to post
Share on other sites
I don't know how 3DS max handles importing PBR and exporting animated transparent screenshots, but if that works that omg I will be picking that up and you just saved us 1,000s of hrs, really. My life would be complete 

 

 

 

You should take a look at the app links forum for 3dc integration for different packages:

 

http://3dcoat.com/forum/index.php?showforum=60

 

Ultimately though, getting the same sorts of results isn't difficult in theory, most of what you're seeing in the likes of 3dc and marmoset is just image based lighting, and you can set Maya/Max/Modo etc up to use HDRI environments, then it's just a case of making sure your materials are set up in a way that would make use of those environments with their spec/gloss roughness/metallness textures. Granted, it's not likely to be a 100% match, but if you're doing sequenced animations I would prioritise a bit of time in getting your traditional modelling/animation app up to a good quality of rendering.

Share this post


Link to post
Share on other sites

I know this looks like a mess. But I don't understand how you do strokes with models that have so many varying angles and cuts. Second attachment is the output. If i could understand the stroke thing, none of this would even be an issue. It is a serious lack of auto-topo understanding on my part. I know how to do it manually but that takes forever,

post-40222-0-45912100-1460236898_thumb.p

post-40222-0-28095000-1460236915_thumb.p

Edited by rooattack

Share this post


Link to post
Share on other sites

Honestly, if you were happy with just chucking out obj's straight from the sculpt room, you can definitely skip the strokes-as-guides bit of the autoretopo. Did you know that you can just click "next" or whatever the button is, without laying down strokes? Same goes for when it asks you to paint areas of priority, you can just skip that too. The main thing I think you want to watch out for it just your desired polycount. Let 3dc take care of the rest.

Share this post


Link to post
Share on other sites

You should take a look at the app links forum for 3dc integration for different packages:

 

http://3dcoat.com/forum/index.php?showforum=60

 

Ultimately though, getting the same sorts of results isn't difficult in theory, most of what you're seeing in the likes of 3dc and marmoset is just image based lighting, and you can set Maya/Max/Modo etc up to use HDRI environments, then it's just a case of making sure your materials are set up in a way that would make use of those environments with their spec/gloss roughness/metallness textures. Granted, it's not likely to be a 100% match, but if you're doing sequenced animations I would prioritise a bit of time in getting your traditional modelling/animation app up to a good quality of rendering.

 

I totally agree with the rendering comment. As far as Maya goes, we could never get it to look even somewhat close. I attached how I export textures. I suppose I can try it again. I believe I will have to convert metallic to specular and roughness to glossiness.

 

Thanks again for all your help and advice. I am getting to the end answer very soon. At least some solutions.

post-40222-0-67032400-1460237028_thumb.p

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×