[Bf-taskforce25] NLA system thoughts

Nathan Vegdahl nathanvegdahl at gmail.com
Sat Mar 7 11:30:33 CET 2009


Hey William,
   I watched the first XSI NLA video.  When I watch the others I may
have more thoughts, but right off the bat:

> 2: In the Graph Editor and Dopesheet, the animator can see all the F-Curve
> channels in the same list, and edit them together. In a sense, the F-Curves
> don't belong to anything - it's just animation over time.

   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

On Sat, Mar 7, 2009 at 12:49 AM, William Reynish <william at reynish.com> wrote:
> Ah, forgot to send this to you too, Nathan. Feedback is welcome!
> On 6 Mar, 2009, at 11:26 AM, Joshua Leung wrote:
>
> Hi,
>
> On Fri, Mar 6, 2009 at 1:49 PM, Nathan Vegdahl <nathanvegdahl at gmail.com>
> wrote:
>>
>> 1) The NLA editor should be, ideally, extremely similar to the
>> sequence editor.  There really isn't any reason to have the two
>> interfaces be particularly different, or to have the user interact
>> with them any differently.  Therefore: why not use the same UI code?
>> This unifies the user experience greatly, and reduces coding work both
>> now and in the future.  Only very small changes would need to be made
>> to accommodate NLA editing.
>
> Certainly there can be a great amount of overlap between the two. However,
> where this idea breaks down is when you start trying to figure out which
> 'Object' or datablock the strips belong to. Perhaps this is why you proposed
> the single scene-level action?
>
> Well, isn't the point of the 'everything is animatable' paradigm also that
> you can mix any collection of f-curves? You might want to make a clip out of
> two characters, or include material f-curves together with the bone
> animation when mixing.
> The basic idea of an animation mixer is simple: You mix and sequence strips
> together. The strips can be any type of animation, ie. any collection of
> F-Curves.
>
> I imagine the workflow for animation mixing to be like this:
> 1: The animator creates an animation on say, a character, animating bones,
> materials, shape keys.
> 2: In the Graph Editor and Dopesheet, the animator can see all the F-Curve
> channels in the same list, and edit them together. In a sense, the F-Curves
> don't belong to anything - it's just animation over time.
> 3: The animator specifies some channels he/she would like to store into a
> clip. These channels optionally have the F-Curves removed from the main
> timeline.
> 4: The animator repeats the above, until there is a small library of clips.
> Not all the clips include the same F-Curve channels, but that's okay.
> 5: The animator pulls up the NLA Editor, which has the library of clips
> available.
> 6: He/she can now chain the clips together, scale them, loop them, overlap
> them, add transitions from one to another. If he/she wants to edit the
> source data of any of the clips, there will be a way to enter any clip and
> edit it, and then jump back out and see the big picture.
> If you are interested in seeing how XSI, which has probably the best
> implementation on animation mixing to date, deals with this, check out the
> videos here: http://www.softimage.com/products/xsi/tour/animation.aspx
>
> Cheers!
> -William
>


More information about the Bf-taskforce25 mailing list