Керування в Roblox: клавіатура, геймпад і доступність
Зміст
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.
- Відкрий свій проєкт у Roblox Studio.
- Знайди меню Test — саме через нього емулятор і викликається.
- Запусти 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 Creator Docs — Gamepad
- Roblox Creator Docs — Mouse and keyboard
- Roblox Creator Docs — Accessibility
Коротко
Миша й клавіатура в 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% людей у світі мають ту чи іншу форму дальтонізму, і радить не покладатися лише на колір для передачі важливої інформації.