Драйвера в Blender

Одна из тех тем которые стараются обойти, это драйвера в Blender. Драйвера, да не те что для пера или видеокарты! Нееет! Эти драйвера управляют свойствами объектов в 3D пространстве Blender.
1

Предисловие

Да, базовый минимум об этих самых драйверах находится в официальном руководстве. Там же можно найти базовые примеры использования, а ссылки на это добро в конце публикации.
Другие, порой более сложные драйвера и скрипты драйверов можно найти в разных примерах, разных разработчиков, но это надо искать, как минимум. И если найти драйвер не так сложно, то понять принцип его работы зачастую стоит определенных усилий.
На самом деле драйвера очень помогают в работе. По своей практике, это реализация оснастки и как следствие сокращение количества анимируемых параметров объектов, целых сцен и понятное дело, персонажей.
Приведу простой пример. Недавно смотрел стрим, на котором парень показывал как сделать шейпкеи век и ресниц 3D персонажа. Тема популярная, тема классная. Ведущий молодечик, все красиво показывал. Супер! Но когда он перешел к анимации, то начал ставить ключи на шейпкеи ресниц и отдельно на шейпкеи век, а потом синхронизировать их движения. Это плохо! Ведь достаточно было просто прикрепить к ресницам веки с помощью драйвера. Всего пара кликов мышью и синхронность движений без проблем на таймлайне обеспечена!
Простой подход к вопросу, простейшая реализация и значительное сокращение времени на анимацию. Время дорого! Потому к драйверам поближе и с самого начала.

Пример простой связки шейпкеев с помощью драйверов
Пример простой связки шейпкеев с помощью драйверов
2

Что такое драйвер

Пусть несколько грубо, однако, драйвер в Blender это связующее звено между свойствами объектов. Или между свойством объекта и свойством сцены, а может ещё каким свойством. Да, далеко не все свойства можно использовать в качестве управляющих или управляемых. Узнать об этом можно, например, из контекстного меню, того что под правой кнопкой мыши.
Контекстное меню свойства Viewports
Контекстное меню свойства Viewports
В видеоролике посвященном драйверам, в качестве образной ассоциации был приведен пример с мини конвейером. Поскольку драйвер, кроме простой передачи свойств одного объекта к другому, способен в значительной степени перерабатывать и адаптировать эти свойства.
3

Как создать, установить драйвер

Как вариант, достаточно копировать управляющее свойство в виде драйвера. Этот способ действительно самый простой и быстрый. Просто скопировал и вставил, при этом поле управляемого свойства окрасится в фиолетовый цвет, который обозначает, что здесь установлен драйвер. А если нужен особый драйвер, тогда есть несколько вариантов. Можно редактировать уже имеющийся, как в редакторе драйверов, так и в скорострельном всплывающем редакторе скрипта, пункт «редактировать драйвер» контекстного меню.
Экспресс редактор и редактор драйверов
Экспресс редактор и редактор драйверов
Драйвер-пустышка получается если в поле свойства управляемого объекта вставить знак «решётки», а ещё есть пункт «создать новый драйвер» в контекстном меню. Там же есть пункт «удалить драйвер», мало ли, вдруг надоел.
Контекстное меню поля с установленным драйвером
Контекстное меню поля с установленным драйвером
И ещё один момент. Если свойством управляет драйвер, то «покрутить» вручную уже нельзя! Это свойство полностью подчиняется драйверу. Но при помощи изоленты и зубочисток можно обойти такое неудобство. В редакторе драйверов есть флажок, позволяющий отключить действие. Свойство останется подкрашенным, но появится возможность временно изменять значение, что облегчает настройку драйвера. Только не нужно забывать, что костыли, как всегда неожиданно, могут превратиться в грабли. Весело конечно, но время на это уходит.
4

Что за скрипты, как это работает

Чтобы заработало нужно ввести в пустое поле свойства объекта [⋕frame].
Создание драйвера
Создание драйвера
Об остальном позаботились разработчики, этот скрипт передает значение положения бегунка таймлайна в свойство объекта. Находится бегунок на 50 кадре и значение свойства объекта будет равно 50. Если нужно меньше, можно разделить [frame/10] или вычесть что-нибудь [frame-10], а можно сначала вычесть из чего-нибудь и разделить [10-frame/10]. С синусами, косинусами тоже получается [cos(frame/10)*10] и немного сложнее [int(sin(frame/40)*10)] или просто так для изменения на целое число [int(frame/50)]. При этом, frame можно заменить на другую переменную, например на величину перемещения какого-нибудь объекта в сцене. А список простых выражений, тех что не требуют разрешения для выполнения, имеется в руководстве. Отмечу, что управляемые, ведомые, свойства так же могут быть разными. Например для включения и выключения видимости объекта достаточно всего двух значений 1 и 0. Когда значение равно 0, объект видим, включен, а вот если изменить на 1 тогда он станет невидимкой, выключен. В целом вывод такой, c математикой у Blender все хорошо.
5
Что бывает ещё
Ещё бывает разное, например случаются кривые драйверов, модификаторы и интерполяция. Это отдельные, достаточно обширные, темы, которые идентичны работе с анимационными кривыми.
Пример работы с кривыми драйверов можно посмотреть в видео
«Драйвера объектов в Blender | анимация с помощью драйверов, кривые драйверов»
К видеоролику прилагаются файлы примеров, которые показаны в видео.
*blend файлы были созданы в Blender 2.92
Google Диск: https://drive.google.com/drive/folders/1OEMhkUJ-fNGb6g9PjciS5rn1i-N6Ag_V?usp=sharing
Yandex Диск: https://disk.yandex.ru/d/hRs7iix_OWso0A
  • DrvGrf_EASY_KYTR10621.blend - Бленд файл пример простых драйверов
  • DrvGrf_JUMP_KYTR10621.blend - Бленд файл пример анимации двух объектов
  • DrvGrf_COLOR_KYTR10621.blend - Бленд файл пример регулировки цвета
Один из примеров практического использования драйверов можно посмотреть в видео
«Лицо 2D персонажа на шейпкеях и драйверах в Blender | Как сделать риггинг лица персонажа»
This site was made on Tilda — a website builder that helps to create a website without any code
Create a website