Texture Animation Pipeline with Substance Designer and Unreal Engine 4: Chapter 1 — Aztecs

Texture Animation Pipeline with Substance Designer and Unreal Engine 4: Chapter 1 — Aztecs

Hello everyone!

Всем привет! Меня зовут Антон Пухов. Я работаю Junior Technical artist’ом в компании Saber Interactive.

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

Он был создан мной в экспериментальных и исследовательских целях.

В один прекрасный день я задался вопросом: «А что если…? » А что если сделать анимацию текстур в Substance Designer? Получится ли? В тот момент это был лишь вопрос, и ни о каком пайплайне речи и не было. Все моё видение сформировалось в процессе работы.

Это пока только тестовая стадия пайплайна, и на этом этапе есть существенные недостатки, о которых я расскажу в своих статьях. Всего их будет 4.

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

Наберитесь терпения, друзья, скоро все станет понятно =)

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

Хочу сказать огромное спасибо всем тем, кто принимал или будет принимать участие в моем research’е)

Chapter 1 — Aztecs

Все началось с того, что я хотел попрактиковаться в создании процедурных материалов в Substance Designer. Искал, что можно было бы сделать. Посидел на pinterest’е некоторое время, остановился на орнаменте Ацтеков, а именно на камне солнца. В дальнейшем, именно нижеприведенную картинку я использовал как отправную точку для начала своего графа.

Aztec ornament
Aztec ornament

Поначалу была задача сделать все элементы отдельно. В то время я хотел проверить, как работает svg формат в Substance Designer, и таким способом хотел убить двух зайцев. SVG работал у меня криво, и Substance Designer не всегда правильно его отображал (а может быть я выводил неправильно). В итоге все равно пришлось выгружать из вектора png картинки, в дальнейшем с которыми и работал:

Main graph in substance designer
Main graph in substance designer

Таким образом у меня появился доступ к каждому элементу.

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

Мой граф преобразился и стал выглядит следующим образом:

Постепенно я продолжал собирать референсы. Со временем у меня появилась мысль соединить несколько материалов в один. Ниже в moodboard’е можно увидеть, что я пришел к 2 видам: камень и металл:

References
References

Материал камня (background за орнаментом) я сделал в виде отдельного сабграфа и с ним работал уже в качестве одной ноды. Дополнительно сделал несколько экспоуз параметров таких, как интенсивность нормала и общий цвет материала, взятый с помощью ноды color match. Это необходимо было сделать, чтобы регулировать эти 2 параметра в основном графе:

Для смешивания двух материалов я использовал ноду height blend, которая позволяет объединить материалы по карте высот и распределить их по уровням (background и front):

Height blend node
Height blend node

Множество иттераций и экспериментов над цветом, рафнесом и металиком, и в итоге у меня появился готовый материал.

Процесс создания каждого канала:

Marmoset render
Marmoset render

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

Result chapter 1

В этой части я рассказал исключительно про художественную составляющую. И мысль этого этапа в следующем:

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

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

3030
9 комментариев

Так стоп - ты в итоге хочешь получить материал который в анриле будет сверкать и блестеть - это понимаешь под анимацией?
Причем отдельно по 3м слоям : Зверушки, внешние круги и внутренние круги? Я правильно понимаю?

Нет, конечно)
По сути, эта часть про обычное создание процедурного материала. А то, что я расписал - база. Надо же было с чего-то начать)
Сейчас в игровых движках есть возможность воспроизводить медиа файлы. Но это касается лишь тех случаев, когда, например, надо на сцене показать экран телевизора (берётся медиа файл, кидается на emissive вход в материале и готово). С PBR оказалось все намного сложнее

Я конечно не эксперт, но по-моему, такой метод анимации текстур очень затратен по оптимизации. Там по-сути каждая нода должна меняется по параметрам и заново обновляется за секунду. И кстати есть плагин Substance Player там как раз и можно запускать анимации и редактировать. И вроде в гиф анимацию сделанное переносить, но это очень не точно.

Я в статье упомянул, что этот метод настолько не идеален, насколько возможно)
Скорее здесь сыграло моё упорство в вопросе "Получится ли так сделать или нет?" Получилось. Но о "жертвах" по порядку буду рассказывать.

я думаю, что в начале/названии поста стоило чётко обозначить то, что конкретно в этой части будет разбираться создание базового материала, а то прочитал до конца, а про непосредственно анимацию материала ни слова