[Bf-committers] Fully qualified names for channels in actions?

Tobias Oelgarte tobias.oelgarte at googlemail.com
Tue Sep 20 10:26:52 CEST 2011

> Tobias: out of curiosity, do you have a specific use-case in mind that
> you want this for?
Currently i was working on a harp, to visualize certain patterns. Since 
there are many different strings along with additional visual 
indication, it would have been nice to store a whole pattern as one 
action and to mix/arrange this patterns with the NLA. But since there 
are more properties to change then of one object in such a step even an 
armature without drivers can't handle this as one action. It's quite a 
lot of work.

Another task would be the animation of a brick wall with sliding bricks, 
that are shuffling it's order. Animating every Brick alone and then use 
the NLA will give a huge amount of strips or the need to parent every 
brick to an armature.

If you use multiple armatures for one character, you can't store them in 
one action as long you don't ensure that the bones will have unique 
names. One armature for the character itself. Others for clothes, that 
depend on the character mesh and it's deformation (Shrinkwrap: Bone -> 
Mesh, while Mesh -> character armature).

== Treating bones different then other objects ==

The last reminds me one a slightly different issue. Bones aren't treated 
like objects itself for dependencies. For example if you add a driver to 
a bone that depends on another bone from the same armature, you will get 
cyclic dependency warning. This isn't particularly true for otherwise 
independent bones, but Blender will currently detect that "Armature 
depends on Armature", which results in a one frame delay, since it 
assumes a dependency cycle, because bones aren't treated like as 
independent objects.

Same goes for the simple test case that two armature (A1, A2) with two 
Bones (C, D, both independent from each other) will have the following 
* A1.C depends on A2.D  | no problem so far
* A2.C depends on A1.D  | a dependency cycle is found: "A1 depends on 
A2" and "A2 depends on A1", even so it would be no problem at all to 
solve this in theory.

Blender did make a big step forward in animation since 2.5, i 
acknowledge that and thank the developers. But i think it only goes half 
the way. Dependencies should work on all objects, as long no real cycle 
is detected. Since all objects/properties are now available trough a 
data path it should also be possible to add multiple objects to one 
action. I guess we aren't so far away from it and treating bones like 
real objects could simplify the overall progress.

Am 20.09.2011 08:35, schrieb Nathan Vegdahl:
>> can't you just parent all 3 objects to
>> an empty and animate that?
> He is not talking about all 3 objects moving identically, or even
> identically with an offset.
> Rather, he is talking about the 3 objects having (potentially) fully
> independent motion from each other, but all stored in the same action.
>   In other words, he's asking for actions to be able to contain more
> than one object's animation at a time, in the same way that actions
> can contain more than one bone's animation at a time.
> For this to be possible the animation channels in actions would have
> to be "fully qualified".  e.g. instead of just "x location" you would
> have "x location of cube" and "x location of sphere".  That way you
> could have separate animation for the cube's and sphere's x location,
> but still stored in the same action without conflicting or
> over-writing each other.
> I should amend my previous response to Tobias and point out that
> action channels can already have "fully qualified" names, because they
> just use relative RNA paths to specify what property they reference.
> The RNA path is always evaluated relative to what the action is
> assigned to.
> So in theory you can assign an action to the scene, and have the RNA
> paths include the object.  You can use the python api to construct
> such a situation if you like, but IIRC the depgraph cannot handle that
> right now, so it doesn't work reliably and can often do weird funky
> things.  Therefore there are no tools to allow the user to construct
> something like that easily, and Blender's animation workflow depends
> heavily on armatures for any situation where there are multiple
> "objects" (bones) with related animation.  This unfortunately does not
> provide good solutions for all cases, but it provides at least
> workable (even if sometimes annoying) solutions for perhaps 80%+ of
> cases.
> Note, however, that the animation system is not the only thing with
> this weird addiction to armatures.  The library linking proxy system
> is that way as well.  I can't speak for the developers, but I'm hoping
> (fingers crossed) that we can slowly migrate away from these
> historical limitations.  In the mean time, you can usually work around
> it or brute-force some solutions, even if it isn't ideal or
> user-friendly.
> Tobias: out of curiosity, do you have a specific use-case in mind that
> you want this for?
> --Nathan
> On Mon, Sep 19, 2011 at 10:11 PM, Knapp<magick.crow at gmail.com>  wrote:
>> On Tue, Sep 20, 2011 at 4:39 AM, Nathan Vegdahl<cessen at cessen.com>  wrote:
>>>> In this scene you have three objects. Every object
>>>> has it's own action and it works well. But for some animations it could
>>>> be very useful to store that animation of all three objects in one
>>>> action
>> It is very possible I don't get what you are saying but can't you just
>> parent all 3 objects to an empty and animate that?
>> --
>> Douglas E Knapp
>> Creative Commons Film Group, Helping people make open source movies
>> with open source software!
>> http://douglas.bespin.org/CommonsFilmGroup/phpBB3/index.php
>> Massage in Gelsenkirchen-Buer:
>> http://douglas.bespin.org/tcm/ztab1.htm
>> Please link to me and trade links with me!
>> Open Source Sci-Fi mmoRPG Game project.
>> http://sf-journey-creations.wikispot.org/Front_Page
>> http://code.google.com/p/perspectiveproject/
>> _______________________________________________
>> Bf-committers mailing list
>> Bf-committers at blender.org
>> http://lists.blender.org/mailman/listinfo/bf-committers
> _______________________________________________
> Bf-committers mailing list
> Bf-committers at blender.org
> http://lists.blender.org/mailman/listinfo/bf-committers

More information about the Bf-committers mailing list