Final IK description
Finished - Final IK Overview (1-2 Senteces) - Aim IK - Arm IK - Baker Komponent - Biped IK
@@ -1,5 +1,5 @@
|
|||||||
% makeindex style file created by the glossaries package
|
% makeindex style file created by the glossaries package
|
||||||
% for document 'thesis' on 2022-3-12
|
% for document 'thesis' on 2022-3-13
|
||||||
actual '?'
|
actual '?'
|
||||||
encap '|'
|
encap '|'
|
||||||
level '!'
|
level '!'
|
||||||
|
|||||||
44
bib.bib
@@ -616,8 +616,48 @@
|
|||||||
////////////////Final IK////////////////
|
////////////////Final IK////////////////
|
||||||
@misc{FinalIK_Overview_2020,
|
@misc{FinalIK_Overview_2020,
|
||||||
note = {letzter Zugriff am 12.03.2022},
|
note = {letzter Zugriff am 12.03.2022},
|
||||||
author = {SteamWorks},
|
author = {RootMotion},
|
||||||
title = {OpenVR - SteamWorks Documentation},
|
title = {Final IK - Overview},
|
||||||
url = {http://www.root-motion.com/finalikdox/html/index.html},
|
url = {http://www.root-motion.com/finalikdox/html/index.html},
|
||||||
year = {2020},
|
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
|
After Width: | Height: | Size: 1.9 MiB |
BIN
pics/finalik_aimik_script.png
Normal file
|
After Width: | Height: | Size: 22 KiB |
BIN
pics/finalik_armik_script.png
Normal file
|
After Width: | Height: | Size: 22 KiB |
BIN
pics/finalik_baker_GenericBakerComponent.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
pics/finalik_baker_HumanoidBakerComponent.png
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
pics/finalik_bipedik_script.png
Normal file
|
After Width: | Height: | Size: 20 KiB |
BIN
pics/finalik_fabrik_pose.png
Normal file
|
After Width: | Height: | Size: 1023 KiB |
@@ -604,10 +604,93 @@ Wenn die Applikation ausgeführt wird, liefert OpenVR, je nach vorhandenem SDK,
|
|||||||
\subsection{Vive Wireless}
|
\subsection{Vive Wireless}
|
||||||
|
|
||||||
\subsection{Final IK Plugin}
|
\subsection{Final IK Plugin}
|
||||||
|
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}
|
\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}
|
\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{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{CCD IK}
|
||||||
\subsubsection{FABRIK}
|
\subsubsection{FABRIK}
|
||||||
\subsubsection{FABRIK IK}
|
\subsubsection{FABRIK IK}
|
||||||
|
|||||||