‫Ciao e Benvenuto.
‫In questa lezione creeremo una pistola e impareremo come architetteremo le pistole per
‫questo gioco in modo che siano intercambiabili, in modo da poter avere proprietà diverse su diversi tipi
‫di pistole.
‫Ed è generalmente così che funzionano le architetture negli sparatutto in prima persona o in terza persona, tuffiamoci e vediamo come
‫è fatto.
‫Bene.
‫Quindi non abbiamo controllato il nostro piano di progetto per un po' di tempo.
‫Non siamo arrivati al movimento del piano.
‫Per ora è finita l'animazione, è fatta.
‫E le riprese, questa è la prossima cosa su cui dobbiamo concentrarci.
‫Ora, è un po' confuso qui perché la nostra rete sembra già avere una pistola, ma in realtà
‫non vogliamo usare questa pistola.
‫Vogliamo usarlo in un modo diverso.
‫Il motivo è che in un tipo di gioco sparatutto, spesso vuoi essere in grado di passare da un'arma all'altra o almeno
‫essere in grado di avere personaggi diversi, avere armi diverse.
‫E il modo più semplice per farlo è progettare la pistola come una cosa separata dal personaggio in modo che
‫tu possa scambiarli in modo che possa essere responsabile di come spara.
‫Se si tratta di un lanciarazzi, di un fucile o di un fucile, faranno le cose in modi diversi.
‫Ora potresti dire, ok, bene, creiamo un componente della pistola e possiamo incollare i componenti della pistola
‫sotto la nostra rete.
‫Funzionerebbe, tranne per il fatto che perdiamo la modularità che ci consente di aggiungere più componenti alla
‫pistola.
‫Quindi quello che vogliamo davvero fare è seguire la strada dell'avere un attore per la pistola che sia l'identificazione del bambino per il
‫personaggio del tiratore.
‫Ora, questo è qualcosa che non ci siamo mai imbattuti prima, ma funziona così.
‫Puoi avere un personaggio sparatutto e una pistola da bambino, e il personaggio sparatutto può avere più componenti che
‫sono figli l'uno dell'altro.
‫Quindi hai la capsula, abbiamo la maglia come figli della capsula al momento, e i
‫componenti della pistola possono essere schermati per quello.
‫Quindi la mesh ottiene l'ID figlio nella mesh del personaggio.
‫E se ha altri componenti come forse un effetto particellare sulla volata della pistola, potrebbe essere
‫l'ID figlio della mesh.
‫Quindi puoi vedere che queste gerarchie sono in qualche modo indipendenti, che hai i componenti della
‫scena, quelli che si sono trasformati sulla destra, e possono trovarsi in una certa gerarchia.
‫E poi la gerarchia degli attori segue effettivamente la gerarchia dei componenti della scena.
‫Gli attori non hanno una propria gerarchia.
‫Questo è il pezzo che richiede un po' di tempo per farti girare la testa.
‫È stato un momento aha quando ha fatto clic per me.
‫È che in realtà non c'è una gerarchia di attori, c'è solo una gerarchia di componenti della scena.
‫Ci sono attori che possiedono gli stessi componenti e quindi finiscono per avere una gerarchia perché
‫i loro componenti della scena sono correlati tra loro, ma in realtà non hanno una relazione tra loro.
‫Quindi, detto questo, per impostare il contesto, la prima cosa che vogliamo fare è creare noi
‫stessi un attore di armi C++.
‫E in questo caso, non sarà una pedina o un personaggio o qualcosa del genere.
‫Sarà solo un attore diretto perché non abbiamo bisogno di alcun comportamento.
‫Non è necessario possederlo, non abbiamo bisogno di fare nulla.
‫È solo un attore semplice, semplice.
‫Quindi andiamo avanti e facciamolo.
‫In effetti, una piccola sfida per te.
‫Vai avanti e crea quell'attore C++, qualcosa che dovresti essere in grado di fare una piccola mini sfida, provalo.
‫Ok, sono tornato.
‫Lo farò.
‫Nuova classe C++ e non abbiamo bisogno di avere vediamo, attore.
‫Questo è tutto ciò che vogliamo scegliere.
‫E andremo avanti e chiameremo questa pistola, semplice come creiamo quella classe.
‫Bene?
‫E una volta fatto, apparirà nel tuo editor di codice.
‫E non abbiamo ancora bisogno di fare nulla con esso perché la prima cosa che voglio fare è creare una sottoclasse
‫di progetto.
‫Quindi fai clic con il pulsante destro del mouse sulla tua classe nel browser dei contenuti e invece di chiamarla Mike e non so quali
‫impostazioni predefinite automatiche di BP sottolineano la pistola, lo metterò alla radice del contenuto quattro Ora possiamo fare un po'
‫di riorganizzando una volta che avremo più classi.
‫Come ho detto prima, creeremo la classe Blueprint.
‫Come puoi vedere, è completamente vuoto.
‫Ha questa radice di scena predefinita.
‫Vorremo sistemarlo.
‫Quello che vogliamo fare in realtà è aggiungere un componente in C++ perché questo è un corso C++.
‫Facciamo pratica con l'aggiunta di componenti in C++.
‫Significa anche che avremo accesso a quei componenti dall'interno del nostro codice C++ per manipolare e scrivere
‫il nostro codice che ora la configurazione che vorremo è avere un componente root della scena, che sarà
‫semplicemente componenti della scena e poi una mesh che ne è figlia.
‫Perché lo vogliamo?
‫Perché vogliamo essere in grado di cambiare la posizione della mesh rispetto alle radici della pistola in modo da
‫poter posizionare sostanzialmente la maniglia in posizioni diverse per maglie diverse.
‫Quindi, se abbiamo pistole diverse, possiamo assicurarci che abbiano tutte le impugnature nello stesso posto.
‫Quindi, quando lo attacchiamo alla mano del personaggio, apparirà con la maniglia nella mano del personaggio.
‫Ok, quindi come lo faremo?
‫Passeremo al nostro codice di Visual Studio e creerò una sezione privata qui sotto dove
‫memorizzeremo le nuove proprietà per i diversi componenti che
‫creeremo.
‫Quindi creerò una nuova proprietà visibile ovunque.
‫Vogliamo che i nostri componenti siano visibili ovunque perché i loro puntatori di punti, non vogliamo
‫essere in grado di modificare i puntatori, ma vogliamo essere in grado di vedere le proprietà di quei puntatori ed essere in grado di farlo.
‫Quelli.
‫E questo diventa quindi l'ambito di competenza della classe a cui stiamo puntando.
‫Che quindi decide cosa viene mostrato, cosa è modificabile.
‫Quindi tutto ciò che vogliamo dire qui è che non è il punto di essere modificabile.
‫Quindi ecco perché andare per visibile comunque.
‫Comunque, un po' di revisione lì.
‫Ora vogliamo che questa sia una vista perché è un componente.
‫Quindi è un componente della scena che vogliamo.
‫Se riesco a digitarlo correttamente, ho visto i componenti ed è un puntatore ad esso e questo sarà
‫il nostro componente principale.
‫Così.
‫E poi vorremo una nuova proprietà.
‫Di nuovo visibile ovunque.
‫Per la nostra rete.
‫La classe per la mesh sarà costituita da alcuni componenti MASH statici perché questo non è un mash scheletrico,
‫è rigido, non ha scheletro, ossa.
‫Quindi voglio che sia un indicatore e questo raffredderà il mosto in questo modo.
‫In effetti, penso di dover essere un po 'attento qui perché penso che il componente root esista
‫già nella classe genitore per l'attore.
‫Quindi chiamerò questo percorso invece.
‫E poi abbiamo già un costruttore nel C++.
‫Dovremo solo includere l'appropriato -- qui.
‫Ora, un piccolo trucco quando sei nel codice di Visual Studio è scoprire dove potrebbe essere un file in anticipo.
‫Usi Control P e cercherai.
‫In questo caso, vogliamo la mesh statica.
‫Quindi componenti mesh statici e possiamo vedere che i componenti mesh statici puntino h se vado avanti e lo apro e passa il
‫mouse sopra la scheda, puoi vedere che si trova sotto questo lungo percorso.
‫Ma la parte interessante è che è sotto le classi, da cui poi possiamo guardare
‫da lì che saranno componenti, componenti mesh statici, quindi posso chiudere quella scheda in basso e includere appena sopra i fatti
‫sotto l'inclusione per una pistola.
‫Faremo un'inclusione hash per i componenti e quindi i componenti della mesh statica.
‫Ora in realtà, mi sono appena ricordato che le mesh che abbiamo per qualche motivo non sono in realtà mesh statiche come
‫credo che potrebbero essere.
‫Scott The Meshes, puoi scoprirlo andando nei pacchetti di risorse, nelle armi dei giochi sparatutto e dando un'occhiata
‫a queste maglie.
‫E abbastanza sicuro, se ci passi sopra, puoi vedere che sono maglie scheletriche.
‫Non chiedermi perché.
‫Per qualche ragione è quello che sono.
‫Quindi vorremo cambiare il tipo in mesh scheletrico nel file di intestazione.
‫Quindi, invece della mesh statica, utilizzerà invece la mesh scheletrica.
‫E lo stesso per l'inclusione sarà lo scheletro.
‫Punto h del componente mesh che vogliamo ricordare.
‫Non ci sei tu nei file di intestazione.
‫E credo che gli stessi componenti siano già inclusi qui per impostazione predefinita.
‫Quindi è il momento di una sfida per aggiungere un componente mesh tutto tuo.
‫Creeremo un componente della scena radice, lo imposteremo alla radice e lo imposteremo alla radice per la classe e creeremo un
‫componente mesh e imposteremo l'allegato tra i due in modo che il componente mesh sia un
‫figlio di quella radice vista componenti, video a impulsi e provaci.
‫Ok, bentornato.
‫Quindi andremo oltre e stabiliremo, prima di tutto, le nostre radici.
‫Sarà un oggetto secondario di tipo predefinito per la creazione.
‫Hai visto i componenti e quindi gli daremo un nome che sarà con la macro di testo, lo chiameremo
‫radici e finiremo con il punto e virgola.
‫Quindi lo imposteremo come root.
‫Quindi imposta i componenti radice lo imposterà come componente radice per l'attore.
‫Quindi imposta root come componente principale.
‫Roba buona.
‫Quindi vorremo creare la nostra mesh.
‫Quindi mesh equivale a creare un sottooggetto predefinito ed è il tuo componente mesh scheletrico che vogliamo come classe e
‫quindi la macro di testo per chiamarlo mesh e aggiungere un punto e virgola.
‫E poi vogliamo impostare l'allegato.
‫Quindi sarà impostata la freccia della mesh.
‫Imposta l'allegato e vorremo collegarci alla radice come cose così interessanti in modo da poter andare avanti e
‫salvarlo e, si spera, compilare e costruire e andremo su Unreal e daremo un'occhiata alla nostra
‫classe figlio.
‫E abbastanza sicuro, qui abbiamo noi stessi le radici, abbiamo la sub mesh, abbiamo anche questa radice di
‫scena predefinita che è in giro, penso che riavviamo l'editor e vediamo se va via.
‫A volte, quando si aggiungono componenti, le cose possono indugiare in questo modo e venire memorizzate nella cache.
‫E abbastanza sicuro, se apriamo di nuovo i progetti della pistola BP, puoi vedere che abbiamo appena ottenuto quei
‫due componenti.
‫Abbiamo aggiunto le radici e la mesh e probabilmente vorremmo cambiare la mesh con una delle mesh
‫scheletriche degli asset pack del gioco sparatutto.
‫Abbiamo un fucile, abbiamo un lanciatore.
‫Sceglierò questo come fucile.
‫Quindi in realtà chiamarlo pistola BP è un po' falso.
‫Questo dovrebbe essere probabilmente il fucile BP.
‫Quindi andiamo avanti e rinominalo, vai al browser dei contenuti e rinominalo in BP Rifle o BP Gun,
‫sottolinea il fucile.
‫Ora raccogli direttamente il fucile BP che vanno.
‫E questo ci ha dato una pistola.
‫Ora, ovviamente, ora questo significa che possiamo avere tutti i tipi di proprietà contro questo attore,
‫come la forza dell'arma, la sua portata e così via, creando nuove proprietà in C++.
‫E questo è il punto di forza di avere questa architettura è che le pistole possono quindi essere leggermente diverse.
‫Possiamo avere diverse meccaniche di tiro per fucili contro cecchini rispetto a giochi di ruolo e cose del genere.
‫Quindi è fantastico.
‫E possiamo anche avere statistiche diverse.
‫Quindi possiamo avere un fucile forte e un fucile debole a seconda delle diverse sottoclassi del progetto.
‫Roba forte.
‫Ora, nella prossima lezione, vedremo come genereremo effettivamente questa pistola come figli
‫del nostro personaggio attuale.
‫Lo vedrò.