Für die Bewegungskurve würde ich die Verwendung von Hermite-Kurven vorschlagen. Sie geben einfach einen Startpunkt / eine Startgeschwindigkeit und einen Endpunkt / eine Endgeschwindigkeit an und es entsteht eine schöne und glatte Kurve zwischen diesen beiden. Verwenden Sie den Endpunkt / die Geschwindigkeit des ersten Punktepaars als Startpunkt / Geschwindigkeit des nächsten Punktepaars, und Sie haben eine schöne lange und kurvenreiche Kurve, die nahtlos ist.
Dies ist perfekt für die Anforderung, die Geschwindigkeit zu verwalten: Sie geben eine Liste von Zeitpunkten mit von Ihnen gewählten Geschwindigkeiten an und erhalten die nahtlos interpolierten Positions- und Geschwindigkeitswerte. Wenn Sie dies tun möchten, müssen Sie lediglich Punkte und Geschwindigkeiten auf dem gewünschten Pfad aus der 3D-Authoring-Anwendung extrahieren. Sie können sie auch zur Laufzeit generieren, möglicherweise basierend auf Benutzereingaben.
Um die Ausrichtung anzupassen, haben Sie eine Reihe von Optionen. Wenn das Flugzeug immer darauf zeigt, wohin es fliegt (was sinnvoll ist), können Sie den interpolierten Geschwindigkeitsvektor aus der Hermite-Kurve verwenden, um herauszufinden, wohin Ihr Schiff zeigen soll. Wenn Sie den Aufwärtsvektor kennen (er bewegt sich in einer Ebene oder Sie wissen, welche Richtung nach oben gerichtet sein soll), können Sie die dritte Achse durch Kreuzen (vorne, oben) berechnen und dort haben Sie Ihre Ausrichtung.
Wenn Sie eine irgendwie "wackelige" Ausrichtung wünschen, so dass die Ebene manchmal von der vorderen Richtung im Pfad abweicht, können Sie die vordere Richtung als gewünschte Richtung verwenden und nacheinander einen Schritt zwischen der aktuellen Ausrichtung und der gewünschten Ausrichtung wechseln.
Wenn Sie benutzerdefinierte Orientierungen wünschen, die nichts mit dem Pfad zu tun haben, können Sie hierzu natürlich eine Liste von Orientierungsquaternionen bereitstellen. Dann werden Ihre Punkte (Punkt, Geschwindigkeit, Quaternion). Dann können Sie Slerp zwischen zwei aufeinanderfolgenden Quaternionen verwenden, um Ihre Orientierungen auf dem Weg festzulegen. Vergessen Sie nicht, dass Slerp eine lineare Interpolationsmethode ist. Es sollte jedoch normalerweise in Ordnung sein. Wenn Sie feststellen, dass die Rotationen in den Nähten nicht glatt genug sind, können Sie versuchen, die Liste der Quaternionen mit einer Bezier-Kurve zu interpolieren, wie hier in Abschnitt 7 erläutert .
Hier ist ein Quellcode, der Ihnen den Einstieg erleichtern kann. Es verfügt über eine Reihe von reibungslosen Interpolationstechniken für eine Liste von Quaternionen (Squad, Bezier usw.).
Lassen Sie mich wissen, wenn Sie Fragen haben!