white nights intro to vr with unreal engine - luis cataldi-russian

Post on 20-Jan-2017

131 Views

Category:

Education

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Luis Cataldi - Education Evangelist – Epic Games

Начало работы с Виртуальной

Реальностью (VR) при помощи Unreal Engine

2

VR при помощи Unreal Engine используется повсеместно

3

Визуальные эффекты в рекламе: компания Framestore использовала UE4 для ролика “Экспедиция на Марс”

4

Виртуальные тренировки: NASA построили Международную космическую станцию в Unreal Engine

6

Виртуальные лекции и образование

И во многом другом!

Как же научиться использовать всю мощь

Unreal Engine?

Образовательные ресурсы по VR на Unreal Engine:Видео:

• 2015 UE4 - VR and Unreal Engine• Making Bullet Train and Going off the Rails in VR• VR Bow and Arrow Tutorial w/ Ryan Brucks - Training Livestream• Training Livestream - Sam and Wes' VR Stream: Cameras, Multiplayer, Tips and Tricks!• Creating Interactions in VR with Motion Controllers 1-3• Setting Up VR Motion Controllers• VR Networking and 3D Menus• Up and Running with Gear VR• Developing for VR • Integrating the Oculus Rift into UE4 

Презентации:

• UE4 VR - Niklas Smedberg• Lessons from Integrating the Oculus Rift into UE4• Going Off The Rails: The Making of Bullet Train

Ссылки:• Sam Deiter - 10 VR tips for Unreal Engine• Tom Looman’s - Getting Started with VR in Unreal Engine 4

Образовательные ресурсы по VR для Unreal Engine:Начало работы с редактором для VR:

• Activating VR Mode

Руководства по редактору для VR:

• Setting Up VR Editor from GitHub• Navigating the World in VR Mode• Working with Actors in VR Mode

Справка по редактору для VR:

• VR Editor Controls• Quick Select Menu• Radial Menu• Transforming Actors in VR• Editor Windows in VR Mode

**Новый режим Toggle VR Mode в Unreal Engine 4.13

** Все еще экспериментальный, но очень крутой.

Mitchell McCaffrey’s - Mitch VR Labs

Introduction to VRLook Based interactionSimple Teleportation MechanicIntroduction to SteamVRSimple Head IKMitch’s UE4 Forum Post

Образовательное Сообщество VR на UE4:

Справочник по VR на Unreal Engine

От Mitchell McCaffrey & Pearson Education Inc.

Ожидается в феврале 2017

Новые образовательные ресурсы по VR на UE4:

Образовательное сообщество VR на UE4:Образовательные каналы на Youtube.com:

• World of Level Design UE4 Fundamentals• Virtus Education series• Unreal Engine 4 Beginner Tutorials• Mathew Wadstein Tutorials• Leo Gonzales Unreal Basics• Tesla Dev Tutorials• UE4 Style Guide

Ресурсы по изучению блюпринтов:• Communication Training - Zak Parrish• Blueprints Compendium - VOLUME II• BP_Compendium.pdf• Network Compendium

Образовательные каналы на ArchViz:• Architectural Visualization Tutorials

Образовательное сообщество VR на UE4:

Платные онлайн-курсы:• Learn to Code in C++ by Developing Your First Game• Complete Introduction to Unreal 4• Unreal Essential Training - Lynda.com• Unreal: Learn Lighting - Lynda.com• 3dmotive - Unreal Engine courses• Pluralsight - Unreal Engine courses

Скоро - больше

Улучшенная Поддержка Метаданных

Для разных уровней подготовкиВерсия движкаФильтры/Теги

Чекпоинты

Образовательные ресурсы по VR на Unreal Engine:

Используй на максимум материалов из UE4 Launcher Learn Tab

Недавние разработки

Новое: Шаблон VR-проекта

Мы добавили новый шаблон проекта под VR для ПК и консолей.

Новое: Шаблон VR-проекта

Шаблон может быть выбран из вкладки Blueprint при создании нового проекта.

Новое: Шаблон VR-проекта

С помощью контроллера движения возможно взаимодействие и манипуляция с объектами, а также телепортация.

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

В Epic Games, мы развиваем движок создавая контент.

Instanced Stereo Rendering

Позволяет использовать single draw call для того чтобы создать картинку для обоих глаз, экономя время CPU (и некоторое время GPU).

- В настоящий момент работает на PC, а в скором времени будет также доступно для PS4 и мобильных платформ- Нужно запускать в настройках проекта

Instanced stereo доступно сейчас для отложенного/deferred (PC) рендеринга и PS4.

- Мы также внедряем поддержку мульти-мониторного расширения для форвард (мобильные платформы) рендеринга, а также улучшаем поддержку PS4 для более оптимального использования ресурсов.

Instanced Stereo Rendering

Hidden And Visible Area Mesh

Мы отображаем меши таким образом, чтобы не захватывать геометрию, которую не видно, и используем пост-процессы только там, где это возможно.Для отложенного рендеринга, Visible Area Mesh является серьезной оптимизацией!Является особенностью определённых платформ.

Hidden And Visible Area Mesh

Hidden Area Mask использует меш, чтобы выявить и исключить пиксели, которых не будет в итоговом изображении.

Hidden And Visible Area Mesh

Visible Area Mask использует меш, чтобы ограничить пост-процессы только видимыми пикселями.

Camera Refactor

По сравнению с 4.11, мы полностью переписали систему камеры, чтобы сделать разработку намного проще!

- Компоненты Камеры (Camera Components) сейчас двигаются в точности в зависимости от того, как двигается реальный VR-шлем (HMD)

- Вы можете прикрепить компоненты (меши, UI и т.д.) напрямую к камере (camera component)!

Platform Support:

Поддержка платформ

Начиная с 4.12, существует поддержка следующих платформ «из коробки»:

• Oculus Rift• Steam VR (including the HTC Vive)• PSVR• OSVR (preview)• Samsung Gear VR• Google Daydream• Leap Motion

Поддержка платформ

Создавая единожды, применяйте вне зависимости от платформы

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

Десктоп / КонсолиOculus RiftHTC Vive / Steam VRPSVROSVR

Samsung Gear VRGoogle Daydream

Все данные платформы поддерживают стандартные VR-интерфейсы UE4, поэтому вы можете создать свой контент единожды и использовать его где угодно.

Oculus

Vive PSVROSVR

Единая Система Камеры

Система Контроллеров Движения

Оптимизированные способы рендеринга

Оптимизации low-latency

ФОРВАРД РЕНДЕРИНГ ДЛЯ ДЕСКТОПОВУже этой осенью*

Отложенный (deferred) рендеринг в UE4 - полноценный рабочий инструмент, для эффективного использования которого всё же потребуются необходимые навыки. Temporal Anti Aliasing (временное сглаживание) ограничивает то, насколько резкой картинка может быть.

Новый форвард (forward) рендеринг в UE4 будет специализированным рендерингом, с меньшим количеством фичей, но с более быстрыми базовыми параметрами. Multi Sampling Anti Aliasing (MSAA) – самое эффективное решение для сглаживания.

Соображения по дизайну на VR

Одна из самых серьезных проблем работы с VR – эффект «Укачивания».

Чем он вызван?

en.wikipedia.org/wiki/Virtual_reality_sickness

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

Пять типичных причин возникновения Тошноты/Укачивания в VR

1. Непоступательные движения• Не неестественные движения

2. Осознание Вектора• Когда большая часть того, что видит человек, движется,

ему в действительности кажется, что он сам движется, а окружение статично

3. Чувство Ускорения4. Чрезмерное вращение камеры (camera YAW)5. Наличие статичного кадра (static reference frame)

С помощью этих приёмов в Unreal Engine МЫ можем улучшить опыт от

VR игр и VR опыта в целом

Вы ОБЯЗАНЫ Следить за Частотой Кадров

Для просмотра текущего фреймрейта введите “stat fps” или “stat unit” (для более подробной разбивки) в консоли при запуске игры.

VR Instanced Stereo работает «по умолчанию» в UE 4.13

Чтобы включить эту функцию в версиях до UE 4.13, перейдите в настройки проекта и найдите “Instanced Stereo” в настройках Рендера.

Постоянно проверяйте производительность,

чтобы быть уверенными в том, что вы попадаете

в ваши целевые показатели VR.

Поддерживайте очень упрощенный подход к созданию

контента.

Сводите к минимуму количество сложных шейдеров.

Вместо того, чтобы использовать сложные шейдеры для

деталей поверхностей, лучше добавляйте детали самому

мешу.

Обязательно используйте LOD‘ы и aggressive culling для

того, чтобы быть уверенными, что вы попадаете в

намеченные показатели производительности в VR.

Screen Space Reflections (SSR)SSR будет работать в VR, но может не дать ожидаемого результата. Вместо этого лучше использовать датчики отражения (reflection probes).

Проблемы с Normal Mapping  

При просмотре Карты Нормалей на объектах в VR,

можно заметить, что они не дают такого же эффекта,

как обычно. Это происходит потому, что Карты

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

параллакса. Из-за этого Карты Нормалей выглядят

плоскими в VR.

Parallax Mapping  

Шейдер Parallax mapping может лучше передавать глубину информации. Таким образом объекты кажутся более детализированными.

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

* Parallax карты часто выглядят лучше вблизи, в то время как многие Карты Нормалей будут хорошо выглядеть на средних дистанциях.

Tessellation Shader Displacement  

Tessellation Shader Displacement изменит 3D геометрию в

реальном времени, добавляя детали, которые не

моделируются в объект. Tessellation shaders очень

помогают отображать информации, потому что они

создают недостающие детали, добавляя больше вершин

(vertices) и изменяя их в 3D пространстве.

Запускаем VR Preview:

Тестировать ваш VR set очень просто: выберите “VR Preview” из выпадающего списка кнопки Play.

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

либо изменений в существующий проект или шаблон.

** Remember in UE 4.13 to try Play from VR Editor, if you have controllers.

GPU Profiling:Для того, чтобы захватить один кадр с таймингами GPU нажмите Ctrl + Shift + или введите “profilegpu” в консоли. Эта команда собирает точные тайминги GPU. Вы обнаружите, что некоторые процессы являются тяжелыми и уменьшают частоту кадров (Ambient Occlusion является одним из распространенных примеров) при использовании в VR.

Посмотрите GPU Profiling и Performance and Profiling в разделе документации.

GPU Profiling:В Unreal Engine 4.13 появился новый экспериментальный Real Time GPU Profiler!

•Что бы его включить, введите r.GPUStatsEnabled 1 в консоли •Затем введите stat gpu для его запуска

Отключите Тяжёлые Пост-Процессы:Из-за жестких требований к VR многие из дополнительных функций пост-обработки, которые обычно используются, должны быть отключены. Для этого, сначала вы можете рассмотреть возможность отключить тяжелые пост-процессы в настройках проекта в первую очередь, или используйте следующие атрибуты.

• Добавьте Post Process(PP) volume на ваш уровень, если там ещё нет ни одного.• Выберите PP volume and включите опцию Unbound чтобы добавить эту настройку ко всему уровню

• Пройдитесь по всем настройкам в Post Process Volume и отключите все ненужные настройки PP. Для этого сначала включите конкретную настройку, измените значение с того, что было установлено по умолчанию (обычно 1.0), на 0.

•В первую очередь нужно отключить наиболее тяжёлые для производительности в VR фичи, такие как Lens Flares, Screen Space reflections, Screen Space Ambient Occlusion, а также другие влияющие на производительность фичи.• В то время как некоторые из функций отключаются настройками в файлах .INI, это гарантирует, что производительность

не будет затронута, если .INI удалится по ошибке.

Освещение для VR в UE4

• Тусклые огни и цвета могут помочь уменьшить вероятность укачивания/тошноты.

• Не перекрывайте Стационарный/Динамический свет.

• При использовании Динамических Теней – только один shadowing light.

• Пользуйтесь Stat LightRendering, чтобы следить за «стоимостью» освещения.

• Запеченный свет – лучший вариант для VR-окружения.

• Всё время следите за Profile для обеспечения нужной производительности.

Фальшивые тени везде, где только можно!!

Используйте такие читы, как fake blob shadow drop, чтобы имитировать динамические тени для поддержания оптимального фреймрейта VR-проекта.

Пример Blob shadow. Предоставил Eric Chadwick

Партикл-Эффекты в VR• VFX, основанный на меше лучше всего подходит для VR-проекта.• Партиклы, которые направлены на камеру, - не лучшее решение для VR из-за

стереоскопического видения.• Dither Temporal AA Material Function сделает так, что Opacity masked объекты будут

выглядеть, как Translucent. • Local Space rotation может выглядеть в VR, как выключенное.

Соображения по VR-Окружению

• Рассматривайте Reflection probes вместо screen space reflections.• Ещё раз… Texture Blob shadows - дешёвая альтернатива динамическим

теням.• Merge Actor Tool может помочь сократить затраты на отображение Static

Mesh без необходимости выполнения действия вне UE4

Некоторые очень важные вещи, которые мы все должны знать об

Unreal Engine.

The Unreal Engine Framework

The Unreal Engine Framework

GameInstance

GameMode

Pawn Class

HUD Class

PlayerController Class

GameState Class

PlayerState Class

The Unreal Engine Framework

GameInstance

GameMode

Pawn Class

HUD Class

PlayerController Class

GameState Class

PlayerState Class

GameMode, по сути, определяет

игру.

● Он должен содержать такие

вещи, как правила игры и

условия победы.

● Он также содержи важную

информацию о:

○ Pawn

○ PlayerContoller

○ GameState

○ PlayerState

The Unreal Engine Framework

GameInstance

GameMode

Pawn Class

HUD Class

PlayerController Class

GameState Class

PlayerState Class

Pawn class – это базовый класс всех

Акторов (Actors), которые могут

контролироваться игроком или АИ.

● Pawn представляет собой

физическое местоположение,

вращение и т.д. игрока, или

другого субъекта в игре.

● A Character представляет

собой особый тип Pawn,

который может

передвигаться/ходить.

The Unreal Engine Framework

GameInstance

GameMode

Pawn Class

HUD Class

PlayerController Class

GameState Class

PlayerState Class

PlayerController является связующим звеном между Pawn и человеком, который им играет.

● PlayerController решает, что делать, а затем выдает команды на Pawn (например, «идти на корточках", "прыгнуть").

● Помещение способа ввода или других функциональных возможностей в PlayerController часто бывает необходимо.

● PlayerController хранится на протяжении всей игры, в то время как Pawn может быть временным.

The Unreal Engine Framework

GameInstance

GameMode

Pawn Class

HUD Class

PlayerController Class

GameState Class

PlayerState Class

GameInstance – это класс,

который сохраняет своё

состояние и переключает уровни,

game modes, pawns и т.д. В то

время как классы типа

GameMode или PlayerController

сбрасываются и данные, которые

в них хранились, – удаляются.

The Unreal Engine Framework

GameInstance

GameMode

Pawn Class

HUD Class

PlayerController Class

GameState Class

PlayerState Class

PlayerState – это состояние

участника игры – реального

игрока или бота, который

симулирует реального игрока.

АИ, который не является игроком

и просто существует в игре, не

будет содержать PlayerState.

The Unreal Engine Framework

GameInstance

GameMode

Pawn Class

HUD Class

PlayerController Class

GameState Class

PlayerState Class

GameState содержит состояние

игры, которое может включать в

себя такие вещи, как список

подключенных игроков, счёт,

расположение фигур в

шахматной игре, или список

миссий, которые вы завершили в

игре с открытым миром.

The Unreal Engine Framework

GameInstance

GameMode

Pawn Class

HUD Class

PlayerController Class

GameState Class

PlayerState Class

HUD - это базовый объект для

отображения элементов на

экране (интерфейса). Каждый

контролируемый человеком

персонаж в игре имеет свой

собственный

инстанс HUD класса, который

отрисовывает для него

индивидуальный Viewport.

Character

Object является основным строительным блоком в Unreal Engine.

Actor – это любой объект, который можно разместить на уровне.

Pawn – это подкласс (subclass) Actor, который выполняет роль аватара в игре.

Character – это подкласс (subclass) Pawn, который предназначен для использования в качестве игрового персонажа.

Object

Actor

Pawn

CharacterMovementComponent

Pawn

Character

Default Pawn

Wheeled Vehicle

CapsuleComponent

SkeletalMeshComponent

Etc.

VehicleMovementComponent

SkeletalMeshComponent

PhysicsHandle

Etc.

SpectatorPawn

DefaultPawnMovementComponent

StaticMeshComponent

CollisionComponent, Etc.

Controller1-to-1 Relationship

Как насчет программирования интерактивности для VR?

Программирование интерактива в VR с помощью Blueprints

Блупринты в Unreal Engine – это полноценная система визуального скриптования, основанная на концепции использования node-based интерфейса для создания взаимодействия внутри Unreal Editor.

Эй!! Нам для VR необходимо ещё и AUDIO!!

Ambient Sound Actors in VRAmbient Sound Actor может

использоваться в качестве,

например, ambient looping

sounds и non-looping sounds.

Как правило, звучание Ambient

Sound Actor соответствует

реальному миру, где чем

ближе вы к звуку, тем он

громче.

Настройки Звука

Вы можете назначить звуковой

ассет из панели Details, выбрав

ассет из Sound settings drop-

down menu или выделив

звуковой ассет в Content

Browser и нажав

соответствующую кнопку.

Настройки Затухания (Attenuation)Затухание (Attenuation) – это

способность звука

становиться тише, когда

игрок отходит от его

источника.

Рекомендуется использовать

Sound Attenuation objects, где

это только возможно.

Stereo Spatialization3D spatialization теперь доступен для стерео аудио-ассетов.

Настройка 3D Stereo spread параметра определяет дистанцию в игровых юнитах между левым и правым каналами и вдоль вектора, перпендикулярного к вектору слухового эмиттера (listener-emitter vector).

Audio Volume

Audio Volumes позволяют

контролировать и применять

различные звуки на вашем

уровне, а также обеспечить путь к

созданию узконаправленных

звуковых зон, где вы можете

контролировать то, что слышно

внутри и снаружи Audio Volume.

В Unreal Engine есть полный современный набором AI Tools.

В Unreal Engine есть Полный набор инструментов для работы с анимациями animation retargeting

86

VR с помощью Unreal Engine это круто.

Ознакомьтесь с UE4

VR learning resouces для получения

более исчерпывающей информации.  luis.cataldi@epicgames.com

top related