Per la curva del movimento, suggerirei di usare le curve Hermite. Dai semplicemente un punto / velocità iniziale e un punto / velocità finale, e crea una curva piacevole e regolare tra quei due. Usa il punto finale / velocità della prima coppia di punti come punto iniziale / velocità della prossima coppia di punti e hai una bella curva lunga e tortuosa che è senza soluzione di continuità.
Ciò gestisce perfettamente l'esigenza di gestire la velocità: si fornisce un elenco di punti nel tempo con le velocità scelte e fornisce la posizione perfettamente interpolata e i valori di velocità. Se vuoi andare con questo, tutto ciò che devi estrarre dall'applicazione di creazione 3D sono punti e velocità nel percorso che desideri. Puoi anche generarli in fase di esecuzione, forse in base all'input dell'utente.
Per regolare l'orientamento, sono disponibili diverse opzioni. Se l'aereo indicherà sempre la direzione in cui sta andando (che è il caso che ha senso), puoi usare il vettore di velocità interpolato dalla curva dell'Hermite per trovare dove la tua nave dovrebbe puntare. Se conosci il vettore in alto (si sta muovendo in un piano o sai quale direzione dovrebbe essere in alto) puoi calcolare il terzo asse per croce (fronte, su) e lì hai il tuo orientamento.
Se si desidera in qualche modo un orientamento "traballante" in modo che il piano a volte si discosti dalla direzione anteriore nel percorso, è possibile utilizzare la direzione anteriore come direzione desiderata e successivamente eseguire un passo in avanti tra l'orientamento corrente e l'orientamento desiderato.
Se desideri orientamenti personalizzati che non hanno nulla a che fare con il percorso, puoi ovviamente fornire un elenco di quaternioni di orientamento a questo. Quindi i tuoi punti diventano (punto, velocità, quaternione). Quindi puoi usare slerp tra due quaternioni successive per impostare i tuoi orientamenti lungo il percorso. Non dimenticare che slerp è un metodo di interpolazione lineare . Tuttavia, di solito dovrebbe andare bene. Se trovi che le rotazioni non sono abbastanza lisce nelle cuciture, puoi provare a interpolare l'elenco dei quaternioni con una curva di Bezier, come spiegato qui nella sezione 7.
Ecco del codice sorgente che può aiutarti a iniziare. Ha una serie di tecniche di interpolazione fluida per un elenco di quaternioni (squadra, bezier, ecc.).
Fatemi sapere se avete domande!