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:
Öffnen Sie im Avatar Tab die Avatar-Einstellungen.

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.

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:
Starte einen Spieltest.
Im Explorer suche das Charaktermodell im Workspace und erweitere den Baum der ControllerManager:

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).
Eigenschaft Beschreibung BaseMoveSpeed Die Basis-lineare Bewegungsgeschwindigkeit, die von allen Controllern verwendet wird. Controller passen die Bewegungsgeschwindigkeit individuell durch ihre MoveSpeedFactor-Eigenschaft an. BaseTurnSpeed Die 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. UpDirection Vector3, 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:
Erstelle ein neues serverseitiges Script innerhalb von ServerScriptService und benenne es in ControllerScript um.
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 ServerScriptServicelocal Players = game:GetService("Players")local function onCharacterAdded(character)local ControllerManager = character:FindFirstChildWhichIsA("ControllerManager")if ControllerManager thenlocal GroundController = ControllerManager:FindFirstChild("GroundController")if GroundController then-- Verdopple die Bewegungs- und DrehgeschwindigkeitenGroundController.MoveSpeedFactor *= 2GroundController.TurnSpeedFactor *= 2-- Füge leichte Beschleunigung und Verzögerung hinzuGroundController.AccelerationTime = 0.2GroundController.DecelerationTime = 0.4endendendlocal function onPlayerAdded(player)if player.Character thenonCharacterAdded(player.Character)endplayer.CharacterAdded:Connect(onCharacterAdded)endPlayers.PlayerAdded:Connect(onPlayerAdded)