Nella Libreria di Controller del Personaggio (CCL), un'istanza centrale di ControllerManager gestisce la simulazione fisica del personaggio e la sua interazione con l'ambiente. Questo include diversi cambiamenti intenzionali nel movimento/sensazione progettati per risolvere le incoerenze legate al Humanoid legacy, così come miglioramenti fisici come l'attrito del suolo, curve di accelerazione lineare e una realistica conservazione della quantità di moto lineare e angolare durante il salto.
Abilitare CCL
La CCL è opzionale tramite la finestra Impostazioni dell'Avatar di Studio. Per abilitarla:
Dalla scheda Avatar, apri Impostazioni dell'Avatar.

Seleziona la scheda Movimento sul lato sinistro della finestra e, nella sezione Abilità, seleziona Libreria del Controller del Personaggio.

Tutte le abilità standard come Corsa, Salto e Arrampicata sono abilitate per impostazione predefinita. Per disabilitarne alcune durante il runtime, deseleziona la casella associata.
Struttura
Sotto l'istanza centrale di ControllerManager all'interno del modello del personaggio, controller individuali come GroundController e AirController definiscono come il movimento viene applicato al personaggio. Le abilità interagiscono quindi con il ControllerManager e le sue discendenti per modificare i comportamenti dei controller o passare tra i controller.

Configurazione
Mentre il tuo gioco è in esecuzione (o tramite uno script che gira da ServerScriptService), puoi sperimentare con il core ControllerManager e i controller integrati.
Esecuzione
Per sperimentare con le configurazioni dei controller durante l'esecuzione:
Inizia un playtest.
Nell'Esplora, trova il modello del personaggio nel Workspace e poi espandi l'albero di ControllerManager:

Seleziona o ControllerManager o uno dei suoi controller discendenti e, nella finestra Proprietà, personalizza proprietà come quelle riassunte nelle tabelle sottostanti (nota che queste tabelle non sono esaustive; si prega di consultare la documentazione delle classi API per opzioni di proprietà aggiuntive).
Proprietà Descrizione BaseMoveSpeed La velocità di movimento lineare di base utilizzata da tutti i controller. I controller personalizzano individualmente la velocità di movimento tramite la loro proprietà MoveSpeedFactor. BaseTurnSpeed La velocità di rotazione angolare di base utilizzata da tutti i controller per allineare il personaggio a fronteggiare la direzione desiderata. Alcuni controller personalizzano individualmente la velocità di rotazione tramite la loro proprietà TurnSpeedFactor. UpDirection Vector3 che indica il vettore rivolto verso l'alto per il ControllerManager.RootPart.
Scriptato
Per impostare configurazioni del controller per tutti i personaggi tramite uno script:
Crea un nuovo Script lato server all'interno di ServerScriptService e rinominalo in ControllerScript.
Copia e incolla il seguente codice nel nuovo script. Questo esempio aumenta la velocità di movimento/rotazione a terra e aggiunge un leggero tempo di accelerazione e decelerazione. Sentiti libero di regolare altre proprietà come quelle descritte nelle tabelle sopra o per ciascuna classe come documentato (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-- Raddoppia le velocità di movimento e rotazioneGroundController.MoveSpeedFactor *= 2GroundController.TurnSpeedFactor *= 2-- Aggiungi leggeri tempi di accelerazione e decelerazioneGroundController.AccelerationTime = 0.2GroundController.DecelerationTime = 0.4endendendlocal function onPlayerAdded(player)if player.Character thenonCharacterAdded(player.Character)endplayer.CharacterAdded:Connect(onCharacterAdded)endPlayers.PlayerAdded:Connect(onPlayerAdded)