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

Alexey Savchenko, Evangelist, Unreal Engine/ Epic Games

Aug 14, 2015

Download

Business

WNconf
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Alexey Savchenko, Evangelist, Unreal Engine/ Epic Games

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

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

Page 2: Alexey Savchenko, Evangelist, Unreal Engine/ Epic Games

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

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

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

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

2

Page 3: Alexey Savchenko, Evangelist, Unreal Engine/ Epic Games

Об Unreal Engine 4

3

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

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

Планы на 4.9.

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

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

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

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

Page 4: Alexey Savchenko, Evangelist, Unreal Engine/ Epic Games

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

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

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

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

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

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

4

Page 5: Alexey Savchenko, Evangelist, Unreal Engine/ Epic Games

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

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

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

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

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

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

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

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

5

Page 6: Alexey Savchenko, Evangelist, Unreal Engine/ Epic Games

Планы на 4.9

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

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

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

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

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

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

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

6

Page 7: Alexey Savchenko, Evangelist, Unreal Engine/ Epic Games

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

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

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

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

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

7

Page 8: Alexey Savchenko, Evangelist, Unreal Engine/ Epic Games

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

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

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

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

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

8

Page 9: Alexey Savchenko, Evangelist, Unreal Engine/ Epic Games

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

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

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

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

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

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

9

Page 10: Alexey Savchenko, Evangelist, Unreal Engine/ Epic Games

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

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

Rendering profiles

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

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

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

10

Page 11: Alexey Savchenko, Evangelist, Unreal Engine/ Epic Games

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

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

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

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

11

Page 12: Alexey Savchenko, Evangelist, Unreal Engine/ Epic Games

Rendering profiles

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

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

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

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

12

Page 13: Alexey Savchenko, Evangelist, Unreal Engine/ Epic Games

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

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

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

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

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

13

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

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

Page 14: Alexey Savchenko, Evangelist, Unreal Engine/ Epic Games

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

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

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

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

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

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

14

Page 15: Alexey Savchenko, Evangelist, Unreal Engine/ Epic Games

Особенности разработки под 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

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

Page 16: Alexey Savchenko, Evangelist, Unreal Engine/ Epic Games

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

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

• На данный момент, в разработке находится 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

Page 17: Alexey Savchenko, Evangelist, Unreal Engine/ Epic Games

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

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

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

• Full desktop GPU speed.

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

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

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

17

Page 18: Alexey Savchenko, Evangelist, Unreal Engine/ Epic Games

UNREAL ENGINE 4

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

18

Page 19: Alexey Savchenko, Evangelist, Unreal Engine/ Epic Games

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

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

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

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

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

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

19

Page 20: Alexey Savchenko, Evangelist, Unreal Engine/ Epic Games

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

20

Page 21: Alexey Savchenko, Evangelist, Unreal Engine/ Epic Games

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

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

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

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

21

Page 22: Alexey Savchenko, Evangelist, Unreal Engine/ Epic Games

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

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

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

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

22

Page 23: Alexey Savchenko, Evangelist, Unreal Engine/ Epic Games

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

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

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

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

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

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

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

23

Page 24: Alexey Savchenko, Evangelist, Unreal Engine/ Epic Games

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

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

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

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

24

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

Экспорт в FBX

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

Drag and Drop

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

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

Drag and Drop

Page 25: Alexey Savchenko, Evangelist, Unreal Engine/ Epic Games

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

Материалы

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

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

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

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

Drag and Drop

25

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

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

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

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

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

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

Page 26: Alexey Savchenko, Evangelist, Unreal Engine/ Epic Games

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

Анимации

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

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

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

26

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

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

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

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

Готово

Page 27: Alexey Savchenko, Evangelist, Unreal Engine/ Epic Games

UI UMG

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

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

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

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

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

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

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

27

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

Frontend

HUD

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

Page 28: Alexey Savchenko, Evangelist, Unreal Engine/ Epic Games

Звук

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

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

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

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

Sound Cue Editor

28

Page 29: Alexey Savchenko, Evangelist, Unreal Engine/ Epic Games

Выводы

29

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

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

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

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

Page 30: Alexey Savchenko, Evangelist, Unreal Engine/ Epic Games

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

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

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

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

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

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

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

30

Page 31: Alexey Savchenko, Evangelist, Unreal Engine/ Epic Games

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

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

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

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

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

31

Page 32: Alexey Savchenko, Evangelist, Unreal Engine/ Epic Games

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

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

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

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

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

32

Page 33: Alexey Savchenko, Evangelist, Unreal Engine/ Epic Games

Выводы

33

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

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

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

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

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

Page 34: Alexey Savchenko, Evangelist, Unreal Engine/ Epic Games

Questions

34UNREAL ENGINE 4

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

ВОПРОСЫ?