Tuesday, February 28, 2012


So the plugins in my project got messed up somehow...
They are in the Plugin folder within the Asset folder, and show up in the Project Window in the Unity Editor, yet upon running the project, these errors pop up, and I have no idea why.

I tried checking out a previous revision into a different folder, but I get the same errors.  I also tried to move some of the .dlls to the unity/editor folder, but that didn't help either... No issues like this ever occurred before.

I'm basically stuck at this point, any suggestions?


Thanks Joe! Adding the directory to PATH fixed the DLL issues!  There were a few other errors after that, but I just needed to re-link a few scripts and game objects.  Things should be back on track now.

Monday, February 27, 2012

Problem + Velocity Fields

Unfortunately, my project is currently broken at the moment.  I think I know how to remedy this, but I cannot try to fix it until later today.

Until then, I want to focus on how to set up velocity fields.  Storing velocities from the hand motion should be easy now that the directional heading control is almost functioning correctly.  Instead of updating the agents' positions immediately based on the velocity samples, the agents would be held in place and the samples would be stored in a grid mapped to the game space.  Then when the user is finished setting up the field, they can let the agents 'go', letting them be affected by the velocities stored in the grid.  My biggest concerns are entering and exiting this mode so that the agents stay in place until the user is ready to let them go and finding a good grid size; cells that are too small may cause the agents to end up appearing confused or stuck.  What will really be cool is getting the velocities in one cell to influence the agents' current velocities, rather than just giving the agents a new target, causing them to change direction abruptly.  This will start to give the agents more natural and fluid-like motion.

So realistically, my first goal is to set up functions for storing velocities from hand movements and applying velocities to agents.  Then I need to build a simple grid structure and map it to the game space.  Combining the two should allow for a very basic velocity field control feature.

That's it for now!

Monday, February 20, 2012

Directional Heading: Progress

This post will be updated while I work on directional heading controls.

I realized something that was causing really poor results before (which can be seen in the video in the previous post).  The agents were only changing direction, but not really moving much.  This turned out to be because I was sampling the velocity of the hand at each frame and not giving the agents much time to move before receiving another target.  There is now a 1 second delay between hand velocity calculations and the agents actually start to move in the proper direction with a much better visual result.  This does make me question how the directional heading control should work though.  Should the agents move in that direction until they reach an obstacle or the boundary of the world, or should their velocity drop off and they eventually stop?

The biggest problem is that the user will most likely move their hands while the agents are moving, but is the user giving a new directional heading, trying to do something else, or just doing some non-game related motion?

A threshold will be necessary to ignore small hand motions.  Also I am considering including a period of time after the command is given where the agents will ignore new hand motions giving the user time to relax their arms or switch out of directional heading control mode, etc.

That's all for now, thanks!

Saturday, February 18, 2012

Starting Again

So my senior project was finished and I'm very happy about it! It was a really fun experience.  However, of course it was not as finished as I would have liked.  So now that I've settled into this semester, it's time for me to go back and continue to work on this project.

First a re-cap:
This video shows the most recent results of the project.

I was able to get some really basic reactions from the agents based on the acceleration of the user's hands.
What I would like to do is to get this aspect debugged and fully functional so that when the user moves their hand in a certain direction, the agents will move in that direction at a speed based on the speed of the hand.  To make it clear, they should not just follow the hand, but move in the general direction of the hand.

This control feature would be really nice with the option to set characteristics to the group of agents, because the user could set the characteristics then send the group off in a certain direction and watch what happens as the agents run into obstacles or other agents.  The user would be freed up from having to control these agents directly and could work with a different group, select individuals, or use different controls.

I would also like to get behavioral animation and dynamics working between the agents, but there are some issues going in that need to be addressed which I will get to later.

That's it for now,

Wednesday, December 7, 2011

Now and Then

My project has changed considerably from the start of the semester.  It started out as an idea for a game, but has become much more generalized yet also more focused at the same time.  Instead of having to worry about creating the assets and artwork, I have been able to instead work on the functionality, which when complete, will provide a base package that could be used for a variety of interactive applications (read games).  I hope that I could even go on to create the very game I had originally planned and possibly more games using this project for the base functionality.

Tuesday, December 6, 2011

Next Steps

So, the Beta review was good and bad.
The bad news is that, the demo went slightly awry.  A feature I had been working on that week didn't work properly... The good news, however, is that I got a lot of nice feedback and am ready to take the next steps to get this project completed.

The top priority for this week is to correct whatever went wrong with the demo and set up the constraints for giving directional headings to the agents.  Then I plan to start setting up the framework for creating the vector flow fields.  This shouldn't be too hard since determining velocity changes is already required for the directional headings; it's just a matter of storing the vectors in a grid and having the agents influenced by the stored vectors.

I want to have all of the above completed by the end of this week, and then by the middle of next week,  I'd like to have the vector fields working smoothly.  I will then have the final week to add a couple of extra features, rework the paper that goes with this project, and to create the final video presentation.


Tuesday, November 15, 2011

Progress and Control

Hi all,

Unfortunately, I wasn't able to work on my project very much last week... but this week it's time to get back in action.

I was able to get the tabs to change between modes working.  They need a bit of tweaking, but for now, they do the job nicely.

Hovering over the top tab changes the mode to Create.
When in creation mode, agents are created at the hand points after a small delay.  This gives the user time to decide where to place the next two agents.  Of course, this isn't the best solution.  I really would like to get hand depth involved here in order to give the user better control over when and where to create agents, as mentioned in an earlier post.

Hovering over the middle tab changes the mode to Select.
Here you can select agents and have them follow each hand.  Deselection still works by 'clapping', but I want to try the 'shake off' idea suggested to me during alpha reviews.

Hovering over the bottom tab changes the mode to Control.
Right now this does nothing.. very sad.. but I want this to be my next major focus for beta reviews.  I'm caught between jumping right into flow fields and starting with something a little bit less complex and then building up.  My idea right now is to start with giving selected agents directional headings.  This requires being able to create vectors from hand motions and applying those vectors to the agents.  With this more basic system in place, I could then build on that to generate vectors over a grid to create the flow field.  Then the agents would update their current velocities based on the flow vectors in their predicted grid position.

That's all for now,