Quantcast
Channel: Статьи Intel Developer Zone
Viewing all articles
Browse latest Browse all 357

Учебное руководство: Использование технологии Intel® RealSense™ в Unreal Engine* 3. Часть 1

$
0
0

Download PDF 1.38 MB

Введение

Unreal Game Engine 3 (UE3) компании Epic Games (https://epicgames.com/) — популярный модуль или «движок» для создания игр для ПК. Технология Intel® RealSense™используется для распознавания лиц и движения рук, чтобы расширить игровые возможности. В среде UE3 единственной рекомендацией является использование сценария Unreal в пакете Unreal Development Kit (UDK); настраиваемые функции следует добавлять в UDK в качестве подключаемого модуля, но в составе Intel® RealSense™ SDKнет подключаемого модуля для UDK.

В этой статье описывается добавление возможностей Intel RealSense SDK в средства управления игровыми персонажами в играх жанра MMORPG (массовые многопользовательские сетевые ролевые игры) в UE3 с помощью C++, а не сценариев Unreal. Определение и изменение структуры лица персонажа называется «монтажом лиц». Существует несколько способов монтажа лиц в игре, но мы рассмотрим применение Intel RealSense SDK в качестве способа изменения структуры лицевых костей игровых персонажей, в том числе вопросы производительности и нагрузки.

В этой статье содержится следующее.

  • Описание способа монтажа лиц.
  • Использование Autodesk 3ds Max* вместе с Unreal Engine.
  • Описание систем координат в Unreal: X-Y-Z, эйлеровы углы (поворот вокруг продольной, поперечной и вертикальной осей) и кватернионы.
  • Включение Intel RealSense SDK в Unreal Engine.
  • Соединение алгоритма Intel RealSense SDK с игровым движком.

Монтаж лиц в игре

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

  • Анимация с использованием сценариев. Заранее просчитанная анимация широко распространена в играх, но ее сложно применить для монтажа лиц в реальном времени. Впрочем, если нужно, чтобы выражение лица изменилось в соответствии с какой-либо простой эмоцией, это наилучший и самый простой способ. Для управления анимацией используется сценарий Unreal или Matinee.
  • Коммерческая программа для монтажа лиц — FaceFX*. FaceFX — коммерческий инструмент для монтажа лиц компании OC3 Entertainment (https://www.facefx.com), поддерживающий Unreal. Этот инструмент предварительно лицензирован в Unreal Engine 3. В FaceFX поддерживается монтаж всего тела и изменение лиц персонажей.
  • Целевая трансформация. В предыдущем образце кода Intel RealSense SDK с монтажом лиц в Unity (Angie) использовалась трансформация Morph. Это простой способ применения Intel RealSense SDK в игре, но при этом необходимо создавать цель трансформации для каждого персонажа. В MMORPG-играх обычно бывает от трех до шести рас или племен, при этом игрок может изменять и лицо, и тело своего персонажа, поэтому суммарное количество возможных сочетаний измеряется тысячами. При этом потребуется несколько тысяч Morph-ресурсов лица, а производительность ниже по сравнению с управлением костями.
  • Управление костями. Если Intel RealSense SDK может определять координаты костей, этот метод вполне применим в играх. Даже при наличии нескольких тысяч возможных сочетаний персонажей существует сравнительно немного лицевых структур (количество рас, умноженное на два пола). Кроме того, этот метод не повлияет на отображение и на производительность игры.

Например, в MMORPG-игре Bless* (http://bless-source.com/, http://bless.pmang.com/) существует 10 племен, но только 8 типов лицевых костей: у эльфов (двух полов), волков (двух полов), людей (двух полов) и расы «маску» (двух полов). Полный список наименований костей см. в разделе «Структура костей лица» в конце этого документа.


Рисунок 1. Игровые персонажи в MMORPG-игре

Среда

  • Компьютер для тестирования: процессор Intel® Core™ i7-5775C, 16 ГБ ОЗУ DDR, твердотельный накопитель (SSD) объемом 256 ГБ. Рекомендуемая конфигурация: мощный ЦП, например Intel® Core™ i7 6-го поколения (Skylake), мощный внешний графический адаптер и твердотельный накопитель с достаточным объемом пустого пространства (не менее 50 ГБ). Рекомендуется использовать твердотельные накопители вместо жестких дисков для повышения скорости ввода-вывода. Камера Intel® RealSense™ (F200) или обычная веб-камера.
  • Microsoft Windows* 7, 64-разрядная версия
  • Autodesk 3ds Max 2014
  • Исходный код Epic Games Unreal Engine 3 source code (требуется лицензия)
  • Microsoft Visual Studio* 2010
  • Intel RealSense SDK 6.0.21.6598 и Intel® RealSense™ Depth Camera Manager 1.4.27.41944

Установка

  1. Установите 64-разрядную версию Windows 7 на компьютер, обновите драйверы для всех устройств.
  2. Скопируйте исходный код UE3 на локальный диск.
  3. Установите и обновите Microsoft Visual Studio 2010. Если требуется отладка в Visual Studio 2010, необходимо включить сценарий отладки. См. автоматическое расширение установки отладчика.
  4. (Необязательно) Установите Autodesk 3ds Max 2014, если нужно экспортировать FBX-файл из MAX-файла.

Экспорт MAX-файла в формат FBX для импорта в UE3

В большинстве распространенных программ трехмерного моделирования, таких как Autodesk 3ds Max или Maya*, поддерживается экспорт трехмерных моделей в Unreal Engine или Unity* посредством файлов в формате FBX.

Описанные действия предназначены для Autodesk 3ds Max 2014.

  1. Откройте MAX-файл со структурой костей. Показано расположение костей и внешний вид.


    Рисунок 2.Откройте MAX-файл

  2. Экспортируйте этот файл в формат FBX. Если появится предупреждение о том, что режим by-layer не поддерживается, включите режим by-object для правильного экспорта.


    Рисунок 3.Экспорт в формат FBX

  3. Выберите все объекты, щелкните правой кнопкой мыши и выберите Object Properties.


    Рисунок 4.Параметры экспорта

  4. Нажмите кнопку By Object для переключения режима by-layer.


    Рисунок 5.Параметры экспорта: режим by-layer

  5. Выберите Menu, затем выберите Export. Введите имя экспортируемого файла в поле FBX. Можно выбрать animation и bake animation для проверки анимации в UE3.


    Рисунок 6.Экспорт с анимацией

Импортируйте FBX-файл в UE3 Editor
Если вы используете автономную версию UE3 в стандартной конфигурации (DirectX* 9, 32-разрядная версия), можно использовать редактор Unreal Editor.

  1. Запустите UE3 Editor с помощью следующих команд.

    Выполните команду CMD и перейдите в папку UE3 (в моем случае это папка C:\UE3).
    Перейдите в папку \Binaries\Win32\.
    Выполните команду examplegame.exe editor -NoGADWarning.


    Рисунок 7. Запуск Unreal Editor

  2. В окне Content Browser щелкните Importи выберите FBX file. Нажмите кнопку OKдля импорта. После импорта можно просмотреть объекты Animset, SkeletonMesh и прочие.


    Рисунок 8.Unreal Editor: окно Content Browser

  3. Чтобы проверить импортированный FBX-файл, щелкните правой кнопкой мыши Animsetи выберите Edit Using AnimSet Viewer.


    Рисунок 9.Unreal editor - AnimSet Viewer

  4. Можно отрегулировать размер и положение лица с помощью кнопок мыши (левая кнопка — поворот, средняя кнопка — положение, правая кнопка — масштаб). Слева отображаются наименования костей, справа — скелеты. При воспроизведении анимации также будет показано время кадра и разница положения и поворота.


    Рисунок 10.AnimSet Viewer.


    Рисунок 11.AnimSet Viewer: регулировка масштаба

  5. Выберите нужную кость (на этих рисунках выбрана кость BN_Ear_R 53) и систему координат X-Y-Z. Для перемещения перетащите вдоль осей X, Y или Z.


    Рисунок 12.AnimSet Viewer: проверка кости

  6. Для проверки в системе координат с эйлеровыми углами (поворот вокруг поперечной, продольной и вертикальной осей) нажмите пробел. При смене системы координат у правого уха будет показана эйлерова система координат. Для регулировки поворота перетаскивайте окружности P-Y-R.


    Рисунок 13.Смена системы координат

Создание карт и уровней в UE3 Editor

Пропустите этот раздел, если вы планируете использовать существующий файл карты или уровня. Действия, перечисленные в этом разделе, приведут к созданию простых кубов, источника света, камеры и актера (лицевой кости).

  1. Запустите UE3 Editor с помощью следующих команд.

    Выполните команду CMD и перейдите в папку UE3 (в моем случае это папка C:\UE3).
    Перейдите в папку \Binaries\Win32\.
    Выполните команду examplegame.exe editor -NoGADWarning.

  2. Используйте один из уровней шаблона или самостоятельно создайте простой уровень. Нажмите кнопку BSP Cubeправой кнопкой мыши. Во всплывающем окне введите 1024 в качестве значения для параметров X, Y, Z и установите флажок Hollow?. Затем на панели инструментов слева щелкните Add.


    Рисунок 14. Unreal Editor: создание слоя

  3. Для передвижения куба используйте клавиши WASD или клавиши со стрелками и мышь. Также можно использовать перетаскивание, удерживая нажатыми левую, среднюю или правую кнопки мыши для перемещения камеры.


    Рисунок 15. Unreal Editor: начальное расположение

  4. Чтобы добавить начальное расположение в игру, щелкните пол правой кнопкой мыши, выберите Add Actor, затем выберите Add Playerstart.

  5. Чтобы добавить источник света, щелкните стену правой кнопкой мыши, выберите Add Actor, затем выберите Add Light(Point).


    Рисунок 16. Unreal Editor: добавление света

  6. Чтобы добавить лицевую кость актера, нажмите клавишу Tabдля перемещения обозревателя содержимого и перетащите трехмерную модель скелета в UE Editor.


    Рисунок 17. Unreal Editor: добавление актера

  7. Для регулировки размера введите коэффициент масштабирования в правом нижнем углу.

  8. Для регулировки положения выберите значок Translation modeв левом верхнем углу. Для перемещения персонажа используйте координаты X-Y-Z.

  9. Для регулировки поворота выберите значок Rotation modeв левом верхнем углу. Для перемещения персонажа используйте координаты P-Y-R.


    Рисунок 18: Unreal Editor: регулировка поворота

  10. Сохраните уровень, указав его имя. Например, я использовал test.umap в папке \ExampleGame\Content\Maps.


    Рисунок 19. Unreal Editor: сохранение

  11. Скомпилируйте весь проект. В меню выберите Build, затем выберите Build All.

  12. Чтобы проверить карту, щелкните Playили нажмите клавиши Alt+F8.


    Рисунок 20. Unreal Editor: сборка

  13. Сохраните файл и закройте UE Editor.

Можно продолжить изучение использования этого файла карты в качестве источника при добавлении функций Intel RealSense SDK в статье Учебное руководство: использование технологии Intel® RealSense™ в Unreal Engine 3. Часть 2..

Об авторах

Чангйин Ким (Chunghyun Kim) — инженер по разработке приложений в отделе Intel Software and Services корпорации Intel. Он занимается оптимизацией игр и графики в архитектуре Intel®.

Питер Хонг (Peter Hong) — инженер по разработке приложений в отделе Intel Software and Services корпорации Intel. Его специализация — применение Intel RealSense SDK для отслеживания лица и рук, трехмерного сканирования и других целей.


Viewing all articles
Browse latest Browse all 357

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>