Статьи: Эксклюзив

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

22858 Автор:
Актуальность: 834
Качество: 833
Суммарный балл: 1667
Выбор Публики
Голосов: 88 оценки

Отзывы посетителей:

2 | След.
аватар
 
Takeda 3 0

Очень понравилась статья! Второй раз в закладки захотелось добавить) Музыка хорошая.

аватар
 
ShInIGameR 5 0
Невероятно круто!
аватар
 
Black Helix 22 0
" !!11diffuse_prefinal_final_100%fianl_copy "
Классный урок, спасибо
аватар
 
Александр Новицкий 522 0
хорошая тема - сделано на высоте - как мейк, так и сама работа)
аватар
 
Censored_ID 329 0
Спасибо, ребята))

Цитирую Браун:
Либо дым надо притормозить,
Дело в том, что это что-то типа пасхалки для "посвященных")) Он так активно прет из трубы потому, что там метамфетамин варят. Кстати, инменно поэтому дым настолько белый, а не привычно серый)) "Во все тяжкие" смотрел, пока тестовое это делал...

Но само по себе замечание, несомненно, правильное)
аватар
 
Браун 2 0
Молодец, всё клёво, но есть одно НО, которое, по крайней мере мне, режет глаз. Либо дым надо притормозить, либо закрутить ветряк. А то какая-то нестыковка. Я при любом "натурном" композе всегда думаю не только о свете, но и о ветре, т.к. это основные составляющие натурной реальности.
аватар
 
timonza-kun 12 0
отличная статья, 10/10!
аватар
 
CryDimon 12 0
Суперски! Крайенжейн красиво делает)
Цитирую:Для этого пришлось воспользоваться парой консольных команд и заменить стандартные значения своими.

А можно вот эту часть поподробнее? И как получить в нём качественный рендер одной картинки? Я знаю только скриншотом, но это есть качество моего экрана.
аватар
 
Censored_ID 329 0
Спасибо)

Мототок , да, она с каждым погружением все новые сюрпризы преподносит)
аватар
 
Замечательно поставлю 5/5
аватар
 
Мототок 73 0
tim3d,Вот вам ссылочка http://www.crydev.net/ !
Работа действительна крута)Недавно начал изучать Песочницу увидев эту работу я понял что еще много придется узнать в ней.
аватар
 
Censored_ID 329 0
Благодарю)

tim3d, про работу писал ниже - зовут к себе, но пока не иду, т.к. трудоустроен уже.
А cryengine3 доступен для свободного скачивания на сайте разработчиков. Надо лишь зарегистрироваться в сети разработчиков.
аватар
 
tim3d 88 0
Цитирую igni:

В последний раз доступ к использованию Крайинджина3 выдавался только студентам подтвержденных вузов (в рамках изучения. Доказать это было большим гемором) или за бабки.
Если на официальном сайте достали то распишите какая процедура получения версии. Пожалуйста.
аватар
  vip
Paz 471 0
Преподаватель курсов RENDER.RU
Мои поздравления, отличный making of
5/5
аватар
 
tim3d 88 0
Работа зачет.
Чувак, два вопроса. Взяли ли тебя на работу? И где ты взял Cry engine 3 ?
Очень интересно это выслушать.
аватар
 
Censored_ID 329 0
Цитирую 3-Dimensional:
Спасибо большое за проделанную работу, очень понравилось и вдохновляет. А сколько ушло времени на все, и что за агрегат так сказать использовался? :) Спасибо:)


B вам спасибо) рад, что понравилось)
Работал в течение 3х недель, с учетом изучения cryengine3 (до этого я ток с udk дело имел). Точно и не помню уже даже)
Делал на i7-2700, 16gb ram, 1280mb видео. Ну и планшет, естественно))
аватар
 
3-Dimensional 5 0
Спасибо большое за проделанную работу, очень понравилось и вдохновляет. А сколько ушло времени на все, и что за агрегат так сказать использовался? :) Спасибо:)
аватар
 
Censored_ID 329 0
Спасибо, ребята))

Cryunreal, я даже и не помню, чтоб у нас были разногласия какие-то))

Кирилл Клят Ну я просто прикидываю по блокауту, сколько деталей надо сделать, считаю средний поликаунт, а потом уже думаею, где по-плотнее меш сделать, а где срезать.. Хз, это как-то интуитивно больше получается) Я об этом и не задумываюсь даже, просто моделю как моделится,а потом, если превышаю лимит - просто упрощаю некоторые детали)

Ostap_Blender Зовут, но уже и так трудоустроен, так что я пока и не знаю, че делать))
аватар
 
Кирилл Клят 22 0
Симпатично получилось. Скажи, а вот допустим, есть ограничение в определенное количество полигонов. Как рассчитать чтобы все это влезло, и не намоделить больше чем надо? или потом просто использовать что то типа reduce в майке?
аватар
 
Ostap_Blender 79 0
Ну а чего, на работу взяли? х)
2 | След.
Зарегистрируйтесь, чтобы добавить комментарий.
Эту страницу просмотрели: 1007 уникальных посетителей