‫Cześć i witaj.
‫W tym wykładzie zamierzamy wykonać nasz ruch, trochę się poruszać, zaznaczając pole wyboru.
‫Umożliwimy mu poruszanie się i poruszanie się ze stałą prędkością.
‫Tym razem będziemy to robić, używając pewnych funkcji bibliotecznych od wewnątrz.
‫Nierealny.
‫Dlatego poddamy testowi całą naszą wiedzę na temat plików i dołączeń.
‫Zanurzmy się i zobaczmy, jak to działa.
‫Więc sposób, w jaki chcę, aby to zadziałało, polega na tym, że chcę, aby poruszał się płynnie od miejsca, w
‫którym się zaczął, do przesunięcia docelowego przez określoną liczbę sekund.
‫Więc sposób, w jaki będziemy musieli to skonfigurować, to dodanie nowych właściwości do pliku nagłówkowego.
‫Zacznijmy więc od dodania prywatnej sekcji do nagłówka
‫pliku, a następnie dodamy nową właściwość, która zostanie dodana w dowolnym miejscu, która zdefiniuje przesunięcie, przesunięcie przesunięcia.
‫Więc jak daleko powinien się poruszać ten ruch, gdy jest aktywowany.
‫Więc sposób, w jaki to zrobimy, użyje wektora F i zamierzam go nazwać przesunięciem
‫ruchu, tak aby nie nadać mu wartości domyślnej.
‫Zrobimy to w edytorze.
‫Następnie stworzę kolejną właściwość U, która ponownie zostanie dodana w dowolnym miejscu,
‫czyli będzie to czas potrzebny na przejście do celu.
‫Więc to będzie pływak, czyli czas ruchu.
‫Ustawię to na domyślną wartość, powiedzmy, 4 sekundy.
‫Teraz, jest jeszcze jedna rzecz, którą chcę tutaj umieścić, jest to wartość logiczna na
‫razie, która pozwoli nam aktywować ruch tak, aby przesunął się w dół, gdy aktywujemy tę wartość logiczną.
‫Stwórzmy więc ponownie nową właściwość, edytujmy w dowolnym miejscu, abyśmy mogli ją dodać nawet podczas
‫gry.
‫To będzie boolean mówiące, że powinno się przenieść i domyślnie będzie ustawione na false.
‫Więc kiedy zaznaczymy to w edytorze, kiedy gramy, to pójdzie i przesunie się do docelowego
‫przesunięcia ruchu.
‫Teraz, kiedy mieliśmy ruchomy komponent, wszystkie kroki wykonywaliśmy ręcznie.
‫Ale chcę pokazać, że w rzeczywistości jest wbudowana pewna funkcjonalność.
‫Wiele potrzebnych nam obliczeń jest wbudowanych bezpośrednio w Unreal i jest też funkcja o nazwie V
‫interpretująca stała.
‫A co ciekawe, spójrzmy na uwagi.
‫Zatem interpoluj wektor z bieżącego wektora do wektora docelowego za pomocą stałego kroku.
‫Oznacza to, że z czasem będziemy przemieszczać się od prądu do celu z określoną prędkością i będzie to
‫robić stale, co brzmi dokładnie tak, jak chcemy.
‫Chcemy przemieszczać się z naszej obecnej lokalizacji do docelowej lokalizacji przesunięcia ze stałą prędkością.
‫Teraz widzisz, że rzuciłeś okiem na składnię tej funkcji.
‫Widać, że ma zwracany typ wektora.
‫To jest nowa lokalizacja, którą interpoluje.
‫Następnie ma dwa wejścia.
‫Mamy aktualny wektor F i na razie nie martw się o inne symbole wokół tego efektu,
‫po prostu ważne jest to, że jest to bieżący czynnik, a następnie cel,
‫który chcemy ostatecznie osiągnąć, a następnie ma deltę czasu, więc używa go do uniezależnienia szybkości klatek ruchu i szybkości
‫interpolacji.
‫Jak szybko powinniśmy przemieszczać się z naszej obecnej lokalizacji do celu?
‫Teraz zauważysz, że tutaj w dokumentacji faktycznie znajduje się sekcja, która mówi o dołączeniu, a to mówi ci, której
‫linii dołączania będziesz potrzebować w swoim pliku C++, aby móc korzystać z tej
‫funkcji.
‫Jak widzieliśmy w poprzednim filmie, linia include pozwala nam kopiować definicje z tego
‫konkretnego pliku.
‫A jedną z definicji jest definicja tej funkcji.
‫Więc pozwala nam użyć tej stałej przecięcia V, aby teraz V przed tą funkcją zasadniczo oznaczało, że
‫wykonuje interpolację na wektorach.
‫Dlatego nazywa się to v interpret, w przeciwieństwie do innych funkcji interpolacji, które są również dostępne w
‫tym pliku biblioteki.
‫Przyjrzyjmy się więc, jak byśmy go wykorzystali.
‫Przede wszystkim skopiujemy linię include z dokumentacji i przejdziemy do naszego ruchu ACP,
‫w którym chcemy zaimplementować to w ciele komponentu tick.
‫Ale obejmują one, że nie uwzględniamy w ciele składnika kleszcza.
‫Musimy zrobić wszystkie dołączenia na górze pliku.
‫Więc tam mam zamiar umieścić swój.
‫Zamierzam umieścić moje po uwzględnieniu przesunięcia kropki.
‫Więc wstawimy i dodamy do matematyki nierealne narzędzie matematyczne kropkę.
‫Teraz możemy użyć funkcji w naszym komponencie tikowym.
‫Pozbądźmy się kodu, który już mamy i zaznaczmy kompilację.
‫Ponieważ używaliśmy tego, aby zrozumieć, jak wywoływać funkcje na innych aktorach.
‫A to, co musimy zrobić, to jeśli przewiniesz w górę, zobaczysz sposób na wywołanie tego jako f dwukropek matematyczny V
‫w nakłuciu stała do.
‫Więc robimy ten operator dwukropka, który zagląda do klasy matematycznej F, która organizuje razem
‫wszystkie te narzędzia matematyczne.
‫Więc zrobimy matematykę F.
‫Okrężnica.
‫I tutaj możesz zobaczyć kilka autouzupełniania nadchodzących dla różnych funkcji matematycznych zawartych w tym pliku
‫nagłówkowym, który właśnie umieściliśmy w tym pliku.
‫Możesz więc przejrzeć, zobaczyć, jakakolwiek z interesujących rzeczy jest tutaj.
‫Widzę kilka interpolacji i interpolacji kołowych itp. ale chcieliśmy, aby v interpretowała stała.
‫Możemy nacisnąć tabulator, aby to zakończyć, a następnie otworzyć kilka nawiasów i zobaczyć argumenty, które
‫musimy przekazać w prądzie, docelowy czas delta i prędkość przechwycenia.
‫Zacznijmy więc tworzyć zmienne do przechowywania niektórych z nich.
‫Przede wszystkim potrzebujemy wektora F, który będzie naszą obecną lokalizacją i nie zamierzamy go
‫jeszcze ustawiać.
‫Następnie będziemy mieli wektor F dla lokalizacji docelowej, a następnie otrzymamy zmiennoprzecinkową
‫prędkość.
‫I będziemy musieli obliczyć każdy z nich indywidualnie, aby dowiedzieć się, jak możemy sprawić, by ten ruch się
‫wydarzył.
‫Tak więc obecna lokalizacja będzie stosunkowo prosta.
‫Musimy ustalić aktualną lokalizację aktora będącego właścicielem.
‫Więc jak to robimy?
‫Zastąpmy ten średnik znakiem równości.
‫Następnie robimy parę nawiasów zdobądź właściciela, które zamierzamy zrobić Arrow.
‫Więc będziemy wywoływać funkcję dla aktora będącego właścicielem i będziemy pobierać lokalizację aktora, a następnie parę nawiasów i
‫średnika, aby to zakończyć.
‫To daje nam aktualną lokalizację aktora będącego właścicielem.
‫A co z naszą docelową lokalizacją?
‫Cóż, wiemy, że mamy właściwość zwaną Przesunięciem Przesunięcia.
‫Więc to będzie dotyczyć tutaj.
‫Ale musimy dodać oryginalną lokalizację do tego przesunięcia ruchu.
‫W tym celu musimy uchwycić oryginalną lokalizację na początku gry.
‫Więc potrzebujemy zmiennego sklepu.
‫Przejdźmy więc do naszego wojska.
‫H I nie będzie to nigdzie edytowane.
‫Więc zamierzam umieścić to we właściwościach wartości, będzie to wektor F zwany oryginalną lokalizacją.
‫Nie zamierzamy tutaj ustawiać niczego, co przeniesiemy do naszych filmów.
‫CP Into Begin Play, usuń ten wiersz komentarza i umieść nasz własny
‫kod, który będzie oznaczał, że oryginalna lokalizacja jest równa pobraniu strzałki właściciela nawiasu i lokalizacji aktora w ten sposób.
‫Więc teraz, gdy mamy przechwyconą naszą pierwotną lokalizację i zaczynamy grę, możemy jej użyć w technologii.
‫Więc przejdź do tiku i ustawimy naszą docelową lokalizację równą oryginalnej lokalizacji plus przesunięcie przesunięcia.
‫To jest nasza lokalizacja docelowa.
‫I na koniec, przy prędkości, cóż, jest to zasadniczo odległość, którą musimy przebyć,
‫podzielona przez czas, który musimy przebyć.
‫Więc jeśli mamy lokalizację docelową i mamy oryginalną lokalizację, musimy znaleźć odległość
‫między tymi dwoma, co możemy zrobić za pomocą kolumny wektora f, odległość dwukropka.
‫Następnie przechodzimy do nawiasów, oryginalnej lokalizacji i docelowej lokalizacji.
‫To daje nam odległość między tymi dwoma wektorami.
‫A potem podzielimy to przez to, co mieliśmy i wyprowadziliśmy się, zwane czasem przeprowadzki.
‫To daje nam prędkość, z jaką powinniśmy się poruszać.
‫A teraz możemy użyć ich jako argumentów do naszej stałej przecięcia V do.
‫Więc najpierw musimy podać aktualną lokalizację, a następnie lokalizację docelową.
‫Następnie powiemy, że jest to czas Delta, który jest już parametrem w składniku tiku.
‫Więc po prostu musimy to przejść.
‫A potem mamy prędkość przechwycenia.
‫Więc po prostu przejedziemy prędkość jak średnik na końcu tej linii.
‫I to jest w zasadzie nowa lokalizacja.
‫Więc zapiszmy to w nowym wektorze zmiennym zwanym nową lokalizacją równą temu.
‫Fajny.
‫Teraz musimy coś zrobić z tą nową lokalizacją, ponieważ samo obliczenie jej
‫nie jest dobre, naprawdę musimy przenieść aktora do nowej lokalizacji.
‫Więc to właśnie zamierzamy zrobić.
‫Zadzwonimy do tego, aby zdobyć właściciela, abyśmy mogli go zdobyć.
‫Nawiasy Strzałka.
‫A potem zrobimy ustaloną lokalizację aktora i przejdziemy do nowej lokalizacji, tak jak to, i będziemy mieli średnik
‫na końcu wiersza.
‫Więc chodźmy dalej i skompilujmy to i zobaczmy, czy działa.
‫Jeśli więc przejdziemy do lochu, wybierz ścianę, którą chcemy przenieść.
‫Możesz teraz zobaczyć, że komponent mover ma przesunięcie ruchu, co zamierzam zrobić
‫w kierunku Z i myślę, że zrobię -600.
‫A potem czas ruchu, 4 sekundy, powinien być w porządku.
‫Więc zapiszmy to, a następnie włączmy odtwarzanie i zobaczmy, czy się poruszy.
‫Więc się nie porusza.
‫W dzienniku wyjściowym jest błąd mówiący, że mobilność aktora została ustawiona na statyczną, dlatego nie może
‫się poruszać.
‫Jeśli więc ponownie wybierzemy aktora i przyjrzymy się jego ustawieniom mobilności, zobaczysz, że ustawienia mobilności statycznego komponentu siatki, więc
‫wybierz statyczny komponent siatki, a następnie spójrz na mobilność.
‫Widać, że jest ustawiony na statyczne okazy.
‫Nie wolno się ruszać.
‫Zmieńmy to na ruchome, ponieważ chcemy, aby się poruszało.
‫A potem chodźmy dalej i włączmy odtwarzanie.
‫Teraz w ciemności widać, że wojna się kończyła, co jest idealne.
‫Myślę, że mamy ruch gdzieś indziej, jak widać na tym filarze tutaj, który również próbuje się poruszyć.
‫Więc nie róbmy tego.
‫Usuńmy move, komponent, który dodaliśmy tam tylko do testów.
‫I nie powinno dać nam żadnych błędów w logu wyjściowym.
‫Jeśli teraz zaczniemy grać w trafienia, powinniśmy po prostu opuścić tę ścianę do docelowej lokalizacji.
‫Więc rzućmy Ci wyzwanie, abyś poruszał się za pomocą wartości logicznej, którą stworzyliśmy, że jesteś własnością.
‫Więc zamierzasz owinąć kod odpowiednią instrukcją if i odpowiednim kodem, aby przenosił platformę
‫tylko wtedy, gdy ta wartość logiczna jest prawdziwa.
‫A potem ponownie skompilujesz kod i odtworzysz eject za pomocą F osiem, a potem zmienisz wartość logiczną,
‫obserwujesz plat i sprawdzasz, czy się porusza, gdy sprawdzasz tę wartość logiczną.
‫Więc zatrzymaj wideo i spróbuj.
‫Dobra.
‫Witamy spowrotem.
‫Więc chodźmy i zapakujmy te elementy techniczne w zdanie if, nie super, ale wszystko inne, co zamierzamy
‫zrobić.
‫Jeśli powinno się przenieść i otworzyć kilka nawiasów i przenieść cały ten kod, pamiętając o wcięciu go o jeden poziom, ponieważ jesteśmy w
‫nawiasach i chcemy pokazać, że zostanie to wykonane tylko w instrukcji if.
‫Ułatw nam odczytanie kontroli wszystkich kompilacji Taft elevens, a następnie powinniśmy być w stanie przejść i
‫nacisnąć przycisk odtwarzania i nacisnąć F8, aby wysunąć, jeśli przechwyciliśmy naszą mysz.
‫A potem wejdziemy, aby spojrzeć na nasz zarys i spróbujemy znaleźć ścianę.
‫Albo możemy po prostu kliknąć scenę, a następnie wybierzemy nasz ruch, komponent i sprawdzimy, czy powinien się poruszać,
‫a gdy to się stanie, ściana zacznie się poruszać.
‫Świetna sprawa.
‫Do zobaczenia na następnym wykładzie.