‫Cześć i witaj.
‫W tym wykładzie przyjrzymy się połączeniu naszych ruchów postaci, abyśmy mogli posuwać się
‫naprzód i rozglądać się po naszym świecie.
‫Klasyka poruszania się w strzelance pierwszoosobowej lub trzecioosobowej.
‫Zanurzmy się i zobaczmy, jak to się robi.
‫Tak więc kontynuując w duchu próbowania działania naszego ruchu postaci, przede wszystkim będziemy chcieli
‫powiązać pewne dane wejściowe, ale będziemy również wiedzieć, z czym powiązać dane
‫wejściowe.
‫Na szczęście, jeśli chodzi o postacie, dzieje się dla nas wiele uproszczeń.
‫W końcu Unreal to naprawdę silnik zoptymalizowany pod kątem tworzenia takich rzeczy, jak strzelanki, gry z
‫postaciami.
‫Przyjrzyjmy się, jak niektóre funkcje ruchu są już udostępniane przez klasę aktora postaci, nie tylko komponent
‫ruchu postaci, ale także klasa aktora postaci zapewnia je i często przekazuje
‫wiele z nich do komponentu ruchu postaci , ale niekoniecznie.
‫Zobaczmy, z jakimi funkcjami ruchu będziemy mieli do czynienia.
‫Przede wszystkim zostanie dodane wejście ruchu.
‫Dodaj dane wejściowe ruchu zasadniczo przyjmuje wektor i mówi, w którym kierunku zamierzasz się poruszać.
‫Więc jeśli jest to wektor do przodu, poruszasz się do przodu.
‫Jeśli jest to wektor wsteczny, poruszasz się wstecz.
‫Gdyby to był właściwy wektor, przesuwasz się w prawo i tak dalej.
‫A rozmiar wektora określi, jak szybko poruszasz się w tym kierunku.
‫Następną rzeczą jest dodanie wejścia kontrolera pitch.
‫Więc chodzi o patrzenie w górę iw dół, co jest oczywiście bardzo przydatne.
‫Kiedy masz mysz, chcesz patrzeć w górę iw dół, przesuwając mysz w górę iw dół.
‫Następnie jako kontroler dodaj swoje wejście, które idzie w lewo i w prawo.
‫I wreszcie jest funkcja skoku, która polega na tym, że może naciskasz spację i skaczesz.
‫Mając to na uwadze, chcemy iść dalej i zrobić kilka powiązań w klasie aktora postaci,
‫które wiążą pewne dane wejściowe.
‫Więc niektóre wejścia na klawiaturze, myszy, kontrolerze do tych funkcji, abyśmy mogli zrobić kilka, a potem
‫zrobimy wyzwanie, aby zrobić resztę.
‫Przejdźmy więc do kodu Visual Studio, a ja robię zdjęcie kropki postaci i zauważamy, że
‫mamy już skonfigurowaną funkcję komponentu wejściowego odtwarzacza.
‫W tym miejscu musimy powiązać nasze dane wejściowe i nacisnąć F12, aby przejść do C++.
‫Nacisnę Alt oh, aby przejść do C++ i dowiedzieć się, gdzie mamy taką konfigurację.
‫Więc pierwszą rzeczą jest to, że daje nam ten składnik wejściowy rośliny, z którym chcemy się związać.
‫Jeśli pamiętasz, tak to robimy.
‫Mamy komponent wejściowy odtwarzacza, używamy operatora strzałki, a następnie wykonujemy tutaj funkcję wiązania.
‫Jest to więc albo dostęp do wiązania, albo będzie to akcja wiązania, w zależności od tego, czy jest to akcja dyskretna, taka
‫jak skok, czy jest to akcja, która ma wartość taką jak patrzenie w górę i w dół lub poruszanie się.
‫Teraz, nawet gdy wykonujemy ruch klawiszem, nadal mamy tendencję do wiązania go za pomocą osi.
‫Więc właściwie zrobię małą literówkę w pierwszej części tego wideo.
‫Poprawię to później, ale idź dalej i użyj tutaj osi bind zamiast akcji bind.
‫Tak więc, aby zrobić krok jeszcze dalej, musimy iść do przodu i ustawić te działania i osie w naszych
‫ustawieniach projektu.
‫Wróćmy więc do Unreal.
‫Przejdź do ustawień, ustawień projektu, a następnie zadokuję to, abyśmy mogli to zobaczyć
‫bardzo wyraźnie i przejdziemy do sekcji wejściowej.
‫Więc wprowadź silnik i skonfiguruj mapowanie osi i mapowanie akcji.
‫Więc te, z którymi zamierzam się zająć od samego początku, to mapowania osi, ponieważ przede wszystkim
‫będziemy mieć krok do przodu.
‫I zamierzamy też spojrzeć w górę.
‫Teraz pamiętaj, nie mamy ruchu do przodu i ruchu do tyłu, ponieważ możemy to zrobić ze
‫skalą ujemną.
‫Na przykład chcę, aby moje W Quay było moim krokiem naprzód.
‫To jest skala pierwsza.
‫Ale jeśli chcę, aby moje esky było moim ruchem wstecz, nadal mogę użyć ruchu do przodu, ale podaj mu skalę minus jeden.
‫Tylko szybkie przypomnienie dla Ciebie.
‫To samo ze spojrzeniem w górę.
‫Będę używał myszy, ponieważ obejmie to wejście kontrolera.
‫W następnym wykładzie użyjemy myszki y.
‫A teraz pamiętaj, dlaczego ten, który idzie w górę i w dół, a nie w lewo i w prawo?
‫Ponieważ jest trochę wyższy, prawda?
‫Dlaczego litera jest trochę wyższa niż X?
‫W każdym razie tak to pamiętam.
‫Więc Mysz Y jest w górę iw dół.
‫A potem będziemy musieli poprawić skalę, zobaczyć, czy idzie we właściwym kierunku.
‫Ale w zasadzie da nam to wartości ujemne, jeśli spadamy, i dodatnie, jeśli idziemy w górę.
‫Być może będziemy musieli poprawić spojrzenie w górę, aby zobaczyć, czy pójdzie to we właściwym kierunku.
‫Ale masz pomysł, że możemy odwrócić skalę lub nie, w zależności od rodzaju danych wejściowych, które tu
‫wchodzą.
‫Więc kiedy już otrzymamy nazwę dostępu, możemy wrócić do C++.
‫Powiążemy go za pomocą makra tekstowego i tekstu nazwy dostępu.
‫Następnie musimy powiedzieć, na kogo wywołamy funkcję i jaką funkcję wywołamy.
‫Obecnie nie mamy funkcji, którą chcemy wywołać.
‫Więc zamierzam stworzyć nową prywatną funkcję w moim pliku nagłówkowym C++.
‫I będzie to funkcja void, którą będziemy nazywać przesuń do przodu.
‫I będzie to zmiennoprzecinek, który będzie wartością osi.
‫Zakończ ze średnikiem i mam małą sztuczkę, małe rozszerzenie, które pomaga mi zaimplementować te
‫rzeczy trochę szybciej, wykonując sterowanie przesunięciem p i.
‫Jeśli wpisuję tworzenie implementacji, to idzie dalej i tworzy tę implementację dla mnie w pliku C++.
‫Naprawdę miło i łatwo.
‫Nazwa tego rozszerzenia.
‫Jeśli pójdę, zawsze zapominam nazwy moich rozszerzeń, więc pójdę i poszukam, co to może być.
‫Myślę, że to ten mały doozy tutaj, pomocnik C++.
‫Jeśli pójdziesz dalej i zainstalujesz ten kod dla swojego kodu głosowego, pozwoli ci to zrobić coś takiego, co jest
‫bardzo miłe, bardzo przydatne.
‫To jest funkcja, którą chcemy ustawić do wywołania.
‫Więc przede wszystkim mówimy to.
‫To jest cel.
‫Bieżący obiekt jest celem tej funkcji.
‫Następnie idziemy dalej i wstawiamy problem do w pełni kwalifikowanej funkcji, do znaku, dwukropka, dwukropka, do
‫przodu, a to powinno być powiązane z tą funkcją.
‫I wreszcie, to, co chcemy zrobić, to przekazać tę wartość osi do funkcji, którą faktycznie
‫chcemy wywołać, która jest funkcją nadrzędną.
‫Więc nie musimy nic robić.
‫Możemy po prostu zrobić ruch reklam.
‫Wejście w ten sposób.
‫Więc ponieważ jest to metoda ruchu do przodu, chcemy mieć wektor aktora do przodu.
‫Sposób, w jaki to robimy, polega na tym, że możemy wykonać wektor pobierania aktora do przodu w taki sposób, a następnie chcemy, aby był on do
‫przodu w ilości, którą daje nam nasza wartość dostępu, abyśmy mogli pomnożyć przez wartość osi.
‫A to da nam właściwy wynik.
‫Więc będziemy mieli wektor do przodu pomnożony przez wartość osi.
‫Jeśli jest jeden, idziemy do przodu, jeśli jest minus jeden, wektor w przód staje się wektorem wstecz i
‫cofamy się tylko z tą jedną funkcją.
‫Więc to nas ustawiło, by iść do przodu.
‫Świetny.
‫Następną rzeczą jest związanie dla naszego spojrzenia w górę.
‫Więc chodźmy i skopiuj.
‫Zawsze lubię kopiować te odnośniki łańcuchowe, żeby się nie pomylić.
‫Spójrz w górę i zamiast wiązania, aby przejść dalej, wróćmy do
‫nagłówka pliku i utwórzmy coś nowego, co będzie wyszukiwane i znowu, wartość dostępu typu float.
‫Tak jak.
‫A jeśli kontroluję przesunięcie P i to robię, implementacja idzie naprzód i oszczędza mi trochę czasu.
‫I tym razem zamiast dodawać wejścia ruchu, chcemy użyć jednej z tych innych funkcji, które
‫mieliśmy do dyspozycji.
‫Mianowicie wejście kontrolera reklam, ponieważ chcę w zasadzie podnieść wysokość.
‫Więc tym razem możemy zrobić kontroler reklam.
‫Wejścia skoku i przekazać oraz bezpośrednio wartość osi.
‫Teraz.
‫Teraz bądźcie nieco bardziej doświadczonymi programistami C++ wśród was, którzy mogliby powiedzieć Hej, ta funkcja w zasadzie nic nie
‫robi.
‫To po prostu wywołanie innej funkcji z tym samym parametrem.
‫Więc tak naprawdę nie robi zbyt wiele.
‫I miałbyś rację.
‫Moglibyśmy więc zrobić sesję zdjęciową, spojrzeć na postać.
‫Możemy więc nazwać funkcję, która została zdefiniowana w tej klasie, postacią strzelca.
‫Albo moglibyśmy powiedzieć, no cóż, dodano wejścia sterujące wysokością dźwięku, które moglibyśmy po prostu nazwać bezpośrednio, czyż nie?
‫Więc jeśli użyjemy klawisza F12, aby dowiedzieć się, gdzie to jest zdefiniowane i przejdziesz do niego, możesz zobaczyć, że jest
‫on faktycznie definiowany w -- kropka h.
‫Więc jeśli przewiniesz w górę, zobaczysz całą drogę tutaj, gdzie znajdziemy bezklasowego.
‫Mógłby nawet po prostu szukać klasy, przestrzeni, czegoś takiego.
‫A tutaj mamy klasę.
‫Wróćmy więc do zdjęcia postaci i tego, co możemy spróbować, i po
‫prostu skróć to trochę, mówiąc zamiast tego, zróbmy -- dwukropek, dwukropek dodaj wejście kontrolera, aby automatycznie wywołało tę
‫funkcję nadrzędną, a nie musimy przejść przez naszą własną funkcję.
‫Jest to również prawidłowy sposób, ale nie jest to konieczne.
‫Więc zamierzam to skomentować, abyś mógł się do tego odnieść i zobaczyć, jeśli chcesz to zrobić w ten sposób.
‫Ale polecam zrobić to nieco krótszą trasą.
‫Spróbuję to skompilować.
‫Zauważyłem, że zamiast sprawdzać za dostępem, jak chciałem, robię akcję na
‫ślepo.
‫Więc prawdopodobnie przez cały czas krzyczałeś na swój ekran.
‫Idźmy dalej i zbudujmy to jeszcze raz.
‫Nawiasem mówiąc, robię to z przesunięciem sterowania B i wybraniem opcji kompilacji.
‫To jest prosty edytor strzelanek Win 64, który jest dla mnie szybki, niż przejście
‫i naciśnięcie przycisku kompilacji.
‫Sprawdzę i nie mogę dzisiaj poprawnie odczytać mojej składni.
‫Oczywiście musimy użyć znaku & przed tą funkcją, aby powiedzieć, że chcemy
‫uzyskać wskaźnik.
‫Chcemy użyć znaku & przed tymi funkcjami, aby mieć tutaj poprawną składnię.
‫Dobra.
‫Więc po poprawieniu tych dwóch bardzo powszechnych błędów, jednym jest to, że mam niewłaściwe wywołanie funkcji, a
‫drugim jest to, że nie mam znaku & przed funkcjami, których próbuję użyć.
‫Przejdźmy do Unreal i zobaczmy, czy to faktycznie działa.
‫Jeśli pójdę do przodu i nacisnę odtwarzanie oraz użyję klawisza W i klawisza, zobaczysz, że mogę poruszać się do przodu i do tyłu.
‫To niesamowite.
‫Za pomocą myszy mogę patrzeć w górę iw dół.
‫Ale w tej chwili czuję się odwrócona do mojego ruchu.
‫Więc po prostu przejdę do ustawień i wcisnę tam minus jeden, i włączę odtwarzanie.
‫A teraz, kiedy idę w górę i w dół, wydaje mi się, że jest to prawidłowe.
‫Zauważ, że faktycznie odradzam się w dwóch różnych miejscach.
‫To dlatego, że muszę zacząć grać.
‫Kiedy włożyłem drugi, nie zdawałem sobie sprawy, że jest już na tym poziomie, dlatego
‫czasami uprawiam sport tutaj, czasami uprawiam sport w innym miejscu.
‫Możesz znaleźć to samo.
‫Więc nadszedł czas na wyzwanie.
‫Sprawmy, żebyście powiązali swoje ruchy i prawa do wyglądu, abyśmy mieli pełną kontrolę nad naszym ruchem.
‫Więc powtarza proces, który właśnie przeprowadziłem w wykładzie dla obu tych dwóch, a ty prawdopodobnie
‫podążasz dalej.
‫Jeśli nie, możesz iść i obejrzeć, aby poprawić.
‫A także chciałbym, abyś spróbował funkcji skoku, jeśli czujesz się odważny, zatrzymaj się, nagraj wideo i spróbuj.
‫Dobra.
‫Witamy spowrotem.
‫Więc spróbujmy.
‫Przede wszystkim powtarzamy powyższe kroki, aby przejść do przodu i spojrzeć w górę.
‫Więc będziemy się przeprowadzać, prawda?
‫I zamiast patrzeć w górę, będziemy patrzeć dobrze.
‫I możemy iść dalej i skopiować je, aby ustawić nasze osie w ustawieniach projektu.
‫Dodaj więc kolejne kilka mapowań osi.
‫Pierwszym będzie ruch w prawo, który zmapuję do klucza, cztery w lewo.
‫Więc to będzie minus jeden, to będzie minus jeden, ponieważ opuściliśmy przeciwną prawą stronę.
‫A D będzie teraz mieć cztery.
‫Oczywiście możesz tutaj również dodać klawisze strzałek.
‫Po prostu nie oszczędzam czasu.
‫Ale możesz iść dalej i zrobić to samo.
‫Tutaj możesz po prostu dodać więcej kluczy.
‫Tyle przypadków, ile chcesz zmapować do tego jednoosiowego wyglądu.
‫Tak, użyjemy myszki x.
‫I myślę, że jeden powinien być wystarczający, a nie minus jeden.
‫Myślę, że nie musimy tego odwracać.
‫A potem zamierzamy powiązać to nieco inaczej.
‫Więc zamierzam iść dalej i stworzyć sobie funkcję ruchu w prawo tutaj.
‫Teraz możesz się zastanawiać, dlaczego robimy to inaczej?
‫Dlaczego ruch jest właściwy?
‫Dlaczego nie dzwonimy od razu, aby dodać ruch?
‫Różnica polega na tym, że robimy trochę obliczeń.
‫Dodajemy w tym mnożeniu przez wektor, który dodaje trochę informacji i uzasadnia
‫istnienie tej funkcji.
‫Więc tym razem, zamiast przesuwać akt do przodu, chcieć uzyskać odpowiedni wektor aktora i pomnożyć go przez
‫wartość osi, a potem chcemy wywołać zamiast iść do przodu.
‫Chcesz teraz zadzwonić do ruchu, aby zobaczyć.
‫Dobrze.
‫Zamiast dodawać wejście kontrolera, chcemy wykonać twoje dane wejściowe.
‫Pamiętaj o skoku toczenia i jesteś z samolotów.
‫Możesz to sprawdzić w Wikipedii, jeśli nie jesteś pewien, który jest który.
‫Śmiało i zbuduj ten.
‫Mam nadzieję, że tym razem nie pomyliłem składni.
‫Zanurzmy się do edytora i włączmy odtwarzanie, a oni idą. Mogę rozejrzeć się dookoła mnie.
‫To dobrze wygląda.
‫Mogę skręcać w lewo iw prawo.
‫Mogę iść do przodu i do tyłu.
‫Pozostaje nam więc skok, który będzie mapowaniem akcji, a nie osią, ponieważ jest to akcja
‫dyskretna, nazwij ją, przeskocz i skopiuj.
‫Przejdź do kodu programu Visual Studio.
‫I właśnie zamknąłem moje okno kompilacji.
‫I tutaj zamiast znaleźć oś, masz to.
‫Będę wiązał akcję bindowania.
‫Proste.
‫Zacznie się od tekstu tutaj.
‫Skoku.
‫Ale to, co jest inne z siekierami, jak zapewne pamiętasz.
‫Musimy więc użyć składni I input events, która jest enum, co oznacza, że zasadniczo może
‫przyjąć wiele różnych opcji, podwójne kliknięcie, komunikat prasowy itp.
‫Będziemy chcieli tak wskoczyć do prasy.
‫Więc.
‫Więc to jest IEEE Underscore Press.
‫A kiedy już to wiemy, możemy iść dalej i zrobić to samo, a potem chcemy zadzwonić do
‫skoku.
‫Gdzie jest skok, aby znaleźć?
‫Czy to jest w basenie?
‫Spójrzmy.
‫Nie, ale to może być w postaci.
‫Więc zrobię kontrolkę P i poszukam postaci.
‫H.
‫Otwórz to i po prostu spójrz tutaj, zobacz, czy mają tu zdefiniowaną funkcję skoku.
‫Skocz, a następnie otwórz nawiasy często jest dobrym sposobem wyszukiwania funkcji w plikach nagłówkowych.
‫Rzeczywiście mamy tę funkcję.
‫Możesz zobaczyć dokumentację.
‫Często lubię używać kodu źródłowego bezpośrednio, zamiast szukać jakichkolwiek plików dokumentacji.
‫Po prostu uważam, że czasami dostęp jest znacznie szybszy, zwłaszcza gdy masz dostęp do sterowania p i
‫Visual Studio Code.
‫Więc to, co musimy zrobić, to zamiast pisać słaby dwukropek, dwukropek, musimy zrobić dwukropek znakowy.
‫Kalonzo Będzie to znak ampersand, dwukropek.
‫Dzieje się tak dlatego, że są to klasy zdefiniowane, w których nie możemy szukać w
‫górę hierarchii, gdy robimy ten dwukropek, operator dwukropka, a potem po prostu przeskoczymy.
‫A więc znak, dwukropek, skok dwukropka.
‫I nie zapominaj, że potrzebuję średnika.
‫Podkreślone, śmiało buduj i zobacz, czy teraz możesz skoczyć.
‫Cóż, pasek zadziałał poprawnie.
‫Przejdźmy do poziomu piaskownicy.
‫Hit play i spróbuj i skacz.
‫Nie mam przypisanego klucza, więc może mi to przeszkadzać.
‫Dodaj spację jako klawisz, którym chcę skoczyć, idź dalej i naciśnij przycisk Odtwórz.
‫Tak.
‫Potrafię skakać w górę iw dół, poruszać się w powietrzu i poruszać.
‫Fantastyczny.
‫Więc nauczyliśmy się wiązać topory i akcje tam, gdzie się tego nie nauczyliśmy.
‫Zmieniliśmy to, ale widzieliśmy, z czym chcemy się powiązać w postaci, aby ta klasyczna
‫postać skakała, omijała, poruszała się i patrzyła za pomocą aparatu, co wszyscy znamy i kochamy z naszych
‫strzelanek.
‫W następnym wykładzie przyjrzymy się niuansom wymaganym do poruszania się za pomocą kontrolera oraz klawiatury.
‫Mysz.