Observations on the ‘Man Nod’

April 17th, 2014 Comments off

Ever since I moved to Orlando, I have been walking everywhere, every day. I have seen a lot of strange things as a result (this is Florida, after all), but the most curious thing that has caught my attention is the conventions of the ‘Man Nod’.

Now, the Man Nod (hereinafter referred to as “the nod”) is something that most men, and even some women, adhere to as the most acceptable method for acknowledging each others’ existence as they pass within eyesight at slower than 10 MPH. There are certain rules and procedures to the nod’s convention. An ideal man nod situation is as follows:

While walking, you spot another human coming your way up ahead. Determine if male or female. Not sure yet, keep your pace. Subject gets closer, looks hairy in all the wrong places. 90% probability to be male. Avert your eyes to casually glance away as if the approaching male is unimportant to your present journey. Around 30 feet away, glance up to see if opposing man unoccupied and similarly averting eye contact. Continue the occasional glance to determine if the man might reciprocate. So far, so good. Man is now 10 feet away. Quickly! You only have a short window to execute! Make eye contact! He reciprocates. 6 feet. Nod. Nod now! Make sure you look stoic, man! Break eye contact at 4 feet. Smooth recovery, nod complete. Continue walking with satisfaction that you are a complete badass.

 

Unfortunately, this isn’t always the case. In fact, the success rate of ideal nods is appalling. The most disturbing of the failed nods are ones from men who do not adhere to the conventions of the nod. Like the guys who raise their eyebrows quickly instead of nod. What the shit was that? Did you just have a muscle spasm at me? Or the guy who turns his head to the side in a weird head turn nod. That felt very noncommittal. I think I feel insulted. But the worst offenders are the guys who pull this goofy grin, actually turn their heads to look at you, and nod as they pass 1-2 feet away. What was THAT?! Should I be scared? The nod is meant to be a way to avoid awkwardness between males as they acknowledge each other. It is better to not nod at all than to twist the nod into some bastardization of appropriate male existence interchange.

SYN/ACK, guys. Keep it simple.

New Workout Routine

October 5th, 2013 Comments off

Starting this new workout routine with my buddy Andy. He’s training for the Tough Mudder in Charlotte and I decided to train alongside him despite not running it myself. The routine was put together by an army medic friend of ours tailored to fit Andy, but I’m not TOO far off from him. Without further ado, behold:

 

Run (3-4 Days per Week)

- Slow Run

- HIIT Run

- Stairs

- Long Run (40m-1hr)

 

Bike (As Often As Possible)

- To/From Work

- Doesn’t Substitute

 

Burpees (Everyday)

- You Are Fat

- Do More Burpees

 

Pushups (Everyday)

- 10 Normal

- 10 Wide

- 10 Diamond

- 10 Tri’s

- 10 Judo

 

Pull-ups (Everyday)

- 5 Normal Chin-ups

- 5 Wide-grip Chin-ups

- 5 Normal Pull-ups

- 5 Wide-Grip Pull-ups

 

Leg Blasters (Everyday, 3+ sets)

- 10 Air Squats

- 10 Front Lunges (10 each leg)

- 10 Squat Jumps (Touch Ya Toes)

- 10 Jump Lunges (10 each leg)

- 10 Rear Lunges (10 each leg)

- 30s Iron Chair

 

FuckYourFaces [Core] (Everyday)

- 20 Sit-ups (Use Brace)

- 50 Flutter Kicks (4 Count)

- 50 Froggers

- 50 Side Sit-ups (25 Each Side)

- 50 Crunches

- 20 Back Raises

 

1 day down. God help us both.

Resolution and Comprehension Part 2 – Mr. Slicey

September 8th, 2013 Comments off

I finally found myself with some free time to follow up on my previous entry. So Part 2 is dedicated to what I learned during my hardsurface/mechanical study. To illustrate this, I will demonstrate my ZBrush hardsurface workflow that I developed over the course of the study. So maybe people can finally stop bugging me about it! ;)

Right!

 

I created everything you see in the above model (aside from the text) by using a combination of the following tools within ZBrush: Dynamesh Meshfusion (boolean ops), Clip Brush, Masking, Transpose Tool, Insert Cube/Cylinder, Claypolish, some of the Deformation sliders, and various symmetry modes. I very rarely made use of any sculpting brushes other than the standard Smooth Brush, and even then just for touch-ups. To demonstrate this, I’ll step through the process I took to make something similar to the finned sides.

Much like poly modeling in 3ds Max, I start modeling everything in ZBrush with primitives. Make sure to turn on Dynamesh and that it has a fairly high density. Keep in mind that the Dynamesh resolution is dependent to the size of the object you’re trying to Dynamesh. For instance, 128 res on a small cube will produce a very low density mesh, whereas a large cube will be super dense.

 

Simple enough. To create the round curves, I initially tried using the clip curve, but I could never seem to get it in the curve I wanted. I ultimately just used the straight clip curve and knocked the corners off in increments with symmetry on. (EDIT: In hindsight, I could have just used a rounded cube *facepalm* Shut up! I was tired!)

 

Now, you’ll notice this doesn’t exactly produce the cleanest curve. You can use the smooth brush on it, but in order to get a more uniform smooth, I gave a single tug on the Polish By Features slider in the Deformation panel.

 

There are a couple ways to go about doing this next part. You can either append a cube, or use the InsertCube brush on the surface of the rounded side. I prefer the latter just because it’s slightly more flexible. Doesn’t really matter what size you drag the cube out to, we’ll be changing that next. After I separated the inserted cube (you can do so by clicking Split Unmasked Points in the SubTool panel), I sliced mine to something thinner and redynameshed it. To get it into suitable boolean form, I masked the bottom half of the newly created subtool, dragged out a transpose line with the move tool (W). Now we basically extrude the upper half. Hold down shift, and click+drag the middle white circle on the transpose line. I needed to make sure to drag it out past the height of the other cube. Then do the same to the bottom half (ctrl+click in empty space to invert the mask). Remember to redynamesh the cube after these processes.

 

Using the transpose line again, I duplicated the new cube out in even spaces (ctrl+shift+click the middle white circle to duplicate and constrain movement). When I got it looking how I wanted, I split each fin bool into it’s own poly group and split them out into individual subtools (Auto Groups in the Polygroups panel, then Split Groups in the SubTool panel). For some reason, Dynamesh won’t let me bool subtools with non-uniform topology. So in order to get this to work, I need to individually merge down the main rounded tool into each fin (make sure all of the fins are marked as subtractive) and remesh. So merge down, remesh, merge down, remesh, etc.. It’s a fairly quick process, but can be tedious if you have a lot like in the radio.

You’ll notice the edges of the newly created cuts will be sharp (though this depends on the resolution of the dynamesh). I fixed this by moving the Polish slider up VERY slightly (I used a value of 5 in this image).

 

To create the indent, I just used the previously covered action of using the clip curve with symmetry on. Note that double tapping alt mid-curve will create a sharp angle.

 

For details like the ‘up’ triangle symbol on the surface, you could obviously do that with an alpha, or if you want to create your own shape real quick, you can just paint on an area of mask, and with the mask curve, add/remove sections to get your desired result. For the indent, I tugged back on the Inflate slider, remeshed and did some more polishing. Note that each polish action you perform will continue to smooth out the already smooth edges. This is where using the smooth brush for selective smoothing comes in handy. This last image just shows some more boolean operations.

 

So just to recap, the tactical radio model was made entirely by using the above techniques. It’s a ridiculously easy process. Naturally, these steps won’t create every hard surface object you could think of, but it does offer a good jumping off point. I hope this helps anyone who was interested :)

Resolution and Comprehension Part 1

July 11th, 2013 Comments off

This is the first part of a 2 part summary on my thoughts during my most recent freelance gig and the hard surface mechanical studies I was doing prior to landing that gig. This part has very little to do in relation to the project I was working on. Reserving that for part 2.

 

There was a time when I first started 3D modeling when I would look at an object, building, shape, or whatever and be completely overwhelmed when contemplating how I would model it. The problem is that I would take it all in and not think iteratively; I would have one resolution: Full tilt. Scale of an object also tripped me up. I would think that the larger the subject is, the more daunting the task felt. This mentality is ill-conceived, as scale holds less precedence than resolution does. Any object you model can have an insane level of detail. The idea is deciding when to stop, or rather, deciding how far to take it.

This idea holds true throughout the asset creation pipeline in game development. You need to decide how much detail to pack into the high poly based on resolution of the final texture maps and final low poly object, and you need to keep that in mind during the entire process. Your object collision resolution is based on similar resolution decisions. Resolution in modeling is incredibly important. Though, its importance in games has a stronger basis in technical limitations and gameplay requirements than that of movies, productviz, or archviz.

The process of resolution is something that the game industry teaches religiously: Blocking out and iterative workflow. There are many reasons for doing this, and it’s generally a good habit to get into, even if you think it’s superfluous or you feel you work better by skipping that step. Word of advice: Do it anyway. The benefit you get from doing so are long term and not exclusive to the current project.

Now for the pictures. I modeled these examples specifically for this post, just to make a point. Yup. That’s how much I love modeling. Click on the images to see the differences in detail.

sword_example

 

 

 

shack_example

 

 

 

Both examples are very different in scale: One you can hold in your hand, while the other you can walk around in. But again, that doesn’t matter. For both examples, the base shapes are a collection of boxes or varying size, but you can very easily tell what the object is. “That looks like a sword”, or “That looks like a shack”. Good job. You’ve used boxes to make something recognizable. Pick one of the boxes you made and start refining it to fit your end goal. Don’t model it straight to final draft, step through it. Iterative development is a very smart way to work. The more comfortable you become with that method of work, the easier and faster it will become to think through to a final draft. The intermediate steps become more dramatic because your mind is trained to think farther ahead. Having the previous steps in your mind helps to reinforce the form of the final draft.

Both examples can be taken many, many steps past where they currently are. Depends on what your goal is.

 

Organic Story

I was having a discussion with my friend Matt about what defines something as being organic. The one thing we were both able to agree on was that the more story you introduce into the subject you’re observing or creating, the more organic it becomes. This holds true for even a metal sci-fi panel. Most of these you see in games and movies consist of random greebling, pipes, grating, etc.; These are rather bland and generic. But as soon as you add some extra detail to it like damage, and give the damage a reason to be there, you introduce story. By itself, it’s just a curious damaged panel. Put this curious object in an environment with similarly personified objects, and instead of a sci-fi hallway, you now have a hallway that you can feel has had something happen to it. “This means something. This is important.”

 

 

 

 

 

 

 

 

 

 

 

That said, even similarly clean panels convey story, you just need to be more deliberate about how you present it in an environment. Introducing story to an object coincides directly with iterative development. The more detail you add, the more personified and organic your collection of boxes or shapes become.

I’m not sharing anything new or groundbreaking in this post. This is all fundamental stuff. But as basic as this is, it took me a long time to view it in this light. I’m not sure if this was due to being self-taught, or if this is taught in universities. But I write these posts in hopes it might shed some light on the subject for anyone else. Part 2 of this post will touch on the new workflow I was teaching myself through my mechanical studies. I will also go into the whys, hows, pros and cons. I got a lot of interest from twitter asking me how I went about my modeling process. Stay tuned!

JERKY!

May 27th, 2013 Comments off

What? This doesn’t relate to game art? Nonsense! Beef/Venison/etc Jerky is always relevant! Nom nom nom.

And so here is my own recipe for beef/venison jerky. This is measured for 2 pounds of meat:

1/2 Cup brown sugar
1 Tbsp Black pepper
1 Tsp Salt
1 Tsp Garlic – minced
1 Tbsp Green Onion – chopped
1/2 Cup Teriyaki Sauce
1/2 Cup Worcestershire Sauce
1/3 Cup Soy Sauce
1/4 Cup Ketchup
1 Tbsp Liquid Smoke

Mix all of the above ingredients in a bowl, making sure the brown sugar is dissolved. I noticed the ketchup didn’t mix in very well when I did it. I might leave that ingredient out next time.

Now on to the meat. I’ve only used venison so far, but I imagine this works with other meats as well. Make sure you slice off any fat you don’t want on the meat first. Then start slicing your pieces. The key here is to keep a consistent thickness. I’ve seen recipes say cut into long strips, one inch wide, but that is primarily for laying meat directly on oven/grill racks. So based on your method of drying, length and width will vary. Since I cook on a baking sheet, I like to cut them smaller because the end result feels like you have more (psychologically). Just be aware that a dried cut of meat will be ~1/2 the size of the original cut.

So, cut into pieces of your choosing but generally 1/4 inch thick slices. Any smaller will dry out too quickly, and thicker will take a longer time to dry and risk harboring more bacteria. And not the good kind. These will eat your soul.

When you have your meat all sliced, you may choose your preferred method of marinading, but I tend to go for the ziplock freezer bag. Put all of the meat cuts in the bag, then pour the bowl of marinade in. Seal the bag, making sure to press as much air out of it as you can. Refrigerate for 3 days for maximum flavor. The extra days really do make a difference. I’d suggest kneading the bag occasionally during that time.

The only method of drying I have experience with is with the oven, but as a friend pointed out, this is a waste of energy. And for that matter, so is using a dehydrator. I plan to use a smoker or a grill next time, but for now I’ll just post directions for drying in an oven.

Get a baking sheet and line it with aluminum foil. Lay the cuts of marinaded meat onto the baking sheet, making sure they lay as flat as possible. You don’t need to keep space between the cuts, just make sure none are overlapping.

Set the oven to 200F, put the baking sheet with the meat on the middle rack and… here’s the important part… prop the oven door open with a spoon or similar. This allows the moisture to escape, thus jerkifying the meat. The length of time you will need to dry the meat depends on how thick you made them, but just remember to keep flipping the pieces every 30 minutes until the thickest cut feels firm. As smaller cuts will dry first, remove them from the tray as they’re ready.

And that’s it! The pieces should be slightly sticky, considering the brown sugar caramelizes from the heat. It’s like jerky candy! Try not to eat it all at once. Seriously. I DARE YOU.

*********************

I feel I need to update this post with some amendments to the above. The quality of latest batch is 500% better than the method I described above.

First, correcting some misinformation. DO NOT dry your jerky laying on a baking sheet. There are a few reasons for this. Drying will take longer and it will be uneven (hence the need to flip the meat periodically). You also run the risk of burning the meat, which you do not want. The last, and perhaps the more frightening reason, is that the acids from the meat and marinade eat into aluminum foil and your meat will absorb some of the broken down aluminum. This is the kind of stuff you find out when you delve into the sciency areas of cooking. Cooking is, after all, a form of chemistry. Very tasty chemistry.

This is minor misinformation, but saying that smaller pieces will dry out too quickly is… well, it’s not wrong, it’s just not a bad thing either. You can’t really over-dry jerky.

As for recipe changes, I removed ketchup, fresh garlic, and green onions from the marinade. Unless you plan on eating the jerky the day you cook it, cut off as much of the fat as you can. It will make the jerky less juicy, but you will effectively increase shelf life tenfold. Unless you properly preserve your jerky, the fat will go rancid and you do not want that. Seriously. I bit into a rancid piece of jerky before. I cried over the loss of jerky. I sent the remaining pieces out on a burning raft and shot flaming arrows into the night. A fitting send off.

And to add to that, I’d advise against wanting softer jerky and not drying them completely. Bacteria be a harsh mistress. Also about bacteria, I’d suggest only marinating for 2 days instead of 3. Small reduction in flavor for large reduction in risk.

The only other thing I did differently is set the oven to 175F. Technically, the required temp to rid the meat of bacteria is 160F, but I just put it up to 175 to be safe. The reason I backed it off from 200 is that you just want to dry the meat, not cook it as well.

 

And that’s all I have for now. I plan on diving into more technical aspects of jerky making such as meat and marinade pH balancing, and will update this post with my findings when I do.

How My Brain Reacts To New Challenges

May 4th, 2013 Comments off

This blog is not exclusive to 3D and game art. There are times like these where I will wax intellectual and talk about serious life stuffs.

One of the biggest reasons I love game development is that on any given day, the process of making something new quite frequently awards me with an opportunity to tax my mental capacity. This often leads to incredible amounts of frustration at first, but if I let myself ease into problem solving mode, it gets to be an extremely fun and gratifying experience. And when I do figure out what I have to do in order to work past it, I am filled with an almost overpowering sense of accomplishment and I wish I could just share my findings with the world. This feeling passes rather quickly as I am just as driven to push forward and find the next new challenge.

This process is not limited to game development or any of the work I do. This might sound strange, but I take this same approach with everything new. When faced with a challenge, I view it as a puzzle. A puzzle that needs to be analyzed and torn apart in my head. It’s like taking apart one the toys I had as a kid, find out why it stopped working after throwing it across the room, and reassembling it in order to improve my understanding of it. This rarely ever fixed the underlying problem of  the toy no longer working, but it did give me understanding. I assume most kids would have figured out that throwing a plastic electronic toy against a hard surface results in lack of function without all of that, but I preferred the scientific approach. It got to the point where I would take things apart even f they were not broken, just to appease my curiosity.

Recently I have been faced with a new challenge. What to do when you feel as if you’re staring down the face of your own future. This is a challenge that happens very rarely. In fact, I can only recall 4 times this has ever happened to me in my life. Yet something different happens when faced with such a unique situation: I am not haphazard about it. I am calm, not frustrated, and most of all, I feel confident that I already know the answer. I let my mind go through the motions, but clarity and lucidity often takes over.

When you make important life choices, there are no wrong answers or wrong decisions. There are simply paths that lead to one outcome or another. One path might be less ideal than the other, but making these decisions defines your life and ultimately, you. The best you can do is research every angle, every possibility, every little thing that might or could happen, and assume they won’t come to pass. I’m serious. Planning is the bane of your future. The best laid plans of mice and men oft go astray. Too fucking true. Choose a path that feels right to you and run with it, taking the curve balls that life throws at you right in the face. There is no ‘undo’ key, so you gotta keep moving forward. Each new bruise or scar just adds to who you are and your understanding, allowing you adapt faster and more easily to the next one. This is what I have learned since making the life choice to move away from friends and family and into an area where I had very few friends with me. My original plan for the move went haywire and ended up not coming to pass, but I stuck with my decision anyway. Turns out, I am REALLY glad I did!

Gloss Maps And You

January 28th, 2013 No comments

Over this past weekend, I found myself explaining gloss maps and how they relate to UDK/game art to a few people on twitter. I find this completely hilarious because, up until a couple months ago, I had no clue how to use them either. Regardless, I’ll try to clear up their function and uses to the best of my knowledge.

So, if you’re reading this post, I’m going to assume you already have prior knowledge of specular maps. Would be freaking weird to start asking about gloss maps without knowing what spec maps are for. That’s just crazy. But if this is the case, and you are crazy, the easiest way to put it is that specular is reflection of dynamic, point, spot, and directional lights in relation to games. It doesn’t reflect the scene around the object, just the light (Update: I was informed that in some engines, the specular map also handles environment reflection). So when using specular maps in game art, the spec map dictates which areas on the model are going to be reflective of this light and by how much.

That’s simple enough, right? Of course it is. So we now have a way to control the specular reflection’s size and intensity. But hold on, not every type of material has the same specular values. We have surfaces like brick and fabric which are rough and have a very diffuse specular. And then we have smooth surfaces like metal, car paint, and crystal. How the hell do we control this madness?! Whoa whoa whoa… Calm yourself! Have a cup of tea, sit down and I will explain this for you.

*ahem*

Gloss Maps, that’s how.

Dramatization aside, gloss maps are grayscale representations of the specular widths of a material or grouping of materials. Find your texture map you wish to apply your gloss map to, and separate out how many different materials you have there. Say you have wood and glass in your texture, like on a door or window/picture frame. For correct specular representations (in the context of UDK) you could assign the frame and the glass two material IDs in your 3D suite of choice, and then make two different shaders to assign on your model in UDK, and tweak the specular power of each to match how it should look. It works, but it’s not ideal. To get around all of this extra work, you can use a gloss map to do that work for you. To demonstrate this, I’ve recruited one of the free textures from GameTextures.com to help in this example:

Material Types

 

 

 

 

 

Shown above, you can see that the brighter areas on the gloss map are where the glass panes are. This produces a tighter specular width and gives a much more accurate appearance of specular than if you had no gloss map and a single specular width evenly applied to the specular areas. And since I bring up the subject of specular width, I feel inclined to explain that in more depth.

In explaining gloss maps to the people on twitter, it seemed that the concept really clicked with them when I mentioned specular width. Specular width is literally what it sounds like. In the case of most specular lighting models, they tend to be radial in nature, and the higher the gloss value (a scalar value of 0-100), the tighter or smaller the diameter of the specular is. I put together an image with one of my models to further illustrate this point:

Specular Width

 

 

 

 

 

 

 

 

 

 

 

 

As you can see, the higher the value, the tighter the spec width. Simple enough. If you’re confused as to where to plug the gloss map in within the UDK shader network, it’s the ‘Specular Power’ input as shown below:

Specular Power

 

 

 

 

 

 

 

 

 

 

 

 

One last thing I feel is a good practice to get into when working with specular and gloss maps is to bitpack them. If you aren’t aware of the term “Bitpack”, don’t panic! It’s very possible that I made that up, but it made sense to say that when I first figured it out, so I’d use that term tentatively. Bitpacking is a method used to pack multiple texture maps into one texture file by loading greyscale representations into R, G, B, and A channels. This is useful for saving texture space and for organizational purposes. Within UDK, you are able to split out each channel separately and control color and intensity at will. I tend to pack my emissive map into the Alpha of my Diffuse, and change color/intensity within the shader editor. In this case, it’s generally a good practice to pack the gloss map into the alpha channel of the specular map. It’s not ideal to do the reverse, mainly because gloss maps are purely grayscale while specular maps are generally based off of the diffuse and thus have RGB values.

To sum up: Specular = reflection, Gloss = Approximation of microfacet roughness

Alright, I need to get back to work, but I hope I was able to clear things up to a point. If you have any further questions about this or want to tell me how wrong I am, feel free to yell at me via @odd_enough on twitter.

Week 2 Theme Extension

January 22nd, 2013 Comments off

Throwing up this quick post just to say that I’m postponing Week 3 until the week after the Global Game Jam. I figure there are probably more people than just myself doing that, so eh. In the meantime, you can continue to work on Week 2′s theme. :)

Theme Challenge – Week 2

January 13th, 2013 No comments

So Week 1 of my thematic modeling exercise was an unexpected success! There were even a couple contributors who I don’t even know personally. This makes me happy when random people see my idea and jump on it. I will post the Week 1 recap shortly. Waiting on a couple people to submit their results.

Going to keep this simple this time; No wall of text to sift through to find the pertinent information. Here goes:

 

  • Subject – Forms of Communication
  • Time Period – Any
  • Creativity – Encouraged

 

Lots to choose from! I also have a lot of comedic ideas for this. What to do, what to do… :)

Theme Challenge – Week 1 Recap

January 13th, 2013 No comments

This recap was posted a little bit later than I was hoping, but I wanted to give a couple people to get something of what they made in, finished or not. Regardless, I am happy with the turnout for the first go of this exercise!

The art of those who participated (designated by twitter handle):

 

@odd_enough:

Artist: Jordan Cain

Artist: Jordan Cain
Model: Spur

 

 

 

 

 

 

 

 

 

 

@ruthmadeline:

Artist: Maddie HarperModel: Covered Wagon WIP

Artist: Maddie Harper
Model: Covered Wagon WIP

 

 

 

 

 

 

 

 

 

 

 

 

@KevinO_Designs:

Artist: Kevin O'BrienModel: Cowboy Boots

Artist: Kevin O’Brien
Model: Cowboy Boots

 

 

 

 

 

 

 

 

 

 

 

@demafleez:

 

@chromashift:

Artist: ChromaShiftModel: Animal Skull

Artist: Joel Mejia
Model: Animal Skull

 

 

 

 

 

 

 

 

 

@mystichobodev:

Artist: Jake OliverModel: Kerosene Blow Torch

Artist: Jake Oliver
Model: Kerosene Blow Torch

 

 

 

 

 

 

 

 

 

 

 

 

Thanks to everyone who contributed! Looking forward to seeing what people make for Week 2.