Objekt för föräldraskap

När du modellerar ett komplext objekt, t.ex. en klocka, kan du välja att modellera de olika delarna som separata objekt. För att få alla delar att röra sig som en (”klockan”) kan du utse ett objekt till förälder till alla de andra delarna. Dessa andra delar blir dess barn, och varje translation, rotation eller skala av föräldern kommer också att påverka dess barn.

I motsats till de flesta biologiska livsformer har varje objekt eller ben i Blender högst en förälder. Om ett objekt redan har ett föräldraobjekt och du ger det en annan förälder, kommer Blender att ta bort den tidigare föräldrarelationen. När pluralformen ”föräldrar” används i detta kapitel refererar det till hierarkin av föräldrar, alltså ett objekts förälder, farförälder, morförälder, farfars farförälder och så vidare.

Gör förälder

Referens

Läge:

Objektläge

Meny:

Objekt ‣ Förälder

Genväg:

Ctrl-P

För att föräldra objekt väljer du minst två objekt (välj barnobjekten först och välj det överordnade objektet sist) och trycker på Ctrl-P. Menyn Set Parent To öppnas och du kan välja en av flera möjliga olika typer av föräldraskap. Om du väljer en av posterna i Set Parent To bekräftas detta och relationen mellan barn/barn och förälder skapas. De valda objekten kommer att ha sin ”förälder” inställd på aktivt objekt, och som ett resultat kommer de att vara ”syskon”.

Popup-menyn Set Parent To är kontextkänslig, vilket innebär att antalet poster som visas kan ändras beroende på vilka objekt som markeras när genvägen Ctrl-P används.

Att flytta, rotera eller skala föräldern kommer vanligtvis också att förändra barnet/barnen. Men att transformera förälderns barn/barn påverkar inte föräldern. Med andra ord går påverkan i riktning från förälder till barn och inte från barn till förälder.

Tips

Du kan ”flytta” ett underordnat objekt tillbaka till dess överordnade genom att cleara dess ursprung.

Typ

Blender stöder många olika typer av föräldraskap, listade nedan. Förutom att föräldra de valda objekten lägger vissa typer till en Modifier eller Constraint till barnobjekten, med föräldern som målobjekt eller aktiverar en föräldraegenskap, t.ex. Follow Path.

Behåll Transform

Objektets aktuella världstransform (dvs. dess absoluta position, rotation och skala i världen) beräknas. Den nya föräldern ställs in och sedan beräknas Parent Inverse-matrisen så att objektet efter att den nya föräldern har ställts in fortfarande har sin tidigare världstransform.

Råd

Använd outlinern

Det finns ett annat sätt att se förhållandet mellan förälder och barn i grupper och det är att använda vyn Outliner i Outliner editor.

Förälder invers

Blender kan tilldela en förälder utan att flytta barnobjektet. Detta uppnås via en dold matris som kallas Parent Inverse matrisen, som sitter mellan transform av föräldern och barnet.

När objekt parenteras med Ctrl-P, uppdateras Parent Inverse matrix. Beroende på valet i Set Parent-menyn uppdateras även objektets lokala plats, rotation och skala. För mer information, se Object Parent.

Matrisen Parent Inverse kan rensas med hjälp av Clear Parent Inverse.

Observera

När du ställer in föräldern via panelen Object Properties återställs alltid matrisen Parent Inverse. Detta kan orsaka ett oväntat hopp i objektets position. För att undvika detta, använd Ctrl-P för att ställa in den nya föräldern.

Objektförälder

Object Parent är den mest generella formen av föräldraskap som Blender stöder. Den tar valda objekt och gör det aktiva objektet till föräldraobjekt för alla valda objekt. Varje barnobjekt kommer att ärva transformationerna från föräldern. Det överordnade objektet kan vara av vilken typ som helst.

Om objektet har en befintlig överordnad enhet rensas den först. Detta flyttar objektet till sin egen plats, rotation och skala, utan dess förälders påverkan.

Det finns tre operatorer som gör att du kan ställa in ett objekts förälder. De skiljer sig åt i hur de beräknar Parent Inverse matrix och den lokala Transform för objektet.

Exempel: Objektförälder (Håll transformera)

Object Parent med Keep Transform behåller alla tidigare transformationer som tillämpats på dem från det tidigare överordnade objektet.

Antag att vi har en scen som består av tre objekt, nämligen två tomma objekt med namnen ”EmptyA” och ”EmptyB”, och ett Monkey-objekt. Fig. Scen utan föräldraskap. visar de tre objekten utan att några föräldraskapsrelationer är aktiva för dem.

../../../_images/scene-layout_object_editing_parent_keep-transform-a.png

Scen utan föräldraskap.

Om du väljer Monkey-objektet genom att klicka på LMB och sedan Shift-LMB klicka på ”EmptyA”-objektet och tryck på Ctrl-P och välj slutligen Object från popup-menyn Set Parent To. Detta kommer att resultera i att ”EmptyA”-objektet blir föräldraobjekt till Monkey-objektet. Med endast ”EmptyA” valt kommer rotation/skalning/flyttning av det att resultera i att Monkey-objektet ändras på respektive sätt.

Skala ”EmptyA”-objektet så att apan blir mindre och flyttas lite åt vänster.

../../../_images/scene-layout_object_editing_parent_keep-transform-b.png

Apan är ett underordnat objekt till ”EmptyA”.

Om du bara markerar Monkey-objektet genom att klicka på LMB och sedan Shift-LMB klicka på ”EmptyB”-objektet och tryck på Ctrl-P och välj Object från popup-menyn Set Parent To. Detta kommer att resultera i att ”EmptyB”-objektet blir föräldraobjekt till Monkey-objektet. Lägg märke till att när du ändrar Monkey-objektets förälder ändras Monkey-objektets skala.

../../../_images/scene-layout_object_editing_parent_keep-transform-c.png

Apan är ett underordnat objekt till ”EmptyB”.

Detta sker eftersom Monkey-objektet aldrig fick sin skala ändrad direkt, ändringen skedde eftersom det var barn till ”EmptyA” som fick sin skala ändrad. När apans förälder ändrades till ”EmptyB” togs de indirekta förändringarna i skalan bort, eftersom ”EmptyB” inte har fått sin skala ändrad.

Detta är ofta det beteende som krävs, men det är också ibland användbart att om du ändrar ditt föräldraobjekt att barnobjektet behåller alla tidigare transformationer som det fick från det gamla föräldraobjektet; Om vi istället när vi ändrade apans föräldraobjekt från ”EmptyA” till ”EmptyB” hade valt föräldratyp Object och aktiverat Keep Transform, skulle apan behålla sin skalinformation som den fick från den gamla föräldern ”EmptyA” när den tilldelas den nya föräldern ”EmptyB”.

../../../_images/scene-layout_object_editing_parent_keep-transform-d.png

Objektets förälder med Keep Transform.

Om du vill följa med i ovanstående beskrivning här är blend-filen:

File:Parent_-_Object_(Keep_Transform)_(Demo_File).blend.

Benförälder

Med Bone parenting kan du göra ett visst ben i en armatur till föräldraobjekt för ett annat objekt. Detta innebär att när du transformerar en armatur kommer det underordnade objektet endast att röra sig om det specifika benet är det underordnade objektet för rörelserna.

../../../_images/scene-layout_object_editing_parent_bone1.png

Tre bilder av armaturer med fyra ben.

I fig. Tre bilder av armaturer med fyra ben. med det andra benet som är benförälder till barnobjektet kuben. Kuben transformeras endast om det 1:a eller 2:a benet gör det. Observera att förändring av det 3:e och 4:e benet inte har någon effekt på kuben.

För att använda benföräldraskap måste du först välja alla barnobjekt som du vill föräldra till ett specifikt armaturben, sedan Shift-LMB välja armaturobjektet och växla det till Pose Mode och sedan välja det specifika ben som du vill ska vara föräldrabenet genom att LMB välja det. När du är klar trycker du på Ctrl-P och väljer benet från popup-menyn Set Parent To.

När du nu transformerar det benet i Pose Mode kommer de underordnade objekten också att transformeras.

Relativt föräldraskap

Bone relative parenting är ett alternativ som du kan växla mellan för varje ben. Detta fungerar på samma sätt som benföräldraskap med en skillnad.

Om du har parenterat ett ben till några underordnade objekt och du markerar benet och växlar till redigeringsläge och sedan flyttar benet; När du växlar tillbaka till poseringsläge på benet kommer det underordnade objektet som är parenterat till benet att snäppa tillbaka till benets position i poseringsläge.

../../../_images/scene-layout_object_editing_parent_bone2.png

Enstaka armaturben som har ett underordnat objekt, kuben, som är parenterat till det med hjälp av benparenting.

I fig. Enstaka armaturben som har ett underordnat objekt, kuben, som är parenterat till det med hjälp av benparenting. visar den första bilden kubens och armaturens position innan benet flyttas i Redigera Mode. den andra bilden visar kubens och armaturens position efter att benet valts i Redigera Mode, flyttats och återgått till Pose Mode. Lägg märke till att barnobjektet flyttas till den nya positionen för posebenet.

Relativt föräldraskap för ben fungerar annorlunda; om du flyttar ett överordnat ben i redigeringsläget kommer barnobjekten inte att flyttas till den nya platsen för Pose-benet när du växlar tillbaka till Pose-läget.

../../../_images/scene-layout_object_editing_parent_bone3.png

Ett ben med ett ben som är relativ förälder till en kub.

I fig. Ett ben med ett ben som är relativ förälder till en kub. visar den första bilden kubens och armaturens position innan benet flyttas i Redigera Mode. den andra bilden visar kubens och armaturens position efter att benet valts i Redigera Mode, flyttats och återgått till Pose Mode. Lägg märke till att barnobjektet inte flyttas till den nya positionen för posebenet.

Observera

När du använder Ctrl-P för att ställa in föräldrar, kommer valet ”Bone” eller ”Bone Relative” att rensa respektive ställa in benets ”Relative Parenting”-alternativ. Eftersom ”Relative Parenting” är ett alternativ som ställs in per ben påverkar detta alla barnobjekt till det benet samtidigt.

Vertex-förälder

För objekt av typen curve, surface, mesh och lattice finns det möjlighet att använda en av dess vertex eller punkter som förälder till andra objekt. Du kan också överordna ett objekt till en enda vertex eller en grupp med tre vertex; på så sätt kommer barnet/barnen att röra sig när föräldrameshen deformeras.

Vertex Parent från redigeringsläget

I Object Mode markerar du barnet/barnen och sedan det överordnade objektet. Tab till Redigera Mode och på det överordnade objektet markerar du antingen en vertex som definierar en enda punkt, eller tre vertex som definierar ett område (de tre vertexen behöver inte bilda en komplett yta; de kan vara vilka tre vertexer som helst på det överordnade objektet), och sedan trycker du på Ctrl-P och bekräftar.

Om en enda vertex har valts dras en relations-/föräldralinje från vertexen till barnet/barnen. Om tre vertexar valdes dras en relations-/föräldralinje från den genomsnittliga mitten av de tre punkterna (i föräldraobjektet) till barnet/barnen. När nu föräldernätet deformeras och den valda förälderns vertex/vertices rör sig, kommer barnet/barnen också att röra sig.

Vertex Parent från objektläge

Vertexparenting kan utföras från Object Mode, detta görs som vanlig objektparenting, tryck på Ctrl-P i Object Mode och välj Vertex eller Vertex (Triangle).

De närmaste hörnen kommer att användas från varje objekt, vilket normalt är vad du vill ha.

Vertex Exempel på förälder.
../../../_images/scene-layout_object_editing_parent_object-mode-example-1.png

De små kuberna kan var och en automatiskt parenteras till en triad av närliggande hörn på ikosfären med hjälp av ”Vertex (Triangle)” i snabbmenyn Set Parent.

../../../_images/scene-layout_object_editing_parent_object-mode-example-2.png

Omformning av objektet i Redigera Mode innebär sedan att var och en av kuberna följer sin vertexförälder separat.

../../../_images/scene-layout_object_editing_parent_object-mode-example-3.png

Om du skalar den överordnade ikosfären i Object Mode innebär det att även de underordnade kuberna skalas som förväntat.

Med hjälp av kontextmenyalternativet för föräldrar kan användarna snabbt skapa ett stort antal föräldrarelationer för vertex och slipper det tråkiga arbetet med att skapa varje föräldra-barn-relation för vertex separat.

Observera

Det är i själva verket en sorts ”omvänd” hook.

Gör Parent utan Inverse

Referens

Läge:

Objektläge

Meny:

Objekt ‣ Förälder ‣ Gör förälder utan invers

Detta ställer in föräldern och återställer sedan Parent Inverse-matrisen och objektets lokala plats. Som ett resultat kommer objektet att flytta till den överordnade positionen, men behålla sin rotation och skala.

Behåll Transform

Objektets aktuella världstransform (dvs. dess absoluta position, rotation och skala i världen) beräknas. Den nya föräldern ställs in och sedan ställs de lokala transformvärdena in på ett sådant sätt att objektet fortfarande befinner sig i sin tidigare världstransform efter att den nya föräldern har ställts in.

Tydlig förälder

Referens

Läge:

Objektläge

Meny:

Objekt ‣ Förälder

Genväg:

Alt-P

Du kan ta bort en förälder-barn-relation via Alt-P.

Tydlig förälder

Om föräldern i gruppen är markerad görs ingenting. Om ett barn eller flera barn markeras kopplas de bort från föräldern, eller frigörs, och återgår till sin original placering, rotation och storlek.

Rensa och behåll omvandlingen

Frigör barnen från föräldern och behåller den placering, rotation och storlek som föräldern har gett dem.

Se Non-Uniform Scale som kan gälla här.

Klar Förälder Invers

I stället för att ta bort det hierarkiska förhållandet mellan förälder och barn rensas matrisen Parent Inverse från de valda objekten. Med en tom matris tolkas egenskaperna för placering, rotation och skala för de underordnade objekten i det överordnade objektets koordinatrymd.

Kända begränsningar

Icke-uniform skala

En förälder med ojämn skala och rotation i förhållande till sitt barn kan orsaka en shear-effekt.

Även om detta stöds av föräldraskapet, kommer skjuvningen att gå förlorad när föräldern rensas eftersom den inte kan representeras av plats, skala och rotation.

Om Clear and Keep Transformation flyttar objektet är ojämn skala den mest sannolika orsaken.