Ich habe eine Reihe von Daten, wo ich die lokalen Rotationen, globale Rotationen und globale Positionen für ein Modell habe. Ich muss die lokalen Positionen für jeden Knochen berechnen.Berechnung von lokalen Positionen, wenn ich globale Positionen, globale Rotationen und lokale Rotationen habe
Ich versuchte zuerst bone.globalpos - bone_parent.globalpos und erkannte dann, dass diese nicht von Rotationen abhängig sind, also ist dies der Unterschied zwischen dem Eltern- und dem Kindknochen. Ich brauche einen Ratschlag, wie man die Drehungen auch für die Knochen berücksichtigt. Sowohl die lokalen als auch die globalen Rotationen werden als Quaternionen gespeichert.
Ich speichere die Daten ein folgt pro Knochen
bone.globalpos (Vector3)
bone.globalrot (Quaternion)
bone.localpos (Unknown, but should be a Vector3)
bone.localrot (Quaternion)
Da die lokale Haltung soll auch auf Rotation beruht und nicht nur die Entfernung von der Mutter, ich bin verloren, wie diese zu berechnen.
Beispieldaten:
bone_parent.globalpos = (-1.252995 8.46457E-05 37.22802)
bone_parent.globalrot = (-0.5405273 -0.4560547 -0.4560547 0.5405273)
bone_parent.localpos = (0 0 0) (I provided)
bone_parent.localrot = (1.0 0.0 0.0 0.0)
bone_child.globalpos = (-1.252995 5.001462 37.22802)
bone_child.globalrot = (0.4948359 0.505096 -0.505096 0.4948359)
bone_child.localpos = (0 0 5.001377) This is what I need to calculate, but here is the answer to what I'm trying to get
bone_child.localrot = (0.07421875 0.9970703 0 0)
Sehr geschätzt! Lief wie am Schnürchen! – Default