road to UE Senior
56 subscribers
96 photos
19 videos
2 files
8 links
UE5 разработка — C++ и Blueprint.
Архитектура, performance.

GitHub: github.com/wirnullptr
ArtStation: artstation.com/wir
Download Telegram
Dormant LOD

Добавил в систему «dormant LOD» — если снаряд улетел далеко от игрока и его никто не видит, он «замирает»: физика для него не считается, столкновения не проверяются. Как только он снова оказывается в зоне видимости — оживает. При пробуждении снаряд проверяется не одной линией, а несколькими сегментами вдоль настоящей дуги.

Результат теста на одинаковом бюджете кадра:
— без заморозки: ~33 000 снарядов
— с заморозкой: ~98 500 снарядов
2
Ballistic System Framework | Damage

В этом патче основной упор был сделан на систему регистрации попаданий и оптимизацию обработки столкновений.

В Framework появилась универсальная система получения урона, которая не навязывает какой-либо конкретный подход к реализации логики.
Поддерживаются сразу несколько сценариев использования:

• Автоматическое применение урона через один флаг. Минимум настройки, всё работает сразу после подключения компонента.

• Полноценная интеграция с Gameplay Ability System. Framework умеет применять Gameplay Effects напрямую через Ability System Component.

• Полностью ручной режим. Компонент лишь уведомляет о попадании, а вся логика остаётся под контролем разработчика.

Также предусмотрен Fallback-режим. Если у объекта нет компонента Framework, но реализован стандартный TakeDamage, система всё равно сможет передать ему урон (при необходимости это поведение можно отключить).

Collision LOD |

Теперь система автоматически меняет точность трейсов в зависимости от расстояния до ближайшего игрока:

• Близко → максимальная точность.

• Средняя дистанция → более дешёвые проверки.

• Далеко → минимальная стоимость трейсов и проверки выполняются не каждый кадр.

При этом даже на самых дальних дистанциях быстрые снаряды не проходят сквозь тонкую геометрию. Для этого используется трейс от предыдущей позиции до текущей, что исключает туннелирование даже при пропуске кадров.

Все дистанции масштабируются автоматически относительно дистанции перехода снаряда в Dormant, поэтому система легко адаптируется под разные проекты без ручной перенастройки множества параметров.

📈 Результат фазы:
• Универсальная система регистрации попаданий.
• Интеграция с GAS и стандартным UE Damage.
• Collision LOD с автоматическим масштабированием.
• Измеримый прирост производительности без уменьшения количества активных снарядов.
❤21
Media is too big
VIEW IN TELEGRAM
Ricochet & Penetration

Система определяет материал, угол контакта и энергию пули. На основе этого: рикошет, пробитие или застревание.

Каждый материал имеет свой профиль: порог энергии, коэффициент потерь.
На каждом событии пуля теряет энергию. Второе попадание — меньше урона, третье — ещё меньше. Урон считается из текущей скорости пули.
❤5🔥11
Сейчас доделываю последние фичи и тестирую. Через несколько недель выложу сюда тестовую версию — можно будет попробовать в своём проекте🎁

Нужен фидбэк от обычного юзера подобных инструментов, перед работой над мультиплеером.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤41
Ribbon трейлы⚡️

Добавил полноценные ribbon-трейлы снарядов: настоящую 3D-геометрию хвоста. Ribbon строит геометрию заново под каждый ракурс камеры.
Реализовано полностью на C++, без Niagara — свой FPrimitiveSceneProxy, генерация геометрии на render thread.

Это часть подсистемы косметики плагина. В которой далее будут реализованы звуки, эффекты и декали.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤411
Дальше в FX — визуальный отклик на попадание: декали от пробития, искры на импакте, звук.

Эффект попадания и звук пока единые для всех типов взаимодействия — обычный импакт, рикошет, пробитие используют общий профиль. Разделение по профилям в планах.
❤4👍1
Эффекты попадания — звук, декаль, партиклы теперь разделены по типу взаимодействия: у каждого события свой набор звука, Niagara-эффекта и материала декали.

Отдельно занялся декалью рикошета — теперь декаль растягивается вдоль вектора движения снаряда в момент удара, получается вытянутый скол, а не точка.

Заодно доработал трейлы: цвет и ширина ленты теперь берутся из профиля снаряда. А приоритет отрисовки у ближайших снарядов.
❤2
• Расширяем портфолио. Наконец-то дошли руки сделать рендер и залить на арту.

• Использовалась запечка карты нормалей.
- Low poly 22k
- Hight poly 2.4m

ArtStation - artstation.com/wir
1❤31