Author Archives: admin

Scene design in Unreal

Now that I’m starting to get a handle on the asset pipeline from Zbrush to Maya to Unreal, I’ve begun bringing in a some of the assets I’ve built and arranging them.

Unreal1
Fountain, column and lilies from far away
Unreal2
Closeup on column and lilies

When I play-tested it, the scale seemed off. I found some documentation that says a basic Player is apprx 180 Units high. Unfortunately in Unreal, objects are simply measured in terms of relative scale. There isn’t an easy way to measure how many units tall something is – it is simply a 1x1x1 scale. (This seems like something begging to be fixed?!) You can go into the editor and see the actual size of the units there, but no easy way to scale them to an exact size.

Knowing that a standard cube is 100 units high, it stands to reason that two cubes stacked would be 200 units, or slightly higher than the average player character.

cubesize

By using two stacked cubes as a frame of reference, it seems obvious to me that I need to scale everything down in size or else my player will feel dwarfed.

scale

Next steps are to import the rest of my objects and get them scaled appropriately, get some water in the fountain, landscape the terrain a bit more, and figure out the steps to package the level for export so others can play.

I hope to also be able to build the controllers to take it into VR.

Columns

So I sculpted the beautiful column in Zbrush, and was pleased with result.

Column_sculpt

After some trial and error and lots of crashing due to a really high polycount, I managed to export it into Maya. Here are my notes on how I exported my texture maps.

column-poly-Maya

This was looking decent in Maya, so I used Maya’s “Send to Unreal” feature, thinking I was in the home stretch, but this was the result.

Unreal-badUV

I tried simply exporting it as an FBX for Unreal, but it didn’t send the textures over (see column on the left).

two-columns

One of the issues I identified was that my computer kept crashing when I tried to do thing like export UVs, so I went back to a longer set of notes I took in class, and found the helpful “work on clone” option. This worked like a charm. I was able to export Texture Maps and a Normal map. Rather than using the GoZ feature, I exported as OBJ and opened it it Maya. I then created a new Lambert material and applied the Texture and Normal (bump) maps from the files I had exported. Looking pretty good!

Column_maya_normal_painted

I used Maya’s “Send to Unreal” button, but it once again had disastrous results. Something is not wrapping the UVs correctly with this method.

Unreal-badUV

This time in Maya I exported the column manually as an OBJ. Although it was laying on it’s side when I imported it into Unreal, the textures were correct and I simply had to rotate it into position.

Column_exportedOBJ

This seems to have done the trick! From now on I will export/import things manually as OBJs rather than trust the built-in exporter buttons in the software.

 

Continuing Unreal

I’ve hit a few stumbling blocks in Unreal. I agree with some people who have said that Unreal makes everything 10 times harder than it needs to be, the but results are worth it. (I hope!)

I used the garden elevation illustration I created earlier in Illustrator, and brought it into Maya (Create/Illustrator object) to make the twirl pathway. I used the landscaping and smooth tools to sculpt the terrain to suit it better.

pathtwirl

I applied a cobblestone material, but I wasn’t happy with the scale of it. I followed this tutorial, but couldn’t find a way to scale the texture. Not sure what I am missing here.

texture_scale

Here is a screenshot of the Material Editor.

2017-04-11

I thought perhaps the material seemed too large because I had scaled up the path object by 300 when I imported it. I went back and scaled up the object in Maya and re-imported it, but that had no effect.

For now, I decided to go forward with a different texture. I may smooth out the terrain a bit, but I kind of liked how the path looked a bit eroded here.

garden-texture2

Unreal Engine – landscaping

For this part, my goal was to further sculpt the terrain in Unreal Engine into a garden landscape. I created a basic elevation (top-down view) in Adobe Illustrator to serve as a guide, create a simple Plane in Unreal, and applied the texture to the plane. I wanted to control the transparency of it, but Unreal seems to make this ridiculously difficult, so I worked around that by moving it up off my terrain and turning it on and off a bit.

garden-elevation

I dropped in some cylinders FPO (For Position Only) to get a feel for where I want my sculpted columns to be located in the future.

I began trying to sculpt the pathways. Whoa! Brush intensity too high. Not what I was going for.

mountains

This is more like it. Next steps will be to create a stone pathway along the raised areas and fill in more landscaping.

paths

Tiger Lilly

 

Another asset I created for the second “sacral” chakra garden is the Tiger Lily. I had initially created this as a low-poly object in Maya for use in the Sacral Chakra game I created in Unity.

tigerlily-unity

I imported the low-poly model into Zbrush using the GoZ plugin, which is quite handy (when it works properly).

 

seam

One area of difficulty I seem to encounter regularly is the crease that forms when you add a sphere to create additional sculpting material (in this case I was trying to plug the hole in the bottom of the low-poly model of the flower.) I found that using the H-Polish brush works well for smoothing out creases.

Poly flower

Once I smoothed and shaped the model, I used Zbrush’s Spotlight tool to add color and texture, borrowing from a photograph of a tiger lily I found online. From there I added a stem and leaves, which I also polypainted.

Tigerlily merged

I plan to duplicate several of these for use in the Chakra Garden I’m creating in Unreal Engine.

Creating the Seashell

I began the seashell model as a low-poly asset created in Maya for the Chakra game I created in Unity. To create this shape, I used Maya’s Helix tool and gave it volume with an extrusion. I used Lattice Deformation to help shape the form, and even after deleting history and freezing deformations, I was unable to use the GoZ feature to import it into ZBrush. Instead, I exported it as an OBJ to simplify the geometry and make it ready to import.

Seashell-low-maya

Here is the shape imported into Zbrush.

seashell

One of the issues I had was that I could not make the shell hollow. If I deleted the end cap, it caused the shell to have no volume when imported into Zbrush. I decided the leave the endcap, but do a negative extrusion to push it back into the shell a bit. Once imported into Zbrush, I used the Move tool to massage the shape and push it back further, but was unhappy with the flatness of the shape. I wondered if it were possible to Divide just that one area to give it more polys. Using a Mask, I found that you can indeed Divide to add polys to just a specific area. This gave me more geometry to work with.

shell masked

I began shaping the outer edges of the seashell to look more organic. I also stretched out the shell to be longer.

shell masked2

After getting a shape I was more pleased with, I began using the Dam Standard brush with a variety of Alphas to add detail.

seashell1 seashell2 seashell3 seashell4 seashell5

At this point I was ready to use Polypaint to add color.

seashellpoly1

Finally, I used a darker polypaint color along with Zadd to give it some depth to create the ridges.

Seashellfinal

Overall I would say I was fairly happy with this sculpt. Going forward, if I had to do another one, I would have taken the advise of my professor to do more preliminary sketches from reference, because I’m not sure the bottom of it looks entirely realistic. Creating sketches would have helped firmly fix the initial shape in my mind. For now I plan to use this to push forward into the rest of the project. Perhaps another time I can spend an entire day creating seashells. 🙂

Landscaping with fountain in UE4

Today I began setting up a scene in Unreal Engine 4. I began by watching this tutorial by Levon Church that had a handy link for importing some ready-made foliage. I was able to create a grassy landscape, then import some happy little trees, then import my fountain.

Happy trees
Happy trees

Fountain on grass

Fountain on grass

Next steps will be to see what I can create directly in UE4, vs. what needs to be created externally in Maya and Zbrush then imported.

Importing the Fountain into Unreal Engine

Yesterday I wasn’t happy with the resolution and look of the fountain, so I exported it at a higher res and re-textured it in Maya. The file size went from 242kb to 1MB.

Higher res fountain

Higher res fountain

Today was the first day I actually launched Unreal Engine and I was able to import the fountain asset into a scene.

Unreal Engine
Unreal Engine

My first thoughts are that Unreal Engine seems way more complicated than Unity. The UI is very cluttered, and you actually have to go through the Epic Games launcher just to get to the game engine. Once in the actual editor, there seems to be a lot going on. Even a blank scene comes with a bunch of pre-built chairs, tables, etc cluttering the screen. This will take some getting used to.

Modeling the Fountain, export to Maya

For my fountain “hero piece” I began by creating a low-poly model in Maya, then brought it into Zbrush for more organic sculpting. Here is the sculpted “red clay” version.

Fountain modeled in Zbrush
Fountain modeled in Zbrush

Zbrush allows you to create Polygroups from Normals. This basically lets you group areas of you model according to which direction the topology is facing and organize these facing “normals” by color. This can be helpful for exporting or isolation sections.

Polygroups from Normals
Polygroups from Normals

After watching several hours of tutorials on Pluralsight.com on prepping Zbrush files as game assets, I was able to create polypainted version. I enjoyed the process of painting directly on the model in 3D, rather than painting on flat UVs in Photoshop then wrapping them around a model.

I exported the polypaint texture maps from Zbrush, then exported the low-poly version of the fountain model into Maya, where I used the Hypershader to apply the high-res texture map to the low-poly model.

Polypainted fountain
Polypainted fountain

Polypainted fountain in Maya

Polypainted fountain in Maya

I think this could still use a lot of work. I wasn’t entirely successful getting Bumpmaps to be as dramatic as I wanted. It’s possible I could export a few more types of maps (ambient occlusion, etc) and tweak them in Photoshop, then reapply them in Maya via the Hypershader. But for now I was happy that I had gone through the entire process of scuplting, polypainting, then exporting back into Maya. This asset could them be sent over to a game engine like Unreal or Unity for inclusion in a larger scene.

Unity or Unreal Engine?

One thing I realized while working on my prototype is that Unity does not provide any kind of visual code editing helper to people like me who are unfamiliar with programming. This is a hurdle for people like me who focus on 3D and animation, want to make games but haven’t had lots of time to learn coding. There is a plug-in for Unity called Playmaker that costs $65 and has decent reviews.

It was brought to my attention that Unreal Engine has Blueprints, which is a visual code editor that works sort of like a flow-chart. I had already started in Unity, because I heard it was the most popular platform. When discussing with professor Zeb I asked if I should work in Unity or Unreal and he said “Let’s do both!”

So here goes… I installed Unreal Engine after getting particularly excited about some of the recent tech demos they released showing how innovative they have become. So now I’m starting all over in Unreal Engine, so I can make a comparison.

Here are my thoughts on Unity so far.

Pros:

  • Same user-controls for moving around the viewport, scaling, rotating etc. as Maya, so very familiar
  • Intuitive interface, easy to find things
  • Easy to drag/drop assets
  • Good selection of beginner tutorials
  • Exports to WebGL for HTML5, so easy to post games online

Cons:

  • Have to code interactions in C# or UnityScript, which is based on Javascript
  • If you don’t want to learn code, you have to buy a plug-in
  • Graphics rendering isn’t awesome

Next steps

  • Watching lots of Unreal Engine tutorials
  • Building the game prototype in Unreal
  • Improving all game assets by importing them/recreating them in Zbrush
  • Trying to understand the workflow of taking hi-poly assets from Zbrush, dumbing them down for game engine and then making them look nice again. This is the part where I am completely confused!