Making Of "The Old House (environment)"
Меня зовут Даниил Копытько (Censored_ID), и я расскажу вам о создании своей работы «The Old House». Было очень приятно получить приглашение на написание making of статьи, так что буду стараться оправдать возложенные надежды. :)
Вообще, эта работа – не что иное, как просто расширенный вариант тестового задания в одну из минских студий, занимающихся разработкой видеоигр.
Начав делать тестовое задание, я понял, что предполагаемому результату немного не хватает жизни и художественной ценности. Поэтому помимо домика (который и был объектом тестового задания) я решил собрать небольшой энвайронмент, что показалось мне довольно логичным, т.к., претендуя на должность 3D художника по объектам окружения, было бы странно демонстрировать эти самые объекты вне какого-либо окружения.
Итак. Для работы я использовал 3dsMax, Photoshop, Crazybump и CryEngime3.
Почему не любимый всеми UDK? Потому что CryEngime3 позволяет работать с необходимыми мне вещами куда быстрее, проще, логичнее и удобнее. Я уже молчу про качество картинки и реал-тайм освещение - те, кто в UDK работают, вынуждены свет постоянно перезапекать, CryEngime3 работает по принципу «what you see is what you get».
Препродакшн.
Изначально я планировал создать что-то типа лесной опушки с кучей зеленой травы, кустов, бабочек и т.д., вроде той, где хижина Хагрида стоит. Но потом отказался от этих идей в пользу песка, сухой травы/кустов и мух вместо бабочек. Я и сам не в курсе, чем это обусловлено.
В первую очередь я всегда работаю с референсами: собираю, смотрю, пытаюсь уловить настроение и т.д.
Надо пропустить через себя десятки, а порой и сотни фотографий, пока в голове не сформируется цельный образ того, с чем можно было бы уже переходить к блокауту. Но прежде чем начинать блокаут, я обычно выписываю все объекты до мельчайших деталей, над которыми предстоит поработать, куда-нибудь на бумажку, которая будет всегда перед глазами. Во-первых, так куда проще рассчитывать время и последовательность работы. Во-вторых, каждый раз, вычеркивая готовый объект из списка, чувствуешь себя молодцом и ощущаешь прилив мотивации). Странно, но если такой учет «готового/не готового» вести в голове, а не на бумажке перед носом – радости намного меньше от проделанной работы. Ну и в-третьих, вы просто ничего не забудете)).
Когда вы определились с объектами, из которых будет состоять ваш энвайронмент, пора нырять в 3D редактор и начинать блокаут. В моем случае – это 3dsMax.
Для тех, кто не в курсе, блокаут – это очень условный пространственный набросок того, как будет выглядеть ваша сцена в объеме. Создается из лоупольных примитивов, повторяющих общие формы объектов, на которые они в будущем будут заменяться. Это очень важный этап, т.к. композицию, набор объектов, их положение, баланс малых/средних/крупных форм, камеру и т.д. намного проще контролировать на стадии блокаута, чем потом биться головой об стену, проделав уже кучу чистовой работы. При чем не имеет значения, над чем вы работаете: техника, персонаж, оружие, локация – все всегда начинается с блокаута, причем даже если вы работаете с фотореференсом или концепт-артом. То, что круто выглядит на 2D картинке, не всегда будет круто выглядеть в 3D. Опять же, так намного проще планировать работу: что, когда, в какой последовательности делать и т.д.
Модели.
Сделав блокаут, я принялся за моделлинг. Естественно, приоритетным объектом для меня был домик, т.к. он является объектом тестового задания, поэтому с него и начал). В качестве основных референсов были приведены фотографии, на которых изображены довольно разные по цвету и материалам домики.
Поэтому касательно материалов крыши, цветов и т.д. я позволил себе вольность. Когда я закончил моделить, оказалось, что у меня в запасе есть еще небольшое количество поликов, которое я в дальнейшем потратил на небольшой навес с обратной стороны дома, под которым можно складывать дрова. Но наш дружище Dude, живущий в этом доме, - редкостный лентяй, и дров не наколол, т.к. за ними слишком далеко ходить, поэтому на рендерах мы их и не видим ;). Этот навес сделал домик интереснее, улучшил силуэт, что немаловажно.
Работая с моделью и текстурой, очень хотелось передать ощущение старости и рукотворности. Рукотворности, пожалуй, в первую очередь. Некоторые доски и листы металла имеют непонятные надписи, рисунки - это поможет создать ощущение того, что житель этого дома строит его и "штопает" из того, что найдет. Кто знает, может еще вчера кусок его крыши был частью соседского забора. ))
Следующей на очереди была кладовка, как и домик, собранная из чего попало. Учитывая, что лимит для основного домика по ТЗ - 1600 поликов, я решил и остальные объекты делать такими лоупольными. С кладовкой немного не уложился, т.к. ооочень уж хотелось сделать крышу из рифленого металла, которая в результате «отожрала» кучу полигонов. Как и в случае с домиком, текстура уникальная, без тайлинга. Конечно, во всех больших играх уже давно почти все и везде тайлится, но я решил делать все в одном ключе – раз домик затекстурен по-олдскульному, то и остальное надо делать так.
|
На ветряной генератор ушло чуть меньше 1000 полигонов.
Он давно не работает, зато назойливо скрипит). В комментариях к работе меня упрекали, что лопасти не крутятся, но дело в том, что я не настолько глубоко въехал в анимацию на крайэнджине, и знаний мне на это не хватило ( а сидеть и изучать что-то дополнительно на тот момент время не позволяло, так что пришлось оставить его неподвижным).
|
Про пропсы много писать не охота, да и не напишешь толком ничего – пропсы есть пропсы)). Бочечки, досочки и т.д. Короче, ничего интересного.
Импорт/Экспорт.
Как только все было готово, я нырнул в CryEngine3 и начал собирать там свою сцену.
В отличие от UDK, CryEngine3 не имеет пэкэджей, так что все рабочие файлы (модели, текстуры и т.д.) надо складывать в папку с движком, т.к. упаковывать их в удобное для себя место он не умеет.
Старайтесь придерживаться строгой иерархии папок и не устраивать винегрет). Так же имейте ввиду, что правильно названные файлы не только облегчат вам жизнь, но и порой критичны для крайэнджина. К примеру, движок не определит текстуру дисплейсмента, если в конце названия файла не будет приписки «_displ» и т.д. Так что любители называть файлы по принципу «!!11diffuse_prefinal_final_100%fianl_copy_ 11bhjbgu» – переучивайтесь)). Кстати, кириллицы тоже старайтесь избегать.
Модели из Макса экспортируются через подключаемый модуль обмена данными. К сожалению, привычного экспорта в fbx или ase (как в UDK) здесь нет(
С текстурами тоже все не совсем обычно: придется установить плагин для фотошопа (cryTIFF), который позволяет экспортировать текстуры в «их» tiff. Очень, надо сказать, удобная штука – сразу можно увидеть, сколько места в оперативке будет занимать текстура, выбрать из кучи пресетов метод сжатия (можно даже воспользоваться оптимизацией для консоли) ну и т.д..
Дальше все как всегда – открыли редактор материалов, создали новый материал, подгрузили текстуры, настроили параметры и свойства на свое усмотрение, применили к модели и все готово.
Ландшафт.
В крайэнджине есть чудесный редактор ландшафта – быстрый, интуитивно понятный, с приятными фишками и т.д..
Ландшафт можно слепить вручную, сгенерировать или подгрузить карту высот. Я решил основной массив сгенерировать, а уже потом править руками.
Когда ландшафт был готов, я приступил к его материалам. Всего 3 тайла – песок, сухая трава и камни. Весь тэррэйн был затайлен песком, а камни и редкую сухую траву рисовал поверх все в том же редакторе ландшафта.
Крайэнджин имеет очень приятную функцию – для кисти можно задать угол наклона ландшафта, при котором кисть перестает рисовать (на рис. 11 отмечено красным.). Например, как в моем случае: есть 2 типа поверхностей – ровная и склоны. Склоны мне надо покрыть камнем, а ровную -песком. Я ограничиваю определенными значениями кисть, и она начинает рисовать текстуру камня только в заданном интервале (например, от 20 до 80 градусов).
Таким образом, можно брать кисть здоровенного размера и прокрасить все одним мазком, а не вырисовывать, тратя кучу времени. )
Эта фишка работает и при создании вегетации.
Что касается самой вегетации, то здесь все просто. Я использовал траву, которая идет в комплекте с крайэнджином. Считаю, что ничего постыдного в этом нет, т.к. траву сделать я-то смогу, но тратить время на это очень не хотелось. Крайтековская трава имеет немного не тот цвет, что мне был нужен, однако от перерисовывания текстуры меня спасла чудесная кнопка, позволяющая выкрасить траву в цвет текстуры тэррэйна. Конечно, такой прием не всегда сработает, но в моем случае цвет травы как раз совпадал бы с цветом песка, так что мне повезло))
Помимо этого настроил под себя плотность и дальность отрисовки – комп у меня довольно мощный, так что решил не скупиться.
Дороги.
Дороги создавать оказалось невероятно просто и приятно. Работает по принципу кривой безье.
Можно включить/отключить функцию «прилипания» к ландшафту и рисовать дорогу хоть по воздуху – благо есть кнопка, позволяющая адаптировать ландшафт под положение дороги.
Когда направление дороги готово, можно указать ширину, детализацию и т.д. Потом надо взять материал с тайлящейся текстурой и применить к дороге. Надо помнить, что текстура дороги ориентируется слева-направо, так что тайл надо рисовать именно в такой ориентации. Если надо создать пересечение дорог, то от небольших косяков помогут избавиться положенные поверх дороги декали.
Декали.
По сути, это просто плавающий полигон с текстурой, который может еще и проецировать эту текстуру на поверхность. Порой это просто незаменимая вещь. Скажем, вам необходимо сделать на полу пятно кровищи или пятна машинного масла, или группу царапин на стене, причем конкретных пятен в конкретном месте. Вот здесь декали и помогут.
Создать декаль для использования в крайэнджине крайне просто. Достаточно сделать текстуру с маской в альфа канале, который будет определен движком, как карта прозрачности.
Как я уже говорил, декаль может лежать просто на плавающем полике, проецироваться на землю, или на землю+объекты.
Вода.
Вода в сцене встречается только в одном месте – в распиленной бочке. Создана посредством WaterVolume. Очень клевая примочка: растягиваете плоскость от точки к точке, применяете материал, правите пару параметров – и готово. ) Для воды можно настроить все привычные свойства.
Пыль.
Создавая этот энвайронмент, столкнулся с трудностью: минимальными средствами создать ощущение запыленности воздуха.
В этом мне помогли системы частиц и, как ни странно, туман :)
Системы частиц имеют почти те же параметры, что и во всех других редакторах, так что с ними разобраться не сложно.
В сцене присутствуют несколько динамических систем частиц: одни имитируют движение песка в воздухе, другие просто появляются и исчезают, оживляя линию горизонта.
Для создания общей запыленности я использовал обычный FogVolume. Задал ему нужные мне размеры, цвет, прозрачность, фоллоф и т.д., и получил что-то похожее на объем с пыльным воздухом. К сожалению, получилось нечто не самое гибкое в плане настроек, но для моих целей подошло отлично. Если мне надо было где-то для рендера сделать пыль не такой плотной, я просто опускал туман, если надо было наоборот запылить все, то поднимал.
Не самый адекватный вариант (если бы локация была игровая, а не для картинок, то так бы никто и никогда не сделал), но пока что, с моим уровнем знаний движка, я на большее и не способен. )
Свет.
Со светом пришлось помучаться. Помимо настройки яркости солнца, цвета, длины и интенсивности лучей света, пришлось повозиться с тенями. Я бился головой добрый час и понять не мог, почему у меня часть дома, которая в тени, такая светлая. Вроде и плотность тени нормальная, и освещение все правильно настроено… Оказалось, что крайэнджин в реальном времени обрабатывает вторичный отскок света, ну или по крайней мере имитирует его. И получалось, что домик освещался со всех сторон отраженным от песка светом. Снизив настройку этого параметра, я получил нормальные тени))
Небо.
Небо, к сожалению, не самое выразительное получилось. Дело в том, что его я настраивал в последнюю очередь, второпях. Изначально я планировал создать кучу объемных облаков, правильно освещаемых/затеняемых. Оказалось, что такой тип облаков конфликтует с fogvolume'ом такого размера, и при рендеринге постоянно появляются жуткие артефакты, либо вообще облако заливается черным.
Почему так – без понятия. Пыль убирать не хотелось, потому решил просто сделать голое знойное небо.
Пост.
Немаловажным этапом является постобработка. Настроить все необходимое можно в панели Time Of Day. Здесь для удобства собрано все, что в других редакторах распихано по разным углам.
С цветокоррекцией особо не заморачивался, просто слегка десатурировал картинку, прибрал холодные тона, придав большей красноты\желтизны, добавил контраста и яркости. Так же задал желаемые параметры depth of field для камеры, т.к. установленные по умолчанию мне немного не подходили.))
Так же настроил hdr. Причем настраивать пришлось дважды: сначала общие параметры, а потом на стадии анимации пришлось его интенсивность контролировать вручную (по ключевым кадрам), т.к. мне хотелось, чтоб этот эффект становился заметен лишь в определенный момент.
Анимация.
Дальше осталось только наделать симпатичных рендеров. Решил помимо картинок слепить небольшой ролик, который многие уже видели) (если что – висит внизу статьи)
В таймлайн добавляются манипуляторы того, на что необходимо воздействовать. Для меня это была позиция камеры, ее настройки, настройки hdr и других элементов постпроцессинга. Дальше все как всегда – по ключевым кадрам.
Когда все было анимировано, я начал пытаться отрендерить это все в видео-файл. Встроенный модуль рендера в avi у меня напрочь отказывался работать. Полазив по форумам, выяснил, что это не только моя проблема, а косяк билда движка. Переворошив кучу страниц, нашел способ вывести все в виде последовательности кадров. Для этого пришлось воспользоваться парой консольных команд и заменить стандартные значения своими. Потом все собрал в after effects, подложил музыку (трек подбирал час, так и не выбрав… на помощь пришла моя девушка, за что ей большое спасибо),
отрендерил и залил на ютуб.
Помимо этого наделал рендеров в горячо любимом marmoset toolbag. Дальше работы попали в галерею, а я получил приглашение на making of.
Вот, наверное, и все)) Знаю, статья довольно косолапая получилась, но я первый раз что-то подобное пишу, так что прошу быть снисходительными T_T
Спасибо за внимание! Успехов всем)
P.S. Если что, вот ссылки на энвайронмент и отдельные куски:
Домик - http://www.render.ru/gallery/show_work.php?work_id=81347&gal_rub=1&gal_add=discuss#work
Кладовка - http://www.render.ru/gallery/show_work.php?work_id=81349&gal_rub=1&gal_add=discuss#work
Генератор - http://www.render.ru/gallery/show_work.php?work_id=81350&gal_rub=1&gal_add=discuss#work
Сам энвайронмент - http://www.render.ru/gallery/show_work.php?work_id=81457&gal_rub=1&gal_add=discuss#work