×
Меню
Индекс

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".
 
Флаги при экспорте камеры из МАХа.
Значение метода активности анимации, в МАХе, по видимости, не задается.
Т.е. 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)