W Bibliotece Kontrolerów Postaci (CCL), główna instancja ControllerManager obsługuje symulację fizyczną postaci i jej interakcję z otoczeniem. Obejmuje to kilka zamierzonych zmian w ruchu/odczuciu, mających na celu rozwiązanie niekonsekwencji związanych z Humanoid, a także poprawy fizyczne, takie jak tarcie gruntowe, krzywe przyspieszenia liniowego oraz realistyczna konserwacja momentu liniowego i kątowego podczas skakania.
Włącz CCL
CCL jest optymalizowane poprzez okno Ustawienia Awatarów w Studio. Aby je włączyć:
Z zakładki Awatar otwórz Ustawienia Awatarów.

Wybierz zakładkę Ruch po lewej stronie okna, a w sekcji Umiejętności wybierz Bibliotekę Kontrolerów Postaci.

Wszystkie standardowe umiejętności, takie jak Bieganie, Skakanie i Wspinaczka, są domyślnie włączone. Aby wyłączyć którąkolwiek z nich w czasie wykonywania, odznacz odpowiednie pole.
Struktura
Pod główną instancją ControllerManager w obrębie modelu postaci znajdują się indywidualne kontrolery, takie jak GroundController i AirController, które definiują, jak ruch jest stosowany do postaci. Następnie umiejętności interagują z ControllerManager i jego potomkami, aby modyfikować zachowania kontrolera lub przełączać między kontrolerami.

Konfiguracja
Podczas działania gry (lub za pomocą skryptu uruchamianego z ServerScriptService), możesz eksperymentować z głównym ControllerManager i wbudowanymi kontrolerami.
W czasie wykonywania
Aby eksperymentować z konfiguracjami kontrolerów w czasie wykonywania:
Rozpocznij testowanie.
W Eksploratorze znajdź model postaci w Workspace, a następnie rozwiń drzewo ControllerManager:

Wybierz albo ControllerManager, albo jeden z jego potomków kontrolera, a w oknie Właściwości dostosuj właściwości, takie jak te podsumowane w poniższych tabelach (zauważ, że te tabele nie są wyczerpujące; prosimy o zapoznanie się z dokumentacją API klas w celu uzyskania dodatkowych opcji właściwości).
Właściwość Opis BaseMoveSpeed Podstawowa prędkość ruchu liniowego używana przez wszystkie kontrolery. Kontrolery indywidualnie dostosowują prędkość ruchu za pomocą swojej właściwości MoveSpeedFactor. BaseTurnSpeed Podstawowa prędkość obrotu kątowego używana przez wszystkie kontrolery do wyrównania postaci w żądanym kierunku. Niektóre kontrolery indywidualnie dostosowują prędkość obrotu za pomocą swojej właściwości TurnSpeedFactor. UpDirection Vector3, który wskazuje wektor skierowany w górę dla ControllerManager.RootPart.
Skryptowane
Aby ustawić konfiguracje kontrolerów dla wszystkich postaci za pomocą skryptu:
Utwórz nowy skrypt po stronie serwera Script w ServerScriptService i zmień jego nazwę na ControllerScript.
Skopiuj i wklej poniższy kod do nowego skryptu. Ten przykład zwiększa prędkości ruchu/obrotu na ziemi oraz dodaje niewielki czas przyspieszenia i zwalniania. Możesz dostosować inne właściwości, takie jak te opisane w powyższych tabelach lub dla każdej klasy, jak udokumentowano (ControllerManager; GroundController; AirController; ClimbController; SwimController).
Skrypt w ServerScriptServicelocal Players = game:GetService("Players")local function onCharacterAdded(character)local ControllerManager = character:FindFirstChildWhichIsA("ControllerManager")if ControllerManager thenlocal GroundController = ControllerManager:FindFirstChild("GroundController")if GroundController then-- Podwój prędkości ruchu i obrotuGroundController.MoveSpeedFactor *= 2GroundController.TurnSpeedFactor *= 2-- Dodaj niewielkie przyspieszenie i zwalnianieGroundController.AccelerationTime = 0.2GroundController.DecelerationTime = 0.4endendendlocal function onPlayerAdded(player)if player.Character thenonCharacterAdded(player.Character)endplayer.CharacterAdded:Connect(onCharacterAdded)endPlayers.PlayerAdded:Connect(onPlayerAdded)