Осколки остаются, физика заканчивается: жизненный цикл обломков в Chaos Destruction
На одном из проектов мы активно использовали Chaos Destruction. Разрушаемой была заметная часть окружения: стены, панели, ящики, элементы уровня. Системой разрушений целиком занимался я, а требования прилетали с двух сторон. Арт и лиды хотели, чтобы всё разрушалось физически убедительно: панели отваливаются, куски стен падают, осколки сталкиваются друг с другом и с другими физическими объектами. Было и принципиальное требование: осколки не исчезают . Упал кусок стены и остался лежать, значит, там он и лежит. По обломкам на полу игрок понимает, что здесь произошло, и для арта это был художественный след, который нельзя стирать. Техарт смотрел на это с другой стороны. На одном из проходов по производительности стало видно, что в сцене лежит много осколков, которые почти не двигаются, но продолжают участвовать в физике. Они толкаются в куче, цепляются за соседей, не засыпают тогда, когда нам нужно, и всё это складывается в нагрузку на CPU. Просто выключить физику сразу после отделения нельзя: осколку нужно отыграть разрушение, упасть, занять своё место. Иначе куски повиснут в воздухе или поверхность под ногами игрока поменяется в неожиданный момент. Нужно было устроить и арт, и техарт, причём так, чтобы настройка каждого следующего ящика не превращалась в отдельную инженерную задачу. Читать далее
