Добавлен , опубликован
Большинство эффектов в Warcraft 3 основано на источниках частиц [Particle Emitter 2]. Источник частиц представляет собой точку из которой излучаются точки-частицы с определёнными параметрами, такими как внешний вид (текстура, режим фильтрации), начальная скорость, частота спавна и тд. В процессе жизни, излучаемые частицы могут изменять некоторые из своих параметров, например: цвет, размер, прозрачность.


В этой подстатье я подробно опишу все существующие в источниках частиц параметры.


Видимость [Visibility]

Этот параметр отвечает за отображение нашего источника частиц. Он может принимать только два значения: 0 - источник выключен и 1 - источник включен.

Является анимируемым параметром.


Частота излучения [Emission Rate]

Этот параметр задаёт количество частиц, которое излучается источником за одну секунду времени. Значение 0.5 например сделает так, будет излучаться одна частица за две секунды. Значение 0.25 за 4 секунды и так далее. Значение 0 означает что за секунду времени не должно заспавниться ни одной частицы.

Является анимируемым параметром.


Частота излучения наглядно

Частота излучения = 1, у нас спавнится одна частица в секунду

Частота излучения = 2, у нас спавнится две частицы в секунду

Частота излучения = 5, у нас спавнится пять частиц в секунду. Из-за того что частицы спавнятся часто, они накладываются друг на друга, создавая постоянное свечение.

Частота излучения = 0.5, у нас спавнится одна раз в две секунды

Скорость [Speed]

Это - начальная скорость наших частиц. Чем больше значение скорости, тем быстрее частицы будут вылетать из источника. Отрицательное значение скорости заставит частицы лететь в противоположную сторону.

Является анимируемым параметром.


Скорость наглядно

Скорость = 0, частицы спавнятся и затухают без движения.

Скорость = 20, частицы спавнятся и летят вверх.

Скорость = 40, частицы спавнятся и летят вверх быстрее.

Скорость = -20, частицы спавнятся и летят в противоположную строну, то есть вниз.

Кучность [Variation]

Очень интересный параметр, который грубо говоря рандомизирует параметр скорости частиц. Чем больше кучность, тем рандомнее будет начальная скорость у каждой излучённой частицы.
Работает в связке с параметрами скорость. Чем больше скорость, тем больше будет влияние на неё кучности.

Является анимируемым параметром.


Кучность наглядно

Скорость = 20, Кучность = 0, частицы просто летят вверх с одинаковой скоростью.

Скорость = 20, Кучность = 1, некоторые частицы летят быстрее, некоторые медленее.

Скорость = 20, Кучность = 2, максимальные и минимальные рандомные значения скорости стали ещё больше.

Широта [Latitude]

Широта - это угол отклонения частиц. Значение 0 означает, что угла отклонения нет, и частицы просто летят по прямой. Значения 1-89 означают, что частицы будут излучаться в конусе. Значение 90 образует полусферу, 180 полную сферу.

Значение 180 не является максимальным, но выставлять больше не имеет смысла.

Важно понимать, что широта это симметричный угол и увеличивая его мы увеличиваем реальную область излучения в 2 раза. Именно поэтому для сферы значение широты равно 180, а не 360.

Является анимируемым параметром.


Широта наглядно

Широта = 0, угла отклонения нет, частицы просто летят вверх по прямой.

Широта = 20, угол отклонения = 40 град., частицы летят вверх, образуя конус.

Широта = 45, угол отклонения = 90 град., конус стал шире.

Широта = 90, угол отклонения = 180 град., частицы образуют полусферу.

Широта = 180, угол отклонения = 360 град., частицы образуют полную сферу.

Ширина/Длина [Width/Length]

Изначально источник частиц излучает частицы из точки. Но на самом деле излучение происходит из плоского прямоугольника. Эти параметры отвечают за его ширину и длину.
Начальные параметры 0/0 дают нам прямоугольник с нулевыми шириной и длиной, то есть ту самую точку. Значения 10/0 уже дадут протяжённый источник частиц, полосу с длиной 10 из которой излучаются наши частицы. Значения 0/10 образуют протяжённый источник, но уже по другой оси. Значения 10/10 образуют квадрат, неравные отношения этих параметров образуют прямоугольники.

Являются анимируемыми параметроми.


Ширина/Длина наглядно

Ширина = 0, Длина = 0, частицы спавнятся из точки.

Ширина = 20, Длина = 0, источник частиц становится протяжённым.

Ширина = 0, Длина = 20, источник частиц становится протяжённым, но уже по другой оси.

Ширина = 20, Длина = 20, источник частиц образует квадрат.

Ширина = 60, Длина = 20, источник частиц образует прямоугольник

Гравитация [Gravity]

Гравитация отвечает за ускорение частиц вверх или вниз. Положительные значения гравитации заставят излученные частицы падать вниз (полезно например для брызг крови или искр при взрыве). Отрицательные лететь вверх (применимо для дыма или пара).

Является анимируемым параметром.


Гравитация наглядно

Гравитация = 0, частицы спавнятся без ускорения.

Гравитация = 20, частицы падают вниз с ускорением.

Гравитация = -20, частицы летят вверх с ускорением.

Гравитация = 20, Скорость = 30, частицы взлетают вверх под действием скорости, и затем падают вниз под действием гравитации.

Рендеринг [Rendering]

Состоит из двух "параметров": ID и Режима.

ID - Текстура для наших частиц, в этом списке отображаются все текстуры которые присутствуют в данной модели. Если в модель добавлена текстура для частиц, то её нужно найти в этом списке и выбрать.

Режим - Этот параметр отвечает за режим наложения нашей текстуры (как у слоёв в фотошопе). Для частиц чаще всего применяются режимы Blend и Additive.
  • Blend - Режим при котором текстура отображается "как есть". Она просто накладывается поверх того, что было под ней, с учётом прозрачности взятой из альфа канала текстуры. Этим режимом чаще всего делают не светящиеся эффекты, вроде дыма, крови или физических объектов. Для новичков важно будет понять, что если у текстуры не будет альфа канала, то движок не будет знать где ей быть прозрачной, и отображение частиц будет не правильным (чаще всего это чёрные квадраты с текстурой в центре).
  • Additive - Режим при котором текстура добавляется к тому что было под ней, делая место под собой ярче. Это самый распространённый режим для всех светящихся эффектов. Аддитивный режим не использует альфа канал, и за "прозрачность" в этом случае будет отвечать темнота пикселей текстуры. Если совсем просто, для аддитивного режима - там где чёрное, там и прозрачное. Это также позволяет использовать намного бОльший диапазон текстур из архивов игры.


Режимы на примере текстуры дымка


Сегмент 1/2/3 [Segment 1/2/3]

Поле состоящее из трёх сегментов. По сути отвечает за то, как будет вести себя каждая излучённая частица за время своего существования. В трёх сегментах задаются параметры частицы которые будут линейно изменяться в процессе её жизни. Работа этих параметров завязана на параметре Время [Time].

Слева-направо:
  • Сегмент 1 - Начальные параметры, с ними появляется частица
  • Сегмент 2 - Промежуточные параметры, то как будет выглядеть частица, когда она проживёт половину своего времени жизни
  • Сегмент 3 - Конечные параметры, в эти параметры перейдёт частица к моменту своего исчезновения

Каждый сегмент обладает набором свойств:
  • Цвет - Цвет частицы
  • Альфа - Прозрачность частицы, может принимать значения от 0 до 255. Значение 0 означает что частица полностью прозрачная, 255 означает что частица полностью видна.
  • Масштаб - Размер частицы

Тоже самое, но очень просто и с примером
Сегменты это переходы: например между цветами (огонь – жёлтый-оранжевый-красный). Альфа (0-255-0 частица плавно появляется и плавно затухает), масштаб (0-50-100 частица постепенно увеличивается в размере, или 0-50-0 частица появляется увеличивается, и потом снова уменьшается).

Важно: время перехода этих параметров друг в друга зависит не только от жизни частицы, но и от специального параметра "Время" о котором написано ниже.


Флаги [Flags]

Флаги это свойства частиц. Такие как:
  • Незатенённый [Unshaded] - На излучённые частицы не влияют источники света. Например будут одинаково ярко отображаться как днём, так и ночью. Крайне полезно для источников частиц огня или искр.
  • Незатуманенный [Unfogged] - Излучённые частицы отображаются поверх игрового тумана. Также на них не накладывается затеняющий фильтр при открытии меню. Используется довольно редко.
  • Альфа [Alpha Key] - Не знаю что делает.
  • Линейный излучаетель [Line Emitter] - Не знаю что делает.
  • От дальней к ближней [Sort Primitives Far Z] - заставляет частицы отображаться в порядке "от дальней к ближней". Без этого параметра они будут отображаться в произвольном порядке. Иногда используется при создании эффекта лёгкого дыма.
  • Ограничить пространство [Model Space] - Переводит частицы из мирового пространства в локальное. Или, если говорить простым языком, если этот параметр включен то все излучённые частицы будут привязаны к источнику и будут двигаться вместе с ним. Если он выключен то частицы будут отвязаны и при движении оставаться висеть в воздухе. Полезно для создания эффектов свечения на моделях, где необходимо чтобы частицы свечения двигались вместе с моделью, а не оставались за ней.
  • XY Квадрат [XY Quad] - Излучает частицы в виде плоских квадратов в плоскости XY. Часто применяется для создания эффекта взрывной волны.
Важно: источник частиц с этим флагом не будет отображаться в игре и WE, если параметры скорости, кучности и широты меньше единицы.
  • Струя [Squirt] - Никогда не пользовался этим параметром. В своей статье Wulfrein пишет, что он используется для создания реалистичных взрывов (и во "взрывных" моделях варкрафта попадается часто). Он влияет на анимацию частиц и учитывается , только если частота излучения источника анимирована, а тип контроллера анимации - Bezier. В этом случае в ключевых кадрах частицы появляются очень резко и кучно. В остальных случаях параметр игнорируется.
  • Голова [Head] - Этот параметр определяет тип источника частиц. Это классический источник billboard частиц. Ставится по умолчанию.
  • Хвост [Tail] - Этот параметр определяет тип источника частиц. "Хвост" это такой источник частиц при котором частицы не разлетаются из источника, а растягиваются вдоль вектора скорости (stretched billboard). Через него можно сделать очень красивые лучевые эффекты. Работает в связке с параметром скорость и длина хвоста. Скорость будет определять направление лучей, длина, соответственно длину. Если включить одновременно голову и хвост, то сначала появится растянутая частица, а за ней полетит обычная.


Голова/​Хвост(появление) | ​Голова/​Хвост(затухание) [​Head/​Tail (​Life ​Span) | ​Head/​Tail (​Decay)]

Эти блоки предназначены для настройки текстур с тайлами. Для обычных текстур все параметры в этих блоках должны быть равны 0.


Дополнительно [Misc]

В этом блоке находится несколько важных не анимируемых параметров источника частиц, а именно:
  • Ряды/Колонки [Rows/Columns] - Здесь указывается количество тайлов у текстуры (если текстура для этого предназначена).
  • Время жизни [Life Span] - Время в секундах, которое будет существовать каждая излучённая источником частица. При значении равном 0 частицы спавниться не будут.
  • Длина хвоста [Tail Length] - Множитель длины для частиц типа "хвост". Подробнее будет описан в отдельной статье.
  • Приоритет выравнивания [Priority Plane] - Задаёт приоритет отображения источника частиц. Чем выше этот параметр, тем выше приоритет. Например источник огня с приоритетом равным 1, будет отображаться над источником дыма с приоритетом равным 0.
Важно: в формате .mdl приоритет не сохраняется, и сбрасывается до 0. При конвертации обратно в .mdx приоритеты источников придётся выставлять по новой.
  • ID зам. текстуры [Replaceable ID] - Здесь можно указать ID заменяемой текстуры. Эта текстура будет использоваться вместо текстуры из поля "рендеринг". Применяется для создания тимколорных источников частиц.
  • Время [Time] - Интересный параметр, который, устанавливает относительную точку сегмента 2 во времени жизни частиц. К примеру, значение времени 0.5 поставит эту точку в середине времени. Переходы сегмент 1-2 и сегмент 2-3 будут одинаковы по времени. Значение времени 0, установит эту сегмент 2 в момент спавна частицы, что заставит её игнорировать сегмент 1. Частицы будут появлятся сразу с параметрами сегмента 2 и переходит к сегменту 3.


`
ОЖИДАНИЕ РЕКЛАМЫ...
22
Случайно нашёл этот гайдик, который писал давно в 17м году. Изначально планировалась целая серия таких гайдов, но завершён был только один. Здесь я разобрал почти все параметры варкрафтовых систем частиц)

Так как на момент написания гайда, я сидел на русской версии модель эдитора, то большинство названий тут тоже на русском. В квадратных скобочках я указал английские версии, чтобы было можно понять о чём речь.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.