Using Inverse Kinematics for Realistic Tentacles
Subscribe:  iCal  |  Google Calendar
7, Mar — 1, Jun
Copenhagen DK   25, Apr — 8, May
Gyeonggi-do KR   25, Apr — 28, Apr
Copenhagen DK   25, Apr — 29, Apr
Vilnius LT   2, May — 4, May
Latest comments
by Krzysztof Czerwiński
4 hours ago

Congratulations Lukas:) Amazing piece of 3D parametric shader:) thank You for sharing Your knowledge:)

Great studio. Great game will be.

by Parag Ponkshe
20 hours ago

Maybe ... but dont try to touch it xD

Using Inverse Kinematics for Realistic Tentacles
15 June, 2017

For the past two years  has been sharing quality tutorials, mainly about game development and machine learning. One of his latest posts focuses on creating realistic tentacles. The article continues the artist’s series of articles on Inverse Kinematics. How does one apply this powerful technique to create realistic models?

Tentacle Rigging

When we built a robotic arm, each part was moving independently. Conversely, tentacles can bend. This is an essential feature that we cannot ignore if we are aiming for realism. Our tentacle will need to bend.

The Unity component which allows for this feature is called Skinned Mesh Renderer:

Unfortunately, Unity does not provide a way to create skinned mesh renderer from the editor. A 3D modelling software, such as Blender, is needed. The image below shows the model of the tentacle that will be used for the rest of this tutorial. Inside, it is visible a series of bones, one after the other. They are the objects that allows to bend the model.

Adding bones to a model, also known as rigging, goes beyond the scope of this tutorial. Blender 3D: Nood to Pro/Bones provides a good introduction to this subject.

Bones and Joints

The next step to allow inverse kinematics on a tentacle, is to attach a RobotJoint script to each bone. By doing so, we are giving to our inverse kinematics solver the ability to bend the tentacle.

In a normal octopus, each “joint” is able to rotate freely along all its three axes. The code designed in Inverse Kinematics for Robotic Arms, unfortunately, only allows joints to move on a single axis. Changing this would mean introducing a new level of complexity to our existing code. Instead, we can cycle the axis on the joints, so that joint 0 rotates on X, joint 1 rotate on Y, joint 2 rotates on Z, and so on. This can lead to unnatural behaviours, but you might never experience any issue if the bones are small enough.


Make sure to read the full article here. You can also check out other guides to Inverse Kinematics by Alan:

Source: Alan Zucconi

Leave a Reply