Introduktion¶
Inverse Kinematics (IK) förenklar animationsprocessen och gör det möjligt att göra mer avancerade animationer med mindre ansträngning.
Inverse Kinematics gör att du kan positionera det sista benet i en benkedja och de andra benen positioneras automatiskt. Det är ungefär som när man flyttar ett finger så att armen följer efter. Med normala poseringstekniker måste du börja från rotbenet och ställa in benen sekventiellt tills du når spetsbenet: När varje föräldraben flyttas ärver dess barnben dess placering och rotation. Det blir alltså svårare att göra små exakta förändringar i poserna längre ner i kedjan, eftersom du kanske måste justera alla föräldrabenen först.
Denna ansträngning undviks effektivt genom att använda IK.
IK görs mestadels med benbegränsningar även om det också finns en enkel Auto IK-funktion i Pose Mode. De fungerar med samma metod men begränsningarna erbjuder fler alternativ och kontroll. Se följande sidor för mer information om dessa begränsningar:
Armatur IK Panel¶
Referens
- Läge:
Pose-läge
- Panel:
Denna panel används för att välja IK-solvertyp för ankaret: Standard eller iTaSC. För det mesta kommer man att använda Standard IK-solver.
Standard¶
Att göra
Lägg till denna information.
iTaSC¶
iTaSC står för instantaneous Task Specification using Constraints (omedelbar uppgiftsspecifikation med hjälp av begränsningar).
iTaSC använder en annan metod för att beräkna jakobianen, vilket gör att den kan hantera andra begränsningar än bara position och orientering för endeffektorer: iTaSC är en generisk IK-lösare med flera begränsningar. Denna förmåga utnyttjas dock ännu inte fullt ut i den nuvarande implementeringen, endast två andra typer av begränsningar kan hanteras: Avstånd i det kartesiska utrymmet och ledrotation i ledutrymmet. Den första gör det möjligt att hålla en end effector inom, vid eller utanför en sfär centrerad på en målposition, den andra är möjligheten att direkt styra rotationen av ett ben i förhållande till dess förälder. De som är intresserade av matematiken kan hitta en kort beskrivning av den metod som används för att bygga Jacobian här.
iTaSC accepterar en blandning av begränsningar och flera begränsningar per ben: lösaren beräknar den optimala posen enligt respektive vikt för varje begränsning. Detta är en stor förbättring jämfört med det nuvarande begränsningssystemet där begränsningarna löses en efter en i definitionsordning så att motstridiga begränsningar skriver över varandra.
- Precision
Den maximala variationen av endeffektorn mellan två på varandra följande iterationer vid vilken en pose erhålls som är tillräckligt stabil och lösaren bör stoppa iterationerna. Lägre värden innebär högre precision för endeffektorns position.
- Iterationer
Den övre gränsen för antalet iterationer.
- Lösare
Väljer den inversa Jacobian-solver som iTaSC ska använda.
- SDLS
Beräknar dämpningen automatiskt genom att uppskatta graden av ”annullering” i armaturens kinematik. Den här metoden fungerar bra med begränsningen Copy Pose men har nackdelen att den dämpar mer än nödvändigt runt den singulära posen, vilket innebär långsammare rörelser. Naturligtvis märks detta bara i simuleringsläget.
- DLS
Beräknar dämpningen manuellt, vilket kan ge större reaktivitet och mer precision.
- Dämpning Max
Maximal mängd dämpning. Mindre värden innebär mindre dämpning och därmed högre hastighet och bättre precision, men också större risk för svängning vid singulär position. 0 betyder ingen dämpning alls.
- Dämpning Epsilon
Intervall för dämpningszonen runt singulär position. Mindre värden innebär en mindre kontrollzon och större risk att passera över den singulära positionen, vilket innebär svängning.
Observera
Damping och Epsilon måste ställas in för varje armatur. Du bör använda de minsta värdena som bevarar stabiliteten.
Observera
SDLS-lösaren fungerar inte tillsammans med en Distance constraint. Du måste använda DLS-solvern om du ska ha en singulär pose i din animation med Distance constraint.
Båda lösningarna fungerar bra om du inte har en singulär pose.
Animering¶
I animationsläget fungerar iTaSC som en IK-lösare: den är statslös och använder posen från F-kurvornas interpolering som startposen före IK-konvergensen. Målhastigheten ignoreras och solvern konvergerar tills den givna precisionen har uppnåtts. Ändå är den nya solvern vanligtvis snabbare än den gamla och tillhandahåller funktioner som är inbyggda i iTaSC: flera mål per ben och flera typer av begränsningar.
Simulatorspel (Alla)¶
Simuleringsläget är lösarens tillståndsläge: det uppskattar målets hastighet, arbetar i en ”sanntidskontext”, ignorerar rotation från nyckelrutor (utom via en ledrotationsbegränsning) och bygger upp en tillståndscache automatiskt.
- Upprepning
- Aldrig
Lösaren startar från vilopositionen och upprepar inte (konvergerar) ens för den första bildrutan. Detta innebär att det tar några bildrutor att nå målet i början av animationen.
- Initialer
Lösaren startar från restpositionen och upprepar tills den angivna precisionen uppnås, men endast på den första bilden (dvs. en bild som inte har någon tidigare bild i cacheminnet). Med det här alternativet kan du i princip välja en annan startposition än restpositionen och det är standardvärdet. För de efterföljande bildrutorna kommer lösaren att spåra målet genom att integrera ledhastigheten som beräknas av Jacobian-lösaren över det tidsintervall som bildrutan representerar. Precisionen i spårningen beror på återkopplingskoefficienten, antalet delsteg och målets hastighet.
- Alltid
Lösaren upprepar varje bildruta tills den angivna precisionen har uppnåtts. Det här alternativet utelämnar det mesta av iTaSC:s dynamiska beteende: den maximala ledhastigheten och kontinuiteten mellan bildrutorna garanteras inte längre i kompensation för bättre precision i positionerna för endeffektorn. Det är ett mellanläge mellan Animation och Simulering i realtid.
- Auto steg
Använd det här alternativet om du vill låta solvern ställa in hur många substeg som ska utföras för varje bildruta. Ett substeg är en underindelning av tiden mellan två bildrutor för vilken lösaren utvärderar IK-ekvationen och uppdaterar ledpositionen. Fler substeg innebär mer bearbetning men bättre precision i målföljningen. Auto-stepalgoritmen uppskattar det optimala antalet steg för att få den bästa avvägningen mellan bearbetning och precision. Den fungerar genom att uppskatta poseringens olinjäritet och genom att begränsa amplituden för ledvariationen under ett delsteg. Den kan konfigureras med följande två parametrar:
- Min
Föreslagen minsta varaktighet för substeget (i sekunder). Den automatiska stegalgoritmen kan minska substeget ytterligare baserat på ledhastigheten.
- Max
Maximal varaktighet för substep (i sekunder). Den automatiska stegalgoritmen tillåter inte substep som är längre än detta värde.
- Steg
Om Auto Step är inaktiverat kan du välja ett fast antal substeps med denna parameter. Substep bör inte vara längre än 10 ms, vilket innebär att antalet steg är 4 för en animation med 25 fps. Om armaturen verkar instabil (vibrerar) mellan bildrutorna kan du förbättra stabiliteten genom att öka antalet steg.
- Feedback
Koefficient för positioneringsfelet för endeffektorn för att ställa in korrigerande ledhastighet. Tidskonstanten för felkorrigeringen är inversen av detta värde. Denna parameter har dock liten effekt på armaturens dynamik eftersom algoritmen utvärderar målhastigheten i vilket fall som helst. Om denna parameter sätts till 0 innebär det att ”loopen öppnas”: lösaren följer hastigheten men inte positionen, och felet ackumuleras snabbt. Om värdet är för högt innebär det en överdriven mängd korrigeringar och risk för instabilitet. Värdet bör ligga inom intervallet 20-100. Standardvärdet är 20, vilket innebär att spårningsfel korrigeras inom en typisk tid på 100-200 ms. Återkopplingskoefficienten är anledningen till att ankaret fortsätter att röra sig något i simuleringsläget även om målet har slutat röra sig: det kvarvarande felet undertrycks successivt bild för bild.
- Max hastighet
Indikativ maximal ledhastighet i radianer per sekund. Denna parameter har en viktig effekt på armaturens dynamik. Ett mindre värde gör att ankaret rör sig långsamt och släpar efter om målen rör sig snabbt. Du kan simulera en tröghet genom att ställa in denna parameter på ett lågt värde.
IK-panel för ben¶
Referens
- Läge:
Pose-läge
- Panel:
Denna panel används för att styra hur Pose Bones fungerar i IK-kedjan.
- IK Stretch
Sträck inflytande till IK-mål.
- Lås
Förbjud rörelse runt axeln.
- Styvhet
Styvhet runt axeln. Inverkan inaktiverad om du använder Lock.
- Begränsa
Begränsa rörelsen runt axeln.
iTaSC-lösare¶
Om iTaSC IK Solver används ändras IK-panelen för ben så att dessa ytterligare parametrar läggs till.
- Kontroll Rotation
Aktiverar en begränsning för ledrotation på det benet. Den poseringsrotation som beräknas från Action- eller grafisk gränssnittsinteraktion konverteras till ett ledvärde och skickas till solvern som mål för leden. Detta ger dig kontroll över leden medan lösaren fortfarande spårar de andra IK-målen. Du kan använda den här funktionen för att ange en önskad pose för leder (t.ex. vilopose) eller för att animera en ledvinkel genom att spela upp en action på den.
- Bredd
Betydelsen av begränsningen för ledrotationen baserat på begränsningens vikt om alla begränsningar inte kan uppnås samtidigt. Om du t.ex. vill förstärka ledrotationen kraftigt ska du ange en hög vikt för ledrotationsbegränsningen och en låg vikt för IK-begränsningarna.
Exempel på armrigg¶
Den här armen använder två ben för att lösa problemet med underarmens vridning. IK-låsning används för att hindra underarmen från att böjas, men underarmen kan fortfarande vridas manuellt genom att trycka på R Y Y i Pose Mode, eller genom att använda andra begränsningar.

Observera att om ett Pole Target används kommer IK-låsning inte att fungera på rotbenet.