che broadnax Play! project

UPDATE 2014-08-08:

Another render, this time with a diffuse map and a self illumination map.  It takes a few more steps to get that sort of map into Unity (hiding self illum and specular in other channels), but soon this object will make its way into my Week 4 assignment.  Slowly but surely, the bells and whistles are materializing.

Low Poly with Diffuse, Self Illum and Normals map

UPDATE 2014-08-06:

Here's a render of the low-poly model with a normals map and an ambient occlusion map.

LP with AO+Normals Map

UPDATE 2014-08-05:

Modeling for games.  Very different than just modeling off the cuff.  I first designed a rough block-in of the objects, then I did a high-poly model based on the block in, then I used the block-in to build a low-poly version of the HP model.  UVW unwrapping... phew.  That took forever, figuring out the best way to map every type of surface, learning about 90 degree angles and how they do not agree with baking normals maps, etc, etc.  But, I've finally created some pretty decent models.  They're not much to show for this long, almost 8-month delay, but, give a guy a break, we're working 14-15 hour days on this campaign at the office.  

Images coming soon, and more objects.

Hi Poly Standard Platform

High Poly Platform

Low Poly Platform with Normals Map

Low Poly Platform with Normals Map

UPDATE 2014-06-30:

Just about finished with the Doodle Jump project, AKA Week 4.  I'd been through most of the videos and upgraded my project a bit in the process, tweaking as I went.  But I've been hoping to make the thing a little cooler than just what we did in class.  I mean, a little cooler. 

I'm debating putting up the class version now, and then adding a few bells and whistles, or flipping that order.  I'd kind of like to add the bells and whistles first.  Ah, what the heck.  Bells and whistles it is. 

Yet, we spent so much time coding-sans-coding that I haven't even really looked into HOW to make this sucker look cool. 

UPDATE 2014-01-04:

Finished Week 3's project.  Actually I had finished either yesterday or the day before but wanted to add some finishing touches, to make it a little more special.  


I decided to investigate the possibility of powerups, adding lives, and changing the "physics" of the ball.  Rather than describing the ball's motion through X,Y translation, I decided to give it only one vector (in this case X) and change its Z rotation as it hit elements.  This way, I never had to worry about flipping it's motion into the negative, I only had to worry about its angle.  Which led me to experiment with some formulae.  I always seem to remember that angle of reflection equals angle of incidence, at least for light, so I figured, this is a frictionless environment, let's go ahead and use that formula.  Of course, the motion becomes very predictable, so I kept in a random function that sometimes sends the ball back at the exact angle it hit, rather than reflecting it back.  I changed the frequency of this event, though, so 1 out 4 times it will bounce straight back. 

I also wanted to give the player some control over the angle, so I added a little roll or pitch the player's bar as it moves.  I feel like traditionally these games have just had different collision zones on the player bar, so the edges are more likely to send it off at a zany angle, but I like my method.  

What I was having trouble with was the math playmaker components.  In the olden days, when I did actionscript and lingo, and more recently with maxscript in 3ds Max, I would frequently perform an operation using multiple variables and math all in the same formula.  Something like (in pseudocode, here): 

set myObject.position.x = ((otherobject.position.x) * (-1))

The only way I could figure out how to do this same operation here in playmaker was to:

get the x position from otherobejct

put that into a float variable (we'll call it: varOtherObjXpos)

float multiply varOtherObjXpos by -1

set position of game object "myObject" with X being set to the variable varOtherObjXpos (which is now multiplied by -1 and resaved as a negative version of itself).

It's a few more steps, which isn't a huge problem, but I found myself getting bogged down with unimportant variables that I needed to just hold a number.  Is there some way to do slightly more complicated math without straying from the beautiful mostly codeless world that is Playmaker?

Anyway, without further ado, here's the project:


UPDATE 2013-12-28:

Finally finished my week 2 project, somewhere more around week 4 and change.  I had decided to kill several birds with a single, normal mapped stone, and figured I'd also learn about a little of the pipeline from 3ds Max into Unity.  For starters, I wanted to learn about Normal Maps, as I hadn't ever really created these before, or even done much with Hi-Poly/Lo-Poly modeling.  

So first I decided to model an item that I could do both a high and low version and bake some normals.  I used a simple geometric object, and didn't leave 3ds Max for the process at all, except to clean up maps and make diffusion maps in Photoshop.


The model on the right is the hi-poly version, the left is the normal mapped, diffusion mapped, specular mapped lo-poly version.  Unlike 3ds Max, Unity doesn't have a separate map for specular, but rather seems to pull it from an Alpha channel of a diffusion map.  I had to learn how to do that, but it was fairly easy (once I figured out that Photoshop's PNGs do not have alpha channels, even though they have transparency information... I stuck with old school TGA files... does anybody know a better format for diff/spec maps for Unity?).  

Then I took a bunch of time figuring out how to use PlayMaker beyond the follow-along-in-class stuff from the videos.  It was a little challenging to try to come up with something besides what we did with the rotating, moving cube, but eventually I figured out what I wanted to do and then basically made it happen.  One of the challenges I had was trying to change the rate of particle systems from 0 to a higher number, during runtime.  I found that it was easier just to have PlayMaker activate or deactivate the particle system, rather than ramp it up.  

I decided to model a few other objects, now that I had become a bit more comfortable with normal maps, as well as unwrapping stuff in 3ds Max (I hadn't really done much with UVW mapping, either, I had mostly used multi/sub materials and assigned different materials according to the faces in an object, so this was really helpful).

And SD card-like data chip in both hi-poly and lo-poly

This is not for 5-pointz

I definitely lost some of the focus here and there, and found myself learning about what all the codes mean on a CONEX shipping container, and then researching if there were available company and country codes I could use.  Overkill when I just need to move some cubes around and get some user input.  

Eventually, I put everything together into a scene, and here we are!  

The Week 2 Homework

Here's a link to the webplayer version:


While I mostly built the thing out of my own assets that I made, I did use some stock textures on the floor and the wall that I downloaded from the asset store.  The musical track and a few of the sound effects are also from the asset store, though most of the sound effects just came from the lo-fi sample mp3s at Sounddogs.com.  

For Week 3's assignment, I think I want to keep my eyes on the prize here, and not get distracted with other tasks, like learning how to bake a normal map onto a lo-poly model.  That was certainly worthwhile, but it (along with IRL stuff) set me way further behind than I would have liked to be.  Anyway.  Hope it does what it needs to do!


Starting Unity...

Finished the Week 1 videos, completed the assignment, here it is:


Full disclosure: I modeled that scene (except the Vipers) some time ago in 3ds Max, so it was pretty easy to export as an FBX and import into Unity.  I had to clean up a lot of weird legacy objects and modeling leftovers, and rebuild all the lights from scratch.  I either accidentally deleted part of the door, or it didn't import properly.  I also haven't quite figured out how to deal with mapping materials effectively, which I think is more a byproduct of having been sloppy with my UVWs in 3ds. 

I've been a 3ds hobbyist for years, so I might talk a little game, but I have NEVER used Unity before, and haven't done any significant programming since Macromedia Director, so, I'm definitely going to be for all intents and purposes a noob.  Even if I say junk like UVWs.



Please sign in or sign up to comment.