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

Сам я в этой тематике с 2016 года. На тот момент прошёл всего год с момента старта моей компании по разработке VR/AR-решений и, конечно же, я старался присутствовать на всех мероприятиях в качестве эксперта по этому направлению. Подтверждённых экспертов тогда было совсем немного, так что покатался я из города в город немало на мероприятиях разной тематики: от форума Минэкономразвития в Самарской области до до курсов переподготовки библиотекарей в Академии искусств в Барнауле.

В итоге на одном из мероприятий мы познакомились с одной чудесной девчулей из Второй новосибирской гимназии, которая пригласила меня на встречу с директором. В итоге мне внезапно предложили… вести курс по разработке VR/AR приложений для школоты. Для меня это был интересный вызов, но и вместе с тем очень сложный. Методики толком нет, Google и Oculus только-только привели свои SDK более менее в порядок без глобальных косяков, чтобы джуниор мог с ними совладать, я сам человек без педагогического опыта. Вообщем, мне пришлось действовать на ощупь и методом тыка.

В итоге это меня привело к написанию серии методичек по разработке космического симулятора в виртуальной реальности для Google Cardboard и по разработке анимационного мультфильма в виртуальной реальности на базе Oculus SDK для начинающих; по разработке RPG-игры в дополненной реальности для продолжающих; и по разработке стратегии с использованием OpenVR для углублённого изучения. Ну и как-то всё пошло-поехало, завертелось, в итоге сейчас преподаю в гимназии, Новосибирском государственном университете для магистрантов и в паре школ программирования.

При этом это всё занимает у меня примерно 12 часов в неделю, а в остальном я продолжаю трудится над проектами в своей компании. Снисходительно называю себя «училкой», ибо так и не могу принять себя, как состоявшегося педагога, несмотря на фактический трёхлетний опыт и достижения, вроде победы моего ученика в прошлом году на всероссийской олимпиаде НТИ по профилю виртуальной реальности.

Теперь, собственно, к главной мысли, о чём хотелось бы написать. Мой старт обучения пришёлся на учеников 6-7 классов. Я думал: «Для меня не составило труда научиться, так в чём же может быть загвоздка?». На старте обучить быстрой сборке с использованием ассетов, конечно, не составляет никакого труда разобраться. Стоит, конечно оговориться, что говорю я о разработке в редакторе Unity 3D, Однако, когда мы полезли вглубь, делая интерактивные сценарии на скриптах, я столкнулся, объясняя вычисление дистанции между векторами, с тем, что мои ученики ещё даже не прошли понятие квадратного корня (я был уверен, что его проходят ещё в классе третьем). Так что, параллельно с основным материалом, мне пришлось объяснять и основы математики. А видели бы вы глаза тех, кто уже изучил квадратные корни, и вдруг сталкивается с поворотами в 3D-пространстве с использованием мнимых чисел.

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

Начать с того, что AR/VR-разработка — это не какой-то отдельный конь в вакууме. На самом деле, это направление строится из трёх ключевых тем: изучение интерфейса редактора и базовое понимание основ работы, 3D-моделирование и разработка программного обеспечения. Поэтому в идеале курс может выдвигать требования для слушателей: знание геометрии, знание основ компьютерной графики, знание C#. Тогда основной задачей обучения будет всего лишь изучение интерфейса редактора и разбор Unity API. В этом отношении мне нравится этот год работы в Новосибирском государственном университете, потому что у меня есть отдельная группа ребят, которые обладают необходимыми компетенциями, и мы можем изучать по настоящему интересные и сложные вещи, вроде создания произвольной геометрии, программирования шейдеров и Entity Component System.

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

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

И тут есть опять же интересный вопрос: а какая основная задача курса? Например, на Олимпиаде НТИ основные задачи связаны непосредственно алгоритмами и классическими задачами информатики. Практических кейсов, связанных с AR/VR там практически нет. Это прямо боль. Едет человек, который отлично знает синтаксис языка, который знает нужные фреймворки и может сварганить небольшую игру в VR за сутки, а там ему дают задачи из классики информатики и единственно, что там от AR/VR — это камера.

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

Поэтому тут возникает необходимость в том, чтобы ещё и смежные предметы согласовывали программы между собой. Например, во многих школах сейчас, согласно тренду, идёт переключение с изучения Pascal на Python. Но Python и C# — это разные языки, как английский и иврит. Конечно, есть полиглоты, для которых это не проблема. Однако, на мой взгляд, в школах удобнее ввести разделение на языковые группы, чтобы дети могли изучать язык по желанию, как это сделано с иностранными языками. Вместо принципа «один язык для всех» можно предложить детям ветви развития. Например, хочешь в веб-разработку — php+javascript, хочешь в игровую разработку и создание AR/VR — изучай си и его производные, ничего не хочешь — иди изучай python, как крайний случай (шучу конечно).

И под конец в дело вступают ожидания по отдаче от курса. Например, заместитель директора фантазирует: «А теперь пусть они сделают бегемотов, пляшущих на по коридорам нашего учебного заведения?». Я думаю, знающие люди уже уловили проблему в этом техзадании: где взять контент, да ещё с чёткой заданной анимацией? Фактически в рамках вышеописанного курса мы готовим программистов, а не 3D-моделеров и аниматоров, Дайте им модель с анимацией с какого-нибудь Mixamo и дайте им модели окружения, тогда они сваяют из них какую-нибудь страшненькую сцену. Потому что они не художники и им глубоко накласть на красоту пользовательского интерфейса и цветовую гамму. У них всё будет работать и этого достаточно.

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

Поэтому на самом деле, если руководство образовательного заведения хочет похвастать комплексным решением в качестве итога работы своей образовательной программы, нужно создавать ещё отдельный курс для 3D-моделеров и аниматоров. В этом отношении я, конечно, рекомендую учебным заведениям выбрать Blender в качестве основной программы, поскольку она бесплатна. При разговоре об этом направлении многие директора школ сразу с гордостью заявляют, что у них уже есть направление 3D-моделирования, где дети создают оборудование. И каждый раз я пытаюсь донести мысль о том, что инженерное моделирование, архитектурное моделирование и игровое моделирование — это три глобально различающиеся направления со своими инструментами и методиками.

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



p.s. Методичками готов поделиться, но не за бесплатно. За бесплатно мне мама не разрешает. А вы же знаете этих еврейских мам.

Комментарии (14)


  1. trir
    28.11.2019 14:19

    VR можно делать и на html+js


    1. Emelian1917 Автор
      28.11.2019 15:25

      Как и AR, впрочем. Но поскольку, когда всё начиналось, то основной платформой был Unity 3D, да и сейчас свыше 60% приложений делается на ней, то мои отношения исторически сложилось с ней. Конечно сейчас уже могу сделать что-то и с использованием three.js, например, но, на мой взгляд, нет комплексной платформы, позволяющую также легко работать с компьютерной графикой без всяких заморочек. Поэтому в качестве основного инструмента разработки выбираю Unity 3D. Кстати говоря, unity-проект в том числе можно сбилдить как раз для веб-платформы.


      1. trir
        28.11.2019 15:28

        Есть a-frame, можно делать простые вещи. Глючный конечно, но зато прикольно делать VR на одном html'е


  1. LibrarianOok
    28.11.2019 15:34

    [пересчитывает шекели] Почём методички? Огласите весь список пожалуйста.


    1. Emelian1917 Автор
      28.11.2019 16:23

      Там комплект из методичек. Первые две по 700 руб, следующие две — 1200 руб. Просто вопрос в уровне. Если человек ни бэ, ни мэ, то первая и вторая вводят в самые основы, если человек хочет глубже узнать c#, применительно к Unity API, то подойдёт третья, а если интересно более глубокое изучение графики с программированием шейдеров или управление множеством объектом с использованием ECS, то четвёртая. Поэтому кому-то не нужны все, а только одна из них.


  1. Sklott
    28.11.2019 15:47
    -1

    Вот только в школе еще не хватает насаживать C#. Уж лучше Python. Я не против если C# кто-то будет изучать по желанию, но пихать его в обязаловку вместо Pascal/Python на мой взгляд перебор.


    1. Emelian1917 Автор
      28.11.2019 16:21

      Об этом я и пишу ведь. Пусть дети выбирают то, что по душе, непосредственно близкое к практике их работы.


  1. saag
    28.11.2019 16:26

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


    1. janvarev
      28.11.2019 16:56

      Пожалуйста, не натягивайте базис на тезис.


    1. Sklott
      29.11.2019 09:15

      Да ну на! Наоборот!!! Ребенок должен что-то написать и сразу увидеть результат, а не выполнять кучу непонятных (для него) шагов чтобы что-то получилось.


  1. DReeborn
    29.11.2019 06:46

    VR/AR это не тот стек и не та технология чтобы втягивать школьников в ИТ. Т.к. и так 80% поступающих на программиста идут с целью «игрульки делать», да даже я таким был.
    Суть проблемы, что такие люди сталкиваясь с реальностью вышмата и алгоритмов отлетают пачками на первых курсах, так как изначальное представление о ИТ индустрии не полноценное.

    VR/AR как часть общего курса была бы шикарна. Но как корень и основа курса она так же создаст неверное представление о индустрии. Я бы вводил больше информации о индустрии: о профессиях, о направлениях, о том что не вся индустрия ИТ это программирование. Школьникам надо показывать, что их ждёт в этой профессии.

    Школа должна давать основные универсальные знания и показывать, чем можно занять себя в этом бренном мире. Дабы школьники понимали что им нравится, что они умеют лучше всего и чем они хотели бы заниматься. А геймдев с AR/VR очень специфичная и узкая область, при этом ещё не окрепшая.


    1. Emelian1917 Автор
      29.11.2019 07:06

      Образование через геймификацию и даже организация бизнес-процессов через геймификацию уже признано успешной методикой. Совершенно согласен с тем, что школа должна давать универсальные знания, но для меня всё моё обучение было построено на вопросе: «Зачем это нужно?». Ответ на этот вопрос не часто удаётся уместить в практику учебной программы по общеобразовательным предметам. Поэтому факультативные занятия с практическими проектами, куда приходят желающие, позволяют обучающимся приобрести практические навыки с применением знаний общеобразовательной программы и дают понимание зачем нужны знания и как их применять. И таким образом, я также согласен с тем, что VR/AR не должен быть корнем и основой курса, а лишь альтернативной частью общей программы.

      И действительно на факультативе по игровой VR/AR разработке отсеиваются 70%. Первая причина — это узкая направленность факультатива на разработку без альтернативного направления для художников по созданию контента. Вторая причина действительно в том, что ожидания не соответствуют действительности. Некоторые приходят делать игры, а сталкиваются с векторными операциями и потихоньку сливаются. Другой вопрос, что есть и иная сторона: приходят ребята, которые никак не связывали себя с программированием, и они приходят именно для создания игр. И через разработку игры им становится интересно программирование, и они дальше сильнее погружаются в него. У меня есть яркие примеры, когда парень после курса пошёл учить си, потому что ему стал интересен базис и стал просить задач больше связанных не с играми непосредственно, а с алгоритмическими задачами. Поэтому этот факультатив очень хороший способ привлечь детей к программированию через игру, как в случае с тем же скретчем.


  1. QueGonJinn
    30.11.2019 05:24

    Добрый вечер, а как с вами связаться для приобретения методички?


    1. Emelian1917 Автор
      30.11.2019 05:25

      Пишите в личку, например, я скину контакты.