Как управлять видимостью объектов во вьюпорте и при рендере

Самый простой способ заставить нужный объект появляться и исчезать – назначить ему ключи анимации. Для этого нужно навести курсор на значок глаза (видимость во вьюпорте) или фотоаппарата (видимость при рендере) в окне “Outliner”, нажать клавишу “i” и далее в Graph Editor управлять созданным ключом так же, как с обычными ключами анимации.

Но такой способ доступен не всегда. Например, для коллекций нельзя назначить ключи анимации видимости, Blender выдаст ошибки вида:

“hide_viewport” property cannot be animated

или

“hide_render” property cannot be animated

Однако с помощью Blender Python API видимостью таких объектов можно управлять.

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

Откроем текстовый редактор и создадим скрипт, управляющий видимостью трех коллекций cube, monkey и sphere.

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

Мы добавили каждой коллекции новый атрибут “toggle_visibility_frame” и присвоили ему список с номерами кадров. Через этот список можно удобно назначать кадры для изменения видимости нужной коллекции.

Соберем коллекции, которым мы присвоили атрибут изменения видимости, в один список для удобного обращения.

Определим функцию, которая будет сверять значение текущего кадра со списком кадров из атрибута “toggle_visibility_frame” и если номер текущего кадра совпадает с номером, указанном в списке – менять видимость коллекции, скрывая или показывая ее.

Теперь нам нужно вызывать эту функцию при каждой смене кадра в таймлане. Привяжем вызов функции к событию смены кадра через обработчик события “frame_change_pre”, которое возникает каждый раз перед сменой очередного кадра в сцене.

Полный текст готового скрипта:

Выполним скрипт, нажав на кнопку “Run Script” и запустим проигрыш анимации.

В результате коллекции показываются и скрываются в соответствии с назначенными нами кадрами.

0 0 голоса
Article Rating
Подписаться
Уведомить о
guest

0 Комментарий
Межтекстовые Отзывы
Посмотреть все комментарии