[Bf-committers] Proposed Armature replacement

Ton Roosendaal bf-committers@blender.org
Thu, 27 May 2004 11:46:00 +0200

Hi Jeremy,

Although I really acknowledge the current system has lots of problems,  
I also realize a character animation system isn't simple to design or  

Compared to the initial design doc Reevan made (the coder of current  
system) your proposal lacks a lot of general insight and structure...

I would propose you to start designing at top level, also based on what  
we already know: the components Object, Ipo, Armature, Pose, Action,  
NLA, IK, Constraint, etc.
Analyze how the system works, how the compnents relate, and why the  
limitations are as we know, and come with the list of improvements you  
intend to implement. Like:

- having IK as builtin feature, not as Constraint
- having Pose mode in two variants by default, forward and inverse  
- soving the speed issue

Blender's architecture has its limits, but if applied well can help you  
designing good code and a good UI as well. I'd like to see some 'lego  
style' building block diagram, describing what the basic items are  
artists will work with, and how they can use these blocks to construct  
an animated figure.

Reevan left the Armature system quite messy yes, but he cannot be  
really blamed for that. Besides the time pressure, he also was pushed  
to (first) make the system work with realtime (game) characters, which  
have much simpler skeletons and which explains why the Armature  
animations are evaluated based on redraw (efficient for games).
He worked on this long days, and for several months. Although he wasn't  
a very experienced coder then, he certainly is an excellent character  

Recently, while trying to fix some bugs in the NLA and Action window,  
the most striking issue (for me) is how the total workflow is  
frustrated with all the small missing details, missing visualizations  
and missing conventions to make it 'feel' like Blender. The workflow  
for Armature animation is totally hidden, and impossible to sort out  
(for me!) without reading the docs again. This is not so much an  
architecture issue, but mainly something a couple of devoted coders  
could maintain and polish, just smoothing out all annoying details.
Apart from solving the speed issue (which is wrong evaluation code) I  
think the general GUI access & visualization is most urgent to solve.  
Even when it means the underlying code needs a full revision.

Lastly; this is meant as a constructive contribution, so don't throw  
your work away. Not everyone likes writing long architecture docs or  
reviews, and sometimes ideas just mature better when you can play  
around with the basic code first. You'll have to choose your own  
roadmap for it. :)


On Wednesday, May 26, 2004, at 06:24 Europe/Amsterdam,  
jeremy@marzhillstudios.com wrote:

> Hello Folks,
> I have completed my preliminary thoughts on a replacement for
> armatures in Blender. The details would make this message too long
> for this list. You can view them here:
> http://www.letwory.net/collab/bin/view.pl/Blenderdev/ArmatureCode
> at Jesters Wiki.  I would appreciate any thoughts you have on the
> subject. Do you think it would be useable? intuitive?, powerful? If
> you have ideas to add go ahead and add them to the wiki or just
> suggest them to the list.
> _______________________________________________
> Bf-committers mailing list
> Bf-committers@blender.org
> http://www.blender.org/mailman/listinfo/bf-committers
Ton Roosendaal  Blender Foundation ton@blender.org