Controller

*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.

In der Character Controller Library (CCL) verwaltet eine zentrale ControllerManager-Instanz die physikalische Simulation des Charakters und dessen Interaktion mit der Umgebung. Dies umfasst mehrere absichtliche Änderungen in Bewegung/Gefühl, die dazu dienen, Inkonsistenzen des veralteten Humanoid zu beheben, sowie physikalische Verbesserungen wie Bodenreibung, lineare Beschleunigungskurven und eine realistische Erhaltung von linearer und angularer Impuls beim Springen.

Aktivieren von CCL

Die CCL ist optional über das Avatar-Einstellungen Fenster im Studio aktivierbar. Um es zu aktivieren:

  1. Öffnen Sie im Avatar Tab die Avatar-Einstellungen.

    Avatar-Einstellungen im Studio-Toolbar angezeigt
  2. Wählen Sie den Bewegung Tab auf der linken Seite des Fensters und wählen Sie im Abschnitt Fähigkeiten die Character Controller Library aus.

    Schalter für die Character Controller Library im Fenster für Avatar-Einstellungen
  3. Alle Standardfähigkeiten wie Laufen, Springen und Klettern sind standardmäßig aktiviert. Um eine davon zur Laufzeit zu deaktivieren, deaktivieren Sie das entsprechende Kästchen.

Struktur

Unter der zentralen ControllerManager-Instanz im Charaktermodell definieren einzelne Controller wie GroundController und AirController, wie Bewegung auf den Charakter angewendet wird. Fähigkeiten interagieren dann mit der ControllerManager und ihren Nachkommen, um das Verhalten der Controller zu modifizieren oder zwischen Controllern zu wechseln.

Konfiguration

Während dein Spiel läuft (oder durch ein Skript, das aus ServerScriptService ausgeführt wird), kannst du mit der zentralen ControllerManager und den integrierten Controllern experimentieren.

Laufzeit

Um mit den Controller-Konfigurationen zur Laufzeit zu experimentieren:

  1. Starte einen Spieltest.

  2. Im Explorer suche das Charaktermodell im Workspace und erweitere den Baum der ControllerManager:

  3. Wähle entweder die ControllerManager oder einen ihrer Controller-Nachkommen aus und passe im Eigenschaften Fenster Eigenschaften wie die in den Tabellen unten zusammengefassten an (beachte, dass diese Tabellen nicht erschöpfend sind; bitte konsultiere die API Klassen-Dokumentation für zusätzliche Eigenschaftsoptionen).

    EigenschaftBeschreibung
    BaseMoveSpeedDie Basis-lineare Bewegungsgeschwindigkeit, die von allen Controllern verwendet wird. Controller passen die Bewegungsgeschwindigkeit individuell durch ihre MoveSpeedFactor-Eigenschaft an.
    BaseTurnSpeedDie Basis-Winkelgeschwindigkeit, die von allen Controllern verwendet wird, um den Charakter in die gewünschte Richtung auszurichten. Einige Controller passen die Drehgeschwindigkeit individuell durch ihre TurnSpeedFactor-Eigenschaft an.
    UpDirectionVector3, der den aufwärts gerichteten Vektor für den ControllerManager.RootPart angibt.

Skriptgesteuert

Um die Controller-Konfigurationen für alle Charaktere über ein Skript festzulegen:

  1. Erstelle ein neues serverseitiges Script innerhalb von ServerScriptService und benenne es in ControllerScript um.

  2. Kopiere und füge den folgenden Code in das neue Skript ein. Dieses Beispiel erhöht die Boden-basierten Bewegungs-/Drehgeschwindigkeiten und fügt eine leichte Beschleunigungs- und Verzögerungszeit hinzu. Du kannst andere Eigenschaften anpassen, wie sie in den Tabellen oben oder für jede Klasse dokumentiert sind (ControllerManager; GroundController; AirController; ClimbController; SwimController).

    Script in ServerScriptService

    local Players = game:GetService("Players")
    local function onCharacterAdded(character)
    local ControllerManager = character:FindFirstChildWhichIsA("ControllerManager")
    if ControllerManager then
    local GroundController = ControllerManager:FindFirstChild("GroundController")
    if GroundController then
    -- Verdopple die Bewegungs- und Drehgeschwindigkeiten
    GroundController.MoveSpeedFactor *= 2
    GroundController.TurnSpeedFactor *= 2
    -- Füge leichte Beschleunigung und Verzögerung hinzu
    GroundController.AccelerationTime = 0.2
    GroundController.DecelerationTime = 0.4
    end
    end
    end
    local function onPlayerAdded(player)
    if player.Character then
    onCharacterAdded(player.Character)
    end
    player.CharacterAdded:Connect(onCharacterAdded)
    end
    Players.PlayerAdded:Connect(onPlayerAdded)
©2026 Roblox Corporation. Roblox, das Roblox-Logo und "Powering Imagination" gehören zu unseren eingetragenen und nicht eingetragenen Markenzeichen in den USA und anderen Ländern.