Документація Steamworks
Радіальні меню
Радіальне меню — це екранний оверлей з ігровими діями, що показується як кільце з варіантами, котрі можна обирати за допомогою контролера. Воно схоже на сенсорне меню, але замість дотику до певного місця на сенсорній поверхні гравець повинен навести віртуальний вказівник на обраний варіант і натиснути кнопку, щоби його активувати.

Радіальне меню використовується для перемикання зброї у стрілянках від першої особи, для перемикання гарячих клавіш у стратегіях у реальному часі тощо. Радіальні меню можна конфігурувати різними способами — і їхню поведінку, і їхній вигляд. Можна додавати нестандартні написи та піктограми (надані Valve, розробником чи гравцем).

Ось приклад радіального меню, що використовується для швидкого вибору заклинання в Defender's Quest: Valley of the Forgotten:

dqdx_radial_menu.png

Радіальне меню в центрі екрана не є частиною коду Defender's Quest's. Воно працює повністю завдяки оверлею Steam та конфігуратору введення Steam. Застосунок Defender's Quest просто отримує дії від API введення Steam.

Радіальні меню доступні як у режимі вбудованої підтримки, так і в режимі сумісності, але вони можуть працювати лише з деякими джерелами введення:

Джерело введенняПідтримує радіальне меню
Сенсорна панель
Хрестовина
Панель кнопок
Джойстик
Гіроскоп
Перемикачі
Триґери

Для створення радіального меню просто виберіть сумісне джерело введення в конфігурації гри (наприклад, джойстик або сенсорну панель) та оберіть радіальне меню як стиль введення.

radial_menu_create.png

Ось так виглядає екран конфігурації радіального меню:
radial_menu.png

Базові параметри

Стиль активації меню


Визначає спосіб роботи радіального меню: чи повинна дія відбутися, коли ви на неї натиснули й відпустили, чи спершу потрібно щось клацнути, чи дія відбувається одразу після вибору?

Доступні варіанти:

Стиль активації менюОпис
Клацання кнопкиВиділена дія спрацьовує після натискання на елемент введення
Відпускання кнопкиВиділена дія активується лише тоді, коли користувач натискає, а потім відпускає елемент введення
Відпускання дотику або завершення зміни режимуВиділена дія спрацьовує, коли введення зупиняється (наприклад, користувач відпускає кнопку чи піднімає палець із сенсорної панелі або джойстика) або після завершення перебування радіального меню в режимі перемикання введення.
ЗавждиДія спрацьовує, поки виділено

Інші параметри


ПараметрОпис
Горизонтальна/вертикальна позиція на екраніДе радіальне меню з’являється на екрані? Значення в діапазоні 0,0–1,0, де 0 — лівий чи верхній край екрана, а 1 — правий чи нижній край.
Непрозорість менюРадіальне меню має чорне тло, прозорість якого можна регулювати. Однак піктограми дій завжди на 100% непрозорі.
Розмір менюЯкий розмір меню? Масштабування від 0,0 до 1,0, від найменшого до найбільшого.
Показувати призначення на кнопціКнопки радіального меню можуть показувати текстові позначки про призначену для них дію. Якщо використовується піктограма, то така позначка з’явиться у верхньому лівому куті. В іншому випадку буде показано піктограму чи порожню кнопку.
Дія внаслідок клацанняЦя дія прив’язана не до якогось введення, а саме до самого радіального меню. Це особливо корисно для комбінування з типом активації меню «Завжди увімкнено». Природний приклад: прив’язати до цього паузу, щоби після відкриття радіального меню гра призупинялася, а у вас з’являвся час зробити вибір.

Кнопки меню


Кожній кнопці меню можна призначити дію і/або призначення кнопки з режиму сумісності. Базовий екран конфігурації має 5 кнопок меню, але ви можете призначати до 20 (для призначення кнопок 6-20 оберіть «Додаткові налаштування»).

radial_menu_button.png

Центральна/невибрана кнопка


У центрі радіального меню є необов’язкова центральна кнопка, котру можна прив’язати так само, як і будь-яку іншу кнопку радіального меню. Зверніть увагу, що розмір цієї кнопки збільшується в процесі додавання інших кнопок радіального меню.

ПОРАДА: скасування дій натисканням на центр

Залежно від вашої гри може бути доцільним лишити гравцю можливість легко вийти з радіального меню без активації інших елементів. Якщо ви використовуєте стиль активації «Відпускання дотику або завершення зміни режиму», то це може бути особливо складно, оскільки яку б дію ви не обрали останньою, вона відбудеться після закриття радіального меню.

Хорошим виходом із ситуації є створення дії, котра нічого не робить у грі, і прив’язування її до центральної кнопки. Якщо ж ви гравець, а розробник не передбачив таку дію (або ви в режимі сумісності), прив’яжіть центральну кнопку до клавіші, яку гра ігнорує. Потім оберіть номер для цієї кнопки меню.

Вуаля! Тепер, якщо ви захочете прибрати радіальне меню без надсилання дії, то просто поверніться в центр і відпустіть елемент введення.

Піктограми кнопок меню


Для кожної кнопки меню можна також призначити піктограму. Оберіть одне із зображень:

radial_menu_button_icon.png

Після вибору піктограми можна змінити її колір:

radial_menu_button_icon_color.png

Стандартні піктограми надаються Valve із клієнту Steam. Їх можна знайти в <SteamInstallDirectory>\Steam\tenfoot\resource\images\library\controller\binding_icons (і якщо додати власні, вони з’являються в цьому меню, але лише на вашому локальному комп’ютері). Розробники можуть надавати власні піктограми для радіальних та сенсорних меню, якщо помістять файли PNG в теку /TouchMenuIcons у кореневій теці гри.

Ось приклад власних піктограм розробника:

dqdx_sc_radial_icons.png

Цікавий факт

Як піктограми можна використовувати анімовані GIF!

Вкладені радіальні меню


Ви можете використовувати шари наборів дій для створення вкладених радіальних меню. Нижче надано приклад із гри Slime Rancher.

Посилання на створювану конфігурацію:
steam://controllerconfig/433340/1360133345

Ось завершений файл IGA для створюваної нами конфігурації:
slime_rancher_nested_radial_menus.vdf

Ось як це виглядає:

slime_rancher_0.png

Радіальне меню прив’язане до лівої сенсорної панелі й дозволяє обрати кілька внутрішньоігрових дій, як-от «Відкрити слаймопедію», «Увімкнути радар», «Відкрити мапу» тощо. Окрім того, є спеціальна дія для відкриття вкладеного радіального меню «Системні параметри».

slime_rancher_1.png

Якщо гравець клацне на нього, то потрапить у шар набору дій «Системні параметри». Наступного разу, коли гравець відкриє радіальне меню, то побачить:

slime_rancher_2.png

Тут є дії «Зробити знімок екрана», «Показати клавіатуру» й керування звуком. Є також можливість повернутися, яка деактивує шар набору дій «Системні параметри». Під час наступної активації радіального меню буде показано звичайні параметри:

slime_rancher_3.png

Ось як це встановити. Спершу необхідно створити шар набору дій. Клацаємо на «Додати шар набору дій».

slime_rancher_add_layer_1.png

Назвемо його «Системні параметри».

slime_rancher_add_layer_2_1.png

Після цього повертаємося до базової конфігурації й набору дій «Ігрове керування», де вибираємо ліву сенсорну панель і визначаємо наше базове радіальне меню:

slime_rancher_radial_menu_config_1.png

Усе як зазвичай, окрім кнопки меню 5, що активує шар набору дій. Він налаштовується за допомогою кнопки «Набір дій» на екрані розкладки, а потім «Застосувати шар дій» → «Системні параметри»:

slime_rancher_radial_menu_config_3.png

Зверніть увагу, що спеціальна кнопка «Набір дій» не з’явиться в меню розкладки, якщо не визначено жодного нестандартного набору дій. Це означає, що шар набору дій слід створити до того, як для нього буде встановлено спосіб активації. Дивіться розділ про шари наборів дій для докладнішої інформації.

Після встановлення нашого базового радіального меню потрібно також налаштувати радіальне меню в шарі набору дій оверлею. Повертаємося на екран базової конфігурації й обираємо нестандартний шар набору дій «Системні параметри»:

slime_rancher_radial_menu_config_4.png

Потім обираємо ліву сенсорну панель, де радіальне меню прив’язано до набору дій попереднього шару:

slime_rancher_radial_menu_config_5.png

Майте на увазі, що призначення для дій попереднього шару показані сірим кольором. Ми можемо перезаписати їх тут для створення вкладеного радіального меню. Якщо не змінити дію, то вона буде все ще показуватися й на другому шару радіального меню. Призначимо кнопкам різні поєднання системних дій (крім центральної дії nevermind). Зверніть увагу, що ми прив’язуємо команду шару набору дій до п’ятої кнопки меню, котра деактивує шар набору дій:

slime_rancher_radial_menu_config_6.png

Ось і все! Радіальне меню з двома шарами.

Повторюємо посилання на конфігурацію:
steam://controllerconfig/433340/1360133345

І на файл IGA:
slime_rancher_nested_radial_menus.vdf

Докладніше