Истребители багов: разламываем Sabre

На этой неделе выпуск «Истребителей багов» проведет наш специальный гость Патрик Салерно. Он подменит занятого в работе над 3.0 Марка Эйбента и исследует проблему, почему Aegis Sabre при разрушении не разваливается как положено.

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

Ранее разработчики добавили задержку при отделении обломков и порядок, согласно которому эти обломки должны отламываться от корабля. Первым делом нужно выяснить, какой элемент кода Saber работает некорректно. Один из способов это сделать – найти в коде нос корабля и те детали, которые должны от него отделяться. Патрик обнаружил, что там не было эффектов. Из-за внесенных ранее изменений эту часть кода теперь необходимо перестроить, а также добавить в нее новые функции.

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

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

Патрик переключился на 3D Max и стал смотреть, как элементы корабля вообще должны отделяться. В иерархии корабля хорошо видны зависимости одних деталей от других. Если выделить крыло, в окне перспективы появятся зеленые квадратики – вспомогательные объекты, использующиеся для создания спецэффектов. Попутно с устранением основного бага можно отрегулировать и их работу. В итоге Патрик настроил частицы и параметры повреждений, перегрузил xml в тестовой сцене и начал методично отстреливать крылья и прочие выступающие элементы корабля. Теперь детали корректно разлетаются в стороны по множеству различных путей.

Если посмотреть в xml на код носа корабля, там можно обнаружить строчку, отвечающую за отсоединение. В ней заданы два параметра: степень отделения и возможность отделения, а также указаны произвольные силы (для осей X, Y и Z), благодаря которым деталь после взрыва отлетит в сторону. Здесь можно установить правило, чтобы после уничтожения носа возникала некоторая вероятность его отделения. И это нужно проделать с каждым отделяемым компонентом.

Теперь при взрыве носа он отлетает в сторону – система наконец заработала правильно. Следующий шаг – отправить результаты исправлений тестерам и попросить их воспроизвести ситуацию, чтобы окончательно убедиться, что проблема решена. Также Патрик отправил команде по визуальным эффектам новые частицы, которые он настроил в 3D Max.

Еще одним багом в игре стало меньше!

Источник: https://forum.star-citizen.pro

logo

ПОХОЖИЕ СТАТЬИ

КОНГРЕСС СЕГОДНЯ: СВИДЕТЕЛЬСКИЕ ПОКАЗАНИЯ TORRAL AGGREGATE

КОНГРЕСС СЕГОДНЯ: СВИДЕТЕЛЬСКИЕ ПОКАЗАНИЯ TORRAL AGGREGATE

Конгресс ОЗИ ПОДКОМИТЕТ ПО ПЛАНЕТАРНОЙ РАЗРАБОТКЕ 2947-11-14 по Стандартному Имперскому Времени Автоматическая стенограмма заседания Подтверждена и допущена – младший архивист Бёрг (#748392BDF) 2947-11-14_13:04 – Краткое изложение заседания Сенатор Торсон Хаскел (U – Азура...

Паразит: Специальный выпуск

Паразит: Специальный выпуск

Страх нашёл нового хозяина ПАРАЗИТ: специальный выпуск ВЕРНУТЬСЯ К КЛАССИКЕ УЖАСОВС НИКОГДА ПРЕЖДЕ НЕ ВИДАННЫМИ КАДРАМИКОТОРЫЕ РАНЬШЕ СЧИТАЛИСЬ СЛИШКОМ ЭКСТРЕМАЛЬНЫМИ! В ролях: Ана Брайн, Томас КОМД, Линкольн Баллантайн и Рейчел ТоллСпециальные визуальные эффекты от PREET SJOSTROM...

Встреча с авторами лора: Специальный выпуск

Встреча с авторами лора: Специальный выпуск

https://youtu.be/ZTGlhdZmMus