Как сделать игру на блендер
Перейти к содержимому

Как сделать игру на блендер

  • автор:

Пост о том, как я игрушку делал ⁠ ⁠

Пост о том, как я игрушку делал Игры, Blender, Blender game Engine, Gamedev, Моё, Длиннопост, Гифка

Давно уже в голове витала влажная мечта сделать небольшую PC игрушку. Требования были не жёсткие. Хотелось сделать аркадную гонялку в духе Playstation One. Жми газ, подруливай и просто наблюдай за тем, как оно ездит. Без сложностей вроде регулировок ходовой перед стартом, без сложной физики авто, которая бы заставляла постоянно думать. Ну, как — то так в общем.

Начал я с самого начала — обратился к своему воображению. Нужно было составить небольшой список того, что я хотел получить от игры.
1. Приятный геймплей. Без сложного управления.
2. Плавная и мягкая физика с максимальной предсказуемостью того, как машина поведёт себя.
3. Графон, который бы работал на моём компьютере без лагов и не резал глаза. Сложность была в том, что выбранный мной движок был весьма голодным на ресурсы, но об этом позже.
4. Максимальное количество своего контента. Все домашние игроделы грешат тем, что тянут текстурки, модели и звуки с открытых источников. Я же находил романтику в том, что мог собрать всё то, что умею в один проект.

С чего начинать?.
Этот вопрос меня очень долго мучал потому, что я толком не знал о своей игре ничего.
Начать с локации? Я не знаю, какая будет физика. Как будет вести себя машина при прохождении поворотов, как её будет кидать на неровностях?
Взяться за код? Ещё не выбран движок, да и знания у меня только одной книги по C# и gml, который не может нормально в 3D.

Выбор движка.
Игровой движок — база. Основание, на котором делается игра. Он объединяет в себе физический, графический и звуковой движки, предоставляя удобный и быстрый доступ к оным.
Но их как грязи. Один может 3D и 2D, Другой имеет базу первоклассных шейдеров, третий имеет кучу справок и примеров, который бы помогли начать.
Спасение я нашёл там, где не сильно и ожидал — BGE. Я работал в 3D редакторе Blender уже давно и его интерфейс был мне привычен. Игровой движок в нём ещё трогать не приходилось.

Я решил обосновать как — то свой выбор.
1. bge имеет малую популярность. Сделать на нём игру — благое дело. глядишь, разработчики Blender решат его допилить и, в целом, поднимут известность этого 3D редактора, который был моим единственным выбором. 3G свисток не позволял скачать жирный 3D макс, а блендер при схожих возможностях весил всего 100мб.
2. Blender был моим основным инструментом, которым я вытягивал свою фантазию и успокаивал свою душу. Всё — таки нет ничего более важного для творческой личности, чем возможность как — то передать свои мысли.
3. Я не хотел разбираться в новом. Мне было проще костылить на старом.

Начал я с того, что стал проверять разными способами возможности bge:

Сложные материалы для BGE. Сложные они условно. На деле это текстура с Normal Map и небольшая система нодов для красивого отблеска, но до этого я работал исключительно с Cycles рендером и не сильно интересовался возможностями реалтайма.

Пост о том, как я игрушку делал Игры, Blender, Blender game Engine, Gamedev, Моё, Длиннопост, Гифка

Мрачная ночь мне не сильно понравилась, а потому я немного доработал сцену и переделал освещение:

Пост о том, как я игрушку делал Игры, Blender, Blender game Engine, Gamedev, Моё, Длиннопост, Гифка

Графика меня не устраивала. Как сделать всё легко и красиво? Где та самая кнопка «сделать за**ись», о которой мечтает каждый?
Ответ навязывался сам собой — шейдеры.
Увы, но с написанием шейдеров я ещё не сталкивался, а любые попытки разобраться в Open GL заканчивались сожжённым стулом потому, что я банально не понимал, как с помощью указанных функций мне сделать то, что я хочу.
вот и первый чужой контент — набор шейдеров. Я успокаивал себя тем, что мне придётся их знатно настроить под свою игру прежде, чем использовать, но в душе понимал, что это отклонение от ожидаемого — очень плохое начало.

Первый тест новых шейдеров. Объёмный свет, SSAO (сложное глобальное затенение), DoF (фокусировка) и немного цветкора:

Пост о том, как я игрушку делал Игры, Blender, Blender game Engine, Gamedev, Моё, Длиннопост, Гифка

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

За основу я взял субарку и накидал такую вот модельку:

Пост о том, как я игрушку делал Игры, Blender, Blender game Engine, Gamedev, Моё, Длиннопост, Гифка

Далее на удачу мне в вк группе по блендеру появился пост, где парень спрашивал, как добавить колёс к машинке, написание физики которой демонстрировалось в видео — уроке.
Пришлось покопаться, но я таки нашёл этот файлик и записал видео:

И начал разбираться в коде:

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

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

Пост о том, как я игрушку делал Игры, Blender, Blender game Engine, Gamedev, Моё, Длиннопост, Гифка

Пост о том, как я игрушку делал Игры, Blender, Blender game Engine, Gamedev, Моё, Длиннопост, Гифка

Пост о том, как я игрушку делал Игры, Blender, Blender game Engine, Gamedev, Моё, Длиннопост, Гифка

Пост о том, как я игрушку делал Игры, Blender, Blender game Engine, Gamedev, Моё, Длиннопост, Гифка

Она всё-ещё была сырой и требовала допилки. Без шейдеров, без объектов. Скука, но этого уже было достаточно для того, что бы продолжить работу над физикой.

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

В назначенную дату в группе появился пост с совершенно новым проектом — RallyCross a1p.
«Управление улучшено, графика доработана, добавлена система повреждений!»
Всё это оказалось чистой ложью и пользователи вместо этого.

Пост о том, как я игрушку делал Игры, Blender, Blender game Engine, Gamedev, Моё, Длиннопост, Гифка

Пост о том, как я игрушку делал Игры, Blender, Blender game Engine, Gamedev, Моё, Длиннопост, Гифка

В левом нижнем углу карты красовался портрет одного известного человека:

Пост о том, как я игрушку делал Игры, Blender, Blender game Engine, Gamedev, Моё, Длиннопост, Гифка

Пока в комментариях шли активные обсуждения первоапрельской версии — у меня было время для допилки системы повреждений.

Машина действительно уже могла помяться, игра прекращалась при перевороте на крышу:

Пост о том, как я игрушку делал Игры, Blender, Blender game Engine, Gamedev, Моё, Длиннопост, Гифка

Но работало это не очень хорошо. Нужно было сделать зависимость повреждений от силы удара.

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

Пост о том, как я игрушку делал Игры, Blender, Blender game Engine, Gamedev, Моё, Длиннопост, Гифка

Пост о том, как я игрушку делал Игры, Blender, Blender game Engine, Gamedev, Моё, Длиннопост, Гифка

Пост о том, как я игрушку делал Игры, Blender, Blender game Engine, Gamedev, Моё, Длиннопост, Гифка

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

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

Пост о том, как я игрушку делал Игры, Blender, Blender game Engine, Gamedev, Моё, Длиннопост, Гифка

Пост о том, как я игрушку делал Игры, Blender, Blender game Engine, Gamedev, Моё, Длиннопост, Гифка

Увы, но из — за некоторых причин открывающиеся двери и капот пришлось вырезать.

То, как это выглядит в действии — можно посмотреть тут. Есть некоторые недопилки, но, главное, я достиг своей цели — сделал аркадную гонялку. Да, я немного отклонился от начального плана. Особенно в плане чужого контента. Если быть совсем честным — очень много чужого контента, а именно:

Начальная физика машинки.
Набор шейдеров (DoF, SSAO, ColorCorrection, Bloom, Water Shader)
Текстуры гравия, бетона и деревьев, карта окружения.
Модель вышки.

В целом — я рад проделанной работе. Я узнал много нового и интересного о играх и их составляющих. Я немного выучил Python и впервые реализовал до условного конца задуманное.

Увы, но скинуть саму игрушку я не смогу. Blender Game Engine, как оказалось, имеет один очень важный изъян — он компилирует игрушку только под ту систему, под которую скомпилирован. Тоесть игра на Windows 7 на 8 \ 8.1 \ 10 не идёт :с
Единственным выходом остаётся скидывание исходника и запуск оного в Blender 3D, но, думаю, мало кому захочется пройти такой длинный путь ради того, что бы погонять очередной доморощенный проект коих тысячи. Думаю, видео и картиночек хватит =)

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

Blender для начинающих/Game

    Стандартные движки

      Описание всего по немногу. После прочтения Вы сможете моделировать в Blender.Разбирание меню. После изучения этой главы Вы будете быстрее ориентироваться в меню.Описание модификаторов. После прочтения данной главы Вы сможете плодотворно пользоваться модификаторами в Blender.В этой главе описывается игровая логика в BGE. В конце прочтения данной главы Вы будете владеть игровой логикой почти на профессиональном уровне.Здесь рассказывается о нодах в Blender. В конце прочтения этой главы Вы будете уметь создавать несложные, но красивые материалы.Глава посвящена нодам в старом рендере «Blender Render». После изучения главы Вы будете способны ориентироваться в нодах старого рендера на среднем уровне.Эта часть книги дает сведения о создании анимации. После ее прочтения Вы сможете работать с анимацией в Blender.Здесь повествуется о том, как настроить Blender под себя. В конце прочтения этой части книги Вы сможете изменить интерфейс под себя.Такие тонкости Blender, которые могут сделать работу в нем более комфортной. После изучения этой главы Вы сможете оптимизировать работу программы и работать с объектами на более высоком уровне.
      Здесь рассказывается о настройке поведения объектов с помощью нодовой системы. Изучив главу, Вы будуте способны визуально программировать логику нодами.
      Рендеринг

        Примеры создания простых моделей для игр и самих игр, и материалов для игр. После изучения этой главы Вы будете способны создавать игры средней сложности.Примеры использования движка Cycles Render с кратким описанием. В конце изучения этой главы Вы сможете быстрее разбираться в нодах.
        Примеры настройки игровой логики в Blender. В конце прочтения этой главы Вы будете уметь создавать свою игровую логику.Решение задач на Python с использованием Blender. После прочтения данной главы Вы приобретете навыки написания скриптов.

      Старый Blender Содержит информацию о Blender 2.49. После прочтения данной части книги Вы сможете назвать основные плюсы и минусы Blender 2.49.

      Blender & 3DsMax Сравнение Blender, 3DsMax, Sweet Home и Art Of Illusion. После прочтения этой главы Вы будете немного знать о различиях этих программ.

      Создаем игру. Часть 2: Модели для локации

      В этой статье описан процесс создания элементов локации — геометрии, текстур и материалов. Статья рассчитана прежде всего на опытного пользователя Blender, желающего познакомиться со спецификой создания игрового контента для движка Blend4Web.

      Стилистика графического контента

      Для формирования атмосферы игрового процесса был выбран нефотореалистичный «мультяшный» сеттинг. Пропорции персонажа и окружения нарочно гипертрофированы для придания несерьёзности игрового процесса.

      Элементы локации

      Локация состоит из следующих элементов:

      — область действия персонажа: 5 платформ, на которых разворачивается основное действие игры;

      — окружение заднего фона, роль которого будут играть менее детализированные пепельные горы;

      — лава, покрывающая большую часть поверхности сцены.

      На этом этапе развития игры исходные blend-файлы моделей и сцен организованы так:

      env_stuff.blend — файл с элементами окружения сцены, по которым будет перемещаться персонаж;

      character_model.blend — файл с геометрией, материалом и скелетом персонажа;

      character_animation.blend — файл с добавленной по ссылке группой объектов персонажа и анимацией для него (в том числе запеченной);

      main_scene.blend — сцена, в которую добавлены по ссылке элементы окружения из других файлов. В ней также содержится модель лавы, геометрия для определения столкновений и настройки освещения;

      example2.blend — главный файл, в который добавлены по ссылке все элементы сцены и персонаж (в будущем сюда будут добавлены другие игровые элементы).

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

      Создание геометрии центральных островов

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

      1) Плоский абрис будущих островов при помощи одиночных вертексов, которые потом были объединены в полигоны и триангулированы для комфортной правки при необходимости;

      2) К плоскому абрису применен модификатор Solidify с параметром 0.3, который выдвигает объем геометрии вверх;

      3) На последней стадии модификатор Solidify был применен, чтобы получить сетку для правки вручную. Сетка была подразбита по необходимости на бортах островов. Согласно образу были добавлены впадины и изменена сетка, чтобы создать иллюзию обломков скал с выбоинами и выступами. Ребра были сделаны жесткими (используя Edge Sharp), после чего был добавлен модификатор Edge Split с включенной опцией Sharp Edges. В результате образовалась хорошо очерченная тень по бокам островков.

      Модификаторы рекомендуется не применять (имеется в виду кнопка Apply). Вместо этого включить галочку Apply Modifiers в настройках объекта на панели Blend4Web, в результате чего модификаторы применятся к геометрии автоматически при экспорте.

      Текстурирование центральных островов

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

      Всего было подготовлено 4 текстуры.

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

      На втором этапе был запечен эффект взаимного затенения (ambient occlusion). Поскольку геометрия низкополигональная, в результате получились достаточно резкие переходы света и тени. Их можно слегка размазать в графическом редакторе, используя фильтр Gaussian Blur.

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

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

      На приведенной ниже схеме вспомогательного нодового материала видно, как смешивались созданные текстуры.

      Цвет диффузной текстуры (1) был умножен сам на себя для увеличения контрастности в темных местах.

      Далее при помощи запеченого затенения (ambient occlusion) (2) цвет был слегка поджарен в темных местах, после чего была наложена нарисованная вручную текстура (3) — нода Overlay дала наилучший результат.

      Следующим этапом была еще раз наложена текстура с запеченым затенением (ambient occlusion) (2) — уже при помощи ноды Multiply — чтобы затемнить текстуры в определенных местах.

      Наконец, четвертая текстура (4) была использована в качестве маски, по которой были смешаны результат обесцвечивания текстуры (при помощи ноды Hue/Saturation) и оригинальная цветовая текстура (1).

      Карта бликов была получена с помощью применения ноды Squeeze Value к получившемуся результату.

      В итоге мы получили следующую картину.

      Создание фоновых гор

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

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

      Схема совмещения текстур так же упрощена.

      Вначале идёт цветовая карта (1), на которую накладывается запеченое затенение ambient occlusion (2), и в конце добавляется вручную нарисованная текстура (3).

      Карта бликов была создана из цветовой текстуры. Для этого использовался один канал текстуры (Separate RGB), который был скорректирован (Squeeze Value) и подан в материал в качестве цвета бликов.

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

      Итоговый результат текстурирования скал для заднего плана:

      Оптимизация элементов окружения

      Теперь приступим к оптимизации подготовленных элементов и подготовке их для отображения в движке Blend4Web.

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

      Аддон Texture Atlas можно активировать в настройках Blender’а во вкладке Addons (категория UV).

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

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

      Затем запечем диффузную текстуру и карту бликов с материалов скал и островов.

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

      Все элементы окружения поместим в отдельный файл env_stuff.blend (библиотеку). Для удобства разместим их в отдельных слоях. Основание меша каждого элемента установим в центр координат. Для каждого отдельного элемента необходимо создать отдельную группу с таким же названием.

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

      Настройка материала

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

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

      Вертексная маска несколько раз модифицируется с помощью ноды Squeeze Value. Вначале на текстуру накладывается по более размытой маске менее «жаркий» цвет отсвета лавы (3). А потом по слегка поджатой вертексной маске у края соприкосновения с лавой добавляется более яркий желтый цвет (4), имитирующий оплавленный камень.

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

      Последнее, что остается сделать — вывести величину блика из альфа-канала диффузной текстуры (1) и — после преобразования в цветовое значение (5) — подать ее в сокет Spec материала.

      Параметры объектов

      В настройках объектов островов включим опцию Apply Modifiers (об этом было сказано выше), а также опцию Shadows: Receive, чтобы острова принимали тени от персонажа и других объектов, которые на них будут находиться.

      Физика

      Создадим точную копию геометрии островов (к именам объектов для удобства добавим _collision). Для этих мешей заменим материал на новый (тоже названный _collision), в настройках которого выставим опцию Special: Collision на панели Blend4Web. Этот материал будет использоваться физическим движком для расчета взаимодействия персонажа с геометрией островов.

      Добавим получившиеся объекты в те же группы, в которых находятся сами острова.

      Заключение

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

      Blender modeling tutorial

      Привет, меня зовут Олег, и сегодня мы будем моделить в Блендере!

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

      Моделил я много где. Начинал с макса, сделал одну работу в Рино нурбсами, пытался моделить в майке, но ничего не вышло, долгое время моделил в Модо и вот сейчас пересел на Блендер. Так что сравнивать есть с чем. И Блендер как софт для моделинга очень сильно радует, особенно если учесть его цену и то, что кроме моделинга там можно провести полный цикл работ. Если сравнивать с тем же модо, то где-то конечно проигрывает, но где-то очень даже выигрывает в функционале. Так же у Блендера есть довольно активное и доброжелательное сообщество постоянно дополняющее функционал программы или помогающее с ответами на вопросы в ирк канале или на форуме.

      С чего начать? По Блендеру уроков довольно мало, причем даже на английском. Интерфейс и навигация довольно отличаются от тех же майи или макса и может отпугнуть новичков. Чтобы немного разобраться советую сначала посмотреть видео от Павла Лазовского Blender for Autodesk users. Но чтобы нормально работать, необходимо будет просмотреть мануал по блендеру и желательно тот, что на английском (http://wiki.blender.org/). Мануал отличный, с примерами и с обозначениями шорткатов. А затем можно посмотреть, например, видео от Max Puliero — The Beast- Dyntopo, Retopo and Sculpt in Blender. Тут автор записал 4 видео про создание отличной модели в Блендере и ZBrush. Так же сайт блендер сообщества: http://blenderartists.org/forum/ и ирк канал на сервере irc.freenode.net: #blender.

      Интерфейс и навигация: В Блендере можно привести навигацию и основные шорткаты к майскому или максовскому виду одним кликом. Достаточно выбрать соответствующий шаблон в настройках (File-User Preferences). Но делать этого не стоит ни в коем случае. Во первых, изменятся шорткаты на все инструменты, а где-то вообще удалятся. Да и в мануале и различных уроках будут стандартные сочетания клавиш. Во вторых, у каждого инструмента есть свои модифицирующие шорткаты которые не доступны из интерфеса. О них можно узнать только из мануала программы. Они тоже слетают, если выбрать шаблон. Так что совет – запустите Блендер два раза, в одном выберете шаблон майки, в другом стандартный. И пользуясь поиском по имени команды модифицируйте стандартный набор команд сверяясь с мануалом программы. Лучше запомнить и подобрать под себя как можно больше шорткатов – моделить будет намного быстрее. После всех телодвижений нужно будет сохранить настройки программы и шорткатов. Первое делается через File-Save Startup File. Файл будет находиться в системной папке Application Data. Второе через Export Key Configuration в настройках.

      Моделирование. Начать моделировать в Блендере просто – создаем, например, кубик, жмем Tab и попадаем в режим компонент – можно сразу начинать таскать вертексы. Ctrl+Tab выдает меню по переходу между компонентами. И да, на любые элементы из выпадающего меню можно поставить шоркаты, нажав правую кнопку мыши и выбрав Add Shortcut. Так я назначил привычные от майи комбинации F8-F11 для выбора компонент.

      Моделирование тут тесно связано с модификаторами, как в максе. Например, удалим у объекта половинку, заходим во вкладку с иконкой гаечного ключа и выбираем один из самых полезных тут модификаторов – mirror. Кстати, если отметить галочку clipping, то модификатор будет «приклеивать» к центральной плоскости компоненты близкие к ней. Таким образом можно не волноваться что при сглаживании появятся дыры или лишние вертексы, как это часто бывает в аналогичном модификаторе в максе. Модификаторы подчиняются трансформации объекта. Если вы повернете объект то модификатор будет адекватно на это реагировать.

      Это следует помнить, если мы хотим сделать, например, симметричные объекты по бокам головы. Если будем двигать объект, то сместится пивот и его ориентация. Пивот(origin) обозначен зеленой точкой. Поэтому либо нужно двигать компоненты, либо сделать фриз трансформации. Тут это делается шорткатом Ctrl+A.

      Курсор. Курсор – очень важная штука в Блендере. Меню для работы с ним – Shift S. Его можно устанавливать куда угодно, можно выделить компоненту и установить курсор на её место, к курсору можно притянуть другие компоненты, его можно использовать как центр трансформации. К нему можно также притянуть и пивот объекта через Object-Transform-Origin to 3D Cursor. Советую установить дополнение Enhanced 3D Cursor. В нем есть различные удобные режимы прилипания к компонентам.

      История. Еще важный момент с историей. Той что Undo или Ctrl+Z. Нужно быть очень осторожным, иначе потеряете модель. Дело в том, что история в режиме объекта и компонентов разная. Для начала в настройках Preferences — Editing нужно включить Global Undo. Попробуйте создать кубик и войти в режим компонент. Помодельте немного и попробуйте сделать undo через ctrl+Z. Вроде бы все нормально. Теперь выйдите в режим объекта и попробуйте ещё раз. Все изменения пропали. Блендер будет запоминать состояния объекта между входами в режим компонентов и изменения объекта пока вы находитесь в режиме компонентов. Так что, нечаянно нажав на Ctrl+Z, можно уничтожить несколько часов работы. В этот момент главное вернуться обратно через Ctrl+Shift+Z но ни в коем случае не входить в режим компонент. Поэтому еще важно включить автосейвы. Сам блендер довольно стабилен, но вот такие шутки могут повредить нервы.

      Скульпт. Начнем моделировать что-нибудь простое. Какую-нибудь хардсурфейсную детальку. Создаем простой кубик. Переходим в режим скульптинга. Скульпт в Блендере лучший из тех, что я видел в аналогичных общеспециализированых програмах. Т.е. не ZBrush конечно, но тоже очень хорошо. Включаем режим Dyntopo – это что-то типа Скульптриса или Dynamesh в ZBrush. Нужно включить режим Subdivide Collapse, чтобы геометрия автоматически обновлялась и включить симметрию. Лепить довольно удобно, кисточки хорошие и разнообразные.

      Ретопология. Теперь нам нужно сделать ретопологию. Тут я советую загрузить аддоны F2 и BSurfaces. Первый просто необычайно полезен, а второй можно использовать для разрисовки топологии как в Топогане. Для начала включаем привязку к полигонам. Вообще, привязок разных тоже очень много и ими удобно пользоваться. Для начала попробуем BSurfaces. Жмем B и рисуем кривые по модели. Главное чтобы в Drawing Settings стояло Surface. Потом выбираем Add Surface и готово. Можно так же выбрать грани и указать линиями куда их продолжить. Кстати, можно просто таким образом рисовать на модели чтобы понять где какие детали нужны. Что может делать F2? Например заполнять дыры шириной в 1 полигон. Или содавать полигон по краям от вертекса. И все одной кнопкой F что очень удобно.

      Crease Edge. На данном этапе удобно использовать Crease Edge, вместо того, чтобы моделить фаски. Делается это просто шорткатом Shift+E. Получившуюся лоуполи модель можно подкорректировать теми же инструментами скульпта. Дальше я объединил существующие модификаторы симметрии и сглаживания чтобы получить более плотную сетку. Таким образом у меня появилась хорошая база для моделирования средних деталей.

      Детализация. Теперь можно приступить к детализации. Например, сделать вот такой шовчик. Какие есть ещё интересные функции в Блендере? Тут можно заполнять дыры с четным количеством граней прямоугольной сеткой. А если установить дополнение LoopTools, то преобразовать выделение в круг. Вообще, LoopTools довольно полезен. Можно еще очертить гранями и выбрать внутреннюю область через Select Loop Inner-Region. Кстати, меню с основными инструментами по работе с вершинами, гранями и полигонами вызываются соответственно шорткатами Ctrl+V, Ctrl+E, Ctrl+F.

      Добавление осей трансформации. Это довольно полезная функция. Работает примерно как Custom Workplane в модо или в максе. Например, у меня сейчас есть наклонное место на объекте, где я хочу вымоделить какую-то деталь. И хотелось бы чтобы все манипуляторы имели адекватные оси трансформации. Есть 2 варианта. Можно выбрать компоненту, в данном случае полигон и во вкладке Transform Orientations нажать на плюсик. Появится новое направление копирующее ориентацию нормали полигона. Если хочется больше контроля, то можно создать, например, кубик и с привязкой к полигонам поставить в нужное нам направление. Значения именно что копируются – если повернем кубик ничего не изменится, так что можно его смело тут же удалять. Ну и еще можно поставить в центр курсор через Shift+S. Теперь все манипуляции будут в нужных нам координатах. Получилась такая вот загогулина.

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

      Однако, вся их крутость раскрывается в модификаторе Curves. Если применить его к объекту, то он будет повторять форму кривой. Можно использовать его в связке с любыми другими модификаторами. Например, размножить деталь через Array, немного добавить разнообразия через Lattice и уже потом добавить модификатор Curve. А кроме того, как вы уже заметили, каждая кривая имеет некие стрелочки по всей своей длине. Они обозначают направление и плоскость кривой. Т.е. то, как объект будет крутиться вдоль кривой. И это можно редактировать, выбрав вершину кривой и нажав Ctrl+T. На последнем изображении как раз плоский объект скручен вдоль так, чтобы проходить в проемы между параллелепипедами.

      Можно конвертировать выделенные ребра в кривые. Для этого выделяем ребра, потом создаем из них отдельный объект нажимая P. Затем жмем Alt+C и выбираем конвертацию. По получившейся кривой можно пустить какие-нибудь объекты. Так я делал стежки нитками по кожаной куртке.

      Кроме того, можно назначать и закольцованные кривые. У меня получился такой вот симпатичный цилиндр. Внутри него еще некоторая деталь. Теперь поставим по одному такому по бокам от модели. Я могу объединить оба объекта, поставить как нужно в режиме компонент и применить модификатор Mirror. А можно сделать инстанс группы. Для этого нужно поставить наши объекты на позицию – для этого припарентим один к другому через Ctrl+P, чтобы двигать только один объект. Потом выбираем оба цилиндра и жмем Ctrl+G для группировки. Группы в Блендере это список объектов плюс разные свойства. Теперь создаем инстанс нашей новой группы. Создается он в том же окошке, где и все другие объекты – Ctrl+A. В Scale задаем -1.0 по нужной оси симметрии. В группу можно добавить объекты еще и через свойства объекта – это во вкладке с иконкой в виде желтого кубикa.

      Финализация. Под конец можно добавить модификатор Boolean. Получится своеобразный CAD моделинг. Естественно, такой моделинг не годится для деформаций в анимации, но с Round Corners в статике должно хорошо порендериться. Получилась вот такая финальная моделька. Можно рендерить в Cycles, можно экспортировать в любимую программу. Экспортировать можно по разному – выделенное, с участием модификаторов или без, указывать локальные оси, куча разных форматов экспорта в том числе и аддоны для экспорта.

      UV. Тут, в принципе, все просто. Большинство объектов создаются без UV. Трубы созданные из кривых, UV имеют. В создании UV здесь нет ничего сложного — обычные стандартные инструменты. Сначала указываем грани по которым будут разрезаны UV, потом выбираем метод – Unwrap или просто проекция. Плохая новость в том, что если выбирать проекцию, например цилиндра, то он берет локальные оси объекта для подгонки цилиндра проекции. Так что если ваше цилиндрическое тело как-то повернуто и локальные оси не совпадают, то нужно будет их восстановить. Зато есть небольшой трюк для кусков UV с сеточной топологией о котором хотел бы рассказать.
      Для примера возьму вот такой пончик. Разрежем его и сделаем анврап. Как видим, получилось неплохо, но иногда хочется для таких объектов ровные линии UV. Для этого выпрямляем полигон в одном из углах куска. Выделяем его и жмем Unwrap-Follow Active Quads. В окошке выбераем Length Average и жмем OK.

      Получили ровную UV раскладку.

      Select Similar. В мануале блендера есть страница с названием Advanced Selection. Советую прочитать. В данном последнем примере у меня есть некоторая покрывающая деталь и я хочу нанести дырчатый узор ромбиками на внутреннюю часть.

      Однако мне не совсем нравится, что полигоны сейчас слишком большие. Я хочу сделать их меньше в полтора раза. Для этого проведем один луп и воспользуемся дополнением LoopTools. С помощью функции Space выровняем ширину полигонов. Аналогично подправим и высоту. Воротник пришельца как раз моделил этой функцией, чтобы столбики петель были ровными. Теперь временно добавим crease всем граням. Затем сделаем inset по индивидуальным полигонам и сделаем коллапс полученных полигонов. Теперь у нас один ряд граней идет прямо, а другой — по диагоналям. Однако, в том, что прямо, остался crease. Для этого мы его и делали. В блендере есть хорошая функция – Select Similar. Там много опций: можно выделять по длине, площади, количеству вершин в полигоне и тд. Сейчас выберем все грани с crease и удалим их. Остались только диагональные лупы. Ну а тут уже ещё несколько раз сделать inset и готово. Таким образом Crease можно использовать и для сохранения информации.

      Заключение. Для начала должно хватить. Читайте мануал, там еще много всего, включая множество аддонов. Заходите в ирк канал, общайтесь с народом. Закончу небольшим списком:

      — ctrl+Z. Оно же Undo. Будьте с этим внимательнее, включайте автосохранение, не теряйте модели.

      — почаще делайте recalculate normals.

      — манипуляторы трансформации не особо удобные – куда удобнее использовать шорткаты инструментов. Вообще учите побольше шорткатов.

      — многие инструменты имеют модифицирующие шорткаты. Так, используя Slide Edge, Add Loop, можно провести луп на равном расстоянии от соседнего, нажав E, и менять сторону, нажимая F. Это все есть в справке.

      — delete. Одно из милых вещей, которые выводят из себя. Обычно, когда хочешь что-то удалить, то жмешь делит и оно изчезает. Тут не так – тут дается огромный список вариантов, и нужно выбирать как именно удалить. Нормального делита я не нашел – написал сам. Кому нужно приложил файл. Его нужно будет положить в папку scripts/startup. Оно будет назначено на Alt+Y – поменяете шорткат как будет удобно.

      — Питон. Старые скрипты и аддоны могут не работать, т.к. изменены библиотеки программы. И да, чтобы написать простенькую команду и добавить к ней сочетание клавиши, нужно писать аддон. Благо, есть шаблоны.

      Спасибо тем, кто дочитал до конца. Програма Блендер очень интересная, бурно развивается. В ней есть много раздражающего, но все это не превышает обычного дискомфорта в любой програме. Как инструмент для моделирования и быстрого тестового рендера, Блендер меня полностью устраивает. А ведь тут есть ещё много всего, включая динамику и эффекты. Надеюсь, урок был полезен. Я приложил файлы с моделями а так же скрипт для удаления компонент. Если кто что-то хочет добавить – не стесняйтесь и делитесь опытом!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *