string(175) "LC_CTYPE=C.UTF-8;LC_NUMERIC=en_US.utf8;LC_TIME=C;LC_COLLATE=C;LC_MONETARY=C;LC_MESSAGES=C;LC_PAPER=C;LC_NAME=C;LC_ADDRESS=C;LC_TELEPHONE=C;LC_MEASUREMENT=C;LC_IDENTIFICATION=C" string(22) "ProjectCaveDestruction" Arvutigraafika projekt - Kursused - Arvutiteaduse instituut
Arvutiteaduse instituut
  1. Kursused
  2. 2017/18 kevad
  3. Arvutigraafika projekt (MTAT.03.328)
EN
Logi sisse

Arvutigraafika projekt 2017/18 kevad

  • Main
  • Projects
  • Topics
  • Results and Schedule
  • Links

Cave Destruction Simulator

Marko Täht

This project will be used to do some additional work on my Master thesis.

In my master thesis I am creating a simulation for real-time 3D cave destruction calculation using Voronoi's diagram. User starts in an initial cave room. There the user can start mining in any direction he/she can reach. With each "hit" corresponding pieces are calculated and dropped out as rubble from the wall leaving a hole.

During the project a way for the user to interact with the simulator world is added (character). Some visual cues are created to visualize the process of mining/destroying the cave.

The plan is to:

  1. Research different FPS controllers in Unity
  2. Implement most suitable one for the simulator
  3. Add some basic UI (crosshair, etc)
  4. Create some visual cues to show the user what is currently happening (pickaxe, simplistic arms, swing animation)

Fine tuning the FPS controller, so that it would feel good will probably become the biggest issue along the way.

End result will be a cave generated by Voronoi's diagram. User's character is placed in the cave. User can move around and mine the walls of the cave. In real-time new smaller Voronoi cells are created and used to calculate and create the pieces that should fall from the wall.

Milestone 1 (02.03)

  • Research about FPS controller implementation in Unity
  • Create a scene where to test different first-person character controls

Result: There are two main kinds of FPS controllers that people make. One is based on CharacterController and the other is based on RigidBody. Camera controls are implemented similarly, since there is no physics and movement only rotation.

Camera is added as a child to the "Player" object and moved up where the head is supposed to be. For looking up and down the camera is rotated on the X axis and is clamped between 90 and -90 degrees. For left and right rotation the "Player" is rotated along the Y axis.

Movement is handled differently. For RigidBody controller Movement vector is calculated and the transform is translated with this vector. RigidBody is there only for the gravitational effect, and rotation along the X and Z axis are locked so that it would not topple over. For jumping upward velocity is set and the gravity takes care of the rest.

With CharacterControllel forward and sideways speed vectors are calculated and then given to method SimpleMove. SimpleMove differs from normal Move by the fact that, it ignores the y component of the vectors and it applies gravity to the movement. To make it jump, Move method is used to move up and SimpleMove is blocked off. During jump the entire physics needs to be calculated by hand. If the SimpleMove is not blocked of, you get a bouncing ball.

A simple scene was created to test the controllers on. It has movement up, some rugged parts and jumping parts and a fall off.

Milestone 2 (16.03)

  • Add more behavior to the FPS controllers
  • Test which controller is better with the added behaviors
  • Improve FPS test scene to test different behaviors(jumping, crouching, etc)
  • Arvutiteaduse instituut
  • Loodus- ja täppisteaduste valdkond
  • Tartu Ülikool
Tehniliste probleemide või küsimuste korral kirjuta:

Kursuse sisu ja korralduslike küsimustega pöörduge kursuse korraldajate poole.
Õppematerjalide varalised autoriõigused kuuluvad Tartu Ülikoolile. Õppematerjalide kasutamine on lubatud autoriõiguse seaduses ettenähtud teose vaba kasutamise eesmärkidel ja tingimustel. Õppematerjalide kasutamisel on kasutaja kohustatud viitama õppematerjalide autorile.
Õppematerjalide kasutamine muudel eesmärkidel on lubatud ainult Tartu Ülikooli eelneval kirjalikul nõusolekul.
Courses’i keskkonna kasutustingimused