Операция выполнена!
Закрыть
Хабы: Unreal Engine, Разработка игр

На одном из проектов мы активно использовали Chaos Destruction. Разрушаемой была заметная часть окружения: стены, панели, ящики, элементы уровня. Системой разрушений целиком занимался я, а требования прилетали с двух сторон.

Арт и лиды хотели, чтобы всё разрушалось физически убедительно: панели отваливаются, куски стен падают, осколки сталкиваются друг с другом и с другими физическими объектами. Было и принципиальное требование: осколки не исчезают. Упал кусок стены и остался лежать, значит, там он и лежит. По обломкам на полу игрок понимает, что здесь произошло, и для арта это был художественный след, который нельзя стирать.

Техарт смотрел на это с другой стороны. На одном из проходов по производительности стало видно, что в сцене лежит много осколков, которые почти не двигаются, но продолжают участвовать в физике. Они толкаются в куче, цепляются за соседей, не засыпают тогда, когда нам нужно, и всё это складывается в нагрузку на CPU.

Просто выключить физику сразу после отделения нельзя: осколку нужно отыграть разрушение, упасть, занять своё место. Иначе куски повиснут в воздухе или поверхность под ногами игрока поменяется в неожиданный момент. Нужно было устроить и арт, и техарт, причём так, чтобы настройка каждого следующего ящика не превращалась в отдельную инженерную задачу.

Читать далее
Читайте также
НОВОСТИ

ПИШИТЕ

Техническая поддержка проекта ВсеТут

info@vsetut.pro