10 января 2015 10.01.15 5 2923

Разработка игры. Бродилка. [Лог#3]

+36

Вот и третий лог. Как и обещал темой сегодняшней стало моделирование.

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

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

И ещё небольшое отступление про терминологию:
Из чего состоит 3Д модель? Любую модель можно разбить на полигоны\треугольники (именно их и рисует видеокарта), а полигон нужно определить — задать через вершины\точки. Отсюда получается, что любая 3Д модель — это набор вершин и набор индексов вершин, необходимых для определения полигонов. Когда-то находил в интернете статью, где более подробно это поясняется, если найду, то добавлю сюда ссылку.

И ещё кое-что: вершину определяют её атрибуты — позиция(xyz), текстурные координаты(uv) и вектор нормали (normal), конечно возможны и иные способы задания вершин, но эти более распространённые.

Ну ладно, пора делать модель!

Большая часть 3Д моделей начинается с примитива — куба, пчела не стала исключением. Можно заметить картинку-концепт пчелы из предыдущей статьи — она служит ориентиром для модели( такое называется референс от англ. reference ).

Пчела — симметричный объект, а кто любит делать двойную работу?) Поэтому применил к свой 3Д модели модификатор Mirror — зеркальное копирование относительно выбранной оси (в данном случаи ось Х ).

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

Добавив ещё примитивов из преобразовав их в части тела получаем «воттакоевот»

А этот скриншот называется «найди 10 отличий» :)

Затем моделирую лапу как отдельный объект

Располагаю лапы как необходимо и незначительно меняю их 3Д сетку, и «склеиваю» тело и лапы в один объект

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

После развёртывания можно вручную править UV координаты. Теперь создаём изображение для текстуры.( В рамках программы Блендер это изображение ещё не будет полноценной текстурой)

Вот готовая UV-развёртка и изображение, которое потом станет текстурой

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

Когда материал готов, можно приступить к «покраске». Для этого в Блендере существует отличный режим texture paint.

Помечаем базовые цвета для нашей пчелы

Чуть обрисовываем что нужно

Прорабатываем текстуру более детально и завершаем её

Сейчас наш материал не воспринимает свет и тень (shadeless), но выглядит это немного скучно, поэтому можно использовать Material nodes для модификации материала. Если Вы читали диз-док из первой статьи, то знаете на какой графический стиль я ориентируюсь, а именно — мультяшный стиль с эффектом rim-light.

Можно играться с выводом, например, вместо цвета текстуры выводить цвет нормали ( XYZ -> RGB).

А вот, например, заготовка для будущего псевдо-Rim-Light (засветы по краям объекта).
Такая штука получается, если использовать скалярное произведение вектора взгляда камеры и нормали вершины.

Та самая засветка краёв — к цвету текстуры прибавляем штуку из предыдущего скриншота, но с небольшой модификацией (colorRamp).

Ещё немного поиграемся с материалом убрав shadeless и заменив «свет» на «тень», теперь получилось что-то вроде чёрного контура. Добавим ещё источников света, «простопотомучто».

Вот различые вариации материалов. На самом верху, например, классический Cel-Shading с Rim-light (такой метод требует двойной отрисовки модели — для линий и для самой модели)

Было обещано, что можно будет скачать модель… ну, это действительно так!
Скачать архив с моделью в формате *.blend (формат программы Blender)!

Что дальше?
Точную тему ещё не выбрал, возможно, концепты локаций, а возможно и о архитектуре движка подумать можно. Принимаю Ваши предложения :)


Лучшие комментарии

Офигенно! Я Блендер так и не освоил. :)

Клёво наблюдать по шагам, как скетч в реальную модель превращается!
Ну прям ваще молодчик!
Так держать)
Теперь ещё анимация)
Спасибо. О! Отличная тема, только вот самому ещё немного попрактиковаться и будет анимация :)
Для меня важным аспектом в изучении Блендера стали видео уроки, просто смотрел что там делают, ну и конечно «метод тыка» :)

Как же это так я забыл про Первый Комментарий ?! D:
Молодец и Спасибо))Главное не забрасывай, очень интересно читать. Я предлагаю осветить тему — архитектура движка. По моему это будет интересно.
Читай также