Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

Тривимірні атрактори частинок

Атрактори частинок

Атрактори частинок — це вузли, які застосовують силу до всіх частинок у межах їх досяжності. Вони підтягують частинки ближче або відштовхують їх залежно від напрямку цієї сили. Існує три типи атракторів: GPUParticlesAttractorBox3D, GPUParticlesAttractorSphere3D і GPUParticlesAttractorVectorField3D. Ви можете створити їх екземпляри під час виконання та змінити їхні властивості з ігрового коду; ви навіть можете анімувати та комбінувати їх для створення складних ефектів привабливості.

Примітка

Атрактори частинок ще не реалізовані для двовимірних систем частинок.

Перше, що вам потрібно зробити, якщо ви хочете використовувати атрактори, це ввімкнути властивість Attractor Interaction для ParticleProcessMaterial. Зробіть це для кожної системи частинок, яка повинна реагувати на атрактори. Як і більшість властивостей у Godot, ви також можете змінити це під час виконання.

Загальні властивості

Загальні властивості атрактора частинок

Загальні властивості атрактора

Є деякі властивості, які ви можете знайти на всіх атракторах. Вони розташовані в розділі GPUParticlesAttractor3D інспектора.

Strength контролює, наскільки сильною є сила притягання. Додатне значення притягує частинки ближче до центру атрактора, тоді як від’ємне значення відштовхує їх.

Затухання контролює падіння сили в області впливу атрактора. Кожен атрактор частинок має межу. Його сила найслабша на межі цієї межі і найсильніша в її центрі. Частинки за межами кордону взагалі не піддаються впливу атрактора. Крива ослаблення контролює, як міцність слабшає на цій відстані. Пряма лінія означає, що сила пропорційна відстані: якщо частинка знаходиться на півдорозі між кордоном і центром, сила атрактора буде вдвічі меншою, ніж у центрі. Різні форми кривих змінюють швидкість прискорення частинок до атрактора.

Різні криві ослаблення атрактора

Варіації збільшення сили: постійно на відстані до атрактора (ліворуч), швидко на межі та повільно в центрі (посередині), повільно на межі та швидко в центрі (справа).

Властивість Directionality змінює напрямок, у якому тягнуться частинки. При значенні 0.0 немає спрямованості, що означає, що частинки тягнуться до центру атрактора. При 1.0 атрактор є повністю спрямованим, що означає, що частинки будуть тягнутися вздовж локальної осі -Z атрактора. Ви можете змінити глобальний напрямок, обертаючи атрактор. Якщо Strength від’ємне, частинки натомість тягнуться вздовж осі +Z.

Різні значення спрямованості атрактора

Без спрямованості (вліво) проти повної спрямованості (вправо). Зверніть увагу, як частинки рухаються вздовж локальної осі Z атрактора.

Властивість Cull Mask контролює, на які системи частинок впливає атрактор на основі шарів видимості кожної системи. Атрактор впливає на систему частинок, лише якщо принаймні один із шарів видимості системи ввімкнено в масці відбракування атрактора.

Попередження

Існує відома проблема з атракторами частинок GPU, які перешкоджають належній роботі маски відбракування в Godot 4.0. Ми оновимо документацію, щойно це буде виправлено.

Ящикові атрактори

Ящик атрактора частинок

Атрактор коробки в списку вузлів

Коробчасті атрактори мають область впливу у формі коробки. Ви контролюєте їх розмір за допомогою властивості Extents. Протяжність прямокутника завжди вимірює половину сторін його меж, тому значення (X=1.0,Y=1.0,Z=1.0) створює прямокутник із областю впливу шириною 2 метри з кожного боку.

Щоб створити блоковий атрактор, додайте до сцени новий дочірній вузол і виберіть GPUParticlesAttractorBox3D зі списку доступних вузлів. Ви можете анімувати положення прямокутника або приєднати його до рухомого вузла для більш динамічних ефектів.

Коробка атрактора частин поля частинок

Коробчастий атрактор із від’ємним значенням сили розділяє поле частинок, коли воно рухається крізь нього.

Сферичні атрактори

Куля-атрактор частинок

Сферовий аттрактор у списку вузлів

Сферичні атрактори мають сферичну область впливу. Ви контролюєте їх розмір за допомогою властивості Radius. Хоча ящикові атрактори не обов’язково повинні бути ідеальними кубами, сферичні атрактори завжди будуть сферами: ви не можете встановити ширину незалежно від висоти. Якщо ви хочете використовувати сферичний атрактор для витягнутих форм, вам потрібно змінити його Scale у розділі Node3D атрактора.

Щоб створити сферичний атрактор, додайте до сцени новий дочірній вузол і виберіть GPUParticlesAttractorSphere3D зі списку доступних вузлів. Ви можете анімувати положення сфери або приєднати її до рухомого вузла для більш динамічних ефектів.

Сфера атрактор частин поля частинок

Сферовий атрактор із від’ємним значенням сили розділяє поле частинок, коли воно рухається крізь нього.

Векторні польові атрактори

Векторне поле атрактора частинок

Атрактор векторного поля в списку вузлів

Векторне поле — це тривимірна область, яка містить вектори, розташовані на сітці. Щільність сітки контролює кількість векторів і наскільки вони рознесені один від одного. Кожен вектор у векторному полі вказує в певному напрямку. Це може бути абсолютно випадковим або вирівняним таким чином, що утворює чіткі візерунки та шляхи.

Коли частинки взаємодіють із векторним полем, напрямок їх руху змінюється відповідно до найближчого вектора в полі. Коли частинка наближається до наступного вектора в полі, вона змінює напрямок відповідно до напрямку цього вектора. Швидкість частинки залежить від довжини вектора.

Подібно до ящикових атракторів, атрактори векторного поля мають область впливу у формі коробки. Ви керуєте їхнім розміром за допомогою властивості Extents, де значення (X=1.0,Y=1.0,Z=1.0) створює рамку з областю впливу шириною 2 метри з кожного боку. Властивість Texture приймає 3D текстуру, де кожен піксель представляє вектор, а колір пікселя інтерпретується як напрямок і розмір вектора.

Примітка

Коли текстура використовується як векторне поле, вам слід знати про два типи перетворення:

  1. Координати текстури відображаються на межі атрактора. На зображенні нижче показано, яка частина текстури відповідає якій частині об’єму векторного поля. Наприклад, нижня половина текстури впливає на верхню половину атрактора векторного поля, тому що +Y вказує вниз в UV-просторі текстури, але вгору в просторі світу Годо.

  2. Значення кольору пікселя відображаються на векторах напрямків у просторі. На зображенні нижче наведено огляд. Оскільки частинки можуть рухатися в двох напрямках уздовж кожної осі, нижня половина колірного діапазону представляє значення негативного напрямку, тоді як верхня половина представляє значення позитивного напрямку. Тож жовтий піксель (R=1,G=1,B=0) відображається на вектор (X=1,Y=1,Z=-1), а нейтральний сірий ( R=0,5,G=0,5,B=0,5) взагалі не призводить до руху.

Відображення текстури у векторне поле

Щоб створити атрактор векторного поля, додайте до сцени новий дочірній вузол і виберіть GPUParticlesAttractorVectorField3D зі списку доступних вузлів. Ви можете анімувати положення атрактора або приєднати його до рухомого вузла для більш динамічних ефектів.

Порада

Якщо у вас немає зовнішніх інструментів для створення текстур векторних полів, ви можете використовувати NoiseTexture3D із доданим Color Ramp як текстури векторних полів. Колірну рампу можна змінити, щоб налаштувати, наскільки векторне поле впливає на кожну координату.

Векторний атрактор поля в полі частинок

На дві системи частинок впливає один і той же атрактор векторного поля. Натисніть тут, щоб завантажити 3D-текстуру.