Управление в Roblox: клавиатура, геймпад и доступность

Содержание
  1. Две разные ветки ввода
  2. Мышь и клавиатура: UserInputService
  3. Геймпад: Input Action System
  4. Тактильная отдача
  5. Как проверить геймпад без геймпада
  6. Доступность: что советует официальная документация
  7. Чего мы не утверждаем
  8. Источники
  9. Коротко

Roblox принимает ввод и с мыши с клавиатурой, и с геймпадов — в том числе контроллеров Xbox и PlayStation. Мышь и клавиатура обрабатываются через сервис UserInputService, а для геймпадов документация рекомендует Input Action System, который привязывает одно действие к разным аппаратным входам.

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

Две разные ветки ввода

Легко подумать, что клавиатура и геймпад — это просто «разные кнопки для того же самого». С точки зрения платформы это не совсем так: документация описывает их отдельными разделами и предлагает разные инструменты.

Что Мышь и клавиатура Геймпад
Основной механизм в документации сервис UserInputService Input Action System
Типовая задача поймать нажатие и отпускание, проверить состояние клавиши привязать действие к вводу так, чтобы оно работало на разном «железе»
Тактильная отдача не описана в приведённых источниках поддерживается для PlayStation, Xbox и Quest Touch
Тест без устройства Controller Emulator в Studio

Практический вывод для игрока прост: если игра в Roblox не реагирует на твой геймпад — это почти всегда вопрос к автору конкретного опыта, а не к платформе. Платформа ввод с контроллера принимает.

Мышь и клавиатура: UserInputService

Общий ввод с мыши и клавиатуры Roblox обрабатывает через сервис UserInputService. Из того, что прямо названо в документации, важнее всего три вещи:

  • InputBegan — событие начала ввода;
  • InputEnded — событие завершения ввода;
  • IsKeyDown() — метод, которым проверяют, нажата ли клавиша прямо сейчас.

Разница между событиями и методом принципиальна, и именно на ней спотыкаются новички. События срабатывают в момент изменения: нажал — пришёл InputBegan, отпустил — пришёл InputEnded. Метод IsKeyDown() отвечает на другой вопрос: «а сейчас клавиша удерживается?» Это два разных способа думать о вводе, и путать их не стоит.

Типичный пример, где нужен именно второй способ: действие, которое длится, пока клавишу удерживают. Ловить начало и конец события можно, но проверка состояния часто читается проще.

Если ты только заходишь в скриптинг и слова «сервис», «событие» и «метод» пока звучат как шум — начни с основ языка Luau и первых шагов в Roblox Studio, а к вводу возвращайся уже с пониманием, что такое событие.

Геймпад: Input Action System

Для геймпадов документация предлагает отдельный подход — Input Action System. Его назначение описано так: согласованно привязывать действия вроде «jump» или «shoot» к разным аппаратным входам.

Разберём, почему это вообще отдельная задача.

Когда ты пишешь логику игры, тебе нужна не «кнопка A» и не «клавиша Space» — тебе нужно действие «прыжок». Одно и то же действие должно срабатывать с разного «железа»: с клавиатуры, с контроллера Xbox, с контроллера PlayStation. Если каждый раз привязывать логику напрямую к конкретной физической кнопке, код расползается на параллельные ветки под каждый тип устройства, и любое изменение управления означает правки в нескольких местах.

Input Action System закрывает именно этот разрыв: действие описывается один раз, а входы к нему привязываются. Это тот уровень абстракции, который избавляет от «а теперь то же самое, но для геймпада».

⚠️ Важно: здесь не описан ни синтаксис, ни названия конкретных объектов этой системы — в приведённых источниках их нет. Это материал о том, какой механизм для чего предназначен, а не пошаговый туториал с кодом. За деталями API иди в официальную документацию Roblox — там это первичный источник.

Тактильная отдача

Roblox поддерживает haptic feedback — тактильную отдачу — для геймпадов PlayStation, Xbox и контроллера Quest Touch.

Упоминание Quest Touch здесь не случайно, и оно важно для понимания масштаба: список поддерживаемых устройств не ограничивается двумя консольными контроллерами. Что именно и на каких моделях воспроизводится, документация в приведённом фрагменте не детализирует, поэтому обещать «вибрация работает везде одинаково» я не буду.

О том, какие устройства вообще тянут Roblox, есть отдельный материал — на каких устройствах работает Roblox.

Как проверить геймпад без геймпада

Ситуация типичная: ты делаешь поддержку контроллера, а самого контроллера под рукой нет. Для этого в Roblox Studio есть встроенный Controller Emulator.

  1. Открой свой проект в Roblox Studio.
  2. Найди меню Test — именно через него эмулятор и вызывается.
  3. Запусти Controller Emulator и проверяй геймпадный ввод прямо в Studio.

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

Что эмулятор не заменит — реального ощущения управления. Проверить логику («нажал — сработало») им можно; оценить удобство, чувствительность и то, как игра ощущается в руках с живым контроллером, — нет. Это разные задачи.

Доступность: что советует официальная документация

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

Первое — о масштабе. По официальной статистике, которую приводит документация Roblox, более 26% людей имеют тот или иной тип инвалидности. Именно поэтому доступность там описана не как доброе дело, а как способ сделать игру доступной для более широкой аудитории. Это аргумент об охвате, а не только об этике.

Второе — конкретный совет по интерфейсу. Более 5% людей в мире имеют ту или иную форму дальтонизма. Вывод документации прямой: не полагайся только на цвет для передачи важной информации в интерфейсе.

На практике «только цвет» — это когда единственное различие между состояниями существует в цвете и больше нигде:

  • красная полоска против зелёной без подписи и без разной формы;
  • игроки разных команд, которые отличаются только оттенком;
  • «активная» кнопка, отличающаяся от неактивной исключительно тоном.

Правило, которое из этого следует: важная информация должна дублироваться чем-то, кроме цвета, — подписью, иконкой, формой, позицией. Цвет остаётся, он просто перестаёт быть единственным носителем смысла.

Доступность интерфейса хорошо рифмуется с локализацией опыта — обе задачи об одном и том же: чтобы игру поняли люди, которые не такие, как ты.

Чего мы не утверждаем

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

  • Не называем конкретных раскладок клавиш. Каждый опыт в Roblox настраивает управление самостоятельно. Единой обязательной схемы «клавиша X = действие Y» для всех игр в приведённых источниках мы не видели.
  • Не перечисляем полный API. В UserInputService названы InputBegan, InputEnded и IsKeyDown() — это то, что прямо есть в источнике. Другие члены сервиса могут существовать, но выводить их из этого материала не стоит.
  • Не детализируем Input Action System. Что именно система умеет помимо согласованной привязки действий к разным входам — вопрос к документации.
  • Не описываем мобильное сенсорное управление. Это отдельная тема, и в этом материале её сознательно нет.
  • Не называем конкретных моделей контроллеров. Источники говорят о геймпадах Xbox и PlayStation и контроллере Quest Touch — без перечня ревизий и без обещаний совместимости с конкретным устройством.
  • Не приводим никаких цифр, кроме двух. Более 26% людей с инвалидностью и более 5% с дальтонизмом — это статистика, которую приводит сама документация Roblox. Других чисел в этой теме у нас нет, и мы их не выдумываем.

Источники

Коротко

Мышь и клавиатура в Roblox идут через UserInputService (InputBegan, InputEnded, IsKeyDown()), геймпады Xbox и PlayStation — через Input Action System, а проверить контроллер можно эмулятором в меню Test в Studio. По доступности документация даёт две опорные цифры: более 26% людей имеют инвалидность, более 5% — дальтонизм, поэтому важную информацию в интерфейсе не стоит передавать только цветом.

Частые вопросы

Можно ли играть в Roblox с геймпадом?

Да. Roblox принимает ввод с геймпадов, в том числе контроллеров Xbox и PlayStation. Но конкретная раскладка кнопок зависит от того, как её настроил автор конкретного опыта.

Как разработчику привязать одно действие и к клавише, и к кнопке геймпада?

Для согласованной привязки действий вроде «jump» или «shoot» к разным аппаратным входам Roblox предлагает Input Action System.

Как проверить управление геймпадом, если контроллера нет под рукой?

В Roblox Studio есть встроенный Controller Emulator — он доступен через меню Test и позволяет протестировать геймпадный ввод без физического устройства.

Поддерживает ли Roblox вибрацию геймпада?

Да, Roblox поддерживает тактильную отдачу (haptic feedback) для геймпадов PlayStation, Xbox и контроллера Quest Touch.

Как скриптом узнать, нажата ли клавиша?

Через сервис UserInputService: он обрабатывает общий ввод с мыши и клавиатуры, имеет события InputBegan и InputEnded, а также метод IsKeyDown() для проверки нажатой клавиши.

Почему нельзя обозначать важные вещи в интерфейсе только цветом?

Документация Roblox отмечает, что более 5% людей в мире имеют ту или иную форму дальтонизма, и советует не полагаться только на цвет для передачи важной информации.

Источники