×
Меню
Индекс

Типы ключей контроллеров

Возможные варианты ключей:
*экспорт через ФФЕ и ТЕС экспортеры.
*Нифтулз также поддерживает все типы ключей, но их следует назначать отдельно на каждый канал!
XZY если указать сразу общей настройкой, может экспортировать, например, в виде Liner а не TBC.
3д МАХ
Нифскоп
Ключи позиций.
LINEAR_KEY
QUADRATIC_KEY
TBC_KEY
LINEAR_KEY
Ключи вращения.
QUADRATIC_KEY
XYZ_ROTATION_KEY +QUADRATIC_KEY (вложенный раздел)
TBC_KEY
LINEAR_KEY
Ключи масштаба.
LINEAR_KEY
QUADRATIC_KEY
TBC_KEY
LINEAR_KEY
 
Влияние настроек ключей на результат в ниф файлах:
Нифтулз
Ключи позиции получили liner, вместо TBC!
 
ФФЕ
Экспортировал все верно.
Нифтулз.
С этой настройкой, Нифтулз сработал корректно.
*ТесЭкспортер под 5.1 мах-ом не проверялся, ибо часты сбои.
 
Примечания о ключах собственно.
Которых существует 3 основных типа.
LINEAR_KEY
самый простой тип перехода, используется часто.
Рисует кривую, без градиента.
 
Используется по умолчанию!
Т.е. в 3д МАХе выставлен POZITION_XYZ контроллер на движение объекта!
Вращение и Масштаб используют (EULER_XYZ и BEZIER SCALE) - которые создают Quadratic ключи.
Но вот движение создает, по умолчанию, LINER...
Что собственно и приводит к кандовости анимаций -_-
 
Из справки к 3д МАХ 5.
The Linear controller interpolates between animation keys by evenly dividing the change from one key value to the next by the amount of time between the keys.
Linear controllers do not display a properties dialog. The only information stored in a linear key are the time and animation values.
Use Linear controllers whenever you want a very regular, even transition from one key to the next. For example, use a Linear controller for:
A color parameter to change from one color to another at a constant rate of change.
Transforms to produce mechanical, robot-like motion.
 
QUADRATIC_KEY
поддерживает несколько команд на кадр, используется во многих контроллерах.
Не только в Кейфрейме.
Плавная кривая.
Позволяет создавать плавную анимацию с градиентами затухания.
 
Из справки к 3д МАХ 5.
The Bezier controller is the most versatile controller available in the program. Bezier controllers interpolate between keys using an adjustable spline curve. They are the default controller for most parameters.
Use Bezier controllers whenever you want fully adjustable interpolation between keys. Bezier is the only controller that supports the following:
Dragging tangent handles
Step tangents for abrupt changes from one key to the next
Constant velocity controls
 
TBC_KEY
похож на QUADRATIC_KEY, но должны быть отличия.
Также рисует плавную кривую.
 
Из справки к 3д МАХ 5.
TCB Controllers produce curve-based animation much like Bezier controllers. However, TCB controllers do not use tangent types or adjustable tangent handles. They use fields to adjust the Tension, Continuity, and Bias of the animation.
 
This controller works well as a Position controller in conjunction with the Motion panel > Trajectories display of an object. With sub-object keys turned on and the Key Info dialog for a key displayed (right-click and select Key Info on the selected key to display Key Info properties), you can change the parameters in the Key Info dialog and see the trajectory path change. This allows for very precise control of an object's trajectory with visual feedback.
The TCB Rotation controller is the default rotation controller for files created in previous releases of the software. Euler XYZ is the new default rotation controller in 3ds max5.
 
XYZ_ROTATION_KEY
используется только для ключей вращения.
 
Содержит вложенные ключи типа QUADRATIC.
Т.е. фактически это только заголовок?
При назначении на движение и масштаб - выдает LINER.
 
CONST_KEY
В нифскопе имеется еще и такой тип ключа.
 
Вероятно это только для старших игр серии, т.е. игнорируйте эту запись при работе с ниф файлам МВ.
 
Откуда и как берется - не изучалось.
Используется ли в дефолтных файлах - не изучалось.
По виду, похож на LINER.
 
В Nif.xml файле прописан как:
"CONST_KEY">Step function. Used for visibility keys in NiBoolData
Т.е. вовсе не для использования в МВ.
Вид кейфреймконтроллера экспортированного из МАХа с настройками по умолчанию.
Обратите внимание на кол-во ключей в Translation!
Вероятно это баг, или что-то в этом роде!
Т.к. в файле всего 2 ключа, но ФФЕ поставил из 101.
Верно и для ТЕС экспортера.
 
При этом, после изменения типа контроллера, в МАХе, с Pozition XYZ на Bezier Position все нормализовалось.
Было создано только 2 ключа.

Примечание по ключам:
МАХ -> НИФСКОП.
Т.е. где и что меняется, а затем получается в дате кейфрейм контроллера.

Для Rotation Type ключей.
Т.е. примечание по ключам вращения.
QUADRATIC_KEY
LINEAR_KEY
TBC_KEY
(вращение)
Для этого типа ключей кривые недоступны!
Но переходы и прочее можно редактировать в свойствах ключа.
TBC_KEY
(Масштаб)
TBC_KEY
(позиция)
the way I think it works is that the NiKeyframeData holds 3 objects, the NiPosData/NiRotData/NiFloatData, for pos/rot/scale
but looking at the gb api, it doesnt seem that those are real types
i added 3 keys time=0, red time=4, green time=8, blue
Пример тестовой модели, от уважаемого Kurpulio, с уровнями кривых в зависимости от типа ключей.
 
Где одинаковые значения дают разный результат в зависимости от типы выбранного ключа.
 
 
@_Notes_for_Modmaking_ver.__(video_only)\Additional_Files\Tours\@How_To\NiKeyframeController\KEYS\ модель и видео.
 
Линейные ключи движения Вивека показанные по средством частиц.
И тип ключей изменен на Квадратик.
Хорошо видно, как изменилась траектория движения Вивека.
 


Важно!
Не рекомендуется совмещать типы ключей в настройках контроллера анимации!
Если в keyFrameData первого контроллера будет указан, в ключах вращения  XYZ_ROTATION (например), у другого же QUADRATIC, это может привести к рассинхрону анимаций между ними!
Т.е. настройки ключей накладывают определенные отличия в траекториях движений объектов!
Т.е. можно использовать в приделах одной кейфреймдаты разные типы ключей, но если есть различаются кейфреймдаты нескольких кейфрейм контроллеров - это может привести к нарушению движения объектов.
 
В теории, можно менять типы ключей в Нифскопе, превращая XYZ_ROTATION_KEY в QUADRATIC_KEY, однако, по видимости игра не всегда соглашается со внесенными изменениями.
Т.е. в некоторых случаях должен быть использован определенный типа ключа, если это изменить, игра улетит в краш.
Впрочем, могли быть банальные ошибки при изменении типа ключа.
Т.е. требуется не только изменить тип оного, но и поправить значения в самих ключах. Во всех (С).
 
Так, или иначе, объекты анимированные с использованием разных типов ключей в 3д МАХ, будет отличаться по поведению в игре.
Т.е. если создать анимацию, затем сделать клон объекта и поменять типа ключа (через Assign Controller 3д МАХа)  - в игре объекты будут двигаться слегка отлично.
 
Однако, не все контроллеры поддерживают смену типа ключей в МАХе.
Поэтому не следует бежать менять тип ключей в нифскопе, из-за одной возможности поменять это сделать.
(впрочем ничто не мешает это сделать, при желании)
Но при возможности, следует проверять какой тип ключа назначен для объекта в 3д МАХ.
В основном это касается объектов использующих анимации перемещения\вращения, т.е. KeyFrame контроллер.
Во всех остальных случаях, следует менять тип ключа с осторожностью, т.к. игра может отказаться это переваривать, а модули экспорта экспортировать.
 
При добавлении контроллера в нифскопе с нуля, всегда следует проверять какие значения типа ключей установлены в уже существующих контроллерах этого типа.

Linear interpolation is just a straight line between two points.
Quadratic interpolation is a smooth curve based on control point tangents.
TBC is a smooth curve generated based on tension/bias/continuity parameters instead of abstract math.
XYZ is just for rotations and is pretty much the same thing just separate for the 3 axes IIRC