Grundlegende Physik

Das Roblox-Physiksystem ermöglicht es Entwicklern, realistische Interaktionen und Bewegungen in ihren Spielen zu erstellen. Das Verständnis und die Manipulation von Physikkomponenten können das Gameplay und die Immersion erheblich verbessern.

KomponentenBeschreibungAnwendungsfall
KörperkraftWendet eine konstante Kraft auf ein Teil an.Simuliert kontinuierlichen Schub, z.B. ein Raketentriebwerk.
KörpergeschwindigkeitHält eine bestimmte Geschwindigkeit durch Anpassung der angewendeten Kraft bei.Hält ein Fahrzeug oder eine Plattform in konstanter Bewegung.
KörperpositionBewegt ein Teil zu einer bestimmten Position und hält es dort.Erstellt ein Teil, das sich zu einem Ziel bewegt und dort bleibt, z.B. ein Aufzug.
KörpergyroHält die Ausrichtung eines Teils mit Drehmoment bei.Stabilisiert die Rotation eines Teils, z.B. das aufrechte Halten einer Rakete.
Körper-WinkelgeschwindigkeitWendet eine konstante Rotationsgeschwindigkeit auf ein Teil an.Dreht ein Teil mit konstanter Geschwindigkeit, z.B. ein sich drehender Ventilator.

Grundlegende Physikbeispiele

Körpergeschwindigkeit

Diese Komponente wendet eine kontinuierliche Kraft an, um eine spezifische Geschwindigkeit in einer gewählten Richtung beizubehalten und überschreibt andere auf das Teil wirkende Kräfte.
Image 1
Roblox Studio
local parentPart = script.Parent -- Reference to the parent part

local velocity = Instance.new("BodyVelocity")
velocity.Velocity = Vector3.new(0, 50, 0) -- Move upward 
velocity.MaxForce = Vector3.new(0, 10000, 0) -- Apply force on Y axes
velocity.Parent = parentPart -- Apply the BodyVelocity to the parent part

Geschwindigkeit

Dies setzt eine anfängliche Aufwärtsgeschwindigkeit fest. Die Geschwindigkeit wird sich im Laufe der Zeit aufgrund äußerer Kräfte wie Schwerkraft und Reibung verringern.
Image 1
Roblox Studio
local parentPart = script.Parent -- Reference to the parent part

parentPart.Velocity = Vector3.new(0, 50, 0) -- Move upward

Körperkraft

Diese Komponente wendet eine kontinuierliche Kraft in eine bestimmte Richtung an, oft um die Schwerkraft zu kompensieren oder eine konstante Beschleunigung zu simulieren. Im Gegensatz zu Körpergeschwindigkeit steuert sie nicht direkt die Geschwindigkeit, sondern beeinflusst die Bewegung durch das Hinzufügen einer konsistenten Kraft.
Image 1
Roblox Studio
local parentPart = script.Parent -- Reference to the parent part

local force = Instance.new("BodyForce")
force.Force = Vector3.new(0, 5000, 0) -- Apply upward force of 5000 on the Y-axis
force.Parent = parentPart -- Apply the BodyForce to the parent part

Körpergyro

Diese Komponente wendet kontinuierlich Kraft an, um das Teil in die angegebene Position zu bewegen und dort zu halten, wobei alle äußeren Kräfte überschrieben werden.
Image 1
Roblox Studio
local parentPart = script.Parent -- Reference to the parent part

local gyro = Instance.new("BodyGyro")
gyro.CFrame = CFrame.Angles(math.rad(45), math.rad(30), 0) -- Desired rotation
gyro.MaxTorque = Vector3.new(4000, 4000, 4000) -- Maximum torque applied on each axis
gyro.P = 3000 -- Power
gyro.Parent = parentPart -- Apply the BodyGyro to the parent part

Körperposition

Diese Komponente wendet kontinuierlich Kraft an, um das Teil in die angegebene Position zu bewegen und dort zu halten, wobei alle äußeren Kräfte kompensiert werden.
Image 1
Roblox Studio
local parentPart = script.Parent -- Reference to the parent part

local position = Instance.new("BodyPosition")
position.Position = Vector3.new(0, 5, 0) -- Target position
position.MaxForce = Vector3.new(4000, 4000, 4000) -- Maximum force applied to reach the target position
position.D = 1000 -- Damping
position.P = 5000 -- Power
position.Parent = parentPart -- Apply the BodyPosition to the parent part

Körper-Winkelgeschwindigkeit

Diese Komponente wendet kontinuierlich Drehmoment an, um eine konstante Rotationsgeschwindigkeit um die Y-Achse beizubehalten und alle widerständigen Kräfte zu überschreiben.
Image 1
Roblox Studio
local parentPart = script.Parent -- Reference to the parent part

local angularVelocity = Instance.new("BodyAngularVelocity")
angularVelocity.AngularVelocity = Vector3.new(0, 2, 0) -- Rotate around Y-axis
angularVelocity.MaxTorque = Vector3.new(0, 10000, 0) -- Maximum torque applied
angularVelocity.Parent = parentPart -- Apply the BodyAngularVelocity to the parent part