Difference between revisions of "Project4F20"

From Immersive Visualization Lab Wiki
Jump to: navigation, search
Line 1: Line 1:
UNDER CONSTRUCTION
+
UNDER CONSTRUCTION - DO NOT START YET
  
<!--
 
 
=Project 4: Among Us Simulator=
 
=Project 4: Among Us Simulator=
  
In this project you will need to build a scene that resembles the activity in the lobby of the game Among Us. The lobby is where all players gather before the game starts.
+
In this project you will need to build a 3D scene that resembles the activity in the lobby of the popular game Among Us. The lobby, a.k.a. waiting room, is where all players gather before the game starts.
  
This project implements the following skills from the lectures:
+
If you are not familiar with Among Us, we recommend that you watch [https://www.youtube.com/watch?v=fNM9_d5LAzw this video clip], which shows a typical game play. Importantly, the first minute of it shows the action in the lobby where the players gather before the game begins.
  
* texturing
+
[https://www.youtube.com/watch?v=PnjZiHQjmG4 This video] has more active players who keep walking around, which is similar to what you need to simulate for this homework project.
* sky box
+
* environment mapping
+
* scene graph
+
  
The user of your program should be able to control a variety of options within your simulation using the keyboard. You may choose which keys control which functions, but make sure they are clearly documented in either a text file named <tt>README.txt</tt> which you add to the main directory of your code, or in your video (narration or text overlays). The following interactive controls should be available to the user:
+
This project implements the following skills from the lectures:
 +
 
 +
* toon shading
 +
* collisions with bounding spheres (when walking around)
 +
* particle system (when new players arrive)
 +
* Selection buffer for selection with the mouse - not covered in class
  
* Start/stop the animation of each of the levels of your motion hierarchy separately.
 
* Move around within the simulation (by moving the camera): forward, back, up or down, as well as turn the camera left or right (which affects subsequent forward movements).
 
 
 
The total score for this project is 100 points. Additionally, you can obtain up to 10 points of extra credit.
 
The total score for this project is 100 points. Additionally, you can obtain up to 10 points of extra credit.
  
There will '''not''' be a discussion on November 11th because of Veterans Day. Instead, this project will be introduced in lecture on Tuesday, November 10th.
+
This project will be discussed on Wednesday, November 25th.
 +
 
 +
Ideally, you re-use your scenegraph structure from project 3. But if you are not happy with it you can implement your project without a scenegraph structure.
 +
 
 +
==Rendering the Lobby==
 +
 
 +
Load OBJ model
 +
set camera parameters
 +
 
 +
==Rendering the Players==
 +
 
 +
Toon shading
 +
 
 +
==Animating the Players==
 +
 
 +
Switch through animation keyframes
 +
start in random orientation
 +
walk straight, bounce off objects and other players (angle of incidence=angle of reflection)
 +
randomize stop/start walking
 +
 
 +
==Player Appearance/Disappearance Effect==
  
We recommend starting with your code from project 2 and removing the rendering of the 3D models. In this project you are going to render all new objects, using your own implementation of a scene graph.
+
randomize appearance/disappearance of characters
 +
particle system
  
 
==Extra Credit (10 Points)==
 
==Extra Credit (10 Points)==

Revision as of 16:59, 20 November 2020

UNDER CONSTRUCTION - DO NOT START YET

Contents

Project 4: Among Us Simulator

In this project you will need to build a 3D scene that resembles the activity in the lobby of the popular game Among Us. The lobby, a.k.a. waiting room, is where all players gather before the game starts.

If you are not familiar with Among Us, we recommend that you watch this video clip, which shows a typical game play. Importantly, the first minute of it shows the action in the lobby where the players gather before the game begins.

This video has more active players who keep walking around, which is similar to what you need to simulate for this homework project.

This project implements the following skills from the lectures:

  • toon shading
  • collisions with bounding spheres (when walking around)
  • particle system (when new players arrive)
  • Selection buffer for selection with the mouse - not covered in class

The total score for this project is 100 points. Additionally, you can obtain up to 10 points of extra credit.

This project will be discussed on Wednesday, November 25th.

Ideally, you re-use your scenegraph structure from project 3. But if you are not happy with it you can implement your project without a scenegraph structure.

Rendering the Lobby

Load OBJ model set camera parameters

Rendering the Players

Toon shading

Animating the Players

Switch through animation keyframes start in random orientation walk straight, bounce off objects and other players (angle of incidence=angle of reflection) randomize stop/start walking

Player Appearance/Disappearance Effect

randomize appearance/disappearance of characters particle system

Extra Credit (10 Points)

You can get up to 10 points of extra credit by adding some or all of the features below:

  1. Sound effects: Add the following audio features to your applications:
    • A background music track that plays throughout the entire application.
    • A sound effect for when players join, and a different one for when they leave the lobby.
    • A sound effect whenever a character runs into the computer.

The sound effects and background music should not cut each other (in other words, they should be able to play at the same time without forcing one another to pause or restart).

Submission Instructions

Once you are done with this project, record a video demonstrating all the functionality you have implemented.

The video should be no longer than 5 minutes, and can be substantially shorter.

Ideally, you will talk over the video to explain what you are showing. Alternatively, you can display text for this purpose.

To create the video you don't need to use video editing software, but you should use software to capture your screen to a video file.

  • For Windows users we recommend the free OBS Studio.
  • On Macs you can use Quicktime to record off the screen.

If this does not work for you, you can hold your phone in front of the screen and record with a steady hand.

Upload this video at the Assignment link on Canvas, and comment which functionality you have or have not implemented and what extra credit you have implemented. If you couldn't implement something in its entirety, please state which parts you did implement and hope to get points for.

  • Example 1: I've done the base project with no issues. No extra credit.
  • Example 2: Everything works except an issue with x, I couldn't get y to work properly.
  • Example 3: Sections 1-2 and 4 work.
  • Example 4: The base project is complete and I did z for extra credit.

Finally, zip up your source code (.cpp, .h, executable and shader files, as well as any .obj files which were not provided to you) and submit the zip file at the Assignment link on Canvas as well.

-->