Створення систем частиць та ефектів (VFX) магії
Магічні ефекти — це та область, де різниця між «прийнятно» та «відмінно» цілком визначається тим, наскільки художник розуміє інструмент. VFX Graph в Unity дає обчислення на GPU, мільйони частиць, симуляцію сил та collision у реальному часі. Particle System (Shuriken) — CPU-based, обмежений кількістю частиць, але простіший у настройці та надійніший на мобільних платформах.
Вибір інструменту — перше архітектурне рішення в роботі над магічним VFX.
VFX Graph vs Particle System: де межа
VFX Graph обов'язковий, коли: потрібно більше 10 000 одночасних частиць, потрібна GPU physics (Collision з SDF, Vector Field forces), потрібна плавна анімація по Grid Layout з спрайт-шиту з субкадровою інтерполяцією. Для файрбола з тисячами іскор, для порталів з турбулентним потоком частиць — VFX Graph.
Particle System достатньо, коли: мобільна платформа (VFX Graph вимагає Compute Shader support, що є не у всіх мобільних GPU), невелика кількість частиць (до кількох сотень), проста інтеграція з Animator через ParticleSystem.Play() в Animation Event.
Змішувати обидва — нормально. Типична архітектура заклинання: VFX Graph для основного ефекту (потік вогню, хмара іскор), Particle System для вторинних деталей (дим, мілкі світлячі точки навколо), кастомний шейдер на меші для oreol та distortion.
Структура магічного VFX: шари
Переконливий магічний ефект будується з кількох візуальних шарів, кожен з яких вирішує окрему задачу:
Core — ядро ефекту. Щільний, яскравий центр. Звичайно це меш з emissive шейдером або billboard sprite з additive blending. Висока opacity, мінімальний рух. Задача — дати погляду точку фокусу.
Mid — основний об'єм. Основна маса частиць — вогонь, енергія, плазма. Це те, що більшість людей вважає «самим ефектом». Тут працює VFX Graph з Turbulence Force, Vortex Force або кастомним Vector Field. Частики з Lit шейдером, щоб приймати освітлення від самого ефекту (через Point Light Output ноду в VFX Graph).
Edge — краї та шлейф. Дрібні частики, що йдуть від основного об'єму. Альфа-розчинення до нуля по часу життя. Additive blending — вони «світяться» поверх всього іншого.
Secondary — деталі. Іскри, бульбашки, рунічні символи, листки. Створюють ощущение складності та унікальності. Часто це окремий Particle System з низькою emission rate.
Distortion — искажение простору. Fullscreen distortion mask навколо ефекту через Distortion Renderer Feature в URP або вбудований Distortion pass в HDRP. Це сигналізує мозку: «тут відбувається щось незвичайне з простором».
Point Light Output та динамічне освітлення від ефекту
VFX Graph в Unity 2022+ має Point Light Output block, який дозволяє частикам емітувати світло. Це змінює все: оточення навколо заклинання починає освітлюватися в реальному часі, тіні стрибають, стіни мерехтять.
Настройка Light Output: Intensity повинна бути помірною (0.5–2.0 для більшості ефектів) інакше bloom перегорить все навколо. Range — від 1 до 5 одиниць. Кількість активних light instances одночасно — обмежена настройкою в URP Pipeline Asset (Maximum Additional Lights per Object). Превишення ліміту — зайві джерела мовчки ігнорюються без попередження.
Для оптимізації: реальний Point Light потрібен тільки у найяскравіших, найближчих до камери частиць. Решта емулюють світло через emissive шейдер + Bloom. У VFX Graph це реалізується через Set Active в Light Output з умовою по Lifetime або Distance To Camera.
Заклинання вогню: розбір конкретного прикладу
Проект: action RPG, Unity 2022 LTS, URP. Задача: fireball — projectile, летючий від руки до цілі, вибухаючий при попаданні.
Структура: два VFX Graph Asset'а (travel phase та explosion phase) + два Particle System (trailing sparks та smoke) + кастомний шейдер на sphere меш для core glow.
Travel phase VFX Graph: Sphere Spawner з radius = 0.2, Turbulence Force з невеликою інтенсивністю, колір по Gradient по Lifetime (жовтий → оранжевий → темно-червоний), Size over Lifetime — зменшення до кінця життя частики. Швидкість частиць — у протилежному напрямку руху файрбола (шлейф тягнеться назад).
Explosion phase: Burst emit 2000 частиць за один кадр, Sphere initial velocity з високим radial factor, Collision з SDF сцени — частики відскакують від поверхонь. Point Light Output з intensity 5.0 на перші 0.3 секунди, потім Lerp до 0. Screen-space shockwave через кастомний distortion pass, активізований через Signal з VFX Graph через C# event binding.
| Тип ефекту | Строк |
|---|---|
| Простий spell (1–2 шари, без динамічного світла) | 2–3 дні |
| Повноцінний магічний ефект (4–5 шарів, світло) | 5–8 днів |
| Система заклинань (5–10 унікальних VFX) | 2–4 тижні |
| Explosion або ambient VFX для окружень | 3–6 днів |
Вартість — індивідуально, після отримання референсів та опису платформи.





