Введение в 3D анимацию для чайников. Уровень сложности 1. Я знаю, что такое примитивы и ось координат.
Введение:
Привет читатель, позволь пригласить тебя в мир 3Д анимации, здесь я не буду углубляться в само моделирование, а покажу, как можно оживить статичную модель и постепенно дойду до встраивания 3Д сцены в сторонний видеоряд, а так же создам пару спецэффектов, разрушу и подожгу пару моделей, затрону тему освещения , карты текстур и многое другое. Как пример, в этой части, мы возьмем примитив (куб), сторонний источник сигнала (mp3 файл) и за пару кликов создадим визуализацию частотных характеристик этого файла.
Этот блог не будет направлен на изучение конкретного софта, я просто покажу вам основные техники, которые вы можете применять к любому софту, лично я использую Blender (открытый код, мультиплатформер, отличная работа с видео). Моя основная задача, развить интерес к 3Д арту и развить в вас техническое мышление (многие техники которые я буду использовать заточены сугубо на математику)
Если будут желающие, я могу так же создать полный цикл статей по моделированию, от низкополигонального до сплайнов.
По возникшим вопросам можно отписать в комментариях, а так же я есть в Kakao Talk, Signal, Telegram.
Начало:
Любая сцена начинается с рабочего окружения, изначально вам дается лишь примитив и координатная плоскость, плюс источник освещения и камера.
Создадим 7 параллепипедов, которые будут служить нам визуализацией источника сигнала, для этого вытянем данный нам примитив по оси z и скопируем его 7 раз.
ЗЫ Капитан Очевидность тут просто отдыхает ))
Заранее придумаем какие частоты мы хотим снимать, лично я залез в гугл и взял первую статью по настройке эквалайзеров, так что снимать мы будем 16Hz, 120 Hz, 300Hz, 600Hz, 1KHz, 5Khz, 16KHz, а так же сразу решим, по какой оси будем проходит визуализация, я буду использовать фронтральный вид, так что будем использовать опять ось z. Запоминаем значения и используемую ось и забиваем в софт.
На скрине видно, что Blender автоматически снял параметры с файла и изменил амплитуду сигнала по оси z (2 остальные оси я отключил, иначе визуализация проидет по х и y). Так же видно, что используется параметр scale (мы же хотим изменять размер).
Никто вам не запрещает использовать параметр grab, rotate, для перемещения по координатной оси или вращения, а так же extrude и многие прочие. Для тех кто занимается синтезом звука, возможно будет более ясен пример с LFO, там низкочастотная огибающая в виде синусоиды, тоже позволяет изменять множество параметров в реальном времени.
А так же видно, что первый примитив стал плоскостью, что логично, это нулевой кадр, и амплитуда сигнала ровна нулю. Повторим предыдущие действия для каждого примитива.
Добавим плоскость, источник освещения и материалы для каждого примитива. Прикидываем какой вид хотим использовать, а так же добавим фоновую аудио дорожку.
Я выбираю фронтальный вид.
Выбираем разрешение, формат и ждем рендеринга.
Вот что мы получим в результате.