netlib.narod.ru< Назад | Оглавление | Далее >

Direct3DRMAnimation: интерфейс анимации

В Direct3D термин анимация (animation) имеет два значения. Анимацией называется перемещение объектов в сцене, кроме того, анимация — это еще и название интерфейса, который поддерживает создание и воспроизведение анимации по ключевым кадрам.

Создание ключей

Интерфейс Direct3DRMAnimation позволяет конструировать анимационные последовательности на основе ключей (keys). Каждый ключ представляет собой коэффициенты перемещения, вращения или масштабирования, применяемые к объекту в заданной точке анимации. Затем интерфейс анимации может выполнить анимацию целиком, основываясь на нескольких ключах и автоматически вычисляя параметры объекта между ключевыми кадрами.

Для создания ключевых кадров в интерфейсе анимации применяются следующие функции:

Каждая функция добавления ключа требует указания времени и преобразования. Время определяет момент анимации, в который ключ окажет действие. Преобразование — это позиционирование, поворот или масштабирование, которое должно произойти в ключевом кадре. Общая длина анимации определяется ключом с самым большим значением времени. Для удаления ключей из анимации применяется функция DeleteKey().

Установка времени в анимации

Для установки текущей позиции в созданной анимации применяется функция SetTime(). Передаваемые функции SetTime() значения зависят от значений, применявшихся при зоздании ключевых кадров.

Значения времени представляются числами с плавающей запятой, так что ключи могут быть установлены в любом месте анимации, даже если общая длина анимации равна 1. Это также позволяет воспроизводить анимацию в замедленном или ускоренном темпе, передавая малые или большие приращения функции SetTime().

Поскольку функции SetTime() могут передаваться любые значения, анимация может быть остановлена, запущена снова, ускорена, замедлена или даже воспроизведена в обратном порядке.

Параметры анимации

Функции GetOptions() и SetOptions() применяются, чтобы определить поведение анимированных объектов. С их помощью можно задать следующие параметры:

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

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

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

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


netlib.narod.ru< Назад | Оглавление | Далее >

Сайт управляется системой uCoz