Particles from scratch - how to add in Nifskope
Все "элементы" частиц могут быть свободно добавлены по Insert.
Правильная настройка оных и назначение контроллеров в нужной последовательности, может оказаться не совсем простым занятием, но только на первый взгляд.
На деле, не все так "страшно" и частицы, могут быть довольно легко созданы с нуля только при помощи одного Нифскопа.
При этом, можно добавить все возможные модификаторы, пускай и в несколько "урезанном" виде.
Т.к. подобрать некоторые настройки на глазок - не самое простое занятие.
Но, создать простую систему частиц не составит большого труда.
Собственно, создавать сложные траектории движения оной, посредством коллайдеров, будет несколько затруднительно.
Т.к. оные не имеют визуализации, что и усложняет нахождение нужных позиции.
Впрочем, если устанавливать тестовые плоскости (ака простые шейпы) в качестве ориентиров, то это становится, вполне, возможным.
Достаточно будет копировать позиции (оных плоскостей) и подставлять данные в настройки коллайдеров.
Ок! Создаем частицы с нуля только через Нифскоп.
Открыть любой ниф файл 4.0 версии!
Что важно!
Это укажет нифскопу правильный формат файла.
Выделить корневую ноду и Remove Branch.
Т.е. удалить ВСЕ содержимое файла!
Это упростит ориентацию в сцене и только.
Либо, можно ничего не удалять, но создать частицы прямо в этом файле.
И только затем удалить "лишнее" содержимое.
Теперь, добавить базовые элементы частиц.
Insert->
Можно было бы добавить NiAutoNormalParticles, или NiRotatingParticles, но практической пользы в этом нет.
Т.к. дополнительные поля не работают, а основные настройки совпадают с NiParticles.
Поэтому, сразу используем NiParticles.
Через Attach Properties выделив NiParticles:
Т.е. добавляем к частицам необходимые свойства.
NiZBufferProperty = флаг 1.
NiAlphaProperty = флаг 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.
Нажать обновить (те зеленые стрелки).
Указать номер ноды эмиттера.
Т.е. в корне файла указывается, как; сама система частиц, так и ее эмиттер!
Если он окажется вне корня (файла) то, частицы не смогут работать.
И чтобы анимация частиц проигрывалась постоянно, а не "стояла столбом" следует добавить анимационную ноду.
Если же, по каким-то причинам, нужно получить статичный вид частиц, без какой либо анимации, то больше ничего делать не потребуется.
Но если нужна постоянная анимация потока частиц, то:
Установить флаг 32.
Теперь частицы будут проигрывать анимацию правильно!
Финальная конструкция, будет выглядеть примерно так:
В принципе все, полученная конструкция уже будет работать в игре!
Но для удобства, следует добавить хотя бы один шейп, иначе частицы будет невозможно выделять и перемещать в редакторе.
Модели открытого огня в каминах будут оптимальны.
Также, будет полезно превратить это в
маркер.
Впрочем, это зависит уже от ваших целей.
Здесь мы рассматривали сам принцип создания системы частиц в базовой конфигурации, так сказать.
Если создается светильник, то собранные частицы можно будет вставить в файл содержащий шейпы оного.
Если существо, аналогично.
В итоге получаем такую конструкцию.
|
-
-
-
-
-
-
ссылка на шейп частиц в контроллере оных
-
-
z-буфер, предотвращает мерцание полигонов
-
текстурные свойства, назначают текстуру
-
-
-
свойства альфы, дает прозрачность текстуре
-
свойства материала, придают оттенок
-
|
Маркер - служит для возможности выделения модели в редакторе.
БоундБокс - для управления размером выделения, т.е. просто для удобства.
Если нужно получить шлейф за частицами, что актуально в основном для факелов, или иных подвижных объектов, то:
Выбрать частицы:
Установить флаг 170.
Также, см.
примечания, о том какие флаги, какой эффект дают.
Финальная конструкция будет примерно такой:
Таким образом, если в файле есть еще какая-то анимация, то;
- корень файла это NiBsAnimationNode, а сами частицы упакованы в NiBSParticleNode.
Но если никакой иной анимации нет, то;
- корень файла может быть обычной
NiNode, и только частицы упаковать в NiBSParticleNode.
Делать корень файла из NiBSParticleNode - не лучшая идея.
Для статичных светильников (костры, даэдрические жаровни и пр.) достаточно вложенных NiBSParticleNode.
Корень файла может сохраняться как NiNode.
Анимация частиц будет исправно работать.
NiBsAnimationNode в качестве корня нужна только для моделей содержащих какую-то иную постоянную анимацию в составе нод, или шейпов.
Примечания.
НО!
Если что-то не сработало и частицы продолжают "стоять столбом", т.е. не имеют анимации.
Тогда!
Первым делом проверить флаги на нодах.
NiBsAnimationNode - 32.
NiBSParticleNode - см. здесь, т.к. флагов может быть много. Для начала проверить 170 или 42.
Также проверить флаг на Emitter - 2 для начала.
Если это также не помогло, тогда:
- корень файла сделать NiBsAnimationNode (32).
- частицы упаковать в обычную NiNode (10).
т.е. отказаться от NiBSParticleNode.
В 99% случаев после этого частицы начинают работать исправно.
Если не помогло и это, проверить флаги контроллера частиц и!
Возможно в редакторе подключена не та модель которую сейчас редактировали (С)
И, теперь собственно все(С)
Проверить частицы в игре!
Если все работает, можно перейти к детальным настройкам контроллера частиц.
Таковые смотрим в файлах готовых частиц и в этих заметках.
Настройки и примечания оных смотрим в их разделах.
Финальный вид созданных в нифскопе частиц.
Шейп, также был создан непосредственно в нифскопе.
О чем смотри ролик.
Он нужен исключительно для удобства выделения модели в редакторе.
|
|
Модель в игре.
Видно только пламя и никаких багов с мерцанием, чем "грешат" оригинальные модели огня.
За исправления этой оказии и отвечает 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
Требует регистрации для скачивания.