Friday, August 2, 2013

Best Job Ever at the Best Camp Ever

I just finished up 8 weeks of teaching Maya, Java, Scratch and Fusion2 to kids ages 7-18 via iD Tech camps at Emory. It was my second summer being an instructor (I taught Maya and Web/Graphic design 2 years ago) and it was a ton of fun.

[pie in the face]



iD Tech is probably a part of the reason I got into DMD at Penn. I took the 3D Modeling/Animation course for 3 weeks in between my junior and senior years of high school and basically did a crash course on Maya so I could make a portfolio for myself. This was the first thing I ever made in Maya:

[I thought Maya was so cool - it was love at first sight.]






Saturday, June 1, 2013

End Chapter

So, I graduated!

[proof, repping ATL]


It was a blur of a day, Biden gave a speech, a lot of photos were taken that I haven't even posted on facebook yet, and there was a LOT of family and friends in town for me. My mom, my best friend and I drove 13 hours back to Atlanta with everything (important) that I acquired during my 4 years at Penn and it was/still is weird to not know when I'm going back. 

Penn was an incredible experience and I'm so glad I went. DMD was so awesome and I met so many people that I wish I could have spent more time with! I will miss my casa de locas, all of my favorite places to eat in Philly (which could have their own blog), Penn squirrels, Locust Walk, my ZTA family, my DMDers, being around so many different people all the time, and lots of other things. 
I wasn't quite ready to leave all those things yet...




Friday, April 26, 2013

Demo Days

Demo Day finally arrived! I did a powerpoint on my project and my results were right in line with what I was hoping for. Player that "looked farther ahead" were more intelligent and made better decisions than Players that only looked one ply ahead.

For Intelligence Level 1 v. Intelligence Level 1, the characters fought on par, keeping close scores the whole time and having a relatively long fight length:

For Intelligence Level 3 v. Intelligence Level 1 the Level 3 beat Level 1 by a considerable amount and in a relatively short time:

Sunday, April 21, 2013

Collisions, Triggers, Reversing Animations

Right now I'm working on reversing the sword animation when a potential collision between two swords is triggered. It is a lot more complicated than I anticipated! I had been using Unity's mecanim animation system because of the motion graph it provides, but it seems that it may not be very well suited for reversing the animations at an instant's notice...

Thursday, April 18, 2013

Sword Actions

I decided to use simple sword motions instead of whole character motions. I am more interested in the algorithm and how it applies to swordplay than I am the actual animations, so I created a few quick animations of just the sword in Maya for moving Forward, moving Backward, strike Left, strike Mid, strike Right, defend Left, defend Mid and defend Right.

Thursday, April 11, 2013

Project poster

I created a poster for the poster session describing what my project is all about. Game trees are pretty cool!





Sunday, April 7, 2013

Checkers = solved

I've finally got my checkers game working correctly with game tree logic. In the end I used a 2d array and checked the validity of the moves depending on their start and end spaces. There was also a bit of hard-coding. I feel like I could have probably done it in a more systematic way but I couldn't figure it out and I figured since this was not the problem I'm actually trying to solve it's fine if I just lay down the rules manually.

The evaluation function I ended up using takes into account how many pieces of each color there are on the board, how far each non-king is away from the edge and how many kings there are. The function that gives a number value to a board evaluates the boards "statically" so that it can decide how good or bad of a board it is based only on it's current state.


Saturday, March 23, 2013

Checkers are complicated

I had a pause in progress because of Spring Break and then Relay business, but I've recently been working on making Checkers and it's way more complicated than I had antipicated. I got a 2-player game going fairly easily (below) but I've been having the hardest time trying to figure out how to validate moves, which is important because I need that to create the gametree nodes.


On the motions side, Corey was nice enough to give me some sword motions she's captured, so I'm looking at those and seeing if they will fit.

Monday, February 25, 2013

Some Progress!

Finally got my puppets rigged up (more or less) with the attack moves via Animation State Machines. I've parented two cubes to the hands for swords, but it's a little makeshift. I'm going to have to see if there's a better way to do that.


Sunday, February 24, 2013

Tic Tac Toe

Update: Tic-tac-toe is correct now! It can simulate automatically and also play with a user. Finally! Back to figuring out Unity now.

Ah!

So I initially brought the mocap sword animations into Unity by having them all on one model, importing the model with animations, and then splitting them using frame numbers in Unity. This seemed to work, but after some reading I realized it might be pain to add on more animations to this model, which I would eventually want to do since I'm starting out with a small subset of motions,  so most of yesterday I tried importing the animations with different files.

I read that you could import just the model.fbx, which contains the mesh and the skeleton but no animations, and then for every animation you can import model@animation1.fbx and Unity will link the two automatically. I'm not sure what I did wrong but I could NOT get Unity to recognize that they were the same. I tried all kinds of different export settings from MotionBuilder and different names but it would NOT work. So I started investigating how I can link them up manually by creating an animation controller and building up the animation state machine. This is good because I wanted to make a motion graph for my animations anyway, and the animation state machine that Unity provides seems to do the job. I know there are built-in 3rd person animation controllers in Unity but again after some reading, it seemed like that wasn't the best option for what I want to do and that I should build one from the ground up.

... we'll see. It's frustrating that this is all such unfamiliar territory but like I said before, I guess that's the learning process?

On the game tree side, I realized my tic-tac-toe game had some issues as after extensive testing, the computer didn't always pick the best option. Trying to nail down where those errors are now.

I haven't left my house since 5pm Friday... going a little stir crazy! Thankfully my mom sent me a few pictures of my (12 year old) baby dachshund and the newer addition to our dachshund family at home to keep me motivated.


Thursday, February 21, 2013

Some Practice

On the advice of Dr. Lane I made a Tic-Tac-Toe game to practice implementing Game Trees. I wrote it in C# so I could get use to the syntax differences for Unity. It was actually a bit trickier than I thought it would be, there are a lot of things to consider (and a few different ways to implement it)

I also brought my motions into MotionBuilder and exported them as fbx files that I can use in Unity. I chopped them up but am still working on the character controller. I haven't found a good clear method for doing it with imported animations and I'm confused as to how Avatars come into play.

Thursday, February 14, 2013

Slow Progress

It was a really busy week (thank god Alpha reviews got pushed back) because we were hosting a Relay for Life event on Wednesday --- so much work!

BUT I did download a couple of c3d's into Motion Builder and I've been working on cutting them up into individual actions (they were all one long file). It looks good so far.

Thursday, February 7, 2013

Motion capture is cool but...

I met with Dr. Lane on Monday to go over the papers I've been reading, where I'm at, and what I should be most concerned with going forward. We decided the most difficult part is going to be implementing the game tree search (unsurprisingly) but I finally feel ready to get some actual things showing up on my screen now.

He showed me the CMU database for captured motions and they actual will do just fine. I think motion capture is one of the coolest things ever, but in the interest of time I'm going to try to work with these motions instead. It's not everything that I want but it's a good start and if need be I can always capture a couple.

Thursday, January 31, 2013

Papers on Papers on Papers + Unity

I've been reading through the research papers that are related to my project and 1) there are SO many papers related to character animation/ multi-player interactions/fighting/interactive character control that I could/want to read it was really hard to just pick a few 2) I forgot how dense research papers are... It's taking a while.

Also I found a tutorial on lynda.com for Unity that I've been working through. It's a pretty interesting interface, not very button heavy like Maya. I've never been into making games that much but it's a pretty cool environment because you don't have to worry about writing rendering code to see your stuff.

It's looking like I may need to capture some motions though...

Friday, January 18, 2013

Sword Fighting Through Senior Year

I'm finally in my last semester as an undergraduate!

This semester I'm doing my senior design project. It was so hard to think of something possible and interesting, but with the help of my advisor Dr. Stephen Lane, I've settled on creating a sword fighting simulator that will (hopefully) be interactive. I'm interested in character animation in general, but I'm specifically interested in this project because I think the concepts could be generalized to other sports like football (my favorite!).

The main aspect of interest here is that the animations are calculated based on min/max approximated game tree search. I was unfamiliar with game trees before, but it seems like a really versatile algorithm.

I'll also be using Unity for the first time. So far I've downloaded it and I'm working through some tutorials. I guess this is the time to try new things!

I only need two credits to pass and one of them is this project (although I'm taking three for the sake of being a full time student) --- Here we go!