﻿1
00:00:04,340 --> 00:00:05,160
‫Hola y bienvenido.

2
00:00:05,180 --> 00:00:11,600
‫En esta lección, presentaremos dos nuevos tipos de activos, el árbol de comportamiento y la pizarra, que

3
00:00:11,600 --> 00:00:16,610
‫son dos activos que nos permiten hacer algo muy interesante con el aire.

4
00:00:16,610 --> 00:00:18,680
‫Permítanos hacerlo mucho más complicado.

5
00:00:18,860 --> 00:00:23,330
‫Muy fácilmente, vamos a sumergirnos y ver cómo los usamos y los configuramos.

6
00:00:25,080 --> 00:00:25,380
‫Bueno.

7
00:00:25,380 --> 00:00:28,830
‫Así que queremos crear algunos sofisticados A. YO. comportamiento.

8
00:00:29,070 --> 00:00:33,930
‫Ahora, la forma en que normalmente hacemos esto en Unreal es usando un sistema llamado árboles de comportamiento.

9
00:00:33,960 --> 00:00:34,890
‫Ahora, ¿qué son estos?

10
00:00:35,100 --> 00:00:38,850
‫Bueno, la mejor manera de averiguarlo es crear uno.

11
00:00:39,090 --> 00:00:41,910
‫Así que sigamos adelante y hagamos clic derecho y listo.

12
00:00:41,940 --> 00:00:44,940
‫Estamos buscando aquí debajo de la inteligencia artificial.

13
00:00:45,270 --> 00:00:48,300
‫Y aquí hay dos opciones de comportamiento, árbol y pizarra.

14
00:00:48,540 --> 00:00:50,730
‫Vamos a querer los dos.

15
00:00:51,180 --> 00:00:54,360
‫Entonces, comencemos con el árbol de comportamiento.

16
00:00:54,780 --> 00:00:59,520
‫El prefijo de esto es B. t y vamos a llamar a esto el enemigo.

17
00:00:59,670 --> 00:01:01,060
‫Entonces comportamiento árbol enemigo.

18
00:01:01,530 --> 00:01:03,710
‫Solo termino con eso.

19
00:01:03,740 --> 00:01:04,170
‫Ellos van.

20
00:01:04,620 --> 00:01:09,120
‫Y también necesitamos crear la otra cosa allí, que era una pizarra.

21
00:01:09,150 --> 00:01:11,190
‫Ahora, ¿qué diablos es una pizarra?

22
00:01:11,220 --> 00:01:12,270
‫Llegaremos a eso en solo un segundo.

23
00:01:12,270 --> 00:01:18,510
‫Pero lo llamaremos el enemigo b b guión bajo es a, b, b para pizarra, b, t para árbol de

24
00:01:18,510 --> 00:01:18,930
‫comportamiento.

25
00:01:19,230 --> 00:01:22,140
‫Y mientras estamos en eso, tenemos algunas cosas relacionadas con A. YO..

26
00:01:22,170 --> 00:01:29,040
‫Oye, voy a crear una nueva carpeta llamada A. YO. , y vamos a mover la pizarra, el árbol de

27
00:01:29,040 --> 00:01:29,400
‫comportamiento.

28
00:01:29,820 --> 00:01:33,830
‫Y en algún lugar aquí tenemos a nuestro tirador, A. YO. controlador.

29
00:01:33,840 --> 00:01:39,540
‫Todo eso entra en A. YO. muévase aquí y luego podemos entrar en esa A. YO. carpetas, se ocupan de todo lo relacionado

30
00:01:39,690 --> 00:01:40,320
‫con la IA.

31
00:01:41,070 --> 00:01:45,180
‫Abramos nuestro árbol de comportamiento, en primer lugar, y acóplelo a la ventana principal.

32
00:01:45,750 --> 00:01:47,530
‫Entonces, ¿qué diablos es esto?

33
00:01:47,550 --> 00:01:52,830
‫Así que esto nos permite crear árboles de comportamientos donde podrías decir que tenemos parte del comportamiento

34
00:01:52,830 --> 00:01:53,820
‫aquí para perseguir.

35
00:01:53,820 --> 00:01:55,080
‫Parte de esto es para trolear.

36
00:01:55,440 --> 00:01:59,970
‫Parte de eso es para otra cosa, abrir puertas, todo este tipo de cosas.

37
00:02:00,270 --> 00:02:06,330
‫Por lo general, estructuran los comportamientos como montones y montones de árboles de comportamientos y subárboles, etc.

38
00:02:06,570 --> 00:02:13,980
‫Veremos todo eso en detalle, pero baste decir que es una excelente manera de combinar comportamientos naturales

39
00:02:13,980 --> 00:02:15,540
‫en sus juegos.

40
00:02:16,140 --> 00:02:17,580
‫Ahora no es el ser todo y acabar con todo.

41
00:02:17,580 --> 00:02:19,380
‫Hay mucha A. YO. tecnicas

42
00:02:19,380 --> 00:02:23,760
‫Puede que este no sea el que quieras para tu juego, pero es un gran comienzo

43
00:02:23,760 --> 00:02:25,800
‫y puedes lograr mucho con él.

44
00:02:26,580 --> 00:02:31,020
‫Ahora, lo siguiente que podemos ver arriba, a la derecha, estos dos activos están vinculados al

45
00:02:31,020 --> 00:02:32,790
‫árbol de comportamiento y la pizarra.

46
00:02:33,090 --> 00:02:34,770
‫¿Qué diablos es una pizarra?

47
00:02:35,190 --> 00:02:41,430
‫Bueno, la pizarra es como el recuerdo de tu A. YO. Es esencialmente donde almacena un montón

48
00:02:41,430 --> 00:02:42,180
‫de variables.

49
00:02:42,180 --> 00:02:46,290
‫Los ingresas desde el juego de forma muy parecida a como lo estábamos

50
00:02:46,290 --> 00:02:50,970
‫haciendo con el sistema de animación, donde tienes estas diferentes propiedades que establece el juego.

51
00:02:51,180 --> 00:02:57,180
‫Hacemos lo mismo con la A. YO. establecemos muchas propiedades que le brindan información sobre

52
00:02:57,180 --> 00:03:03,120
‫su mundo de juego, y luego el árbol de comportamiento se basa en esas propiedades y las usa para decidir qué va a

53
00:03:03,120 --> 00:03:03,510
‫hacer.

54
00:03:03,510 --> 00:03:04,890
‫Puede establecer esas propiedades.

55
00:03:04,890 --> 00:03:10,350
‫Puede usarlos como memoria, puede leer de esas propiedades y todas esas cosas maravillosas.

56
00:03:10,770 --> 00:03:16,980
‫Entonces, con eso en mente, ¿cómo podemos configurar nuestro árbol de comportamiento en Blackboard para que estén vinculados entre

57
00:03:16,980 --> 00:03:17,550
‫sí?

58
00:03:18,120 --> 00:03:20,430
‫Bueno, vamos a expandir eso en nuestro panel de detalles.

59
00:03:20,430 --> 00:03:25,980
‫Puede ver aquí que existe este activo de pizarra y automáticamente parece haberlo rellenado para

60
00:03:25,980 --> 00:03:32,580
‫nosotros, de modo que el activo de pizarra está vinculado a este enemigo b b b, yo activo de pizarra.

61
00:03:33,090 --> 00:03:38,280
‫Ahora todos nos alejaremos un poco de C++ para usar estos activos porque, obviamente, los

62
00:03:38,280 --> 00:03:42,360
‫árboles de comportamiento y las pizarras están completamente dentro del editor.

63
00:03:42,360 --> 00:03:44,430
‫No son planos como tales.

64
00:03:44,430 --> 00:03:49,920
‫Son sus propias herramientas de edición y podemos interactuar con ellas en C++, pero eso no significa que vayamos

65
00:03:49,920 --> 00:03:53,460
‫a utilizar el editor para las próximas dos conferencias además de C++.

66
00:03:53,640 --> 00:03:54,810
‫No hay tanto plano allí.

67
00:03:55,050 --> 00:04:00,750
‫Entonces, es genial que tengamos este árbol de comportamiento y esta pizarra, pero ¿cómo diablos

68
00:04:00,750 --> 00:04:02,150
‫lo usamos realmente?

69
00:04:02,400 --> 00:04:05,500
‫Bueno, para eso, volvemos a nuestro controlador aéreo.

70
00:04:05,500 --> 00:04:14,370
‫Si recuerdas, el controlador es completamente responsable de ejecutar nuestros comportamientos y eso no es una excepción aquí.

71
00:04:14,850 --> 00:04:18,870
‫El árbol de comportamiento es solo otra cosa que el controlador aéreo puede usar o ejecutar.

72
00:04:19,410 --> 00:04:24,750
‫Entonces, la forma en que vamos a hacer esto es ir a nuestro punto de control y necesitamos tener

73
00:04:24,750 --> 00:04:29,790
‫una forma de hacer referencia en el modelo a qué árbol de comportamiento queremos que se ejecute.

74
00:04:30,720 --> 00:04:34,860
‫Entonces, lo primero que voy a hacer es ir a nuestro control de

75
00:04:34,860 --> 00:04:40,920
‫CP y comentar las cosas en TTIC porque vamos a reemplazar esta funcionalidad con la funcionalidad del árbol de

76
00:04:40,920 --> 00:04:41,400
‫comportamiento.

77
00:04:41,880 --> 00:04:46,170
‫Y eso significa que puedo eliminar este radio de aceptación aquí porque ya no lo necesitamos.

78
00:04:46,500 --> 00:04:50,910
‫Y en su lugar vamos a utilizar un puntero al nuevo comportamiento.

79
00:04:51,780 --> 00:04:56,100
‫Y tengo que deletrear este árbol y puntero americano.

80
00:04:56,550 --> 00:04:58,980
‫Ese es el árbol de comportamiento que quieres allí.

81
00:04:59,070 --> 00:05:02,310
‫Y necesito reenviar declarar esto con una clase delante.

82
00:05:02,310 --> 00:05:08,640
‫Y básicamente aquí, lo que quiero decir es que este es el comportamiento y.

83
00:05:09,740 --> 00:05:13,160
‫Voy a mantener la ortografía americana aquí solo por consistencia.

84
00:05:13,430 --> 00:05:17,570
‫Así que este es el comportamiento que queremos aquí ahora para ejecutar el comportamiento.

85
00:05:17,570 --> 00:05:18,500
‫No podría ser más sencillo.

86
00:05:18,500 --> 00:05:22,670
‫De nuevo, la A. YO. controla que la H tiene una función incorporada para esto.

87
00:05:22,670 --> 00:05:26,360
‫Tenemos esta función de árbol de comportamiento de ejecución que se vuelve booleana.

88
00:05:26,360 --> 00:05:30,440
‫Ya sea que pueda ejecutarlo con éxito o no, comience a ejecutarlo, eso es.

89
00:05:30,770 --> 00:05:35,720
‫Y toma el activo beta, que es un puntero al árbol de comportamiento.

90
00:05:36,350 --> 00:05:39,980
‫Así que eso es lo que vamos a querer usar y podemos hacerlo de nuevo al comenzar a jugar.

91
00:05:39,980 --> 00:05:44,240
‫Así que lo que vamos a hacer es, en primer lugar, vamos a verificar que efectivamente tenemos un árbol de comportamiento

92
00:05:44,270 --> 00:05:44,600
‫aquí.

93
00:05:44,600 --> 00:05:46,970
‫Así que vamos a decir yo comportamiento.

94
00:05:48,210 --> 00:05:50,940
‫No es igual a puntos nulos, ¿eh?

95
00:05:51,030 --> 00:05:53,600
‫Porque no queremos usarlo de otra manera.

96
00:05:53,610 --> 00:05:58,920
‫Y luego lo que podemos hacer es ejecutar el árbol de comportamiento llamado comportamiento del aire.

97
00:05:59,190 --> 00:06:06,150
‫Realmente es así de simple ejecutar cualquier comportamiento y podemos seguir adelante y compilar.

98
00:06:07,480 --> 00:06:12,730
‫Y una cosa más que podemos hacer con los árboles pesados es que podemos verlos correr en tiempo de ejecución, pero para

99
00:06:12,730 --> 00:06:14,950
‫hacer eso, necesitas tener algún tipo de nodo aquí.

100
00:06:15,280 --> 00:06:18,850
‫Así que solo vamos a agregar un nodo sin entender completamente lo que hace.

101
00:06:18,880 --> 00:06:23,800
‫Voy a agregar un nodo de secuencia, y lo voy a conectar arrastrando hacia abajo desde el nodo raíz, debajo

102
00:06:23,800 --> 00:06:28,720
‫del nodo raíz, los puntos destacados cuando paso el mouse sobre él hasta el poco arriba del nodo de

103
00:06:28,720 --> 00:06:29,050
‫secuencia.

104
00:06:29,560 --> 00:06:30,610
‫Y voy a guardar eso.

105
00:06:31,210 --> 00:06:39,580
‫Voy a ir y presionar play e ir a mi recurso de árbol de comportamiento y debería poder ver un menú desplegable aquí,

106
00:06:39,640 --> 00:06:43,390
‫pero no lo haría porque no se está ejecutando actualmente.

107
00:06:43,390 --> 00:06:44,320
‫Así que dejemos de jugar.

108
00:06:45,100 --> 00:06:46,600
‫¿Y por qué no se ejecuta?

109
00:06:46,600 --> 00:06:51,370
‫Debido a que no lo hemos conectado y como controlador aéreo tirador, hagámoslo, puede ser un desafío

110
00:06:51,370 --> 00:06:52,540
‫para usted conectarlo.

111
00:06:53,050 --> 00:06:54,370
‫Con suerte, no debería ser demasiado difícil.

112
00:06:55,000 --> 00:06:55,270
‫Bueno.

113
00:06:55,270 --> 00:06:56,080
‫Bienvenido de nuevo.

114
00:06:56,110 --> 00:07:01,060
‫Entonces, si vamos y echamos un vistazo aquí, estamos buscando un comportamiento.

115
00:07:01,510 --> 00:07:04,240
‫Alguna razón por la que requirió una recompilación para que me apareciera.

116
00:07:04,240 --> 00:07:04,840
‫Pero aquí está.

117
00:07:05,180 --> 00:07:06,430
‫El comportamiento es lo que queremos.

118
00:07:06,880 --> 00:07:07,720
‫Hacemos clic en el desplegable.

119
00:07:07,720 --> 00:07:10,570
‫Solo hay una opción en este momento, por lo que solo tenemos un árbol de comportamiento.

120
00:07:10,570 --> 00:07:14,140
‫Así que seleccione ese y compile y guarde.

121
00:07:14,140 --> 00:07:17,140
‫Y si ahora seguimos adelante y jugamos el juego.

122
00:07:18,040 --> 00:07:21,210
‫Y ve y echa un vistazo a Beattie Enemy II.

123
00:07:21,220 --> 00:07:26,380
‫Puede ver que está resaltando la nota que se está ejecutando actualmente y tiene este pequeño menú

124
00:07:26,380 --> 00:07:32,380
‫desplegable junto a los botones de parada de pausa, que le indica qué controlador de aire está observando actualmente el rastro

125
00:07:32,380 --> 00:07:33,070
‫de comportamiento.

126
00:07:33,100 --> 00:07:38,950
‫Entonces, esta es una gran funcionalidad para que puedas saltar y decir, está bien, ¿por qué ese aire

127
00:07:38,950 --> 00:07:39,700
‫está quieto?

128
00:07:39,730 --> 00:07:41,140
‫¿Por qué no persigue al jugador?

129
00:07:41,350 --> 00:07:46,180
‫Puedes ver qué partes del comportamiento está ejecutando actualmente y decir, Oh, eso ve, ya sabes, eso

130
00:07:46,180 --> 00:07:46,870
‫salió mal.

131
00:07:47,170 --> 00:07:48,830
‫Es realmente útil para la depuración.

132
00:07:48,850 --> 00:07:53,620
‫Puede ir y echar un vistazo a lo que todo su aire en el mundo está haciendo usando este menú desplegable.

133
00:07:54,070 --> 00:07:54,490
‫Buena cosa.

134
00:07:54,490 --> 00:07:55,510
‫Eso es todo por esta conferencia.

135
00:07:55,510 --> 00:08:01,720
‫En la próxima lección, veremos cómo podemos configurar información en la memoria de pizarra

136
00:08:01,990 --> 00:08:04,540
‫de nuestra IA desde C++.

137
00:08:04,570 --> 00:08:05,320
‫Te veré allá.

