Documentação do Steamworks
Menus radiais
Um menu radial é um conjunto de ações do jogo, dispostas em um formato circular e selecionáveis com um controle. Funciona de forma similar a Menus de toque, mas em vez de selecionar um local específico na superfície de toque, o jogador precisa usar o ponteiro virtual para selecionar a opção que deseja e então selecioná-la para disparar a ação associada.

É possível usar menus radiais para trocar armas em um jogo de tiro, ativar atalhos em um jogo de estratégia ou MMO, ou o que der na telha. Menus radiais podem ser configurados com os mais variados comportamentos e visuais, além de decorados com rótulos e ícones personalizados (fornecidos pela Valve, pelo desenvolvedor ou pelo jogador).

Exemplo do uso de menus radiais para a seleção rápida de feitiços em Defender's Quest: Valley of the Forgotten:

dqdx_radial_menu.png

O menu radial no centro da tela não faz parte do código de Defender's Quest, mas sim do Painel Steam e do configurador de controles do Steam. O aplicativo de Defender's Quest só é responsável por receber e processar ações enviadas pela API da Entrada Steam.

Menus radiais estão disponíveis nos modos nativo e clássico, mas só podem ser vinculados a certas Fontes de entrada:

Fonte de entradaPermite uso de menu radial
Trackpad
Direcional
Botões frontais
Alavanca
Giroscópio
Interruptores
Gatilhos

Para criar um menu, selecione uma fonte de entrada compatível na configuração do jogo (como uma alavanca ou trackpad) e selecione "menu radial" como o estilo de entrada.

radial_menu_create.png

Exemplo da tela de configuração de menu radial:
radial_menu.png

Opções básicas

Estilo de ativação do menu


Determina o funcionamento do menu radial — a ação deve ser disparada ao apontar para ela e soltar, você deverá pressionar algo primeiro ou deve ser disparada continuamente enquanto estiver selecionada?

Opções disponíveis:

Estilo de ativação do menuDescrição
Ao clicar botãoAção selecionada dispara ao pressionar a entrada
Ao soltar botãoA ação selecionada só é disparada ao pressionar e depois soltar a entrada
Ao deixar de tocar / alterar modoA ação selecionada é disparada quando a entrada for interrompida (como soltar um botão ou tirar o dedo de um trackpad/alavanca) ou, se o menu radial estiver configurado como alteração de modo, esta alteração for revertida.
SempreDispara a ação enquanto estiver selecionada

Outras opções


OpçãoDescrição
Posição horizontal / vertical na telaOnde na tela o menu radial deve ser exibido? Valores vão de 0,0 a 1,0, sendo zero a lateral esquerda / topo da tela, e um a lateral direita / parte de baixo.
Opacidade do menuO menu radial tem um fundo preto, cuja transparência pode ser controlada. Os ícones das ações, por outro lado, sempre serão exibidos com 100% de opacidade.
Tamanho do menuQual o tamanho do menu? Um fator de escala indo de 0,0 a 1,0, indo de minúsculo a gigante.
Exibir rótulo do comando no botãoBotões do menu radial podem exibir um rótulo textual do que está vinculado no botão. Caso um ícone seja usado, o rótulo será exibido no canto superior esquerdo. Caso desativado, o ícone ou um botão em branco será usado.
Ação do cliqueEsta é uma ação vinculada não a uma entrada, mas sim ao menu radial. Útil quando combinado com o tipo de ativação "Sempre". Um exemplo natural é vinculá-la à ação de "pausar"; desta forma, abrir o menu radial pausa o jogo, dando tempo para que faça a sua escolha.

Botões do menu


Cada opção de "Botão X do menu" pode ter uma ação (ou tecla do modo clássico) associada. A tela de configuração básica tem cinco botões, mas é possível ter até vinte (selecione "Configurações adicionais" para configurar os botões 6 a 20).

radial_menu_button.png

Botão central/não selecionado


Há também um botão "central" opcional no centro do menu radial que pode ser configurado como qualquer outro botão do menu radial. Observe que que este botão se torna maior com a adição de mais botões comuns.

DICA: Botão central cancela

Dependendo do jogo, pode ser desejável ter uma forma do jogador facilmente fechar o menu radial sem ativar nada. Se estiver usando o estilo de ativação "Ao deixar de tocar / alterar modo", pode ser complicado, já que a última ação selecionada será disparada assim que fechar o menu radial.

Uma boa forma de fazê-lo é criar uma ação completamente inútil no jogo (com um nome como "esquece") e vinculá-la ao botão central. Ou, se você for o jogador e o desenvolvedor não oferece tal ação (ou está usando o modo clássico), vincule o botão central a uma tecla não usada pelo jogo. Então, selecione um ícone de "X" para esse botão.

Prontinho! Agora, sempre que desejar interromper o uso do menu radial sem realizar qualquer ação, volte à posição central e solte a entrada.

Ícones dos botões do menu


É possível associar um ícone para cada botão do menu. Selecione a caixa ao lado do botão "Ícone" para associar:

radial_menu_button_icon.png

É possível alterar a cor do ícone selecionado:

radial_menu_button_icon_color.png

Por padrão, os ícones disponíveis são os fornecidos pela Valve e incluídos no cliente Steam. Eles estão na pasta <diretório de instalação do Steam>\Steam\tenfoot\resource\images\library\controller\binding_icons (é possível adicionar os seus próprios ícones aqui, mas só funcionarão no seu computador). Desenvolvedores podem fornecer os seus próprios ícones para uso em menus radiais (e menus de toque) por meio de arquivos com extensão PNG no diretório /TouchMenuIcons dentro do diretório raiz do jogo.

Exemplo de ícones personalizados de desenvolvedor:

dqdx_sc_radial_icons.png

Curiosidade

É possível usar GIFs animados como ícones!

Sequências de menus radiais


É possível usar Camadas de conjuntos de ações para criar sequências de menus radiais. Oferecemos um exemplo usando o jogo Slime Rancher.

Link para a configuração que criaremos agora:
steam://controllerconfig/433340/1360133345

E aqui está o arquivo IGA pronto para a configuração que criaremos agora:
slime_rancher_nested_radial_ menus.vdf

E aqui a está em ação:

slime_rancher_0.png

O menu radial está associado ao trackpad esquerdo e permite selecionar várias ações no jogo, como "Abrir Slimepédia", "Alternar exibição do radar", "Abrir mapa" etc. Mas também há uma opção para abrir um outro menu radial, "Opções do sistema":

slime_rancher_1.png

Selecioná-la abrirá a camada de conjunto de ações "Opções do sistema", criada pelo jogador. Da próxima vez que abrirmos o menu radial, veremos isto:

slime_rancher_2.png

Agora temos opções como "Capturar tela", "Exibir teclado" e controles de volume. Também há uma opção para "Voltar", que desativa a camada "Opções do sistema" e faz com que as opções normais sejam exibidas da próxima vez que ativarmos o menu radial:

slime_rancher_3.png

Para configurar, fazemos assim: Primeiro, criamos uma camada personalizada. Clicamos em "Adicionar camada de ações".

slime_rancher_add_layer_1.png

Ela terá o nome de "Opções do sistema".

slime_rancher_add_layer_2_1.png

Depois de criar a camada, voltamos à configuração base e ao conjunto de ações "Controles do jogo", selecionamos o trackpad esquerdo e configuramos o menu radial base:

slime_rancher_radial_menu_config_1.png

Tudo está como esperado, menos o botão 5 do menu, que ativa a camada. Para tal, selecionamos o botão especial de conjunto de ações na tela de seleção de comando e selecionamos "Aplicar camada de ações --> Opções do sistema" na janela que foi aberta:

slime_rancher_radial_menu_config_3.png

Observe que o botão especial de conjunto de ações só aparece se houver conjuntos de ações personalizados definidos. Desta forma, crie a camada antes de configurar como será ativada. Consulte o artigo Camadas de conjuntos de ações para mais informações sobre a criação de camadas.

Depois de configurar o menu radial base, precisamos configurar o menu radial da camada. Voltamos à tela base de configuração e selecionamos a camada "Opções do sistema":

slime_rancher_radial_menu_config_4.png

Então selecionamos o trackpad esquerdo, ao qual o menu radial do conjunto de ações base está associado:

slime_rancher_radial_menu_config_5.png

Observe que podemos ver os comandos do conjunto inferior em cinza. Podemos substituí-los aqui para criar uma sequência de menus radiais. Ações inalteradas serão exibidas em ambos os menus radiais. Vamos substituir todas as ações com comandos do sistema (com a exceção da ação "esquece" central). Em especial, vinculamos um comando para desativar a camada ao quinto botão do menu:

slime_rancher_radial_menu_config_6.png

Pronto! Um menu radial de duas camadas.

Novamente, o link para a configuração:
steam://controllerconfig/433340/1360133345

E o arquivo IGA:
slime_rancher_nested_radial_menus.vdf

Leitura recomendada