NLA, set blending 2 strips to add makes movement half of the original action


(Jansiotropic) #1

Hi,

I am, thanks to this forum, learning a lot about animation and the NLA editor. My new question is: is it possible to combine 2 strips (see attachement), set blending to “Add” and have a full influence ? Now it seems blender is calculating the (weighted with influence) average of the 2 actions instead of just weighted with influence.
You can see the full movement by changing the “Add” to “Replace” in the NLA.

Thanks,
Jan
test_NLA_tube2.blend (839 KB)


(XeroShadow) #2

Unless you are using different bones within the same animation, one action will over take the over with the same bone… Especially if you stack it on top.


(stilltrying) #3

Your dealing with quaternion rotations. I believe that currently Blender is adding matrix together as W+W, X+X, Y+Y, Z+Z to get the new matrix. I don’t think quaternion rotational blending like for addition has been implemented for q = w + xi + yj + z*k :D. Therefore. you are not only not going to get what you expect, I think you are looking for something that is not going to work like you are expecting. Switch to Euler and try it, get rid of scale and location, and see if that is what you expect. Remember you are dealing in 3d space, not 2d space. The math is insane. I became an alcoholic trying to understand this concept. You are dealing with cosines and other angular type addition. Your keys are set on top of each other and this is what comes into play. Remember the NLA is like stacking keyframes on top of each other and then reading down to squash them together to the bottom and ending up with that. Blending is really about getting it to stack nicely from one position to another, not on top of each other. Xero has pointed you in the correct direction to to understand this feature.


(Hadriscus) #4

I wouldn’t have figured that one out, thanks for the info stilltrying. Now I remember Aligorith talking about additive blending for quats (https://developer.blender.org/T47035)…

lmao I hope this is fictional.


(stilltrying) #5

Thanks for the reference.
That confirms what I suspected.


(Jansiotropic) #6

Thanks everyone for the reactions,

It looked so trivial. Give a character a run-cycle (with moving arms) and give one arm an action (going to the right a bit) to pick up something hanging on a tree when passing by for example. First give a rotation of x degrees on axis a, and then give a rotation of y degrees on axis b, resulting in a combined rotation.

I understand it is far more difficult to make an “Add” to an rotation quaternion. I don’t have the brains and the time to do this :slight_smile:


In this page I saw this:
Two rotation quaternions can be combined into one equivalent quaternion by the relation:
q’ = q2q1
in which q′ corresponds to the rotation q1 followed by the rotation q2. (Note that quaternion multiplication is not
commutative.) Thus, an arbitrary number of rotations can be composed together and then applied as a single rotation.

Anyway, for now I have to split animations in time (using replace) when affecting the same bones.

Thanks again !
Jan


(Hadriscus) #7

I know nothing about that kind of math either, but the discussion on the page I linked seemed to suggest it was kinda difficult. Why not use euler in the meantime ? Too much work already done with quaternions ?


(Jansiotropic) #8

Hi,

Thx, I learned some things about Euler and quaternions. It is a complicated thing indeed. I followed your advice to use Euler on the example-tube. That worked better to what I expected as a result movement.
I saw a lot drawbacks of using Euler. Depend on what you want I think. I have to gain experience to what is best for me.

Thanks,
Jan