Arvutiteaduse instituut
  1. Kursused
  2. 2025/26 sügis
  3. Arvutigraafika (MTAT.03.015)
EN
Logi sisse

Arvutigraafika 2025/26 sügis

  • Main
  • Lectures
  • Practices
  • Projects
  • Test
  • Results
  • Links

Procedural Animation

Patrick Tiit Raal, Artjom Geimanen, Juhan Oskar Hennoste

Description

The goal of this project is to create a 2D game, where the player character's movement is driven by a procedural system, akin to a game called Rain World. Rather than achieving animations through traditional keyframes, they would be math-driven, applying trigonometry and inverse kinematics. The player would inhabit and move around a handcrafted level. The playable character is a creature which makes the process of achieving the desired result more flexible.

Initial progress

Repository: https://github.com/p4triko/CG-2025-Project-Procedural-Animation

Initial progress build can be downloaded here: Initial Progress build

Introduction

What is procedural animation?

Imagine the time of old Disney animations, artists would draw each of the characters movements and actions by hand. Nowadays we have new and different solutions for animating such as animation software. The point is that animations are mostly pre-made, either done by traditional ways or utilizing motion capture. Our goal is to avoid that and achieve these results in-game during gameplay by generating them procedurally.

Inverse kinematics

A very popular term found in procedural animation. To put it briefly, it's a process of determining the correct motion for a limb/joint to reach the desired goal.

This article gives a much broader explanation of the methods covered.

Core features

  • A playable procedurally animated character.
  • An environment/level for the character to move around in.
  • Using similar systems on non-playable characters, whether it be aggressive and passive life forms or inanimate objects.

Gameplay loop

Our plan is to first focus on the systems and then build a gameplay loop around them. As far as gameplay goes, our initial ideas revolve around traversal / platforming but with some interesting twist thrown in with the help of procedural animations.

Early development

First we started building a basic structure for our workflow, basically gathering reference material and doing a bunch research related to our topic.

Click here to see the upper section containing our planning and research material.

One of the systems we are going to use:

This is a node simulation system that can be used to make rigs, that can later be used with some simple logic to make procedurally animated creatures.
Any node can be an anchor, so its position will be locked and wont be affected by constraints. It has two constraints right now: First constraint uses FABRIK IK for keeping nodes together. Second is an angle constraint, which lets to choose how nodes are allowed to rotate, used for sideways limbs and to prevent node overlapping.
Also it has physics interpolation implemented, so that physics fps can be lower for better performance, but still look smooth.

Planned features:
• More constraint types for IK system
• System that creates a smooth path from nodes, can be used for drawing something over the nodes
• Sprite mapping for the nodes
• A way to smoothly move anchors
• Path finding algorithm for creatures

  • 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