Дизайн: Новая система повреждений

Обсуждение на форуме: http://forum.star-citizen.pro/index.php/topic/2588-di ..
Приветствую, Граждане!
Некоторые из вас могли увидеть в секции “Sneak peak” одного из минувших выпусков шоу “Вокруг Вселенной” или узнать из отчета команды Foundry 42, что мы какое-то время упорно трудились над улучшением системы повреждения кораблей. Мы уже показали нашу мощную и гибкую систему контроля повреждений в модуле Arena Commander. Объединенная с великолепной работой художников, она демонстрирует потрясающие результаты. Но ваши корабли являются важной составляющей Вселенной Star Citizen, так что нам пришлось пойти еще дальше.
Мы провели нисходящий анализ системы повреждений с целью определить те элементы, которые можно улучшить. Несмотря на то, что отделение каждой части вражеского корабля, при получении им серьезного урона, приносит огромное удовольствие, мы почувствовали, что сможем лучше представить тип полученного урона и место его нанесения. Будут ли это повреждения от огнестрельного или энергетического оружия, взрыва или вы поцарапаете корабль после хитроумной посадки, мы хотим дать вам возможность различать полученный урон, просто взглянув на его последствия. Мы чувствовали, что в игре это будет особенно важно, поскольку хотим, чтобы каждый корабль своим внешним видом мог поведать историю о том, через что ему пришлось пройти.
Две другие области, которые мы хотели улучшить: уменьшить время, затрачиваемое нашими художниками на прорисовку множества состояний повреждений для каждой детали корабля; и снизить значительное потребление памяти, к которому приводила обработка всех этих состояний. Если оставить все как есть, то по мере роста масштабов игры мы столкнемся с проблемой, ведь создание состояний повреждений - очень трудоемкий процесс. У каждого корабля более десятка основных частей и для каждой из них требуется сделать пять состояний, представляющих различные уровни повреждений. Затем для каждого из этих пяти состояний требуется создать до пяти упрощенных сеток, которые будут использоваться по мере удаления объекта от наблюдателя (для сохранения производительности). Суммарно получается более 200 сеток на корабль!
Когда вы присмотритесь к текущим состояниям повреждений в модуле Arena Commander, то заметите, что первые два состояния, как правило, содержат небольшие вмятины и подгоревшие участки. Также некоторые панели обшивки, возможно, будут оторваны, обнажая внутренности корабля. Серьезные изменения силуэта корабля вы сможете увидеть, лишь получив 75% или 100% урона. Однако предыдущие состояния требуют такого же количества памяти для просчета. Наша задача была – постараться обрабатывать небольшие повреждения без необходимости создавать новые сетки, сохраняя, таким образом, как память компьютера, так и время работы художников. Для этого мы решили записывать попадания по кораблю в отдельный набор текстур, обернутых вокруг целой модели корабля. Затем применить к этим текстурам шейдер, который бы динамически добавлял вмятины и обожженные места именно в том месте, где ваш корабль получил повреждения. Однако, вместо того, чтобы смешивать текстуры повреждений в различных зонах в одну простую текстуру, мы выбрали способ, более точно моделирующий тип полученного повреждения. Для этого записываются четыре параметра:
- ТЕМПЕРАТУРА: Текущая температура корпуса
- ПРОЖОГ: Максимальная температура, при которой был прожжен корпус
- ТОЛЩИНА: Как много сохранилось внешней обшивки. Сначала облезает краска, затем основной металл
- ДЕФОРМАЦИЯ: Сколько физического воздействия следует передать на корпус, чтобы согнуть и исказить его
Используя эти четыре значения, мы можем заставить корпус светиться от жары, а краску гореть и пузыриться. Можем обдирать ее, обнажая металл обшивки, сминать и деформировать поверхность, и даже прорезать отверстия сквозь обшивку, оголяя внутренние механизмы и проводку. Вместо моделирования внутренностей корабля только в определенном месте, теперь мы моделируем их под большей частью обшивки на всей протяженности корпуса. Вы, возможно, ожидаете, что использование такого подхода повлечет за собой множество работы для наших художников, но они придумали несколько методов, позволяющих очень эффективно добавлять внутренние детали, так что теперь общая установка системы повреждений проходит гораздо быстрее, чем раньше.
История жизни вашего корабля
Интересная особенность наличия у нас доступа к этим четырем параметрам в том, что теперь мы можем с заданной силой воздействия отпечатывать их на вашем корабле в виде уникального рисунка для каждого вида оружия, взрыва или типа столкновения. Тогда как лазеры заставят вашу обшивку светиться несколько секунд, оставляя после себя обгоревшую краску и оголенный металл, мощное баллистическое оружие может пробить в корпусе сквозную дыру. Пока мы только делаем наброски того, как далеко можно зайти с этой системой. В ближайших планах обновление программного кода оружия и боеприпасов, чтобы продемонстрировать более уникальное и физически корректное поведение при получении урона.
Мы испробовали эту технологию на корабле Gladius, и в версии Arena Commander 1.1.0 вы сами увидите потрясающие результаты. Чего вы не заметите, так это того, что для просчета повреждений на Gladius используется в четыре раза меньше памяти, чем для остальных кораблей, а это означает улучшенную производительность для наших сторонников. Наши художники счастливы, поскольку такой подход позволит им быстрее создавать корабли, что в конечном итоге ускорит выход игры! Вы также будете рады узнать, что мы применим эту технологию к каждому новому кораблю и по мере разработки модернизируем старые.
Новые инструменты
Чтобы процесс разработки системы повреждений имел законченный вид, необходима дополнительная технология размещения Эффектов Частиц и Воспламенителей. Когда какая-то часть (например, крыло) отделяется от корабля, вдоль места разъединения проходят вспышки, а воспламенители детонируют. При детонации на поверхности корабля появляются пробоины и обгорелые места, которые оголяют находящиеся под обшивкой внутренности. Таким образом, деталь корабля выглядит как бы оторванной от корпуса. Когда от корабля отламываются различные элементы, то во все стороны разлетаются частицы, добавляющие впечатляющие эффекты дыма, взрывов и искр. Чтобы внедрить эти эффекты в игру, Мэттом Интриери (Matt Intrieri) был разработан специальный художественный инструмент, который конвертирует вспомогательные объекты из 3DS Max в код формата XML. Майк Сноудон (Mark Snowdon), художник по эффектам в CIG, использовал этот инструмент, чтобы добавить систему Частиц и Воспламенителей вдоль каждого компонента корабля, создавая динамические и реалистичные эффекты, основанные на состоянии корабельных систем в каждом конкретном месте.
Следующие шаги
Но это не конец пути для описанной выше технологии. Существует еще несколько важных особенностей, над которыми мы работаем. Одна из них – эффекты частиц, создаваемые, просчитываемые и воспроизводимые целиком на графическом процессоре. Такой подход даст два существенных преимущества. Первое – это производительность. Мы сможем создавать в 10-100 раз больше частиц, если их просчетом будет управлять графический процессор вместо центрального. Второе – они прекрасно согласуются с точным полученным уроном. Так, по мере выгорания обшивки, светящиеся угольки будут затухать, а при получении физических повреждений, вы увидите отлетающие осколки металла. Если вы оторвете от обшивки крупную секцию, то увидите заполненное обломками пространство вокруг. Чтобы в ситуации, когда двадцать истребителей атакуют крупный корабль, убедиться, что производительность игры не упала, мы также работаем над некоторыми крупными оптимизациями системы повреждений, используя средства DirectX 11.
Первое, что мы сделали, когда новая система повреждений заработала – повеселились, написав наши имена на корабле с помощью орудия Гатлинга! Теперь ваш черед играть, и мы хотим услышать, что вы думаете о новой технологии. Пожалуйста, дайте нам знать на форумах RSI.
Будущее
Реализовав новую систему повреждений, мы продолжаем стремиться к еще более реалистичным и эффективным методам, позволяющим улучшить графику во всех сферах игры. Мы будем добавлять новые эффекты, такие как искры от поврежденного оборудования под обшивкой корабля, по мере того, как в корпусе будут открываться зияющие дыры. Уже были опробованы различные настройки освещения и системы частиц для добавления внутренним элементам корабля нескольких состояний: Исправен, Поврежден, Критически поврежден и Неработоспособен. Они проинформируют игроков о ходе битвы и увеличат погружение в игру. Наш новый разработанный механизм состояний называется GOST. Он будет определять то, как проходит поток энергии (исправный или неисправный) между системами корабля, что серьезно повлияет на взаимодействие экипажа на многоместных кораблях и эффекты повреждений для них. Учитывая сложность наших крупных кораблей, что подобны целым летающим уровням, остается большой вопрос насчет реализации пробоин в корпусе. Как описать получение критического урона в космическом вакууме, и как этот урон повлияет на игроков внутри. Оптимизации во всех сферах позволят нам поддерживать все большее число одновременно играющих, создавая массивные сетевые баталии. Мы очень довольны и взволнованы выпуском этой первой версии новой оптимизированной технологии повреждений, и надеемся, что игроки чувствуют то же самое.

Дизайн: Новая система повреждений - 771279413685

Комментарии

Комментариев нет.