[Bf-taskforce25] NLA system thoughts
Roland Hess
me at harkyman.com
Sun Mar 8 14:55:11 CET 2009
I'm going to concur with Nathan on his main point here, but disagree on
his other one.
First, I agree that it's unwise to animation outside of actions. Actions
give an animator loads of advantages when working. Here's one (in the
style Nathan just used, which I like :) ):
Bassam animates a ten second clip of a snail spelling it's name via
slime trail ("Mr. Slick") on a wooden coffee table. The customer
notifies him that the name might change to Mrs. Slick, and asks if
Bassam can prepare both animations for the final production. Bassam
would like to add to his animation, while preserving the original one,
and keep it all in the same file. Using a system with Actions (even the
current pre-Animato), this is trivial. Without Actions, you start having
to do things like duplicate scenes or files.
Continuing that example, let us say that there are a variety of objects
on the coffee table that the snail knocks over as it glorps around
writing its name. If those bits of animation can be saved in an Action
along with the crawling animation it makes managing the entire thing and
switching between versions that much easier.
I was wondering how Animato was going to handle the first use-case,
which I've actually encountered and used a lot. Perhaps it does, but the
solution is non-obvious to me.
As an additional note, I still have code laying around from the NLA
system changes I made during BlenderPeople for some cool NLA stuff such as:
-Animation "layering." The current "add" mode for NLA actually does a
fairly poor job of blending animation, as has been noted upthread. I
spent a lot of time creating a "multiply" mode that does the real thing.
-Matchbone. By choosing a character's bone in an NLA strip, it will snap
the entire character to match that bone's position to wherever it is in
the strip which the current one is blending from. In other words, if you
have a strip that has a character ending in Position A with Pose B, and
a new strip below it, you don't have to make sure that your new strip
begins in the same Position as the previous. The system says "Where is
the position of the foot bone at Position A, Pose B? Let's transform
this whole next strip so that the foot starts right there." Used with a
couple frames of blend-in, it creates seamless animation across strips
with varying start and end positions.
Roland
> I think it is very unwise to allow free-floating animation without
> an action. Consider the following analogy for Blender's data
> structures:
>
> animation curves ~= vertices/edges/faces
> action ~= mesh
> action strip ~= object
>
> Blender doesn't allow vertices or edges to exist outside of a mesh.
> Similarly, I don't think Blender should allow animation curves to
> exist outside of actions. If I recall correctly, animato is designed
> this way anyway.
>
> With the mesh/action analogy in mind, I don't think it makes sense
> to create animation and then put it in an action. Instead the action
> should be created, and then the animation is created in the action. I
> think this is actually a much *better* workflow than what XSI does,
> and it will actually make things easier for the user to understand
> (animation always works the same way).
> (This is also why I proposed the default scene-level action in my
> first e-mail: that way people who don't care about NLA don't have to
> bother with it.)
>
> Anyway... to continue the analogy: Blender also requires an
> "object" for placing a mesh in space. Similarly, I think Blender
> should require an action-strip to place an action in time.
> This does *not* mean, of course, that an action should require an
> action-strip for the user to preview or edit the action. In fact, if
> anything, I think the reverse argument can be made about meshes:
> meshes should be previewable and editable without being linked to
> objects. But you still need an object for placing the mesh in space.
> And you still need an action-strip to place an action in time.
> (Again, this implies that the default scene-level action would be
> placed on the timeline with a default action-strip. Again, so users
> who don't care about NLA can ignore it.)
>
> Incidentally, I think I'm going to add myself to the 2.5 taskforce
> mailing list. This is getting ridiculous. :-P
>
> --Nathan
More information about the Bf-taskforce25
mailing list