[Game] UE4 Mesozoic Forest Update

I’ve completed a cycad as well as a test for ground cover. I’m aware that there was no grass in the Jurassic period, these grasses are just place holders for ferns cards. The real test was to see if dynamic raytraced lighting shadows the individual grass cards and they do. The video below is made with no baked lighting. It uses Light Propagation Volumes (https://docs NULL.unrealengine NULL.com/latest/INT/Engine/Rendering/LightingAndShadows/LightPropagationVolumes/) that can be enabled in UE4. If you’re interested in creating a similar scene with completely dynamic lighting I suggest you check out this book (https://www NULL.amazon NULL.ca/Unreal-Engine-Lighting-Rendering-Essentials/dp/1785289063) to get a better understanding of light in the Unreal Engine.

[Game] UE4 Speedtree Mesozoic Forest

Speedtree Fern

(http://www NULL.terrymatthes NULL.com/wp-content/uploads/2015/09/cycad NULL.jpg)

Work has been interesting lately as you may or may not know Mortal Kombat X has been canceled on last gen and I had been working on that for the last 7 months, so that was a bit of a blow. I’m on to a new project though and a publisher I’ve never worked with before so things are new and interesting in that respect. In my spare time I’ve been reading about and really loving the updates to the Unreal Engine for instanced foliage. I’ve taken it upon myself to follow in Koola’s footsteps and create some amazing forest work. If you haven’t seen his work check out his Youtube channel (https://www NULL.youtube NULL.com/user/koooolalala) or WIP thead (https://forums NULL.unrealengine NULL.com/showthread NULL.php?58385-Koola-s-stuff) over at the Epic Games forums. If you’re not aware there have been some big changes to instanced foliage and you can now use Dynamic GI to light them. Coupled with DFAO (https://docs NULL.unrealengine NULL.com/latest/INT/Engine/Rendering/LightingAndShadows/DistanceFieldAmbientOcclusion/index NULL.html) (Distance Field Ambient Occlusion) and Ray Traced Shadows (https://docs NULL.unrealengine NULL.com/latest/INT/Engine/Rendering/LightingAndShadows/RayTracedDistanceFieldShadowing/index NULL.html#settings) it means no more waiting for crazy long lighting bakes. All this realtime lighting does come at a cost though and the performance hit isn’t small. To keep up I’ve had to upgrade my system, but it’s been due for a while.

My current rig (Intel Q9550 @ 2.9Ghz with 8GB RAM, Nvidia 560Ti and 10K RMP HDD) is 7 years old. I’ve decided to follow Epic’s suggestions (https://answers NULL.unrealengine NULL.com/questions/21631/im-building-my-own-pc-for-ue4-development-what-do NULL.html) and upgrade to a i7 5820k (6 core 3.3Ghz) with 32GB RAM and 2 SSDs. The only difference is I chose to go for an Nvidia 960 instead of a 770. With the new Nvidia line (http://wccftech NULL.com/nvidia-pascal-gpu-gtc-2015/) boasting a 10x performance increase coming out next year, I’m going to hold off on a major video card upgrade until then. If you’re interested in trying out the new GI system head over here (https://docs NULL.unrealengine NULL.com/latest/INT/Engine/Rendering/LightingAndShadows/LightPropagationVolumes/index NULL.html) to learn about Light Propagation Volumes and how to enable them in the new engine, there’s some “.ini” tweaking involved.

To test this out I’m creating a small Mesozic forest and I’ve Pinned some reference (https://www NULL.pinterest NULL.com/terrymatthes/prehistoric-forests/) up for anyone who wants to follow along. The biggest difference between forests in the Mesozoic and now is the lack of grasses. Ferns largely took their place. As a species grass didn’t evolve until about 70 Million years ago, which means it missed most of the dinosaurs. Another big difference is the shear amount of Cycads (https://en NULL.wikipedia NULL.org/wiki/Cycad) and Ginko Bilobas (https://en NULL.wikipedia NULL.org/wiki/Ginkgo_biloba). As you can imagine it would be nice to put a dinosaur in this forest, but I’m trying to concentrate on the forest itself and I’m looking locally for someone to collaborate with on the dinosaur(s). I’ve started to create speed tree templates I can work from for the plants while I wait for my new system to arrive. I’m not worrying about LOD too much right now as some early tests showed it’s handled automatically quite well by the Unreal Engine and Speedtree. One thing that’s not though is the lightmap UVs. They are OK, but do need tweaking. Your material also makes a HUGE difference. If you’re expecting to plop plants into your level with a directional light they are not going to look super. You need to put some work into a good material that will properly shade your plants. Here are three of the plant templates I’ve came up with so far. A couple of these are based on speed tree models that were tweaked for performance. I’m going to follow Koola’s suggestions and keep the lowest LOD’s at or below 7K polys. For now I’m using the default Speedtree textures, but will create high resolution custom ones for the final output. The elevation data for this project is based on GIS data from The National Map Viewer (http://nationalmap NULL.gov/viewer NULL.html). When that becomes a bigger part of the  project I’ll expand upon how that’s being used.

Speedtree Fern (http://www NULL.terrymatthes NULL.com/wp-content/uploads/2015/09/FernHigh NULL.jpg)Speedtree Small Pine (http://www NULL.terrymatthes NULL.com/wp-content/uploads/2015/09/ConiferSmall NULL.jpg)Speetree Giant Conifer (http://www NULL.terrymatthes NULL.com/wp-content/uploads/2015/09/CedarTall NULL.jpg)cycad (http://www NULL.terrymatthes NULL.com/wp-content/uploads/2015/09/cycad NULL.jpg)

[Game] World Machine Mountains

World Machine Detail Comparison

Mountains and terrain in general is something that I’ve wanted to experiment with more for quite some time. A project came up at work recently and I decided to try my hand at creating some custom terrain in World Machine. Typically my process for creating terrain was fairly simple. First I would model the terrain very roughly on a plane in Zbrush, then I would add detail by adding Perlin noise values. Lastly I would render a height map of this in Maya and then import that into the engine. This time around I’m creating the mountains as a mesh to be rendered in Maya so I though this would be a nice opportunity to use World Machine. The mountains in the shot are to be very sharp and pointed with heavy snow cover. The image below is a node network in World Machine showing the creation of my mountains that led to their final output.

Simple World Machine Mountain Network (http://www NULL.terrymatthes NULL.com/wp-content/uploads/2015/05/wm_MountainNetwork NULL.gif)
The base of the mountains comes from two very strong height maps. The gross shapes are formed from the height map values of a Voronoi noise. The breakup comes from Perlin noise. These two height maps are added together to create the base shape. A large-scale is used for both the Perlin and Voronoi noise to facilitate the larger details. If the noise were smaller this would increase the texture repetition in the noise and give us a higher frequency detail.

The next modification to the shape comes from the “Simple Transform” node. This node isn’t as simple as it’s name makes it out to be. It actually adds quite pronounced features to your terrain. You can create canyons, glacial wear, plateaus and other common terrain features to be eroded further with World Machine’s “Erosion” node. The “Select Height” node is used next. This lets us specify the top heights of the terrain so we can then erode the steep mountain faces in a different way then the low valleys. The low valley detail comes from the second Erosion node in the network. You might think its silly to erode the same terrain twice, but if you look closely you’ll see we’ve plugged the height map output from the first Erosion node into both the main input of the second Erosion node and the mask input. Now we can tweak this node to change the low altitude detail because the mask protects the steep mountain face detail from being eroded again.

Lastly we add snow by plugging the second Erosion node into a “Snow” node. This will give you a basic setup you can tweak for snowy mountains. There is a “Basic Coverage” node used to add some detail, but these mountains will be too far away to benefit from this in the shot. I took some comparison shots of the mountains in world machine at different details. You can set the resolution of your terrain in the “World Properties”. The biggest difference you notice is the tightness of the eroded crevasses. The higher the resolution is the narrower they become. For really far of mountains you could get away with 512 if you had some heavy depth of field. I would prefer the detail in a resolution of 2048 for most shots thought. The jump from 2048 to 4096 doesn’t yield as significant a change as the jump from 1024 to 2048.

World Machine Detail Comparison (http://www NULL.terrymatthes NULL.com/wp-content/uploads/2015/05/wmComparison NULL.jpg)

That is the base of the mountains for the project, the next part is the sky behind them. I plan on using high resolution NASA galaxies photos in the sky. I’m going to use the photos to texture the emission  of particles coming off of a polygon plane in Maya.

[Game] Unreal Engine 4 Architectural Rendering WIP 1

UE4 Architectural WIP 1

I took a look at the realistic rendering demo (https://www NULL.unrealengine NULL.com/blog/new-release-realistic-rendering-showcase) that Epic Games posted. It has fairly nice soft shadowing and pays close attention to how your eyes behave in light. I think the gap between pre-rendered and real time visuals is staring to get close enough that you could definitely use the Unreal 4 Engine for pre-visualizations and not have to visually take a gigantic hit. In fact you can probably produce more work at a faster pace using UE4. I’m building a small scene to create as realistic a render as I can using the new engine. No holds bared and no excuses. There’s going to be soft shadows, GI, ray traced light going through and off reflective and refractive surfaces plus caustic reflections! That is “literally all the things” when it comes to setting up great looking render. I’m going to be following the “PBR” rendering workflow so if you’ve never taken that challenge up this should be a good intro. There’s also a new PBR rendering contest going on now at Polycount (http://www NULL.polycount NULL.com/2014/06/14/petrolblood/). Here’s another great link to a Poly count forum thread (http://www NULL.polycount NULL.com/forum/showthread NULL.php?t=124683) that deals with PBR in games.

The shot you see here is a preliminary layout done in Maya with nearly all the rough models finished. The wall/ceiling moldings still have to be made. The next step is to take them into ZBrush. There I’m going to sculpt some more detail into some of the pieces and then use the retopology tools to lower the polygon count of each piece.
UE4 Architectural WIP 1 (http://www NULL.terrymatthes NULL.com/wp-content/uploads/2014/06/restaurant NULL.jpg)

[Game] Unreal Tournament Blockout

As a lot of you may know Epic Games announced that they are working on a new Unreal Tournament title. They’ve been doing weekly updates through twitch to keep the development community involved. You can check them out here: http://www.twitch.tv/epicgames (http://www NULL.twitch NULL.tv/epicgames). Having been a big fan of the old Unreal titles I’ve decided to create a level to be released with the launch of the game. I signed up with Epic so I could download the new Unreal Engine and check it out. Wow is it great. I can’t believe how much the UDK evolved since its last release. It finally feels like a full-blown 3D app. Each week I’m going to post an update of the project through all it’s stages. First I have to finish blocking out the level. Then it’s onto simple meshes and lighting. I’m excited about this project because I think it’s a good chance to gain exposure in the development community.

The blockout is being done with the BSP volumes in the editor. They’re super fast and easy to work with. The “Geometry Mode” works the same as in the old UDK letting you edit the polygons that comprise the BSP volumes on the fly. I should mention that while the editor was stable most of the time it was very unstable while working in geometry mode. I crashed once for about every 3 edits I tried to make. In this particular stage my main concern is getting the spacing right between all the elements that will comprise the arena. I’m working with an early alpha so the only movement the player has is walking and dodging. While placing all the shapes around I’m trying to think of paths the player will take through the environment.
arenaBlock001 (http://www NULL.terrymatthes NULL.com/wp-content/uploads/2014/05/arenaBlock001 NULL.jpg)
The flow of the map is the single most important factor so I don’t want to create any dead ends where the player feels cornered. There should always be at least one other path they can use to escape an engagement. After the general layout is in place I’ll start to adjust volumes along the Z-Axis (Y-Axis in Maya) a little more. The player moves largely on a Horizontal plane so creating platforms at different heights and depressions in large flat expanses can help break up the monotony of that very planar movement.

I’m super pumped and I think this is going to turn out great so stay tuned for updates :)

[Game] Combat Cross Final

Castlevania Combat Cross

Combat Cross WIP 1 (http://www NULL.terrymatthes NULL.com/wp-content/uploads/2014/04/combatCrossWIP1_001 NULL.jpg)
After a bit of a later night I’ve finished my submission for work. Most of the chains are ran along a CV curve, with a few being placed in post. I rendered out each element so that if needed I could rearrange the composition. I tried to keep the rendering fairly simple as I just didn’t have enough time to model and render the cross with proper materials. This limitation almost made it more fun as a project though. Instead of locking down the composition before rendering I could play with it in any way I chose after. This felt like more of an artistic approach which is in with the spirit of the project. I used very simple MIA materials and an ambient occlusion pass when composting everything. The original was rendered at 300 DPI as it was to be printed.

Castlevania Combat Cross (http://www NULL.terrymatthes NULL.com/wp-content/uploads/2014/04/terrancematthes_artsub NULL.jpg)

[Game] Combat Cross WIP 1

Combat Cross WIP 1

I’m a sucker for gothic and macabre games. When the Castlevania: Lords of Shadow 2 came out last month I new I had to play it. Lords of Shadow 2 is a lot of fun in it’s own right, but I really missed the awesome whip animations in the original reboot. Now Dracula uses his own blood as a type of magic whip and the splashy nature of this doesn’t feel as solid as the chain whip in the last game. Work is starting to get busy as we near the end of a project and there has been a company wide call for art submissions. There’s a raffle with prizes to be won based on all the entries they receive. We have just over a week until we have to submit our art and that’s a little less of a heads up than I would like. To make up for the short time I’ve decided to do a prop instead of a scene.

My final submission will be a rendered shot of the Combat Cross laying on a cracked marble floor aged and covered in cob webs. The first step was to model the basic shapes of the cross. For most of this I started with primitives in ZBrush. If a shape was made of multiple primitives I would merge them, create a dynamesh with the new merged tool and then ctrl drag to connect their topology as a single dynamesh. I haven’t decided if I want to do a low poly cage over the entire mesh, or just export the decimated parts into Maya and then group them all. The leather rapped handle was created in Maya by making low res polygon rings and placing them up and down the shaft of the cross. The next step for them will be to smooth them out in ZBrush and using the move tool to make them overlap without penetrating strangely.Combat Cross WIP 1 (http://www NULL.terrymatthes NULL.com/wp-content/uploads/2014/04/combatCrossWIP1_001 NULL.jpg)
I’m not 100% sure, but I think I’ll be chosing to render this with VRay instead of Mental Ray. I know I’m going to want a layered material for the dust over all the surfaces and Mental Ray drops the ball entirely on this. There is a layered shader, but it doesn’t make it all the way through the rendering pipeline unscathed. VRay also seems to be a lot faster in general. I’ll be posting more about the cross this week as the submission is due this Friday (April 11th 2014).

[Game] Digital Painting

I don’t do digital painting that often, but I’ve been drawing more and I thought it would be fun to take a sketch from my pad and see it through digitally.

Photoshop CS4 was terribly slow through about half the process. I couldn’t even paint in real time on my tablet. I installed CS5 and the problem went away. No more slow down. At the MIGS convention last year one of the artist from Volt had a great suggestion. He mentioned that you can have two copies of the same document in Photoshop open at the same time. This helps you always have a one to one version up on a separate monitor. I loved doing this. It was really helpful to be zoomed in working on one screen and then be able to see how my changes were effecting the 1:1 scaled document on the other. This option is under the “Window” > “Arrange” menu.

I’ll be back soon with another project. I’m just testing out how I can create some really great looking moss using polygons. That’s part of why I painted some into this scene.

I also wanted to say “Thank you” to everyone who have been sending in questions. I’ve been getting a lot more than I usually do and they’re always fun to answer.

Digital Cliff Painting (http://www NULL.terrymatthes NULL.com/wp-content/uploads/2014/01/cliffpainting2 NULL.jpg)

 

[R&D] nHair Chain Strand Rig Part 2 of 2

This post is a continuation of my last post here (http://www NULL.terrymatthes NULL.com/maya/animation/maya-nhair-chain-strand-rig/). In the first post I explained that I was trying to create a strand of chain that was dynamic, but pinned at both ends like a strand of Christmas garland. At the time I wasn’t able to find any information on how to pin the loose end of the chain to an anchor pertaining to nHair. All tutorials I read/viewed were to do with the legacy hair system whose constraints don’t work on nHair curves. Well I’m here to report that I’ve found the solution I needed.

When working with nHair you need to make sure any objects you want it to interact with can also be seen by the nucleus solver. For my purposes this meant turning the polygon object representing my anchor at the end of my chain into a nMesh passive object. Once my polygon anchor was converted it could be used for a “component to component” nConstraint. I constrained the last CV in my dynamic hair curve to a vertex on my polygon anchor. Everything works great now and I can move either end of the rig around and it affects the chain as it should.

Time for bed *yawn*… well maybe a couple episodes of Full Metal Alchemist first. Damn you Netflix!