Как открыть nif файл в blender

Обновлено: 07.07.2024


После бессчетных часов, проведенных в попытках научиться создавать новую анимацию для Morrowind, я решил создать обучающее руководство. Благодаря Amorilia и другим разработчикам NifSkope и Blender Nif Script, файлы можно экспортировать из Blender в Morrowind.

Что мне понадобится?

Открытие файлов Blender

Теперь вы должны решить, будете ли вы делать анимацию для звероподобных (хаджиты, аргониане) или гуманоидных NPC.

Если вы хотите выполнить настройки анимации для зверя, откройте файл «AnimationBeast.blend».
Для не-зверя, откройте файл «AnimationBase.blend».
В обоих случаях порядок действий тот же. Я покажу на примере не-зверя.
Вот то, что вы должны увидеть.

Мы имеем скелет NPC, вид спереди, сбоку и сверху.
Поза, которую вы видите, называется «Idle» — начальная и конечная поза всех действий NPC, а также переходная поза между разными анимациями.
Анимация, которую вы создаете, должна также начинаться и заканчиваться этой позой, чтобы обеспечить неразрывность между стандартными позами Морроувинда и вашей новой позой.
Все кости уже выбраны и теперь необходимо сохранить положение для всех костей.
Нажмите «I» (Клавиша вставка) на клавиатуре и затем левой кнопкой нажмите на «LocRot», для «Location and Rotation» (Перемещения и вращения). Это создаст Ключевой Кадр (KeyFrame) в кадре 1. Все кости теперь будут выделены.

Создание поз

Теперь, когда у нас есть начальная поза, мы должны создать все позы, которые хотим видеть в нашей анимации. К примеру, мы хотим создать аплодирующего зрителя.
Сначала нужно изменить текущий кадр (Current Frame) на более поздний. Это делается в верхней правой части экрана.
Это можно сделать, наведя на него мышку и используя стрелки на клавиатуре (вправо-влево – изменить 1 кадр; вверх-вниз – изменить 10 кадров).
Можно также просто ввести нужный вам кадр: нажмите на него левой кнопкой мыши и введите новое значение.
Помните: 15 кадров = 1 секунда анимации.
Если вы не видите все кнопки окна, щелкните средней кнопкой мыши (колесиком) по строке с кнопками и перемещайте мышку вправо-влево.

Выставим счетчик кадров в значение 10.
Теперь нужно изменить положение нашего NPC.
Щелкните правой кнопкой мыши по кости, которую вы хотите переместить, а затем нажмите R и вращайте кость. Когда вы добьетесь желаемого положения, щелкните левой кнопкой, чтобы подтвердить, или нажмите ESC для отмены действия.
Если вы хотите вернуться и отменить только что выполненное действие в Blender, нажмите CTRL + Z.
Чтобы удалить ключевой кадр, наведите мышку на этот кадр, выберите все кости, анимацию которых вы хотите удалить для этого кадра, нажмите Pose -> Delete KeyFrame -> Available.

Вы заметите, что вы можете выполнить это для каждого из 3 окон (вид спереди, сбоку и сверху), но для каждого вида кость будет вращаться относительно оси этого окна. Мы будем вращать кость так, как нам нужно. На этом рисунке я выполнил вращение плеча и предплечья.

Теперь поза мне нравится и я решаю создать ключевой кадр. Нужно выбрать все кости. Нажатием клавиши A отменяем выбор всех костей, если были выбраны одна или более костей, или выбираем все кости, если ни одна не была выбрана.
Я выбираю все кости (нажав A) и затем ввожу ключевой кадр (нажав I и выбрав LocRot).
Теперь мы имеем ключевой кадр в кадре 10.
Теперь мы снова увеличиваем значение счетчика кадров, скажем до 13. И теперь перемещаем руки так, чтобы они соприкоснулись.
Стоит также переместить и ключицу. Делать это нужно в окне вида сверху.

Выберите все кости и введите ключевой кадр.
Можно также вращать вид до разных значений, используя среднюю кнопку мыши (колесико) используя цифровые клавиши 2, 4, 6, 8 на клавиатуре. Чтобы восстановить вид, нажмите View->Front/Side/Top.
Теперь нужно переместить скелет для создания следующей позы, которая будет выглядеть почти как предыдущая.
Для экономии времени можно использовать положение, сохраненную в другом ключевом кадре.
Нужно переместить счетчик кадров в значение предыдущего ключевого кадра. Можно просто переместить текущий кадр (как показано ниже) или использовать двойные стрелки рядом с кнопкой Play.

Таким образом, вы выставите счетчик кадров в следующее/предыдущее сохраненное значение ключевого кадра. Когда мы снова окажемся в кадре 10, мы можем скопировать положение этого кадра. Выберите кости, положение которых вы хотите скопировать
(обычно, все кости, поэтому выберите все, нажав «A»). Затем щелкните на положение и выберите «Copy Current Pose» (Скопировать текущую положение).

Теперь перейдите к следующему кадру, куда вы хотите скопировать эту положение. Скажем, кадр 16. Теперь используйте положение и «Past Pose» (Предыдущую положение).

Выберите все кости (A) и введите ключевой кадр (I).
Используя показанные ниже кнопки, переместите текущий кадр в первый/последний кадр.

Кнопка Play (которая при нажатии становится кнопкой Pause) дает возможность предварительного просмотра анимации, которую мы создаем.
Продолжайте создавать любые новые позы, которые вы хотите. Сохраняйтесь чаще, Blender может дать сбой! Нажимая File -> SaveAs в первый раз (не сохраняете в файл AnimationBase.blend file, который я предоставил) и File -> Save, все последующие разы.
Если вам нужно переместить весь скелет (например, для создания анимации сидения или стояния), нужно выбрать все кости (или главную кость, Bip01 Pelvis — кость таза, откуда начинаются все другие кости). Вы можете вращать (с помощью R) весь скелет, или перемещать его нажатием G (Grasp) на клавиатуре и перемещая мышку.

Конечно, если вы перемещаете весь скелет для создания анимации сидения/стояния, после того, как вы переместили/повернули скелет, вам также нужно переместить ноги, чтобы обеспечить правильный контакт с основанием.


Конечная поза и конечный кадр
В файле AnimationBase.blend, который я предоставил, конечный кадр имеет значение 150, (150 кадров = 10 секунд), но в процессе создания анимации его нужно изменить. Если ваша анимация включает более 150 кадров, конечный кадр нужно изменить. Значение конечно кадра не должно быть меньше, чем значение последнего ключевого кадра вашей анимации. В качестве позы последнего ключевого кадра необходимо использовать положение Idle, сохраненную в первом кадре.

Сохранение в буфер анимации


Когда анимация завершена, нужно ее сохранить в буфер анимации.
В файле AnimationBase.blend, который я предоставил, буфер анимации находится в верхней правой части экрана, под счетчиком кадров.
Можете вписать ее как текстовик. Итак, вы можете скопировать, вставить, вырезать и.т.д. Можете также сохранить буфер анимации в текстовом редакторе, скопировав и вставив его.
Буфер анимации позволит игровому движку Morrowind считать его, когда созданная вами анимация будет включена в игру.

Действия в системе анимации Morrowind называются группами анимации.
Каждое действие (группа анимации) имеет имя по умолчанию: например, Idle, Death1,
WalkForward, RunForward, Hit1, WeaponOneHand, Jump и т.д. Более подробную информацию о группах анимации можно узнать из файла Morrowind Animation Groups.pdf, который я предоставил.
Эти имена невозможно изменить и мы можем создавать новые анимации, присваивая им имена уже существующих действий. Таким образом, наше действие заменит исходное под тем же именем. Мы можем изменять позы Idle — действия NPC, когда они не заняты другой анимацией (не ходят, не сражаются и.т.д.).
Существует 9 поз idle, которые называются Idle, Idle2, Idle3, Idle4, Idle5, Idle6, Idl7, Idle8, Idle9.
Поза Idle, как вы видите ниже — это базовая поза, используемая как переходная между несколькими позами Idle, а также и поза NPC, когда он появляется в Construction Set.
Другие позы idle, как они описаны в учебнике Morrowind Scripting for Dummies, стр. 77
Idle2: Shifting weight from one leg to the other (Перенос тяжести тела с одной ноги на другую)
Idle3: Looking behind (Смотреть назад)
Idle4: Scratching head, shake head (Почесывание головы, качание головой)
Idle5: Shifting clothing or armor on shoulder (Положить одежду или доспехи на плечо)
Idle6: Yawning and stretching (Зевание и потягивание)
Idle7: Looking at fingers and looking around furtively (Смотреть на пальцы и украдкой оглядываться по сторонам)
Idle8: Putting hand to chest, as if having heartburn (Приложить руку к груди, как при изжоге)
Idle9: Reaching for weapon, then touching head (Потянуться за оружием, затем прикоснуться к голове)
В Construction Set вы можете установить шанс для каждой из этих поз. Обычно для большинства Nps устанавливается шанс «0» для поз с Idle6 по Idle9, и, как правило, эти позы Idle используются для анимации с помощью модификаторов, для того, чтобы для NPC сохранялись анимации по умолчанию, а также для новых, создаваемых нами анимаций.
В нашем примере анимации я использовал положение Idle7.
1/Idle7: Start 250/Idle7: Stop
Первая цифра – это начальный кадр моей анимации, затем, имя группы анимации, далее фаза группы анимации (как привило, каждая группа анимация имеет 2 фазы, Start и Stop, но некоторые группы анимации имеют и другие фазы. Для более подробной информации нажмите на ссылку ниже).
If we have made multiple actions in our blender file, we can write an animation buffer that includes them.
Буфер анимации

Предположим, мы сделали NPC, который аплодирует с кадра 1 по кадр 250 и кричит с кадра 251 по кадр 350. А теперь я хочу, чтобы эти две анимации проигрывались беспорядочно, и я могу установить для них различные Idle позы. Первая будет Idle7, вторая Idle8.
1/Idle7: Start 250/Idle7: Stop 251/Idle8: Start 350/Idle8: Stop
Звук
Возможно, мы хотим, чтобы NPC издавал звук, выполняя действие. Например, звук «хлопка» когда он аплодирует, и крик во время второго действия.
Сначала нужно найти эти звуки, и они должны быть в формате wav, и создать новые звуки в Construction set. Назовем их, например, ClapClap and Scream01
Затем, добавляем команду
Sound: SoundName (Звук: имя звука),
куда угодно в буфер анимации. Следовательно, прежде, чем добавить команду, нам нужно сохранить кадр, в котором начнется звук, в соответствии с анимацией этого кадра. Тогда, наш буфер анимации будет выглядеть, например, так:
1/Idle7: Start 15/Sound: ClapClap 95/Sound: ClapClap 135/Sound: ClapClap 215/Sound: ClapClap 250/Idle7: Stop 251/Idle8: Start 257/Sound: Scream01 305/Sound: Scream01 350/Idle8: Stop

Экспортирование файлов

Когда анимация завершена, мы должны ее экспортировать в формат, который Morrowind сможет распознать и использовать.
Сначала в счетчике кадров нужно выставить значение первого кадра, куда мы сохранили положение «Idle».
Затем, перейти к слою, где находятся все элементы анимации NPC.
(Blender может использовать несколько слоев. Каждый элемент NPC, кости, рамка и т.д.) может быть виден на одном или более слоях. Я сделал их видимыми на первом слое, то, что вам необходимо видеть, чтобы создать анимацию. На слое 6 видна вся модель.
Вы можете перейти к слою 6, нажав кнопку, которую вы видите на рисунке ниже, или просто нажав клавишу «6» на клавиатуре.
Если вы хотите вернуться и просмотреть файл без всех остальных элементов, стрелок и т.д., просто нажмите кнопку первого слоя или клавишу «1» на клавиатуре.

Нажмите эту кнопку, чтобы перейти к уровню 6 и просмотреть все элементы файла NPC.
Теперь мы должны переключиться с «Pose Mode» (Режим поз) на «Object Mode» (Режим объекта. Pose Mode в Blender – это режим, в котором мы работаем над анимацией, перемещая кости. Теперь нужно перейти к Object Mode, в котором мы сможет работать с моделью в целом.

Два раза нажмите «A» и выберите все (убедитесь, что также выбрана рамка вокруг модели)
Затем, пройдите по: File -> Export -> NetImmerse/Gamebryo
Присвойте файлу любое имя, например, Spectator, и нажмите кнопку Export Nif/Kf. Теперь вам, возможно, понадобится изменить размер окна, чтобы видеть все кнопки. Переместите мышку на границу между двумя окнами. Вы увидите строку с 2-мя стрелками на конце. Щелкните левой кнопкой мыши и перемещайте мышь, чтобы увеличить/уменьшить размер окна.

В следующем окне нажмите Morrowind и Export nif + xnif + kf, и нажмите OK.

Вы экспортируете 3 файла:
Spectator.Nif
xSpectator.Nif
xSpectator.Kf

Все три нам нужны.

Использование анимации в игре

Теперь у нас есть все три нужных нам файла, скопируйте их в Morrowind/DataFiles/Meshes (Morrowind/Файлы данных/Мэши) (если хотите, создайте для них подпапку).
Теперь загрузите Construction Set. ( File -> Data Files; выберите Morrowind, а также Tribunal, если он у вас есть, чтобы предотвратить формирование установок зла).
Откройте NPC's в блок, нажмите кнопку «Add Animation File» (Добавить файл анимации) и выберите Spectator.Nif.

Теперь нажмите кнопку AI, затем два раза нажмите Wander и выберите новый процент для позы Idle7. Вам также следует дать новый шанс другим позам Idle, чтобы общее число различных поз Idle достигло 100.
Помните, что анимация поз Idle в игре будет внезапно обрываться, если NPC атакует или его атакуют, ходит или просто приветствует вас.
Можете отменить приветствие, выставив значение Hello (Привет) 0.
Можете отменить хождение NPC, выставив значение Distance (Расстояние) 0 в блоке, показанном ниже.


Сохраните мод. File -> Save. Вот и все.

Как заставить NPC использовать инструменты/предметы

Возможно, вы хотите, чтобы NPC использовал инструменты/предметы, например, алхимик использует ступку, или кто-то пьет, держа бутылку. Нам нужно превратить предмет в щит, так, чтобы NPC держал его в левой руке.
Превращение предмета в щит.
Вместе с этой загрузкой я предоставил файл, который называется HandShield.blend. Откройте этот файл, вы увидите руку. Затем импортируйте предмет, который NPC будет использовать, например, бутылку File -> Import ->NetImmerse/Gamebryo.
В Blender вы можете выбрать предмет правым щелчком мыши, перемещать его с помощью G (Grasp), вращать с помощью R, масштабировать с помощью S. Нажатие S и X/Y/Z масштабирует предмет только для оси X/Z/Y; нажатие G и X/Y/Z будет только перемещать его вдоль X/Y/Z и т.д.
Постарайтесь позиционировать предмет так, как будто его держат в руке.
После этого удалите руку (выберите ее правым щелчком мыши и нажмите Canc).
Выберите импортируемый предмет (в нашем примере — бутылка) правым щелчком и экспортируйте его.
File -> Export -> NetImmerse/Gamebryo. Экспортируйте с помощью «Export Geometry Only» (Только экспорт геометрии).
Поместите этот экспортируемый предмет в папку Morrowind/Data Files/Meshes или, если хотите, в подпапку папки Meshes (Мэши).
Теперь загрузите Construction set, перейдите к полю Body Part (Часть тела). Щелкните по нему правой кнопкой и выберите New (Новая).

В поле ID впишите любое имя. Щелкните на «Add Art File» и выберите мэш, который вы экспортировали с Blender. В поле Part вам нужно выбратьWrist. В Part Type выберите Armor (Вооружение). Нажмите Ok, чтобы создать новую часть тела.

Затем перейдите к полю Armor, щелкните по нему правой кнопкой и выберите New.

Мы решили делать бутылку, поэтому я выбрал бутылку как мэш и как иконку, когда предмет будет помещен в мир. Но предмет, выбранный из «Male Armor» (Мужское вооружение), это предмет, который появится у NPC, когда он возьмет щит, и я выбрал MyShield, который мы сделали раньше, как часть тела. Сохраните и установите щит для NPC.
Помните, что с помощью Weight (Вес) вы определяете вес вооружения: Light (Легкое), Medium (Среднее) или Heavy Armor (Тяжелое вооружение).Помните, что NPC сможет носить щит, только если его базовое значение без вооружения меньше, чем значение соответствующего навыка для этого щита.
Но в этом случае NPC будет использовать предметы только левой рукой
. Если вы хотите, чтобы он использовал их правой рукой, используйте xAnimationRightHand.nif (включенное в эту загрузку, он также должен быть правильно переименован). Или, если вы анимируете зверя, вы можете использовать переименованный файл xAnimationBeastRightHand.nif вместо xExportedBeast.nif. Но тогда он будет держать щит (а также новый предмет) в правой руке, а оружие в левой.

Эти файлы должны заменить файл xAnimation.Nif.
Пример: у вас есть следующие файлы
Spectator.Nif
xSpectator.Nif
xSpectator.Kf
Если вы хотите, чтобы NPC, используемый в этой анимации, держал предмет в правой руке, вы должны заменить файл xSpectator.Nif файлом xAnimationRightHand.nif, который я включил в папку «Other files» (Другие файлы), и переименовать его xSpectator.Nif.
Можете использовать скрипт этих NPC, чтобы, когда они умрут, бутылка/щит был удален.

Автор: Arcimaestro Antares
Перевод: Kane

Читайте также: