Доброго времени суток, Дорогой читатель!
Сегодня, я предлагаю "вольный/свободный" перевод урока 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 , там же и архив с моим результатом по уроку.
Последнее редактирование: