Доброго времени суток, Дорогой читатель!

Сегодня, я предлагаю "вольный/свободный" перевод урока Magic Circle Particle по созданию частиц от гуру Nibuja. Перевод делался для внутреннего использования и в приоритете было именно удобство и польза от материала, поэтому текст был сильно оптимизирован и переработан. Лирические отступления или художественный стиль были практически сведены к минимуму(да и переводчик с меня так себе). Но тем кому будет моя адаптация не подходить, всегда можно обратиться к первоисточнику. Так же, в моей версии каждый эффект делался сразу финальным вариантом, поэтому в заключительной части практически минимум действий.
P.S. благодарность Вадиму(Dark123us) за наставления по формату подачи материала, а так же автору данного урока Nibuja у него есть еще уроки.
Картинки залиты на github.com , там же и архив с моим результатом по уроку.

Информация будет малополезна для опытных людей съевших коня/собаку/крапиву при работе в PET
Во избежание медицинских противопоказаний, вы даете согласие не выдвигать претензий к автору после прочтения
Во избежание медицинских противопоказаний, вы даете согласие не выдвигать претензий к автору после прочтения
Сегодня, я предлагаю "вольный/свободный" перевод урока Magic Circle Particle по созданию частиц от гуру Nibuja. Перевод делался для внутреннего использования и в приоритете было именно удобство и польза от материала, поэтому текст был сильно оптимизирован и переработан. Лирические отступления или художественный стиль были практически сведены к минимуму(да и переводчик с меня так себе). Но тем кому будет моя адаптация не подходить, всегда можно обратиться к первоисточнику. Так же, в моей версии каждый эффект делался сразу финальным вариантом, поэтому в заключительной части практически минимум действий.
- моя версия
- 4 основные части
- сборка с заключительным словом.
- оригинал
- 1 часть - вступление.
- 4 основных части ,на каждый из эффектов.
- 6 часть - сборка в полноценный эффект и заключительное слово.
Base Properties - базовые настройки, параметры:
max particles = 1- максимум частиц.color = 124 252 0- базовый цвет rgb(в моем случае).lifetime = 2- время жизни частицы, в секундах.radius = 100- радиус, ниже переключим на управление от CP.
- Stop effect after duration - предварительная подготовка, параметры:
duration at which to stop = CP# 1 .x- надо изменить источник, откуда приходят данные - продолжительность после которой должна остановиться движуха в частице/эффекте, скорей всего команда дляLifespan endcap timed decay(причем и для дочерних частиц тоже).-
- Instantaneous Emitter - тип генератора частиц, параметры:
num to emit = 1- сколько частиц за раз.
- Position Within Sphere Random - стартовая позиция частиц, параметры: по умолчанию.
- Rotation speed random - Скорость вращения (не работает без Rotation basic в Operator), параметры:
yaw offset min = -45- минималное значение для случайности.yaw offset max = -45- максимальное значение для случайности.randomly flip direction = off- (снять галочку) напрвление вращения в 1 сторону (в нашем случае по часовой).
- Remap control point to scalar - пере/назначение контрольных точек, параметры:
input control point number = 2- нужная нам контрольная точка( контроль радиуса).input maximum = 5000- максимальное значение на входе CP2.output maximum = 5300- максимальное значение на выходе CP2.
- Alpha Random - добавить прозначности при создании частицы(случайно - не в нашем случае), параметры:
AlphaMin = 150- минимум от 150.AlphaMin = 150- максимум до 150 (при одинаковых значениях результат статичный).
- Lifespan endcap timed decay - Длительность жизни частицы зависит от распада(возможно в обычной ситуация частица живет весь lifetime, а тут есть возможность попросить быстрее свалить с экрана), параметры:
decay time = 0.2- время распада.
- Alpha Fade In Simple - плавность появления, параметры:
proportional fade in time = 0.5- время.
- Radius Scale - Масштабирование радиуса, параметры:
end time = 0.6- время роста.radius start scale = 0- начальный размер.scale bias = 0.9- смещение роста.
- Rotation basic - включение вращения, параметры: по умолчанию.
- Movement Lock to Control Point - блокировка движения частиц к CP, параметры: по умолчанию.
Примечание :
У автора была в этом месте очепятка, в руководстве он исправил (но в самом файле эффекта(vpcf), сказал исправит позже - в моих файлах уже).
- Lerp endcap scalar - lerp вроде линейная интерполяция, параметры:
value to lerp to = 0- хз.lerp time = 0.2- время (за которое нужно lerp ?).
- Lerp endcap scalar - lerp вроде линейная интерполяция, параметры:
output field = Alpha- к чему применить.value to lerp to = 0- хз.lerp time = 0.3- время (за которое нужно lerp ?).
- Render sprites - отображение спрайта, параметры:
- Orientation - ориентация, параметры:
orientation type = World-Z Align- тип ориентации спрайта в пространстве.
- Material
- Textures
Texture = magic_circle_summon.vtex- выбираем текстуру для спрайта.
- Textures
- Color and alpha adjustments - цвет/альфа коррекция, параметры:
overbright factor = 2- увеличиваем яркость/насыщенность.
- Orientation - ориентация, параметры:
Текущий результат:
Base Properties - базовые настройки, параметры: по умолчанию.
Emitter
Emitter
- Emit continously - тип генератора частиц, параметры:
Emission Rate = CP2 .X- источник данных для генерации(частиц в секунду).Multiply By = 0.25- множитель (в начшем случае 0,25 делит радиус на 4).
- Position Within Sphere Random - стартовая позиция частиц, параметры:
distance max = CP Component, CP# = 2- меняем тип параметра на CP Component , CP2 данные для стартового диапазона (радиус не частицы, а эффекта).distance bias = 1 1 0- отключаем сфере Z плоскость, сфера превращается в плоскую окружность.
- Radius random - Случайный радиус для каждой частицы, параметры:
Radius min = 10- минималное значение для случайности.Radius max = 25- максимальное значение для случайности.
- Color Random - выбрать случайный цвет. между двух значений(не из двух! если выбрать зеленый и красный будут и оранж/желт), параметры:
color1 = 34 139 34- первый цвет rgb.color2 = 0 90 0- второй цвет rgb.
- Movement Basic - основное движение частиц, параметры:
gravity = 0 0 150- гравитация по 3 координате дает движение вверх.
- Lifespan Decay - обязательная функция для чистки за собой.
- Alpha Fade In Simple - плавность появления, параметры:
proportional fade in time = 0.1- время.
- Alpha Fade Out Simple - плавность исчезновения, параметры: по умолчанию.
- Radius Scale - Масштабирование радиуса, параметры:
end time = 0.1- финальное время роста.radius start scale = 0- начальный размер.radius end scale = 2- финальный размер.
- Radius Scale - Масштабирование радиуса(ИМЕННО два одинаковых оператора, но с разными настройками), параметры:
start time = 0.1- начальное время ростаradius start scale = 2- начальный размерscale bias = 0.8- смещение скорости роста (в нашем случае с 2 до 1)
Пояснение :
первый оператор изменяет размер радиуса с 0 до 2 за 0.1 времени (эффект вспышки).
второй оператор изменяет размер радиуса с 2 до 1 за 0.9 времени, начинает работу с 0.1 .
операторы масштабируют тот радиус который случано выбрался в инициализаторе Radius random 10-25.
- Movement rotate particle around axis - вращение частиц вокруг оси, параметры:
rotation rate = -45- та же скорость и направление что и родительский эффект(из прошлой части), но уже вокруг оси.
- Color fade random - выбрать случайный цвет. между двух значений(не из двух! если выбрать зеленый и красный будут и оранж/желт), параметры:
color fade min = 153 254 52- первый цвет.color fade max = 60 179 113- второй цвет.fade end time = 0.6- время изменения.
Пояснение :
в инициализаторе цвет рождения частицы, а тут мы уже изменяем с рожденного цвета на цвет с которым исчезнет наша частица. Лучше выбирать более яркие чем в инициализаторе.
- Movement Lock to Control Point - блокировка движения частиц к CP, параметры: по умолчанию.
Пояснение :
Без этого оператора при получении новых координат из CP - частицы что были сгенерированы ранее, никуда не двигаются, а продолжают свою жизнь(по сути шлейф/хвост комметы). С оператором блокировки все частицы перемещаются ВМЕСТЕ(новые и текущие) с основной точкой координат, но так же продолжают свою жизнь.
- Lifespan endcap timed decay - Длительность жизни частицы зависит от распада(возможно в обычной ситуация частица живет весь lifetime, а тут есть возможность попросить быстрее свалить с экрана), параметры:
decay time = 0.3- время распада.
- Lerp endcap scalar - lerp вроде линейная интерполяция, параметры:
output field = Alpha- к чему применить.value to lerp to = 0- хз.lerp time = 0.3- время (за которое нужно lerp ?).
- Noise force - генератор шума, параметры:
noise amplitude = 200 200 200- амплитуда шума(в каких единицах хз)
- Render sprites - отображение спрайта, параметры:
- Material
Texture = particle_glow_05.vtex- выбираем текстуру для звездочек/искр.
- Color and alpha adjustments - цвет/альфа коррекция, параметры :
output blend mode = Additive- режим "добавочный".overbright factor = 10- увеличиваем яркость/насыщенность.
- Material
Текущий результат:
Base Properties - базовые настройки, параметры:
max particles = 100- максимум частиц.color = 124 252 0- базовый цвет rgb (в моем случае).radius = 25- радиус, ниже переключим на управление от CP.lifetime = 2- время жизни частицы, в секундах.
- Emit Instantaneously - тип генератора частиц, параметры: по умолчанию.
- Position Along Ring - инициализирует положение частиц вдоль полного или частичного кольца, параметры:
initial radius = CP# 2 .x- меняем тип параметра на CP Component, CP2 данные для стартового диапазона (радиус не частицы, а эффекта).even distribution = on- равномерное распределение частиц вокруг кольца (установить галочку).
- Init Float - все что угодно (Radius), в нашем случае каждая частица на круге будет изменять радиус равномерно - согласно кривой на графике (по краям меньше у центра самый большой радиус), параметры:
value = Per-Particle Number Percent of Total Count(0-1)- тип/источник данных.set value method = Scale Initial Value- установить метод (масштабирование).
- Init Float - все что угодно (Alpha), в нашем случае сделаем часть круга прозрачным - согласно кривой на графике, параметры:
value = Per-Particle Number Percent of Total Count(0-1)- тип/источник данных.output field = Alpha- на что влияем.
- Position Modify Offset Random - случайное смещение позиции (приподымаем над родительским эффектом), параметры:
offset min = 0 0 15минимальное значение.offset max = 0 0 15максимальное значение (в нашем случае статичный результат).
- Remap control point to scalar - пере/назначение контрольных точек, параметры:
input control point number = 1- нужная нам контрольная точка (контроль длительности жизни).output field = Life Duration- чем управляем на выходе (длительность жизни).input maximum = 100- максимальное значение на входе CP1.output maximum = 100- максимальное значение на выходе CP1.
- Lifespan endcap timed decay - Длительность жизни частицы зависит от распада(возможно в обычной ситуация частица живет весь lifetime, а тут есть возможность попросить быстрее свалить с экрана), параметры:
decay time = 0.2- время распада.
- Alpha Fade In Simple - плавность появления, параметры: по умолчанию.
- Movement Lock to Control Point - блокировка движения частиц к CP, параметры: по умолчанию.
Примечание :
У автора была в этом месте очепятка, в руководстве он исправил (но в самом файле эффекта(vpcf), сказал исправит позже - в моих файлах уже).
- Movement rotate particle around axis - вращение частиц вокруг оси, параметры:
rotation rate = 100- в этот раз, есть отличия от прошлого использования - теперь вращать будем против часовой стрелки и с другой скоростью.
- Lerp endcap scalar - lerp вроде линейная интерполяция, параметры:
output field = Alpha- к чему применить.value to lerp to = 0- хз.lerp time = 0.1- время (за которое нужно lerp ?). Моё понимание все еще на нуле.
- Render rope - тип отображения спрайта, параметры:
- Rope Global UV Controls - глобальный контроль текстуры, параметры:
global texture V World Size = 600- размер (растягиваем до неприличности).global texture V Scroll Rate = -100- скорость прокрутки текстуры (эффект движения) .
- Rope Order Controls - хз кто, параметры:
Closed loop = on- (включить галочку) что то зацикливаем.
- Orientation - ориентация, параметры:
orientation type = World-Z Align- тип ориентации спрайта в пространстве (лицом к верху).
- Material
- Textures
Texture = beam_plasma_08.vtex- выбираем текстуру.
- Textures
- Color and alpha adjustments - цвет/альфа коррекция, параметры:
overbright factor = 1.5- слегка увеличиваем яркость/насыщенность.
- Rope Global UV Controls - глобальный контроль текстуры, параметры:
Текущий результат:
Base Properties - базовые настройки, параметры:
max particles = 1- максимум частиц.color = 124 252 0- базовый цвет rgb(в моем случае).lifetime = 2- время жизни частицы, в секундах.radius = 100- радиус, ниже переключим на управление от CP.
- Instantaneous Emitter - тип генератора частиц, параметры:
num to emit = 1- сколько частиц за раз.
- Position Within Sphere Random - стартовая позиция частиц, параметры: по умолчанию.
- Rotation speed random - Скорость вращения (не работает без Rotation basic в Operator), параметры:
yaw offset min = -45- минималное значение для случайности.yaw offset max = -45- максимальное значение для случайности.randomly flip direction = off- (снять галочку) напрвление вращения в 1 сторону (в нашем случае по часовой).
- Remap control point to scalar - пере/назначение контрольных точек, параметры:
input control point number = 2- нужная нам контрольная точка( контроль радиуса).input maximum = 5000- максимальное значение на входе CP2.output maximum = 5300- максимальное значение на выходе CP2.
- Alpha Random - добавить прозначности при создании частицы(случайно - не в нашем случае), параметры:
AlphaMin = 150- минимум от 150.AlphaMin = 150- максимум до 150 (при одинаковых значениях результат статичный).
- Lifespan endcap timed decay - Длительность жизни частицы зависит от распада(возможно в обычной ситуация частица живет весь lifetime, а тут есть возможность попросить быстрее свалить с экрана), параметры:
decay time = 0.2- время распада.
- Alpha Fade In Simple - плавность появления, параметры: по умолчанию.
- Rotation basic - включение вращения, параметры: по умолчанию.
- Movement Lock to Control Point - блокировка движения частиц к CP, параметры: по умолчанию.
Примечание :
У автора была в этом месте очепятка, в руководстве он исправил (но в самом файле эффекта(vpcf), сказал исправит позже - в моих файлах уже).
- Set Float - первый оператор будет выполнять функционал Radius scale (но вывод данных у него особый), параметры:
value = Particle Age(0-1)- настроить согласно картинке ниже.output field = Scratch float 1- вывод данных на промежуточный "этап".
Пояснение :
если нажать ПКМ на точке в графике, можно указать доп настройки для работы с кривой (в нашем случае выбрать FREE, тогда вы сможете изменять степень перепада за доп хвосты у настраиваемой точки - надеюсь на картинке более менее понятно будет).
- Set Float - в этом мы сделаем некий генератор шума, параметры:
value = Noise- у него почему то нет иконки никакой, настраиваем по картинке.output field = Scratch float 2- вывод данных на второй промежуточный "этап".
Примечание :
На момент написания руководства в редакторе PET - не вводились данные, если вписать просто цифры в значение где имеется ползунок(слайдер) то при любом действии оно сбрасывалось , речь о Noise Frequency. Если двигать ползунок данные сохраняются, но неудобно установливать точные значения 0,299.
- Set attribute to scalar expression - а тут мы занимаемся математикой с двумя промежуточными "этапами"(на выходе параметра Radius), параметры:
expression = Multiply- умножение, остальное настроить как на картинке.input 1 = Scratch float 1- вход 1.input 2 = Scratch float 2- вход 2.set value method = Scale Initial Value- установить метод (масштабирование).
Пояснение :
После всех манипуляций мы получим эффект колебания(изменение) по радиусу.
- Lerp endcap scalar - lerp вроде линейная интерполяция, параметры:
value to lerp to = 0- хз.lerp time = 0.4- время (за которое нужно lerp ?).
- Lerp endcap scalar - lerp вроде линейная интерполяция, параметры:
output field = Alpha- к чему применить.value to lerp to = 0- хз.lerp time = 0.2- время (за которое нужно lerp ?).
- Render sprites - отображение спрайта, параметры:
- Orientation - ориентация, параметры:
orientation type = World-Z Align- тип ориентации спрайта в пространстве.
- Renderer Modifiers - модификаторы рендера, параметры:
alpha scale = 0.3- прозрачность спрайта.
- Material
- Textures
Texture = magic_circle_summon.vtex- выбираем текстуру для спрайта.
- Textures
- Orientation - ориентация, параметры:
Текущий результат:
Все что сейчас осталось сделать это добавить 3 дочерних эффекта к основному, т.к. мы сразу делали финальные версии всех частей:
Все готово. Не забываем! что бы увидеть результат нам необходимо ввести данные в контрольные точки, благодоря им у нас есть вомзожность контролировать положение, длительность и размер эффекта (включая дочерние) из lua:
Все готово. Не забываем! что бы увидеть результат нам необходимо ввести данные в контрольные точки, благодоря им у нас есть вомзожность контролировать положение, длительность и размер эффекта (включая дочерние) из lua:
- CP0 = 0 0 0 - координаты в пространстве.
- CP1 = 2 0 0 - длительность.
- CP2 = 200 0 0 - радиус эффекта.
Финальный результат:
Картинки залиты на github.com , там же и архив с моим результатом по уроку.
Последнее редактирование: