Создается автоматически при экспорте анимации из 3д МАХ.
Содержат данные о:
- кол-ве ключей.
- типе оных.
- времени и значении "события".
The NiKeyframeData class provides a shareable wrapper for position, rotation and scale animation data.
Добавление в Нифскопе:
— Да. В некоторой степени.
Создание в 3д МАХ.
Автоматически для NiKeyframeController
Надо отметить, что нифскоп несколько неудобно группирует разделы ключей.
Т.е. Rotation не должны были бы находится в корне раздела, как бы в положении общего значения.
Поворот, смещение, размер.
Num Rotation Keys
|
кол-во ключей вращения.
Это и раздел настроек и собственно сами настройки.
|
Rotation Type
|
тип вращения.
Задает тип ключа отвечающего за вращение.
В зависимости от типа, меняются и возможные значения.
Если был выбран один из этих режимов:
LINEAR_KEY
QUADRATIC_KEY
TBC_KEY
CONST_KEY
Будет активен раздел: Quaternion Keys
в котором:
Quaternion Keys со значением времени и значения события. Кол-во ключей определяется параметром выше Num Rotation Keys.
Если:
XYZ_ROTATION_KEY
то активируется раздел XYZ_ROTATION_KEY.
В котором дополнительно указывается кол-во ключей и тип оных.
LINEAR_KEY
QUADRATIC_KEY
TBC_KEY
CONST_KEY
|
Quaternion Keys
|
Если активен этот тип ключей.
Можно поменять время, значение смещения и пр.
|
Time
|
время события.
|
Value
|
значения события.
Здесь, это поворот в градусах.
|
TBC
|
активно если выбран режим ключей TBC.
TBC улучшенный метод анимации, в теории, дающий большую плавность переходов между ключами.
|
XYZ Rotations
|
Активно если выбран этот режим ключей.
|
XYZ Rotations
Keys
Time
Value
|
|
|
|
Translations
|
Translations
|
ключи отвечающие за смещение объекта.
|
Interpolation
|
см. выше в Rotation Type.
Т.е. здесь указывается тип используемых ключей аналогично выше описанному.
|
Num Keys
|
кол-во ключей для каждой группы.
Все тоже самое что и выше.
Можно поменять тип QUADRATIC_KEY или пр. в зависимости от этого меняются доступные значения ниже.
Forward и Backward доступны только в QUADRATIC режиме ключей, отвечают за более плавную анимацию.
Тоже самое и ТВС - активируется если выбран этот режим работы ключей.
|
Keys
|
См. выше.
Только здесь уже, указывается значение смещения объекта.
|
Scales
|
Scales
|
ключи изменения размер объекта.
Аналогично выше отмеченному.
Только для изменения масштаба объекта.
|
Примечание.
Хотя типы ключей можно менять, делать этого не рекомендуется.
Т.к. придется менять и сами значения ключей, которые могли принять, после изменения типа, неправильные значения.
При изменении, уже установленного типа, изменятся и значения в ключах.
Что может привести к полной потери установленных в них данных.
Примечание.
Ключи могут быть только в одной группе.
Rotation, Translations или Scales.
Т.е. не обязательно использовать сразу все три.
Минимальное кол-во 1 ключ в 0.000 значении времени.
Значения ключа, также могут быть равны нулю.
Кроме ключей типа Scale здесь всегда; 1.0000, если не требуется скрыть объект, конечно.
Примечание.
Обращайте внимание, что время завершения анимации должно быть равным во всех ключах!
position, rotation, scale.
Т.е. если в Scales время последнего ключа будет (к примеру) 0.0333 а в Translations ключах 0.1000, это может привести к ошибкам.
Важно!
Ключи позиций XYZ должны быть в каждом ключе Translations и Rotation Keys.
Иначе игра будет вылетать на рабочий стол!
Такое также будет случаться, если в МАХе, сделать значение ключа только одного типа.
Например - если вы удалили XY значение ключей, за «ненадобностью» и оставили только Z значение.
Важно!
Игра также вылетит, если создать в нифскопе пустой NiKeyframeController, без NiKeyframeData, или с пустыми ключами здесь.
|
|
Дата - с правильно прописанными ключами во всех разделах.
|
Пустая дата контроллера - выбросит Игру, или редактор на рабочий стол.
|
Выдержка из оригинальной справки. NDL Gamebryo 1.1
Animation Keys
The data that the controllers use to control their targets are contained in keys, most of which are derived from the NiAnimationKey class. Most time controllers will reference a series of keys, each of which contains a time and some value associated with that time, although a time controller is not required to use keys. For example, an NiPosKey, which indicates position in 3-space, contains a time value and an NiPoint3. A controller that modifies position, such as an NiPathController or NiKeyframeController, will have access to a series of NiPosKeys. When Update is called, the controller will modify the time value based on frequency, phase, CycleType, and AnimType, and use that value with its keys to interpolate the keys' associated values. Note that the method of interpolation depends on the key type and the controller type. The interpolated value will then be applied to the controller's target in whatever manner that controller is designed to manipulate.