‫Ciao e Benvenuto.
‫In questa lezione, aggiungeremo il movimento del controller in modo da poterci muovere usando un controller,
‫che è quello che stai vedendo in corso proprio qui, lo faremo, usando un diverso set di assi.
‫Guarda a destra e guarda a destra.
‫Giusto.
‫E vedremo perché è necessario.
‫Entriamo e scopriamo perché.
‫Quindi vogliamo essere in grado di muoverci nella nostra scena usando il controller.
‫Posso già farlo quando non sono in modalità di riproduzione.
‫Quindi vogliamo essere in grado di eseguire lo stesso tipo di movimento di questo con il panning con
‫la levetta destra e spostandoci a sinistra ea destra con la levetta sinistra.
‫E possiamo anche andare su e giù.
‫Ma non è qualcosa che l'app sarà in grado di fare perché non è un volo --.
‫Quindi quello che vorremo fare è, prima di tutto, che sia facile mappare il movimento.
‫Quello che dobbiamo fare è andare alle impostazioni del nostro progetto, andare fino a dove si trova l'input, input del motore, e abbiamo il nostro asse
‫di spostamento in avanti e abbiamo anche il nostro asse di spostamento a destra.
‫Ed è abbastanza semplice aggiungere un'altra mappatura oltre a W e S, che possiamo aggiungere nel nostro
‫gamepad.
‫Se guardiamo sul gamepad, puoi vedere la levetta sinistra che vogliamo che l'asse y si muova in
‫avanti, per spostarsi a destra.
‫Aggiungeremo di nuovo, i gamepad ed è il gamepad, sempre la levetta sinistra.
‫Ma questa volta stiamo facendo l'asse xey e possiamo vedere se questo è il giusto tipo di movimento.
‫Quindi vai avanti e premi play.
‫Uso ULP come scorciatoia per questo.
‫Quindi sinistra e destra funzionano avanti e indietro funzionano come ci aspetteremmo.
‫Ma ovviamente girare non funziona perché non l'abbiamo ancora mappato.
‫Quindi proviamoci.
‫Se andiamo alle impostazioni, alle impostazioni del progetto e all'immissione di nuovo.
‫Diamo un'occhiata.
‫Cercare.
‫Attualmente stiamo usando il mouse y.
‫Cosa c'è di sbagliato nel solo aggiungere qui?
‫Ad esempio, il gamepad, la levetta destra e questa volta l'asse y?
‫Bene, al primo tentativo possiamo andare a giocare un po'.
‫Questo potrebbe effettivamente sembrare a posto.
‫Quindi entriamo e puoi vedere che possiamo muoverci.
‫Si certo.
‫È un po' veloce, ma va bene così, vero?
‫Non va bene?
‫Beh, non proprio.
‫E il motivo alla fine si riduce ai frame rate e al modo in cui funzionano questi assi.
‫Quindi cosa succede con un mouse quando eseguiamo un gioco a 30 fotogrammi al secondo?
‫Quando muoviamo il nostro mouse da sinistra a destra sullo schermo a una velocità quasi uniforme, potremmo vedere che
‫i valori degli assi sono qualcosa come dieci, poi dieci, poi dieci.
‫E questo ci dice che ogni volta che il mouse si è spostato di dieci unità a destra e ha fatto
‫lo stesso ogni fotogramma.
‫Cosa succede se raddoppiamo il nostro frame rate?
‫Bene, improvvisamente il mouse si sta ancora muovendo alla stessa velocità perché il giocatore sta ancora muovendo la
‫mano alla stessa velocità.
‫Ma poiché mostriamo fotogrammi più spesso, abbiamo tick più spesso, quindi ciò che accadrà
‫è che l'input dagli assi verrà effettivamente dimezzato.
‫Ogni volta ne otterremo cinque, quattro, cinque, quattro, cinque, cinque, cinque.
‫Così fantastico, va bene, perché ciò significa che continueremo a eseguire la panoramica sullo schermo alla
‫stessa velocità, indipendentemente dal fatto che abbiamo un computer veloce o un computer lento.
‫Se muoviamo il nostro mouse di una certa quantità, noterai la stessa quantità di movimento, che è quello che
‫vogliamo.
‫Ora le cose cambiano un po' quando guardiamo il controller, diciamo di andare a tutto gas a
‫destra con il nostro controller analogico e sono 30 fotogrammi al secondo.
‫Ne prendiamo uno, poi uno, poi uno.
‫Ha senso, vero?
‫E se fossero 60 fotogrammi al secondo?
‫Ne prendiamo ancora uno, poi uno, poi uno, poi uno.
‫Ma ne otteniamo di più perché stiamo ottenendo più frame.
‫Se lo usi direttamente per influenzare il movimento del tuo --, vedrai che si muove al doppio della
‫velocità, al doppio del frame rate, non quello che vogliamo.
‫Quindi quello che vogliamo fare è introdurre qui una certa indipendenza dal frame rate.
‫Quindi, per fare questo, dobbiamo essere in grado di moltiplicare per il tempo delta.
‫In un certo senso vogliamo utilizzare l'asse di input per aiutarci a modulare la velocità di rotazione.
‫Quindi c'è un po' da prendere lì dentro.
‫Ma quello che voglio dire è che dobbiamo avere qualcosa come una variabile di velocità di rotazione.
‫Creeremo una nuova proprietà per questo, che sarà una modifica ovunque e avremo
‫che sarà un float e sarà la velocità di rotazione.
‫Ora userò la stessa velocità di rotazione sia in alto che a sinistra e a destra.
‫Puoi andare avanti e avere una variabile separata per entrambi.
‫E non so davvero quale sarà un buon tasso di rotazione qui.
‫Qui darò solo un'ipotesi volante perché non sono affatto sicuro di quali siano le unità coinvolte qui,
‫quindi vado avanti e dico dieci, ma vedremo.
‫Forse è troppo veloce.
‫Forse è troppo lento.
‫Possiamo modificarlo nel nostro progetto in modo da poter andare avanti e salvarlo.
‫A proposito, passerò al C++ anche per passare al C++.
‫E vorremo avere un nuovo tipo di accesso in modo da poter distinguere tra la mossa.
‫Destra, che è il movimento diretto del mouse rispetto alla mossa.
‫Giusto?
‫O meglio scusa, lo sguardo.
‫Giusto, qual è il tasso.
‫Quindi lo faremo andando alle impostazioni del nostro progetto e invece di avere questa levetta sinistra del
‫gamepad mappata sulla mossa.
‫Giusto, scusa, non quello di sinistra ma quello di destra mappato per cercare in alto.
‫Continuo a fare quell'errore, rimuoverlo dall'asse e aggiungere un nuovo asse che sarà l'aspetto.
‫Su.
‫Giusto.
‫E questo prenderà un gamepad, giusto?
‫Quindi gamepad.
‫Giusto.
‫Asse Y.
‫Perché è uno sguardo in alto e stiamo dicendo che quello positivo dovrebbe essere quello che stiamo usando.
‫Quindi quello che possiamo fare è mapparlo e non vogliamo mapparlo direttamente sul controller ADD.
‫È perché abbiamo bisogno di fare un po' di matematica per calcolare le tariffe e renderle indipendenti dal
‫frame rate.
‫Quindi quello che faremo è andare da Ultimo e crearci un look, che abbiamo
‫già qui.
‫E lo creerò come guardare in alto, a destra e andare avanti e creare questo spostamento di controllo.
‫P E io guarda, usa il mio plug-in di implementazione corretto.
‫Andiamo avanti e diamo un'occhiata all'implementazione del tasso.
‫Hai un valore dell'asse in arrivo?
‫È fantastico.
‫Quindi vogliamo assicurarci che sia ciò che chiamiamo nel componente di input del giocatore di configurazione.
‫Quindi creiamo una nuova linea qui, duplichiamo il look.
‫Bene, lo chiamerò cerca.
‫Giusto, così e poi copia e incolla il file.
‫Riferimento completo alla funzione da chiamare.
‫Alzo lo sguardo in quel momento.
‫In sostanza, ciò che vogliamo chiamare alla fine della giornata è aggiungere input controller, input pitch controller
‫pitch.
‫Ma vogliamo moltiplicare questo per un paio di cose.
‫Quindi il valore di accesso arriva come un valore compreso tra zero e uno.
‫Se moltiplichiamo questo valore dell'asse moltiplicato per la velocità di rotazione.
‫Quindi quello che otterremo è una velocità.
‫Ma quello che vogliamo è in realtà una distanza.
‫Come quando abbiamo spostato il mouse, ci siamo spostati a una certa distanza, ogni fotogramma.
‫Ecco cosa stava arrivando.
‫Vogliamo convertire questa velocità in distanza.
‫E se ricordi un po' di tempo fa, qualche lezione di matematica confusa, per passare dalla velocità alla distanza, dobbiamo
‫moltiplicare per la quantità di tempo.
‫Quindi lo facciamo ottenendo i nostri secondi Delta dal mondo.
‫Ora, cosa sono i secondi Delta?
‫Questa è la quantità di tempo impiegata per l'ultimo fotogramma.
‫Quindi è un po' l'opposto del frame rate.
‫Ci sta dicendo quanto tempo impiega un fotogramma, il che è fantastico perché è la quantità di tempo su cui abbiamo
‫bisogno per applicare questo movimento.
‫Quindi, se ci pensi, abbiamo la velocità, abbiamo una quantità di tempo su cui dobbiamo applicare
‫quella velocità.
‫Ci dà una quantità di movimento che vogliamo essenzialmente applicare all'input del tono del controller.
‫Quindi è quello che vogliamo.
‫Prendi il mondo, prima di tutto, perché vogliamo ottenere il livello di, sai, ottenere il mondo che ci circonda.
‫E poi da quello, usiamo la funzione freccia per ottenere i secondi delta, che ci dice che vogliamo ottenere la quantità di tempo trascorso
‫nell'ultimo fotogramma, il che ci dà, ancora una volta, questa approssimazione del nostro frame
‫rate al momento momento nel tempo.
‫Ora, ti starai chiedendo perché non stiamo facendo lo stesso con l'input di movimento.
‫E il motivo è che l'input di movimento, quando fai un input di annuncio lì, sta
‫già supponendo che sia un tasso, non una quantità effettiva di movimento.
‫Quindi sta già facendo questo calcolo per noi, essenzialmente sotto il cofano, salvare i file, andare
‫nell'irreale e compilare e vedere se ne vale la pena.
‫Quindi entriamo in gioco e proverò a utilizzare l'input del mio controller.
‫Eccoci.
‫Stiamo andando su e giù piuttosto lentamente.
‫Ma si spera che questo sia completamente indipendente dal frame rate perché abbiamo usato quel delta time.
‫Quindi quello che voglio che tu faccia è andare avanti e implementare il tasso di look giusto.
‫Quindi ripeti lo stesso metodo impostato per guardare a destra come ha fatto per guardare in alto e modificare la velocità in
‫modo che non vada molto lentamente e tu possa effettivamente usarlo per spostarti nel livello.
‫Metti in pausa il video e prova.
‫Bene.
‫Ben tornato.
‫Quindi il primo passo è stato quello di creare una nuova mappatura degli assi nelle impostazioni del nostro progetto.
‫Lo faremo di nuovo, questa volta per il look.
‫Giusto?
‫Giusto.
‫Così che boccone.
‫Quindi andremo a prendere il gamepad.
‫I diritti questa volta e l'asse X.
‫Questo è ciò su cui faremo la mappatura.
‫E poi andremo a spararle la testa per tutto questo tempo.
‫Ho intenzione di duplicare la ricerca in questo momento.
‫Lascia che ti mostri i file in modo che tu possa vedere dove mi trovo sul lato sinistro.
‫Quindi di nuovo, invece di guardare in alto.
‫Giusto.
‫Sarà l'aspetto.
‫Giusto.
‫Control shift p ottima implementazione.
‫E avremo praticamente esattamente lo stesso codice con la stessa moltiplicazione che ci sta
‫portando, ancora, da una velocità a una quantità di distanza spostata.
‫Questo è lo sguardo.
‫Giusto giusto.
‫Quindi, invece di aggiungere l'intonazione del controller, questa volta dobbiamo inserire il tuo input e il tasso di
‫look corretto dovrà essere chiamato dal nostro componente di input del giocatore impostato o deve essere
‫chiamato quando l'asse viene effettivamente manipolato.
‫Quindi aggiungeremo un altro set avanzato di frequenza di ricerca dell'asse.
‫Sarà la tariffa giusta per l'aspetto.
‫E quindi vorremo copiare quel riferimento alla funzione e portare la e commerciale prima e poi le
‫questioni pienamente qualificate.
‫Carattere.
‫Due punti, due punti.
‫Aspetto.
‫Giusto giusto.
‫Andiamo avanti e salviamo sia quello che l'intestazione del file.
‫Torna nel progetto ed esci dal gioco che ho lasciato andando a compilare qui e poi.
‫Dovremmo essere in grado di tuffarci e divertirci.
‫Così.
‫Su e giù funziona lentamente, a destra ea sinistra.
‫Non proprio come mi aspetterei.
‫Controlliamo le impostazioni del nostro progetto.
‫Quindi il nostro look.
‫Giusto.
‫Sembra a posto.
‫Levetta.
‫Giusto.
‫Accesso tramite levetta.
‫Controlliamolo.
‫Tutto ciò sta passando correttamente nel C++ con un aspetto dell'asse.
‫Giusto.
‫sta chiamando guarda.
‫Giusto.
‫Funzione o cuciture per chiamare il tuo input come dovrebbe essere.
‫Dana, cosa è successo lì?
‫Ho appena premuto di nuovo ricompila e poi ho premuto di nuovo riproduci.
‫A volte devi farlo.
‫Ma ora guardare a destra ea sinistra sta lavorando su e giù sta funzionando, anche se a un ritmo molto, molto
‫lento.
‫Quindi modificheremo il progetto del nostro personaggio.
‫Andiamo a trovare il personaggio dello sparatutto.
‫Apri i suoi progetti.
‫E poi scorriamo verso il basso e troviamo la velocità di rotazione.
‫Quindi moltiplicherò solo per dieci.
‫Prova a diventare dieci volte più veloce di quanto troverò un valore che abbia senso da qualche parte nel mezzo.
‫Questo è sempre un modo in cui puoi provare a trovare i valori semplicemente andando e cambiando prima l'ordine di
‫grandezza.
‫Bene, questo è molto più vicino allo stadio giusto.
‫Forse è un po' troppo sensibile, quindi forse lo sbatto della metà.
‫Prova circa 50 questa volta.
‫Non 500, ma 50.
‫Proviamolo.
‫Premi play e muovi il mio bastone.
‫Bene.
‫È molto più naturale.
‫Potresti voler andare da qualche parte solo un po' in mezzo a quei due.
‫Quindi vai tra i due.
‫Ancora una volta, dirò circa 70 questa volta, piuttosto che arrivare fino a 170 potrebbe essere la tariffa giusta.
‫Vediamo se abbiamo raggiunto l'oro.
‫Penso di sì.
‫Penso che 70 sarà la tariffa giusta per spostarmi.
‫Ovviamente, questo è il genere di cose che spesso i giochi ti permettono di modificare, consentirà al giocatore
‫di modificare le impostazioni.
‫Non lo esamineremo.
‫Va oltre lo scopo di questa sezione, ma è qualcosa che potresti potenzialmente voler esporre agli
‫utenti nei tuoi giochi.
‫Freddo.
‫Quindi in quella lezione abbiamo visto la differenza tra l'input del controller e l'input del mouse
‫e come dobbiamo gestire i tassi invece dei movimenti assoluti.
‫Quindi, nella prossima lezione, esamineremo quella telecamera in terza persona a cui continuavo a accennare.
‫Guarda quello?