Tworzenie poruszających się obiektów

*Ta zawartość została przetłumaczona przy użyciu narzędzi AI (w wersji beta) i może zawierać błędy. Aby wyświetlić tę stronę w języku angielskim, kliknij tutaj.

Poruszające się obiekty to obiekty, które poruszają się wzdłuż jednej lub więcej osi w przestrzeni 3D. Wykorzystując wbudowaną moc silnika symulacji Roblox, możesz sprawić, że obiekty będą się poruszać i wchodzić w interakcje z ich otoczeniem w sposób, który emuluje rzeczywiste zachowanie fizyczne, które jest znajome i intuicyjne dla graczy, takie jak grawitacja, aerodynamika i tarcie.

Korzystając z pliku Moving Objects .rbxl jako odniesienia, ten samouczek wyjaśnia, jak siły fizyczne wpływają na ruch liniowy w Studio, i pokazuje różne techniki poruszania obiektami z punktu A do punktu B w twoich grach z różnym zachowaniem ruchu, w tym wskazówki dotyczące:

  • Używania ograniczenia LinearVelocity, aby poruszać całą zespołem z stałą prędkością liniową.
  • Używania PrismaticConstraint, aby ograniczyć zespół do jednej osi i poruszać go z stałą prędkością liniową w stosunku do punktu w przestrzeni 3D.
  • Używania metody ApplyImpulse, aby poruszać zespół z początkowym impulsem siły, tak aby zespół powoli zwalniał w czasie.

Ruch liniowy i siły fizyczne

Roblox Studio to silnik symulacji rzeczywistości, który emuluje zachowanie fizyczne w czasie rzeczywistym, więc aby przewidzieć, jak obiekty poruszające się liniowo mogą zachowywać się w grach, ważne jest, aby mieć ogólne zrozumienie, jak obiekty poruszają się w rzeczywistości w ruchu liniowym.

Ruch liniowy to ruch wzdłuż osi. Na przykład, gdy blok ma ruch liniowy, porusza się wzdłuż ustalonej osi.

Szary blok na ciemnym tle. Oś ruchu jest podświetlona i skierowana w lewo, co oznacza, że blok będzie poruszał się wzdłuż osi Y świata.

Ruch liniowy nie może istnieć bez zewnętrznych, fizycznych sił popychających lub ciągnących obiekty do ruchu. Zgodnie z pierwszą zasadą ruchu Newtona, obiekty stacjonarne pozostają stacjonarne, a poruszające się obiekty pozostają w ruchu z stałą prędkością, chyba że działają na nie zewnętrzne siły. Na przykład, stacjonarny blok pozostaje stacjonarny, chyba że siła fizyczna, taka jak wiatr, popycha go do ruchu.

Siła to miara kierunku i wielkości fizycznego popychu lub ciągu, który powoduje, że obiekty zmieniają swoją prędkość liniową wzdłuż osi. Zmiana prędkości jest znana jako przyspieszenie. Ta koncepcja jest szczególnie ważna dla poruszania się obiektów w Studio; im więcej siły zastosujesz do obiektów, tym szybciej przyspieszają.

Dzieje się tak, ponieważ siła musi być większa niż jakiekolwiek siły fizyczne, które działają w przeciwnym kierunku, takie jak grawitacja czy tarcie. Na przykład, jeśli umieścisz blok na metalowej płycie, fizyczna siła wiatru musi pokonać ilość tarcia z metalowej płyty, aby kontynuować przyspieszanie bloku. Jeśli siła wiatru nie jest znacznie większa niż tarcie z metalowej płyty, blok przyspiesza, ale wolniej niż w poprzednim przykładzie.

Szary blok na ciemnej szarej metalowej płycie z diagramem, który wskazuje, że blok będzie miał tarcie płyty, aby spowolnić ruch bloku z powodu wiatru.

Prędkość liniowa to miara ruchu obiektu, czyli jak szybko obiekt zmienia swoją pozycję wzdłuż osi w określonym czasie. Studio mierzy prędkość liniową w zależności od tego, ile studów obiekt porusza się na sekundę. Study to podstawowe jednostki fizyczne Roblox do mierzenia długości, a każdy stud odpowiada około 28 cm w rzeczywistości.

Szary blok na domyślnej teksturze 4x4 podstawy. Podświetlony jest pojedynczy sześcian studa.

Zrozumienie prędkości liniowej jest ważne dla projektowania rozgrywki, ponieważ pomaga określić, ile siły potrzebujesz, aby osiągnąć określoną prędkość dla swoich poruszających się obiektów. Na przykład, gdy chcesz wystrzelić obiekty w górę, ważne jest, aby rozważyć, jak musisz dostosować swoją siłę, aby pokonać grawitację w otoczeniu, aby obiekty poruszały się dokładnie.

Następujące sekcje zagłębiają się w te koncepcje, gdy uczysz się, jak poruszać obiektami z stałą lub początkową prędkością liniową z niezbędną siłą, aby pokonać wszelkie przeciwdziałające siły fizyczne w otoczeniu. Przeglądając te koncepcje fizyczne z nadchodzącymi technikami, możesz dokładniej przewidzieć, jak dostosować wartości właściwości, aby osiągnąć idealne zachowanie ruchu liniowego w Studio.

Utrzymanie stałej prędkości liniowej

Aby obiekt osiągnął i utrzymał stałą prędkość liniową, potrzebuje siły, aby pokonać wszelkie przeciwdziałające siły fizyczne, które albo spowalniają prędkość liniową obiektu, albo powodują, że obiekt pozostaje w spoczynku. Na przykład, jeśli chcesz, aby obiekt miał prędkość liniową [0, 12, 0] w Studio, potrzebujesz wystarczającej siły, aby obiekt osiągnął i utrzymał 12 studów na sekundę wzdłuż osi Y w swoim otoczeniu.

Ilość potrzebnej siły zależy nie tylko od przeciwdziałających sił fizycznych w samym otoczeniu, takich jak grawitacja i tarcie, ale także od samego obiektu. Na przykład, jeśli masz dwa obiekty o tym samym kształcie, które poruszają się wzdłuż tej samej osi, obiekt o większej masie wymaga więcej siły, aby osiągnąć to samo przyspieszenie liniowe.

Mały trójkąt ma małą masę, więc potrzebuje mniej siły, aby osiągnąć to samo przyspieszenie.
Duży trójkąt ma dużą masę, więc potrzebuje więcej siły, aby osiągnąć to samo przyspieszenie.

Następujące podsekcje wykorzystują zespoły o różnych kształtach i rozmiarach, aby nauczyć cię, jak poruszać całym obiektem lub tylko częścią obiektu z stałą prędkością liniową. Eksperymentując z różnymi wartościami właściwości, nauczysz się, jak oszacować maksymalną ilość siły, której potrzebujesz dla zespołów w swoich własnych grach.

Użyj ograniczeń LinearVelocity

Obiekty LinearVelocity to rodzaj ograniczenia ruchu, które stosują siłę na cały zespół, aby utrzymać stałą prędkość liniową. Nie blokując pozycji zespołu na osi podczas jego ruchu, zespół ma swobodę obracania się, gdy zderza się z innymi obiektami w przestrzeni 3D. Tego rodzaju ruch prowadzi do zaskakujących scenariuszy rozgrywki, które są trudniejsze do przewidzenia dla graczy.

Gdy lilie zderzają się ze sobą, zmieniają orientację, ale nadal płyną w dół rzeki z stałą prędkością liniową.

Aby rozpocząć ruch zespołu, ograniczenie LinearVelocity musi wiedzieć:

  • Punkt i dodatni lub ujemny kierunek, w którym należy zastosować siłę.
  • Ilość studów, które chcesz, aby zespół poruszał się na sekundę.
  • Maksymalna ilość siły, którą silnik może zastosować, aby zespół osiągnął stałą prędkość liniową.

Aby zademonstrować ten proces, skonfigurujesz lilię z załącznikiem, do którego odnosi się ograniczenie LinearVelocity, aby poruszać lilią z prędkością 15 studów na sekundę wzdłuż ujemnej osi X świata z stałą prędkością liniową.

Zbliżenie na lilię. Wizualna pomoc ograniczenia lilii jest widoczna i wskazuje w prawo, co jest ujemną osią X świata.

Dodaj załącznik

Możesz określić punkt, w którym należy zastosować siłę, dodając obiekt Attachment do zespołu, a następnie konfigurując pozycję załącznika w przestrzeni 3D. Przykładowa gra Moving Objects umieszcza załącznik w centrum lilii, aby ograniczenie mogło poruszać siatką z załącznika wzdłuż określonej osi.

Załączniki zawierają wizualne pomoce, które pomagają zobaczyć ich osie ruchu. Żółta strzałka oznacza główną oś załącznika, a pomarańczowa strzałka oznacza drugą oś załącznika. Chociaż żadna z osi ruchu nie wpływa na ruch lilii w krokach tej techniki, ważne jest, aby zrozumieć te wizualne pomoce na przyszłość, ponieważ mogą pomóc w określeniu idealnego zachowania dla różnych typów ograniczeń, takich jak PrismaticConstraint w następnej technice.

Strzałki wizualnej pomocy załącznika. Żółta strzałka, która oznacza główną oś załącznika, wskazuje w górę, a pomarańczowa strzałka, która oznacza drugą oś załącznika, wskazuje w prawo.

Aby dodać załącznik:

  1. W oknie Explorer rozwiń folder LinearVelocityExample, a następnie rozwiń jego model LilyPad_DIY.

  2. Wstaw załącznik do siatki Pad.

    1. Najedź na siatkę i kliknij przycisk ⊕. Wyświetli się menu kontekstowe.
    2. Z menu wstaw Attachment. Załącznik wyświetli się w centrum części.
    3. Zmień nazwę załącznika na MoveAttachment.
    Zbliżenie na lilię i jej wizualną pomoc załącznika. Główna oś wskazuje w stronę kamery, a druga oś wskazuje w górę.

Skonfiguruj ograniczenie

Teraz, gdy twoja siatka ma ustalony punkt do poruszania lilią, możesz skonfigurować właściwości ograniczenia LinearVelocity, aby określić kierunek i wielkość dla stałej prędkości liniowej, ilość studów, które chcesz, aby siatka poruszała się na sekundę, oraz maksymalną ilość siły, którą silnik może zastosować, aby siatka osiągnęła stałą prędkość liniową.

Przykładowa gra Moving Objects stosuje do 5000 Rowtonów stałej siły, aby poruszać lilią 15 studów na sekundę wzdłuż ujemnej osi X świata z stałą prędkością liniową. Rowtony to podstawowe jednostki fizyczne Roblox do mierzenia siły. Aby odwołać się do jednostek fizycznych Roblox i jak przeliczają się na jednostki metryczne, zobacz Jednostki Roblox.

Aby skonfigurować ograniczenie LinearVelocity:

  1. Aby uczynić ograniczenie widocznym w widoku, abyś mógł odwołać się do jego kierunku liniowego, włącz Pokaż szczegóły ograniczenia z menu Widok w Studio.

  2. Wstaw ograniczenie LinearVelocity do siatki Pad.

    1. W oknie Explorer najedź na siatkę, a następnie kliknij ikonę ⊕. Wyświetli się menu kontekstowe.
    2. Z menu kontekstowego wstaw LinearVelocity.
  3. Przypisz załącznik siatki do nowego ograniczenia.

    1. W oknie Explorer wybierz ograniczenie.
    2. W oknie Właściwości,
      1. Ustaw Attachment0 na MoveAttachment.
      2. Ustaw MaxForce na 5000, aby zastosować do 5000 Rowtonów stałej siły, aby osiągnąć docelową prędkość liniową.
      3. Utrzymaj RelativeTo na World, aby poruszać lilią w stosunku do pozycji i orientacji świata.
      4. Ustaw VelocityConstraint na Line, aby ograniczyć siłę wzdłuż linii od załącznika.
      5. Ustaw LineDirection na -1, 0, 0, aby poruszać lilią wzdłuż ujemnej osi X świata. Zauważ, że jeśli ustawisz tę właściwość na 1, 0, 0, lilia poruszy się wzdłuż dodatniej osi X świata.
      6. Ustaw LineVelocity na 15, aby poruszać lilią 15 studów na sekundę.
    Zbliżenie na lilię i jej wizualną pomoc ograniczenia, która wskazuje w prawo, czyli w ujemną oś X świata.
  4. Zweryfikuj, czy ilość siły, którą ustawiłeś, porusza siatkę 15 studów na sekundę wzdłuż ujemnej osi X świata.

    • Wybierz tryb symulacji Run z rozwijanego menu mezzaniny i kliknij przycisk Play, aby rozpocząć. Studio symuluje grę w aktualnej pozycji kamery bez twojej postaci w przestrzeni 3D.

      Opcja Run w rozwijanym menu trybów testowych mezzaniny Studio.

Użyj ograniczeń PrismaticConstraint

Obiekty PrismaticConstraint to rodzaj ograniczenia mechanicznego, które tworzą sztywny staw między dwoma załącznikami, pozwalając ich rodzicom na poruszanie się wzdłuż jednej osi względem siebie. Blokując pozycję obu zespołów na jednej osi, każdy zespół może obracać się tylko wtedy, gdy obracają się razem w tym samym kierunku.

Tego rodzaju ruch prowadzi do stabilnych scenariuszy rozgrywki, które są łatwiejsze do przewidzenia dla graczy. Na przykład, przykładowa gra Moving Objects używa obiektów PrismaticConstraint, aby poruszać platformami z kłodami, które gracze mogą używać do ostrożnego przechodzenia przez wielką rzekę.

Gdy ustawisz PrismaticConstraint.ActuatorType na Motor, to ograniczenie stosuje siłę na dwa załączniki z celem, aby załączniki osiągnęły i utrzymały stałą prędkość liniową. Jeśli zakotwiczysz jeden z załączników, siła nadal porusza niezakotwiczony zespół z stałą prędkością liniową, podczas gdy zakotwiczony zespół pozostaje w spoczynku.

Aby rozpocząć ruch zespołu, ograniczenie PrismaticConstraint musi wiedzieć:

  • Punkt i dodatni lub ujemny kierunek, w którym należy zastosować siłę.
  • Ilość studów, które chcesz, aby załączniki poruszały się na sekundę.
  • Maksymalna ilość siły, którą silnik może zastosować, aby załączniki i ich rodzice osiągnęli stałą prędkość liniową.

Aby zademonstrować ten proces, skonfigurujesz zespół kłód z dwoma obiektami, które mają dzieci załączniki, do których odnosi się PrismaticConstraint, aby poruszać kłodę 40 studów na sekundę wzdłuż ujemnej osi X świata z stałą prędkością liniową.

Zbliżenie na brązową kłodę na rzece. Wizualna pomoc ograniczenia kłody jest widoczna i wskazuje w prawo, czyli w ujemną oś X świata.

Skonfiguruj załączniki

Możesz określić kierunek, w którym ma poruszać się dany obiekt w zespole, dodając dwa obiekty Attachment do zespołu, a następnie konfigurując ich wyrównanie i orientację w przestrzeni 3D. Przykładowa gra Moving Objects wyrównuje dwa załączniki wzdłuż osi X świata w pobliżu pozycji, w której niezakotwiczona kłoda pokrywa się z zakotwiczonym elementem, i orientuje główną oś każdego załącznika w kierunku ujemnej osi X świata.

Gdy skonfigurujesz swoje ograniczenie PrismaticConstraint w następnej sekcji, poruszy ono kłodę w odniesieniu do zakotwiczonej części. Innymi słowy, kłoda będzie poruszać się z dala od stacjonarnej części, która nie może się poruszać, ponieważ jest zakotwiczona w przestrzeni 3D.

Aby skonfigurować załączniki dla ograniczenia pryzmatycznego:

  1. W oknie Explorer rozwiń folder PrismaticConstraintExample, a następnie rozwiń jego model Log_DIY.

  2. Wstaw załącznik do siatki Log.

    1. Najedź na siatkę i kliknij przycisk ⊕. Wyświetli się menu kontekstowe.
    2. Z menu wstaw Attachment. Załącznik wyświetli się w centrum części.
    3. Zmień nazwę załącznika na LogAttachment.
    Zbliżenie na kłodę i jej wizualną pomoc załącznika. Główna oś wskazuje w stronę kamery, a druga oś wskazuje w górę.
  3. Używając tego samego procesu, wstaw załącznik do części Anchor, a następnie zmień nazwę załącznika na AnchorAttachment.

    Zbliżenie na kłodę i dwa wizualne pomoce załączników. Główna oś nowej wizualnej pomocy załącznika wskazuje w prawo, a druga oś wskazuje w górę.
  4. Użyj narzędzia View Selector jako odniesienia do współrzędnych świata, obróć LogAttachment i AnchorAttachment, aż główna oś każdego załącznika będzie skierowana w stronę ujemnej osi X świata.

    Zbliżenie na kłodę i jej wizualną pomoc załącznika. Oba załączniki mają główną oś, która wskazuje w prawo, a drugą oś, która wskazuje w górę.
  5. Przesuń AnchorAttachment, aby oba załączniki były wyrównane wzdłuż osi X świata.

    Zbliżenie na kłodę i jej wizualne pomoce załączników, które są teraz ustawione poziomo. Oba załączniki mają główną oś, która wskazuje w prawo, a drugą oś, która wskazuje w górę.

Skonfiguruj ograniczenie

Teraz, gdy twoje załączniki są wyrównane na tej samej osi i skierowane w tym samym kierunku, w którym chcesz, aby kłoda się poruszała, możesz skonfigurować właściwości ograniczenia PrismaticConstraint, aby określić, czy zastosować docelową stałą prędkość liniową w dodatnim lub ujemnym kierunku głównej osi każdego załącznika, ilość studów, które chcesz, aby załączniki poruszały się na sekundę, oraz maksymalną ilość siły, którą silnik może zastosować, aby kłoda osiągnęła stałą prędkość liniową.

Chociaż możesz wybrać różne wartości dla swoich własnych przypadków użycia, przykładowa gra Moving Objects stosuje do 50000 Rowtonów stałej siły, aby poruszać załącznikami 40 radianów na sekundę wzdłuż ujemnej osi X świata z stałą prędkością liniową. Jednak ponieważ załącznik zakotwiczony jest w zakotwiczonym obiekcie, tylko załącznik kłody może się poruszać.

Aby skonfigurować ograniczenie pryzmatyczne:

  1. Wstaw obiekt PrismaticConstraint do siatki Log.

    1. W oknie Explorer najedź na siatkę, a następnie kliknij ikonę ⊕. Wyświetli się menu kontekstowe.
    2. Z menu kontekstowego wstaw PrismaticConstraint.
  2. Przypisz załączniki kłody do nowego ograniczenia, aby kłoda poruszała się w odniesieniu do zakotwiczonej części bloku.

    1. W oknie Explorer wybierz ograniczenie.
    2. W oknie Właściwości,
      1. Ustaw Attachment0 na AnchorAttachment.
      2. Ustaw Attachment1 na LogAttachment. Ograniczenie wyświetli się w widoku.
    Zbliżenie na kłodę i jej wizualną pomoc ograniczenia. Nie ma wizualnej pomocy strzałki, ponieważ nie ma jeszcze ustawionej prędkości.
  3. W oknie Explorer wybierz ograniczenie, a następnie w oknie Właściwości:

    1. Ustaw ActuatorType na Motor. Wyświetlą się nowe pola właściwości.
    2. Ustaw MotorMaxForce na 50000, aby zastosować do 50000 Rowtonów stałej siły, aby osiągnąć docelową prędkość liniową.
    3. Ustaw Velocity na 40, aby poruszać kłodę 40 studów na sekundę.
    Zbliżenie na kłodę i jej wizualną pomoc ograniczenia, która wskazuje w prawo, czyli w ujemną oś X świata.
  4. Zweryfikuj, czy ilość siły, którą ustawiłeś, porusza kłodę 40 studów na sekundę wzdłuż ujemnej osi X świata.

    • Wybierz tryb symulacji Run z rozwijanego menu mezzaniny i kliknij przycisk Play, aby rozpocząć. Studio symuluje grę w aktualnej pozycji kamery bez twojej postaci w przestrzeni 3D.

      Opcja Run w rozwijanym menu trybów testowych mezzaniny Studio.

Zastosuj początkową siłę liniową

Innym sposobem zmiany prędkości liniowej obiektu jest zastosowanie impulsu siły. Po impulsie siły obiekt albo zwalnia, aż stanie się stacjonarny, jeśli istnieje siła przeciwdziałająca, taka jak tarcie, albo pozostaje w ruchu z stałą prędkością liniową, jeśli nie ma żadnych sił przeciwdziałających.

Ta technika jest przydatna do poruszania obiektami po znaczącym wydarzeniu w grze, takim jak eksplozja lub uderzenie, ponieważ zapewnia graczom natychmiastową informację zwrotną. Aby to zademonstrować, w następnej podsekcji nauczysz się, jak wystrzelić postać gracza w górę w kierunku nieba, gdy zderzy się z platformą skaczącą z początkowym impulsem, który możesz dostosować do nowych wartości, aby spełnić własne wymagania dotyczące rozgrywki.

Użyj ApplyImpulse

Metoda ApplyImpulse stosuje siłę na cały zespół, aby uzyskać początkową prędkość liniową, zanim zwolni do zatrzymania, gdy występują siły przeciwdziałające. Aby rozpocząć ruch zespołu, metoda musi wiedzieć:

  • Zespół do poruszenia.
  • Oś, na którą należy zastosować siłę, aby osiągnąć początkową prędkość liniową.
  • Ilość siły do zastosowania na każdej osi.

Możesz zdefiniować wszystkie te wartości w skrypcie. Na przykład, przykładowy skrypt definiuje zespół do poruszenia jako obiekt Humanoid postaci gracza, a następnie stosuje impuls siły równy 2500 Rowton-sekund, aby wystrzelić gracza w górę wzdłuż dodatniej osi Y świata. Zauważ, że postacie graczy mają różne ilości masy, więc możesz potrzebować zwiększyć i zrównoważyć tę siłę, aby wystrzelić każdego gracza, nie wystrzeliwując postaci graczy o mniejszej masie zbyt wysoko.

Aby poruszyć zespół za pomocą ApplyImpulse:

  1. W oknie Explorer rozwiń folder ApplyImpulseExample, a następnie rozwiń jego model JumpPad_DIY.

  2. Wstaw skrypt do części JumpPad.

    1. Najedź na część i kliknij przycisk ⊕. Wyświetli się menu kontekstowe.
    2. Z menu wstaw Script. Załącznik wyświetli się w centrum części.
    3. Zmień nazwę skryptu na JumpScript.
  3. Zastąp domyślny kod następującym kodem:

    local volume = script.Parent
    local function onTouched(other)
    local impulse = Vector3.new(0, 2500, 0)
    local character = other.Parent
    local humanoid = character:FindFirstChildWhichIsA("Humanoid")
    if humanoid and other.Name == "LeftFoot" then
    other:ApplyImpulse(impulse)
    end
    end
    volume.Touched:Connect(onTouched)
©2026 Roblox Corporation. Nazwa Roblox, logo Roblox oraz hasło „Powering Imagination” należą do naszych zarejestrowanych i niezarejestrowanych znaków towarowych na terenie Stanów Zjednoczonych oraz w innych krajach.