Some new assets, done in the past months, for Modular Assauly Vehicle.
Lots more to post as soon as they’re released 😀
Modeled in Blender, textures in Substance, rendered in Unity 5, At this point i prefer results in Unity vs. Marmoset (2, at least) maybe a little less metallic and shiny as i have it set up, but overall pbr reliability and just the easy of shading and lighting in unity 5 (since 5.3-5.6) is great. The actual game is unity 4 and not pbr shaded, but i have started doing some env. / maps work, and that allows to setup reflection maps and lamps to work better for the mechs shading too (and luckily the big open spaces in the game mean that light conditions are much more consistent than in i.e. a human scale city level with interiors, so it’s not too time consuming to expose correctly without pbr, hdr, tonemappers and all the fancy stuff) .
Heavy2 cockpit :
Thermal systems (mech parts) :
Ice environment assets :
I’m working on a personal project! a small realtime env. (Blender, Substance, Unity)
This was long overdue: some things you only learn on actual projects, working for and with other people, and with budget and time constraints, but after a while i had also a pile of things you don’t get to solve properly in that context.
The updates and info on the scene are on polycount :
And in particular , in the last year, i’ve been working on some export and workflow tools of my own (i call them ‘python on post-its’ ) : It’s some batch tools for quicker common tasks of organization and cleanup when creating game assets and environments.
These tools started as a few macros to rename object pairs for hipoly-lowpoly and quickly going from Blender to Substance, then expanded with some macros for export to Unity (joining objects preserving custom normals, repacking uvs for use as lightmaps .. and few more boring but useful speed ups)
After a while, i had all these snippets lying around , customized with ‘hardcoded’ changes for each project, and at least i want to polish them as ‘internal tool’, organize them so they don’t get lost, but i also want to make them as usable/useful as possible for the community.
I think it’s great how Blender allows artists to make their own tools easily (i’m not a dev or a proper technical artist either) and it has surely saved me time on daily env-art work! But this also means, my addons will never be good code or polished, still this thing will serve its purpose even if it only creates a bit of online discussion about game art tools in Blender, or later a talk at BConf and eventually the best ideas being picked up by proper devs.
Click on ‘read more’ to continue on this topic :
This is a set of assets for realtime/VR for the project Almighty window by Rob Tuytel / Model Earth.
These were modelled, and sculpted, in Blender, textured in Substance (painter for most, Designer for the tileable sandstone blocks detail) Rendered in Unity 5.
This was an interesting project for the level of detail of models, higher than usual because it’s for 1st person / VR, and in particular a game that will be mostly in confined interior spaces.
I’m a big fan of sculpting for architectural details, even when it’s just chipped edges and scratches, but it is time consuming and so procedural workflows is also something i will try to use more and more (i.e. the inner pillars at the sides of the door are sculpted, the outer ones have a tileable procedural texture, where even normal map is fully in substance)
I used spec-gloss pbr model becaus, while still trying to be pbr accurate, i like to have a bit of freedom vs. the metalness model forcing anything non-metallic to have same spec. level.I also made some simple custom shaders in shaderforge to be able to mix detail maps using : 1- a blend mode that doe not add saturation (mix or color dodge depending on cases) 2-adding spec-gloss texture for the detail too (to get nice and detailed spec on wood veneer)
In the images below : the 4 tall pillars are actually the same 2 : left has detail map of sandstone bricks, right has a simpler grainy concrete. The curtains were made by cloth sim in Blender, realtime model made simply by un-subdividing the detailed mesh 3-4 times (to under 1k tris each) + normal map.
In the last row : sculpt detail, hipoly full view (23 million polys between all sculpted pieces and still a workable scene) with material colors corresponding to Substance mat-id key map, and right picture shows lowpoly (material color correspond to texture sheets in unity) with uv view of one of the 4 sheets.
These are the 3rd and 4th environments i made recently for the indie pc game Metris Street Football, by Metris code : Venice Rialto bridge and Thai village.
Specs are same as previously: Unity 5, PC game, current gen level of detail, 1 month of work time each env, modeled in Blender, textured in Substance. With the addition of using Shader Forge for the water and colored buildings in Thai village.
These levels are a bit bigger than previous ones, and the main challenge was to be selective on what assets to make to fill them and have variation, without loosing too much detail on the single item, but of course, luckily, the fixed point of view of a sport arena game does allow to keep props simple, quick and dirty (compared to an fps asset that is !) and still get a good ‘ensemble’ view.
Strictly speaking there’s no LODs in these, but Venice and size of the view of Canal Grande required that the further buildings be less detailed than those just behind the goals, it turned out very quick and effective to put the models of the detailed/hero lowpoly ones in a Blender scene (diffuse textures only in a Cycles material), render front views of 2 canal sides and then retrace low(er) poly shapes over the rendered 2d card. (in gallery you can see also an attempt to use a curved skybox type plane with a rendered background, but the camera has be able to go 1-2 floors high in a sport game replays, so that wouldn’t work at all)
The other thing about the buidlings is visible in left image of gallery: showing the final diffuse, using a brick tiled detail and base diffuse color (unique unwrap) . That’s something i like to work with : seems a straightforward technical thing to overlay a detail on a base, but actually involves a fair bit of painter/photograph eye to pick each time the right blend mode, color and saturation of both maps to combine and whether to use a mask to refine the mix (all of course bound by limits of realtime, even when something like ShaderForge makes it very intuitive to do with its nodes)
The last image in gallery above shows the baked light : static on the left , realtime on the right. There wasn’t a strict need to use dynamic GI for this kind of game, but i think unity’s approach makes a lot of sense in general, blending an advanced and dynamic solution that has low resolution and a simpler, static one that has detail, like soft shadows and contact bounces. This was done just before Unity added an option to add direct light AO to static bake ..which just goes in that direction , but the result is similar (contact shadows here are from a soft baked sun and sky)
Above some of the models : classic Venice boats, a load of windows doors and other facade details used on the buildings, and the Rialto model : the substance painter view is ..full of holes 🙂 because i didn’t export parts/modules that could reuse textures from other parts But it includes mirrored objects.. never got baking errors from those, and i guess i could setup Painter to show everything but only bake some, but this works fine, only requiring sometimes to do an exploded placement to get better ao (as usual i bake normal in small separate chunks by matching hi/lo poly objects names, but bake ao from everything to give more ‘food’ to procedural materials to make their effects)
Below more screenshots of finished level :
And the other level is Thai village : Venice was done just after and reused the water shader (though changed ..much muddier) This level has a bit less architecture, but also a lot of natural landscape, requiring some special attention to light and shading .
The water shader is technically simple , just some more nodes than a standard material: a base, a single detail reused in 2 scales to get resolution without repetition, a static mask for foam around objects (all animated with texture panning) and a planar reflection from stock unity effects.
It’s always risky to start adding nodes to a realtime material, before you know there’s a ton of them ! but afaik this should be still a simpler solution than SSR or transparency effects.
The atmospheric scattering plugin (from Blacksmith demo, at low settings) does add a lot in these types of landscapes : yes.. it’s a fog, but one that takes light direction into account, and a lot more natural looking than a simple fade to flat color.
Something that proved important here : limiting the work to the camera angles actually used in game. This level is based on a real world location, something amazing about the photos of this floating Thai village is the variety of roofs .. but those are hardly visible in game and anyway not so important to need many variations.
he houses on the waterfront, in reality, also are each very different, so i made a few models, then added a shader with a color mask for wall paint areas and a vertex color channel to get unique colors on the foreground buildings.
Below images of the individual assets in substance and more screenshots :
M.A.V. : Modular Assault Vechicle is a indie PC game where you can build your mech and fight other pilots, developed by Bombdog Studios.
I worked on unwrapping, making hipoly detail models and texturing all the mech parts in the library, and modelled lowpolys for some.
Credits for the base design and lowpoly modelling goes to the main dev of the game Chad Mauldin (http://bombdogstudios.com/) and Valerio Fissolo collaborated on modelling hi and low poly for the heavy weapon set.
Image below is the full set of pieces done in the 1st round, but more mech parts and env. assets are coming.
That’s quite a library of pieces, but also quite consistent set of materials, and hipoly detail types, so a big part of the job was a good workflow, for the texturing the key was the standard Substance workflow of setting material ids on hipoly pieces, then applying to all sets a single smart material with color keys for the mat ids (approx. 30 materials in total), combinations of plastic, metal, rubber in 3 shades (light, mid , dark) and dull or shiny versions . The camo you see is dynamic, applied in game.
The overview screenshot is in the game engine, Unity 4, with a custom hardsurface shader. The assembled mech pictures on top and below are Marmoset viewer renders (using same spec/gloss maps as in game but with full pbr shading)
Below screenshots of various parts in Substance painter , with test camo patterns. Turns out, pink camo is the best way to judge if the mask is good 🙂 and how much camo paint the mech will acutally get.
The exploded placement is there to get correct occlusion while baking hipolys, and models were split in even smaller parts and named to get clean normal map bakes .. all then put back toghether and in place with some python script/macros to handle the repetitive bits.
The medals are game achievements i modelled and rendered as images.
The last screenshot is inside Blender showing a bit of the workflow.. mat id list, some low and hi poly pieces, the list of named (-hipo or -lopo) pieces and script with buttons to quickly export to substance or to final fbxs for unity .
This is the 2nd arena from the Metris Street Football project. Like the next ones , this is based on real world locations, not precise ones, but generally popular and cool places where street soccer is played, like a city beach in Brazil.
This also proves i don’t only do postapocalyptic stuff! (and robots and sci-fi and ships…) Incredibly, the next 2 (Thai village and Venice ) even have bright sunny daylight ! 😀
The view of a city beach has lots of elements, from the natural (sand , rocks and water, for which i used Substance designer for the most important tileables like sand, and for the 1st time Shader Forge for some additional blending and detail masks) to the architecture.
And the list there could have been nearly infinite, so the challenge was to narrow it down to the minimum (1 umbrella, 1 chair, 1 background tower and ‘sets’ of parts for wood huts and gazebos that allowed some different combinations.
Lots to post from recent months ! Starting with this: environment art for PC game Metris street football for Metris Code.
“Ship Arena” (inspired by Terry Gilliam’s commercial from some years ago 😀 )
Modelled in Blender, textures in Substance, game engine and lighting in Unity.
I’ve done 3 more of these arenas (1 per month) recently, and i’ll be posting also another project i’ve done before that and that’s continuing now .
As for tech specs, it’s a indie pc game, uses Unity 5, so pbr materials and Enlighten (using a combo of low res realtime and more detailed baked GI ). Polycount was a bit more limited, aiming for 150-200k tris per level.
Textures budget is always a little less clear-cut : generally it’s all done with a 8-12 2k textures (knowing some might need ‘sacrificing’ to 1k) , 1-2 4k textures and 3-4 1k tileables and misc. textures, which runs fine on a modern pc even at 1440p but it’s anyway easily scalable for other hardware.
(Edit : 8-12 2k textures .. i mean sets of course ! so actually 3-4 images each , diff+opacity, pbr spec/gloss, normal and rarely emission or a detail mask )
Workflow has been pretty consistently Blender/Substance/Unity. The biggest new thing has been the export script i mentioned earlier to batch export quickly from blender to substance for hi-to-low bake and then to Unity for assembling the environment and lighting it.
This script i started is working ok as an internal tool for my work, but i’d honestly need a meditation week away from everything before it’s worth posting about as a general use tool. It doesn’t do anything fancy besides joining, renaming, repacking uvs without overlaps, fixing things like flipped normals on joining objects and rearranging ‘named’ uv layers in blender for the ‘numbered’ approach in unity …
But of course behind all the operations there’s a workflow and a logic structure : i.e. how i use object name suffix or parenting or scenes to organize all the copies of assets (for texturing and for in game use) and that’s very ‘personal’ (to my workflow and projects)
Right now, i have a bit of free time , so i could do that rethink and make sure any more python code i will write is time well spent, and hopefully that will make it more usable for others … Except 😀 , the priority is going to learning the Hard Ops modelling tool for Blender, which is going to be very useful for the other project i’ll post soon.
Models and textures for Rob Tuytel’s Golden Age project, These are hipolys for still rendering of VR panoramas.
I used the same workflow as for realtime game models, just using a bit more detail on the “lowpoly” (or better, in this case, ‘final’ model that is used in the scenes renders) so a few things like shutter hinges or thin frames are in the final lowpoly, but these aren’t much heavier than what’s used in a modern fps , the hipoly is still used, and baked to textures in Substance.
You can see these used in some amazing stills Rob has published lately on Artstation:
More info below :
First round of images from my latest work : Environment art for the PC 1st person puzzle game “Rewind”, out on Steam on the 31st of March , by Stubborn Horse Studio, main dev. Rachel Cordone.
My part was to develop the full env art kit for the game, starting from a white box layout (very important in this case, being the puzzles dependent on the shapes and dimensions of rooms) For look-dev , i had a small kit of assets from the prototype version and guidelines on design and style, but i did concept work for most of these assets, and that’s a part i always greatly enjoy.
The project was started in 2012 in UDK, so what you see is not PBR shading (even if most in this post is Substance painter screenshots) , all assets were made with spec/gloss textures, but the engine has different calibration than today’s pbr , and the ‘image reflections’ system used is similar, but a precursor of now commonly used probes and ssr.
I also did the full level building of 2 maps out of 7 , of course ‘full’ being relative to env art, but including lightmap, collision and all the practical testing of your assets .. Those not so trivial things like making sure that your super fancy sci-fi corridor with hundred of pieces actually can tile seamlessy around a 90° curve :D. Kind of important, and just what i needed, since i recently worked more on single assets than levels, but you need to have experience in building levels anyway, to make best possible assets for level builders.
Being an indie game, this approach of making ‘construction blocks’ that could have maximum reuse and flexibility was fundamental, and on the same line, the outdoor natural elements are a perfect subject for that and helped to give some variation.
Check pics description for more info and another post is coming with game screenshots!
PART 2 : Levels Screenshots !
This time i got to do them from scratch : including lowpoly model from histrorical references, baking hi to low poly and texturing, all in Blender and Gimp.
The workflow was conceptually the same as previous ship , but this time i didn’t use DDO, just Blender ! i used the same kind of operations and filters based on processing the NM, AO and cavity maps , but all was done in blender nodes.
First step is making a cavity from normal (with compositor nodes) , step 2 is making generic base “dirtmaps” : one similar to ddo’s “acid” effect (for generic discoloration effects) , a classic one for crevices and areas that gather dust or rust , and similar one but for exposed thin edges (last 2 could be 1 but it’s easier and more accurate this way). I bake this equal for all the model , later use them differently based on the material of the individual piece.
Step 3 is assembling a material in cycles nodes : there i do the remaining blending and mixing to recreate dirt effects (i.e. i take the crevices map , blend it with a tileable rust texture, or add the acid effect mask just picking the right color and opacity for it ) to define different materials for pieces of the same model , i use a color id map (just like ddo workflow) that i baked previously during the hi to low bake (so materials are assigned to hipoly indipendently from lowpoly topology)
Baking was done as usual, relying mostly on splitting the model into many (30-40) pieces to avoid interferences with normals baking rather than using complex cages.
To manage the process and the many pairs of lo/hi objects i used an addon called “meltdown” great script ! maybe a bit over-scripted lots of features but very easy to break (if you have multiple scenes etc..is it really necessary to make a copy of everything to bake? ) i had just started writing the same on my own when i found it done already , and with plenty of features , i’ll need to read the python and investigate.
It’s a great thing about Blender that with such features/addons you have good chances of being able to contact directly the author and discuss it .. too bad i almost never get around to do that ! (on my list besides meltdown and texture atlas , fbx export and normal edits )
Last piece is the island , this is still wip (half day sculpting on a simple basemesh , with another half it could hold up for close ups).
I got the base mesh from Nasa SRTM project ( they have the whole earth as elevation maps for free, with a resolution of about 30m/pixel ) imported into blender (.HGT is a bitmap with georeferencing and height infos) , refined the coastline using open street maps contours, then sculpted the rest from photo.
Another useful tool for this was Meshlab : the quadric edge collapse decimation filter is better than blender’s (including planar decimation) and comparable to Zbrush decimation master. It got the 3 million tris sculpt down to 60k tris keeping uvs (in screenshot, with normal map)
So the ingame island is a static mesh, not using terrain system because it’s used for a flyover and background.
This was more efficient and detailed, i guess the rule is: terrain systems are for when you really need to walk on it , in any point with same detail , otherwise it’s easier to manually put detail where needed , in this case about 10x tris density in the front cliff compared to the back of the island)
Note this screenshot and the ones with all boats and the sea are from Unity 5 , the rest are rendered in Marmoset toolbag.
Unity 5 uses PBR too, so it’s about the same .. but i find Marmoset still a bit better, temporal AA is a lifesaver if you have thin stuff like rigging ropes!
In particular, low glossiness materials (like wood) seem to work a bit better in Marmoset .. i get the feeling they still show nice and correct highlights even when gloss and spec values are very low. While in Unity .. they look just diffuse, so you bump the values up a bit but then they risk looking metallic in light setups with strong highlights.