В предыдущих статьях этой серии мы говорили о команда создателей видео The Blacksmith , а также о его украшение .
Теперь мы рассмотрим создание видео с технической точки зрения и затронем аспекты подготовки сцены, затенения и освещения в Unity 5.
Тестирование и работа с разными версиями движка
Мы начали создавать видео на ранних альфа- и бета-версиях Unity, стабилизировали его на версии 5.0.b22 и в конечном итоге обновили весь проект для финальной версии Unity 5.
Используя сырой движок на этапе разработки для создания контента, вы неизбежно сталкиваетесь с нестабильностью и низкой эффективностью процессов.
Каждую неделю перед нами стоял выбор: обновить движок до версии с исправленными ошибками или пропустить обновление, чтобы не нарушать работу команды.
Например, для расстановки камер и анимации мы использовали секвенсор Director в составе инструментария Storytelling, который на тот момент находился на ранних стадиях разработки.
Чтобы добавить в проект этот функционал, нам приходилось регулярно мержить его с основной версией движка вплоть до релиза.
Наша команда по контенту сообщает об ошибках и запрашивает новые функции у соответствующих отделов.
Но тогда нам остается только надеяться, что разработчики исправят ошибки и добавят новые возможности.
В противном случае придется искать обходные пути.
Дело в том, что помимо нашей обратной связи разработчики Unity получают обратную связь от множества пользователей и, как правило, сами определяют приоритетность задач.
Подготовка сцен На одном из первых этапов создания «Кузнеца» мы набросали геометрию сцен серым материалом.
Для создания прототипов мы нашли очень полезными пакеты из Asset Store, например Лучшие скалы и скалы из квантовой теории.
Благодаря им мы сразу приступили к работе над внешним видом объектов и очень скоро получили хорошие результаты:
Основываясь на раскадровках, которые мы сделали на этапе подготовки к съемкам, мы сделали первую версию камер, примерно наметив кадры, которые нам понадобятся, и сразу же составили список ресурсов, необходимых для каждого из них.
В то же время полным ходом шла работа над артом для 3D-моделей персонажей.
Нам нужно было множество возможностей для настройки художественных эффектов для каждого кадра.
Именно поэтому мы добавили в редактор Unity компонент Scene Manager, который позволяет группировать объекты по кадрам.
С его помощью мы смогли включать и выключать объекты для отдельных камер, а также изменять их свойства: местоположение, масштаб, материал и т. д. Более того, для каждого кадра настраивались уникальные параметры освещения, а система Global Illumination обеспечивала мгновенное освещение меняется в реальном времени.
Затенение
Физически основанный шейдер (PBS) в Unity довольно прост в использовании и настройке.
Мы работали с ним на всех этапах проекта.
Написание отдельного шейдера для кожи не входило в наш список задач, поэтому мы ограничились стандартным шейдером:
Антагонист. Скриншот из редактора Unity
Одним из главных преимуществ встроенного шейдера в Unity 5 является возможность гибкой настройки и расширения в соответствии со спецификой проекта.
Скачать его можно по ссылке: http://unity3d.com/get-unity/download/archive (в открывшемся меню «Загрузки» выберите «Встроенные шейдеры» для вашей платформы).
Взяв его за основу, вы легко сможете создавать уникальные шейдеры для своих проектов, как мы это делали для нашего видео.
Ниже мы приведем несколько примеров.
Во встроенный шейдер мы добавили функцию распознавания уникальных шейдеров.
Для этой модификации мы сделали две версии: для окружения (например, для учёта атмосферного рассеяния) и для персонажей, более сложную (для учёта уникальных теней и карт морщин).
В последнем мы немного улучшили пользовательский интерфейс, добавив ползунки для карты отражений.
Чтобы сделать мимику антагониста более реалистичной, мы добавили в проект карты морщин на основе blendshape. В каждом кадре наш компонент определял формы смешивания, оказавшие наибольшее влияние, и соответствующим образом составлял текстуры нормалей и теней на этапе предварительного рендеринга.
Затем модифицированный стандартный шейдер извлекал и распаковывал нормали и затенение из буфера экранного пространства вместо обычных слотов материала.
Стандартный шейдер Unity хорошо работает с множеством реальных материалов, но, к сожалению, волосы не входят в их число.
Хотя рендеринг волос не входил в объем проекта, мы хотели обеспечить характерное анизотропное освещение, сохраняя при этом надлежащую интеграцию с физической средой, используемой другими материалами.
Для этого мы модифицировали встроенный шейдер, изменив модель распределения отражений, но оставили процесс сэмплирования отражений и зондов освещения в исходном виде.
Шейдер для волос.
Скриншот из редактора Unity .
Для некоторых кадров мы хотели сделать мягкую растительность и найти простой способ добавить ей разнообразия.
Для этого мы разделили весь процесс на 2 этапа и расширили встроенные функции Unity по созданию растительности.
Используя небольшой инструмент под названием PaintJob, мы автоматизировали процесс добавления любой статической геометрии в мир с временным ландшафтом.
В сочетании с набором простых правил для управления процессом это позволило нам создавать слои растительности на сетках земли, вокруг объектов и на крышах.
Для рендеринга мы объединили все эти данные в уникальный компонент для сортировки по точке обзора, выборки глобального освещения и управления выборочным рендерингом и уровнем детализации.
Осветительные приборы
Мы разделили освещение персонажей и окружающего мира на несколько слоев и присвоили лампам соответствующие маски отбраковки.
Таким образом, у нас будет больше контроля над каждым слоем.
Подобный подход обычно используют в киноиндустрии, регулируя освещение в зависимости от расположения актеров в кадре.
Чтобы улучшить внешний вид персонажей, мы использовали дополнительные локальные источники света, чтобы смягчить тени (неосвещенные участки) на их лицах.
В демо-версии The Blacksmith мы сосредоточились на персонажах и использовали множество снимков крупным планом.
Поэтому было очень важно, чтобы тени были в достаточно высоком разрешении.
Поэтому мы добавили отдельную текстуру специально для теней персонажей.
По задумке, внутренняя часть кузницы должна была выглядеть так, как будто она освещалась лучами, проникающими внутрь через отверстия в стенах и крыше.
Для достижения этого эффекта мы использовали файл cookie с соответствующим дизайном.
Что касается отражений в океане и лужах на пляже, мы хотели, чтобы они выглядели как можно более резкими в точке, где объект касается отражающей поверхности, и постепенно становились более размытыми по мере удаления от объекта.
В результате мы добавили в шейдер шаг свертки, чувствительный к глубине, и возможность корректировки данных в зависимости от гладкости поверхности.
Полученные данные затем импортировались в стандартный шейдер, заменяя кубические текстуры отражений новыми уникальными текстурами.
Теги: #unity3d #шейдеры #персонаж #видео #unity #Кузнец #графика #анимация #перевод #Разработка мобильных приложений #Разработка игр #unity
-
Целомудрие
19 Oct, 24 -
Высший Уровень В Одевании
19 Oct, 24 -
Google Выходит На Мобильный Рынок
19 Oct, 24 -
Революция В Книгоиздании От Google
19 Oct, 24 -
Анонс Российской Программы Gtug
19 Oct, 24