Bộ điều khiển

*Nội dung này được dịch bằng AI (Beta) và có thể có lỗi. Để xem trang này bằng tiếng Anh, hãy nhấp vào đây.

Trong Thư viện Bộ điều khiển Nhân vật (CCL), một phiên bản cốt lõi của ControllerManager xử lý mô phỏng vật lý của nhân vật và sự tương tác của nó với môi trường. Điều này bao gồm một vài thay đổi có chủ ý trong cảm giác chuyển động/di chuyển nhằm giải quyết các sự không nhất quán của Humanoid, cũng như các cải tiến vật lý như lực ma sát mặt đất, các đường cong gia tốc tuyến tính, và sự bảo tồn thực tế của động lượng tuyến tính và góc khi nhảy.

Kích hoạt CCL

CCL là tùy chọn thông qua cửa sổ Cài đặt Avatar của Studio. Để bật nó:

  1. Từ tab Avatar, mở Cài đặt Avatar.

    Cài đặt Avatar được chỉ định trong thanh công cụ của Studio
  2. Chọn tab Movement ở bên trái của cửa sổ và, trong phần Abilities, chọn Thư Viện Bảng Điều Khiển Nhân Vật.

    Công tắc Thư Viện Bảng Điều Khiển Nhân Vật trong cửa sổ Cài đặt Avatar
  3. Tất cả các khả năng tiêu chuẩn như Chạy, Nhảy, và Leo đều được bật theo mặc định. Để vô hiệu hóa bất kỳ khả năng nào trong thời gian chạy, bỏ chọn ô tương ứng.

Cấu trúc

Dưới phiên bản cốt lõi của ControllerManager trong mô hình nhân vật, các bộ điều khiển riêng lẻ như GroundControllerAirController xác định cách thức chuyển động được áp dụng cho nhân vật. Các khả năng sau đó tương tác với ControllerManager và các phần tử kế thừa của nó để thay đổi hành vi của bộ điều khiển hoặc chuyển đổi giữa các bộ điều khiển.

Cấu hình

Trong khi trò chơi của bạn đang chạy (hoặc thông qua một kịch bản chạy từ ServerScriptService), bạn có thể thử nghiệm với phiên bản cốt lõi của ControllerManager và các bộ điều khiển tích hợp.

Thời gian chạy

Để thử nghiệm với các cấu hình bộ điều khiển trong thời gian chạy:

  1. Bắt đầu một bài kiểm tra chơi.

  2. Trong Explorer, tìm mô hình nhân vật trong Workspace và sau đó mở rộng cây ControllerManager:

  3. Chọn hoặc ControllerManager hoặc một trong các phần tử kế thừa của nó và, trong cửa sổ Properties, tùy chỉnh các thuộc tính như những gì được tóm tắt trong các bảng dưới đây (lưu ý rằng các bảng này không đầy đủ; vui lòng tham khảo tài liệu lớp API để biết thêm tùy chọn thuộc tính).

    Thuộc tínhMô tả
    BaseMoveSpeedTốc độ di chuyển tuyến tính cơ sở được sử dụng bởi tất cả các bộ điều khiển. Các bộ điều khiển cá nhân tùy chỉnh tốc độ di chuyển thông qua thuộc tính MoveSpeedFactor của chúng.
    BaseTurnSpeedTốc độ xoay cơ sở được sử dụng bởi tất cả các bộ điều khiển để điều chỉnh nhân vật đối diện với hướng mong muốn. Một số bộ điều khiển tùy chỉnh tốc độ xoay thông qua thuộc tính TurnSpeedFactor của chúng.
    UpDirectionVector3 cho biết vector hướng lên cho ControllerManager.RootPart.

Kịch bản

Để thiết lập các cấu hình bộ điều khiển cho tất cả nhân vật thông qua một kịch bản:

  1. Tạo một Script mới ở phía máy chủ trong ServerScriptService và đổi tên thành ControllerScript.

  2. Sao chép và dán mã sau vào kịch bản mới. Ví dụ này tăng gấp đôi tốc độ di chuyển/xoay trên mặt đất cũng như thêm một chút thời gian tăng tốc và giảm tốc. Bạn có thể tự do điều chỉnh các thuộc tính khác như những gì được mô tả trong các bảng trên hoặc cho mỗi lớp như đã được tài liệu hóa (ControllerManager; GroundController; AirController; ClimbController; SwimController).

    Kịch bản trong 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
    -- Gấp đôi tốc độ di chuyển và xoay
    GroundController.MoveSpeedFactor *= 2
    GroundController.TurnSpeedFactor *= 2
    -- Thêm chút thời gian tăng tốc và giảm tốc
    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, logo Roblox và Powering Imagination là các nhãn hiệu đã đăng ký và chưa đăng ký của chúng tôi tại Hoa Kỳ và các quốc gia khác.