Commencer
Tutoriels intermédiaires

Créer des objets en mouvement

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

Objets en mouvement sont des objets qui se déplacent sur un ou plusieurs axes dans l'espace 3D. Grâce à la puissance intégrée du moteur de simulation de Roblox, vous pouvez faire en sorte que les objets se déplacent et interagissent avec leur environnement de manière à imiter un comportement physique du monde réel qui est familier et intuitif pour les joueurs, tel que la gravité, l'aérodynamisme et la friction.

En utilisant le fichier .rbxl de Moving Objects comme référence, ce tutoriel explique comment les forces physiques impactent le mouvement linéaire dans Studio et vous montre diverses techniques pour déplacer des objets d'un point A à un point B dans vos expériences avec différents comportements de mouvement, y compris des conseils sur :

  • Utiliser une contrainte LinearVelocity pour déplacer un ensemble entier à une vitesse linéaire constante.
  • Utiliser une PrismaticConstraint pour contraindre un ensemble à un unique axe et le déplacer à une vitesse linéaire constante par rapport à un point dans l'espace 3D.
  • Utiliser la méthode ApplyImpulse pour déplacer un ensemble avec une impulsion initiale de force afin que l'ensemble décélère lentement au fil du temps.

Mouvement linéaire et forces physiques

Roblox Studio est un moteur de simulation du monde réel qui imite le comportement physique en temps réel, donc pour pouvoir prévoir comment les objets se déplaçant linéairement peuvent se comporter dans les expériences, il est important d'avoir une compréhension de haut niveau de la façon dont les objets se déplacent dans la vie réelle avec un mouvement linéaire.

Mouvement linéaire est le déplacement le long d'un axe. Par exemple, lorsqu'un bloc a un mouvement linéaire, il se déplace le long d'un axe défini.

Un bloc gris devant un fond sombre. L'axe de mouvement est mis en évidence et fait face vers la gauche de l'écran pour signifier que le bloc va se déplacer le long de l'axe Y du monde.

Le mouvement linéaire ne peut exister sans des forces physiques externes poussant ou tirant les objets pour les faire bouger. Selon la première loi de Newton, les objets stationnaires restent stationnaires et les objets en mouvement restent en mouvement avec une vitesse constante, à moins qu'ils ne soient soumis à une force externe. Par exemple, un bloc stationnaire reste stationnaire à moins qu'une force physique comme le vent ne le pousse à se déplacer.

Force est la mesure de la direction et de l'intensité d'une poussée ou d'un tirage physique qui cause aux objets de changer leur vitesse linéaire le long d'un axe. Un changement de vitesse est connu sous le nom d'accélération. Ce concept est particulièrement important pour que les objets se déplacent dans Studio ; plus vous appliquez de force aux objets, plus ils accélèrent rapidement.

Ceci parce que la force doit être supérieure à toutes les forces physiques qui s'opposent à l'objet, telles que la gravité ou la friction. Par exemple, si vous deviez placer le bloc sur une plaque métallique, la force physique du vent doit surmonter lamount de friction de la plaque métallique pour continuer à accélérer le bloc. Si la force du vent n'est pas beaucoup plus grande que la friction de la plaque métallique, le bloc accélère, mais plus lentement que dans l'exemple précédent.

Un bloc gris devant une plaque métallique gris foncé avec un diagramme qui signifie que le bloc aura une friction de plaque pour ralentir le mouvement du bloc à cause du vent.

Vitesse linéaire est la mesure du mouvement d'un objet, ou à quelle vitesse l'objet change de position le long d'un axe sur une période de temps. Studio mesure la vitesse linéaire en fonction du nombre d'études qu'un objet se déplace par seconde. Les études sont les unités physiques principales de Roblox pour mesurer la longueur, et chaque étude équivaut à environ 28 cm dans le monde réel.

Un bloc gris devant la texture de grille 4x4 de la base par défaut. Un cube rectangulaire d'une seule étude est mis en évidence.

Comprendre la vitesse linéaire est important pour concevoir le gameplay dans vos expériences car cela vous aide à déterminer combien de force vous avez besoin pour atteindre une vitesse particulière pour vos objets en mouvement. Par exemple, lorsque vous souhaitez propulser des objets vers le haut, il est important de prendre en compte comment vous devez ajuster votre force pour surmonter la gravité dans l'environnement afin que les objets se déplacent avec précision.

Les sections suivantes approfondissent ces concepts alors que vous apprenez comment déplacer des objets à une vitesse linéaire constante ou initiale avec la force nécessaire pour surmonter toutes les forces physiques opposées dans l'environnement. En passant en revue ces concepts physiques avec les techniques à venir, vous pouvez prédire plus précisément comment ajuster les valeurs des propriétés pour atteindre tout comportement de mouvement linéaire idéal dans Studio.

Maintenir une vitesse linéaire constante

Pour qu'un objet atteigne et maintienne une vitesse linéaire constante, il a besoin d'une force pour surmonter toutes les forces physiques opposées qui décélèrent la vitesse linéaire de l'objet ou causent à l'objet de rester stationnaire. Par exemple, si vous voulez qu'un objet ait une vitesse linéaire de [0, 12, 0] dans Studio, vous avez besoin de suffisamment de force pour que l'objet atteigne et maintienne 12 études par seconde le long de l'axe Y dans son environnement.

La quantité de force nécessaire dépend non seulement des forces physiques opposées dans l'environnement lui-même, telles que la gravité et la friction, mais aussi de l'objet lui-même. Par exemple, si vous avez deux objets de même forme qui se déplacent sur le même axe, l'objet ayant une masse plus grande nécessite plus de force pour atteindre la même accélération linéaire.

La petite pièce de triangle a une petite masse, donc elle nécessite moins de force pour atteindre la même accélération.
La grande pièce de triangle a une grande masse, donc elle nécessite plus de force pour atteindre la même accélération.

Les sous-sections suivantes utilisent des assemblages de différentes formes et tailles pour vous apprendre à déplacer soit un objet entier, soit seulement une partie de l'objet à une vitesse linéaire constante. En expérimentant avec différentes valeurs de propriétés, vous apprendrez à estimer la quantité maximale de force dont vous avez besoin pour les assemblages dans vos propres expériences.

Utiliser les contraintes LinearVelocity

Les objets LinearVelocity sont un type de contrainte de moteur qui applique une force sur un ensemble entier pour maintenir une vitesse linéaire constante. En ne verrouillant pas la position de l'assemblage à un axe durant son mouvement, l'ensemble est libre de tourner lorsqu'il entre en collision avec d'autres objets dans l'espace 3D. Ce type de mouvement permet des scénarios de gameplay surprenants qui sont plus difficiles à prédire pour les joueurs.

Lorsque les nénuphars se heurtent les uns aux autres, ils changent d'orientation mais continuent d'avancer dans la rivière à une vitesse linéaire constante.

Pour commencer à déplacer l'assemblage, la contrainte LinearVelocity doit connaître :

  • Le point et la direction positive ou négative pour appliquer une force.
  • La quantité d'études que vous souhaitez que l'assemblage se déplace par seconde.
  • La quantité maximale de force que le moteur peut appliquer pour que l'assemblage atteigne la vitesse linéaire constante.

Pour démontrer ce processus, vous allez configurer un nénuphar avec une attache que la contrainte LinearVelocity référence pour déplacer le nénuphar de 15 études par seconde le long de l'axe négatif X du monde à une vitesse linéaire constante.

Un gros plan d'un nénuphar. L'aide visuelle de la contrainte du nénuphar est visible et pointe vers la droite, ce qui correspond à l'axe négatif X du monde.

Ajouter une attache

Vous pouvez spécifier le point où appliquer la force en ajoutant un objet Attachment à l'assemblage, puis en configurant la position de l'attache dans l'espace 3D. L'expérience échantillon Moving Objects place une attache au centre du nénuphar afin que la contrainte puisse déplacer le maillage depuis l'attache le long d'un axe particulier.

Les attaches incluent des aides visuelles pour vous aider à visualiser leurs axes de mouvement. La flèche jaune représente l'axe principal de l'attache, et la flèche orange représente l'axe secondaire de l'attache. Bien qu'aucun des axes de mouvement n'influence le mouvement du nénuphar dans les étapes de cette technique, il est important de comprendre ces aides visuelles pour référence future car elles peuvent vous aider à déterminer le comportement idéal pour différents types de contraintes, comme la PrismaticConstraint dans la technique suivante.

Les flèches d'aide visuelle d'une attache. La flèche jaune qui désigne l'axe principal de l'attache pointe vers le haut, et la flèche orange qui désigne l'axe secondaire de l'attache pointe vers la droite.

Pour ajouter une attache :

  1. Dans la fenêtre Explorer, développez le dossier LinearVelocityExample, puis développez son enfant LilyPad_DIY modèle.

  2. Insérez une attache dans le maillage Pad.

    1. Survolez le maillage et cliquez sur le bouton ⊕. Un menu contextuel s'affiche.
    2. Dans le menu, insérez une Attachment. L'attache est affichée au centre de la pièce.
    3. Renommez l'attache en MoveAttachment.
    Un gros plan d'un nénuphar et son aide visuelle d'attache. L'axe principal pointe loin de la caméra, et l'axe secondaire pointe vers le haut.

Configurer la contrainte

Maintenant que votre maillage a un point fixe pour déplacer le nénuphar, vous pouvez configurer les propriétés de la contrainte LinearVelocity pour spécifier la direction et l'intensité pour la vitesse linéaire constante, la quantité d'études que vous souhaitez que le maillage se déplace par seconde, et la quantité maximale de force que le moteur peut appliquer pour que le maillage atteigne une vitesse linéaire constante.

L'expérience d'échantillon Moving Objects applique jusqu'à 5000 Rowtons de force constante pour déplacer le nénuphar à 15 études par seconde le long de l'axe négatif X du monde à une vitesse linéaire constante. Les Rowtons sont les unités physiques principales de Roblox pour mesurer la force. Pour faire référence aux unités physiques de Roblox et comment elles se convertissent en unités métriques, voir Unités Roblox.

Pour configurer une contrainte LinearVelocity :

  1. Pour rendre la contrainte visible dans le viewport afin que vous puissiez référencer sa direction linéaire, activez Show Constraint Details dans le menu View de Studio.

  2. Insérez une contrainte LinearVelocity dans le maillage Pad.

    1. Dans la fenêtre Explorer, survolez le maillage, puis cliquez sur l'icône ⊕. Un menu contextuel s'affiche.
    2. Dans le menu contextuel, insérez LinearVelocity.
  3. Assignez l'attache du maillage à la nouvelle contrainte.

    1. Dans la fenêtre Explorer, sélectionnez la contrainte.
    2. Dans la fenêtre Properties,
      1. Définissez Attachment0 sur MoveAttachment.
      2. Définissez MaxForce à 5000 pour appliquer jusqu'à 5000 Rowtons de force constante afin d'atteindre la vitesse linéaire prévue.
      3. Gardez RelativeTo sur World pour déplacer le nénuphar par rapport à la position et l'orientation du monde.
      4. Définissez VelocityConstraint sur Line pour contraindre la force le long d'une ligne depuis l'attache.
      5. Définissez LineDirection sur -1, 0, 0 pour déplacer le nénuphar le long de l'axe négatif X du monde. Notez que si vous deviez définir cette propriété sur 1, 0, 0, le nénuphar se déplacerait le long de l'axe positif X du monde.
      6. Définissez LineVelocity sur 15 pour déplacer le nénuphar à 15 études par seconde.
    Un gros plan d'un nénuphar et son aide visuelle de contrainte qui pointe vers la droite, ou l'axe négatif X du monde.
  4. Vérifiez que la quantité de force que vous avez définie déplace le maillage à 15 études par seconde le long de l'axe négatif X du monde.

    • Sélectionnez le mode de simulation Run dans le menu déroulant de la mezzanine et cliquez sur le bouton Play pour commencer. Studio simule l'expérience à la position de caméra actuelle sans votre avatar dans l'espace 3D.

      Option Run dans le menu déroulant des modes de test de la mezzanine de Studio.

Utiliser des contraintes PrismaticConstraint

Les objets PrismaticConstraint sont un type de contrainte mécanique qui créent une jointure rigide entre deux attaches, permettant à leurs assemblages parents de se déplacer le long d'un axe l'un par rapport à l'autre. En verrouillant la position des deux assemblages sur un même axe, chaque assemblage ne peut tourner que s'ils tournent ensemble dans la même direction.

Ce type de mouvement entraîne des scénarios de gameplay stables qui sont plus faciles à prédire pour les joueurs. Par exemple, l'expérience échantillon Moving Objects utilise des objets PrismaticConstraint pour déplacer des plateformes en rondins que les joueurs peuvent utiliser pour traverser prudemment une rivière géante.

Lorsque vous réglez PrismaticConstraint.ActuatorType sur Motor, cette contrainte applique une force sur les deux attaches dans le but que les attaches atteignent et maintiennent une vitesse linéaire constante. Si vous ancrez l'un des assemblages parents des attaches, la force continue de déplacer l'assemblage non ancré à une vitesse linéaire constante tandis que l'assemblage ancré reste stationnaire.

Pour commencer à déplacer l'assemblage, la contrainte PrismaticConstraint doit connaître :

  • Le point et la direction positive ou négative pour appliquer une force.
  • La quantité d'études que vous souhaitez que les attaches se déplacent par seconde.
  • La quantité maximale de force que le moteur peut appliquer pour que les attaches et leurs assemblages parents atteignent une vitesse linéaire constante.

Pour démontrer ce processus, vous allez configurer un assemblage de bûches avec deux objets qui possèdent des attaches enfants que PrismaticConstraint référence pour déplacer la bûche à 40 études par seconde le long de l'axe négatif X du monde à une vitesse linéaire constante.

Un gros plan d'une bûche brune sur une rivière. L'aide visuelle de contrainte de la bûche est visible et pointe vers la droite, ou l'axe négatif X du monde.

Configurer les attaches

Vous pouvez spécifier la direction pour déplacer un objet particulier dans un assemblage en ajoutant deux objets Attachment à l'assemblage, puis en configurant leur alignement et leur orientation dans l'espace 3D. L'expérience d'échantillon Moving Objects aligne deux attaches le long de l'axe X du monde près de la position où la bûche non ancrée se chevauche avec la pièce ancrée, et oriente chaque axe principal de l'attache pour faire face à l'axe négatif X du monde.

Lorsque vous configurerez votre contrainte PrismaticConstraint dans la section suivante, elle déplacera la bûche par rapport à la pièce d'ancrage. En d'autres termes, la bûche se déplacera loin de la pièce stationnaire qui ne peut pas se déplacer puisqu'elle est ancrée dans l'espace 3D.

Pour configurer des attaches pour la contrainte prismatique :

  1. Dans la fenêtre Explorer, développez le dossier PrismaticConstraintExample, puis développez son enfant Log_DIY modèle.

  2. Insérez une attache dans le maillage Log.

    1. Survolez le maillage et cliquez sur le bouton ⊕. Un menu contextuel s'affiche.
    2. Dans le menu, insérez une Attachment. L'attache est affichée au centre de la pièce.
    3. Renommez l'attache en LogAttachment.
    Un gros plan d'une bûche et son aide visuelle d'attache. L'axe principal pointe vers la caméra, et l'axe secondaire pointe vers le haut.
  3. En utilisant le même processus, insérez une attache dans la pièce Anchor, puis renommez l'attache AnchorAttachment.

    Un gros plan d'une bûche et deux aides visuelles d'attache. L'axe principal de la nouvelle aide visuelle d'attache pointe vers la droite, et l'axe secondaire pointe vers le haut.
  4. Utilisez l'outil View Selector comme référence pour les coordonnées du monde, faites pivoter LogAttachment et AnchorAttachment jusqu'à ce que l'axe principal de chaque attache fasse face à l'axe négatif X du monde.

    Un gros plan d'une bûche et son aide visuelle d'attache. Les deux attaches ont un axe principal qui pointe vers la droite, et un axe secondaire qui pointe vers le haut.
  5. Repositionnez AnchorAttachment afin que les deux attaches soient alignées sur l'axe X du monde.

    Un gros plan d'une bûche et ses aides visuelles d'attache désormais positionnées horizontalement. Les deux attaches ont un axe principal qui pointe vers la droite, et un axe secondaire qui pointe vers le haut.

Configurer la contrainte

Maintenant que vos attaches sont alignées sur le même axe et font face à la même direction que vous souhaitez que la bûche se déplace, vous pouvez configurer les propriétés d'une contrainte PrismaticConstraint pour spécifier si vous souhaitez appliquer la vitesse linéaire constante cible dans la direction positive ou négative de l'axe principal de chaque attache, la quantité d'études que vous souhaitez que les attaches se déplacent par seconde, et la quantité maximale de force que le moteur peut appliquer pour que la bûche atteigne une vitesse linéaire constante.

Bien que vous puissiez choisir différentes valeurs pour vos propres cas d'utilisation, l'expérience d'échantillon Moving Objects applique jusqu'à 50000 Rowtons de force constante pour déplacer les attaches à 40 radians par seconde le long de l'axe négatif X du monde à une vitesse linéaire constante. Cependant, parce que l'attache d'ancrage se trouve dans un objet ancré, seule l'attache de la bûche peut se déplacer.

Pour configurer une contrainte prismatique :

  1. Insérez un objet PrismaticConstraint dans le maillage Log.

    1. Dans la fenêtre Explorer, survolez le maillage, puis cliquez sur l'icône ⊕. Un menu contextuel s'affiche.
    2. Dans le menu contextuel, insérez une PrismaticConstraint.
  2. Assignez les attaches de la bûche à la nouvelle contrainte afin que la bûche se déplace en relation à la pièce bloquée ancrée.

    1. Dans la fenêtre Explorer, sélectionnez la contrainte.
    2. Dans la fenêtre Properties,
      1. Définissez Attachment0 sur AnchorAttachment.
      2. Définissez Attachment1 sur LogAttachment. La contrainte s'affiche dans le viewport.
    Un gros plan d'une bûche et son aide visuelle de contrainte. Elle n'a pas encore d'aide visuelle de flèche parce qu'elle n'a pas encore de vitesse définie.
  3. Dans la fenêtre Explorer, sélectionnez la contrainte, puis dans la fenêtre Properties :

    1. Définissez ActuatorType sur Motor. De nouveaux champs de propriété s'affichent.
    2. Définissez MotorMaxForce sur 50000 pour appliquer jusqu'à 50000 Rowtons de force constante pour atteindre la vitesse linéaire cible.
    3. Définissez Velocity sur 40 pour déplacer la bûche à 40 études par seconde.
    Un gros plan d'une bûche et son aide visuelle de contrainte qui pointe vers la droite, ou l'axe négatif X du monde.
  4. Vérifiez que la quantité de force que vous avez définie déplace la bûche à 40 études par seconde le long de l'axe négatif X du monde.

    • Sélectionnez le mode de simulation Run dans le menu déroulant de la mezzanine et cliquez sur le bouton Play pour commencer. Studio simule l'expérience à la position de caméra actuelle sans votre avatar dans l'espace 3D.

      Option Run dans le menu déroulant des modes de test de la mezzanine de Studio.

Appliquer une force linéaire initiale

Une autre façon de changer la vitesse linéaire d'un objet est d'appliquer une impulsion de force. Après l'impulsion de force, l'objet décélère soit jusqu'à devenir stationnaire si une force d'opposition telle que la friction est présente, soit reste en mouvement avec une vitesse linéaire constante s'il n'y a pas de forces d'opposition.

Cette technique est utile pour déplacer des objets après un événement de jeu significatif, tel qu'une explosion ou une collision d'impact, car elle fournit aux joueurs un retour instantané. Pour démontrer, la sous-section suivante vous apprend à lancer le personnage d'un joueur vers le ciel lorsqu'il entre en collision avec un tremplin avec une impulsion initiale que vous pouvez adapter avec de nouvelles valeurs pour répondre à vos propres exigences de jeu.

Utiliser ApplyImpulse

La méthode ApplyImpulse applique une force sur un ensemble entier pour obtenir une vitesse linéaire initiale avant de ralentir jusqu'à un arrêt lorsqu'il y a des forces opposées. Pour commencer à déplacer l'assemblage, la méthode doit connaître :

  • L'assemblage à déplacer.
  • L'axe sur lequel appliquer la force pour atteindre une vitesse linéaire initiale.
  • La quantité de force à appliquer à chaque axe.

Vous pouvez définir toutes ces valeurs dans un script. Par exemple, le script d'échantillon définit l'assemblage à déplacer comme l'objet Humanoid du personnage du joueur, puis il applique une impulsion de force de 2500 Rowton-secondes pour lancer le joueur vers le haut le long de l'axe Y positif du monde. Notez que les personnages des joueurs ont des masses différentes, donc vous devrez peut-être augmenter et équilibrer cette force pour lancer chaque joueur sans propulser les personnages des joueurs ayant moins de masse trop haut.

Pour déplacer un assemblage en utilisant ApplyImpulse :

  1. Dans la fenêtre Explorer, développez le dossier ApplyImpulseExample, puis développez son enfant JumpPad_DIY modèle.

  2. Insérez un script dans la pièce JumpPad.

    1. Survolez la pièce et cliquez sur le bouton ⊕. Un menu contextuel s'affiche.
    2. Dans le menu, insérez un Script. L'attachement s'affiche au centre de la pièce.
    3. Renommez le script en JumpScript.
  3. Remplacez le code par défaut par le code suivant :

    local volume = script.Parent
    local function onTouched(other)
    local impulse = Vector3.new(0, 2500, 0)
    local character = other.Parent
    local humanoid = character:FindFirstChildWhichIsA("Humanoid")
    if humanoid and other.Name == "LeftFoot" then
    other:ApplyImpulse(impulse)
    end
    end
    volume.Touched:Connect(onTouched)
©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.