January 22, 2023

Создаем свою 3D модель из картинки

Для самой работы нам потребуется только Blender - это бесплатная программа для 3D моделирования. За счет нее мы создадим саму модель, сделаем ей анимацию и сохраним в видео. Скачивайте и устанавливайте в любое удобное для вас место на вашем ПК.

Далее нам понадобиться сама PNG картинка, которая подойдет нашим требованиям. Перед выбором самой картинки я объясню нюансы:

Во первых формат PNG мы выбираем обычно для тех картинок, в которых отсутствует фон на объекте. В нашем способе создания 3D модели мы будем конвертировать нашу PNG картинку в формат SVG, а этот самый формат удаляет любой белый фон на изображении. Поэтому использовать PNG не обязательно, но могут образоваться проблемы с теми-же JPEG форматами, а нам это не нужно. Но если вы уже шарящие за фотошоп, то проблем у вас вообще никаких не будет. Соответственно рекомендую так-же выбирать сплошную черную картинку или опять же залить черным самому её в фотошопе.
Во вторых Blender при импорте SVG делит картинку на объекты если изображение на фоне отдельно друг от друга. Например "А" и "Б". В таком случае (особенно если вы захотите через этот способ сделать 3д текст) придется подгонять каждый объект отдельно по показанному ниже примеру. Сейчас вы мало что поймете пока сами не попробуете. Просто держите это в голове.

За основу своей работы я взял карту FUPS VISA в формате PNG (к примеру заказ на аватарку форума). Нашел идеальный вариант на их же сайте. Соответственно сохраняю себе в удобное место на ПК.

Вот такой итог получился:

После этого нам понадобится любой сайт или приложение для конвертации нашей картинки. Обычно я делаю это здесь.

Загружаем нашу картинку и жмем конвертировать.

Далее сохраняем так-же в удобное для вас место.

Готово! Половина головной боли уже позади.

Работа в blender

Открываем Blender, видим много непонятных кнопок и закрываем эту жесть и не паникуем. Для этого мы в этой статье.

Для начала нам нужно удалить ненужный появившийся кубик в середине пространства моделирования. Левый клик и жмем кнопку Delete.

Переходим к импорту картинки в формате SVG. В левом верхнем углу нажимаем File/import/Scalable Vector Graphics SVG.

И в появившемся окне ищем и загружаем нашу SVG картинку.

Если нет такого импорта:

Заходим в Edit/Preferences

Далее категория Addons и в поиске пишем svg и ставим галочку на аддоне как у меня.

Импортировать импортировали, а где картинка?

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

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

С созданием самой модели мы уже почти на финишной прямой! Давайте поставим ее поудобней и придадим ей форму.

Справа нажимаем на маленькую кнопочку Object Properties (Оранжевый квадратик с рамками) и видим категорию transform. В ней мы можем менять позицию объекта, вращать, и изменять его размер аналогично тому, что мы делали буковкой S на сцене. Давайте поставим в пункте Rotation наш объект как нам будет удобно. Я выставил 90 по Х и 270 по Y (измерение в градусах).

Получилось вот так:

Теперь давайте сделаем ее более объемной. Поскольку у меня это карта, слишком толстой ее делать будет не красиво.

Жмем так-же справа на маленькую кнопочку Object Data Properties и видим категорию Geometry. Открываем. Здесь нам нужен Extrude.

Не переборщите с ним. Мне для толщины карты понадобилось выставить значение всего в 0.001. Получилась уже вот такая красота.

Вот и наша готовая модель! Рендерить будем в отдельной категории, если не интересно анимировать то просто скипай до предпоследней темы.

Анимация объекта

По существу мы имеем готовую модель и нам нужно сделать анимацию (это не обязательно, если вы пришли сделать чисто красивое изображение сделанное своими руками, просто переходите в категорию содержания "Рендеринг"). Я покажу одну из самых популярных анимаций в просторах 3D моделирования (пример в оглавлении). Так-же я нашел видеоролик, в котором очень понятно и быстро рассказывают о том как сделать подобную анимацию. Кому удобней через видео, лучше посмотрите.

Жмем в верхней части экрана кнопку Add/Curve/Circle и так-же буквой S тянем окружность так, чтобы было достаточно пространства вокруг объекта. По этой окружности будет двигаться камера, так что ставить тут придется на свой глаз.

Выбираем камеру в правой панельке или на сцене и передвигаем ее к созданной нами оси (кругу). В левой стороне экрана есть тул бар, рекомендую в этот раз пользоваться им. Жмем Move и перемещаем стрелочками на сцене.

В этом же тул баре выберите rotation и отрегулируйте камеру так, чтобы она смотрела на объект. Сверять с тем попали ли вы на него, будете через кнопочку в правом верхнем углу камеры (нажимая на нее вы переходите в режим, который будет виден при рендеринге. Нажав еще раз на кнопку вы выйдете из этого режима. Не пытайтесь взять камерой полный объем объекта. Проще будет подогнать сам объект под камеру, но это чуть позже. Примерно должно получиться вот так.

Отлично! Выходим из режима камеры и приступаем к ее настройке.

Здесь внимательно. Сначала наведите курсор на камеру и кликните по ней левой кнопкой мыши, потом на круг и с зажатым Shift так-же кликните на него. Выделение должно быть таким:

Далее, на сцене, нажимаем комбинацию ctrl+P и в появившемся окне жмем Follow Path.

Теперь наша камера двигается по оси. Можете попробовать нажать пробел и посмотреть а так-же зайти в режим камеры и посмотреть как выглядит там.

Так-же потребуется добавить еще одну ось, но эта для фиксации камеры.

Нажимаем сверху Add/Empty/Plain Axes и снова через букву S растягиваем так, чтобы оси было видно за пределами объекта.

Далее нажмем на сцене на нашу камеру и слева нажмем на маленькую кнопочку Object Constraint Properties (на стимовский значок похож).

Жмем Add Object Constraint и выбираем Track To (Это слежение).

После чего жмем на пипетку рядом с надписью Target и направляем ее к созданной оси в сцене. Наведясь на нее вы увидите надпись Object: Entity. Жмите левой кнопкой мыши и готово, мы настроили слежение за объектом.

Осталось сделать анимацию цикличной. Жмем на наш круг по которому катается камера и справа жмем Object Data Properties (Зеленая дуга). Ниже уже известной нам вкладки Geometry есть вкладка Path Animation. Открываем ее и в пункте frames поставьте значение 250. Это кадры. 250 стандартное значение анимаций в Blender. Это можно посмотреть снизу на ползунке анимации.

Осталось только поправить модель в камере, жмем на камеру в правом верхнем углу. И в ней за счет той же буквы S подгоняем под размер камеры. А левый тул бар, где есть Move и Rotation, нам поможет переместить объект в нужное нам место на сцене. Делаем все в пределе рамки камеры. И примерно получаем вот такой итог:

Мы закончили делать анимацию . Жмем пробел и наслаждаемся

Рендеринг и фон

Самое сладкое - рендеринг (сохранение видео/изображения с выбором формата). Из-за обширности самой программы нам придется потыкать несколько нужных для нас кнопок. Просто сохранить не получиться .

Самое главное это тип рендеринга ( я вас нагружать этими типами не буду, просто знайте что он самый быстрый и простой и лучше юзать его). В правой стороне жмем Render Properties и в категории Scene выбираем Eevee.

Так-же путем своих ошибок, я понял что этот тип рендеринга плохо отображает тени на объекте (вероятно как раз из-за быстрой обработки), поэтому давайте отключим их на объекте. Справа жмем на кнопку Matreial Properties (Красный шарик) и выбираем категорию settings. В подкатегории Shadow Mode ставим None.

Теперь при рендере наш объект будет отснят на сером фоне. Давайте сначала просто сделаем его без фона (Альфа-канал - черный фон, обычно используется для дальнейшей работы с ним в других программах, таких как After Effects и т.п.). Переходим обратно в Render Properties и во вкладке Film ставим галочку на Transparent. И готово! Теперь у нас прозрачный фон.

Если мы хотим задать объекту фон прямо в программе, то придется поставить еще несколько объектов, которые и будут нашим фоном.

Жмем сверху Add/Mesh/Plane.

У нас появляется плоскость. Используем левый тул бар для его перемещения и букву S для того чтобы задать размер. Сам фон выставляем дальше созданной нами окружности по которой двигается камера.

Не бойтесь делать плоскость большой, это поможет не допустить проблемы с невнимательностью.

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

Вот такую кривую сцену я по быстренькому сделал:

Как красить стены? Сначала нажимаем на одну из стен и жмем сверху на кнопочку Shading (чтобы вернуться обратно, там же жмем Layout).

Ниже сцены жмем +new.

И в появившейся структуре жмем Base Color и выбираем цвет. Готово.

Сделав для себя нужный фон из перечисленных остается выбрать формат и наконец отрендерить анимацию/изображение.

Возвращаемся на основную сцену (сверху Layout) и жмем справа Output Properties. Здесь просто выберите в категории File Format нужный формат. Для картинки лучше PNG Для видео FFmpeg Video.

Output там где написано /tmp/ можете отредактировать под себя (это папка в которую сохраниться файл).

Заветная кнопка Render Animation или Render Image находится Сверху (Кнопка Render), жмем и ждем.