Unreal Engine 5: Настраиваем объект, чтобы он плавно покачивался на волнах
Мы уже включили плагин Water и создали океан. Давайте разберемся, как заставить любой объект держаться на воде. В комплекте с плагином есть пример плавучего куба — BP_BuoyancyExample. Попробуем повторить его логику и заставим плавать уточку, созданную CinekR9.
Шаг 1. Создадим блюпринт
Add → Blueprint Class → Actor. Назовем его, например, BP_BuoyancyDuck.
Шаг 2. Настроим логику в блюпринте
Во вкладке Components добавим два компонента: Static Mesh и Buoyancy, который позволит нашей уточке быть плавучей.
2.1 Настроим Static Mesh: — в Components перетянем Static Mesh на место DefaultSceneRoot, чтобы сделать его корневым, поскольку Buoyancy работает только с root-компонентом; — в Details в слоте Static Mesh выберем меш уточки, а также поставим галочки напротив Simulate Physics и Mass (kg).
2.2 Настроим Buoyancy
В Details у компонента найдем параметр Pontoons. На этих понтонах, словно на водных подушках, наша уточка будет держаться на воде. Количество понтонов зависит от размера объекта, и для нашего актора добавим четыре понтона.
В настройках понтона указываем координаты расположения понтона относительно актора (Relative Location) и радиус самого понтона (Radius). Чтобы определить координаты, можно временно добавить компонент Scene, подвигать его во вьюпорте, меняя перспективу, и выбрать подходящие точки. Затем эти значения просто переносим в Relative Location понтонов.
Чтобы уточка вела себя реалистично, не тонула, не заваливалась на бок, а мягко покачивалась на волнах, можно подкорректировать следующие параметры:
- Mass (kg) у StaticMesh — снизить массу. Например, поставить 50 вместо 100.
- Buoyancy Damp — сгладить качку на волнах. Я поставила значение 650. Это коэффициент затухания, который масштабирует сопротивление движения объекта в воде по оси Z и помогает устранять резкие скачки актора на волнах, делая колебания более плавными.
- Apply Drag Forces in Water — добавить водное сопротивление (включить галочку). После этого утка ведет себя на волнах плотнее и тяжелее, движения замедляются, вращение становится мягче, и она перестает скользить по поверхности.
Внутри Apply Drag Forces in Water доступны:
- Drag Coefficient — сила замедления движения объекта в воде. Для тонкой настройки можно увеличить второй слой — Drag Coefficient 2.
- Angular Drag Coefficient — сила замедления угловой скорости (вращения) объекта.
- Max Drag Speed — максимальная скорость, при достижении которой сила сопротивления не будет увеличиваться.
Другие полезные параметры:
- Buoyancy Coefficient — сила, с которой понтоны выталкивают объект вверх.
- Buoyancy Ramp Min Velocity, Buoyancy Ramp Max Velocity, Buoyancy Ramp Max — применяются при изменении скорости течения или скорости объекта; помогают сгладить поведение при нарастании скорости, чтобы объект естественно держался на воде.
- Apply River Forces — группа параметров для рек: сила течения, боковое давление и влияние берегов.
Шаг 3. Добавляем уточку на уровень
Нажимаем Compile, закрываем блюпринт и перетаскиваем его на сцену.
Шаг 4. Настраиваем океан
У актора океана в Details → Collision Presets ставим WaterBodyCollision.
Визуализация понтонов (консоль)
r.Water.DebugBuoyancy 1 — показать понтоны r.Water.DebugBuoyancy 0 — скрыть понтоны


Комментарии
Отправить комментарий