Making the NLA useful

Animation tools, character animation, non linear animation

Moderators: jesterKing, stiv

ilac
Posts: 180
Joined: Mon Oct 14, 2002 8:24 am

Postby ilac » Sun Apr 18, 2004 11:26 pm

ilac wrote:
theeth wrote:I wasn't talking about the visual side which, like you described, is logical, but the technical side. With quats and all that. RVKs is described as linear motion, it's easier to calculate the difference and overshoot. Not that much so with a complex transformation.

Martin


oops :P


On second thoughts though, why should this be difficult?

The 'add' function is already present. Putting 2 identical strips over each other with add set is a hack of a 200% influence ipo. Blending one out gives 200% -100%. So over-doing an action should be possible - if not directly with an ipo, then with the above '1-strip-set-to-add' hack for every +100% needed! Obviuosly, if this is internal and hidden from the user, then all the better! :D

Math stopped being my strongest subject several years ago so I might be missing something -as usual. :wink: :P

Monkeyboi
Posts: 561
Joined: Tue Nov 26, 2002 1:24 pm
Location: Copenhagen, Denmark
Contact:

Postby Monkeyboi » Sun Apr 18, 2004 11:32 pm

I suppose that is true Ilac, but I can hardly see much practical use for it. If the user wants to do that he/she can just add a copy of the strip and set it to add and then control the influence. Or am I being ignorant? It's just I see trouble with the Influence visualisation if you can get up to 600% exageration. On the other hand it could just go off-strip if you see what I mean.

ilac
Posts: 180
Joined: Mon Oct 14, 2002 8:24 am

Postby ilac » Sun Apr 18, 2004 11:47 pm

Monkeyboi wrote:I suppose that is true Ilac, but I can hardly see much practical use for it. If the user wants to do that he/she can just add a copy of the strip and set it to add and then control the influence. Or am I being ignorant? It's just I see trouble with the Influence visualisation if you can get up to 600% exageration. On the other hand it could just go off-strip if you see what I mean.


So if you want 600% exageration you have to add 6 strips!!! instead of just altering 1 ipo? Doesn't make much sense to me. Going off-strip isn't a problem for several reasons. The ipo on the strips is a just a visualisation reference. Where the ipo goes off-strip, several things could happen:
eg.

1) Add a red-rim where it goes off-strip so the user knows there is more above
or
2) Zoom to fit the whole ipo in the strip clearly showing a line at the 100% mark.
or
3) Like with RVK, allow the user to set the limits per strip and display accordingly (always showing the 0% and 100% mark)

There are several types of actions which could do with slight exageration - breathing, facial expressions, gestures, etc etc. Even if we're only talking about +2% exaggeration - why should you add a whole strip for it?

Monkeyboi
Posts: 561
Joined: Tue Nov 26, 2002 1:24 pm
Location: Copenhagen, Denmark
Contact:

Postby Monkeyboi » Mon Apr 19, 2004 12:01 am

Good points. I've decided I agree with you now.

Monkeyboi
Posts: 561
Joined: Tue Nov 26, 2002 1:24 pm
Location: Copenhagen, Denmark
Contact:

Postby Monkeyboi » Mon Apr 19, 2004 2:38 pm

I think the red line suggestion is probably the most clever thing. After all, most people will most of the time use values between 0 and 1.

Monkeyboi
Posts: 561
Joined: Tue Nov 26, 2002 1:24 pm
Location: Copenhagen, Denmark
Contact:

Postby Monkeyboi » Mon Apr 19, 2004 3:24 pm

Here is an update of the Strip Properties panel mockup with Harkys original Pinned Bone idea included. You can now set the pinned bone per strip. I suppose you should be able to choose 'None' from the list to get the old functuionality too though.

What do you think?

Image

slikdigit
Posts: 213
Joined: Wed Oct 16, 2002 3:52 am
Location: Northampton, MA (US)

Postby slikdigit » Mon Apr 19, 2004 3:38 pm

I like it- and yes selecting "none" perhaps as the default would be neccessary in the last mockup.
some musings:
*you've talked about over 100% influence. would negative influence be useful? RVKs have it, and I tend to allow a small negative limit in my slider (too much usually looks bad). What (if anything) would negative strip influence be used for?
*copying strips/stripdata, esp. between objects would be nice- you should be able to copy past the influence ipos anyway like any ipo in the ipo window. stridelength and other parameters would be nice.
*any idea about the ease/feasability of coding stride length into the action itself, and using this as a defualt value for new strips instead of zero? it is imo the logical place for it, since changing the value is not as common as having it be 'right' for all paths.
*I agree that editing the ipo in the strip itself might not be ideal, however, I like the idea of it being an option, esp if one wants to do a simple blend and a whole ipo window isn't needed. perhaps this coupled with vector as the default interpolation type for blend ipos?

theeth
Posts: 1184
Joined: Wed Oct 16, 2002 5:47 am
Location: Montreal
Contact:

Postby theeth » Mon Apr 19, 2004 3:50 pm

slikdigit wrote:*you've talked about over 100% influence. would negative influence be useful? RVKs have it, and I tend to allow a small negative limit in my slider (too much usually looks bad). What (if anything) would negative strip influence be used for?

A value higher than 100% makes sense because of the Add option, but I don't really see a use for a Sub option. Maybe ilac can think of something ;)

slikdigit wrote:*I agree that editing the ipo in the strip itself might not be ideal, however, I like the idea of it being an option, esp if one wants to do a simple blend and a whole ipo window isn't needed. perhaps this coupled with vector as the default interpolation type for blend ipos?

Vector would still give you a mess of handles. It would be best if it defaulted to Linear interpolation (it's just a matter of terminology, but hey ;))

Martin
Life is what happens to you when you're busy making other plans.
- John Lennon

Monkeyboi
Posts: 561
Joined: Tue Nov 26, 2002 1:24 pm
Location: Copenhagen, Denmark
Contact:

Postby Monkeyboi » Mon Apr 19, 2004 3:55 pm

slikdigit wrote:*you've talked about over 100% influence. would negative influence be useful? RVKs have it, and I tend to allow a small negative limit in my slider (too much usually looks bad).


Well if more than 100% should be possible, I suppose less than 0% should be possible too. As I said before I personally don't think this is a 'killer feature', but it could be useful.

What (if anything) would negative strip influence be used for?


The same you would use it for when working with RVKs I suppose. Getting your character to do the opposite movement.

*copying strips/stripdata, esp. between objects would be nice- you should be able to copy past the influence ipos anyway like any ipo in the ipo window.


Yes, If an IPO window is used it would be possible as it is already possible to copy/paste IPO curves. Being able to copy a strip/s to other objects would be very useful.

stridelength and other parameters would be nice.


What? I don't quite understand. What do you mean by the term 'Stridelength'? You mean the ability to cut/trim a strip? Yes that would be nice. Softimage XSIs NLA lets you do this.

I agree that editing the ipo in the strip itself might not be ideal, however, I like the idea of it being an option, esp if one wants to do a simple blend and a whole ipo window isn't needed. perhaps this coupled with vector as the default interpolation type for blend ipos?


From a user perspective that sounds nice, but from a coders perspective, wouldn't it be too cumbersome to have two ways to edit the influence IPO? It's true it would be nice in some situations. It is crucial to be ably to see the influence in the NLA strips anyway.. Actual editing in the NLA window is not as important, but I wouldn't mind it.

theeth
Posts: 1184
Joined: Wed Oct 16, 2002 5:47 am
Location: Montreal
Contact:

Postby theeth » Mon Apr 19, 2004 4:26 pm

Monkeyboi wrote:
stridelength and other parameters would be nice.


What? I don't quite understand. What do you mean by the term 'Stridelength'? You mean the ability to cut/trim a strip? Yes that would be nice. Softimage XSIs NLA lets you do this.

No, stride length as in the Stride parameter for walkcycle strips.

Martin
Life is what happens to you when you're busy making other plans.

- John Lennon

Monkeyboi
Posts: 561
Joined: Tue Nov 26, 2002 1:24 pm
Location: Copenhagen, Denmark
Contact:

Postby Monkeyboi » Mon Apr 19, 2004 4:57 pm

That was why I didn't understand it. Stridelength is already possible to set.

Monkeyboi
Posts: 561
Joined: Tue Nov 26, 2002 1:24 pm
Location: Copenhagen, Denmark
Contact:

Postby Monkeyboi » Mon Apr 19, 2004 6:15 pm

Another, small, update:

Image

Just moved some buttons around for more logic. Added greying out. When 'Use Path' is on, 'Stride' should be fully visible and 'Repeat' should be grayed out.

Edit: the graying out should only be implemented when graying out is implemented throughout Blender.

Monkeyboi
Posts: 561
Joined: Tue Nov 26, 2002 1:24 pm
Location: Copenhagen, Denmark
Contact:

Postby Monkeyboi » Tue Apr 20, 2004 1:31 pm

Just to sum up two big problems with armatures:

1, 'sliding feet' problem when mixing Action strips in teh NLA

Solved by doing an Action specific 'Pinned Bone'


2, Making a character walk with the center moving with it.

Solved by letting the user set a 'Root bone' in Armature Edit mode. This gives acces to the Armature Object position from within the Action in Pose Mode. But there is one important difference than just giving acces to the Object IPO in Pose Mode: It should only move the Root bones children with it so that IK goals stay in place.


Agree?

slikdigit
Posts: 213
Joined: Wed Oct 16, 2002 3:52 am
Location: Northampton, MA (US)

Postby slikdigit » Tue Apr 20, 2004 3:14 pm

as to #2- If I understand you correctly- I never worried much about where the center of the armature was during an action. So yeah, it doesn't move with the action, but It doesn't *do* much anyway. conversly, you can transform the armature "outside" the action to translate everything seemlessly, not affecting the action itself. (scale or rotate too)

harkyman
Posts: 278
Joined: Fri Oct 18, 2002 2:47 pm
Location: Pennsylvania, USA
Contact:

Postby harkyman » Tue Apr 20, 2004 4:24 pm

I've been trying to throw up a big red flag on the "root bone" idea. The problem is: how do you keyframe it? Do you key the position locally w/respect to object center, or globally? If you key it locally, and your object center follows it, then how do you generate meaningful local coordinates for the keyframe? If you key it globally, then you lose the ability to repeat the action in an NLA strip.

The only way it could work would be for you to attach "motions" to an armature. In other words, as part of an Action strip, you would add a "motion" with the following characteristics to be applied to the armature at object level: vector (local to object axis), distance, startframe and endframe. Of course, you'd still have to backtrack any IK targets so they didn't follow along.

I've been thinking about the deficiencies in the NLA for almost a year now, coming up with ideas/proposals and later trashing them when they collapse under just these kinds of problems. I really don't think this is a workable method. Rather, the pinned Bone thing, in conjuction with a floor constraint for bones that freezes a bone in world space as long as its z-value is below a certain level is all that we would need.


Return to “Animation”

Who is online

Users browsing this forum: No registered users and 0 guests