Arbetsflöde & exempel¶
Enkla drivrutiner kan konfigureras från popup-fönstret som visas när du lägger till en ny drivrutin. När du lägger till flera drivrutiner eller för mer avancerade konfigurationer är det bra att öppna Drivrutinseditor.
Transformera drivrutin¶
Styr en egenskap med ett objekts transform. I det här exemplet kommer Y-rotationen för objekt 2 att styras av X-positionen för objekt 1. Utgå från en enkel uppsättning med två objekt:
Lägg till en Driver till Rotation Y-egenskapen för det andra objektet via snabbmenyn eller med Ctrl-D.
Öppna Drivers Editor och välj egenskapen Y Euler Rotation i kanalområdet.
Öppna Sidebar-regionen och välj fliken Drivers.
Konfigurera drivaren så att den är det genomsnittligt värde för en transformkanal i det första objektet.
Experimentera med att flytta det första objektet och se hur det påverkar Y-rotationen för det andra objektet.
Scripted Expression - Omloppsbana runt en punkt¶
Kretsa ett objekts position runt en punkt med ett anpassat Scripted Expression. Objektets position kommer att ändras när tidslinjen skrubbas. Med hjälp av trigonometri kan cirkelrörelser definieras i 2D med hjälp av sinus- och cosinusfunktionerna. (Se Unit Circle.) I det här exemplet används den aktuella bildrutan som den variabel som framkallar rörelsen. frame är en Simple Expression som motsvarar bpy.context.scene.frame_current.

Lägg till en drivare till egenskapen X Location.
Ställ in Driver Type till Scripted Expression.
Lägg till uttrycket 0 + (sin(frame / 8) * 4), där:
frame/8 : är animationens aktuella bildruta, dividerad med 8 för att sakta ner omloppsbanan.
(sin( )*4) : multiplicerar resultatet av sin(frame/8) med 4 för en större cirkel.
0 + : används för att styra förskjutningen till omloppsbanans mittpunkt.
Lägg till en drivare till egenskapen Y Location med uttrycket 0 + (cos(frame / 8) * 4).
Skrubba tidslinjen för att se effekten. Experimentera med variablerna för att kontrollera omloppsbanans storlek och centrum.
Anpassad funktion - Kvadratvärde¶
Skapa en anpassad funktion för att få kvadraten på ett värde (t.ex. värde2). Om du lägger till funktionen i Driver Namespace kan den användas i drivareuttryck. I Driver Namespace finns en lista med inbyggda funktioner som kan användas i drivrutinsuttryck, samt konstanter som π och e. Dessa kan inspekteras via Python Console:
>>> bpy.app.driver_namespace[' <tab>
acos']
acosh']
asin']
asinh']
atan']
...
För att lägga till en ny funktion i Driver Namespace måste själva funktionen implementeras och sedan läggas till i bpy.app.driver_namespace.
Lägg till följande i textredigeraren i Blender och tryck på Kör skript:
import bpy def square(val): """Returns the square of the given value""" return val * val # Add function to driver_namespace. bpy.app.driver_namespace['square'] = square
Lägg till en drivare med ett Skriptat uttryck som till exempel square(frame).
Observera effekten när du skrubbar tidslinjen.
Det finns fler exempel på anpassade funktioner i Blenders textredigerare Enkla uttryck inte kan komma åt anpassade funktioner, är det bara meningsfullt att använda dem för komplexa beräkningar.
. EftersomVarning
Att försöka ersätta inbyggda poster i drivrutinens namnrymd kan leda till odefinierat beteende.
Visa Layer Attribute Lookup¶
Materialet Attribute Node i View Layer-läget söker automatiskt efter attributegenskapen på flera platser. Detta kan t.ex. göra det möjligt att ställa in ett visst värde för det anpassade attributet på nivån Scene eller World och sedan åsidosätta det på olika sätt för ett View Layer.

Kontextegenskaper för drivare implementerar inte detta beteende, så om det behövs måste det emuleras manuellt via reservvärden och ett villkorligt uttryck (villkor är Enkla uttryck).
För ett attribut med namnet attr försöker noden med följande sex RNA-sökvägsuppslagningar i ordning:
[”attr”] i det aktiva vylagret (anpassad egenskap).
attr i det aktiva vylagret (inbyggd egenskap).
[”attr”] i den aktiva scenen.
attr i den aktiva scenen.
world[”attr”] i den aktiva scenen.
world.attr i den aktiva scenen.
Beroende på den specifika egenskapen kan det vara tillräckligt att bara kontrollera en delmängd av dessa platser. Bilden till höger visar t.ex. hur man kommer åt ett attribut som man vet definitivt är en anpassad egenskap med ett färgvärde.
Drivarevariabler som har åtkomst till platser som inte är slutliga i uppslagskedjan bör använda fallback-värden som är ogiltiga för attributet (t.ex. negativa färgvärden), som sedan kan kontrolleras av det villkorliga uttrycket. Den slutliga variabeln bör falla tillbaka till ett giltigt standardvärde som ska användas när egenskapen inte alls är inställd.
Shape Viktiga drivkrafter¶
Förbättrad mesh-deformation¶
Åtgärda intersektionsproblem som uppstår när du använder armaturer och viktmålning, särskilt vid leder. Shape keys kan också användas för att justera och förfina en rigg, t.ex. för att föreslå muskelformationer. I det här exemplet används en shape key för att förbättra deformationen vid armbågen på en rudimentär arm.

Vänster: Skelettnätets deformation utan korrigering. Höger sida: Korrigerande formnyckel applicerad¶
- Konfigurera
Lägg till ett nät (i det här exemplet en cylinder med loopskärningar).
Lägg till en armatur med en kedja av ben.
Skinma mesh till armaturen med hjälp av viktmålning.
(Obs: för att koppla mesh till armatur: välj först mesh, sedan armatur och använd Ctrl-P för att koppla med automatiska vikter)
Experimentera med att posera armaturen och observera deformationen vid leden. För att åtgärda korsningsproblem eller vinklar som ser otillfredsställande ut kan du associera en Shape Key med en pose.
- Formnyckel
Posera armaturen så att problemen blir synliga. Var noga med att täcka de extrema poser som du vill stödja för riggen.
När nätet är markerat lägger du till en ny Shape Key utöver Basis-nyckeln.
För att kunna skriva formnyckeln ovanpå armaturdeformationen måste du aktivera både Redigera Mode Display och Cage Redigeraing i Armature-modifieraren.
Gå till redigeringsläget och välj den nya formnyckeln i egenskapspanelen. Justera vertikalerna efter önskemål. Välj knappen Basis för att växla mellan originalmeshen och dina ändringar. (Obs: var noga med att endast göra ändringar i din form och inte i originalmeshen eller andra befintliga nycklar)
När du är nöjd med hur deformationen ser ut för den problematiska positionen måste du konfigurera en drivrutin för att aktivera formen på ett smidigt sätt när du går in i den positionen.
- Chaufför
Lägg till en drivare till Värdet för den formnyckel som du har skapat.
Öppna Drivers Redigerare och välj drivrutinen.
- Metod 1 – Direkt mappning till ett rotationsvärde för ben
Ett enkelt sätt att konfigurera drivaren är genom en direkt korrespondens mellan värdet på ett bens rotationskanal och aktiveringen av formnyckeln Värde. Denna metod har nackdelen att den förlitar sig på en enda kanal för ett bens rotation, vilket kan vara otillräckligt för att exakt uttrycka det villkor under vilket formnyckeln ska aktiveras.
På fliken Drivers väljer du Averaged Value för rotationen av det ben som du poserar.
Förstå den rotationsaxel som du är intresserad av genom att aktivera axelvisning i armaturen eller genom att observera benets transformvärden i Properties.
Välj rotationskanalen och ställ in den på lokal, vilket innebär att benets rotationsvärde är relativt dess överordnade ben.
Ställ in punkter i förarkurvan manuellt genom att välja ett handtag och dra det eller genom att ange värden i fliken F-Curve. Y-axeln representerar formnyckeln Value, som ska gå från 0,0 till 1,0. X-axeln är vanligtvis ramen, men för den här drivrutinen representerar den rotationsvärdet i radianer. Du kan ha fler än två punkter i kurvan och justera övergångarna med handtagen i kurvvyn (G för att flytta).
För att kontrollera att drivrutinen fungerar korrekt kan du avmarkera alternativet att endast visa drivrutiner för valda objekt. På så sätt kan du posera armaturen och hålla ett öga på drivdonet.
- Metod 2 – Rotationsskillnad till ett målben
Denna metod kräver ytterligare ett mål- eller korrigerande ben, men den uttrycker bättre det rumsliga tillståndet i 3D-rymden för det ben som orsakar problemet.
I armature Redigera Mode lägger du till ett nytt ben som extruderas från Bone 1, i den position där Bone 2 ska ha formnyckeln aktiv. Denna typ av ben följer vanligtvis en namngivningskonvention som ”TAR-” (target) eller ”COR-” (corrective).
På fliken Drivers väljer du Averaged Value för rotationsskillnaden mellan det ben som du roterar och målbenet. En rotationsskillnad är den minsta vinkeln mellan två objekt i World Space. Det är därför viktigt att benen har samma rot, så att det enda som påverkar vinkeln mellan benen är rotationen av ett av dem. När deformationsbenet (Bone 2) når målrotationen (TAR-Bone 2) kommer rotationsskillnaden att vara 0°.
Justera manuellt förarkurvans handtag så att formnyckelns Värde (Y-axel) är 1,0 när rotationsskillnaden (X-axel) är 0°. Värdet ska vara 0,0 när armen är utsträckt, och då ska rotationsskillnaden vara cirka 90° eller mer (i radianer).
Se stegen i Metod 1 för hur du justerar kurvhandtagen och bekräftar att funktionen fungerar. Posera armaturen för att kontrollera att intervallen är korrekta.
Kedjade relativa formnycklar¶
Aktivera olika formknappar i följd. I det här exemplet aktiveras först Key 1 och sedan Key 2 när ett ben flyttas. Se även relativa formnycklar blandas additivt.
- Formnycklar
Lägg till två formnycklar till ett nät, förutom Basis.
![]() Dessa tre identifierare (serienummer, tillverkar- och modell-ID) utgör grunden för skärmidentifiering i macOS. Om någon av dessa tre identifierare ändras kommer systemet att tilldela en ny identitet (UUID) till den virtuella skärmen och behandla den som en nyansluten skärm.¶ |
![]() Nyckel 1: ovansidorna flyttas upp med 1 m.¶ |
![]() Nyckel 2: inre topp flyttad upp med 1 m.¶ |
- Chaufförer
Lägg till en armatur med ett enda ben för att styra formknapparna. Målet är att aktivera tangenterna i följd när detta ben rör sig uppåt.
Som framgår av bilden ovan påverkas både Key 1 och Key 2 när benet är halvvägs upp. Det är en bedömningsfråga om Key 1 ska ha sitt maximala Värde innan Key 2 börjar bli aktiv, eller hur mycket de ska överlappa varandra. Detta exempel visar en sömlös blandning.
För en sömlös blandning där det finns överlappning ska Key 1 ha ett Value på 0,0 när benet är längst ned och öka linjärt till 1,0 tills benet har passerat mittpunktens höjd. Key 2 ska ha ett värde på 0,0 före mittpunktens höjd och sedan öka i samma takt som Key 1 tills det når Value 1,0 när benet är på maximal höjd.
Lägg till en drivare till Värdet av Knapp 1 och Knapp 2. På fliken Drivare konfigurerar du båda drivrutinerna till att vara Genomsnittligt värde för en variabel med benets Z-position.
Bestäm intervallet för benets rörelse i World Z-axeln genom att flytta upp det så att det är i linje med meshens ovansida när båda tangenterna är aktiva. Här kommer vi att använda [0.0, 2.5].
Konfigurera drivarefunktionerna så att Värdet på formknapparna (Y-axeln) är som önskat för benets höjd (X-axeln).
Drivfunktionerna ska vara linjära och kan därför definieras analytiskt med en funktion av typen \(y = a + bx\), där \(a\) är en förskjutning i \(y\) och \(b\) är lutningen.
I fliken Modifierare lägger du till en Generator av typen Extended Polynomial för båda drivrutinerna.
Lek med värdena för \(a\) och \(b\) så att kurvorna går från [0,0, 1,0] på Y-axeln och från [0,0, 2,5] på X-axeln. Kurvorna ska överlappa varandra i mitten av X-axeln och de ska ha samma lutning (\(b\)).
Möjliga värden är Key 1: \(y = 0,0 + 0,6x\) och Key 2: \(y = -0,5 + 0,6x\).
Observera att funktionerna går utanför intervallet [0,0, 1,0] för formknapparnas Value, men det har ingen effekt eftersom Value är fastspänt i ett Range i panelen Shape Keys.