×
Menu

Particles from scratch - how to add in Nifskope

Основная статья: NiParticle
 
Все "элементы" частиц могут быть свободно добавлены по Insert.
Правильная настройка оных и назначение контроллеров в нужной последовательности, может оказаться не совсем простым занятием, но только на первый взгляд.
На деле, не все так "страшно" и частицы, могут быть довольно легко созданы с нуля только при помощи одного Нифскопа.
При этом, можно добавить все возможные модификаторы, пускай и в несколько "урезанном" виде.
Т.к. подобрать некоторые настройки на глазок - не самое простое занятие.
Но, создать простую систему частиц не составит большого труда.
 
Собственно, создавать сложные траектории движения оной, посредством коллайдеров, будет несколько затруднительно.
Т.к. оные не имеют визуализации, что и усложняет нахождение нужных позиции.
Впрочем, если устанавливать тестовые плоскости (ака простые шейпы) в качестве ориентиров, то это становится, вполне, возможным.
Достаточно будет копировать позиции (оных плоскостей) и подставлять данные в настройки коллайдеров.
 
Ок! Создаем частицы с нуля только через Нифскоп.

Открыть любой ниф файл 4.0 версии!
Что важно!
Это укажет нифскопу правильный формат файла.
 
Выделить корневую ноду и Remove Branch.
Т.е. удалить ВСЕ содержимое файла!
Это упростит ориентацию в сцене и только.
 
Либо, можно ничего не удалять, но создать частицы прямо в этом файле.
И только затем удалить "лишнее" содержимое.
 
Теперь, добавить базовые элементы частиц.
Insert->
4. NiNode (это будет эмиттер)(сразу задать имя "emitter")
5. NiParticleGrowFade (опционально).
 
Можно было бы добавить NiAutoNormalParticles, или NiRotatingParticles, но практической пользы в этом нет.
Т.к. дополнительные поля не работают, а основные настройки совпадают с NiParticles.
Поэтому, сразу используем NiParticles.
 
Через Attach Properties выделив NiParticles:
Т.е. добавляем к частицам необходимые свойства.
NiZBufferProperty =  флаг 1.
NiAlphaProperty = флаг 13.
NiMaterialProperty = изменить уровень Alpha на 0.9 (опционально) ибо альфа свойства =13.
Emissive Color = установить цвет белый, либо сделать чуть светлее. Актуально если частицы не в источнике света.
Если это будет пламя огня, или магический эффект, можно оставить черным.
Все остальное по умолчанию.
NiTexturingProperty ПКМ: - textures - add base texture - выбрать текстуру по желанию.
 
Далее:
1. NiParticles в слоте Controller указать номер NiParticleSystemController.
2. NiParticles в слоте Data указать NiParticlesData.
 
Теперь переходим в NiParticlesData.
Где прописываем базовые параметры частиц от которых будет стартовать NiParticleSystemController.
Также, это нужно для отображения частиц в нифскопе и в окне редактора, сразу после размещения в сцену частиц.
Num Vertices
15
указать кол-во активных частиц. В качестве примера укажем: 15
 
Has Vertices
yes
иначе ничего не отобразится.
 
Radius
1.000
отвечает за просчет отображения частиц в сцене.
 
Num Particles
15.
Т.е. =Num Vertices
Particle Radius
1.000
Радиус самих частиц.
Num Active
15
Кол-во активных частиц в момент времени.
Может быть меньше, но не больше. Установим как равное.
 
Has Sizes
yes
Размеры частиц.
 
Sizes
 
можно поставить каждой частице 1.0.
 
 
Не забывайте жать зеленые стрелки. Т.е. обновлять введенные данные.
Has UV, Has Normals, Has Vertex Colors и прочее - не трогаем.
Для базовой настройки частиц это не обязательно.
 
Далее!
Переходим к настройке анимации частиц!
Выделяем NiParticleSystemController.
1. NiParticleSystemController в строке Target указать номер NiParticles.
2. NiParticleSystemController в Emitter указать номер  NiNode (которая была названа Emitter).
3. NiParticleSystemController в Particle Extra указать номер NiParticleGrowFade.
 
Должно получиться что-то подобное:
Это уже полностью настроенный контроллер.
Можно установить настройки аналогичные этим.
 
Flags
8
Анимация проигрывается постоянно.
Если требуется наоборот создать статичное облако частиц, без пульсаций и прочего - ставить флаг 12!
За подробностями см. основные разделы.
 
Frequency
1
 
Скорость анимации ровная, без ускорения и замедления. За подробностями см. основные разделы.
Phase
1000
 
Можно любое другое число. За подробностями см. основные разделы.
Start Time
0.0000
 
Начало анимации в нулевом фрейме. За подробностями см. основные разделы.
Stop Time
3.0000
 
 
Продолжительность доступного времени в файле. За подробностями см. основные разделы.
Здесь это 100 кадров (примерно). Что вполне достаточно для гладкой анимации.
Target
ХХ
 
номер niParticles.
Speed
30.000
 
Здесь указана средняя скорость движения частиц.
Поскольку создаем прямой поток частиц, значения коррекции рассеивания, не трогаем. Т.е. Speed Random, Vertical Direction, Horizontal Dir и пр.
Size
15.0000
 
 
Размер частиц влияет на их "заметность".
15 вполне достаточно, например для использования в модели Костра.
Emit Start
0.0000
 
Это время начала рождения частиц
Emit Stop
1.0000
 
 
Время завершения генерации частиц.
Для создания ровного потока частиц, здесь оно равно примерно половине общего времени анимации.
Emit Rate
100.000
 
Плотность потока в момент времени.
Emitter
ХХ
 
номер эмиттера. Очень важно его указать!
Num Particles
10
 
Указываем кол-во частиц которые хотим задействовать в момент времени.
Num Valid
1
 
Кол-во частиц в нулевом кадре. Чтобы не загружать сцену предпросчетом частиц, указываем 1.
Particle Extra
ХХ
 
указываем номер первого модификатора. Здесь это niParticleGrowFade.
Trailer
1
 
Если хотим чтобы у частиц оставался шлейф при движении. В данном случае, не обязательно.
 
 
Далее, настраиваем модификатор частиц!
Здесь это
NiParticleGrowFade:
Grow 0.0000 - частицы имеют 100% размер в начале рождения.
Fade 1.0000 - и сокращаются до 1% к концу жизни.
Это создаст систему частиц с широким основанием и острым верхом. Что подходит для создания пламени свечи, или костра.
В слоте Controller обязательно следует указать номер NiParticleSystemController!
Иначе модель приведет к вылету игры.
Next Modifier - в данном случае, пусто, т.к. в модели используется только один модификатор.
Но если их (модификаторов) будет использоваться несколько, в этом слоте указывается следующий.
 
Теперь, получившуюся систему следует упаковать в одну ноду!
Которая и будет корнем файла.
NiParticles ->attach parent node->niNode.
Затем выбрать, у новой ноды раздел, Num Children и указать кол-во 2.
Нажать обновить (те зеленые стрелки).
Указать номер ноды эмиттера.
Т.е. в корне файла указывается, как; сама система частиц, так и ее эмиттер!
Если он окажется вне корня (файла) то, частицы не смогут работать.
 
И чтобы анимация частиц проигрывалась постоянно, а не "стояла столбом" следует добавить анимационную ноду.
Если же, по каким-то причинам, нужно получить статичный вид частиц, без какой либо анимации, то больше ничего делать не потребуется.
Но если нужна постоянная анимация потока частиц, то:
Выбрать корневую ноду и:
RCM->Convert->NiB->NiBsAnimationNode
Установить флаг 32.
Теперь частицы будут проигрывать анимацию правильно!
Финальная конструкция, будет выглядеть примерно так:
 
В принципе все, полученная конструкция уже будет работать в игре!
Но для удобства, следует добавить хотя бы один шейп, иначе частицы будет невозможно выделять и перемещать в редакторе.
Самый простой вариант, скопировать шейп из любого другого ниф файла.
Модели открытого огня в каминах будут оптимальны.
Также, будет полезно превратить это в маркер.
 
Впрочем, это зависит уже от ваших целей.
Здесь мы рассматривали сам принцип создания системы частиц в базовой конфигурации, так сказать.
Если создается светильник, то собранные частицы можно будет вставить в файл содержащий шейпы оного.
Если существо, аналогично.
 
В итоге получаем такую конструкцию.
  •  
  • корень файла
  • система частиц
  • контроллер частиц
  • модификатор частиц
  • ссылка на шейп частиц в контроллере оных
  • ссылка на эмиттер
  • z-буфер, предотвращает мерцание полигонов
  • текстурные свойства, назначают текстуру
  •  
  • дата частиц
  • свойства альфы, дает прозрачность текстуре
  • свойства материала, придают оттенок
  • это сам эмиттер
 
 
А после добавления вспомогательных элементов в виде Маркера и Боундинг Бокса:
Маркер - служит для возможности выделения модели в редакторе.
БоундБокс - для управления размером выделения, т.е. просто для удобства.
 
Если нужно получить шлейф за частицами, что актуально в основном для факелов, или иных подвижных объектов, то:
Выбрать частицы:
RCM->Node->Attach Parrent Node->NiBSParticleNode
Установить флаг 170.
Также, см. примечания, о том какие флаги, какой эффект дают.
Финальная конструкция будет примерно такой:
 
Таким образом, если в файле есть еще какая-то анимация, то;
- корень файла это NiBsAnimationNode, а сами частицы упакованы в NiBSParticleNode.
Но если никакой иной анимации нет, то;
- корень файла может быть обычной NiNode, и только частицы упаковать в NiBSParticleNode.
Делать корень файла из NiBSParticleNode - не лучшая идея.
 
Для статичных светильников (костры, даэдрические жаровни и пр.) достаточно вложенных NiBSParticleNode.
Корень файла может сохраняться как NiNode.
Анимация частиц будет исправно работать.
NiBsAnimationNode в качестве корня нужна только для моделей содержащих какую-то иную постоянную анимацию в составе нод, или шейпов.
 
Примечания.
НО!
Если что-то не сработало и частицы продолжают "стоять столбом", т.е. не имеют анимации.
Тогда!
Первым делом проверить флаги на нодах.
NiBsAnimationNode - 32.
NiBSParticleNode - см. здесь, т.к. флагов может быть много. Для начала проверить 170 или 42.
Также проверить флаг на Emitter - 2 для начала.
 
Если это также не помогло, тогда:
- корень файла сделать NiBsAnimationNode (32).
- частицы упаковать в обычную NiNode (10).
т.е. отказаться от NiBSParticleNode.
В 99% случаев после этого частицы начинают работать исправно.
Если не помогло и это, проверить флаги контроллера частиц и!
Возможно в редакторе подключена не та модель которую сейчас редактировали (С)
 
И, теперь собственно все(С)
Проверить частицы в игре!
Если все работает, можно перейти к детальным настройкам контроллера частиц.
Таковые смотрим в файлах готовых частиц и в этих заметках.
В разделе описания настроек этого контроллера.
 
Добавлять по вкусу;  Гравитацию, коллайдеры, смену цвета, или бомбу.
Настройки и примечания оных смотрим в их разделах.
 
Финальный вид созданных в нифскопе частиц.
Шейп, также был создан непосредственно в нифскопе.
О чем смотри ролик.
14 NiNode используется для создания Bounding Box, о чем см. этот раздел.
Он нужен исключительно для удобства выделения модели в редакторе.
 
Модель в игре.
Видно только пламя и никаких багов с мерцанием, чем "грешат" оригинальные модели огня.
За исправления этой оказии и отвечает Editor marker.
Модель в редакторе с отображением Маркера.

За доп. подробностями см. ролики:
@_Notes_for_Modmaking\Additional_Files\Tours\
NiParticle\NF_particle_from_scratch.flv
также там можно найти файлы с примерами.
 
Дополнительное примечание!
Видео руководство по работе с частицами, только средствами нифскопа, можно найти здесь:
https://youtu.be/oZRVoQ8-T74
Язык английский, но в целом можно смотреть и без звука.
Скромные 8 часов (:) ролика покажут все тонкости работы с частицами)))
Рекомендуется скачать файл на диск!
*используя подходящие для этого внешние сервисы.
 
Также см.
https://www.fullrest.ru/files/particlealchemetrics
Здесь архив с моделями из того видео.
Не требует регистрации для скачивания.
 
Оригинальная страница проекта:
https://www.nexusmods.com/morrowind/mods/48623
Требует регистрации для скачивания.