https://github.com/vincent-devine/inverse_kinematics
Custom IK system using CCD in Unity, developed for a 4th-year Master's at ISART DIGITAL.
https://github.com/vincent-devine/inverse_kinematics
ccd csharp inverse-kinematics unity
Last synced: 9 months ago
JSON representation
Custom IK system using CCD in Unity, developed for a 4th-year Master's at ISART DIGITAL.
- Host: GitHub
- URL: https://github.com/vincent-devine/inverse_kinematics
- Owner: Vincent-Devine
- Archived: true
- Created: 2024-09-16T18:56:54.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-11-26T10:00:28.000Z (over 1 year ago)
- Last Synced: 2025-03-01T18:16:35.908Z (over 1 year ago)
- Topics: ccd, csharp, inverse-kinematics, unity
- Language: C#
- Homepage:
- Size: 90.5 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Inverse Kinematic
This project focuses on creating a custom inverse kinematics (IK) system within
a chosen game engine. The implementation will utilize one of two
algorithms: Cyclic Coordinate Descent (CCD) or Jacobian Inverse Kinematics.
Developed as part of a 4th-year Master's in Game Programming at ISART DIGITAL.
## Table of content
- [Getting Started](#getting-started)
- [Usage Guide](#usage-guide)
- [Known Issues](#known-issues)
- [Technology](#technology)
- [Credit](#credit)
## Getting Started
Clone from [Github](https://github.com/Vincent-Devine/Inverse_Kinematics) *by ssh*
```bash
git clone git@github.com:Vincent-Devine/Inverse_Kinematics.git
```
## Usage Guide
IK algorithms: **CCD**
To configure the CCD settings, select the Player object from the Hierarchy. In the Inspector panel, locate the CCD script,
where you can **enable or disable bone constraints** *(enabled by default)*.
Script:
- **CCD**: responsible for **calculating IK** on the bones
- **PlayerTouchWall**: switches the hand closest to a wall from animation to IK, using the CCD script to control its movement.
It also handles smooth transitions between the animation and IK systems.
### Demonstration
Scene: **Scenes/Demonstration**
Start the scene to demonstrate inverse kinematics in action. When the player gets near a wall, their hand automatically reaches out to touch it.
This interaction works only when the player is within touching range but not too close.
Player controls: **W, A, S, D** for movement and the **mouse** for camera rotation.
### Free trial
Scene: **Scenes/FreeTrial**
Start the scene and navigate to the Scene view to **manually move the target** *(red dot)*.
The player's hand will follow to align with the target's position.
## Known Issues
1. Bone constraints
The bone constraints are tailored for the demonstration scenario (touching the wall at shoulder height).
During free trial, limitations become apparent, such as the inability to raise the hand above shoulder height.
## Technology
- Engine: **Unity** *v2022.3.34f1*
- IDE: **Visual Studio** 2022
- Versionning: [Github](https://github.com/Vincent-Devine/Inverse_Kinematics)
## Credit
Author: **Vincent DEVINE**
Project start: 16/09/2024
Project end: 09/12/2024
### Specials Thanks
- Benjamin TRAN