В Unreal Engine 4/5 есть стандартные инструменты, позволяющие добавить классную интерактивность на уровни и визуально расширить геймплей. Почему нынешние разработчики этим не пользуются, я хз.
Для создания разрушаемого окружения, нам понадобиться плагин Apex Destruction, он поставляется вместе с движком и его можно включить в меню Plugins.
Активируем и перезагружаем наш проект.
Теперь нам доступно создание разрушаемых объектов в движке. В Content Browser выбираем любой Static Mesh, который нравится, кликаем по нему правой кнопкой мыши и щелкаем Create Destructible Mesh.
Меш создается в той же папке, что и оригинальная модель.
Открывается редактор для настроек и нарезки модели.
С настройками можешь поиграться, а я покажу основные. Damage Spread ставим на 0.
Debris отвечает за мусор — это отваливающиеся части модели. Тут мы можем установить их разброс и время жизни (Lifetime), через которое эти самые части будут исчезать.
Далее ставим, нужные нам, флаги.
World Support — отвечает за то, чтобы модель стояла спокойно и не разваливалась при запуске игры.
Debris Timeout — будет ли мусор удаляться.
Еще два, отмеченных флага, позволяют воздействовать на модель точнее. Без них, например, разрушить модель можно только с одного направления. (либо я тупой)
Support Depth ставим на 1, включаем галочку Enable Debris и Debris Depth меняем на 0.
На вкладке Effects, мы можем установить частицы и звук, которые будут воспроизводиться при разрушении модели.
В следующей вкладке, идет настройка материалов. Второй слот отвечает за текстуру, которая будет натягиваться на сколы разрушенных частей, можешь поставить сюда любой материал.
Ну и самое интересное, настраиваем количество частей, на которые будет порезана модель и зерно.
Жмем на кнопку и ждем.
Готово.
Сохраняем, идем в BluePrint нашей пули, если она у нас есть. Если нет, создаем, лол.
Добавляем в нее Event Hit и Apply Radial Damage, значение в полях ставим на свой вкус и удаляем пулю, после соприкосновения с нашим объектом. Соединяем Hit Location в событии и Origin в ARD.
Размещаем объект на уровне и тестироваем.
Перетаскиваем на холст Mesh и добавляем ему Break Constraint. Это позволит отделять кости модели друг от друга.
Соединяем Hit Location и Bone Name. А затем идем в Blue Print нашей пули.
В ней создаем Event Hit и повторяем то, что на скриншоте.
Вот и все, в зависимости от точки попадания по Mesh, у него что-нибудь да отвалится.
Я немного переделал чертеж под шутер с видом сверху, убрав с Event PointDamage в персонаже соединение Bone Name и заменив его на массив с именами костей, которые могут отлететь.
В случае попадания/смерти, у персонажа отлетит одна и пара случайных конечностей + им будет предан небольшой импульс.
Надеюсь, хоть что-то из этого окажется тебе полезным и ты сделаешь офигенски крутую игру ^_^