Hybrid Procedural Animation Rigs!
Updated 2 years ago
3.0 K
Making animations look awesome without spending tones of hours.
Hello, this is FImpossible Games - Filip Moeglich. I want to tell you story about my trail of developing skills in procedural animation, then show you how to make great, I call it "Hybrid Procedural Rig" for dragon. I like to name it that way because it is connecting three things: Key framed animation - Procedural animation - Coding to adapt character to game. Let's get started!
Here you can check trailer of what you can achieve:

My journey with gamedev started in 2007 and since beginning animation always been the most impressive thing for me. I always wanted to have smooth motion inside my projects but I was starting with graphics made in Paint :O In this times it was hard for me finding way to achieve goal of cool smooth animations.
After years of practice I went through many different approaches of making characters for games and making them move but someday I started doing animations from code. Fate led me to code examples and projects which helped me develop this stuff to much higher level, then I was polishing this abilities and created my own 2D skeleton animation tool (Trivial Bone Animator), created game which uses only procedural animations (Wiggly) and done some other stuff which had some procedural animation stuff but just a little.
Few months ago I started creating packages for asset store and I developed algorithm which is making objects animate like elastic tail (Tail Animator) You could think that making animation logic took most of time, but it was just half of it or even less, second half was making this motion work universally on set of bones with any kind of axes orientation. When you export skeleton from different modelling software you getting rewired axes in your hierarchy inside Unity, for example X axis from modelling software is -Z axis inside unity, this was making everything really problematic. At first I was making many different variables so people can adjust it, but customers would need to know what they're doing and this stuff isn't intuitive. Then I found a way to do it with some math functions I never known before and this things opened some new ways in front of me.
The more you know you can do - the more ideas popping out in your head. After doing other challenging package (Look Animator) I learnt about another important approaches in procedural animation, thanks to that I finally was ready to finish my latest package - Spine Animator. Really I started working on Spine Animator about year ago, after playing game "The Witcher 3" I noticed that when animals are moving, they spines are bending. I tried to code this and I've got some results, but code was limited to rotate just two bones and was working only on models made in blender.
After some time and some observations to animals around my house - cats and dog, I took second try and started coding it again. It was working better than before, but still not versatile enough, motion was stealing keyframed animation motion and I had a lot of variables for correcting axes orientations and couldn't find way to make it work right out of the box, or just without much stuff to configure - it was time before I found solution for Tail Animator.
Third approach! After making Tail Animator and Look Animator packages I was finally ready to make Spine Animator as I wanted it since first try, or even better! It turned out thanks to acquired knowledge I found simpler and more effective way to make spine procedural animation work as it should. In comparison to second try version, spine animation works on any skeleton I tested so far, it can hold very long spine chains without troubles, whole animation motion from key framed animation is intact and working perfectly fine with spine motion.
Thanks to all of that you can finally make your creatures animations look great without making any additional clips of moving in different directions, going up hill and even you don't have to program all of that stuff, you can just rotate model and move to point you want.
Please check this tutorial about creating new life inside hand-animated dragon model by Protofactor Inc.
Check Spine Animator on the Unity Asset Store!
As finishing thoughts I want to say that making this things was very difficult for me, spent dozens of hours making this and frustrating that I can't find solutions but I finally did it! I acquired very useful knowledge which can be utilized in my next creations. And now we can benefit hundreds of hours without making lots of movement animations and coding them :) That is just really uplifting for me, seeing anything become alive without much effort after amount of work I did for this component. I still have to find solutions for some problematic things, but as now component can do a lot!
I just realized how much I wrote here, hope text stuff was interesting for you at least a bit. I am not finishing on Spine Animator, you can expect new stuff from me soon! If it was interesting for you and want learn more or be up to date with anything I create, subscribe on youtube, follow on twitter or check other social links :)
Thank you for your time!
Fimpossible Creations
Programmer, Animator, Audio Designer & others - Owner
2 years ago
@Filip Moeglich, Hi! Very curious , if I am for example a modeler - how much should I understand C # to make simple procedural animation?
Programmer, Animator, Audio Designer & others
Loren AbdulezerPutting FImpossibleDragon.cs, Movement.cs and MovementLook.cs into pastebin would help immensely. I know you'll have improvements down the road, but the code as-is, would help to get up and running right away.
Ok, now links to movement controller cs files are on the bottom of video description ;) "...MovementLook" is the same as class from GroundFitter package, but only added "virtual" to SetLookAtPosition method
Loren Abdulezer
2 years ago
Putting FImpossibleDragon.cs, Movement.cs and MovementLook.cs into pastebin would help immensely. I know you'll have improvements down the road, but the code as-is, would help to get up and running right away.
Programmer, Animator, Audio Designer & others
Adrian BabilinskiCan this be used on mobile games? What is the performance difference when using the spine animator?
Yes there should be no problem of using it on mobile. It depends how you use spine animator, using 100 of them (1100 bones) in the same time takes up to 3ms on my CPU and I will try to optimize it more soon.
Programmer, Animator, Audio Designer & others
Loren AbdulezerAwesome tutorial. Any possibility of putting the .cs script portions on GitHub or posting somewhere? You cover a lot of ground and I want to make sure I didn't miss something in the coding portions.
You mean FImpossibleDragon.cs? Hmm maybe I will put link to pastebin (but at the moment I am pretty busy) also I will be making upgraded, more game ready algorithm for movement like this for upcoming big update of Ground Fitter ;)