Cum pot “ părinte ” obiecte?

Caut o modalitate de a conecta două obiecte separate, astfel încât atunci când mut primul obiect să se miște și cel de-al doilea. se folosește părintele, dar cum pot părinți un obiect?

Răspuns

Pentru un răspuns rapid și simplu, selectați obiectul care va fi conectat mai întâi (obiect copil), apoi selectați obiectul care va transfera datele de transformare către obiectul copil (obiect părinte). Ordinea de selecție este importantă, obiectul părinte trebuie selectat ultima, astfel încât să fie obiect activ . Acum apăsați Ctrl P > Obiect .


Există multe modalități de a părinte obiecte în blender. Puteți părinte obiecte din cinci ferestre diferite: Vizualizare 3D, Editor de proprietăți, Outliner, Editor de text și Consolă; în plus, există o listă descurajantă cu diferite tipuri de părinți.
lista tuturor p opțiuni arent
Se pare că parentalitatea este o încercare complexă, așa că permiteți-mi să încerc să o simplific.
Din această listă mare, există doar trei tipuri de părinți. Acestea sunt Object , Armature și Vertex .

Diferențele dintre numeroasele tipuri de părinți

  • Obiect Este de departe cel mai comun tip de părinte. Este utilizat în opt dintre cele treisprezece tipuri de parenting.
    De fiecare dată când sunt selectate două sau mai multe obiecte, tipul de parenting al obiectului este disponibil. Orice translație (rotație a scării și locație) către obiectul părinte va afecta copilul.

  • Armature Deform Acesta este, probabil, cel mai complicat grup de părinți tipuri. Armature Deform este disponibilă numai atunci când obiectul activ este Armature. Setează un părinte Obiect , cu obiectul selectat drept copil și obiectul activ (armătura) ca părinte. Acesta adaugă un modificator Armature la obiectul copil, armatura fiind deja setată ca obiect țintă al modificatorului. În acest moment nu va face nimic mai mult decât un obiect obișnuit părinte. Cele trei subopțiuni Grupurile goale , Greutățile automate și Greutățile învelite sunt utilizate în procesul de instalare.

  • Bone Este disponibil numai atunci când obiectul activ este o armătură. Este exact la fel ca un părinte obiect, dar aici copilul este transformat dintr-un singur os.
    În imaginea de mai jos am poziționat inelul în jurul degetul, apoi Shift a selectat armatura. Cu armatura acum ca obiect activ puteți intra în modul Pose și selectați osul corespunzător. În cele din urmă, părinți obiectul la os, cu Ctrl P > Bone . exemplu de utilizare de tipul părinte Bone

  • Bone Relative Este la fel ca osul cu diferența pe care orice schimbare realizat în modul de editare la osul părinte nu va afecta obiectul copil.

  • Deformarea curbei Este disponibilă numai atunci când obiectul activ este un obiect curbă ( Curba Bezier sau Nurbs). Setează un părinte Obiect , cu obiectul selectat drept copil și obiectul activ (curba) ca părinte. Acesta adaugă un modificator Curve la obiectul copil cu curba deja setată ca obiect țintă al modificatorului.

  • Urmăriți calea din nou este disponibil numai atunci când obiectul activ este un obiect curbă. Este setat un părinte Obiect , la fel ca și deformarea curbei. De asemenea, animă Timpul de evaluare pentru Animație cale pe obiectul curbă.
    fereastra de proprietăți care arată fila curbei cu Timp de evaluare evidențiat

  • Path Constraint Este ultima opțiune disponibilă numai pentru obiectele curbe. Nu setează niciun părinte, în schimb adaugă o constrângere Follow Path la obiectul selectat cu ținta constrângerii ca obiect activ (curba).

  • Lattice Deform Este o opțiune specială care este disponibilă numai atunci când obiectul activ este un zăbrele. Setează rețeaua ca părinte și obiectul selectat drept copil, plus adaugă un modificator de rețea la obiectul selectat.

  • Vertex Acesta este unul dintre cele trei tipuri principale de parenting. Diferă de un părinte obiect prin faptul că numai informațiile despre locație sunt date copilului. Locația vârfului este părintele. Obiectul părinte nu trebuie să se miște, dar un modificator poate schimba poziția vârfului, obiectul copil se va muta.

  • Vertex (Triunghi) La prima vedere poate apărea la fel ca un părinte obiect, dar mai degrabă este exact același lucru ca un părinte vertex, cu excepția cazului în care acum există 3 vârfuri. Din trei vârfuri, copilul primește acum locație, scară și rotație la fel ca într-un părinte obiect; cu avantajul urmăririi vârfurilor.

Vizualizarea 3D

Cel mai comun mod de a vizualiza obiectele părinte este în vizualizarea 3D cu două sau mai multe obiecte selectate, apăsați Crtl P > Obiect . Rețineți că părintele este obiectul activ și copilul este obiectul selectat. Acesta este același lucru cu utilizarea meniului din antetul vizualizării 3D Obiect > Parent > Obiect . Navele de relație părinte copil sunt reprezentate în vizualizarea 3D printr-o linie mică întreruptă care leagă originile obiectelor. Setarea părintelui printr-o comandă rapidă în vizualizarea 3D
Aici cubul și maimuța au fost deja părinte obiect. Cubul este părintele (obiectul activ) și maimuța este copilul.

Outliner

Outliner-ul este excelent, deoarece nu există confuzie cu obiectul activ sau în ce mod părintele se duce. Pur și simplu trageți pictograma obiectului copil dorit și o plasați deasupra obiectului părinte dorit. Dacă există mai multe opțiuni pentru creșterea copilului, blenderul vă va întreba pe care doriți să îl utilizați. gif animat care arată procesul de parenting în contur

Fereastra Properties

Puteți alege pur și simplu obiectul care va fi părintele. Folosind această metodă, obiectul activ este întotdeauna copil .
obiect editor de proprietăți setarea părinte a filei evidențiată
Cu toate acestea, obiectele parentale care utilizează această metodă rezultă în rezultate foarte diferite de vizualizarea 3D sau conturul.
În imaginea de mai jos, atât cubul cât și conul sunt în același loc exact. și nu au rotație sau scară. Partea stângă arată cum arătau amândoi înainte de orice părinți. Am părintețit cubul spre con atât în centru cât și în partea dreaptă. Centrul este parental prin vizualizarea 3D, iar în dreapta am folosit câmpul din fereastra de proprietăți. diferență între diferitele opțiuni parentale
Diferența provine din diferitele comenzi Python (mai multe despre asta în secțiunea piton). Ceea ce este important este că, atunci când se utilizează câmpul din fereastra de proprietăți, distanța obiectului copil de la originea lumii (0,0,0) devine compensarea față de părinte. Aceasta este arătată în imaginea de mai sus, cubul fiind de 4 unități de-a lungul axei X a conului.

Python

Ultimele două locuri pe care le puteți parenta obiecte sunt Editorul de text și Consola . Ambele oferă acces la parenting direct prin python. Cele două comenzi parentale sunt

bpy.ops.object.parent_set() și bpy.data.objects["child"].parent = bpy.data.objects["parent"]

Acest script va fi părinte la fel ca vizualizarea 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() 

Cu toate acestea această linie de cod

bpy.data.objects["child"].parent = bpy.data.objects["parent"] 

va părinți la fel ca în cazul utilizării ferestrei de proprietăți. Motivul este că fereastra de proprietăți rulează bpy.context.object.parent = bpy.data.objects["parent"], dar peste tot în alt loc blenderul folosește parent_set().

Cu toate acestea, puteți evita utilizarea bpy.ops.object.parent_set() și faceți obiectul copil să rămână în poziția sa după parentin g. Pentru a face acest lucru, va trebui să setați în mod explicit copilul „s matrix_parent_inverse la matricea inversă a lumii părinte. Vedeți codul de mai jos:

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() 

Alte opțiuni

Există două alte modalități de a obține același tip de relație ca un părinte obiect, cele două sunt Child Of Constraint și Actuator părinte .

Child Of Constraint

The Child Of Constraint funcționează la fel ca un părinte obiect, cu avantajul suplimentar care vine de la a fi o constrângere: părinți multipli și compatibili pe același obiect, care afectează doar anumite transformări și afectează numai anumite axe.
După cum sa menționat în manual după specificarea obiectului țintă, probabil că veți dori să apăsați butonul " Set invers " din butonul constrângere (acest lucru se întoarce la același lucru ca diferența dintre părinte și fereastra de proprietăți față de vizualizarea 3D) . Acum aveți un obiect care se va comporta la fel ca obiectul copil dintr-un părinte obiect.
O ciudățenie cu constrângerea este că, dacă selectați atât obiectul copil, cât și obiectele părinte și le mutați, mișcarea asupra copilului va fi să fie compus, adică se va mișca de două ori mai repede decât părintele. După mișcare, pur și simplu apăsați butonul " Set invers " din nou, pentru a aduce copilul înapoi la locație corectă.
gif animat care arată Copilul de constrângere

Caracteristica mea preferată a copilului de constrângere este că puteți influența doar anumite transformări. Acest lucru este demonstrat în giful de mai sus.

Actuator părinte

Actuatorul părinte, fiind o cărămidă logică, funcționează doar în motorul jocului.Face exact același lucru ca un obiect părinte obișnuit. În timp ce părinții obișnuiți funcționează în motorul jocului (există câteva ciudățenii ). Actuatorul părinte oferă avantajul că părintele poate fi controlat dinamic în joc, prin cărămizi logice sau python.

Comentarii

  • O listă completă bună de re -directați oamenii către.
  • Foarte frumos! Pentru vizualizarea 3D, care este diferența dintre " Object " și " Object ( Keep transform) "?
  • Anson Savage, în Keep Transform obiectul va păstra exact aceeași locație în care ați aranjat obiectul în vizualizarea 3D.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *