>_ DevTrendsit

Lingua

Home

Linguaggi

Sezioni

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embedded Sicurezza
C-plus-plus

Come visualizzare in modo pulito gli input da tastiera e gamepad nel tuo stream OBS Studio

logo

Quando registravo i miei primi screencast per illustrare le scorciatoie da tastiera nel mio editor di codice, continuavo a pensare: gli spettatori non hanno idea di cosa sto premendo. Dovevo o chiamare ad alta voce ogni combinazione come Ctrl+Shift+P, oppure disegnare manualmente suggerimenti durante il montaggio. Non è l'ideale, soprattutto quando il video dura mezz'ora.

I giocatori e gli speedrunner affrontano questo problema ancora più spesso. Mostrare i tempi delle pressioni del gamepad o i meccanismi di bunny-hop in uno shooter senza un overlay visivo è praticamente impossibile.

Di solito questi compiti vengono risolti con workaround: lanciando un'utilità di terze parti in una finestra separata e catturandola attraverso OBS usando Window Capture con una chiave colore. Questo consuma risorse CPU extra e appare disordinato. Il plugin input-overlay dello sviluppatore univrsal risolve questo in modo diverso. Si integra direttamente in OBS Studio come sorgente nativa.

Cosa può fare questo plugin

Il progetto è scritto in C++ e funziona sulle versioni a 64 bit di Windows e Linux. Il suo compito è semplice: intercettare gli input dai dispositivi e disegnarli sulla scena in tempo reale con latenza minima.

I dispositivi supportati includono:

  • Tastiere standard (con supporto per qualsiasi layout e modificatori)
  • Mouse (tracciamento dei pulsanti, rotella di scorrimento e movimento del cursore)
  • Gamepad e controller (Xbox, PlayStation, DirectInput/XInput universali)

Invece di un primitivo log di testo, il plugin usa texture e sprite personalizzati. Prendi un'immagine di un gamepad o tastiera, la dividi in stati (pulsante rilasciato / pulsante premuto) e associ le grafiche agli eventi di sistema.

Cosa c'è dentro: architettura e dipendenze

Il codebase del progetto contiene diverse soluzioni interessanti. Per evitare di reinventare la ruota per ogni tipo di dispositivo, l'autore ha incluso librerie di basso livello collaudate.

Per l'intercettazione globale di tastiera e mouse, usa libuiohook. Questa libreria funziona a livello di hook di sistema del sistema operativo, il che rende possibile ascoltare gli input anche quando la finestra di OBS è in background o un gioco è in esecuzione in modalità schermo intero.

I gamepad sono gestiti da SDL2. Questo garantisce un'eccellente compatibilità con controller di diverse generazioni senza dover gestire descrittori di dispositivi raw.

L'integrazione con mongoose merita un'attenzione particolare — un server web embedded leggero. Perché un plugin di cattura dei tasti ne avrebbe bisogno? Se stai trasmettendo da due computer (uno per il gaming, l'altro come encoder di streaming), puoi inviare eventi di input sulla rete locale dal PC da gaming direttamente all'istanza di OBS sulla macchina di streaming. Una funzionalità molto intelligente che elimina il disordine dei cavi.

Come costruire il tuo overlay personalizzato

La configurazione del plugin consiste in due file: una texture grafica PNG e un file di layout JSON.

In precedenza il progetto usava il formato .ini, ma alla fine è passato a JSON. Così non devi calcolare le coordinate dei pixel dei pulsanti in un blocco note, l'autore ha rilasciato un editor web visivo chiamato Config Creation Tool (CCT).

Carichi il tuo sprite sheet nel browser, posizioni i riquadri di selezione sui pulsanti, li colleghi ai codici dei tasti ed esporti la configurazione finita:

Dopo di che, aggiungi semplicemente una nuova sorgente "Input Overlay" in OBS Studio, puntala al JSON e al PNG, e il widget è pronto. Il plugin renderizza le texture attraverso la pipeline grafica di OBS, quindi il sovraccarico di rendering è praticamente nullo.

Dove può essere utile per gli sviluppatori

Potrebbe sembrare uno strumento strettamente per streamer. Ma per i contenuti tecnici è altrettanto utile:

  1. Registrazione di screencast educativi. Dimostrare le scorciatoie in Vim, Emacs, Blender o VS Code aiuta gli spettatori a replicare le azioni al volo senza distrarsi dalle pause.
  2. Test di gamepad e latenza di input. Se stai sviluppando un gioco indie o un emulatore, l'overlay ti permette di verificare visivamente le pressioni del controller con le reazioni del personaggio sullo schermo.
  3. Presentazioni e demo di team. Durante scenari UI complessi o tutorial di utility da terminale, gli spettatori vedono immediatamente i modificatori e i tasti funzione.

Sfumature e limitazioni

La documentazione nel repository è concisa, quindi i principianti dovranno dedicare mezz'ora a comprendere la struttura degli sprite. Creare una skin curata da zero richiede competenze base nell'editor grafico.

Considera anche la privacy. Poiché gli hook intercettano gli input a livello globale, durante uno stream o una registrazione video l'overlay mostrerà fedelmente qualsiasi sequenza di tasti se inizi a digitare password o dati privati. Per questi casi, è meglio configurare in anticipo un hotkey per nascondere la sorgente in OBS.

Il plugin è anche focalizzato su Windows e Linux x64 — le build per macOS non sono ufficialmente supportate.

Vale la pena provarlo

Se hai bisogno di un modo pulito e performante per visualizzare gli input dei dispositivi in OBS senza workaround con il browser e cali di frame, input-overlay è una delle opzioni più affidabili.

Il progetto è attivo dal 2017, ha raccolto oltre 4.000 stelle e affronta un compito specifico senza appesantire il codebase. I binari precompilati sono disponibili nella scheda Releases su GitHub, e preset pronti all'uso per gamepad e tastiere si trovano sui forum del progetto OBS.

Progetti correlati