Kontrolery

*Ta zawartość została przetłumaczona przy użyciu narzędzi AI (w wersji beta) i może zawierać błędy. Aby wyświetlić tę stronę w języku angielskim, kliknij tutaj.

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ć:

  1. Z zakładki Awatar otwórz Ustawienia Awatarów.

    Ustawienia awatarów wskazane na pasku narzędzi Studio
  2. Wybierz zakładkę Ruch po lewej stronie okna, a w sekcji Umiejętności wybierz Bibliotekę Kontrolerów Postaci.

    Przełącznik Biblioteki Kontrolerów Postaci w oknie Ustawień Awatarów
  3. 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:

  1. Rozpocznij testowanie.

  2. W Eksploratorze znajdź model postaci w Workspace, a następnie rozwiń drzewo ControllerManager:

  3. 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
    BaseMoveSpeedPodstawowa prędkość ruchu liniowego używana przez wszystkie kontrolery. Kontrolery indywidualnie dostosowują prędkość ruchu za pomocą swojej właściwości MoveSpeedFactor.
    BaseTurnSpeedPodstawowa 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.
    UpDirectionVector3, który wskazuje wektor skierowany w górę dla ControllerManager.RootPart.

Skryptowane

Aby ustawić konfiguracje kontrolerów dla wszystkich postaci za pomocą skryptu:

  1. Utwórz nowy skrypt po stronie serwera Script w ServerScriptService i zmień jego nazwę na ControllerScript.

  2. 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 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
    -- Podwój prędkości ruchu i obrotu
    GroundController.MoveSpeedFactor *= 2
    GroundController.TurnSpeedFactor *= 2
    -- Dodaj niewielkie przyspieszenie i zwalnianie
    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. Nazwa Roblox, logo Roblox oraz hasło „Powering Imagination” należą do naszych zarejestrowanych i niezarejestrowanych znaków towarowych na terenie Stanów Zjednoczonych oraz w innych krajach.