Workflow Wednedays! Art Asset Creation & Workflow

In this brand new Workflow Wednesday, we’ll look at art asset creation and workflow. I’ve screen recorded the creation of a character model from sculpt to in-game. Because the commentary is sporadic, I’ve included a transcript below.


Painting and inflating, you’ve probably seen this part in my XYZs of Sculpting Clothing Folds in Zbrush video. This video is significantly longer and you won’t find much that’s revelatory art-wise. Instead this video will give you a sense of what’s involved in taking an art asset from sculpting to in-game. It will also provide you some of the gamedev rationale that is guiding, or perhaps subverting, the artistic process.

00:28

For example, here I’ve elected to create just the torso for what is to be the public beta of Rocketbelt Time Trials 1983 VR and its sister project, Pilotthings VR. Gamedev is a subset of entrepreneurship where the motto is “fail fast and often.” The idea being the faster you fail, the better you can iterate, which is the key to success. The faster I can push the public beta out the door, the faster I can get feedback. That means creating a “Vertical Slice,” which is just something of a barebones demo. To that end, I’m cutting down on my time expenditure by only creating the torso. Because this is a VR product, the torso, for the purposes of the demo at least, will be sufficient owing to VR’s unique camera perspective.

1:15

That being said, when it came time to rigging, I found that Mixamo won’t automate the rigging process when it comes to legless characters, so I actually didn’t save as much time as I’d hoped. I had to rig the asset manually in 3ds max. I’ll also lose some time if and when I need to Frankenstein the body parts together, but currently I’ve still come out ahead, so that’s why no legs. To save time.

1:37

All told, start to finish, this asset probably only took around 20 hours, and that includes all my artistic experimentation prior to this. What you see on video represents just over 12 hours. For perspective, editing this video took a full work day and then some. Prior to what you see here I simply took the Avg. Man tool, inflated his hands to give the impression of rubber gloves, and drag-alpha’d the seams into place, one at a time, end-to-end. I tried dragging them in as an insert brush but couldn’t get them to conform to the curves. If anyone has tips or a tutorial for dragging seams in as an insert brush, please let me know in the comments. It would be much more efficient.

2:29

One of the good ideas I had was creating these alpha masks that simply serve the purpose of size and placement reference for the seams.

2:57

Here I’m laying in zippers. The zipper tangs are represented solely in the normal map but the zipper pulls I created as a low-poly off-camera.

3:40

Now I’m experimenting w/ some pipping that I’ll later realize isn’t actually in the reference photos. Speaking of, the Bell Rocket Belt was actually invented right here in Buffalo, so I was able to go to the Niagara Falls Aerospace Museum to get lots of reference photos. Some of the particulars were only recently declassified.

04:21

Now I’m doing some trial and error with folds in the torso area that I’ll ultimately abandon.

04:57

If you look at the photos, it almost seems as if there’s pipping or ribbing stitched in. Really, the rocketbelt flightsuit fabric has odd ways of puckering. I was told at the museum that the flight suit has a rubber lining. The rocketbelt fuel is actually a mixture of 100% hydrogen peroxide and oxygen. A catalyst turns them into steam propellent. If the hydrogen peroxide were to leak it would melt the pilot and so that’s why the rubber lining and in turn the subtle ribbing.

During my experimentations, it becomes clear that sculpting the ribbing over top of the folds on the arm isn’t going to work or look natural. I decide that I should lay the longitudinal puckering in as a noise alpha. This also lends itself to a non-destructive workflow, especially important if and when I decide to add legs.

07:21

There are clues all over the suit that indicate it was re-purposed for rocketbelt use. Flight time was measured in seconds and as such this suit has a comical number of unnecessary pockets and flight plan pen and pencil storage. The pen and pencil storage is on the legs, right where the knee board would be, so most likely this flight suit was originally intended for use by more conventional pilots.

12:11

Here I’m jumping into retopology. I always start at the fingertips and create six-sided cylinders. Topology is tedious but occasionally presents fun little puzzles. Zremesher is really good but seems to screw-up at the extremities. It’s especially good at doing faces though so I often let it automate the head retopology. Then I Frankenstein the head and torso together by tweaking the Zremesher parameters in the head and adding or subtracting loop lines in the torso. Then I join them together. Once I know how many loop lines I have to work with, I complete the legs manually. Which I may or may not do with this asset.

13:07

Here, tragedy has struck!

17:58

I’m making sure the topology conforms to the peaks rather than the valleys. Normal maps are more convincing when faking valleys. Or rather, if the silhouette demonstrates peaks in the geometry it creates an overall more convincing effect. Again, the zipper tangs here and elsewhere will be represented in the normal map whereas the zipper pulls will be represented by their own geometry. The reason for this is that the zippers on the chest are close enough to the VR vantage point for serious scrutiny and I want them to look good.

Because each arm is unique, I can’t simply mirror the topology like I did in the hands.

21:30

I’m masking everything off to create polygroups. This is so that I can make UV maps for the hi-poly. Hi-poly UV maps aren’t always necessary but because I’m adding in the pipping as a noise mask, I have to align the arm UVs up and down so that the ribbing projects properly.

22:41

zBrush crashes like 8 times in a row here.

23:30

I think I had to take it down one decimation level to get it to work.

24:05

Another benefit of screen recording is that I’ll be able to go back and see what my noise alpha settings were. Sometimes it’s good to off-load some of your memory.

25:54

Now I’m about to sculpt the ribbing to create an alpha. Then I’ll use the alpha to automate sculpting. And I’ll do that using Surface Noise. It’s the circle of life.

27:33

These are the final preparations before creating the decimated hi-poly for use in normal map creation.

27:42

Now we’re in 3ds max. Again, Mixamo will only rig bipeds, the operative root words there being bi and ped, and so I had to rig the skeleton manually. I lost a lot of time to this. For the beta, I’m saving time by not animating the character but instead simply posing him to hold onto the rocket belt controls. Even then, as you’ll see, I had a lot of difficulty getting the pose to look natural.

Note too that here as I scale the biped I’m starting to question both the proportions and my sanity. I did start out with the Avg. man ztool and I recall it being properly proportioned, so that’s some small comfort.

29:21

I’m adding in rings at the finger joints to improve animation deformations. It’s more exacting if you do it in max as opposed to zBrush. You can do this without screwing up the UVs. On a side note, I really hate rigging hands.

31:24

Mixamo is 100X better at this than me.

31:32

Now we’re in xNormal to create the normal, occlusion, and vcols maps.

31:49

In Photoshop, creating the diffuse map means simply copying and pasting the occlusion map as a layer over the vcols and selecting Multiply as the mode. Then I create an alpha channel and paint bucket in grey scale values to determine what should be shiny and how shiny it should be.

Here in Unity I think the asset looks great. Unity does a great job of lighting and rendering. Now I’m trying to position the camera from the most natural VR vantage point. I’ve tweaked it since then and I think it looks great in-game if I do say so myself. The public beta will be posted for free on itch.io, please download it from there onto your cardboard enabled android device. To do so you’ll need to first go into settings>Lock screen and security>and enable Unkown sources.

I’m currently battling cancer, or more accurately, cancer-related GvHD, so I’m stuck in front of a computer screen most days. But I’m trying to make the most of it. I’m really trying to make a go of this channel and all the projects you see there-in. A sincere thanks to everyone for all your support! I’m working hard to validate your hard earned money by creating the best games, art, and tutorials. Check out my Patreon page, my free tutorials, my not-so-free No-Code textbook, and be sure to look out for my imminently launching video games at your nearest crowdfunding site. Follow me on Twitter, why not, @nickelcitypixel. Links in the description, be sure to like and subscribe at the very least. I’m trying to get to 500 subscribers before my 1 year diagnosis anniversary this upcoming October 5th. Thanks!


And that’s “all there is” to it! Art asset creation, simple and effective. I hope you’ve found this information useful. Enjoy!

[paypal_donation_button]

Leave Comment

Your email address will not be published. Required fields are marked *