Как сделать стенс модельку

Добавил пользователь Владимир З.
Обновлено: 02.09.2024

Что такое Texel Density, Mip mapping и Padding, зачем нужна триангуляция и как сделать правильный шейдинг, какие основные принципы создания реалистичных текстур оружия для игр. Обо всем этом расскажет Евгений Петров — Lead Weapon Artist в компании Ulysses Graphics, где он длительное время работал над оружием для серии Call of Duty (WW2 и Black Ops4).

Шейдинг — это подложка под запекание нормалки. Чем лучше он выглядит, тем красивее будет финальная модель и normal map. Слева на скриншоте пример хорошего шейдинга, справа — плохого.

То есть слева low poly модель, максимально похожая на high poly: выглядит красиво, нет никаких артефактов и искажений. Справа видны ошибки в шейдинге, искажения.

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

Это самый лучший, но и самый затратный способ, потому что используется большое количество полигонов. Если у вас ограничения по полигонам, можно использовать харды. Однако в этом случае придется делать разрез на UV.

Поэтому хороший шейдинг — это баланс между софтами и хардами.

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

Многие сначала делают ретопологию, разворачивают, запаковывают и только потом настраивают шейдинг по хардам. Это не самый корректный способ. Результат будет более оптимальным, если изначально опираться на шейдинг.

Это количество пикселей на текстуре, которое соответствует физическому размеру объекта. Слева на скриншоте — UV развертка ствола пистолета. Допустим, на текстуре 2К он длинной в 10 пикселей. Справа мы видим сам ствол. Предположим, что его длина 10 сантиметров. Таким образом Texel Density будет 1 пиксель на сантиметр.

Это нужно для того, чтобы абсолютно все объекты на уровне имели одинаковое разрешение текстур. Предположим, на уровне есть две бочки — одна маленькая, другая большая. Если мы применим к ним одинаковую текстуру в 2К, плотность их текстур будет отличаться. Маленькая бочка будет крайне плотная и детализированная, большая будет замыленная. Чтобы избежать этих проблем появился термин Texel Density.

Очень часто бывает, что клиент задает необходимое значение Texel Density, но не задает разрешение текстур. Раньше это создавало трудности. Приходилось колхозить. Сейчас в UV Editor Maya 2018 есть специальный инструмент. Выбираете необходимый UV Shell, нажимаете Get и вам выдает числовое значение, в зависимости от разрешения текстур. Точно так же можно выбрать любой Shell, задать цифру, нажать Set и Texel Density будет такой, как вы задали.

Предположим, что желтый цвет — это Texel Density, которого мы должны придерживаться. Чем краснее цвет, тем его значение больше, текстура плотнее, детализация выше. И наоборот, — чем синее, тем значение меньше.

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

Для одного из тестовых я делал квадратный генератор. Его днище, которое в принципе никогда никто не увидит, я разъювишил точно так же, как и все остальное. То есть оно занимало 1/4 моего UV пространства. Это было абсолютно не оптимальное использование текстуры. Для экономии пространства, в невидимых местах, заполненных геометрией, необходимо использовать крайне маленькие шеллы текстур.

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

Возьмем, например, пистолет. Его рукоять симметричная. Почему бы не использовать одну и ту же текстуру для обеих сторон? Все, что на гифке отмечено красным, используется повторно. То есть на UV пространстве оно занимает одно место, а на модели используется дважды.

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

Для примера, я запек два кубика с одинаковым Texel Density и текстурой. Но в кубе слева все UV Shells выровнены по горизонтали и вертикали, а справа повернуты под углом.

Ровные шеллы создают хорошую, красивую фаску. Если же шеллы повернуты, мы видим эффект лесенки. Это крайне некрасиво. Особенно на игровых разрешениях текстур. Потому что в играх используется маленькое разрешение, на котором это очень заметно. Поэтому любой прямоугольный шелл нужно выравнивать. Даже если это не идеальная прямоугольная форма на самом объекте, я его специально выравниваю, чтобы на UV он был ровный.

Если игрок отдаляется от какого-то игрового объекта, то модель этого объекта меняется на менее полигональную. Точно так же с текстурами — чем дальше мы отходим, тем меньшая текстура к нему применяется. 4К подменяется на 2К, когда мы отходим еще дальше — на 1К. Этот прием экономит ресурсы вашего компьютера.

Padding — это расстояние между UV Shells. Чем меньше это расстояние, тем сложнее отображать текстуры при Mip Mapping. Потому что при уменьшении текстур, уменьшается и расстояние между шеллами. Padding нужно всегда делать побольше, или хотя бы следить за тем, чтобы он везде был равномерным. Для персональных работ, в принципе, все равно, но если вы делаете проекты для клиентов, на это следует обращать внимание.

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

Любой движок, работающий с геометрией, триангулирует модель, чтобы корректно ее отобразить.

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

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

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

Если вы все правильно сделали, нормалка будет выглядеть как на картинке слева. Она стремиться к однородному цвету, а градиентная информация находится по фаскам. Справа пример плохой нормалки с большим количеством градиентов.

Почему градиенты — это плохо?

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

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

Источник света в Substance Painter нельзя регулировать по вертикали — только по горизонтали. Поэтому полезно будет повернуть модель на 90 градусов. Так текстуры будут лучше видны сверху и снизу пистолета.

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

Износ по краям. Это главный инструмент процедурного текстурирования в Substance Painter и самое мощное устройство, которым нельзя не пользоваться. Если мы посмотрим на любой объект в реальном мире, который был в употреблении, на любом материале будет износ по краям. Не надо делать прям настолько сильно, но высветленные края — это крайне важно.

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

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

Точно так же на глосе. У нас не может быть одинаково глянцевых объектов. Его залапали, он потерся — всегда бывает вариация. Это крайне важно.

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

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

Вот пример того, как базовые материалы превращаются в финальную текстуру примерно через 50 слоев в Substance Painter.

Чтобы сделать 3D-модель или распечатать уже готовую на 3D-принтере, надо просто следовать инструкции. Никаких навыков и способностей не требуется. Главное — просто следовать простой инструкции.




1. Первым делом нам надо определиться, в чем мы будем делать свою 3D-модель. На ваш выбор — любой пакет 3D-моделирования. Вот краткий список программ, которыми можно пользоваться:

Blender (бесплатно);
Google SketchUp (бесплатно);
Openscad(бесплатно);(прислал пользователь klirichek,artoym)
FreeCad(бесплатно);(прислал пользователь klirichek)
AutoCad(прислал пользователь PHmaster)
3DS Max;
Maya;
Rhinoceros 3D;
SolidWorks;
Sculptris(прислал пользователь Darth Biomech)
и многие многие другие.

Главное требование — экспорт в формат для 3D-печати — .stl.

Однако самым простой способ — это смоделировать прямо из браузера, воспользовавшись следующими сервисами:

2. Далее переходим по ссылке. Нас встречает милый пингвиненок:




6. Перед нами появляется редактор:


7. Перетаскиваем на наше поле кубик:


8. Для навигации можно использовать правую и среднюю клавиши мыши или панель навигации слева:


9. Теперь нам надо сделать любую 3D-модель, перетаскивая кубики. Здесь вам понадобится воспользоваться своей фантазией:


10. После этого выделяем все, что получилось:



12. Вот такая модель уже готова к печати:


13. Самое главное надо сохранить. Нажимаем кнопку Design.


14. Download for 3d printer.

15. Выбираем сохранить .stl:


16.Теперь у нас есть готовый файл для отправки на принтер. Если у вас нету дома 3D-принтера, то можно поискать неподалеку 3D-сервисы, которые готовы помочь распечатать.


17. У нас есть принтер PICASO 3d designer и софт к нему — Polygon. Запускаем программу:


18. Дальше все просто:


19. Масштабируем деталь для экономии материалов и времени:




20. Подготовим задание:


21. Из настроек ставим большую скорость, все остальное стоит по умолчанию. Жмем запустить подготовку


22. Компьютер немного считает задание и выдает нам результаты:


23. Просто сохраняем на microSD флешку задание:




24. Вставляем флешку в принтер:


25. Выбираем меню:


26. Выбираем SD-карту:



27. Выбраем файл, находим нужный нам и отправляем на печать.

28. Всё, принтер начал разогреваться.

30. Ждем 13 минут.

31. Наше изделие готово!

(Перед прохождением урока, возьмите v_deagle.mdl и v_knife.mdl, и положите в отдельные папочки, для удобства).

Часть первая. Подготовка к работе.

1. Для начала откройте MilkShape 3D, затем вкладочку Tools, и Kratisto's Half-Life MDL Decompiler v.1.x (x=версия).
2. Нажимаем кнопочку обзор, ту, которая находится справа от слов MDL File.


3. Открываем обычный v_deagle.mdl, который находится в специально подготовленной папочке.
4. Жмем ОК, и ждем пока процесс завершится.
5. Готово! Откройте папочку, и найдите в ней .smd, .bmp и .qc файлы.
6. Открываем наш fragMOTION, жмем File --> Open. выбираем ref_deonly.smd.
7. Мы получим так называемый "референс" дигла. Сейчас нам нужно удалить все кости, кроме меша (модели).

Но прежде чем что-то сделать, откройте Edit --> Customize User Interface. Если все стоит по-дефолту, кликните на строчку, и выберите Mouse Configurations.
Перед вами есть настройки Default. По ним, кстати, очень сложно работать.
Нажмите правой кнопкой по вкладке MouseConfigurations --> New. --> MouseConfig.
Появится новый конфиг. Щелкаем на нем левой кнопкой мыши, и настраиваем все как у меня.


Все сделали? Жмем File --> Save Changes.

8. Как же удалить эти кости? Легко. Зажмите правую кнопку, и обведите все, что есть вокруг пистолета. Жмем клавишу Delete. Готово.
9. Осталось подготовить пистолет для дальнейшего использования.
Щелкаем на Transform --> Transform Options.
Выкатывается окошечко.


Убираем галочку со Scale. Ставим галку на Position, затем кнопку Apply.
Наш пистолет выравнивается по центру.
Теперь нужно его повернуть для того, чтобы он ровно лег в руках.
В руках? В руках?! Что же мы делаем такое?
А делаем мы вот что.


Часть вторая. Запекание костей.

10. Теперь нужно его повернуть для того, чтобы он ровно лег в руках.
Жмем на галочку Rotate, в поле Y вводим - 90,0000, и жмем Apply два раза.
Стираем в поле Y девятку, оставляем 0,0000. Теперь вводим 90,0000 в поле Z.
Жмем на Apply три раза.
11. Убираем галочку с Rotate и ставим галочку на Position. Оставляем все как есть. Жмем один раз Apply.
Примечание: Если вдруг пушка улетела куда не надо, нажимайте Apply до того, пока пистолет не ляжет в середину.

Так, я же не рассказал одну вещь.
Жмем View --> Layout --> 4 corners. Так очень удобно ориентироваться в дальнейшем.
Чтобы летать в 3D виде, зажмите кнопку на колесике мыши. Чтобы разворачивать камеру, зажмите Shift + Mouse3 (колесико мыши). Приближать, я думаю, умеете.

После всех операций, описанных выше, у вас должно получиться нечто такое.


12. Жмем File --> Merge. открываем reference.smd от вашего декомпилированного ножа. Ничего не выделяя, просто жмем ОК.
В сцену попадают руки и нож.

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

14. Зажимаем Shift+ЛКМ (левая кнопка мыши), и обводим не нужный нож.
Жмем клавишу Delete. Ого, кусочки остались!

15. Теперь на видах Left, Top, Front проделайте тоже самое, удаляя последние остатки ножа.

16. Ура! Ножа нет, и теперь можно приступить к запеканию костей.
Нажмите ЛКМ два раза по ref_deonly.


Теперь ЛКМ передвиньте пушку к синей точке, которая находится на месте удаленного ножа. Дулом вперед, соответственно.

У вас должно получиться нечто похожее.


Примечание: У вас нет на руках текстур? Не волнуйтесь! Это совсем не важно. Текстуры у меня остались со старых экспортов.

17. Теперь выделяем ПКМ синюю точку, которая находится у нас на дуле.
Примечание: Пистолет должен быть обязательно выделен, и быть красным.

18. Теперь Bone --> Assign Selected Vertices to Bone.
Вуаля! Кость прилепилась к пушке! Чтобы снять выделение, нажмите ПКМ на сцене, и сочетание клавиш Ctrl+Shift+N.


19. Давайте посмотрим, что у нас вышло. Нажмите File --> Merge Animations. и выберите, например, draw.smd от ножа. Ничего не выделяя, жмем ОК.
Теперь в правом верхнем углу маленькая кнопочка Anim. жмем. Получаем такую картину.


Выбираем анимацию draw, и ниже дергаем ползунок.


Если все получилось, то, я очень за вас рад!

Часть третья. Добавление оружия в игру.

20. Создайте отдельную папочку под названием Deagle Knife.

21. Нажмите на анимацию draw, и щелкните клавишу Delete. Анимации нет, и значит, у нас в руках, так называемый, референс.

21. Нажмите File --> Export. сохраняйте с названием reference, и ниже с форматом Half-Life SMD Files (.smd).


Оставьте точечку на Mesh.


22. Теперь, кстати, самое легкое, но, скажем так, очень нудное.
Жмем File --> Merge Animations. и выбираем, например, draw.smd.
Ничего не трогаем, жмем ОК.
Затем File --> Export. в спец. папочку Deagle Knife, вводим название анимации draw, формат .smd.
Выкатывает окошечеко. Щелкаем на точечку Animation, и ниже выбираем draw. ОК,


Теперь нужно проделать тоже самое с idle, midslash1, midslash2, slash1, slash2, stab, stab_miss.
Примечание: Не трогаем reference! Мы уже подготовили его в самом начале.

23. Открываем папочку, проверяем наличие таких файлов.


24. Если все на месте, сейчас мы познакомимся с новой для нас программой - GUI StudioMDL.

25. Перекиньте v_knife.qc из папки с декомпилированным ножом, в папку Deagle Knife. Так же, текстуру knifeskin.bmp.
Примечание: Почему? А чтобы не заморачиваться с изменением кода .qc, оставим текстуру. Она не мешает.

26. Из папки с декомпилированным диглом достаем DE_slide1.bmp, DE_handle.bmp, DE_slide2_eagle.bmp, view_glove.bmp, view_skin.BMP, view_finger.bmp, и кидаем в нашу папку Deagle Knife.

27. Перенесите папку Deagle Knife в директорию C:/, чтобы программа GUI StudioMDL не конфликтовала с кириллицей.

28. Открываем GUI StudioMDL, жмем File --> Load QC File.
После чего ставим галку на Dump Hitboxes, и потом, восторженно кликаем на Compile.
Если все прошло успешно, в папке Deagle Knife появится v_knife.mdl.

Примечание по всему уроку: Вставить в руку можно не только тот же самый дигл, вставьте туда ножовку, отвертку, ведро, да все что угодно!

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

  • 04.05.2018
  • /
  • Полезное , Как это устроено
  • /
  • Никита Прохоров

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

Искусство автомобильного тюнинга: stance

Static

Искусство автомобильного тюнинга: stance

Винтовая подвеска

Искусство автомобильного тюнинга: stance

Пневматическая подвеска

Искусство автомобильного тюнинга: stance

Искусство автомобильного тюнинга: stance

Искусство автомобильного тюнинга: stance

Приобрести проставки для увеличения вылета или адаптеры для изменения сверловки вы можете, обратившись к профессионалам своего дела, Master Fitment.

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

Искусство автомобильного тюнинга: stance

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

Искусство автомобильного тюнинга: stance

Выражаем отдельную благодарность за помощь в подготовке материала Master Fitment

Читайте также: