‫Cześć i witaj.
‫Na tym wykładzie zajmiemy się konfiguracją śledzenia linii, abyśmy mogli strzelać do ścian i
‫widzieć pojawiające się punkty debugowania.
‫Będziemy to robić za pomocą nowej funkcji śledzenia linii według kanału.
‫Zobaczymy, dlaczego używamy tej linii śledzonej przez typ obiektu, której używaliśmy wcześniej.
‫Zanurzmy się i zobaczmy, jak to się robi.
‫Wracając do naszego wyjścia z budynku, użyliśmy śledzenia linii i użyliśmy tutaj tej funkcji, śledzenia linii
‫według typu obiektu.
‫I czy tego chcemy używać?
‫Cóż, jaka jest różnica między śledzeniem linii według typu obiektu a jego bardzo bliskim rodzeństwem,
‫czyli śledzeniem linii według kanału.
‫Cóż, typ obiektu mówi, chcę przeszukać ten wiersz i zobaczyć, czy znajdę obiekt pasujący do tego typu.
‫Więc wierzę, że to, czego użyliśmy do zbudowania ucieczki, było czymś w rodzaju typu obiektu fizycznego i to
‫świetnie, uderzy w ciała fizyczne.
‫Ale jeśli nagle zdecydujesz, że chcesz, aby coś innego trafiło w piłkę, nie pozostawia to zbyt wiele miejsca na
‫opcje.
‫Więc kanał jest do tego lepszy, ponieważ pozwala nam zdefiniować własne niestandardowe kanały, a następnie
‫zdefiniować, jakie rodzaje obiektów są przezroczyste dla tego kanału, a które go blokują.
‫Więc to jest świetne, bo to, co chcemy zrobić, to powiedzieć, okej, może coś w rodzaju Busha nie
‫może zablokować pocisku, podczas gdy ściana zablokuje pocisk, ale nie otrzyma żadnych obrażeń, ale to możemy zająć
‫się później.
‫Więc przekieruj całą trasę, którą zamierzamy zejść, i możemy znaleźć właściwą metodę tutaj, wykonując kontrolę.
‫P A tak przy okazji, jest ten mały, fajny element, którego dopiero niedawno
‫się nauczyłem, jeśli użyjesz symbolu aktu, możesz wyszukać symbole w tym pliku, a nawet w innych plikach.
‫Ale jeśli masz otwarty plik, jest to znacznie szybsze.
‫Następnie możesz zrobić coś takiego jak śledzenie linii i widzisz, że daje nam listę wszystkich symboli,
‫które są funkcjami, klasami lub zmiennymi, i możemy znaleźć tę linię, śledzenie, linię testową, śledzenie, pojedynczo po
‫kanale według typu obiektu.
‫Chcemy ten pierwszy jednoliniowy ślad, pojedynczy kanał BI, który będzie miał parametr out dla tego,
‫co trafiliśmy, punkty początkowe, punkty końcowe, kanał śledzenia kolizji dojdzie do tego za chwilę, a potem
‫jakieś zapytanie parametry, które mają pewne wartości domyślne, więc właściwie nie musimy się o
‫nie martwić.
‫Więc tylko te pierwsze rzeczy, hit Start i Trace Channel, o co chcemy się martwić.
‫Skonfigurujmy kanał śledzenia.
‫W tym celu przejdziemy do ustawień i ustawień projektu.
‫A potem szukamy pod silnikiem obszaru kolizji.
‫A poniżej widać, że mamy kanały obiektowe i kanały śledzenia.
‫Kanały obiektowe to w rzeczywistości po prostu inny sposób na określenie różnych typów obiektów.
‫Więc jeśli chciałbyś mieć tak samo jak domyślne zestawy obiektów, takich jak pionki i tym podobne,
‫jeśli chciałbyś mieć nową kategorię obiektów, mógłbyś przejść dalej ścieżką kanału obiektów.
‫Ale ślady pozwalają zdefiniować przeciwny koniec spektrum, czyli jak wiesz, mam kulę,
‫w jakie obiekty może trafić?
‫Więc pójdziemy tą drogą, dodamy nowy kanał śledzenia i nazwiemy ten punktor.
‫I będzie domyślna odpowiedź.
‫BLOK Co w zasadzie oznacza, że wszystkie typy obiektów będą.
‫BLOK Jeśli teraz nie określimy inaczej, możemy to zaakceptować i spojrzeć na nasze presety
‫tutaj.
‫A jeśli tylko to rozszerzymy, ustawienia wstępne pokażą, że mamy wiele różnych rzeczy, do których możemy
‫zastosować, rzeczy, które możemy powiedzieć, chcemy, aby był to aktor fizyczny, w tym przypadku jest
‫to typ obiektu, który będzie tym, co jest predefiniowanym kanałem obiektu, będzie ciałem fizycznym.
‫Ale jeśli rozszerzymy to, możesz zobaczyć, jaka jest reakcja na różne rodzaje śladów tutaj.
‫Więc mamy nasze śladowe typy kamer, nasze własne pociski, widoczność, blokuje to wszystko, a potem mamy
‫typy obiektów.
‫W ten sposób wchodzi w interakcje fizyczne z innymi obiektami, takimi jak pionki i pojazdy itp. To nie tak współdziała ze
‫śledzeniem linii według obiektu.
‫To trochę mylące i zdezorientowało mnie wcześniej.
‫Więc typ śledzenia jest interesujący i możemy po prostu przejść i spojrzeć tutaj i zobaczyć, że żadna kolizja nie powinna być
‫ustawiona tak, aby nie kolidowała.
‫Sprawmy więc, aby nasze pociski również się z tym nie zderzyły.
‫Tak więc po prostu nadpisanie niektórych ustawień, tak aby nasz pocisk działał tak, jak byśmy się spodziewali, na przykład nakładanie się
‫wszystkich powinno w zasadzie nakładać się na pocisk.
‫I prawdopodobnie niewidzialna ściana i niewidzialna dynamika ścian również powinny zostać zignorowane na potrzeby naszego
‫punktu.
‫To samo z dynamiką tutaj.
‫Widać, że w zasadzie kończymy na czymś podobnym do widocznego śladu.
‫Ale powodem trzymania go osobno jest to, że możemy chcieć dokonać drobnych rozróżnień, na przykład, jak widać,
‫nie można patrzeć przez ten krzak, ale można przez niego strzelać.
‫Tego rodzaju rzeczy oznaczają, że posiadanie własnego kanału śledzenia jest naprawdę bardzo przydatne.
‫Teraz chcielibyśmy móc użyć tego kanału śledzenia w kodzie, a to trochę dziwaczne,
‫ponieważ mamy tu enum, kanał kolizji E, i jeśli przejdziemy F12 do jego definicji, możesz zobaczyć jest
‫kilka predefiniowanych, statyczny świat -- widoczność itp. tutaj na dole, ale jest jeszcze
‫kilka kanałów śledzenia silnika jeden, dwa i kanał śledzenia gry jeden, dwa, trzy
‫itd. predefiniowane.
‫Który z naszych to jest?
‫Wiesz, to nie mamy tu kuli.
‫Właściwie musimy użyć jednego z tych kanałów śledzenia gry.
‫Więc to jest naprawdę trochę zagmatwane.
‫Który to?
‫Sposób, w jaki to zrobisz, to przejście do folderu projektu i przejście do konfiguracji.
‫A to, czego chcemy, to domyślny silnik INI i chcemy go otworzyć w tekście, który jest.
‫Możesz to zrobić w dowolnym tekście, który ci się podoba.
‫Lubię przeciągać go do kodu Visual Studio.
‫Tak więc kod programu Visual Studio jest tym, który go otwiera.
‫I tutaj chcemy zasadniczo poszukać naszego pocisku i zobaczyć, do czego został przypisany.
‫I myślę, że ten pierwszy wiersz tutaj mówi nam, że kanał, który został podany, to gra Trace Channel
‫one.
‫Fantastyczny.
‫Więc tego użyjemy podczas śledzenia linii.
‫Zacznijmy więc ustalać strukturę tego śladu linii.
‫Pierwszą rzeczą, której będziemy potrzebować, jest punkt wyjścia.
‫Już to mamy.
‫To jest lokalizacja naszego okna widokowego.
‫Będziemy również potrzebować punktu końcowego dla naszego śledzenia linii, który jest nieco trudniejszy do obliczenia.
‫Stwórzmy więc wektor F dla naszego końca i obliczymy go, używając naszego punktu zatrzymania,
‫plus obrót pomnożony przez ilość, odległość, którą chcemy odejść, a nie obrót, ale wektor, który
‫wskazuje w kierunku obrotu.
‫Nieco zagmatwane, ale w rzeczywistości, jeśli zastosujesz wektor kropki obrotu, to otrzymasz wektor wskazujący
‫kierunek tego obrotu.
‫Jest to coś w rodzaju przeciwieństwa tego, co robiliśmy w planie animacji, aby uzyskać obrót
‫wektora.
‫To idzie w drugą stronę.
‫Więc zrobimy lokalizację plus ten wektor rotacji, a następnie chcemy mieć maksymalny zasięg.
‫Wprowadzę więc tutaj nową właściwość, dokonam edycji w dowolnym miejscu i będzie to
‫zmiennoprzecinkowa nazwana Max Range.
‫I możemy ustawić go domyślnie na około 10 000 lub tysiąc maksymalny zasięg.
‫To będzie około 100 metrów, przepraszam, około dziesięciu metrów.
‫I przejdziemy dalej, aby zrobić wektor kropki obrotu pomnożony przez maksymalny zakres.
‫To będzie wektor, który otrzymamy z tej rotacji, będzie miał rozmiar jeden.
‫Pomnożenie go przez maksymalny zasięg sprawi, że będzie to wektor o rozmiarze, bez względu na maksymalny zasięg.
‫A potem dodajemy to na górze lokalizacji, aby uzyskać punkt końcowy.
‫Nie martw się, jeśli nie podążasz za matematyką w 100%.
‫Ważne jest to, że w ten sposób chcemy dotrzeć do naszego punktu końcowego.
‫Następnie zrobi linię tutaj, aby dodać śledzenie linii, i usunę tę kamerę
‫debugowania rysowania, ponieważ chcę tutaj zrobić inny pomocnik debugowania rysowania.
‫Chcę narysować punkt debugowania, który można znaleźć tutaj, przyjmuje świat, zajmuje pozycję, rozmiar
‫i kolor.
‫I bez względu na to, czy jest trwałe, czy nie, prawdopodobnie chcemy, aby było trwałe, aby było widoczne.
‫Powinniśmy więc być w stanie zrobić coś w tym kierunku, powiedzmy, że narysujemy punkty debugowania i
‫od razu stworzymy świat pobierania, a następnie zamiast tego zaczniemy od lokalizacji naszego okienka ekranu,
‫tak jak test, aby zobaczyć, jak działa ten punkt debugowania rysowania, nadaj mu rozmiar, aby
‫nadać mu kolor czerwony i sprawić, by trwała prawda.
‫A potem jedziemy do stolicy na średnik i zobaczymy, czy to działa.
‫Włączmy kompilację w silniku i zagrajmy.
‫Więc teraz strzelam i cofam się lekko.
‫Widać, że jest w tym punkt.
‫Jednak jest naprawdę, naprawdę malutki i trudny do zobaczenia.
‫Więc zamiast tego zwiększą to do 20.
‫Zobaczmy, czy tak będzie lepiej.
‫Kompiluj i graj.
‫Tak.
‫Rzeczywiście, teraz widzę bardzo, bardzo wyraźny punkt.
‫Nadszedł więc czas na wyzwanie polegające na prześledzeniu linii według kanału.
‫Robiliśmy to już wcześniej z typami obiektów, więc miejmy nadzieję, że możemy to ekstrapolować na robienie tego według kanałów.
‫Użyj więc lokalizacji i końca, które już zdefiniowaliśmy jako początek i koniec.
‫Sprawdź powodzenie wyniku, wykonując instrukcję if, aby uzyskać prawidłowy parametr out w parametrze
‫out wyniku trafienia i narysować tylko punkt debugowania.
‫Jeśli pomyślnie trafimy w sedno i pamiętamy, że używamy tego kanału, który znaleźliśmy w kropce, również
‫dowolnego pliku.
‫Zatrzymaj więc wideo i zobacz, czy możesz uporządkować wszystkie te parametry i argumenty
‫w śladzie linii i uzyskać ten rysunek punktu debugowania, w którym trafiliśmy naszym śladem linii.
‫Na tym etapie nie robimy nic mądrego, jak ignorowanie aktora gracza.
‫Więc twój ślad linii może skończyć się trafieniem gracza i to jest w porządku w tym wyzwaniu.
‫Wstrzymaj wideo.
‫Spróbuj.
‫Dobra.
‫Witamy spowrotem.
‫Więc zanurkujmy od razu.
‫Przede wszystkim zdobędziemy świat i strzałę do tego.
‫Zamierzamy przeprowadzić śledzenie linii pojedynczo po kanale.
‫Wtedy będziemy potrzebować wyniku trafienia.
‫Tak więc w parametrach musimy najpierw zadeklarować naszą strukturę wyników trafień, aby przekazać ją jako parametr aplikacji.
‫Nazwie to trafieniem, a oni podadzą to jako pierwszy argument tutaj.
‫Następnie potrzebujemy lokalizacji.
‫I potrzebujemy końca.
‫I co wtedy?
‫Co będzie dalej?
‫Kolizja.
‫Kanał kolizyjny.
‫Więc to będzie kanał kolizyjny E.
‫Okrężnica.
‫A potem powinno być e c, co powiedzieliśmy?
‫Chodźmy i przyjrzyjmy się domyślnemu silnikowi.
‫Każdy kanał śledzenia gier CC to ten, do którego domyślnie skonfigurowano zapytanie.
‫Czy są tu jeszcze jakieś argumenty, których potrzebujemy?
‫Chodźmy dalej.
‫Mamy parametry kolizji, które są domyślnie wyłączone.
‫Więc nie, nie potrzebujemy tutaj niczego.
‫A potem możemy zrobić, że potrzebujemy do tego wyniku logicznego.
‫Więc B sukces.
‫I brzmi to bardzo pomocnie, prawda?
‫Odnieś sukces.
‫Powiedzmy, że sukces A, jeśli B.
‫Będziemy chcieli narysować ten punkt debugowania.
‫Więc zamierzamy to obniżyć.
‫Mogę to zrobić za pomocą Alt, a następnie strzałka przesuwa linię w ten sposób, a następnie
‫mogę ją wciąć za pomocą kontrolki i prawych nawiasów kwadratowych na klawiaturze, dzięki czemu wygląda to tak.
‫A teraz zamiast lokalizacji, która jest punktem początkowym, chcemy faktycznie trafić w lokalizację.
‫Więc to będzie trafiona lokalizacja kropki w ten sposób.
‫I wygląda na to, że brakuje mi średnika na końcu tej linii.
‫Zbudujmy to i spróbujmy.
‫Po skompilowaniu tej przebojowej gry wejdź w świat i spróbuj strzelać do naszych ścian.
‫Proszę bardzo.
‫Widzicie, że w miejscu, w którym strzeliłem, pojawił się punkt na ścianie.
‫Mogę to zrobić wiele razy.
‫Wydaje się uderzać, jeśli odejdę za daleko od ściany, w ogóle nie trafia, ponieważ nasz maksymalny zasięg jest dość
‫krótki.
‫I widać, że kiedy znajdę się w maksymalnym zasięgu, uderza i rysuje punkt.
‫To jest wyzwanie zakończone sukcesem.
‫Jesteśmy teraz w stanie pokazać i śledzić linię do określonego punktu.
‫Następnym krokiem będzie pokazanie niektórych efektów cząsteczkowych, co będzie znacznie fajniejsze
‫niż tylko narysowanie punktu debugowania.
‫Do zobaczenia na następnym wykładzie.