Aiming animation

What is best approach for animation of aiming (3rd person/RTS game)?

I envision i will need both “biologicals” (humans/aliens) and mechanicals (tanks/ships) taking aim.



I know of 3 approaches:

  1. aimer is composed of multiple geometries which I can rotate/translate
  2. Make armature(bones) in blender and premade animations for changing animation/depression and bearing and then play both of them but only fraction of such animation so end state is aiming where I want it.
  3. Make armature(bones) in blender and programaticaly controll them



    1)

    advantages
  • geometries does not change, so maybe it can be faster than when they are changing

    disadvantages
  • geometries does not change, so it looks ugly for biologicals
  • seems like lot of ugly work

    2+3)
  • geometries does change, so it may look better and be slower

    2)

    I made proof of concept experiment where I animated tank turret (animation 0° to 90° to 180° to 270° to 360°=0° for bearing and 0° to 30° elevation and 0° to 8° depression, bearing changing turret bone and elevation/depression changing weapon bone).

    Then I run both of them through separate channels and turret rotated and gun elevated.

    It seemed that rotation speed was not constant (but maybe i made bad observation), so maybe different interpolation or more steps are needed (but thats work for artist side)



    3)

    Although I could set translation, rotation and scale for bone, it did behave strangely. Is there any example of programatic controlling of bones?



    Another consideration:

    Biological moovement is usualy complex, so its hard to describe programaticaly directly. If I understand correctly, inverse kinematics and constraints can be used for this in blender. Are they propagated to java side, or are they only used to precompute animation (considering it can lead to lot of equations to solve)?

    Or physics must be used to get something like it?

I’d go with a combination of premade animations and direct bone manipulation.