Je « cherche un moyen de connecter deux objets séparés, de sorte que lorsque je déplace le premier objet, le second bouge également. Le terme parent est utilisé, mais comment puis-je parent un objet?
Réponse
Pour une réponse simple et rapide, sélectionnez lobjet qui sera connecté (objet enfant) en premier, puis sélectionnez lobjet qui transférera les données de transformation vers lobjet enfant (objet parent). Lordre de sélection est important, lobjet parent doit être sélectionné en dernier afin quil soit objet actif . Appuyez maintenant sur Ctrl P > Objet .
Il existe de nombreuses façons de parent des objets dans Blender. Vous pouvez parent des objets à partir de cinq fenêtres différentes: Vue 3D, éditeur de propriétés, aperçu, éditeur de texte et console; en plus, il existe une liste intimidante de différents types de parents.
Il semble que la parentalité est une épreuve complexe, alors laissez-moi essayer de la simplifier.
Sur cette longue liste, il ny a vraiment que trois types de parentalité. Ce sont Object , Armature et Vertex .
Les différences entre les nombreux types de parenté
-
Objet Est de loin le type de parent le plus courant. Il est utilisé dans huit des treize types de parentage.
Chaque fois que deux objets ou plus sont sélectionnés, le type de parentage dobjet est disponible. Toute traduction (rotation de léchelle et emplacement) vers lobjet parent affectera lenfant. -
Déformation de larmature Cest sans doute le groupe de parentage le plus compliqué les types. La déformation darmature nest disponible que lorsque lobjet actif est une armature. Il définit un parent Object , avec lobjet sélectionné comme enfant et lobjet actif (larmature) comme parent. Il ajoute un modificateur Armature à lobjet enfant, avec larmature déjà définie comme objet cible du modificateur. À ce stade, il ne fera rien de plus quun objet parent normal. Les trois sous-options Les groupes vides , les pondérations automatiques et les pondérations denveloppe sont utilisés dans le processus de truquage.
-
Os Nest disponible que lorsque lobjet actif est une armature. Est exactement le même quun objet parent, mais ici lenfant est transformé à partir dun seul os.
Dans limage ci-dessous, jai positionné lanneau autour le doigt, puis Shift a sélectionné larmature. Avec larmature maintenant comme objet actif, vous pouvez passer en mode Pose et sélectionner los approprié. Enfin, parent lobjet à la bone, avec Ctrl P > Bone . -
Bone Relative Est la même chose que bone à la différence que tout change fait en mode édition sur los parent naffectera pas lobjet enfant.
-
Curve Deform Nest disponible que lorsque lobjet actif est un objet courbe ( Courbe de Bézier ou Nurbs). Il définit un parent Object , avec lobjet sélectionné comme enfant et lobjet actif (la courbe) comme parent. Il ajoute un modificateur Curve à lobjet enfant avec la courbe déjà définie comme objet cible du modificateur.
-
Suivre le chemin à nouveau nest disponible que lorsque lobjet actif est un objet courbe. Is définit un parent Object , comme le fait Curve Deform. Il anime également le Temps dévaluation pour le Animation de chemin sur lobjet courbe.
-
Contrainte de chemin Est la dernière option disponible uniquement pour les objets courbes. Elle ne définit aucun parent, mais ajoute une contrainte Suivre le chemin à lobjet sélectionné avec le la cible de la contrainte comme objet actif (la courbe).
-
Lattice Deform Est une option spéciale qui nest disponible que lorsque lobjet actif est un treillis. Il définit le treillis comme parent et lobjet sélectionné comme enfant, plus il ajoute un modificateur Lattice à lobjet sélectionné.
-
Vertex Cest lun des trois principaux types de parentage. Il diffère dun objet parent en ce que seules les informations demplacement sont données à lenfant. Cest lemplacement du sommet qui est le parent. Lobjet parent na pas à se déplacer, mais un modificateur peut changer la position du sommet, lobjet enfant se déplacera.
-
Vertex (Triangle) À première vue, il peut ressembler à un parent dobjet, mais cest exactement la même chose quun parent de sommet, sauf que maintenant il y a 3 sommets. À partir de trois sommets, lenfant obtient maintenant lemplacement, léchelle et la rotation identiques à ceux dun objet parent; avec lavantage de suivre les sommets.
La vue 3D
La méthode la plus courante pour les objets parents est dans la vue 3D avec deux objets ou plus sélectionnés, appuyez sur Crtl P > Objet . Notez que le parent est l objet actif et lenfant est lobjet sélectionné. Cela revient à Utiliser le menu dans len-tête de la vue 3D Objet > Parent > Objet . Les relations parents enfants sont représentées dans la vue 3D par une petite ligne en pointillés reliant les origines des objets.
Ici, le cube et le singe ont déjà été parent dobjet. Le cube est le parent (objet actif) et le singe est lenfant.
LOutliner
Loutliner est génial car il ny a aucune confusion avec lobjet actif, ou de quelle manière le parent va. Il vous suffit de faire glisser licône de lobjet enfant souhaité et de la déposer au-dessus de lobjet parent souhaité. Sil y a plus dune option pour la parentalité, Blender vous demandera laquelle vous souhaitez utiliser.
La fenêtre Propriétés
Vous pouvez simplement choisir lobjet qui sera le parent. En utilisant cette méthode, lobjet actif est toujours le child .
Cependant, les objets parentaux utilisant cette méthode donnent des résultats très différents de la vue 3D ou de loutliner.
Dans limage ci-dessous, le cube et le cône sont exactement au même endroit , et nont pas de rotation ou déchelle. Le côté gauche est à quoi ressemblaient les deux avant toute parentalité. Jai parent le cube avec le cône au centre et sur le côté droit. Le centre est parenté à travers la vue 3D, et à droite, jai utilisé le champ dans la fenêtre des propriétés.
La différence vient des différentes commandes python (plus à ce sujet dans la section python). Ce qui est important, cest que lors de lutilisation du champ dans la fenêtre des propriétés, la distance de lobjet enfant par rapport à lorigine du monde (0,0,0) devient le décalage par rapport au parent. Cela est illustré dans limage ci-dessus par le cube mesurant 4 unités le long de laxe X du cône.
Python
Les deux derniers endroits où vous pouvez parent des objets sont l éditeur de texte et la console . Les deux donnent accès à la parentalité directement via python. Les deux commandes parentales sont
bpy.ops.object.parent_set()
et bpy.data.objects["child"].parent = bpy.data.objects["parent"]
Ce script sera parent comme la vue 3D.
import bpy bpy.data.objects["child"].select = True bpy.data.objects["parent"].select = True bpy.context.scene.objects.active = bpy.data.objects["parent"] bpy.ops.object.parent_set()
Cependant cette ligne de code
bpy.data.objects["child"].parent = bpy.data.objects["parent"]
parent la même chose que lutilisation de la fenêtre des propriétés. La raison étant que la fenêtre des propriétés sexécute bpy.context.object.parent = bpy.data.objects["parent"]
, mais partout ailleurs, Blender utilise parent_set()
.
Cependant, vous pouvez éviter dutiliser bpy.ops.object.parent_set()
et laisser lobjet enfant dans sa position après parentin g. Pour ce faire, vous devrez définir explicitement lenfant « s matrix_parent_inverse
sur la matrice du monde inverse du parent. Voir le code ci-dessous:
parent = bpy.data.objects.get("parent") child = bpy.data.objects.get("child") if child: child.parent = parent if parent: child.matrix_parent_inverse = parent.matrix_world.inverted()
Autres options
Il existe deux autres façons dobtenir le même type de relation quun objet parent, ces deux sont les Child Of Constraint et Parent Actuator .
Child Of Constraint
Le Child Of Constraint fonctionne de la même manière quun objet parent, avec lavantage supplémentaire dêtre une contrainte: animatible, plusieurs parents sur le même objet, naffectant que certaines transformations et naffectant que certains axes.
Comme indiqué dans le manuel après avoir spécifié lobjet cible, vous voudrez probablement appuyer sur le bouton " Set Inverse " dans le contrainte (cela revient à la même chose que la différence entre le parent de la fenêtre des propriétés et la vue 3D) . Vous avez maintenant un objet qui se comportera exactement comme l’objet enfant dans un objet parent.
Une bizarrerie avec la contrainte, est que si vous sélectionnez à la fois l’objet enfant et l’objet parent et les déplacez, le mouvement sur l’enfant va être composé, ce qui signifie quil se déplacera deux fois plus vite que le parent. Après le mouvement, il vous suffit dappuyer à nouveau sur le bouton " Set Inverse " pour ramener lenfant au emplacement correct.
Ma caractéristique préférée de lenfant de la contrainte est que vous ne pouvez influencer que certaines transformations. Cela est démontré dans le gif ci-dessus.
Actionneur parent
Lactionneur parent, étant une brique logique, ne fonctionne que dans le moteur de jeu.Il fait exactement la même chose quun objet parent normal. Alors que la parentalité normale fonctionne dans le moteur de jeu (il y a quelques bizarreries ). Lactionneur parent offre lavantage que le parent peut être contrôlé dynamiquement dans le jeu, via des briques logiques ou python.
Commentaires
- Bonne liste complète à re -diriger les gens vers.
- Très bien! Pour la vue 3D, quelle est la différence entre " Object " et " Object ( Keep transform) "?
- Anson Savage, dans Keep Transform, lobjet conservera exactement le même emplacement que vous avez arrangé lobjet dans la vue 3D.