Hallo Forengemeinde.
Mein Anliegen betrifft nicht das Spielprogrammieren direkt sondern eher das modifizieren eines Spiels. Ich hoffe, dass das in Ordnung geht.
Ich möchte einen CamHack für ein Rennspiel basteln (World Racing 2) habe aber momentan ein Brett vorm Kopf was die Mathematik angeht. Erstmal ein wenig Theorie zum Ganzen, damit es vielleicht verständlich wird.
Also das Spiel bietet 6 Kameramodi + einen Versetzungsmodus. Bei diesem wird das Spiel pausiert und man kann die Kamera frei mit der Maus bewegen. Die Kamera "besteht" aus zwei Punkten á 3 Koordinaten: Einmal die Position der Kamera selbst und der Punkt auf den die Kamera ausgerichtet ist. Zusätzlich muss noch der Abstand zwischen diesen beiden Punkten gesetzt werden (lässt sich ja leicht berechnen). Die Koordinaten (X,Y,Z) sind Floats und geben den Abstand zum Mittelpunkt des Szenarios an.
So, dieser Modus bringt schon eine funktionierende Mausnavigation mit, das Spiel kann man auch leicht "entpausieren" indem man zwei Sprünge im Speicher leicht abändert. Jetzt läuft das Spiel weiter, die Kamera folgt aber nicht mehr dem Auto. Nun habe ich drei Optionen für den Hack vorgesehen: Einmal die statische Kamera die sich nur mit der Maus bewegt, dann noch eine, die dem Auto nachschaut. Hierfür ist die Kamera selber "fest", aber der Punkt den sie betrachtet bewegt sich mit dem Auto. Diese beiden funktionieren auch schon ganz klasse.
Für die "nachschauende" Kamera springe ich, nachdem die Kamerapositionen vom Spiel berechnet wurden, in eine von mir ergänzte Prozedur, die die Kamerazielkoordinaten gleichsetzt mit den Autokoordinaten und den Abstand neu berechnet, dann springe ich zurück in den normalen Spielablauf.
Mein Problemkind ist jetzt das, was das Spiel im Normalfall mitliefert: Die Kamera, die sich mit dem Auto mitbewegt. Letztendlich muss ich ja "nur" den Abstand von den beiden Kamerapunkten zum Auto beibehalten. Doch wenn ich von einem einzigen Punkt ausgehe (Position des Autos) und von diesem ausgehend die Abstände für beide Kamerapunkte addiere, so rotiert die Kamera nicht mit dem Auto. Nehme ich den Mittelpunkt von zwei Punkten (z.B. Vorder und Hinterrad) und berechne davon die Abstände kommt es auch zu merkwürdigen Effekten in denen die Kamera sich nicht mit dem Auto mitdreht.
Das kann doch eigentlich nicht schwer sein die festen Abstände zu berechnen, aber irgendwie ist bei mir "da oben" in den letzten beiden Tagen nur Murks entstanden. Könnt ihr mir vielleicht helfen?
Werte die mir bekannt sind und die ich zur Berechnung nutzen kann:
Position des Autos, Position aller vier Räder. Alles Floats, Abstände zum Szenariomittelpunkt mit je 3 Koordinaten.
Ich schätze ich habe irgendwie einfach ein Brett vor dem Kopf.
Liebe Grüße,
biophemoc