P1: Interactive Toy

For your first project, you will take the sample unity project posted on this blog site (p1) and modify it to have a more interesting movement when you click somewhere on the screen.

Currently, the circle moves to the new location with a very rigid motion, at a fixed speed.

You should modify the motion so that it moves in a more appealing manner.  You should use your imagination to decide what “appealing” means.  For example, read some principles of traditional cartoon animation for ideas on how objects move in animation, to give the view a sense of liveness.

The project is due at 5pm on Friday August 30.

We require at least the following additions:

  1. the motion of the sphere should be modified to move in a non-linear, non-trivial way from it’s current location to the target/clicked location
  2. if the target location is changed while the object is moving, the sphere should change direction smoothly
  3. a sound should play when the user clicks, as the object moves and when the object stops moving.

You can add textures to the ground and sphere if desired, add other graphical effects and details as you see fit:  do whatever you can to create a more compelling experience for the player using your “toy”.

You should NOT use the physics engine.  All avatar motion should be done by changing the transformations on the three game objects representing your avatar, leveraging time values.
You will turn your project in two ways:
  1. upload the .unity3d file created when you publish for the web to the “P1 Files” directory in the t-square resources.  Rename the files to be your-blogid-p1.unity3d
  2. submit the unity project files as a zip file as an attachment to your t-square assignment submission
  3. post a blog post to this site, tagged with the “Project 1” category (and only that category).  You should have a brief description of your submission before the “break” in the post, and additional text and the unity plugin file after the break (so that your submission only shows up when it’s being viewed on a single page, not when all of the Project 1 posts are viewed on the category page)
  4. include a direct link to your  blog post in the description of your submission on t-square, to make it easier for the TAs to grade.  NOTE: this means you should do the blog post first, so you have the url

NOTE: blog posts are timestamped, so if you update your blog post after the due date, it will be treated as a late submission.

5 Responses to “P1: Interactive Toy”

  1. SY says:

    Is a series of linear lines acceptable motion or are linear lines completely out of the question?

  2. The Dude Abides says:

    I’d like it to appear smooth, so a series of linear lines that are interpolated across multiple frames is not really what I’m looking for. However, it would be reasonable (for example) to have a piecewise linear path defining the basic motion, but that using some functions on top of that to move smoothly relative to the line.

    For example, masking the linear segments with Perlin Noise, or having the sphere otherwise have a non-linear movement guided by a collection of linear lines (really, by a few key points defining the motion) is perfectly reasonable.

  3. CS says:

    If a new destination is clicked while the object is moving towards the first location, does the sphere need to change directions or begin to change directions immediately or can the sphere reach the original location and then proceed to the new destination?

    • Sorry for not being clear. When I said “change direction smoothly” I mean it should change direction starting when you click, changing from moving toward the old target location to moving toward the new target location smoothly. So, to answer: it should start changing direction immediately.

  4. A student asked me: In the project description, you stated “the motion of the sphere should be modified to move in a non-linear, non-trivial way from it’s current location to the target/clicked location”
    What do you mean by “non-trivial”? Can you give me an example of something that you would consider to be trivial, and something that is not trivial?”

    The current motion is linear, and trivial. A simple mathematical filter (e.g., I’ll feed it into a sin() function to make it more in a slightly different way) would still be trivial. Having something that starts to move in a more complex way (e.g., using cartoon-like animation, with a bit of anticipation and follow-through) (e.g., use Perlin Noise or some other techniques to create a more visual interesting motion) or leverages a bit more complex input (e.g., hold the button down and start moving on release, not click, and have the motion be dependent on the length of time held) (e.g., pull toward the moving mouse as it moves toward the click location, but still get to the target of the initial click) would be non-trivial. Something with state for example.