Ich bin gerade dabei, eine BuildMod - Map in einer normale Crysis - Map
umzuwandeln. Das klappt soweit, bis auf die Ausrichtung der Objekte (Rotation).
All diese Daten der Objekte sind in einer XML gespeichert.
Der Command "Rotate="x,y,z,q"" benötigt 4 Angaben. Die ersten 3(x,y,z) habe ich. Jedoch
weiß ich überhaupt nicht, was "q" sein soll. Ist doch eigentlich überflüssig.
Wenn ich für Q den Wert 0 angebe oder ihn weglasse, kommt folgender Fehler:
CPhysicalEntity:SetParams(pe_params_pos): ( @ 0.0,0.0,0.0) Validation Error: q is invalid or unnormalized (perhaps non-uniform scaling was used?)
Somit ist das Objekt im Spiel ziemlich verzeert dargestellt .
Was ich also brauche, ist eine Methode oder eine Formel, um Q zu berechnen.
Bei Google hab ich leider nichts darüber gefunden...
Kann mir jemand bitte helfen?
Leider nicht, weil sich Q nach X,Y und Z der Rotation richtet .
Hier hab ich mal von irgendeinem Objekt das von Sandbox gespeichert wurde
alle 4 Angaben:
X = 0.01645134
Y = 0.333756
Z = 0.94249791
Q = 0.0058257258
Das heißt also, das man Q mithilfe von X, Y und Z berechnet, aber wie?
Also wenn man die Werte multipliziert, dann kommt annähernd der Wert raus, aber das ist sicher nicht die Art und Weise wie das berechnet wird (dafür ist die Abweichung zu groß). Hast du noch mehr Beispiele für die Koordinaten?
Ne sorry, das ist alles was ich habe .
Das mit dem Multiplizieren hab ich auch schon versucht, aber da gibts ja
tausend Möglichkeiten, wie man das berechnen kann (sin, cos, tan, pi, ...).
Wenn man doch nur wissen würde, was Q bedeutet, dann könnte man bei Google
nach einer Formel dafür suchen.
Noch ein Beispiel:
X = 0.76604444
Y = 0
Z = 0
Q = -0.64278764
Hab zufällig eine LUA Variable mit dem Namen "g_Rad2Deg" entdeckt mit folgenden Wert: 57.2958
Vielleicht hat die ja damit was zutun.