From BlenderWiki

Jump to: navigation, search
Note: This is an archived version of the Blender Developer Wiki. The current and active wiki is available on wiki.blender.org.

New Animation Actuators for Blender 2.50 - proposal

The way it was in 2.49


We have three different actuators that worked with IPO defined animations: Action, Shape and Ipo.

- Action Actuator (Armatures only): Plays an specific action in the armature object. This is the traditional way to play "bone animations". You have to manually specify an action to be used (it doesn't use a default one).

- Shape Actuator (Meshes only): Introduced for Yo Frankie project, it allows the use of Shape Keys in BGE. You have to manually specify an action to be used (it doesn't use a default one).

  • Action and Shape Actuators have the following properties:
    • Action, Continue, Play, Start Frame, End Frame, Priority, Blendin

- Ipo Actuator (all objects) The way to animate anything that doesn't have bones (e.g. camera, lamps, ...). Also it works together with the Action and Shape Actuators to animate general properties for the objects (even position, rotation and scale can be animated "globally" with this actuator instead of using the Action/Shape one).

It plays all the Ipo curves assigned to an object at the same time. For example, a cube can have object animations (location, size) and material animations (rgb, specular, ...). Once the IPO is active they all play together. If two objects share the same material and/or IPO Curve playing one doesn't affect the other (at least not in multitexture mode, glsl may have some issues with shared shaders/uniforms for animated materials).

  • Dynamic objects have extra options: Force, Add and Local. Those parameters work on top of the transformation IPOs only.

Main Limitations


Although Shape and Action actuators used to work pretty well in Blender 2.49 the Ipo Actuator provides some serious limitations. In order to simulate the animation of individual properties (e.g. rotation and size) the IPO Curves had to be carefully planned to contain all the ranges and combinations of the animations.

What 2.5 changes


(based on http://aligorith.googlepages.com/250_Animato.doc ) Forget about IPO. Now we have Actions, Action Groups and F-Curves Actions is where all F-Curves are stored. It works as a collection of curves that can be played simultaneously. IPOs are directly converted to Actions.

The same action can contain information regarding material and object data. As a bottomline each action is a collection of F-Curves

My suggestions


To have one single Actuator, let's call it Animato Actuator for the sake of the argument (although it should probably be called Action or Animation).

This actuator would have three modes:

  • a)Armature - to animate Bones
  • b)Shape Keys - to animate Shape Keys
  • c)Action - to animate anything else

Shape Keys and Armature would show options as we had for 2.49. As in 2.49 they will only be accessible for meshes and armatures respectively. We gotta make sure the action datablock lookup filters only the bones/shapekey actions.

Action would be the equivalent to the old IPO Actuator but extended to better fit Blender 2.50 design. The properties available in this mode would be:

The main one property:

  • "Action" - select a specific action, otherwise it uses the "current one"

Two secondary exclusive options:

  • "Action Group" - select a subgroup of the selected/current action to be played
  • "F-Curve" - select a specific F-Curve of the selected/current action to be played

And the complementary ones (blendin, start, end, ...)

Notes


- I didn't it tested extensively, but Shape Keys animations seems broken in BGE 2.50.

- From the original Animato document, Action Groups are purely for organization purpose. However it can prove to be very usefull for BGE. I'm not sure how well it's implemented though.

- We could even have a filter option to play only sub-types of an action/action group (e.g. object, material, light, ...). It may be too overkill though.

The End