Jacob's Blog Buttons (custom HTML)

portfolio
animation
character
digital art
Showing posts with label Unity. Show all posts
Showing posts with label Unity. Show all posts

Friday, August 5, 2016

AwfulJams 2016 - Grandfathered In

I did a game jam!  Specifically, we did a game jam; we being my old co-worker, Albert Peter, and my brother, John-Mark.  Albert did game design, writing, and art.  John-Mark was in charge of programming.  And I was in charge of character designs and sprites.

It was for AwfulJams 2016, a game jam run by some goons over at the Something Awful Forums.  It's a month long, and this year's theme was "Games for Grandpa."

Coming into it, we had this idea to do a visual-novel style game.  We had an idea of the theme, but it wasn't fully announced until the start date.  Very quickly we shifted from a single-encounter visual novel with 3D characters, to a 2D Long Live the Queen style game.

The story, written by Albert, was that the elderly were getting taken over by the militant-style Millenials, being forced to conform, or otherwise mysteriously disappearing.  We worked in several different endings, such as Grandpa successfully conforming by passing the Millenial's test at the end, Grandpa successfully not-conforming (but still passing the test at the end), and Grandpa escaping with a certain multi-platinum singer songwriter best friend.

Check it out here: https://floteam.itch.io/grandfathered-in

Before I get into a bit of a post mortem, here is the art that I had worked on:

I drew all of the character designs, did the coloring/shading, and inked all of the game sprites, except for the linework in base grandpa, grandma Muriel, and his grandson, Jason.  Albert did the linework for those.


Here are some of the pre-ink-and-color sketches.  You can see some alternate designs here.


And here are the original Grandpa Horace sketches I did, when I was exploring style.



Jacob's Post Mortem (after the jump; click Read More to view)



Saturday, March 29, 2014

Sneak Peek at Animated Facial Textures Script Update


Centering on texture and pupil secondary-offset control.
Tile offset, U and V tweaking, working all in one!

I am currently working on a Version 2.0 of my Animated Texture Offset script.  The biggest things I am adding are the option to choose the attribute to read in (position, rotate, scale, X, Y, Z) and support for pupils as mentioned in this post.

Choosing the attribute-in was something I had thought about when I was writing the first version, but it adds a significant amount of complexity to the process, though mostly on the Maya end.  That's actually why I'm writing the Unity C# script first.  I might have to do some weird fanagling with some local variables Maya's Expression Editor.  It could be on the simple side, of setting some variables and copying a script in, or it could be much more than that.

The second bit, the pupil animation, is actually easy to do in Maya.  I was originally going to write a second script to focus on a single pupil texture and offsets with that, but I realized I could merge it with the tiling texture script, allowing for multiple pupil types, as well as keeping it all in one package.  It makes the math significantly more complex, and the script a little harder to read, but it functions just fine.  The one reason it will be more difficult in Unity is because Unity's default shaders take RGB and A all in one channel, so I can't separate out the Place2DTexture of the diffuse and opacity.  I think the solution to that is to include with the script a custom shader that separates out those two maps.  At least that will be easy to write.

On top of those two things, I also refactored the code to just make it a little cleaner and a bit more robust.  The Inspector public variables are much nicer (for example, it takes a GameObject now, rather than a string name), and I have some good error checking in there.



Sunday, January 26, 2014

Global Game Jam 2014 and Unity Cookie Lights

Just finished the Global Game Jam 2014 today!  You can check our our game, Follow, here.  In short, its our idea of a blind person trying to find his seeing-eye-dog, who had run off.  He can only 'see' by sound, so this was our representation of the world as he might view it.

I got to play a lot in Unity, including some experimentation with HLSL/CG coding.  I ended up doing a lot of work with Unity's lighting, and animated it in-engine with the built in animation tools.  Thank goodness I did the characters from before.  I did some art direction, as well as some set dressing, and simple modeling.



We decided early on, whenever something made a sound, it gave off ripples and briefly lit the area, maybe a mix of echolocation and his mind's perception of what the area already looked like.  The problem was, we couldn't figure out how to do that in Unity.  Our solution was to just represent it with lights, and I went to work on trying to get a ramp shader so we could have some nice blown-out lights with harder edges than the quadradic point lights want to give us.  Think something like Closure's hard lighting.

On the last day, around 8 hours to the end, we found a way to pull it off: cookie lighting.  Weird name, I know.  It uses a map to put a sort of cut-out in front of the light, kind of like light shining through a grate.  I ended up using a point light with a spherical map, and I animated the light's motion.  There ended up being some weird issues with certain angles, and certain intensities, where it just acted like a point light.  I kind of wished I had used a spot light, but I didn't realize the origin of the point-light issue until we were too low on time.



I played a bit in a art directory sort of role.  I pushed the idea of the the fountain and statues in the park to be exaggerated, and had the people represented as bodies with giant lips and teeth; the idea being, a blind person can only see what they are, as he is, and he can't really feel a stranger to determine what they actually look like.  I would have liked to go even more surreal with it, but we had limited time as it was.


And finally, I have to give a shout-out to the whole team.  Our Unity Programmer god was Elio Feliciano, who saved us all when we were almost programmer-less.  Bryce Pelletier also filled in our programming team, mostly working on our AI while having never worked in Unity previously.  Rob Walker was our Lead and he filled in the all-important sounds in our game.  Angel Luis did our UI design and art, as well as writing.  Logan Blosser did a lot of design work, dialogue, and filled in all of the gaps; unfortunately, a bunch of his work never made it in-game, due to time constraints; but he was still indispensable.

And kudos to the artists for making a pretty awesome environment.  These were 4 artists who had to work together and autonomously at the same time, and I'm blown away at how well we worked.  We all played a part in modeling, and all played a part in set dressing.  Ivan Banche took the lead in building the city in Maya, as well as building most of the buildings.  Karen McCarthy sculpted most of the surreal stuff in the game.  Sean Buck modeled most of the set dressing (dumpsters, trash cans, signs, etc) as well as the cathedral and the construction site pieces.  I did a number of scattered objects (gravestones, trees, benches) and did a lot of scattered work in both the Maya file and in Unity.

Check out this beautiful little city made in just 48 hours.  Ironic that it's mostly in the dark, huh?

Sunday, January 19, 2014

RR Character Animations in Unity 2D

This project is on hiatus for now, so I want to post the animations I had worked on in December.

Rifle Enemy attack/idle

Rifle Enemy kill (in progress)

Flamethrower Enemy attack/idle

Flamethrower Enemy kill

Commando Enemy idle

Commando Enemy kill (barely any progress)

Demolition Enemy attack/idle

Demolition Enemy kill

Hero attack

Hero death (in progress)

Hero run/idle
I still need to finish up the Hero death, Enemy001 kill, and the Enemy003 kill.  As you can see, the formers are partially blocked, but needs some cleanup, the latter is barely started.  I'll either update this post or make a new one if/when I finish those two up.

Sunday, December 8, 2013

Faked Pixel Aesthetic for Unity

A buddy of mine was working on a game concept, and he wanted a pixel aesthetic.  I did a test over some existing animations to see how well Unity 2D could look for pixel art, and I was actually pretty impressed and how well the look carried over.


This is also a sneak peek of the RR four main enemy types (one more coming), and how their idles are turning out.

For a quick breakdown on how I set it up, click "Read more »"

Tuesday, December 3, 2013

Fix for Unity 2D Not Displaying Translate Manipulator

This is a pretty simple one, but it wasn't obvious to me.  I had to ask about it on the Unity forums.

I was working on my animation in a 2D perspective by clicking on the view cube arrow to give me an orthographic camera.  I'm not sure what I did, but my manipulator went missing.  I couldn't move the objects around anymore.  It turns out, I hit the "2D" button, which flattens it to a true orthographic camera, and then, for some reason, gets rid of your manipulators.  Just toggle it off, and you'll get everything back, just fine!

Check out these pictures for a visual explanation of my issue:


Friday, November 22, 2013

RR Hero Run Cycle

Just finished our hero's run, as well as the final Unity proof-of-concept.  Now I have to work on all of the enemies and the various interactions between the hero and these enemies.

This guy will constantly charges into enemies, just for your enjoyment.  What a nice guy.



.

Tuesday, November 19, 2013

Tutorial - Using Unity 2D's Dope Sheet for Animation

This tutorial is for anyone who wants to jump into Unity and get to animating sprites in-editor.   It assumes a basic knowledge of Unity, and goes over some of the new Unity 2D features -- enough to get animating.


Getting up to speed took a little time and experimentation with the Unity 2D Demo project, as well as the videos released by Unity.  I thought I might document it here for anyone who needs this information specifically.  For reference, here are the two Unity 2D demo videos currently available:
http://www.youtube.com/watch?v=B1F6fi04qw8
http://www.youtube.com/watch?v=4qE8cuHI93c
You can find a lot more information about Unity 2D there, on top of the information covered in this tutorial.


Click 'Read More' below to see the full document.

Monday, November 18, 2013

Unity 2D Animation Tests

I made a post on how to get started in Unity 2D sprite animation.  Check it out here.

I started with a test in Flash, separating the body parts out. I took inspiration from the artist, NCH, and the animation style of Shank. I drew up a character based on my last animation that ended up turning into League of Legends's Poppy (it was all because of the hair).


We decided on Unity so we could easily swap out pieces, in case we later wanted to do some sort of customization system.  While David was working on the programming and Ryoma was working on the concepts, I decided to figure out Unity's new 2D system with animation.

idle
run
attack

Late in the process, I realized I could group objects together (such as the head elements) so I could translate/rotate them together (which would have made the head animation cleaner).  I should have split the torso into two, so I could do bends there; the root of this problem is shown in the attack test.

Also, we had originally intended to keep the framerate low for style reasons (the attack and the idle look okay like this), but Unity doesn't handle stepped animation perfectly, sometimes tweening the frames in the wrong place, or just completely wonking out.

wonk wonk





Wednesday, November 13, 2013

Working on a Unity 2D Game

Today, I got started on a new prototype with Ryoma Tazi and David Brett.  We're using the new Unity 2D tools that just came out in the new package.  I did some Flash tests for what attacking and death could look like.  The game uses a mechanic that involves swiping to take down enemies in a sort of endless runner format.




Dis gon' be good. Stay tuned!

Monday, October 7, 2013

Animated Facial Features with Pupil

I recently received an email asking about moving a pupil around with the animated texture.  (Thanks for the email, Tom.)

The solution I came up with was using the same offset trick for the eye frames, and then using offset to control the pupil under the eye.  A LERP blended the two together.  It actually ended up being a simpler layout than I had anticipated:


The first Place2DTexture would control the offsets as shown in the the first tutorial to change eye shape, blinking, etc.  The second Place2DTexture would control the eyeball offset, which would cause the pupil to move around 'under' the mask.

The problem, though, was that I could do this in UDK or Maya, but not in Unity.  I'm not familiar enough with materials in Unity to work without a visual editor.  Strumpy Shader is a great node based editor for Unity, but it was designed to work in Unity 3.x, and isn't supported anymore.

Tom came up with a clever solution; he used an additional plane for the pupil.  The back plane had the eye outline (with lashes and the like) and the sclera colored in.  The front plane had the pupil and sclera color, with a mask applied over it that matched the shape of the sclera of eye in the back plane.  As a result, it was a very functional solution that worked very similarly to using a lerp, but it didn't require any special shader system.

If you wanted to keep the animation on the joints, controlling the pupil with either system would just require a script to handle rotation on the joints.  Say, when it rotates on Y to +/-180 , it offsets the left-right a set amount, and when it rotates on Z, offsets the up-down; the X will always point in the direction it's looking.  An aim constraint in either Maya or Unity (say, if you wanted dynamic eye direction) could drive the rotation on the existing joints, and the script would go from that information.

Friday, July 26, 2013

Animated Facial Textures in Maya and Unity

Download the pdf document here:
Direct link

Check it out online here:
Animated Facial Textures in Maya and Unity - Full Document

You can check my further notes on the subject here:
More on Animated Facial Textures

Essentially, my goal was to create a texture-driven facial animation system that worked in both Maya and Unity.  Making one in Maya is very simple, but I found very little on getting it to work in Unity, and nothing about getting it to export from Maya.

To give a bit of a background, for FIEA, one of our assignments was to document or write a tutorial about something we learned or wanted to learn.  I took this opportunity to pick up Unity, and solve a possible problem for a game I will be working on soon, and a problem I'd been curious about since when I was working on Intrepid.


I came up with a solution using joint animation that can be baked out of Maya and used in Unity.  The Maya portion gave me some practice with Maya Expressions, which is great considering I want to rig up the rest of the character soon.  And the Unity portion gave me a chance to learn Unity, and also learn some C#.  C# wasn't too difficult to pick up, having studied C and Java in the past; the code to get it all working can pretty much be copy-pasted from the document.

Download the pdf from the link above.  It should be very accessible - it breaks it down really small to start; getting it in engine, and how the math of the expressions and the image offset method will work.  And in sections 4 and 5, it gets to the meat of the whole operation.

If anyone has any questions on how it works, or why I did something; or any comments on how I can improve this method, I'd love to hear it.  Send me an email, or drop me a message here.

Animated Facial Textures in Maya and Unity - Full Document

Click 'Read More' below to see the full document.

Tuesday, May 28, 2013

Nassa the Gnome, Version 2

I wanted to experiment with animated textures for facial features, which was my original plan with the old Nassa model.  I've been on a low-poly model kick for a little while, so I decided this is the ideal time to create a new model.  The goal was to stay under 1000 tris.  I also intend to take this one through textures so I can test using animated textures for the face in Maya and in Unity.

I did consider working from my older model, but I really wanted to try applying everything I've learned over the past few months.  It's interesting to see how similar it is to my old model, but how the shapes are so much better now, with fewer polys, too.




The picture above is the newer sketch I was working off of for this new model.  I fleshed out my original idea and design, visually describing the materials her clothes were made of, and the individual layers of the clothing.  I leaned towards a more cartoony look, since I wanted to push the designs of our three DnD characters; one short cute female gnome, one big beefy human/vryloka, and one fat stocky dwarf.