Как стать автором
Обновить

Простой Blender. Часть 5, заключительная

Время на прочтение11 мин
Количество просмотров63K

Here comes.

Это будет длинный пост.



На всякий случай, предыдущая серия.

Предисловие



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

Примечание про показ кнопок
В BF включали одно время в коробку аддон отображения нажимаемых кнопок (в последних версиях перестали). К сожалению, аддон у меня отображает только хоткей операции, но не отображает клавиши настройки операции. Т.е. для передвижения по оси X (g x) он отобразит g, но не отобразит x. Я нашел вот такую программу, она работает на уровне системы, но жутко спамит при скролле мышкой, поэтому я отключил события мышки. Если вы видите надпись Alt и что-то начинает выделяться — значит это Alt-ПКМ.


Порой в видео будут вырезанные куски — вот уж чем я точно заниматься не умею, так видеоредактированием. Тут надо понять и простить.

Рисовать танк будем по чертежам — это хардкорней, чем фристайл. Но и результат правдоподобней. Принцип простой — восстановление 3D фигуры из проекции.

Blender предоставляет возможность подкладывать на бэкграунд 3D области картинки, причем неограниченное количество. Картинки можно масштабировать, смещать и вращать (в 2.76b уже есть такая возможность, в 2.73 — еще нет, в промежутке — не знаю, не проверял). Картинки отображаются только в ортогональной проекции (Numpad 5), что логично — при восстановлении проекции перспектива внесла бы искажения. На то она и перспектива.

Традиционное отступление про сварщика



Сварщик я ненастоящий, да и танк тут рисуется как иллюстрация процесса на видео (что выдвигает свои требования к временнЫм затратам). Поэтому при рисовании я сделал себе следющие послабления:
  • не соблюдал бюджет полигонов
  • не занимался тщательной работой со сглаживанием — если только само не просилось / не доставляло проблем
  • не пытался вывести все до миллиметра
  • и вообще упрощал/упускал некоторые детали (иначе это заняло бы слишком много времени)


Подготовка


Поиск и подготовка чертежа



Самое первое, что надо решить — какой же танк нарисовать? Ведь Land Raider — это не танк, это продукт диверсии. Посмотрите на него сбоку и прикиньте, какие у него а) клиренс и б) способ амортизации катков. Это, кстати, фишки последних версий LR, в ранних он был инженерен. Зато он хтоничен. Я решил поискать такой же хтоничный, но более правдоподобный танк.

Ищем чертеж. Вообще, из моего опыта, сложно найти идеальный чертеж — почти всегда есть что-то из перечисленного ниже (исключение — честные скрины проекций прямо из 3D редактора):
  • смещаются элементы (особенно, если это сканы)
  • перпендикулярные линии не перпендикулярны
  • нелинейные искажения — разные размеры у элементов на разных проекциях
Обычно это не фатально, но 100% точности не добиться.

Я взял чертеж отсюда. Мне кажется, это очень хтоничный, хоть и опошленный, танк. Но такова судьба объектов масс-медиа.

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

Тонкости для Blender: на виде сверху нос модели должен смотреть вниз. На виде справа нос модели должен смотреть влево (потому что это справа от вида спереди). Если перепутать, то моделька будет задом-наперед/в зеркальном отражении.

Подключение и калибровка чертежей


Подключение



Открываем Blender, создаем новый файл и подключаем изображения:

Рисунок 1. Добавляем слоты (Add Image), открываем в слотах изображения (Open).

В 3D области будут отображаться все подключенные картинки одновременно, так что надо развести по видам:

Рисунок 2. Для каждого слота изображения в выпадающем списке выбираем нужный вид (вот тут и пригодится осмысленное именование). Обведенная область содежит контролы манипуляции положением изображения в виде.


Убедитесь, что в каждом виде — одно нужное изображение. (Не забудьте переключиться в ортографию).

Подключенные чертежи надо будет откалибровать (отцентрировать / нормировать размер) — это ведь проекции. Это можно сделать как в графическом редакторе (я раньше делал), так и в Blender (так я делаю сейчас).

Дальше — описание калибровки в Blender.

Калибровка



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

Деталь должна быть самой крупной — вы все равно точно не угадаете (просто из-за пикселизации), но цена ошибки будет меньше (если делать нормировку 100-метрового корабля по его 2-метровому якорю и ошибиться на 2% (то есть на 4 сантиметра), для корпуса ошибка составит как раз 2 метра и якорь уедет в сторону на свою длину).

В идеале — это вообще должен быть bounding box всей будущей модели. Тут я так и сделаю.

Для примера с маусом по шагам (все делается в ортопроекции — Numpad 5):
  1. Переключамся в wireframe (Z).
  2. Вид сверху (Numpad 7). Центрируем 3D курсор (Shift-C). Создаем куб (должен оказаться в центре). Масштабируем куб по X так, чтобы его ширина была примерно равна ширине модели. Подгоняем положение и размер картинки так, чтобы танк по ширине краями касался куба с обоих концов.
  3. Растягиваем куб по длине (лучше двигать торцы в EM), чтобы танк по длине вписался в куб.
    По итогу у нас есть координаты (собственно, {0,0,0}) и размеры куба по X и Y, а также откалиброванный вид сверху.

    Рисунок 3. Создаем куб в центре координат, масштабируем его (не сдвигая), правим попадание и центровку картинки по ширине, растягиваем торцы до краев модели по длине.
  4. Переключаемся в вид спереди. Куб по X уже откалиброван, поэтому подгоняем картинку по X, затем — раздвигаем верх и низ куба на края модели.
    Все, полдела сделано — у нас есть полностью определенный куб, выходим из EM и в аутлайнере снимаем возможность выделить куб (дабы не сдвинуть ненароком, а то у меня по первости руки чесались именно куб двигать).

    Рисунок 4. Вид спереди: сразу после переключения, подгонка картинки, выставление высоты куба, отключение возможности выделить куб.
  5. Так как куб полностью определен — переключаемся в остальные виды и подгоняем только(!) картинки.

    Рисунок 5. Вид сбоку до (картинка гораздо меньше bounding box) и после подгонки.
  6. Подгонка завершена. Завершаем и страхуемся — сворачиваем все слоты изображений (рис.6 ), а затем и саму группу Background:

    Рисунок 6. Свернутые слоты, чтобы не ткнуть что-то ненароком.

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

Готово.

Моделирование



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

Маус это:
  • танк
  • очень простой в плане геометрии танк (за исключением гусениц и маски орудия).

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

Если быть совсем уж въедливым — маус воевал недолго, поэтому рефы к нему есть 3 типов — крупнозернистая хроника, модельки и фотки из Кубинки (большинство — из одного ракурса. Наверное, там трудно подступиться по-другому). И, к примеру, нюансы маски отличаются от источника к источнику. Вот я и оправдался перед тонкими ценителями.
Теперь оправдаюсь перед остальными — время на толковый сбор инфы у меня было не так уж много, да и я делал упор на иллюстративность процесса, так что местами я упрощал/догадывался. Но старался оставаться логичным.

Замечания о часто используемых приемах/инструментах.


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

Костыль align to


Так как в Blender нет из коробки такого функционала, как align to, то приходится выкручиваться — использовать трансформации в локальных координатах, делать snap к каким-то вспомогательным/опорным элементам, центрировать по курсору. В случае точек есть костыль через масштабирование. Если выделить несколько точек и отмасштабировать их по какой-то оси на 0, то они окажутся на одном уровне (медианном) по этой оси. Объяснение туманное, ниже будет видно.

Knife


Knife — интерактивный (то есть, у вас есть возможность откатить косяки, не выходя из работы с инструментом) инструмент резания геометрии. В общем случае выглядит так: вы выставляете какой-то вид, переключаетесь в EM, включаете нож, обозначаете линии разреза и подтверждаете разрез. Blender режет ребра в местах пересечения с линией разреза и соединяет новые точки между собой, попутно перенатягивая полигоны.

Knife project


Knife Project (проективный нож) — это как Knife, только с использованием заранее заготовленного контура вместо интерактивно рисуемой линии разреза, с учетом проекции и только на ближайшей поверхности. Позволяет не заморачиваться со склейкой разных объектов в простых случаях.

Поехали.

Башня



Простейший подход. Берем примитив и дорабатываем (кровавой резней ребер, бескомпромиссной экструзией и решительным слиянием точек (Alt-M)). А так как башня симметрична по Y, то еще и моделируем только половину.

Подробности
План такой:
  1. Стартуем башню как цилиндр на боку (башня спереди вроде круглая).
  2. Отрезаем ненужный кусок цилиндра, чтобы осталась только часть цилиндрической поверхности спереди.
  3. Так как сбоку башня под наклоном — срезаем часть поверхности под углом наклона.
  4. Из остатков поверхности вытягиваем стенки/крышу (с учетом поворотной части).
  5. Натягиваем полигоны (со всех сторон — потребуется для работы ножа на следующем шаге).
  6. Делаем ножиком фаску на заднем торце башни (это больше иллюстративный шаг). Важно, чтобы с обратной стороны детали тоже был полигон, иначе сзади не будет разреза. Склеиваем точки.
  7. Вытягиваем опорную часть башни.
  8. Донатягиваем / срезаем лишние полигоны.
  9. Готово.




Шасси



Тут я использовал технику последовательной постройки полигонов. Очень помогает, если а) геометрия более-менее рубленная и б) слету непонятно, как сделать иначе.

Подробности
План простой:
  1. Создать кружок (потому что вручную будет сложно правильно нарисовать).
  2. Отрезать от него ненужное и с помощью Ctrl-ЛКМ и F дорисовать контур боковой стенки.
  3. Из получившегося полигона вытянуть оставшуюся геометрию шаг за шагом.





Катки


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

Опорные катки и опоры


Опоры просто нарисовал на глазок через Ctrl-ЛКМ в EM. Если кому-то это очень царапает душу — то скажу в свое оправдание, что овчинка в данном случае выделки не стоит.

Катки — через экструзию и масштабирование по осям.

Подробности
Очень просто делается, если знать 2 нюанса Blender:
  • Как уже было сказано, экструзия — это 2 операции — собственно создание новых элементов с установкой связей и перестановкой выделения на них, а затем — перемещение. Если выделить элементы, нажать E и Enter, то новые элементы создадутся, но никуда не сдвинутся.
  • Если при масшатбировании нажать X, то оно будет идти только по X. Если же нажать Shift-Х, то оно будет идти по ВСЕМ осям, КРОМЕ Х.




Ленивцы



Чистая иллюстрация 2х методик — создание тела вращения и применение булевых операторов.

Подробности



Ведущие катки



Вот он, найденный чертеж:

Рисунок 7. Ведущий каток, вид сверху. Обратите внимание так же на порядок следования опорных катков.

Подробности
Тут примечания такие:
  • для шестеренки использовал подсмотренный трюк с Checker Deselect. Важные нюансы трюка: а) количество сегментов круга-донора = количество зубьев * 4, б) для Checker Deselect надо сначала выделить все ребра, а потом явно выделить одно (Shift-ПКМ 2 раза), чтобы инструмент знал, откуда стартовать. Ну и про настройку операции не забудьте.
  • на этом шаге я подложил найденный чертеж. Процесс подкладывания почти полностью вырезан как однообразный и не вдохновляющий.




Маска орудия



Очевидно, что деталь — литая. Для литых деталей в общем случае нет правил и логику далеко не всегда можно уловить либо претворить в жизнь.
Тут мне пришлось обратиться к поверхностям по NURBS-кривым (результат не считается геометрией, так что надо явно конвертить в меш). К сожалению, данный способ в Blender не позволяет создать ветвления поверхности, так что пушка у мауса будет одна. Зато с красивой маской.
В принципе, можно было бы нарисовать сечения-полигоны и соединить их через Bridge Edge Loops, например (как я сделал в конце для закрытия задней поверхности маски), но это заняло бы куда больше времени. По-крайней мере, в моем исполнении.

Подробности
Нюансы:
  • Я активно пользовался пропорциональным редактированием.
  • Поверхность не построится, если хотя бы одна NURBS-кривая не совпадает по числу управляющих точек со всеми остальными. Поэтому я собственно и делал сначала из круга квадрат, а потом из получившегося квадрата — круг.


Правила построения поверхности по NURBS-кривым:
  1. Кривая создается из подраздела Surface
  2. Последующие кривые не создаются и не копипастятся, а делается “поверхностная копия” — Shift-D.
  3. Количество управляющих точек у всех экземпляров должно быть одинаково.
  4. Готовый набор сливается в один объект (выделить все нужные кривые и Ctrl-J) и жмется F (заполнение).
  5. Получившаяся поверхность — это не меш. Для конверта в меш — Alt-C.




Исходники гусениц



Гусеницы — самое главное в танке. Поэтому о них — поподробнее.

Принцип создания понятен из концепции гусениц — массив элементов, лежащий на кривой. Значит, надо нарисовать кривую-профиль гусеницы и объект-трак, а затем навесить на трак модификаторы Array и Curve (следование траектории), указав в качестве параметра кривую-профиль. Скажу сразу: я не вырисовывал траки, а скорее изобразил что-то по мотивам — тут, мне кажется, важнее сам принцип.

Так как маус хтоничен, то и гусеницы у него непростые.

Во-первых, их сложно рассмотреть на рефах. Я нашел крупную фотку вот здесь(респект составителям). Вот она:

Рисунок 8. Гусеница мауса крупным планом.

Во-вторых, фактически у гусеницы 2 вида траков — загнутый опорный с 4 дырками по краям и решетчатый связующий:

Рисунок 9. Два вида траков мауса.

На данном этапе я нарисовал собственно профиль (на скорую руку, потом еще будет исправляться) и 2 трака.

Подробности








Интерлюдия



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

Точки поворота и сборка групп



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

Так же я сделал несколько групп, чтобы было удобнее впоследствии управлять видимостью.

Подробности




Сборка ходовой


Хтоничность мауса продолжает нас преследовать. У него 48 опорных катков, между прочим (а у Т-34 — 10). В шахматном порядке. На этом этапе я активно использую Array и Mirror.

Подробности




Сборка гусениц



Финальный и самый длинный шаг.

Изложенный в разделе “Исходники гусениц” способ предполагает наличие только одного вида трака. Хтоничность мауса дает нам 2 вида. Так что я сделал две гусеницы на одном и том же месте — свою для каждого вида трака.

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

Подробности
Алгоритм:
  1. Создаем кривую-профиль (у нас уже есть).
  2. Создаем вспомогательную плоскость — она будет а) донором полигонов для процедурной по-полигонной дупликации траков и б) направляющей для правильной ориентации размноженных траков. Как следует из пункта а), сколько у этой плоскости полигонов — столько и траков будет у гусеницы. А можно применить Array к плоскости, и все будет работать.
  3. Для плоскости выставляем Curve по профилю. Тонкий момент — Curve отрабатывает как надо в том случае, если origin’ы кривой и элемента, на который Curve навешиватеся, должны совпадать. Это невозможно понять, это можно только запомнить.
  4. Создаем собственно трак (тоже уже есть). Делаем его дочерним (это важно) по отношению к вспомогательной плоскости. У плоскости включаем по-полигонную дупликацию.
  5. Для контроля двойной гусеницы создаем Empty-объект и ставим у вспомогательных плоскостей констрэйнт Copy Location на этот объект. В результате — при перемещении Empty по оси Y обе гусеницы крутятся.
  6. Повторяем пункты 2-5 для второго вида траков.
  7. Сдвигаем одну из гусениц (любую) на пол-периода вперед. Двигать надо вспомогательную плоскость.


Я делал все это немного в другом порядке, но шаги были те же.

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





Детали и результат



Собственно, к этому моменту маус готов и собран, осталось навесить мелкие детали, которые, кстати, дают 80% presenсe. Я не буду тут рассказывать, как их делать — считаю, что к данному моменту это уже самоочевидно (режем, масштабируем, экструдируем, сливаем, заполняем). Надо лишь не забывать привязывать детали к частям танка (парентинг или Child of или вообще Ctrl-J — как вам будет удобно).

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

Заключение



Это завершающая серия в цикле «Простой Blender». Всем спасибо за внимание и проявленный интерес. Для меня это был очень необычный опыт — публиковаться в СМИ, да еще и с личной точкой зрения. И для того, чтобы понять, прост ли Blender, просьба поучаствовать в опросе.

И еще интересно бы было услышать комментарии 3D-артистов, работающих в других пакетах — как бы выглядел процесс моделирования каких-то частей танка (башня там, или маска) — просто чтобы сравнить. Да и вообще комментарии приветствуются.


Ответил на комментарий, называется.
Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Так прост ли Blender?
28.27% Да. Я давно это знал.132
16.7% Оказывается, да.78
32.12% Не знаю, не уверен, сложно сказать.150
7.71% Оказывается, нет.36
15.2% Нет. И я давно это знал.71
Проголосовали 467 пользователей. Воздержались 188 пользователей.
Теги:
Хабы:
+40
Комментарии9

Публикации

Изменить настройки темы

Истории

Ближайшие события