Введение#

Драйверы - это способ управления значениями свойств с помощью функции или математического выражения.

По сути, драйверы состоят из:

  • Конфигурация драйвера, которая задаёт ноль, одно или несколько входных значений, используя другие свойства или каналы преобразования объектов, и объединяет их с помощью предопределённой математической функции или пользовательского выражения Python.

  • Анимационная F-кривая, которая сопоставляет вывод конфигурации драйвера с конечным значением для применения к свойству драйвера.

Например, вращение Объекта 1 может контролироваться масштабом Объекта 2. Тогда можно сказать, что масштаб Объекта 2 управляется драйвером вращением Объекта 1.

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

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

Graph View#

../../_images/animation_drivers_introduction_fcurve.png

Кривая драйвера в редакторе Драйверов.#

В основной области Редактора драйверов отображается F-кривая, которая представляет функцию драйвера.

Ось X соответствует выходному значению конфигурации драйвера. Единицы измерения зависят от настройки.

Ось Y показывает значение, применённое к целевому свойству. Единицы измерения зависят от свойства.

На изображении примера, если значение драйвера равно 2.0, значение свойства будет равно 0.5.

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

Функция драйвера может быть задана художественно с помощью кривых Безье или математически с помощью тригонометрических функций или полиномиальных выражений, таких как \(y = a + bx\). Кроме того, функция может быть процедурно модулирована шумом или циклическими повторениями. Более подробную информацию см. в Модификаторы.

Конфигурация драйверов#

Панель драйверов отображает настройку драйвера.

Драйвер может иметь ноль, одну или несколько переменных. Переменные определяют, какие свойства, каналы преобразования объектов или относительные расстояния между объектами используются драйвером в качестве входных данных.

Тип драйвера определяет, как будут использоваться переменные. Тип может быть:

  • встроенной функцией: например, сумма значений переменных, или

  • скриптовым выражением: произвольное выражение Python, которое ссылается на переменные по их именам.

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

Notes on Scripted Expressions#

Когда драйвер использует Scripted Expression, Blender может обработать его без использования полнофункционального интерпретатора Python, если он достаточно прост. Это означает, что драйверы быстро обрабатывают простые деления, сложения и другие «простые» выражения. Встроенные функции всегда обрабатываются нативно.

Полный список выражений, которые могут быть обработаны нативно, смотрите в Простые выражения.

Если выражение не простое, оно будет обрабатываться с помощью Python. Как следствие, драйвер будет работать медленнее, и существует риск безопасности, если автор кода Python неизвестен. Это важно учитывать при работе с тяжёлыми сценами и при совместном использовании файлов с другими людьми. См. также: Автозапуск.