3,8K подписчиков

Как работает разрушаемость в R6: Siege

1,3K прочитали
Пульки, дырки, ДСП

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

Пять лет назад Ubisoft удалось удивить дотошных любителей реализма, показав геймплей Осады. Выглядящий будто синематик, ловко избежал даунгрейдов и добрался до релиза как задумано - скрестив возможности и свободу.

Breaking the wall

Как понятно из названия, речь идет о главной фишке игры - возможности разломать на дырявые дощечки почти любую стену традиционно тесного осаждаемого помещения.

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

Пульки, дырки, ДСП-2

Маясь тактическим досугом с молотом на перевес или взрывчаткой за пазухой, в любой из представленной в игре "крепостей", можно обнаружить, неожиданно, балки фундамента - скелет дома, усмиряющий особо тактичных и балансирующий вертикальный геймплей.
Вокруг оных и облепляются сотни заранее подготовленных осколков.
Я попробовал визуализировать геометрию подобного пола в Blender'е :

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

Такая же ситуация и со стенами, однако через них то пробиться можно - в этом и идея, потому между двумя такими же разбитыми на осколки стенками, располагаются деревянные подпорки (вероятно для реализма).

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

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

Для сотворения дырок можно пользовать два способа :
Серьезный способ заключается в создании 6 вершин на наружной части каждой стенки, соединении их гранями, созданием меж них полигонов, удалении тех, что меж 6 вершин и перестройка геометрии осколка, в котором была проделана дыра.
Способ попроще - булева разность.

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

О том как пулька летит : Как работает стрельба в играх
Ломать не строить : Как устроена механика постройки