﻿1
00:00:04,390 --> 00:00:05,230
‫Ciao e Benvenuto.

2
00:00:05,230 --> 00:00:08,770
‫In questa lezione vedremo le cose dal punto di vista del giocatore.

3
00:00:08,770 --> 00:00:15,010
‫Ci occuperemo essenzialmente della visuale del giocatore, della posizione e della rotazione della telecamera, in modo

4
00:00:15,400 --> 00:00:20,980
‫che quando premiamo il pulsante di attivazione, possiamo disegnare una telecamera di debug.

5
00:00:20,980 --> 00:00:26,680
‫Questi ragazzini rossi qui, queste piccole telecamere squadrate rosse che ci mostrano dov'è quella finestra.

6
00:00:27,010 --> 00:00:28,030
‫E possiamo confermarlo.

7
00:00:28,030 --> 00:00:31,960
‫Possiamo quindi usarlo in seguito per il ray tracing per la pistola.

8
00:00:31,990 --> 00:00:34,750
‫Immergiamoci e vediamo tutto questo in azione.

9
00:00:36,230 --> 00:00:38,280
‫Vorrei iniziare questa lezione con una domanda.

10
00:00:38,300 --> 00:00:45,800
‫Quindi, se stai mirando attraverso il tuo viewport in questo modo e stai cercando di allineare il centro dello schermo con quel centro

11
00:00:45,800 --> 00:00:50,810
‫di comando D su D o zero centro di comando, qualunque cosa dovrebbe essere.

12
00:00:51,350 --> 00:00:54,610
‫E miro a cosa mirerei?

13
00:00:54,950 --> 00:00:56,150
‫Cosa mi aspetterei di colpire?

14
00:00:56,570 --> 00:00:59,660
‫Potresti dire, beh, mi aspetto che raggiunga quella somma zero.

15
00:00:59,660 --> 00:01:01,010
‫Sembra la risposta ovvia.

16
00:01:01,320 --> 00:01:06,080
‫Bene, non è necessariamente quello che colpirai, a seconda di come fai le cose, come esegui

17
00:01:06,080 --> 00:01:06,950
‫la rifusione.

18
00:01:06,950 --> 00:01:11,030
‫Quindi diamo un'occhiata alle strategie che abbiamo per riformulare le più ovvie.

19
00:01:11,330 --> 00:01:15,880
‫Come dici tu, beh, stiamo sparando con la pistola, quindi rilanceremo la canna della pistola.

20
00:01:15,890 --> 00:01:20,390
‫Oh, a proposito, questa configurazione, che è molto, molto grezza, è fondamentalmente una configurazione in terza persona.

21
00:01:20,390 --> 00:01:21,800
‫Abbiamo una telecamera qui dietro.

22
00:01:21,800 --> 00:01:23,810
‫Abbiamo il personaggio, abbiamo la pistola.

23
00:01:23,810 --> 00:01:26,510
‫E sta cercando di sparare a un altro personaggio bersaglio qui.

24
00:01:26,990 --> 00:01:31,100
‫Quindi, beh, prima di tutto, abbiamo rilanciato fuori dalla pistola come quell'allievo.

25
00:01:31,310 --> 00:01:37,940
‫Forse manca perché la nostra fotocamera non punta dove punta la pistola, non necessariamente.

26
00:01:38,150 --> 00:01:41,480
‫Anche se potrebbero puntare nella stessa direzione, sono leggermente sfalsati l'uno dall'altro,

27
00:01:41,720 --> 00:01:43,940
‫quindi non colpiranno necessariamente le stesse cose.

28
00:01:43,940 --> 00:01:48,170
‫Invece, potresti scegliere di ritrasmettere dalla telecamera.

29
00:01:48,620 --> 00:01:54,530
‫Ciò significa che qualunque cosa guardi la telecamera sarà la cosa che viene colpita e generalmente sembra

30
00:01:54,530 --> 00:01:57,230
‫più naturale nei giochi in terza persona.

31
00:01:57,740 --> 00:02:02,510
‫Quando sei nei giochi in prima persona, le cose si avvicinano un po' perché spesso sei molto vicino al

32
00:02:02,510 --> 00:02:02,930
‫barile.

33
00:02:02,930 --> 00:02:07,070
‫Ma anche nei giochi in prima persona, questa regola tende ad essere il caso.

34
00:02:07,070 --> 00:02:10,760
‫Non vuoi muoverti dove si trova il punto di mira sullo schermo.

35
00:02:11,030 --> 00:02:16,940
‫In genere hai un piccolo pezzo di interfaccia utente che si sovrappone qui al centro dello schermo, ed è lì

36
00:02:16,940 --> 00:02:18,620
‫che mirerai verso il basso.

37
00:02:18,620 --> 00:02:24,710
‫Ed è per questo che tendiamo a fare la nostra rifusione con le armi lanciate a destra in basso in questa finestra.

38
00:02:25,430 --> 00:02:32,330
‫Ora fortunatamente, c'è un modo per noi di ottenere questo viewport e lo facciamo effettivamente dal controller, otteniamo

39
00:02:32,330 --> 00:02:34,250
‫il viewport del controller.

40
00:02:34,670 --> 00:02:41,690
‫Quindi ciò richiede di andare al personaggio, trovare il controller del personaggio e quindi trovare la posizione e

41
00:02:41,690 --> 00:02:44,000
‫la rotazione della sua finestra.

42
00:02:44,420 --> 00:02:50,480
‫E quello che faremo in questa lezione è cercare di visualizzare e confermare che la posizione e la rotazione

43
00:02:50,480 --> 00:02:52,790
‫del viewport sono ciò che ci aspetteremmo.

44
00:02:53,270 --> 00:02:57,110
‫E lo faremo disegnando alcuni aiutanti per il debug.

45
00:02:57,590 --> 00:03:05,120
‫Ora gli helper di debug si trovano in un file di intestazione e l'intestazione del nome dei file è aggiungi debug.

46
00:03:06,340 --> 00:03:06,760
‫Aiutaci.

47
00:03:06,760 --> 00:03:10,440
‫Stranamente, credo o disegno, disegno, aiuto per il debug.

48
00:03:10,550 --> 00:03:10,960
‫È lui.

49
00:03:11,620 --> 00:03:16,570
‫E se daremo un'occhiata a questo F 12 per passare a un file

50
00:03:16,570 --> 00:03:22,090
‫di intestazione se lo hai già nei tuoi include, cercheremo uno chiamato camera draw debug camera.

51
00:03:22,090 --> 00:03:26,620
‫E questo disegna qualcosa che assomiglia un po' al mio diagramma qui, un po' un

52
00:03:26,890 --> 00:03:29,170
‫triangolo o un tamburo che possiamo usare.

53
00:03:29,590 --> 00:03:31,070
‫Allora cosa ci vorrà?

54
00:03:31,150 --> 00:03:37,600
‫E ci vorrà nel mondo una posizione di quella telecamera, una rotazione per detta telecamera.

55
00:03:38,050 --> 00:03:41,780
‫Quindi posizione, rotazione, campo visivo ce la faranno.

56
00:03:41,800 --> 00:03:46,900
‫Lo imposteremo probabilmente su un valore predefinito come 90 gradi come scala, come impostazione predefinita del colore.

57
00:03:46,900 --> 00:03:48,070
‫Questi sono tutti predefiniti.

58
00:03:48,070 --> 00:03:49,480
‫Quindi possiamo semplicemente usare quelle impostazioni predefinite.

59
00:03:50,110 --> 00:03:57,790
‫Quindi proviamo a disegnare un debug di una telecamera qui sotto nella mia pistola e la inseriamo nel metodo di attivazione della piscina perché è per questo che stiamo

60
00:03:57,820 --> 00:03:59,180
‫facendo il nostro lavoro.

61
00:03:59,530 --> 00:04:01,800
‫Serve prima di tutto, cos'era?

62
00:04:01,810 --> 00:04:03,640
‫Era un nuovo mondo.

63
00:04:04,060 --> 00:04:06,130
‫Quindi otteniamo il nostro mondo.

64
00:04:07,420 --> 00:04:08,590
‫Dobbiamo attingere.

65
00:04:08,950 --> 00:04:11,350
‫La prossima cosa sarebbe una posizione.

66
00:04:11,360 --> 00:04:20,950
‫Prendiamo solo la posizione dell'attore per il momento e facciamo anche una rotazione dell'attore.

67
00:04:22,090 --> 00:04:25,610
‫E poi l'ultima cosa di cui avevamo bisogno era un campo visivo.

68
00:04:25,630 --> 00:04:33,250
‫Andiamo solo per un campo visivo di 90 gradi, che è solo una cosa casuale lì, e possiamo andare avanti e compilare

69
00:04:33,250 --> 00:04:35,590
‫e vedere se questo si presenta.

70
00:04:36,340 --> 00:04:40,210
‫E poi premiamo play e premiamo il.

71
00:04:41,200 --> 00:04:42,050
‫Pulsante di attivazione.

72
00:04:42,070 --> 00:04:43,420
‫Non vedo niente qui.

73
00:04:43,420 --> 00:04:46,810
‫Facciamo un F8 e vediamo se riusciamo ad avvicinarci.

74
00:04:47,780 --> 00:04:48,270
‫Mmm ehm.

75
00:04:48,490 --> 00:04:51,730
‫Continuo a non mostrare nessun tipo di telecamera qui.

76
00:04:51,740 --> 00:04:53,470
‫Mi chiedo se sia davvero, davvero piccolo.

77
00:04:54,580 --> 00:05:00,430
‫Quindi una delle altre opzioni qui è che potremmo voler avere linee persistenti.

78
00:05:01,180 --> 00:05:07,600
‫Ciò significa che dobbiamo specificare tutto in C++ in modo da poter impostare la nostra scala su uno.

79
00:05:07,600 --> 00:05:14,290
‫Potremmo anche aumentarlo magari su una scala di due, nel caso in cui sia la dimensione che è un problema che possiamo

80
00:05:14,410 --> 00:05:14,890
‫scegliere.

81
00:05:14,890 --> 00:05:16,900
‫Un colore più visibile potrebbe essere il rosso.

82
00:05:16,900 --> 00:05:18,730
‫Quindi f calico lungo colon rosso.

83
00:05:19,510 --> 00:05:26,620
‫E poi possiamo provare a far sì che le linee persistenti siano vere e provare quella.

84
00:05:26,620 --> 00:05:27,460
‫Enfatizzare.

85
00:05:28,440 --> 00:05:29,640
‫Quindi compilando di nuovo.

86
00:05:30,920 --> 00:05:32,540
‫E tuffarsi in gioco.

87
00:05:33,290 --> 00:05:34,850
‫E ci andiamo.

88
00:05:34,910 --> 00:05:35,630
‫Abbiamo colpito.

89
00:05:37,390 --> 00:05:44,410
‫Il grilletto, e puoi vedere che mostra un po 'una scatola della fotocamera qui dove premiamo il grilletto e

90
00:05:44,410 --> 00:05:50,230
‫la sua rotazione e posizione sono impostate dalle pistole, dalla posizione e dalla rotazione.

91
00:05:50,350 --> 00:05:52,970
‫Quindi ora vogliamo provare a ottenere invece il viewport.

92
00:05:52,990 --> 00:05:56,980
‫Quindi, come ho già detto, questo sarà sul nostro controller.

93
00:05:57,400 --> 00:06:01,180
‫Quindi diamo un'occhiata di nuovo al punto H del controller.

94
00:06:01,180 --> 00:06:06,340
‫Vogliamo quello nel framework del gioco e cercheremo il viewport qui.

95
00:06:06,740 --> 00:06:07,330
‫Implorare scusa?

96
00:06:07,330 --> 00:06:09,820
‫In realtà, punto di vista è la parola che stiamo cercando.

97
00:06:10,240 --> 00:06:10,990
‫E ce ne sono alcuni qui.

98
00:06:11,020 --> 00:06:15,460
‫Ottieni gli occhi dell'attore, punti di vista che guarderebbero attraverso gli occhi dell'attore.

99
00:06:15,760 --> 00:06:21,370
‫Ma in realtà vogliamo il gioco del punto di vista, che per un controller aereo utilizzerà i loro occhi.

100
00:06:21,760 --> 00:06:24,460
‫Ma per un giocatore, useremo la fotocamera del giocatore.

101
00:06:24,460 --> 00:06:25,540
‫Quindi è quello che vogliamo.

102
00:06:25,540 --> 00:06:27,460
‫Vogliamo il punto di vista di get player.

103
00:06:28,030 --> 00:06:31,840
‫Ma prima di tutto, dobbiamo entrare in possesso di quel controller in primo luogo.

104
00:06:32,200 --> 00:06:38,920
‫E il modo per farlo è, prima di tutto, che dobbiamo far ricordare al nostro proprietario che quando abbiamo avuto

105
00:06:39,370 --> 00:06:44,860
‫il nostro personaggio sparatutto da tenere aperto e scendiamo o saliamo al nostro inizio di gioco.

106
00:06:45,100 --> 00:06:47,980
‫Puoi vedere che stiamo impostando il proprietario delle armi come personaggio.

107
00:06:48,520 --> 00:06:51,630
‫Ciò significa che nella pistola possiamo andare dall'altra parte.

108
00:06:51,640 --> 00:06:56,680
‫Possiamo dire di ottenere il proprietario e questo ci porterà il personaggio dello sparatutto.

109
00:06:57,010 --> 00:06:59,350
‫Ora, non saprà che si tratta di un personaggio sparatutto.

110
00:06:59,350 --> 00:07:00,850
‫Tutto quello che sa è che è un attore.

111
00:07:00,850 --> 00:07:02,320
‫Quindi dovremo fare un cast qui.

112
00:07:02,950 --> 00:07:07,540
‫Quindi facciamo un cast per il personaggio di A Shooter.

113
00:07:08,600 --> 00:07:12,680
‫E in effetti, non abbiamo nemmeno bisogno di sapere nulla tanto quanto il fatto che si tratta di un personaggio sparatutto.

114
00:07:12,950 --> 00:07:18,770
‫È sufficiente sapere che si tratta di una pedina, e qualsiasi pedina può quindi possedere questa pistola, anche se non è

115
00:07:18,770 --> 00:07:19,640
‫un personaggio sparatutto.

116
00:07:19,850 --> 00:07:22,070
‫Quindi cerca di essere il più non specifico possibile.

117
00:07:22,280 --> 00:07:24,140
‫Perché deve essere una pedina, però?

118
00:07:24,140 --> 00:07:29,270
‫Deve essere una pedina perché dobbiamo ottenere un controller e solo le pedine possono essere possedute dai controller.

119
00:07:29,720 --> 00:07:30,920
‫Quindi mettiamo questo in una variabile.

120
00:07:30,920 --> 00:07:38,930
‫Sarà una stella -- e poi il pedone proprietario sarà il nome della variabile.

121
00:07:39,770 --> 00:07:42,110
‫Quindi dobbiamo verificare che questo non sia nullo.

122
00:07:48,750 --> 00:07:53,820
‫E lo farò solo con una battuta che dice che se lo è ora, torniamo presto da Apple

123
00:07:54,150 --> 00:07:59,070
‫Trigger in modo da non avere alcun rischio di provare a raffreddare qualcosa con un puntatore nullo.

124
00:07:59,580 --> 00:08:09,830
‫Quindi possiamo fare un controller per ottenere un proprietario e vogliamo salvarlo nell'archivio del controller A.

125
00:08:10,110 --> 00:08:12,720
‫E questo può essere il controller proprietario.

126
00:08:14,210 --> 00:08:14,870
‫Così.

127
00:08:15,590 --> 00:08:19,610
‫E ancora, vogliamo solo controllare che questo non sia nullo perché

128
00:08:19,610 --> 00:08:23,660
‫chiameremo un metodo su quello e non possiamo chiamare metodi su puntatori nulli.

129
00:08:23,960 --> 00:08:26,690
‫Rende irreale, infelice e schiantato.

130
00:08:27,050 --> 00:08:31,220
‫Quindi è qui che ora possiamo creare il nostro controller.

131
00:08:33,310 --> 00:08:37,000
‫E dovremmo essere in grado di richiamare a questo un punto di vista.

132
00:08:38,450 --> 00:08:43,250
‫Quindi ecco che arriva la sfida per te di impostare quella posizione e rotazione usando quella nuova funzione.

133
00:08:43,520 --> 00:08:45,860
‫Puoi vedere di nuovo la firma per noi.

134
00:08:45,860 --> 00:08:52,000
‫Andiamo su Controller Dot H, abbiamo un file e lo guardiamo per riprodurre un punto di vista.

135
00:08:52,010 --> 00:08:58,700
‫Prova a vedere se da questa firma puoi capire come usarla per ottenere quella posizione e rotazione che vogliamo passare

136
00:08:58,700 --> 00:09:01,250
‫al nostro helper di debug del disegno.

137
00:09:01,820 --> 00:09:05,630
‫E quindi ricorderai che questo sta usando parametri.

138
00:09:05,630 --> 00:09:12,770
‫Quindi rivedi i parametri della tua app, disegna la telecamera di debug usando lo snippet che abbiamo appena scritto e

139
00:09:12,770 --> 00:09:14,090
‫testalo nel viewport.

140
00:09:14,360 --> 00:09:19,340
‫Vai e fai clic sul pulsante di attivazione alcune volte in luoghi diversi e guarda dove finisce la telecamera che

141
00:09:19,340 --> 00:09:21,110
‫mostra il video in pausa e prova.

142
00:09:22,440 --> 00:09:22,760
‫Bene.

143
00:09:22,770 --> 00:09:23,250
‫Ben tornato.

144
00:09:23,550 --> 00:09:24,630
‫Quindi ottieni il punto di vista del piano.

145
00:09:24,630 --> 00:09:29,640
‫Copierò il nome del metodo e lo porterò qui perché è un parametro out.

146
00:09:29,670 --> 00:09:36,090
‫Dovrò dichiarare prima le variabili in cui voglio che quei valori entrino nella posizione del vettore.

147
00:09:36,780 --> 00:09:41,070
‫Abbiamo una F, un rotatore, una rotazione.

148
00:09:42,320 --> 00:09:45,590
‫E vogliamo passare quelli come argomenti.

149
00:09:45,620 --> 00:09:48,080
‫Fammi solo aggiustare un po' la mia rientranza lì.

150
00:09:48,470 --> 00:09:51,620
‫E passeremo nel luogo, la rotazione.

151
00:09:52,280 --> 00:09:58,520
‫E sappiamo che poiché è stato appena dichiarato qui durante la lettura di questo, possiamo indovinare che questi sono

152
00:09:58,520 --> 00:10:03,890
‫ora i nostri parametri, anche se non c'è alcuna sintassi utile da C++ a questo riguardo.

153
00:10:04,550 --> 00:10:09,440
‫E poi possiamo passare questa posizione invece della posizione dell'attore, e possiamo passare

154
00:10:09,440 --> 00:10:17,870
‫questa rotazione invece della rotazione attiva nel nostro disegno di una telecamera di debug e possiamo andare avanti e costruire quella compilazione e

155
00:10:17,870 --> 00:10:19,070
‫provarla nell'editor.

156
00:10:19,340 --> 00:10:21,290
‫Bene, sembra che la compilazione sia completa.

157
00:10:21,300 --> 00:10:22,850
‫Andiamo a giocare.

158
00:10:23,540 --> 00:10:29,110
‫E quando ho premuto Trigger, potevi vedere una telecamera apparire proprio sopra il mio punto di vista.

159
00:10:29,120 --> 00:10:29,900
‫Questo è un buon segno.

160
00:10:30,260 --> 00:10:31,370
‫Faccio un passo indietro.

161
00:10:31,370 --> 00:10:32,000
‫Puoi vedere.

162
00:10:32,000 --> 00:10:32,480
‫Ecco qua.

163
00:10:32,480 --> 00:10:38,240
‫Abbiamo queste telecamere che puntano esattamente nella giusta direzione da dove stavo guardando.

164
00:10:38,240 --> 00:10:43,640
‫Quindi puoi solo immaginare come saremo in grado di sparare un raggio da quella telecamera in

165
00:10:43,640 --> 00:10:48,860
‫fondo alla telecamera e provare a colpire qualcosa laggiù che stavo guardando in quel momento.

166
00:10:49,100 --> 00:10:51,120
‫Ed è quello che faremo nella prossima lezione.

167
00:10:51,140 --> 00:10:51,680
‫Ci vediamo lì.

