AnimationMixer

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

Обзор элементов анимационной системы «Вердж3Д» находится в разделе Анимационная система настоящего руководства.

Конструктор

AnimationMixer(rootObject : Object3D)

rootObject — объект, анимация которого будет воспроизводиться этим микшером.

Свойства

.time : Float

Глобальное время микшера (в секундах; начинается с 0 при создании микшера).

.timeScale : Float

Масштабный коэффициент для глобального mixer времени.

Установка timeScale микшера в 0, а затем обратно в 1 предоставляет возможность приостановить/отменить паузу для всех действий, управляемых данным микшером.

Методы

.clipAction(clip : AnimationClip, optionalRoot : Object3D) → AnimationAction

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

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

.existingAction(clip : AnimationClip, optionalRoot : Object3D) → AnimationAction

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

Первым параметром может быть либо объект AnimationClip, либо имя AnimationClip.

.getRoot() → Object3D

Возвращает корневой объект этого микшера.

.stopAllAction() → this

Останавливает все ранее запланированные действия на этом микшере.

.update(deltaTimeInSeconds : Float) → this

Продвигает глобальное время микшера и обновляет анимацию.

Обычно это делается в цикле рендеринга, передавая clock.getDelta, масштабированную по timeScale микшера).

.setTime(timeInSeconds : Float) → this

Устанавливает глобальный микшер на определенное время и соответствующим образом обновляет анимацию.

Это полезно, когда нужно перейти к точному времени в анимации. Входной параметр будет масштабирован по timeScale микшера.

.uncacheClip(clip : AnimationClip)

Освобождает все ресурсы из памяти для клипа. Перед вызовом данного метода, вызовите AnimationAction.stop() для всех связанных с микшером действий.

.uncacheRoot(root : Object3D)

Освобождает все ресурсы из памяти для корневого объекта. Перед вызовом данного метода, вызовите AnimationAction.stop() для всех связанных с микшером действий.

.uncacheAction(clip : AnimationClip, optionalRoot : Object3D)

Освобождает все ресурсы из памяти для действия. Перед вызовом данного метода, вызовите AnimationAction.stop() для всех связанных с микшером действий.

Пазлы

Вы также можете задействовать пазлы анимации, которые проще в использовании чем ААПИ AnimationMixer.

Исходный файл

О том как получить исходный код этого модуля читайте тут.