Напишите свой собственный код JavaScript в Lens Studio, чтобы улучшить интерактивность Lens.

Функциональность Lens Studio можно расширить, написав собственный код на JavaScript. Например, вы можете написать свой собственный код, чтобы нацеливаться на различные события в вашем объективе и запускать определенные действия.

Lens Studio уже работает без специального кода, но возможность использовать собственный код на платформе просто потрясающая. Без дальнейших церемоний, давайте прыгнем прямо и посмотрим, как это можно сделать.

События с открытым и закрытым ртом

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

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

Затем создайте сценарий на панели ресурсов, как показано ниже.

Теперь перетащите этот сценарий в созданный вами объект сцены. Убедитесь, что объект был выбран. Как только вы это сделаете, он появится на панели инспектора справа — вы можете перетащить туда скрипт.

Дважды щелкните скрипт, чтобы открыть его для редактирования в Lens Studio. Вы также можете отредактировать скрипт в любом другом редакторе кода по вашему выбору.

Затем добавьте эмодзи в проект, чтобы он отображался поверх изображения человека. Вы можете сделать это, используя Legacy Billboard. Также можно использовать любой другой компонент Mesh Visual. Как только он будет на месте, перетащите смайлик на панель ресурсов вашего проекта. После этого перетащите это изображение в поле «Текстура» устаревшего спрайта.

Вы также можете использовать 2D-вид, чтобы расположить эмодзи по своему вкусу, перетаскивая, регулируя его масштаб и т. д.

Написание сценария

Во-первых, вам нужно получить доступ к смайликам. Поскольку это объект сцены, для доступа к нему можно использовать декоратор `@input`.

Помните, что вы добавили изображение эмодзи в Legacy Sprite. Теперь вам нужно вернуться к объекту сцены, который вы создали. Обратите внимание, что был создан вход, который позволяет вам добавить этот устаревший спрайт. Используйте ввод, чтобы добавить Legacy Sprite.

Когда этот скрипт инициализируется, отключите видимость эмодзи. Это потому, что цель состоит в том, чтобы включить его, когда кто-то открывает рот.

Далее давайте напишем код, который активирует эмодзи, когда человек открывает рот. Это делается путем доступа к событию открытия рта и привязки к нему функции. В этой функции мы получаем доступ к эмодзи через script.emoji и включаем его.

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

Конечно, есть много более сложных видов JavaScript, которые вы можете написать для интерактивности Lens, но это простое и понятное место для начала.

Реализация тап-событий

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

Первое изменение заключается в том, что вместо события рта используется событие касания. Наконец, проверьте, включен ли смайлик, и отключите его, и наоборот. Вот фрагмент кода JS, который позволит это сделать:

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



Вывод

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

Примечание редактора. Heartbeat — это интернет-издание и сообщество, созданное участниками и посвященное предоставлению лучших образовательных ресурсов для специалистов по науке о данных, машинному обучению и глубокому обучению. Мы стремимся поддерживать и вдохновлять разработчиков и инженеров из всех слоев общества.

Независимая от редакции, Heartbeat спонсируется и публикуется Comet, платформой MLOps, которая позволяет специалистам по данным и командам машинного обучения отслеживать, сравнивать, объяснять и оптимизировать свои эксперименты. Мы платим нашим авторам и не продаем рекламу.

Если вы хотите внести свой вклад, перейдите к нашему призыву к участию. Вы также можете подписаться на получение наших еженедельных информационных бюллетеней (Еженедельник глубокого обучения и Информационный бюллетень Comet), присоединиться к нам в Slack и следить за Comet в Twitter и LinkedIn для получения ресурсов, событий и многое другое, что поможет вам быстрее создавать лучшие модели машинного обучения.