﻿1
00:00:10,570 --> 00:00:11,650
‫Bienvenido de nuevo.

2
00:00:11,680 --> 00:00:14,650
‫En este video, nos preocupamos por reproducir sonidos.

3
00:00:14,890 --> 00:00:18,430
‫Nos gustaría reproducir algunos sonidos cuando disparamos el proyectil.

4
00:00:18,580 --> 00:00:23,380
‫Cuando el proyectil golpea algo y cuando uno de nuestros peones muere.

5
00:00:23,590 --> 00:00:25,060
‫Así que entremos de inmediato.

6
00:00:25,540 --> 00:00:32,770
‫Ahora estoy aquí en el ED, y si voy a la carpeta de activos, tenemos esta carpeta de audio y

7
00:00:32,770 --> 00:00:38,350
‫tenemos dos sonidos diferentes y estos serán buenos para cuando nuestro proyectil golpee algo.

8
00:00:38,350 --> 00:00:44,170
‫Usaremos el ruido sordo y cuando uno de nuestros peones muera usaremos el audio de explosión.

9
00:00:44,170 --> 00:00:48,520
‫Y también podemos reutilizar el sonido de ruido sordo cuando estamos lanzando un proyectil.

10
00:00:48,550 --> 00:00:54,590
‫Ahora nos gustaría que nuestro proyectil tuviera dos variables que representaran esos activos de sonido.

11
00:00:54,610 --> 00:00:59,980
‫Ahora, aquí abajo en la sección privada, voy a agregar un par de variables y voy a

12
00:00:59,980 --> 00:01:01,210
‫declarar esta clase.

13
00:01:01,210 --> 00:01:06,820
‫Ahora, la clase que voy a usar es su base sólida y eso será un indicador.

14
00:01:06,820 --> 00:01:09,580
‫Ahora voy a llamar a este sonido de lanzamiento.

15
00:01:09,760 --> 00:01:15,250
‫Esto va a representar el sonido que hacemos cuando lanzamos un proyectil.

16
00:01:15,280 --> 00:01:19,570
‫Ahora, su base de sonido es una clase que podemos usar para sonidos.

17
00:01:19,570 --> 00:01:26,050
‫Ahora, si exponemos esto a planos, podemos configurarlo usando nuestros activos de sonido que tenemos en nuestra carpeta de

18
00:01:26,050 --> 00:01:26,650
‫sonidos.

19
00:01:26,650 --> 00:01:30,910
‫Así que voy a seguir adelante y darle a esto una propiedad U para que podamos exponerlo.

20
00:01:30,910 --> 00:01:36,100
‫Y lo voy a hacer editar en cualquier lugar y colocarlo en la categoría de combate.

21
00:01:36,100 --> 00:01:39,550
‫Así que está ahí con nuestras otras variables de combate.

22
00:01:39,850 --> 00:01:45,460
‫Ahora me gustaría usar otra variable basada en sonido para cuando el proyectil golpea algo.

23
00:01:45,460 --> 00:01:49,090
‫Así que este será otro puntero basado en sonido U.

24
00:01:49,090 --> 00:01:55,300
‫Y voy a llamar a este sonido de golpe y le voy a dar la misma propiedad que el sonido de lanzamiento.

25
00:01:55,300 --> 00:02:01,660
‫Ahora observe que no estoy declarando su base de sonido para el sonido de éxito porque ya he declarado

26
00:02:01,660 --> 00:02:03,760
‫su base de sonido aquí arriba.

27
00:02:03,760 --> 00:02:10,720
‫Entonces, una vez que haya declarado un tipo en una línea, ese tipo se puede usar después en el archivo.

28
00:02:10,720 --> 00:02:16,420
‫Ahora, por esta razón, algunas personas colocan sus declaraciones anticipadas hasta aquí en la parte superior.

29
00:02:16,420 --> 00:02:17,950
‫Esa es otra forma de hacerlo.

30
00:02:17,950 --> 00:02:26,350
‫Así que si digo clase, suenas base aquí arriba, entonces esto se encarga de la declaración directa y puedo usar el tipo de

31
00:02:26,350 --> 00:02:32,710
‫base de sonido de uso en cualquier parte de este archivo después de la declaración directa.

32
00:02:32,710 --> 00:02:34,420
‫Así que esa es otra forma de hacerlo.

33
00:02:34,420 --> 00:02:40,870
‫Entonces, para mostrarle ambas formas, voy a reenviar la declaración de su base de sonido aquí en la parte superior

34
00:02:40,870 --> 00:02:43,180
‫en lugar de reenviarla aquí abajo.

35
00:02:43,330 --> 00:02:48,830
‫Entonces ahora tenemos que usar variables de base de sonido en el proyectil h.

36
00:02:48,970 --> 00:02:55,210
‫Me gustaría agregar una base sólida a la clase de peón base y esto será para cuando se destruya el peón base.

37
00:02:55,210 --> 00:02:59,920
‫Así que esto estará en la sección privada y voy a declararlo aquí y va a

38
00:02:59,920 --> 00:03:07,210
‫ser un indicador de base de sonido tú y voy a llamar a este sonido de muerte y esto va a obtener una propiedad tú.

39
00:03:07,240 --> 00:03:10,780
‫Voy a desplazarme hacia abajo para que pueda verlo mejor su propiedad.

40
00:03:10,810 --> 00:03:12,490
‫Se agregará en cualquier lugar.

41
00:03:14,240 --> 00:03:16,760
‫Y colocaré esto en la categoría.

42
00:03:18,350 --> 00:03:19,220
‫Combate.

43
00:03:19,700 --> 00:03:26,420
‫Así que ahora que nuestra base y nuestro proyectil han usado variables de base de sonido, sigamos compilando estas

44
00:03:26,420 --> 00:03:29,930
‫y echemos un vistazo a estas variables en Blueprint.

45
00:03:29,930 --> 00:03:35,690
‫Y, por supuesto, recibo un error de compilación porque escribí tu propiedad demasiado rápido.

46
00:03:35,690 --> 00:03:38,420
‫Esa y minúscula debería ser una y mayúscula.

47
00:03:38,420 --> 00:03:45,530
‫Estas cosas distinguen entre mayúsculas y minúsculas, por lo que corrigiendo ese error tipográfico y compilando nuevamente, ahora tengo una compilación

48
00:03:45,530 --> 00:03:46,160
‫exitosa.

49
00:03:46,160 --> 00:03:52,820
‫Así que volvamos al editor ahora aquí el editor, voy a seguir adelante y abrir la carpeta de

50
00:03:52,820 --> 00:03:59,420
‫actores y el proyectil BP y voy a abrir el editor de planos completo. Prefiero hacer eso.

51
00:03:59,420 --> 00:04:02,540
‫Me facilita ver dónde está todo ahora.

52
00:04:02,540 --> 00:04:09,050
‫Tengo el sonido de lanzamiento y el sonido de golpe aquí y debido a que se pueden editar en cualquier lugar,

53
00:04:09,050 --> 00:04:14,390
‫podemos seleccionar activos de sonido del menú desplegable y solo me muestra las opciones válidas que tengo.

54
00:04:14,390 --> 00:04:19,400
‫Ahora lo que estoy viendo aquí es el sonido de lanzamiento y voy a usar el sonido de ruido sordo para esto.

55
00:04:19,700 --> 00:04:23,000
‫Ahora también voy a usar Thud audio para el sonido de golpe.

56
00:04:23,000 --> 00:04:24,560
‫Pero hice dos variables.

57
00:04:24,560 --> 00:04:30,230
‫Entonces, si tiene en sus manos más efectos de sonido, puede usar un sonido diferente para el lanzamiento versus el sonido

58
00:04:30,230 --> 00:04:31,010
‫de golpe.

59
00:04:31,010 --> 00:04:33,740
‫Así que esto está configurado para usted en caso de que quiera hacer eso.

60
00:04:33,740 --> 00:04:38,480
‫Ahora eso se ocupa del sonido de lanzamiento y el sonido de golpe en el proyectil.

61
00:04:38,480 --> 00:04:41,810
‫Así que voy a compilar, guardar y cerrar esto.

62
00:04:42,080 --> 00:04:46,280
‫A continuación, voy a abrir estanques y abrir el tanque del estanque BP.

63
00:04:46,280 --> 00:04:49,250
‫Y aquí está mi sonido de muerte en la sección de combate.

64
00:04:49,490 --> 00:04:56,480
‫Voy a hacer clic en el menú desplegable y usar explotar audio y configurar el sonido de muerte en el activo de sonido de explosión

65
00:04:56,480 --> 00:04:57,230
‫de audio.

66
00:04:57,260 --> 00:05:04,370
‫Voy a compilar y guardar eso y cerrar el tanque de estanque de BP y abrir la torreta de estanque de BP porque

67
00:05:04,370 --> 00:05:09,320
‫colocamos esta variable en la clase de estanque base de la que también hereda la torreta.

68
00:05:09,320 --> 00:05:13,940
‫Así que voy a configurar el sonido de la muerte para que explote el audio aquí también.

69
00:05:13,940 --> 00:05:21,200
‫Así que ahora tenemos activos de sonido y están almacenados en variables tanto en nuestros estanques como en el proyectil.

70
00:05:21,200 --> 00:05:24,530
‫Lo único que queda es reproducir estos sonidos.

71
00:05:24,860 --> 00:05:28,550
‫Ahora la estática del juego tiene otra función útil.

72
00:05:28,550 --> 00:05:31,310
‫Se llama reproducir sonido en el lugar.

73
00:05:31,310 --> 00:05:37,370
‫Ahora podemos desplazarnos hacia abajo y ver que requiere una gran cantidad de parámetros de entrada, pero como

74
00:05:37,370 --> 00:05:42,590
‫la mayoría de estas funciones, hay una serie de parámetros opcionales que tienen valores predeterminados.

75
00:05:42,770 --> 00:05:45,680
‫Así que podemos profundizar en el código para ver esto.

76
00:05:45,950 --> 00:05:51,410
‫Así que voy a saltar al proyectil CP y aquí y comenzaré a jugar.

77
00:05:51,410 --> 00:06:00,200
‫Voy a escribir las estadísticas del juego, reproducir el sonido en el lugar y presionar los paréntesis de apertura allí y

78
00:06:00,200 --> 00:06:02,750
‫veré que dice uno de dos.

79
00:06:03,020 --> 00:06:07,460
‫Ahora, esta primera versión que me muestra toma un objeto de contexto mundial.

80
00:06:07,460 --> 00:06:09,830
‫Sabemos que podemos pasar esto por aquello.

81
00:06:09,830 --> 00:06:12,110
‫Y luego toma una base de sonido de uso.

82
00:06:12,110 --> 00:06:17,810
‫Entonces tenemos variables de base de sonido y luego toma un vector F para la ubicación.

83
00:06:17,810 --> 00:06:23,360
‫Ahora, si queremos reproducir el sonido en la ubicación del proyectil, podemos simplemente usar la ubicación del actor

84
00:06:23,360 --> 00:06:26,060
‫y el resto de estas entradas son opcionales.

85
00:06:26,060 --> 00:06:32,420
‫Entonces, si desea analizarlos, eche otro vistazo a la página de documentación para esta función e investigue

86
00:06:32,420 --> 00:06:33,830
‫un poco más.

87
00:06:33,830 --> 00:06:40,250
‫Pero solo nos preocupan las tres primeras entradas, por lo que sabemos cómo reproducir sonidos en lugares que

88
00:06:40,250 --> 00:06:40,970
‫podemos usar.

89
00:06:40,970 --> 00:06:47,870
‫La estática del juego reproduce sonido en la ubicación, lo que toma un objeto de contexto mundial, un sonido para el que podemos

90
00:06:47,870 --> 00:06:54,110
‫usar nuestra base de sonido de uso y una ubicación para la que podemos usar obtener la ubicación del actor.

91
00:06:54,110 --> 00:07:00,410
‫Entonces, su desafío será llamar a reproducir sonido en la ubicación y reproducir sonidos para los diversos aspectos de

92
00:07:00,410 --> 00:07:02,360
‫nuestro juego que necesitan sonidos.

93
00:07:02,360 --> 00:07:10,220
‫Así que llámese estática de juego, reproduzca sonido en la ubicación en la clase de proyectil primero en la función de golpe y use

94
00:07:10,220 --> 00:07:12,500
‫nuestra variable de sonido de golpe.

95
00:07:12,530 --> 00:07:18,830
‫Haga esto en la verificación if cuando verificamos si otro actor es válido y nos aseguramos de que el otro actor

96
00:07:18,830 --> 00:07:20,840
‫no sea este o el propietario.

97
00:07:20,840 --> 00:07:27,020
‫Pero llámelo antes de que destruyamos el proyectil y llame al sonido de reproducción en el lugar y comience a reproducir

98
00:07:27,020 --> 00:07:29,630
‫el proyectil y use el sonido de lanzamiento.

99
00:07:29,630 --> 00:07:35,300
‫De esa manera conseguiremos que el sonido se reproduzca cuando se genera el proyectil, así como cuando el proyectil

100
00:07:35,330 --> 00:07:36,650
‫golpea algo a continuación.

101
00:07:36,650 --> 00:07:42,110
‫Ingrese a la clase de pong base y llame al sonido de reproducción en la ubicación y maneje la destrucción.

102
00:07:42,110 --> 00:07:43,730
‫Y vas a usar el sonido de la muerte.

103
00:07:43,730 --> 00:07:45,110
‫Esa es la explosión.

104
00:07:45,110 --> 00:07:50,000
‫Así que pausa el video y agrega estas llamadas para reproducir sonido en el lugar ahora.

105
00:07:53,530 --> 00:07:53,800
‫Bueno.

106
00:07:53,830 --> 00:07:59,470
‫Así que primero estamos aquí en Projectile CP y voy a ir en el orden del desafío.

107
00:07:59,470 --> 00:08:04,290
‫Así que primero voy a bajar a "on hit" y reproducir el sonido aquí abajo.

108
00:08:04,300 --> 00:08:11,440
‫Ahora probablemente verificó si el sonido era nulo y, si lo hizo, lo felicito porque ya está

109
00:08:11,440 --> 00:08:14,100
‫adquiriendo esos buenos hábitos de programación.

110
00:08:14,110 --> 00:08:16,120
‫Ahora, si no lo hiciste, está bien.

111
00:08:16,150 --> 00:08:16,990
‫Adelante, hazlo.

112
00:08:16,990 --> 00:08:17,290
‫Ahora.

113
00:08:17,290 --> 00:08:24,550
‫Vamos a verificar si el sonido de golpe es válido antes de llamar a la nueva función estática de juego.

114
00:08:24,550 --> 00:08:25,450
‫Así que vas a ser tú.

115
00:08:25,450 --> 00:08:32,200
‫Las estáticas del juego reproducen sonido en la ubicación y primero necesitamos un objeto de contexto mundial que será

116
00:08:32,200 --> 00:08:32,650
‫este.

117
00:08:32,650 --> 00:08:37,660
‫A continuación, necesitamos el sonido del golpe en sí y vamos a reproducirlo en la ubicación del actor.

118
00:08:37,660 --> 00:08:42,670
‫Entonces, obtener la ubicación del actor satisfará ese tercer parámetro.

119
00:08:43,090 --> 00:08:44,260
‫Vale, perfecto.

120
00:08:44,260 --> 00:08:47,170
‫A continuación, necesitamos reproducir un sonido y comenzar a tocar.

121
00:08:47,170 --> 00:08:49,000
‫Así que volvamos a subir para comenzar a jugar.

122
00:08:49,000 --> 00:08:54,010
‫Y para este, vamos a verificar si el sonido de lanzamiento es válido.

123
00:08:54,010 --> 00:09:02,500
‫Así que vamos a decir si lanzas sonido, juegas estática, reproduces sonido en la ubicación y, por supuesto, necesitamos el objeto

124
00:09:02,500 --> 00:09:04,030
‫de contexto mundial.

125
00:09:04,030 --> 00:09:09,910
‫Esa es la base de sonido de uso que será el sonido de lanzamiento y lo reproduciremos en la ubicación

126
00:09:09,910 --> 00:09:10,570
‫del actor.

127
00:09:10,570 --> 00:09:17,140
‫Entonces obtenga la ubicación del actor y eso se encarga de reproducir el sonido y comenzar a tocar.

128
00:09:17,140 --> 00:09:23,830
‫Entonces, lo último que debe hacer es reproducir el sonido en la base: clasificar y manejar la destrucción.

129
00:09:23,830 --> 00:09:29,410
‫Y ahora que estamos manejando los efectos visuales y de sonido, no necesitamos decir hacer aquí porque ya hemos

130
00:09:29,410 --> 00:09:30,100
‫hecho esto.

131
00:09:30,100 --> 00:09:34,120
‫Primero, vamos a verificar si el sonido de muerte es válido.

132
00:09:34,120 --> 00:09:41,380
‫Si es así, podemos llamarlo estática del juego reproducir sonido en la ubicación con el objeto de contexto mundial.

133
00:09:41,380 --> 00:09:49,510
‫Esa será la base de sonido que será el sonido de la muerte y la ubicación del actor satisfará la ubicación

134
00:09:49,540 --> 00:09:52,330
‫de este sonido de la muerte.

135
00:09:52,450 --> 00:09:53,770
‫Ock Impresionante.

136
00:09:53,770 --> 00:09:58,570
‫Avancemos y compilemos nuestro código con una compilación exitosa.

137
00:09:58,600 --> 00:10:02,200
‫Volveremos aquí al editor y juguemos a probar esto.

138
00:10:02,200 --> 00:10:05,590
‫Así que voy a darle al play y esperar el temporizador.

139
00:10:14,030 --> 00:10:16,930
‫En resumen, ahora tenemos sonido.

140
00:10:16,940 --> 00:10:23,540
‫Estamos reproduciendo un sonido para el proyectil al impactar y al lanzarlo, y estamos reproduciendo un sonido para el peón

141
00:10:23,540 --> 00:10:24,560
‫al morir.

142
00:10:24,830 --> 00:10:30,560
‫Entonces, mirando hacia atrás en nuestro plan de sección, vemos que hemos marcado casi todos los elementos aquí.

143
00:10:30,560 --> 00:10:34,610
‫Todavía estamos en los efectos especiales, tenemos el humo, las explosiones y los sonidos.

144
00:10:34,610 --> 00:10:40,850
‫Solo hay algunas cosas que hacer para pulir este juego y asegurarnos de que se vea y se sienta

145
00:10:40,850 --> 00:10:43,730
‫bien antes de continuar y concluir esta sección.

146
00:10:43,730 --> 00:10:46,580
‫Así que te veré en el próximo video.

