Передаю слово автору.
Введение
Всем привет! Меня зовут Максим Еремин и я являюсь студентом МАИ и студентом-партнером Microsoft. Хотел бы рассказать о своем VR-ном проекте и о том, как обычная университетская поделка, выполненная для конкурса, может стать стартапом.
Начну с малого. О конкурсе Imagine Cup я узнал от своего преподавателя, Александра Поповкина, в начале второго курса, который тоже являлся MSP на тот момент. В качестве темы мы сразу выбрали изучение истории с помощью VR, поскольку тогда категория VR еще имела достаточную популярность и наш проект выглядел оригинально на фоне других. В проекте участвовал мой одногруппник Сергей Посохин и приглашенный дизайнер Дарья Соколова. С составом нашей команды и с презентацией на самом конкурсе вы сможете ознакомиться здесь.
Разработка проекта
Основную часть нашего проекта мы разрабатывали на Unity под мобильную платформу. Концепция заключалась в том, что пользователь, будь то студент, ученик школы, посетитель музея или исторического места, надевает VR шлем с телефоном, заранее подключив по Bluetooth джойстик VR-Park, и начинает бродить по виртуальному историческому месту, находясь в гуще события.
В нашем проекте мы реализовали реконструкцию сражения на Бородинском поле. Поскольку проект задумывался как образовательный, то, помимо визуального наполнения, было создано звуковое сопровождение для приложения, которое помогало пользователю освоиться в виртуальной реальности.
Дизайн проекта
Карта боя и все модели были реализованы нашим дизайнером Дарьей Соколовой. Одежда всех солдат была взята из справочника-энциклопедии о Великой отечественной войне 1812 года. Карта была реализована совместно с историком из Первого московского образовательного комплекса. Модели разрабатывались в 3DMax.
Звуковое сопровождение
В нашем проекте очень много интерактива. Помимо обычного скитания по Бородинскому полю, можно подойти к солдату, пушке или к Кутузову и прослушать краткую историческую справку об объекте наблюдения. Причем не только на русском, но и на английском языке. С точки зрения программирования, это было несложно реализовать. Понадобилось лишь записать звук с помощью карты и заставить запускаться по триггеру. Триггером служит Collider объекта, к которому мы виртуально приближаемся. Соответственно, пересечение этого коллайдера и прозрачного «луча», который идет от «нашего» «носа», вызывает воспроизведение звука.
void OnTriggerEnter(Collider other)
{
if (other.gameObject.name == "Kutuzov")
{
zone.SetActive(false);
if (Rus_Language == true)
{
Audio.clip = rus_kutuzov;
} else
{
Audio.clip = eng_kutuzov;
}
Audio.Play();
}
}
И примерно такой код выполнялся каждый раз для каждого объекта, с которым можно взаимодействовать.
Режим экскурсии
В приложении существует два режима – экскурсия и свободный режим. Режим экскурсии позволяет пользователю отложить джойстик и насладиться интересной поездкой на лошади в 1812 году во время Бородинского сражения. Режим автопрогулки заключается в передвижении пользователя. На C# это выглядит примерно так:
public Transform[] wayPointList;
public int currentWayPoint = 0;
Transform targetWayPoint;
public GameObject Horse;
public float speed = 0.02f;
void Start()
{
wayPointList[0] = GameObject.Find("Point1").transform;
wayPointList[1] = GameObject.Find("Point2").transform;
wayPointList[2] = GameObject.Find("Point3").transform;
targetWayPoint = wayPointList[0];
Horse = GameObject.Find("Horse");
}
// Update is called once per frame
void Update()
{
// check if we have somewere to walk
if (currentWayPoint < this.wayPointList.Length)
{
if (targetWayPoint != null)
walk();
}
}
void walk()
{
// rotate towards the target
transform.forward = Vector3.RotateTowards(transform.forward, targetWayPoint.position - transform.position, speed, 0.0f);
// move towards the target
transform.position = Vector3.MoveTowards(transform.position, targetWayPoint.position, speed);
if (transform.position == targetWayPoint.position)
{
targetWayPoint.gameObject.SetActive(false);
currentWayPoint++;
targetWayPoint = wayPointList[currentWayPoint];
if (currentWayPoint == 1)
{
Horse.transform.Rotate(0, 0, -90);
}
}
}
Azure Mobile Engagement with Unity
Ключевую задачу в нашем проекте выполняет сервис Azure Mobile Engagement, который помогает нам не терять пользователей. Суть заключается в сборе статистики посещения зон, на которые была поделена вся карта. Для проекта мы реализовали три зоны – лагерь Кутузова, артиллерийский полк и Разведотряд пехотинцев. В облако отправлялась статистика о том, сколько раз пользователь посетил эти зоны и на основе этого, каждое новое появление пользователя в приложении сопровождалось спавном его в той точке, где пользователю было наиболее интересно находиться.
Для реализации этой идеи мы использовали специальный пакет Mobile Engagement для Unity.
EngagementAgent.Initialize();
EngagementAgent.StartActivity("Borodino");
EngagementAgent.SendSessionEvent("sessionEvent");
void OnTriggerEnter(Collider other)
{
if (other.gameObject.name == "Warning_Zone_1")
{
EngagementAgent.SendEvent("Russian_Artillery_Battarey_1");
}
else if (other.gameObject.name == "Warning_Zone_2")
{
EngagementAgent.SendEvent("Kutusov's_Place");
}
}
Также мы реализовали push-уведомления, которые рассылаются пользователям раз в день, чтобы они снова начали пользоваться нашим приложением.
Апробация
Помимо технической реализации проекта, мы смогли апробировать наш проект в школе 1245. Там мы дали детям попробовать изучать историю Отечественной войны 1812 года с помощью очков виртуальной реальности.
Итоги
Работа над этим проектом помогла нам освоить Unity и разобраться в работе Mobile Engagement, потому что на тот момент для нас это был первый опыт создания проекта для такого конкурса, как Imagine Cup. На конкурсе мы получили две награды – второе место на региональном этапе и спецприз «Выбор зрителей» на всероссийском этапе конкурса.
Помимо этого, проект сейчас не стоит на месте! Мы не стали останавливаться и продолжили развивать тему VR в образовании. Сейчас проект переименован в VR-Education. В нем уже есть два направления – история и физика. Для истории послужил фундамент VR-History, а для физики – проект, созданный на хакатоне EdHack в mail.ru. Проект прошел заочную акселерацию во ФРИИ при поддержке IT-центра МАИ, где мы смогли улучшить нашу бизнес-модель и начинаем внедрение в школы нашего проекта.
Немного о команде
Обучающий исторический VR-проект, направленный на изучение истории школьниками, студентами и просто любителями истории. Проект поможет лучше запомнить исторические моменты и сражения, находясь в гуще событий, и позволит прослушать информацию об объектах и личностях, находящихся на локации.
Кстати, тут вы можете посмотреть мини-интервью с ребятами.
Imagine Cup 2018
Крупнейший международный технологический конкурс от Microsoft, в котором вы можете побороться за приз в $100 000. Для этого нужно собрать команду до 3 человек, придумать и реализовать идею проекта в категории AI, Big Data, Mixed Reality и презентовать её нам.
Всю последнюю информацию можно найти в группе ВКонтакте и в канале Telegram.
Регистрируйтесь!
Вы из России: aka.ms/ImagineCup2018_ru
Вы из Казахстана: aka.ms/ImagineCup2018_kz
Вы из Беларуси: aka.ms/ImagineCup2018_by
Вы из другой страны: aka.ms/ImagineCup2018_ot
Комментариев нет:
Отправить комментарий