﻿1
00:00:04,340 --> 00:00:05,160
‫Cześć i witaj.

2
00:00:05,180 --> 00:00:11,600
‫W tym wykładzie przedstawiamy dwa nowe typy zasobów: drzewo zachowań i tablicę, które są dwoma

3
00:00:11,600 --> 00:00:16,610
‫zasobami, które pozwalają nam robić bardzo interesujące rzeczy z powietrzem.

4
00:00:16,610 --> 00:00:18,680
‫Pozwól nam znacznie bardziej skomplikować.

5
00:00:18,860 --> 00:00:23,330
‫Bardzo łatwo zanurkujmy i zobaczmy, jak ich używamy i ustawiamy.

6
00:00:25,080 --> 00:00:25,380
‫Dobra.

7
00:00:25,380 --> 00:00:28,830
‫Dlatego chcemy stworzyć wyrafinowane A. I. zachowanie.

8
00:00:29,070 --> 00:00:33,930
‫Sposób, w jaki zwykle robimy to w Unreal, polega na użyciu systemu zwanego drzewami zachowań.

9
00:00:33,960 --> 00:00:34,890
‫Co to jest?

10
00:00:35,100 --> 00:00:38,850
‫Cóż, najlepszym sposobem, aby się przekonać, jest stworzenie takiego.

11
00:00:39,090 --> 00:00:41,910
‫Więc chodźmy dalej, kliknij prawym przyciskiem myszy i idźmy.

12
00:00:41,940 --> 00:00:44,940
‫Szukamy tutaj pod sztuczną inteligencją.

13
00:00:45,270 --> 00:00:48,300
‫I są tu dwie opcje zachowania, drzewo i tablica.

14
00:00:48,540 --> 00:00:50,730
‫Będziemy chcieli obu tych rzeczy.

15
00:00:51,180 --> 00:00:54,360
‫Więc chodźmy i zacznijmy od drzewa zachowań.

16
00:00:54,780 --> 00:00:59,520
‫Prefiksem tego jest B. T. i będziemy nazywać to wrogiem.

17
00:00:59,670 --> 00:01:01,060
‫Więc zachowanie drzewa wroga.

18
00:01:01,530 --> 00:01:03,710
‫Po prostu z tym kończę.

19
00:01:03,740 --> 00:01:04,170
‫Idą.

20
00:01:04,620 --> 00:01:09,120
‫I musimy też stworzyć tam inną rzecz, czyli tablicę.

21
00:01:09,150 --> 00:01:11,190
‫Czym u licha jest tablica?

22
00:01:11,220 --> 00:01:12,270
‫Dojdziemy do tego za chwilę.

23
00:01:12,270 --> 00:01:18,510
‫Ale nazwiemy to po prostu b b podkreśleniem wróg to a, b, b jak tablica, b, t jak drzewo

24
00:01:18,510 --> 00:01:18,930
‫zachowania.

25
00:01:19,230 --> 00:01:22,140
‫A skoro już przy tym jesteśmy, mamy kilka rzeczy związanych z A. I..

26
00:01:22,170 --> 00:01:29,400
‫Hej, zamierzam utworzyć nowy folder o nazwie A. I. , a my przeniesiemy tablicę, drzewo zachowań.

27
00:01:29,820 --> 00:01:33,830
‫A gdzieś tutaj mamy naszego strzelca, A. I. kontroler.

28
00:01:33,840 --> 00:01:39,540
‫Wszystko to trafia do A. I. przesuń się tutaj, a potem możemy przejść do tego A. I. folderów, zajmuj się wszystkim, co związane

29
00:01:39,690 --> 00:01:40,320
‫z AI.

30
00:01:41,070 --> 00:01:45,180
‫Otwórzmy najpierw nasze drzewo zachowań i zadokujmy je w głównym oknie.

31
00:01:45,750 --> 00:01:47,530
‫Więc co to jest, u licha?

32
00:01:47,550 --> 00:01:52,830
‫To pozwala nam tworzyć drzewa zachowań, w których można powiedzieć, że mamy część zachowania

33
00:01:52,830 --> 00:01:53,820
‫do ścigania.

34
00:01:53,820 --> 00:01:55,080
‫Część jest przeznaczona do trollingu.

35
00:01:55,440 --> 00:01:59,970
‫Częściowo jest na coś innego, otwieranie drzwi, tego typu rzeczy.

36
00:02:00,270 --> 00:02:06,330
‫Zazwyczaj strukturyzują zachowania jako wiele, wiele drzew zachowań, poddrzew i tak dalej.

37
00:02:06,570 --> 00:02:13,980
‫Zobaczymy, że wszystko będzie się działo w szczegółach, ale wystarczy powiedzieć, że jest to świetny sposób na połączenie naturalnych

38
00:02:13,980 --> 00:02:15,540
‫zachowań w twoich grach.

39
00:02:16,140 --> 00:02:17,580
‫Teraz to nie wszystko i koniec wszystkiego.

40
00:02:17,580 --> 00:02:19,380
‫Jest dużo A. I. techniki.

41
00:02:19,380 --> 00:02:23,760
‫Może nie jest to ten, z którym chcesz iść do swojej gry, ale jest to świetny

42
00:02:23,760 --> 00:02:25,800
‫początek i możesz dzięki nim wiele osiągnąć.

43
00:02:26,580 --> 00:02:31,020
‫Teraz następna rzecz, którą widzimy na górze, po prawej, te dwa zasoby są połączone

44
00:02:31,020 --> 00:02:32,790
‫z drzewem zachowań i tablicą.

45
00:02:33,090 --> 00:02:34,770
‫Czym u licha jest tablica?

46
00:02:35,190 --> 00:02:41,430
‫Cóż, tablica jest trochę jak wspomnienie twojego A. I. Jest to zasadniczo miejsce, w którym przechowujesz

47
00:02:41,430 --> 00:02:42,180
‫kilka zmiennych.

48
00:02:42,180 --> 00:02:46,290
‫Wprowadzasz je z rozgrywki, tak jak robiliśmy to z

49
00:02:46,290 --> 00:02:50,970
‫systemem animacji, gdzie masz te różne właściwości, które są ustawiane przez rozgrywkę.

50
00:02:51,180 --> 00:02:57,180
‫To samo robimy z A. I. ustawiamy wiele właściwości, które dostarczają mu

51
00:02:57,180 --> 00:03:03,120
‫informacji o jego świecie gry, a następnie drzewo zachowań czerpie z tych właściwości i używa ich do decydowania, co zamierza

52
00:03:03,120 --> 00:03:03,510
‫zrobić.

53
00:03:03,510 --> 00:03:04,890
‫Może ustawić te właściwości.

54
00:03:04,890 --> 00:03:10,350
‫Może używać ich jako pamięci, może czytać z tych właściwości i wszystkich tych cudownych rzeczy.

55
00:03:10,770 --> 00:03:16,980
‫Mając to na uwadze, jak możemy ustawić nasze drzewo zachowań na tablicy, aby były ze sobą

56
00:03:16,980 --> 00:03:17,550
‫powiązane?

57
00:03:18,120 --> 00:03:20,430
‫Cóż, rozszerzymy to w naszym okienku szczegółów.

58
00:03:20,430 --> 00:03:25,980
‫Widać tutaj, że istnieje zasób tablicy i automatycznie wydaje się, że wypełnił go dla

59
00:03:25,980 --> 00:03:32,580
‫nas w taki sposób, że zasób tablicy jest połączony z tym wrogiem b b b, ja zasób tablicy.

60
00:03:33,090 --> 00:03:38,280
‫Teraz wszyscy zamierzamy odejść od C++, aby trochę wykorzystać te zasoby, ponieważ oczywiście

61
00:03:38,280 --> 00:03:42,360
‫drzewa zachowań i tablice znajdują się całkowicie w edytorze.

62
00:03:42,360 --> 00:03:44,430
‫Nie są projektami jako takimi.

63
00:03:44,430 --> 00:03:49,920
‫Są to ich własne narzędzia edytora i możemy się z nimi komunikować w C++, ale to nie znaczy,

64
00:03:49,920 --> 00:03:53,460
‫że będziemy używać edytora podczas następnych kilku wykładów, a także C++.

65
00:03:53,640 --> 00:03:54,810
‫Nie ma tam zbyt wielu planów.

66
00:03:55,050 --> 00:04:00,750
‫Więc to świetnie, że mamy to drzewo zachowań i tę tablicę, ale jak u licha

67
00:04:00,750 --> 00:04:02,150
‫właściwie tego używamy?

68
00:04:02,400 --> 00:04:05,500
‫Cóż, w tym celu wracamy do naszego kontrolera powietrza.

69
00:04:05,500 --> 00:04:14,370
‫Jeśli pamiętasz, to ja kontroler jest w całości odpowiedzialny za prowadzenie naszych zachowań i nie jest to tutaj wyjątek.

70
00:04:14,850 --> 00:04:18,870
‫Drzewo zachowań to po prostu kolejna rzecz, którą kontroler powietrza może używać lub uruchamiać.

71
00:04:19,410 --> 00:04:24,750
‫Tak więc zamierzamy to zrobić, przechodząc do naszej kropki kontrolnej i musimy mieć

72
00:04:24,750 --> 00:04:29,790
‫sposób na odniesienie w schemacie do drzewa zachowań, które chcemy uruchomić.

73
00:04:30,720 --> 00:04:34,860
‫Więc pierwszą rzeczą, którą zamierzam zrobić, jest przejście do naszej kontroli

74
00:04:34,860 --> 00:04:40,920
‫nad CP i skomentowanie rzeczy w TTIC, ponieważ zamiast tego zamierzamy zastąpić tę funkcjonalność funkcjonalnością drzewa

75
00:04:40,920 --> 00:04:41,400
‫zachowań.

76
00:04:41,880 --> 00:04:46,170
‫A to oznacza, że mogę usunąć ten promień akceptacji tutaj, ponieważ już go nie potrzebujemy.

77
00:04:46,500 --> 00:04:50,910
‫Zamiast tego użyjemy wskaźnika do nowego zachowania.

78
00:04:51,780 --> 00:04:56,100
‫I muszę przeliterować to amerykańskie drzewo i wskaźnik.

79
00:04:56,550 --> 00:04:58,980
‫To jest drzewo zachowania, którego tam chcesz.

80
00:04:59,070 --> 00:05:02,310
‫I muszę to zadeklarować z klasą przed tym.

81
00:05:02,310 --> 00:05:08,640
‫A potem w zasadzie tutaj, chcę powiedzieć, że to jest zachowanie i.

82
00:05:09,740 --> 00:05:13,160
‫Zamierzam zachować tutaj amerykańską pisownię tylko dla spójności.

83
00:05:13,430 --> 00:05:17,570
‫Więc to jest zachowanie, którego teraz chcemy, aby faktycznie je uruchomiło.

84
00:05:17,570 --> 00:05:18,500
‫Prościej się nie da.

85
00:05:18,500 --> 00:05:22,670
‫Znowu A. I. kontroluje H ma w tym celu wbudowaną funkcję.

86
00:05:22,670 --> 00:05:26,360
‫Mamy tę funkcję drzewa zachowań uruchamiania, która zmienia wartość logiczną.

87
00:05:26,360 --> 00:05:30,440
‫Niezależnie od tego, czy jesteś w stanie go pomyślnie wykonać, czy nie, zacznij go wykonywać.

88
00:05:30,770 --> 00:05:35,720
‫I pobiera zasób beta, który jest wskaźnikiem do drzewa zachowań.

89
00:05:36,350 --> 00:05:39,980
‫To jest to, czego będziemy chcieli użyć i możemy to zrobić na początku gry.

90
00:05:39,980 --> 00:05:44,600
‫Przede wszystkim sprawdzimy, czy rzeczywiście mamy tutaj drzewo zachowań.

91
00:05:44,600 --> 00:05:46,970
‫Więc powiemy, że się zachowam.

92
00:05:48,210 --> 00:05:50,940
‫Nie równa się zero punktów, co?

93
00:05:51,030 --> 00:05:53,600
‫Ponieważ nie chcemy używać go w inny sposób.

94
00:05:53,610 --> 00:05:58,920
‫A potem możemy uruchomić drzewo zachowań zwane zachowaniem powietrza.

95
00:05:59,190 --> 00:06:06,150
‫To naprawdę takie proste, aby uruchomić dowolne zachowanie i możemy iść dalej i skompilować.

96
00:06:07,480 --> 00:06:12,730
‫I jeszcze jedną rzeczą, którą możemy zrobić z ciężkimi drzewami, jest to, że możemy zobaczyć, jak działają w czasie wykonywania, ale

97
00:06:12,730 --> 00:06:14,950
‫aby to zrobić, musisz mieć tutaj jakiś węzeł.

98
00:06:15,280 --> 00:06:18,850
‫Więc po prostu dodamy węzeł, nie rozumiejąc w pełni, co robi.

99
00:06:18,880 --> 00:06:23,800
‫Dodam węzeł sekwencji i zamierzam go podłączyć, przeciągając w dół od węzła głównego,

100
00:06:23,800 --> 00:06:29,050
‫poniżej węzła głównego, podświetlenia, gdy najeżdżam na nie myszą, do bitu nad węzłem sekwencji.

101
00:06:29,560 --> 00:06:30,610
‫I zamierzam to uratować.

102
00:06:31,210 --> 00:06:39,580
‫Przejdę i wcisnę odtwarzanie, a następnie przejdę do mojego zasobu drzewa zachowania i powinieneś być w stanie zobaczyć tutaj rozwijane menu, ale

103
00:06:39,640 --> 00:06:43,390
‫tak się nie stanie, ponieważ aktualnie nie jest uruchomione.

104
00:06:43,390 --> 00:06:44,320
‫Więc przestańmy grać.

105
00:06:45,100 --> 00:06:46,600
‫A dlaczego nie działa?

106
00:06:46,600 --> 00:06:51,370
‫Ponieważ nie podłączyliśmy go i jako kontroler powietrza strzelca, zróbmy to, co może stanowić wyzwanie dla ciebie,

107
00:06:51,370 --> 00:06:52,540
‫aby to podłączyć.

108
00:06:53,050 --> 00:06:54,370
‫Mam nadzieję, że nie będzie to zbyt trudne.

109
00:06:55,000 --> 00:06:55,270
‫Dobra.

110
00:06:55,270 --> 00:06:56,080
‫Witamy spowrotem.

111
00:06:56,110 --> 00:07:01,060
‫Więc jeśli pójdziemy i zajrzymy tutaj, szukamy zachowania.

112
00:07:01,510 --> 00:07:04,240
‫Z jakiegoś powodu wymagało to ponownej kompilacji, abym się pojawił.

113
00:07:04,240 --> 00:07:04,840
‫Ale oto jest.

114
00:07:05,180 --> 00:07:06,430
‫Zachowanie jest tym, czego chcemy.

115
00:07:06,880 --> 00:07:07,720
‫Klikamy w dół.

116
00:07:07,720 --> 00:07:10,570
‫W tej chwili jest tylko jedna opcja, więc mamy tylko jedno drzewo zachowania.

117
00:07:10,570 --> 00:07:14,140
‫Więc wybierz ten, skompiluj i zapisz.

118
00:07:14,140 --> 00:07:17,140
‫A jeśli teraz pójdziemy dalej i zagramy w tę grę.

119
00:07:18,040 --> 00:07:21,210
‫Idź i spójrz na Beattie Enemy II.

120
00:07:21,220 --> 00:07:26,380
‫Widać, że podświetla nutę, która jest aktualnie uruchomiona, a obok przycisków

121
00:07:26,380 --> 00:07:32,380
‫wstrzymania zatrzymania znajduje się to małe menu, które informuje, który kontroler powietrza aktualnie

122
00:07:32,380 --> 00:07:33,070
‫obserwujesz.

123
00:07:33,100 --> 00:07:38,950
‫Więc jest to świetna funkcja, aby móc wskoczyć i wyjść, okej, dlaczego to powietrze po prostu

124
00:07:38,950 --> 00:07:39,700
‫stoi nieruchomo?

125
00:07:39,730 --> 00:07:41,140
‫Dlaczego nie goni gracza?

126
00:07:41,350 --> 00:07:46,180
‫Możesz zobaczyć, które elementy zachowania on aktualnie wykonuje i przejść dalej. Och, to widzisz, wiesz, że coś poszło

127
00:07:46,180 --> 00:07:46,870
‫nie tak.

128
00:07:47,170 --> 00:07:48,830
‫Jest to naprawdę pomocne przy debugowaniu.

129
00:07:48,850 --> 00:07:53,620
‫Możesz przejść i zobaczyć, co robi całe twoje powietrze na świecie, korzystając z tego menu.

130
00:07:54,070 --> 00:07:54,490
‫Świetna sprawa.

131
00:07:54,490 --> 00:07:55,510
‫To wszystko na ten wykład.

132
00:07:55,510 --> 00:08:01,720
‫W następnym wykładzie przyjrzymy się, jak możemy ustawić informacje w pamięci tablicy naszej

133
00:08:01,990 --> 00:08:04,540
‫sztucznej inteligencji z C++.

134
00:08:04,570 --> 00:08:05,320
‫Zobaczę cię tam.

