Controladores

*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.

Na Biblioteca de Controladores de Personagem (CCL), uma instância central de ControllerManager lida com a simulação física do personagem e sua interação com o ambiente. Isso inclui várias mudanças intencionais em movimento/sensação projetadas para resolver inconsistências do Humanoid, além de melhorias físicas como atrito no solo, curvas de aceleração linear e conservação realista de momento linear e angular ao saltar.

Ativar CCL

O CCL é opcional através da janela de Configurações de Avatar do Studio. Para habilitá-lo:

  1. Na aba Avatar, abra as Configurações de Avatar.

    Configurações de Avatar indicadas na barra de ferramentas do Studio
  2. Selecione a aba Movimentação no lado esquerdo da janela e, na seção Habilidades, selecione Biblioteca de Controladores de Personagens.

    Alternância da Biblioteca de Controladores de Personagens na janela de Configurações de Avatar
  3. Todas as habilidades padrão como Correr, Pular e Escalar estão habilitadas por padrão. Para desabilitar qualquer uma delas em tempo de execução, desmarque a caixa associada.

Estrutura

Sob a instância central de ControllerManager dentro do modelo de personagem, controladores individuais, como GroundController e AirController, definem como o movimento é aplicado ao personagem. Habilidades então interagem com o ControllerManager e seus descendentes para modificar comportamentos dos controladores ou alternar entre controladores.

Configuração

Enquanto seu jogo estiver em execução (ou através de um script que roda a partir de ServerScriptService), você pode experimentar com o controlador central ControllerManager e controladores embutidos.

Tempo de Execução

Para experimentar com configurações de controladores em tempo de execução:

  1. Inicie um teste de jogo.

  2. No Explorador, localize o modelo de personagem no Workspace e então expanda a árvore do ControllerManager:

  3. Selecione o ControllerManager ou um de seus descendentes de controlador e, na janela Propriedades, customize propriedades como as resumidas nas tabelas abaixo (note que estas tabelas não são exaustivas; por favor, consulte a documentação da API classes para opções adicionais de propriedades).

    PropriedadeDescrição
    BaseMoveSpeedA velocidade de movimento linear base usada por todos os controladores. Os controladores personalizam individualmente a velocidade de movimento através de sua propriedade MoveSpeedFactor.
    BaseTurnSpeedA velocidade angular base usada por todos os controladores para alinhar o personagem na direção desejada. Alguns controladores personalizam individualmente a velocidade de rotação através de sua propriedade TurnSpeedFactor.
    UpDirectionVector3 que indica o vetor que aponta para cima para a parte raiz do ControllerManager.

Scriptado

Para definir configurações de controladores para todos os personagens através de um script:

  1. Crie um novo Script do lado do servidor dentro de ServerScriptService e renomeie-o para ControllerScript.

  2. Copie e cole o seguinte código no novo script. Este exemplo aumenta a velocidade de movimento/rotação no solo, além de adicionar um leve tempo de aceleração e desaceleração. Sinta-se à vontade para ajustar outras propriedades, como as descritas nas tabelas acima ou para cada classe conforme documentado (ControllerManager; GroundController; AirController; ClimbController; SwimController).

    Script em 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
    -- Dobrar as velocidades de movimento e rotação
    GroundController.MoveSpeedFactor *= 2
    GroundController.TurnSpeedFactor *= 2
    -- Adicionar leve aceleração e desaceleração
    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, o logotipo Roblox e Powering Imagination estão entre nossas marcas registradas e não registradas nos EUA e em outros países.