В этом кратком туториале мы рассмотрим простую сцену Blender, которую можно использовать для создания turntable-анимации любого 3D-модели.
Такие анимации требуются некоторыми магазинами, где можно публиковать свои 3D-модели. Они представляют собой серию изображений, в которых предлагаемый 3D-модель вращается на 360 градусов, как правило вокруг своей вертикальной оси.
Видеоверсия этого руководства в настоящее время недоступна на этом языке.
Текстовая расшифровка видео
Здравствуйте, всем привет.
В этом кратком туториале мы рассмотрим простую сцену Blender, которую можно использовать для создания turntable-анимации любого 3D-модели.
Такие анимации требуются некоторыми магазинами, где можно публиковать свои 3D-модели. Они представляют собой серию изображений, в которых предлагаемый 3D-модель вращается на 360 градусов, как правило вокруг своей вертикальной оси.
Туториал был создан в версии Blender 3.3, но элементы, которые мы будем рассматривать, доступны во многих предыдущих версиях и, предположительно, будут доступны и в будущем.
Это туториал для начинающих, в котором мы разберем некоторые базовые инструменты, такие как Constraint Track To для камеры и освещение сцены.

В первой части этого туториала я покажу вам базовую сцену без 3D-модели, чтобы перечислить различные настройки шаблонного файла, который будет использоваться как отправная точка для всех моделей, которые нужно кадрировать и рендерить.
Во второй части мы рассмотрим практический пример с 3D-моделью, о которой я упоминал ранее, чтобы увидеть, как создать анимацию вращения.
Итак, начнем с первой части туториала.
Виртуальная сцена содержит всего пять объектов:
-
три излучающих свет Plane,
-
виртуальную Camera,
-
и объект Empty, расположенный в центре виртуальной вселенной.

Объект Empty служит точкой отсчета, чтобы виртуальная камера и три излучающих свет Plane корректно были направлены на него.
Это важно, потому что нам может понадобиться изменить кадрирование в зависимости от размера объекта, который нужно показать. Используя Empty, нам не придется работать отдельно с камерой и Plane, будет достаточно переместить Empty, чтобы остальные объекты автоматически следовали за ним.
Это ограничение реализуется с помощью Constraint Track To, который, как следует из названия, заставляет объект, которому он назначен, автоматически следовать за целевым объектом. Чтобы правильно настроить Constraint Track To, необходимо указать два направления: фронтальный вектор и верхний вектор.

Фронтальный вектор, называемый Track Axis, указывает, в каком направлении будет направлен объект. В случае основной камеры это локальная отрицательная ось Z, как можно увидеть, выбрав Main Camera и установив в 3D-виде Viewport Gizmo Move и Local Transform Orientation. Положительная локальная ось Z направлена в сторону задней части кадра, поэтому в поле Track Axis для этого объекта необходимо выбрать минус Z.
Этот режим отображения также позволяет легко определить верхний вектор основной камеры. Это положительная ось Y, поэтому в поле Up ограничения Track To мы выберем Y.
Остается только указать объект Empty в качестве Target, и камера всегда будет направлена на Empty, даже когда мы перемещаем Main Camera внутри сцены.

Еще одна настройка, относящаяся к Main Camera, это ее Focal Length, которая находится во вкладке Object Data Properties объекта. В данном случае лучше установить высокое значение, например 80 или 110 mm, чтобы уменьшить искажения, вызванные перспективой. Однако чуть позже мы рассмотрим практический пример.
Теперь, когда мы знаем, что ось кадрирования камеры это локальная Z, мы также можем отодвигать или приближать камеру к Empty, перемещаясь вдоль этой оси, просто используя G Z Z.

Constraint Track To также следует настроить для трех излучающих свет Plane. Здесь, однако, мы замечаем, что положительная ось, перпендикулярная Plane и совпадающая с их нормалями, это положительная Z, поэтому в их Constraint Track To я укажу Z.

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

Три Plane расположены так, чтобы получить стандартное трехточечное освещение, но перечисленные до этого настройки являются лишь отправной точкой. Ничто не мешает вам изменять интенсивность, цвет или расположение этих трех световых фонов в сцене в зависимости от ваших задач.
Однако три излучающих свет Plane не являются единственными элементами, связанными с освещением. Во вкладке World Properties я задал изображение типа EXR с Linear Color Space для освещения объекта.

Выбор изображения зависит от различных факторов, но в целом при кадрировании объектов с большим количеством металлических компонентов я использую цветные изображения, а не изображения, имитирующие студийное освещение, чтобы получить интересные и немонотонные эффекты затенения на этих сильно отражающих поверхностях.
Как уже было сказано, это лишь начальные настройки, позволяющие иметь разные варианты освещения. Разумеется, при необходимости вы можете отключить три излучающих свет Plane или уменьшить интенсивность освещения World Background.
Предварительный просмотр рендера можно оценивать в реальном времени, переключившись в режим отображения Rendered, как мы увидим позже на практическом примере.
Что касается рендеринга сцены, в большинстве случаев магазины требуют последовательности изображений. Спецификации различаются для каждого магазина, и параметры во вкладках Render Properties и Output Properties необходимо настраивать соответствующим образом.

В моем случае в Render Properties я устанавливаю всего 250 samples для рендеринга, и чаще всего даже нет необходимости активировать Denoise, потому что шум в такой сцене минимален, а fireflies можно уменьшить, установив значение 0.99 в полях Clamping. Кроме того, Denoise может влиять на детализацию поверхностей объектов, поэтому в данном случае я предпочитаю его не использовать.
Что касается настроек вывода, в моем случае я устанавливаю разрешение 1920 на 1080, так как для многих магазинов этого достаточно. Также я выбираю формат PNG RGBA, то есть последовательность отдельных изображений с прозрачным фоном, потому что у разных магазинов разные требования к фону, и здесь я предпочитаю вывод с прозрачностью.

Говоря о прозрачном фоне, чтобы фон виртуальной вселенной не отображался в рендерах, необходимо открыть вкладку Film в окне Render Properties и включить опцию Transparent.
Последняя настройка этого шаблонного файла касается Timeline и, в целом, длительности создаваемой анимации. Эти параметры зависят от требований различных магазинов, поэтому здесь я покажу пару примеров.

Если магазин требует готовый видеоролик или если вы собираетесь создать видео для публикации на Youtube, в социальных сетях или на своем сайте, вам нужно задать количество кадров, равное длительности анимации в секундах, умноженной на желаемое количество кадров в секунду.
Например, чтобы сделать видео длительностью 10 секунд с воспроизведением при 25 кадрах в секунду, необходимо установить значение 250 в поле End на Timeline.

В этом случае вы также можете выбрать прямое создание видеофайла, а не последовательности изображений, во вкладке Output Properties.
Если же вам нужно создать небольшое количество отдельных изображений, например 13, то будет достаточно установить точное число создаваемых изображений в поле End на Timeline. Blender создаст одно изображение для каждого кадра анимации.
Это общие настройки файла, применимые ко всем 3D-моделям, которые нужно рендерить.
Этот файл затем можно сохранить как общий шаблон в отдельной папке, чтобы делать его копии и изменять их под конкретные проекты.
Итак, давайте посмотрим практический пример с 3D-моделью, которую можно импортировать в сцену с помощью Append или Asset Browser.

Я выбрал модель Tableware Set 1, потому что она состоит из множества объектов, поэтому их необходимо сгруппировать или объединить в один объект, чтобы задать его Origin и легко выполнять некоторые трансформации.
Сразу после импорта модель оказывается очень большой и не помещается в кадр. Однако перед изменением масштаба я объединю ее в один объект с помощью Join. В этот момент все отдельные объекты, из которых состоит набор, выделены, но активного объекта нет, поэтому Join не может быть выполнен корректно.
Чтобы решить эту проблему, я нажимаю SHIFT и левую кнопку мыши на одном из объектов, например Placemat. Его контур изменит цвет, указывая, что теперь это активный объект.

Затем я нажимаю CTRL J, чтобы объединить все выделенные элементы с объектом Placemat.

У Placemat Origin совпадает с центром сцены, поэтому я могу изменить его масштаб, просто нажав клавишу S и двигая мышь, а затем нажав Enter, когда объект будет вписываться в кадр.

Если у импортированного объекта Origin не находится в центре сцены, вы можете вручную расположить его так, как вам нужно, затем нажать CTRL A и выбрать Location. Эта операция приведет к сбросу координат Location сцены. В результате Origin объекта совпадет с центром виртуальной вселенной, как и требуется.

Теперь набор объектов помещается в кадр, но возникает проблема: такое кадрирование не является идеальным для отображения данной модели.
Здесь возможны два решения: переместить виртуальную камеру вверх или повернуть объект вокруг оси X. Выбор зависит от конкретной модели. Если у объекта есть детали и на нижней части, то, вероятно, лучше повернуть его вокруг оси X, наклонив, прежде чем выполнять анимацию вращения вокруг вертикальной оси.
Если вы решите использовать этот метод, не забудьте применить трансформацию поворота с помощью CTRL A Rotate и, при необходимости, переместить объект и снова применить трансформацию Location, чтобы корректно установить Origin повернутого объекта в центре виртуальной сцены.
В случае с Tableware Set 1, однако, на нижней части модели нет деталей, поэтому мы можем воспользоваться вторым вариантом и просто поднять виртуальную камеру. Эту операцию легко выполнить, выбрав виртуальную камеру и переместив ее с помощью трансформационного gizmo в 3D-виде или с помощью сочетания клавиш G Z.

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

И в этом случае использование Constraint Track To для камеры показывает свои преимущества. В первой части видео я говорил, что рекомендуется использовать высокое значение Focal Length виртуальной камеры, чтобы ограничить искажения, вызванные перспективой.
Вы можете получить представление об этих искажениях, изменив сейчас значение Focal Length у Main Camera. Помимо того, что вам потребуется перемещать Main Camera вперед или назад, чтобы правильно кадрировать объект, вы сразу заметите искажения при низких значениях Focal Length, особенно по краям кадра.

Поэтому я рекомендую значение в диапазоне от 80 до 110. Я не считаю, что есть необходимость в более высоких значениях, но, как всегда, окончательный выбор следует делать, каждый раз оценивая конкретную модель.
Хорошо, давайте перейдем к анимации модели.
На самом деле эта операция очень проста. Поскольку нам нужно вращение на 360 градусов вокруг вертикальной оси, достаточно задать всего два ключевых кадра, в первом и последнем кадре.
Выбрав 3D-модель на кадре 1 Timeline, убедитесь, что значения Rotation во вкладке Transform изначально сброшены на 0, затем щелкните правой кнопкой мыши по Rotation Z и выберите операцию Insert Keyframes.

Затем перейдите к последнему кадру анимации, введите 360 в поле Rotation Z объекта, щелкните правой кнопкой мыши и снова выберите Insert Keyframes.

Анимация вращения создана, как мы можем увидеть, нажав кнопку Play на Timeline. Если количество кадров очень небольшое, может быть удобнее перемещаться вперед и назад между кадрами, используя клавиши со стрелками.
Однако перед началом рендеринга последовательности нам все еще необходимо выполнить три операции:
-
проверить освещение модели;
-
проверить кадрирование на протяжении всей анимации;
-
при необходимости изменить интерполяцию между ключевыми кадрами, то есть способ, которым Blender будет выполнять вращение в промежуточных кадрах.
Освещение модели можно проверить, нажав клавишу Z и переключившись в режим отображения Rendered. Таким образом, просматривая модель на различных кадрах анимации, мы можем решить, оставить ли стандартную схему освещения или изменить настройки трех излучающих Plane, либо заменить EXR или HDR-изображение, используемое в World Background.

Проверка кадрирования выполняется просто путем просмотра различных кадров и касается моделей, чей bounding box не является кубическим и не центрирован в сцене, как в нашем случае. Tableware Set 1, действительно, длиннее, чем шире, поэтому в некоторых кадрах он может выходить за пределы кадра. В этом случае необходимо скорректировать расстояние камеры до объекта или высоту Empty, чтобы объект находился в пределах кадра на всех кадрах анимации.

Эта операция также полезна для того, чтобы, наоборот, предотвратить ситуацию, когда объект без необходимости занимает слишком маленькую часть кадра.
Последняя операция касается анализа интерполяции между различными ключевыми кадрами.
Blender может выполнять разные типы переходов от одного ключевого кадра к другому. Например, интерполяция с помощью кривой Bezier приводит к тому, что анимация между двумя ключевыми кадрами начинается и заканчивается плавно, а не линейно.
В нашем случае, однако, линейная анимация может быть предпочтительнее.
Интерполяцию между ключевыми кадрами можно изменить в Graph Editor. При выбранной 3D-модели мы открываем Graph Editor, выделяем два доступных там ключевых кадра анимации, затем нажимаем клавишу V и выбираем тип интерполяции, который хотим применить к нашей анимации.

В моем случае интерполяция уже является линейной, потому что я задал ее по умолчанию для всех своих проектов Blender во вкладке Animation окна Preferences, в параметре Default Interpolation. Тем не менее, я хотел показать вам, как можно изменить этот аспект.
Подводя итог, в этом туториале мы рассмотрели, как настроить простую сцену для получения turntable-последовательности изображений 3D-модели в Blender, выбрав подходящее значение Focal Length для виртуальной камеры и настроив хорошее освещение объекта.
Мы увидели, как настроить Track To Constraint, чтобы источники света и камера были направлены в центр виртуальной сцены.
Мы также рассмотрели, как правильно задать Origin и поворот объектов, которые нужно отрендерить, и как создавать анимации с заданным количеством кадров.
Наконец, мы увидели, как изменять интерполяцию анимационных кривых, чтобы получить линейное вращение 3D-модели.

Надеюсь, этот простой туториал был для вас полезен. До скорой встречи.