Documentazione di Steamworks
Concetti generali

Steam Input

"Steam Input" è il termine generico per tutte le utilità software, hardware e di configurazione utilizzate da Steam per interfacciarsi con i giochi.

Configuratore dell'input di Steam

Il configuratore di Steam Input (CSI) è integrato nel client di Steam e si trova tra il giocatore e il suo gioco/applicazione. Il CSI riceve l'input dal dispositivo di input e, prima di passare i dati al gioco, li traduce in modo appropriato in base alle impostazioni del giocatore.

Il CSI può essere utilizzato principalmente in due modi: in modalità legacy e in modalità nativa.

Modalità legacy

La modalità legacy è una modalità di compatibilità progettata per i giochi che non hanno implementato l'API di Steam Input. In questo caso, il CSI funziona come un sofisticato mappatore di input che tutti i giocatori possono utilizzare per tutti i giochi su Steam.

Il giocatore può rimappare qualsiasi input fisico esistente su un altro input fisico disponibile: il pulsante "A" può simulare il tasto "Invio" della tastiera, la pressione completa del grilletto analogico sinistro può simulare il clic del mouse e così via. Questa modalità funziona con qualsiasi dispositivo di input supportato, non solo con lo Steam controller.

La modalità legacy è adatta per funzionare con i giochi che non hanno mai supportato l'API, ma presenta alcune limitazioni. Per citarne una, i giochi programmati per presupporre che i comandi del controller e del mouse non saranno mai attivi in modo simultaneo sono noti per soffrire di numerosi difetti di funzionamento nel caso in cui la configurazione dell'utente violi tali presupposti. Inoltre, il gioco non sa che si sta utilizzando il configuratore (riceve solo ingressi hardware di basso livello emulati dal configuratore), quindi i glifi di input per il controller probabilmente non combaceranno.

Modalità nativa

In modalità Nativa, il gioco riceve i dati di input direttamente dal configuratore sotto forma di & quot;azioni.& Quot; L'idea qui è che il gioco stesso non ha alcuna conoscenza di quali input reali stiano guidando le suddette azioni, ma semplicemente che le azioni stiano accadendo. Tutte le impostazioni di configurazione e dei controlli sono relegate al configuratore dello Steam Input. Detto questo, con una speciale chiamata API il gioco può richiedere informazioni sui comandi fisici assegnati alle azioni, puramente allo scopo di visualizzare le icone appropriati sullo schermo.

API di Steam Input

L'Api di Steam Input è l'interfaccia di programmazione per le applicazioni che gli sviluppatori utilizzano per comunicare direttamente con il CSI in modalità nativa. L'API non è necessaria per supportare la modalità legacy.

Puoi trovare la relativa documentazione completa alla sezione ISteamInput.

Configurazione del controller

I giocatori possono creare mappature di input completamente personalizzate per qualsiasi gioco presente nella loro libreria, utilizzando la modalità nativa, la modalità legacy o anche un mix di entrambe. Tali mappature di input sono chiamate "configurazioni del controller": un giocatore può crearne svariate per ciascun gioco, così come condividerle con gli altri utenti online.

Gerarchia degli input

Input fisici

Un "input fisico" è un vero e proprio meccanismo fisico presente su qualsiasi dispositivo di input con cui l'utente interagisce per generare dati di input per il computer. Questi input possono essere sia digitali che analogici e possono provenire da pulsanti, joystick, D-pad, pulsanti dorsali, grilletti, interruttori, cappelli, trackball, trackpad, giroscopi, eccetera.

Stiamo per avventurarci in concetti più astratti, quindi ricorda che con "input fisici" si intendono le piccole componenti del tuo dispositivo che premi fisicamente con le dita (o con i piedi, se è così che preferisci).

Fonti di input

Una "fonte di input" è una regione del dispositivo che può essere considerata come un'unità modulare più grande a cui è possibile applicare una qualsiasi delle diverse modalità per modificare il tipo di output dei dati fornito.

Vedi, ti avevo detto che stavamo per avventurarci in concetti astratti!

Facciamo un esempio pratico: qual è la differenza tra un D-pad e quattro pulsanti frontali disposti a diamante?

input_dpad.pnginput_bpad.png

Entrambi hanno quattro "pulsanti" digitali, ma la maggior parte dei D-pad sono progettati in modo tale da rendere impossibile premere su+giù o sinistra+destra allo stesso momento, mentre ogni pulsante frontale può essere premuto indipendentemente. Lo Steam Input, invece, ti lascia imporre sui pulsanti frontali le stesse restrizioni a cui è soggetto un D-pad.

Anche se il D-pad e il gruppo di quattro pulsanti frontali sono composti ognuno da quattro "input fisici" individuali, è meglio considerarli il "D-pad" e i "pulsanti frontali" come unità distinte, così da poter modificarne il comportamento.

Elenco completo delle fonti di input:

  • Trackpad sinistro
  • Trackpad destro
  • Trackpad centrale
  • Joystick sinistro
  • Joystick destro
  • ABXY
  • D-pad
  • Grilletto sinistro
  • Grilletto destro
  • Giroscopio
  • Tasto bifase
Nota: la fonte di input "interruttore" viene utilizzata per tutti gli input fisici che non appartengono agli altri gruppi, come i pulsanti indietro e start, i pulsanti dorsali e i pulsanti dell'impugnatura.

Vedi anche:

Modalità della fonte di input

Alle fonti di input possono essere imposte diverse modalità per modificarne il comportamento, che prendono il nome di "modalità della fonte di input". Sebbene siano utili per gli input digitali, è molto frequente che vengano usate quando si tratta di controlli analogici, specialmente con i trackpad, che possono essere configurati in molti modi diversi.

Elenco completo delle modalità della fonte di input:

  • D-pad
  • Quattro pulsanti
  • Mouse assoluto
  • Mouse relativo
  • Movimento con il joystick
  • Mouse simile a joystick
  • Telecamera con il joystick
  • Rotellina
  • Grilletto
  • Menu touch
  • Joystick simile a mouse
  • Regione mouse
  • Menu radiale
  • Interruttori

Vedi anche:

Un rapido riassunto:

Input fisici:
le componenti fisiche con cui interagisci sul dispositivo. Ad esempio il pulsante A, l'input "su" sul D-pad, eccetera.

Fonti di input:
un gruppo più ampio di input fisici individuali che possono essere raggruppati in un'unità modulare. L'intero D-pad, i quattro pulsanti frontali, l'intera sezione sinistra del joystick, eccetera.

Modalità della fonte di input:
un comportamento specifico che si sta forzando su una fonte di input. Ad esempio "i pulsanti frontali agiscono come un D-pad", "il joystick sinistro agisce come i quattro pulsanti frontali", eccetera.

Azioni

Le azioni sono gli eventi che l'API di Steam Input utilizza per coordinare tutto. In modalità nativa, il tuo gioco non conterrà un evento "Pulsante A premuto" ma semplicemente un evento "Salta" (o qualunque altra azione). Il tipo di input che attiverà "Salta" è deciso dal giocatore.

Azioni digitali

Le azioni digitali sono il tipo di azione più semplice e più comune. Possono essere solo attive o non attive, quindi il gioco non fa altro che verificare continuamente lo stato di queste azioni e ricevere la relativa risposta.

Azioni analogiche

Le azioni analogiche presentano uno o più assi di dati e vengono utilizzate, ad esempio, per muovere in modo omogeneo i personaggi, guidare i veicoli, controllare le telecamere e via dicendo. Le azioni standard guidate dal joystick e dal mouse hanno solitamente due assi (X e Y), ma è prevista la possibilità di usare anche le azioni analogiche ad asse singolo (come quelle comunemente assegnate ai grilletti analogici). In questo caso, i dati dell'azione segnaleranno ancora due assi, ma l'asse Y avrà sempre valore zero.

Nome dell'azione

Tutte le azioni richiedono un nome identificativo, come "salta" o "colpisci". Questi valori di stringa non rappresentano il testo visualizzato dal giocatore, che è invece quanto riportato sotto "Etichette dell'azione" (e che può essere tradotto).

Handle dell'azione

Il polling per le azioni basato sui nomi delle stringhe è dispendioso e inefficiente. Pertanto, quando il gioco inizializza l'API, deve registrare tutte le azioni per nome ricevendo come restituzione i corrispondenti handle dell'azione in numeri interi.

Origine dell'azione

L'origine dell'azione è una stringa che identifica il tipo di input associato a un'azione specifica nella configurazione del dispositivo di input del giocatore.

Set di azioni

Un set di azioni è un raggruppamento logico di azioni associate. È possibile attivare un solo set di azioni per dispositivo di input in un dato momento. Ad esempio, è possibile creare un set di azioni "menu" che sia attivo solo durante le sequenze del menu, come pure un set di azioni "guidare", "camminare" e "volare" per giochi che, come GTA V, sono caratterizzati da modalità multi veicolo e multi movimento. I set di azioni esistono sia in modalità nativa che legacy. In modalità nativa vengono definiti in modo esplicito dallo sviluppatore: il gioco effettuerà le chiamate alle API per indicare quale set di azioni è attualmente attivo. In modalità legacy, i cambi di set di azioni devono essere attivati manualmente dal giocatore stesso. In entrambi i casi, i set di azioni sono un modo per liberare spazio sul dispositivo di input: rimuovono la necessità di assegnare in modo permanente ogni singola azione di ciascun contesto del gioco e consentono di non doverle lasciare sempre attive.

Layer di set di azioni

I layer di set di azioni sono set di assegnazioni di azioni opzionali che possono essere sovrapposti a set di controlli già esistenti. Diversamente dai set di azioni, i layer traggono le loro azioni dal set di azioni all'interno di cui esistono e invece che rimpiazzare un'azione già attiva, applicano delle piccole modifiche. Ad esempio, possono modificare delle impostazioni, oppure aggiungere o rimuovere assegnazioni dal set di azioni base. I layer vengono applicati consecutivamente e se ne possono applicare più di uno alla volta.

Per ulteriori dettagli, consulta Layer di set di azioni.

Risposta fisica

In aggiunta a ciò che avviene sullo schermo, alcuni dispositivi di input sono in grado di fornire feedback ai giocatori attraverso vibrazione e luce.

Risposte aptiche

Le risposte aptiche restituiscono sensazioni fisiche molto accurate che aiutano il giocatore a capire dove siano posizionate le sue mani e le sue dita su una superfice touch ampia, nonché per rendere l'inerzia virtuale di una trackball emulata. Le risposte aptiche sono supportate dai Controller Steam e da alcuni controller Nintendo Switch. I dispositivi non supportati ignoreranno le chiamate API per le risposte aptiche.

Vibrazione

Una forma di feedback fisico più tradizionale, la vibrazione è causata da motori interni che scuotono il dispositivo. Questa funzionalità è supportata dai controller PlayStation 4 e Xbox (e anche da molti dispositivi generici compatibili con Xinput). Lo Steam Controller non presenta una vera e propria vibrazione, ma ne emula un'approssimazione utilizzando il feedback aptico (e dunque risponderà alle chiamate dell'API per la vibrazione).

LED

I controller Steam e PlayStation 4 sono entrambi dotati di un LED incorporato. La luce dello Steam Controller è sempre bianca, mentre il controller PlayStation 4 presenta un LED colorato interamente programmabile. Entrambi questi dispositivi risponderanno alle chiamate API per modificare il colore della luce, ma lo Steam Controller le convertirà in un colore monocromatico per controllare la luminosità, mentre il controller PlayStation 4 regolerà sia la luminosità che il colore. I dispostivi non supportati ignoreranno le chiamate API per il LED.