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
<brechtvanlom...@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 <ces...@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
>> <brechtvanlom...@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 <ces...@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@blender.org
>>>> http://lists.blender.org/mailman/listinfo/bf-committers
>>> _______________________________________________
>>> Bf-committers mailing list
>>> Bf-committers@blender.org
>>> http://lists.blender.org/mailman/listinfo/bf-committers
>> _______________________________________________
>> Bf-committers mailing list
>> Bf-committers@blender.org
>> http://lists.blender.org/mailman/listinfo/bf-committers
> _______________________________________________
> Bf-committers mailing list
> Bf-committers@blender.org
> http://lists.blender.org/mailman/listinfo/bf-committers
_______________________________________________
Bf-committers mailing list
Bf-committers@blender.org
http://lists.blender.org/mailman/listinfo/bf-committers

Reply via email to