﻿1
00:00:04,530 --> 00:00:06,030
‫Cześć i witaj.

2
00:00:06,060 --> 00:00:10,920
‫W tym wykładzie stworzymy broń i nauczymy się, jak zaprojektować broń do

3
00:00:10,920 --> 00:00:17,250
‫tej gry, aby można ją było wymieniać, tak abyśmy mogli mieć różne właściwości na różnych typach

4
00:00:17,250 --> 00:00:18,090
‫broni.

5
00:00:18,480 --> 00:00:24,810
‫I generalnie tak działają architektury w strzelankach w pierwszej lub trzeciej osobie, zanurkujmy i zobaczmy, jak to

6
00:00:24,810 --> 00:00:25,650
‫się robi.

7
00:00:27,060 --> 00:00:27,300
‫Dobra.

8
00:00:27,300 --> 00:00:30,630
‫Dlatego od jakiegoś czasu nie sprawdzaliśmy naszego planu projektu.

9
00:00:31,020 --> 00:00:32,600
‫Nie doszliśmy do ruchu planu.

10
00:00:32,610 --> 00:00:35,160
‫Na razie skończyło się animacja, gotowe.

11
00:00:35,520 --> 00:00:39,180
‫A strzelanie to kolejna rzecz, na której powinniśmy się skupić.

12
00:00:39,690 --> 00:00:45,570
‫Teraz jest to trochę zagmatwane, ponieważ nasza siatka już wydaje się mieć broń, ale w rzeczywistości

13
00:00:45,570 --> 00:00:47,220
‫nie chcemy jej używać.

14
00:00:47,220 --> 00:00:49,110
‫Chcemy to wykorzystać w inny sposób.

15
00:00:49,650 --> 00:00:55,950
‫Powodem tego, że jest to gra typu strzelec, często chcesz mieć możliwość przełączania się między broniami lub

16
00:00:56,280 --> 00:00:59,160
‫przynajmniej mieć różne postacie, mieć różne bronie.

17
00:00:59,490 --> 00:01:05,790
‫A najłatwiejszym sposobem na to jest zaprojektowanie broni jako oddzielnej rzeczy dla postaci, aby można było

18
00:01:05,790 --> 00:01:09,720
‫je zamienić, aby mogła odpowiadać za to, jak strzela.

19
00:01:09,780 --> 00:01:14,760
‫Jeśli to wyrzutnia rakiet, strzelba lub karabin, będą robić różne rzeczy na różne sposoby.

20
00:01:15,450 --> 00:01:20,670
‫Teraz możesz powiedzieć, w porządku, stwórzmy komponent pistoletu i możemy go włożyć

21
00:01:21,000 --> 00:01:22,380
‫pod naszą siatkę.

22
00:01:22,770 --> 00:01:30,390
‫To by zadziałało, z wyjątkiem tego, że tracimy wtedy modułowość, która pozwala nam na dodawanie wielu komponentów do

23
00:01:30,390 --> 00:01:31,110
‫pistoletu.

24
00:01:31,500 --> 00:01:38,700
‫Tak więc to, co naprawdę chcemy zrobić, to iść drogą posiadania aktora do broni, która jest identyfikatorem dziecka, do

25
00:01:38,700 --> 00:01:39,780
‫postaci strzelca.

26
00:01:39,810 --> 00:01:43,590
‫To jest coś, na co wcześniej się nie natknęliśmy, ale działa to w ten sposób.

27
00:01:44,310 --> 00:01:51,150
‫Możesz mieć postać strzelca i broń jako dziecko, a postać strzelca może mieć wiele elementów, które

28
00:01:51,150 --> 00:01:53,010
‫są dla siebie dziećmi.

29
00:01:53,010 --> 00:01:58,350
‫Więc masz kapsułę, w tej chwili mamy siatkę jako dziecko kapsuły, a

30
00:01:58,350 --> 00:02:01,710
‫elementy broni mogą być przed nią osłonięte.

31
00:02:02,010 --> 00:02:05,700
‫Więc siatka dostaje identyfikator dziecka do siatki postaci.

32
00:02:06,150 --> 00:02:11,460
‫A jeśli ma jakieś inne elementy, takie jak efekt cząsteczkowy na lufie pistoletu, może to być

33
00:02:11,460 --> 00:02:13,110
‫identyfikator dziecka w siatce.

34
00:02:13,410 --> 00:02:19,590
‫Widać więc, że te hierarchie są trochę niezależne, że masz komponenty sceny, te,

35
00:02:19,590 --> 00:02:25,560
‫które uległy transformacji po prawej stronie i mogą być w określonej hierarchii.

36
00:02:25,980 --> 00:02:31,280
‫I wtedy hierarchia aktorów faktycznie podąża za hierarchią elementów sceny.

37
00:02:31,290 --> 00:02:33,240
‫Aktorzy nie mają własnej hierarchii.

38
00:02:33,240 --> 00:02:35,580
‫To jest część, której zrozumienie zajmuje trochę czasu.

39
00:02:35,580 --> 00:02:38,070
‫To był aha moment, kiedy to dla mnie zaskoczyło.

40
00:02:38,520 --> 00:02:44,580
‫Czy w rzeczywistości nie ma hierarchii aktorów, jest tylko hierarchia elementów sceny.

41
00:02:44,940 --> 00:02:50,430
‫Są aktorzy, którzy posiadają te same komponenty, więc ostatecznie mają hierarchię, ponieważ ich

42
00:02:50,430 --> 00:02:55,950
‫komponenty scen są ze sobą powiązane, ale w rzeczywistości nie mają między sobą relacji.

43
00:02:56,670 --> 00:03:02,760
‫Tak więc, aby ustawić kontekst, pierwszą rzeczą, którą chcemy zrobić, jest stworzenie dla siebie

44
00:03:02,760 --> 00:03:05,190
‫aktora broniącego się w C++.

45
00:03:05,670 --> 00:03:11,730
‫W tym przypadku nie będzie to pionek, postać ani nic w tym rodzaju.

46
00:03:11,730 --> 00:03:14,400
‫To będzie po prostu prosty aktor, ponieważ nie musimy się zachowywać.

47
00:03:14,400 --> 00:03:16,290
‫Nie musisz go posiadać, my nie musimy nic robić.

48
00:03:16,290 --> 00:03:17,880
‫To po prostu prosty, prosty aktor.

49
00:03:18,390 --> 00:03:19,710
‫Więc chodźmy dalej i zróbmy to.

50
00:03:19,710 --> 00:03:21,030
‫Właściwie małe wyzwanie dla Ciebie.

51
00:03:21,030 --> 00:03:26,190
‫Śmiało i stwórz tego aktora C++, coś, co powinieneś być w stanie zrobić małe wyzwanie, spróbuj.

52
00:03:26,760 --> 00:03:27,780
‫OK, wróciłem.

53
00:03:27,780 --> 00:03:28,860
‫Zrobię to.

54
00:03:28,890 --> 00:03:34,470
‫Nowa klasa C++ i nie musimy mieć, zobaczmy, aktorze.

55
00:03:34,470 --> 00:03:35,490
‫To wszystko, co chcemy wybrać.

56
00:03:35,910 --> 00:03:42,060
‫I zamierzamy iść dalej i nazwać ten jeden pistolet, prosty, jak stwórzmy tę klasę.

57
00:03:42,330 --> 00:03:42,550
‫Dobra?

58
00:03:42,570 --> 00:03:46,350
‫A kiedy to zrobisz, pojawi się w twoim edytorze kodu.

59
00:03:46,380 --> 00:03:52,170
‫I nie musimy jeszcze nic z tym robić, ponieważ pierwszą rzeczą, którą chcę zrobić, jest utworzenie

60
00:03:52,530 --> 00:03:53,340
‫podklasy blueprint.

61
00:03:53,340 --> 00:03:59,370
‫Więc kliknij prawym przyciskiem myszy na swoją klasę w przeglądarce treści i zamiast nazywać ją Mike i nie wiem,

62
00:03:59,370 --> 00:04:04,530
‫jakie automatyczne wartości domyślne to pistolet podkreślenia BP, umieszczę go na początku treści czwartej. Teraz możemy

63
00:04:04,530 --> 00:04:06,630
‫trochę reorganizacja, gdy mamy więcej klas.

64
00:04:06,900 --> 00:04:09,750
‫Jak powiedziałem wcześniej, stworzymy klasę Blueprint.

65
00:04:09,750 --> 00:04:10,890
‫Jak widać, jest zupełnie pusty.

66
00:04:10,890 --> 00:04:12,450
‫Ma ten domyślny root sceny.

67
00:04:12,840 --> 00:04:14,340
‫Będziemy chcieli to naprawić.

68
00:04:14,470 --> 00:04:20,460
‫To, co chcemy zrobić, to właściwie dodać komponent w C++, ponieważ jest to kurs C++.

69
00:04:20,460 --> 00:04:23,970
‫Poćwiczmy mięsień dodawania komponentów w C++.

70
00:04:24,150 --> 00:04:29,700
‫Oznacza to również, że będziemy mieć dostęp do tych komponentów z poziomu naszego kodu C++, aby

71
00:04:29,700 --> 00:04:35,520
‫manipulować i pisać nasz kod, a teraz konfiguracja, której będziemy potrzebować, to posiadanie komponentu głównego sceny, który będzie

72
00:04:35,520 --> 00:04:39,450
‫po prostu komponenty sceny, a następnie siatka, która jest jej dzieckiem.

73
00:04:39,450 --> 00:04:40,230
‫Dlaczego tego chcemy?

74
00:04:40,230 --> 00:04:47,730
‫Ponieważ chcemy mieć możliwość zmiany położenia siatki względem nasady pistoletu, abyśmy mogli zasadniczo umieścić

75
00:04:47,730 --> 00:04:52,110
‫uchwyt w różnych miejscach dla różnych oczek.

76
00:04:52,110 --> 00:04:55,440
‫Więc jeśli mamy różne pistolety, możemy upewnić się, że wszystkie mają rękojeści w tym samym miejscu.

77
00:04:55,440 --> 00:05:00,540
‫Więc kiedy przyczepimy go do dłoni postaci, pojawi się wraz z uchwytem w dłoni postaci.

78
00:05:01,230 --> 00:05:02,580
‫Ok, więc jak to zrobimy?

79
00:05:02,580 --> 00:05:08,550
‫Przejdziemy do naszego kodu Visual Studio i utworzymy tutaj prywatną sekcję, w której będziemy

80
00:05:08,850 --> 00:05:13,050
‫przechowywać nowe właściwości dla różnych składników, które zamierzamy wymyślić.

81
00:05:13,590 --> 00:05:17,130
‫Więc zamierzam stworzyć nową właściwość widoczną w dowolnym miejscu.

82
00:05:17,610 --> 00:05:21,210
‫Chcemy, aby nasze komponenty były widoczne w dowolnym miejscu, ponieważ ich

83
00:05:21,210 --> 00:05:26,370
‫wskaźniki punktowe, nie chcemy mieć możliwości edytowania wskaźników, ale chcemy widzieć właściwości tych wskaźników i móc to robić.

84
00:05:26,600 --> 00:05:26,960
‫Tych.

85
00:05:26,960 --> 00:05:30,830
‫I to następnie staje się domeną klasy, na którą wskazujemy.

86
00:05:30,950 --> 00:05:34,550
‫To wtedy decyduje o tym, co zostanie pokazane, co można edytować.

87
00:05:34,580 --> 00:05:38,240
‫Więc wszystko, co chcemy tutaj powiedzieć, to to, że nie chodzi o to, że jest edytowalne.

88
00:05:38,510 --> 00:05:39,980
‫Dlatego i tak chodzi o widoczne.

89
00:05:40,580 --> 00:05:41,630
‫W każdym razie trochę powtórki.

90
00:05:41,930 --> 00:05:44,960
‫Teraz chcemy, żeby to był widok, ponieważ jest to komponent.

91
00:05:44,960 --> 00:05:48,470
‫To jest składnik sceny, którego potrzebujemy.

92
00:05:49,250 --> 00:05:54,710
‫Jeśli mogę to wpisać poprawnie, widziałem komponenty i jest to wskaźnik do tego, a to

93
00:05:54,710 --> 00:05:56,270
‫będzie nasz główny komponent.

94
00:05:57,690 --> 00:05:58,170
‫Tak jak.

95
00:05:58,830 --> 00:06:01,410
‫A potem będziemy chcieli nowej nieruchomości.

96
00:06:02,310 --> 00:06:03,610
‫Znowu widoczne wszędzie.

97
00:06:03,840 --> 00:06:05,460
‫Do naszej siatki.

98
00:06:07,080 --> 00:06:16,200
‫Klasa dla siatki będzie kilkoma statycznymi komponentami MASH, ponieważ nie jest to zacierka szkieletowa, jest sztywna,

99
00:06:16,200 --> 00:06:19,620
‫nie ma żadnego szkieletu ani kości.

100
00:06:20,040 --> 00:06:24,690
‫Więc chcę, żeby to była wskazówka, a to po prostu ostudzi zacieru.

101
00:06:25,750 --> 00:06:30,170
‫Fakt, myślę, że muszę być tutaj trochę ostrożny, ponieważ myślę, że komponent główny już istnieje

102
00:06:30,170 --> 00:06:31,770
‫w klasie nadrzędnej dla aktora.

103
00:06:31,790 --> 00:06:34,280
‫Więc zamiast tego zadzwonię do tej trasy.

104
00:06:35,180 --> 00:06:38,840
‫A potem mamy już konstruktor w C++.

105
00:06:38,840 --> 00:06:42,380
‫Musimy tylko uwzględnić odpowiednie -- tutaj.

106
00:06:42,410 --> 00:06:46,200
‫Teraz mała sztuczka, gdy jesteś w kodzie programu Visual Studio, polega na ustaleniu, gdzie może znajdować się plik.

107
00:06:46,200 --> 00:06:50,600
‫Używasz Control P i masz zamiar szukać.

108
00:06:50,810 --> 00:06:53,090
‫W tym przypadku chcemy statycznej siatki.

109
00:06:53,090 --> 00:07:01,910
‫Więc statyczne komponenty siatki i widzimy, że statyczne komponenty siatki mają kropkę, jeśli pójdę dalej i otworzę ją

110
00:07:01,910 --> 00:07:07,400
‫i najadę na zakładkę, zobaczysz, że jest pod tą długą ścieżką.

111
00:07:07,400 --> 00:07:12,590
‫Ale interesującą rzeczą jest to, że jest to pod klasami, które następnie możemy spojrzeć

112
00:07:12,590 --> 00:07:19,580
‫w górę, że będą to komponenty, statyczne komponenty siatki, więc mogę zamknąć tę zakładkę i tuż powyżej włączyć

113
00:07:19,580 --> 00:07:21,440
‫faktycznie poniżej włączenie broni.

114
00:07:21,740 --> 00:07:28,940
‫Zrobimy hash include dla komponentów, a następnie dla komponentów siatki statycznej.

115
00:07:29,570 --> 00:07:35,630
‫Teraz właściwie przypomniałem sobie, że siatki, które mamy z jakiegoś powodu, nie są w rzeczywistości siatkami statycznymi, jak

116
00:07:35,630 --> 00:07:37,040
‫sądzę, że mogą być.

117
00:07:37,040 --> 00:07:43,790
‫Scott The Meshes, możesz się tego dowiedzieć, przechodząc do pakietów zasobów, broni do strzelanek i przyglądając się

118
00:07:43,790 --> 00:07:44,960
‫tym oczkom.

119
00:07:44,960 --> 00:07:48,380
‫I rzeczywiście, jeśli najedziesz na nie kursorem, zobaczysz, że są to siatki szkieletowe.

120
00:07:48,710 --> 00:07:49,760
‫Nie pytaj dlaczego.

121
00:07:49,820 --> 00:07:51,710
‫Z jakiegoś powodu tak właśnie są.

122
00:07:52,280 --> 00:07:56,780
‫Więc będziemy chcieli zmienić typ na szkieletową siatkę w pliku nagłówkowym.

123
00:07:56,780 --> 00:08:01,310
‫Więc zamiast statycznej siatki, zamiast tego będzie używana siatka szkieletowa.

124
00:08:01,610 --> 00:08:05,990
‫I to samo w przypadku włączenia będzie to szkielet.

125
00:08:07,280 --> 00:08:09,500
‫Składnik siatki kropka, którą chcemy zapamiętać.

126
00:08:09,500 --> 00:08:11,180
‫Nie ma ciebie w plikach nagłówkowych.

127
00:08:12,420 --> 00:08:15,420
‫I wierzę, że te same komponenty, które są tutaj domyślnie dołączone.

128
00:08:15,870 --> 00:08:20,260
‫Czas więc na wyzwanie polegające na dodaniu własnego komponentu siatki.

129
00:08:20,280 --> 00:08:27,390
‫Stworzymy komponenty sceny root, ustawimy ją na root i ustawimy ją na root dla klasy i

130
00:08:27,840 --> 00:08:33,240
‫utworzymy komponent siatki i skonfigurujemy połączenie między nimi, aby komponent siatki był

131
00:08:33,240 --> 00:08:37,320
‫dzieckiem tego roota. komponenty, pulsuj wideo i spróbuj.

132
00:08:37,710 --> 00:08:38,790
‫OK, witaj z powrotem.

133
00:08:38,790 --> 00:08:42,660
‫Więc zamierzamy przejść i ustalić przede wszystkim nasze korzenie.

134
00:08:42,930 --> 00:08:48,180
‫Będzie to domyślny podobiekt typu.

135
00:08:48,600 --> 00:08:56,100
‫Widzieliście komponenty, a potem nadamy mu nazwę, która będzie z makrem tekstowym, nazwiemy

136
00:08:56,100 --> 00:08:59,490
‫je pierwiastkami i zakończymy średnikiem.

137
00:08:59,490 --> 00:09:01,530
‫Następnie ustawimy go jako root.

138
00:09:01,530 --> 00:09:06,180
‫Zatem set root components ustawi go jako główny komponent dla aktora.

139
00:09:06,180 --> 00:09:07,890
‫Więc ustaw root jako komponent root.

140
00:09:08,370 --> 00:09:09,180
‫Dobry towar.

141
00:09:09,600 --> 00:09:12,270
‫Następnie będziemy chcieli stworzyć naszą siatkę.

142
00:09:12,450 --> 00:09:21,420
‫Więc siatka równa się stwórz domyślny obiekt podrzędny i jest to składnik siatki szkieletowej, który chcemy jako klasa,

143
00:09:21,420 --> 00:09:27,720
‫a następnie makro tekstowe, aby nazwać go siatką i dodać średnik.

144
00:09:27,790 --> 00:09:29,880
‫A potem chcemy założyć załącznik.

145
00:09:30,210 --> 00:09:34,110
‫Więc będzie to ustawienie strzałki siatki.

146
00:09:35,210 --> 00:09:42,890
‫Skonfiguruj załącznik, a my będziemy chcieli dołączyć do katalogu głównego, jak fajne rzeczy, abyśmy mogli to zapisać i

147
00:09:42,890 --> 00:09:50,420
‫miejmy nadzieję, że skompilujemy i skompilujemy, a następnie przejdziemy do Unreal i rzucimy okiem na naszą

148
00:09:50,420 --> 00:09:51,470
‫klasę potomną.

149
00:09:51,890 --> 00:09:57,260
‫I rzeczywiście, tutaj mamy korzenie, mamy podrzędną siatkę, mamy też domyślny root sceny, który

150
00:09:57,260 --> 00:10:02,270
‫się kręci. Myślę, że zrestartujmy edytor i zobaczmy, czy to po prostu zniknie.

151
00:10:02,780 --> 00:10:06,980
‫Czasami podczas dodawania komponentów rzeczy mogą się tak ociągać i być buforowane.

152
00:10:07,370 --> 00:10:11,840
‫I rzeczywiście, jeśli ponownie otworzymy schematy działa BP, zobaczysz, że właśnie mamy te dwa

153
00:10:11,840 --> 00:10:12,440
‫komponenty.

154
00:10:12,440 --> 00:10:18,530
‫Dodaliśmy korzenie i siatkę i prawdopodobnie chcemy zmienić siatkę na jedną z oczek szkieletowych

155
00:10:18,530 --> 00:10:21,470
‫z pakietów zasobów z gry strzeleckiej.

156
00:10:21,950 --> 00:10:23,210
‫Mamy karabin, mamy wyrzutnię.

157
00:10:23,210 --> 00:10:25,670
‫Wybiorę ten na karabin.

158
00:10:26,060 --> 00:10:30,230
‫Tak więc nazywanie tego pistoletem BP jest trochę nieszczere.

159
00:10:30,230 --> 00:10:32,780
‫To prawdopodobnie powinien być karabin BP.

160
00:10:32,780 --> 00:10:40,130
‫Przejdźmy więc dalej i zmień nazwę, przejdź do przeglądarki treści i zmień jej nazwę na BP Rifle lub BP Gun,

161
00:10:40,130 --> 00:10:41,570
‫karabin z podkreśleniem.

162
00:10:41,570 --> 00:10:44,660
‫Teraz zbierz karabin BP bezpośrednio, gdy jadą.

163
00:10:45,080 --> 00:10:47,600
‫A to dało nam broń.

164
00:10:47,600 --> 00:10:54,350
‫Teraz oczywiście oznacza to, że możemy mieć różne właściwości przeciwko temu aktorowi, takie

165
00:10:54,350 --> 00:11:00,950
‫jak siła broni, jej zasięg itd., tworząc nowe właściwości w C++.

166
00:11:00,950 --> 00:11:08,030
‫I to jest siła tej architektury polega na tym, że broń może być trochę inna.

167
00:11:08,030 --> 00:11:15,590
‫Możemy mieć różne mechaniki strzelania z karabinów w porównaniu do snajperów, w porównaniu z RPG i tym podobne.

168
00:11:16,040 --> 00:11:17,420
‫Więc to świetnie.

169
00:11:17,420 --> 00:11:18,800
‫Możemy też mieć różne statystyki.

170
00:11:18,800 --> 00:11:23,480
‫Możemy więc mieć mocny karabin i słaby karabin w zależności od różnych podklas schematów.

171
00:11:23,780 --> 00:11:24,320
‫Fajne rzeczy.

172
00:11:24,320 --> 00:11:29,720
‫Teraz w następnym wykładzie przyjrzymy się, w jaki sposób zamierzamy stworzyć tę broń

173
00:11:30,050 --> 00:11:32,420
‫jako dziecko naszej obecnej postaci.

174
00:11:32,660 --> 00:11:33,320
‫Zobaczę to.

