Contrôleurs

*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.

Dans la Bibliothèque de Contrôleurs de Personnage (CCL), une instance principale de ControllerManager gère la simulation physique du personnage et son interaction avec l'environnement. Cela inclut plusieurs changements intentionnels dans le mouvement/ressenti conçus pour résoudre les incohérences héritées de Humanoid, ainsi que des améliorations physiques telles que la friction au sol, les courbes d'accélération linéaire, et la conservation réaliste de la quantité de mouvement linéaire et angulaire lors des sauts.

Activer CCL

Le CCL est optionnel via la fenêtre Paramètres d'Avatar de Studio. Pour l'activer :

  1. Dans l'onglet Avatar, ouvrez Paramètres d'Avatar.

    Paramètres d'Avatar indiqués dans la barre d'outils de Studio
  2. Sélectionnez l'onglet Mouvement sur le côté gauche de la fenêtre et, dans la section Compétences, sélectionnez Bibliothèque de Contrôleur de Personnage.

    Interrupteur de la Bibliothèque de Contrôleur de Personnage dans la fenêtre des Paramètres d'Avatar
  3. Toutes les compétences standard comme Course, Saut et Escalade sont activées par défaut. Pour désactiver l'une d'elles au moment de l'exécution, décochez la case associée.

Structure

Sous l'instance principale de ControllerManager au sein du modèle de personnage, des contrôleurs individuels tels que GroundController et AirController définissent comment le mouvement est appliqué au personnage. Les capacités interagissent alors avec le ControllerManager et ses descendants pour modifier les comportements des contrôleurs ou passer d'un contrôleur à l'autre.

Configuration

Tandis que votre jeu est en cours (ou via un script qui s'exécute depuis ServerScriptService), vous pouvez expérimenter avec le ControllerManager principal et les contrôleurs intégrés.

À l'exécution

Pour expérimenter avec les configurations de contrôleurs à l'exécution :

  1. Commencez un test de jeu.

  2. Dans l'Explorateur, localisez le modèle de personnage dans le Workspace et développez l'arborescence ControllerManager :

  3. Sélectionnez soit le ControllerManager, soit l'un de ses descendants de contrôleur et, dans la fenêtre Propriétés, personnalisez des propriétés telles que celles résumées dans les tableaux ci-dessous (notez que ces tableaux ne sont pas exhaustifs ; veuillez consulter la documentation des classes API pour d'autres options de propriétés).

    PropriétéDescription
    BaseMoveSpeedLa vitesse de mouvement linéaire de base utilisée par tous les contrôleurs. Les contrôleurs personnalisent individuellement la vitesse de mouvement à travers leur propriété MoveSpeedFactor.
    BaseTurnSpeedLa vitesse de rotation de base utilisée par tous les contrôleurs pour aligner le personnage dans la direction désirée. Certains contrôleurs personnalisent individuellement la vitesse de rotation à travers leur propriété TurnSpeedFactor.
    UpDirectionVector3 qui indique le vecteur dirigé vers le haut pour le ControllerManager.RootPart.

Scripté

Pour définir des configurations de contrôleurs pour tous les personnages à travers un script :

  1. Créez un nouveau Script côté serveur dans ServerScriptService et renommez-le ControllerScript.

  2. Copiez et collez le code suivant dans le nouveau script. Cet exemple augmente la vitesse de mouvement/rotation au sol tout en ajoutant un léger temps d'accélération et de décélération. N'hésitez pas à ajuster d'autres propriétés telles que celles décrites dans les tableaux ci-dessus ou pour chaque classe comme documenté (ControllerManager; GroundController; AirController; ClimbController; SwimController).

    Script dans 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
    -- Doublez les vitesses de mouvement et de rotation
    GroundController.MoveSpeedFactor *= 2
    GroundController.TurnSpeedFactor *= 2
    -- Ajoutez un léger temps d'accélération et de décélération
    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 Société Roblox. Roblox, le logo Roblox et Powering Imagination font partie de nos marques déposées aux États-Unis et dans d'autres pays.