Plants – the Supporting Actors

First off, a disclaimer: Now that the school year is about to start at UW-Stout, my teaching, chairing and program directing duties will be (unfortunately) eclipsing much of any hope I have of keeping this blog frequently updated.  My goal will be to have something posted every few weeks, to keep you informed of the snail pace progress that occurs during the school year!

stump_detail

Various plants filling in as groundcover in Tombeaux

Last month, I posted about the importance of trees (namely, the White Pine) in my game. The trees are essentially characters in my game, with a focus on their historic, environmental, and commercial value. I’d like to follow-up with a sister post, about some of the smaller foliage elements – the supporting actors – that are scattered around the river scenes of Tombeaux.

scwrs_playtest

A scientist from the St. Croix Watershed Research Station, playtesting Tombeaux (photo courtesy Greg Seitz)

I once again returned to the source – the river – to get the evidence I would need. Through consultation with scientists at the Science Museum of Minnesota’s St. Croix Watershed Research Station and a trip out on to the St. Croix, I spent a mid-August day doing some field research that would help me refine my focus (I was also able to get some valuable playtesting time in to the trip).

foiliage

Foliage in Tombeaux

There are a myriad of common plants one might find in a variety of natural settings (around the world), whether they be prairies, forests, or rivers.  As examples, daisies, queen anne’s lace, cattails, ferns, knapweed, various grasses, and mushrooms are found (and easily recognized) by people around the country, and sometimes world. Plants like these are also native to the St. Croix region, and thus necessary elements to my game, providing the “filler” that I am looking for regarding ground cover around the river. Just as with the trees, I used a fantastic program called Speedtree to create all of my plants.  In a few cases, I was able to employ and modify the template of a plant they had already created. But in most cases I found that it was necessary to strip down the structure of a plant to create a new, unique looking species that would fit my specific needs.

Photo of Wild Celery

In addition to the common plants mentioned above, there were a few unique plants that I knew I would need to create and represent well in the game, due to either their history or their “prolific-ness” on the river. Regarding the latter, wild celery (Vallisneria americana) is in fact a frequently found piece of vegetation around the country and world, but also very unique to the St. Croix. It’s a type of “tape grass” found in freshwater environs and is commonly sought after by waterfowl; it has a beautiful movement as it flows with the underwater currents. When one is on the St. Croix, the plant seems to be everywhere – serving as both the bane of the fisherman’s motor and also dinner for a duck.

wild_celery

Wild Celery (and fish!) in a shallow river area of Tombeaux

I wanted to be sure to represent this plant – even if in a subtle way – in Tombeaux. Making it in Speedtree was somewhat easy – I first created a simple grass cluster, and applied a subtle amount of force to the mesh, which resulted in a wavy feature that seemed to fit well with the natural flow of wild celery. When a slow, weak wind force was applied, it gave the look of a grass moving underwater.

comp1

Using Speedtree – Wild Rice (Top), Wild Celery (Bottom Left), & Queen Anne’s Lace (Bottom Right)

The second unique plant was a bit trickier. Northern Wild Rice (Zizania palustris) is a well-known upper-Midwest staple, especially in its final form on the dinner table (it is not actually a form of rice, but a grass with grains growing from it). This plant is particularly important to Tombeaux, due to its historical significance in the Ojibwe culture (both in the past and still today). The harvesting and preparation of wild rice is an art in itself, implementing a series of tools and extremely involved processes, including the use of canoes, knockers (large wooden sticks that remove the grain without damaging the plant), and winnowing baskets that are made from birch bark.

Photo of Wild Rice

When the St. Croix and surrounding tributaries were completely flooded due to logging (with both high water and the presence of logs), the wild rice began to dwindle. With a spiritual, cultural, and economic way of life for such a large population disappearing, it foretold of what was to come with land and rights also going by the wayside. My use of the plant in Tombeaux thus has both historical and environmental intentions, hoping that it catches the eye and interest of a player to learn more.

Drawing of Wild Rice Harvest by S. Eastman

Due to it growing so thick in a natural environment, I wanted to make the wall of wild rice exactly that – a thick collection that swayed in the wind, not allowing the player to navigate beyond its edge. In the game, I’ll have various tools and canoes nearby, to provide the story of this important part in Ojibwe culture to the player to observe and consider. Using photos from wild rice plants, I applied textures and wind properties to the plants in Speedtree, to give them as real a representation of the actual plant as possible.

wild_rice

A thick wall of wild rice in Tombeaux

I hope this brief glimpse into some of the “supporting actors” of Tombeaux’s environment has helped you gain a better understanding for both the process and the meaning behind their creation.

dam

Looking past the cattails at a beaver dam in Tombeaux

Advertisements

Art Update

I thought I’d put up a post showing some of what I’ve been up to, in regards to modeling and texturing over the past few days. Note: nearly all of this is WIP, so certain textures and details are yet to come!

I’ll start with the cabin, where the player will frequently be returning to throughout the game. I modeled it in Maya and wanted to keep the exterior under 1,000 tris, all while trying to recreate a cabin similar to an authentic homesteader’s cabin. As you can see, most of the detail work is handled by the texture maps, since it has flat walls that don’t demand a high-detail geometry profile. Also, the player will not be able to walk around the entire cabin, so my focus was mainly on the front and sides of the structure. Soon, I plan to add a handle and hinges to the door, a stove-pipe on the roof and wooden boards nailed over the windows.

cabin_maya

Base for Cabin Exterior in Maya (835 tris). Inset: reference image

Albedo & Normal Map for Cabin Exterior

Albedo & Normal Map for Cabin Exterior

I have also modeled a few outbuildings/objects for the cabin.  The outhouse will sit in proximity to the main structure, and the lean-to will be found behind the cabin, as if it was a later addition to the home. I’ve created some barbed wire fencing as well, using albedo, normal, and transparency maps. Its design is based on the 1874 version by Joseph Glidden from DeKalb, IA (itwas the first barbed-wire patent awarded in the United States).

Outhouse

Outhouse in Maya (188 tris)

Lean To

Lean-to in Maya (166 tris)

Barbed Wire Fencing. (L: Glidden's 1874 Patent, Top Right: Model in Maya, and Bottom Right: Transparency Map for wires.

Barbed Wire Fencing. (lef: Glidden’s 1874 Patent, top right: Model showing textured and untextured versions in Maya, bottom right: Transparency map used for wires (black makes it invisible, white makes it visible).

Cabin, Outhouse, Lean-to, and Fencing (NOT scene from game, just set-up for showing models)

Cabin, Outhouse, Lean-to, and Fencing in Unity (NOT scene from game, just set-up for showing models)

I’ve also steadily continued to create the rocks and cliffs that will be found in the game.  As I talked about extensively before, the environment in which my game is set demands a great amount of focus on these geological creations. At this point, I’ve created one giant cliff (2K tris), two medium cliffs (1K tris each), and two large rocks (500 tris each).  My goal is to have about double that regarding assets to choose from, in order to dress the river scene’s set so that it is both believable and not redundant.

Cliff in Zbrush (top) & Maya (bottom)

Medium Cliff in Zbrush (top) & again selected amongst the other rocks/cliffs Maya (bottom)

5 Rocks/Cliffs, separated for demonstration (in-game)

5 Rocks/Cliffs, separated for demonstration in Unity

As seen above, to create objects with unique silhouettes (that can stand on their own as interesting pieces) is one challenge, but to also design it so that they work as a “team” in a modular fashion is a bit trickier.  Below, I’ve duplicated and arranged the five rock/cliff models into a grouping to show what I mean. I will need to eventually line both sides of my river level with rock and cliff formations that have unique nooks and crannies, so as to create memorable images and moments for the player to stumble-upon during their experience. I’ve thrown in some trees from Speedtree as well, to provide scale and reference.

Shot of assets (NOT scene from game, just set-up for showing models)

Modular cliff set-up (using 5 unique, instanced assets) (NOT scene from game, just set-up for showing models)

Shot of assets (NOT scene from game, just set-up for showing models)

Modular cliff set-up (using 5 unique, instanced assets) (NOT scene from game, just set-up for showing models)

While I’m content with the modeling pipeline I’ve established for these rocks and cliffs, I still need to give a lot of attention to their texture maps.  Currently, all of the geological forms share the same non-native, generic albedo texture, and while that is helpful for continuity, it becomes a bit boring when the player gets closer to the forms. In the coming months, I plan to return to the St. Croix River to shoot reference photography of the sandstone for the base rock textures.  I’m also planning to add lichen and moss into the secondary albedo detail maps, in order to give more interest for close-up inspection. Finally, I plan to turn the specular highlight way down (unless the rocks are wet, of course, which some of them will be!), as I’ve cranked it up only to show the secondary normal detail map. When it comes time for set-dressing, I’ll also be interspersing natural growth throughout the cliffs, such as grasses, flowers, weeds, and even trees.

Cliff Detail (NOT scene from game, just set-up for showing models)

Cliff Detail – albedo and spec maps will be changing (NOT scene from game, just set-up for showing models)

Cliff Detail (NOT scene from game, just set-up for showing models)

Cliff Detail – albedo & spec maps will be changing (NOT scene from game, just set-up for showing models)

So, hopefully this helps you envision the world of Tombeaux just a bit more, as the objects (both natural and human-made) are beginning to take shape and make their way into the game engine! As always, I’d love any comments, questions, or constructive feedback in the comments section.

Shot of assets (NOT scene from game, just set-up for showing models)

Shot of some assets from Tombeaux (NOT scene from game, just set-up for showing models)

Like a Rock

The Cliffs of the St. Croix

Some cliffs of the St. Croix

For this post, I thought I’d focus on the pipeline that is involved with making a fairly common asset found in my game – ROCKS.  Due to the outdoor level taking place on the St. Croix River, I’m trying to stay as true as possible to the natural environment one would find on that river.  For anyone who has traveled to the St. Croix, they probably know that the lower St. Croix (as you get closer to Stillwater) is lined with beautiful cliffs that surprise you around each bend in the river.  Sometimes it is a small ledge that creeps up on you, while the heights of other towering cliffs invite – or even dare – you to jump off its ledge into the waters below.  Due to this diversity, I knew I couldn’t just make “one cliff to rule them all”, but instead would need an assortment of fat ones, skinny ones, tall ones, short ones, big ones, small ones, and (more often than not) oddly shaped ones.  People who play my game will be see quite a lot of these rocks, so I knew that giving special attention to these guys was important, even if it did seem counterintuitive to care so much about them 😉

A mirror of the same cliff, found two different times in

A mirror of the same cliff, found two different times in “The Vanishing of Ethan Carter”

Since this was my first round at creating a rock for the game, I decided not to attempt an entire giant cliff, but instead approached it from a modular standpoint. If done right, a game level can have multiple repeated objects in the scene, without the player even realizing it (unless they are really REALLY looking for it).

A game that does this well is The Vanishing of Ethan Carter (above).  Through flipping, rotating, and scaling, they achieved a lot of visual diversity at a low-cost. In fact, when I started looking for it, identical rock formations and textures began showing up throughout the game. If you haven’t yet played this game and are a fan of first-person adventure/exploration titles, it comes highly recommended (ironically, it is supposed to be set in Wisconsin, yet it is made by a European studio!).  The game is actually so gorgeous that as a game artist it depresses me every time I play it (the rocks are so real you’d think you’re looking at a photo (and it turns out that you actually are!)). They didn’t actually do as much modeling as you’d think, but instead took hundreds of pictures of rocks and turned those photos into 3D models and textures (using photogrammetry). I’ve got a friend and fellow game design colleague at UW-Stout, Seth Berrier, who focuses a lot of his research in this field. He’s given a number of really interesting talks that tie this advanced tech into popular uses like game asset creation and archival preservation.

3_rocks_cliffs_ideaboard

An idea board of St. Croix pictures, created to visualize silhouettes and scale for Tombeaux

To begin, I made out an idea board (above), so that I could start envisioning how these rocks would be put together in the game. For this go around, I aimed to create a medium-sized rock that could be stacked and combined with others to create a larger whole. I also wanted to keep it below 1,000 tris (tessellated triangles created for the game engine render it on-screen), so I was going to depend a lot on the maps I’d be placing on the object.

My preference for a 3D modeling program is Autodesk Maya, which is basically an all-in-one poly and NURBs modeling program that incorporates a great deal of other features like rigging, animation, effects, and rendering (to name just a few!). I knew that to get a believable rock, I’d need to also use Pixologic ZBrush, organic sculpting software that uses a pen tablet, and attempts to simulate working with clay.  To begin, I created a polygon cube in Maya and smoothed it twice, to make a more pillow-like structure (below).  Starting in Maya allows me to establish good topology right away,and sets up my pipeline for going between Maya and ZBrush using .obj files.

Starting out in Maya (top) and then on to ZBrush (bottom)

Starting out in Maya (top) and then starting to form the silhouette in ZBrush (bottom)

Once the mesh was exported from Maya, I imported it into ZBrush and began working.  As with any artwork, I began with broad strokes before diving deeper into detail.  I made deep cuts into the rock, using a brush that simulates cutting butter with a wide knife (almost more like pressing).  I also continually went back over specific areas, building up the digital clay again (see above). Since ZBrush is such an extremely powerful tool in a modeler’s bag of tricks, one can get lost for hours in the little details, so I needed to continually remind myself that this part of the pipeline was specifically focused on silhouette – both due to the number of these that I will need to create and the simple fact I was working on a ROCK and not Michelangelo’s David, I did not need to dive too deep into sculpting the details – that can be shouldered by the textures. I relied mainly on a small collection of 3-5 brushes to make the chiseled and broken effects I was going for.

Near the end of the sculpting phase in ZBrush with a clay polish pass

Near the end of the sculpting phase in ZBrush with a clay polish pass

Once I was happy with the shape and overall rough texture of the object, it was time to bring this high-detail mesh down to a manageable level that could be worked with in the game engine.  As a reminder, I was shooting for <1,000 tris for the object, and the current number in ZBrush was around 630,000 tris (which is actually fairly low for a model in ZBrush).  I lowered the polycount through ZBrush’s Decimation Master plugin, which brought it down to just under 1,000 tris, and I was ready to bring it back in to Maya (below). I held on to the higher resolution model, as I’d use it later on to create the details in the normal map. A normal map is a very important element to any game that is aiming to show high amounts of detail on the surfaces while also keeping the total polycount low. It is an image that catches light in specific angles, tricking the player into thinking that there is surface detail or texture on the mesh, when it is all really just a trick of light and image.

Final Decimated Mesh in ZBrush and lo poly version in Maya

Final Decimated Mesh in ZBrush and lo-poly version in Maya,

Now that I had the silhouette of the rock formed, it was time to work on how the textures would be applied to the mesh. While some people prefer other packages or plugins for this, I’m a Maya traditionalist, so I did it the old school “manual” way.  Essentially, I cut along some of the mesh surfaces, unwrapping the mesh from a 3D object to lay it flat on a 2D plane (below).  This would allow me to take a 2D image (created later) and “wrap” it back up around the mesh the same way I unwrapped it. This UV map data also will tell other programs how to read the mesh’s connections to images, materials, and textures.

Laying out the UVs in Maya

Laying out the UVs in Maya

Once finished with the UV stage, it was time to bring all of what I had worked on to this point (lo-poly 1K mesh in Maya, hi-poly 630K mesh still in ZBrush, and flat 2D UV coordinates from Maya) into the third tool in my pipeline, xNormal.  xNormal is a free piece of (Windows-only) software that does a wonderful job of reading the hi-poly mesh details and projecting them on to the lo-poly mesh, by placing them flat on to the UV coordinates. It creates normals, ambient occlusion (or AO), specular, and many other maps as well, automagically for you. After baking out a normal map and ambient occlusion map, I brought the rock into a fourth program, Marmoset Toolbag 2.  While Maya can display the normals just fine, Toolbag does a great job of simulating closer to how the game engine will present it to the player with HDR lighting, real-time rendering, and skyboxes.

Baking the maps in xNormal and previewing in Maya and Marmoset Toolbag 2

Baking the maps in xNormal and previewing in Maya and Marmoset Toolbag 2

For the purpose of the game, these normals looked good.  I was still going to be adding a few more maps on top of this, which will give color, detail, and specular highlight to the object.  All of these things involved me working in Photoshop with tiled textures.  The first texture I was going to take on was the albedo (formerly referred to as diffuse, before Physically Based Rendering came along), which handles the color properties of the texture.  Using cgtextures.com (a site bookmarked by every texture artists out there), I found a small tiling map of a smooth, worn rock face that I thought might look good on my asset (top left in below pic).  Since I wanted my overall texture size to be 2048 x 2048, I tiled this 8 times and did some image editing to it, resulting in the main tiled albedo texture for my rock (top middle in below pic). Finally, to create my main normal map, I used the map created by xNormal as a base, and then turned my albedo texture into a normal map to overlay on top of it (top right in below pic), using the sixth program in the pipeline, NDO (a Photoshop plugin). NDO (by Quixel) is another automagic program, using presets to turn your images into highly detailed normal maps.

8_rock_textures

Various Maps that go into the texturing the rock, using xNormal, Photoshop & NDO

In order to achieve the detail I wanted for players to see when they were close to the rock, I needed to also create a secondary normal map, as well as a specular map.  The game engine I’m using supports secondary maps, which go the extra mile in providing realism to a scene.  I went through the same pipeline as above to create this, based on a higher-contrast image I found on cgtextures.com and using NDO to create the normals (bottom midde in above pic).  Since I didn’t want my rock to be too shiny, I toned down the specular map to a dark grey, so only certain areas would catch the light in subtle ways in the engine (bottom right in above pic).

Now that I had the lo-poly mesh and five different texture maps (Albedo, Normal, AO, Spec, and Detail Normal), it was time to bring it in to the seventh and last software program in the pipeline, the Unity 5 engine.  While the procedure of getting the textures on the rock were fairly straightforward, I needed to spend some time tweaking the render settings and lighting for a bit to achieve the results I wanted. I’m still not 100% happy with the lighting, but it will have to do for now. So as you can see, the process for creating assets from scratch (which is unfortunately rare these days) is somewhat tedious at first, but once one gets into the flow, things can go relatively quickly.

Final Rock Asset in Unity 5 (detail normal/spec in corner)

Final Rock Asset in Unity 5 (detail normal/spec in corner)

If you have any tips or tricks (or questions!) for asset creation, feel free to share them in the comments below.  Thanks for reading, and rock on! (sorry)