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.

video

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.

video

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.

video
NEXT STOP: UNREAL!

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!

Wednesday, April 8, 2009

Unreal Mod - A Study in Kismet

Okay, so I haven't posted for eons... blah, blah, blah... Anyway, in order to improve my overall understanding of Unreal Tournament 3, I decided to create a mod using assets that shipped with the game, instead of modelling and texturing all of the static meshes that would populate my level. This would give me more time to research and experiment with "Kismet" (which is UT3's scripting language) and focus on the actual level design & gameplay experience. So, just to make sure everyone understands, all of the individual static meshes, textures and characters in the following images were created by the amazing folks at Epic Games, the people who created Unreal Tournament 3.

So, what is Kismet exactly? It is not the C++ code that was used to program the engine itself, but actually a higher level object-oriented programming language called UnrealScript. Since the actual script has been replaced by a graphical user interface (gui) consisting of flowchart-like steps, Kismet is actually considered to be "visual scripting" system. Everything that moves, makes a sound or triggers something in the level (with the exception of the player's character) requires some form of scripting. This scripting can be fairly straightforward, like the example I have below, which toggles off the visibility of "Power Couplings" the player must collect (and incrementing a counter which keeps track of the total number of Power Couplings the player has collected)...
...or can be quite obscene, as this A.I. script I created for the end "boss battle."

Initially, I created a level design sketch of my level, which included details, such as: player path, puzzle spots, pickup locations and general points of interest. I then created "top down" maps using graph paper (since UT3 uses a grid system). Next, I roughed out my Binary Space Partition (BSP) using the Unreal Editor. After I was happy with the scale and placement of everything, I added my terrain and rough lighting. Finally, I simply completed a series of refinement steps, adding textures, static meshes and finished lighting. Regarding scripting, I initially scripted basics, such as: doors, elevators, ladders and moving/changing lights. I then scripted more complex things, such as my simple Non-Player Characters (NPCs), power couplings, glass floor trap, cave-in trap and explosive barrels. Lastly, I scripted the most complex things, such as the basic enemy A.I. and the final boss battle. All in all, it was a wonderful learning experience.

Although the intial inspiration was the animated film Final Fantasy: The Spirits Within, the level evolved as did the player's goal in the game. Instead of running around collecting plants (spirits) as Aki Ross did in the movie, the player must collect "Power Couplings" to repair his damaged ship. Initially, however, the player must simply find a way off his ship and onto the planet, as the main ramp is closed and the Hellbender vehicles are secured. Here's a view of the first floor of the ship:

Here's a view of the second deck, with a control panel that glows softly in the distance.

Activating the control panel turns on a series of lights leading back to the elevator, which is now operational.

The elevator leads to the third deck which has two locked doors which must be accessed by--you guessed it--the distant control panel.

A side passage ladder leads to the top deck, which contains an NPC robot that reveals your mission objective, the all important Main Override Switch as well as a nice view of the planet out of the main window.

Activating the Main Override Switch opens the lower ramp and releases the Hellbender vehicles.

A view of the post-apocalyptic planet surface. The first Power Coupling glows off to the left--it appears to be attached to some machine... possibly used by locals as a makeshift power source.

A passage on the far side of the ship leads to the first Power Coupling.

A long ladder and simple jump puzzle lead to the first Power Coupling (view of the ship and ramp on far right).

Continuing along the canyon path leads under a building and to the...

...Second Power Coupling! The player must shoot the explosive barrel to open the crate in order to collect this Power Coupling.

Turning around, the player discovers a smashed hole in the side of a building. Proceeding inside, the player encounters a large statue, pillars and a glass panel in the ceiling which reveals the third Power Coupling.

The trip to this point in the level has not been easy as the player has been facing scripted enemies throughout. Here, two enemies charge the player through the glass doors of nearby offices. The third Power Coupling is visible in the distance.

Here is a view of one of the offices. Note that although Epic is responsible for creating the individual static meshes present in the level, I recombined them in interesting ways to create new objects. Since Unreal doesn't have any "chair" models, I created these using 4-5 meshes in the game. Also, the desk lights were actually streetlamps. Creative use of assets was key throughout creation of this level.

Here is another view of the second floor from the opposite side of the room. The third Power Coupling is firmly encased in glass.

Passing through an elevator leads to the top floor, where the player enters this consulting office, and is surprised by more enemies.

Here's a nearby conference room.

The final door is the former CEO's office, featuring a fancy skylight, class cubicals, raised dias with desk, and--oh yeah--another Power Coupling. After polishing off the enemies, approaching the desk opening the glass boundary for the last Power Coupling.

Closer view of one of the side cubicals.

Here's a view of the office from the raised dias.

After collecting all of the Power Couplings, you head back to your ship, but are intercepted by a Dark Walker "boss." Prepare for battle. Polishing off the Dark Walker causes your ship's ramp to re-open allowing you to return all of the Power Couplings to the robot NPC on the top floor of the ship. A simple ending sequence finishes the level.

Friday, November 21, 2008

Next foray into the magical world of Animation

Now, I am by no means an animator. My first plunge into the wonderful world of Animation was mixed at best: my bouncing ball was pretty nifty, my racing car was mediocre but my character walk cycle was absolutely dreadful (...and you seriously don't want to ask me about my character's dance. Seriously.) So, it is with obvious trepedation that I return, as the Prodigal Son, to this uncertain realm. I am happy to say, however, that, so far, it's been fairly successful. I credit part of that to the wonderful instruction by Mr. Paul Orlando, a teacher infamous for being brooding, confrontational (dare I say, Snape-like?) and just a bit altogether wacky. Anyway, I've included several simple playblast (i.e., non-rendered) animations for your viewing pleasure.

So, my first task was to create a default "happy" walk cycle using the Andy Rig v1.4.6 created by John Doublestein. It's a pretty good model, rigged nicely, including the option to change the gender with a couple of different clothing options. The cycle is only a couple of steps, so you may need to play it repeatedly.

video

After creating a "happy" walk cycle, I decided to do its polar opposite: the "sad" walk cycle. Again, it's fairly short, so you may need to play it a few times. Basically, this was just an exercise to get used to the rig, creating a mechanical action in which the whole body of the character looks like it's involved in the motion. Also, I experimented with timing, spacing and pose to evoke an emotion.

video

Next, I moved on to the "Basic Guy" Rig v.1.0 created by Tim Oberlander. This rig is actually a bit more advanced and easy to use than the Andy Rig, but (obviously) Basic Guy has no mouth, so facial animation is a bit limited. First, I created a simple spin jump, just to get used to the rig and continue my exploration of character mechanics.

video

Then, I added a prop--in this case, a golf club--and created a small story in which Basic Guy (hopefully) emotes a whole range of emotions. So, like I said, things are going fairly well in my sophomore attempt at animation, but I still have a lot to learn as animation presents is own obstacles and challenges.

video

What's that you say? You say you're still curious about my "dance." I warned you! I warned you NOT to ask me about that!!! Okay, okay, if you MUST see... but be AFRAID, be very AFRAID!

video

I WARNED YOU!!!

Persian Fort project

Whoa, another insanely huge post!!! Anyway, this is another Unreal mod project in which I was involved set in medieval Persia. I was basically responsible for most of the level design concepts, all concept art/level diagrams as well as building and texturing most of the assets in the level. I was not involved in the creation of the BSP, assembly of the level or any scripting. My initial isometric sketches served as a kind of miniature template for what would become the final level, and helped me to create the master asset list. The initial idea was to design a single player mission in which the player would descend throughout the level to a lower dungeon, eventually rescuing a comrade being held captive. The time constraints proved to be too difficult to finish all of the scripting required. However, Mike Reed was able to finish a good "guard mode" A.I. which deviates from default deathmatch A.I. that the bots usually use. He was also able to script some nice triggers, such as: the ability to shoot down torches and lights, proximity-based sounds and the ability to shoot objects off tables. Cameron Barnes created the BSP and assembled the level.


Here are just a few of the assets that I created for the level, starting with a nice palm tree...

Here's a fruit stand, which was also used in the Courtyard.

I created this simple archery target for the Training Area.

...and, for the Barracks, I created this simple bed and chest (i.e., used a Persian rug for the blanket).

I also created this weapons rack for the Training Area, complete with authentic Persian weaponry.

For the Main Hall, I created this fountain with an elaborate Persian mosaic texture.

Also for the Main Hall, I created this wall piece (with texture and normal map)...

...this ceiling piece (with texture and normal map)...

...and this floor piece (with texture map, normal map and specular map). Note: the Persian rug does not reflect the light as does the tile.

I also had the grand idea of retexturing one of the Unreal 3 models, to make it fit with our medieval theme. By the way, I know, I know, the Persians didn't wear full plate male as did the Europeans, but what do you expect?!? I got a model of a guy wearing friggin' Gears of War power armor and he looks like he's right out of Warhammer 40K! I don't think I could pull off transforming that into leather or chainmail with textures alone!

Ahem, sorry about that. Anyway, the sad truth is, after I worked so hard re-texturing this default Unreal 3 model, I was unable to re-import it into the game. Oh well, it was a good texturing exercise. (Did I mention that I did NOT create this model? It is one of the default male models that ships with Unreal 3--I just re-textured it)



Here's a screenshot of the Courtyard.

This is the entrance to the Persian fort (the torches can be shot down)

This is the dining hall portion of the Barracks. After starting the project, we each decided to assume responsibility for one room; Mike Reed selected the Barracks. He wrote script so the light can be shot down to darken the room (to stealthily sneak by guards). In addition, the plates and cups can be shot off the tables.

I assumed responsibility for the Main Hall. I really wanted to capture the dizzying clash of textures that I found in much of my Persian reference imagery. I wanted to make a strong impact on the player as soon as they enter the front door. Also, the patterns could act as a sort of camouflage, enhancing the difficulty as the players battle the guards.

Although I could have matched the blue within the wall tiles to the blue within the columns and floor better, I'm fairly happy with the overall effect I achieved within the room (i.e., complete gaudiness).