Об организации КФ файла.
NiSequenceStreamHelper - это аналог Root Node (корневой ноды) ниф и Хниф файлов.
Т.е. NiSequenceStreamHelper всегда первый объект в сцене КФ файла.
NiSequenceStreamHelper содержит ссылки на:
NiTextKeyExtraData и NiKeyframeController.
NiTextKeyExtraData содержит ссылку на NiStringExtraData.
Т.е. Кф файл содержит только 3 объекта фиксированного типа.
В которых сохраняются:
- имена объектов которые надо анимировать.
- контроллеры анимации, только кейфрейм типа, для перечисленных объектов.
- текстовые команды на вызов групп анимаций.
Ничего другого сюда не может быть помещено.
Но, здесь в КФ файле, в разделе Target указан корень КФ файла, в данном случае это NiSequenceStreamHelper.
А не имя объекта, как это можно видеть при использовании Кейфрейма в Ниф файлах!
Либо, в слоте Target может быть вовсе пусто, т.е. Target = none.
Это зависит от модуля экспорта.
Если ТЕСэкспортер, или Нифтулз, то в Target будет указана нулевая нода, т.е. NiSequenceStreamHelper.
Если ФФЕ - слот Target будет пустым.
Для МВ, похоже, без разницы. Работают оба варианта, с указанием имени и без оного.
Ключ, время, название группы.
Список допустимых анимаций см. здесь.
Т.е. 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 версии, требует особого внимания и определенной последовательности действий!
Иначе, можно "убить ключ" анимации.
Примечание.
Кф версии 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.
|