Теперь снова откройте Graph Editor, выберите снова анимационную кривую для rotateX и выполните Curves=> Change Rotation lnterp=>Synchronized Quaternions.Теперь ошибки быть не должно и анимационная кривая примет довольно замысловатый вид.

Если вы теперь проиграете анимацию, конус будет чуть-чуть вращаться, переходя из одного положения к другому кратчайшим образом.

Итак, кватернионы используются только для задания альтернативного типа интерполяции анимационных кривых между ключевыми кадрами. Они применяются только для вычисления вращений. В результате использования Quaternion Interpolation объект будет вращаться (между соседними ключевыми кадрами) так, чтобы совершить кратчайший поворот от одного положения к другому, даже если цифры в Channel Box имеют совершенно безумные значения.

Примечание. В Channel Box всегда отображаются эйлеровские углы, независимо от типа интерполяции анимационных кривых.

Очевидно, что применять Quaternion Interpolation имеет смысл только в тех случаях, когда величины вращений принимают «экстремальные» значения (то есть внезапно переходят через значения 180 или -180 градусов), либо когда объект начинает неожиданно бешено крутиться в непонятном направлении.

Вы спросите, а с чего бы это объекту вдруг начать крутиться, если мы сами ставим ключи и контролируем положение объекта. Да, это так, если вы используете только анимацию по ключам. Однако в некоторых случаях ключи для вращений или ориентация объекта получаются автоматически, в результате вычислений. Одним из примеров может служить использование данных от систем захвата движений или соответствующих библиотек. Как правило, вращения всех костей, «приехавших» к вам от системы motion capture, находятся в диапазоне от -180 до +180 градусов и весело перекручиваются, проходя через границы диапазона, если предварительно никто не принял никаких усилий - типа эйлеровской фильтрации. Другим примером может быть вышеупомянутое смешивание анимаций, когда от одного вращательного движения объект плавно переходит к другому. При этом вы вполне контролируете значения вращений, когда ставите ключи, однако значения, вычисляемые констрейнами или движением по пути, получаются автоматически, и вы не можете их предугадать или контролировать. Поэтому может возникнуть ситуация, когда объект, вместо того, чтобы плавно повернуться от текущего положения (определяемого, например, Aim Constraint) к новой ориентации, задаваемой ключами и визуально очень близкой в пространстве, начинает описывать большие дуги, поворачиваясь в новое положение совсем не так, как вы этого ждете. В этом случае имеет смысл отредактировать значение атрибута Rot Interpolation ноды pairBlend, установив его в Quaternions, чтобы смешивание вращений происходило по кратчайшему пути в пространстве.

Еще одним примером может служить сложная настройка персонажа, когда каждый сустав имеет собственное расположение локальных вращательных осей. При использовании управления с помощью Set Driven Key углы поворота будут вычисляться автоматически, а вращение не всегда будет происходить предсказуемо.


⇐ вернуться назад | | далее ⇒