Poruszające się obiekty to obiekty, które poruszają się na jednym lub więcej osiach w przestrzeni 3D.Używając wbudowanej mocy silnika symulacyjnego Roblox, możesz sprawić, że obiekty będą się poruszać i interakcjonować ze swoim środowiskiem w sposób, który emuluje rzeczywiste zachowania fizyczne, które są znane i intuicyjne dla graczy, takie jak grawitacja, aerodynamika i tarcia.
Używając pliku Poruszające się obiekty.rbxl jako odniesienia, ten samouczek wyjaśnia, jak siły fizyczne wpływają na liniową kinetykę w Studio i pokazuje różne techniki przenoszenia obiektów z punktu A do punktu B w swoich doświadczeniach z różnym zachowaniem ruchu, w tym wskazówki dotyczące:
- Używanie ograniczenia przenośnika LinearVelocity do przesuwania całej konstrukcji przy stałej prędkości liniowej.
- Użycie PrismaticConstraint do ograniczenia złożenia do jednej osi i przemieszczenia go przy stałej prędkości liniowej względem punktu w przestrzeni 3D.
- Użycie metody ApplyImpulse w celu przesunięcia złożenia z początkowym impulsem siły, tak aby złożenie powoli zdecyelerowało się z czasem.
Liniowy ruch i siły fizyczne
Roblox Studio to silnik symulacji w świecie rzeczywistym, który emuluje zachowanie fizyczne w czasie rzeczywistym, więc aby przewidzieć, jak obiekty poruszające się liniowo mogą zachowywać się w doświadczeniach, ważne jest, aby mieć wysoki poziom zrozumienia tego, jak obiekty poruszają się w rzeczywistym życiu z liniowym ruchem. Przesunięcie liniowe to ruch wzdłuż osi. Na przykład, gdy blok ma liniowe przesunięcie, porusza się wzdłuż wyznaczonej osi.

Liniowy ruch nie może istnieć bez zewnętrznych, fizycznych sił popychających lub ciągnących obiekty do przesuwania.Według pierwszego prawa ruchu Newtona , stacjonarne obiekty pozostają stacjonarne, a poruszające się obiekty pozostają w ruchu z stałą prędkością, chyba że są działane przez zewnętrzną siłę.Na przykład stacjonarny blok pozostaje stacjonarny, chyba że siła fizyczna, tak jak wiatr, nakłania go do ruchu.
Siła jest miarą kierunku i wielkości przesuwania lub pociągania fizycznego, które powoduje, że obiekty zmieniają prędkość liniową wzdłuż osi.Zmiana prędkości jest znana jako przyspieszenie .Koncepcja ta jest szczególnie ważna dla obiektów, które poruszają się w Studio; im więcej siły zastosujesz do obiektów, tym szybciej się przyspieszą.
Dzieje się tak, ponieważ siła musi być większa niż jakiekolwiek fizyczne siły odrzucające obiekt, takie jak grawitacja lub tarcie.Na przykład, jeśli umieścisz blok na metalowej płycie, siła fizyczna wiatru musi pokonać ilość tarcia z metalowej płyty, aby nadal przyspieszać blok.Jeśli siła wiatru nie jest znacznie większa niż siła tarcia z metalowej płyty, blok przyspiesza, tylko powoli, jak w poprzednim przykładzie.

Prędkość liniowa jest miarą ruchu obiektu lub szybkości, z jaką obiekt zmienia pozycję wzdłuż osi w określonym czasie.Studio mierzy prędkość liniową zgodnie z tym, jak wiele szpilków porusza się obiekt na sekundę.Kolce są głównymi fizycznymi jednostkami Roblox do mierzenia długości i każdy kolczek odpowiada około 28 cm w realnym świecie.

Rozumienie prędkości liniowej jest ważne dla projektowania rozgrywki w swoich doświadczeniach, ponieważ pomaga ci określić, ile siły potrzebujesz, aby osiągnąć określoną prędkość dla poruszających się obiektów.Na przykład, gdy chcesz wysunąć obiekty w górę, ważne jest, aby rozważyć, jak musisz dostosować siłę, aby przezwyciężyć grawitację w środowisku, tak aby obiekty poruszały się dokładnie.
Następujące sekcje wnikają głębiej w te koncepcje, gdy nauczysz się, jak przesuwać obiekty przy stałej lub początkowej prędkości liniowej z niezbędną siłą, aby przezwyciężyć jakiekolwiek przeciwstawne siły fizyczne w środowisku.Podczas przeglądu tych koncepcji fizyki z nadchodzącymi technikami możesz dokładniej przewidzieć, jak dostosować wartości właściwości, aby uzyskać dowolne idealne liniowe zachowanie ruchu w Studio.
Zachowaj stałą liniową prędkość
Aby obiekt osiągnął i utrzymał stałą liniową prędkość, potrzebuje siły, która pokona każde przeciwstawne siły fizyczne, które spowalniają prędkość liniową obiektu lub powodują, że obiekt pozostaje nieruchomy.Na przykład, jeśli chcesz, aby obiekt miał liniową prędkość [0, 12, 0] w Studio, potrzebujesz wystarczająco dużo siły, aby obiekt osiągnął i utrzymał 12 szpilki na sekundę wzdłuż osi Y w swoim środowisku.
Ilość potrzebnej siły nie zależy tylko od przeciwnych sił fizycznych w samym środowisku, takich jak grawitacja i tarcia, ale także od samego obiektu.Na przykład, jeśli masz dwa obiekty o tym samym kształcie, które poruszają się na tym samym osi, obiekt z większą ilością masy wymaga więcej siły, aby osiągnąć taką samą liniową przyspieszenie.
Następujące podrozdziały wykorzystują zespoły różnych kształtów i rozmiarów, aby nauczyć Cię, jak przesuwać cały obiekt lub tylko część obiektu przy stałej liniowej prędkości.Eksperymentując z różnymi wartościami właściwości, nauczysz się szacować maksymalną ilość siły, której potrzebujesz do zgromadzeń w swoich własnych doświadczeniach.
Użyj ograniczeń prędkości liniowej
LinearVelocity obiekty są rodzajem ograniczenia przenośnika, które stosują siłę na całą złożoną maszynę, aby utrzymać stałą liniową prędkość.Nie blokując pozycji złożenia do osi podczas jego ruchu, złożenie jest wolne do obrotu, gdy kolizuje z innymi obiektami w przestrzeni 3D.Tego typu ruch prowadzi do zaskakujących scenariuszy rozgrywki, które są trudniejsze do przewidzenia dla graczy.
Aby rozpocząć przesuwanie złożenia, ograniczenie LinearVelocity musi wiedzieć:
- Punkt i pozytywny lub negatywny kierunek zastosowania siły.
- Ilość szpil, które chcesz, aby montaż przesuwał na sekundę.
- Maksymalna ilość siły, jaką silnik może zastosować do montażu, aby osiągnąć stałą liniową prędkość.
Aby pokazać ten proces, skonfigurujesz podkładkę lilii z przymiotkiem, który odnosi się do ograniczenia LinearVelocity, aby przenieść podkładkę lilii 15 szpilkami na sekundę wzdłuż negatywnej osi X świata przy stałej liniowej prędkości.

Dodaj załącznik
Możesz określić punkt, do którego należy zastosować siłę, dodając obiekt Attachment do złożenia, a następnie skonfigurując pozycję załącznika w przestrzeni 3D.Próbny Przesuwanie obiektów doświadczenie umieszcza załącznik w środku płyty lilii, aby ograniczenie mogło przesuwać siatkę wzdłuż określonej osi.
Załączniki obejmują pomoc wizualną, aby pomóc Ci wizualizować ich osie ruchu.Żółta strzałka oznacza główną osię załącznika, a pomarańczowa strzałka oznacza osię drugorzędną załącznika.Chociaż żaden z osi ruchu nie wpływa na ruch podkładki lilii w krokach tej techniki, ważne jest zrozumienie tych pomocy wizualnych na przyszłe odniesienie, ponieważ mogą pomóc ci określić idealne zachowanie dla różnych rodzajów ograniczeń, takich jak PrismaticConstraint w następnej technice.

Aby dodać załącznik:
W oknie Eksploratora rozszerz katalog LinearVelocityExample , a następnie rozszerz jego dziecko LilyPad_DIY model.
Włóż załącznik do siatki Płyty .
- Najedź na siatkę i kliknij przycisk ⊕. Wyświetla się menu kontekstowe.
- Z menu wstawь załącznik . Załącznik wyświetla się w środku części.
- Zmień nazwę załącznika na MoveAttachment .
Konfiguruj ograniczenie
Teraz, gdy twoja siatka ma stały punkt, aby przesunąć podkładkę lilii, możesz skonfigurować właściwości ograniczenia LinearVelocity, aby określić kierunek i wielkość prędkości liniowej stałej, ilość szpil, jaką chcesz, aby siatka przesuwała na sekundę, oraz maksymalną ilość siły, jaką silnik może zastosować dla siatki, aby osiągnąć stałą prędkość liniową.
Próbne doświadczenie Poruszające się obiekty ma zastosowanie do 5000 Rowtons stałej siły, aby przenieść podkład lilii 15 szpilkami na sekundę wzdłuż negatywnej osi X na świecie przy stałej prędkości liniowej.Rowtony są głównymi fizycznymi jednostkami Roblox do mierzenia siły.Aby odwołać się do jednostek fizycznych Roblox i sposobu, w jaki są one przekształcane na jednostki metryczne, zobacz Jednostki Roblox.
Aby skonfigurować ograniczenie LinearVelocity:
(Opcjonalnie) Spraw, aby ograniczenie było widoczne w przestrzeni 3D, abyś mógł odwołać się do jego liniowego kierunku.
- Przejdź do zakładki Model w pasku narzędzi, a następnie do sekcji Ograniczenia .
- Jeśli nie jest obecnie włączony, kliknij Szczegóły ograniczeń , aby wyświetlić wizualne pomoce ograniczeń.
Wprowadź ograniczenie LinearVelocity do siatki Pad .
- W oknie Eksploratora przewiń po siatce, a następnie kliknij ikonę ⊕. Wyświetli się menu kontekstowe.
- Z menu kontekstowego wstaw Prędkość liniową .
Przydziel przypisanie siatki do nowego ograniczenia.
- W oknie Eksploratora wybierz ograniczenie.
- W oknie Właściwości ,
- Ustaw załącznik0 na przesunięcie załącznika .
- Ustaw Maksymalną siłę na 5000.
- Zostaw RelativeTo do Świata , aby przenieść podkładkę lilii względem pozycji i orientacji świata.
- Ustaw Ograniczenie prędkości do Linii , aby ograniczyć siłę wzdłuż linii z przyłącznika.
- Ustaw kierunek linii na -1, 0, 0 aby przenieść podkładkę lilii wzdłuż negatywnej osi X na świecie.Zauważ, że jeśli ustawisz tę właściwość na 1, 0, 0 pływak lilii przesunie się wzdłuż pozytywnej osi X na świecie.
- Ustaw Prędkość linii na 15, aby przenieść podkładkę lilii o 15 szpilkami na sekundę.
Zweryfikuj ilość siły, którą ustawiasz, przesuwa siatkę 15 szpilkami na sekundę wzdłuż negatywnej osi X na świecie.
- W pasku narzędzi przełącz się na zakładkę Test .
- Wybierz Uruchom z trybów testowania gry. Studio symuluje doświadczenie w obecnej pozycji kamery bez twojego awatara w przestrzeni 3D.
Użyj ograniczeń PrismaticConstraint
PrismaticConstraint obiekty są rodzajem ograniczenia mechanicznego tworzącego sztywny połączenie między dwoma załącznikami, umożliwiające ich rodzicznym zespołom poruszanie się wzdłuż jednego osi względem siebie .Zablokowując pozycję obu zbiorów do jednej osi, każdy zbiór może się obracać tylko wtedy, gdy obraca się razem w tym samym kierunku.
Tego typu ruch prowadzi do stabilnych scenariuszy rozgrywki, które są łatwiejsze do przewidzenia dla graczy.Na przykład doświadczenie próbne Poruszające się obiekty używa PrismaticConstraint, aby przenieść platformy logistyczne, które gracze mogą używać, aby ostrożnie przekroczyć rzekę giganta.
Gdy ustawisz PrismaticConstraint.ActuatorType na Silnik , ograniczenie to zostanie zastosowane na dwóch załącznikach z celem osiągnięcia i utrzymania stałej prędkości liniowej.Jeśli zakotwisz jedną z rodziczych zbiorów załączników, siła nadal przenosi niezakotwiczoną zbiórkę z prędkością liniową stałą, podczas gdy zakotwiczone zbiórki pozostają stałe.
Aby rozpocząć przesuwanie złożenia, ograniczenie PrismaticConstraint musi wiedzieć:
- Punkt i pozytywny lub negatywny kierunek zastosowania siły.
- Ilość szpil, które chcesz, aby akcesoria poruszały się na sekundę.
- Maksymalna ilość siły, jaką silnik może zastosować do załączników i ich zestawów rodziców, aby osiągnąć stałą liniową prędkość.
Aby pokazać ten proces, skonfigurujesz zbiór logów z dwoma obiektami, które mają załączniki dzieci, które przesuwają log 40 ćwieków na sekundę wzdłuż negatywnej osi X świata przy stałej liniowej prędkości.

Konfiguruj załączniki
Możesz określić kierunek przesuwania określonego obiektu w ramach złożenia, dodając dwa Attachment obiekty do złożenia, a następnie skonfigurując ich wyważenie i orientację w przestrzeni 3D.Próbne doświadczenie Poruszające się obiekty zbliża dwa załączniki wzdłuż osi X świata w pobliżu pozycji, w której niezakotwiczone log pokrywa się z zakotwiczoną częścią, i skierowuje główny osi każdego załącznika w stronę negatywnej osi X świata.
Kiedy skonfigurujesz ograniczenie PrismaticConstraint w następnej sekcji, przeniesie ono dziennik w stosunku do części przyczepionej.Innymi słowy, dziennik odpowie od stałej części, która nie może się poruszać, ponieważ jest zakotwiczone w przestrzeni 3D.
Aby skonfigurować załączniki dla ograniczenia pryzmatycznego:
W oknie Eksploratora rozszerz katalog PrismaticConstraintExample , a następnie rozszerz jego dziecko Log_DIY model.
Włóż załącznik do siatki Log .
- Najedź na siatkę i kliknij przycisk ⊕. Wyświetla się menu kontekstowe.
- Z menu wstawь załącznik . Załącznik wyświetla się w środku części.
- Zmień nazwę załącznika na LogAttachment .
Używając tego samego procesu, włóż załącznik do części Kotwica , a następnie zmień nazwę załącznika Kotwica附加 .
Używając narzędzia Wybór selektora jako odniesienia dla koordynatów świata, obróć LogAttachment i Ankor attachment, aż każda osoba załączona będzie skierowana w stronę negatywnej osi X świata
Przenieś przyłącze zakotwiczenia , tak aby oba przyłącza były wy齐świetlane na osi X świata.
Konfiguruj ograniczenie
Teraz, gdy twoje załączniki są zgodne na tej samej osi i skierowane w tym samym kierunku, w którym chcesz, aby log się poruszał, możesz skonfigurować właściwości ograniczenia PrismaticConstraint, aby określić, czy należy zastosować stałą prędkość liniową celu w pozytywnym lub negatywnym kierunku każdego załącznika, ilość szpil, jaką chcesz, aby załączniki poruszały się na sekundę, oraz maksymalną ilość siły, jaką silnik może zastosować dla osiągnięcia stałej prędkości liniowej.
Chociaż możesz wybrać różne wartości dla własnych przypadków użytkowych, doświadczenie próbne Przesuwanie obiektów stosuje do 50000 Rowtons stałej siły, aby przenieść załączniki 40 stopni na sekundę wzdłuż negatywnej osi X świata przy stałej prędkości liniowej.Jednak ponieważ załącznik kotwicy znajduje się w osadzonym obiekcie, tylko załącznik logu może się poruszać.
Aby skonfigurować ograniczenie pryzmatyczne:
Włóż obiekt PrismaticConstraint do siatki Log .
- W oknie Eksploratora przewiń po siatce, a następnie kliknij ikonę ⊕. Wyświetli się menu kontekstowe.
- Z menu kontekstowego wstaw PrismaticConstraint .
Nadaj załączniki dziennika do nowego ograniczenia, tak aby dziennik przesuwał się w stosunku do zakotwiczonej części bloku.
- W oknie Eksploratora wybierz ograniczenie.
- W oknie Właściwości ,
- Ustaw załącznik0 na AnchorAttachment .
- Ustaw załącznik1 na LogAttachment . Ograniczenie wyświetla się w oknie widoku.
W oknie Eksploratora wybierz ograniczenie, a następnie w oknie Właściwości,
- Ustaw Typ aktywatora na Silnik . Nowe pola właściwości są wyświetlane.
- Ustaw MotorMaxForce na 50000 , aby zastosować do 50000 Newtonów stałej siły, aby osiągnąć docelową prędkość liniową.
- Ustaw Prędkość na 40 aby przesuwać dziennik 40 szpilkami na sekundę.
Zweryfikuj ilość siły, którą ustawiasz, przesuwa log 40 szpilkami wzdłuż negatywnej osi X na świecie na sekundę.
- W pasku narzędzi przełącz się na zakładkę Test .
- Wybierz Uruchom z trybów testowania gry. Studio symuluje doświadczenie w obecnej pozycji kamery bez twojego awatara w przestrzeni 3D.
Zastosuj początkową liniową siłę
Innym sposobem zmiany prędkości liniowej obiektu jest zastosowanie impulsu siły.Po impulsu siły obiekt zdezakceleruje się, aż stanie się statyczny, jeśli wystąpi siła sprzeczna, tak jak tarcia, lub pozostanie w ruchu z stałą prędkością liniową, jeśli nie ma żadnej siły sprzecznej.
Technika ta jest przydatna do przesuwania obiektów po znaczącym wydarzeniu rozgrywkowym, takim jak wybuch lub uderzeniowa kolizja, ponieważ zapewnia graczom natychmiastową informację zwrotną.Aby pokazać, następująca podsekcja nauczy Cię, jak uruchomić postać gracza w górę w kierunku nieba, gdy zderzy się z podkładką skoku z początkowym impulsem, który możesz dostosować za pomocą nowych wartości, aby spełnić wymagania dotyczące gry.
Użyj ApplyImpulse
Metoda ApplyImpulse zapewnia siłę na całej złożeniu, aby uzyskać początkową liniową prędkość przed spowolnieniem do zatrzymania, gdy pojawią się siły sprzeciwne.Aby rozpocząć przesuwanie złożenia, metoda musi wiedzieć:
- Zbiór do przesunięcia.
- Oś, na której należy zastosować siłę, aby osiągnąć początkową liniową prędkość.
- Ilość siły, którą należy zastosować do każdej osi.
Możesz zdefiniować wszystkie te wartości w skrypcie.Na przykład, przykładowy skrypt określa złożenie, które ma się poruszać jako obiekt postaci gracza Humanoid, a następnie stosuje impuls siły, który wynosi 2500 sekund Rowtona, aby uruchomić gracza w górę na pozytywnej osi Y świata.Zauważ, że postacie graczy mają różną ilość masy, więc możesz potrzebować zwiększenia i zrównoważenia tej siły, aby uruchomić każdego gracza bez uruchamiania postaci graczy o mniejszej ilości masy zbyt wysoko.
Aby przesunąć złożenie za pomocą ApplyImpulse :
W oknie Eksploratora rozszerz katalog ApplyImpulseExample , a następnie rozszerz jego dziecko JumpPad_DIY model.
Wstaw skrypt do części JumpPad .
- Najedź na część i kliknij przycisk ⊕. Wyświetla się menu kontekstowe.
- Z menu wstawь Skrypt . Załącznik wyświetla się w środku części.
- Zmień nazwę skryptu na JumpScript .
Zastąp domyślny kod następującym kodem:
local volume = script.Parentlocal function onTouched(other)local impulse = Vector3.new(0, 2500, 0)local character = other.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")if humanoid and other.Name == "LeftFoot" thenother:ApplyImpulse(impulse)endendvolume.Touched:Connect(onTouched)