[Bf-python] RE: action / NLA api

Gilbert, Joseph jgilbert at tigr.ORG
Fri Nov 11 16:57:17 CET 2005


Sounds like we are all in agreement.
The object is called BPy_Action that we are talking about (same thing as
action strip). I don't like the word strip because it has more
connotations than Action. 
Matchbone should be an o.k. name if that is what your calling it in the
UI. This property should reflect the UI naming. Action.property
The input can be a string at first because pose channels will have
unique names. I would not use BPy_Bone objects as input. 
It might be better to extract the ipo channels from an Action and mark
one as a matchbone or however.
Action.ipochannels['bone1'].setMatchbone(). 

-----Original Message-----
From: bf-python-bounces at projects.blender.org
[mailto:bf-python-bounces at projects.blender.org] On Behalf Of Roland Hess
Sent: Friday, November 11, 2005 7:27 AM
To: bf-python at projects.blender.org
Subject: [Bf-python] RE: action / NLA api

Hi folks. The implementation I'm on working is this:

In the n-key panel and regular buttons panel for an action strip , 
the user can select a Bone from a drop-down menu of all bones in the 
armature that the currently selected action strip is attached to. 
That's all the user interaction.

Every time there's an edit to the NLA, the code follows the NLA chain 
and calculates and caches a cumulative transform matrix for each 
action strip, building on the previous, so that when NLA is solved 
for display, it can quickly apply a single transform to the result, 
based on the top-most action strip at the active frame.

The API for something like this could be as simple as:

strip.matchbone.set("foot.b.left")
strip.matchbone.get()
strip.matchbone.clear()

The match bone is a property of the Action Strip. It uses the already 
existing blendin/blendout values for smoothness. The one thing you'd 
want to determine would be whether or not the .set("foo") would take 
a string, like I've shown here, or would take a Bone object as it's 
argument. The actual code (right now) stores a pointer to a bone, so 
if you wanted to accept a string, you'd have to do an object lookup 
based on the name.

That's all!
-- 
Roland Hess - harkyman
_______________________________________________
Bf-python mailing list
Bf-python at projects.blender.org
http://projects.blender.org/mailman/listinfo/bf-python



More information about the Bf-python mailing list