Canyon Adventure Technology David Maung, Tristan Reichardt, Dan Bibyk, Juan Roman Department of...

1
Canyon Adventure Technology David Maung, Tristan Reichardt, Dan Bibyk, Juan Roman Department of Computer Science and Engineering The Ohio State University Kinect Canyon Adventure combines the needed physical motions with a fun and enjoyable objective in the form of a game. To do this, we have integrated the Microsoft Xbox Kinect to capture player movement and associate it with gameplay. The required movements are tailored by therapists to promote physical therapy for the rehabilitation of stroke patients. By using a circular buffer that reads in skeletal data from the Kinect, representing the players current body position. This data is provided as frames consisting of 20 skeletal joints and their orientations in 3-space. The designed software enhances on provided Kinect information with the use of the circular buffer to hold the last 10 seconds of data. We use a state machine recognizer to parse the skeletal data and recognize completed gestures. Each gesture is represented in states. As soon as the requirements for one state are met, the state machine can immediately move on and begin searching for the requirements to enter the next state. Once the gesture is completed the game takes the appropriate action. Keeping all of the gestures separated during the recognition phase is a challenge. It is impossible to keep different gestures from having parameters that will overlap with another. When this Basic View of Game This is the basic setup of the game: Gestures In order to ensure that Canyon Adventure will be able to fulfill its purpose, therapists supplied a list of desired gestures that they wished to be able to work on with their patients. The following is a list of the current gestures in the game. Figure 1. Breakdown of game build Testing Each mechanic was initially tested separately. This allowed for quick discovery of any flaws in the logic of the code ranging from incorrect positions to memory leaks. Whomever designed the mechanic was the one who preformed these tests as they know the inner workings. Preforming unit tests in this way allowed for quick error detection and correction. Upon completing the unit testing for any game mechanic, the next step was to integrate it into the rest of the game. It was not uncommon to have someone who did not know the code to do this testing. This served two purposes. First, it allowed a better check to see if the mechanic worked within the game the way in was intended to. The second was to check to see if the integration caused any errors with previously working mechanics. Introduction Video games are an ever growing part of computer science. They are one of the driving forces behind the advances made in computer graphics and special effects. More recently, motion capture technology has been used in games and even motion pictures. We are building on this idea. where the game starts on the credits screen before going to the main menu. From the main menu it is possible to either exit the game, change options, or play the game. The game itself can be broken down into time elapsed, the gestures used, the games terrain, and the interactive objects. The terrain is made up of two parts, the canyon river and the cave. We have two types of objects, those to avoid and those to collect in order to improve the players score. Arm to Side Bend Down Bilateral Shoulder Flexion Bilateral Wave Head Side to Side Reach Across Reach Forward Reach Scoop Reach Up Reach Up and Forward Rowing Saturday Night Fever Shoulder Turn Stirring Stop Sweep Left Sweep Right There are a few special cases such as Sweep Left and Sweep Right needing separate implementations depending on the arm being used. Bilateral Shoulder Flexion and Bilateral Wave use both arms. Figure 4. Two views of the skeleton we used. Each point has its own local coordinate system. Game State Diagram Figure 2. State Diagram Terrain Creation All of the landscape is procedurally generated. The canyon is generated as a straight river and then curved by applying different functions to it. The cave is also generated randomly by selecting different cave tiles to piece together while ensuring there is always a path that connects the entrance to the exit. Once a complete cave has been created, it is than modeled into 3- space. This is what is finally rendered into the game. Figure 3. The left image is a 4x4 block of cave tiles, the right image is the tile modeled in 3-space Once the game is started, the first thing to run are the credits. By hitting the escape key the user is able to skip this screen to go straight to the main menu. From the main menu the user may go to the options screen, exit the game, or begin playing. Should the user decide to play, a loading screen will appear as all of the game content is loaded. Once this is done the user will be moved on to the gameplay screen.

Transcript of Canyon Adventure Technology David Maung, Tristan Reichardt, Dan Bibyk, Juan Roman Department of...

Page 1: Canyon Adventure Technology David Maung, Tristan Reichardt, Dan Bibyk, Juan Roman Department of Computer Science and Engineering The Ohio State University.

Canyon Adventure TechnologyDavid Maung, Tristan Reichardt, Dan Bibyk, Juan Roman

Department of Computer Science and EngineeringThe Ohio State University

KinectCanyon Adventure combines the needed physical motions with a fun and enjoyable objective in the form of a game. To do this, we have integrated the Microsoft Xbox Kinect to capture player movement and associate it with gameplay. The required movements are tailored by therapists to promote physical therapy for the rehabilitation of stroke patients. By using a circular buffer that reads in skeletal data from the Kinect, representing the players current body position.

This data is provided as frames consisting of 20 skeletal joints and their orientations in 3-space. The designed software enhances on provided Kinect information with the use of the circular buffer to hold the last 10 seconds of data. We use a state machine recognizer to parse the skeletal data and recognize completed gestures. Each gesture is represented in states. As soon as the requirements for one state are met, the state machine can immediately move on and begin searching for the requirements to enter the next state. Once the gesture is completed the game takes the appropriate action.

Keeping all of the gestures separated during the recognition phase is a challenge. It is impossible to keep different gestures from having parameters that will overlap with another. When this occurs the game can develop a false positive in which a gesture is inadvertently recognized. The solution is to keep each gesture as precise as possible, and avoid placing similar gestures into the same segment of the game. Once a gesture has been recognized, the buffer storing the gesture state is cleared to ensure new gestures can follow.

Basic View of GameThis is the basic setup of the game:

GesturesIn order to ensure that Canyon Adventure will be able to fulfill its purpose, therapists supplied a list of desired gestures that they wished to be able to work on with their patients. The following is a list of the current gestures in the game.

Figure 1. Breakdown of game build

TestingEach mechanic was initially tested separately. This allowed for quick discovery of any flaws in the logic of the code ranging from incorrect positions to memory leaks. Whomever designed the mechanic was the one who preformed these tests as they know the inner workings. Preforming unit tests in this way allowed for quick error detection and correction.

Upon completing the unit testing for any game mechanic, the next step was to integrate it into the rest of the game. It was not uncommon to have someone who did not know the code to do this testing. This served two purposes. First, it allowed a better check to see if the mechanic worked within the game the way in was intended to. The second was to check to see if the integration caused any errors with previously working mechanics.

IntroductionVideo games are an ever growing part of computer science. They are one of the driving forces behind the advances made in computer graphics and special effects. More recently, motion capture technology has been used in games and even motion pictures. We are building on this idea.

where the game starts on the credits screen before going to the main menu. From the main menu it is possible to either exit the game, change options, or play the game. The game itself can be broken down into time elapsed, the gestures used, the games terrain, and the interactive objects. The terrain is made up of two parts, the canyon river and the cave. We have two types of objects, those to avoid and those to collect in order to improve the players score.

• Arm to Side• Bend Down• Bilateral Shoulder Flexion• Bilateral Wave• Head Side to Side• Reach Across• Reach Forward• Reach Scoop• Reach Up• Reach Up and Forward• Rowing• Saturday Night Fever• Shoulder Turn• Stirring• Stop• Sweep Left• Sweep Right

There are a few special cases such as Sweep Left and Sweep Right needing separate implementations depending on the arm being used. Bilateral Shoulder Flexion and Bilateral Wave use both arms.

Figure 4. Two views of the skeleton we used. Each point has its own local coordinate system.

Game State Diagram

Figure 2. State Diagram

Terrain CreationAll of the landscape is procedurally generated. The canyon is generated as a straight river and then curved by applying different functions to it. The cave is also generated randomly by selecting different cave tiles to piece together while ensuring there is always a path that connects the entrance to the exit. Once a complete cave has been created, it is than modeled into 3-space. This is what is finally rendered into the game.

Figure 3. The left image is a 4x4 block of cave tiles, the right image is the tile modeled in 3-space

Once the game is started, the first thing to run are the credits. By hitting the escape key the user is able to skip this screen to go straight to the main menu. From the main menu the user may go to the options screen, exit the game, or begin playing. Should the user decide to play, a loading screen will appear as all of the game content is loaded. Once this is done the user will be moved on to the gameplay screen.