Supporto controller avanzato
Autore: Holy87
Difficoltà:
★★★★★
Descrizione:
Come molti di voi sapranno, RPG Maker non riesce a gestire in modo ottimale i controller moderni simil-Xbox360 (con grilletti, analogici e vibrazione). I tasti infatti vengono ribaltati: ci si muove con l'analogico (che per 4 direzioni è più scomodo rispetto al D-Pad) e si utilizza X (del controller, Quadrato per PS4) per confermare.
Il Core Script che ho preparato vi permetterà di far gestire ad RPG Maker i controller moderni con le seguenti possibilità:
- Rimappatura dei tasti: Mette al posto giusto i tasti (A per selezionare, D-Pad per muoversi) ma potrete personalizzarli. Lo script oltrepassa la configurazione del controller che compare premendo F1 nel gioco.
- Supporto fino a 4 controller, ad esempio per (mini)giochi multigiocatore (arena? Schermo diviso? Co-op? Fate voi!)
- Supporto degli analogici: potete ottenere il valore preciso degli stick analogici destro e sinistro e dei grilletti dorsali (ad esempio per calibrare la forza)
- Vibrazione: possibilità di gestire la vibrazione su 2 diversi motori (sinistro e destro)
- Livello di batteria: potrete riconoscere se il controller è wireless e lo stato della batteria.
Per una gestione più semplice a chi nonconosce script e una più articolata per chi invece ne mastica, lo script è strutturato in tre strati diversi:
Il livello alto permette una gestione base dei controller attraverso variabili il call scritp da eventi, nel modo più semplice e sicuro possibile:
Puoi leggere lo stato degli analogici (valore da -32768 a 32737) e dei grilletti (valore da 0 a 255), nonché lo stato della batteria e la presenza di un controller tramite variabili di gioco
Puoi far vibrare il controller tramite i seguenti chiama script da evento:
controller_vibration(forza_sinistra, forza_destra, tempo)
dove forza_sinistra e forza_destra sono la potenza di vibrazione dei motori sinistro e destro del controller, mentre tempo è il tempo (in frame, 1/60 sec) di vibrazione
start_vibration(forza) #oppure start_vibration(forza_sinistra, forza_destra)
Fa cominciare la vibrazione per un tempo indeterminato
stop_vibration
ferma la vibrazione.
Lo strato medio riguarda il modulo Input dove potrete gestire i 4 controller, con stati e input. Per questo serve un minimo di comprensione di script (non troppo, però) e la documentazione la potete trovare nello script.
L'ultimo strato invece, quello basso, vi permette di ottenere i dati RAW del controller agendo direttamente sul core XInput. Inutile dire che solo chi ha conoscenze di programmazione può padroneggiare come si deve questo modulo, e pertanto è inutile spiegarvelo qui (troverete una documentazione adeguata nello script)
Istruzioni:
Lo script è plug & play: basta copiare e incollare nel proprio progetto (dove volete, ma per prassi meglio sotto Materials e prima del Main) per funzionare, ma ovviamente non si può fare molto senza sfruttarlo a dovere. Necessita del modulo di supporto universale.
FAQ
D: Quali controller sono compatibili?
R: Al momento sono nativamente compatibili i controller XBox 360, XBox ONE e tutti quelli moderni per PC, come il Logitech F710 e simili. Puoi trovare una lista dei controller compatibili a questo indirizzo. La lista non è completa, quindi se possiedi un gamepad non in lista e vuoi farmi sapere come va, contattami per informazioni :)
D: Che succede se il mio controller non è compatibile?
R: In questo caso, il controller non viene rilevato dallo script e viene utilizzata la libreria standard di RPG Maker VX. Cioè, niente configurazione tasti nelle opzioni, niente vibrazione, niente precisione con stick analogici e il personaggio si muoverà con l'analogico sinistro anziché il pad direzionale.
D: E i controller per PS3 e PS4?
R: Sony non ha mai reso disponibili i driver per PS3, ma puoi scaricare Motionjoy DS3 Tool per riconoscerlo e impostarlo come controller XBox 360. Per quanto riguarda il controller PS4, anche se sono stati rilasciati i driver Sony non l'ha reso compatibile con XInput ma come controller generico, tantomeno ha reso disponibile una libreria che permettesse ai giochi di sfruttarlo, e in questo caso lo script non riconoscerà il controller, che verrà visto come un classico joypad senza analogici. Solo i giochi su Steam possono usufruire di questo privilegio, ma ovviamente non è alla nostra portata. Nel caso abbiate un controller PS4 e vogliate usarlo per il gioco, quindi, non vi resta che scaricare Input Mapper e imposarlo come controller XBox.
"Ma Holy, io che non so fare niente non posso fare qualcos'altro?"
Certo! I seguenti script possono estendere l'utilizzo del controller:
Vibrazione in battaglia
Autore: Holy87
Difficoltà:
★★★★★
Questo script facile e veloce ha le seguenti funzioni:
- Farà vibrare il controller se viene eseguito (o subìto) un attacco critico,
- Potrai preparare un timing di animazione (come flash e SE) direttamente nelle animazioni del database per far vibrare il controller (ad esempio, per farlo vibrare con quando viene eseguita l'animazione di esplosione).
Come inserire la vibrazione nel timing dell'animazione?
Crea un nuovo timing;
1. Imposta il frame desiderato dove far iniziare la vibrazione (ma va?)
2. Imposta il flash come Bersaglio singolo
3. Imposta il valore Rosso a 1
4. Imposta il valore Forza del colore come potenza della vibrazione
* Novità: Puoi impostare la forza a 0 ed usare i colori verde e blu per scegliere rispettivamente la vibrazione destra e sinistra del controller!
5. Imposta il valore Tempo per la durata della vibrazione (1/15 secondi)
Il flash non verrà mostrato, e al suo posto ci sarà una vibrazione.
Settaggi controller
Autore: sempre Holy87
Difficoltà:
★★★★★
Non poteva mancare una voce nelle opzioni di gioco per gestire il game pad del giocatore!
Questo script aggiunge due nuove voci (selezionabili solo se un controller è connesso):
- Impostazione controlli: per assegnare i tasti personalizzati ai comandi di gioco,
- Impostazione vibrazione: per impostare la potenza della vibrazione (oppure, ovviamente, per disattivarla)
Non dovete fare altro che installare lo script sotto a quello delle Opzioni!
Screenshot:
Download:
Vecchia versione vibrazione (per compatibilità): xinput-vibration_v1.rb 4.98K 0 Numero di downloads
Tutti gli script sono rilasciati sotto licenza Creative Commons