How to give life to Visionary ?

VISIONARY
Visionary the AI camera is intrusive, masssive, and above all, alive. But without animations, she wouldn't have any of these features.
Visionnary's animations are a mix of three procedural animation techniques :
-
Runtime rigging
-
Spring-mass based movement correction
-
Parametric curves
Runtime rigging
Thanks to Unity's animation rigging package, I could give Visionary an animation skeleton on which I could act in game. Noticeably, it constraints Visionary in two ways :
-
Two Bone Inverse Kinematics Constraints : Usually used to animate arms, this constraint enables us to pilot the head of Visionary, and the body would follow and fold like an arm automatically.
-
Aim constraint : Applied to the neck of Visionary, this constraint makes it follow the player with its eye.

The runtime rig combined with a basic follow script
Spring-mass based movement correction
In order to increase the credibility of the animation while keeping a good follow accuracy, I've made a movement corrective module. I've used Euler's semi implicit method applied to differential equation solving. It simulates a realistic spring-mass like system stimulated with the input, and thus outputs a movement with realistic features.


Input Movement
Corrected movement
By using this correction on Visionary's head, and its ceiling binding, we get a much richer following animation, with delays, overshoots, and overlaps. Notice that now, Visionary lags behind the player, so the aim constraint now produces actual neck movements.

The same basic follow script with correction
Parametric curves
Now, Visionary needs an idle animation. Indeed, she only follows the player. If they don't move, Visionary doesn't move either.
My goal was to produce smooth curves - with no hiccups - but not too predictable. This way, players wouldn't see the pattern. Since I fear no cosinus, I messed arround with trigonometric functions until I got these results.


Curves and associated formulas
Then, I quite simply added the curves to Visionary's head position. The head travels back and forth, up and down, sometimes both, according to the curves. Combined with the aim constraint, it produces movements players attribute to intentions, whereas it is essentially random.

Visionary looking momentarily curious
Conclusion
After giving Visionary these animations, we get the foretold properties :
Intrusive : The following animation and the intentions in its Idle make it a definite stalker.
Massive : The spring-mass simulation makes this six meter metal machine looks like it weights like a six meter metal machine.
And most importantly, Alive : Not even mentionning interactions such as talking. With movement only, Visionary definetely has presence, to the extend that players do feel like there are two characters on the set.