Controladores

*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.

En la Biblioteca de Controladores de Personajes (CCL), una instancia central de ControllerManager maneja la simulación física del personaje y su interacción con el entorno. Esto incluye varios cambios intencionados en el movimiento/sensación diseñados para resolver las inconsistencias heredadas de Humanoid, así como mejoras físicas como la fricción en el suelo, las curvas de aceleración lineal y la conservación real del momento lineal y angular al saltar.

Habilitar CCL

El CCL es opcional a través de la ventana de Configuración de Avatar de Studio. Para habilitarlo:

  1. Desde la pestaña Avatar, abre Configuración de Avatar.

    Configuración de Avatar indicada en la barra de herramientas de Studio
  2. Selecciona la pestaña Movimiento en el lado izquierdo de la ventana y, en la sección Habilidades, selecciona Biblioteca de Controladores de Personaje.

    Interruptor de Biblioteca de Controladores de Personaje en la ventana de Configuración de Avatar
  3. Todas las habilidades estándar como Correr, Saltar, y Escalar están habilitadas por defecto. Para deshabilitar cualquiera de ellas en tiempo de ejecución, desmarca la caja asociada.

Estructura

Bajo la instancia central de ControllerManager dentro del modelo del personaje, controladores individuales como GroundController y AirController definen cómo se aplica el movimiento al personaje. Las habilidades luego interactúan con el ControllerManager y sus descendientes para modificar comportamientos del controlador o cambiar entre controladores.

Configuración

Mientras tu juego está en ejecución (o a través de un script que corre desde ServerScriptService), puedes experimentar con el ControllerManager central y los controladores integrados.

Ejecución

Para experimentar con configuraciones de controladores en tiempo de ejecución:

  1. Comienza una prueba de juego.

  2. En el Explorador, localiza el modelo del personaje en el Workspace y luego expande el árbol de ControllerManager:

  3. Selecciona ya sea el ControllerManager o uno de sus descendientes de controlador y, en la ventana de Propiedades, personaliza propiedades como las resumidas en las tablas a continuación (ten en cuenta que estas tablas no son exhaustivas; consulta la documentación de clases de la API para opciones adicionales de propiedades).

    PropiedadDescripción
    BaseMoveSpeedLa velocidad de movimiento lineal base utilizada por todos los controladores. Los controladores personalizan individualmente la velocidad de movimiento a través de su propiedad MoveSpeedFactor.
    BaseTurnSpeedLa velocidad de giro angular base utilizada por todos los controladores para alinear al personaje en la dirección deseada. Algunos controladores personalizan individualmente la velocidad de giro a través de su propiedad TurnSpeedFactor.
    UpDirectionVector3 que indica el vector orientado hacia arriba para el ControllerManager.RootPart.

Scripted

Para establecer configuraciones de controladores para todos los personajes a través de un script:

  1. Crea un nuevo Script del lado del servidor dentro de ServerScriptService y renómbralo a ControllerScript.

  2. Copia y pega el siguiente código en el nuevo script. Este ejemplo aumenta la velocidad de movimiento/giro en el suelo y añade un ligero tiempo de aceleración y desaceleración. Siéntete libre de ajustar otras propiedades como las descritas en las tablas anteriores o para cada clase como se documenta (ControllerManager; GroundController; AirController; ClimbController; SwimController).

    Script en 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
    -- Dobla las velocidades de movimiento y giro
    GroundController.MoveSpeedFactor *= 2
    GroundController.TurnSpeedFactor *= 2
    -- Añade ligero tiempo de aceleración y desaceleración
    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, el logotipo de Roblox y "Powering Imagination" son algunas de nuestras marcas registradas y no registradas en los Estados Unidos y otros países.