Hey!
Ich möchte ein 3D HeadUp Display erstellen, welches sich um die Position und der Winkel der Kamera anordnet. Es sind mehrere Modelle, die sich ca 180° im Sichtfeld befinden.
Diese Formel benutze ich derzeit:
my.x = (g_ePlayer.x + cos(cameraContainer.eulerPan + my.skill13) * cos(cameraContainer.eulerTilt) * 100);
my.y = (g_ePlayer.y + sin(cameraContainer.eulerPan + my.skill13) * cos(cameraContainer.eulerTilt) * 100);
my.z = ((g_ePlayer.z) - sin(cameraContainer.eulerTilt) * 100);
my.pan = cameraContainer.eulerPan;
my.tilt = cameraContainer.eulerTilt;
Kurze Erklärung:
g_ePlayer: Spieler Entity, auf die die Kamera ausgerichtet wird (First-Person)
cameraContainer: Beinhaltet die Euler Winkel für die Manipulation der Kamera
my.skill13: Beinhaltet den Offset Winkel, damit die HeadUp Modelle als halb Kreis um die Kamera positioniert werden
Sie klappt auch relativ gut, nur sobald ich den TILT Wert der Kamera ändere, bricht der Wert für PAN an den HeadUp Objekten zusammen. D.h.: Neige ich die Kamera nach unten, bewegen sich die HeadUp Modelle auf einander zu. Anstatt auf dem jeweiligen 30° Ausrichtwinkel zu bleiben.
Dies erstellt die HeadUp Display Modelle:
my = ent_createlocal("guiPlane.mdl",vector(g_ePlayer.x,g_ePlayer.y,g_ePlayer.z),GUI_defaultInterface);
my.skill13 = 30;
my = ent_createlocal("guiPlane.mdl",vector(g_ePlayer.x,g_ePlayer.y,g_ePlayer.z),GUI_defaultInterface);
my.skill13 = -30;
Hat jemand schon mal so ein HeadUp Display erstellt und sieht den Fehler in der Formel? Oder eine andere Lösung?
Besten Dank!