At some point I'm going to have to tackle the IPO stuff in Blender for animations. Who can explain to me how that works. Both from a users perspective and internally from the perspective of a developer. Note that I'm really a newbie with regards to skeletal animation.

BTW, I think it will be best to translate the animation from Blender to the genmesh skeletal animation system and not CAL3D since we don't really have an API to create cal3d models from code. Also the genmesh skeletal animation system is performance and flexible so I think it is the best choice here.

Shift F8 in any blender window. Look at IPO Curve Editor and Action Editor. IPO is for objects (effects, location, rotation, scaling, color, etc). I think that whole list on the right is supported in the game engine. I haven't used all of it though. Action is for the armatures.

They're currently in the process of coding a better animation system for Blender. So not sure how that'll affect the game engine portion in the future. Maybe it might be backwards compatible.

IPOS can be used for both deforming and non-deforming animations for geometry, and also to change basically any property in the system over time, either by keyframing or editing the curves (keyframes are the control points of the beziers).

IPOS can be used for both deforming and non-deforming animations for geometry, and also to change basically any property in the system over time, either by keyframing or editing the curves (keyframes are the control points of the beziers).

~Toni

Not at the moment. Just collecting information for when I get to that stage

AFAIK, as I see from python api, an IPO is an interpolator curve, that is, an IPO curve is the graph of a function that modifies a parameter over time. An IPO curve is made up of segments that are 4-point bezier curves. You can see them on the IPO editor of Blender, if you need more info feel free to mail me about the subject.

Exactly as Xhydazhk said. the IPO is actually the graph of a parameter or property (like posX, posY, posZ, sizeX, sizeY, etc) that changes over time acording to the data of the graph (property vs time).

The graph is just a way to store the info on the animation, and just like the curve can become an animation, an animation created by other means is also automatically translated into the respective ipo curve.

Good luck with the project! lots of ppl are expecting a lot from it!Not many ppl can program, but you really have all our support!

Blender has two types of animations: IPOs and Actions. Each type has a corresponding window: The IPO Curve Editor and the Action Editor. IPOs apply to all objects and Actions only apply to Armatures.

ACTIONS:

Actions are Blender's skeletal animation system - specifically they control bones within an armature. An action is a list of curves. Each curve has a name (the name of the bone it affects) and a list of keyframes. The keyframes have properties like time, scaling, translation and rotation (in quaternions). The curve also has properties like interpolation (linear, bezier or none.)

The movement of the bones affects the vertices and objects that are attatched to those bones. When you parent an object to an armature, Blender gives 3 options: bone (the entire child object moves with a bone), armature (vertices in the child object are weighted to the bones), and object (the child object is attatched to the armature's base, like any other parent object.)

IPOs:

IPOs animate objects generally. Each IPO animation is a list of curves like an Action, but instead of a curve for each bone, it has a seperate curve for each property that can be animated, such as: ColR, ColG, ColB and ColA (which control the object's color and transparency) LocX, LocY and LocZ (location), dLocX, dLocY, dLocZ (relative location or movement?), RotX, RotY, RotZ (Euler rotation) SizeX, SizeY, SizeZ (scale)

IPO curves have more properties than Action curves. For example, an IPO curve can be cyclic or open-ended. Not all IPO curves are supported by the game engine, but at least color, alpha, size, location and rotation are. IPOs use Euler rotation rather than quaternions. (Some types of animation not supported by the game engine include lattice deformation and vertex keys.)

PARENTING:

Hierarchial relationships are essential to fully using the animation system. Child objects are transformed along with their parents. (I don't think they inherit color or alpha.) Objects can also be parented to vertices. If they are parented to one vertex, the child maintains it's position relative to that vertex but doesn't rotate or scale with the object containing the vertex. (They can calso be parented to 3 vertices but I have less experience with that.)

I've heard there will be changes to the animation system in the next version of Blender, but I don't know how it will affect things from this side.