Förarpanel¶

Redigera drivrutin-popover.¶
Referens
- Redigerare:
Graf-editor
- Läge:
Chaufförer
- Panel:
- Genväg:
N
Referens
- Meny:
- Genväg:
Ctrl-D
Denna panel är synlig i sidofältet i Drivrutinsredigerare eller som en popover när du lägger till en drivrutin till en egenskap.
Den visar egenskapen som körs, följt av en serie inställningar som bestämmer hur drivrutinen fungerar.
Inställningar för drivare¶
Typ¶
Det finns två kategorier av drivrutiner:
Inbyggda funktioner (Genomsnitt, Summa, Min och Max)
Den styrda egenskapen kommer att ha värdet av genomsnittet, summan, det lägsta respektive högsta värdet av värdena för de refererade Driver Variables. Om det bara finns en förarvariabel ger dessa funktioner samma resultat.
Custom (Scripted Expression).
Ett godtyckligt Python-uttryck som kan referera till Drivarevariablerna med namn. Se Utryck.
Drivarevärde¶
Det aktuella resultatet av drivrutinsinställningen. Användbar för felsökningsändamål.
Variabler¶
Uppdatera beroenden¶
Forcerar en uppdatering för Driver Value-beroenden.
Visa i drivrutinsredigeraren¶
Öppnar den fullt utrustade Drivers Editor. Den här knappen visas bara i popover-versionen av Drivrutiner-panelen.
Variabler för drivare¶
Variabler är referenser till egenskaper, transformationskanaler eller resultatet av en jämförelse mellan transformationer av två objekt.
Drivare bör komma åt objektdata via Drivarevariabler, snarare än direkta referenser i Python-uttrycket, för att beroenden ska kunna spåras korrekt.

Knapparna Lägg till, Kopiera, Klistra in.¶
- Lägg till inmatningsvariabel
Lägger till en ny förarvariabel.
- Kopiera/klistra in variabler
Kopierar den aktuella variabellistan så att den kan klistras in i en annan drivarens variabellista.
- Namn
Namn för användning i skriptade uttryck. Namnet måste börja med en bokstav och får endast innehålla bokstäver, siffror eller understreck.
- Variabel typ
Den typ av variabel som ska användas.
- Enstaka egenskap
Hämtar värdet för en RNA-egenskap som specificeras av en datablockreferens och en sökvägssträng.
När det gäller transform-egenskaper returnerar detta det exakta värdet för användargränssnittsegenskapen, medan Transform Channel tar hänsyn till föräldraskap och/eller begränsningar vid behov.
Se även Anpassade egenskaper.
- ID-typ
Typ av ID-block. Till exempel: Nyckel, Bild, Objekt, Material.
- ID
ID för typen av ID-block. Till exempel: ”Material.001”.
- RNA-väg
Egenskapens RNA-namn, baserat på en delmängd av Pythons syntax för attributåtkomst. Till exempel: location.x eller location[0] för X-platsens animationskanalvärde (före föräldraskap eller begränsningar), eller [”prop_name”] för en anpassad egenskap.
- Reserv
Om aktiverat, gör det möjligt att ange ett reservvärde som ska användas som variabelvärde om RNA-sökvägen inte kan lösas, istället för att orsaka ett fel i drivrutinsutvärderingen. För mer information se Context Property nedan.
Tips
Det enklaste sättet att skapa en variabel av den här typen är att använda kontextmenyalternativet Copy As New Driver för inmatningsegenskapen och klistra in resultatet i drivrutinen via Paste Driver Variables.
- Transformera kanal
Hämtar värdet för en Transform-kanal från ett objekt eller ben.
- ID
ID för objektet. Till exempel: Kub, armatur, kamera.
- Ben
För armaturer, namnet på armaturbenet. Till exempel: ”Bone”, ”Bone.002”, ”Arm.r”.
- Typ
Till exempel X Location, X Rotation, X Scale.
Alternativet Average Scale hämtar det kombinerade skalvärdet, beräknat som kubikroten av den totala volymförändringen. Till skillnad från X/Y/Z Scale kan detta värde vara negativt om objektet vänds genom negativ skalning.
- Läge (Rotation)
För rotationskanaler, anger vilken typ av rotationsdata som ska användas, inklusive olika uttryckliga Euler-ordningar. Standardvärdet är att använda målets Euler-ordning. Se Rotation Channel Modes.
- Rymden
Världsrymden, transformationsrymden och den lokala rymden.
- Rotationsskillnad
Anger värdet på rotationsskillnaden mellan två objekt eller ben, i radianer.
- Ben
För armaturer, namnet på armaturbenet. Till exempel: ”Bone”, ”Bone.002”, ”Arm.r”.
- Avstånd
Ger värdet av avståndet mellan två objekt eller ben.
- Ben
För armaturer, namnet på armaturbenet. Till exempel: ”Bone”, ”Bone.002”, ”Arm.r”.
- Rymden
Världsrymden, transformationsrymden och den lokala rymden.
- Egenskap för kontext
Ger värdet på en egenskap som implicit refererar till antingen en scen eller ett vylager i det animeringssystem som utvärderas för närvarande. Detta är en svag referens som inte leder till att den scen eller det vylager som refereras till från drivrutinen länkas när animeringsdata länkas.
Ett exempel på när sådana egenskaper spelar in är när det gäller en transformation av den aktiva kameran. Det är möjligt att sätta upp en drivare i en teckenfil och få drivaren att använda den inställda kameran när tecknet länkas till en uppsättning.
- Installera tillägg för kontextmeny
Aktiv scen, aktiv vy Lager.
- RNA-väg
Egenskapens RNA-namn, baserat på en delmängd av Pythons syntax för attributåtkomst. Till exempel: camera.location.x eller camera.location[0] för värdet för animationskanalen för kamerans X-läge (före föräldraskap eller begränsningar), eller [”prop_name”] för en anpassad egenskap.
- Reserv
Om aktiverat, kan ett reservvärde anges som ska användas som variabelvärde om RNA Path inte kan lösas, istället för att orsaka ett fel i drivrutinsutvärderingen.
Den här funktionen kan vara mycket användbar för att göra drivrutiner mer robusta när man implementerar scen-globala alternativ med hjälp av anpassade egenskaper. När objektet länkas till en annan scen kanske dessa anpassade egenskaper inte finns där och då kan fallback-alternativen användas för att tillhandahålla förnuftiga standardvärden.
Fallbacks kan också användas för att emulera lookup-beteendet i View Layer-läget för materialet Attribute Node.
Tips
Även om värdena för x/y/z-animeringskanalerna för kameraplatsen kan nås via camera.location[0/1/2], måste man för närvarande använda camera.matrix_world för att hämta dess plats och orientering i världsrymden efter föräldraskap och begränsningar. Denna egenskap kan lätt förstås genom att se matrisen som en array av fyra vektorer i World-rymden:
matrix_world[0][0/1/2] är riktningsvektorn Screen Right (kamerans lokala X).
matrix_world[1][0/1/2] är riktningsvektorn Screen Up (kamerans lokala Y).
matrix_world[2][0/1/2] är motsvarigheten till den riktning som kameran pekar.
matrix_world[3][0/1/2] är kamerans placering.
- Värde
Visar variabelns värde.
Rotationskanalens lägen¶
Rotation Transform-kanaler stöder ett antal driftlägen, inklusive:
- Auto Euler
Använder målets Euler-ordning för att dela upp rotationen i kanaler.
- XYZ Euler,…
Anger explicit den Euler rotationsordning som ska användas.
- Kvaternion
Ger en Quaternion-representation av rotationen.
- Gunga och X/Y/Z Twist
Delar upp rotationen i två delar: en Swing-rotation som riktar den angivna axeln i dess slutliga riktning, följt av en Twist-rotation runt den axeln. Detta är ofta nödvändigt för att köra korrigerande Shape Keys och ben för organisk ledrotation.
Denna uppdelning produceras ofta i riggar genom att använda ett hjälpben med en Damped Track Constraint för att extrahera swing-delen, och dess barn med Copy Transforms för att extrahera twist-komponenten.
Kanalvärdena för Swing och Y Twist är:
Falloff-kurvor för viktade vinklar.¶
- Y-rotation
Sann vinkel för vridningsrotationen.
- W Rotation
Sann vinkel för svängens rotation, oberoende av dess riktning.
- X-rotation, Z-rotation
Viktade vinklar som representerar mängden svängning runt X/Z-axeln.
Vinkelns storlek är lika med W Rotation när rotationen enbart sker runt den axeln, och avtar till noll när riktningen ändras mot den andra axeln, enligt avtrappningskurvorna i grafen till höger.
Matematiskt beräknas svängvinklarna från kvaternionkomponenter, med \(2 \arccos(w)\) för W och \(2 \arcsin(x)\) etc. för de andra. Den komponent av svängningsrotationen som motsvarar vridningsaxeln är alltid 0 och ersätts av vridningsvinkeln.
Uttryck¶
- Uttryck
Ett textfält där du kan ange ett godtyckligt Python-uttryck som hänvisar till Drivarevariabler med deras namn.
Uttrycket har tillgång till en uppsättning standardkonstanter och matematiska funktioner från math, bl_math och andra moduler, som tillhandahålls i Driver Namespace. För ett exempel på hur man lägger till en anpassad funktion i namnrymden, se driver namespace example.
Av prestandaskäl är det bäst att använda delmängden Simple Expressions så mycket som möjligt.
- Använd själv
Om detta alternativ är aktiverat kan variabeln self användas av drivrutiner för att referera till sina egna data. Användbart för objekt och ben för att undvika att behöva skapa en Driver Variable som pekar på sig själv.
Exempel: self.location.x applicerat på Y-rotationsegenskapen för samma objekt kommer att få objektet att tumla när det rör sig.
Observera att beroenden för egenskaper som nås via self kanske inte spåras fullt ut.
Enkla uttryck¶
Blender kan utvärdera en användbar delmängd av Python-drivareuttryck direkt, vilket avsevärt förbättrar prestandan, särskilt på flerkärniga system. För att dra nytta av detta måste drivareuttrycket endast använda följande funktioner:
- Namn på variabler
Använd endast ASCII-tecken.
- Bokstäver
Flyttal och decimalt heltal.
- Globaler
ram
- Konstanter
pi
,True
,False
- Operatörer
+, -, *, /, ==, !=, <, <=, >, >=, och, eller, inte, villkorlig operator/ ternär if
- Standardfunktioner
min
,max
,radians
,degrees
,abs
,fabs
,floor
,ceil
,trunc
,round
,int
,sin
,cos
,tan
,asin
,acos
,atan
,atan2
,exp
,log
,sqrt
,pow
,fmod
- Funktioner som tillhandahålls av Blender
”klämma”, ”klämma”, ”mjukt steg
Enkla uttryck utvärderas även när Python-skriptkörning är inaktiverad.
När ett uttryck utanför denna delmängd används visar Blender en varning för ”Långsamt Python-uttryck”. Men så länge som majoriteten av förarna använder enkla uttryck är det OK att använda ett komplext uttryck i några få utvalda fall.
Se även
Python och dess ”dokumentation <https://docs.python.org/>`__.