×
Меню
Индекс

Создание статичных частиц

Создание базовых настроек частиц с нуля.
Без добавления к ним контроллера.
Цель получить аналог спрайтового тумана, но проще и быстрее.
Также, модель может получиться легче. Как по весу файла, так и по составу деталей.
И, все делается только через нифскоп!
 
Также, статичные частицы удобно использовать для получения эффекта линзирования луча света, аля Крутой Сэма (1).
 
Примечание.
Создание статичных частиц может быть хорошей альтернативой билбордам.
Например при создании Ореола вокруг некоторого объекта, или примитивной модели с повторяющейся текстурой.
Т.е. вместо создания шейпа и его билборд ноды, можно создать одну единственную статичную частицу.
Это позволит сократить кол-во нод в файле, что положительно скажется на его размере и общей оптимизации сцены.
 
Примечание.
На статичные частицы, описанные здесь, не получиться наложить текстурные эффекты.
Т.к. здесь не используется эмиттер, в которой можно было бы подключить обычную сетчатую оболочку, которая критически важна при добавлении эффектов!
 
Примечание.
Не путать с остановкой анимации частиц!
Т.е. создать неподвижное облако частиц можно сменив флаг на их контроллере с 8 на 12.
Но здесь речь идет несколько о другом способе создания частиц для более прогрессивных целей!
 
Примечание.
Добавление свойств трафарета статичным частицам, также, позволяет решать проблему создаваемую этой нодой.
 
Примечание.
Не стоит добавлять на такие статичные частицы неактивный (флаг 0), или вовсе не настроенный контроллер.
Это не приведет ни к чему хорошему, кроме КТД.
 

1. Открыть любой ниф файл 4.0 версии.
 
2. Выделить корневую ноду - remove branch.
3. Получаем заготовку пустого файла.
Если что-то осталось после удаления корневой ноды - удалить!
 
4. Внедряем нужные элементы.
Block:
Insert->NiN->NiNode
Insert->NiP->Niparticles
Insert->NiP->NiParticlesData
 
5.
NiNode ->children -> 1 т.е. указываем номер Niparticles
NiParticles ->children -> 0 т.е. указываем номер NiParticlesData.
Получаем:
NiParticles флаг 10.
 
6. Переходим в  NiParticlesData!
Собственно это и есть нужный раздел!
Num Vertices - 5
Has Vertices - yes
Vertices
Num Particles - 5
Num Active - 5
Sizes - 5.0000
Только после этого:
Particle Radius - 1.0000
Radius ->Rcm->Mesh->Update Centre Raduis.
Это установит правильный радиус!
 
7. сохраняем и идем смотреть в Редактор что получилось!
А получится должно было что-то такое:
 
8. возвращаемся в Нифскоп и правим позиции частиц!
Частицы находятся в одной плоскости, поэтому Z не трогаем.
 
9. Получаем такое:
Частицы Билбоард по умолчанию, отчего и происходит такое вращение.
 
10. Снова в Нифскоп!
И добавим еще 4 частицы
Num Vertices - 9.
Vertices - см. скрин.
Не забываем поправить Size для новых частиц!
И ОБЯЗАТЕЛЬНО нажать для всех разделов в которых делали изменения!
Num Vertices, Num Particles, Has Sizes!
Иначе модель будет убита, а нифскоп выдаст примерно такое сообщение:
""block 2 Sizes array size mismatch""
Также, обновить радиус!
Rcm->Mesh->Update Centre Raduis.
 
11. Теперь модель выглядит вот так:
 
12. И немного поиграем с размером отдельных частиц!
Sizes - 10.000 для последней в списке.
Это та частица, что в центре.
Все частицы располагаются по порядку, первая строка для первой частицы и так далее.
Где какая частица находится, можно видеть в разделе Vertices.
Т.е. здесь частица с нулевым координатами находится в самом конце списка.
В редакторе это будет выглядеть так:
 
Полагаю, принцип понятен.
Все достаточно просто:
Добавляем частицы через Num Vertices и в разделе Vertices указываем их позиции.
Размер задается в Sizes.
Затем жать это обновит установленные параметры.
 
14. Остается добавить свойства!
Выделить NiParticles.
ПКМ->
Attach Property->NiAlphaProperty
Attach Property->NiZBufferProperty
Attach Property->NiFogProperty
Attach Property->NiTexturingProperty
Настройки:
NiAlphaProperty - флаг 13.
NiZBufferProperty - флаг 1.
NiFogProperty - флаг (по вкусу, см. раздел) можно начать с 10-ого и плотности 1.0000. Цвет по желанию.
NiTexturingProperty->Add Base -> выбрать желаемую текстуру. Например vfx_smokegreen.dds
И получаем:
Здесь можно либо подвинуть частицы ближе к центру, либо увеличить их Size.
 
15. Добавляем вспомогательные элементы для удобного перемещения частиц в редакторе!
ПКМ по корневой ноде:
Attach Node ->NiNode.
Block->Insert->NiS->NiStringExtraData
Указать номер в Extra Data корневой ноды.
Выделяем добавленную ноду и называем ее (в разделе Value) Bounding Box
Заходим в ее настройки и:
Flags 12.
Has Bounding Box - yes.
В настройках указываем:
Переходим в NiStringExtraData и указываем:
MRK
 
Copy Branch по NiStringExtraData и Paste Branch!
Это создаст копию NiStringExtraData.
Заходим в нее и указываем:
sgoKeep
Номер этой NiStringExtraData указываем в NiParticles!
Это может быть весьма важным для последующей работы частиц в игре!
 
Теперь остается добавить шейп.
Можно создать с нуля, либо, что проще, взять любой простой шейп из какого угодно ниф файла.
Скопировать и вставить.
Наименовать Tri EditorMarker
Шейпу можно назначить материал, только для заметности в сцене.
 
Получаем:
 
Собственно все(С)
Если требуется что-то еще, например эффекты, или какие анимации.
Добавляем по вкусу!
Не забывая переименовать корневую ноду в NiBSAnimationNode с  32, или 42 флагом.
В данном случае, NiBSAnimationNode предпочтительнее, т.к. частицы не должны иметь "хвоста" при движении.
Тем более, что Trail устанавливается в контроллере которого здесь нет.
 
Созданная здесь модель весит всего всего 2кб.
@_Notes_for_Modmaking5\Additional_Files\Tours\@How_To\NiParticle\StaticParticles_NoController.NIF
 
 
Финальная версия модели в целом.
 
И она в редакторе.
Да, частицы с использованными параметрами получились маленькими, но в тестовых целях этого вполне достаточно. ))
 
Здесь они увеличены 2х.