1
$\begingroup$

I recently started learning Blender and I need some hints about animation. In the Game Engine, I want to display a gauge with a needle (think classical speedometer) which is set by values coming in over the network.

It's supposed to look very smooth. Therefore, when moving the needle, I would like to rotate it with a bezier-like movement to the new value. This means I need an animation that I can parametrize with (rotation_start, rotation_end) values from a Python script and then playback (like playAction() on objects).

I have tried doing this with Actions/Drivers, but was unsuccessful.

What is the best way to solve this?

$\endgroup$
  • $\begingroup$ Have you tried using Lerp? On the rotation I mean. Without using premade animations $\endgroup$ – Daniel Holst May 11 '17 at 14:33
  • $\begingroup$ @DanielHolst Thanks, that would work too.. I prefer the "slow parent" solution though because it is more 'visible' in Blender and less hidden away in Python. $\endgroup$ – JackD May 15 '17 at 12:58
2
$\begingroup$

Assumption:

The speedometer does not move or rotate. It stays at the same place in scene.

Design:

Animate an invisible object (axis) that turns according to the input values.

Parent a visible indicator (needle) to the axis. Enable slow parent (Properties editor / object tab / Relation Extras panel) with an offset > 0.

Effect:

while the axis immediately shows the received value the needle will smoothly go for that pose.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.