Week 7-8 Creating first level, continued

This entry continues the basic exploration of creating terrain from scratch and the tools and concepts involved.

The basic idea with terrain is that you either generate it, based on settings, or import a grayscale bitmap, as mentioned earlier. Once that is done, refinement of the terrain begins. This process is a bit like sculpting with clay; refine, add, cut, reshape, refine etc. Moving from creating general large forms down to  more detailed areas, just as you would blocking an animation or creating a sculpture, is principle at work here.cryengine_07-8_heightPicker

You can see above where sharper forms were cut from the initially created environment. This is possible via the Rollup Bar> Terrain Tab>Modify>Modify Terain option area where the user can flatten, smooth and raise or lower terrain. In the shot above you can see a green circle that represents the brush. By using CTRL you can use an eyedrop tool similar to Photoshop, but rather than picking a color you are picking a target elevation (Height) for your modifications. This enables one to reference other elevations quickly without having to enter new elevation data each time there is a new idea or a change of mind. At the bottom of the Rollup Bar you have controls for outside brush radius and inside brush radius. The outside radius is how large the brush is, while the inside radius controls how smooth the effect is, similar to brush controls in ZBrush. So for example if the outer and inner radii are the same, the sculpting effect on the landscape will have a sharp edge, whereas if if the inner brush is considerably smaller, the brush effect will be smooth and more seamless on the landscape. CTRL-pick elevation, Flatten, Smooth, repeat. Don’t focus on a single area for too long, and don’t use too many props. Perhaps an object such as a house is a good reference for size when creating the landscape, but do not litter the scene with props just because you can. These are distracting from story or quest of your user/audience and they needlessly chew up resources both during design and In-Game mode. You also want to jump in and out of In-Game mode so you have a proper appreciate on your sense of scale. Being in God’s Eye view can sometimes be deceptive when it comes to detail and scale.

cryengine_07-8_vegetationA

Next up is the Vegetation tab on the Rollup Bar under Terrain. Adding vegetation is not the same as adding other geometric assets (thank goodness!) and is similar in some respects to adding vegetation in Vue, in that you can “paint” the land with things such as trees and bushes.  In the preview window, above, you can see that you simply select the required vegetation and then add it. These are .cgf (Crytek Geometry Format) files. This way one can easily add foliage without having to import the geometry of every singe bush and tree, and then spend untold hours placing, rotating, translating and otherwise refining green areas.

cryengin_9-12_vegetation_icons

Above you can see the vegetation icons for the following actions: Add vegetation object, Clone, Replace, Add category, Remove, Export, Import, Distribution, Clear, Scale vegetation, Merge vegetation and Put to other category.

As you apply vegetation, it aligns to the surface normals of your landscape. In other words, it is perpendicular to the surface. This makes appliyng vegetation quick and easy, but there will be times when you need to fix the rotation of a tree that is unnaturally sticking out of a hillside, for example, at an unusual angle. You can also turn off Align to Terrain. To translate vegetation: ALT_mouse: scale, ALT-CTRL: rotate and ALT+drag: move. Holding the Space bar while mousing over vegetation shows white boxes associated with each piece of vegetation, making individual pieces easier to select among many, for example, in a forest environment.

cryengine_9-12_environmentTab_painting_trees

Vegetation categories may be exported (Export folder, above) so that once you have done a lot of work, you do not have to repeat that work for a brand new level with a similar environment. Rollup bar, CTRL-select categories, then Export. ESC to exit Vegetation mode.

Some additional notes:

Use low-resolution vegetation for background areas and areas that won’t actually be explored. These are generally packs of grouped trees, usually 2D planes with basic textures on them. They would not hold up under close scrutiny but are fine from far away. This enable the creation of distance while conserving CPU resources.

Block out level boundaries in advance so you know where to put detailed vegetation.

Do not make such boundaries too “interesting”, as they will potentially distract players/users, thereby disrupting the flow of the experience. Nothing is more frustrating than wanting to explore an area only to stopped by an invisible wall.

As mentioned earlier, do not overpopulate an area with props simply to fill up space. Create variation in the landscape and allow shadows for certain trees, for example, to add detail and interesting variety.

The same process for adding vegetation can be applied to adding rocks. Rollup Bar>Objects>Brush>select. Combine vegetation, brushes and terrain layers to successfully create a good environmental  as opposed to focusing too much on one approach. Too much of anything is a bad thing, so add a unique item, such as a different species of tree, sparingly, in important areas, to create importance and distinction. It might not be consciously noticed by the player/user but it breaks monotony in the environment.

cryengine_9-12_environmentTab

You can see further options in the Environment tab, above. Note how you can even control cloud shadow texture and speed. This might not seem important but combining such details is what creates the immersive nature of the environment without being too resource-expensive. As in film and culling geometry in animation, you do not want to create an entire virtual environment and then cherry pick the best area, activity or scene for players or characters, you want to plan in advance so that you can have efficiency in rendering.

Right here, I think, is a good stopping point before spring break because the instruction that comes after this, for the second part of the semester, goes into a lot more detail regarding specific environmental attributes, such as fog volumes, water, caustic light, water foam, particles, roads, decals, Boids, visual dynamics etc. In the meantime, here are some screen-captures of a small area I have created using the basic ideas learned thus far.

TEST_ground_01

Above is the grayscale bitmap file I made in Photoshop. It is 2048 x 2048 in size. The lighter the area, the higher the elevation of the ground. I definitely recommend using a brush with soft edges to create forms, as the import into CryENGINE picks up an insane level of detail! The map above had to be smoothed out.

TEST_screens_layers_01

This is the result of importing the bitmap. You can see the grid applied to the surface. This might not look very big, but this area is pretty vast and I will need to become more familiar with sizes as I go along.

TEST_screens_layers_02

TEST_screens_layers_03

Above is a view from under the surface. Note the caustic light on the right. It shimmers very nicely.

TEST_screens_layers_04

Beginning to add some trees.

TEST_screens_layers_05

You can see the trees have shadows. The trees sway in the wind in real time and so naturally the shadows react. You can control the True or False for shadows for different trees, only having them where necessary to conserve resources. Some of the controls are True or False, while others are a value, for example from 0 to 1. Here I have pointed out how the surface normals impact vegetation. This can be controlled and used to create a more natural look, but you don’t want the trees to be too skewed. In the image below I am starting to experiment with adding textures to the terrain. As mentioned in another entry, up to 15 textures can be added via layers that can be applied or painted on.

TEST_screens_layers_06

I intend to keep experimenting with textures as well as with different lighting by using the Time of Day. Over the next couple of weeks I should be able to experiment more such that the interface will be familiar rather than an impediment as I move into learning the more detailed aspects of the application and the numerous environmental attributes. At some point I should be able to simply share a file with others who have downloaded the sandbox from Crytek, it’s just that, at this point, I am not familiar with which or how other files need to be shared so that assets (such as the bitmap I produced) and various attributes appear properly when the level is opened by others.

Leave a comment