Apprendre à déplacer une Part dans Roblox en utilisant les propriétés Position et Orientation. Ce tutoriel explique :
- Comment accéder à une
Partdans leWorkspace. - Comment déplacer une
Parten modifiant saPosition. - Comment faire tourner une
Parten modifiant sonOrientation. - Comment utiliser
task.wait()pour créer des délais entre les mouvements.
Introduction : Pourquoi déplacer une Part ?

Dans Roblox, les Part sont les éléments de base pour construire des objets. Savoir les déplacer et les faire tourner permet de :
- Créer des animations (ex: une porte qui s’ouvre, un ascenseur qui monte).
- Simuler des mouvements (ex: un objet qui se déplace automatiquement).
- Contrôler des éléments du jeu (ex: une plateforme qui bouge).
Dans ce tutoriel, on va déplacer une Part dans différentes directions et la faire tourner autour des axes X, Y et Z.
Préparation dans Roblox Studio

Pour tester ce script, suis ces étapes :
- Créer un dossier pour les mouvements :
- Dans
Workspace, crée un dossier nomméMovementsFolder.
- Dans
- Ajouter une
Part:- Ajoute une
PartdansMovementsFolder. - Nomme-la
Part(ou modifie le nom dans le script).
- Ajoute une
- Ajouter le script :
- Crée un
ScriptdansServerScriptServiceet copie-y le code fourni.
- Crée un
- Lancer le jeu :
- Observe la
Part:- Après 5 secondes, elle commence à se déplacer.
- Elle se déplace sur les axes X, Y et Z, puis tourne autour des axes X, Y et Z.
- Observe la
Voici le script commenté sous ServerScriptService :
-- Récupérer le dossier "MovementsFolder" dans le Workspace
local movementsFolder = workspace:WaitForChild("MovementsFolder")
-- Récupérer la Part à déplacer dans le dossier
local movingPart = movementsFolder:WaitForChild("Part")
-- Empêcher la Part de bouger à cause des collisions ou de la gravité
movingPart.Anchored = true
-- Attendre 5 secondes avant de commencer les mouvements
task.wait(5)
-- Déplacer la Part de +50 unités sur l'axe X (droite)
movingPart.Position += Vector3.new(50, 0, 0)
task.wait(1) -- Attendre 1 seconde
-- Déplacer la Part de -50 unités sur l'axe X (gauche, retourne à la position initiale)
movingPart.Position += Vector3.new(-50, 0, 0)
task.wait(1)
-- Déplacer la Part de +50 unités sur l'axe Z (avant)
movingPart.Position += Vector3.new(0, 0, 50)
task.wait(1)
-- Déplacer la Part de -50 unités sur l'axe Z (arrière, retourne à la position initiale)
movingPart.Position += Vector3.new(0, 0, -50)
task.wait(1)
-- Déplacer la Part de +50 unités sur l'axe Y (haut)
movingPart.Position += Vector3.new(0, 50, 0)
task.wait(1)
-- Déplacer la Part de -50 unités sur l'axe Y (bas, retourne à la position initiale)
movingPart.Position += Vector3.new(0, -50, 0)
task.wait(1)
-- Faire tourner la Part de +10 degrés autour de l'axe Y (rotation vers la droite)
movingPart.Orientation += Vector3.new(0, 10, 0)
task.wait(1)
-- Faire tourner la Part de -10 degrés autour de l'axe Y (rotation vers la gauche, retourne à l'orientation initiale)
movingPart.Orientation += Vector3.new(0, -10, 0)
task.wait(1)
-- Faire tourner la Part de +10 degrés autour de l'axe Z (rotation vers le haut)
movingPart.Orientation += Vector3.new(0, 0, 10)
task.wait(1)
-- Faire tourner la Part de -10 degrés autour de l'axe Z (rotation vers le bas, retourne à l'orientation initiale)
movingPart.Orientation += Vector3.new(0, 0, -10)
task.wait(1)
-- Faire tourner la Part de +10 degrés autour de l'axe X (rotation vers l'avant)
movingPart.Orientation += Vector3.new(10, 0, 0)
task.wait(1)
-- Faire tourner la Part de -10 degrés autour de l'axe X (rotation vers l'arrière, retourne à l'orientation initiale)
movingPart.Orientation += Vector3.new(-10, 0, 0)
Explications Détaillées
1. Accéder à une Part dans le Workspace
local movementsFolder = workspace:WaitForChild("MovementsFolder")
local movingPart = movementsFolder:WaitForChild("Part")
workspace:WaitForChild("MovementsFolder"):- Attend que le dossier
MovementsFolderexiste dans leWorkspace. - Si le dossier n’existe pas encore, le script attend qu’il soit créé.
- Attend que le dossier
movementsFolder:WaitForChild("Part"):- Attend que la
Partexiste dans le dossierMovementsFolder. - Si la
Partn’existe pas encore, le script attend qu’elle soit créée.
- Attend que la
- Pourquoi utiliser
WaitForChild?- Cela évite les erreurs si le dossier ou la
Partne sont pas encore chargés quand le script s’exécute.
- Cela évite les erreurs si le dossier ou la
2. Empêcher la Part de bouger (Anchored)
movingPart.Anchored = true
Anchored = true:- Empêche la
Partde bouger à cause de la gravité ou des collisions. - Sans cela, la
Parttomberait ou serait poussée par d’autres objets.
- Empêche la
- Pourquoi est-ce important ?
- Si
Anchored = false, laPartserait soumise à la physique (gravité, collisions), ce qui rendrait les mouvements imprévisibles.
- Si
3. Déplacer une Part avec Position
movingPart.Position += Vector3.new(50, 0, 0)
Position:- Propriété qui stocke la position de la
Partdans l’espace 3D (coordonnées X, Y, Z). - Exemple :
Vector3.new(50, 0, 0)signifie 50 unités sur l’axe X, 0 sur Y, 0 sur Z.
- Propriété qui stocke la position de la
+=:- Ajoute un
Vector3à la position actuelle. - Exemple : Si
movingPart.Position = Vector3.new(0, 0, 0), alors après+= Vector3.new(50, 0, 0), la nouvelle position seraVector3.new(50, 0, 0).
- Ajoute un
- Axes dans Roblox : Axe Direction Exemple de mouvement X Gauche/Droite
Vector3.new(50, 0, 0)→ Déplacement vers la droite Y Haut/BasVector3.new(0, 50, 0)→ Déplacement vers le haut Z Avant/ArrièreVector3.new(0, 0, 50)→ Déplacement vers l’avant
4. Faire tourner une Part avec Orientation
movingPart.Orientation += Vector3.new(0, 10, 0)
Orientation:- Propriété qui stocke la rotation de la
Partautour des axes X, Y et Z (en degrés). - Exemple :
Vector3.new(0, 10, 0)signifie 10 degrés autour de l’axe Y.
- Propriété qui stocke la rotation de la
+=:- Ajoute une rotation à l’orientation actuelle.
- Exemple : Si
movingPart.Orientation = Vector3.new(0, 0, 0), alors après+= Vector3.new(0, 10, 0), la nouvelle orientation seraVector3.new(0, 10, 0).
- Axes de rotation : Axe Rotation Exemple X Inclinaison avant/arrière
Vector3.new(10, 0, 0)→ Rotation vers l’avant Y Rotation gauche/droiteVector3.new(0, 10, 0)→ Rotation vers la droite Z Rotation autour de l’axe verticalVector3.new(0, 0, 10)→ Rotation dans le sens horaire
5. Créer des délais avec task.wait()
task.wait(5) -- Attendre 5 secondes
task.wait(durée):- Pause l’exécution du script pendant
duréesecondes. - Exemple :
task.wait(1)attend 1 seconde avant de continuer.
- Pause l’exécution du script pendant
- Pourquoi utiliser
task.wait()?- Pour espacer les mouvements et les rendre visibles.
- Sans délai, les mouvements seraient trop rapides pour être vus.
QCM : Teste ta compréhension !
Sur l’accès aux objets :
- Que fait
workspace:WaitForChild("MovementsFolder")?- a) Attend que le dossier
MovementsFolderexiste dans leWorkspace. - b) Crée un nouveau dossier.
- c) Supprime le dossier.
- a) Attend que le dossier
- Pourquoi utilise-t-on
WaitForChild?- a) Pour éviter les erreurs si l’objet n’existe pas encore.
- b) Pour accélérer le script.
- c) Pour changer la couleur de la
Part.
Sur le déplacement :
- Que fait
movingPart.Position += Vector3.new(50, 0, 0)?- a) Déplace la
Partde 50 unités vers la droite (axe X). - b) Déplace la
Partde 50 unités vers le haut (axe Y). - c) Déplace la
Partde 50 unités vers l’avant (axe Z).
- a) Déplace la
- Que fait
Vector3.new(0, 50, 0)?- a) Crée un vecteur pour déplacer la
Partde 50 unités vers le haut. - b) Crée un vecteur pour faire tourner la
Part. - c) Crée un vecteur pour changer la couleur de la
Part.
- a) Crée un vecteur pour déplacer la
- Pourquoi utilise-t-on
Anchored = true?- a) Pour empêcher la
Partde bouger à cause de la gravité ou des collisions. - b) Pour rendre la
Partinvisible. - c) Pour supprimer la
Part.
- a) Pour empêcher la
Sur la rotation :
- Que fait
movingPart.Orientation += Vector3.new(0, 10, 0)?- a) Fait tourner la
Partde 10 degrés autour de l’axe Y (droite/gauche). - b) Fait tourner la
Partde 10 degrés autour de l’axe X (avant/arrière). - c) Fait tourner la
Partde 10 degrés autour de l’axe Z (sens horaire/anti-horaire).
- a) Fait tourner la
- Que fait
Vector3.new(10, 0, 0)pour l’orientation ?- a) Fait tourner la
Partde 10 degrés autour de l’axe X (avant/arrière). - b) Fait tourner la
Partde 10 degrés autour de l’axe Y (droite/gauche). - c) Fait tourner la
Partde 10 degrés autour de l’axe Z.
- a) Fait tourner la
Sur les délais :
- À quoi sert
task.wait(5)?- a) Attendre 5 secondes avant de continuer le script.
- b) Accélérer le script.
- c) Supprimer la
Part.
- Pourquoi utilise-t-on
task.wait(1)entre chaque mouvement ?- a) Pour espacer les mouvements et les rendre visibles.
- b) Pour économiser de la mémoire.
- c) Pour changer la couleur de la
Part.
