|
NiLookAtController настройки
![]() |
![]() |
![]() |
|
если FLOAT time
|
Start time 0.0000,
и Stop 0.0000
|
Настройки.
Обновление данных на 2022!
Next Controller
|
Обычный слот для следующего контроллера в списке.
|
Flags
|
И как оказалось, флаг важен!
Т.е. кодирует не только метода анимации (loop, cycle, pingPong) но и вектор по которому будет смотреть объект! XYZ +flipped (инверсия)
Т.е. можно управлять поворотом "взгляда" основного объекта относительно цели.
Ранее считалось, что флаг не важен и объект может смотреть только по оси Z.
Но более внимательное изучение моделей уважаемым Greatness7, показало, что это не совсем так.
Список флагов, см внизу этой страницы.
Флаг можно получать при экспорте их МАХа, так и устанавливать в нифскопе.
|
Frequency
|
не влияет.
Т.е. с какой скоростью объект будет работать определяется скоростью анимации той цели, на которую он смотрит.
Можно оставить в 0.0000
|
Start Time
|
0.000
Либо прописать <float_max> но это будет работать только если в файле есть еще один контроллер анимации в которому указано время.
|
Stop Time
|
0.000
Либо прописать <float_min> но это будет работать только если в файле есть еще один контроллер анимации в которому указано время.
Т.е. время активности контроллера можно (всегда) оставлять в нулях, т.е. оное берется от состояния цели.
А если используется МВСЕ, то и вовсе, от активности игрока, когда он будет воздействовать на целевой объект.
|
Target
|
объект на котором находится контроллер.
Т.е. на который воздействует ЛукАт.
Controller target (object index of the first controllable ancestor of this object).
|
Look At Node
|
А вот здесь, указывается цель на которую и будет смотреть анимируемый объект.
Собственно цель с которой и получается анимация.
Принимаются, как шейпы так и ноды.
Но если нифскоп выдал ошибку при сохранении, следует сменить целевой объект!
Указав в нем ноду, а не шейп.
Link to the node to look at.
|
- Нет раздела DATA. Т.е. не требуется добавлять что-то еще.
- при копировании цепочек контроллеров между ниф файлами, слот Target и Look At node могут остаться пустыми!
Всегда проверяйте эти слоты после копирования.
- Значения времени можно указывать <FLOAT_MIN> <FLOAT_MAX> *и наоборот* см. в общих свойствах.
Однако для правильной работы, это требует наличия заданного времени у контроллера на базовом объекте.
Впрочем, как правило оно там имеется.
Исключение!
Если используется МВСЕ - <FLOAT_MIN> <FLOAT_MAX> можно указывать даже без наличия в файле иных контроллеров с заданным временем.
Если используется МВСЕ - <FLOAT_MIN> <FLOAT_MAX> можно указывать даже без наличия в файле иных контроллеров с заданным временем.
См. здесь.
При экспорте камеры из МАХа, время, всегда устанавливается как "float".
Флаги при экспорте камеры из МАХа.
Значение метода активности анимации, в МАХе, по видимости, не задается.
Т.е. cycle, clamp, pingPong не задается. Во всех случаях, сохраняется Clamp режим.
Поскольку контроллер и не должен "проявлять активность" сам по себе.
флаг
|
ось
|
flip
|
12
|
х
|
нет
|
28
|
х
|
да
|
44
|
y
|
нет
|
60
|
y
|
да
|
76
|
z
|
нет
|
92
|
z
|
да
|
Однако в Нифскопе можно менять флаги в больших диапазонах и это будет оказывать влияние!
Что может оказать важным при работе с МВСЕ, да и в некоторых других случаях.
флаг
|
ось
|
flip
|
активно
|
тип
|
0
|
х
|
нет
|
нет
|
cycle
|
8
|
х
|
нет
|
да
|
cycle
|
10
|
х
|
нет
|
да
|
reverse
|
12
|
х
|
нет
|
да
|
clamp
|
24
|
х
|
да
|
да
|
cycle
|
26
|
х
|
да
|
да
|
reverse
|
28
|
х
|
да
|
да
|
clamp
|
40
|
y
|
нет
|
да
|
cycle
|
42
|
y
|
нет
|
да
|
reverse
|
44
|
y
|
нет
|
да
|
clamp
|
56
|
y
|
да
|
да
|
cycle
|
58
|
y
|
да
|
да
|
reverse
|
60
|
y
|
да
|
да
|
clamp
|
72
|
z
|
нет
|
да
|
cycle
|
74
|
z
|
нет
|
да
|
reverse
|
76
|
z
|
нет
|
да
|
clamp
|
88
|
z
|
да
|
да
|
cycle
|
90
|
z
|
да
|
да
|
reverse
|
92
|
z
|
да
|
да
|
clamp
|
-8 к значению флага даст "не активно".

Далее был проверен "рандомно" взятый набор флагов.
(проверялось на оркской латной юбке одетой на игрока)
(юбка "смотрит" на колено игрока, что в теории должно было давать подъем оной вместе с ногой)
В целом было отмечено, что возможен некий диапазон флагов, в приделах которого сохраняется то, или иное поведение объекта.
Но после достижения некоего порогового значения, поведения объекта меняется.
Что собственно видно по таблице выше.
Некоторые примеры тестированных флагов:
18 - 20 - 22 - да9 да11 нет25 да13
да.26 да27 да28 да29 да30 да31 да33 нет34 нет35 нет36 нет37 38 39 нет
Из наиболее заметного были флаги 104, 120, 232 и 248 - приводившие к сплющиванию объекта.
Скорее это баг, чем "фича".
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Однозначно правильного результата получить не удалось.
Вероятно по причине воздействия ключей масштаба идущих от базового скелета.
Или по иным причинам.
Возможно, МВСЕ сможет решить и эту проблему.
Выдержка из оригинальной справки. (NDL Gamebryo 1.1)
The NiLookAtController will allow us to automate the camera tracking. To do this, all we have to do is allocate a new NiLookAtController, set the object we wish to look at, the one that is to be controlled, and finally set the axis for which the camera is to look down (and the direction on that axis).
NiLookAtController fails when looking directly down the negative z-axis. This is a math logic error that will be fixed in the future.
(и это Gamebryo 1.1! а у нас NetImmerse 4.0)