Character Animation in Unity Game Engine


The purpose of this project is to develop a software platform for controlling the posture of computer animated characters in Unity Game Engine. We already have such a platform developed with another technology. We want to bring it to the level of the state of the art.

Background and Project Idea:

Inverse Kinematics (IK) techniques are used to manipulate the poses of the characters in computer games, animation movies and virtual environments. These techniques allow us to satisfy postural goals with the characters such as holding a glass, looking at an airplane, preserving balance etc.

In IIG, we develop algorithms to efficiently control the avatars. Our software platform for IK utilities have been implemented in C/C++ languages with an old graphics engine called Coin3D. We want to transport our framework into Unity to be actively used for the projects of our group. Moreover, we want to do a benchmark between our technologies and the Unity’s own character control framework.


The primary goal is to prepare a robust and flexible software package of IK algorithms that can be used in Unity. We also want a test application developed in Unity, with which we can add/remove constraints to the characters on the fly and observe the postural adaptation process. We expect to see some quantitative comparisons between our technologies and the ones provided by Unity’s itself in the final report, too.

For a semester project, our priority is the satisfaction of position and orientation goals, such as bringing the hand of a character onto the surface of a table.

For an M.Sc. theses, or PhD semester project, apart from the position/orientation goals, we will exploit further types of constraints such as looking at an object, preserving the balance of a character etc. Another direction will be developing a tool to edit articulation properties, such as range of motion limits etc.

Development Framework:

The development of this project will be done in Unity Game Engine. The project will also require use of source code reviewing tools in C/C++.


Programming (Understanding of already developed code in C++, C# for development)


Eray Molla (, INJ139)

Ronan Boulic (, INJ141)