在角色控制器庫 (CCL)中,一個核心的 ControllerManager 實例處理角色的物理模擬及與環境的互動。這包括幾個意圖改變的移動/感覺設計,以解決舊版 Humanoid 的不一致問題,以及物理改進,如地面摩擦、線性加速曲線,和在跳躍時合理的線性和角動量守恆。
啟用 CCL
CCL是透過Studio的虛擬角色設定視窗自選的。要啟用它:
從虛擬角色選項卡,打開虛擬角色設定。

在視窗左側選擇動作選項卡,並在能力部分中,選擇角色控制器庫。

所有標準能力,如跑步、跳躍和攀爬默認啟用。要在運行時禁用其中任何一項,請取消選中相關框。
結構
在角色模型中的核心 ControllerManager 實例下,個別控制器如 GroundController 和 AirController 定義如何將移動應用於角色。然後,能力與 ControllerManager 及其子類互動,以修改控制器行為或在控制器之間切換。

配置
當遊戲運行中(或通過從 ServerScriptService 運行的腳本),您可以實驗核心ControllerManager 和內置控制器。
執行時
要在執行時實驗控制器配置:
開始一個遊玩測試。
在 檢查器 中,找到 Workspace 中的角色模型,然後展開 ControllerManager 樹狀結構:

選擇 ControllerManager 或其控制器子類中的一個,在 屬性 窗口中,自定義如以下表格所總結的屬性(請注意這些表格並不詳盡,請參閱 API 類別文檔 獲取其他屬性選項)。
屬性 描述 BaseMoveSpeed 所有控制器使用的基本線性運動速度。控制器通過其 MoveSpeedFactor 屬性分別自定義運動速度。 BaseTurnSpeed 所有控制器用於使角色面朝所需方向的基本角度轉速。一些控制器通過其 TurnSpeedFactor 屬性分別自定義轉速。 UpDirection Vector3,表示 ControllerManager.RootPart 的向上向量。
腳本方式
要通過腳本為所有角色設置控制器配置:
在 ServerScriptService 中創建一個新的服務器端 Script,並將其重命名為 ControllerScript。
將以下代碼複製並粘貼到新腳本中。這個示例會提高基於地面的移動/轉向速度,並添加輕微的加速和減速時間。隨意調整例如上面表格中描述的其他屬性或每個類別的文檔 (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-- 將移動和轉向速度加倍GroundController.MoveSpeedFactor *= 2GroundController.TurnSpeedFactor *= 2-- 添加輕微的加速和減速GroundController.AccelerationTime = 0.2GroundController.DecelerationTime = 0.4endendendlocal function onPlayerAdded(player)if player.Character thenonCharacterAdded(player.Character)endplayer.CharacterAdded:Connect(onCharacterAdded)endPlayers.PlayerAdded:Connect(onPlayerAdded)