Probabilmente hai sentito parlare di Inverse Kinematics. IK è uno strumento popolare in Unity e nella computer grafica, ma se è la prima volta che provi a creare o utilizzare un sistema di cinematica inversa, potresti volere maggiori dettagli. Spiegherò cos'è l'IK, definirò il vocabolario e esaminerò gli usi. Qual è il vocabolario necessario per capire IK?
Prima di entrare nel cuore di IK, dobbiamo definire un vocabolario relativo a IK. IK è un metodo applicato a un corpo articolato. Cos'è un corpo articolato?
Corpo articolato
Un corpo articolato può rappresentare la maggior parte dei corpi animati come umani e animali con scheletri. In poche parole, un corpo articolato è un albero di catene collegate. Le catene collegate sono costituite da giunti e maglie, dove una maglia è un cilindro rigido.
Tipi di giunti
Per quanto riguarda le articolazioni, ci sono due tipi. Il primo tipo di giunto è un giunto rotante. È collegato a un collegamento che ruota attorno ad esso.
Un giunto rotante è molto simile al perno centrale di un orologio - con una lancetta dell'orologio come collegamento.
Un giunto prismatico è un giunto in modo tale che il collegamento collegato si traduca dal giunto per estendere / accorciare il collegamento.
Un giunto prismatico si comporta in modo molto simile all'estensione / retrazione della lunghezza della maniglia a scomparsa sul bagaglio. Se guardi da vicino, una maniglia per bagagli a scomparsa ha 4 giunti prismatici. 2 giunti prismatici a metà del manico e altri 2 giunti prismatici lungo il manico nella parte superiore del bagaglio.
Se sei confuso da articolazioni prismatiche, non preoccuparti. Non vengono usati così spesso nella cinematica inversa e, come si potrebbe dire, nessun essere umano ha articolazioni prismatiche, ma solo articolazioni rotanti.
Struttura gerarchica
Un corpo articolato ha un'articolazione della radice. L'articolazione della radice è la base della struttura. L'articolazione della radice per un umanoide è di solito il centro dei fianchi. Il corpo articolato è formato da un albero di articolazioni e collegamenti, a partire dall'articolazione della radice. Un nuovo giunto e collegamento è simile a un nuovo ramo su un albero. Un collegamento / giunto interno è un collegamento / giunto più vicino al giunto radicolare all'interno della gerarchia degli alberi del corpo articolato, in quanto si riferisce a un dato giunto / collegamento. Un collegamento / giunto esterno è un collegamento / giunto che è più lontano dall'articolazione della radice all'interno della gerarchia dell'albero del corpo articolato.
End Effector
Un effettore finale è una posizione nella posizione più esterna del collegamento più esterno. È l'estremità libera della catena di giunti e maglie alternati. L'effettore finale non è un giunto. L'effettore finale è semplicemente la posizione alla fine di un corpo articolato. Un corpo articolato può avere più dispositivi di estremità, proprio come un albero binario può avere più foglie.
End Effector è raffigurato come un cerchio verde qui.
Articolazioni e pose
Un'articolazione è una rotazione / traslazione di un giunto che sposta un collegamento collegato. D'altra parte, una posa è un insieme di articolazioni articolari che porta al posizionamento del corpo articolato. In altre parole, la posa è un valore vettoriale anziché un valore scalare.
Cos'è Forward Kinematics?
Prima di poter capire cos'è Inverse Kinematics, dobbiamo capire cos'è Forward Kinematics. La funzione / algoritmo di Forward Kinematics prende posizione come input e calcola la posizione dell'effettore finale come output. Forward Kinematics è la funzione inversa di Inverse Kinematics. Con Forward Kinematics, è necessario definire l'intera posa di un corpo articolato in modo da fornire alla funzione / algoritmo l'input di posa. Ciò significa che è necessario definire l'articolazione di ciascuna articolazione nel corpo articolato. Questo potrebbe andare bene se hai un basso numero di articolazioni, ma con un alto numero di articolazioni tende ad essere noioso.
Che cos'è la cinematica inversa?
Ora, immagina se desideri che l'effettore finale del tuo corpo articolato raggiunga una determinata posizione target. Ciò significa che conosci la posizione dell'effettore finale che desideri mirare, ma non sai quale deve essere la posa del corpo articolato affinché l'effettore finale raggiunga questa posizione target. È qui che brilla Inverse Kinematics!
Inverse Kinematics è la funzione / algoritmo inversa di Forward Kinematics. La funzione / algoritmo di cinematica diretta prende una posizione target come input e calcola la posa richiesta affinché l'effettore finale raggiunga la posizione target - la posa è l'output.
Come puoi vedere, l'ingresso e l'uscita sono commutati tra FK e IK. Con Inverse Kinematics, non è necessario definire l'intera posa di un corpo articolato: questo viene calcolato per te dall'algoritmo IK. Con IK, devi solo definire una posizione come input.
Inverse Kinematics fa tutto il lavoro computazionale impegnativo per calcolare quale sia la posa. Nello stato precedente, c'è un corpo articolato con qualche posa nota. Definisce una posizione target per l'effettore finale che cerca di raggiungere. Una volta applicato l'algoritmo IK al corpo articolato, abbiamo raggiunto l'After State. Lo stato After mostra che è stata calcolata una nuova posa, in modo tale che l'effettore finale sia ora nella posizione target.
Quali sono gli usi di IK?
A questo punto, sappiamo che IK viene applicato a un corpo articolato, sappiamo di cosa è composto un corpo articolato e conosciamo la differenza tra IK e FK. Finora abbiamo una buona panoramica di IK, ma completiamo con alcuni buoni casi d'uso di IK. IK può essere usato per un braccio umanoide per raggiungere un oggetto / bersaglio, come abbiamo visto. IK può anche essere usato per il passo del piede, in modo tale da dire al piede dove fare un passo e IK capisce come configurare le articolazioni delle gambe. IK non viene solitamente utilizzato come animazione stessa (raggiungendo un oggetto), ma piuttosto come strumento di animazione. Pertanto, se si sta implementando un ciclo di camminata, è possibile posizionare alcuni dei fotogrammi chiave utilizzando lo strumento IK.
Un altro punto chiave su IK è che il tuo obiettivo / target non è limitato alla sola posizione: il tuo obiettivo può essere definito come una rotazione. Ad esempio, se i tuoi piedi devono ruotare in base a un terreno irregolare, il tuo obiettivo di rotazione IK può essere definito in base al normale del pavimento. In questo modo i tuoi piedi sono inclinati lungo il pavimento, come quando cammini su una pendenza. Nota che puoi anche usare IK per guardare la tua testa (o anche gli occhi) in una certa direzione. Se vuoi che la tua testa segua un oggetto, puoi usare IK per fare in modo che la testa segua l'oggetto intorno.