netlib.narod.ru | < Назад | Оглавление | Далее > |
В Direct3D термин анимация (animation) имеет два значения. Анимацией называется перемещение объектов в сцене, кроме того, анимация — это еще и название интерфейса, который поддерживает создание и воспроизведение анимации по ключевым кадрам.
Интерфейс Direct3DRMAnimation позволяет конструировать анимационные последовательности на основе ключей (keys). Каждый ключ представляет собой коэффициенты перемещения, вращения или масштабирования, применяемые к объекту в заданной точке анимации. Затем интерфейс анимации может выполнить анимацию целиком, основываясь на нескольких ключах и автоматически вычисляя параметры объекта между ключевыми кадрами.
Для создания ключевых кадров в интерфейсе анимации применяются следующие функции:
Каждая функция добавления ключа требует указания времени и преобразования. Время определяет момент анимации, в который ключ окажет действие. Преобразование — это позиционирование, поворот или масштабирование, которое должно произойти в ключевом кадре. Общая длина анимации определяется ключом с самым большим значением времени. Для удаления ключей из анимации применяется функция DeleteKey().
Для установки текущей позиции в созданной анимации применяется функция SetTime(). Передаваемые функции SetTime() значения зависят от значений, применявшихся при зоздании ключевых кадров.
Значения времени представляются числами с плавающей запятой, так что ключи могут быть установлены в любом месте анимации, даже если общая длина анимации равна 1. Это также позволяет воспроизводить анимацию в замедленном или ускоренном темпе, передавая малые или большие приращения функции SetTime().
Поскольку функции SetTime() могут передаваться любые значения, анимация может быть остановлена, запущена снова, ускорена, замедлена или даже воспроизведена в обратном порядке.
Функции GetOptions() и SetOptions() применяются, чтобы определить поведение анимированных объектов. С их помощью можно задать следующие параметры:
Использование линейной анимации означает, что интерфейс анимации перемещает объекты между ключевыми фреймами по кратчайшему расстоянию. Сплайновая анимация использует для вычисления позиции объекта кривые, обеспечивая более плавное движение.
Параметр открытия/закрытия определяет, как объект анимации будет интерпретировать передаваемые функции SetTime() значения времени, которые выходят за заданный диапазон. В закрытой анимации время движется по замкнутому кругу. Это означает, что из выходящего за диапазон значения времени вычитается максимальное значение времени ключа, и закрытая анимация повторяется, даже если значение времени продолжает увеличиваться. В открытой анимации значения времени, выходящие за диапазон, игнорируются. Этот параметр добавлен исключительно для удобства, поскольку открытая анимация может быть повторена посредством перезапуска счетчика времени анимации с нуля.
Параметр использования позиций активизирует позиционные ключи анимации. Когда данный параметр отключен, позиционные ключи не оказывают эффекта. Деактивация позиционных ключей полезна, если необходимо, чтобы анимация управляла масштабированием и вращением объекта, но не его позицией.
Параметр использования масштабирования и вращения управляет активацией ключей масштабирования и вращения в анимации. Когда параметр отключен, ключи масштабирования и вращения не оказывают эффекта. Отключение параметра позволяет вам контролировать масштабирование и вращение объекта, в то время как его позиция определяется объектом анимации.
netlib.narod.ru | < Назад | Оглавление | Далее > |