First off, I have to say what a joy it’s been so far working with unity3D the past 2 days at the company where I intern.
But I’ve run into a little snag.
I’ve done a quite complex full architectural model in C4D and textured it fully with Bodypaint3D UV. (Color, Bump, Luminance, Transparency. I really went all out on this one)
So far so good, I hit the import in Unity and presto, perfect model in space… except, no textures. None, Nada. Not even the simple single color no effects plane. Just a grey mesh. It shows it has imported materials but they just show as grey mass.
I tried exporting FBX and importing that without any effect. A quick search of the forums also didn’t result in anything quite similar.
So, who do I go about getting my textures into Unity because I can’t seem to work it out
Version info:
Cinema4D 9.6
Bodypaint 2.5
Unity3d: 2.0.2
If you are using cinema 4D sometimes you’ll have some odd problems. I recommend you make your models in a very simple manner. Construct your models and apply one texture per mesh with UV coordinates. Put it into Unity assets folder and let Unity Import it (you’ll see all textures) Then apply your shaders in Unity (bump, lightening…)
If you’re into visualization and/or architecture try baking yur textures before exporting your models.
Complex shader setups cannot be carried over to unity. IF you texture doesn’t show up after baking assign you shader manually and drag your baked textures into the coresponding material-box in the material/shader settings.
That my not e what you expect but trust me - that’s still far more easy and accurate than other engines I’ve worked with
Cinema 4D handles multiple uv tags and multiple textures just fine. It’s usually the user at fault not knowing how to set it up properly (I did a video tutorial on that in the past). So, it is very much possible to have more than one texture on an object and successfully export this out of Cinema 4D.
Some things like transparency don’t translate well during export so don’t bother making a fancy transparency shader in C4D. Best is to leave transparency just gray (or use a simple glass preset) and apply transparency in Unity later on.
There is no need to bake your textures before exporting unless you plan on baking lights/shadows (lightmap) into your textures otherwise this would just be a waste of time.
Another thing to be aware of is that “shaders” in Cinema 4D have to be baked (procedural shaders is what I am talking about here) and turned into a “texture map”.
Hmmm, this would go against my preferred workflow but I could give it a go
Well, I wouldn’t call my setup really all that complex. Nothing procedural, all simple .tif textures which are made using a combination of BodyPaint3D and Photoshop. (Photoshop for the big picture, bodypaint for touching up)
But from what you’re saying I should simply drag my current textures into the appropriate shader settings in unity and that should work?
Seeing I’m just above beginner level I wouldn’t be surprised if I did do something wrong.
I’d like to see that tutorial to see if I did and where I could improve
Ok, then I might be “screwed” on transparency because while the setup in C4D is only a simple texture loaded into the transparency channel the effect itself is all but simple (I’ve made a few of those french fences with the curly bits with transparency. I’d hate to have to model those. Especially since they won’t ever come into close view :P)
I’m not using procedural shaders so I’m “safe” there. Not a real big fan of procedural textures unless I’m under a deadline and need something that looks kinda good right now. So it seems it’s a no-go on the baking stuff.
I actually encountered your problem, as well, now.
And unfortunately I didn’t find any really appropriate solution from within Cinema yet because I had a project to finish with a veeeeery tight schedule and it was only a simple boxObject with baked texture left to do.
So - how I managed to get around it was to import the object into blender (www.blender.org) and assign a material together with the baked texture map, there.
Then I saved the .blend file and brought that into unity. That did the trick so far.
So my guess is that the assigned mateerial inside Cinema won’t recognise the texturemaps, somehow but they need to be asigned so that Unity can use them.
Hopefully I get time to lok into this when I’m done ith my current work. I know I could import things from C4D 10.5 …
Jumping back and forth from C4D to Blender isn’t exactly what I wld call workflow. Rather a very bad hack
I’m not above “hacking it” since I’m usually into a “make stuff work” mindset
Although when I’m not under a deadline, like now. I’m more into a “make stuff work, beautifully” mindset
So thanks for the tip, I’ll keep that in mind for when I do hit deadlines
The baked texture ends up in the “Luminance Channel” of your texture. Simply copy that texture into the COLOR channel before you export it into Unity. If you don’t do this you will end up looking at a black model inside Unity after import.
Allright, I’ve made some progress. Found the workings of setting textures and have placed the color and bump maps in all the correct places. (I was indeed going about this stuff wrong)
But is there also a possibility to set a transparency map in the same way as I’d set the bumpmap or with a change to my current textures?
No the transparency channel will not get “read” properly at the moment. Like I said earlier, you will have to do that inside Unity by applying a “Transparent” material.
You dont have too. Unity accepts two or more materials when you create selection in Cinema 4D and apply different materials to each selection. Then you can simply switch one of the materials inside Uniy to a transparency type shader.
Also you can use a transparency-map to tell the shader where to make your model transparent and where to keep it opaque with only one material applied to your model (wich is faster to render in realtime).
[quote=“”]
You dont have too. Unity accepts two or more materials when you create selection in Cinema 4D and apply different materials to each selection. Then you can simply switch one of the materials inside Uniy to a transparency type shader.
Also you can use a transparency-map to tell the shader where to make your model transparent and where to keep it opaque with only one material applied to your model (wich is faster to render in realtime).
[/quote]A well, gone ahead and did it anyway.
I rather spend a bit more time in C4D making sure it just works than take massive amounts of time in U3D for something I’m not sure will work and can’t seem to get to work so far.