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.
Checking the stable version of the documentation...
Тривимірні атрактори частинок

Атрактори частинок — це вузли, які застосовують силу до всіх частинок у межах їх досяжності. Вони підтягують частинки ближче або відштовхують їх залежно від напрямку цієї сили. Існує три типи атракторів: 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 текстуру, де кожен піксель представляє вектор, а колір пікселя інтерпретується як напрямок і розмір вектора.
Примітка
Коли текстура використовується як векторне поле, вам слід знати про два типи перетворення:
Координати текстури відображаються на межі атрактора. На зображенні нижче показано, яка частина текстури відповідає якій частині об’єму векторного поля. Наприклад, нижня половина текстури впливає на верхню половину атрактора векторного поля, тому що
+Y
вказує вниз в UV-просторі текстури, але вгору в просторі світу Годо.Значення кольору пікселя відображаються на векторах напрямків у просторі. На зображенні нижче наведено огляд. Оскільки частинки можуть рухатися в двох напрямках уздовж кожної осі, нижня половина колірного діапазону представляє значення негативного напрямку, тоді як верхня половина представляє значення позитивного напрямку. Тож жовтий піксель
(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-текстуру
.