﻿1
00:00:04,390 --> 00:00:05,230
‫Hola y bienvenido.

2
00:00:05,230 --> 00:00:08,770
‫En esta lección, vamos a ver las cosas desde el punto de vista del jugador.

3
00:00:08,770 --> 00:00:15,010
‫Básicamente, obtendremos la ventana gráfica del jugador, la ubicación y la rotación de la cámara, de

4
00:00:15,400 --> 00:00:20,980
‫modo que cuando presionemos el botón de disparo, podamos dibujar una cámara de depuración.

5
00:00:20,980 --> 00:00:26,680
‫Estos pequeños tipos rojos aquí, estas pequeñas cámaras cuadradas rojas que nos muestran dónde está esa ventana.

6
00:00:27,010 --> 00:00:28,030
‫Y podemos confirmar eso.

7
00:00:28,030 --> 00:00:31,960
‫Luego podemos usar eso más adelante para el trazado de rayos para el arma.

8
00:00:31,990 --> 00:00:34,750
‫Vamos a sumergirnos y ver todo eso en acción.

9
00:00:36,230 --> 00:00:38,280
‫Permítanme comenzar esta conferencia con una pregunta.

10
00:00:38,300 --> 00:00:45,800
‫Entonces, si está apuntando a través de su ventana gráfica de esta manera y está tratando de alinear el centro de su pantalla con ese centro

11
00:00:45,800 --> 00:00:50,810
‫de comando D en D o centro de comando cero, lo que sea que deba ser.

12
00:00:51,350 --> 00:00:54,610
‫Y apunto ¿a qué apuntaría?

13
00:00:54,950 --> 00:00:56,150
‫¿Qué esperaría golpear?

14
00:00:56,570 --> 00:00:59,660
‫Podrías decir, bueno, espero que llegue a esa suma cero.

15
00:00:59,660 --> 00:01:01,010
‫Esa parece la respuesta obvia.

16
00:01:01,320 --> 00:01:06,080
‫Bueno, eso no es necesariamente lo que vas a golpear, dependiendo de cómo hagas las cosas, cómo

17
00:01:06,080 --> 00:01:06,950
‫hagas tu refundición.

18
00:01:06,950 --> 00:01:11,030
‫Así que echemos un vistazo a las estrategias que tenemos para reformular lo más obvio.

19
00:01:11,330 --> 00:01:15,880
‫Como dices, bueno, estamos disparando con el arma, así que vamos a volver a lanzar el cañón del arma.

20
00:01:15,890 --> 00:01:20,390
‫Ah, por cierto, esta configuración, que es muy, muy cruda, es básicamente una configuración de una tercera persona.

21
00:01:20,390 --> 00:01:21,800
‫Tenemos una cámara aquí atrás.

22
00:01:21,800 --> 00:01:23,810
‫Tenemos el carácter, tenemos el arma.

23
00:01:23,810 --> 00:01:26,510
‫Y está tratando de dispararle a otro personaje objetivo por aquí.

24
00:01:26,990 --> 00:01:31,100
‫Entonces, bueno, antes que nada, volvemos a lanzar el arma como ese alumno.

25
00:01:31,310 --> 00:01:37,940
‫Tal vez falla porque nuestra cámara no apunta hacia donde apunta el arma, no necesariamente.

26
00:01:38,150 --> 00:01:41,480
‫A pesar de que pueden estar apuntando en la misma dirección, están ligeramente desplazados entre

27
00:01:41,720 --> 00:01:43,940
‫sí, por lo que no necesariamente golpearán las mismas cosas.

28
00:01:43,940 --> 00:01:48,170
‫En su lugar, puede elegir que desea volver a transmitir desde la cámara.

29
00:01:48,620 --> 00:01:54,530
‫Eso significa que lo que sea que mire la cámara será lo que se golpee y eso generalmente se siente

30
00:01:54,530 --> 00:01:57,230
‫más natural en los juegos en tercera persona.

31
00:01:57,740 --> 00:02:02,510
‫Cuando estás en juegos en primera persona, las cosas se acercan un poco más porque a menudo estás muy cerca del

32
00:02:02,510 --> 00:02:02,930
‫barril.

33
00:02:02,930 --> 00:02:07,070
‫Pero incluso en los juegos en primera persona, esta regla suele ser el caso.

34
00:02:07,070 --> 00:02:10,760
‫No querrás moverte por donde está el punto de mira en la pantalla.

35
00:02:11,030 --> 00:02:16,940
‫Por lo general, tiene una pequeña parte de la interfaz de usuario que se superpone aquí en el medio de la pantalla, y

36
00:02:16,940 --> 00:02:18,620
‫ahí es donde apuntará hacia abajo.

37
00:02:18,620 --> 00:02:24,710
‫Y es por eso que tendemos a hacer nuestra refundición con las armas lanzadas a la derecha en esta ventana.

38
00:02:25,430 --> 00:02:32,330
‫Ahora, afortunadamente, hay una forma de obtener esta ventana gráfica y, de hecho, lo hacemos desde el controlador, obtenemos

39
00:02:32,330 --> 00:02:34,250
‫la ventana gráfica del controlador.

40
00:02:34,670 --> 00:02:41,690
‫Eso requiere que vayamos al personaje, encontremos el controlador del personaje y luego encontremos la ubicación y la

41
00:02:41,690 --> 00:02:44,000
‫rotación de su ventana gráfica.

42
00:02:44,420 --> 00:02:50,480
‫Y lo que vamos a hacer en esta lección es tratar de visualizar y confirmar que la ubicación y la rotación

43
00:02:50,480 --> 00:02:52,790
‫de la ventana gráfica es lo que esperaríamos.

44
00:02:53,270 --> 00:02:57,110
‫Y lo haremos dibujando algunos ayudantes de depuración.

45
00:02:57,590 --> 00:03:05,120
‫Ahora los ayudantes de depuración están en un archivo de encabezado y el nombre del encabezado de los archivos es agregar depuración.

46
00:03:06,340 --> 00:03:06,760
‫Ayúdanos.

47
00:03:06,760 --> 00:03:10,440
‫Curiosamente, creo o dibujar, dibujar, ayudar a depurar.

48
00:03:10,550 --> 00:03:10,960
‫Ese es.

49
00:03:11,620 --> 00:03:16,570
‫Y si vamos a echar un vistazo a este F 12 para ir a navegar a un

50
00:03:16,570 --> 00:03:22,090
‫archivo de encabezado si ya lo tienes en tus incluidos, vamos a buscar uno llamado camera draw debug camera.

51
00:03:22,090 --> 00:03:26,620
‫Y esto dibuja algo que se parece un poco a mi diagrama aquí, un poco de un triángulo

52
00:03:26,890 --> 00:03:29,170
‫o un tambor de alboroto que podemos usar.

53
00:03:29,590 --> 00:03:31,070
‫Entonces, ¿qué va a tomar?

54
00:03:31,150 --> 00:03:37,600
‫Y va a tomar en el mundo una ubicación de esa cámara, una rotación para dicha cámara.

55
00:03:38,050 --> 00:03:41,780
‫Así que la ubicación, la rotación, el campo de visión lo harán.

56
00:03:41,800 --> 00:03:46,900
‫Lo estableceremos probablemente en un valor predeterminado como 90 grados como escala, como valores predeterminados de color.

57
00:03:46,900 --> 00:03:48,070
‫Todos estos están predeterminados.

58
00:03:48,070 --> 00:03:49,480
‫Entonces podemos usar esos valores predeterminados.

59
00:03:50,110 --> 00:03:57,790
‫Así que tratemos de dibujar una cámara de depuración aquí en mi arma y la pondremos en el método de disparo de grupo porque es por eso que

60
00:03:57,820 --> 00:03:59,180
‫estamos haciendo nuestro trabajo.

61
00:03:59,530 --> 00:04:01,800
‫Necesita en primer lugar, ¿qué era?

62
00:04:01,810 --> 00:04:03,640
‫Era un mundo nuevo.

63
00:04:04,060 --> 00:04:06,130
‫Entonces tenemos nuestro mundo.

64
00:04:07,420 --> 00:04:08,590
‫Tenemos que dibujar en.

65
00:04:08,950 --> 00:04:11,350
‫Lo siguiente sería una ubicación.

66
00:04:11,360 --> 00:04:20,950
‫Vamos a obtener la ubicación del actor por el momento y hacer una rotación de actores también.

67
00:04:22,090 --> 00:04:25,610
‫Y luego, lo último que necesitábamos era un campo de visión.

68
00:04:25,630 --> 00:04:33,250
‫Busquemos un campo de visión de 90 grados, que es algo aleatorio allí, y podemos seguir adelante y compilar

69
00:04:33,250 --> 00:04:35,590
‫y ver si esto aparece.

70
00:04:36,340 --> 00:04:40,210
‫Y luego vamos a darle al play y al.

71
00:04:41,200 --> 00:04:42,050
‫Botón de disparo.

72
00:04:42,070 --> 00:04:43,420
‫No estoy viendo nada aquí.

73
00:04:43,420 --> 00:04:46,810
‫Hagamos un F8 y veamos si podemos acercarnos.

74
00:04:47,780 --> 00:04:48,270
‫Mm mmm.

75
00:04:48,490 --> 00:04:51,730
‫Todavía no muestra ningún tipo de cámara aquí.

76
00:04:51,740 --> 00:04:53,470
‫Me pregunto si es muy, muy pequeño.

77
00:04:54,580 --> 00:05:00,430
‫Entonces, una de las otras opciones aquí es que podríamos querer tener líneas persistentes.

78
00:05:01,180 --> 00:05:07,600
‫Y eso significa que necesitamos especificar todo hasta él en C++ para que podamos establecer nuestra escala en uno.

79
00:05:07,600 --> 00:05:14,290
‫Incluso podríamos aumentarlo a una escala de dos, en caso de que el tamaño sea un problema que podamos

80
00:05:14,410 --> 00:05:14,890
‫elegir.

81
00:05:14,890 --> 00:05:16,900
‫Un color que es más visible puede ser el rojo.

82
00:05:16,900 --> 00:05:18,730
‫So f calico long colon red.

83
00:05:19,510 --> 00:05:26,620
‫Y luego podemos intentar que las líneas persistentes sean verdaderas y probar esa.

84
00:05:26,620 --> 00:05:27,460
‫Enfatizar.

85
00:05:28,440 --> 00:05:29,640
‫Así que compilando de nuevo.

86
00:05:30,920 --> 00:05:32,540
‫Y saltando al juego.

87
00:05:33,290 --> 00:05:34,850
‫Y ahí vamos.

88
00:05:34,910 --> 00:05:35,630
‫Golpeamos.

89
00:05:37,390 --> 00:05:44,410
‫El gatillo, y pueden ver que aparece un pequeño cuadro de cámara aquí donde presionamos el gatillo y

90
00:05:44,410 --> 00:05:50,230
‫su rotación y ubicación son establecidas por las armas, la ubicación y la rotación.

91
00:05:50,350 --> 00:05:52,970
‫Así que ahora queremos intentar obtener la ventana gráfica en su lugar.

92
00:05:52,990 --> 00:05:56,980
‫Entonces, como ya dije, esto estará en nuestro controlador.

93
00:05:57,400 --> 00:06:01,180
‫Así que echemos un vistazo al punto H del controlador de nuevo.

94
00:06:01,180 --> 00:06:06,340
‫Queremos el que está en el marco del juego y vamos a buscar la ventana gráfica aquí.

95
00:06:06,740 --> 00:06:07,330
‫¿Disculpe?

96
00:06:07,330 --> 00:06:09,820
‫En realidad, punto de vista es la palabra que estamos buscando.

97
00:06:10,240 --> 00:06:10,990
‫Y hay algunos aquí.

98
00:06:11,020 --> 00:06:15,460
‫Obtén ojos de actor, puntos de vista que estarían mirando a través de los ojos del actor.

99
00:06:15,760 --> 00:06:21,370
‫Pero en realidad queremos jugar con el punto de vista, que para un controlador aéreo usará sus ojos.

100
00:06:21,760 --> 00:06:24,460
‫Pero para un jugador, usaremos la cámara del jugador.

101
00:06:24,460 --> 00:06:25,540
‫Así que eso es lo que queremos.

102
00:06:25,540 --> 00:06:27,460
‫Queremos el punto de vista de conseguir jugador.

103
00:06:28,030 --> 00:06:31,840
‫Pero antes que nada, tenemos que conseguir ese controlador en primer lugar.

104
00:06:32,200 --> 00:06:38,920
‫Y la forma de hacerlo es, en primer lugar, que nuestro propietario recuerde que cuando teníamos nuestro personaje

105
00:06:39,370 --> 00:06:44,860
‫de tirador para mantener abierto y bajamos o subimos a nuestro juego de inicio.

106
00:06:45,100 --> 00:06:47,980
‫Puedes ver que estamos configurando al dueño de las armas para que sea el personaje.

107
00:06:48,520 --> 00:06:51,630
‫Eso quiere decir que en el arma podemos ir para el otro lado.

108
00:06:51,640 --> 00:06:56,680
‫Podemos decir obtener propietario y eso nos dará el carácter de tirador.

109
00:06:57,010 --> 00:06:59,350
‫Ahora, no va a saber que es un personaje de disparos.

110
00:06:59,350 --> 00:07:00,850
‫Todo lo que sabe es que es un actor.

111
00:07:00,850 --> 00:07:02,320
‫Así que vamos a tener que hacer un elenco aquí.

112
00:07:02,950 --> 00:07:07,540
‫Así que le hacemos un casting al personaje de A Shooter.

113
00:07:08,600 --> 00:07:12,680
‫Y, de hecho, ni siquiera necesitamos saber nada más que el hecho de que es un personaje de disparos.

114
00:07:12,950 --> 00:07:18,770
‫Es suficiente saber que es un peón, y cualquier peón puede poseer esta arma, incluso si no es un personaje

115
00:07:18,770 --> 00:07:19,640
‫de tirador.

116
00:07:19,850 --> 00:07:22,070
‫Así que trata de ser lo menos específico posible.

117
00:07:22,280 --> 00:07:24,140
‫Sin embargo, ¿por qué tiene que ser un peón?

118
00:07:24,140 --> 00:07:29,270
‫Tiene que ser un peón porque necesitamos un controlador y solo los peones pueden ser poseídos por los controladores.

119
00:07:29,720 --> 00:07:30,920
‫Así que vamos a poner esto en una variable.

120
00:07:30,920 --> 00:07:38,930
‫Será una estrella y luego el peón propietario será el nombre de la variable.

121
00:07:39,770 --> 00:07:42,110
‫Entonces tenemos que comprobar que esto no es nulo.

122
00:07:48,750 --> 00:07:53,820
‫Y solo voy a hacer esto con una sola línea que dice que si es ahora, regresamos temprano de

123
00:07:54,150 --> 00:07:59,070
‫Apple Trigger para que no tengamos ningún riesgo de tratar de enfriar algo con un puntero nulo.

124
00:07:59,580 --> 00:08:09,830
‫Entonces podemos hacer que un propietario obtenga el controlador y queremos guardarlo en la tienda de controladores A.

125
00:08:10,110 --> 00:08:12,720
‫Y este puede ser el controlador propietario.

126
00:08:14,210 --> 00:08:14,870
‫Al igual que.

127
00:08:15,590 --> 00:08:19,610
‫Y nuevamente, solo queremos verificar que esto no sea nulo porque vamos a

128
00:08:19,610 --> 00:08:23,660
‫llamar a un método en eso y no podemos llamar a métodos en punteros nulos.

129
00:08:23,960 --> 00:08:26,690
‫Hace irreal, infeliz y choca.

130
00:08:27,050 --> 00:08:31,220
‫Así que aquí es donde ahora podemos hacer nuestro propio controlador.

131
00:08:33,310 --> 00:08:37,000
‫Y deberíamos poder llamar a ese punto de vista.

132
00:08:38,450 --> 00:08:43,250
‫Así que aquí viene el desafío de establecer esa ubicación y rotación usando esa nueva función.

133
00:08:43,520 --> 00:08:45,860
‫Puede volver a ver la firma para nosotros.

134
00:08:45,860 --> 00:08:52,000
‫Vamos a Controller Dot H, teníamos un archivo y lo miramos, jugamos un punto de vista.

135
00:08:52,010 --> 00:08:58,700
‫Intente y vea si a partir de esta firma puede averiguar cómo usarla para obtener la ubicación y la rotación que queremos

136
00:08:58,700 --> 00:09:01,250
‫pasar a nuestro asistente de depuración de dibujo.

137
00:09:01,820 --> 00:09:05,630
‫Y entonces vas a recordar que esto está usando parámetros.

138
00:09:05,630 --> 00:09:12,770
‫Así que revise los parámetros de su aplicación, dibuje la cámara de depuración usando ese fragmento que acabamos de escribir y pruébelo

139
00:09:12,770 --> 00:09:14,090
‫en la ventana gráfica.

140
00:09:14,360 --> 00:09:19,340
‫Vaya y haga clic en el botón de activación varias veces en diferentes lugares y vea dónde termina la

141
00:09:19,340 --> 00:09:21,110
‫cámara mostrando pausar video y probar.

142
00:09:22,440 --> 00:09:22,760
‫Bueno.

143
00:09:22,770 --> 00:09:23,250
‫Bienvenido de nuevo.

144
00:09:23,550 --> 00:09:24,630
‫Así que obtenga el punto de vista del plano.

145
00:09:24,630 --> 00:09:29,640
‫Voy a copiar el nombre del método y traerlo aquí porque es un parámetro de salida.

146
00:09:29,670 --> 00:09:36,090
‫Tendré que declarar primero las variables en las que quiero que esos valores entren en la ubicación del vector.

147
00:09:36,780 --> 00:09:41,070
‫Tenemos una F, un rotador, una rotación.

148
00:09:42,320 --> 00:09:45,590
‫Y queremos pasarlos como argumentos.

149
00:09:45,620 --> 00:09:48,080
‫Permítanme arreglar mi sangría allí un poco.

150
00:09:48,470 --> 00:09:51,620
‫Y vamos a pasar en la ubicación, la rotación.

151
00:09:52,280 --> 00:09:58,520
‫Y sabemos que debido a que se acaba de declarar aquí al leer esto, podemos adivinar que estos son

152
00:09:58,520 --> 00:10:03,890
‫ahora nuestros parámetros, aunque no hay ninguna utilidad de sintaxis de C++ en ese sentido.

153
00:10:04,550 --> 00:10:09,440
‫Y luego podemos pasar esta ubicación en lugar de la ubicación del actor, y

154
00:10:09,440 --> 00:10:17,870
‫podemos pasar esta rotación en lugar de la rotación activa a nuestra cámara de depuración y podemos seguir adelante y construir esa compilación y probarla

155
00:10:17,870 --> 00:10:19,070
‫en el editor.

156
00:10:19,340 --> 00:10:21,290
‫Bueno, parece que la compilación está completa.

157
00:10:21,300 --> 00:10:22,850
‫Vamos a jugar.

158
00:10:23,540 --> 00:10:29,110
‫Y cuando presioné Trigger, podías ver una cámara que aparecía justo sobre mi punto de vista.

159
00:10:29,120 --> 00:10:29,900
‫Esa es una buena señal.

160
00:10:30,260 --> 00:10:31,370
‫Retrocedo un poco.

161
00:10:31,370 --> 00:10:32,000
‫Puedes ver.

162
00:10:32,000 --> 00:10:32,480
‫Ahí tienes

163
00:10:32,480 --> 00:10:38,240
‫Tenemos estas cámaras que apuntan exactamente en la dirección correcta desde donde estaba mirando.

164
00:10:38,240 --> 00:10:43,640
‫Así que pueden imaginar cómo vamos a poder disparar un rayo de esa cámara por el

165
00:10:43,640 --> 00:10:48,860
‫extremo de la cámara e intentar golpear algo que estaba mirando en ese momento.

166
00:10:49,100 --> 00:10:51,120
‫Y eso es lo que vamos a hacer en la próxima lección.

167
00:10:51,140 --> 00:10:51,680
‫Te veo allí.

