← Все справочники механик

Каталог механик

1Указание и управлениеОписание и пример ↗Положение и движение пальца задают выбор цели или непрерывное управление указателем; приложение может видеть только обработанный курсор.10

Варианты и применение

  • Относительное перемещение. Жест: Двигать палец, смещая указатель относительно текущей позиции. В интерфейсе: Навигация, точное наведение на элементы. В игре: Прицел, курсор приключения, выбор юнита. Уровень доступа: Курсор и кнопки; Приложение получает обычный указатель и кнопки. Физические пальцы и их отрыв при этом могут быть ему неизвестны. Условия: Приложение обычно получает уже обработанное перемещение курсора, а не миллиметры пути пальца.
  • Абсолютное позиционирование. Жест: Сопоставить положение на панели положению в рабочей области. В интерфейсе: Пульт для холста, переход в определённую точку карты. В игре: Прямое размещение ракетки или маркера. Уровень доступа: Отдельные контакты; Нужен доступ к координатам, фазам и идентификаторам контактов. Наличие multitouch у устройства этого не гарантирует. Условия: Стандартный курсор ноутбука работает иначе. Нужны координаты поверхности или специальный режим драйвера.
  • Управление скоростью от центра. Жест: Отклонение от фиксированного центра задаёт направление и скорость. В интерфейсе: Непрерывный панорамный обзор или прокрутка. В игре: Виртуальный стик движения, газ и руль. Уровень доступа: Отдельные контакты; Нужен доступ к координатам, фазам и идентификаторам контактов. Наличие multitouch у устройства этого не гарантирует. Условия: Это программное отображение координат; нужен центр, нейтральная зона и понятный способ остановки.
  • Плавающий виртуальный стик. Жест: Первое касание задаёт центр, дальнейшее смещение задаёт отклонение. В интерфейсе: Относительный пульт камеры без поиска центра поверхности. В игре: Управление персонажем с любой стартовой точки. Уровень доступа: Отдельные контакты; Нужен доступ к координатам, фазам и идентификаторам контактов. Наличие multitouch у устройства этого не гарантирует. Условия: Положение пальца и начало контакта должны быть доступны приложению.
  • Перехват с перестановкой пальца. Жест: Поднять палец, переставить его и продолжить относительное движение. В интерфейсе: Пересечь большой экран на маленькой панели. В игре: Продолжать разворот камеры несколькими проходами. Уровень доступа: Курсор и кнопки; Приложение получает обычный указатель и кнопки. Физические пальцы и их отрыв при этом могут быть ему неизвестны. Условия: ОС делает это для обычного курсора; приложение не обязательно видит сам отрыв.
  • Касание как сцепление. Жест: Передавать движение только пока есть контакт; отрыв отключает канал. В интерфейсе: Временная регулировка без изменения значения при перестановке. В игре: Камера или инструмент активны только при касании. Уровень доступа: Отдельные контакты; Нужен доступ к координатам, фазам и идентификаторам контактов. Наличие multitouch у устройства этого не гарантирует. Условия: Остановка указателя не доказывает, что палец поднят. Нужна фаза контакта.
  • Грубая и точная регулировка. Жест: Менять коэффициент движения по модификатору или явному режиму. В интерфейсе: Точная настройка ползунка, монтаж, CAD. В игре: Прицеливание с пониженной чувствительностью. Уровень доступа: Курсор и кнопки; Приложение получает обычный указатель и кнопки. Физические пальцы и их отрыв при этом могут быть ему неизвестны. Условия: По скорости курсора нельзя надёжно восстановить физическую скорость пальца. Режим должен быть предсказуем.
  • Ограничение одной осью. Жест: После начала движения зафиксировать горизонталь или вертикаль. В интерфейсе: Перенос строго по оси, выравнивание, регулировка числа. В игре: Полоса движения, рычаг, рельсовое прицеливание. Уровень доступа: Курсор и кнопки; Приложение получает обычный указатель и кнопки. Физические пальцы и их отрыв при этом могут быть ему неизвестны. Условия: Это логика приложения; полезен явный индикатор выбранной оси.
  • Привязка к целям. Жест: Подводить указатель к сетке, узлам или соседним объектам. В интерфейсе: Стыковка блоков, схемы, редактирование. В игре: Сборка пазла, выбор маленьких интерактивных объектов. Уровень доступа: Курсор и кнопки; Приложение получает обычный указатель и кнопки. Физические пальцы и их отрыв при этом могут быть ему неизвестны. Условия: Привязка не является жестом сенсора. Слишком сильное притяжение мешает свободному движению.
  • Выбор задержкой курсора. Жест: Оставить курсор на цели на заданное время. В интерфейсе: Подсказка, предпросмотр, активация без клика. В игре: Сканирование объекта, фиксация цели взглядоподобным указателем. Уровень доступа: Курсор и кнопки; Приложение получает обычный указатель и кнопки. Физические пальцы и их отрыв при этом могут быть ему неизвестны. Условия: Это экранный hover. Датчик зависания пальца над панелью не требуется и не подразумевается.
2Касания и кликиОписание и пример ↗Короткие контакты и нажатия вызывают дискретные команды с учётом количества, расположения и контекста касаний.10

Варианты и применение

  • Одиночный тап. Жест: Коротко коснуться панели и убрать палец. В интерфейсе: Выбор, подтверждение, установка курсора. В игре: Взаимодействие с предметом, одиночное действие. Уровень доступа: Курсор и кнопки; Приложение получает обычный указатель и кнопки. Физические пальцы и их отрыв при этом могут быть ему неизвестны. Условия: Tap-to-click должен быть включён. Приложение часто видит обычный клик и не знает, что это тап.
  • Нажатие с кликом. Жест: Продавить поверхность или нажать отдельную кнопку. В интерфейсе: Активация и начало перетаскивания. В игре: Выстрел, подтверждение команды. Уровень доступа: Курсор и кнопки; Приложение получает обычный указатель и кнопки. Физические пальцы и их отрыв при этом могут быть ему неизвестны. Условия: Механический или тактильно имитированный клик не означает доступ к аналоговой силе.
  • Вторичный клик. Жест: Тап двумя пальцами, клик в углу либо отдельной правой кнопкой. В интерфейсе: Контекстное меню, дополнительные команды. В игре: Осмотр предмета, альтернативное действие. Уровень доступа: Курсор и кнопки; Приложение получает обычный указатель и кнопки. Физические пальцы и их отрыв при этом могут быть ему неизвестны. Условия: Конкретный физический жест выбирается настройками ОС; приложению обычно достаточно secondary click.
  • Двойной тап или клик. Жест: Два быстрых нажатия в одной области. В интерфейсе: Открытие, выбор слова, увеличение по контексту. В игре: Быстрое перемещение, команда группе. Уровень доступа: Курсор и кнопки; Приложение получает обычный указатель и кнопки. Физические пальцы и их отрыв при этом могут быть ему неизвестны. Условия: Согласовать временное окно с настройками ОС и не ломать одиночный клик.
  • Тройной и многократный клик. Жест: Серия кликов с подсчётом количества. В интерфейсе: Выделение строки или абзаца по правилам редактора. В игре: Команда по числу нажатий, простая последовательность. Уровень доступа: Курсор и кнопки; Приложение получает обычный указатель и кнопки. Физические пальцы и их отрыв при этом могут быть ему неизвестны. Условия: Смысл тройного клика зависит от приложения. Чем больше нажатий, тем выше риск ошибки.
  • Двойной тап двумя пальцами. Жест: Дважды синхронно коснуться двумя пальцами. В интерфейсе: Умный масштаб: приблизить содержимое и вернуть обзор. В игре: Переключение между обзором поля и локальной сценой. Уровень доступа: Готовый жест; Нужен жест, передаваемый ОС или фреймворком: прокрутка, масштабирование, поворот, swipe или hold. Набор различается. Условия: Smart Zoom есть в macOS; универсального межплатформенного события для этого действия нет.
  • Ритмические нажатия. Жест: Учитывать темп и интервалы серии тапов или кликов. В интерфейсе: Tap tempo, ввод ритма, обучение. В игре: Ритм-игра, музыкальный замок, повторение сигнала. Уровень доступа: Курсор и кнопки; Приложение получает обычный указатель и кнопки. Физические пальцы и их отрыв при этом могут быть ему неизвестны. Условия: Проверять реальную задержку ввода; не считать пользовательский двойной клик отдельным жестом без причины.
  • Тап тремя пальцами. Жест: Короткое одновременное касание тремя пальцами. В интерфейсе: Команда второго уровня, поиск или обзор. В игре: Пауза или дополнительная способность в специальном режиме. Уровень доступа: Отдельные контакты; Нужен доступ к координатам, фазам и идентификаторам контактов. Наличие multitouch у устройства этого не гарантирует. Условия: Часто назначен системной функции. Нужны доступный API и проверка конфликтов.
  • Тап четырьмя и более пальцами. Жест: Одновременное касание несколькими пальцами. В интерфейсе: Глобальная команда или смена рабочего контекста. В игре: Редкая команда, доступная после обучения. Уровень доступа: Отдельные контакты; Нужен доступ к координатам, фазам и идентификаторам контактов. Наличие multitouch у устройства этого не гарантирует. Условия: Число отслеживаемых контактов и системные назначения различаются; не делать обязательным управлением.
  • Тап в физической зоне. Жест: Коснуться определённого участка самой панели. В интерфейсе: Невидимая панель быстрых команд с экранными подсказками. В игре: Удар по сектору, выбор способности или ноты. Уровень доступа: Отдельные контакты; Нужен доступ к координатам, фазам и идентификаторам контактов. Наличие multitouch у устройства этого не гарантирует. Условия: Позиция экранного курсора не сообщает, где палец коснулся физической панели.
3Удержание и отпусканиеОписание и пример ↗Длительность контакта и момент его завершения управляют зарядом, временным режимом или подтверждением действия.10

Варианты и применение

  • Удержание кнопки. Жест: Не отпускать клик, пока выполняется действие. В интерфейсе: Временный инструмент, просмотр, непрерывное действие. В игре: Автоогонь, блок, работа инструментом. Уровень доступа: Курсор и кнопки; Приложение получает обычный указатель и кнопки. Физические пальцы и их отрыв при этом могут быть ему неизвестны. Условия: Нужен выход при потере фокуса, отмене или отпускании за пределами элемента.
  • Удержание контакта без клика. Жест: Держать палец на поверхности, не продавливая её. В интерфейсе: Временный режим или предпросмотр по касанию. В игре: Касание включает щит или удерживает объект. Уровень доступа: Отдельные контакты; Нужен доступ к координатам, фазам и идентификаторам контактов. Наличие multitouch у устройства этого не гарантирует. Условия: Неподвижный курсор не равен неподвижному контакту; обычных mouse-событий недостаточно.
  • Долгое нажатие. Жест: Запускать команду после временного порога удерживаемого клика. В интерфейсе: Контекстная команда, защищённое подтверждение. В игре: Взлом, ремонт, взаимодействие с механизмом. Уровень доступа: Курсор и кнопки; Приложение получает обычный указатель и кнопки. Физические пальцы и их отрыв при этом могут быть ему неизвестны. Условия: Нужны индикатор прогресса и отмена при движении. Для удержания без клика нужен T.
  • Автоповтор при удержании. Жест: После задержки повторять команду через интервалы. В интерфейсе: Изменение значения, листание, набор одинаковых элементов. В игре: Серийная постройка, очередь команд. Уровень доступа: Курсор и кнопки; Приложение получает обычный указатель и кнопки. Физические пальцы и их отрыв при этом могут быть ему неизвестны. Условия: Пределы и ускорение повтора задаёт приложение.
  • Накопление по времени. Жест: Длительность удержания увеличивает выбранную величину. В интерфейсе: Регулировка интенсивности при отсутствии датчика силы. В игре: Заряд выстрела, сила прыжка или броска. Уровень доступа: Курсор и кнопки; Приложение получает обычный указатель и кнопки. Физические пальцы и их отрыв при этом могут быть ему неизвестны. Условия: Длительность и физическая сила нажатия являются разными каналами.
  • Действие на отпускании. Жест: Подтверждать команду при снятии удерживаемой кнопки. В интерфейсе: Предпросмотр до окончательного выбора. В игре: Выстрел заряженным снарядом, запуск броска. Уровень доступа: Курсор и кнопки; Приложение получает обычный указатель и кнопки. Физические пальцы и их отрыв при этом могут быть ему неизвестны. Условия: Отпускание кнопки доступно через P; отрыв пальца без клика требует T.
  • Удержание без движения. Жест: Оставаться в пределах допустимого отклонения. В интерфейсе: Стабильное подтверждение, выбор с отсечением случайного движения. В игре: Удержание равновесия, стабилизация прицела. Уровень доступа: Курсор и кнопки; Приложение получает обычный указатель и кнопки. Физические пальцы и их отрыв при этом могут быть ему неизвестны. Условия: Нужен допуск на естественный тремор; физический контакт без кнопки требует T.
  • Удержание внутри цели. Жест: Сохранять нажатие и положение курсора в заданной зоне. В интерфейсе: Подтверждение в пределах кнопки или рабочей области. В игре: Сварка, захват, непрерывное сопровождение цели. Уровень доступа: Курсор и кнопки; Приложение получает обычный указатель и кнопки. Физические пальцы и их отрыв при этом могут быть ему неизвестны. Условия: Следует явно показать границу и поведение при выходе.
  • Выход из зоны для отмены. Жест: Увести курсор с цели перед отпусканием. В интерфейсе: Безопасная отмена выбора или подтверждения. В игре: Отмена заклинания, броска или размещения объекта. Уровень доступа: Курсор и кнопки; Приложение получает обычный указатель и кнопки. Физические пальцы и их отрыв при этом могут быть ему неизвестны. Условия: Отмена события ОС и добровольная отмена игроком должны обрабатываться отдельно.
  • Переключаемое удержание. Жест: Один клик включает режим, следующий выключает. В интерфейсе: Альтернатива долгому зажатию; фиксация инструмента. В игре: Переключаемый прицел, захват, автоматическое движение. Уровень доступа: Курсор и кнопки; Приложение получает обычный указатель и кнопки. Физические пальцы и их отрыв при этом могут быть ему неизвестны. Условия: Состояние должно быть видно; это программная фиксация, а не свойство сенсора.
4Перетаскивание и захватОписание и пример ↗Захват связывает движение указателя с объектом, а отпускание завершает перенос, бросок или настройку.10

Варианты и применение

  • Клик и перетаскивание. Жест: Удерживать кнопку и двигать палец. В интерфейсе: Перенос объекта, выделение, управление ползунком. В игре: Двигать предмет, прицеливаться натяжением. Уровень доступа: Курсор и кнопки; Приложение получает обычный указатель и кнопки. Физические пальцы и их отрыв при этом могут быть ему неизвестны. Условия: Совместное движение и нажатие должно оставаться удобным на конкретном clickpad.
  • Тап, второй тап с удержанием. Жест: Коснуться, затем сразу коснуться повторно и вести палец. В интерфейсе: Перетаскивание без продавливания панели. В игре: Перенос игровых предметов с меньшей нагрузкой на кисть. Уровень доступа: Курсор и кнопки; Приложение получает обычный указатель и кнопки. Физические пальцы и их отрыв при этом могут быть ему неизвестны. Условия: Работает при соответствующей настройке драйвера или ОС.
  • Перетаскивание тремя пальцами. Жест: Вести тремя пальцами вместо удержания клика. В интерфейсе: Перемещение окон, объектов и выделений. В игре: Перенос фишек и управление рычагом. Уровень доступа: Курсор и кнопки; Приложение получает обычный указатель и кнопки. Физические пальцы и их отрыв при этом могут быть ему неизвестны. Условия: В macOS включается отдельно; игра обычно получает результат перетаскивания, а не три контакта.
  • Фиксация захвата. Жест: Продолжать перенос после краткого отрыва; завершить отдельным действием. В интерфейсе: Перенос на большую дистанцию, доступное управление. В игре: Перемещение тяжёлого предмета через всё поле. Уровень доступа: Курсор и кнопки; Приложение получает обычный указатель и кнопки. Физические пальцы и их отрыв при этом могут быть ему неизвестны. Условия: Может обеспечиваться ОС или логикой приложения; нужна явная команда сброса.
  • Drag-and-drop. Жест: Захватить объект, перенести и отпустить на приёмнике. В интерфейсе: Файлы, карточки, размещение блоков. В игре: Инвентарь, крафт, сборка конструкции. Уровень доступа: Курсор и кнопки; Приложение получает обычный указатель и кнопки. Физические пальцы и их отрыв при этом могут быть ему неизвестны. Условия: Показывать допустимые приёмники и результат до отпускания.
  • Выделение рамкой. Жест: Протянуть прямоугольную область. В интерфейсе: Групповой выбор объектов, диапазон на холсте. В игре: Выбор отряда, области строительства. Уровень доступа: Курсор и кнопки; Приложение получает обычный указатель и кнопки. Физические пальцы и их отрыв при этом могут быть ему неизвестны. Условия: Правила включения объектов внутрь рамки должны быть последовательны.
  • Лассо. Жест: Обвести произвольную область с удержанием кнопки. В интерфейсе: Выделение по контуру, маска, редактор изображений. В игре: Захват территории, окружение группы объектов. Уровень доступа: Курсор и кнопки; Приложение получает обычный указатель и кнопки. Физические пальцы и их отрыв при этом могут быть ему неизвестны. Условия: Для свободного следа без клика нужен T; через обычное перетаскивание достаточно P.
  • Перестановка в последовательности. Жест: Перетащить элемент между соседями. В интерфейсе: Сортировка списка, вкладок, временных блоков. В игре: Порядок карт, ходов, участников или способностей. Уровень доступа: Курсор и кнопки; Приложение получает обычный указатель и кнопки. Физические пальцы и их отрыв при этом могут быть ему неизвестны. Условия: Предпросмотр места вставки уменьшает неопределённость.
  • Натяжение с отпусканием. Жест: Тянуть от опорной точки, затем отпустить. В интерфейсе: Установка вектора и величины действия. В игре: Рогатка, лук, бильярдный удар, пружина. Уровень доступа: Курсор и кнопки; Приложение получает обычный указатель и кнопки. Физические пальцы и их отрыв при этом могут быть ему неизвестны. Условия: Длина экранного вектора задаёт параметр программы, а не измеренную силу пальца.
  • Бросок с инерцией. Жест: Разогнать объект перетаскиванием и отпустить. В интерфейсе: Быстрое перемещение с программной инерцией. В игре: Метание, керлинг, шайба, бросок карточки. Уровень доступа: Курсор и кнопки; Приложение получает обычный указатель и кнопки. Физические пальцы и их отрыв при этом могут быть ему неизвестны. Условия: Скорость нужно оценивать устойчиво и ограничивать; системное ускорение курсора влияет на ощущение.
5Прокрутка и временные осиОписание и пример ↗Прокрутка преобразуется в перемещение по пространству, шкале значений или времени с явно заданной чувствительностью.10

Варианты и применение

  • Вертикальная прокрутка. Жест: Вести два пальца вверх или вниз. В интерфейсе: Документы, списки, изменение параметра. В игре: Выбор предмета, высота прицела, приближение камеры. Уровень доступа: Готовый жест; Нужен жест, передаваемый ОС или фреймворком: прокрутка, масштабирование, поворот, swipe или hold. Набор различается. Условия: ОС может выдавать wheel-дельты. Направление зависит от настройки естественной прокрутки.
  • Горизонтальная прокрутка. Жест: Вести два пальца влево или вправо. В интерфейсе: Широкий холст, дорожки, таблица. В игре: Горизонтальная камера, смена полосы или позиции. Уровень доступа: Готовый жест; Нужен жест, передаваемый ОС или фреймворком: прокрутка, масштабирование, поворот, swipe или hold. Набор различается. Условия: Браузер или ОС могут использовать этот ход для навигации назад и вперёд.
  • Свободное панорамирование. Жест: Использовать обе компоненты прокрутки одновременно. В интерфейсе: Карта, большая схема, двумерный холст. В игре: Обзор поля стратегии или тактической карты. Уровень доступа: Готовый жест; Нужен жест, передаваемый ОС или фреймворком: прокрутка, масштабирование, поворот, swipe или hold. Набор различается. Условия: Не каждый стек передаёт одинаково точные непрерывные дельты.
  • Инерционная прокрутка. Жест: После толчка продолжать движение с замедлением. В интерфейсе: Длинные ленты, каталоги, панорамы. В игре: Прокрутка колеса предметов, инерционный обзор. Уровень доступа: Готовый жест; Нужен жест, передаваемый ОС или фреймворком: прокрутка, масштабирование, поворот, swipe или hold. Набор различается. Условия: Инерция может создаваться ОС или приложением; нельзя применять её дважды.
  • Касание для остановки инерции. Жест: Положить пальцы на панель, чтобы остановить движение. В интерфейсе: Быстро остановить кинетическую прокрутку. В игре: Затормозить вращающееся колесо или обзор. Уровень доступа: Готовый жест; Нужен жест, передаваемый ОС или фреймворком: прокрутка, масштабирование, поворот, swipe или hold. Набор различается. Условия: Нужен явный hold/touch-сигнал. libinput описывает hold; обычный wheel API этого не гарантирует.
  • Краевая прокрутка. Жест: Вести один палец вдоль края поверхности. В интерфейсе: Непрерывная навигация, однопальцевый скролл. В игре: Лента инвентаря или вертикальное перемещение камеры. Уровень доступа: Отдельные контакты; Нужен доступ к координатам, фазам и идентификаторам контактов. Наличие multitouch у устройства этого не гарантирует. Условия: Нужен режим драйвера или доступ к зоне панели; это не универсальный жест приложения.
  • Круговая прокрутка. Жест: Вращать палец по кругу, накапливая угол. В интерфейсе: Длинный список, виртуальное колесо, изменение числа. В игре: Настройка сейфа, катушка, маховик. Уровень доступа: Отдельные контакты; Нужен доступ к координатам, фазам и идентификаторам контактов. Наличие multitouch у устройства этого не гарантирует. Условия: Возможна через специальное отображение поверхности; альтернатива в приложении: круговой drag курсором.
  • Прокрутка по шагам. Жест: Накопленные дельты переводить в дискретные переключения. В интерфейсе: Выбор строки, кадра, деления или инструмента. В игре: Перебор оружия, изменение шага ставки. Уровень доступа: Готовый жест; Нужен жест, передаваемый ОС или фреймворком: прокрутка, масштабирование, поворот, swipe или hold. Набор различается. Условия: Не считать каждое wheel-событие отдельной ступенью: их частота зависит от устройства.
  • Скраббинг. Жест: Прокруткой непрерывно менять позицию на временной оси. В интерфейсе: Видео, звук, анимация, история изменений. В игре: Просмотр повтора, управление перемоткой времени. Уровень доступа: Готовый жест; Нужен жест, передаваемый ОС или фреймворком: прокрутка, масштабирование, поворот, swipe или hold. Набор различается. Условия: Значение позиции и скорость воспроизведения являются разными отображениями одного ввода.
  • Грубый и точный скраббинг. Жест: По модификатору менять масштаб временной регулировки. В интерфейсе: Поиск сцены с переходом к покадровой точности. В игре: Точная остановка повтора или временной головоломки. Уровень доступа: Готовый жест; Нужен жест, передаваемый ОС или фреймворком: прокрутка, масштабирование, поворот, swipe или hold. Набор различается. Условия: Для второй физической оси вне обычной прокрутки может потребоваться T; клавиша-модификатор проще.
6Направления и траекторииОписание и пример ↗Направление, форма и порядок участков траектории становятся распознаваемой командой или условием игрового действия.10

Варианты и применение

  • Направленный свайп. Жест: Выполнить распознаваемый ход вверх, вниз, влево или вправо. В интерфейсе: Перелистывание, закрытие карточки, переход. В игре: Уклонение, рубящий удар, быстрый приказ. Уровень доступа: Готовый жест; Нужен жест, передаваемый ОС или фреймворком: прокрутка, масштабирование, поворот, swipe или hold. Набор различается. Условия: Число пальцев и доступность swipe определяет платформа. Альтернатива: распознавать drag через P.
  • Диагональный росчерк. Жест: Сделать короткое перетаскивание в одном из восьми секторов. В интерфейсе: Расширенное меню команд по направлению. В игре: Восемь направлений удара или переката. Уровень доступа: Курсор и кнопки; Приложение получает обычный указатель и кнопки. Физические пальцы и их отрыв при этом могут быть ему неизвестны. Условия: Без удержания кнопки и с привязкой к физическому движению нужен T.
  • Быстрый росчерк. Жест: Учитывать скорость и направление короткого drag. В интерфейсе: Быстрое удаление, отправка, сдвиг элемента. В игре: Взмах, парирование, резкий толчок. Уровень доступа: Курсор и кнопки; Приложение получает обычный указатель и кнопки. Физические пальцы и их отрыв при этом могут быть ему неизвестны. Условия: Порог скорости нужно отличать от порога длины и проверять с разной чувствительностью курсора.
  • Жест туда и обратно. Жест: Сменить направление в рамках одной траектории. В интерфейсе: Отмена, возврат, подтверждение последовательностью. В игре: Взвод механизма, передёргивание затвора, работа пилой. Уровень доступа: Курсор и кнопки; Приложение получает обычный указатель и кнопки. Физические пальцы и их отрыв при этом могут быть ему неизвестны. Условия: Движение распознаётся приложением; это не стандартное событие touchpad.
  • Круг. Жест: Провести замкнутую окружность с удержанием кнопки. В интерфейсе: Вращение ручки или выбор циклического параметра. В игре: Завести механизм, перемешать, начертить круг заклинания. Уровень доступа: Курсор и кнопки; Приложение получает обычный указатель и кнопки. Физические пальцы и их отрыв при этом могут быть ему неизвестны. Условия: Нужен допуск на неполное замыкание и форму. Контактный вариант без клика требует T.
  • Дуга. Жест: Провести часть окружности. В интерфейсе: Поворот, настройка угла, веерный выбор. В игре: Замах мечом, дуговой щит, управление вентилем. Уровень доступа: Курсор и кнопки; Приложение получает обычный указатель и кнопки. Физические пальцы и их отрыв при этом могут быть ему неизвестны. Условия: Отличать желаемую дугу от случайного искривления движения.
  • Зигзаг. Жест: Провести последовательность поворотов. В интерфейсе: Команда по форме, графический код. В игре: Молния, разрез, взлом узора. Уровень доступа: Курсор и кнопки; Приложение получает обычный указатель и кнопки. Физические пальцы и их отрыв при этом могут быть ему неизвестны. Условия: Длинные жестовые пароли плохо обнаружимы без подсказки.
  • Растирание. Жест: Многократно двигаться туда-сюда в небольшой области. В интерфейсе: Стирание, очистка маски, проявление слоя. В игре: Оттереть грязь, разжечь огонь, заточить предмет. Уровень доступа: Курсор и кнопки; Приложение получает обычный указатель и кнопки. Физические пальцы и их отрыв при этом могут быть ему неизвестны. Условия: Ограничивать необходимое число повторов; движение само по себе не измеряет трение материала.
  • Рисование символа. Жест: Начертить букву, цифру или условный знак. В интерфейсе: Рукописный ввод, аннотация, команда по символу. В игре: Руны, заклинания, подпись, графический замок. Уровень доступа: Курсор и кнопки; Приложение получает обычный указатель и кнопки. Физические пальцы и их отрыв при этом могут быть ему неизвестны. Условия: Нужны распознаватель и проверка ошибок. Стандартный trackpad API не распознаёт руны автоматически.
  • Следование по контуру. Жест: Непрерывно вести курсор по заданной траектории. В интерфейсе: Обводка, тренажёр точности, ручная маска. В игре: Проводка через лабиринт, хирургия, соединение дорожек. Уровень доступа: Курсор и кнопки; Приложение получает обычный указатель и кнопки. Физические пальцы и их отрыв при этом могут быть ему неизвестны. Условия: Необходимо учитывать допуск, видимость курсора и возможность переставить палец.
Контекст и источники: libinput: swipe, pinch, hold, W3C: Pointer Events
7Геометрия нескольких контактовОписание и пример ↗Относительные положения нескольких контактов задают масштаб, угол и другие геометрические параметры; нужен доступ к этим данным.10

Варианты и применение

  • Сведение двух пальцев. Жест: Уменьшать расстояние между контактами. В интерфейсе: Уменьшение масштаба, переход к обзору. В игре: Отдаление карты или сжатие игрового объекта. Уровень доступа: Готовый жест; Нужен жест, передаваемый ОС или фреймворком: прокрутка, масштабирование, поворот, swipe или hold. Набор различается. Условия: Из готового pinch часто доступен масштаб, но не координаты обеих точек.
  • Разведение двух пальцев. Жест: Увеличивать расстояние между контактами. В интерфейсе: Приближение, раскрытие деталей. В игре: Увеличение карты, растяжение пружины, раскрытие щита. Уровень доступа: Готовый жест; Нужен жест, передаваемый ОС или фреймворком: прокрутка, масштабирование, поворот, swipe или hold. Набор различается. Условия: Для физического моделирования обоих захватов нужен T.
  • Вращение двумя пальцами. Жест: Менять угол линии между контактами. В интерфейсе: Поворот изображения, холста или модели. В игре: Вентиль, ориентация детали, поворот артефакта. Уровень доступа: Готовый жест; Нужен жест, передаваемый ОС или фреймворком: прокрутка, масштабирование, поворот, swipe или hold. Набор различается. Условия: Поддержка rotate не следует автоматически из наличия pinch.
  • Одновременный перенос, масштаб и поворот. Жест: Перемещать центр, менять расстояние и угол пары. В интерфейсе: Свободное преобразование объекта или холста. В игре: Установка детали, манипуляция картой или механизмом. Уровень доступа: Готовый жест; Нужен жест, передаваемый ОС или фреймворком: прокрутка, масштабирование, поворот, swipe или hold. Набор различается. Условия: Фреймворк должен разрешать совместное распознавание. Иначе нужен T и собственный обработчик.
  • Один палец как якорь. Жест: Оставить контакт неподвижным, вторым менять радиус или угол. В интерфейсе: Преобразование относительно явной опорной точки. В игре: Рычаг, циркуль, намотка троса, прицел вокруг опоры. Уровень доступа: Отдельные контакты; Нужен доступ к координатам, фазам и идентификаторам контактов. Наличие multitouch у устройства этого не гарантирует. Условия: Готового масштаба или поворота может быть мало: нужны обе координаты.
  • Два независимых захвата. Жест: Каждым контактом управлять отдельным концом объекта. В интерфейсе: Редактирование отрезка, диапазона или соединения. В игре: Натянуть верёвку, удержать две рукояти, поставить мост. Уровень доступа: Отдельные контакты; Нужен доступ к координатам, фазам и идентификаторам контактов. Наличие multitouch у устройства этого не гарантирует. Условия: Приложение должно сохранять роли контактов и обрабатывать исчезновение одного из них.
  • Растяжение по выбранной оси. Жест: Использовать отдельно изменение горизонтального или вертикального расстояния. В интерфейсе: Непропорциональный размер, ширина и высота. В игре: Сжать преграду, растянуть проход или платформу. Уровень доступа: Отдельные контакты; Нужен доступ к координатам, фазам и идентификаторам контактов. Наличие multitouch у устройства этого не гарантирует. Условия: Обычный scalar pinch не сообщает полную геометрию пары.
  • Деформация по трём опорам. Жест: Тремя отслеживаемыми точками менять форму или аффинное преобразование. В интерфейсе: Наклон, сдвиг, деформация сетки. В игре: Гнуть мягкое тело, управлять тремя креплениями. Уровень доступа: Отдельные контакты; Нужен доступ к координатам, фазам и идентификаторам контактов. Наличие multitouch у устройства этого не гарантирует. Условия: Нужны три независимые координаты. Двух точек недостаточно для однозначного общего shear-преобразования.
  • Разведение группы пальцев. Жест: Увеличивать разброс трёх и более контактов. В интерфейсе: Раскрытие группы, разворачивание структуры. В игре: Рассеять отряд, раскрыть устройство или поле. Уровень доступа: Отдельные контакты; Нужен доступ к координатам, фазам и идентификаторам контактов. Наличие multitouch у устройства этого не гарантирует. Условия: Может совпадать с глобальным жестом ОС; требуются проверка перехвата и число контактов.
  • Сведение группы пальцев. Жест: Собирать несколько контактов к общему центру. В интерфейсе: Сворачивание группы или переход к общей структуре. В игре: Собрать объекты, сжать область, сосредоточить энергию. Уровень доступа: Отдельные контакты; Нужен доступ к координатам, фазам и идентификаторам контактов. Наличие multitouch у устройства этого не гарантирует. Условия: Не считать, что каждый палец имеет независимое измерение силы или известную анатомическую роль.
8Аккорды, роли и последовательностиОписание и пример ↗Сочетания контактов и их порядок распределяют роли между пальцами и позволяют составлять команды из нескольких фаз.10

Варианты и применение

  • Число пальцев как режим. Жест: Одно, два или три касания включают разные функции. В интерфейсе: Один контакт рисует, два перемещают, три меняют инструмент. В игре: Смена типа действия без отдельной кнопки. Уровень доступа: Отдельные контакты; Нужен доступ к координатам, фазам и идентификаторам контактов. Наличие multitouch у устройства этого не гарантирует. Условия: ОС может уже использовать такую грамматику и не отдавать все касания приложению.
  • Пространственный аккорд. Жест: Одновременно касаться определённого набора зон. В интерфейсе: Комбинации команд, аккордовая клавиатура. В игре: Музыкальные аккорды, комбинация рун, несколько клапанов. Уровень доступа: Отдельные контакты; Нужен доступ к координатам, фазам и идентификаторам контактов. Наличие multitouch у устройства этого не гарантирует. Условия: Нужны координаты нескольких контактов; число пальцев само по себе не задаёт аккорд.
  • Удержание плюс тап. Жест: Один контакт держит состояние, другой коротко касается. В интерфейсе: Временный модификатор плюс команда. В игре: Щит и удар, прицел и выстрел. Уровень доступа: Отдельные контакты; Нужен доступ к координатам, фазам и идентификаторам контактов. Наличие multitouch у устройства этого не гарантирует. Условия: Фильтрация большого пальца может удалить опорный контакт.
  • Удержание плюс движение. Жест: Первый контакт фиксирует режим, второй непрерывно движется. В интерфейсе: Редактирование с модификатором, точная регулировка. В игре: Блок и направление защиты, захват и вращение. Уровень доступа: Отдельные контакты; Нужен доступ к координатам, фазам и идентификаторам контактов. Наличие multitouch у устройства этого не гарантирует. Условия: Для обычного курсора вместо опорного пальца можно использовать клавишу.
  • Два независимых канала. Жест: Развести два контакта по двум управляемым величинам. В интерфейсе: Два ползунка, XY-контроль с раздельными ролями. В игре: Две ракетки, две руки, газ и тормоз. Уровень доступа: Отдельные контакты; Нужен доступ к координатам, фазам и идентификаторам контактов. Наличие multitouch у устройства этого не гарантирует. Условия: Один системный указатель не превращается в два. Проверять площадь панели и удобство рук.
  • Чередование пальцев. Жест: Попеременно касаться двумя отслеживаемыми контактами. В интерфейсе: Барабанный ввод, метроном, обучение моторике. В игре: Бег, гребля, игра на ударных. Уровень доступа: Отдельные контакты; Нужен доступ к координатам, фазам и идентификаторам контактов. Наличие multitouch у устройства этого не гарантирует. Условия: Два обычных клика позволяют вводить ритм, но не доказывают чередование физических пальцев.
  • Шагающие контакты. Жест: Последовательно переставлять пальцы с сохранением хотя бы одной опоры. В интерфейсе: Навигация по поверхности с непрерывным контактом. В игре: Карабканье, ходьба существа, перенос опор робота. Уровень доступа: Отдельные контакты; Нужен доступ к координатам, фазам и идентификаторам контактов. Наличие multitouch у устройства этого не гарантирует. Условия: Роль должна назначаться по контакту и контексту, а не по догадке о том, какой это палец.
  • Порядок постановки. Жест: Считать разные последовательности появления контактов разными командами. В интерфейсе: Жестовый код, переключение инструмента. В игре: Замок, комбинация действий, последовательное включение механизмов. Уровень доступа: Отдельные контакты; Нужен доступ к координатам, фазам и идентификаторам контактов. Наличие multitouch у устройства этого не гарантирует. Условия: Порядок поступления событий не всегда точно отражает почти одновременные касания.
  • Порядок снятия. Жест: Различать, какой из назначенных контактов отпущен первым. В интерфейсе: Разные способы подтверждения и завершения. В игре: Отпустить один захват, перебросить нагрузку, закончить комбинацию. Уровень доступа: Отдельные контакты; Нужен доступ к координатам, фазам и идентификаторам контактов. Наличие multitouch у устройства этого не гарантирует. Условия: Нужны устойчивые идентификаторы в рамках последовательности и отдельная обработка отмены.
  • Добавление или снятие пальца во время движения. Жест: Переключать режим, сохраняя текущую траекторию. В интерфейсе: Точный режим, смена инструмента без остановки. В игре: Переход с ходьбы на бег, смена типа удара в замахе. Уровень доступа: Отдельные контакты; Нужен доступ к координатам, фазам и идентификаторам контактов. Наличие multitouch у устройства этого не гарантирует. Условия: Распознаватель ОС может завершить один жест и начать другой; переход нельзя считать непрерывным по умолчанию.
9Зоны и виртуальные органы управленияОписание и пример ↗Участки поверхности получают виртуальные роли: стик, колесо, кнопка или независимая ось управления.10

Варианты и применение

  • Сетка виртуальных кнопок. Жест: Разделить физическую панель на ячейки. В интерфейсе: Горячие команды, цифровая клавиатура, пульт. В игре: Быстрые слоты, барабанные пэды, способности. Уровень доступа: Отдельные контакты; Нужен доступ к координатам, фазам и идентификаторам контактов. Наличие multitouch у устройства этого не гарантирует. Условия: Нужны экранная схема и достаточно крупные зоны; на панели нет самих подписей.
  • Виртуальная крестовина. Жест: Центр и направления работают как цифровые кнопки. В интерфейсе: Навигация по меню, пошаговое смещение. В игре: Ходьба по клеткам, управление платформером. Уровень доступа: Отдельные контакты; Нужен доступ к координатам, фазам и идентификаторам контактов. Наличие multitouch у устройства этого не гарантирует. Условия: Задаются нейтральная зона и правило диагоналей; специальный драйвер может отдать уже готовые кнопки.
  • Двумерный аналоговый пульт. Жест: Координаты X и Y независимо задают два параметра. В интерфейсе: Панорама и громкость, цвет и насыщенность, XY-эффект. В игре: Руль и газ, два параметра способности, управление балансом. Уровень доступа: Отдельные контакты; Нужен доступ к координатам, фазам и идентификаторам контактов. Наличие multitouch у устройства этого не гарантирует. Условия: Это два программных параметра одной позиции, а не обязательно два контакта.
  • Радиальное меню. Жест: Открыть меню, выбрать сектор движением и подтвердить. В интерфейсе: Инструменты, команды, быстрый выбор. В игре: Колесо оружия, заклинаний или приказов. Уровень доступа: Курсор и кнопки; Приложение получает обычный указатель и кнопки. Физические пальцы и их отрыв при этом могут быть ему неизвестны. Условия: Работает через курсор и удержание. Вариант с физическим центром панели требует T или специального режима.
  • Внешнее кольцо как дополнительная команда. Жест: Выходить за заданный радиус относительно центра поверхности. В интерфейсе: Ускоренный режим или расширенный набор функций. В игре: Бег на внешнем кольце, ходьба ближе к центру. Уровень доступа: Отдельные контакты; Нужен доступ к координатам, фазам и идентификаторам контактов. Наличие multitouch у устройства этого не гарантирует. Условия: Для обычного курсора возможен аналог относительно экранного центра; физическая зона требует координат панели.
  • Краевые полосы-ползунки. Жест: Выделить края под отдельные непрерывные параметры. В интерфейсе: Громкость, масштаб, прозрачность, временная ось. В игре: Здоровье инструмента, мощность, высота, тяга. Уровень доступа: Отдельные контакты; Нужен доступ к координатам, фазам и идентификаторам контактов. Наличие multitouch у устройства этого не гарантирует. Условия: Контакты у края могут отфильтровываться драйвером. Не путать край панели с краем экранного окна.
  • Углы и квадранты. Жест: Назначить разным углам и половинам различные команды. В интерфейсе: Четыре быстрых инструмента или две группы управления. В игре: Левый и правый удары, четыре способности. Уровень доступа: Отдельные контакты; Нужен доступ к координатам, фазам и идентификаторам контактов. Наличие multitouch у устройства этого не гарантирует. Условия: Это конкретная разметка поверхности; системные click-зоны не гарантируют произвольную разметку.
  • Отображение в экранную область. Жест: Связать поверхность с выбранной частью экрана. В интерфейсе: Управление миникартой, конкретным монитором или панелью. В игре: Быстрый приказ на миникарте, точная работа с инвентарём. Уровень доступа: Отдельные контакты; Нужен доступ к координатам, фазам и идентификаторам контактов. Наличие multitouch у устройства этого не гарантирует. Условия: Нужно учитывать пропорции и размер области. Steam Input описывает Mouse Region для поддерживаемых источников.
  • Модификатор другого устройства. Жест: С клавишей или кнопкой менять значение движения панели. В интерфейсе: Поворот вместо переноса, копирование при drag, точный ввод. В игре: Клавиатура отвечает за движение, панель за камеру; кнопка меняет инструмент. Уровень доступа: Курсор и кнопки; Приложение получает обычный указатель и кнопки. Физические пальцы и их отрыв при этом могут быть ему неизвестны. Условия: Некоторые драйверы подавляют панель во время печати. Совместную работу надо проверить на устройстве.
  • Пересечение границ зон. Жест: Запускать действие при входе в зону или пересечении линии. В интерфейсе: Последовательный выбор, безкликовый ввод по маршруту. В игре: Струны, лазерные дорожки, ноты, соединение контактов. Уровень доступа: Отдельные контакты; Нужен доступ к координатам, фазам и идентификаторам контактов. Наличие multitouch у устройства этого не гарантирует. Условия: Для зон физической панели нужен T. Для зон экранного холста достаточно траектории курсора P.
10Давление и силаОписание и пример ↗Измеряемая сила нажатия задаёт значение или порог действия; обычный клик и размер контакта не заменяют датчик силы.10

Варианты и применение

  • Сильный клик. Жест: После обычного нажатия перейти к более сильному. В интерфейсе: Дополнительная контекстная команда или предпросмотр. В игре: Второе действие инструмента, усиленное взаимодействие. Уровень доступа: Датчик силы; Нужны измерение силы и подходящий API. Обычный клик или большая площадь контакта не заменяют датчик. Условия: Нужны поддерживаемые ступени давления; это не обычное долгое нажатие.
  • Аналоговая сила. Жест: Непрерывно связывать величину нажатия с параметром. В интерфейсе: Интенсивность эффекта, уровень или усилие. В игре: Газ, тормоз, сжатие предмета, мощность двигателя. Уровень доступа: Датчик силы; Нужны измерение силы и подходящий API. Обычный клик или большая площадь контакта не заменяют датчик. Условия: Диапазон и шум зависят от устройства; давление не обязательно измеряется отдельно для каждого пальца.
  • Заряд от силы с отпусканием. Жест: Нарастить силу, затем снять нажатие для запуска. В интерфейсе: Выбор интенсивности перед подтверждением. В игре: Сильный бросок, удар, выстрел. Уровень доступа: Датчик силы; Нужны измерение силы и подходящий API. Обычный клик или большая площадь контакта не заменяют датчик. Условия: Заранее определить, используется сила в момент отпускания, пиковая сила или накопление во времени.
  • Несколько порогов силы. Жест: Разделить измеряемую силу на программные диапазоны. В интерфейсе: Предпросмотр, выбор, подтверждение одной кнопкой. В игре: Ходьба, бег, рывок или разные состояния инструмента. Уровень доступа: Датчик силы; Нужны измерение силы и подходящий API. Обычный клик или большая площадь контакта не заменяют датчик. Условия: Физически различимых щелчков может быть меньше, чем программных порогов. Нужен гистерезис.
  • Рисование с силой. Жест: Менять толщину или непрозрачность штриха по нажатию. В интерфейсе: Кисть, ретушь, рукописные пометки. В игре: Рисование рун с переменной толщиной, виртуальная гравировка. Уровень доступа: Датчик силы; Нужны измерение силы и подходящий API. Обычный клик или большая площадь контакта не заменяют датчик. Условия: Нужны одновременно траектория и давление; палец на trackpad не равен перу графического планшета.
  • Сила как скорость. Жест: Увеличивать темп изменения параметра при усилении нажатия. В интерфейсе: Быстрая перемотка, прокрутка или регулировка. В игре: Скорость механизма, намотки или движения. Уровень доступа: Датчик силы; Нужны измерение силы и подходящий API. Обычный клик или большая площадь контакта не заменяют датчик. Условия: Управление скоростью отличается от задания абсолютного значения; нужен понятный ноль.
  • Сила как переключатель точности. Жест: Нажимать сильнее для более медленного и точного управления. В интерфейсе: Точный режим редактирования без отдельной клавиши. В игре: Стабилизация прицела или аккуратное манипулирование. Уровень доступа: Датчик силы; Нужны измерение силы и подходящий API. Обычный клик или большая площадь контакта не заменяют датчик. Условия: Нажатие само может сдвигать палец; удобство нужно проверять на реальной панели.
  • Дополнительное нажатие во время drag. Жест: В процессе переноса менять силу и включать вторую функцию. В интерфейсе: Предпросмотр приёмника, раскрытие вложенной папки, дополнительный режим. В игре: Сжать захваченный предмет, изменить хват или силу инструмента. Уровень доступа: Датчик силы; Нужны измерение силы и подходящий API. Обычный клик или большая площадь контакта не заменяют датчик. Условия: Нужно согласовать pressure-события с захватом указателя и системным поведением.
  • Импульсы силы. Жест: Усиливать и ослаблять нажатие без полного отрыва. В интерфейсе: Экспрессивный музыкальный ввод, управление импульсами. В игре: Насос, пульсация способности, передача ритма силой. Уровень доступа: Датчик силы; Нужны измерение силы и подходящий API. Обычный клик или большая площадь контакта не заменяют датчик. Условия: Обычный клик не сообщает такую кривую; требуется сглаживание и пороги с допуском.
  • Удержание силы в диапазоне. Жест: Сохранять давление между нижней и верхней границами. В интерфейсе: Тренажёр дозирования усилия. В игре: Тонкая работа с хрупким предметом, натяжение струны, обезвреживание. Уровень доступа: Датчик силы; Нужны измерение силы и подходящий API. Обычный клик или большая площадь контакта не заменяют датчик. Условия: Это авторская игровая модель; пороги нужно калибровать, а альтернативу давать по времени или ползунку.
11Составные схемы управленияОписание и пример ↗Несколько сигналов или осей объединяются в одно правило управления с отдельными ролями точности, направления и подтверждения.6

Варианты и применение

  • Виртуальный трекбол. Жест: Толчком задать скорость, после отрыва продолжить движение с инерцией. В интерфейсе: Дальний перенос указателя, вращение модели. В игре: Инерционная камера или вращающийся шар. Уровень доступа: Отдельные контакты; Нужен доступ к координатам, фазам и идентификаторам контактов. Наличие multitouch у устройства этого не гарантирует. Условия: Для точного запуска по отрыву нужен контактный сигнал или специальный режим. Программная инерция не является физическим вращением панели.
  • Продолжение движения у края. Жест: Довести контакт до края и продолжать менять параметр без дальнейшего перемещения. В интерфейсе: Прокрутка или вращение без постоянной перестановки пальца. В игре: Непрерывный разворот камеры, вращение башни. Уровень доступа: Отдельные контакты; Нужен доступ к координатам, фазам и идентификаторам контактов. Наличие multitouch у устройства этого не гарантирует. Условия: Отдельно задать скорость у края и условие остановки. Драйвер может фильтровать краевые контакты.
  • Свайп от физического края. Жест: Учитывать не только направление, но и начало контакта у края панели. В интерфейсе: Выдвижная панель, дополнительный набор команд. В игре: Открытие инвентаря, карты или скрытой панели. Уровень доступа: Отдельные контакты; Нужен доступ к координатам, фазам и идентификаторам контактов. Наличие multitouch у устройства этого не гарантирует. Условия: Край панели и край экранного окна различаются. ОС может перехватывать этот жест для глобальной функции.
  • Цепочка жестов. Жест: Выполнить несколько распознаваемых движений в заданном порядке. В интерфейсе: Жестовый макрос или многошаговая команда. В игре: Комбо, пароль, последовательность рун. Уровень доступа: Курсор и кнопки; Приложение получает обычный указатель и кнопки. Физические пальцы и их отрыв при этом могут быть ему неизвестны. Условия: Через P можно распознавать последовательность drag и кликов. Цепочка без кнопки требует T; нужен понятный сброс ошибки.
  • Иерархическое меню росчерком. Жест: Последовательными направлениями выбрать раздел и вложенную команду. В интерфейсе: Быстрые команды в marking menu после обучения. В игре: Выбор категории и конкретного заклинания одним маршрутом. Уровень доступа: Курсор и кнопки; Приложение получает обычный указатель и кнопки. Физические пальцы и их отрыв при этом могут быть ему неизвестны. Условия: Нужна видимая версия меню для обучения и запасной способ выбора.
  • Точность по поперечному смещению. Жест: Одной компонентой drag менять значение, другой регулировать чувствительность. В интерфейсе: Точный скраббинг: по горизонтали время, по вертикали масштаб шага. В игре: Выбор силы и точности, настройка временного механизма. Уровень доступа: Курсор и кнопки; Приложение получает обычный указатель и кнопки. Физические пальцы и их отрыв при этом могут быть ему неизвестны. Условия: Это программное отображение траектории курсора. Обычная двухпальцевая прокрутка не гарантирует ту же геометрию.

Тактильная обратная связь

Тактильные деления

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

Ощущение границы

Импульс при достижении края допустимого диапазона.; Конец списка или предел регулировки.; Конец хода рычага, край карты.

Подтверждение привязки

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

Подтверждение состояния

Отдача при выборе, захвате, достижении порога или завершении.; Отличимые стадии операции.; Захват, заряд готов, действие подтверждено.

Тактильный рисунок движения

Импульсы по мере перемещения имитируют поверхность.; Виртуальная шкала или фактура.; Шероховатость, работа инструмента, движение по зубцам.

Сигнал события или ошибки

Различимый короткий сигнал о результате.; Недопустимая цель, ошибка, завершение.; Столкновение, тревога, неудачный захват.

Доступ к вводу

P

Описание: Курсор и кнопки; Приложение получает обычный указатель и кнопки. Физические пальцы и их отрыв при этом могут быть ему неизвестны.

G

Описание: Готовый жест; Нужен жест, передаваемый ОС или фреймворком: прокрутка, масштабирование, поворот, swipe или hold. Набор различается.

T

Описание: Отдельные контакты; Нужен доступ к координатам, фазам и идентификаторам контактов. Наличие multitouch у устройства этого не гарантирует.

F

Описание: Датчик силы; Нужны измерение силы и подходящий API. Обычный клик или большая площадь контакта не заменяют датчик.

Что влияет на реализуемость

Тачпад является косвенным устройством: положение экранного курсора обычно не совпадает с положением пальца на поверхности. Выход курсора из элемента не означает отрыв пальца.

Системные жесты, особенно с тремя и четырьмя пальцами и от края, могут переключать приложения или рабочие столы. Приложение не всегда может их получить. Жесты macOS; Жесты Windows.

Веб-приложение обычно работает с указателем и wheel-событиями. Pointer Events сами по себе не дают переносимого доступа ко всем пальцам ноутбучного тачпада. Наличие свойства pressure не доказывает измерение силы. W3C: Pointer Events.

Число видимых контактов зависит от оборудования, драйвера и отсеивания ладони и большого пальца. Идентификатор контакта не сообщает, какой это анатомический палец. AppKit: контакты и системные жесты; libinput: swipe, pinch, hold.

Датчик силы, сильный клик и тактильная отдача являются разными возможностями. Площадь контакта не равна силе, а сила не обязательно доступна отдельно для каждого пальца. Force Touch и тактильная отдача; AppKit: поведение давления.

Как выбирать механику

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

Разделять физический сигнал и правило игры: сила, время удержания, длина движения и скорость являются разными параметрами.

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

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

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

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

Что требует отдельного оборудования или исследования

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

Как пользоваться каталогом

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

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

Источники и примеры

Источники подтверждают отдельные приёмы или методологию, а не все варианты семейства. Примеры проектирования и сочетания механик являются иллюстрациями.

  • Жесты macOS

    Первичный источник для отдельных приёмов; не подтверждает всю авторскую классификацию.

  • Жесты Windows

    Первичный источник для отдельных приёмов; не подтверждает всю авторскую классификацию.

  • Клики и перетаскивание Surface

    Первичный источник для отдельных приёмов; не подтверждает всю авторскую классификацию.

  • AppKit: контакты и системные жесты

    Первичный источник для отдельных приёмов; не подтверждает всю авторскую классификацию.

  • Force Touch и тактильная отдача

    Первичный источник для отдельных приёмов; не подтверждает всю авторскую классификацию.

  • AppKit: поведение давления

    Первичный источник для отдельных приёмов; не подтверждает всю авторскую классификацию.

  • libinput: swipe, pinch, hold

    Первичный источник для отдельных приёмов; не подтверждает всю авторскую классификацию.

  • W3C: Pointer Events

    Первичный источник для отдельных приёмов; не подтверждает всю авторскую классификацию.

  • Steam Input: режимы поверхности

    Первичный источник для отдельных приёмов; не подтверждает всю авторскую классификацию.

  • AppKit: тактильная обратная связь

    Первичный источник для отдельных приёмов; не подтверждает всю авторскую классификацию.

CC BY 4.0 · Game Dev DB contributors