[Bf-committers] Animation regression, quaternion normalization

Nathan Vegdahl cessen at cessen.com
Tue Mar 20 01:49:27 CET 2012


Aligorith: since you seem to be active on the list again, can you
spare some time to weigh in on this?

Thanks!

--Nathan


On Wed, Mar 7, 2012 at 11:39 AM, Nathan Vegdahl <cessen at cessen.com> wrote:
> Poke poke, to Aligorith.  Can you please weigh in on this?
>
> --Nathan
>
>
> On Tue, Feb 28, 2012 at 11:04 PM, Nathan Vegdahl <cessen at cessen.com> wrote:
>>> Hmm, I think we shouldn't change this without Joshua weighing in first,
>>
>> Agreed.  He is the master of the animation system. :-)
>>
>>> but... it might be good to have an operator for it in the meantime?
>>
>> Good idea.  This would be easy to whip up as a python operator.  I can
>> whip one up after I'm done with the rigging DVD, or if anyone else
>> wants to whip it up it should be simple.  Just something that loops
>> over selections and normalizes quats on objects/bones set to
>> quaternion rotation.
>>
>> --Nathan
>>
>>
>> On Tue, Feb 28, 2012 at 2:18 PM, Bassam Kurdali <bassam at urchn.org> wrote:
>>> Hmm, I think we shouldn't change this without Joshua weighing in first,
>>> in case something dangerous will happen, but... it might be good to have
>>> an operator for it in the meantime? so at least there's a way to
>>> normalize/fix (I realize that that conflicts horribly with Nathan's goal
>>> of not forcing animators to think about that stuff, something I agree
>>> with completely, but just as a stop-gap)
>>>
>>> On Tue, 2012-02-28 at 13:16 -0800, Nathan Vegdahl wrote:
>>>> Thanks Brecht!
>>>>
>>>> Yes, I think there are problems with this approach too, and I can see
>>>> why it would cause confusion.  But I think it's better to have this
>>>> for now until we figure out something better.
>>>>
>>>> One possibility would be to only have normalization happen when
>>>> inserting keys.  It's only a problem when things are animated, after
>>>> all.  That could also be confusing, though, since people will wonder
>>>> why the values change when they insert keyframes.
>>>>
>>>> Or perhaps we could have auto-normalization happen on frame changes?
>>>>
>>>> In any case, I think it's important that--however we set it
>>>> up--animators should not need to understand all of this to animate
>>>> with quaternions.
>>>>
>>>> --Nathan
>>>>
>>>>
>>>> On Tue, Feb 28, 2012 at 12:26 PM, Brecht Van Lommel
>>>> <brechtvanlommel at pandora.be> wrote:
>>>> > Hi,
>>>> >
>>>> > Ok, I found the commits that removed this auto-normalization. First it
>>>> > was changed for pose bones in r27200, and then for objects in r33523
>>>> > to make it consistent. For pose bones it was changed by Joshua with
>>>> > the comment "This was a constant source of confusion in the past, so
>>>> > let's see if we can do without it now :)".
>>>> >
>>>> > I can definitely see the interpolation issue when they are not
>>>> > normalized. So the question then is, what was this confusion?
>>>> >
>>>> > One issue perhaps is when you want to enter a particular value for the
>>>> > quaternion, if it keeps normalizing each time you enter a value, that
>>>> > would be a problem.
>>>> >
>>>> > Another issue with the implementation that I can see is that the
>>>> > normalization was done in object update, so not on editing only but
>>>> > also on any object animation evaluation. If you then animate only one
>>>> > of the quaternion components, the other values keep changing as you
>>>> > scrub through time and actually alter the animation. So perhaps that
>>>> > should be done differently, though it's not something you would do
>>>> > often I guess. Doing it immediately in RNA would also be problematic
>>>> > if you're setting the quaternion component by component in a script,
>>>> > the normalization does need to be delayed somehow.
>>>> >
>>>> > Further, probably Joshua knows, mailing this to him as well to get his opinion..
>>>> >
>>>> > Brecht.
>>>> >
>>>> > On Fri, Feb 24, 2012 at 9:37 PM, Nathan Vegdahl <cessen at cessen.com> wrote:
>>>> >> Hi Brecht,
>>>> >> You are right that it appears there are a lot of releases with this
>>>> >> regression!  I'm not sure how I didn't notice before.  Guess I wasn't
>>>> >> animating anything with large rotations.
>>>> >>
>>>> >> It appears the regression was introduced in version 2.56.  Versions
>>>> >> 2.55 and earlier behave as desired.
>>>> >>
>>>> >> 2.4x and earlier _do_ auto-normalize (I just tested).  In the 2.4x
>>>> >> series quats are displayed as eulers in the n-panel, so you have to
>>>> >> set keyframes and look at the values of the keys in the Ipo editor to
>>>> >> see the actual quat values.  Try, for example, keying a bone unrotated
>>>> >> on frame 1, then rotated 180 degrees on frame 21.  On frame eleven
>>>> >> it's clear that the values given by the Ipo curves are not normalized.
>>>> >>  However, if you move to frame 11 and set a key, the inserted keys are
>>>> >> normalized.
>>>> >>
>>>> >> This is a highly desirable behavior, because it keeps quaternion
>>>> >> values from drifting and causing rotation speed issues with
>>>> >> interpolation.
>>>> >>
>>>> >> Perhaps we could just normalize quaternion values upon inserting
>>>> >> keyframes?  That is the primary use-case here.
>>>> >>
>>>> >> --Nathan
>>>> >>
>>>> >>
>>>> >> On Fri, Feb 24, 2012 at 7:51 AM, Brecht Van Lommel
>>>> >> <brechtvanlommel at pandora.be> wrote:
>>>> >>> Hi Nathan,
>>>> >>>
>>>> >>> I tried manually typing in non-normalized values in the N key
>>>> >>> transform panel in the 3d view, and rotating objects/bones after that
>>>> >>> with transform, but could not see it auto-normalize the values in any
>>>> >>> version I tested (2.49, 2.57, 2.60, 2.62).
>>>> >>>
>>>> >>> Probably I'm misunderstanding something, but I can't find any traces
>>>> >>> of this feature.
>>>> >>>
>>>> >>> Brecht.
>>>> >>>
>>>> >>> On Thu, Feb 23, 2012 at 11:03 PM, Nathan Vegdahl <cessen at cessen.com> wrote:
>>>> >>>> Hi guys, I wrote to the list about this before but received no response.
>>>> >>>>
>>>> >>>> I don't know when this was changed, but quaternion rotations for
>>>> >>>> objects and bones in Blender are no longer auto-normalized for the
>>>> >>>> user.  I am frustrated that a release (2.62) made it out the door with
>>>> >>>> this being the case, as it substantially harms the practicality of
>>>> >>>> animating with quaternions.  It is not "incorrect" behavior per se, so
>>>> >>>> I am hesitant to file a bug report.  But it is something that needs to
>>>> >>>> be changed.
>>>> >>>>
>>>> >>>> I think we either need to revert behavior back to how it was before
>>>> >>>> (quaternions being auto-normalized in the transform panel), or find
>>>> >>>> another solution.  But as things are right now, quaternions are
>>>> >>>> impractical to animate with in many circumstances (especially doing
>>>> >>>> blocking on characters involving large rotations).  I will be happy to
>>>> >>>> provide a technical explanation of why that is the case, but at the
>>>> >>>> moment I am swamped trying to finish my rigging DVD.
>>>> >>>>
>>>> >>>> I just want to make sure this doesn't slip into the next release as
>>>> >>>> well!  It is a serious regression.
>>>> >>>>
>>>> >>>> --Nathan
>>>> >>>> _______________________________________________
>>>> >>>> Bf-committers mailing list
>>>> >>>> Bf-committers at blender.org
>>>> >>>> http://lists.blender.org/mailman/listinfo/bf-committers
>>>> >>> _______________________________________________
>>>> >>> Bf-committers mailing list
>>>> >>> Bf-committers at blender.org
>>>> >>> http://lists.blender.org/mailman/listinfo/bf-committers
>>>> >> _______________________________________________
>>>> >> Bf-committers mailing list
>>>> >> Bf-committers at blender.org
>>>> >> http://lists.blender.org/mailman/listinfo/bf-committers
>>>> > _______________________________________________
>>>> > Bf-committers mailing list
>>>> > Bf-committers at blender.org
>>>> > http://lists.blender.org/mailman/listinfo/bf-committers
>>>> _______________________________________________
>>>> Bf-committers mailing list
>>>> Bf-committers at blender.org
>>>> http://lists.blender.org/mailman/listinfo/bf-committers
>>>
>>>
>>> _______________________________________________
>>> Bf-committers mailing list
>>> Bf-committers at blender.org
>>> http://lists.blender.org/mailman/listinfo/bf-committers


More information about the Bf-committers mailing list