Monday, August 24, 2009

The horrors of "Nightmare Tower"

Alright, so I'm creating a surreal horror-themed UT3 level with my good friends Yusuke Sato and Andrew Quintiliani, as well as Henry Nayson and Laura Clark. To populate our scary level, I brainstormed some creepy critters. I dubbed my first creation the "Wailers" (though my teammates insisted on calling them "Squidwards" due to their uncanny resemblance to Squidward Tentacles from Spongebob Squarepants). Initially, I imagined their "feet" being more like roots (as they cannot move from the spot from which they're standing), but they evolved into tentacles. Initially, they will appear to the player doubled over in a tight ball. However, when the player gets close enough, they will unfold themselves to stand erect, thrashing about while making a loud, irritating "wailing" noise. As soon as the player steps out of their awareness radius, however, they will return to their tightly-wrapped quieter form. Here is my initial concept art/rotoscope image I created in Photoshop.

Another critter was created from combining the fear of spiders (i.e., arachnaphobia) with the fear of dolls (i.e., pediophobia). Basically, it's a series of four spider legs (Why not 8?! Because it'd be too hard to rig and animate!!!) coming out of a baby doll's mouth. Then, based on Laura's suggestion, I added a spider head coming out of the doll's neck hole. Oh yeah, nice and creepy...

Here's another concept art/rotoscope image that I created using Photoshop.

Next, I modeled the "Wailers" in Maya at a very respectable 2,100 quads.

Of course, digitally sculpting the model in Z Brush to create the Normal map and creating the Diffuse map in Photoshop helped to "flesh out" the model. I have a few seam problems, but, hopefully, not too bad. He's a keeper!

Here's a view of his back. Check out that carbuncle-esque spine! Nasty!

This is a nice close up of the face. I really tried to put in the detail through digitally sculpted Normal maps reinforced by Specular maps that I created using CrazyBump.

Here's my Maya model of the Baby Doll Spider creature. Once again, 1,982 quads is a nice low poly number.

Once again, I digitally sculpted the model using Z Brush to create the all important Normal map, as well as Photoshop to create the Diffuse map. Specular map was created using CrazyBump.

As soon as I began sculpting the doll's head, I couldn't resist making it appear more lifelike. So, in the end, the head itself appears more like a real baby head, but terminates with a doll's neck ridge.

After completing the "Wailers" model, it was time to rig it for animation. Since rigging is definitely not my specialty, I created a very simple rig using the Digital Tutors rigging tutorial as a guide. I used Inverse Kinematics for the elbows and single knee (with associated pole vectors) as well as a Spline with Clusters for the spine. I also added a Set Driven Key attribute for the hand controls to make a fist and a forearm bone with an Expression to calculate forearm twist. It's pretty straightforward... nothing fancy... but it gets the job done.

I then created the standing animation, whereby the "Wailers" stand up from their initial "balled up" pose.


Next, I created the wailing animation, which seamlessly continues from the standing animation... yet is capable of looping until the player leaves the "Wailers" awareness radius.


My rig for the Baby Doll Spiders is quite a bit different from the "Wailers," since their anatomy is so different. I used Forward Kinematics (FK) for the top "knee" joint of each leg and IK for the second "knee." The last joint of each leg has a foot controller, which utilizes the IK handle and can be rotated to change the angle of the spider's "foot." I also rigged the tiny legs on either side of the spider's head. Finally, a basic controller was added to move and rotate the Baby Doll Head (i.e., the spider's "body").

I then created a basic walk cycle which can be looped.


Sunday, August 23, 2009

"The Experiment" sci-fi UT3 level

Okay, this entry is long overdue--I was supposed to post this over the break, but now I'm 3/4 of the way through Summer quarter. I've actually had the screenshots ready for a while now... just haven't gotten around to posting them. Anyway, I wanted to create a science fiction puzzle-based UT3 level in which the player is basically a lab rat caught in the middle of a maze, forced to participate in a grand experiment that they know nothing about (i.e., heavily influenced by Portal). I did not want to include any combat within the level--only puzzles, based on game mechanics, such as: the Translocator (kinda like Portal-lite), K Actor physics objects and Gravity Volumes.

The gameplay view is First Person and, upon starting, the player immediately sees a bar code, a serial number and the name "Adam" tattooed on the character's left hand. Spherical, animated robotic cameras cover the walls, overseeing the action and introducing new game concepts to Adam. Through these robo-cams, the narrator introduces himself as "God" and voices excitement regarding observation of Adam's performance within "The Experiment." The player also sees observation windows, behind which the shadows of mysterious "scientists" loom. The initial portion of the level contains a platform with rapidly moving tracks (akin to moving sidewalks in airports) and barriers; it is basically a futuristic obstacle course.

Here is a render of the quick robo-cam model that I made, textured and animated for the level.

Here's a render of the observation deck model... complete with scrutinizing "scientists."

Here's a render of the modular barrier model I created and textured for the level.

This is an aerial screenshot of the initial portion of the level, with all model assets in place. I created the BSP (Binary Space Partition)--basically the level map--and all of the textures/materials as well. In this "physical" portion of "The Experiment," the player must duck under, jump over and generally avoid the barriers while traversing sections of track that are moving in different directions. For the tracks, I used the Unreal Pan node to animate the track material in the desired direction and Gravity Volumes to actually "push" the player. Note: the Gravity Volumes are shallow enough so the player can double-jump to overcome them. In the beginning of the level, the tracks push the player off the platform onto a nearby floor level. In later portions, falling to the floor level causes damage (or even death).

This is a gameplay screenshot of the same area.

Here is a view of the bottom floor... lighted stairs lead back to the beginning of the level. The player must start over at the beginning of the platform when he/she falls over the edge.

This is a screenshot of a later section of the same puzzle. At this point, the barriers function more like maze walls and the player must utilize the correct teleporters to successfully traverse the platforms (or else be looped indefinitely back into the maze).

Here's a view from the lower platform. Is that the correct teleporter nearby?

Another section of the level represents a more "mental" challenge. In this puzzle, the player must use the Link Cannon to shoot a series of K Actor boxes and platforms to negotiate his/her way through the level. This is an aerial screenshot of the first portion of the puzzle. The player actually starts on the central pillar with each of the extended bridge sections standing vertically (i.e., surrounding the player). The bridges are UT Rigid Body actors which are hinged to the central pillar. The player shoots the thin platforms to topple them onto the nearby ledges containing boxes of varying sizes. The player then shoots these boxes (which are K Actors) off the ledges onto the floor below, arranging them to form steps to the exit door. By the way, the box and bridge models were created and textured by the most excellent Rashad Foux.
Here is a gameplay screenshot illustrating the player's ability to move the boxes by shooting them.

Here is the solution to the first portion of the puzzle. Note: the teleporter allows the player to return to the top of the central pillar if he/she falls to the floor before knocking all of the boxes off the ledges.

The second room contains a puzzle similar to the first, except the boxes must be used in a particular order to reach cubbyholes containing other boxes. After all the boxes have been retrieved, they can be, once again, stacked to reach the exit door.

Here is a view inside one of the cubbyholes, with the box being shot back out into the main room.

Here is the solution to the second portion of the puzzle.

After beating the entire level, the player finally meets God... or, more specifically, G.O.D. (General Observation Droid 1138). G.O.D. reveals that he is an artificially intelligent machine designed by an ancient alien race to discover the correct DNA template for population of the test planet Earth. Because Adam is the first being to complete "The Experiment," he is the lucky candidate. For this end sequence, I created canister models containing low poly test specimens.

I designed G.O.D. as a chaotic mass of hoses plugged into a central glowing pillar. The mechanical column tapers to a floating, fiery "eye" (aesthetically linking it to the robo-cams) surrounded by undulating metal hemispherical shields. Here is a render of the model I created/textured of G.O.D.

Here's a gameplay screenshot of the end sequence.

This is a detail screenshot of the same sequence.

Saturday, May 16, 2009

Let's talk turkey...

Okay, so I had to model and texture a Tom turkey for a game demo. So, not knowing a tremendous amount about turkeys (other than they're tasty), I downloaded approximately 20 pictures, watched several YouTube videos, and, heck even learned some anatomy. Hey, did you know that floppy thing drooping over their beaks is called a "snood?" ...and that big flap o' skin under their chin is called a "dewlap?" ...and, and that big honkin', um, ball-sacky thing at the base of their neck is called "major caruncles?" Geez, if I had a big, ball-sacky thing attached to my neck, I'd say that was major caruncles! Anyhoo, gobblers are also capable of some serious shape-changing, too. In their normal form, they vaguely resemble a pheasant (i.e., elongated neck, tapering body and trailing tail feathers). However, when they get upset or court hens, they ruffle their body feathers (appearing to double in size!), extend their wings down, tuck their heads back and fan out their lovely tail feathers like a peacock. It's like some kind of Gundam-esque Hyper Mode or something (insert Transformers sound effect here). I really wanted to create a mechanism for my model to be able to easily change shape like this. So, I create the body in two pieces and all the feathers as individual planes. I then created two new attributes for the body called "ruffle" and wings," and used Set Driven Key to allow the user to easily animate the turkey between each of these forms by simply dragging a slider bar. I actually completed the model in about two days (i.e., building the model, unwrapping the UVs and creating the textures)--that's pretty fast for me! No fancy Normal or Specular maps here, just Diffuse texture maps and Alpha/Transparency maps for the feathers. The final model came out to be 1,280 polys, which may be a bit high for a simple turkey. However, if I removed the shape changing stuff, I could easily reduce that number quite a bit. Here's the mesh...

...and here's the model with textures in the first form. That wierd tuft of hair coming out of his chest is called a "beard" (i.e., yeah, um, kinda gross).

I know, I know... he has a double fan. The thing is, the feathers are paper thin (i.e., being simply textured planes), so I needed to do something to make them a bit "fuller" and look better from a variety of angles. I don't know, I may end up deleting one of them in the end.

Here's the second form. I actually had to manually adjust the mesh to pose the neck and head, but after the model is rigged for animation, the same effect could easily be achieved. Looks like a big ball on stilts!

The back is probably the least accurate part of the model, but it kinda works.

"Hi there!" I tried to make the textures hold up to closeups.

Man, all this talk of turkeys makes me want to run over to the Renaissance Fair, grab one o' those giant turkey legs and start gnawing away. Hey, speaking of "legs," er, well "limbs," I had to model an arm for a group project that I'm working on. The final model will be imported into Unreal Tournament 3 for the First Person perspective (e.g., holding, firing and reloaded the weapons in the game). In our level, the player's character is part of a science experiment. His name, Adam, is tattooed on his arm as well as a bar code and number. As an easter egg, I used the numbers from Lost (4 8 15 16 23 42). I actually completed modeling the arm, unwrapping the UVs, digitally sculpting the arm (to create the Normal map) and creating the Diffuse and Specular maps in only a couple of days. Again, this is super fast for me! The more I do this, the faster I'll get! The final model was a respectable 806 polys. I feel like I've come full circle--the first model I created using ZBrush way back in January 2008 was a female arm... and, looking back on it, it seems far more crude and disproportionate. I just might be getting better at this modeling stuff!

Friday, May 1, 2009

"Deadeye" - Unreal Tournament 3 character

Okay, so after modeling a few game characters, I decided it was time to actually model a character that can be imported into the Unreal Tournament 3 game engine. It turns out this is a bit more complicated than simply modeling a low poly character. First, as always, the process begins with concept art. Instead of the usual UT3/Gears of War character, which is covered in a thick layer of plate armor akin to football pads on steroids, I opted to design a lightly armored character that actually wears more cloth than armor. The idea was to create a reconnaissance/sniper character suitable for desert, jungle or forest environments wearing: a simple pauldron, cloth wrappings, a light backpack and utility kilt. His equipment includes: an advanced thermo/night vision/sonar combo goggles system, an electromagnetic gauntlet calibrated to steady his aim, and hydraulic boots that enhance his speed and leaping! Basically it's a cross between a Tuskan Raider and an elite Cobra unit. (insert "Coooobraaaa!!!" scream now) Oh, and the head is based on my favorite Lost character: John Locke (a seasoned tracker and survivor).

Here is my initial finalized concept sketch...

To model the character, I had to use an existing Male IronGuard UT3 skeleton as a template and model around the skeleton. To aid in this, I created orthographic sketches of the front and side views of the character, drawn over screenshots of the UT3 skeletons to ensure that my concept art utilized the exact proportions of the UT3 skeleton. In addition, I divided the parts of my character as the UT3 models were created: boots, thighs, torso, arms, head, helmet, facemask and goggles (i.e., so these parts could be interchanged within the UT3 Customize Character screen). After ensuring that all parts of my model were "capped off" and unwrapping the UVs according to the rigid zones that UT3 demands, I was able to begin the ZBrush work to create my Normal maps, Photoshop work to create my Diffuse maps and Crazybump work to create my Specular maps. Here is a screenshot of the basic low-poly model with wireframe displayed...

...and here's a shot of the same model with Diffuse maps, Normal maps and Specular maps! These really enhance the look of the model and make it look like it contains a much higher polycount!

Creating alpha maps for use in ZBrush, allow you to create some nice texture detail, like: scratches, stubble, pores and fabric patterns. This allows the model detail to hold up even under close inspection...

...even for extreme closeups! "I'm ready for my closeup, Mr. DeMille!"

After the model was completed, the model was bound to the UT3 skeleton. Painting of weights was used to fix any errors in mesh deformation during joint bends--well, I tried at any rate. The upper cloak and utility kilt continued to plague me by clipping through the arms and legs (respectively) during extreme bends. I eventually gave up when it was "close enough." The Actor X plug-in tool for Maya was utilized to export each of the parts of the model for UT3 (generating the associated .psk and .txt files). After some scripting and importing, the character was ready to play in UT3. Here's Deadeye at the UT3 Customize Character screen...

Here he is without his helmet, facemask and goggles...

Here's a UT3 screenshot in which I am playing as Deadeye in third person view...

Here I am fighting Deadeye in first person view...

...and again...

...and again!