Как сделать меш в blender

Обновлено: 03.07.2024

Это первая статья из цикла по работе в Blender. Вот ссылки на все три, выбирай ту, которая тебе нужна:

Эта статья поможет новичкам, которые хотят научиться работать с материалами в Blender. Ты узнаешь, как правильно настраивать материалы и какие дополнительные расширения использовать, чтобы облегчить работу. Внимательное изучение статьи займет около 10 минут. Если возникнут вопросы — пиши в чат-бот (кнопка справа внизу). Там на связи живой менеджер :) Он поможет разобраться. Ну что, давай начнем!


Дополнительные программы для удобства

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

Substance Painter — программа для текстурирования 3D-моделей и создания текстурных карт для них. Отсюда будем импортировать текстуры.

Node Wrangler — аддон с инструментами, который улучшает и ускоряет воркфлоу основанный на нодах (node-based workflow).

Активируем его так:

Во вкладке Edit заходим в настройки Preferences и ставим галочку в Addons. Для удобства ищем аддон через поисковую строку.

Lock X,Y,Z - Блокировать по X,Y,Z. Это позволяет блокировать деформации или модификации по одной из осей.

Tiling X,Y,Z- Использование этой опции позволяет вам плавно накладывать мазки вдоль заданных осей. Это позволяет создавать повторяющиеся узоры.

Feather - Уменьшает силу штриха там, где он перекрывает плоскости симметрии.

Radial X,Y,Z - Радиальная локальная симметрия, если вы хотите изменить направления, в которых указывают оси, вы должны повернуть модель в режиме редактирования, а не в режиме объекта. Эти настройки учитывают радиальную симметрию по желаемым осям. Число определяет, сколько раз будет повторен ход в пределах 360 градусов вокруг центральных осей. Недоступно в режиме рисования текстур.

Tile Offset X,Y,Z - Размер плитки по умолчанию равен одной единице. Смещение позволяет изменять размер плитки по всем трем осям.

Direction - выбрать направление для Symmetrize.

Symmetrize - Сделать объект симметричным согласно направлению в Direction.

Options

Всплывающее меню Options в режиме Sculpting

Display:

Fast Navigate - Показывает низкое разрешение объекта при перемещении и вращении во вьюпорте.(Работает только с Multiresolution).

Delay Viewports Updates - Обновите геометрию, когда она войдет в вид. Это обеспечивает более быструю навигацию.

Use Deform Only - Ограничивает активированные модификаторы на активном объекте Модификаторами деформации и Мультиразрешением. Конструктивные модификаторы (такие как Subdivision Surface, Mirror и другие) деактивируются, потому что они могут давать неточные результаты.

Auto-Masking - Автомаскирование. Работает так же, как и с Кистями (см. ниже.)

Gravity:

Factor - Позволяет добавить гравитации к мазкам кисти.

Orientation - Используя другой объект, гравитацию можно сориентировать по локальной оси Z заданного объекта, изменяя направление силы тяжести.

Маски

Маска - это область модели, которая "защищена" от рисования. Маска отображается только в режиме Скульптинга.

- при нажатии на треугольник внизу справа появится дополнительные кисти.

- Рисование наборами граней. "цветными масками". Аналог из Zbrush - Polygroup.

Mask (M) - круглая маска

Box Mask (B) - квадратная маска

Lasso Mask (Ctrl+Shift+ЛКМ) - произвольная маска

Hide Mask - квадратная маска, скрывающая часть меша.

Инвертирование Маски - Ctrl+I.

Прозрачность кисти меняется в Viewports Overlays - Mask.

Изменение прозрачности Масок в Overlays.

Кисть маска имеет такой же функционал, как и большинство кистей.

Brush Settings (Настройка Кисти):

Radius - изменение радиуса(размера) кисти.

- включить силу нажатия (для планшета).

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

Radius Unit (View/Scene) - Изменять радиус кисти относительно Вида или Сцены. При масштабировании в View радиус кисти будет увеличиватся, а при Scene охватывать только объект (как в Zbrush).

Strenght - Сила нажатия

Direction (Add/Subtract) - Направление кисти

Normal Radius - Радиус нормали. Чем выше значение, тем сильнее кисть будет прилегать к объекту, и следовать по его форме.

Hardness - Твердость кисти.

Advanced (Продвинутые настройки):

Auto-Masking (Автомаскирование):

Topology - Маскирование с учетом топологии.

Маскирование с учетом Топологии

Face Sets - Не маскирует область, которая закрашена Face Sets.

Маскирование с учетом Face Sets.

Mesh Boundary - Маска не закрашивает края меша.

Использование Mesh Boundary

Face Sets Boundary - Маска не закрашивает края, принадлежащие Face Sets.

Использование Face Sets Boundary

Propagation Steps - расстояние использования границы сетки (Mesh Boundary).

Front Face Only - Маскировать только передние грани.

Маскирование с Включенным Front Face Only

Маскирование с Выключенном Front Face Only

Меню Mask

Помимо вышеперечисленных возможностей в меню Mask есть дополнительные.

Smooth Mask - Сглаживание Маски

Sharpen Mask - Увеличить Резкость Маски

Grow Mask - Расширить границу Маски

Shrink Mask - Сжать границу Маски

Increase Contrast - Увеличение Контраста Маски

Decrease Contrast - Уменьшение Контраста Маски

Expand Mask By Topology/Curvature - Развернуть Маску по Топологии / Кривизне

Expand Mask By Topology (оригинал)

Expand Mask By Curvature (оригинал)

Extract Mask - Извлечь Маску. Извлекает Маску из маскированного объекта. Извлечение создает новый объект с применением модификатора Solidify.

Использование Extract Mask

Mask Slice - удаляет часть маскированного меша без заполнения.

Использование Mask Slice

Mask Slice and Fill Holes - удаляет часть маскированного меша с заполнением.

Использование Mask Slice and Fill Holes

Mask Slice to New Object - Вырезает маскированную область преобразуя в Новый Объект.

Использование Mask Slice to New Object

Dirty Mask - Создает маску с учетом геометрии объекта.

Использование Dirty Mask.

Face Sets.

Face Sets - Это кисть рисует Набор Граней с каждым штрихом. Помимо основных возможностей Маски, имеет ряд дополнительных.

Пример использования Face Sets (оригинал)

Рисование Face Sets

Face Sets поддерживает сглаживание. Сглаживание происходит с сажатым Shift.

Сглаживание Face Sets

Что бы рисовать одним цветом зажмите Ctrl и начинайте рисовать в нужной цветовой области.

Рисование определенным Face Sets

Клавиша H - скрывает весь объект, кроме выбраного Face Set'а.

Shift+H - скрывает выбранный Face Set.

Alt+H - Показать все Face Sets.

Скрытие выбранного Face Sets

С включенным Автомаскированием по Face Sets в настройках кисти можно рисовать только на выбранной области.

Рисование с учетом Face Sets

Face Sets Boundary - Учитывать границы Face Sets. Если включить вместе с Face Sets, то это позволить рисовать на каждом наборе граней по отдельности.

Propagation Steps - расстояние использования границы сетки (Mesh Boundary). В данном примере использовалось значение 5.

Face Sets Boundary

Face Sets + Face Sets Boundary

Меню Face Sets

Face Sets From Masked - создать Face Sets из Маски

Fase Sets From Visible - создает Face Sets из видимой геометрии. Удаляет все Face Sets и заливает дефолтным цветом Маtcap, если нет скрытых Face Set'ов.

Face Sets From Edit Mode Selection - Создает Face Sets из выделенных фейсов в режиме Edit Mode.

Init Face Sets - Создать Face Sets по выбранному параметру.

Grow Face Sets - Расширить границу Face Sets.

Shrink Face Sets - Сжать границу Face Sets.

Extract Face Set - Извлечь Face Set.

Invert Visible Face Sets - Инвертировать видимые Face Sets.

Show All Face Sets - Показать Все Face Sets.

Randomize Colors - Рандоматизировать Цвета.

Маскирование Объектов.

(В 2.91 и выше.) Fade Inactive Geometry - Затухание неактивной геометрии. При переключении объектов (D) неактивная область затемняется. Данный параметр изменяет интенсивность затемнения.

Для того, чтобы сделать меш (объект) активным в Blender 2.8 Python API вместо своства context.scene используется context.view_layer.

При попытке сделать меш активным через “bpy.context.scene.objects.active” Blender сигнализирует ошибкой:

AttributeError: bpy_prop_collection: attribute “active” not found

Чтобы сделать объект активным, нужно использовать следующую команду:

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

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

Уже несколько дней бьюсь на проблемой экспорта объектов в OGRE Mesh в blender.

В мануалах по огру сказано, что mesh состоит из submeshей, но как указать OgreBlenderExport что экспортировать я хочу несколько объектов в mesh тогда?
Может кто кинет ссылку на статью как это правильно делается. Также с при экспорте с одним объектом у меня остались не решенными несколько проблем:
Первая проблема: ось Z объекта становится осью Y.
Вторая: координаты mesh не соответствуют ожидаемым, даже когда я меняю его origin. и это является частью третьей проблемы.
Третья проблема: после выполнения изменений объекта в blender (поворот, изменение масштаба, originа), mesh остается прежним

Я использую blender 2.43, Ogre Eihort 1.4, OgreBlenderExport 1.4, CommandLineTools 1.4

Кто-нибудь знает что можно сделать?

Во-первых штатный экспортёр не умеет экспортировать более одного обьекта Blender за раз. Субмеши там используются только затем, чтобы разделить треугольники, испоользующие разные материалы. В OGRE каждый submesh привязан к одному материалу (для эффективного рендеринга).

Я усовершенствовал OGRE'вский экспортёр, добавив туда несколько дополнительных возможностей; в частности, теперь можно экспортировать много обьектов за раз, при этом каждый обьект генерирует своё подмножество submesh'ей. Например, если экспортируются обьекты A и B; в обьекте A используется один материал, а в обьекте B используется три материала - в результате получатся четыре submesh'а: A, B@1, B@2, B@3.

Во-вторых для приведения координатной системы Blender в систему OGRE следует установить угол вращения вокруг оси X равным -90 градусов. При этом ось Y становится осью Z, а ось Z становится -Y.

В-третьих в исходном экспортёре обьект всегда экспортируется в локальных координатах обьекта, а не в глобальных координатах. Чтобы применить все изменения масштаба и вращения меша следует нажать Ctrl+A (Apply Scale/Rotation), тогда координаты вертексов реально поменяются (а масштаб станет 1:1 и вращение сбросится в 0/0/0).

Опять же не помню, но по-моему я добавил кнопку World Coordinates, при этом обьект экспортируется в глобальных координатах а не в локальных. Если я ошибся и эта кнопка была в исходном экспортёре - прошу прощения, просто я им никогда не пользовался в чистом виде, мог и забыть.

Я сейчас на работе, но вечером выложу изменённый мною экспортёр по адресу:

Я посылал свои изменения автору экспортёра, но он их не стал накладывать мотивируя тем, что он пишет новую версию экспортёра, якобы с нуля. В общем, автор пропал и мои изменения так и остались у одного меня.

Так что рад, если мой труд поможет ещё кому-то.

Большое спасибо за такой развернутый ответ и экспортер!

Экспортер выдает мне следующие ошибки:
Traceback (most recent call last):
File " ", line 3830, in buttonCallback
File " ", line 3416, in export
File " ", line 3248, in export_mesh
File " ", line 1855, in __init__
File " ", line 1976, in _createName
AttributeError: 'Blender Mesh' object has no attribute 'hasVertexColours'
Что можно сделать?

П.С. Я подозреваю, что версия библиотек, которые идут вместе с OgreBlenderExport 1.4 не соответствует той, которую вы усовершенствовали

Сначала я подумал, может экспортёр не работает в виндовой версии блендера (сам я использую Linux). Поэтому я установил на втором компе в винде свежий Blender 2.43 затем скопировал плагин в каталог .blender/scripts/, запустил Blender и сразу попытался экспортировать куб, который там отображается по умолчанию. Кроме ошибки "can't import pickle module" (оттого, что не установлен Python) всё остальное сработало как надо. Без модуля pickle не будет работать сохранение настроек плагина в .blend файл, поэтому всё-таки рекомендую установить Python (ровно той версии, с поддержкой которой скомпилировал Blender - он выводит эту версию, если запустить Blender из консоли, для Blender 2.43 это Python 2.4).

В общем, отключите кнопку "Game Engine Materials". Я не использую эти материалы и Вам не советую. В принципе, я исправлю эту ошибку в экспортёре, просто я на неё никогда не нарывался (так как не экспортировал материалы из Game Engine). Используйте обычные материалы, они имеют гораздо больше параметров и нормально экспортируются. В любом случае, Вам скорее всего захочется скорректировать конечные материалы вручную, так что экспортируемый файл с материалами это всего лишь болванка для дальнейшего редактирования.

Что же до ошибки, то это не моя вина. Просто экспортёр был написан под старый блендер, в 2.42 API блендера сильно изменилось и я исправил скрипт в тех местах, где встречал несовместимости. Это место не заметил, так как не использую game engine materials, как уже говорил.


Франческо в раздумьях. Моя 3-я работа с анимацией

Всем привет, Пикабушники!

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

P. S. Косяки с руками заметил уже на финальном рендере, переделывать было уже лень, за это можно сильно не ругать😁

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