Оружие в Lost Squad

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

Предисловие

В последнее время я часто стал слышать о том, что середина 00-х — это чуть ли не золотая эпоха игровой индустрии. То самое прекрасное время, когда почти каждая выходившая компьютерная игра автоматически становилась культовой, прорывом и новым словом в своем жанре. В целом, я тоже так считаю, но скорее всего лишь потому, что именно в то время у меня появился мой первый ПК, и свое знакомство с компьютерными играми я начинал именно с новинок тех годов.

Среди них была и Half-Life 2игра, сильно зацепившая меня своей атмосферой, разнообразным игровым процессом, интересной манерой повествования и передовыми на тот момент технологиями.

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

В те времена возможности движка Source казались мне чем-то невообразимо крутым – здесь тебе и приятное глазу освещение, и продвинутая лицевая анимация персонажей, и честная внутриигровая физика. Специально для интересующихся, вместе с игрой поставлялся инструментарий для разработчиков (Source SDK), при помощи которого можно было ковыряться во внутриигровых ресурсах, проектировать свои уровни, или вообще целиком с нуля создать собственную игру на основе Half-Life 2. Такие вот «игры» принято называть модификациями (или сокращенно — мод). Умельцы со всего мира начали творить свои собственные моды и выкладывать их на всеобщее обозрение в интернет.

Moddb.com — один из крупнейших ресурсов, где можно скачать пользовательские модификации к различным играм

Моды можно было так же раздобыть на CD-дисках, идущих в комплекте с игровыми печатными журналами. Сами по себе моды распространялись на бесплатной основе — их создатели делали их не ради заработка, а «для души» и всеобщего респекта. Забавно то, что из-за колоссального объема пиратства в странах СНГ часто бывало так, что моды продавались в магазинах под видом отдельных игр. Разумеется, сами авторы модов не были в курсе об этом, и ничего с этого не имели.

Модификации бывали разными — от простенького сборника незамысловатых и несвязанных друг с другом карт, до целых самостоятельных игр со своим сюжетом, персонажами и графикой. Всё это создавалось любителями, иногда в одиночку, а иногда и целой командой. В интернете образовывались целые сообщества таких энтузиастов — моддеров, и вся эта движуха меня очень увлекала. Я тоже начал изучать SDK, пробовал создавать свои карты. Параллельно изучал фотошоп, благодаря чему был принят в небольшую команду моддеров на роль текстурщика 3д-моделей предметов окружения (всевозможные бочки, ящики, трубы — в общем всё то, что размещалось на игровой карте для придания ей более детализированного вида).

Одна из первых мню сделанных моделей

Время шло, и помимо текстур, меня начал интересовать процесс создания самих 3д-моделей. Я начал изучать 3dsMax, но в итоге остановился на Softimage XSI, так как эта программа (в обрезанном виде) шла как дополнительный софт того же Source SDK, благодаря чему процесс создания моделей именно под Half-Life 2 немного упрощался. К тому же в ней был космический интерфейс, при виде которого мои единомышленники-моддеры плевались, но мне было в самый раз. Легкая забава переросла в полноценное хобби, на которое я тратил много свободного времени, создавая всё больше моделей и изучая новые приемы и возможности.

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


Затерявшиеся полигоны

Lost Squad – однопользовательская бесплатная игра на движке Source, использующая ресурсы игры Half-Life 2, повествующая о второстепенном персонаже вселенной HL2 – Барни Калхуне, о том, что с ним произошло после событий Episode One, и почему его не было в Episode Two.

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

В оригинальном Half-Life 2 данная система была реализована несколько проще — тела персонажа и не было вовсе, лишь view-модель оружия с руками, жестко прикрепленная к игровой камере. Если посмотреть на такую модель в редакторе, то можно увидеть, что все те участки, что не видны под определенным углом камеры, попросту отсутствуют. Если оружие находится не в руках игрока, а просто валяется где-то на земле — для такого случая отображается другая, так называемая world-модель, со всеми присутствующими деталями, однако, ради экономии ресурсов, сильно упрощенная по своей форме и текстуре.

Разница между View- и World- моделями. Отсутствующие куски геометрии на V-модели, низкое разрешение и поликаунт W-модели

В системе Lost Squad, описанной выше, использовать view-модель нежелательно, так как углы обзора и движения камеры динамичны, а значит, отсутствующие детали view-модели в определенных ракурсах обязательно рано или поздно «засветятся». Использование world-модели, при виде от первого лица тоже такой себе вариант — слишком низкое для этого качество — мало полигонов, да и текстурки выглядят очень размытыми. Конечно, можно взять view-модель и отредактировать её, отзеркалив некоторые части, тем самым нарастить отсутствующие части. Но результат, и затраченное на его достижение время, того не стоили. Проще говоря, получалось долго и некрасиво, и поэтому было решено сделать модели оружия с нуля.


Подготовка

Итак, было решено полностью переработать некоторые виды оружия. Причем, с максимально возможным качеством финального результата, на которое способен либо я в данный момент, либо возможности движка Source. В Lost Squad используется не весь арсенал оригинального Half-Life 2, например, гравипушка, монтировка или фероподы — весьма уникальные образцы, и по сюжету они выдавались только Фримену. Наличие данных экземпляров у Барни вызвало бы определенные вопросы. Итоговый список оружия на переделку выглядит так: 9мм пистолет, револьвер, разрывная граната, РПГ, автомат, дробовик, арбалет и импульсная винтовка.

Пришло время рассказать о процессе самого моделирования. Сначала я открывал в редакторе и изучал оригинальные View- и World-модели из HL2. Зачастую, они заметно отличались друг от друга наличием или отсутствием некоторых деталей. Иногда различия были весьма существенными — одна и та же единица оружия в своих моделях могла иметь разный дизайн или даже масштаб.

Один из ярких примеров таких отличий. Сверху — модель, которую видит игрок от первого лица, снизу — модель, отображающая в руках npc

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

На первом мониторе — окно 3д-редактора, на втором — PureRef с референсными изображениями

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

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


Lowpoly/Highpoly

Определившись с тем, как всё это должно выглядеть, я приступил к моделированию. В данный момент для 3д-моделирования я использую программу Blender. Она не такая «тяжелая» как программы от Autodesk, очень стабильная, быстро развивающаяся, и к тому же абсолютно бесплатная. В плане моделирования ничем не уступает тем же 3dsMax или Maya.

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

Масштаб и форма определены, настала очередь создания высокополигональной модели (highpoly), содержащей в себе максимальное количество деталей, будь то сглаженные фаски, болтики, отверстия и тому подобное. Количество полигонов такой модели может варьироваться от сотни тысяч до двух трех миллионов

Готовая highpoly-модель

Но это не важно, ведь такая модель не будет использоваться непосредственно в игре, а нужна лишь для того, чтобы потом можно было «запечь» её детали в карту нормалей для другой, упрощенной модели с гораздо меньшим количеством полигонов. Совсем мелкие детали, вроде узора на рукоятке или сколов/царапин на highpoly я, как правило, старался не моделировать — такое проще всего нарисовать позже, на текстурах. В итоге, highpoly-модель представляет из себя детальный меш, снабженный дополнительными гранями, которые при использовании модификатора Subdivide на данной модели помогают держать форму, либо придают деталям большей выразительности.

Пример работы Subdivide на объекте без дополнительных поддерживающих граней (зеленый), и с ними (синий). Верхний ряд объектов — subdivide выключен, нижний ряд — включен.

Далее — создаю низкополигональную модель (lowpoly). По форме и масштабу она совпадает с highpoly, но имеет гораздо меньшее количество полигонов и деталей, в следствие чего будет использоваться в игре. Здесь я уже смотрю на то, какие элементы лучше всего будут видны в кадре, каким следует отдать больший приоритет в плане детализации. Соответственно, те элементы что большую часть времени находятся за пределами видимости (например внутренности рукоятки, видные лишь тогда, когда магазин извлечен) будут обладать меньшим количеством полигонов и меньшим размером на текстурной развертке. Абсолютно ровные плоскости так же не нуждаются в большом количестве полигонов, а вот для круглых элементов, вроде линий изгиба затвора или прицела, полигонов я старался не жалеть, дабы они не выглядели слишком угловатыми.

Lowpoly и highpoly

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

Здесь важно, по возможности, использовать каждый свободный пиксель развертки и не оставлять пустых пространств, так как чем лучше распределение элементов по всей развертке — тем четче будет сама текстура. Изначально я делал развертку стандартными средствами Blender. Модели оружия часто содержат очень много мелких деталей, размещать которые на развертке приходится вручную, потому что автоматическая генерация не учитывает «дырки» в деталях, ничем мелким их не заполняет, оставляя много неиспользуемого пространства. Я воспользовался плагином ShotPacker, который выдает потрясающий результат на выходе. То, что я мог таскать вручную пол дня, этот плагин делает за несколько минут, при этом ему можно указать, какие детали следует сделать меньше остальных (из-за их маловажности). Некоторые модели используют не одну, а несколько текстур, это связано с банальной нехваткой места, или некоторыми иными техническими моментами.

Всё готово к созданию текстур.


Текстуры

Раньше, при создании текстур для подобного рода моделей я использовал Photoshop. Всё действие сводилось к тому, что из 3д-редактора я импортировал изображение развертки модели, устанавливал его верхним слоем с полупрозрачностью, а затем по этому «трафарету» собирал текстуру, накладывая слои с фотографиями всевозможных железок и деревяшек, комбинируя это, добавляя осветленные линии на грани, имитировавшие износ или царапины. Иногда, поверх всего этого я выставлял слой с отрендереной в 3д-редакторе черно-белой карты рассеянного освещения (ambient occlusion), чтобы текстура смотрелась внушительнее. Затем сохранял и снова перемещался в окно 3д-редактора, чтобы посмотреть изменения. При наличии ошибок вновь возвращался в Photoshop, и так далее, до тех пор, пока не был удовлетворен результатом. Не самый удобный способ, особенно если 3д-модель сложная, в плане детализации. Конечно, я пробовал другие программы, где текстуры рисовались поверх самой 3д-модели, но ни одна из опробованных программ на тот момент не показалась мне удобной и я продолжал использовать Photoshop.

Substance Painter

Однако, в 2015 году я впервые увидел Substance Painter. Эта программа прямо таки взорвала мне мозг своими возможностями, и я скорее принялся её изучать. Мне нравилось в ней буквально всё — возможность удобно рисовать поверх модели и на её развертке, использование процедурных материалов и фильтров, привычная работа со слоями и их смешиванием как в Photoshop, а так же замечательный youtube-канал разработчиков с подробными инструкциями и видеоуроками. Из всего этого следует отметить процедурную составляющую — к примеру, такие банальные вещи как эффекты состаривания поверхности, грязь, сколы или царапины, которые раньше чуть ли не часами приходилось вручную вырисовывать в фотошопе, здесь это генерируется в пару кликов. При этом, если текстура уже готова, но вдруг захочется что-то быстро изменить, всегда можно вернуться к определенному эффекту и изменить его параметры. Non-destructive, так сказать.

Highpoly-модель играет немаловажную роль в правильной работе процедурных фильтров — помимо карты нормалей, необходимой для корректного затенения и отображения всех мелких деталей, на lowpoly-модель так же рендерится ряд специальных карт, вроде карты положения граней или карты позиции тех или иных деталей модели в пространстве (разные фильтры, в зависимости от того, какой эффект они исполняют, требуют наличия определенной карты, или нескольких сразу). Процесс запекания всех этих карт организован там же, в Substance Painter – подгружаются lowpoly и highpoly модели, выбираются типы карт и их настройки, нажимается кнопка Bake Maps, и всё готово.

Substance Painter – современная программа, текстуры в ней создаются преимущественно для современных движков, где применяется физически-корректный рендеринг, сокращенно именуемый как PBR. В «традиционных» или «древних» способоах рендеринга алгоритмы построения освещения были гораздо проще, и художникам по текстурам приходилось идти на хитрости, рисуя на основной (дифьюз) текстуре блики, засветы и тени, дабы текстура не выглядела слишком простой. К основной текстуре как правило добавлялись вспомогательные — для имитации эффекта зеркальности или бликов от непосредственных источников света в 3д сцене.

В современном PBR процессе всё, что касается света, тени и характера используемого материала, выполняется в движке автоматически. Художнику в своих текстурах необходимо лишь отобразить информацию о цвете конкретного материала, степени его гладкости/шероховатости, а так же является ли данный материал металлом или диэлектриком. Никаких теней и бликов рисовать ни в коем случае не нужно — всё остальное шейдеры сами просчитают и отобразят в реальном времени.

Пример модели с PBR текстурами

Что касается движка Source, то на данный момент в плане рендеринга и освещения он весьма устарел и отстает от современных движков, вроде UE4 или Unity на несколько шагов. Естественно, никакой речи о PBR и быть не может, если Source’у скормить такие текстуры, то смотреться они будут слишком просто, а то и вовсе неправильно. Зачем же тогда использовать Substance Painter для такого старого движка? Ответ — удобство и возможность «сконвертировать» текстуры так, чтобы они хорошо смотрелись даже в Source. Алгоритм прост:

  • сначала создаются текстуры полностью под PBR: базовый цвет, шероховатость, металлик, АО:
PBR текстуры
  • затем дифьюз текстура адаптируется под Source: при помощи фильтра Baked Lighting поверх накладывается освещение и тени, полученные от PBR рендеринга:
Baked Lighting фильтр
  • отдельно создаются дополнительные черно-белые текстуры-маски для формирования бликов и отражений, использующиеся только в Source:
Phong, Exponent, AlbedoTint

1) маска спекуляра (phong): для наличия блеска в белых областях и его отсутствия в черных;

2) маска экспонента (exponent), контролирующая размер бликов (черный цвет — большой блик, серый цвет — маленький);

3) маска цветового отклонения (albedotint), регулирующая оттенок на основе дифьюз текстуры.

 

На выходе получается два набора текстур — для Source и для PBR (на всякий случай, вдруг пригодится когда нибудь).

Разница между PBR и Source текстурами

Готовые текстуры легко экспортировать, назначив их в нужные для Source цветовые каналы. В Substance Painter я создал для этого профиль экспорта, который делает всё автоматически, например маска спекуляра будет находиться в альфа-канале карты нормалей, а exponent и albedotint маски займут красный и зеленый каналы отдельной текстуры. На некоторых моделях используется эффект самосвечения (светящиеся метки на прицеле пистолета или раскаленная арматура, которой стреляет арбалет), для этого так же создается отдельная черно-белая текстура, белый цвет на которой обозначает светящиеся участки текстуры. Помещается в альфа-канал дифьюз текстуры.

Профиль экспорта текстур

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

Просмоторщик моделей HLMV и текстовый редактор

На завершенную модель привязываются кости, необходимые для создания анимации и контроля отдельных частей (магазин, затвор), создается несколько LOD’ов — упрощенных версий основной модели, с постепенно понижающимся количеством полигонов. В игре такие модели будут автоматически переключаться при приближении или отдалении игрока на заданное расстояние. При изготовлении LOD’ов я создавал дубликаты основной модели, и в зависимости от сложности модели я вручную постепенно удалял «лишние» детали и полигоны. В остальных случаях использовался стандартный блендеровский модификатор Decimate.

LOD’ы

Вот так вот в целом выглядит весь мой нехитрый процесс создания моделей и текстур для Lost Squad. В следующей части статьи я расскажу о каждой модели отдельно, дабы прояснить некоторые моменты и поделиться интересными наблюдениями.


9мм пистолет

Данный пистолет основан на реально существующем пистолете H&K USP, а точнее на его спортивном варианте USP Match, отличающимся другим цветом затвора и массивном утяжелителе спереди, от этого выглядящем более брутально. Лара Крофт, кстати, с такими же пушками бегала.

Сверху-вниз: View, World и моя модель

Вариант из HL2 в целом похож на реальный прототип, однако он немного шире и скудноват на детали. Свою модель я подогнал под масштабы HL2, немного удлинил утяжелитель, от оригинального USP взял некоторые детали, вроде формы отверстия, из которого выбрасываются гильзы, курок, спусковой крючок и кнопку изъятия магазина.

По началу я по какой-то причине не мог найти нормальных фотографий USP в интернете. Долго искал, постоянно натыкался на картинки очень низкого разрешения, по которым сложно было понять что да как. Отчаявшись, я даже нашел человека, который коллекционирует страйкбольное оружие. В его арсенале как раз имелся USP, весьма качественный. Однако, на мои просьбы дать временно «погонять» сей пистолет, человек вежливо отказал, и мне пришлось гуглить дальше. Ситуацию спас маленький форум любителей оружия, один из пользователей которого в своем треде выложил целую пачку очень хороших фотографий своего USP. Я был очень рад такой находке.

После этого я радостно принялся моделировать. Так как это была самая первая модель из всего списка оружий, я очень сильно оторвался на highpoly, воссоздав её крайне правдоподобно, даже в невидимых местах. Настолько сильно, что если бы у меня был 3д-принтер, то я смог бы распечатать эту модель и собрать рабочий огнестрел, и даже пойти с ним в чистое поле, чтобы испробовать, но выстрелив из него, я бы лишился глаза или половины головы. 🙂

Рендер с PBR текстурами

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

Цвет рукоятки я выкрасил зеленоватым оттенком, примерно таким же как у оригинальной W-модели, ради разнообразия. Дополнительные надписи я нанес при помощи заранее заготовленных в фотошопе черно-белых масок. Таким образом легендарная фирма Heckler & Koch в моей вариации превратилась в никому не известную Keppler & Hog United (на оригинальной текстуре были видны буквы KHU, и я решил обыграть этот момент).


Револьвер


На первый взгляд это оружие мне казалось невообразимо сложным. Всё эти округлые формы, плавно переходящие строгие угловатые поверхности, откидывающийся крепеж барабана, да и сам барабан… Но на деле совсем ничего
трудного — я быстро нашел большое количество фотографий реальных револьверов Magnum. Оригинальная V-модель из HL2 так же оказалась весьма качественно сделанной (по сравнению с другими). Примечателен тот факт, что W-модель выглядит крайне ужасно, скорее всего она позаимствована из HL1, но с измененной текстурой.

Самым интересным для меня было моделировать барабан. Я прямо таки испытал моральное удовлетворение после его изготовления и последующего запекания карты нормалей на lowpoly. Однако, при создании пазов, предотвращающих хаотичное вращение барабана, пришлось пойти на хитрость. Понадобилось бы потратить очень много времени, моделируя такой элемент прямо на барабане, поэтому я смоделировал это отверстие отдельно на пустой плоскости, запек нормали и позже нанес их уже непосредственно на текстуру в Substance Painter.

А вот с крепежом барабана на корпусе пришлось немного повозиться, но в итоге я справился. Большинство полигонов ушло на всё тот же барабан. Ради экономии времени, я немного упростил форму рукоятки, в игре она всё равно почти всегда будет загорожена рукой персонажа, полигонов на ней меньше всего. Надпись на стволеPython Elite, та же, что и на текстуре оригинальной модели.


Разрывная граната

Самая сложная модель на свете (шутка). Примечательно то, что гранаты такого вида в реальном мире вовсе не разрывные, а дымовые, или светошумовые. Ну тут уж ничего не поделать. Никаких особых нюансов при создании highpoly и lowpoly у меня не возникло. При создании текстур для Source я долго игрался с экспонент и тинт масками, чтобы придать поверхности правдоподобный металлический вид. Вроде бы получилось.

Highpoly и Lowpoly

РПГ

Оригинальные V- и W- модели по своей форме и цвету кардинально отличались друг от друга, при чем у последней, судя по всему, труба была направлена в противоположную сторону (если опираться на примеры реальных прототипов).

Различия моделей и реальные прототипы

В качестве основы для внешнего вида я взял V-модель, а по масштабу опирался на W-модель. У данной ракетницы есть реальный прототип — шведская AT-4. Проблема в том, что реальный прототип — одноразовая система, в то время как в HL2 она работает по принципу стингера, причем с несколькими зарядами в «магазине». Кроме фото AT-4 я так же поискал несколько референсов стингер-систем.

В итоге основа моей модели — почти копия AT-4, но с блоком управления от стингера. «В комплекте» с такой ракетницей идет новая модель снаряда в двух вариациях (с раскрытыми и закрытыми крыльями).


Автомат
Сдвоенный ствол на оригинальных моделях

Крайне неоднозначный экземпляр. Неоднозначность его заключается в том, что Valve за основу взяли реальный H&K MP7, наделили его способностью выплевывать подствольные гранаты, однако самого подствольника не завезли. Вместо этого, спереди красуется дополнительный ствол, по толщине равный основному. Если задуматься и предположить, что этот ствол и есть гранатомет, то как из такой узенькой дырочки смогла бы вылезти столь толстенькая граната? Конечно, я бы мог обратиться с таким вопросом к знающим проктологам, но вместо этого я решил мыслить позитивно и поискать фотографии реального прототипа.

реальный прототип — H&K MP7

И вот что странно — на реальном прототипе на месте «подствольника» есть отверстие, но из него ничего не торчит. Я ознакомился с документацией, поискал чертежи, и с удивлением обнаружил, что данное отверстие абсолютно незадействовано. Возможно, это не так, и у него есть какое-то предназначение, но я смотрел видео сборки/разборки, и судя по всему, за этим отверстием действительно ничего нет. Я долго думал, что из всего этого можно сделать — ведь если убрать это второй ствол, то облик оружия потеряет свою причастность к HL2, а реальных прикрепляемых подствольников для данного автомата и вовсе никогда не выпускалось.

После бурных обсуждений с сочувствующими мне гражданами, коллективным разумом был придуман собственный дизайн для подствольника, который бы крепился к корпусу так, чтобы подвижная рукоятка при этом не заслонялась и оставалась в перпендикулярном положении. Вопрос о втором стволе оставался открытым, как вдруг меня посетила гениальная мысль — взять подобную деталь с АК47. А почему бы и нет? Весьма забавно вышло: и подствольник есть, хоть не слишком удобный, и хоть как-то обоснованное наличие второго ствола.

Что касается остального — корпус автомата довольно сильно копирует реальный прототип, за исключением планки Пикатинни (она лучше всего видна с ракурса от первого лица, поэтому её дизайн я оставил похожим на вариант с модели из HL2). Выдвижной приклад так же оставлен с меньшим размером, в отличие от оригинала. Дополнительно я смоделировал магазин и патроны, а сама модель автомата сделана так, что при желании можно безболезненно убрать подствольник, оставив только подвижную рукоятку, которую так же можно повернуть.

Сравнение View-, World- и моей модели

Дробовик

Полуавтоматический дробовик из HL2 основан на реальном SPAS 12. Отличия от прототипа кроются в основном лишь в ширине, а разница между V- и W-моделью HL2 в длине — модель, которую держат в руках npc заметно короче той, что мы видим от первого лица. Более того, на всё той же V-модели не сделана рукоятка, так как она находится вне зоны видимости камеры.

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

Что касается добавления деталей, здесь я решил ничего не придумывать, просто брал их с реального прототипа — клавиша предохранителя, передняя часть трубы, в которой хранятся патроны. Кстати, раз уж речь пошла о этой «трубе», то следует упомянуть забавный факт: в HL2 дробовик может стрелять как одиночным патроном в качестве основной атаки, так и двумя патронами сразу при альтернативной атаке. Последнее в корне противоречит логике — дробовики подобного (как впрочем и любого другого) не могут выстреливать два патрона сразу. Конечно, не стоит к этому так сильно придираться, ведь HL2 далеко не милитаристический симулятор, и данную особенность вполне можно принять за игровую условность. Можно так же предположить, что патроны выстреливаются по очереди, а не сразу. К чему я это всё рассказываю — на передней части трубы у W-модели видно отверстие черного цвета. Возможно это просто кривая текстура, а возможно в Valve и правда считали, что оттуда может вылетать второй патрон… Как бы то ни было, в моей модели данная труба — «магазин», как и на реальном прототипе.

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


Арбалет

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

Отсутствующая правая часть на оригинальной V-модели

Примечательно то, что на оригинальной V-модели отсутствует правая часть натяжительного механизма (скорее всего его убрали в целях оптимизации и сокращения количества полигонов). Дело в том, что HL2 разрабатывали довольно давно, в те незапамятные времена, когда в обиходе были преимущественно мониторы с соотношением сторон 4:3. В таком случае, данный недочет не будет виден, однако сейчас, если играть на 16:9-мониторе, то эти «обрубки» справа очень хорошо заметны и нагоняют тоску.

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

Возникал вопрос касательно того, из чего сделаны плечи. Предполагалось, что из автомобильной рессоры, однако что за диагональные полосы располагаются по всей поверхности, я так и не понял (не нашел ни одной рессоры, выполненной похожим образом). Недолго думая, я прислушался к советам помогающих мне людей и решил, что пусть эта деталь будет выполнена из некоего композита, вроде карбона.

Незначительные мелкие детали — шов от сварки, изолента на рукоятке (рукоятка, кстати, позаимствована от 9мм пистолета, с измененной текстурой), следы анодирования в направляющем пазе.

Импульсная винтовка

Крайне необычная по своему дизайну пушка. Своеобразный симбиоз земных и инопланетных технологий.

Основная атака — стрельба очередью импульсными зарядами, патроны которых хранятся в большом рогообразном магазине. Каждый такой патрон содержит в себе тридцать зарядов, извлекаемых внешним ударным механизмом. После того, как патрон истощился, он извлекается из излучателя, выбрасывается, и на его место из магазина при помощи доводчика подставляется новый. Логика здесь, мягко говоря, весьма странная — если максимальный боезапас игроку выдается в размере 90 зарядов (3 патрона), то зачем нужен такой большой магазин, при том, что подбираемая амуниция для этого оружия выглядит как отдельный магазин? При этом, на V-модели магазин ни разу не снимается и не надевается.

Скорее всего, в Lost Squad основная атака будет работать следующим образом: магазин содержит в себе 30 патронов. 1 патрон — 1 заряд. Когда патроны в магазине закончатся, магазин отделяется от корпуса и заменяется новым.

Интересный факт: изначально данное оружие планировалось в качестве зажигательной винтовки, этому свидетельствуют предрелизные видеоролики игрового процесса HL2, в которых с помощью данного оружия можно было буквально поджигать врагов, а так же название модели в ресурсах игры (irifle, что означает incendiary rifle). Скорость стрельбы была значительно ниже, зато 1 патрон — 1 заряд.

Альтернативная атака — выстрел сгустком темной энергии, отскакивающим от стен как попрыгунчик и мгновенно расщепляющим на атомы всех враждебно настроенных органических существ, оказавшихся на его пути. С данным видом атаки есть небольшой нюанс — подбираемая амуниция выглядит как некая цилиндрическая клетка со свечением внутри. На самом оружии места для монтажа такого «картриджа» не нашлось. Не знаю, был ли это ляп или нет, спишем на очередную игровую условность. Однако, в моем варианте такое место предусмотрено. Картридж располагается ниже системы основной атаки и сопряжен со вторым излучателем.

С созданием собственной вариации импульсной винтовки мне пришлось изрядно повозиться. Оригинальные модели технически выглядят очень странно. Необходимо было немного изменить основной корпус так, чтобы магазин мог спокойно извлекаться, ничего не зацепляя, а под картридж альтернативной атаки было место для крепления. При этом важно было не потерять изначальный аутентичный вид оружия в целом. С тем, как все это вместе скомпоновать, мне помогали аж несколько человек, спасибо им большое — то, что получилось, выглядит весьма работоспособно.

Оригинальные модели

В поисках всевозможных мелких деталей, которые бы смогли немного внести разнообразия в дизайн, я посмотрел много артов различного sci-fi оружия, кое-какие задумки взял оттуда. Что касается оригинальных моделей из HL2, помимо V- и W- моделей я так же разглядывал W- модель из бета-версии HL2. Эта модель заметно отличается от той, что была в финальной версии.

Процесс создания текстур был так же не из легких — много ручной рисовки и муторной подгонки цветовых оттенков, дабы было похоже на оригинал.

Текстурирование

Заключение

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

Конечно, есть еще над чем поработать — кое-где исправить геометрию, или улучшить некоторые текстуры. Много времени занимало создание highpoly – сначала мне казалось, что это просто я такой копуша. Лишь потом я узнал, что построение hardsurface’ов — это весьма вдумчивый процесс, и быстрота приходит лишь с опытом, когда хорошенько набьешь на этом руку, или съешь собаку. В будущем я планирую наконец-таки освоить Zbrush, хотя бы на уровне простого использования Pro Boolean’ов, дабы еще более сократить время построения highpoly.

Пользуясь случаем, выражаю огромную благодарность достопочтенным господам из сообщества Half-Life Project Beta, частности Kysss, OddDoc и alek – за помощь, критику и картинки с приколами. Ну и конечно же, спасибо DmitRex’у за то, что все мы здесь сегодня собрались.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Есть тут еще кое-что

Об авторе T-braze

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: