Руководство пользователя EV Toolbox

Быстрый старт

Что такое EligoVision Toolbox (EV Toolbox)

EV Toolbox - это новый инструментARий дополненной реальности (Augmented Reality), созданный в России и работающий на базе собственной технологии дополненной реальности от компании EligoVision - "живые 3D метки®".

EV Toolbox - это новый, простой и удобный программный продукт, позволяющий 3D дизайнерам и программистам создавать собственные презентации на основе технологии дополненной реальности и зарабатывать на них.

Дополненная реальность (AR) - это интерактивная технология, которая позволяет накладывать "поверх" изображения с камеры специальные компьютерные 2D и 3D объекты таким образом, что создается впечатление, что они непосредственно находятся в реальном мире.

EV Toolbox - это набор программ для создания и просмотра презентаций с дополненной реальностью. EV Toolbox состоит из двух программ: EV Studio и prEView. С помощью EV Studio создается проект, в котором задается сценарий презентации. Проект из EV Studio экспортируется как eva-пакет. Проигрыватель prEView позволяет просматривать созданный eva-пакет в режиме реального времени.

Примеры AR проектов в EV Toolbox

Специально для вас мы создали в EV Toolbox пять уже готовых примеров презентаций. Они наглядно показывают возможности инструментARия.

В них мы включили следующие сценарии презентаций:

  1. Размещение модели на метке (Model on Marker)
  2. Презентация частей модели через событие перекрытия метки на примере снятия этажей с модели здания (Model Components)
  3. Пример презентации с использованием безмаркерных меток (Markerless Technology)
  4. Презентация “Изба 2.0.” с включением в презентацию видео и скелетной анимации (IZBA 2.0).
  5. Презентация “Мертвец и будильник” с программированием взаимосвязей между двумя независимыми моделями (Deadman and Alarm).>

Для просмотра любого готового примера презентации достаточно открыть эту презентацию, а затем во вкладке File выбрать опцию Preview package. Откроется окно с подключенной к вашему ПК камеры. Далее необходимо нажать кнопку Play и поднести к камере одну из двух меток.

Распечатать метки можно в панели основного меню (стартовый экран при запуске EV Toolbox) в нижней части по ссылке Print Markers. Выйти в основное меню можно через File > Back to Main Menu.

Создание AR презентации в EV Toolbox


Давайте посмотрим, как создается презентация дополненной реальности в инструментARии EV Toolbox по шагам.

Начнем с несложной задачи, где в результате на метке будет появляться простая 3D модель (Model on Marker).

  1. В меню выбираем
    Файл > Новый проект
    .
  2. Открывается экран проекта. Слева расположена панель проекта, где показаны все добавленные в проект объекты взаимодействия. Справа находится панель свойств, где показываются свойства объектов из панели проекта. По центру располагается рабочая область, где можно настраивать сценарий презентации (если выбрать
    Сценарий
    в панели проекта) и отображение графических элементов в презентации.
  3. Для создания презентации нам нужно добавить объекты метки и модели.
  4. Для добавления объекта метки выбираем в меню
    Презентация > Создать объект > Объект метки
    , в открывшемся диалоге справа расположены настройки создаваемого объекта. Выбираем маркерную технологию распознавания (о достоинствах и недостатках различных технологий см. в разделе Метки), и файл с паттерном
    ev_pattern.png
    (один из двух предложенных нами паттернов; о том, как создавать собственные паттерны меток читайте ниже).
  5. Добавляем объект модели:
    Презентация > Создать объект > Объект модели
    , в качестве ресурса модели выбираем файл
    ev_model.fbx
    . Также при создании необходимо выбрать объект метки, к которому будет привязана создаваемая модель. Для этого нажимаем на изображение и в открывшемся диалоге выбираем созданный на предыдущем шаге объект модели.
  6. После добавления открываются свойства объекта модели, где можно настроить как будет располагаться модель относительно метки. Масштаб и расположение могут быть подобраны в автоматическом режиме, для этого достаточно нажать на кнопку
    Автоматически
    .
  7. Теперь можно посмотреть что получилось. Выбираем в меню
    Файл > Предпросмотр
    . Запускается окно prEView, нажимаем кнопку
    Play
    и презентация запускается.
  8. Созданную презентацию можно сохранить как проект EV Studio (*.evproj), eva-пакет (
    Файл > Экспорт пакета
    ) и в дальнейшем просматривать в prEView или экспортировать исполняемый файл (
    Файл > Экспорт приложения
    ) (экспорт eva-пакета и приложения доступны тольно в версиях Standard и выше).

Что дальше:

Система взаимодействия

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

У каждого объекта взаимодействия есть

  • параметры,
  • события,
  • действия.

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

Событие – это извещение системы о том, что с объектом что-то произошло. Например, система определила, что в зоне видимости камеры появилась или исчезла метка. Или сработал поставленный на определенное время таймер, или закончилось проигрывание видео, или иное событие.

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

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

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

Ресурсы


Модель

model

FBX

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

Ниже описаны основные особенности применения FBX в текущей версии EV Toolbox.

Текстуры

На данный момент имеется возможность загружать текстуры на следующие параметры материала:

  • Diffuse Color Растровые изображения в форматах 8 Bits tif и jpg в RGB или Grayscale.
    Примечание: Если в tif есть альфа-канал, он работает как Opacity.
  • Self-Illumination
    Растровые изображения в форматах 8 Bits tif и jpg в RGB или Grayscale.
  • Opacity
    Растровые изображения в форматах 8 Bits tif и jpg только в Grayscale.
  • Reflection
    Растровые изображения в форматах 8 Bits tif и jpg в RGB или Grayscale.
    Рекомендуется использовать текстуры кратные 2 (128 X 128, 256 X 256, 512 X 512, 128 X 512 и так далее). Не используйте гаммакоррекцию при экспорте в FBX.

Анимация

Наряду с простыми трансформациями объектов поддерживается скелетная анимация и морфинг. Функция Bake Animation может быть полезна если к объектам в сцене применены специфические для используемого вами графического редактора контроллеры или ограничители анимации.

Примечание: Морфинг не работает совместно со скелетной анимацией.

Не поддерживается функция Point Cache File.

Изображение

image

Поддерживаются изображения в форматах PNG и JPEG.

Аудио

audio

В настоящее время поддерживается только формат vorbis (".ogg" или ".oga"). В дальнейшем планируется автоматическая конвертация из mp3, wav и других распространенных форматов.

Видео

video

В настоящее время поддерживается только формат theora (".ogv" или ".ogg"), проигрывается только видео без звука. В дальнейшем планируется поддержка видео со звуком и автоматическая конвертация из mpeg4, h263, h264, flv, quicktime, wmv и других форматов.

Метки

На данный момент поддерживаются две технологии трекинга:

  • Маркерная технология распознаёт только квадратные изображения в специальной рамке (см. подробнее о Маркерной технологии распознавания), однако она более надёжна и менее требовательна к вычислительным ресурсам компьютера.
  • Безмаркерная технология позволяет использовать изображения с произвольным соотношением сторон без рамки (в отличие от маркерных меток). Такая технология распознавания имеет некоторые требования к самому изображению (см. в разделе Безмаркерной технологии)

Маркерная технология распознавания

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

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

Файл с паттерном должен в точности содержать изображение внутренней части маркера, включая белые поля, но исключая шаблон (линии с точками). Изображение должно быть черным на белом фоне. Промежуточные оттенки серого допускаются при достаточном контрасте изображения по отношению к фону. В картинке не должно быть прозрачных или полупрозрачных пикселей. Для хранения изображений рекомендуются использовать формат PNG, также поддерживаются TIFF, JPG и BMP. Рекомендуется использование только чёрных и белых пикселей, соотношение сторон 1x1. Также необходимо отметить, что размер изображения будет автоматически приведён к 128x128 пикселей, а цвета изображения будут переведены в чёрный и белый цвета (без оттенков серого), что может повлиять на качество и, что гораздо важнее, контрастность изображения. Для того, чтобы избежать упомянутых проблем, рекомендуется использовать изображения, размер которых в точности равен 128x128 пикселей, содержащих только чёрные и белые пиксели.

Маркеры желательно печатать на твердой поверхности, чтобы исключить деформацию, из-за которой могут возникать проблемы с распознаванием. Для корретного определения ориентации паттерн не должен обладать симметрией при повороте на 90 или 180 градусов. На рисунке показаны примеры неправильного и правильного в этом отношении паттернов.

Паттерн, обладающий симметрией при повороте на 90 градусов (слева) и паттерн, не обладающий такой симметрией (справа).

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

Создание маркера

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

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

Создайте паттерн, вырезав в графическом редакторе линии шаблона из маркера. Сохраните файл в описанном выше формате. EV Toolbox может самостоятельно конвертировать изображение в нужный формат при условии что изображение не содержит линий шаблона. Конвертация происходит автоматически при добавлении маркера

Безмаркерная технология распознавания

Безмаркерные метки представляют собой изображения без каких-либо рамок. Рекомендуемый формат изображения - PNG без прозрачности, однако поддерживаются также JPG, TIFF и BMP, изображение может быть как чёрно-белым, так и цветным, а также может иметь произвольное соотношение сторон.

Основным требованием к изображению, как и в маркернгой технологии, является ассиметричность по отношению к повороту на 90 и 180 градусов. Из трёх изображений ниже крайнее левое почти симметрично относительно поворота на 180 градусов. Центральное изображение таким свойством не обладает и может быть использовано в качестве метки.


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

Объекты взаимодействия


Объект модели

model

Этот объект позволяет добавить в презентацию 3D модель.

Параметры

  • Положение модели на метки настраивается с помощью мыши в графическом окне. Выбирая справа из пунктов меню опции Перемещение (Translate), Вращение (Rotation) или Масштаб (Scale), можно настроить положение модели в пространстве и ее масштаб относительно метки.
  • Ресурс модели (Model Resource) - соответствующий объекту ресурс модели.
  • Объект метки (Marker Object) - метка, к которой будет привязана модель, т.е. положение модели в каждый момент времени будет совпадать с положением указанного объекта маркера.
  • Параметры привязки к метке: Показать при появлении метки (Show on Appearance), Перемещать вместе с меткой (Move with Marker) и Скрыть при изчезновении метки. Каждый из указанных параметров, если он отмечен, при старте презентации неявно создаёт три соответствующих соединения (о соединениях см. ниже).
  • Компоненты (Components) - компоненты модели. С помощью компонентов можно управлять видимостью различных частей модели. Для каждого компонента задается режим и список узлов модели. Если выбран режим all, то отображаются все узлы модели за исключением тех, которые заданы в списке. Если же задан режим none, то отображаются только заданные в списке узлы. С помощью действия switchComponent можно переключать компоненты по порядку, в котором они заданы.

События

  • onAnimationStart - происходит, когда запускается какая-то из анимаций (см. действие playAnimation).
  • onAnimationStop - происходит при остановке анимации (см. действие pauseAnimation).
  • onAnimationFinished - происходит при завершении проигрывания анимации.

Действия

  • show - начать отображать модель на экране.
  • hide - перестать отображать модель на экране.
  • setPosition(position) - проставить модели переданную позицию.
  • switchComponent - включить следующий компонент модели.
  • showComponent(component) - включить заданный компонент модели.
  • playAnimation(animation name, mode) - начать проигрывать анимацию, в качестве параметров указывается имя анимации (имена анимаций берутся из файла модели, либо генерируются автоматически. Дополнительно создаётся анимация "all", являющаяся смешением всех анимаций) и режим: Once (проиграть один раз), Swing (играть туда-обратно) или Loop (играть в цикле).
  • stopAnimation(animation name) - прекратить проигрывание анимации и вернуть модель в исходное положение. В качестве параметра указывается имя анимаци (об именах анимаций см. действие playAnimation). Если в качестве имени анимации установлено "all", будут остановлены все анимации. Таким образом, stopAnimation является синонимом одновременного вызова действий pauseAnimation и resetAnimation.
  • resetAnimation(animation name) - вернуть анимацию в исходное положение. В качестве параметра указывается имя анимаци (об именах анимаций см. действие playAnimation). Если в качестве имени анимации установлено "all", модель будет возвращена в исходное положение.
  • pauseAnimation(animation name) - прекратить проигрывание анимации. В качестве параметра указывается имя анимаци (об именах анимаций см. действие playAnimation). Если в качестве имени анимации установлено "all", будут остановлены все анимации.
  • setAnimationPlayMode(animation name, mode) - изменить режим проигрывания анимации "на лету". В качестве параметров указывается имя анимации и новый режим проигрывания (об именах анимаций и режимах проигрывания см. действие playAnimation). Например, если анимация проигрывалась в режиме Loop (играть в цикле), и выполнилось действие setAnimationPlayMode, установившее режим Once (играть один раз), то анимация доиграет до конца и остановится (при этом момент остановки можно "поймать" при помощи события onAnimationFinished).

Объект видео на метке

video_marker

Этот объект позволяет добавить в презентацию видео, привязанное к метке так же, как объект модели.

Параметры

  • Положение прямоугольника с видео на метке настраивается с помощью мыши в графическом окне. Выбирая справа из пунктов меню опции Перемещение (Translate), Вращение (Rotation) или Масштаб (Scale), можно настроить его положение в пространстве и масштаб относительно метки.
  • Ресурс видео (Model Resource) - соответствующий объекту ресурс видео.
  • Цикличность (Looping) - если отмечено, то видео после завершения будет начинаться с начала, при этом событие onFinish вызываться не будет.
  • Объект метки (Marker Object) - метка, к которой будет привязано видео, т.е. положение видео в каждый момент времени будет совпадать с положением указанного объекта маркера.
  • Параметры привязки к метке: Показать при появлении метки (Show on Appearance), Перемещать вместе с маркером (Move with Marker) и Скрыть при изчезновении маркера. Каждый из указанных параметров, если он отмечен, при старте презентации неявно создаёт три соответствующих соединения (о соединениях см. ниже).
  • Проиграть при появлении (Play on Show), Остановить при скрытии (Stop on Hide) запускают и останавливают видео при вызове действий show и hide соответственно.

События

  • onFinish - Завершение видео.

Действия

  • show - начать отображать модель на экране.
  • hide - перестать отображать модель на экране.
  • setPosition(position) - проставить модели переданную позицию.
  • play - проиграть видео с начала.
  • pause - приостановить видео.
  • resume - продолжить проигрывание видео с текущей позиции.
  • stop - остановить проигрывание видео и перемотать его на первый кадр.
  • setLooping - установить режим проигрывания видео (цикличный или нет). Полезно, когда видео играет в цикличном режиме, и при каких-то условиях необходимо дождаться окончания видео и выполнить некое действие.

Объект метки

marker

Объект для получения событий касательно конкретной метки.

Параметры

  • Технология распознавания и паттерн - выбор технологии распознавания и паттерна метки. Подробнее о технологиях распознавания и требованиях к паттернам см. о метках.
  • Время потери метки - время в секундах, которое должно пройти между событиями onLeft и onCompletelyLeft.
  • Физический размер метки - ширина реальной распечатанной метки. Данный параметр важен, если необходимо взаимодействие нескольких меток между собой (например, при использовании Объекта Дистанции

События

  • onShowed происходит, когда камера обнаруживает заданную метку.
  • onFrame(position) происходит каждый кадр отрисовки сцены (когда камера видит маркер), параметром передается текущее положение метки (если это положение проставить модели, то она будет отрисовываться поверх метки).
  • onLeft происходит, когда камера больше не обнаруживает метки на изображениях (если спустя небольшое время метка снова появится, то произойдет событие onBlinked, а событие onShowed не будет вызвано).
  • onCompletelyLeft происходит, когда метка продолжительное время не появляется на изображении с камеры.
  • onBlinked происходит, когда метка пропал на некоторое непродолжительное время (одна секунда) и сразу же появился.

Действия

нет

Объект презентации

presentation

В этом объекте собраны несколько полезных событий, которые используются в презентации.

Параметры

нет

События

  • onStart - событие приходит при запуске презентации. На это событие удобно выполнять такие действия объектов, как показать текст, запустить видео или аудио и так далее.
  • onFrame - событие приходит каждый кадр отрисовки сцены. Это событие можно использовать для постоянной проверки некоторого условия и выполнения некоторого действия, если условие не выполняется.
  • onMarkersActive - событие происходит при переходе системы в активное состояние (определяется хотя бы одна метка).
  • onMarkersInactive - событие происходит при переходе системы в неактивное состояние (не определяется ни одна метка).

Действия

нет

Объект текста

text

Объект текста можно использовать для отображения небольших объемов текстовой информации.

Параметры

  • Текст (Text) - текст, который будет отображаться на экране при запуске презентации. Этот текст можно изменить по ходу презентации с помощью действия setText.
  • Размер шрифта (Font Size), который используется для отображения текста
  • Расположение (Panel Alignment) - расположение панели с текстом, возможен вариант сверху (Top), по центру (Center) и снизу (Bottom).
  • Задний фон (Background), который является опциональным. Для заднего фона можно выбрать цвет, прозрачность и стиль (style), который может принимать значения Span и Fit. При значении Span задний фон растягивается от левого края экрана к правому, а при значении Fit отрисовывается только вокруг текста.
  • Слой (Layer), в котором отрисовывается текст.

События

нет

Действия

  • show - показать текст на экране.
  • hide - спрятать текст.
  • setText(text) - изменить текст на тот, что передан параметром.

Объект камеры

camera

С помощью этого объекта можно выводить изображение с камеры на экран.

Параметры

  • Отражать ли изображение с камеры по горизонтали.
  • Положение (Аlignment) - возможны варианты LeftTop, LeftBottom, RightTop, RightBottom - по углам экрана, а также Center - на весь экран.
  • Слой (Layer), в котором показывается изображение с камеры.

События

нет

Действия

  • show - показать на экране.
  • hide - скрыть.

Объект слайдшоу

slideshow

Объект для показа слайдшоу в презентации.

Параметры

  • Слайды (Slides) - список ресурсов изображений.
  • Интервал (Inverval) в секундах, через который показывается следующий слайд.
  • Стиль (Style), может быть Crop или Border. Этим параметром задается то, каким образом отображается слайд, если его соотношение сторон не совпадает с соотношением сторон экрана.
  • Слой (Layer), в котором отображается слайдшоу.

События

нет

Действия

  • play - начать проигрывать слайдшоу (при этом слайдшоу показывается на экране).
  • stop - остановить слайдшоу (при этом слайдшоу пропадает с экрана).
  • pause - приостановить слайдшоу.
  • unpause - продолжить слайдшоу.
  • show - показать слайдшоу на экране.
  • hide - скрыть слайдшоу с экрана.
  • nextSlide - переключить на следующий слайд.
  • previousSlide - переключить на предыдущий слайд.
  • firstSlide - включить первый слайд.

Объект аудио

audio

Объект для проигрывания аудио в презентации.

Параметры

  • Ресурс аудио (Audio Resource) - соответствующий объекту ресурс.
  • Зацикливание (Loop) - следует ли проигрывать аудио в цикле.
  • Громкость (Volume), 0.0 - нулевая громкость, 1.0 - максимальная.

События

  • onFinish - событие вызывается, когда аудио проигралось (и проигрывание стоит без цикла).

Действия

  • play - начать проигрывание.
  • stop - остановить проигрывание.
  • pause - приостановить проигрывание.
  • unpause - продолжить проигрывание.
  • setLooping(looping) - изменить настройку, следует ли проигрывать аудио в цикле.
  • setVolume(volume) - изменить громкость.

Объект видео

video

Объект для проигрывания видео в презентации.

Параметры

  • Ресурс видео (Video Resource) - соответствующий объекту ресурс.
  • Зацикливание (Loop) - следует ли проигрывать видео в цикле.
  • Стиль (Style) - режим Crop или Border. В режиме Crop если аспект видео и экрана презентации не совпадают, то видео обрезается. В режиме Border с боков добавляются полосы необходимого размера, чтобы подогнать результирующий размер видео с полосами под размер экрана (цвет полос и их прозрачность задаются).
  • Слой (Layer), в котором отображается видео.

События

  • onFinish - событие вызывается, когда видео проигралось (и проигрывание стоит без цикла).

Действия

  • play - начать проигрывать видео, при этом видео начинает отображаться на экране.
  • stop - остановить проигрывание, при этом видео исчезает с экрана.
  • setLooping(looping) - изменить настройку, следует ли проигрывать видео в цикле.

Объект таймера

timer

С помощью этого объекта можно отсрочить выполнение некоторых действий на определенное время.

Параметры

нет

События

  • onTimer - это событие происходит после действия setTimer через заданное в этом действии количество секунд.

Действия

  • setTimer(seconds) - поставить таймер на заданное в параметре число секунд. По истечении этого времени произойдет событие onTimer.

Объект состояния

state

С помощью этого объекта можно по ходу презентации хранить ее текущее состояние и в зависимости от этого совершать различные действия (используя для этого элемент условия в соединении).

Параметры

  • states - список состояний, объект может в каждый момент времени принимать только одно из них.
  • current state - начальное состояние объекта при запуске презентации.

События

  • onStateChanged(state) - событие извещает о том, что состояние объекта изменилось и передает текущее состояние как параметр.

Действия

  • setState(state) - проставить новое состояние объекту, состояние передается через параметр.

Объект дистанции

distance

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

Параметры

  • Один объект метки (One Marker Object) - первый объект метки.
  • Другой объект метки (Another Marker Object) - второй объект метки.
  • Пороговое расстояние (Threshold) - дистанция в метрах, которая используется для создания событий onNear и onFar.

События

  • onNear - событие приходит когда расстояние между центрами меток меньше заданной дистанции.
  • onFar - событие приходит когда расстояние между центрами меток больше заданной дистанции.

Действия

нет

Что добавится в EV Toolbox в дальнейшем

  • Импорт аудио и видео из распространенных форматов
  • Редактирование графа сцены
  • Редактор моделей
  • Постэффекты
  • Скриптовые возможности
  • Построение 2d интерфейса для проектов
  • Поддержка мобильных платформ