[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