Hvordan gjør jeg “ foreldre ” objekter?

Jeg ser etter en måte å ha to separate objekter koblet til, slik at når jeg flytter det første objektet, vil det andre også bevege seg. foreldre brukes, men hvordan foreldrer jeg et objekt?

Svar

For et raskt og enkelt svar, velg objektet som vil bli koblet til (underobjekt) først, velg deretter objektet som vil overføre transformasjonsdata til underobjektet (overordnet objekt). Valgrekkefølgen er viktig, det overordnede objektet må velges sist slik at det er aktivt objekt . Trykk nå Ctrl P > Objekt .


Det er mange måter å foreldre objekter i blender. Du kan overordne objekter fra fem forskjellige vinduer: 3D-visning, Properties Editor, Outliner, Text Editor og Console, pluss at det er en skremmende liste over forskjellige foreldretyper.
liste over alle p andre valg
Det viser at foreldre er en kompleks prøvelse, så la meg prøve å forenkle det.
Ut av den store listen er det egentlig bare tre typer foreldre. Det er Objekt , Armatur og Vertex .

Forskjellene i de mange foreldretypene

  • Objekt Er den klart vanligste typen foreldre. Den brukes i åtte av de tretten foreldretypene.
    Hver gang to eller flere objekter velges, er typen type foreldre tilgjengelig. Enhver oversettelse (skaleringsrotasjon og plassering) til det overordnede objektet vil påvirke barnet.

  • Armature Deform Dette er uten tvil den mest kompliserte gruppen av foreldre typer. Armature Deform er bare tilgjengelig når det aktive objektet er en Armature. Den setter en Objekt forelder, med det valgte objektet som barnet, og det aktive objektet (ankeret) som overordnet. Det legger til en Armature modifiser til underobjektet, med ankeret som allerede er angitt som modifikatorens målobjekt. På dette tidspunktet vil det ikke gjøre mer enn en vanlig objektforelder. De tre underalternativene Tomme grupper , automatiske vekter og konvoluttvekter brukes i riggeprosessen.

  • Bone Er bare tilgjengelig når det aktive objektet er en Armature. Er akkurat det samme som en objektforelder, men her blir barnet forvandlet fra et enkelt bein.
    På bildet nedenfor plasserte jeg ringen rundt fingeren, deretter valgte Shift armaturen. Med armaturen nå som det aktive objektet kan du gå inn i Pose -modus og velge riktig ben. Til slutt foreldre objektet til bein, med Ctrl P > Bone . eksempelbruk av benforeldertypen

  • Bone Relative Er det samme som bein med den forskjellen at eventuelle endringer laget i redigeringsmodus til overordnet bein vil ikke påvirke underobjektet.

  • Curve Deform Er bare tilgjengelig når det aktive objektet er et kurveobjekt ( Bezier eller Nurbs kurve). Den setter en Objekt forelder, med det valgte objektet som underordnet, og det aktive objektet (kurven) som overordnet. Det legger til en Curve modifikator til underobjektet med kurven som allerede er angitt som modifikatorens målobjekt.

  • Følg sti igjen er bare tilgjengelig når det aktive objektet er et kurveobjekt. Is setter en Objekt forelder, det samme som Curve Deform gjør. Den animerer også Evalueringstid for Baneanimering på kurveobjektet.
    vindu med egenskaper som viser kurvefanen med evalueringstid uthevet

  • Path Constraint Er det siste alternativet bare tilgjengelig for kurveobjekter. Det angir ingen foreldre, i stedet legger det til en Follow Path -begrensning til det valgte objektet med begrensningens mål som det aktive objektet (kurven).

  • Gitterdeformering Er et spesialalternativ som bare er tilgjengelig når det aktive objektet er et gitter. Det setter gitteret som overordnet og det valgte objektet som barnet, pluss at det legger til et gittermodifikator til det valgte objektet.

  • Vertex Dette er en av de tre viktigste foreldretypene. Det skiller seg fra en objektforelder ved at bare plasseringsinformasjon blir gitt til barnet. Det er plasseringen av toppunktet som er overordnet. Det overordnede objektet trenger ikke å bevege seg, men en modifikator kan endre posisjonen til toppunktet, underordnet objekt vil bevege seg.

  • Vertex (Triangle) Ved første øyekast kan det se ut som en objektforelder, men snarere er det nøyaktig det samme som en toppunktforelder, bortsett fra nå er det 3 hjørner. Fra de tre hjørnepunktene får barnet nå plassering, skala og rotasjon som i en objektforelder; med fordelen av å spore toppunktene.

3D-visningen

Den vanligste måten å overordne objekter er i 3D-visningen med to eller flere objekter valgt, trykk Crtl P > Objekt . Merk at overordnet er aktivt objekt og at barnet er det valgte objektet. Dette er det samme som å bruke menyen i 3D-visningsoverskriften Objekt > Overordnet > Objekt . Barneforholdsrelasjonsskip er representert i 3D-visningen med en liten stiplet linje som forbinder gjenstandenes opprinnelse. Sette foreldre via snarvei i 3D-visning
Her har kuben og apen allerede blitt objektforeldret. Kuben er overordnet (aktivt objekt) og apen er barnet.

Outliner

Outliner er flott fordi det ikke er noen forveksling med det aktive objektet, eller hvilken vei foreldre går. Du drar bare ikonet til det ønskede underobjektet, og slipper det på toppen av det ønskede overordnede objektet. Hvis det er mer enn ett alternativ for foreldre, vil blenderen spørre deg om hva du vil bruke. animert gif som viser foreldreprosessen i disposisjonen

Egenskapsvinduet

Du kan ganske enkelt velge objektet som skal være overordnet. Ved hjelp av denne metoden er det aktive objektet alltid underordnet .
egenskaper for redigeringsobjekt for egenskaper tabelloverordnet innstilling uthevet
Men foreldreobjekter som bruker denne metoden, resulterer i svært forskjellige resultater fra 3D-visning eller disposisjon.
På bildet under er både kuben og kjeglen nøyaktig samme sted , og har ingen rotasjon eller skala. Venstre side er hvordan begge så ut før foreldre. Jeg foreldret kuben til kjeglen både i sentrum og på høyre side. Senteret er foreldret gjennom 3D-visningen, og til høyre brukte jeg feltet i eiendomsvinduet. forskjell mellom de forskjellige foreldrealternativene
Forskjellen kommer fra de forskjellige python-kommandoene (mer om det i pythonseksjonen). Det som er viktig er når du bruker feltet i vinduet med egenskaper, blir barnobjektets avstand fra verdensopprinnelsen (0,0,0) forskjøvet fra foreldrene. Dette vises i bildet over ved at kuben er 4 enheter langs kjeglenes X-akse.

Python

De to siste stedene du kan overordne objekter er Teksteditor og Konsoll . Begge disse gir tilgang til foreldre direkte via python. De to foreldrekommandoer er

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

Dette skriptet blir overordnet akkurat som 3D-visningen.

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

Imidlertid er denne kodelinjen

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

vil være det samme som å bruke eiendomsvinduet. Årsaken er at eiendomsvinduet kjører bpy.context.object.parent = bpy.data.objects["parent"], men overalt ellers bruker blender parent_set().

Du kan imidlertid unngå å bruke bpy.ops.object.parent_set() og ha barnobjektet igjen i sin posisjon etter foreldre g. For å gjøre det, må du eksplisitt sette barnet «s matrix_parent_inverse til den omvendte verdensmatrisen til foreldrene. Se koden nedenfor:

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

Andre alternativer

Det er to andre måter å få samme type forhold som en objektforelder, disse to er Child of Constraint og Parent Actuator .

Child of Constraint

The Child Of Constraint fungerer på samme måte som en objektforelder, med den ekstra fordelen som følger med å være en begrensning: animerbare, flere foreldre på det samme objektet, som bare påvirker visse transformasjoner og bare påvirker visse akser.
Som nevnt i etter å ha spesifisert målobjektet, vil du sannsynligvis trykke " Still invers " knappen i begrensning (dette går tilbake til den samme tingen som forskjellen i foreldrene fra vinduet med proprietærskap mot 3D-visningen) . Nå har du et objekt som vil oppføre seg akkurat som barnobjektet i en objektforelder.
En særegenhet med begrensningen er at hvis du velger både barnet og foreldreobjektene og flytter dem, vil bevegelsen på barnet være sammensatt, noe som betyr at den vil bevege seg dobbelt så raskt som foreldrene. Etter bevegelsen trykker du bare på " Still invers " -knappen igjen, for å bringe barnet tilbake til riktig plassering.
animert gif som viser Barnet av begrensning

Min favorittfunksjon av begrensningsbarnet er at du bare kan påvirke visse transformasjoner. Dette demonstreres i gifen ovenfor.

Parent Actuator

Parent Actuator, som en logisk murstein, fungerer bare i spillmotoren.Det gjør nøyaktig det samme som en vanlig objektforelder. Mens vanlig foreldre fungerer i spillmotoren (det er noen quirks ). Foreldreaktuatoren gir fordelen at foreldrene kan styres dynamisk i spillet, via logiske klosser eller python.

Kommentarer

  • God omfattende liste å gjenopprette -dirigere folk til.
  • Veldig hyggelig! For 3D-visningen, hva er forskjellen mellom " Objekt " og " Objekt ( Keep transform) "?
  • Anson Savage, i Keep Transform vil objektet beholde nøyaktig samme plassering som du arrangerte objektet i 3d-visningen.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *