‫Ciao e Benvenuto.
‫In questa lezione creeremo un nuovo componente in C++, questo trigger box, che ci
‫segnalerà quando entreremo nell'alcova o posizioniamo qualsiasi oggetto nell'alcova.
‫Puoi vedere che stiamo ricevendo un piccolo messaggio di progetto nell'angolo in alto a sinistra.
‫E per farlo, dovremo capire come si comportano le sovrapposizioni, i blocchi e le diverse
‫risposte alle collisioni in Unreal.
‫Immergiamoci e scopriamolo.
‫Ora abbiamo già acquisito familiarità con il funzionamento dei canali di traccia.
‫Sappiamo che puoi avere risposte di traccia sui diversi oggetti nella nostra scena, come questo arbusto qui.
‫Puoi vedere che ha una risposta ignora alle tracce delle armi, ma blocca le tracce di visibilità.
‫Poi c'è questo esempio di vetro antiproiettile che blocca le armi ma consente la visibilità e un muro
‫di mattoni che blocca entrambe.
‫Quindi puoi vedere come funziona questo sistema con i canali di traccia.
‫Ora, cosa succede se stiamo cercando di decidere quali oggetti possono sovrapporsi tra loro?
‫Quali passano?
‫Quali si bloccano a vicenda?
‫Questo può diventare un po' più complicato.
‫Lo abbiamo visto già quando abbiamo cercato di far sovrapporre il gargoyle al nostro pedone.
‫Ora, ecco come funziona.
‫In sostanza, utilizziamo questi tipi di oggetti.
‫Ogni oggetto a cui può appartenere può essere un particolare tipo di oggetto.
‫E questo è diverso dal tipo di sistema di tipi in C++.
‫Questi sono tipi di collisione.
‫Quindi potresti avere l'oggetto A, un oggetto B e nelle loro impostazioni, se andiamo a dare un'occhiata alle impostazioni
‫sul nostro gargoyle, ad esempio, puoi vedere che hanno il loro tipo di oggetto.
‫Questo è un oggetto statico mondiale.
‫Ma poi, più in basso, hanno le loro risposte anche ad altri tipi di oggetti.
‫Quindi puoi vedere che questo oggetto bloccherà la statica di altri mondi.
‫Bloccherà altre dinamiche mondiali.
‫Si sovrapporrà ai tipi di pedone.
‫Bloccherà i corpi fisici e praticamente bloccherà ogni altro tipo.
‫E ovviamente, il pedone stesso, se andiamo a trovare il nostro giocatore BP.
‫E guarda nel suo componente a capsula.
‫Guarda i dettagli e scorri verso il basso fino a dove abbiamo un preset di collisione.
‫Se riusciamo a espandere il preset di pull e collisione, non possiamo modificarlo, ma possiamo vedere cosa sta facendo.
‫E puoi vedere che ha una sua risposta alla statica del mondo.
‫Quindi la sua risposta allo statico mondo sarebbe bloccarlo.
‫Quindi abbiamo in realtà due diverse opzioni qui.
‫Il pedone dice che blocco la statica del mondo, ma il gargoyle dice che sovrappongo i pedoni.
‫Quindi cosa dovrebbe succedere?
‫Bene, è qui che entra in gioco questa tabella e ho un collegamento a questo post del
‫blog se vuoi leggerlo per intero nelle risorse della lezione.
‫Quindi puoi vedere che ci vuole la minima interazione di blocco tra i due.
‫Quindi se l'oggetto A era la pedina e dice, ehi, dovrei bloccare quel gargoyle, ma i gargoyle obiettano B
‫e dice, ehi, dovrei sovrapporre quella pedina.
‫Quindi ci vorrà il minimo blocco di quei due e si sovrapporrà.
‫Quindi significa che se vuoi che due cose si blocchino a vicenda, entrambi devono essere d'accordo sul fatto che è quello
‫che vogliono fare.
‫Quindi diamo un'occhiata a un altro esempio qui.
‫Abbiamo il giocatore che è di tipo oggetto pedone, e la sua risposta dell'oggetto ad altri pedoni è
‫bloccarli e gli oggetti statici del mondo è bloccarli.
‫Il muro di mattoni è un oggetto statico mondiale.
‫Può bloccare le pedine e bloccare l'elettricità statica del mondo.
‫Quindi questi due sarebbero d'accordo tra loro.
‫Ora anche l'arbusto è statico mondiale, ma si sovrappone alle pedine.
‫È molto simile al nostro gargoyle, ma blocca la statica del mondo.
‫Quindi se scendi e dai un'occhiata a cosa accadrebbe è che il pedone proverebbe a viaggiare attraverso il cespuglio
‫e potrebbe perché richiede l'opzione di blocco minima, che è la sovrapposizione e genera un evento di
‫sovrapposizione a cui possiamo agganciarci nel codice o blueprint, mentre non sarà in grado di passare attraverso il muro
‫di mattoni e genera di nuovo un evento hit, qualcosa a cui possiamo agganciarci in Blueprint
‫o C++.
‫Allora perché vado in tutta questa profondità?
‫Perché quello che voglio fare è mettere un oggetto che siamo praticamente invisibile all'interno di questo muro che ci permetta di
‫mettere il gargoyle qui e otteniamo un evento quando ciò accade.
‫Quindi il gargoyle solleverà un evento e dirà: Ehi, ho qualcosa che si sovrappone a me.
‫Allora perché tutto questo è importante?
‫Perché voglio mettere un oggetto che è invisibile ma si sovrapporrà al gargoyle e facci sapere
‫questo fatto.
‫Possiamo quindi interrogarlo da C++ o possiamo ottenere eventi in blueprint in entrambi i modi.
‫E il modo in cui lo faremo è, prima di tutto, creare un progetto da questo muro del dungeon.
‫Quindi farò clic sul pulsante del progetto nel riquadro dei
‫dettagli, creerò una nuova sottoclasse e la chiamerò BP, Underscore Secret Wall, e premeremo seleziona per crearla.
‫E l'ha portato alla nostra finestra principale e ha un motore.
‫Quello che voglio anche aggiungere qui è essenzialmente un componente chiamato collisione di scatole.
‫Quindi, se facciamo clic su una collisione di caselle, puoi vedere che è completamente invisibile.
‫Ti dà solo alcune estensioni della scatola che possiamo cambiare.
‫Possiamo ingrandirli in modo che ovunque mettiamo il gargoyle in questa scatola, lo accetti.
‫E possiamo vedere che ha opzioni di collisione quaggiù.
‫Abbiamo una sovrapposizione tutta dinamica come impostazione predefinita, ma come impostazione predefinita.
‫Ma se colpiamo personalizzato, puoi vedere che possiamo cambiare i tipi di oggetto e possiamo cambiare il modo in cui
‫risponde a cose diverse qui.
‫E penso, cosa più importante, come puoi vedere, è impostato per sovrapporsi alla maggior parte dei tipi di oggetti, il che
‫significa che anche se non sono impostati per sovrapporsi alla dinamica del mondo, si sovrapporrà.
‫Non bloccherà nulla che ci permetterà di posizionare il gargoyle qui dentro.
‫Quindi andrò ed eliminerò quel componente dalla scena perché vogliamo creare un nuovo componente
‫in C++ basato su quella collisione di scatole.
‫Ora voglio solo mostrarti che con questa casella, se la riportiamo al preset predefinito in cui
‫era attiva, che era sovrapposta a tutte le dinamiche, credo e controlliamo o, come è già selezionata, genera eventi di sovrapposizione
‫è già selezionata.
‫Quindi possiamo passare al grafico degli eventi e fare clic con il pulsante destro del mouse qui e cercare la sovrapposizione.
‫E proprio in alto puoi vedere un componente aggiuntivo che inizia a sovrapporsi per la scatola.
‫Quindi, se facciamo clic su quello e rinominiamo effettivamente il componente box per attivare l'area in questo modo, in pratica se ci sovrapponiamo all'area del
‫trigger, otterremo un elenco di proprietà della cosa che si sta sovrapponendo a noi in modo
‫da poter prendere il.
‫Si sovrappone ai bambini.
‫Ottieni il suo nome.
‫Quindi ottieni il nome visualizzato è il nome del nodo e quindi potremmo prenderlo e stampare la stringa del risultato
‫e collegarlo al pin di esecuzione e possiamo andare avanti e premere play.
‫E se camminiamo verso l'area, puoi vedere che sta dicendo che il riproduttore di segnali acustici è la cosa che si sovrappone.
‫Ora non può vedere l'errore perché è così scuro.
‫Quindi andrò di nuovo al muro segreto e emetterò un segnale acustico e aggiungerò un componente di luce spot, che metterò
‫in questa piccola nicchia ruotando la faccia verso il basso e illuminando lo spazio in cui
‫ci vuoi l'oggetto
‫Ora nella scena, possiamo vederlo molto chiaramente.
‫Quindi andiamo avanti e premiamo play e possiamo camminare fino a quell'alcova.
‫Se lo sovrapponiamo, dice che c'è il segnale acustico che si sovrappone e possiamo andare a prendere
‫il nostro gargoyle da questa cella usando il nostro grabber appena coniato, e possiamo prendere quel gargoyle e posizionarlo in quest'area.
‫Tuttavia, non sembra generare alcun evento di sovrapposizione, e questo perché, proprio come abbiamo bisogno, ci sono due
‫parti nella collisione.
‫Ci sono anche due parti per generare eventi di sovrapposizione.
‫Quindi, solo perché l'abbiamo abilitato su quel componente della scatola non significa che il gargoyle che si sposta al suo
‫interno ci avviserà effettivamente di qualsiasi evento di sovrapposizione.
‫Quindi quello che dobbiamo fare è andare al gargoyle e controllare anche che generi eventi di sovrapposizione.
‫Quindi dovrebbero verificarsi gli eventi di sovrapposizione.
‫Andiamo a prendere il gargoyle, portiamolo nell'alcova e ficchiamolo dentro.
‫E ora stiamo preparando un evento in arrivo.
‫Quando ciò accade, la statua di Gargoyle viene effettivamente registrata.
‫Ora, non voglio usare gli eventi blueprint in questo caso particolare.
‫Quindi quello che voglio fare è prendere il nostro componente dell'area trigger e trasformarlo effettivamente in un componente C++ in
‫grado di valutare se contiene già la statua di Gargoyle che desidera o meno.
‫Il modo in cui lo faremo è andare ai componenti ADD, creare nuovi componenti C++.
‫E come classe genitore, invece di scegliere il componente ACT o i
‫componenti della scena, andremo a tutte le classi e cercheremo invece il componente box.
‫E puoi vedere i componenti della forma, i componenti della scatola, quello che vogliamo e possiamo andare avanti e colpire
‫il prossimo.
‫Quindi vorrei sfidarti a creare questo componente ora che ti ho mostrato come impostare la classe
‫genitore.
‫Quindi lo chiamerai componenti di attivazione e dovrai copiare alcune cose dagli altri componenti che abbiamo
‫creato perché non è impostato allo stesso modo.
‫Dato che stiamo derivando da un genitore diverso, non è necessario copiare l'allineamento della tua classe.
‫L'intera riga è fondamentalmente vuota sul componente trigger mentre lo crei.
‫Quindi copialo dal tuo grabber o dal tuo mover e altrimenti non sarai in grado di aggiungere i tuoi componenti
‫ai tuoi progetti.
‫Quindi dovresti usare questi nuovi componenti del trigger per sostituire i nostri componenti della scatola attuali e stampare di nuovo qualcosa da
‫Begin Play.
‫Begin Play non verrà impostato automaticamente per te, quindi dovrai copiare dal file di intestazione
‫e dal file C++ degli altri nostri componenti per configurarlo.
‫Metti in pausa il video e prova.
‫Bene.
‫Ben tornato.
‫Quindi lo chiamerò i componenti del trigger, tutta una parola e premi per creare classe.
‫Quindi, come previsto, una nuova linea di classe non ha nulla tra parentesi.
‫E se andiamo a dare un'occhiata al nostro editor e andiamo al segreto BP, proveremo ad aggiungere questo componente di
‫ricerca per trigger.
‫Puoi vedere che non viene fuori nulla.
‫E la ragione di ciò è che se andiamo a prendere un punto H e dovessimo guardare la sua linea di classe, puoi
‫vedere che c'è un po 'qui dentro che dice uno spawn del progetto di un componente.
‫Quindi, in modo cruciale, dobbiamo copiare questo.
‫Ha anche un gruppo di classe.
‫Potremmo anche copiare il tutto perché questo ci consente di creare questi componenti nel progetto in
‫modo da poterlo incollare come riga di classe per il componente trigger.
‫E poi l'altra cosa, se andiamo a prenderlo, puoi vedere che deve iniziare a suonare.
‫È all'interno di una sezione protetta e possiamo semplicemente copiare la definizione di quella funzione
‫di inizio riproduzione, copiarla nei nostri componenti trigger e inserirla com'era nel grabber, appena sotto il corpo
‫generato.
‫Quindi possiamo entrare nel nostro prendere un CP e vedere quanto è stato definito il grande gioco.
‫Qui puoi vedere che è fantastico iniziare a giocare che è davvero importante.
‫Quindi lo copieremo, andremo in un componente trigger.
‫CP E cambieremo il componente di attivazione che prendi i due punti, inizieremo a giocare e poi qui possiamo inserire
‫un nuovo registro e scriveremo solo un semplice messaggio come componente di attivazione
‫viva.
‫Andremo avanti e compileremo.
‫L'operazione potrebbe richiedere un po' di tempo, visto che abbiamo apportato alcune modifiche abbastanza significative alla nostra testa di file.
‫E una volta fatto, possiamo entrare nel nostro muro segreto BP, andare ad aggiungere e cercare l'innesco.
‫E qui puoi vedere che abbiamo quel componente trigger.
‫Ora possiamo aggiungerlo.
‫Possiamo rimuovere la nostra area di attivazione che abbiamo impostato in precedenza.
‫Vai avanti ed eliminalo e controlla ancora che vogliamo eliminarlo.
‫Fondamentalmente annullerà questo evento che abbiamo creato e possiamo verificare che le collisioni siano impostate
‫come vogliamo sul trigger se daremo un'occhiata.
‫Sì, è impostato per sovrapporre tutte le dinamiche e generare eventi di sovrapposizione.
‫E infine, ciò che dobbiamo sostituire è questo evento qui in cui selezioneremo il
‫nostro clic destro del trigger e andremo a spiegare l'evento di aggiunta per Trigger Collision e aggiungere il nostro componente per iniziare la sovrapposizione.
‫Questo è quello che stavamo usando prima.
‫Collega il pin attivo e collega il pin di esecuzione per andare al livello del dungeon.
‫Vai a raccogliere il gargoyle, prova a infilarlo nell'alcova e notiamo che non funziona.
‫Quindi ora abbiamo impostato quel trigger.
‫Andiamo alla finestra e puoi vedere che in realtà il trigger non è stato creato.
‫Non è stato fatto abbastanza grande.
‫Non l'abbiamo posizionato correttamente.
‫Quindi andiamo a posizionarlo al centro dell'alcova e aumentiamo le proprietà dell'estensione della scatola in modo da catturare
‫tutto ciò che abbiamo messo all'interno di quest'area dell'alcova.
‫Non importa se è un po' più grande e ci dà un margine di sicurezza, quindi possiamo entrare
‫nel dungeon, premere play e poi entrare nell'alcova.
‫E abbastanza sicuro, rileva che il giocatore BP è entrato in quell'alcova.
‫Roba fantastica.
‫In questa lezione abbiamo appreso tutto sui tipi di oggetto e sulle risposte dei tipi di oggetto
‫e l'abbiamo usato per impostare questo componente trigger.
‫Ci vediamo alla prossima lezione.