﻿1
00:00:04,440 --> 00:00:05,700
‫Witam i zapraszam na ten wykład.

2
00:00:05,700 --> 00:00:11,100
‫Będziemy bawić się przesunięciami AIM, które pozwolą naszej siatce poruszać ramionami w górę iw dół.

3
00:00:11,370 --> 00:00:15,120
‫Kiedy celujemy w górę iw dół, zanurkujmy i zobaczmy, o co w tym wszystkim chodzi.

4
00:00:16,200 --> 00:00:20,880
‫Więc w tej chwili, jeśli celujemy w górę i w dół, widać, że ramiona naszych postaci w

5
00:00:20,880 --> 00:00:26,310
‫rzeczywistości nic nie robią, a broń nie wygląda tak, jakby powinna była skierowana w górę, strzelać i trafiać w

6
00:00:26,310 --> 00:00:28,230
‫miejsce, w które faktycznie trafiamy .

7
00:00:28,800 --> 00:00:30,810
‫Jak więc mamy to zmienić?

8
00:00:30,870 --> 00:00:33,390
‫Cóż, to zmiana w planie animacji.

9
00:00:33,390 --> 00:00:38,460
‫Przejdźmy więc dalej i otwórzmy plan animacji jako punkt początkowy i zadokujmy go w naszym głównym oknie.

10
00:00:39,180 --> 00:00:44,190
‫A potem chcę przedstawić nowy rodzaj zasobu animacji, którego wcześniej nie widzieliśmy.

11
00:00:44,190 --> 00:00:46,440
‫Widzieliśmy mieszanie przestrzeni, widzieliśmy animacje.

12
00:00:46,800 --> 00:00:53,070
‫Następną rzeczą, którą chcę wam pokazać, jest coś, co nazywa się przesunięciem animacji, a zwłaszcza przesunięciem

13
00:00:53,070 --> 00:00:53,670
‫celu.

14
00:00:53,670 --> 00:01:00,600
‫Więc jeśli szukamy słowa kluczowego A0 w animacjach, szukamy tych z małym niebieskim podkreśleniem zwanym

15
00:01:00,600 --> 00:01:01,890
‫AIM offsets.

16
00:01:02,250 --> 00:01:03,060
‫I jest ich kilka.

17
00:01:03,060 --> 00:01:09,090
‫Ten, który mnie interesuje, to walka AOE, która gdzieś tutaj powinna być.

18
00:01:09,120 --> 00:01:11,460
‫Były szare, bezczynna walka aoe.

19
00:01:11,950 --> 00:01:16,620
‫Wchodzisz, wybierasz to, a zobaczysz, że mamy coś bardzo podobnego do naszej przestrzeni mieszania.

20
00:01:16,800 --> 00:01:22,470
‫Z wyjątkiem tego, że jeśli przesuniesz mały zielony wypustek, to co się dzieje, to zmiana

21
00:01:22,470 --> 00:01:25,620
‫kierunku, w którym wskazują siatki naszych postaci.

22
00:01:25,620 --> 00:01:30,660
‫Więc jeśli przechodzimy w lewo, on kieruje pistolet w lewo, my przechodzimy w prawo,

23
00:01:30,660 --> 00:01:32,460
‫on celuje w prawo.

24
00:01:32,790 --> 00:01:36,810
‫I podobnie w górę iw dół, jeśli idziesz w górę, to patrzy w górę, ty

25
00:01:36,810 --> 00:01:39,000
‫w dół, patrzy w dół i próbuje zestrzelić.

26
00:01:39,600 --> 00:01:46,620
‫Teraz różnica w stosunku do tej i innych animacji, które widzieliśmy, polega na tym, że jest to animacja

27
00:01:46,620 --> 00:01:47,280
‫addytywna.

28
00:01:47,280 --> 00:01:51,690
‫Jeśli przejdziesz do okienka szczegółów, zobaczysz, że jest on addytywny, ponieważ mówi o ustawieniach addytywnych

29
00:01:51,690 --> 00:01:55,680
‫i jest ta poza oparta na animacji, na której opiera się to wszystko.

30
00:01:56,370 --> 00:02:01,500
‫Zasadniczo oznacza to, że gdy jest addytywna, ta animacja może być dodana do

31
00:02:01,500 --> 00:02:02,400
‫innych animacji.

32
00:02:02,400 --> 00:02:06,030
‫Więc mówi, że mogę to celować, gdy biegniesz.

33
00:02:06,030 --> 00:02:13,020
‫Mogę dodać informacje o tym, gdzie przesunęły się moje ramiona w stosunku do twojej pozy biegowej i dodać je na górze.

34
00:02:13,620 --> 00:02:14,670
‫Więc jak to wygląda?

35
00:02:14,670 --> 00:02:22,260
‫Jeśli przejdziemy do schematu animacji, chcemy dodać tę informację po dodaniu wszystkich informacji o lokomocji

36
00:02:22,260 --> 00:02:28,410
‫i prawdopodobnie nie przed śmiercią, ponieważ śmierć powinna być ostatnią rzeczą.

37
00:02:29,160 --> 00:02:31,080
‫Więc chcemy po lokomocji.

38
00:02:31,080 --> 00:02:33,690
‫Mamy więc całą naszą animację biegu, którą chcemy dodać.

39
00:02:33,690 --> 00:02:40,110
‫Do tego garść informacji o tym, gdzie powinniśmy poruszać ramionami, abyśmy celowali

40
00:02:40,110 --> 00:02:40,770
‫poprawnie.

41
00:02:41,280 --> 00:02:45,000
‫Aby to zrobić, możemy kliknąć prawym przyciskiem myszy i dodać przesunięcie celowania.

42
00:02:45,000 --> 00:02:47,850
‫Możemy to zrobić również z przeglądarki zasobów, a następnie poszukać A0.

43
00:02:48,240 --> 00:02:53,550
‫A potem, jak powiedziałem, szukamy tej wersji bojowej, która jest innym miejscem w tej przeglądarce.

44
00:02:53,550 --> 00:02:59,880
‫Co zabawne, jeśli to przeciągnę, to otrzymasz coś z pinem wejściowym, który mówi Co to jest

45
00:02:59,880 --> 00:03:01,620
‫zawiadomienie o opłaceniu podstawowym?

46
00:03:01,620 --> 00:03:06,810
‫Baza planów Locomotion nie miała pinu wejściowego, ponieważ zapewnia

47
00:03:07,260 --> 00:03:14,550
‫całą animację, podczas gdy przesunięcie celu, ponieważ jest to animacja addytywna, wymaga czegoś do dodania.

48
00:03:14,550 --> 00:03:19,950
‫Musisz więc nadać mu podstawową pozę, która będzie pochodzić z naszej lokomocji, a następnie wprowadzimy

49
00:03:19,950 --> 00:03:26,460
‫ją do naszej fałszywej pozy mieszanki, niezależnie od tego, czy jesteśmy martwi, czy nie, ponieważ jesteśmy tylko pokazując to,

50
00:03:26,460 --> 00:03:27,990
‫jeśli nie jesteśmy martwi.

51
00:03:29,030 --> 00:03:36,710
‫A potem chcę wam pokazać, że gdybym miał zmienić tonację na jeden, a może na 180, właściwie i

52
00:03:36,710 --> 00:03:41,480
‫skompilować, to widzicie, że on w pełni patrzy w górę.

53
00:03:42,020 --> 00:03:44,540
‫Teraz kolejna sztuczka, którą chcę tutaj zrobić, dotyczy wykresu zdarzeń.

54
00:03:44,540 --> 00:03:50,090
‫W tej chwili mamy dość irytującą sytuację, w której nie możemy zrobić czegoś w

55
00:03:50,090 --> 00:03:54,830
‫podglądzie animacji, ponieważ jest on nadpisywany zerami przez nasz wykres zdarzeń.

56
00:03:54,830 --> 00:04:01,610
‫Prostym sposobem na naprawienie tego jest po prostu sprawdzenie tutaj, czy właściciel pionka, którego tu mamy, jest

57
00:04:02,090 --> 00:04:02,910
‫ważny.

58
00:04:02,930 --> 00:04:04,130
‫Mianowicie, czy jest on nieważny?

59
00:04:04,850 --> 00:04:10,730
‫Więc jeśli put jest tutaj poprawne, a ten ze znakiem zapytania automatycznie daje nam te

60
00:04:11,090 --> 00:04:18,500
‫węzły wykonania, a jeśli przejdziemy przez węzeł wykonania animacji aktualizacji i ustawimy rzeczy tylko wtedy, gdy to jest poprawne,

61
00:04:18,500 --> 00:04:23,900
‫wtedy stanie się tak, że kiedy nie grasz i nie ma tam pionka, który

62
00:04:23,900 --> 00:04:26,900
‫przekazałby nam informacje, pozwoli nam to ustawić.

63
00:04:26,900 --> 00:04:28,040
‫Dodano podgląd animacji.

64
00:04:28,610 --> 00:04:36,380
‫Teraz mogę zmienić prędkość i widać, że zaczyna biec z ustawionym wysokim przesunięciem celu.

65
00:04:36,980 --> 00:04:41,030
‫Więc ustawmy to tak, że nasz skok jest tutaj zmienną.

66
00:04:41,030 --> 00:04:47,060
‫Więc kliknę prawym przyciskiem myszy na wysokość, awansuję do zmiennej i przeniosę tę zmienną tutaj, która

67
00:04:47,060 --> 00:04:50,150
‫jest widoczna, i zmienię jej nazwę na wysokość.

68
00:04:51,080 --> 00:04:54,470
‫A właściwie bądźmy bardziej konkretni, to jest taki sam skok celu.

69
00:04:54,470 --> 00:05:00,230
‫Więc teraz, jeśli przejdziemy dalej i skompilujemy, przez przypadek ustawimy domyślny skok celowania a.

70
00:05:00,230 --> 00:05:03,110
‫Chcemy domyślnie ustawić to na zero.

71
00:05:03,530 --> 00:05:04,820
‫Zamierzam to skompilować.

72
00:05:05,270 --> 00:05:10,970
‫A teraz, jeśli pójdziemy dalej i zmienimy prędkość, a następnie zmienimy wysokość celowania.

73
00:05:12,140 --> 00:05:16,850
‫Widać, że możemy celować w górę i możemy celować w dół, co jest dokładnie tym, czego chcemy.

74
00:05:17,150 --> 00:05:20,120
‫Problem polega na tym, że nie jest to jeszcze ustawione w grze.

75
00:05:20,150 --> 00:05:26,660
‫Jeśli idziemy w górę iw dół, nic z tego nie pochodzi z informacji z naszej rotacji kontroli i naszego celowania.

76
00:05:27,170 --> 00:05:31,010
‫Musimy więc wrócić do naszego wykresu zdarzeń i uzyskać tutaj niektóre z tych informacji.

77
00:05:31,040 --> 00:05:35,810
‫Teraz zamierzam tylko trochę urozmaicić sprawy, ponieważ jest to już dość długie.

78
00:05:36,170 --> 00:05:42,590
‫A to, co chcę zrobić, to wyłączyć ten prawidłowy pin, to chcę umieścić węzeł sekwencji, który

79
00:05:42,680 --> 00:05:47,670
‫pozwoli mi również rozłożyć rzeczy trochę w dół w kierunku pionowym.

80
00:05:47,690 --> 00:05:52,980
‫Więc węzeł sekwencji, przede wszystkim, będzie ustawiał prędkość i kąt tutaj.

81
00:05:53,000 --> 00:05:57,050
‫Myślę, że możemy przenieść te rzeczy do rzucania, by sfilmować postać.

82
00:05:57,410 --> 00:06:04,130
‫Myślę, że możemy obniżyć to w pionie, łącząc się z tą pinezką sekwencji i pinezką

83
00:06:04,130 --> 00:06:07,310
‫obiektu, aby spróbować uzyskać -- na węźle.

84
00:06:07,340 --> 00:06:09,800
‫Następnie możemy dodać kolejny pin do sekwencji.

85
00:06:09,810 --> 00:06:13,580
‫A tym razem chcę uzyskać dwie informacje od naszego właściciela pionka.

86
00:06:14,060 --> 00:06:17,280
‫Pierwszym będzie rotacja kontrolna.

87
00:06:17,300 --> 00:06:19,820
‫Zróbmy więc rotację kontroli.

88
00:06:20,450 --> 00:06:26,180
‫Ale to nie wystarczy, ponieważ jako rotację kontroli, jeśli podzielimy pinezkę, widać, że mamy

89
00:06:26,180 --> 00:06:29,520
‫tutaj wysokość i możemy spróbować ją ustawić.

90
00:06:29,560 --> 00:06:30,650
‫Spróbujmy.

91
00:06:31,100 --> 00:06:38,540
‫Więc jeśli zrobię ustawiony skok i połączę węzeł wykonawczy z węzłem wykonawczym z naszej sekwencji, dodając trochę przekierowania

92
00:06:38,540 --> 00:06:44,870
‫do tego, co się stanie, jeśli skompilujemy, zapiszemy, wciśniemy play, a następnie celuję w górę,

93
00:06:44,870 --> 00:06:46,100
‫działa dobrze.

94
00:06:46,310 --> 00:06:48,530
‫Celuj w dół nie odwraca się.

95
00:06:48,890 --> 00:06:52,070
‫Wtedy sprawy zaczynają wyglądać jeszcze dziwniej.

96
00:06:52,520 --> 00:06:59,270
‫Teraz chodzi o to, że ta rotacja sterowania jest całkowicie globalna, a więc nie bierze pod

97
00:06:59,270 --> 00:07:02,600
‫uwagę kierunku, w jakim zmierza nasz gracz.

98
00:07:03,080 --> 00:07:10,880
‫Więc żeby wziąć to pod uwagę, musimy ponownie udać się do pionka i uzyskać rotację aktorów.

99
00:07:10,880 --> 00:07:18,290
‫A potem chcemy znaleźć rotację między rotacją aktora a rotacją kontroli.

100
00:07:18,680 --> 00:07:22,340
‫A sposób, w jaki to robimy, polega na tym, że po prostu odłączę ton AM.

101
00:07:22,880 --> 00:07:28,700
‫Przerwij ten link, kliknij prawym przyciskiem myszy i ponownie połącz piny struct, jeśli chcę zrobić deltę

102
00:07:28,700 --> 00:07:33,230
‫między tymi dwoma, abym mógł zdjąć rotację sterowania i poszukać Delta.

103
00:07:34,270 --> 00:07:41,050
‫A Delta to w zasadzie wymyślny sposób na powiedzenie odejmowania między rotatorami.

104
00:07:41,440 --> 00:07:48,760
‫Więc to, co chcemy zrobić, to wziąć rotację kontroli i odjąć rotację podstawową, która będzie

105
00:07:48,790 --> 00:07:50,780
‫rotacją naszego aktora.

106
00:07:50,800 --> 00:07:55,690
‫Więc to jest B, więc to będzie A minus B, jeśli najedziesz kursorem, to właśnie robi rotacja delta.

107
00:07:56,170 --> 00:08:01,600
‫I zasadniczo chcemy powiedzieć, tak, chcę rotacji kontrolnej, ale zabierz wszystkie te informacje

108
00:08:01,600 --> 00:08:03,580
‫o naszej aktywnej rotacji.

109
00:08:03,580 --> 00:08:10,720
‫Mogę więc po prostu wiedzieć, czy celujemy w górę iw dół względem kierunku, w którym zwrócona jest moja postać.

110
00:08:11,230 --> 00:08:17,650
‫A potem, jeśli wydzielę ukrytą z tego wartość zwrotu i użyję stamtąd skoku, zobaczymy, że

111
00:08:17,650 --> 00:08:20,140
‫wszystko działa zgodnie z oczekiwaniami.

112
00:08:20,140 --> 00:08:26,440
‫Kiedy patrzę na moje imię w górę, kiedy patrzę w dół, celuję w dół i nie ma znaczenia, w którą

113
00:08:26,440 --> 00:08:29,380
‫stronę zwrócę się na świecie, tak będzie zawsze.

114
00:08:29,440 --> 00:08:33,160
‫To prawie tyle, jeśli chodzi o rotację celu.

115
00:08:33,190 --> 00:08:38,320
‫Jedynym problemem jest to, że w tej chwili Ally nie jest w stanie celować w ten sposób.

116
00:08:38,320 --> 00:08:46,600
‫Więc jeśli pójdę i postawię postać strzelca na schodach tutaj, a potem spróbujemy go zwalić, spróbujmy,

117
00:08:46,600 --> 00:08:49,180
‫żeby podszedł do nas.

118
00:08:49,480 --> 00:08:50,230
‫Oto nadchodzi.

119
00:08:50,590 --> 00:08:53,260
‫Widać, że po prostu strzela w ścianę.

120
00:08:53,320 --> 00:08:55,960
‫W ogóle nie próbuje celować, co jest trochę smutne.

121
00:08:56,350 --> 00:09:02,260
‫Więc co się dzieje, jeśli przejdziemy do naszego sojusznika i naszego drzewa zachowań, widać, że ustawiamy

122
00:09:02,260 --> 00:09:04,060
‫domyślny fokus na lokalizację.

123
00:09:04,060 --> 00:09:10,150
‫I domyślnie, jeśli ustawisz fokus na lokalizację, Unreal nie zaktualizuje rotacji sterowania w ten

124
00:09:10,150 --> 00:09:13,270
‫sam sposób, w jaki nie zrobi skoku.

125
00:09:13,840 --> 00:09:14,860
‫To trochę smutne.

126
00:09:15,010 --> 00:09:21,940
‫Ok, więc musimy podejść do naszej tablicy i zmienić lokalizację gracza, aby była tylko odniesieniem

127
00:09:21,940 --> 00:09:27,730
‫do gracza, zamiast tego, że musimy zmienić ten wektor na obiekt.

128
00:09:27,790 --> 00:09:33,370
‫Więc teraz mamy pusty klucz tablicy dla gracza, który jest obiektem, i możemy zmienić

129
00:09:33,370 --> 00:09:38,530
‫klasę bazową na aktora, jeśli chcemy, chociaż nie jest to szczególnie ważne.

130
00:09:38,980 --> 00:09:44,560
‫I wtedy to, co to oznacza, kończy się w drzewie zachowań, możemy zmienić rzeczy tak,

131
00:09:44,560 --> 00:09:49,270
‫że zamiast przesuwać się, aby zastosować lokalizację, przechodzimy do aktora gracza.

132
00:09:49,690 --> 00:09:57,340
‫Możemy ustawić fokus na aktora gracza i zaktualizować lokalizację gracza, jeśli scena musi teraz

133
00:09:57,340 --> 00:10:00,370
‫wskazywać również na aktora gracza.

134
00:10:00,370 --> 00:10:05,800
‫Teraz to jeszcze nie zadziała, ponieważ nasza aktualizacja lokalizacji odtwarzacza, jeśli scena aktualnie próbuje

135
00:10:05,800 --> 00:10:08,110
‫ustawić lokalizację w tym kluczu.

136
00:10:08,350 --> 00:10:10,990
‫Więc małe mini wyzwanie dla Ciebie, sprawdź, czy możesz je zaktualizować.

137
00:10:10,990 --> 00:10:18,760
‫Więc zamiast ustawiać lokalizację w tej usłudze drzewa zachowań, ustawiamy rzeczywiste nagranie pozy aktora i

138
00:10:18,760 --> 00:10:19,540
‫zaczynamy.

139
00:10:19,660 --> 00:10:19,960
‫Dobra.

140
00:10:19,960 --> 00:10:20,650
‫Witamy spowrotem.

141
00:10:20,650 --> 00:10:25,750
‫Przejdziemy więc do kodu programu Visual Studio i poszukamy szczególnie usługi ASC.

142
00:10:25,750 --> 00:10:29,410
‫Jest to lokalizacja odtwarzacza z podkreśleniem usługi, jeśli jest widoczna.

143
00:10:29,890 --> 00:10:32,860
‫I zmienimy to na zestaw wartości ustawionych jako wektor.

144
00:10:32,860 --> 00:10:37,030
‫Będzie to wartość ustawiona jako obiekt, tak po prostu.

145
00:10:37,030 --> 00:10:41,950
‫Mamy wybór typów na tablicy i właśnie to tutaj powiemy.

146
00:10:42,370 --> 00:10:46,120
‫Teraz oczywiście będzie narzekać, że to, co próbujemy powiedzieć, jest wektorem, a nie obiektem.

147
00:10:46,510 --> 00:10:52,690
‫Więc po prostu usuniemy lokalizację pobierania aktora i przekażemy gracza, a zamiast tego wyczyszczenie wartości jest

148
00:10:52,690 --> 00:10:54,610
‫takie samo jak wcześniej.

149
00:10:54,610 --> 00:11:00,580
‫Możemy więc po prostu wrócić do edytora, nacisnąć, skompilować i sprawdzić, czy ta nowa konfiguracja działa z Aiming

150
00:11:00,580 --> 00:11:01,580
‫for the High.

151
00:11:01,630 --> 00:11:02,710
‫Kate, zanurkujmy.

152
00:11:02,710 --> 00:11:03,310
‫Hit play.

153
00:11:03,310 --> 00:11:05,560
‫Idź i znajdź to powietrze na schodach.

154
00:11:06,530 --> 00:11:08,680
‫Niech spróbują, przyjdą i spojrzą na nas z góry.

155
00:11:08,690 --> 00:11:09,170
‫Dalej.

156
00:11:09,330 --> 00:11:16,730
‫Mam jeszcze jedną rzecz, o której zapomniałem w drzewie zachowań do aktualizacji, to możliwość zobaczenia gracza w tej chwili

157
00:11:16,730 --> 00:11:23,600
‫zniknął po zresetowaniu klawisza tablicy do samodzielnego aktora chcemy, aby być graczem, po prostu jest ustawionym graczem, chodźmy

158
00:11:23,600 --> 00:11:28,820
‫i dokonaj tej zmiany, ponieważ w tej chwili nie przyszedłem nas ścigać, teraz

159
00:11:29,120 --> 00:11:35,030
‫goni nas i tak naprawdę, jeśli skoczyłeś, możesz prawie zobaczyć, że zmienia się rotacja celowania

160
00:11:35,030 --> 00:11:35,990
‫tego gościa.

161
00:11:35,990 --> 00:11:40,310
‫Wejdźmy na schody i zobaczmy, czy może ze schodów zestrzelić w nas.

162
00:11:40,970 --> 00:11:41,630
‫Doskonały.

163
00:11:41,630 --> 00:11:45,920
‫Zmienił rotację i rzeczywiście strzela prosto do nas.

164
00:11:46,190 --> 00:11:46,850
‫Obaj są.

165
00:11:47,030 --> 00:11:49,040
‫Widzieliśmy, jak tracił zdrowie i wkrótce umrze.

166
00:11:50,540 --> 00:11:51,710
‫OK, to tyle na ten wykład.

167
00:11:51,710 --> 00:11:59,060
‫Dodaliśmy przesunięcie celowania i zaktualizowaliśmy nasze powietrze, aby mogło to wykorzystać również do celowania.

168
00:11:59,120 --> 00:12:03,170
‫Na następnym wykładzie będziemy robić coś z tym zabawnym bieganiem w powietrzu.

169
00:12:03,440 --> 00:12:04,190
‫Zobaczę to.

