Skeletal Plan

Hello Folks. I am about 1 month old in the blender world. And I 've been putting to use all the info that I’ve read from these boards and the BSoD Wikkis.

At the moment I have a biped skeleton that i am playing with to get the hang of rigging and such. It started out pretty much step by step duplicated from the Skeleton in the Intro to Animation Wikki BSoD(which is an awesome tut). But as time passed and I began experimenting with constraints and such, my skeleton has become one of its own.
I have a couple questions regarding skeletal animation and armatures in a real-time rendering environment akin to video gaming.

  1. What kind of schematic am I shooting for?
    As we all know, games real-time 3d rendering are a processor intensive thing, especially if one doesn’t have a 3d chip’d graffics card. But the Kinematics of a skeleton utilize, I am assuming, the CPU rather than the GPU. Assuming this, and that the ultimate goal of the skeleton is to deform a mesh in real-time, should one make a bare-bones skeleton with no riggs or bones other than the bones deforming the mesh? And should one avoid use of constraints/kinematic relations by positioning the mesh deforming bones frame by frame in an action?

  2. About how much processing does IK/FK solving chew up?

I imagine that in the future when Physics processors become the norm in computers we will want ik/fk definitions for our armatures for sure. But until then, please feel free to suggest what the best approach would be to the design of an armature for real-time rendering and games.

I will host my .blend file of the armature later if any would like it, please speak up. At the moment I am at work and unable to do so.

As far as I know IKs don’t work in the game engine but FKs do. Bare bones is what you should probably be going for. Armatures tend to eat up a lot of processing power.

Can’t IKs be baked and then used in the GE?

When you say the game engine doesn’t use the ik constraints, do you mean specifically the IK solvers or does it ignore all use defined constraints?
I’ve been playing with minimal constraints. And I’ve also done an action bake. Baking seems to map out the bone loc/rot/scales frame by frame so that no real time processing of bone positioning occurs, they’re just read in sequence. Constraints are a fun thing to play with and hard to give up though. heh. After all, I’m just learning how to use them.
Could you have constraints setup for a pseudo-design phase of the model just to have easy manipulation of the model while creating the actions; and once all your actions are made, you bake them then delete all non-mesh-deforming bones and their related keys? This would create a final product of fully mapped actions with only neccessary bones. :Is this an ok assessment?

this is a great idea!

thanks for this

I’ve been experimenting with animation pretty much this whole time since my last post in this thread. It seems that IK relationships affect how the bone keys are recorded in the action sequence. It’s definatley a relational thing.
Manipulating your armature with IK, Hinge and other goodies, and recording the loc/rot of the bones per key frame will make your animations. If you then remove the IK bones and their respective animation tracks/keys or other goodies such as hinge property enabled, even after baking, your animation changes noticeably… You’re probably thinking “well duh, dumbass. why would you expect anything else?” But mainly this is to point out that the loc/rot recordings in the animation track are not absolute asper the individual bone. They are relational to, well I’m not entirely sure, IK relations among other things no doubt.
My intention is to make models in Blender and do the game code in Ogre3d, not BGE which uses Oger3d. I know that BGE doesn’t use constraints and such. I am not too sure what Ogre3d will do with constraints. So my hope is to have a template armature of just bones with no constraints, chock full of animations for use in game making.
Is there a feature that would allow us to use IK and other stuff to easily manipulate armatures during animation development, yet record bone’s absolute loc/rot as if no IK/goody was used to get it in the position it is in, for final animation product? Or is this a feature request?

I think he’s the only one in the world who actually titles his posts…

on the insert Keys menu, there are the standard Loc, Rot & LocRot keys as options to insert. There are also Visual Loc, Visual Rot & Visual LocRot Keys.

Wikki and forum searches provide no info on these. Does anyone know anything about them?

They seem, by title, to be relevant to what I am trying to figure out with this thread. I’ll be messing around with them for a little bit as well.

someone prease give me some help here.

at the moment I am looking for a way to remove/disable the “hinge” on two bones without having to reposition those two bones in every key frame of every animation of the armature.

Found Two Possible Solutions:

1: Copied from Wikki:Animation Conversions
I dunno what this entails, as crftl-l doesn’t bring up the same menu as described. Any words on this are welcome!
Bake object-level to action-level for armatures
Tests have indicated that simply using the keyframes from an armature’s object-level motions as key frames for its root bones produces completely unsatisfactory results. For that reason, a baking approach with a sample rate is needed for this task.
Inputs to this procedure are an armature, a sample frame rate and a frame range.
Triggered by pressing Ctrl-I in the 3D view on a selected armature, appearing as “Object Level to Action” on the Animation Baking popup. This could also appear as a header menu item within the Ipo, Action and NLA Editor windows.

  • Within the frame range, a matrix is recorded once for each step on the frame rate;
  • The armature is unlinked from it’s object-level Ipo, as well as any object-level constraints and relationships that affected its transformation;
  • A new action is created;
  • Each of the root bones in the armature receive new keys so that their global transformation on that frame matches the global transformation of the same bone during the previous matrix-sample;
  • Hinge bones receive keys based on the non-translation portions of the matrix;
  • If called from the NLA window, a new strip with the action is added to the NLA for the armature.Bake NLA strips into a single strip

Inputs to this procedure are NLA strips attached to an armature.
Triggered by pressing Ctrl-I in the NLA Editor, with strips selected.

  • A new action is created, unlinked, and populated with a logical OR of the channels of the selected strips;
  • Sampling begins on the first frame of the first NLA strip;
  • A pose based on the selected strips is determined;
  • The pose is recorded in the new action using the “Available” and “Needed” key setting algorithms;
  • The next sample is taken on the next frame that holds a keyframe for any channel in any of the selected strips;
  • Sampling ends when the last frame of the last selected strip is reached.
  • The new action is added to NLA as a strip, while the originally selected strips are muted.Bake arbitrary transformation (parent/constraint/track/path-based) into key framed transformation

Inputs to this procedure are an object, a sample frame rate and a frame range.
Triggered by pressing Ctrl-I in a 3D view with an object selected, appearing as “All animation to key frames” on the Animation Baking popup.

  • Within the frame range, a matrix is recorded once for each step on the frame rate;
  • The object is unlinked from all entities that could produce transformation (Ipo, parent-child, constraints, etc.);
  • A new Ipo is created, with keys every sample frame, based on the recorded matrices.and 2: A script! here’s the link to background info. Better than me relaying inaccurate info.