Tworzenie ruchomych 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.

Przesuwane obiekty są obiektami, które przesuwane są na jednym lub więcej osiach w przestrzeni 3D. Używając wbudowanej mocy silnika simulacyjnego Roblox, możesz sprawić, że obiekty przesuwane są i interagują ze swoim otoczeniem w taki sposób, że imituje realne zachowanie fizyczne znane i intuicyjne dla graczy, takie jak grawitacja, siła powietrza i frkcja.

Używając pliku Przenoszenie Obiektów.rbxl jako referencji, ten samouczek wyjaśnia, jak siły fizyczne wpływają na liniową ruch 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 kierunki:

  • Używając ograniczenia pracy LinearVelocity można przesunąć całą zgromadzenie przy stałej prędkości liniowej.
  • Używając PrismaticConstraint do ograniczenia zestawu do jednego osi i przesunięcia go w stałej liniowej prędkości względem punktu w przestrzeni 3D.
  • Używając metody ApplyImpulse , aby przesunąć zgromadzenie z początkowym impulsem siły, aby zgromadzenie powoli zdecydowało się w czasie.

Liniowe ruchy i siły fizyczne

Roblox Studio to silnik symulacji rzeczywistego świata, który emuluje zachowanie fizyczne w czasie rzeczywistym, więc aby przewidzieć, jak obiekty poruszają się liniowo w doświadczeniach, ważne jest, aby mieć wysokiego poziomu zrozumienia tego, jak obiekty poruszają się w rzeczywistym życiu z liniowym ruchem. Liniowe ruchy są ruchami wzdłuż osi. Na przykład, gdy blok ma liniowe ruchy, to porusza się wzdłuż osi ustalonej.

A gray block in front of a dark background. The movement axis is highlighted, and it faces toward the left of the screen to signify that the block is going to move along the world's Y axis.

Liniowe ruchy nie mogą istnieć bez zewnętrznych, fizycznych sił napędowych naciskających lub przesuwających obiekty, aby się poruszać. Zgodnie z pierwszym prawem ruchu Newtona, stacjonarne obiekty pozostają stacjonarne i ruchome obiekty pozostają w ruchu z konstytucyjną prędkością, chyba że są one aktywowane przez zewnętrzną siłę, taką jak wiat

Siła jest mierzalną ilością kierunku i wielkości fizycznego pociągnięcia lub przycięcia, które powoduje, że obiekty zmieniają swoją liniową prędkość wzdług osi. Zmiana prędkości jest znana jako przyśpieszenie . Ten koncept jest szczególnie ważny dla obiektów do poruszania się w Studio; im więcej siły zastosujesz do obiektów, tym szybciej się one przyspieszą.

Dzieje się tak dlatego, że siła musi być większa niż jakiekolwiek siły fizyczne, które powodują powrót przeciwko obiektowi, takie jak grawitacja lub tarcia. Na przykład, jeśli umieścisz blok na metalowej płycie, siła fizyczna wiatru musi przezwyciężyć ilość tarcia z metalowej płyty, aby kontynuować przyspieszenie bloku. Jeśli siła w

A gray block in front of a dark grey metal plate with a diagram that signifies the block will have a plate friction to slow the block's movement from the wind.

Liniowa prędkość jest mierzalną wartością ruchu obiektu lub jak szybko obiekt zmienia pozycję w ciągu okresu czasu. Studio mierzy liniową prędkość według liczby jednostek przestrzeni, które przesuwa się na sekundę. Studs są podstawowymi jednostkami Robloxdo pomiaru długości i każdy stud równa się około 28cm w świecie rzeczywistej.

A gray block in front of the default baseplate's 4x4 grid texture. A single stud cube rectangle is highlighted.

Zrozumienie liniowej prędkości jest ważne dla zaprojektowania gry w swoich doświadczeniach, ponieważ pomaga to określić, ile siły potrzebujesz, aby osiągnąć określoną prędkość dla swoich ruchomych obiektów. Na instancja, gdy chcesz napędzać obiekty w górę, ważne jest, aby rozważyć, jak musisz dostosować swoją siłę, aby przezwyciężyć grawitację w środowisku, aby obiek

Następne sekcje wnikają głębiej w te koncepcje, gdy dowiadujesz się, jak przenieść obiekty w dowolnej konstante lub liniowej prędkości z wymaganą siłą, aby przezwyciężyć wszystkie fizyczne siły sprzeciwne w środowisko. Podczas gdy oglądasz te koncepcje fizyki z nadchodzącymi technikami, możesz bardziej dokładnie przewidzieć, jak dostosować wartości właściwości, aby uzyskać dowolną idealną lini

Utrzymywanie stałej prędkości liniowej

Aby obiekt osiągnął i utrzymał konstytucyjną liniową prędkość, potrzebuje siły, aby przezwyciężyć jakiekolwiek przeciwstawne siły fizyczne, które zdecydują o zmniejszeniu liniowej prędkości obiektu lub powodują jego stagnację. Na przykład, jeśli chcesz, aby obiekt miał liniową prędkość <

Ilość siły potrzebnej nie tylko zależy od przeciwległych sił fizycznych w środowisku samym w sobie, takich jak grawitacja i tarcia, ale również na samym obiekcie. Na przykład, jeśli masz dwa obiekty tego samego kształtu, które ruszają na tej samej osi, obiekt z większą ilością masy wymaga więcej siły, aby osiągnąć tę samą liniową akcelerację.

Mała część trójkąta ma niewielką ilość masy, więc potrzebuje mniej siły, aby osiągnąć tę samą akcelerację.
Duży trójkąt ma dużą ilość masy, więc potrzebuje więcej siły, aby osiągnąć tę samą akcelerację.

Poniższe poddziały używają zbiorów różnych kształtów i rozmiarów, aby nauczyć Cię, jak poruszać cały obiekt lub tylko część obiektu przy stałej prędkości liniowej. Podczas eksperymentowania z różnymi wartościami właściwości nauczysz się, jak oszacować maksymalną ilość siły, która jest potrzebna do zbiorów w swoich własnych doświadczeniach.

Używanie ograniczeń prędkości liniowej

LinearVelocity są rodzajem ograniczenia prędkości, które stosują siłę na całej konstrukcji, aby utrzymać stałą prędkość liniową. Poprzez niezablokowanie pozycji konstrukcji na osi podczas jej ruchu, konstrukcja jest wolna do obrotu, ponieważ koliduje z innymi obiektami w przestrzeni 3

Gdy pływające pady lilii kolidują ze sobą, zmieniają orientację, ale nadal płyną po rzece w stałej liniowej prędkości.

Aby rozpocząć poruszanie zestawu, LinearVelocity ograniczenie musi wiedzieć:

  • Kierunek i pozytywny lub ujemny punkt, aby zastosować siłę.
  • Liczba śrub, które chcesz, aby maszyna przesuwała na sekundę.
  • Maksymalna liczba siły, którą silnik może zastosować dla zgromadzenia, aby osiągnąć stałą liniową prędkość.

Aby pokazać ten proces, skonfigurujesz liliową płytę z załącznikiem, który odnosi się do LinearVelocity ograniczenia, aby przenieść liliową płytę 15 studs na sekundę wzdług pozytywnej osi X w świecie przy konstytucji liniowej.

A close up view of a lily pad. The lily pad's constraint visual aid is visible, and it points to the right, which is the world's negative X axis.

Dodaj załącznik

Możesz określić punkt do zastosowania siły, dodając obiekt Attachment do zestawu, a następnie skonfigurując pozycję przyczepy w przestrzeni 3D. Sampl Przyczepy ruchowe doświadcza przyczepy w centrum lilii pad, aby ograniczenie mogło przenieść siatkę z przyczepy wzdłuż określonej osi.

Akcesoria zapewniają pomoc wizualną, aby pomóc Ci wizualizować ich osie ruchu.Żółty стрелka określa główną osię przyczepu, a pomarańczowy стрелka określa drugorzędny osie ruchu.Podczas gdy obie osie ruchu nie wpływają na płytę lilii w krokach tego technologii, ważne

A attachment's visual aid arrows. The yellow arrow that signfies the attachment's primary axis points up, and the orange arrow that signfies the attachment's secondary axis points to the right.

Aby dodać załącznik:

  1. W oknie Explorer , rozwinięto LinearVelocityExample plik, a następnie rozwinięto jego dziecko LilyPad_DIY model.

  2. Utwórz załącznik w siatce Pad .

    1. Przytrzymajте kursor nad siecią i kliknijте przycisk ⊕. Wyświetli się menu kontekstowe.
    2. Z menu, wklej Załącznik . Załącznik wyświetla się w centrum części.
    3. Zmień nazwę załącznika na Przenieś załącznik .
    A close up view of a lily pad and its attachment visual aid. The primary axis points away from the camera, and the secondary axis points upward.

Konfiguruj ograniczenie

Teraz, gdy Twoja siatka ma stały punkt, aby przesunąć liliową płytę, możesz skonfigurować właściwości ograniczenia LinearVelocity, aby określić kierunek i wielkość dla stałej prędkości liniowej, ilość śrub, które chcesz, aby siatka przesuwały na sekundę, i maksymalną ilość siły, którą silnik może zastosować dla

Doświadczenie Przenoszące Objekty z wykorzystaniem 5000 Rowtonów siły konstytucyjnej, aby przenieść płytę lilii 15 jednostek dziennie na globalnym negatywnym rynku w konstytucyjnej prędkości liniowej. Rowtony są jednostkami fizycznymi Roblox'a dla pomiaru siły. Aby odnieść się do fizycznych jednostek

Aby skonfigurować ograniczenie LinearVelocity :

  1. (Opcjonalne) Uczyn kłębek widoczny w przestrzeni 3D, abyś mógł odnieść się do jego liniowej kierunku.

    1. W menu barze przeglądaj się do Modelu zakładki, a następnie sekcji Ograniczeń.
    2. Jeśli nie jest to obecnie włączone, kliknij Szczegóły ograniczeń , aby wyświetlić pomocniki wizualne ograniczeń.
    A close up view of the Studio's Constraints section UI.
  2. Umieść ograniczenie LinearVelocity w siatce Pad .

    1. W oknie Explorer , przytrzymaj kursor nad siecią, a następnie kliknij ikona⊕. Wyświetlany jest menu kontekstowe.
    2. Z menu kontekstowego wpisz Liniową prędkość .
  3. Przydziel plik z sieci do nowego ograniczenia.

    1. W oknie Explorer wybierz ograniczenie.
    2. W Oknie Proprietści ,
      1. Ustaw Attachment0 na MoveArrow .
      2. Ustaw Maksymalną siłę na 5000 aby zastosować do 5000 Rowtons siły konstytucyjnej, aby osiągnąć celową prędkość liniową.
      3. Zachowuj RelativeTo do World , aby przenieść płytę lilii względem pozycji i orientacji świata.
      4. Ustaw VelocityConstraint na Linię , aby ograniczyć siłę wzdłuż linii z załącznika.
      5. Ustaw Kierunek linii na -1, 0, 0 aby przesunąć lilię wzdłuż pozytywnego osi X świata. Uwaga, jeśli ustawisz tę właściwość na 1, 0, 0 lilię przesunie się wzdłuż pozytywnego osi X świata.
      6. Ustaw Prędkość linii na 15, aby poruszać liliową płytę 15 jednostek na sekundę.
    A close up view of a lily pad and its constraint visual aid arrow that points to the right, or the world's negative X axis.
  4. Zweryfikuj ilość siły, którą ustawiłeś, przenosi sieć 15 stopni na sekundę wzdługi X negatywnego wymiaru.

    1. W menu przeglądarki, przesuń się do Testuj zakładki.

    2. W sekcji Simulacja kliknij Wybieracz trybu. Wyświetla się menu spustoszenia.

      Rapid playtest options in Test tab of Studio
    3. Wybierz Biegnij . Studio symuluje doświadczenie w aktualnej pozycji kamery bez twojego awatara w przestrzeni 3D.

Używanie ograniczeń PrismaticConstraint

PrismaticConstraint obiekty są rodzajem ograniczenia mechanicznego, który tworzy elastyczne połączenie między dwoma załącznikami, umożliwiając, aby ich zestawy rodziców były ruchane po jednym osi względem siebie . Poprzez zablokowanie pozy obu zestawów na jednym osi tylko każdy zestaw może się kręci

Ten rodzaj ruchu prowadzi do stabilnych scenariuszy gry, które są łatwiejsze dla graczy do przewidzenia. Na przykład, doświadczenie Przenieś obiekty używa PrismaticConstraint obiektów, aby przenieść logową platformę, którą można użyć, aby ostrożnie przejść przez wielką rzekę.

Gdy ustawisz PrismaticConstraint.ActuatorType na Motor , ten konwercja stosuje siłę na dwóch załącznikach z celą ich osiągnięcia i utrzymania stałej prędkości liniowej. Jeśli przyczepisz jeden z załączników' zestawy rodziców, siła nadal porusza niezakotwiczone zestawy z prędkością liniową, podczas g

Aby rozpocząć ruch złożonego, PrismaticConstraint musi wiedzieć:

  • Kierunek i pozytywny lub ujemny punkt, aby zastosować siłę.
  • Liczba kolców, które chcesz, aby przesuwały się na sekundę.
  • Maksymalna siła, którą silnik może zastosować dla załączników i ich zestawów rodzicielskich, aby osiągnąć stałą liniową prędkość.

Aby pokazać ten proces, skonfigurujesz zestawienie logi z dwoma obiektami, które mają załączniki dzieci, które są odniesieniem do przenoszenia logu 40 jednostek na sekundę wzdłuż pozytywnej osi X w światowym sklepie na poziomie konstytucyjnym.

A close up view of a brown log on top of a river. The log's constraint visual aid is visible and points to the right, or the world's negative X axis.

Konfiguruj Załączniki

Możesz określić kierunek przesuwania określonego obiektu w złożeniu poprzez dostosowanie dwóch obiektów Attachment do złożenia, a następnie skonfiguruj ich alineę i orientację w przestrzeni 3D. Samouczek Przesuwanie obiektów doświadcza dwóch zał

Kiedy skonfigurujesz swoją PrismaticConstraint ograniczenie w następnym sekcji, będzie przesuwać się w stosunku do części ancorowej. Innymi słowy, log będzie się poruszać dalej od stacji naraz, która nie może się poruszać, ponieważ jest przywiązana do przestrzeni 3D.

Aby skonfigurować załączniki dla ograniczenia prismatycznego:

  1. W oknie Explorer , rozwinięcie PrismaticConstraintExample plików, a następnie rozwinięcie jego dziecka Log_DIY modelu.

  2. Umieść załącznik w siatce danych Log .

    1. Przytrzymajте kursor nad siecią i kliknijте przycisk ⊕. Wyświetli się menu kontekstowe.
    2. Z menu, wklej Załącznik . Załącznik wyświetla się w centrum części.
    3. Zmień nazwę załącznika na LogAmount .
    A close up view of a log and its attachment visual aid. The primary axis points toward the camera, and the secondary axis points upward.
  3. Używając tego samego procesu, wklej załącznik do części Zakotwiczka , a następnie zmień nazwę załącznika AnchorAppearance .

    A close up view of a log and two attachment visual aids. The primary axis of the new attachment visual aid points to the right, and the secondary axis points upward.
  4. Używając narzędzia Zobacz Selector jako referencji dla światowych koordynat, obróć LogArgument i AnchorAttachment do czasu, aż każde przywiązanie ma główną osię X

    A close up view of a log and its attachment visual aid. Both attachments have a primary axis that points to the right, and a secondary axis that points upward.
  5. Przenieś ZałącznikKolejny , aby obie załączniki były zgodne z osi X świata.

    A close up view of a log and its attachment visual aids that are now positioned horizontally. Both attachments have a primary axis that points to the right, and a secondary axis that points upward.

Konfiguruj ograniczenie

Teraz, gdy twoje załączniki są zgodne na tym samym osi i twarz tego samego kierunku, w którym chcesz, aby ruota się poruszała, możesz skonfigurować właściwości ograniczenia Class.PrismaticConstraint , aby określić, czy zastosować wartość konstantej prędkości liniowej w pozytywnej lub ujemnej kierunk

Podczas gdy możesz wybrać różne wartości dla własnych przypadków użycia, doświadczenie Przesuwanie obiektów doświadcza do 50000 Rowtons siły konstytucyjnej, aby przenieść załączniki 40 promieni dziennie na światowej linii siły po stałej prędkości liniowej. Jako że przyczepa przyczepy jest w związanym obiekcie, tylko przycz

Aby skonfigurować ograniczenie prismatyczne:

  1. Wprowadź obiekt PrismaticConstraint do siatki Log.

    1. W oknie Explorer , przytrzymaj kursor nad siecią, a następnie kliknij ikona⊕. Wyświetlany jest menu kontekstowe.
    2. Z menu kontekstowego wpisz PrismaticConstraint .
  2. Przydziel logowi załączniki do nowego ograniczenia, aby log przeszedł w związku z częścią zatrzymaną blokiem.

    1. W oknie Explorer wybierz ograniczenie.
    2. W Oknie Proprietści ,
      1. Ustaw Attachment0 na AnchorAttachment .
      2. Ustaw Attachment1 na LogAppearance . Ograniczenie wyświetlane jest w oknie widoku.
    A close up view of a log and its constraint visual aid. It doesn't have a arrow visual aid because it doesn't yet have a set velocity.
  3. W oknie Explorer , wybierz ograniczenie, a następnie w oknie Właściwości,

    1. Ustaw AktuatorTyp na Motor . Nowe pola właściwości wyświetlają się.
    2. Ustaw MotorMaxForce na 50000 , aby zastosować do 50000 Rowtons siły konstytucyjnej, aby osiągnąć celową prędkość liniową.
    3. Ustaw Prędkość na 40 , aby przesunąć dziennik 40 jednostek na sekundę.
    A close up view of a log and its constraint visual aid arrow that points to the right, or the world's negative X axis.
  4. Zweryfikuj ilość siły, którą ustawiłeś, porusza dziennik 40 jednostek co sekundę na obszarze negatywnego węzła X.

    1. W menu przeglądarki, przesuń się do Testuj zakładki.

    2. W sekcji Simulacja kliknij Wybieracz trybu. Wyświetla się menu spustoszenia.

      Rapid playtest options in Test tab of Studio.
    3. Wybierz Biegnij . Studio symuluje doświadczenie w aktualnej pozycji kamery bez twojego awatara w przestrzeni 3D.

Zastosowanie pierwszej siły liniowej

Innym sposobem zmiany liniowej prędkości obiektu jest stosowanie impulsu siły. Po impulsie siły obiekt zaciera się, aż staje się niezależny, jeśli istnieje przeciwdziałająca siła, tak jak fricción, lub pozostaje w ruchu z konstytucyjną prędkością, jeśli nie ma przeciwdziałających sił.

Ten technik jest przydatny do przenoszenia obiektów po znaczącym wydarzeniu gry, takim jak eksplozja lub silna kolizja, ponieważ daje graczom natychmiastową opinie. Aby pokazać, następny poddziałkę nauczy cię, jak uruchomić postać gracza w górę w kierunku nieba, gdy kolidują z wpadnięciem z początkowym impulsem, który możesz dostosować do wymagań gry w oparciu o nowe w

Używanie przycisku ApplyImpulse

Methode Class.BasePart.ApplyImpulse|ApplyImpulse przyjmuje siłę na całej zgromadzence, aby uzyskać początkową prędkość liniową przed spowolnieniem do zatrzymania, gdy są siły sprzeciwne. Aby rozpocząć ruch zgromadzenia, metoda musi wiedzieć:

  • Zestaw do przenoszenia.
  • Oś, na którą należy nakładać siłę, aby osiągnąć początkową liniową prędkość.
  • Ilość siły do zastosowania na każdym osi.

Możesz zdefiniować wszystkie te wartości w skrypcie. Na przykład, skrypt przykładowy zdefiniuje złożoną konstrukcję ruchu jako obiekt Humanoid gracza, a następnie zastosuje impuls siły, który wynosi 2500 Rowton-sekund, aby uruchomić gracza na boku na pozytyw

Aby przenieść zestaw używając ApplyImpulse :

  1. W oknie Explorer , rozwinięcie ApplyImpulseExample plików, a następnie rozwinięcie jego dziecka JumpPad_DIY modelu.
  2. Utwórz skrypt w części JumpPad .
    1. Następnie kliknij na część i kliknij przycisk ⊕. Wyświetli się menu kontekstowe.
    2. Z menu, wpisz Skrypt . Załącznik wyświetla się w centrum części.
    3. Zmień nazwę skryptu na JumpScript .
  3. Zastąp standardowy kod następujązym 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)