AnimationActions планируют выполнение анимаций, которые хранятся в AnimationClips.
Примечание: Большинство методов AnimationAction можно объединить в цепочку.
Обзор различных элементов системы анимации Verge3D смотрите в статье "Animation System" в разделе "Next Steps" руководства.
mixer - AnimationMixer, который управляется этим действием.
clip - AnimationClip, который содержит данные анимации для этого действия.
localRoot — корневой объект, над которым выполняется это действие.
Примечание: Вместо прямого вызова этого конструктора следует создать AnimationAction с помощью функции AnimationMixer.clipAction, поскольку этот метод обеспечивает кэширование для повышения производительности.
Если clampWhenFinished имеет значение true, анимация будет автоматически paused на последнем кадре.
Если clampWhenFinished установлено в false, enabled будет автоматически переключено в false после завершения последнего цикла действия, так что это действие не будет иметь дальнейшего влияния.
По умолчанию false.
Примечание: clampWhenFinished не имеет никакого влияния, если действие прервано (оно имеет эффект только в том случае, если его последний цикл действительно завершился).
Установка enabled в false отключает это действие, так что оно не оказывает никакого влияния. По умолчанию true.
Когда действие снова включено, анимация продолжается с текущего time time (установка enabled в false не сбрасывает действие).
Примечание: Установка значения enabled в true не приводит к автоматическому перезапуску анимации. Установка enabled в true немедленно перезапустит анимацию, только если выполняется следующее условие: paused равно false, это действие не было деактивировано (выполнением команды stop или reset), и ни weight, ни timeScale не равны 0.
Режим зацикливания (можно изменить с помощью setLoop). По умолчанию
v3d.LoopRepeat (with an infinite number of repetitions)
Должна быть одной из этих констант:
v3d.LoopOnce — воспроизведение клипа один раз,
v3d.LoopRepeat — воспроизведение клипа с выбранным числом repetitions, каждый раз переходя от конца клипа непосредственно к его началу,
v3d.LoopPingPong — воспроизведение ролика с выбранным количеством repetitions, поочередное воспроизведение вперед и назад.
Установка paused в true приостанавливает выполнение действия, устанавливая шкалу эффективного времени на 0. По умолчанию false.
Количество повторений выполняемой AnimationClip в течение этого действия. Может быть задано через setLoop. По умолчанию Infinity.
Установка этого числа не имеет эффекта, если для параметра loop mode установлено значение v3d.LoopOnce.
Местное время этого действия (в секундах, начиная с 0).
Значение обрезается или оборачивается до 0...clip.duration (в зависимости от состояния цикла). Оно может быть масштабировано относительно глобального микшера времени путем изменения timeScale (с помощью setEffectiveTimeScale или setDuration).
Коэффициент масштабирования для time. При значении 0 анимация приостанавливается. Отрицательные значения заставляют анимацию воспроизводиться в обратном направлении. По умолчанию - 1.
Свойства/методы, относящиеся к timeScale (соответственно time), являются:
getEffectiveTimeScale,
halt,
paused,
setDuration,
setEffectiveTimeScale,
stopWarping,
syncWith,
warp.
Локальное время начала этого действия (в секундах). Используйте вместе с AnimationClip.duration для установки диапазона воспроизведения.
Степень влияния данного действия (в интервале [0, 1]). Значения от 0 (нет влияния) до 1 (полное влияние) могут использоваться для смешивания нескольких действий. По умолчанию - 1.
Свойства/методы, касающиеся weight, являются:
crossFadeFrom,
crossFadeTo,
enabled,
fadeIn,
fadeOut,
getEffectiveWeight,
setEffectiveWeight,
stopFading.
Включает плавную интерполяцию без отдельных клипов для начала, цикла и конца. По умолчанию true.
Включает плавную интерполяцию без отдельных клипов для начала, цикла и конца. По умолчанию true.
Вызывает это действие fade in, одновременно затухая в другом действии в течение заданного интервала времени. Этот метод можно объединить в цепочку.
Если warpBoolean равен true, будет применена дополнительная warping (постепенное изменение временных масштабов).
Примечание: Как и в случае fadeIn/fadeOut, затухание начинается/заканчивается с весом 1.
Вызывает это действие fade out, одновременно затухая в другом действии в течение заданного интервала времени. Этот метод можно объединить в цепочку.
Если warpBoolean равен true, то дополнительная warping (постепенное изменение временных масштабов) будет применено.
Примечание: Как и в случае fadeIn/fadeOut, затухание начинается/заканчивается с весом 1.
Увеличивает weight этого действия постепенно от 0 до 1, в течение заданного интервала времени. Этот метод можно объединить в цепочку.
Уменьшает weight этого действия постепенно от 1 до 0, в течение заданного интервала времени интервал. Этот метод можно объединить в цепочку.
Возвращает эффективную шкалу времени (учитывая текущие состояния искривления и paused).
Возвращает эффективный вес (с учетом текущих состояний затухания и enabled).
Возвращает клип, содержащий данные анимации для этого действия.
Возвращает микшер, который отвечает за воспроизведение этого действия.
Возвращает корневой объект, над которым выполняется данное действие.
Замедляет скорость этой анимации до 0, постепенно уменьшая timeScale (начиная с его текущего значения) в течение переданного интервала времени. Этот метод может быть соединен в цепочку.
Возвращает true, если действие time в данный момент выполняется.
Помимо активации в микшере (смотрите isScheduled) должны выполняться следующие условия:
paused равно false, enabled равно true,
timeScale не равно 0, и нет планирования для отложенного старта
(startAt).
Примечание: то, что isRuning* равно true, не обязательно означает, что анимацию можно увидеть. Это происходит только в том случае, если weight дополнительно имеет ненулевое значение.
Возвращает true, если это действие активировано в микшере.
Примечание: это не обязательно означает, что анимация действительно запущена (сравните дополнительные условия для isRunning).
Приказывает микшеру активировать действие. Этот метод может быть соединен в цепочку.
Примечание: Активация этого действия не обязательно означает, что анимация начнется немедленно: Если действие уже завершилось ранее (дойдя до конца своего последнего цикла), или если было установлено время отложенного старта (через startAt), сначала должно быть выполнено reset. Некоторые другие настройки (paused=true, enabled=false, weight=0, timeScale=0) также могут предотвратить воспроизведение анимации.
Сбрасывает действие. Этот метод можно объединить в цепочку.
Этот метод устанавливает paused в false, enabled в true, time в 0, прерывает любое запланированное затухание и искривление, и удаляет внутренний счетчик циклов и планирование для отложенного запуска.
Примечание: .reset всегда вызывается stop, но .reset не вызывает сам .stop. Это означает: Если вам необходимы и сброс, и остановка одновременно - не вызывайте .reset; вместо этого вызовите .stop.
Устанавливает продолжительность одного цикла этого действия (регулируя timeScale и останавливая любое запланированное искривление). Этот метод может быть соединен в цепочку.
Устанавливает timeScale и останавливает любое запланированное искривление. Этот метод может быть соединен в цепочку.
Если paused равно false, шкала эффективного времени (внутреннее свойство) также будет установлена в это значение; в противном случае шкала эффективного времени (непосредственно влияющая на анимацию в данный момент) будет установлена в 0.
Примечание: .paused не будет автоматически переключен на true, если .timeScale установлен в 0 этим методом.
Устанавливает вес weight и останавливает любое запланированное затухание. Этот метод можно объединить в цепочку.
Если enabled равно true, эффективный вес (внутреннее свойство) также будет установлен этому значению; в противном случае эффективный вес (непосредственно влияющий на анимацию в данный момент) будет установлен в 0.
Примечание: .enabled не будет автоматически переключен на false, если .weight установлен в 0 этим методом.
Устанавливает режим loop и количество повторений repetitions. Этот метод можно объединить в цепочку.
Определяет время отложенного старта (обычно передается как AnimationMixer.time + deltaTimeInSeconds). Этот метод может быть соединен в цепочку.
Примечание: Анимация начнется только в указанное время, если .startAt связан цепочкой с play, или если действие уже было активировано в микшере (предыдущим вызовом .play, без остановки или сброса в это время).
Сообщает микшеру о необходимости деактивировать это действие. Этот метод может быть соединен в цепочку.
Действие будет немедленно остановлено и полностью reset.
Примечание: Вы можете остановить все активные действия на одном микшере за один раз с помощью mixer.stopAllAction.
Останавливает все запланированные fading, которые применяются к этому действию. Этот метод может быть цепочкой.
Останавливает любое запланированное warping, которое применяется к этому действию. Этот метод может быть цепочкой.
Синхронизирует это действие с переданным другим действием. Этот метод может быть соединен в цепочку.
Синхронизация выполняется путем установки значений time и timeScale этого действия на соответствующие значения другого действия (останавливая любое запланированное искривление).
Примечание: Будущие изменения time и timeScale другого действия не будут обнаружены.
Изменяет скорость воспроизведения в пределах заданного интервала времени, постепенно изменяя timeScale от startTimeScale до endTimeScale. Этот метод можно объединить в цепочку.
Есть два события, указывающие на завершение одного цикла действия, соответственно, всего действия. Вы можете реагировать на них с помощью:
mixer.addEventListener('loop', function(e) { …}); // properties of e: type, action and loopDelta
mixer.addEventListener('finished', function(e) { …}); // properties of e: type, action and direction
О том как получить исходный код этого модуля читайте тут.