Создание предмета с нуля — различия между версиями
RedPython (обсуждение | вклад) (Новая страница: «А давайте попробуем создать какой-нибудь простой предмет совсем-совсем с нуля. Например…») |
(нет различий)
|
Версия 17:10, 19 января 2019
А давайте попробуем создать какой-нибудь простой предмет совсем-совсем с нуля. Например − банку сгущёнки, её все видели и все понимают, как она выглядит и что с ней делают. Замоделим высоко- и низкополигональные модели, создадим развёртку, запечём normalmap, нарисуем фототекстуру, обработаем в сталкерском СДК и добавим всё это в игру. Для этого нам понадобится Maya и плагин X-Ray Maya tools, фотошоп и любой текстовый редактор, например, SciTE, ну и X-Ray SDK. Майю предварительно нужно настроить так, как описано в этой статье.
Шаг 1: моделирование
Нам нужны две модели: одна высокополигональная, очень детализированная, но без UV-развёртки. С неё мы будем снимать карту нормалей, и запечём её на вторую, низкополигональную модель.
Размеры
Стандартная банка сгущёнки имеет диаметр 73мм (75мм по буртику) и высоту 80мм.
Заходим в настройки сцены Windows -> Settings/Preferences -> Preferences, по вкладке Settings переключаем Working Units в миллиметры, сохраняем.
Высокополигональная (high-poly) модель
Создаём примитив типа "цилиндр", задаём ему радиус 36,5мм и высоту 80мм, число разбиений увеличим до 40:
Это базовая заготовка. Подобный метод создания модели так и называется - моделинг от примитива.
Далее создаём два буртика, расположенных на равных расстояниях друг от друга. Для этого открываем свойства инструмента Mesh Tools -> Insert Edge Loop, включаем режим Multiple edge loops, и задаём количество лупов: 2.
Кликаем по любому вертикальному ребру цилиндра, получаем две петли. Переключившись на инструмент маштабирования клавишей R, смещаем лупы вертикально.
Далее нужно выделить полигоны будущих буртиков и выдавить их наружу. Для этого нажатием клавиши Пробел переключаемся на вид сбоку, выделяем нужные полигоны, и применяем к ним операцию Edit Mesh -> Extrude, и доводим буртики манипуляторами инструмента масштабирования до нужного вида:
Тем же методом формируем бурты сверху и снизу:
Некоторые лупы после выдавливания получились мягкими, хотя углы между полигонами в районе 90 градусов. Нужно сразу исправить их, выделив двойным щелчком ЛКМ и применив операцию Shift+ПКМ -> Soften/Harden Edges -> Harden Edge.
Теперь нужно как-то создать кольцевые рёбра жёсткости на крышках. Если бы мы собирались рисовать текстуру без использования фото или сканов, то рёбра жёсткости можно было бы сделать на глаз, но у нас уже есть готовый скан крышки банки, поэтому мы будем использовать её как референс.
Сохраняем картинку рядом со сценой, смотрим на её разрешение: 512х512 пикселей. Создаём плоскость размером 512х512мм, назначаем ей новый материал типа lambert (ПКМ - > Assign New Material). Материал назначен, но к его файл-ноде не привязана текстура. Чтобы исправить это, жмём ПКМ -> Material Attributes, и в свитке Common Material Attributes клацаем по кнопке-шахматке напротив параметра Color:
В открывшемся окошке из списка справа выбираем кнопку File. Теперь в редакторе атрибутов в свитке File Attributes в поле Image Name указываем нашу текстуру. Получается что-то такое:
Поскольку и текстура, и плоскость, на которой она лежит, являются квадратными, то никаких действий с развёрткой предпринимать не нужно. Требуется лишь переключиться на вид сверху, включить режим X-Ray на панели над вьюпортом и отмасштабировать изображение донца под размер банки.
Смещаем плоскость вниз, чтобы она не перекрывала банку, затем, не снимая выделения, открываем панель Channel Box/Layer Editor и добавляем её в новый слой. Слою ставим тип отрисовки Reference − он будет отображаться во вьюпорте, но плоскость невозможно будет случайно выделить.
Наконец-то переходим к созданию рёбер жёсткости. Будем делать их по-старинке, выдавливанием. Для этого в том же виде сверху удаляем полигоны крышки, выбираем рёбра по краям, и, выполняя операцию Extrude, последовательно выдавливаем их по ширине выпуклостей, но не пользуемся манипуляторами Extrude, а каждый раз переключаемся на инструмент масштабирования. Это нужно для того, чтобы рёбра выдавливались в одной плоскости, а не по какой-нибудь дуге.
Оставшееся отверстие закроем операцией Shift+ПКМ -> Fill Hole. Затем выберем лупы, расположенные по центру выпуклостей, переключимся в перспективу и сместим выделенные рёбра вверх:
Форма задана, теперь нужно её детализировать, заодно добавив поддерживающие рёбра буртикам. Делается это тем же инструментов Insert Edge Loop с включенным параметром Insert with edge flow. Числовое значение этого параметра подбирается экспериментально.
Проконтролировать результат можно нажатием кнопки 3, она включит режим сглаженного отображения:
В этом режиме тоже можно редактировать геометрию.
Итак, верхняя крышка высокополигональной модели полностью готова. Но как быть с нижней крышкой, не моделить же её заново? Удобнее всего выделить полигоны крышки и воспользоваться операцией Shift+ПКМ -> Duplicate Faces. В результате выделенные полигоны будут продублированы отдельным мешем. Нам остаётся только отзеркалить его по оси Y на панельке Channel Box'а, а затем удалить полигоны нижней крышки, операцией Shift+ПКМ -> Combine объединить дублированную крышку в один объект с остальной банкой, проверить, совпадают ли вертексы на границе разрезов, подвинуть их, если они не совпадают, и сшить вершины операцией Shift+RMB -> Merge Vertices.
Вот какая получилась модель:
Продолжение в следующих сериях.