Bewegliche Objekte sind Objekte, die auf einem oder mehreren Achsen innerhalb des Platzbewegen. Mit der integrierten Kraft des SimulationsEngine von Roblox kannst du Objekte so bewegen und mit ihrem Umgebung interagieren, dass sie das reale physikalische Verhalten, das für Spieler vertraut und intuitiv ist, wie Schwerkraft, Aerodynamik und Reibung, emulieren.
Dieses Tutorial verwendet die Moving Objects.rbxl Datei als Referenz, erklärt, wie physische Kräfte linke Bewegungen in Studio beeinflussen, und zeigt Ihnen verschiedene Techniken, Objekte von Punkt A nach Punkt B in Ihren Erlebnissen mit verschiedenen Bewegungsverhaltens zu bewegen, einschließlich Anleitung:
- Verwendung eines LinearVelocity Mover-Konstraints, um eine gesamte Montagemaschine mit einer konstanten linearen Geschwindigkeit zu bewegen.
- Verwendung eines PrismaticConstraint, um eine Montagemaschine auf eine einzige Achse zu beschränken und sie mit einer konstanten linearen Geschwindigkeit im Verhältnis zu einem Punkt im Platzzu bewegen.
- Mit der Methode ApplyImpulse einenAssembly mit einem anfänglichen Impuls von Kraft, um dasAssembly langsam abzubremsen.
Liniale Bewegung und physische Kräfte
Roblox Studio ist ein realistischer Simulationsmotor, der das physische Verhalten in Echtzeit simuliert, so dass es wichtig ist, eine hohe Ebene zu verstehen, wie Objekte linearity bewegt sich in Erfahrungen, um zu vorhersagen, wie Objekte im wirklichen Leben mit linearen Bewegungen bewegt werden. Lineare Bewegung ist eine Bewegung entlang eines Achsen. Zum Beispiel bewegt sich ein Block linearl, wenn er eine lineare Bewegung hat.
Liniale Bewegungen können nicht existieren, ohne dass externe, physische Kräfte die Objekte nach unten ziehen oder nach oben ziehen, um sie zu Verschiebungswerkzeug. Laut Newton's erste Gesetz des Bewegens bleiben stationäre Objekte stationär und bewegliche Objekte in Bewegung mit konstanter Geschwindigkeit, es sei denn, sie werden von einer externen Kraft wie dem Wind aktiviert, um sie zu Verschiebungswerkzeug. Zum Beispiel bleibt ein stationärer Block still, bis ein physischer Kraft wie der Wind ihn bewegt.
Kraft ist die Messung der Richtung und der Intensität eines physischen Zuges oder Ziehens, der Objekte dazu bringt, ihre lineare Geschwindigkeit entlang eines Achsen zu ändern. Ein Ändern der Geschwindigkeit wird als Beschleunigung bekannt. Dieses Konzept ist besonders wichtig für Objekte, die in Studio bewegt werden; je mehr Kraft Sie auf Objekte anwenden, desto schneller beschleunigen sie.
Dies liegt daran, dass die Kraft größer sein muss als alle physischen Kräfte, die sich gegen das Objekt schieben, wie z. B. Schwerkraft oder Reibung. Zum Beispiel muss die physische Kraft des Windes die Menge der Reibung von der Metallplatte überwinden, um den Blöckeweiter zu beschleunigen. Wenn die Kraft des Windes nicht viel größer ist als die Reibung von der Metallplatte, beschleunigt sich der Block, nur langsamer als das vorherige Beisp
Lineargeschwindigkeit ist die Messung der Bewegung eines Objekts, oder wie schnell das Objekt seine Position entlang eines Zeitraums ändert. Studio misst Lineargeschwindigkeit nach der Anzahl der Studs pro Sekunde. Studs sind Roblox's primäre physischen Einheiten für die Messung der Länge und jedes Stud entspricht etwa 28cm in der realen Welt.
Die lineare Geschwindigkeit zu verstehen, ist wichtig, um das Gameplay in deinen Erlebnissen zu gestalten, da es hilft, wie viel Kraft du brauchst, um eine bestimmte Geschwindigkeit für deine beweglichen Objekte zu erreichen. Zum Instanzist es wichtig, wie du deine Kraft anpassen musst, um die Objekte in der Umgebung richtig zu bewegen.
Die folgenden Abschnitte gehen tiefer in diese Konzepte ein, da Sie lernen, wie Sie Objekte mit einer konstanten oder linearen Geschwindigkeit entweder mit der nötigen Kraft bewegen, um alle gegenüberliegenden physischen Kräfte innerhalb der Umgebung zu überwinden. Wenn Sie diese Physik Konzepte mit den bevorstehenden Techniken überprüfen, können Sie diese Eigenschaftswerte besser vorhersagen, um ein ideal lineares Bewegungsverhalten in Studio zu erreichen.
Eine konstante lineare Geschwindigkeit erhalten
Für ein Objekt, um eine konstante lineare Geschwindigkeit zu erreichen und zu erhalten, braucht es eine Kraft, um alle gegenüberliegenden physischen Kräfte zu überwinden, die entweder die lineare Geschwindigkeit des Objekts verlangsamen oder es dazu bringen, stationär zu bleiben. Zum Beispiel, wenn Sie ein Objekt in Studio haben möchten, dass eine lineare Geschwindigkeit von [0, 12, 0] in der
Die Menge an Kraft, die nicht nur innerhalb des Umfelds selbst, wie z. B. Schwerkraft und Reibung, benötigt wird, sondern auch auf das Objekt selbst basiert, ist zum Beispiel auf das Objekt mit der größeren Masse. Wenn Sie beispielsweise zwei Objekte desselben Formats auf demselben Achsen bewegen, benötigt das Objekt mit der größeren Masse mehr Kraft, um die gleiche lineare Beschleunigung zu erreichen.
Die folgenden Unterabschnitte verwenden Assemblagen von verschiedenen Formen und Größen, um dir zu zeigen, wie du ein ganzes Objekt oder nur einen Teil des Objekts mit konstanter linealer Geschwindigkeit bewegen kannst. Wenn du mit verschiedenen Eigenschaftswerten experimentierst, wirst du lernen, wie du die maximale Menge Kraft, die du für Assemblungen in deinen eigenen Erlebnissen benötigst, schätzen kannst.
Verwendung von linearen Geschwindigkeitsbeschränkungen
LinearVelocity Objekte sind eine Art Bewegungseinschränkung, die die Kraft auf eine gesamte Montage anwendet, um eine konstante lineare Geschwindigkeit zu gewährleisten. Indem Sie die Position der Montage nicht an einen Achse während ihres Bewegungsfalls an einen轴 ansteuern, ist die Montage frei zu drehen, da sie mit anderen Objekten im Platzkollidiert. Dieser Bewegungst
Um die Montage zu beginnen, muss die LinearVelocity Konstruktion wissen:
- Die Richtung und die positive oder negative Richtung, in die eine Kraft angewendet werden soll.
- Die Menge an Studs, die deine Montagemaschine pro Sekunde bewegen soll.
- Die maximale Menge an Kraft, die der Motor für die Montage anwenden kann, um die konstante lineare Geschwindigkeit zu erreichen.
Um diesen Prozess zu demonstrieren, konfigurieren Sie ein Lily-Pad mit einem Zubehör, das eine LinearVelocity-Einschränkung verwendet, um das Lily-Pad 15 Stunden pro Sekunde entlang der negativen X-Achse mit einer konstanten linearen Geschwindigkeit zu bewegen.
Anbauten hinzufügen
Du kannst den Punkt anwenden, indem du ein Attachment -Objekt zu der Montage hinzufügst und dann die Position des Anhangs im Platzkonfigurierst. Die Beispiel- Moving Objects -Erlebnisse platzieren ein Anhang in der Mitte des Lotus-Pads, damit der Beschränkung das Netzwerk entlang eines bestimmten Achses bewegen kann.
Zubehör sind visuelle Helfen, um Ihnen zu helfen, die Achsen ihrer Bewegungen zu sehen. Die gelbe Pfeil zeigt die Hauptachse des Anhangan, und der orange Pfeil zeigt die Sekundärachse des Zubehörs an. Während beide Achsen des Bewegens die Lily-Pad-Bewegung in den Schritten dieser Technik nicht beeinflussen, ist es wichtig, diese visuellen Helfen für z
Um ein Anhanghinzuzufügen:
In dem Explorer-Fenster , erweitern Sie den LinearVelocityExample Modellund dann erweitern Sie sein Kind LilyPad_DIY .
Fügen Sie ein Zubehör in das Pad Meshein.
- Bewegen Sie den Mauszeiger über das Netz und klicken Sie auf die Schaltfläche ⊕. Ein Kontextmenü wird angezeigt.
- Von dem Menü, fügen Sie ein Zubehörteil ein. Das Zubehörteil wird in der Mitte des Teils angezeigt.
- Benennen Sie das Zubehör in MoveAsset umbenennen.
Konfigürieren Sie Constraint
Jetzt, da dein Mesh einen festen Punkt hat, um das Abstandzu bewegen, kannst du die Eigenschaften eines LinearVelocity-Einschränkung konfigurieren, um die Richtung und die Größe für die konstante lineare Geschwindigkeit, die Anzahl der Stunden pro Sekunde, die Mesh bewegen möchte, und die maximale Anzahl von Kraft, die der Motor für das Mesh anwenden kann, zu bestimmen.
Die Moving Objects-Sammlung erfahrung gilt für bis zu 5000 Rowtons an konstanter Kraft, um die Lotus-Pad 15 Stunden pro Sekunde auf der negativen X-Achse in einer konstanten linearen Geschwindigkeit zu bewegen. Rowtons sind Roblox's primäre physikalischen Einheiten für die Messung der Kraft. Um auf Roblox-Physikalische Einheiten und wie sie in Metrischen Einheiten umgewandelt werden,
Um ein Class.LinearVelocityBeschränkungzu konfigurieren:
(Optional) Machen Sie den Constraint in der 3D-Ebene sichtbar, damit Sie auf seine lineare Richtung referenzieren können.
- In der Menüleiste, navigieren Sie zur Modell--Registerkarte, dann zur Einschränkungen--Sektion.
- Wenn es derzeit nicht aktiviert ist, klicken Sie auf Einschränkung-Details , um die Einschränkungsvisualhilfen anzuzeigen.
Fügen Sie ein Class.LinearVelocity Einschränkung in das Pad--Mesh ein.
- In dem Explorer-Fenster bewegen Sie den Mauszeiger über das Netz und klicken Sie dann auf das ⊕-Symbol. Ein Kontextmenü wird angezeigt.
- Vom Kontextmenü, fügen Sie LinearVelocity ein.
Weisen Sie dem Meshdie Beschränkungzu.
- In dem Explorer-Fenster , wählen Sie die Beschränkung.
- Im Eigenschaften -Fenster,
- Set Attachment0 to MoveAsset .
- Setzen Sie MaxForce auf 5000, um bis zu 5000 Rowtons konstanter Kraft zu erreichen, um die Zielgeschwindigkeit zu erreichen.
- Behalten Sie RelativeTo zu World , um das Lily-Pad относительно zur Position und Ausrichtung der Welt zu bewegen.
- Setze Geschwindigkeitseinschränkung auf Linie , um die Kraft entlang einer Linie vom Anhang zu begrenzen.
- Setzen Sie LineDirection auf -1, 0, 0 , um das Lotus-Pad entlang der negativen X-Achse der Welt zu bewegen. Beachten Sie, dass wenn Sie diese Eigenschaft auf 1, 0, 0 setzen, das Lotus-Pad entlang der positiven X-Achse der Welt bewegt sich.
- Setze LineVelocity auf 15, um das Lily-Pad pro Sekunde 15 Stunden zu bewegen.
Überprüfen Sie die Menge der Kraft, die Sie setzen, bewegt die Mesh 15 Stunden pro Sekunde entlang der negativen X-Achse der Welt.
In der Menüleiste navigiere zur Test- -Registerkarte.
In der Simulation--Sektion klicken Sie auf die Modus-Auswahl-. Ein Dropdown-Menü wird angezeigt.
Wählen Sie Run . Studio simuliert die Erfahrung an der aktuellen Kameraposition ohne Ihren Avatar im Platz.
Verwendung von PrismaticConstraint-Kon约束
PrismaticConstraint Objekte sind eine Art mechanische Einschränkung, die eine starre Verbindung zwischen zwei Anbauten erstellt, wodurch die Elternteile ihrer Assemblagier miteinander relativ verschieben können. Indem beide Anbauten in der gleichen Richtung drehen, kann jede Montage nur drehen, wenn sie in der gleichen Richtung drehen.
Diese Art der Bewegung führt zu stabilen Spielenszenarien, die für Spieler leichter zu vorhersagen sind. Zum Beispiel verwendet die Probe Bewegende Objekte -Objekte, um log Plattformen zu bewegen, die Spieler verwenden, um vorsichtig über einen riesigen Fluss zu fahren.
Wenn Sie PrismaticConstraint.ActuatorType auf Motor setzen, gilt diese Einschränkung auf die beiden Anhänge mit dem Ziel, dass die Anhänge erreichen und beibehalten eine konstante lineare Geschwindigkeit. Wenn Sie einen der Anhänge's Eltern montieren, bewegt die Kraft die unverankerte Montagemaschine weiterhin mit einer konstanten linearen Geschwindigkeit, während die verankerte Montagemaschine stationär bleibt
Um die Montage zu beginnen, muss der PrismaticConstraint-Konstrunktion wissen:
- Die Richtung und die positive oder negative Richtung, in die eine Kraft angewendet werden soll.
- Die Anzahl der Studs, die du möchtest, dass die Anhänge pro Sekunde bewegen.
- Die maximale Menge Kraft, die der Motor für die Anhänge und ihre Eltern montieren kann, um eine konstante lineare Geschwindigkeit zu erreichen.
Um diesen Prozess zu demonstrieren, konfigurieren Sie eine Log-Montage mit zwei Objekten, die Kinderschleifen haben, die eine PrismaticConstraint -Referenz verwenden, um das Log pro Sekunde entlang der negativen X-Achse in einer konstanten linearen Geschwindigkeit 40 Studs zu verschieben.
Anbauten konfigurieren
Sie können die Richtung angeben, in der ein bestimmtes Objekt innerhalb einer Montagemaschine bewegt werden soll, indem Sie zwei Attachment -Objekte zu der Montagemaschine hinzufügen und dann die Ausrichtung und Ausrichtung in der Platzkonfigurieren. Die Beispiel-Erlebnis Moving Objects -Sammlung montiert zwei Anhänge entlang der
Wenn Sie in der nächsten Sektion Ihre PrismaticConstraint-Einschränkung konfigurieren, bewegt das Log in Beziehung zur Ankerpart. In anderen Worten, das Log bewegt sich von der stationären Teil, die nicht bewegen kann, weil sie in der Platzverankert ist.
Um die Anhänge für die prismatische Beschränkungzu konfigurieren:
Im Explorer-Fenster , erweitern Sie den PrismaticConstraintExample -Ordner und dann erweitern Sie sein Kind Log_DIY -Modell.
Fügen Sie eine Anhang an das Log Mesh ein.
- Bewegen Sie den Mauszeiger über das Netz und klicken Sie auf die Schaltfläche ⊕. Ein Kontextmenü wird angezeigt.
- Von dem Menü, fügen Sie ein Zubehörteil ein. Das Zubehörteil wird in der Mitte des Teils angezeigt.
- Benennen Sie das Zubehör in Log附age um.
Verwenden Sie den gleichen Prozess, fügen Sie ein Zubehör an den Anker -Teil ein und benennen Sie das Zubehör dann Anchor附件 um.
Verwenden Sie das View Selector -Werkzeug als Referenz für die Weltkoordinaten, drehen Sie Logattachment und Anchorattachment , bis die Hauptachse eines jeden Anhangs auf die negative X-Achse der Welt zeigt
Reposition Anchorattachment , damit beide Anhänge auf der X-Achse der Welt ausgerichtet sind.
Konfigürieren Sie Constraint
Da Ihre Anhänge auf demselben Achsen ausgerrichtet sind und in Richtung desselben Ziels möchten, dass der Log das Verschiebungswerkzeugwerden soll, können Sie die Eigenschaften eines Class.PrismaticConstraint -Konstraints konfigurieren, um die Zielkonstante lineare Geschwindigkeit in der positiven oder negativen Richtung jedes Anhangs' Hauptachse, die Anzahl der Schrauben, die Sie pro Sekunde bewegt möchten, und die maxim
Während Sie verschiedene Werte für Ihre eigenen Anwendungsfälle auswählen können, gilt die Moving Objects -Sammlung für die Bewegung der Anhänge 40 Radian pro Sekunde auf der negativen X-Achse in einer konstanten linearen Geschwindigkeit über die gesamte Welt. Wenn der Anker-Anhang in einem verankerten Objekt ist, kann nur der Log-Anhang Verschiebungswerkzeugwerden.
Um ein Beschränkungzu konfigurieren:
Fügen Sie ein PrismaticConstraint Objekt in das Log- Meshein.
- In dem Explorer-Fenster bewegen Sie den Mauszeiger über das Netz und klicken Sie dann auf das ⊕-Symbol. Ein Kontextmenü wird angezeigt.
- Vom Kontextmenü, fügen Sie einen PrismaticConstraint ein.
Weisen Sie dem Log die zugewiesenen Zubehörteile des Logs zu, damit das Log in der Beziehung zu dem verankerten Blockteil bewegt wird.
- In dem Explorer-Fenster , wählen Sie die Beschränkung.
- Im Eigenschaften -Fenster,
- Set Attachment0 to Anchorattachment .
- Set Attachment1 to LogArgumente . The constraint displays in the Ansichtsfenster.
In dem Explorer-Fenster , wählen Sie die Beschränkung, dann in dem Eigenschaften-Fenster,
- Set ActuatorType to Motor . New property fields display.
- Setzen Sie MotorMaxForce auf 50000, um bis zu 50000 Rowtons konstanter Kraft zu erreichen, um die Zielgeschwindigkeit linearity zu erreichen.
- Setzen Sie Geschwindigkeit auf 40, um das Holz pro Sekunde zu bewegen 40 Studs pro Sekunde.
Überprüfen Sie die Menge an Kraft, die Sie einstellen, bewegt das Holz 40 Studs pro Sekunde entlang der negativen X-Achse der Welt.
In der Menüleiste navigiere zur Test- -Registerkarte.
In der Simulation--Sektion klicken Sie auf die Modus-Auswahl-. Ein Dropdown-Menü wird angezeigt.
Wählen Sie Run . Studio simuliert die Erfahrung an der aktuellen Kameraposition ohne Ihren Avatar im Platz.
Anwendung einer linearen Kraft anwenden
Eine andere Möglichkeit, die lineare Geschwindigkeit eines Objekts zu ändern, ist, einen Impuls von Kraft anzuwenden. Nach dem Impuls von Kraft wird das Objekt entweder abgesetzt, bis es stationär wird, wenn es einen gegenüberliegenden Kraft wie Reibung hat, oder bleibt in Bewegung mit konstanter linealer Geschwindigkeit, wenn es keine gegenüberliegenden Kräfte gibt.
Diese Technik ist nützlich, um Objekte nach einem wichtigen Spielereignis, wie einer Explosion oder einer makellosen Kollision, zu bewegen, da sie den Spielern sofortige Feedback bietet. Um zu demonstrieren, zeigt die folgende Untersektion, wie Sie einen Spieler:inin den Himmel schießen lassen, wenn er mit einem Sprung-Pad mit einem ursprünglichen Impuls kollidiert, den Sie mit neuen Werten anpassen können, um Ihren eigenen Spielanforderungen zu erfüllen.
Verwendung von ApplyImpulse
Die Methode ApplyImpulse gilt für ein gesamtes Montage, um eine ursprüngliche lineare Geschwindigkeit zu erhalten, bevor sie langsamer zu einer Stoppung verlangsamt, wenn es entgegengesetzte Kräfte gibt. Um das Montieren der Methode zu beginnen, muss die Methode wissen:
- Die Montagemaschine zum Verschiebungswerkzeug.
- Die Achse, um Kraft anzuwenden, um eine initiale lineare Geschwindigkeit zu erreichen.
- Die Menge an Kraft, die auf jede Achse angewendet werden soll.
Sie können all diese Werte in einem Skript, das. PL: die Skriptsdefinieren. Zum Beispiel definiert das Beispiel-Skript die Montage, um als Assemblage das Spielzeug des Spielers zu bewegen, dann wendet es einen Impuls von Kraft an, der 2500 Rowton-Sekunden beträgt, um den Spieler auf der positiven Y-Achse der Welt aufzusteigen. Beachten Sie, dass Spielercharaktere unterschiedliche Mengen an M
Um eine Montage mit ApplyImpulse zu bewegen:
- In dem Explorer-Fenster , erweitern Sie den Modellund dann erweitern Sie sein Kind JumpPad_DIY .
- Fügen Sie ein Skript in den JumpPad Teil ein.
- Bewegen Sie den Mauszeiger über das Teil und klicken Sie auf die Schaltfläche ⊕. Ein Kontextmenü wird angezeigt.
- Von dem Menü, fügen Sie ein Skript ein. Die Anfügung wird in der Mitte des Teils angezeigt.
- Das Skript umbenennen in JumpScript .
- Ersetzen Sie den Standardcode durch den folgenden Codes:
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)