Пазлы анимации и ограничителей (Animation/Constraints) — Софт Эйт Софт
Description: Как управлять анимацией и ограничителями с помощью блоков визуального программирования Вердж3Д.

# Пазлы анимации и ограничителей (Animation+Constraints)

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

## Содержание

- Перечень анимационных пазлов
  - play animation
  - stop animation
  - pause animation
  - resume animation
  - set animation frame
  - get animation frame
  - is animation playing
  - set animation speed
  - get animation speed
  - on animation frame do
  - get animation of
  - assign animation
  - clone animation
  - animate param
  - updated value
  - stop animate param
- Перечень пазлов ограничителей
  - limit transform
  - copy transform
  - remove / mute / unmute constraint

#

## Перечень анимационных пазлов

#

### play animation

Воспроизводит анимационный клип. Имена анимационных клипов соответствуют объектам, которым назначена анимация в «Блендере», «3дс Максе» и «Майе» (на один объект может быть назначен только один анимационный клип). Используйте пазл animation selector чтобы назначить клип анимации для этого пазла. В выпадающем списке можно изменить режим анимации — auto позволяет использовать режим анимации, заданный в «Блендере», «3дс Максе» или «Майе»; в то время как другие режимы переопределяют настройки, заданные в соответствующем пакете. Данный пазл ничего не сделает с анимацией, если она уже воспроизводится.

Данный пазл поддерживает дополнительные настройки, доступные по значку шестерёнки. Поля from и to служат для указания диапазона кадров. Поле speed используется для указания скорости воспроизведения. Переключатель reversed включает реверсивное воспроизведение.

Пазлы в слоте when finished: do обрабатываются после завершения анимации (это работает только для режима анимации once).

Этот пазл также работает для списка анимационных клипов.

#

### stop animation

Останавливает воспроизведение анимационного клипа и устанавливает его текущий кадр в ноль. Также работает для списка анимационных клипов.

Этот пазл не вызывает пазлы, указанные в слоте when finished do пазла play animation.

#

### pause animation

Приостанавливает воспроизведение анимационного клипа, чтобы его можно было возобновить позже, начиная с кадра, на котором он был приостановлен. Также работает для списка анимационных клипов.

#

### resume animation

Возобновляет ранее приостановленный анимационный клип. Также работает для списка анимационных клипов.

#

### set animation frame

Устанавливает анимационный клип на указанный кадр. Также работает для списка анимационных клипов.

Если анимационный клип воспроизводится, данный пазл поставит его на паузу. Используйте пазл resume animation чтобы возобновить его воспроизведение.

#

### get animation frame

Получает текущий кадр анимационного клипа.

#

### is animation playing

Проверяет, воспроизводится ли в данный момент анимационный ролик (или любая анимация из списка).

#

### set animation speed

Устанавливает скорость проигрывания анимации с текущего момента воспроизведения (сброса в начало не происходит). Переключатель reversed инвертирует направление проигрывания анимации (эквивалентно умножению скорости на -1). Данный пазл также работает со списком анимаций.

#

### get animation speed

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

#

### on animation frame do

Вызывает пазлы указанные в слоте do по достижении кадра frame.

#

### get animation of

Получает анимационный ролик указанного объекта. Также работает для списка объектов, группы (или списка групп) или с пазлом all objects. Возвращаемое значение всегда представляет собой список анимационных клипов (даже если среди них есть только один).

Примеры использования:

Переключатель return unique animation id(s) во всплывающем окне шестерёнки используется, чтобы возвращать уникальные идентификаторы анимаций вместо имён:

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

Идентификаторы, полученные с помощью данного пазла (выглядят как 5c464bf0-043a-40ee-b864-5c026436d7de), могут быть переданы в другие анимационные пазлы.

#

### assign animation

Назначает указанный анимационный ролик на другом объекте и возвращает имя нового анимационного ролика.

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

Если на целевом объекте уже имеется анимация, она будет заменена на новую.

#

### clone animation

Клонирует анимационный ролик (или список анимаций) в указанном диапазоне.

#

### animate param

Анимирует числовой параметр (или все параметры в списке или словаре) между from и to, в течение периода, заданного duration (в секундах). Раскрывающийся список easing позволяет указать режим анимации (смотрите ниже).

Поле repeat задает количество повторений после завершения первой анимации. Переключатель yoyo включает движение назад (работает для repeat > 1).

Пазлы в слоте on update do запускаются каждый кадр рендеринга, пока параметр анимирован. Пазлы в слоте when finished do срабатывают по завершении анимации.

Этот пазл оборачивает библиотеку Tween.js, раскрывая содержащиеся в ней 31 режим смягчения (на рисунке), настройки длительности, повтора и йойо, а также обратные вызовы обновления и завершения.

Промежуточное значение может быть получено с помощью пазла updated value, обычно помещаемого в слот on update do.

#

### updated value

Возвращает промежуточное значение, полученное с помощью пазла animate param. В зависимости от типа анимированного параметра может быть числом, списком или словарем.

Этот пазл может быть размещен в любом месте сценария, но лучше всего работает в слоте on update do пазла animate param, где он обновляется каждый кадр.

#

### stop animate param

Останавливает анимацию запущенную пазлом animate param.

#

## Перечень пазлов ограничителей

Если один объект не является родительским по отношению к другому, ограничители будут работать в мировом пространстве. В противном случае они будут работать в пространстве родительского объекта — вы можете выделить родительский объект в «Блендере», «3дс Максе» или «Майе», чтобы показать оси координат.

#

### limit transform

Создает ограничитель положения, поворота или масштаба объекта вдоль выбранной оси. Идентификатор id должен быть уникальным, иначе существующий ограничитель с таким же id будет заменён. Слоты min и max задают диапазон, в котором разрешено перемещение.

#

### copy transform

Создает ограничитель для копирования положения, поворота или масштаба объекта из другого объекта. Идентификатор id должен быть уникальным, иначе существующий ограничитель с таким же id будет заменён.

#

### remove / mute / unmute constraint

Удаляет, отключает или включает ограничитель, назначенный указанному объекту. Другие ограничители, назначенные этому объекту (если таковые имеются), останутся нетронутыми.

## Проблемы с пазлами?

Обращайтесь за помощью на наш форум!