34
Unreal Engine 4 Все о Мобильной и Веб Разработке Алексей Савченко

Alexey Savchenko, Evangelist, Unreal Engine/ Epic Games

  • Upload
    wnconf

  • View
    469

  • Download
    8

Embed Size (px)

Citation preview

Unreal Engine 4 Все о Мобильной и Веб Разработке

Алексей Савченко

«Пару слов о себе»

Меня зовут Алексей Савченко, в индустрии я около пятнадцати лет.

Работал над около двадцатью проектами на ведущих ролях, двенадцать из которых на Unreal Engine 3 и 4, основные специализации продюсер и нарративный дизайнер.

Работал в Boolat, GSC Game World, Vogster, последние семь лет исполнительный продюсер в Black Wing Foundation, с января 2015 года, технический евангелист в Epic Games.

2

Об Unreal Engine 4

3

Отличительные особенности

Что нового в 4.8?

Планы на 4.9.

Почему UE4 интерес инди-студиям

А также, состоявшимся компаниям.

Не говоря уже, о больших игроках на рынке.

Немного о разнообразии.

Отличительные особенности

Нет стоимости подписки, базовые условия 5% grossпосле 3.000 USD, условия сделок обсуждаются.

Blueprints – не только система визуального скриптования, но и универсальный интерфейс движка.

Открытый исходный код, в отличие от третьего движка, не Unreal Script, а С++

Новый редактор материалов

Мультиплатформенность, поддержка большинства современных устройств.

4

Что нового в 4.8?

Значительно повышенная стабильность работы редактора

Иерархическая система уровня детализации

Высококачественные глубина резкости и tonemapping.

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

Редактор кривых для UMG.

Улучешнные пост-процессы.

Много по Open World, VR поддержке и ландшафту/фоллиаджу.

5

Планы на 4.9

Общая оптимизацию рендера и улучшенная парралелилизация функций.

Многопоточная асинхронная загрузка ассетов (сейчас можно включить руками).

Динамические источники света

Тени персонажей

Динамически размещаемые modulated/additive/unlit декали

Решение для устройств с низким разрешением, что включит, например поддержку устройств, использующих Mali GPU.

При этом, общая задача по HTML5, достигнуть уровня поддержки, как минимум сопоставимого с текущим мобильным.

6

Почему UE4 интерес инди-студиям

Бесплатный в использовании Открытый код, профессиональный

тулсет, хорошо подходит для сидящих вместе или распределенных команд от 3 до 10 человек.

Unreal Development Grants Мы помогаем промоушеном Мы да, также знакомим с издателями,

помогаем с платформами, прессой и инвестиционными площадками, когда у вас есть что-то, что уже можно показывать.

7

А также, состоявшимся компаниям

Если вы строите кэшфлоу, сейчас много контрактов на портирование и работу с бэк-каталогами.

Быстрое протитипирование своих проектов.

UE4 сейчас очень любят с точки зрения работы с лицензионным контентом.

Если вы собираетесь водить проект по платформам и собирать продажи длинными хвостами, проекты на UE4 легко портировать и адаптировать, включая консольные цифровые магазины.

8

Не говоря уже, о больших игроках на рынке

Традиционно, “родная” территория для UE4

Гибкая модель лицензирования.

Быстрое протитипирование дорогих фичей.

Оптимизация затрат на кат-сцены.

Стабильная платформа с профессиональной поддержкой.

9

Мобильная и веб-разработка, essential

Специфика рендера

Rendering profiles

Особенности разработки под iOS

Особенности разработки под Android

Особенности разработки под HTML5

10

Специфика рендера

Forward rendering и прямая визуализация – визуализирует только то, что камера видит на данный момент, просчет происходит быстро и занимает минимум памяти.

Специфика материалов –поддерживают PBR и шейдинг, используется нодовый редактор.

Многоплатформенный транслятор HLSL – позволяет транслировать шейдера в GLSL или Metal SL.

11

Rendering profiles

LDR (iPhone4) – освещение и пост-процессы не используются, но при этом сохраняется полный доступ к редактору материалов.

Basic (iPhone4S) – можно использовать статичные источники света и некоторые пост-процессы.

HDR (iPhone5S) – вычисления цвета и освещённости происходят при помощи чисел с плавающей точкой. Добавились тени, качество которых просчитывается в зависимости от расстояния до камеры.

Desktop - рендеринг с поддержкой статичного и динамического освещения и физически корректного шейдинга.

12

Масштабирование на разные мобильные устройства

Задание общих параметров рендера.

Настройка параметров для всех мобильных устройств.

Добавление параметров, характерных для всех устройств каждой платформы.

На основе базовой конфигурации iOS платформы добавляются параметры для каждого iOSустройства.

13

На основе базовой конфигурации Androidплатформы создаются профили для низкого, среднего и высокого качества.

Добавление параметров для конкретного графического процессора.

Особенности разработки под iOS

Использует более простой менеджер ресурсов.

Поддерживает новую компрессию текстур ASTC (AdaptiveScalable Texture Compression), которая позволяет получить файлы текстур небольшого размера, но с высоким разрешением (требует процессор А8 и выше).

Добавлена поддержка режима параллельного рендеринга

Имеет очень гибкую систему отладки/проверки в Xcode: просмотр ресурсов, перекомпиляция шейдеров «на лету», профилирование шейдеров и многое другое. Для поддержки Metal требуется набор предкомпиленныхшейдеров, поэтому скомпилировать проект пока можно только на MacOS.

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

14

Особенности разработки под Android

Тут все несколько сложнее, в основном, как обычно, по причинам проблемы фрагментации, по следующим категориям.

• CPU – arm32, arm64, x86, x64

GPU – Adreno, PowerVR, Tegra, Mali, которые в свою очередь используют различные компрессии текстур: ATITC, PVRTC, DXT, ETC1, ETC2, ASTC.

Версии ОС – 2.3 -> 5.1.1

Варианты ОС – Android, Amazon, и т. д.

15

Приводит к проблемам совместимости в следующих областях – компиляция шейдеров, затруднительная оптимизация, сглаживание.

Методы решения проблем совместимости

• Программы автоматизации тестирования

• На данный момент, в разработке находится UE4 Readiness App © ®., программа, показывающая параметры устройства. Приложение написано на Java и будет распространяться через GooglePlay.

• Добавление группы расширений GL ES3.1 -геометрический шейдер, ASTC текстуры и т.д.

• Ранжирование устройств.

16

UE4 Android Readiness

CPU Model: arm64

GPU Model: MagicGPU 740xx

TexFormats: ASTC, ETC1

Has TexCubeLOD? No

Only fully rough or shiny

Texture Streaming? Yes

Num Interpolators: 7

Limited texture usage

Shaders Compiled: 8 / 10

Expect rendering artifacts

CPU Memory Avail: ~468MB

GPU Memory Avail: 256MB

Особенности разработки под HTML5

• Не просит плагинов, напрямую работает с JavaScript, использует транслятор Emscripten, конвертирующий скомпилированный код С++ в ASM.JS.

• Поддержка ES2 Open GL

• Full desktop GPU speed.

• В разработке и добавляется WebGL 2 (ES3.0)

• Работает во всех браузерах, есть небольшие проблемы с Хромом, решаемые тестированием и отладкой.

• Вообще, любую example игру можно забилдить на HTML5 и самостоятельно посмотреть на результаты.

17

UNREAL ENGINE 4

“Время шоукейсов”

18

“Что такое «Морской Бой»?”

Тактическая асинхронная стратегия.

Мидкор, казуальная стилизация, определенное влияние «Boom Beach», элементы фьюжена, база и боевая система, старый добрый «Морской Бой».

Рассмотрим боевую систему.

Сделано шестью людьми за полтора месяца на три платформы.

Посмотрим видео, пока что, сборка на ПК.

19

Архитектура проекта

20

Код и Блупринты 1 – Взаимодествие

В коде у нас есть базовый класс корабля в котором реализован основной функционал.

На основании этого класса создан базовый блупринт корабля.

От базового блупринта наследуются блупринты отдельных кораблей.

21

Код и Блупринты 2 – Наследование

На основе базового блупринта/класса мы можем создавать любое количество производных блупринтов.

Функционал, созданный и настроенный в базовом блупринте/классе, наследуется в производных.

Как итог, в производных блупринтах мы настраиваем только уникальные параметры .

22

Код и Блупринты 3 – Производственные преимущества

Возможность реализовать базовый функционал в коде.

Наследование в блупринтах позволяет расширить механику на основе базовых классов.

Функционал блупринтов позволяет собрать прототип (или даже целую игру) без участия программистов.

Visual debugger позволяет дизайнерам находить ошибки в визуальных скриптах на лету.

Дизайнеры могу деплоить проект.

Позволяет делать много быстрых итераций и легко вносить фидбек.

23

Арт-пайплайн– Обзор и импорт

Основным инструментом по работе с контентом является Контент Браузер.

Дружественный интерфейс позволяет разобраться любому артисту.

Drag and drop интерфейс.

24

Импорт моделей (FBX-PIPELINE)

Экспорт в FBX

Так же поддерживается .OBJ

Drag and Drop

Импорт текстур

Поддерживаемые форматы:.bmp .float .pcx .png.psd. tga .jpg .dds .hdr

Drag and Drop

Арт-пайплайн– Материалы, свет и постпроцессы

Материалы

UE4 поддеживает современные PBR (физикл басе рендер) шэйдера

Preview Rendering Level для различных устройств

Material Editor - визуальная нодовая структура.

Ограничения по сложности учитываются согласно выбранной платформе.

Drag and Drop

25

Свет и постпроцессы

В сцене используется один направленный источник света.

Для точной настройки картинки используем PreviewRendering Level - OpenGl ES 2.

И последний штрих, то что придаёт игре особый лоск –постобработка.

Ставим в сцену PostProcessVolume.

Настраиваем контраст, насыщенность и дожигаем немного по высоким тонам.

Арт-пайплайн – Анимации и визуальные эффекты

Анимации

В UE4 есть много вариантов, как можно анимировать. Например для комплексной персонажной анимации есть Persona. Но для этого проекта такая система перебор.

В UE4 можно изменять параметры во времени при помощи блупринт ноды TimeLine и объекта Curve.

Timeline –набор анимационных кривых (Curve), которые управляют нужными нам параметрами (Translate, Rotate). С их помощью мы перемещали айсберги и корабли.

26

Партикл системы

Создаём ParticleSystem, материал

Рисуем анимационную последовательность 64 кадра

Подключаем текстуру в материал, материал в спрайты (партиклы), настраиваем характер движения

Готово

UI UMG

Unreal Motion Graphics UI Designer (UMG) это визуальная среда для сборки интерфейсов

Основа UMG это Виджеты (Widgets)

Виджеты настраиваются в блупринте виджетов, в котором есть две вкладки:

Designer tab используется для размещения

визуальных элементов.

Graph tab используется для добавления

функциональности.

27

Игровые индикаторы

Frontend

HUD

В Battleships все интерфейсы сделаны на UMG.

Звук

Для имплементации звуков используется Sound Cue Editor

Он позволяет настраивать звуки так, как это нужно вам.

Например это звук взрыва, который при активации случайно выбирает один из 4-ех вариантов и проигрывает его.

Так же ограничено проигрывание более двух звуков этого типа, чтобы избежать потерь производительности и какофонии звуков.

Sound Cue Editor

28

Выводы

29

Оптимальный пайплайн, быстрые итерации и результат.

Очень гибкая архитектура, легкая имплементация новых механик и изменение существующих.

Можно быстро и эффективно прототипировать с помощью ассетов из Marketplace.

Просто попробуйте сами – это легко и прикольно.

Что такое «тактический прототип»?

Не анонсированная игра в разработке, мы ее так и будем называть, «тактический прототип».

Изначально, графически более «навороченный», другие задачи.

Достаточно сложный с точки зрения механик на блюпринтах.

Интересна нам в первую очередь тем, что изначально разрабатывается на ПК, и мы будем ее портировать на мобильные устройства.

Также, с точки зрения оптимизации.

Давайте посмотрим видео на ПК

30

Портирование на iOS

Создавая материал необходимо учитывать, что вы можете использовать максимум 5 текстурных карт. В нашем случае мы использовали для объектов окружения 3 текстурных карты (Diffuse, Normal,Material Mask), для персонажей 4 (Diffuse, Normal,Material Mask, Specular).

Используйте минимальное количество полупрозрачных материалов. Будьте аккуратны используя различного вида системы частиц.

Касательно текстур. Только квадратные и кратные степени 2.

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

31

Портирование на андроид

Нюансы, описанные выше относительно iOS, актуальны и для Андроид. Но кроме них есть и ряд своих моментов:

Делая билд для андроид всегда стоит учитывать особенности компрессии текстур. Так на девайсах использующих ETC1 формат обрежутся текстуры с альфа-каналом, которые как правило используют для маскирования либо прозрачности. Вы обойдете эту проблему создавая маску отдельной текстурой.

Для сборки билда под Андроид нужно установить Android SDK. В UE 4 для вашего удобства добавлен TADP инсталлятор, который автоматически установит все необходимое.

Для заливки билда на устройство вам нужны корректно установленные драйвера ADB.

32

Выводы

33

Вы можете как изначально разрабатывать кросс-платформеный проект, так и легко портироватьPC проект.

Очень важно изначально правильно спроектировать архитектуру проекта, корректно разделить код и блупринты.

Используйте Блупринты для быстрого прототипирования механик.

Активно и разумно используйте наследование.

Если вы разрабатываете кросс-платформенныйпроект - учитывайте особенности и ограничения всех платформ.

Questions

34UNREAL ENGINE 4

СПАСИБО ЗА ВНИМАНИЕ!

ВОПРОСЫ?