Изометрические упражнения: как я превратил шесть поз в браузерные испытания
Мне хотелось сделать фитнес-игру почти без игровых правил. Выбираешь позу. Принимаешь её. Держишься, сколько сможешь.
Идея казалась проще боксёрской игры или погони за динозавром. Но это было не так. Таймер полезен, только если браузер отличает настоящее удержание от недоделанной позы и от тела, которое ушло из кадра.
Так появилась SlayFit Exercise Holds: набор из шести изометрических упражнений, которые выполняются перед веб-камерой. Видео остаётся в браузере. Проверки строятся на точках позы, а часы идут, только пока выбранная поза соблюдена.
Почему удержание стало игрой
Большинство игр просят игрока двигаться без остановки. Удержание переворачивает эту логику. Тело должно оставаться под контролем, но экран всё равно обязан объяснять каждую секунду, что происходит.
Результатом я сделал время. Так сразу появляется цель без монет, врагов и выдуманной задачи. Первая попытка задаёт личную планку. У следующей один понятный вопрос: могу ли я продержаться дольше?
Дизайн намеренно скромный. SlayFit не оценивает здоровье, не ставит диагнозов по движению и не заверяет рекорды. Он достаточно хорошо проверяет видимую геометрию, чтобы вести лёгкое браузерное испытание.
Шести позам нужны шесть разных правил
В набор входят поза стула, поза дерева, стойка на одной ноге, глубокий присед, поза воина II и планка. У них общий таймер, но не общий универсальный детектор.
Для позы стула нужны согнутые колени и прямой корпус. Для позы дерева нужна поднятая стопа, прижатая к другой ноге. Стойка на одной ноге выглядит похоже, но поднятая стопа должна оставаться свободной. В позе воина II нужны широкая стойка, одно согнутое колено и руки примерно на уровне плеч.
Планка снова другая. Её снимают сбоку, чтобы браузер мог сравнить линию плеча, бедра и лодыжки. Выбор камеры тут важен не меньше, чем пороги углов. Вид спереди не передаёт такую форму надёжно.
Экран подготовки это часть детектора
Самым полезным исправлением стал не очередной математический порог, а более понятные подсказки по кадру.
Перед попыткой каждое испытание говорит игроку, куда повернуться, примерно как далеко встать и какие суставы должны оставаться видимыми. Позе стула можно обойтись без стоп в кадре, потому что основную информацию несут колени и верх тела. Для позы дерева нужны ноги. Для планки камеру ставят низко и встают боком.
Силуэт позы и рамка «встань сюда» делают эти инструкции наглядными. Так меньше неудачных попыток, когда хорошая поза просто оказалась не в той части кадра.
Я заставил часы ждать осознанной позы
Одного совпавшего кадра недостаточно. Человек может пройти через нужную геометрию, пока готовится, а модель позы на миг может ошибиться в положении сустава.
Игра дожидается устойчивого допустимого состояния и только потом начинает попытку. Во время удержания она продолжает проверять важные суставы. Если тело выходит из допустимой формы, подсказка называет, что изменилось, а не молча засчитывает время.
В этом и состоит главная дизайнерская задача изометрических упражнений на удержание под управлением камеры. Таймер должен быть достаточно строгим, чтобы что-то значить, и достаточно терпимым, чтобы переживать обычный шум в определении точек. Мне лучше объяснить, почему часы остановились, чем прятать это решение за щедрым результатом.
Подсказка должна описывать одно исправление за раз
Необработанный детектор может выдать список невыполненных условий. Для отладки это полезно, а для игры ужасно. Если колени, бёдра и руки уплывают одновременно, игрок не может исправлять три инструкции, уже находясь в напряжении.
Интерфейс выбирает самое полезное сейчас исправление. Он может попросить согнуться глубже, выровнять руки, выпрямить линию тела или лучше показаться камере. Сообщение короткое, потому что игрок должен прочитать его, не выходя из позы.
Именно этот цикл подсказок превращает отслеживание позы в игру. Камера читает форму. Экран возвращает одно исправление. Игрок подстраивается. Часы подтверждают, что исправление сработало.
Результат принадлежит игроку, а не веб-камере
Вся обработка позы происходит локально в браузере. Для работы детектора видео с камеры загружать не нужно. Отправить можно только готовый результат, и только если игрок сам решил сохранить завершённую попытку.
К тому же я не преувеличиваю значение результата. Время в SlayFit это игровой итог, а не официальная попытка поставить рекорд. Ссылки на рекорды на страницах поз дают контекст, но у них могут быть совсем другие правила, наблюдение и условия, чем у браузерной сессии дома.
Чему я научился, делая неподвижность
- Простое правило даёт хорошую игру, только если обратная связь так же проста.
- Положение камеры это часть механики, а не строчка технической настройки.
- Упражнения, которые выглядят похоже, всё равно требуют отдельного описания позы.
- Устойчивый старт не даёт случайным кадрам превратиться в ложные попытки.
- Честные часы на паузе лучше щедрой цифры, которой никто не верит.
- О приватности проще рассказать, когда видео не покидает устройство.
Попробуй одну позу и поставь планку
Чтобы понять игру, длинная программа не нужна. Выбери одну позу, освободи место для камеры и сделай одну спокойную попытку. Это первое время даст смысл следующему раунду.
Играй в SlayFit Exercise Holds бесплатно в браузере. Начни с позы стула, если хочешь испытание лицом к камере, с позы дерева, если хочешь баланс, или с планки, если можешь безопасно поставить камеру у пола.
Бесплатно · Без загрузки · Приватное отслеживание позы в браузере · Шесть испытаний на удержание.
Ещё о дизайне игр с управлением телом читай в как я превратил бег на месте в управление динозавром или в как Keeper использует отслеживание всего тела.