×
Меню
Индекс

Kf подробнее

Об организации КФ файла.
 
NiSequenceStreamHelper - это аналог Root Node (корневой ноды) ниф и Хниф файлов.
Т.е. NiSequenceStreamHelper всегда первый объект в сцене КФ файла.
 
NiSequenceStreamHelper содержит ссылки на:
NiTextKeyExtraData и NiKeyframeController.
NiTextKeyExtraData содержит ссылку на NiStringExtraData.
 
Т.е. Кф файл содержит только 3 объекта фиксированного типа.
В которых сохраняются:
- имена объектов которые надо анимировать.
- контроллеры анимации, только кейфрейм типа, для перечисленных объектов.
- текстовые команды на вызов групп анимаций.
Ничего другого сюда не может быть помещено.
 
NiKeyframeController обычный контроллер анимации.
Но, здесь в КФ файле, в разделе Target указан корень КФ файла, в данном случае это NiSequenceStreamHelper.
А не имя объекта, как это можно видеть при использовании Кейфрейма в Ниф файлах!
Либо, в слоте Target может быть вовсе пусто, т.е. Target = none.
Это зависит от модуля экспорта.
Если ТЕСэкспортер, или Нифтулз, то в Target будет указана нулевая нода, т.е. NiSequenceStreamHelper.
Если ФФЕ - слот Target будет пустым.
Для МВ, похоже, без разницы. Работают оба варианта, с указанием имени и без оного.
 
NiTextKeyExtraData - все просто, список текстовых ключей с названиями анимационных групп.
Ключ, время, название группы.
Список допустимых анимаций см. здесь.
 
NiStringExtraData содержит список костей задействованных в анимациях...
Т.е. NiStringExtraData это список целей для контроллеров.
Работает в порядке построения.
Первый в списке Keyframe работает для первого в списке NiStringExtraData объекта и так далее.
Подтверждено!
Уважаемый Olol подтвердил эти данные.
 
В версиях КФ файла 4.2 это было приведено в более удобный и логичный вид.
Появился дополнительный раздел "controlled blocks".
Где и указаны все связи.
Увы, в МВ это не работает.
4.0 версия Кф файла.
4.2 версия.
 
Некоторые сообщения об ошибках с анимациями, корни которых кроются в Кф файле, см. здесь.

ВАЖНО!
 
Если создается объект только с использованием морфинга, но использующий текстовые записи об анимациях, это может привести к серьезным ошибкам. К вылету игры и редактора.
КФ файл будет содержать только textextradata, что и приведет к ошибкам.
 
Т.е. КФ файл, должен ОБЯЗАТЕЛЬНО иметь хотя бы один NiKeyframeController с одним, или более ключами.
Если в контроллере нет ключей, или они не полны, это также приведет к вылету игры!
 
Чтобы избежать такой оказии, необходимо создать объект типа BONE (в сцене 3д МАХ) и установить хотя бы один ключ.
Можно в начале анимации.
Но можно и несколько; в начале, в середине и в конце.
При этом, не обязательно что-то делать с объектом.
 
Тоже верно и при создании КФ файла с нуля через нифскоп.
Необходимо добавить кейфреймконтроллер и установить в нем ключи.
Достаточно одного, двух.

ВАЖНО!
Особенно для существ.
 
- Набор костей, или точнее, анимированных объектов, должен быть одинаков для KF и NIF файлов!
Т.е. если в КФ файле есть объект указанный в NiStringExtraData, но отсутствующий в Ниф файле, возникнут ошибки.
Обычно такие:
Creature "XXXX" Has no animation groups Morrowind will crash.
 
Либо, что редко, но бывает - у существа вовсе нет КФ файла.
Такое случается при попытке подключить "ящик" вместо сундука мимика, или по какой иной причине. )))
 
В ниф и Хниф файлах могут быть объекты не указанные в КФ файле, но в них должно быть все, что указано в КФ!
Ниф файл некоторого существа.
Как видно, набор костей довольно мал.
А это КФ файл, того же существа.
Кол-во костей в разы больше!
 
Т.е. из КФ шло куда больше вызовов, чем имелось целей в Ниф файле.
 
Логично, что модель не могла работать корректно.
Требуется одинаковый набор костей в НИФ, КФ и Хниф файлах!
 

ВАЖНО!
В Kf файле обязательно должен быть хотя бы один фактический ключ анимации.
Т.е. строка NiKeyframeController->NiKeyframeData->Num Keys с активными ключами!
Если в  KF - есть только текстовые записи (т.е. только строка NiTextKeyExtraData), ТЕС КС будет генерить краш!
*Такое может случиться, если создать Note Track, но не установить ключей анимации хотя бы одному объекту в сцене на Time Line.
 
Пример подобного сбойного файла.
 
И такой файл, также будет создавать проблемы!
Здесь есть контроллер, но он не имеет активных ключей.

Важно!
Имена костей в Ниф, Хниф и Кф файлах должны совпадать!
Иногда в результате неправильной очистки Ниф, или Хниф файла теряется какая-нибудь «ненужная» кость, которая, однако, была упомянута в Кфе.
Это, приведет игру к разного рода ошибкам анимации, или крашу игры без каких либо "уточнений".
 
Примечание.
Редактирование в нифскопе 1.1.3 версии, требует особого внимания и определенной последовательности действий!
Иначе, можно "убить ключ" анимации.
См. тему NiTextKeyExtraData.
 
Примечание.
Кф версии 4.2 не могут работать в МВ, а также быть импортированы в 3д МАХ посредством Нифтулз модуля.
Замена Хидера для этих файлов, не имеет смысла.
 
Примечание.
НПС (и игрок) могут использовать КФ файлы существ, в случае если те имеют подходящий набор костей.
Т.е. используя кнопку Add Animation в редакторе, можно подключить анимацию скампа, или Альмалексии для Игрока.
При этом, если в таких файлах нет некоторых групп (например кулачного боя, или плавания) они будут автоматически подгружены из файлов базовой анимации.
Что позволяет создать особливо "продвинутых" НПС... например; которые думают, что они скамп(С).
 
Примечание.
КФ файл, требуется для создания продвинутой анимации существам, активаторам, дверям, контейнерам и светильникам.
Все прочие типы объектов, не могут использовать продвинутые анимации, т.е. использовать Кф файл (ванильными средствами).
 
Примечание (верно для ТесЭкспортера и Нифтулза).
В КФ файл пишется только анимация костей (объектов типа Bones, либо иных примитивов которые были использованы в качестве костей при создании  Skinа) и создаются текстовые ключи с названиями групп.
 
Примечание (для ФФЕ модуля по экспорту существ и прочего, что требует КФ файлы).
См. здесь.
 
Примечание.
Кф файл не возможно редактировать в целях исправления позиций костей и сему подобного.
*теоретически конечно можно, но вот делать это придется в слепую, в прямом смысле...
Но,  править записи о группах анимаций, добавляя, изменяя и меняя порядок - легко!
 
Примечание.
Также этот файл блокирует, находящимися здесь контроллерами анимации, позиции костей во всех прочих файлах. Xnif и Nif.
Т.е. изменение их позиций из тех файлах становится невозможным!
Игра всегда будет помещать их в значение заданное контроллером из КФ файла.
Т.е. если некий объект в Хниф файле, был перемещен, то все его изменения будут переписаны в исходное, если запись об объекте есть в КФ файле.
Если же передвинуть родительский объект, который не указан в Кф файле, то это приведет к разного рода глюкам. Этого не стоит делать!
Если же в Хниф файле, у объекта есть свой Кейфрейм, а также есть вызов из Кф файла - это приведет к глюкам, кроме случая если оба контроллера одинаковы.
Примечание.
В ОпМВ выше 0.45ой версии была добавлена поддержка КФ и Хниф файлов для одежды и брони.
Возможно и для других объектов.
Что открывает богатый простор для моддинга и решает ряд проблем с анимациями оружия.
Также, ОпМВ поддерживает удобное добавление дополнительных костей.
Т.е. для добавления новых костей (например для использования плаща) не обязательно править файлы базовой анимации.
Достаточно создать новый скелет с этими костями и положить его в специальную папку.
Для МВ, придется править, как базовый скелет (base_anim.nif), так и прописывать анимации в этот (xbase_anim.kf) КФ файл.
 
Итого.
–     КФ. Только анимация "костей" и записи о группах оной.
Еще, возможно добавление, или исправление записей об анимационных группах.
Например, заменить:
Idle: Start
На;
Idle2: Start
Или тому подобное.

Выделен блок текстовых ключей.
Рендер пустой, т.к. Здесь нечему отображаться.
 
Всегда после завершения редактирования текстовых записей в нифскопе 1.1.3 версии следует жать Enter!
Нельзя просто кликнуть мышью (что делается обычно) на пустом месте и перейти к следующему ключу.
Впрочем, даже нажатие Enter не всегда гарантирует правильность сохранения изменений!
 
  - fixed \r \n issue.  (Embedded carriage returns can be added using the Shift+Enter or Alt+Enter keys.)
т.е. в версии 1.1.3 и выше убрали отображение кодов r\n.
Что было в ранних версиях.
 
Однако, это стало приводить, к тому, что в некоторых случаях, Нифскоп, забывает правильно поставить эти скрытые знаки, а игра принимает их за название группы анимации!
Старая версия нифскопа.
Не вызывает бага с редактированием записей, однако, не так удобна в работе.
Между записями, требуется добавлять \r\n.