Привет, капсулиры! От имени команды TriLambda (команда графических дизайнеров Евы) докладывает CCP BlueScreen, o7
Давненько мы не общались. Я слышал, на севере неспокойно — пилоты Нового Эдема ждут вестей с Севера. Не бойтесь — вороны возвращаются. [Явная отсылка к Дж. Мартину, поскольку нихрена на севере Евы сейчас не происходит. — прим. КО перев.]
Команда TriLambda, будучи самой старой и самой многочисленной командой разработчиков EVE Online, упорно работала над подготовкой множества дополнений и улучшений в релизе Рубикона 1.1.
Сегодня я расскажу в общем о результатах наших разработок для Рубикона 1.1, а потом подробно опишу процесс создания вреков капитальных кораблей.
Но перед тем, как перейти к делу, замечу, что этот девблог был написан раньше месива в B-R5RB (перевод на еврукоме). Об этом невероятном эвенте и наших планах по созданию внутриигрового памятника под названием «Титаномахия» [Это греческая калька. «Битва титанов» будет более по-русски. Но я бы обозвал Титаномахач. Посмотрим, что там Друуг придумает — прим. перев.] для увековечения этого события можете прочитать в новом девблоге CCP Dolan’а. Счастливое совпадение с введением новых капитальных вреков не ускользнуло от нашего внимания.
Рубикон 1.1 и TriLambda
CCP Huskarl и CCP BunnyVirus старательно трудились над окончанием линейки фракционных кораблей Сестёр Евы (Sister of EVE, SoE). 28 января на ближайшие к вам рынки мы осуществили поставку нового линкора Сестёр под названием Нестор:
О параметрах Нестора можно почитать здесь.
Продолжая двигаться в направлении реализации долгосрочного проекта «V3» под руководством CCP Salvo, мы опять обновили текстуры, добавив новейшие шейдеры и эффекты теней в существующий контент. На этот раз мы добавили 44 полностью обновлённые и обработанные V3 станции в Новый Эдем. Вот некоторые из них:
Также, мы продолжаем работу над редизайном моделей кораблей. На этот раз, чемпион ССР по чессбоксингу CCP LeftRook и немецкий изгнанник CCP Phor, действуя от лица TriLambd’ы переделали Crucifier.
CCP Caiman, CCP Gorgen, CCP LuxusLulli, CCP Angler и CCP Hansuman (это одни из самых лучших в ССР) скооперировались, чтобы добавить новые мобильные структуры в коллекцию Рубикона.
В Рубиконе 1.1 мы добавили три новых структуры к вящей радости граждан Нового Эдема.
"Encounter Surveillance System«, «Mobile Micro Jump Drive» и «Mobile Scan Inhibitor». В добавок к этому, мы сделали два варианта скинов для выпущенных ранее сифонов, чтобы «Small Mobile ‘Hybrid’ Siphon» и «Small Mobile ‘Rote’ Siphon» можно было отличить.
Больше информации об этих новых мобильных структурах можно получить в следующих девблогах:
Номер один — оффсайт / евруком
Чтобы вас обрадовать, CCP Mannapi разработал весьма продвинутую технологию рендеринга иконок, которая не зависит от вашего железа.
Мы также внесли несколько улучшений в качество рендеринга клиента Евы. Сюда можно отнести оптимизацию и динамические поправки в работу ближней/дальней камеры при обрезании плоскостей и обсчёт теней.
И вот ещё что. Помните те облака в космосе, которые все так любят? Так вот сейчас вы можете их отключить, если это создаёт проблемы вашей графической карте или компьютеру. В настройках «Эффектов» вы теперь можете включать и выключать облака частиц. Для внесения изменений потребуется смена сессии.
Вот чем мы занимались во время праздничных каникул. А теперь займёмся созданием вреков капиталов.
Как сделать врек космического корабля (Мини-гайд для нубов)
Сегодняшняя наша история повествует о разрушении смерти. Что-то типа гайда. Надеюсь, вам понравится эта статья и вам будет столь же приятно делать вреки на поле боя, как нам было интересно создавать их модели.
Команда TriLambda уже давно хотела заняться вреками капиталов.
Технически, это не является частью проекта V3 (поскольку вреки в клиенте уже давно обработаны под технологию V3). Просто иногда во время разработки бывает так, что просто поменять текстурку или применить новый шейдер совершенно недостаточно для достижения нужного эффекта. И останки больших кораблей были как раз такой штукой.
Так зачем это делать?
Нынешние вреки капиталов — это всего лишь более тёмные версии исходных кораблей. Вблизи вы сможете увидеть пару дыр в тонком, как бумага, корпусе, сквозь которые можно увидеть внутреннюю пустоту бывшего корабля.
Как с точки зрения зрителя, так и художника, такое произведение явно не дотягивает до уровня «обновлённого содержания». Эти останки были унылы и не вносили атмосферности.
К тому же, отличить труп от живого и полностью пригодного к бою корабля было довольно сложно, и мы принялись за работу.
А как тогда должны выглядеть останки?
Мы хотели создать визуально убедительные и чёткие останки, но не знали с какого конца подойти к проблеме.
Можно ли разломать модель корабля, чтобы она выглядела как последствия настоящего взрыва? Если не можем, то нельзя ли использовать какие-нибудь эффекты рендеринга, чтобы симулировать такие эффекты?
А если мы всё же сможем разбить сетки и получить приемлемый результат, то как потом изобразить внутренности корабля? Ничем подобным мы ранее не занимались.
Кто и как этим занимался?
Пару слов о том, как делаются подобные обновления и о том, какое количество ресурсов можно бросить на подобный проект по обновлению графики.
Нет, я совсем не тот, кто занимается геймплеем ПОСов или фиксит лаги. Этот проект оказался на моём рабочем месте потому, что я тот прень, который добавляет полигоны, эффекты и частицы в Еву. Когда моя работа заканчивается, приходит CCP ManKiller, смотрит на FPS, и угрожает выкинуть меня в окно*.
Для любой возможности и/или проекта в Еве мы оцениваем соотношение «пользы для конечного потребителя» и «стоимости разработки»
С самого начала было ясно, что просто бросить пачку художников на полную перерисовку ассетсов вреков довольно непрактично. Даже разломав исходные корабли вручную (если бы это было возможно) и создавая новые вреки «по очереди», мы потратили бы гораздо больше человеческих ресурсов, чем это нужно было для подобного проекта.
Нам необходимо было понять, что именно мы МОГЛИ сделать и что из этого было подходящим.
*CCP ManKiller создал шейдеры для этих останков и сильно облегчил интеграцию новых вреков в клиент. Так что при встрече с ним в тёмном переулке держитесь противоположной стороны и не забудьте поблагодарить этого безусловно одного из величайших мужей современности.
Исследования и разработки
Следующим шагом надо было провести кое-какие исследования. На сцене появляется старший технический дизайнер CCP Ph00ze.
CCP Ph00ze, правда, тут же исчезает в отдельный кабинет и начинает перебирать варианты. Были ли наши начальные идеи практичными? Если нет, как их можно изменить для получения заветных результатов?
Прошло несколько недель в попытках и тестах, проведении головоломных экспериментов с булевой логикой в Майе и построении инструментов для каждого шага.
В какой-то момент стало ясно, что проявив некоторое упорство, спланировав пути к отступлению и кое-что допилив в булевой системе Майи, мы таки сможем разломать наши исходные корабли.
Как только булевы операторы заняли необходимые места и был найден приемлемый метод их использования, головоломка начала собираться. Теперь можно было попробовать поработать с технологией внутренностей, автоматизировать детализацию поверхностных разломов, экструдировать края и т.п.
На самом деле мы разработали метод процедурного создания вреков из оригинальных моделей — метод, который по своей сути требовал минимум ручного труда, и в умелых руках мог использоваться снова и снова для подобных задач в будущем.
На данном этапе все эти инструменты выглядели многообещающими, и для их тестирования был назначен некий 3D художник (всегда к вашим услугам). Я начал работу над первым «настоящим» вреком — который и выглядел бы хорошо и который не стыдно было бы засунуть в игру.
Первым делом мне пришлось поймать Ph00ze и заставить его объяснить функции и, возможности созданных им инструментов. Теперь можно было приступить к созданию прототипа реального врека капитального корабля.
Прототипирование
В начальной фазе создания прототипов процессы и инструменты постоянно совершенствуются и переходят туда-сюда из рук технического художника и 3D художника.
Сначала, 3D художник пробует инструменты и сообщает о функциональности и её дефектах, а технический художник продолжает улучшать и создавать новые способы создания останков капиталов.
Вот так инструменты быстро стали очень эффективными и автоматизированными. На этом этапе мы перепробовали много всяких штук.
На данном уровне делают немного моделей, поскольку текущей задачей является создания одной единственной визуализации, которая докажет эффективность подхода.
Такой подход позволяет быстро и целенаправленно делать итерации разработки и править ошибки, а также позволяет избежать риска создания изначально кривого контента, который потом надо будет задним числом исправлять или переделывать.
После этой начальной фазы мы дошли до пункта, в котором у нас уже практически был готов первый врек капитала и все необходимые инструменты. В процессе работы кое-какие инструменты пришлось выкинуть, другие добавить и большинство надо было довести до ума и отполировать.
В тот момент мы собрали все свои инструменты в «пошаговый» мастер для Майи и смело приступили к производству.
Производство
Первым делом надо было создать «резаки» — то есть набор неровных 3D тел, которые определят как и где корабль разломается на фрагменты.
Эти тела можно применять к различным предметам, их можно вращать, масштабировать и адаптировать к любому кораблю и создавать много разных вариантов поломки кораблей.
В дополнение к разлому кораблей на части, этот сложный булев процесс также закрывает все дыры в сетке модели, получающиеся при разломе, и применяет корректную развёртку, а также нужные материалы «повреждённых внутренностей» и текстуры к этим поверхностям.
Разломав корабль на части, вы можете использовать любой физический симулятор для разброса мусора и фрагментов как вам захочется.
Фенрир теперь довольно сильно поломан, но кое-где места разлома всё ещё выглядят очень гладко и ровно. Не очень похоже, что там что-то бахнуло, правда?
Для этого у нас есть парочка инструментов. Во-первых, добавим немного «мусора» по краям. Это в основном значит, что мы экструдируем плиты брони вдоль произвольной оси на произвольную длину.
В данном случае экструдируем по оси Z нашего корабля.
Когда мы покончим с вытягиванием, наш инструмент автоматически произведёт развёртку вытянутой нами геометрии и применит нужную текстуру обломков. В добавок наша программка окрашивает все вертексы края облома в чёрный цвет, также, как и вертексы в основании экструдированных деталей. Это плавно переходит в текстуру повреждений в окончательном варианте и позволяет сделать переход от корпуса к вытянутым бронеплитам гладким.
Ещё одним способом добавить деталей во внутренние разрезы между секциями будет создание созданных заранее кусков мусора. Мы можем сделать любое количество таких вот разных кусков мусора любого размера повёрнутых под любым углом.
Так хорошо делать очень реалистичные покромсаные небольшие обломки, когда вытягивание больших кусков брони не даёт эффекта.
Теперь у нас есть готовая основа нашего врека. Наши инструменты теперь могут автоматически рассчитать модель затенения наших развёрток и выдать на-гора АО-карту.
Вообще, первичная развёртка для наших капитальных кораблей создана с использованием «плиточной» технологии, так что не все поверхности корабля обладают собственным уникальным местом для текстур. Это позволяет нам рассчитать корректную модель затенения для каждой части корабля, а также добавить вторичные уникальные текстуры, которые затем будут использованы для создания и применения карты затенения.
Мы сейчас можем добавить немного цвета вертексам, чтобы сымитировать повреждения и грязь на корпусе там, где нам хочется.
Кое чего не хватает всё-таки. Гляньте в промежутки между большими фрагментами. Кажется, надо что-то добавить, чтобы эта масса создавала впечатление единства. Мда, думаю, надо попросить своего техника сделать новый инструмент :)
Пока я занимался расчленением кораблей, CCP Ph00ze с нетерпением ждал моих запросов на новые возможности, поскольку уже сам сделал прообраз того, о чём я собирался его попросить. На сцене появляются мелкий мусор облака пыли в виде системы частиц.
Мне осталось лишь подобрать хорошие значения для числа, размера, цвета и проч. параметров частиц, а наш инструмент сделал бы всю работу.
Инструмент создания мусора располагает два эмиттера частиц в точках разлома каждого фрагмента и собирает корабль в исходное состояние.
Затем, система на протяжении 100 кадров анимирует все наши фрагменты назад, в их положение «в состяние врека». При создании этой анимации, эмиттеры оставляют след из дыма и мелких частиц мусора (отсюда и два эмиттера на фрагмент).
Количество дыма и мусора, испускаемое фрагментов равно N помноженное на общую площадь поверхности «внутренней» части фрагмента.
Дым окрашивается в зависимости от того, насколько он близок к породившему его сегменту, так что дым рядом с основанием фрагмента имеет оранжевый оттенок из-за огня и раскалённого металла, окружающего его.
Точно так же, мелкие частицы мусора вблизи родительского фрагмента имеют более яркие раскалённые грани по сравнению с мусором поодаль.
Да, облака частиц задали нам жару.
При экспорте нашего первого врека с облаками частиц и мусором, стало понятно, что нам придётся разбираться с проблемами, когда две и более системы частиц пересекаются.
Эти проблемы поначалу заставили нас отложить использование систем частиц, но нам стало понятно, что при любом раскладе эту проблему надо будет решать. С системами частиц или без них, сама идея взрыва кораблей будет испорчена, если мы с этим не справимся. Надо было снова звать на помощь CCP ManKiller’a.
После того, как он разобрался в вопросе, с честью вышел из ситуации, заставив частицы мусора использовать буфер глубины. Теперь мы могли делать наши облака.
Теперь мы могли экспортировать наши вреки и посмотреть на результат в нашем игровом инструменте (также известном по имени «Jessica»).
Это отголоски позабытых вреков из дорубиконовских времён. Внимательный взгляд заметит некоторые детали, которые мы ещё не упоминали в нашем процессе создания вреков: деколи повреждений. В частности, кубические карты проецируются на корпус с окружающими их повреждениями и грязью, чтобы создать впечатление повреждений внешней изоляции и внутренних поломок.
И вот, увы, Фенрир нашёл свой конец. Один капитал мы разрушили. Осталось 26. Вот сейчас мы с лихвой возместим потраченное на разработку и создание нужных нам инструментов время.
Ещё раз похвастаюсь: всего один 3D художник и его приятель-программист быстренько разобрались с 27 капиталами, и эти вреки удалось показать вам как раз при выходе Рубикона 1.1.
Мы надеемся, что вам понравился мой рассказ о процессе создания графических объектов и мы также надеемся, что вам так же приятно создавать вреки на поле боя, как нам их придумывать :)
Ох, совсем забыл, давайте глянем на некоторые вреки, которые у нас получились:
Нечасто пилотам удаётся увидеть вреки такого размера в игре, так что нам было очень приятно увидеть памятник Титаномахии (на русском), который позволит игре иметь постоянную (и супер-опасную) выставку таких вещей в космосе.
На этом всё, и я, CCP BlueScreen с командой Trilambda с вами прощаемся. Желаем вам приятных полётов.
Не, серьёзно — fly safe и оставайтесь бессмертными o7
Так, теперь у меня есть приспособление. Что бы ещё такое превратить во врек?
Перевод © Werdna