Making the NLA useful

Animation tools, character animation, non linear animation

Moderators: jesterKing, stiv

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

Postby theeth » Tue Apr 20, 2004 4:48 pm

harkyman wrote:If you key it globally, then you lose the ability to repeat the action in an NLA strip.

That's more or less the point. The root bone as I see it is only a way to move the armature object in pose mode (whether or not leaving the IK solvers behind is something that can be worked out later). NLA strips contain local armature motion, the global motion of the skeleton needs to be added at the object level (and since the NLA editor also shows object keyframes, those are easy to manipulate too). The root bone is just a way to adjust that motion in pose mode.

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 » Tue Apr 20, 2004 7:28 pm

harkyman wrote: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?


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.


You just don't key the root bone. Parent the pelvis bone to the root bone. You can then animate the root bone in a seperate action if you want to use the NLA with a walk cycle.


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.


I still believe in the Root bone idea. The Root bone gives acces to the object IPO from within an action in Pose Mode, but only moves the root bones children leaving IK targets etc behind when you move it around. This is most acurately how it works in XSI which has the most succesful NLA in any application (XSI doesn't use a Pose Mode, but the Root bone would bring the same functionality).

I think the Pinned bone thing is a great idea too, along with the other things you are talking about.

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

Postby theeth » Tue Apr 20, 2004 11:37 pm

Monkeyboi wrote:I still believe in the Root bone idea. The Root bone gives acces to the object IPO from within an action in Pose Mode, but only moves the root bones children leaving IK targets etc behind when you move it around.

Actually, it would have to be a bit more clever than that IMHO, as you might want to have some solver loose some time and have them follow the root another time. For example, a character jumping over a wall, grabbing the edge of the wall with one hand: all the IKs should follow the root except the hand grabbing the wall.
This could probably be done by adding a little toggle button to loose bones, that could be turned on and off at will and would only take effect when the root bone is grabbed.

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 » Tue Apr 20, 2004 11:44 pm

... or you could just keyframe them so that they are in place. Anyway, who would want hands that are completely static while flying through the air anyway?

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

Postby theeth » Tue Apr 20, 2004 11:48 pm

You keyframe the parts that follows the motion of the body, and then you rekeyframe them individually to add randomness.
Anyway, my main point was that you couldn't pull that kind of stunt without a fake parenting method. Well, not with the current system anyway, where each bone rotates around its root.

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

- John Lennon

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

Postby harkyman » Wed Apr 21, 2004 1:08 am

Add a keyframable property that sticks a joint in world space.

oin
Posts: 161
Joined: Fri Apr 02, 2004 6:34 pm

Postby oin » Wed Apr 21, 2004 9:25 am

For example, a character jumping over a wall, grabbing the edge of the wall with one hand: all the IKs should follow the root except the hand grabbing the wall.
This could probably be done by adding a little toggle button to loose bones, that could be turned on and off at will and would only take effect when the root bone is grabbed.


Exactly ! :) ...well...except the hand and.... the arm, forearm... ik influenced by the pinned joint while acting also influenced for root bone movement; hard to explain, better seen in avi bellow...it shoud must act as it was also ik influencing while the root bone and so full character is being moved... Check the biped screen shot movie I made from the max trial...

HERE IT IS THE AVI EXAMPLE


... or you could just keyframe them so that they are in place. Anyway, who would want hands that are completely static while flying through the air anyway?


Ouch, could think of bunch of situations...pivoting over it while jumping a wall, balancing in branches "Tarzan style"... Actually, you pin it, while you later one tweak it. But that refining tweak is under your control, not a randon move that you have gone positioning the full body, and it obtain randome positions. If what you do is try to tweak that, you finally have a weird dancing pivot, even as slight as you want.While if have pinning, just do some rotation in one or tw axes, subtle ones. It gets perfect.
I am afraid I didn't do a fence example...but the example can show this more or less...is a bad example, but must serve...

Anyway, my main point was that you couldn't pull that kind of stunt without a fake parenting method


Probably, though speaking about internal stuff I get easily lost.. ;) :oops:
[have a look on how it's happening in this example avi]

Add a keyframable property that sticks a joint in world spac


yes...it acts then as if there were two roots...the one that moves the biped, the one that is pinned... Indeed, maybe a clue... Max character studio has a tool for ik move (the typical move tool in max) , a tool for rotate (the standard one.Acts actually as an fk rotate, is great for accurate posing after an ik first quick thing) with which you fine tune the pose with that wonderful rings gizmo.... and...a tool to specifically move the biped. As if they needed to add later or in code is something quite different internally...Is somehow non consistent with all;cstudio artist use to find it strange, but somehow looks as if they had to add the move root as a separate thing; you need to swap from standard move tool to biped root bone move tool,(while I'd prefer standard move tool, just selecting the root bone will do that..but in a job you don't stop to think for speed sake..) and then you can change biped position, that with a pinned bone, act as seen in the avi.


In this avi first I pinned two feet. Later "free" one of them.Result is you see as if there were a floor (of course, more in advance, a constrain to plane/box/object would be nice, not only for floors but walls etc...heh, like physics stuff...the joint react to solids...havok in blender...sorry that second cofee... ;) Actually this way you could put a floor level being a box, no need it to be horizontal...whatever, and have irregular floors, bones collide with walls...

But imho, first needed thing is joint pinning.With it you can have your floor level as seen in the avi.While walk, just pin always at grid line level in a left or right view (zoom as much as you want for that if you desire it really) .As and addon, you have then LOTS of situations solved thanks to joint pinning and a much more easy way to go posing the model, not only for the more obvious problems. )

Sorry, that last pargraph about solid collissions is a bit of sci fi. With joint pinning you have a wide range of solutions to problems; animation gives a giant jump in functionality, totallly.(I may have leave the "havok" physics for another thread... ;) )

I have animated only with IK posing, fk rotations and joint pining. A bit of keeping keyframer clean of noise of unneeded keyframes, and in the job didn't use much of the very advanced cstudio features. That speaks on how important certain basic features are...

bjornmose
Posts: 158
Joined: Tue Nov 25, 2003 5:27 pm
Location: Denzenberg, could walk to Hölderling-Tower
Contact:

Postby bjornmose » Thu Apr 29, 2004 11:15 am

theeth wrote:
Monkeyboi wrote:I still believe in the Root bone idea. The Root bone gives acces to the object IPO from within an action in Pose Mode, but only moves the root bones children leaving IK targets etc behind when you move it around.

Actually, it would have to be a bit more clever than that IMHO, as you might want to have some solver loose some time and have them follow the root another time. For example, a character jumping over a wall, grabbing the edge of the wall with one hand: all the IKs should follow the root except the hand grabbing the wall.
This could probably be done by adding a little toggle button to loose bones, that could be turned on and off at will and would only take effect when the root bone is grabbed.

Martin


simple example :
walk cycle left / right "contact" bone need to switch
(further more a hand could touch a chair or so, it would have to stick too)
look at the wireframe walkcycle animation here:
http://mitglied.lycos.de/mosebjorn/ (sorry lycos ads)

the "root" in the back should move the way that the "contacts" stick on the animation path , the (thought of) hand on the chair however should not alter the "root"

BM

hagen
Posts: 3
Joined: Thu May 27, 2004 10:17 pm

Postby hagen » Thu May 27, 2004 10:24 pm

Hi all :D

Its been almost a month!

Just to say that I would like to animate with the NLA useful as you are discussing here, I understand maybe it's not easy, but I hope you don't forget this important feature.

Thank you.

env
Posts: 56
Joined: Thu Oct 17, 2002 9:58 pm
Location: Italy
Contact:

Postby env » Fri May 28, 2004 10:39 am

I read all these pages from the first, and let me say that all this is really interesting!
Just now I'm learning the NLA for the dino animation, and it's really a wonderful feature BUT I crashed myself against the feet sliding issue with the path animation... what a pity. :cry:
The Harky technique for locking feet is really interesting but I tried it and couldn't have good results... probably there is something I can't understand but I think it's a little too much work to place copies of the character bones-armature along the path and animate all the constrains to fix the sliding: better to keyframe all the walking without a path. More, it works fine for the first steps only (and more, if the path has different speeds it's a nightmare! :D ). Am I wrong cause I misunderstood?
Anyway, can't wait to see the "pinning bone" feature implemented, hope to see it very soon.

Env

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

Postby harkyman » Fri May 28, 2004 1:12 pm

Currently working on bone pinning. The way Blender handles NLA/Armature Actions interally is a little obtuse, so it's been taking a while.

BTW, I don't think the bones along the path technique was mine. I found it kind of confusing and unnecessarily complex as well.

oin
Posts: 161
Joined: Fri Apr 02, 2004 6:34 pm

Postby oin » Fri May 28, 2004 2:57 pm

That's outstanding , Harkyman !

I was loosing hopes a bit...

I'll fall rabidly over the blender version/build that has the feature :)

yay...bone pinning...

yup, I'm also for a quick workflow. Just pinning it ;)


8) 8) 8)

env
Posts: 56
Joined: Thu Oct 17, 2002 9:58 pm
Location: Italy
Contact:

Postby env » Fri May 28, 2004 6:50 pm

Currently working on bone pinning. The way Blender handles NLA/Armature Actions interally is a little obtuse, so it's been taking a while.

Wonderful! We can wait for such a great feature.

BTW, I don't think the bones along the path technique was mine. I found it kind of confusing and unnecessarily complex as well.

Correct. :D It's slikdigit's. My apologies to both of you.

Env

birras
Posts: 40
Joined: Sat Oct 18, 2003 1:22 pm

Postby birras » Mon Aug 02, 2004 11:37 am

I ve been quietly following this and I came to this conclution:
harkyman needs 3 clones:
1 for blender-people
1 more for this NLA stuff (man...there are people out there desperately hoping that this stuff will work one day)
1 for his own little artistic-productions
while the original can go and play with wive/kids and doc
--
I was hoping to see improvement with the nla in the coming release, but ehh.....seems like there is only one man (harkyman)working on it...in his spare time I believe....
I wish I could help with the coding, but if there is anything else to be done tested or whatever....(same goes 4 blender people) let us know.....exactly which feautures you want to have checked,etc..

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

Postby harkyman » Mon Aug 02, 2004 3:32 pm

You'll be happy to know that I've passed a kind of critical mass on the pinBone feature. It's almost done.

You can check it out on the BlenderPeople development weblog, which can be found by scrolling down on the BlenderPeople webpage.

http://www.harkyman.com/bp.html

While I'm working on this, I'm trying to sort out a way to do a new kind of IPO that would either be on or off - a world pin. When it's on, it sticks the object (bone, empty, whatever) in world space, where it may be at the time.

The wait should not be much longer.

If you can hook me up with some clones anyway, though, I'd appreciate it.


Return to “Animation”

Who is online

Users browsing this forum: Google [Bot] and 1 guest