Керування в 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% людей у світі мають ту чи іншу форму дальтонізму, і радить не покладатися лише на колір для передачі важливої інформації.

Джерела