Final IK description

Finished
- Final IK Overview (1-2 Senteces)
- Aim IK
- Arm IK
- Baker Komponent
- Biped IK
This commit is contained in:
FB
2022-03-13 13:54:37 +01:00
parent 2209ee33cf
commit 2e15f3bed4
10 changed files with 128 additions and 5 deletions

View File

@@ -1,5 +1,5 @@
% makeindex style file created by the glossaries package
% for document 'thesis' on 2022-3-12
% for document 'thesis' on 2022-3-13
actual '?'
encap '|'
level '!'

44
bib.bib
View File

@@ -616,8 +616,48 @@
////////////////Final IK////////////////
@misc{FinalIK_Overview_2020,
note = {letzter Zugriff am 12.03.2022},
author = {SteamWorks},
title = {OpenVR - SteamWorks Documentation},
author = {RootMotion},
title = {Final IK - Overview},
url = {http://www.root-motion.com/finalikdox/html/index.html},
year = {2020},
}
@misc{FinalIK_AssetStore_2021,
note = {letzter Zugriff am 13.03.2022},
author = {RootMotion},
title = {Final IK - Unity Asset Store},
url = {https://assetstore.unity.com/packages/tools/animation/final-ik-14290},
year = {2021},
}
@misc{FinalIK_AimIK_2021,
note = {letzter Zugriff am 13.03.2022},
author = {RootMotion},
title = {Final IK - AimIK},
url = {http://www.root-motion.com/finalikdox/html/page1.html},
year = {2021},
}
@misc{FinalIK_ArmIK_2021,
note = {letzter Zugriff am 13.03.2022},
author = {RootMotion},
title = {Final IK - ArmIK},
url = {http://www.root-motion.com/finalikdox/html/page2.html},
year = {2021},
}
@misc{FinalIK_Baker_2021,
note = {letzter Zugriff am 13.03.2022},
author = {RootMotion},
title = {Final IK - Baker},
url = {http://www.root-motion.com/finalikdox/html/page3.html},
year = {2021},
}
@misc{FinalIK_BipedIK_2021,
note = {letzter Zugriff am 13.03.2022},
author = {RootMotion},
title = {Final IK - Biped IK},
url = {http://www.root-motion.com/finalikdox/html/page4.html},
year = {2021},
}

BIN
pics/finalik_aimik_pose.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1023 KiB

View File

@@ -604,10 +604,93 @@ Wenn die Applikation ausgeführt wird, liefert OpenVR, je nach vorhandenem SDK,
\subsection{Vive Wireless}
\subsection{Final IK Plugin}
\subsubsection{Aim IK}
Final IK ist ein Unity Asset, welches von RootMotion entwickelt wurde.
Es wurde kostenlos für die Erstellung von BeamVR bereitgestellt und regelt das Full Body Tracking.
Hierbei wird das Full Body Biped IK, welches inbegriffen ist, verwendet.
~\cite{FinalIK_Overview_2020}
\subsubsection{AimIK}
AimIK rotiert die Knochen des 3D-Modells, so dass auf ein Objekt gezielt werden kann.
Es wird hierbei nicht die eingebaute LookAt Funktion des Animators benutzt, da die Objekte mit denen gezielt wird, nicht mit den Achsen des Modells übereinstimmen.
AimIK ermöglicht ein natürlich aussehendes Ergebnis, selbst wenn sich das Ziel beinahe hinter dem zielendem Objekt befindet.
Rotation limits verhindern, dass das Skelett in unnatürliche Bewegungen und Stellungen verändert wird.
Bei menschenähnlichen Modellen, limitiert diese Einstellung die Gelenke auf die gleichen Bewegungsmöglichkeiten wie bei einem Menschen, siehe Abb. ~\ref{fig:finalIK_aimIK_pose}.
Diese können jedoch frei verändert werden, was jedoch zu unrealistischen Posen führen kann.
\begin {figure}
\centering
\includegraphics[scale=0.4]{pics/finalik_aimik_pose}
\caption{Final IK - AimIK Pose}
\label{fig:finalIK_aimIK_pose}
\end {figure}
Damit die Berechnung der Pose funktioniert, werden mehrere verschiedene Einstellungsmöglichkeiten bereitgestellt, siehe Abb. ~\ref{fig:finalIK_aimIK_script}.
Um zu wissen worauf gezielt werden soll, muss zuerst ein Ziel festgelegt werden, dies ist möglich bei der Variable Target.
Aim Transform ist das Objekt, mit welchem gezielt werden soll.
Dabei kann es sich um viele verschiedene Objekte, wie Waffen oder ein Hand die auf etwas zeigen soll, handeln.
Axis gibt an in welche Richtung das Objekt zielt.
Wenn zum Beispiel ein Laserpointer den Laser in Richtung der Z-Achse abstrahlt muss die Achse auf (0,0,1) gesetzt werden, da das Schema (x,y,z) ist.
Damit die richtigen Knochen bewegt werden, wenn auf ein Ziel gezielt wird, müssen diese bei Bones Definiert werden.
Das Wight steuert wie stark die veränderungen des Scripts auf die tatsächliche Position des Knochen einwirken sollen.
Bei 0 wird der Knochen kaum bis garnicht verändert, wenn der Wert jedoch 1 ist, wird die ursprüngliche Position komplett verändert.
\begin {figure}
\centering
\includegraphics[scale=0.7]{pics/finalik_aimik_script}
\caption{Final IK - AimIK Script}
\label{fig:finalIK_aimIK_script}
\end {figure}
~\cite{FinalIK_AimIK_2021}
\subsubsection{Arm IK}
ArmIK stellt die Position und Rotation der Knochen eines Armes so ein, dass die Hand möglichst nahe an der Zielposition platziert ist.
Hierfür werden 5 Knochen benötigt, Chest, Shoulder, Upper Arm, Forearm und Hand, siehe Abb. ~\ref{fig:finalIK_armIK_script}.
Chest befindet sich im Oberkörper des Modells und ist am nähesten am Arm dran.
Shoulder ist der Schulterknochen, Upper Arm ist der Oberarm Knochen, Forearm ist der Unterarm Knochen und Hand befindet sich in der Hand.
Hierbei werden die Finger nicht beachtet, da es nur um die Berechnung der Position des Armes handelt.
Mithilfe der Target Variable wird erneut ein Ziel festgelegt, welches die Zielposition der Hand angiebt.
\begin {figure}
\centering
\includegraphics[scale=1]{pics/finalik_armik_script}
\caption{Final IK - ArmIK Script}
\label{fig:finalIK_armIK_script}
\end {figure}
~\cite{FinalIK_ArmIK_2021}
\subsubsection{Baker}
\subsubsection{Bipaed IK}
Der Baker ist ein Tool welches die Aufnahme von Animations Clips ermöglicht.
Um humanoide Modelle aufzunehmen, muss das Humanoid Baker Script zu dem Animierten Objekt hinzugefügt werden, siehe Abb. ~\ref{fig:finalIK_humanoid_baker}.
Für andere Modelle wird das Generic Baker Script benötigt, siehe Abb. ~\ref{fig:finalIK_generic_baker}.
Wenn die Applikation in Unity ausgeführt wird, kann in beiden Scripten auf Bake Animation States gedrückt werden.
Nun werden die Animationen in einen vorher ausgewählten Ordner abgespeichert und können jederzeit wiederverwendet werden.
\begin {figure}
\centering
\includegraphics[scale=1]{pics/finalik_baker_HumanoidBakerComponent}
\caption{Final IK - Humanoid Baker}
\label{fig:finalIK_humanoid_baker}
\end {figure}
\begin {figure}
\centering
\includegraphics[scale=1]{pics/finalik_baker_GenericBakerComponent}
\caption{Final IK - Generic Baker}
\label{fig:finalIK_generic_baker}
\end {figure}
~\cite{FinalIK_Baker_2021}
\subsubsection{Biped IK}
Biped IK erlaubt die Modifikation der Position und Rotation der Knochen, eines Modelles mit 2 Beinen, 2 Armen und einem Kopf.
Das Script erkennt die Knochen automatisch und ist sofort einsatzbereit.
Seit FinalIK 4.0 wird jedoch FullBodyBiped IK empfohlen, da dieses eine leichtere Optimierung der IK eines Modelles erlaubt.
Es können wie bei vorherigen Funktionen, Animationen beliebig überschrieben werden, ohne diese tatsächlich ändern zu müssen.
BipedIK bietet die Möglichkeit jedes Glied, also Kopf, Füße, Arme, Ober- und Unterkörper, einzeln einzustellen, siehe Abb. ~\ref{fig:finalIK_bipedik_script}.
Weiters kann wieder ein Ziel festgelegt werden, falls der Charakter auf einen Gegenstand zielen soll.
\begin {figure}
\centering
\includegraphics[scale=1]{pics/finalik_bipedik_script}
\caption{Final IK - BipedIK Script}
\label{fig:finalIK_bipedik_script}
\end {figure}
~\cite{FinalIK_BipedIK_2021}
\subsubsection{CCD IK}
\subsubsection{FABRIK}
\subsubsection{FABRIK IK}